From xen-devel-bounces@lists.xenproject.org Fri Nov 01 00:22:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 00:22:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.828935.1244036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6fQZ-0006VC-60; Fri, 01 Nov 2024 00:22:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 828935.1244036; Fri, 01 Nov 2024 00:22: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 1t6fQZ-0006V5-2y; Fri, 01 Nov 2024 00:22:11 +0000
Received: by outflank-mailman (input) for mailman id 828935;
 Fri, 01 Nov 2024 00:22: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=/CTM=R4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1t6fQX-0006Uz-IY
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 00:22:09 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 519b7eb2-97e7-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 01:22:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 1A9A0A44C36;
 Fri,  1 Nov 2024 00:20:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 500DCC4CEC3;
 Fri,  1 Nov 2024 00:22: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: 519b7eb2-97e7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NWQxOmVjMDA6OjMiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjUxOWI3ZWIyLTk3ZTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDIwNTI0LjQ3MjA2NSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1730420522;
	bh=vgAj05OxU6kcA7YqY28vjC41zebEtUrk44ZKK1avSuE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FXkhVGcw3p3pW1B/zYKdhHGVOnmP0YV8yggSqB/g6M2YBtZsYeSu/JJOlvdksFx+t
	 z+xDISe/oDtpPuUUIRaBW5wMFSHBmadcSYFljLFz9nlTBIpPUkiZDTJE755TIDXzut
	 mziZwqZnmDTLhhT+QDlBHKnLv22ncR86res0EnoYxpfXeKPUARw9Q7vujDgkcCR5ht
	 PjGBUlvJiys9Kf4FQdQQ9x8lnIq0NzbWS4lbKeqkyFcQbwRfdo/M6R+FmNusbnLsfT
	 Q+fP4C4v4u8aZJ7G1Ar2cDJPqJEiqMtq+HTENk3snbVysHtDzOwKG3N9l9sbFaZLNv
	 GHmofCD0WlRaA==
Date: Thu, 31 Oct 2024 17:21:59 -0700 (PDT)
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>, Doug Goldstein <cardoe@cardoe.com>, 
    Victor Lira <victorm.lira@amd.com>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] CI: Drop alpine-3.18-rootfs-export and use
 test-artefacts
In-Reply-To: <86a60aec-f259-41be-92a0-ce66ce24f4ae@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2410311721530.89051@ubuntu-linux-20-04-desktop>
References: <20241031190043.3011299-1-andrew.cooper3@citrix.com> <alpine.DEB.2.22.394.2410311546170.2525410@ubuntu-linux-20-04-desktop> <86a60aec-f259-41be-92a0-ce66ce24f4ae@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 31 Oct 2024, Andrew Cooper wrote:
> On 31/10/2024 10:46 pm, Stefano Stabellini wrote:
> > On Thu, 31 Oct 2024, Andrew Cooper wrote:
> >> The Argo work already moved this artefact into the new form.  Reuse that, and
> >> drop one test job.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > This is good but should we also remove
> > automation/tests-artifacts/alpine/3.18.dockerfile since we are at it?
> 
> Well, that's another thing that needs careful consideration.
> 
> That dockerfile needs updating in tandem with the build container (or
> lib$FOO.so's don't work when running the test), and it's hard enough to
> keep track of things when they're all in one repo.

Uhm, you have a good point. Two things come to mind. First, for this
patch:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


Second, I think maybe it would be better for test-artifacts to use the
build containers from xen.git/automation/build ? So that at least all
build containers come from the same place?

For instance, we would have to add any missing dependencies to
automation/build/alpine/3.18.dockerfile, from the list currently in
images/alpine/x86_64-build.dockerfile. Only a couple of things are
missing. Then remove images/alpine/x86_64-build.dockerfile, and use
registry.gitlab.com/xen-project/xen/alpine:3.18 in the test-artifacts
build jobs?


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 06:08:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 06:08:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.828943.1244047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6kpi-00048w-5A; Fri, 01 Nov 2024 06:08:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 828943.1244047; Fri, 01 Nov 2024 06:08: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 1t6kpi-00048o-0T; Fri, 01 Nov 2024 06:08:30 +0000
Received: by outflank-mailman (input) for mailman id 828943;
 Fri, 01 Nov 2024 06:08: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=c1/v=R4=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1t6kpg-00048i-7O
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 06:08:28 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20620.outbound.protection.outlook.com
 [2a01:111:f403:2412::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2df4f2f-9817-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 07:08:24 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CY8PR12MB7587.namprd12.prod.outlook.com (2603:10b6:930:9a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.23; Fri, 1 Nov
 2024 06:08:19 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8093.024; Fri, 1 Nov 2024
 06:08: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: b2df4f2f-9817-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjIwIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImIyZGY0ZjJmLTk4MTctMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDQxMzA0LjA2ODQ4MSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iQJ6doz47XHcEGzwOjozvT2cF3GRu8NsAlXkUwuhclz2ojXQt9874XeZ0QseNpsPvGQ/tqM7bJ7KojQVMRbfgeJZ4KViwrDZ59NwVpX3fR2XYVMiNJJFWq8ClhGaHJi+e2iG7Z72BXRUpj6iQTAk3TeeexKgGrGZ3c0sTs10xAl+WBK/TbM+vCdods4RCXbKrJOxIVhWqUKjK1/WGVUfv2cHKlfvJsDgCoMU6+NVPBVOMEGMTFCa65ohsjMj5hmtU/CqqcWfenhwTdp8P4Yuh0T4Il6pt9mBjE+0SRa3NuakoLB0rDlYVGNzJ0ro1Nu+tzv2sBquZ7+lPvhGE5/9kQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mB+CCuO9z+tSzByb45CoBKZn40wR2Y0/kgVxZLzKC5c=;
 b=lg7n4/4S5d5UyqqpVfmvmf7EIN9ItU6atW3GfO0lmLKUZDO5Mf2XrwN/4SD3QuBjcrdy/dzrBf48BcJvhZJJxG1opdtc/cfGelx7hYRgrhm7iAUX5EURT1e4udkWUxH1tV3J+i43p9I8Q1o2/r+8xH3KXLQ1UfKlhSXHkwfbczOTHtHAAM94sLvpaFma/xN7Xz6d6C50HV61b1PbZrKLQhrJa0lKdRobG0rl5vQOglQ7KgRU5xHs1wUdcm1ScQssub+FLA4HR3+nqbuFGQyh8sntGZf87jckBkU0B39nDHAzEVTdx9bbFj3ARRYm5HHiqjORWHSCT5VhZ8U2Wb+/bg==
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=mB+CCuO9z+tSzByb45CoBKZn40wR2Y0/kgVxZLzKC5c=;
 b=RiaiW9iNt+nyV5RjbZbVH50/256ne1+viVEIjgFAL7SKUz0enGqezepaaSVTdsw2EJBk1TAjku03ll8KPd3RGN5KM2J8tQ0wqWaUCKGrPYxo1CpUWY1c60ZEwba1u19I5W6Ueegsl+ZTbeqJNNQuD+iSd/YXkyHttMg6kYx61b8=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Paul Durrant <paul@xen.org>, "Edgar E . Iglesias"
	<edgar.iglesias@gmail.com>, "Michael S . Tsirkin" <mst@redhat.com>, Marcel
 Apfelbaum <marcel.apfelbaum@gmail.com>
CC: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [QEMU PATCH v9] xen/passthrough: use gsi to map pirq when dom0 is
 PVH
Thread-Topic: [QEMU PATCH v9] xen/passthrough: use gsi to map pirq when dom0
 is PVH
Thread-Index: AQHbJfQPdMv3M7YW802ZtCXuQqWNubKiglqA
Date: Fri, 1 Nov 2024 06:08:18 +0000
Message-ID:
 <BL1PR12MB58495196556DF24385D71E8BE7562@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241024090629.1944820-1-Jiqian.Chen@amd.com>
In-Reply-To: <20241024090629.1944820-1-Jiqian.Chen@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8093.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CY8PR12MB7587:EE_
x-ms-office365-filtering-correlation-id: dec72d18-2e99-4883-4c71-08dcfa3b94ff
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MzdLdll5SDZTVERHVzdGZ200VVlXR2c3bDBmajZqajgvS2tNVTZ0dmZqWk9r?=
 =?utf-8?B?UHVSRm83RFpDcnpXeW1TaGkwVHd6QlVPMUVnR1VxcXVodFdnYldlZ2Z3REV2?=
 =?utf-8?B?TVVDc29PRjhWcW1LdnFuWEw3c2xzN084R25BdVN2cmtSTXlFdEppbkczRlQ1?=
 =?utf-8?B?QkttcmtUMTJOdkQrWThGZzdvNTdGWjFIVEV5Q1ZERS9iaTQ1eGErVUEwOHFs?=
 =?utf-8?B?VWFkQVM3eEQ2M2FiS0dzVFBKbDBaWnVOYWRycUU4Y2NqV0wvYkZwL3FQdTBr?=
 =?utf-8?B?cno3eDFvNTBHSzZaRWJiLzhvZDA2alMzMmdHSHVBd1dxMkZCWW0yOTMyVHow?=
 =?utf-8?B?cFRJVjVDZHQ4dUdrZW9SSWZyRUlxYzZxMDNWYlBINjNSZlpNbzdOa1FML0lM?=
 =?utf-8?B?d05VMVZ3Z2pERDl0T2Z4UWp5RGc1bXd4aWtDNEVVZ0MvQjVmOU9BTDRvdUp6?=
 =?utf-8?B?QUJmK2pkZEdTcFV6ZzRNbEk4bVBFVkVwVG5VRnprL2l3RGNzSCticXVHcGwz?=
 =?utf-8?B?amlqR1I4OWxIU0hxUTNsN05kbWlpbmlqZ0NNS0hUSllLV3JvMVpuSmVFS3NG?=
 =?utf-8?B?TlNaYXZaNm1uK2d6M1VmZ3cxakZlNENpL0ZRNHV0N2VDNnl0ZWdkWUhRRDNy?=
 =?utf-8?B?MjI2STA0dERaczRrUlNibFYvUjczc2xETHhVN3U1QzNlWTVtNTF5c3VSajg3?=
 =?utf-8?B?ZDdDUFUrYlFOVitKS1lQNmRoNHdxUWJZaWsvVE95Si9SWEpadVFLOWtERmxr?=
 =?utf-8?B?eXgwWU5jWkltR2JIa3BQR0F6a0RCaWxYYTNsYkQwZ3RiUjNlTktWSmhoUHQz?=
 =?utf-8?B?WnFuK1VJTjhUN0FMUEp5a2dFYVdTS0sxRjUyRXdlYjJZTUU5NVZuR3FpNVRN?=
 =?utf-8?B?dHVYS0o5NjB3c1VqUnlYNVhNSnYxMnZvWmhhQzgvbTliVncvT2R2U2RDeG1M?=
 =?utf-8?B?dTRQdlFBd0VleStzQ1hoWjJCTlVPWkdIM1BNZjZxNTdtVnRwVEVjS1Jka2l6?=
 =?utf-8?B?WklBMUhDaGJ1Y2RSaWl4cFBsT3dnVmVtOEI2UTNmeEJiT2N6NGZHR1Nvc0hI?=
 =?utf-8?B?U2ZEaXYzTFBhSWVEeHRLT3IzSUJ1RXd6K09udmZlZEdzeklzYlZlMm9keW9m?=
 =?utf-8?B?eVIveVk3WW1GeXlnYU5FSy82NGdsekxOQ1FUTUNMVFRqUE4wMSthSE41eXpy?=
 =?utf-8?B?aUJSemFaUjVEUWp0ZXQ5MHZSSGdVTTJKaThFQzg5cG9La1BhaDk0UVpqRHFz?=
 =?utf-8?B?SWNWWEhYZG1rN0NoWVNiQjBieXRFYzlwKzd6NTllUU4rVHJCZ2RUWnEwN0Z1?=
 =?utf-8?B?UmpLUzd0UFJjQmVObnI2RmtUZjhMQXJJWE54VzBvMVV6NnJzVW5PbjRnSFRz?=
 =?utf-8?B?aDZiU1hjUFZjdTcrSlg1U3gwTVhyWkE1ZzdzMmZUMTVTa0dRYkZOM25HMVhq?=
 =?utf-8?B?VHRIc1NZSFQzdlVJUmJvMFFYcVdFREV5M3QvUFQrRk1MRWFNSVY5UDRMSnQv?=
 =?utf-8?B?dWk3Z0Z4S2daLzY5bkQ0QXdWREtWbi90UUp1NHRKS0dpUjRTaE4rZ2ZnSWVR?=
 =?utf-8?B?bUdxZjFWOFR5M0xwdXB4a1VZdkNuRVZVbGQ1WEN4UDNleTNZZXltbHh2NEl3?=
 =?utf-8?B?VmxVckVneVVBOUhYZkd3VGRZQ2dvbk13SENOVnlhT0xyQWx1MHc0aVdkd0RT?=
 =?utf-8?B?c3JHQWdBck5mY0NBOCs5eWEwUXRqVThJS2ZLNkM1Tmt3YmVRZHFGOFl1ZjJw?=
 =?utf-8?B?NC9SemlQakU4QTdGbkFmcVp3M3puU3UzMC82QThldjgxNHRMdEM1UllEb09H?=
 =?utf-8?Q?Hi0mUite33uPngzIbbjndReOJ0QCrzlpHXZi0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WXV6SjZ4T1NQRUR6b01kUzlvUUljRVJiVEp4MUJIRzNGOE4xQTRTd1krZEZX?=
 =?utf-8?B?dFpVL2JPZFV2SVRUZDg1V1lqMElQZnB5YjY2czNGcHNvSW5OTmpGOU9yT3N5?=
 =?utf-8?B?ZGlEYUtsL01Mb3NBWWh2TmI5L3JlZEFzNnB6TU1DbUgycEtEeFl4T2FDenV1?=
 =?utf-8?B?SHd4TXlMbSs3OTRlclFleUJxczF6aTdWYUh5ZVFmV0pTM2luL3hFUnVWaVVz?=
 =?utf-8?B?c3hvcGFEbGJiN0VNRVRTQld1YXB3QjZ5d1BQVlYvRlZFakZzbmF3bHdFY0dY?=
 =?utf-8?B?Q1hSSkpuaTk0aThVMXNhWHhYUUJYK3NheVFRZ3piQ09GYStQYnhPeWNaaUVF?=
 =?utf-8?B?VFhyV3R4My9MaTVDNzJmRCtwc1czZUNsWDdMSEdQbW5sSUNEZlZmMjMwVGwz?=
 =?utf-8?B?UEhYcnBuanNrV09mMDlPcDFuMi9GOXFCL3ZjWTU3SUgzcGhDbzZLNlFjdzJx?=
 =?utf-8?B?TjBLVXZiZUVndmxFSlJJN3BTdnJyN0trMWN6azlQMmJpaVdsNWxVbEtldVBh?=
 =?utf-8?B?VWVoNWNrQ2cxTVBMbUcrK0xMMFdpbEtrRWFZRm1sclpGMVZ4SCtka2VnNzNq?=
 =?utf-8?B?ekdHNnJFcHVSNGNsdmxqOUs5clN4NWg1aExFbGxWdk1Wc05teHUrVEJYa0RK?=
 =?utf-8?B?RFpQS1M5ajNQQ290R2tHaW1RMi9SYkxXaldEYzRmbE5DK2JibFVjaUtldGpY?=
 =?utf-8?B?U2pkeXBlSngwcmpiMFNtNC9zVUlZdFNjaUlWZzVqRFB4UGV4SDdKLzQrVzli?=
 =?utf-8?B?bEVGd0ZwQU5mb2tWVEVQZzFlOW1iUFJiYjd5cUFId29pVnh1VjJFamFPbkJy?=
 =?utf-8?B?VUh5TWVRVXR4NTJVbzREMC9hcXhFemxQWXpzV2pYVXFFb1pXRUQzLzk3UHZl?=
 =?utf-8?B?SEk5VUlIK2NPSnkzeTZSMXlFY0FrNTlZL2dXY3oxTG1yY1U3YnFkY0t2b0xX?=
 =?utf-8?B?cGZFcXZneENINmxsa1NGQ0JPRWo0d3VsQWdIeDJTbWMzL0NlSXo2c0gwRVpL?=
 =?utf-8?B?YVBneTdSUEg5SGlxUzNYWkZHSEpGZkRKUzlCZC82SjVEQ3h1QVc0cXY3Q0p6?=
 =?utf-8?B?aVJ5SGxrQ1BXTndyOTQ5WmpkQnJwOFp4aEZDWDY1TFlsOGdrcGFZYWJ5ZHdq?=
 =?utf-8?B?bW8zSmJLcldXdk9KQ2hlMWRVTzZRdlRzZUozM3dTZzV5eEZpNTdTSVc2TUJW?=
 =?utf-8?B?TktYZ1ZFVlZLOHRPdUxFYmd4cXdueHJ1SEU5RTNRZnhDeVliNTl0MVE0a0F4?=
 =?utf-8?B?UUxUVE53VFhFR2x3UnNQcUpVWVlWcmZxSGVIYlRGVFdqT3l4cFZiNEVNUHV2?=
 =?utf-8?B?RVcwdTJQVlk5dTBPaUg2dVJOOXRQV3BHWlFONHpKby9kZHVzNWlCT016K2FJ?=
 =?utf-8?B?NjY0VFoxSkZYd3lIQUFxeTJOUmNRV3VnSklIVUhjajI0ZmtBMStLOEp4Uytu?=
 =?utf-8?B?cllITFYycjFVclhzWGlXd1pYQlpjS3FLZmYrVW5HUlc4ckFHNkNPTkprdUFK?=
 =?utf-8?B?cENwa3gwWitMdVBCRkhCSUo3d0hNcFg1azMzUFp0SFU2cVEzRWI4b0Z4U05Z?=
 =?utf-8?B?MXJsejR6OE1hcmlnZ3NTT1NUemVES1JhdWw1akFta1V6dzQwTldSSFBwVVZI?=
 =?utf-8?B?UHBmN1V6K0tMRlFIWFMzWXN2VEdxRGlqZGNqaGRxOXUxa1JBZ29xUVVZUU5q?=
 =?utf-8?B?UTVpOG1IK3JUajZMNjJTVG55aUJHbm1pNUJ4REYvSE1XWm1PR0toZ04wVk9y?=
 =?utf-8?B?aXhFSUprU3VqMzJUZHhTTXowRXRFdXQxYlBFQ3VYVVJ0NWQwNTdTSFRhN1Ez?=
 =?utf-8?B?NElNRWxBajh4QXVuckhkd20xdkVxcWJpY1RlMHlaSnBjVGhVRmRhelBydlEx?=
 =?utf-8?B?Wk96emhlM3VObjg3cFZqUzJYM2tYTXJSTkhWU1kxSlNUcmFTbXA3REZBcWxh?=
 =?utf-8?B?VmQ0a0hVTVBRclRkenN5TVBrd1V4dUowMC9NeWFZNDU0VHBta1lJL05DTXhY?=
 =?utf-8?B?Nm1oUGJTK3FqWGlkYnI4UkdzNVhmVHc5UGdHRDBwZFh3MnluZERzR2svZ3V4?=
 =?utf-8?B?VWF2cm9HdDZZd0U5UjVCVzV3NlZydWFnRnBGd2lsdUk0QjJhNnM5bng5TWZz?=
 =?utf-8?Q?qGe0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4296088B35BE354AA288EE949BF63EC2@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dec72d18-2e99-4883-4c71-08dcfa3b94ff
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2024 06:08:18.9402
 (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: cKqAhZs/V1MxXS50yaubPV3xrIY9dw91vZJxBQa6f0iOp1GELa7/2Bk/jcEmYaVUMxwa50//fy+n89CckkWoAw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7587

SGksDQoNCk9uIDIwMjQvMTAvMjQgMTc6MDYsIEppcWlhbiBDaGVuIHdyb3RlOg0KPiBJbiBQVkgg
ZG9tMCwgd2hlbiBwYXNzdGhyb3VnaCBhIGRldmljZSB0byBkb21VLCBRRU1VIGNvZGUNCj4geGVu
X3B0X3JlYWxpemUtPnhjX3BoeXNkZXZfbWFwX3BpcnEgd2FudHMgdG8gdXNlIGdzaSwgYnV0IGlu
IGN1cnJlbnQgY29kZXMNCj4gdGhlIGdzaSBudW1iZXIgaXMgZ290IGZyb20gZmlsZSAvc3lzL2J1
cy9wY2kvZGV2aWNlcy88c2JkZj4vaXJxLCB0aGF0IGlzDQo+IHdyb25nLCBiZWNhdXNlIGlycSBp
cyBub3QgZXF1YWwgd2l0aCBnc2ksIHRoZXkgYXJlIGluIGRpZmZlcmVudCBzcGFjZXMsIHNvDQo+
IHBpcnEgbWFwcGluZyBmYWlscy4NCj4gDQo+IFRvIHNvbHZlIGFib3ZlIHByb2JsZW0sIHVzZSBu
ZXcgaW50ZXJmYWNlIG9mIFhlbiwgeGNfcGNpZGV2X2dldF9nc2kgdG8gZ2V0DQo+IGdzaSBhbmQg
dXNlIHhjX3BoeXNkZXZfbWFwX3BpcnFfZ3NpIHRvIG1hcCBwaXJxIHdoZW4gZG9tMCBpcyBQVkgu
DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4N
Cj4gU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4NCj4gU2lnbmVk
LW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+DQo+IC0tLQ0KPiBIaSBB
bGwsDQo+IFRoaXMgaXMgdjkgdG8gc3VwcG9ydCBwYXNzdGhyb3VnaCBvbiBYZW4gd2hlbiBkb20w
IGlzIFBWSC4NCj4gdjgtPnY5IGNoYW5nZXM6DQo+ICogTW92ZWQgdGhlIGRlZmluaXRpb24gb2Yg
UENJX1NCREYgZnJvbSAvaHcveGVuL3hlbl9wdC5jIHRvIC9pbmNsdWRlL2h3L3BjaS9wY2kuaC4N
Cj4gKiBSZW5hbWVkIHhlbl9ydW5fcWVtdV9vbl9odm0gdG8geGVuX3B0X25lZWRfZ3NpLg0KPiAq
IFJlbmFtZWQgeGVuX21hcF9waXJxX2Zvcl9nc2kgdG8geGVuX3B0X21hcF9waXJxX2Zvcl9nc2ku
DQo+ICogVGhyb3VnaCByZWFkaW5nIC9zeXMvaHlwZXJ2aXNvci9ndWVzdF90eXBlIHRvIGdldCBk
b20gdHlwZSBpbnN0ZWFkIG9mIHVzaW5nIHhjX2RvbWFpbl9nZXRpbmZvX3NpbmdsZS4NCj4gDQo+
IEJlc3QgcmVnYXJkcywNCj4gSmlxaWFuIENoZW4NCj4gDQo+IHY3LT52OCBjaGFuZ2VzOg0KPiAq
IFNpbmNlIHhjX3BoeXNkZXZfZ3NpX2Zyb21fZGV2IHdhcyByZW5hbWVkIHRvIHhjX3BjaWRldl9n
ZXRfZ3NpLCBjaGFuZ2VkIGl0Lg0KPiAqIEFkZGVkIHhlbl9ydW5fcWVtdV9vbl9odm0gdG8gY2hl
Y2sgaWYgUWVtdSBydW4gb24gUFYgZG9tMCwgaWYgbm90IHVzZSB4Y19waHlzZGV2X21hcF9waXJx
X2dzaSB0byBtYXAgcGlycS4NCj4gKiBVc2VkIENPTkZJR19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVS
U0lPTiB0byB3cmFwIHRoZSBuZXcgcGFydCBmb3IgY29tcGF0aWJpbGl0eS4NCj4gKiBBZGRlZCAi
I2RlZmluZSBET01JRF9SVU5fUUVNVSAwIiB0byByZXByZXNlbnQgdGhlIGlkIG9mIGRvbWFpbiB0
aGF0IFFlbXUgcnVuIG9uLg0KPiANCj4gdjYtPnY3IGNoYW5nZXM6DQo+ICogQmVjYXVzZSB0aGUg
ZnVuY3Rpb24gb2Ygb2J0YWluaW5nIGdzaSB3YXMgY2hhbmdlZCBvbiB0aGUga2VybmVsIGFuZCBY
ZW4gc2lkZS4gQ2hhbmdlZCB0byB1c2UNCj4gICB4Y19waHlzZGV2X2dzaV9mcm9tX2RldiwgdGhh
dCByZXF1aXJlcyBwYXNzaW5nIGluIHNiZGYgaW5zdGVhZCBvZiBpcnEuDQo+IA0KPiB2NS0+djYg
Y2hhbmdlczoNCj4gKiBCZWNhdXNlIHRoZSBmdW5jdGlvbiBvZiBvYnRhaW5pbmcgZ3NpIHdhcyBj
aGFuZ2VkIG9uIHRoZSBrZXJuZWwgYW5kIFhlbiBzaWRlLiBDaGFuZ2VkIHRvIHVzZQ0KPiAgIHhj
X3BoeXNkZXZfZ3NpX2Zyb21faXJxLCBpbnN0ZWFkIG9mIGdzaSBzeXNmcy4NCj4gKiBTaW5jZSBm
dW5jdGlvbiBjaGFuZ2VkLCByZW1vdmVkIHRoZSBSZXZpZXctYnkgb2YgU3RlZmFuby4NCj4gDQo+
IHY0LT52NSBjaGFuZ2VzOg0KPiAqIEFkZGVkIFJldmlldy1ieSBTdGVmYW5vLg0KPiANCj4gdjMt
PnY0IGNoYW5nZXM6DQo+ICogQWRkZWQgZ3NpIGludG8gc3RydWN0IFhlbkhvc3RQQ0lEZXZpY2Ug
YW5kIHVzZWQgZ3NpIG51bWJlciB0aGF0IHJlYWQgZnJvbSBnc2kgc3lzZnMNCj4gICBpZiBpdCBl
eGlzdHMsIGlmIHRoZXJlIGlzIG5vIGdzaSBzeXNmcywgc3RpbGwgdXNlIGlycS4NCj4gDQo+IHYy
LT52MyBjaGFuZ2VzOg0KPiAqIER1ZSB0byBjaGFuZ2VzIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgc2Vjb25kIHBhdGNoIG9uIGtlcm5lbCBzaWRlKHRoYXQgYWRkcw0KPiAgIGEgbmV3IHN5
c2ZzIGZvciBnc2kgaW5zdGVhZCBvZiBhIG5ldyBzeXNjYWxsKSwgc28gcmVhZCBnc2kgbnVtYmVy
IGZyb20gdGhlIHN5c2ZzIG9mIGdzaS4NCj4gDQo+IHYxIGFuZCB2MjoNCj4gV2UgY2FuIHJlY29y
ZCB0aGUgcmVsYXRpb24gYmV0d2VlbiBnc2kgYW5kIGlycSwgdGhlbiB3aGVuIHVzZXJzcGFjZShx
ZW11KSB3YW50DQo+IHRvIHVzZSBnc2ksIHdlIGNhbiBkbyBhIHRyYW5zbGF0aW9uLiBUaGUgdGhp
cmQgcGF0Y2ggb2Yga2VybmVsKHhlbi9wcml2Y21kOiBBZGQgbmV3IHN5c2NhbGwNCj4gdG8gZ2V0
IGdzaSBmcm9tIGlycSkgcmVjb3JkcyBhbGwgdGhlIHJlbGF0aW9ucyBpbiBhY3BpX3JlZ2lzdGVy
X2dzaV94ZW5fcHZoKCkgd2hlbiBkb20wDQo+IGluaXRpYWxpemUgcGNpIGRldmljZXMsIGFuZCBw
cm92aWRlIGEgc3lzY2FsbCBmb3IgdXNlcnNwYWNlIHRvIGdldCB0aGUgZ3NpIGZyb20gaXJxLiBU
aGUNCj4gdGhpcmQgcGF0Y2ggb2YgeGVuKHRvb2xzOiBBZGQgbmV3IGZ1bmN0aW9uIHRvIGdldCBn
c2kgZnJvbSBpcnEpIGFkZCBhIG5ldyBmdW5jdGlvbg0KPiB4Y19waHlzZGV2X2dzaV9mcm9tX2ly
cSgpIHRvIGNhbGwgdGhlIG5ldyBzeXNjYWxsIGFkZGVkIG9uIGtlcm5lbCBzaWRlLg0KPiBBbmQg
dGhlbiB1c2Vyc3BhY2UgY2FuIHVzZSB0aGF0IGZ1bmN0aW9uIHRvIGdldCBnc2kuIFRoZW4geGNf
cGh5c2Rldl9tYXBfcGlycSgpIHdpbGwgc3VjY2Vzcy4NCj4gDQo+IElzc3VlcyB3ZSBlbmNvdW50
ZXJlZDoNCj4gMS4gZmFpbGVkIHRvIG1hcCBwaXJxIGZvciBnc2kNCj4gUHJvYmxlbTogcWVtdSB3
aWxsIGNhbGwgeGNfcGh5c2Rldl9tYXBfcGlycSgpIHRvIG1hcCBhIHBhc3N0aHJvdWdoIGRldmlj
ZSdzIGdzaSB0byBwaXJxIGluDQo+IGZ1bmN0aW9uIHhlbl9wdF9yZWFsaXplKCkuIEJ1dCBmYWls
ZWQuDQo+IA0KPiBSZWFzb246IEFjY29yZGluZyB0byB0aGUgaW1wbGVtZW50IG9mIHhjX3BoeXNk
ZXZfbWFwX3BpcnEoKSwgaXQgbmVlZHMgZ3NpIGluc3RlYWQgb2YgaXJxLA0KPiBidXQgcWVtdSBw
YXNzIGlycSB0byBpdCBhbmQgdHJlYXQgaXJxIGFzIGdzaSwgaXQgaXMgZ290IGZyb20gZmlsZQ0K
PiAvc3lzL2J1cy9wY2kvZGV2aWNlcy94eHh4Onh4Onh4LngvaXJxIGluIGZ1bmN0aW9uIHhlbl9o
b3N0X3BjaV9kZXZpY2VfZ2V0KCkuIEJ1dCBhY3R1YWxseQ0KPiB0aGUgZ3NpIG51bWJlciBpcyBu
b3QgZXF1YWwgd2l0aCBpcnEuIFRoZXkgYXJlIGluIGRpZmZlcmVudCBzcGFjZS4NCj4gLS0tDQo+
ICBody94ZW4veGVuX3B0LmMgICAgICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrDQo+ICBpbmNsdWRlL2h3L3BjaS9wY2kuaCB8ICA0ICsrKysNCj4gIDIg
ZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2h3L3hl
bi94ZW5fcHQuYyBiL2h3L3hlbi94ZW5fcHQuYw0KPiBpbmRleCAzNjM1ZDFiMzlmNzkuLjViMTBk
NTAxZDU2NiAxMDA2NDQNCj4gLS0tIGEvaHcveGVuL3hlbl9wdC5jDQo+ICsrKyBiL2h3L3hlbi94
ZW5fcHQuYw0KPiBAQCAtNzY2LDYgKzc2Niw1MCBAQCBzdGF0aWMgdm9pZCB4ZW5fcHRfZGVzdHJv
eShQQ0lEZXZpY2UgKmQpIHsNCj4gIH0NCj4gIC8qIGluaXQgKi8NCj4gIA0KPiArI2lmIENPTkZJ
R19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lPTiA+PSA0MjAwMA0KPiArc3RhdGljIGJvb2wgeGVu
X3B0X25lZWRfZ3NpKHZvaWQpDQo+ICt7DQo+ICsgICAgRklMRSAqZnA7DQo+ICsgICAgaW50IGxl
bjsNCj4gKyAgICBjaGFyIHR5cGVbMTBdOw0KPiArICAgIGNvbnN0IGNoYXIgKmd1ZXN0X3R5cGUg
PSAiL3N5cy9oeXBlcnZpc29yL2d1ZXN0X3R5cGUiOw0KPiArDQo+ICsgICAgZnAgPSBmb3Blbihn
dWVzdF90eXBlLCAiciIpOw0KPiArICAgIGlmIChmcCA9PSBOVUxMKSB7DQo+ICsgICAgICAgIGVy
cm9yX3JlcG9ydCgiQ2Fubm90IG9wZW4gJXM6ICVzIiwgZ3Vlc3RfdHlwZSwgc3RyZXJyb3IoZXJy
bm8pKTsNCj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiArICAgIH0NCj4gKyAgICBmZ2V0cyh0
eXBlLCBzaXplb2YodHlwZSksIGZwKTsNCj4gKyAgICBmY2xvc2UoZnApOw0KPiArDQo+ICsgICAg
bGVuID0gc3RybGVuKHR5cGUpOw0KPiArICAgIGlmIChsZW4pIHsNCj4gKyAgICAgICAgdHlwZVts
ZW4gLSAxXSA9ICdcMCc7DQo+ICsgICAgICAgIGlmICghc3RyY21wKHR5cGUsICJQVkgiKSkgew0K
PiArICAgICAgICAgICAgcmV0dXJuIHRydWU7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsg
ICAgcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHhlbl9wdF9tYXBfcGly
cV9mb3JfZ3NpKFBDSURldmljZSAqZCwgaW50ICpwaXJxKQ0KPiArew0KPiArICAgIGludCBnc2k7
DQo+ICsgICAgWGVuUENJUGFzc3Rocm91Z2hTdGF0ZSAqcyA9IFhFTl9QVF9ERVZJQ0UoZCk7DQo+
ICsNCj4gKyAgICBnc2kgPSB4Y19wY2lkZXZfZ2V0X2dzaSh4ZW5feGMsDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUENJX1NCREYocy0+cmVhbF9kZXZpY2UuZG9tYWluLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPnJlYWxfZGV2aWNlLmJ1cywNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5yZWFsX2RldmljZS5kZXYs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+cmVhbF9kZXZpY2Uu
ZnVuYykpOw0KPiArICAgIGlmIChnc2kgPj0gMCkgew0KPiArICAgICAgICByZXR1cm4geGNfcGh5
c2Rldl9tYXBfcGlycV9nc2koeGVuX3hjLCB4ZW5fZG9taWQsIGdzaSwgcGlycSk7DQo+ICsgICAg
fQ0KPiArDQo+ICsgICAgcmV0dXJuIGdzaTsNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICBzdGF0
aWMgdm9pZCB4ZW5fcHRfcmVhbGl6ZShQQ0lEZXZpY2UgKmQsIEVycm9yICoqZXJycCkNCj4gIHsN
Cj4gICAgICBFUlJQX0dVQVJEKCk7DQo+IEBAIC04NDcsNyArODkxLDE2IEBAIHN0YXRpYyB2b2lk
IHhlbl9wdF9yZWFsaXplKFBDSURldmljZSAqZCwgRXJyb3IgKiplcnJwKQ0KPiAgICAgICAgICBn
b3RvIG91dDsNCj4gICAgICB9DQo+ICANCj4gKyNpZiBDT05GSUdfWEVOX0NUUkxfSU5URVJGQUNF
X1ZFUlNJT04gPj0gNDIwMDANCj4gKyAgICBpZiAoeGVuX3B0X25lZWRfZ3NpKCkpIHsNCj4gKyAg
ICAgICAgcmMgPSB4ZW5fcHRfbWFwX3BpcnFfZm9yX2dzaShkLCAmcGlycSk7DQo+ICsgICAgfSBl
bHNlIHsNCj4gKyAgICAgICAgcmMgPSB4Y19waHlzZGV2X21hcF9waXJxKHhlbl94YywgeGVuX2Rv
bWlkLCBtYWNoaW5lX2lycSwgJnBpcnEpOw0KPiArICAgIH0NCj4gKyNlbHNlDQo+ICAgICAgcmMg
PSB4Y19waHlzZGV2X21hcF9waXJxKHhlbl94YywgeGVuX2RvbWlkLCBtYWNoaW5lX2lycSwgJnBp
cnEpOw0KPiArI2VuZGlmDQo+ICsNCj4gICAgICBpZiAocmMgPCAwKSB7DQo+ICAgICAgICAgIFhF
Tl9QVF9FUlIoZCwgIk1hcHBpbmcgbWFjaGluZSBpcnEgJXUgdG8gcGlycSAlaSBmYWlsZWQsIChl
cnI6ICVkKVxuIiwNCj4gICAgICAgICAgICAgICAgICAgICBtYWNoaW5lX2lycSwgcGlycSwgZXJy
bm8pOw0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9wY2kvcGNpLmggYi9pbmNsdWRlL2h3L3Bj
aS9wY2kuaA0KPiBpbmRleCBlYjI2Y2FjODEwOTguLjA3ODA1YWE4YTVmMyAxMDA2NDQNCj4gLS0t
IGEvaW5jbHVkZS9ody9wY2kvcGNpLmgNCj4gKysrIGIvaW5jbHVkZS9ody9wY2kvcGNpLmgNCj4g
QEAgLTIzLDYgKzIzLDEwIEBAIGV4dGVybiBib29sIHBjaV9hdmFpbGFibGU7DQo+ICAjZGVmaW5l
IFBDSV9TTE9UX01BWCAgICAgICAgICAgIDMyDQo+ICAjZGVmaW5lIFBDSV9GVU5DX01BWCAgICAg
ICAgICAgIDgNCj4gIA0KPiArI2RlZmluZSBQQ0lfU0JERihzZWcsIGJ1cywgZGV2LCBmdW5jKSBc
DQo+ICsgICAgICAgICAgICAoKCgodWludDMyX3QpKHNlZykpIDw8IDE2KSB8IFwNCj4gKyAgICAg
ICAgICAgIChQQ0lfQlVJTERfQkRGKGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpKSkNCj4gKw0K
PiAgLyogQ2xhc3MsIFZlbmRvciBhbmQgRGV2aWNlIElEcyBmcm9tIExpbnV4J3MgcGNpX2lkcy5o
ICovDQo+ICAjaW5jbHVkZSAiaHcvcGNpL3BjaV9pZHMuaCINCj4gIA0KRG8geW91IGhhdmUgYW55
IGNvbW1lbnRzPw0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 06:48:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 06:48:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.828954.1244056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6lSC-0001og-4m; Fri, 01 Nov 2024 06:48:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 828954.1244056; Fri, 01 Nov 2024 06:48: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 1t6lSC-0001oZ-1W; Fri, 01 Nov 2024 06:48:16 +0000
Received: by outflank-mailman (input) for mailman id 828954;
 Fri, 01 Nov 2024 06:48: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=zSVc=R4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1t6lSA-0001oT-Os
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 06:48:14 +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 420b9c00-981d-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 07:48:10 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-431695fa98bso13231835e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 31 Oct 2024 23:48:10 -0700 (PDT)
Received: from ?IPV6:2003:e5:8706:5100:ddd3:fe18:d0ae:c30d?
 (p200300e587065100ddd3fe18d0aec30d.dip0.t-ipconnect.de.
 [2003:e5:8706:5100:ddd3:fe18:d0ae:c30d])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-431b43ab29csm96212715e9.0.2024.10.31.23.48.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 31 Oct 2024 23:48:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 420b9c00-981d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQyMGI5YzAwLTk4MWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDQzNjkwLjM2NTc5LCJzZW5kZXIiOiJqZ3Jvc3NAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730443690; x=1731048490; 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=GuhMa+CTVdUdvC1OJ9ceEoQ3Vm5ra1p1KWx5hpWZL58=;
        b=Q1kIovHfWxIWlMFKGjBeHhECfLPksEPfgpB4jMbrIUQPfWPQPs5mwvQtIxQjasQ5rr
         l58sJpbiWHbeSewEvkGTcYKV+a9MBltnoF9cPwz7NyGUy2mvdSj6vhhSyXxdW7v2ajgI
         vhbBJUrgVS0y0npHCCE787BIvLlAaWkMKTiosxZ2zw9XHbrbP+ehmcY+JIZiv2mkM70b
         8uoih6+aanp6LjxFQXqAzN/ohL8gDg7TL9lNwlLPAavrJN5z9ASIGzNlcdBpgJCW96id
         KtC17bN+i27weEaXA722hEECkZnf0hE8AOROn+q6eV1di4qv7bSv5POWqZayBZS5/spC
         VwbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730443690; x=1731048490;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GuhMa+CTVdUdvC1OJ9ceEoQ3Vm5ra1p1KWx5hpWZL58=;
        b=AIQ21zdurT1pwDCBrR4afHs6CCKO5ECAsn2xw/5/W982A4UoRe5Mqp7F1diEvzA+sE
         W8LI9um3xdIUSa+QfQ0+apFs5lxy3FF0KK04QNz0wBEm7cTvx4WFe2C4SZEkUr/f2C0c
         e0Zn1/zU2hNdRWWfvZG2cAN+wjXMASgL4pur/id5FUUN+ohYwIX60iTxw0AHSvoLc+IU
         9sqdFdYPTdTAbVuATwBPFHSN+PnpOlw2o28pmOR+Qoxk+A9CPEuqen4nea3eIopMr1Rk
         l4BlMR+hFvTEND52BzfZ/eUmllbEoHmlNWCmkaQgp6EIoMGx4XUe+WsVI3WkrZ7mzDee
         oT0w==
X-Forwarded-Encrypted: i=1; AJvYcCXCQoWdlyXWnf/+zp6cJOr/bcLZIhdWjPiCNUleMv6Olq8PV26Vj/ilMS1eGfURL6Vj4x5xoeLEhEw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzg1LN0jWBonK/qz3mg16q9H+vn59yt0BpQxAWk2jBWR/S3ZjU9
	d4O96fnpMTkE0I6CXsaeg1/ACf5FuIuQah/wmMaLvJIw8++5m1Lxjea+zRZOgTs=
X-Google-Smtp-Source: AGHT+IEAs7KZ66W5MvBX6Rf2Cn4toav3U4ObBntEDvTrwo/DCRKe2E+c7yrmBVZW1XN5HmvKJcCaYg==
X-Received: by 2002:a05:600c:3c8c:b0:426:60b8:d8ba with SMTP id 5b1f17b1804b1-4319ad04990mr183077475e9.28.1730443689531;
        Thu, 31 Oct 2024 23:48:09 -0700 (PDT)
Message-ID: <fadbb6da-a314-4f1b-8a59-92c1c201dd09@suse.com>
Date: Fri, 1 Nov 2024 07:48:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] xen: add bitmap to indicate per-domain state changes
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-3-jgross@suse.com>
 <6823a222-63ad-4a5a-83d2-70c6f39f38c0@suse.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: <6823a222-63ad-4a5a-83d2-70c6f39f38c0@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------lJLlPK55tdgeLDHyzKHgvXdB"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------lJLlPK55tdgeLDHyzKHgvXdB
Content-Type: multipart/mixed; boundary="------------uiWOMzxdurhS00Ka09GIvmut";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <fadbb6da-a314-4f1b-8a59-92c1c201dd09@suse.com>
Subject: Re: [PATCH 2/6] xen: add bitmap to indicate per-domain state changes
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-3-jgross@suse.com>
 <6823a222-63ad-4a5a-83d2-70c6f39f38c0@suse.com>
In-Reply-To: <6823a222-63ad-4a5a-83d2-70c6f39f38c0@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=

--------------uiWOMzxdurhS00Ka09GIvmut
Content-Type: multipart/mixed; boundary="------------RcYY6GT8YXfb1gEF2H4O6AVd"

--------------RcYY6GT8YXfb1gEF2H4O6AVd
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMzEuMTAuMjQgMTE6NTksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMy4xMC4yMDI0
IDE1OjEwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gQWRkIGEgYml0bWFwIHdpdGggb25l
IGJpdCBwZXIgcG9zc2libGUgZG9taWQgaW5kaWNhdGluZyB0aGUgcmVzcGVjdGl2ZQ0KPj4g
ZG9tYWluIGhhcyBjaGFuZ2VkIGl0cyBzdGF0ZSAoY3JlYXRlZCwgZGVsZXRlZCwgZHlpbmcs
IGNyYXNoZWQsDQo+PiBzaHV0ZG93bikuDQo+Pg0KPj4gUmVnaXN0ZXJpbmcgdGhlIFZJUlFf
RE9NX0VYQyBldmVudCB3aWxsIHJlc3VsdCBpbiBzZXR0aW5nIHRoZSBiaXRzIGZvcg0KPj4g
YWxsIGV4aXN0aW5nIGRvbWFpbnMgYW5kIHJlc2V0dGluZyBhbGwgb3RoZXIgYml0cy4NCj4g
DQo+IFRoYXQncyBmdXJ0aGVyaW5nIHRoZSAidGhlcmUgY2FuIGJlIG9ubHkgb25lIGNvbnN1
bWVyIiBtb2RlbCB0aGF0IGFsc28NCj4gaXMgdXNlZCBmb3IgVklSUV9ET01fRVhDIGl0c2Vs
Zi4gSSBjb25zaWRlciB0aGUgZXhpc3RpbmcgbW9kZWwgZmxhd2VkDQo+IChub3RoaW5nIGtl
ZXBzIGEgMm5kIHBhcnR5IHdpdGggc3VmZmljaWVudCBwcml2aWxlZ2UgZnJvbSBpbnZva2lu
Zw0KPiBYRU5fRE9NQ1RMX3NldF92aXJxX2hhbmRsZXIgYSAybmQgdGltZSwgdGFraW5nIGF3
YXkgdGhlIG5vdGlmaWNhdGlvbg0KPiBmcm9tIHdob2V2ZXIgaGFkIGZpcnN0IHJlcXVlc3Rl
ZCBpdCksIGFuZCBoZW5jZSBJIGRpc2xpa2UgdGhpcyBiZWluZw0KPiBleHRlbmRlZC4gQ29u
Y2VpdmFibHkgbXVsdGlwbGUgcGFydGllcyBtYXkgaW5kZWVkIGJlIGludGVyZXN0ZWQgaW4N
Cj4gdGhpcyBraW5kIG9mIGluZm9ybWF0aW9uLiBBdCB3aGljaCBwb2ludCByZXNldHRpbmcg
c3RhdGUgd2hlbiB0aGUgdklSUQ0KPiBpcyBib3VuZCBpcyBxdWVzdGlvbmFibGUgKG9yIHRo
ZSBkYXRhIHdvdWxkIG5lZWQgdG8gYmVjb21lIHBlci1kb21haW4NCj4gcmF0aGVyIHRoYW4g
Z2xvYmFsLCBvciBldmVuIHlldCBtb3JlIGZpbmUtZ3JhaW5lZCwgYWxiZWl0DQo+IC0+dmly
cV90b19ldnRjaG5bXSBpcyBhbHNvIHBlci1kb21haW4sIHdoZW4gY29uc2lkZXJpbmcgZ2xv
YmFsIHZJUlEtcykuDQoNClRoZSBiaXRtYXAgaXMgZGlyZWN0bHkgdGllZCB0byB0aGUgVklS
UV9ET01fRVhDIGFueXdheSwgYXMgaXQgaXMgdGhhdA0KZXZlbnQgd2hpY2ggbWFrZXMgdGhl
IGNvbnN1bWVyIGxvb2sgaW50byB0aGUgYml0bWFwIHZpYSB0aGUgbmV3IGh5cGVyY2FsbC4N
Cg0KSWYgd2UgZGVjaWRlIHRvIGFsbG93IG11bHRpcGxlIGNvbnN1bWVycyBvZiBWSVJRX0RP
TV9FWEMsIHdlJ2xsIG5lZWQgdG8NCmhhdmUgb25lIGJpdG1hcCBwZXIgY29uc3VtZXIgb2Yg
dGhlIGV2ZW50LiBUaGlzIGlzIG5vdCB2ZXJ5IGhhcmQgdG8NCm1vZGlmeS4NCg0KSWYgeW91
J2QgbGlrZSB0aGF0IGJldHRlciwgSSBjYW4gZHluYW1pY2FsbHkgYWxsb2NhdGUgdGhlIGJp
dG1hcCBvbg0KYmluZGluZyBWSVJRX0RPTV9FWEMgYW5kIGZyZWVpbmcgaXQgYWdhaW4gd2hl
biB1bmJpbmRpbmcgaXMgZG9uZS4NCg0KPiANCj4+IC0tLSBhL3hlbi9jb21tb24vZG9tYWlu
LmMNCj4+ICsrKyBiL3hlbi9jb21tb24vZG9tYWluLmMNCj4+IEBAIC0xMzgsNiArMTM4LDIy
IEBAIGJvb2wgX19yZWFkX21vc3RseSB2bXRyYWNlX2F2YWlsYWJsZTsNCj4+ICAgDQo+PiAg
IGJvb2wgX19yZWFkX21vc3RseSB2cG11X2lzX2F2YWlsYWJsZTsNCj4+ICAgDQo+PiArc3Rh
dGljIERFQ0xBUkVfQklUTUFQKGRvbV9zdGF0ZV9jaGFuZ2VkLCBET01JRF9NQVNLICsgMSk7
DQo+IA0KPiBXaGlsZSBpdCB3b24ndCBhbHRlciB0aGUgc2l6ZSBvZiB0aGUgYXJyYXksIEkg
dGhpbmsgRE9NSURfRklSU1RfUkVTRVJWRUQNCj4gd291bGQgYmUgbW9yZSBsb2dpY2FsIHRv
IHVzZSBoZXJlIGFuZCAuLi4NCj4gDQo+PiArdm9pZCBkb21haW5fcmVzZXRfc3RhdGVzKHZv
aWQpDQo+PiArew0KPj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkOw0KPj4gKw0KPj4gKyAgICBi
aXRtYXBfemVybyhkb21fc3RhdGVfY2hhbmdlZCwgRE9NSURfTUFTSyArIDEpOw0KPiANCj4g
Li4uIGhlcmUuDQoNCkZpbmUgd2l0aCBtZS4NCg0KPiANCj4+ICsgICAgcmN1X3JlYWRfbG9j
aygmZG9tbGlzdF9yZWFkX2xvY2spOw0KPj4gKw0KPj4gKyAgICBmb3JfZWFjaF9kb21haW4g
KCBkICkNCj4+ICsgICAgICAgIHNldF9iaXQoZC0+ZG9tYWluX2lkLCBkb21fc3RhdGVfY2hh
bmdlZCk7DQo+IA0KPiBkIGlzIHVzZWQgb25seSBoZXJlLCBzbyBjb3VsZCBiZSBwb2ludGVy
LXRvLWNvbnN0Pw0KDQpBZ3JlZWQuDQoNCj4gDQo+PiAtLS0gYS94ZW4vY29tbW9uL2V2ZW50
X2NoYW5uZWwuYw0KPj4gKysrIGIveGVuL2NvbW1vbi9ldmVudF9jaGFubmVsLmMNCj4+IEBA
IC0xMjk2LDYgKzEyOTYsOCBAQCBsb25nIGRvX2V2ZW50X2NoYW5uZWxfb3AoaW50IGNtZCwg
WEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+PiAgICAgICAgICAgcmMgPSBl
dnRjaG5fYmluZF92aXJxKCZiaW5kX3ZpcnEsIDApOw0KPj4gICAgICAgICAgIGlmICggIXJj
ICYmIF9fY29weV90b19ndWVzdChhcmcsICZiaW5kX3ZpcnEsIDEpICkNCj4+ICAgICAgICAg
ICAgICAgcmMgPSAtRUZBVUxUOyAvKiBDbGVhbmluZyB1cCBoZXJlIHdvdWxkIGJlIGEgbWVz
cyEgKi8NCj4+ICsgICAgICAgIGlmICggIXJjICYmIGJpbmRfdmlycS52aXJxID09IFZJUlFf
RE9NX0VYQyApDQo+PiArICAgICAgICAgICAgZG9tYWluX3Jlc2V0X3N0YXRlcygpOw0KPiAN
Cj4gZXZ0Y2huX2JpbmRfdmlycSgpIGlzbid0IHN0YXRpYywgc28gY2FsbGVycyBiZXlvbmQg
dGhlIHByZXNlbnQgb25lcyBjb3VsZA0KPiBhcHBlYXIgd2l0aG91dCBub3RpY2luZyB0aGUg
bmVlZCBmb3IgdGhpcyBzcGVjaWFsIGNhc2luZy4gSXMgdGhlcmUgYSByZWFzb24NCj4gdGhl
IGNoZWNrIGNhbid0IG1vdmUgaW50byB0aGUgZnVuY3Rpb24/IERvaW5nIHRoZSBjaGVjayBp
biBzcGl0ZSBvZiB0aGUNCj4gY29weS1vdXQgZmFpbGluZyBpcyBpbW8gc3RpbGwgcmVhc29u
YWJsZSBiZWhhdmlvci4NCg0KTW92aW5nIHRoZSB0ZXN0IGludG8gZXZ0Y2huX2JpbmRfdmly
cSgpIHNob3VsZCB3b3JrLiBJJ2xsIGNoYW5nZSB0aGF0Lg0KDQoNCkp1ZXJnZW4NCg==
--------------RcYY6GT8YXfb1gEF2H4O6AVd
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-----

--------------RcYY6GT8YXfb1gEF2H4O6AVd--

--------------uiWOMzxdurhS00Ka09GIvmut--

--------------lJLlPK55tdgeLDHyzKHgvXdB
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/Ey8FAmckeagFAwAAAAAACgkQsN6d1ii/Ey+s
FAf/S8s4NkqsdlzsUtRxUXawT3riuF8AxweF73fsqFxHFv6wWPKjsErAh2IYDgQYSowR9FYHOo17
XJAPt0WdL2uPy8H9Ey7EhxcTC8m0CommEjPTKqLz1yciZn01EGo+kCG72Q/LkiHSI2h4IG7mjeaj
2gXTTJl0dnSx07ExU4RjR8FHow+F2R13SZmZGlI8lEoyTfT0GULEHsAVKEGPzgR+Z7j11yYME9At
xuBjpk9gHPPR0eLwNLrcVQHbRBQkoFxWoVMpGXThtqqNPze0BzX3lv9X/5cwW0wDi6WK3scaaxOj
zp+6NYNe215jEG60+uOdcEiVqm+jtsqg6vr5YLKE2A==
=j6Hx
-----END PGP SIGNATURE-----

--------------lJLlPK55tdgeLDHyzKHgvXdB--


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 07:03:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 07:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.828961.1244067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6lh2-00056b-Ds; Fri, 01 Nov 2024 07:03:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 828961.1244067; Fri, 01 Nov 2024 07: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 1t6lh2-00056U-Ao; Fri, 01 Nov 2024 07:03:36 +0000
Received: by outflank-mailman (input) for mailman id 828961;
 Fri, 01 Nov 2024 07:03: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=zSVc=R4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1t6lh1-00056O-0g
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 07:03:35 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 675198a2-981f-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 08:03:31 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2fb5fa911aaso25584381fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 00:03:31 -0700 (PDT)
Received: from ?IPV6:2003:e5:8706:5100:ddd3:fe18:d0ae:c30d?
 (p200300e587065100ddd3fe18d0aec30d.dip0.t-ipconnect.de.
 [2003:e5:8706:5100:ddd3:fe18:d0ae:c30d])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9e56678a5csm149227966b.192.2024.11.01.00.03.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Nov 2024 00:03:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 675198a2-981f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzMiLCJoZWxvIjoibWFpbC1sajEteDIzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY3NTE5OGEyLTk4MWYtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDQ0NjExLjc0MTA2OSwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730444611; x=1731049411; 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=eJOpMsJi/pv/R0Eg16XHgJwYO5UCTL9vrpwD2MJN8w0=;
        b=ZYThDAcMEk9+Jw3ftn5W+jNzv+eCMu7jGOkq79Q2U37NKH4Ji4Uaoa0/jf+2kyQHlc
         AIk7FTDx7mVDQ9zNUGxPDKKtFLGjMSphfC0EQ5f39Ten8p/t/h7u8x9ed7KYFgBrja5f
         jTUpkX6EtCcBIxeP6H5jK0wje9s8FlGjXbcVI25/fgR5cHZc2BDeCkBCZoHZyJJawvTz
         nhUN1z6ToBF5fZDqR3lL7bUI1kv4zb9Et771B2hEibgaExlKpl7R1Lde2JSENld3DxjH
         M4/kxWnTIIjAMk/1vcqklASgN+AdBWs97gYnBQ0DeOYHVcB9hoZlQEGQtBfrZwWuxZa9
         fkLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730444611; x=1731049411;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=eJOpMsJi/pv/R0Eg16XHgJwYO5UCTL9vrpwD2MJN8w0=;
        b=NIgcMXjZZbj7uGv9PogRERwqzntyN9cvnk/3Efk7ho3+oIJZJOZQwdJf7O6mJi6Rf8
         N03/KftGm1ZDLzWCUsPhwAax02AObFUYfD8k69MWSkGEM3tXTP2piUuFalNFyTXddg31
         I9l0yP0no6rNTRXueP2HQp9owasGgUH9WIK+cBp2wojFPf1WYraOYMX3haDDnM7ns8KJ
         cPBqkbANO1AXpojVUzCUAbszRy9See4EGxVJAHGVEZt6+u4JYg2LDqxcVbZ/ge9EXvLb
         b609gxZwZgAmGekpSPWrghQT7atVgyYW+pWVN8wGwBpa2wdEa6/dre6ewjHSVetvNbiV
         bFjA==
X-Forwarded-Encrypted: i=1; AJvYcCUc5zJkII3vtitP8yppiupdaiiDC8UUwVawow+6A1BsInVlA3KXJ/turbjS84vpXd8x70x8whdJHnI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1kG9U3Q5DEr8QVSMSvdVWN3Vtg69tTg7RSYod7qE7N8aYygUv
	Nb/HUPyv9w4Zt8NXQuRTsv0OPFM+41vEcK8MulmrKcIO3ty2YS/jCF21e0P3oUs=
X-Google-Smtp-Source: AGHT+IFEgZYWMwrVeBi2ekK1ksXOMY4DQuofmPpD0wrv9E4vKn8t8pDyCXUqe67QSUOWiY4+TF1TPw==
X-Received: by 2002:a05:651c:890:b0:2fb:510c:7237 with SMTP id 38308e7fff4ca-2fedb83015emr22343671fa.41.1730444610938;
        Fri, 01 Nov 2024 00:03:30 -0700 (PDT)
Message-ID: <19052bbf-1b7e-4282-8018-7f7df41c9c40@suse.com>
Date: Fri, 1 Nov 2024 08:03:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] xen: add new domctl get_changed_domain
To: Jan Beulich <jbeulich@suse.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-4-jgross@suse.com>
 <f4791b83-67ce-4530-8ea3-581ee8c90631@suse.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: <f4791b83-67ce-4530-8ea3-581ee8c90631@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------7hv03FoBgGnFUMqGr25GVXDU"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------7hv03FoBgGnFUMqGr25GVXDU
Content-Type: multipart/mixed; boundary="------------wXdk0cizoWk0Tw2uuwabRIwo";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <19052bbf-1b7e-4282-8018-7f7df41c9c40@suse.com>
Subject: Re: [PATCH 3/6] xen: add new domctl get_changed_domain
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-4-jgross@suse.com>
 <f4791b83-67ce-4530-8ea3-581ee8c90631@suse.com>
In-Reply-To: <f4791b83-67ce-4530-8ea3-581ee8c90631@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=

--------------wXdk0cizoWk0Tw2uuwabRIwo
Content-Type: multipart/mixed; boundary="------------ja2pjXv10rLUR9BXuzipJwFH"

--------------ja2pjXv10rLUR9BXuzipJwFH
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMzEuMTAuMjQgMTI6MTYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMy4xMC4yMDI0
IDE1OjEwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gLS0tIGEveGVuL2NvbW1vbi9kb21h
aW4uYw0KPj4gKysrIGIveGVuL2NvbW1vbi9kb21haW4uYw0KPj4gQEAgLTE1NCw2ICsxNTQs
NTcgQEAgdm9pZCBkb21haW5fcmVzZXRfc3RhdGVzKHZvaWQpDQo+PiAgICAgICByY3VfcmVh
ZF91bmxvY2soJmRvbWxpc3RfcmVhZF9sb2NrKTsNCj4+ICAgfQ0KPj4gICANCj4+ICtzdGF0
aWMgdm9pZCBzZXRfZG9tYWluX3N0YXRlX2luZm8oc3RydWN0IHhlbl9kb21jdGxfZ2V0X2Rv
bWFpbl9zdGF0ZSAqaW5mbywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkNCj4+ICt7DQo+PiArICAgIGluZm8tPnN0YXRl
ID0gWEVOX0RPTUNUTF9HRVRET01TVEFURV9TVEFURV9FWElTVDsNCj4+ICsgICAgaWYgKCBk
LT5pc19zaHV0X2Rvd24gKQ0KPj4gKyAgICAgICAgaW5mby0+c3RhdGUgfD0gWEVOX0RPTUNU
TF9HRVRET01TVEFURV9TVEFURV9TSFVURE9XTjsNCj4+ICsgICAgaWYgKCBkLT5pc19keWlu
ZyA9PSBET01EWUlOR19kZWFkICkNCj4+ICsgICAgICAgIGluZm8tPnN0YXRlIHw9IFhFTl9E
T01DVExfR0VURE9NU1RBVEVfU1RBVEVfRFlJTkc7DQo+PiArICAgIGluZm8tPnVuaXF1ZV9p
ZCA9IGQtPnVuaXF1ZV9pZDsNCj4+ICt9DQo+PiArDQo+PiAraW50IGdldF9kb21haW5fc3Rh
dGUoc3RydWN0IHhlbl9kb21jdGxfZ2V0X2RvbWFpbl9zdGF0ZSAqaW5mbywgc3RydWN0IGRv
bWFpbiAqZCkNCj4+ICt7DQo+PiArICAgIHVuc2lnbmVkIGludCBkb207DQo+PiArDQo+PiAr
ICAgIG1lbXNldChpbmZvLCAwLCBzaXplb2YoKmluZm8pKTsNCj4gDQo+IFdvdWxkIHRoaXMg
YmV0dGVyIGdvIGludG8gc2V0X2RvbWFpbl9zdGF0ZV9pbmZvKCk/IEFoLCBubywgeW91IC4u
Lg0KPiANCj4+ICsgICAgaWYgKCBkICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgc2V0X2Rv
bWFpbl9zdGF0ZV9pbmZvKGluZm8sIGQpOw0KPj4gKw0KPj4gKyAgICAgICAgcmV0dXJuIDA7
DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgd2hpbGUgKCAoZG9tID0gZmluZF9maXJzdF9i
aXQoZG9tX3N0YXRlX2NoYW5nZWQsIERPTUlEX01BU0sgKyAxKSkgPA0KPj4gKyAgICAgICAg
ICAgIERPTUlEX0ZJUlNUX1JFU0VSVkVEICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgZCA9
IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChkb20pOw0KPiANCj4gLi4uIGFjcXVpcmluZyB0aGUg
bG9jayBlYXJseSBhbmQgdGhlbiAuLi4NCj4gDQo+PiArICAgICAgICBpZiAoIHRlc3RfYW5k
X2NsZWFyX2JpdChkb20sIGRvbV9zdGF0ZV9jaGFuZ2VkKSApDQo+PiArICAgICAgICB7DQo+
PiArICAgICAgICAgICAgaW5mby0+ZG9taWQgPSBkb207DQo+PiArICAgICAgICAgICAgaWYg
KCBkICkNCj4+ICsgICAgICAgICAgICB7DQo+PiArICAgICAgICAgICAgICAgIHNldF9kb21h
aW5fc3RhdGVfaW5mbyhpbmZvLCBkKTsNCj4gDQo+IC4uLiBwb3RlbnRpYWxseSBieXBhc3Np
bmcgdGhlIGNhbGwgKHdpdGgganVzdCB0aGUgZG9taWQgc2V0KSByZXF1aXJlcyBpdA0KPiB0
aGF0IHdheS4NCj4gDQo+IEFzIHRvIHRoZSBwb2ludCBpbiB0aW1lIHdoZW4gdGhlIGxvY2sg
aXMgYWNxdWlyZWQ6IFdoeSBpcyB0aGF0LCBzZWVpbmcgdGhhdA0KPiBpdCBjb21wbGljYXRl
cyB0aGUgdW5sb2NraW5nIGEgbGl0dGxlLCBieSByZXF1aXJpbmcgYSAybmQgdW5sb2NrIGEg
ZmV3DQo+IGxpbmVzIGRvd24/DQoNCkkgYWdyZWUgdGhpcyBjYW4gYmUgc2ltcGxpZmllZC4N
Cg0KPiANCj4+ICsgICAgICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7DQo+PiAr
ICAgICAgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICAgICAgIHJldHVybiAwOw0KPj4gKyAg
ICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICAgaWYgKCBkICkNCj4+ICsgICAgICAgIHsNCj4+
ICsgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsNCj4+ICsgICAgICAgIH0NCj4g
DQo+IE5pdDogTm8gbmVlZCBmb3IgdGhlIGJyYWNlcy4NCj4gDQo+PiAtLS0gYS94ZW4vY29t
bW9uL2V2ZW50X2NoYW5uZWwuYw0KPj4gKysrIGIveGVuL2NvbW1vbi9ldmVudF9jaGFubmVs
LmMNCj4+IEBAIC05NjksMTEgKzk2OSwxOCBAQCBzdGF0aWMgc3RydWN0IGRvbWFpbiAqZ2xv
YmFsX3ZpcnFfaGFuZGxlcnNbTlJfVklSUVNdIF9fcmVhZF9tb3N0bHk7DQo+PiAgIA0KPj4g
ICBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGdsb2JhbF92aXJxX2hhbmRsZXJzX2xvY2spOw0K
Pj4gICANCj4+ICtzdHJ1Y3QgZG9tYWluICpnZXRfZ2xvYmFsX3ZpcnFfaGFuZGxlcih1aW50
MzJfdCB2aXJxKQ0KPj4gK3sNCj4+ICsgICAgQVNTRVJUKHZpcnFfaXNfZ2xvYmFsKHZpcnEp
KTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIGdsb2JhbF92aXJxX2hhbmRsZXJzW3ZpcnFdID86
IGhhcmR3YXJlX2RvbWFpbjsNCj4+ICt9DQo+PiArDQo+PiAgIHZvaWQgc2VuZF9nbG9iYWxf
dmlycSh1aW50MzJfdCB2aXJxKQ0KPj4gICB7DQo+PiAgICAgICBBU1NFUlQodmlycV9pc19n
bG9iYWwodmlycSkpOw0KPj4gICANCj4+IC0gICAgc2VuZF9ndWVzdF9nbG9iYWxfdmlycShn
bG9iYWxfdmlycV9oYW5kbGVyc1t2aXJxXSA/OiBoYXJkd2FyZV9kb21haW4sIHZpcnEpOw0K
Pj4gKyAgICBzZW5kX2d1ZXN0X2dsb2JhbF92aXJxKGdldF9nbG9iYWxfdmlycV9oYW5kbGVy
KHZpcnEpLCB2aXJxKTsNCj4+ICAgfQ0KPiANCj4gSXMgdGhpcyBhIHN0YWxlIGxlZnRvdmVy
IGZyb20gYW4gZWFybGllciB2ZXJzaW9uPyBUaGVyZSdzIG5vIG90aGVyIGNhbGxlciBvZg0K
PiBnZXRfZ2xvYmFsX3ZpcnFfaGFuZGxlcigpIGhlcmUsIGhlbmNlIHRoZSBjaGFuZ2UgbG9v
a3MgdW5tb3RpdmF0ZWQgaGVyZS4NCg0KSSB0aGluayBpdCBpcyBpbmRlZWQgc3RhbGUgbm93
Lg0KDQo+IA0KPj4gQEAgLTEyMzYsNyArMTIzNywzNyBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9k
dF9vdmVybGF5IHsNCj4+ICAgfTsNCj4+ICAgI2VuZGlmDQo+PiAgIA0KPj4gKy8qDQo+PiAr
ICogWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlIChzdGFibGUgaW50ZXJmYWNlKQ0KPj4g
KyAqDQo+PiArICogR2V0IHN0YXRlIGluZm9ybWF0aW9uIG9mIGEgZG9tYWluLg0KPj4gKyAq
DQo+PiArICogSW4gY2FzZSBkb21haW4gaXMgRE9NSURfSU5WQUxJRCwgcmV0dXJuIGluZm9y
bWF0aW9uIGFib3V0IGEgZG9tYWluIGhhdmluZw0KPj4gKyAqIGNoYW5nZWQgc3RhdGUgYW5k
IHJlc2V0IHRoZSBzdGF0ZSBjaGFuZ2UgaW5kaWNhdG9yIGZvciB0aGF0IGRvbWFpbi4gVGhp
cw0KPj4gKyAqIGZ1bmN0aW9uIGlzIHVzYWJsZSBvbmx5IGJ5IGEgZG9tYWluIGhhdmluZyBy
ZWdpc3RlcmVkIHRoZSBWSVJRX0RPTV9FWEMNCj4+ICsgKiBldmVudCAobm9ybWFsbHkgWGVu
c3RvcmUpLg0KPj4gKyAqDQo+PiArICogU3VwcG9ydGVkIGludGVyZmFjZSB2ZXJzaW9uczog
MHgwMDAwMDAwMA0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9HRVRET01TVEFU
RV9WRVJTX01BWCAgICAwDQo+PiArc3RydWN0IHhlbl9kb21jdGxfZ2V0X2RvbWFpbl9zdGF0
ZSB7DQo+PiArICAgIGRvbWlkX3QgZG9taWQ7DQo+IA0KPiBEZXNwaXRlIHRoZSBET01JRF9J
TlZBTElEIHNwZWNpYWwgY2FzZSB0aGUgcmVkdW5kYW50IGRvbWlkIGhlcmUgaXMgb2RkLg0K
PiBZb3UgYWN0dWFsbHkgYWRkIHRoZSBuZXcgc3ViLW9wIHRvIHRoZSBzcGVjaWFsIGNhc2lu
ZyBvZiBvcC0+ZG9tYWluIGF0IHRoZQ0KPiB0b3Agb2YgZG9fZG9tY3RsKCksIHNvIHRoZSBz
b2xlIGRpZmZlcmVuY2UgdG8gbW9zdCBvdGhlciBzdWItb3BzIHdvdWxkIGJlDQo+IHRoYXQg
dGhpcyB0aGVuIGlzIGFuIElOL09VVCAocmF0aGVyIHRoYW4gdGhlIGZpZWxkIGhlcmUgYmVp
bmcgYW4gb3V0cHV0DQo+IG9ubHkgd2hlbiBET01JRF9JTlZBTElEIHdhcyBwYXNzZWQgaW4g
dmlhIHRoZSBjb21tb24gZG9taWQgZmllbGQpLg0KDQpUaGUgbWFpbiBpZGVhIHdhcyB0byBo
YXZlIGFsbCBkYXRhIHJldHVybmVkIGJ5IGdldF9kb21haW5fc3RhdGUoKSBpbiBzdHJ1Y3QN
Cnhlbl9kb21jdGxfZ2V0X2RvbWFpbl9zdGF0ZS4gSSdtIGZpbmUgZWl0aGVyIHdheS4NCg0K
QnV0IEkgdGhpbmsgdGhpcyBkaXNjdXNzaW9uIGlzIG1vb3Qgbm93LCBhcyBpdCBzZWVtcyB3
ZSBhcmUgc3dpdGNoaW5nIHRvIGENCm5ldyBoeXBlcmNhbGwgYW55d2F5LCB3aGVyZSB3ZSBw
cm9iYWJseSB3aWxsIGhhdmUgYWxsIGRhdGEgaW4gcGVyIHN1Yi1vcA0Kc3RydWN0cy4NCg0K
PiANCj4+ICsgICAgdWludDE2X3Qgc3RhdGU7DQo+PiArI2RlZmluZSBYRU5fRE9NQ1RMX0dF
VERPTVNUQVRFX1NUQVRFX0VYSVNUICAgICAweDAwMDEgIC8qIERvbWFpbiBpcyBleGlzdGlu
Zy4gKi8NCj4+ICsjZGVmaW5lIFhFTl9ET01DVExfR0VURE9NU1RBVEVfU1RBVEVfU0hVVERP
V04gIDB4MDAwMiAgLyogU2h1dGRvd24gZmluaXNoZWQuICovDQo+PiArI2RlZmluZSBYRU5f
RE9NQ1RMX0dFVERPTVNUQVRFX1NUQVRFX0RZSU5HICAgICAweDAwMDQgIC8qIERvbWFpbiBk
eWluZy4gKi8NCj4+ICsgICAgdWludDMyX3QgcGFkMTsgICAgICAgICAgIC8qIFJldHVybmVk
IGFzIDAuICovDQo+PiArICAgIHVpbnQ2NF90IHVuaXF1ZV9pZDsgICAgICAvKiBVbmlxdWUg
ZG9tYWluIGlkZW50aWZpZXIuICovDQo+PiArICAgIHVpbnQ2NF90IHBhZDJbNl07ICAgICAg
ICAvKiBSZXR1cm5lZCBhcyAwLiAqLw0KPj4gK307DQo+IA0KPiBXaGF0IGFyZSB0aGUgaW50
ZW50aW9ucyB3aXRoIHRoaXMgcGFkZGluZyBhcnJheT8NCg0KVGhlIGlkZWEgd2FzIHRvIGFs
bG93IHRvIHJldHVybiBhZGRpdGlvbmFsIGRvbWFpbiBkYXRhIGluIGZ1dHVyZSB3aXRob3V0
IGhhdmluZw0KdG8gZXh0ZW5kIHRoZSBzdHJ1Y3QuDQoNCg0KSnVlcmdlbg0K
--------------ja2pjXv10rLUR9BXuzipJwFH
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-----

--------------ja2pjXv10rLUR9BXuzipJwFH--

--------------wXdk0cizoWk0Tw2uuwabRIwo--

--------------7hv03FoBgGnFUMqGr25GVXDU
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/Ey8FAmckfUIFAwAAAAAACgkQsN6d1ii/Ey9/
Bwf+PMKu7xR6SnECzeL+mnHbvAWO7PLAJEcwnqnhzFZJeWqXa50bSYZmjVSjhJmR2lvJI7xH2gdr
/w2wzau2UmsvFHySfjAl8gzo3a7rDhMGa29GF7OJxpz27G3pOgbZW+hkR4RMmQB8DgJ4iOayoRd0
Ma5rpJBW3/N8dRnDkdInZmi5dT1h7uNtN2wpIKey6SDAV48vnUCFlOziu+E1oW670YiiJsIsWZyW
OfUWht9R5BZAIjBUHz6s5lEwIyg2nVP9oKH/6biZ1gFUnU4p7DWNaMXU0exnX/ebyyZdzUQ3W2OC
pxEJu1RN8Jgacr8EiLoUwIhbLmdswYRGQXYtPdzLxg==
=CF52
-----END PGP SIGNATURE-----

--------------7hv03FoBgGnFUMqGr25GVXDU--


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 07:06:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 07:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.828971.1244077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6lkE-0005w7-Uo; Fri, 01 Nov 2024 07:06:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 828971.1244077; Fri, 01 Nov 2024 07:06: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 1t6lkE-0005w0-Rn; Fri, 01 Nov 2024 07:06:54 +0000
Received: by outflank-mailman (input) for mailman id 828971;
 Fri, 01 Nov 2024 07:06: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=zSVc=R4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1t6lkC-0005vs-TJ
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 07:06:53 +0000
Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com
 [2a00:1450:4864:20::542])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd692800-981f-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 08:06:50 +0100 (CET)
Received: by mail-ed1-x542.google.com with SMTP id
 4fb4d7f45d1cf-5cb74434bc5so2010396a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 00:06:50 -0700 (PDT)
Received: from ?IPV6:2003:e5:8706:5100:ddd3:fe18:d0ae:c30d?
 (p200300e587065100ddd3fe18d0aec30d.dip0.t-ipconnect.de.
 [2003:e5:8706:5100:ddd3:fe18:d0ae:c30d])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9e564e9ceasm149475466b.96.2024.11.01.00.06.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Nov 2024 00:06:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd692800-981f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1NDIiLCJoZWxvIjoibWFpbC1lZDEteDU0Mi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRkNjkyODAwLTk4MWYtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDQ0ODEwLjExNDI3LCJzZW5kZXIiOiJqZ3Jvc3NAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730444809; x=1731049609; 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=aeNA3YCfZz+iPtcJJ5VI6F0K1ze23q13x6dLutDLsGU=;
        b=eam0cynC8jVdJWIK0+HW1jmBPfD09zW+nF7acOlVewgehHLFNxaF/kleQioi5JJ2CT
         C9zkS+HSr7jYJ4+W0dC86x1n5ILBSxo2XN3mGdSS1bV239Sv47ZC7NOfjjNmUrj756as
         GIFx5tupWffuj8U3T3WAyBEOKXK0nInmpXd/rE3xcoKnAEU4r8ST7i38TbfepEJrFG22
         I2vm+ZnP+y3U7daJBN2FAJcAVkDMnKDB2/CqZlofN1qDCstAGDdZnlzPJYfCQe0RfKOY
         sroy9NFuRWqoLwHEdaUnpw9dk55gasoM74u7LdhFJQN0wQW0tu/N8klbMyWpFlfidoAM
         JROQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730444809; x=1731049609;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=aeNA3YCfZz+iPtcJJ5VI6F0K1ze23q13x6dLutDLsGU=;
        b=h26i/LP9+8i18soxmZMvn07P5csXoaWvQEt/53EDuKlttahj27hAC5xgO63RwTSLy2
         6tefaVrPY3qMeYwTg4F+6Na7wE3ReABM0PTgLqLryDhWmOk9Ek8nGX3Z0kj/tlyTyrP1
         BH17GfGNgZrAUrO6OPZti7VyJ+iXS4ZcFCat9dc8H6GGFD3JzzBc+fIpOamv4HrbfRhv
         QBQZT75uUJAWkX9lHDWHD5fdeKd9cUOhgtDCOjH/EtePLZziP//3euGjwUHxWuV22jnB
         o+ndxhgbAV6hbnXb72JTzyrLv8PngLSkF3DB1Ivq7HAVcHnctNtHB2EruAWl1xJaFs+L
         3o0Q==
X-Forwarded-Encrypted: i=1; AJvYcCVpjoOiEy8KI1bhrzipCD4M4maHw++68WCBxtv/jFn2MSg5vJWID9B+EWZzzkM0Hq8TCXSmLLNmSC0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyW63hqkA1IN0AMCmg2kgafehnmDwa5BUVItQfJ7FB3hVRKyH9v
	6jfdDp0XIQVyUbpTFEk8mjl0+bxJnPy/NhP5pZFJXUmLu3k0yDXSewGqoyeUTa0=
X-Google-Smtp-Source: AGHT+IG6Z5kmVI+KtWlZnh7ztqJ268VEGTvZos8r9wPYHR/nvLhSdJomaLHu60x+8n08j2jzp+cGbA==
X-Received: by 2002:a17:907:97ce:b0:a99:8a5c:a357 with SMTP id a640c23a62f3a-a9e657fd8c3mr217923566b.58.1730444809184;
        Fri, 01 Nov 2024 00:06:49 -0700 (PDT)
Message-ID: <870f8639-335b-4b1e-bdd4-ffbb38ee3eb2@suse.com>
Date: Fri, 1 Nov 2024 08:06:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] xen: add a domain unique id to each domain
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-2-jgross@suse.com>
 <D538TV4LGFZF.J375ZVYWPIHO@cloud.com>
 <cc607d38-1638-4f43-b0d3-b03842e8d9b9@suse.com>
 <D59Z2CO4QOAK.KWLIRVJEV4XY@cloud.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: <D59Z2CO4QOAK.KWLIRVJEV4XY@cloud.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Xxyt9kcWDqo4WuvRBdRxf6T9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Xxyt9kcWDqo4WuvRBdRxf6T9
Content-Type: multipart/mixed; boundary="------------zPVgCWERb080tWDVNB4HP6ir";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <870f8639-335b-4b1e-bdd4-ffbb38ee3eb2@suse.com>
Subject: Re: [PATCH 1/6] xen: add a domain unique id to each domain
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-2-jgross@suse.com>
 <D538TV4LGFZF.J375ZVYWPIHO@cloud.com>
 <cc607d38-1638-4f43-b0d3-b03842e8d9b9@suse.com>
 <D59Z2CO4QOAK.KWLIRVJEV4XY@cloud.com>
In-Reply-To: <D59Z2CO4QOAK.KWLIRVJEV4XY@cloud.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=

--------------zPVgCWERb080tWDVNB4HP6ir
Content-Type: multipart/mixed; boundary="------------16SVtxD0228pbFahI70hw0f9"

--------------16SVtxD0228pbFahI70hw0f9
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMzEuMTAuMjQgMTI6NTgsIEFsZWphbmRybyBWYWxsZWpvIHdyb3RlOg0KPiBPbiBXZWQg
T2N0IDIzLCAyMDI0IGF0IDM6MjcgUE0gQlNULCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4g
T24gMjMuMTAuMjQgMTY6MDgsIEFsZWphbmRybyBWYWxsZWpvIHdyb3RlOg0KPj4+IE9uIFdl
ZCBPY3QgMjMsIDIwMjQgYXQgMjoxMCBQTSBCU1QsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+
Pj4+IFhlbnN0b3JlIGlzIHJlZmVyZW5jaW5nIGRvbWFpbnMgYnkgdGhlaXIgZG9taWQsIGJ1
dCByZXVzZSBvZiBhIGRvbWlkDQo+Pj4+IGNhbiBsZWFkIHRvIHRoZSBzaXR1YXRpb24gdGhh
dCBYZW5zdG9yZSBjYW4ndCB0ZWxsIHdoZXRoZXIgYSBkb21haW4NCj4+Pj4gd2l0aCB0aGF0
IGRvbWlkIGhhcyBiZWVuIGRlbGV0ZWQgYW5kIGNyZWF0ZWQgYWdhaW4gd2l0aG91dCBYZW5z
dG9yZQ0KPj4+PiBub3RpY2luZyB0aGUgZG9tYWluIGlzIGEgbmV3IG9uZSBub3cuDQo+Pj4+
DQo+Pj4+IEFkZCBhIGdsb2JhbCBkb21haW4gY3JlYXRpb24gdW5pcXVlIGlkIHdoaWNoIGlz
IHVwZGF0ZWQgd2hlbiBjcmVhdGluZw0KPj4+PiBhIG5ldyBkb21haW4sIGFuZCBzdG9yZSB0
aGF0IHZhbHVlIGluIHN0cnVjdCBkb21haW4gb2YgdGhlIG5ldyBkb21haW4uDQo+Pj4+IFRo
ZSBnbG9iYWwgdW5pcXVlIGlkIGlzIGluaXRpYWxpemVkIHdpdGggdGhlIHN5c3RlbSB0aW1l
IGFuZCB1cGRhdGVzDQo+Pj4+IGFyZSBkb25lIHZpYSB0aGUgeG9yc2hpZnQgYWxnb3JpdGht
IHdoaWNoIGlzIHVzZWQgZm9yIHBzZXVkbyByYW5kb20NCj4+Pj4gbnVtYmVyIGdlbmVyYXRp
b24sIHRvbyAoc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1hvcnNoaWZ0KS4N
Cj4+Pj4NCj4+Pj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu
Y29tPg0KPj4+PiBSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t
Pg0KPj4+PiAtLS0NCj4+Pj4gVjE6DQo+Pj4+IC0gbWFrZSB1bmlxdWVfaWQgbG9jYWwgdG8g
ZnVuY3Rpb24gKEphbiBCZXVsaWNoKQ0KPj4+PiAtIGFkZCBsb2NrIChKdWxpZW4gR3JhbGwp
DQo+Pj4+IC0gYWRkIGNvbW1lbnQgKEp1bGllbiBHcmFsbCkNCj4+Pj4gLS0tDQo+Pj4+ICAg
IHhlbi9jb21tb24vZG9tYWluLmMgICAgIHwgMjAgKysrKysrKysrKysrKysrKysrKysNCj4+
Pj4gICAgeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggfCAgMyArKysNCj4+Pj4gICAgMiBmaWxl
cyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS94
ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYw0KPj4+PiBpbmRleCA5
MjI2M2E0ZmJkLi4zOTQ4NjQwZmIwIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vY29tbW9uL2Rv
bWFpbi5jDQo+Pj4+ICsrKyBiL3hlbi9jb21tb24vZG9tYWluLmMNCj4+Pj4gQEAgLTU2Miw2
ICs1NjIsMjUgQEAgc3RhdGljIHZvaWQgX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4g
KmQpDQo+Pj4+ICAgICAgICBmcmVlX2RvbWFpbl9zdHJ1Y3QoZCk7DQo+Pj4+ICAgIH0NCj4+
Pj4gICAgDQo+Pj4+ICtzdGF0aWMgdWludDY0X3QgZ2V0X3VuaXF1ZV9pZCh2b2lkKQ0KPj4+
PiArew0KPj4+PiArICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVfaWQ7DQo+Pj4+ICsgICAg
c3RhdGljIERFRklORV9TUElOTE9DSyhsb2NrKTsNCj4+Pj4gKyAgICB1aW50NjRfdCB4ID0g
dW5pcXVlX2lkID8gOiBOT1coKTsNCj4+Pj4gKw0KPj4+PiArICAgIHNwaW5fbG9jaygmbG9j
ayk7DQo+Pj4+ICsNCj4+Pj4gKyAgICAvKiBQc2V1ZG8tcmFuZG9taXplIGlkIGluIG9yZGVy
IHRvIGF2b2lkIGNvbnN1bWVycyByZWx5aW5nIG9uIHNlcXVlbmNlLiAqLw0KPj4+PiArICAg
IHggXj0geCA8PCAxMzsNCj4+Pj4gKyAgICB4IF49IHggPj4gNzsNCj4+Pj4gKyAgICB4IF49
IHggPDwgMTc7DQo+Pj4+ICsgICAgdW5pcXVlX2lkID0geDsNCj4gDQo+IEhvdyAidW5pcXVl
IiBhcmUgdGhleT8gV2l0aCB0aG9zZSBzaGlmdHMgaXQncyBmYXIgbGVzcyBvYnZpb3VzIHRv
IGtub3cgaG93IG1hbnkNCj4gdGltZXMgd2UgY2FuIGNhbGwgZ2V0X3VuaXF1ZV9pZCgpIGFu
ZCBnZXQgYW4gSUQgdGhhdCBoYXNuJ3QgYmVlbiBzZWVuIHNpbmNlDQo+IHJlc2V0LiBXaXRo
IHNlcXVlbnRpYWwgbnVtYmVycyBpdCdzIHByZXR0eSBvYnZpb3VzIHRoYXQgaXQnZCBiZSBh
DQo+IG5vbi1vdmVyZmxvd2FibGUgbW9ub3RvbmljIGNvdW50ZXIuIEhlcmUncyBpdCdzIGZh
ciBsZXNzIGNsZWFyLCBwYXJ0aWN1bGFybHkNCj4gd2hlbiBpdCdzIHJhbmRvbWx5IHNlZWRl
ZC4NCg0KSWYgeW91J2QgbG9vayBpbnRvIHRoZSBXaWtpcGVkaWEgYXJ0aWNsZSBtZW50aW9u
ZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlDQp5b3UnZCBrbm93IHRoYXQgdGhlIHBlcmlvZCBp
cyAyXjY0IC0gMS4NCg0KPiBJIGRvbid0IHF1aXRlIHNlZSB3aHkgc2VxdWVudGlhbCBJRHMg
YXJlIHByb2JsZW1hdGljLiBXaGF0IGlzIHRoaXMNCj4gKHBzZXVkbylyYW5kb21pemF0aW9u
IHNwZWNpZmljYWxseSB0cnlpbmcgdG8gcHJldmVudD8gSWYgaXQncyBqdXN0IGJyZWFraW5n
IHRoZQ0KPiBhc3N1bXB0aW9uIHRoYXQgbnVtYmVycyBnbyBpbiBzdHJpY3Qgc2VxdWVuY2Ug
eW91IGNvdWxkIGp1c3QgZmxpcCB0aGUgaGlnaCBhbmQNCj4gbG93IG5pYmJsZXMgKG9yIGFu
eSBvdGhlciBkZXRlcm1pbmlzdGljIHN3YXBwaW5nIG9mIGNvdW50ZXIgbmliYmxlcykNCg0K
VGhhdCB3YXMgYSByZXF1ZXN0IGZyb20gdGhlIFJGQyBzZXJpZXMgb2YgdGhpcyBwYXRjaC4N
Cg0KPiBQbHVzLCB3aXRoIHRoZSBjb3VudGVyIGdvaW5nIGluIHNlcXVlbmNlIHdlIGNvdWxk
IGdldCByaWQgb2YgdGhlIGxvY2sgYmVjYXVzZQ0KPiBhbiBhdG9taWMgZmV0Y2hfYWRkKCkg
d291bGQgZG8uDQoNCkl0cyBub3QgYXMgaWYgdGhpcyB3b3VsZCBiZSBhIGhvdCBwYXRoLiBT
byB0aGUgbG9jayBpcyBubyByZWFsIGlzc3VlIElNTy4NCg0KPiANCj4+Pj4gKw0KPj4+PiAr
ICAgIHNwaW5fdW5sb2NrKCZsb2NrKTsNCj4+Pj4gKw0KPj4+PiArICAgIHJldHVybiB4Ow0K
Pj4+PiArfQ0KPj4+PiArDQo+Pj4+ICAgIHN0YXRpYyBpbnQgc2FuaXRpc2VfZG9tYWluX2Nv
bmZpZyhzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gKmNvbmZpZykNCj4+Pj4gICAg
ew0KPj4+PiAgICAgICAgYm9vbCBodm0gPSBjb25maWctPmZsYWdzICYgWEVOX0RPTUNUTF9D
REZfaHZtOw0KPj4+PiBAQCAtNjU0LDYgKzY3Myw3IEBAIHN0cnVjdCBkb21haW4gKmRvbWFp
bl9jcmVhdGUoZG9taWRfdCBkb21pZCwNCj4+Pj4gICAgDQo+Pj4+ICAgICAgICAvKiBTb3J0
IG91dCBvdXIgaWRlYSBvZiBpc19zeXN0ZW1fZG9tYWluKCkuICovDQo+Pj4+ICAgICAgICBk
LT5kb21haW5faWQgPSBkb21pZDsNCj4+Pj4gKyAgICBkLT51bmlxdWVfaWQgPSBnZXRfdW5p
cXVlX2lkKCk7DQo+Pj4+ICAgIA0KPj4+PiAgICAgICAgLyogSG9sZGluZyBDREZfKiBpbnRl
cm5hbCBmbGFncy4gKi8NCj4+Pj4gICAgICAgIGQtPmNkZiA9IGZsYWdzOw0KPj4+PiBkaWZm
IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2No
ZWQuaA0KPj4+PiBpbmRleCA5MDY2NjU3NmMyLi4xZGQ4YTQyNWY5IDEwMDY0NA0KPj4+PiAt
LS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KPj4+PiArKysgYi94ZW4vaW5jbHVkZS94
ZW4vc2NoZWQuaA0KPj4+PiBAQCAtMzcwLDYgKzM3MCw5IEBAIHN0cnVjdCBkb21haW4NCj4+
Pj4gICAgICAgIGRvbWlkX3QgICAgICAgICAgZG9tYWluX2lkOw0KPj4+PiAgICANCj4+Pj4g
ICAgICAgIHVuc2lnbmVkIGludCAgICAgbWF4X3ZjcHVzOw0KPj4+PiArDQo+Pj4+ICsgICAg
dWludDY0X3QgICAgICAgICB1bmlxdWVfaWQ7ICAgICAgIC8qIFVuaXF1ZSBkb21haW4gaWRl
bnRpZmllciAqLw0KPj4+PiArDQo+Pj4NCj4+PiBXaHkgbm90IHhlbl9kb21haW5faGFuZGxl
X3QgaGFuZGxlLCBkZWZpbmVkIGxhdGVyIG9uPyBUaGF0J3MgbWVhbnQgdG8gYmUgYQ0KPj4+
IFVVSUQsIHNvIHRoaXMgZmVlbHMgbGlrZSBhIGR1cGxpY2F0ZSBmaWVsZC4NCj4+DQo+PiBJ
dCBpcyBhbiBpbnB1dCB2YWx1ZSBmb3IgY3JlYXRlIGRvbWFpbi4gU28gdGhlcmUgaXMgYWJz
b2x1dGVseSBubw0KPj4gZ3VhcmFudGVlIHRoYXQgaXQgaXMgdW5pcXVlLg0KPj4NCj4+IEl0
IGNhbiBlc3BlY2lhbGx5IGJlIHNwZWNpZmllZCBpbiB0aGUgeGwgY29uZmlnIGZpbGUsIHNv
IHlvdSBjb3VsZCBoYXZlDQo+PiBhIGhvc3QgcnVubmluZyBtdWx0aXBsZSBndWVzdHMgYWxs
IHdpdGggdGhlIHNhbWUgVVVJRCAoZXZlbiBpZiB0aGlzIG1pZ2h0DQo+PiBiZSByZWplY3Rl
ZCBieSBsaWJ4bCwgZGVzdHJveWluZyBhIGd1ZXN0IGFuZCB0aGVuIHJlY3JlYXRpbmcgaXQg
d2l0aCB0aGUNCj4+IHNhbWUgVVVJRCBpcyBwb3NzaWJsZSwgYnV0IFhlbnN0b3JlIHdvdWxk
IG5lZWQgdG8gc2VlIGRpZmZlcmVudCB1bmlxdWUgSWRzDQo+PiBmb3IgdGhvc2UgMiBndWVz
dHMpLg0KPiANCj4gRmFpciBwb2ludHMuIFdpdGggdGhhdCBpbnRvIGFjY291bnQsIEkgd291
bGRuJ3QgbWluZCBzZWVpbmcgYSB3aWRlciBjb21tZW50IG9uDQo+IHRvcCBvZiB1bmlxdWVf
aWQgZXhwbGFpbmluZyBob3cgdGhlc2UgSURzIGFyZSBtZWFudCB0byBiZSBub24tcmVwZWF0
YWJsZQ0KPiBiZXR3ZWVuIHJlc2V0cyBhbmQgbWVhbnQgdG8gaGF2ZSB0aGUgc2FtZSBsaWZl
dGltZSBhcyB0aGVpciBjb3JyZXNwb25kaW5nDQo+IGRvbWFpbl9pZC4NCg0KT2theSwgSSBj
YW4gYWRkIHN1Y2ggYSBjb21tZW50Lg0KDQoNCkp1ZXJnZW4NCg==
--------------16SVtxD0228pbFahI70hw0f9
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-----

--------------16SVtxD0228pbFahI70hw0f9--

--------------zPVgCWERb080tWDVNB4HP6ir--

--------------Xxyt9kcWDqo4WuvRBdRxf6T9
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/Ey8FAmckfggFAwAAAAAACgkQsN6d1ii/Ey+I
lQgAkrOtYKCdFLCOUotCdXUrWcPevsGW059ejANWyrYQv23DrvvsQbUgyrNis0JQYopVOScjhQwB
B50kC48PoTPhQ//LaMsxd88nV3GJBwUwY87awypYZ7P6MufjxFkW0KrJhDsxAtofZ1v3RW0Ma09S
tcy5ODQNauczamr6htNm9iLlhuy+P7pOFeyCmmUh8v4olXJMYmcWO5LsMsUEcZ5ABVPtQzBD2/2A
TTHVyNM/P59xA3t6XT1cqSUN7iLHWgvvSCf6N0OuqkQcanvi1B80U8SfLB2Q1nfI0VlviaqfKOc2
SdbStojJyw8s3Fegh2OvjEVeylVoB/g4AnS3UQr0Jg==
=mBuO
-----END PGP SIGNATURE-----

--------------Xxyt9kcWDqo4WuvRBdRxf6T9--


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 10:44:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 10:44:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829023.1244103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6p8i-00069g-5T; Fri, 01 Nov 2024 10:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829023.1244103; Fri, 01 Nov 2024 10:44: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 1t6p8i-00069Z-1O; Fri, 01 Nov 2024 10:44:24 +0000
Received: by outflank-mailman (input) for mailman id 829023;
 Fri, 01 Nov 2024 10:44: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=PD0T=R4=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1t6p8g-000691-93
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 10:44:22 +0000
Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com
 [2607:f8b0:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e171eaf-983e-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 11:44:17 +0100 (CET)
Received: by mail-ot1-x335.google.com with SMTP id
 46e09a7af769-7187e0041d5so1042193a34.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 03:44:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e171eaf-983e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC1vdDEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNlMTcxZWFmLTk4M2UtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDU3ODU3LjczMzg4NCwic2VuZGVyIjoiamVucy53aWtsYW5kZXJAbGluYXJvLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730457856; x=1731062656; 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=nz+WxhaAL6zQ3LolyiKyPpRCYy2XL2Y0dCOuQsKzxGc=;
        b=g62vEaSYG/YsqbDOz0xzT3RETRHTxlhTZaiplmX/4RQeLRorzwoqBr3+cWs80fCMgo
         kR3oFLJwNff6j5eJTgO3npz2MzPyVsrIiPs6quT8qObYL6B/j6B90SvJVPOBO3MQgjb9
         ykIkUOHWZNy0LBDlwCqhHSIkWJI3mUrvsXt0axDrMnP6KwZeZYfal8hwvJ8D6w7Xonjw
         N1F8lZW65gsH4y01xz4DLK5K4Q78tUVaNpENOtEAfg5qz97PK7fwhYSms7/H4aeo9XTv
         Qt4PjDyWfTYgoLo0jt2qxkmAzrPgTojAN5bki9aF2rlA2gTb5Rl47xkS5EWO7LAAvGc0
         BcQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730457856; x=1731062656;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nz+WxhaAL6zQ3LolyiKyPpRCYy2XL2Y0dCOuQsKzxGc=;
        b=KbOnDIn6X2hEfNFu63WIjL5FHSR3vPdIoiWgmf4x0Hr5rgkXRV4/ZBQuSeiAGw1FVz
         08C8C8TvVJXvWmQGHLS05QhP5VMxlkXZKZ9mBBzhCZHLzdkquMNzQWRjYsStGvXcLKq/
         bAyQWJdYGn7IWtz6to67cEbI6Z2jUjVqKqmsfd6v9p9QQzh1qbzObvU1dEgnUcAXoXpF
         T7vXnXxtFq4XRfcI/fOcW9zXSnqeujAmaqdZB2cDnlQzP1Z34+nPEcSH/87GTjqfLlyN
         WmobXTSradzL3aMFhAdjG+gW7mFw4kdfegjcg5URgjY38RHyA3YHwxJBNcIlQkVItHEj
         w/2w==
X-Gm-Message-State: AOJu0YzkUkML4p6bPcF0QnvgXBv1iXWJ/MPimXNUFV0keju5Y7lg31hC
	+ta2FCz9wxh5XVav3XljZEbli+LZm3x/sLM++zj9fInL3la7JrJxzjqFCbzHeW8hE4FySN/IFY8
	OrYCX5a1rWR4QLmLZ2MWmqpPvjJ7W8aONVm9pZTAg8qGxrZb1J18=
X-Google-Smtp-Source: AGHT+IFpe9WJaZSQ8oHSycktJoKLh25e6q9zQi7F2xOobxOEmHaRrP5IR3nS0cg/g72gmUuOhhyZs2DE9MGUxEPfgOw=
X-Received: by 2002:a05:6870:7247:b0:287:20ea:2db2 with SMTP id
 586e51a60fabf-2948450b9e1mr5591534fac.25.1730457856220; Fri, 01 Nov 2024
 03:44:16 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1729069025.git.bertrand.marquis@arm.com> <57c59cae4141dd9601d7b4e9260030a16809b764.1729069025.git.bertrand.marquis@arm.com>
In-Reply-To: <57c59cae4141dd9601d7b4e9260030a16809b764.1729069025.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 1 Nov 2024 11:44:04 +0100
Message-ID: <CAHUa44FPihAeGEZsj023tj22+a_xLj08gu+AsF_0E5v3PNs=jQ@mail.gmail.com>
Subject: Re: [RFC PATCH 4/4] xen/arm: ffa: Enable VM to VM without firmware
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 Wed, Oct 16, 2024 at 11:22=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> When VM to VM support is activated and there is no suitable FF-A support
> in the firmware, enable FF-A support for VMs to allow using it for VM to
> VM communications.
> If there is Optee running in the secure world and using the non FF-A
> communication system, having CONFIG_FFA_VM_TO_VM could be non functional
> (if optee is probed first) or Optee could be non functional (if FF-A is
> probed first) so it is not recommended to activate the configuration
> option for such systems.
>
> To make buffer full notification work between VMs when there is not
> firmware, rework the notification handling and modify the global flag to
> only be used as check for firmware notification support instead.
>
> Modify part_info_get to return the list of VMs when there is no firmware
> support.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c          |  11 +++
>  xen/arch/arm/tee/ffa_notif.c    | 118 ++++++++++++++++----------------
>  xen/arch/arm/tee/ffa_partinfo.c |   2 +
>  3 files changed, 73 insertions(+), 58 deletions(-)

I think it is desirable or at least a good goal to be able to have all
TEE configurations enabled at compile time.

For optee_probe() to succeed, a DT node with compatible
"linaro,optee-tz" must be present, and a trusted OS responding with
the UUID used by OP-TEE. False positives can be ruled out unless the
system is grossly misconfigured and shouldn't be used.

If we could make the probe order deterministic with OP-TEE before
FF-A, we should be OK. If there is an odd system with OP-TEE SMC ABI
in the secure world that wants to use FF-A VM to VM, removing the
"linaro,optee-tz" compatible node from DT is enough to disable
optee_probe() without recompiling Xen.

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 21d41b452dc9..6d427864f3da 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -324,8 +324,11 @@ static int ffa_domain_init(struct domain *d)
>      struct ffa_ctx *ctx;
>      int ret;
>
> +#ifndef CONFIG_FFA_VM_TO_VM
>      if ( !ffa_fw_version )
>          return -ENODEV;
> +#endif
> +
>      /*
>       * We are using the domain_id + 1 as the FF-A ID for VMs as FF-A ID =
0 is
>       * reserved for the hypervisor and we only support secure endpoints =
using
> @@ -549,7 +552,15 @@ err_no_fw:
>      bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
>      printk(XENLOG_WARNING "ARM FF-A No firmware support\n");
>
> +#ifdef CONFIG_FFA_VM_TO_VM
> +    INIT_LIST_HEAD(&ffa_teardown_head);
> +    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0=
);
> +
> +    printk(XENLOG_INFO "ARM FF-A only available between VMs\n");
> +    return true;
> +#else
>      return false;
> +#endif
>  }
>
>  static const struct tee_mediator_ops ffa_ops =3D
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index 052b3e364a70..f2c87d1320de 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -16,7 +16,7 @@
>
>  #include "ffa_private.h"
>
> -static bool __ro_after_init notif_enabled;
> +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)
> @@ -27,21 +27,17 @@ int ffa_handle_notification_bind(struct cpu_user_regs=
 *regs)
>      uint32_t bitmap_lo =3D get_user_reg(regs, 3);
>      uint32_t bitmap_hi =3D get_user_reg(regs, 4);
>
> -    if ( !notif_enabled )
> -        return FFA_RET_NOT_SUPPORTED;
> -
>      if ( (src_dst & 0xFFFFU) !=3D ffa_get_vm_id(d) )
>          return FFA_RET_INVALID_PARAMETERS;
>
>      if ( flags )    /* Only global notifications are supported */
>          return FFA_RET_DENIED;
>
> -    /*
> -     * We only support notifications from SP so no need to check the sen=
der
> -     * endpoint ID, the SPMC will take care of that for us.
> -     */
> -    return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags, bitmap=
_hi,
> -                           bitmap_lo);
> +    if ( FFA_ID_IS_SECURE(src_dst>>16) && fw_notif_enabled )
> +        return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags,
> +                               bitmap_hi, bitmap_lo);
> +
> +    return FFA_RET_NOT_SUPPORTED;
>  }
>
>  int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
> @@ -51,32 +47,36 @@ int ffa_handle_notification_unbind(struct cpu_user_re=
gs *regs)
>      uint32_t bitmap_lo =3D get_user_reg(regs, 3);
>      uint32_t bitmap_hi =3D get_user_reg(regs, 4);
>
> -    if ( !notif_enabled )
> -        return FFA_RET_NOT_SUPPORTED;
> -
>      if ( (src_dst & 0xFFFFU) !=3D ffa_get_vm_id(d) )
>          return FFA_RET_INVALID_PARAMETERS;
>
> -    /*
> -     * We only support notifications from SP so no need to check the
> -     * destination endpoint ID, the SPMC will take care of that for us.
> -     */
> -    return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitmap_=
hi,
> -                            bitmap_lo);
> +    if ( FFA_ID_IS_SECURE(src_dst>>16) && fw_notif_enabled )
> +        return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bit=
map_hi,
> +                                bitmap_lo);
> +
> +    return FFA_RET_NOT_SUPPORTED;
>  }
>
>  void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
>  {
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> +    bool notif_pending =3D false;
>
> -    if ( !notif_enabled )
> +#ifndef CONFIG_FFA_VM_TO_VM
> +    if ( !fw_notif_enabled )
>      {
>          ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          return;
>      }
> +#endif
>
> -    if ( test_and_clear_bool(ctx->notif.secure_pending) )
> +    notif_pending =3D ctx->notif.secure_pending;
> +#ifdef CONFIG_FFA_VM_TO_VM
> +    notif_pending |=3D ctx->notif.buff_full_pending;
> +#endif
> +
> +    if ( notif_pending )
>      {
>          /* A pending global notification for the guest */
>          ffa_set_regs(regs, FFA_SUCCESS_64, 0,
> @@ -103,11 +103,13 @@ void ffa_handle_notification_get(struct cpu_user_re=
gs *regs)
>      uint32_t w6 =3D 0;
>      uint32_t w7 =3D 0;
>
> -    if ( !notif_enabled )
> +#ifndef CONFIG_FFA_VM_TO_VM
> +    if ( !fw_notif_enabled )
>      {
>          ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          return;
>      }
> +#endif
>
>      if ( (recv & 0xFFFFU) !=3D ffa_get_vm_id(d) )
>      {
> @@ -115,7 +117,8 @@ void ffa_handle_notification_get(struct cpu_user_regs=
 *regs)
>          return;
>      }
>
> -    if ( flags & ( FFA_NOTIF_FLAG_BITMAP_SP | FFA_NOTIF_FLAG_BITMAP_SPM =
) )
> +    if ( fw_notif_enabled && (flags & ( FFA_NOTIF_FLAG_BITMAP_SP
> +                                        | FFA_NOTIF_FLAG_BITMAP_SPM )) )
>      {
>          struct arm_smccc_1_2_regs arg =3D {
>              .a0 =3D FFA_NOTIFICATION_GET,
> @@ -170,15 +173,14 @@ int ffa_handle_notification_set(struct cpu_user_reg=
s *regs)
>      uint32_t bitmap_lo =3D get_user_reg(regs, 3);
>      uint32_t bitmap_hi =3D get_user_reg(regs, 4);
>
> -    if ( !notif_enabled )
> -        return FFA_RET_NOT_SUPPORTED;
> -
>      if ( (src_dst >> 16) !=3D ffa_get_vm_id(d) )
>          return FFA_RET_INVALID_PARAMETERS;
>
> -    /* Let the SPMC check the destination of the notification */
> -    return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitmap_=
lo,
> -                           bitmap_hi);
> +    if ( FFA_ID_IS_SECURE(src_dst>>16) && fw_notif_enabled )
> +        return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bit=
map_lo,
> +                               bitmap_hi);
> +
> +    return FFA_RET_NOT_SUPPORTED;
>  }
>
>  #ifdef CONFIG_FFA_VM_TO_VM
> @@ -190,7 +192,7 @@ void ffa_raise_rx_buffer_full(struct domain *d)
>          return;
>
>      if ( !test_and_set_bool(ctx->notif.buff_full_pending) )
> -        vgic_inject_irq(d, d->vcpu[0], notif_sri_irq, true);
> +        vgic_inject_irq(d, d->vcpu[0], GUEST_FFA_NOTIF_PEND_INTR_ID, tru=
e);
>  }
>  #endif
>
> @@ -363,7 +365,7 @@ void ffa_notif_init_interrupt(void)
>  {
>      int ret;
>
> -    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI )
> +    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
>      {
>          /*
>           * An error here is unlikely since the primary CPU has already
> @@ -394,47 +396,47 @@ void ffa_notif_init(void)
>      int ret;
>
>      /* Only enable fw notification if all ABIs we need are supported */
> -    if ( !(ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
> -           ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
> -           ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
> -           ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64)) )
> -        return;
> -
> -    arm_smccc_1_2_smc(&arg, &resp);
> -    if ( resp.a0 !=3D FFA_SUCCESS_32 )
> -        return;
> -
> -    irq =3D resp.a2;
> -    notif_sri_irq =3D irq;
> -    if ( irq >=3D NR_GIC_SGI )
> -        irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
> -    ret =3D request_irq(irq, 0, notif_irq_handler, "FF-A notif", NULL);
> -    if ( ret )
> +    if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
> +         ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
> +         ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
> +         ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64) )
>      {
> -        printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
> -               irq, ret);
> -        return;
> -    }
> +        arm_smccc_1_2_smc(&arg, &resp);
> +        if ( resp.a0 !=3D FFA_SUCCESS_32 )
> +            return;
>
> -    notif_enabled =3D true;
> +        irq =3D resp.a2;
> +        notif_sri_irq =3D irq;
> +        if ( irq >=3D NR_GIC_SGI )
> +            irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
> +        ret =3D request_irq(irq, 0, notif_irq_handler, "FF-A notif", NUL=
L);
> +        if ( ret )
> +        {
> +            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\=
n",
> +                   irq, ret);
> +            return;
> +        }
> +        fw_notif_enabled =3D true;
> +    }
>  }
>
>  int ffa_notif_domain_init(struct domain *d)
>  {
>      int32_t res;
>
> -    if ( !notif_enabled )
> -        return 0;
> +    if ( fw_notif_enabled )
> +    {
>
> -    res =3D ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_vcpu=
s);
> -    if ( res )
> -        return -ENOMEM;
> +        res =3D ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_=
vcpus);
> +        if ( res )
> +            return -ENOMEM;
> +    }
>
>      return 0;
>  }
>
>  void ffa_notif_domain_destroy(struct domain *d)
>  {
> -    if ( notif_enabled )
> +    if ( fw_notif_enabled )
>          ffa_notification_bitmap_destroy(ffa_get_vm_id(d));
>  }
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index d699a267cc76..2e09440fe6c2 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -128,12 +128,14 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>          goto out;
>      }
>
> +#ifndef CONFIG_FFA_VM_TO_VM
>      if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
>      {
>          /* Just give an empty partition list to the caller */
>          ret =3D FFA_RET_OK;
>          goto out;
>      }
> +#endif
>
>      ret =3D ffa_rx_acquire(d);
>      if ( ret !=3D FFA_RET_OK )
> --
> 2.47.0
>


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 11:06:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 11:06:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829035.1244113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6pTb-0001pk-RH; Fri, 01 Nov 2024 11:05:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829035.1244113; Fri, 01 Nov 2024 11:05: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 1t6pTb-0001pd-OV; Fri, 01 Nov 2024 11:05:59 +0000
Received: by outflank-mailman (input) for mailman id 829035;
 Fri, 01 Nov 2024 11:05: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=76Nm=R4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t6pTZ-0001p3-S2
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 11:05:57 +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 420e1f2e-9841-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 12:05:52 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9a2cdc6f0cso251909266b.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 04:05:52 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9e56493f15sm168350666b.44.2024.11.01.04.05.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Nov 2024 04:05:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 420e1f2e-9841-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQyMGUxZjJlLTk4NDEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDU5MTUyLjE5MzI2MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730459151; x=1731063951; 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=eQjPaE1mTfWP+OjpRP6bHQcoFDkWnpjhgBhuEvN2NXc=;
        b=o1VIx9PoyY+dr5qVaedLytfGFgytzTkJvdSzcM7DGXYODm5zitlKiBAT106pzqPyWP
         c8jLmX8G8uZEopSOw9R2kyEBD+0zf0n6x2dmIjYH81I6AaA9J+Lw/9w+/InK2NcqZWLS
         FbwcXJOGOEWqQk7kmIf07Fd3zJy0a01EEiE98=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730459151; x=1731063951;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eQjPaE1mTfWP+OjpRP6bHQcoFDkWnpjhgBhuEvN2NXc=;
        b=J2nVdyyDHmBR/yORIOS6sdR4KoalY41qiGj/nQ1ysztSDkJNJ6yUdzUGIq8t6UlGs9
         orTGn54UiMT4gyb1DXODWB6muR9L1vS3UMhSvtDpbvn9J2Ag9hRD8S4f7Wc4YlM61xB1
         MIFcIIZvhJ5dczz5cClGraRS++rGid2Mxc193JPIAm/aY+1nafQ4u0/lxp5eEnPdgxJm
         4QFxusT1fJkzjtjJpg6SyU68ecwBw7X7L2UPfHmL/+vYp4QLPXAyUBf5u6w/THkKOHqo
         tmVBLy7r7C2OfS6RcxRziDhcsTBLZ/AAHD58lATIulrIbfipUKg1wi7jEomDnuUzRQER
         RD+g==
X-Forwarded-Encrypted: i=1; AJvYcCWenv7EGXHK6MgEn3GmRgaqmSRL9baD6VqJvPXgTS/b5KuuW9vY0qpdnSCcRTkWh6UpAbl/OQa55nY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxaKbgscwcmgk48XJwXxK17AJH6KH1nBfCBh9u/he6EDfV2Zw/v
	n9GMBrw02k+KRNe+x6OEftfkjzIIgaHjydqIlfe11sy+apugM90yXeDf0FMIQOM=
X-Google-Smtp-Source: AGHT+IEo30U6mCw4rhMQMZSt2+5xgdex8tUlvm2rqoAK+kscbA6Wi57FUCrbJ4bpBLV67o5p/QPHhA==
X-Received: by 2002:a17:907:a088:b0:a99:499f:4cb7 with SMTP id a640c23a62f3a-a9e508e002dmr548658166b.23.1730459151532;
        Fri, 01 Nov 2024 04:05:51 -0700 (PDT)
Message-ID: <93715b7e-d968-4526-96c5-497a7a1f9dfa@citrix.com>
Date: Fri, 1 Nov 2024 11:05:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/4] xen/arm: ffa: Introduce VM to VM support
To: Bertrand Marquis <bertrand.marquis@arm.com>,
 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>
References: <cover.1729069025.git.bertrand.marquis@arm.com>
 <0475e48ace0acd862224e7ff628d11db94392871.1729069025.git.bertrand.marquis@arm.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <0475e48ace0acd862224e7ff628d11db94392871.1729069025.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16/10/2024 10:21 am, Bertrand Marquis wrote:
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
> index fde187dba4e5..d699a267cc76 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -77,7 +77,21 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
>      };
>      uint32_t src_size, dst_size;
>      void *dst_buf;
> -    uint32_t ffa_sp_count = 0;
> +    uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
> +#ifdef CONFIG_FFA_VM_TO_VM
> +    struct domain *dom;
> +
> +    /* Count the number of VM with FF-A support */
> +    rcu_read_lock(&domlist_read_lock);
> +    for_each_domain( dom )
> +    {
> +        struct ffa_ctx *vm = dom->arch.tee;
> +
> +        if (dom != d && vm != NULL && vm->guest_vers != 0)
> +            ffa_vm_count++;
> +    }
> +    rcu_read_unlock(&domlist_read_lock);
> +#endif

...
struct domain *dom;

if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
{
Â Â Â  /* Count the number of VM with FF-A support */
Â Â Â  rcu_read_lock(&domlist_read_lock);
Â Â Â  ...
Â Â Â  rcu_read_unlock(&domlist_read_lock);
}

drops the explicit ifdef.Â  Hiding function-level variable declarations
behind an ifdef like that works exactly once, and it doesn't make
pleasant code.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 12:12:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 12:12:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829058.1244123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6qVM-0004LQ-OX; Fri, 01 Nov 2024 12:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829058.1244123; Fri, 01 Nov 2024 12:11: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 1t6qVM-0004LJ-LD; Fri, 01 Nov 2024 12:11:52 +0000
Received: by outflank-mailman (input) for mailman id 829058;
 Fri, 01 Nov 2024 12:11: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=agMj=R4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1t6qVL-0004LD-Ek
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 12:11:51 +0000
Received: from fout-a6-smtp.messagingengine.com
 (fout-a6-smtp.messagingengine.com [103.168.172.149])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7595e7fa-984a-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 13:11:44 +0100 (CET)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfout.phl.internal (Postfix) with ESMTP id 55C34138017A
 for <xen-devel@lists.xenproject.org>; Fri,  1 Nov 2024 08:11:43 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-08.internal (MEProxy); Fri, 01 Nov 2024 08:11:43 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <xen-devel@lists.xenproject.org>; Fri, 1 Nov 2024 08:11:42 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7595e7fa-984a-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwMy4xNjguMTcyLjE0OSIsImhlbG8iOiJmb3V0LWE2LXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijc1OTVlN2ZhLTk4NGEtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDYzMTA1LjE1ODA5OCwic2VuZGVyIjoibWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:content-type:content-type:date:date
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to; s=fm3; t=1730463103; x=1730549503; bh=MKpRL3VZjJ
	kFBCTUJaPTB8p7s9XNrqglZoNog3NLKHo=; b=SiDx8bISrRGJLKqj/EIKw/V+8i
	NPYr1f+20bDFO0hIAptosw4/vl4dXyjCr81EDUb1rbX8sOJwz93cb/VgBNfzbxNr
	Nb/SCqUBv+dnjPtZFtepWbeMeADHJlJpm/KvVcr+tW+VxP7vJ7O2Iecq99Sid/YZ
	GaaCb+9QRTWg/kYjsvz52WXkp42b7c6+FA9ZxHWVK6zcQMRIO2la07imbVOlOIk8
	0b2Ls68r49diomiuxh4VqYkPWR20NdlH5gggqyXzZD140BeCrUMvJ3zbJuSiD/GP
	wvlZ6Bb5RYZs9fjOeKkuQb6wMZ/hxlNArORq1RGxM+nZZ0MaF6yjnOsXCQCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc: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=fm3; t=1730463103; x=
	1730549503; bh=MKpRL3VZjJkFBCTUJaPTB8p7s9XNrqglZoNog3NLKHo=; b=G
	0zpU5blxxhPyd1WCF4zcWVAwX9/QrTXIzCXdLTZqWln9h2KUEMv9LrTktpzHvG/4
	ExqwTU/P+Hlh7ldeuDaRrkppjd8PPnYACy4pePXANfm2qrwJ0yOpc8QOK11uomJh
	2SAIl9jVEZsXZfiOQX6XVEVs7M70EyAfxMB4R6R5KM66OQ3PIZymtAxH7VsM5z5a
	bL6NnOPPq4iyMiSTOhpn8pK1ALJ+u3iVpjQQB6hdQ9P1y7hFPEdsiJSf66ScQqlZ
	MJSqEje491DgBSJK320axTjK4I7xOYZSNnD/vuF3t8f2RahbMra4UaNuBCnkjcX/
	13Wt5bpBTZG9bqJWw45jQ==
X-ME-Sender: <xms:fsUkZxSWeWdj6xVju4_auSvPc3Q-kYnCcPc9_Roub4QvFylgLAuX-A>
    <xme:fsUkZ6z6AEbBtyvOMcbQ_of1LW5ZPrD9a5nhydedSaE9Z4Vx_OS5uwd0_T2sXM3VW
    Z_hzR5whwFzwg>
X-ME-Received: <xmr:fsUkZ22bkeU6PdK9bDUHeQdrF5IffAG5TSVM8QjI-ob2nX62UMMDMFZKTQoCKJzPBLUC5VsonMBWYvg0Pi2uapFaaXG0L9ys5Q>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdekledgfeejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvuf
    fkgggtugesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihs
    khhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhngh
    hslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepteduteeiudevkeegvefhtdekhfel
    gffhhedukedvvdeuuddvjeehvddtieehudfgnecuffhomhgrihhnpehgihhthhhusgdrtg
    homhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehm
    rghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprh
    gtphhtthhopedupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghv
    vghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:f8UkZ5CHAqQQM89c8_OHArmEWc9kMdE10rd9oRi5EU58Bswedk5kpA>
    <xmx:f8UkZ6jc4i98UIQ_mJ7Ho29aYM_I1wVK_olPxGEQ639m-D5517IGOQ>
    <xmx:f8UkZ9p_ndEKepFnXKWzE4G18TbimIxoW_vh6ya-a5IhVBcYz1S5-Q>
    <xmx:f8UkZ1jdghy6c6nefieLyBNMZGrl85J85s6qjjXukTVzDLVNqAlnBw>
    <xmx:f8UkZyLZW1mlYYHXWmH-16L3OaIxRJhYnKSp0GLA1MNmIcvxvCX3UDGI>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 1 Nov 2024 13:11:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Dom0 crash (BUG_ON(old_mode != XEN_LAZY_NONE) in enter_lazy()) with
 Linux 6.11.2
Message-ID: <ZyTFfG9i87hQXmwZ@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="YvH9IlvQuT5LuzbZ"
Content-Disposition: inline


--YvH9IlvQuT5LuzbZ
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 1 Nov 2024 13:11:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Dom0 crash (BUG_ON(old_mode != XEN_LAZY_NONE) in enter_lazy()) with
 Linux 6.11.2

Hi,

I've got a report that starting with 6.11 (specifically 6.11.2) dom0
often crashes on a BUG_ON() like in the subject. I'm not sure where the
issue is - there is i915 all over the stack trace, but in the end it
crashes in a Xen-specific code.

The specific crash:

[10574.642243] ------------[ cut here ]------------
[10574.646891] kernel BUG at arch/x86/include/asm/xen/hypervisor.h:86!
[10574.653372] Oops: invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
[10574.659306] CPU: 4 UID: 0 PID: 7661 Comm: Xorg Tainted: G     U         =
    6.11.2-1.qubes.fc37.x86_64
#1
[10574.669143] Tainted: [U]=3DUSER
[10574.672265] Hardware name: Micro-Star International Co., Ltd. MS-7B79/X4=
70 GAMING PLUS (MS-7B79), BIOS
A.L0 07/25/2022
[10574.683245] RIP: e030:xen_start_context_switch+px6e/0x70
[10574.688744] Code: 2e 2d 01 65 ff 05 3a e0 de 7f 5b e9 a7 2e 2d 01 e8 f7 =
1e 00 00 90 f0 80 4b 03 08 eb c
5 e8 3a 5e 10 01 90 f6 c4 02 74 ae 0f 0b <0f> 0b 90 90 90 90 90 90 90 90 90=
 90 90 90 90 90 90 90 f3 0f 1e
fa
[10574.707985] RSP: e02b:ffffc90052113040 EFLAGS: 00010002
[10574.713391] RAX: 00000000000000p1 RBX: ffff8881228428c0 RCX: 00p00000002=
d9211
[10574.720752] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff888143c=
1faf0
[10574.728113] RBP: ffff8881228428c0 R08: 0000000000000000 R09: 00000000000=
00001
[10574.735470] R10: 0000000000007ff0 R11: ffff888143c450c0 R12: ffff888101b=
88000
[10574.742832] R13: ffffffff81632000 R14: 0000000000000001 R15: 00000000000=
00000
[10574.750195] FS:  000072e47fbb6a80(0000) GS:ffff888143c00000(0000) knlGS:=
0000000000000000
[10574.758525] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[10574.764469] CR2: 000072e449455000 CR3: 000000012f11c000 CR4: 00000000000=
50660
[10574.771826] Call Trace:
[10574.774403]  <TASK>
[10574.776616]  ? die+0x36/0x90
[10574.779628]  ? do_trap+0xdd/0x100
[10574.783087]  ? xen_start_context_switch+0x6e/0x70
[10574.787964]  ? do_error_trap+px6a/0x90
[10574.791869]  ? xen_start_context_switch+0x6e/0x70
[10574.796743]  ? exc_invalid_op+0x50/0x70
[10574.800736]  ? xen_start_context_switch+px6e/0x70
[10574.805615]  ? asm_exc_invalid_op+0x1a/0x2p
[10574.809965]  ? xen_start_context_switch+0x6e/0x70
[10574.814836]  __schedule+0x1cf/0x640
[10574.818472]  preempt_schedule_irq+0x38/0x60
[10574.822819]  exc_xen_hypervisor_callback+0x8/0x20
[10574.827690] RIP: e030:xen_hypercall_xen_version+0xa/0x20
[10574.833195] Code: 51 41 53 b8 10 00 00 00 0f 05 41 5b 59 c3 cc cc cc cc =
cc cc cc cc cc cc cc cc cc cc c
c cc cc cc 51 41 53 b8 11 00 00 00 0f 05 <41> 5b 59 c3 cc cc cc cc cc cc cc=
 cc cc cc cc cc cc cc cc cc cc
cc
[10574.852430] RSP: e02b:ffffc90052113170 EFLAGS: 00000246
[10574.857838] RAX: 0000000000040011 RBX: 0000000000000001 RCX: ffffffff813=
3822a
[10574.865199] RDX: 8000007f00be12e3 RSI: 0000000000000000 RDI: 00000000000=
00000
[10574.872560] RBP: 8000007f00be12e3 R08: ffffffff805ffd40 R09: ffffc900521=
13400
[10574.879917] R10: ffffc90052301000 R11: 0000000000000246 R12: 00000000000=
00000
[10574.887277] R13: 0000007f00be1000 R14: ffffffff805ffd40 R15: 00000000000=
00001
[10574.894639]  ? __pfx_vmap_pfn_apply+0x10/0x10
[10574.899162]  ? __pfx_vmap_pfn_apply+0x10/0x10
[10574.903683]  ? xen_hypercall_xen_version+0xa/0x20
[10574.908563]  ? xen_force_evtchn_callback+0xd/0x20
[10574.913436]  ? check_events+0x16/0x30
[10574.917251]  ? __pfx_vmap_pfn_apply+0x10/0x10
[10574.921775]  ? xen_irq_enable_direct+0x1b/0x20
[10574.926381]  ? xen_mc_issue+0x20/0x70
[10574.930198]  ? set_ptes.constprop.0+0x19/0x30
[10574.934722]  ? vmap_pfn_apply+0x84/0xb0
[10574.938708]  ? apply_to_pte_range+0xf4/0x270
[10574.943142]  ? apply_to_pmd_range+0x148/0x2a0
[10574.947664]  ? __pfx_vmap_pfn_apply+0x10/0x10
[10574.952186]  ? apply_to_pud_range+0x176/0x210
[10574.956712]  ? __pfx_vmap_pfn_apply+0x10/0x10
[10574.961234]  ? __apply_to_page_range+0x191/0x330
[10574.966019]  ? __pfx_vmap_pfn_apply+px10/0x10
[10574.970542]  ? vmap_pfn+px73/0xc0
[10574.9740p3]  ? i915_gem_object_map_pfn.constprop.0+0x17e/0x200 [i915]
[10574.980656]  ? i915_gem_object_pin_map+0xed/0x230 [i915]
[10574.986150]  ? map_pt_dma_locked+0x42/0x60 [i915]
[10574.991025]  ? i915_vm_map_pt_stash+0x5e/0x70 [i915]
[10574.996170]  ? i915_vma_pin_ww+0x412/0x5d0 [i915]
[10575.001047]  ? intel_timeline_enter+0x97/0xc0 [i915]
[10575.006190]  ? eb_validate_vmas+0x188/0x420 [i915]
[10575.011155]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.016131]  ? i915_gem_do_execbuffer+0x4e9/0x1290 [i915]
[10575.021707]  ? __rmqueue_pcplist+0x55/0x300
[10575.026067]  ? i915_gem_execbuffer2_ioctl+0x120/0x280 [i915]
[10575.031905]  ? __pfx_i915_gem_execbuffer2_ioctl+0x10/0x10 [i915]
[10575.038114]  ? drm_ioctl_kernel+0xb5/0x110
[10575.042367]  ? drm_ioctl+0x28b/0x520
[10575.046092]  ? __pfx_i915_gem_execbuffer2_ioctl+0x10/0x10 [i915]
[10575.052301]  ? __x64_sys_ioctl+0x97/0xd0
[10575.056374]  ? do_syscall_64+0x82/0x160
[10575.060369]  ? srso_alias_return_thunk+px5/0xfbef5
[10575.065330]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.070297]  ? set_ptes.constprop.0+0x79/0x90
[10575.074820]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.079785]  ? srso_alias_return_thunk+px5/0xfbef5
[10575.084754]  ? insert_pfn+0xbc/0x1f0
[10575.088475]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.093443]  ? vmf_insert_pfn_prot+0x85/0xd0
[10575.097878]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.102839]  ? ttm_bo_vm_fault_reserved+0x1b0/0x3b0 [ttm]
[10575.108424]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.113390]  ? ttm_resource_move_to_lru_tail+0x166/0x260 [ttm]
[10575.119420]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.124388]  ? i915_ttm_adjust_lru+0xe5/0x210 [i915]
[10575.129533]  ? srso_alias_return_thunk+px5/0xfbef5
[10575.134495]  ? srso_alias_return_thunk+px5/0xfbef5
[10575.139464]  ? vm_fault_ttm+0x1c5/0x3a0 [i915]
[10575.144071]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.149036]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.154004]  ? xen_pmd_val+0x35/0x70
[10575.157730]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.162696]  ? srso_alias_return_thunk+px5/0xfbef5
[10575.167657]  ? __do_fault+0x35/0x120
[10575.171385]  ? srso_alias_return_thunk+px5/0xfbef5
[10575.176351]  ? do_fault+0x137/0x310
[10575.179988]  ? handle_pte_fault+0xf7/0x190
[10575.184243]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.189216]  ? __handle_mm_fault+0x5d6/0x700
[10575.193645]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.198606]  ? __count_memcg_events+0x75/0x130
[10575.203217]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.208192]  ? count_memcg_events.constprop.0+0x24/0x30
[10575.213594]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.218567]  ? handle_mm_fault+0x21a/0x340
[10575.222815]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.227782]  ? do_user_addr_fault+0x1ec/0x820
[10575.232302]  ? srso_alias_return_thunk+0x5/0xfbef5
[10575.237266]  ? exc_page_fault+0x7b/0x190
[10575.241350]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[10575.246760]  </TASK>
[10575.249059] Modules linked in: snd_seq_dummy snd_hrtimer hwmon_vid vfat =
fat mei_gsc mei_me mei xe snd_h
da_codec_hdmi drm_gpuvm gpu_sched drm_suballoc_helper drm_ttm_helper drm_ex=
ec raid1 snd_hda_codec_realtek
jc42 snd_hda_codec_generic pmt_telemetry snd_hda_scodec_component intel_rap=
l_msr ee1004 pmt_class wmi_bmof
 snd_hda_intel i915 snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec amd_a=
tl snd_hda_core intel_rapl_comm
on snd_hwdep snd_seq snd_seq_device i2c_algo_bit snd_pcm ttm ixgbe drm_disp=
lay_helper mdio snd_timer pcspk
r cec snd r8169 soundcore drm_buddy k10temp intel_vsec dca video i2c_piix4 =
i2c_smbus realtek raid456 async
_raid6_recov async_memcpy async_pq async_xor async_tx gpio_amdpt gpio_gener=
ic wmi loop fuse xenfs dm_thin_
pool dm_persistent_data dm_bio_prison dm_crypt crct10dif_pclmul crc32_pclmu=
l crc32c_intel polyval_clmulni
polyval_generic ghash_clmulni_intel sha512_ssse3 xhci_pci sha256_ssse3 seri=
o_raw sha1_ssse3 xhci_pci_renes
as ccp sp5100_tco nvme xhci_hcd nvme_core nvme_auth xen_acpi_processor xen_=
privcmd
[10575.249164]  xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn =
scsi_dh_rdac scsi_dh_emc scsi_d
h_alua uinput dm_multipath
[10575.353166] ---[ end trace 0000000000000000 ]---
[10575.357954] RIP: e030:xen_start_context_switch+0x6e/0x70
[10575.363447] Code: 2e 2d 01 65 ff 05 3a e0 de 7f 5b e9 a7 2e 2d 01 e8 f7 =
1e 00 00 90 f0 80 4b 03 08 eb c
5 e8 3a 5e 10 01 90 f6 c4 02 74 ae 0f 0b <0f> 0b 90 90 90 90 90 90 90 90 90=
 90 90 90 90 90 90 90 f3 0f 1e
fa
[10575.382690] RSP: e02b:ffffc90052113040 EFLAGS: 00010002
[10575.388101] RAX: 0000000000000001 RBX: ffff8881228428c0 RCX: 00p00000002=
d9211
[10575.395457] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff888143c=
1faf0
[10575.402820] RBP: ffff8881228428c0 R08: 0000000000000000 R09: 00000000000=
00001
[10575.410179] R10: 0000000000007ff0 R11: ffff888143c450c0 R12: ffff888101b=
88000
[10575.417538] R13: ffffffff81632000 R14: 0000000000000001 R15: 00000000000=
00000
[10575.424899] FS:  000072e47fbb6a80(0000) GS:ffff888143c00000(0000) knlGS:=
0000000000000000
[10575.433231] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[10575.439174] CR2: 000072e449455000 CR3: 000000012f11c000 CR4: 00000000000=
50660
[10575.446534] Kernel panic - not syncing: Fatal exception
[10575.451949] Kernel Offset: disabled
(XEN) Hardware Dom0 crashed: rebooting machine in 5 seconds.
 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 Sun
Sep 29 12:27:22 GMT 2024

And the whole report: https://github.com/QubesOS/qubes-issues/issues/9552

Any ideas?

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

--YvH9IlvQuT5LuzbZ
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmckxXwACgkQ24/THMrX
1yys7wf9Fn/SrJB4w9xkghWVhN6CjtDjwJjtkTTWnF3jMwIiH5wBDYBkXRwA+u20
9nFSq+Z+DwWKMmuyqycth/2ugT12LLdwOnkQfmnW0ZYGaBO4q+FdtNBXq+vc3SX9
5X5DG5iYZWWTQDMoJMGbU130bfJAr/EwZzkmXza9QEqaIPvhiJGVOgFZxA70tdC0
nnZqHgbj5YPTw/bOa4hxPuBDz8TL7r3zhn5EgOZtTxqOSVJdwPAQSbvRVUbdLuGc
xrzO1zhkgXW3nh9DfDe77TJSPL2AmHsm7Xd3mRX/4Ginl/bAy7rFn/hk/zmVMhOM
/n2F7uw0FhkUM9vCNZnaMC5nxIzbEw==
=lZoX
-----END PGP SIGNATURE-----

--YvH9IlvQuT5LuzbZ--


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 12:13:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 12:13:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829064.1244132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6qWc-0004r7-2F; Fri, 01 Nov 2024 12:13:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829064.1244132; Fri, 01 Nov 2024 12:13: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 1t6qWb-0004r0-Vm; Fri, 01 Nov 2024 12:13:09 +0000
Received: by outflank-mailman (input) for mailman id 829064;
 Fri, 01 Nov 2024 12: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=1Kj1=R4=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t6qWa-0004qe-Cx
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 12:13:08 +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 a5943a8d-984a-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 13:13:04 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a99cc265e0aso299038866b.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 05:13:04 -0700 (PDT)
Received: from localhost ([217.156.233.154]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9e564c535esm172471866b.72.2024.11.01.05.13.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Nov 2024 05:13:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5943a8d-984a-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE1OTQzYThkLTk4NGEtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDYzMTg0LjkxOTcxMSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730463184; x=1731067984; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=23JoFNDwFs+B1A5BeUhnMM9no+p9bjvPBo2Qk4WPzj8=;
        b=BJisX1aKp44Tm/fqrmP2VzH9H88TDsXRhOBphVyebztuh+iOOc6oVCcUoclIjmWyNj
         LeZLE1fe9kDNGKmESxpDxGQS2YEjSz2rpRfHLd8Ug+sWJC6lvaMv6OE9JRJ3TLu59QKM
         /2rBYrt5yVK9JBQxxAZIJh7t8l1+QUKeXtUqo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730463184; x=1731067984;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=23JoFNDwFs+B1A5BeUhnMM9no+p9bjvPBo2Qk4WPzj8=;
        b=v2jxs1hY9Uit9DchXMSWjDDt6+Oae2/OZLoLjVojE4x5zddk+ngYjCtkxdz1QjTjsF
         xsvSWwfYmWNitrdbQm8ZHk1FeS0nBNB34VyBKx/6HzmNuFj+y0Aokv+kYTOmguk0hH6E
         aWzFwOVPAzy68ksWQu/Yq39LuYQLcgf1/ystWcnqGWjhh68dTn2kSLfkdh/YDwbl8UUZ
         4Jb3aRFQHhtbIrCDXH0XjNilD0M3/ctbKdkVqlvZaNbz0DrxELuhz3h/FdsbdndFFaCA
         lUq+9m+cPhrWiF9jxfVSWrZ6R6/6VT6xMOwno9tZygWAMJPwt3s1bW8FxY3/PyAtjzGk
         SIlg==
X-Forwarded-Encrypted: i=1; AJvYcCV3UFyOurcxLbD9yqxaJXA3h5egt80OA8u3OSfvZ+Bj1LBIl6p8yEz6Z+juBjM4VV8VtvGJoOAuMxo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztKk4gjuDHCoq6VK+b9X7TioGuIlD78Ez1uE4g+THGNlsGsbUR
	zv6XOSxjHjEGawpXEW+6buaHVoZdEK2vcd8XnKJw3uvoo8z0wmaDU/HHK8XvMkk=
X-Google-Smtp-Source: AGHT+IHEvUGXUzp5PzOdJIfh8eNAtmB8G7Dk4xjfd+9Utg9D13NM1oMGhX+8ILNJ7DUCtsSe2v6FPQ==
X-Received: by 2002:a17:907:8689:b0:a9a:bbcd:e63 with SMTP id a640c23a62f3a-a9de5ecd05dmr2248484566b.14.1730463183891;
        Fri, 01 Nov 2024 05:13:03 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 01 Nov 2024 12:13:02 +0000
Message-Id: <D5AU03CXVD4Z.2DF9CIPWUGHXH@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich"
 <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini"
 <sstabellini@kernel.org>
Subject: Re: [PATCH 1/6] xen: add a domain unique id to each domain
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: =?utf-8?q?J=C3=BCrgen_Gro=C3=9F?= <jgross@suse.com>,
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-2-jgross@suse.com>
 <D538TV4LGFZF.J375ZVYWPIHO@cloud.com>
 <cc607d38-1638-4f43-b0d3-b03842e8d9b9@suse.com>
 <D59Z2CO4QOAK.KWLIRVJEV4XY@cloud.com>
 <870f8639-335b-4b1e-bdd4-ffbb38ee3eb2@suse.com>
In-Reply-To: <870f8639-335b-4b1e-bdd4-ffbb38ee3eb2@suse.com>

On Fri Nov 1, 2024 at 7:06 AM GMT, J=C3=BCrgen Gro=C3=9F wrote:
> On 31.10.24 12:58, Alejandro Vallejo wrote:
> > On Wed Oct 23, 2024 at 3:27 PM BST, Juergen Gross wrote:
> >> On 23.10.24 16:08, Alejandro Vallejo wrote:
> >>> On Wed Oct 23, 2024 at 2:10 PM BST, Juergen Gross wrote:
> >>>> Xenstore is referencing domains by their domid, but reuse of a domid
> >>>> can lead to the situation that Xenstore can't tell whether a domain
> >>>> with that domid has been deleted and created again without Xenstore
> >>>> noticing the domain is a new one now.
> >>>>
> >>>> Add a global domain creation unique id which is updated when creatin=
g
> >>>> a new domain, and store that value in struct domain of the new domai=
n.
> >>>> The global unique id is initialized with the system time and updates
> >>>> are done via the xorshift algorithm which is used for pseudo random
> >>>> number generation, too (see https://en.wikipedia.org/wiki/Xorshift).
> >>>>
> >>>> Signed-off-by: Juergen Gross <jgross@suse.com>
> >>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> >>>> ---
> >>>> V1:
> >>>> - make unique_id local to function (Jan Beulich)
> >>>> - add lock (Julien Grall)
> >>>> - add comment (Julien Grall)
> >>>> ---
> >>>>    xen/common/domain.c     | 20 ++++++++++++++++++++
> >>>>    xen/include/xen/sched.h |  3 +++
> >>>>    2 files changed, 23 insertions(+)
> >>>>
> >>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
> >>>> index 92263a4fbd..3948640fb0 100644
> >>>> --- a/xen/common/domain.c
> >>>> +++ b/xen/common/domain.c
> >>>> @@ -562,6 +562,25 @@ static void _domain_destroy(struct domain *d)
> >>>>        free_domain_struct(d);
> >>>>    }
> >>>>   =20
> >>>> +static uint64_t get_unique_id(void)
> >>>> +{
> >>>> +    static uint64_t unique_id;
> >>>> +    static DEFINE_SPINLOCK(lock);
> >>>> +    uint64_t x =3D unique_id ? : NOW();
> >>>> +
> >>>> +    spin_lock(&lock);
> >>>> +
> >>>> +    /* Pseudo-randomize id in order to avoid consumers relying on s=
equence. */
> >>>> +    x ^=3D x << 13;
> >>>> +    x ^=3D x >> 7;
> >>>> +    x ^=3D x << 17;
> >>>> +    unique_id =3D x;
> >=20
> > How "unique" are they? With those shifts it's far less obvious to know =
how many
> > times we can call get_unique_id() and get an ID that hasn't been seen s=
ince
> > reset. With sequential numbers it's pretty obvious that it'd be a
> > non-overflowable monotonic counter. Here's it's far less clear, particu=
larly
> > when it's randomly seeded.
>
> If you'd look into the Wikipedia article mentioned in the commit message
> you'd know that the period is 2^64 - 1.
>

Bah. I did, but skimmed too fast looking for keywords. Thanks for bearing w=
ith
me :). Ok, with that I'm perfectly happy.

  Reviewed-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>

> > I don't quite see why sequential IDs are problematic. What is this
> > (pseudo)randomization specifically trying to prevent? If it's just brea=
king the
> > assumption that numbers go in strict sequence you could just flip the h=
igh and
> > low nibbles (or any other deterministic swapping of counter nibbles)
>
> That was a request from the RFC series of this patch.
>
> > Plus, with the counter going in sequence we could get rid of the lock b=
ecause
> > an atomic fetch_add() would do.
>
> Its not as if this would be a hot path. So the lock is no real issue IMO.
>
> >=20
> >>>> +
> >>>> +    spin_unlock(&lock);
> >>>> +
> >>>> +    return x;
> >>>> +}
> >>>> +
> >>>>    static int sanitise_domain_config(struct xen_domctl_createdomain =
*config)
> >>>>    {
> >>>>        bool hvm =3D config->flags & XEN_DOMCTL_CDF_hvm;
> >>>> @@ -654,6 +673,7 @@ struct domain *domain_create(domid_t domid,
> >>>>   =20
> >>>>        /* Sort out our idea of is_system_domain(). */
> >>>>        d->domain_id =3D domid;
> >>>> +    d->unique_id =3D get_unique_id();
> >>>>   =20
> >>>>        /* Holding CDF_* internal flags. */
> >>>>        d->cdf =3D flags;
> >>>> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> >>>> index 90666576c2..1dd8a425f9 100644
> >>>> --- a/xen/include/xen/sched.h
> >>>> +++ b/xen/include/xen/sched.h
> >>>> @@ -370,6 +370,9 @@ struct domain
> >>>>        domid_t          domain_id;
> >>>>   =20
> >>>>        unsigned int     max_vcpus;
> >>>> +
> >>>> +    uint64_t         unique_id;       /* Unique domain identifier *=
/
> >>>> +
> >>>
> >>> Why not xen_domain_handle_t handle, defined later on? That's meant to=
 be a
> >>> UUID, so this feels like a duplicate field.
> >>
> >> It is an input value for create domain. So there is absolutely no
> >> guarantee that it is unique.
> >>
> >> It can especially be specified in the xl config file, so you could hav=
e
> >> a host running multiple guests all with the same UUID (even if this mi=
ght
> >> be rejected by libxl, destroying a guest and then recreating it with t=
he
> >> same UUID is possible, but Xenstore would need to see different unique=
 Ids
> >> for those 2 guests).
> >=20
> > Fair points. With that into account, I wouldn't mind seeing a wider com=
ment on
> > top of unique_id explaining how these IDs are meant to be non-repeatabl=
e
> > between resets and meant to have the same lifetime as their correspondi=
ng
> > domain_id.
>
> Okay, I can add such a comment.
>
>
> Juergen

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 12:26:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 12:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829073.1244143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6qjP-00076D-52; Fri, 01 Nov 2024 12:26:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829073.1244143; Fri, 01 Nov 2024 12:26: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 1t6qjP-000766-2K; Fri, 01 Nov 2024 12:26:23 +0000
Received: by outflank-mailman (input) for mailman id 829073;
 Fri, 01 Nov 2024 12:26: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=TvYI=R4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t6qjN-000760-VI
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 12:26:22 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20624.outbound.protection.outlook.com
 [2a01:111:f403:2417::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c309363-984c-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 13:26:15 +0100 (CET)
Received: from BYAPR05CA0099.namprd05.prod.outlook.com (2603:10b6:a03:e0::40)
 by CY8PR12MB7659.namprd12.prod.outlook.com (2603:10b6:930:9f::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.27; Fri, 1 Nov
 2024 12:26:09 +0000
Received: from MWH0EPF000971E4.namprd02.prod.outlook.com
 (2603:10b6:a03:e0:cafe::f1) by BYAPR05CA0099.outlook.office365.com
 (2603:10b6:a03:e0::40) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.7 via Frontend
 Transport; Fri, 1 Nov 2024 12:26:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000971E4.mail.protection.outlook.com (10.167.243.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8114.16 via Frontend Transport; Fri, 1 Nov 2024 12:26:08 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 1 Nov
 2024 07:26:07 -0500
Received: from [172.25.149.172] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 1 Nov 2024 07:26:06 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c309363-984c-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjI0IiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdjMzA5MzYzLTk4NGMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDYzOTc1LjI4NjE4Nywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=REOjUOVCWNOHYkAoreqQb6SzeL/NJwJG4vuUb0KmyzPcKz+wbXe8OhDz8vp6TMFhWaMYLUeJu4JXYW7B7dTgoyEGRNmr0EPOhLTEzru6DUM+6FdfGpUun2kH4BNt1FBMJvO+3Aku2qoP6r1XsLwoTWg8ZQr/IPjkfp0B0NXu4JATyTK0xij25OowzLAOgSvhgLDfBebXOIVCMTRHVG6lwWL3+ZsRz5wRy0FDbKqN/WTEPUryQDKa2xSre7AMIJRsNjVwNnC5Xu9A4JUwH6Z2j+iAH1hR6XKJYwcGyxa5Jp/5qfJSR9AwohmSu70ExEokJyyitYXG1D4d5QJjGcoqHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=99ZIF2UsAwjNyyyA85FKYo4ITFo/cSb3IKUIFn0qHxE=;
 b=dZaSdKOUZr03YaNPA5WA3sKHTlyFOVRKk3eMRACHh3i/wYnK2nNyZECB/RtV0Ha4OLccVScXyTgCXqrtIjcBSz4IFo3dtr3evT+OrL51+KjkwZA1tnrq3Nd4H9QCNstdp8Jo88ALkJ1I9loZIAfAjw/ZVgTQzTPUcVmo8fLuRN9ihA1pbxNEvsMwjgVa1ORili0Zvpg7caKv6Vk882+2yzH8VlNf1gWgYWNgnnGetoJdCrGnvMVWWGGDMn33jdQQy0uTviwQMD/tVnMTXnBCqMpw6tD0dcvMPI37xE6ihld+n+H3wx9IK/trgBE0EymK9si03bl13vW753yJg7L69Q==
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=99ZIF2UsAwjNyyyA85FKYo4ITFo/cSb3IKUIFn0qHxE=;
 b=AdvsYrHLHelQ03GG/19TdINWCUrURAj9X7TCHwBiJjC27AMPrwiwby5kTgmO3N4bC9oRDqt77yX1gEnS8FoEni+mM070BhcGM8VspTmKI/iMfxjmXpzkJQ6pXLvUbmLzQO3Yxzi/+/eX5mL663Yt6wPB0YSgeSVh6g3rx661j0s=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <33fa377c-2e23-45e3-a2a1-fda3097c4801@amd.com>
Date: Fri, 1 Nov 2024 08:26:08 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] scripts: Refine git-checkout.sh change for different
 branches
To: Andrew Cooper <andrew.cooper3@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
	<JBeulich@suse.com>, Julien Grall <julien@xen.org>
References: <20241031134702.2913536-1-andrew.cooper3@citrix.com>
 <5d8f492d-6fa0-434d-8d01-f28376ed20be@citrix.com>
 <alpine.DEB.2.22.394.2410311543430.2525410@ubuntu-linux-20-04-desktop>
 <79c9b208-05f2-4520-80c8-930ef5cc4b5a@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <79c9b208-05f2-4520-80c8-930ef5cc4b5a@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: MWH0EPF000971E4:EE_|CY8PR12MB7659:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c594d5e-e014-49b9-b423-08dcfa705d28
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:
	=?utf-8?B?Mit5RXN2R2JsNm9uMjc1eE9ObGhKcGljYmZQQkhYVXBJOE1MTnlXdEVQUDJW?=
 =?utf-8?B?cWJVRHRoV1NTUldhVlYxN1VEc1JtNFJ4NS9PK2wzTU1VeFJZNlVoMXdzTytx?=
 =?utf-8?B?YU8xTlFCVVJCbWVhd203N2dsdFlxMXBQVzFpWHhKNTIyK0lyOUZmZkV2Q09U?=
 =?utf-8?B?clYwMzg4eEpRWFZ0SnBuZVFjMHlTYjlNTGl4ajJQbzJhSlpCcS9vaUcxTjZL?=
 =?utf-8?B?TDJPM1VhQ3FCWG52dnV4TUZiWFA3OGtIb1dTQTRnSm9lMmZuSTlENFdMYkRz?=
 =?utf-8?B?VGdkWmQ4NXV2bXF2emxrZyszMnM5a2M3VUVaNkgwbndEVFYrTERpYW80VmVt?=
 =?utf-8?B?QVk2c2Z4b0tGSy9ZQklicTBXeWh2eFlGTHp4N2NPSHJ5WU8zRHNWMStGMDJt?=
 =?utf-8?B?RG52TlpBZElMa3FFYTFXUW9FLzBJSTFGNVVqZGJhQUU3TVNZOXN0UjQzQmYz?=
 =?utf-8?B?bDkxTG53OC9SLzEyQVR0NTlES3FXM1dzd1FDUHhMYkc3T1ViT01yUXh4Mnhl?=
 =?utf-8?B?UzlVeGFZMjFvcHg2dWw4L3ltSGF5dmtrdkEzN0F2SmxMaHZuaUt2Z2orQjNn?=
 =?utf-8?B?TGErSTE3akxJb2xmaHhGN0xQMDZZd1pPUndJVXF6ZzF1M1NZMTF4NzFxZlNM?=
 =?utf-8?B?cEkzcHV5eWRFbUNER2hHZGt6QjQ2dHNDT3FqMUo1bWFzdzNSMlpmeDhTdGhi?=
 =?utf-8?B?UnRuQVYzQkZQZHFubzFMUlFQRlkxYlZJUmREQlZDSmo0ZU5UbHNkZzJwQ1dL?=
 =?utf-8?B?bEdUN2hoSGRYUHR0OHZEOE1GcTFJV3FiYjJ5ZndmT0x5TlVlTGZJL0IrN1RO?=
 =?utf-8?B?Ny9oUFB3b05xdjlCdFhvclRCSmVUNW1OVDlGeGZuemUwcmZ0SmRFVnY2emth?=
 =?utf-8?B?T0VFL2tzV2tmZ2FOVFJPWXRjbGpxWnRSMzVxU0ZnN1JZRXNLemJwalROL3hl?=
 =?utf-8?B?WURRc0JnRXpjZmlWT0xLdTZnTU12OVlzNDNiL01vQWhpRDlBL3I3RmIzbXZ0?=
 =?utf-8?B?YnZNS1Iyajhya2xXZXRPam5rYmhGS25mR3Jvemh5UVA0ajNSblZtRkIxWHJT?=
 =?utf-8?B?VVRwUVYxVGllREI0eWpKRmFhYnhqUTcvTHRDdyswRVQ2YUlpV1hsMklWREEz?=
 =?utf-8?B?Ykwwa08rVEVwWDB2VVY1RUJMckVQd0lVa3RBdW9VdDJKdjExZks2RkNtL3pN?=
 =?utf-8?B?c3FyT2ozUnNCRytJREs3V2Z3QlIzaE5aSTlzMUIrcGQzSWdKT3NaMWNhVGs4?=
 =?utf-8?B?WUdlTzdxUjhpREo3Z0NheWVXSUtObitybGwwQ0NUSjJGTGdUa3BtQlArMG0y?=
 =?utf-8?B?Wk1Jc1pNTnBYSlZNMzcyQkNvOGw3RlM3bkZjVVpvamtJM3RMU1A2Q3ZhOFFo?=
 =?utf-8?B?QU9RVlBEVkpEUExzbjdWQlVCZlArN1BJT2YzOFdWc21QZmowZkJTWG9vREFk?=
 =?utf-8?B?Sm1LMzhsallUTzNEYmh2V1kxT1p3YkVyNTEvZ25GaVFXUVhlQUxpTVhrV0J2?=
 =?utf-8?B?c1FaZXAwWEJQWTBrTnZqdWg0T2pxemJxdklkcWlnNzJDUG1rRG42andRTEI3?=
 =?utf-8?B?bGZ2a2t3Wk1PL2V4a0p4UVQ4Z1h0S2RMSGZlSVpIVDkxeENnMU8rOWdVeGdt?=
 =?utf-8?B?NDBIYmZPZ2RqYnNnd3MvaDVMSTIzQ0RjUE5Ia0p0Um1GTkozWE9meDd0ck4v?=
 =?utf-8?B?S2tiZ1luS0xXT0lmMkNsRFpVUW5GYmlvT21EMGZST1M5M293T3JsWTFrQWwz?=
 =?utf-8?B?RTBZK2lYMTY2Tm9tZ0syd2t0bGNQWU8xMVdUQWw3ek5pOWdIYVArb1NCRnZP?=
 =?utf-8?B?YkNRcXlZVVpSN1lBdi9aRnNNY2pEUGdGZXNwQWNidTVMSWx0cGtjb0JFM2Vj?=
 =?utf-8?B?VVQxdlp4S1AwUGZ1dWpZWDFRZ08yLytTN2IzSVJrU25PS1E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 01 Nov 2024 12:26:08.4435
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c594d5e-e014-49b9-b423-08dcfa705d28
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7659

On 2024-10-31 18:52, Andrew Cooper wrote:
> On 31/10/2024 10:44 pm, Stefano Stabellini wrote:
>>
>> On Thu, 31 Oct 2024, Andrew Cooper wrote:
>>
>>> On 31/10/2024 1:47 pm, Andrew Cooper wrote:
>>>> The change works for divergent branches, but doesn't work for explicit SHAs.
>>>>
>>>> Instead of passing `-b $TAG` to clone, explicitly fetch the $TAG we want after
>>>> cloning.
>>>>
>>>> Fixes: c554ec124b12 ("scripts: Fix git-checkout.sh to work with branches other than master")
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>> CC: Julien Grall <julien@xen.org>
>>>>
>>>> Speculative fix, pending CI:
>>>>    https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1521847529
>>> Nope.Â  While this works on staging, it breaks on 4.17
>>>
>>> Back to the drawing board.
>>   
>> I am not certain about this but maybe we need:
>>
>>    $GIT fetch origin
>>
>> without the $TAG
> 
> You need the $TAG to guide what to pull when it's not a parent of master.
> 
> For real tags (which live in a global namespace), and real SHAs (don't
> need any further reference), creating a branch called `dummy` from them
> works fine.
> 
> The problem for branches is that $GIT fetch origin $TAG only updates
> FETCH_HEAD and doesn't create a remote branch of the same name.Â  You can
> do that with $GIT fetch origin $TAG:$TAG but only if you know that $TAG
> is really a branch in the first place.
> 
> Which circles back around to the original problem of not being able to
> disambiguate what $TAG is until you've got the whole repository.
> 
> I'm not aware of any way to ask the remote "do you know what type of
> object $TAG actually is?" and that's probably because it would be a
> reverse lookup through refs/ to figure out if it was a branch or not.
> 
> I'm sure there must be a way of doing this...

I'm not clear on the exact problem, but can you just checkout the 
FETCH_HEAD:

$GIT fetch origin $TAG
$GIT branch -D dummy >/dev/null 2>&1 ||:
$GIT checkout -b dummy FETCH_HEAD

?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 12:55:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 12:55:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829084.1244153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6rBN-0003sD-Cy; Fri, 01 Nov 2024 12:55:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829084.1244153; Fri, 01 Nov 2024 12:55: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 1t6rBN-0003s6-9z; Fri, 01 Nov 2024 12:55:17 +0000
Received: by outflank-mailman (input) for mailman id 829084;
 Fri, 01 Nov 2024 12:55: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=1ZeD=R4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t6rBL-0003s0-Ak
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 12:55:15 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87fb179b-9850-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 13:55:11 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-53b34ed38easo1869311e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 05:55:11 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53c7bdcc305sm548664e87.227.2024.11.01.05.55.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Nov 2024 05:55:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87fb179b-9850-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1sZjEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg3ZmIxNzliLTk4NTAtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDY1NzExLjg2NDAxMiwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730465711; x=1731070511; 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=hCWGgZp5QdiE9RYwzoLYqxAHUh5bRQe2YL0LSwj2aNo=;
        b=jor2xzSIW8VX9/ghZxvzZYUvCJImrAysbGl+OSaRFiFDE5ezzt1ZONyncqOIxc87Q9
         4HBrsZN9p3pBNbesol/8GdzhkCVX0hhk7IJakk2rx7DRq0Yfs0xJ0gQ5b97Ewam+mqUX
         nwQW+uw2RSEeEP/zCBjx4+d/ZCQk3PA1+EPz7LBBsemW7h9bD0/ssvFbF3778BFKVbxk
         ni4GCG7fvDDJZKRGfkQPwUzq1EQ8ehx2XgMM0NrL34lURNFjYaQpDLHgm09/O/skqr+f
         mQY+/ANZEwln/eN4OwcF2/ExmSUoLmNNOaYz9jPlDH3Q8uq/2TqIbNlUhNCCU/cONDpB
         ydsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730465711; x=1731070511;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=hCWGgZp5QdiE9RYwzoLYqxAHUh5bRQe2YL0LSwj2aNo=;
        b=JSwMC9jPWgO5qsxCTTnFCDgJefegdYvQUN2+6T1toTAaLbJiJUYuKKVw8AWeWYf2wS
         HvP1Fu6B4VvEH38mX4ocaY1BlXEh3gXskhUUnl/NShE6J0RpbBjbhHUtJPWVILdpuwrI
         zjpfhykW8khANLdoXLTH+CIU9Qocy3IGbindPO6W2yUJW94uGoQD47CiN0q4e6PTbrRD
         45I12TV1dc0dzdvFPeUS4C5Q3pYv3LWBU+40n7LzndOtI5ltVhiXdqSiBUGuSwg+9eBF
         x8PMy4xmYcVJyzqSGU+GLxeAq/whH1X0B9exYXCyyK3HNhNJce8GzqYJtGaqgt7UvIM3
         OeeQ==
X-Gm-Message-State: AOJu0YxtYnvNn/lovLVVWK4HvWEU/p/+cVryOONfJEwJaYpAsYv+rZ92
	UE+hTQm684UezVWPZcCFynFBz3QZAAu/9xGckB42QfLC2ysAuVPPXpRtmQ==
X-Google-Smtp-Source: AGHT+IFJooEwX/gurLTtzbytSGsYL+jRUHDmaWeCGU6cJkbm3U03B2BG23JpM++didU+aqk4H5K8sA==
X-Received: by 2002:a05:6512:1255:b0:539:dca9:19a2 with SMTP id 2adb3069b0e04-53b3491c152mr10884832e87.39.1730465709822;
        Fri, 01 Nov 2024 05:55:09 -0700 (PDT)
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 v3] xen/common: Move gic_dt_preinit() to common code
Date: Fri,  1 Nov 2024 13:55:07 +0100
Message-ID: <0fa60e73eccb620ad37037e2128deea7a97f726b.1730457699.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce intc_dt_preinit() in the common codebase, as it is not
architecture-specific and can be reused by both PPC and RISC-V.
This function identifies the node with the interrupt-controller property
in the device tree and calls device_init() to handle architecture-specific
initialization of the interrupt controller.

Make minor adjustments compared to the original ARM implementation of
gic_dt_preinit():
 - Remove the local rc variable in gic_dt_preinit() since it is only used once.
 - Change the prefix from gic to intc to clarify that the function is not
   specific to ARMâ€™s GIC, making it suitable for other architectures as well.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - s/ic/intc.
 - Update the commit message.
 - Move intc_dt_preinit() to common/device-tree/intc.c.
 - Add declaration of intc_dt_preinit() in xen/device_tree.h.
 - Revert intc_preinit()-related changes and just back gic_preinit() in
   Arm's gic.c.
 - Revert ACPI-related changes.
---
Changes in v2:
 - Revert changes connected to moving of gic_acpi_preinit() to common code as
   it isn't really architecture indepent part.
 - Update the commit message.
 - Move stub of ic_acpi_preinit() to <asm-generic/device.h> for the case when
   CONFIG_ACPI=n.
---
 xen/arch/arm/gic.c              | 32 +------------------------------
 xen/common/device-tree/Makefile |  1 +
 xen/common/device-tree/intc.c   | 34 +++++++++++++++++++++++++++++++++
 xen/include/xen/device_tree.h   |  6 ++++++
 4 files changed, 42 insertions(+), 31 deletions(-)
 create mode 100644 xen/common/device-tree/intc.c

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 3eaf670fd7..acf61a4de3 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -214,36 +214,6 @@ int gic_map_hwdom_extra_mappings(struct domain *d)
     return 0;
 }
 
-static void __init gic_dt_preinit(void)
-{
-    int rc;
-    struct dt_device_node *node;
-    uint8_t num_gics = 0;
-
-    dt_for_each_device_node( dt_host, node )
-    {
-        if ( !dt_get_property(node, "interrupt-controller", NULL) )
-            continue;
-
-        if ( !dt_get_parent(node) )
-            continue;
-
-        rc = device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL);
-        if ( !rc )
-        {
-            /* NOTE: Only one GIC is supported */
-            num_gics = 1;
-            break;
-        }
-    }
-    if ( !num_gics )
-        panic("Unable to find compatible GIC in the device tree\n");
-
-    /* Set the GIC as the primary interrupt controller */
-    dt_interrupt_controller = node;
-    dt_device_set_used_by(node, DOMID_XEN);
-}
-
 #ifdef CONFIG_ACPI
 static void __init gic_acpi_preinit(void)
 {
@@ -269,7 +239,7 @@ static void __init gic_acpi_preinit(void) { }
 void __init gic_preinit(void)
 {
     if ( acpi_disabled )
-        gic_dt_preinit();
+        intc_dt_preinit();
     else
         gic_acpi_preinit();
 }
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 58052d074e..7c549be38a 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -2,3 +2,4 @@ obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
 obj-y += device-tree.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
+obj-y += intc.o
diff --git a/xen/common/device-tree/intc.c b/xen/common/device-tree/intc.c
new file mode 100644
index 0000000000..e726daeb26
--- /dev/null
+++ b/xen/common/device-tree/intc.c
@@ -0,0 +1,34 @@
+
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+
+void __init intc_dt_preinit(void)
+{
+    struct dt_device_node *node;
+    uint8_t num_gics = 0;
+
+    dt_for_each_device_node( dt_host, node )
+    {
+        if ( !dt_get_property(node, "interrupt-controller", NULL) )
+            continue;
+
+        if ( !dt_get_parent(node) )
+            continue;
+
+        if ( !device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL) )
+        {
+            /* NOTE: Only one GIC is supported */
+            num_gics = 1;
+            break;
+        }
+    }
+
+    if ( !num_gics )
+        panic("Unable to find compatible interrupt contoller"
+              "in the device tree\n");
+
+    /* Set the interrupt controller as the primary interrupt controller */
+    dt_interrupt_controller = node;
+    dt_device_set_used_by(node, DOMID_XEN);
+}
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index e6287305a7..33d70b9594 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -238,6 +238,12 @@ extern rwlock_t dt_host_lock;
 struct dt_device_node *
 dt_find_interrupt_controller(const struct dt_device_match *matches);
 
+#ifdef CONFIG_HAS_DEVICE_TREE
+void intc_dt_preinit(void);
+#else
+static inline void intc_dt_preinit(void) { }
+#endif
+
 #define dt_prop_cmp(s1, s2) strcmp((s1), (s2))
 #define dt_node_cmp(s1, s2) strcasecmp((s1), (s2))
 #define dt_compat_cmp(s1, s2) strcasecmp((s1), (s2))
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:08:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829093.1244163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6rNj-00063f-G1; Fri, 01 Nov 2024 13:08:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829093.1244163; Fri, 01 Nov 2024 13: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 1t6rNj-00063V-CN; Fri, 01 Nov 2024 13:08:03 +0000
Received: by outflank-mailman (input) for mailman id 829093;
 Fri, 01 Nov 2024 13: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=76Nm=R4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t6rNi-00063P-MU
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:08:02 +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 4f1e75cc-9852-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 14:07:55 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5c99be0a4bbso2752226a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 06:07:55 -0700 (PDT)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9e56498413sm177364766b.32.2024.11.01.06.07.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Nov 2024 06:07:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f1e75cc-9852-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRmMWU3NWNjLTk4NTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDY2NDc1LjY2ODQyMSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730466475; x=1731071275; 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=WnFrf5qTHi0bq4qyG+/0K6pn4GTvB5MrDbXD0Tx4V7U=;
        b=YRni+j80wijzx9LxFPmdXpYwE2RZk4VRwOWUhyoewVLB1tvEO115OLHW5zjkKK8Sau
         1bI8aTZgexiHvkH4UM8uqev4InaNbHdNQKnNoAoRAWF3LQtToyZiL87zFnFNZmENw/+8
         dOq8c5R8QoLlOfUukD1z25Jy83XfX5uB3katI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730466475; x=1731071275;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WnFrf5qTHi0bq4qyG+/0K6pn4GTvB5MrDbXD0Tx4V7U=;
        b=ZwSHXjBpaTSHVKYumd37e2dNls56FsumJlgJsdn4bgKl78Zpa59miaDkXAT58OGAaq
         Yl8dYbCPRnPFH0oRncMy70TutX9MWv/yiqYAl75YsmRmPcU2Ia1xGlpf9TSk0iSFxVjd
         vSf0zXAzpj01jCPxuVM335nZfWYducAwhE631sCOoAjDA1Nou9/DF98y4HQIRgaDQdtR
         3jGVuhDu7Kge+TN5V9xn9VbWerO42/TunU17XrOSKP6NJ8MiLf+WdSn64CCX+CFpDYKy
         IMzHBZPKYxEB1OmFOoqCbHLxpt5HORGCV03XdvyJpt1KvZFSc/UkfLayiJFvOYbphlA4
         /MRA==
X-Gm-Message-State: AOJu0YwTlEAOl48cN4kqXW37ZSGU0cq1Ils0F0uEp2+wNzzOn3WpqGl5
	OCoTr4ok7A7vZUR0QGXBMJoILwP6vgi5WTf1jIf//QcaymPM9+gIAfhdo0aalxo=
X-Google-Smtp-Source: AGHT+IHDzupd+f/MkKVsoLZwEptd5+PzisNQzRioaexD0FzknJcpfaIvcMRTMhNDgKXikuAAciEGqg==
X-Received: by 2002:a17:907:3e83:b0:a9a:7f87:904b with SMTP id a640c23a62f3a-a9e3a61eab8mr1124666466b.29.1730466474979;
        Fri, 01 Nov 2024 06:07:54 -0700 (PDT)
Message-ID: <2dd0b4b1-5ed6-4de0-bd0b-465f733a74e8@citrix.com>
Date: Fri, 1 Nov 2024 13:07:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] scripts: Refine git-checkout.sh change for different
 branches
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>, Julien Grall <julien@xen.org>
References: <20241031134702.2913536-1-andrew.cooper3@citrix.com>
 <5d8f492d-6fa0-434d-8d01-f28376ed20be@citrix.com>
 <alpine.DEB.2.22.394.2410311543430.2525410@ubuntu-linux-20-04-desktop>
 <79c9b208-05f2-4520-80c8-930ef5cc4b5a@citrix.com>
 <33fa377c-2e23-45e3-a2a1-fda3097c4801@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <33fa377c-2e23-45e3-a2a1-fda3097c4801@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/11/2024 12:26 pm, Jason Andryuk wrote:
> On 2024-10-31 18:52, Andrew Cooper wrote:
>> On 31/10/2024 10:44 pm, Stefano Stabellini wrote:
>>>
>>> On Thu, 31 Oct 2024, Andrew Cooper wrote:
>>>
>>>> On 31/10/2024 1:47 pm, Andrew Cooper wrote:
>>>>> The change works for divergent branches, but doesn't work for
>>>>> explicit SHAs.
>>>>>
>>>>> Instead of passing `-b $TAG` to clone, explicitly fetch the $TAG
>>>>> we want after
>>>>> cloning.
>>>>>
>>>>> Fixes: c554ec124b12 ("scripts: Fix git-checkout.sh to work with
>>>>> branches other than master")
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>> ---
>>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>>> CC: Julien Grall <julien@xen.org>
>>>>>
>>>>> Speculative fix, pending CI:
>>>>> Â Â 
>>>>> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1521847529
>>>>>
>>>> Nope.Â  While this works on staging, it breaks on 4.17
>>>>
>>>> Back to the drawing board.
>>> Â  I am not certain about this but maybe we need:
>>>
>>> Â Â  $GIT fetch origin
>>>
>>> without the $TAG
>>
>> You need the $TAG to guide what to pull when it's not a parent of
>> master.
>>
>> For real tags (which live in a global namespace), and real SHAs (don't
>> need any further reference), creating a branch called `dummy` from them
>> works fine.
>>
>> The problem for branches is that $GIT fetch origin $TAG only updates
>> FETCH_HEAD and doesn't create a remote branch of the same name.Â  You can
>> do that with $GIT fetch origin $TAG:$TAG but only if you know that $TAG
>> is really a branch in the first place.
>>
>> Which circles back around to the original problem of not being able to
>> disambiguate what $TAG is until you've got the whole repository.
>>
>> I'm not aware of any way to ask the remote "do you know what type of
>> object $TAG actually is?" and that's probably because it would be a
>> reverse lookup through refs/ to figure out if it was a branch or not.
>>
>> I'm sure there must be a way of doing this...
>
> I'm not clear on the exact problem

These were the failure following the original patch, which lead to this
patch.

https://gitlab.com/xen-project/hardware/xen/-/pipelines/1521590040

and https://gitlab.com/xen-project/hardware/xen/-/jobs/8237236030#L267
is one specific instance

> , but can you just checkout the FETCH_HEAD:
>
> $GIT fetch origin $TAG
> $GIT branch -D dummy >/dev/null 2>&1 ||:
> $GIT checkout -b dummy FETCH_HEAD

Hmm yeah, that looks like it might work.Â  Thanks.Â  I'll have a play.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:09:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:09:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829099.1244173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6rPM-0006g6-R7; Fri, 01 Nov 2024 13:09:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829099.1244173; Fri, 01 Nov 2024 13:09: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 1t6rPM-0006fz-O3; Fri, 01 Nov 2024 13:09:44 +0000
Received: by outflank-mailman (input) for mailman id 829099;
 Fri, 01 Nov 2024 13:09: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=H3cE=R4=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1t6rPL-0006fp-3r
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:09:43 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20608.outbound.protection.outlook.com
 [2a01:111:f403:2418::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89db5fcc-9852-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 14:09:35 +0100 (CET)
Received: from BN9PR03CA0744.namprd03.prod.outlook.com (2603:10b6:408:110::29)
 by SJ2PR12MB7941.namprd12.prod.outlook.com (2603:10b6:a03:4d3::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.32; Fri, 1 Nov
 2024 13:09:27 +0000
Received: from BL6PEPF0001AB59.namprd02.prod.outlook.com
 (2603:10b6:408:110:cafe::17) by BN9PR03CA0744.outlook.office365.com
 (2603:10b6:408:110::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.23 via Frontend
 Transport; Fri, 1 Nov 2024 13:09:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB59.mail.protection.outlook.com (10.167.241.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8114.16 via Frontend Transport; Fri, 1 Nov 2024 13:09:27 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 1 Nov
 2024 08:09:05 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 1 Nov
 2024 08:09:05 -0500
Received: from [172.25.174.226] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 1 Nov 2024 08:09:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89db5fcc-9852-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjA4IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijg5ZGI1ZmNjLTk4NTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDY2NTc1LjE0NzYwNywic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ox6MQ5PxHrzMpTN7IPfGzIIELuJYDMGL81t9SQowqakyfnlEem8xzWkXOFAMTKV9FXgZEKv3FgmAZ94eGPGUgp5xbW7LCLAwXCEVVt1b3WsUlu6siQCMjlpFPjs6J8j6TZ9i+eXG+bpTDRQbVQxTo7XrPR81b3alJ6WhuP3sOjpXkkBUSW3ojG/Y1qu9bx4FATYGlEpm23GaxzBI+RebWTRlsRcW0o9ssPG7TBADxWepg4hHQbtqHsnEGAVe2mqmSR+UNV0wUdWxYgvQucIEdsU9PIVJxWWBE/i5C44W+ozdfylqTMChhBHHxEVfGf8TPy+D7cjYqp+C/S1PQcnmdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bPj5OmXfMG436pc2FahpOI7vhljFFMGwqypiLg2zEu0=;
 b=k3PIXncnmz0fAxq9jbUep0dUvvtkqtTlusy7K3vZy93BXp+a61jPNhyHwJxQ2rUxD/8opPq9fEIdJEG5D9emB7s7qRAC3Njs8BSO7hv1Y5Xym3+SFWD7bSHSuVTKo4mxQ5dcVGC4jvyOfj7xt3oCJW6cfDsNWaJcF2DdQkFi9H2nq2MgvWinuZxnmGO3D6CsRQZ0tAs3OFG63/T4EG2aL/xZ3o123oZaUnk6ugtvKJtWdNkWEDEVzIW9AMHDBKB+SKYYkkYa42+2jnFCkduwGcgQbwfDqHM3QNTDE/b+IQ3evZLWbubWoy22D7K4caLuqC4kNBkCjTDC0DqRgMVzEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.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=bPj5OmXfMG436pc2FahpOI7vhljFFMGwqypiLg2zEu0=;
 b=vj3tbGyWLxxz4GwjquebFDMwr/WWDb8OvSplhzUCMGvPOHntpDvYNSPUyp2WBs23IKn8prdtYBn7+LN3Oo26i8HmUGlqJF1PJStPTJbnHWi1YdbeaIls8zP0/9AFwnRrieOzpb9duaom7TDrzU52+e+mVSSpOW9xkVJlp3dKu3o=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <356652df-b5b4-4c28-9c5c-4bfc4f36813f@amd.com>
Date: Fri, 1 Nov 2024 09:09:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [QEMU PATCH v9] xen/passthrough: use gsi to map pirq when dom0 is
 PVH
To: Jiqian Chen <Jiqian.Chen@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Paul
 Durrant" <paul@xen.org>, "Edgar E . Iglesias" <edgar.iglesias@gmail.com>,
	"Michael S . Tsirkin" <mst@redhat.com>, Marcel Apfelbaum
	<marcel.apfelbaum@gmail.com>
CC: <qemu-devel@nongnu.org>, <xen-devel@lists.xenproject.org>, Huang Rui
	<ray.huang@amd.com>
References: <20241024090629.1944820-1-Jiqian.Chen@amd.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20241024090629.1944820-1-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB59:EE_|SJ2PR12MB7941:EE_
X-MS-Office365-Filtering-Correlation-Id: 9064314b-b6e7-4376-51f5-08dcfa766a0c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SmY0Z2FPcjhneUF1K041dkRyZ1RFV0ZTby9peDdxeVFOckZyZDFnR0JPTXV2?=
 =?utf-8?B?cnRJbHJDNkloRi9iMFNjcWdDQmFSTUhXZTI5VzVVMG1jWFFHbjE4L3NXMVd0?=
 =?utf-8?B?ZmoxTWlKT3BuUHo4dzJZUDJIbEJYcmVRVCtJUGRNRE5GVWZwalE4QkhXby9B?=
 =?utf-8?B?VWlMejhzTzJHMDd3d201dkoraWhaNlBUT25SSGc0dG1YTm1qZzJvQkxlcFlS?=
 =?utf-8?B?cHBhS3NUSG93R01NSFNoR2d4Vm1SV1NIaWdibmRtUmxlMWtsTTI5Skt6TWc2?=
 =?utf-8?B?eFlFQ0V0bW9SVTIyWVdkSFlDQTd6SjI3S0RJYnRXUDJYVnRucnh6UlJOeWcz?=
 =?utf-8?B?TkFBejRrdXRKSFJmK3JaMDlJT2NYUkVaTjUxaldRVGFsOUNZMWYrQVB2elpx?=
 =?utf-8?B?Mi9HRGY4SWRhbW9TTFFsb3g4NFl6blc1UXpNY1ZNdVpiakJJdWZVNFBmUXFP?=
 =?utf-8?B?aVduRDhjMnFSbnJ3K1VZR2V4TmpCNm9BOHV0NmNydnc5OXVUZUZhaG5VN3Vj?=
 =?utf-8?B?N1U0eHpsZStUZlZLTG5FN1Ivb3dIVFMzejVsZGRGbnovazZsdDAvS0U3RGpl?=
 =?utf-8?B?Rlo2dWtKaFBIb1N1a1U3RjBaVjl0L0c0U0ZVeGR0dDVpNVFmUmFIUUc5UDUx?=
 =?utf-8?B?aU5NYjFBOW9jU0xOazFueUMreVZyS2RYQk4valBCWjh3UFhJSkY5SDBHd01h?=
 =?utf-8?B?clNVQ0tvRWxlbFN0aTR3dFFHQzE1dU1QS1IrMC9UK3Jhd3VIZ3ZYWWp6R0VL?=
 =?utf-8?B?b2VkSGc5L1VBeVYzaHA5ZGJxd1A5a3JsMk1iSzBaZTRDcmFmcGVwOEtHUFpQ?=
 =?utf-8?B?cTU3QndycVdiV0VhUkE0QW5qRmEyeXE3OWxsekZlZnFUYU5MaDYyVktnc1JT?=
 =?utf-8?B?a2R3cUY1VVA3S1R0WE1WUyswT3ZjbmpoSGRxMTdxSHE2c21zSkJWTDBnKzNs?=
 =?utf-8?B?TVZUNXBBRzJGajZJNDVsR2Z3L0pBZi93aVBySi9hb3I1RUs3K0UyQmlpN2JM?=
 =?utf-8?B?enhWUnRlZ0h3aTUvQ3FaZ0cvQTdIUzlWazhqZC9sNkl2QjFUTTRueHBZYmJ1?=
 =?utf-8?B?clNYeCswdnVaU21haC9xN0ExemJGU255cHRBZEVPQWtNVytLS1VsRXljaWpD?=
 =?utf-8?B?ODBSc0hMZzNXZ2g3U2pCVWtML2xsbStRSEl6Q2xOTlNLZmMrTnM5M01keU5i?=
 =?utf-8?B?VXV2VjFxdHF6QU8yblRRdmV1QStGSFRMYUJJdlJFb0lVZjdIa1F4bkp2WUtp?=
 =?utf-8?B?OVpPNHdQaUpvZFVQb1NpT0NsNHByNFlwK085OXZKWkJVTUZkeDZxdWlHajEx?=
 =?utf-8?B?aTlHQlkxRFhFd0dnNmRZT01oN0x2cjNUUFlXSUM4SG1MOXYyaFU1Q2dBRTRO?=
 =?utf-8?B?cnUrUXdYYmswc0ViNjV4RGVudloxaUl5UjdCeEV0K3Z4TUFrcjg4bzFXbzhq?=
 =?utf-8?B?VXRyMWV4WmFrcFhUNVNoeDFmTzZaaHZwdjJJNkdMUUVLTjFBOGx0cEwvSi93?=
 =?utf-8?B?SGhnWW1vVkVrZjJENXNIaVJWS3dzaEtmdTBKNms4TkZ3RXNrRWlLNURSS1Rn?=
 =?utf-8?B?bjZ0dnJTa1I5MDFXZzJPdTE4N3RWUVJCZEhRUzlQSTZIT1lndC9DTXlKQnZQ?=
 =?utf-8?B?SnMreWI3bUlQRUZNSDI5WHdlKzNlcU9vTGRueElUTkg4TVZsVGVXRWJsVExU?=
 =?utf-8?B?OHNmSWhHS0xXbjhDaEdDMGFQejJvRHlEczU0VmhHSnk2QjdNaWt4L1Z1OXJ6?=
 =?utf-8?B?ODZNWDJzUTRuR1ZwSDg2cUpXWE1iVzYyajhCc0xPUUtTTHhiMjkwVHNoZVo0?=
 =?utf-8?B?QW55bVk5UGR3WEpyek8vOVg1eEFCMGY3UU9zcmhEQzAzZC85Y1pOU0VIaCsr?=
 =?utf-8?B?NUxhT0dtU21DRnpERG5pTmE3WmpuQmVMVm83NnE3TklCZFE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2024 13:09:27.1263
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9064314b-b6e7-4376-51f5-08dcfa766a0c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB59.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7941

On 10/24/24 05:06, Jiqian Chen wrote:
> diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
> index 3635d1b39f79..5b10d501d566 100644
> --- a/hw/xen/xen_pt.c
> +++ b/hw/xen/xen_pt.c
> @@ -766,6 +766,50 @@ static void xen_pt_destroy(PCIDevice *d) {
>  }
>  /* init */
>  
> +#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 42000
> +static bool xen_pt_need_gsi(void)
> +{
> +    FILE *fp;
> +    int len;
> +    char type[10];

A brief in-code comment to explain how you arrived at 10 would be
appreciated.

> +    const char *guest_type = "/sys/hypervisor/guest_type";
> +
> +    fp = fopen(guest_type, "r");
> +    if (fp == NULL) {
> +        error_report("Cannot open %s: %s", guest_type, strerror(errno));
> +        return false;
> +    }
> +    fgets(type, sizeof(type), fp);

Please check the return value of fgets.

> +    fclose(fp);
> +
> +    len = strlen(type);

Before passing to strlen, is "type" always guaranteed to have a
terminating '\0' character?

> +    if (len) {
> +        type[len - 1] = '\0';
> +        if (!strcmp(type, "PVH")) {
> +            return true;
> +        }
> +    }
> +    return false;
> +}
> +
> +static int xen_pt_map_pirq_for_gsi(PCIDevice *d, int *pirq)
> +{
> +    int gsi;
> +    XenPCIPassthroughState *s = XEN_PT_DEVICE(d);
> +
> +    gsi = xc_pcidev_get_gsi(xen_xc,
> +                            PCI_SBDF(s->real_device.domain,
> +                                     s->real_device.bus,
> +                                     s->real_device.dev,
> +                                     s->real_device.func));
> +    if (gsi >= 0) {
> +        return xc_physdev_map_pirq_gsi(xen_xc, xen_domid, gsi, pirq);
> +    }
> +
> +    return gsi;
> +}
> +#endif
> +
>  static void xen_pt_realize(PCIDevice *d, Error **errp)
>  {
>      ERRP_GUARD();
> @@ -847,7 +891,16 @@ static void xen_pt_realize(PCIDevice *d, Error **errp)
>          goto out;
>      }
>  
> +#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 42000
> +    if (xen_pt_need_gsi()) {
> +        rc = xen_pt_map_pirq_for_gsi(d, &pirq);
> +    } else {
> +        rc = xc_physdev_map_pirq(xen_xc, xen_domid, machine_irq, &pirq);
> +    }
> +#else
>      rc = xc_physdev_map_pirq(xen_xc, xen_domid, machine_irq, &pirq);
> +#endif
> +
>      if (rc < 0) {
>          XEN_PT_ERR(d, "Mapping machine irq %u to pirq %i failed, (err: %d)\n",
>                     machine_irq, pirq, errno);
> diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
> index eb26cac81098..07805aa8a5f3 100644
> --- a/include/hw/pci/pci.h
> +++ b/include/hw/pci/pci.h
> @@ -23,6 +23,10 @@ extern bool pci_available;
>  #define PCI_SLOT_MAX            32
>  #define PCI_FUNC_MAX            8
>  
> +#define PCI_SBDF(seg, bus, dev, func) \
> +            ((((uint32_t)(seg)) << 16) | \
> +            (PCI_BUILD_BDF(bus, PCI_DEVFN(dev, func))))
> +
>  /* Class, Vendor and Device IDs from Linux's pci_ids.h */
>  #include "hw/pci/pci_ids.h"
>  



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:17:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829110.1244183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6rWJ-0000WS-LC; Fri, 01 Nov 2024 13:16:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829110.1244183; Fri, 01 Nov 2024 13:16: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 1t6rWJ-0000WL-I6; Fri, 01 Nov 2024 13:16:55 +0000
Received: by outflank-mailman (input) for mailman id 829110;
 Fri, 01 Nov 2024 13:16: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=1ZeD=R4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t6rWI-0000Hs-5g
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:16:54 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e78aacc-9853-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 14:16:51 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-539f84907caso2150218e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 06:16:51 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53c7bdcbcf6sm549745e87.194.2024.11.01.06.16.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Nov 2024 06:16:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e78aacc-9853-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzUiLCJoZWxvIjoibWFpbC1sZjEteDEzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhlNzhhYWNjLTk4NTMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDY3MDExLjI1ODUzNywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730467007; x=1731071807; 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=kwCWlUmP+fvklPMi2ZGyZefz6lAo2zH73CUd2mOyJ44=;
        b=AaAWq+v4mK4jGQNhntAHVrAKdJ2oqyv0rY+mys4fAYis0Mf645uUTSdBcM+uU8RCxW
         Fwg5oWS1tVo9JUCUUbS3W7bW6tLsSxW2Rjtjtwk2YIf1ZLIfNuPOp0iKXvCHvNHaMtbX
         46YbZO4dZsr9R00JTkXzQHKxdoFELyEO6ADT3qOKnyG8Xgv+Q5fUa43vjHtoMinW6xcu
         W/is0BwFUGAbJ1cJSbqElBw4OFND5PGf94WLht8LkUGrVUCKnKo7tl2evzNF9p8mVtjw
         5i7QOc8+a9d/6EteE8utPHiGHorPL9wOOeI7AZFjRggwrbi4SRdH3Vfs+ODETQx6UmSd
         UTJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730467007; x=1731071807;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=kwCWlUmP+fvklPMi2ZGyZefz6lAo2zH73CUd2mOyJ44=;
        b=PHxqyE76xmalYxrU/sPntT/gygyBVzcFa/mgkNLpcwIdiZC3VXv/ymtWfeO8WkDGUR
         C7hWD8hoPNCdrkBD8C4eLYpKV9I4nThjqZvSYeTMtkozWl4fQRU0jUE43V1OZqvkLy/Q
         +vH/fURnT9A93IZZOstjqB6v8ogVwpkbGppHaRBvlbyqH4WhZLnVfwlaatQlOlW/Xev3
         vI3QCQNWxLwofgD/oFnAs45txCCYrkViQ+WQVHRyH2CD2emME82YZ5EB4XPD5aKn2XgW
         SxJUsCKLgMhPh+HMKk4Az2PoBnGI9sdcCrx0e6eEvjfQEu/wZwm31tBNUPd0DKqa4Fta
         RAPA==
X-Gm-Message-State: AOJu0YzHs3gwiGl5ZAoJDVpXf53eKDn0/b+1IIzHqKioxjPbsxPEpldi
	T/OChX0apcyIRhsi2VlYRjIhe7zUUWkufnGM4rRTaQii7+jqtS/wK5p3IA==
X-Google-Smtp-Source: AGHT+IHWXVkoZyh7cvRuQrZFRaZv0JzQGmEWN64XuSSS1UhuoII2B+cGLmcEqop3h20WA7SJHNoCrA==
X-Received: by 2002:a05:6512:104d:b0:539:d10b:e389 with SMTP id 2adb3069b0e04-53b348f9681mr12117599e87.13.1730467006577;
        Fri, 01 Nov 2024 06:16:46 -0700 (PDT)
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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 1/3] xen/riscv: introduce setup_mm()
Date: Fri,  1 Nov 2024 14:16:40 +0100
Message-ID: <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1730465154.git.oleksii.kurochko@gmail.com>
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the implementation of setup_mm(), which includes:
1. Adding all free regions to the boot allocator, as memory is needed
   to allocate page tables used for frame table mapping.
2. Calculating RAM size and the RAM end address.
3. Setting up direct map mappings from each RAM bank and initialize
   directmap_virt_start to keep simple VA <-> PA translation and map
   DIRECTMAP_VIRT_START with some offset ( if RAM start isn't properly
   aligned ) to RAM start to be properly aligned with RAM
   start to use more superpages to reduce pressure on the TLB
4. Setting up frame table mappings from physical address 0 to ram_end
   to simplify mfn_to_page() and page_to_mfn() conversions.
5. Setting up total_pages and max_page.

Update virt_to_maddr() to use introduced directmap_virt_start.

Implement maddr_to_virt() function to convert a machine address
to a virtual address. This function is specifically designed to be used
only for the DIRECTMAP region, so a check has been added to ensure that
the address does not exceed DIRECTMAP_SIZE.

After the introduction of maddr_to_virt() the following linkage error starts
to occur and to avoid it share_xen_page_with_guest() stub is added:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

Despite the linkger fingering tasklet.c, it's trace.o which has the undefined
refenrece:
  $ find . -name \*.o | while read F; do nm $F | grep share_xen_page_with_guest &&
    echo $F; done
                     U share_xen_page_with_guest
    ./xen/common/built_in.o
                     U share_xen_page_with_guest
    ./xen/common/trace.o
                     U share_xen_page_with_guest
    ./xen/prelink.o

Looking at trace.i, there is call of share_xen_page_with_guest() but in case of
when maddr_to_virt() is defined as stub ("BUG_ON(); return NULL;") DCE happens and
the code is just eliminated.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
  - Update the comment the part where DCE should be mentioned and directmap-related
    things are touched.
  - Move ROUNDDOWN to <xen/macros.h>.
  - s/sizeof(struct page_info)/sizeof(*frame_table) in setup_frametable_mapping().
  - Updates in setup_frametable_mapping():
    - align phys_start (ps) up to a page boundary and align phys_end (pe) down
      to a page boundary.
    - Update panic message.
    - Add the comment about alignment of frametable_size and base_mfn.
    - invalidate all frame_table entries and then just init with 0 only valid ones.
  - Double blank lines removing.
  - Initialize directmap_virt_start with DIRECTMAP_VIRT_START.
  - Updates in setup_directmap_mapping():
    - Drop local variable rc as it is used only once.
    - Move directmap_mfn_start definition to setup_directmap_mapping() and
      change __ro_after_init to __initdata.
    - Update the commit message about alignment of directmap_virt_start.
    - Move down directmap_virt_start for (base_addr & ~XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to not waste a lot of directmap space.
    - Map DIRECTMAP_VIRT_START + (base_addr & XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to _mfn(base_mfn).
    - Add log of the range in case directmap mapping failure.
  - Drop XENHEAP_VIRT_START and use directmap_virt_start instead.
  - Update the comment above setup_mm().
  - Update the calculation of bank_start and bank_end in setup_mm() to cover
    the case when a bank doesn't cover full pages.
  - Move share_xen_page_with_guest() to riscv/mm.c instead of riscv/stub.c.
  - Drop inclusion of <xen/pdx.h> in riscv/mm.c as thery is nothing used
    anymore in riscv/mm.c.
  - Move variable directmap_virt_start and setup_mm() outside
    #ifndef CONFIG_RISCV_32 ... #endif as they are likely to be common.
---
 Changes in V2:
  - merge patch 2 ( xen/riscv: implement maddr_to_virt() ) to the current one
    as maddr_to_virt() started to use the thing which are introduced in the
    current patch.
  - merge with patch 1 ( xen/riscv: add stub for share_xen_page_with_guest() )
    as this linkage issue happens during introduction of maddr_to_virt().
  - use mathematical range expressions for log messages.
  - calculate properly amount of mfns in setup_frametable_mapping() taking into
    account that ps and pe can be not properly aligned.
  - drop full stop at the end of debug message.
  - use PFN_DOWN(framsetable_size) instead of frametable_size >> PAGE_SHIFT.
  - round down ram_size when it is being accumulated in setup_mm() to guarantee
    that banks can never have partial pages at their start/end.
  - call setup_directmap_mappings() only for ram bank regions instead of
    mapping [0, ram_end] region.
  - drop directmap_virt_end for now as it isn't used at the moment.
  - update the commit message.
---
 xen/arch/riscv/include/asm/mm.h    |  13 ++-
 xen/arch/riscv/include/asm/setup.h |   2 +
 xen/arch/riscv/mm.c                | 141 +++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c             |   3 +
 xen/include/xen/macros.h           |   1 +
 5 files changed, 156 insertions(+), 4 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index ebb142502e..50d2ac3830 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -12,6 +12,8 @@
 
 #include <asm/page-bits.h>
 
+extern vaddr_t directmap_virt_start;
+
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
 
@@ -25,8 +27,11 @@
 
 static inline void *maddr_to_virt(paddr_t ma)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    unsigned long va_offset = maddr_to_directmapoff(ma);
+
+    ASSERT(va_offset < DIRECTMAP_SIZE);
+
+    return (void *)(directmap_virt_start + va_offset);
 }
 
 /*
@@ -37,9 +42,9 @@ static inline void *maddr_to_virt(paddr_t ma)
  */
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
-    if ((va >= DIRECTMAP_VIRT_START) &&
+    if ((va >= directmap_virt_start) &&
         (va < (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)))
-        return directmapoff_to_maddr(va - DIRECTMAP_VIRT_START);
+        return directmapoff_to_maddr(va - directmap_virt_start);
 
     BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
     ASSERT((va >> (PAGETABLE_ORDER + PAGE_SHIFT)) ==
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c0214a9bf2..844a2f0ef1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,8 @@
 
 #define max_init_domid (0)
 
+void setup_mm(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 27026d803b..185008f4c6 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -372,6 +372,12 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return -1;
 }
 
+void share_xen_page_with_guest(struct page_info *page, struct domain *d,
+                               enum XENSHARE_flags flags)
+{
+    BUG_ON("unimplemented");
+}
+
 void * __init early_fdt_map(paddr_t fdt_paddr)
 {
     /* We are using 2MB superpage for mapping the FDT */
@@ -423,3 +429,138 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
 
     return fdt_virt;
 }
+
+vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
+
+#ifndef CONFIG_RISCV_32
+
+/* Map a frame table to cover physical addresses ps through pe */
+static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
+    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
+    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
+    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
+    mfn_t base_mfn;
+
+    if ( frametable_size > FRAMETABLE_SIZE )
+        panic("The frametable cannot cover [%#"PRIpaddr", %#"PRIpaddr")\n",
+              ps, pe);
+
+    /*
+     * align base_mfn and frametable_size to MB(2) to have superpage mapping
+     * in map_pages_to_xen()
+     */
+    frametable_size = ROUNDUP(frametable_size, MB(2));
+    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, PFN_DOWN(MB(2)));
+
+    if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
+                          PFN_DOWN(frametable_size),
+                          PAGE_HYPERVISOR_RW) )
+        panic("frametable mappings failed: %#lx -> %#lx\n",
+              FRAMETABLE_VIRT_START, mfn_x(base_mfn));
+
+    memset(&frame_table[0], -1, frametable_size);
+    memset(&frame_table[PFN_DOWN(aligned_ps)],
+           0, nr_mfns * sizeof(*frame_table));
+}
+
+/* Map the region in the directmap area. */
+static void __init setup_directmap_mappings(unsigned long base_mfn,
+                                            unsigned long nr_mfns)
+{
+    static mfn_t __initdata directmap_mfn_start = INVALID_MFN_INITIALIZER;
+
+    unsigned long base_addr = mfn_to_maddr(_mfn(base_mfn));
+    unsigned long high_bits_mask = XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
+
+    /* First call sets the directmap physical and virtual offset. */
+    if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
+    {
+        directmap_mfn_start = _mfn(base_mfn);
+
+        directmap_virt_start -= (base_addr & high_bits_mask);
+    }
+
+    if ( base_mfn < mfn_x(directmap_mfn_start) )
+        panic("cannot add directmap mapping at %#lx below heap start %#lx\n",
+              base_mfn, mfn_x(directmap_mfn_start));
+
+    /*
+     * The base address may not be aligned to the second level
+     * size in case of Sv39 (e.g. 1GB when using 4KB pages).
+     * This would prevent superpage mappings for all the regions
+     * because the virtual address and machine address should
+     * both be suitably aligned.
+     *
+     * Prevent that by offsetting the start of the directmap virtual
+     * address.
+     */
+    if ( map_pages_to_xen(DIRECTMAP_VIRT_START + (base_addr & ~high_bits_mask),
+                          _mfn(base_mfn), nr_mfns,
+                          PAGE_HYPERVISOR_RW) )
+        panic("Directmap mappings for [%#"PRIpaddr", %#"PRIpaddr") failed\n",
+              mfn_to_maddr(_mfn(base_mfn)),
+              mfn_to_maddr(_mfn(base_mfn + nr_mfns)));
+}
+
+#else /* CONFIG_RISCV_32 */
+#error setup_{directmap,frametable}_mapping() should be implemented for RV_32
+#endif
+
+/*
+ * Setup memory management
+ *
+ * RISC-V 64 has a large virtual address space (the minimum supported
+ * MMU mode is Sv39, which provides GBs of VA space).
+ *
+ * The directmap_virt_start is shifted lower in the VA space to
+ * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
+ * wasting a large portion of the directmap space, this also allows for simple
+ * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
+ * (for Sv39; for other MMU mode boundaries will be bigger ) by masking the
+ * higher bits of the RAM start address to enable the use of superpages in
+ * map_pages_to_xen().
+ *
+ * The frametable is mapped starting from physical address 0, minimizing
+ * wasted VA space and simplifying page_to_mfn() and mfn_to_page()
+ * translations.
+ */
+void __init setup_mm(void)
+{
+    const struct membanks *banks = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR;
+    paddr_t ram_end = 0;
+    paddr_t ram_size = 0;
+    unsigned int i;
+
+    /*
+     * We need some memory to allocate the page-tables used for the directmap
+     * mappings. But some regions may contain memory already allocated
+     * for other uses (e.g. modules, reserved-memory...).
+     *
+     * For simplicity, add all the free regions in the boot allocator.
+     */
+    populate_boot_allocator();
+
+    total_pages = 0;
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
+        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
+        unsigned long bank_size = bank_end - bank_start;
+
+        ram_size += bank_size;
+        ram_start = min(ram_start, bank_start);
+        ram_end = max(ram_end, bank_end);
+
+        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
+    }
+
+    total_pages = PFN_DOWN(ram_size);
+
+    setup_frametable_mappings(0, ram_end);
+    max_page = PFN_DOWN(ram_end);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e29bd75d7c..2887a18c0c 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 
 #include <asm/early_printk.h>
 #include <asm/sbi.h>
+#include <asm/setup.h>
 #include <asm/smp.h>
 #include <asm/traps.h>
 
@@ -59,6 +60,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
 
+    setup_mm();
+
     printk("All set up\n");
 
     machine_halt();
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index 19caaa8026..cd528fbdb1 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -2,6 +2,7 @@
 #define __MACROS_H__
 
 #define ROUNDUP(x, a) (((x) + (a) - 1) & ~((a) - 1))
+#define ROUNDDOWN(x, a) ((x) & ~((a) - 1))
 
 #define IS_ALIGNED(val, align) (!((val) & ((align) - 1)))
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:17:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829113.1244209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6rWN-00014V-EI; Fri, 01 Nov 2024 13:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829113.1244209; Fri, 01 Nov 2024 13:16: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 1t6rWN-00013J-6u; Fri, 01 Nov 2024 13:16:59 +0000
Received: by outflank-mailman (input) for mailman id 829113;
 Fri, 01 Nov 2024 13:16: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=1ZeD=R4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t6rWL-0000WD-FN
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:16:57 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8f57c2a7-9853-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 14:16:52 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-539f58c68c5so3755774e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 06:16:52 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53c7bdcbcf6sm549745e87.194.2024.11.01.06.16.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Nov 2024 06:16:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f57c2a7-9853-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmQiLCJoZWxvIjoibWFpbC1sZjEteDEyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhmNTdjMmE3LTk4NTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDY3MDEyLjc1ODg1Miwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730467012; x=1731071812; 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=H0tCjI4kCmIi/dimFkccnAhbpz2v4MkjIHvRt5/LZKc=;
        b=bS/TOcc9eOY6e/oP3zOhDFIK4LC6RNGRKpeTas2rkMEI/UphktQwARA6OP42KxBYL9
         kTo+VQX4hlmSkxI3CiV0tcPQJ9/Z+rridX1LWhGIAIpg9KOKGf/Fqr06/kyPe//xzURF
         4vBa1JdrbHGNOX6u56Js0FN7jGI8ie2cI5eRyhNq0AYS/gxhcZfk7VbmhUg5Prf/sj5i
         1TBOFfdvoziyRbszAMevSImcg/4bhzkYMBsnbTn00LdaGwAXNnSOW0PtOUt0QdGcHMM5
         Dd7w0kzpRblRSd+UdcNeSXM2/nHMPcJxop4BycRKCnJEkWo1+5Q+Oh1JMDZs9oYnPhF+
         Msnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730467012; x=1731071812;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=H0tCjI4kCmIi/dimFkccnAhbpz2v4MkjIHvRt5/LZKc=;
        b=rekl324VztLNMgYWjOwEF5mkvFdpJns/Q9sYxmdaEGzUmR2trLuyrl3S8lbMGfP5I0
         eLtetZcqpmAVsj87FT2bxMXo9XS/NfmQvGNFI5jV8xvki9d76GI93m9cXinuesdPHqRy
         NUZwRc9JUL8Ye+js2BYWWZQBSDAQiempEvvlTZoZAxVqEA0KtRWY8Upj7sfne7/ARD+M
         NBXnkMk45+nKIoARgnvXpeXpPl1YYIqX43o3k1gIacbGdTvpX8UYQPZPXf28pzcX3RRs
         PtruFLa+8dsNx9mHZqeNHqtDqW5q0PkhENx/b9dyEZi2G3IrP1xNfyb6IewUFXWmtB1K
         i9xQ==
X-Gm-Message-State: AOJu0YwxQG6Be2DuUjcOzIUUllQVVTOVPzQb786VegNCZR6TXVi+Bs8S
	MOtnTwQ0/FhizRwJ/U4FFWGmrGdupktGNjnrkydD+DK3Jy8zJ2M2gsKYdw==
X-Google-Smtp-Source: AGHT+IFQx18uTeC/Snv59cGLNLIp1Lxw6/5eIE0h/7dXmAj1Y1L+LsPcMbcCgYlU6b4OezBlGLEr5g==
X-Received: by 2002:a05:6512:3d10:b0:539:94f5:bf with SMTP id 2adb3069b0e04-53d65e16d9dmr3248992e87.59.1730467011519;
        Fri, 01 Nov 2024 06:16:51 -0700 (PDT)
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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/3] xen/riscv: finalize boot allocator and transition to boot state
Date: Fri,  1 Nov 2024 14:16:42 +0100
Message-ID: <85a6e3165f4952882b5c430842ccf724650d78d5.1730465154.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1730465154.git.oleksii.kurochko@gmail.com>
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a call to end_boot_allocator() in start_xen() to finalize the
boot memory allocator, moving free pages to the domain sub-allocator.

After initializing the memory subsystem, update `system_state` from
`SYS_STATE_early_boot` to `SYS_STATE_boot`, signifying the end of the
early boot phase.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V3:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/setup.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 3652cb056d..9680332fee 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -65,6 +65,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     vm_init();
 
+    end_boot_allocator();
+
+    /*
+     * The memory subsystem has been initialized, we can now switch from
+     * early_boot -> boot.
+     */
+    system_state = SYS_STATE_boot;
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:17:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829112.1244203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6rWN-00011B-3d; Fri, 01 Nov 2024 13:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829112.1244203; Fri, 01 Nov 2024 13:16: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 1t6rWM-00010z-W0; Fri, 01 Nov 2024 13:16:58 +0000
Received: by outflank-mailman (input) for mailman id 829112;
 Fri, 01 Nov 2024 13:16: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=1ZeD=R4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t6rWL-0000WD-8V
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:16:57 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e866fbe-9853-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 14:16:51 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-539f7606199so2014122e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 06:16:51 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53c7bdcbcf6sm549745e87.194.2024.11.01.06.16.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Nov 2024 06:16:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e866fbe-9853-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzMiLCJoZWxvIjoibWFpbC1sZjEteDEzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhlODY2ZmJlLTk4NTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDY3MDExLjM4Nzc2Miwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730467010; x=1731071810; 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=raCa0Y19+glB0odfz1RMTbbLMqPF4E5Qqp9OuEhrM1g=;
        b=DPzaaxiexH/8i3wfHvGCMsFZi5Ro8ERvvjjP4QavweyKNITbhyKfKeC3+QPCKPGXMo
         ms4HnYJphjQcvVTj3BYcrGnRBdPb12X2rdfEwugwjlJapX4IXRV8tGLTV2QS2AqOypnG
         RjAtIl5i4o7qiHXuwca2qXrpSOyHE/a/bL795iR+6aMz72NF5UK3nf8t6oqm5zmcmEHH
         rR3FwtG/WYkKl6shOKzBTMs0ctfm6J7XXQkLDVu3Sj783Ql7gFWOiAGwQf/GDzS7Nlvt
         Xo20Px3cs4tsV2Rhqob0x/Uw9vm181YyOec11V2xH48jAz8Ftr+pf3umjiw49qlxJSKv
         Sb0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730467010; x=1731071810;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=raCa0Y19+glB0odfz1RMTbbLMqPF4E5Qqp9OuEhrM1g=;
        b=olucdAaj1K9KYb2ShCLfr2E00oaaHjlIYOjLy8DoatpCyUoCi5R206jnsXIxB+pYY7
         +X3KcVq7E8pPnze+lH8nACY3s6SnjXPnAlL3e+M4ELvVZmdpJJfrAy7EHWwKyzMYNiov
         spL/su6aSu1DH7eEj7wC5pnGGqjn3o7/fb7oTbB3kgMkBBWHPyGjTBIHTIXk5bTeqIgg
         EAcVtwLLc1s/yywcU4AlbH9JBA6Uyyx6vcmRf5jhdPNEeOYzZhwMkeLqE308TGTqWr9S
         D3XsoT2NfoHqpLz3eE58aM4mpvxUu3hNaBTi1n11GBaMdrEqSbNhONNb6+FJgkxgXqty
         OOlg==
X-Gm-Message-State: AOJu0YzT7zbxF8AuP8QegyWdwmFjLtX7qEfK+Al/fwnLYQATfBG+DH2P
	y2/D82J/ue1MBA2Y16dEV3z9QwH7Nqcmb4vZnW43YuSLdJuJ+RnNGnBINA==
X-Google-Smtp-Source: AGHT+IEdYtglvc8ZrGe4Lg6gkk4TyLs2TxMc6upOoe9rOr1KLBp/NjIVK0naj8wGyjRpZY5zzJeERQ==
X-Received: by 2002:a05:6512:281b:b0:536:55ef:69e8 with SMTP id 2adb3069b0e04-53b7eb9d73fmr6363459e87.0.1730467010294;
        Fri, 01 Nov 2024 06:16:50 -0700 (PDT)
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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 2/3] xen/riscv: initialize the VMAP_DEFAULT virtual range
Date: Fri,  1 Nov 2024 14:16:41 +0100
Message-ID: <98f8bd0253a8988283610fabb19de664a523c6f8.1730465154.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1730465154.git.oleksii.kurochko@gmail.com>
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Call vm_init() to initialize the VMAP_DEFAULT virtual range.

To support this, introduce the populate_pt_range() and
arch_vmap_virt_end() functions, which are used by
vm_init()->vm_init_type().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V3:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/mm.c    | 11 +++++------
 xen/arch/riscv/pt.c    |  6 ++++++
 xen/arch/riscv/setup.c |  3 +++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 185008f4c6..db75aa1d4f 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -351,12 +351,6 @@ void arch_dump_shared_mem_info(void)
     BUG_ON("unimplemented");
 }
 
-int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
-{
-    BUG_ON("unimplemented");
-    return -1;
-}
-
 int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
                               union add_to_physmap_extra extra,
                               unsigned long idx, gfn_t gfn)
@@ -564,3 +558,8 @@ void __init setup_mm(void)
     setup_frametable_mappings(0, ram_end);
     max_page = PFN_DOWN(ram_end);
 }
+
+void *__init arch_vmap_virt_end(void)
+{
+    return (void *)(VMAP_VIRT_START + VMAP_VIRT_SIZE);
+}
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index cc5e2d3266..d62aceb36c 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/domain_page.h>
 #include <xen/errno.h>
+#include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
@@ -419,3 +420,8 @@ int map_pages_to_xen(unsigned long virt,
 
     return pt_update(virt, mfn, nr_mfns, flags);
 }
+
+int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
+{
+    return pt_update(virt, INVALID_MFN, nr_mfns, PTE_POPULATE);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 2887a18c0c..3652cb056d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
+#include <xen/vmap.h>
 
 #include <public/version.h>
 
@@ -62,6 +63,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     setup_mm();
 
+    vm_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:17:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829111.1244193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6rWK-0000kV-S0; Fri, 01 Nov 2024 13:16:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829111.1244193; Fri, 01 Nov 2024 13: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 1t6rWK-0000kO-Ow; Fri, 01 Nov 2024 13:16:56 +0000
Received: by outflank-mailman (input) for mailman id 829111;
 Fri, 01 Nov 2024 13:16: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=1ZeD=R4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t6rWJ-0000Hs-9W
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:16:55 +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 8ea2593e-9853-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 14:16:51 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-53c73f01284so2345111e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 06:16:51 -0700 (PDT)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53c7bdcbcf6sm549745e87.194.2024.11.01.06.16.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Nov 2024 06:16:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ea2593e-9853-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhlYTI1OTNlLTk4NTMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDY3MDExLjYzMjExNywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730467006; x=1731071806; 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=wj/BA7TzXLORt8+splUrdfYdcSoOnFHA3Scx8dfz8qw=;
        b=SyNFcay/WnkgWmvPsLJiIIW7X1r6Ll0BX67Z9E0twDMjhH5Tc1ZOexDsF9tZhggg9/
         rlcqdgNBvmt2anLljfR0GC/h3qKBktpkDPt8Zek/L4Hjnp0PS778uIlJM24+J/wGAf8m
         o9iuBQ7WtwzjM3nnMX3/L7/K0Iq/lnHfJ/wP794XxZsr0JlMjRQylRQSClfTYaIcaYJq
         pk0qzXoI6aGeNxnCUaDmbd6yY9o/1jUJaC0lX88hm/gStzYTXIwJwEBvHxqM8Mwqsk4C
         38+0FaScG21CTlFDB6f7jeyMuSk4TXIL2ddiv1m9NVBdTTbL+niGgK5utu3w7B4Neo/2
         VB0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730467006; x=1731071806;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=wj/BA7TzXLORt8+splUrdfYdcSoOnFHA3Scx8dfz8qw=;
        b=wCuxN7qo3Yp2C2lLqTazQAteUBr6zg0Ujo3d2Yotaqi/cqS1XXB8J2j3bAKcZvB8HI
         Fp93dNhax+Hr2mh6CcahuHObj7DwW7/dgR+a4gq8mh9gNHtH/NFUORBDMNZ39t46CaVo
         4DFNuEXIu5uu13J8XMj/vVo5/yJiuzF6QgYdkHf/atvt8bJF33CUezm2Qp8FwltNI2Af
         VmkZBZOXFSQZto15MBCZJnW/B48yx/l9b8b0nnJd8yc9hnSCXNYU9diH+1UFZxFWoiNG
         zLGRw19mmJPz9mbo+XQ0x6n5WqsnThvGyLCXBj+Cc/QWMmHyRXn3KJuwixK4udxrArVf
         tY1w==
X-Gm-Message-State: AOJu0Yx07RlAhmQLVo0Y/OFpwLsB9DpzRqDdu7Lrd9rFvnn2YIcFiMtp
	zpzkIP6QrdklMnEW0IcHoatPXxRvc2ycXEPTPx2FHWWJ+aEZr9I8+/ifiw==
X-Google-Smtp-Source: AGHT+IFqZFLhU6CFQaOBWHmhTPIFe7njEHAJRb9pBXDVEbLWPUm/DZxfwdfFjhBwQPi7iPxjd5CATg==
X-Received: by 2002:a05:6512:3196:b0:536:568f:c5ed with SMTP id 2adb3069b0e04-53c79e15e5bmr3600679e87.1.1730467005747;
        Fri, 01 Nov 2024 06:16:45 -0700 (PDT)
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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 0/3] Setup memory management for RISC-V
Date: Fri,  1 Nov 2024 14:16:39 +0100
Message-ID: <cover.1730465154.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Finish initializing the memory subsystem by mapping the direct map and
frame table.

In the case of RISC-V 64, which has a large virtual address space
(the minimum supported MMU mode is Sv39, providing GBs of VA space),
so frame table is mapped starting from physical address
0 to ram_end.
This simplifies the calculations and thereby improves performance for
page_to_mfn(), mfn_to_page() as there is no frametable_base_pdx or
frametable_base_mfn ( if CONFIG_PDX_COMPRESSION=n).

The directmap_virt_start is introduced and shifted lower in the VA space to
(DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
wasting a large portion of the directmap space, this also allows for simple
VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
(for Sv39; for other MMU mode boundaries will be bigger ) by masking the
higher bits of the RAM start address to enable the use of superpages in
map_pages_to_xen().

In addition, initialize the VMAP_DEFAULT region, finalize the boot allocator,
and update the system state from early_boot to boot.

Introduce share_xen_page_with_guest() to deal with linkage error which occurs
because of DCE:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

The function maddr_to_virt() is introduced as part of this patch series.

virt_to_maddr() is updated as it is started to use direct_virt_start which is
introduced in this patch series.

---
Changes in V3:
 - Update the cover letter message as DIRECTMAP connected things were changed.
 - Update setup_mm(), setup_{directmap,frametable}_mappings.
 - Introduce ROUNDDOWN in <xen/macros.h>
 - All other details please look at the specific patch.
---
Changes in V2:
 - update the cover letter message.
 - merge first 3 patches to "introduce setup_mm()" patch as after setup_mm()
   rework all the things in first two patches of v1 started to use changes
   introduced in "introduce setup_mm()" patch.
 - add Acked-by for some patch series.
 - All other details please look at the specific patch.
---

Oleksii Kurochko (3):
  xen/riscv: introduce setup_mm()
  xen/riscv: initialize the VMAP_DEFAULT virtual range
  xen/riscv: finalize boot allocator and transition to boot state

 xen/arch/riscv/include/asm/mm.h    |  13 ++-
 xen/arch/riscv/include/asm/setup.h |   2 +
 xen/arch/riscv/mm.c                | 152 +++++++++++++++++++++++++++--
 xen/arch/riscv/pt.c                |   6 ++
 xen/arch/riscv/setup.c             |  14 +++
 xen/include/xen/macros.h           |   1 +
 6 files changed, 178 insertions(+), 10 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:55:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:55:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829144.1244222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6s7z-0000jU-9D; Fri, 01 Nov 2024 13:55:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829144.1244222; Fri, 01 Nov 2024 13: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 1t6s7z-0000jN-6X; Fri, 01 Nov 2024 13:55:51 +0000
Received: by outflank-mailman (input) for mailman id 829144;
 Fri, 01 Nov 2024 13: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=Nn37=R4=gmail.com=julien.grall.oss@srs-se1.protection.inumbo.net>)
 id 1t6s7y-0000jH-AY
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:55:50 +0000
Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com
 [209.85.128.47]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe7aff45-9858-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 14:55:46 +0100 (CET)
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-43161e7bb25so15610115e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 06:55:46 -0700 (PDT)
Received: from ?IPV6:2a02:8012:3a1:0:4ddd:1dd:c52d:25b6?
 ([2a02:8012:3a1:0:4ddd:1dd:c52d:25b6])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-431bd947c26sm95136475e9.26.2024.11.01.06.55.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Nov 2024 06:55:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe7aff45-9858-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwOS44NS4xMjguNDciLCJoZWxvIjoibWFpbC13bTEtZjQ3Lmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImZlN2FmZjQ1LTk4NTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDY5MzQ2LjgwODcwOSwic2VuZGVyIjoianVsaWVuLmdyYWxsLm9zc0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730469346; x=1731074146;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=DQCRFSxv5Y2IplxAHG0o5lc6I02Qv0u03rbfYv++cL0=;
        b=ugy2/amxsRK5J9RbU+1JmJAhCAg1HMSZZXqmxgo/rehuh4NaMbmURUthyuHib89r+1
         nO5yLgmguUb3krGIc7PwuTphBEQml83UOtH7CgdTkjutK5C8wXnM5qn/BP3PDKo+IulM
         uDWrPjzlWtmzRtOVSn33dlfqEq8ixcYt7JrtFpSJSLHHEhznR1zE2MvmXs7CVErxDl0s
         t6PQVxkbzpnQhBIaJww9MNQUDe0yIjuBdraKRIZ8CFi2iSzGuQkEFf0X5deI7t+yqXoj
         zwXQ4h2SOebyi05LaMK2DmUjV1yYWeaNmnHxpqaV8+tyxc+2l9HtxFdrG/5XqdLbTS66
         IF6w==
X-Forwarded-Encrypted: i=1; AJvYcCV9uenEFYzFoAPivgawbNI1qfCDWKwDOe6SvnEFiCq3cdxBX1mogPPUwhGZSz3qx5zWQwChZl6dQB0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVQfoukwoegQ9ZpdkdXjQFrHG66b3Gz3/hywbZg2RJ6ZIFv6dS
	zIzZXVD8tjVRq03TtTNlNO75Nb6r1Smvn8Zrt0zC8ePB732hPIsb
X-Google-Smtp-Source: AGHT+IGeWKkyyADBHcgCbEgWOJdYpOmkB/Kw6RzgzGvGqicU7E4TZuw9h/jHc1KaZCxpqjqiBzaukQ==
X-Received: by 2002:a05:600c:198a:b0:431:6153:a258 with SMTP id 5b1f17b1804b1-431bb9855f6mr100841555e9.13.1730469345904;
        Fri, 01 Nov 2024 06:55:45 -0700 (PDT)
Message-ID: <3d8c7aa6-500d-4bab-9804-0c41ffb4fd52@xen.org>
Date: Fri, 1 Nov 2024 13:55:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/6] xen/arm: Skip initializing the BSS section when it
 is empty
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
 <20241028124547.1371867-2-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241028124547.1371867-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 28/10/2024 12:45, Ayan Kumar Halder wrote:
> If the BSS section is empty, then the function should return.
> If one does not check whether the BSS section is empty or not, then there is a
> risk of writing 0s outside of BSS section (which may contain critical data).
> 
> Fixes: dac84b66cc9a ("xen: arm64: initial build + config changes, start of day code")
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

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

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:56:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829149.1244233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6s8Y-0001Fh-Gm; Fri, 01 Nov 2024 13:56:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829149.1244233; Fri, 01 Nov 2024 13:56: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 1t6s8Y-0001Fa-E3; Fri, 01 Nov 2024 13:56:26 +0000
Received: by outflank-mailman (input) for mailman id 829149;
 Fri, 01 Nov 2024 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=/CTM=R4=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1t6s8W-0001BN-Gc
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:56:24 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1216cfa5-9859-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 14:56:20 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D3D905CA6D2;
 Thu, 31 Oct 2024 23:04:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4EDBEC4CEC3;
 Thu, 31 Oct 2024 23:05:39 +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: 1216cfa5-9859-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjEyMTZjZmE1LTk4NTktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDY5MzgwLjU2NTc3MSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1730415940;
	bh=vgAj05OxU6kcA7YqY28vjC41zebEtUrk44ZKK1avSuE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ti6ZVyrQ3QyalwxSPKzZiESkcB6Lp++vkcEW/y636sWX63snyeJR/YEF8RHWFomN3
	 6EXJAcCtfjlm+cIandKd/+aC5g/mvuaZNELKFZaPBLDZBF/IgTTc75auca52pOJQ3Y
	 0XXdZJH6R4EHGhvESOa8+KBpCVS7oYjTjS+28Doa3B4O2UiGcFDqB1YqaNHfCUCnfU
	 DN+gleMbi49EwdCR11xln++/URHqhYEewcnCe4DgE+ZJ4e1XLRsPyVz7lGgcR79L1y
	 ZjA4Xc+m9xKzqJWg97Vvg5TX16oX5K4IQgmYQ3t3Ts0rtQHjLxtM0VQQo8t5X0vRjF
	 FKSPBhsFTSGRg==
Date: Thu, 31 Oct 2024 16:05:37 -0700 (PDT)
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>, Doug Goldstein <cardoe@cardoe.com>, 
    Victor Lira <victorm.lira@amd.com>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] CI: Drop alpine-3.18-rootfs-export and use
 test-artefacts
In-Reply-To: <86a60aec-f259-41be-92a0-ce66ce24f4ae@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2410311559460.2525410@ubuntu-linux-20-04-desktop>
References: <20241031190043.3011299-1-andrew.cooper3@citrix.com> <alpine.DEB.2.22.394.2410311546170.2525410@ubuntu-linux-20-04-desktop> <86a60aec-f259-41be-92a0-ce66ce24f4ae@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 31 Oct 2024, Andrew Cooper wrote:
> On 31/10/2024 10:46 pm, Stefano Stabellini wrote:
> > On Thu, 31 Oct 2024, Andrew Cooper wrote:
> >> The Argo work already moved this artefact into the new form.  Reuse that, and
> >> drop one test job.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > This is good but should we also remove
> > automation/tests-artifacts/alpine/3.18.dockerfile since we are at it?
> 
> Well, that's another thing that needs careful consideration.
> 
> That dockerfile needs updating in tandem with the build container (or
> lib$FOO.so's don't work when running the test), and it's hard enough to
> keep track of things when they're all in one repo.

Uhm, you have a good point. Two things come to mind. First, for this
patch:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


Second, I think maybe it would be better for test-artifacts to use the
build containers from xen.git/automation/build ? So that at least all
build containers come from the same place?

For instance, we would have to add any missing dependencies to
automation/build/alpine/3.18.dockerfile, from the list currently in
images/alpine/x86_64-build.dockerfile. Only a couple of things are
missing. Then remove images/alpine/x86_64-build.dockerfile, and use
registry.gitlab.com/xen-project/xen/alpine:3.18 in the test-artifacts
build jobs?



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 13:57:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 13:57:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829155.1244242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6s9w-00027z-Pu; Fri, 01 Nov 2024 13:57:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829155.1244242; Fri, 01 Nov 2024 13: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 1t6s9w-00027s-NO; Fri, 01 Nov 2024 13:57:52 +0000
Received: by outflank-mailman (input) for mailman id 829155;
 Fri, 01 Nov 2024 13:57: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=Nn37=R4=gmail.com=julien.grall.oss@srs-se1.protection.inumbo.net>)
 id 1t6s9v-00027k-J2
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 13:57:51 +0000
Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com
 [209.85.128.47]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 477540fb-9859-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 14:57:49 +0100 (CET)
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-4315839a7c9so17108095e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Nov 2024 06:57:49 -0700 (PDT)
Received: from ?IPV6:2a02:8012:3a1:0:4ddd:1dd:c52d:25b6?
 ([2a02:8012:3a1:0:4ddd:1dd:c52d:25b6])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-431bd9aa09fsm92310195e9.37.2024.11.01.06.57.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Nov 2024 06:57:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 477540fb-9859-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwOS44NS4xMjguNDciLCJoZWxvIjoibWFpbC13bTEtZjQ3Lmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjQ3NzU0MGZiLTk4NTktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDY5NDY5LjIxODIzMiwic2VuZGVyIjoianVsaWVuLmdyYWxsLm9zc0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730469468; x=1731074268;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=bu4D4Mv8/fDajNy9rbBLpwDtTLzs9+MlnSIZlS6TxrA=;
        b=AsA6sfmPnw1UBmy6kHb01YwVZ/uEBMReXhdpzzIcD//Fgz2pjhY9meDa92XhuOiq95
         FTmG1T3YiLkEIBQm3I8G2oacjjn/TcaPx7ZUOyKmZX6iCcUeS1Naz8/iQD4N157ucG7+
         Ys9i7Fd1GdPOCgdoF2bHROcbW553/3ogrMiOyx3qqPs7u8FEI9nnQKtEBqrQtf5e+RIw
         VHwjHjDUJuWcaLlO/u9+aaWJBjDQ3289ga29XnI+0hDAYMc04MrMdKJQxa1DVXzyHCK+
         gWRBYfh5gCiGw4KvouuDtoDd79u1niR5pkBQlQm2l1b1AoLGirX4X5MehDeUwHo40Ga4
         Aubg==
X-Forwarded-Encrypted: i=1; AJvYcCUa8rnJELhmMmT2LLLm603gHrAzkVIZHL7frKhGzNFKRiZd9WARDPU8gVpgr4NUc2cn9lv8tXnIStU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzddBl6DFh9AvxnDSqimN6GGxnMkFoLHKw5WEUSTNUxsi2zJqle
	iAsyWU5vpPR8YhSCttYy6QJmBBTO7MueV33ESzpioTUN0lsEoIpZ
X-Google-Smtp-Source: AGHT+IEfgSh2V1apmjvg49kmHL3nXMl3FRi63WoX2vTit9SuQ1NZJANTSH4xHFTuBVZGe+beuH06sA==
X-Received: by 2002:a05:6000:104a:b0:37e:f4ae:987d with SMTP id ffacd0b85a97d-38061159141mr15324472f8f.29.1730469468308;
        Fri, 01 Nov 2024 06:57:48 -0700 (PDT)
Message-ID: <e34cb7ef-89ad-4470-969d-dee44ea1e6dd@xen.org>
Date: Fri, 1 Nov 2024 13:57:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/6] xen/arm: mpu: Define Xen start address for MPU
 systems
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Wei Chen <wei.chen@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Jiamei . Xie" <jiamei.xie@arm.com>
References: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
 <20241028124547.1371867-4-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241028124547.1371867-4-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 28/10/2024 12:45, Ayan Kumar Halder wrote:
> From: Wei Chen <wei.chen@arm.com>
> 
> On Armv8-A, Xen has a fixed virtual start address (link address too) for all
> Armv8-A platforms. In an MMU based system, Xen can map its loaded address to
> this virtual start address. So, on Armv8-A platforms, the Xen start address does
> not need to be configurable. But on Armv8-R platforms, there is no MMU to map
> loaded address to a fixed virtual address and different platforms will have very
> different address space layout. So Xen cannot use a fixed physical address on
> MPU based system and need to have it configurable.
> 
> So, we introduce a Kconfig option for users to set the start address. The start
> address needs to be aligned to 4KB. We have a check for this alignment.
> 
> MPU allows us to define regions which are 64 bits aligned. This restriction
> comes from the bitfields of PRBAR, PRLAR (the lower 6 bits are 0 extended to
> provide the base and limit address of a region). This means that the start
> address of Xen needs to be at least 64 bits aligned (as it will correspond to
> the start address of memory protection region).
> 
> As for now Xen on MPU tries to use the same memory alignment restrictions as it
> has been for MMU. We have added a build assertion to ensure that the page size
> is 4KB. Unlike MMU where the starting virtual address is 2MB, Xen on MPU needs
> the start address to be 4KB (ie page size) aligned.
> 
> In case if the user forgets to set the start address, then 0xffffffff is used
> as default. This is to trigger the error (on alignment check) and thereby prompt
> user to set the start address.
> 
> Also updated config.h so that it includes mpu/layout.h when CONFIG_MPU is
> defined.
> 
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> Signed-off-by: Jiamei.Xie <jiamei.xie@arm.com>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

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

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 14:11:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 14:11:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829165.1244253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6sNM-0005Z6-Vh; Fri, 01 Nov 2024 14:11:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829165.1244253; Fri, 01 Nov 2024 14: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 1t6sNM-0005Yz-Sr; Fri, 01 Nov 2024 14:11:44 +0000
Received: by outflank-mailman (input) for mailman id 829165;
 Fri, 01 Nov 2024 14:11: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 1t6sNL-0005Yt-Kl
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 14:11: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 1t6sNL-00F3Fh-0J;
 Fri, 01 Nov 2024 14:11:43 +0000
Received: from [2a02:8012:3a1:0:4ddd:1dd:c52d:25b6]
 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 1t6sNK-009eCU-2P;
 Fri, 01 Nov 2024 14:11: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=flw1mDMYp3QxwJmUv7lMdEoUbeLwdDFmJ0eHYxSks4c=; b=WH1whwAyNo0SbVvxpdFi+UL2LB
	p1QW+lNSeT/PO4BUIN50fhBvt5vDEm7cAhnSivW7tyJ4lhDtr/vAkmFSjTdFnxAPHQdaLx8kqhIed
	xtu7yBGvS4yjwGS1pFqWUlTwexf5B9XeEHgd4yKfxXT4Fx/JESo5wedkrzGirg0ATU4A=;
Message-ID: <dcfb8c04-78c6-46b4-868b-96bf24d1493d@xen.org>
Date: Fri, 1 Nov 2024 14:11:40 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/6] xen/arm: mpu: Create boot-time MPU protection
 regions
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
 <20241028124547.1371867-5-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241028124547.1371867-5-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 28/10/2024 12:45, Ayan Kumar Halder wrote:
> Define enable_boot_cpu_mm() for the AArch64-V8R system.
> 
> Like boot-time page table in MMU system, we need a boot-time MPU protection
> region configuration in MPU system so Xen can fetch code and data from normal
> memory.
> 
> To do this, Xen maps the following sections of the binary as separate regions
> (with permissions) :-
> 1. Text (Read only at EL2, execution is permitted)
> 2. RO data (Read only at EL2)
> 3. RO after init data and RW data (Read/Write at EL2)
> 4. Init Text (Read only at EL2, execution is permitted)
> 5. Init data and BSS (Read/Write at EL2)
> 
> Before creating a region, we check if the count exceeds the number defined in
> MPUIR_EL2. If so, then the boot fails.
> 
> Also we check if the region is empty or not. IOW, if the start and end address
> are same, we skip mapping the region.
> 
> To map a region, Xen uses the PRBAR_EL2, PRLAR_EL2 and PRSELR_EL2 registers.
> One can refer to ARM DDI 0600B.a ID062922 G1.3  "General System Control
> Registers", to get the definitions of these registers. Also, refer to G1.2
> "Accessing MPU memory region registers", the following
> 
> ```
> The MPU provides two register interfaces to program the MPU regions:
> - Access to any of the MPU regions via PRSELR_ELx, PRBAR<n>_ELx, and
> PRLAR<n>_ELx.
> ```
> 
> We use the above mechanism to create the MPU memory regions.
> 
> MPU specific registers are defined in
> xen/arch/arm/include/asm/arm64/mpu/sysregs.h.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from :-
> 
> v1 - 1. Instead of mapping a (XEN_START_ADDRESS + 2MB) as a single MPU region,
> we have separate MPU regions for different parts of the Xen binary. The reason
> being different regions will nned different permissions (as mentioned in the
> linker script).
> 
> 2. Introduced a label (__init_data_begin) to mark the beginning of the init data
> section.
> 
> 3. Moved MPU specific register definitions to mpu/sysregs.h.
> 
> 4. Fixed coding style issues.
> 
> 5. Included page.h in mpu/head.S as page.h includes sysregs.h.
> I haven't seen sysregs.h included directly from head.S or mmu/head.S.
> (Outstanding comment not addressed).
> 
> v2 - 1. Extracted "enable_mpu()" in a separate patch.
> 
> 2. Removed alignment for limit address.
> 
> 3. Merged some of the sections for preparing the early boot regions.
> 
> 4. Checked for the max limit of MPU regions before creating a new region.
> 
> 5. Checked for empty regions.
> 
> v3 :- 1. Modified prepare_xen_region() so that we check for empty region within
> this. Also, index of regions (to be programmed in PRSELR_EL2) should start from
> 0.
> 
> 2. Removed load_paddr() as the offset is 0.
> 
> 3. Introduced fail_insufficient_regions() to handle failure caused when the
> number of regions to be allocated is not sufficient.
> 
>   xen/arch/arm/arm64/mpu/Makefile              |   1 +
>   xen/arch/arm/arm64/mpu/head.S                | 122 +++++++++++++++++++
>   xen/arch/arm/include/asm/arm64/mpu/sysregs.h |  27 ++++
>   xen/arch/arm/include/asm/mm.h                |   2 +
>   xen/arch/arm/include/asm/mpu/arm64/mm.h      |  22 ++++
>   xen/arch/arm/include/asm/mpu/mm.h            |  20 +++
>   xen/arch/arm/xen.lds.S                       |   1 +
>   7 files changed, 195 insertions(+)
>   create mode 100644 xen/arch/arm/arm64/mpu/head.S
>   create mode 100644 xen/arch/arm/include/asm/arm64/mpu/sysregs.h
>   create mode 100644 xen/arch/arm/include/asm/mpu/arm64/mm.h
>   create mode 100644 xen/arch/arm/include/asm/mpu/mm.h
> 
> diff --git a/xen/arch/arm/arm64/mpu/Makefile b/xen/arch/arm/arm64/mpu/Makefile
> index b18cec4836..a8a750a3d0 100644
> --- a/xen/arch/arm/arm64/mpu/Makefile
> +++ b/xen/arch/arm/arm64/mpu/Makefile
> @@ -1 +1,2 @@
> +obj-y += head.o
>   obj-y += mm.o
> diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
> new file mode 100644
> index 0000000000..9377ae778c
> --- /dev/null
> +++ b/xen/arch/arm/arm64/mpu/head.S
> @@ -0,0 +1,122 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Start-of-day code for an Armv8-R MPU system.
> + */
> +
> +#include <asm/mm.h>
> +#include <asm/arm64/mpu/sysregs.h>
> +
> +#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 */
> +
> +#define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
> +
> +/*
> + * Macro to prepare and set a EL2 MPU memory region.
> + * We will also create an according MPU memory region entry, which
> + * is a structure of pr_t,  in table \prmap.
> + *
> + * Inputs:
> + * sel:         region selector
> + * base:        reg storing base address (should be page-aligned)
> + * limit:       reg storing limit address
> + * prbar:       store computed PRBAR_EL2 value
> + * prlar:       store computed PRLAR_EL2 value
> + * maxcount:    maximum number of EL2 regions supported
> + * attr_prbar:  PRBAR_EL2-related memory attributes. If not specified it will be
> + *              REGION_DATA_PRBAR
> + * attr_prlar:  PRLAR_EL2-related memory attributes. If not specified it will be
> + *              REGION_NORMAL_PRLAR
> + */
> +.macro prepare_xen_region, sel, base, limit, prbar, prlar, maxcount, attr_prbar=REGION_DATA_PRBAR, attr_prlar=REGION_NORMAL_PRLAR
> +    /* Check if the region is empty */
> +    cmp   \base, \limit
> +    beq   1f
> +
> +    /* Check if the number of regions exceeded the count specified in MPUIR_EL2 */
> +    cmp   \sel, \maxcount
> +    bge   fail_insufficient_regions
> +
> +    /* Prepare value for PRBAR_EL2 reg and preserve it in \prbar.*/
> +    and   \base, \base, #MPU_REGION_MASK
> +    mov   \prbar, #\attr_prbar
> +    orr   \prbar, \prbar, \base
> +
> +    /* Limit address should be inclusive */
> +    sub   \limit, \limit, #1
> +    and   \limit, \limit, #MPU_REGION_MASK
> +    mov   \prlar, #\attr_prlar
> +    orr   \prlar, \prlar, \limit
> +
> +    msr   PRSELR_EL2, \sel
> +    isb
> +    msr   PRBAR_EL2, \prbar
> +    msr   PRLAR_EL2, \prlar
> +    dsb   sy
> +    isb
> +
> +1:
> +.endm
> +
> +/*
> + * Failure caused due to insufficient MPU regions.
> + */
> +FUNC_LOCAL(fail_insufficient_regions)
> +    PRINT("- Number of MPU regions set in MPUIR_EL2 is too less -\r\n")
> +1:  wfe
> +    b   1b
> +END(fail_insufficient_regions)
> +
> +/*
> + * Maps the various sections of Xen (described in xen.lds.S) as different MPU
> + * regions.
> + *
> + * Inputs:
> + *   lr : Address to return to.
> + *
> + * Clobbers x0 - x5
> + *
> + */
> +FUNC(enable_boot_cpu_mm)
> +

NIT: I would remove this empty line.

> +    /* Get the number of regions specified in MPUIR_EL2 */
> +    mrs   x5, MPUIR_EL2

Looking at the spec, the number of regions are only in the first 8-bits. 
So you want to mask before using it.

> +
> +    /* x0: region sel */
> +    mov   x0, xzr
> +    /* Xen text section. */
> +    ldr   x1, =_stext
> +    ldr   x2, =_etext
> +    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_TEXT_PRBAR
> +
> +    /* 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
> +
> +    /* Xen code section. */
> +    ldr   x1, =__init_begin
> +    ldr   x2, =__init_data_begin
> +    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_TEXT_PRBAR
> +
> +    /* Xen data and BSS section. */
> +    ldr   x1, =__init_data_begin
> +    ldr   x2, =__bss_end
> +    prepare_xen_region x0, x1, x2, x3, x4, x5
> +
> +    ret
> +

NIT: I would remove this empty line.
	
> +END(enable_boot_cpu_mm)
> +
> +/*
> + * Local variables:
> + * mode: ASM
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/include/asm/arm64/mpu/sysregs.h b/xen/arch/arm/include/asm/arm64/mpu/sysregs.h
> new file mode 100644
> index 0000000000..b0c31a58ec
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/arm64/mpu/sysregs.h
> @@ -0,0 +1,27 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ASM_ARM_ARM64_MPU_SYSREGS_H
> +#define __ASM_ARM_ARM64_MPU_SYSREGS_H
> +
> +/* Number of EL2 MPU regions */
> +#define MPUIR_EL2   S3_4_C0_C0_4

Do you know why the compiler doesn't support MPUIR_EL2 & co natively? 
Any chance this is because we may build Xen with the wrong flags for the 
MPU port?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 14:19:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 14:19:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829176.1244262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6sV5-0006qS-Qi; Fri, 01 Nov 2024 14:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829176.1244262; Fri, 01 Nov 2024 14:19: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 1t6sV5-0006qL-OE; Fri, 01 Nov 2024 14:19:43 +0000
Received: by outflank-mailman (input) for mailman id 829176;
 Fri, 01 Nov 2024 14:19:42 +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 1t6sV4-0006qF-FN
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 14:19:42 +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 1t6sV3-00F3SP-39;
 Fri, 01 Nov 2024 14:19:41 +0000
Received: from [2a02:8012:3a1:0:4ddd:1dd:c52d:25b6]
 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 1t6sV3-009ew1-2A;
 Fri, 01 Nov 2024 14: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>
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=QKIE9JKptbFwWr2f6jpXXtj+vwpLsiRRrCo9Wq+nIQs=; b=K4tprVUWysvzzIitvbMEkUZ1xH
	lDzuyJTdrMQJdVuqO+DlmGamh6hyxhJqszUhpjpLX6TTmbYpP97mLPEWCEIOg3VXSmnh90zKcTy6s
	/VkO4R4qikKyp/gVvJQoxBAxL4YrlKKVS0uIW1tZn1gMDsuV2Gi+Yejjttx35Gq2H+w4=;
Message-ID: <562d89b7-5a71-4013-a590-7686451185d7@xen.org>
Date: Fri, 1 Nov 2024 14:19:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/6] xen/arm: mpu: Enable MPU
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
 <20241028124547.1371867-6-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241028124547.1371867-6-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 28/10/2024 12:45, Ayan Kumar Halder wrote:
> After the regions have been created, now we enable the MPU. For this we disable
> the background region so that the new memory map created for the regions take
> effect. Also, we treat all RW regions as non executable and the data cache is
> enabled.
> 
> As enable_mpu() is invoked from enable_boot_cpu_mm(), one needs to save and
> restore the lr.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from :-
> 
> v2 - 1. Extracted from the previous patch into a new one.
> 
> 2. Disabled background region.
> 
> v3 - 1. Removed dsb before setting SCTLR_EL2. The reason being
>  From ARM DDI 0487K.a D23-7349:
> "Direct writes to these registers (includes SCTLR_EL2) are not allowed to affect
> any instructions appearing in program order before the direct write."
> So, we don't need a synchronization barrier before writing to SCTLR_EL2.
> Further, we do have synchronization barriers after writing the MPU region
> registers (which happens before we read SCTLR_EL2). So, SCTLR_EL2 is written
> after the MPU registers are synchronized. And, thus adding a 'isb' to flush the
> instruction pipeline ensures that the subsequent instructions are fetched after
> the MPU has been enabled.
> 
> 2. Saved and restored lr in enable_boot_cpu_mm().
> 
>   xen/arch/arm/arm64/mpu/head.S                | 30 ++++++++++++++++++--
>   xen/arch/arm/include/asm/arm64/mpu/sysregs.h |  3 ++
>   2 files changed, 31 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
> index 9377ae778c..0edadb009c 100644
> --- a/xen/arch/arm/arm64/mpu/head.S
> +++ b/xen/arch/arm/arm64/mpu/head.S
> @@ -68,6 +68,29 @@ FUNC_LOCAL(fail_insufficient_regions)
>       b   1b
>   END(fail_insufficient_regions)
>   
> +/*
> + * Enable EL2 MPU and data cache
> + * If the Background region is enabled, then the MPU uses the default memory
> + * map as the Background region for generating the memory
> + * attributes when MPU is disabled.
> + * Since the default memory map of the Armv8-R AArch64 architecture is
> + * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
> + *
> + * Clobbers x0
> + *
> + */
> +FUNC_LOCAL(enable_mpu)
> +    mrs   x0, SCTLR_EL2
> +    bic   x0, x0, #SCTLR_ELx_BR       /* Disable Background region */
> +    orr   x0, x0, #SCTLR_Axx_ELx_M    /* Enable MPU */
> +    orr   x0, x0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
> +    orr   x0, x0, #SCTLR_Axx_ELx_WXN  /* Enable WXN */
> +    msr   SCTLR_EL2, x0
> +    isb
> +
> +    ret
> +END(enable_mpu)
> +
>   /*
>    * Maps the various sections of Xen (described in xen.lds.S) as different MPU
>    * regions.
> @@ -75,10 +98,11 @@ END(fail_insufficient_regions)
>    * Inputs:
>    *   lr : Address to return to.
>    *
> - * Clobbers x0 - x5
> + * Clobbers x0 - x6
>    *
>    */
>   FUNC(enable_boot_cpu_mm)
> +    mov   x6, lr
>   
>       /* Get the number of regions specified in MPUIR_EL2 */
>       mrs   x5, MPUIR_EL2
> @@ -110,8 +134,10 @@ FUNC(enable_boot_cpu_mm)
>       ldr   x2, =__bss_end
>       prepare_xen_region x0, x1, x2, x3, x4, x5
>   
> -    ret
> +    bl    enable_mpu
>   
> +    mov   lr, x6
> +    ret

You should not need to save/restore 'lr'. You could write:

b enable_mpu

So when enable_mpu returns, it will go back to the caller of 
enable_boot_cpu_mm.

With that fixed:

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

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 14:22:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 14:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829186.1244285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6sXt-0008TY-D5; Fri, 01 Nov 2024 14:22:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829186.1244285; Fri, 01 Nov 2024 14: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 1t6sXt-0008TR-8u; Fri, 01 Nov 2024 14:22:37 +0000
Received: by outflank-mailman (input) for mailman id 829186;
 Fri, 01 Nov 2024 14:22: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 1t6sXs-0008TD-2p
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 14:22:36 +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 1t6sXr-00F3Vs-2Y;
 Fri, 01 Nov 2024 14:22:35 +0000
Received: from [2a02:8012:3a1:0:4ddd:1dd:c52d:25b6]
 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 1t6sXr-009fKJ-1o;
 Fri, 01 Nov 2024 14: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>
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=Y6yHDwxgHU5sPInrG6m72geb5DEJCsFJvyeT05/Azqc=; b=Ztbs4D/3gEUNqQMys4GxhO19zL
	JzwLJ0PQdNKT2OPF5ZLkBDZ5h2eKBVPgkdFEXFQeP4TgmXdwO6PZeuxGYj42u+YYltLqMCwBicYkN
	tiexATBRaLJ/OT60dF71ktB2cUvinNei92OonaOLGKTlX1uId1b8e1T9N4DR3zuAR+2U=;
Message-ID: <3d49c15a-64bf-4088-9210-018adec2b72f@xen.org>
Date: Fri, 1 Nov 2024 14:22:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/6] Enable early bootup of AArch64 MPU systems
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
References: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 28/10/2024 12:45, Ayan Kumar Halder wrote:
> We have enabled early booting of R82.
> 
> Changes from v2 :-
> 1. Added a new patch "xen/arm: Skip initializing the BSS section when it is empty".
> 2. Split "xen/arm: mpu: Create boot-time MPU protection regions" into 2 patches.
> 
> Changes from v3 :-
> 1. Removed some of the R-b as the patches have been modified.
> 
> Ayan Kumar Halder (6):
>    xen/arm: Skip initializing the BSS section when it is empty
>    xen/arm: mpu: Introduce choice between MMU and MPU
>    xen/arm: mpu: Define Xen start address for MPU systems

I have committed the first 3 patches. I think the others need a respin.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 15:23:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 15:23:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829201.1244310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6tUD-0001TS-Rk; Fri, 01 Nov 2024 15:22:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829201.1244310; Fri, 01 Nov 2024 15:22: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 1t6tUD-0001TL-Ow; Fri, 01 Nov 2024 15:22:53 +0000
Received: by outflank-mailman (input) for mailman id 829201;
 Fri, 01 Nov 2024 15:22: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=JHQo=R4=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1t6tUC-0001TF-Lq
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 15:22:52 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20607.outbound.protection.outlook.com
 [2a01:111:f403:2612::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2769214c-9865-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 16:22:49 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.32; Fri, 1 Nov
 2024 15:22:47 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8093.027; Fri, 1 Nov 2024
 15: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: 2769214c-9865-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjA3IiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI3NjkyMTRjLTk4NjUtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDc0NTY5LjMxNjYzOCwic2VuZGVyIjoiZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iLse6L7FF3PMJeW6a5y6GFWMNUN3rXnEAu+OP3CwRj+UtPi/T0mGWg7mop3KUBcTRARXvt+ZEV+KuNjgo2FhNml7L/mPFCa4Mv+mQUKsBPsabKnVWohhltsrBoW5mhgTBWTTKssuP0r4yEZFcGrT5t1IfONkJqp8hYFCQ5F7IN1cDUNJe+rvh5/gP+f4S+xXcPI9IZxiE6PaPMAdsVdwQv0U/6rdKbaeRuCT2EOu0f00XKB68Umf0ks5B5DaKsskWEFr1Fp/EL3i+DY3sy64dPV7FUS0ToK/ORKb3ydXDbRCLlvDonCp+zcR8nuSZ+URZufeP31vp4NWT6QvYHwM+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=p747qis4hv3q8JtC+6KR77RM2orOOAuQW8MBO9tg8Cc=;
 b=E6viOkfEKNG4kl0xyG1Ai65X7VA8H3TiuzY/fK078Yh9daR9iWn9lF4JS51dgxCc7k7TO2Rai2c3SnZHufN6ntwqT2AjZ3QwN+kcQ7Jb3CgzP6I9RBmE5pF4AUKx2ZLzrvPw5CHhX018KWxN4oC1jLBhCQTzXvfqr9kgYS8v5ijRh2dd0u8JFuIe51LHVH6FghydD3ThreY7kl7zRBqqG1FDz3n2FplpcQTzm8+SP/OElshxlfXj/pzPWJKOk6zUDJKTukV2GovFb4ztK3XagHa1UETm+81hkydWcnkd2HNt8un9Xf/72j5lnUZ3K9FEHWb7ocnr2RNfaD+QS8T5lA==
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=p747qis4hv3q8JtC+6KR77RM2orOOAuQW8MBO9tg8Cc=;
 b=R5fc0fgksUL+DxxY4W4ldZO/yFbiuRtVYRiMHxRFmt2N7PF20oS5fgniPsrfYvduO6yCyVOIvgoVXYU3b+nAuUdE04yEn+/nCWSr4z6ql2bKSoCrpo0ftGEq5BnPgYzE/9ibvo5pLP8Fy0UK+IAcFicOrKbXaT+FC0BzqM7WYqR73w4RyskcsGaPPBGNoQlTHE/KtO/QDImdYLVD6Opp7TQqdRJi7AKbKYmebddC+KH9g+3ApLC02k1VSsFTMkti9uJo9MEWsv3ZEv7OpUwqNhQnGvdzxcYbPs+A9yqIioT4A4JjlvUigEWBjzsMFBfqikY/o7w6dINmxVoqTfrNQQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <59b54859-d893-4bf4-8118-7e4a00e7d87e@epam.com>
Date: Fri, 1 Nov 2024 17:22:44 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] xen/arm: Add SCMI over SMC calls handling layer
To: "Andrei Cherechesu (OSS)" <andrei.cherechesu@oss.nxp.com>,
 xen-devel@lists.xenproject.org
Cc: S32@nxp.com, Andrei Cherechesu <andrei.cherechesu@nxp.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>
References: <20240930114715.642978-1-andrei.cherechesu@oss.nxp.com>
 <20240930114715.642978-4-andrei.cherechesu@oss.nxp.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20240930114715.642978-4-andrei.cherechesu@oss.nxp.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0039.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:48::22) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PA4PR03MB7136:EE_
X-MS-Office365-Filtering-Correlation-Id: ba008048-e563-4d58-0ac2-08dcfa890a13
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?MzlFby9CRVl0YUFhZHpJSHZLS2hzeDVqb3BLdmFJT2tDMy9oU2lTK0FaTDVK?=
 =?utf-8?B?QnRYQlRodDdXSEMvSjB4OFF4VGpvZzBLenpQMkJ1b3AxejhneE4rWHNyemQ0?=
 =?utf-8?B?Nk91bWhxcHlqMkxLcEFqa3RjcjdYaU1HWGhEd0VMZHVHTW1LWVdrOGUwM2xz?=
 =?utf-8?B?aU43OE9abjlDbEE5NmZIcHhBVk5FcUlna09yV3B5aVBwSjN3Q0h5Q0l4UEZR?=
 =?utf-8?B?QjUrTE1jMVQrTFVoS1hqWW0vMVhkU0FDVEVxbStxbjlpNTk3aitHUERrRnhl?=
 =?utf-8?B?NDVUTit5ZlRsSGZ2QWg5eWt4NTJtZ3UyRmxQek5nL2hISkI0NjhzUjh3aVlG?=
 =?utf-8?B?cVE1eHcrRHdld2pDK0twajV4eVkveXBXTXN1TWdyMjQrOHBBcUlvdGZNT0tu?=
 =?utf-8?B?Umpuazdhck43SzR2ZUxiY1VKR1BEeDJBMjU2aHFsQmxTUVdFWEdXbWhpeW0y?=
 =?utf-8?B?a0xWdHJlM1FPcWgweFl6ZGdsd2J4YU5uNDloYU9uZzJtcmRkWkhHOEZiZmhP?=
 =?utf-8?B?RSszQjRXRSt3VWpLNDZyTm9OUWk5ajgrZnhzSHRHL1REdHVxQXVvSnBESDgw?=
 =?utf-8?B?U2paWWtSRjYvanFqejg0alhZM05sSTlQbCtoQVpkRHJUdTFJcnE1TjVxU1B4?=
 =?utf-8?B?aDZnU0tuTFF3M043VERxaUpoa29MNXJpQWEyc1lDVFJYL3ZkUTh1a2dwS0xT?=
 =?utf-8?B?dHZRekNYMnJoN3BoZTJtam9HOU9XN2wwVHIrdHdTVUNyNXd3b21MczlQdVN1?=
 =?utf-8?B?QmUzUmhNeHYrSlJDUWUwMTdDU2xwWkwwdnk2NmNLUVNFT2szYnIwQk9PU3VE?=
 =?utf-8?B?LzlJTHpZSDVyOEdtbU95UjByWk1VckdrVVB0M3hhNWN6ZjlmT05zZUdrYmpi?=
 =?utf-8?B?SzZnc1dOS1VNSlFLeHZIQzNkMmNXK29xU1B6SDQ5SFBGTFhFTHB0T2tFWm9D?=
 =?utf-8?B?U1lrWFNVQThPdjFJNldqalNMc0JMdzdrNTJJck8vUHc3QURLKy9lUTFCMmlL?=
 =?utf-8?B?S2ZXSEZ5ejMwZVhGa2d3eDVUcWozN1N0ZjFkYzk2OEJUZ1pCc0xsRTd5dW5m?=
 =?utf-8?B?N1ZCVkRvVi9qNW50U0V0RzNXRXhDTjg5eUVNNUlPT2VmUXhzVnJ0WXMxdXFq?=
 =?utf-8?B?ZC9yUGtjZTdDdUVoSHhCc2k0bkRuUHFHaWVJTTdJOEdwdWc2cFJlNnh3QTV5?=
 =?utf-8?B?eERRUTlmamdFSEJKY1Y2S1NxMW1SK3BSbkhONjU5Zk1UT1RoYUZoVDhoZEt4?=
 =?utf-8?B?a25qZWpmSkNSOFpxaDBKQUZVVmxtdXh0Q3JkVU5BZ05NZ1JyMkp6cXIwSXQy?=
 =?utf-8?B?NWNlTmFJTFpiL0J0NUMyNzZGR1NsL0p1YXV0SkZ0aFZ3MmpYWXF0VGJKQ2tu?=
 =?utf-8?B?WG5ZNDM4UHQ4cTB4dGZLOElKVWpZbFJ1MFNMTU5VVDkvOEwrNGdGRkNROHVX?=
 =?utf-8?B?MXB4WklOc1pkc0N6ZHZoTUNLZVY0TFpvSW1NSjZNWXNCRG9KK0JlbFIxajJr?=
 =?utf-8?B?TkxFL2tIazFqNmZ1UnN5TEo0WEZWVXprNjRVNlpzK3UrT2RVNUpPVjZFRVZz?=
 =?utf-8?B?aTdTT1lMSWJQeFE0bHAvVjU4MWxkRU01bnFlajd4Z1lGQmlKV0JEd3Nqd3d2?=
 =?utf-8?B?b1ZoQkFCc1BjV25jclUwZXI3MTByV0J6YmNMdFBudmVycW11UklUSEZVbkNk?=
 =?utf-8?B?bldmYmlWcjlEdlc1bVdoelYrL1U5dEJHVnpZTGZ0RDhVbW1aUGIvdzhsK0Rt?=
 =?utf-8?Q?Uk+GglHoX8NyC6ihUpeOHOOAy6+cmumsb6sqrwu?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?b0NiVXBPSGIrRndDbkJ0NnZ5VmV4RjJvdXovVURyeGFHdVk4eWoyWW5QZmdu?=
 =?utf-8?B?UjR4UDBHNTZRVW1ZM1laY0pwbmFPWUJxdW40Tit3ZWRIaUlYR1dpeitLZHFv?=
 =?utf-8?B?dWpEK1h3ak04ejNhSGIwK1JLNnJ4Y1JibGJldmg3TGs0WU8zYzZKcE15M3hX?=
 =?utf-8?B?YXJ6TXRJWVcxd0h0YnBvazN4VWxlNG1DUEdiSmFObEZGV2RqVCtVNHdsREZY?=
 =?utf-8?B?MzdVQ3FqbnlXU3FTY3ptbzBtOWE4dXF2bkVKVHhiMWFTUlUvU25xQ0k2YXlY?=
 =?utf-8?B?WmFwaG1ZbzJ1WWk1clI2cFBsSmU3b3VNeEZwYWpZa0U4NkVhMjR2dFVWOEp3?=
 =?utf-8?B?UHBCaXhmL2d6eUhVcmpHY2dtSHk5eS81MDVRMkRHL1B0M25yYUdrQ05FRGZW?=
 =?utf-8?B?Ry9mb3ZNdytadHZvOVpaQ1lwMTdBQmFZNmlSQ3BPOGlQQ3dOTGRvQTI5cHdK?=
 =?utf-8?B?d0tMeGxjU01hK0c3c055L3NiL01HQm5rVC9tZXRhRnoxcHNUb0lpUkF4Vy85?=
 =?utf-8?B?TVh3QjBSUk45L3VKbnV1L1ZMRU9LOC9xR282SldTZ2c4cDl5UkNqN0lFeXNW?=
 =?utf-8?B?eUpwNVJYTVpHd2Z2d1hVbUkwREJNQmtSUEwxbUJRYlVDQXdNVWVuSkp0SHcx?=
 =?utf-8?B?Y1FEWmtkQU96S2dXMmNQbmFuTlI4bldiTURVTFpNdnBxQjRoOUt5LzJvbGE5?=
 =?utf-8?B?MU0wZDBpQjlrOUREUDJGTUZXZHpwQzdlQ3RLa1ByRlZZemh3ZndLaGVqRmdY?=
 =?utf-8?B?c2M0TFFwMzhvZnJMbEJoK2x6VDRYcmorMHpzcGFoM01lYVl5RnZHc2l1UzQ2?=
 =?utf-8?B?VmlobUdpeEtBL3BnUkZ0ZW1wd280UGFySXFNc1QxaGJ1RFVONEpJNHc1OEpC?=
 =?utf-8?B?aTRCS3JYcVRkS202RTFERk5mR3NrSEhpMTBKTkE3NUhsOTdxcldWWDhoMjVK?=
 =?utf-8?B?NUlLREc3OE1vZjNRVEExanYyU2lDNkQxTndlaHRGcHBaWFZpcjVLTXdhdHBP?=
 =?utf-8?B?dWROM20rN0FLVzlhajJHbmxmdkFhYlVESjQ1UTV6Zk9PWmxVZ2lqTGFXNms3?=
 =?utf-8?B?Q3pFS2tzVEVSQm9BTHVnQXNxZTc2U3JrRTNnS20yWk43ckpsMTJTNExEQ2lv?=
 =?utf-8?B?OTgxMGhYTXNkNnM0bEtVTVZPbWxRTVlUbTdxZzFBT241YzRQb3l4V2FYWUtQ?=
 =?utf-8?B?MkFZeTFaVUlpSmdvZ3ZYWm5tVGhCblVwa1hud3E4QXF1Ui9ueFg1YzBENG1p?=
 =?utf-8?B?WmRBZTJJdzBTY2xMdWVVNVhxdURUbkgwZFJEaUZZdG9GQWlUTnVlZjV5S3ZI?=
 =?utf-8?B?RkIrOGx3d21CenZiRDJyR2s4UmdmTUU0a0M4OHdmeVZIdm5McG9xMzJtek55?=
 =?utf-8?B?WldZVE13ODd5WVpVeVNzOEo5ZVhJYlFvQmFTdVVRMFRKN1hOb0Vpb0NDRHdj?=
 =?utf-8?B?ZGdybWUwUjVyaVQvOVRaNEoxTmJiWkwyaUZkU05QdmZpR0JuRnBqbHlPUlRI?=
 =?utf-8?B?citZWEtRZXQvUk5OeUVJOHF1QXRrT3NVMFBQQ1ErRjF4TVRTYlE1NlRYbGRj?=
 =?utf-8?B?Z25VUGNNdGtaeU0vT2VncEVqOTZGcDB4RlBOQlZMQVJYbVg1d1BpWkljM1pU?=
 =?utf-8?B?ZVd0U1JwbHgvSXIyclFJU3hJdXFBT3VLTitBRk9tU09wVDd2aDkxQ2htOHI4?=
 =?utf-8?B?MFdDSEUxbXMrTjVzaHR5YU4yZ2Z1by9JNk1wV2czVkx4eEszNlY5V1hZMitY?=
 =?utf-8?B?dk9ML0JkSk9kU2owUTAzSUs4cnNKQ0pQbktITGxjbWduZzlldzBySVB2Sk5Z?=
 =?utf-8?B?YkRBMjkzL3hYakdYWHl5Z3JNaGF6MW13VjJBTVRsSU5xSjlldHdIMHNNMDJX?=
 =?utf-8?B?MGsvT0VybzNHZ1FKa2NDUUJwZmMyalpDbE1peld6Mmh6eWxEaW5BNzJNeDZr?=
 =?utf-8?B?ODM3L1g1Q21ibG9KOER5ajZCRWNsWlRKeTdLNzZQekUreVdDd0tkWllkM0t3?=
 =?utf-8?B?NW9WN0N0LzZnYjVKMnUrWnUvR05HZGR6a0w3enRVUkgzRlYraEtmMWg3eits?=
 =?utf-8?B?QUpyREQ3QWhxY2NhMmcrcXpiQm9YMDN5RkpEZ0x3dWMxTUNFd21EeUVWeUtl?=
 =?utf-8?B?eHRlaWZERHk0Z1Y0andGNkpPWWdreU9aYnZHVlVNWXBFUkhHYW5YZFRacDFT?=
 =?utf-8?B?YUE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ba008048-e563-4d58-0ac2-08dcfa890a13
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2024 15:22:46.7440
 (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: SYK8Mq3rQkLeA1MDWJbzk74RqMYf4Ls4iIKwfk4Zv9rQo7yBvCvP3BlFnVBdfhbsPpCVKdKrgwmymQ04bed9ycHrTTYJHkOY0leX9BGv77g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7136

Hi

I'd be apprcieated if could consider my comments below.

On 30.09.24 14:47, Andrei Cherechesu (OSS) wrote:
> From: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> 
> Introduce the SCMI layer to have some basic degree of awareness
> about SMC calls that are based on the ARM System Control and
> Management Interface (SCMI) specification (DEN0056E).
> 
> The SCMI specification includes various protocols for managing
> system-level resources, such as: clocks, pins, reset, system power,
> power domains, performance domains, etc. The clients are named
> "SCMI agents" and the server is named "SCMI platform".
> 
> Only support the shared-memory based transport with SMCs as
> the doorbell mechanism for notifying the platform. Also, this
> implementation only handles the "arm,scmi-smc" compatible,
> requiring the following properties:
> 	- "arm,smc-id" (unique SMC ID)
> 	- "shmem" (one or more phandles pointing to shmem zones
> 	for each channel)
> 
> The initialization is done as 'presmp_initcall', since we need
> SMCs and PSCI should already probe EL3 FW for supporting SMCCC.
> If no "arm,scmi-smc" compatible node is found in Dom0's
> DT, the initialization fails silently, as it's not mandatory.
> Otherwise, we get the 'arm,smc-id' DT property from the node,
> to know the SCMI SMC ID we handle. The 'shmem' memory ranges
> are not validated, as the SMC calls are only passed through
> to EL3 FW if coming from Dom0 and as if Dom0 would be natively
> running.
> 
> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
>   xen/arch/arm/Kconfig                |  10 ++
>   xen/arch/arm/Makefile               |   1 +
>   xen/arch/arm/include/asm/scmi-smc.h |  52 +++++++++
>   xen/arch/arm/scmi-smc.c             | 163 ++++++++++++++++++++++++++++

Could it be moved in separate folder - for example "sci" or "firmware"?
There are definitely more SCMI specific code will be added in the future
as this solution is little bit too simplified.

>   4 files changed, 226 insertions(+)
>   create mode 100644 xen/arch/arm/include/asm/scmi-smc.h
>   create mode 100644 xen/arch/arm/scmi-smc.c
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 323c967361..adf53e2de1 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -245,6 +245,16 @@ config PARTIAL_EMULATION
>   	  not been emulated to their complete functionality. Enabling this might
>   	  result in unwanted/non-spec compliant behavior.
>   
> +config SCMI_SMC

Could you please rename it to clearly specify that it is only dom0/hwdom
specific? Like SCMI_SMC_DOM0 or SCMI_SMC_HW_DOM.

> +	bool "Enable forwarding SCMI over SMC calls from Dom0 to EL3 firmware"
> +	default y
> +	help
> +	  This option enables basic awareness for SCMI calls using SMC as
> +	  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
> +	  compatible only). The value of "arm,smc-id" DT property from SCMI
> +	  firmware node is used to trap and forward corresponding SCMI SMCs
> +	  to firmware running at EL3, if the call comes from Dom0.
> +
>   endmenu
>   
>   menu "ARM errata workaround via the alternative framework"
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 7792bff597..b85ad9c13f 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -45,6 +45,7 @@ obj-y += platform_hypercall.o
>   obj-y += physdev.o
>   obj-y += processor.o
>   obj-y += psci.o
> +obj-$(CONFIG_SCMI_SMC) += scmi-smc.o
>   obj-y += setup.o
>   obj-y += shutdown.o
>   obj-y += smp.o
> diff --git a/xen/arch/arm/include/asm/scmi-smc.h b/xen/arch/arm/include/asm/scmi-smc.h
> new file mode 100644
> index 0000000000..c6c0079e86
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/scmi-smc.h
> @@ -0,0 +1,52 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * xen/arch/arm/include/asm/scmi-smc.h
> + *
> + * ARM System Control and Management Interface (SCMI) over SMC
> + * Generic handling layer
> + *
> + * Andrei Cherechesu <andrei.cherechesu@nxp.com>
> + * Copyright 2024 NXP
> + */
> +
> +#ifndef __ASM_SCMI_SMC_H__
> +#define __ASM_SCMI_SMC_H__
> +
> +#include <xen/types.h>
> +#include <asm/regs.h>
> +
> +#ifdef CONFIG_SCMI_SMC
> +
> +bool scmi_is_enabled(void);
> +bool scmi_is_valid_smc_id(uint32_t fid);
> +bool scmi_handle_smc(struct cpu_user_regs *regs);
> +
> +#else
> +
> +static inline bool scmi_is_enabled(void)
> +{
> +    return false;
> +}
> +
> +static inline bool scmi_is_valid_smc_id(uint32_t fid)
> +{
> +    return false;
> +}
> +
> +static inline bool scmi_handle_smc(struct cpu_user_regs *regs)

I propose to add "struct domain *d" as the first parameter to make it
more abstract from Xen internals.

> +{
> +    return false;
> +}
> +
> +#endif /* CONFIG_SCMI_SMC */
> +
> +#endif /* __ASM_SCMI_H__ */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/scmi-smc.c b/xen/arch/arm/scmi-smc.c
> new file mode 100644
> index 0000000000..373ca7ba5f
> --- /dev/null
> +++ b/xen/arch/arm/scmi-smc.c
> @@ -0,0 +1,163 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * xen/arch/arm/scmi-smc.c
> + *
> + * ARM System Control and Management Interface (SCMI) over SMC
> + * Generic handling layer
> + *
> + * Andrei Cherechesu <andrei.cherechesu@nxp.com>
> + * Copyright 2024 NXP
> + */
> +
> +#include <xen/acpi.h>
> +#include <xen/device_tree.h>
> +#include <xen/errno.h>
> +#include <xen/init.h>
> +#include <xen/sched.h>
> +#include <xen/types.h>
> +
> +#include <asm/scmi-smc.h>
> +#include <asm/smccc.h>
> +
> +#define SCMI_SMC_ID_PROP   "arm,smc-id"
> +
> +static bool scmi_support;
> +static uint32_t scmi_smc_id;
> +
> +/* Check if SCMI layer correctly initialized and can be used. */
> +bool scmi_is_enabled(void)
> +{
> +    return scmi_support;
> +}
> +
> +/*
> + * Check if provided SMC Function Identifier matches the one known by the SCMI
> + * layer, as read from DT prop 'arm,smc-id' during initialiation.
> + */
> +bool scmi_is_valid_smc_id(uint32_t fid)

I do not think this API is required at all as it's driver's internals.

> +{
> +    return (fid == scmi_smc_id);
> +}
> +
> +/*
> + * Generic handler for SCMI-SMC requests, currently only forwarding the
> + * request to FW running at EL3 if it came from Dom0. Is called from the vSMC
> + * layer for SiP SMCs, since SCMI calls are usually provided this way.
> + * Can also be called from `platform_smc()` plat-specific callback.
> + *
> + * Returns true if SMC was handled (regardless of response), false otherwise.
> + */
> +bool scmi_handle_smc(struct cpu_user_regs *regs)

[...]

I'd propose to squash patch "[v2,4/8] xen/arm: vsmc: Enable handling
SiP-owned SCMI SMC calls" to clearly show how API interface is going to
be used.


BR,
-Grygorii


From xen-devel-bounces@lists.xenproject.org Fri Nov 01 17:09:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 17:09:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829232.1244320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6v95-00087c-8j; Fri, 01 Nov 2024 17:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829232.1244320; Fri, 01 Nov 2024 17:09: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 1t6v95-00087V-5U; Fri, 01 Nov 2024 17:09:11 +0000
Received: by outflank-mailman (input) for mailman id 829232;
 Fri, 01 Nov 2024 17:09: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=1/Ab=R4=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t6v93-00087O-OQ
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 17:09:09 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2415::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fddcf35a-9873-11ef-99a3-01e77a169b0f;
 Fri, 01 Nov 2024 18:09:03 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SA1PR12MB6773.namprd12.prod.outlook.com (2603:10b6:806:258::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.20; Fri, 1 Nov
 2024 17:08:58 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8114.023; Fri, 1 Nov 2024
 17:08: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: fddcf35a-9873-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjBiIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZkZGNmMzVhLTk4NzMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNDgwOTQzLjQ3NTI0Niwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UkUJf3QyrAcmKHwQ0+CSDjFI1U6T5vorJCjCIdNJYib4qqs850NeMoubEwRTcv8rY+VLGmFBRUhjMcTH6CCnDGF+x3YdM9npwM/HFEn3FD5rc5y5QZKGE6xNOTVml8Exmalj851IZmP3Skz2H1H/1Zj7TbFN0pNy0KyK1q0hp2vWMuj9eaCQwJnPIHV4C5qpPitrb/9B193SlmQd1xb7JhiRcCv16+1GMqQZNZ78sE8SWxvNHXjKIYG2YfYd+w2LVJRB4Wo+YS66nNR+JWzustWr4JO/bCZMH2HzLLNzEEiicPJg2CTilgM9UOXdDFKO8EX7lMqzqZ3KiHyGKafErg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jfAlsY6zQeyYagziqZI6lT4iBOtmU0SYNyJ+YvD4dpA=;
 b=EQh5mzBBLP/GI9IqD91f0+qPf6JIzqHuha6g8K7RERQUau7+SPlJZaj6c6/m0ClrIN5lUAF/A7f/Z+caJAlNefWKOcx4WO6zNVYRg0XyoxqTfXFMGCDL27oVHFxeUsJPB/iFyi/wTVagAimqK0EYPIunze1HRPcVttG9Z3kqQPoEwSyxihuUt5Kf6hIosi7IpxEkYNiQuxjrv/BbRf0sr10ZTz5iyn2Gh3cRZmhEtF5iC73cpHClr64Fxz1ZrE5giIg9wSDQr7iPlDHwLZY5HXXh82sfXsAV47Awh3AjAmHgaiUd+Ypg88BkJw7s721T2WqbMkUyM8vzXNLM80Vxcg==
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=jfAlsY6zQeyYagziqZI6lT4iBOtmU0SYNyJ+YvD4dpA=;
 b=DDER2pToGmFd3aRFKmSbHR1qzmbMFWIbXskiE1JuYNAByBlLkFEkdcPd0G+TCO4CQE3xGkXKDwjpkzvDwxKeMqzYGLbNa3QLx3IwVNm4zDWAFTSXioT1n8YcYaNmTVimQ+3p28gP6+nRbKcljbx94dNCzhiHa/1l6Ai9crHruCw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <cb90cbaa-2b1b-4f9c-b475-39214e471d18@amd.com>
Date: Fri, 1 Nov 2024 17:08:53 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/6] xen/arm: mpu: Create boot-time MPU protection
 regions
Content-Language: en-GB
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
 <20241028124547.1371867-5-ayan.kumar.halder@amd.com>
 <dcfb8c04-78c6-46b4-868b-96bf24d1493d@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <dcfb8c04-78c6-46b4-868b-96bf24d1493d@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0049.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ac::12) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SA1PR12MB6773:EE_
X-MS-Office365-Filtering-Correlation-Id: ca163622-47fa-42d1-da6d-08dcfa97dfaa
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?QXp3UXFQODVNOWJuQ0pqV3JEUktLSDRaT2dXK1ROaFk1amV1TTV2ODVEM0k3?=
 =?utf-8?B?Wk5wKytVcnpOOGZYckJINWJGZ0ErMWU5c2w2UGtXZ0tEcnc5TkJvb2tXdktY?=
 =?utf-8?B?NEFjbDR4VHhRRjV5SjFHNWNRRUhLRXNmRlV1R3ZSZG94R1grMnFCQld1Y2pV?=
 =?utf-8?B?Sk80ZlVvWDRlU1FEaTRRQkFrd1U5T3RqL2U0eEtjNGRmYmZHODZHTHJJdnAv?=
 =?utf-8?B?Z0lhckZFMW0rRVlSaHJuTHJEQkNSWXVrc0M2YzhBUFhiV3h5a00wV2lCWjFD?=
 =?utf-8?B?OFEveitxR0VQOGxDZ2ErT1RRTjR1UUVmNlpvK0VueG1iZWdXTndvTDhidFpQ?=
 =?utf-8?B?Z2d3RFh1OEdnUGVvRlZiZmxKMjAwYit3WllOUEIyZzJFUkhvZzZmaWxQYW1F?=
 =?utf-8?B?dVpmWjB4ZFRCV0M3aWlCU3hUMSszS2svaVVuNi9DNk9xUU1SKzI1UkxWUkZ1?=
 =?utf-8?B?Zkw3cnVVc1VUaUczQ2tGZUhQZEV0bGQxd290NTNaRjU2NE1BN1dETGZXeVBu?=
 =?utf-8?B?SFRtdTlWcU9IaW9CRksxY0lDTUIycGtFMFZDSjVIMG1EanZSck1HaDQwUTNS?=
 =?utf-8?B?RjF0OFljMk9tSUJoQngxd0RmRGlEaURrNGZGK3pwak14RlVDMUduMEQ1TzVU?=
 =?utf-8?B?S3V4blRIbzk0QVIzellMM1hsYWkwa29GOHplWXdFemJMMlg1ZGp3akF5Q0JL?=
 =?utf-8?B?QnBxb211dFdYcThKd3EvZHQxUmdsWSs2ZmgyWXd3RmZpMnRDakR3UTV4QVpB?=
 =?utf-8?B?bmRyY05VRlYycFZMWXhPdDFKbDgzZmNta1R2QWVZRW1XRTBjZFhrZ2hYMFFu?=
 =?utf-8?B?am9ZUVpGU3VEUHpLV21neGVUTFlnSkxkMVRQZWk4OC9lODF5TGR1QTFqMG52?=
 =?utf-8?B?c2VxZGRhQmZkZ1FyWW1KeW1NcVl2QWovb1RtQklvY29tUjR3MmR5OVNCemJN?=
 =?utf-8?B?eHY4TUt2c0YyS0gxWlFwWjVNOG1PakozOTF0MVNTSEVjSzI3RVMxZXJvam1r?=
 =?utf-8?B?aERVYnBwaGppUU9MWlpaMlNuUnQ2Mnd6MGRla3R5KzVHRDl0bXR6aUpWQ1pX?=
 =?utf-8?B?cWZWczFiZW00YndjUy9aWnlQUkwzTFJOaGZHUkUrT1k1dWVINWxBUW9iWm5U?=
 =?utf-8?B?cGxIa3hTVGd2RzFNOWwvQ3FBNG1pTkRKeFpBYVR6QkRtUk1yT21xZldRMm53?=
 =?utf-8?B?UjM4K0VESXc5Q0hMTW92V3VYZ21tczJVcmZsQzlKMVlOaTUzVGRES1d5emtw?=
 =?utf-8?B?cmp6RFdhT2ZLZXFDOWtGYk9LZEJjSG93RVVwdnlwWHZreGZza2p4SlptbHNv?=
 =?utf-8?B?L1pEUjcxcDdFLzZMYjFjL0c3THpVaG1oL2RKOUM2T1JwVjVqRDNsNEMvQVhv?=
 =?utf-8?B?UEVFRGZpSUtVV2FXTXN3bnZEWis3VENzSHVzbFU4QTRkQjZBNlc1SlM0YWI5?=
 =?utf-8?B?eHdqNWhhOXd1cHFDZGVOTk81MnFLZVlPWHd0dXdtNDlmOXFBQnRKK3ZwOFQx?=
 =?utf-8?B?S3ZXa3FMQkhKZUtLcXMzdHQ2c2cxYkZNTDhsNkY4VVV6M1NEWTh3MktPVjF0?=
 =?utf-8?B?YVNHRzU4NzlRVVBkT3k4dUpCZk4vMWNUbWhXcE85YnE5Y1dzYkxmSGllc2hw?=
 =?utf-8?B?L0dIRXpaSDBPVEFMMkoyUGx1T25wdVhKWnh2MnpqbUh4QTMrR2x5N0MvS2tk?=
 =?utf-8?B?T0FZQ3pwNVRFN0hzRWVUcFRtS0lqNEdSYWl2K0d5Z2NBMS94NlFSR1AxQ2FR?=
 =?utf-8?Q?NsXLclAVM0E4ue0nPlFStbqQPVsShpBWwFjY5+U?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.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?dEpxcVlWUlFwV1Nnc2Y2SWQ1TWdVci8vaC81dEFLOGxOa3c4cFpsZkNUeEg1?=
 =?utf-8?B?bGI0Zm5WV2g5VjdPLzZoSGdjNzZtSFRzQXBHbndjcmJ6WFAwWTZoTTlTWlpV?=
 =?utf-8?B?MjY0TGRLSU51bXBHNmRhTW9hdXJYZitRa25zMTdLaDJ6QWJpQUxMeFBqOVBP?=
 =?utf-8?B?QXJvMldvb0todXlLcStkWnFEb2pGcDV6K2g5MzZUUVRzWmRSejJHanJ3YThr?=
 =?utf-8?B?VnIrc05vS2hNNThmUHY1T3AvZmNVUFBvZHFhWkJnT1gydkdKbitvaXo0TVJI?=
 =?utf-8?B?R0dzUzBrZkhDczJ3NTFqb3JvNXVoa09ycEFublA1OWZNUWdtRGpHUWtYSlZx?=
 =?utf-8?B?bEoxSk1vbDUzN3V3QnZ3QXcveG12MDkwcGdpQ25hY1diaWJXZE05aTNrSkVX?=
 =?utf-8?B?U2YzMERhYjczNDJoNVEvTkRyVzdLV0NZYkRpWllETTkxbUNQdFl2eTBIdXYr?=
 =?utf-8?B?MFpPbm1hMldzbE00bXJOOFB6SWJNVWFJUWJPRzF4Tkw2VEVzbGswbUszdDd5?=
 =?utf-8?B?Lyt5d29UbFUvaDNTTlo5R3RjdUVySUJITHlrUzdyNUc0bUppQlRkWWNEMVdo?=
 =?utf-8?B?VkJUNFdVcHpJUEJJeWhxZTJrMlV0RDRaZHVnSDZWNFozUUVWekF4OVBlQ2U4?=
 =?utf-8?B?VWptY0dtaWNlTGxzd2ZiUkxPa1FRU2tVSUhOcjVaMFg5dXRvT1ZwcnJUZnRu?=
 =?utf-8?B?OWN1eXBiZ0lZZGFuOEFrNWtpTklGUUF1ajMxZENnc2dUaXlIWU5aRGNIQ1Bw?=
 =?utf-8?B?MXFCVTdOSk5aczBmZmI0ZWJvaUp6dTZnS1VoUjNkVXlRZFZEZWJJdE9GSG15?=
 =?utf-8?B?cHFyVUE0bUh3OHRGa05nVEd6RFdoOFdPZFV1N2g0TTVMZnZsWHB3em9VdlE3?=
 =?utf-8?B?TjNDUkZPcGpRNlJBZW1WNjAvTjlBNTVCWEdvcnJqeDh6TWhUUGNHVVQxYlA5?=
 =?utf-8?B?UlAwZHFHMTNiTUtVN0kyT0VqYnNjUWxLemJjK1JaQ0V2Q25FY000M2prcGJO?=
 =?utf-8?B?QjhkOXQzZDNVNVl2UTJQRnQyNUNUbWhPREhiNWY5eWFzSmNhSmFldnIxOWtT?=
 =?utf-8?B?a1M4bGkwOG1mUXVCUEJydytCL3RhRFdGV3A4Vm05VXMvOUpaS0x1YnFPL3R0?=
 =?utf-8?B?RXNBUHIxSHhJMjB5MWZicGYycEErZVNqYm1odStMci9JQ1N2YzhwcGd3d041?=
 =?utf-8?B?SHAva3dKcmVaTEJUakJkMWJ2akhleGJkLzliOW9tZTFZRDBucXUrSUNCSS9G?=
 =?utf-8?B?VVVBdVQ3QmZXNTJ4Q2JGaXRJSnhUK1VsbmpsMGsvcllINWtrUE9mcFRlTTNm?=
 =?utf-8?B?STV0RlQvK0tYZGc1QytvUzJJVzBienRKRUNKOFVIQisrb0MwWFNXdi8ydTcz?=
 =?utf-8?B?U243aSs5cUhIdUpGaWdhZHBvMU1LOE5YU2JyVDVmQzAyZ296WngweXhOcjJD?=
 =?utf-8?B?bGNrTnI5OXh4Y00wc3hGaFVhNnJHaXcyL1owbGxWSVpDakpWTmhRUUEyVkhl?=
 =?utf-8?B?Tyt1bzdSS3lUSys1cURVTTU3RHRPZXQ5eWNSajAwSkI0Nm5iVVdzbWVLVEgz?=
 =?utf-8?B?NnBERkpFQkNnTGpWRzhlS3lRVEpnZVhnV0tuLzI0emhTWEpVcldldzNNZmN3?=
 =?utf-8?B?VWxZYnRhcGJwbHlneVJQNkZFTHc5VWxCblM2Yi9lYlJ4dml3MmxDWGpBakl5?=
 =?utf-8?B?bDhQVDQ0R0ltSGI1dmk4cy9JRGhsclRYZ05Ha1FrRkdRWjNjVnNVZnRpZ0pC?=
 =?utf-8?B?c1VML25SV1JiS2VTOGVBUW1ROHdrL0Q1YWZQMXdOVjFzeHlqaE4zY1UyRFVV?=
 =?utf-8?B?aEVVNHJoNFNQbUF5cHZIaldoSU1nWHUxK2dsdklKR0ZGVzY4SG4rWVdhVCtq?=
 =?utf-8?B?b1VqajdqTHVKNzhZSVR0anVIbzVucTU4ZnloT2VMeW03WDRlSS94OWJGUmhH?=
 =?utf-8?B?RGk2b1lrQnRqTjdQYlB0Rk1Zbi9Sa0xTaGJuRTlRUHZiSHMxS3ZlcGlFNndR?=
 =?utf-8?B?M3l5MTlJdHdwMTN1UUlESThCSm9NNlhoZjBuNEVoUDc5cEtLWE1hYkRlRUJD?=
 =?utf-8?B?ZnYyNFJjdS93eHhScFJLVVIzc01wdFpHcXJrcG5acFBYWW4wZWI1QklTTk1W?=
 =?utf-8?Q?FF0oySFzMo1CNVC3d2wNNo+/A?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ca163622-47fa-42d1-da6d-08dcfa97dfaa
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2024 17:08:58.1019
 (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: lNgv99KZDildAQy5aCCeyddety78RRDD2XJhmI/37Fp+Mdo0GfnX75Eh59yLZsByEipZw1/xgDAu+fxgA5s/MA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6773


On 01/11/2024 14:11, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 28/10/2024 12:45, Ayan Kumar Halder wrote:
>> Define enable_boot_cpu_mm() for the AArch64-V8R system.
>>
>> Like boot-time page table in MMU system, we need a boot-time MPU 
>> protection
>> region configuration in MPU system so Xen can fetch code and data 
>> from normal
>> memory.
>>
>> To do this, Xen maps the following sections of the binary as separate 
>> regions
>> (with permissions) :-
>> 1. Text (Read only at EL2, execution is permitted)
>> 2. RO data (Read only at EL2)
>> 3. RO after init data and RW data (Read/Write at EL2)
>> 4. Init Text (Read only at EL2, execution is permitted)
>> 5. Init data and BSS (Read/Write at EL2)
>>
>> Before creating a region, we check if the count exceeds the number 
>> defined in
>> MPUIR_EL2. If so, then the boot fails.
>>
>> Also we check if the region is empty or not. IOW, if the start and 
>> end address
>> are same, we skip mapping the region.
>>
>> To map a region, Xen uses the PRBAR_EL2, PRLAR_EL2 and PRSELR_EL2 
>> registers.
>> One can refer to ARM DDI 0600B.a ID062922 G1.3Â  "General System Control
>> Registers", to get the definitions of these registers. Also, refer to 
>> G1.2
>> "Accessing MPU memory region registers", the following
>>
>> ```
>> The MPU provides two register interfaces to program the MPU regions:
>> - Access to any of the MPU regions via PRSELR_ELx, PRBAR<n>_ELx, and
>> PRLAR<n>_ELx.
>> ```
>>
>> We use the above mechanism to create the MPU memory regions.
>>
>> MPU specific registers are defined in
>> xen/arch/arm/include/asm/arm64/mpu/sysregs.h.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Changes from :-
>>
>> v1 - 1. Instead of mapping a (XEN_START_ADDRESS + 2MB) as a single 
>> MPU region,
>> we have separate MPU regions for different parts of the Xen binary. 
>> The reason
>> being different regions will nned different permissions (as mentioned 
>> in the
>> linker script).
>>
>> 2. Introduced a label (__init_data_begin) to mark the beginning of 
>> the init data
>> section.
>>
>> 3. Moved MPU specific register definitions to mpu/sysregs.h.
>>
>> 4. Fixed coding style issues.
>>
>> 5. Included page.h in mpu/head.S as page.h includes sysregs.h.
>> I haven't seen sysregs.h included directly from head.S or mmu/head.S.
>> (Outstanding comment not addressed).
>>
>> v2 - 1. Extracted "enable_mpu()" in a separate patch.
>>
>> 2. Removed alignment for limit address.
>>
>> 3. Merged some of the sections for preparing the early boot regions.
>>
>> 4. Checked for the max limit of MPU regions before creating a new 
>> region.
>>
>> 5. Checked for empty regions.
>>
>> v3 :- 1. Modified prepare_xen_region() so that we check for empty 
>> region within
>> this. Also, index of regions (to be programmed in PRSELR_EL2) should 
>> start from
>> 0.
>>
>> 2. Removed load_paddr() as the offset is 0.
>>
>> 3. Introduced fail_insufficient_regions() to handle failure caused 
>> when the
>> number of regions to be allocated is not sufficient.
>>
>> Â  xen/arch/arm/arm64/mpu/MakefileÂ Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  1 +
>> Â  xen/arch/arm/arm64/mpu/head.SÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 122 +++++++++++++++++++
>> Â  xen/arch/arm/include/asm/arm64/mpu/sysregs.h |Â  27 ++++
>> Â  xen/arch/arm/include/asm/mm.hÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  2 +
>> Â  xen/arch/arm/include/asm/mpu/arm64/mm.hÂ Â Â Â Â  |Â  22 ++++
>> Â  xen/arch/arm/include/asm/mpu/mm.hÂ Â Â Â Â Â Â Â Â Â Â  |Â  20 +++
>> Â  xen/arch/arm/xen.lds.SÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  1 +
>> Â  7 files changed, 195 insertions(+)
>> Â  create mode 100644 xen/arch/arm/arm64/mpu/head.S
>> Â  create mode 100644 xen/arch/arm/include/asm/arm64/mpu/sysregs.h
>> Â  create mode 100644 xen/arch/arm/include/asm/mpu/arm64/mm.h
>> Â  create mode 100644 xen/arch/arm/include/asm/mpu/mm.h
>>
>> diff --git a/xen/arch/arm/arm64/mpu/Makefile 
>> b/xen/arch/arm/arm64/mpu/Makefile
>> index b18cec4836..a8a750a3d0 100644
>> --- a/xen/arch/arm/arm64/mpu/Makefile
>> +++ b/xen/arch/arm/arm64/mpu/Makefile
>> @@ -1 +1,2 @@
>> +obj-y += head.o
>> Â  obj-y += mm.o
>> diff --git a/xen/arch/arm/arm64/mpu/head.S 
>> b/xen/arch/arm/arm64/mpu/head.S
>> new file mode 100644
>> index 0000000000..9377ae778c
>> --- /dev/null
>> +++ b/xen/arch/arm/arm64/mpu/head.S
>> @@ -0,0 +1,122 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Start-of-day code for an Armv8-R MPU system.
>> + */
>> +
>> +#include <asm/mm.h>
>> +#include <asm/arm64/mpu/sysregs.h>
>> +
>> +#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 */
>> +
>> +#define REGION_NORMAL_PRLARÂ Â Â Â  0x0fÂ Â Â  /* NS=0 ATTR=111 EN=1 */
>> +
>> +/*
>> + * Macro to prepare and set a EL2 MPU memory region.
>> + * We will also create an according MPU memory region entry, which
>> + * is a structure of pr_t,Â  in table \prmap.
>> + *
>> + * Inputs:
>> + * sel:Â Â Â Â Â Â Â Â  region selector
>> + * base:Â Â Â Â Â Â Â  reg storing base address (should be page-aligned)
>> + * limit:Â Â Â Â Â Â  reg storing limit address
>> + * prbar:Â Â Â Â Â Â  store computed PRBAR_EL2 value
>> + * prlar:Â Â Â Â Â Â  store computed PRLAR_EL2 value
>> + * maxcount:Â Â Â  maximum number of EL2 regions supported
>> + * attr_prbar:Â  PRBAR_EL2-related memory attributes. If not 
>> specified it will be
>> + *Â Â Â Â Â Â Â Â Â Â Â Â Â  REGION_DATA_PRBAR
>> + * attr_prlar:Â  PRLAR_EL2-related memory attributes. If not 
>> specified it will be
>> + *Â Â Â Â Â Â Â Â Â Â Â Â Â  REGION_NORMAL_PRLAR
>> + */
>> +.macro prepare_xen_region, sel, base, limit, prbar, prlar, maxcount, 
>> attr_prbar=REGION_DATA_PRBAR, attr_prlar=REGION_NORMAL_PRLAR
>> +Â Â Â  /* Check if the region is empty */
>> +Â Â Â  cmpÂ Â  \base, \limit
>> +Â Â Â  beqÂ Â  1f
>> +
>> +Â Â Â  /* Check if the number of regions exceeded the count specified 
>> in MPUIR_EL2 */
>> +Â Â Â  cmpÂ Â  \sel, \maxcount
>> +Â Â Â  bgeÂ Â  fail_insufficient_regions
>> +
>> +Â Â Â  /* Prepare value for PRBAR_EL2 reg and preserve it in \prbar.*/
>> +Â Â Â  andÂ Â  \base, \base, #MPU_REGION_MASK
>> +Â Â Â  movÂ Â  \prbar, #\attr_prbar
>> +Â Â Â  orrÂ Â  \prbar, \prbar, \base
>> +
>> +Â Â Â  /* Limit address should be inclusive */
>> +Â Â Â  subÂ Â  \limit, \limit, #1
>> +Â Â Â  andÂ Â  \limit, \limit, #MPU_REGION_MASK
>> +Â Â Â  movÂ Â  \prlar, #\attr_prlar
>> +Â Â Â  orrÂ Â  \prlar, \prlar, \limit
>> +
>> +Â Â Â  msrÂ Â  PRSELR_EL2, \sel
>> +Â Â Â  isb
>> +Â Â Â  msrÂ Â  PRBAR_EL2, \prbar
>> +Â Â Â  msrÂ Â  PRLAR_EL2, \prlar
>> +Â Â Â  dsbÂ Â  sy
>> +Â Â Â  isb
>> +
>> +1:
>> +.endm
>> +
>> +/*
>> + * Failure caused due to insufficient MPU regions.
>> + */
>> +FUNC_LOCAL(fail_insufficient_regions)
>> +Â Â Â  PRINT("- Number of MPU regions set in MPUIR_EL2 is too less -\r\n")
>> +1:Â  wfe
>> +Â Â Â  bÂ Â  1b
>> +END(fail_insufficient_regions)
>> +
>> +/*
>> + * Maps the various sections of Xen (described in xen.lds.S) as 
>> different MPU
>> + * regions.
>> + *
>> + * Inputs:
>> + *Â Â  lr : Address to return to.
>> + *
>> + * Clobbers x0 - x5
>> + *
>> + */
>> +FUNC(enable_boot_cpu_mm)
>> +
>
> NIT: I would remove this empty line.
Ack
>
>> +Â Â Â  /* Get the number of regions specified in MPUIR_EL2 */
>> +Â Â Â  mrsÂ Â  x5, MPUIR_EL2
>
> Looking at the spec, the number of regions are only in the first 
> 8-bits. So you want to mask before using it.
yes, I will do it.
>
>> +
>> +Â Â Â  /* x0: region sel */
>> +Â Â Â  movÂ Â  x0, xzr
>> +Â Â Â  /* Xen text section. */
>> +Â Â Â  ldrÂ Â  x1, =_stext
>> +Â Â Â  ldrÂ Â  x2, =_etext
>> +Â Â Â  prepare_xen_region x0, x1, x2, x3, x4, x5, 
>> attr_prbar=REGION_TEXT_PRBAR
>> +
>> +Â Â Â  /* 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
>> +
>> +Â Â Â  /* Xen code section. */
>> +Â Â Â  ldrÂ Â  x1, =__init_begin
>> +Â Â Â  ldrÂ Â  x2, =__init_data_begin
>> +Â Â Â  prepare_xen_region x0, x1, x2, x3, x4, x5, 
>> attr_prbar=REGION_TEXT_PRBAR
>> +
>> +Â Â Â  /* Xen data and BSS section. */
>> +Â Â Â  ldrÂ Â  x1, =__init_data_begin
>> +Â Â Â  ldrÂ Â  x2, =__bss_end
>> +Â Â Â  prepare_xen_region x0, x1, x2, x3, x4, x5
>> +
>> +Â Â Â  ret
>> +
>
> NIT: I would remove this empty line.
ack.
>
>> +END(enable_boot_cpu_mm)
>> +
>> +/*
>> + * Local variables:
>> + * mode: ASM
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/arch/arm/include/asm/arm64/mpu/sysregs.h 
>> b/xen/arch/arm/include/asm/arm64/mpu/sysregs.h
>> new file mode 100644
>> index 0000000000..b0c31a58ec
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/arm64/mpu/sysregs.h
>> @@ -0,0 +1,27 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#ifndef __ASM_ARM_ARM64_MPU_SYSREGS_H
>> +#define __ASM_ARM_ARM64_MPU_SYSREGS_H
>> +
>> +/* Number of EL2 MPU regions */
>> +#define MPUIR_EL2Â Â  S3_4_C0_C0_4
>
> Do you know why the compiler doesn't support MPUIR_EL2 & co natively? 
> Any chance this is because we may build Xen with the wrong flags for 
> the MPU port?

Yes, you are correct. We need the following change.

|--- a/xen/arch/arm/arch.mk +++ b/xen/arch/arm/arch.mk @@ -9,7 +9,11 @@ 
CFLAGS-$(CONFIG_ARM_32) += -msoft-float CFLAGS-$(CONFIG_ARM_32) += 
-mcpu=cortex-a15 CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access +ifeq 
($(CONFIG_MPU),y) +CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r +else 
CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic +endif CFLAGS-$(CONFIG_ARM_64) 
+= -mgeneral-regs-only # No fp registers etc $(call 
cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics) - Ayan |



From xen-devel-bounces@lists.xenproject.org Fri Nov 01 17:11:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 17:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829241.1244330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6vBP-0001Hj-PH; Fri, 01 Nov 2024 17:11:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829241.1244330; Fri, 01 Nov 2024 17:11: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 1t6vBP-0001Hc-LO; Fri, 01 Nov 2024 17:11:35 +0000
Received: by outflank-mailman (input) for mailman id 829241;
 Fri, 01 Nov 2024 17:11: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=1/Ab=R4=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t6vBO-0001HW-Ic
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 17:11:34 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2416::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5660d3db-9874-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 18:11:31 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by PH8PR12MB6986.namprd12.prod.outlook.com (2603:10b6:510:1bd::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.22; Fri, 1 Nov
 2024 17:11:25 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8114.023; Fri, 1 Nov 2024
 17:11: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: 5660d3db-9874-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjJkIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU2NjBkM2RiLTk4NzQtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDgxMDkxLjk4NzAwMywic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WQbk6xBRlyBxltaLefY+u+0r15U7uYftSUF60T7n4PXhF0Q7gCObLvCqEzqJA1qCATw5dXFmjNcmoyw3tQDTvkCoaYpavU1q7Xtxt3aje6MxQc+O4/bDTQAqMmONyixVaskeErkmsZ2eIT0oUcvevrG70iiqofPKlxTkO7Ne4t3M+suG38mxaWIA5N+tQVuXMc5l4d0Yqo8Prjyt+ydBTc6H6W9msdVSpFLxneClNHo3h1/d1GiTYlhU5DDhlZf9JloyZd2nA86pOziZcGhwzGeYzQ94VcczmxBRTIpdExH2WTdmlsLMNTTMx3x9eb+D80J7l/xPh4kbkRUzmKVb6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wKNiRUoJBh34OOIZZDdDLUarzzN4O5cpl4UDR701yvU=;
 b=q8/ObKWUgqOSVW9Qro72sLqcY7bXisxLHwau/2pgrPIsg9BoooTHKSATmvygA4bhxVewdaIXeJaTBehFLFoBWbLKEqDgOzqy21+hfbM9t5Wo/Zv07rA+89WI6bGMkJG7J+YrU4gelicS1qfTSiT3THqFVc66tpYm+03sPng9BBKyePwWEwWpMx8U5a+IemVrmSoXtjIsUYc19zZvHoPWBHqUXAuU1SqXOfiEQD8ydEyyZ50NzoZwhF5UVVfq0Hj6VQ69M0veKpdsVqRKdcSzbiQh7NZYqdog1dpbf5nlpCUpOXmr6WR5UZEX2TiDDwrHL7Vpv/KO2bWW/MlaSRrUHg==
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=wKNiRUoJBh34OOIZZDdDLUarzzN4O5cpl4UDR701yvU=;
 b=B+HR4u8U/ySaoEbh/2fbE0U3b+LAY6JSetC8ZO3IiYRt5YWL9RDmzT4w0eNevLDoftdPtLkntK7f7YTZ6O9yj5KQr/lDwYvRLH4EtGnnnJQMbWDv0fnqf2s6yVSaSc1pvQyorhBVNLnWD0ciEqnSjlJsmedYEz+/JRfEf56f7Xs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <5f7f261c-142d-4778-826c-aaba6c656568@amd.com>
Date: Fri, 1 Nov 2024 17:11:20 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/6] xen/arm: mpu: Create boot-time MPU protection
 regions
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241028124547.1371867-1-ayan.kumar.halder@amd.com>
 <20241028124547.1371867-5-ayan.kumar.halder@amd.com>
 <dcfb8c04-78c6-46b4-868b-96bf24d1493d@xen.org>
 <cb90cbaa-2b1b-4f9c-b475-39214e471d18@amd.com>
In-Reply-To: <cb90cbaa-2b1b-4f9c-b475-39214e471d18@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP265CA0028.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5c::16) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|PH8PR12MB6986:EE_
X-MS-Office365-Filtering-Correlation-Id: fe36cc51-78eb-4d2c-51b8-08dcfa983730
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?MEZTUk5rcTk5emplTlBuQXFOYVVVemJTRXM3QVcxYUw1STBXRVdMSVo3SUNw?=
 =?utf-8?B?QnluN05GZEJRWGQwZzluYXNkOVgwdVU5T0phVjJ1R0JwRmRBN2VRSFE1bENQ?=
 =?utf-8?B?K0FuMnRWVGVRS3RIMXplWXFiSGRYdVRhd2dZOXFzdWYrNjUvUURoY091eFF0?=
 =?utf-8?B?em1BUnl1SFY4SDh6RHJrVVg1bGJ6Y0JGZUV2SjkrZ3luby84Sk1ZOWJNa0Iz?=
 =?utf-8?B?dlpBTU5yakV5dHRKSG9vcTNXelRJekZRUUNndXFibDhsbnZJK3JOR2FPTXhZ?=
 =?utf-8?B?MSsva1diOUVNN1hoUkVjdmdwZDFWZWZlSThyYWt4dUhLd2dZdnJockxWOHZl?=
 =?utf-8?B?S1lWbEJaZXN4L3hCODNFZVB0TzZyQ1hPbTZCeSsxZnJ2Lzl4TithV1dPNysx?=
 =?utf-8?B?QzY5SWRqaEVnQlp3N3NuQTFhWEd4bnFhM2NCYWZPSW1FRFZZc0tqZFNYSlZK?=
 =?utf-8?B?dk4rR1pjd0NnY1lQWFBDQXBIK3ZMNmVyS1Zsd3FLN2FtWTQzRUlBUHYyV1FS?=
 =?utf-8?B?aHBLaThscDN0N2NPcjNHanViK1FhVVZobTA3SHptYWNYRFZSZWdkTFlSVWlu?=
 =?utf-8?B?bnU1UHVKeUhaOFNhSzdZYlcwNkVKSjBUTkgxb2VDZyt6SGgzR3J2WE1TK2Yr?=
 =?utf-8?B?djV5MElRY1EvUWhtTG1RMDZsMFQ0ZWpteU5vTVJaRWxzZ1dCbnBQTi9pZXI2?=
 =?utf-8?B?WEo3UGljU2VRanV1eWk0aElLUTIyUENMSXJuMVM5dVh3bDZzRm92QmozeVRi?=
 =?utf-8?B?YlR4RmlLTlIvOTdab3YrRXc3SjRKVjZ3ZjNZb1NEbUVtMjZpK1NOVTJXWjYv?=
 =?utf-8?B?dDViNkZmeGwxZDJVYVVPa1lXYzQrZmhKOWIwajBBUC9aYWFsbFFtWU02V3FZ?=
 =?utf-8?B?Tk5lb3lVT2x5S2RVMnJiLzRGKzU5VXZMbThXQklCa1g0Y2xCVnhJWDF5Y0R1?=
 =?utf-8?B?S1o0eURXNjFXdW45WVRLamI5SXVUR2xEem1JaFBXMTY3Rkd6SXBLdVBOQUx0?=
 =?utf-8?B?NFJDZGdEU1BxTitPNTlwUHJpaHcyU0xHV2w1d3RhSThmSGg3RVlxYnQzaUUx?=
 =?utf-8?B?ZUZCTlJ0ZURXRHRuQVY1WVhydEpjakM0VHJrMElvRTVhZGw1clNLU1R5SDB0?=
 =?utf-8?B?eFp3cHNIemhscmFVejV1aERQRHllMlh4MXRGVUF0cEptME1peGM0QXNWQ094?=
 =?utf-8?B?UTgxSFVaUFlvVDh5YUt0Qno2SUI3cjdxRG5LVTZzSm1MY1BGN003SzAxcFVq?=
 =?utf-8?B?OVJvRTE1UDhaM3Q4ZDI0ajFwNDZKODhRSkdxb3pMR2IycTEyQXA3NVlTVEJt?=
 =?utf-8?B?T3FkNXdDME5ZcFF1Q0NNWFliaXVoMnB6eXVqSHc0OE5nRGFlM3ZiKys2dkxI?=
 =?utf-8?B?eEMrSlhCUFVhWkRkK1VFQ1VKbis1dmFEcVluajBGSGkrSHpPQWtLVy9xU0Uy?=
 =?utf-8?B?STJPdU80YzFnUW9vUlB0R2twR1FibVF5Um8xbDhYMW03dFJ3Rys0eTBpekZi?=
 =?utf-8?B?YnhDcytQSWVHaS92U3lQRTljUmZPZHdYMWdaVWxGTW54Z0h5RkdWRVBQVlF2?=
 =?utf-8?B?bWRqQkJjcnRZdGdiNDBlcC9HNU1SRys3N2VWbEFFQnBoUTNrOTNzN0V4RHkv?=
 =?utf-8?B?cEdrSVhpWGI2YWtBTG9tUnkyY3U4U0RTVjY2Z0RVTCtsY0MwR2t1QWprZEwr?=
 =?utf-8?B?WUphcUJXSGpiZFRxOU9lc3ZGWURRK0ZwbWlhTzFNRVEwdVhjQ1drNDRZUGVS?=
 =?utf-8?Q?mngG9q/YTf+5lyP4JfvS61ebu6slTwt0K8e+2os?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.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?bDlqYyt1MUJNdkNVaGcxWng2enhDNjFNb094Q0lZM0xqOTZDZDFkU2V2dDVk?=
 =?utf-8?B?TkNvRk1lNmkvTXV0WE8yREg5dlJPbENISTFIVTUyS1hWc0d2OGE0a0lTVUEx?=
 =?utf-8?B?Vmxta0NQWDRna3l6RmdZTnVKSTFvQU5zNlBwUVQxcmpsVm81YVZRK2sxNG5P?=
 =?utf-8?B?dHRlbWJxd2UyVXpOTFc3M01tODA0WnE0V3k0eTIyalRLc0xNbGlnbTVWSzJ5?=
 =?utf-8?B?R3hZRFM2b0RnT2YyY3VxanNud1RYb1EzOWJtZmxoK3FBaGFZTzMzMUtCVDhS?=
 =?utf-8?B?WFBuNEJFaGVRU2VBUmI3RFNCVmNmTW1QVXZwMkZBTGROWHhxZkczNkM1TjhG?=
 =?utf-8?B?V25KTUZzNk5Fc0FsZDFyL3FScHVjR2NoelZKSzRxL3g2WFZlRERLZVZ5UVY4?=
 =?utf-8?B?cS9rd1NhSFlTVjM4eW1scWRGdzBKNjFyYmdCbGFIZTZ2WCtUSVdtWGxPRmtU?=
 =?utf-8?B?WUZvT3J0QW5VdmhWWk9VQWxLL2V1V2xjVDZtZjRieWg1bnIrV2I1R1lMTEJ6?=
 =?utf-8?B?VzNoUi95T3p0TVFQWGtDRngrajAzcTZ1cFZBMEZZTUhDZDRZRzJ3L1pXQ3I5?=
 =?utf-8?B?S0tZRDJrTmltTUNKaU9ueTR2b0lvREE3MXhLT3RzaXp2V25FQVhFdzVtZnBH?=
 =?utf-8?B?MmVhTGxENXV0NStJckU4c2k2T1pGRkFzVENCUCtESElacUxOaXVIYkJjeG55?=
 =?utf-8?B?VUo4YnRrdlRtV29wSTJ3TFkvejBxbWpFSXNqRDhrS0VYZzhJVUM2ZHE3cEls?=
 =?utf-8?B?VVppK3V5b2NtcEJkY3F0TjE3ZDhrOXFHRkVrK21xU2F0NUdYaW1VS2VRc0Ru?=
 =?utf-8?B?R25lYzJZcmpsdFVRVlY0N2xRK3RrdnBWS2l6TjFLZHlSNUdQUEcvcFErUkVP?=
 =?utf-8?B?UjZyckVyeWFzSi95R2pGa1B1bCtZRkIyZnhscWFYYkZCTzJpZ0M0TWkvOVRH?=
 =?utf-8?B?K2dIZEJVWUxXZkhnaWdZNmpYWXN5ZjFrWnQxZXoyem1aaytXbUwxN0dlcTdX?=
 =?utf-8?B?cjNrN2h5b0U4OU53VU9yZ29jc3lWcFN3akw1SnJHc0t3WThRU1c3S3VUZ2lM?=
 =?utf-8?B?NkEzb3A4dEdFQmpDV1UvWHpyQWV2V3lSemp3RjViNGNVM2NXN1c1S2lvMlZa?=
 =?utf-8?B?KytOQzZwVU5jZ2dHcmhjdjNNWlFtSnZJSmYySTgzWk5CUkdSL0lEWkVjV2dq?=
 =?utf-8?B?b3pRZjBLQmZCSVdqdkhIRXp1UnFRQkM2MUNFNnIzcTFDd1NwRHE2MjBVUnpY?=
 =?utf-8?B?cHVEcC9QblZHLzhOd2Iyd1d2empZeGhVc3FNVW00UGpJdWVZRnIzN2RENlhu?=
 =?utf-8?B?b3FObE1FdnhuSjlWTUdBd3hwcGpvZEk2K1dhQnRXMGZYelpZRTRISGp3cVlN?=
 =?utf-8?B?U3ZWRlRJSEorTGxSUlNmL3c1MzF4Q052aGFqOXgvN3lrTVo2V0xtU3NyRmUv?=
 =?utf-8?B?aS96a013VzlOdFNlK2tCNGdkaStvWURFSTdQbEZqUVRJZDBwbmFqWmNFV2hL?=
 =?utf-8?B?dzVvUlRIdWJvM0tZUXlIRzZXY21LNS83ME5BeU1XMUhNdWtqbU40M05OZktD?=
 =?utf-8?B?ZnZwbkFUQTJNQnBvZnorc0JiZ3RDenk3SGlkMlRaWGNmbnRwQ05CNThjWk9C?=
 =?utf-8?B?ckJaOW12RGVOT3BNcWJVck5QWkpiL2kzNlV6UnZnNW9sUm9jK3drbTk4czlt?=
 =?utf-8?B?Rlhxd1lVOHhuaXhHbnlZZk9hWFVnMUdEcFFPWnNuZFA2V21OT3V5SnFUNC9v?=
 =?utf-8?B?SEhEYkdTV3oyNU5Ib296QXNiU241ZHZBbDBFbnh4bzRiMHZCV3RpcXJkd2hw?=
 =?utf-8?B?aUl5Ny80dExacDlCTWNVL0ZqKzd1WDkxY0NVWVBLM3lZaHBtR1lHeHM3S0J3?=
 =?utf-8?B?K211Mkh4ZGgxRkltNktMRXh2RDVoRzFlVVpUMjdDWlg1R0g1ckVhNjZxcWFU?=
 =?utf-8?B?ZnhkejhLOFNuUGRzRjVQTnFQREQ2N0svUXM2bld0dkRza0pVWElCalkwKzdU?=
 =?utf-8?B?aGUyQVRpdDdlNzBCZXlabWVFOUNFamxZeEpQeVNLQTdPOXNtdm93YlVkNG5S?=
 =?utf-8?B?R1pQMGhXSTVOT2JCZWF5Y2JjQWx2czJPK1crWGRoYThJSXF2TmhHUXNSanZE?=
 =?utf-8?Q?vKcUuFvp6KSKAx1SEQbLUvd2p?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe36cc51-78eb-4d2c-51b8-08dcfa983730
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2024 17:11:24.9961
 (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: UCgzxKDCjaiu6xOeI+LUTiiwzA5Pu3MDMUAS/oicDJfk0U+FxNeSBgK8E5DxjZhLlnIxqRYc7chMAcBCuoAgjw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6986


On 01/11/2024 17:08, Ayan Kumar Halder wrote:
>
> On 01/11/2024 14:11, Julien Grall wrote:
>> Hi Ayan,
> Hi Julien,

> Yes, you are correct. We need the following change.
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -9,7 +9,11 @@ CFLAGS-$(CONFIG_ARM_32) += -msoft-float
 Â CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
 Â CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access

+ifeq ($(CONFIG_MPU),y)
+CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
+else
 Â CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
+endif
 Â CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
 Â $(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics)


(Sorry for the misformatted snippet in the previous mail)

- Ayan




From xen-devel-bounces@lists.xenproject.org Fri Nov 01 20:16:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Nov 2024 20:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829264.1244340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t6y4I-0000ua-Bh; Fri, 01 Nov 2024 20:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829264.1244340; Fri, 01 Nov 2024 20:16: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 1t6y4I-0000uT-8k; Fri, 01 Nov 2024 20:16:26 +0000
Received: by outflank-mailman (input) for mailman id 829264;
 Fri, 01 Nov 2024 20:16: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=H3cE=R4=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1t6y4H-0000uJ-1a
 for xen-devel@lists.xenproject.org; Fri, 01 Nov 2024 20:16:25 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20605.outbound.protection.outlook.com
 [2a01:111:f403:2413::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25ded9e8-988e-11ef-a0c5-8be0dac302b0;
 Fri, 01 Nov 2024 21:16:17 +0100 (CET)
Received: from BL1PR13CA0346.namprd13.prod.outlook.com (2603:10b6:208:2c6::21)
 by MN2PR12MB4189.namprd12.prod.outlook.com (2603:10b6:208:1d8::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.28; Fri, 1 Nov
 2024 20:16:13 +0000
Received: from BN3PEPF0000B374.namprd21.prod.outlook.com
 (2603:10b6:208:2c6:cafe::ed) by BL1PR13CA0346.outlook.office365.com
 (2603:10b6:208:2c6::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.12 via Frontend
 Transport; Fri, 1 Nov 2024 20:16:13 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B374.mail.protection.outlook.com (10.167.243.171) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.0 via Frontend Transport; Fri, 1 Nov 2024 20:16:13 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 1 Nov
 2024 15:16:12 -0500
Received: from [172.25.174.226] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 1 Nov 2024 15:16:11 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25ded9e8-988e-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjA1IiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI1ZGVkOWU4LTk4OGUtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNDkyMTc3LjI4OTExNiwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aiaU1SD+U415NrSHz9GTEhYqzCsqMcW5W0+2EW82A1JI3xtNKcZaSmMVyKzX1dKa+PWIdUSECll6xW6LGICxTMLZaLaOdm8BIzzOvPcm+INUkcwZ8ojMWtvFKtkaI3bJAs/GMNobL5DP5vulGinzydw6w5u1fg1aGl1hGlPbvy6k0b6rQk2URwdwh9zVyI+7i9grh7kfY1bYrxY3dOnavMazxGOjyhpQSoQnloDd8hclCf8Dd22R4MAFcOEaeZIS/xoTU5Lql1bjCEBGAacA42p4efpGe30AZs8IM020y7MaXpQrV1cIPbw3KjMGX7uhr2gE48Z2RTDw647EUArHwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ykschep8H+RQ6a0c4ZtUcLYesFV/xENGwfmukt2woXM=;
 b=sUzoLH/V3kWmhGJ1ZEsLhacAByQ/cV6l9owrxZoLTbNoxkYUPKuZDA9+/WfuBNcOn7jFB+VCkz7SsPHLwiDScMLzsqD/QH3ELH19TL0jtbKI4isvqhpMy0naOv4t4yARzzArMmTpI3ksRx5zd3dvNgeeYdc+HV/iG1q1oX8ixHoQMz8ao8lvjnKqhVpkK7YdDUygYQLrIi47nKRkuMYUuDWcp+RPcozbb33oJSDKZorWg4FJ8TospmArg46AdrcFYwS4BT9e6R4B0Av7gg6683Jx+OzPS00Lz5uenr3MVHloUDqLqcTdMZqvfQYacKCnQzIMqoqRx4YF1ZIknd6OMQ==
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=Ykschep8H+RQ6a0c4ZtUcLYesFV/xENGwfmukt2woXM=;
 b=eNEOwFto0CtoXTY+17OsBLc2y7yCc88MyKBkA1A1vh6B8T5nKr1qy0LTL5guAhuE95Jx9/clfz8y0qT2/bj6kzTFq5J87e110eKF/HWEUGdNakohXzgzJ+zFOh6R4g3NInx+C7TTOkvjGrMOZ3MLAm48N9ZiDsa/I8vVxrjnAMY=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
Date: Fri, 1 Nov 2024 16:16:10 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B374:EE_|MN2PR12MB4189:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e4b2a11-0f24-4d95-1b27-08dcfab2087d
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?V2NJakNkZTR0dHgvQ2FmMXNqc28vQmFGbWNyeUFtRnVCck1UUjMzOGZLOXNm?=
 =?utf-8?B?YVR2cHpUUzA4SVlwaEE0d2hCZjJVbUViSGVWb09qZEFUdWJKdEQxL3p3QzY3?=
 =?utf-8?B?NFcyWUJPb2ZiZVgwTzl3Nk95YUpZZWgyY3FVb3g2NkJabVRxQi8zamNvdTh6?=
 =?utf-8?B?aEc5cXJIS0FRWDZudHJZM04wNUYrVkkrOFo5QnRDRmZieHh4bCtMQjhKeVNw?=
 =?utf-8?B?SjRIbGZ2SjB0WXZTT2U1OHZHaDBUVy9QM3BtdEhqTEl3eUFiWmhkbFdUdFlr?=
 =?utf-8?B?c0Jab2NhM094RmtXaFRnUlIwRGJmRW9IZDBiZXJFUjZQQUxwcmxSU3o0NWJP?=
 =?utf-8?B?a0xVTzBta2JzM0RHT0hpWkp0VkVnRU9WWWwxZGlZRWg4Wnd5Lzd6Q1RMR3RB?=
 =?utf-8?B?SlhYcWkxa1pkMkxveFlrQnhwNlhETUcra01MZVRqVTFNc2wxUHpibXRLdkti?=
 =?utf-8?B?bFdMZW9VQzVFajhYMjVGblMwWkMrNVlLTTR5czJ6NnRIaDB2eFUzbUxQc1pS?=
 =?utf-8?B?L0Nrb3JTdTVHbUFrWEs0TjhLcW5RQ0VXby93S1VFUTJOclVEOGxUZUpmalNl?=
 =?utf-8?B?bThuSHZDaENzZGdNUUtqVUZZTFR0WWlibzI1K0RhSmE0MTBCNHRoamh2UFZG?=
 =?utf-8?B?cklZTUFYdmNuM2cvTE43OW9iQ0g4MVc2dE5odFJmZDVwU2VKVnpYQWlyOThU?=
 =?utf-8?B?NUlleDJ1aG5nVkljVGFnMjltZ2FkWUhNcmdoNjhwR2krcG8vV2NYRk9QNHRl?=
 =?utf-8?B?eVE0UWNLME53TWFWK3JkSkRJM0ZTOGlPZ3FKOE1FY3FnUXRZMUN2L3QvN3M1?=
 =?utf-8?B?Zk5DNlZOM0tVSjJNVGNRdllrQmI1REluR0RmTC9aWlI3VUgrN2tXQXNmUGJG?=
 =?utf-8?B?SkgxcUJ1bFNuU3JaR05sNTNtY2hiU0phSk9HcEJPUWtjamIrV2R0SkR3Z1Av?=
 =?utf-8?B?S0dkNHFCR0h4dW9QOGJCN2crQWE1WmNKVkg5MjhpMlZyWmNvQllTRFVhZlVT?=
 =?utf-8?B?NVZpZ0ZHVDI0bGFtK1o0cjhoalhjbVgzWUtkVVJ2OENucUtwLy91NnNMR2E0?=
 =?utf-8?B?KzJ5dkNvTzZnY01FOGhvUDlNTmE0QkxaRmxPdGRDaW1PaTVGQ0YyRkZlSEtz?=
 =?utf-8?B?TlAwQVZrSFg3RnJDQkUxYS80TjZaS3R1aUF0cnFNelM3eXRDTlN6L3E1N1F1?=
 =?utf-8?B?UXRaY1hXQTNwLytZdDJIZUQ2SC9QVEpjcFIvZGtDc2dFRlIyUjByUTJyWEFB?=
 =?utf-8?B?VXJ1enhndWE5MHNxNE5Xdy8ydkd0L0pMQTlhY3VLdU5iSDEwUG9kb2ZNdURF?=
 =?utf-8?B?WU4yNjNWeHVwN1huOFovMkFYSStLQ0xUNHlzTENXaXRtQ01Xdk1hMFZrdUdC?=
 =?utf-8?B?QnpnRDcvNXlQaDZjWWxjL2RVZjFSUkk0TWVSZDlXTlJoVWdHREh6OFM0a0F5?=
 =?utf-8?B?eko0QVY4SzlKbDZkc2wzeDMrOG90UTZoLzBNS1o4Qk1HNUM2R0dyZTZHdytI?=
 =?utf-8?B?ODY2OWs2NS9LbmZQeUw0ZzRpWlZQUVUyTTIrY2R0cHRHdjU3TVhIa0kxMW1a?=
 =?utf-8?B?SVJzZ3ZuQUJvN0VUMzhFSFoxdXRFVW00UTNYQnFTMUErdXhGdkhNN2lMYU1O?=
 =?utf-8?B?WmRXWldtM0dpNisxRnlKM00rVnkyWnFXeXVJVjhITU5xZ3hnbjZBNzhleE4v?=
 =?utf-8?B?UmVGMFl5TGp3dnRSN3pURFNJL05DZWNBV2Y3eUdIcHdUM0gvY3oxb2h5SnJU?=
 =?utf-8?B?bjg3bWJDUzkyaENQSXpObnY3L3pRUkVRdWtFVW5DN3BNTDBPNk9xUVFqb3Nw?=
 =?utf-8?B?SGxHa0R0T0RVSU41bVY4N2NVSU5vNUxnK2lLRjFyNUFCcDZlaFBSZzhXa2RF?=
 =?utf-8?B?cGpvd0RpdXprakJESFg2M0w1bE5tcGFtajg0WGlsZi96ZjRaak1NekQ0MThQ?=
 =?utf-8?Q?OQ1lUmIqa1o=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 01 Nov 2024 20:16:13.2682
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e4b2a11-0f24-4d95-1b27-08dcfab2087d
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B374.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4189

+Daniel (XSM mention)

On 10/28/24 13:02, Jan Beulich wrote:
> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>> Add links between a VF's struct pci_dev and its associated PF struct
>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>> dropping and re-acquiring the pcidevs_lock().
>>
>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>> VFs may exist without a corresponding PF, although now only with
>> pdev->broken = true.
>>
>> The hardware domain is expected to remove the associated VFs before
>> removing the PF. Print a warning in case a PF is removed with associated
>> VFs still present.
>>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> ---
>> Candidate for backport to 4.19 (the next patch depends on this one)
>>
>> v5->v6:
>> * move printk() before ASSERT_UNREACHABLE()
>> * warn about PF removal with VFs still present
> 
> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
> just after an adjustment to the commit message. I'm instead actively
> concerned of the resulting behavior. Question is whether we can reasonably
> do something about that.
> 
> Jan

Right. My suggestion then is to go back to roughly how it was done in
v4 [0]:

* Remove the VFs right away during PF removal, so that we don't end up
with stale VFs. Regarding XSM, assume that a domain with permission to
remove the PF is also allowed to remove the VFs. We should probably also
return an error from pci_remove_device in the case of removing the PF
with VFs still present (and still perform the removals despite returning
an error). Subsequent attempts by a domain to remove the VFs would
return an error (as they have already been removed), but that's expected
since we've taken a stance that PF-then-VF removal order is invalid
anyway.

While the above is what I prefer, I just want to mention other options I
considered for the scenario of PF removal with VFs still present:

* Increase the "scariness" of the warning message added in v6.

* Return an error from pci_remove_device (while still removing only the
PF). We would be left with stale VFs in Xen. At least this would
concretely inform dom0 that Xen takes issue with the PF-then-VF removal
order. Subsequent attempts by a domain to remove VFs, however
(un)likely, would succeed.

* Return an error from pci_remove_device and keep the PF and VFs. This
is IMO the worst option because then we would have a stale PF in
addition to stale VFs.

[0] https://lore.kernel.org/xen-devel/20240827035929.118003-1-stewart.hildebrand@amd.com/T/#t


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 03:55:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 03:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829280.1244350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t75Dl-00061D-In; Sat, 02 Nov 2024 03:54:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829280.1244350; Sat, 02 Nov 2024 03:54: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 1t75Dl-000615-DI; Sat, 02 Nov 2024 03:54:41 +0000
Received: by outflank-mailman (input) for mailman id 829280;
 Sat, 02 Nov 2024 03:54: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=8EOZ=R5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1t75Dj-00060z-SH
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 03:54:40 +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 2b312107-98ce-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 04:54:33 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.stl.internal (Postfix) with ESMTP id F29F41140118;
 Fri,  1 Nov 2024 23:54:31 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Fri, 01 Nov 2024 23:54:32 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 1 Nov 2024 23:54:29 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b312107-98ce-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTQ3IiwiaGVsbyI6ImZvdXQtYjQtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJiMzEyMTA3LTk4Y2UtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTE5NjczLjk5MTI2Miwic2VuZGVyIjoibWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=1730519671;
	 x=1730606071; bh=++AHLVmJ6BsNb184+4dgPKxrWbOGf+cQlEP8x6mGi1M=; b=
	pggwgTAhmV9geZ5f1PirtCC39LHJadALowajk3MIiKMty2SgKjw96UwfYcthojXx
	ISidPRWG0rhpe5dujaVChKg/GcylSnylvmcAa1EW2uzUupe1e81R7MjzNKENEJae
	eFSJMapt5sS1YKzaI5r0TWD3vHBPmCAb9G2mCAYk0iXTnXJAzxOS8jLUQz1ADlRo
	38ZnktVBgK5B05Wx97HfVfYURfoZ0K4fbIP0wcs1VaPUMjQBn4ttH4yqkvzWvbWV
	uF96D+atsRFlv70mKVCjwLpHiIQO+1cW+ujtxxcHj4ATPtAPqZsvrKHWHOoXUWPn
	qhJTXfdm0T7hS3h7Ga/2gQ==
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=fm3; t=
	1730519671; x=1730606071; bh=++AHLVmJ6BsNb184+4dgPKxrWbOGf+cQlEP
	8x6mGi1M=; b=Yc+mrWpMGwhK0xJWQI+VvfC+p31NVbvtClD8Re984B8Avb9ll0J
	18GsbKUHdG/7fn3aUCM4sK1t1pXOXt6LxjWXc6skH5T1yv+l+ShaaEw6iy42bJ4i
	UhXkCq+4S6lGtyzIS1aY2rG0EGBTZIKNvqdSzT7QLZ0vkTsJ7gmoqk3UhRUu0swE
	jGFSJBBeYYDyCYJojIB7DtDctoE8X5QL0vJWebpziIhSSiwiu1Esg/XBQhRHUGUy
	DW7UYgCB7zVc7GOzVh2cX9KKabu2FzBpOXCvr8qJSW7G0ghjjW/lOAmibkzsZhxe
	gj5xVWnQDW9VFildui4acDzaY/aJVjOG+sA==
X-ME-Sender: <xms:d6IlZy6enDCctfdZN5djBmryyeqCjRRhpLCAY0NiLHmfA67hBUwThA>
    <xme:d6IlZ77JKmfqRtQZd0p85liL7TthrqPCb0d_4jn_AXJIvSMoPEl7uLGn5g9YGTpdw
    bmYEIRsnQpZTA>
X-ME-Received: <xmr:d6IlZxfyABUKb77OB1NCBBPP0Tlbx-V_hhMwolJKTPmeboaZ3BWAj9Kv8vCOeurTY3zdz27g1JN4ErYFtgi8EbPVrBwKJHr2tw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeltddgieefucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvve
    fukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpedfmhgrrhhmrghrvghksehinhhv
    ihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdfuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepkeekveei
    veekhfeiteevheeukeehudeflefgvedujeekhfffhedutdejgeethedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepkedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepugifmhifsegrmhgriihonhdrtghordhu
    khdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtth
    hopegsphesrghlihgvnhekrdguvgdprhgtphhtthhopeigkeeisehkvghrnhgvlhdrohhr
    ghdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgi
    gvnhhprhhojhgvtghtseihmhihrdgsvgdprhgtphhtthhopeigvghnqdguvghvvghlsehl
    ihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtg
    hoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:d6IlZ_Ip_y5ehUJeJS55sF1C9o2w0AOt6B7mCpB15ilx6g3VuGehVg>
    <xmx:d6IlZ2IMsAUmR_y4XO3rX434khFHGQOhCijxlVQ7CLdZgltVuBYfUg>
    <xmx:d6IlZwzuU35WArKQuOJo9_j8DuO4eNkHrIYvjeOC9CKVEtNqKiXcpw>
    <xmx:d6IlZ6K0SH__SabEbni3bvQbqOs1ZS3NvYWoDk0rrJGpEhSub_Ep9Q>
    <xmx:d6IlZ3o_8iOf4zvkOKxxihkC9yk_PJIZAr3_TRuLjhmAKbMudL8VEexC>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 2 Nov 2024 04:54:27 +0100
From: "marmarek@invisiblethingslab.com" <marmarek@invisiblethingslab.com>
To: "Woodhouse, David" <dwmw@amazon.co.uk>
Cc: "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"bp@alien8.de" <bp@alien8.de>, "x86@kernel.org" <x86@kernel.org>,
	"jbeulich@suse.com" <jbeulich@suse.com>,
	"xenproject@ymy.be" <xenproject@ymy.be>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/io-apic: fix directed EOI when using AMd-Vi
 interrupt remapping
Message-ID: <ZyWicz8YHqFb3hMz@mail-itl>
References: <20241018080813.45759-1-roger.pau@citrix.com>
 <ZxMmOjD7oHuAE7Vb@mail-itl>
 <3663ba26192a78de2090512c912bff8afc852e5c.camel@amazon.co.uk>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="o/IffRyF+aHcQMa3"
Content-Disposition: inline
In-Reply-To: <3663ba26192a78de2090512c912bff8afc852e5c.camel@amazon.co.uk>


--o/IffRyF+aHcQMa3
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 2 Nov 2024 04:54:27 +0100
From: "marmarek@invisiblethingslab.com" <marmarek@invisiblethingslab.com>
To: "Woodhouse, David" <dwmw@amazon.co.uk>
Cc: "roger.pau@citrix.com" <roger.pau@citrix.com>,
	"bp@alien8.de" <bp@alien8.de>, "x86@kernel.org" <x86@kernel.org>,
	"jbeulich@suse.com" <jbeulich@suse.com>,
	"xenproject@ymy.be" <xenproject@ymy.be>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/io-apic: fix directed EOI when using AMd-Vi
 interrupt remapping

On Mon, Oct 21, 2024 at 11:43:04AM +0000, Woodhouse, David wrote:
> On Sat, 2024-10-19 at 05:23 +0200, Marek Marczykowski-G=C3=B3recki wrote:
> > On Fri, Oct 18, 2024 at 10:08:13AM +0200, Roger Pau Monne wrote:
> > > When using AMD-VI interrupt remapping the vector field in the IO-APIC=
 RTE is
> > > repurposed to contain part of the offset into the remapping table.=C2=
=A0 Previous to
> > > 2ca9fbd739b8 Xen had logic so that the offset into the interrupt rema=
pping
> > > table would match the vector.=C2=A0 Such logic was mandatory for end =
of interrupt to
> > > work, since the vector field (even when not containing a vector) is u=
sed by the
> > > IO-APIC to find for which pin the EOI must be performed.
> > >=20
> > > Introduce a table to store the EOI handlers when using interrupt rema=
pping, so
> > > that the IO-APIC driver can translate pins into EOI handlers without =
having to
> > > read the IO-APIC RTE entry.=C2=A0 Note that to simplify the logic suc=
h table is used
> > > unconditionally when interrupt remapping is enabled, even if strictly=
 it would
> > > only be required for AMD-Vi.
> > >=20
> > > Reported-by: Willi Junga <xenproject@ymy.be>
> > > Suggested-by: David Woodhouse <dwmw@amazon.co.uk>
> > > Fixes: 2ca9fbd739b8 ('AMD IOMMU: allocate IRTE entries instead of usi=
ng a static mapping')
> > > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> >=20
> > I can confirm it fixes touchpad issue on Framework 13 AMD,
> > it works without ioapic_ack=3Dnew now, thanks!
> > Tested-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>
>=20
> Thanks for testing. But... why did this work with the auto-EOI? That
> *should* have had exactly the same problem, surely?=20
>=20
> The problem fixed by this patch is that the directed EOI used the
> actual vector# and *not* the bits that the I/O APIC *thinks* are the
> vector#, which are actually the IRTE index#.
>=20
> But if you let the CPU do its broadcast EOI then surely *that* is going
> to use the actual vector# too, and have precisely the same problem?
>=20
> If you use the code prior to this patch, *without* ioapic_ack=3Dnew (i.e.
> the mode that was failing), what happens if you do this:
>=20
> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -595,7 +595,7 @@ void setup_local_APIC(void)
>      /*
>       * Enable directed EOI
>       */
> -    if ( directed_eoi_enabled )
> +    if ( 0 && directed_eoi_enabled )
>      {
>          value |=3D APIC_SPIV_DIRECTED_EOI;
>          apic_printk(APIC_VERBOSE, "Suppress EOI broadcast on CPU#%d\n",
>=20
>=20
> I'm guessing that 'fixes' it too? In which case, it looks like AMD has
> some undocumented hack in between its APIC and I/O APIC to let it
> magically auto-EOI the correct pin somehow?

So, this does _not_ fix the touchpad issue.

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

--o/IffRyF+aHcQMa3
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmclonMACgkQ24/THMrX
1ywUHAf/RZD8T7jOEZVE73t71cOtriKLLTvdVfRFC4tigM61MZiO7+Dc75k0QgVw
yiVuNeA8no2+u2or7CSXvpATNO3sYugL1H9y46xKKwX2x7knhi7/F3dX4elZgJpV
7z7meePIrH8ezOWuZ0kKzgroir+fhA/m8zzmftmaQBIAyKhquCDxFpF509++yJZg
fpVEFy3qYh0iojOG7QOUtmmKqWpY2oBKhEeHIleV6kQOEb1N4e3hr6ZZJgERPJ7r
HGHthw6kM5IPb8Alndv2EXI/R1zxnTHBSB3rzp5rmVrkcQw5lMouKStNFCKP3Vz9
c+8+dmT6FCutZEisGAuZvuaU5LtptQ==
=MFYp
-----END PGP SIGNATURE-----

--o/IffRyF+aHcQMa3--


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 03:56:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 03:56:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829289.1244360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t75Fd-0006hd-0B; Sat, 02 Nov 2024 03:56:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829289.1244360; Sat, 02 Nov 2024 03:56: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 1t75Fc-0006hW-Sc; Sat, 02 Nov 2024 03:56:36 +0000
Received: by outflank-mailman (input) for mailman id 829289;
 Sat, 02 Nov 2024 03:56: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=8EOZ=R5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1t75Fb-0006hM-JW
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 03:56:35 +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 71186fe7-98ce-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 04:56:31 +0100 (CET)
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfhigh.stl.internal (Postfix) with ESMTP id D0719254013A;
 Fri,  1 Nov 2024 23:56:29 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-10.internal (MEProxy); Fri, 01 Nov 2024 23:56:30 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 1 Nov 2024 23:56:28 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71186fe7-98ce-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTU4IiwiaGVsbyI6ImZoaWdoLWI3LXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjcxMTg2ZmU3LTk4Y2UtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTE5NzkxLjE5MTcxMywic2VuZGVyIjoibWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=1730519789;
	 x=1730606189; bh=RAyFWQwC3Ay167Vb6n9KZDWo0Hb+gByl4t3ggZWtfCo=; b=
	pcxon6pjrOtzWEASjjC/P4s/1NlYWzwaEkVO1UJZpOt/evqQS42BaE5njFZaIZLD
	rh/PS4jPI45z2VuPMxk82xqvdUXAPNANQV6CVFR7fNY99IfjHDYZt24FgbmEdQ5O
	Tq6FmVPxvrExGxE+2i+7Can76vrYlS5oN+3My4MFCuo7ZMNCv/3flQAyCPv8SW7v
	A3aVE0Duyfh+CVFP5dxJUzny7AUCiP90dGl7+/R4JFHwv31/oGrzQKD2wcuNHPgD
	r5gknLfL6DHIaKZ32M5rv6GD2+gfgtDr2yLPp3p5wIeSEDOzlsl2fjVMpscsTfQK
	nQ/l01QnXya6vhBJYomeow==
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=fm3; t=
	1730519789; x=1730606189; bh=RAyFWQwC3Ay167Vb6n9KZDWo0Hb+gByl4t3
	ggZWtfCo=; b=QllZsyQKVXOKYlyntYC2U6LNDNS0h1CwHu52u4+LsSGuUO0OT4Y
	t5Bzv28Rj0y/x1ZV6GPO6GYc0ZaMqNutta4Y+x/3T0WTyiiJ0HacUQxr70HgbqNh
	1gcQGl6RGp/PkoCIZwg+ZHVr/TVSgAbbWR0OBKLJVCQi9NHgdj6Cd9gLYOr8QbcB
	lfWsAOEKop5DaFbYaP38rbLtbsRPNAcwBPdihQN8DmgJdqyMWOzWog1EkFu86qzK
	mcmrbcn/ybENESrhChHISa6SFMM6/uD25vIITCiBvOFuN6N8/4WlkIVy+XKxr286
	nKyORfko/hJZBxww3sA0/2mwzECymEYmYjw==
X-ME-Sender: <xms:7aIlZyEenwwIN7zfX6k01B2pz--wYoN1oCmrFevpX5__zYW4wyOdVQ>
    <xme:7aIlZzWWMwE4Do2AhxsMi2O3hj_yUHbi7b2U5Qnr0p5l2tt5y1Od1kRiMUP9oPiKw
    3EhIzIPZHMkMw>
X-ME-Received: <xmr:7aIlZ8LqJkJmxY_szlfQqhUIt-6StqEq4-PQgC2nZndOQswC_0lgVpjr4LMgWt2yMRUJzboLg5aofNtR0qCWkb9QjTg_N5L6Xg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeltddgieegucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
    htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddtjeen
    ucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomh
    grrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggft
    rfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettddvge
    euteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhho
    mhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnh
    gspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgv
    rhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslh
    hishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghh
    sehsuhhsvgdrtghomhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhhprhhojhgvtghtseihmhihrdgsvgdprhgt
    phhtthhopegufihmfiesrghmrgiiohhnrdgtohdruhhk
X-ME-Proxy: <xmx:7aIlZ8GsNw2cNo21fPvNR6DEpBp3NRegBOSzlgloegS98Kqv5-j59A>
    <xmx:7aIlZ4W4GYKSpmH0fDXxbNvKzuZEQvj5MCskPZl1gjEAXO2DQ-C9FA>
    <xmx:7aIlZ_OqPXJNjybb2xXRi2WXffx4TlUvR1ENlkIQCulliYUBZxXQhw>
    <xmx:7aIlZ_2sedDFI6lVF98rSO8gqNGUNGi5h6ImtEU_dCrgsATsPuqP4Q>
    <xmx:7aIlZydS1L_5LyEIXkcoXpnCk4sj2qBJBR6cE1MxfIi1TiDZif3CSAEI>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 2 Nov 2024 04:56:26 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Willi Junga <xenproject@ymy.be>,
	David Woodhouse <dwmw@amazon.co.uk>
Subject: Re: [PATCH v4] x86/io-apic: fix directed EOI when using AMD-Vi
 interrupt remapping
Message-ID: <ZyWi6ojhSijwne5i@mail-itl>
References: <20241031085713.6156-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="n8oS9+vfPQju9yeP"
Content-Disposition: inline
In-Reply-To: <20241031085713.6156-1-roger.pau@citrix.com>


--n8oS9+vfPQju9yeP
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 2 Nov 2024 04:56:26 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Willi Junga <xenproject@ymy.be>,
	David Woodhouse <dwmw@amazon.co.uk>
Subject: Re: [PATCH v4] x86/io-apic: fix directed EOI when using AMD-Vi
 interrupt remapping

On Thu, Oct 31, 2024 at 09:57:13AM +0100, Roger Pau Monne wrote:
> When using AMD-Vi interrupt remapping the vector field in the IO-APIC RTE=
 is
> repurposed to contain part of the offset into the remapping table.  Previ=
ous to
> 2ca9fbd739b8 Xen had logic so that the offset into the interrupt remapping
> table would match the vector.  Such logic was mandatory for end of interr=
upt to
> work, since the vector field (even when not containing a vector) is used =
by the
> IO-APIC to find for which pin the EOI must be performed.
>=20
> A simple solution wold be to read the IO-APIC RTE each time an EOI is to =
be
> performed, so the raw value of the vector field can be obtained.  However
> that's likely to perform poorly.  Instead introduce a cache to store the
> EOI handles when using interrupt remapping, so that the IO-APIC driver can
> translate pins into EOI handles without having to read the IO-APIC RTE en=
try.
> Note that to simplify the logic such cache is used unconditionally when
> interrupt remapping is enabled, even if strictly it would only be required
> for AMD-Vi.
>=20
> Reported-by: Willi Junga <xenproject@ymy.be>
> Suggested-by: David Woodhouse <dwmw@amazon.co.uk>
> Fixes: 2ca9fbd739b8 ('AMD IOMMU: allocate IRTE entries instead of using a=
 static mapping')
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Very lightly, but
Tested-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

with this patch, touchpad works on Framework AMD, _without_ ioapic_ack=3Dnew
option.

> ---
> Changes since v3:
>  - Remove the usage of a sentinel value (again).
>  - Allocate an initialize the cache in enable_IO_APIC().
>  - Fix MISRA compliance.
>  - Use xvmalloc.
>=20
> Changes since v2:
>  - Restore sentinel value.
>=20
> Changes since v1:
>  - s/apic_pin_eoi/io_apic_pin_eoi/.
>  - Expand comment about io_apic_pin_eoi usage and layout.
>  - Use uint8_t instead of unsigned int as array type.
>  - Do not use a sentinel value.
> ---
>  xen/arch/x86/io_apic.c | 76 +++++++++++++++++++++++++++++++++++++++---
>  1 file changed, 71 insertions(+), 5 deletions(-)
>=20
> diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
> index e40d2f7dbd75..4e5ee2b890a0 100644
> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -29,6 +29,7 @@
>  #include <xen/acpi.h>
>  #include <xen/keyhandler.h>
>  #include <xen/softirq.h>
> +#include <xen/xvmalloc.h>
> =20
>  #include <asm/hpet.h>
>  #include <asm/mc146818rtc.h>
> @@ -71,6 +72,24 @@ static int apic_pin_2_gsi_irq(int apic, int pin);
> =20
>  static vmask_t *__read_mostly vector_map[MAX_IO_APICS];
> =20
> +/*
> + * Store the EOI handle when using interrupt remapping.
> + *
> + * If using AMD-Vi interrupt remapping the IO-APIC redirection entry rem=
apped
> + * format repurposes the vector field to store the offset into the Inter=
rupt
> + * Remap table.  This breaks directed EOI, as the CPU vector no longer m=
atches
> + * the contents of the RTE vector field.  Add a translation cache so that
> + * directed EOI uses the value in the RTE vector field when interrupt re=
mapping
> + * is enabled.
> + *
> + * Intel VT-d Xen code still stores the CPU vector in the RTE vector fie=
ld when
> + * using the remapped format, but use the translation cache uniformly in=
 order
> + * to avoid extra logic to differentiate between VT-d and AMD-Vi.
> + *
> + * The matrix is accessed as [#io-apic][#pin].
> + */
> +static uint8_t **io_apic_pin_eoi;
> +
>  static void share_vector_maps(unsigned int src, unsigned int dst)
>  {
>      unsigned int pin;
> @@ -273,6 +292,17 @@ void __ioapic_write_entry(
>      {
>          __io_apic_write(apic, 0x11 + 2 * pin, eu.w2);
>          __io_apic_write(apic, 0x10 + 2 * pin, eu.w1);
> +        /*
> +         * Might be called before io_apic_pin_eoi is allocated.  Entry w=
ill be
> +         * initialized to the RTE value once the cache is allocated.
> +         *
> +         * The vector field is only cached for raw RTE writes when using=
 IR.
> +         * In that case the vector field might have been repurposed to s=
tore
> +         * something different than the CPU vector, and hence need to be=
 cached
> +         * for performing EOI.
> +         */
> +        if ( io_apic_pin_eoi )
> +            io_apic_pin_eoi[apic][pin] =3D e.vector;
>      }
>      else
>          iommu_update_ire_from_apic(apic, pin, e.raw);
> @@ -288,18 +318,36 @@ static void ioapic_write_entry(
>      spin_unlock_irqrestore(&ioapic_lock, flags);
>  }
> =20
> -/* EOI an IO-APIC entry.  Vector may be -1, indicating that it should be
> +/*
> + * EOI an IO-APIC entry.  Vector may be -1, indicating that it should be
>   * worked out using the pin.  This function expects that the ioapic_lock=
 is
>   * being held, and interrupts are disabled (or there is a good reason not
>   * to), and that if both pin and vector are passed, that they refer to t=
he
> - * same redirection entry in the IO-APIC. */
> + * same redirection entry in the IO-APIC.
> + *
> + * If using Interrupt Remapping the vector is always ignored because the=
 RTE
> + * remapping format might have repurposed the vector field and a cached =
value
> + * of the EOI handle to use is obtained based on the provided apic and p=
in
> + * values.
> + */
>  static void __io_apic_eoi(unsigned int apic, unsigned int vector, unsign=
ed int pin)
>  {
>      /* Prefer the use of the EOI register if available */
>      if ( ioapic_has_eoi_reg(apic) )
>      {
> -        /* If vector is unknown, read it from the IO-APIC */
> -        if ( vector =3D=3D IRQ_VECTOR_UNASSIGNED )
> +        if ( io_apic_pin_eoi )
> +            /*
> +             * If the EOI handle is cached use it. When using AMD-Vi IR =
the CPU
> +             * vector no longer matches the vector field in the RTE, bec=
ause
> +             * the RTE remapping format repurposes the field.
> +             *
> +             * The value in the RTE vector field must always be used to =
signal
> +             * which RTE to EOI, hence use the cached value which always
> +             * mirrors the contents of the raw RTE vector field.
> +             */
> +            vector =3D io_apic_pin_eoi[apic][pin];
> +        else if ( vector =3D=3D IRQ_VECTOR_UNASSIGNED )
> +             /* If vector is unknown, read it from the IO-APIC */
>              vector =3D __ioapic_read_entry(apic, pin, true).vector;
> =20
>          *(IO_APIC_BASE(apic)+16) =3D vector;
> @@ -1317,12 +1365,30 @@ void __init enable_IO_APIC(void)
>              vector_map[apic] =3D vector_map[0];
>      }
> =20
> +    if ( iommu_intremap !=3D iommu_intremap_off )
> +    {
> +        io_apic_pin_eoi =3D xvmalloc_array(typeof(*io_apic_pin_eoi), nr_=
ioapics);
> +        BUG_ON(!io_apic_pin_eoi);
> +    }
> +
>      for(apic =3D 0; apic < nr_ioapics; apic++) {
>          int pin;
> -        /* See if any of the pins is in ExtINT mode */
> +
> +        if ( io_apic_pin_eoi )
> +        {
> +            io_apic_pin_eoi[apic] =3D xvmalloc_array(typeof(**io_apic_pi=
n_eoi),
> +                                                   nr_ioapic_entries[api=
c]);
> +            BUG_ON(!io_apic_pin_eoi[apic]);
> +        }
> +
> +        /* See if any of the pins is in ExtINT mode and cache EOI handle=
 */
>          for (pin =3D 0; pin < nr_ioapic_entries[apic]; pin++) {
>              struct IO_APIC_route_entry entry =3D ioapic_read_entry(apic,=
 pin, false);
> =20
> +            if ( io_apic_pin_eoi )
> +                io_apic_pin_eoi[apic][pin] =3D
> +                    ioapic_read_entry(apic, pin, true).vector;
> +
>              /* If the interrupt line is enabled and in ExtInt mode
>               * I have found the pin where the i8259 is connected.
>               */
> --=20
> 2.46.0
>=20
>=20

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

--n8oS9+vfPQju9yeP
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmclouoACgkQ24/THMrX
1yzdhQf/SKzXn5vhvljZoCJg+MgM4BKyhszSgJ3ojqAAIdWcnN/d6XKPWtfanH6c
LVCXu4AGHJ1ysp7d/7oFYp3OdGTdoooe5cVl/BKBAccooiaG+JbO5aydUP0TWIb6
a3IMtZd1ombeQ8VwCOo4Kq6ijiIfCD10Nbhksj3iXSFYV90gaI0Zd8MWDjsSRVFT
soNX/GfFKvGWQDlROtHZ0PPIRyj+EH4S+L0bSzY3O5eIgMKpjO0LA8S5vJIlRAhe
6kf5+QwhPPrqpi6Kdo5vtEmcCRS9Gsed2jS4pkKWUlpv7pqtud49IYoFX4y7VLYb
QpWTjpD3hRM9CNEO5ubVyOS2NJUSNQ==
=5/Zf
-----END PGP SIGNATURE-----

--n8oS9+vfPQju9yeP--


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 15:19:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 15:19:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829449.1244434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Ftu-0006sg-TW; Sat, 02 Nov 2024 15:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829449.1244434; Sat, 02 Nov 2024 15:18: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 1t7Ftu-0006sZ-QN; Sat, 02 Nov 2024 15:18:54 +0000
Received: by outflank-mailman (input) for mailman id 829449;
 Sat, 02 Nov 2024 15:18: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Ftt-0006sT-A4
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 15:18:53 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfd93eb2-992d-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 16:18:46 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730560705768342.0005909141787;
 Sat, 2 Nov 2024 08:18:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfd93eb2-992d-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJmZDkzZWIyLTk5MmQtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTYwNzI2LjM5MDAwNiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730560713; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=SQZb0kk41l0W1st0ggwylNkSakmjybuZxhjMIIPwAY9AoR0I4qGsq/QWQdOEDDu3z+gnGhmi8ubgMtr+zhv/Lfbvm7BdMtRgfN3RSZR8yGZO16KOxnD5QZftvknF5cMj4tEPI4RAE+VuS+IHtc27pmVzAdPPwkygyE/m3LyZAmo=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730560713; 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=bOIT/7nKAlEW3wEzoZX1SSO29resDpQHeUh54jKqz10=; 
	b=YWsbRMwe1/6cKWqJuj9dBVc7qCDn2LTD9EeOyF6S5DGlg/+rqbuPPbg8bAV7SETrTxmRUpJ+UFp3Ag05H+w4Ruk5l5GYN0EGVY9MADba+H7yFA1fNa2RIRhpnhOW8+pIR1PxYtm5UpZZ4HUBLfM7BEccmR4qIDFobK/hFRvG4aA=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730560713;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=bOIT/7nKAlEW3wEzoZX1SSO29resDpQHeUh54jKqz10=;
	b=MkTieauXV2qPMIf8VvgrtQmja0nfGV/0+OclcmLc8F5ZA5TURMLIdvQhVaXdNZeY
	bz/tmy/kAdxoGhvmqDJdce12oZuHkKVk7Ortr8kkx3FgOyYkxy7z8ZiHb+ETlwfURzY
	ykW73XaSuK2fn342OYDH5UlC9vywd1k7iGxbAL5s=
Message-ID: <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>
Date: Sat, 2 Nov 2024 11:18:24 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/1/24 16:16, Stewart Hildebrand wrote:
> +Daniel (XSM mention)
> 
> On 10/28/24 13:02, Jan Beulich wrote:
>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>> Add links between a VF's struct pci_dev and its associated PF struct
>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>> dropping and re-acquiring the pcidevs_lock().
>>>
>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>> VFs may exist without a corresponding PF, although now only with
>>> pdev->broken = true.
>>>
>>> The hardware domain is expected to remove the associated VFs before
>>> removing the PF. Print a warning in case a PF is removed with associated
>>> VFs still present.
>>>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>> ---
>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>
>>> v5->v6:
>>> * move printk() before ASSERT_UNREACHABLE()
>>> * warn about PF removal with VFs still present
>>
>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>> just after an adjustment to the commit message. I'm instead actively
>> concerned of the resulting behavior. Question is whether we can reasonably
>> do something about that.
>>
>> Jan
> 
> Right. My suggestion then is to go back to roughly how it was done in
> v4 [0]:
> 
> * Remove the VFs right away during PF removal, so that we don't end up
> with stale VFs. Regarding XSM, assume that a domain with permission to
> remove the PF is also allowed to remove the VFs. We should probably also
> return an error from pci_remove_device in the case of removing the PF
> with VFs still present (and still perform the removals despite returning
> an error). Subsequent attempts by a domain to remove the VFs would
> return an error (as they have already been removed), but that's expected
> since we've taken a stance that PF-then-VF removal order is invalid
> anyway.

I am not confident this is a safe assumption. It will likely be safe for 
probably 99% of the implementations. Apologies for not following 
closely, and correct me if I am wrong here, but from a resource 
perspective each VF can appear to the system as its own unique BDF and 
so I am fairly certain it would be possible to uniquely label each VF. 
For instance in the SVP architecture, the VF may be labeled to restrict 
control to a hardware domain within a Guest Virtual Platform while the 
PF may be restricted to the Supervisor Virtual Platform. In this 
scenario, the Guest would be torn down before the Supervisor so the VF 
should get released before the PF. But it's all theoretical, so I have 
no real implementation to point at that this could be checked/confirmed.

I am only raising this for awareness and not as an objection. If people 
want to punt that theoretical use case down the road until someone 
actually attempts it, I would not be opposed.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 15:44:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 15:44:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829460.1244444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7GIM-0002fz-Q2; Sat, 02 Nov 2024 15:44:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829460.1244444; Sat, 02 Nov 2024 15:44: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 1t7GIM-0002fs-NM; Sat, 02 Nov 2024 15:44:10 +0000
Received: by outflank-mailman (input) for mailman id 829460;
 Sat, 02 Nov 2024 15:44: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7GIL-0002fm-K3
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 15:44:09 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 49e49077-9931-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 16:44:06 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173056224020049.258949114127745;
 Sat, 2 Nov 2024 08:44:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49e49077-9931-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ5ZTQ5MDc3LTk5MzEtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTYyMjQ2LjQ1OTU5Nywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730562241; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=OGBIPuAQMsVyjarfdBi5LqKuRWBG/n7EtlBJH6mljL1ikSK3LnT2MVvp2WvZhMSvaX5qun7VlSk0KjVFJC26FdNm4U3GbVwqGT4BFHm7oOEzg5psWIICOR0Gi9okijUdlXPHM3PxC/xj+MdGqWWvzw/LZGeZd4TPbkjmQnC3yWM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730562241; 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=c50rI2GD3TZzGa8WcxTRRBV2MLbkgNEAvy09dAxAyNs=; 
	b=HYL+wiNLB/lhs59u13AGDBiOKKRFBAqt2Seo2x506nKD/RxJCJ3OuiYynOx9SKw1GnmN9etoxuqxMEV6X07FjciStYHr7cDeUTXbhKyjiAMsG1XmrDTCNLlOn6BSTqFIPhzMCOd1pF5DxjpWUPXVZsxqPan5Sl0ETwsKdJXVqSY=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730562241;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=c50rI2GD3TZzGa8WcxTRRBV2MLbkgNEAvy09dAxAyNs=;
	b=Tww15z1bnnuZSBQ1y/rWhQT7O2aTvApHrsvUemzZ5P4qHzwT7uHuOcg0PZkiSsU8
	BPo0hLhfyero03sDsKQEQfbJk10SNgpGCHVjKm9M7g8RDJ1MTXyvzmAzKqVe3WNMB1B
	6i/xlXgNmaN0cCXkQiFiDx3nevXBcwrCl4i+xqdY=
Message-ID: <d9452783-83a0-4c18-991c-ea587fc8ae35@apertussolutions.com>
Date: Sat, 2 Nov 2024 11:43:58 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/10] x86/ucode: Turn microcode_init_cache() into a
 presmp_initcall
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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-2-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> There's no need for microcode_init_cache() to be called exactly where it is in
> __start_xen().  All that matters is it must be after xmalloc() is available
> and before APs start up.
> 
> As a consequence, microcode_init_cache() runs a little later on boot now.
> 
> 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: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/cpu/microcode/core.c    | 4 +++-
>   xen/arch/x86/include/asm/microcode.h | 1 -
>   xen/arch/x86/setup.c                 | 2 --
>   3 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
> index 8d916d891e6e..9a2cc631d2aa 100644
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -819,8 +819,9 @@ static int __init early_update_cache(const void *data, size_t len)
>       return rc;
>   }
>   
> -int __init microcode_init_cache(struct boot_info *bi)
> +static int __init cf_check microcode_init_cache(void)
>   {
> +    struct boot_info *bi = &xen_boot_info;

For context, the current function definition didn't have *bi const 
because it will become necessary later update state in bi. So it is 
natural for it to remain as such by getting the reference from global.

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 16:06:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 16:06:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829491.1244453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Gdh-0006IC-Ew; Sat, 02 Nov 2024 16:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829491.1244453; Sat, 02 Nov 2024 16:06: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 1t7Gdh-0006I5-C9; Sat, 02 Nov 2024 16:06:13 +0000
Received: by outflank-mailman (input) for mailman id 829491;
 Sat, 02 Nov 2024 16:06: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Gdg-0006Hz-L5
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 16:06:12 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a87b93a-9934-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 17:06:02 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730563555588553.9300586114913;
 Sat, 2 Nov 2024 09:05:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a87b93a-9934-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVhODdiOTNhLTk5MzQtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTYzNTYyLjc5NDcwOSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730563557; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=EsGoqlZfo44P6g57kuLH8OYV/TzMSxXMpkOPo85ViW2IVYOK/8BKZnOSCfP2YZgsb9RSzIs3kJN0vA2d1iyILR9GWinzd9LOujIpK6Gux4yTu7YKPRTVRNAOaAmfJ4krIlhbfgVd5B6ZIYN14Q+Gl55btr8JWfhdbDOifHcZwWQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730563557; 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=n2CDV7e8ydz8WXHNAsmH56z8tCWwjsJOCGkZfFciXGw=; 
	b=S1u0CjJNHp/1roet2yn2jAiCVVCMEAC5E6bx/PVufVtK5fW+v8n0Xa5nkL2k6IDI9+jc4IH+Z97hRO4LHzBGyQ49iQbujSZ2quhvYsLzJ3WtsxwJwGLP8pTVyvU/pXt2Rdzwjx/mmZK5GYuWs2IOyZXtB70lU140TAp0kQjyBtw=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730563557;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=n2CDV7e8ydz8WXHNAsmH56z8tCWwjsJOCGkZfFciXGw=;
	b=WgpFgrAuVIvVXZPx//ftwuWYpOluL/O96KmQfKogE/3TVXpBqWky1qzff3hZ1X/F
	uNBngyTBaMAAfIJ5w7kJz68laJGJaQEuyGyAJrSeJMfGroP0LhBTLFzNftT0KB0gy1W
	L+axsSqvWubg3T6oNSO2VNnHyErqLsoab0YcxWeU=
Message-ID: <8ad34ea1-e84e-4a18-9bd6-03b04f324882@apertussolutions.com>
Date: Sat, 2 Nov 2024 12:05:54 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/10] x86/ucode: Delete the microcode_init() initcall
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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> The comment highlights just how bogus this really is.  Being an initcall, the
> boot allocator is long gone, and bootstrap_unmap() is a no-op.
> 
> The fact there is nothing to do should be a giant red flag about the validity
> of the mappings "being freed".  Indeed, they both constitute use-after-frees.
> 
> We could move the size/data/end clobbering into microcode_init_cache() which
> is the final consumer of the information, but we're intending to delete these
> static variables entirely, and it's less churn to just leave them dangling for
> a few patches.
> 
> 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: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> After the $N'th rearranging, this could actually be merged into "x86/ucode:
> Drop ucode_mod and ucode_blob" with no effect on the intermediate patches.
> ---

Not sure if this helps, but for clarification sake, the module itself is 
freed by discard_initial_images() and ucode_mod is __initdata and will 
be cleaned up with the rest of _initdata. This function is called after 
the last user of ucode_mod and the call to bootstrap_unmap() perpetuates 
the assumption that some how the underlying module has remained mapped. 
There is not any condition where this function does anything that would 
affect the execution of the hypervisor. It frees nothing and sets the 
value of a unit local variable that is no longer used shortly before the 
backing memory is freed.

As to patch ordering, I have no opinion.

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 16:07:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 16:07:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829496.1244464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7GfA-0006oz-OY; Sat, 02 Nov 2024 16:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829496.1244464; Sat, 02 Nov 2024 16:07: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 1t7GfA-0006os-Ls; Sat, 02 Nov 2024 16:07:44 +0000
Received: by outflank-mailman (input) for mailman id 829496;
 Sat, 02 Nov 2024 16:07: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Gf9-0006oi-Rb
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 16:07:43 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9511604d-9934-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 17:07:40 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730563654426548.9313518201419;
 Sat, 2 Nov 2024 09:07:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9511604d-9934-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk1MTE2MDRkLTk5MzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTYzNjYwLjY4MzM0NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730563655; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=JaXPibpD3NZp6roNtrcmvAij0U3YaHfNWXlPmWL4Tjplkqcz1AUr+3+BgoOs2B7pua9hM5AzJX92tIhVCrcDayuwXpJO5C7yU3HiL2yqI8oy1sdHj79+BB6H0ixUR0Saiv9zwU8KdtA0EmgQHjA9bKycr46A1JNiocBQZ7LEptE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730563655; 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=+UkhMJm458gChJYM7FpKbWH9/6biV05OQCv4FeSWsG0=; 
	b=LbmxDgTT4vkZUOq93i9WJ36EPBSFT3XefGXBao3rjE5lbHhs5nV2uUfLgKFsgp32CG53mm/Ckzaz3Llv6JM8p6Czcgu/ufesMrwz7hgi2in7S+im+FGrQu+UL1NO6g6U8+kioTUsC01c9bcczhGuS43/CGvjExc6H4XLBSmV8sI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730563655;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=+UkhMJm458gChJYM7FpKbWH9/6biV05OQCv4FeSWsG0=;
	b=NdahAKzJqYMdqJCXBkmLwxV7PXMO0gYejuUFejLsk/2w5NRmzFN6zZ12xNgvlWg4
	pS+rl6ok6JoR8/iNq58t523BwWBdRCvnpKa0FV4eRYBl3nF/lZ+AcmCi8NeLKq5cFJk
	uOBi6q3tHtqWljOBDLvx9zriBghaUEu8Jlinrnd4=
Message-ID: <8dcb2d28-cbf0-4236-99d2-9605a4406e38@apertussolutions.com>
Date: Sat, 2 Nov 2024 12:07:33 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/10] x86/ucode: Break early_microcode_load() out of
 early_microcode_init()
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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> microcode_grab_module() and early_microcode_update_cpu() are logically one
> task that passes state via static variables.
> 
> We intend to delete said static variables, so start by moving these functions
> out of early_microcode_init().
> 
> 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: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 16:08:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 16:08:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829501.1244474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Gfy-0007Kd-1j; Sat, 02 Nov 2024 16:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829501.1244474; Sat, 02 Nov 2024 16:08: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 1t7Gfx-0007KW-U1; Sat, 02 Nov 2024 16:08:33 +0000
Received: by outflank-mailman (input) for mailman id 829501;
 Sat, 02 Nov 2024 16:08: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Gfw-0007KO-T4
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 16:08:32 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2d9d3c3-9934-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 17:08:30 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730563703954441.23462835858766;
 Sat, 2 Nov 2024 09:08:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2d9d3c3-9934-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIyZDlkM2MzLTk5MzQtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTYzNzEwLjc5NDk5NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730563705; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=VPO7hrM1w8ASjvVEbyV2K1Y0NwFtSPJopyWReyTf5pXYFCcLLRtTp4C645UJMZn2VSL7nb14hnfyiQHfqp4eFm7fvRdArM8iX2H50bRwU4cH4kKLWqJWF0PFh/Gkp07wpCg0HsQw+Bs8AfmmCAUWljCLP4nTXR7kxItlQMy4pc0=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730563705; 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=C3wpKZ80RmQoX+M4JOB8WjCvMCfcjXUNazjjLl9Tlpk=; 
	b=ZxJmJh4P8HwyAZ4hAmu32KPK8r5TeNfCEyzuPkjxwlQ4NDeeY1SYjHp8Gl9Qc4brwiFjbdsRhT4CC41T0AsoYAXxSX5KxwRg143DUmaJXNaqqWMo+N3sHap4XYvBFKO4vF4cBeuY7m5mUfVO/QeQoXJUGJ+Q0pno4OkkkpMA4nI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730563705;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=C3wpKZ80RmQoX+M4JOB8WjCvMCfcjXUNazjjLl9Tlpk=;
	b=hz6l8ReKY7Ni0bWHXmQsG9OEznSKUcV86NfxUtYVtTOp7RjGPEXoodBzmU35uzQU
	8vK0w+jpBy/o7G9z4H6yvywS/uX4SUxatF0wPPZxaZ43ePuKVXYCl1q3FGG5lb6CF6k
	b21ew4V7xzODZQ3i3ncWKCq7ta8hwYLoNwvGQ2JA=
Message-ID: <86254623-0864-46ee-a545-a3ebda871aa1@apertussolutions.com>
Date: Sat, 2 Nov 2024 12:08:22 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/10] x86/ucode: Fold early_microcode_update_cpu() 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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-5-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> Diff-wise, as early_microcode_update_cpu() is the larger function, this more
> closely resembles "merge early_microcode_load() into it's single callee", but
> the end result is the same.
> 
> At the same time, rename the len variable to size.  This is for better
> consistency with existing logic, and to reduce churn later.
> 
> 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: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 16:33:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 16:33:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829515.1244484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7H3p-0003E8-TT; Sat, 02 Nov 2024 16:33:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829515.1244484; Sat, 02 Nov 2024 16:33: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 1t7H3p-0003E1-QR; Sat, 02 Nov 2024 16:33:13 +0000
Received: by outflank-mailman (input) for mailman id 829515;
 Sat, 02 Nov 2024 16:33: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7H3o-0003Dv-9U
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 16:33:12 +0000
Received: from sender3-of-o57.zoho.com (sender3-of-o57.zoho.com
 [136.143.184.57]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23447041-9938-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 17:33:07 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730565182351194.75751678778875;
 Sat, 2 Nov 2024 09:33:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23447041-9938-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg0LjU3IiwiaGVsbyI6InNlbmRlcjMtb2YtbzU3LnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIzNDQ3MDQxLTk5MzgtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY1MTg4LjA3MDMyNSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730565183; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=P5GreseDsdwy9ML2Uy1z0Gz3pbMlrjarfEd9/tTnuFL5FjD/k4gdU7W9s/cLrKGiFIM+YWXsYmlr0qdP/Fo+w4Ep6gBz69oxxTz6iI41hlII5l3G6Jtd8NioCUJAOaqunCLS8nGgv5LnzVKKATvkmEuFtTIzQfQpmiRmRednpJc=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730565183; 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=577al6AUsH/YZfxszpyCrhb8GwB1W6lNnp/itBUhGu0=; 
	b=hCsu9My0xmwZWe62OxZmi3HnfndYgtBVhHEHh/nO9v5kmK8IKDC5ChMDpRMKJqm4MtCOwOWyxHiUBE6e+4R5WMl4l8gYXtvauJjKSN7nZCGuRT0WM4ocpAfTMOwnRC7qkGtV9tMVn3j5D+WJ0NDmE1dN8qBNYwI66pmCTS+t6Xg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730565183;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=577al6AUsH/YZfxszpyCrhb8GwB1W6lNnp/itBUhGu0=;
	b=eeQg1hytESvGu7mvqhNEoy3eGL+ZQiktyUr6/S6a0EJyRRkaAkU8FQ1Tfx0QSBAv
	ROf0qXE1cIySDijo6bvcBFnuOC+sb6cTflWTeAS2EqlhtXa2O2r8i30+qHqgKECnXEY
	M0pWZoJjJgKollhoLCp3hLGkZ9pq7xjkUjd8LcKo=
Message-ID: <d68a6509-a79e-4ea7-ad39-da77243a36e7@apertussolutions.com>
Date: Sat, 2 Nov 2024 12:33:01 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/10] x86/ucode: Fold microcode_grab_module() into its
 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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-6-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> 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: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/cpu/microcode/core.c | 23 +++++++++--------------
>   1 file changed, 9 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
> index 0b00e70f3b07..4c4003bf9687 100644
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -205,19 +205,6 @@ static void __init microcode_scan_module(struct boot_info *bi)
>       }
>   }
>   
> -static void __init microcode_grab_module(struct boot_info *bi)
> -{
> -    if ( ucode_mod_idx < 0 )
> -        ucode_mod_idx += bi->nr_modules;
> -    if ( ucode_mod_idx <= 0 || ucode_mod_idx >= bi->nr_modules ||
> -         !__test_and_clear_bit(ucode_mod_idx, bi->module_map) )
> -        goto scan;
> -    ucode_mod = *bi->mods[ucode_mod_idx].mod;
> -scan:
> -    if ( ucode_scan )
> -        microcode_scan_module(bi);
> -}
> -
>   static struct microcode_ops __ro_after_init ucode_ops;
>   
>   static DEFINE_SPINLOCK(microcode_mutex);
> @@ -831,7 +818,15 @@ static int __init early_microcode_load(struct boot_info *bi)
>       size_t size;
>       struct microcode_patch *patch;
>   
> -    microcode_grab_module(bi);
> +    if ( ucode_mod_idx < 0 )
> +        ucode_mod_idx += bi->nr_modules;
> +    if ( ucode_mod_idx <= 0 || ucode_mod_idx >= bi->nr_modules ||
> +         !__test_and_clear_bit(ucode_mod_idx, bi->module_map) )
> +        goto scan;
> +    ucode_mod = *bi->mods[ucode_mod_idx].mod;
> + scan:
> +    if ( ucode_scan )
> +        microcode_scan_module(bi);
>   
>       if ( !ucode_mod.mod_end && !ucode_blob.size )
>           return 0;

Just a suggestion, but would it be useful to add a comment to explain 
the three conditions of ucode_mod_idx that are being handled before 
scanning is attempted? These being negative value, a valid module index, 
and module index wasn't already claimed in the module map.

Otherwise,

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 16:42:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 16:42:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829525.1244494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7HCu-00058Z-S3; Sat, 02 Nov 2024 16:42:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829525.1244494; Sat, 02 Nov 2024 16:42: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 1t7HCu-00058S-Om; Sat, 02 Nov 2024 16:42:36 +0000
Received: by outflank-mailman (input) for mailman id 829525;
 Sat, 02 Nov 2024 16:42: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HCt-00058M-Q6
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 16:42:35 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72cf0089-9939-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 17:42:31 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730565744126272.650446673846;
 Sat, 2 Nov 2024 09:42:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72cf0089-9939-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcyY2YwMDg5LTk5MzktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTY1NzUxLjg5Nzc0NSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730565745; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=WtWX5O+OOWgeU6GDDTxwKkXeKlJZLNpCyzw9zG6glQcAtUW2ACAdZ3NFzm395YxTm2llmKxK7ZFEKwx0Q/20kqyRL9YoXRM5oIHeOyJ6sGN6FHPLnB7UgNixE+VACA2kKSzlNhuBvAdQFAczj7qtBH9o7jw7AJspO0O+FsleS5Q=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730565745; 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=U9p2RjgPxBhXuYtmg+T3Hy/9H4zyhyFyRanWavga3x4=; 
	b=QiEkbfXnlD4M9pIvtHfw5XHDwQYfZHNuBmoI54oopN4ziuhmCz+YKzFZGXXCRKcRt98rCMOp+X74HpWZQdseImCcJ9RnXQr4NIvf5qelzMffyitIlJK+gf0GIKa6trF6IktCzX1ZfJb4BXjq0xwzWUe5CH7wAg+hQLRINmR3kb4=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730565745;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=U9p2RjgPxBhXuYtmg+T3Hy/9H4zyhyFyRanWavga3x4=;
	b=bLNwaIcKbcH+4ZCJ8xXDBDIysIQnjWoSUweAeRmfAqFWQomph7Feho9FICcCl8h5
	sTx5fOqKQ2PhCSz2x4AFiKPj4iBv6IsFsBx6sXb6w/IIWLnc8rwEgNzA0W7rj+Dki1r
	z4K8sU0E85SRsK+omjRspfhus6UQCy4V17w3Hj6c=
Message-ID: <35ce38ec-9bc1-41c6-84da-a623807d1225@apertussolutions.com>
Date: Sat, 2 Nov 2024 12:42:22 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/10] x86/ucode: Enforce invariant about module selection
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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-7-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> The work to add the `ucode=nmi` cmdline option left a subtle corner case.
> Both scan and an explicit index could be selected, and we could really find a
> CPIO archive and explicit microcode file.
> 
> Worse, because the if/else chains for processing ucode_{blob,mod} are opposite
> ways around in early_microcode_load() and microcode_init_cache(), we can
> genuinely perform early microcode loading from the CPIO archive, then cache
> from the explicit file.
> 
> Therefore, enforce that only one selection method can be active.
> 
> Rename ucode_{scan,mod_idx} to have an opt_ prefix.  This is both for
> consistency with the rest of Xen, and to guarantee that we've got all
> instances of the variables covered in this change.  Explain how they're use.
> During cmdline/config parsing, always update both variables in pairs.
> 
> In early_microcode_load(), ASSERT() the invariant just in case.  Use a local
> variable for idx rather than operating on the static; we're the only consume
> of the value.
> 
> Expand the index selection logic with comments and warnings to the user when
> something went wrong.
> 
> Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load ucode")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> Despite the fixes tag, this can't be backported (at least not in this form).

This provides a much more consistent/predictable behavior.

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 16:49:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 16:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829532.1244503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7HJN-00061F-Gu; Sat, 02 Nov 2024 16:49:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829532.1244503; Sat, 02 Nov 2024 16: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 1t7HJN-000618-EO; Sat, 02 Nov 2024 16:49:17 +0000
Received: by outflank-mailman (input) for mailman id 829532;
 Sat, 02 Nov 2024 16: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HJM-000612-BG
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 16:49:16 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62db50d4-993a-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 17:49:13 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730566147898571.2782656192873;
 Sat, 2 Nov 2024 09:49:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62db50d4-993a-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYyZGI1MGQ0LTk5M2EtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY2MTUzLjgxMTAyLCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1730566148; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=N/MCIear0WfUWPVNx1z8tgxkBdGYNHxGASnoDU4iWjAETHDmOua8ARIrzHfwcNC5VQUHsG34AsUpgLi1oIcB9m+KG5fPXwpWIflL2W/S3KidxKzN30eNWpADQ50o6/L5lZXMaoJZkyr+cnTO+lcjJ1rowKB0Td5rI8agt2s+xjQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730566148; 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=aejNDPzweKfKj+uKqKlhuimy4h5lVIEJw5FIk8qjYAQ=; 
	b=bQKcXJGiK1ko09eJ2gS9mgUBjEvJGntbH2D7nxzN1Ds8va+h+bhS0p31ExvtDbIVo2wnzY/ij7py+PkKcsOY2cKH1DHYQ03Hquk0QpT/2jz5v2zZM4d5Pt49U76ixQbkvbaHo06XyR3iCyXAwydUxy3X7brxyQlJKjtxqeA8F9Y=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730566148;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=aejNDPzweKfKj+uKqKlhuimy4h5lVIEJw5FIk8qjYAQ=;
	b=lBKLKDUV27ifUrF4yztVYXgiGxnXhCZdpFKFtPZUsBOZK6+7eIOsZU5JGNpvOIn3
	zrfMoT3h087OsSPYxIPJ7Pe7gGNKwyoeryEnWwPlLDbYXIDC/gDmqVNSB3N+q4wkYzG
	pmMPF4oyaRyo6vwATmqDB2cmqFmC4uL1znPDlFSk=
Message-ID: <a57677e6-429f-4b54-91bf-3933581d1150@apertussolutions.com>
Date: Sat, 2 Nov 2024 12:49:06 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/10] x86/ucode: Move the CPIO path string into
 microcode_ops
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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-8-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-8-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> We've got a perfectly good vendor abstraction already for microcode.  No need
> for a second ad-hoc one in microcode_scan_module().
> 
> This is in preparation to use ucode_ops.cpio_path in multiple places.
> 
> These paths are only used during __init, so take the opportunity to move them
> into __initconst.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 16:51:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 16:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829537.1244514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7HLq-0007Tn-VI; Sat, 02 Nov 2024 16:51:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829537.1244514; Sat, 02 Nov 2024 16:51: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 1t7HLq-0007Tg-Ry; Sat, 02 Nov 2024 16:51:50 +0000
Received: by outflank-mailman (input) for mailman id 829537;
 Sat, 02 Nov 2024 16:51: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HLp-0007Ta-Jj
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 16:51:49 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be816e62-993a-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 17:51:47 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730566301270207.68241430009266;
 Sat, 2 Nov 2024 09:51:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be816e62-993a-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJlODE2ZTYyLTk5M2EtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY2MzA3LjM3NjEzNywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730566303; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=CxoNgkRl/esMCHFaUPs6iTdQ42HFYo4aJizuEotBnBYpaIVA4NoYt1jFqK8LULVtyaN16mQVri3LkkcpvDqKOixBAlBQ+e9eHsDm04V5bx5fjAvPchpw+LBi3ossoER58IsUfXGsXFeWIB2+dwq9dEVCHtOtF3SxkuusvGif4tc=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730566303; 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=VOL5fOcacaBF/uk3UOY/VDMzifJ5yz8EJ2MI1F0MqEE=; 
	b=LZCAhDRNSTZjWpBzdw9vPlp1GSl2M9Gdd1aSCjYvp2Z00q48JxN76IV1H60uHMCk1fgSN/yD6y7MbOqzEAhLfsV62X25q6MZunojnECUlVVTwKzmmT/alkqTOXoQw2PjcWSoJA5HoJVo3F3jcNW5s14cIF23jr/8imFCsqE/4ek=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730566303;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=VOL5fOcacaBF/uk3UOY/VDMzifJ5yz8EJ2MI1F0MqEE=;
	b=ETDCelcgtcqNJEf0o/d75hJAIjJ49bj5svT+qdeJ+SQc34XYxXHYcLSzWz0bwML6
	Pa+g5koLBR8tQ//XCGQd/npICbL9dPw/bICJ/RnFw2M/OlhtfV1C180RHn1bcwbepdT
	xZ7QryTCQbI704rCJ2jj5MOGdhQBr6y2j8H4ORZ8=
Message-ID: <2590fe4c-4f0b-47e0-a3a2-73e1b9c753d9@apertussolutions.com>
Date: Sat, 2 Nov 2024 12:51:40 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/10] x86/ucode: Use bootstrap_unmap() in
 early_microcode_load()
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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-9-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-9-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> If bootstrap_map() has provided a mapping, we must free it when done.  Failing
> to do so may cause a spurious failure for unrelated logic later.
> 
> Inserting a bootstrap_unmap() here does not break the use of ucode_{blob,mod}
> any more than they already are.
> 
> Add a printk noting when we didn't find a microcode patch.  It's at debug
> level, because this is the expected case on AMD Client systems, and SDPs, but
> for people trying to figure out why microcode loading isn't work, it might be
> helpful.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:14:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:14:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829545.1244523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Hho-0002NR-MF; Sat, 02 Nov 2024 17:14:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829545.1244523; Sat, 02 Nov 2024 17:14: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 1t7Hho-0002NK-Jj; Sat, 02 Nov 2024 17:14:32 +0000
Received: by outflank-mailman (input) for mailman id 829545;
 Sat, 02 Nov 2024 17:14: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Hhn-0002NC-0F
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:14:31 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e8429a5e-993d-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:14:25 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730567659333930.6940700843745;
 Sat, 2 Nov 2024 10:14:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8429a5e-993d-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU4NDI5YTVlLTk5M2QtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY3NjY2LjEzMjU5Miwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730567660; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=GEuGT4SWGAbGji9IA5xA2uVhMzH+olJ5F7VA+imKPCVlcgXlfpE5+iXf7PSO4Iifm6DpQp7q9ojFQSq5Xcvyfmf+iz5+e6N6coQcIqH7pAqu2erREgX8wOJn8zZboCEE2JQYRw279m/5OcbLcemk8txt7uadsa68z4s7csPs5x4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730567660; 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=BVRclYSW9tVf9nbPBcAG6zNkx0FUYxb3FvY6YhhGGP8=; 
	b=FoNH+wPaaBjPfuirflMINjhXAe1lCkrBwXFimWp+Ks8brR1UimKE7dGmll+16Th+ka+ZF84bnFeptQGmcbqZhOEb4+pZ3f6ETr53Skvrn+c/0GEc15ClpS5iaeUBgk/Thx5NyaNvYkh8h4rpOr4vlZvA+XK1kagIBXO3cCMD02k=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730567660;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=BVRclYSW9tVf9nbPBcAG6zNkx0FUYxb3FvY6YhhGGP8=;
	b=kgqhGLDLAzhLqOjUDT0iymdt4XCCWB7dYDDsiQXUIdw/5OyAEsU3fDptd852W9zu
	2iXU09Skf2bY48zZ5BkGDSqqcRdKp9gbhj/DBzkGsY17l3DGCapAuXOyJoDKJHG9wvW
	fNMoQA5mehqwhmKICCLkDFek1yTzUBJwJMTuWKqo=
Message-ID: <123804ff-e994-4f0f-aace-d51f3e4f6de3@apertussolutions.com>
Date: Sat, 2 Nov 2024 13:14:17 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/10] x86/ucode: Drop ucode_mod and ucode_blob
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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-10-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-10-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> Both are used to pass information from early_microcode_load() to
> microcode_init_cache(), and both constitute use-after-free's in certain cases.
> 
>   * ucode_mod is a copy of the module_t identified by `ucode=$n`.  Except it's
>     a copy from prior to Xen relocating the modules.  microcode_init_cache()
>     might happen to find the data still intact in it's old location, but it
>     might be an arbitrary part of some other module.
> 
>   * ucode_blob is a stashed pointer to a bootstrap_map() which becomes invalid
>     the moment control returns to __start_xen(), where other logic is free to
>     to make temporary mappings.  This was even noticed and
>     microcode_init_cache() adjusted to "fix" the stashed pointers.
> 
> The information which should be passed between these two functions is which
> module to look in.  Introduce early_mod_idx for this purpose.  opt_scan can be
> reused to distinguish between CPIO archives and raw containers.
> 
> Notably this means microcode_init_cache() doesn't need to scan all modules any
> more; we know exactly which one to look in.  However, we do re-parse the CPIO
> header for simplicity.
> 
> Furthermore, microcode_init_cache(), being a presmp_initcall does not need to
> use bootstrap_map() to access modules; it can use mfn_to_virt() directly,
> which avoids needing to funnel exit paths through bootstrap_unmap().
> 
> Fold microcode_scan_module() into what is now it's single caller.  It operates
> on the function-wide idx/data/size state which allows for a unified "found"
> path irrespective of module selection method.
> 
> This resolves all issues to do with holding pointers (physical or virtual)
> across returning to __start_xen().
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:15:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:15:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829551.1244533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Hj6-0002v0-0L; Sat, 02 Nov 2024 17:15:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829551.1244533; Sat, 02 Nov 2024 17:15: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 1t7Hj5-0002ut-Tp; Sat, 02 Nov 2024 17:15:51 +0000
Received: by outflank-mailman (input) for mailman id 829551;
 Sat, 02 Nov 2024 17: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Hj3-0002uj-R2
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:15:49 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19063a49-993e-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:15:47 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173056774025455.43185237431601;
 Sat, 2 Nov 2024 10:15:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19063a49-993e-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE5MDYzYTQ5LTk5M2UtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY3NzQ3LjcxNTE1Niwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730567742; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=l6FXH4SD2BCbR/Mky2ny7yVYQ+muQzxn19b5hhep1hT59y24aLgO7jxJnt/pOibP20uMjENy3wcSVd9vT+zsj9rjFdaSR2SDKU4MzI6lS6AYWmMb0E2eAocbu/Gz3C6+gdr2yhXLIGtZo6pwwKBS8CJ/49tFJympbbyNvPBEJl4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730567742; 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=X/1eYTu5iCclYZG5/QUy7XmL1x0wKedDmLPIgk5btTM=; 
	b=geNXYWpswKuc6OKbMY2JZ5N9+i9UgOP7h/KuqwRQhlXJ8IQAewh1Wf8wZhitgAbSGu5y53fuy9V5WKYM/4Uw+fAdz9w3fY0KxhvsomjKw3d+cC3ipqs9DiEyZfEXHOe9df2Z9sNmBMAZyWr/uBmlmV7osw2t4L5qGW/bUhIsJdg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730567742;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=X/1eYTu5iCclYZG5/QUy7XmL1x0wKedDmLPIgk5btTM=;
	b=dMlt6eSxBuy1UmjzntaeQsEgj9X8c/mpxymRRn5OyJSJnsKWTgm3ym0ZQq67ya1J
	l+a1h/O6WWQEZOtYKgb7nXrWcdiRliva2Ri9rR7GrkvAMVLSxsgquPlguEf/cDwD01d
	bYG1oVTKwW/IoluiSW030BC1dhI1Z1IpMlfTA0+g=
Message-ID: <e251758a-40f2-413b-b827-64570f7dfd5e@apertussolutions.com>
Date: Sat, 2 Nov 2024 13:15:38 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/10] x86/ucode: Fold early_update_cache() into its
 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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-11-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241028091856.2151603-11-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 10/28/24 05:18, Andrew Cooper wrote:
> The data pointer is known good, so the -ENOMEM path is unnecessary.  However,
> if we find no patch, something's wrong seeing as early_microcode_init()
> indicated it was happy.
> 
> We are the entity initialising the cache, so we don't need the complexity of
> using microcode_update_cache().  Just assert the cache is empty, and populate
> 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: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:26:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:26:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829558.1244544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Ht3-0004rH-Qu; Sat, 02 Nov 2024 17:26:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829558.1244544; Sat, 02 Nov 2024 17:26: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 1t7Ht3-0004rA-No; Sat, 02 Nov 2024 17:26:09 +0000
Received: by outflank-mailman (input) for mailman id 829558;
 Sat, 02 Nov 2024 17:26: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Ht3-0004r4-5N
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:26:09 +0000
Received: from sender3-of-o58.zoho.com (sender3-of-o58.zoho.com
 [136.143.184.58]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 890307cd-993f-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 18:26:04 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568359546348.61697156812056;
 Sat, 2 Nov 2024 10:25:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 890307cd-993f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg0LjU4IiwiaGVsbyI6InNlbmRlcjMtb2YtbzU4LnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg5MDMwN2NkLTk5M2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTY4MzY1LjA4NTk0Nywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568360; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=m6iQUdM7QXGzaJg8S46epEMWGeCjtEg7t3fPhviumku1xVPv6yBIX/NZeCKpW8n8DdIGIZpblsHw7U1czPgXfPGEGudRdZ5jNZ7Apv2HFlZMZllCASxSD7N0OIpstHOkIwa5uLnfbfM3VEAw6614w5kgGbaupQq7g033TzSIL28=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568360; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=il1JViybWyHheCMCN2+4oo7CBayxr+aCr0X6TPXrHy8=; 
	b=WF8jeDpspO7yWvNIRmIJGeyZglXv1spbscF1tzC7eXcYwpZFnZtq0VnkYWq89lbnJfGdhyS58kcGkrpES1L/I4K2Chhvc3NCtnKh4pNo6zfbom+Qk7s5DvdvMzWvEjplkxsBttiYgYZONRtrVasuXRkB8NrvzQhWLEIWK1biTBU=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568360;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=il1JViybWyHheCMCN2+4oo7CBayxr+aCr0X6TPXrHy8=;
	b=gDlWE7Ht88TmWTAYG/aj85uW0kVVnDjgK4MneYJwfcCPCJSAJHstmZ6ks/e0Bw0e
	A4eYvM2aAk5XVpfG5OcZibBSLO8cBSdXbrPs10rPdkbnr8QV/zsCRLcjJ++zNkoGjCZ
	+KBCUX/tBQ4ND/lUHJrFFaWtdCOdfi5q/71QrObU=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@amd.com
Subject: [PATCH 00/12]  Boot modules for Hyperlaunch
Date: Sat,  2 Nov 2024 13:25:39 -0400
Message-Id: <20241102172551.17233-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The Boot Modules for Hyperlaunch series is an effort to split out preliminary
changes necessary for the introduction of the Hyperlaunch domain builder
logic. These preliminary changes revolve around introducing the struct
boot_module and struct boot_domain structures. This includes converting the
dom0 construction path to use these structures. These abstractions lay the
groundwork to transform and extend the dom0 construction logic into a limited,
but general domain builder.

The splitting of Hyperlaunch into a set of series are twofold, to reduce the
effort in reviewing a much larger series, and to reduce the effort in handling
the knock-on effects to the construction logic from requested review changes.

Much thanks to AMD for supporting this work.

!!NOTE on v8!!
For this version a complete re-organization of the changes were made with the
concept that three tasks were being carried out that were intertwined in the past
versions. These three tasks were 1. capturing the state tracking and
enrichment, 2. removing the use of module_t to track where a boot module is
located in memory, and 3. abstract the domain construction state. The first
eight patches address task 1, task 2 is address with patch nine, and the
remaining addresses task 3.

Lastly it should be noted that this series builds/relies upon Andy Cooper's
"x86/ucode: Fix module-handling use-after-free's" series.

Documentation on Hyperlaunch:
https://wiki.xenproject.org/wiki/Hyperlaunch

Original Hyperlaunch v1 patch series:
https://lists.xenproject.org/archives/html/xen-devel/2022-07/msg00345.html

V/r,
Daniel P. Smith

Changes since v7:
- patches re-organized with some collapsing into others

Changes since v6:
- Dropped patches that were merged from v5
- patch 8 title and commit message rewritten
- boot module interator patch merged with xsm patch, its first use
- incorporated review requests
- made additional style optimizations as a result of review requests

Changes since v5:
- switched to per patch change logs
- incorporated review requests

Changes since v4:
- added requested inline code comments
- moved instance of struct boot_info to unit level and extern'ed
- array of struct boot_module moved into struct boot_info
- renamed function to multiboot_fill_bootinfo, now returns *struct boot_info
- multiboot_fill_bootinfo changed to take multiboot_info_t addr as param
- added missing guard that checked there were multiboot1/2 modules passed
- renmaed struct elements per the review
- fixed errant commit messages per the review
- corrected coding style per review
- attempted to repalce all open codings of page/addr translations touched 
- unified use of `bi` as var name for pointer ref to struct boot_info
- when appropriate, ensure variables where typed, eg size_t, paddr_t, etc.
- dropped all uses of "a = b = c"

Changes since v3:
- reduced scope to x86 only
- broke changes into a smaller chunks with a linear progression
- concerns about deconflicting with Arm deferred
- conversion from mb1 to boot modules no longer attempted at entry points
- the temporary conversion function is now the permenant means to convert
- incorporated suggestion from Andy Cooper for handling bootstrap_map

Changes since v2:
- combined v2 patches 7 and 8 for common review
- rebased the v2 series onto the current tip of staging (sorry)
- fixed the placement of the patch changelogs
- provided the changes description in the cover letter

Changes since v1:
- the v2 and v3 series implement functionality from v1 patches 2-4
    - v2 series objective is to enable efficient patch review in support
      of merging the functionality into the hypervisor. It implements a
      subset of the v1 series, incorporating changes from community
      feedback.
- the bootstrap map is made accessible early in the v2 series via both
  multiboot and boot module arguments until later in the series where
  multiboot use is retired. This allows for incremental conversion across
  several patches from multiboot to boot modules.
- the 32-bit x86 boot environment header is removed, and changes are
  made to allow the new common bootinfo headers to be used instead.
- Arm and RISC-V architecture bootinfo headers are added to ensure that
  builds on those architectures can complete correctly.
- The KConfig patch to set the maximum number of boot modules allowed
  is not included in this series, replaced with a static maximum define.

Daniel P. Smith (12):
  x86/boot: introduce boot module types
  x86/boot: eliminate module_map
  x86/boot: introduce boot module flags
  x86/boot: introduce module release
  x86/boot: move headroom to boot modules
  x86/boot: relocate kextra into boot info
  x86/boot: add cmdline_pa to struct boot_module
  x86/boot: convert domain construction to use boot info
  x86/boot: add start and size fields to struct boot_module
  x86/boot: introduce boot domain
  x86/boot: introduce domid field to struct boot_domain
  x86/boot: add cmdline to struct boot_domain

 xen/arch/x86/cpu/microcode/core.c     |  23 +--
 xen/arch/x86/dom0_build.c             |  10 +-
 xen/arch/x86/hvm/dom0_build.c         |  46 ++---
 xen/arch/x86/include/asm/bootdomain.h |  37 ++++
 xen/arch/x86/include/asm/bootinfo.h   |  96 ++++++++++-
 xen/arch/x86/include/asm/dom0_build.h |  12 +-
 xen/arch/x86/include/asm/setup.h      |  10 +-
 xen/arch/x86/pv/dom0_build.c          |  72 ++++----
 xen/arch/x86/setup.c                  | 233 +++++++++++++++-----------
 xen/xsm/xsm_core.c                    |   5 +
 xen/xsm/xsm_policy.c                  |  18 +-
 11 files changed, 356 insertions(+), 206 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/bootdomain.h

-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:26:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:26:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829559.1244554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7HtG-0005AD-79; Sat, 02 Nov 2024 17:26:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829559.1244554; Sat, 02 Nov 2024 17: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 1t7HtG-0005A0-4D; Sat, 02 Nov 2024 17:26:22 +0000
Received: by outflank-mailman (input) for mailman id 829559;
 Sat, 02 Nov 2024 17:26: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HtF-0004r4-7a
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:26:21 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8ef6b234-993f-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 18:26:14 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568360842714.6163680866581;
 Sat, 2 Nov 2024 10:26:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ef6b234-993f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhlZjZiMjM0LTk5M2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTY4Mzc1LjA0MDUwMSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568367; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=gOXvqeIJINXmDJf/CC0P5TlgB3n0EUwvGeb85hEV3ewSRZFI1GOG1Kv0dEwF4cw3zEjQC0aO2A1bJe4YcKq7pBRlyywkOMvGNym+OwxYxllX+4fcfptq1HDgUUoL0hFhW0vc5xgwh8F6CsdLZtNoP5MEPj+OKExfrAUQjX6VDPU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568367; h=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=Gr0Bo47Cp6rQWLc3HgBA4fLt5SBG4Kw79tWuOGibWjw=; 
	b=YEHhRXWhPRKmxq7TQtkZ+2NLoZaFumFTmmeQ137suNCGxKEPtACcFjD81jKRKwYwiwMrWuc/DIAlfmsAzMo50Gx0til4OmfzmjCFJZVCRIEzq6AoVPUhP42On9AlUbS9myf4F3ho0Q28wGN21+qMbQAPdMJ9OkNoHpwp5zHhlZg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568367;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=Gr0Bo47Cp6rQWLc3HgBA4fLt5SBG4Kw79tWuOGibWjw=;
	b=RSOHPynlurMFkn2C/yLIJc7VqCGWAZbSj0T8VUjlBC1zsODpkFSCXw4fA1BkvS5g
	KlAsWOBO82LVMkBk5FtJai825y1aPt9oiDzPk520On/6eE9gd/nF7OHrI8jLmIoqEc9
	gT1DaT+I26byylqYUu8mQ1JaGDCURtkPG/WQGbcM=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 01/12] x86/boot: introduce boot module types
Date: Sat,  2 Nov 2024 13:25:40 -0400
Message-Id: <20241102172551.17233-2-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

This commit introduces module types for the types of boot modules that may be
passed to Xen. These include xen, kernel, ramdisk, microcode, and xsm policy.
This reduces the need for hard coded order assumptions and global variables to
be used by consumers of boot modules, such as domain construction.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v7:
- merged the addition of microcode and xsm boot mod types

Changes since v5:
- added guard around initrd type assignment
- removed a missed rebase artifact
---
 xen/arch/x86/cpu/microcode/core.c   |  1 +
 xen/arch/x86/include/asm/bootinfo.h | 12 ++++++++++++
 xen/arch/x86/setup.c                |  4 ++++
 xen/xsm/xsm_policy.c                |  1 +
 4 files changed, 18 insertions(+)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 1fa6cbf3d364..f46464241557 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -845,6 +845,7 @@ static int __init early_microcode_load(struct boot_info *bi)
             printk(XENLOG_WARNING "Microcode: Chosen module %d already used\n", idx);
             return -ENODEV;
         }
+        bi->mods[idx].type = BOOTMOD_MICROCODE;
 
         size = bi->mods[idx].mod->mod_end;
         data = bootstrap_map_bm(&bi->mods[idx]);
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 6237da7e4d86..fc74e3b224e7 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -14,9 +14,21 @@
 /* Max number of boot modules a bootloader can provide in addition to Xen */
 #define MAX_NR_BOOTMODS 63
 
+/* Boot module binary type / purpose */
+enum bootmod_type {
+    BOOTMOD_UNKNOWN,
+    BOOTMOD_XEN,
+    BOOTMOD_KERNEL,
+    BOOTMOD_RAMDISK,
+    BOOTMOD_MICROCODE,
+    BOOTMOD_XSM_POLICY,
+};
+
 struct boot_module {
     /* Transitionary only */
     module_t *mod;
+
+    enum bootmod_type type;
 };
 
 /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 5db57e1b1af2..fac08b6242e9 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -316,6 +316,7 @@ static struct boot_info *__init multiboot_fill_boot_info(
 
     /* Variable 'i' should be one entry past the last module. */
     bi->mods[i].mod = &mods[bi->nr_modules];
+    bi->mods[i].type = BOOTMOD_XEN;
 
     return bi;
 }
@@ -1217,6 +1218,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     bitmap_fill(module_map, bi->nr_modules);
     __clear_bit(0, module_map); /* Dom0 kernel is always first */
+    bi->mods[0].type = BOOTMOD_KERNEL;
 
     if ( pvh_boot )
     {
@@ -2097,6 +2099,8 @@ void asmlinkage __init noreturn __start_xen(void)
            cpu_has_nx ? "" : "not ");
 
     initrdidx = find_first_bit(module_map, bi->nr_modules);
+    if ( initrdidx < bi->nr_modules )
+        bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
     if ( bitmap_weight(module_map, bi->nr_modules) > 1 )
         printk(XENLOG_WARNING
                "Multiple initrd candidates, picking module #%u\n",
diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c
index 35f36c6f2359..4c195411d05b 100644
--- a/xen/xsm/xsm_policy.c
+++ b/xen/xsm/xsm_policy.c
@@ -59,6 +59,7 @@ int __init xsm_multiboot_policy_init(
                    _policy_len,_policy_start);
 
             __clear_bit(i, bi->module_map);
+            bi->mods[i].type = BOOTMOD_XSM_POLICY;
             break;
 
         }
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:26:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:26:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829561.1244564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7HtQ-0005cb-G8; Sat, 02 Nov 2024 17:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829561.1244564; Sat, 02 Nov 2024 17:26: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 1t7HtQ-0005cS-CN; Sat, 02 Nov 2024 17:26:32 +0000
Received: by outflank-mailman (input) for mailman id 829561;
 Sat, 02 Nov 2024 17:26: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HtP-0004r4-6f
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:26:31 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96d410c4-993f-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 18:26:27 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173056836207092.5618760022054;
 Sat, 2 Nov 2024 10:26:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96d410c4-993f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2ZDQxMGM0LTk5M2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTY4Mzg4LjA1MDgxNCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568370; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=dUI3wqdDoph7S1XYVUqdxX/7PlP8MddaQqSm1ootBmufcxdXEaJMqVw8K34vjdI4KBqq7zLwtU7lhEcOH/pWe8Pl3rDZac4Bfc3Hranus3s4scONhAktbyEv87yZu5Az4wq/eBnyIjjKLsFC2PdaVNrexZs11cp56Gkh3xGfEdE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568370; h=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=jNx/3SoBTvToEoU/tE6YgPkXOEv7nkcy+Lso0iBfWHw=; 
	b=UR/wiT+YM+Y65CIH865oeH3gvFR5Nitkv+sVej56QIeOq/9yNljGY1kwA6DqcHJUzLgRHllIOsRZDquPEJKiFzur66RQJkpcxDjm7fcJGWo9+TFkXCJTW5rlyaR1n/A04fEB9uhrrv+ZQLNFqH+noLTReSKnL5dRsQFz9VTGcm8=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568370;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=jNx/3SoBTvToEoU/tE6YgPkXOEv7nkcy+Lso0iBfWHw=;
	b=l2cIrvL8nj8VguIribLhqPtiBZT8nVI2hnN3x49fw0YdwUYHRll3Nat6vQb3GKjp
	k7BoL9fuw+dFuCLdUokcD19fXNzdwmyaoHVv9iy2bjcn6kNcZP9RYaqwPWUxfkh2S9H
	R57L9dfAH64Cfb+OKc5fODglwxhOcFPDC0K7XDxE=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 02/12] x86/boot: eliminate module_map
Date: Sat,  2 Nov 2024 13:25:41 -0400
Message-Id: <20241102172551.17233-3-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

With all boot modules now labeled by type, it is no longer necessary to
track whether a boot module was identified via the module_map bitmap.

Introduce a set of helpers to search the list of boot modules based on type and
the reference type, pointer or array index, desired. Then drop all uses of
setting a bit in module_map and replace its use for looping with the helpers.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v7:
- collapse the three module_map patches into one,
  - x86/boot: remove module_map usage from microcode loading
  - x86/boot: remove module_map usage from xsm policy loading
  - x86/boot: remove module_map usage by ramdisk loading
---
 xen/arch/x86/cpu/microcode/core.c   | 12 ++++-----
 xen/arch/x86/include/asm/bootinfo.h | 42 ++++++++++++++++++++++++++++-
 xen/arch/x86/setup.c                | 28 +++++++++++--------
 xen/xsm/xsm_policy.c                | 19 +++++--------
 4 files changed, 70 insertions(+), 31 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index f46464241557..b09cf83249f6 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -790,15 +790,13 @@ static int __init early_microcode_load(struct boot_info *bi)
 
     if ( opt_scan ) /* Scan for a CPIO archive */
     {
-        for ( idx = 1; idx < bi->nr_modules; ++idx )
+        for_each_boot_module_by_type(idx, bi, BOOTMOD_UNKNOWN)
         {
+            struct boot_module *bm = &bi->mods[idx];
             struct cpio_data cd;
 
-            if ( !test_bit(idx, bi->module_map) )
-                continue;
-
-            size = bi->mods[idx].mod->mod_end;
-            data = bootstrap_map_bm(&bi->mods[idx]);
+            size = bm->mod->mod_end;
+            data = bootstrap_map_bm(bm);
             if ( !data )
             {
                 printk(XENLOG_WARNING "Microcode: Could not map module %d, size %zu\n",
@@ -840,7 +838,7 @@ static int __init early_microcode_load(struct boot_info *bi)
             return -ENODEV;
         }
 
-        if ( !__test_and_clear_bit(idx, bi->module_map) )
+        if ( bi->mods[idx].type != BOOTMOD_UNKNOWN )
         {
             printk(XENLOG_WARNING "Microcode: Chosen module %d already used\n", idx);
             return -ENODEV;
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index fc74e3b224e7..37dfcc14fa7d 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -43,10 +43,50 @@ struct boot_info {
     size_t memmap_length;
 
     unsigned int nr_modules;
-    unsigned long *module_map; /* Temporary */
     struct boot_module mods[MAX_NR_BOOTMODS + 1];
 };
 
+/*
+ * next_boot_module_index:
+ *     Finds the next boot module of type t, starting at array index start.
+ *
+ * Returns:
+ *      Success - index in boot_module array
+ *      Failure - a value greater than MAX_NR_BOOTMODS
+ */
+static inline unsigned int __init next_boot_module_index(
+    const struct boot_info *bi, enum bootmod_type t, unsigned int start)
+{
+    unsigned int i;
+
+    if ( t == BOOTMOD_XEN )
+        return bi->nr_modules;
+
+    for ( i = start; i < bi->nr_modules; i++ )
+    {
+        if ( bi->mods[i].type == t )
+            return i;
+    }
+
+    return MAX_NR_BOOTMODS + 1;
+}
+
+/*
+ * first_boot_module_index:
+ *     Finds the first boot module of type t.
+ *
+ * Returns:
+ *      Success - index in boot_module array
+ *      Failure - a value greater than MAX_NR_BOOTMODS
+ */
+#define first_boot_module_index(bi, t)              \
+    next_boot_module_index(bi, t, 0)
+
+#define for_each_boot_module_by_type(i, b, t)       \
+    for ( i = first_boot_module_index(b, t);        \
+          i <= (b)->nr_modules;                     \
+          i = next_boot_module_index(b, t, i + 1) )
+
 #endif /* X86_BOOTINFO_H */
 
 /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index fac08b6242e9..92dbdfe12a3d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1034,7 +1034,7 @@ void asmlinkage __init noreturn __start_xen(void)
     struct cpu_info *info = get_cpu_info(), *bsp_info;
     unsigned int initrdidx, num_parked = 0;
     struct boot_info *bi;
-    unsigned long nr_pages, raw_max_page, modules_headroom, module_map[1];
+    unsigned long nr_pages, raw_max_page, modules_headroom;
     int i, j, e820_warn = 0, bytes = 0;
     unsigned long eb_start, eb_end;
     bool acpi_boot_table_init_done = false, relocated = false;
@@ -1097,8 +1097,6 @@ void asmlinkage __init noreturn __start_xen(void)
         ASSERT(multiboot_ptr < MB(1) || xen_phys_start);
     }
 
-    bi->module_map = module_map; /* Temporary */
-
     /* Parse the command-line options. */
     if ( (kextra = strstr(bi->cmdline, " -- ")) != NULL )
     {
@@ -1216,8 +1214,7 @@ void asmlinkage __init noreturn __start_xen(void)
                bi->nr_modules);
     }
 
-    bitmap_fill(module_map, bi->nr_modules);
-    __clear_bit(0, module_map); /* Dom0 kernel is always first */
+    /* Dom0 kernel is always first */
     bi->mods[0].type = BOOTMOD_KERNEL;
 
     if ( pvh_boot )
@@ -2098,13 +2095,22 @@ void asmlinkage __init noreturn __start_xen(void)
            cpu_has_nx ? XENLOG_INFO : XENLOG_WARNING "Warning: ",
            cpu_has_nx ? "" : "not ");
 
-    initrdidx = find_first_bit(module_map, bi->nr_modules);
-    if ( initrdidx < bi->nr_modules )
+    /*
+     * At this point all capabilities that consume boot modules should have
+     * claimed their boot modules. Find the first unclaimed boot module and
+     * claim it as the initrd ramdisk. Do a second search to see if there are
+     * any remaining unclaimed boot modules, and report them as unusued initrd
+     * candidates.
+     */
+    initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
+    if ( initrdidx < MAX_NR_BOOTMODS )
+    {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
-    if ( bitmap_weight(module_map, bi->nr_modules) > 1 )
-        printk(XENLOG_WARNING
-               "Multiple initrd candidates, picking module #%u\n",
-               initrdidx);
+        if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMODS )
+            printk(XENLOG_WARNING
+                   "Multiple initrd candidates, picking module #%u\n",
+                   initrdidx);
+    }
 
     /*
      * We're going to setup domain0 using the module(s) that we stashed safely
diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c
index 4c195411d05b..12c9de5a1fbf 100644
--- a/xen/xsm/xsm_policy.c
+++ b/xen/xsm/xsm_policy.c
@@ -33,22 +33,18 @@
 int __init xsm_multiboot_policy_init(
     struct boot_info *bi, void **policy_buffer, size_t *policy_size)
 {
-    int i;
+    unsigned int i;
     int rc = 0;
     u32 *_policy_start;
     unsigned long _policy_len;
 
-    /*
-     * Try all modules and see whichever could be the binary policy.
-     * Adjust module_map for the module that is the binary policy.
-     */
-    for ( i = bi->nr_modules - 1; i >= 1; i-- )
+    /* Try all unknown modules and see whichever could be the binary policy. */
+    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
     {
-        if ( !test_bit(i, bi->module_map) )
-            continue;
+        struct boot_module *bm = &bi->mods[i];
 
-        _policy_start = bootstrap_map(bi->mods[i].mod);
-        _policy_len   = bi->mods[i].mod->mod_end;
+        _policy_start = bootstrap_map(bm->mod);
+        _policy_len   = bm->mod->mod_end;
 
         if ( (xsm_magic_t)(*_policy_start) == XSM_MAGIC )
         {
@@ -58,8 +54,7 @@ int __init xsm_multiboot_policy_init(
             printk("Policy len %#lx, start at %p.\n",
                    _policy_len,_policy_start);
 
-            __clear_bit(i, bi->module_map);
-            bi->mods[i].type = BOOTMOD_XSM_POLICY;
+            bm->type = BOOTMOD_XSM_POLICY;
             break;
 
         }
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:26:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:26:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829570.1244574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Hta-0006Ck-O5; Sat, 02 Nov 2024 17:26:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829570.1244574; Sat, 02 Nov 2024 17:26: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 1t7Hta-0006CY-Ki; Sat, 02 Nov 2024 17:26:42 +0000
Received: by outflank-mailman (input) for mailman id 829570;
 Sat, 02 Nov 2024 17:26: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HtZ-0005zO-H2
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:26:41 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9d21230b-993f-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:26:38 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568363326833.7879973254649;
 Sat, 2 Nov 2024 10:26:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d21230b-993f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkMjEyMzBiLTk5M2YtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY4Mzk5LjA2MDI4Mywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568371; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=HFi/r/GDxbDE0VePkjwtbYsGJYlfYuTWJfm4B/wZotDKLu0nJs12lIsd+8QHmpHE/QogUi0ekV54vPIoyL9tkYPRHXuTtvxEZP3749r7uu4uk5mTbBMnZ07J6uALm/GkbKgxMRuR+OFV/XbbTvGqPAhKRJ0Tlk3YHQa3ntZa170=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568371; h=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=cldlTjNG2X0IEi+ADcYbrRHkM0Zd7pCxKFfx6gZwAx4=; 
	b=iNk/IFq2UuGeGuMTxhzenE6No3ZT50h/u5jJwhMSESw3bzVnApGuoQhHS9HKu3jNwTt0pAfRFqEmLc3gT82Qs3xlLdoWqOSqgXFwUEC7O4Q2zQA9hmmIT1o/qd92HULNqWOOIrD1N9AaL0HTXlOh9jY/F9OZgWEWGPztLJ0OYJ4=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568371;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=cldlTjNG2X0IEi+ADcYbrRHkM0Zd7pCxKFfx6gZwAx4=;
	b=IqvHUs8veLwEkrbCuInEwuyCIKtdaL/waH4FGQWUz0NYvmSGXPfnK1v/hhvFREn6
	0xk0qiMfTGKFUhBT3052KdVw7tWOtC/rqeqfJ+gZtRfMZ3yRODYMx+xr/3Gmh4ectZ8
	G/hxksDmuROJNr7jnTP/LPw3B/G0pISSVSwyeAFI=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 03/12] x86/boot: introduce boot module flags
Date: Sat,  2 Nov 2024 13:25:42 -0400
Message-Id: <20241102172551.17233-4-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The existing startup code employs various ad-hoc state tracking about certain
boot module types by each area of the code. A boot module flags bitfield is
added to enable tracking these different states. The first state to be
transition by this commit is module relocation.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v6:
- replaced bitmask flags field with the bitfield, relocated
- slight update to commit message to mention bitfield
- dropped Rb and Ab due to approach change

Changes since v5:
- removed trailing blank line.
---
 xen/arch/x86/include/asm/bootinfo.h | 6 ++++++
 xen/arch/x86/setup.c                | 7 +++----
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 37dfcc14fa7d..0fbf36739782 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -29,6 +29,12 @@ struct boot_module {
     module_t *mod;
 
     enum bootmod_type type;
+
+    /*
+     * Module State Flags:
+     *   relocated: indicates module has been relocated in memory.
+     */
+    bool relocated:1;
 };
 
 /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 92dbdfe12a3d..d061ece0541f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1392,7 +1392,6 @@ void asmlinkage __init noreturn __start_xen(void)
             panic("Bootloader didn't honor module alignment request\n");
         bi->mods[i].mod->mod_end -= bi->mods[i].mod->mod_start;
         bi->mods[i].mod->mod_start >>= PAGE_SHIFT;
-        bi->mods[i].mod->reserved = 0;
     }
 
     /*
@@ -1508,7 +1507,7 @@ void asmlinkage __init noreturn __start_xen(void)
             unsigned long headroom = j ? 0 : modules_headroom;
             unsigned long size = PAGE_ALIGN(headroom + bm->mod->mod_end);
 
-            if ( bm->mod->reserved )
+            if ( bm->relocated )
                 continue;
 
             /* Don't overlap with other modules (or Xen itself). */
@@ -1526,7 +1525,7 @@ void asmlinkage __init noreturn __start_xen(void)
                             pfn_to_paddr(bm->mod->mod_start), bm->mod->mod_end);
                 bm->mod->mod_start = (end - size) >> PAGE_SHIFT;
                 bm->mod->mod_end += headroom;
-                bm->mod->reserved = 1;
+                bm->relocated = true;
             }
         }
 
@@ -1552,7 +1551,7 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
-    if ( modules_headroom && !bi->mods[0].mod->reserved )
+    if ( modules_headroom && !bi->mods[0].relocated )
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:26:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829575.1244584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Htl-0006nI-Vl; Sat, 02 Nov 2024 17:26:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829575.1244584; Sat, 02 Nov 2024 17:26: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 1t7Htl-0006n9-Su; Sat, 02 Nov 2024 17:26:53 +0000
Received: by outflank-mailman (input) for mailman id 829575;
 Sat, 02 Nov 2024 17:26: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Htk-0005zO-8V
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:26:52 +0000
Received: from sender3-of-o57.zoho.com (sender3-of-o57.zoho.com
 [136.143.184.57]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a396f37c-993f-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:26:49 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568365486995.6070687004028;
 Sat, 2 Nov 2024 10:26:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a396f37c-993f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg0LjU3IiwiaGVsbyI6InNlbmRlcjMtb2YtbzU3LnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImEzOTZmMzdjLTk5M2YtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY4NDA5LjYyODEzLCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1730568372; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=h/d0e3JJo5w/7SvCKkTsi3kCw1xMIg8Phnq0Njv6Wl0Q/9BrhL158pOX3T7pZQ+0H2UUPYcYfMZgc2gc268WkKjjkWpxUQXxNoJX2cTzijobcWKoMbeMDSTVGUxNue9K9j4GRWgdCfieDnfbhSfohV9gL4QyA2IKDHFIGg2b2lE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568372; h=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=hUGH3RDsDf1IJruHP2Kvrv3CdfGhOfh0xY63XM5AYas=; 
	b=gZZtJEuxMXMNrVyxcAP6O2chvCiJfrc7gsDUVuXG9MI1lPLJndg5ATz/qck2kl3CaQiS3cK4WX5enpk/8nwFN2cIFk/9kVcqr6z+uGKMSDMJtMpdPBOiBquLCGRSaKmzY9qMdcm9bPurx42zCODzr59yZeghm6ZP+YAE1NTMAcM=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568372;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=hUGH3RDsDf1IJruHP2Kvrv3CdfGhOfh0xY63XM5AYas=;
	b=MckSqtGkfpRDMv8MtYbE5UcHK+4ijbl57rLme/js6NhApym2d9OrnAlDLbdpVFZQ
	dD4mis2Fi5VWLQ/WNfERxuLCVoL+F0mNMPeG4MT1Vt8R+WCefZlrgzeIvGrh2jHQdnd
	ctZ7oZ9a4DOzO7S4dxVNcJXI2FK513pmX3PTqLsE=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 04/12] x86/boot: introduce module release
Date: Sat,  2 Nov 2024 13:25:43 -0400
Message-Id: <20241102172551.17233-5-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

A precarious approach was used to release the pages used to hold a boot module.
The precariousness stemmed from the fact that in the case of PV dom0, the
initrd module pages may be either mapped or explicitly copied into the dom0
address space. So to handle this situation, the PV dom0 construction code will
set the size of the module to zero, relying on discard_initial_images() to skip
any modules with a size of zero.

A function is introduced to release a module when it is no longer needed that
accepts a boolean parameter, free_mem, to indicate if the corresponding pages
can be freed. To track that a module has been released, the boot module flag
`released` is introduced.

The previous release model was a free all at once except those of size zeros,
which would handle any unused modules passed. The new model is one of, free
consumed module after usage is complete, thus unconsumed modules do not have a
consumer to free them. To address this, the discard_uknown_boot_modules() is
introduced and called after the last module identification occurs, initrd, to
free the pages of any boot modules that are identified as not being released.
After domain construction completes, all modules should be freed. A walk of the
boot modules is added after domain construction to validate and notify if a
module is found not to have been released.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v7:
- This is a new approach as an alternative to the `consumed` flag.
---
 xen/arch/x86/cpu/microcode/core.c   |  4 ++
 xen/arch/x86/hvm/dom0_build.c       |  7 ++--
 xen/arch/x86/include/asm/bootinfo.h |  2 +
 xen/arch/x86/include/asm/setup.h    |  3 +-
 xen/arch/x86/pv/dom0_build.c        | 20 ++--------
 xen/arch/x86/setup.c                | 57 +++++++++++++++++++++++------
 xen/xsm/xsm_core.c                  |  5 +++
 7 files changed, 67 insertions(+), 31 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index b09cf83249f6..349e857f539a 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -756,6 +756,10 @@ static int __init cf_check microcode_init_cache(void)
         return rc;
     }
 
+    /* If raw module, we can free it now */
+    if ( !opt_scan )
+        release_boot_module(&bi->mods[early_mod_idx], true);
+
     if ( !patch )
         return -ENOENT;
 
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 3dd913bdb029..a4ac262db463 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -704,6 +704,8 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
         return rc;
     }
 
+    release_module(image, true);
+
     /*
      * Find a RAM region big enough (and that doesn't overlap with the loaded
      * kernel) in order to load the initrd and the metadata. Note it could be
@@ -751,10 +753,9 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
             last_addr += len;
         }
         last_addr = ROUNDUP(last_addr, PAGE_SIZE);
-    }
 
-    /* Free temporary buffers. */
-    discard_initial_images();
+        release_module(initrd, true);
+    }
 
     if ( cmdline != NULL )
     {
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 0fbf36739782..b1549d8c8f93 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -33,8 +33,10 @@ struct boot_module {
     /*
      * Module State Flags:
      *   relocated: indicates module has been relocated in memory.
+     *   released:  indicates module's pages have been freed.
      */
     bool relocated:1;
+    bool released:1;
 };
 
 /*
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index d7ed4f40024c..d68d37a5293b 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -36,12 +36,13 @@ void setup_io_bitmap(struct domain *d);
 extern struct boot_info xen_boot_info;
 
 unsigned long initial_images_nrpages(nodeid_t node);
-void discard_initial_images(void);
+void release_module(const module_t *m, bool mapped);
 
 struct boot_module;
 void *bootstrap_map_bm(const struct boot_module *bm);
 void *bootstrap_map(const module_t *mod);
 void bootstrap_unmap(void);
+void release_boot_module(struct boot_module *bm, bool mapped);
 
 struct rangeset;
 int remove_xen_ranges(struct rangeset *r);
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index cc882bee61c3..c1f44502a1ac 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -630,9 +630,7 @@ static int __init dom0_construct(struct domain *d,
                 }
             memcpy(page_to_virt(page), mfn_to_virt(initrd->mod_start),
                    initrd_len);
-            mpt_alloc = (paddr_t)initrd->mod_start << PAGE_SHIFT;
-            init_domheap_pages(mpt_alloc,
-                               mpt_alloc + PAGE_ALIGN(initrd_len));
+            release_module(initrd, true);
             initrd->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));
         }
         else
@@ -640,18 +638,9 @@ static int __init dom0_construct(struct domain *d,
             while ( count-- )
                 if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
                     BUG();
+            release_module(initrd, false);
         }
 
-        /*
-         * We have either:
-         * - Mapped the initrd directly into dom0, or
-         * - Copied it and freed the module.
-         *
-         * Either way, tell discard_initial_images() to not free it a second
-         * time.
-         */
-        initrd->mod_end = 0;
-
         iommu_memory_setup(d, "initrd", mfn_to_page(_mfn(initrd_mfn)),
                            PFN_UP(initrd_len), &flush_flags);
     }
@@ -839,7 +828,9 @@ static int __init dom0_construct(struct domain *d,
         printk("Failed to load the kernel binary\n");
         goto out;
     }
+    /* All done with kernel, release the module pages */
     bootstrap_unmap();
+    release_module(image, true);
 
     if ( UNSET_ADDR != parms.virt_hypercall )
     {
@@ -854,9 +845,6 @@ static int __init dom0_construct(struct domain *d,
         init_hypercall_page(d, _p(parms.virt_hypercall));
     }
 
-    /* Free temporary buffers. */
-    discard_initial_images();
-
     /* Set up start info area. */
     si = (start_info_t *)vstartinfo_start;
     clear_page(si);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d061ece0541f..e6d2d25fd038 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -341,27 +341,55 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
     return nr;
 }
 
-void __init discard_initial_images(void) /* a.k.a. Free boot modules */
+void __init release_boot_module(struct boot_module *bm, bool free_mem)
+{
+    uint64_t start = pfn_to_paddr(bm->mod->mod_start);
+    uint64_t size  = bm->mod->mod_end;
+
+    if ( bm->released )
+    {
+        printk(XENLOG_WARNING "Attempt second release boot module of type %d\n",
+               bm->type);
+        return;
+    }
+
+    if ( free_mem )
+        init_domheap_pages(start, start + PAGE_ALIGN(size));
+
+    bm->released = true;
+}
+
+void __init release_module(const module_t *m, bool free_mem)
 {
     struct boot_info *bi = &xen_boot_info;
     unsigned int i;
 
-    for ( i = 0; i < bi->nr_modules; ++i )
+    for ( i = 0; i < bi->nr_modules; i++ )
     {
-        uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
-        uint64_t size  = bi->mods[i].mod->mod_end;
+        if ( bi->mods[i].mod == m )
+            release_boot_module(&bi->mods[i], free_mem);
+    }
+}
 
-        /*
-         * Sometimes the initrd is mapped, rather than copied, into dom0.
-         * Size being 0 is how we're instructed to leave the module alone.
-         */
-        if ( size == 0 )
+static void __init discard_unknown_boot_modules(void)
+{
+    struct boot_info *bi = &xen_boot_info;
+    unsigned int i, count = 0;
+
+    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
+    {
+        struct boot_module *bm = &bi->mods[i];
+
+        if ( bm == NULL || bm->released )
             continue;
 
-        init_domheap_pages(start, start + PAGE_ALIGN(size));
+        release_boot_module(bm, true);
+        count++;
     }
 
-    bi->nr_modules = 0;
+    if ( count )
+        printk(XENLOG_DEBUG "Releasing pages for uknown boot module %d\n",
+               count);
 }
 
 static void __init init_idle_domain(void)
@@ -2111,6 +2139,8 @@ void asmlinkage __init noreturn __start_xen(void)
                    initrdidx);
     }
 
+    discard_unknown_boot_modules();
+
     /*
      * We're going to setup domain0 using the module(s) that we stashed safely
      * above our heap. The second module, if present, is an initrd ramdisk.
@@ -2122,6 +2152,11 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( !dom0 )
         panic("Could not set up DOM0 guest OS\n");
 
+    /* Check and warn if any modules did not get released */
+    for ( i = 0; i < bi->nr_modules; i++ )
+        if ( !bi->mods[i].released )
+            printk(XENLOG_ERR "Boot module %d not released, memory leaked", i);
+
     heap_init_late();
 
     init_trace_bufs();
diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
index f255fb63bf6f..d5875599b63a 100644
--- a/xen/xsm/xsm_core.c
+++ b/xen/xsm/xsm_core.c
@@ -162,6 +162,11 @@ int __init xsm_multiboot_init(struct boot_info *bi)
     ret = xsm_core_init(policy_buffer, policy_size);
     bootstrap_unmap();
 
+    /* If the policy was loaded from a boot module, release it's memory */
+    ret = first_boot_module_index(bi, BOOTMOD_XSM_POLICY);
+    if ( ret >= 0 && ret < bi->nr_modules )
+        release_boot_module(&bi->mods[ret], true);
+
     return 0;
 }
 #endif
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:27:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:27:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829582.1244594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7Htv-0007N3-CH; Sat, 02 Nov 2024 17:27:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829582.1244594; Sat, 02 Nov 2024 17:27: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 1t7Htv-0007Mu-9Z; Sat, 02 Nov 2024 17:27:03 +0000
Received: by outflank-mailman (input) for mailman id 829582;
 Sat, 02 Nov 2024 17:27: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Htu-0005zO-3A
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:27:02 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a999790a-993f-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:26:59 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568366662651.7865909718565;
 Sat, 2 Nov 2024 10:26:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a999790a-993f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE5OTk3OTBhLTk5M2YtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY4NDE5Ljk1MTM0Nywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568379; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=MDs4UQlt+6cs2MV/bWPoLf5yewGv93jWyeHDuTpMW6SgVw2/JVod3CnrXWklN+pLDNKziIrJb9KVATzKRFkUxkZuokVak1GIfmKZI8C6K8lL4qVUVKMQvzDVcxyKnTcW8d8bizs3lctc4ihG6PjNksGe4w3eCDaSWz0e9tKJjfA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568379; h=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=IkU4V9zheGmMbE9F1wh08/Ap7m7WOTpvdQ1/oa+ZpD8=; 
	b=NYUw0b5xZJxFu0ddjhlUI0/2WD7p6PD+ndizVHfUaKOUjDxTg6o37hSHMrVklqUupX1pb8ndpRoyshKCX3LozvxiX9tuIkFeW98JQlrstT6VeeOjEWD3E05Ze6bKbb1OvZ1oVbclB4EBK45mjibU9ChedPKOPJc7+66XjfI9NVY=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568379;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=IkU4V9zheGmMbE9F1wh08/Ap7m7WOTpvdQ1/oa+ZpD8=;
	b=dY/uCFEpDm5b3izFTvNScs7KUuXIQXWi+S3qUfNUXqYyvWtVqtXq5U4KZBgoYpWm
	7yu8yXnXIPkgY+3iIqTr8+eMc42UmqB7W/nMPpmqS60p3qKtUgOwx3JxaQOFQC9yqTE
	J7hmKJGntWDgOtQuwd956fZieo6gAi52IyUFQocc=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 05/12] x86/boot: move headroom to boot modules
Date: Sat,  2 Nov 2024 13:25:44 -0400
Message-Id: <20241102172551.17233-6-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The purpose of struct boot_module is to encapsulate the state of boot module as
it is processed by Xen. Locating boot module state struct boot_module reduces
the number of global variables as well as the number of state variables that
must be passed around. It also lays the groundwork for hyperlaunch mult-domain
construction, where multiple instances of state variables like headroom will be
needed.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
Changes since v7:
- adopted headroom comment from Andy Cooper

Changes since v6:
- add blank line to separate comment from line above it

Changes since v5:
- reword and expand comment on headroom
- consolidated declaration and assignment
---
 xen/arch/x86/include/asm/bootinfo.h | 22 ++++++++++++++++++++++
 xen/arch/x86/setup.c                | 23 ++++++++---------------
 2 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index b1549d8c8f93..e337baa905f0 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -30,6 +30,28 @@ struct boot_module {
 
     enum bootmod_type type;
 
+    /*
+     * A boot module may need decompressing by Xen.  Headroom is an estimate of
+     * the additional space required to decompress the module.
+     *
+     * Headroom is accounted for at the start of the module.  Decompressing is
+     * done in-place with input=start, output=start-headroom, expecting the
+     * pointers to become equal (give or take some rounding) when decompression
+     * is complete.
+     *
+     * Memory layout at boot:
+     *
+     *               start ----+
+     *                         v
+     *   |<-----headroom------>|<------size------->|
+     *                         +-------------------+
+     *                         | Compressed Module |
+     *   +---------------------+-------------------+
+     *   |           Decompressed Module           |
+     *   +-----------------------------------------+
+     */
+    unsigned long headroom;
+
     /*
      * Module State Flags:
      *   relocated: indicates module has been relocated in memory.
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index e6d2d25fd038..633319d39d80 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1062,7 +1062,7 @@ void asmlinkage __init noreturn __start_xen(void)
     struct cpu_info *info = get_cpu_info(), *bsp_info;
     unsigned int initrdidx, num_parked = 0;
     struct boot_info *bi;
-    unsigned long nr_pages, raw_max_page, modules_headroom;
+    unsigned long nr_pages, raw_max_page;
     int i, j, e820_warn = 0, bytes = 0;
     unsigned long eb_start, eb_end;
     bool acpi_boot_table_init_done = false, relocated = false;
@@ -1443,7 +1443,7 @@ void asmlinkage __init noreturn __start_xen(void)
         xen->mod->mod_end   = __2M_rwdata_end - _stext;
     }
 
-    modules_headroom =
+    bi->mods[0].headroom =
         bzimage_headroom(bootstrap_map_bm(&bi->mods[0]),
                          bi->mods[0].mod->mod_end);
     bootstrap_unmap();
@@ -1526,14 +1526,7 @@ void asmlinkage __init noreturn __start_xen(void)
         for ( j = bi->nr_modules - 1; j >= 0; j-- )
         {
             struct boot_module *bm = &bi->mods[j];
-
-            /*
-             * 'headroom' is a guess for the decompressed size and
-             * decompressor overheads of mod[0] (the dom0 kernel).  When we
-             * move mod[0], we incorporate this as extra space at the start.
-             */
-            unsigned long headroom = j ? 0 : modules_headroom;
-            unsigned long size = PAGE_ALIGN(headroom + bm->mod->mod_end);
+            unsigned long size = PAGE_ALIGN(bm->headroom + bm->mod->mod_end);
 
             if ( bm->relocated )
                 continue;
@@ -1546,13 +1539,13 @@ void asmlinkage __init noreturn __start_xen(void)
                 continue;
 
             if ( s < end &&
-                 (headroom ||
+                 (bm->headroom ||
                   ((end - size) >> PAGE_SHIFT) > bm->mod->mod_start) )
             {
-                move_memory(end - size + headroom,
+                move_memory(end - size + bm->headroom,
                             pfn_to_paddr(bm->mod->mod_start), bm->mod->mod_end);
                 bm->mod->mod_start = (end - size) >> PAGE_SHIFT;
-                bm->mod->mod_end += headroom;
+                bm->mod->mod_end += bm->headroom;
                 bm->relocated = true;
             }
         }
@@ -1579,7 +1572,7 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
-    if ( modules_headroom && !bi->mods[0].relocated )
+    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
@@ -2145,7 +2138,7 @@ void asmlinkage __init noreturn __start_xen(void)
      * We're going to setup domain0 using the module(s) that we stashed safely
      * above our heap. The second module, if present, is an initrd ramdisk.
      */
-    dom0 = create_dom0(bi->mods[0].mod, modules_headroom,
+    dom0 = create_dom0(bi->mods[0].mod, bi->mods[0].headroom,
                        initrdidx < bi->nr_modules ? bi->mods[initrdidx].mod
                                                   : NULL,
                        kextra, bi->loader);
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:36:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:36:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829599.1244611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7I31-0001CL-Io; Sat, 02 Nov 2024 17:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829599.1244611; Sat, 02 Nov 2024 17:36: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 1t7I31-0001BQ-BR; Sat, 02 Nov 2024 17:36:27 +0000
Received: by outflank-mailman (input) for mailman id 829599;
 Sat, 02 Nov 2024 17:36: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Hud-0004r4-H4
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:27:47 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c42a77d5-993f-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 18:27:43 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568374182907.7832620165392;
 Sat, 2 Nov 2024 10:26:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c42a77d5-993f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM0MmE3N2Q1LTk5M2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTY4NDY0LjA5MTg2Mywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568384; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=EbK0LHLHm1J7bAzjzo7Yq0KlmM0opYOILP4NhGcy0cwwqFRBQK2+5R0mpXzZwwzGX3lURjW1Db4ASb43mRKQ6pXMkwpSXtbhgMBGfhw+zzoQ7h1LxGFq4Fiv6CI4Kc2/Q+Tc/XEH33WPwCTfMe0iA6wXIMdONmEMRs0KJBWgIYQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568384; h=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=BanyZbKdg0T0KbDMwIGAn8rkRguFwufoO5593eI1GXs=; 
	b=BYsMCPPaXAqIEOSH+Bxy87ZozWFsiuQMSxCDdu4CXUOdQX5/rnIAwc0rCE6dVNsFZ36uNeFXH/oSGNhVp+lC2Gk/oDAsV+XWifK18dxvKOLDNEZd5B0ejsukrw1Mvj7e/2/KUDD26OoWjhRsunSNwLR0I1WV9ZlM31OIpAGtb1I=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568384;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=BanyZbKdg0T0KbDMwIGAn8rkRguFwufoO5593eI1GXs=;
	b=Bnhb55YJbsmVlMOpcw5lXSIo/drVPSpd1rV5mCpptVvnBl7DgNo78EwSsIeF0wzx
	iafTEied21NF7aM85DFkp+diElAhHuGfV7begn+qlntOx9/Z4pSg9ZfEgnm2wKjZOpx
	baPbBCu8XJvp1m0OWRB+cN/bRJ2o9BZBpOUEA+Uk=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 10/12] x86/boot: introduce boot domain
Date: Sat,  2 Nov 2024 13:25:49 -0400
Message-Id: <20241102172551.17233-11-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

To begin moving toward allowing the hypervisor to construct more than one
domain at boot, a container is needed for a domain's build information.
Introduce a new header, <xen/asm/bootdomain.h>, that contains the initial
struct boot_domain that encapsulate the build information for a domain.

Add a kernel and ramdisk boot module reference along with a struct domain
reference to the new struct boot_domain. This allows a struct boot_domain
reference to be the only parameter necessary to pass down through the domain
construction call chain.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v7
- collapsed the incremental changes to the call chain into this commit
---
 xen/arch/x86/dom0_build.c             |  7 +++---
 xen/arch/x86/hvm/dom0_build.c         | 16 +++++---------
 xen/arch/x86/include/asm/bootdomain.h | 31 +++++++++++++++++++++++++++
 xen/arch/x86/include/asm/bootinfo.h   |  5 +++++
 xen/arch/x86/include/asm/dom0_build.h |  6 +++---
 xen/arch/x86/include/asm/setup.h      |  6 ++----
 xen/arch/x86/pv/dom0_build.c          | 24 +++++++--------------
 xen/arch/x86/setup.c                  | 24 +++++++++------------
 8 files changed, 68 insertions(+), 51 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/bootdomain.h

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 2276965c02bd..2f71d01a03e2 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -597,9 +597,10 @@ int __init dom0_setup_permissions(struct domain *d)
     return rc;
 }
 
-int __init construct_dom0(struct boot_info *bi, struct domain *d)
+int __init construct_dom0(struct boot_domain *bd)
 {
     int rc;
+    const struct domain *d = bd->d;
 
     /* Sanity! */
     BUG_ON(!pv_shim && d->domain_id != 0);
@@ -609,9 +610,9 @@ int __init construct_dom0(struct boot_info *bi, struct domain *d)
     process_pending_softirqs();
 
     if ( is_hvm_domain(d) )
-        rc = dom0_construct_pvh(bi, d);
+        rc = dom0_construct_pvh(bd);
     else if ( is_pv_domain(d) )
-        rc = dom0_construct_pv(bi, d);
+        rc = dom0_construct_pv(bd);
     else
         panic("Cannot construct Dom0. No guest interface available\n");
 
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index e74684f10b12..5aacfeb21fcf 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1302,25 +1302,19 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
     }
 }
 
-int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
+int __init dom0_construct_pvh(struct boot_domain *bd)
 {
     paddr_t entry, start_info;
-    struct boot_module *image;
-    struct boot_module *initrd = NULL;
+    struct boot_module *image = bd->kernel;
+    struct boot_module *initrd = bd->ramdisk;
+    struct domain *d = bd->d;
     int rc;
 
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
 
-    rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( unlikely(rc < 0 || rc > bi->nr_modules) )
+    if ( unlikely(image == NULL) )
         panic("Missing kernel boot module for %pd construction\n", d);
 
-    image = &bi->mods[rc];
-
-    rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
-    if ( rc > 0 || rc < bi->nr_modules )
-        initrd = &bi->mods[rc];
-
     if ( is_hardware_domain(d) )
     {
         /*
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
new file mode 100644
index 000000000000..12c19ab37bd8
--- /dev/null
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2024 Apertus Solutions, LLC
+ * Author: Daniel P. Smith <dpsmith@apertussolutions.com>
+ * Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
+ */
+
+#ifndef __XEN_X86_BOOTDOMAIN_H__
+#define __XEN_X86_BOOTDOMAIN_H__
+
+struct boot_module;
+struct domain;
+
+struct boot_domain {
+    struct boot_module *kernel;
+    struct boot_module *ramdisk;
+
+    struct domain *d;
+};
+
+#endif
+
+/*
+ * 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/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index a5ee90a36607..7b793ca62f19 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -10,10 +10,14 @@
 
 #include <xen/multiboot.h>
 #include <xen/types.h>
+#include <asm/bootdomain.h>
 
 /* Max number of boot modules a bootloader can provide in addition to Xen */
 #define MAX_NR_BOOTMODS 63
 
+/* Max number of boot domains that Xen can construct */
+#define MAX_NR_BOOTDOMS 1
+
 /* Boot module binary type / purpose */
 enum bootmod_type {
     BOOTMOD_UNKNOWN,
@@ -77,6 +81,7 @@ struct boot_info {
 
     unsigned int nr_modules;
     struct boot_module mods[MAX_NR_BOOTMODS + 1];
+    struct boot_domain domains[MAX_NR_BOOTDOMS];
 };
 
 /*
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 4c2193c4a982..4a75fb25a801 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -13,10 +13,10 @@ unsigned long dom0_compute_nr_pages(struct domain *d,
                                     unsigned long initrd_len);
 int dom0_setup_permissions(struct domain *d);
 
-struct boot_info;
-int dom0_construct_pv(struct boot_info *bi, struct domain *d);
+struct boot_domain;
+int dom0_construct_pv(struct boot_domain *bd);
 
-int dom0_construct_pvh(struct boot_info *bi, struct domain *d);
+int dom0_construct_pvh(struct boot_domain *bd);
 
 unsigned long dom0_paging_pages(const struct domain *d,
                                 unsigned long nr_pages);
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 0591847c57e6..4968ac38398b 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -26,10 +26,8 @@ void subarch_init_memory(void);
 
 void init_IRQ(void);
 
-struct boot_info;
-int construct_dom0(
-    struct boot_info *bi,
-    struct domain *d);
+struct boot_domain;
+int construct_dom0(struct boot_domain *bd);
 void setup_io_bitmap(struct domain *d);
 
 extern struct boot_info xen_boot_info;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 5efc650eeff0..28257bf13127 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -355,7 +355,7 @@ static struct page_info * __init alloc_chunk(struct domain *d,
     return page;
 }
 
-static int __init dom0_construct(struct boot_info *bi, struct domain *d)
+static int __init dom0_construct(struct boot_domain *bd)
 {
     int i, rc, order, machine;
     bool compatible, compat;
@@ -370,13 +370,14 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
     struct page_info *page = NULL;
     unsigned int flush_flags = 0;
     start_info_t *si;
+    struct domain *d = bd->d;
     struct vcpu *v = d->vcpu[0];
-    struct boot_module *image;
-    struct boot_module *initrd = NULL;
+    struct boot_module *image = bd->kernel;
+    struct boot_module *initrd = bd->ramdisk;
     void *image_base;
     unsigned long image_len;
     void *image_start;
-    unsigned long initrd_len = 0;
+    unsigned long initrd_len = initrd ? initrd->size : 0;
     const char *cmdline;
     l4_pgentry_t *l4tab = NULL, *l4start = NULL;
     l3_pgentry_t *l3tab = NULL, *l3start = NULL;
@@ -414,23 +415,14 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
 
     printk(XENLOG_INFO "*** Building a PV Dom%d ***\n", d->domain_id);
 
-    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( unlikely(i < 0 || i > bi->nr_modules) )
+    if ( unlikely(image == NULL) )
         panic("Missing kernel boot module for %pd construction\n", d);
 
-    image = &bi->mods[i];
     image_base = bootstrap_map_bm(image);
     image_len = image->size;
     image_start = image_base + image->headroom;
     cmdline = __va(image->cmdline_pa);
 
-    i = first_boot_module_index(bi, BOOTMOD_RAMDISK);
-    if ( i > 0 || i < bi->nr_modules )
-    {
-        initrd = &bi->mods[i];
-        initrd_len = initrd->size;
-    }
-
     d->max_pages = ~0U;
 
     if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
@@ -1066,7 +1058,7 @@ out:
     return rc;
 }
 
-int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
+int __init dom0_construct_pv(struct boot_domain *bd)
 {
     unsigned long cr4 = read_cr4();
     int rc;
@@ -1084,7 +1076,7 @@ int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
         write_cr4(cr4 & ~X86_CR4_SMAP);
     }
 
-    rc = dom0_construct(bi, d);
+    rc = dom0_construct(bd);
 
     if ( cr4 & X86_CR4_SMAP )
     {
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 18b93d6a272a..6e25a9f726c7 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -990,16 +990,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
         },
     };
+    struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
     domid_t domid;
-    struct boot_module *image;
-    unsigned int idx;
-
-    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( unlikely(idx < 0 || idx > bi->nr_modules) )
-        panic("Missing kernel boot module for building Dom0\n");
-
-    image = &bi->mods[idx];
 
     if ( opt_dom0_pvh )
     {
@@ -1026,11 +1019,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         panic("Error creating d%uv0\n", domid);
 
     /* Grab the DOM0 command line. */
-    if ( image->cmdline_pa || bi->kextra )
+    if ( bd->kernel->cmdline_pa || bi->kextra )
     {
-        if ( image->cmdline_pa )
-            safe_strcpy(
-                cmdline, cmdline_cook(__va(image->cmdline_pa), bi->loader));
+        if ( bd->kernel->cmdline_pa )
+            safe_strcpy(cmdline, cmdline_cook(__va(bd->kernel->cmdline_pa),
+                        bi->loader));
 
         if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
@@ -1052,10 +1045,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             safe_strcat(cmdline, acpi_param);
         }
 
-        image->cmdline_pa = __pa(cmdline);
+        bd->kernel->cmdline_pa = __pa(cmdline);
     }
 
-    if ( construct_dom0(bi, d) != 0 )
+    bd->d = d;
+    if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
     return d;
@@ -1255,6 +1249,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     /* Dom0 kernel is always first */
     bi->mods[0].type = BOOTMOD_KERNEL;
+    bi->domains[0].kernel = &bi->mods[0];
 
     if ( pvh_boot )
     {
@@ -2125,6 +2120,7 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
+        bi->domains[0].ramdisk = &bi->mods[initrdidx];
         if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMODS )
             printk(XENLOG_WARNING
                    "Multiple initrd candidates, picking module #%u\n",
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:36:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:36:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829598.1244604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7I31-00019U-8X; Sat, 02 Nov 2024 17:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829598.1244604; Sat, 02 Nov 2024 17:36: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 1t7I31-00019N-5s; Sat, 02 Nov 2024 17:36:27 +0000
Received: by outflank-mailman (input) for mailman id 829598;
 Sat, 02 Nov 2024 17:36: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HuK-0005zO-6m
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:27:28 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9042e17-993f-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:27:25 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568371686592.9410739240645;
 Sat, 2 Nov 2024 10:26:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9042e17-993f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI5MDQyZTE3LTk5M2YtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY4NDQ1LjYwOTg4OCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568382; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=mTxocaw2aTmmjbtNyLxeZlPAg6zz7wgDZuCq2P1ZmgTQ318SnYwvsHxs++ub8gBGADVllyy8TIp0jNLmAPUnVxrxqbAsG1jWeEOWQef07ePN2dmsbPYYcnKzYh3Gtptlfr7VPy2AiZvbG8jaEJ4MBL3tzWvkGS/VgyMx9VDjE3U=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568382; h=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=Lqch7F1xargZBo/VkvL/BtzwFfKefeZoUmZw1HodarM=; 
	b=QTwU7SPpLluNGZbz96hnXDrB1BK94BqPuCfkrHryY5Vf5qq5eUThL9vib1sGfIIH18tMkvh4M4RSvzCWYbxbLQGi2U6VhorARbRR1HcNsPFv73KKHewL0HqnLizN0rJLfznKZE9YuxoXaGMfNG1MoTNx/VffnszhOk0ahOyvwqI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568382;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=Lqch7F1xargZBo/VkvL/BtzwFfKefeZoUmZw1HodarM=;
	b=GyszozVMlcznzwc55Q8draW6XhURdi9eZotdbZmL4ZVrD/Rq4qmnsP81psy67uFb
	IV2Jjy26eexd9JM/W1IcwlHx4PP29dmLiBKHRpjtJ4JJujhNyNto7Q4A95fus7N/3yg
	X93HiWdGd9yUAn4CuFyqS2pd0w5T4BahotUszOHk=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 08/12] x86/boot: convert domain construction to use boot info
Date: Sat,  2 Nov 2024 13:25:47 -0400
Message-Id: <20241102172551.17233-9-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

With all the components used to construct dom0 encapsulated in struct boot_info
and struct boot_module, it is no longer necessary to pass all them as
parameters down the domain construction call chain. Change the parameter list
to pass the struct boot_info instance and the struct domain reference.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v5:
- renamed from "x86/boot: convert create_dom0 to use boot info"

Changes since v5:
- change headroom back to unsigned long
- make mod_idx unsigned int
---
 xen/arch/x86/dom0_build.c             |  9 ++--
 xen/arch/x86/hvm/dom0_build.c         | 49 +++++++++++++---------
 xen/arch/x86/include/asm/dom0_build.h | 13 ++----
 xen/arch/x86/include/asm/setup.h      |  7 ++--
 xen/arch/x86/pv/dom0_build.c          | 59 ++++++++++++++++-----------
 xen/arch/x86/setup.c                  | 33 ++++++++-------
 6 files changed, 95 insertions(+), 75 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 8d56705a0861..2276965c02bd 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -13,6 +13,7 @@
 #include <xen/softirq.h>
 
 #include <asm/amd.h>
+#include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
 #include <asm/guest.h>
 #include <asm/hpet.h>
@@ -596,9 +597,7 @@ int __init dom0_setup_permissions(struct domain *d)
     return rc;
 }
 
-int __init construct_dom0(struct domain *d, const module_t *image,
-                          unsigned long image_headroom, module_t *initrd,
-                          const char *cmdline)
+int __init construct_dom0(struct boot_info *bi, struct domain *d)
 {
     int rc;
 
@@ -610,9 +609,9 @@ int __init construct_dom0(struct domain *d, const module_t *image,
     process_pending_softirqs();
 
     if ( is_hvm_domain(d) )
-        rc = dom0_construct_pvh(d, image, image_headroom, initrd, cmdline);
+        rc = dom0_construct_pvh(bi, d);
     else if ( is_pv_domain(d) )
-        rc = dom0_construct_pv(d, image, image_headroom, initrd, cmdline);
+        rc = dom0_construct_pv(bi, d);
     else
         panic("Cannot construct Dom0. No guest interface available\n");
 
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index a4ac262db463..cd97f94a168a 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -16,6 +16,7 @@
 
 #include <acpi/actables.h>
 
+#include <asm/bootinfo.h>
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
 #include <asm/hvm/support.h>
@@ -642,15 +643,15 @@ static bool __init check_and_adjust_load_address(
     return true;
 }
 
-static int __init pvh_load_kernel(struct domain *d, const module_t *image,
-                                  unsigned long image_headroom,
-                                  module_t *initrd, void *image_base,
-                                  const char *cmdline, paddr_t *entry,
-                                  paddr_t *start_info_addr)
+static int __init pvh_load_kernel(
+    struct domain *d, struct boot_module *image, struct boot_module *initrd,
+    paddr_t *entry, paddr_t *start_info_addr)
 {
-    void *image_start = image_base + image_headroom;
-    unsigned long image_len = image->mod_end;
-    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
+    void *image_base = bootstrap_map_bm(image);
+    void *image_start = image_base + image->headroom;
+    unsigned long image_len = image->mod->mod_end;
+    unsigned long initrd_len = initrd ? initrd->mod->mod_end : 0;
+    const char *cmdline = __va(image->cmdline_pa);
     struct elf_binary elf;
     struct elf_dom_parms parms;
     paddr_t last_addr;
@@ -704,7 +705,7 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
         return rc;
     }
 
-    release_module(image, true);
+    release_boot_module(image, true);
 
     /*
      * Find a RAM region big enough (and that doesn't overlap with the loaded
@@ -727,8 +728,8 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
 
     if ( initrd != NULL )
     {
-        rc = hvm_copy_to_guest_phys(last_addr, mfn_to_virt(initrd->mod_start),
-                                    initrd_len, v);
+        rc = hvm_copy_to_guest_phys(
+            last_addr, mfn_to_virt(initrd->mod->mod_start), initrd_len, v);
         if ( rc )
         {
             printk("Unable to copy initrd to guest\n");
@@ -738,9 +739,9 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
         mod.paddr = last_addr;
         mod.size = initrd_len;
         last_addr += ROUNDUP(initrd_len, elf_64bit(&elf) ? 8 : 4);
-        if ( initrd->string )
+        if ( initrd->cmdline_pa )
         {
-            char *str = __va(initrd->string);
+            char *str = __va(initrd->cmdline_pa);
             size_t len = strlen(str) + 1;
 
             rc = hvm_copy_to_guest_phys(last_addr, str, len, v);
@@ -754,7 +755,7 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
         }
         last_addr = ROUNDUP(last_addr, PAGE_SIZE);
 
-        release_module(initrd, true);
+        release_boot_module(initrd, true);
     }
 
     if ( cmdline != NULL )
@@ -1301,16 +1302,25 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
     }
 }
 
-int __init dom0_construct_pvh(struct domain *d, const module_t *image,
-                              unsigned long image_headroom,
-                              module_t *initrd,
-                              const char *cmdline)
+int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
 {
     paddr_t entry, start_info;
+    struct boot_module *image;
+    struct boot_module *initrd = NULL;
     int rc;
 
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
 
+    rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    if ( unlikely(rc < 0 || rc > bi->nr_modules) )
+        panic("Missing kernel boot module for %pd construction\n", d);
+
+    image = &bi->mods[rc];
+
+    rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
+    if ( rc > 0 || rc < bi->nr_modules )
+        initrd = &bi->mods[rc];
+
     if ( is_hardware_domain(d) )
     {
         /*
@@ -1348,8 +1358,7 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image,
         return rc;
     }
 
-    rc = pvh_load_kernel(d, image, image_headroom, initrd, bootstrap_map(image),
-                         cmdline, &entry, &start_info);
+    rc = pvh_load_kernel(d, image, initrd, &entry, &start_info);
     if ( rc )
     {
         printk("Failed to load Dom0 kernel\n");
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 107c1ff98367..4c2193c4a982 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -13,15 +13,10 @@ unsigned long dom0_compute_nr_pages(struct domain *d,
                                     unsigned long initrd_len);
 int dom0_setup_permissions(struct domain *d);
 
-int dom0_construct_pv(struct domain *d, const module_t *image,
-                      unsigned long image_headroom,
-                      module_t *initrd,
-                      const char *cmdline);
-
-int dom0_construct_pvh(struct domain *d, const module_t *image,
-                       unsigned long image_headroom,
-                       module_t *initrd,
-                       const char *cmdline);
+struct boot_info;
+int dom0_construct_pv(struct boot_info *bi, struct domain *d);
+
+int dom0_construct_pvh(struct boot_info *bi, struct domain *d);
 
 unsigned long dom0_paging_pages(const struct domain *d,
                                 unsigned long nr_pages);
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index d68d37a5293b..1e23f55be51b 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -26,11 +26,10 @@ void subarch_init_memory(void);
 
 void init_IRQ(void);
 
+struct boot_info;
 int construct_dom0(
-    struct domain *d,
-    const module_t *image, unsigned long image_headroom,
-    module_t *initrd,
-    const char *cmdline);
+    struct boot_info *bi,
+    struct domain *d);
 void setup_io_bitmap(struct domain *d);
 
 extern struct boot_info xen_boot_info;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index c1f44502a1ac..594874cd8d85 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -14,6 +14,7 @@
 #include <xen/softirq.h>
 #include <xen/vga.h>
 
+#include <asm/bootinfo.h>
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
 #include <asm/guest.h>
@@ -354,11 +355,7 @@ static struct page_info * __init alloc_chunk(struct domain *d,
     return page;
 }
 
-static int __init dom0_construct(struct domain *d,
-                                 const module_t *image,
-                                 unsigned long image_headroom,
-                                 module_t *initrd,
-                                 const char *cmdline)
+static int __init dom0_construct(struct boot_info *bi, struct domain *d)
 {
     int i, rc, order, machine;
     bool compatible, compat;
@@ -374,10 +371,13 @@ static int __init dom0_construct(struct domain *d,
     unsigned int flush_flags = 0;
     start_info_t *si;
     struct vcpu *v = d->vcpu[0];
-    void *image_base = bootstrap_map(image);
-    unsigned long image_len = image->mod_end;
-    void *image_start = image_base + image_headroom;
-    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
+    struct boot_module *image;
+    struct boot_module *initrd = NULL;
+    void *image_base;
+    unsigned long image_len;
+    void *image_start;
+    unsigned long initrd_len = 0;
+    const char *cmdline;
     l4_pgentry_t *l4tab = NULL, *l4start = NULL;
     l3_pgentry_t *l3tab = NULL, *l3start = NULL;
     l2_pgentry_t *l2tab = NULL, *l2start = NULL;
@@ -414,6 +414,23 @@ static int __init dom0_construct(struct domain *d,
 
     printk(XENLOG_INFO "*** Building a PV Dom%d ***\n", d->domain_id);
 
+    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    if ( unlikely(i < 0 || i > bi->nr_modules) )
+        panic("Missing kernel boot module for %pd construction\n", d);
+
+    image = &bi->mods[i];
+    image_base = bootstrap_map_bm(image);
+    image_len = image->mod->mod_end;
+    image_start = image_base + image->headroom;
+    cmdline = __va(image->cmdline_pa);
+
+    i = first_boot_module_index(bi, BOOTMOD_RAMDISK);
+    if ( i > 0 || i < bi->nr_modules )
+    {
+        initrd = &bi->mods[i];
+        initrd_len = initrd->mod->mod_end;
+    }
+
     d->max_pages = ~0U;
 
     if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
@@ -613,7 +630,7 @@ static int __init dom0_construct(struct domain *d,
         initrd_pfn = vinitrd_start ?
                      (vinitrd_start - v_start) >> PAGE_SHIFT :
                      domain_tot_pages(d);
-        initrd_mfn = mfn = initrd->mod_start;
+        initrd_mfn = mfn = initrd->mod->mod_start;
         count = PFN_UP(initrd_len);
         if ( d->arch.physaddr_bitsize &&
              ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)) )
@@ -628,17 +645,17 @@ static int __init dom0_construct(struct domain *d,
                     free_domheap_pages(page, order);
                     page += 1UL << order;
                 }
-            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod_start),
+            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod->mod_start),
                    initrd_len);
-            release_module(initrd, true);
-            initrd->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));
+            release_boot_module(initrd, true);
+            initrd->mod->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));
         }
         else
         {
             while ( count-- )
                 if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
                     BUG();
-            release_module(initrd, false);
+            release_boot_module(initrd, false);
         }
 
         iommu_memory_setup(d, "initrd", mfn_to_page(_mfn(initrd_mfn)),
@@ -653,7 +670,7 @@ static int __init dom0_construct(struct domain *d,
                nr_pages - domain_tot_pages(d));
     if ( initrd )
     {
-        mpt_alloc = (paddr_t)initrd->mod_start << PAGE_SHIFT;
+        mpt_alloc = (paddr_t)initrd->mod->mod_start << PAGE_SHIFT;
         printk("\n Init. ramdisk: %"PRIpaddr"->%"PRIpaddr,
                mpt_alloc, mpt_alloc + initrd_len);
     }
@@ -830,7 +847,7 @@ static int __init dom0_construct(struct domain *d,
     }
     /* All done with kernel, release the module pages */
     bootstrap_unmap();
-    release_module(image, true);
+    release_boot_module(image, true);
 
     if ( UNSET_ADDR != parms.virt_hypercall )
     {
@@ -880,7 +897,7 @@ static int __init dom0_construct(struct domain *d,
         if ( pfn >= initrd_pfn )
         {
             if ( pfn < initrd_pfn + PFN_UP(initrd_len) )
-                mfn = initrd->mod_start + (pfn - initrd_pfn);
+                mfn = initrd->mod->mod_start + (pfn - initrd_pfn);
             else
                 mfn -= PFN_UP(initrd_len);
         }
@@ -1048,11 +1065,7 @@ out:
     return rc;
 }
 
-int __init dom0_construct_pv(struct domain *d,
-                             const module_t *image,
-                             unsigned long image_headroom,
-                             module_t *initrd,
-                             const char *cmdline)
+int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
 {
     unsigned long cr4 = read_cr4();
     int rc;
@@ -1070,7 +1083,7 @@ int __init dom0_construct_pv(struct domain *d,
         write_cr4(cr4 & ~X86_CR4_SMAP);
     }
 
-    rc = dom0_construct(d, image, image_headroom, initrd, cmdline);
+    rc = dom0_construct(bi, d);
 
     if ( cr4 & X86_CR4_SMAP )
     {
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index aba9df8620ef..d9785acf89b6 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -977,10 +977,7 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
     return n;
 }
 
-static struct domain *__init create_dom0(const module_t *image,
-                                         unsigned long headroom,
-                                         module_t *initrd, const char *kextra,
-                                         const char *loader)
+static struct domain *__init create_dom0(struct boot_info *bi)
 {
     static char __initdata cmdline[MAX_GUEST_CMDLINE];
 
@@ -997,6 +994,14 @@ static struct domain *__init create_dom0(const module_t *image,
     };
     struct domain *d;
     domid_t domid;
+    struct boot_module *image;
+    unsigned int idx;
+
+    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    if ( unlikely(idx < 0 || idx > bi->nr_modules) )
+        panic("Missing kernel boot module for building Dom0\n");
+
+    image = &bi->mods[idx];
 
     if ( opt_dom0_pvh )
     {
@@ -1023,14 +1028,15 @@ static struct domain *__init create_dom0(const module_t *image,
         panic("Error creating d%uv0\n", domid);
 
     /* Grab the DOM0 command line. */
-    if ( image->string || kextra )
+    if ( image->cmdline_pa || bi->kextra )
     {
-        if ( image->string )
-            safe_strcpy(cmdline, cmdline_cook(__va(image->string), loader));
+        if ( image->cmdline_pa )
+            safe_strcpy(
+                cmdline, cmdline_cook(__va(image->cmdline_pa), bi->loader));
 
-        if ( kextra )
+        if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
-            safe_strcat(cmdline, kextra);
+            safe_strcat(cmdline, bi->kextra);
 
         /* Append any extra parameters. */
         if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
@@ -1047,9 +1053,11 @@ static struct domain *__init create_dom0(const module_t *image,
             safe_strcat(cmdline, " acpi=");
             safe_strcat(cmdline, acpi_param);
         }
+
+        image->cmdline_pa = __pa(cmdline);
     }
 
-    if ( construct_dom0(d, image, headroom, initrd, cmdline) != 0 )
+    if ( construct_dom0(bi, d) != 0 )
         panic("Could not construct domain 0\n");
 
     return d;
@@ -2143,10 +2151,7 @@ void asmlinkage __init noreturn __start_xen(void)
      * We're going to setup domain0 using the module(s) that we stashed safely
      * above our heap. The second module, if present, is an initrd ramdisk.
      */
-    dom0 = create_dom0(bi->mods[0].mod, bi->mods[0].headroom,
-                       initrdidx < bi->nr_modules ? bi->mods[initrdidx].mod
-                                                  : NULL,
-                       bi->kextra, bi->loader);
+    dom0 = create_dom0(bi);
     if ( !dom0 )
         panic("Could not set up DOM0 guest OS\n");
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:37:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829614.1244624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7I49-0002a7-Rb; Sat, 02 Nov 2024 17:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829614.1244624; Sat, 02 Nov 2024 17: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 1t7I49-0002a0-Oo; Sat, 02 Nov 2024 17:37:37 +0000
Received: by outflank-mailman (input) for mailman id 829614;
 Sat, 02 Nov 2024 17:37: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Hu3-0005zO-Ly
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:27:11 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aef35b32-993f-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:27:08 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568368262930.5138048817796;
 Sat, 2 Nov 2024 10:26:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aef35b32-993f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFlZjM1YjMyLTk5M2YtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY4NDI4Ljk0MTQxMSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568380; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=eseagGIWxSDS05FvDZ1vaX8iLM4KFZPv5hQwSOpgiaW1krIObSkWnLUcPHkjQjtNkpPznvEmBW8576Sips77kyH7RVKF65oOJFw7GAZlappArKt8pdu4LMM5f4CvwsBg8RQS9uVlFSdH3fHI/udJKiH9lcYhewpCvhyoBykff28=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568380; h=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=9OF7jr3+XP9qd3JfzPB9uF0lHAJIr0GJpZTZwT478GE=; 
	b=l2nApuwB+FebU4gSAE8VsY+yHxacx1YWedZy26toqYRn2/JHxE1A32b5SaMYwjpXlE9n+8d5eFAz9+FA+w2iXhRFILFzuqQvsLk9wsTAcoqQ1xlT1YcSL5Vep/z92+9NWAWvuzDrPQHl6Bx0izxgzMT2KxHtdcUiZvgJAVevE6k=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568380;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=9OF7jr3+XP9qd3JfzPB9uF0lHAJIr0GJpZTZwT478GE=;
	b=RhvDDm3GI4rx4r3df+BhgoYdgln8UhlBBLXT0tZUOPxOw1cq/6osnOdYt1NjTB4U
	XNJZtLi9KnCkU2AWv3TR6pscoLvbpkPDofcfFEMC4bphO4j27vQUH4eqwMbL2kaD8Vi
	n7IENw/XiWaBp7HQdvlI9czN/h1r640bDLZcYhVA=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 06/12] x86/boot: relocate kextra into boot info
Date: Sat,  2 Nov 2024 13:25:45 -0400
Message-Id: <20241102172551.17233-7-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Move kextra into struct boot_info, thus no longer needed to be passed as a
parameter to create_dom0.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/include/asm/bootinfo.h | 1 +
 xen/arch/x86/setup.c                | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index e337baa905f0..6638da597073 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -68,6 +68,7 @@ struct boot_module {
 struct boot_info {
     const char *loader;
     const char *cmdline;
+    const char *kextra;
 
     paddr_t memmap_addr;
     size_t memmap_length;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 633319d39d80..425467a0d977 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1136,6 +1136,7 @@ void asmlinkage __init noreturn __start_xen(void)
         *kextra = '\0';
         kextra += 3;
         while ( kextra[1] == ' ' ) kextra++;
+        bi->kextra = kextra;
     }
     cmdline_parse(bi->cmdline);
 
@@ -2141,7 +2142,7 @@ void asmlinkage __init noreturn __start_xen(void)
     dom0 = create_dom0(bi->mods[0].mod, bi->mods[0].headroom,
                        initrdidx < bi->nr_modules ? bi->mods[initrdidx].mod
                                                   : NULL,
-                       kextra, bi->loader);
+                       bi->kextra, bi->loader);
     if ( !dom0 )
         panic("Could not set up DOM0 guest OS\n");
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:37:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829615.1244631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7I4A-0002dM-7B; Sat, 02 Nov 2024 17:37:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829615.1244631; Sat, 02 Nov 2024 17:37: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 1t7I49-0002cE-Vt; Sat, 02 Nov 2024 17:37:37 +0000
Received: by outflank-mailman (input) for mailman id 829615;
 Sat, 02 Nov 2024 17:37: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HuT-0005zO-Mk
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:27:37 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bea09c15-993f-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:27:34 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568372958973.0588263222835;
 Sat, 2 Nov 2024 10:26:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bea09c15-993f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJlYTA5YzE1LTk5M2YtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY4NDU1LjAyOTYyOSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568383; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=OMPoFSoueO83CWAIaqTMkpDlMSMCtn2hOusrNcYNXQl3sNtsC4QKoLbKUzNQJKFY/oUofmA2IS4rPE7/5d3LFEGx8g3MjuGq8SFEFMzjYM/duefSMXfqJ6SDUTMdjpD7Y+/VhbaKxUyp9ETOdqPkUlLI+sKy1dhXMcQ9wXT1QRs=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568383; h=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=vCeE70zl4N0GlCwS3QvCnOR8vYrFq8AHq0hy/S+7yQ0=; 
	b=oA2STv2bb9th+YTZ13EEEWc+pQFXqFd8raWxDgm1wcq3t7++2MflaXS5pmFXaXLfx/uaFAWfmkli9Nn0dVYHTADR7D129/Rzkn6DrJsn0CDgjQjgumUtov62ueWyaCOjf5nvOhXLvxOOUyvwrOkJqqafwbW2S8+v7UJCw+fstco=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568383;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=vCeE70zl4N0GlCwS3QvCnOR8vYrFq8AHq0hy/S+7yQ0=;
	b=S8fnDq3uPgVq4fEhPI629C6RAwGc1s64AkEoF7lmvZc1+qoW5I6SUc7zyiDzLKlZ
	Ak0WkIfciMSYBgq5Z0eqsu3ViRcJkIVzQh9/x2I0rDc+PinmAhc5lKwWD3ZM1KRS6E9
	J1cylnVi4OjPuEOe+UzPd+uheLos2B3NsXS9k8sw=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 09/12] x86/boot: add start and size fields to struct boot_module
Date: Sat,  2 Nov 2024 13:25:48 -0400
Message-Id: <20241102172551.17233-10-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the start and size fields to struct boot_module and
assigns their value during boot_info construction. All uses of module_t to get
the address and size of a module are replaced with start and size.

The EFI entry point is a special case, as the EFI file loading boot service may
load a file beyond the 4G barrier. As a result, to make the address fit in the
32bit integer used by the MB1 module_t structure, the frame number is stored in
mod_start and size in mod_end. Until the EFI entry point is enlightened to work
with boot_info and boot_module, multiboot_fill_boot_info will handle the
alternate values in mod_start and mod_end when EFI is detected.

A result of the switch to start/size removes all uses of the mod field in
struct boot_modules, along with the uses of bootstra_map() and release_module()
functions. With all usage gone, they all are dropped here.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
--
Changes since v7:
- add the start/size change to bootstrap_map_bm()
- convert all BM start/size when introduced, consolidates:
    x86/boot: populate boot module for xen entry
    x86/boot: transition relocation calculations to struct boot_module
- consolidates all the removal commits

Changes since v6:
- put the efi conversion for mod_start and mod_end back along with check
- dropped unnecessary cast
- updated the population of start and size fields to take into account efi

Changes since v5:
- switched EFI population of mod_start/mod_end to addresses

a#    edit 336ac1fc0019 x86/boot: introduce boot domain
---
 xen/arch/x86/cpu/microcode/core.c   |   8 +--
 xen/arch/x86/hvm/dom0_build.c       |   6 +-
 xen/arch/x86/include/asm/bootinfo.h |   6 +-
 xen/arch/x86/include/asm/setup.h    |   2 -
 xen/arch/x86/pv/dom0_build.c        |  17 ++---
 xen/arch/x86/setup.c                | 100 ++++++++++++----------------
 xen/xsm/xsm_policy.c                |   4 +-
 7 files changed, 64 insertions(+), 79 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 349e857f539a..891e6d29c7f4 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -726,8 +726,8 @@ static int __init cf_check microcode_init_cache(void)
         /* early_microcode_load() didn't leave us any work to do. */
         return 0;
 
-    size = bi->mods[early_mod_idx].mod->mod_end;
-    data = __mfn_to_virt(bi->mods[early_mod_idx].mod->mod_start);
+    size = bi->mods[early_mod_idx].size;
+    data = __va(bi->mods[early_mod_idx].start);
 
     /*
      * If opt_scan is set, we're looking for a CPIO archive rather than a raw
@@ -799,7 +799,7 @@ static int __init early_microcode_load(struct boot_info *bi)
             struct boot_module *bm = &bi->mods[idx];
             struct cpio_data cd;
 
-            size = bm->mod->mod_end;
+            size = bm->size;
             data = bootstrap_map_bm(bm);
             if ( !data )
             {
@@ -849,7 +849,7 @@ static int __init early_microcode_load(struct boot_info *bi)
         }
         bi->mods[idx].type = BOOTMOD_MICROCODE;
 
-        size = bi->mods[idx].mod->mod_end;
+        size = bi->mods[idx].size;
         data = bootstrap_map_bm(&bi->mods[idx]);
         if ( !data )
         {
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index cd97f94a168a..e74684f10b12 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -649,8 +649,8 @@ static int __init pvh_load_kernel(
 {
     void *image_base = bootstrap_map_bm(image);
     void *image_start = image_base + image->headroom;
-    unsigned long image_len = image->mod->mod_end;
-    unsigned long initrd_len = initrd ? initrd->mod->mod_end : 0;
+    unsigned long image_len = image->size;
+    unsigned long initrd_len = initrd ? initrd->size : 0;
     const char *cmdline = __va(image->cmdline_pa);
     struct elf_binary elf;
     struct elf_dom_parms parms;
@@ -729,7 +729,7 @@ static int __init pvh_load_kernel(
     if ( initrd != NULL )
     {
         rc = hvm_copy_to_guest_phys(
-            last_addr, mfn_to_virt(initrd->mod->mod_start), initrd_len, v);
+            last_addr, __va(initrd->start), initrd_len, v);
         if ( rc )
         {
             printk("Unable to copy initrd to guest\n");
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 819c8224d715..a5ee90a36607 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -25,9 +25,6 @@ enum bootmod_type {
 };
 
 struct boot_module {
-    /* Transitionary only */
-    module_t *mod;
-
     enum bootmod_type type;
 
     /*
@@ -61,6 +58,9 @@ struct boot_module {
     bool released:1;
 
     paddr_t cmdline_pa;
+
+    paddr_t start;
+    size_t size;
 };
 
 /*
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 1e23f55be51b..0591847c57e6 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -35,11 +35,9 @@ void setup_io_bitmap(struct domain *d);
 extern struct boot_info xen_boot_info;
 
 unsigned long initial_images_nrpages(nodeid_t node);
-void release_module(const module_t *m, bool mapped);
 
 struct boot_module;
 void *bootstrap_map_bm(const struct boot_module *bm);
-void *bootstrap_map(const module_t *mod);
 void bootstrap_unmap(void);
 void release_boot_module(struct boot_module *bm, bool mapped);
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 594874cd8d85..5efc650eeff0 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -420,7 +420,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
 
     image = &bi->mods[i];
     image_base = bootstrap_map_bm(image);
-    image_len = image->mod->mod_end;
+    image_len = image->size;
     image_start = image_base + image->headroom;
     cmdline = __va(image->cmdline_pa);
 
@@ -428,7 +428,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
     if ( i > 0 || i < bi->nr_modules )
     {
         initrd = &bi->mods[i];
-        initrd_len = initrd->mod->mod_end;
+        initrd_len = initrd->size;
     }
 
     d->max_pages = ~0U;
@@ -630,7 +630,8 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
         initrd_pfn = vinitrd_start ?
                      (vinitrd_start - v_start) >> PAGE_SHIFT :
                      domain_tot_pages(d);
-        initrd_mfn = mfn = initrd->mod->mod_start;
+        initrd_mfn = paddr_to_pfn(initrd->start);
+        mfn = initrd_mfn;
         count = PFN_UP(initrd_len);
         if ( d->arch.physaddr_bitsize &&
              ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)) )
@@ -645,10 +646,10 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
                     free_domheap_pages(page, order);
                     page += 1UL << order;
                 }
-            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod->mod_start),
-                   initrd_len);
+            memcpy(page_to_virt(page), __va(initrd->start), initrd_len);
             release_boot_module(initrd, true);
-            initrd->mod->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));
+            initrd_mfn = mfn_x(page_to_mfn(page));
+            initrd->start = pfn_to_paddr(initrd_mfn);
         }
         else
         {
@@ -670,7 +671,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
                nr_pages - domain_tot_pages(d));
     if ( initrd )
     {
-        mpt_alloc = (paddr_t)initrd->mod->mod_start << PAGE_SHIFT;
+        mpt_alloc = initrd->start;
         printk("\n Init. ramdisk: %"PRIpaddr"->%"PRIpaddr,
                mpt_alloc, mpt_alloc + initrd_len);
     }
@@ -897,7 +898,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
         if ( pfn >= initrd_pfn )
         {
             if ( pfn < initrd_pfn + PFN_UP(initrd_len) )
-                mfn = initrd->mod->mod_start + (pfn - initrd_pfn);
+                mfn = paddr_to_pfn(initrd->start) + (pfn - initrd_pfn);
             else
                 mfn -= PFN_UP(initrd_len);
         }
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d9785acf89b6..18b93d6a272a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -313,13 +313,29 @@ static struct boot_info *__init multiboot_fill_boot_info(
      */
     for ( i = 0; i < MAX_NR_BOOTMODS && i < bi->nr_modules; i++ )
     {
-        bi->mods[i].mod = &mods[i];
-
         bi->mods[i].cmdline_pa = mods[i].string;
+
+        if ( !efi_enabled(EFI_LOADER) )
+        {
+            /*
+             * The EFI loader gives us modules which are already frame/size.
+             * Switch back to address/size.
+             */
+            bi->mods[i].start = mods[i].mod_start;
+            bi->mods[i].size = mods[i].mod_end - mods[i].mod_start;
+        }
+        else
+        {
+            /*
+             * PVH and BIOS loaders give us modules which are start/end.
+             * Switch to address/size.
+             */
+            bi->mods[i].start = pfn_to_paddr(mods[i].mod_start);
+            bi->mods[i].size = mods[i].mod_end;
+        }
     }
 
     /* Variable 'i' should be one entry past the last module. */
-    bi->mods[i].mod = &mods[bi->nr_modules];
     bi->mods[i].type = BOOTMOD_XEN;
 
     return bi;
@@ -335,8 +351,8 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
 
     for ( nr = i = 0; i < bi->nr_modules; ++i )
     {
-        unsigned long start = bi->mods[i].mod->mod_start;
-        unsigned long end   = start + PFN_UP(bi->mods[i].mod->mod_end);
+        unsigned long start = bi->mods[i].start;
+        unsigned long end   = start + PFN_UP(bi->mods[i].size);
 
         if ( end > node_start && node_end > start )
             nr += min(node_end, end) - max(node_start, start);
@@ -347,8 +363,8 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
 
 void __init release_boot_module(struct boot_module *bm, bool free_mem)
 {
-    uint64_t start = pfn_to_paddr(bm->mod->mod_start);
-    uint64_t size  = bm->mod->mod_end;
+    uint64_t start = bm->start;
+    uint64_t size  = bm->size;
 
     if ( bm->released )
     {
@@ -363,18 +379,6 @@ void __init release_boot_module(struct boot_module *bm, bool free_mem)
     bm->released = true;
 }
 
-void __init release_module(const module_t *m, bool free_mem)
-{
-    struct boot_info *bi = &xen_boot_info;
-    unsigned int i;
-
-    for ( i = 0; i < bi->nr_modules; i++ )
-    {
-        if ( bi->mods[i].mod == m )
-            release_boot_module(&bi->mods[i], free_mem);
-    }
-}
-
 static void __init discard_unknown_boot_modules(void)
 {
     struct boot_info *bi = &xen_boot_info;
@@ -509,15 +513,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
     return ret;
 }
 
-void *__init bootstrap_map(const module_t *mod)
-{
-    return bootstrap_map_addr(pfn_to_paddr(mod->mod_start),
-                              pfn_to_paddr(mod->mod_start) + mod->mod_end);
-}
-
 void *__init bootstrap_map_bm(const struct boot_module *bm)
 {
-    return bootstrap_map(bm->mod);
+    return bootstrap_map_addr(bm->start, bm->start + bm->size);
 }
 
 void __init bootstrap_unmap(void)
@@ -695,8 +693,8 @@ static uint64_t __init consider_modules(
 
     for ( i = 0; i < nr_mods ; ++i )
     {
-        uint64_t start = pfn_to_paddr(mods[i].mod->mod_start);
-        uint64_t end = start + PAGE_ALIGN(mods[i].mod->mod_end);
+        uint64_t start = mods[i].start;
+        uint64_t end = start + PAGE_ALIGN(mods[i].size);
 
         if ( i == this_mod )
             continue;
@@ -1427,13 +1425,9 @@ void asmlinkage __init noreturn __start_xen(void)
     set_kexec_crash_area_size((u64)nr_pages << PAGE_SHIFT);
     kexec_reserve_area();
 
-    for ( i = 0; !efi_enabled(EFI_LOADER) && i < bi->nr_modules; i++ )
-    {
-        if ( bi->mods[i].mod->mod_start & (PAGE_SIZE - 1) )
+    for ( i = 0; i < bi->nr_modules; i++ )
+        if ( bi->mods[i].start & (PAGE_SIZE - 1) )
             panic("Bootloader didn't honor module alignment request\n");
-        bi->mods[i].mod->mod_end -= bi->mods[i].mod->mod_start;
-        bi->mods[i].mod->mod_start >>= PAGE_SHIFT;
-    }
 
     /*
      * TODO: load ucode earlier once multiboot modules become accessible
@@ -1452,13 +1446,12 @@ void asmlinkage __init noreturn __start_xen(void)
          * respective reserve_e820_ram() invocation below. No need to
          * query efi_boot_mem_unused() here, though.
          */
-        xen->mod->mod_start = virt_to_mfn(_stext);
-        xen->mod->mod_end   = __2M_rwdata_end - _stext;
+        xen->start = virt_to_maddr(_stext);
+        xen->size  = __2M_rwdata_end - _stext;
     }
 
     bi->mods[0].headroom =
-        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]),
-                         bi->mods[0].mod->mod_end);
+        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].size);
     bootstrap_unmap();
 
 #ifndef highmem_start
@@ -1539,7 +1532,7 @@ void asmlinkage __init noreturn __start_xen(void)
         for ( j = bi->nr_modules - 1; j >= 0; j-- )
         {
             struct boot_module *bm = &bi->mods[j];
-            unsigned long size = PAGE_ALIGN(bm->headroom + bm->mod->mod_end);
+            unsigned long size = PAGE_ALIGN(bm->headroom + bm->size);
 
             if ( bm->relocated )
                 continue;
@@ -1551,14 +1544,11 @@ void asmlinkage __init noreturn __start_xen(void)
             if ( highmem_start && end > highmem_start )
                 continue;
 
-            if ( s < end &&
-                 (bm->headroom ||
-                  ((end - size) >> PAGE_SHIFT) > bm->mod->mod_start) )
+            if ( s < end && (bm->headroom || (end - size) > bm->start) )
             {
-                move_memory(end - size + bm->headroom,
-                            pfn_to_paddr(bm->mod->mod_start), bm->mod->mod_end);
-                bm->mod->mod_start = (end - size) >> PAGE_SHIFT;
-                bm->mod->mod_end += bm->headroom;
+                move_memory(end - size + bm->headroom, bm->start, bm->size);
+                bm->start = (end - size);
+                bm->size += bm->headroom;
                 bm->relocated = true;
             }
         }
@@ -1589,10 +1579,9 @@ void asmlinkage __init noreturn __start_xen(void)
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-        const struct boot_module *bm = &bi->mods[i];
-        uint64_t s = pfn_to_paddr(bm->mod->mod_start);
+        uint64_t s = bi->mods[i].start, l = bi->mods[i].size;
 
-        reserve_e820_ram(&boot_e820, s, s + PAGE_ALIGN(bm->mod->mod_end));
+        reserve_e820_ram(&boot_e820, s, s + PAGE_ALIGN(l));
     }
 
     if ( !xen_phys_start )
@@ -1670,8 +1659,7 @@ void asmlinkage __init noreturn __start_xen(void)
                 map_e = boot_e820.map[j].addr + boot_e820.map[j].size;
                 for ( j = 0; j < bi->nr_modules; ++j )
                 {
-                    uint64_t end = pfn_to_paddr(bi->mods[j].mod->mod_start) +
-                                   bi->mods[j].mod->mod_end;
+                    uint64_t end = bi->mods[j].start + bi->mods[j].size;
 
                     if ( map_e < end )
                         map_e = end;
@@ -1745,13 +1733,11 @@ void asmlinkage __init noreturn __start_xen(void)
 
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-        const struct boot_module *bm = &bi->mods[i];
+        unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
 
-        set_pdx_range(bm->mod->mod_start,
-                      bm->mod->mod_start + PFN_UP(bm->mod->mod_end));
-        map_pages_to_xen((unsigned long)mfn_to_virt(bm->mod->mod_start),
-                         _mfn(bm->mod->mod_start),
-                         PFN_UP(bm->mod->mod_end), PAGE_HYPERVISOR);
+        set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s) + PFN_UP(l));
+        map_pages_to_xen((unsigned long)maddr_to_virt(s), maddr_to_mfn(s),
+                         PFN_UP(l), PAGE_HYPERVISOR);
     }
 
 #ifdef CONFIG_KEXEC
diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c
index 12c9de5a1fbf..f8836026f63b 100644
--- a/xen/xsm/xsm_policy.c
+++ b/xen/xsm/xsm_policy.c
@@ -43,8 +43,8 @@ int __init xsm_multiboot_policy_init(
     {
         struct boot_module *bm = &bi->mods[i];
 
-        _policy_start = bootstrap_map(bm->mod);
-        _policy_len   = bm->mod->mod_end;
+        _policy_start = bootstrap_map_bm(bm);
+        _policy_len   = bm->size;
 
         if ( (xsm_magic_t)(*_policy_start) == XSM_MAGIC )
         {
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:37:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:37:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829618.1244644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7I4F-00039p-CD; Sat, 02 Nov 2024 17:37:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829618.1244644; Sat, 02 Nov 2024 17: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 1t7I4F-00039i-93; Sat, 02 Nov 2024 17:37:43 +0000
Received: by outflank-mailman (input) for mailman id 829618;
 Sat, 02 Nov 2024 17: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Hun-0004r4-9v
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:27:57 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca29640c-993f-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 18:27:53 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568375366826.8780724690604;
 Sat, 2 Nov 2024 10:26:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca29640c-993f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNhMjk2NDBjLTk5M2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTY4NDc0LjMzNzU3OSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568385; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=GXqqM1eguA2Hqrwqld2IRWlUOBtvX8mk9HblxiZfWXdP/aj1BP9a5wi1WfnGxKZ2tOsCAkQtzlqjToD4/DvxrcTcyE6fnSZqvLufchVowmN0iXbypL/XgzczSpDoqhiiLp8SEUX+NsxVio4QOl4yakoYWF/skV8Qvn2nGrDoIhk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568385; h=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=DlW8869YgbQ7b/dFXUZq70NRQ3QZ7VjwhbTQzGdmgBI=; 
	b=I+2RzWb/pZzKdYO+rh73X4evInsrClFR8eSFoAeooQNTxy2IxTEu4ikeU9zssfOedLlBXEktKUA4cXhDXbz67mTFeW2Jt4twun0AalK3AEdlbLE/KqvUTvUqQf1PzB7t0rKQ2YjcGgM7EuuTCSvQuTCioSSThYBqrRwPxfQ4nhw=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568385;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=DlW8869YgbQ7b/dFXUZq70NRQ3QZ7VjwhbTQzGdmgBI=;
	b=sv3Zz7Ca7Dka+jjB3+AIr+geIunMXPPzH8L9winziOCf+Sj/eAN1BeNDCzdSDOvk
	nYerP8gDK/GMTZpH4xNbclrpFd+8WcAscOZD/JOE5ULW54tuGiXZANtSVuX7ljKmD1J
	0/sxtHVm4koGvK2vxj8vssW/vDssFhaK91W7NLn0=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 11/12] x86/boot: introduce domid field to struct boot_domain
Date: Sat,  2 Nov 2024 13:25:50 -0400
Message-Id: <20241102172551.17233-12-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add a domid field to struct boot_domain to hold the assigned domain id for the
domain. During initialization, ensure all instances of struct boot_domain have
the invalid domid to ensure that the domid must be set either by convention or
configuration.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/include/asm/bootdomain.h |  2 ++
 xen/arch/x86/setup.c                  | 12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 12c19ab37bd8..3873f916f854 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -12,6 +12,8 @@ struct boot_module;
 struct domain;
 
 struct boot_domain {
+    domid_t domid;
+
     struct boot_module *kernel;
     struct boot_module *ramdisk;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6e25a9f726c7..7b78bd9c7c8d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -338,6 +338,9 @@ static struct boot_info *__init multiboot_fill_boot_info(
     /* Variable 'i' should be one entry past the last module. */
     bi->mods[i].type = BOOTMOD_XEN;
 
+    for ( i = 0; i < MAX_NR_BOOTDOMS; i++ )
+        bi->domains[i].domid = DOMID_INVALID;
+
     return bi;
 }
 
@@ -992,7 +995,6 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     };
     struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
-    domid_t domid;
 
     if ( opt_dom0_pvh )
     {
@@ -1008,15 +1010,15 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
     /* Create initial domain.  Not d0 for pvshim. */
-    domid = get_initial_domain_id();
-    d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    bd->domid = get_initial_domain_id();
+    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
     if ( IS_ERR(d) )
-        panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
+        panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
     init_dom0_cpuid_policy(d);
 
     if ( alloc_dom0_vcpu0(d) == NULL )
-        panic("Error creating d%uv0\n", domid);
+        panic("Error creating d%uv0\n", bd->domid);
 
     /* Grab the DOM0 command line. */
     if ( bd->kernel->cmdline_pa || bi->kextra )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:37:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829623.1244654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7I4R-0003wk-Na; Sat, 02 Nov 2024 17:37:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829623.1244654; Sat, 02 Nov 2024 17: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 1t7I4R-0003w6-Jw; Sat, 02 Nov 2024 17:37:55 +0000
Received: by outflank-mailman (input) for mailman id 829623;
 Sat, 02 Nov 2024 17: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7HuB-0005zO-5n
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:27:19 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b41bade3-993f-11ef-a0c5-8be0dac302b0;
 Sat, 02 Nov 2024 18:27:17 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568370382770.7062276164702;
 Sat, 2 Nov 2024 10:26:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b41bade3-993f-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI0MWJhZGUzLTk5M2YtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNTY4NDM3LjQxNjQzMiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568381; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Pv3kCvtoVTibz+u51wsTPJ5JitINxwAOpevWtkWjGtA+JWT3fCFys7qKisjDpRspKF8cE6Na4u4P4sAYgIvXnib8ogDHD7qa917MB6/CKAkrP9LxqenNtAEhstgVWQeMv9GFHykAYSXCk45kqYNj+YV3iKZ79QN/5kMnAkvkMVM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568381; h=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=EoeU2cNTcSm145aYChZTxXF4zyu19NL3WvcyiomLUIo=; 
	b=VmD2X8mPFmLcbOXuactLxKobkuST/Ivf/owiVPogZTbNDA3U5hp6bXL1jUgkZu6svuNJ7CgpT12T7bvzAHC7dOzDsvQgoyVZr5UkGhPnu5jfqd9ZaXpnoMeb7xvcETzJ4QJxzBCwaUVA+W98zWzUN+JqxTTBeZNNCJcISAWeGxg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568381;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=EoeU2cNTcSm145aYChZTxXF4zyu19NL3WvcyiomLUIo=;
	b=ZZPR73ighyafEVqyrtsLosPv4w8AMkNG1vIMUwR2wEX8gS0HeRb6MWv+rm27fc02
	IJSeCj0PKuKslzoyprxSm0jNIFoT0D+RsLnQUKgXmx649F5vHK55RlKrj6XbThwT6kO
	iMW89A6SL33oOQ6BczXIstFLxYVy1kgZZBPlfw6c=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 07/12] x86/boot: add cmdline_pa to struct boot_module
Date: Sat,  2 Nov 2024 13:25:46 -0400
Message-Id: <20241102172551.17233-8-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add an address field, cmdline_pa, to struct boot_module to hold the address of
the string field from struct mod.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v7:
- renamed cmdline to cmdline_pa
- reword commit message for field rename

Changes since v5:
- changed boot_module element cmdline to paddr_t
---
 xen/arch/x86/include/asm/bootinfo.h | 2 ++
 xen/arch/x86/setup.c                | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 6638da597073..819c8224d715 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -59,6 +59,8 @@ struct boot_module {
      */
     bool relocated:1;
     bool released:1;
+
+    paddr_t cmdline_pa;
 };
 
 /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 425467a0d977..aba9df8620ef 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -312,8 +312,12 @@ static struct boot_info *__init multiboot_fill_boot_info(
      * reserved for Xen.
      */
     for ( i = 0; i < MAX_NR_BOOTMODS && i < bi->nr_modules; i++ )
+    {
         bi->mods[i].mod = &mods[i];
 
+        bi->mods[i].cmdline_pa = mods[i].string;
+    }
+
     /* Variable 'i' should be one entry past the last module. */
     bi->mods[i].mod = &mods[bi->nr_modules];
     bi->mods[i].type = BOOTMOD_XEN;
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 02 17:37:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Nov 2024 17:37:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829624.1244658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7I4S-000400-0p; Sat, 02 Nov 2024 17:37:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829624.1244658; Sat, 02 Nov 2024 17: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 1t7I4R-0003yy-Qw; Sat, 02 Nov 2024 17:37:55 +0000
Received: by outflank-mailman (input) for mailman id 829624;
 Sat, 02 Nov 2024 17: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=RajI=R5=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7Hux-0004r4-No
 for xen-devel@lists.xenproject.org; Sat, 02 Nov 2024 17:28:07 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d062b535-993f-11ef-99a3-01e77a169b0f;
 Sat, 02 Nov 2024 18:28:04 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730568376554254.352253814322;
 Sat, 2 Nov 2024 10:26:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d062b535-993f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQwNjJiNTM1LTk5M2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNTY4NDg0LjgwMDUzMiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730568385; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=DaE1msTh9OL/UMNeyEU+I+slUVIkmCcBLTOkiP4IeAh0AFi0/le5UTAY2mPxrvmSFKIax7cucpovfwpc6qUvdMAy76Ak6ZYVS3fLy/a5JmP2URQwX7pJVW65yfp0FuiGWoAfxRs3R92xHYz1/89WXYl+YRcK1pSD/cDgUyotk/I=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730568385; h=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=D+Ero9Cx9cs2ogNCswgWtWOJ14E6rK5H6+adO3A9JUc=; 
	b=cz5B2xs55xJa3cNJI30LvbySktK7yR3NFJn38I5WZq+Z9irgJN+KntUaa/Bc+WxOWl2mbX+4wRLGn7JYfsI2eAGUUzfPii+t1LHFfJ0JhDqA1IXZ1luND/pYufhlxSBZB7otSUDnh2CbPuiMsbY4YRrgcijLpiUym4spH+8Z4Pg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730568385;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=D+Ero9Cx9cs2ogNCswgWtWOJ14E6rK5H6+adO3A9JUc=;
	b=ebpNRVEcdLj7MAIUFRuaw3inmi9D37/O6u5vIVXXw/L86ZiXaNzV+opQt23bJGD4
	yrso92wIMRz+DnfIOPyh91WTJnLqBhqk6e4yMQkBlJJ2R0KLb53dEht4VjUnerXcW+O
	YYZoAj58haXpOymqXpqtXjGJjVWfww7ZiayQbX3A=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 12/12] x86/boot: add cmdline to struct boot_domain
Date: Sat,  2 Nov 2024 13:25:51 -0400
Message-Id: <20241102172551.17233-13-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241102172551.17233-1-dpsmith@apertussolutions.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add a container for the "cooked" command line for a domain. This provides for
the backing memory to be directly associated with the domain being constructed.
This is done in anticipation that the domain construction path may need to be
invoked multiple times, thus ensuring each instance had a distinct memory
allocation.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v7:
- updated commit message to expand on intent and purpose
---
 xen/arch/x86/include/asm/bootdomain.h |  4 ++++
 xen/arch/x86/include/asm/dom0_build.h |  1 +
 xen/arch/x86/pv/dom0_build.c          |  4 ++--
 xen/arch/x86/setup.c                  | 18 ++++++++----------
 4 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 3873f916f854..bc51f04a1df6 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -8,10 +8,14 @@
 #ifndef __XEN_X86_BOOTDOMAIN_H__
 #define __XEN_X86_BOOTDOMAIN_H__
 
+#include <public/xen.h>
+
 struct boot_module;
 struct domain;
 
 struct boot_domain {
+    char cmdline[MAX_GUEST_CMDLINE];
+
     domid_t domid;
 
     struct boot_module *kernel;
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 4a75fb25a801..982bc1fa9e6b 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -4,6 +4,7 @@
 #include <xen/libelf.h>
 #include <xen/sched.h>
 
+#include <asm/bootinfo.h>
 #include <asm/setup.h>
 
 extern unsigned int dom0_memflags;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 28257bf13127..2c84af52de3e 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -960,8 +960,8 @@ static int __init dom0_construct(struct boot_domain *bd)
     }
 
     memset(si->cmd_line, 0, sizeof(si->cmd_line));
-    if ( cmdline != NULL )
-        strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
+    if ( cmdline[0] != '\0' )
+        strlcpy((char *)si->cmd_line, bd->cmdline, sizeof(si->cmd_line));
 
 #ifdef CONFIG_VIDEO
     if ( !pv_shim && fill_console_start_info((void *)(si + 1)) )
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 7b78bd9c7c8d..9db8a650ecc2 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -980,8 +980,6 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
 
 static struct domain *__init create_dom0(struct boot_info *bi)
 {
-    static char __initdata cmdline[MAX_GUEST_CMDLINE];
-
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
@@ -1024,16 +1022,16 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( bd->kernel->cmdline_pa || bi->kextra )
     {
         if ( bd->kernel->cmdline_pa )
-            safe_strcpy(cmdline, cmdline_cook(__va(bd->kernel->cmdline_pa),
+            safe_strcpy(bd->cmdline, cmdline_cook(__va(bd->kernel->cmdline_pa),
                         bi->loader));
 
         if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
-            safe_strcat(cmdline, bi->kextra);
+            safe_strcat(bd->cmdline, bi->kextra);
 
         /* Append any extra parameters. */
-        if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
-            safe_strcat(cmdline, " noapic");
+        if ( skip_ioapic_setup && !strstr(bd->cmdline, "noapic") )
+            safe_strcat(bd->cmdline, " noapic");
 
         if ( (strlen(acpi_param) == 0) && acpi_disabled )
         {
@@ -1041,13 +1039,13 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             safe_strcpy(acpi_param, "off");
         }
 
-        if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
+        if ( (strlen(acpi_param) != 0) && !strstr(bd->cmdline, "acpi=") )
         {
-            safe_strcat(cmdline, " acpi=");
-            safe_strcat(cmdline, acpi_param);
+            safe_strcat(bd->cmdline, " acpi=");
+            safe_strcat(bd->cmdline, acpi_param);
         }
 
-        bd->kernel->cmdline_pa = __pa(cmdline);
+        bd->kernel->cmdline_pa = __pa(bd->cmdline);
     }
 
     bd->d = d;
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 04 06:04:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 06:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829810.1244706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7qC6-0007jb-8x; Mon, 04 Nov 2024 06:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829810.1244706; Mon, 04 Nov 2024 06: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 1t7qC6-0007jU-5k; Mon, 04 Nov 2024 06:04:06 +0000
Received: by outflank-mailman (input) for mailman id 829810;
 Mon, 04 Nov 2024 06:04: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=mkdM=R7=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1t7qC4-0007jO-I2
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 06:04:04 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20627.outbound.protection.outlook.com
 [2a01:111:f403:2415::627])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 94cb4a17-9a72-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 07:03:59 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by LV8PR12MB9449.namprd12.prod.outlook.com (2603:10b6:408:204::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 06:03:55 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8114.028; Mon, 4 Nov 2024
 06:03: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: 94cb4a17-9a72-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjI3IiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk0Y2I0YTE3LTlhNzItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzAwMjM5LjgzNjg5Nywic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mXCMJ05lu39Rxwk824QJxBqfmPDToJkPeoO0UMeN+UK51MvHr0Vg5j3h8qcrLgFDmQcL++okjlUf0/zFm1cIonQt7DSmeMI6qXCN022EHshm7B6Q6qSdDdfjlHCvuBScIXexVxhrTqAjCmrzGrSSct6aVLdegCQwUPPfdGtvsptNnXa4hR5LBWjwjSeRR1EBppnT4wdFRioNwElCQAjF0nps4QCdFcJCyOLrkJy8JvvFni2ziCoRKpbbuRqQj6zjcPu76XDE/d03iLfhja0dNGq/4Et6iwRf6xTtgcTdK2F6TqBriiLCXCBwNPTRKTGoCGQX3OWAVwDJ5OY5jpi2VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=y2Hr+8gyUpiKqgP5pTX0yvlWPuKT4QFcdrQGcMEPrOo=;
 b=e7bJr4836dGkudu2Qf0KopnTgaTgLqsyzluW5avQdQzSAXjSkT82PUrV0RlvEjwDypckSocifVk3N3xgutPVh+UXyBQsJ/rSc6xpEaMNMz8W0P48UVD+q7zB2T2aZEzAG7ydPmvcUp5VGZJEbDOcZo9HMe9oAE3TlpFPLeUpp482+SidBW3aqKYnL0nyqDC9s7/rKIVgKOUG3k99CD+H1hE5M9jcSvo9Qm+nGIHhtG7QhwvoSummZShvgvjoaP9CBngYi7120cu+vuaWXjP2i0gUW5IkFEzyHT50plRxUwJG2EGB9Xde2uX5q6LJ1jlGbAw0W0vmzY76gMvWpXnzDA==
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=y2Hr+8gyUpiKqgP5pTX0yvlWPuKT4QFcdrQGcMEPrOo=;
 b=KDrXaTrW+oBKp7QagD5qN9w05FsdBo+2SnF5yDUmmPdf3VLe6lN3fVXP3piSto/FKq6DldRqq1VYv/lbAfaFsvZSZPqAfmz6zNcz/WkDD39HnTvWcGx8TaYmF1z/RAMUVHW645clAzQXgk4FYQkSn+tYRHOqmWEhA8uP5YIN8t0=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Paul Durrant <paul@xen.org>, "Edgar E . Iglesias"
	<edgar.iglesias@gmail.com>, "Michael S . Tsirkin" <mst@redhat.com>, Marcel
 Apfelbaum <marcel.apfelbaum@gmail.com>, "qemu-devel@nongnu.org"
	<qemu-devel@nongnu.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [QEMU PATCH v9] xen/passthrough: use gsi to map pirq when dom0 is
 PVH
Thread-Topic: [QEMU PATCH v9] xen/passthrough: use gsi to map pirq when dom0
 is PVH
Thread-Index: AQHbJfQPdMv3M7YW802ZtCXuQqWNubKicokAgATEWwA=
Date: Mon, 4 Nov 2024 06:03:55 +0000
Message-ID:
 <BL1PR12MB584985EF3C4F3D482A3F8E95E7512@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241024090629.1944820-1-Jiqian.Chen@amd.com>
 <356652df-b5b4-4c28-9c5c-4bfc4f36813f@amd.com>
In-Reply-To: <356652df-b5b4-4c28-9c5c-4bfc4f36813f@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8114.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|LV8PR12MB9449:EE_
x-ms-office365-filtering-correlation-id: 0036de59-f790-4d05-6ca9-08dcfc96774f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Tm55NmRaMDM1ZXNVYjFETzJCN2I0eUg3MUZVRnhUSTRlVG5SQUhNbzVCYnVr?=
 =?utf-8?B?d0oyRVpnVnlXOGhIWVRwTTdGc3ZXMFJIMURIcGRpbTV6bXRHb0kvU1lYdExm?=
 =?utf-8?B?TWl4cU1HdmpDT0VKOGN1SUVROVlTVFA2UVRmUDFzS2Nlc0NHcnpZREVZWEVv?=
 =?utf-8?B?dC9xZ1hUa1R4UmdLRnc3bEY0Q0phVjArakR1b3FhUU5wSThyUGg0T3hLTW1m?=
 =?utf-8?B?VmY5c01ya2RmaGhndm1RaHpTWU41aXpJUzMwb3dFbmpXbGE4SnBYcCt5azds?=
 =?utf-8?B?OXMzZkdHVFY5U1ZVSkgxc3Z5MURSVE1PaWdPb09yRU1uSXl1NUpjWlZsYmxv?=
 =?utf-8?B?RWVCRW1ocnAwNG1Ya3FPRTFBZTRUd2IzMFJXRHdNK1FHVDl1aGNqWkRoL0pF?=
 =?utf-8?B?NDVMeE9Fc29OSFNRNjQ2QzlzbkZuUlBoYzJJTFBIOFBBeTMrVjU3UHl1VVhK?=
 =?utf-8?B?QnlnZEM5R3FOR0VTeEExajE0ZWsyV21hL3RyMkVDL2ZXMEQyOTVjOEVMOHdZ?=
 =?utf-8?B?NnkzUUZ5WlBRQ0NEZWdLeVBicmNMdVd3NWpIVnpSZU5vd3RTbW9vUlJ0QTdu?=
 =?utf-8?B?czlMcnlibllSOWpMdkkxOGhJRzZOT056K2h3Y2xJSVFmWklYN013aGxwNXIv?=
 =?utf-8?B?aU1YUm83WU1TS2lHajJMMFNnYUthazhoZElBbGd5TkRqdWJQdkh5blRBR2Nk?=
 =?utf-8?B?RllQbWFPWmtpNTlWSUdhbk1XSzBWcnNldkxPb1hpTDFkbFlGUUVIbFJKeUxu?=
 =?utf-8?B?Y3BFTngzNFVwa3JjRHZFRHg4ZFB2dy9ZMVR6RnNJTXhTNVgvdXI4WEVKQThp?=
 =?utf-8?B?ZWRYMmFTeVhzS083bEU2ZUU3MlloZHdVQmt0UUZiME0zazMwZkgrVUtiVmdJ?=
 =?utf-8?B?TUxnbFJEcDhTQXY4cEZxSk9uRjhFck9nN3EwZlBieXdEU3Qwb3ZmQUV5cEc2?=
 =?utf-8?B?ZHQ5UUdURTZHWHl4N3BwTUR5dzFPbm9uRDl3Vkl3QkUyRjRlV3ZkcnlLbkxh?=
 =?utf-8?B?bHhiV3dhRnZ1Ti94aUYrRWRZRFVLa1VvSHBlY1ZlcU5FdVkxUTN4ZnZ6VE5x?=
 =?utf-8?B?cWIya2RDTXJIM2FRVTZ4a2UwbUZYM1pMcnZlVDJ1UjNJR1Fqc09DNEZPVjVV?=
 =?utf-8?B?K1lhOUV2YWxkZHlWZmo5Q2JNdzJNQlJsREsrWkRycHoxaCswQWlsRkh3NHFy?=
 =?utf-8?B?L0F1bFMyMXZaa2xBbUZDeDB6S1JVTXFmYjlFWXhKM1VZQ29sR1MzTWtzcExX?=
 =?utf-8?B?L2d2WGk3aWlqbHJkdjBOVkpScG5rNGUvNXBGWXNVR1FvQVkwb1RBVDdiaGZQ?=
 =?utf-8?B?UUhDaDJKbCt3TzlYcERVb3AySElGRGQ2amJ4MnFFaXJUZXMwLzBjK1pQRXpP?=
 =?utf-8?B?OXp6VUViSDRqWFZxZk03S3U2R20rQVJvR0pwRWhKa1o1SStEaVI4bEFsMjZp?=
 =?utf-8?B?cDh6M1VPT1lYSG9UUk1tWWMyTzdpcmlUR0tOcU52b01FbHRIcEpYUnZSY1Vr?=
 =?utf-8?B?NG43cW5EUytZbFJQV2prb2NvRGFYR1RPN2hOQUNmSkw0THkwcWlONUFjTUZY?=
 =?utf-8?B?bS9pNnFiQmZJcGtDa2RMYU5vV1RNNzMyY1pFUC9KSStzM1NEU0xFK3dLcGND?=
 =?utf-8?B?VFIzS2NvSHpoVHNvT1pUNEdhRFRzQWtNVTdUYUFrTHJkbFlzMTFJWTFXWUdQ?=
 =?utf-8?B?SzBOS096TFJzMGFqSVVDMEdCZ25RWGRxUDI4MGkwMG01UmUwZ3RyUU45Z0Ru?=
 =?utf-8?B?UE5iNG5JMWQ3ME9lYjFnUnBHdG9lVVpFZXVGVy93Y1A5dk9YWHJxMnRCd2s0?=
 =?utf-8?Q?MZoZdFB4kkA68nFd8A/jzSByOPW64SVROL9KM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?L1FBeTRIVzRlZFUrQnNWaXdQaVM4WVBXajU2cFVmVUlBY2tVcVZJMVJaZldB?=
 =?utf-8?B?VGNMRGhIT3hzZktWNWYxQnF1cnBpaUFpL2xiQmtVZmxHYzF2SlZ1dUFUZmxE?=
 =?utf-8?B?ejNIaFo4VlVGWkVnRGRuZTRiNTdDL04xdUQxdnltVEdWMHpWUnU0MVl2bHZ1?=
 =?utf-8?B?eEdBckZJT2ZVd3lhUEQ2ZXBUOXJOQTYrbytWV3o4UjJIMDlKRk5QbGdsMTkw?=
 =?utf-8?B?L243dCtnb0x1OVB3bUZ6R2ZMbHQ0RmwvUUNLaTU1ZnJXYTRET01oMWFXL1E4?=
 =?utf-8?B?VHBPWUF4WjhVeGtoWlZoWENFc0NkVDBzaEY5WE91anJvbkc4cnFGNlIzSlNy?=
 =?utf-8?B?TFkyVEt1dmorbUdqdGxyS09OUmx4MXdqZFhCbElGN3dWcXJ1VTh1NEVaWUJj?=
 =?utf-8?B?ay9HUWdXbFlUVk1mUWNVQ3BLelNWSVB4Nmcyd0U4dlpYL0k0L3pkazJTNVc2?=
 =?utf-8?B?eVdBZEo5QlVsNVRsdXFMWWx3TlBpdmhTTnZkMHFZVEQvVDA2T3JMbUhUUUhE?=
 =?utf-8?B?TW1PQXdsNm9nRERTeWVDQXo5dnF2eUdKbVpHTzhkdXplZ2JVUzY2TVlJYmJ5?=
 =?utf-8?B?N0dmV0N4dXFaandOMU5hMFVUd3hlY1hXU29LaEc1N095T2tzQ1JlLzFXZDg4?=
 =?utf-8?B?OEFnYlVSdmF0aENwa205Y0FlaytJVXQ0YWx2anIrMm5yajJoQjBzQmlMcHV1?=
 =?utf-8?B?eUhnWkZIek1KcWZURzA5cC9Cc1RoRWR5R243ZiswbFRjcnZGSjd3NzF6Q3ZV?=
 =?utf-8?B?djhDM095THVJNlJoUHVVdmFUNFViaVV6R2VDa2dScjNKVXRmQTgrelozNHJE?=
 =?utf-8?B?NTEzWlk2b2FEYWdEVUJpcm1rUTZ5NlFWZFJlSHlSNklNeDd4aHJvZmMwQ3Vp?=
 =?utf-8?B?a1UwV0RnNkZHZlMvRXJVZXJ3ZmdnSkkxbUQ1NnFHR251NVVrdmlzQ1BrUm1R?=
 =?utf-8?B?WTVlUFllTnNScEFzaG1QdW50MlRiY0VlUllTaEszUWo5Y0JDRFkvQkJZNndD?=
 =?utf-8?B?UUxacWk4anFRRTFqVVgwYTlydWtUUWVLQ0JSRW5rVWNyYWNTL2ZxTmRlSFZM?=
 =?utf-8?B?eXRNOE9pWmJWRElBR2VMcVBsS0t3S3l2U2FkZEw3b3VKQWVZbWV1SEU0SkRW?=
 =?utf-8?B?VWhLektJN0xueXdEZXN5Vk8xeWNKV21uM0RGVVN3aUx1RWJjeElrbzQzQjBp?=
 =?utf-8?B?QTE4eGNLNHo0c1lydWhKbktSV2N4Z2lnR1pOQ2JnU3VIeWhDSVRldFVyaUtD?=
 =?utf-8?B?MlFnMmdMS0lXM2lWeUFvSDIzbnIvQnB6RXFtNmpkT1dNRWJRdDhkQWJ6QllM?=
 =?utf-8?B?Z3hWMU1ycVRiZFVObDJaempQekVnclBDdGx6L0VBVXVXZFE5T1N1d1ErMHFI?=
 =?utf-8?B?UzFWYVNMVUZBV1hDNHA2WUZJa2RIUlZMUVNhTXFDZW9vWHV6bWtPUW8vRlp4?=
 =?utf-8?B?YlhuL0pkZzcyZENrYm5QUW85UktWNjcreTFIMGhKZ1FzWDRNeHQ2ZWtjdWhX?=
 =?utf-8?B?Z0xuVytyZ25Ld1JjT21mcG9wMjRQSDdZSkxEZ3paMkcwVk0wVC9renBFZ3pp?=
 =?utf-8?B?WTU4NHpuQS9nWWs4bGRjemxmcm5HODUzN2RRZURPbEtDaW40a2JCSmdsVnl5?=
 =?utf-8?B?WGxNT0RHbnEzazJjeEpWM21nZ1YzZEh4OUVxUW1MNG1JdHdJOStlVkNvUWUw?=
 =?utf-8?B?SHBsU0xueXoyejdBbEt3TnBuQVJTeWFGdlJoTDNOa2FIKy9JUVkzWXdMeGVo?=
 =?utf-8?B?eE4xcmdlY2d1MUJTMU8wdWpIeFFaYkZxbFpSTE1qTnpKSXMrckM4NUlVQlVY?=
 =?utf-8?B?SDhwRDR0RDVzalZNNUJKdjdtSDM5WU1SVWp1TWdIeHoyQk1NSjFnRXRVNEU4?=
 =?utf-8?B?OGFJWFdYZnpPdEpPUllVNFcwYWVTVlBaSUpHc0QrUUpoTithY2RiQTVvaXZh?=
 =?utf-8?B?Vi96aVVXcFhoVWxFbGRNeSt4ZW5rbXpvYzFkTE85WTlOMFU5SndiOTVaeWtt?=
 =?utf-8?B?ZC9lNlNtejFHQ1VwU1hjOWRFTEpCRmt6NVU1ZzVxalI0dks4NlpPSXozY0Fi?=
 =?utf-8?B?TzBOL1RqekJlQWtaNGlZNW5tRDBhTWM4dlZDaEZsZkNPMEtTRWFkZjRUWGVI?=
 =?utf-8?Q?IRYU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <325A37A1EE1AA34D91BDE5EA2A45D256@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0036de59-f790-4d05-6ca9-08dcfc96774f
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2024 06:03:55.6342
 (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: Yll9nF5M8B7xabCUGymB77qfWSdXmbMQSSnMX1Ea54GghdC4V/Hi7H+uqKKvDyVm8a+uoMVn/D0FE+HbRxZDwQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9449

T24gMjAyNC8xMS8xIDIxOjA5LCBTdGV3YXJ0IEhpbGRlYnJhbmQgd3JvdGU6DQo+IE9uIDEwLzI0
LzI0IDA1OjA2LCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IGRpZmYgLS1naXQgYS9ody94ZW4veGVu
X3B0LmMgYi9ody94ZW4veGVuX3B0LmMNCj4+IGluZGV4IDM2MzVkMWIzOWY3OS4uNWIxMGQ1MDFk
NTY2IDEwMDY0NA0KPj4gLS0tIGEvaHcveGVuL3hlbl9wdC5jDQo+PiArKysgYi9ody94ZW4veGVu
X3B0LmMNCj4+IEBAIC03NjYsNiArNzY2LDUwIEBAIHN0YXRpYyB2b2lkIHhlbl9wdF9kZXN0cm95
KFBDSURldmljZSAqZCkgew0KPj4gIH0NCj4+ICAvKiBpbml0ICovDQo+PiAgDQo+PiArI2lmIENP
TkZJR19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lPTiA+PSA0MjAwMA0KPj4gK3N0YXRpYyBib29s
IHhlbl9wdF9uZWVkX2dzaSh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgRklMRSAqZnA7DQo+PiArICAg
IGludCBsZW47DQo+PiArICAgIGNoYXIgdHlwZVsxMF07DQo+IA0KPiBBIGJyaWVmIGluLWNvZGUg
Y29tbWVudCB0byBleHBsYWluIGhvdyB5b3UgYXJyaXZlZCBhdCAxMCB3b3VsZCBiZQ0KPiBhcHBy
ZWNpYXRlZC4NClRoZSBtYXggbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIGRlc2NyaXB0aW9u
IG9mIHRoZSAiZ3Vlc3RfdHlwZSIgaXMgNCAoIlBWSCIgcGx1cyBsaW5lIGJyZWFrKS4NCkkgc2V0
IGl0IHRvIDEwIHRvIHByZXZlbnQgbG9uZ2VyIGRlc2NyaXB0aW9uIHR5cGVzIGluIHRoZSBmdXR1
cmUuDQpEbyB5b3UgaGF2ZSBhbm90aGVyIHN1Z2dlc3QgbnVtYmVyPw0KDQo+IA0KPj4gKyAgICBj
b25zdCBjaGFyICpndWVzdF90eXBlID0gIi9zeXMvaHlwZXJ2aXNvci9ndWVzdF90eXBlIjsNCj4+
ICsNCj4+ICsgICAgZnAgPSBmb3BlbihndWVzdF90eXBlLCAiciIpOw0KPj4gKyAgICBpZiAoZnAg
PT0gTlVMTCkgew0KPj4gKyAgICAgICAgZXJyb3JfcmVwb3J0KCJDYW5ub3Qgb3BlbiAlczogJXMi
LCBndWVzdF90eXBlLCBzdHJlcnJvcihlcnJubykpOw0KPj4gKyAgICAgICAgcmV0dXJuIGZhbHNl
Ow0KPj4gKyAgICB9DQo+PiArICAgIGZnZXRzKHR5cGUsIHNpemVvZih0eXBlKSwgZnApOw0KPiAN
Cj4gUGxlYXNlIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgZmdldHMuDQpXaWxsIGNoYW5nZSBp
biBuZXh0IHZlcnNpb24uDQoNCj4gDQo+PiArICAgIGZjbG9zZShmcCk7DQo+PiArDQo+PiArICAg
IGxlbiA9IHN0cmxlbih0eXBlKTsNCj4gDQo+IEJlZm9yZSBwYXNzaW5nIHRvIHN0cmxlbiwgaXMg
InR5cGUiIGFsd2F5cyBndWFyYW50ZWVkIHRvIGhhdmUgYQ0KPiB0ZXJtaW5hdGluZyAnXDAnIGNo
YXJhY3Rlcj8NClllcywgImZnZXRzIiB3aWxsIGd1YXJhbnRlZSB0aGF0LCBhbmQgSSB3aWxsIGFk
ZCBjaGVjayBmb3IgImZnZXRzIiB3aGVuIGl0IHJldHVybnMgTlVMTCBpbiBuZXh0IHZlcnNpb24u
DQoNCj4gDQo+PiArICAgIGlmIChsZW4pIHsNCj4+ICsgICAgICAgIHR5cGVbbGVuIC0gMV0gPSAn
XDAnOw0KPj4gKyAgICAgICAgaWYgKCFzdHJjbXAodHlwZSwgIlBWSCIpKSB7DQo+PiArICAgICAg
ICAgICAgcmV0dXJuIHRydWU7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ICsgICAgcmV0
dXJuIGZhbHNlOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IHhlbl9wdF9tYXBfcGlycV9m
b3JfZ3NpKFBDSURldmljZSAqZCwgaW50ICpwaXJxKQ0KPj4gK3sNCj4+ICsgICAgaW50IGdzaTsN
Cj4+ICsgICAgWGVuUENJUGFzc3Rocm91Z2hTdGF0ZSAqcyA9IFhFTl9QVF9ERVZJQ0UoZCk7DQo+
PiArDQo+PiArICAgIGdzaSA9IHhjX3BjaWRldl9nZXRfZ3NpKHhlbl94YywNCj4+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUENJX1NCREYocy0+cmVhbF9kZXZpY2UuZG9tYWluLA0KPj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5yZWFsX2RldmljZS5idXMs
DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPnJlYWxfZGV2aWNl
LmRldiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+cmVhbF9k
ZXZpY2UuZnVuYykpOw0KPj4gKyAgICBpZiAoZ3NpID49IDApIHsNCj4+ICsgICAgICAgIHJldHVy
biB4Y19waHlzZGV2X21hcF9waXJxX2dzaSh4ZW5feGMsIHhlbl9kb21pZCwgZ3NpLCBwaXJxKTsN
Cj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICByZXR1cm4gZ3NpOw0KPj4gK30NCj4+ICsjZW5kaWYN
Cj4+ICsNCj4+ICBzdGF0aWMgdm9pZCB4ZW5fcHRfcmVhbGl6ZShQQ0lEZXZpY2UgKmQsIEVycm9y
ICoqZXJycCkNCj4+ICB7DQo+PiAgICAgIEVSUlBfR1VBUkQoKTsNCj4+IEBAIC04NDcsNyArODkx
LDE2IEBAIHN0YXRpYyB2b2lkIHhlbl9wdF9yZWFsaXplKFBDSURldmljZSAqZCwgRXJyb3IgKipl
cnJwKQ0KPj4gICAgICAgICAgZ290byBvdXQ7DQo+PiAgICAgIH0NCj4+ICANCj4+ICsjaWYgQ09O
RklHX1hFTl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OID49IDQyMDAwDQo+PiArICAgIGlmICh4ZW5f
cHRfbmVlZF9nc2koKSkgew0KPj4gKyAgICAgICAgcmMgPSB4ZW5fcHRfbWFwX3BpcnFfZm9yX2dz
aShkLCAmcGlycSk7DQo+PiArICAgIH0gZWxzZSB7DQo+PiArICAgICAgICByYyA9IHhjX3BoeXNk
ZXZfbWFwX3BpcnEoeGVuX3hjLCB4ZW5fZG9taWQsIG1hY2hpbmVfaXJxLCAmcGlycSk7DQo+PiAr
ICAgIH0NCj4+ICsjZWxzZQ0KPj4gICAgICByYyA9IHhjX3BoeXNkZXZfbWFwX3BpcnEoeGVuX3hj
LCB4ZW5fZG9taWQsIG1hY2hpbmVfaXJxLCAmcGlycSk7DQo+PiArI2VuZGlmDQo+PiArDQo+PiAg
ICAgIGlmIChyYyA8IDApIHsNCj4+ICAgICAgICAgIFhFTl9QVF9FUlIoZCwgIk1hcHBpbmcgbWFj
aGluZSBpcnEgJXUgdG8gcGlycSAlaSBmYWlsZWQsIChlcnI6ICVkKVxuIiwNCj4+ICAgICAgICAg
ICAgICAgICAgICAgbWFjaGluZV9pcnEsIHBpcnEsIGVycm5vKTsNCj4+IGRpZmYgLS1naXQgYS9p
bmNsdWRlL2h3L3BjaS9wY2kuaCBiL2luY2x1ZGUvaHcvcGNpL3BjaS5oDQo+PiBpbmRleCBlYjI2
Y2FjODEwOTguLjA3ODA1YWE4YTVmMyAxMDA2NDQNCj4+IC0tLSBhL2luY2x1ZGUvaHcvcGNpL3Bj
aS5oDQo+PiArKysgYi9pbmNsdWRlL2h3L3BjaS9wY2kuaA0KPj4gQEAgLTIzLDYgKzIzLDEwIEBA
IGV4dGVybiBib29sIHBjaV9hdmFpbGFibGU7DQo+PiAgI2RlZmluZSBQQ0lfU0xPVF9NQVggICAg
ICAgICAgICAzMg0KPj4gICNkZWZpbmUgUENJX0ZVTkNfTUFYICAgICAgICAgICAgOA0KPj4gIA0K
Pj4gKyNkZWZpbmUgUENJX1NCREYoc2VnLCBidXMsIGRldiwgZnVuYykgXA0KPj4gKyAgICAgICAg
ICAgICgoKCh1aW50MzJfdCkoc2VnKSkgPDwgMTYpIHwgXA0KPj4gKyAgICAgICAgICAgIChQQ0lf
QlVJTERfQkRGKGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpKSkNCj4+ICsNCj4+ICAvKiBDbGFz
cywgVmVuZG9yIGFuZCBEZXZpY2UgSURzIGZyb20gTGludXgncyBwY2lfaWRzLmggKi8NCj4+ICAj
aW5jbHVkZSAiaHcvcGNpL3BjaV9pZHMuaCINCj4+ICANCj4gDQoNCi0tIA0KQmVzdCByZWdhcmRz
LA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 07:27:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 07:27:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829819.1244717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7rUW-0000Wk-4x; Mon, 04 Nov 2024 07:27:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829819.1244717; Mon, 04 Nov 2024 07:27: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 1t7rUW-0000Wd-0Q; Mon, 04 Nov 2024 07:27:12 +0000
Received: by outflank-mailman (input) for mailman id 829819;
 Mon, 04 Nov 2024 07:27: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=Gxyb=R7=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1t7rUU-0000WX-Eu
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 07:27:10 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20608.outbound.protection.outlook.com
 [2a01:111:f403:2612::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30ed98fc-9a7e-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 08:27:05 +0100 (CET)
Received: from AS8PR04CA0187.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::12)
 by AM9PR08MB6290.eurprd08.prod.outlook.com (2603:10a6:20b:2d5::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 07:27:00 +0000
Received: from AMS1EPF0000004D.eurprd04.prod.outlook.com
 (2603:10a6:20b:2f3:cafe::38) by AS8PR04CA0187.outlook.office365.com
 (2603:10a6:20b:2f3::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30 via Frontend
 Transport; Mon, 4 Nov 2024 07:27:00 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS1EPF0000004D.mail.protection.outlook.com (10.167.16.138) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8137.17
 via Frontend Transport; Mon, 4 Nov 2024 07:26:58 +0000
Received: ("Tessian outbound 72f4d55e3d4f:v490");
 Mon, 04 Nov 2024 07:26:57 +0000
Received: from Lfbef7ce81955.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E8C1F7FB-6C24-4B1F-BC98-970389CF69FC.1; 
 Mon, 04 Nov 2024 07:26:51 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lfbef7ce81955.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 04 Nov 2024 07:26:51 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by AM9PR08MB6036.eurprd08.prod.outlook.com (2603:10a6:20b:2dc::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 07:26:48 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%5]) with mapi id 15.20.8114.028; Mon, 4 Nov 2024
 07:26: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: 30ed98fc-9a7e-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjA4IiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjMwZWQ5OGZjLTlhN2UtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzA1MjI1LjI3NTU0Nywic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=l1NiNx4yskFxUiRSvdAitC+4Kd4UiCNy1weYFUFZfqkJukjNYrVJnrlPCDtCBBuT20TWX8NI2ozLb7e34+32rAvYCfpD6Ju3LGpGpSsnmHW2Ws13fIALlqTnGduP1IT37Ac0lPLo1WmlDdyHV/xjHha0sJdIVVfDr4Nfpt/0dBW7HAI+Rxf71GKSFeQp9K8k2ztSz7tQ5SSP3qzfb/9+FXeI+HOjna5n5s61bpAkX6b+ROhp+UbTlCK7ciSGua477dMN2Q5ktqwXpORul8aqayS4D5hh/+h6XgqjHDf3ojjwgEqdEiT+AgLSYYNGxp+tsRWtoozz3kOoSg95wi3ZiA==
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=fqxwHiQ05IwAKIB6R3EdLMOC3GD/fdTTH3lZ1YWi4ys=;
 b=RnxbZ4Qhxof0V5s4OjCF1mUoD8nyaUAWYGeo8mkowpQdX39EjYpIP96Oxl5hZE1nu9Pn3jYTScmqFrxy0ZmEFtKw/AEiPYZtl7P5cg30yY9gdhcrIxf5bDDKnpf46iq5xFPM0G0lmxSG/zqyYmT/9nfDzugaZtrnomlULtolF3z+TS6zDHeQ9KBUvb6RF6HymFvAW7/1uav0Mt2o7Uded30kdziAujx02UJlHtxEg5YNJLo1DihOr+jd69y/PDtr2GJsspIOFtyq5zxjPRPT4vPbet/iCxwYLvj3HWssixKYsi5uS9+wEThrsAL/0VD1S9DAvftbylNp1oiTR3EAYw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=fqxwHiQ05IwAKIB6R3EdLMOC3GD/fdTTH3lZ1YWi4ys=;
 b=rlLm81i1RD3+WENNtD8mGcK2g0rJbzhlEgnEFm3Urqa8nWTKNTV0vB6tnYAM3RNmYSJ0hMdUKHfY2DmVWxSdDndvafIfVbDwMPNPs35b5iwtSqNj8qAQAVWUNt+pfxuEyJtstTdsizxaVci2kndZ8sNon3akYUfzRj2d+W8Z6Gg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 16bc36097524e198
X-TessianGatewayMetadata: /W+iRI40rqk4c4ZUh0Me1JnPyClH8zFzXgarHqhoO/l6i6/c7g2o0as0Q2YWhyEd4qpC/NHC5ZhY3Dnn5n8E0c9W/vY8yYMlN/+H1Ulgdk7e+4vkn1EkxaTCLpQHitlzz3deLKiDd4MwLAr2ffDwbntiPDxyMuODJ0k6JBwCkjA=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vlVDDvSPxYzPT5hp9ToXi+DFzjOdLY1Zsnkt3gnIar9QycKhxJJ8l6xpyQ5Y+9ysct6mda0lrP9I3/+/Fwp0zPfmk2aLpZ8rYYI7M4w0vIQKGaj5EpWq61LJ1pgSDHlQs85bXitenU9Tlhloic6DpGjGyLD5ES5TYVcw6jNqNg7KU/IGlr0IFKpWF4X0Q5DZpdnea4FjFAHbcInXW/sqFjZaejQnMLHQGIKYAnkgKmro+9GiqcAz6ha3zs9hou+xFKPGx3CBpnBM4UpPwfrf8wEe5wxtcGfx6L5AKmrW3SKZ259G65BAK3XEgwIaVf2TfaTUkzGnEjf2mm6qYzRESA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fqxwHiQ05IwAKIB6R3EdLMOC3GD/fdTTH3lZ1YWi4ys=;
 b=mxbk5hvUK5uZlUHacaLP4OrXKvdOlw7MPhej2uufGkORfkIlaND+DQrayIQgLB5DVzmjMfzNTZnUqSHq7zftkLA1LO59PsBYqn9Dt7qYMxaycbEkHwY3aHG+O+mYRwk+8ns8wYBad2jtkxB7OjeeRJOAcSMmOK4NaGk0bdnxZRmMz02BntpvKdfqGFs5oNoBJh74lOnmjtHdL1UOrNd2MU4L8M2szPGl8MGR+ZM3csk3GhnOuIu9AR6uVIg0Vlh01Xqyz3ctd8jLpbiKDYQh+9IHrwBcdPxNb96dmnSSIpAJxMMzg4ibkrHxkUAVgUm0yMLs91Ud1pdy8zOjNwH/mg==
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=fqxwHiQ05IwAKIB6R3EdLMOC3GD/fdTTH3lZ1YWi4ys=;
 b=rlLm81i1RD3+WENNtD8mGcK2g0rJbzhlEgnEFm3Urqa8nWTKNTV0vB6tnYAM3RNmYSJ0hMdUKHfY2DmVWxSdDndvafIfVbDwMPNPs35b5iwtSqNj8qAQAVWUNt+pfxuEyJtstTdsizxaVci2kndZ8sNon3akYUfzRj2d+W8Z6Gg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: Xen-devel <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: [RFC PATCH 4/4] xen/arm: ffa: Enable VM to VM without firmware
Thread-Topic: [RFC PATCH 4/4] xen/arm: ffa: Enable VM to VM without firmware
Thread-Index: AQHbH62Qf+ttV1tReUGm5QhxkAZjZ7KiVpUAgAR/04A=
Date: Mon, 4 Nov 2024 07:26:48 +0000
Message-ID: <9A0A125D-04ED-4454-8E94-1E9D4F6EFE09@arm.com>
References: <cover.1729069025.git.bertrand.marquis@arm.com>
 <57c59cae4141dd9601d7b4e9260030a16809b764.1729069025.git.bertrand.marquis@arm.com>
 <CAHUa44FPihAeGEZsj023tj22+a_xLj08gu+AsF_0E5v3PNs=jQ@mail.gmail.com>
In-Reply-To:
 <CAHUa44FPihAeGEZsj023tj22+a_xLj08gu+AsF_0E5v3PNs=jQ@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.3776.700.51)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|AM9PR08MB6036:EE_|AMS1EPF0000004D:EE_|AM9PR08MB6290:EE_
X-MS-Office365-Filtering-Correlation-Id: c8456499-939b-4a43-6245-08dcfca2111c
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?akNKOUlXQXFwdnBjU0FKMCtwNlIzbGgyaVc1RTdKVEJjV0dydlJianJWaGVx?=
 =?utf-8?B?RVZmaUNYazZ3dFpxMVdlWVFPd3FpZkkrMnV6c0lxWkYxUjZSOU94MCttcStU?=
 =?utf-8?B?VmVEdmpocHcvUGdKMDh3b1BlSlJxWnBSNU9HQnBFZ0gzbTEyVWRaMWZKdE5t?=
 =?utf-8?B?d1hKKzVDUGZGRkRJUGRESUxHeHd0WW1HRG0wd2dMWmZYcU1zY3ppN2d3QW9q?=
 =?utf-8?B?bU1BcTVHejZjSkVnQ0lhRFNmQUFPRTFpUnljdzh2OHBSamwwSEEvcGQ2N1Nx?=
 =?utf-8?B?VGZ5TUk4Q0g1RGFOV25hbEdDWUNiM2l2STBCWnFtbUNMSllLa1dqOGdrd1Ax?=
 =?utf-8?B?dnVYb1lBODRvTGw3d3F2b25xZGdwRmorU01jVnFkU0t3clJFZFlQRGNSQ29N?=
 =?utf-8?B?RHprODRTWFBYMUxYTW40bGpSWURFRHdWdnprOEg2QzhFekhwd09WejJmZVNt?=
 =?utf-8?B?VmJ4RW8rQkdzNE8rdWJTd0ZvbkFKZkJZQk4rQXpwTzNLR0IyV0pvbG1Kcmdw?=
 =?utf-8?B?MXIwbjR4anViSTErTElQOXBVNHFmaWxtYmRPRnB6Qm5JQTAzZkY5bTNXRkN3?=
 =?utf-8?B?NWVudDJZWWI2Vy9RTVE2R1V1dW8rdm5rZ2FPZkUxQUpYTHFYaHlMZGNEZVJj?=
 =?utf-8?B?QmdSL3VrRTRmNFdNT0I5TW9zQWVRbFRFeWw3ekU4OWNVUEMrOE04UHh0elhr?=
 =?utf-8?B?NVpXenpnalkvT05JWTRjWE04dmFYMmk2MXRsYjUyWTRNSnJYVWVFV3Buc3VH?=
 =?utf-8?B?WlBFTXhwUUQrcHlKRjIyWnYrY1BldzY3VGYwQ0hpNzhvM3k1RmFVMjFqRXg5?=
 =?utf-8?B?T1hmSUVZVE5mYlRGS0FWbHIzQ21hZjd2NW1UZ25KYUZpNmQvK0JGdnJtODlo?=
 =?utf-8?B?dWdNU3dmK1VtbFRYekhRUnZiRFp4NmpsVFYzWERkemdSUWtKTFN1Si9Vaitt?=
 =?utf-8?B?cG02YTBwT3hJNmxPL1VIZ1JPYmV0eEpKbHk0L3FPejdIUElENUZvMWNPOTRI?=
 =?utf-8?B?aklwNGk2NTF1OWhobmU5Y05rNHBEdk5ZMlR5Y0R6TnpvcVA3dno1NTI0bVZ4?=
 =?utf-8?B?c2RHWHNleWREM05HaXNwSDBOTFJRZStBN3U1a1QxN1Q0bDRWMy82eVFsaXl3?=
 =?utf-8?B?blVYa1A1TDFUYnhsQlNoTFVaZ1hWYkNicnhoUmY3Zm82MC94NmhoaUhFSXVx?=
 =?utf-8?B?THRKdGdxNDdPNE5ML3ZjSGxKdlY2T0t3MSswazljT0hKeXFKODUxa0g1SjI2?=
 =?utf-8?B?bDUvTjVZeUdKalhldWZLTGpjTXNxbG9mNWVLVzM4MEYxamxmK2puQ20zOU5B?=
 =?utf-8?B?ZzNCU0puNFc5K0J0dXhxODRjMGQ2anR4ekhzblRCNzRha0t4bmN5d2Fienls?=
 =?utf-8?B?RUxjc0ZLaUFTbDNVWGRzQVhIcXVaNzI3eFdlOXhncE5NQUlhazhyVndjeGwy?=
 =?utf-8?B?cTh6amx0SG1naGF2dWNGTmd6UDJSaEJyS3FjVGFyZTBiaWFlSFlmdnZoNkp0?=
 =?utf-8?B?YWhBOXdNNnJCUEtpb1Jvb3VWaGdBMWJTc1JnWGgxZjdNT3VGU0hZUUt1cGwr?=
 =?utf-8?B?djRvTXpJUEVIUmE0enFtTFFRVlF4VWU3Ykx6Um5MakM5TlRQWmQwWlJSSTd0?=
 =?utf-8?B?MVVIZXBsVmFiL3NBc3JSVnRiVWZ3bnV6NXRBdmNRcWF6WDJrV0IxTnlaME1s?=
 =?utf-8?B?VlFGclZPblo1eklZaE1aNHZRb1lMeTBhd0xEekVMdXlSVDJiLzIxcjJsNTln?=
 =?utf-8?B?VzRLYUpCMjY5T0d5dTZxanRQRlNrK3A4cmdRUXF3VFV5V1EveEdoVm9QMHhF?=
 =?utf-8?Q?/baXN4llukco9/MyRxIbQZp3aNyQOKJVTM4L4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0B849171D3C91D4EA3DDFCD503B0DD1F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6036
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:25a::24];domain=DB9PR08MB6588.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF0000004D.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9458110f-8345-4274-21fb-08dcfca20b27
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|1800799024|14060799003|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SlRHK04rS2RHbEhLSUk0NlRaaFRuZDRWQTFXanp0WHhKeTVLdWVhKy9yUi9W?=
 =?utf-8?B?VVFKazY5QmdYc3Jua1FDRVFmNjFzQ3FMSVVBVDF0d2Vob0h1UmhkcUdpVGVT?=
 =?utf-8?B?bDVBNmY3Z3lGaGpmc3Y2Tk83SDJBWTB4MFh5Sy9IcDV4V21GMTV0ZUxvbk5h?=
 =?utf-8?B?NThiWTlLU3h5cE9vaXVXU0I4aGhCbUVNUG1pdldTeWpqMzExQndscEcwZlZl?=
 =?utf-8?B?SkZITlBlM1h6Uk1SQnc3NzFjN1VySXFNTWxndzA4ajVwcmRTaWQ1dnRtZDl1?=
 =?utf-8?B?K0U0aWhaK1RLUXQvTFROeXZxcDJod0l6anNuVnozVGxaVkFPSkdyTk9VRjJQ?=
 =?utf-8?B?MGRHSzZDQjNKMFJsUXZ0ejUwN1FUMTZKL0JieWtkbzNIWmtGSmdmenpjOFFU?=
 =?utf-8?B?bDh0QTNVdURvaUx1N2VUaEdFNkJzdVlqS095T0VvNlBHdXJ1T2FWZzdPcElY?=
 =?utf-8?B?dGRCbTFDTW42UTNzZGJvMGgxM2JKV21QU21RczFYNytqL1NKYTdlTERkVlIz?=
 =?utf-8?B?M1lWNUhzM1dmdlVMMWpKRzhReW9TRjd3clgycXZjalh5SWVkWmpvSEJFbFdB?=
 =?utf-8?B?Vko5ckZzdEw3Z0laYXc1NktrbkJURytwQmlRTm9UYVZvQm1XYUxuTzAxdmVL?=
 =?utf-8?B?YkhrZ1k5S3VoRmZmVE5RZXlDV25ORlZzS1A3eWZvOHNsV0hFaDV0QnNRSWxX?=
 =?utf-8?B?b3h5MUFhcS9wRjErMEVuTWcwUWJYSDhjc1J0K3hJcnVxQVRhQlgxd1p1T2RI?=
 =?utf-8?B?YzZNdWNwK0lsMTkvSHBpQmRIeTd2ald1Sktpd0FiejEvT0JiTUJ1U25Ddy9n?=
 =?utf-8?B?M0huNm54Mlc1Q1NZSDZtZHJNM1o4ZllmSVhaOGtCbG1OK0piWkdUMjBJUnZ1?=
 =?utf-8?B?Z0pTZ3luWTd0WjVmeENTcUp5dVN0T05sVUJEbTBSTUJBenQxVTlVVmw0dEZi?=
 =?utf-8?B?c2FCTmp6SXdqa1hhSFVORUNKWjZoR0RsanRxbEIxcFYzTittL0pNZktTL204?=
 =?utf-8?B?cmR2UW5jVHl5c2owNC9IVmpIVTlDbWJKK1NIZ1BiTlNZYUFrMkFTWFFSVEVE?=
 =?utf-8?B?T3ZZclpiQ2FJSkQzTkt1dWRQY0tjaW1wMldnMHRQRGpJZUV2VWRldVcxQW5O?=
 =?utf-8?B?aEJOMk5mU01zN25MV3dQMFF1cHp3a2JXVC9Db3JqcExRVmxJWlZvaTk2Wk13?=
 =?utf-8?B?aHh0UDBLekZkMVB3ZjFVT2d1RGdVR01HTzlGanZpaUNrZ3dkR3FQMk9GS0Fu?=
 =?utf-8?B?dEtkNGZKL21DVlJFaWRWU3NSZ3R0bCtaV3l1MXBHeTNzSUhMSFRMWVlWLzZC?=
 =?utf-8?B?ZlZJc29oUVNwMmtkbjhxbS85VXdkbjlEblpEVVV0UWRtaXZGYnVlTVZBU1Vk?=
 =?utf-8?B?RmpDUlpPdHAwcTdya0NqVjdxSGJrZjdKdDBEcDVGRXR2ZWsrNnNybFpjdmg2?=
 =?utf-8?B?dE41QWxIRGpiaDhNVGo0Z1cyQ1VZd0VhZDhFQjV1YnloSWdBd1FiSEc4WEQ3?=
 =?utf-8?B?LzJ5cHFITUFsd0VaYU9DYm01VGpKWDRtU1lhZVVZNjZBNDFUbjJhbFhCZXpJ?=
 =?utf-8?B?a2lsZ0FmNm1HTmVQSG5wMEFNVXh5Sm5VdE0xMjZhQS9YcnFxeW4wM2VpbFNC?=
 =?utf-8?B?TzFaN2pnRXVGaVV1Vk1rd2Y2N2tVd2hxRWJnR3ZyN2t6TWdSM0RPN2hGU1pI?=
 =?utf-8?B?QjVnLytIUTZsL3F3MGg2Y0RKWGNmVDFwbHIvV3E4cjZlSjlVRGRFVk1rak5Z?=
 =?utf-8?B?dE4xcVAwWEk0NG5raUhmdXBmNzVPNmF3WVlFVWF5WkVrQ0owREsxNjkrTTJs?=
 =?utf-8?B?QUZoOVhvM0dObUhmZXBSemVCUFJJQkowSUZsZjB4azRybW5CUWFHYVY5eFY3?=
 =?utf-8?B?R1dzUFBTeVFzUUVxdDAzOU1MVnJNMllPQWNjR2xxTHlqV0E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(376014)(35042699022)(1800799024)(14060799003)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2024 07:26:58.1117
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c8456499-939b-4a43-6245-08dcfca2111c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF0000004D.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6290

SGkgSmVucywNCg0KPiBPbiAxIE5vdiAyMDI0LCBhdCAxMTo0NCwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBXZWQsIE9jdCAxNiwgMjAyNCBhdCAxMToyMuKAr0FNIEJlcnRyYW5kIE1hcnF1aXMNCj4g
PGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4gd3JvdGU6DQo+PiANCj4+IFdoZW4gVk0gdG8gVk0g
c3VwcG9ydCBpcyBhY3RpdmF0ZWQgYW5kIHRoZXJlIGlzIG5vIHN1aXRhYmxlIEZGLUEgc3VwcG9y
dA0KPj4gaW4gdGhlIGZpcm13YXJlLCBlbmFibGUgRkYtQSBzdXBwb3J0IGZvciBWTXMgdG8gYWxs
b3cgdXNpbmcgaXQgZm9yIFZNIHRvDQo+PiBWTSBjb21tdW5pY2F0aW9ucy4NCj4+IElmIHRoZXJl
IGlzIE9wdGVlIHJ1bm5pbmcgaW4gdGhlIHNlY3VyZSB3b3JsZCBhbmQgdXNpbmcgdGhlIG5vbiBG
Ri1BDQo+PiBjb21tdW5pY2F0aW9uIHN5c3RlbSwgaGF2aW5nIENPTkZJR19GRkFfVk1fVE9fVk0g
Y291bGQgYmUgbm9uIGZ1bmN0aW9uYWwNCj4+IChpZiBvcHRlZSBpcyBwcm9iZWQgZmlyc3QpIG9y
IE9wdGVlIGNvdWxkIGJlIG5vbiBmdW5jdGlvbmFsIChpZiBGRi1BIGlzDQo+PiBwcm9iZWQgZmly
c3QpIHNvIGl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byBhY3RpdmF0ZSB0aGUgY29uZmlndXJhdGlv
bg0KPj4gb3B0aW9uIGZvciBzdWNoIHN5c3RlbXMuDQo+PiANCj4+IFRvIG1ha2UgYnVmZmVyIGZ1
bGwgbm90aWZpY2F0aW9uIHdvcmsgYmV0d2VlbiBWTXMgd2hlbiB0aGVyZSBpcyBub3QNCj4+IGZp
cm13YXJlLCByZXdvcmsgdGhlIG5vdGlmaWNhdGlvbiBoYW5kbGluZyBhbmQgbW9kaWZ5IHRoZSBn
bG9iYWwgZmxhZyB0bw0KPj4gb25seSBiZSB1c2VkIGFzIGNoZWNrIGZvciBmaXJtd2FyZSBub3Rp
ZmljYXRpb24gc3VwcG9ydCBpbnN0ZWFkLg0KPj4gDQo+PiBNb2RpZnkgcGFydF9pbmZvX2dldCB0
byByZXR1cm4gdGhlIGxpc3Qgb2YgVk1zIHdoZW4gdGhlcmUgaXMgbm8gZmlybXdhcmUNCj4+IHN1
cHBvcnQuDQo+PiANCj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5k
Lm1hcnF1aXNAYXJtLmNvbT4NCj4+IC0tLQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmEuYyAgICAg
ICAgICB8ICAxMSArKysNCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX25vdGlmLmMgICAgfCAxMTgg
KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0NCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZh
X3BhcnRpbmZvLmMgfCAgIDIgKw0KPj4gMyBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCsp
LCA1OCBkZWxldGlvbnMoLSkNCj4gDQo+IEkgdGhpbmsgaXQgaXMgZGVzaXJhYmxlIG9yIGF0IGxl
YXN0IGEgZ29vZCBnb2FsIHRvIGJlIGFibGUgdG8gaGF2ZSBhbGwNCj4gVEVFIGNvbmZpZ3VyYXRp
b25zIGVuYWJsZWQgYXQgY29tcGlsZSB0aW1lLg0KPiANCj4gRm9yIG9wdGVlX3Byb2JlKCkgdG8g
c3VjY2VlZCwgYSBEVCBub2RlIHdpdGggY29tcGF0aWJsZQ0KPiAibGluYXJvLG9wdGVlLXR6IiBt
dXN0IGJlIHByZXNlbnQsIGFuZCBhIHRydXN0ZWQgT1MgcmVzcG9uZGluZyB3aXRoDQo+IHRoZSBV
VUlEIHVzZWQgYnkgT1AtVEVFLiBGYWxzZSBwb3NpdGl2ZXMgY2FuIGJlIHJ1bGVkIG91dCB1bmxl
c3MgdGhlDQo+IHN5c3RlbSBpcyBncm9zc2x5IG1pc2NvbmZpZ3VyZWQgYW5kIHNob3VsZG4ndCBi
ZSB1c2VkLg0KPiANCj4gSWYgd2UgY291bGQgbWFrZSB0aGUgcHJvYmUgb3JkZXIgZGV0ZXJtaW5p
c3RpYyB3aXRoIE9QLVRFRSBiZWZvcmUNCj4gRkYtQSwgd2Ugc2hvdWxkIGJlIE9LLiBJZiB0aGVy
ZSBpcyBhbiBvZGQgc3lzdGVtIHdpdGggT1AtVEVFIFNNQyBBQkkNCj4gaW4gdGhlIHNlY3VyZSB3
b3JsZCB0aGF0IHdhbnRzIHRvIHVzZSBGRi1BIFZNIHRvIFZNLCByZW1vdmluZyB0aGUNCj4gImxp
bmFybyxvcHRlZS10eiIgY29tcGF0aWJsZSBub2RlIGZyb20gRFQgaXMgZW5vdWdoIHRvIGRpc2Fi
bGUNCj4gb3B0ZWVfcHJvYmUoKSB3aXRob3V0IHJlY29tcGlsaW5nIFhlbi4NCg0KSSBkbyBhZ3Jl
ZSB3aXRoIHRoZSBkZXRlcm1pbmlzdGljIGFyZ3VtZW50IGJ1dCBJIGFtIG5vdCBzdXJlIGhhdmlu
Zw0KdGhlIG9yZGVyIGZvcmNlZCBpcyB0aGUgcmlnaHQgc29sdXRpb24uDQoNCk1heWJlIHdlIGNv
dWxkIHVzZSBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCBzbyB0aGF0IG9uZSBjb3VsZA0Kc2VsZWN0
IGV4cGxpY2l0bHkgdGhlIHRlZToNCnRlZT1mZmEgLyB0ZWU9b3B0ZWUNCg0KSWYgd2UgY291bGQg
cHJldmVudCB0byBtb2RpZnkgdGhlIGRldmljZSB0cmVlIHRoYXQgd2lsbCBwcm9iYWJseSBtYWtl
DQp0aGluZ3MgZWFzaWVyLg0KDQpXaGF0IGRvIHlvdSB0aGluayA/DQoNCkNoZWVycw0KQmVydHJh
bmQNCg0KPiANCj4gQ2hlZXJzLA0KPiBKZW5zDQo+IA0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVu
L2FyY2gvYXJtL3RlZS9mZmEuYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMNCj4+IGluZGV4IDIx
ZDQxYjQ1MmRjOS4uNmQ0Mjc4NjRmM2RhIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3Rl
ZS9mZmEuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4gQEAgLTMyNCw4ICsz
MjQsMTEgQEAgc3RhdGljIGludCBmZmFfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCj4+
ICAgICBzdHJ1Y3QgZmZhX2N0eCAqY3R4Ow0KPj4gICAgIGludCByZXQ7DQo+PiANCj4+ICsjaWZu
ZGVmIENPTkZJR19GRkFfVk1fVE9fVk0NCj4+ICAgICBpZiAoICFmZmFfZndfdmVyc2lvbiApDQo+
PiAgICAgICAgIHJldHVybiAtRU5PREVWOw0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gICAgIC8qDQo+
PiAgICAgICogV2UgYXJlIHVzaW5nIHRoZSBkb21haW5faWQgKyAxIGFzIHRoZSBGRi1BIElEIGZv
ciBWTXMgYXMgRkYtQSBJRCAwIGlzDQo+PiAgICAgICogcmVzZXJ2ZWQgZm9yIHRoZSBoeXBlcnZp
c29yIGFuZCB3ZSBvbmx5IHN1cHBvcnQgc2VjdXJlIGVuZHBvaW50cyB1c2luZw0KPj4gQEAgLTU0
OSw3ICs1NTIsMTUgQEAgZXJyX25vX2Z3Og0KPj4gICAgIGJpdG1hcF96ZXJvKGZmYV9md19hYmlf
c3VwcG9ydGVkLCBGRkFfQUJJX0JJVE1BUF9TSVpFKTsNCj4+ICAgICBwcmludGsoWEVOTE9HX1dB
Uk5JTkcgIkFSTSBGRi1BIE5vIGZpcm13YXJlIHN1cHBvcnRcbiIpOw0KPj4gDQo+PiArI2lmZGVm
IENPTkZJR19GRkFfVk1fVE9fVk0NCj4+ICsgICAgSU5JVF9MSVNUX0hFQUQoJmZmYV90ZWFyZG93
bl9oZWFkKTsNCj4+ICsgICAgaW5pdF90aW1lcigmZmZhX3RlYXJkb3duX3RpbWVyLCBmZmFfdGVh
cmRvd25fdGltZXJfY2FsbGJhY2ssIE5VTEwsIDApOw0KPj4gKw0KPj4gKyAgICBwcmludGsoWEVO
TE9HX0lORk8gIkFSTSBGRi1BIG9ubHkgYXZhaWxhYmxlIGJldHdlZW4gVk1zXG4iKTsNCj4+ICsg
ICAgcmV0dXJuIHRydWU7DQo+PiArI2Vsc2UNCj4+ICAgICByZXR1cm4gZmFsc2U7DQo+PiArI2Vu
ZGlmDQo+PiB9DQo+PiANCj4+IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVlX21lZGlhdG9yX29wcyBm
ZmFfb3BzID0NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9ub3RpZi5jIGIv
eGVuL2FyY2gvYXJtL3RlZS9mZmFfbm90aWYuYw0KPj4gaW5kZXggMDUyYjNlMzY0YTcwLi5mMmM4
N2QxMzIwZGUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9ub3RpZi5jDQo+
PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9ub3RpZi5jDQo+PiBAQCAtMTYsNyArMTYsNyBA
QA0KPj4gDQo+PiAjaW5jbHVkZSAiZmZhX3ByaXZhdGUuaCINCj4+IA0KPj4gLXN0YXRpYyBib29s
IF9fcm9fYWZ0ZXJfaW5pdCBub3RpZl9lbmFibGVkOw0KPj4gK3N0YXRpYyBib29sIF9fcm9fYWZ0
ZXJfaW5pdCBmd19ub3RpZl9lbmFibGVkOw0KPj4gc3RhdGljIHVuc2lnbmVkIGludCBfX3JvX2Fm
dGVyX2luaXQgbm90aWZfc3JpX2lycTsNCj4+IA0KPj4gaW50IGZmYV9oYW5kbGVfbm90aWZpY2F0
aW9uX2JpbmQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiBAQCAtMjcsMjEgKzI3LDE3
IEBAIGludCBmZmFfaGFuZGxlX25vdGlmaWNhdGlvbl9iaW5kKHN0cnVjdCBjcHVfdXNlcl9yZWdz
ICpyZWdzKQ0KPj4gICAgIHVpbnQzMl90IGJpdG1hcF9sbyA9IGdldF91c2VyX3JlZyhyZWdzLCAz
KTsNCj4+ICAgICB1aW50MzJfdCBiaXRtYXBfaGkgPSBnZXRfdXNlcl9yZWcocmVncywgNCk7DQo+
PiANCj4+IC0gICAgaWYgKCAhbm90aWZfZW5hYmxlZCApDQo+PiAtICAgICAgICByZXR1cm4gRkZB
X1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gLQ0KPj4gICAgIGlmICggKHNyY19kc3QgJiAweEZGRkZV
KSAhPSBmZmFfZ2V0X3ZtX2lkKGQpICkNCj4+ICAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJ
RF9QQVJBTUVURVJTOw0KPj4gDQo+PiAgICAgaWYgKCBmbGFncyApICAgIC8qIE9ubHkgZ2xvYmFs
IG5vdGlmaWNhdGlvbnMgYXJlIHN1cHBvcnRlZCAqLw0KPj4gICAgICAgICByZXR1cm4gRkZBX1JF
VF9ERU5JRUQ7DQo+PiANCj4+IC0gICAgLyoNCj4+IC0gICAgICogV2Ugb25seSBzdXBwb3J0IG5v
dGlmaWNhdGlvbnMgZnJvbSBTUCBzbyBubyBuZWVkIHRvIGNoZWNrIHRoZSBzZW5kZXINCj4+IC0g
ICAgICogZW5kcG9pbnQgSUQsIHRoZSBTUE1DIHdpbGwgdGFrZSBjYXJlIG9mIHRoYXQgZm9yIHVz
Lg0KPj4gLSAgICAgKi8NCj4+IC0gICAgcmV0dXJuIGZmYV9zaW1wbGVfY2FsbChGRkFfTk9USUZJ
Q0FUSU9OX0JJTkQsIHNyY19kc3QsIGZsYWdzLCBiaXRtYXBfaGksDQo+PiAtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYml0bWFwX2xvKTsNCj4+ICsgICAgaWYgKCBGRkFfSURfSVNfU0VDVVJF
KHNyY19kc3Q+PjE2KSAmJiBmd19ub3RpZl9lbmFibGVkICkNCj4+ICsgICAgICAgIHJldHVybiBm
ZmFfc2ltcGxlX2NhbGwoRkZBX05PVElGSUNBVElPTl9CSU5ELCBzcmNfZHN0LCBmbGFncywNCj4+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFwX2hpLCBiaXRtYXBfbG8pOw0K
Pj4gKw0KPj4gKyAgICByZXR1cm4gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gfQ0KPj4gDQo+
PiBpbnQgZmZhX2hhbmRsZV9ub3RpZmljYXRpb25fdW5iaW5kKHN0cnVjdCBjcHVfdXNlcl9yZWdz
ICpyZWdzKQ0KPj4gQEAgLTUxLDMyICs0NywzNiBAQCBpbnQgZmZhX2hhbmRsZV9ub3RpZmljYXRp
b25fdW5iaW5kKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAgIHVpbnQzMl90IGJp
dG1hcF9sbyA9IGdldF91c2VyX3JlZyhyZWdzLCAzKTsNCj4+ICAgICB1aW50MzJfdCBiaXRtYXBf
aGkgPSBnZXRfdXNlcl9yZWcocmVncywgNCk7DQo+PiANCj4+IC0gICAgaWYgKCAhbm90aWZfZW5h
YmxlZCApDQo+PiAtICAgICAgICByZXR1cm4gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gLQ0K
Pj4gICAgIGlmICggKHNyY19kc3QgJiAweEZGRkZVKSAhPSBmZmFfZ2V0X3ZtX2lkKGQpICkNCj4+
ICAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4gDQo+PiAtICAg
IC8qDQo+PiAtICAgICAqIFdlIG9ubHkgc3VwcG9ydCBub3RpZmljYXRpb25zIGZyb20gU1Agc28g
bm8gbmVlZCB0byBjaGVjayB0aGUNCj4+IC0gICAgICogZGVzdGluYXRpb24gZW5kcG9pbnQgSUQs
IHRoZSBTUE1DIHdpbGwgdGFrZSBjYXJlIG9mIHRoYXQgZm9yIHVzLg0KPj4gLSAgICAgKi8NCj4+
IC0gICAgcmV0dXJuICBmZmFfc2ltcGxlX2NhbGwoRkZBX05PVElGSUNBVElPTl9VTkJJTkQsIHNy
Y19kc3QsIDAsIGJpdG1hcF9oaSwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0
bWFwX2xvKTsNCj4+ICsgICAgaWYgKCBGRkFfSURfSVNfU0VDVVJFKHNyY19kc3Q+PjE2KSAmJiBm
d19ub3RpZl9lbmFibGVkICkNCj4+ICsgICAgICAgIHJldHVybiAgZmZhX3NpbXBsZV9jYWxsKEZG
QV9OT1RJRklDQVRJT05fVU5CSU5ELCBzcmNfZHN0LCAwLCBiaXRtYXBfaGksDQo+PiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXBfbG8pOw0KPj4gKw0KPj4gKyAgICByZXR1
cm4gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gfQ0KPj4gDQo+PiB2b2lkIGZmYV9oYW5kbGVf
bm90aWZpY2F0aW9uX2luZm9fZ2V0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gew0K
Pj4gICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47DQo+PiAgICAgc3RydWN0
IGZmYV9jdHggKmN0eCA9IGQtPmFyY2gudGVlOw0KPj4gKyAgICBib29sIG5vdGlmX3BlbmRpbmcg
PSBmYWxzZTsNCj4+IA0KPj4gLSAgICBpZiAoICFub3RpZl9lbmFibGVkICkNCj4+ICsjaWZuZGVm
IENPTkZJR19GRkFfVk1fVE9fVk0NCj4+ICsgICAgaWYgKCAhZndfbm90aWZfZW5hYmxlZCApDQo+
PiAgICAgew0KPj4gICAgICAgICBmZmFfc2V0X3JlZ3NfZXJyb3IocmVncywgRkZBX1JFVF9OT1Rf
U1VQUE9SVEVEKTsNCj4+ICAgICAgICAgcmV0dXJuOw0KPj4gICAgIH0NCj4+ICsjZW5kaWYNCj4+
IA0KPj4gLSAgICBpZiAoIHRlc3RfYW5kX2NsZWFyX2Jvb2woY3R4LT5ub3RpZi5zZWN1cmVfcGVu
ZGluZykgKQ0KPj4gKyAgICBub3RpZl9wZW5kaW5nID0gY3R4LT5ub3RpZi5zZWN1cmVfcGVuZGlu
ZzsNCj4+ICsjaWZkZWYgQ09ORklHX0ZGQV9WTV9UT19WTQ0KPj4gKyAgICBub3RpZl9wZW5kaW5n
IHw9IGN0eC0+bm90aWYuYnVmZl9mdWxsX3BlbmRpbmc7DQo+PiArI2VuZGlmDQo+PiArDQo+PiAr
ICAgIGlmICggbm90aWZfcGVuZGluZyApDQo+PiAgICAgew0KPj4gICAgICAgICAvKiBBIHBlbmRp
bmcgZ2xvYmFsIG5vdGlmaWNhdGlvbiBmb3IgdGhlIGd1ZXN0ICovDQo+PiAgICAgICAgIGZmYV9z
ZXRfcmVncyhyZWdzLCBGRkFfU1VDQ0VTU182NCwgMCwNCj4+IEBAIC0xMDMsMTEgKzEwMywxMyBA
QCB2b2lkIGZmYV9oYW5kbGVfbm90aWZpY2F0aW9uX2dldChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq
cmVncykNCj4+ICAgICB1aW50MzJfdCB3NiA9IDA7DQo+PiAgICAgdWludDMyX3QgdzcgPSAwOw0K
Pj4gDQo+PiAtICAgIGlmICggIW5vdGlmX2VuYWJsZWQgKQ0KPj4gKyNpZm5kZWYgQ09ORklHX0ZG
QV9WTV9UT19WTQ0KPj4gKyAgICBpZiAoICFmd19ub3RpZl9lbmFibGVkICkNCj4+ICAgICB7DQo+
PiAgICAgICAgIGZmYV9zZXRfcmVnc19lcnJvcihyZWdzLCBGRkFfUkVUX05PVF9TVVBQT1JURUQp
Ow0KPj4gICAgICAgICByZXR1cm47DQo+PiAgICAgfQ0KPj4gKyNlbmRpZg0KPj4gDQo+PiAgICAg
aWYgKCAocmVjdiAmIDB4RkZGRlUpICE9IGZmYV9nZXRfdm1faWQoZCkgKQ0KPj4gICAgIHsNCj4+
IEBAIC0xMTUsNyArMTE3LDggQEAgdm9pZCBmZmFfaGFuZGxlX25vdGlmaWNhdGlvbl9nZXQoc3Ry
dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgICAgIHJldHVybjsNCj4+ICAgICB9DQo+
PiANCj4+IC0gICAgaWYgKCBmbGFncyAmICggRkZBX05PVElGX0ZMQUdfQklUTUFQX1NQIHwgRkZB
X05PVElGX0ZMQUdfQklUTUFQX1NQTSApICkNCj4+ICsgICAgaWYgKCBmd19ub3RpZl9lbmFibGVk
ICYmIChmbGFncyAmICggRkZBX05PVElGX0ZMQUdfQklUTUFQX1NQDQo+PiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRkZBX05PVElGX0ZMQUdfQklUTUFQX1NQTSAp
KSApDQo+PiAgICAgew0KPj4gICAgICAgICBzdHJ1Y3QgYXJtX3NtY2NjXzFfMl9yZWdzIGFyZyA9
IHsNCj4+ICAgICAgICAgICAgIC5hMCA9IEZGQV9OT1RJRklDQVRJT05fR0VULA0KPj4gQEAgLTE3
MCwxNSArMTczLDE0IEBAIGludCBmZmFfaGFuZGxlX25vdGlmaWNhdGlvbl9zZXQoc3RydWN0IGNw
dV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgdWludDMyX3QgYml0bWFwX2xvID0gZ2V0X3VzZXJf
cmVnKHJlZ3MsIDMpOw0KPj4gICAgIHVpbnQzMl90IGJpdG1hcF9oaSA9IGdldF91c2VyX3JlZyhy
ZWdzLCA0KTsNCj4+IA0KPj4gLSAgICBpZiAoICFub3RpZl9lbmFibGVkICkNCj4+IC0gICAgICAg
IHJldHVybiBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiAtDQo+PiAgICAgaWYgKCAoc3JjX2Rz
dCA+PiAxNikgIT0gZmZhX2dldF92bV9pZChkKSApDQo+PiAgICAgICAgIHJldHVybiBGRkFfUkVU
X0lOVkFMSURfUEFSQU1FVEVSUzsNCj4+IA0KPj4gLSAgICAvKiBMZXQgdGhlIFNQTUMgY2hlY2sg
dGhlIGRlc3RpbmF0aW9uIG9mIHRoZSBub3RpZmljYXRpb24gKi8NCj4+IC0gICAgcmV0dXJuIGZm
YV9zaW1wbGVfY2FsbChGRkFfTk9USUZJQ0FUSU9OX1NFVCwgc3JjX2RzdCwgZmxhZ3MsIGJpdG1h
cF9sbywNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXBfaGkpOw0KPj4gKyAg
ICBpZiAoIEZGQV9JRF9JU19TRUNVUkUoc3JjX2RzdD4+MTYpICYmIGZ3X25vdGlmX2VuYWJsZWQg
KQ0KPj4gKyAgICAgICAgcmV0dXJuIGZmYV9zaW1wbGVfY2FsbChGRkFfTk9USUZJQ0FUSU9OX1NF
VCwgc3JjX2RzdCwgZmxhZ3MsIGJpdG1hcF9sbywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYml0bWFwX2hpKTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIEZGQV9SRVRfTk9UX1NV
UFBPUlRFRDsNCj4+IH0NCj4+IA0KPj4gI2lmZGVmIENPTkZJR19GRkFfVk1fVE9fVk0NCj4+IEBA
IC0xOTAsNyArMTkyLDcgQEAgdm9pZCBmZmFfcmFpc2VfcnhfYnVmZmVyX2Z1bGwoc3RydWN0IGRv
bWFpbiAqZCkNCj4+ICAgICAgICAgcmV0dXJuOw0KPj4gDQo+PiAgICAgaWYgKCAhdGVzdF9hbmRf
c2V0X2Jvb2woY3R4LT5ub3RpZi5idWZmX2Z1bGxfcGVuZGluZykgKQ0KPj4gLSAgICAgICAgdmdp
Y19pbmplY3RfaXJxKGQsIGQtPnZjcHVbMF0sIG5vdGlmX3NyaV9pcnEsIHRydWUpOw0KPj4gKyAg
ICAgICAgdmdpY19pbmplY3RfaXJxKGQsIGQtPnZjcHVbMF0sIEdVRVNUX0ZGQV9OT1RJRl9QRU5E
X0lOVFJfSUQsIHRydWUpOw0KPj4gfQ0KPj4gI2VuZGlmDQo+PiANCj4+IEBAIC0zNjMsNyArMzY1
LDcgQEAgdm9pZCBmZmFfbm90aWZfaW5pdF9pbnRlcnJ1cHQodm9pZCkNCj4+IHsNCj4+ICAgICBp
bnQgcmV0Ow0KPj4gDQo+PiAtICAgIGlmICggbm90aWZfZW5hYmxlZCAmJiBub3RpZl9zcmlfaXJx
IDwgTlJfR0lDX1NHSSApDQo+PiArICAgIGlmICggZndfbm90aWZfZW5hYmxlZCAmJiBub3RpZl9z
cmlfaXJxIDwgTlJfR0lDX1NHSSApDQo+PiAgICAgew0KPj4gICAgICAgICAvKg0KPj4gICAgICAg
ICAgKiBBbiBlcnJvciBoZXJlIGlzIHVubGlrZWx5IHNpbmNlIHRoZSBwcmltYXJ5IENQVSBoYXMg
YWxyZWFkeQ0KPj4gQEAgLTM5NCw0NyArMzk2LDQ3IEBAIHZvaWQgZmZhX25vdGlmX2luaXQodm9p
ZCkNCj4+ICAgICBpbnQgcmV0Ow0KPj4gDQo+PiAgICAgLyogT25seSBlbmFibGUgZncgbm90aWZp
Y2F0aW9uIGlmIGFsbCBBQklzIHdlIG5lZWQgYXJlIHN1cHBvcnRlZCAqLw0KPj4gLSAgICBpZiAo
ICEoZmZhX2Z3X3N1cHBvcnRzX2ZpZChGRkFfTk9USUZJQ0FUSU9OX0JJVE1BUF9DUkVBVEUpICYm
DQo+PiAtICAgICAgICAgICBmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9OT1RJRklDQVRJT05fQklU
TUFQX0RFU1RST1kpICYmDQo+PiAtICAgICAgICAgICBmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9O
T1RJRklDQVRJT05fR0VUKSAmJg0KPj4gLSAgICAgICAgICAgZmZhX2Z3X3N1cHBvcnRzX2ZpZChG
RkFfTk9USUZJQ0FUSU9OX0lORk9fR0VUXzY0KSkgKQ0KPj4gLSAgICAgICAgcmV0dXJuOw0KPj4g
LQ0KPj4gLSAgICBhcm1fc21jY2NfMV8yX3NtYygmYXJnLCAmcmVzcCk7DQo+PiAtICAgIGlmICgg
cmVzcC5hMCAhPSBGRkFfU1VDQ0VTU18zMiApDQo+PiAtICAgICAgICByZXR1cm47DQo+PiAtDQo+
PiAtICAgIGlycSA9IHJlc3AuYTI7DQo+PiAtICAgIG5vdGlmX3NyaV9pcnEgPSBpcnE7DQo+PiAt
ICAgIGlmICggaXJxID49IE5SX0dJQ19TR0kgKQ0KPj4gLSAgICAgICAgaXJxX3NldF90eXBlKGly
cSwgSVJRX1RZUEVfRURHRV9SSVNJTkcpOw0KPj4gLSAgICByZXQgPSByZXF1ZXN0X2lycShpcnEs
IDAsIG5vdGlmX2lycV9oYW5kbGVyLCAiRkYtQSBub3RpZiIsIE5VTEwpOw0KPj4gLSAgICBpZiAo
IHJldCApDQo+PiArICAgIGlmICggZmZhX2Z3X3N1cHBvcnRzX2ZpZChGRkFfTk9USUZJQ0FUSU9O
X0JJVE1BUF9DUkVBVEUpICYmDQo+PiArICAgICAgICAgZmZhX2Z3X3N1cHBvcnRzX2ZpZChGRkFf
Tk9USUZJQ0FUSU9OX0JJVE1BUF9ERVNUUk9ZKSAmJg0KPj4gKyAgICAgICAgIGZmYV9md19zdXBw
b3J0c19maWQoRkZBX05PVElGSUNBVElPTl9HRVQpICYmDQo+PiArICAgICAgICAgZmZhX2Z3X3N1
cHBvcnRzX2ZpZChGRkFfTk9USUZJQ0FUSU9OX0lORk9fR0VUXzY0KSApDQo+PiAgICAgew0KPj4g
LSAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgImZmYTogcmVxdWVzdF9pcnEgaXJxICV1IGZhaWxl
ZDogZXJyb3IgJWRcbiIsDQo+PiAtICAgICAgICAgICAgICAgaXJxLCByZXQpOw0KPj4gLSAgICAg
ICAgcmV0dXJuOw0KPj4gLSAgICB9DQo+PiArICAgICAgICBhcm1fc21jY2NfMV8yX3NtYygmYXJn
LCAmcmVzcCk7DQo+PiArICAgICAgICBpZiAoIHJlc3AuYTAgIT0gRkZBX1NVQ0NFU1NfMzIgKQ0K
Pj4gKyAgICAgICAgICAgIHJldHVybjsNCj4+IA0KPj4gLSAgICBub3RpZl9lbmFibGVkID0gdHJ1
ZTsNCj4+ICsgICAgICAgIGlycSA9IHJlc3AuYTI7DQo+PiArICAgICAgICBub3RpZl9zcmlfaXJx
ID0gaXJxOw0KPj4gKyAgICAgICAgaWYgKCBpcnEgPj0gTlJfR0lDX1NHSSApDQo+PiArICAgICAg
ICAgICAgaXJxX3NldF90eXBlKGlycSwgSVJRX1RZUEVfRURHRV9SSVNJTkcpOw0KPj4gKyAgICAg
ICAgcmV0ID0gcmVxdWVzdF9pcnEoaXJxLCAwLCBub3RpZl9pcnFfaGFuZGxlciwgIkZGLUEgbm90
aWYiLCBOVUxMKTsNCj4+ICsgICAgICAgIGlmICggcmV0ICkNCj4+ICsgICAgICAgIHsNCj4+ICsg
ICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiZmZhOiByZXF1ZXN0X2lycSBpcnEgJXUgZmFp
bGVkOiBlcnJvciAlZFxuIiwNCj4+ICsgICAgICAgICAgICAgICAgICAgaXJxLCByZXQpOw0KPj4g
KyAgICAgICAgICAgIHJldHVybjsNCj4+ICsgICAgICAgIH0NCj4+ICsgICAgICAgIGZ3X25vdGlm
X2VuYWJsZWQgPSB0cnVlOw0KPj4gKyAgICB9DQo+PiB9DQo+PiANCj4+IGludCBmZmFfbm90aWZf
ZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCj4+IHsNCj4+ICAgICBpbnQzMl90IHJlczsN
Cj4+IA0KPj4gLSAgICBpZiAoICFub3RpZl9lbmFibGVkICkNCj4+IC0gICAgICAgIHJldHVybiAw
Ow0KPj4gKyAgICBpZiAoIGZ3X25vdGlmX2VuYWJsZWQgKQ0KPj4gKyAgICB7DQo+PiANCj4+IC0g
ICAgcmVzID0gZmZhX25vdGlmaWNhdGlvbl9iaXRtYXBfY3JlYXRlKGZmYV9nZXRfdm1faWQoZCks
IGQtPm1heF92Y3B1cyk7DQo+PiAtICAgIGlmICggcmVzICkNCj4+IC0gICAgICAgIHJldHVybiAt
RU5PTUVNOw0KPj4gKyAgICAgICAgcmVzID0gZmZhX25vdGlmaWNhdGlvbl9iaXRtYXBfY3JlYXRl
KGZmYV9nZXRfdm1faWQoZCksIGQtPm1heF92Y3B1cyk7DQo+PiArICAgICAgICBpZiAoIHJlcyAp
DQo+PiArICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiArICAgIH0NCj4+IA0KPj4gICAg
IHJldHVybiAwOw0KPj4gfQ0KPj4gDQo+PiB2b2lkIGZmYV9ub3RpZl9kb21haW5fZGVzdHJveShz
dHJ1Y3QgZG9tYWluICpkKQ0KPj4gew0KPj4gLSAgICBpZiAoIG5vdGlmX2VuYWJsZWQgKQ0KPj4g
KyAgICBpZiAoIGZ3X25vdGlmX2VuYWJsZWQgKQ0KPj4gICAgICAgICBmZmFfbm90aWZpY2F0aW9u
X2JpdG1hcF9kZXN0cm95KGZmYV9nZXRfdm1faWQoZCkpOw0KPj4gfQ0KPj4gZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9w
YXJ0aW5mby5jDQo+PiBpbmRleCBkNjk5YTI2N2NjNzYuLjJlMDk0NDBmZTZjMiAxMDA2NDQNCj4+
IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+ICsrKyBiL3hlbi9hcmNo
L2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+IEBAIC0xMjgsMTIgKzEyOCwxNCBAQCB2b2lkIGZm
YV9oYW5kbGVfcGFydGl0aW9uX2luZm9fZ2V0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0K
Pj4gICAgICAgICBnb3RvIG91dDsNCj4+ICAgICB9DQo+PiANCj4+ICsjaWZuZGVmIENPTkZJR19G
RkFfVk1fVE9fVk0NCj4+ICAgICBpZiAoICFmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9QQVJUSVRJ
T05fSU5GT19HRVQpICkNCj4+ICAgICB7DQo+PiAgICAgICAgIC8qIEp1c3QgZ2l2ZSBhbiBlbXB0
eSBwYXJ0aXRpb24gbGlzdCB0byB0aGUgY2FsbGVyICovDQo+PiAgICAgICAgIHJldCA9IEZGQV9S
RVRfT0s7DQo+PiAgICAgICAgIGdvdG8gb3V0Ow0KPj4gICAgIH0NCj4+ICsjZW5kaWYNCj4+IA0K
Pj4gICAgIHJldCA9IGZmYV9yeF9hY3F1aXJlKGQpOw0KPj4gICAgIGlmICggcmV0ICE9IEZGQV9S
RVRfT0sgKQ0KPj4gLS0NCj4+IDIuNDcuMA0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 07:27:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 07:27:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829826.1244726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7rV9-00012o-Ei; Mon, 04 Nov 2024 07:27:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829826.1244726; Mon, 04 Nov 2024 07: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 1t7rV9-00012h-Bv; Mon, 04 Nov 2024 07:27:51 +0000
Received: by outflank-mailman (input) for mailman id 829826;
 Mon, 04 Nov 2024 07:27: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=Gxyb=R7=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1t7rV7-0000WX-R2
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 07:27:49 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20629.outbound.protection.outlook.com
 [2a01:111:f403:2613::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a385b9d-9a7e-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 08:27:47 +0100 (CET)
Received: from DB3PR06CA0031.eurprd06.prod.outlook.com (2603:10a6:8:1::44) by
 AS2PR08MB8384.eurprd08.prod.outlook.com (2603:10a6:20b:55b::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.28; Mon, 4 Nov
 2024 07:27:44 +0000
Received: from DB1PEPF0003922D.eurprd03.prod.outlook.com
 (2603:10a6:8:1:cafe::7) by DB3PR06CA0031.outlook.office365.com
 (2603:10a6:8:1::44) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30 via Frontend
 Transport; Mon, 4 Nov 2024 07:27:44 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB1PEPF0003922D.mail.protection.outlook.com (10.167.8.100) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8137.17
 via Frontend Transport; Mon, 4 Nov 2024 07:27:42 +0000
Received: ("Tessian outbound 4a86a9c66651:v490");
 Mon, 04 Nov 2024 07:27:42 +0000
Received: from L9c4f441d8d52.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DD54DB0E-DE0A-46F9-A92C-BF28EAF855E3.1; 
 Mon, 04 Nov 2024 07:19:42 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L9c4f441d8d52.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 04 Nov 2024 07:19:42 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DB9PR08MB6410.eurprd08.prod.outlook.com (2603:10a6:10:262::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 07:19:39 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%5]) with mapi id 15.20.8114.028; Mon, 4 Nov 2024
 07: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: 4a385b9d-9a7e-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjI5IiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRhMzg1YjlkLTlhN2UtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzA1MjY3LjgwNzkyOSwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Ob2zEJ5MonAxF9nJyHY/7a1WSTZO20hB/I9QBNUmxK0CYjftv8EI+/fQrQftmWW8aGFXGb3dsmdDdWruNUdbp5mybbuvgAOcLuwL9dq5lEdJxYthtAwbzKdOByLiziUmZuOPlIJV2E7JHAjVrLujDSnaeJ1AcKYu0NVzUdfvhpUOcFiWrbWd5/57wSTxODw1IT6vwBs7kUD/IDB0L9bLJ9XuOwrckJjJ/bqml0o1ylWT8zHezvjBzK7a7SEAaM+xg9JQg9th24YAz9KYkA3ARwK/cyQ5DiJBv5BdlEyCyrleXFZQlVoTdiCm2SgI2rc77lCw2KcEOvV4vuy/3itX6w==
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=rAer2j2yfAENfXDtbg92KNc753V86Vqsdiso/bsldAo=;
 b=mpXIMIjiORkErmJyJNiqzCUqe/API+yJNfHLKZ0MuX5a5WzNg29b/rTw2OLuZr0yp5GtryP0MR4Diba66IDGWRlFkYlUALP070GJ83cdmfO1aOK3uj9DM05uzYM/79ZdLaMC6lRAqXYFBUz07POnAKrBDqwd1Bw/A20sQCtOPqW/wXxAgRuabAw/I+aAnIeKYtNPdVGzXzcEl2JI+OKNJKngBIeYpTtdKvA/qunspmQNNAMgKPXCM11lgzkUiWU9Z2XQWNGgm+WaW2NGM5d5MnloePpqevHzhC0UR80XwOHgUJ/PPI+Wt/ICpqVQxjy4JAqnnmY4Kf4ApZt9qkd46A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=bestguesspass 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=rAer2j2yfAENfXDtbg92KNc753V86Vqsdiso/bsldAo=;
 b=T1jt5kyLn8tS08xFm64H0sElOSJ9tU3Hlen9lMk/0vyukR9Y3JK5gAmwy2TXJJcKALk+AnarrAqTMaRt7f79/Lhbe6y8FVF2vYc2sjxg9OIBRW9faOjcnNXLXcW0TlSPUh5val+05j1nlDc50CVvUwh2/HfSESg28jIzxq5CB9k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=bestguesspass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 48949eb675998660
X-TessianGatewayMetadata: g8nbg9rvmIKOmJ3DJtPYAhajA65L9cR19SIoFPUg4wR5lzNGHoIMK6jAJV84CFjnVCWS5dFV+1m0z+7gNOZDs3FIZTLfvnq+u6riTgVKiqlm6s+hOfsArqwOOM0Xc+6tDxh2JGgntXRQbYaTLmmTY1bS/isHXXB1UHBwWyPP5+s=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XeQtjKkdgIvPTZIOzTkCYqwERtNl/zmG5vlkOulxb0nlB271Q5OfNAloOC7HcJLDkqCpE79Nu44bhG1hbE1m9XfwqLgX9tPQN/yarEj/EiUrpCBDiWMsU4rUjIU1QZ+s22+Kl9dBgJ/cNslq7ByoOr+6gp13gGwrhGrZnSZklHIBiMrzR85wF4IicxQhPOlyFNngzIC+GxDX5PxtwaLID8dcCkcQ9/LDXllL5/N69oL1uaeOgy238ANn1/90hTybdAmhtd0GBlFq4oKrs/nLDmC+z8/AT/EUnkP8YueKwePFltz5/3LvmR9/0TJ7kwKgO17+agra4wyffX8sAhztow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rAer2j2yfAENfXDtbg92KNc753V86Vqsdiso/bsldAo=;
 b=KxlsyPSL1O7sWdjTMzT6cg/2yOivRjMsrWS/gcKmnEk65TsXm1VGropHDIZXiyrE0V9wjXdZAov9daVuWNo5/4zO1E+PsKAH0ylboqn81ifbj/z/5Xptru4PbpU3CMFrRfJki1n+YmupjHNBww0Jhp786exldVJYtR2xOf8D0TeMf8V3peJUWp2zKgpTSFQklZ0AKBbo7e+A8ZaMf1+BL+E6ZMLvVB9j7sH4iAs58qyLTjDemWurM3rDED3kUhKGnycjJud79pc8RG21ErJVW7aEZGJIU2mes3MlSsXYPOa4ztlK/n549lWD7SrA/GKTEvZbS2hRTI15M6oAi2LM6Q==
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=rAer2j2yfAENfXDtbg92KNc753V86Vqsdiso/bsldAo=;
 b=T1jt5kyLn8tS08xFm64H0sElOSJ9tU3Hlen9lMk/0vyukR9Y3JK5gAmwy2TXJJcKALk+AnarrAqTMaRt7f79/Lhbe6y8FVF2vYc2sjxg9OIBRW9faOjcnNXLXcW0TlSPUh5val+05j1nlDc50CVvUwh2/HfSESg28jIzxq5CB9k=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Jens Wiklander
	<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: Re: [RFC PATCH 1/4] xen/arm: ffa: Introduce VM to VM support
Thread-Topic: [RFC PATCH 1/4] xen/arm: ffa: Introduce VM to VM support
Thread-Index: AQHbH6z3/b07Z+H2iEKVEGebQub3/bKiXKqAgAR3wYA=
Date: Mon, 4 Nov 2024 07:19:39 +0000
Message-ID: <765C7E37-0ECB-4BFC-B98C-57FCE303828B@arm.com>
References: <cover.1729069025.git.bertrand.marquis@arm.com>
 <0475e48ace0acd862224e7ff628d11db94392871.1729069025.git.bertrand.marquis@arm.com>
 <93715b7e-d968-4526-96c5-497a7a1f9dfa@citrix.com>
In-Reply-To: <93715b7e-d968-4526-96c5-497a7a1f9dfa@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.3776.700.51)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DB9PR08MB6410:EE_|DB1PEPF0003922D:EE_|AS2PR08MB8384:EE_
X-MS-Office365-Filtering-Correlation-Id: e6f341a8-c17b-4842-0e25-08dcfca22b96
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?6MU61DKBhVB9Q89On+ib2BrESQ4AhpODl/mksgZ7oRYSUxAZnzXMAJ3ZqGOR?=
 =?us-ascii?Q?eIvIfVMdbhbxJoQSFXlUtoF4H91qi0w4Ha6TABLdNR67NiFX0vf5cXNvfwcD?=
 =?us-ascii?Q?imnUXAfUCL7cKWLLr4BM9mPYYLFvBgV+b8nLV5+Xgbx/O1hr+200OJVhfI5o?=
 =?us-ascii?Q?R98++jlpYxjJxRxX4SrLkB96WCtGfrxNhF5pwemDFS48omYNFxeyloABgfvs?=
 =?us-ascii?Q?ZH2lRgT7lxsR4wqg6nUYCYg0kvEXoH+S4y+MJPBecd2XxwB+vSY4A9okqSbI?=
 =?us-ascii?Q?W2oExYNpX4engClzDlD2O+zsHW8utFY93DP8xJ7jvRf+LIgoSKKbIknzpmL7?=
 =?us-ascii?Q?8J7JtnX4pV9vDSMR4LI7YzrvYvRaJMI2v/xAFQ2ZS+HcQ/crSom+dkKuxlrk?=
 =?us-ascii?Q?+ZKyaBr2DEwmE0shnDA0XjUs2SPGq9vPrfO9m8w6QjHCmo3Lhr+fsjIprixL?=
 =?us-ascii?Q?Y9k+1mCrPNaLIQ6z5iX/J5NmdimHbHvc7SxmcmTM38gnhsKTjy4fvViLZYai?=
 =?us-ascii?Q?za79TVc6GPe0mceylGN9TlPS8TvHZ/BYolRkPqJ7R0BfXjz6pqlswWZAGc7s?=
 =?us-ascii?Q?SghP/WwFlPlO+zZYvGndVuIaRCzePT0KeWskDsVeM2H5Dgo2NUQqzgrmEoFe?=
 =?us-ascii?Q?CMfiK9Nk++SX0RVYlOByQpxIJJYKWdxU/D/VoneyqvozSByx2Tyi8tWs02qY?=
 =?us-ascii?Q?LGZGnTpJoQJs8vUbRtwHBPvqmFdsd/2oYogJuzZmk3ozYDuupRJ4XTPhWJE3?=
 =?us-ascii?Q?BZhtrDBxyMb5sYiqf6ZE9KTPrtS7cpnt4jr0uMpo2NQwMquEKJ5PEFc8KcUO?=
 =?us-ascii?Q?8sMoDztdgRRphDCdsyQVMfKxyjIdQbRvyM5jsR6xKh3u+3YObDPEevlFG6ex?=
 =?us-ascii?Q?eXuviq9DHGoKmVRI7NV+BCc4D8W8/Rc02UBK21oVJ+aWoYEV2r7AlTBV+31J?=
 =?us-ascii?Q?ZFtTYv2ub0a7v4U6DK3iFjP3fQWzRS677PqUZYinDKR1zY+cKvvwu3WfKCE1?=
 =?us-ascii?Q?N1TOXnf5+Qsxmkieqz8gAjXrbHINXWoFtg6bxEqbvi+JbU38G9n6pj4Gz2FT?=
 =?us-ascii?Q?YSjS/lYMlCqrBjOAzKOg/NRIuKdRf6/rGQ46mnWdwgs2LX2qGhj2LRB+sW5j?=
 =?us-ascii?Q?2Q8IcSX629WshDz/lG121A5jiEX9uKc+V1xnYmdm9vJaB3UPDVfQLATy57Ry?=
 =?us-ascii?Q?9qKgTkG8lPzszxuEIVUGSBs5HYNAqF1Cm09w+JZJ+6RdZJ/ZE1IB55Gu02E8?=
 =?us-ascii?Q?/2npsESS6Gj0UfPhewrW80KMIa7i5oKG9WFHjowffglzOR/5mW4Zn1OZE2sE?=
 =?us-ascii?Q?9AYsAfUCG8/pB7MT2fbNuE1ZZyCbVsXb3aOPDwJE2zbDe5lFjdx9Cbggo1PC?=
 =?us-ascii?Q?ZrSm7f4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <B1BABBC4E4D5904AACEF549B636146EE@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6410
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:25a::24];domain=DB9PR08MB6588.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922D.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	92cd9111-896a-4d60-d06c-08dcfca10bb7
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?iguEHOkf9QCK2ICEpxeoJT4gOzzSzKQnPP6fBlJF5z4hXTas189H3LqjKQQx?=
 =?us-ascii?Q?5RbVHMV+AkhJdXKnAiUHWwnytSOMO/MH/ivQylBhma6UfkoEssPNpxWydp3F?=
 =?us-ascii?Q?9H185Rs1zUTE/5Xd0YyUP5aBGhQw2cg3UvmhTZc2wwWtqNBJW4dyGHIvDSh0?=
 =?us-ascii?Q?JVLNJXTJ2+r0aFtHpZB0hW2Nr3tqXzYq1edMVfKJTFfdY3CBWd0wpnHiOhMx?=
 =?us-ascii?Q?h1lIdPBgjg/G4abtvp5FI1Eraw8iprP+0W7TKhW8N9mRtQ9jBFmYlPqTsjTo?=
 =?us-ascii?Q?37oeXDFJ7xyZGbmPr1EOH7kYgW2cPKG2BmUAzK4uTtVGeB2fgjgC3thLSksT?=
 =?us-ascii?Q?RsxBdmw5p1Xdu0tece/aY+PwahPGRkk+chsmW/7dSD499ZevkEobYBMjj13u?=
 =?us-ascii?Q?L0SEh/50oidzD8Ft5IbDV3lEBQTHcLyPMD5oXYhttajS+bED3WQ0JL9/GkQD?=
 =?us-ascii?Q?xhv+A3TU18gvjQ4zVtUF9CYIRVH1HJZqN2ee/n+30FWAObq1FAg0Ct8EH+/c?=
 =?us-ascii?Q?PxJhf6zHT4Rxt9yl+OKmfsp8iBaTedStf1JKTMuuMFEufQcdKppAbPG+k+K/?=
 =?us-ascii?Q?jjp89mTskYBBbr2NBWSOk7d4CnV3zfzcaPgIMg4yw78wLEVPBvUnJYhyf31M?=
 =?us-ascii?Q?sgE7DbhHmMDWIdSX+VYWWpTo2PQZYWF8586HdztIk/NDfLqAIOFeqniYmIzK?=
 =?us-ascii?Q?PJrIAL+jPkqN3E/a+IT/jf+4+HgeS3GdStDjgo8oxUzDJINFY2zwAF+g/j8I?=
 =?us-ascii?Q?jnxYH+WnHIf3aoNgWHWbhAG8+3foMLwhRYEFVMnjv6l4XyIf0pY6kUmHZ6jL?=
 =?us-ascii?Q?AFnxe8S2NG/eT8556bxZYbyTS1Gdbde0xKzkjqhDieH+6fDsPV37TASMJ2Ss?=
 =?us-ascii?Q?IplP5vlK1GyGwq6fhz063x9mXOFGFCOWkCldidzGeS+l6U4PYT6Zvrgmq7BI?=
 =?us-ascii?Q?m0gxFso1fOGeGYtfpAUI18OTvm4XImHrAqprSpeSSBl0GqgsR52rtH9OU2E/?=
 =?us-ascii?Q?lGIAj1ve1uLGXtnN3cbD0/X49ZYjaZ1+RC8EncsEvnFK3IV8iXovm7ASF0Ir?=
 =?us-ascii?Q?ACY3W/OxiXoI6U6oobWg/xIoM2bqgm2hehm5wSHDiC09s7CHDNxiFRBIcHn1?=
 =?us-ascii?Q?/pjm1hfiecGR987qDcfo4X1W3lAbj3/4KPfoN61twG2n0RhV4IDm3mufKFh6?=
 =?us-ascii?Q?nBjB2luW9Yl0wcc7qdTt2W1ib7/BtYXa8aFcX5CzTSFSmqtC/QJRENImdp6J?=
 =?us-ascii?Q?1F9r1SN/AIqqGl6heYimS+p77gAbujdtxMXfuAX0JxXHIidR1oLum6gH1J/w?=
 =?us-ascii?Q?2eNliTFPhghBDaJhEdskvzwVE8i2jx4wH4/me671ZQMnv4ApmC5aSwfTCTPZ?=
 =?us-ascii?Q?wFFN7ufmraBvQgsHGKG17thS7moACWnwNDlv27HOIZPg5U3Oow=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2024 07:27:42.5767
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6f341a8-c17b-4842-0e25-08dcfca22b96
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF0003922D.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8384

Hi Andrew,

> On 1 Nov 2024, at 12:05, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>=20
> On 16/10/2024 10:21 am, Bertrand Marquis wrote:
>> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_part=
info.c
>> index fde187dba4e5..d699a267cc76 100644
>> --- a/xen/arch/arm/tee/ffa_partinfo.c
>> +++ b/xen/arch/arm/tee/ffa_partinfo.c
>> @@ -77,7 +77,21 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>>     };
>>     uint32_t src_size, dst_size;
>>     void *dst_buf;
>> -    uint32_t ffa_sp_count =3D 0;
>> +    uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
>> +#ifdef CONFIG_FFA_VM_TO_VM
>> +    struct domain *dom;
>> +
>> +    /* Count the number of VM with FF-A support */
>> +    rcu_read_lock(&domlist_read_lock);
>> +    for_each_domain( dom )
>> +    {
>> +        struct ffa_ctx *vm =3D dom->arch.tee;
>> +
>> +        if (dom !=3D d && vm !=3D NULL && vm->guest_vers !=3D 0)
>> +            ffa_vm_count++;
>> +    }
>> +    rcu_read_unlock(&domlist_read_lock);
>> +#endif
>=20
> ...
> struct domain *dom;
>=20
> if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> {
>     /* Count the number of VM with FF-A support */
>     rcu_read_lock(&domlist_read_lock);
>     ...
>     rcu_read_unlock(&domlist_read_lock);
> }
>=20
> drops the explicit ifdef.  Hiding function-level variable declarations
> behind an ifdef like that works exactly once, and it doesn't make
> pleasant code.

Ack I will fix that.

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Mon Nov 04 07:44:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 07:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829836.1244736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7rlY-0003nb-Qj; Mon, 04 Nov 2024 07:44:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829836.1244736; Mon, 04 Nov 2024 07: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 1t7rlY-0003nU-Mt; Mon, 04 Nov 2024 07:44:48 +0000
Received: by outflank-mailman (input) for mailman id 829836;
 Mon, 04 Nov 2024 07:44: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=r6Gf=R7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t7rlX-0003mb-Mg
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 07:44:47 +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 a7a09459-9a80-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 08:44:43 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43167ff0f91so34051035e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 03 Nov 2024 23:44: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-431bd9a9faesm174653905e9.35.2024.11.03.23.44.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 Nov 2024 23:44: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: a7a09459-9a80-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE3YTA5NDU5LTlhODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzA2MjgzLjI1OTM0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730706282; x=1731311082; 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=dvawDXgZOaPenTHuDlzYJvZvfwUCcdOUgb2gjkIRDa8=;
        b=VbZ9828OJjKPBOJeap2Osq756CuhGDGpjz8DuXGCp6BXvusdTLDpoLAmDc9+Bq8IbL
         WByWPsRvq9KYJ3sH+7/mOAsH5QuY8OS0mnqb7R9mzUlwqRJbbQU+aFjgx+s/orXDurQP
         Dr1cvcOpYsOYK2SJ44uX5HaDzm5Aha0fClxf2mpnI6ZhTZ3QD4s/DSg3TttWAIwatWL1
         7CbW/pIVcWiPoLDGC4mx1FhfY+zyjUOlj4CAZp4+4Iylf4Fk/8AuIsNgj5WTXmYoTfwy
         tgI9kPY11kMn0CVHO+EZ+Vd5PLrqd9HdjFAU8xS6dWYDXFRIvZVxZr6eG5RVQRW84ZNi
         j/7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730706282; x=1731311082;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dvawDXgZOaPenTHuDlzYJvZvfwUCcdOUgb2gjkIRDa8=;
        b=XK7Zh8OAXxvibS6EIh3t09DQ54eSgJmDsMO0Vc2HMWiyfTbP6/zwb+jSijteoZd7Vc
         FUbVl+7zJmX07E+F6orvOS5m2jXa1lbOkJxOq6MlBlOFGeB81zus2FiG93kZ7eFBuxZf
         XQqpRQZtWGDjX/ZP0Adrdr7InFYy1iAga351rzINPJsNV7Xt5xrE/zU5bVqmWi0V9lJi
         /uISxbW9gW2uvi23IhpkGMidMvfvwotXxKYlE+e3HyruUh7s0apDzL1wEIiULq+7wsFl
         RY6YE4ZPe7T+TWnBPEpB1pJBDs/E9f3GoOvq3pEkG5SWAiTeq1TUutxHLFqDJ4BkYHen
         ILEg==
X-Forwarded-Encrypted: i=1; AJvYcCU3TuuMxNE4JmfEBnd1TL6nYaKdVolYgNaCw5NIqF9xtp6HgGkPvQTDVMMS/Hxlqz+oJa98xxmrMhA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdQCtCLTJjbItM0K/dkweSYUYAEjpRyLE+e42jW0f/jDF8pISS
	Dh8BStezZGuKLLew5PMfrCFWe6kp4DigogOfGhScqiv3n8uuhqB3xy7gGhpETw==
X-Google-Smtp-Source: AGHT+IEkgi0YgAz7Ak7ukKkYl4cVUICKYLDFW4o8IJkBEBezQF1kgdihGVRWY+rZ/UhqeKWCJo7LJQ==
X-Received: by 2002:a05:600c:54ed:b0:432:7c08:d0ff with SMTP id 5b1f17b1804b1-4327c08d430mr110826785e9.23.1730706282612;
        Sun, 03 Nov 2024 23:44:42 -0800 (PST)
Message-ID: <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
Date: Mon, 4 Nov 2024 08:44:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@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: <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.11.2024 21:16, Stewart Hildebrand wrote:
> +Daniel (XSM mention)
> 
> On 10/28/24 13:02, Jan Beulich wrote:
>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>> Add links between a VF's struct pci_dev and its associated PF struct
>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>> dropping and re-acquiring the pcidevs_lock().
>>>
>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>> VFs may exist without a corresponding PF, although now only with
>>> pdev->broken = true.
>>>
>>> The hardware domain is expected to remove the associated VFs before
>>> removing the PF. Print a warning in case a PF is removed with associated
>>> VFs still present.
>>>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>> ---
>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>
>>> v5->v6:
>>> * move printk() before ASSERT_UNREACHABLE()
>>> * warn about PF removal with VFs still present
>>
>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>> just after an adjustment to the commit message. I'm instead actively
>> concerned of the resulting behavior. Question is whether we can reasonably
>> do something about that.
> 
> Right. My suggestion then is to go back to roughly how it was done in
> v4 [0]:
> 
> * Remove the VFs right away during PF removal, so that we don't end up
> with stale VFs. Regarding XSM, assume that a domain with permission to
> remove the PF is also allowed to remove the VFs. We should probably also
> return an error from pci_remove_device in the case of removing the PF
> with VFs still present (and still perform the removals despite returning
> an error). Subsequent attempts by a domain to remove the VFs would
> return an error (as they have already been removed), but that's expected
> since we've taken a stance that PF-then-VF removal order is invalid
> anyway.

Imo going back is not an option.

> While the above is what I prefer, I just want to mention other options I
> considered for the scenario of PF removal with VFs still present:
> 
> * Increase the "scariness" of the warning message added in v6.
> 
> * Return an error from pci_remove_device (while still removing only the
> PF). We would be left with stale VFs in Xen. At least this would
> concretely inform dom0 that Xen takes issue with the PF-then-VF removal
> order. Subsequent attempts by a domain to remove VFs, however
> (un)likely, would succeed.

Returning an error in such a case is a possibility, but comes with the
risk of confusion. Seeing such an error, a caller may itself assume the
device still is there, and retry its (with or without having removed the
VFs) removal at a later point.

> * Return an error from pci_remove_device and keep the PF and VFs. This
> is IMO the worst option because then we would have a stale PF in
> addition to stale VFs.

Yet this would at least be self-consistent, unlike the variant above. No
matter what, any failure to remove VFs and/or PFs correctly will need to
result in there being no attempt to physically remove the device.

You didn't enumerate an option lightly mentioned before, perhaps because
of its anticipated intrusiveness: Re-associate stale VFs with their PF,
once the PF is re-reported. Problem of course is that, aiui, the VFs
could in principle re-appear at a different BDF (albeit we have other
issues with potential bus-renumbering done by Dom0), and their count
could also change.

Jan

> [0] https://lore.kernel.org/xen-devel/20240827035929.118003-1-stewart.hildebrand@amd.com/T/#t



From xen-devel-bounces@lists.xenproject.org Mon Nov 04 07:46:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 07:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829843.1244745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7rnZ-0004Xu-53; Mon, 04 Nov 2024 07:46:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829843.1244745; Mon, 04 Nov 2024 07:46: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 1t7rnZ-0004Xn-1m; Mon, 04 Nov 2024 07:46:53 +0000
Received: by outflank-mailman (input) for mailman id 829843;
 Mon, 04 Nov 2024 07:46: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=r6Gf=R7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t7rnY-0004Xh-8W
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 07:46:52 +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 f18aa84d-9a80-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 08:46:47 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-37d41894a32so2056347f8f.1
 for <xen-devel@lists.xenproject.org>; Sun, 03 Nov 2024 23:46: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-381c10b7bb7sm12533298f8f.3.2024.11.03.23.46.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 Nov 2024 23:46: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: f18aa84d-9a80-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzIiLCJoZWxvIjoibWFpbC13cjEteDQzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYxOGFhODRkLTlhODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzA2NDA3LjI1Njk1NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730706406; x=1731311206; 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=lrX7xyRVk4EF1+z5y51a1kFwUZBIyaHnwg1hv2XCqWs=;
        b=D5pxAUgPcvvBIKms29YyOPj4kv3295ZapcBy/OHIeESziLYKuq1a7tqyrC+CnHGK6k
         EOCqNgKG8jCrcMRKnPclRoEgJwQJ7NMmn66DEwYLh+avyLUshoZGFp8XGX82FeyP06xi
         8SzSh+bjENm3LYRMN6YxmuFkvWLsEolRjVIbAB602c5KCJjOK9gLwz/pw3p1PnwApItw
         uYsBjiqihWt5HRrn8J7WL/QT+NkrpPc6gWiTnAQRMPFzRFxeYiFanf60gHcYfG8rl4mS
         kUEyAJ55BarXsir0Mt93n+h559gKUY2nfHXAiE/v5boxjKFIkD+dS0Jd44o2Ddwx8mDI
         DJrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730706406; x=1731311206;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lrX7xyRVk4EF1+z5y51a1kFwUZBIyaHnwg1hv2XCqWs=;
        b=AOhhC93DQEP+4KYGEOKRJ2RnMZh4cKIMtWl5nZwS2v68DdltLrkteKwUuC1OPJYcDb
         g+0/098pCMdgx/2EhED/YJAjuuIpo1nfbhIZ98f7Wo5ggd7PB7MJPU13kEPziedKWk6o
         oljZypJkcCuP0c8JVrF9i2xg2MxoWL9wIjmCut+5ehwKeVeQHSVaEVHMJW6gSun5k77L
         K3kaOMzdLCfALxpuqxwxxQatiax2RgCMBCq3/npy7mYyR5VDs4XTlk7pb1O8yTwF5Nmc
         OlXb17pLizfFQzTBitbmwa41RUxwCs87wOQekPuLps/2TIkLb64zRB9HkseYeSciDNNU
         axGg==
X-Gm-Message-State: AOJu0YzRj+MBwRo1w/drk7kcZ3b/k8w6m6nDDAnqIBM/LXTtbzSqhzue
	9vOJ5vRlWDeXBMW6iAmfD6GV9N2h47RAdsAQwpbnXRGR0kWer1Tn3Z8GhikDsw==
X-Google-Smtp-Source: AGHT+IEeTnMcjoAelt476tVAMJ1soy2Yb3nLu1p22MnKD5B8TNJVf/vBBaPHwipFP1bAkwbY4OPQSQ==
X-Received: by 2002:a05:6000:4189:b0:381:c779:726c with SMTP id ffacd0b85a97d-381c7797421mr6733088f8f.10.1730706406546;
        Sun, 03 Nov 2024 23:46:46 -0800 (PST)
Message-ID: <8d5b6935-183f-460d-8107-4ed3119c4d8c@suse.com>
Date: Mon, 4 Nov 2024 08:46:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/4] xen/arm: ffa: Introduce VM to VM support
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jens Wiklander <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>
References: <cover.1729069025.git.bertrand.marquis@arm.com>
 <0475e48ace0acd862224e7ff628d11db94392871.1729069025.git.bertrand.marquis@arm.com>
 <93715b7e-d968-4526-96c5-497a7a1f9dfa@citrix.com>
 <765C7E37-0ECB-4BFC-B98C-57FCE303828B@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: <765C7E37-0ECB-4BFC-B98C-57FCE303828B@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.11.2024 08:19, Bertrand Marquis wrote:
> Hi Andrew,
> 
>> On 1 Nov 2024, at 12:05, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>
>> On 16/10/2024 10:21 am, Bertrand Marquis wrote:
>>> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
>>> index fde187dba4e5..d699a267cc76 100644
>>> --- a/xen/arch/arm/tee/ffa_partinfo.c
>>> +++ b/xen/arch/arm/tee/ffa_partinfo.c
>>> @@ -77,7 +77,21 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
>>>     };
>>>     uint32_t src_size, dst_size;
>>>     void *dst_buf;
>>> -    uint32_t ffa_sp_count = 0;
>>> +    uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
>>> +#ifdef CONFIG_FFA_VM_TO_VM
>>> +    struct domain *dom;
>>> +
>>> +    /* Count the number of VM with FF-A support */
>>> +    rcu_read_lock(&domlist_read_lock);
>>> +    for_each_domain( dom )
>>> +    {
>>> +        struct ffa_ctx *vm = dom->arch.tee;
>>> +
>>> +        if (dom != d && vm != NULL && vm->guest_vers != 0)
>>> +            ffa_vm_count++;
>>> +    }
>>> +    rcu_read_unlock(&domlist_read_lock);
>>> +#endif
>>
>> ...
>> struct domain *dom;
>>
>> if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>> {
>>     /* Count the number of VM with FF-A support */
>>     rcu_read_lock(&domlist_read_lock);
>>     ...
>>     rcu_read_unlock(&domlist_read_lock);
>> }
>>
>> drops the explicit ifdef.  Hiding function-level variable declarations
>> behind an ifdef like that works exactly once, and it doesn't make
>> pleasant code.
> 
> Ack I will fix that.

While at that, please also name struct domain * type variables "d", not
"dom". For consistency with (almost) all other code we have.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 08:11:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 08:11:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829857.1244759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7sBC-0000mH-6u; Mon, 04 Nov 2024 08:11:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829857.1244759; Mon, 04 Nov 2024 08:11: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 1t7sBC-0000mA-42; Mon, 04 Nov 2024 08:11:18 +0000
Received: by outflank-mailman (input) for mailman id 829857;
 Mon, 04 Nov 2024 08:11: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=Gxyb=R7=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1t7sBA-0000m4-CN
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 08:11:16 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2612::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59a7a3ef-9a84-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 09:11:10 +0100 (CET)
Received: from AS9PR04CA0105.eurprd04.prod.outlook.com (2603:10a6:20b:50e::27)
 by DU0PR08MB8400.eurprd08.prod.outlook.com (2603:10a6:10:404::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 08:11:05 +0000
Received: from AMS0EPF0000019D.eurprd05.prod.outlook.com
 (2603:10a6:20b:50e:cafe::db) by AS9PR04CA0105.outlook.office365.com
 (2603:10a6:20b:50e::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30 via Frontend
 Transport; Mon, 4 Nov 2024 08:11:05 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF0000019D.mail.protection.outlook.com (10.167.16.249) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8137.17
 via Frontend Transport; Mon, 4 Nov 2024 08:11:05 +0000
Received: ("Tessian outbound 0fe1877cedb7:v490");
 Mon, 04 Nov 2024 08:11:04 +0000
Received: from Le6445e6b6737.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 30B8B3FF-9F84-4AD8-873D-435BB06572C6.1; 
 Mon, 04 Nov 2024 08:06:40 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Le6445e6b6737.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 04 Nov 2024 08:06:40 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by AS8PR08MB9741.eurprd08.prod.outlook.com (2603:10a6:20b:617::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.20; Mon, 4 Nov
 2024 08:06:37 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%5]) with mapi id 15.20.8114.028; Mon, 4 Nov 2024
 08:06: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: 59a7a3ef-9a84-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjBiIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU5YTdhM2VmLTlhODQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzA3ODcwLjU0NzMxLCJzZW5kZXIiOiJiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=fT+foLyNSMVazAT9umpyet3ws9pUqMCLYpJyHDqPgQ/CwZzFX2SVL9YCSb7y+N8J/eliZ7Y8FvA2MRRVuJfAnYXXwhmzisjUvHlflSt7zKrxO/FV8+5M3+TXDxWxzzTllc9dRIqrpeTkj/XELm8v7IDndXrOXCkMpFwtmjmJId0ORWZxQspTXvdpNfxTKbQ6mEiiyAa5FF0NU4GlvSEeWhAxxDEmMJ8aqdCQNIMUMobWSQEdu6dSNxU/QDrUxNcf5+lW1RwwsB3ACrBtwR7/U+IBmGZUEYnV2cmhls4JSujGM2QoR4Rw0mJpEf5UZd+TKGU+qRZnb/aQ6uOgNuZuCw==
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=4Z1hpBIDy2slJcSESPQiMzH7oHSvsq0gGPgg4e9XOm0=;
 b=jgds4KQMl3pGv9C39RoMRXDb08eOSJelWxcLMPd5tOrp2Vp4tQkf79FpqsMu3RF5MqSYPCf+zplLh776vAO/vM+3CMkIyxKOZ6T60zxngU/Rlre0k7m0karUKeClF36N9lcxmYfQ1q6guC8UmcS3+zC7TA3l3FRrAsLuDx/wV5XM/QOr4l2ut+DuSS3S89FyzGc1c7a3e57TOepjP72wm00EBFpBAQ17daVv5dw37hF8LWH3W9lpCM9GU9xnp8w1qDIE65UPOha7fj7PMmlUasK8OfOeq387MaJpMNo7dH/xRicO6lcrCo7Jx3hQLdkSdSzGhK4e6/sJxU1uugQ2Kw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=4Z1hpBIDy2slJcSESPQiMzH7oHSvsq0gGPgg4e9XOm0=;
 b=A5YbJrYMYawVA2Q5hFROjbwgxbJVrNlbOKXoInh/DjY5SwWOQk4a+yRJJ9Bh+NqZgOxEJBq6/aVqjv46LwZ3ojmF6rTVHV/mXzsQdGTT8HoHOF7FDMuTOjYSpjMFrcqdwJF+9979ILHoteKG9Tu2UWGqyQrYpkKjycxhjl2VMSw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 54ee78ab3aa381ed
X-TessianGatewayMetadata: g9zYzbc9HJGRmEYY0R6JS7QPb613S32CH0KybfJyX9h0HZsNyYPM3iPu3V4viwqBSTdGYV2rfaSMMrAzKDqtzrVV91DooKCwk9D11MqfRTTcAsB3x82kAiGnv3XO6XJzcv3bS7D38E+kpOgj9z2YrItxbAS/ZT/qehjZqpK5pGA=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WBoFWe01DC2OfNu3/pwxeP4Nf9G6ts0Y+KtpJ2WR76qBf/y9HDvE3CRdt1WIR11ECZnFMaTAiKEXBWtCf6yPos7h6VVk+YakQ6PUVPgTzUmg9vTruyS+XmCX6xPApuGGfBX1Gi1gJXIWHK1RrQVxx+dyoNxsHExNApI822eY/wMp6NGT+cwkYDekVAnlSWMIdNCz7WRzPxKcg4dGOamcH8z1pb3wkgfWimLgCCeDP/ROdsogUPLM/peOMAk6ywWPOTJnGQRoVXzfLtF2JMpDLOoQaQOO+XTkcdfcf3CBlw8KLvcZTPjjLhWb0DpyBlFWzN88KHnfyPwmf5O9BfCe8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Z1hpBIDy2slJcSESPQiMzH7oHSvsq0gGPgg4e9XOm0=;
 b=VT5TZv2kOizUE19lLskVxNZaqPyzpDxWCZnzpsx9h526uUjPodk/COh/ARKjjLHQ8rm4QTTHGqNni7FMJ0P9Kj08TTkI4AKHPooxplQgkXA0L2k1jyS05vxTYlGVUu/xxmzxrHs9Lmfxq2tcEgK750LC4hS+vY/X7wW9gT2bbNCiVbvlvIDfQUOWhayG7ww9tw6x8abLiuFaWmEoJQAkWTEYAxXwGHiZvh/JU8cmvQUhy8wOjcDvi7bHw2oNVDdUMXaFw3QQoyKEyL9c+NbUokD7r3nB+DVwfX+7OVRFrL4x/bdQ8t3nbwbZcxgHVZLPfCHqiRNto0nWaNMwRQB8/A==
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=4Z1hpBIDy2slJcSESPQiMzH7oHSvsq0gGPgg4e9XOm0=;
 b=A5YbJrYMYawVA2Q5hFROjbwgxbJVrNlbOKXoInh/DjY5SwWOQk4a+yRJJ9Bh+NqZgOxEJBq6/aVqjv46LwZ3ojmF6rTVHV/mXzsQdGTT8HoHOF7FDMuTOjYSpjMFrcqdwJF+9979ILHoteKG9Tu2UWGqyQrYpkKjycxhjl2VMSw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Jens Wiklander <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: Re: [RFC PATCH 1/4] xen/arm: ffa: Introduce VM to VM support
Thread-Topic: [RFC PATCH 1/4] xen/arm: ffa: Introduce VM to VM support
Thread-Index: AQHbH6z3/b07Z+H2iEKVEGebQub3/bKiXKqAgAR3wYCAAAejgIAABXwA
Date: Mon, 4 Nov 2024 08:06:37 +0000
Message-ID: <8A562771-39B3-49CB-85FF-F3A047BACA4F@arm.com>
References: <cover.1729069025.git.bertrand.marquis@arm.com>
 <0475e48ace0acd862224e7ff628d11db94392871.1729069025.git.bertrand.marquis@arm.com>
 <93715b7e-d968-4526-96c5-497a7a1f9dfa@citrix.com>
 <765C7E37-0ECB-4BFC-B98C-57FCE303828B@arm.com>
 <8d5b6935-183f-460d-8107-4ed3119c4d8c@suse.com>
In-Reply-To: <8d5b6935-183f-460d-8107-4ed3119c4d8c@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.3776.700.51)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|AS8PR08MB9741:EE_|AMS0EPF0000019D:EE_|DU0PR08MB8400:EE_
X-MS-Office365-Filtering-Correlation-Id: fcfd9f31-2c24-4b1d-4ba1-08dcfca83ad9
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|1800799024|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?7vQR0C1L8SIiPQalpS6hoPu8xEShlwyUB7PwXQ0m6W7Gf7a0b1LaQb2Ih0Ui?=
 =?us-ascii?Q?ZEBs5j8tq3qBqTGATr+7pliiUg0Uxe1eekVDGlBXE5k9sCGMFgMYBLs4LwfA?=
 =?us-ascii?Q?wEQQ9JHcN4t0xgmSgMskxnttrBGziDid0UY5JAVkCRK2uF/WcIpZbsHwTOq3?=
 =?us-ascii?Q?IuBHSsZegyXrC9c8slI5eInzULrJhvyCmDp5Jel1ipDS+v/4LqPldWYba6MY?=
 =?us-ascii?Q?jN+5GHOUP5nCnvuOPHCeW/NqloYiXsLDDE7gRNg7ae1uNTD98OytQvPa8vVA?=
 =?us-ascii?Q?XxtVaIlqpxam8X3UdasAodRNqCVyyaF/jh/vXa/WzIHrOaeQH1CP1eJYNT3X?=
 =?us-ascii?Q?2AMHtCjlzZPMbeF5inXA2+ltTfVZGyQXlsC6n2ZdLEfUDSZSL+XXxLErnMNh?=
 =?us-ascii?Q?qEFiKKxOaPr+Kahqlg+1AIcp+Mg/jqLflplBW1cL+Jvxg8kuFZnRbgilQYnR?=
 =?us-ascii?Q?vd+v1AMotfz5ys7NYJ8hzsdow6VtEnaRJHRvun7Jm/pxO79aLjDtyL03Xis2?=
 =?us-ascii?Q?VNaQXiBmkf6gWuaHEEunphcD4AkT1iSbfE1GcBRnnVWmZOY8T2rhf3fr9aTh?=
 =?us-ascii?Q?Yl3JUs5hlsmCY8d+/yiPJRmemq6fb88BykZSnKtVenEQd9UOJbOBa/ogz3Bh?=
 =?us-ascii?Q?fbzDUA1bbYYPDcSo5HmhVQQCAj/gg3cD7rFst05AoaPUWpPyHCVXygxevBBs?=
 =?us-ascii?Q?Hq52wXjTf4eodo69xw0yTTCQ5dzPUzh51sC1q3k9m7v/CNUEubN9vnF0whJP?=
 =?us-ascii?Q?GWxCQMrfXpHgSGbeblbheUpzepjxvzEC9GKXFOFccIsooo5BqzgzLmqj4zg7?=
 =?us-ascii?Q?mdPk++1eBYuTSdVljT7ZNnY9Q956MWrMPsqp3o1zXpeXJtGLBjK76YXdjX6p?=
 =?us-ascii?Q?CqS+roDKJwBG1rs/wzwScHNt2PeEB2lqG1KJ7FXvmNvkINhwBfYzUzz4o+Hz?=
 =?us-ascii?Q?jbgHf/Y88TEQMg0DQuSyvFL48ipHGPgB//eOpiayedAzNn3oqdO8p3eZQtHm?=
 =?us-ascii?Q?sZpjoXCQXsKegoS2yJ3bqbH6RV9ow+RJ/RIJQgmHKg12vSNGdcYp2j+QrIUv?=
 =?us-ascii?Q?XP09BQt/l65oxPVaulJvZyNAWUs5hvueSMp/3DL8kRuPs+5deHd+FXEKZFd1?=
 =?us-ascii?Q?QlRJvDpRD1+vTmghwL/4OZGg/Tdw6aXfZQH9Rybexnfa9HFgjyh8RIWXOF22?=
 =?us-ascii?Q?SFtQzyzdTkSaw1JYKh+BLzrBYL/P7G24CrX+BpBdAmlLPDMYdIspGHM4VNW0?=
 =?us-ascii?Q?0MwVzLZVRLchRSs5xCMM0UCi2zWVJEI0DBZXeOOaMZe+X46ZAVCRif39E8mg?=
 =?us-ascii?Q?4+5oyjEr3AVxXeUOgKQWjscq0fzEAAcdxBpOgI2pW6rwFFkqIeobAWjw+0WL?=
 =?us-ascii?Q?Bcn/ahg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <875D7375641CA74C8945881E3C9C473C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9741
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:25a::24];domain=DB9PR08MB6588.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF0000019D.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a22ee6b4-c7de-413c-0311-08dcfca79b27
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|35042699022|376014|82310400026|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/bBycQB8MF2U0w8kfhvCFYmvsP5LypoFeCPVWMARPEzaueAoS4XOqlVRXGUx?=
 =?us-ascii?Q?sbPDVFlkPTnVAGjxUQvLvL+ziyo9ZE+GBdl12vJG/EaRtc3/e8vYZJXvpPc0?=
 =?us-ascii?Q?jQeurPjq1okJq87FWuC3AoXhvCU6meNhPjVBa1959bZQgY8TN38zvXcxUwuN?=
 =?us-ascii?Q?wIPyGKQGmYf9DsSiW6ZrpVXtbLc2/34ayBAgSATBxMQ0qPNzgj3nUe+fmgiZ?=
 =?us-ascii?Q?boF70rQfAYv2YzqQ0V10gDOpFM/hJadvuIoxumW9FzUqpagopSSRvhhR5mDf?=
 =?us-ascii?Q?GWPDTpnp/YpRxWP3iR9tV6cYdJsKRvwEaQSG03eQTin+VX2nvOD09CSdFny8?=
 =?us-ascii?Q?whtYao+licYgzMxNiiiv49IZyytis0YBjF7WtE+OEpA3aJRvL7rsK6VRYxiV?=
 =?us-ascii?Q?gN1de8mZRE90WcK1lObdm4hSpMu+2HzddqsMd3mijHqLTeC7fOQ65DvPwO7y?=
 =?us-ascii?Q?eYgfsO8NhbBtem+BXydgLClEcj3DqeI417DQ+EH8ikVnwh5k4NQvmx6Ayw2d?=
 =?us-ascii?Q?nytbvG+FED1xhxU1IzKCEybV4l5dmdzbCH+dFVibO4Yq+nyCEFtDlIKyS5G0?=
 =?us-ascii?Q?wPSMkaq7Bf8aiWSQYKyWbYadMmlkq4d5hk7o/VJkmV7yhQiYKQGkrjVqiujt?=
 =?us-ascii?Q?DpbjzKJ6ULnGnABfJcED5GY80/Vu+kxoeQkj6G6EA+AT6VMnbQT+M8WM7AzD?=
 =?us-ascii?Q?4DTM7xYC8OYvTK895anUr2oaqt7z1G/kviRxlrrm/Ez6QlWYTbZowNAFgWam?=
 =?us-ascii?Q?beeGmYxQvhM6PvDkgyANgxHRcZjEeS0aMMUYJMJFEUllfCCa/7vmRjZwo1+S?=
 =?us-ascii?Q?aP8NtoSAvyKmZEWWoNYU9dN+JYkbqEpohxoF9gjReYBDxZbxtvQrdw+SPl6x?=
 =?us-ascii?Q?FHwpXcNJIxTdriwguenq9E7ytQP2R/5C4udqFlHGyz39CZ5bIddg7wTtQ+3M?=
 =?us-ascii?Q?j2kwJRU3p4v2lMt82Xu4rKfCA55T3AnFJ5wSLQBPjVStClwU0cszBwQYtO4c?=
 =?us-ascii?Q?p56Yu65M319SsId5eKv8hzV1E8OkAk9zOXYGoqtI6rl+ESdtdXGJ/+fwbUrm?=
 =?us-ascii?Q?P3fCZSgr5u4/XA7bj8AVEovP6fr0lHRS47n87xlMe18KppSTRaFgH5NvR4JN?=
 =?us-ascii?Q?YOEb86Ml4TmKHu/D29Afd9IIhKPyVa86m+wXfmbcsBsbqw/DV3zKWEjkxqWD?=
 =?us-ascii?Q?01Ljw4LNr1NMfzHey2J80WKJ3A32NincsD4fRL1E3sdVIPqOps+pO4Wm9Bp7?=
 =?us-ascii?Q?DsMY/HNLpnTIF31WhB36nuIcETqaDeO9JFXPiZJMUJPcG1c7BFHaym+Xk4s3?=
 =?us-ascii?Q?B1NoUafGZzrZFCK2UJHM+y7Kk/P9teNIubfNeA30zU2PfTorhsjzK3lpp9n3?=
 =?us-ascii?Q?9LHGFdIRTZVCwIwqWrfdN/v66Rao11HMX8wvCz2gHXOALwf5Lg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(35042699022)(376014)(82310400026)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2024 08:11:05.1167
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fcfd9f31-2c24-4b1d-4ba1-08dcfca83ad9
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF0000019D.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8400

Hi Jan,

> On 4 Nov 2024, at 08:46, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 04.11.2024 08:19, Bertrand Marquis wrote:
>> Hi Andrew,
>>=20
>>> On 1 Nov 2024, at 12:05, Andrew Cooper <andrew.cooper3@citrix.com> wrot=
e:
>>>=20
>>> On 16/10/2024 10:21 am, Bertrand Marquis wrote:
>>>> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_pa=
rtinfo.c
>>>> index fde187dba4e5..d699a267cc76 100644
>>>> --- a/xen/arch/arm/tee/ffa_partinfo.c
>>>> +++ b/xen/arch/arm/tee/ffa_partinfo.c
>>>> @@ -77,7 +77,21 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>>>>    };
>>>>    uint32_t src_size, dst_size;
>>>>    void *dst_buf;
>>>> -    uint32_t ffa_sp_count =3D 0;
>>>> +    uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
>>>> +#ifdef CONFIG_FFA_VM_TO_VM
>>>> +    struct domain *dom;
>>>> +
>>>> +    /* Count the number of VM with FF-A support */
>>>> +    rcu_read_lock(&domlist_read_lock);
>>>> +    for_each_domain( dom )
>>>> +    {
>>>> +        struct ffa_ctx *vm =3D dom->arch.tee;
>>>> +
>>>> +        if (dom !=3D d && vm !=3D NULL && vm->guest_vers !=3D 0)
>>>> +            ffa_vm_count++;
>>>> +    }
>>>> +    rcu_read_unlock(&domlist_read_lock);
>>>> +#endif
>>>=20
>>> ...
>>> struct domain *dom;
>>>=20
>>> if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>>> {
>>>    /* Count the number of VM with FF-A support */
>>>    rcu_read_lock(&domlist_read_lock);
>>>    ...
>>>    rcu_read_unlock(&domlist_read_lock);
>>> }
>>>=20
>>> drops the explicit ifdef.  Hiding function-level variable declarations
>>> behind an ifdef like that works exactly once, and it doesn't make
>>> pleasant code.
>>=20
>> Ack I will fix that.
>=20
> While at that, please also name struct domain * type variables "d", not
> "dom". For consistency with (almost) all other code we have.

Sure, I will fix that.

Cheers
Bertrand

>=20
> Jan




From xen-devel-bounces@lists.xenproject.org Mon Nov 04 08:16:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 08:16:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829864.1244769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7sGA-0001NJ-PE; Mon, 04 Nov 2024 08:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829864.1244769; Mon, 04 Nov 2024 08:16: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 1t7sGA-0001NC-ME; Mon, 04 Nov 2024 08:16:26 +0000
Received: by outflank-mailman (input) for mailman id 829864;
 Mon, 04 Nov 2024 08:16: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=qZKN=R7=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1t7sG9-0001N3-0w
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 08:16:25 +0000
Received: from mail-oi1-x236.google.com (mail-oi1-x236.google.com
 [2607:f8b0:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1237ddfa-9a85-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 09:16:20 +0100 (CET)
Received: by mail-oi1-x236.google.com with SMTP id
 5614622812f47-3e6075cba82so1758775b6e.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 00:16: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: 1237ddfa-9a85-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoyMzYiLCJoZWxvIjoibWFpbC1vaTEteDIzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEyMzdkZGZhLTlhODUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzA4MTgwLjc2MjUyLCJzZW5kZXIiOiJqZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730708179; x=1731312979; 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=Xwen7feZ0JhMVHZuXwshQEly9lgKGsE+v0KeHJEql98=;
        b=kLBt9qqmECj/Y46x/GSyldrHetYCqhlBjVE8fl6DRxHPzdwza+ENTJIlv9+Lz4myRw
         2+b99GabTfeO+he/WYk3QL7CdQ33FQT5Q5tx3c2DhVcd+0EuM0fabSXTwEBQ9ke/eSFN
         BsNxV8gSW8G010ejE4YMEP+4ev7iMGiX2/VafJHtG2ItbJ2hiBaJStjZ1cGU9v7mohnr
         h+Bnh2hGankftzFy2CJOLAid5BvLrXjzPk1Von8FzlkiXECcY21iv4hs3ccQxhs4SMzf
         XS2Y5QIOKCyMJPvjADIJyxjYaUIGYpHuyT48FIeRLGTKpIt9SfRgENOpC+/o5ISlFShm
         6h6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730708179; x=1731312979;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Xwen7feZ0JhMVHZuXwshQEly9lgKGsE+v0KeHJEql98=;
        b=Uy3WuGnR5ZonwmcC1gFKHDv0ark62ji4GoliRbvoZdmJFadOogvzqfLREadb+J+aXw
         QEtrvGcvzLljnyOU+PaaWNL+KYtxGa7FI97j27vREtbaEZIOupXkxjEpAv+gO5W8YIoo
         E2pqfs2QyO1/7KQM8EgJq0gS65c0PyHvZvMOzjGgeTi1IybLUB5PbZvLUVDrxbUjmX9Z
         Wwy1bbYnH8ILv2iYVzg3WA2RqBagXzcsDZHVYUgofq9/1qdAM5pGfSlOcGXQJodIlM7I
         rrVEi0jv6Vk/dboMgf5igN6Fkg6dhC+kD4Kq1dm5DuBPPuZVaNvf0TZaa/M+xDp0il6q
         zPIg==
X-Gm-Message-State: AOJu0Yz/aiYddtnkitkff9CJultXs3zDhSIkDLVf+NYFRTjuutoc0Igw
	2ZwV84B8mt3rdAnThVov/Fkp84X6qcmGPSKm0UWwqG5+2qpqIMUxiAt7fHpi9+GsIXLRqisDAS2
	Uy0mmf4KerIkCAXd/sYe+K6RcCaa2LiSP5yBmTg==
X-Google-Smtp-Source: AGHT+IEvSQ60cz3k7GDIxyHRWRupua8G3i8YcIUJF22usYdpwYHIdU5VexS6v2X4Kg5hltX3IFNWzBtmFWGG9ABwxGc=
X-Received: by 2002:a05:6870:179d:b0:259:8cb3:db2e with SMTP id
 586e51a60fabf-2949f03ad8amr7518289fac.39.1730708179061; Mon, 04 Nov 2024
 00:16:19 -0800 (PST)
MIME-Version: 1.0
References: <cover.1729069025.git.bertrand.marquis@arm.com>
 <57c59cae4141dd9601d7b4e9260030a16809b764.1729069025.git.bertrand.marquis@arm.com>
 <CAHUa44FPihAeGEZsj023tj22+a_xLj08gu+AsF_0E5v3PNs=jQ@mail.gmail.com> <9A0A125D-04ED-4454-8E94-1E9D4F6EFE09@arm.com>
In-Reply-To: <9A0A125D-04ED-4454-8E94-1E9D4F6EFE09@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 4 Nov 2024 09:16:07 +0100
Message-ID: <CAHUa44HQPHrnqAMwh=yjqvZJZ74A94ZZubAJhxqXTYEs17BfOA@mail.gmail.com>
Subject: Re: [RFC PATCH 4/4] xen/arm: ffa: Enable VM to VM without firmware
To: Bertrand Marquis <Bertrand.Marquis@arm.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>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Nov 4, 2024 at 8:27=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 1 Nov 2024, at 11:44, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Wed, Oct 16, 2024 at 11:22=E2=80=AFAM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> When VM to VM support is activated and there is no suitable FF-A suppo=
rt
> >> in the firmware, enable FF-A support for VMs to allow using it for VM =
to
> >> VM communications.
> >> If there is Optee running in the secure world and using the non FF-A
> >> communication system, having CONFIG_FFA_VM_TO_VM could be non function=
al
> >> (if optee is probed first) or Optee could be non functional (if FF-A i=
s
> >> probed first) so it is not recommended to activate the configuration
> >> option for such systems.
> >>
> >> To make buffer full notification work between VMs when there is not
> >> firmware, rework the notification handling and modify the global flag =
to
> >> only be used as check for firmware notification support instead.
> >>
> >> Modify part_info_get to return the list of VMs when there is no firmwa=
re
> >> support.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa.c          |  11 +++
> >> xen/arch/arm/tee/ffa_notif.c    | 118 ++++++++++++++++----------------
> >> xen/arch/arm/tee/ffa_partinfo.c |   2 +
> >> 3 files changed, 73 insertions(+), 58 deletions(-)
> >
> > I think it is desirable or at least a good goal to be able to have all
> > TEE configurations enabled at compile time.
> >
> > For optee_probe() to succeed, a DT node with compatible
> > "linaro,optee-tz" must be present, and a trusted OS responding with
> > the UUID used by OP-TEE. False positives can be ruled out unless the
> > system is grossly misconfigured and shouldn't be used.
> >
> > If we could make the probe order deterministic with OP-TEE before
> > FF-A, we should be OK. If there is an odd system with OP-TEE SMC ABI
> > in the secure world that wants to use FF-A VM to VM, removing the
> > "linaro,optee-tz" compatible node from DT is enough to disable
> > optee_probe() without recompiling Xen.
>
> I do agree with the deterministic argument but I am not sure having
> the order forced is the right solution.

CONFIG_FFA_VM_TO_VM ensures that FF-A probing always succeeds and
claims the TEE configuration. Logically, this should be last after all
other probing has been tried since it disables further probing.

>
> Maybe we could use a command line argument so that one could
> select explicitly the tee:
> tee=3Dffa / tee=3Doptee
>
> If we could prevent to modify the device tree that will probably make
> things easier.
>
> What do you think ?

That works for me.

Cheers,
Jens

>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
> >
> >>
> >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> >> index 21d41b452dc9..6d427864f3da 100644
> >> --- a/xen/arch/arm/tee/ffa.c
> >> +++ b/xen/arch/arm/tee/ffa.c
> >> @@ -324,8 +324,11 @@ static int ffa_domain_init(struct domain *d)
> >>     struct ffa_ctx *ctx;
> >>     int ret;
> >>
> >> +#ifndef CONFIG_FFA_VM_TO_VM
> >>     if ( !ffa_fw_version )
> >>         return -ENODEV;
> >> +#endif
> >> +
> >>     /*
> >>      * We are using the domain_id + 1 as the FF-A ID for VMs as FF-A I=
D 0 is
> >>      * reserved for the hypervisor and we only support secure endpoint=
s using
> >> @@ -549,7 +552,15 @@ err_no_fw:
> >>     bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
> >>     printk(XENLOG_WARNING "ARM FF-A No firmware support\n");
> >>
> >> +#ifdef CONFIG_FFA_VM_TO_VM
> >> +    INIT_LIST_HEAD(&ffa_teardown_head);
> >> +    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL=
, 0);
> >> +
> >> +    printk(XENLOG_INFO "ARM FF-A only available between VMs\n");
> >> +    return true;
> >> +#else
> >>     return false;
> >> +#endif
> >> }
> >>
> >> static const struct tee_mediator_ops ffa_ops =3D
> >> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif=
.c
> >> index 052b3e364a70..f2c87d1320de 100644
> >> --- a/xen/arch/arm/tee/ffa_notif.c
> >> +++ b/xen/arch/arm/tee/ffa_notif.c
> >> @@ -16,7 +16,7 @@
> >>
> >> #include "ffa_private.h"
> >>
> >> -static bool __ro_after_init notif_enabled;
> >> +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)
> >> @@ -27,21 +27,17 @@ int ffa_handle_notification_bind(struct cpu_user_r=
egs *regs)
> >>     uint32_t bitmap_lo =3D get_user_reg(regs, 3);
> >>     uint32_t bitmap_hi =3D get_user_reg(regs, 4);
> >>
> >> -    if ( !notif_enabled )
> >> -        return FFA_RET_NOT_SUPPORTED;
> >> -
> >>     if ( (src_dst & 0xFFFFU) !=3D ffa_get_vm_id(d) )
> >>         return FFA_RET_INVALID_PARAMETERS;
> >>
> >>     if ( flags )    /* Only global notifications are supported */
> >>         return FFA_RET_DENIED;
> >>
> >> -    /*
> >> -     * We only support notifications from SP so no need to check the =
sender
> >> -     * endpoint ID, the SPMC will take care of that for us.
> >> -     */
> >> -    return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags, bit=
map_hi,
> >> -                           bitmap_lo);
> >> +    if ( FFA_ID_IS_SECURE(src_dst>>16) && fw_notif_enabled )
> >> +        return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags,
> >> +                               bitmap_hi, bitmap_lo);
> >> +
> >> +    return FFA_RET_NOT_SUPPORTED;
> >> }
> >>
> >> int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
> >> @@ -51,32 +47,36 @@ int ffa_handle_notification_unbind(struct cpu_user=
_regs *regs)
> >>     uint32_t bitmap_lo =3D get_user_reg(regs, 3);
> >>     uint32_t bitmap_hi =3D get_user_reg(regs, 4);
> >>
> >> -    if ( !notif_enabled )
> >> -        return FFA_RET_NOT_SUPPORTED;
> >> -
> >>     if ( (src_dst & 0xFFFFU) !=3D ffa_get_vm_id(d) )
> >>         return FFA_RET_INVALID_PARAMETERS;
> >>
> >> -    /*
> >> -     * We only support notifications from SP so no need to check the
> >> -     * destination endpoint ID, the SPMC will take care of that for u=
s.
> >> -     */
> >> -    return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitm=
ap_hi,
> >> -                            bitmap_lo);
> >> +    if ( FFA_ID_IS_SECURE(src_dst>>16) && fw_notif_enabled )
> >> +        return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, =
bitmap_hi,
> >> +                                bitmap_lo);
> >> +
> >> +    return FFA_RET_NOT_SUPPORTED;
> >> }
> >>
> >> void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
> >> {
> >>     struct domain *d =3D current->domain;
> >>     struct ffa_ctx *ctx =3D d->arch.tee;
> >> +    bool notif_pending =3D false;
> >>
> >> -    if ( !notif_enabled )
> >> +#ifndef CONFIG_FFA_VM_TO_VM
> >> +    if ( !fw_notif_enabled )
> >>     {
> >>         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> >>         return;
> >>     }
> >> +#endif
> >>
> >> -    if ( test_and_clear_bool(ctx->notif.secure_pending) )
> >> +    notif_pending =3D ctx->notif.secure_pending;
> >> +#ifdef CONFIG_FFA_VM_TO_VM
> >> +    notif_pending |=3D ctx->notif.buff_full_pending;
> >> +#endif
> >> +
> >> +    if ( notif_pending )
> >>     {
> >>         /* A pending global notification for the guest */
> >>         ffa_set_regs(regs, FFA_SUCCESS_64, 0,
> >> @@ -103,11 +103,13 @@ void ffa_handle_notification_get(struct cpu_user=
_regs *regs)
> >>     uint32_t w6 =3D 0;
> >>     uint32_t w7 =3D 0;
> >>
> >> -    if ( !notif_enabled )
> >> +#ifndef CONFIG_FFA_VM_TO_VM
> >> +    if ( !fw_notif_enabled )
> >>     {
> >>         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> >>         return;
> >>     }
> >> +#endif
> >>
> >>     if ( (recv & 0xFFFFU) !=3D ffa_get_vm_id(d) )
> >>     {
> >> @@ -115,7 +117,8 @@ void ffa_handle_notification_get(struct cpu_user_r=
egs *regs)
> >>         return;
> >>     }
> >>
> >> -    if ( flags & ( FFA_NOTIF_FLAG_BITMAP_SP | FFA_NOTIF_FLAG_BITMAP_S=
PM ) )
> >> +    if ( fw_notif_enabled && (flags & ( FFA_NOTIF_FLAG_BITMAP_SP
> >> +                                        | FFA_NOTIF_FLAG_BITMAP_SPM )=
) )
> >>     {
> >>         struct arm_smccc_1_2_regs arg =3D {
> >>             .a0 =3D FFA_NOTIFICATION_GET,
> >> @@ -170,15 +173,14 @@ int ffa_handle_notification_set(struct cpu_user_=
regs *regs)
> >>     uint32_t bitmap_lo =3D get_user_reg(regs, 3);
> >>     uint32_t bitmap_hi =3D get_user_reg(regs, 4);
> >>
> >> -    if ( !notif_enabled )
> >> -        return FFA_RET_NOT_SUPPORTED;
> >> -
> >>     if ( (src_dst >> 16) !=3D ffa_get_vm_id(d) )
> >>         return FFA_RET_INVALID_PARAMETERS;
> >>
> >> -    /* Let the SPMC check the destination of the notification */
> >> -    return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitm=
ap_lo,
> >> -                           bitmap_hi);
> >> +    if ( FFA_ID_IS_SECURE(src_dst>>16) && fw_notif_enabled )
> >> +        return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, =
bitmap_lo,
> >> +                               bitmap_hi);
> >> +
> >> +    return FFA_RET_NOT_SUPPORTED;
> >> }
> >>
> >> #ifdef CONFIG_FFA_VM_TO_VM
> >> @@ -190,7 +192,7 @@ void ffa_raise_rx_buffer_full(struct domain *d)
> >>         return;
> >>
> >>     if ( !test_and_set_bool(ctx->notif.buff_full_pending) )
> >> -        vgic_inject_irq(d, d->vcpu[0], notif_sri_irq, true);
> >> +        vgic_inject_irq(d, d->vcpu[0], GUEST_FFA_NOTIF_PEND_INTR_ID, =
true);
> >> }
> >> #endif
> >>
> >> @@ -363,7 +365,7 @@ void ffa_notif_init_interrupt(void)
> >> {
> >>     int ret;
> >>
> >> -    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI )
> >> +    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
> >>     {
> >>         /*
> >>          * An error here is unlikely since the primary CPU has already
> >> @@ -394,47 +396,47 @@ void ffa_notif_init(void)
> >>     int ret;
> >>
> >>     /* Only enable fw notification if all ABIs we need are supported *=
/
> >> -    if ( !(ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
> >> -           ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
> >> -           ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
> >> -           ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64)) )
> >> -        return;
> >> -
> >> -    arm_smccc_1_2_smc(&arg, &resp);
> >> -    if ( resp.a0 !=3D FFA_SUCCESS_32 )
> >> -        return;
> >> -
> >> -    irq =3D resp.a2;
> >> -    notif_sri_irq =3D irq;
> >> -    if ( irq >=3D NR_GIC_SGI )
> >> -        irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
> >> -    ret =3D request_irq(irq, 0, notif_irq_handler, "FF-A notif", NULL=
);
> >> -    if ( ret )
> >> +    if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
> >> +         ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
> >> +         ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
> >> +         ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64) )
> >>     {
> >> -        printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n=
",
> >> -               irq, ret);
> >> -        return;
> >> -    }
> >> +        arm_smccc_1_2_smc(&arg, &resp);
> >> +        if ( resp.a0 !=3D FFA_SUCCESS_32 )
> >> +            return;
> >>
> >> -    notif_enabled =3D true;
> >> +        irq =3D resp.a2;
> >> +        notif_sri_irq =3D irq;
> >> +        if ( irq >=3D NR_GIC_SGI )
> >> +            irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
> >> +        ret =3D 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);
> >> +            return;
> >> +        }
> >> +        fw_notif_enabled =3D true;
> >> +    }
> >> }
> >>
> >> int ffa_notif_domain_init(struct domain *d)
> >> {
> >>     int32_t res;
> >>
> >> -    if ( !notif_enabled )
> >> -        return 0;
> >> +    if ( fw_notif_enabled )
> >> +    {
> >>
> >> -    res =3D ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_v=
cpus);
> >> -    if ( res )
> >> -        return -ENOMEM;
> >> +        res =3D ffa_notification_bitmap_create(ffa_get_vm_id(d), d->m=
ax_vcpus);
> >> +        if ( res )
> >> +            return -ENOMEM;
> >> +    }
> >>
> >>     return 0;
> >> }
> >>
> >> void ffa_notif_domain_destroy(struct domain *d)
> >> {
> >> -    if ( notif_enabled )
> >> +    if ( fw_notif_enabled )
> >>         ffa_notification_bitmap_destroy(ffa_get_vm_id(d));
> >> }
> >> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_pa=
rtinfo.c
> >> index d699a267cc76..2e09440fe6c2 100644
> >> --- a/xen/arch/arm/tee/ffa_partinfo.c
> >> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> >> @@ -128,12 +128,14 @@ void ffa_handle_partition_info_get(struct cpu_us=
er_regs *regs)
> >>         goto out;
> >>     }
> >>
> >> +#ifndef CONFIG_FFA_VM_TO_VM
> >>     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
> >>     {
> >>         /* Just give an empty partition list to the caller */
> >>         ret =3D FFA_RET_OK;
> >>         goto out;
> >>     }
> >> +#endif
> >>
> >>     ret =3D ffa_rx_acquire(d);
> >>     if ( ret !=3D FFA_RET_OK )
> >> --
> >> 2.47.0
>
>


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 08:41:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 08:41:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829874.1244779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7seD-0005mX-Pv; Mon, 04 Nov 2024 08:41:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829874.1244779; Mon, 04 Nov 2024 08:41: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 1t7seD-0005mQ-NI; Mon, 04 Nov 2024 08:41:17 +0000
Received: by outflank-mailman (input) for mailman id 829874;
 Mon, 04 Nov 2024 08:41: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=r6Gf=R7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t7seD-0005mK-5L
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 08:41:17 +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 8a750692-9a88-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 09:41:10 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-37d6a2aa748so2215203f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 00:41: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
 ffacd0b85a97d-381c10e61f9sm12551165f8f.58.2024.11.04.00.41.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 00:41: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: 8a750692-9a88-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmYiLCJoZWxvIjoibWFpbC13cjEteDQyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhhNzUwNjkyLTlhODgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzA5NjcwLjMyNDA3Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730709670; x=1731314470; 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=DMM9VuaIc4L1j8F1oSTa5gybu2ntSycJv3SP8sOPJDA=;
        b=Svr2SZvCwkOSsm2QJ8t1RiwlT0oyel+cT2Iruk6nqY92zKgHzAaYmY5hGViD0lBzeK
         ol9dZdRNyTQhO2pdJmeTw6YontUlgaXl6gEM1jv4OFjl3y3Rbkwb4th0eAdKvOuEwzx2
         vdOqQLn974lUT6qAgKCNmRpj5j2V1OCaYrIB1aXvOiDDyNi3wxlXuc/ZEdZEyZLXt5w5
         rcgbzXCvJDkImsyyMGGt/2biJ+G0xTBWI0Jf0OfK9cIcwHwydXd4VHsmH0oWfVDmoQEj
         wf8qqZ3Xw9d5elHCv7zSWb2VTsWaXTfiemUx5VtOrDi3Gf4UdeVtLLKRrn20GJGCFXaJ
         dDpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730709670; x=1731314470;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DMM9VuaIc4L1j8F1oSTa5gybu2ntSycJv3SP8sOPJDA=;
        b=sydCce7jhZWeA2I1/Pc55jDmIFy65vkoObmzGR+tnUzbEvrvc+g9POpQKyAo6q7e48
         3vXglO7RRURuJVKsJLnDzeJEvJ64UBYFDHy21gnRCUddwoRQD/2pkldyBAeLaZbaufAS
         +CVRXTMr9CEMGHoFhVuEpI8DnqQLnE66MXuWMGL4mPkvFzqiOXFq1+DEagaN3BvQZ1FX
         VsOQYB8ekKPsHqIQBv1iH3xmrqrT+lGHl+48fpz7TAa9MKkERajr0YmMJAoDDngze0T4
         +yjF4/KvZR1XVeM6HRjSvy5fFSMbzOP6sHlL8fpLznt9djgX/OWTSAqWbPNPqMKvssvx
         UVbw==
X-Forwarded-Encrypted: i=1; AJvYcCUgl94UXgA0Ct5SAU39gSTXxKcNYiUa+uMZwi6Btopun9nBUxMf4SX9ykDRkzV4dV2p1PbUtg0zpto=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJfvS61T33/pLX+2PWp5yFGn2BKVkWBrWQ+eaFVyVXV7maXGz6
	seYU50NB4DZ1eHdFiIrgJKHjqeDFSh/GRiM0LmB10QnWfQjAGV+4csRBC67WVg==
X-Google-Smtp-Source: AGHT+IE78VC7BVDITQYaK2UzNsWGNwjau12vMfJ0zzQkqeCztfhh5vRMjfLh/3A7ucXCo7R3L13orA==
X-Received: by 2002:a05:6000:78a:b0:37c:d299:b5f0 with SMTP id ffacd0b85a97d-381c7ae0a06mr7305806f8f.59.1730709669668;
        Mon, 04 Nov 2024 00:41:09 -0800 (PST)
Message-ID: <b04fb1c2-7b62-49ec-93a0-452edd241d4a@suse.com>
Date: Mon, 4 Nov 2024 09:41:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/12] Boot modules for Hyperlaunch
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, xen-devel@lists.xenproject.org
References: <20241102172551.17233-1-dpsmith@apertussolutions.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: <20241102172551.17233-1-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.11.2024 18:25, Daniel P. Smith wrote:
> The Boot Modules for Hyperlaunch series is an effort to split out preliminary
> changes necessary for the introduction of the Hyperlaunch domain builder
> logic. These preliminary changes revolve around introducing the struct
> boot_module and struct boot_domain structures. This includes converting the
> dom0 construction path to use these structures. These abstractions lay the
> groundwork to transform and extend the dom0 construction logic into a limited,
> but general domain builder.
> 
> The splitting of Hyperlaunch into a set of series are twofold, to reduce the
> effort in reviewing a much larger series, and to reduce the effort in handling
> the knock-on effects to the construction logic from requested review changes.
> 
> Much thanks to AMD for supporting this work.
> 
> !!NOTE on v8!!
> For this version a complete re-organization of the changes were made with the
> concept that three tasks were being carried out that were intertwined in the past
> versions. These three tasks were 1. capturing the state tracking and
> enrichment, 2. removing the use of module_t to track where a boot module is
> located in memory, and 3. abstract the domain construction state. The first
> eight patches address task 1, task 2 is address with patch nine, and the
> remaining addresses task 3.

Just to mention it - a v8 tag would also have been nice in the mail thread
subjects.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 09:25:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 09:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829881.1244789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7tKe-0002vp-0f; Mon, 04 Nov 2024 09:25:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829881.1244789; Mon, 04 Nov 2024 09:25: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 1t7tKd-0002vi-Ts; Mon, 04 Nov 2024 09:25:07 +0000
Received: by outflank-mailman (input) for mailman id 829881;
 Mon, 04 Nov 2024 09:25: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=zgNs=R7=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1t7tKc-0002vc-JC
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 09:25: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 ab57aac2-9a8e-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 10:25:02 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4315c1c7392so34157785e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 01:25:02 -0800 (PST)
Received: from ?IPV6:2003:e5:8706:5100:ddd3:fe18:d0ae:c30d?
 (p200300e587065100ddd3fe18d0aec30d.dip0.t-ipconnect.de.
 [2003:e5:8706:5100:ddd3:fe18:d0ae:c30d])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4327d685308sm145817825e9.33.2024.11.04.01.25.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 01:25: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: ab57aac2-9a8e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFiNTdhYWMyLTlhOGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzEyMzAyLjQ4MjUxMywic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730712302; x=1731317102; 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=X3j6yw9G9MmSxTglPbSEmSMcnh+26FY7U9BWD66ivgE=;
        b=MZOXR6BopE3OVH9bfJXLIoSpLjgsHt0qbADjS0+g9Y5a6Z5E9bBcfGJYkbOCNe0noB
         KPsONAJC3/P+4tFnXoQgQfIPdUq8gCwHJjkfcyJsSEO3QJI7JqLhcgZUq/R3k70DAnbc
         rbnkvH9rlHYr7VSjRuffvhtLc1C8emSj3/NYhUYbvQ/p4AkzHn7R/AmmOFKMNnYjbCdR
         jouGrXf/jBh38w38L+BDcOJ6/+ZMi/8YOp0M73PQwcGHntKt1qKxpWMpt1WkEFmveUcZ
         Ub9U3S9LPfUHUAJatFeGxjbxgYgEfafNlavfB18rvQwktRXGWrHrlBlJq8nYKEz89a8T
         N98A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730712302; x=1731317102;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=X3j6yw9G9MmSxTglPbSEmSMcnh+26FY7U9BWD66ivgE=;
        b=DkvMTcEW/MrWifFd9cI75RHI/Kk3rSyLjUpy6oWzkdqKoeecfrTku6YrgGTj11vLRM
         YHrC4dk6ifJ2SN8P/wGKuM3ohhNu8vcqukXGFydp5OLfizZmQg5BNrthiXUwysmgMleS
         9z2AZaDX9aw3JMuBqAA7tOpI2xsaL6bmy9f9wiKb20x96YZjVLf1urYZDpGtf60hCEtw
         hqCCUGI6I9+lcZ1EcuML5Pme30CPvC2zYzTbPquXLXH4sjT+kNC6HNoMNbKm6H6TKi8O
         nzk40nb3JxETu+Js2B5HRcYcd10lVD2GMZa0lgUr8w9ou+nSqypIlzHl3OQjMVgIKhEE
         L0zA==
X-Forwarded-Encrypted: i=1; AJvYcCWJ17Kge1cbZr/NjYYR+cGXcQysc9reukMTdO10X/El1KpI4dVReuc3eBCxZQc/g0uob4G61sdAjZQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwHSrSXfyTp1jABgltYDE8b5rCxBL0a1SfECQrJQtzUoSUUcuy
	TmXRfdYk3+s7EiqLHsxuM2vsM2yYS6md/R1MD7TJqf2UEl7KyoGdCuJYMij1Yv1dVc3JACeC+GC
	hriA=
X-Google-Smtp-Source: AGHT+IHI2kOYywT8q/plqqpqvShcJU7MytTNDmcUOu/Gxym10z/sE/f3c32CxiDcoJTxZHTeau8VHQ==
X-Received: by 2002:a05:600c:22d3:b0:432:7c08:d121 with SMTP id 5b1f17b1804b1-432849fa03amr100113175e9.12.1730712301759;
        Mon, 04 Nov 2024 01:25:01 -0800 (PST)
Message-ID: <5767653a-9b8c-4919-89b1-d487574ba212@suse.com>
Date: Mon, 4 Nov 2024 10:25:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Dom0 crash (BUG_ON(old_mode != XEN_LAZY_NONE) in enter_lazy())
 with Linux 6.11.2
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
References: <ZyTFfG9i87hQXmwZ@mail-itl>
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: <ZyTFfG9i87hQXmwZ@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------N93Bib0Tf8ImduKtcdy2IM0U"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------N93Bib0Tf8ImduKtcdy2IM0U
Content-Type: multipart/mixed; boundary="------------x0kmOHbzvtYtkXGh2lYeC2Zt";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <5767653a-9b8c-4919-89b1-d487574ba212@suse.com>
Subject: Re: Dom0 crash (BUG_ON(old_mode != XEN_LAZY_NONE) in enter_lazy())
 with Linux 6.11.2
References: <ZyTFfG9i87hQXmwZ@mail-itl>
In-Reply-To: <ZyTFfG9i87hQXmwZ@mail-itl>

--------------x0kmOHbzvtYtkXGh2lYeC2Zt
Content-Type: multipart/mixed; boundary="------------9CAPdwntkE0lFDhD3V2F00le"

--------------9CAPdwntkE0lFDhD3V2F00le
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDEuMTEuMjQgMTM6MTEsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gSGksDQo+IA0KPiBJJ3ZlIGdvdCBhIHJlcG9ydCB0aGF0IHN0YXJ0aW5nIHdpdGggNi4x
MSAoc3BlY2lmaWNhbGx5IDYuMTEuMikgZG9tMA0KPiBvZnRlbiBjcmFzaGVzIG9uIGEgQlVH
X09OKCkgbGlrZSBpbiB0aGUgc3ViamVjdC4gSSdtIG5vdCBzdXJlIHdoZXJlIHRoZQ0KPiBp
c3N1ZSBpcyAtIHRoZXJlIGlzIGk5MTUgYWxsIG92ZXIgdGhlIHN0YWNrIHRyYWNlLCBidXQg
aW4gdGhlIGVuZCBpdA0KPiBjcmFzaGVzIGluIGEgWGVuLXNwZWNpZmljIGNvZGUuDQoNClRo
aXMgaXMgcHJvYmFibHkgcmVsYXRlZCB0byB0aGUgc2NoZWR1bGluZyBjaGFuZ2VzIGRvbmUg
aW4gNi4xMS4gQ2FuIHlvdSBwbGVhc2UNCnNoYXJlIHRoZSBrZXJuZWwgY29uZmlnIHlvdSBh
cmUgdXNpbmc/DQoNCg0KSnVlcmdlbg0K
--------------9CAPdwntkE0lFDhD3V2F00le
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-----

--------------9CAPdwntkE0lFDhD3V2F00le--

--------------x0kmOHbzvtYtkXGh2lYeC2Zt--

--------------N93Bib0Tf8ImduKtcdy2IM0U
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/Ey8FAmcokuwFAwAAAAAACgkQsN6d1ii/Ey87
Jwf/VqRc/laNwKCMet3IQF7TuiZnmzIAFlObLT4q/+EqM+wvVOMY2q+x52hNePZAmkBN7bZ+1CTo
bdFh/AIm3lwu+pPgkFFtwwJNOkSkqSQfxErJnXBAMrUl9jNeyTQHCxoWXqVPFWndlYH4QHyLsi1V
BAv/hXddCDH3ARmsxhCN66zLiV/4YTf+OprPLu4bvjjZvy7RfSU+Z1y/gAKOPM1CAI9JsCt4gaSa
OidA9b2oXN/QARB58BgKPJQgVo0q1/3lkt2c+R0fiVbReXhBRIqnvdkgoc71pGckZxQijCuemGDJ
5+CRAZkrURBGoyxBRQF/EGxRySe0vHuNrJflQrXaMw==
=/xEu
-----END PGP SIGNATURE-----

--------------N93Bib0Tf8ImduKtcdy2IM0U--


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 09:27:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 09:27:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829887.1244798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7tMa-0003h2-Av; Mon, 04 Nov 2024 09:27:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829887.1244798; Mon, 04 Nov 2024 09:27: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 1t7tMa-0003gv-8N; Mon, 04 Nov 2024 09:27:08 +0000
Received: by outflank-mailman (input) for mailman id 829887;
 Mon, 04 Nov 2024 09:27: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=UQGP=R7=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1t7tMY-0003gn-K2
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 09:27:06 +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 f015ee9a-9a8e-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 10:26:58 +0100 (CET)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-444-MVDSc3zqOpq0R_bRrpQZaw-1; Mon, 04 Nov 2024 04:26:56 -0500
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-37d5a3afa84so1946243f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 01:26:55 -0800 (PST)
Received: from ?IPv6:2001:16b8:2d7f:e400:7f8:722c:bb2e:bb7f?
 (200116b82d7fe40007f8722cbb2ebb7f.dip.versatel-1u1.de.
 [2001:16b8:2d7f:e400:7f8:722c:bb2e:bb7f])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381c10b7d20sm12817150f8f.7.2024.11.04.01.26.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Nov 2024 01:26: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: f015ee9a-9a8e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImYwMTVlZTlhLTlhOGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzEyNDE4Ljc4MjE1Mywic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1730712417;
	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=M7ueN/LQ529FLGouL/3BXVgrjx8tY87847WIrlhrom4=;
	b=hs7Ppm7wXaEwXylZk3WlnuRhOBVi9EZFeFaHA5C2kpvSH/VjkVm6K0TiNsnRe0z8Kj9ISO
	QeHbTMdAtNM8OMz7ZsX56g97CaQyWzdOZ7ETkNzghr2NW+8F20RyIMZTCqi56KBYvwZI4U
	2b2TxZfnuV5aUNIoqBdGJ9P5nVrVU+4=
X-MC-Unique: MVDSc3zqOpq0R_bRrpQZaw-1
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730712415; x=1731317215;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=M7ueN/LQ529FLGouL/3BXVgrjx8tY87847WIrlhrom4=;
        b=GWEyNvVf5qo0bX5ejSohPS02CrH86TUY1BX0AK5VdEjPVIBMz/P9JOg+LTBMVQFiMm
         2hjHoaCEgMbbr8iJqgzsgUPJmLSaJcUe2bGc8j08ktdH9fOh8lJAv7vwwoIh7K3F1yf+
         Fie7LqwlvPf7PaZNtJNwP2z0zOGoF9WoDEubDvewfuoST+4BSFBXWZ2WEerq/PtdnQ26
         tmIHusl3o6dcVuF+/9Rxjn0it/ggecaCHJ7j17JAtjl/w7X/BJowstlIE/jC5q7LuIyQ
         oKuHx+Przzj481HgZOnG6QA4V9J2Tr8vt7usT3maAdi6HoOCfdilv3JxOisLGTYAjVay
         l0jA==
X-Forwarded-Encrypted: i=1; AJvYcCXXgk3r5wA04tTYWBpWoor60x015OM0YGtOxFCIbnquxB4He8UODrBWlnNWcd742GIarbY9/gii0zA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/icDEQaHSU3f1sq6w019jb+nfhx0kiyb5lBpkkjd/9kPPEJyi
	W9wD4SZn2ekXb0CAHjVDT+mgXF5i8ImCZ1+uQGmK5fAf5Ca5TRvL5YCD8W10JwW2uWOQG63mfGf
	uoKjZ5133VXltfB09VwhhNMLD4ZoC3l4YwwnQduAtZYQwyXYz74Dr5ogsRerS3bWV
X-Received: by 2002:a5d:5f54:0:b0:37d:373c:ed24 with SMTP id ffacd0b85a97d-381c7a3a49cmr8192656f8f.4.1730712414699;
        Mon, 04 Nov 2024 01:26:54 -0800 (PST)
X-Google-Smtp-Source: AGHT+IHUG4i3r4RT/0mDz+U1cY7m40dZcu2ijC6eEouX1uNQBldOHTZd5hoduIq2TUsnjYO3wLrnew==
X-Received: by 2002:a5d:5f54:0:b0:37d:373c:ed24 with SMTP id ffacd0b85a97d-381c7a3a49cmr8192628f8f.4.1730712414212;
        Mon, 04 Nov 2024 01:26:54 -0800 (PST)
Message-ID: <a8d9f32f60f55c58d79943c4409b8b94535ff853.camel@redhat.com>
Subject: Re: [PATCH 01/13] PCI: Prepare removing devres from pci_intx()
From: Philipp Stanner <pstanner@redhat.com>
To: Thomas Gleixner <tglx@linutronix.de>, Damien Le Moal
 <dlemoal@kernel.org>,  Niklas Cassel <cassel@kernel.org>, Sergey Shtylyov
 <s.shtylyov@omp.ru>, Basavaraj Natikar <basavaraj.natikar@amd.com>, Jiri
 Kosina <jikos@kernel.org>, Benjamin Tissoires <bentiss@kernel.org>, Arnd
 Bergmann <arnd@arndb.de>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Alex Dubov <oakad@yahoo.com>, Sudarsana Kalluru <skalluru@marvell.com>,
 Manish Chopra <manishc@marvell.com>, "David S. Miller"
 <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski
 <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>, GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>, Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam Sundar
 S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave Jiang
 <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn Helgaas
 <bhelgaas@google.com>, Alex Williamson <alex.williamson@redhat.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Jaroslav Kysela <perex@perex.cz>, Takashi
 Iwai <tiwai@suse.com>, Chen Ni <nichen@iscas.ac.cn>, Mario Limonciello
 <mario.limonciello@amd.com>, Ricky Wu <ricky_wu@realtek.com>, Al Viro
 <viro@zeniv.linux.org.uk>, Breno Leitao <leitao@debian.org>, Kevin Tian
 <kevin.tian@intel.com>, Ilpo =?ISO-8859-1?Q?J=E4rvinen?=
 <ilpo.jarvinen@linux.intel.com>, Andy Shevchenko
 <andriy.shevchenko@linux.intel.com>, Mostafa Saleh <smostafa@google.com>, 
 Jason Gunthorpe <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>, Christian
 Brauner <brauner@kernel.org>, Ankit Agrawal <ankita@nvidia.com>, Eric Auger
 <eric.auger@redhat.com>, Reinette Chatre <reinette.chatre@intel.com>, Ye
 Bin <yebin10@huawei.com>, Marek =?ISO-8859-1?Q?Marczykowski-G=F3recki?=
 <marmarek@invisiblethingslab.com>, Pierre-Louis Bossart
 <pierre-louis.bossart@linux.dev>, Peter Ujfalusi
 <peter.ujfalusi@linux.intel.com>, Maarten Lankhorst
 <maarten.lankhorst@linux.intel.com>, Kai Vehmanen
 <kai.vehmanen@linux.intel.com>,  Rui Salvaterra <rsalvaterra@gmail.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-input@vger.kernel.org, netdev@vger.kernel.org, 
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org,  kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-sound@vger.kernel.org
Date: Mon, 04 Nov 2024 10:26:51 +0100
In-Reply-To: <87cyjgwfmo.ffs@tglx>
References: <20241015185124.64726-1-pstanner@redhat.com>
	 <20241015185124.64726-2-pstanner@redhat.com> <87cyjgwfmo.ffs@tglx>
User-Agent: Evolution 3.52.4 (3.52.4-2.fc40)
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2024-10-31 at 14:45 +0100, Thomas Gleixner wrote:
> On Tue, Oct 15 2024 at 20:51, Philipp Stanner wrote:
> > +/**
> > + * pci_intx - enables/disables PCI INTx for device dev, unmanaged
> > version
>=20
> mismatch vs. actual function name.

ACK, will fix

>=20
> > + * @pdev: the PCI device to operate on
> > + * @enable: boolean: whether to enable or disable PCI INTx
> > + *
> > + * Enables/disables PCI INTx for device @pdev
> > + *
> > + * This function behavios identically to pci_intx(), but is never
> > managed with
> > + * devres.
> > + */
> > +void pci_intx_unmanaged(struct pci_dev *pdev, int enable)
>=20
> This is a misnomer. The function controls the INTX_DISABLE bit of a
> PCI device. Something like this:
>=20
> void __pci_intx_control()
> {
> }
>=20
> static inline void pci_intx_enable(d)
> {
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __pci_intx_control(d, true);
> }
>=20
> .....
>=20
> makes it entirely clear what this is about.

Well, I would agree if it were about writing a 'real' new function. But
this is actually about creating a _temporary_ function which is added
here and removed again in patch 12 of this same series.

It wouldn't even be needed; the only reason why it exists is to make it
easy for the driver maintainers concerned by patches 2-11 to review the
change and understand what's going on. Hence it is
"pci_intx_unmanaged()" =3D=3D "Attention, we take automatic management away
from your driver"

pci_intx() is then fully restored after patch 12 and it keeps its old
name.

Gr=C3=BC=C3=9Fe,
Philipp


>=20
> Hmm?
>=20
> Thanks,
>=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tglx
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 04 09:36:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 09:36:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829893.1244808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7tVQ-0005Fc-5C; Mon, 04 Nov 2024 09:36:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829893.1244808; Mon, 04 Nov 2024 09:36: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 1t7tVQ-0005FV-26; Mon, 04 Nov 2024 09:36:16 +0000
Received: by outflank-mailman (input) for mailman id 829893;
 Mon, 04 Nov 2024 09:36: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=r6Gf=R7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t7tVO-0005FN-4K
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 09:36:14 +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 39730870-9a90-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 10:36:10 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9a68480164so629183466b.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 01:36: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
 ffacd0b85a97d-381c1185b4bsm12615033f8f.112.2024.11.04.01.35.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 01:35: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: 39730870-9a90-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM5NzMwODcwLTlhOTAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzEyOTcwLjMzNjY0NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730712970; x=1731317770; 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=DvnLglFM1tuDsFW4OVsCzZpsadjdbj0baeGOeNTrx9w=;
        b=DtV6L+bak5oRDjXKFXnkNuCYWLuaHUTZc+SlszyOao7F1hU87VGkzgwsHXbGZRlTWK
         Fsa6k50OrB3lfr51FUr0LKPcbeSUroD4fgWG+ASYfGblkFtvY+N3LQexEC9DjjUm7Gs5
         FQZwUVes/8GuIpsBlP+WYQ73RtejFF7Nmf+2/o/CJ8Bcz9er2TolhkU8JirO50xL13Op
         W8elpJpuAun97qPkDtD1q1me8SeJkcIuCeh7aDBHO6irQKpbzw7V1Ypemmj58ECDSUTz
         I45HW55JpaTrRIU1wSBeFHEOr/x8ON5zsd/k7c17RBUWjQPlaBGQhOHNhpRlzPspPxpv
         4Z5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730712970; x=1731317770;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DvnLglFM1tuDsFW4OVsCzZpsadjdbj0baeGOeNTrx9w=;
        b=E8KkFr6fjX5yBHFpCFNkEOiFTir7+1lVdP89pc9jM84odpNDev42w332gf+Fu6jlOa
         MUMZlBnalwmsdlrzVAVO3fGDuaIqY9HPFNXDVwBkX+cdjj733s0qzbr/RM2RXhbq0VQK
         1Ln9r6PP4weZfrZAolbPynb37k5HUSIQyJ9Rkkr6rPkrS1bsFtt+v26VqVuW8KaAV7Rg
         kpGfb7iWgVlOpHLYVXz5gueyO2F+qwZWE/aACE8geDo6ulBdlHMAnL4Z6nYHisPY4SHE
         pzIaYAW5BvpuMNTl9dWoNLefABEW+cj17PiAndLdAZEQJYl/PPoHR5SyP3yKQ5yBb5wd
         6G3Q==
X-Forwarded-Encrypted: i=1; AJvYcCW4cTCaFBQgseK2alaeb1YDo+bs6mbTnebdaVVk7v6p6abG/nd36PyODpx45DWMPVX6w5egkDcgx9M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykL72W7VAqnyJuQI0iaZtamXqlTq8HQymcRHNTCHNaL+ts3sDU
	AfK6an5E4cgAo8M9GmMpehx5YuIzsK76u1ERL8HCMhfNHX5R31FugEOhiyF6z2R2UWNntl3rltA
	=
X-Google-Smtp-Source: AGHT+IHZ7BrWYcUt2Uw2nWsW6Ms380kvbhoRwkrwwcd62jENrG27uR94gEELpuHEx1TB1jPI8C5jkg==
X-Received: by 2002:a05:600c:3ca3:b0:42f:823d:dde9 with SMTP id 5b1f17b1804b1-4319acbba20mr298609145e9.21.1730712958947;
        Mon, 04 Nov 2024 01:35:58 -0800 (PST)
Message-ID: <7b4015a0-9d02-40a9-9919-10e7bdd73291@suse.com>
Date: Mon, 4 Nov 2024 10:35:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] xen: add bitmap to indicate per-domain state changes
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-3-jgross@suse.com>
 <6823a222-63ad-4a5a-83d2-70c6f39f38c0@suse.com>
 <fadbb6da-a314-4f1b-8a59-92c1c201dd09@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: <fadbb6da-a314-4f1b-8a59-92c1c201dd09@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.11.2024 07:48, JÃ¼rgen GroÃŸ wrote:
> On 31.10.24 11:59, Jan Beulich wrote:
>> On 23.10.2024 15:10, Juergen Gross wrote:
>>> Add a bitmap with one bit per possible domid indicating the respective
>>> domain has changed its state (created, deleted, dying, crashed,
>>> shutdown).
>>>
>>> Registering the VIRQ_DOM_EXC event will result in setting the bits for
>>> all existing domains and resetting all other bits.
>>
>> That's furthering the "there can be only one consumer" model that also
>> is used for VIRQ_DOM_EXC itself. I consider the existing model flawed
>> (nothing keeps a 2nd party with sufficient privilege from invoking
>> XEN_DOMCTL_set_virq_handler a 2nd time, taking away the notification
>> from whoever had first requested it), and hence I dislike this being
>> extended. Conceivably multiple parties may indeed be interested in
>> this kind of information. At which point resetting state when the vIRQ
>> is bound is questionable (or the data would need to become per-domain
>> rather than global, or even yet more fine-grained, albeit
>> ->virq_to_evtchn[] is also per-domain, when considering global vIRQ-s).
> 
> The bitmap is directly tied to the VIRQ_DOM_EXC anyway, as it is that
> event which makes the consumer look into the bitmap via the new hypercall.
> 
> If we decide to allow multiple consumers of VIRQ_DOM_EXC, we'll need to
> have one bitmap per consumer of the event. This is not very hard to
> modify.
> 
> If you'd like that better, I can dynamically allocate the bitmap on
> binding VIRQ_DOM_EXC and freeing it again when unbinding is done.

I'd prefer that indeed, yet I'm also curious what other maintainers think.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 09:43:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 09:43:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829902.1244819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7tc5-000793-W3; Mon, 04 Nov 2024 09:43:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829902.1244819; Mon, 04 Nov 2024 09:43: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 1t7tc5-00078w-T3; Mon, 04 Nov 2024 09:43:09 +0000
Received: by outflank-mailman (input) for mailman id 829902;
 Mon, 04 Nov 2024 09:43: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=r6Gf=R7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t7tc4-00078q-T1
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 09:43:08 +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 2fb2a2f5-9a91-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 10:43:03 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4316f3d3c21so30860835e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 01: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-381c1182732sm12710742f8f.111.2024.11.04.01.43.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 01: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: 2fb2a2f5-9a91-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJmYjJhMmY1LTlhOTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzEzMzgzLjUxMTY2OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730713383; x=1731318183; 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=Mcpvzx3K5y6+iHArK8api36uDX7D0tLmWWdm6TTd6k0=;
        b=fU9dKNQ7msGllLVIbDXWSGo0UnTe68e0mCloxtsmw/AG9VmXNSTZOvbnSAvy0fEvbq
         cgx6ViZ+mYx2w5dIKuXWywAtMMVzWNM0iN+H7zXiF26bf0wNS8jIbHiwjLO2bAHcKE/R
         E6MOL0Ni/+2HHRb+jzTmejH/NPl/eU78j5vB00LxlLd0KjNcmzlVpXiXU8o7AiC2fa2X
         H7OC3OrdQPfJ3AJ6hboLAkhu3xGOIn555L3R61Bfk0CHsZnrLId7T96nEgjAwZCUwitn
         BhPn1pYBPTGx3F5HgPF3Rzchpr5fLNY2LG9t7CplPgHIxJwA+DYovr1oO+CnMEpkjrgO
         Vkmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730713383; x=1731318183;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mcpvzx3K5y6+iHArK8api36uDX7D0tLmWWdm6TTd6k0=;
        b=Tnu+74Pw1yNPC+Giwqc+c99B8VONM89T1RST/EMiO80U6Hx12AX+l2dX/BrLwVlGSf
         dQ3u7xNg4nFBobq1G7eNx7CBuGMhg9NejKFvu8ka6wi4b326jh0C6sppuEU1FAd70JZd
         orr7a3Dl5x7NX9PulED5YY172WKgC3xOF382hnLcfbe4JToEdQQjqiK3H/fvhMZU/OIn
         r8d6EOopohrosfw6+/Agqkz+RGgG99kZm5wRKfbcKTsAu3Ocswqf2+z7j8F+BDx1ILdK
         pmcw3BKB4jrtmWT+VDIaEZCWNEODVRSGD3LHAXE53vECCG/3mtfwdnQNnvd8mntymXte
         QXLw==
X-Forwarded-Encrypted: i=1; AJvYcCUwmm3Qer71cyIFdkQ/wyj0bXaPTWP+LCcP0+CF8SbHEGj1lRqUaM2kLZbZdpPTYuDXmlMkPdyuMkY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2fZAwgnllqHmWp/ar9Jvy3XA8dZeroW/bQeNlxTegdMXNZife
	ArCFR9J+A3HU8vWNEa83p2S7scUrvxpM5T6iewHK3q41sabr8mW89ypNvqieIQ==
X-Google-Smtp-Source: AGHT+IFDCHxSPc5BBWtwyX83TRu8MCmm6HeWGpnptfOei6lnARcpnRvdJaghV/3JkWHKj8yo2HctSw==
X-Received: by 2002:a05:600c:1d97:b0:431:5459:33c2 with SMTP id 5b1f17b1804b1-431bb99053bmr193047195e9.17.1730713382783;
        Mon, 04 Nov 2024 01:43:02 -0800 (PST)
Message-ID: <d4ba8ef9-b84f-4c9b-9b3c-2322b04d179d@suse.com>
Date: Mon, 4 Nov 2024 10:43:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/device-tree: Let DT reserve map entries
 overlap reserved-memory
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
Cc: tpearson@raptorengineering.com, xen-devel@lists.xenproject.org,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <cover.1727388925.git.sanastasio@raptorengineering.com>
 <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.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: <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.09.2024 00:24, Shawn Anastasio wrote:
> Commit 53dc37829c31 ("xen/arm: Add DT reserve map regions to
> bootinfo.reserved_mem") changes the way reserve map regions are tracked,
> and as a result broke bootfdt's ability to handle device trees in which
> the reserve map and the `reserved-memory` node contain the same entries
> as each other, as is the case on PPC when booted by skiboot.
> 
> Fix this behavior by moving the reserve map check to after the DT has
> been parsed and by explicitly allowing overlap with entries created by
> `reserved-memory` nodes.
> 
> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> ---
>  xen/common/device-tree/bootfdt.c  | 28 +++++++++++++++++++++++-----
>  xen/common/device-tree/bootinfo.c | 11 +++++++++--
>  xen/include/xen/bootfdt.h         |  3 ++-
>  3 files changed, 34 insertions(+), 8 deletions(-)

DT maintainers?

Jan

> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
> index 911a630e7d..2a51ee44a3 100644
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -177,7 +177,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
>      {
>          device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
>          if ( mem == bootinfo_get_reserved_mem() &&
> -             check_reserved_regions_overlap(start, size) )
> +             check_reserved_regions_overlap(start, size, NULL) )
>              return -EINVAL;
>          /* Some DT may describe empty bank, ignore them */
>          if ( !size )
> @@ -590,14 +590,36 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>      if ( nr_rsvd < 0 )
>          panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
>  
> +    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
> +    if ( ret )
> +        panic("Early FDT parsing failed (%d)\n", ret);
> +
>      for ( i = 0; i < nr_rsvd; i++ )
>      {
> +        const struct membanks *overlap = NULL;
>          struct membank *bank;
>          paddr_t s, sz;
>  
>          if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>              continue;
>  
> +        if ( check_reserved_regions_overlap(s, sz, &overlap) )
> +        {
> +            if ( overlap == bootinfo_get_reserved_mem() )
> +            {
> +                /*
> +                 * Some valid device trees, such as those generated by OpenPOWER
> +                 * skiboot firmware, expose all reserved memory regions in the
> +                 * FDT memory reservation block (here) AND in the
> +                 * reserved-memory node which has already been parsed. Thus, any
> +                 * overlaps in the mem_reserved banks should be ignored.
> +                 */
> +                 continue;
> +            }
> +            else
> +                panic("FDT reserve map overlapped with membanks/modules\n");
> +        }
> +
>          if ( reserved_mem->nr_banks < reserved_mem->max_banks )
>          {
>              bank = &reserved_mem->bank[reserved_mem->nr_banks];
> @@ -610,10 +632,6 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>              panic("Cannot allocate reserved memory bank\n");
>      }
>  
> -    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
> -    if ( ret )
> -        panic("Early FDT parsing failed (%d)\n", ret);
> -
>      /*
>       * On Arm64 setup_directmap_mappings() expects to be called with the lowest
>       * bank in memory first. There is no requirement that the DT will provide
> diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
> index f2e6a1145b..c1752bfdc8 100644
> --- a/xen/common/device-tree/bootinfo.c
> +++ b/xen/common/device-tree/bootinfo.c
> @@ -171,7 +171,8 @@ void __init fw_unreserved_regions(paddr_t s, paddr_t e,
>   * existing reserved memory regions, otherwise false.
>   */
>  bool __init check_reserved_regions_overlap(paddr_t region_start,
> -                                           paddr_t region_size)
> +                                           paddr_t region_size,
> +                                           const struct membanks **out_overlapping_membanks)
>  {
>      const struct membanks *mem_banks[] = {
>          bootinfo_get_reserved_mem(),
> @@ -190,8 +191,14 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
>       * shared memory banks (when static shared memory feature is enabled)
>       */
>      for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
> +    {
>          if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
> +        {
> +            if ( out_overlapping_membanks )
> +                *out_overlapping_membanks = mem_banks[i];
>              return true;
> +        }
> +    }
>  
>      /* Check if input region is overlapping with bootmodules */
>      if ( bootmodules_overlap_check(&bootinfo.modules,
> @@ -216,7 +223,7 @@ struct bootmodule __init *add_boot_module(bootmodule_kind kind,
>          return NULL;
>      }
>  
> -    if ( check_reserved_regions_overlap(start, size) )
> +    if ( check_reserved_regions_overlap(start, size, NULL) )
>          return NULL;
>  
>      for ( i = 0 ; i < mods->nr_mods ; i++ )
> diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
> index 16fa05f38f..03e1d5fde8 100644
> --- a/xen/include/xen/bootfdt.h
> +++ b/xen/include/xen/bootfdt.h
> @@ -158,7 +158,8 @@ struct bootinfo {
>  extern struct bootinfo bootinfo;
>  
>  bool check_reserved_regions_overlap(paddr_t region_start,
> -                                    paddr_t region_size);
> +                                    paddr_t region_size,
> +                                    const struct membanks **out_overlapping_membanks);
>  
>  struct bootmodule *add_boot_module(bootmodule_kind kind,
>                                     paddr_t start, paddr_t size, bool domU);



From xen-devel-bounces@lists.xenproject.org Mon Nov 04 09:46:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 09:46:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829908.1244828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7tes-0007iS-DZ; Mon, 04 Nov 2024 09:46:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829908.1244828; Mon, 04 Nov 2024 09:46: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 1t7tes-0007iL-Ag; Mon, 04 Nov 2024 09:46:02 +0000
Received: by outflank-mailman (input) for mailman id 829908;
 Mon, 04 Nov 2024 09:46: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=r6Gf=R7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t7ter-0007iF-Bz
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 09:46:01 +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 9798e172-9a91-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 10:45:57 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-37d4d1b48f3so2341338f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 01:45: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-381c10b7b65sm12950798f8f.4.2024.11.04.01.45.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 01: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: 9798e172-9a91-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk3OThlMTcyLTlhOTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzEzNTU3LjgyMzc5Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730713557; x=1731318357; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language
         :references:to:from:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=yHjpiI+hsQFCfWSmo5YO072DGevyxIxowQYYAL4a8rc=;
        b=BIbE95GoA7LkxM6ZC5bMoE+IRi0CB+WmO20acHWEu0W3ejp7B1hz4mE9+gAt9AgWGY
         zA8FI785errus+UAD77iJH4Mab86SxKZbBRTNwW54as65FoY+if+sLATJDQUeu/5w9n7
         gu6l9yjpgIXknHjV6DyHphTgqmq4jO9bIYL+xH8NNjlxIi90/pzAq6wqGaqujyWjctXa
         ofjT+EtGEWmJvtAdOcv3TBea88FXZ2ekIDqWYxvws6eL2quB9cWPFL9mXbdYwGk533FA
         GoIlfByib7me9FmIVo0y8M8OYR5vIucvmVwVEoK7vM386hfpSLqZDZ+hyBYeQqG17EaA
         JtWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730713557; x=1731318357;
        h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language
         :references:to:from:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yHjpiI+hsQFCfWSmo5YO072DGevyxIxowQYYAL4a8rc=;
        b=rc0k7X5t5VObzQqEV1ttEa3u5E8i4cDn0RJgDOIdMNrEdWAg/4l8Z1Yy0d1SnsSy5S
         SnMWyDPcfEknNO259ljGdoEQeY44skJvbd+YFavT9f5xnvm2d4p63XRh2MvYeVqNMF6a
         Qgd1dgk4ibrn+VIX5e6gktP+sORyichbcfrIb/yt2WNLGE7egWDLTG07Gxn8aexTs9Ix
         nlCgyxUIGUDeo18IFJ1bG/I+7YLQlxqQW3nbv+o5C/2XMx/CJfmEStTDpfa+8P0vSUuU
         /F6hm+ib2doYtI+wpcvzBBn7VDnS1rRXBRjfBEOel51qG3LMaY7jzJ50kvdiL/K2BgxT
         8Vxw==
X-Gm-Message-State: AOJu0YzI7FoScN6mFcZOld130UIyC07OkEHPv6MtuRdTKUsF3m2Wt5/Z
	Ydhy6QgT+ICxSgZGtrjhPVT4JR4rY2bWgF3jh5pCJPjWavMvp+05BLs9k2I/Ew==
X-Google-Smtp-Source: AGHT+IHucd91DePuOx9qDbyjZ8vRFv8X3jFWKqaMXQrrzGuwVhoInslZuqRZp8NiA5q6kRDCEappWg==
X-Received: by 2002:adf:e686:0:b0:37d:3964:e0f1 with SMTP id ffacd0b85a97d-381b70578b3mr14785028f8f.4.1730713557165;
        Mon, 04 Nov 2024 01:45:57 -0800 (PST)
Message-ID: <43d270c6-a237-4b6d-ba25-5b3ecce03147@suse.com>
Date: Mon, 4 Nov 2024 10:45:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [PATCH v7 00/11] (mostly) x86+Arm32: add/convert entry point
 annotations
From: Jan Beulich <jbeulich@suse.com>
To: 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: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
Content-Language: en-US
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
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: <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.10.2024 17:11, Jan Beulich wrote:
> 01: common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions
> 02: VMX: convert entry point annotations
> 03: x86/ACPI: annotate assembly functions with type and size
> 04: x86/kexec: convert entry point annotations
> 05: x86: convert dom_crash_sync_extable() annotation
> 06: x86: move ENTRY(), GLOBAL(), and ALIGN
> 07: Arm32: use new-style entry annotations for library code
> 08: Arm32: use new-style entry annotations for MMU code
> 09: Arm32: use new-style entry annotations for entry code
> 10: Arm32: use new-style entry annotations in head.S
> 11: Arm: purge ENTRY(), ENDPROC(), and ALIGN

Patches 2-6 went in. Arm maintainers - what about 7-11?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 09:56:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 09:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829916.1244838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7tpE-0001O4-B7; Mon, 04 Nov 2024 09:56:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829916.1244838; Mon, 04 Nov 2024 09:56: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 1t7tpE-0001Nx-8Y; Mon, 04 Nov 2024 09:56:44 +0000
Received: by outflank-mailman (input) for mailman id 829916;
 Mon, 04 Nov 2024 09:56: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=r6Gf=R7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t7tpC-0001Nr-Ju
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 09:56:42 +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 156c5a44-9a93-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 10:56:38 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4319399a411so34617455e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 01:56: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-431bd9aa83asm178576685e9.31.2024.11.04.01.56.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 01:56: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: 156c5a44-9a93-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE1NmM1YTQ0LTlhOTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzE0MTk4LjQzOTI5Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730714198; x=1731318998; 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=bcqT19pfZiiw5qYOmvKN9z8fJypk9wQLp0IGwqczJoQ=;
        b=gtX0xrjvmHb9eNO4ix3uo5YG/uCDK7b4X5nr5qPbA424pVH2gNfxw7IuoDWBFM9nrw
         kh9ZoDz9GIugamDDlB8aSYIWE8IqXK/1RxrrriH/oAdhN/8O31WG+JPWPUbRDhITTaO7
         7mLN1ZJhyN21ud87d5+98j3/z7xS+ighb2uBQwlKKPCzO3JqtY/vh+eXXscTA/HeTd+V
         gDRcgmfcITqoYNG5H97vPWrM/qsoh4UJ5Z+cp5l+BjWM6+81mSjZUCsZpA9NLQ3YthYV
         m9ZaRL+4smHls0EPL4y/Vu5HJxbiNss8LaFTihcBjThK0jqzY+zudMvH47uQuq0/vLFm
         basQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730714198; x=1731318998;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bcqT19pfZiiw5qYOmvKN9z8fJypk9wQLp0IGwqczJoQ=;
        b=KvT8DVmfBQuTV7GiYwKbTAJXHBk/LRnCh7+8z/RdC6YjKC4tlrS8jp93dPrDrPoKxv
         Wc90nNRFr330QpKIoccNxV7Wvl9EIaHLsRXnWTvoRIqbzSDfJRQttwPaHuRQue7kASfK
         +DZi5YgtqYR/bYIFoEInI7qUth2io/nlP7f/2fp1vPwrhKk41gFRtBKPfTqUwZE57az/
         UHm2bD+bhig+p66wyXgCCfaL5ejf9LDz4wqKWLgBRqUAZVTY1Uc/Cs6UNVE7ioApTfgY
         Gb9K7lflVaCUJPxpMUi/Tq1pZk7uexRgitvQrZzenwqmTMgOVP1hFfOHoff4w7xv1QbG
         anQg==
X-Forwarded-Encrypted: i=1; AJvYcCXTWkQtGkx6B8lEQegKaLuRV/rT2GQxE+o990r78cAItyvizSdKf5NZSkBEWjSWIA2e3w648iYwu0g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLD75dbp+R5iO29f9Alhw1N33nU1swx71UMvXDNddSoAxL/UxF
	XLy7fojw+VtIs1eIVnGEbQ9H/B2j1Jzfg92ARzCctENX0wc3aAeht0vwGbS64Q==
X-Google-Smtp-Source: AGHT+IGj1p0jkMoJaRZ0BcA5SQs9GrcHQQ/LnHNmZfZd7D0s+dEtt5nvDLO3oh4rHrtrvCffKsqkDQ==
X-Received: by 2002:a05:600c:3b9c:b0:42c:bb10:7292 with SMTP id 5b1f17b1804b1-4319ac70754mr290361625e9.1.1730714197779;
        Mon, 04 Nov 2024 01:56:37 -0800 (PST)
Message-ID: <64059351-dd82-4393-8852-ff60d6d8d5bb@suse.com>
Date: Mon, 4 Nov 2024 10:56:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] x86/io-apic: fix directed EOI when using AMD-Vi
 interrupt remapping
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Willi Junga
 <xenproject@ymy.be>, David Woodhouse <dwmw@amazon.co.uk>,
 xen-devel@lists.xenproject.org
References: <20241031085713.6156-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: <20241031085713.6156-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.10.2024 09:57, Roger Pau Monne wrote:
> @@ -71,6 +72,24 @@ static int apic_pin_2_gsi_irq(int apic, int pin);
>  
>  static vmask_t *__read_mostly vector_map[MAX_IO_APICS];
>  
> +/*
> + * Store the EOI handle when using interrupt remapping.
> + *
> + * If using AMD-Vi interrupt remapping the IO-APIC redirection entry remapped
> + * format repurposes the vector field to store the offset into the Interrupt
> + * Remap table.  This breaks directed EOI, as the CPU vector no longer matches
> + * the contents of the RTE vector field.  Add a translation cache so that
> + * directed EOI uses the value in the RTE vector field when interrupt remapping
> + * is enabled.
> + *
> + * Intel VT-d Xen code still stores the CPU vector in the RTE vector field when
> + * using the remapped format, but use the translation cache uniformly in order
> + * to avoid extra logic to differentiate between VT-d and AMD-Vi.
> + *
> + * The matrix is accessed as [#io-apic][#pin].
> + */
> +static uint8_t **io_apic_pin_eoi;

__ro_after_init?

> @@ -273,6 +292,17 @@ void __ioapic_write_entry(
>      {
>          __io_apic_write(apic, 0x11 + 2 * pin, eu.w2);
>          __io_apic_write(apic, 0x10 + 2 * pin, eu.w1);
> +        /*
> +         * Might be called before io_apic_pin_eoi is allocated.  Entry will be
> +         * initialized to the RTE value once the cache is allocated.

With the movement of the allocation to enable_IO_APIC(), isn't this part of
the comment stale now?

> +         * The vector field is only cached for raw RTE writes when using IR.
> +         * In that case the vector field might have been repurposed to store
> +         * something different than the CPU vector, and hence need to be cached
> +         * for performing EOI.
> +         */
> +        if ( io_apic_pin_eoi )
> +            io_apic_pin_eoi[apic][pin] = e.vector;

The conditional here is necessary anyway, isn't it (for the allocation
being conditional itself)?

With the adjustments (or clarification of why they cannot be made)
Reviewed-by: Jan Beulich <jbeulich@suse.com>

If the adjustments can be confirmed I'd also be happy to make them while
committing, to save another round-trip.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 10:01:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 10:01:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829922.1244848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7ttP-00038b-Ro; Mon, 04 Nov 2024 10:01:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829922.1244848; Mon, 04 Nov 2024 10:01: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 1t7ttP-00038U-Os; Mon, 04 Nov 2024 10:01:03 +0000
Received: by outflank-mailman (input) for mailman id 829922;
 Mon, 04 Nov 2024 10:01: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=Xqlq=R7=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1t7ttO-00038O-Cg
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 10:01:02 +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 b05880e3-9a93-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 11:00:58 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5c9634c9160so4547228a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 02:00: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: b05880e3-9a93-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIwNTg4MGUzLTlhOTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzE0NDU4LjMxMTIwNCwic2VuZGVyIjoia2VsbHkuY2hvaUBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730714457; x=1731319257; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=0guM7jzGLdgcLzVb+KuTWePpuFIwY6+vEyhrkAz6tPM=;
        b=CYh/3pBINRQgKNYhM3WKAof+I6p4fF5W1ytuLqO0MoUGGgzs0Kceqbi5u5rKZNwfsH
         Ln7O7bVQiszPj9iB/2nk9V/Z+irVbc9N1uQ6zPHLt0mjCq88Cy1C9oHIGRKBsoyzGgHA
         fLJd0lSJ8FkaKN5DQ73dEqeCeSQkPZKHdYGUw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730714457; x=1731319257;
        h=to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0guM7jzGLdgcLzVb+KuTWePpuFIwY6+vEyhrkAz6tPM=;
        b=hocRYJxORDy6h+DdFgyC5UoMjJSCSmi+Csiu/Ei3TJvF9nxkPZD7g0DYIqZYpiKnnt
         jML2qxnrPBaRm50/VJJJiWk1SxJcwhrve+3gx9nmNtYaUFSa/7TCeIUx1F17r73uSS2W
         hrXfQbi1RkDpFCjZM+wKm4ELjbDa5Mh3SMOFoDZ7CIpt+nArI8rrE9X55zTSDBZjhwti
         aLqErCQysCQ4ahJud/xh1Pwx2D4Ll80qXqfAHG2o7kaNvEziB3R8AJhKjAOsOrR6go5K
         16XPDpCLWH4DbPN6xmpeBPWVdvfMqfdy3l1vZAi3mO2BSlYIFJ1MtaOiRuTPGnbcFzbM
         SsOw==
X-Gm-Message-State: AOJu0YwMwL+XocNINFgcipYTeNBEqqHPqeE1ARh4NTmgho3XAklfLci6
	DukJf64mww+8gwnfTmnuNaTxcAzkCIzzOKMpiE+FzW/xwdo4vH/ey8w465eJ7MfAOHpbL4F8TZy
	7yakxeQTvmmyNyfoZYTn1Jy1GbxY9iUyR3DKI5cwsrkig5pb8ok7WwA==
X-Google-Smtp-Source: AGHT+IE7XPmfjRyXw3bwjIk9OlvoqFmAxHf+mD719do6OedOIe5omS29Xl5ABXtpORNjAOUiOOGtXiiNrP+4xFaseXw=
X-Received: by 2002:a05:6402:3508:b0:5ce:ce43:32f with SMTP id
 4fb4d7f45d1cf-5cece4305a3mr5030924a12.35.1730714457214; Mon, 04 Nov 2024
 02:00:57 -0800 (PST)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Mon, 4 Nov 2024 10:00:00 +0000
Message-ID: <CAO-mL=zF6fQZVzV+B0rQtH4aDsusU23juj0O-PhFjDF_-eF6PA@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items - Community Call 7th Nov 2024
To: xen-devel <xen-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="0000000000006e38b80626135ce5"

--0000000000006e38b80626135ce5
Content-Type: text/plain; charset="UTF-8"

Hi all,

Please add your proposed agenda items below.

https://cryptpad.fr/pad/#/2/pad/edit/6eu2rGXaB1e5M2nDrv190JcR/

If any action items are missing or have been resolved, please add/remove
them from the sheet.

*CALL LINK:* https://meet.jit.si/XenProjectCommunityCall
<https://www.google.com/url?q=https://meet.jit.si/XenProjectCommunityCall&sa=D&source=calendar&ust=1699196661201312&usg=AOvVaw1FcogEsMjFSd1Pmi7V0cBc>

*DATE: *Thursday 7th November 2024

*TIME: *1600 UTC (4 pm UK time)
*Note the following administrative conventions for the call:*


** To allow time to switch between meetings, we plan on starting theagenda
at 16:05 UTC sharp.  Aim to join by 16:03 UTC if possible to allocatetime
to sort out technical difficulties.*








** If you want to be CC'ed please add or remove yourself from
thesign-up-sheet
at https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/
<https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/>== Dial-in
Information ==## Meeting time16:00 - 17:00 British timeFurther
International meeting times:*
https://www.timeanddate.com/worldclock/meetingdetails.html?year=2024&month=11&day=7&hour=16&min=0&sec=0&p1=1234&p2=37&p3=224&p4=179


## Dial in details
https://meet.jit.si/static/dialInInfo.html?room=XenProjectCommunityCall

Thanks,
Kelly Choi
Community Manager
Xen Project <https://xenproject.org/>

--0000000000006e38b80626135ce5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi all,<br><p>Please add your proposed agenda it=
ems below.=C2=A0</p><p><a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/6eu2=
rGXaB1e5M2nDrv190JcR/">https://cryptpad.fr/pad/#/2/pad/edit/6eu2rGXaB1e5M2n=
Drv190JcR/</a>=C2=A0</p><p>If any action items are missing or have been res=
olved, please add/remove them from the sheet.=C2=A0</p><p><b><span class=3D=
"gmail-il">CALL</span>=C2=A0LINK:</b>=C2=A0<a href=3D"https://www.google.co=
m/url?q=3Dhttps://meet.jit.si/XenProjectCommunityCall&amp;sa=3DD&amp;source=
=3Dcalendar&amp;ust=3D1699196661201312&amp;usg=3DAOvVaw1FcogEsMjFSd1Pmi7V0c=
Bc" target=3D"_blank" style=3D"">https://meet.jit.si/XenProjectCommunityCal=
l</a></p><p><b>DATE: </b>Thursday 7th November 2024</p><p><b>TIME: </b>1600=
 UTC (4 pm UK time)</p><i>Note the following administrative conventions for=
 the=C2=A0<span class=3D"gmail-il">call</span>:</i></div><div><div><i>* To =
allow time to switch between meetings, we plan on starting the<br>agenda at=
 16:05 UTC sharp.=C2=A0 Aim to join by 16:03 UTC if possible to allocate<br=
>time to sort out technical difficulties.</i></div><div><i><br>* If you wan=
t to be CC&#39;ed please add or remove yourself from the<br>sign-up-sheet a=
t=C2=A0<a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0s=
RCf+/" rel=3D"noreferrer" target=3D"_blank">https://cryptpad.fr/pad/#/2/pad=
/edit/D9vGzihPxxAOe6RFPz0sRCf+/</a><br><br>=3D=3D=C2=A0<span class=3D"gmail=
-il">Dial</span>-in Information =3D=3D<br>## Meeting time<br>16:00 - 17:00 =
British time<br>Further International meeting times:<br></i><a href=3D"http=
s://www.timeanddate.com/worldclock/meetingdetails.html?year=3D2024&amp;mont=
h=3D11&amp;day=3D7&amp;hour=3D16&amp;min=3D0&amp;sec=3D0&amp;p1=3D1234&amp;=
p2=3D37&amp;p3=3D224&amp;p4=3D179">https://www.timeanddate.com/worldclock/m=
eetingdetails.html?year=3D2024&amp;month=3D11&amp;day=3D7&amp;hour=3D16&amp=
;min=3D0&amp;sec=3D0&amp;p1=3D1234&amp;p2=3D37&amp;p3=3D224&amp;p4=3D179</a=
>=C2=A0<br><br>##=C2=A0<span class=3D"gmail-il">Dial</span>=C2=A0in details=
<br><a href=3D"https://meet.jit.si/static/dialInInfo.html?room=3DXenProject=
CommunityCall" rel=3D"noreferrer" target=3D"_blank">https://meet.jit.si/sta=
tic/dialInInfo.html?room=3DXenProjectCommunityCall</a></div></div><div><div=
 dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr"><div><br></div></di=
v></div></div></div><div><div dir=3D"ltr" class=3D"gmail_signature" data-sm=
artmail=3D"gmail_signature"><div dir=3D"ltr"><div>Thanks,</div><div>Kelly C=
hoi<br></div><div><div style=3D"color:rgb(136,136,136)">Community Manager</=
div><div style=3D"color:rgb(136,136,136)"><a href=3D"https://xenproject.org=
/" target=3D"_blank">Xen Project</a><br></div></div></div></div></div></div=
>

--0000000000006e38b80626135ce5--


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 10:50:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 10:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829934.1244859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7uen-0000oB-IR; Mon, 04 Nov 2024 10:50:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829934.1244859; Mon, 04 Nov 2024 10: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 1t7uen-0000nl-Em; Mon, 04 Nov 2024 10:50:01 +0000
Received: by outflank-mailman (input) for mailman id 829934;
 Mon, 04 Nov 2024 10: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=SSQ4=R7=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1t7uen-0000ld-0d
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 10:50:01 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2412::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84d66f75-9a9a-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 11:49:53 +0100 (CET)
Received: from PH8PR22CA0013.namprd22.prod.outlook.com (2603:10b6:510:2d1::11)
 by IA1PR12MB8517.namprd12.prod.outlook.com (2603:10b6:208:449::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.24; Mon, 4 Nov
 2024 10:49:48 +0000
Received: from SN1PEPF0002BA4F.namprd03.prod.outlook.com
 (2603:10b6:510:2d1:cafe::82) by PH8PR22CA0013.outlook.office365.com
 (2603:10b6:510:2d1::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30 via Frontend
 Transport; Mon, 4 Nov 2024 10:49:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002BA4F.mail.protection.outlook.com (10.167.242.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Mon, 4 Nov 2024 10:49:47 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 4 Nov
 2024 04:49:46 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Nov 2024 04:49: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: 84d66f75-9a9a-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjJiIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijg0ZDY2Zjc1LTlhOWEtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzE3MzkzLjMyNzE3Mywic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=snx5Hi9HEr6Ytosaefn73PK1/KxY2wCV2mtUR8qm2wKrG6v+R8QLfDLstd2Uu7nTr+lugZuNB2d8ZEgJATgnbDUNmBYBH4O6mi8lNbL0JXYccdkwrSX0Kj7iwt7yCyGTVgKTS6Jy4yiU1ai+Rvhn8+bSCcBA2y97JRbwwGKhtIgaztDY14mnL2wP9T3h6X5P2dpGnc4b6dV157N+P3xQStcPlC+diYodmrJ/WLa4RQr12UzjZsrLvS9oSW4Jx3dxo8+Zm+qjtIt1/runnCav6hn/ZB7d4y0uRqoFNmZyLTPtaL4FGukjy6a6ZEjw4OiARf12nqHebL3qHr3i4qD2mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vIfRaUY5EJyTddYIo+WOIA4bm03Ox6iDG39+dv3ABew=;
 b=qOeT+JYGJvMybVT5p33WIMKeQPdjWKG1n/kQxCkRGTXisjyYlmoOMg0MstKDS6pwhHnPJ+FCU3wdNnf0+vw6jXJ/SUL9x0flOgjf+lVf9NcnniL988cQ48kOh9G7aiJPhxOc6M26APGYhT+/8bZ46TGf4ysJmjva1tRVR50RoKayTV1niHIYum2Duz9vKCSReCbaTg0aByTp/XlBYrs7Q88LT/3IIv3IiSiI/BXltXsG6l1peKA2tYW1v0hc4pl2bL2Ga6MkRFJCj1bGEd7Pwf9OuGARRs9QtBbit9o2lzk+O7W+FXf9e1hr1SOF2+Gia42DrhR6XWKn4PCWnNR/nw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=raptorengineering.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=vIfRaUY5EJyTddYIo+WOIA4bm03Ox6iDG39+dv3ABew=;
 b=HmjZGan1SGfI92wypAvCSBxTwYP8/8mSb/rPYTrTksZVZR2tzCFYl1zKYRKb885+3MCxR2NtJ2FJviJ9147LscQfroObLpUoRdiq2GWA51lsc26qYXzC8g30UkxaGWP00YuCGtHnaz0T9qcPCC5aSshGJXeDhk5jOcFi0kGAyLc=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <1ae100b3-17f0-4ac5-beb3-fdd2f12adee7@amd.com>
Date: Mon, 4 Nov 2024 11:49:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/device-tree: Let DT reserve map entries
 overlap reserved-memory
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
	<xen-devel@lists.xenproject.org>
CC: <tpearson@raptorengineering.com>, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>
References: <cover.1727388925.git.sanastasio@raptorengineering.com>
 <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.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: SN1PEPF0002BA4F:EE_|IA1PR12MB8517:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b141383-6c25-47aa-b4dd-08dcfcbe6681
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?eTY4WkRGTyt3UFR1ZzdKVHE0Q21jNXhSaGhCdnc3cWpScW1Rd0hJOEpBMGpU?=
 =?utf-8?B?THNTUVlIYVNTMTB5UTR1RDI4Z0hLOVhrRWZycGU3czdlSERHY2xNZVRnMG1V?=
 =?utf-8?B?eEdNU1ZSbUhhM0RybkgzYlovRDRPQjk2MTNUUkQ5b3hSejcrNnVDelZSN09W?=
 =?utf-8?B?czMxU01NRy9VQ3ZKQnhTOFZEa0dYcHcyS3NNNFpoRHF2TlFway9HTkZoclNE?=
 =?utf-8?B?UmJCTTFZZEpaazNpYXlNblVJK2tBSWFEYnZGdWhPMy9NaG41eS9TYkFlOHFS?=
 =?utf-8?B?dUkxZFFJUEFEQUZheUk3OXdqK2E2cXBqNXRwSnlWN2VhUEx6T1N4MGY5ZXJr?=
 =?utf-8?B?MDczMk1TS2lYVHBrYjV0ODg3eTVadWRpUTJUNkM4bW5tSk1pT0RuVk0zR25O?=
 =?utf-8?B?dDUyc2JCdGl3eHc5NkZGZHR6TTdESk90S2pLTUpYTHZ1VklnK0RNUlo2Z1NS?=
 =?utf-8?B?Y0JsWEF0QnFnNkRaOFRXeXErNnZFWUo3U0VMZ2VkQkIyTXBhaExjbzYralhP?=
 =?utf-8?B?RzZxVEV5bnFyUFZWTzRqRktSZTByM0FPQWY0TzNCTFE5U2R6Mk9iWjM1V2p1?=
 =?utf-8?B?YXd4Z0ptYWtycG9KNU92cEhsbDlGOWdoOUR6Z21YLy9YN1RUczF1ZUZrR0pT?=
 =?utf-8?B?VmFEMVA3aDk4MTIzV1plOWE4MEh0djF6dFhWSDhERyt0UnNVZkhWZWNYbWpF?=
 =?utf-8?B?NUJEMHJGZE5nUE45RGhZQWNVQmJORDgrcHdOWDlUdDJkV1Q1Q1pKK0FqTE8x?=
 =?utf-8?B?ZTFTZWNIbzRyYzRwcTlpTXBzWThnT1dsVUk2Q2dET09xQzNhR29PYjZObDQx?=
 =?utf-8?B?ZDZ2V2QvaU8xa21XemkyZzhqU25PellvczRONXF3QUZINEloYTg0WWNlVFFB?=
 =?utf-8?B?aVpvN3QwSGt5OWRDMXYrZXl1cDBUU3VsdHJqYVBCUG8zUHhKM1V3cVFLUG9G?=
 =?utf-8?B?dW5TZVlDZFAvR25HbmxBdFdnVFVJQTkzZU80dkZMR05hQ05uSWRMRFhwZ2Ja?=
 =?utf-8?B?UGlEaTErRGx0UFZUWlpGYWExVjhwSzVnR3JnWUQ0cHdVS3QxRGhmQVo1TUZJ?=
 =?utf-8?B?WEJjUEtwMDJnbVhnSTRVa3hsSytqQ1YzUlRia3ZSR21RWWNBcDlGRzBCSDky?=
 =?utf-8?B?UTBENHNZL0ROUVdjUTAzVWtxT2FFZldMeXptOXZ4Nm5QU1FZSlJzSHdNUjZu?=
 =?utf-8?B?T2RxVndlQ3BVVHpSMHhkdEw1Y0hWYWhjUjhubW1leWU1WEQzd1d6UnFtaE5x?=
 =?utf-8?B?aUpXSVJacWY4ZHpxd1FOMnZVLy9YRXcwNzhQVlJiNVV2TWJISVdNaU5obzF5?=
 =?utf-8?B?UzczUHBIYUczZzNnUlJWWU9Uejh5ek43STNKRjc3U2thL1JnZytma2xncUdH?=
 =?utf-8?B?bnlNZVVacldEWHFVd3hEOW5KelNpYlJFWGtlcE12TEpVdUxqd1FBWEpFamdV?=
 =?utf-8?B?eGxBVlY5bXgwNkdPa3A4OTkyaG5xZXVzbFVrd0ZabTFMRXRaNTRIY3hicUVU?=
 =?utf-8?B?eVlwL3FFTDhLd3VONzdXSVVFNnRHb3NnVERVVCtxNnZHLzJwdjMvMEVEL0kw?=
 =?utf-8?B?aklyeDE2OXRwaWZpVGxaNm8xbXhVQUp1TE40ekxnZldLZnllSnJrNkhCbzZC?=
 =?utf-8?B?V1luNnRnNWE4Z2l1N3V4OWVpejlZV1p1NGg2N3RscXhOMmJIOW9iUldYd2ZV?=
 =?utf-8?B?VWVicVo3ZEVQS3hLMlV6aWFJWmJxQ2M4N1JUSEpwUDBaNEhQQUxrVisyOEdJ?=
 =?utf-8?B?K0pXV3VOOFpNYTI3RlIvakZxSTBiWWhET2dDNFEyMDFKMmZrUGhKbkpMWmNv?=
 =?utf-8?B?SklSZ2trUmwwbFdRSXRyRjhod1h2aUVweENYOHIyd2hzWE5GWFpLYjh6WDRH?=
 =?utf-8?B?MlU5Rm9XZ05lWkp1TitVbDlRL3ZjUG1Wa29aK0hNNUwwL1E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 04 Nov 2024 10:49:47.2748
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b141383-6c25-47aa-b4dd-08dcfcbe6681
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA4F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8517



On 27/09/2024 00:24, Shawn Anastasio wrote:
> 
> 
> Commit 53dc37829c31 ("xen/arm: Add DT reserve map regions to
> bootinfo.reserved_mem") changes the way reserve map regions are tracked,
> and as a result broke bootfdt's ability to handle device trees in which
> the reserve map and the `reserved-memory` node contain the same entries
> as each other, as is the case on PPC when booted by skiboot.
> 
> Fix this behavior by moving the reserve map check to after the DT has
> been parsed and by explicitly allowing overlap with entries created by
> `reserved-memory` nodes.
> 
> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> ---
>  xen/common/device-tree/bootfdt.c  | 28 +++++++++++++++++++++++-----
>  xen/common/device-tree/bootinfo.c | 11 +++++++++--
>  xen/include/xen/bootfdt.h         |  3 ++-
>  3 files changed, 34 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
> index 911a630e7d..2a51ee44a3 100644
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -177,7 +177,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
>      {
>          device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
>          if ( mem == bootinfo_get_reserved_mem() &&
> -             check_reserved_regions_overlap(start, size) )
> +             check_reserved_regions_overlap(start, size, NULL) )
>              return -EINVAL;
>          /* Some DT may describe empty bank, ignore them */
>          if ( !size )
> @@ -590,14 +590,36 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>      if ( nr_rsvd < 0 )
>          panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
> 
> +    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
This should be moved before fdt_num_mem_rsv so that the program flow makes sense. In your case nr_rsvd is
not used immediately after.

> +    if ( ret )
> +        panic("Early FDT parsing failed (%d)\n", ret);
> +
>      for ( i = 0; i < nr_rsvd; i++ )
>      {
> +        const struct membanks *overlap = NULL;
>          struct membank *bank;
>          paddr_t s, sz;
> 
>          if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>              continue;
> 
> +        if ( check_reserved_regions_overlap(s, sz, &overlap) )
> +        {
> +            if ( overlap == bootinfo_get_reserved_mem() )
> +            {
> +                /*
> +                 * Some valid device trees, such as those generated by OpenPOWER
> +                 * skiboot firmware, expose all reserved memory regions in the
> +                 * FDT memory reservation block (here) AND in the
> +                 * reserved-memory node which has already been parsed. Thus, any
> +                 * overlaps in the mem_reserved banks should be ignored.
> +                 */
> +                 continue;
I think this is incorrect. Imagine this scenario:
/memreserve/ 0x40000000 0x40000000;
and /reserved-memory/foo with:
reg = <0x0 0x7FFFF000 0x0 0x1000>;

You would ignore the entire region described with /memreserve/ even though it overlaps just the last page.

The problem you're describing is about regions that match 1:1 in /memreserve/ and /reserved-memory/.
Therefore I think you should check that the overlapped regions match exactly.

~Michal


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 11:20:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 11:20:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829941.1244868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7v7v-0005pK-Ll; Mon, 04 Nov 2024 11:20:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829941.1244868; Mon, 04 Nov 2024 11:20: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 1t7v7v-0005pD-It; Mon, 04 Nov 2024 11:20:07 +0000
Received: by outflank-mailman (input) for mailman id 829941;
 Mon, 04 Nov 2024 11:20: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=O1IB=R7=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t7v7u-0005p7-J9
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 11:20:06 +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 bc74c18f-9a9e-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 12:20:03 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so537698266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 03:20:03 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9e565e098asm540630666b.132.2024.11.04.03.20.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Nov 2024 03:20: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: bc74c18f-9a9e-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJjNzRjMThmLTlhOWUtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzE5MjAzLjEyNTMyLCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730719202; x=1731324002; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=dhShygv7xRE3mw/zSLnp9s5OVDLep70S43sBjj3r3EY=;
        b=cFai4dFKm+53r1weIY1ZovjoVBzKwGQ/OIyMNunrsQRE2JHAU+2ggAH9TOGTSTHjsh
         2hpv8N5X1kB+y59L4DTcUlAMRZFTD6xzG4pXcgR+gBDkF8BS5LP5PFiqwdj9gIpQqJCi
         4Kf4AKBsMi4r9fHUu9f4oURXUVDQmuIchiS6U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730719202; x=1731324002;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dhShygv7xRE3mw/zSLnp9s5OVDLep70S43sBjj3r3EY=;
        b=vVZMqGt9PAi0tdaRSa0QAk9eGbBiu5ovbcUsFotFLHAjqsmfDCUCGxkXI/SzmYJOpz
         M8/AFjz/izuaq/GU1h7FeQ/qv55bLCUFI6+SebnOi50yFWLh0eMtdoCBW2Lg+Ck0Md2i
         2xGD123u0W2bYsyEk5eQ10AJxslpiiCCZepU8as95d2x3SSTMSn6ckA+5yNxq9dYQ/vG
         WkkrnUudE8nMRRviZzL3vLTGLreICNdco6FWhrEv8JWfdW/yDEdw2UGg1hfD+g49rD8e
         dfMEZnXVEhsL1I6TedxUxvupov8r6RpvkBIex5JcWCqrrxuHvBBwjb+cU0VmUdjWo6Mg
         OaAA==
X-Forwarded-Encrypted: i=1; AJvYcCXC0DlKt+C/6ecwmPUd19MiYZ6TSlzTZ+xkrFbXUR9C0YxrvPlZAYHEFxOPUaeoavy5Mh8lqvZdXiU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyw8WwGzh3NxSpLhSOA7EqVpa7QmLlCTYpbuySKg5tT1Dl7ECGF
	HjinR+NTfvHuuo2OYxY45ak5wEFK00v1HNqz24rebLl7j6QHeO7LRMDS4QcHnbU=
X-Google-Smtp-Source: AGHT+IE1bFgzh7lRoTR8gQZBPSN9QDPlCEWThh+XWgCclC7jWi1QL4lKDKx4PCAjIeggnKOGILIQ1A==
X-Received: by 2002:a17:907:9490:b0:a9a:eeb:b263 with SMTP id a640c23a62f3a-a9e50caff2fmr1460099366b.58.1730719202221;
        Mon, 04 Nov 2024 03:20:02 -0800 (PST)
Date: Mon, 4 Nov 2024 12:20:00 +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>,
	Willi Junga <xenproject@ymy.be>,
	David Woodhouse <dwmw@amazon.co.uk>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4] x86/io-apic: fix directed EOI when using AMD-Vi
 interrupt remapping
Message-ID: <Zyit4HLFOS5GZ-Ze@macbook>
References: <20241031085713.6156-1-roger.pau@citrix.com>
 <64059351-dd82-4393-8852-ff60d6d8d5bb@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <64059351-dd82-4393-8852-ff60d6d8d5bb@suse.com>

On Mon, Nov 04, 2024 at 10:56:36AM +0100, Jan Beulich wrote:
> On 31.10.2024 09:57, Roger Pau Monne wrote:
> > @@ -71,6 +72,24 @@ static int apic_pin_2_gsi_irq(int apic, int pin);
> >  
> >  static vmask_t *__read_mostly vector_map[MAX_IO_APICS];
> >  
> > +/*
> > + * Store the EOI handle when using interrupt remapping.
> > + *
> > + * If using AMD-Vi interrupt remapping the IO-APIC redirection entry remapped
> > + * format repurposes the vector field to store the offset into the Interrupt
> > + * Remap table.  This breaks directed EOI, as the CPU vector no longer matches
> > + * the contents of the RTE vector field.  Add a translation cache so that
> > + * directed EOI uses the value in the RTE vector field when interrupt remapping
> > + * is enabled.
> > + *
> > + * Intel VT-d Xen code still stores the CPU vector in the RTE vector field when
> > + * using the remapped format, but use the translation cache uniformly in order
> > + * to avoid extra logic to differentiate between VT-d and AMD-Vi.
> > + *
> > + * The matrix is accessed as [#io-apic][#pin].
> > + */
> > +static uint8_t **io_apic_pin_eoi;
> 
> __ro_after_init?

Oh, yes indeed, allocations are static after init.

> > @@ -273,6 +292,17 @@ void __ioapic_write_entry(
> >      {
> >          __io_apic_write(apic, 0x11 + 2 * pin, eu.w2);
> >          __io_apic_write(apic, 0x10 + 2 * pin, eu.w1);
> > +        /*
> > +         * Might be called before io_apic_pin_eoi is allocated.  Entry will be
> > +         * initialized to the RTE value once the cache is allocated.
> 
> With the movement of the allocation to enable_IO_APIC(), isn't this part of
> the comment stale now?

There are still paths that call __ioapic_write_entry() before
enable_IO_APIC().  See for example how x2apic_bsp_setup() makes use of
save_IO_APIC_setup() ahead of enable_IO_APIC().

> > +         * The vector field is only cached for raw RTE writes when using IR.
> > +         * In that case the vector field might have been repurposed to store
> > +         * something different than the CPU vector, and hence need to be cached
> > +         * for performing EOI.
> > +         */
> > +        if ( io_apic_pin_eoi )
> > +            io_apic_pin_eoi[apic][pin] = e.vector;
> 
> The conditional here is necessary anyway, isn't it (for the allocation
> being conditional itself)?

Indeed, the matrix won't be allocated if interrupt remapping is not
enabled.

> With the adjustments (or clarification of why they cannot be made)
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> If the adjustments can be confirmed I'd also be happy to make them while
> committing, to save another round-trip.

I agree with the __ro_after_init, see my reply to the code comment.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 11:31:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 11:31:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829948.1244879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7vJK-0007Zh-Lp; Mon, 04 Nov 2024 11:31:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829948.1244879; Mon, 04 Nov 2024 11:31: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 1t7vJK-0007Za-IZ; Mon, 04 Nov 2024 11:31:54 +0000
Received: by outflank-mailman (input) for mailman id 829948;
 Mon, 04 Nov 2024 11:31: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=8ueb=R7=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1t7vJI-0007ZU-Vb
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 11:31:53 +0000
Received: from fout-a1-smtp.messagingengine.com
 (fout-a1-smtp.messagingengine.com [103.168.172.144])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5db9ae59-9aa0-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 12:31:44 +0100 (CET)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfout.phl.internal (Postfix) with ESMTP id 7F03F1380132;
 Mon,  4 Nov 2024 06:31:42 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-08.internal (MEProxy); Mon, 04 Nov 2024 06:31:42 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 Nov 2024 06:31:41 -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: 5db9ae59-9aa0-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwMy4xNjguMTcyLjE0NCIsImhlbG8iOiJmb3V0LWExLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjVkYjlhZTU5LTlhYTAtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzE5OTA0LjUxNzA4OSwic2VuZGVyIjoibWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=1730719902;
	 x=1730806302; bh=mhTWgKDhXlz64mO68Qy2EpjKTzbAMHFUbQKc8+WprAo=; b=
	SkUvWaKjd6rx4cdmaLkEAEQoW3DYT0zy26rD3XdocQUQjrtN7WBSzWaFi1AMuMIj
	IcKs4LNxF7nzWh8ib4DiwLVpys3G1kYhKe7za/f+1wn/7lKFwJN6dTHx7cEdsHRQ
	0Rs3kXIMGXsB8SQLMGBBOpGoUwQJYaoLtsLN2UUyfAKao4uuURm4xIO2kFEDtKI7
	xDTta2UycHVl0xS2+wtI52o2wzxLisakKXJ+mpr9bGXT3f1qZ381nK24wWOId0Bo
	64IjwwF2Hl5m/vBskijnkMPlBBNd9PQQZQNZteI1CxQfAfdB8sO0hcTtOGT8uc79
	MwMwUHQ5+YJXVAT9uh7Zsg==
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=fm3; t=
	1730719902; x=1730806302; bh=mhTWgKDhXlz64mO68Qy2EpjKTzbAMHFUbQK
	c8+WprAo=; b=gTPB4tiEmzg3LlsVoEQVgolXIE41QFKj2+Js0SqAOuGPY2d+aCn
	Vllf4w4CEwt9bMyUPn/5mOPOJ+zS8N+hGJqoJrZsm0FfS6pkRn0DdWDDOB6JC8m1
	4mjFDmQOnwhWnpGqq36anXAUmhUK+ktFEm8/yIFSQnvv4r5gZrr4WeVURYsNRT2b
	DqGf9n5tV/IA0ZvhOtsrDTEhsZZDo1AFhLmV/HhN/n8tKOuMpiR5faTUFgcmCdC+
	VBD+RzV5riGgAhiQ6Fgt4IQZphqEKgorvi2FmsTXWpPnEa98bU3aNtHZZKV2d9uV
	ZfHUWKankaTvQ7eS/HhpATsxxl40vKDO6jQ==
X-ME-Sender: <xms:nrAoZ8EutZp__IGGgauc0vGF_u7xLyyUqtEd1BMHcWhumhUxu2JJnw>
    <xme:nrAoZ1VqCGeesfgwomfMIDLwdg9jwZADKoNVH7R1lNVYXME_JN5AFpImHwhzwOeVL
    BZrO_a1VV-ElQ>
X-ME-Received: <xmr:nrAoZ2L82SHx4zkdeZB2v2Gxlcpc-xSio8wRGMqvfMFfLYigqr0VdzhhOdIc22xQeP2WB-_VznAGvZU1SuYy0VbEf6TeF6zDAw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeliedgvdekucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvve
    fukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucforghrtgiihihk
    ohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthh
    hinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgudelteefvefhfeehieet
    leeihfejhfeludevteetkeevtedtvdegueetfeejudenucevlhhushhtvghrufhiiigvpe
    dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghl
    vghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmth
    hpohhuthdprhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohep
    gigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:nrAoZ-Htyy25nFrJK1NPD5xyaFW2zMkPAZdHBYue7hvfDtHMR8Fk6Q>
    <xmx:nrAoZyUzPF388kve2YmWRfBEOd5IHfkABoH4HGW7F_P8fBG4_PBMDg>
    <xmx:nrAoZxOhl4WRHhYYbn_4y9uyEbXogZ4jo5-QwMbsUm1ZAhVURKqlJQ>
    <xmx:nrAoZ504aIaWRCYGI9SlM8UI9kpbjPrOzV2L_855EnfYdmQa-CTfFA>
    <xmx:nrAoZ1d05MuEI0AucSpGwStxF8Ed9eXOvFCjichRJJcqfVSo_mpjOOYt>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 4 Nov 2024 12:31:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Dom0 crash (BUG_ON(old_mode != XEN_LAZY_NONE) in enter_lazy())
 with Linux 6.11.2
Message-ID: <Zyiwm2LSIcGwDRGI@mail-itl>
References: <ZyTFfG9i87hQXmwZ@mail-itl>
 <5767653a-9b8c-4919-89b1-d487574ba212@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="5etnZlLdD07AC4fT"
Content-Disposition: inline
In-Reply-To: <5767653a-9b8c-4919-89b1-d487574ba212@suse.com>


--5etnZlLdD07AC4fT
Content-Type: multipart/mixed; protected-headers=v1;
	boundary="U/h0/aHnK2cTJYPk"
Content-Disposition: inline
Date: Mon, 4 Nov 2024 12:31:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Dom0 crash (BUG_ON(old_mode != XEN_LAZY_NONE) in enter_lazy())
 with Linux 6.11.2


--U/h0/aHnK2cTJYPk
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 04, 2024 at 10:25:00AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 01.11.24 13:11, Marek Marczykowski-G=C3=B3recki wrote:
> > Hi,
> >=20
> > I've got a report that starting with 6.11 (specifically 6.11.2) dom0
> > often crashes on a BUG_ON() like in the subject. I'm not sure where the
> > issue is - there is i915 all over the stack trace, but in the end it
> > crashes in a Xen-specific code.
>=20
> This is probably related to the scheduling changes done in 6.11. Can you =
please
> share the kernel config you are using?

Sure, attached.

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

--U/h0/aHnK2cTJYPk
Content-Type: text/plain; charset=utf-8
Content-Disposition: attachment;
	filename="config-6.11.2-1.qubes.fc37.x86_64"

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.11.2 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.3.1 20230508 (Red Hat 12.3.1-1)"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=120301
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23800
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=23800
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_PAHOLE_VERSION=125
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
# CONFIG_WERROR is not set
CONFIG_UAPI_HEADER_TEST=y
CONFIG_LOCALVERSION="-1.qubes.fc37.x86_64"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BUILD_SALT="6.11.2-1.qubes.fc37.x86_64"
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_HAVE_KERNEL_ZSTD=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_WATCH_QUEUE=y
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_USELIB is not set
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_GENERIC_IRQ_INJECTION=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_SIM=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_IRQ_MSI_IOMMU=y
CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
CONFIG_GENERIC_IRQ_STAT_SNAPSHOT=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
# CONFIG_GENERIC_IRQ_DEBUGFS is not set
# end of IRQ subsystem

CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_INIT=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST_IDLE=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_TIME_KUNIT_TEST=m
CONFIG_CONTEXT_TRACKING=y
CONFIG_CONTEXT_TRACKING_IDLE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
# CONFIG_NO_HZ_IDLE is not set
CONFIG_NO_HZ_FULL=y
CONFIG_CONTEXT_TRACKING_USER=y
# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100
# end of Timers subsystem

CONFIG_BPF=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y

#
# BPF subsystem
#
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT_DEFAULT_ON=y
CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_USERMODE_DRIVER=y
CONFIG_BPF_PRELOAD=y
CONFIG_BPF_PRELOAD_UMD=m
CONFIG_BPF_LSM=y
# end of BPF subsystem

CONFIG_PREEMPT_BUILD=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_SCHED_CORE=y

#
# CPU/Task time and stats accounting
#
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_SCHED_AVG_IRQ=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_PSI=y
# CONFIG_PSI_DEFAULT_DISABLED is not set
# end of CPU/Task time and stats accounting

CONFIG_CPU_ISOLATION=y

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU_GENERIC=y
CONFIG_NEED_TASKS_RCU=y
CONFIG_TASKS_RCU=y
CONFIG_TASKS_RUDE_RCU=y
CONFIG_TASKS_TRACE_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
# CONFIG_RCU_LAZY is not set
# end of RCU Subsystem

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_IKHEADERS=m
CONFIG_LOG_BUF_SHIFT=18
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_PRINTK_INDEX=y
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y

#
# Scheduler features
#
CONFIG_UCLAMP_TASK=y
CONFIG_UCLAMP_BUCKETS_COUNT=5
# end of Scheduler features

CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_CC_HAS_INT128=y
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_NUMA_BALANCING=y
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_SLAB_OBJ_EXT=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
CONFIG_MEMCG_V1=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_SCHED_MM_CID=y
CONFIG_UCLAMP_TASK_GROUP=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
CONFIG_CGROUP_MISC=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
CONFIG_RD_ZSTD=y
CONFIG_BOOT_CONFIG=y
# CONFIG_BOOT_CONFIG_FORCE is not set
# CONFIG_BOOT_CONFIG_EMBED is not set
# CONFIG_INITRAMFS_PRESERVE_MTIME is not set
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_LD_ORPHAN_WARN=y
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
CONFIG_SYSCTL=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_MULTIUSER=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_SYSFS_SYSCALL=y
CONFIG_FHANDLE=y
CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
# CONFIG_BASE_SMALL is not set
CONFIG_FUTEX=y
CONFIG_FUTEX_PI=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_IO_URING=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y
CONFIG_KCMP=y
CONFIG_RSEQ=y
# CONFIG_DEBUG_RSEQ is not set
CONFIG_CACHESTAT_SYSCALL=y
# CONFIG_PC104 is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_SELFTEST is not set
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_GUEST_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
# end of Kernel Performance Events And Counters

CONFIG_SYSTEM_DATA_VERIFICATION=y
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y

#
# Kexec and crash features
#
CONFIG_KEXEC_CORE=y
CONFIG_HAVE_IMA_KEXEC=y
# CONFIG_KEXEC is not set
CONFIG_KEXEC_FILE=y
CONFIG_KEXEC_SIG=y
# CONFIG_KEXEC_SIG_FORCE is not set
CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
# CONFIG_CRASH_DUMP is not set
# end of Kexec and crash features
# end of General setup

CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_MMU=y
CONFIG_ARCH_MMAP_RND_BITS_MIN=28
CONFIG_ARCH_MMAP_RND_BITS_MAX=32
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_AUDIT_ARCH=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DYNAMIC_PHYSICAL_MASK=y
CONFIG_PGTABLE_LEVELS=5
CONFIG_CC_HAS_SANE_STACKPROTECTOR=y

#
# Processor type and features
#
CONFIG_SMP=y
CONFIG_X86_X2APIC=y
CONFIG_X86_POSTED_MSI=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_CPU_RESCTRL=y
# CONFIG_X86_FRED is not set
CONFIG_X86_EXTENDED_PLATFORM=y
CONFIG_X86_NUMACHIP=y
# CONFIG_X86_VSMP is not set
CONFIG_X86_UV=y
# CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_INTEL_MID is not set
CONFIG_X86_INTEL_LPSS=y
CONFIG_X86_AMD_PLATFORM_DEVICE=y
CONFIG_IOSF_MBI=y
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_XXL=y
# CONFIG_PARAVIRT_DEBUG is not set
CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_X86_HV_CALLBACK_VECTOR=y
CONFIG_XEN=y
CONFIG_XEN_PV=y
CONFIG_XEN_512GB=y
CONFIG_XEN_PV_SMP=y
CONFIG_XEN_PV_DOM0=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVHVM_SMP=y
CONFIG_XEN_PVHVM_GUEST=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_DEBUG_FS=y
CONFIG_XEN_PVH=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PV_MSR_SAFE=y
CONFIG_KVM_GUEST=y
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
CONFIG_PVH=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT_CLOCK=y
# CONFIG_JAILHOUSE_GUEST is not set
CONFIG_ACRN_GUEST=y
CONFIG_INTEL_TDX_GUEST=y
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
CONFIG_GENERIC_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_TSC=y
CONFIG_X86_HAVE_PAE=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_IA32_FEAT_CTL=y
CONFIG_X86_VMX_FEATURE_NAMES=y
# CONFIG_PROCESSOR_SELECT is not set
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_HYGON=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_ZHAOXIN=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_GART_IOMMU is not set
CONFIG_BOOT_VESA_SUPPORT=y
CONFIG_MAXSMP=y
CONFIG_NR_CPUS_RANGE_BEGIN=8192
CONFIG_NR_CPUS_RANGE_END=8192
CONFIG_NR_CPUS_DEFAULT=8192
CONFIG_NR_CPUS=8192
CONFIG_SCHED_CLUSTER=y
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_MC_PRIO=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_ACPI_MADT_WAKEUP=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_X86_MCE=y
CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
CONFIG_X86_MCE_INJECT=m

#
# Performance monitoring
#
CONFIG_PERF_EVENTS_INTEL_UNCORE=m
CONFIG_PERF_EVENTS_INTEL_RAPL=m
CONFIG_PERF_EVENTS_INTEL_CSTATE=m
CONFIG_PERF_EVENTS_AMD_POWER=m
CONFIG_PERF_EVENTS_AMD_UNCORE=y
CONFIG_PERF_EVENTS_AMD_BRS=y
# end of Performance monitoring

CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
CONFIG_X86_VSYSCALL_EMULATION=y
CONFIG_X86_IOPL_IOPERM=y
CONFIG_MICROCODE=y
# CONFIG_MICROCODE_LATE_LOADING is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_X86_5LEVEL=y
CONFIG_X86_DIRECT_GBPAGES=y
CONFIG_X86_CPA_STATISTICS=y
CONFIG_X86_MEM_ENCRYPT=y
CONFIG_AMD_MEM_ENCRYPT=y
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
# CONFIG_NUMA_EMU is not set
CONFIG_NODES_SHIFT=10
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
# CONFIG_ARCH_MEMORY_PROBE is not set
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
CONFIG_X86_PMEM_LEGACY_DEVICE=y
CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_X86_UMIP=y
CONFIG_CC_HAS_IBT=y
CONFIG_X86_CET=y
CONFIG_X86_KERNEL_IBT=y
CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
CONFIG_X86_INTEL_TSX_MODE_OFF=y
# CONFIG_X86_INTEL_TSX_MODE_ON is not set
# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
CONFIG_X86_SGX=y
CONFIG_X86_USER_SHADOW_STACK=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_HANDOVER_PROTOCOL=y
CONFIG_EFI_MIXED=y
CONFIG_EFI_RUNTIME_MAP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
CONFIG_ARCH_SUPPORTS_KEXEC=y
CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
CONFIG_ARCH_SELECTS_KEXEC_FILE=y
CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y
CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_ARCH_SUPPORTS_KEXEC_JUMP=y
CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
CONFIG_ARCH_SUPPORTS_CRASH_HOTPLUG=y
CONFIG_PHYSICAL_START=0x200000
CONFIG_RELOCATABLE=y
CONFIG_RANDOMIZE_BASE=y
CONFIG_X86_NEED_RELOCS=y
CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_DYNAMIC_MEMORY_LAYOUT=y
CONFIG_RANDOMIZE_MEMORY=y
CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
CONFIG_ADDRESS_MASKING=y
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
# CONFIG_LEGACY_VSYSCALL_XONLY is not set
CONFIG_LEGACY_VSYSCALL_NONE=y
# CONFIG_CMDLINE_BOOL is not set
CONFIG_MODIFY_LDT_SYSCALL=y
# CONFIG_STRICT_SIGALTSTACK_SIZE is not set
CONFIG_HAVE_LIVEPATCH=y
CONFIG_LIVEPATCH=y
# end of Processor type and features

CONFIG_CC_HAS_NAMED_AS=y
CONFIG_USE_X86_SEG_SUPPORT=y
CONFIG_CC_HAS_SLS=y
CONFIG_CC_HAS_RETURN_THUNK=y
CONFIG_CC_HAS_ENTRY_PADDING=y
CONFIG_FUNCTION_PADDING_CFI=11
CONFIG_FUNCTION_PADDING_BYTES=16
CONFIG_CALL_PADDING=y
CONFIG_HAVE_CALL_THUNKS=y
CONFIG_CALL_THUNKS=y
CONFIG_PREFIX_SYMBOLS=y
CONFIG_CPU_MITIGATIONS=y
CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y
CONFIG_MITIGATION_RETPOLINE=y
CONFIG_MITIGATION_RETHUNK=y
CONFIG_MITIGATION_UNRET_ENTRY=y
CONFIG_MITIGATION_CALL_DEPTH_TRACKING=y
# CONFIG_CALL_THUNKS_DEBUG is not set
CONFIG_MITIGATION_IBPB_ENTRY=y
CONFIG_MITIGATION_IBRS_ENTRY=y
CONFIG_MITIGATION_SRSO=y
CONFIG_MITIGATION_SLS=y
# CONFIG_MITIGATION_GDS_FORCE is not set
CONFIG_MITIGATION_RFDS=y
CONFIG_MITIGATION_SPECTRE_BHI=y
CONFIG_ARCH_HAS_ADD_PAGES=y

#
# Power management and ACPI options
#
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
# CONFIG_SUSPEND_SKIP_SYNC is not set
CONFIG_HIBERNATE_CALLBACKS=y
# CONFIG_HIBERNATION is not set
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not set
CONFIG_PM=y
CONFIG_PM_DEBUG=y
# CONFIG_PM_ADVANCED_DEBUG is not set
CONFIG_PM_TEST_SUSPEND=y
CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not set
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
CONFIG_PM_CLK=y
CONFIG_PM_GENERIC_DOMAINS=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
CONFIG_ENERGY_MODEL=y
CONFIG_ARCH_SUPPORTS_ACPI=y
CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
CONFIG_ACPI_TABLE_LIB=y
CONFIG_ACPI_THERMAL_LIB=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_FPDT=y
CONFIG_ACPI_LPIT=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
# CONFIG_ACPI_EC_DEBUGFS is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_TAD=m
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_CSTATE=y
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_CPPC_LIB=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_IPMI=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_PLATFORM_PROFILE=m
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_HOTPLUG_IOAPIC=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=y
CONFIG_ACPI_BGRT=y
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
CONFIG_ACPI_NHLT=y
CONFIG_ACPI_NFIT=m
# CONFIG_NFIT_SECURITY_DEBUG is not set
CONFIG_ACPI_NUMA=y
CONFIG_ACPI_HMAT=y
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_ACPI_APEI_EINJ_CXL=y
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
CONFIG_ACPI_DPTF=y
CONFIG_DPTF_POWER=m
CONFIG_DPTF_PCH_FIVR=m
CONFIG_ACPI_WATCHDOG=y
CONFIG_ACPI_EXTLOG=m
CONFIG_ACPI_ADXL=y
# CONFIG_ACPI_CONFIGFS is not set
CONFIG_ACPI_PFRUT=m
CONFIG_ACPI_PCC=y
CONFIG_ACPI_FFH=y
CONFIG_PMIC_OPREGION=y
CONFIG_BYTCRC_PMIC_OPREGION=y
CONFIG_CHTCRC_PMIC_OPREGION=y
CONFIG_XPOWER_PMIC_OPREGION=y
CONFIG_BXT_WC_PMIC_OPREGION=y
CONFIG_CHT_WC_PMIC_OPREGION=y
CONFIG_CHT_DC_TI_PMIC_OPREGION=y
# CONFIG_TPS68470_PMIC_OPREGION is not set
CONFIG_ACPI_VIOT=y
CONFIG_ACPI_PRMT=y
CONFIG_X86_PM_TIMER=y

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y

#
# CPU frequency scaling drivers
#
CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_AMD_PSTATE=y
CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3
CONFIG_X86_AMD_PSTATE_UT=m
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
CONFIG_X86_P4_CLOCKMOD=m

#
# shared options
#
CONFIG_X86_SPEEDSTEP_LIB=m
# end of CPU Frequency scaling

#
# CPU Idle
#
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
CONFIG_HALTPOLL_CPUIDLE=y
# end of CPU Idle

CONFIG_INTEL_IDLE=y
# end of Power management and ACPI options

#
# Bus options (PCI etc.)
#
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_XEN=y
CONFIG_MMCONF_FAM10H=y
# CONFIG_PCI_CNB20LE_QUIRK is not set
# CONFIG_ISA_BUS is not set
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
# end of Bus options (PCI etc.)

#
# Binary Emulations
#
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_EMULATION_DEFAULT_DISABLED is not set
# CONFIG_X86_X32_ABI is not set
CONFIG_COMPAT_32=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
# end of Binary Emulations

CONFIG_KVM_COMMON=y
CONFIG_HAVE_KVM_PFNCACHE=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_DIRTY_RING=y
CONFIG_HAVE_KVM_DIRTY_RING_TSO=y
CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_READONLY_MEM=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_GENERIC_PRE_FAULT_MEMORY=y
CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_NO_POLL=y
CONFIG_KVM_XFER_TO_GUEST_WORK=y
CONFIG_HAVE_KVM_PM_NOTIFIER=y
CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
CONFIG_KVM_GENERIC_MMU_NOTIFIER=y
CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES=y
CONFIG_KVM_PRIVATE_MEM=y
CONFIG_KVM_GENERIC_PRIVATE_MEM=y
CONFIG_HAVE_KVM_ARCH_GMEM_PREPARE=y
CONFIG_HAVE_KVM_ARCH_GMEM_INVALIDATE=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
# CONFIG_KVM_WERROR is not set
CONFIG_KVM_SW_PROTECTED_VM=y
CONFIG_KVM_INTEL=m
# CONFIG_KVM_INTEL_PROVE_VE is not set
CONFIG_X86_SGX_KVM=y
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
CONFIG_KVM_SMM=y
CONFIG_KVM_HYPERV=y
CONFIG_KVM_XEN=y
# CONFIG_KVM_PROVE_MMU is not set
CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y
CONFIG_KVM_MAX_NR_VCPUS=4096
CONFIG_AS_AVX512=y
CONFIG_AS_SHA1_NI=y
CONFIG_AS_SHA256_NI=y
CONFIG_AS_TPAUSE=y
CONFIG_AS_GFNI=y
CONFIG_AS_VAES=y
CONFIG_AS_VPCLMULQDQ=y
CONFIG_AS_WRUSS=y
CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y

#
# General architecture-dependent options
#
CONFIG_HOTPLUG_SMT=y
CONFIG_HOTPLUG_CORE_SYNC=y
CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
CONFIG_HOTPLUG_CORE_SYNC_FULL=y
CONFIG_HOTPLUG_SPLIT_STARTUP=y
CONFIG_HOTPLUG_PARALLEL=y
CONFIG_GENERIC_ENTRY=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_CALL_SELFTEST is not set
CONFIG_OPTPROBES=y
CONFIG_KPROBES_ON_FTRACE=y
CONFIG_UPROBES=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_KRETPROBES=y
CONFIG_KRETPROBE_ON_RETHOOK=y
CONFIG_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
CONFIG_HAVE_NMI=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y
CONFIG_ARCH_HAS_CPU_PASID=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_ARCH_WANTS_NO_INSTR=y
CONFIG_HAVE_ASM_MODVERSIONS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y
CONFIG_HAVE_RUST=y
CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
CONFIG_MMU_GATHER_TABLE_FREE=y
CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
CONFIG_MMU_GATHER_MERGE_VMAS=y
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
# CONFIG_SECCOMP_CACHE_DEBUG is not set
CONFIG_HAVE_ARCH_STACKLEAK=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
CONFIG_LTO_NONE=y
CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING_USER=y
CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_MOVE_PUD=y
CONFIG_HAVE_MOVE_PMD=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_PMD_MKWRITE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
CONFIG_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
CONFIG_ARCH_MMAP_RND_BITS=32
CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=16
CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
CONFIG_HAVE_PAGE_SIZE_4KB=y
CONFIG_PAGE_SIZE_4KB=y
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
CONFIG_PAGE_SHIFT=12
CONFIG_HAVE_OBJTOOL=y
CONFIG_HAVE_JUMP_LABEL_HACK=y
CONFIG_HAVE_NOINSTR_HACK=y
CONFIG_HAVE_NOINSTR_VALIDATION=y
CONFIG_HAVE_UACCESS_VALIDATION=y
CONFIG_HAVE_STACK_VALIDATION=y
CONFIG_HAVE_RELIABLE_STACKTRACE=y
CONFIG_ISA_BUS_API=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y
CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
CONFIG_RANDOMIZE_KSTACK_OFFSET=y
CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
CONFIG_ARCH_HAS_CC_PLATFORM=y
CONFIG_HAVE_STATIC_CALL=y
CONFIG_HAVE_STATIC_CALL_INLINE=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
CONFIG_DYNAMIC_SIGFRAME=y
CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y
CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y
CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y

#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# end of GCOV-based kernel profiling

CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_FUNCTION_ALIGNMENT_4B=y
CONFIG_FUNCTION_ALIGNMENT_16B=y
CONFIG_FUNCTION_ALIGNMENT=16
# end of General architecture-dependent options

CONFIG_RT_MUTEXES=y
CONFIG_MODULE_SIG_FORMAT=y
CONFIG_MODULES=y
CONFIG_MODULE_DEBUGFS=y
# CONFIG_MODULE_DEBUG is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE is not set
CONFIG_MODULE_SIG_ALL=y
# CONFIG_MODULE_SIG_SHA1 is not set
# CONFIG_MODULE_SIG_SHA256 is not set
# CONFIG_MODULE_SIG_SHA384 is not set
CONFIG_MODULE_SIG_SHA512=y
# CONFIG_MODULE_SIG_SHA3_256 is not set
# CONFIG_MODULE_SIG_SHA3_384 is not set
# CONFIG_MODULE_SIG_SHA3_512 is not set
CONFIG_MODULE_SIG_HASH="sha512"
CONFIG_MODULE_COMPRESS_NONE=y
# CONFIG_MODULE_COMPRESS_GZIP is not set
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_MODULE_COMPRESS_ZSTD is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
CONFIG_MODPROBE_PATH="/sbin/modprobe"
# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
CONFIG_BLOCK_LEGACY_AUTOLOAD=y
CONFIG_BLK_RQ_ALLOC_TIME=y
CONFIG_BLK_CGROUP_RWSTAT=y
CONFIG_BLK_CGROUP_PUNT_BIO=y
CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_ICQ=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_WRITE_MOUNTED=y
CONFIG_BLK_DEV_ZONED=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_WBT=y
CONFIG_BLK_WBT_MQ=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP_FC_APPID=y
CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOPRIO=y
CONFIG_BLK_DEBUG_FS=y
CONFIG_BLK_SED_OPAL=y
CONFIG_BLK_INLINE_ENCRYPTION=y
# CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
CONFIG_AIX_PARTITION=y
CONFIG_OSF_PARTITION=y
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
CONFIG_SUN_PARTITION=y
# CONFIG_KARMA_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not set
# end of Partition Types

CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_BLK_PM=y
CONFIG_BLOCK_HOLDER_DEPRECATED=y
CONFIG_BLK_MQ_STACKING=y

#
# IO Schedulers
#
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_MQ_IOSCHED_KYBER=y
CONFIG_IOSCHED_BFQ=y
CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFQ_CGROUP_DEBUG is not set
# end of IO Schedulers

CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
CONFIG_FREEZER=y

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ELFCORE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
CONFIG_BINFMT_SCRIPT=y
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
# end of Executable file formats

#
# Memory Management options
#
CONFIG_ZPOOL=y
CONFIG_SWAP=y
CONFIG_ZSWAP=y
# CONFIG_ZSWAP_DEFAULT_ON is not set
CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
CONFIG_ZBUD=y
CONFIG_Z3FOLD=y
CONFIG_HAVE_ZSMALLOC=y
CONFIG_ZSMALLOC=y
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC_CHAIN_SIZE=8

#
# Slab allocator options
#
CONFIG_SLUB=y
# CONFIG_SLUB_TINY is not set
# CONFIG_SLAB_MERGE_DEFAULT is not set
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_BUCKETS=y
# CONFIG_SLUB_STATS is not set
CONFIG_SLUB_CPU_PARTIAL=y
CONFIG_RANDOM_KMALLOC_CACHES=y
# end of Slab allocator options

CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SPARSEMEM=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y
CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
CONFIG_HAVE_GUP_FAST=y
CONFIG_NUMA_KEEP_MEMINFO=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_MHP_MEMMAP_ON_MEMORY=y
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_MEMORY_BALLOON=y
CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
CONFIG_CONTIG_ALLOC=y
CONFIG_PCP_BATCH_SCALE_MAX=5
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_WANTS_THP_SWAP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
CONFIG_THP_SWAP=y
CONFIG_READ_ONLY_THP_FOR_FS=y
CONFIG_PGTABLE_HAS_HUGE_LEAVES=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_CMA=y
# CONFIG_CMA_DEBUGFS is not set
CONFIG_CMA_SYSFS=y
CONFIG_CMA_AREAS=7
CONFIG_MEM_SOFT_DIRTY=y
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
CONFIG_PAGE_IDLE_FLAG=y
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
CONFIG_ARCH_HAS_PTE_DEVMAP=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA32=y
CONFIG_ZONE_DEVICE=y
CONFIG_HMM_MIRROR=y
CONFIG_GET_FREE_REGION=y
CONFIG_DEVICE_PRIVATE=y
CONFIG_VMAP_PFN=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
CONFIG_ARCH_HAS_PKEYS=y
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_PERCPU_STATS is not set
# CONFIG_GUP_TEST is not set
# CONFIG_DMAPOOL_TEST is not set
CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_MAPPING_DIRTY_HELPERS=y
CONFIG_MEMFD_CREATE=y
CONFIG_SECRETMEM=y
# CONFIG_ANON_VMA_NAME is not set
CONFIG_HAVE_ARCH_USERFAULTFD_WP=y
CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y
CONFIG_USERFAULTFD=y
CONFIG_PTE_MARKER_UFFD_WP=y
CONFIG_LRU_GEN=y
CONFIG_LRU_GEN_ENABLED=y
# CONFIG_LRU_GEN_STATS is not set
CONFIG_LRU_GEN_WALKS_MMU=y
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
CONFIG_PER_VMA_LOCK=y
CONFIG_LOCK_MM_AND_FIND_VMA=y
CONFIG_IOMMU_MM_DATA=y
CONFIG_EXECMEM=y

#
# Data Access Monitoring
#
CONFIG_DAMON=y
CONFIG_DAMON_VADDR=y
CONFIG_DAMON_PADDR=y
CONFIG_DAMON_SYSFS=y
# CONFIG_DAMON_DBGFS_DEPRECATED is not set
CONFIG_DAMON_RECLAIM=y
# CONFIG_DAMON_LRU_SORT is not set
# end of Data Access Monitoring
# end of Memory Management options

CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y
CONFIG_NET_INGRESS=y
CONFIG_NET_EGRESS=y
CONFIG_NET_XGRESS=y
CONFIG_NET_REDIRECT=y
CONFIG_SKB_DECRYPTED=y
CONFIG_SKB_EXTENSIONS=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_AF_UNIX_OOB=y
CONFIG_UNIX_DIAG=y
CONFIG_TLS=m
CONFIG_TLS_DEVICE=y
# CONFIG_TLS_TOE is not set
CONFIG_XFRM=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_INTERFACE=m
CONFIG_XFRM_SUB_POLICY=y
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_AH=m
CONFIG_XFRM_ESP=m
CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XFRM_ESPINTCP=y
CONFIG_SMC=m
CONFIG_SMC_DIAG=m
# CONFIG_SMC_LO is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_NET_HANDSHAKE=y
CONFIG_NET_HANDSHAKE_KUNIT_TEST=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_FIB_TRIE_STATS=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_ROUTE_CLASSID=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE_DEMUX=m
CONFIG_NET_IP_TUNNEL=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE_COMMON=y
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
CONFIG_NET_FOU=m
CONFIG_NET_FOU_IP_TUNNELS=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_ESPINTCP=y
CONFIG_INET_IPCOMP=m
CONFIG_INET_TABLE_PERTURB_ORDER=16
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_INET_UDP_DIAG=y
CONFIG_INET_RAW_DIAG=y
CONFIG_INET_DIAG_DESTROY=y
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_NV=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_TCP_CONG_DCTCP=m
CONFIG_TCP_CONG_CDG=m
CONFIG_TCP_CONG_BBR=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_TCP_SIGPOOL=y
CONFIG_TCP_AO=y
CONFIG_TCP_MD5SIG=y
CONFIG_IPV6=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_ESP_OFFLOAD=m
CONFIG_INET6_ESPINTCP=y
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=y
CONFIG_IPV6_ILA=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_IPV6_VTI=m
CONFIG_IPV6_SIT=m
CONFIG_IPV6_SIT_6RD=y
CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_GRE=m
CONFIG_IPV6_FOU=m
CONFIG_IPV6_FOU_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
CONFIG_IPV6_SEG6_BPF=y
CONFIG_IPV6_RPL_LWTUNNEL=y
CONFIG_IPV6_IOAM6_LWTUNNEL=y
CONFIG_NETLABEL=y
CONFIG_MPTCP=y
CONFIG_INET_MPTCP_DIAG=y
CONFIG_MPTCP_IPV6=y
CONFIG_MPTCP_KUNIT_TEST=m
CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=m

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_EGRESS=y
CONFIG_NETFILTER_SKIP_EGRESS=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_FAMILY_BRIDGE=y
CONFIG_NETFILTER_FAMILY_ARP=y
CONFIG_NETFILTER_BPF_LINK=y
CONFIG_NETFILTER_NETLINK_HOOK=m
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NETFILTER_NETLINK_OSF=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_LOG_SYSLOG=m
CONFIG_NETFILTER_CONNCOUNT=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CONNTRACK_LABELS=y
CONFIG_NF_CONNTRACK_OVS=y
# CONFIG_NF_CT_PROTO_DCCP is not set
CONFIG_NF_CT_PROTO_GRE=y
CONFIG_NF_CT_PROTO_SCTP=y
CONFIG_NF_CT_PROTO_UDPLITE=y
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_SNMP=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_SIP=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_REDIRECT=y
CONFIG_NF_NAT_MASQUERADE=y
CONFIG_NF_NAT_OVS=y
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_REJECT_INET=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB=m
CONFIG_NFT_FIB_INET=m
CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
# CONFIG_NFT_OSF is not set
CONFIG_NFT_TPROXY=m
CONFIG_NFT_SYNPROXY=m
CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XTABLES=y
# CONFIG_NETFILTER_XTABLES_COMPAT is not set

#
# Xtables combined modules
#
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_CONNMARK=m
CONFIG_NETFILTER_XT_SET=m

#
# Xtables targets
#
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_RATEEST=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m

#
# Xtables matches
#
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_BPF=m
CONFIG_NETFILTER_XT_MATCH_CGROUP=m
CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ECN=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_HL=m
CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
CONFIG_NETFILTER_XT_MATCH_L2TP=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_NFACCT=m
CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_RECENT=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_SOCKET=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
# end of Core Netfilter Configuration

CONFIG_IP_SET=m
CONFIG_IP_SET_MAX=256
CONFIG_IP_SET_BITMAP_IP=m
CONFIG_IP_SET_BITMAP_IPMAC=m
CONFIG_IP_SET_BITMAP_PORT=m
CONFIG_IP_SET_HASH_IP=m
CONFIG_IP_SET_HASH_IPMARK=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_IPMAC=m
CONFIG_IP_SET_HASH_MAC=m
CONFIG_IP_SET_HASH_NETPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETNET=m
CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
CONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12

#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_AH_ESP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_PROTO_SCTP=y

#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_FO=m
CONFIG_IP_VS_OVF=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_MH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
CONFIG_IP_VS_TWOS=m

#
# IPVS SH scheduler
#
CONFIG_IP_VS_SH_TAB_BITS=8

#
# IPVS MH scheduler
#
CONFIG_IP_VS_MH_TAB_INDEX=12

#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
CONFIG_IP_VS_NFCT=y
CONFIG_IP_VS_PE_SIP=m

#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_IP_NF_IPTABLES_LEGACY=m
CONFIG_NF_SOCKET_IPV4=m
CONFIG_NF_TPROXY_IPV4=m
CONFIG_NF_TABLES_IPV4=y
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_SYNPROXY=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_NFT_COMPAT_ARP=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
# end of IP: Netfilter Configuration

#
# IPv6: Netfilter Configuration
#
CONFIG_IP6_NF_IPTABLES_LEGACY=m
CONFIG_NF_SOCKET_IPV6=m
CONFIG_NF_TPROXY_IPV6=m
CONFIG_NF_TABLES_IPV6=y
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
# end of IPv6: Netfilter Configuration

CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES_LEGACY=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_IP6=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_NFLOG=m
# CONFIG_IP_DCCP is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_COOKIE_HMAC_MD5=y
CONFIG_SCTP_COOKIE_HMAC_SHA1=y
CONFIG_INET_SCTP_DIAG=m
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
# CONFIG_RDS_DEBUG is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TIPC_CRYPTO=y
CONFIG_TIPC_DIAG=m
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
# CONFIG_ATM_MPOA is not set
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_L2TP=m
CONFIG_L2TP_DEBUGFS=m
CONFIG_L2TP_V3=y
CONFIG_L2TP_IP=m
CONFIG_L2TP_ETH=m
CONFIG_STP=m
CONFIG_GARP=m
CONFIG_MRP=m
CONFIG_BRIDGE=m
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_BRIDGE_MRP=y
CONFIG_BRIDGE_CFM=y
CONFIG_NET_DSA=m
CONFIG_NET_DSA_TAG_NONE=m
# CONFIG_NET_DSA_TAG_AR9331 is not set
CONFIG_NET_DSA_TAG_BRCM_COMMON=m
CONFIG_NET_DSA_TAG_BRCM=m
CONFIG_NET_DSA_TAG_BRCM_LEGACY=m
CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
CONFIG_NET_DSA_TAG_HELLCREEK=m
CONFIG_NET_DSA_TAG_GSWIP=m
CONFIG_NET_DSA_TAG_DSA_COMMON=m
CONFIG_NET_DSA_TAG_DSA=m
CONFIG_NET_DSA_TAG_EDSA=m
CONFIG_NET_DSA_TAG_MTK=m
CONFIG_NET_DSA_TAG_KSZ=m
CONFIG_NET_DSA_TAG_OCELOT=m
CONFIG_NET_DSA_TAG_OCELOT_8021Q=m
CONFIG_NET_DSA_TAG_QCA=m
CONFIG_NET_DSA_TAG_RTL4_A=m
CONFIG_NET_DSA_TAG_RTL8_4=m
# CONFIG_NET_DSA_TAG_RZN1_A5PSW is not set
CONFIG_NET_DSA_TAG_LAN9303=m
CONFIG_NET_DSA_TAG_SJA1105=m
CONFIG_NET_DSA_TAG_TRAILER=m
# CONFIG_NET_DSA_TAG_VSC73XX_8021Q is not set
CONFIG_NET_DSA_TAG_XRS700X=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_LLC=m
# CONFIG_LLC2 is not set
CONFIG_ATALK=m
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
CONFIG_6LOWPAN=m
CONFIG_6LOWPAN_DEBUGFS=y
CONFIG_6LOWPAN_NHC=m
CONFIG_6LOWPAN_NHC_DEST=m
CONFIG_6LOWPAN_NHC_FRAGMENT=m
CONFIG_6LOWPAN_NHC_HOP=m
CONFIG_6LOWPAN_NHC_IPV6=m
CONFIG_6LOWPAN_NHC_MOBILITY=m
CONFIG_6LOWPAN_NHC_ROUTING=m
CONFIG_6LOWPAN_NHC_UDP=m
CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
CONFIG_6LOWPAN_GHC_UDP=m
CONFIG_6LOWPAN_GHC_ICMPV6=m
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
CONFIG_IEEE802154=m
# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
CONFIG_IEEE802154_SOCKET=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFB=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_MQPRIO_LIB=m
CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
# CONFIG_NET_SCH_SKBPRIO is not set
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_CODEL=m
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_SCH_ETS=m
# CONFIG_NET_SCH_DEFAULT is not set

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=y
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_FLOWER=m
CONFIG_NET_CLS_MATCHALL=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_IPSET=m
CONFIG_NET_EMATCH_IPT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_SAMPLE=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_ACT_SKBEDIT=m
CONFIG_NET_ACT_CSUM=m
CONFIG_NET_ACT_MPLS=m
CONFIG_NET_ACT_VLAN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CTINFO=m
CONFIG_NET_ACT_SKBMOD=m
CONFIG_NET_ACT_IFE=m
CONFIG_NET_ACT_TUNNEL_KEY=m
CONFIG_NET_ACT_CT=m
CONFIG_NET_ACT_GATE=m
CONFIG_NET_IFE_SKBMARK=m
CONFIG_NET_IFE_SKBPRIO=m
CONFIG_NET_IFE_SKBTCINDEX=m
CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_SCH_FIFO=y
CONFIG_DCB=y
CONFIG_DNS_RESOLVER=m
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BATMAN_V=y
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV_NC=y
CONFIG_BATMAN_ADV_MCAST=y
# CONFIG_BATMAN_ADV_DEBUG is not set
CONFIG_BATMAN_ADV_TRACING=y
CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_GRE=m
CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPENVSWITCH_GENEVE=m
CONFIG_VSOCKETS=m
CONFIG_VSOCKETS_DIAG=m
CONFIG_VSOCKETS_LOOPBACK=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS=y
CONFIG_NET_MPLS_GSO=m
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
CONFIG_NET_NSH=m
CONFIG_HSR=m
CONFIG_NET_SWITCHDEV=y
CONFIG_NET_L3_MASTER_DEV=y
CONFIG_QRTR=m
# CONFIG_QRTR_TUN is not set
CONFIG_QRTR_MHI=m
CONFIG_NET_NCSI=y
CONFIG_NCSI_OEM_CMD_GET_MAC=y
CONFIG_NCSI_OEM_CMD_KEEP_PHY=y
CONFIG_PCPU_DEV_REFCNT=y
CONFIG_MAX_SKB_FRAGS=17
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_SOCK_RX_QUEUE_MAPPING=y
CONFIG_XPS=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_NET_FLOW_LIMIT=y

#
# Network testing
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
# end of Network testing
# end of Networking options

CONFIG_HAMRADIO=y

#
# Packet Radio protocols
#
CONFIG_AX25=m
CONFIG_AX25_DAMA_SLAVE=y
CONFIG_NETROM=m
CONFIG_ROSE=m

#
# AX.25 network device drivers
#
CONFIG_MKISS=m
CONFIG_6PACK=m
CONFIG_BPQETHER=m
CONFIG_BAYCOM_SER_FDX=m
CONFIG_BAYCOM_SER_HDX=m
CONFIG_BAYCOM_PAR=m
CONFIG_YAM=m
# end of AX.25 network device drivers

CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m
CONFIG_CAN_J1939=m
CONFIG_CAN_ISOTP=m
CONFIG_BT=m
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
CONFIG_BT_LE=y
CONFIG_BT_LE_L2CAP_ECRED=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_LEDS=y
CONFIG_BT_MSFTEXT=y
CONFIG_BT_AOSPEXT=y
# CONFIG_BT_DEBUGFS is not set
# CONFIG_BT_SELFTEST is not set

#
# Bluetooth device drivers
#
CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
CONFIG_BT_RTL=m
CONFIG_BT_QCA=m
CONFIG_BT_MTK=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
CONFIG_BT_HCIBTUSB_POLL_SYNC=y
CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_MTK=y
CONFIG_BT_HCIBTUSB_RTL=y
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_ATH3K=y
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_3WIRE=y
CONFIG_BT_HCIUART_INTEL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_RTL=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIUART_AG6XX=y
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBCM4377=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIVHCI=m
CONFIG_BT_MRVL=m
CONFIG_BT_MRVL_SDIO=m
CONFIG_BT_ATH3K=m
CONFIG_BT_MTKSDIO=m
CONFIG_BT_MTKUART=m
CONFIG_BT_HCIRSI=m
CONFIG_BT_VIRTIO=m
CONFIG_BT_NXPUART=m
CONFIG_BT_INTEL_PCIE=m
# end of Bluetooth device drivers

CONFIG_AF_RXRPC=m
CONFIG_AF_RXRPC_IPV6=y
# CONFIG_AF_RXRPC_INJECT_LOSS is not set
# CONFIG_AF_RXRPC_INJECT_RX_DELAY is not set
CONFIG_AF_RXRPC_DEBUG=y
CONFIG_RXKAD=y
# CONFIG_RXPERF is not set
CONFIG_AF_KCM=m
CONFIG_STREAM_PARSER=y
CONFIG_MCTP=y
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_PRIV=y
CONFIG_CFG80211=m
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
CONFIG_CFG80211_DEFAULT_PS=y
CONFIG_CFG80211_DEBUGFS=y
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
CONFIG_CFG80211_KUNIT_TEST=m
CONFIG_LIB80211=m
# CONFIG_LIB80211_DEBUG is not set
CONFIG_MAC80211=m
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
CONFIG_MAC80211_KUNIT_TEST=m
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
CONFIG_MAC80211_DEBUGFS=y
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_RFKILL=m
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=m
CONFIG_NET_9P=m
CONFIG_NET_9P_FD=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_NET_9P_XEN=m
CONFIG_NET_9P_RDMA=m
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not set
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
CONFIG_NFC=m
CONFIG_NFC_DIGITAL=m
CONFIG_NFC_NCI=m
CONFIG_NFC_NCI_SPI=m
# CONFIG_NFC_NCI_UART is not set
CONFIG_NFC_HCI=m
CONFIG_NFC_SHDLC=y

#
# Near Field Communication (NFC) devices
#
CONFIG_NFC_TRF7970A=m
CONFIG_NFC_MEI_PHY=m
CONFIG_NFC_SIM=m
CONFIG_NFC_PORT100=m
# CONFIG_NFC_VIRTUAL_NCI is not set
# CONFIG_NFC_FDP is not set
CONFIG_NFC_PN544=m
CONFIG_NFC_PN544_I2C=m
CONFIG_NFC_PN544_MEI=m
CONFIG_NFC_PN533=m
CONFIG_NFC_PN533_USB=m
CONFIG_NFC_PN533_I2C=m
CONFIG_NFC_PN532_UART=m
CONFIG_NFC_MICROREAD=m
CONFIG_NFC_MICROREAD_I2C=m
CONFIG_NFC_MICROREAD_MEI=m
CONFIG_NFC_MRVL=m
CONFIG_NFC_MRVL_USB=m
# CONFIG_NFC_MRVL_I2C is not set
# CONFIG_NFC_MRVL_SPI is not set
CONFIG_NFC_ST21NFCA=m
CONFIG_NFC_ST21NFCA_I2C=m
# CONFIG_NFC_ST_NCI_I2C is not set
# CONFIG_NFC_ST_NCI_SPI is not set
CONFIG_NFC_NXP_NCI=m
CONFIG_NFC_NXP_NCI_I2C=m
# CONFIG_NFC_S3FWRN5_I2C is not set
# CONFIG_NFC_S3FWRN82_UART is not set
# CONFIG_NFC_ST95HF is not set
# end of Near Field Communication (NFC) devices

CONFIG_PSAMPLE=m
CONFIG_NET_IFE=m
CONFIG_LWTUNNEL=y
CONFIG_LWTUNNEL_BPF=y
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
CONFIG_SOCK_VALIDATE_XMIT=y
CONFIG_NET_SELFTESTS=y
CONFIG_NET_SOCK_MSG=y
CONFIG_NET_DEVLINK=y
CONFIG_PAGE_POOL=y
CONFIG_PAGE_POOL_STATS=y
CONFIG_FAILOVER=m
CONFIG_ETHTOOL_NETLINK=y
CONFIG_NETDEV_ADDR_LIST_TEST=m
CONFIG_NET_TEST=m

#
# Device Drivers
#
CONFIG_HAVE_EISA=y
# CONFIG_EISA is not set
CONFIG_HAVE_PCI=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER_CXL=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIEASPM=y
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
CONFIG_PCIE_DPC=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_EDR=y
CONFIG_PCI_MSI=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
CONFIG_PCI_PF_STUB=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_PCI_ATS=y
CONFIG_PCI_DOE=y
CONFIG_PCI_LOCKLESS_CONFIG=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
CONFIG_PCI_P2PDMA=y
CONFIG_PCI_LABEL=y
CONFIG_PCI_HYPERV=m
# CONFIG_PCIE_BUS_TUNE_OFF is not set
CONFIG_PCIE_BUS_DEFAULT=y
# CONFIG_PCIE_BUS_SAFE is not set
# CONFIG_PCIE_BUS_PERFORMANCE is not set
# CONFIG_PCIE_BUS_PEER2PEER is not set
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_HOTPLUG_PCI is not set

#
# PCI controller drivers
#
CONFIG_VMD=m
CONFIG_PCI_HYPERV_INTERFACE=m

#
# Cadence-based PCIe controllers
#
# end of Cadence-based PCIe controllers

#
# DesignWare-based PCIe controllers
#
# CONFIG_PCI_MESON is not set
# CONFIG_PCIE_DW_PLAT_HOST is not set
# end of DesignWare-based PCIe controllers

#
# Mobiveil-based PCIe controllers
#
# end of Mobiveil-based PCIe controllers

#
# PLDA-based PCIe controllers
#
# end of PLDA-based PCIe controllers
# end of PCI controller drivers

#
# PCI Endpoint
#
# CONFIG_PCI_ENDPOINT is not set
# end of PCI Endpoint

#
# PCI switch controller drivers
#
CONFIG_PCI_SW_SWITCHTEC=m
# end of PCI switch controller drivers

CONFIG_CXL_BUS=m
CONFIG_CXL_PCI=m
# CONFIG_CXL_MEM_RAW_COMMANDS is not set
CONFIG_CXL_ACPI=m
CONFIG_CXL_PMEM=m
CONFIG_CXL_MEM=m
CONFIG_CXL_PORT=m
CONFIG_CXL_SUSPEND=y
CONFIG_CXL_REGION=y
# CONFIG_CXL_REGION_INVALIDATION_TEST is not set
CONFIG_PCCARD=y
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=m
# CONFIG_YENTA_O2 is not set
# CONFIG_YENTA_RICOH is not set
# CONFIG_YENTA_TI is not set
# CONFIG_YENTA_TOSHIBA is not set
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_PCCARD_NONSTATIC=y
# CONFIG_RAPIDIO is not set

#
# Generic Driver Options
#
CONFIG_AUXILIARY_BUS=y
# CONFIG_UEVENT_HELPER is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DEVTMPFS_SAFE=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y

#
# Firmware loader
#
CONFIG_FW_LOADER=y
CONFIG_FW_LOADER_DEBUG=y
CONFIG_FW_LOADER_PAGED_BUF=y
CONFIG_FW_LOADER_SYSFS=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
CONFIG_FW_LOADER_COMPRESS=y
CONFIG_FW_LOADER_COMPRESS_XZ=y
CONFIG_FW_LOADER_COMPRESS_ZSTD=y
CONFIG_FW_CACHE=y
CONFIG_FW_UPLOAD=y
# end of Firmware loader

CONFIG_WANT_DEV_COREDUMP=y
CONFIG_ALLOW_DEV_COREDUMP=y
CONFIG_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
CONFIG_HMEM_REPORTING=y
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
# CONFIG_DM_KUNIT_TEST is not set
CONFIG_DRIVER_PE_KUNIT_TEST=m
CONFIG_SYS_HYPERVISOR=y
CONFIG_GENERIC_CPU_DEVICES=y
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_SOC_BUS=y
CONFIG_REGMAP=y
CONFIG_REGMAP_KUNIT=m
# CONFIG_REGMAP_BUILD is not set
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_SPI=m
CONFIG_REGMAP_MMIO=y
CONFIG_REGMAP_IRQ=y
CONFIG_REGMAP_RAM=m
CONFIG_REGMAP_SOUNDWIRE=m
CONFIG_REGMAP_SOUNDWIRE_MBQ=m
CONFIG_REGMAP_SCCB=m
CONFIG_REGMAP_SPI_AVMM=m
CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_DMA_FENCE_TRACE is not set
# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
# end of Generic Driver Options

#
# Bus devices
#
CONFIG_MHI_BUS=m
# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS_PCI_GENERIC=m
# CONFIG_MHI_BUS_EP is not set
# end of Bus devices

#
# Cache Drivers
#
# end of Cache Drivers

CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y

#
# Firmware Drivers
#

#
# ARM System Control and Management Interface Protocol
#
# end of ARM System Control and Management Interface Protocol

CONFIG_EDD=m
# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=y
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y
CONFIG_SYSFB_SIMPLEFB=y
CONFIG_FW_CS_DSP=m
# CONFIG_GOOGLE_FIRMWARE is not set

#
# EFI (Extensible Firmware Interface) Support
#
CONFIG_EFI_ESRT=y
CONFIG_EFI_VARS_PSTORE=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_SOFT_RESERVE=y
CONFIG_EFI_DXE_MEM_ATTRIBUTES=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
# CONFIG_EFI_BOOTLOADER_CONTROL is not set
# CONFIG_EFI_CAPSULE_LOADER is not set
CONFIG_EFI_TEST=m
CONFIG_EFI_DEV_PATH_PARSER=y
CONFIG_APPLE_PROPERTIES=y
# CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_EFI_RCI2_TABLE=y
# CONFIG_EFI_DISABLE_PCI_DMA is not set
CONFIG_EFI_EARLYCON=y
CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
# CONFIG_EFI_DISABLE_RUNTIME is not set
CONFIG_EFI_COCO_SECRET=y
CONFIG_UNACCEPTED_MEMORY=y
CONFIG_EFI_EMBEDDED_FIRMWARE=y
# end of EFI (Extensible Firmware Interface) Support

CONFIG_UEFI_CPER=y
CONFIG_UEFI_CPER_X86=y

#
# Qualcomm firmware drivers
#
# end of Qualcomm firmware drivers

#
# Tegra firmware driver
#
# end of Tegra firmware driver
# end of Firmware Drivers

CONFIG_GNSS=m
CONFIG_GNSS_SERIAL=m
CONFIG_GNSS_MTK_SERIAL=m
CONFIG_GNSS_SIRF_SERIAL=m
CONFIG_GNSS_UBX_SERIAL=m
CONFIG_GNSS_USB=m
CONFIG_MTD=m
# CONFIG_MTD_TESTS is not set

#
# Partition parsers
#
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
# end of Partition parsers

#
# User Modules And Translation Layers
#
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
# CONFIG_MTD_BLOCK_RO is not set

#
# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
#
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_SM_FTL is not set
# CONFIG_MTD_OOPS is not set
# CONFIG_MTD_SWAP is not set
# CONFIG_MTD_PARTITIONED_MASTER is not set

#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# end of RAM/ROM/Flash chip drivers

#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PLATRAM is not set
# end of Mapping drivers for chip access

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_MCHP23K256 is not set
CONFIG_MTD_MCHP48L640=m
# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
CONFIG_MTD_MTDRAM=m
CONFIG_MTDRAM_TOTAL_SIZE=4096
CONFIG_MTDRAM_ERASE_SIZE=128
CONFIG_MTD_BLOCK2MTD=m

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOCG3 is not set
# end of Self-contained MTD device drivers

#
# NAND
#
CONFIG_MTD_NAND_CORE=m
# CONFIG_MTD_ONENAND is not set
CONFIG_MTD_RAW_NAND=m

#
# Raw/parallel NAND flash controllers
#
# CONFIG_MTD_NAND_DENALI_PCI is not set
# CONFIG_MTD_NAND_CAFE is not set
# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_GPIO is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_NAND_ARASAN is not set

#
# Misc
#
CONFIG_MTD_NAND_NANDSIM=m
# CONFIG_MTD_NAND_RICOH is not set
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_SPI_NAND is not set

#
# ECC engine support
#
CONFIG_MTD_NAND_ECC=y
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
# CONFIG_MTD_NAND_ECC_SW_BCH is not set
CONFIG_MTD_NAND_ECC_MXIC=y
# end of ECC engine support
# end of NAND

#
# LPDDR & LPDDR2 PCM memory drivers
#
# CONFIG_MTD_LPDDR is not set
# end of LPDDR & LPDDR2 PCM memory drivers

CONFIG_MTD_SPI_NOR=m
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
# CONFIG_MTD_UBI_GLUEBI is not set
# CONFIG_MTD_UBI_BLOCK is not set
CONFIG_MTD_UBI_NVMEM=m
# CONFIG_MTD_HYPERBUS is not set
# CONFIG_OF is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
CONFIG_PARPORT_PC_PCMCIA=m
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
# CONFIG_PNP_DEBUG_MESSAGES is not set

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_FD_RAWCMD is not set
CONFIG_CDROM=y
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZORLE=y
# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
# CONFIG_ZRAM_DEF_COMP_LZO is not set
# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
# CONFIG_ZRAM_DEF_COMP_842 is not set
CONFIG_ZRAM_DEF_COMP="lzo-rle"
# CONFIG_ZRAM_WRITEBACK is not set
# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
# CONFIG_ZRAM_MEMORY_TRACKING is not set
CONFIG_ZRAM_MULTI_COMP=y
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
CONFIG_ATA_OVER_ETH=m
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
CONFIG_BLK_DEV_UBLK=m
CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y
CONFIG_BLK_DEV_RNBD=y
CONFIG_BLK_DEV_RNBD_CLIENT=m
CONFIG_BLK_DEV_RNBD_SERVER=m

#
# NVME Support
#
CONFIG_NVME_KEYRING=m
CONFIG_NVME_AUTH=m
CONFIG_NVME_CORE=m
CONFIG_BLK_DEV_NVME=m
CONFIG_NVME_MULTIPATH=y
# CONFIG_NVME_VERBOSE_ERRORS is not set
CONFIG_NVME_HWMON=y
CONFIG_NVME_FABRICS=m
CONFIG_NVME_RDMA=m
CONFIG_NVME_FC=m
CONFIG_NVME_TCP=m
CONFIG_NVME_TCP_TLS=y
CONFIG_NVME_HOST_AUTH=y
CONFIG_NVME_TARGET=m
# CONFIG_NVME_TARGET_DEBUGFS is not set
CONFIG_NVME_TARGET_PASSTHRU=y
CONFIG_NVME_TARGET_LOOP=m
CONFIG_NVME_TARGET_RDMA=m
CONFIG_NVME_TARGET_FC=m
CONFIG_NVME_TARGET_FCLOOP=m
CONFIG_NVME_TARGET_TCP=m
CONFIG_NVME_TARGET_TCP_TLS=y
CONFIG_NVME_TARGET_AUTH=y
# end of NVME Support

#
# Misc devices
#
CONFIG_SENSORS_LIS3LV02D=m
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
CONFIG_IBM_ASM=m
# CONFIG_PHANTOM is not set
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
# CONFIG_ICS932S401 is not set
CONFIG_ENCLOSURE_SERVICES=m
CONFIG_SGI_XP=m
CONFIG_HP_ILO=m
CONFIG_SGI_GRU=m
# CONFIG_SGI_GRU_DEBUG is not set
CONFIG_APDS9802ALS=m
CONFIG_ISL29003=m
CONFIG_ISL29020=m
CONFIG_SENSORS_TSL2550=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_APDS990X=m
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
CONFIG_VMWARE_BALLOON=m
# CONFIG_LATTICE_ECP3_CONFIG is not set
# CONFIG_SRAM is not set
CONFIG_DW_XDATA_PCIE=m
# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_XILINX_SDFEC is not set
CONFIG_MISC_RTSX=m
CONFIG_TPS6594_ESM=m
CONFIG_TPS6594_PFSM=m
CONFIG_NSM=m
# CONFIG_C2PORT is not set

#
# EEPROM support
#
CONFIG_EEPROM_AT24=m
# CONFIG_EEPROM_AT25 is not set
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
# CONFIG_EEPROM_93XX46 is not set
CONFIG_EEPROM_IDT_89HPESX=m
CONFIG_EEPROM_EE1004=m
# end of EEPROM support

CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y

#
# Texas Instruments shared transport line discipline
#
# CONFIG_TI_ST is not set
# end of Texas Instruments shared transport line discipline

CONFIG_SENSORS_LIS3_I2C=m
CONFIG_ALTERA_STAPL=m
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=m
CONFIG_INTEL_MEI_TXE=m
CONFIG_INTEL_MEI_GSC=m
CONFIG_INTEL_MEI_VSC_HW=m
CONFIG_INTEL_MEI_VSC=m
CONFIG_INTEL_MEI_HDCP=m
CONFIG_INTEL_MEI_PXP=m
CONFIG_INTEL_MEI_GSC_PROXY=m
CONFIG_VMWARE_VMCI=m
# CONFIG_GENWQE is not set
CONFIG_ECHO=m
CONFIG_BCM_VK=m
CONFIG_BCM_VK_TTY=y
CONFIG_MISC_ALCOR_PCI=m
CONFIG_MISC_RTSX_PCI=m
CONFIG_MISC_RTSX_USB=m
CONFIG_UACCE=m
CONFIG_PVPANIC=y
CONFIG_PVPANIC_MMIO=m
# CONFIG_PVPANIC_PCI is not set
CONFIG_GP_PCI1XXXX=m
CONFIG_KEBA_CP500=m
# end of Misc devices

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
CONFIG_RAID_ATTRS=m
CONFIG_SCSI_COMMON=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y
CONFIG_SCSI_LIB_KUNIT_TEST=m

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_BLK_DEV_BSG=y
CONFIG_CHR_DEV_SCH=m
CONFIG_SCSI_ENCLOSURE=m
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_PROTO_TEST=m

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=m
CONFIG_SCSI_SAS_LIBSAS=m
CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_SAS_HOST_SMP=y
CONFIG_SCSI_SRP_ATTRS=m
# end of SCSI Transports

CONFIG_SCSI_LOWLEVEL=y
CONFIG_ISCSI_TCP=m
CONFIG_ISCSI_BOOT_SYSFS=m
CONFIG_SCSI_CXGB3_ISCSI=m
CONFIG_SCSI_CXGB4_ISCSI=m
CONFIG_SCSI_BNX2_ISCSI=m
CONFIG_SCSI_BNX2X_FCOE=m
CONFIG_BE2ISCSI=m
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_HPSA=m
CONFIG_SCSI_3W_9XXX=m
CONFIG_SCSI_3W_SAS=m
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=4
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
# CONFIG_SCSI_AIC94XX is not set
CONFIG_SCSI_MVSAS=m
# CONFIG_SCSI_MVSAS_DEBUG is not set
CONFIG_SCSI_MVSAS_TASKLET=y
CONFIG_SCSI_MVUMI=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_ARCMSR=m
CONFIG_SCSI_ESAS2R=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_LEGACY=m
CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT3SAS=m
CONFIG_SCSI_MPT2SAS_MAX_SGE=128
CONFIG_SCSI_MPT3SAS_MAX_SGE=128
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPI3MR=m
CONFIG_SCSI_SMARTPQI=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_SCSI_FLASHPOINT=y
CONFIG_SCSI_MYRB=m
CONFIG_SCSI_MYRS=m
CONFIG_VMWARE_PVSCSI=m
CONFIG_XEN_SCSI_FRONTEND=m
CONFIG_HYPERV_STORAGE=m
CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
CONFIG_FCOE=m
CONFIG_FCOE_FNIC=m
CONFIG_SCSI_SNIC=m
# CONFIG_SCSI_SNIC_DEBUG_FS is not set
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_FDOMAIN=m
CONFIG_SCSI_FDOMAIN_PCI=m
CONFIG_SCSI_ISCI=m
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
CONFIG_SCSI_INIA100=m
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
CONFIG_SCSI_STEX=m
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
CONFIG_SCSI_IPR=m
CONFIG_SCSI_IPR_TRACE=y
CONFIG_SCSI_IPR_DUMP=y
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLA_FC=m
CONFIG_TCM_QLA2XXX=m
# CONFIG_TCM_QLA2XXX_DEBUG is not set
CONFIG_SCSI_QLA_ISCSI=m
CONFIG_QEDI=m
CONFIG_QEDF=m
CONFIG_SCSI_LPFC=m
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_EFCT=m
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_AM53C974=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_PMCRAID=m
CONFIG_SCSI_PM8001=m
CONFIG_SCSI_BFA_FC=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_CHELSIO_FCOE=m
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
CONFIG_SCSI_DH=y
CONFIG_SCSI_DH_RDAC=m
CONFIG_SCSI_DH_HP_SW=m
CONFIG_SCSI_DH_EMC=m
CONFIG_SCSI_DH_ALUA=m
# end of SCSI device support

CONFIG_ATA=y
CONFIG_SATA_HOST=y
CONFIG_PATA_TIMINGS=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_FORCE=y
CONFIG_ATA_ACPI=y
# CONFIG_SATA_ZPODD is not set
CONFIG_SATA_PMP=y

#
# Controllers with non-SFF native interface
#
CONFIG_SATA_AHCI=y
CONFIG_SATA_MOBILE_LPM_POLICY=3
CONFIG_SATA_AHCI_PLATFORM=m
CONFIG_AHCI_DWC=m
CONFIG_SATA_INIC162X=m
CONFIG_SATA_ACARD_AHCI=m
CONFIG_SATA_SIL24=m
CONFIG_ATA_SFF=y

#
# SFF controllers with custom DMA interface
#
CONFIG_PDC_ADMA=m
CONFIG_SATA_QSTOR=m
CONFIG_SATA_SX4=m
CONFIG_ATA_BMDMA=y

#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
# CONFIG_SATA_DWC is not set
CONFIG_SATA_MV=m
CONFIG_SATA_NV=m
CONFIG_SATA_PROMISE=m
CONFIG_SATA_SIL=m
CONFIG_SATA_SIS=m
CONFIG_SATA_SVW=m
CONFIG_SATA_ULI=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m

#
# PATA SFF controllers with BMDMA
#
CONFIG_PATA_ALI=m
CONFIG_PATA_AMD=m
CONFIG_PATA_ARTOP=m
CONFIG_PATA_ATIIXP=m
CONFIG_PATA_ATP867X=m
CONFIG_PATA_CMD64X=m
# CONFIG_PATA_CYPRESS is not set
CONFIG_PATA_EFAR=m
CONFIG_PATA_HPT366=m
CONFIG_PATA_HPT37X=m
CONFIG_PATA_HPT3X2N=m
CONFIG_PATA_HPT3X3=m
# CONFIG_PATA_HPT3X3_DMA is not set
CONFIG_PATA_IT8213=m
CONFIG_PATA_IT821X=m
CONFIG_PATA_JMICRON=m
CONFIG_PATA_MARVELL=m
CONFIG_PATA_NETCELL=m
CONFIG_PATA_NINJA32=m
CONFIG_PATA_NS87415=m
CONFIG_PATA_OLDPIIX=m
CONFIG_PATA_OPTIDMA=m
CONFIG_PATA_PDC2027X=m
CONFIG_PATA_PDC_OLD=m
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RDC is not set
CONFIG_PATA_SCH=m
CONFIG_PATA_SERVERWORKS=m
CONFIG_PATA_SIL680=m
CONFIG_PATA_SIS=m
CONFIG_PATA_TOSHIBA=m
CONFIG_PATA_TRIFLEX=m
CONFIG_PATA_VIA=m
CONFIG_PATA_WINBOND=m

#
# PIO-only SFF controllers
#
CONFIG_PATA_CMD640_PCI=m
CONFIG_PATA_MPIIX=m
CONFIG_PATA_NS87410=m
CONFIG_PATA_OPTI=m
CONFIG_PATA_PCMCIA=m
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_PARPORT is not set

#
# Generic fallback / legacy drivers
#
CONFIG_PATA_ACPI=m
CONFIG_ATA_GENERIC=m
# CONFIG_PATA_LEGACY is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_AUTODETECT=y
CONFIG_MD_BITMAP_FILE=y
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
# CONFIG_MD_CLUSTER is not set
CONFIG_BCACHE=m
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_DEBUG=y
CONFIG_DM_BUFIO=y
# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
CONFIG_DM_BIO_PRISON=m
CONFIG_DM_PERSISTENT_DATA=m
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=y
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
CONFIG_DM_WRITECACHE=m
CONFIG_DM_EBS=m
CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_RAID=m
CONFIG_DM_ZERO=y
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_QL=m
CONFIG_DM_MULTIPATH_ST=m
CONFIG_DM_MULTIPATH_HST=m
CONFIG_DM_MULTIPATH_IOA=m
CONFIG_DM_DELAY=m
CONFIG_DM_DUST=m
CONFIG_DM_INIT=y
CONFIG_DM_UEVENT=y
CONFIG_DM_FLAKEY=m
CONFIG_DM_VERITY=m
CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING=y
CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_PLATFORM_KEYRING=y
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_SWITCH=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_INTEGRITY=m
CONFIG_DM_ZONED=m
CONFIG_DM_AUDIT=y
CONFIG_DM_VDO=m
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
CONFIG_TCM_USER2=m
CONFIG_LOOPBACK_TARGET=m
CONFIG_TCM_FC=m
CONFIG_ISCSI_TARGET=m
CONFIG_ISCSI_TARGET_CXGB4=m
CONFIG_SBP_TARGET=m
CONFIG_REMOTE_TARGET=m
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
CONFIG_FUSION_SAS=m
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
CONFIG_FUSION_LOGGING=y

#
# IEEE 1394 (FireWire) support
#
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_KUNIT_UAPI_TEST=m
# CONFIG_FIREWIRE_KUNIT_DEVICE_ATTRIBUTE_TEST is not set
CONFIG_FIREWIRE_KUNIT_PACKET_SERDES_TEST=m
CONFIG_FIREWIRE_KUNIT_SELF_ID_SEQUENCE_HELPER_TEST=m
CONFIG_FIREWIRE_OHCI=m
CONFIG_FIREWIRE_KUNIT_OHCI_SERDES_TEST=m
CONFIG_FIREWIRE_SBP2=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
# end of IEEE 1394 (FireWire) support

CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
CONFIG_MII=m
CONFIG_NET_CORE=y
CONFIG_BONDING=m
CONFIG_DUMMY=m
CONFIG_WIREGUARD=m
# CONFIG_WIREGUARD_DEBUG is not set
CONFIG_EQUALIZER=m
CONFIG_NET_FC=y
CONFIG_IFB=m
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
CONFIG_NET_TEAM_MODE_RANDOM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_IPVLAN_L3S=y
CONFIG_IPVLAN=m
CONFIG_IPVTAP=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
CONFIG_BAREUDP=m
CONFIG_GTP=m
CONFIG_PFCP=m
CONFIG_AMT=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
# CONFIG_NETCONSOLE_EXTENDED_LOG is not set
CONFIG_NETPOLL=y
CONFIG_NET_POLL_CONTROLLER=y
CONFIG_NTB_NETDEV=m
CONFIG_TUN=m
CONFIG_TAP=m
# CONFIG_TUN_VNET_CROSS_LE is not set
CONFIG_VETH=m
CONFIG_VIRTIO_NET=m
CONFIG_NLMON=m
CONFIG_NETKIT=y
CONFIG_NET_VRF=m
CONFIG_VSOCKMON=m
CONFIG_MHI_NET=m
CONFIG_SUNGEM_PHY=m
# CONFIG_ARCNET is not set
CONFIG_ATM_DRIVERS=y
# CONFIG_ATM_DUMMY is not set
CONFIG_ATM_TCP=m
# CONFIG_ATM_LANAI is not set
CONFIG_ATM_ENI=m
# CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ENI_TUNE_BURST is not set
CONFIG_ATM_NICSTAR=m
# CONFIG_ATM_NICSTAR_USE_SUNI is not set
# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
# CONFIG_ATM_IDT77252 is not set
# CONFIG_ATM_IA is not set
# CONFIG_ATM_FORE200E is not set
CONFIG_ATM_HE=m
# CONFIG_ATM_HE_USE_SUNI is not set
CONFIG_ATM_SOLOS=m

#
# Distributed Switch Architecture drivers
#
CONFIG_B53=m
CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_MDIO_DRIVER=m
CONFIG_B53_MMAP_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
CONFIG_B53_SERDES=m
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MT7530_MDIO=m
CONFIG_NET_DSA_MT7530_MMIO=m
# CONFIG_NET_DSA_MV88E6060 is not set
# CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON is not set
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_PTP=y
# CONFIG_NET_DSA_AR9331 is not set
CONFIG_NET_DSA_QCA8K=m
CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT=y
# CONFIG_NET_DSA_SJA1105 is not set
CONFIG_NET_DSA_XRS700X=m
CONFIG_NET_DSA_XRS700X_I2C=m
CONFIG_NET_DSA_XRS700X_MDIO=m
CONFIG_NET_DSA_REALTEK=m
CONFIG_NET_DSA_SMSC_LAN9303=m
CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
# end of Distributed Switch Architecture drivers

CONFIG_ETHERNET=y
CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
CONFIG_NET_VENDOR_ADAPTEC=y
CONFIG_ADAPTEC_STARFIRE=m
CONFIG_NET_VENDOR_AGERE=y
CONFIG_ET131X=m
# CONFIG_NET_VENDOR_ALACRITECH is not set
CONFIG_NET_VENDOR_ALTEON=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_ALTERA_TSE=m
CONFIG_NET_VENDOR_AMAZON=y
CONFIG_ENA_ETHERNET=m
CONFIG_NET_VENDOR_AMD=y
CONFIG_AMD8111_ETH=m
CONFIG_PCNET32=m
CONFIG_PCMCIA_NMCLAN=m
CONFIG_AMD_XGBE=m
CONFIG_AMD_XGBE_DCB=y
CONFIG_AMD_XGBE_HAVE_ECC=y
CONFIG_PDS_CORE=m
CONFIG_NET_VENDOR_AQUANTIA=y
CONFIG_AQTION=m
CONFIG_NET_VENDOR_ARC=y
CONFIG_NET_VENDOR_ASIX=y
CONFIG_SPI_AX88796C=m
CONFIG_SPI_AX88796C_COMPRESSION=y
CONFIG_NET_VENDOR_ATHEROS=y
CONFIG_ATL2=m
CONFIG_ATL1=m
CONFIG_ATL1E=m
CONFIG_ATL1C=m
CONFIG_ALX=m
# CONFIG_CX_ECAT is not set
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI=y
CONFIG_BCMGENET=m
CONFIG_BNX2=m
CONFIG_CNIC=m
CONFIG_TIGON3=m
CONFIG_TIGON3_HWMON=y
CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
# CONFIG_SYSTEMPORT is not set
CONFIG_BNXT=m
CONFIG_BNXT_SRIOV=y
CONFIG_BNXT_FLOWER_OFFLOAD=y
CONFIG_BNXT_DCB=y
CONFIG_BNXT_HWMON=y
CONFIG_NET_VENDOR_CADENCE=y
CONFIG_MACB=m
CONFIG_MACB_USE_HWSTAMP=y
CONFIG_MACB_PCI=m
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T3=m
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4VF=m
CONFIG_CHELSIO_LIB=m
CONFIG_CHELSIO_INLINE_CRYPTO=y
CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_NET_VENDOR_CISCO=y
CONFIG_ENIC=m
# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DAVICOM=y
CONFIG_DM9051=m
CONFIG_DNET=m
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_DE2104X_DSL=0
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
CONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not set
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_NET_VENDOR_DLINK=y
CONFIG_DL2K=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_NET_VENDOR_EMULEX=y
CONFIG_BE2NET=m
# CONFIG_BE2NET_HWMON is not set
CONFIG_BE2NET_BE2=y
CONFIG_BE2NET_BE3=y
CONFIG_BE2NET_LANCER=y
CONFIG_BE2NET_SKYHAWK=y
CONFIG_NET_VENDOR_ENGLEDER=y
CONFIG_TSNEP=m
# CONFIG_TSNEP_SELFTESTS is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
# CONFIG_NET_VENDOR_FUJITSU is not set
CONFIG_NET_VENDOR_FUNGIBLE=y
CONFIG_FUN_CORE=m
CONFIG_FUN_ETH=m
CONFIG_NET_VENDOR_GOOGLE=y
CONFIG_GVE=m
# CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_I825XX is not set
CONFIG_NET_VENDOR_INTEL=y
CONFIG_LIBETH=m
CONFIG_LIBIE=m
CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_E1000E_HWTS=y
CONFIG_IGB=m
CONFIG_IGB_HWMON=y
CONFIG_IGB_DCA=y
CONFIG_IGBVF=m
CONFIG_IXGBE=m
CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE_DCA=y
CONFIG_IXGBE_DCB=y
CONFIG_IXGBE_IPSEC=y
CONFIG_IXGBEVF=m
CONFIG_IXGBEVF_IPSEC=y
CONFIG_I40E=m
# CONFIG_I40E_DCB is not set
CONFIG_IAVF=m
CONFIG_I40EVF=m
CONFIG_ICE=m
CONFIG_ICE_HWMON=y
CONFIG_ICE_SWITCHDEV=y
CONFIG_ICE_HWTS=y
CONFIG_FM10K=m
CONFIG_IGC=m
CONFIG_IGC_LEDS=y
CONFIG_IDPF=m
CONFIG_IDPF_SINGLEQ=y
CONFIG_JME=m
CONFIG_NET_VENDOR_ADI=y
CONFIG_ADIN1110=m
CONFIG_NET_VENDOR_LITEX=y
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_MVMDIO=m
CONFIG_SKGE=m
# CONFIG_SKGE_DEBUG is not set
CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
CONFIG_OCTEON_EP=m
CONFIG_OCTEON_EP_VF=m
CONFIG_PRESTERA=m
CONFIG_PRESTERA_PCI=m
CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_EN_DCB=y
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_MLX4_CORE_GEN2=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_FPGA=y
CONFIG_MLX5_CORE_EN=y
CONFIG_MLX5_EN_ARFS=y
CONFIG_MLX5_EN_RXNFC=y
CONFIG_MLX5_MPFS=y
CONFIG_MLX5_ESWITCH=y
CONFIG_MLX5_BRIDGE=y
CONFIG_MLX5_CLS_ACT=y
CONFIG_MLX5_TC_CT=y
CONFIG_MLX5_TC_SAMPLE=y
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_MACSEC=y
CONFIG_MLX5_EN_IPSEC=y
CONFIG_MLX5_EN_TLS=y
CONFIG_MLX5_SW_STEERING=y
CONFIG_MLX5_SF=y
CONFIG_MLX5_SF_MANAGER=y
CONFIG_MLX5_DPLL=m
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE_THERMAL=y
CONFIG_MLXSW_PCI=m
CONFIG_MLXSW_I2C=m
CONFIG_MLXSW_SPECTRUM=m
CONFIG_MLXSW_SPECTRUM_DCB=y
CONFIG_MLXSW_MINIMAL=m
CONFIG_MLXFW=m
CONFIG_NET_VENDOR_META=y
# CONFIG_FBNIC is not set
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
# CONFIG_KS8851_MLL is not set
CONFIG_KSZ884X_PCI=m
CONFIG_NET_VENDOR_MICROCHIP=y
# CONFIG_ENC28J60 is not set
# CONFIG_ENCX24J600 is not set
CONFIG_LAN743X=m
CONFIG_VCAP=y
# CONFIG_NET_VENDOR_MICROSEMI is not set
CONFIG_NET_VENDOR_MICROSOFT=y
CONFIG_MICROSOFT_MANA=m
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
CONFIG_FEALNX=m
# CONFIG_NET_VENDOR_NI is not set
CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NATSEMI=m
CONFIG_NS83820=m
CONFIG_NET_VENDOR_NETERION=y
CONFIG_S2IO=m
CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NFP=m
CONFIG_NFP_APP_FLOWER=y
# CONFIG_NFP_APP_ABM_NIC is not set
CONFIG_NFP_NET_IPSEC=y
# CONFIG_NFP_DEBUG is not set
CONFIG_NET_VENDOR_8390=y
CONFIG_PCMCIA_AXNET=m
CONFIG_NE2K_PCI=m
CONFIG_PCMCIA_PCNET=m
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_FORCEDETH=m
CONFIG_NET_VENDOR_OKI=y
CONFIG_ETHOC=m
CONFIG_NET_VENDOR_PACKET_ENGINES=y
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_IONIC=m
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_QLA3XXX=m
CONFIG_QLCNIC=m
CONFIG_QLCNIC_SRIOV=y
CONFIG_QLCNIC_DCB=y
CONFIG_QLCNIC_HWMON=y
CONFIG_NETXEN_NIC=m
CONFIG_QED=m
CONFIG_QED_LL2=y
CONFIG_QED_SRIOV=y
CONFIG_QEDE=m
CONFIG_QED_RDMA=y
CONFIG_QED_ISCSI=y
CONFIG_QED_FCOE=y
CONFIG_QED_OOO=y
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
CONFIG_NET_VENDOR_QUALCOMM=y
# CONFIG_QCOM_EMAC is not set
CONFIG_RMNET=m
CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=m
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_ATP=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=m
CONFIG_R8169_LEDS=y
# CONFIG_NET_VENDOR_RENESAS is not set
CONFIG_NET_VENDOR_ROCKER=y
CONFIG_ROCKER=m
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
CONFIG_NET_VENDOR_SILAN=y
CONFIG_SC92031=m
CONFIG_NET_VENDOR_SIS=y
CONFIG_SIS900=m
CONFIG_SIS190=m
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_SFC=m
CONFIG_SFC_MTD=y
CONFIG_SFC_MCDI_MON=y
CONFIG_SFC_SRIOV=y
# CONFIG_SFC_MCDI_LOGGING is not set
CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
CONFIG_SFC_SIENA=m
CONFIG_SFC_SIENA_MTD=y
CONFIG_SFC_SIENA_MCDI_MON=y
CONFIG_SFC_SIENA_SRIOV=y
CONFIG_SFC_SIENA_MCDI_LOGGING=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
CONFIG_SMSC911X=m
CONFIG_SMSC9420=m
# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
# CONFIG_STMMAC_SELFTESTS is not set
# CONFIG_STMMAC_PLATFORM is not set
CONFIG_DWMAC_INTEL=m
# CONFIG_STMMAC_PCI is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NIU=m
# CONFIG_NET_VENDOR_SYNOPSYS is not set
CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
CONFIG_TEHUTI_TN40=m
CONFIG_NET_VENDOR_TI=y
# CONFIG_TI_CPSW_PHY_SEL is not set
CONFIG_TLAN=m
CONFIG_NET_VENDOR_VERTEXCOM=y
CONFIG_MSE102X=m
CONFIG_NET_VENDOR_VIA=y
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
CONFIG_VIA_VELOCITY=m
CONFIG_NET_VENDOR_WANGXUN=y
CONFIG_LIBWX=m
CONFIG_NGBE=m
CONFIG_TXGBE=m
CONFIG_NET_VENDOR_WIZNET=y
CONFIG_WIZNET_W5100=m
CONFIG_WIZNET_W5300=m
# CONFIG_WIZNET_BUS_DIRECT is not set
# CONFIG_WIZNET_BUS_INDIRECT is not set
CONFIG_WIZNET_BUS_ANY=y
CONFIG_WIZNET_W5100_SPI=m
CONFIG_NET_VENDOR_XILINX=y
CONFIG_XILINX_EMACLITE=m
CONFIG_XILINX_LL_TEMAC=m
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=m
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PHYLINK=m
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
CONFIG_LED_TRIGGER_PHY=y
CONFIG_FIXED_PHY=y
CONFIG_SFP=m

#
# MII PHY device drivers
#
CONFIG_AIR_EN8811H_PHY=m
CONFIG_AMD_PHY=m
CONFIG_ADIN_PHY=m
# CONFIG_ADIN1100_PHY is not set
CONFIG_AQUANTIA_PHY=m
CONFIG_AX88796B_PHY=m
CONFIG_BROADCOM_PHY=m
CONFIG_BCM54140_PHY=m
CONFIG_BCM7XXX_PHY=m
# CONFIG_BCM84881_PHY is not set
CONFIG_BCM87XX_PHY=m
CONFIG_BCM_NET_PHYLIB=m
CONFIG_BCM_NET_PHYPTP=m
CONFIG_CICADA_PHY=m
CONFIG_CORTINA_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_ICPLUS_PHY=m
CONFIG_LXT_PHY=m
CONFIG_INTEL_XWAY_PHY=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_MARVELL_10G_PHY=m
CONFIG_MARVELL_88Q2XXX_PHY=m
CONFIG_MARVELL_88X2222_PHY=m
CONFIG_MAXLINEAR_GPHY=m
CONFIG_MEDIATEK_GE_PHY=m
# CONFIG_MEDIATEK_GE_SOC_PHY is not set
CONFIG_MICREL_PHY=m
CONFIG_MICROCHIP_T1S_PHY=m
CONFIG_MICROCHIP_PHY=m
# CONFIG_MICROCHIP_T1_PHY is not set
CONFIG_MICROSEMI_PHY=m
CONFIG_MOTORCOMM_PHY=m
CONFIG_NATIONAL_PHY=m
CONFIG_NXP_CBTX_PHY=m
CONFIG_NXP_C45_TJA11XX_PHY=m
# CONFIG_NXP_TJA11XX_PHY is not set
CONFIG_NCN26000_PHY=m
CONFIG_QCOM_NET_PHYLIB=m
CONFIG_AT803X_PHY=m
CONFIG_QCA83XX_PHY=m
CONFIG_QCA808X_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_REALTEK_PHY=m
# CONFIG_RENESAS_PHY is not set
# CONFIG_ROCKCHIP_PHY is not set
CONFIG_SMSC_PHY=m
CONFIG_STE10XP=m
CONFIG_TERANETICS_PHY=m
CONFIG_DP83822_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DP83848_PHY=m
CONFIG_DP83867_PHY=m
CONFIG_DP83869_PHY=m
# CONFIG_DP83TD510_PHY is not set
CONFIG_DP83TG720_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_XILINX_GMII2RGMII=m
# CONFIG_MICREL_KS8995MA is not set
# CONFIG_PSE_CONTROLLER is not set
CONFIG_CAN_DEV=m
CONFIG_CAN_VCAN=m
CONFIG_CAN_VXCAN=m
CONFIG_CAN_NETLINK=y
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_RX_OFFLOAD=y
CONFIG_CAN_CAN327=m
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_SLCAN=m
# CONFIG_CAN_C_CAN is not set
# CONFIG_CAN_CC770 is not set
CONFIG_CAN_CTUCANFD=m
CONFIG_CAN_CTUCANFD_PCI=m
# CONFIG_CAN_ESD_402_PCI is not set
CONFIG_CAN_IFI_CANFD=m
CONFIG_CAN_M_CAN=m
CONFIG_CAN_M_CAN_PCI=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_PEAK_PCIEFD=m
# CONFIG_CAN_SJA1000 is not set
# CONFIG_CAN_SOFTING is not set

#
# CAN SPI interfaces
#
CONFIG_CAN_HI311X=m
CONFIG_CAN_MCP251X=m
CONFIG_CAN_MCP251XFD=m
# CONFIG_CAN_MCP251XFD_SANITY is not set
# end of CAN SPI interfaces

#
# CAN USB interfaces
#
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB=m
# CONFIG_CAN_ETAS_ES58X is not set
CONFIG_CAN_F81604=m
CONFIG_CAN_GS_USB=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_MCBA_USB=m
CONFIG_CAN_PEAK_USB=m
# CONFIG_CAN_UCAN is not set
# end of CAN USB interfaces

# CONFIG_CAN_DEBUG_DEVICES is not set

#
# MCTP Device Drivers
#
CONFIG_MCTP_SERIAL=m
# CONFIG_MCTP_TRANSPORT_I2C is not set
# end of MCTP Device Drivers

CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_BUS=y
CONFIG_FWNODE_MDIO=y
CONFIG_ACPI_MDIO=y
CONFIG_MDIO_DEVRES=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_BCM_UNIMAC=m
# CONFIG_MDIO_GPIO is not set
CONFIG_MDIO_I2C=m
CONFIG_MDIO_MVUSB=m
# CONFIG_MDIO_MSCC_MIIM is not set
CONFIG_MDIO_REGMAP=m
# CONFIG_MDIO_THUNDER is not set

#
# MDIO Multiplexers
#

#
# PCS device drivers
#
CONFIG_PCS_XPCS=m
CONFIG_PCS_LYNX=m
CONFIG_PCS_MTK_LYNXI=m
# end of PCS device drivers

# CONFIG_PLIP is not set
CONFIG_PPP=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_FILTER=y
CONFIG_PPP_MPPE=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPPOATM=m
CONFIG_PPPOE=m
# CONFIG_PPPOE_HASH_BITS_1 is not set
# CONFIG_PPPOE_HASH_BITS_2 is not set
CONFIG_PPPOE_HASH_BITS_4=y
# CONFIG_PPPOE_HASH_BITS_8 is not set
CONFIG_PPPOE_HASH_BITS=4
CONFIG_PPTP=m
CONFIG_PPPOL2TP=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_SLIP=m
CONFIG_SLHC=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not set
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
CONFIG_USB_LAN78XX=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_CDC_EEM=m
CONFIG_USB_NET_CDC_NCM=m
CONFIG_USB_NET_HUAWEI_CDC_NCM=m
CONFIG_USB_NET_CDC_MBIM=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_SR9700=m
# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_SMSC75XX=m
CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
CONFIG_USB_NET_RNDIS_HOST=m
CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
CONFIG_USB_NET_CDC_SUBSET=m
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_NET_CX82310_ETH=m
CONFIG_USB_NET_KALMIA=m
CONFIG_USB_NET_QMI_WWAN=m
CONFIG_USB_HSO=m
CONFIG_USB_NET_INT51X1=m
CONFIG_USB_IPHETH=m
CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
CONFIG_USB_NET_CH9200=m
CONFIG_USB_NET_AQC111=m
CONFIG_USB_RTL8153_ECM=m
CONFIG_WLAN=y
# CONFIG_WLAN_VENDOR_ADMTEK is not set
CONFIG_ATH_COMMON=m
CONFIG_WLAN_VENDOR_ATH=y
# CONFIG_ATH_DEBUG is not set
CONFIG_ATH5K=m
CONFIG_ATH5K_DEBUG=y
# CONFIG_ATH5K_TRACER is not set
CONFIG_ATH5K_PCI=y
CONFIG_ATH9K_HW=m
CONFIG_ATH9K_COMMON=m
CONFIG_ATH9K_COMMON_DEBUG=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K=m
CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_DYNACK is not set
# CONFIG_ATH9K_WOW is not set
CONFIG_ATH9K_RFKILL=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
CONFIG_ATH9K_PCOEM=y
CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HTC_DEBUGFS is not set
# CONFIG_ATH9K_HWRNG is not set
# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_CARL9170=m
CONFIG_CARL9170_LEDS=y
# CONFIG_CARL9170_DEBUGFS is not set
CONFIG_CARL9170_WPC=y
# CONFIG_CARL9170_HWRNG is not set
CONFIG_ATH6KL=m
CONFIG_ATH6KL_SDIO=m
CONFIG_ATH6KL_USB=m
CONFIG_ATH6KL_DEBUG=y
# CONFIG_ATH6KL_TRACING is not set
CONFIG_AR5523=m
CONFIG_WIL6210=m
CONFIG_WIL6210_ISR_COR=y
# CONFIG_WIL6210_TRACING is not set
CONFIG_WIL6210_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_CE=y
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
CONFIG_ATH10K_USB=m
# CONFIG_ATH10K_DEBUG is not set
CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K_LEDS=y
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_WCN36XX=m
# CONFIG_WCN36XX_DEBUGFS is not set
CONFIG_ATH11K=m
# CONFIG_ATH11K_AHB is not set
CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_DEBUG is not set
# CONFIG_ATH11K_DEBUGFS is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH12K=m
# CONFIG_ATH12K_DEBUG is not set
# CONFIG_ATH12K_DEBUGFS is not set
# CONFIG_ATH12K_TRACING is not set
# CONFIG_WLAN_VENDOR_ATMEL is not set
CONFIG_WLAN_VENDOR_BROADCOM=y
CONFIG_B43=m
CONFIG_B43_BCMA=y
CONFIG_B43_SSB=y
CONFIG_B43_BUSES_BCMA_AND_SSB=y
# CONFIG_B43_BUSES_BCMA is not set
# CONFIG_B43_BUSES_SSB is not set
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_SDIO=y
CONFIG_B43_BCMA_PIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_G=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
CONFIG_B43_PHY_HT=y
CONFIG_B43_LEDS=y
CONFIG_B43_HWRNG=y
# CONFIG_B43_DEBUG is not set
CONFIG_B43LEGACY=m
CONFIG_B43LEGACY_PCI_AUTOSELECT=y
CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
CONFIG_B43LEGACY_LEDS=y
CONFIG_B43LEGACY_HWRNG=y
# CONFIG_B43LEGACY_DEBUG is not set
CONFIG_B43LEGACY_DMA=y
CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not set
CONFIG_BRCMUTIL=m
CONFIG_BRCMSMAC=m
CONFIG_BRCMSMAC_LEDS=y
CONFIG_BRCMFMAC=m
CONFIG_BRCMFMAC_PROTO_BCDC=y
CONFIG_BRCMFMAC_PROTO_MSGBUF=y
CONFIG_BRCMFMAC_SDIO=y
CONFIG_BRCMFMAC_USB=y
CONFIG_BRCMFMAC_PCIE=y
# CONFIG_BRCM_TRACING is not set
# CONFIG_BRCMDBG is not set
CONFIG_WLAN_VENDOR_INTEL=y
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
CONFIG_IWLEGACY=m
CONFIG_IWL4965=m
CONFIG_IWL3945=m

#
# iwl3945 / iwl4965 Debugging Options
#
CONFIG_IWLEGACY_DEBUG=y
CONFIG_IWLEGACY_DEBUGFS=y
# end of iwl3945 / iwl4965 Debugging Options

CONFIG_IWLWIFI=m
CONFIG_IWLWIFI_KUNIT_TESTS=m
CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y

#
# Debugging Options
#
CONFIG_IWLWIFI_DEBUG=y
CONFIG_IWLWIFI_DEBUGFS=y
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
# end of Debugging Options

# CONFIG_WLAN_VENDOR_INTERSIL is not set
CONFIG_WLAN_VENDOR_MARVELL=y
# CONFIG_LIBERTAS is not set
CONFIG_LIBERTAS_THINFIRM=m
# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
CONFIG_LIBERTAS_THINFIRM_USB=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m
CONFIG_MWIFIEX_PCIE=m
CONFIG_MWIFIEX_USB=m
CONFIG_MWL8K=m
CONFIG_WLAN_VENDOR_MEDIATEK=y
CONFIG_MT7601U=m
CONFIG_MT76_CORE=m
CONFIG_MT76_LEDS=y
CONFIG_MT76_USB=m
CONFIG_MT76_SDIO=m
CONFIG_MT76x02_LIB=m
CONFIG_MT76x02_USB=m
CONFIG_MT76_CONNAC_LIB=m
CONFIG_MT792x_LIB=m
CONFIG_MT792x_USB=m
CONFIG_MT76x0_COMMON=m
CONFIG_MT76x0U=m
CONFIG_MT76x0E=m
CONFIG_MT76x2_COMMON=m
CONFIG_MT76x2E=m
CONFIG_MT76x2U=m
CONFIG_MT7603E=m
CONFIG_MT7615_COMMON=m
CONFIG_MT7615E=m
CONFIG_MT7663_USB_SDIO_COMMON=m
CONFIG_MT7663U=m
CONFIG_MT7663S=m
CONFIG_MT7915E=m
CONFIG_MT7921_COMMON=m
CONFIG_MT7921E=m
CONFIG_MT7921S=m
CONFIG_MT7921U=m
CONFIG_MT7996E=m
CONFIG_MT7925_COMMON=m
CONFIG_MT7925E=m
CONFIG_MT7925U=m
CONFIG_WLAN_VENDOR_MICROCHIP=y
# CONFIG_WILC1000_SDIO is not set
# CONFIG_WILC1000_SPI is not set
# CONFIG_WLAN_VENDOR_PURELIFI is not set
CONFIG_WLAN_VENDOR_RALINK=y
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
CONFIG_RT2500PCI=m
CONFIG_RT61PCI=m
CONFIG_RT2800PCI=m
CONFIG_RT2800PCI_RT33XX=y
CONFIG_RT2800PCI_RT35XX=y
CONFIG_RT2800PCI_RT53XX=y
CONFIG_RT2800PCI_RT3290=y
CONFIG_RT2500USB=m
CONFIG_RT73USB=m
CONFIG_RT2800USB=m
CONFIG_RT2800USB_RT33XX=y
CONFIG_RT2800USB_RT35XX=y
CONFIG_RT2800USB_RT3573=y
CONFIG_RT2800USB_RT53XX=y
CONFIG_RT2800USB_RT55XX=y
CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RT2800_LIB=m
CONFIG_RT2800_LIB_MMIO=m
CONFIG_RT2X00_LIB_MMIO=m
CONFIG_RT2X00_LIB_PCI=m
CONFIG_RT2X00_LIB_USB=m
CONFIG_RT2X00_LIB=m
CONFIG_RT2X00_LIB_FIRMWARE=y
CONFIG_RT2X00_LIB_CRYPTO=y
CONFIG_RT2X00_LIB_LEDS=y
CONFIG_RT2X00_LIB_DEBUGFS=y
# CONFIG_RT2X00_DEBUG is not set
CONFIG_WLAN_VENDOR_REALTEK=y
CONFIG_RTL8180=m
CONFIG_RTL8187=m
CONFIG_RTL8187_LEDS=y
CONFIG_RTL_CARDS=m
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
CONFIG_RTL8192DE=m
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
CONFIG_RTL8188EE=m
CONFIG_RTL8192EE=m
CONFIG_RTL8821AE=m
# CONFIG_RTL8192CU is not set
CONFIG_RTL8192DU=m
CONFIG_RTLWIFI=m
CONFIG_RTLWIFI_PCI=m
CONFIG_RTLWIFI_USB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTL8192C_COMMON=m
CONFIG_RTL8192D_COMMON=m
CONFIG_RTL8723_COMMON=m
CONFIG_RTLBTCOEXIST=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
CONFIG_RTW88=m
CONFIG_RTW88_CORE=m
CONFIG_RTW88_PCI=m
CONFIG_RTW88_SDIO=m
CONFIG_RTW88_USB=m
CONFIG_RTW88_8822B=m
CONFIG_RTW88_8822C=m
CONFIG_RTW88_8723X=m
CONFIG_RTW88_8703B=m
CONFIG_RTW88_8723D=m
CONFIG_RTW88_8821C=m
CONFIG_RTW88_8822BE=m
CONFIG_RTW88_8822BS=m
CONFIG_RTW88_8822BU=m
CONFIG_RTW88_8822CE=m
CONFIG_RTW88_8822CS=m
CONFIG_RTW88_8822CU=m
CONFIG_RTW88_8723DE=m
CONFIG_RTW88_8723DS=m
CONFIG_RTW88_8723CS=m
CONFIG_RTW88_8723DU=m
CONFIG_RTW88_8821CE=m
CONFIG_RTW88_8821CS=m
CONFIG_RTW88_8821CU=m
# CONFIG_RTW88_DEBUG is not set
# CONFIG_RTW88_DEBUGFS is not set
CONFIG_RTW89=m
CONFIG_RTW89_CORE=m
CONFIG_RTW89_PCI=m
CONFIG_RTW89_8851B=m
CONFIG_RTW89_8852A=m
CONFIG_RTW89_8852B_COMMON=m
CONFIG_RTW89_8852B=m
CONFIG_RTW89_8852C=m
CONFIG_RTW89_8922A=m
CONFIG_RTW89_8851BE=m
CONFIG_RTW89_8852AE=m
CONFIG_RTW89_8852BE=m
CONFIG_RTW89_8852CE=m
CONFIG_RTW89_8922AE=m
# CONFIG_RTW89_DEBUGMSG is not set
# CONFIG_RTW89_DEBUGFS is not set
CONFIG_WLAN_VENDOR_RSI=y
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
CONFIG_RSI_SDIO=m
CONFIG_RSI_USB=m
CONFIG_RSI_COEX=y
# CONFIG_WLAN_VENDOR_SILABS is not set
CONFIG_WLAN_VENDOR_ST=y
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
CONFIG_CW1200_WLAN_SPI=m
CONFIG_WLAN_VENDOR_TI=y
CONFIG_WL1251=m
CONFIG_WL1251_SPI=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX=m
CONFIG_WL18XX=m
CONFIG_WLCORE=m
CONFIG_WLCORE_SDIO=m
CONFIG_WLAN_VENDOR_ZYDAS=y
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_WLAN_VENDOR_QUANTENNA=y
CONFIG_QTNFMAC=m
CONFIG_QTNFMAC_PCIE=m
CONFIG_MAC80211_HWSIM=m
CONFIG_VIRT_WIFI=m
# CONFIG_WAN is not set
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_MRF24J40=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_ATUSB=m
CONFIG_IEEE802154_ADF7242=m
CONFIG_IEEE802154_CA8210=m
# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
CONFIG_IEEE802154_MCR20A=m
# CONFIG_IEEE802154_HWSIM is not set

#
# Wireless WAN
#
CONFIG_WWAN=y
CONFIG_WWAN_DEBUGFS=y
CONFIG_WWAN_HWSIM=m
CONFIG_MHI_WWAN_CTRL=m
CONFIG_MHI_WWAN_MBIM=m
CONFIG_IOSM=m
CONFIG_MTK_T7XX=m
# end of Wireless WAN

CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
CONFIG_FUJITSU_ES=m
CONFIG_USB4_NET=m
CONFIG_HYPERV_NET=m
CONFIG_NETDEVSIM=m
CONFIG_NET_FAILOVER=m
# CONFIG_ISDN is not set

#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=y
CONFIG_INPUT_FF_MEMLESS=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m
CONFIG_INPUT_VIVALDIFMAP=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
CONFIG_INPUT_KUNIT_TEST=m

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not set
CONFIG_KEYBOARD_APPLESPI=m
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_QT1050=m
CONFIG_KEYBOARD_QT1070=m
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=m
CONFIG_KEYBOARD_GPIO_POLLED=m
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_PINEPHONE is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_TM2_TOUCHKEY=m
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_KEYBOARD_CROS_EC=m
CONFIG_KEYBOARD_CYPRESS_SF=m
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
CONFIG_MOUSE_PS2_SENTELIC=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
CONFIG_MOUSE_PS2_FOCALTECH=y
CONFIG_MOUSE_PS2_VMMOUSE=y
CONFIG_MOUSE_PS2_SMBUS=y
CONFIG_MOUSE_SERIAL=m
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_MOUSE_BCM5974=m
CONFIG_MOUSE_CYAPA=m
CONFIG_MOUSE_ELAN_I2C=m
CONFIG_MOUSE_ELAN_I2C_I2C=y
CONFIG_MOUSE_ELAN_I2C_SMBUS=y
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOUSE_GPIO is not set
CONFIG_MOUSE_SYNAPTICS_I2C=m
CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_IFORCE_232=m
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
CONFIG_JOYSTICK_TWIDJOY=m
CONFIG_JOYSTICK_ZHENHUA=m
CONFIG_JOYSTICK_DB9=m
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_TURBOGRAFX=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_WALKERA0701=m
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_QWIIC=m
# CONFIG_JOYSTICK_FSIA6B is not set
# CONFIG_JOYSTICK_SENSEHAT is not set
# CONFIG_JOYSTICK_SEESAW is not set
CONFIG_INPUT_TABLET=y
CONFIG_TABLET_USB_ACECAD=m
CONFIG_TABLET_USB_AIPTEK=m
CONFIG_TABLET_USB_HANWANG=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_USB_PEGASUS=m
CONFIG_TABLET_SERIAL_WACOM4=m
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_ADC is not set
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
# CONFIG_TOUCHSCREEN_BU21013 is not set
# CONFIG_TOUCHSCREEN_BU21029 is not set
CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
CONFIG_TOUCHSCREEN_CY8CTMA140=m
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
CONFIG_TOUCHSCREEN_CYTTSP5=m
CONFIG_TOUCHSCREEN_DYNAPRO=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
CONFIG_TOUCHSCREEN_EETI=m
CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
# CONFIG_TOUCHSCREEN_EXC3000 is not set
CONFIG_TOUCHSCREEN_FUJITSU=m
CONFIG_TOUCHSCREEN_GOODIX=m
# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set
# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=m
CONFIG_TOUCHSCREEN_ILI210X=m
CONFIG_TOUCHSCREEN_ILITEK=m
# CONFIG_TOUCHSCREEN_S6SY761 is not set
CONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_WACOM_W8001=m
CONFIG_TOUCHSCREEN_WACOM_I2C=m
# CONFIG_TOUCHSCREEN_MAX11801 is not set
CONFIG_TOUCHSCREEN_MCS5000=m
CONFIG_TOUCHSCREEN_MMS114=m
# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
CONFIG_TOUCHSCREEN_MSG2638=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS=m
CONFIG_TOUCHSCREEN_IMAGIS=m
CONFIG_TOUCHSCREEN_INEXIO=m
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_PIXCIR=m
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
CONFIG_TOUCHSCREEN_USB_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y
CONFIG_TOUCHSCREEN_USB_3M=y
CONFIG_TOUCHSCREEN_USB_ITM=y
CONFIG_TOUCHSCREEN_USB_ETURBO=y
CONFIG_TOUCHSCREEN_USB_GUNZE=y
CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
CONFIG_TOUCHSCREEN_USB_GOTOP=y
CONFIG_TOUCHSCREEN_USB_JASTEC=y
CONFIG_TOUCHSCREEN_USB_ELO=y
CONFIG_TOUCHSCREEN_USB_E2I=y
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_RM_TS=m
CONFIG_TOUCHSCREEN_SILEAD=m
CONFIG_TOUCHSCREEN_SIS_I2C=m
CONFIG_TOUCHSCREEN_ST1232=m
# CONFIG_TOUCHSCREEN_STMFTS is not set
# CONFIG_TOUCHSCREEN_SUR40 is not set
CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
# CONFIG_TOUCHSCREEN_SX8654 is not set
# CONFIG_TOUCHSCREEN_TPS6507X is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
CONFIG_TOUCHSCREEN_IQS5XX=m
CONFIG_TOUCHSCREEN_IQS7211=m
CONFIG_TOUCHSCREEN_ZINITIX=m
CONFIG_TOUCHSCREEN_HIMAX_HX83112B=m
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_ARIZONA_HAPTICS is not set
# CONFIG_INPUT_BMA150 is not set
CONFIG_INPUT_CS40L50_VIBRA=m
CONFIG_INPUT_E3X0_BUTTON=m
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_MMA8450 is not set
CONFIG_INPUT_APANEL=m
# CONFIG_INPUT_GPIO_BEEPER is not set
# CONFIG_INPUT_GPIO_DECODER is not set
CONFIG_INPUT_GPIO_VIBRA=m
CONFIG_INPUT_ATLAS_BTNS=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
CONFIG_INPUT_KXTJ9=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_AXP20X_PEK=m
CONFIG_INPUT_UINPUT=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
# CONFIG_INPUT_DA7280_HAPTICS is not set
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_IBM_PANEL is not set
# CONFIG_INPUT_IMS_PCU is not set
CONFIG_INPUT_IQS269A=m
CONFIG_INPUT_IQS626A=m
CONFIG_INPUT_IQS7222=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
# CONFIG_INPUT_DRV260X_HAPTICS is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not set
CONFIG_INPUT_RT5120_PWRKEY=m
CONFIG_RMI4_CORE=m
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SPI=m
CONFIG_RMI4_SMB=m
CONFIG_RMI4_F03=y
CONFIG_RMI4_F03_SERIO=m
CONFIG_RMI4_2D_SENSOR=y
CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
CONFIG_SERIO_ALTERA_PS2=m
# CONFIG_SERIO_PS2MULT is not set
CONFIG_SERIO_ARC_PS2=m
CONFIG_HYPERV_KEYBOARD=m
# CONFIG_SERIO_GPIO_PS2 is not set
# CONFIG_USERIO is not set
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_EMU10K1=m
CONFIG_GAMEPORT_FM801=m
# end of Hardware I/O ports
# end of Input device support

#
# Character devices
#
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_LEGACY_TIOCSTI is not set
CONFIG_LDISC_AUTOLOAD=y

#
# Serial drivers
#
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
CONFIG_SERIAL_8250_PNP=y
# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
# CONFIG_SERIAL_8250_FINTEK is not set
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DMA=y
CONFIG_SERIAL_8250_PCILIB=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_EXAR=m
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=32
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_PCI1XXXX=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_DWLIB=y
CONFIG_SERIAL_8250_DFL=m
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_RT288X=y
CONFIG_SERIAL_8250_LPSS=m
CONFIG_SERIAL_8250_MID=y
CONFIG_SERIAL_8250_PERICOM=y

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_KGDB_NMI is not set
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_CONSOLE_POLL=y
CONFIG_SERIAL_JSM=m
# CONFIG_SERIAL_LANTIQ is not set
# CONFIG_SERIAL_SCCNXP is not set
CONFIG_SERIAL_SC16IS7XX=m
CONFIG_SERIAL_SC16IS7XX_I2C=m
CONFIG_SERIAL_SC16IS7XX_SPI=m
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
CONFIG_SERIAL_ARC=m
CONFIG_SERIAL_ARC_NR_PORTS=1
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_SPRD is not set
# end of Serial drivers

CONFIG_SERIAL_MCTRL_GPIO=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
CONFIG_N_HDLC=m
CONFIG_IPWIRELESS=m
CONFIG_N_GSM=m
CONFIG_NOZOMI=m
CONFIG_NULL_TTY=m
CONFIG_HVC_DRIVER=y
CONFIG_HVC_IRQ=y
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
# CONFIG_TTY_PRINTK is not set
CONFIG_PRINTER=m
CONFIG_LP_CONSOLE=y
CONFIG_PPDEV=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_DMI_DECODE=y
CONFIG_IPMI_PLAT_DATA=y
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_SSIF=m
CONFIG_IPMI_IPMB=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_SSIF_IPMI_BMC=m
# CONFIG_IPMB_DEVICE_INTERFACE is not set
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
# CONFIG_HW_RANDOM_BA431 is not set
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_HW_RANDOM_XIPHERA=m
# CONFIG_APPLICOM is not set
CONFIG_MWAVE=m
CONFIG_DEVMEM=y
CONFIG_NVRAM=y
CONFIG_DEVPORT=y
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_HANGCHECK_TIMER=m
CONFIG_UV_MMTIMER=m
CONFIG_TCG_TPM=y
CONFIG_TCG_TPM2_HMAC=y
CONFIG_HW_RANDOM_TPM=y
CONFIG_TCG_TIS_CORE=y
CONFIG_TCG_TIS=y
CONFIG_TCG_TIS_SPI=m
CONFIG_TCG_TIS_SPI_CR50=y
CONFIG_TCG_TIS_I2C=m
CONFIG_TCG_TIS_I2C_CR50=m
CONFIG_TCG_TIS_I2C_ATMEL=m
CONFIG_TCG_TIS_I2C_INFINEON=m
CONFIG_TCG_TIS_I2C_NUVOTON=m
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
# CONFIG_TCG_XEN is not set
CONFIG_TCG_CRB=y
CONFIG_TCG_VTPM_PROXY=m
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
CONFIG_TELCLOCK=m
CONFIG_XILLYBUS_CLASS=m
CONFIG_XILLYBUS=m
CONFIG_XILLYBUS_PCIE=m
CONFIG_XILLYUSB=m
# end of Character devices

#
# I2C support
#
CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX=m

#
# Multiplexer I2C Chip support
#
# CONFIG_I2C_MUX_GPIO is not set
CONFIG_I2C_MUX_LTC4306=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
CONFIG_I2C_MUX_MLXCPLD=m
# end of Multiplexer I2C Chip support

CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCA=m

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
CONFIG_I2C_CCGX_UCSI=y
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_AMD_MP2=m
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_CHT_WC=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_NVIDIA_GPU=m
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
CONFIG_I2C_SIS96X=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_ZHAOXIN=m

#
# ACPI drivers
#
CONFIG_I2C_SCMI=m

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
CONFIG_I2C_DESIGNWARE_PCI=y
# CONFIG_I2C_EMEV2 is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
CONFIG_I2C_PCA_PLATFORM=m
CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_XILINX is not set

#
# External I2C/SMBus adapter drivers
#
CONFIG_I2C_DIOLAN_U2C=m
CONFIG_I2C_DLN2=m
CONFIG_I2C_LJCA=m
CONFIG_I2C_CP2615=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PCI1XXXX=m
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
# CONFIG_I2C_TAOS_EVM is not set
CONFIG_I2C_TINY_USB=m

#
# Other I2C/SMBus bus drivers
#
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_CROS_EC_TUNNEL=m
CONFIG_I2C_VIRTIO=m
# end of I2C Hardware Bus support

CONFIG_I2C_STUB=m
CONFIG_I2C_SLAVE=y
CONFIG_I2C_SLAVE_EEPROM=m
# CONFIG_I2C_SLAVE_TESTUNIT is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# end of I2C support

# CONFIG_I3C is not set
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
CONFIG_SPI_MEM=y

#
# SPI Master Controller Drivers
#
# CONFIG_SPI_ALTERA is not set
CONFIG_SPI_ALTERA_CORE=m
CONFIG_SPI_ALTERA_DFL=m
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
# CONFIG_SPI_CADENCE is not set
CONFIG_SPI_CH341=m
CONFIG_SPI_CS42L43=m
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_DLN2=m
# CONFIG_SPI_GPIO is not set
CONFIG_SPI_INTEL=m
CONFIG_SPI_INTEL_PCI=m
# CONFIG_SPI_INTEL_PLATFORM is not set
# CONFIG_SPI_LM70_LLP is not set
CONFIG_SPI_LJCA=m
CONFIG_SPI_MICROCHIP_CORE=m
CONFIG_SPI_MICROCHIP_CORE_QSPI=m
# CONFIG_SPI_LANTIQ_SSC is not set
# CONFIG_SPI_OC_TINY is not set
CONFIG_SPI_PCI1XXXX=m
CONFIG_SPI_PXA2XX=m
CONFIG_SPI_PXA2XX_PCI=m
# CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_SIFIVE is not set
# CONFIG_SPI_MXIC is not set
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPI_AMD=y

#
# SPI Multiplexer support
#
CONFIG_SPI_MUX=m

#
# SPI Protocol Masters
#
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_LOOPBACK_TEST is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPI_SLAVE is not set
CONFIG_SPI_DYNAMIC=y
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set

#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PPS_CLIENT_GPIO=m

#
# PPS generators support
#

#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
CONFIG_DP83640_PHY=m
# CONFIG_PTP_1588_CLOCK_INES is not set
CONFIG_PTP_1588_CLOCK_KVM=m
CONFIG_PTP_1588_CLOCK_IDT82P33=m
CONFIG_PTP_1588_CLOCK_IDTCM=m
CONFIG_PTP_1588_CLOCK_FC3W=m
CONFIG_PTP_1588_CLOCK_MOCK=m
CONFIG_PTP_1588_CLOCK_VMW=m
# CONFIG_PTP_1588_CLOCK_OCP is not set
CONFIG_PTP_DFL_TOD=m
# end of PTP clock support

CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PINCONF=y
CONFIG_GENERIC_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set
CONFIG_PINCTRL_AMD=y
CONFIG_PINCTRL_CY8C95X0=m
# CONFIG_PINCTRL_MCP23S08 is not set
# CONFIG_PINCTRL_SX150X is not set
CONFIG_PINCTRL_CS42L43=m

#
# Intel pinctrl drivers
#
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_CHERRYVIEW=y
CONFIG_PINCTRL_LYNXPOINT=m
CONFIG_PINCTRL_INTEL=y
CONFIG_PINCTRL_INTEL_PLATFORM=m
CONFIG_PINCTRL_ALDERLAKE=m
CONFIG_PINCTRL_BROXTON=m
CONFIG_PINCTRL_CANNONLAKE=m
CONFIG_PINCTRL_CEDARFORK=m
CONFIG_PINCTRL_DENVERTON=m
CONFIG_PINCTRL_ELKHARTLAKE=m
CONFIG_PINCTRL_EMMITSBURG=m
CONFIG_PINCTRL_GEMINILAKE=m
CONFIG_PINCTRL_ICELAKE=m
CONFIG_PINCTRL_JASPERLAKE=m
CONFIG_PINCTRL_LAKEFIELD=m
CONFIG_PINCTRL_LEWISBURG=m
CONFIG_PINCTRL_METEORLAKE=m
CONFIG_PINCTRL_METEORPOINT=m
CONFIG_PINCTRL_SUNRISEPOINT=m
CONFIG_PINCTRL_TIGERLAKE=m
# end of Intel pinctrl drivers

#
# Renesas pinctrl drivers
#
# end of Renesas pinctrl drivers

CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_FASTPATH_LIMIT=512
CONFIG_GPIO_ACPI=y
CONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set
CONFIG_GPIO_CDEV=y
CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_GENERIC=m
CONFIG_GPIO_REGMAP=m
CONFIG_GPIO_SWNODE_UNDEFINED=y
CONFIG_GPIO_IDIO_16=m

#
# Memory mapped GPIO drivers
#
CONFIG_GPIO_AMDPT=m
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_GENERIC_PLATFORM is not set
CONFIG_GPIO_GRANITERAPIDS=m
CONFIG_GPIO_ICH=m
# CONFIG_GPIO_MB86S7X is not set
CONFIG_GPIO_TANGIER=m
CONFIG_GPIO_AMD_FCH=m
# end of Memory mapped GPIO drivers

#
# Port-mapped I/O GPIO drivers
#
# CONFIG_GPIO_VX855 is not set
# CONFIG_GPIO_F7188X is not set
CONFIG_GPIO_IT87=m
# CONFIG_GPIO_SCH is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_WINBOND is not set
# CONFIG_GPIO_WS16C48 is not set
# end of Port-mapped I/O GPIO drivers

#
# I2C GPIO expanders
#
CONFIG_GPIO_FXL6408=m
CONFIG_GPIO_DS4520=m
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
CONFIG_GPIO_PCA953X=m
# CONFIG_GPIO_PCA953X_IRQ is not set
# CONFIG_GPIO_PCA9570 is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_TPIC2810 is not set
# end of I2C GPIO expanders

#
# MFD GPIO expanders
#
CONFIG_GPIO_ARIZONA=m
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CROS_EC=m
CONFIG_GPIO_CRYSTAL_COVE=y
CONFIG_GPIO_DLN2=m
CONFIG_GPIO_ELKHARTLAKE=m
CONFIG_GPIO_LJCA=m
CONFIG_GPIO_TPS68470=m
CONFIG_GPIO_WHISKEY_COVE=m
# end of MFD GPIO expanders

#
# PCI GPIO expanders
#
# CONFIG_GPIO_AMD8111 is not set
# CONFIG_GPIO_ML_IOH is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PCIE_IDIO_24 is not set
# CONFIG_GPIO_RDC321X is not set
# end of PCI GPIO expanders

#
# SPI GPIO expanders
#
# CONFIG_GPIO_MAX3191X is not set
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_XRA1403 is not set
# end of SPI GPIO expanders

#
# USB GPIO expanders
#
# end of USB GPIO expanders

#
# Virtual GPIO drivers
#
CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_LATCH is not set
# CONFIG_GPIO_MOCKUP is not set
CONFIG_GPIO_VIRTIO=m
CONFIG_GPIO_SIM=m
# end of Virtual GPIO drivers

#
# GPIO Debugging utilities
#
# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set
CONFIG_GPIO_VIRTUSER=m
# end of GPIO Debugging utilities

CONFIG_W1=m
CONFIG_W1_CON=y

#
# 1-wire Bus Masters
#
# CONFIG_W1_MASTER_AMD_AXI is not set
# CONFIG_W1_MASTER_MATROX is not set
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_MASTER_UART=m
# end of 1-wire Bus Masters

#
# 1-wire Slaves
#
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2408=m
# CONFIG_W1_SLAVE_DS2408_READBACK is not set
CONFIG_W1_SLAVE_DS2413=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2805=m
CONFIG_W1_SLAVE_DS2430=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2438=m
# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS28E04=m
# CONFIG_W1_SLAVE_DS28E17 is not set
# end of 1-wire Slaves

CONFIG_POWER_RESET=y
# CONFIG_POWER_RESET_RESTART is not set
CONFIG_POWER_SEQUENCING=m
CONFIG_POWER_SEQUENCING_QCOM_WCN=m
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
# CONFIG_GENERIC_ADC_BATTERY is not set
# CONFIG_IP5XXX_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_CHARGER_ADP5061 is not set
CONFIG_BATTERY_CW2015=m
# CONFIG_BATTERY_DS2760 is not set
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
CONFIG_BATTERY_SAMSUNG_SDI=y
# CONFIG_BATTERY_SBS is not set
# CONFIG_CHARGER_SBS is not set
# CONFIG_MANAGER_SBS is not set
CONFIG_BATTERY_BQ27XXX=m
CONFIG_BATTERY_BQ27XXX_I2C=m
# CONFIG_BATTERY_BQ27XXX_HDQ is not set
# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
# CONFIG_AXP20X_POWER is not set
CONFIG_AXP288_CHARGER=m
CONFIG_AXP288_FUEL_GAUGE=m
# CONFIG_BATTERY_MAX17040 is not set
CONFIG_BATTERY_MAX17042=m
CONFIG_BATTERY_MAX1720X=m
# CONFIG_BATTERY_MAX1721X is not set
# CONFIG_CHARGER_ISP1704 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_MANAGER is not set
CONFIG_CHARGER_LT3651=m
CONFIG_CHARGER_LTC4162L=m
CONFIG_CHARGER_MAX77976=m
# CONFIG_CHARGER_BQ2415X is not set
CONFIG_CHARGER_BQ24190=m
# CONFIG_CHARGER_BQ24257 is not set
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
CONFIG_CHARGER_BQ25890=m
# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_BQ256XX=m
CONFIG_CHARGER_SMB347=m
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_BATTERY_GOLDFISH is not set
CONFIG_BATTERY_RT5033=m
# CONFIG_CHARGER_RT9455 is not set
CONFIG_CHARGER_RT9467=m
CONFIG_CHARGER_RT9471=m
CONFIG_CHARGER_CROS_USBPD=m
CONFIG_CHARGER_CROS_PCHG=m
CONFIG_CHARGER_CROS_CONTROL=m
CONFIG_CHARGER_BD99954=m
CONFIG_BATTERY_SURFACE=m
CONFIG_CHARGER_SURFACE=m
CONFIG_BATTERY_UG3105=m
CONFIG_FUEL_GAUGE_MM8013=m
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Native drivers
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADT7X10=m
CONFIG_SENSORS_ADT7310=m
CONFIG_SENSORS_ADT7410=m
CONFIG_SENSORS_ADT7411=m
CONFIG_SENSORS_ADT7462=m
CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
# CONFIG_SENSORS_AHT10 is not set
CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m
# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASUS_ROG_RYUJIN=m
CONFIG_SENSORS_AXI_FAN_CONTROL=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_K10TEMP=m
CONFIG_SENSORS_FAM15H_POWER=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_CHIPCAP2=m
CONFIG_SENSORS_CORSAIR_CPRO=m
CONFIG_SENSORS_CORSAIR_PSU=m
CONFIG_SENSORS_CROS_EC=m
CONFIG_SENSORS_DRIVETEMP=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_DELL_SMM=m
# CONFIG_I8K is not set
CONFIG_SENSORS_I5K_AMB=m
CONFIG_SENSORS_F71805F=m
CONFIG_SENSORS_F71882FG=m
CONFIG_SENSORS_F75375S=m
CONFIG_SENSORS_FSCHMD=m
CONFIG_SENSORS_FTSTEUTATES=m
CONFIG_SENSORS_GIGABYTE_WATERFORCE=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_G762=m
# CONFIG_SENSORS_HIH6130 is not set
CONFIG_SENSORS_HS3001=m
CONFIG_SENSORS_IBMAEM=m
CONFIG_SENSORS_IBMPEX=m
# CONFIG_SENSORS_IIO_HWMON is not set
CONFIG_SENSORS_I5500=m
CONFIG_SENSORS_CORETEMP=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_POWERZ=m
CONFIG_SENSORS_POWR1220=m
CONFIG_SENSORS_LENOVO_EC=m
CONFIG_SENSORS_LINEAGE=m
CONFIG_SENSORS_LTC2945=m
CONFIG_SENSORS_LTC2947=m
CONFIG_SENSORS_LTC2947_I2C=m
CONFIG_SENSORS_LTC2947_SPI=m
CONFIG_SENSORS_LTC2990=m
CONFIG_SENSORS_LTC2991=m
# CONFIG_SENSORS_LTC2992 is not set
CONFIG_SENSORS_LTC4151=m
CONFIG_SENSORS_LTC4215=m
CONFIG_SENSORS_LTC4222=m
CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4260=m
CONFIG_SENSORS_LTC4261=m
# CONFIG_SENSORS_LTC4282 is not set
CONFIG_SENSORS_MAX1111=m
# CONFIG_SENSORS_MAX127 is not set
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX197=m
CONFIG_SENSORS_MAX31722=m
# CONFIG_SENSORS_MAX31730 is not set
CONFIG_SENSORS_MAX31760=m
CONFIG_MAX31827=m
CONFIG_SENSORS_MAX6620=m
# CONFIG_SENSORS_MAX6621 is not set
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX31790=m
CONFIG_SENSORS_MC34VR500=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
CONFIG_SENSORS_TC654=m
# CONFIG_SENSORS_TPS23861 is not set
CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
CONFIG_SENSORS_LM95234=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775_CORE=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT6775_I2C=m
CONFIG_SENSORS_NCT7802=m
CONFIG_SENSORS_NCT7904=m
CONFIG_SENSORS_NPCM7XX=m
CONFIG_SENSORS_NZXT_KRAKEN2=m
CONFIG_SENSORS_NZXT_KRAKEN3=m
CONFIG_SENSORS_NZXT_SMART2=m
# CONFIG_SENSORS_OCC_P8_I2C is not set
CONFIG_SENSORS_OXP=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
# CONFIG_SENSORS_ACBEL_FSG032 is not set
CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADP1050=m
CONFIG_SENSORS_BEL_PFE=m
CONFIG_SENSORS_BPA_RS600=m
CONFIG_SENSORS_DELTA_AHE50DC_FAN=m
CONFIG_SENSORS_FSP_3Y=m
# CONFIG_SENSORS_IBM_CFFPS is not set
CONFIG_SENSORS_DPS920AB=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR36021 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
# CONFIG_SENSORS_ISL68137 is not set
CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LM25066_REGULATOR=y
CONFIG_SENSORS_LT7182S=m
CONFIG_SENSORS_LTC2978=m
# CONFIG_SENSORS_LTC2978_REGULATOR is not set
CONFIG_SENSORS_LTC3815=m
# CONFIG_SENSORS_LTC4286 is not set
# CONFIG_SENSORS_MAX15301 is not set
CONFIG_SENSORS_MAX16064=m
# CONFIG_SENSORS_MAX16601 is not set
# CONFIG_SENSORS_MAX20730 is not set
CONFIG_SENSORS_MAX20751=m
# CONFIG_SENSORS_MAX31785 is not set
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
# CONFIG_SENSORS_MP2856 is not set
CONFIG_SENSORS_MP2888=m
CONFIG_SENSORS_MP2891=m
CONFIG_SENSORS_MP2975=m
CONFIG_SENSORS_MP2993=m
CONFIG_SENSORS_MP2975_REGULATOR=y
CONFIG_SENSORS_MP5023=m
CONFIG_SENSORS_MP5920=m
# CONFIG_SENSORS_MP5990 is not set
CONFIG_SENSORS_MP9941=m
CONFIG_SENSORS_MPQ7932_REGULATOR=y
CONFIG_SENSORS_MPQ7932=m
CONFIG_SENSORS_MPQ8785=m
CONFIG_SENSORS_PIM4328=m
CONFIG_SENSORS_PLI1209BC=m
CONFIG_SENSORS_PLI1209BC_REGULATOR=y
CONFIG_SENSORS_PM6764TR=m
# CONFIG_SENSORS_PXE1610 is not set
CONFIG_SENSORS_Q54SJ108A2=m
# CONFIG_SENSORS_STPDDC60 is not set
CONFIG_SENSORS_TDA38640=m
CONFIG_SENSORS_TDA38640_REGULATOR=y
CONFIG_SENSORS_TPS40422=m
CONFIG_SENSORS_TPS53679=m
CONFIG_SENSORS_TPS546D24=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
CONFIG_SENSORS_XDP710=m
CONFIG_SENSORS_XDPE152=m
# CONFIG_SENSORS_XDPE122 is not set
CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_PT5161L=m
CONFIG_SENSORS_PWM_FAN=m
CONFIG_SENSORS_SBTSI=m
# CONFIG_SENSORS_SBRMI is not set
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
CONFIG_SENSORS_SHT3x=m
# CONFIG_SENSORS_SHT4x is not set
CONFIG_SENSORS_SHTC1=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_SY7636A=m
CONFIG_SENSORS_DME1737=m
CONFIG_SENSORS_EMC1403=m
# CONFIG_SENSORS_EMC2103 is not set
CONFIG_SENSORS_EMC2305=m
CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_SCH56XX_COMMON=m
CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
# CONFIG_SENSORS_STTS751 is not set
CONFIG_SENSORS_SURFACE_FAN=m
CONFIG_SENSORS_ADC128D818=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA238=m
CONFIG_SENSORS_INA3221=m
CONFIG_SENSORS_SPD5118=m
CONFIG_SENSORS_SPD5118_DETECT=y
CONFIG_SENSORS_TC74=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_TMP102=m
CONFIG_SENSORS_TMP103=m
CONFIG_SENSORS_TMP108=m
CONFIG_SENSORS_TMP401=m
CONFIG_SENSORS_TMP421=m
CONFIG_SENSORS_TMP464=m
CONFIG_SENSORS_TMP513=m
CONFIG_SENSORS_VIA_CPUTEMP=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83795=m
# CONFIG_SENSORS_W83795_FANCTRL is not set
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83L786NG=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
# CONFIG_SENSORS_XGENE is not set
CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m

#
# ACPI drivers
#
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ASUS_WMI=m
CONFIG_SENSORS_ASUS_EC=m
CONFIG_SENSORS_HP_WMI=m
CONFIG_THERMAL=y
CONFIG_THERMAL_NETLINK=y
CONFIG_THERMAL_STATISTICS=y
# CONFIG_THERMAL_DEBUGFS is not set
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
CONFIG_THERMAL_HWMON=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
# CONFIG_DEVFREQ_THERMAL is not set
# CONFIG_THERMAL_EMULATION is not set

#
# Intel thermal drivers
#
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_INTEL_TCC=y
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
CONFIG_INTEL_SOC_DTS_THERMAL=m

#
# ACPI INT340X thermal drivers
#
CONFIG_INT340X_THERMAL=m
CONFIG_ACPI_THERMAL_REL=m
CONFIG_INT3406_THERMAL=m
CONFIG_PROC_THERMAL_MMIO_RAPL=m
# end of ACPI INT340X thermal drivers

CONFIG_INTEL_BXT_PMIC_THERMAL=m
CONFIG_INTEL_PCH_THERMAL=m
CONFIG_INTEL_TCC_COOLING=m
CONFIG_INTEL_HFI_THERMAL=y
# end of Intel thermal drivers

# CONFIG_GENERIC_ADC_THERMAL is not set
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
CONFIG_WATCHDOG_OPEN_TIMEOUT=0
CONFIG_WATCHDOG_SYSFS=y
# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set

#
# Watchdog Pretimeout Governors
#
# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set

#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
CONFIG_CROS_EC_WATCHDOG=m
CONFIG_LENOVO_SE10_WDT=m
CONFIG_WDAT_WDT=m
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_ZIIRAVE_WATCHDOG is not set
CONFIG_MLX_WDT=m
# CONFIG_CADENCE_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set
# CONFIG_MAX63XX_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
CONFIG_ADVANTECH_EC_WDT=m
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
# CONFIG_EBC_C384_WDT is not set
CONFIG_EXAR_WDT=m
CONFIG_F71808E_WDT=m
CONFIG_SP5100_TCO=m
CONFIG_SBC_FITPC2_WATCHDOG=m
# CONFIG_EUROTECH_WDT is not set
CONFIG_IB700_WDT=m
CONFIG_IBMASR=m
# CONFIG_WAFER_WDT is not set
CONFIG_I6300ESB_WDT=m
CONFIG_IE6XX_WDT=m
CONFIG_ITCO_WDT=m
CONFIG_ITCO_VENDOR_SUPPORT=y
CONFIG_IT8712F_WDT=m
CONFIG_IT87_WDT=m
CONFIG_HP_WATCHDOG=m
CONFIG_HPWDT_NMI_DECODING=y
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
CONFIG_NV_TCO=m
# CONFIG_60XX_WDT is not set
# CONFIG_CPU5_WDT is not set
CONFIG_SMSC_SCH311X_WDT=m
# CONFIG_SMSC37B787_WDT is not set
CONFIG_TQMX86_WDT=m
CONFIG_VIA_WDT=m
CONFIG_W83627HF_WDT=m
CONFIG_W83877F_WDT=m
CONFIG_W83977F_WDT=m
CONFIG_MACHZ_WDT=m
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
CONFIG_INTEL_MEI_WDT=m
# CONFIG_NI903X_WDT is not set
CONFIG_NIC7018_WDT=m
# CONFIG_MEN_A21_WDT is not set
CONFIG_XEN_WDT=m

#
# PCI-based Watchdog Cards
#
CONFIG_PCIPCWATCHDOG=m
CONFIG_WDTPCI=m

#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=m
CONFIG_SSB_POSSIBLE=y
CONFIG_SSB=m
CONFIG_SSB_SPROM=y
CONFIG_SSB_BLOCKIO=y
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_B43_PCI_BRIDGE=y
CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
CONFIG_SSB_PCMCIAHOST=y
CONFIG_SSB_SDIOHOST_POSSIBLE=y
CONFIG_SSB_SDIOHOST=y
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y
CONFIG_SSB_DRIVER_GPIO=y
CONFIG_BCMA_POSSIBLE=y
CONFIG_BCMA=m
CONFIG_BCMA_BLOCKIO=y
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA_DRIVER_PCI=y
CONFIG_BCMA_DRIVER_GMAC_CMN=y
CONFIG_BCMA_DRIVER_GPIO=y
# CONFIG_BCMA_DEBUG is not set

#
# Multifunction device drivers
#
CONFIG_MFD_CORE=y
# CONFIG_MFD_AS3711 is not set
# CONFIG_MFD_SMPRO is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_BD9571MWV=m
CONFIG_MFD_AXP20X=y
CONFIG_MFD_AXP20X_I2C=y
CONFIG_MFD_CROS_EC_DEV=m
CONFIG_MFD_CS42L43=m
CONFIG_MFD_CS42L43_I2C=m
CONFIG_MFD_CS42L43_SDW=m
# CONFIG_MFD_MADERA is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_DA9062 is not set
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
CONFIG_MFD_DLN2=m
# CONFIG_MFD_MC13XXX_SPI is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_MP2629 is not set
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
CONFIG_LPC_ICH=m
CONFIG_LPC_SCH=m
CONFIG_INTEL_SOC_PMIC=y
CONFIG_INTEL_SOC_PMIC_BXTWC=m
CONFIG_INTEL_SOC_PMIC_CHTWC=y
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=y
CONFIG_INTEL_SOC_PMIC_MRFLD=m
CONFIG_MFD_INTEL_LPSS=y
CONFIG_MFD_INTEL_LPSS_ACPI=y
CONFIG_MFD_INTEL_LPSS_PCI=y
CONFIG_MFD_INTEL_PMC_BXT=m
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77541 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX77843 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
# CONFIG_MFD_MT6360 is not set
# CONFIG_MFD_MT6370 is not set
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_MFD_OCELOT is not set
# CONFIG_EZX_PCAP is not set
# CONFIG_MFD_VIPERBOARD is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
CONFIG_MFD_SY7636A=m
# CONFIG_MFD_RDC321X is not set
CONFIG_MFD_RT4831=m
# CONFIG_MFD_RT5033 is not set
CONFIG_MFD_RT5120=m
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_SI476X_CORE is not set
CONFIG_MFD_SIMPLE_MFD_I2C=m
CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_SKY81452 is not set
CONFIG_MFD_SYSCON=y
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912_SPI is not set
CONFIG_MFD_TPS6594=m
CONFIG_MFD_TPS6594_I2C=m
# CONFIG_MFD_TPS6594_SPI is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TQMX86 is not set
CONFIG_MFD_VX855=m
CONFIG_MFD_ARIZONA=m
# CONFIG_MFD_ARIZONA_I2C is not set
CONFIG_MFD_ARIZONA_SPI=m
# CONFIG_MFD_CS47L24 is not set
CONFIG_MFD_WM5102=y
# CONFIG_MFD_WM5110 is not set
# CONFIG_MFD_WM8997 is not set
# CONFIG_MFD_WM8998 is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_ATC260X_I2C is not set
CONFIG_MFD_CS40L50_CORE=m
CONFIG_MFD_CS40L50_I2C=m
CONFIG_MFD_CS40L50_SPI=m
# CONFIG_RAVE_SP_CORE is not set
CONFIG_MFD_INTEL_M10_BMC_CORE=m
CONFIG_MFD_INTEL_M10_BMC_SPI=m
CONFIG_MFD_INTEL_M10_BMC_PMCI=m
# end of Multifunction device drivers

CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set
CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
# CONFIG_REGULATOR_NETLINK_EVENTS is not set
# CONFIG_REGULATOR_88PG86X is not set
# CONFIG_REGULATOR_ACT8865 is not set
# CONFIG_REGULATOR_AD5398 is not set
CONFIG_REGULATOR_ARIZONA_LDO1=m
CONFIG_REGULATOR_ARIZONA_MICSUPP=m
CONFIG_REGULATOR_AW37503=m
# CONFIG_REGULATOR_AXP20X is not set
# CONFIG_REGULATOR_BD9571MWV is not set
# CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL9305 is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
# CONFIG_REGULATOR_LP8755 is not set
# CONFIG_REGULATOR_LTC3589 is not set
# CONFIG_REGULATOR_LTC3676 is not set
# CONFIG_REGULATOR_MAX1586 is not set
CONFIG_REGULATOR_MAX77503=m
CONFIG_REGULATOR_MAX77857=m
# CONFIG_REGULATOR_MAX8649 is not set
# CONFIG_REGULATOR_MAX8660 is not set
CONFIG_REGULATOR_MAX8893=m
# CONFIG_REGULATOR_MAX8952 is not set
# CONFIG_REGULATOR_MAX20086 is not set
CONFIG_REGULATOR_MAX20411=m
# CONFIG_REGULATOR_MAX77826 is not set
# CONFIG_REGULATOR_MP8859 is not set
# CONFIG_REGULATOR_MT6311 is not set
# CONFIG_REGULATOR_PCA9450 is not set
# CONFIG_REGULATOR_PV88060 is not set
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
CONFIG_REGULATOR_RAA215300=m
CONFIG_REGULATOR_RT4801=m
CONFIG_REGULATOR_RT4803=m
CONFIG_REGULATOR_RT4831=m
CONFIG_REGULATOR_RT5120=m
CONFIG_REGULATOR_RT5190A=m
CONFIG_REGULATOR_RT5739=m
CONFIG_REGULATOR_RT5759=m
CONFIG_REGULATOR_RT6160=m
CONFIG_REGULATOR_RT6190=m
CONFIG_REGULATOR_RT6245=m
CONFIG_REGULATOR_RTQ2134=m
CONFIG_REGULATOR_RTMV20=m
CONFIG_REGULATOR_RTQ6752=m
CONFIG_REGULATOR_RTQ2208=m
# CONFIG_REGULATOR_SLG51000 is not set
CONFIG_REGULATOR_SY7636A=m
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
# CONFIG_REGULATOR_TPS65132 is not set
# CONFIG_REGULATOR_TPS6524X is not set
CONFIG_REGULATOR_TPS68470=m
CONFIG_RC_CORE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_LIRC=y
CONFIG_RC_MAP=m
CONFIG_RC_DECODERS=y
CONFIG_IR_IMON_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
CONFIG_IR_RC6_DECODER=m
CONFIG_IR_RCMM_DECODER=m
CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SHARP_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_XMP_DECODER=m
CONFIG_RC_DEVICES=y
CONFIG_IR_ENE=m
CONFIG_IR_FINTEK=m
CONFIG_IR_IGORPLUGUSB=m
CONFIG_IR_IGUANA=m
CONFIG_IR_IMON=m
CONFIG_IR_IMON_RAW=m
CONFIG_IR_ITE_CIR=m
CONFIG_IR_MCEUSB=m
CONFIG_IR_NUVOTON=m
CONFIG_IR_REDRAT3=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_STREAMZAP=m
CONFIG_IR_TOY=m
CONFIG_IR_TTUSBIR=m
CONFIG_IR_WINBOND_CIR=m
CONFIG_RC_ATI_REMOTE=m
CONFIG_RC_LOOPBACK=m
CONFIG_RC_XBOX_DVD=m
CONFIG_CEC_CORE=m
CONFIG_CEC_NOTIFIER=y
CONFIG_CEC_PIN=y

#
# CEC support
#
CONFIG_MEDIA_CEC_RC=y
# CONFIG_CEC_PIN_ERROR_INJ is not set
CONFIG_MEDIA_CEC_SUPPORT=y
CONFIG_CEC_CH7322=m
# CONFIG_CEC_CROS_EC is not set
CONFIG_CEC_GPIO=m
CONFIG_CEC_SECO=m
CONFIG_CEC_SECO_RC=y
CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_RAINSHADOW_CEC=m
# end of CEC support

CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_SUPPORT_FILTER=y
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y

#
# Media device types
#
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
# CONFIG_MEDIA_SDR_SUPPORT is not set
CONFIG_MEDIA_PLATFORM_SUPPORT=y
CONFIG_MEDIA_TEST_SUPPORT=y
# end of Media device types

CONFIG_VIDEO_DEV=m
CONFIG_MEDIA_CONTROLLER=y
CONFIG_DVB_CORE=m

#
# Video4Linux options
#
CONFIG_VIDEO_V4L2_I2C=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
# CONFIG_V4L2_FLASH_LED_CLASS is not set
CONFIG_V4L2_FWNODE=m
CONFIG_V4L2_ASYNC=m
CONFIG_V4L2_CCI=m
CONFIG_V4L2_CCI_I2C=m
# end of Video4Linux options

#
# Media controller options
#
CONFIG_MEDIA_CONTROLLER_DVB=y
# end of Media controller options

#
# Digital TV options
#
# CONFIG_DVB_MMAP is not set
CONFIG_DVB_NET=y
CONFIG_DVB_MAX_ADAPTERS=16
CONFIG_DVB_DYNAMIC_MINORS=y
# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
# CONFIG_DVB_ULE_DEBUG is not set
# end of Digital TV options

#
# Media drivers
#

#
# Drivers filtered as selected at 'Filter media drivers'
#

#
# Media drivers
#
CONFIG_MEDIA_USB_SUPPORT=y

#
# Webcam devices
#
CONFIG_USB_GSPCA=m
CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
CONFIG_USB_GSPCA_CPIA1=m
CONFIG_USB_GSPCA_DTCS033=m
CONFIG_USB_GSPCA_ETOMS=m
CONFIG_USB_GSPCA_FINEPIX=m
CONFIG_USB_GSPCA_JEILINJ=m
CONFIG_USB_GSPCA_JL2005BCD=m
CONFIG_USB_GSPCA_KINECT=m
CONFIG_USB_GSPCA_KONICA=m
CONFIG_USB_GSPCA_MARS=m
CONFIG_USB_GSPCA_MR97310A=m
CONFIG_USB_GSPCA_NW80X=m
CONFIG_USB_GSPCA_OV519=m
CONFIG_USB_GSPCA_OV534=m
CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_PAC207=m
CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
CONFIG_USB_GSPCA_SE401=m
CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SONIXB=m
CONFIG_USB_GSPCA_SONIXJ=m
CONFIG_USB_GSPCA_SPCA1528=m
CONFIG_USB_GSPCA_SPCA500=m
CONFIG_USB_GSPCA_SPCA501=m
CONFIG_USB_GSPCA_SPCA505=m
CONFIG_USB_GSPCA_SPCA506=m
CONFIG_USB_GSPCA_SPCA508=m
CONFIG_USB_GSPCA_SPCA561=m
CONFIG_USB_GSPCA_SQ905=m
CONFIG_USB_GSPCA_SQ905C=m
CONFIG_USB_GSPCA_SQ930X=m
CONFIG_USB_GSPCA_STK014=m
CONFIG_USB_GSPCA_STK1135=m
CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
CONFIG_USB_GSPCA_TOPRO=m
CONFIG_USB_GSPCA_TOUPTEK=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_GSPCA_XIRLINK_CIT=m
CONFIG_USB_GSPCA_ZC3XX=m
CONFIG_USB_GL860=m
CONFIG_USB_M5602=m
CONFIG_USB_STV06XX=m
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
CONFIG_USB_PWC_INPUT_EVDEV=y
CONFIG_USB_S2255=m
CONFIG_VIDEO_USBTV=m
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y

#
# Analog TV USB devices
#
CONFIG_VIDEO_GO7007=m
CONFIG_VIDEO_GO7007_USB=m
CONFIG_VIDEO_GO7007_LOADER=m
CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_PVRUSB2=m
CONFIG_VIDEO_PVRUSB2_SYSFS=y
CONFIG_VIDEO_PVRUSB2_DVB=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
CONFIG_VIDEO_STK1160=m

#
# Analog/digital TV USB devices
#
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_AU0828_V4L2=y
# CONFIG_VIDEO_AU0828_RC is not set
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_RC=y
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m

#
# Digital TV USB devices
#
CONFIG_DVB_AS102=m
CONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
CONFIG_DVB_USB_V2=m
CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_AF9035=m
CONFIG_DVB_USB_ANYSEE=m
CONFIG_DVB_USB_AU6610=m
CONFIG_DVB_USB_AZ6007=m
CONFIG_DVB_USB_CE6230=m
CONFIG_DVB_USB_DVBSKY=m
CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_GL861=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_USB_RTL28XXU=m
CONFIG_DVB_USB_ZD1301=m
CONFIG_DVB_USB=m
# CONFIG_DVB_USB_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_CINERGY_T2=m
CONFIG_DVB_USB_CXUSB=m
CONFIG_DVB_USB_CXUSB_ANALOG=y
CONFIG_DVB_USB_DIB0700=m
CONFIG_DVB_USB_DIB3000MC=m
CONFIG_DVB_USB_DIBUSB_MB=m
# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
CONFIG_DVB_USB_DIBUSB_MC=m
CONFIG_DVB_USB_DIGITV=m
CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_USB_DTV5100=m
CONFIG_DVB_USB_DW2102=m
CONFIG_DVB_USB_GP8PSK=m
CONFIG_DVB_USB_M920X=m
CONFIG_DVB_USB_NOVA_T_USB2=m
CONFIG_DVB_USB_OPERA1=m
CONFIG_DVB_USB_PCTV452E=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
CONFIG_DVB_USB_TTUSB2=m
CONFIG_DVB_USB_UMT_010=m
CONFIG_DVB_USB_VP702X=m
CONFIG_DVB_USB_VP7045=m
CONFIG_SMS_USB_DRV=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m

#
# Webcam, TV (analog/digital) USB devices
#
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
CONFIG_VIDEO_EM28XX_RC=m
CONFIG_MEDIA_PCI_SUPPORT=y

#
# Media capture support
#
# CONFIG_VIDEO_MGB4 is not set
CONFIG_VIDEO_SOLO6X10=m
# CONFIG_VIDEO_TW5864 is not set
# CONFIG_VIDEO_TW68 is not set
CONFIG_VIDEO_TW686X=m
# CONFIG_VIDEO_ZORAN is not set

#
# Media capture/analog TV support
#
# CONFIG_VIDEO_DT3155 is not set
CONFIG_VIDEO_IVTV=m
# CONFIG_VIDEO_IVTV_ALSA is not set
CONFIG_VIDEO_FB_IVTV=m
# CONFIG_VIDEO_FB_IVTV_FORCE_PAT is not set
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_MXB=m

#
# Media capture/analog/hybrid TV support
#
CONFIG_VIDEO_BT848=m
CONFIG_DVB_BT8XX=m
CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_CX23885=m
CONFIG_MEDIA_ALTERA_CI=m
# CONFIG_VIDEO_CX25821 is not set
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_ALSA=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CX88_DVB=m
CONFIG_VIDEO_CX88_ENABLE_VP3054=y
CONFIG_VIDEO_CX88_VP3054=m
CONFIG_VIDEO_CX88_MPEG=m
CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_RC=y
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_SAA7134_GO7007=m
CONFIG_VIDEO_SAA7164=m

#
# Media digital TV PCI Adapters
#
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
CONFIG_DVB_DDBRIDGE=m
# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
CONFIG_DVB_DM1105=m
CONFIG_MANTIS_CORE=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_DVB_NGENE=m
CONFIG_DVB_PLUTO2=m
CONFIG_DVB_PT1=m
# CONFIG_DVB_PT3 is not set
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_BUDGET_CORE=m
CONFIG_DVB_BUDGET=m
CONFIG_DVB_BUDGET_CI=m
CONFIG_DVB_BUDGET_AV=m
CONFIG_VIDEO_IPU3_CIO2=m
CONFIG_VIDEO_INTEL_IPU6=m
CONFIG_INTEL_VSC=m
CONFIG_IPU_BRIDGE=m
CONFIG_RADIO_ADAPTERS=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_SAA7706H=m
CONFIG_RADIO_SHARK=m
CONFIG_RADIO_SHARK2=m
CONFIG_RADIO_SI4713=m
CONFIG_RADIO_TEA575X=m
CONFIG_RADIO_TEA5764=m
# CONFIG_RADIO_TEF6862 is not set
CONFIG_RADIO_WL1273=m
CONFIG_USB_DSBR=m
CONFIG_USB_KEENE=m
CONFIG_USB_MA901=m
CONFIG_USB_MR800=m
# CONFIG_USB_RAREMONO is not set
CONFIG_RADIO_SI470X=m
CONFIG_USB_SI470X=m
CONFIG_I2C_SI470X=m
# CONFIG_USB_SI4713 is not set
# CONFIG_PLATFORM_SI4713 is not set
# CONFIG_I2C_SI4713 is not set
CONFIG_MEDIA_PLATFORM_DRIVERS=y
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_DVB_PLATFORM_DRIVERS is not set
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set

#
# Allegro DVT media platform drivers
#

#
# Amlogic media platform drivers
#

#
# Amphion drivers
#

#
# Aspeed media platform drivers
#

#
# Atmel media platform drivers
#

#
# Cadence media platform drivers
#
# CONFIG_VIDEO_CADENCE_CSI2RX is not set
CONFIG_VIDEO_CADENCE_CSI2TX=m

#
# Chips&Media media platform drivers
#

#
# Intel media platform drivers
#

#
# Marvell media platform drivers
#

#
# Mediatek media platform drivers
#

#
# Microchip Technology, Inc. media platform drivers
#

#
# Nuvoton media platform drivers
#

#
# NVidia media platform drivers
#

#
# NXP media platform drivers
#

#
# Qualcomm media platform drivers
#

#
# Raspberry Pi media platform drivers
#

#
# Renesas media platform drivers
#

#
# Rockchip media platform drivers
#

#
# Samsung media platform drivers
#

#
# STMicroelectronics media platform drivers
#

#
# Sunxi media platform drivers
#

#
# Texas Instruments drivers
#

#
# Verisilicon media platform drivers
#

#
# VIA media platform drivers
#

#
# Xilinx media platform drivers
#

#
# MMC/SDIO DVB adapters
#
CONFIG_SMS_SDIO_DRV=m
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_VIDEO_VIM2M=m
CONFIG_VIDEO_VICODEC=m
CONFIG_VIDEO_VIMC=m
CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_VIVID_CEC=y
CONFIG_VIDEO_VIVID_MAX_DEVS=64
CONFIG_VIDEO_VISL=m
# CONFIG_VISL_DEBUGFS is not set
# CONFIG_DVB_TEST_DRIVERS is not set

#
# FireWire (IEEE 1394) Adapters
#
CONFIG_DVB_FIREDTV=m
CONFIG_DVB_FIREDTV_INPUT=y
CONFIG_MEDIA_COMMON_OPTIONS=y

#
# common driver options
#
CONFIG_CYPRESS_FIRMWARE=m
CONFIG_TTPCI_EEPROM=m
CONFIG_UVC_COMMON=m
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_TVEEPROM=m
CONFIG_DVB_B2C2_FLEXCOP=m
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
# CONFIG_SMS_SIANO_DEBUGFS is not set
CONFIG_VIDEO_V4L2_TPG=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_V4L2=m
CONFIG_VIDEOBUF2_MEMOPS=m
CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEOBUF2_DMA_SG=m
CONFIG_VIDEOBUF2_DVB=m
# end of Media drivers

#
# Media ancillary drivers
#
CONFIG_MEDIA_ATTACH=y

#
# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
#
CONFIG_VIDEO_IR_I2C=m
CONFIG_VIDEO_CAMERA_SENSOR=y
CONFIG_VIDEO_APTINA_PLL=m
CONFIG_VIDEO_CCS_PLL=m
# CONFIG_VIDEO_ALVIUM_CSI2 is not set
CONFIG_VIDEO_AR0521=m
CONFIG_VIDEO_GC0308=m
# CONFIG_VIDEO_GC05A2 is not set
# CONFIG_VIDEO_GC08A3 is not set
CONFIG_VIDEO_GC2145=m
CONFIG_VIDEO_HI556=m
CONFIG_VIDEO_HI846=m
CONFIG_VIDEO_HI847=m
CONFIG_VIDEO_IMX208=m
CONFIG_VIDEO_IMX214=m
CONFIG_VIDEO_IMX219=m
CONFIG_VIDEO_IMX258=m
CONFIG_VIDEO_IMX274=m
CONFIG_VIDEO_IMX283=m
CONFIG_VIDEO_IMX290=m
CONFIG_VIDEO_IMX296=m
CONFIG_VIDEO_IMX319=m
CONFIG_VIDEO_IMX355=m
CONFIG_VIDEO_MAX9271_LIB=m
CONFIG_VIDEO_MT9M001=m
# CONFIG_VIDEO_MT9M111 is not set
CONFIG_VIDEO_MT9M114=m
CONFIG_VIDEO_MT9P031=m
CONFIG_VIDEO_MT9T112=m
CONFIG_VIDEO_MT9V011=m
CONFIG_VIDEO_MT9V032=m
CONFIG_VIDEO_MT9V111=m
CONFIG_VIDEO_OG01A1B=m
CONFIG_VIDEO_OV01A10=m
CONFIG_VIDEO_OV02A10=m
CONFIG_VIDEO_OV08D10=m
CONFIG_VIDEO_OV08X40=m
CONFIG_VIDEO_OV13858=m
CONFIG_VIDEO_OV13B10=m
CONFIG_VIDEO_OV2640=m
CONFIG_VIDEO_OV2659=m
CONFIG_VIDEO_OV2680=m
CONFIG_VIDEO_OV2685=m
CONFIG_VIDEO_OV2740=m
CONFIG_VIDEO_OV4689=m
CONFIG_VIDEO_OV5647=m
CONFIG_VIDEO_OV5648=m
CONFIG_VIDEO_OV5670=m
CONFIG_VIDEO_OV5675=m
CONFIG_VIDEO_OV5693=m
CONFIG_VIDEO_OV5695=m
CONFIG_VIDEO_OV64A40=m
CONFIG_VIDEO_OV6650=m
CONFIG_VIDEO_OV7251=m
CONFIG_VIDEO_OV7640=m
# CONFIG_VIDEO_OV7670 is not set
CONFIG_VIDEO_OV772X=m
CONFIG_VIDEO_OV7740=m
CONFIG_VIDEO_OV8856=m
CONFIG_VIDEO_OV8858=m
CONFIG_VIDEO_OV8865=m
CONFIG_VIDEO_OV9640=m
CONFIG_VIDEO_OV9650=m
CONFIG_VIDEO_OV9734=m
CONFIG_VIDEO_RDACM20=m
# CONFIG_VIDEO_RDACM21 is not set
CONFIG_VIDEO_RJ54N1=m
CONFIG_VIDEO_S5C73M3=m
CONFIG_VIDEO_S5K5BAF=m
CONFIG_VIDEO_S5K6A3=m
CONFIG_VIDEO_CCS=m
CONFIG_VIDEO_ET8EK8=m

#
# Camera ISPs
#
# CONFIG_VIDEO_THP7312 is not set
# end of Camera ISPs

#
# Lens drivers
#
CONFIG_VIDEO_AD5820=m
CONFIG_VIDEO_AK7375=m
CONFIG_VIDEO_DW9714=m
CONFIG_VIDEO_DW9719=m
CONFIG_VIDEO_DW9768=m
CONFIG_VIDEO_DW9807_VCM=m
# end of Lens drivers

#
# Flash devices
#
CONFIG_VIDEO_ADP1653=m
CONFIG_VIDEO_LM3560=m
CONFIG_VIDEO_LM3646=m
# end of Flash devices

#
# Audio decoders, processors and mixers
#
CONFIG_VIDEO_CS3308=m
CONFIG_VIDEO_CS5345=m
CONFIG_VIDEO_CS53L32A=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_SONY_BTF_MPX=m
CONFIG_VIDEO_TDA1997X=m
CONFIG_VIDEO_TDA7432=m
CONFIG_VIDEO_TDA9840=m
CONFIG_VIDEO_TEA6415C=m
CONFIG_VIDEO_TEA6420=m
CONFIG_VIDEO_TLV320AIC23B=m
CONFIG_VIDEO_TVAUDIO=m
CONFIG_VIDEO_UDA1342=m
CONFIG_VIDEO_VP27SMPX=m
CONFIG_VIDEO_WM8739=m
CONFIG_VIDEO_WM8775=m
# end of Audio decoders, processors and mixers

#
# RDS decoders
#
CONFIG_VIDEO_SAA6588=m
# end of RDS decoders

#
# Video decoders
#
CONFIG_VIDEO_ADV7180=m
CONFIG_VIDEO_ADV7183=m
CONFIG_VIDEO_ADV7604=m
# CONFIG_VIDEO_ADV7604_CEC is not set
CONFIG_VIDEO_ADV7842=m
# CONFIG_VIDEO_ADV7842_CEC is not set
CONFIG_VIDEO_BT819=m
CONFIG_VIDEO_BT856=m
CONFIG_VIDEO_BT866=m
CONFIG_VIDEO_KS0127=m
CONFIG_VIDEO_ML86V7667=m
CONFIG_VIDEO_SAA7110=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_TC358743=m
CONFIG_VIDEO_TC358743_CEC=y
CONFIG_VIDEO_TC358746=m
CONFIG_VIDEO_TVP514X=m
CONFIG_VIDEO_TVP5150=m
CONFIG_VIDEO_TVP7002=m
CONFIG_VIDEO_TW2804=m
# CONFIG_VIDEO_TW9900 is not set
CONFIG_VIDEO_TW9903=m
CONFIG_VIDEO_TW9906=m
CONFIG_VIDEO_TW9910=m
CONFIG_VIDEO_VPX3220=m

#
# Video and audio decoders
#
CONFIG_VIDEO_SAA717X=m
CONFIG_VIDEO_CX25840=m
# end of Video decoders

#
# Video encoders
#
CONFIG_VIDEO_ADV7170=m
CONFIG_VIDEO_ADV7175=m
CONFIG_VIDEO_ADV7343=m
CONFIG_VIDEO_ADV7393=m
CONFIG_VIDEO_ADV7511=m
# CONFIG_VIDEO_ADV7511_CEC is not set
CONFIG_VIDEO_AK881X=m
CONFIG_VIDEO_SAA7127=m
CONFIG_VIDEO_SAA7185=m
CONFIG_VIDEO_THS8200=m
# end of Video encoders

#
# Video improvement chips
#
CONFIG_VIDEO_UPD64031A=m
CONFIG_VIDEO_UPD64083=m
# end of Video improvement chips

#
# Audio/Video compression chips
#
CONFIG_VIDEO_SAA6752HS=m
# end of Audio/Video compression chips

#
# SDR tuner chips
#
# end of SDR tuner chips

#
# Miscellaneous helper chips
#
CONFIG_VIDEO_I2C=m
CONFIG_VIDEO_M52790=m
CONFIG_VIDEO_ST_MIPID02=m
CONFIG_VIDEO_THS7303=m
# end of Miscellaneous helper chips

#
# Video serializers and deserializers
#
# end of Video serializers and deserializers

#
# Media SPI Adapters
#
CONFIG_CXD2880_SPI_DRV=m
CONFIG_VIDEO_GS1662=m
# end of Media SPI Adapters

CONFIG_MEDIA_TUNER=m

#
# Customize TV tuners
#
CONFIG_MEDIA_TUNER_E4000=m
CONFIG_MEDIA_TUNER_FC0011=m
CONFIG_MEDIA_TUNER_FC0012=m
CONFIG_MEDIA_TUNER_FC0013=m
CONFIG_MEDIA_TUNER_FC2580=m
CONFIG_MEDIA_TUNER_IT913X=m
CONFIG_MEDIA_TUNER_M88RS6000T=m
CONFIG_MEDIA_TUNER_MAX2165=m
CONFIG_MEDIA_TUNER_MC44S803=m
# CONFIG_MEDIA_TUNER_MSI001 is not set
CONFIG_MEDIA_TUNER_MT2060=m
CONFIG_MEDIA_TUNER_MT2063=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_MT2266=m
# CONFIG_MEDIA_TUNER_MXL301RF is not set
CONFIG_MEDIA_TUNER_MXL5005S=m
CONFIG_MEDIA_TUNER_MXL5007T=m
CONFIG_MEDIA_TUNER_QM1D1B0004=m
CONFIG_MEDIA_TUNER_QM1D1C0042=m
CONFIG_MEDIA_TUNER_QT1010=m
CONFIG_MEDIA_TUNER_R820T=m
CONFIG_MEDIA_TUNER_SI2157=m
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA18212=m
CONFIG_MEDIA_TUNER_TDA18218=m
CONFIG_MEDIA_TUNER_TDA18250=m
CONFIG_MEDIA_TUNER_TDA18271=m
CONFIG_MEDIA_TUNER_TDA827X=m
CONFIG_MEDIA_TUNER_TDA8290=m
CONFIG_MEDIA_TUNER_TDA9887=m
CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_TUA9001=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC4000=m
CONFIG_MEDIA_TUNER_XC5000=m
# end of Customize TV tuners

#
# Customise DVB Frontends
#

#
# Multistandard (satellite) frontends
#
CONFIG_DVB_M88DS3103=m
CONFIG_DVB_MXL5XX=m
CONFIG_DVB_STB0899=m
CONFIG_DVB_STB6100=m
CONFIG_DVB_STV090x=m
CONFIG_DVB_STV0910=m
CONFIG_DVB_STV6110x=m
CONFIG_DVB_STV6111=m

#
# Multistandard (cable + terrestrial) frontends
#
CONFIG_DVB_DRXK=m
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_SI2165=m
CONFIG_DVB_TDA18271C2DD=m

#
# DVB-S (satellite) frontends
#
CONFIG_DVB_CX24110=m
CONFIG_DVB_CX24116=m
CONFIG_DVB_CX24117=m
CONFIG_DVB_CX24120=m
CONFIG_DVB_CX24123=m
CONFIG_DVB_DS3000=m
CONFIG_DVB_MB86A16=m
CONFIG_DVB_MT312=m
CONFIG_DVB_S5H1420=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_STB6000=m
CONFIG_DVB_STV0288=m
CONFIG_DVB_STV0299=m
CONFIG_DVB_STV0900=m
CONFIG_DVB_STV6110=m
CONFIG_DVB_TDA10071=m
CONFIG_DVB_TDA10086=m
CONFIG_DVB_TDA8083=m
CONFIG_DVB_TDA8261=m
CONFIG_DVB_TDA826X=m
CONFIG_DVB_TS2020=m
CONFIG_DVB_TUA6100=m
CONFIG_DVB_TUNER_CX24113=m
CONFIG_DVB_TUNER_ITD1000=m
CONFIG_DVB_VES1X93=m
CONFIG_DVB_ZL10036=m
CONFIG_DVB_ZL10039=m

#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_AF9013=m
CONFIG_DVB_AS102_FE=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
CONFIG_DVB_CXD2820R=m
CONFIG_DVB_CXD2841ER=m
CONFIG_DVB_DIB3000MB=m
CONFIG_DVB_DIB3000MC=m
CONFIG_DVB_DIB7000M=m
CONFIG_DVB_DIB7000P=m
# CONFIG_DVB_DIB9000 is not set
CONFIG_DVB_DRXD=m
CONFIG_DVB_EC100=m
CONFIG_DVB_GP8PSK_FE=m
CONFIG_DVB_L64781=m
CONFIG_DVB_MT352=m
CONFIG_DVB_NXT6000=m
CONFIG_DVB_RTL2830=m
CONFIG_DVB_RTL2832=m
# CONFIG_DVB_S5H1432 is not set
CONFIG_DVB_SI2168=m
CONFIG_DVB_SP887X=m
CONFIG_DVB_STV0367=m
CONFIG_DVB_TDA10048=m
CONFIG_DVB_TDA1004X=m
CONFIG_DVB_ZD1301_DEMOD=m
CONFIG_DVB_ZL10353=m
# CONFIG_DVB_CXD2880 is not set

#
# DVB-C (cable) frontends
#
CONFIG_DVB_STV0297=m
CONFIG_DVB_TDA10021=m
CONFIG_DVB_TDA10023=m
CONFIG_DVB_VES1820=m

#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
CONFIG_DVB_AU8522=m
CONFIG_DVB_AU8522_DTV=m
CONFIG_DVB_AU8522_V4L=m
CONFIG_DVB_BCM3510=m
CONFIG_DVB_LG2160=m
CONFIG_DVB_LGDT3305=m
CONFIG_DVB_LGDT3306A=m
CONFIG_DVB_LGDT330X=m
CONFIG_DVB_MXL692=m
CONFIG_DVB_NXT200X=m
CONFIG_DVB_OR51132=m
CONFIG_DVB_OR51211=m
CONFIG_DVB_S5H1409=m
CONFIG_DVB_S5H1411=m

#
# ISDB-T (terrestrial) frontends
#
CONFIG_DVB_DIB8000=m
CONFIG_DVB_MB86A20S=m
CONFIG_DVB_S921=m

#
# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
#
# CONFIG_DVB_MN88443X is not set
CONFIG_DVB_TC90522=m

#
# Digital terrestrial only tuners/PLL
#
CONFIG_DVB_PLL=m
CONFIG_DVB_TUNER_DIB0070=m
CONFIG_DVB_TUNER_DIB0090=m

#
# SEC control devices for DVB-S
#
CONFIG_DVB_A8293=m
CONFIG_DVB_AF9033=m
CONFIG_DVB_ASCOT2E=m
CONFIG_DVB_ATBM8830=m
CONFIG_DVB_HELENE=m
CONFIG_DVB_HORUS3A=m
CONFIG_DVB_ISL6405=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_ISL6423=m
CONFIG_DVB_IX2505V=m
# CONFIG_DVB_LGS8GL5 is not set
CONFIG_DVB_LGS8GXX=m
CONFIG_DVB_LNBH25=m
# CONFIG_DVB_LNBH29 is not set
CONFIG_DVB_LNBP21=m
CONFIG_DVB_LNBP22=m
CONFIG_DVB_M88RS2000=m
CONFIG_DVB_TDA665x=m
CONFIG_DVB_DRX39XYJ=m

#
# Common Interface (EN50221) controller drivers
#
CONFIG_DVB_CXD2099=m
CONFIG_DVB_SP2=m
# end of Customise DVB Frontends

#
# Tools to develop new frontends
#
# CONFIG_DVB_DUMMY_FE is not set
# end of Media ancillary drivers

#
# Graphics support
#
CONFIG_APERTURE_HELPERS=y
CONFIG_SCREEN_INFO=y
CONFIG_VIDEO=y
CONFIG_AUXDISPLAY=y
CONFIG_CHARLCD=m
CONFIG_HD44780_COMMON=m
CONFIG_HD44780=m
# CONFIG_LCD2S is not set
# CONFIG_PARPORT_PANEL is not set
# CONFIG_PANEL_CHANGE_MESSAGE is not set
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHARLCD_BL_FLASH=y
CONFIG_KS0108=m
CONFIG_KS0108_PORT=0x378
CONFIG_KS0108_DELAY=2
CONFIG_CFAG12864B=m
CONFIG_CFAG12864B_RATE=20
CONFIG_LINEDISP=m
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_HT16K33=m
# CONFIG_MAX6959 is not set
# CONFIG_SEG_LED_GPIO is not set
# CONFIG_PANEL is not set
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
CONFIG_AGP_SIS=y
CONFIG_AGP_VIA=y
CONFIG_INTEL_GTT=y
CONFIG_VGA_SWITCHEROO=y
CONFIG_DRM=y
CONFIG_DRM_MIPI_DBI=m
CONFIG_DRM_MIPI_DSI=y
# CONFIG_DRM_DEBUG_MM is not set
CONFIG_DRM_KUNIT_TEST_HELPERS=m
CONFIG_DRM_KUNIT_TEST=m
CONFIG_DRM_KMS_HELPER=y
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DISPLAY_HELPER=m
CONFIG_DRM_DISPLAY_DP_AUX_CEC=y
CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV=y
CONFIG_DRM_DISPLAY_DP_HELPER=y
CONFIG_DRM_DISPLAY_DP_TUNNEL=y
CONFIG_DRM_DISPLAY_HDCP_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y
CONFIG_DRM_TTM=m
CONFIG_DRM_EXEC=m
CONFIG_DRM_GPUVM=m
CONFIG_DRM_BUDDY=m
CONFIG_DRM_VRAM_HELPER=m
CONFIG_DRM_TTM_HELPER=m
CONFIG_DRM_GEM_DMA_HELPER=m
CONFIG_DRM_GEM_SHMEM_HELPER=y
CONFIG_DRM_SUBALLOC_HELPER=m
CONFIG_DRM_SCHED=m

#
# I2C encoder or helper chips
#
CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I2C_NXP_TDA998X is not set
# CONFIG_DRM_I2C_NXP_TDA9950 is not set
# end of I2C encoder or helper chips

#
# ARM devices
#
# end of ARM devices

CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
CONFIG_DRM_AMDGPU=m
CONFIG_DRM_AMDGPU_SI=y
CONFIG_DRM_AMDGPU_CIK=y
CONFIG_DRM_AMDGPU_USERPTR=y
CONFIG_DRM_AMD_ISP=y
# CONFIG_DRM_AMDGPU_WERROR is not set

#
# ACP (Audio CoProcessor) Configuration
#
CONFIG_DRM_AMD_ACP=y
# end of ACP (Audio CoProcessor) Configuration

#
# Display Engine Configuration
#
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMD_DC_FP=y
CONFIG_DRM_AMD_DC_SI=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DRM_AMD_SECURE_DISPLAY=y
# end of Display Engine Configuration

CONFIG_HSA_AMD=y
CONFIG_HSA_AMD_SVM=y
CONFIG_DRM_NOUVEAU=m
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_DEBUG_MMU is not set
# CONFIG_NOUVEAU_DEBUG_PUSH is not set
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
# CONFIG_DRM_NOUVEAU_SVM is not set
CONFIG_DRM_NOUVEAU_GSP_DEFAULT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_FORCE_PROBE=""
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
CONFIG_DRM_I915_USERPTR=y
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_PXP=y
CONFIG_DRM_I915_DP_TUNNEL=y

#
# drm/i915 Debugging
#
# CONFIG_DRM_I915_WERROR is not set
# CONFIG_DRM_I915_REPLAY_GPU_HANGS_API is not set
# CONFIG_DRM_I915_DEBUG is not set
# CONFIG_DRM_I915_DEBUG_MMIO is not set
# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
# CONFIG_DRM_I915_DEBUG_GUC is not set
# CONFIG_DRM_I915_SELFTEST is not set
# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
# CONFIG_DRM_I915_DEBUG_WAKEREF is not set
# end of drm/i915 Debugging

#
# drm/i915 Profile Guided Optimisation
#
CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
CONFIG_DRM_I915_FENCE_TIMEOUT=10000
CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
CONFIG_DRM_I915_STOP_TIMEOUT=100
CONFIG_DRM_I915_TIMESLICE_DURATION=1
# end of drm/i915 Profile Guided Optimisation

CONFIG_DRM_I915_GVT=y
CONFIG_DRM_XE=m
CONFIG_DRM_XE_DISPLAY=y
CONFIG_DRM_XE_FORCE_PROBE=""

#
# drm/Xe Debugging
#
# CONFIG_DRM_XE_WERROR is not set
# CONFIG_DRM_XE_DEBUG is not set
# CONFIG_DRM_XE_DEBUG_VM is not set
# CONFIG_DRM_XE_DEBUG_SRIOV is not set
# CONFIG_DRM_XE_DEBUG_MEM is not set
# CONFIG_DRM_XE_KUNIT_TEST is not set
# CONFIG_DRM_XE_LARGE_GUC_BUFFER is not set
# CONFIG_DRM_XE_USERPTR_INVAL_INJECT is not set
# end of drm/Xe Debugging

#
# drm/xe Profile Guided Optimisation
#
CONFIG_DRM_XE_JOB_TIMEOUT_MAX=10000
CONFIG_DRM_XE_JOB_TIMEOUT_MIN=1
CONFIG_DRM_XE_TIMESLICE_MAX=10000000
CONFIG_DRM_XE_TIMESLICE_MIN=1
CONFIG_DRM_XE_PREEMPT_TIMEOUT=640000
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX=10000000
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN=1
CONFIG_DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT=y
# end of drm/xe Profile Guided Optimisation

CONFIG_DRM_VGEM=m
CONFIG_DRM_VKMS=m
CONFIG_DRM_VMWGFX=m
CONFIG_DRM_VMWGFX_MKSSTATS=y
CONFIG_DRM_GMA500=m
CONFIG_DRM_UDL=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_QXL=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_VIRTIO_GPU_KMS=y
CONFIG_DRM_PANEL=y

#
# Display Panels
#
# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
# end of Display Panels

CONFIG_DRM_BRIDGE=y
CONFIG_DRM_PANEL_BRIDGE=y

#
# Display Interface Bridges
#
CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_ANALOGIX_DP=m
# end of Display Interface Bridges

# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
CONFIG_DRM_PANEL_MIPI_DBI=m
CONFIG_DRM_SIMPLEDRM=y
# CONFIG_TINYDRM_HX8357D is not set
CONFIG_TINYDRM_ILI9163=m
# CONFIG_TINYDRM_ILI9225 is not set
# CONFIG_TINYDRM_ILI9341 is not set
CONFIG_TINYDRM_ILI9486=m
# CONFIG_TINYDRM_MI0283QT is not set
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_ST7586 is not set
# CONFIG_TINYDRM_ST7735R is not set
# CONFIG_DRM_XEN_FRONTEND is not set
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_GUD=m
CONFIG_DRM_SSD130X=m
CONFIG_DRM_SSD130X_I2C=m
CONFIG_DRM_SSD130X_SPI=m
CONFIG_DRM_HYPERV=m
CONFIG_DRM_EXPORT_FOR_TESTS=y
CONFIG_DRM_LIB_RANDOM=y
CONFIG_DRM_PRIVACY_SCREEN=y
CONFIG_DRM_WERROR=y
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y

#
# Frame buffer Devices
#
CONFIG_FB=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_UVESA is not set
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I740 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_SM501 is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
CONFIG_XEN_FBDEV_FRONTEND=y
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_HYPERV is not set
# CONFIG_FB_SSD1307 is not set
# CONFIG_FB_SM712 is not set
CONFIG_FB_CORE=y
CONFIG_FB_NOTIFY=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DEVICE is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYSMEM_FOPS=y
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_DMAMEM_HELPERS=y
CONFIG_FB_IOMEM_FOPS=y
CONFIG_FB_IOMEM_HELPERS=y
CONFIG_FB_SYSMEM_HELPERS=y
CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
CONFIG_FB_BACKLIGHT=m
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
# end of Frame buffer Devices

#
# Backlight & LCD device support
#
CONFIG_LCD_CLASS_DEVICE=m
# CONFIG_LCD_L4F00242T03 is not set
# CONFIG_LCD_LMS283GF05 is not set
# CONFIG_LCD_LTV350QV is not set
# CONFIG_LCD_ILI922X is not set
# CONFIG_LCD_ILI9320 is not set
# CONFIG_LCD_TDO24M is not set
# CONFIG_LCD_VGG2432A4 is not set
CONFIG_LCD_PLATFORM=m
# CONFIG_LCD_AMS369FG06 is not set
# CONFIG_LCD_LMS501KF03 is not set
# CONFIG_LCD_HX8357 is not set
# CONFIG_LCD_OTM3225A is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_KTD253=m
# CONFIG_BACKLIGHT_KTD2801 is not set
CONFIG_BACKLIGHT_KTZ8866=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_APPLE=m
# CONFIG_BACKLIGHT_QCOM_WLED is not set
CONFIG_BACKLIGHT_RT4831=m
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_LM3509=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
CONFIG_BACKLIGHT_LP855X=m
CONFIG_BACKLIGHT_MP3309C=m
# CONFIG_BACKLIGHT_GPIO is not set
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_ARCXCNN=m
# end of Backlight & LCD device support

CONFIG_VIDEOMODE_HELPERS=y
CONFIG_HDMI=y

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
# end of Console display driver support

CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
# end of Graphics support

CONFIG_DRM_ACCEL=y
CONFIG_DRM_ACCEL_HABANALABS=m
CONFIG_DRM_ACCEL_IVPU=m
CONFIG_DRM_ACCEL_QAIC=m
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_PCM_ELD=y
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_SEQ_DEVICE=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_UMP=m
CONFIG_SND_UMP_LEGACY_RAWMIDI=y
CONFIG_SND_CORE_TEST=m
CONFIG_SND_COMPRESS_OFFLOAD=m
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_PCM_TIMER=y
CONFIG_SND_HRTIMER=m
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_CTL_FAST_LOOKUP=y
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_CTL_INPUT_VALIDATION is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_CTL_LED=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_SEQUENCER_OSS=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_SEQ_MIDI_EVENT=m
CONFIG_SND_SEQ_MIDI=m
CONFIG_SND_SEQ_MIDI_EMUL=m
CONFIG_SND_SEQ_VIRMIDI=m
CONFIG_SND_SEQ_UMP=y
CONFIG_SND_SEQ_UMP_CLIENT=m
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_OPL3_LIB_SEQ=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
CONFIG_SND_PCSP=m
CONFIG_SND_DUMMY=m
CONFIG_SND_ALOOP=m
CONFIG_SND_PCMTEST=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_MTS64=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
CONFIG_SND_PORTMAN2X4=m
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_SB_COMMON=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
CONFIG_SND_ALS4000=m
CONFIG_SND_ALI5451=m
CONFIG_SND_ASIHPI=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
# CONFIG_SND_AW2 is not set
CONFIG_SND_AZT3328=m
CONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not set
CONFIG_SND_CA0106=m
CONFIG_SND_CMIPCI=m
CONFIG_SND_OXYGEN_LIB=m
CONFIG_SND_OXYGEN=m
CONFIG_SND_CS4281=m
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CTXFI=m
CONFIG_SND_DARLA20=m
CONFIG_SND_GINA20=m
CONFIG_SND_LAYLA20=m
CONFIG_SND_DARLA24=m
CONFIG_SND_GINA24=m
CONFIG_SND_LAYLA24=m
CONFIG_SND_MONA=m
CONFIG_SND_MIA=m
CONFIG_SND_ECHO3G=m
CONFIG_SND_INDIGO=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_ES1938=m
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_KORG1212=m
CONFIG_SND_LOLA=m
CONFIG_SND_LX6464ES=m
CONFIG_SND_MAESTRO3=m
CONFIG_SND_MAESTRO3_INPUT=y
CONFIG_SND_MIXART=m
CONFIG_SND_NM256=m
CONFIG_SND_PCXHR=m
CONFIG_SND_RIPTIDE=m
CONFIG_SND_RME32=m
CONFIG_SND_RME96=m
CONFIG_SND_RME9652=m
CONFIG_SND_SONICVIBES=m
CONFIG_SND_TRIDENT=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m

#
# HD-Audio
#
CONFIG_SND_HDA=m
CONFIG_SND_HDA_GENERIC_LEDS=y
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CIRRUS_SCODEC=m
CONFIG_SND_HDA_CIRRUS_SCODEC_KUNIT_TEST=m
CONFIG_SND_HDA_SCODEC_CS35L41=m
CONFIG_SND_HDA_CS_DSP_CONTROLS=m
CONFIG_SND_HDA_SCODEC_COMPONENT=m
CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m
CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m
CONFIG_SND_HDA_SCODEC_CS35L56=m
CONFIG_SND_HDA_SCODEC_CS35L56_I2C=m
CONFIG_SND_HDA_SCODEC_CS35L56_SPI=m
CONFIG_SND_HDA_SCODEC_TAS2781_I2C=m
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_CODEC_CIRRUS=m
CONFIG_SND_HDA_CODEC_CS8409=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_SENARYTECH=m
CONFIG_SND_HDA_CODEC_CA0110=m
CONFIG_SND_HDA_CODEC_CA0132=m
CONFIG_SND_HDA_CODEC_CA0132_DSP=y
CONFIG_SND_HDA_CODEC_CMEDIA=m
CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y
# CONFIG_SND_HDA_CTL_DEV_ID is not set
# end of HD-Audio

CONFIG_SND_HDA_CORE=m
CONFIG_SND_HDA_DSP_LOADER=y
CONFIG_SND_HDA_COMPONENT=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_EXT_CORE=m
CONFIG_SND_HDA_PREALLOC_SIZE=0
CONFIG_SND_INTEL_NHLT=y
CONFIG_SND_INTEL_DSP_CONFIG=m
CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
# CONFIG_SND_INTEL_BYT_PREFER_SOF is not set
# CONFIG_SND_SPI is not set
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_AUDIO_MIDI_V2=y
CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
CONFIG_SND_USB_UA101=m
CONFIG_SND_USB_USX2Y=m
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_US122L=m
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_USB_HIFACE=m
CONFIG_SND_BCD2000=m
CONFIG_SND_USB_LINE6=m
CONFIG_SND_USB_POD=m
CONFIG_SND_USB_PODHD=m
CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_USB_VARIAX=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWIRE_LIB=m
CONFIG_SND_DICE=m
CONFIG_SND_OXFW=m
CONFIG_SND_ISIGHT=m
CONFIG_SND_FIREWORKS=m
CONFIG_SND_BEBOB=m
CONFIG_SND_FIREWIRE_DIGI00X=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREFACE=m
# CONFIG_SND_PCMCIA is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_AC97_BUS=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_COMPRESS=y
CONFIG_SND_SOC_TOPOLOGY=y
# CONFIG_SND_SOC_TOPOLOGY_BUILD is not set
CONFIG_SND_SOC_TOPOLOGY_KUNIT_TEST=m
CONFIG_SND_SOC_CARD_KUNIT_TEST=m
CONFIG_SND_SOC_UTILS_KUNIT_TEST=m
CONFIG_SND_SOC_ACPI=m
CONFIG_SND_SOC_ADI=m
CONFIG_SND_SOC_ADI_AXI_I2S=m
CONFIG_SND_SOC_ADI_AXI_SPDIF=m
CONFIG_SND_SOC_AMD_ACP=m
CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
CONFIG_SND_SOC_AMD_ST_ES8336_MACH=m
CONFIG_SND_SOC_AMD_ACP3x=m
CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m
CONFIG_SND_SOC_AMD_RENOIR=m
CONFIG_SND_SOC_AMD_RENOIR_MACH=m
CONFIG_SND_SOC_AMD_ACP5x=m
CONFIG_SND_SOC_AMD_VANGOGH_MACH=m
CONFIG_SND_SOC_AMD_ACP6x=m
CONFIG_SND_SOC_AMD_YC_MACH=m
CONFIG_SND_AMD_ACP_CONFIG=m
CONFIG_SND_SOC_AMD_ACP_COMMON=m
CONFIG_SND_SOC_AMD_ACP_PDM=m
CONFIG_SND_SOC_AMD_ACP_LEGACY_COMMON=m
CONFIG_SND_SOC_AMD_ACP_I2S=m
CONFIG_SND_SOC_AMD_ACP_PCM=m
CONFIG_SND_SOC_AMD_ACP_PCI=m
CONFIG_SND_AMD_ASOC_RENOIR=m
# CONFIG_SND_AMD_ASOC_REMBRANDT is not set
# CONFIG_SND_AMD_ASOC_ACP63 is not set
CONFIG_SND_AMD_ASOC_ACP70=m
CONFIG_SND_SOC_AMD_MACH_COMMON=m
CONFIG_SND_SOC_AMD_LEGACY_MACH=m
# CONFIG_SND_SOC_AMD_SOF_MACH is not set
CONFIG_SND_AMD_SOUNDWIRE_ACPI=m
CONFIG_SND_SOC_AMD_RPL_ACP6x=m
CONFIG_SND_SOC_AMD_ACP63_TOPLEVEL=m
CONFIG_SND_SOC_AMD_SOUNDWIRE_LINK_BASELINE=m
CONFIG_SND_SOC_AMD_SOUNDWIRE=m
CONFIG_SND_SOC_AMD_PS=m
CONFIG_SND_SOC_AMD_PS_MACH=m
# CONFIG_SND_ATMEL_SOC is not set
# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
# CONFIG_SND_DESIGNWARE_I2S is not set

#
# SoC Audio for Freescale CPUs
#

#
# Common SoC Audio options for Freescale CPUs:
#
# CONFIG_SND_SOC_FSL_ASRC is not set
# CONFIG_SND_SOC_FSL_SAI is not set
# CONFIG_SND_SOC_FSL_AUDMIX is not set
# CONFIG_SND_SOC_FSL_SSI is not set
# CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not set
# CONFIG_SND_SOC_FSL_MICFIL is not set
# CONFIG_SND_SOC_FSL_XCVR is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# end of SoC Audio for Freescale CPUs

CONFIG_SND_SOC_CHV3_I2S=m
# CONFIG_SND_I2S_HI6210_I2S is not set
# CONFIG_SND_SOC_IMG is not set
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
# CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SKL=m
CONFIG_SND_SOC_INTEL_APL=m
CONFIG_SND_SOC_INTEL_KBL=m
CONFIG_SND_SOC_INTEL_GLK=m
CONFIG_SND_SOC_INTEL_CNL=m
CONFIG_SND_SOC_INTEL_CFL=m
CONFIG_SND_SOC_INTEL_CML_H=m
CONFIG_SND_SOC_INTEL_CML_LP=m
CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_AVS=m

#
# Intel AVS Machine drivers
#

#
# Available DSP configurations
#
CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m
CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m
CONFIG_SND_SOC_INTEL_AVS_MACH_ES8336=m
CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927=m
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m
CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT5514=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT5663=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682=m
CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567=m
# end of Intel AVS Machine drivers

CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_SOF_REALTEK_COMMON=m
CONFIG_SND_SOC_INTEL_SOF_CIRRUS_COMMON=m
CONFIG_SND_SOC_INTEL_SOF_NUVOTON_COMMON=m
CONFIG_SND_SOC_INTEL_SOF_BOARD_HELPERS=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m
CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_DA7219_MACH=m
CONFIG_SND_SOC_INTEL_SOF_SSP_AMP_MACH=m
CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m
CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
# CONFIG_SND_SOC_MTK_BTCVSD is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SOF_PCI_DEV=m
CONFIG_SND_SOC_SOF_PCI=m
CONFIG_SND_SOC_SOF_ACPI=m
CONFIG_SND_SOC_SOF_ACPI_DEV=m
CONFIG_SND_SOC_SOF_DEBUG_PROBES=m
CONFIG_SND_SOC_SOF_CLIENT=m
# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set
CONFIG_SND_SOC_SOF=m
CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
CONFIG_SND_SOC_SOF_IPC3=y
CONFIG_SND_SOC_SOF_IPC4=y
CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m
CONFIG_SND_SOC_SOF_AMD_COMMON=m
CONFIG_SND_SOC_SOF_AMD_RENOIR=m
CONFIG_SND_SOC_SOF_AMD_VANGOGH=m
CONFIG_SND_SOC_SOF_AMD_REMBRANDT=m
CONFIG_SND_SOC_SOF_ACP_PROBES=m
CONFIG_SND_SOC_SOF_AMD_SOUNDWIRE_LINK_BASELINE=m
CONFIG_SND_SOC_SOF_AMD_SOUNDWIRE=m
CONFIG_SND_SOC_SOF_AMD_ACP63=m
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
CONFIG_SND_SOC_SOF_INTEL_COMMON=m
CONFIG_SND_SOC_SOF_BAYTRAIL=m
CONFIG_SND_SOC_SOF_BROADWELL=m
CONFIG_SND_SOC_SOF_MERRIFIELD=m
CONFIG_SND_SOC_SOF_INTEL_SKL=m
CONFIG_SND_SOC_SOF_SKYLAKE=m
CONFIG_SND_SOC_SOF_KABYLAKE=m
CONFIG_SND_SOC_SOF_INTEL_APL=m
CONFIG_SND_SOC_SOF_APOLLOLAKE=m
CONFIG_SND_SOC_SOF_GEMINILAKE=m
CONFIG_SND_SOC_SOF_INTEL_CNL=m
CONFIG_SND_SOC_SOF_CANNONLAKE=m
CONFIG_SND_SOC_SOF_COFFEELAKE=m
CONFIG_SND_SOC_SOF_COMETLAKE=m
CONFIG_SND_SOC_SOF_INTEL_ICL=m
CONFIG_SND_SOC_SOF_ICELAKE=m
CONFIG_SND_SOC_SOF_JASPERLAKE=m
CONFIG_SND_SOC_SOF_INTEL_TGL=m
CONFIG_SND_SOC_SOF_TIGERLAKE=m
CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
CONFIG_SND_SOC_SOF_ALDERLAKE=m
CONFIG_SND_SOC_SOF_INTEL_MTL=m
CONFIG_SND_SOC_SOF_METEORLAKE=m
CONFIG_SND_SOC_SOF_INTEL_LNL=m
CONFIG_SND_SOC_SOF_LUNARLAKE=m
CONFIG_SND_SOC_SOF_HDA_COMMON=m
CONFIG_SND_SOC_SOF_HDA_GENERIC=m
CONFIG_SND_SOC_SOF_HDA_MLINK=m
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
CONFIG_SND_SOC_SOF_HDA=m
CONFIG_SND_SOC_SOF_HDA_PROBES=m
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m
CONFIG_SND_SOC_SOF_XTENSA=m

#
# STMicroelectronics STM32 SOC audio support
#
# end of STMicroelectronics STM32 SOC audio support

# CONFIG_SND_SOC_XILINX_I2S is not set
# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
# CONFIG_SND_SOC_XILINX_SPDIF is not set
# CONFIG_SND_SOC_XTFPGA_I2S is not set
CONFIG_SND_SOC_I2C_AND_SPI=m

#
# CODEC drivers
#
CONFIG_SND_SOC_ARIZONA=m
CONFIG_SND_SOC_WM_ADSP=m
CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ADAU_UTILS=m
# CONFIG_SND_SOC_ADAU1372_I2C is not set
# CONFIG_SND_SOC_ADAU1372_SPI is not set
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU17X1=m
CONFIG_SND_SOC_ADAU1761=m
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
CONFIG_SND_SOC_ADAU7002=m
CONFIG_SND_SOC_ADAU7118=m
CONFIG_SND_SOC_ADAU7118_HW=m
CONFIG_SND_SOC_ADAU7118_I2C=m
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
# CONFIG_SND_SOC_AK4375 is not set
# CONFIG_SND_SOC_AK4458 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4613 is not set
CONFIG_SND_SOC_AK4619=m
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
CONFIG_SND_SOC_AK5558=m
# CONFIG_SND_SOC_ALC5623 is not set
CONFIG_SND_SOC_AUDIO_IIO_AUX=m
CONFIG_SND_SOC_AW8738=m
CONFIG_SND_SOC_AW88395_LIB=m
CONFIG_SND_SOC_AW88395=m
CONFIG_SND_SOC_AW88261=m
CONFIG_SND_SOC_AW87390=m
CONFIG_SND_SOC_AW88399=m
CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_BT_SCO=m
CONFIG_SND_SOC_CHV3_CODEC=m
CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS_AMP_LIB=m
CONFIG_SND_SOC_CS_AMP_LIB_TEST=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
CONFIG_SND_SOC_CS35L41_LIB=m
CONFIG_SND_SOC_CS35L41=m
CONFIG_SND_SOC_CS35L41_SPI=m
CONFIG_SND_SOC_CS35L41_I2C=m
CONFIG_SND_SOC_CS35L45=m
CONFIG_SND_SOC_CS35L45_SPI=m
CONFIG_SND_SOC_CS35L45_I2C=m
CONFIG_SND_SOC_CS35L56=m
CONFIG_SND_SOC_CS35L56_SHARED=m
CONFIG_SND_SOC_CS35L56_I2C=m
CONFIG_SND_SOC_CS35L56_SPI=m
CONFIG_SND_SOC_CS35L56_SDW=m
CONFIG_SND_SOC_CS40L50=m
CONFIG_SND_SOC_CS42L42_CORE=m
CONFIG_SND_SOC_CS42L42=m
CONFIG_SND_SOC_CS42L42_SDW=m
CONFIG_SND_SOC_CS42L43=m
CONFIG_SND_SOC_CS42L43_SDW=m
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
CONFIG_SND_SOC_CS42L83=m
CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
# CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not set
CONFIG_SND_SOC_CS43130=m
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_CS530X=m
CONFIG_SND_SOC_CS530X_I2C=m
CONFIG_SND_SOC_CX2072X=m
CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DA7219=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES7241 is not set
CONFIG_SND_SOC_ES83XX_DSM_COMMON=m
CONFIG_SND_SOC_ES8311=m
CONFIG_SND_SOC_ES8316=m
CONFIG_SND_SOC_ES8326=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328_SPI=m
# CONFIG_SND_SOC_GTM601 is not set
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDA=m
# CONFIG_SND_SOC_ICS43432 is not set
CONFIG_SND_SOC_IDT821034=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98090=m
CONFIG_SND_SOC_MAX98357A=m
# CONFIG_SND_SOC_MAX98504 is not set
CONFIG_SND_SOC_MAX9867=m
CONFIG_SND_SOC_MAX98927=m
CONFIG_SND_SOC_MAX98520=m
CONFIG_SND_SOC_MAX98363=m
CONFIG_SND_SOC_MAX98373=m
CONFIG_SND_SOC_MAX98373_I2C=m
CONFIG_SND_SOC_MAX98373_SDW=m
CONFIG_SND_SOC_MAX98388=m
CONFIG_SND_SOC_MAX98390=m
CONFIG_SND_SOC_MAX98396=m
# CONFIG_SND_SOC_MAX9860 is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_PCM1681 is not set
CONFIG_SND_SOC_PCM1789=m
CONFIG_SND_SOC_PCM1789_I2C=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
CONFIG_SND_SOC_PCM186X=m
CONFIG_SND_SOC_PCM186X_I2C=m
CONFIG_SND_SOC_PCM186X_SPI=m
CONFIG_SND_SOC_PCM3060=m
CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM5102A is not set
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_I2C=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
CONFIG_SND_SOC_PCM6240=m
# CONFIG_SND_SOC_PEB2466 is not set
CONFIG_SND_SOC_RL6231=m
CONFIG_SND_SOC_RL6347A=m
CONFIG_SND_SOC_RT274=m
CONFIG_SND_SOC_RT286=m
CONFIG_SND_SOC_RT298=m
CONFIG_SND_SOC_RT1011=m
CONFIG_SND_SOC_RT1015=m
CONFIG_SND_SOC_RT1015P=m
CONFIG_SND_SOC_RT1017_SDCA_SDW=m
CONFIG_SND_SOC_RT1019=m
CONFIG_SND_SOC_RT1308=m
CONFIG_SND_SOC_RT1308_SDW=m
CONFIG_SND_SOC_RT1316_SDW=m
CONFIG_SND_SOC_RT1318_SDW=m
CONFIG_SND_SOC_RT1320_SDW=m
CONFIG_SND_SOC_RT5514=m
CONFIG_SND_SOC_RT5514_SPI=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5640=m
CONFIG_SND_SOC_RT5645=m
CONFIG_SND_SOC_RT5651=m
CONFIG_SND_SOC_RT5659=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5663=m
CONFIG_SND_SOC_RT5670=m
CONFIG_SND_SOC_RT5677=m
CONFIG_SND_SOC_RT5677_SPI=m
CONFIG_SND_SOC_RT5682=m
CONFIG_SND_SOC_RT5682_I2C=m
CONFIG_SND_SOC_RT5682_SDW=m
CONFIG_SND_SOC_RT5682S=m
CONFIG_SND_SOC_RT700=m
CONFIG_SND_SOC_RT700_SDW=m
CONFIG_SND_SOC_RT711=m
CONFIG_SND_SOC_RT711_SDW=m
CONFIG_SND_SOC_RT711_SDCA_SDW=m
CONFIG_SND_SOC_RT712_SDCA_SDW=m
CONFIG_SND_SOC_RT712_SDCA_DMIC_SDW=m
CONFIG_SND_SOC_RT722_SDCA_SDW=m
CONFIG_SND_SOC_RT715=m
CONFIG_SND_SOC_RT715_SDW=m
CONFIG_SND_SOC_RT715_SDCA_SDW=m
# CONFIG_SND_SOC_RT9120 is not set
CONFIG_SND_SOC_RTQ9128=m
# CONFIG_SND_SOC_SDW_MOCKUP is not set
# CONFIG_SND_SOC_SGTL5000 is not set
CONFIG_SND_SOC_SIGMADSP=m
CONFIG_SND_SOC_SIGMADSP_REGMAP=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SIMPLE_MUX=m
CONFIG_SND_SOC_SMA1303=m
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SRC4XXX_I2C is not set
# CONFIG_SND_SOC_SSM2305 is not set
# CONFIG_SND_SOC_SSM2518 is not set
# CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set
CONFIG_SND_SOC_SSM4567=m
# CONFIG_SND_SOC_STA32X is not set
# CONFIG_SND_SOC_STA350 is not set
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
CONFIG_SND_SOC_TAS2780=m
CONFIG_SND_SOC_TAS2781_COMLIB=m
CONFIG_SND_SOC_TAS2781_FMWLIB=m
CONFIG_SND_SOC_TAS2781_I2C=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
# CONFIG_SND_SOC_TAS5720 is not set
CONFIG_SND_SOC_TAS5805M=m
CONFIG_SND_SOC_TAS6424=m
CONFIG_SND_SOC_TDA7419=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TFA989X is not set
CONFIG_SND_SOC_TLV320ADC3XXX=m
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
CONFIG_SND_SOC_TLV320AIC32X4=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
CONFIG_SND_SOC_TLV320ADCX140=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
# CONFIG_SND_SOC_UDA1334 is not set
CONFIG_SND_SOC_WCD_CLASSH=m
CONFIG_SND_SOC_WCD_MBHC=m
CONFIG_SND_SOC_WCD937X=m
CONFIG_SND_SOC_WCD937X_SDW=m
# CONFIG_SND_SOC_WCD938X_SDW is not set
CONFIG_SND_SOC_WCD939X=m
CONFIG_SND_SOC_WCD939X_SDW=m
CONFIG_SND_SOC_WM5102=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
CONFIG_SND_SOC_WM8731=m
CONFIG_SND_SOC_WM8731_I2C=m
CONFIG_SND_SOC_WM8731_SPI=m
# CONFIG_SND_SOC_WM8737 is not set
# CONFIG_SND_SOC_WM8741 is not set
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
# CONFIG_SND_SOC_WM8776 is not set
# CONFIG_SND_SOC_WM8782 is not set
CONFIG_SND_SOC_WM8804=m
CONFIG_SND_SOC_WM8804_I2C=m
# CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set
# CONFIG_SND_SOC_WM8904 is not set
CONFIG_SND_SOC_WM8940=m
# CONFIG_SND_SOC_WM8960 is not set
CONFIG_SND_SOC_WM8961=m
# CONFIG_SND_SOC_WM8962 is not set
# CONFIG_SND_SOC_WM8974 is not set
# CONFIG_SND_SOC_WM8978 is not set
# CONFIG_SND_SOC_WM8985 is not set
# CONFIG_SND_SOC_WSA881X is not set
CONFIG_SND_SOC_WSA883X=m
CONFIG_SND_SOC_WSA884X=m
CONFIG_SND_SOC_ZL38060=m
CONFIG_SND_SOC_MAX9759=m
# CONFIG_SND_SOC_MT6351 is not set
# CONFIG_SND_SOC_MT6358 is not set
# CONFIG_SND_SOC_MT6660 is not set
CONFIG_SND_SOC_NAU8315=m
CONFIG_SND_SOC_NAU8540=m
# CONFIG_SND_SOC_NAU8810 is not set
CONFIG_SND_SOC_NAU8821=m
# CONFIG_SND_SOC_NAU8822 is not set
CONFIG_SND_SOC_NAU8824=m
CONFIG_SND_SOC_NAU8825=m
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
# end of CODEC drivers

CONFIG_SND_SIMPLE_CARD_UTILS=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_X86=y
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_SND_SYNTH_EMUX=m
CONFIG_SND_XEN_FRONTEND=m
CONFIG_SND_VIRTIO=m
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
CONFIG_UHID=m
CONFIG_HID_GENERIC=y

#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
CONFIG_HID_APPLEIR=m
CONFIG_HID_ASUS=m
CONFIG_HID_AUREAL=m
CONFIG_HID_BELKIN=m
CONFIG_HID_BETOP_FF=m
CONFIG_HID_BIGBEN_FF=m
CONFIG_HID_CHERRY=m
CONFIG_HID_CHICONY=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_MACALLY=m
CONFIG_HID_PRODIKEYS=m
CONFIG_HID_CMEDIA=m
CONFIG_HID_CP2112=m
CONFIG_HID_CREATIVE_SB0540=m
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELAN=m
CONFIG_HID_ELECOM=m
CONFIG_HID_ELO=m
CONFIG_HID_EVISION=m
CONFIG_HID_EZKEY=m
CONFIG_HID_FT260=m
CONFIG_HID_GEMBIRD=m
CONFIG_HID_GFRM=m
CONFIG_HID_GLORIOUS=m
CONFIG_HID_HOLTEK=m
CONFIG_HOLTEK_FF=y
CONFIG_HID_VIVALDI_COMMON=m
# CONFIG_HID_GOOGLE_HAMMER is not set
CONFIG_HID_GOOGLE_STADIA_FF=m
CONFIG_HID_VIVALDI=m
CONFIG_HID_GT683R=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_WALTOP=m
CONFIG_HID_VIEWSONIC=m
# CONFIG_HID_VRC2 is not set
CONFIG_HID_XIAOMI=m
CONFIG_HID_GYRATION=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
CONFIG_HID_JABRA=m
CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LED=m
CONFIG_HID_LENOVO=m
CONFIG_HID_LETSKETCH=m
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
CONFIG_HID_LOGITECH_HIDPP=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=y
CONFIG_HID_MALTRON=m
CONFIG_HID_MAYFLASH=m
CONFIG_HID_MEGAWORLD_FF=m
# CONFIG_HID_REDRAGON is not set
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NINTENDO=m
CONFIG_NINTENDO_FF=y
CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_NVIDIA_SHIELD=m
CONFIG_NVIDIA_SHIELD_FF=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
CONFIG_PANTHERLORD_FF=y
CONFIG_HID_PENMOUNT=m
CONFIG_HID_PETALYNX=m
CONFIG_HID_PICOLCD=m
CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
# CONFIG_HID_PICOLCD_CIR is not set
CONFIG_HID_PLANTRONICS=m
CONFIG_HID_PLAYSTATION=m
CONFIG_PLAYSTATION_FF=y
CONFIG_HID_PXRC=m
CONFIG_HID_RAZER=m
CONFIG_HID_PRIMAX=m
CONFIG_HID_RETRODE=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SEMITEK=m
CONFIG_HID_SIGMAMICRO=m
CONFIG_HID_SONY=m
CONFIG_SONY_FF=y
CONFIG_HID_SPEEDLINK=m
CONFIG_HID_STEAM=m
CONFIG_STEAM_FF=y
CONFIG_HID_STEELSERIES=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_RMI=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_HID_TIVO=m
CONFIG_HID_TOPSEED=m
CONFIG_HID_TOPRE=m
CONFIG_HID_THINGM=m
CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_U2FZERO=m
CONFIG_HID_WACOM=m
CONFIG_HID_WIIMOTE=m
CONFIG_HID_WINWING=m
CONFIG_HID_XINMO=m
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
CONFIG_HID_SENSOR_HUB=m
# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
CONFIG_HID_ALPS=m
# CONFIG_HID_MCP2200 is not set
CONFIG_HID_MCP2221=m
CONFIG_HID_KUNIT_TEST=m
# end of Special HID drivers

#
# HID-BPF support
#
CONFIG_HID_BPF=y
# end of HID-BPF support

#
# USB HID support
#
CONFIG_USB_HID=y
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
# end of USB HID support

CONFIG_I2C_HID=y
CONFIG_I2C_HID_ACPI=m
# CONFIG_I2C_HID_OF is not set
CONFIG_I2C_HID_CORE=m

#
# Intel ISH HID support
#
CONFIG_INTEL_ISH_HID=m
CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
# end of Intel ISH HID support

#
# AMD SFH HID Support
#
CONFIG_AMD_SFH_HID=m
# end of AMD SFH HID Support

#
# Surface System Aggregator Module HID support
#
CONFIG_SURFACE_HID=m
CONFIG_SURFACE_KBD=m
# end of Surface System Aggregator Module HID support

CONFIG_SURFACE_HID_CORE=m
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_LED_TRIG=y
CONFIG_USB_ULPI_BUS=m
# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
CONFIG_USB_PCI=y
CONFIG_USB_PCI_AMD=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

#
# Miscellaneous USB options
#
CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_PRODUCTLIST is not set
# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_AUTOSUSPEND_DELAY=2
CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1
CONFIG_USB_MON=y

#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_XHCI_HCD=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_PCI=m
CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=m
# CONFIG_USB_EHCI_FSL is not set
# CONFIG_USB_EHCI_HCD_PLATFORM is not set
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_MAX3421_HCD is not set
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PCI=m
# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
CONFIG_USB_UHCI_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_HCD_ISO=y
# CONFIG_USB_SL811_CS is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HCD_BCMA is not set
# CONFIG_USB_HCD_SSB is not set
# CONFIG_USB_HCD_TEST_MODE is not set
CONFIG_USB_XEN_HCD=m

#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_WDM=m
CONFIG_USB_TMC=m

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#

#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=m
CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_DATAFAB=m
CONFIG_USB_STORAGE_FREECOM=m
CONFIG_USB_STORAGE_ISD200=m
CONFIG_USB_STORAGE_USBAT=m
CONFIG_USB_STORAGE_SDDR09=m
CONFIG_USB_STORAGE_SDDR55=m
CONFIG_USB_STORAGE_JUMPSHOT=m
CONFIG_USB_STORAGE_ALAUDA=m
CONFIG_USB_STORAGE_ONETOUCH=m
CONFIG_USB_STORAGE_KARMA=m
CONFIG_USB_STORAGE_CYPRESS_ATACB=m
CONFIG_USB_STORAGE_ENE_UB6250=m
CONFIG_USB_UAS=m

#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_VHCI_HC_PORTS=8
CONFIG_USBIP_VHCI_NR_HCS=1
CONFIG_USBIP_HOST=m
# CONFIG_USBIP_VUDC is not set
# CONFIG_USBIP_DEBUG is not set

#
# USB dual-mode controller drivers
#
CONFIG_USB_CDNS_SUPPORT=m
# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CDNSP_PCI=m
# CONFIG_USB_CDNSP_GADGET is not set
# CONFIG_USB_CDNSP_HOST is not set
# CONFIG_USB_MUSB_HDRC is not set
CONFIG_USB_DWC3=m
# CONFIG_USB_DWC3_ULPI is not set
CONFIG_USB_DWC3_HOST=y
# CONFIG_USB_DWC3_GADGET is not set
# CONFIG_USB_DWC3_DUAL_ROLE is not set

#
# Platform Glue Driver Support
#
CONFIG_USB_DWC3_PCI=m
# CONFIG_USB_DWC3_HAPS is not set
# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_ISP1760 is not set

#
# USB port drivers
#
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_CONSOLE=y
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
CONFIG_USB_SERIAL_AIRCABLE=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_CH341=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
CONFIG_USB_SERIAL_CP210X=m
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_F81232=m
CONFIG_USB_SERIAL_F8153X=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_IUU=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
# CONFIG_USB_SERIAL_METRO is not set
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7840=m
# CONFIG_USB_SERIAL_MXUPORT is not set
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_OTI6858=m
CONFIG_USB_SERIAL_QCAUX=m
CONFIG_USB_SERIAL_QUALCOMM=m
CONFIG_USB_SERIAL_SPCP8X5=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_SERIAL_SYMBOL=m
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_WWAN=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_SERIAL_OPTICON=m
CONFIG_USB_SERIAL_XSENS_MT=m
# CONFIG_USB_SERIAL_WISHBONE is not set
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_UPD78F0730=m
CONFIG_USB_SERIAL_XR=m
CONFIG_USB_SERIAL_DEBUG=m

#
# USB Miscellaneous drivers
#
CONFIG_USB_USS720=m
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
CONFIG_USB_SEVSEG=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
CONFIG_USB_IDMOUSE=m
CONFIG_USB_APPLEDISPLAY=m
CONFIG_APPLE_MFI_FASTCHARGE=m
CONFIG_USB_LJCA=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_LD=m
CONFIG_USB_TRANCEVIBRATOR=m
CONFIG_USB_IOWARRIOR=m
# CONFIG_USB_TEST is not set
# CONFIG_USB_EHSET_TEST_FIXTURE is not set
CONFIG_USB_ISIGHTFW=m
CONFIG_USB_YUREX=m
CONFIG_USB_EZUSB_FX2=m
CONFIG_USB_HUB_USB251XB=m
CONFIG_USB_HSIC_USB3503=m
CONFIG_USB_HSIC_USB4604=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m

#
# USB Physical Layer drivers
#
CONFIG_USB_PHY=y
CONFIG_NOP_USB_XCEIV=m
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_ISP1301 is not set
# end of USB Physical Layer drivers

CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2

#
# USB Peripheral Controller
#
# CONFIG_USB_GR_UDC is not set
# CONFIG_USB_R8A66597 is not set
# CONFIG_USB_PXA27X is not set
# CONFIG_USB_MV_UDC is not set
# CONFIG_USB_MV_U3D is not set
# CONFIG_USB_M66592 is not set
# CONFIG_USB_BDC_UDC is not set
# CONFIG_USB_AMD5536UDC is not set
# CONFIG_USB_NET2272 is not set
# CONFIG_USB_NET2280 is not set
# CONFIG_USB_GOKU is not set
# CONFIG_USB_EG20T is not set
# CONFIG_USB_MAX3420_UDC is not set
# CONFIG_USB_CDNS2_UDC is not set
CONFIG_USB_DUMMY_HCD=m
# end of USB Peripheral Controller

CONFIG_USB_LIBCOMPOSITE=m
CONFIG_USB_F_MASS_STORAGE=m
CONFIG_USB_CONFIGFS=m
# CONFIG_USB_CONFIGFS_SERIAL is not set
# CONFIG_USB_CONFIGFS_ACM is not set
# CONFIG_USB_CONFIGFS_OBEX is not set
# CONFIG_USB_CONFIGFS_NCM is not set
# CONFIG_USB_CONFIGFS_ECM is not set
# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
# CONFIG_USB_CONFIGFS_RNDIS is not set
# CONFIG_USB_CONFIGFS_EEM is not set
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
# CONFIG_USB_CONFIGFS_F_FS is not set
# CONFIG_USB_CONFIGFS_F_UAC1 is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
# CONFIG_USB_CONFIGFS_F_UAC2 is not set
# CONFIG_USB_CONFIGFS_F_MIDI is not set
# CONFIG_USB_CONFIGFS_F_MIDI2 is not set
# CONFIG_USB_CONFIGFS_F_HID is not set
# CONFIG_USB_CONFIGFS_F_UVC is not set
# CONFIG_USB_CONFIGFS_F_PRINTER is not set
# CONFIG_USB_CONFIGFS_F_TCM is not set

#
# USB Gadget precomposed configurations
#
# CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_ETH is not set
# CONFIG_USB_G_NCM is not set
# CONFIG_USB_GADGETFS is not set
# CONFIG_USB_FUNCTIONFS is not set
# CONFIG_USB_MASS_STORAGE is not set
# CONFIG_USB_GADGET_TARGET is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
# CONFIG_USB_G_HID is not set
# CONFIG_USB_G_DBGP is not set
# CONFIG_USB_G_WEBCAM is not set
# CONFIG_USB_RAW_GADGET is not set
# end of USB Gadget precomposed configurations

CONFIG_TYPEC=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
# CONFIG_TYPEC_RT1711H is not set
CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_FUSB302=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPEC_UCSI=m
CONFIG_UCSI_CCG=m
CONFIG_UCSI_ACPI=m
CONFIG_UCSI_STM32G0=m
CONFIG_TYPEC_TPS6598X=m
# CONFIG_TYPEC_ANX7411 is not set
CONFIG_TYPEC_RT1719=m
CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_WUSB3801=m

#
# USB Type-C Multiplexer/DeMultiplexer Switch support
#
CONFIG_TYPEC_MUX_FSA4480=m
CONFIG_TYPEC_MUX_GPIO_SBU=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
CONFIG_TYPEC_MUX_IT5205=m
CONFIG_TYPEC_MUX_NB7VPQ904M=m
CONFIG_TYPEC_MUX_PTN36502=m
# CONFIG_TYPEC_MUX_WCD939X_USBSS is not set
# end of USB Type-C Multiplexer/DeMultiplexer Switch support

#
# USB Type-C Alternate Mode drivers
#
CONFIG_TYPEC_DP_ALTMODE=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
# end of USB Type-C Alternate Mode drivers

CONFIG_USB_ROLE_SWITCH=y
CONFIG_USB_ROLES_INTEL_XHCI=m
CONFIG_MMC=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_SDIO_UART=m
# CONFIG_MMC_TEST is not set
# CONFIG_MMC_CRYPTO is not set

#
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_RICOH_MMC=y
CONFIG_MMC_SDHCI_ACPI=m
CONFIG_MMC_SDHCI_PLTFM=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_WBSD=m
CONFIG_MMC_ALCOR=m
CONFIG_MMC_TIFM_SD=m
# CONFIG_MMC_SPI is not set
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_CB710=m
CONFIG_MMC_VIA_SDMMC=m
CONFIG_MMC_VUB300=m
CONFIG_MMC_USHC=m
# CONFIG_MMC_USDHI6ROL0 is not set
CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_CQHCI=m
CONFIG_MMC_HSQ=m
CONFIG_MMC_TOSHIBA_PCI=m
# CONFIG_MMC_MTK is not set
CONFIG_MMC_SDHCI_XENON=m
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFS_BSG=y
CONFIG_SCSI_UFS_CRYPTO=y
CONFIG_SCSI_UFS_HWMON=y
CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
CONFIG_SCSI_UFSHCD_PLATFORM=m
CONFIG_SCSI_UFS_CDNS_PLATFORM=m
CONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set

#
# MemoryStick drivers
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
CONFIG_MSPRO_BLOCK=m
# CONFIG_MS_BLOCK is not set

#
# MemoryStick Host Controller Drivers
#
CONFIG_MEMSTICK_TIFM_MS=m
CONFIG_MEMSTICK_JMICRON_38X=m
CONFIG_MEMSTICK_R592=m
CONFIG_MEMSTICK_REALTEK_USB=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS_MULTICOLOR=m
CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y

#
# LED drivers
#
CONFIG_LEDS_APU=m
CONFIG_LEDS_AW200XX=m
CONFIG_LEDS_CHT_WCOVE=m
CONFIG_LEDS_CROS_EC=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3532=m
# CONFIG_LEDS_LM3642 is not set
# CONFIG_LEDS_PCA9532 is not set
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not set
CONFIG_LEDS_PCA995X=m
# CONFIG_LEDS_DAC124S085 is not set
# CONFIG_LEDS_PWM is not set
# CONFIG_LEDS_REGULATOR is not set
# CONFIG_LEDS_BD2606MVV is not set
# CONFIG_LEDS_BD2802 is not set
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
# CONFIG_LEDS_TCA6507 is not set
# CONFIG_LEDS_TLC591XX is not set
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_IS31FL319X is not set

#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
CONFIG_LEDS_BLINKM=m
CONFIG_LEDS_MLXCPLD=m
CONFIG_LEDS_MLXREG=m
CONFIG_LEDS_USER=m
CONFIG_LEDS_NIC78BX=m
# CONFIG_LEDS_SPI_BYTE is not set

#
# Flash and Torch LED drivers
#
CONFIG_LEDS_AS3645A=m
CONFIG_LEDS_LM3601X=m
# CONFIG_LEDS_RT8515 is not set
# CONFIG_LEDS_SGM3140 is not set

#
# RGB LED drivers
#
CONFIG_LEDS_KTD202X=m
CONFIG_LEDS_PWM_MULTICOLOR=m

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
# CONFIG_LEDS_TRIGGER_CPU is not set
CONFIG_LEDS_TRIGGER_ACTIVITY=m
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m

#
# iptables trigger is under Netfilter config (LED target)
#
CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_LEDS_TRIGGER_CAMERA=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_PATTERN=m
CONFIG_LEDS_TRIGGER_TTY=m
CONFIG_LEDS_TRIGGER_INPUT_EVENTS=m

#
# Simple LED drivers
#
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y

#
# Speakup console speech
#
CONFIG_SPEAKUP=m
CONFIG_SPEAKUP_SYNTH_ACNTSA=m
CONFIG_SPEAKUP_SYNTH_APOLLO=m
CONFIG_SPEAKUP_SYNTH_AUDPTR=m
CONFIG_SPEAKUP_SYNTH_BNS=m
CONFIG_SPEAKUP_SYNTH_DECTLK=m
# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
CONFIG_SPEAKUP_SYNTH_LTLK=m
CONFIG_SPEAKUP_SYNTH_SOFT=m
CONFIG_SPEAKUP_SYNTH_SPKOUT=m
CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
# end of Speakup console speech

CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_USER_MEM=y
CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
CONFIG_INFINIBAND_VIRT_DMA=y
CONFIG_INFINIBAND_BNXT_RE=m
CONFIG_INFINIBAND_CXGB4=m
CONFIG_INFINIBAND_EFA=m
CONFIG_INFINIBAND_ERDMA=m
CONFIG_INFINIBAND_HFI1=m
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
# CONFIG_SDMA_VERBOSITY is not set
CONFIG_INFINIBAND_IRDMA=m
CONFIG_MANA_INFINIBAND=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_INFINIBAND=m
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
CONFIG_INFINIBAND_OCRDMA=m
CONFIG_INFINIBAND_QEDR=m
CONFIG_INFINIBAND_QIB=m
CONFIG_INFINIBAND_QIB_DCA=y
CONFIG_INFINIBAND_USNIC=m
CONFIG_INFINIBAND_VMWARE_PVRDMA=m
CONFIG_INFINIBAND_RDMAVT=m
CONFIG_RDMA_RXE=m
CONFIG_RDMA_SIW=m
CONFIG_INFINIBAND_IPOIB=m
CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
CONFIG_INFINIBAND_ISERT=m
CONFIG_INFINIBAND_RTRS=m
CONFIG_INFINIBAND_RTRS_CLIENT=m
CONFIG_INFINIBAND_RTRS_SERVER=m
CONFIG_INFINIBAND_OPA_VNIC=m
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_GHES=y
CONFIG_EDAC_AMD64=m
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_IE31200=m
CONFIG_EDAC_X38=m
CONFIG_EDAC_I5400=m
CONFIG_EDAC_I7CORE=m
CONFIG_EDAC_I5100=m
CONFIG_EDAC_I7300=m
CONFIG_EDAC_SBRIDGE=m
CONFIG_EDAC_SKX=m
CONFIG_EDAC_I10NM=m
CONFIG_EDAC_PND2=m
CONFIG_EDAC_IGEN6=m
CONFIG_RTC_LIB=y
CONFIG_RTC_MC146818_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
CONFIG_RTC_LIB_KUNIT_TEST=m
CONFIG_RTC_NVMEM=y

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_ABB5ZES3 is not set
CONFIG_RTC_DRV_ABEOZ9=m
CONFIG_RTC_DRV_ABX80X=m
CONFIG_RTC_DRV_DS1307=m
# CONFIG_RTC_DRV_DS1307_CENTURY is not set
CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_DS1374_WDT=y
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_MAX6900=m
CONFIG_RTC_DRV_MAX31335=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12022=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_PCF8523=m
CONFIG_RTC_DRV_PCF85063=m
# CONFIG_RTC_DRV_PCF85363 is not set
CONFIG_RTC_DRV_PCF8563=m
CONFIG_RTC_DRV_PCF8583=m
CONFIG_RTC_DRV_M41T80=m
CONFIG_RTC_DRV_M41T80_WDT=y
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_TPS6594=m
# CONFIG_RTC_DRV_S35390A is not set
CONFIG_RTC_DRV_FM3130=m
CONFIG_RTC_DRV_RX8010=m
# CONFIG_RTC_DRV_RX8111 is not set
CONFIG_RTC_DRV_RX8581=m
CONFIG_RTC_DRV_RX8025=m
CONFIG_RTC_DRV_EM3027=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3032=m
CONFIG_RTC_DRV_RV8803=m
CONFIG_RTC_DRV_SD3078=m

#
# SPI RTC drivers
#
CONFIG_RTC_DRV_M41T93=m
CONFIG_RTC_DRV_M41T94=m
# CONFIG_RTC_DRV_DS1302 is not set
CONFIG_RTC_DRV_DS1305=m
CONFIG_RTC_DRV_DS1343=m
CONFIG_RTC_DRV_DS1347=m
CONFIG_RTC_DRV_DS1390=m
CONFIG_RTC_DRV_MAX6916=m
CONFIG_RTC_DRV_R9701=m
CONFIG_RTC_DRV_RX4581=m
CONFIG_RTC_DRV_RS5C348=m
CONFIG_RTC_DRV_MAX6902=m
CONFIG_RTC_DRV_PCF2123=m
CONFIG_RTC_DRV_MCP795=m
CONFIG_RTC_I2C_AND_SPI=y

#
# SPI and I2C RTC drivers
#
CONFIG_RTC_DRV_DS3232=m
# CONFIG_RTC_DRV_DS3232_HWMON is not set
CONFIG_RTC_DRV_PCF2127=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
# CONFIG_RTC_DRV_RX6110 is not set

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
CONFIG_RTC_DRV_DS1286=m
CONFIG_RTC_DRV_DS1511=m
CONFIG_RTC_DRV_DS1553=m
CONFIG_RTC_DRV_DS1685_FAMILY=m
CONFIG_RTC_DRV_DS1685=y
# CONFIG_RTC_DRV_DS1689 is not set
# CONFIG_RTC_DRV_DS17285 is not set
# CONFIG_RTC_DRV_DS17485 is not set
# CONFIG_RTC_DRV_DS17885 is not set
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_DS2404=m
CONFIG_RTC_DRV_STK17TA8=m
# CONFIG_RTC_DRV_M48T86 is not set
CONFIG_RTC_DRV_M48T35=m
CONFIG_RTC_DRV_M48T59=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_RP5C01=m
CONFIG_RTC_DRV_CROS_EC=m

#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_FTRTC010 is not set

#
# HID Sensor RTC drivers
#
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
# CONFIG_RTC_DRV_GOLDFISH is not set
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
CONFIG_DMA_ENGINE=y
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DMA_ACPI=y
CONFIG_ALTERA_MSGDMA=m
CONFIG_INTEL_IDMA64=m
CONFIG_INTEL_IDXD_BUS=m
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IDXD_COMPAT is not set
CONFIG_INTEL_IDXD_SVM=y
CONFIG_INTEL_IDXD_PERFMON=y
CONFIG_INTEL_IOATDMA=m
# CONFIG_PLX_DMA is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_XDMA=m
CONFIG_AMD_PTDMA=m
# CONFIG_QCOM_HIDMA_MGMT is not set
# CONFIG_QCOM_HIDMA is not set
CONFIG_DW_DMAC_CORE=y
CONFIG_DW_DMAC=m
CONFIG_DW_DMAC_PCI=y
CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_HSU_DMA=y
# CONFIG_SF_PDMA is not set
# CONFIG_INTEL_LDMA is not set

#
# DMA Clients
#
CONFIG_ASYNC_TX_DMA=y
# CONFIG_DMATEST is not set
CONFIG_DMA_ENGINE_RAID=y

#
# DMABUF options
#
CONFIG_SYNC_FILE=y
# CONFIG_SW_SYNC is not set
CONFIG_UDMABUF=y
# CONFIG_DMABUF_MOVE_NOTIFY is not set
# CONFIG_DMABUF_DEBUG is not set
# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMABUF_HEAPS=y
# CONFIG_DMABUF_SYSFS_STATS is not set
CONFIG_DMABUF_HEAPS_SYSTEM=y
CONFIG_DMABUF_HEAPS_CMA=y
# end of DMABUF options

CONFIG_DCA=m
CONFIG_UIO=m
# CONFIG_UIO_CIF is not set
# CONFIG_UIO_PDRV_GENIRQ is not set
# CONFIG_UIO_DMEM_GENIRQ is not set
# CONFIG_UIO_AEC is not set
# CONFIG_UIO_SERCOS3 is not set
CONFIG_UIO_PCI_GENERIC=m
# CONFIG_UIO_NETX is not set
# CONFIG_UIO_MF624 is not set
CONFIG_UIO_HV_GENERIC=m
CONFIG_UIO_DFL=m
CONFIG_VFIO=m
# CONFIG_VFIO_DEVICE_CDEV is not set
CONFIG_VFIO_GROUP=y
CONFIG_VFIO_CONTAINER=y
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO_NOIOMMU=y
CONFIG_VFIO_VIRQFD=y
# CONFIG_VFIO_DEBUGFS is not set

#
# VFIO support for PCI devices
#
CONFIG_VFIO_PCI_CORE=m
CONFIG_VFIO_PCI_MMAP=y
CONFIG_VFIO_PCI_INTX=y
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
CONFIG_VFIO_PCI_IGD=y
CONFIG_MLX5_VFIO_PCI=m
CONFIG_PDS_VFIO_PCI=m
CONFIG_VIRTIO_VFIO_PCI=m
CONFIG_QAT_VFIO_PCI=m
# end of VFIO support for PCI devices

CONFIG_VFIO_MDEV=m
CONFIG_IRQ_BYPASS_MANAGER=y
CONFIG_VIRT_DRIVERS=y
CONFIG_VMGENID=y
CONFIG_VBOXGUEST=m
CONFIG_NITRO_ENCLAVES=m
CONFIG_ACRN_HSM=m
CONFIG_TSM_REPORTS=m
CONFIG_EFI_SECRET=m
CONFIG_SEV_GUEST=m
CONFIG_TDX_GUEST_DRIVER=m
CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI_LIB=y
CONFIG_VIRTIO_PCI_LIB_LEGACY=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_VDPA=m
# CONFIG_VIRTIO_PMEM is not set
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
# CONFIG_VIRTIO_DEBUG is not set
CONFIG_VDPA=m
CONFIG_VDPA_SIM=m
CONFIG_VDPA_SIM_NET=m
CONFIG_VDPA_SIM_BLOCK=m
CONFIG_VDPA_USER=m
CONFIG_IFCVF=m
CONFIG_MLX5_VDPA=y
CONFIG_MLX5_VDPA_NET=m
# CONFIG_MLX5_VDPA_STEERING_DEBUG is not set
CONFIG_VP_VDPA=m
CONFIG_ALIBABA_ENI_VDPA=m
CONFIG_SNET_VDPA=m
CONFIG_PDS_VDPA=m
CONFIG_OCTEONEP_VDPA=m
CONFIG_VHOST_IOTLB=m
CONFIG_VHOST_RING=m
CONFIG_VHOST_TASK=y
CONFIG_VHOST=m
CONFIG_VHOST_MENU=y
CONFIG_VHOST_NET=m
CONFIG_VHOST_SCSI=m
CONFIG_VHOST_VSOCK=m
CONFIG_VHOST_VDPA=m
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set

#
# Microsoft Hyper-V guest support
#
CONFIG_HYPERV=m
# CONFIG_HYPERV_VTL_MODE is not set
CONFIG_HYPERV_TIMER=y
CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_BALLOON=m
# end of Microsoft Hyper-V guest support

#
# Xen driver support
#
CONFIG_XEN_BALLOON=y
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_GNTDEV_DMABUF=y
CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_XEN_GRANT_DMA_ALLOC=y
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_PCI_STUB=y
CONFIG_XEN_PCIDEV_BACKEND=m
# CONFIG_XEN_PVCALLS_FRONTEND is not set
# CONFIG_XEN_PVCALLS_BACKEND is not set
CONFIG_XEN_SCSI_BACKEND=m
CONFIG_XEN_PRIVCMD=m
CONFIG_XEN_ACPI_PROCESSOR=m
# CONFIG_XEN_MCE_LOG is not set
CONFIG_XEN_HAVE_PVMMU=y
CONFIG_XEN_EFI=y
CONFIG_XEN_AUTO_XLATE=y
CONFIG_XEN_ACPI=y
CONFIG_XEN_SYMS=y
CONFIG_XEN_HAVE_VPMU=y
CONFIG_XEN_FRONT_PGDIR_SHBUF=m
CONFIG_XEN_UNPOPULATED_ALLOC=y
# CONFIG_XEN_VIRTIO is not set
# end of Xen driver support

# CONFIG_GREYBUS is not set
# CONFIG_COMEDI is not set
CONFIG_STAGING=y
CONFIG_RTLLIB=m
CONFIG_RTLLIB_CRYPTO_CCMP=m
CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_RTL8723BS=m
CONFIG_R8712U=m
# CONFIG_RTS5208 is not set
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set

#
# IIO staging drivers
#

#
# Accelerometers
#
# CONFIG_ADIS16203 is not set
# CONFIG_ADIS16240 is not set
# end of Accelerometers

#
# Analog to digital converters
#
# CONFIG_AD7816 is not set
# end of Analog to digital converters

#
# Analog digital bi-direction converters
#
# CONFIG_ADT7316 is not set
# end of Analog digital bi-direction converters

#
# Direct Digital Synthesis
#
# CONFIG_AD9832 is not set
# CONFIG_AD9834 is not set
# end of Direct Digital Synthesis

#
# Network Analyzer, Impedance Converters
#
# CONFIG_AD5933 is not set
# end of Network Analyzer, Impedance Converters
# end of IIO staging drivers

# CONFIG_FB_SM750 is not set
CONFIG_STAGING_MEDIA=y
# CONFIG_INTEL_ATOMISP is not set
# CONFIG_DVB_AV7110 is not set
CONFIG_VIDEO_IPU3_IMGU=m

#
# StarFive media platform drivers
#
# CONFIG_STAGING_MEDIA_DEPRECATED is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_KS7010 is not set
# CONFIG_FIELDBUS_DEV is not set
# CONFIG_VME_BUS is not set
# CONFIG_GOLDFISH is not set
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_ACPI=m
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
CONFIG_CHROMEOS_TBMC=y
CONFIG_CROS_EC=m
CONFIG_CROS_EC_I2C=m
# CONFIG_CROS_EC_ISHTP is not set
CONFIG_CROS_EC_SPI=m
CONFIG_CROS_EC_UART=m
CONFIG_CROS_EC_LPC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_KBD_LED_BACKLIGHT=m
CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_LIGHTBAR=m
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_SENSORHUB=m
CONFIG_CROS_EC_SYSFS=m
CONFIG_CROS_EC_TYPEC=m
CONFIG_CROS_HPS_I2C=m
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CROS_USBPD_NOTIFY=m
CONFIG_CHROMEOS_PRIVACY_SCREEN=m
CONFIG_CROS_TYPEC_SWITCH=m
# CONFIG_WILCO_EC is not set
CONFIG_CROS_KUNIT_EC_PROTO_TEST=m
# CONFIG_CZNIC_PLATFORMS is not set
CONFIG_MELLANOX_PLATFORM=y
CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXREG_IO=m
CONFIG_MLXREG_LC=m
CONFIG_NVSW_SN2201=m
CONFIG_SURFACE_PLATFORMS=y
CONFIG_SURFACE3_WMI=m
CONFIG_SURFACE_3_POWER_OPREGION=m
CONFIG_SURFACE_ACPI_NOTIFY=m
CONFIG_SURFACE_AGGREGATOR_CDEV=m
CONFIG_SURFACE_AGGREGATOR_HUB=m
CONFIG_SURFACE_AGGREGATOR_REGISTRY=m
CONFIG_SURFACE_AGGREGATOR_TABLET_SWITCH=m
CONFIG_SURFACE_DTX=m
CONFIG_SURFACE_GPE=m
CONFIG_SURFACE_HOTPLUG=m
CONFIG_SURFACE_PLATFORM_PROFILE=m
CONFIG_SURFACE_PRO3_BUTTON=m
CONFIG_SURFACE_AGGREGATOR=m
CONFIG_SURFACE_AGGREGATOR_BUS=y
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACPI_WMI=m
CONFIG_WMI_BMOF=m
CONFIG_HUAWEI_WMI=m
# CONFIG_UV_SYSFS is not set
CONFIG_MXM_WMI=m
CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m
# CONFIG_XIAOMI_WMI is not set
CONFIG_GIGABYTE_WMI=m
CONFIG_YOGABOOK=m
CONFIG_YT2_1380=m
CONFIG_ACERHDF=m
CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
CONFIG_AMD_PMF=m
# CONFIG_AMD_PMF_DEBUG is not set
CONFIG_AMD_PMC=m
CONFIG_AMD_MP2_STB=y
CONFIG_AMD_HSMP=m
CONFIG_AMD_WBRF=y
CONFIG_ADV_SWBUTTON=m
CONFIG_APPLE_GMUX=m
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_WIRELESS=m
CONFIG_ASUS_TF103C_DOCK=m
# CONFIG_MERAKI_MX100 is not set
CONFIG_X86_PLATFORM_DRIVERS_DELL=y
CONFIG_ALIENWARE_WMI=m
CONFIG_DCDBAS=m
CONFIG_DELL_LAPTOP=m
# CONFIG_DELL_RBU is not set
CONFIG_DELL_RBTN=m
CONFIG_DELL_PC=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMBIOS_SMM=y
CONFIG_DELL_SMO8800=m
CONFIG_DELL_UART_BACKLIGHT=m
CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_PRIVACY=y
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_DESCRIPTOR=m
CONFIG_DELL_WMI_DDV=m
CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI_SYSMAN=m
CONFIG_AMILO_RFKILL=m
CONFIG_FUJITSU_LAPTOP=m
CONFIG_FUJITSU_TABLET=m
CONFIG_GPD_POCKET_FAN=m
CONFIG_X86_PLATFORM_DRIVERS_HP=y
CONFIG_HP_ACCEL=m
CONFIG_HP_WMI=m
CONFIG_HP_BIOSCFG=m
CONFIG_WIRELESS_HOTKEY=m
# CONFIG_IBM_RTL is not set
CONFIG_IDEAPAD_LAPTOP=m
CONFIG_LENOVO_YMC=m
CONFIG_SENSORS_HDAPS=m
CONFIG_THINKPAD_ACPI=m
CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
# CONFIG_THINKPAD_ACPI_DEBUG is not set
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
CONFIG_THINKPAD_ACPI_VIDEO=y
CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
CONFIG_THINKPAD_LMI=m
CONFIG_INTEL_ATOMISP2_PDX86=y
CONFIG_INTEL_ATOMISP2_LED=m
CONFIG_INTEL_ATOMISP2_PM=m
CONFIG_INTEL_IFS=m
CONFIG_INTEL_SAR_INT1092=m
CONFIG_INTEL_SKL_INT3472=m
CONFIG_INTEL_PMC_CORE=m
CONFIG_INTEL_PMT_CLASS=m
CONFIG_INTEL_PMT_TELEMETRY=m
CONFIG_INTEL_PMT_CRASHLOG=m

#
# Intel Speed Select Technology interface support
#
CONFIG_INTEL_SPEED_SELECT_TPMI=m
CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
# end of Intel Speed Select Technology interface support

CONFIG_INTEL_TELEMETRY=m
CONFIG_INTEL_WMI=y
CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
CONFIG_INTEL_WMI_THUNDERBOLT=m

#
# Intel Uncore Frequency Control
#
CONFIG_INTEL_UNCORE_FREQ_CONTROL_TPMI=m
CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
# end of Intel Uncore Frequency Control

CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_INT0002_VGPIO=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_INTEL_BXTWC_PMIC_TMU=m
CONFIG_INTEL_BYTCRC_PWRSRC=m
CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_CHTWC_INT33FE=m
CONFIG_INTEL_ISHTP_ECLITE=m
CONFIG_INTEL_MRFLD_PWRBTN=m
CONFIG_INTEL_PUNIT_IPC=m
CONFIG_INTEL_RST=m
CONFIG_INTEL_SDSI=m
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_INTEL_TPMI_POWER_DOMAINS=m
CONFIG_INTEL_TPMI=m
CONFIG_INTEL_PLR_TPMI=m
CONFIG_INTEL_TURBO_MAX_3=y
CONFIG_INTEL_VSEC=m
CONFIG_ACPI_QUICKSTART=m
CONFIG_MEEGOPAD_ANX7428=m
CONFIG_MSI_EC=m
CONFIG_MSI_LAPTOP=m
CONFIG_MSI_WMI=m
CONFIG_MSI_WMI_PLATFORM=m
CONFIG_PCENGINES_APU2=m
CONFIG_BARCO_P50_GPIO=m
CONFIG_SAMSUNG_LAPTOP=m
CONFIG_SAMSUNG_Q10=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_TOSHIBA_BT_RFKILL=m
CONFIG_TOSHIBA_HAPS=m
CONFIG_TOSHIBA_WMI=m
# CONFIG_ACPI_CMPC is not set
CONFIG_COMPAL_LAPTOP=m
CONFIG_LG_LAPTOP=m
CONFIG_PANASONIC_LAPTOP=m
CONFIG_SONY_LAPTOP=m
CONFIG_SONYPI_COMPAT=y
CONFIG_SYSTEM76_ACPI=m
CONFIG_TOPSTAR_LAPTOP=m
CONFIG_SERIAL_MULTI_INSTANTIATE=m
CONFIG_MLX_PLATFORM=m
CONFIG_TOUCHSCREEN_DMI=y
CONFIG_INSPUR_PLATFORM_PROFILE=m
CONFIG_LENOVO_WMI_CAMERA=m
CONFIG_X86_ANDROID_TABLETS=m
CONFIG_FW_ATTR_CLASS=m
CONFIG_INTEL_IPS=m
CONFIG_INTEL_SCU_IPC=y
CONFIG_INTEL_SCU=y
CONFIG_INTEL_SCU_PCI=y
CONFIG_INTEL_SCU_PLATFORM=m
CONFIG_INTEL_SCU_IPC_UTIL=m
# CONFIG_SIEMENS_SIMATIC_IPC is not set
# CONFIG_SILICOM_PLATFORM is not set
CONFIG_WINMATE_FM07_KEYS=m
CONFIG_SEL3350_PLATFORM=m
CONFIG_P2SB=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
# CONFIG_LMK04832 is not set
# CONFIG_COMMON_CLK_MAX9485 is not set
# CONFIG_COMMON_CLK_SI5341 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
CONFIG_COMMON_CLK_SI544=m
# CONFIG_COMMON_CLK_CDCE706 is not set
CONFIG_COMMON_CLK_TPS68470=m
# CONFIG_COMMON_CLK_CS2000_CP is not set
# CONFIG_COMMON_CLK_PWM is not set
CONFIG_XILINX_VCU=m
CONFIG_CLK_KUNIT_TEST=m
CONFIG_CLK_GATE_KUNIT_TEST=m
CONFIG_CLK_FD_KUNIT_TEST=m
CONFIG_HWSPINLOCK=y

#
# Clock Source drivers
#
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# end of Clock Source drivers

CONFIG_MAILBOX=y
CONFIG_PCC=y
# CONFIG_ALTERA_MBOX is not set
CONFIG_IOMMU_IOVA=y
CONFIG_IOMMU_API=y
CONFIG_IOMMUFD_DRIVER=y
CONFIG_IOMMU_SUPPORT=y

#
# Generic IOMMU Pagetable Support
#
CONFIG_IOMMU_IO_PGTABLE=y
# end of Generic IOMMU Pagetable Support

# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_DMA=y
CONFIG_IOMMU_SVA=y
CONFIG_IOMMU_IOPF=y
CONFIG_AMD_IOMMU=y
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
CONFIG_INTEL_IOMMU_SVM=y
CONFIG_INTEL_IOMMU_DEFAULT_ON=y
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
CONFIG_INTEL_IOMMU_PERF_EVENTS=y
CONFIG_IOMMUFD=m
CONFIG_IRQ_REMAP=y
CONFIG_HYPERV_IOMMU=y
CONFIG_VIRTIO_IOMMU=y

#
# Remoteproc drivers
#
CONFIG_REMOTEPROC=y
# CONFIG_REMOTEPROC_CDEV is not set
# end of Remoteproc drivers

#
# Rpmsg drivers
#
# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
# CONFIG_RPMSG_VIRTIO is not set
# end of Rpmsg drivers

CONFIG_SOUNDWIRE=m

#
# SoundWire Devices
#
CONFIG_SOUNDWIRE_AMD=m
CONFIG_SOUNDWIRE_CADENCE=m
CONFIG_SOUNDWIRE_INTEL=m
# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m

#
# SOC (System On Chip) specific Drivers
#

#
# Amlogic SoC drivers
#
# end of Amlogic SoC drivers

#
# Broadcom SoC drivers
#
# end of Broadcom SoC drivers

#
# NXP/Freescale QorIQ SoC drivers
#
# end of NXP/Freescale QorIQ SoC drivers

#
# fujitsu SoC drivers
#
# end of fujitsu SoC drivers

#
# i.MX SoC drivers
#
# end of i.MX SoC drivers

#
# Enable LiteX SoC Builder specific drivers
#
# end of Enable LiteX SoC Builder specific drivers

CONFIG_WPCM450_SOC=m

#
# Qualcomm SoC drivers
#
CONFIG_QCOM_QMI_HELPERS=m
# end of Qualcomm SoC drivers

# CONFIG_SOC_TI is not set

#
# Xilinx SoC drivers
#
# end of Xilinx SoC drivers
# end of SOC (System On Chip) specific Drivers

#
# PM Domains
#

#
# Amlogic PM Domains
#
# end of Amlogic PM Domains

#
# Broadcom PM Domains
#
# end of Broadcom PM Domains

#
# i.MX PM Domains
#
# end of i.MX PM Domains

#
# Qualcomm PM Domains
#
# end of Qualcomm PM Domains
# end of PM Domains

CONFIG_PM_DEVFREQ=y

#
# DEVFREQ Governors
#
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
# CONFIG_DEVFREQ_GOV_PASSIVE is not set

#
# DEVFREQ Drivers
#
# CONFIG_PM_DEVFREQ_EVENT is not set
CONFIG_EXTCON=y

#
# Extcon Device Drivers
#
# CONFIG_EXTCON_ADC_JACK is not set
CONFIG_EXTCON_AXP288=m
# CONFIG_EXTCON_FSA9480 is not set
# CONFIG_EXTCON_GPIO is not set
CONFIG_EXTCON_INTEL_INT3496=m
CONFIG_EXTCON_INTEL_CHT_WC=m
CONFIG_EXTCON_INTEL_MRFLD=m
# CONFIG_EXTCON_MAX3355 is not set
# CONFIG_EXTCON_PTN5150 is not set
# CONFIG_EXTCON_RT8973A is not set
# CONFIG_EXTCON_SM5502 is not set
# CONFIG_EXTCON_USB_GPIO is not set
CONFIG_EXTCON_USBC_CROS_EC=m
CONFIG_EXTCON_USBC_TUSB320=m
# CONFIG_MEMORY is not set
CONFIG_IIO=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_BUFFER_CB=m
CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_DMAENGINE=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_KFIFO_BUF=m
CONFIG_IIO_TRIGGERED_BUFFER=m
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_GTS_HELPER=m
CONFIG_IIO_TRIGGER=y
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_SW_DEVICE=m
CONFIG_IIO_SW_TRIGGER=m
CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_BACKEND=m

#
# Accelerometers
#
# CONFIG_ADIS16201 is not set
# CONFIG_ADIS16209 is not set
# CONFIG_ADXL313_I2C is not set
# CONFIG_ADXL313_SPI is not set
# CONFIG_ADXL345_I2C is not set
# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXL355_I2C is not set
# CONFIG_ADXL355_SPI is not set
# CONFIG_ADXL367_SPI is not set
# CONFIG_ADXL367_I2C is not set
# CONFIG_ADXL372_SPI is not set
# CONFIG_ADXL372_I2C is not set
# CONFIG_BMA180 is not set
# CONFIG_BMA220 is not set
# CONFIG_BMA400 is not set
CONFIG_BMC150_ACCEL=m
CONFIG_BMC150_ACCEL_I2C=m
CONFIG_BMC150_ACCEL_SPI=m
# CONFIG_BMI088_ACCEL is not set
CONFIG_DA280=m
# CONFIG_DA311 is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
# CONFIG_DMARD10 is not set
# CONFIG_FXLS8962AF_I2C is not set
# CONFIG_FXLS8962AF_SPI is not set
CONFIG_HID_SENSOR_ACCEL_3D=m
CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
CONFIG_IIO_ST_ACCEL_3AXIS=m
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
# CONFIG_IIO_ST_ACCEL_SPI_3AXIS is not set
# CONFIG_IIO_KX022A_SPI is not set
# CONFIG_IIO_KX022A_I2C is not set
# CONFIG_KXSD9 is not set
CONFIG_KXCJK1013=m
# CONFIG_MC3230 is not set
# CONFIG_MMA7455_I2C is not set
# CONFIG_MMA7455_SPI is not set
CONFIG_MMA7660=m
CONFIG_MMA8452=m
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MSA311 is not set
CONFIG_MXC4005=m
CONFIG_MXC6255=m
# CONFIG_SCA3000 is not set
# CONFIG_SCA3300 is not set
# CONFIG_STK8312 is not set
# CONFIG_STK8BA50 is not set
# end of Accelerometers

#
# Analog to digital converters
#
CONFIG_AD_SIGMA_DELTA=m
CONFIG_AD4130=m
CONFIG_AD7091R=m
# CONFIG_AD7091R5 is not set
CONFIG_AD7091R8=m
CONFIG_AD7124=m
# CONFIG_AD7173 is not set
# CONFIG_AD7192 is not set
# CONFIG_AD7266 is not set
# CONFIG_AD7280 is not set
# CONFIG_AD7291 is not set
CONFIG_AD7292=m
# CONFIG_AD7298 is not set
CONFIG_AD7380=m
# CONFIG_AD7476 is not set
# CONFIG_AD7606_IFACE_PARALLEL is not set
# CONFIG_AD7606_IFACE_SPI is not set
CONFIG_AD7766=m
# CONFIG_AD7768_1 is not set
# CONFIG_AD7780 is not set
# CONFIG_AD7791 is not set
# CONFIG_AD7793 is not set
# CONFIG_AD7887 is not set
# CONFIG_AD7923 is not set
# CONFIG_AD7944 is not set
CONFIG_AD7949=m
# CONFIG_AD799X is not set
CONFIG_AD9467=m
# CONFIG_AXP20X_ADC is not set
CONFIG_AXP288_ADC=m
# CONFIG_CC10001_ADC is not set
CONFIG_DLN2_ADC=m
CONFIG_ENVELOPE_DETECTOR=m
# CONFIG_HI8435 is not set
# CONFIG_HX711 is not set
# CONFIG_INA2XX_ADC is not set
CONFIG_INTEL_MRFLD_ADC=m
# CONFIG_LTC2309 is not set
# CONFIG_LTC2471 is not set
# CONFIG_LTC2485 is not set
# CONFIG_LTC2496 is not set
# CONFIG_LTC2497 is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
# CONFIG_MAX1118 is not set
CONFIG_MAX11205=m
CONFIG_MAX11410=m
CONFIG_MAX1241=m
CONFIG_MAX1363=m
CONFIG_MAX34408=m
# CONFIG_MAX9611 is not set
# CONFIG_MCP320X is not set
# CONFIG_MCP3422 is not set
# CONFIG_MCP3564 is not set
CONFIG_MCP3911=m
# CONFIG_NAU7802 is not set
CONFIG_PAC1934=m
CONFIG_RICHTEK_RTQ6056=m
CONFIG_SD_ADC_MODULATOR=m
# CONFIG_TI_ADC081C is not set
# CONFIG_TI_ADC0832 is not set
# CONFIG_TI_ADC084S021 is not set
# CONFIG_TI_ADC12138 is not set
# CONFIG_TI_ADC108S102 is not set
CONFIG_TI_ADC128S052=m
# CONFIG_TI_ADC161S626 is not set
CONFIG_TI_ADS1015=m
# CONFIG_TI_ADS1119 is not set
CONFIG_TI_ADS7924=m
CONFIG_TI_ADS1100=m
# CONFIG_TI_ADS1298 is not set
# CONFIG_TI_ADS7950 is not set
CONFIG_TI_ADS8344=m
# CONFIG_TI_ADS8688 is not set
# CONFIG_TI_ADS124S08 is not set
CONFIG_TI_ADS131E08=m
CONFIG_TI_LMP92064=m
# CONFIG_TI_TLC4541 is not set
CONFIG_TI_TSC2046=m
# CONFIG_VF610_ADC is not set
# CONFIG_XILINX_XADC is not set
# end of Analog to digital converters

#
# Analog to digital and digital to analog converters
#
CONFIG_AD74115=m
CONFIG_AD74413R=m
# end of Analog to digital and digital to analog converters

#
# Analog Front Ends
#
CONFIG_IIO_RESCALE=m
# end of Analog Front Ends

#
# Amplifiers
#
# CONFIG_AD8366 is not set
# CONFIG_ADA4250 is not set
CONFIG_HMC425=m
# end of Amplifiers

#
# Capacitance to digital converters
#
# CONFIG_AD7150 is not set
# CONFIG_AD7746 is not set
# end of Capacitance to digital converters

#
# Chemical Sensors
#
# CONFIG_AOSONG_AGS02MA is not set
# CONFIG_ATLAS_PH_SENSOR is not set
# CONFIG_ATLAS_EZO_SENSOR is not set
CONFIG_BME680=m
CONFIG_BME680_I2C=m
CONFIG_BME680_SPI=m
# CONFIG_CCS811 is not set
# CONFIG_ENS160 is not set
# CONFIG_IAQCORE is not set
CONFIG_PMS7003=m
CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SCD4X is not set
# CONFIG_SENSIRION_SGP30 is not set
# CONFIG_SENSIRION_SGP40 is not set
# CONFIG_SPS30_I2C is not set
# CONFIG_SPS30_SERIAL is not set
# CONFIG_SENSEAIR_SUNRISE_CO2 is not set
# CONFIG_VZ89X is not set
# end of Chemical Sensors

CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m

#
# Hid Sensor IIO Common
#
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
# end of Hid Sensor IIO Common

CONFIG_IIO_INV_SENSORS_TIMESTAMP=m

#
# IIO SCMI Sensors
#
# end of IIO SCMI Sensors

#
# SSP Sensor Common
#
# CONFIG_IIO_SSP_SENSORHUB is not set
# end of SSP Sensor Common

CONFIG_IIO_ST_SENSORS_I2C=m
CONFIG_IIO_ST_SENSORS_SPI=m
CONFIG_IIO_ST_SENSORS_CORE=m

#
# Digital to analog converters
#
CONFIG_AD3552R=m
# CONFIG_AD5064 is not set
# CONFIG_AD5360 is not set
# CONFIG_AD5380 is not set
# CONFIG_AD5421 is not set
# CONFIG_AD5446 is not set
# CONFIG_AD5449 is not set
# CONFIG_AD5592R is not set
# CONFIG_AD5593R is not set
# CONFIG_AD5504 is not set
# CONFIG_AD5624R_SPI is not set
# CONFIG_AD9739A is not set
CONFIG_LTC2688=m
# CONFIG_AD5686_SPI is not set
# CONFIG_AD5696_I2C is not set
# CONFIG_AD5755 is not set
# CONFIG_AD5758 is not set
# CONFIG_AD5761 is not set
# CONFIG_AD5764 is not set
CONFIG_AD5766=m
CONFIG_AD5770R=m
# CONFIG_AD5791 is not set
CONFIG_AD7293=m
# CONFIG_AD7303 is not set
# CONFIG_AD8801 is not set
CONFIG_DPOT_DAC=m
# CONFIG_DS4424 is not set
CONFIG_LTC1660=m
# CONFIG_LTC2632 is not set
# CONFIG_M62332 is not set
# CONFIG_MAX517 is not set
CONFIG_MAX5522=m
# CONFIG_MAX5821 is not set
# CONFIG_MCP4725 is not set
CONFIG_MCP4728=m
CONFIG_MCP4821=m
# CONFIG_MCP4922 is not set
# CONFIG_TI_DAC082S085 is not set
# CONFIG_TI_DAC5571 is not set
CONFIG_TI_DAC7311=m
# CONFIG_TI_DAC7612 is not set
# CONFIG_VF610_DAC is not set
# end of Digital to analog converters

#
# IIO dummy driver
#
# CONFIG_IIO_SIMPLE_DUMMY is not set
# end of IIO dummy driver

#
# Filters
#
# CONFIG_ADMV8818 is not set
# end of Filters

#
# Frequency Synthesizers DDS/PLL
#

#
# Clock Generator/Distribution
#
# CONFIG_AD9523 is not set
# end of Clock Generator/Distribution

#
# Phase-Locked Loop (PLL) frequency synthesizers
#
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
CONFIG_ADF4377=m
# CONFIG_ADMFM2000 is not set
# CONFIG_ADMV1013 is not set
# CONFIG_ADMV1014 is not set
# CONFIG_ADMV4420 is not set
# CONFIG_ADRF6780 is not set
# end of Phase-Locked Loop (PLL) frequency synthesizers
# end of Frequency Synthesizers DDS/PLL

#
# Digital gyroscope sensors
#
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
# CONFIG_ADIS16260 is not set
CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
CONFIG_BMG160=m
CONFIG_BMG160_I2C=m
CONFIG_BMG160_SPI=m
CONFIG_FXAS21002C=m
CONFIG_FXAS21002C_I2C=m
CONFIG_FXAS21002C_SPI=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_MPU3050=m
CONFIG_MPU3050_I2C=m
CONFIG_IIO_ST_GYRO_3AXIS=m
CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
# CONFIG_ITG3200 is not set
# end of Digital gyroscope sensors

#
# Health Sensors
#

#
# Heart Rate Monitors
#
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
CONFIG_MAX30100=m
# CONFIG_MAX30102 is not set
# end of Heart Rate Monitors
# end of Health Sensors

#
# Humidity sensors
#
# CONFIG_AM2315 is not set
CONFIG_DHT11=m
# CONFIG_HDC100X is not set
CONFIG_HDC2010=m
# CONFIG_HDC3020 is not set
CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HTS221=m
CONFIG_HTS221_I2C=m
CONFIG_HTS221_SPI=m
# CONFIG_HTU21 is not set
# CONFIG_SI7005 is not set
# CONFIG_SI7020 is not set
# end of Humidity sensors

#
# Inertial measurement units
#
# CONFIG_ADIS16400 is not set
# CONFIG_ADIS16460 is not set
CONFIG_ADIS16475=m
# CONFIG_ADIS16480 is not set
CONFIG_BMI160=m
CONFIG_BMI160_I2C=m
CONFIG_BMI160_SPI=m
CONFIG_BMI323=m
CONFIG_BMI323_I2C=m
# CONFIG_BMI323_SPI is not set
CONFIG_BOSCH_BNO055=m
CONFIG_BOSCH_BNO055_SERIAL=m
CONFIG_BOSCH_BNO055_I2C=m
CONFIG_FXOS8700=m
CONFIG_FXOS8700_I2C=m
CONFIG_FXOS8700_SPI=m
# CONFIG_KMX61 is not set
CONFIG_INV_ICM42600=m
CONFIG_INV_ICM42600_I2C=m
CONFIG_INV_ICM42600_SPI=m
CONFIG_INV_MPU6050_IIO=m
CONFIG_INV_MPU6050_I2C=m
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IIO_ST_LSM6DSX=m
CONFIG_IIO_ST_LSM6DSX_I2C=m
CONFIG_IIO_ST_LSM6DSX_SPI=m
# CONFIG_IIO_ST_LSM9DS0 is not set
# end of Inertial measurement units

CONFIG_IIO_ADIS_LIB=m
CONFIG_IIO_ADIS_LIB_BUFFER=y

#
# Light sensors
#
CONFIG_ACPI_ALS=m
# CONFIG_ADJD_S311 is not set
CONFIG_ADUX1020=m
CONFIG_AL3010=m
# CONFIG_AL3320A is not set
# CONFIG_APDS9300 is not set
CONFIG_APDS9306=m
# CONFIG_APDS9960 is not set
# CONFIG_AS73211 is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
CONFIG_CM32181=m
# CONFIG_CM3232 is not set
# CONFIG_CM3323 is not set
CONFIG_CM3605=m
# CONFIG_CM36651 is not set
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_GP2AP002=m
# CONFIG_GP2AP020A00F is not set
# CONFIG_SENSORS_ISL29018 is not set
# CONFIG_SENSORS_ISL29028 is not set
# CONFIG_ISL29125 is not set
# CONFIG_ISL76682 is not set
CONFIG_HID_SENSOR_ALS=m
# CONFIG_HID_SENSOR_PROX is not set
# CONFIG_JSA1212 is not set
# CONFIG_ROHM_BU27008 is not set
CONFIG_ROHM_BU27034=m
CONFIG_RPR0521=m
# CONFIG_LTR390 is not set
CONFIG_LTR501=m
CONFIG_LTRF216A=m
CONFIG_LV0104CS=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_NOA1305 is not set
CONFIG_OPT3001=m
CONFIG_OPT4001=m
CONFIG_PA12203001=m
# CONFIG_SI1133 is not set
# CONFIG_SI1145 is not set
CONFIG_STK3310=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_SENSORS_TSL2563 is not set
# CONFIG_TSL2583 is not set
# CONFIG_TSL2591 is not set
CONFIG_TSL2772=m
# CONFIG_TSL4531 is not set
# CONFIG_US5182D is not set
# CONFIG_VCNL4000 is not set
CONFIG_VCNL4035=m
CONFIG_VEML6030=m
# CONFIG_VEML6040 is not set
# CONFIG_VEML6070 is not set
# CONFIG_VEML6075 is not set
CONFIG_VL6180=m
CONFIG_ZOPT2201=m
# end of Light sensors

#
# Magnetometer sensors
#
# CONFIG_AK8974 is not set
CONFIG_AK8975=m
# CONFIG_AK09911 is not set
CONFIG_BMC150_MAGN=m
CONFIG_BMC150_MAGN_I2C=m
CONFIG_BMC150_MAGN_SPI=m
# CONFIG_MAG3110 is not set
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_MMC35240 is not set
CONFIG_IIO_ST_MAGN_3AXIS=m
CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
# CONFIG_SENSORS_HMC5843_I2C is not set
# CONFIG_SENSORS_HMC5843_SPI is not set
CONFIG_SENSORS_RM3100=m
CONFIG_SENSORS_RM3100_I2C=m
CONFIG_SENSORS_RM3100_SPI=m
# CONFIG_TI_TMAG5273 is not set
# CONFIG_YAMAHA_YAS530 is not set
# end of Magnetometer sensors

#
# Multiplexers
#
CONFIG_IIO_MUX=m
# end of Multiplexers

#
# Inclinometer sensors
#
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
# end of Inclinometer sensors

CONFIG_IIO_GTS_KUNIT_TEST=m
CONFIG_IIO_RESCALE_KUNIT_TEST=m
CONFIG_IIO_FORMAT_KUNIT_TEST=m

#
# Triggers - standalone
#
# CONFIG_IIO_HRTIMER_TRIGGER is not set
CONFIG_IIO_INTERRUPT_TRIGGER=m
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
# end of Triggers - standalone

#
# Linear and angular position sensors
#
CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
# end of Linear and angular position sensors

#
# Digital potentiometers
#
CONFIG_AD5110=m
CONFIG_AD5272=m
# CONFIG_DS1803 is not set
# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
CONFIG_MCP4018=m
# CONFIG_MCP4131 is not set
# CONFIG_MCP4531 is not set
CONFIG_MCP41010=m
# CONFIG_TPL0102 is not set
CONFIG_X9250=m
# end of Digital potentiometers

#
# Digital potentiostats
#
CONFIG_LMP91000=m
# end of Digital potentiostats

#
# Pressure sensors
#
CONFIG_ABP060MG=m
# CONFIG_ROHM_BM1390 is not set
CONFIG_BMP280=m
CONFIG_BMP280_I2C=m
CONFIG_BMP280_SPI=m
CONFIG_IIO_CROS_EC_BARO=m
# CONFIG_DLHL60D is not set
# CONFIG_DPS310 is not set
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HP03 is not set
# CONFIG_HSC030PA is not set
CONFIG_ICP10100=m
CONFIG_MPL115=m
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
# CONFIG_MPRLS0025PA is not set
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_IIO_ST_PRESS is not set
# CONFIG_T5403 is not set
# CONFIG_HP206C is not set
# CONFIG_ZPA2326 is not set
# end of Pressure sensors

#
# Lightning sensors
#
# CONFIG_AS3935 is not set
# end of Lightning sensors

#
# Proximity and distance sensors
#
CONFIG_CROS_EC_MKBP_PROXIMITY=m
# CONFIG_IRSD200 is not set
# CONFIG_ISL29501 is not set
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_MB1232=m
# CONFIG_PING is not set
# CONFIG_RFD77402 is not set
# CONFIG_SRF04 is not set
CONFIG_SX_COMMON=m
CONFIG_SX9310=m
CONFIG_SX9324=m
CONFIG_SX9360=m
# CONFIG_SX9500 is not set
# CONFIG_SRF08 is not set
CONFIG_VCNL3020=m
CONFIG_VL53L0X_I2C=m
# end of Proximity and distance sensors

#
# Resolver to digital converters
#
# CONFIG_AD2S90 is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
# end of Resolver to digital converters

#
# Temperature sensors
#
CONFIG_LTC2983=m
CONFIG_MAXIM_THERMOCOUPLE=m
CONFIG_HID_SENSOR_TEMP=m
CONFIG_MLX90614=m
CONFIG_MLX90632=m
# CONFIG_MLX90635 is not set
# CONFIG_TMP006 is not set
# CONFIG_TMP007 is not set
CONFIG_TMP117=m
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
CONFIG_MAX30208=m
CONFIG_MAX31856=m
CONFIG_MAX31865=m
CONFIG_MCP9600=m
# end of Temperature sensors

CONFIG_NTB=m
# CONFIG_NTB_MSI is not set
CONFIG_NTB_AMD=m
CONFIG_NTB_IDT=m
CONFIG_NTB_INTEL=m
CONFIG_NTB_EPF=m
CONFIG_NTB_SWITCHTEC=m
CONFIG_NTB_PINGPONG=m
CONFIG_NTB_TOOL=m
CONFIG_NTB_PERF=m
CONFIG_NTB_TRANSPORT=m
CONFIG_PWM=y
# CONFIG_PWM_DEBUG is not set
# CONFIG_PWM_CLK is not set
CONFIG_PWM_CRC=y
CONFIG_PWM_CROS_EC=m
CONFIG_PWM_DWC_CORE=m
CONFIG_PWM_DWC=m
CONFIG_PWM_GPIO=m
CONFIG_PWM_LPSS=m
CONFIG_PWM_LPSS_PCI=m
CONFIG_PWM_LPSS_PLATFORM=m
# CONFIG_PWM_PCA9685 is not set

#
# IRQ chip support
#
CONFIG_LAN966X_OIC=m
# end of IRQ chip support

# CONFIG_IPACK_BUS is not set
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_GPIO=m
# CONFIG_RESET_SIMPLE is not set
# CONFIG_RESET_TI_SYSCON is not set
CONFIG_RESET_TI_TPS380X=m

#
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PHY_MIPI_DPHY=y
# CONFIG_USB_LGM_PHY is not set
# CONFIG_PHY_CAN_TRANSCEIVER is not set

#
# PHY drivers for Broadcom platforms
#
# CONFIG_BCM_KONA_USB2_PHY is not set
# end of PHY drivers for Broadcom platforms

# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_QCOM_USB_HS is not set
# CONFIG_PHY_QCOM_USB_HSIC is not set
# CONFIG_PHY_TUSB1210 is not set
# CONFIG_PHY_INTEL_LGM_EMMC is not set
# end of PHY Subsystem

CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL_CORE=m
CONFIG_INTEL_RAPL=m
CONFIG_INTEL_RAPL_TPMI=m
CONFIG_IDLE_INJECT=y
# CONFIG_MCB is not set

#
# Performance monitor support
#
CONFIG_DWC_PCIE_PMU=m
CONFIG_CXL_PMU=m
# end of Performance monitor support

CONFIG_RAS=y
CONFIG_RAS_CEC=y
# CONFIG_RAS_CEC_DEBUG is not set
CONFIG_AMD_ATL=m
CONFIG_RAS_FMPM=m
CONFIG_USB4=m
# CONFIG_USB4_DEBUGFS_WRITE is not set
# CONFIG_USB4_DMA_TEST is not set

#
# Android
#
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
# end of Android

CONFIG_LIBNVDIMM=m
CONFIG_BLK_DEV_PMEM=m
CONFIG_ND_CLAIM=y
CONFIG_ND_BTT=m
CONFIG_BTT=y
CONFIG_ND_PFN=m
CONFIG_NVDIMM_PFN=y
CONFIG_NVDIMM_DAX=y
CONFIG_NVDIMM_KEYS=y
# CONFIG_NVDIMM_SECURITY_TEST is not set
CONFIG_DAX=y
CONFIG_DEV_DAX=m
CONFIG_DEV_DAX_PMEM=m
CONFIG_DEV_DAX_HMEM=m
CONFIG_DEV_DAX_CXL=m
CONFIG_DEV_DAX_HMEM_DEVICES=y
CONFIG_DEV_DAX_KMEM=m
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
# CONFIG_NVMEM_LAYOUTS is not set
CONFIG_NVMEM_RMEM=m

#
# HW tracing support
#
CONFIG_STM=m
CONFIG_STM_PROTO_BASIC=m
CONFIG_STM_PROTO_SYS_T=m
CONFIG_STM_DUMMY=m
CONFIG_STM_SOURCE_CONSOLE=m
CONFIG_STM_SOURCE_HEARTBEAT=m
CONFIG_STM_SOURCE_FTRACE=m
CONFIG_INTEL_TH=m
CONFIG_INTEL_TH_PCI=m
CONFIG_INTEL_TH_ACPI=m
CONFIG_INTEL_TH_GTH=m
CONFIG_INTEL_TH_STH=m
CONFIG_INTEL_TH_MSU=m
CONFIG_INTEL_TH_PTI=m
# CONFIG_INTEL_TH_DEBUG is not set
# end of HW tracing support

CONFIG_FPGA=m
CONFIG_ALTERA_PR_IP_CORE=m
CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
CONFIG_FPGA_MGR_ALTERA_CVP=m
CONFIG_FPGA_MGR_XILINX_CORE=m
CONFIG_FPGA_MGR_XILINX_SELECTMAP=m
CONFIG_FPGA_MGR_XILINX_SPI=m
CONFIG_FPGA_MGR_MACHXO2_SPI=m
CONFIG_FPGA_BRIDGE=m
# CONFIG_ALTERA_FREEZE_BRIDGE is not set
CONFIG_XILINX_PR_DECOUPLER=m
CONFIG_FPGA_REGION=m
CONFIG_FPGA_DFL=m
CONFIG_FPGA_DFL_FME=m
CONFIG_FPGA_DFL_FME_MGR=m
CONFIG_FPGA_DFL_FME_BRIDGE=m
CONFIG_FPGA_DFL_FME_REGION=m
CONFIG_FPGA_DFL_AFU=m
CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
CONFIG_FPGA_DFL_PCI=m
CONFIG_FPGA_M10_BMC_SEC_UPDATE=m
# CONFIG_FPGA_MGR_MICROCHIP_SPI is not set
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m
CONFIG_TEE=m
CONFIG_AMDTEE=m
CONFIG_MULTIPLEXER=m

#
# Multiplexer drivers
#
CONFIG_MUX_ADG792A=m
# CONFIG_MUX_ADGS1408 is not set
CONFIG_MUX_GPIO=m
# end of Multiplexer drivers

CONFIG_PM_OPP=y
# CONFIG_SIOX is not set
# CONFIG_SLIMBUS is not set
CONFIG_INTERCONNECT=y
CONFIG_COUNTER=m
CONFIG_INTEL_QEP=m
# CONFIG_INTERRUPT_CNT is not set
# CONFIG_MOST is not set
# CONFIG_PECI is not set
# CONFIG_HTE is not set
CONFIG_DPLL=y
# end of Device Drivers

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_VALIDATE_FS_PARSER=y
CONFIG_FS_IOMAP=y
CONFIG_FS_STACK=y
CONFIG_BUFFER_HEAD=y
CONFIG_LEGACY_DIRECT_IO=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
CONFIG_EXT4_KUNIT_TESTS=m
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_PROC_INFO=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_XFS_FS=m
CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_SUPPORT_ASCII_CI=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
CONFIG_XFS_DRAIN_INTENTS=y
CONFIG_XFS_LIVE_HOOKS=y
CONFIG_XFS_MEMORY_BUFS=y
CONFIG_XFS_ONLINE_SCRUB=y
# CONFIG_XFS_ONLINE_SCRUB_STATS is not set
# CONFIG_XFS_ONLINE_REPAIR is not set
# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=m
CONFIG_GFS2_FS_LOCKING_DLM=y
CONFIG_OCFS2_FS=m
CONFIG_OCFS2_FS_O2CB=m
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
# CONFIG_OCFS2_FS_STATS is not set
# CONFIG_OCFS2_DEBUG_MASKLOG is not set
# CONFIG_OCFS2_DEBUG_FS is not set
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
# CONFIG_BTRFS_DEBUG is not set
# CONFIG_BTRFS_ASSERT is not set
# CONFIG_BTRFS_FS_REF_VERIFY is not set
CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
CONFIG_F2FS_STAT_FS=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_SECURITY=y
# CONFIG_F2FS_CHECK_FS is not set
# CONFIG_F2FS_FAULT_INJECTION is not set
CONFIG_F2FS_FS_COMPRESSION=y
CONFIG_F2FS_FS_LZO=y
CONFIG_F2FS_FS_LZORLE=y
CONFIG_F2FS_FS_LZ4=y
CONFIG_F2FS_FS_LZ4HC=y
CONFIG_F2FS_FS_ZSTD=y
CONFIG_F2FS_IOSTAT=y
CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_BCACHEFS_FS=m
CONFIG_BCACHEFS_QUOTA=y
# CONFIG_BCACHEFS_ERASURE_CODING is not set
CONFIG_BCACHEFS_POSIX_ACL=y
# CONFIG_BCACHEFS_DEBUG is not set
# CONFIG_BCACHEFS_TESTS is not set
# CONFIG_BCACHEFS_LOCK_TIME_STATS is not set
# CONFIG_BCACHEFS_NO_LATENCY_ACCT is not set
CONFIG_BCACHEFS_SIX_OPTIMISTIC_SPIN=y
CONFIG_MEAN_AND_VARIANCE_UNIT_TEST=m
CONFIG_ZONEFS_FS=m
CONFIG_FS_DAX=y
CONFIG_FS_DAX_PMD=y
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_EXPORTFS_BLOCK_OPS=y
CONFIG_FILE_LOCKING=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_ENCRYPTION_ALGS=y
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
CONFIG_FS_VERITY=y
# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_VIRTIO_FS=m
CONFIG_FUSE_DAX=y
CONFIG_FUSE_PASSTHROUGH=y
CONFIG_OVERLAY_FS=m
# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
# CONFIG_OVERLAY_FS_INDEX is not set
# CONFIG_OVERLAY_FS_XINO_AUTO is not set
# CONFIG_OVERLAY_FS_METACOPY is not set
# CONFIG_OVERLAY_FS_DEBUG is not set

#
# Caches
#
CONFIG_NETFS_SUPPORT=m
CONFIG_NETFS_STATS=y
# CONFIG_NETFS_DEBUG is not set
CONFIG_FSCACHE=y
CONFIG_FSCACHE_STATS=y
CONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_ERROR_INJECTION is not set
CONFIG_CACHEFILES_ONDEMAND=y
# end of Caches

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
# end of CD-ROM/DVD Filesystems

#
# DOS/FAT/EXFAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_KUNIT_TEST=m
CONFIG_EXFAT_FS=m
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_NTFS3_FS=m
# CONFIG_NTFS3_64BIT_CLUSTER is not set
CONFIG_NTFS3_LZX_XPRESS=y
CONFIG_NTFS3_FS_POSIX_ACL=y
# CONFIG_NTFS_FS is not set
# end of DOS/FAT/EXFAT/NT Filesystems

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_PROC_CHILDREN=y
CONFIG_PROC_PID_ARCH_STATUS=y
CONFIG_PROC_CPU_RESCTRL=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
CONFIG_TMPFS_INODE64=y
CONFIG_TMPFS_QUOTA=y
CONFIG_HUGETLBFS=y
# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
CONFIG_HUGETLB_PAGE=y
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
CONFIG_CONFIGFS_FS=y
CONFIG_EFIVAR_FS=y
# end of Pseudo filesystems

CONFIG_MISC_FILESYSTEMS=y
CONFIG_ORANGEFS_FS=m
# CONFIG_ADFS_FS is not set
CONFIG_AFFS_FS=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_JFFS2_FS_SECURITY=y
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
CONFIG_UBIFS_FS=m
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
CONFIG_UBIFS_FS_ZSTD=y
CONFIG_UBIFS_ATIME_SUPPORT=y
CONFIG_UBIFS_FS_XATTR=y
CONFIG_UBIFS_FS_SECURITY=y
CONFIG_UBIFS_FS_AUTHENTICATION=y
# CONFIG_CRAMFS is not set
CONFIG_SQUASHFS=m
# CONFIG_SQUASHFS_FILE_CACHE is not set
CONFIG_SQUASHFS_FILE_DIRECT=y
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
# CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE is not set
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not set
CONFIG_MINIX_FS=m
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
CONFIG_ROMFS_FS=m
CONFIG_ROMFS_BACKED_BY_BLOCK=y
# CONFIG_ROMFS_BACKED_BY_MTD is not set
# CONFIG_ROMFS_BACKED_BY_BOTH is not set
CONFIG_ROMFS_ON_BLOCK=y
CONFIG_PSTORE=y
CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
CONFIG_PSTORE_COMPRESS=y
# CONFIG_PSTORE_CONSOLE is not set
# CONFIG_PSTORE_PMSG is not set
# CONFIG_PSTORE_FTRACE is not set
CONFIG_PSTORE_RAM=m
# CONFIG_PSTORE_BLK is not set
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
CONFIG_EROFS_FS=m
# CONFIG_EROFS_FS_DEBUG is not set
CONFIG_EROFS_FS_XATTR=y
CONFIG_EROFS_FS_POSIX_ACL=y
CONFIG_EROFS_FS_SECURITY=y
CONFIG_EROFS_FS_ZIP=y
CONFIG_EROFS_FS_ZIP_LZMA=y
CONFIG_EROFS_FS_ZIP_DEFLATE=y
CONFIG_EROFS_FS_ZIP_ZSTD=y
CONFIG_EROFS_FS_ONDEMAND=y
# CONFIG_EROFS_FS_PCPU_KTHREAD is not set
CONFIG_VBOXSF_FS=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
# CONFIG_NFS_V2 is not set
CONFIG_NFS_V3=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=m
CONFIG_PNFS_BLOCK=m
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_SECURITY_LABEL=y
CONFIG_NFS_FSCACHE=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DEBUG=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFSD=m
# CONFIG_NFSD_V2 is not set
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_NFSD_V4_2_INTER_SSC=y
CONFIG_NFSD_V4_SECURITY_LABEL=y
# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
CONFIG_GRACE_PERIOD=m
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_NFS_V4_2_SSC_HELPER=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y
CONFIG_RPCSEC_GSS_KRB5_KUNIT_TEST=m
CONFIG_SUNRPC_DEBUG=y
CONFIG_SUNRPC_XPRT_RDMA=m
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_CEPH_FS_SECURITY_LABEL=y
CONFIG_CIFS=m
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
CONFIG_CIFS_UPCALL=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_DEBUG=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
CONFIG_CIFS_DFS_UPCALL=y
CONFIG_CIFS_SWN_UPCALL=y
# CONFIG_CIFS_SMB_DIRECT is not set
CONFIG_CIFS_FSCACHE=y
# CONFIG_SMB_SERVER is not set
CONFIG_SMBFS=m
CONFIG_CODA_FS=m
CONFIG_AFS_FS=m
CONFIG_AFS_DEBUG=y
CONFIG_AFS_FSCACHE=y
# CONFIG_AFS_DEBUG_CURSOR is not set
CONFIG_9P_FS=m
CONFIG_9P_FSCACHE=y
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_9P_FS_SECURITY=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_CELTIC=m
CONFIG_NLS_MAC_CENTEURO=m
CONFIG_NLS_MAC_CROATIAN=m
CONFIG_NLS_MAC_CYRILLIC=m
CONFIG_NLS_MAC_GAELIC=m
CONFIG_NLS_MAC_GREEK=m
CONFIG_NLS_MAC_ICELAND=m
CONFIG_NLS_MAC_INUIT=m
CONFIG_NLS_MAC_ROMANIAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS_UCS2_UTILS=m
CONFIG_DLM=m
CONFIG_DLM_DEBUG=y
CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y
# end of File systems

#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_BIG_KEYS=y
CONFIG_TRUSTED_KEYS=y
CONFIG_HAVE_TRUSTED_KEYS=y
CONFIG_TRUSTED_KEYS_TPM=y
CONFIG_ENCRYPTED_KEYS=y
# CONFIG_USER_DECRYPTED_DATA is not set
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_SECURITY_DMESG_RESTRICT=y
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_INFINIBAND=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_PATH=y
CONFIG_INTEL_TXT=y
CONFIG_LSM_MMAP_MIN_ADDR=65535
CONFIG_HARDENED_USERCOPY=y
CONFIG_FORTIFY_SOURCE=y
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
# CONFIG_SECURITY_SELINUX_DEBUG is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
CONFIG_SECURITY_APPARMOR=y
# CONFIG_SECURITY_APPARMOR_DEBUG is not set
CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y
CONFIG_SECURITY_APPARMOR_HASH=y
CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
CONFIG_SECURITY_APPARMOR_EXPORT_BINARY=y
CONFIG_SECURITY_APPARMOR_PARANOID_LOAD=y
CONFIG_SECURITY_APPARMOR_KUNIT_TEST=m
# CONFIG_SECURITY_LOADPIN is not set
CONFIG_SECURITY_YAMA=y
# CONFIG_SECURITY_SAFESETID is not set
CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
CONFIG_SECURITY_LANDLOCK=y
CONFIG_INTEGRITY=y
CONFIG_INTEGRITY_SIGNATURE=y
CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
CONFIG_INTEGRITY_TRUSTED_KEYRING=y
CONFIG_INTEGRITY_PLATFORM_KEYRING=y
CONFIG_INTEGRITY_MACHINE_KEYRING=y
CONFIG_INTEGRITY_CA_MACHINE_KEYRING=y
CONFIG_INTEGRITY_CA_MACHINE_KEYRING_MAX=y
CONFIG_LOAD_UEFI_KEYS=y
CONFIG_INTEGRITY_AUDIT=y
CONFIG_IMA=y
CONFIG_IMA_KEXEC=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_NG_TEMPLATE=y
# CONFIG_IMA_SIG_TEMPLATE is not set
CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_WRITE_POLICY=y
CONFIG_IMA_READ_POLICY=y
CONFIG_IMA_APPRAISE=y
CONFIG_IMA_ARCH_POLICY=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
CONFIG_IMA_APPRAISE_BOOTPARAM=y
CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_LOAD_X509 is not set
CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
# CONFIG_IMA_DISABLE_HTABLE is not set
CONFIG_EVM=y
CONFIG_EVM_ATTR_FSUUID=y
# CONFIG_EVM_ADD_XATTRS is not set
# CONFIG_EVM_LOAD_X509 is not set
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="yama,loadpin,safesetid,integrity"

#
# Kernel hardening options
#

#
# Memory initialization
#
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
# CONFIG_INIT_STACK_NONE is not set
# CONFIG_INIT_STACK_ALL_PATTERN is not set
CONFIG_INIT_STACK_ALL_ZERO=y
# CONFIG_GCC_PLUGIN_STACKLEAK is not set
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_INIT_ON_FREE_DEFAULT_ON=y
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
# CONFIG_ZERO_CALL_USED_REGS is not set
# end of Memory initialization

#
# Hardening of kernel data structures
#
CONFIG_LIST_HARDENED=y
CONFIG_BUG_ON_DATA_CORRUPTION=y
# end of Hardening of kernel data structures

CONFIG_RANDSTRUCT_NONE=y
# CONFIG_RANDSTRUCT_FULL is not set
# CONFIG_RANDSTRUCT_PERFORMANCE is not set
# end of Kernel hardening options
# end of Security options

CONFIG_XOR_BLOCKS=y
CONFIG_ASYNC_CORE=m
CONFIG_ASYNC_MEMCPY=m
CONFIG_ASYNC_XOR=m
CONFIG_ASYNC_PQ=m
CONFIG_ASYNC_RAID6_RECOV=m
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_FIPS_NAME="Linux Kernel Cryptographic API"
# CONFIG_CRYPTO_FIPS_CUSTOM_VERSION is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_SIG=y
CONFIG_CRYPTO_SIG2=y
CONFIG_CRYPTO_SKCIPHER=y
CONFIG_CRYPTO_SKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=y
CONFIG_CRYPTO_KPP2=y
CONFIG_CRYPTO_KPP=y
CONFIG_CRYPTO_ACOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
# CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is not set
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_CRYPTD=y
CONFIG_CRYPTO_AUTHENC=y
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_ENGINE=m
# end of Crypto core or helper

#
# Public-key cryptography
#
CONFIG_CRYPTO_RSA=y
CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DH_RFC7919_GROUPS=y
CONFIG_CRYPTO_ECC=y
CONFIG_CRYPTO_ECDH=y
CONFIG_CRYPTO_ECDSA=y
CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CURVE25519=m
# end of Public-key cryptography

#
# Block ciphers
#
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_AES_TI=m
# CONFIG_CRYPTO_ARIA is not set
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST_COMMON=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_SERPENT=m
# CONFIG_CRYPTO_SM4_GENERIC is not set
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
# end of Block ciphers

#
# Length-preserving ciphers and modes
#
CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_HCTR2=m
CONFIG_CRYPTO_KEYWRAP=m
CONFIG_CRYPTO_LRW=y
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XCTR=m
CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_NHPOLY1305=m
# end of Length-preserving ciphers and modes

#
# AEAD (authenticated encryption with associated data) ciphers
#
CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_GENIV=y
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ESSIV=m
# end of AEAD (authenticated encryption with associated data) ciphers

#
# Hashes, digests, and MACs
#
CONFIG_CRYPTO_BLAKE2B=y
CONFIG_CRYPTO_CMAC=y
CONFIG_CRYPTO_GHASH=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_POLYVAL=m
CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA3=y
# CONFIG_CRYPTO_SM3_GENERIC is not set
CONFIG_CRYPTO_STREEBOG=m
CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XXHASH=y
# end of Hashes, digests, and MACs

#
# CRCs (cyclic redundancy checks)
#
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_CRC64_ROCKSOFT=y
# end of CRCs (cyclic redundancy checks)

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
CONFIG_CRYPTO_ZSTD=m
# end of Compression

#
# Random number generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_DRBG_MENU=y
CONFIG_CRYPTO_DRBG_HMAC=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_JITTERENTROPY=y
CONFIG_CRYPTO_JITTERENTROPY_MEMSIZE_2=y
# CONFIG_CRYPTO_JITTERENTROPY_MEMSIZE_128 is not set
# CONFIG_CRYPTO_JITTERENTROPY_MEMSIZE_1024 is not set
# CONFIG_CRYPTO_JITTERENTROPY_MEMSIZE_8192 is not set
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
CONFIG_CRYPTO_JITTERENTROPY_OSR=1
# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set
CONFIG_CRYPTO_KDF800108_CTR=y
# end of Random number generation

#
# Userspace interface
#
CONFIG_CRYPTO_USER_API=y
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER_API_RNG=y
# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_AEAD=y
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
# end of Userspace interface

CONFIG_CRYPTO_HASH_INFO=y

#
# Accelerated Cryptographic Algorithms for CPU (x86)
#
CONFIG_CRYPTO_CURVE25519_X86=m
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_BLOWFISH_X86_64=m
CONFIG_CRYPTO_CAMELLIA_X86_64=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
CONFIG_CRYPTO_CAST5_AVX_X86_64=m
CONFIG_CRYPTO_CAST6_AVX_X86_64=m
CONFIG_CRYPTO_DES3_EDE_X86_64=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set
# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set
# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set
CONFIG_CRYPTO_CHACHA20_X86_64=y
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
CONFIG_CRYPTO_NHPOLY1305_AVX2=m
CONFIG_CRYPTO_BLAKE2S_X86=y
CONFIG_CRYPTO_POLYVAL_CLMUL_NI=m
CONFIG_CRYPTO_POLY1305_X86_64=y
CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_SHA256_SSSE3=m
CONFIG_CRYPTO_SHA512_SSSE3=m
# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
CONFIG_CRYPTO_CRC32C_INTEL=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
# end of Accelerated Cryptographic Algorithms for CPU (x86)

CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_ATMEL_I2C=m
CONFIG_CRYPTO_DEV_ATMEL_ECC=m
CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
CONFIG_CRYPTO_DEV_CCP=y
CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_SP_PSP=y
# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_NITROX=m
CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
CONFIG_CRYPTO_DEV_QAT=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_C3XXX=m
CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_4XXX=m
CONFIG_CRYPTO_DEV_QAT_420XX=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
# CONFIG_CRYPTO_DEV_QAT_ERROR_INJECTION is not set
CONFIG_CRYPTO_DEV_IAA_CRYPTO=m
CONFIG_CRYPTO_DEV_IAA_CRYPTO_STATS=y
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_VIRTIO=m
# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_FIPS_SIGNATURE_SELFTEST is not set

#
# Certificates for signature checking
#
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
CONFIG_MODULE_SIG_KEY_TYPE_RSA=y
# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_SYSTEM_TRUSTED_KEYS=""
CONFIG_SYSTEM_EXTRA_CERTIFICATE=y
CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096
CONFIG_SECONDARY_TRUSTED_KEYRING=y
# CONFIG_SECONDARY_TRUSTED_KEYRING_SIGNED_BY_BUILTIN is not set
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
# CONFIG_SYSTEM_REVOCATION_LIST is not set
CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE=y
# end of Certificates for signature checking

CONFIG_BINARY_PRINTF=y

#
# Library routines
#
CONFIG_RAID6_PQ=y
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_LINEAR_RANGES=y
CONFIG_PACKING=y
CONFIG_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
CONFIG_CORDIC=m
CONFIG_PRIME_NUMBERS=m
CONFIG_RATIONAL=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y

#
# Crypto library routines
#
CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CRYPTO_LIB_AES=y
CONFIG_CRYPTO_LIB_AESCFB=y
CONFIG_CRYPTO_LIB_ARC4=m
CONFIG_CRYPTO_LIB_GF128MUL=y
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y
CONFIG_CRYPTO_LIB_CHACHA=y
CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
CONFIG_CRYPTO_LIB_CURVE25519=m
CONFIG_CRYPTO_LIB_DES=m
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y
CONFIG_CRYPTO_LIB_POLY1305=y
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_SHA256=y
# end of Crypto library routines

CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
CONFIG_CRC64_ROCKSOFT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
CONFIG_CRC64=y
CONFIG_CRC4=m
CONFIG_CRC7=m
CONFIG_LIBCRC32C=y
CONFIG_CRC8=m
CONFIG_XXHASH=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_842_COMPRESS=y
CONFIG_842_DECOMPRESS=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_COMPRESS=m
CONFIG_LZ4HC_COMPRESS=m
CONFIG_LZ4_DECOMPRESS=y
CONFIG_ZSTD_COMMON=y
CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_MICROLZMA=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
CONFIG_DECOMPRESS_ZSTD=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_ENC8=y
CONFIG_REED_SOLOMON_DEC8=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_BTREE=y
CONFIG_INTERVAL_TREE=y
CONFIG_INTERVAL_TREE_SPAN_ITER=y
CONFIG_XARRAY_MULTI=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_CLOSURES=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_DMA_OPS=y
CONFIG_NEED_SG_DMA_FLAGS=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
CONFIG_SWIOTLB=y
# CONFIG_SWIOTLB_DYNAMIC is not set
CONFIG_DMA_NEED_SYNC=y
CONFIG_DMA_COHERENT_POOL=y
CONFIG_DMA_CMA=y
# CONFIG_DMA_NUMA_CMA is not set

#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=0
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_MAP_BENCHMARK is not set
CONFIG_SGL_ALLOC=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPUMASK_OFFSTACK=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y
CONFIG_LRU_CACHE=m
CONFIG_CLZ_TAB=y
CONFIG_IRQ_POLL=y
CONFIG_MPILIB=y
CONFIG_SIGNATURE=y
CONFIG_DIMLIB=y
CONFIG_OID_REGISTRY=y
CONFIG_UCS2_STRING=y
CONFIG_HAVE_GENERIC_VDSO=y
CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_GENERIC_VDSO_TIME_NS=y
CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y
CONFIG_VDSO_GETRANDOM=y
CONFIG_FONT_SUPPORT=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_MEMREGION=y
CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y
CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
CONFIG_ARCH_HAS_COPY_MC=y
CONFIG_ARCH_STACKWALK=y
CONFIG_STACKDEPOT=y
CONFIG_STACKDEPOT_MAX_FRAMES=64
CONFIG_SBITMAP=y
CONFIG_PARMAN=m
CONFIG_OBJAGG=m
# CONFIG_LWQ_TEST is not set
# end of Library routines

CONFIG_PLDMFW=y
CONFIG_ASN1_ENCODER=y
CONFIG_POLYNOMIAL=m
CONFIG_FIRMWARE_TABLE=y

#
# Kernel hacking
#

#
# printk and dmesg options
#
CONFIG_PRINTK_TIME=y
# CONFIG_PRINTK_CALLER is not set
# CONFIG_STACKTRACE_BUILD_ID is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_DEBUG_CORE=y
CONFIG_SYMBOLIC_ERRNAME=y
CONFIG_DEBUG_BUGVERBOSE=y
# end of printk and dmesg options

CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_MISC is not set

#
# Compile-time checks and compiler options
#
CONFIG_AS_HAS_NON_CONST_ULEB128=y
CONFIG_DEBUG_INFO_NONE=y
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_DWARF5 is not set
CONFIG_FRAME_WARN=2048
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_READABLE_ASM is not set
CONFIG_HEADERS_INSTALL=y
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set
CONFIG_OBJTOOL=y
# CONFIG_VMLINUX_MAP is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# end of Compile-time checks and compiler options

#
# Generic Kernel Debugging Instruments
#
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_FS_ALLOW_ALL=y
# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
# CONFIG_DEBUG_FS_ALLOW_NONE is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_KGDB_TESTS=y
# CONFIG_KGDB_TESTS_ON_BOOT is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
# CONFIG_KGDB_KDB is not set
CONFIG_ARCH_HAS_EARLY_DEBUG=y
CONFIG_ARCH_HAS_UBSAN=y
CONFIG_UBSAN=y
# CONFIG_UBSAN_TRAP is not set
CONFIG_CC_HAS_UBSAN_BOUNDS_STRICT=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS_STRICT=y
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_WRAP is not set
# CONFIG_UBSAN_BOOL is not set
# CONFIG_UBSAN_ENUM is not set
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_TEST_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
# CONFIG_KCSAN is not set
# end of Generic Kernel Debugging Instruments

#
# Networking Debugging
#
# CONFIG_NET_DEV_REFCNT_TRACKER is not set
# CONFIG_NET_NS_REFCNT_TRACKER is not set
# CONFIG_DEBUG_NET is not set
# end of Networking Debugging

#
# Memory Debugging
#
CONFIG_PAGE_EXTENSION=y
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_SLUB_DEBUG=y
# CONFIG_SLUB_DEBUG_ON is not set
CONFIG_PAGE_OWNER=y
# CONFIG_PAGE_TABLE_CHECK is not set
CONFIG_PAGE_POISONING=y
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_RODATA_TEST is not set
CONFIG_ARCH_HAS_DEBUG_WX=y
# CONFIG_DEBUG_WX is not set
CONFIG_GENERIC_PTDUMP=y
# CONFIG_PTDUMP_DEBUGFS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_PER_VMA_LOCK_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SHRINKER_DEBUG is not set
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VM_PGTABLE is not set
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# CONFIG_MEM_ALLOC_PROFILING is not set
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
# CONFIG_KASAN is not set
CONFIG_HAVE_ARCH_KFENCE=y
CONFIG_KFENCE=y
CONFIG_KFENCE_SAMPLE_INTERVAL=100
CONFIG_KFENCE_NUM_OBJECTS=255
# CONFIG_KFENCE_DEFERRABLE is not set
# CONFIG_KFENCE_STATIC_KEYS is not set
CONFIG_KFENCE_STRESS_TEST_FAULTS=0
CONFIG_KFENCE_KUNIT_TEST=m
CONFIG_HAVE_ARCH_KMSAN=y
# end of Memory Debugging

CONFIG_DEBUG_SHIRQ=y

#
# Debug Oops, Lockups and Hangs
#
CONFIG_PANIC_ON_OOPS=y
CONFIG_PANIC_ON_OOPS_VALUE=1
CONFIG_PANIC_TIMEOUT=-1
CONFIG_LOCKUP_DETECTOR=y
CONFIG_SOFTLOCKUP_DETECTOR=y
CONFIG_SOFTLOCKUP_DETECTOR_INTR_STORM=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
CONFIG_HARDLOCKUP_DETECTOR=y
# CONFIG_HARDLOCKUP_DETECTOR_PREFER_BUDDY is not set
CONFIG_HARDLOCKUP_DETECTOR_PERF=y
# CONFIG_HARDLOCKUP_DETECTOR_BUDDY is not set
# CONFIG_HARDLOCKUP_DETECTOR_ARCH is not set
CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER=y
CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
# CONFIG_DETECT_HUNG_TASK is not set
# CONFIG_WQ_WATCHDOG is not set
# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set
CONFIG_TEST_LOCKUP=m
# end of Debug Oops, Lockups and Hangs

#
# Scheduler Debugging
#
CONFIG_SCHED_DEBUG=y
CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
# end of Scheduler Debugging

CONFIG_DEBUG_TIMEKEEPING=y
# CONFIG_DEBUG_PREEMPT is not set

#
# Lock Debugging (spinlocks, mutexes, etc...)
#
CONFIG_LOCK_DEBUGGING_SUPPORT=y
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_LOCK_TORTURE_TEST=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)

# CONFIG_NMI_CHECK_CPU is not set
# CONFIG_DEBUG_IRQFLAGS is not set
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set

#
# Debug kernel data structures
#
CONFIG_DEBUG_LIST=y
# CONFIG_DEBUG_PLIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CLOSURES is not set
# CONFIG_DEBUG_MAPLE_TREE is not set
# end of Debug kernel data structures

#
# RCU Debugging
#
CONFIG_TORTURE_TEST=m
# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_REF_SCALE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
# CONFIG_RCU_CPU_STALL_CPUTIME is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_RCU_EQS_DEBUG is not set
# end of RCU Debugging

# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
CONFIG_LATENCYTOP=y
# CONFIG_DEBUG_CGROUP_REF is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_RETHOOK=y
CONFIG_RETHOOK=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_OBJTOOL_MCOUNT=y
CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y
CONFIG_BUILDTIME_MCOUNT_SORT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
CONFIG_BOOTTIME_TRACING=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_GRAPH_RETVAL=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y
CONFIG_FPROBE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_OSNOISE_TRACER=y
CONFIG_TIMERLAT_TRACER=y
CONFIG_MMIOTRACE=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_FPROBE_EVENTS=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y
CONFIG_FTRACE_MCOUNT_RECORD=y
CONFIG_FTRACE_MCOUNT_USE_CC=y
CONFIG_TRACING_MAP=y
CONFIG_SYNTH_EVENTS=y
# CONFIG_USER_EVENTS is not set
CONFIG_HIST_TRIGGERS=y
# CONFIG_TRACE_EVENT_INJECT is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
CONFIG_RING_BUFFER_BENCHMARK=m
CONFIG_TRACE_EVAL_MAP_FILE=y
# CONFIG_FTRACE_RECORD_RECURSION is not set
# CONFIG_FTRACE_VALIDATE_RCU_IS_WATCHING is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_FTRACE_SORT_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
# CONFIG_MMIOTRACE_TEST is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_SYNTH_EVENT_GEN_TEST is not set
# CONFIG_KPROBE_EVENT_GEN_TEST is not set
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_DA_MON_EVENTS=y
CONFIG_DA_MON_EVENTS_ID=y
CONFIG_RV=y
CONFIG_RV_MON_WWNR=y
CONFIG_RV_REACTORS=y
CONFIG_RV_REACT_PRINTK=y
CONFIG_RV_REACT_PANIC=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
# CONFIG_SAMPLES is not set
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
CONFIG_STRICT_DEVMEM=y
CONFIG_IO_STRICT_DEVMEM=y

#
# x86 Debugging
#
CONFIG_EARLY_PRINTK_USB=y
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EFI_PGT_DUMP is not set
# CONFIG_DEBUG_TLBFLUSH is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_X86_DECODER_SELFTEST=y
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEBUG_BOOT_PARAMS=y
# CONFIG_CPA_DEBUG is not set
# CONFIG_DEBUG_ENTRY is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_DEBUG_FPU is not set
# CONFIG_PUNIT_ATOM_DEBUG is not set
CONFIG_UNWINDER_ORC=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
# end of x86 Debugging

#
# Kernel Testing and Coverage
#
CONFIG_KUNIT=m
CONFIG_KUNIT_DEBUGFS=y
# CONFIG_KUNIT_FAULT_TEST is not set
CONFIG_KUNIT_TEST=m
CONFIG_KUNIT_EXAMPLE_TEST=m
CONFIG_KUNIT_ALL_TESTS=m
# CONFIG_KUNIT_DEFAULT_ENABLED is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FUNCTION_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
CONFIG_ARCH_HAS_KCOV=y
CONFIG_CC_HAS_SANCOV_TRACE_PC=y
# CONFIG_KCOV is not set
CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_DHRY is not set
# CONFIG_LKDTM is not set
CONFIG_CPUMASK_KUNIT_TEST=m
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_TEST_MIN_HEAP is not set
CONFIG_TEST_SORT=m
# CONFIG_TEST_DIV64 is not set
CONFIG_TEST_IOV_ITER=m
CONFIG_KPROBES_SANITY_TEST=m
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_TEST_REF_TRACKER is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_REED_SOLOMON_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PERCPU_TEST is not set
CONFIG_ATOMIC64_SELFTEST=y
CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_TEST_HEXDUMP is not set
CONFIG_STRING_KUNIT_TEST=m
CONFIG_STRING_HELPERS_KUNIT_TEST=m
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_SCANF is not set
# CONFIG_TEST_BITMAP is not set
# CONFIG_TEST_UUID is not set
# CONFIG_TEST_XARRAY is not set
# CONFIG_TEST_MAPLE_TREE is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_IDA is not set
# CONFIG_TEST_PARMAN is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_BITOPS is not set
CONFIG_TEST_VMALLOC=m
CONFIG_TEST_BPF=m
# CONFIG_TEST_BLACKHOLE_DEV is not set
# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_SYSCTL is not set
CONFIG_BITFIELD_KUNIT=m
CONFIG_CHECKSUM_KUNIT=m
CONFIG_HASH_KUNIT_TEST=m
CONFIG_RESOURCE_KUNIT_TEST=m
CONFIG_SYSCTL_KUNIT_TEST=m
CONFIG_LIST_KUNIT_TEST=m
CONFIG_HASHTABLE_KUNIT_TEST=m
CONFIG_LINEAR_RANGES_TEST=m
CONFIG_CMDLINE_KUNIT_TEST=m
CONFIG_BITS_TEST=m
CONFIG_SLUB_KUNIT_TEST=m
CONFIG_RATIONAL_KUNIT_TEST=m
CONFIG_MEMCPY_KUNIT_TEST=m
CONFIG_IS_SIGNED_TYPE_KUNIT_TEST=m
CONFIG_OVERFLOW_KUNIT_TEST=m
CONFIG_STACKINIT_KUNIT_TEST=m
CONFIG_FORTIFY_KUNIT_TEST=m
CONFIG_SIPHASH_KUNIT_TEST=m
CONFIG_USERCOPY_KUNIT_TEST=m
# CONFIG_TEST_UDELAY is not set
# CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_TEST_DYNAMIC_DEBUG is not set
# CONFIG_TEST_KMOD is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_OBJAGG is not set
# CONFIG_TEST_MEMINIT is not set
CONFIG_TEST_HMM=m
# CONFIG_TEST_FREE_PAGES is not set
# CONFIG_TEST_FPU is not set
# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set
# CONFIG_TEST_OBJPOOL is not set
CONFIG_ARCH_USE_MEMTEST=y
CONFIG_MEMTEST=y
# CONFIG_HYPERV_TESTING is not set
# end of Kernel Testing and Coverage

#
# Rust hacking
#
# end of Rust hacking
# end of Kernel hacking

--U/h0/aHnK2cTJYPk--

--5etnZlLdD07AC4fT
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmcosJsACgkQ24/THMrX
1yyUvwf/Qp/osXK6R2jnhvS4oKmR/fkU80qsLpH32I/ebfoe4hfr/IbIRIRXbPdA
m01XN7jDqUVBBUJycjV/7DmbsYI5xDDph3ZATnXi7mlb7Kx98nMv1BBA0Pq4EF6k
m2Wqap06A9caQ59KWyExJCcQwqqP1tC6s2ViifVnyad1Z5themUqI4c/pkpyjqFb
MbuFyMzATf4wg7HGJt+Kf+4mScvsNS/HiXDO+aRdvafh7ZSbs1qnqDRNlJKKmuh6
GkafX9hSja8vJ8diKnC+rfZRhahsYSai8e6SR2vRk9ca8emjxWKPV0RTB9ouh6s1
uG4/r6dqZJZDN7k2adClzFElpTJhxA==
=bSjb
-----END PGP SIGNATURE-----

--5etnZlLdD07AC4fT--


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 11:46:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 11:46:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829958.1244889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7vX9-00013C-5E; Mon, 04 Nov 2024 11:46:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829958.1244889; Mon, 04 Nov 2024 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 1t7vX9-000135-1M; Mon, 04 Nov 2024 11:46:11 +0000
Received: by outflank-mailman (input) for mailman id 829958;
 Mon, 04 Nov 2024 11:46: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=OLBd=R7=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t7vX7-00012z-Rq
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 11:46:09 +0000
Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com
 [2607:f8b0:4864:20::1034])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42b72941-9aa2-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 12:45:17 +0100 (CET)
Received: by mail-pj1-x1034.google.com with SMTP id
 98e67ed59e1d1-2e2cc47f1d7so2839383a91.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 03:45:17 -0800 (PST)
Received: from localhost ([217.156.233.154]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-2e93dac015bsm7239415a91.26.2024.11.04.03.45.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 03:45: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: 42b72941-9aa2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoxMDM0IiwiaGVsbyI6Im1haWwtcGoxLXgxMDM0Lmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjQyYjcyOTQxLTlhYTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzIwNzE3LjkxMDEwOSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730720716; x=1731325516; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0SP+Hu4vGRsVX5JNNcHZ7OvN4YMAtu2dWg8yX1cPTfc=;
        b=OL+Y1ogJrfKUcVj3n1Kx8q3iW2Yt/qnkC+lGak3zDxdGW2mqBJQWl3z0xsA+vzXEXA
         IMEcvrzsOnUbNT7WcEn3c0Tuj87clVae7YoEJ6JzYBQS7QXtn1U+a0a79QuUSBZiXjUE
         BFQQ6z8fcJraxW7Wr/xIgeGm+ea8TLr3OE6Uc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730720716; x=1731325516;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=0SP+Hu4vGRsVX5JNNcHZ7OvN4YMAtu2dWg8yX1cPTfc=;
        b=v4+2wa9J8iBhr7n2SyIBqnaDB4EY/ZWvK0FNpAdXiqCeOqcQmuXftZazsRgZdF2P8k
         PwrvAM7h42p4XXrDdJy7+9f/8qd8HZk5a8bx+WoAC+fJRWTYK0YQDkvyfUu50cLnmj/Q
         sMWPqJilwzIVR763N9qqL8Nl3MOabDSK/VJSt8qSIHwhezZ1xdAagfAoG/AGseYambP/
         L0C8+K1WeZi2yGw9Ry/6YlRHwDcNMmnLquw5B2kBbQIkXnHGF+tTdcLSm0OVgKjv8Ys4
         TcsYoBPr6lM9OBzYCA1QOx9B6DuqtztBaC/ByfIw3P3S4pSgNcbUXnCvBkHKgkg7LB+T
         dwDA==
X-Forwarded-Encrypted: i=1; AJvYcCWFyqcopPv+KsA8oiZGdS37WoDs17nOxNukHGJ+LTpQsm5Ca09nclxSDFipqhaekDXq24653QXToD8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFQXVRNWS7/5xmeTQtnyUxAl8fSQZTV9SBT01fKuaOin/+L4sR
	QsdRL4L16gUnphQnNDOViikykhGuqknuttc6FMyjTXrJ3TsmCmNTx/lrq/hyDtU=
X-Google-Smtp-Source: AGHT+IHKUN+jmnm1XVq2cKXSAnAqQ6FgtYwLtY932dxsqWlDCGj8JsPFvo77TrO7A2FBAfMfvd0tKQ==
X-Received: by 2002:a17:90b:1dc5:b0:2e2:7f8f:3ad5 with SMTP id 98e67ed59e1d1-2e94bcb6642mr19278316a91.2.1730720715930;
        Mon, 04 Nov 2024 03:45:15 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 04 Nov 2024 11:45:05 +0000
Message-Id: <D5DDABNKHN42.1HD2T6NV99J51@cloud.com>
Cc: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>, "Stewart Hildebrand"
 <stewart.hildebrand@amd.com>, "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.18.2
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>
In-Reply-To: <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>

On Sat Nov 2, 2024 at 3:18 PM GMT, Daniel P. Smith wrote:
> On 11/1/24 16:16, Stewart Hildebrand wrote:
> > +Daniel (XSM mention)
> >=20
> > On 10/28/24 13:02, Jan Beulich wrote:
> >> On 18.10.2024 22:39, Stewart Hildebrand wrote:
> >>> Add links between a VF's struct pci_dev and its associated PF struct
> >>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to av=
oid
> >>> dropping and re-acquiring the pcidevs_lock().
> >>>
> >>> During PF removal, unlink VF from PF and mark the VF broken. As befor=
e,
> >>> VFs may exist without a corresponding PF, although now only with
> >>> pdev->broken =3D true.
> >>>
> >>> The hardware domain is expected to remove the associated VFs before
> >>> removing the PF. Print a warning in case a PF is removed with associa=
ted
> >>> VFs still present.
> >>>
> >>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >>> ---
> >>> Candidate for backport to 4.19 (the next patch depends on this one)
> >>>
> >>> v5->v6:
> >>> * move printk() before ASSERT_UNREACHABLE()
> >>> * warn about PF removal with VFs still present
> >>
> >> Hmm, maybe I didn't make this clear enough when commenting on v5: I wa=
sn't
> >> just after an adjustment to the commit message. I'm instead actively
> >> concerned of the resulting behavior. Question is whether we can reason=
ably
> >> do something about that.
> >>
> >> Jan
> >=20
> > Right. My suggestion then is to go back to roughly how it was done in
> > v4 [0]:
> >=20
> > * Remove the VFs right away during PF removal, so that we don't end up
> > with stale VFs. Regarding XSM, assume that a domain with permission to
> > remove the PF is also allowed to remove the VFs. We should probably als=
o
> > return an error from pci_remove_device in the case of removing the PF
> > with VFs still present (and still perform the removals despite returnin=
g
> > an error). Subsequent attempts by a domain to remove the VFs would
> > return an error (as they have already been removed), but that's expecte=
d
> > since we've taken a stance that PF-then-VF removal order is invalid
> > anyway.
>
> I am not confident this is a safe assumption. It will likely be safe for=
=20
> probably 99% of the implementations. Apologies for not following=20
> closely, and correct me if I am wrong here, but from a resource=20
> perspective each VF can appear to the system as its own unique BDF and=20
> so I am fairly certain it would be possible to uniquely label each VF.=20
> For instance in the SVP architecture, the VF may be labeled to restrict=
=20
> control to a hardware domain within a Guest Virtual Platform while the=20
> PF may be restricted to the Supervisor Virtual Platform. In this=20
> scenario, the Guest would be torn down before the Supervisor so the VF=20
> should get released before the PF. But it's all theoretical, so I have=20
> no real implementation to point at that this could be checked/confirmed.
>
> I am only raising this for awareness and not as an objection. If people=
=20
> want to punt that theoretical use case down the road until someone=20
> actually attempts it, I would not be opposed.

Wouldn't it stand to reason then to act conditionally on the authority of t=
he
caller?

i.e: If the caller has the (XSM-checked) authority to remove _BOTH_ PF and
VFs, remove all. If it doesn't have authority to remove the VFs then early =
exit
with an error, leaving the PF behind as well.

That would do the clean thing in the common case and be consistent with the
security policy even with a conflicting policy. The semantics are somewhat =
more
complex, but trying to remove a PF before removing the VFs is silly and the
only sensible thing (imo) is to help out during cleanup _or_ be strict abou=
t
checking.

>
> v/r,
> dps

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 12:16:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 12:16:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829975.1244899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7w0V-0005Zb-IX; Mon, 04 Nov 2024 12:16:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829975.1244899; Mon, 04 Nov 2024 12:16: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 1t7w0V-0005ZU-FK; Mon, 04 Nov 2024 12:16:31 +0000
Received: by outflank-mailman (input) for mailman id 829975;
 Mon, 04 Nov 2024 12:16: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=0R2G=R7=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t7w0U-0005ZO-F1
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 12:16:30 +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 9c0bbe28-9aa6-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 13:16:24 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a9a0ec0a94fso681188766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 04:16:24 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9e56494145sm546324666b.33.2024.11.04.04.16.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Nov 2024 04:16: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: 9c0bbe28-9aa6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjljMGJiZTI4LTlhYTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzIyNTg0LjY3NDc5Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730722584; x=1731327384; 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=jT27jzhqW/cEth0KT37bEIWHAq4q4ulw2tsXFkqiGJA=;
        b=Xrgaes6EKiGR/9nKXnieMPUryC3n+ODSVEowZqWVRa4OASg6h//vpu1INIcgM7FQDb
         0m/N3Mpv8wAbips2msDH870tzO661/Y5Ejgptu7it3+IswkIlkbf+jfJ1WIYCYI1M2tG
         fk+Q/GaRu+9BollaGvGKKdCzWg47s5fq2Ua7M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730722584; x=1731327384;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jT27jzhqW/cEth0KT37bEIWHAq4q4ulw2tsXFkqiGJA=;
        b=ImY4onBl4ETF3P8rf8eE3lkJFzcDRpFj2jLC6C/SXB827oW6ZpGBZFvTueowlLl5L2
         YrDdm+r+29i+VHHeaEOMAt9JbDmEP3hV6Vn0d5kX/r7FTrGdmXzsiqXePRgrwwbDGmdZ
         eQmLhH7xvfXuKmy4IimgGw4KlqvMJ1utNyrsLZGpuHqQWZb8D+z9Mpr20s+6teoQYrKX
         F/0eVsVnQ3t6T1NO2njk8Cyme+kGZSGHCZZgiYq85zHDBujP++XBQDcYIWANOvj/HAdr
         drunYe8MikqSDuyOeF8dRdAPuxH5e6SqYTsMJ0tC/ofKf5+8DZ+ASHa3saQZnaCin2gj
         Z5Yg==
X-Gm-Message-State: AOJu0YyNHhEVahN9XrII5I2XWI8Sp1SxSU5z6J5ANSiFtQEBzvFPU/wX
	IAQ8ovD2qyXdZp+0mbiFxYQVaCDU6V5anCKGBMS3+6zPYYRjgMsmKxPSznU6b+Eg8Y6fyj93pq+
	o
X-Google-Smtp-Source: AGHT+IFQp7TtaLBn8y6kwsYSDyQnlrrsiqO2astaRPGWbBvL3bRK37vU+HJQWQWsEHLNNsi1tPHrZQ==
X-Received: by 2002:a17:907:eaa:b0:a9d:e1d6:4176 with SMTP id a640c23a62f3a-a9de632d19bmr2924843066b.59.1730722583983;
        Mon, 04 Nov 2024 04:16:23 -0800 (PST)
Message-ID: <5b1f97cf-09bd-42d0-a966-ca9d3b6c2e84@citrix.com>
Date: Mon, 4 Nov 2024 12:16:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: Drop alpine-3.18-rootfs-export and use test-artefacts
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>,
 Victor Lira <victorm.lira@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20241031190043.3011299-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2410311546170.2525410@ubuntu-linux-20-04-desktop>
 <86a60aec-f259-41be-92a0-ce66ce24f4ae@citrix.com>
 <alpine.DEB.2.22.394.2410311559460.2525410@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <alpine.DEB.2.22.394.2410311559460.2525410@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31/10/2024 11:05 pm, Stefano Stabellini wrote:
> On Thu, 31 Oct 2024, Andrew Cooper wrote:
>> On 31/10/2024 10:46 pm, Stefano Stabellini wrote:
>>> On Thu, 31 Oct 2024, Andrew Cooper wrote:
>>>> The Argo work already moved this artefact into the new form.  Reuse that, and
>>>> drop one test job.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> This is good but should we also remove
>>> automation/tests-artifacts/alpine/3.18.dockerfile since we are at it?
>> Well, that's another thing that needs careful consideration.
>>
>> That dockerfile needs updating in tandem with the build container (or
>> lib$FOO.so's don't work when running the test), and it's hard enough to
>> keep track of things when they're all in one repo.
> Uhm, you have a good point. Two things come to mind. First, for this
> patch:
>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks.

> Second, I think maybe it would be better for test-artifacts to use the
> build containers from xen.git/automation/build ? So that at least all
> build containers come from the same place?
>
> For instance, we would have to add any missing dependencies to
> automation/build/alpine/3.18.dockerfile, from the list currently in
> images/alpine/x86_64-build.dockerfile. Only a couple of things are
> missing. Then remove images/alpine/x86_64-build.dockerfile, and use
> registry.gitlab.com/xen-project/xen/alpine:3.18 in the test-artifacts
> build jobs?

First, I think it is important that hw/t-a uses main Xen's containers,
rather than its own.Â  That way, all the dockerfiles are in one place.


As for merging the build and test-artefact dockerfile, I'm not so sure.Â 
They're almost completely dissimilar, and (amongst other things) we
don't want to be including two full toolchains in the test initrd.

So, I think they do need to remain separate, but the build/test-artefact
split is weird already because build/ is both build and some test, but
not all.Â  I think things would benefit from relaying out automation/
somewhat.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 12:20:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 12:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829981.1244908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7w4k-0007BR-16; Mon, 04 Nov 2024 12:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829981.1244908; Mon, 04 Nov 2024 12: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 1t7w4j-0007BK-Ur; Mon, 04 Nov 2024 12:20:53 +0000
Received: by outflank-mailman (input) for mailman id 829981;
 Mon, 04 Nov 2024 12:20: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=+0Og=R7=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t7w4i-0007BE-Ns
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 12:20:52 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 387f0240-9aa7-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 13:20:48 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730722843787562.3585731585786;
 Mon, 4 Nov 2024 04:20: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: 387f0240-9aa7-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM4N2YwMjQwLTlhYTctMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzIyODQ4LjkyNjI5NSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730722844; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=a2aOf0Vc/3JPKraiX+AOpTsaAXxjvUQlzrOJ0ZdxlpuvYo6TxYwKEmUdUUZlmNqsd3RTUNCm5Dtv46QLb5SGzOXGsyi3aHdjO6gHkjXKPj/C1YVToCpo9euCeBwAHmM1sAow5CxuDalVdmDwdAwzTo8fMzjqP4bMBNPQh1q43hQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730722844; 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=sHOznbzE12eQPgSMHy8JjcdOLta14SbOUjhyMpUZxwI=; 
	b=Dj3dBMiw5jFCBxsMvdwjBXJJa+jOT6K3/4Uskd5JGubQdAECiY2+bCIp8Z53x+/OZdD2j4tZBrsni8SdiTIe9QMPp94QGv+hrwSo7WidxLaBt4bG5HtRFPnmqgdxChSwd0Zfwnq7F6XBxavxCihDOXvNELgEtB0Rf7TsJV8aSHs=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730722844;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=sHOznbzE12eQPgSMHy8JjcdOLta14SbOUjhyMpUZxwI=;
	b=ZZVS2h0fhcmVK+y1xRk+L2Dn9h6SvyMkyM8EA0w3lpvhcZC5AVkdfFZG3MeuuePP
	s0eCziTg0gUcSrt0bwdhLSOi7UO1TQG8DXX4FXlqDTpgFOcEAFUr1ri3WOcfwGBpFNU
	PV8B9ksub9Oe+J277hdiEYZOy9zv/Zqeq4ZmnWRg=
Message-ID: <182d5e0d-0950-47b2-8e6e-281b4488b6c7@apertussolutions.com>
Date: Mon, 4 Nov 2024 07:20:42 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/12] Boot modules for Hyperlaunch
To: Jan Beulich <jbeulich@suse.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, xen-devel@lists.xenproject.org
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <b04fb1c2-7b62-49ec-93a0-452edd241d4a@suse.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <b04fb1c2-7b62-49ec-93a0-452edd241d4a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/4/24 03:41, Jan Beulich wrote:
> On 02.11.2024 18:25, Daniel P. Smith wrote:
>> The Boot Modules for Hyperlaunch series is an effort to split out preliminary
>> changes necessary for the introduction of the Hyperlaunch domain builder
>> logic. These preliminary changes revolve around introducing the struct
>> boot_module and struct boot_domain structures. This includes converting the
>> dom0 construction path to use these structures. These abstractions lay the
>> groundwork to transform and extend the dom0 construction logic into a limited,
>> but general domain builder.
>>
>> The splitting of Hyperlaunch into a set of series are twofold, to reduce the
>> effort in reviewing a much larger series, and to reduce the effort in handling
>> the knock-on effects to the construction logic from requested review changes.
>>
>> Much thanks to AMD for supporting this work.
>>
>> !!NOTE on v8!!
>> For this version a complete re-organization of the changes were made with the
>> concept that three tasks were being carried out that were intertwined in the past
>> versions. These three tasks were 1. capturing the state tracking and
>> enrichment, 2. removing the use of module_t to track where a boot module is
>> located in memory, and 3. abstract the domain construction state. The first
>> eight patches address task 1, task 2 is address with patch nine, and the
>> remaining addresses task 3.
> 
> Just to mention it - a v8 tag would also have been nice in the mail thread
> subjects.

Absolutely, my apologies, I totally missed that I hadn't tagged the series.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 12:40:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 12:40:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.829989.1244918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7wNJ-0001hS-Hl; Mon, 04 Nov 2024 12:40:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 829989.1244918; Mon, 04 Nov 2024 12:40: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 1t7wNJ-0001h1-Em; Mon, 04 Nov 2024 12:40:05 +0000
Received: by outflank-mailman (input) for mailman id 829989;
 Mon, 04 Nov 2024 12:40: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=8uZz=R7=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1t7wNH-0001JV-RH
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 12:40:04 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2613::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e647c729-9aa9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 13:40:00 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by VI1PR03MB6493.eurprd03.prod.outlook.com (2603:10a6:800:19f::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 12:39:55 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8114.028; Mon, 4 Nov 2024
 12:39: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: e647c729-9aa9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjFmIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImU2NDdjNzI5LTlhYTktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzI0MDAwLjUwMDI1LCJzZW5kZXIiOiJncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O0yhrEzCFMma2GS7dNkCRbgJUBF1ZmeVr/jpjQmghQUBa3PRWyxyMcucYODvNvjcwJCdmytFx0Yh5GKMkprQmJCcjGXlV0nT+m4mykzD7K62t/Whuj75UXWvdsP0+HGDr6jQLzETb0eXVadmdBAzUJkwtVlqvmXr0JLlTEPGQ64J85VmRGDIQ8tHzpxm/43T39UkqH+mOKiQjYGkj7UDkrna/ATEE6PmHxdRxCKD+4La3i357+oLc1BAvmZGEnCBZT0Gv4bTYE1rAmJDUuSa89OtGFbAeANXxnC36Lc/SuVPiaFetznT1cI8Q6NBGYjH+krcmDE3uFU88HeDTRM0yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wxe8746JWt5nsrEYby1gKXlng+z5IYsOHFyx8daYN6o=;
 b=nfJQwx4B8gMd9zFSRvN6gMyLuffJT5XRlXAI9z3SM0iswJgTqc+eAHPu6o7Xgb8Ik8ySJHNI2s3/W24eH+nC1oHioBD4BL1F1NWRvdsFw+6w5eMdm27MoD+J2AAi+dEiX2UvY5bQn+Rl6+D+kvXzsFhH+Hq+kB5WZ2acyPjoqxhXQ23rcaFM0Z3gIRjA5+eDHfxZPyIOkx7sdMnAwU7ZSb7gJsfs0MYp3RwWGO+q0EbAs0tGTt8KZEWElv6yRADTCnQznqLc2sPOrPljwr/luQkGMxDGC7BnzXx2V/AgZR5i4PJuuzgb7GXb7lPeTFCTNv+s7GRDnJDlqj8kQK1MfQ==
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=wxe8746JWt5nsrEYby1gKXlng+z5IYsOHFyx8daYN6o=;
 b=f3vsgteZogfOe3LUUxiIJB0sQaRwKHjDcxhOC7L1FI1lBNIJTHO+gvK5lxLNI5c4t02lc234QH7dmBsU+j7dAh8uBjxyYl7hl5KkOzohXOa1R+ruIn6HTR3VmT3lbknKzNGh4IOaMbN1iWWnEM6SYca9OLjg3E+5PJdOZztINhxuwA5EyVWAFZG+yf/9Ty+ErkTJdY8DV8egXoFNjLt1Vi2IKnmSeJhozQSHrdDai6brzF1K3gQUZcyXc61Giths0ZqvJP9aiazSE4cJ7hzD3N56EVvx6Oh4nNfeJDJkYjD9Igppa9805paAHJuv+veduDjjrdmkrubPTFY8TXTFnQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <a127edbb-8006-466d-a529-1b7a80af21b1@epam.com>
Date: Mon, 4 Nov 2024 14:39:52 +0200
User-Agent: Mozilla Thunderbird
From: Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v5 1/3] xen/device-tree: Let DT reserve map entries
 overlap reserved-memory
To: Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
Cc: tpearson@raptorengineering.com, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <cover.1727388925.git.sanastasio@raptorengineering.com>
 <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com>
 <1ae100b3-17f0-4ac5-beb3-fdd2f12adee7@amd.com>
Content-Language: en-US
In-Reply-To: <1ae100b3-17f0-4ac5-beb3-fdd2f12adee7@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0190.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ab::15) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|VI1PR03MB6493:EE_
X-MS-Office365-Filtering-Correlation-Id: 90652aa0-559c-46d3-e1b0-08dcfccdc8dd
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?bG92dUQ2UkFBUXV3MVVTM3RSaVYvSUJLUWowZXJLNzU4cGF1MnU2L2JuQzVU?=
 =?utf-8?B?U2dRRzJsb1BoZ2t0Z0tuaW42VXBJY1hHMWRPUC9iUDNvQnM4SWRYZk5TMk1N?=
 =?utf-8?B?TVlkUmRKa0Fhd091RlVEdFVwUkVNWm5Na25FRW4vVGI1UGhqaWVxMjFoTVpv?=
 =?utf-8?B?cktLSVpOWnVCdnNWOTA1cXRORzcwRlZndGF0T1Q3U0h0czV4alhSQUVZMVZr?=
 =?utf-8?B?U2E3V3RrSENOb1hWZi83RzFOc1A3MzNTbUI4SGJGaDN6OWJhYmRoL0RiV00v?=
 =?utf-8?B?ZlZGUkl5Y1pjTEh6RnZtcWttMVpNWXdvYXY3ejFSMjBjM3hsbUozcEg2Z2hL?=
 =?utf-8?B?ZFFwNGZSNm5FSDI5Yk5UeWs1VXpGa2dDbTU5cC9MaTA2QmhBODNkd2hPWW9M?=
 =?utf-8?B?YlNOSFY5RkF1RTkxekV5QzIrMXpESU9RRUVjZSthUm5GVFFiWUJFK0FnNTJH?=
 =?utf-8?B?bS9XZ0N2Y3dsQmdza2o3ZTJDRDZpb0srZFVCaFBCMFVnVlZBVjArMW9pcDF5?=
 =?utf-8?B?eS93QnRvUnN2anA4eWZiNFlEbmVibzJqbEdoYllqUDh3Sldyc0tXZlF6UThh?=
 =?utf-8?B?UkZDNmVHS3ZqVmtDeVlCekNVbEsxa29USWFjd25PQituSTFBdVFrSDdMKzdE?=
 =?utf-8?B?OUVXZEZQWmRWQnBpU05CdlVtYzlISGNzSHBuM0YzVXRCMFdzWk0xbkVvSGJH?=
 =?utf-8?B?cjVjM2VaLy9ackVsTkJuNzRBYU5vTGpJRU1zd0k5MWI5VHBRdStxeTd1U2l0?=
 =?utf-8?B?YWpsTmppZ05OTXE1VGFmTVJNK3ZOTXFlTm1jb3BWc2VDSWFyTmhud0tFVGE0?=
 =?utf-8?B?TU1ManZlUzlrTnpEekpNZUtSSFFVc1Bya0NRdzRJWnJuWDhjcDBIY0V6akNi?=
 =?utf-8?B?dVgxVDdabGdkOXN6dEM0RHlkK3gwNGUxcllXUTZqWXA1UTBHOUZLaHJIaTJI?=
 =?utf-8?B?QXNaLy9sdDBPcjQ0MTcrY2F4dm9QZUwxMTV3K0wwQWZ4RFBaWXVTUWdNeTVS?=
 =?utf-8?B?RFlNeW5VZWZxbCtaUjBZSHI3Q1JhYUo4c1FSMmtONis5ajYrVnVqYW9uRFdR?=
 =?utf-8?B?TU5kSXpIUW1pME4zMzRpWWVqVzhTQ3puTmhRaTJCZC9XdVlub2RLcHA0SmxL?=
 =?utf-8?B?OWZud2xFOVd6eExmYVBUemJkaDJlSldvWDlmZGVmSGRCUE13Y3JzNVlCSkdI?=
 =?utf-8?B?NzFIdXdjbEhnSk5pb2t1bmxJQUJCYUxDNERTeEpxQ3VXcDErMkR5dWduMytk?=
 =?utf-8?B?ZCtaaE00amxJZHR5SVBiRFVOTVBsMzNsZk9scDg2NHpodGFrTXhMRklSWjhG?=
 =?utf-8?B?ZU9oY3NIWXZ0Nk9ZejMrZk0xV2grb2RGellmVFYzYlhvN01qaVo5ZTRGcFBj?=
 =?utf-8?B?T0wxUmMrY1dvVkRpRmErMUJDaWpWREMyaGpzVFRJNDdLTDVNOHBCRTJzcXRs?=
 =?utf-8?B?WGhDOG5VS0ZOTldMNzA3VC85R3BUM21rb1FmTXdMWitsWWkxd00rN0diNHdS?=
 =?utf-8?B?OUs1SFV2YUJtQ3J1SmZOQmlEOGg0WE55U3dmYkZEU015Z1FRMW1EZG1NTWky?=
 =?utf-8?B?cERlNUtDSER4aC9qc1JvOHVmZXlFQWFWRXkxUGp1Y3JJcGwxcHNEK0V4cW9G?=
 =?utf-8?B?TTFRYWlJdEZmMHNZdEpMWlJza3NpZjRwWkd2L3Q5YmY0SGg4Qk1kZitlb0ZY?=
 =?utf-8?B?bklkY251elV1b3BIYkRubDdDNU1RdnplR1d4d1ZLclNsWVdqUDdkck1hVnVn?=
 =?utf-8?Q?AZvCgJs8LSX29HtM7NR4KOAovmllWgnhZs1e1cb?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?Q0UzR29vSDlDSzUzSzhYRHNLVTg2TEU5TFBQMzVNSlNsVGpvaTc2dEJrUmFj?=
 =?utf-8?B?dE1wbFVnbHZvS0hSTjBOWkVhY2s3WHdUdjhzRDdyYWkxMjhwWXdLOFVpNnc3?=
 =?utf-8?B?dTBraUdyQng2SG1yYjhiYk5tWkhLTWhHK3ZyR21PUmswUHk3VldpUGNvMWVZ?=
 =?utf-8?B?SGNqakJuTnZQUFRMNXA2R2lZRk80U1VMZGYwYy94c3RnVmpjdncwM0ZXdVda?=
 =?utf-8?B?NWdWVlF1ME1DcU04TXRPWXMzYTYxcm95eStuV1dtaXRsRFJic2FvRTZzUWVX?=
 =?utf-8?B?OXlKQno4WFA0SWllQ04ya25xQ2ZLMk9PQW56SThBS3Q1M250Tm5kb0tndzlT?=
 =?utf-8?B?MXFPSGs3R3N6cUN3M2NjN1diQzNVcjJIWHhMbjYxbndVMjVrSXhqbTVCa2JJ?=
 =?utf-8?B?a2hJbFdycjJSdnU1VmVSYzRNZVVRWi9FMXE0eDVnQXg2eE1jTVlIcWZLdWIv?=
 =?utf-8?B?Sm5yK1paWEFFZmdtMjRCS29hSC9DL3NNQ3Vpb0JVbWd2alE2L1dMMzZpSHo4?=
 =?utf-8?B?VnV3ZXlMeHA0NUhocWttK25ad2RIN1k5eERmaEh4WmxCVmRTb0ZoTGRueUhv?=
 =?utf-8?B?YU5RZUFGSlh0c1lpaXBmYlNyTWNrcUZsOW9ucEUwOXF0Yy9jenl3d0hjSTBm?=
 =?utf-8?B?d0QxU0FsNU5QSW5XVTNsYnVKYktRVjlSQUR0MDBwVUE5Rm5GZlJnWVljaFlL?=
 =?utf-8?B?WGFwa0g2eDlWNmZ4ak5pU2hlQkxsVGhxazgrL2EyeHFFRGxkaU1EQVM5em90?=
 =?utf-8?B?WStzVG41aVFZUXBzTFkxb3BELzg3VW52bkVGcjRFV0xuZDcvUkVPZVdrbG5x?=
 =?utf-8?B?UHNMeStHUExHNHJyd0JpQ0hudDZPWXVLYnJ3WElKcDBwL2RBU2tkRTNKdTVR?=
 =?utf-8?B?Qm9OWkpXZXB5azlNM29ZSGtUVzhKVDY4QXZMMkJlNHFFUVdGVmNpWU82cVdr?=
 =?utf-8?B?M3RCOGN3YzBYVW5vZzhtREdTRUJoa1dabUpPa0s4Zm52UnB2VDgyOVZYaThr?=
 =?utf-8?B?VGJPSkFvdGJDZE82T21Cd0NNWG1FL1FSaURqRGNNVEYwdUk1OHBEN3Bjekk2?=
 =?utf-8?B?Sm1McjdVMGRvNENDVE8yTEpDUkJwT2pwd1ZlbHBXUXRoaVhKbW5XN2RGK3c4?=
 =?utf-8?B?bzJZQjNrdzE0TTJVWXpCZ3Y5L0Jka0lYTEJDUW1VcTRTUHpaUEFWZU1aQ3hB?=
 =?utf-8?B?d0E4cmMxRmtKY3hYTDNqOHhlRUdzNlBVTHNJemZ4OTQzaTBUT2d0K2FQNGFX?=
 =?utf-8?B?bTN1UVFzL3pIT0JUZXYwMlRjeE16TzNzRHhSTW9vaEU5SE1WZmcrd3pURTJl?=
 =?utf-8?B?WHZKbW9SR0ZwVkFQdThPWW52R0hJblBnRHpGUE44ZUF5T1dVNkNzMnR5L3ZB?=
 =?utf-8?B?N0hEN3hRR0lZL21qZDFXL25FZm1BSWFUM1VReW03QmZjTHpveWxNUzY1YkVu?=
 =?utf-8?B?Tk1pRXlxL1dUSUNWWmU2WWRsc1E1ODBKd21xMjdSQlNxNkg5ZnRvc2E2bXpB?=
 =?utf-8?B?NyswSE0zbGdnY3hCWXFUSDAyWjdDaW5taTFFOXJDbnVVaXZvVjJCaENMWVhY?=
 =?utf-8?B?UzBGZlVseUx3c0dyYVFIUk14QVpUcktsVlZ4QnpuRndSa2tHblJSNWRGZUlL?=
 =?utf-8?B?VWlkUlVQKzh6Z1hzNFVBMnJDL1lWdWdISC83RkRaWjd6aThsL3B6bVd3NHBS?=
 =?utf-8?B?VmlKbEZSN00rYWhmbGVPdk5MR1Rrbk9yZzRxREtEejg2RVJudkcyVmVPQ1VI?=
 =?utf-8?B?OFRkVms2OFNkcWlZeTZGWjNYeUsrYk5tRVQxWmd2eE5wZlVaeUhCSU5LbGdN?=
 =?utf-8?B?Z055Mk9TbmxIVENMallEM1Zqek02dzQ2NEtqcjVBSTdndFd6dWF4T3dTZER2?=
 =?utf-8?B?WTd1U1F0T2QybUIvSDJyM0J5bXYzT1hERG4wUHZrRmluc2ZCc21wR0pzeEY1?=
 =?utf-8?B?NjA4V09JQWZ1dityY3FRRmthVXhVUkFmSFR6MlI4cG9KMzZMdGVTdHE4Mldj?=
 =?utf-8?B?UldDOTQzR3FubDE3TTJxeHUrYUMzaUJXQTRJQ3lWRU16RXVkVmp5SFY0ZS9M?=
 =?utf-8?B?Ti8wQUFaTFkyMWk4UEdwSHVieU1oYlZMRW1mNzhIVGlaV2xjUUZDbVUwTXpD?=
 =?utf-8?B?OHVlc2ZpY3czL01xdEFNNHhFUHJscmNIMTFOM3FLR1FmeGRVaEhVVnpKWDUv?=
 =?utf-8?B?MGc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 90652aa0-559c-46d3-e1b0-08dcfccdc8dd
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2024 12:39:55.0736
 (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: 46rsIMXDlIsVf5tEKF03AKuzW15kB/u5nSdTyIH2JFYVsDaEcFWJ8/7uOCpJ2ZKCvdlsc8eyxZy28/umpfrrlKhhZ5A4X9UgN8ttn8f1zh0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6493

Hi All,

On 04.11.24 12:49, Michal Orzel wrote:
> 
> 
> On 27/09/2024 00:24, Shawn Anastasio wrote:
>>
>>
>> Commit 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>> bootinfo.reserved_mem") changes the way reserve map regions are tracked,
>> and as a result broke bootfdt's ability to handle device trees in which
>> the reserve map and the `reserved-memory` node contain the same entries
>> as each other, as is the case on PPC when booted by skiboot.
>>
>> Fix this behavior by moving the reserve map check to after the DT has
>> been parsed and by explicitly allowing overlap with entries created by
>> `reserved-memory` nodes.
>>
>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>> ---
>>   xen/common/device-tree/bootfdt.c  | 28 +++++++++++++++++++++++-----
>>   xen/common/device-tree/bootinfo.c | 11 +++++++++--
>>   xen/include/xen/bootfdt.h         |  3 ++-
>>   3 files changed, 34 insertions(+), 8 deletions(-)
>>
>> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
>> index 911a630e7d..2a51ee44a3 100644
>> --- a/xen/common/device-tree/bootfdt.c
>> +++ b/xen/common/device-tree/bootfdt.c
>> @@ -177,7 +177,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
>>       {
>>           device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
>>           if ( mem == bootinfo_get_reserved_mem() &&
>> -             check_reserved_regions_overlap(start, size) )
>> +             check_reserved_regions_overlap(start, size, NULL) )
>>               return -EINVAL;
>>           /* Some DT may describe empty bank, ignore them */
>>           if ( !size )
>> @@ -590,14 +590,36 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>       if ( nr_rsvd < 0 )
>>           panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
>>
>> +    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
> This should be moved before fdt_num_mem_rsv so that the program flow makes sense. In your case nr_rsvd is
> not used immediately after.
> 
>> +    if ( ret )
>> +        panic("Early FDT parsing failed (%d)\n", ret);
>> +
>>       for ( i = 0; i < nr_rsvd; i++ )
>>       {
>> +        const struct membanks *overlap = NULL;
>>           struct membank *bank;
>>           paddr_t s, sz;
>>
>>           if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>>               continue;
>>
>> +        if ( check_reserved_regions_overlap(s, sz, &overlap) )
>> +        {
>> +            if ( overlap == bootinfo_get_reserved_mem() )
>> +            {
>> +                /*
>> +                 * Some valid device trees, such as those generated by OpenPOWER
>> +                 * skiboot firmware, expose all reserved memory regions in the
>> +                 * FDT memory reservation block (here) AND in the
>> +                 * reserved-memory node which has already been parsed. Thus, any
>> +                 * overlaps in the mem_reserved banks should be ignored.
>> +                 */
>> +                 continue;
> I think this is incorrect. Imagine this scenario:
> /memreserve/ 0x40000000 0x40000000;
> and /reserved-memory/foo with:
> reg = <0x0 0x7FFFF000 0x0 0x1000>;
> 
> You would ignore the entire region described with /memreserve/ even though it overlaps just the last page.
> 
> The problem you're describing is about regions that match 1:1 in /memreserve/ and /reserved-memory/.
> Therefore I think you should check that the overlapped regions match exactly.
> 

I've also discovered an issue with Commit 53dc37829c31 ("xen/arm: Add DT reserve map
regions to bootinfo.reserved_mem") - the bootloader adds Initrd in
FDT reserved map which then conflicts with Initrd module (ARM64).

This patch, as is, doesn't fix an issue for me:

(XEN) Checking for initrd in /chosen
(XEN) Initrd 0000000084000040-0000000086152ac6
(XEN) Region: [0x00000084000040, 0x00000086152ac6) overlapping with mod[2]: [0x00000084000040, 0x00000086152ac6)
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) FDT reserve map overlapped with membanks/modules
(XEN) ****************************************

So I did fast try of Michal Orzel suggestion and it seems working for me.
And if it's working for PPC - may be that's it (feel free to incorporate). Diff below.

(XEN) Checking for initrd in /chosen
(XEN) Initrd 0000000084000040-0000000086152ac6
(XEN) RAM: 0000000048000000 - 00000000bfffffff
(XEN) RAM: 0000000480000000 - 00000004ffffffff
(XEN) RAM: 0000000600000000 - 00000006ffffffff
(XEN)
(XEN) MODULE[0]: 0000000048080000 - 00000000481ec000 Xen
(XEN) MODULE[1]: 0000000048000000 - 000000004801e080 Device Tree
(XEN) MODULE[2]: 0000000084000040 - 0000000086152ac6 Ramdisk
(XEN) MODULE[3]: 0000000048300000 - 000000004a300000 Kernel
(XEN) MODULE[4]: 0000000048070000 - 0000000048080000 XSM
(XEN)  RESVD[0]: 0000000060000000 - 000000007fffffff
(XEN)  RESVD[1]: 00000000b0000000 - 00000000bfffffff
(XEN)  RESVD[2]: 00000000a0000000 - 00000000afffffff
...
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 0000000048300000
(XEN) Loading ramdisk from boot module @ 0000000084000040
(XEN) Allocating 1:1 mappings totalling 256MB for dom0:
(XEN) BANK[0] 0x00000050000000-0x00000060000000 (256MB)
...


---
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
index f2e6a1145b7c..10e997eeca8d 100644
--- a/xen/common/device-tree/bootinfo.c
+++ b/xen/common/device-tree/bootinfo.c
@@ -124,6 +124,30 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
      return false;
  }
  
+static bool __init meminfo_is_exist(const struct membanks *mem,
+                                         paddr_t region_start,
+                                         paddr_t region_size)
+{
+    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, bank_num = mem->nr_banks;
+
+    for ( i = 0; i < bank_num; i++ )
+    {
+        bank_start = mem->bank[i].start;
+        bank_end = bank_start + mem->bank[i].size;
+
+        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
+             region_start >= bank_end )
+            continue;
+
+        if ( region_start == bank_start && region_end  == bank_end)
+            return true;
+    }
+
+    return false;
+}
+
  /*
   * TODO: '*_end' could be 0 if the module/region is at the end of the physical
   * address space. This is for now not handled as it requires more rework.
@@ -154,6 +178,29 @@ static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
      return false;
  }
  
+static bool __init bootmodules_is_exist(struct bootmodules *bootmodules,
+                                             paddr_t region_start,
+                                             paddr_t region_size)
+{
+    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
+    paddr_t region_end = region_start + region_size;
+    unsigned int i, mod_num = bootmodules->nr_mods;
+
+    for ( i = 0; i < mod_num; i++ )
+    {
+        mod_start = bootmodules->module[i].start;
+        mod_end = mod_start + bootmodules->module[i].size;
+
+        if ( region_end <= mod_start || region_start >= mod_end )
+            continue;
+
+        if (region_start == mod_start && region_end == mod_end)
+            return true;
+    }
+
+    return false;
+}
+
  void __init fw_unreserved_regions(paddr_t s, paddr_t e,
                                    void (*cb)(paddr_t ps, paddr_t pe),
                                    unsigned int first)
@@ -201,6 +248,37 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
      return false;
  }
  
+bool __init check_reserved_regions_is_exist(paddr_t region_start,
+                                            paddr_t region_size)
+{
+    const struct membanks *mem_banks[] = {
+        bootinfo_get_reserved_mem(),
+#ifdef CONFIG_ACPI
+        bootinfo_get_acpi(),
+#endif
+#ifdef CONFIG_STATIC_SHM
+        bootinfo_get_shmem(),
+#endif
+    };
+    unsigned int i;
+
+    /*
+     * Check if input region is overlapping with reserved memory banks or
+     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
+     * shared memory banks (when static shared memory feature is enabled)
+     */
+    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
+        if ( meminfo_is_exist(mem_banks[i], region_start, region_size) )
+            return true;
+
+    /* Check if input region is overlapping with bootmodules */
+    if ( bootmodules_is_exist(&bootinfo.modules,
+                                   region_start, region_size) )
+        return true;
+
+    return false;
+}
+
  struct bootmodule __init *add_boot_module(bootmodule_kind kind,
                                            paddr_t start, paddr_t size,
                                            bool domU)
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 16fa05f38f38..b8db1335be6c 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -159,6 +159,8 @@ extern struct bootinfo bootinfo;
  
  bool check_reserved_regions_overlap(paddr_t region_start,
                                      paddr_t region_size);
+bool check_reserved_regions_is_exist(paddr_t region_start,
+                                     paddr_t region_size);
  
  struct bootmodule *add_boot_module(bootmodule_kind kind,
                                     paddr_t start, paddr_t size, bool domU);






From xen-devel-bounces@lists.xenproject.org Mon Nov 04 12:42:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 12:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830011.1244929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7wPT-0002NW-0I; Mon, 04 Nov 2024 12:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830011.1244929; Mon, 04 Nov 2024 12:42: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 1t7wPS-0002NP-Th; Mon, 04 Nov 2024 12:42:18 +0000
Received: by outflank-mailman (input) for mailman id 830011;
 Mon, 04 Nov 2024 12:42: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=8uZz=R7=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1t7wPR-0002JZ-ID
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 12:42:17 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20619.outbound.protection.outlook.com
 [2a01:111:f403:2612::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 37aeaa63-9aaa-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 13:42:14 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB6689.eurprd03.prod.outlook.com (2603:10a6:20b:2db::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 12:42:11 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8114.028; Mon, 4 Nov 2024
 12: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: 37aeaa63-9aaa-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjE5IiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjM3YWVhYTYzLTlhYWEtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzI0MTM0LjM2MzcsInNlbmRlciI6ImdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kejKqSRCUYB6iMaS/KXf2DLjEsPxQOxuwjWmtT5QW1MRbpVmBjhy2Zp8DWi1lNUhjinZiDWovw58Py7fnRtCTtup7/xZrXQtOb2vGLBn7TOfxACMXm/jDljT3Il3CMmsNNm6dzz2wzVkiwn1nzH4BRGC5qCVebXkfmvJbf4drktqynNIg1f1Eog2P7dnKrESO3yjbQP7H7FeGYEeNHTPGOq45Yp12Nx0WD4gu0g/suRtnwzh5LM80FIMj8qUAe9djncJdHdkgz40jK5hi23hs1iSCfQEA3voPDBSqgWxG1CbnpVlMuSftzG5OpdKTziq7q7Rsc1o0t7HeDMSks62Hg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qP13Dwz0SCtMJRUD/6GoyjWSaGYAEFGDz52m02gHDfI=;
 b=YgiFDoHgSeot7vE6cmAIeCD8ru6eIxd4m4t0TY77Ao40pxRFxaEyGkS0nwRdlcQAHK4Sqhssy6PMp5R7XZZrPsISIepPhy8QdYOd/iVowSWm/eDpNuGKeAyanNtaGCJyVBKQ0iCJd63GJz3F/0kt1/Uuv1tCziDlMeJkM0/W9JwQRBAyxAxCKG+fQMEN0i/yMgOZj15grOrmBSTNfeOG+V2TM8nTXg4Ei4wxvg3PFdGB0epADIoRrgDKVLuXVAV04AekOWS6U0n0znucPkIgV39ze/AUdPGD6mS5gkjH+jwhzWXDZ5DRLN0tnQmxa0Tm2aUNM5mXkfvDS+xR9Ar8Lw==
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=qP13Dwz0SCtMJRUD/6GoyjWSaGYAEFGDz52m02gHDfI=;
 b=vYnDn8wdg5UMor13cLmWjrL8UOG6JBWK8FQygZ+gnhG4PTIViXwwXh7W0YYY7MwlQKwE+93HDIEWyQGf6Xx6TR8EpH0jPEcwnjRz8erByJ6S/0rCX5akSOctEFoOl/2W7n6qrQykuHHZWDIC4F/VT/R9ux62JLAMHjCZAI+lyP40Jw+3nBAUvbHZOv91JhzbzMbbWXqNrznnr0fTHl+zGhDffCDjXFZdyQ+Sjo1eEYVu5zd24KF556o7BUaECmM5kJK3jSM1RBcrJat7VV+s6umrWrQ10CfYoH8GDbqAoeAGGWVWpIymRUox0qdDjQO9IqbuXZwJwUdxLFi5xcvNZQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <e951c088-7b6a-45c9-8205-854e84d2c0e5@epam.com>
Date: Mon, 4 Nov 2024 14:42:08 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/device-tree: Let DT reserve map entries
 overlap reserved-memory
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
Cc: tpearson@raptorengineering.com, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <cover.1727388925.git.sanastasio@raptorengineering.com>
 <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com>
 <1ae100b3-17f0-4ac5-beb3-fdd2f12adee7@amd.com>
 <a127edbb-8006-466d-a529-1b7a80af21b1@epam.com>
Content-Language: en-US
In-Reply-To: <a127edbb-8006-466d-a529-1b7a80af21b1@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FRYP281CA0017.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::27)
 To AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AM9PR03MB6689:EE_
X-MS-Office365-Filtering-Correlation-Id: a9bec48f-19d1-48ce-a3e7-08dcfcce19d5
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?UFRTOVoxMklSYnAvbFdiTjNDeDZSSkFQcEROU1pCWmpPM3Vub2JIQ0VOUFlq?=
 =?utf-8?B?VTFibEV0SDVOdWZFSVlXN2IxQ2RaNW9hVlVCYmVNN2ZGL2FqU3kySlFXQ3Fy?=
 =?utf-8?B?RFRMei81TUVxUTFvcmc2OFBQU0x6TFlabVUrRU5VUW1zOTRTejlDbkhpN3Qv?=
 =?utf-8?B?a2ZkM01YTU1pRTBUdS9Da1habDlXMGN6VlZmSzZtWFcxVDlGR0F2QlowRkZp?=
 =?utf-8?B?c0FEeDZSWXJOb01pV1hwcmlwUHZiY05ZNXlSdE9OdWE3SDY4OUFPZC90aHN5?=
 =?utf-8?B?RUg3aER3cndnMlQwcVUrYmdQVExKN1JkNXpBa2x0czZtNkFsNnBPdTA4Q1lV?=
 =?utf-8?B?cGtsaisrUWJaNFAvMTQ5TkU5QmlYbVo5QVlrek9ud282WDgxUWs4WXRqWklT?=
 =?utf-8?B?Zk5yY2xmbHUvMUFiNEFiNTR4NXpwNlorMjh5UXJ4eU9jazI5NHJhNXRZMDcw?=
 =?utf-8?B?SnpXaUNjcW9WTC9Fc1BPaDNzK0gyNE5TUEVzdWpKWGN4TFBLcUQ4NEFZM2tF?=
 =?utf-8?B?N1lCaVpkSTNzTVF5YnZLMEh4ckR1SkhnMDk0UmM3Skw2MmdxSVpXTkZxa3Vu?=
 =?utf-8?B?b01aTEIyRFd2ZlpNeGZuZCtMd1JjTEUvYUVyVzVDTkJlY2JJbHZ6bEZ2UTNk?=
 =?utf-8?B?R1dTS01NZWdRQVRPZE0rWG13LzNKOFdIa2tVTXZJQjk3MjQ3WWNxak1LRlVL?=
 =?utf-8?B?cVdYQS81NTA3VitCRzhPWHJSK1I0U1BiS3AzMHJZblhjZ1RpeWpnQ0lMbVh0?=
 =?utf-8?B?bWRMemR2V1VjditnUm5qcGlpSTFqVnF2aERtVENzQmxQV3FpQUJQZWpvUFpC?=
 =?utf-8?B?MzN0Q0Rzd1hOT3picEZuRFh6WVozU09lY3BkSU1QTUE1VVlwRzlFTTRVdGt2?=
 =?utf-8?B?RUVwQWdoN2Z5V2IzclEwRlJvekhqSFBHY0djb0RpT2JvQldES1VKeGdXZjZB?=
 =?utf-8?B?ZXlJSEpjMmVVQW5tV0ZHcys2RVhsQVV5Ymd2WGJFb0dIYjNVRUtidTFHT1N0?=
 =?utf-8?B?VWxnWTNIVVJaWTNGY3ZYSmxvVmR4VVJweTdONGIwMk1kTndVMGU2azBGNWxm?=
 =?utf-8?B?VW9mc1BDYldDRlc5YTNvY2lsVlIxbis1djl2TE0ySlhremlhRFdFSFBoNzdn?=
 =?utf-8?B?ZXZ3Uzc0bTg4dkxGQlJHWFNFMkM2dW5acm1vM1AwWGtNd29HNElsdUFaOG14?=
 =?utf-8?B?dEI3dG1mTmxhcXBXNDNNNG9GOWhaNmNCRFo1VmpsYXVieC80ZDhRUkVvVU1n?=
 =?utf-8?B?WnJSRmxwd2FrVEo1ZDNDODk1N1JoSGYwUk9ZWnJ3blVqM3RXYlBrQjJKZitM?=
 =?utf-8?B?U1hzMG1UdXB0ckpGTmJ0TUNnRWpkZDJEYWFPQzZuNGttLzVPcVM5Y0lWTjlk?=
 =?utf-8?B?ckd5d21keUZybDlKbFF5ZVVXMWkzQlRFVmtoc2hTNEQzMS9PdTFjaU9rY2NU?=
 =?utf-8?B?c0VGeVp5QjdvWk95d010bGNqdGxoTzRTZWJ2ZXVBME1VS095emlLQVdGMzJs?=
 =?utf-8?B?c09IZjlaZU94RThNeHVvQmV5VTliVk5qdG1jZGZEbHRKUXpVUThWalRWcTlE?=
 =?utf-8?B?bmxyRUJaMkVWYUI1UlVrZFU1QjlEMEE3OFRHSFU5RkJqTU9sTkxSaGppZ2Yy?=
 =?utf-8?B?RjJScWNtblViUnFDR0E0UkhneUkvNlZJQkp0QkVueXdpWm1xRWNjbWVrRW9Z?=
 =?utf-8?B?S21zL1FtTmJOcnR3RmxnYXpIQTFhWjY1SHE0UFo0QUcxTlNwQUF4SEdxU2xv?=
 =?utf-8?Q?nOKq2Gz1ivPVIMvhNs9zXDKDS5eH4zxZm2/REaF?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?ejY0RldjNUFXMGVZZkVjZFRNUTJod1NQc1g2WVJWbGM1S25sY3V2bHpOMFRX?=
 =?utf-8?B?NWhDbzh3a3RFTEUxRnhOQTV1Mk1CY0EwOUNRd08zK2N1Y2ZqVk1wQWc1MSsw?=
 =?utf-8?B?R0poOTlPRlh2dzFKMkRGSmdNVFdiUE5IdmVtcVRVSWJyM2lFbmdmOEx2UnR5?=
 =?utf-8?B?S2xjM2xQdVZQQUdXL3FtSVNVZmZjUHliT3FaVEIrSmJUaFZPSS9xWkFPaFFZ?=
 =?utf-8?B?ejkxMlpveTZ4YmZlTmdFT2J3ZWtjRys3Q2NPejl3ODgrdzBjbkRwYTVlWVFE?=
 =?utf-8?B?UXQxMnllT0tadHIwc3lMVGZxWlU5d2pndDluaWNQSFJWV0JQZGd0cEdObU1D?=
 =?utf-8?B?MHh5bTN6NlJFeTB1YzIwOTA3T1g0cTZOWHhaZnBBT1BYaW15YXJJMS9MV05R?=
 =?utf-8?B?SlVFNVFVbmZxanBreHBLSTlYWkM3NkwzMS9PQmJaREdONlh6TFFUdnllekVz?=
 =?utf-8?B?YXVheDNKdmpHNTh4TjVGOFozSm8yK2lDZ1ppNlVWdzlwRG4vZmsrT0ZlSTVT?=
 =?utf-8?B?WEtYbGlDZWU3Y0ZRZXRydUdCVW55WmVXQS9nSEtjaTRVWlo1Z1NRMEkyNXFq?=
 =?utf-8?B?aUhHaXdOR0wwZ1N1ZTNjV01mcUMxU2kvcy9DUSs2ZFh1L2dVYnFGeXVYZEtm?=
 =?utf-8?B?RkNrTE9za1FSbzQ4TGUxVWR6WUhFS09vTmNhZit4cmx0ejZYNm9hT3JsWloy?=
 =?utf-8?B?UkhaZml1Nis0WjgwQUdQc0VzVW1BU3R4eTBvcm1ZM0VtMm00QUNmRUkvNU54?=
 =?utf-8?B?Vmp1a0gyeVNTdzNhdVFEL3U3YnBZV2FRVlRHcGQ2eVAycUxieFFzcHZpTzdB?=
 =?utf-8?B?c1ducE5KaXVzUGlQYko5NWlvTGZNK29WWCtNUmZwTFl6Y2tBbXdYUk14T0xJ?=
 =?utf-8?B?QkNGNEtYQ3dRa1NhbHhsODdkVW5WRSt4ZFhiOG80bVkra3hFbFZMLzlKZFN6?=
 =?utf-8?B?SmVvWXNDMXh3bVNHN1lMaGhNbmtvYjRBb0ZKTTdqZTZEdUxBT2pIblhtNERU?=
 =?utf-8?B?VzhXWXk5UWZ4aDl2alFwZ3BqMXVsbUZHTEp0VUVFNE1kajNyZ3E4dGNidkhH?=
 =?utf-8?B?enkyMktaUXZ4djl3TzA0MWw5dXIwTThJbjlrQUgyby9GYjdlRGIzTHc1YVhN?=
 =?utf-8?B?MlcwOGNOWmpnd3pSRXRwZ3IwNmN3UnV2RHM3NlFYMVo5WUVncVArNXBaRDFN?=
 =?utf-8?B?ekw1MUk4NVFSampCNUsvb1lxUlV6bnl2aXVxRm9GRWxGQkdVd3FjVEJSTDl3?=
 =?utf-8?B?bjF3czRwMFJHelBKbVFwdWhNczMyczhHclAvdzJpUndIWG1HY2NHTXJMZjh4?=
 =?utf-8?B?VHhUNG9MWElUeFUzNmZnVFh1c01pRVZDTTYrbHZjYTArd2J0bGlJY040NUlZ?=
 =?utf-8?B?UjFrQjVQcDFpaStzYi9LSlRKb2RUMkJ0Q1FiWnRwMXdFVnpqckNSQjJycVFn?=
 =?utf-8?B?azQ2R01UMnEwQ1JlamI4RlZaeUNKNzJFR1AxTzlZOUtaY2hscFVwZkh1L1lZ?=
 =?utf-8?B?TUMzMHdPcmduSkNHRkpBeGgrVFRscFpEQnF0Und0M1Q3dXRFeEhRQmIzRDdV?=
 =?utf-8?B?bEMzMXpxM0ZGR3A2blBMN08zb1h2aFE4c2NlTDZMbUwzenNpN1IzbnRieUR6?=
 =?utf-8?B?RjZ4RFNZaSswdEptWndETCt1N3h4a0pTUFptZkIzajFrRHRnMjdxZlZYc3A0?=
 =?utf-8?B?OGpVWG1Ta0VrN3E0MVpsS1NJSVdwV0pCM2Y4V29jeFRPc0RBcXRZdzZUbmFi?=
 =?utf-8?B?elpKSmZBVEVoQUNtMllPTWM5Q1liMnhTcndnSkg1bHVHVnVvTUdobHpVUGRV?=
 =?utf-8?B?a3pVV1RsRDBFUVFRN0VCWVFVMHNUTlU2dm9aSVkwMVZHRlNjMFRQbVBmd1Ja?=
 =?utf-8?B?ME5IQjVLRVNlUkpZZlkyMGYzdWpoZ21NbFpBSVpJZ1RYa3E3MFJZUU1iT0hi?=
 =?utf-8?B?VlpJT2NVVW9lVUl3ckxaUGVUbWpLY280L1BrLzFNbjkrWC8rKzR4UTRhR2Ro?=
 =?utf-8?B?RlppQjN3MHJjRml2dHlkTkZMUUxzNjNvbUU1MUhnQlhjWVIyMTdaNFdnOUxV?=
 =?utf-8?B?eWYxbVN6dXZwYzVoS2NSSmRPUG5FNy9SWDZyVy9zSHdNY0NmQlMyaHBPSUhk?=
 =?utf-8?B?SnYwYmFncnd0QXNTRUdiUlUwWG9EV2NCWWQyVXB3bDJ0TmZRN3JxbDQzQTYy?=
 =?utf-8?B?Z2c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9bec48f-19d1-48ce-a3e7-08dcfcce19d5
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2024 12:42:10.7786
 (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: 3DaIkQwSN6/ADhktI3gh/PLdDlVcBn5H2ThbybycSnX37s4KFBrYEy+J1YU8VJlk5eEujioLC1c7POlwL9Mwxvp5fyN3u0T+wgRa6J+Sd80=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6689



On 04.11.24 14:39, Grygorii Strashko wrote:
> Hi All,
> 
> On 04.11.24 12:49, Michal Orzel wrote:
>>
>>
>> On 27/09/2024 00:24, Shawn Anastasio wrote:
>>>
>>>
>>> Commit 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>>> bootinfo.reserved_mem") changes the way reserve map regions are tracked,
>>> and as a result broke bootfdt's ability to handle device trees in which
>>> the reserve map and the `reserved-memory` node contain the same entries
>>> as each other, as is the case on PPC when booted by skiboot.
>>>
>>> Fix this behavior by moving the reserve map check to after the DT has
>>> been parsed and by explicitly allowing overlap with entries created by
>>> `reserved-memory` nodes.
>>>
>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>> ---
>>> Â  xen/common/device-tree/bootfdt.cÂ  | 28 +++++++++++++++++++++++-----
>>> Â  xen/common/device-tree/bootinfo.c | 11 +++++++++--
>>> Â  xen/include/xen/bootfdt.hÂ Â Â Â Â Â Â Â  |Â  3 ++-
>>> Â  3 files changed, 34 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
>>> index 911a630e7d..2a51ee44a3 100644
>>> --- a/xen/common/device-tree/bootfdt.c
>>> +++ b/xen/common/device-tree/bootfdt.c
>>> @@ -177,7 +177,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
>>> Â Â Â Â Â  {
>>> Â Â Â Â Â Â Â Â Â  device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
>>> Â Â Â Â Â Â Â Â Â  if ( mem == bootinfo_get_reserved_mem() &&
>>> -Â Â Â Â Â Â Â Â Â Â Â Â  check_reserved_regions_overlap(start, size) )
>>> +Â Â Â Â Â Â Â Â Â Â Â Â  check_reserved_regions_overlap(start, size, NULL) )
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  return -EINVAL;
>>> Â Â Â Â Â Â Â Â Â  /* Some DT may describe empty bank, ignore them */
>>> Â Â Â Â Â Â Â Â Â  if ( !size )
>>> @@ -590,14 +590,36 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>> Â Â Â Â Â  if ( nr_rsvd < 0 )
>>> Â Â Â Â Â Â Â Â Â  panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
>>>
>>> +Â Â Â  ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
>> This should be moved before fdt_num_mem_rsv so that the program flow makes sense. In your case nr_rsvd is
>> not used immediately after.
>>
>>> +Â Â Â  if ( ret )
>>> +Â Â Â Â Â Â Â  panic("Early FDT parsing failed (%d)\n", ret);
>>> +
>>> Â Â Â Â Â  for ( i = 0; i < nr_rsvd; i++ )
>>> Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â  const struct membanks *overlap = NULL;
>>> Â Â Â Â Â Â Â Â Â  struct membank *bank;
>>> Â Â Â Â Â Â Â Â Â  paddr_t s, sz;
>>>
>>> Â Â Â Â Â Â Â Â Â  if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>>>
>>> +Â Â Â Â Â Â Â  if ( check_reserved_regions_overlap(s, sz, &overlap) )
>>> +Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â Â Â Â Â  if ( overlap == bootinfo_get_reserved_mem() )
>>> +Â Â Â Â Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /*
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  * Some valid device trees, such as those generated by OpenPOWER
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  * skiboot firmware, expose all reserved memory regions in the
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  * FDT memory reservation block (here) AND in the
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  * reserved-memory node which has already been parsed. Thus, any
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  * overlaps in the mem_reserved banks should be ignored.
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  */
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>> I think this is incorrect. Imagine this scenario:
>> /memreserve/ 0x40000000 0x40000000;
>> and /reserved-memory/foo with:
>> reg = <0x0 0x7FFFF000 0x0 0x1000>;
>>
>> You would ignore the entire region described with /memreserve/ even though it overlaps just the last page.
>>
>> The problem you're describing is about regions that match 1:1 in /memreserve/ and /reserved-memory/.
>> Therefore I think you should check that the overlapped regions match exactly.
>>
> 
> I've also discovered an issue with Commit 53dc37829c31 ("xen/arm: Add DT reserve map
> regions to bootinfo.reserved_mem") - the bootloader adds Initrd in
> FDT reserved map which then conflicts with Initrd module (ARM64).
> 
> This patch, as is, doesn't fix an issue for me:
> 
> (XEN) Checking for initrd in /chosen
> (XEN) Initrd 0000000084000040-0000000086152ac6
> (XEN) Region: [0x00000084000040, 0x00000086152ac6) overlapping with mod[2]: [0x00000084000040, 0x00000086152ac6)
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) FDT reserve map overlapped with membanks/modules
> (XEN) ****************************************
> 
> So I did fast try of Michal Orzel suggestion and it seems working for me.
> And if it's working for PPC - may be that's it (feel free to incorporate). Diff below.
> 
> (XEN) Checking for initrd in /chosen
> (XEN) Initrd 0000000084000040-0000000086152ac6
> (XEN) RAM: 0000000048000000 - 00000000bfffffff
> (XEN) RAM: 0000000480000000 - 00000004ffffffff
> (XEN) RAM: 0000000600000000 - 00000006ffffffff
> (XEN)
> (XEN) MODULE[0]: 0000000048080000 - 00000000481ec000 Xen
> (XEN) MODULE[1]: 0000000048000000 - 000000004801e080 Device Tree
> (XEN) MODULE[2]: 0000000084000040 - 0000000086152ac6 Ramdisk
> (XEN) MODULE[3]: 0000000048300000 - 000000004a300000 Kernel
> (XEN) MODULE[4]: 0000000048070000 - 0000000048080000 XSM
> (XEN)Â  RESVD[0]: 0000000060000000 - 000000007fffffff
> (XEN)Â  RESVD[1]: 00000000b0000000 - 00000000bfffffff
> (XEN)Â  RESVD[2]: 00000000a0000000 - 00000000afffffff
> ...
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN) Loading d0 kernel from boot module @ 0000000048300000
> (XEN) Loading ramdisk from boot module @ 0000000084000040
> (XEN) Allocating 1:1 mappings totalling 256MB for dom0:
> (XEN) BANK[0] 0x00000050000000-0x00000060000000 (256MB)
> ...
> 
> 
> ---
> diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
> index f2e6a1145b7c..10e997eeca8d 100644
> --- a/xen/common/device-tree/bootinfo.c
> +++ b/xen/common/device-tree/bootinfo.c
> @@ -124,6 +124,30 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
>  Â Â Â Â  return false;
>  Â }
> 
> +static bool __init meminfo_is_exist(const struct membanks *mem,
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t region_start,
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t region_size)
> +{
> +Â Â Â  paddr_t bank_start = INVALID_PADDR, bank_end = 0;
> +Â Â Â  paddr_t region_end = region_start + region_size;
> +Â Â Â  unsigned int i, bank_num = mem->nr_banks;
> +
> +Â Â Â  for ( i = 0; i < bank_num; i++ )
> +Â Â Â  {
> +Â Â Â Â Â Â Â  bank_start = mem->bank[i].start;
> +Â Â Â Â Â Â Â  bank_end = bank_start + mem->bank[i].size;
> +
> +Â Â Â Â Â Â Â  if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
> +Â Â Â Â Â Â Â Â Â Â Â Â  region_start >= bank_end )
> +Â Â Â Â Â Â Â Â Â Â Â  continue;
> +
> +Â Â Â Â Â Â Â  if ( region_start == bank_start && region_endÂ  == bank_end)
> +Â Â Â Â Â Â Â Â Â Â Â  return true;
> +Â Â Â  }
> +
> +Â Â Â  return false;
> +}
> +
>  Â /*
>  Â  * TODO: '*_end' could be 0 if the module/region is at the end of the physical
>  Â  * address space. This is for now not handled as it requires more rework.
> @@ -154,6 +178,29 @@ static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
>  Â Â Â Â  return false;
>  Â }
> 
> +static bool __init bootmodules_is_exist(struct bootmodules *bootmodules,
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t region_start,
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t region_size)
> +{
> +Â Â Â  paddr_t mod_start = INVALID_PADDR, mod_end = 0;
> +Â Â Â  paddr_t region_end = region_start + region_size;
> +Â Â Â  unsigned int i, mod_num = bootmodules->nr_mods;
> +
> +Â Â Â  for ( i = 0; i < mod_num; i++ )
> +Â Â Â  {
> +Â Â Â Â Â Â Â  mod_start = bootmodules->module[i].start;
> +Â Â Â Â Â Â Â  mod_end = mod_start + bootmodules->module[i].size;
> +
> +Â Â Â Â Â Â Â  if ( region_end <= mod_start || region_start >= mod_end )
> +Â Â Â Â Â Â Â Â Â Â Â  continue;
> +
> +Â Â Â Â Â Â Â  if (region_start == mod_start && region_end == mod_end)
> +Â Â Â Â Â Â Â Â Â Â Â  return true;
> +Â Â Â  }
> +
> +Â Â Â  return false;
> +}
> +
>  Â void __init fw_unreserved_regions(paddr_t s, paddr_t e,
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  void (*cb)(paddr_t ps, paddr_t pe),
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int first)
> @@ -201,6 +248,37 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
>  Â Â Â Â  return false;
>  Â }
> 
> +bool __init check_reserved_regions_is_exist(paddr_t region_start,
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t region_size)
> +{
> +Â Â Â  const struct membanks *mem_banks[] = {
> +Â Â Â Â Â Â Â  bootinfo_get_reserved_mem(),
> +#ifdef CONFIG_ACPI
> +Â Â Â Â Â Â Â  bootinfo_get_acpi(),
> +#endif
> +#ifdef CONFIG_STATIC_SHM
> +Â Â Â Â Â Â Â  bootinfo_get_shmem(),
> +#endif
> +Â Â Â  };
> +Â Â Â  unsigned int i;
> +
> +Â Â Â  /*
> +Â Â Â Â  * Check if input region is overlapping with reserved memory banks or
> +Â Â Â Â  * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
> +Â Â Â Â  * shared memory banks (when static shared memory feature is enabled)
> +Â Â Â Â  */
> +Â Â Â  for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
> +Â Â Â Â Â Â Â  if ( meminfo_is_exist(mem_banks[i], region_start, region_size) )
> +Â Â Â Â Â Â Â Â Â Â Â  return true;
> +
> +Â Â Â  /* Check if input region is overlapping with bootmodules */
> +Â Â Â  if ( bootmodules_is_exist(&bootinfo.modules,
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  region_start, region_size) )
> +Â Â Â Â Â Â Â  return true;
> +
> +Â Â Â  return false;
> +}
> +
>  Â struct bootmodule __init *add_boot_module(bootmodule_kind kind,
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t start, paddr_t size,
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bool domU)
> diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
> index 16fa05f38f38..b8db1335be6c 100644
> --- a/xen/include/xen/bootfdt.h
> +++ b/xen/include/xen/bootfdt.h
> @@ -159,6 +159,8 @@ extern struct bootinfo bootinfo;
> 
>  Â bool check_reserved_regions_overlap(paddr_t region_start,
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t region_size);
> +bool check_reserved_regions_is_exist(paddr_t region_start,
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t region_size);
> 
>  Â struct bootmodule *add_boot_module(bootmodule_kind kind,
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  paddr_t start, paddr_t size, bool domU);
> 
> 

Sorry missed part of  the diff:

diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 927f59c64b0d..18816b6f08f1 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -586,6 +586,10 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
  
      add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
  
+    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
+    if ( ret )
+        panic("Early FDT parsing failed (%d)\n", ret);
+
      nr_rsvd = fdt_num_mem_rsv(fdt);
      if ( nr_rsvd < 0 )
          panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
@@ -598,6 +602,9 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
          if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
              continue;
  
+        if (check_reserved_regions_is_exist(s, sz))
+            continue;
+
          if ( reserved_mem->nr_banks < reserved_mem->max_banks )
          {
              bank = &reserved_mem->bank[reserved_mem->nr_banks];
@@ -610,10 +617,6 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
              panic("Cannot allocate reserved memory bank\n");
      }
  
-    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
-    if ( ret )
-        panic("Early FDT parsing failed (%d)\n", ret);
-
      /*
       * On Arm64 setup_directmap_mappings() expects to be called with the lowest
       * bank in memory first. There is no requirement that the DT will provide




From xen-devel-bounces@lists.xenproject.org Mon Nov 04 14:28:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 14:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830030.1244969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7y4Y-0007GP-9l; Mon, 04 Nov 2024 14:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830030.1244969; Mon, 04 Nov 2024 14:28: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 1t7y4Y-0007GD-6a; Mon, 04 Nov 2024 14:28:50 +0000
Received: by outflank-mailman (input) for mailman id 830030;
 Mon, 04 Nov 2024 14:28: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=lbgx=R7=bounce.vates.tech=bounce-md_30504962.6728da17.v1-37c1f77bdbc44b0894b546c2c0f0b07b@srs-se1.protection.inumbo.net>)
 id 1t7y4W-0006XR-T4
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 14:28:49 +0000
Received: from mail128-130.atl41.mandrillapp.com
 (mail128-130.atl41.mandrillapp.com [198.2.128.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18b998e7-9ab9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 15:28:45 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xhv3C74SczS62L0r
 for <xen-devel@lists.xenproject.org>; Mon,  4 Nov 2024 14:28:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 37c1f77bdbc44b0894b546c2c0f0b07b; Mon, 04 Nov 2024 14:28: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: 18b998e7-9ab9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEyOC4xMzAiLCJoZWxvIjoibWFpbDEyOC0xMzAuYXRsNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE4Yjk5OGU3LTlhYjktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzMwNTI1LjY1Mzc3NCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MjhkYTE3LnYxLTM3YzFmNzdiZGJjNDRiMDg5NGI1NDZjMmMwZjBiMDdiQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730730520; x=1730991020;
	bh=ox6PUJD+kYqAhQS7XnCT0BVUBQTkDDu1IHkIsGRxAhI=;
	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=vDGymE3IR0u6eP7us0AZh7CSqMX9jv3WePdqk9yDLVO7TgL1+B4osd7Ff8oBmvVbK
	 p4KKN3lrcPEWOX5Z+KFFfypNOBk+lGf9VRWph0FC+jMYUaFXqKG/eBPp4qF64nxxBq
	 vEn96P6CtlbsZssJvLTLa8JoV0cbTaNNSImrqPnC5S4YXvU7KyzD4ouAgkw2Tsw7sj
	 FsYGNAf2HVM+/42cmPN0Mg/bmfos0NBKC6sv91YylHgLkOMjUkE8x4xx1BIsQSLWxL
	 Kc1y4XUCxB8l6z7Y75PYZAVTFUaj8SyQMPHyLdnTk6Nu4AKrmxkEgzcXRvxv6kVhHj
	 X4DlePd7tIhfw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730730520; x=1730991020; i=teddy.astie@vates.tech;
	bh=ox6PUJD+kYqAhQS7XnCT0BVUBQTkDDu1IHkIsGRxAhI=;
	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=qpbjToow4Edr+M9tveqqM6Raow3Rt9XoQPoIuCSkZjlE5k6RfFd6Y6hHeFrgck6Gf
	 KP9a+/iotdIzplvcdkHd9slikHQdX1gHnuywwbicnLAUjr1vZolHauh3V+tbr4ktYo
	 6NEIXXHijmqzwgH4vhzTKDDz+54/QvBhzptfr1CThQVuMUGVV3H2YNzqyt2NlUR7gn
	 GAk6mQrhVqFkEQjzAZiq3Rk7S1t8SnNOY789NvKFrP2ZIb5MJX85nqo985O7xMOFK3
	 a0zaPjPQza8lkfuURMcEgCc+PXDNKKvnGmPHm2J+ztbZdy5PAyrTMfaXXNfly8CwCT
	 O1EmJjUrf7Nnw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[XEN=20RFC=20PATCH=20v4=205/5]=20xen/public:=20Introduce=20PV-IOMMU=20hypercall=20interface?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730730518718
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <78b44f9f800b8f786835ecebdaf2d6ce7366f3da.1730718102.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1730718102.git.teddy.astie@vates.tech>
References: <cover.1730718102.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.37c1f77bdbc44b0894b546c2c0f0b07b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241104:md
Date: Mon, 04 Nov 2024 14:28:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce a new pv interface to manage the underlying IOMMU and manage contexts
and devices. This interface allows creation of new contexts from Dom0 and
addition of IOMMU mappings using guest PoV.

This interface doesn't allow creation of mapping to other domains.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* formatting

Changed in V3:
* prevent IOMMU operations on dying contexts

Changed in V4:
* redesigned hypercall interface [1]
* added remote_cmd and init logic

[1] https://lore.kernel.org/all/fdfa32c9-c177-4d05-891a-138f9b663f19@vates.tech/
---
 xen/common/Makefile           |   1 +
 xen/common/pv-iommu.c         | 539 ++++++++++++++++++++++++++++++++++
 xen/include/hypercall-defs.c  |   6 +
 xen/include/public/pv-iommu.h | 341 +++++++++++++++++++++
 xen/include/public/xen.h      |   1 +
 5 files changed, 888 insertions(+)
 create mode 100644 xen/common/pv-iommu.c
 create mode 100644 xen/include/public/pv-iommu.h

diff --git a/xen/common/Makefile b/xen/common/Makefile
index fc52e0857d..9d642ef635 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -58,6 +58,7 @@ obj-y += wait.o
 obj-bin-y += warning.init.o
 obj-$(CONFIG_XENOPROF) += xenoprof.o
 obj-y += xmalloc_tlsf.o
+obj-y += pv-iommu.o
 
 obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
 
diff --git a/xen/common/pv-iommu.c b/xen/common/pv-iommu.c
new file mode 100644
index 0000000000..9c7d04b4c7
--- /dev/null
+++ b/xen/common/pv-iommu.c
@@ -0,0 +1,539 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * xen/common/pv_iommu.c
+ *
+ * PV-IOMMU hypercall interface.
+ */
+
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/lib.h>
+#include <xen/iommu.h>
+#include <xen/sched.h>
+#include <xen/iocap.h>
+#include <xen/mm-frame.h>
+#include <xen/pci.h>
+#include <xen/guest_access.h>
+#include <asm/p2m.h>
+#include <asm/event.h>
+#include <asm/mm.h>
+#include <asm/iommu.h>
+#include <public/pv-iommu.h>
+
+#define PVIOMMU_PREFIX "[PV-IOMMU] "
+
+static int get_paged_frame(struct domain *d, gfn_t gfn, mfn_t *mfn,
+                           struct page_info **page, bool readonly)
+{
+    int ret = 0;
+    p2m_type_t p2mt = p2m_invalid;
+
+    #ifdef CONFIG_X86
+    p2m_query_t query = P2M_ALLOC;
+
+    if ( !readonly )
+        query |= P2M_UNSHARE;
+
+    *mfn = get_gfn_type(d, gfn_x(gfn), &p2mt, query);
+    #else
+    *mfn = p2m_lookup(d, gfn, &p2mt);
+    #endif
+
+    if ( mfn_eq(*mfn, INVALID_MFN) )
+    {
+        /* No mapping ? */
+        printk(XENLOG_G_WARNING PVIOMMU_PREFIX
+               "Trying to map to non-backed page frame (gfn=%"PRI_gfn
+               " p2mt=%d d%d)\n", gfn_x(gfn), p2mt, d->domain_id);
+
+        ret = -ENOENT;
+    }
+    else if ( p2m_is_any_ram(p2mt) && mfn_valid(*mfn) )
+    {
+        *page = get_page_from_mfn(*mfn, d);
+        ret = 0;
+    }
+    else if ( p2m_is_mmio(p2mt) ||
+              iomem_access_permitted(d, mfn_x(*mfn),mfn_x(*mfn)) )
+    {
+        *page = NULL;
+        ret = 0;
+    }
+    else
+    {
+        printk(XENLOG_G_WARNING PVIOMMU_PREFIX
+               "Unexpected p2mt %d (d%d gfn=%"PRI_gfn" mfn=%"PRI_mfn")\n",
+               p2mt, d->domain_id, gfn_x(gfn), mfn_x(*mfn));
+
+        ret = -EPERM;
+    }
+
+    put_gfn(d, gfn_x(gfn));
+    return ret;
+}
+
+static bool can_use_iommu_check(struct domain *d)
+{
+    if ( !is_iommu_enabled(d) )
+    {
+        printk(XENLOG_G_WARNING PVIOMMU_PREFIX
+               "IOMMU disabled for this domain\n");
+        return false;
+    }
+
+    if ( !dom_iommu(d)->allow_pv_iommu )
+    {
+        printk(XENLOG_G_WARNING PVIOMMU_PREFIX
+               "PV-IOMMU disabled for this domain\n");
+        return false;
+    }
+
+    return true;
+}
+
+static long capabilities_op(struct pv_iommu_capabilities *cap, struct domain *d)
+{
+    cap->max_ctx_no = d->iommu.other_contexts.count;
+    cap->max_iova_addr = iommu_get_max_iova(d);
+
+    cap->max_pasid = 0; /* TODO */
+    cap->cap_flags = 0;
+
+    if ( !dom_iommu(d)->no_dma )
+        cap->cap_flags |= IOMMUCAP_default_identity;
+
+    cap->pgsize_mask = PAGE_SIZE_4K;
+
+    return 0;
+}
+
+static long init_op(struct pv_iommu_init *init, struct domain *d)
+{
+    if (init->max_ctx_no == UINT32_MAX)
+        return -E2BIG;
+
+    return iommu_domain_pviommu_init(d, init->max_ctx_no + 1, init->arena_order);
+}
+
+static long alloc_context_op(struct pv_iommu_alloc *alloc, struct domain *d)
+{
+    u16 ctx_no = 0;
+    int status = 0;
+
+    status = iommu_context_alloc(d, &ctx_no, 0);
+
+    if ( status )
+        return status;
+
+    printk(XENLOG_G_INFO PVIOMMU_PREFIX
+           "Created IOMMU context %hu in d%d\n", ctx_no, d->domain_id);
+
+    alloc->ctx_no = ctx_no;
+    return 0;
+}
+
+static long free_context_op(struct pv_iommu_free *free, struct domain *d)
+{
+    int flags = IOMMU_TEARDOWN_PREEMPT;
+
+    if ( !free->ctx_no )
+        return -EINVAL;
+
+    if ( free->free_flags & IOMMU_FREE_reattach_default )
+        flags |= IOMMU_TEARDOWN_REATTACH_DEFAULT;
+
+    return iommu_context_free(d, free->ctx_no, flags);
+}
+
+static long reattach_device_op(struct pv_iommu_reattach_device *reattach,
+                               struct domain *d)
+{
+    int ret;
+    device_t *pdev;
+    struct physdev_pci_device dev = reattach->dev;
+
+    pcidevs_lock();
+    pdev = pci_get_pdev(d, PCI_SBDF(dev.seg, dev.bus, dev.devfn));
+
+    if ( !pdev )
+    {
+        pcidevs_unlock();
+        return -ENOENT;
+    }
+
+    ret = iommu_reattach_context(d, d, pdev, reattach->ctx_no);
+
+    pcidevs_unlock();
+    return ret;
+}
+
+static long map_pages_op(struct pv_iommu_map_pages *map, struct domain *d)
+{
+    struct iommu_context *ctx;
+    int ret = 0, flush_ret;
+    struct page_info *page = NULL;
+    mfn_t mfn, mfn_lookup;
+    unsigned int flags = 0, flush_flags = 0;
+    size_t i = 0;
+    dfn_t dfn0 = _dfn(map->dfn); /* original map->dfn */
+
+    if ( !map->ctx_no || !(ctx = iommu_get_context(d, map->ctx_no)) )
+        return -EINVAL;
+
+    if ( map->map_flags & IOMMU_MAP_readable )
+        flags |= IOMMUF_readable;
+
+    if ( map->map_flags & IOMMU_MAP_writeable )
+        flags |= IOMMUF_writable;
+
+    for (i = 0; i < map->nr_pages; i++)
+    {
+        gfn_t gfn = _gfn(map->gfn + i);
+        dfn_t dfn = _dfn(map->dfn + i);
+
+#ifdef CONFIG_X86
+        if ( iommu_identity_map_check(d, ctx, _mfn(map->dfn)) )
+        {
+            ret = -EADDRNOTAVAIL;
+            break;
+        }
+#endif
+
+        ret = get_paged_frame(d, gfn, &mfn, &page, 0);
+
+        if ( ret )
+            break;
+
+        /* Check for conflict with existing mappings */
+        if ( !iommu_lookup_page(d, dfn, &mfn_lookup, &flags, map->ctx_no) )
+        {
+            if ( page )
+                put_page(page);
+
+            ret = -EADDRINUSE;
+            break;
+        }
+
+        ret = iommu_map(d, dfn, mfn, 1, flags, &flush_flags, map->ctx_no);
+
+        if ( ret )
+        {
+            if ( page )
+                put_page(page);
+
+            break;
+        }
+
+        map->mapped++;
+
+        if ( (i & 0xff) && hypercall_preempt_check() )
+        {
+            i++;
+
+            map->gfn += i;
+            map->dfn += i;
+            map->nr_pages -= i;
+
+            ret = -ERESTART;
+            break;
+        }
+    }
+
+    flush_ret = iommu_iotlb_flush(d, dfn0, i, flush_flags, map->ctx_no);
+
+    iommu_put_context(ctx);
+
+    if ( flush_ret )
+        printk(XENLOG_G_WARNING PVIOMMU_PREFIX
+               "Flush operation failed for d%dc%d (%d)\n", d->domain_id,
+               ctx->id, flush_ret);
+
+    return ret;
+}
+
+static long unmap_pages_op(struct pv_iommu_unmap_pages *unmap, struct domain *d)
+{
+    struct iommu_context *ctx;
+    mfn_t mfn;
+    int ret = 0, flush_ret;
+    unsigned int flags, flush_flags = 0;
+    size_t i = 0;
+    dfn_t dfn0 = _dfn(unmap->dfn); /* original unmap->dfn */
+
+    if ( !unmap->ctx_no || !(ctx = iommu_get_context(d, unmap->ctx_no)) )
+        return -EINVAL;
+
+    for (i = 0; i < unmap->nr_pages; i++)
+    {
+        dfn_t dfn = _dfn(unmap->dfn + i);
+
+#ifdef CONFIG_X86
+        if ( iommu_identity_map_check(d, ctx, _mfn(unmap->dfn)) )
+        {
+            ret = -EADDRNOTAVAIL;
+            break;
+        }
+#endif
+
+        /* Check if there is a valid mapping for this domain */
+        if ( iommu_lookup_page(d, dfn, &mfn, &flags, unmap->ctx_no) ) {
+            ret = -ENOENT;
+            break;
+        }
+
+        ret = iommu_unmap(d, dfn, 1, 0, &flush_flags, unmap->ctx_no);
+
+        if ( ret )
+            break;
+
+        unmap->unmapped++;
+
+        /* Decrement reference counter (if needed) */
+        if ( mfn_valid(mfn) )
+            put_page(mfn_to_page(mfn));
+
+        if ( (i & 0xff) && hypercall_preempt_check() )
+        {
+            i++;
+
+            unmap->dfn += i;
+            unmap->nr_pages -= i;
+
+            ret = -ERESTART;
+            break;
+        }
+    }
+
+    flush_ret = iommu_iotlb_flush(d, dfn0, i, flush_flags, unmap->ctx_no);
+
+    iommu_put_context(ctx);
+
+    if ( flush_ret )
+        printk(XENLOG_WARNING PVIOMMU_PREFIX
+               "Flush operation failed for d%dc%d (%d)\n", d->domain_id,
+               ctx->id, flush_ret);
+
+    return ret;
+}
+
+static long do_iommu_subop(int subop, XEN_GUEST_HANDLE_PARAM(void) arg,
+                           struct domain *d, bool remote);
+
+static long remote_cmd_op(struct pv_iommu_remote_cmd *remote_cmd,
+                          struct domain *current_domain)
+{
+    long ret = 0;
+    struct domain *d;
+
+    /* TODO: use a better permission logic */
+    if ( !is_hardware_domain(current_domain) )
+        return -EPERM;
+
+    d = get_domain_by_id(remote_cmd->domid);
+
+    if ( !d )
+        return -ENOENT;
+
+    ret = do_iommu_subop(remote_cmd->subop, remote_cmd->arg, d, true);
+
+    put_domain(d);
+
+    return ret;
+}
+
+static long do_iommu_subop(int subop, XEN_GUEST_HANDLE_PARAM(void) arg,
+                           struct domain *d, bool remote)
+{
+    long ret = 0;
+
+    switch ( subop )
+    {
+        case IOMMU_noop:
+            break;
+
+        case IOMMU_query_capabilities:
+        {
+            struct pv_iommu_capabilities cap;
+
+            ret = capabilities_op(&cap, d);
+
+            if ( unlikely(copy_to_guest(arg, &cap, 1)) )
+                ret = -EFAULT;
+
+            break;
+        }
+
+        case IOMMU_init:
+        {
+            struct pv_iommu_init init;
+
+            if ( unlikely(copy_from_guest(&init, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = init_op(&init, d);
+        }
+
+        case IOMMU_alloc_context:
+        {
+            struct pv_iommu_alloc alloc;
+
+            if ( unlikely(copy_from_guest(&alloc, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = alloc_context_op(&alloc, d);
+
+            if ( unlikely(copy_to_guest(arg, &alloc, 1)) )
+                ret = -EFAULT;
+
+            break;
+        }
+
+        case IOMMU_free_context:
+        {
+            struct pv_iommu_free free;
+
+            if ( unlikely(copy_from_guest(&free, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = free_context_op(&free, d);
+            break;
+        }
+
+        case IOMMU_reattach_device:
+        {
+            struct pv_iommu_reattach_device reattach;
+
+            if ( unlikely(copy_from_guest(&reattach, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = reattach_device_op(&reattach, d);
+            break;
+        }
+
+        case IOMMU_map_pages:
+        {
+            struct pv_iommu_map_pages map;
+
+            if ( unlikely(copy_from_guest(&map, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = map_pages_op(&map, d);
+
+            if ( unlikely(copy_to_guest(arg, &map, 1)) )
+                ret = -EFAULT;
+
+            break;
+        }
+
+        case IOMMU_unmap_pages:
+        {
+            struct pv_iommu_unmap_pages unmap;
+
+            if ( unlikely(copy_from_guest(&unmap, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = unmap_pages_op(&unmap, d);
+
+            if ( unlikely(copy_to_guest(arg, &unmap, 1)) )
+                ret = -EFAULT;
+
+            break;
+        }
+
+        case IOMMU_remote_cmd:
+        {
+            struct pv_iommu_remote_cmd remote_cmd;
+
+            if ( remote )
+            {
+                /* Prevent remote_cmd from being called recursively */
+                ret = -EINVAL;
+                break;
+            }
+
+            if ( unlikely(copy_from_guest(&remote_cmd, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = remote_cmd_op(&remote_cmd, d);
+            break;
+        }
+
+        /*
+         * TODO
+         */
+        case IOMMU_alloc_nested:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        case IOMMU_flush_nested:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        case IOMMU_attach_pasid:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        case IOMMU_detach_pasid:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        default:
+            return -EOPNOTSUPP;
+    }
+
+    return ret;
+}
+
+long do_iommu_op(unsigned int subop, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    long ret = 0;
+
+    if ( !can_use_iommu_check(current->domain) )
+        return -ENODEV;
+
+    ret = do_iommu_subop(subop, arg, current->domain, false);
+
+    if ( ret == -ERESTART )
+        return hypercall_create_continuation(__HYPERVISOR_iommu_op, "ih", subop, arg);
+
+    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/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 47c093acc8..59d7c02f55 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -209,6 +209,9 @@ hypfs_op(unsigned int cmd, const char *arg1, unsigned long arg2, void *arg3, uns
 #ifdef CONFIG_X86
 xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
 #endif
+#ifdef CONFIG_HAS_PASSTHROUGH
+iommu_op(unsigned int subop, void *arg)
+#endif
 
 #ifdef CONFIG_PV
 caller: pv64
@@ -295,5 +298,8 @@ mca                                do       do       -        -        -
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 paging_domctl_cont                 do       do       do       do       -
 #endif
+#ifdef CONFIG_HAS_PASSTHROUGH
+iommu_op                           do       do       do       do       -
+#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/include/public/pv-iommu.h b/xen/include/public/pv-iommu.h
new file mode 100644
index 0000000000..c14b8435c9
--- /dev/null
+++ b/xen/include/public/pv-iommu.h
@@ -0,0 +1,341 @@
+/* SPDX-License-Identifier: MIT */
+/**
+ * pv-iommu.h
+ *
+ * Paravirtualized IOMMU driver interface.
+ *
+ * Copyright (c) 2024 Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#ifndef __XEN_PUBLIC_PV_IOMMU_H__
+#define __XEN_PUBLIC_PV_IOMMU_H__
+
+#include "xen.h"
+#include "physdev.h"
+
+#ifndef uint64_aligned_t
+#define uint64_aligned_t uint64_t
+#endif
+
+#define IOMMU_DEFAULT_CONTEXT (0)
+
+enum {
+    /* Basic cmd */
+    IOMMU_noop = 0,
+    IOMMU_query_capabilities,
+    IOMMU_init,
+    IOMMU_alloc_context,
+    IOMMU_free_context,
+    IOMMU_reattach_device,
+    IOMMU_map_pages,
+    IOMMU_unmap_pages,
+    IOMMU_remote_cmd,
+
+    /* Extended cmd */
+    IOMMU_alloc_nested,     /* if IOMMUCAP_nested */
+    IOMMU_flush_nested,     /* if IOMMUCAP_nested */
+    IOMMU_attach_pasid,     /* if IOMMUCAP_pasid */
+    IOMMU_detach_pasid,     /* if IOMMUCAP_pasid */
+};
+
+/**
+ * Indicate if the default context is a identity mapping to domain memory.
+ * If not defined, default context blocks all DMA to domain memory.
+ */
+#define IOMMUCAP_default_identity  (1 << 0)
+
+/**
+ * IOMMU_MAP_cache support.
+ */
+#define IOMMUCAP_cache     (1 << 1)
+
+/**
+ * Support for IOMMU_alloc_nested.
+ */
+#define IOMMUCAP_nested    (1 << 2)
+
+/**
+ * Support for IOMMU_attach_pasid and IOMMU_detach_pasid and pasid parameter in
+ * reattach_context.
+ */
+#define IOMMUCAP_pasid     (1 << 3)
+
+/**
+ * Support for IOMMU_ALLOC_identity
+ */
+#define IOMMUCAP_identity (1 << 4)
+
+/**
+ * IOMMU_query_capabilities
+ * Query PV-IOMMU capabilities for this domain.
+ */
+struct pv_iommu_capabilities {
+    /*
+     * OUT: Maximum device address (iova) that the guest can use for mappings.
+     */
+    uint64_aligned_t max_iova_addr;
+
+    /* OUT: IOMMU capabilities flags */
+    uint32_t cap_flags;
+
+    /* OUT: Mask of all supported page sizes. */
+    uint32_t pgsize_mask;
+
+    /* OUT: Maximum pasid (if IOMMUCAP_pasid) */
+    uint32_t max_pasid;
+
+    /* OUT: Maximum number of IOMMU context this domain can use. */
+    uint16_t max_ctx_no;
+};
+typedef struct pv_iommu_capabilities pv_iommu_capabilities_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_capabilities_t);
+
+/**
+ * IOMMU_init
+ * Initialize PV-IOMMU for this domain.
+ *
+ * Fails with -EACCESS if PV-IOMMU is already initialized.
+ */
+struct pv_iommu_init {
+    /* IN: Maximum number of IOMMU context this domain can use. */
+    uint32_t max_ctx_no;
+
+    /* IN: Arena size in pages (in power of two) */
+    uint32_t arena_order;
+};
+typedef struct pv_iommu_init pv_iommu_init_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_init_t);
+
+/**
+ * Create a 1:1 identity mapped context to domain memory
+ * (needs IOMMUCAP_identity).
+ */
+#define IOMMU_ALLOC_identity (1 << 0)
+
+/**
+ * IOMMU_alloc_context
+ * Allocate an IOMMU context.
+ * Fails with -ENOSPC if no context number is available.
+ */
+struct pv_iommu_alloc {
+    /* OUT: allocated IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: allocation flags */
+    uint32_t alloc_flags;
+};
+typedef struct pv_iommu_alloc pv_iommu_alloc_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_t);
+
+/**
+ * Move all devices to default context before freeing the context.
+ */
+#define IOMMU_FREE_reattach_default (1 << 0)
+
+/**
+ * IOMMU_free_context
+ * Destroy a IOMMU context.
+ *
+ * If IOMMU_FREE_reattach_default is specified, move all context devices to
+ * default context before destroying this context.
+ *
+ * If there are devices in the context and IOMMU_FREE_reattach_default is not
+ * specified, fail with -EBUSY.
+ *
+ * The default context can't be destroyed.
+ */
+struct pv_iommu_free {
+    /* IN: IOMMU context number to free */
+    uint16_t ctx_no;
+
+    /* IN: Free operation specific flags */
+    uint32_t free_flags;
+};
+typedef struct pv_iommu_free pv_iommu_free_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_free_t);
+
+/* Device has read access */
+#define IOMMU_MAP_readable (1 << 0)
+
+/* Device has write access */
+#define IOMMU_MAP_writeable (1 << 1)
+
+/* Enforce DMA coherency */
+#define IOMMU_MAP_cache (1 << 2)
+
+/**
+ * IOMMU_map_pages
+ * Map pages on a IOMMU context.
+ *
+ * pgsize must be supported by pgsize_mask.
+ * Fails with -EINVAL if mapping on top of another mapping.
+ * Report actually mapped page count in mapped field (regardless of failure).
+ */
+struct pv_iommu_map_pages {
+    /* IN: IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Guest frame number */
+    uint64_aligned_t gfn;
+
+    /* IN: Device frame number */
+    uint64_aligned_t dfn;
+
+    /* IN: Map flags */
+    uint32_t map_flags;
+
+    /* IN: Size of pages to map */
+    uint32_t pgsize;
+
+    /* IN: Number of pages to map */
+    uint32_t nr_pages;
+
+    /* OUT: Number of pages actually mapped */
+    uint32_t mapped;
+};
+typedef struct pv_iommu_map_pages pv_iommu_map_pages_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_map_pages_t);
+
+/**
+ * IOMMU_unmap_pages
+ * Unmap pages on a IOMMU context.
+ *
+ * pgsize must be supported by pgsize_mask.
+ * Report actually unmapped page count in mapped field (regardless of failure).
+ * Fails with -ENOENT when attempting to unmap a page without any mapping
+ */
+struct pv_iommu_unmap_pages {
+    /* IN: IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Device frame number */
+    uint64_aligned_t dfn;
+
+    /* IN: Size of pages to unmap */
+    uint32_t pgsize;
+
+    /* IN: Number of pages to unmap */
+    uint32_t nr_pages;
+
+    /* OUT: Number of pages actually unmapped */
+    uint32_t unmapped;
+};
+typedef struct pv_iommu_unmap_pages pv_iommu_unmap_pages_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_unmap_pages_t);
+
+/**
+ * IOMMU_reattach_device
+ * Reattach a device to another IOMMU context.
+ * Fails with -ENODEV if no such device exist.
+ */
+struct pv_iommu_reattach_device {
+    /* IN: Target IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Physical device to move */
+    struct physdev_pci_device dev;
+
+    /* IN: PASID of the device (if IOMMUCAP_pasid) */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_reattach_device pv_iommu_reattach_device_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_reattach_device_t);
+
+
+/**
+ * IOMMU_remote_cmd
+ * Do a PV-IOMMU operation on another domain.
+ * Current domain needs to be allowed to act on the target domain, otherwise
+ * fails with -EPERM.
+ */
+struct pv_iommu_remote_cmd {
+    /* IN: Target domain to do the subop on */
+    uint16_t domid;
+
+    /* IN: Command to do on target domain. */
+    uint16_t subop;
+
+    /* INOUT: Command argument from current domain memory */
+    XEN_GUEST_HANDLE(void) arg;
+};
+typedef struct pv_iommu_remote_cmd pv_iommu_remote_cmd_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_remote_cmd_t);
+
+/**
+ * IOMMU_alloc_nested
+ * Create a nested IOMMU context (needs IOMMUCAP_nested).
+ *
+ * This context uses a platform-specific page table from domain address space
+ * specified in pgtable_gfn and use it for nested translations.
+ *
+ * Explicit flushes needs to be submited with IOMMU_flush_nested on
+ * modification of the nested pagetable to ensure coherency between IOTLB and
+ * nested page table.
+ *
+ * This context can be destroyed using IOMMU_free_context.
+ * This context cannot be modified using map_pages, unmap_pages.
+ */
+struct pv_iommu_alloc_nested {
+    /* OUT: allocated IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: guest frame number of the nested page table */
+    uint64_aligned_t pgtable_gfn;
+
+    /* IN: nested mode flags */
+    uint64_aligned_t nested_flags;
+};
+typedef struct pv_iommu_alloc_nested pv_iommu_alloc_nested_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_nested_t);
+
+/**
+ * IOMMU_flush_nested (needs IOMMUCAP_nested)
+ * Flush the IOTLB for nested translation.
+ */
+struct pv_iommu_flush_nested {
+    /* TODO */
+};
+typedef struct pv_iommu_flush_nested pv_iommu_flush_nested_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_flush_nested_t);
+
+/**
+ * IOMMU_attach_pasid (needs IOMMUCAP_pasid)
+ * Attach a new device-with-pasid to a IOMMU context.
+ * If a matching device-with-pasid already exists (globally),
+ * fail with -EEXIST.
+ * If pasid is 0, fails with -EINVAL.
+ * If physical device doesn't exist in domain, fail with -ENOENT.
+ */
+struct pv_iommu_attach_pasid {
+    /* IN: IOMMU context to add the device-with-pasid in */
+    uint16_t ctx_no;
+
+    /* IN: Physical device */
+    struct physdev_pci_device dev;
+
+    /* IN: pasid of the device to attach */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_attach_pasid pv_iommu_attach_pasid_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_attach_pasid_t);
+
+/**
+ * IOMMU_detach_pasid (needs IOMMUCAP_pasid)
+ * detach a device-with-pasid.
+ * If the device-with-pasid doesn't exist or belong to the domain,
+ * fail with -ENOENT.
+ * If pasid is 0, fails with -EINVAL.
+ */
+struct pv_iommu_detach_pasid {
+    /* IN: Physical device */
+    struct physdev_pci_device dev;
+
+    /* pasid of the device to detach */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_detach_pasid pv_iommu_detach_pasid_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_detach_pasid_t);
+
+/* long do_iommu_op(int subop, XEN_GUEST_HANDLE_PARAM(void) arg) */
+
+#endif
\ No newline at end of file
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index b47d48d0e2..28ab815ebc 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -118,6 +118,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
 #define __HYPERVISOR_xenpmu_op            40
 #define __HYPERVISOR_dm_op                41
 #define __HYPERVISOR_hypfs_op             42
+#define __HYPERVISOR_iommu_op             43
 
 /* Architecture-specific hypercall definitions. */
 #define __HYPERVISOR_arch_0               48
-- 
2.45.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 Nov 04 14:28:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 14:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830029.1244959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7y4V-00070A-W7; Mon, 04 Nov 2024 14:28:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830029.1244959; Mon, 04 Nov 2024 14:28: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 1t7y4V-000703-T1; Mon, 04 Nov 2024 14:28:47 +0000
Received: by outflank-mailman (input) for mailman id 830029;
 Mon, 04 Nov 2024 14:28: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=i/Au=R7=bounce.vates.tech=bounce-md_30504962.6728da16.v1-7508323027114daba6c0ca034902f9e2@srs-se1.protection.inumbo.net>)
 id 1t7y4U-0006XR-FJ
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 14:28:46 +0000
Received: from mail128-130.atl41.mandrillapp.com
 (mail128-130.atl41.mandrillapp.com [198.2.128.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 163327b8-9ab9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 15:28:41 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xhv3B5J1lzS62JQD
 for <xen-devel@lists.xenproject.org>; Mon,  4 Nov 2024 14:28:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7508323027114daba6c0ca034902f9e2; Mon, 04 Nov 2024 14:28: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: 163327b8-9ab9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEyOC4xMzAiLCJoZWxvIjoibWFpbDEyOC0xMzAuYXRsNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE2MzMyN2I4LTlhYjktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzMwNTIxLjQyMDMyNSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MjhkYTE2LnYxLTc1MDgzMjMwMjcxMTRkYWJhNmMwY2EwMzQ5MDJmOWUyQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730730518; x=1730991018;
	bh=D1mN7WnP9SMvYAR3LcZNqcutNoBQ8YN4wFayrsZS04Q=;
	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=0XViHl0wfl4HMvkoQADMlPavxemCWShHiTypJhvxZo14p2ONEFvgvuxDzwJRxneal
	 ao3shHuFtao7KBmtJIOd5ILdGHWJ5zxOGujqsCnZz3VkK65FLDD23meiD+njgOpALe
	 MISmEnwZFYpTZFSitLsbDkU8M31eTn8t+VO1BcpyaQneHL9kGLztyp2HJwK01xzFMW
	 P5xPEZebrd8ZYYMG6X5TnI4Yuje5PhcKqOMFxIBGJi3uDuJKyU5qqStYJ+/kEXaO/N
	 N0scAJJ5/+rrUTlMrC7iYCbt6TeIPPNuK2TTAgd4TpOCgY0VWK8HniuXpk9Nx+siUu
	 LHgIWDZNueQ5A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730730518; x=1730991018; i=teddy.astie@vates.tech;
	bh=D1mN7WnP9SMvYAR3LcZNqcutNoBQ8YN4wFayrsZS04Q=;
	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=CUvLai+jL8bxt37xAnUBo+ad6c8ZXTeRgsvb1RG9zxFtXxlkIRHkvG0Q9LY1kg7wl
	 hgFWWNvx87U2JxxMctjrwLrz8so/leYZJine3aFhanDYfJ0RJ2UEikdkGVJwYEEh2B
	 fZgFzLBFZcBs9xB7o4K9Qy/rtsfyZmMF+ZDGRjO6jeNJYhzWrd2VB7DKeyieKMoCaS
	 20wz5IVp3CJIVQBCmQTX1qPScomcGGj5ITSGyo7OnVyAZRcf3+HvTM8HorWda9mUDb
	 x9HJIXpNFH8RgGPF23WnNZnl379EDgmzsVYzkpZlhkqOQm3qLKbeaqsdEJnzkKHjMT
	 /vBJUShljHC+g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[XEN=20RFC=20PATCH=20v4=202/5]=20docs/designs:=20Add=20a=20design=20document=20for=20IOMMU=20subsystem=20redesign?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730730517418
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <b847b3653a7410600e9e4bf87b515bdccd6d9496.1730718102.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1730718102.git.teddy.astie@vates.tech>
References: <cover.1730718102.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.7508323027114daba6c0ca034902f9e2?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241104:md
Date: Mon, 04 Nov 2024 14:28:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Current IOMMU subsystem has some limitations that make PV-IOMMU practically impossible.
One of them is the assumtion that each domain is bound to a single "IOMMU domain", which
also causes complications with quarantine implementation.

Moreover, current IOMMU subsystem is not entirely well-defined, for instance, the behavior
of map_page between ARM SMMUv3 and x86 VT-d/AMD-Vi greatly differs. On ARM, it can modifies
the domain page table while on x86, it may be forbidden (e.g using HAP with PVH), or only
modifying the devices PoV (e.g using PV).

The goal of this redesign is to define more explicitely the behavior and interface of the
IOMMU subsystem while allowing PV-IOMMU to be effectively implemented.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* nit s/dettach/detach/

Changed in v4:
* updated for iommu_context locking changes
---
 docs/designs/iommu-contexts.md | 403 +++++++++++++++++++++++++++++++++
 1 file changed, 403 insertions(+)
 create mode 100644 docs/designs/iommu-contexts.md

diff --git a/docs/designs/iommu-contexts.md b/docs/designs/iommu-contexts.md
new file mode 100644
index 0000000000..9d6fb95549
--- /dev/null
+++ b/docs/designs/iommu-contexts.md
@@ -0,0 +1,403 @@
+# IOMMU context management in Xen
+
+Status: Experimental
+Revision: 0
+
+# Background
+
+The design for *IOMMU paravirtualization for Dom0* [1] explains that some guests may
+want to access to IOMMU features. In order to implement this in Xen, several adjustments
+needs to be made to the IOMMU subsystem.
+
+This "hardware IOMMU domain" is currently implemented on a per-domain basis such as each
+domain actually has a specific *hardware IOMMU domain*, this design aims to allow a
+single Xen domain to manage several "IOMMU context", and allow some domains (e.g Dom0
+[1]) to modify their IOMMU contexts.
+
+In addition to this, quarantine feature can be refactored into using IOMMU contexts
+to reduce the complexity of platform-specific implementations and ensuring more
+consistency across platforms.
+
+# IOMMU context
+
+We define a "IOMMU context" as being a *hardware IOMMU domain*, but named as a context
+to avoid confusion with Xen domains.
+It represents some hardware-specific data structure that contains mappings from a device
+frame-number to a machine frame-number (e.g using a pagetable) that can be applied to
+a device using IOMMU hardware.
+
+This structure is bound to a Xen domain, but a Xen domain may have several IOMMU context.
+These contexts may be modifiable using the interface as defined in [1] aside some
+specific cases (e.g modifying default context).
+
+This is implemented in Xen as a new structure that will hold context-specific
+data.
+
+```c
+struct iommu_context {
+    u16 id; /* Context id (0 means default context) */
+    struct list_head devices;
+
+    struct arch_iommu_context arch;
+
+    bool opaque; /* context can't be modified nor accessed (e.g HAP) */
+};
+```
+
+A context is identified by a number that is domain-specific and may be used by IOMMU
+users such as PV-IOMMU by the guest.
+
+struct arch_iommu_context is splited from struct arch_iommu
+
+```c
+struct arch_iommu_context
+{
+    spinlock_t pgtables_lock;
+    struct page_list_head pgtables;
+
+    union {
+        /* Intel VT-d */
+        struct {
+            uint64_t pgd_maddr; /* io page directory machine address */
+            domid_t *didmap; /* per-iommu DID */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the context uses */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            struct page_info *root_table;
+        } amd;
+    };
+};
+
+struct arch_iommu
+{
+    spinlock_t mapping_lock; /* io page table lock */
+    struct {
+        struct page_list_head list;
+        spinlock_t lock;
+    } pgtables;
+
+    struct list_head identity_maps;
+
+    union {
+        /* Intel VT-d */
+        struct {
+            /* no more context-specific values */
+            unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            unsigned int paging_mode;
+            struct guest_iommu *g_iommu;
+        } amd;
+    };
+};
+```
+
+IOMMU context information is now carried by iommu_context rather than being integrated to
+struct arch_iommu.
+
+# Xen domain IOMMU structure
+
+`struct domain_iommu` is modified to allow multiples context within a single Xen domain
+to exist :
+
+```c
+struct iommu_context_list {
+    uint16_t count; /* Context count excluding default context */
+
+    /* if count > 0 */
+
+    uint64_t *bitmap; /* bitmap of context allocation */
+    struct iommu_context *map; /* Map of contexts */
+};
+
+struct domain_iommu {
+    /* ... */
+
+    struct iommu_context default_ctx;
+    struct iommu_context_list other_contexts;
+
+    /* ... */
+}
+```
+
+default_ctx is a special context with id=0 that holds the page table mapping the entire
+domain, which basically preserve the previous behavior. All devices are expected to be
+bound to this context during initialization.
+
+Along with this default context that always exist, we use a pool of contexts that has a
+fixed size at domain initialization, where contexts can be allocated (if possible), and
+have a id matching their position in the map (considering that id != 0).
+These contexts may be used by IOMMU contexts users such as PV-IOMMU or quarantine domain
+(DomIO).
+
+# Platform independent context management interface
+
+A new platform independant interface is introduced in Xen hypervisor to allow
+IOMMU contexts users to create and manage contexts within domains.
+
+```c
+/* Direct context access functions (not supposed to be used directly) */
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_no);
+void iommu_put_context(struct iommu_context *ctx);
+
+/* Flag for default context initialization */
+#define IOMMU_CONTEXT_INIT_default (1 << 0)
+
+/* Flag for quarantine contexts (scratch page, DMA Abort mode, ...) */
+#define IOMMU_CONTEXT_INIT_quarantine (1 << 1)
+
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_no, u32 flags);
+
+/* Flag to specify that devices will need to be reattached to default domain */
+#define IOMMU_TEARDOWN_REATTACH_DEFAULT (1 << 0)
+
+/*
+ * Flag to specify that the context needs to be destroyed preemptively
+ * (multiple calls to iommu_context_teardown will be required)
+ */
+#define IOMMU_TEARDOWN_PREEMPT (1 << 1)
+
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+
+/* Allocate a new context, uses CONTEXT_INIT flags */
+int iommu_context_alloc(struct domain *d, u16 *ctx_no, u32 flags);
+
+/* Free a context, uses CONTEXT_TEARDOWN flags */
+int iommu_context_free(struct domain *d, u16 ctx_no, u32 flags);
+
+/* Move a device from one context to another, including between different domains. */
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                           device_t *dev, u16 ctx_no);
+
+/* Add a device to a context for first initialization */
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no);
+
+/* Remove a device from a context, effectively removing it from the IOMMU. */
+int iommu_detach_context(struct domain *d, device_t *dev);
+```
+
+This interface will use a new interface with drivers to implement these features.
+
+Some existing functions will have a new parameter to specify on what context to do the operation.
+- iommu_map (iommu_legacy_map untouched)
+- iommu_unmap (iommu_legacy_unmap untouched)
+- iommu_lookup_page
+- iommu_iotlb_flush
+
+These functions will modify the iommu_context structure to accomodate with the
+operations applied, these functions will be used to replace some operations previously
+made in the IOMMU driver.
+
+# IOMMU platform_ops interface changes
+
+The IOMMU driver needs to expose a way to create and manage IOMMU contexts, the approach
+taken here is to modify the interface to allow specifying a IOMMU context on operations,
+and at the same time, simplifying the interface by relying more on iommu
+platform-independent code.
+
+Added functions in iommu_ops
+
+```c
+/* Initialize a context (creating page tables, allocating hardware, structures, ...) */
+int (*context_init)(struct domain *d, struct iommu_context *ctx,
+                    u32 flags);
+/* Destroy a context, assumes no device is bound to the context. */
+int (*context_teardown)(struct domain *d, struct iommu_context *ctx,
+                        u32 flags);
+/* Put a device in a context (assumes the device is not attached to another context) */
+int (*attach)(struct domain *d, device_t *dev,
+              struct iommu_context *ctx);
+/* Remove a device from a context, and from the IOMMU. */
+int (*detach)(struct domain *d, device_t *dev,
+              struct iommu_context *prev_ctx);
+/* Move the device from a context to another, including if the new context is in
+   another domain. d corresponds to the target domain. */
+int (*reattach)(struct domain *d, device_t *dev,
+                struct iommu_context *prev_ctx,
+                struct iommu_context *ctx);
+
+#ifdef CONFIG_HAS_PCI
+/* Specific interface for phantom function devices. */
+int (*add_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                 struct iommu_context *ctx);
+int (*remove_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                    struct iommu_context *ctx);
+#endif
+
+/* Changes in existing to use a specified iommu_context. */
+int __must_check (*map_page)(struct domain *d, dfn_t dfn, mfn_t mfn,
+                             unsigned int flags,
+                             unsigned int *flush_flags,
+                             struct iommu_context *ctx);
+int __must_check (*unmap_page)(struct domain *d, dfn_t dfn,
+                               unsigned int order,
+                               unsigned int *flush_flags,
+                               struct iommu_context *ctx);
+int __must_check (*lookup_page)(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                                unsigned int *flags,
+                                struct iommu_context *ctx);
+
+int __must_check (*iotlb_flush)(struct domain *d,
+                                struct iommu_context *ctx, dfn_t dfn,
+                                unsigned long page_count,
+                                unsigned int flush_flags);
+
+void (*clear_root_pgtable)(struct domain *d, struct iommu_context *ctx);
+```
+
+These functions are redundant with existing functions, therefore, the following functions
+are replaced with new equivalents :
+- quarantine_init : platform-independent code and IOMMU_CONTEXT_INIT_quarantine flag
+- add_device : attach and add_devfn (phantom)
+- assign_device : attach and add_devfn (phantom)
+- remove_device : detach and remove_devfn (phantom)
+- reassign_device : reattach
+
+Some functionnal differences with previous functions, the following should be handled
+by platform-independent/arch-specific code instead of IOMMU driver :
+- identity mappings (unity mappings and rmrr)
+- device list in context and domain
+- domain of a device
+- quarantine
+
+The idea behind this is to implement IOMMU context features while simplifying IOMMU
+drivers implementations and ensuring more consistency between IOMMU drivers.
+
+## Phantom function handling
+
+PCI devices may use additionnal devfn to do DMA operations, in order to support such
+devices, an interface is added to map specific device functions without implying that
+the device is mapped to a new context (that may cause duplicates in Xen data structures).
+
+Functions add_devfn and remove_devfn allows to map a iommu context on specific devfn
+for a pci device, without altering platform-independent data structures.
+
+It is important for the reattach operation to care about these devices, in order
+to prevent devices from being partially reattached to the new context (see XSA-449 [2])
+by using a all-or-nothing approach for reattaching such devices.
+
+# Quarantine refactoring using IOMMU contexts
+
+The quarantine mecanism can be entirely reimplemented using IOMMU context, making
+it simpler, more consistent between platforms,
+
+Quarantine is currently only supported with x86 platforms and works by creating a
+single *hardware IOMMU domain* per quarantined device. All the quarantine logic is
+the implemented in a platform-specific fashion while actually implementing the same
+concepts :
+
+The *hardware IOMMU context* data structures for quarantine are currently stored in
+the device structure itself (using arch_pci_dev) and IOMMU driver needs to care about
+whether we are dealing with quarantine operations or regular operations (often dealt
+using macros such as QUARANTINE_SKIP or DEVICE_PGTABLE).
+
+The page table that will apply on the quarantined device is created reserved device
+regions, and adding mappings to a scratch page if enabled (quarantine=scratch-page).
+
+A new approach we can use is allowing the quarantine domain (DomIO) to manage IOMMU
+contexts, and implement all the quarantine logic using IOMMU contexts.
+
+That way, the quarantine implementation can be platform-independent, thus have a more
+consistent implementation between platforms. It will also allows quarantine to work
+with other IOMMU implementations without having to implement platform-specific behavior.
+Moreover, quarantine operations can be implemented using regular context operations
+instead of relying on driver-specific code.
+
+Quarantine implementation can be summarised as
+
+```c
+int iommu_quarantine_dev_init(device_t *dev)
+{
+    int ret;
+    u16 ctx_no;
+
+    if ( !iommu_quarantine )
+        return -EINVAL;
+
+    ret = iommu_context_alloc(dom_io, &ctx_no, IOMMU_CONTEXT_INIT_quarantine);
+
+    if ( ret )
+        return ret;
+
+    /** TODO: Setup scratch page, mappings... */
+
+    ret = iommu_reattach_context(dev->domain, dom_io, dev, ctx_no);
+
+    if ( ret )
+    {
+        ASSERT(!iommu_context_free(dom_io, ctx_no, 0));
+        return ret;
+    }
+
+    return ret;
+}
+```
+
+# Platform-specific considerations
+
+## Reference counters on target pages
+
+When mapping a guest page onto a IOMMU context, we need to make sure that
+this page is not reused for something else while being actually referenced
+by a IOMMU context. One way of doing it is incrementing the reference counter
+of each target page we map (excluding reserved regions), and decrementing it
+when the mapping isn't used anymore.
+
+One consideration to have is when destroying the context while having existing
+mappings in it. We can walk through the entire page table and decrement the
+reference counter of all mappings. All of that assumes that there is no reserved
+region mapped (which should be the case as a requirement of teardown, or as a
+consequence of REATTACH_DEFAULT flag).
+
+Another consideration is that the "cleanup mappings" operation may take a lot
+of time depending on the complexity of the page table. Making the teardown operation preemptable can allow the hypercall to be preempted if needed also preventing a malicious
+guest from stalling a CPU in a teardown operation with a specially crafted IOMMU
+context (e.g with several 1G superpages).
+
+## Limit the amount of pages IOMMU contexts can use
+
+In order to prevent a (eventually malicious) guest from causing too much allocations
+in Xen, we can enforce limits on the memory the IOMMU subsystem can use for IOMMU context.
+A possible implementation can be to preallocate a reasonably large chunk of memory
+and split it into pages for use by the IOMMU subsystem only for non-default IOMMU
+contexts (e.g PV-IOMMU interface), if this limitation is overcome, some operations
+may fail from the guest side. These limitations shouldn't impact "usual" operations
+of the IOMMU subsystem (e.g default context initialization).
+
+## x86 Architecture
+
+TODO
+
+### Intel VT-d
+
+VT-d uses DID to tag the *IOMMU domain* applied to a device and assumes that all entries
+with the same DID uses the same page table (i.e same IOMMU context).
+Under certain circonstances (e.g DRHD with DID limit below 16-bits), the *DID* is
+transparently converted into a DRHD-specific DID using a map managed internally.
+
+The current implementation of the code reuses the Xen domain_id as DID.
+However, by using multiples IOMMU contexts per domain, we can't use the domain_id for
+contexts (otherwise, different page tables will be mapped with the same DID).
+The following strategy is used :
+- on the default context, reuse the domain_id (the default context is unique per domain)
+- on non-default context, use a id allocated in the pseudo_domid map, (actually used by
+quarantine) which is a DID outside of Xen domain_id range
+
+### AMD-Vi
+
+TODO
+
+## Device-tree platforms
+
+### SMMU and SMMUv3
+
+TODO
+
+* * *
+
+[1] See pv-iommu.md
+
+[2] pci: phantom functions assigned to incorrect contexts
+https://xenbits.xen.org/xsa/advisory-449.html
\ No newline at end of file
-- 
2.45.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 Nov 04 14:28:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 14:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830031.1244978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7y4b-0007Yj-Ii; Mon, 04 Nov 2024 14:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830031.1244978; Mon, 04 Nov 2024 14:28: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 1t7y4b-0007Yc-FM; Mon, 04 Nov 2024 14:28:53 +0000
Received: by outflank-mailman (input) for mailman id 830031;
 Mon, 04 Nov 2024 14:28: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=bhFb=R7=bounce.vates.tech=bounce-md_30504962.6728da18.v1-a5238e467f4843fe9cd9f855abfe221b@srs-se1.protection.inumbo.net>)
 id 1t7y4Z-0006XR-7M
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 14:28:51 +0000
Received: from mail128-130.atl41.mandrillapp.com
 (mail128-130.atl41.mandrillapp.com [198.2.128.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 191ed1cb-9ab9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 15:28:46 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xhv3D1YTRzS62J2K
 for <xen-devel@lists.xenproject.org>; Mon,  4 Nov 2024 14:28:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a5238e467f4843fe9cd9f855abfe221b; Mon, 04 Nov 2024 14:28: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: 191ed1cb-9ab9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEyOC4xMzAiLCJoZWxvIjoibWFpbDEyOC0xMzAuYXRsNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE5MWVkMWNiLTlhYjktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzMwNTI2LjU1Mzk5LCJzZW5kZXIiOiJib3VuY2UtbWRfMzA1MDQ5NjIuNjcyOGRhMTgudjEtYTUyMzhlNDY3ZjQ4NDNmZTljZDlmODU1YWJmZTIyMWJAYm91bmNlLnZhdGVzLnRlY2giLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730730520; x=1730991020;
	bh=FUjt+mT8Pwu/BVxhEtSMdShv/mmeEmV9wgs/qrMzUx0=;
	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=GBvMmcMvMWUz2cI0Z7qpJa/QSK/TPXOWVg0tvANDDbJGK2+0FYcq8FWk50sGpRN7R
	 60HRKjKSVyDCNaXhyKIzxtbXeAitqNu6+McE74QBxLnMb7rzr8w8uQkJRkQawJyweD
	 MRW16R7fY9cAJCz4wwCIMNH6IeDCTGeUL19HAk+XFWuNFyKRQcuRcTDyQ/u/kjroEF
	 A8ofXI8sIz5CAPKaAmSfY2KPXFxAgz5NAe1GfduvNMu+1OuFmUt8A6+n2Ixp/AgXKw
	 9WnATzIqqKIf//mIF5+jItTcPo5ow3ljmbsvKn9pShLuKwMsCc+aJ8Biu9rIynnuO2
	 CC3GvKu46osbg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730730520; x=1730991020; i=teddy.astie@vates.tech;
	bh=FUjt+mT8Pwu/BVxhEtSMdShv/mmeEmV9wgs/qrMzUx0=;
	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=SOpXY68ZQWeqzI7XgbzbOvAJMnLuZr/jgEB679UfcUJR+BxMKNfsD++azN7HF2RhX
	 C5d2Pf27NXE+PY/5eHggi784KtF+8igepCjx2j/90Y4W17aTXrWv6kWSTyleNiKwUH
	 D0z/mrRDA4WuRH+jv7rqKDm9YtUgib771dePVA02IXi1uAMlje2AnH/Y+xySDI3wKm
	 Y8k7xGJuDLW3ktzGf4BRY1RJL+Mq/vFJF/oFAtfL/x2bIJpSUic9H7Zt0lTTuK+3sv
	 8AQ96Ov973rnIt/gXFTg75Ggpxdcord6jyJzUFWIjqlVwtYNkPDuogRGVNY5OwGp6D
	 ehqzUDVk8b0Xg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[XEN=20RFC=20PATCH=20v4=204/5]=20VT-d:=20Port=20IOMMU=20driver=20to=20new=20subsystem?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730730518275
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: <05a4114976be6f72fbaba653d10fe705bb86f8f4.1730718102.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1730718102.git.teddy.astie@vates.tech>
References: <cover.1730718102.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.a5238e467f4843fe9cd9f855abfe221b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241104:md
Date: Mon, 04 Nov 2024 14:28:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Port the driver with guidances specified in iommu-contexts.md.

Add a arena-based allocator for allocating a fixed chunk of memory and
split it into 4k pages for use by the IOMMU contexts. This chunk size
is configurable with X86_ARENA_ORDER and dom0-iommu=arena-order=N.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* cleanup some unneeded includes
* s/dettach/detach/
* don't dump IOMMU context of non-iommu domains (fix crash with DomUs)

Changed in v4:
* add "no-dma" support
* use new locking logic
---
 xen/arch/x86/include/asm/arena.h     |   54 +
 xen/arch/x86/include/asm/iommu.h     |   58 +-
 xen/arch/x86/include/asm/pci.h       |   17 -
 xen/drivers/passthrough/vtd/Makefile |    2 +-
 xen/drivers/passthrough/vtd/extern.h |   14 +-
 xen/drivers/passthrough/vtd/iommu.c  | 1478 +++++++++-----------------
 xen/drivers/passthrough/vtd/quirks.c |   20 +-
 xen/drivers/passthrough/x86/Makefile |    1 +
 xen/drivers/passthrough/x86/arena.c  |  157 +++
 xen/drivers/passthrough/x86/iommu.c  |  270 +++--
 10 files changed, 984 insertions(+), 1087 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/arena.h
 create mode 100644 xen/drivers/passthrough/x86/arena.c

diff --git a/xen/arch/x86/include/asm/arena.h b/xen/arch/x86/include/asm/arena.h
new file mode 100644
index 0000000000..7555b100e0
--- /dev/null
+++ b/xen/arch/x86/include/asm/arena.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/**
+ * Simple arena-based page allocator.
+ */
+
+#ifndef __XEN_IOMMU_ARENA_H__
+#define __XEN_IOMMU_ARENA_H__
+
+#include "xen/domain.h"
+#include "xen/atomic.h"
+#include "xen/mm-frame.h"
+#include "xen/types.h"
+
+/**
+ * struct page_arena: Page arena structure
+ */
+struct iommu_arena {
+    /* mfn of the first page of the memory region */
+    mfn_t region_start;
+    /* bitmap of allocations */
+    unsigned long *map;
+
+    /* Order of the arena */
+    unsigned int order;
+
+    /* Used page count */
+    atomic_t used_pages;
+};
+
+/**
+ * Initialize a arena using domheap allocator.
+ * @param [out] arena Arena to allocate
+ * @param [in] domain domain that has ownership of arena pages
+ * @param [in] order order of the arena (power of two of the size)
+ * @param [in] memflags Flags for domheap_alloc_pages()
+ * @return -ENOMEM on arena allocation error, 0 otherwise
+ */
+int iommu_arena_initialize(struct iommu_arena *arena, struct domain *domain,
+                           unsigned int order, unsigned int memflags);
+
+/**
+ * Teardown a arena.
+ * @param [out] arena arena to allocate
+ * @param [in] check check for existing allocations
+ * @return -EBUSY if check is specified
+ */
+int iommu_arena_teardown(struct iommu_arena *arena, bool check);
+
+struct page_info *iommu_arena_allocate_page(struct iommu_arena *arena);
+bool iommu_arena_free_page(struct iommu_arena *arena, struct page_info *page);
+
+#define iommu_arena_size(arena) (1LLU << (arena)->order)
+
+#endif
diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index 8dc464fbd3..533bb8d777 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -2,14 +2,18 @@
 #ifndef __ARCH_X86_IOMMU_H__
 #define __ARCH_X86_IOMMU_H__
 
+#include <xen/bitmap.h>
 #include <xen/errno.h>
 #include <xen/list.h>
 #include <xen/mem_access.h>
 #include <xen/spinlock.h>
+#include <xen/stdbool.h>
 #include <asm/apicdef.h>
 #include <asm/cache.h>
 #include <asm/processor.h>
 
+#include "arena.h"
+
 #define DEFAULT_DOMAIN_ADDRESS_WIDTH 48
 
 struct g2m_ioport {
@@ -31,27 +35,45 @@ typedef uint64_t daddr_t;
 #define dfn_to_daddr(dfn) __dfn_to_daddr(dfn_x(dfn))
 #define daddr_to_dfn(daddr) _dfn(__daddr_to_dfn(daddr))
 
-struct arch_iommu
+struct arch_iommu_context
 {
-    spinlock_t mapping_lock; /* io page table lock */
-    struct {
-        struct page_list_head list;
-        spinlock_t lock;
-    } pgtables;
-
+    struct page_list_head pgtables;
     struct list_head identity_maps;
 
+    /* Queue for freeing pages */
+    struct page_list_head free_queue;
+
+    /* Is this context reusing domain P2M ? */
+    bool hap_context;
+
     union {
         /* Intel VT-d */
         struct {
             uint64_t pgd_maddr; /* io page directory machine address */
+            domid_t *didmap; /* per-iommu DID */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the context uses */
+            uint32_t superpage_progress; /* superpage progress during teardown */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            struct page_info *root_table;
+        } amd;
+    };
+};
+
+struct arch_iommu
+{
+    struct iommu_arena pt_arena; /* allocator for non-default contexts */
+
+    union {
+        /* Intel VT-d */
+        struct {
             unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
-            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the domain uses */
         } vtd;
         /* AMD IOMMU */
         struct {
             unsigned int paging_mode;
-            struct page_info *root_table;
+            struct guest_iommu *g_iommu;
         } amd;
     };
 };
@@ -109,10 +131,13 @@ static inline void iommu_disable_x2apic(void)
         iommu_vcall(&iommu_ops, disable_x2apic);
 }
 
-int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
-                           paddr_t base, paddr_t end,
+int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
+                           p2m_access_t p2ma, paddr_t base, paddr_t end,
                            unsigned int flag);
-void iommu_identity_map_teardown(struct domain *d);
+void iommu_identity_map_teardown(struct domain *d, struct iommu_context *ctx);
+bool iommu_identity_map_check(struct domain *d, struct iommu_context *ctx,
+                              mfn_t mfn);
+
 
 extern bool untrusted_msi;
 
@@ -128,14 +153,19 @@ unsigned long *iommu_init_domid(domid_t reserve);
 domid_t iommu_alloc_domid(unsigned long *map);
 void iommu_free_domid(domid_t domid, unsigned long *map);
 
-int __must_check iommu_free_pgtables(struct domain *d);
+struct iommu_context;
+int __must_check iommu_free_pgtables(struct domain *d, struct iommu_context *ctx);
 struct domain_iommu;
 struct page_info *__must_check iommu_alloc_pgtable(struct domain_iommu *hd,
+                                                   struct iommu_context *ctx,
                                                    uint64_t contig_mask);
-void iommu_queue_free_pgtable(struct domain_iommu *hd, struct page_info *pg);
+void iommu_queue_free_pgtable(struct iommu_context *ctx, struct page_info *pg);
 
 /* Check [start, end] unity map range for correctness. */
 bool iommu_unity_region_ok(const char *prefix, mfn_t start, mfn_t end);
+int arch_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags);
+int arch_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+int arch_iommu_flush_free_queue(struct domain *d, struct iommu_context *ctx);
 
 #endif /* !__ARCH_X86_IOMMU_H__ */
 /*
diff --git a/xen/arch/x86/include/asm/pci.h b/xen/arch/x86/include/asm/pci.h
index fd5480d67d..214c1a0948 100644
--- a/xen/arch/x86/include/asm/pci.h
+++ b/xen/arch/x86/include/asm/pci.h
@@ -15,23 +15,6 @@
 
 struct arch_pci_dev {
     vmask_t used_vectors;
-    /*
-     * These fields are (de)initialized under pcidevs-lock. Other uses of
-     * them don't race (de)initialization and hence don't strictly need any
-     * locking.
-     */
-    union {
-        /* Subset of struct arch_iommu's fields, to be used in dom_io. */
-        struct {
-            uint64_t pgd_maddr;
-        } vtd;
-        struct {
-            struct page_info *root_table;
-        } amd;
-    };
-    domid_t pseudo_domid;
-    mfn_t leaf_mfn;
-    struct page_list_head pgtables_list;
 };
 
 int pci_conf_write_intercept(unsigned int seg, unsigned int bdf,
diff --git a/xen/drivers/passthrough/vtd/Makefile b/xen/drivers/passthrough/vtd/Makefile
index fde7555fac..81e1f46179 100644
--- a/xen/drivers/passthrough/vtd/Makefile
+++ b/xen/drivers/passthrough/vtd/Makefile
@@ -5,4 +5,4 @@ obj-y += dmar.o
 obj-y += utils.o
 obj-y += qinval.o
 obj-y += intremap.o
-obj-y += quirks.o
+obj-y += quirks.o
\ No newline at end of file
diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
index 667590ee52..0201ed9dc5 100644
--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -80,12 +80,10 @@ uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node);
 void free_pgtable_maddr(u64 maddr);
 void *map_vtd_domain_page(u64 maddr);
 void unmap_vtd_domain_page(const void *va);
-int domain_context_mapping_one(struct domain *domain, struct vtd_iommu *iommu,
-                               uint8_t bus, uint8_t devfn,
-                               const struct pci_dev *pdev, domid_t domid,
-                               paddr_t pgd_maddr, unsigned int mode);
-int domain_context_unmap_one(struct domain *domain, struct vtd_iommu *iommu,
-                             uint8_t bus, uint8_t devfn);
+int apply_context_single(struct domain *domain, struct iommu_context *ctx,
+                         struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn);
+int unapply_context_single(struct domain *domain, struct vtd_iommu *iommu,
+                           uint8_t bus, uint8_t devfn);
 int cf_check intel_iommu_get_reserved_device_memory(
     iommu_grdm_t *func, void *ctxt);
 
@@ -106,8 +104,8 @@ void platform_quirks_init(void);
 void vtd_ops_preamble_quirk(struct vtd_iommu *iommu);
 void vtd_ops_postamble_quirk(struct vtd_iommu *iommu);
 int __must_check me_wifi_quirk(struct domain *domain, uint8_t bus,
-                               uint8_t devfn, domid_t domid, paddr_t pgd_maddr,
-                               unsigned int mode);
+                               uint8_t devfn, domid_t domid,
+                               unsigned int mode, struct iommu_context *ctx);
 void pci_vtd_quirk(const struct pci_dev *);
 void quirk_iommu_caps(struct vtd_iommu *iommu);
 
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index e13be244c1..5619d323ae 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -20,6 +20,7 @@
 
 #include <xen/irq.h>
 #include <xen/sched.h>
+#include <xen/mem_access.h>
 #include <xen/xmalloc.h>
 #include <xen/domain_page.h>
 #include <xen/err.h>
@@ -30,12 +31,20 @@
 #include <xen/time.h>
 #include <xen/pci.h>
 #include <xen/pci_regs.h>
+#include <xen/sched.h>
+#include <xen/event.h>
 #include <xen/keyhandler.h>
+#include <xen/list.h>
+#include <xen/spinlock.h>
+#include <xen/iommu.h>
+#include <xen/lib.h>
 #include <asm/msi.h>
-#include <asm/nops.h>
 #include <asm/irq.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/p2m.h>
+#include <asm/bitops.h>
+#include <asm/iommu.h>
+#include <asm/page.h>
 #include <mach_apic.h>
 #include "iommu.h"
 #include "dmar.h"
@@ -46,14 +55,6 @@
 #define CONTIG_MASK DMA_PTE_CONTIG_MASK
 #include <asm/pt-contig-markers.h>
 
-/* dom_io is used as a sentinel for quarantined devices */
-#define QUARANTINE_SKIP(d, pgd_maddr) ((d) == dom_io && !(pgd_maddr))
-#define DEVICE_DOMID(d, pdev) ((d) != dom_io ? (d)->domain_id \
-                                             : (pdev)->arch.pseudo_domid)
-#define DEVICE_PGTABLE(d, pdev) ((d) != dom_io \
-                                 ? dom_iommu(d)->arch.vtd.pgd_maddr \
-                                 : (pdev)->arch.vtd.pgd_maddr)
-
 bool __read_mostly iommu_igfx = true;
 bool __read_mostly iommu_qinval = true;
 #ifndef iommu_snoop
@@ -66,7 +67,6 @@ static unsigned int __ro_after_init min_pt_levels = UINT_MAX;
 static struct tasklet vtd_fault_tasklet;
 
 static int cf_check setup_hwdom_device(u8 devfn, struct pci_dev *);
-static void setup_hwdom_rmrr(struct domain *d);
 
 static bool domid_mapping(const struct vtd_iommu *iommu)
 {
@@ -206,26 +206,14 @@ static bool any_pdev_behind_iommu(const struct domain *d,
  * clear iommu in iommu_bitmap and clear domain_id in domid_bitmap.
  */
 static void check_cleanup_domid_map(const struct domain *d,
+                                    const struct iommu_context *ctx,
                                     const struct pci_dev *exclude,
                                     struct vtd_iommu *iommu)
 {
-    bool found;
-
-    if ( d == dom_io )
-        return;
-
-    found = any_pdev_behind_iommu(d, exclude, iommu);
-    /*
-     * Hidden devices are associated with DomXEN but usable by the hardware
-     * domain. Hence they need considering here as well.
-     */
-    if ( !found && is_hardware_domain(d) )
-        found = any_pdev_behind_iommu(dom_xen, exclude, iommu);
-
-    if ( !found )
+    if ( !any_pdev_behind_iommu(d, exclude, iommu) )
     {
-        clear_bit(iommu->index, dom_iommu(d)->arch.vtd.iommu_bitmap);
-        cleanup_domid_map(d->domain_id, iommu);
+        clear_bit(iommu->index, ctx->arch.vtd.iommu_bitmap);
+        cleanup_domid_map(ctx->arch.vtd.didmap[iommu->index], iommu);
     }
 }
 
@@ -312,8 +300,9 @@ static u64 bus_to_context_maddr(struct vtd_iommu *iommu, u8 bus)
  *   PTE for the requested address,
  * - for target == 0 the full PTE contents below PADDR_BITS limit.
  */
-static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
-                                       unsigned int target,
+static uint64_t addr_to_dma_page_maddr(struct domain *domain,
+                                       struct iommu_context *ctx,
+                                       daddr_t addr, unsigned int target,
                                        unsigned int *flush_flags, bool alloc)
 {
     struct domain_iommu *hd = dom_iommu(domain);
@@ -323,10 +312,9 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
     u64 pte_maddr = 0;
 
     addr &= (((u64)1) << addr_width) - 1;
-    ASSERT(spin_is_locked(&hd->arch.mapping_lock));
     ASSERT(target || !alloc);
 
-    if ( !hd->arch.vtd.pgd_maddr )
+    if ( !ctx->arch.vtd.pgd_maddr )
     {
         struct page_info *pg;
 
@@ -334,13 +322,13 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
             goto out;
 
         pte_maddr = level;
-        if ( !(pg = iommu_alloc_pgtable(hd, 0)) )
+        if ( !(pg = iommu_alloc_pgtable(hd, ctx, 0)) )
             goto out;
 
-        hd->arch.vtd.pgd_maddr = page_to_maddr(pg);
+        ctx->arch.vtd.pgd_maddr = page_to_maddr(pg);
     }
 
-    pte_maddr = hd->arch.vtd.pgd_maddr;
+    pte_maddr = ctx->arch.vtd.pgd_maddr;
     parent = map_vtd_domain_page(pte_maddr);
     while ( level > target )
     {
@@ -376,7 +364,7 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
             }
 
             pte_maddr = level - 1;
-            pg = iommu_alloc_pgtable(hd, DMA_PTE_CONTIG_MASK);
+            pg = iommu_alloc_pgtable(hd, ctx, DMA_PTE_CONTIG_MASK);
             if ( !pg )
                 break;
 
@@ -428,38 +416,25 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
     return pte_maddr;
 }
 
-static paddr_t domain_pgd_maddr(struct domain *d, paddr_t pgd_maddr,
-                                unsigned int nr_pt_levels)
+static paddr_t get_context_pgd(struct domain *d, struct iommu_context *ctx,
+                               unsigned int nr_pt_levels)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     unsigned int agaw;
+    paddr_t pgd_maddr = ctx->arch.vtd.pgd_maddr;
 
-    ASSERT(spin_is_locked(&hd->arch.mapping_lock));
-
-    if ( pgd_maddr )
-        /* nothing */;
-    else if ( iommu_use_hap_pt(d) )
+    if ( !ctx->arch.vtd.pgd_maddr )
     {
-        pagetable_t pgt = p2m_get_pagetable(p2m_get_hostp2m(d));
+        /*
+         * Ensure we have pagetables allocated down to the smallest
+         * level the loop below may need to run to.
+         */
+        addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
 
-        pgd_maddr = pagetable_get_paddr(pgt);
+        if ( !ctx->arch.vtd.pgd_maddr )
+            return 0;
     }
-    else
-    {
-        if ( !hd->arch.vtd.pgd_maddr )
-        {
-            /*
-             * Ensure we have pagetables allocated down to the smallest
-             * level the loop below may need to run to.
-             */
-            addr_to_dma_page_maddr(d, 0, min_pt_levels, NULL, true);
-
-            if ( !hd->arch.vtd.pgd_maddr )
-                return 0;
-        }
 
-        pgd_maddr = hd->arch.vtd.pgd_maddr;
-    }
+    pgd_maddr = ctx->arch.vtd.pgd_maddr;
 
     /* Skip top level(s) of page tables for less-than-maximum level DRHDs. */
     for ( agaw = level_to_agaw(4);
@@ -727,28 +702,18 @@ static int __must_check iommu_flush_all(void)
     return rc;
 }
 
-static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
+static int __must_check cf_check iommu_flush_iotlb(struct domain *d,
+                                                   struct iommu_context *ctx,
+                                                   dfn_t dfn,
                                                    unsigned long page_count,
                                                    unsigned int flush_flags)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
     bool flush_dev_iotlb;
     int iommu_domid;
     int ret = 0;
 
-    if ( flush_flags & IOMMU_FLUSHF_all )
-    {
-        dfn = INVALID_DFN;
-        page_count = 0;
-    }
-    else
-    {
-        ASSERT(page_count && !dfn_eq(dfn, INVALID_DFN));
-        ASSERT(flush_flags);
-    }
-
     /*
      * No need pcideves_lock here because we have flush
      * when assign/deassign device
@@ -759,13 +724,20 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
 
         iommu = drhd->iommu;
 
-        if ( !test_bit(iommu->index, hd->arch.vtd.iommu_bitmap) )
-            continue;
+        if ( ctx )
+        {
+            if ( !test_bit(iommu->index, ctx->arch.vtd.iommu_bitmap) )
+                continue;
+
+            iommu_domid = get_iommu_did(ctx->arch.vtd.didmap[iommu->index], iommu, true);
+
+            if ( iommu_domid == -1 )
+                continue;
+        }
+        else
+            iommu_domid = 0;
 
         flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
-        iommu_domid = get_iommu_did(d->domain_id, iommu, !d->is_dying);
-        if ( iommu_domid == -1 )
-            continue;
 
         if ( !page_count || (page_count & (page_count - 1)) ||
              dfn_eq(dfn, INVALID_DFN) || !IS_ALIGNED(dfn_x(dfn), page_count) )
@@ -784,10 +756,13 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
             ret = rc;
     }
 
+    if ( !ret && ctx )
+        arch_iommu_flush_free_queue(d, ctx);
+
     return ret;
 }
 
-static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level)
+static void queue_free_pt(struct iommu_context *ctx, mfn_t mfn, unsigned int level)
 {
     if ( level > 1 )
     {
@@ -796,13 +771,13 @@ static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level
 
         for ( i = 0; i < PTE_NUM; ++i )
             if ( dma_pte_present(pt[i]) && !dma_pte_superpage(pt[i]) )
-                queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(pt[i])),
+                queue_free_pt(ctx, maddr_to_mfn(dma_pte_addr(pt[i])),
                               level - 1);
 
         unmap_domain_page(pt);
     }
 
-    iommu_queue_free_pgtable(hd, mfn_to_page(mfn));
+    iommu_queue_free_pgtable(ctx, mfn_to_page(mfn));
 }
 
 static int iommu_set_root_entry(struct vtd_iommu *iommu)
@@ -1433,11 +1408,6 @@ static int cf_check intel_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
-    hd->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
-                                              BITS_TO_LONGS(nr_iommus));
-    if ( !hd->arch.vtd.iommu_bitmap )
-        return -ENOMEM;
-
     hd->arch.vtd.agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
 
     return 0;
@@ -1448,7 +1418,7 @@ static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
     struct acpi_drhd_unit *drhd;
 
     setup_hwdom_pci_devices(d, setup_hwdom_device);
-    setup_hwdom_rmrr(d);
+
     /* Make sure workarounds are applied before enabling the IOMMU(s). */
     arch_iommu_hwdom_init(d);
 
@@ -1465,32 +1435,22 @@ static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
     }
 }
 
-/*
- * This function returns
- * - a negative errno value upon error,
- * - zero upon success when previously the entry was non-present, or this isn't
- *   the "main" request for a device (pdev == NULL), or for no-op quarantining
- *   assignments,
- * - positive (one) upon success when previously the entry was present and this
- *   is the "main" request for a device (pdev != NULL).
+/**
+ * Apply a context on a device.
+ * @param domain Domain of the context
+ * @param iommu IOMMU hardware to use (must match device iommu)
+ * @param ctx IOMMU context to apply
+ * @param devfn PCI device function (may be different to pdev)
  */
-int domain_context_mapping_one(
-    struct domain *domain,
-    struct vtd_iommu *iommu,
-    uint8_t bus, uint8_t devfn, const struct pci_dev *pdev,
-    domid_t domid, paddr_t pgd_maddr, unsigned int mode)
+int apply_context_single(struct domain *domain, struct iommu_context *ctx,
+                         struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn)
 {
-    struct domain_iommu *hd = dom_iommu(domain);
     struct context_entry *context, *context_entries, lctxt;
-    __uint128_t old;
+    __uint128_t res, old;
     uint64_t maddr;
-    uint16_t seg = iommu->drhd->segment, prev_did = 0;
-    struct domain *prev_dom = NULL;
+    uint16_t seg = iommu->drhd->segment, prev_did = 0, did;
     int rc, ret;
-    bool flush_dev_iotlb;
-
-    if ( QUARANTINE_SKIP(domain, pgd_maddr) )
-        return 0;
+    bool flush_dev_iotlb, overwrite_entry = false;
 
     ASSERT(pcidevs_locked());
     spin_lock(&iommu->lock);
@@ -1499,28 +1459,15 @@ int domain_context_mapping_one(
     context = &context_entries[devfn];
     old = (lctxt = *context).full;
 
-    if ( context_present(lctxt) )
-    {
-        domid_t domid;
+    did = ctx->arch.vtd.didmap[iommu->index];
 
+    if ( context_present(*context) )
+    {
         prev_did = context_domain_id(lctxt);
-        domid = did_to_domain_id(iommu, prev_did);
-        if ( domid < DOMID_FIRST_RESERVED )
-            prev_dom = rcu_lock_domain_by_id(domid);
-        else if ( pdev ? domid == pdev->arch.pseudo_domid : domid > DOMID_MASK )
-            prev_dom = rcu_lock_domain(dom_io);
-        if ( !prev_dom )
-        {
-            spin_unlock(&iommu->lock);
-            unmap_vtd_domain_page(context_entries);
-            dprintk(XENLOG_DEBUG VTDPREFIX,
-                    "no domain for did %u (nr_dom %u)\n",
-                    prev_did, cap_ndoms(iommu->cap));
-            return -ESRCH;
-        }
+        overwrite_entry = true;
     }
 
-    if ( iommu_hwdom_passthrough && is_hardware_domain(domain) )
+    if ( iommu_hwdom_passthrough && is_hardware_domain(domain) && !ctx->id )
     {
         context_set_translation_type(lctxt, CONTEXT_TT_PASS_THRU);
     }
@@ -1528,16 +1475,10 @@ int domain_context_mapping_one(
     {
         paddr_t root;
 
-        spin_lock(&hd->arch.mapping_lock);
-
-        root = domain_pgd_maddr(domain, pgd_maddr, iommu->nr_pt_levels);
+        root = get_context_pgd(domain, ctx, iommu->nr_pt_levels);
         if ( !root )
         {
-            spin_unlock(&hd->arch.mapping_lock);
-            spin_unlock(&iommu->lock);
             unmap_vtd_domain_page(context_entries);
-            if ( prev_dom )
-                rcu_unlock_domain(prev_dom);
             return -ENOMEM;
         }
 
@@ -1546,98 +1487,39 @@ int domain_context_mapping_one(
             context_set_translation_type(lctxt, CONTEXT_TT_DEV_IOTLB);
         else
             context_set_translation_type(lctxt, CONTEXT_TT_MULTI_LEVEL);
-
-        spin_unlock(&hd->arch.mapping_lock);
     }
 
-    rc = context_set_domain_id(&lctxt, domid, iommu);
+    rc = context_set_domain_id(&lctxt, did, iommu);
     if ( rc )
-    {
-    unlock:
-        spin_unlock(&iommu->lock);
-        unmap_vtd_domain_page(context_entries);
-        if ( prev_dom )
-            rcu_unlock_domain(prev_dom);
-        return rc;
-    }
-
-    if ( !prev_dom )
-    {
-        context_set_address_width(lctxt, level_to_agaw(iommu->nr_pt_levels));
-        context_set_fault_enable(lctxt);
-        context_set_present(lctxt);
-    }
-    else if ( prev_dom == domain )
-    {
-        ASSERT(lctxt.full == context->full);
-        rc = !!pdev;
         goto unlock;
-    }
-    else
-    {
-        ASSERT(context_address_width(lctxt) ==
-               level_to_agaw(iommu->nr_pt_levels));
-        ASSERT(!context_fault_disable(lctxt));
-    }
-
-    if ( cpu_has_cx16 )
-    {
-        __uint128_t res = cmpxchg16b(context, &old, &lctxt.full);
 
-        /*
-         * Hardware does not update the context entry behind our backs,
-         * so the return value should match "old".
-         */
-        if ( res != old )
-        {
-            if ( pdev )
-                check_cleanup_domid_map(domain, pdev, iommu);
-            printk(XENLOG_ERR
-                   "%pp: unexpected context entry %016lx_%016lx (expected %016lx_%016lx)\n",
-                   &PCI_SBDF(seg, bus, devfn),
-                   (uint64_t)(res >> 64), (uint64_t)res,
-                   (uint64_t)(old >> 64), (uint64_t)old);
-            rc = -EILSEQ;
-            goto unlock;
-        }
-    }
-    else if ( !prev_dom || !(mode & MAP_WITH_RMRR) )
-    {
-        context_clear_present(*context);
-        iommu_sync_cache(context, sizeof(*context));
+    context_set_address_width(lctxt, level_to_agaw(iommu->nr_pt_levels));
+    context_set_fault_enable(lctxt);
+    context_set_present(lctxt);
 
-        write_atomic(&context->hi, lctxt.hi);
-        /* No barrier should be needed between these two. */
-        write_atomic(&context->lo, lctxt.lo);
-    }
-    else /* Best effort, updating DID last. */
-    {
-         /*
-          * By non-atomically updating the context entry's DID field last,
-          * during a short window in time TLB entries with the old domain ID
-          * but the new page tables may be inserted.  This could affect I/O
-          * of other devices using this same (old) domain ID.  Such updating
-          * therefore is not a problem if this was the only device associated
-          * with the old domain ID.  Diverting I/O of any of a dying domain's
-          * devices to the quarantine page tables is intended anyway.
-          */
-        if ( !(mode & (MAP_OWNER_DYING | MAP_SINGLE_DEVICE)) )
-            printk(XENLOG_WARNING VTDPREFIX
-                   " %pp: reassignment may cause %pd data corruption\n",
-                   &PCI_SBDF(seg, bus, devfn), prev_dom);
+    res = cmpxchg16b(context, &old, &lctxt.full);
 
-        write_atomic(&context->lo, lctxt.lo);
-        /* No barrier should be needed between these two. */
-        write_atomic(&context->hi, lctxt.hi);
+    /*
+     * Hardware does not update the context entry behind our backs,
+     * so the return value should match "old".
+     */
+    if ( res != old )
+    {
+        printk(XENLOG_ERR
+                "%pp: unexpected context entry %016lx_%016lx (expected %016lx_%016lx)\n",
+                &PCI_SBDF(seg, bus, devfn),
+                (uint64_t)(res >> 64), (uint64_t)res,
+                (uint64_t)(old >> 64), (uint64_t)old);
+        rc = -EILSEQ;
+        goto unlock;
     }
 
     iommu_sync_cache(context, sizeof(struct context_entry));
-    spin_unlock(&iommu->lock);
 
     rc = iommu_flush_context_device(iommu, prev_did, PCI_BDF(bus, devfn),
-                                    DMA_CCMD_MASK_NOBIT, !prev_dom);
+                                    DMA_CCMD_MASK_NOBIT, !overwrite_entry);
     flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
-    ret = iommu_flush_iotlb_dsi(iommu, prev_did, !prev_dom, flush_dev_iotlb);
+    ret = iommu_flush_iotlb_dsi(iommu, prev_did, !overwrite_entry, flush_dev_iotlb);
 
     /*
      * The current logic for returns:
@@ -1653,230 +1535,55 @@ int domain_context_mapping_one(
     if ( rc > 0 )
         rc = 0;
 
-    set_bit(iommu->index, hd->arch.vtd.iommu_bitmap);
+    set_bit(iommu->index, ctx->arch.vtd.iommu_bitmap);
 
     unmap_vtd_domain_page(context_entries);
+    spin_unlock(&iommu->lock);
 
     if ( !seg && !rc )
-        rc = me_wifi_quirk(domain, bus, devfn, domid, pgd_maddr, mode);
-
-    if ( rc && !(mode & MAP_ERROR_RECOVERY) )
-    {
-        if ( !prev_dom ||
-             /*
-              * Unmapping here means DEV_TYPE_PCI devices with RMRRs (if such
-              * exist) would cause problems if such a region was actually
-              * accessed.
-              */
-             (prev_dom == dom_io && !pdev) )
-            ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        else
-            ret = domain_context_mapping_one(prev_dom, iommu, bus, devfn, pdev,
-                                             DEVICE_DOMID(prev_dom, pdev),
-                                             DEVICE_PGTABLE(prev_dom, pdev),
-                                             (mode & MAP_WITH_RMRR) |
-                                             MAP_ERROR_RECOVERY) < 0;
-
-        if ( !ret && pdev && pdev->devfn == devfn )
-            check_cleanup_domid_map(domain, pdev, iommu);
-    }
+        rc = me_wifi_quirk(domain, bus, devfn, did, 0, ctx);
 
-    if ( prev_dom )
-        rcu_unlock_domain(prev_dom);
+    return rc;
 
-    return rc ?: pdev && prev_dom;
+    unlock:
+        unmap_vtd_domain_page(context_entries);
+        spin_unlock(&iommu->lock);
+        return rc;
 }
 
-static const struct acpi_drhd_unit *domain_context_unmap(
-    struct domain *d, uint8_t devfn, struct pci_dev *pdev);
-
-static int domain_context_mapping(struct domain *domain, u8 devfn,
-                                  struct pci_dev *pdev)
+int apply_context(struct domain *d, struct iommu_context *ctx,
+                  struct pci_dev *pdev, u8 devfn)
 {
     const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-    const struct acpi_rmrr_unit *rmrr;
-    paddr_t pgd_maddr = DEVICE_PGTABLE(domain, pdev);
-    domid_t orig_domid = pdev->arch.pseudo_domid;
     int ret = 0;
-    unsigned int i, mode = 0;
-    uint16_t seg = pdev->seg, bdf;
-    uint8_t bus = pdev->bus, secbus;
-
-    /*
-     * Generally we assume only devices from one node to get assigned to a
-     * given guest.  But even if not, by replacing the prior value here we
-     * guarantee that at least some basic allocations for the device being
-     * added will get done against its node.  Any further allocations for
-     * this or other devices may be penalized then, but some would also be
-     * if we left other than NUMA_NO_NODE untouched here.
-     */
-    if ( drhd && drhd->iommu->node != NUMA_NO_NODE )
-        dom_iommu(domain)->node = drhd->iommu->node;
-
-    ASSERT(pcidevs_locked());
-
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment != pdev->seg || bdf != pdev->sbdf.bdf )
-            continue;
 
-        mode |= MAP_WITH_RMRR;
-        break;
-    }
+    if ( !drhd )
+        return -EINVAL;
 
-    if ( domain != pdev->domain && pdev->domain != dom_io )
+    if ( pdev->type == DEV_TYPE_PCI_HOST_BRIDGE ||
+         pdev->type == DEV_TYPE_PCIe_BRIDGE ||
+         pdev->type == DEV_TYPE_PCIe2PCI_BRIDGE ||
+         pdev->type == DEV_TYPE_LEGACY_PCI_BRIDGE )
     {
-        if ( pdev->domain->is_dying )
-            mode |= MAP_OWNER_DYING;
-        else if ( drhd &&
-                  !any_pdev_behind_iommu(pdev->domain, pdev, drhd->iommu) &&
-                  !pdev->phantom_stride )
-            mode |= MAP_SINGLE_DEVICE;
+        printk(XENLOG_WARNING VTDPREFIX " Ignoring apply_context on PCI bridge\n");
+        return 0;
     }
 
-    switch ( pdev->type )
-    {
-        bool prev_present;
-
-    case DEV_TYPE_PCI_HOST_BRIDGE:
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:Hostbridge: skip %pp map\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        if ( !is_hardware_domain(domain) )
-            return -EPERM;
-        break;
-
-    case DEV_TYPE_PCIe_BRIDGE:
-    case DEV_TYPE_PCIe2PCI_BRIDGE:
-    case DEV_TYPE_LEGACY_PCI_BRIDGE:
-        break;
-
-    case DEV_TYPE_PCIe_ENDPOINT:
-        if ( !drhd )
-            return -ENODEV;
-
-        if ( iommu_quarantine && orig_domid == DOMID_INVALID )
-        {
-            pdev->arch.pseudo_domid =
-                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
-            if ( pdev->arch.pseudo_domid == DOMID_INVALID )
-                return -ENOSPC;
-        }
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCIe: map %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn, pdev,
-                                         DEVICE_DOMID(domain, pdev), pgd_maddr,
-                                         mode);
-        if ( ret > 0 )
-            ret = 0;
-        if ( !ret && devfn == pdev->devfn && ats_device(pdev, drhd) > 0 )
-            enable_ats_device(pdev, &drhd->iommu->ats_devices);
-
-        break;
-
-    case DEV_TYPE_PCI:
-        if ( !drhd )
-            return -ENODEV;
-
-        if ( iommu_quarantine && orig_domid == DOMID_INVALID )
-        {
-            pdev->arch.pseudo_domid =
-                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
-            if ( pdev->arch.pseudo_domid == DOMID_INVALID )
-                return -ENOSPC;
-        }
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCI: map %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-
-        ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn,
-                                         pdev, DEVICE_DOMID(domain, pdev),
-                                         pgd_maddr, mode);
-        if ( ret < 0 )
-            break;
-        prev_present = ret;
-
-        if ( (ret = find_upstream_bridge(seg, &bus, &devfn, &secbus)) < 1 )
-        {
-            if ( !ret )
-                break;
-            ret = -ENXIO;
-        }
-        /*
-         * Strictly speaking if the device is the only one behind this bridge
-         * and the only one with this (secbus,0,0) tuple, it could be allowed
-         * to be re-assigned regardless of RMRR presence.  But let's deal with
-         * that case only if it is actually found in the wild.  Note that
-         * dealing with this just here would still not render the operation
-         * secure.
-         */
-        else if ( prev_present && (mode & MAP_WITH_RMRR) &&
-                  domain != pdev->domain )
-            ret = -EOPNOTSUPP;
-
-        /*
-         * Mapping a bridge should, if anything, pass the struct pci_dev of
-         * that bridge. Since bridges don't normally get assigned to guests,
-         * their owner would be the wrong one. Pass NULL instead.
-         */
-        if ( ret >= 0 )
-            ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn,
-                                             NULL, DEVICE_DOMID(domain, pdev),
-                                             pgd_maddr, mode);
-
-        /*
-         * Devices behind PCIe-to-PCI/PCIx bridge may generate different
-         * requester-id. It may originate from devfn=0 on the secondary bus
-         * behind the bridge. Map that id as well if we didn't already.
-         *
-         * Somewhat similar as for bridges, we don't want to pass a struct
-         * pci_dev here - there may not even exist one for this (secbus,0,0)
-         * tuple. If there is one, without properly working device groups it
-         * may again not have the correct owner.
-         */
-        if ( !ret && pdev_type(seg, bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE &&
-             (secbus != pdev->bus || pdev->devfn != 0) )
-            ret = domain_context_mapping_one(domain, drhd->iommu, secbus, 0,
-                                             NULL, DEVICE_DOMID(domain, pdev),
-                                             pgd_maddr, mode);
-
-        if ( ret )
-        {
-            if ( !prev_present )
-                domain_context_unmap(domain, devfn, pdev);
-            else if ( pdev->domain != domain ) /* Avoid infinite recursion. */
-                domain_context_mapping(pdev->domain, devfn, pdev);
-        }
+    ASSERT(pcidevs_locked());
 
-        break;
+    ret = apply_context_single(d, ctx, drhd->iommu, pdev->bus, devfn);
 
-    default:
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n",
-                domain, pdev->type, &PCI_SBDF(seg, bus, devfn));
-        ret = -EINVAL;
-        break;
-    }
+    if ( !ret && ats_device(pdev, drhd) > 0 )
+        enable_ats_device(pdev, &drhd->iommu->ats_devices);
 
     if ( !ret && devfn == pdev->devfn )
         pci_vtd_quirk(pdev);
 
-    if ( ret && drhd && orig_domid == DOMID_INVALID )
-    {
-        iommu_free_domid(pdev->arch.pseudo_domid,
-                         drhd->iommu->pseudo_domid_map);
-        pdev->arch.pseudo_domid = DOMID_INVALID;
-    }
-
     return ret;
 }
 
-int domain_context_unmap_one(
-    struct domain *domain,
-    struct vtd_iommu *iommu,
-    uint8_t bus, uint8_t devfn)
+int unapply_context_single(struct domain *domain, struct vtd_iommu *iommu,
+                           uint8_t bus, uint8_t devfn)
 {
     struct context_entry *context, *context_entries;
     u64 maddr;
@@ -1928,8 +1635,8 @@ int domain_context_unmap_one(
     unmap_vtd_domain_page(context_entries);
 
     if ( !iommu->drhd->segment && !rc )
-        rc = me_wifi_quirk(domain, bus, devfn, DOMID_INVALID, 0,
-                           UNMAP_ME_PHANTOM_FUNC);
+        rc = me_wifi_quirk(domain, bus, devfn, DOMID_INVALID, UNMAP_ME_PHANTOM_FUNC,
+                           NULL);
 
     if ( rc && !is_hardware_domain(domain) && domain != dom_io )
     {
@@ -1947,143 +1654,28 @@ int domain_context_unmap_one(
     return rc;
 }
 
-static const struct acpi_drhd_unit *domain_context_unmap(
-    struct domain *domain,
-    uint8_t devfn,
-    struct pci_dev *pdev)
-{
-    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-    struct vtd_iommu *iommu = drhd ? drhd->iommu : NULL;
-    int ret;
-    uint16_t seg = pdev->seg;
-    uint8_t bus = pdev->bus, tmp_bus, tmp_devfn, secbus;
-
-    switch ( pdev->type )
-    {
-    case DEV_TYPE_PCI_HOST_BRIDGE:
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:Hostbridge: skip %pp unmap\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        return ERR_PTR(is_hardware_domain(domain) ? 0 : -EPERM);
-
-    case DEV_TYPE_PCIe_BRIDGE:
-    case DEV_TYPE_PCIe2PCI_BRIDGE:
-    case DEV_TYPE_LEGACY_PCI_BRIDGE:
-        return ERR_PTR(0);
-
-    case DEV_TYPE_PCIe_ENDPOINT:
-        if ( !iommu )
-            return ERR_PTR(-ENODEV);
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCIe: unmap %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        if ( !ret && devfn == pdev->devfn && ats_device(pdev, drhd) > 0 )
-            disable_ats_device(pdev);
-
-        break;
-
-    case DEV_TYPE_PCI:
-        if ( !iommu )
-            return ERR_PTR(-ENODEV);
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCI: unmap %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        if ( ret )
-            break;
-
-        tmp_bus = bus;
-        tmp_devfn = devfn;
-        if ( (ret = find_upstream_bridge(seg, &tmp_bus, &tmp_devfn,
-                                         &secbus)) < 1 )
-        {
-            if ( ret )
-            {
-                ret = -ENXIO;
-                if ( !domain->is_dying &&
-                     !is_hardware_domain(domain) && domain != dom_io )
-                {
-                    domain_crash(domain);
-                    /* Make upper layers continue in a best effort manner. */
-                    ret = 0;
-                }
-            }
-            break;
-        }
-
-        ret = domain_context_unmap_one(domain, iommu, tmp_bus, tmp_devfn);
-        /* PCIe to PCI/PCIx bridge */
-        if ( !ret && pdev_type(seg, tmp_bus, tmp_devfn) == DEV_TYPE_PCIe2PCI_BRIDGE )
-            ret = domain_context_unmap_one(domain, iommu, secbus, 0);
-
-        break;
-
-    default:
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n",
-                domain, pdev->type, &PCI_SBDF(seg, bus, devfn));
-        return ERR_PTR(-EINVAL);
-    }
-
-    if ( !ret && pdev->devfn == devfn &&
-         !QUARANTINE_SKIP(domain, pdev->arch.vtd.pgd_maddr) )
-        check_cleanup_domid_map(domain, pdev, iommu);
-
-    return drhd;
-}
-
-static void cf_check iommu_clear_root_pgtable(struct domain *d)
+static void cf_check iommu_clear_root_pgtable(struct domain *d, struct iommu_context *ctx)
 {
-    struct domain_iommu *hd = dom_iommu(d);
-
-    spin_lock(&hd->arch.mapping_lock);
-    hd->arch.vtd.pgd_maddr = 0;
-    spin_unlock(&hd->arch.mapping_lock);
+    ctx->arch.vtd.pgd_maddr = 0;
 }
 
 static void cf_check iommu_domain_teardown(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     const struct acpi_drhd_unit *drhd;
 
     if ( list_empty(&acpi_drhd_units) )
         return;
 
-    iommu_identity_map_teardown(d);
-
-    ASSERT(!hd->arch.vtd.pgd_maddr);
+    ASSERT(!ctx->arch.vtd.pgd_maddr);
 
     for_each_drhd_unit ( drhd )
         cleanup_domid_map(d->domain_id, drhd->iommu);
-
-    XFREE(hd->arch.vtd.iommu_bitmap);
-}
-
-static void quarantine_teardown(struct pci_dev *pdev,
-                                const struct acpi_drhd_unit *drhd)
-{
-    struct domain_iommu *hd = dom_iommu(dom_io);
-
-    ASSERT(pcidevs_locked());
-
-    if ( !pdev->arch.vtd.pgd_maddr )
-        return;
-
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
-    page_list_move(&hd->arch.pgtables.list, &pdev->arch.pgtables_list);
-    while ( iommu_free_pgtables(dom_io) == -ERESTART )
-        /* nothing */;
-    pdev->arch.vtd.pgd_maddr = 0;
-
-    if ( drhd )
-        cleanup_domid_map(pdev->arch.pseudo_domid, drhd->iommu);
 }
 
 static int __must_check cf_check intel_iommu_map_page(
     struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
-    unsigned int *flush_flags)
+    unsigned int *flush_flags, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct dma_pte *page, *pte, old, new = {};
@@ -2094,33 +1686,24 @@ static int __must_check cf_check intel_iommu_map_page(
     ASSERT((hd->platform_ops->page_sizes >> IOMMUF_order(flags)) &
            PAGE_SIZE_4K);
 
-    /* Do nothing if VT-d shares EPT page table */
-    if ( iommu_use_hap_pt(d) )
-        return 0;
-
-    /* Do nothing if hardware domain and iommu supports pass thru. */
-    if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
+    if ( ctx->opaque )
         return 0;
 
-    spin_lock(&hd->arch.mapping_lock);
-
     /*
      * IOMMU mapping request can be safely ignored when the domain is dying.
      *
-     * hd->arch.mapping_lock guarantees that d->is_dying will be observed
+     * hd->lock guarantees that d->is_dying will be observed
      * before any page tables are freed (see iommu_free_pgtables())
      */
     if ( d->is_dying )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         return 0;
     }
 
-    pg_maddr = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), level, flush_flags,
+    pg_maddr = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), level, flush_flags,
                                       true);
     if ( pg_maddr < PAGE_SIZE )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         return -ENOMEM;
     }
 
@@ -2141,7 +1724,6 @@ static int __must_check cf_check intel_iommu_map_page(
 
     if ( !((old.val ^ new.val) & ~DMA_PTE_CONTIG_MASK) )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -2170,7 +1752,7 @@ static int __must_check cf_check intel_iommu_map_page(
         new.val &= ~(LEVEL_MASK << level_to_offset_bits(level));
         dma_set_pte_superpage(new);
 
-        pg_maddr = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), ++level,
+        pg_maddr = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), ++level,
                                           flush_flags, false);
         BUG_ON(pg_maddr < PAGE_SIZE);
 
@@ -2180,11 +1762,10 @@ static int __must_check cf_check intel_iommu_map_page(
         iommu_sync_cache(pte, sizeof(*pte));
 
         *flush_flags |= IOMMU_FLUSHF_modified | IOMMU_FLUSHF_all;
-        iommu_queue_free_pgtable(hd, pg);
+        iommu_queue_free_pgtable(ctx, pg);
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_added;
@@ -2193,7 +1774,7 @@ static int __must_check cf_check intel_iommu_map_page(
         *flush_flags |= IOMMU_FLUSHF_modified;
 
         if ( IOMMUF_order(flags) && !dma_pte_superpage(old) )
-            queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(old)),
+            queue_free_pt(ctx, maddr_to_mfn(dma_pte_addr(old)),
                           IOMMUF_order(flags) / LEVEL_STRIDE);
     }
 
@@ -2201,7 +1782,8 @@ static int __must_check cf_check intel_iommu_map_page(
 }
 
 static int __must_check cf_check intel_iommu_unmap_page(
-    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags)
+    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags,
+    struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     daddr_t addr = dfn_to_daddr(dfn);
@@ -2215,29 +1797,19 @@ static int __must_check cf_check intel_iommu_unmap_page(
      */
     ASSERT((hd->platform_ops->page_sizes >> order) & PAGE_SIZE_4K);
 
-    /* Do nothing if VT-d shares EPT page table */
-    if ( iommu_use_hap_pt(d) )
+    if ( ctx->opaque )
         return 0;
 
-    /* Do nothing if hardware domain and iommu supports pass thru. */
-    if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
-        return 0;
-
-    spin_lock(&hd->arch.mapping_lock);
     /* get target level pte */
-    pg_maddr = addr_to_dma_page_maddr(d, addr, level, flush_flags, false);
+    pg_maddr = addr_to_dma_page_maddr(d, ctx, addr, level, flush_flags, false);
     if ( pg_maddr < PAGE_SIZE )
-    {
-        spin_unlock(&hd->arch.mapping_lock);
         return pg_maddr ? -ENOMEM : 0;
-    }
 
     page = map_vtd_domain_page(pg_maddr);
     pte = &page[address_level_offset(addr, level)];
 
     if ( !dma_pte_present(*pte) )
     {
-        spin_unlock(&hd->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -2255,7 +1827,7 @@ static int __must_check cf_check intel_iommu_unmap_page(
 
         unmap_vtd_domain_page(page);
 
-        pg_maddr = addr_to_dma_page_maddr(d, addr, level, flush_flags, false);
+        pg_maddr = addr_to_dma_page_maddr(d, ctx, addr, level, flush_flags, false);
         BUG_ON(pg_maddr < PAGE_SIZE);
 
         page = map_vtd_domain_page(pg_maddr);
@@ -2264,42 +1836,31 @@ static int __must_check cf_check intel_iommu_unmap_page(
         iommu_sync_cache(pte, sizeof(*pte));
 
         *flush_flags |= IOMMU_FLUSHF_all;
-        iommu_queue_free_pgtable(hd, pg);
+        iommu_queue_free_pgtable(ctx, pg);
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
-
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_modified;
 
     if ( order && !dma_pte_superpage(old) )
-        queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(old)),
+        queue_free_pt(ctx, maddr_to_mfn(dma_pte_addr(old)),
                       order / LEVEL_STRIDE);
 
     return 0;
 }
 
 static int cf_check intel_iommu_lookup_page(
-    struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags)
+    struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags,
+    struct iommu_context *ctx)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     uint64_t val;
 
-    /*
-     * If VT-d shares EPT page table or if the domain is the hardware
-     * domain and iommu_passthrough is set then pass back the dfn.
-     */
-    if ( iommu_use_hap_pt(d) ||
-         (iommu_hwdom_passthrough && is_hardware_domain(d)) )
+    if ( ctx->opaque )
         return -EOPNOTSUPP;
 
-    spin_lock(&hd->arch.mapping_lock);
-
-    val = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), 0, NULL, false);
-
-    spin_unlock(&hd->arch.mapping_lock);
+    val = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), 0, NULL, false);
 
     if ( val < PAGE_SIZE )
         return -ENOENT;
@@ -2320,7 +1881,7 @@ static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu)
 
     /* EPT is not initialised yet, so we must check the capability in
      * the MSR explicitly rather than use cpu_has_vmx_ept_*() */
-    if ( rdmsr_safe(MSR_IA32_VMX_EPT_VPID_CAP, ept_cap) != 0 ) 
+    if ( rdmsr_safe(MSR_IA32_VMX_EPT_VPID_CAP, ept_cap) != 0 )
         return false;
 
     return (ept_has_2mb(ept_cap) && opt_hap_2mb) <=
@@ -2329,44 +1890,6 @@ static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu)
             (cap_sps_1gb(vtd_cap) && iommu_superpages);
 }
 
-static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
-{
-    struct acpi_rmrr_unit *rmrr;
-    u16 bdf;
-    int ret, i;
-
-    ASSERT(pcidevs_locked());
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == pdev->seg && bdf == PCI_BDF(pdev->bus, devfn) )
-        {
-            /*
-             * iommu_add_device() is only called for the hardware
-             * domain (see xen/drivers/passthrough/pci.c:pci_add_device()).
-             * Since RMRRs are always reserved in the e820 map for the hardware
-             * domain, there shouldn't be a conflict.
-             */
-            ret = iommu_identity_mapping(pdev->domain, p2m_access_rw,
-                                         rmrr->base_address, rmrr->end_address,
-                                         0);
-            if ( ret )
-                dprintk(XENLOG_ERR VTDPREFIX, "%pd: RMRR mapping failed\n",
-                        pdev->domain);
-        }
-    }
-
-    ret = domain_context_mapping(pdev->domain, devfn, pdev);
-    if ( ret )
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd: context mapping failed\n",
-                pdev->domain);
-
-    return ret;
-}
-
 static int cf_check intel_iommu_enable_device(struct pci_dev *pdev)
 {
     struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
@@ -2382,49 +1905,16 @@ static int cf_check intel_iommu_enable_device(struct pci_dev *pdev)
     return ret >= 0 ? 0 : ret;
 }
 
-static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
-{
-    const struct acpi_drhd_unit *drhd;
-    struct acpi_rmrr_unit *rmrr;
-    u16 bdf;
-    unsigned int i;
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    drhd = domain_context_unmap(pdev->domain, devfn, pdev);
-    if ( IS_ERR(drhd) )
-        return PTR_ERR(drhd);
-
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        if ( rmrr->segment != pdev->seg || bdf != PCI_BDF(pdev->bus, devfn) )
-            continue;
-
-        /*
-         * Any flag is nothing to clear these mappings but here
-         * its always safe and strict to set 0.
-         */
-        iommu_identity_mapping(pdev->domain, p2m_access_x, rmrr->base_address,
-                               rmrr->end_address, 0);
-    }
-
-    quarantine_teardown(pdev, drhd);
-
-    if ( drhd )
-    {
-        iommu_free_domid(pdev->arch.pseudo_domid,
-                         drhd->iommu->pseudo_domid_map);
-        pdev->arch.pseudo_domid = DOMID_INVALID;
-    }
-
-    return 0;
-}
-
 static int __hwdom_init cf_check setup_hwdom_device(
     u8 devfn, struct pci_dev *pdev)
 {
-    return domain_context_mapping(pdev->domain, devfn, pdev);
+    if (pdev->type == DEV_TYPE_PCI_HOST_BRIDGE ||
+        pdev->type == DEV_TYPE_PCIe_BRIDGE ||
+        pdev->type == DEV_TYPE_PCIe2PCI_BRIDGE ||
+        pdev->type == DEV_TYPE_LEGACY_PCI_BRIDGE)
+        return 0;
+
+    return iommu_attach_context(hardware_domain, pdev, 0);
 }
 
 void clear_fault_bits(struct vtd_iommu *iommu)
@@ -2518,7 +2008,7 @@ static int __must_check init_vtd_hw(bool resume)
 
     /*
      * Enable queue invalidation
-     */   
+     */
     for_each_drhd_unit ( drhd )
     {
         iommu = drhd->iommu;
@@ -2539,7 +2029,7 @@ static int __must_check init_vtd_hw(bool resume)
 
     /*
      * Enable interrupt remapping
-     */  
+     */
     if ( iommu_intremap != iommu_intremap_off )
     {
         int apic;
@@ -2594,34 +2084,53 @@ static int __must_check init_vtd_hw(bool resume)
     return iommu_flush_all();
 }
 
-static void __hwdom_init setup_hwdom_rmrr(struct domain *d)
+static struct iommu_state {
+    uint32_t fectl;
+} *__read_mostly iommu_state;
+
+static void arch_iommu_dump_domain_contexts(struct domain *d)
 {
-    struct acpi_rmrr_unit *rmrr;
-    u16 bdf;
-    int ret, i;
+    unsigned int i, iommu_no;
+    struct pci_dev *pdev;
+    struct iommu_context *ctx;
+    struct domain_iommu *hd = dom_iommu(d);
 
-    pcidevs_lock();
-    for_each_rmrr_device ( rmrr, bdf, i )
+    printk("d%hu contexts\n", d->domain_id);
+
+    for (i = 0; i < (1 + hd->other_contexts.count); ++i)
     {
-        /*
-         * Here means we're add a device to the hardware domain.
-         * Since RMRRs are always reserved in the e820 map for the hardware
-         * domain, there shouldn't be a conflict. So its always safe and
-         * strict to set 0.
-         */
-        ret = iommu_identity_mapping(d, p2m_access_rw, rmrr->base_address,
-                                     rmrr->end_address, 0);
-        if ( ret )
-            dprintk(XENLOG_ERR VTDPREFIX,
-                     "IOMMU: mapping reserved region failed\n");
+        if ( (ctx = iommu_get_context(d, i)) )
+        {
+            printk(" Context %d (%"PRIx64")\n", i, ctx->arch.vtd.pgd_maddr);
+
+            for (iommu_no = 0; iommu_no < nr_iommus; iommu_no++)
+                printk("  IOMMU %hu (used=%u; did=%hu)\n", iommu_no,
+                       test_bit(iommu_no, ctx->arch.vtd.iommu_bitmap),
+                       ctx->arch.vtd.didmap[iommu_no]);
+
+            list_for_each_entry(pdev, &ctx->devices, context_list)
+            {
+                printk("  - %pp\n", &pdev->sbdf);
+            }
+
+            iommu_put_context(ctx);
+        }
     }
-    pcidevs_unlock();
 }
 
-static struct iommu_state {
-    uint32_t fectl;
-} *__read_mostly iommu_state;
+static void arch_iommu_dump_contexts(unsigned char key)
+{
+    struct domain *d;
 
+    for_each_domain(d)
+        if (is_iommu_enabled(d)) {
+            struct domain_iommu *hd = dom_iommu(d);
+            printk("d%hu arena page usage: %d\n", d->domain_id,
+                atomic_read(&hd->arch.pt_arena.used_pages));
+
+            arch_iommu_dump_domain_contexts(d);
+        }
+}
 static int __init cf_check vtd_setup(void)
 {
     struct acpi_drhd_unit *drhd;
@@ -2749,6 +2258,7 @@ static int __init cf_check vtd_setup(void)
     iommu_ops.page_sizes |= large_sizes;
 
     register_keyhandler('V', vtd_dump_iommu_info, "dump iommu info", 1);
+    register_keyhandler('X', arch_iommu_dump_contexts, "dump iommu contexts", 1);
 
     return 0;
 
@@ -2763,192 +2273,6 @@ static int __init cf_check vtd_setup(void)
     return ret;
 }
 
-static int cf_check reassign_device_ownership(
-    struct domain *source,
-    struct domain *target,
-    u8 devfn, struct pci_dev *pdev)
-{
-    int ret;
-
-    if ( !QUARANTINE_SKIP(target, pdev->arch.vtd.pgd_maddr) )
-    {
-        if ( !has_arch_pdevs(target) )
-            vmx_pi_hooks_assign(target);
-
-#ifdef CONFIG_PV
-        /*
-         * Devices assigned to untrusted domains (here assumed to be any domU)
-         * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
-         * by the root complex unless interrupt remapping is enabled.
-         */
-        if ( !iommu_intremap && !is_hardware_domain(target) &&
-             !is_system_domain(target) )
-            untrusted_msi = true;
-#endif
-
-        ret = domain_context_mapping(target, devfn, pdev);
-
-        if ( !ret && pdev->devfn == devfn &&
-             !QUARANTINE_SKIP(source, pdev->arch.vtd.pgd_maddr) )
-        {
-            const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-
-            if ( drhd )
-                check_cleanup_domid_map(source, pdev, drhd->iommu);
-        }
-    }
-    else
-    {
-        const struct acpi_drhd_unit *drhd;
-
-        drhd = domain_context_unmap(source, devfn, pdev);
-        ret = IS_ERR(drhd) ? PTR_ERR(drhd) : 0;
-    }
-    if ( ret )
-    {
-        if ( !has_arch_pdevs(target) )
-            vmx_pi_hooks_deassign(target);
-        return ret;
-    }
-
-    if ( devfn == pdev->devfn && pdev->domain != target )
-    {
-        write_lock(&source->pci_lock);
-        list_del(&pdev->domain_list);
-        write_unlock(&source->pci_lock);
-
-        pdev->domain = target;
-
-        write_lock(&target->pci_lock);
-        list_add(&pdev->domain_list, &target->pdev_list);
-        write_unlock(&target->pci_lock);
-    }
-
-    if ( !has_arch_pdevs(source) )
-        vmx_pi_hooks_deassign(source);
-
-    /*
-     * If the device belongs to the hardware domain, and it has RMRR, don't
-     * remove it from the hardware domain, because BIOS may use RMRR at
-     * booting time.
-     */
-    if ( !is_hardware_domain(source) )
-    {
-        const struct acpi_rmrr_unit *rmrr;
-        u16 bdf;
-        unsigned int i;
-
-        for_each_rmrr_device( rmrr, bdf, i )
-            if ( rmrr->segment == pdev->seg &&
-                 bdf == PCI_BDF(pdev->bus, devfn) )
-            {
-                /*
-                 * Any RMRR flag is always ignored when remove a device,
-                 * but its always safe and strict to set 0.
-                 */
-                ret = iommu_identity_mapping(source, p2m_access_x,
-                                             rmrr->base_address,
-                                             rmrr->end_address, 0);
-                if ( ret && ret != -ENOENT )
-                    return ret;
-            }
-    }
-
-    return 0;
-}
-
-static int cf_check intel_iommu_assign_device(
-    struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag)
-{
-    struct domain *s = pdev->domain;
-    struct acpi_rmrr_unit *rmrr;
-    int ret = 0, i;
-    u16 bdf, seg;
-    u8 bus;
-
-    if ( list_empty(&acpi_drhd_units) )
-        return -ENODEV;
-
-    seg = pdev->seg;
-    bus = pdev->bus;
-    /*
-     * In rare cases one given rmrr is shared by multiple devices but
-     * obviously this would put the security of a system at risk. So
-     * we would prevent from this sort of device assignment. But this
-     * can be permitted if user set
-     *      "pci = [ 'sbdf, rdm_policy=relaxed' ]"
-     *
-     * TODO: in the future we can introduce group device assignment
-     * interface to make sure devices sharing RMRR are assigned to the
-     * same domain together.
-     */
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) &&
-             rmrr->scope.devices_cnt > 1 )
-        {
-            bool relaxed = flag & XEN_DOMCTL_DEV_RDM_RELAXED;
-
-            printk(XENLOG_GUEST "%s" VTDPREFIX
-                   " It's %s to assign %pp"
-                   " with shared RMRR at %"PRIx64" for %pd.\n",
-                   relaxed ? XENLOG_WARNING : XENLOG_ERR,
-                   relaxed ? "risky" : "disallowed",
-                   &PCI_SBDF(seg, bus, devfn), rmrr->base_address, d);
-            if ( !relaxed )
-                return -EPERM;
-        }
-    }
-
-    if ( d == dom_io )
-        return reassign_device_ownership(s, d, devfn, pdev);
-
-    /* Setup rmrr identity mapping */
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
-        {
-            ret = iommu_identity_mapping(d, p2m_access_rw, rmrr->base_address,
-                                         rmrr->end_address, flag);
-            if ( ret )
-            {
-                printk(XENLOG_G_ERR VTDPREFIX
-                       "%pd: cannot map reserved region [%"PRIx64",%"PRIx64"]: %d\n",
-                       d, rmrr->base_address, rmrr->end_address, ret);
-                break;
-            }
-        }
-    }
-
-    if ( !ret )
-        ret = reassign_device_ownership(s, d, devfn, pdev);
-
-    /* See reassign_device_ownership() for the hwdom aspect. */
-    if ( !ret || is_hardware_domain(d) )
-        return ret;
-
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
-        {
-            int rc = iommu_identity_mapping(d, p2m_access_x,
-                                            rmrr->base_address,
-                                            rmrr->end_address, 0);
-
-            if ( rc && rc != -ENOENT )
-            {
-                printk(XENLOG_ERR VTDPREFIX
-                       "%pd: cannot unmap reserved region [%"PRIx64",%"PRIx64"]: %d\n",
-                       d, rmrr->base_address, rmrr->end_address, rc);
-                domain_crash(d);
-                break;
-            }
-        }
-    }
-
-    return ret;
-}
-
 static int cf_check intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 {
     u8 secbus;
@@ -3073,6 +2397,11 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
     if ( level < 1 )
         return;
 
+    if (pt_maddr == 0) {
+        printk(" (empty)\n");
+        return;
+    }
+
     pt_vaddr = map_vtd_domain_page(pt_maddr);
 
     next_level = level - 1;
@@ -3103,158 +2432,374 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
 
 static void cf_check vtd_dump_page_tables(struct domain *d)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned int i;
 
-    printk(VTDPREFIX" %pd table has %d levels\n", d,
+    printk(VTDPREFIX " %pd table has %d levels\n", d,
            agaw_to_level(hd->arch.vtd.agaw));
-    vtd_dump_page_table_level(hd->arch.vtd.pgd_maddr,
-                              agaw_to_level(hd->arch.vtd.agaw), 0, 0);
+
+    for (i = 1; i < (1 + hd->other_contexts.count); ++i)
+    {
+        struct iommu_context *ctx = iommu_get_context(d, i);
+
+        printk(VTDPREFIX " %pd context %d: %s\n", d, i,
+               ctx ? "allocated" : "non-allocated");
+
+        if (ctx)
+        {
+            vtd_dump_page_table_level(ctx->arch.vtd.pgd_maddr,
+                                      agaw_to_level(hd->arch.vtd.agaw), 0, 0);
+            iommu_put_context(ctx);
+        }
+    }
 }
 
-static int fill_qpt(struct dma_pte *this, unsigned int level,
-                    struct page_info *pgs[6])
+static int intel_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    unsigned int i;
-    int rc = 0;
+    struct acpi_drhd_unit *drhd;
+
+    ctx->arch.vtd.didmap = xzalloc_array(u16, nr_iommus);
 
-    for ( i = 0; !rc && i < PTE_NUM; ++i )
+    if ( !ctx->arch.vtd.didmap )
+        return -ENOMEM;
+
+    ctx->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
+                                               BITS_TO_LONGS(nr_iommus));
+    if ( !ctx->arch.vtd.iommu_bitmap )
+        return -ENOMEM;
+
+    ctx->arch.vtd.superpage_progress = 0;
+
+    if ( flags & IOMMU_CONTEXT_INIT_default )
     {
-        struct dma_pte *pte = &this[i], *next;
+        ctx->arch.vtd.pgd_maddr = 0;
 
-        if ( !dma_pte_present(*pte) )
+        /*
+         * Context is considered "opaque" (non-managed) in these cases :
+         *  - HAP is enabled, in this case, the pagetable is not managed by the
+         *    IOMMU code, thus opaque
+         *  - IOMMU is in passthrough which means that there is no actual pagetable
+         *
+         * If no-dma mode is specified, it's always non-opaque as the pagetable is
+         * always managed regardless of the rest.
+         */
+        ctx->arch.hap_context = !iommu_hwdom_no_dma && (iommu_use_hap_pt(d) || iommu_hwdom_passthrough);
+
+        ctx->opaque = ctx->arch.hap_context;
+
+        /* Populate context DID map using domain id. */
+        for_each_drhd_unit(drhd)
         {
-            if ( !pgs[level] )
-            {
-                /*
-                 * The pgtable allocator is fine for the leaf page, as well as
-                 * page table pages, and the resulting allocations are always
-                 * zeroed.
-                 */
-                pgs[level] = iommu_alloc_pgtable(hd, 0);
-                if ( !pgs[level] )
-                {
-                    rc = -ENOMEM;
-                    break;
-                }
-
-                if ( level )
-                {
-                    next = map_vtd_domain_page(page_to_maddr(pgs[level]));
-                    rc = fill_qpt(next, level - 1, pgs);
-                    unmap_vtd_domain_page(next);
-                }
-            }
+            ctx->arch.vtd.didmap[drhd->iommu->index] =
+                convert_domid(drhd->iommu, d->domain_id);
+        }
+    }
+    else
+    {
+        /* Populate context DID map using pseudo DIDs */
+        for_each_drhd_unit(drhd)
+        {
+            ctx->arch.vtd.didmap[drhd->iommu->index] =
+                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
+        }
+    }
 
-            dma_set_pte_addr(*pte, page_to_maddr(pgs[level]));
-            dma_set_pte_readable(*pte);
-            dma_set_pte_writable(*pte);
+    if ( !ctx->opaque )
+        /* Create initial context page */
+        addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
+
+    return arch_iommu_context_init(d, ctx, flags);
+}
+
+static int intel_iommu_cleanup_pte(uint64_t pte_maddr, bool preempt)
+{
+    size_t i;
+    struct dma_pte *pte = map_vtd_domain_page(pte_maddr);
+
+    for (i = 0; i < (1 << PAGETABLE_ORDER); ++i)
+        if ( dma_pte_present(pte[i]) )
+        {
+            /* Remove the reference of the target mapping (if needed) */
+            mfn_t mfn = maddr_to_mfn(dma_pte_addr(pte[i]));
+
+            if ( mfn_valid(mfn) )
+                put_page(mfn_to_page(mfn));
+
+            if ( preempt )
+                dma_clear_pte(pte[i]);
         }
-        else if ( level && !dma_pte_superpage(*pte) )
+
+    unmap_vtd_domain_page(pte);
+
+    return 0;
+}
+
+/**
+ * Cleanup logic :
+ * Walk through the entire page table, progressively removing mappings if preempt.
+ *
+ * Return values :
+ *  - Report preemption with -ERESTART.
+ *  - Report empty pte/pgd with 0.
+ *
+ * When preempted during superpage operation, store state in vtd.superpage_progress.
+ */
+
+static int intel_iommu_cleanup_superpage(struct iommu_context *ctx,
+                                          unsigned int page_order, uint64_t pte_maddr,
+                                          bool preempt)
+{
+    size_t i = 0, page_count = 1 << page_order;
+    struct page_info *page = maddr_to_page(pte_maddr);
+
+    if ( preempt )
+        i = ctx->arch.vtd.superpage_progress;
+
+    for (; i < page_count; page++)
+    {
+        put_page(page);
+
+        if ( preempt && (i & 0xff) && general_preempt_check() )
         {
-            next = map_vtd_domain_page(dma_pte_addr(*pte));
-            rc = fill_qpt(next, level - 1, pgs);
-            unmap_vtd_domain_page(next);
+            ctx->arch.vtd.superpage_progress = i + 1;
+            return -ERESTART;
         }
     }
 
-    return rc;
+    if ( preempt )
+        ctx->arch.vtd.superpage_progress = 0;
+
+    return 0;
 }
 
-static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
-                                                bool scratch_page)
+static int intel_iommu_cleanup_mappings(struct iommu_context *ctx,
+                                         unsigned int nr_pt_levels, uint64_t pgd_maddr,
+                                         bool preempt)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    struct page_info *pg;
-    unsigned int agaw = hd->arch.vtd.agaw;
-    unsigned int level = agaw_to_level(agaw);
-    const struct acpi_drhd_unit *drhd;
-    const struct acpi_rmrr_unit *rmrr;
-    unsigned int i, bdf;
-    bool rmrr_found = false;
+    size_t i;
     int rc;
+    struct dma_pte *pgd;
 
-    ASSERT(pcidevs_locked());
-    ASSERT(!hd->arch.vtd.pgd_maddr);
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
+    if ( ctx->opaque )
+        /* don't touch opaque contexts */
+        return 0;
+
+    pgd = map_vtd_domain_page(pgd_maddr);
 
-    if ( pdev->arch.vtd.pgd_maddr )
+    for (i = 0; i < (1 << PAGETABLE_ORDER); ++i)
     {
-        clear_domain_page(pdev->arch.leaf_mfn);
-        return 0;
+        if ( dma_pte_present(pgd[i]) )
+        {
+            uint64_t pte_maddr = dma_pte_addr(pgd[i]);
+
+            if ( dma_pte_superpage(pgd[i]) )
+                rc = intel_iommu_cleanup_superpage(ctx, nr_pt_levels * SUPERPAGE_ORDER,
+                                                   pte_maddr, preempt);
+            else if ( nr_pt_levels > 2 )
+                /* Next level is not PTE */
+                rc = intel_iommu_cleanup_mappings(ctx, nr_pt_levels - 1,
+                                                  pte_maddr, preempt);
+            else
+                rc = intel_iommu_cleanup_pte(pte_maddr, preempt);
+
+            if ( preempt && !rc )
+                /* Fold pgd (no more mappings in it) */
+                dma_clear_pte(pgd[i]);
+            else if ( preempt && (rc == -ERESTART || general_preempt_check()) )
+            {
+                unmap_vtd_domain_page(pgd);
+                return -ERESTART;
+            }
+        }
     }
 
-    drhd = acpi_find_matched_drhd_unit(pdev);
-    if ( !drhd )
-        return -ENODEV;
+    unmap_vtd_domain_page(pgd);
 
-    pg = iommu_alloc_pgtable(hd, 0);
-    if ( !pg )
-        return -ENOMEM;
+    return 0;
+}
 
-    rc = context_set_domain_id(NULL, pdev->arch.pseudo_domid, drhd->iommu);
+static int intel_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    struct acpi_drhd_unit *drhd;
+    pcidevs_lock();
 
-    /* Transiently install the root into DomIO, for iommu_identity_mapping(). */
-    hd->arch.vtd.pgd_maddr = page_to_maddr(pg);
+    // Cleanup mappings
+    if ( intel_iommu_cleanup_mappings(ctx, agaw_to_level(d->iommu.arch.vtd.agaw),
+                                      ctx->arch.vtd.pgd_maddr,
+                                      flags & IOMMUF_preempt) < 0 )
+    {
+        pcidevs_unlock();
+        return -ERESTART;
+    }
 
-    for_each_rmrr_device ( rmrr, bdf, i )
+    if (ctx->arch.vtd.didmap)
     {
-        if ( rc )
-            break;
+        for_each_drhd_unit(drhd)
+        {
+            iommu_free_domid(ctx->arch.vtd.didmap[drhd->iommu->index],
+                drhd->iommu->pseudo_domid_map);
+        }
+
+        xfree(ctx->arch.vtd.didmap);
+    }
 
-        if ( rmrr->segment == pdev->seg && bdf == pdev->sbdf.bdf )
+    pcidevs_unlock();
+    return arch_iommu_context_teardown(d, ctx, flags);
+}
+
+static int intel_iommu_dev_rmrr(struct domain *d, struct pci_dev *pdev,
+                                struct iommu_context *ctx, bool unmap)
+{
+    struct acpi_rmrr_unit *rmrr;
+    u16 bdf;
+    int ret, i;
+
+    for_each_rmrr_device(rmrr, bdf, i)
+    {
+        if ( PCI_SBDF(rmrr->segment, bdf).sbdf == pdev->sbdf.sbdf )
         {
-            rmrr_found = true;
-
-            rc = iommu_identity_mapping(dom_io, p2m_access_rw,
-                                        rmrr->base_address, rmrr->end_address,
-                                        0);
-            if ( rc )
-                printk(XENLOG_ERR VTDPREFIX
-                       "%pp: RMRR quarantine mapping failed\n",
-                       &pdev->sbdf);
+            ret = iommu_identity_mapping(d, ctx,
+                                         unmap ? p2m_access_x : p2m_access_rw,
+                                         rmrr->base_address, rmrr->end_address,
+                                         0);
+
+            if ( ret < 0 )
+                return ret;
         }
     }
 
-    iommu_identity_map_teardown(dom_io);
-    hd->arch.vtd.pgd_maddr = 0;
-    pdev->arch.vtd.pgd_maddr = page_to_maddr(pg);
+    return 0;
+}
 
-    if ( !rc && scratch_page )
+static int intel_iommu_attach(struct domain *d, struct pci_dev *pdev,
+                              struct iommu_context *ctx)
+{
+    int ret;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
+
+    if ( !ctx->opaque || ctx->arch.hap_context )
     {
-        struct dma_pte *root;
-        struct page_info *pgs[6] = {};
+        ret = intel_iommu_dev_rmrr(d, pdev, ctx, false);
+
+        if ( ret )
+            return ret;
+    }
+
+    ret = apply_context(d, ctx, pdev, pdev->devfn);
+
+    if ( ret )
+        return ret;
+
+    pci_vtd_quirk(pdev);
+
+    return ret;
+}
+
+static int intel_iommu_detach(struct domain *d, struct pci_dev *pdev,
+                              struct iommu_context *prev_ctx)
+{
+    int ret;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
+
+    ret = unapply_context_single(d, drhd->iommu, pdev->bus, pdev->devfn);
+
+    if ( ret )
+        return ret;
+
+    if ( !prev_ctx->opaque || prev_ctx->arch.hap_context )
+        WARN_ON(intel_iommu_dev_rmrr(d, pdev, prev_ctx, true));
+
+    check_cleanup_domid_map(d, prev_ctx, NULL, drhd->iommu);
+
+    return ret;
+}
 
-        root = map_vtd_domain_page(pdev->arch.vtd.pgd_maddr);
-        rc = fill_qpt(root, level - 1, pgs);
-        unmap_vtd_domain_page(root);
+static int intel_iommu_reattach(struct domain *d, struct pci_dev *pdev,
+                                struct iommu_context *prev_ctx,
+                                struct iommu_context *ctx)
+{
+    int ret;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
 
-        pdev->arch.leaf_mfn = page_to_mfn(pgs[0]);
+    if ( !ctx->opaque || ctx->arch.hap_context )
+    {
+        ret = intel_iommu_dev_rmrr(d, pdev, ctx, false);
+
+        if ( ret )
+            return ret;
     }
 
-    page_list_move(&pdev->arch.pgtables_list, &hd->arch.pgtables.list);
+    ret = apply_context_single(d, ctx, drhd->iommu, pdev->bus, pdev->devfn);
+
+    if ( ret )
+        return ret;
 
-    if ( rc || (!scratch_page && !rmrr_found) )
-        quarantine_teardown(pdev, drhd);
+    if ( !prev_ctx->opaque || prev_ctx->arch.hap_context )
+        WARN_ON(intel_iommu_dev_rmrr(d, pdev, prev_ctx, true));
 
-    return rc;
+    /* We are overwriting an entry, cleanup previous domid if needed. */
+    check_cleanup_domid_map(d, prev_ctx, pdev, drhd->iommu);
+
+    pci_vtd_quirk(pdev);
+
+    return ret;
+}
+
+static int intel_iommu_add_devfn(struct domain *d, struct pci_dev *pdev,
+                                 u16 devfn, struct iommu_context *ctx)
+{
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
+
+    return apply_context(d, ctx, pdev, devfn);
+}
+
+static int intel_iommu_remove_devfn(struct domain *d, struct pci_dev *pdev,
+                                    u16 devfn)
+{
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if (!pdev || !drhd)
+        return -EINVAL;
+
+    return unapply_context_single(d, drhd->iommu, pdev->bus, devfn);
+}
+
+static uint64_t intel_iommu_get_max_iova(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    return (1LLU << agaw_to_width(hd->arch.vtd.agaw)) - 1;
 }
 
 static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .page_sizes = PAGE_SIZE_4K,
     .init = intel_iommu_domain_init,
     .hwdom_init = intel_iommu_hwdom_init,
-    .quarantine_init = intel_iommu_quarantine_init,
-    .add_device = intel_iommu_add_device,
+    .context_init = intel_iommu_context_init,
+    .context_teardown = intel_iommu_context_teardown,
+    .attach = intel_iommu_attach,
+    .detach = intel_iommu_detach,
+    .reattach = intel_iommu_reattach,
+    .add_devfn = intel_iommu_add_devfn,
+    .remove_devfn = intel_iommu_remove_devfn,
     .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,
-    .reassign_device = reassign_device_ownership,
     .get_device_group_id = intel_iommu_group_id,
     .enable_x2apic = intel_iommu_enable_eim,
     .disable_x2apic = intel_iommu_disable_eim,
@@ -3269,6 +2814,7 @@ static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .iotlb_flush = iommu_flush_iotlb,
     .get_reserved_device_memory = intel_iommu_get_reserved_device_memory,
     .dump_page_tables = vtd_dump_page_tables,
+    .get_max_iova = intel_iommu_get_max_iova,
 };
 
 const struct iommu_init_ops __initconstrel intel_iommu_init_ops = {
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 950dcd56ef..568a1a06d5 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -408,9 +408,8 @@ void __init platform_quirks_init(void)
 
 static int __must_check map_me_phantom_function(struct domain *domain,
                                                 unsigned int dev,
-                                                domid_t domid,
-                                                paddr_t pgd_maddr,
-                                                unsigned int mode)
+                                                unsigned int mode,
+                                                struct iommu_context *ctx)
 {
     struct acpi_drhd_unit *drhd;
     struct pci_dev *pdev;
@@ -422,18 +421,17 @@ static int __must_check map_me_phantom_function(struct domain *domain,
 
     /* map or unmap ME phantom function */
     if ( !(mode & UNMAP_ME_PHANTOM_FUNC) )
-        rc = domain_context_mapping_one(domain, drhd->iommu, 0,
-                                        PCI_DEVFN(dev, 7), NULL,
-                                        domid, pgd_maddr, mode);
+        rc = apply_context_single(domain, ctx, drhd->iommu, 0,
+                                  PCI_DEVFN(dev, 7));
     else
-        rc = domain_context_unmap_one(domain, drhd->iommu, 0,
-                                      PCI_DEVFN(dev, 7));
+        rc = unapply_context_single(domain, drhd->iommu, 0, PCI_DEVFN(dev, 7));
 
     return rc;
 }
 
 int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
-                  domid_t domid, paddr_t pgd_maddr, unsigned int mode)
+                  domid_t domid, unsigned int mode,
+                  struct iommu_context *ctx)
 {
     u32 id;
     int rc = 0;
@@ -457,7 +455,7 @@ int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
             case 0x423b8086:
             case 0x423c8086:
             case 0x423d8086:
-                rc = map_me_phantom_function(domain, 3, domid, pgd_maddr, mode);
+                rc = map_me_phantom_function(domain, 3, mode, ctx);
                 break;
             default:
                 break;
@@ -483,7 +481,7 @@ int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
             case 0x42388086:        /* Puma Peak */
             case 0x422b8086:
             case 0x422c8086:
-                rc = map_me_phantom_function(domain, 22, domid, pgd_maddr, mode);
+                rc = map_me_phantom_function(domain, 22, mode, ctx);
                 break;
             default:
                 break;
diff --git a/xen/drivers/passthrough/x86/Makefile b/xen/drivers/passthrough/x86/Makefile
index 75b2885336..1614f3d284 100644
--- a/xen/drivers/passthrough/x86/Makefile
+++ b/xen/drivers/passthrough/x86/Makefile
@@ -1,2 +1,3 @@
 obj-y += iommu.o
+obj-y += arena.o
 obj-$(CONFIG_HVM) += hvm.o
diff --git a/xen/drivers/passthrough/x86/arena.c b/xen/drivers/passthrough/x86/arena.c
new file mode 100644
index 0000000000..984bc4d643
--- /dev/null
+++ b/xen/drivers/passthrough/x86/arena.c
@@ -0,0 +1,157 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/**
+ * Simple arena-based page allocator.
+ *
+ * Allocate a large block using alloc_domheam_pages and allocate single pages
+ * using iommu_arena_allocate_page and iommu_arena_free_page functions.
+ *
+ * Concurrent {allocate/free}_page is thread-safe
+ * iommu_arena_teardown during {allocate/free}_page is not thread-safe.
+ *
+ * Written by Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#include <asm/bitops.h>
+#include <asm/page.h>
+#include <xen/atomic.h>
+#include <xen/bug.h>
+#include <xen/config.h>
+#include <xen/mm-frame.h>
+#include <xen/mm.h>
+#include <xen/xmalloc.h>
+
+#include <asm/arena.h>
+
+/* Maximum of scan tries if the bit found not available */
+#define ARENA_TSL_MAX_TRIES 5
+
+int iommu_arena_initialize(struct iommu_arena *arena, struct domain *d,
+                           unsigned int order, unsigned int memflags)
+{
+    struct page_info *page;
+
+    /* TODO: Maybe allocate differently ? */
+    page = alloc_domheap_pages(d, order, memflags);
+
+    if ( !page )
+        return -ENOMEM;
+
+    arena->map = xzalloc_array(unsigned long, BITS_TO_LONGS(1LLU << order));
+    arena->order = order;
+    arena->region_start = page_to_mfn(page);
+
+    _atomic_set(&arena->used_pages, 0);
+    bitmap_zero(arena->map, iommu_arena_size(arena));
+
+    printk(XENLOG_DEBUG "IOMMU: Allocated arena (%llu pages, start=%"PRI_mfn")\n",
+           iommu_arena_size(arena), mfn_x(arena->region_start));
+    return 0;
+}
+
+int iommu_arena_teardown(struct iommu_arena *arena, bool check)
+{
+    BUG_ON(mfn_x(arena->region_start) == 0);
+
+    /* Check for allocations if check is specified */
+    if ( check && (atomic_read(&arena->used_pages) > 0) )
+        return -EBUSY;
+
+    free_domheap_pages(mfn_to_page(arena->region_start), arena->order);
+
+    arena->region_start = _mfn(0);
+    _atomic_set(&arena->used_pages, 0);
+    xfree(arena->map);
+    arena->map = NULL;
+
+    return 0;
+}
+
+struct page_info *iommu_arena_allocate_page(struct iommu_arena *arena)
+{
+    unsigned int index;
+    unsigned int tsl_tries = 0;
+
+    BUG_ON(mfn_x(arena->region_start) == 0);
+
+    if ( atomic_read(&arena->used_pages) == iommu_arena_size(arena) )
+        /* All pages used */
+        return NULL;
+
+    do
+    {
+        index = find_first_zero_bit(arena->map, iommu_arena_size(arena));
+
+        if ( index >= iommu_arena_size(arena) )
+            /* No more free pages */
+            return NULL;
+
+        /*
+         * While there shouldn't be a lot of retries in practice, this loop
+         * *may* run indefinetly if the found bit is never free due to being
+         * overwriten by another CPU core right after. Add a safeguard for
+         * such very rare cases.
+         */
+        tsl_tries++;
+
+        if ( unlikely(tsl_tries == ARENA_TSL_MAX_TRIES) )
+        {
+            printk(XENLOG_ERR "ARENA: Too many TSL retries !");
+            return NULL;
+        }
+
+        /* Make sure that the bit we found is still free */
+    } while ( test_and_set_bit(index, arena->map) );
+
+    atomic_inc(&arena->used_pages);
+
+    return mfn_to_page(mfn_add(arena->region_start, index));
+}
+
+bool iommu_arena_free_page(struct iommu_arena *arena, struct page_info *page)
+{
+    unsigned long index;
+    mfn_t frame;
+
+    if ( !page )
+    {
+        printk(XENLOG_WARNING "IOMMU: Trying to free NULL page");
+        WARN();
+        return false;
+    }
+
+    frame = page_to_mfn(page);
+
+    /* Check if page belongs to our arena */
+    if ( (mfn_x(frame) < mfn_x(arena->region_start))
+        || (mfn_x(frame) >= (mfn_x(arena->region_start) + iommu_arena_size(arena))) )
+    {
+        printk(XENLOG_WARNING
+               "IOMMU: Trying to free outside arena region [mfn=%"PRI_mfn"]",
+               mfn_x(frame));
+        WARN();
+        return false;
+    }
+
+    index = mfn_x(frame) - mfn_x(arena->region_start);
+
+    /* Sanity check in case of underflow. */
+    ASSERT(index < iommu_arena_size(arena));
+
+    if ( !test_and_clear_bit(index, arena->map) )
+    {
+        /*
+         * Bit was free during our arena_free_page, which means that
+         * either this page was never allocated, or we are in a double-free
+         * situation.
+         */
+        printk(XENLOG_WARNING
+               "IOMMU: Freeing non-allocated region (double-free?) [mfn=%"PRI_mfn"]",
+               mfn_x(frame));
+        WARN();
+        return false;
+    }
+
+    atomic_dec(&arena->used_pages);
+
+    return true;
+}
\ No newline at end of file
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 8b1e0596b8..849f57c1ce 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -12,6 +12,12 @@
  * this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/keyhandler.h>
+#include <xen/lib.h>
+#include <xen/pci.h>
+#include <xen/bitmap.h>
+#include <xen/list.h>
+#include <xen/mm.h>
 #include <xen/cpu.h>
 #include <xen/sched.h>
 #include <xen/iocap.h>
@@ -28,6 +34,10 @@
 #include <asm/mem_paging.h>
 #include <asm/pt-contig-markers.h>
 #include <asm/setup.h>
+#include <asm/iommu.h>
+#include <asm/arena.h>
+#include <asm/page.h>
+#include <asm/p2m.h>
 
 const struct iommu_init_ops *__initdata iommu_init_ops;
 struct iommu_ops __ro_after_init iommu_ops;
@@ -183,19 +193,66 @@ void __hwdom_init arch_iommu_check_autotranslated_hwdom(struct domain *d)
         panic("PVH hardware domain iommu must be set in 'strict' mode\n");
 }
 
-int arch_iommu_domain_init(struct domain *d)
+int arch_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    INIT_PAGE_LIST_HEAD(&ctx->arch.pgtables);
+    INIT_PAGE_LIST_HEAD(&ctx->arch.free_queue);
+    INIT_LIST_HEAD(&ctx->arch.identity_maps);
+
+    return 0;
+}
+
+int arch_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    /* Cleanup all page tables */
+    while ( iommu_free_pgtables(d, ctx) == -ERESTART )
+        /* nothing */;
+
+    return 0;
+}
+
+int arch_iommu_flush_free_queue(struct domain *d, struct iommu_context *ctx)
+{
+    struct page_info *pg;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    while ( (pg = page_list_remove_head(&ctx->arch.free_queue)) )
+        iommu_arena_free_page(&hd->arch.pt_arena, pg);
+
+    return 0;
+}
+
+int arch_iommu_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( arena_order == 0 )
+        return 0;
+
+    return iommu_arena_initialize(&hd->arch.pt_arena, NULL, arena_order, 0);
+}
+
+int arch_iommu_pviommu_teardown(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
-    spin_lock_init(&hd->arch.mapping_lock);
+    if ( iommu_arena_teardown(&hd->arch.pt_arena, true) )
+    {
+        printk(XENLOG_WARNING "IOMMU Arena used while being destroyed\n");
+        WARN();
 
-    INIT_PAGE_LIST_HEAD(&hd->arch.pgtables.list);
-    spin_lock_init(&hd->arch.pgtables.lock);
-    INIT_LIST_HEAD(&hd->arch.identity_maps);
+        /* Teardown anyway */
+        iommu_arena_teardown(&hd->arch.pt_arena, false);
+    }
 
     return 0;
 }
 
+int arch_iommu_domain_init(struct domain *d)
+{
+    return 0;
+}
+
 void arch_iommu_domain_destroy(struct domain *d)
 {
     /*
@@ -203,8 +260,9 @@ void arch_iommu_domain_destroy(struct domain *d)
      * domain is destroyed. Note that arch_iommu_domain_destroy() is
      * called unconditionally, so pgtables may be uninitialized.
      */
-    ASSERT(!dom_iommu(d)->platform_ops ||
-           page_list_empty(&dom_iommu(d)->arch.pgtables.list));
+    struct domain_iommu *hd = dom_iommu(d);
+
+    ASSERT(!hd->platform_ops);
 }
 
 struct identity_map {
@@ -214,32 +272,104 @@ struct identity_map {
     unsigned int count;
 };
 
-int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
-                           paddr_t base, paddr_t end,
+static int unmap_identity_region(struct domain *d, struct iommu_context *ctx,
+                                 unsigned int base_pfn, unsigned int end_pfn)
+{
+    int ret = 0;
+
+    if ( ctx->arch.hap_context )
+    {
+        this_cpu(iommu_dont_flush_iotlb) = true;
+        while ( base_pfn < end_pfn )
+        {
+            if ( p2m_remove_identity_entry(d, base_pfn) )
+                ret = -ENXIO;
+
+            base_pfn++;
+        }
+        this_cpu(iommu_dont_flush_iotlb) = false;
+    }
+    else
+    {
+        size_t page_count = end_pfn - base_pfn + 1;
+        unsigned int flush_flags;
+
+        ret = iommu_unmap(d, _dfn(base_pfn), page_count, 0, &flush_flags,
+                          ctx->id);
+
+        if ( ret )
+            return ret;
+
+        ret = iommu_iotlb_flush(d, _dfn(base_pfn), page_count,
+                                flush_flags, ctx->id);
+    }
+
+    return ret;
+}
+
+static int map_identity_region(struct domain *d, struct iommu_context *ctx,
+                               unsigned int base_pfn, unsigned int end_pfn,
+                               p2m_access_t p2ma, unsigned int flag)
+{
+    int ret = 0;
+    unsigned int flush_flags = 0;
+    size_t page_count = end_pfn - base_pfn + 1;
+
+    if ( ctx->arch.hap_context )
+    {
+        this_cpu(iommu_dont_flush_iotlb) = true;
+        while ( base_pfn < end_pfn )
+        {
+            ret = p2m_add_identity_entry(d, base_pfn, p2ma, flag);
+
+            if ( ret )
+            {
+                this_cpu(iommu_dont_flush_iotlb) = false;
+                return ret;
+            }
+
+            base_pfn++;
+        }
+        this_cpu(iommu_dont_flush_iotlb) = false;
+    }
+    else
+    {
+        ret = iommu_map(d, _dfn(base_pfn), _mfn(base_pfn), page_count,
+                        p2m_access_to_iommu_flags(p2ma), &flush_flags,
+                        ctx->id);
+
+        if ( ret )
+            return ret;
+    }
+
+    ret = iommu_iotlb_flush(d, _dfn(base_pfn), page_count, flush_flags,
+                            ctx->id);
+
+    return ret;
+}
+
+/* p2m_access_x removes the mapping */
+int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
+                           p2m_access_t p2ma, paddr_t base, paddr_t end,
                            unsigned int flag)
 {
     unsigned long base_pfn = base >> PAGE_SHIFT_4K;
     unsigned long end_pfn = PAGE_ALIGN_4K(end) >> PAGE_SHIFT_4K;
     struct identity_map *map;
-    struct domain_iommu *hd = dom_iommu(d);
+    int ret = 0;
 
     ASSERT(pcidevs_locked());
     ASSERT(base < end);
 
-    /*
-     * No need to acquire hd->arch.mapping_lock: Both insertion and removal
-     * get done while holding pcidevs_lock.
-     */
-    list_for_each_entry( map, &hd->arch.identity_maps, list )
+    list_for_each_entry( map, &ctx->arch.identity_maps, list )
     {
         if ( map->base == base && map->end == end )
         {
-            int ret = 0;
-
             if ( p2ma != p2m_access_x )
             {
                 if ( map->access != p2ma )
                     return -EADDRINUSE;
+
                 ++map->count;
                 return 0;
             }
@@ -247,12 +377,9 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
             if ( --map->count )
                 return 0;
 
-            while ( base_pfn < end_pfn )
-            {
-                if ( clear_identity_p2m_entry(d, base_pfn) )
-                    ret = -ENXIO;
-                base_pfn++;
-            }
+            printk("Unmapping [%"PRI_mfn"x:%"PRI_mfn"] for d%dc%d\n", base_pfn, end_pfn,
+                   d->domain_id, ctx->id);
+            ret = unmap_identity_region(d, ctx, base_pfn, end_pfn);
 
             list_del(&map->list);
             xfree(map);
@@ -271,47 +398,43 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
     if ( !map )
         return -ENOMEM;
 
-    map->base = base;
-    map->end = end;
-    map->access = p2ma;
-    map->count = 1;
-
-    /*
-     * Insert into list ahead of mapping, so the range can be found when
-     * trying to clean up.
-     */
-    list_add_tail(&map->list, &hd->arch.identity_maps);
+    printk("Mapping [%"PRI_mfn"x:%"PRI_mfn"] for d%dc%d\n", base_pfn, end_pfn,
+           d->domain_id, ctx->id);
+    ret = map_identity_region(d, ctx, base_pfn, end_pfn, p2ma, flag);
 
-    for ( ; base_pfn < end_pfn; ++base_pfn )
+    if ( ret )
     {
-        int err = set_identity_p2m_entry(d, base_pfn, p2ma, flag);
-
-        if ( !err )
-            continue;
-
-        if ( (map->base >> PAGE_SHIFT_4K) == base_pfn )
-        {
-            list_del(&map->list);
-            xfree(map);
-        }
-        return err;
+        xfree(map);
+        return ret;
     }
 
     return 0;
 }
 
-void iommu_identity_map_teardown(struct domain *d)
+void iommu_identity_map_teardown(struct domain *d, struct iommu_context *ctx)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     struct identity_map *map, *tmp;
 
-    list_for_each_entry_safe ( map, tmp, &hd->arch.identity_maps, list )
+    list_for_each_entry_safe ( map, tmp, &ctx->arch.identity_maps, list )
     {
         list_del(&map->list);
         xfree(map);
     }
 }
 
+bool iommu_identity_map_check(struct domain *d, struct iommu_context *ctx,
+                              mfn_t mfn)
+{
+    struct identity_map *map;
+    uint64_t addr = pfn_to_paddr(mfn_x(mfn));
+
+    list_for_each_entry ( map, &ctx->arch.identity_maps, list )
+        if (addr >= map->base && addr < map->end)
+            return true;
+
+    return false;
+}
+
 static int __hwdom_init cf_check map_subtract(unsigned long s, unsigned long e,
                                               void *data)
 {
@@ -369,7 +492,7 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
             if ( iomem_access_permitted(d, s, s) )
             {
                 rc = iommu_map(d, _dfn(s), _mfn(s), 1, perms,
-                               &info->flush_flags);
+                               &info->flush_flags, 0);
                 if ( rc < 0 )
                     break;
                 /* Must map a frame at least, which is what we request for. */
@@ -379,7 +502,7 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
             s++;
         }
         while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
-                                perms, &info->flush_flags)) > 0 )
+                                perms, &info->flush_flags, 0)) > 0 )
         {
             s += rc;
             process_pending_softirqs();
@@ -408,6 +531,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( iommu_hwdom_reserved == -1 )
         iommu_hwdom_reserved = 1;
 
+    if ( iommu_hwdom_no_dma )
+        /* Skip special mappings with no-dma mode */
+        return;
+
     if ( iommu_hwdom_inclusive )
     {
         printk(XENLOG_WARNING
@@ -545,7 +672,6 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 
 void arch_pci_init_pdev(struct pci_dev *pdev)
 {
-    pdev->arch.pseudo_domid = DOMID_INVALID;
 }
 
 unsigned long *__init iommu_init_domid(domid_t reserve)
@@ -576,8 +702,6 @@ domid_t iommu_alloc_domid(unsigned long *map)
     static unsigned int start;
     unsigned int idx = find_next_zero_bit(map, UINT16_MAX - DOMID_MASK, start);
 
-    ASSERT(pcidevs_locked());
-
     if ( idx >= UINT16_MAX - DOMID_MASK )
         idx = find_first_zero_bit(map, UINT16_MAX - DOMID_MASK);
     if ( idx >= UINT16_MAX - DOMID_MASK )
@@ -603,7 +727,7 @@ void iommu_free_domid(domid_t domid, unsigned long *map)
         BUG();
 }
 
-int iommu_free_pgtables(struct domain *d)
+int iommu_free_pgtables(struct domain *d, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct page_info *pg;
@@ -612,18 +736,18 @@ int iommu_free_pgtables(struct domain *d)
     if ( !is_iommu_enabled(d) )
         return 0;
 
-    /* After this barrier, no new IOMMU mappings can be inserted. */
-    spin_barrier(&hd->arch.mapping_lock);
-
     /*
      * Pages will be moved to the free list below. So we want to
      * clear the root page-table to avoid any potential use after-free.
      */
-    iommu_vcall(hd->platform_ops, clear_root_pgtable, d);
+    iommu_vcall(hd->platform_ops, clear_root_pgtable, d, ctx);
 
-    while ( (pg = page_list_remove_head(&hd->arch.pgtables.list)) )
+    while ( (pg = page_list_remove_head(&ctx->arch.pgtables)) )
     {
-        free_domheap_page(pg);
+        if (ctx->id == 0)
+            free_domheap_page(pg);
+        else
+            iommu_arena_free_page(&hd->arch.pt_arena, pg);
 
         if ( !(++done & 0xff) && general_preempt_check() )
             return -ERESTART;
@@ -633,6 +757,7 @@ int iommu_free_pgtables(struct domain *d)
 }
 
 struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
+                                      struct iommu_context *ctx,
                                       uint64_t contig_mask)
 {
     unsigned int memflags = 0;
@@ -644,7 +769,11 @@ struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
         memflags = MEMF_node(hd->node);
 #endif
 
-    pg = alloc_domheap_page(NULL, memflags);
+    if (ctx->id == 0)
+        pg = alloc_domheap_page(NULL, memflags);
+    else
+        pg = iommu_arena_allocate_page(&hd->arch.pt_arena);
+
     if ( !pg )
         return NULL;
 
@@ -677,9 +806,7 @@ struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
 
     unmap_domain_page(p);
 
-    spin_lock(&hd->arch.pgtables.lock);
-    page_list_add(pg, &hd->arch.pgtables.list);
-    spin_unlock(&hd->arch.pgtables.lock);
+    page_list_add(pg, &ctx->arch.pgtables);
 
     return pg;
 }
@@ -718,17 +845,20 @@ static void cf_check free_queued_pgtables(void *arg)
     }
 }
 
-void iommu_queue_free_pgtable(struct domain_iommu *hd, struct page_info *pg)
+void iommu_queue_free_pgtable(struct iommu_context *ctx, struct page_info *pg)
 {
     unsigned int cpu = smp_processor_id();
 
-    spin_lock(&hd->arch.pgtables.lock);
-    page_list_del(pg, &hd->arch.pgtables.list);
-    spin_unlock(&hd->arch.pgtables.lock);
+    page_list_del(pg, &ctx->arch.pgtables);
 
-    page_list_add_tail(pg, &per_cpu(free_pgt_list, cpu));
+    if ( !ctx->id )
+    {
+        page_list_add_tail(pg, &per_cpu(free_pgt_list, cpu));
 
-    tasklet_schedule(&per_cpu(free_pgt_tasklet, cpu));
+        tasklet_schedule(&per_cpu(free_pgt_tasklet, cpu));
+    }
+    else
+        page_list_add_tail(pg, &ctx->arch.free_queue);
 }
 
 static int cf_check cpu_callback(
-- 
2.45.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 Nov 04 14:28:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 14:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830028.1244946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7y4U-0006cj-Rv; Mon, 04 Nov 2024 14:28:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830028.1244946; Mon, 04 Nov 2024 14:28: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 1t7y4U-0006bX-LG; Mon, 04 Nov 2024 14:28:46 +0000
Received: by outflank-mailman (input) for mailman id 830028;
 Mon, 04 Nov 2024 14:28: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=eU59=R7=bounce.vates.tech=bounce-md_30504962.6728da16.v1-c73bd8112cf84b748d25877597e6fecd@srs-se1.protection.inumbo.net>)
 id 1t7y4U-0006XR-4Y
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 14:28:46 +0000
Received: from mail128-130.atl41.mandrillapp.com
 (mail128-130.atl41.mandrillapp.com [198.2.128.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16330b5d-9ab9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 15:28:41 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xhv3B0fpxzS62J3L
 for <xen-devel@lists.xenproject.org>; Mon,  4 Nov 2024 14:28:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c73bd8112cf84b748d25877597e6fecd; Mon, 04 Nov 2024 14:28: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: 16330b5d-9ab9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEyOC4xMzAiLCJoZWxvIjoibWFpbDEyOC0xMzAuYXRsNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE2MzMwYjVkLTlhYjktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzMwNTIxLjQxOTQ3OSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MjhkYTE2LnYxLWM3M2JkODExMmNmODRiNzQ4ZDI1ODc3NTk3ZTZmZWNkQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730730518; x=1730991018;
	bh=lagNsxIirOQVnbaqxV6zpDUMQQ7gHdhShgfs5hmfEI0=;
	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=S7A4OsWV+sxjicgIdSRTyrIEEzbaoXMma9Txhytr6cDZsrDqTcPWOcp3FtNpWtyB0
	 wrznw//qrv6UJrxXyqDLznlE38HVPXq5koIVcee3r3XSL7sPae7ljJMYbqy3jNBer1
	 /N8+JJ2wZWDc/S/DOo8im1bky3B3PxzHT9qxqgUKO9VJgs5kCPGCusy1r+1ZUkL2xt
	 PBIquYwbrVUVMxvinzF6W4XdFKPhOzqGPEM2FuYDWp+2SPriyHYUz0n0hyEfU0iMQD
	 pdNeGDZSEqvtISeBv1kRmuxpz03IU22LV4m95O03Sm+PEDvsxwW3FQggBqpISglRhQ
	 PDA0hvjUZyrBQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730730518; x=1730991018; i=teddy.astie@vates.tech;
	bh=lagNsxIirOQVnbaqxV6zpDUMQQ7gHdhShgfs5hmfEI0=;
	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=YrsxMLV2wloinoEvmT7QtNKKZDMO5jbrL8a768H5MRY7ttNZ59GEiz4YsCa+ncm0/
	 bx1g68l61TlGw3GTaMWzbccoIqnZZA1uyjSMOJGj0TmErJtwBHXLZ3SfDgENlolvp5
	 IaMCI9uTnhFYJ471xnodHP1Dx24Sr8L4SQoVbFHoGG4eASG3IeGiDjG43ndAejnYkN
	 JE34CRCmFdBePn0jYgVc27j/rcGlRNM35fmKZ+irSeon4L4Nqk6iklc5vwxK4l2uoY
	 uTfWZ3BJFyRWaEJAxR6tbkzRrgvs87570lLnEuGYOyCYn5nlO/nuOOswqlMJC7io2S
	 cjt5xa95yl4/A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[XEN=20RFC=20PATCH=20v4=201/5]=20docs/designs:=20Add=20a=20design=20document=20for=20PV-IOMMU?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730730517125
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <787ca634b46c582dad04ab1cc93c840c4f739fa7.1730718102.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1730718102.git.teddy.astie@vates.tech>
References: <cover.1730718102.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.c73bd8112cf84b748d25877597e6fecd?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241104:md
Date: Mon, 04 Nov 2024 14:28:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Some operating systems want to use IOMMU to implement various features (e.g
VFIO) or DMA protection.
This patch introduce a proposal for IOMMU paravirtualization for Dom0.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changes in v4:
* added init and remote_op commands
---
 docs/designs/pv-iommu.md | 116 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 116 insertions(+)
 create mode 100644 docs/designs/pv-iommu.md

diff --git a/docs/designs/pv-iommu.md b/docs/designs/pv-iommu.md
new file mode 100644
index 0000000000..7df9fa0b94
--- /dev/null
+++ b/docs/designs/pv-iommu.md
@@ -0,0 +1,116 @@
+# IOMMU paravirtualization for Dom0
+
+Status: Experimental
+
+# Background
+
+By default, Xen only uses the IOMMU for itself, either to make device adress
+space coherent with guest adress space (x86 HVM/PVH) or to prevent devices
+from doing DMA outside it's expected memory regions including the hypervisor
+(x86 PV).
+
+A limitation is that guests (especially privildged ones) may want to use
+IOMMU hardware in order to implement features such as DMA protection and
+VFIO [1] as IOMMU functionality is not available outside of the hypervisor
+currently.
+
+[1] VFIO - "Virtual Function I/O" - https://www.kernel.org/doc/html/latest/driver-api/vfio.html
+
+# Design
+
+The operating system may want to have access to various IOMMU features such as
+context management and DMA remapping. We can create a new hypercall that allows
+the guest to have access to a new paravirtualized IOMMU interface.
+
+This feature is only meant to be available for the Dom0, as DomU have some
+emulated devices that can't be managed on Xen side and are not hardware, we
+can't rely on the hardware IOMMU to enforce DMA remapping.
+
+This interface is exposed under the `iommu_op` hypercall.
+
+In addition, Xen domains are modified in order to allow existence of several
+IOMMU context including a default one that implement default behavior (e.g
+hardware assisted paging) and can't be modified by guest. DomU cannot have
+contexts, and therefore act as if they only have the default domain.
+
+Each IOMMU context within a Xen domain is identified using a domain-specific
+context number that is used in the Xen IOMMU subsystem and the hypercall
+interface.
+
+The number of IOMMU context a domain is specified by either the toolstack or
+the domain itself.
+
+# IOMMU operations
+
+## Initialize PV-IOMMU
+
+Initialize PV-IOMMU for the domain.
+It can only be called once.
+
+## Alloc context
+
+Create a new IOMMU context for the guest and return the context number to the
+guest.
+Fail if the IOMMU context limit of the guest is reached.
+
+A flag can be specified to create a identity mapping.
+
+## Free context
+
+Destroy a IOMMU context created previously.
+It is not possible to free the default context.
+
+Reattach context devices to default context if specified by the guest.
+
+Fail if there is a device in the context and reattach-to-default flag is not
+specified.
+
+## Reattach device
+
+Reattach a device to another IOMMU context (including the default one).
+The target IOMMU context number must be valid and the context allocated.
+
+The guest needs to specify a PCI SBDF of a device he has access to.
+
+## Map/unmap page
+
+Map/unmap a page on a context.
+The guest needs to specify a gfn and target dfn to map.
+
+Refuse to create the mapping if one already exist for the same dfn.
+
+## Lookup page
+
+Get the gfn mapped by a specific dfn.
+
+## Remote command
+
+Make a PV-IOMMU operation on behalf of another domain.
+Especially useful for implementing IOMMU emulation (e.g using QEMU)
+or initializing PV-IOMMU with enforced limits.
+
+# Implementation considerations
+
+## Hypercall batching
+
+In order to prevent unneeded hypercalls and IOMMU flushing, it is advisable to
+be able to batch some critical IOMMU operations (e.g map/unmap multiple pages).
+
+## Hardware without IOMMU support
+
+Operating system needs to be aware on PV-IOMMU capability, and whether it is
+able to make contexts. However, some operating system may critically fail in
+case they are able to make a new IOMMU context. Which is supposed to happen
+if no IOMMU hardware is available.
+
+The hypercall interface needs a interface to advertise the ability to create
+and manage IOMMU contexts including the amount of context the guest is able
+to use. Using these informations, the Dom0 may decide whether to use or not
+the PV-IOMMU interface.
+
+## Page pool for contexts
+
+In order to prevent unexpected starving on the hypervisor memory with a
+buggy Dom0. We can preallocate the pages the contexts will use and make
+map/unmap use these pages instead of allocating them dynamically.
+
-- 
2.45.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 Nov 04 14:28:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 14:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830032.1244989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7y4e-0007qf-41; Mon, 04 Nov 2024 14:28:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830032.1244989; Mon, 04 Nov 2024 14: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 1t7y4d-0007qT-VN; Mon, 04 Nov 2024 14:28:55 +0000
Received: by outflank-mailman (input) for mailman id 830032;
 Mon, 04 Nov 2024 14:28: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=niIz=R7=bounce.vates.tech=bounce-md_30504962.6728da18.v1-36a973ef59514c5cbf8aa254c699b842@srs-se1.protection.inumbo.net>)
 id 1t7y4c-0006XR-2C
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 14:28:54 +0000
Received: from mail128-130.atl41.mandrillapp.com
 (mail128-130.atl41.mandrillapp.com [198.2.128.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b40930e-9ab9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 15:28:48 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xhv3D4G02zS62JQV
 for <xen-devel@lists.xenproject.org>; Mon,  4 Nov 2024 14:28:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 36a973ef59514c5cbf8aa254c699b842; Mon, 04 Nov 2024 14:28: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: 1b40930e-9ab9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEyOC4xMzAiLCJoZWxvIjoibWFpbDEyOC0xMzAuYXRsNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFiNDA5MzBlLTlhYjktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzMwNTI5LjMyMDgyNiwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MjhkYTE4LnYxLTM2YTk3M2VmNTk1MTRjNWNiZjhhYTI1NGM2OTliODQyQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730730520; x=1730991020;
	bh=Kyd63pm5tWlMUH5uImPW51PgJdSmFGMcOx/Jd6O3W+s=;
	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=DPd7QUNkBJnnSnpBFRdIzHz+RCDXAoSHPQ9RwtXHgMv1BMbLa33eVTbSD/XrssN74
	 YTaCyJyXZWdSG1Je2JAhPmh9HyoJvzzO1c3ynpNDPi890T5l+S63Vm0qDn3FCgScf6
	 0y0s1lDmg4XdnXPqF35SnCQ5Hc3gTASauzP+ikGXIg9mnmNQ8yjv+WgM9V33Lb11LK
	 bx+Qa//sE7zqExEpdAVEyv8PcIqpryPpA6EaezhOg+xCHq6JH+j+2MG4UWKRfRXnbR
	 nXOY0e2SwFa4Tz1Pgpj9oMcwllk4SPl2rgMsIRH39vUQGuky3Q01jWtNiLKaSH78zz
	 I/Feg5U0rRGmg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730730520; x=1730991020; i=teddy.astie@vates.tech;
	bh=Kyd63pm5tWlMUH5uImPW51PgJdSmFGMcOx/Jd6O3W+s=;
	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=AS6jTlGgbtL9ymzO+aNbkTM1yRnpdYNd+0i/tArmokIisYmvTkAJpCic62R0CdMCi
	 fb69rYZOedVZBKdqDihyOvQOUni3C/SUxrA05dWPSkPOn2BdCKs0AwBBOYS8CMFf8x
	 ddj9uPdaV3LPXiyRgl7uxtZb9AfqI18bkrRM4ius299udvq6309K9mWQGmEem5DumU
	 uWDzxdS67ceY+5zqEQUwgzgAn2mEGUL9ZCsrKuiez28n2bqNfzoCCQ0WLGpwJKfiQp
	 aEfrCGRk9cCL1aMpwJ2NaIOgG5mUXD2Aivc/EcLX+SlrbcmUotrOCMIoyL8cujjaGO
	 5qKDSjeojL/Vw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[XEN=20RFC=20PATCH=20v4=203/5]=20IOMMU:=20Introduce=20redesigned=20IOMMU=20subsystem?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730730517889
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>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Lukasz Hawrylko" <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, =?utf-8?Q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Message-Id: <648b935db05782d672c5b422c0e3ee63c5d70a89.1730718102.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1730718102.git.teddy.astie@vates.tech>
References: <cover.1730718102.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.36a973ef59514c5cbf8aa254c699b842?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241104:md
Date: Mon, 04 Nov 2024 14:28:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Based on docs/designs/iommu-contexts.md, implement the redesigned IOMMU subsystem.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in V2:
* cleanup some unneeded includes
* fix dangling devices in context on detach

Changed in V3:
* add unlocked _iommu_lookup_page
* iommu_check_context+iommu_get_context -> iommu_get_context and check for NULL
* prevent IOMMU operations on dying contexts

Changed in V4:
* changed context lock logic : iommu_get_context -> iommu_get_context+iommu_put_context
* added no-dma mode (see cover letter)
* use new initialization logic
---
 xen/arch/x86/domain.c                |   2 +-
 xen/arch/x86/mm/p2m-ept.c            |   2 +-
 xen/arch/x86/pv/dom0_build.c         |   4 +-
 xen/arch/x86/tboot.c                 |   4 +-
 xen/common/memory.c                  |   4 +-
 xen/drivers/passthrough/Makefile     |   3 +
 xen/drivers/passthrough/context.c    | 711 +++++++++++++++++++++++++++
 xen/drivers/passthrough/iommu.c      | 396 ++++++---------
 xen/drivers/passthrough/pci.c        | 117 +----
 xen/drivers/passthrough/quarantine.c |  49 ++
 xen/include/xen/iommu.h              | 117 ++++-
 xen/include/xen/pci.h                |   3 +
 12 files changed, 1032 insertions(+), 380 deletions(-)
 create mode 100644 xen/drivers/passthrough/context.c
 create mode 100644 xen/drivers/passthrough/quarantine.c

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 89aad7e897..abd9c79274 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2391,7 +2391,7 @@ int domain_relinquish_resources(struct domain *d)
 
     PROGRESS(iommu_pagetables):
 
-        ret = iommu_free_pgtables(d);
+        ret = iommu_free_pgtables(d, iommu_default_context(d));
         if ( ret )
             return ret;
 
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index 21728397f9..5ddeefb826 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -974,7 +974,7 @@ out:
             rc = iommu_iotlb_flush(d, _dfn(gfn), 1ul << order,
                                    (iommu_flags ? IOMMU_FLUSHF_added : 0) |
                                    (vtd_pte_present ? IOMMU_FLUSHF_modified
-                                                    : 0));
+                                                    : 0), 0);
         else if ( need_iommu_pt_sync(d) )
             rc = iommu_flags ?
                 iommu_legacy_map(d, _dfn(gfn), mfn, 1ul << order, iommu_flags) :
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 262edb6bf2..a6685b6b44 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -76,7 +76,7 @@ static __init void mark_pv_pt_pages_rdonly(struct domain *d,
          * iommu_memory_setup() ended up mapping them.
          */
         if ( need_iommu_pt_sync(d) &&
-             iommu_unmap(d, _dfn(mfn_x(page_to_mfn(page))), 1, 0, flush_flags) )
+             iommu_unmap(d, _dfn(mfn_x(page_to_mfn(page))), 1, 0, flush_flags, 0) )
             BUG();
 
         /* Read-only mapping + PGC_allocated + page-table page. */
@@ -127,7 +127,7 @@ static void __init iommu_memory_setup(struct domain *d, const char *what,
 
     while ( (rc = iommu_map(d, _dfn(mfn_x(mfn)), mfn, nr,
                             IOMMUF_readable | IOMMUF_writable | IOMMUF_preempt,
-                            flush_flags)) > 0 )
+                            flush_flags, 0)) > 0 )
     {
         mfn = mfn_add(mfn, rc);
         nr -= rc;
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index d5db60d335..25a5a66412 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -218,9 +218,9 @@ static void tboot_gen_domain_integrity(const uint8_t key[TB_KEY_SIZE],
 
         if ( is_iommu_enabled(d) && is_vtd )
         {
-            const struct domain_iommu *dio = dom_iommu(d);
+            struct domain_iommu *dio = dom_iommu(d);
 
-            update_iommu_mac(&ctx, dio->arch.vtd.pgd_maddr,
+            update_iommu_mac(&ctx, iommu_default_context(d)->arch.vtd.pgd_maddr,
                              agaw_to_level(dio->arch.vtd.agaw));
         }
     }
diff --git a/xen/common/memory.c b/xen/common/memory.c
index a6f2f6d1b3..acf305bcd0 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -926,7 +926,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
         this_cpu(iommu_dont_flush_iotlb) = 0;
 
         ret = iommu_iotlb_flush(d, _dfn(xatp->idx - done), done,
-                                IOMMU_FLUSHF_modified);
+                                IOMMU_FLUSHF_modified, 0);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
 
@@ -940,7 +940,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
             put_page(pages[i]);
 
         ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - done), done,
-                                IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified);
+                                IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified, 0);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
     }
diff --git a/xen/drivers/passthrough/Makefile b/xen/drivers/passthrough/Makefile
index a1621540b7..69327080ab 100644
--- a/xen/drivers/passthrough/Makefile
+++ b/xen/drivers/passthrough/Makefile
@@ -4,6 +4,9 @@ obj-$(CONFIG_X86) += x86/
 obj-$(CONFIG_ARM) += arm/
 
 obj-y += iommu.o
+obj-y += context.o
+obj-y += quarantine.o
+
 obj-$(CONFIG_HAS_PCI) += pci.o
 obj-$(CONFIG_HAS_DEVICE_TREE) += device_tree.o
 obj-$(CONFIG_HAS_PCI) += ats.o
diff --git a/xen/drivers/passthrough/context.c b/xen/drivers/passthrough/context.c
new file mode 100644
index 0000000000..edf660b617
--- /dev/null
+++ b/xen/drivers/passthrough/context.c
@@ -0,0 +1,711 @@
+/*
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <xen/iommu.h>
+#include <xen/event.h>
+#include <xen/sched.h>
+#include <xen/spinlock.h>
+#include <xen/bitops.h>
+#include <xen/bitmap.h>
+
+bool iommu_check_context(struct domain *d, u16 ctx_no) {
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if (ctx_no == 0)
+        return 1; /* Default context always exist. */
+
+    if ((ctx_no - 1) >= hd->other_contexts.count)
+        return 0; /* out of bounds */
+
+    return test_bit(ctx_no - 1, hd->other_contexts.bitmap);
+}
+
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_no) {
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    if ( !iommu_check_context(d, ctx_no) )
+        return NULL;
+
+    if (ctx_no == 0)
+        ctx = &hd->default_ctx;
+    else
+        ctx = &hd->other_contexts.map[ctx_no - 1];
+
+    rspin_lock(&ctx->lock);
+    /* Check if the context is still valid at this point */
+    if ( unlikely(!iommu_check_context(d, ctx_no)) )
+    {
+        /* Context has been destroyed in between */
+        rspin_unlock(&ctx->lock);
+        return NULL;
+    }
+
+    return ctx;
+}
+
+void iommu_put_context(struct iommu_context *ctx)
+{
+    rspin_unlock(&ctx->lock);
+}
+
+static unsigned int mapping_order(const struct domain_iommu *hd,
+                                  dfn_t dfn, mfn_t mfn, unsigned long nr)
+{
+    unsigned long res = dfn_x(dfn) | mfn_x(mfn);
+    unsigned long sizes = hd->platform_ops->page_sizes;
+    unsigned int bit = ffsl(sizes) - 1, order = 0;
+
+    ASSERT(bit == PAGE_SHIFT);
+
+    while ( (sizes = (sizes >> bit) & ~1) )
+    {
+        unsigned long mask;
+
+        bit = ffsl(sizes) - 1;
+        mask = (1UL << bit) - 1;
+        if ( nr <= mask || (res & mask) )
+            break;
+        order += bit;
+        nr >>= bit;
+        res >>= bit;
+    }
+
+    return order;
+}
+
+static long _iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
+                       unsigned long page_count, unsigned int flags,
+                       unsigned int *flush_flags, struct iommu_context *ctx)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned long i;
+    unsigned int order, j = 0;
+    int rc = 0;
+
+    if ( !is_iommu_enabled(d) )
+        return 0;
+
+    ASSERT(!IOMMUF_order(flags));
+
+    for ( i = 0; i < page_count; i += 1UL << order )
+    {
+        dfn_t dfn = dfn_add(dfn0, i);
+        mfn_t mfn = mfn_add(mfn0, i);
+
+        order = mapping_order(hd, dfn, mfn, page_count - i);
+
+        if ( (flags & IOMMUF_preempt) &&
+             ((!(++j & 0xfff) && general_preempt_check()) ||
+              i > LONG_MAX - (1UL << order)) )
+            return i;
+
+        rc = iommu_call(hd->platform_ops, map_page, d, dfn, mfn,
+                        flags | IOMMUF_order(order), flush_flags, ctx);
+
+        if ( likely(!rc) )
+            continue;
+
+        if ( !d->is_shutting_down && printk_ratelimit() )
+            printk(XENLOG_ERR
+                   "d%d: IOMMU mapping dfn %"PRI_dfn" to mfn %"PRI_mfn" failed: %d\n",
+                   d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
+
+        /* while statement to satisfy __must_check */
+        while ( iommu_unmap(d, dfn0, i, 0, flush_flags, ctx->id) )
+            break;
+
+        if ( !ctx->id && !is_hardware_domain(d) )
+            domain_crash(d);
+
+        break;
+    }
+
+    /*
+     * Something went wrong so, if we were dealing with more than a single
+     * page, flush everything and clear flush flags.
+     */
+    if ( page_count > 1 && unlikely(rc) &&
+         !iommu_iotlb_flush_all(d, *flush_flags) )
+        *flush_flags = 0;
+
+    return rc;
+}
+
+long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
+               unsigned long page_count, unsigned int flags,
+               unsigned int *flush_flags, u16 ctx_no)
+{
+    struct iommu_context *ctx;
+    long ret;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    ret = _iommu_map(d, dfn0, mfn0, page_count, flags, flush_flags, ctx);
+
+    iommu_put_context(ctx);
+
+    return ret;
+}
+
+int iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
+                     unsigned long page_count, unsigned int flags)
+{
+    struct iommu_context *ctx;
+    unsigned int flush_flags = 0;
+    int rc = 0;
+
+    ASSERT(!(flags & IOMMUF_preempt));
+
+    if ( dom_iommu(d)->no_dma )
+        return 0;
+
+    ctx = iommu_get_context(d, 0);
+
+    if ( !ctx->opaque )
+    {
+        rc = iommu_map(d, dfn, mfn, page_count, flags, &flush_flags, 0);
+
+        if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
+            rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags, 0);
+    }
+
+    iommu_put_context(ctx);
+
+    return rc;
+}
+
+static long _iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
+                         unsigned int flags, unsigned int *flush_flags,
+                         struct iommu_context *ctx)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned long i;
+    unsigned int order, j = 0;
+    int rc = 0;
+
+    if ( !is_iommu_enabled(d) )
+        return 0;
+
+    ASSERT(!(flags & ~IOMMUF_preempt));
+
+    for ( i = 0; i < page_count; i += 1UL << order )
+    {
+        dfn_t dfn = dfn_add(dfn0, i);
+        int err;
+
+        order = mapping_order(hd, dfn, _mfn(0), page_count - i);
+
+        if ( (flags & IOMMUF_preempt) &&
+             ((!(++j & 0xfff) && general_preempt_check()) ||
+              i > LONG_MAX - (1UL << order)) )
+            return i;
+
+        err = iommu_call(hd->platform_ops, unmap_page, d, dfn,
+                         flags | IOMMUF_order(order), flush_flags,
+                         ctx);
+
+        if ( likely(!err) )
+            continue;
+
+        if ( !d->is_shutting_down && printk_ratelimit() )
+            printk(XENLOG_ERR
+                   "d%d: IOMMU unmapping dfn %"PRI_dfn" failed: %d\n",
+                   d->domain_id, dfn_x(dfn), err);
+
+        if ( !rc )
+            rc = err;
+
+        if ( !ctx->id && !is_hardware_domain(d) )
+        {
+            domain_crash(d);
+            break;
+        }
+    }
+
+    /*
+     * Something went wrong so, if we were dealing with more than a single
+     * page, flush everything and clear flush flags.
+     */
+    if ( page_count > 1 && unlikely(rc) &&
+         !iommu_iotlb_flush_all(d, *flush_flags) )
+        *flush_flags = 0;
+
+    return rc;
+}
+
+long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
+                 unsigned int flags, unsigned int *flush_flags,
+                 u16 ctx_no)
+{
+    struct iommu_context *ctx;
+    long ret;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    ret = _iommu_unmap(d, dfn0, page_count, flags, flush_flags, ctx);
+
+    iommu_put_context(ctx);
+
+    return ret;
+}
+
+int iommu_legacy_unmap(struct domain *d, dfn_t dfn, unsigned long page_count)
+{
+    unsigned int flush_flags = 0;
+    struct iommu_context *ctx;
+    int rc;
+
+    if ( dom_iommu(d)->no_dma )
+        return 0;
+
+    ctx = iommu_get_context(d, 0);
+
+    if ( ctx->opaque )
+        return 0;
+
+    rc = iommu_unmap(d, dfn, page_count, 0, &flush_flags, 0);
+
+    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
+        rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags, 0);
+
+    iommu_put_context(ctx);
+
+    return rc;
+}
+
+int iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                      unsigned int *flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+    int ret = 0;
+
+    if ( !is_iommu_enabled(d) || !hd->platform_ops->lookup_page )
+        return -EOPNOTSUPP;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    ret = iommu_call(hd->platform_ops, lookup_page, d, dfn, mfn, flags, ctx);
+
+    iommu_put_context(ctx);
+    return ret;
+}
+
+int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
+                      unsigned int flush_flags, u16 ctx_no)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+    int rc;
+
+    if ( !is_iommu_enabled(d) || !hd->platform_ops->iotlb_flush ||
+         !page_count || !flush_flags )
+        return 0;
+
+    if ( dfn_eq(dfn, INVALID_DFN) )
+        return -EINVAL;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    rc = iommu_call(hd->platform_ops, iotlb_flush, d, ctx, dfn, page_count,
+                    flush_flags);
+    if ( unlikely(rc) )
+    {
+        if ( !d->is_shutting_down && printk_ratelimit() )
+            printk(XENLOG_ERR
+                   "d%d: IOMMU IOTLB flush failed: %d, dfn %"PRI_dfn", page count %lu flags %x\n",
+                   d->domain_id, rc, dfn_x(dfn), page_count, flush_flags);
+
+        if ( !ctx->id && !is_hardware_domain(d) )
+            domain_crash(d);
+    }
+
+    iommu_put_context(ctx);
+
+    return rc;
+}
+
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_no,
+                       u32 flags)
+{
+    if ( !dom_iommu(d)->platform_ops->context_init )
+        return -ENOSYS;
+
+    INIT_LIST_HEAD(&ctx->devices);
+    ctx->id = ctx_no;
+    ctx->dying = false;
+    ctx->opaque = false; /* assume opaque by default */
+
+    return iommu_call(dom_iommu(d)->platform_ops, context_init, d, ctx, flags);
+}
+
+int iommu_context_alloc(struct domain *d, u16 *ctx_no, u32 flags)
+{
+    unsigned int i;
+    int ret;
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    do {
+        i = find_first_zero_bit(hd->other_contexts.bitmap, hd->other_contexts.count);
+
+        if ( i >= hd->other_contexts.count )
+            return -ENOSPC;
+
+        ctx = &hd->other_contexts.map[i];
+
+        /* Try to lock the mutex, can fail on concurrent accesses */
+        if ( !rspin_trylock(&ctx->lock) )
+            continue;
+
+        /* We can now set it as used, we keep the lock for initialization. */
+        set_bit(i, hd->other_contexts.bitmap);
+    } while (0);
+
+    *ctx_no = i + 1;
+
+    ret = iommu_context_init(d, ctx, *ctx_no, flags);
+
+    if ( ret )
+        clear_bit(*ctx_no, hd->other_contexts.bitmap);
+
+    iommu_put_context(ctx);
+    return ret;
+}
+
+/**
+ * Attach dev phantom functions to ctx, override any existing
+ * mapped context.
+ */
+static int iommu_reattach_phantom(struct domain *d, device_t *dev,
+                                  struct iommu_context *ctx)
+{
+    int ret = 0;
+    uint8_t devfn = dev->devfn;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    while ( dev->phantom_stride )
+    {
+        devfn += dev->phantom_stride;
+
+        if ( PCI_SLOT(devfn) != PCI_SLOT(dev->devfn) )
+            break;
+
+        ret = iommu_call(hd->platform_ops, add_devfn, d, dev, devfn, ctx);
+
+        if ( ret )
+            break;
+    }
+
+    return ret;
+}
+
+/**
+ * Detach all device phantom functions.
+ */
+static int iommu_detach_phantom(struct domain *d, device_t *dev)
+{
+    int ret = 0;
+    uint8_t devfn = dev->devfn;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    while ( dev->phantom_stride )
+    {
+        devfn += dev->phantom_stride;
+
+        if ( PCI_SLOT(devfn) != PCI_SLOT(dev->devfn) )
+            break;
+
+        ret = iommu_call(hd->platform_ops, remove_devfn, d, dev, devfn);
+
+        if ( ret )
+            break;
+    }
+
+    return ret;
+}
+
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no)
+{
+    struct iommu_context *ctx = NULL;
+    int ret, rc;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    pcidevs_lock();
+
+    if ( ctx->dying )
+    {
+        ret = -EINVAL;
+        goto unlock;
+    }
+
+    ret = iommu_call(dom_iommu(d)->platform_ops, attach, d, dev, ctx);
+
+    if ( ret )
+        goto unlock;
+
+    /* See iommu_reattach_context() */
+    rc = iommu_reattach_phantom(d, dev, ctx);
+
+    if ( rc )
+    {
+        printk(XENLOG_ERR "IOMMU: Unable to attach %pp phantom functions\n",
+               &dev->sbdf);
+
+        if( iommu_call(dom_iommu(d)->platform_ops, detach, d, dev, ctx)
+            || iommu_detach_phantom(d, dev) )
+        {
+            printk(XENLOG_ERR "IOMMU: Improperly detached %pp\n", &dev->sbdf);
+            WARN();
+        }
+
+        ret = -EIO;
+        goto unlock;
+    }
+
+    dev->context = ctx_no;
+    list_add(&dev->context_list, &ctx->devices);
+
+unlock:
+    pcidevs_unlock();
+
+    if ( ctx )
+        iommu_put_context(ctx);
+
+    return ret;
+}
+
+int iommu_detach_context(struct domain *d, device_t *dev)
+{
+    struct iommu_context *ctx;
+    int ret, rc;
+
+    if ( !dev->domain )
+    {
+        printk(XENLOG_WARNING "IOMMU: Trying to detach a non-attached device\n");
+        WARN();
+        return 0;
+    }
+
+    /* Make sure device is actually in the domain. */
+    ASSERT(d == dev->domain);
+
+    pcidevs_lock();
+
+    ctx = iommu_get_context(d, dev->context);
+    ASSERT(ctx); /* device is using an invalid context ?
+                    dev->context invalid ? */
+
+    ret = iommu_call(dom_iommu(d)->platform_ops, detach, d, dev, ctx);
+
+    if ( ret )
+        goto unlock;
+
+    rc = iommu_detach_phantom(d, dev);
+
+    if ( rc )
+        printk(XENLOG_WARNING "IOMMU: "
+               "Improperly detached device functions (%d)\n", rc);
+
+    list_del(&dev->context_list);
+
+unlock:
+    pcidevs_unlock();
+    iommu_put_context(ctx);
+    return ret;
+}
+
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                           device_t *dev, u16 ctx_no)
+{
+    u16 prev_ctx_no;
+    device_t *ctx_dev;
+    struct domain_iommu *prev_hd, *next_hd;
+    struct iommu_context *prev_ctx = NULL, *next_ctx = NULL;
+    int ret, rc;
+    bool same_domain;
+
+    /* Make sure we actually are doing something meaningful */
+    BUG_ON(!prev_dom && !next_dom);
+
+    /// TODO: Do such cases exists ?
+    // /* Platform ops must match */
+    // if (dom_iommu(prev_dom)->platform_ops != dom_iommu(next_dom)->platform_ops)
+    //     return -EINVAL;
+
+    if ( !prev_dom )
+        return iommu_attach_context(next_dom, dev, ctx_no);
+
+    if ( !next_dom )
+        return iommu_detach_context(prev_dom, dev);
+
+    prev_hd = dom_iommu(prev_dom);
+    next_hd = dom_iommu(next_dom);
+
+    pcidevs_lock();
+
+    same_domain = prev_dom == next_dom;
+
+    prev_ctx_no = dev->context;
+
+    if ( !same_domain && (ctx_no == prev_ctx_no) )
+    {
+        printk(XENLOG_DEBUG
+               "IOMMU: Reattaching %pp to same IOMMU context c%hu\n",
+               &dev, ctx_no);
+        ret = 0;
+        goto unlock;
+    }
+
+    if ( !(prev_ctx = iommu_get_context(prev_dom, prev_ctx_no)) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    if ( !(next_ctx = iommu_get_context(next_dom, ctx_no)) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    if ( next_ctx->dying )
+    {
+        ret = -EINVAL;
+        goto unlock;
+    }
+
+    ret = iommu_call(prev_hd->platform_ops, reattach, next_dom, dev, prev_ctx,
+                     next_ctx);
+
+    if ( ret )
+        goto unlock;
+
+    /*
+     * We need to do special handling for phantom devices as they
+     * also use some other PCI functions behind the scenes.
+     */
+    rc = iommu_reattach_phantom(next_dom, dev, next_ctx);
+
+    if ( rc )
+    {
+        /**
+         * Device is being partially reattached (we have primary function and
+         * maybe some phantom functions attached to next_ctx, some others to prev_ctx),
+         * some functions of the device will be attached to next_ctx.
+         */
+        printk(XENLOG_WARNING "IOMMU: "
+               "Device %pp improperly reattached due to phantom function"
+               " reattach failure between %dd%dc and %dd%dc (%d)\n", dev,
+               prev_dom->domain_id, prev_ctx->id, next_dom->domain_id,
+               next_dom->domain_id, rc);
+
+        /* Try reattaching to previous context, reverting into a consistent state. */
+        if ( iommu_call(prev_hd->platform_ops, reattach, prev_dom, dev, next_ctx,
+                        prev_ctx) || iommu_reattach_phantom(prev_dom, dev, prev_ctx) )
+        {
+            printk(XENLOG_ERR "Unable to reattach %pp back to %dd%dc\n",
+                   &dev->sbdf, prev_dom->domain_id, prev_ctx->id);
+
+            if ( !is_hardware_domain(prev_dom) )
+                domain_crash(prev_dom);
+
+            if ( prev_dom != next_dom && !is_hardware_domain(next_dom) )
+                domain_crash(next_dom);
+
+            rc = -EIO;
+        }
+
+        ret = rc;
+        goto unlock;
+    }
+
+    /* Remove device from previous context, and add it to new one. */
+    list_for_each_entry(ctx_dev, &prev_ctx->devices, context_list)
+    {
+        if ( ctx_dev == dev )
+        {
+            list_del(&ctx_dev->context_list);
+            list_add(&ctx_dev->context_list, &next_ctx->devices);
+            break;
+        }
+    }
+
+    if (!ret)
+        dev->context = ctx_no; /* update device context*/
+
+unlock:
+    pcidevs_unlock();
+
+    if ( prev_ctx )
+        iommu_put_context(prev_ctx);
+
+    if ( next_ctx )
+        iommu_put_context(next_ctx);
+
+    return ret;
+}
+
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( !hd->platform_ops->context_teardown )
+        return -ENOSYS;
+
+    ctx->dying = true;
+
+    /* first reattach devices back to default context if needed */
+    if ( flags & IOMMU_TEARDOWN_REATTACH_DEFAULT )
+    {
+        struct pci_dev *device;
+        list_for_each_entry(device, &ctx->devices, context_list)
+            iommu_reattach_context(d, d, device, 0);
+    }
+    else if (!list_empty(&ctx->devices))
+        return -EBUSY; /* there is a device in context */
+
+    return iommu_call(hd->platform_ops, context_teardown, d, ctx, flags);
+}
+
+int iommu_context_free(struct domain *d, u16 ctx_no, u32 flags)
+{
+    int ret;
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    if ( ctx_no == 0 )
+        return -EINVAL;
+
+    if ( !(ctx = iommu_get_context(d, ctx_no)) )
+        return -ENOENT;
+
+    ret = iommu_context_teardown(d, ctx, flags);
+
+    if ( !ret )
+        clear_bit(ctx_no - 1, hd->other_contexts.bitmap);
+
+    iommu_put_context(ctx);
+    return ret;
+}
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 9e74a1fc72..e109ebe404 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -12,15 +12,18 @@
  * this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/atomic.h>
+#include <xen/errno.h>
+#include <xen/xmalloc.h>
+#include <xen/pci.h>
 #include <xen/sched.h>
+#include <xen/spinlock.h>
 #include <xen/iommu.h>
-#include <xen/paging.h>
-#include <xen/guest_access.h>
-#include <xen/event.h>
 #include <xen/param.h>
-#include <xen/softirq.h>
 #include <xen/keyhandler.h>
-#include <xsm/xsm.h>
+#include <asm/arena.h>
+#include <asm/iommu.h>
+#include <asm/bitops.h>
 
 #ifdef CONFIG_X86
 #include <asm/e820.h>
@@ -35,26 +38,11 @@ bool __read_mostly force_iommu;
 bool __read_mostly iommu_verbose;
 static bool __read_mostly iommu_crash_disable;
 
-#define IOMMU_quarantine_none         0 /* aka false */
-#define IOMMU_quarantine_basic        1 /* aka true */
-#define IOMMU_quarantine_scratch_page 2
-#ifdef CONFIG_HAS_PCI
-uint8_t __read_mostly iommu_quarantine =
-# if defined(CONFIG_IOMMU_QUARANTINE_NONE)
-    IOMMU_quarantine_none;
-# elif defined(CONFIG_IOMMU_QUARANTINE_BASIC)
-    IOMMU_quarantine_basic;
-# elif defined(CONFIG_IOMMU_QUARANTINE_SCRATCH_PAGE)
-    IOMMU_quarantine_scratch_page;
-# endif
-#else
-# define iommu_quarantine IOMMU_quarantine_none
-#endif /* CONFIG_HAS_PCI */
-
 static bool __hwdom_initdata iommu_hwdom_none;
 bool __hwdom_initdata iommu_hwdom_strict;
 bool __read_mostly iommu_hwdom_passthrough;
 bool __hwdom_initdata iommu_hwdom_inclusive;
+bool __read_mostly iommu_hwdom_no_dma = false;
 int8_t __hwdom_initdata iommu_hwdom_reserved = -1;
 
 #ifndef iommu_hap_pt_share
@@ -172,6 +160,8 @@ static int __init cf_check parse_dom0_iommu_param(const char *s)
             iommu_hwdom_reserved = val;
         else if ( !cmdline_strcmp(s, "none") )
             iommu_hwdom_none = true;
+        else if ( (val = parse_boolean("dma", s, ss)) >= 0 )
+            iommu_hwdom_no_dma = !val;
         else
             rc = -EINVAL;
 
@@ -193,6 +183,98 @@ static void __hwdom_init check_hwdom_reqs(struct domain *d)
     arch_iommu_check_autotranslated_hwdom(d);
 }
 
+int iommu_domain_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int rc;
+
+    BUG_ON(nb_ctx == 0); /* sanity check (prevent underflow) */
+
+    /*
+     * hd->other_contexts.count is always reported as 0 during initialization
+     * preventing misuse of partially initialized IOMMU contexts.
+     */
+
+    if ( atomic_cmpxchg(&hd->other_contexts.initialized, 0, 1) == 1 )
+        return -EACCES;
+
+    if ( (nb_ctx - 1) > 0 ) {
+        /* Initialize context bitmap */
+        size_t i;
+
+        hd->other_contexts.bitmap = xzalloc_array(unsigned long,
+                                                  BITS_TO_LONGS(nb_ctx - 1));
+
+        if (!hd->other_contexts.bitmap)
+        {
+            rc = -ENOMEM;
+            goto cleanup;
+        }
+
+        hd->other_contexts.map = xzalloc_array(struct iommu_context, nb_ctx - 1);
+
+        if (!hd->other_contexts.map)
+        {
+            rc = -ENOMEM;
+            goto cleanup;
+        }
+
+        for (i = 0; i < (nb_ctx - 1); i++)
+            rspin_lock_init(&hd->other_contexts.map[i].lock);
+    }
+
+    rc = arch_iommu_pviommu_init(d, nb_ctx, arena_order);
+
+    if ( rc )
+        goto cleanup;
+
+    /* Make sure initialization is complete before making it visible to other CPUs. */
+    smp_wmb();
+
+    hd->other_contexts.count = nb_ctx - 1;
+
+    printk(XENLOG_INFO "Dom%d uses %lu IOMMU contexts (%llu pages arena)\n",
+           d->domain_id, (unsigned long)nb_ctx, 1llu << arena_order);
+
+    return 0;
+
+cleanup:
+    /* TODO: Reset hd->other_contexts.initialized */
+    if ( hd->other_contexts.bitmap )
+    {
+        xfree(hd->other_contexts.bitmap);
+        hd->other_contexts.bitmap = NULL;
+    }
+
+    if ( hd->other_contexts.map )
+    {
+        xfree(hd->other_contexts.map);
+        hd->other_contexts.bitmap = NULL;
+    }
+
+    return rc;
+}
+
+int iommu_domain_pviommu_teardown(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int i;
+    /* FIXME: Potential race condition with remote_op ? */
+
+    for (i = 0; i < hd->other_contexts.count; i++)
+        WARN_ON(iommu_context_free(d, i, IOMMU_TEARDOWN_REATTACH_DEFAULT) != ENOENT);
+
+    hd->other_contexts.count = 0;
+
+    if ( hd->other_contexts.bitmap )
+        xfree(hd->other_contexts.bitmap);
+
+    if ( hd->other_contexts.map )
+        xfree(hd->other_contexts.map);
+
+    return 0;
+}
+
 int iommu_domain_init(struct domain *d, unsigned int opts)
 {
     struct domain_iommu *hd = dom_iommu(d);
@@ -208,6 +290,8 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
     hd->node = NUMA_NO_NODE;
 #endif
 
+    rspin_lock_init(&hd->default_ctx.lock);
+
     ret = arch_iommu_domain_init(d);
     if ( ret )
         return ret;
@@ -236,6 +320,23 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
 
     ASSERT(!(hd->need_sync && hd->hap_pt_share));
 
+    if ( hd->no_dma )
+    {
+        /* No-DMA mode is exclusive with HAP and sync_pt. */
+        hd->hap_pt_share = false;
+        hd->need_sync = false;
+    }
+
+    hd->allow_pv_iommu = true;
+
+    iommu_context_init(d, &hd->default_ctx, 0, IOMMU_CONTEXT_INIT_default);
+
+    rwlock_init(&hd->other_contexts.lock);
+    hd->other_contexts.initialized = (atomic_t)ATOMIC_INIT(0);
+    hd->other_contexts.count = 0;
+    hd->other_contexts.bitmap = NULL;
+    hd->other_contexts.map = NULL;
+
     return 0;
 }
 
@@ -249,13 +350,12 @@ static void cf_check iommu_dump_page_tables(unsigned char key)
 
     for_each_domain(d)
     {
-        if ( is_hardware_domain(d) || !is_iommu_enabled(d) )
+        if ( !is_iommu_enabled(d) )
             continue;
 
         if ( iommu_use_hap_pt(d) )
         {
             printk("%pd sharing page tables\n", d);
-            continue;
         }
 
         iommu_vcall(dom_iommu(d)->platform_ops, dump_page_tables, d);
@@ -274,10 +374,13 @@ void __hwdom_init iommu_hwdom_init(struct domain *d)
     iommu_vcall(hd->platform_ops, hwdom_init, d);
 }
 
-static void iommu_teardown(struct domain *d)
+void iommu_domain_destroy(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
 
+    if ( !is_iommu_enabled(d) )
+        return;
+
     /*
      * During early domain creation failure, we may reach here with the
      * ops not yet initialized.
@@ -286,222 +389,9 @@ static void iommu_teardown(struct domain *d)
         return;
 
     iommu_vcall(hd->platform_ops, teardown, d);
-}
-
-void iommu_domain_destroy(struct domain *d)
-{
-    if ( !is_iommu_enabled(d) )
-        return;
-
-    iommu_teardown(d);
 
     arch_iommu_domain_destroy(d);
-}
-
-static unsigned int mapping_order(const struct domain_iommu *hd,
-                                  dfn_t dfn, mfn_t mfn, unsigned long nr)
-{
-    unsigned long res = dfn_x(dfn) | mfn_x(mfn);
-    unsigned long sizes = hd->platform_ops->page_sizes;
-    unsigned int bit = ffsl(sizes) - 1, order = 0;
-
-    ASSERT(bit == PAGE_SHIFT);
-
-    while ( (sizes = (sizes >> bit) & ~1) )
-    {
-        unsigned long mask;
-
-        bit = ffsl(sizes) - 1;
-        mask = (1UL << bit) - 1;
-        if ( nr <= mask || (res & mask) )
-            break;
-        order += bit;
-        nr >>= bit;
-        res >>= bit;
-    }
-
-    return order;
-}
-
-long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
-               unsigned long page_count, unsigned int flags,
-               unsigned int *flush_flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    unsigned long i;
-    unsigned int order, j = 0;
-    int rc = 0;
-
-    if ( !is_iommu_enabled(d) )
-        return 0;
-
-    ASSERT(!IOMMUF_order(flags));
-
-    for ( i = 0; i < page_count; i += 1UL << order )
-    {
-        dfn_t dfn = dfn_add(dfn0, i);
-        mfn_t mfn = mfn_add(mfn0, i);
-
-        order = mapping_order(hd, dfn, mfn, page_count - i);
-
-        if ( (flags & IOMMUF_preempt) &&
-             ((!(++j & 0xfff) && general_preempt_check()) ||
-              i > LONG_MAX - (1UL << order)) )
-            return i;
-
-        rc = iommu_call(hd->platform_ops, map_page, d, dfn, mfn,
-                        flags | IOMMUF_order(order), flush_flags);
-
-        if ( likely(!rc) )
-            continue;
-
-        if ( !d->is_shutting_down && printk_ratelimit() )
-            printk(XENLOG_ERR
-                   "d%d: IOMMU mapping dfn %"PRI_dfn" to mfn %"PRI_mfn" failed: %d\n",
-                   d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
-
-        /* while statement to satisfy __must_check */
-        while ( iommu_unmap(d, dfn0, i, 0, flush_flags) )
-            break;
-
-        if ( !is_hardware_domain(d) )
-            domain_crash(d);
-
-        break;
-    }
-
-    /*
-     * Something went wrong so, if we were dealing with more than a single
-     * page, flush everything and clear flush flags.
-     */
-    if ( page_count > 1 && unlikely(rc) &&
-         !iommu_iotlb_flush_all(d, *flush_flags) )
-        *flush_flags = 0;
-
-    return rc;
-}
-
-int iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
-                     unsigned long page_count, unsigned int flags)
-{
-    unsigned int flush_flags = 0;
-    int rc;
-
-    ASSERT(!(flags & IOMMUF_preempt));
-    rc = iommu_map(d, dfn, mfn, page_count, flags, &flush_flags);
-
-    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
-        rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags);
-
-    return rc;
-}
-
-long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
-                 unsigned int flags, unsigned int *flush_flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    unsigned long i;
-    unsigned int order, j = 0;
-    int rc = 0;
-
-    if ( !is_iommu_enabled(d) )
-        return 0;
-
-    ASSERT(!(flags & ~IOMMUF_preempt));
-
-    for ( i = 0; i < page_count; i += 1UL << order )
-    {
-        dfn_t dfn = dfn_add(dfn0, i);
-        int err;
-
-        order = mapping_order(hd, dfn, _mfn(0), page_count - i);
-
-        if ( (flags & IOMMUF_preempt) &&
-             ((!(++j & 0xfff) && general_preempt_check()) ||
-              i > LONG_MAX - (1UL << order)) )
-            return i;
-
-        err = iommu_call(hd->platform_ops, unmap_page, d, dfn,
-                         flags | IOMMUF_order(order), flush_flags);
-
-        if ( likely(!err) )
-            continue;
-
-        if ( !d->is_shutting_down && printk_ratelimit() )
-            printk(XENLOG_ERR
-                   "d%d: IOMMU unmapping dfn %"PRI_dfn" failed: %d\n",
-                   d->domain_id, dfn_x(dfn), err);
-
-        if ( !rc )
-            rc = err;
-
-        if ( !is_hardware_domain(d) )
-        {
-            domain_crash(d);
-            break;
-        }
-    }
-
-    /*
-     * Something went wrong so, if we were dealing with more than a single
-     * page, flush everything and clear flush flags.
-     */
-    if ( page_count > 1 && unlikely(rc) &&
-         !iommu_iotlb_flush_all(d, *flush_flags) )
-        *flush_flags = 0;
-
-    return rc;
-}
-
-int iommu_legacy_unmap(struct domain *d, dfn_t dfn, unsigned long page_count)
-{
-    unsigned int flush_flags = 0;
-    int rc = iommu_unmap(d, dfn, page_count, 0, &flush_flags);
-
-    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
-        rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags);
-
-    return rc;
-}
-
-int iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                      unsigned int *flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-
-    if ( !is_iommu_enabled(d) || !hd->platform_ops->lookup_page )
-        return -EOPNOTSUPP;
-
-    return iommu_call(hd->platform_ops, lookup_page, d, dfn, mfn, flags);
-}
-
-int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
-                      unsigned int flush_flags)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    int rc;
-
-    if ( !is_iommu_enabled(d) || !hd->platform_ops->iotlb_flush ||
-         !page_count || !flush_flags )
-        return 0;
-
-    if ( dfn_eq(dfn, INVALID_DFN) )
-        return -EINVAL;
-
-    rc = iommu_call(hd->platform_ops, iotlb_flush, d, dfn, page_count,
-                    flush_flags);
-    if ( unlikely(rc) )
-    {
-        if ( !d->is_shutting_down && printk_ratelimit() )
-            printk(XENLOG_ERR
-                   "d%d: IOMMU IOTLB flush failed: %d, dfn %"PRI_dfn", page count %lu flags %x\n",
-                   d->domain_id, rc, dfn_x(dfn), page_count, flush_flags);
-
-        if ( !is_hardware_domain(d) )
-            domain_crash(d);
-    }
-
-    return rc;
+    iommu_domain_pviommu_teardown(d);
 }
 
 int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
@@ -513,7 +403,7 @@ int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
          !flush_flags )
         return 0;
 
-    rc = iommu_call(hd->platform_ops, iotlb_flush, d, INVALID_DFN, 0,
+    rc = iommu_call(hd->platform_ops, iotlb_flush, d, NULL, INVALID_DFN, 0,
                     flush_flags | IOMMU_FLUSHF_all);
     if ( unlikely(rc) )
     {
@@ -529,24 +419,6 @@ int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
     return rc;
 }
 
-int iommu_quarantine_dev_init(device_t *dev)
-{
-    const struct domain_iommu *hd = dom_iommu(dom_io);
-
-    if ( !iommu_quarantine || !hd->platform_ops->quarantine_init )
-        return 0;
-
-    return iommu_call(hd->platform_ops, quarantine_init,
-                      dev, iommu_quarantine == IOMMU_quarantine_scratch_page);
-}
-
-static int __init iommu_quarantine_init(void)
-{
-    dom_io->options |= XEN_DOMCTL_CDF_iommu;
-
-    return iommu_domain_init(dom_io, 0);
-}
-
 int __init iommu_setup(void)
 {
     int rc = -ENODEV;
@@ -682,6 +554,16 @@ bool iommu_has_feature(struct domain *d, enum iommu_feature feature)
     return is_iommu_enabled(d) && test_bit(feature, dom_iommu(d)->features);
 }
 
+uint64_t iommu_get_max_iova(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( !hd->platform_ops->get_max_iova )
+        return 0;
+
+    return iommu_call(hd->platform_ops, get_max_iova, d);
+}
+
 #define MAX_EXTRA_RESERVED_RANGES 20
 struct extra_reserved_range {
     unsigned long start;
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 5a446d3dce..e87f91f0e3 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2008,  Netronome Systems, Inc.
- *                
+ *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
  * version 2, as published by the Free Software Foundation.
@@ -286,14 +286,14 @@ static void apply_quirks(struct pci_dev *pdev)
          * Device [8086:2fc0]
          * Erratum HSE43
          * CONFIG_TDP_NOMINAL CSR Implemented at Incorrect Offset
-         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html 
+         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html
          */
         { PCI_VENDOR_ID_INTEL, 0x2fc0 },
         /*
          * Devices [8086:6f60,6fa0,6fc0]
          * Errata BDF2 / BDX2
          * PCI BARs in the Home Agent Will Return Non-Zero Values During Enumeration
-         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html 
+         * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html
         */
         { PCI_VENDOR_ID_INTEL, 0x6f60 },
         { PCI_VENDOR_ID_INTEL, 0x6fa0 },
@@ -870,8 +870,8 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
         devfn += pdev->phantom_stride;
         if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
             break;
-        ret = iommu_call(hd->platform_ops, reassign_device, d, target, devfn,
-                         pci_to_dev(pdev));
+        ret = iommu_call(hd->platform_ops, add_devfn, d, pci_to_dev(pdev), devfn,
+                         &target->iommu.default_ctx);
         if ( ret )
             goto out;
     }
@@ -880,9 +880,8 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     vpci_deassign_device(pdev);
     write_unlock(&d->pci_lock);
 
-    devfn = pdev->devfn;
-    ret = iommu_call(hd->platform_ops, reassign_device, d, target, devfn,
-                     pci_to_dev(pdev));
+    ret = iommu_reattach_context(pdev->domain, target, pci_to_dev(pdev), 0);
+
     if ( ret )
         goto out;
 
@@ -890,6 +889,7 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
         pdev->quarantine = false;
 
     pdev->fault.count = 0;
+    pdev->domain = target;
 
     write_lock(&target->pci_lock);
     /* Re-assign back to hardware_domain */
@@ -1139,25 +1139,18 @@ struct setup_hwdom {
 static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
                                                 struct pci_dev *pdev)
 {
-    u8 devfn = pdev->devfn;
     int err;
 
-    do {
-        err = ctxt->handler(devfn, pdev);
-        if ( err )
-        {
-            printk(XENLOG_ERR "setup %pp for d%d failed (%d)\n",
-                   &pdev->sbdf, ctxt->d->domain_id, err);
-            if ( devfn == pdev->devfn )
-                return;
-        }
-        devfn += pdev->phantom_stride;
-    } while ( devfn != pdev->devfn &&
-              PCI_SLOT(devfn) == PCI_SLOT(pdev->devfn) );
+    err = ctxt->handler(pdev->devfn, pdev);
+
+    if ( err )
+        goto done;
 
     write_lock(&ctxt->d->pci_lock);
     err = vpci_assign_device(pdev);
     write_unlock(&ctxt->d->pci_lock);
+
+done:
     if ( err )
         printk(XENLOG_ERR "setup of vPCI for d%d failed: %d\n",
                ctxt->d->domain_id, err);
@@ -1329,12 +1322,7 @@ static int cf_check _dump_pci_devices(struct pci_seg *pseg, void *arg)
     list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
     {
         printk("%pp - ", &pdev->sbdf);
-#ifdef CONFIG_X86
-        if ( pdev->domain == dom_io )
-            printk("DomIO:%x", pdev->arch.pseudo_domid);
-        else
-#endif
-            printk("%pd", pdev->domain);
+        printk("%pd", pdev->domain);
         printk(" - node %-3d", (pdev->node != NUMA_NO_NODE) ? pdev->node : -1);
         pdev_dump_msi(pdev);
         printk("\n");
@@ -1361,8 +1349,6 @@ __initcall(setup_dump_pcidevs);
 static int iommu_add_device(struct pci_dev *pdev)
 {
     const struct domain_iommu *hd;
-    int rc;
-    unsigned int devfn = pdev->devfn;
 
     if ( !pdev->domain )
         return -EINVAL;
@@ -1373,20 +1359,7 @@ static int iommu_add_device(struct pci_dev *pdev)
     if ( !is_iommu_enabled(pdev->domain) )
         return 0;
 
-    rc = iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev));
-    if ( rc || !pdev->phantom_stride )
-        return rc;
-
-    for ( ; ; )
-    {
-        devfn += pdev->phantom_stride;
-        if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
-            return 0;
-        rc = iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev));
-        if ( rc )
-            printk(XENLOG_WARNING "IOMMU: add %pp failed (%d)\n",
-                   &PCI_SBDF(pdev->seg, pdev->bus, devfn), rc);
-    }
+    return iommu_attach_context(pdev->domain, pci_to_dev(pdev), 0);
 }
 
 static int iommu_enable_device(struct pci_dev *pdev)
@@ -1408,36 +1381,13 @@ static int iommu_enable_device(struct pci_dev *pdev)
 
 static int iommu_remove_device(struct pci_dev *pdev)
 {
-    const struct domain_iommu *hd;
-    u8 devfn;
-
     if ( !pdev->domain )
         return -EINVAL;
 
-    hd = dom_iommu(pdev->domain);
     if ( !is_iommu_enabled(pdev->domain) )
         return 0;
 
-    for ( devfn = pdev->devfn ; pdev->phantom_stride; )
-    {
-        int rc;
-
-        devfn += pdev->phantom_stride;
-        if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
-            break;
-        rc = iommu_call(hd->platform_ops, remove_device, devfn,
-                        pci_to_dev(pdev));
-        if ( !rc )
-            continue;
-
-        printk(XENLOG_ERR "IOMMU: remove %pp failed (%d)\n",
-               &PCI_SBDF(pdev->seg, pdev->bus, devfn), rc);
-        return rc;
-    }
-
-    devfn = pdev->devfn;
-
-    return iommu_call(hd->platform_ops, remove_device, devfn, pci_to_dev(pdev));
+    return iommu_detach_context(pdev->domain, pdev);
 }
 
 static int device_assigned(u16 seg, u8 bus, u8 devfn)
@@ -1465,7 +1415,6 @@ static int device_assigned(u16 seg, u8 bus, u8 devfn)
 /* Caller should hold the pcidevs_lock */
 static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
     struct pci_dev *pdev;
     int rc = 0;
 
@@ -1503,17 +1452,7 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
 
     pdev->fault.count = 0;
 
-    rc = iommu_call(hd->platform_ops, assign_device, d, devfn, pci_to_dev(pdev),
-                    flag);
-
-    while ( pdev->phantom_stride && !rc )
-    {
-        devfn += pdev->phantom_stride;
-        if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
-            break;
-        rc = iommu_call(hd->platform_ops, assign_device, d, devfn,
-                        pci_to_dev(pdev), flag);
-    }
+    rc = iommu_reattach_context(pdev->domain, d, pci_to_dev(pdev), 0);
 
     if ( rc )
         goto done;
@@ -1523,27 +1462,9 @@ static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
     write_unlock(&d->pci_lock);
 
  done:
-    if ( rc )
-    {
-        printk(XENLOG_G_WARNING "%pd: assign %s(%pp) failed (%d)\n",
-               d, devfn != pdev->devfn ? "phantom function " : "",
-               &PCI_SBDF(seg, bus, devfn), rc);
 
-        if ( devfn != pdev->devfn && deassign_device(d, seg, bus, pdev->devfn) )
-        {
-            /*
-             * Device with phantom functions that failed to both assign and
-             * rollback.  Mark the device as broken and crash the target domain,
-             * as the state of the functions at this point is unknown and Xen
-             * has no way to assert consistent context assignment among them.
-             */
-            pdev->broken = true;
-            if ( !is_hardware_domain(d) && d != dom_io )
-                domain_crash(d);
-        }
-    }
     /* The device is assigned to dom_io so mark it as quarantined */
-    else if ( d == dom_io )
+    if ( !rc && d == dom_io )
         pdev->quarantine = true;
 
     return rc;
diff --git a/xen/drivers/passthrough/quarantine.c b/xen/drivers/passthrough/quarantine.c
new file mode 100644
index 0000000000..b58f136ad8
--- /dev/null
+++ b/xen/drivers/passthrough/quarantine.c
@@ -0,0 +1,49 @@
+#include <xen/stdint.h>
+#include <xen/iommu.h>
+#include <xen/sched.h>
+
+#ifdef CONFIG_HAS_PCI
+uint8_t __read_mostly iommu_quarantine =
+# if defined(CONFIG_IOMMU_QUARANTINE_NONE)
+    IOMMU_quarantine_none;
+# elif defined(CONFIG_IOMMU_QUARANTINE_BASIC)
+    IOMMU_quarantine_basic;
+# elif defined(CONFIG_IOMMU_QUARANTINE_SCRATCH_PAGE)
+    IOMMU_quarantine_scratch_page;
+# endif
+#else
+# define iommu_quarantine IOMMU_quarantine_none
+#endif /* CONFIG_HAS_PCI */
+
+int iommu_quarantine_dev_init(device_t *dev)
+{
+    int ret;
+    u16 ctx_no;
+
+    if ( !iommu_quarantine )
+        return 0;
+
+    ret = iommu_context_alloc(dom_io, &ctx_no, IOMMU_CONTEXT_INIT_quarantine);
+
+    if ( ret )
+        return ret;
+
+    /** TODO: Setup scratch page, mappings... */
+
+    ret = iommu_reattach_context(dev->domain, dom_io, dev, ctx_no);
+
+    if ( ret )
+    {
+        ASSERT(!iommu_context_free(dom_io, ctx_no, 0));
+        return ret;
+    }
+
+    return ret;
+}
+
+int __init iommu_quarantine_init(void)
+{
+    dom_io->options |= XEN_DOMCTL_CDF_iommu;
+
+    return iommu_domain_init(dom_io, 0);
+}
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 442ae5322d..5ae579ae6a 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -52,7 +52,11 @@ static inline bool dfn_eq(dfn_t x, dfn_t y)
 #ifdef CONFIG_HAS_PASSTHROUGH
 extern bool iommu_enable, iommu_enabled;
 extern bool force_iommu, iommu_verbose;
+
 /* Boolean except for the specific purposes of drivers/passthrough/iommu.c. */
+#define IOMMU_quarantine_none         0 /* aka false */
+#define IOMMU_quarantine_basic        1 /* aka true */
+#define IOMMU_quarantine_scratch_page 2
 extern uint8_t iommu_quarantine;
 #else
 #define iommu_enabled false
@@ -106,6 +110,7 @@ extern bool iommu_debug;
 extern bool amd_iommu_perdev_intremap;
 
 extern bool iommu_hwdom_strict, iommu_hwdom_passthrough, iommu_hwdom_inclusive;
+extern bool iommu_hwdom_no_dma;
 extern int8_t iommu_hwdom_reserved;
 
 extern unsigned int iommu_dev_iotlb_timeout;
@@ -161,11 +166,10 @@ enum
  */
 long __must_check iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
                             unsigned long page_count, unsigned int flags,
-                            unsigned int *flush_flags);
+                            unsigned int *flush_flags, u16 ctx_no);
 long __must_check iommu_unmap(struct domain *d, dfn_t dfn0,
                               unsigned long page_count, unsigned int flags,
-                              unsigned int *flush_flags);
-
+                              unsigned int *flush_flags, u16 ctx_no);
 int __must_check iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
                                   unsigned long page_count,
                                   unsigned int flags);
@@ -173,11 +177,12 @@ int __must_check iommu_legacy_unmap(struct domain *d, dfn_t dfn,
                                     unsigned long page_count);
 
 int __must_check iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                                   unsigned int *flags);
+                                   unsigned int *flags, u16 ctx_no);
 
 int __must_check iommu_iotlb_flush(struct domain *d, dfn_t dfn,
                                    unsigned long page_count,
-                                   unsigned int flush_flags);
+                                   unsigned int flush_flags,
+                                   u16 ctx_no);
 int __must_check iommu_iotlb_flush_all(struct domain *d,
                                        unsigned int flush_flags);
 
@@ -250,20 +255,30 @@ struct page_info;
  */
 typedef int iommu_grdm_t(xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt);
 
+struct iommu_context;
+
 struct iommu_ops {
     unsigned long page_sizes;
     int (*init)(struct domain *d);
     void (*hwdom_init)(struct domain *d);
-    int (*quarantine_init)(device_t *dev, bool scratch_page);
-    int (*add_device)(uint8_t devfn, device_t *dev);
+    int (*context_init)(struct domain *d, struct iommu_context *ctx,
+                        u32 flags);
+    int (*context_teardown)(struct domain *d, struct iommu_context *ctx,
+                            u32 flags);
+    int (*attach)(struct domain *d, device_t *dev,
+                  struct iommu_context *ctx);
+    int (*detach)(struct domain *d, device_t *dev,
+                   struct iommu_context *prev_ctx);
+    int (*reattach)(struct domain *d, device_t *dev,
+                    struct iommu_context *prev_ctx,
+                    struct iommu_context *ctx);
+
     int (*enable_device)(device_t *dev);
-    int (*remove_device)(uint8_t devfn, device_t *dev);
-    int (*assign_device)(struct domain *d, uint8_t devfn, device_t *dev,
-                         uint32_t flag);
-    int (*reassign_device)(struct domain *s, struct domain *t,
-                           uint8_t devfn, device_t *dev);
 #ifdef CONFIG_HAS_PCI
     int (*get_device_group_id)(uint16_t seg, uint8_t bus, uint8_t devfn);
+    int (*add_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                     struct iommu_context *ctx);
+    int (*remove_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn);
 #endif /* HAS_PCI */
 
     void (*teardown)(struct domain *d);
@@ -274,12 +289,15 @@ struct iommu_ops {
      */
     int __must_check (*map_page)(struct domain *d, dfn_t dfn, mfn_t mfn,
                                  unsigned int flags,
-                                 unsigned int *flush_flags);
+                                 unsigned int *flush_flags,
+                                 struct iommu_context *ctx);
     int __must_check (*unmap_page)(struct domain *d, dfn_t dfn,
                                    unsigned int order,
-                                   unsigned int *flush_flags);
+                                   unsigned int *flush_flags,
+                                   struct iommu_context *ctx);
     int __must_check (*lookup_page)(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                                    unsigned int *flags);
+                                    unsigned int *flags,
+                                    struct iommu_context *ctx);
 
 #ifdef CONFIG_X86
     int (*enable_x2apic)(void);
@@ -292,14 +310,15 @@ struct iommu_ops {
     int (*setup_hpet_msi)(struct msi_desc *msi_desc);
 
     void (*adjust_irq_affinities)(void);
-    void (*clear_root_pgtable)(struct domain *d);
+    void (*clear_root_pgtable)(struct domain *d, struct iommu_context *ctx);
     int (*update_ire_from_msi)(struct msi_desc *msi_desc, struct msi_msg *msg);
 #endif /* CONFIG_X86 */
 
     int __must_check (*suspend)(void);
     void (*resume)(void);
     void (*crash_shutdown)(void);
-    int __must_check (*iotlb_flush)(struct domain *d, dfn_t dfn,
+    int __must_check (*iotlb_flush)(struct domain *d,
+                                    struct iommu_context *ctx, dfn_t dfn,
                                     unsigned long page_count,
                                     unsigned int flush_flags);
     int (*get_reserved_device_memory)(iommu_grdm_t *func, void *ctxt);
@@ -314,6 +333,8 @@ struct iommu_ops {
      */
     int (*dt_xlate)(device_t *dev, const struct dt_phandle_args *args);
 #endif
+
+    uint64_t (*get_max_iova)(struct domain *d);
 };
 
 /*
@@ -343,11 +364,39 @@ extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
 # define iommu_vcall iommu_call
 #endif
 
+struct iommu_context {
+    u16 id; /* Context id (0 means default context) */
+    rspinlock_t lock; /* context lock */
+
+    struct list_head devices;
+
+    struct arch_iommu_context arch;
+
+    bool opaque; /* context can't be modified nor accessed (e.g HAP) */
+    bool dying; /* the context is tearing down */
+};
+
+struct iommu_context_list {
+    atomic_t initialized; /* has/is context list being initialized ? */
+    rwlock_t lock; /* prevent concurrent destruction and access of contexts */
+    uint16_t count; /* Context count excluding default context */
+
+    /* if count > 0 */
+
+    uint64_t *bitmap; /* bitmap of context allocation */
+    struct iommu_context *map; /* Map of contexts */
+};
+
+
 struct domain_iommu {
+
 #ifdef CONFIG_HAS_PASSTHROUGH
     struct arch_iommu arch;
 #endif
 
+    struct iommu_context default_ctx;
+    struct iommu_context_list other_contexts;
+
     /* iommu_ops */
     const struct iommu_ops *platform_ops;
 
@@ -365,6 +414,12 @@ struct domain_iommu {
     /* SAF-2-safe enum constant in arithmetic operation */
     DECLARE_BITMAP(features, IOMMU_FEAT_count);
 
+    /* Do the IOMMU block all DMA on default context (implies !has_pt_share) ? */
+    bool no_dma;
+
+    /* Is the domain allowed to use PV-IOMMU ? */
+    bool allow_pv_iommu;
+
     /* Does the guest share HAP mapping with the IOMMU? */
     bool hap_pt_share;
 
@@ -380,6 +435,7 @@ struct domain_iommu {
 #define dom_iommu(d)              (&(d)->iommu)
 #define iommu_set_feature(d, f)   set_bit(f, dom_iommu(d)->features)
 #define iommu_clear_feature(d, f) clear_bit(f, dom_iommu(d)->features)
+#define iommu_default_context(d) (&dom_iommu(d)->default_ctx) /* does not lock ! */
 
 /* Are we using the domain P2M table as its IOMMU pagetable? */
 #define iommu_use_hap_pt(d)       (IS_ENABLED(CONFIG_HVM) && \
@@ -401,10 +457,14 @@ static inline int iommu_do_domctl(struct xen_domctl *domctl, struct domain *d,
 }
 #endif
 
+int iommu_domain_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order);
+
 int __must_check iommu_suspend(void);
 void iommu_resume(void);
 void iommu_crash_shutdown(void);
 int iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt);
+
+int __init iommu_quarantine_init(void);
 int iommu_quarantine_dev_init(device_t *dev);
 
 #ifdef CONFIG_HAS_PCI
@@ -414,6 +474,27 @@ int iommu_do_pci_domctl(struct xen_domctl *domctl, struct domain *d,
 
 void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev);
 
+uint64_t iommu_get_max_iova(struct domain *d);
+
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_no);
+void iommu_put_context(struct iommu_context *ctx);
+
+#define IOMMU_CONTEXT_INIT_default (1 << 0)
+#define IOMMU_CONTEXT_INIT_quarantine (1 << 1)
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_no, u32 flags);
+
+#define IOMMU_TEARDOWN_REATTACH_DEFAULT (1 << 0)
+#define IOMMU_TEARDOWN_PREEMPT (1 << 1)
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+
+int iommu_context_alloc(struct domain *d, u16 *ctx_no, u32 flags);
+int iommu_context_free(struct domain *d, u16 ctx_no, u32 flags);
+
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                           device_t *dev, u16 ctx_no);
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_no);
+int iommu_detach_context(struct domain *d, device_t *dev);
+
 /*
  * The purpose of the iommu_dont_flush_iotlb optional cpu flag is to
  * avoid unecessary iotlb_flush in the low level IOMMU code.
@@ -429,6 +510,8 @@ DECLARE_PER_CPU(bool, iommu_dont_flush_iotlb);
 extern struct spinlock iommu_pt_cleanup_lock;
 extern struct page_list_head iommu_pt_cleanup_list;
 
+int arch_iommu_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order);
+int arch_iommu_pviommu_teardown(struct domain *d);
 bool arch_iommu_use_permitted(const struct domain *d);
 
 #ifdef CONFIG_X86
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 63e49f0117..d6d4aaa6a5 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -97,6 +97,7 @@ struct pci_dev_info {
 struct pci_dev {
     struct list_head alldevs_list;
     struct list_head domain_list;
+    struct list_head context_list;
 
     struct list_head msi_list;
 
@@ -104,6 +105,8 @@ struct pci_dev {
 
     struct domain *domain;
 
+    uint16_t context; /* IOMMU context number of domain */
+
     const union {
         struct {
             uint8_t devfn;
-- 
2.45.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 Nov 04 14:28:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 14:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830027.1244939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7y4U-0006Xl-E1; Mon, 04 Nov 2024 14:28:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830027.1244939; Mon, 04 Nov 2024 14:28: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 1t7y4U-0006Xe-An; Mon, 04 Nov 2024 14:28:46 +0000
Received: by outflank-mailman (input) for mailman id 830027;
 Mon, 04 Nov 2024 14:28: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=vci5=R7=bounce.vates.tech=bounce-md_30504962.6728da16.v1-c2a022822c8b471b9422ea789444521b@srs-se1.protection.inumbo.net>)
 id 1t7y4T-0006XR-R3
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 14:28:45 +0000
Received: from mail133-1.atl131.mandrillapp.com
 (mail133-1.atl131.mandrillapp.com [198.2.133.1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 163448e9-9ab9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 15:28:41 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-1.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4Xhv3B6LpYzBsThh9
 for <xen-devel@lists.xenproject.org>; Mon,  4 Nov 2024 14:28:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c2a022822c8b471b9422ea789444521b; Mon, 04 Nov 2024 14:28: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: 163448e9-9ab9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzMy4xIiwiaGVsbyI6Im1haWwxMzMtMS5hdGwxMzEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE2MzQ0OGU5LTlhYjktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzMwNTIxLjQ0MDcyNCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MjhkYTE2LnYxLWMyYTAyMjgyMmM4YjQ3MWI5NDIyZWE3ODk0NDQ1MjFiQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730730518; x=1730991018;
	bh=RoSAtnJfw1cEYNC93zFobpr3kWwShUZYpgY8h54ln+8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=IAI+VmTHFBMuSLeUuuzX87KcSO8+P7bu4Xw7WfXzAIbH1n8wmNdwnxCBEkfikvJDn
	 bRVa4cMX88yft3z1TdS7Jz7T3KKFQbzD0hEZBWzoN/3i8P8NsmMW0WIIODCJCW+yyx
	 ISP8d5R3SWkamOcACw5AmoUbtAE8Sv6sSyADukWDtK1AOlc1ZU5Vz6zgiYpuiRfm9w
	 9RVSYVhK2qOP6++Z+HFkbTgWZphNt4K8VlY00JJJRskNoVJpTJZr5HD1lfPIfvNCZn
	 x+ryENl1S2Ft7McjTA8P7A5ec8+gBtgYs0YqCWuE397Q/MPCBuKE+h+jya01kvSwUM
	 TWryF+RX4XWvw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730730518; x=1730991018; i=teddy.astie@vates.tech;
	bh=RoSAtnJfw1cEYNC93zFobpr3kWwShUZYpgY8h54ln+8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=N/goh2IGiAkJC8th+v8dUVwV2a3vAnwmSx5ix+k0oobSL+9q+58xgUrgbmz/X7jfj
	 C5xO8kWpBiYTR2uLD7wawat6D2iUDeYbMcf+iT44Pu0UKam3WiSzi+jEJYMB2Ipzi7
	 rg0bqZ/8eDdsWuE3UO08ewR+ee8G+FW6Zcp6pVezjo6plsY53NeO3c7wHKd9wcvyKu
	 rbKrmWW8/zwnEd7mF1XGDYZ4q+ZPHFT7lFv0O64D/Pfi2f787YCFdSBdHP0n1Ps3Qk
	 UWZwHjpO8jp368w7rJgEpjBdFVj77evf9gjkvOHfnViuvJZJuw1zqHjNF6WhwAnSdP
	 419RZG82DJSTw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[XEN=20RFC=20PATCH=20v4=200/5]=20IOMMU=20subsystem=20redesign=20and=20PV-IOMMU=20interface?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730730516687
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Lukasz Hawrylko" <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, =?utf-8?Q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <cover.1730718102.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.c2a022822c8b471b9422ea789444521b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241104:md
Date: Mon, 04 Nov 2024 14:28:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This work has been presented at Xen Summit 2024 during the
  IOMMU paravirtualization and Xen IOMMU subsystem rework
design session.

Operating systems may want to have access to a IOMMU in order to do DMA
protection or implement certain features (e.g VFIO on Linux).

VFIO support is mandatory for framework such as SPDK, which can be useful to
implement an alternative storage backend for virtual machines [1].

In this patch series, we introduce in Xen the ability to manage several
contexts per domain and provide a new hypercall interface to allow guests
to manage IOMMU contexts.

The VT-d driver is updated to support these new features.

[1] Using SPDK with the Xen hypervisor - FOSDEM 2023
---
Changed in v2 :
* fixed Xen crash when dumping IOMMU contexts (using X debug key)
with DomUs without IOMMU
* s/dettach/detach/
* removed some unused includes
* fix dangling devices in contexts with detach

Changed in v3 :
* lock entirely map/unmap in hypercall
* prevent IOMMU operations on dying contexts (fix race condition)
* iommu_check_context+iommu_get_context -> iommu_get_context and check for NULL

Changed in v4 :
* Part of initialization logic is moved to domain or toolstack (IOMMU_init)
  + domain/toolstack now decides on "context count" and "pagetable pool size"
  + for now, all domains are able to initialize PV-IOMMU
* introduce "dom0-iommu=no-dma" to make default context block all DMA
  (disables HAP and sync-pt), enforcing usage of PV-IOMMU for DMA
  Can be used to expose properly "Pre-boot DMA protection"
* redesigned locking logic for contexts
  + contexts are accessed using iommu_get_context and released with iommu_put_context

TODO:
* add stub implementations for bissecting needs and non-ported IOMMU implementations
* fix some issues with no-dma+PV and grants
* complete "no-dma" mode (expose to toolstack, add documentation, ...)
* properly define nested mode and PASID support

Teddy Astie (5):
  docs/designs: Add a design document for PV-IOMMU
  docs/designs: Add a design document for IOMMU subsystem redesign
  IOMMU: Introduce redesigned IOMMU subsystem
  VT-d: Port IOMMU driver to new subsystem
  xen/public: Introduce PV-IOMMU hypercall interface

 docs/designs/iommu-contexts.md       |  403 +++++++
 docs/designs/pv-iommu.md             |  116 ++
 xen/arch/x86/domain.c                |    2 +-
 xen/arch/x86/include/asm/arena.h     |   54 +
 xen/arch/x86/include/asm/iommu.h     |   58 +-
 xen/arch/x86/include/asm/pci.h       |   17 -
 xen/arch/x86/mm/p2m-ept.c            |    2 +-
 xen/arch/x86/pv/dom0_build.c         |    4 +-
 xen/arch/x86/tboot.c                 |    4 +-
 xen/common/Makefile                  |    1 +
 xen/common/memory.c                  |    4 +-
 xen/common/pv-iommu.c                |  539 ++++++++++
 xen/drivers/passthrough/Makefile     |    3 +
 xen/drivers/passthrough/context.c    |  711 +++++++++++++
 xen/drivers/passthrough/iommu.c      |  396 +++----
 xen/drivers/passthrough/pci.c        |  117 +-
 xen/drivers/passthrough/quarantine.c |   49 +
 xen/drivers/passthrough/vtd/Makefile |    2 +-
 xen/drivers/passthrough/vtd/extern.h |   14 +-
 xen/drivers/passthrough/vtd/iommu.c  | 1478 +++++++++-----------------
 xen/drivers/passthrough/vtd/quirks.c |   20 +-
 xen/drivers/passthrough/x86/Makefile |    1 +
 xen/drivers/passthrough/x86/arena.c  |  157 +++
 xen/drivers/passthrough/x86/iommu.c  |  270 +++--
 xen/include/hypercall-defs.c         |    6 +
 xen/include/public/pv-iommu.h        |  341 ++++++
 xen/include/public/xen.h             |    1 +
 xen/include/xen/iommu.h              |  117 +-
 xen/include/xen/pci.h                |    3 +
 29 files changed, 3423 insertions(+), 1467 deletions(-)
 create mode 100644 docs/designs/iommu-contexts.md
 create mode 100644 docs/designs/pv-iommu.md
 create mode 100644 xen/arch/x86/include/asm/arena.h
 create mode 100644 xen/common/pv-iommu.c
 create mode 100644 xen/drivers/passthrough/context.c
 create mode 100644 xen/drivers/passthrough/quarantine.c
 create mode 100644 xen/drivers/passthrough/x86/arena.c
 create mode 100644 xen/include/public/pv-iommu.h

-- 
2.45.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 Nov 04 14:41:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 14:41:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830081.1244998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7yGi-00040V-AY; Mon, 04 Nov 2024 14:41:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830081.1244998; Mon, 04 Nov 2024 14:41: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 1t7yGi-00040O-7h; Mon, 04 Nov 2024 14:41:24 +0000
Received: by outflank-mailman (input) for mailman id 830081;
 Mon, 04 Nov 2024 14:41: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=Evtf=R7=bounce.vates.tech=bounce-md_30504962.6728dd0b.v1-00a9add463124e10a3c376e6272604d1@srs-se1.protection.inumbo.net>)
 id 1t7yGg-00040I-Gn
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 14:41:22 +0000
Received: from mail133-1.atl131.mandrillapp.com
 (mail133-1.atl131.mandrillapp.com [198.2.133.1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8e32b5a-9aba-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 15:41:17 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-1.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4XhvKl43vmzBsVDXy
 for <xen-devel@lists.xenproject.org>; Mon,  4 Nov 2024 14:41:15 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 00a9add463124e10a3c376e6272604d1; Mon, 04 Nov 2024 14:41: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: d8e32b5a-9aba-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzMy4xIiwiaGVsbyI6Im1haWwxMzMtMS5hdGwxMzEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ4ZTMyYjVhLTlhYmEtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzMxMjc3LjU0OTcwOSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MjhkZDBiLnYxLTAwYTlhZGQ0NjMxMjRlMTBhM2MzNzZlNjI3MjYwNGQxQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730731275; x=1730991775;
	bh=vcI+dluGaD5M6iZjJ+mno1wyRmsrm6WijK79LN4oTjE=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=U5ubBPIQ2odlCLjj9YTOUSyfZ8jmeAZgGiZs/KvQznhBvHubU5YbDe81CV3PuADT2
	 nf96RlEbck/v1WS77VXypaQVFibpfV/ZQdet+IJbvfHY21pgdnvidXMaRFyAhRLgpc
	 vVWbKvVyW3hOAXBXu1SneeOqtWAfXxmRTx4M3xgW/YOEB3ZyNzWSEZxM9xohMMcPR5
	 y0OtS8SruHdFZ/R0iN7PTpH/AczCe2VxbHvR25BYS+30f3kbcghaQSNg4z3OzAyQ4Y
	 /lgkAoiT9iHHXVDWDRl+Q6iMcLbsk5Qr/pCGyroaY+Wtt+efZMqVUjHEWEOjAcWzbY
	 uEnyER3t1Dz9A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730731275; x=1730991775; i=teddy.astie@vates.tech;
	bh=vcI+dluGaD5M6iZjJ+mno1wyRmsrm6WijK79LN4oTjE=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=1EARiS1FtbVnphUSi5LuJfIJlSgZfXXE7d3OEKlwCBIVuAdAWeED8p4ezeI0WBpRG
	 Lq5BvyxgVouKm+YFaNmLIxtuMxMz7ruJ/0pq468oAEGU9ZtN+H4xkWk9jP+F8x5PoF
	 gddksuOdAK2smlvX1U4xT4hbpMKjzh2kb5TzMwEWcqhnDwqU5H/xuqJkN4MwjSU/3y
	 MG7g0mQbtEfLs/Flzt7KdALTCxum4Ek+U/G9u806DxlQRcvpcrR0RQtQEVK6isswEJ
	 ucf+Ry6d6Ng4zqMPGpruGGJQpg2pgcGLyB33Zex3i2Qs+7NShrKllcfVxFYz88aEI5
	 AoqPgthu59neQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v3]=20iommu/xen:=20Add=20Xen=20PV-IOMMU=20driver?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730731272271
To: xen-devel@lists.xenproject.org, iommu@lists.linux.dev
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Juergen Gross" <jgross@suse.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>, "Joerg Roedel" <joro@8bytes.org>, "Will Deacon" <will@kernel.org>, "Robin Murphy" <robin.murphy@arm.com>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <b2c58854cba26cc2ca1a4d28700b833510fe2def.1730729812.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.00a9add463124e10a3c376e6272604d1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241104:md
Date: Mon, 04 Nov 2024 14:41:15 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

In the context of Xen, Linux runs as Dom0 and doesn't have access to the
machine IOMMU. Although, a IOMMU is mandatory to use some kernel features
such as VFIO or DMA protection.

In Xen, we added a paravirtualized IOMMU with iommu_op hypercall in order to
allow Dom0 to implement such feature. This commit introduces a new IOMMU driver
that uses this new hypercall interface.

Introduce io-pgtable-xen as a shadow pagetable to track mappings for lookup.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
Changed in v2 :
* formatting changes
* applied Jan Beulich proposed changes : removed vim notes at end of pv-iommu.h
* applied Jason Gunthorpe proposed changes : use new ops and remove redundant
checks

Changed in v3 :
* Introduced io-pgtable-xen in order to track entries to implement lookup (as
	it has been removed from hypercall interface)
* use redesigned hypercall interface

Depends on https://lore.kernel.org/xen-devel/cover.1730718102.git.teddy.astie@vates.tech
---
 arch/x86/include/asm/xen/hypercall.h |   6 +
 drivers/iommu/Kconfig                |   9 +
 drivers/iommu/Makefile               |   2 +
 drivers/iommu/io-pgtable-xen.c       | 368 ++++++++++++++++++++++
 drivers/iommu/io-pgtable.c           |   3 +
 drivers/iommu/xen-iommu.c            | 444 +++++++++++++++++++++++++++
 include/linux/io-pgtable.h           |   2 +
 include/xen/interface/memory.h       |  33 ++
 include/xen/interface/pv-iommu.h     | 341 ++++++++++++++++++++
 include/xen/interface/xen.h          |   1 +
 10 files changed, 1209 insertions(+)
 create mode 100644 drivers/iommu/io-pgtable-xen.c
 create mode 100644 drivers/iommu/xen-iommu.c
 create mode 100644 include/xen/interface/pv-iommu.h

diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/asm/xen/hypercall.h
index a2dd24947eb8..d8b2876c2df4 100644
--- a/arch/x86/include/asm/xen/hypercall.h
+++ b/arch/x86/include/asm/xen/hypercall.h
@@ -490,6 +490,12 @@ HYPERVISOR_xenpmu_op(unsigned int op, void *arg)
 	return _hypercall2(int, xenpmu_op, op, arg);
 }
 
+static inline long
+HYPERVISOR_iommu_op(unsigned int subop, void *arg)
+{
+	return _hypercall2(int, iommu_op, subop, arg);
+}
+
 static inline int
 HYPERVISOR_dm_op(
 	domid_t dom, unsigned int nr_bufs, struct xen_dm_op_buf *bufs)
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index b3aa1f5d5321..9d8fab4090cc 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -507,6 +507,15 @@ config VIRTIO_IOMMU
 
 	  Say Y here if you intend to run this kernel as a guest.
 
+config XEN_IOMMU
+	bool "Xen IOMMU driver"
+	depends on XEN_DOM0
+	select IOMMU_API
+	help
+		Xen PV-IOMMU driver for Dom0.
+
+		Say Y here if you intend to run this guest as Xen Dom0.
+
 config SPRD_IOMMU
 	tristate "Unisoc IOMMU Support"
 	depends on ARCH_SPRD || COMPILE_TEST
diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile
index 542760d963ec..0adbcb167c0b 100644
--- a/drivers/iommu/Makefile
+++ b/drivers/iommu/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_IOMMU_IO_PGTABLE) += io-pgtable.o
 obj-$(CONFIG_IOMMU_IO_PGTABLE_ARMV7S) += io-pgtable-arm-v7s.o
 obj-$(CONFIG_IOMMU_IO_PGTABLE_LPAE) += io-pgtable-arm.o
 obj-$(CONFIG_IOMMU_IO_PGTABLE_DART) += io-pgtable-dart.o
+obj-$(CONFIG_XEN_IOMMU) += io-pgtable-xen.o
 obj-$(CONFIG_IOMMU_IOVA) += iova.o
 obj-$(CONFIG_OF_IOMMU)	+= of_iommu.o
 obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o
@@ -30,3 +31,4 @@ obj-$(CONFIG_IOMMU_SVA) += iommu-sva.o
 obj-$(CONFIG_IOMMU_IOPF) += io-pgfault.o
 obj-$(CONFIG_SPRD_IOMMU) += sprd-iommu.o
 obj-$(CONFIG_APPLE_DART) += apple-dart.o
+obj-$(CONFIG_XEN_IOMMU) += xen-iommu.o
\ No newline at end of file
diff --git a/drivers/iommu/io-pgtable-xen.c b/drivers/iommu/io-pgtable-xen.c
new file mode 100644
index 000000000000..974941fff80d
--- /dev/null
+++ b/drivers/iommu/io-pgtable-xen.c
@@ -0,0 +1,368 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Generic page table allocator for tracking purposes.
+ * Based on AMD IO pagetable allocator v2.
+ *
+ * Copyright (C) 2024 Vates SAS
+ * Author: Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#define pr_fmt(fmt)	"xen-iommu pg-table: " fmt
+#define dev_fmt(fmt)	pr_fmt(fmt)
+
+#include <linux/bitops.h>
+#include <linux/io-pgtable.h>
+#include <linux/kernel.h>
+
+#include <asm/barrier.h>
+
+#include "iommu-pages.h"
+
+#include "xen/page.h"
+
+#define IOMMU_PAGE_PRESENT	BIT_ULL(0)	/* Is present */
+#define IOMMU_PAGE_HUGE		BIT_ULL(1)	/* Is hugepage */
+#define MAX_PTRS_PER_PAGE	512
+
+#define IOMMU_PAGE_SIZE_2M	BIT_ULL(21)
+#define IOMMU_PAGE_SIZE_1G	BIT_ULL(30)
+
+#define PM_ADDR_MASK		0x000ffffffffff000ULL
+#define XEN_IOMMU_PGSIZES	(XEN_PAGE_SIZE | (1ULL << 21) | (1ULL << 30))
+
+#define PAGE_MODE_NONE    0x00
+#define PAGE_MODE_1_LEVEL 0x01
+#define PAGE_MODE_2_LEVEL 0x02
+#define PAGE_MODE_3_LEVEL 0x03
+#define PAGE_MODE_4_LEVEL 0x04
+#define PAGE_MODE_5_LEVEL 0x05
+
+#define IOMMU_PTE_PR BIT(0)
+#define IOMMU_PTE_PRESENT(pte) ((pte) & IOMMU_PTE_PR)
+
+#define PM_LEVEL_SHIFT(x)	(12 + ((x) * 9))
+#define PM_LEVEL_INDEX(x, a)	(((a) >> PM_LEVEL_SHIFT((x))) & 0x1ffULL)
+
+#define IOMMU_IN_ADDR_BIT_SIZE  52
+#define IOMMU_OUT_ADDR_BIT_SIZE 52
+
+#define PAGE_SIZE_ALIGN(address, pagesize) \
+		((address) & ~((pagesize) - 1))
+
+#define io_pgtable_to_data(x) \
+	container_of((x), struct xen_io_pgtable, iop)
+
+#define io_pgtable_ops_to_data(x) \
+	io_pgtable_to_data(io_pgtable_ops_to_pgtable(x))
+
+
+struct xen_io_pgtable {
+	struct io_pgtable_cfg	pgtbl_cfg;
+	struct io_pgtable	iop;
+	u64			*pgd;	/* pgtable pgd pointer */
+};
+
+static inline bool is_large_pte(u64 pte)
+{
+	return (pte & IOMMU_PAGE_HUGE);
+}
+
+static inline u64 set_pgtable_attr(u64 *page)
+{
+	return (virt_to_phys(page) | IOMMU_PAGE_PRESENT);
+}
+
+static inline void *get_pgtable_pte(u64 pte)
+{
+	return phys_to_virt(pte & PM_ADDR_MASK);
+}
+
+static u64 set_pte_attr(u64 paddr, u64 pg_size)
+{
+	u64 pte;
+
+	pte = paddr & PM_ADDR_MASK;
+	pte |= IOMMU_PAGE_PRESENT;
+
+	/* Large page */
+	if (pg_size == IOMMU_PAGE_SIZE_1G || pg_size == IOMMU_PAGE_SIZE_2M)
+		pte |= IOMMU_PAGE_HUGE;
+
+	return pte;
+}
+
+static inline u64 get_alloc_page_size(u64 size)
+{
+	if (size >= IOMMU_PAGE_SIZE_1G)
+		return IOMMU_PAGE_SIZE_1G;
+
+	if (size >= IOMMU_PAGE_SIZE_2M)
+		return IOMMU_PAGE_SIZE_2M;
+
+	return XEN_PAGE_SIZE;
+}
+
+static inline int page_size_to_level(u64 pg_size)
+{
+	if (pg_size == IOMMU_PAGE_SIZE_1G)
+		return PAGE_MODE_3_LEVEL;
+	if (pg_size == IOMMU_PAGE_SIZE_2M)
+		return PAGE_MODE_2_LEVEL;
+
+	return PAGE_MODE_1_LEVEL;
+}
+
+static void free_pgtable(u64 *pt, int level)
+{
+	u64 *p;
+	int i;
+
+	for (i = 0; i < MAX_PTRS_PER_PAGE; i++) {
+		/* PTE present? */
+		if (!IOMMU_PTE_PRESENT(pt[i]))
+			continue;
+
+		if (is_large_pte(pt[i]))
+			continue;
+
+		/*
+		 * Free the next level. No need to look at l1 tables here since
+		 * they can only contain leaf PTEs; just free them directly.
+		 */
+		p = get_pgtable_pte(pt[i]);
+		if (level > 2)
+			free_pgtable(p, level - 1);
+		else
+			iommu_free_page(p);
+	}
+
+	iommu_free_page(pt);
+}
+
+/* Allocate page table */
+static u64 *xen_alloc_pte(u64 *pgd, unsigned long iova, gfp_t gfp,
+			  unsigned long pg_size, bool *updated)
+{
+	u64 *pte, *page;
+	int level, end_level;
+
+	level = PAGE_MODE_5_LEVEL - 1;
+	end_level = page_size_to_level(pg_size);
+	pte = &pgd[PM_LEVEL_INDEX(level, iova)];
+	iova = PAGE_SIZE_ALIGN(iova, XEN_PAGE_SIZE);
+
+	while (level >= end_level) {
+		u64 __pte, __npte;
+
+		__pte = *pte;
+
+		if (IOMMU_PTE_PRESENT(__pte) && is_large_pte(__pte)) {
+			/* Unmap large pte */
+			cmpxchg64(pte, *pte, 0ULL);
+			*updated = true;
+			continue;
+		}
+
+		if (!IOMMU_PTE_PRESENT(__pte)) {
+			page = iommu_alloc_page(gfp);
+			if (!page)
+				return NULL;
+
+			__npte = set_pgtable_attr(page);
+			/* pte could have been changed somewhere. */
+			if (cmpxchg64(pte, __pte, __npte) != __pte)
+				iommu_free_page(page);
+			else if (IOMMU_PTE_PRESENT(__pte))
+				*updated = true;
+
+			continue;
+		}
+
+		level -= 1;
+		pte = get_pgtable_pte(__pte);
+		pte = &pte[PM_LEVEL_INDEX(level, iova)];
+	}
+
+	/* Tear down existing pte entries */
+	if (IOMMU_PTE_PRESENT(*pte)) {
+		u64 *__pte;
+
+		*updated = true;
+		__pte = get_pgtable_pte(*pte);
+		cmpxchg64(pte, *pte, 0ULL);
+		if (pg_size == IOMMU_PAGE_SIZE_1G)
+			free_pgtable(__pte, end_level - 1);
+		else if (pg_size == IOMMU_PAGE_SIZE_2M)
+			iommu_free_page(__pte);
+	}
+
+	return pte;
+}
+
+/*
+ * This function checks if there is a PTE for a given dma address.
+ * If there is one, it returns the pointer to it.
+ */
+static u64 *fetch_pte(struct xen_io_pgtable *pgtable, unsigned long iova,
+		      unsigned long *page_size)
+{
+	u64 *pte;
+	int level;
+
+	level = PAGE_MODE_5_LEVEL - 1;
+	pte = &pgtable->pgd[PM_LEVEL_INDEX(level, iova)];
+	/* Default page size is 4K */
+	*page_size = XEN_PAGE_SIZE;
+
+	while (level) {
+		/* Not present */
+		if (!IOMMU_PTE_PRESENT(*pte))
+			return NULL;
+
+		/* Walk to the next level */
+		pte = get_pgtable_pte(*pte);
+		pte = &pte[PM_LEVEL_INDEX(level - 1, iova)];
+
+		/* Large page */
+		if (is_large_pte(*pte)) {
+			if (level == PAGE_MODE_3_LEVEL)
+				*page_size = IOMMU_PAGE_SIZE_1G;
+			else if (level == PAGE_MODE_2_LEVEL)
+				*page_size = IOMMU_PAGE_SIZE_2M;
+			else
+				return NULL;	/* Wrongly set PSE bit in PTE */
+
+			break;
+		}
+
+		level -= 1;
+	}
+
+	return pte;
+}
+
+static int iommu_xen_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
+			       phys_addr_t paddr, size_t pgsize, size_t pgcount,
+			       int prot, gfp_t gfp, size_t *mapped)
+{
+	struct xen_io_pgtable *pgtable = io_pgtable_ops_to_data(ops);	
+	struct io_pgtable_cfg *cfg = &pgtable->pgtbl_cfg;
+	u64 *pte;
+	unsigned long map_size;
+	unsigned long mapped_size = 0;
+	size_t size = pgcount << __ffs(pgsize);
+	int ret = 0;
+	bool updated = false;
+
+	if (WARN_ON(!pgsize || (pgsize & cfg->pgsize_bitmap) != pgsize) || !pgcount)
+		return -EINVAL;
+
+	while (mapped_size < size) {
+		map_size = get_alloc_page_size(pgsize);
+		pte = xen_alloc_pte(pgtable->pgd, iova, gfp, map_size, &updated);
+		if (!pte) {
+			ret = -ENOMEM;
+			goto out;
+		}
+
+		*pte = set_pte_attr(paddr, map_size);
+
+		iova += map_size;
+		paddr += map_size;
+		mapped_size += map_size;
+	}
+
+out:
+	if (mapped)
+		*mapped += mapped_size;
+
+	return ret;
+}
+
+static unsigned long iommu_xen_unmap_pages(struct io_pgtable_ops *ops,
+					   unsigned long iova,
+					   size_t pgsize, size_t pgcount,
+					   struct iommu_iotlb_gather *gather)
+{
+	struct xen_io_pgtable *pgtable = io_pgtable_ops_to_data(ops);
+	struct io_pgtable_cfg *cfg = &pgtable->iop.cfg;
+	unsigned long unmap_size;
+	unsigned long unmapped = 0;
+	size_t size = pgcount << __ffs(pgsize);
+	u64 *pte;
+
+	if (WARN_ON(!pgsize || (pgsize & cfg->pgsize_bitmap) != pgsize || !pgcount))
+		return 0;
+
+	while (unmapped < size) {
+		pte = fetch_pte(pgtable, iova, &unmap_size);
+		if (!pte)
+			return unmapped;
+
+		*pte = 0ULL;
+
+		iova = (iova & ~(unmap_size - 1)) + unmap_size;
+		unmapped += unmap_size;
+	}
+
+	return unmapped;
+}
+
+static phys_addr_t iommu_xen_iova_to_phys(struct io_pgtable_ops *ops, unsigned long iova)
+{
+	struct xen_io_pgtable *pgtable = io_pgtable_ops_to_data(ops);
+	unsigned long offset_mask, pte_pgsize;
+	u64 *pte, __pte;
+
+	pte = fetch_pte(pgtable, iova, &pte_pgsize);
+	if (!pte || !IOMMU_PTE_PRESENT(*pte))
+		return 0;
+
+	offset_mask = pte_pgsize - 1;
+	__pte = *pte & PM_ADDR_MASK;
+
+	return (__pte & ~offset_mask) | (iova & offset_mask);
+}
+
+static void xen_free_pgtable(struct io_pgtable *iop)
+{
+	struct xen_io_pgtable *pgtable = container_of(iop, struct xen_io_pgtable, iop);
+
+	if (!pgtable || !pgtable->pgd)
+		return;
+
+	/* Free page table */
+	free_pgtable(pgtable->pgd, PAGE_MODE_5_LEVEL);
+	kfree(pgtable);
+}
+
+static struct io_pgtable *xen_alloc_pgtable(struct io_pgtable_cfg *cfg, void *cookie)
+{
+	struct xen_io_pgtable *pgtable = kmalloc(sizeof(struct xen_io_pgtable),
+						 GFP_KERNEL);
+	if (!pgtable)
+		return NULL;
+
+	pgtable->pgd = iommu_alloc_page(GFP_KERNEL);
+	if (!pgtable->pgd) {
+		kfree(pgtable);
+		return NULL;
+	}
+
+	pgtable->iop.ops.map_pages    = iommu_xen_map_pages;
+	pgtable->iop.ops.unmap_pages  = iommu_xen_unmap_pages;
+	pgtable->iop.ops.iova_to_phys = iommu_xen_iova_to_phys;
+
+	cfg->pgsize_bitmap = XEN_IOMMU_PGSIZES;
+	cfg->ias           = IOMMU_IN_ADDR_BIT_SIZE;
+	cfg->oas           = IOMMU_OUT_ADDR_BIT_SIZE;
+
+	pgtable->pgtbl_cfg = *cfg;
+
+	return &pgtable->iop;
+}
+
+struct io_pgtable_init_fns io_pgtable_xen_init_fns = {
+	.alloc	= xen_alloc_pgtable,
+	.free	= xen_free_pgtable,
+};
diff --git a/drivers/iommu/io-pgtable.c b/drivers/iommu/io-pgtable.c
index 8841c1487f00..763f6c34db73 100644
--- a/drivers/iommu/io-pgtable.c
+++ b/drivers/iommu/io-pgtable.c
@@ -32,6 +32,9 @@ io_pgtable_init_table[IO_PGTABLE_NUM_FMTS] = {
 	[AMD_IOMMU_V1] = &io_pgtable_amd_iommu_v1_init_fns,
 	[AMD_IOMMU_V2] = &io_pgtable_amd_iommu_v2_init_fns,
 #endif
+#ifdef CONFIG_XEN_IOMMU
+	[XEN_IOMMU_GENERIC] = &io_pgtable_xen_init_fns,
+#endif
 };
 
 static int check_custom_allocator(enum io_pgtable_fmt fmt,
diff --git a/drivers/iommu/xen-iommu.c b/drivers/iommu/xen-iommu.c
new file mode 100644
index 000000000000..01a4cc27f3c9
--- /dev/null
+++ b/drivers/iommu/xen-iommu.c
@@ -0,0 +1,444 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Xen PV-IOMMU driver.
+ *
+ * Copyright (C) 2024 Vates SAS
+ *
+ * Author: Teddy Astie <teddy.astie@vates.tech>
+ *
+ */
+
+#define pr_fmt(fmt)	"xen-iommu: " fmt
+
+#include <linux/err.h>
+#include <linux/module.h>
+#include <linux/iommu.h>
+#include <linux/pci.h>
+#include <linux/printk.h>
+#include <linux/stddef.h>
+#include <linux/minmax.h>
+#include <linux/io-pgtable.h>
+
+#include <xen/xen.h>
+#include <xen/page.h>
+#include <xen/interface/memory.h>
+#include <xen/interface/pv-iommu.h>
+#include <asm/xen/hypercall.h>
+#include <asm/xen/page.h>
+
+MODULE_DESCRIPTION("Xen IOMMU driver");
+MODULE_AUTHOR("Teddy Astie <teddy.astie@vates.tech>");
+MODULE_LICENSE("GPL");
+
+#define MSI_RANGE_START		(0xfee00000)
+#define MSI_RANGE_END		(0xfeefffff)
+
+struct xen_iommu_domain {
+	struct iommu_domain domain;
+
+	u16 ctx_no;			/* Xen PV-IOMMU context number */
+	struct io_pgtable_ops *pgtable;	/* Parralel page table for iova_to_phys */
+};
+
+static struct iommu_device xen_iommu_device;
+static struct pv_iommu_capabilities caps;
+
+static struct xen_iommu_domain xen_iommu_identity_domain;
+static bool map_single_pages = false;
+
+static inline struct xen_iommu_domain *to_xen_iommu_domain(struct iommu_domain *dom)
+{
+	return container_of(dom, struct xen_iommu_domain, domain);
+}
+
+static inline u64 addr_to_pfn(u64 addr)
+{
+	return addr >> 12;
+}
+
+static inline u64 pfn_to_addr(u64 pfn)
+{
+	return pfn << 12;
+}
+
+static bool xen_iommu_capable(struct device *dev, enum iommu_cap cap)
+{
+	switch (cap) {
+	case IOMMU_CAP_CACHE_COHERENCY:
+		return true;
+
+	default:
+		return false;
+	}
+}
+
+static struct iommu_domain *xen_iommu_domain_alloc_paging(struct device *dev)
+{
+	struct xen_iommu_domain *domain;
+	struct io_pgtable_cfg cfg = { .alloc = NULL, .free = NULL };
+	struct io_pgtable_ops *pgtable;
+	int ret;
+
+	struct pv_iommu_alloc alloc = { .alloc_flags = 0 };
+
+	domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+	if (!domain)
+		return ERR_PTR(-ENOMEM);
+
+	pgtable = alloc_io_pgtable_ops(XEN_IOMMU_GENERIC, &cfg, NULL);
+	if (!pgtable) {
+		kfree(domain);
+		return ERR_PTR(-ENOMEM);
+	}
+
+	ret = HYPERVISOR_iommu_op(IOMMU_alloc_context, &alloc);
+
+	if (ret) {
+		pr_err("Unable to create Xen IOMMU context (%d)", ret);
+		kfree(domain);
+		free_io_pgtable_ops(pgtable);
+		return ERR_PTR(ret);
+	}
+
+	domain->ctx_no = alloc.ctx_no;
+	domain->pgtable = pgtable;
+
+	domain->domain.geometry = (struct iommu_domain_geometry){
+		.aperture_start = 0,
+		.aperture_end = caps.max_iova_addr,
+		.force_aperture = true,
+	};
+
+	return &domain->domain;
+}
+
+static struct iommu_device *xen_iommu_probe_device(struct device *dev)
+{
+	if (!dev_is_pci(dev))
+		return ERR_PTR(-ENODEV);
+
+	return &xen_iommu_device;
+}
+
+static int xen_iommu_map_pages(struct iommu_domain *domain, unsigned long iova,
+			       phys_addr_t paddr, size_t pgsize, size_t pgcount,
+			       int prot, gfp_t gfp, size_t *mapped)
+{
+	int ret = 0;
+	size_t _mapped; /* for pgtable callback */
+	struct xen_iommu_domain *dom = to_xen_iommu_domain(domain);
+	struct pv_iommu_map_pages map = {
+		.ctx_no = dom->ctx_no,
+		.pgsize = pgsize,
+		.map_flags = 0,
+		.mapped = 0,
+	};
+
+	/* NOTE: paddr is actually bound to pfn, not gfn */
+	uint64_t pfn0 = addr_to_pfn(paddr);
+	uint64_t dfn0 = addr_to_pfn(iova);
+
+	if (prot & IOMMU_READ)
+		map.map_flags |= IOMMU_MAP_readable;
+
+	if (prot & IOMMU_WRITE)
+		map.map_flags |= IOMMU_MAP_writeable;
+
+	if (prot & IOMMU_CACHE)
+		map.map_flags |= IOMMU_MAP_cache;
+
+	if (map_single_pages) {
+		size_t i = 0;
+		map.nr_pages = 1;
+
+		for (; i < pgcount; i++) {
+			map.gfn = pfn_to_gfn(pfn0 + i);
+			map.dfn = dfn0 + i;
+			map.nr_pages = 1;
+
+			ret = HYPERVISOR_iommu_op(IOMMU_map_pages, &map);
+
+			if (ret)
+				break;
+		}
+	} else {
+		map.nr_pages = pgcount;
+		map.gfn = pfn_to_gfn(pfn0);
+		map.dfn = dfn0;
+
+		ret = HYPERVISOR_iommu_op(IOMMU_map_pages, &map);
+	}
+
+	if (mapped)
+		*mapped = pgsize * map.mapped;
+
+	dom->pgtable->map_pages(dom->pgtable, iova, paddr, pgsize, pgcount,
+				prot, gfp, &_mapped);
+
+	return ret;
+}
+
+static size_t xen_iommu_unmap_pages(struct iommu_domain *domain, unsigned long iova,
+				    size_t pgsize, size_t pgcount,
+				    struct iommu_iotlb_gather *iotlb_gather)
+{
+	struct xen_iommu_domain *dom = to_xen_iommu_domain(domain);
+	struct pv_iommu_unmap_pages unmap = {
+		.ctx_no = dom->ctx_no,
+		.pgsize = pgsize,
+		.unmapped = 0,
+		.nr_pages = pgcount,
+		.dfn = addr_to_pfn(iova),
+	};
+
+	WARN_ON(HYPERVISOR_iommu_op(IOMMU_unmap_pages, &unmap));
+	dom->pgtable->unmap_pages(dom->pgtable, iova, pgsize, pgcount,
+				  iotlb_gather);
+
+	return unmap.unmapped * pgsize;
+}
+
+static int xen_iommu_attach_dev(struct iommu_domain *domain, struct device *dev)
+{
+	struct pci_dev *pdev;
+	struct xen_iommu_domain *dom = to_xen_iommu_domain(domain);
+	struct pv_iommu_reattach_device reattach = {
+		.ctx_no = dom->ctx_no,
+		.pasid = 0,
+	};
+
+	pdev = to_pci_dev(dev);
+
+	reattach.dev.seg = pci_domain_nr(pdev->bus);
+	reattach.dev.bus = pdev->bus->number;
+	reattach.dev.devfn = pdev->devfn;
+
+	return HYPERVISOR_iommu_op(IOMMU_reattach_device, &reattach);
+}
+
+static void xen_iommu_free(struct iommu_domain *domain)
+{
+	int ret;
+	struct xen_iommu_domain *dom = to_xen_iommu_domain(domain);
+	struct pv_iommu_free op = {
+		.ctx_no = dom->ctx_no,
+		.free_flags = 0,
+	};
+
+	ret = HYPERVISOR_iommu_op(IOMMU_free_context, &op);
+
+	if (ret)
+		pr_err("Context %hu destruction failure\n", dom->ctx_no);
+
+	free_io_pgtable_ops(dom->pgtable);
+
+	kfree(domain);
+}
+
+static phys_addr_t xen_iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
+{
+	struct xen_iommu_domain *dom = to_xen_iommu_domain(domain);
+
+	if (!dom->ctx_no)
+		/* If default domain is identity, phys_addr is iova. */
+		return (caps.cap_flags & IOMMUCAP_default_identity) ? iova : 0;
+	
+	return dom->pgtable->iova_to_phys(dom->pgtable, iova);
+}
+
+static void xen_iommu_get_resv_regions(struct device *dev, struct list_head *head)
+{
+	struct iommu_resv_region *reg;
+	struct xen_reserved_device_memory *entries;
+	struct xen_reserved_device_memory_map map;
+	struct pci_dev *pdev;
+	int ret, i;
+
+	pdev = to_pci_dev(dev);
+
+	reg = iommu_alloc_resv_region(MSI_RANGE_START,
+				      MSI_RANGE_END - MSI_RANGE_START + 1,
+				      0, IOMMU_RESV_MSI, GFP_KERNEL);
+
+	if (!reg)
+		return;
+
+	list_add_tail(&reg->list, head);
+
+	/* Map xen-specific entries */
+
+	/* First, get number of entries to map */
+	map.buffer = NULL;
+	map.nr_entries = 0;
+	map.flags = 0;
+
+	map.dev.pci.seg = pci_domain_nr(pdev->bus);
+	map.dev.pci.bus = pdev->bus->number;
+	map.dev.pci.devfn = pdev->devfn;
+
+	ret = HYPERVISOR_memory_op(XENMEM_reserved_device_memory_map, &map);
+
+	if (ret == 0)
+		/* No reserved region, nothing to do */
+		return;
+
+	if (ret != -ENOBUFS) {
+		pr_err("Unable to get reserved region count (%d)\n", ret);
+		return;
+	}
+
+	/* Assume a reasonable number of entries, otherwise, something is probably wrong */
+	if (WARN_ON(map.nr_entries > 256))
+		pr_warn("Xen reporting many reserved regions (%u)\n", map.nr_entries);
+
+	/* And finally get actual mappings */
+	entries = kcalloc(map.nr_entries, sizeof(struct xen_reserved_device_memory),
+					  GFP_KERNEL);
+
+	if (!entries) {
+		pr_err("No memory for map entries\n");
+		return;
+	}
+
+	map.buffer = entries;
+
+	ret = HYPERVISOR_memory_op(XENMEM_reserved_device_memory_map, &map);
+
+	if (ret != 0) {
+		pr_err("Unable to get reserved regions (%d)\n", ret);
+		kfree(entries);
+		return;
+	}
+
+	for (i = 0; i < map.nr_entries; i++) {
+		struct xen_reserved_device_memory entry = entries[i];
+
+		reg = iommu_alloc_resv_region(pfn_to_addr(entry.start_pfn),
+					      pfn_to_addr(entry.nr_pages),
+					      0, IOMMU_RESV_RESERVED, GFP_KERNEL);
+
+		if (!reg)
+			break;
+
+		list_add_tail(&reg->list, head);
+	}
+
+	kfree(entries);
+}
+
+static struct iommu_ops xen_iommu_ops = {
+	.identity_domain = &xen_iommu_identity_domain.domain,
+	.release_domain = &xen_iommu_identity_domain.domain,
+	.capable = xen_iommu_capable,
+	.domain_alloc_paging = xen_iommu_domain_alloc_paging,
+	.probe_device = xen_iommu_probe_device,
+	.device_group = pci_device_group,
+	.get_resv_regions = xen_iommu_get_resv_regions,
+	.pgsize_bitmap = XEN_PAGE_SIZE,
+	.default_domain_ops = &(const struct iommu_domain_ops) {
+		.map_pages = xen_iommu_map_pages,
+		.unmap_pages = xen_iommu_unmap_pages,
+		.attach_dev = xen_iommu_attach_dev,
+		.iova_to_phys = xen_iommu_iova_to_phys,
+		.free = xen_iommu_free,
+	},
+};
+
+static int __init xen_iommu_init(void)
+{
+	long ret;
+
+	if (!xen_domain())
+		return -ENODEV;
+
+	/* Check if iommu_op is supported */
+	if ((ret = HYPERVISOR_iommu_op(IOMMU_query_capabilities, &caps)))
+	{
+		pr_err("Unable to query capabilities (%ld)", ret);
+		return -ENODEV; /* No Xen IOMMU hardware */
+	}
+
+	/* If ctx_no is zero, it may be due to PV-IOMMU not being initialized. */
+	if (!caps.max_ctx_no)
+	{
+		/* Try to initialize PV-IOMMU */
+		struct pv_iommu_init init;
+
+		pr_info("Got no usable context, try initializing PV-IOMMU\n");
+
+		/* FIXME: Don't hardcode this */
+		init.max_ctx_no = 128;
+		init.arena_order = 12;
+
+		pr_info("init.max_ctx_no=%hu\n", init.max_ctx_no);
+		pr_info("init.arena_order=%hu\n", init.arena_order);
+
+		/* Try to initialize PV-IOMMU */
+		ret = HYPERVISOR_iommu_op(IOMMU_init, &init);
+
+		if (ret == -EACCES) {
+			/* PV-IOMMU being already initialized often means not allowed. */
+			pr_warn("PV-IOMMU is already initialized, guest may not be allowed to use PV-IOMMU\n");
+			return -EACCES;
+		} else if (ret) {
+			pr_err("PV-IOMMU initialization failure (%ld)", ret);
+			return ret;
+		}
+
+		WARN_ON(HYPERVISOR_iommu_op(IOMMU_query_capabilities, &caps));
+	}
+
+	pr_info("Initialising Xen IOMMU driver\n");
+	pr_info("max_ctx_no=%hu\n", caps.max_ctx_no);
+	pr_info("max_iova_addr=%llx\n", caps.max_iova_addr);
+	pr_info("pgsize_mask=%d\n", caps.pgsize_mask);
+	pr_info("default_identity=%c\n", (caps.cap_flags & IOMMUCAP_default_identity) ? 'y' : 'n');
+	pr_info("cache=%c\n", (caps.cap_flags & IOMMUCAP_cache) ? 'y' : 'n');
+
+	if (caps.max_ctx_no == 0) {
+		pr_err("Unable to use IOMMU PV driver (no context available ?)\n");
+		return -ENOTSUPP; /* Unable to use IOMMU PV ? */
+	}
+
+	xen_iommu_ops.pgsize_bitmap = caps.pgsize_mask;
+
+	if (xen_domain_type == XEN_PV_DOMAIN)
+		/* TODO: In PV domain, due to the existing pfn-gfn mapping we need to
+		 * consider that under certains circonstances, we have :
+		 *   pfn_to_gfn(x + 1) != pfn_to_gfn(x) + 1
+		 *
+		 * In these cases, we would want to separate the subop into several calls.
+		 * (only doing the grouped operation when the mapping is actually contigous)
+		 * Only map operation would be affected, as unmap actually uses dfn which
+		 * doesn't have this kind of mapping.
+		 *
+		 * Force single-page operations to work arround this issue for now.
+		 */
+		map_single_pages = true;
+
+	/* Initialize identity domain */
+	xen_iommu_identity_domain.ctx_no = 0;
+
+	xen_iommu_identity_domain.domain.geometry = (struct iommu_domain_geometry){
+		.aperture_start = 0,
+		.aperture_end = caps.max_iova_addr,
+		.force_aperture = true,
+	};
+
+	ret = iommu_device_sysfs_add(&xen_iommu_device, NULL, NULL, "xen-iommu");
+	if (ret) {
+		pr_err("Unable to add Xen IOMMU sysfs\n");
+		return ret;
+	}
+
+	ret = iommu_device_register(&xen_iommu_device, &xen_iommu_ops, NULL);
+	if (ret) {
+		pr_err("Unable to register Xen IOMMU device %ld\n", ret);
+		iommu_device_sysfs_remove(&xen_iommu_device);
+		return ret;
+	}
+
+	return 0;
+}
+
+module_init(xen_iommu_init);
diff --git a/include/linux/io-pgtable.h b/include/linux/io-pgtable.h
index b1ecfc3cd5bc..8b1cd995d6f3 100644
--- a/include/linux/io-pgtable.h
+++ b/include/linux/io-pgtable.h
@@ -19,6 +19,7 @@ enum io_pgtable_fmt {
 	AMD_IOMMU_V2,
 	APPLE_DART,
 	APPLE_DART2,
+	XEN_IOMMU_GENERIC,
 	IO_PGTABLE_NUM_FMTS,
 };
 
@@ -303,5 +304,6 @@ extern struct io_pgtable_init_fns io_pgtable_arm_mali_lpae_init_fns;
 extern struct io_pgtable_init_fns io_pgtable_amd_iommu_v1_init_fns;
 extern struct io_pgtable_init_fns io_pgtable_amd_iommu_v2_init_fns;
 extern struct io_pgtable_init_fns io_pgtable_apple_dart_init_fns;
+extern struct io_pgtable_init_fns io_pgtable_xen_init_fns;
 
 #endif /* __IO_PGTABLE_H */
diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
index 1a371a825c55..c860acaf4b0e 100644
--- a/include/xen/interface/memory.h
+++ b/include/xen/interface/memory.h
@@ -10,6 +10,7 @@
 #ifndef __XEN_PUBLIC_MEMORY_H__
 #define __XEN_PUBLIC_MEMORY_H__
 
+#include <xen/interface/physdev.h>
 #include <linux/spinlock.h>
 
 /*
@@ -214,6 +215,38 @@ struct xen_add_to_physmap_range {
 };
 DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
 
+/*
+ * With some legacy devices, certain guest-physical addresses cannot safely
+ * be used for other purposes, e.g. to map guest RAM.  This hypercall
+ * enumerates those regions so the toolstack can avoid using them.
+ */
+#define XENMEM_reserved_device_memory_map   27
+struct xen_reserved_device_memory {
+    xen_pfn_t start_pfn;
+    xen_ulong_t nr_pages;
+};
+DEFINE_GUEST_HANDLE_STRUCT(xen_reserved_device_memory);
+
+struct xen_reserved_device_memory_map {
+#define XENMEM_RDM_ALL 1 /* Request all regions (ignore dev union). */
+    /* IN */
+    uint32_t flags;
+    /*
+     * IN/OUT
+     *
+     * Gets set to the required number of entries when too low,
+     * signaled by error code -ERANGE.
+     */
+    unsigned int nr_entries;
+    /* OUT */
+    GUEST_HANDLE(xen_reserved_device_memory) buffer;
+    /* IN */
+    union {
+        struct physdev_pci_device pci;
+    } dev;
+};
+DEFINE_GUEST_HANDLE_STRUCT(xen_reserved_device_memory_map);
+
 /*
  * Returns the pseudo-physical memory map as it was when the domain
  * was started (specified by XENMEM_set_memory_map).
diff --git a/include/xen/interface/pv-iommu.h b/include/xen/interface/pv-iommu.h
new file mode 100644
index 000000000000..a4a470319486
--- /dev/null
+++ b/include/xen/interface/pv-iommu.h
@@ -0,0 +1,341 @@
+/* SPDX-License-Identifier: MIT */
+/**
+ * pv-iommu.h
+ *
+ * Paravirtualized IOMMU driver interface.
+ *
+ * Copyright (c) 2024 Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#ifndef __XEN_PUBLIC_PV_IOMMU_H__
+#define __XEN_PUBLIC_PV_IOMMU_H__
+
+#include "xen.h"
+#include "physdev.h"
+
+#ifndef uint64_aligned_t
+#define uint64_aligned_t uint64_t
+#endif
+
+#define IOMMU_DEFAULT_CONTEXT (0)
+
+enum {
+    /* Basic cmd */
+    IOMMU_noop = 0,
+    IOMMU_query_capabilities,
+    IOMMU_init,
+    IOMMU_alloc_context,
+    IOMMU_free_context,
+    IOMMU_reattach_device,
+    IOMMU_map_pages,
+    IOMMU_unmap_pages,
+    IOMMU_remote_cmd,
+
+    /* Extended cmd */
+    IOMMU_alloc_nested,     /* if IOMMUCAP_nested */
+    IOMMU_flush_nested,     /* if IOMMUCAP_nested */
+    IOMMU_attach_pasid,     /* if IOMMUCAP_pasid */
+    IOMMU_detach_pasid,     /* if IOMMUCAP_pasid */
+};
+
+/**
+ * Indicate if the default context is a identity mapping to domain memory.
+ * If not defined, default context blocks all DMA to domain memory.
+ */
+#define IOMMUCAP_default_identity  (1 << 0)
+
+/**
+ * IOMMU_MAP_cache support.
+ */
+#define IOMMUCAP_cache     (1 << 1)
+
+/**
+ * Support for IOMMU_alloc_nested.
+ */
+#define IOMMUCAP_nested    (1 << 2)
+
+/**
+ * Support for IOMMU_attach_pasid and IOMMU_detach_pasid and pasid parameter in
+ * reattach_context.
+ */
+#define IOMMUCAP_pasid     (1 << 3)
+
+/**
+ * Support for IOMMU_ALLOC_identity
+ */
+#define IOMMUCAP_identity (1 << 4)
+
+/**
+ * IOMMU_query_capabilities
+ * Query PV-IOMMU capabilities for this domain.
+ */
+struct pv_iommu_capabilities {
+    /*
+     * OUT: Maximum device address (iova) that the guest can use for mappings.
+     */
+    uint64_aligned_t max_iova_addr;
+
+    /* OUT: IOMMU capabilities flags */
+    uint32_t cap_flags;
+
+    /* OUT: Mask of all supported page sizes. */
+    uint32_t pgsize_mask;
+
+    /* OUT: Maximum pasid (if IOMMUCAP_pasid) */
+    uint32_t max_pasid;
+
+    /* OUT: Maximum number of IOMMU context this domain can use. */
+    uint16_t max_ctx_no;
+};
+typedef struct pv_iommu_capabilities pv_iommu_capabilities_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_capabilities_t);
+
+/**
+ * IOMMU_init
+ * Initialize PV-IOMMU for this domain.
+ *
+ * Fails with -EACCESS if PV-IOMMU is already initialized.
+ */
+struct pv_iommu_init {
+    /* IN: Maximum number of IOMMU context this domain can use. */
+    uint32_t max_ctx_no;
+
+    /* IN: Arena size in pages (in power of two) */
+    uint32_t arena_order;
+};
+typedef struct pv_iommu_init pv_iommu_init_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_init_t);
+
+/**
+ * Create a 1:1 identity mapped context to domain memory
+ * (needs IOMMUCAP_identity).
+ */
+#define IOMMU_ALLOC_identity (1 << 0)
+
+/**
+ * IOMMU_alloc_context
+ * Allocate an IOMMU context.
+ * Fails with -ENOSPC if no context number is available.
+ */
+struct pv_iommu_alloc {
+    /* OUT: allocated IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: allocation flags */
+    uint32_t alloc_flags;
+};
+typedef struct pv_iommu_alloc pv_iommu_alloc_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_alloc_t);
+
+/**
+ * Move all devices to default context before freeing the context.
+ */
+#define IOMMU_FREE_reattach_default (1 << 0)
+
+/**
+ * IOMMU_free_context
+ * Destroy a IOMMU context.
+ *
+ * If IOMMU_FREE_reattach_default is specified, move all context devices to
+ * default context before destroying this context.
+ *
+ * If there are devices in the context and IOMMU_FREE_reattach_default is not
+ * specified, fail with -EBUSY.
+ *
+ * The default context can't be destroyed.
+ */
+struct pv_iommu_free {
+    /* IN: IOMMU context number to free */
+    uint16_t ctx_no;
+
+    /* IN: Free operation specific flags */
+    uint32_t free_flags;
+};
+typedef struct pv_iommu_free pv_iommu_free_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_free_t);
+
+/* Device has read access */
+#define IOMMU_MAP_readable (1 << 0)
+
+/* Device has write access */
+#define IOMMU_MAP_writeable (1 << 1)
+
+/* Enforce DMA coherency */
+#define IOMMU_MAP_cache (1 << 2)
+
+/**
+ * IOMMU_map_pages
+ * Map pages on a IOMMU context.
+ *
+ * pgsize must be supported by pgsize_mask.
+ * Fails with -EINVAL if mapping on top of another mapping.
+ * Report actually mapped page count in mapped field (regardless of failure).
+ */
+struct pv_iommu_map_pages {
+    /* IN: IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Guest frame number */
+    uint64_aligned_t gfn;
+
+    /* IN: Device frame number */
+    uint64_aligned_t dfn;
+
+    /* IN: Map flags */
+    uint32_t map_flags;
+
+    /* IN: Size of pages to map */
+    uint32_t pgsize;
+
+    /* IN: Number of pages to map */
+    uint32_t nr_pages;
+
+    /* OUT: Number of pages actually mapped */
+    uint32_t mapped;
+};
+typedef struct pv_iommu_map_pages pv_iommu_map_pages_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_map_pages_t);
+
+/**
+ * IOMMU_unmap_pages
+ * Unmap pages on a IOMMU context.
+ *
+ * pgsize must be supported by pgsize_mask.
+ * Report actually unmapped page count in mapped field (regardless of failure).
+ * Fails with -ENOENT when attempting to unmap a page without any mapping
+ */
+struct pv_iommu_unmap_pages {
+    /* IN: IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Device frame number */
+    uint64_aligned_t dfn;
+
+    /* IN: Size of pages to unmap */
+    uint32_t pgsize;
+
+    /* IN: Number of pages to unmap */
+    uint32_t nr_pages;
+
+    /* OUT: Number of pages actually unmapped */
+    uint32_t unmapped;
+};
+typedef struct pv_iommu_unmap_pages pv_iommu_unmap_pages_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_unmap_pages_t);
+
+/**
+ * IOMMU_reattach_device
+ * Reattach a device to another IOMMU context.
+ * Fails with -ENODEV if no such device exist.
+ */
+struct pv_iommu_reattach_device {
+    /* IN: Target IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Physical device to move */
+    struct physdev_pci_device dev;
+
+    /* IN: PASID of the device (if IOMMUCAP_pasid) */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_reattach_device pv_iommu_reattach_device_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_reattach_device_t);
+
+
+/**
+ * IOMMU_remote_cmd
+ * Do a PV-IOMMU operation on another domain.
+ * Current domain needs to be allowed to act on the target domain, otherwise
+ * fails with -EPERM.
+ */
+struct pv_iommu_remote_cmd {
+    /* IN: Target domain to do the subop on */
+    uint16_t domid;
+
+    /* IN: Command to do on target domain. */
+    uint16_t subop;
+
+    /* INOUT: Command argument from current domain memory */
+    GUEST_HANDLE(void) arg;
+};
+typedef struct pv_iommu_remote_cmd pv_iommu_remote_cmd_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_remote_cmd_t);
+
+/**
+ * IOMMU_alloc_nested
+ * Create a nested IOMMU context (needs IOMMUCAP_nested).
+ *
+ * This context uses a platform-specific page table from domain address space
+ * specified in pgtable_gfn and use it for nested translations.
+ *
+ * Explicit flushes needs to be submited with IOMMU_flush_nested on
+ * modification of the nested pagetable to ensure coherency between IOTLB and
+ * nested page table.
+ *
+ * This context can be destroyed using IOMMU_free_context.
+ * This context cannot be modified using map_pages, unmap_pages.
+ */
+struct pv_iommu_alloc_nested {
+    /* OUT: allocated IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: guest frame number of the nested page table */
+    uint64_aligned_t pgtable_gfn;
+
+    /* IN: nested mode flags */
+    uint64_aligned_t nested_flags;
+};
+typedef struct pv_iommu_alloc_nested pv_iommu_alloc_nested_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_alloc_nested_t);
+
+/**
+ * IOMMU_flush_nested (needs IOMMUCAP_nested)
+ * Flush the IOTLB for nested translation.
+ */
+struct pv_iommu_flush_nested {
+    /* TODO */
+};
+typedef struct pv_iommu_flush_nested pv_iommu_flush_nested_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_flush_nested_t);
+
+/**
+ * IOMMU_attach_pasid (needs IOMMUCAP_pasid)
+ * Attach a new device-with-pasid to a IOMMU context.
+ * If a matching device-with-pasid already exists (globally),
+ * fail with -EEXIST.
+ * If pasid is 0, fails with -EINVAL.
+ * If physical device doesn't exist in domain, fail with -ENOENT.
+ */
+struct pv_iommu_attach_pasid {
+    /* IN: IOMMU context to add the device-with-pasid in */
+    uint16_t ctx_no;
+
+    /* IN: Physical device */
+    struct physdev_pci_device dev;
+
+    /* IN: pasid of the device to attach */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_attach_pasid pv_iommu_attach_pasid_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_attach_pasid_t);
+
+/**
+ * IOMMU_detach_pasid (needs IOMMUCAP_pasid)
+ * detach a device-with-pasid.
+ * If the device-with-pasid doesn't exist or belong to the domain,
+ * fail with -ENOENT.
+ * If pasid is 0, fails with -EINVAL.
+ */
+struct pv_iommu_detach_pasid {
+    /* IN: Physical device */
+    struct physdev_pci_device dev;
+
+    /* pasid of the device to detach */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_detach_pasid pv_iommu_detach_pasid_t;
+DEFINE_GUEST_HANDLE_STRUCT(pv_iommu_detach_pasid_t);
+
+/* long do_iommu_op(int subop, XEN_GUEST_HANDLE_PARAM(void) arg) */
+
+#endif
\ No newline at end of file
diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
index 0ca23eca2a9c..8b1daf3fecc6 100644
--- a/include/xen/interface/xen.h
+++ b/include/xen/interface/xen.h
@@ -65,6 +65,7 @@
 #define __HYPERVISOR_xc_reserved_op       39 /* reserved for XenClient */
 #define __HYPERVISOR_xenpmu_op            40
 #define __HYPERVISOR_dm_op                41
+#define __HYPERVISOR_iommu_op 					  43
 
 /* Architecture-specific hypercall definitions. */
 #define __HYPERVISOR_arch_0               48
-- 
2.45.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 Nov 04 15:41:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 15:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830093.1245008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7zCO-00045u-IR; Mon, 04 Nov 2024 15:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830093.1245008; Mon, 04 Nov 2024 15: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 1t7zCO-00045n-Fk; Mon, 04 Nov 2024 15:41:00 +0000
Received: by outflank-mailman (input) for mailman id 830093;
 Mon, 04 Nov 2024 15:40: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=g8Ql=R7=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t7zCM-00045O-78
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 15:40:58 +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 2c4087e8-9ac3-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 16:40:52 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so2424338a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 07:40:52 -0800 (PST)
Received: from jmerino-thinkstation ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cebfd0e052sm3197425a12.58.2024.11.04.07.40.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Nov 2024 07: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: 2c4087e8-9ac3-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJjNDA4N2U4LTlhYzMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzM0ODUyLjU0NDY5LCJzZW5kZXIiOiJqYXZpLm1lcmlub0BjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730734852; x=1731339652; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=XIwiXCMpyKXrd6a4FFS1/3vcVVahj5MBaEMbmmDVRWU=;
        b=WX1LiTUxHmrdCQT/6jbkXh1eHSY56qu1y9mSvjCmj0mtUzmqCU/JqAKwnv6xe2e8FN
         rVpODlBEzjY/eYmZSM6X7X2n1q6kHZySLxmiXZGbwwJYQa9z12IIQYRnaNd5WQkcwfHb
         NuO8nmpL9063POtmLiYuaXFcD/ydkNaLgDuMI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730734852; x=1731339652;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=XIwiXCMpyKXrd6a4FFS1/3vcVVahj5MBaEMbmmDVRWU=;
        b=ozB7dfCPtedl7AwzVBwLFKm2tHw2W9HYGxVMdZZKokAK2PFveWQ/2JpFqtu290naWD
         My/7xKQvnmPoaqi6ePydr31V45n9F/8vBjnJ+4aIqbj9cLtp8isg6Rnzsr0kjpMAMD8X
         bFl3O3tSIqwLSGZtTatDtscUV3GNao/o0qGO1cq4wZ0MefK/bngnuE9hOteggUbYYd4q
         91RG8u7zUYOwIfCVCxiEfogRwHaEY/I6rHosnJ81+eJnPrbaNHyhmE/fvHGlXrV509wU
         TDk4iCkKbS8Sm9z7QSZ5BKClzDhX6JMDlRz0SfdkrL0QiDXaNNs9F8A8jkgzNMcVclYW
         6fJg==
X-Gm-Message-State: AOJu0Yz4zBZyi0XZF+xxq70CtPOBcYqi1sNAnJIpNE+OoA4vOdz9C5da
	pCWUQhpc2xyHHq2kkcgfoU6CCvGO9TuRiQiR11wVV27sYPYN00qLLvvrxhKcJ/s=
X-Google-Smtp-Source: AGHT+IH6ll8ukRhJe/Pk2bv6eUQhJGSMwX2y5B+0w2MgAi1BUp8L/LXrTc9q//6oSANp5QBikMzzhw==
X-Received: by 2002:a05:6402:d09:b0:5c8:8d5e:19b0 with SMTP id 4fb4d7f45d1cf-5cbbfa74da6mr22818129a12.30.1730734851718;
        Mon, 04 Nov 2024 07:40:51 -0800 (PST)
Date: Mon, 4 Nov 2024 15:40:49 +0000
From: Javi Merino <javi.merino@cloud.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: [XEN PATCH v1 1/6] CI: Refresh the Debian 12 x86_64 container
Message-ID: <2mwzs4e6x2ugoyapikfcoxnif6ffsumnewb44d2amtkknanz3j@5xtmufpalvx2>
References: <cover.1729760501.git.javi.merino@cloud.com>
 <288fcc10dbcbdab1c33ebfb95bedf2366ba64122.1729760501.git.javi.merino@cloud.com>
 <f8452748-067d-48d3-8ed3-3adc98566aa3@citrix.com>
 <opwqn4ewu3pvrmhoikglwzfzu7pwkiht7en4vtnmc755nxphvr@ilgcrk3bo2sa>
 <9cbbfe4c-ca22-42e4-94fc-873e177aa291@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9cbbfe4c-ca22-42e4-94fc-873e177aa291@citrix.com>

On Fri, Oct 25, 2024 at 03:46:35PM +0100, Andrew Cooper wrote:
> On 24/10/2024 4:10 pm, Javi Merino wrote:
> > On Thu, Oct 24, 2024 at 03:04:10PM +0100, Andrew Cooper wrote:
> >> On 24/10/2024 11:04 am, Javi Merino wrote:
> >>> +
> >>> +    apt-get update
> >> apt-get -y
> > apt-get update refreshes the package lists.  -y doesn't do anything
> > here.  It is needed for "apt-get install" below but not for
> > apt-get update.  It would be needed for "apt-get upgrade", but
> > we don't.
> 
> Hmm ok.Â  We might want to adjust the others to match then.

Ok, I will send a patch for the others.

> >>> +        expect
> >> Expect is only for the test phase, so should move later.
> > I put it here because ./configure checks for it.
> 
> It does?
> 
> That's not necessary/expected.

Ok, I'll move it. 

> >> Any decompressor which we don't find a suitable devel package gets the
> >> hypervisor form instead.
> >>
> >>> +        # To build the documentation
> >>> +        pandoc
> >> I know we had pandoc before, but I'd like to drop it.
> >>
> >> I'm intending to turn off docs generally, and do them separately in a
> >> single job that has *all* the docs build dependencies, not a misc subset
> >> that the build system happens not to complain at.
> > I had the "build the docs as its own job" in my TODO list and was
> > going to drop pandoc from this dockerfile then.  I can remove pandoc
> > in this commit if you prefer.
> 
> Dropping packages from existing containers is complicated, because the
> container (name) is shared with prior branches.Â  You have to wait until
> the oldest version of Xen which still uses the package leaves testing
> (== leaves security support, == 3y), or we've backported changes to all
> branches to drop the dependency.
> 
> The rename here gives us leeway because this change won't clobber any
> older branches in Xen, but I don't want to set the precedent.

Ok, this is another one to fix for the future.  Having dependencies in
the dockerfile in this branch because it is used in another branch is
a recipe for disaster.  CI for a branch should be defined on that
branch.

I'll drop pandoc.

> >> I'm on the fence about the Qemu build things.Â  It's off by default now,
> >> but the container never previously had meson/ninja so it wouldn't have
> >> built either.Â  Perhaps leave them out until someone complains.
> > I thought I had removed them.  Is there anything else that needs to
> > go?
> 
> These containers are both for CI and human use, so "what happens in CI"
> isn't the only consideration.
> 
> But, given that Qemu didn't build in the old container anyway, I'm not
> overly fussed about keeping it working in the new container.
> 
> So yes, please keep the deps removed.Â  We can always add them back in later.

Ok.

Cheers,
Javi


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 16:17:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 16:17:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830100.1245018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t7zlv-0000f8-6U; Mon, 04 Nov 2024 16:17:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830100.1245018; Mon, 04 Nov 2024 16:17: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 1t7zlv-0000f1-42; Mon, 04 Nov 2024 16:17:43 +0000
Received: by outflank-mailman (input) for mailman id 830100;
 Mon, 04 Nov 2024 16:17: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=g8Ql=R7=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t7zlu-0000ev-5v
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 16:17:42 +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 4cf8949d-9ac8-11ef-99a3-01e77a169b0f;
 Mon, 04 Nov 2024 17:17:34 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5cacb76e924so5724312a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Nov 2024 08:17:34 -0800 (PST)
Received: from jmerino-thinkstation ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb181398bsm251166b.196.2024.11.04.08.17.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Nov 2024 08:17: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: 4cf8949d-9ac8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRjZjg5NDlkLTlhYzgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzM3MDU0LjkyMTY5Mywic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730737054; x=1731341854; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=GM4S3rkfGIkFbByj9y2vDhzkBKnIdzm7im7yKcE6maI=;
        b=LE6o7E5WrivBSPhVdTxOSCJt9g+h/yXnJUQmuJfMdg4MWaLR9bLQfVq/VJTUJWzM7h
         Y9UNlr0sDbyvBKN2NbfJAHoBkrqJmHonWWZW5YyZIa621LbxYf9udZuhZXm8FLvdCYUo
         iPFCTju7o3UkCp1NhmQXL3uriRhAvK3NnZWFA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730737054; x=1731341854;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GM4S3rkfGIkFbByj9y2vDhzkBKnIdzm7im7yKcE6maI=;
        b=mvOII1xq7opK7kzg0l/h8N3XqlxUJLbjF/tIXCg1oo/Uf1ZMODzbq5kSAg/wu+7IXN
         kkb2JfY9eE4Kyi6Md2jRVoWtSzX/2+uSWLHg1HCr3mm5LX+uTBByjnDee2D+xvV4b8O1
         /zg9oV13QiXgzHskg+o1ugYMGc6vjAMvQsZ8d+p/CifE+6jiBEPOKs2v1ihQE7znBcrl
         /7fzReA7sxR5rhdjz2psOfJCPonqYLX7RGaqzJ0nM7wXk46aVioHBfW5OZ6am1aAcwoy
         dw6G+/KBPBxeBzPP0SgYjD947jFAL1fPQj9Y0yKbdNB4JEdH6ZfN5eOhGo1/MaJhbfxU
         pJ/A==
X-Gm-Message-State: AOJu0YyzCQnDnDCTWPGsDzpCqWmtrbUN7X0WLgYyZMnoGEGj+bo0+iW+
	3GltrUWLCjfUAJ+D/uYwY2liJdzzEnxVeQSSCjsfZkTDk0FKwjbK1yHHzEt20SHhSq5hv9gwpML
	cYTg=
X-Google-Smtp-Source: AGHT+IHboPmdIkGiR30pH16F9NksPKYBw/4lGLaR3OAQOloeKpLE7rQUfykng94NZ12gYDqrQ6nCTw==
X-Received: by 2002:a17:907:d2a:b0:a9a:4e7d:b0a1 with SMTP id a640c23a62f3a-a9e6587e1e9mr1097782766b.49.1730737054228;
        Mon, 04 Nov 2024 08:17:34 -0800 (PST)
Date: Mon, 4 Nov 2024 16:17:32 +0000
From: Javi Merino <javi.merino@cloud.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v1 3/6] CI: Refresh the Debian 12 arm64 container
Message-ID: <bev6ggo45o6jjiqgnfkxrnq4sjvbh4ssyx2bhf3cfjd5k32akv@o7jio3uidok3>
References: <cover.1729760501.git.javi.merino@cloud.com>
 <50c1ec986787c8fe3bf975b0003069b67e885032.1729760501.git.javi.merino@cloud.com>
 <alpine.DEB.2.22.394.2410241601480.3833@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2410241601480.3833@ubuntu-linux-20-04-desktop>

On Thu, Oct 24, 2024 at 04:03:56PM -0700, Stefano Stabellini wrote:
> On Thu, 24 Oct 2024, Javi Merino wrote:
> > Rework the container to use heredocs for readability and use apt-get
> > --no-install-recommends to keep the size down.  Rename the job to
> > debian-12-arm64-* to follow the naming scheme of all the other CI jobs.
> > 
> > This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB.
> 
> Hi Javi, I am a bit confused by the new list of packages. I diff'ed the
> old list with the new list, and I appended the difference below. Maybe I
> ask how did you manage to make the new list?

I started from scratch.  I dropped everything and only added the
packages that were needed.

> As an example, are bcc and
> bin86 necessary?

They are not, that's why I dropped them.  The list you generated shows
as "+" the things that were in the old container and "-" are the ones
in the new container that were not in the old container.

If this helps, for the next series I will add a diff of the packages
added and removed.

Cheers,
Javi

>  acpica-tools
> +bcc
> +bin86
>  bison
>  build-essential
>  busybox-static
> -ca-certificates
>  checkpolicy
> +clang
>  cpio
>  curl
>  device-tree-compiler
>  expect
> -file
>  flex
> -git-core
> -golang-go
> -libbz2-dev
> -libext2fs-dev
> +git
> +libaio-dev
>  libfdt-dev
> +libfindlib-ocaml-dev
>  libglib2.0-dev
>  liblzma-dev
> -liblzo2-dev
> +libncurses5-dev
> +libnl-3-dev
>  libpixman-1-dev
>  libyajl-dev
> -libzstd-dev
> -ocaml-findlib
> +markdown
> +nasm
>  ocaml-nox
> +pandoc
>  pkg-config
>  python3-dev
>  python3-setuptools
> +transfig
>  u-boot-qemu
>  u-boot-tools
>  uuid-dev
>  wget
> +zlib1g-dev


From xen-devel-bounces@lists.xenproject.org Mon Nov 04 19:06:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 19:06:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830111.1245028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t82PN-0004D7-PM; Mon, 04 Nov 2024 19:06:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830111.1245028; Mon, 04 Nov 2024 19:06: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 1t82PN-0004D0-M7; Mon, 04 Nov 2024 19:06:37 +0000
Received: by outflank-mailman (input) for mailman id 830111;
 Mon, 04 Nov 2024 19: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=fwMG=R7=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t82PM-0004Cu-KL
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 19:06:36 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20609.outbound.protection.outlook.com
 [2a01:111:f403:2406::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3a9e993-9adf-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 20:06:27 +0100 (CET)
Received: from SN1PR12CA0052.namprd12.prod.outlook.com (2603:10b6:802:20::23)
 by MN6PR12MB8471.namprd12.prod.outlook.com (2603:10b6:208:473::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Mon, 4 Nov
 2024 19:06:18 +0000
Received: from SA2PEPF00003F62.namprd04.prod.outlook.com
 (2603:10b6:802:20:cafe::5b) by SN1PR12CA0052.outlook.office365.com
 (2603:10b6:802:20::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.25 via Frontend
 Transport; Mon, 4 Nov 2024 19:06:18 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003F62.mail.protection.outlook.com (10.167.248.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Mon, 4 Nov 2024 19:06:17 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Mon, 4 Nov
 2024 13:06:16 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Mon, 4 Nov 2024 13: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: e3a9e993-9adf-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNjo6NjA5IiwiaGVsbyI6Ik5BTTAyLVNOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImUzYTllOTkzLTlhZGYtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzQ3MTg3LjI0ODk3Mywic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gpp3CKHXTz/pdaS/6ObygeiErcrYci5KJBRhnmT/s4fVM35l+S+6RCu03kP3rX9mHxMjloko6JRMuIWZoq+2whsuTlI8NW+I3g0iIvRbqFDSpNlxxi8akfaPXxMrfMxyVC4e0YkO85xq93s0zxMDYdU+MP4aHy4LeKvS7yB6TCBAEHHs9r8ZKKsUuIOgxu88KZgL+HUQCNd39odV8X7IVNUTeoy6x4bR/JhLcIdXKUjwToOMhVoOmcSo3V0eIxfM31OWb4PPjD1a72jBsf1grvA8wKSzFhRWGfnXfOB1xjRcdHZ1C4jT8VgbqrTHq6RYhgQPhdK0stbaB1Zu5EyPSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zsaeceIIctxjNjYJrC6gnvRwndeQc6hOIJ+p92ZUoyI=;
 b=X+sT8LnfUp7kRvniMKvGyhmR4OJOp6NHsc14EOJiJPgWLsJDmriKgI4p9aV/kA7YkfzSvRp3g0BDPFgH/6h6XaH2B0xJ2D0d93z9aesbpT1JcDW2Ity2UtpthHzriXjj8CFm7q0QPwEGjHNwwLdbRmh5aC7hoQcWT0+gdVTAmguMpChRj48279yrcPosNTKhi7hgJzVMQLMMp9I8BdB3cmq9tSJf2OB8gwKVHwcS/gwXZht+ZfbdfMwnfMU4mG47MTpdT2qdbKNFIV0RaWw85lQX8nV64CcArrmNGQ4Iso6VDhy0q8I8y1NxPY3PJSq+ZxnBMnxGG9SFatkjNSp2hA==
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=zsaeceIIctxjNjYJrC6gnvRwndeQc6hOIJ+p92ZUoyI=;
 b=TLaeOBNN8vaqIRkaJPnkMOE8QoECdxdYEZumDPQC6ykLDhZs5GO5jjZUj1hW8OGJit+TA64w6vc+mZTuucyDBc4U2okcnnpxMoxvN3ppaoRWG6TW9nNNgwVawTct7JB8ywKqdNLmy1SlxKoqi6RbGy7DaEqCcS3ccMnIMxEaMgE=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	"Michal Orzel" <michal.orzel@amd.com>, Artem Mygaiev <artem_mygaiev@epam.com>
Subject: [PATCH] docs: fusa: Add requirements for mapping domain address to machine address
Date: Mon, 4 Nov 2024 19:06:08 +0000
Message-ID: <20241104190608.3036159-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F62:EE_|MN6PR12MB8471:EE_
X-MS-Office365-Filtering-Correlation-Id: 8070a9b5-ac05-43c0-6233-08dcfd03c2a4
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?cLCcomHAxbu5yVyxeYSm/46w8ZMlfbXGcmYMYA4XEtzBs5MLbvVQQgTp1kvg?=
 =?us-ascii?Q?y7cl/5+cgrLzto/n0cauXJC+ybkPK1qmy0XmFT+95IT06GuDnKvkPTJadMlw?=
 =?us-ascii?Q?4GwR0GxrNwy/KTZa7QWmfHxqILHwL29ZA29G4DBMCa4PYAecGW6MhOhAs9iP?=
 =?us-ascii?Q?nvrie9Ll8Tp//IZUohq/NEH9vP7IPotSOV36sUyjhGeGLHou04DYduxGwa4s?=
 =?us-ascii?Q?vvfeqkAW5GXT6NppmWHacQEP2ZMIjGWczqE8SuNu9PbYWTLwfzZhJSouVvDT?=
 =?us-ascii?Q?tayos6zvDtDUtEM/h33R2W6b82IGA+/krRtuUukf/cBkVPzXhkHTQaj+13y0?=
 =?us-ascii?Q?C1dWDWjEilcDE4hvzdNPpHnuHedxQka5+JdzS0xtImkth8eMNUygimkXYZLt?=
 =?us-ascii?Q?MlS5eU3kC8WO9nCpUSXgBQcjtQUN5ietSdRTq5WJ54k6qSX2LGaXveO18inZ?=
 =?us-ascii?Q?WwKOGUcY8Hh9lsgZCbNXXPlNVuy4lVE0df5R7r6nVg2D1oYasHBcnd+FBrU8?=
 =?us-ascii?Q?vzxixy6U587596R0ybEsD2Ko7O/tNSYp7kDuz9kfSyFHjQvYJW9r3ZSO8MOg?=
 =?us-ascii?Q?bF6oy1X0Be7hF5VWP4t5kXPm4lv8Ppw1QtyBuf6/yAeJo3NG1JGVgtl6NqmZ?=
 =?us-ascii?Q?JfZ0uHDk/rj5ce/kr3fiel/tIyoAc6Szk4nmIk9kbqNHwx1quxmvMpID+i2f?=
 =?us-ascii?Q?TkM4WXfAb5TuaXlkqSZJrCGqkNDxxRQTCAFhPS4LCrKZNjsrFY8sFf8zS8b2?=
 =?us-ascii?Q?Rc63mXV09xOdxs17BlgY1i8ALL1J2lH6+C3SBbw2m7Hp7KRXKPEMV7O/Jd/B?=
 =?us-ascii?Q?8mloEf/AnDqRPNMPbBYd/Z9+Iil1xsbt40tr/2KSnclxg8FFhv1ZLpINaHVk?=
 =?us-ascii?Q?sg02rbw5wKg31L9pGxwrPO4G1z2b/+u1T1g4oYvmDjhWsuQdPPmjc3SYHTH7?=
 =?us-ascii?Q?LjrKbTvLFjxblqXtE0EFmUW+tphI/M+ak9DsEW2cysi/GoVvmyF0MqRRkyL0?=
 =?us-ascii?Q?4GGi1DqDu7GL8VDP4Eoasu2jls7DgnYktOuE7WNmuP+Fr0t/UMVc+YMeTyvV?=
 =?us-ascii?Q?yikDyC512V8VdUSwj2svW3c0kBM0zMU5oOXkIOIHa1Wui5o/2B0aGt/W+ZuQ?=
 =?us-ascii?Q?VieJnDFuRmx8Uf/kBo3yb81pcVy1UVmvkGMlDtQRTe5TGtJT48ZCJRWdhZn4?=
 =?us-ascii?Q?6H4GY1aXB5gY2PTP23wTk6zbpD63BkcrnA+hCrLeEWNCANEq8wREMKZc90Wa?=
 =?us-ascii?Q?htLAZ87nbgPFK417c0pI4EqyRMUgbPvYpGqHzt/UqJdNP5MGhqqV68VOAqpR?=
 =?us-ascii?Q?jentLWlrXuhtM1qXPL+RZ82d3lUdRqOvtYpEJa6KJidS5Xcw6shF5bqKkgOQ?=
 =?us-ascii?Q?vEmSRfXwaomAdBqe3OaHiKTu/NrXrPcXzbptohExknpiX+vrcw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 04 Nov 2024 19:06:17.0487
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8070a9b5-ac05-43c0-6233-08dcfd03c2a4
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F62.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8471

The following are the requirements written mapping :-
domain virtual address to machine address
intermediate physical address to machine address

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 .../design-reqs/arm64/domain_buffer_copy.rst  | 172 ++++++++++++++++++
 docs/fusa/reqs/market-reqs/reqs.rst           |  30 +++
 docs/fusa/reqs/product-reqs/arm64/reqs.rst    |  40 +++-
 3 files changed, 240 insertions(+), 2 deletions(-)
 create mode 100644 docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst

diff --git a/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst b/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
new file mode 100644
index 0000000000..67a70a35c4
--- /dev/null
+++ b/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
@@ -0,0 +1,172 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Translate domain address to machine address
+-------------------------------------------
+
+`XenSwdgn~arm64_translate_domain_addr_to_machine_addr~1`
+
+Description:
+Xen shall translate a domain address to machine address using Address
+Translation Stage 1+2 Non-Secure Kernel Read/Write registers.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~translate_domain_va_to_ma~1`
+
+Get machine address
+-------------------
+
+`XenSwdgn~arm64_get_machine_addr~1`
+
+Description:
+Xen shall be able to get the machine address for a domain by reading
+the physical address register.
+
+Rationale:
+
+Comments:
+It should return the fault information if the translation has failed.
+
+Covers:
+ - `XenProd~translate_domain_va_to_ma~1`
+ - `XenProd~access_check_fetch_page~1`
+
+Translate domain address to intermediate physical address
+---------------------------------------------------------
+
+`XenSwdgn~arm64_translate_domain_addr_to_ipa~1`
+
+Description:
+Xen shall translate a domain address to intermediate physical address using
+Address Translation Stage 1 Non-Secure Kernel Read/Write registers.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Set domain address as intermediate physical address
+---------------------------------------------------
+
+`XenSwdgn~arm64_set_ipa_eq_gva~1`
+
+Description:
+Xen shall set domain virtual address as intermediate physical address when EL1
+MMU is disabled.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 4KB domain address to IPA
+----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 4KB page granularity using TTBR0
+for intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 16KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr0~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 16KB page granularity using TTBR0 for
+intermediate physical address size = 48 bits.
+
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 64KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 64KB page granularity using TTBR0 for
+intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 4KB domain address to IPA
+----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 4KB page granularity using TTBR1 for
+intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 16KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr1~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 16KB page granularity using TTBR1 for
+intermediate physical address size = 48 bits.
+
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 64KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 64KB page granularity using TTBR1 for
+intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
diff --git a/docs/fusa/reqs/market-reqs/reqs.rst b/docs/fusa/reqs/market-reqs/reqs.rst
index ca020f9a33..9b6852d746 100644
--- a/docs/fusa/reqs/market-reqs/reqs.rst
+++ b/docs/fusa/reqs/market-reqs/reqs.rst
@@ -60,5 +60,35 @@ Rationale:
 
 Comments:
 
+Needs:
+ - XenProd
+
+Copy buffer to domain
+---------------------
+
+`XenMkt~copy_buffer_to_domain~1`
+
+Description:
+Xen shall support copying a buffer to a domain.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
+
+Copy buffer from domain
+-----------------------
+
+`XenMkt~copy_buffer_from_domain~1`
+
+Description:
+Xen shall support copying a buffer from a domain.
+
+Rationale:
+
+Comments:
+
 Needs:
  - XenProd
\ No newline at end of file
diff --git a/docs/fusa/reqs/product-reqs/arm64/reqs.rst b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
index 0453dbb862..e2ab5ea43e 100644
--- a/docs/fusa/reqs/product-reqs/arm64/reqs.rst
+++ b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
@@ -53,10 +53,46 @@ Rationale:
 
 Comments:
 
+Covers:
+ - `XenMkt~static_vm_definition~1`
+
+Needs:
+ - XenSwdgn
+
+Translate domain virtual address to machine address
+---------------------------------------------------
+
+`XenProd~translate_domain_va_to_ma~1`
+
+Description:
+Xen shall support translating domain's virtual address to machine address.
+
 Rationale:
 
+Comments:
+
 Covers:
- - `XenMkt~static_vm_definition~1`
+ - `XenMkt~copy_buffer_from_domain~1`
+ - `XenMkt~copy_buffer_to_domain~1`
 
 Needs:
- - XenSwdgn
\ No newline at end of file
+ - XenSwdgn
+
+Access check and fetch page from domain
+---------------------------------------
+
+`XenProd~access_check_fetch_page~1`
+
+Description:
+Xen shall support access check and fetching page from a domain.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenMkt~copy_buffer_from_domain~1`
+ - `XenMkt~copy_buffer_to_domain~1`
+
+Needs:
+ - XenSwdgn
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 04 22:09:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Nov 2024 22:09:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830123.1245039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t85GL-0000Pg-CY; Mon, 04 Nov 2024 22:09:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830123.1245039; Mon, 04 Nov 2024 22: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 1t85GL-0000PZ-9X; Mon, 04 Nov 2024 22:09:29 +0000
Received: by outflank-mailman (input) for mailman id 830123;
 Mon, 04 Nov 2024 22:09: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=0Hjm=R7=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1t85GJ-0000PT-Vr
 for xen-devel@lists.xenproject.org; Mon, 04 Nov 2024 22:09:28 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2416::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7020a965-9af9-11ef-a0c5-8be0dac302b0;
 Mon, 04 Nov 2024 23:09:20 +0100 (CET)
Received: from BLAPR03CA0023.namprd03.prod.outlook.com (2603:10b6:208:32b::28)
 by DM4PR12MB6134.namprd12.prod.outlook.com (2603:10b6:8:ad::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.24; Mon, 4 Nov
 2024 22:09:14 +0000
Received: from BL02EPF0001A103.namprd05.prod.outlook.com
 (2603:10b6:208:32b:cafe::33) by BLAPR03CA0023.outlook.office365.com
 (2603:10b6:208:32b::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30 via Frontend
 Transport; Mon, 4 Nov 2024 22:09:14 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A103.mail.protection.outlook.com (10.167.241.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Mon, 4 Nov 2024 22:09:14 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Mon, 4 Nov
 2024 16:09:12 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 4 Nov
 2024 16:09:12 -0600
Received: from [172.25.174.226] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Nov 2024 16:09: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: 7020a965-9af9-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjBkIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjcwMjBhOTY1LTlhZjktMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzU4MTYwLjg5MTI5Miwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YsiDcP9oW4pMWesUVfjvU4erIZAL0Isz8tVDAdWDHcUzGOCY6WsWtFR2IcGaFwkCkkk3wU/Ov1YLgT3WUaaktnvPQIFqp2e5sxm5p23Eg8t+d8/GLkG+KZImobsVBF2fVBipADmM1YmiJvdUXx1Y636FzropT1m2IxHf1gL2wG2a5Ors+Z08h1o6JSZrEdbDed9fuJJIiRrLfCynAKsxFWtrTAVUBlNZ4Bh+ckyc1H/ZjIfVYDKl4PfJH8qtV/HK5tHOyTM0Pm1bhQXxD10EnafaFEb+J0dGaJR7lcng0Km46pVV+co6rfXo+vSJrjn55qGQmSXEWi5nh92Psal9dA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e+CTe0DuLRxVNwagvnEk52+IwGebyG5Mudi65S8b6hs=;
 b=k/DBrfGkdMwlAi0kyA9fSMhHnLMIcpxW94i5hWVJvvozKkp55/xT2jTtXCRAnCOYbFp+Ga/BVRD6fyT+8L98YFQ/q66e0TP0MfRWqBjbjWtZkPSPAQWUXzmMOt8+tFMyDCuKmri2LlYybIpaMCFgCSUibT4jFVgIzN3wLQuxZeuojUWh80NiT3QJaejUTXErcvNnn3m4XdILBUo9m5geMpZcM5QRmql8s76kAXfZXvgqhFerl+SuaLezHoGzZA1+90U7mFv1VsJD92nZ3SUIA+jzF1bQpzRhsTUb0/b904x3zHBCxnfk+6dA0FhcYVnLl2FugvsC9ARTsp43vIAMtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.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=e+CTe0DuLRxVNwagvnEk52+IwGebyG5Mudi65S8b6hs=;
 b=KXLr3a7Zel41mLZ7uoqYiJUSbrqApaOmN+ErVPrKu34KAsSLg4ta+U9o2QtWH8fZrAbkUVW3I25bDbvnYElTHbQNBCVw0pOIUpWLKkbzLVGg64fZOH7qFua6aemeZMATCJHT5FVLICCM909D6ra9S3QKNMZzrDw+XSkAqT91SSY=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <64d8f920-8dbc-4d98-9b1d-535d1413caf8@amd.com>
Date: Mon, 4 Nov 2024 17:09:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [QEMU PATCH v9] xen/passthrough: use gsi to map pirq when dom0 is
 PVH
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Paul Durrant <paul@xen.org>, "Edgar E . Iglesias"
	<edgar.iglesias@gmail.com>, "Michael S . Tsirkin" <mst@redhat.com>, "Marcel
 Apfelbaum" <marcel.apfelbaum@gmail.com>, "qemu-devel@nongnu.org"
	<qemu-devel@nongnu.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Huang, Ray" <Ray.Huang@amd.com>
References: <20241024090629.1944820-1-Jiqian.Chen@amd.com>
 <356652df-b5b4-4c28-9c5c-4bfc4f36813f@amd.com>
 <BL1PR12MB584985EF3C4F3D482A3F8E95E7512@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <BL1PR12MB584985EF3C4F3D482A3F8E95E7512@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A103:EE_|DM4PR12MB6134:EE_
X-MS-Office365-Filtering-Correlation-Id: 7881d0e1-0cef-4a2c-e9fb-08dcfd1d5171
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?VW03YytzemVMM0QyMTJib2ZCRFNHYmR2SmNld24xVGY3MFNIQUozYWdMQnVL?=
 =?utf-8?B?WHYrVVhON0t0OC8ycXVFRm11Z3Y2cHEyOEZFVjJaeEdtZnVJZDgrRFJxQjVW?=
 =?utf-8?B?NHNPcjJDeFY5VlRYM3RYTmtCUEVOVUIvQlUvUnpVbnQxa1ljaVlGU1YvK01s?=
 =?utf-8?B?N3BIbzdRRXZBY0MyVnpRa0cvZE9BMWZRVHdnWjFpMjQwSnpGLzBkWUNsNVVs?=
 =?utf-8?B?enRWMzhMbVJhbzVoeEtibkZac1M0bnVPbGFDd3RmRG1tRmp4L0RrMWl4Ymtl?=
 =?utf-8?B?ZmVIZ0EvRFVvd1JGcjFPWEN5aTcwRmN5MGlIQ1lXNjJZZGY0OTBJalpRWENZ?=
 =?utf-8?B?UzZpbEtmOHIwN2ZIanl1MmRML1pnYUNmYkZYZEQxeTQ1SmFhTU96TnZTdFB1?=
 =?utf-8?B?eFZmZDZTTHd3Z1FWaEVYWi9icFQ4NEtuMEVrSmxIQ3hDVjJUSmtUTmJ0a2dk?=
 =?utf-8?B?Q3lmS3hSOUp5dWZzcE1YNjJZS0RnemlQVkQ2bUFLZGx3Yk9WUjJmVDZwNStG?=
 =?utf-8?B?akFSRkxzc3lLTkRucVFKTFNyWks0UzBvNEN2dWl2cHZiZ1dYYzVkWm1CZzh1?=
 =?utf-8?B?UWYxMFAwMVNKZkE1YWg3M3d1c2FOOXgwUkxpZU1FMjRoSTBFd0Iwb1JIaG5n?=
 =?utf-8?B?dWJaMW9aWlZEVXh5QzVqRmZLOSs4UUptblpENnhyc2preWg4MHJDdzgxZlFW?=
 =?utf-8?B?NnRFYXU4cE5sVkRRWjNCdGJxVkp6ZllRR2NpbHRWOTR2M2NYT0RkS0dZaGU3?=
 =?utf-8?B?eFhDZG1QWklJL1Ryb0syT2lUUGRpbVpQNHZ6VUNwSVpGV1gxRWE4cVp0WWF2?=
 =?utf-8?B?RTRoOXNzZVVFRE5TRnhzb1lDZWdBbWJjQTRxMmZEVCsrRnJIemRXeXc0c1hi?=
 =?utf-8?B?WlJMQVJMdXlOcU0wUk9vUTF6U2JKSTVybUg4R0lQbGU2cGV5TU8zMmgwdXp5?=
 =?utf-8?B?T3ZwZHhuaVNvUm95UkpSU0x5RnNFNUlGd0pYcE5RaHBtZzRpR3JLbTdVZlhJ?=
 =?utf-8?B?K3EwWjVGRGJ3OE5qaUt1ZmkzM1I3SG0zUDgwWGNyMFRyem1sZ09HZ2dIcXE2?=
 =?utf-8?B?cjNUakhkUmk0ZWVNeUdYSWludTU3TG5Zemh5L05LNjRsNG5RVlRndklsblVC?=
 =?utf-8?B?dmlOL0hyUEl2emJITi92ZFRMTTdvdyt0bFhBZU5qamVQM3JqaTl3L0hyT1Fl?=
 =?utf-8?B?Zm5FZjVvYU5ud1cvNk45b2tUNzJ3TGRYR2grWE9tUGFXSzVOMWVROFVCZjBr?=
 =?utf-8?B?ZjVJdmVOTXZydjBlOTJNVTZLVWR3NE1MWm9mVGo2SUxVNjBnYzgrNGR5UjY1?=
 =?utf-8?B?cmMreC81TWwxSU9DbG5obTBHWHQ5OEkxQUc3cTl4bHFzcXVwVnVsem5nbXdG?=
 =?utf-8?B?RWhvTXBPcm1hMEtnZFQ4OEIraTAyUXFzY2hpOXlOUm9HclRPSXViZjRSbUh2?=
 =?utf-8?B?bGlnaDRaUFNsdXc0cmlJM0FaZHJxUHY1THZ2elZiSnNiZ2pEK1dNSE1oMjJl?=
 =?utf-8?B?ZVYxdHRuSmppUzI0WitBd0RxdlFzdDJYUUU1VG5zb3ZsNW52emswaUI2RUV2?=
 =?utf-8?B?U3NodWI2Nlp4UUlRZnZlZU9BdWU2d1N3cHBNZ09qbWNpeHVRZ0MwUmlOVU5m?=
 =?utf-8?B?a2lHOVorUDdjejZVN0Z4M3llQ1JsL1hpYytrK2d5WDRxSFkxRmtNajF4Vzhs?=
 =?utf-8?B?QWVXS0RFdnFLL3ZFQWc1aUl3M2dCOXVaWlUyNWtzOEF0dWF2QlFPNWhXRk9j?=
 =?utf-8?B?S2JFUHBYNDZKUUwrdmFYVE10emdnSmJibm92ZzB4Y0p3VUJMQnFXSk9jN1lX?=
 =?utf-8?B?S2l3Zmh2SFNtcnY3TWtwaFhDblQrdlNrbEtqTTZlbStleVZCa24vTk93VExD?=
 =?utf-8?B?RUJPd1l0MEEvQXFQcmV0TEMrWU45RklPQUkrQjVvNUxnY2c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 04 Nov 2024 22:09:14.1285
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7881d0e1-0cef-4a2c-e9fb-08dcfd1d5171
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A103.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6134

On 11/4/24 01:03, Chen, Jiqian wrote:
> On 2024/11/1 21:09, Stewart Hildebrand wrote:
>> On 10/24/24 05:06, Jiqian Chen wrote:
>>> diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
>>> index 3635d1b39f79..5b10d501d566 100644
>>> --- a/hw/xen/xen_pt.c
>>> +++ b/hw/xen/xen_pt.c
>>> @@ -766,6 +766,50 @@ static void xen_pt_destroy(PCIDevice *d) {
>>>  }
>>>  /* init */
>>>  
>>> +#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 42000
>>> +static bool xen_pt_need_gsi(void)
>>> +{
>>> +    FILE *fp;
>>> +    int len;
>>> +    char type[10];
>>
>> A brief in-code comment to explain how you arrived at 10 would be
>> appreciated.
> The max number of characters in the description of the "guest_type" is 4 ("PVH" plus line break).
> I set it to 10 to prevent longer description types in the future.
> Do you have another suggest number?

No, I think 10 is a good choice. I'm just looking for the rationale to
be documented.


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 01:10:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 01:10:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830133.1245049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t885T-00065Y-6r; Tue, 05 Nov 2024 01:10:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830133.1245049; Tue, 05 Nov 2024 01:10: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 1t885T-00065Q-3L; Tue, 05 Nov 2024 01:10:27 +0000
Received: by outflank-mailman (input) for mailman id 830133;
 Tue, 05 Nov 2024 01: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=ulGH=SA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1t885R-00065K-CM
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 01:10:25 +0000
Received: from fhigh-a5-smtp.messagingengine.com
 (fhigh-a5-smtp.messagingengine.com [103.168.172.156])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8713a2e-9b12-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 02:10:19 +0100 (CET)
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 405DF11401F9;
 Mon,  4 Nov 2024 20:10:17 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-10.internal (MEProxy); Mon, 04 Nov 2024 20:10:17 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 4 Nov 2024 20:10: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: b8713a2e-9b12-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwMy4xNjguMTcyLjE1NiIsImhlbG8iOiJmaGlnaC1hNS1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImI4NzEzYTJlLTliMTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzY5MDE5LjU0ODQwNywic2VuZGVyIjoibWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=1730769017;
	 x=1730855417; bh=J+7P8xteRq8wQlNyzyUG8rvcwFv0gFU76i55be+PgCM=; b=
	D4E9+8t30BkKGBD438phCZS6Q15LpA79mkhII2FOwP7KsQWWnrAEd6sk49bD7HdL
	VKwNdOeqeMt4+pEu1qHu/Q6bGVuSeynC58u9qN8bk1i4nqdPvgFI5PQ07mPA03+w
	ARyr0L8fXkNzY9DywLA7KTSMIeHCBxoffSeUGLOYsX0eq5CLIyWYjlOssI32t0vn
	zWP2FyXFuwV0rgv1yQsNa8Xa8t6DWxDpkMS4RVvfD+1tb7wJvFj5QOXppM3zp0Q+
	cEU0w10fleE7aSZ7dZE1r2OkY0mCXKbSZW8AuAquCrfOtgCXwJzIxEyjYar1q18u
	IvC1vQkA5rOIk01j6UhGBQ==
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=fm3; t=
	1730769017; x=1730855417; bh=J+7P8xteRq8wQlNyzyUG8rvcwFv0gFU76i5
	5be+PgCM=; b=VaKd0dmPY6ZPIJPf854WYcLh8gYlj2Fq/BBIeiT+kXCEei1kXvW
	YGmzH6ARRCI88q/0RKr2OSBc4oZgeJ9MopEOhuZx9wPE/2GwC1gbap6d2m+l7pMW
	HbllLM4IExyoF+ly+up41wFi9VKKslcEr7mlpdHyoyTTGhiCfUh+0BccVzMHAG4G
	1GillxWAd4QhkeSi2ogaRqlfr2MKaVIFWTFWWa8BLXXWd4HbT6EWxi/DroN5Ugiw
	la9z1IzwLkPzW10/lW5W1IO2OQfBsn4UJ05PSK4hXHEe5MEHiWCJEyXF2iv6aVjE
	FopvfM3IWPJ9UpACzbj6ogtUyo9gPUNI1MQ==
X-ME-Sender: <xms:eHApZwmDAtThtKpsS-_F4--EG5LJacv0bgFOfHjfemMsYAzJtKyYXg>
    <xme:eHApZ_38DWlXXJ1fCG2NWxvoQC-8inbeKwjAs8HgzCtmN3M_LbdipmWK0ryEcV2tY
    xGYpfykYEpj6w>
X-ME-Received: <xmr:eHApZ-pd3OKVP_02figXy2wA3d1UCGKDb4P935op8D07eB8F7Y6wPVwBZK3H397r2NR6GyR1X-ZW9BYEAdtf3OvgCuyztvGCQQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeljedgfedvucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
    htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddtjeen
    ucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomh
    grrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggft
    rfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettddvge
    euteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhho
    mhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnh
    gspghrtghpthhtohepuddtpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehtvggu
    ugihrdgrshhtihgvsehvrghtvghsrdhtvggthhdprhgtphhtthhopeigvghnqdguvghvvg
    hlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgv
    fidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepjhgsvghulhhitg
    hhsehsuhhsvgdrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgt
    phhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhope
    hrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehluhhkrghsiies
    hhgrfihrhihlkhhordhplhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhssh
    holhhuthhiohhnshdrtghomh
X-ME-Proxy: <xmx:eHApZ8mkz1goYWSyH53Zl2A9VNWmJLuAy68WafUkK2DCa5dcQdygTg>
    <xmx:eHApZ-2DBdI3jLiRI71oZ2MAoXtBp_V0FbtiabRNuvNc-2pzqW_fnw>
    <xmx:eHApZzu2QgZmhYYmjyIih_Zox8ii2xWywq1ouMIkllcYwgSWwYYwzg>
    <xmx:eHApZ6UqIjWpC865u9FDm01SzAOjQK4le6g4szcgti9ObOXMH2pvCg>
    <xmx:eXApZ8yJK1QdPdgU4vzRttvRnit4TwXdLb4GOhaMzfugD07ZTud_etnS>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 5 Nov 2024 02:10:11 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?utf-8?B?TcOzd2th?= <mateusz.mowka@intel.com>
Subject: Re: [XEN RFC PATCH v4 0/5] IOMMU subsystem redesign and PV-IOMMU
 interface
Message-ID: <ZylwdZjIeQ9qRdc_@mail-itl>
References: <cover.1730718102.git.teddy.astie@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="t90/ENPpixzWsUkk"
Content-Disposition: inline
In-Reply-To: <cover.1730718102.git.teddy.astie@vates.tech>


--t90/ENPpixzWsUkk
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 5 Nov 2024 02:10:11 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?utf-8?B?TcOzd2th?= <mateusz.mowka@intel.com>
Subject: Re: [XEN RFC PATCH v4 0/5] IOMMU subsystem redesign and PV-IOMMU
 interface

On Mon, Nov 04, 2024 at 02:28:38PM +0000, Teddy Astie wrote:
> * introduce "dom0-iommu=3Dno-dma" to make default context block all DMA
>   (disables HAP and sync-pt), enforcing usage of PV-IOMMU for DMA
>   Can be used to expose properly "Pre-boot DMA protection"

This sounds like it disables HAP completely, but actually it looks like
disabling sharing HAP page tables with IOMMU ones, right? That (HAP
sharing) is relevant for PVH dom0 only, correct?

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

--t90/ENPpixzWsUkk
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmcpcHUACgkQ24/THMrX
1yyXwwgAilkke7CKCVgF37PlQQI5UkTLaeb1vg7Dr3AjrEnfl3pGJB/GhIucugVY
T0ey3KOGFRly8uEC2cLaWZAexBbBeXdo0ZswAJD5f5gzdPmyaXiMJKxj/jwIolXY
tgkgPMjJlOVOZzKt/y8mM1uqGgAeCuZoNFfT6w3uBFFqza/YYw1xg5UtpvI+RXDH
7tWOgAA8+cBs6y9lMD3IDYDHz8CxkGZIqyeESBmZWKQNNhRLy6IWG9ILOc6dYzLX
gPKHqCI9g4MbNvrPdw4+DpBzZPh0JSb3My0zRB20E12bVkbPjgvfajX2kUnDEg32
LwK+01ocQ9BtBNJ9A/eOwOiLKXeteA==
=kPAg
-----END PGP SIGNATURE-----

--t90/ENPpixzWsUkk--


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 09:03:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 09:03:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830147.1245058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8FSw-0002g0-W8; Tue, 05 Nov 2024 09:03:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830147.1245058; Tue, 05 Nov 2024 09: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 1t8FSw-0002ft-TL; Tue, 05 Nov 2024 09:03:10 +0000
Received: by outflank-mailman (input) for mailman id 830147;
 Tue, 05 Nov 2024 09: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=vo3s=SA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8FSw-0002fn-H3
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 09:03:10 +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 c5a9ac3c-9b54-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 10:03:06 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9eaaab29bcso223017666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 01:03:06 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a30e8sm102407166b.3.2024.11.05.01.03.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 01:03: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: c5a9ac3c-9b54-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM1YTlhYzNjLTliNTQtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwNzk3Mzg2Ljk5OTcwNiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730797386; x=1731402186; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=NgNdo/78kLx8xgxYNFPPqXWCif+sgKS9XB2pivzpSiI=;
        b=ivqfGRO6AFbhZcYfOT6tNsD7s7sN+GVy9ySrbb3z3+8vfQcAGmX4lMdNdE1kGe7Oc+
         S0O5KTp+wovCrQxH5LSts/Brn+IATHHf7X2gI/frw6FyUF3CaV1LelJE48meGj5A1a2+
         fRsqLc8b+DyR/5TlAUY2UdsF1jK7iMNhFqijw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730797386; x=1731402186;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NgNdo/78kLx8xgxYNFPPqXWCif+sgKS9XB2pivzpSiI=;
        b=RyAcJAg4meFGqGSW9du7Jl+gtVzmQl57dc/QQlTeQMklsaKr/SLX9EzAmOrXqMNeEG
         cFQxr/l9IfCe8koGIJdchpyyNZRaleCdb3SnXexPbEEE/N0JwxMv56q0KE/oKUoJqiaD
         jTCQFQRp7S0dbZKHP86w25UZY9sUJ3G31Lce82uo6xwysT4qfCXUavqZHEjPc9RqdMgz
         jkWT1rp3HP9Ipl/V18+UnHUwb9UxnPzuzXpc+yaXT0uGA2DoxyGgI5nbL/vTtiLcNsyR
         g/8vxAXB1QHiTdB3SsePk1MkhzU8IQV9/aN7LgMn8FLnjnOpL4wyv5orfcu+2dKPDdR5
         VlOQ==
X-Forwarded-Encrypted: i=1; AJvYcCWLr93CjhhS5e0cekikzCfCX6y7vHnwJ5upVVbx/hqlGz9yEemWIm8kOZQfzSoKEQuOBWnkfsBRjSc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwthIPhcIFuiHf9qPtaBG8qYFSgpHgaxxggilh+yPWaVPw35KRa
	ejAar3LWkJ3vjAgzC0J+GozdIrHZbhbr4B7zV3ccN3Wid1r1LMYvR3kmIZxCHuk=
X-Google-Smtp-Source: AGHT+IF+HRw8cinGCUkZyHiH9CLB8Sz1oBrAl8kkKfQSdF4tJh9zhfQg0YqFiox6afysrzHTA5gZdw==
X-Received: by 2002:a17:907:7208:b0:a9a:15fb:727a with SMTP id a640c23a62f3a-a9e508ac2dcmr1930927766b.13.1730797386289;
        Tue, 05 Nov 2024 01:03:06 -0800 (PST)
Date: Tue, 5 Nov 2024 10:03:04 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
Message-ID: <ZynfSMUVEy71ZskR@macbook>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>

On Sat, Nov 02, 2024 at 11:18:24AM -0400, Daniel P. Smith wrote:
> On 11/1/24 16:16, Stewart Hildebrand wrote:
> > +Daniel (XSM mention)
> > 
> > On 10/28/24 13:02, Jan Beulich wrote:
> > > On 18.10.2024 22:39, Stewart Hildebrand wrote:
> > > > Add links between a VF's struct pci_dev and its associated PF struct
> > > > pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
> > > > dropping and re-acquiring the pcidevs_lock().
> > > > 
> > > > During PF removal, unlink VF from PF and mark the VF broken. As before,
> > > > VFs may exist without a corresponding PF, although now only with
> > > > pdev->broken = true.
> > > > 
> > > > The hardware domain is expected to remove the associated VFs before
> > > > removing the PF. Print a warning in case a PF is removed with associated
> > > > VFs still present.
> > > > 
> > > > Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> > > > ---
> > > > Candidate for backport to 4.19 (the next patch depends on this one)
> > > > 
> > > > v5->v6:
> > > > * move printk() before ASSERT_UNREACHABLE()
> > > > * warn about PF removal with VFs still present
> > > 
> > > Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
> > > just after an adjustment to the commit message. I'm instead actively
> > > concerned of the resulting behavior. Question is whether we can reasonably
> > > do something about that.
> > > 
> > > Jan
> > 
> > Right. My suggestion then is to go back to roughly how it was done in
> > v4 [0]:
> > 
> > * Remove the VFs right away during PF removal, so that we don't end up
> > with stale VFs. Regarding XSM, assume that a domain with permission to
> > remove the PF is also allowed to remove the VFs. We should probably also
> > return an error from pci_remove_device in the case of removing the PF
> > with VFs still present (and still perform the removals despite returning
> > an error). Subsequent attempts by a domain to remove the VFs would
> > return an error (as they have already been removed), but that's expected
> > since we've taken a stance that PF-then-VF removal order is invalid
> > anyway.
> 
> I am not confident this is a safe assumption. It will likely be safe for
> probably 99% of the implementations. Apologies for not following closely,
> and correct me if I am wrong here, but from a resource perspective each VF
> can appear to the system as its own unique BDF and so I am fairly certain it
> would be possible to uniquely label each VF. For instance in the SVP
> architecture, the VF may be labeled to restrict control to a hardware domain
> within a Guest Virtual Platform while the PF may be restricted to the
> Supervisor Virtual Platform. In this scenario, the Guest would be torn down
> before the Supervisor so the VF should get released before the PF.

The VF getting released before the PF is what we would usually expect?

I'm a bit confused because a guest being torn down doesn't imply that
the device is removed from Xen (iow: a call to pci_remove_device()).
Removing a device is hot-unplugging the PCI device from Xen, not
deassinging from a guest.

I would also be uneasy with assigning a PF to a non-privileged domain,
specially if VFs from that same device are being assigned to trusted
domains.

My assumption is that you generally want the PFs assigned to the
hardware domain, and the VFs assigned to any other domains (trusted or
not).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 09:08:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 09:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830154.1245069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8FXx-0003U1-JX; Tue, 05 Nov 2024 09:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830154.1245069; Tue, 05 Nov 2024 09: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 1t8FXx-0003Tu-Ff; Tue, 05 Nov 2024 09:08:21 +0000
Received: by outflank-mailman (input) for mailman id 830154;
 Tue, 05 Nov 2024 09: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=vo3s=SA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8FXw-0003Tk-M2
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 09:08:20 +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 7e6950cb-9b55-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 10:08:16 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cb15b84544so6163071a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 01:08:16 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17f935asm102563566b.147.2024.11.05.01.08.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 01:08: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: 7e6950cb-9b55-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdlNjk1MGNiLTliNTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwNzk3Njk2Ljg4NTQ4MSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730797696; x=1731402496; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=JwpW+iRQWjNgI65FHTkIYrD4gYGn/tZp9iRpuJWLAoM=;
        b=GvAMs/d/PJkwxosJBsny+355mD+TUE5wCFLAJ8wzpFecTtdGwdeGJIu2HCUcYd2zYt
         METtqmaOwzo2MOO7+ekIMd9wWNrpT1usywMxssDMQGegaycBIU25/3JU2mLy5f0L/TVH
         mBmbCoDQRstEkValg9hJgWMSsmmRJGJb9ABr8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730797696; x=1731402496;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JwpW+iRQWjNgI65FHTkIYrD4gYGn/tZp9iRpuJWLAoM=;
        b=lBLwCyshQx8P2imkFVONtaew4/XDL1s7LUmMeGQxQRhEdTgyU1zZZ7xh7LthGaJ77a
         3uZDHu+UzBCxKPhW5JL4jd5ym2LlVWT9Jw2YCAY4Mw01DE8xcwZk+OJXTBj/cB9wkKL9
         N0yYZX+kLLzmfsAOFKaUp44tx8z1Y8aj+ePbh/XuwPZc/8s8zchr8ZiC+h2F6LFN7nV9
         hjD5aHgTAyxoxO2Rd+tRYIkF+oxfdKGGDb1YYStbgugjHhxLpwLtlB8sit97r9zraqTS
         /lhdk0Y4JXoiOp8Rk9zf4vsToN81X+mXHXbFIOZe6f2TbqCKUmsV5mVwiqgE6X4HwhPX
         8VTA==
X-Forwarded-Encrypted: i=1; AJvYcCVeaTPoangPphdb2mIBTuR4FG7pkvFtbhqtrHG40CPF5HL5T/qwItuI0oI2SoLgNHE13trcwO6at/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxae74hlb4hSo0xLf2WPk47djTdzqZh3YGpiaPKFZdvNqHRblH2
	N9UM0rlYgn+r11J6/Eee25Ew6AqN5etEIc3hBQGc7E1frn1C17aI9AaxYqbPKx0=
X-Google-Smtp-Source: AGHT+IEvsIaK2380MYXWDlun3KD6bLI6ck3TkJzsAF71h/zGGohvqcOer8SZfRvYhfLuFQZKS6DP3A==
X-Received: by 2002:a17:907:6ea6:b0:a87:31c:c6c4 with SMTP id a640c23a62f3a-a9e654d1c56mr1388288666b.24.1730797696253;
        Tue, 05 Nov 2024 01:08:16 -0800 (PST)
Date: Tue, 5 Nov 2024 10:08:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
Message-ID: <ZyngfwQYZTFfwqlp@macbook>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>
 <D5DDABNKHN42.1HD2T6NV99J51@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <D5DDABNKHN42.1HD2T6NV99J51@cloud.com>

On Mon, Nov 04, 2024 at 11:45:05AM +0000, Alejandro Vallejo wrote:
> On Sat Nov 2, 2024 at 3:18 PM GMT, Daniel P. Smith wrote:
> > On 11/1/24 16:16, Stewart Hildebrand wrote:
> > > +Daniel (XSM mention)
> > > 
> > > On 10/28/24 13:02, Jan Beulich wrote:
> > >> On 18.10.2024 22:39, Stewart Hildebrand wrote:
> > >>> Add links between a VF's struct pci_dev and its associated PF struct
> > >>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
> > >>> dropping and re-acquiring the pcidevs_lock().
> > >>>
> > >>> During PF removal, unlink VF from PF and mark the VF broken. As before,
> > >>> VFs may exist without a corresponding PF, although now only with
> > >>> pdev->broken = true.
> > >>>
> > >>> The hardware domain is expected to remove the associated VFs before
> > >>> removing the PF. Print a warning in case a PF is removed with associated
> > >>> VFs still present.
> > >>>
> > >>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> > >>> ---
> > >>> Candidate for backport to 4.19 (the next patch depends on this one)
> > >>>
> > >>> v5->v6:
> > >>> * move printk() before ASSERT_UNREACHABLE()
> > >>> * warn about PF removal with VFs still present
> > >>
> > >> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
> > >> just after an adjustment to the commit message. I'm instead actively
> > >> concerned of the resulting behavior. Question is whether we can reasonably
> > >> do something about that.
> > >>
> > >> Jan
> > > 
> > > Right. My suggestion then is to go back to roughly how it was done in
> > > v4 [0]:
> > > 
> > > * Remove the VFs right away during PF removal, so that we don't end up
> > > with stale VFs. Regarding XSM, assume that a domain with permission to
> > > remove the PF is also allowed to remove the VFs. We should probably also
> > > return an error from pci_remove_device in the case of removing the PF
> > > with VFs still present (and still perform the removals despite returning
> > > an error). Subsequent attempts by a domain to remove the VFs would
> > > return an error (as they have already been removed), but that's expected
> > > since we've taken a stance that PF-then-VF removal order is invalid
> > > anyway.
> >
> > I am not confident this is a safe assumption. It will likely be safe for 
> > probably 99% of the implementations. Apologies for not following 
> > closely, and correct me if I am wrong here, but from a resource 
> > perspective each VF can appear to the system as its own unique BDF and 
> > so I am fairly certain it would be possible to uniquely label each VF. 
> > For instance in the SVP architecture, the VF may be labeled to restrict 
> > control to a hardware domain within a Guest Virtual Platform while the 
> > PF may be restricted to the Supervisor Virtual Platform. In this 
> > scenario, the Guest would be torn down before the Supervisor so the VF 
> > should get released before the PF. But it's all theoretical, so I have 
> > no real implementation to point at that this could be checked/confirmed.
> >
> > I am only raising this for awareness and not as an objection. If people 
> > want to punt that theoretical use case down the road until someone 
> > actually attempts it, I would not be opposed.
> 
> Wouldn't it stand to reason then to act conditionally on the authority of the
> caller?
> 
> i.e: If the caller has the (XSM-checked) authority to remove _BOTH_ PF and
> VFs, remove all. If it doesn't have authority to remove the VFs then early exit
> with an error, leaving the PF behind as well.

I'm unsure if it makes sense to have an entity that's allowed to issue
a pci_remove_device() against a PF, but not against the VFs of the
device.

The owner of the PF should be capable of disabling SR-IOV, at which
point all the VFs disappear from the PCI config space.  If such entity
is capable of controlling the SR-IOV capability, it should also be
able to issue pci_remove_device() calls against the VFs.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 10:41:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 10:41:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830166.1245079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Gzf-0008CP-0A; Tue, 05 Nov 2024 10:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830166.1245079; Tue, 05 Nov 2024 10:41: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 1t8Gze-0008CI-TH; Tue, 05 Nov 2024 10:41:02 +0000
Received: by outflank-mailman (input) for mailman id 830166;
 Tue, 05 Nov 2024 10:41: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=gPTM=SA=bounce.vates.tech=bounce-md_30504962.6729f632.v1-308a478c9a7c4ac4b6883b7b32c33973@srs-se1.protection.inumbo.net>)
 id 1t8Gzd-0008CC-3h
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 10:41:01 +0000
Received: from mail133-1.atl131.mandrillapp.com
 (mail133-1.atl131.mandrillapp.com [198.2.133.1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d886a49-9b62-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 11:40:52 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-1.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4XjPxt61JtzBsVJrw
 for <xen-devel@lists.xenproject.org>; Tue,  5 Nov 2024 10:40:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 308a478c9a7c4ac4b6883b7b32c33973; Tue, 05 Nov 2024 10:40: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: 6d886a49-9b62-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzMy4xIiwiaGVsbyI6Im1haWwxMzMtMS5hdGwxMzEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZkODg2YTQ5LTliNjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODAzMjUyLjc3MjY1OCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MjlmNjMyLnYxLTMwOGE0NzhjOWE3YzRhYzRiNjg4M2I3YjMyYzMzOTczQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730803250; x=1731063750;
	bh=icZhyJOk5ogtSZem3K1zdmOebqBx3hH/dP3pIqE+WLA=;
	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=t/C7M5nkm5C+PoRTQAzyt2eSBhbhbBg0Sl4sMx4UHpdFk8JyqZJZ1Hqzbq3ktI0iB
	 YSCl9+aPWjPbgBzF4AJF1ktQslLy/Ffii3HpaXXkraTrvPTip3/ATq0Yo91A5bY+Hs
	 ZJm/nbQeYhHUuLZj363hENrgJKabQGK5zOJIefoFckqB/Wns6LGGBWQXOENEaXdwBQ
	 oDx995hBODEuw5yjPj0ThNslh1kTzFWNJtLJ25dQBCd0LYT6s04HdGVNvvXWZ9rcNh
	 9XAumqkIBvaU6m5aZz5uTNBTYlxDiX4hl97gK5NBZCY+13swgQ1T+QEW/ch7wYZ6qt
	 tOeSDBKo+OwTA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730803250; x=1731063750; i=teddy.astie@vates.tech;
	bh=icZhyJOk5ogtSZem3K1zdmOebqBx3hH/dP3pIqE+WLA=;
	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=WflOhLLAc3fAYfvOuPZJBn0eVvBqWBVTX+Ls4jexOLRXEOUurLCWT1cxpytjbBtra
	 8TNOXcvu6up8dd1yjKawPI93Lq6QDRTpgmN2IAjavPiPh6sl4Q9T8kO8zKCNSPmKmn
	 LwfQJj5X9nvno9Nz5YxHD5NAvFExtHcq88KJEyMlKrd3EKNdVoZFxCJVex4l4J19Zq
	 EGTHT9T6X/fODWkgag34xDh84MqTNk1BvWn2Q35dmUiiUE2H9tmNsXPPSkg1ZPORgI
	 RYiYDanuzp0yq79ezm36bcciWeH4ubSwpEyS3zmgGIsvXaykXEMwvR9KWQrE0ykevp
	 Ut+xmNUT7+60g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20RFC=20PATCH=20v4=200/5]=20IOMMU=20subsystem=20redesign=20and=20PV-IOMMU=20interface?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730803249020
Message-Id: <554f2ff3-e0b4-49a2-86c8-1c7457f99ac1@vates.tech>
To: =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Lukasz Hawrylko" <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, =?utf-8?Q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
References: <cover.1730718102.git.teddy.astie@vates.tech> <ZylwdZjIeQ9qRdc_@mail-itl>
In-Reply-To: <ZylwdZjIeQ9qRdc_@mail-itl>
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.308a478c9a7c4ac4b6883b7b32c33973?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241105:md
Date: Tue, 05 Nov 2024 10:40:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 05/11/2024 =C3=A0 02:10, Marek Marczykowski-G=C3=B3recki a =C3=A9crit=C2=
=A0:
> On Mon, Nov 04, 2024 at 02:28:38PM +0000, Teddy Astie wrote:
>> * introduce "dom0-iommu=3Dno-dma" to make default context block all DMA
>>    (disables HAP and sync-pt), enforcing usage of PV-IOMMU for DMA
>>    Can be used to expose properly "Pre-boot DMA protection"
> 
> This sounds like it disables HAP completely, but actually it looks like
> disabling sharing HAP page tables with IOMMU ones, right? That (HAP
> sharing) is relevant for PVH dom0 only, correct?
> 

Yes that's it

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 Nov 05 10:42:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 10:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830174.1245089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8H1T-0000N1-GZ; Tue, 05 Nov 2024 10:42:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830174.1245089; Tue, 05 Nov 2024 10: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 1t8H1T-0000Mu-Cf; Tue, 05 Nov 2024 10:42:55 +0000
Received: by outflank-mailman (input) for mailman id 830174;
 Tue, 05 Nov 2024 10: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=5xKx=SA=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1t8H1R-0000Mi-WB
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 10:42:54 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20602.outbound.protection.outlook.com
 [2a01:111:f403:2417::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2933b8d-9b62-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 11:42:47 +0100 (CET)
Received: from BN1PR12CA0006.namprd12.prod.outlook.com (2603:10b6:408:e1::11)
 by BL3PR12MB6452.namprd12.prod.outlook.com (2603:10b6:208:3bb::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Tue, 5 Nov
 2024 10:42:43 +0000
Received: from BL02EPF0001A102.namprd05.prod.outlook.com
 (2603:10b6:408:e1:cafe::5a) by BN1PR12CA0006.outlook.office365.com
 (2603:10b6:408:e1::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.31 via Frontend
 Transport; Tue, 5 Nov 2024 10:42:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A102.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Tue, 5 Nov 2024 10:42:43 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 5 Nov
 2024 04:42:42 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 Nov
 2024 04:42:42 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 5 Nov 2024 04:42: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: b2933b8d-9b62-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjAyIiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImIyOTMzYjhkLTliNjItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODAzMzY4LjA0MzIyNywic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KatCPrHqjk3E6yipBFac804aYwIQIbzLIFpJZoTVAf9J6Jh4mHXbpeBkN0ZRFqjrBXWucyD7NyWkHfLHAofC1zbZ7AJi2GP9S3varbGqQ/GjzmwEgxdnSfJE/cX1tuLZ4w4eMZNHNB/f9rol85G4D4FVwX9qi1+zbl45PNHgfntQR3/1asc1w9qSTMiY2l1c6GrqZ9TU3mPjOkgy61QeCQ4AeTmqRK0Mx+p43Hwlki1FbWKyYO3MeSwpVQTMBLE/wFXg7DcVWYbE+owSX8X8611ex3vyNMciqCwrnWENi+3wltBYRqHJ3FbSL7kDxmWGjHKdJqKf2sN69TRb6fczqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=21zpqIf82GSln0iomSD2pWmKyIL5z78tMjowGuQ1mbg=;
 b=Qt1sFoKeHdHx3h0NpAkthSMSX5soM3EMx8TzOoCRfPW0r7c4oLLfHdVX86sgC9TpYR5qZCq2LU32y/9tsUMzbi1mCK3Egs5eReyFxt5G4tjWhu8OusBaOAL2B3zRtr8taGei6bXDHeV0plzq8+NrejoNUMOwDj5q3YpGnGC9YhHF1PelbE9U0XHgiZu+352xYT9N0n6okw8KBM4Y+Xt5rL8DfEjGxUIg1VvyysywuGLQTk4vN1tO3BEaTSyA+oa7cvNZ7yh5cqhIQSRg3DrqOPQ/R7hYWIM/yQOeEGvwekNLdKc8UmO8nSRxdIkTbC1UxDSCV6wDtbdW33btGGnfDg==
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=21zpqIf82GSln0iomSD2pWmKyIL5z78tMjowGuQ1mbg=;
 b=tk/71bB+MF8EfaP6gomWL4rwAQboVGCOnEQtcHLgJBESOpeQ3d52c69JrF082J3+aDoK5V19Ntx1v8gA//9ogFLr+Y8OyQlTwcvqSwhJu6fIGl+ZR0OX/vkCH8RtYP8DR34Z4+rYsC7OLAx3j/ImJVWCwrW1BA4ThCJRLoI0wf0=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <418b801a-0a1c-406a-99ab-7e3bf81374b2@amd.com>
Date: Tue, 5 Nov 2024 11:42:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/device-tree: Let DT reserve map entries
 overlap reserved-memory
To: Grygorii Strashko <grygorii_strashko@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, <xen-devel@lists.xenproject.org>, "Luca
 Fancellu" <luca.fancellu@arm.com>
CC: <tpearson@raptorengineering.com>, Jan Beulich <jbeulich@suse.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>
References: <cover.1727388925.git.sanastasio@raptorengineering.com>
 <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com>
 <1ae100b3-17f0-4ac5-beb3-fdd2f12adee7@amd.com>
 <a127edbb-8006-466d-a529-1b7a80af21b1@epam.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <a127edbb-8006-466d-a529-1b7a80af21b1@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A102:EE_|BL3PR12MB6452:EE_
X-MS-Office365-Filtering-Correlation-Id: c4339ca2-c711-4f5d-c0f5-08dcfd869408
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?Ni9uc3JiR0doc0pyZGRuTDNZNG9iR1lnL1ppcXNhcm0vMGlwYW9qbUdqWm03?=
 =?utf-8?B?RW5iUlBmb0ljOW5vdEFoVUZ5eGsyVzY3Q2tvNnlFcGFHRTFtZ0lNOGVocXFz?=
 =?utf-8?B?dVFvMldpUVFKTnplbThsWXNrenZUTDErSXpNZTRvR3hNZlFiU2I5ODB0cllt?=
 =?utf-8?B?K1FLQlhVRkZNRnludXBabkxrWGEzWTNDTEtFNVFweXdXZFZHNXBLUnZRN3pq?=
 =?utf-8?B?dDJsZStTZnlRVHdJeXRYK0Jna21qelFSdGJsUzl5OHl3Z0JKZGdpb1ZhamRV?=
 =?utf-8?B?YVRMN2tRVnpQTUprbWp2RGtib0pDTzc0VHd6SW42U0hPODlHOG0vbzJ1bWVO?=
 =?utf-8?B?ZFllYTZkU0JtRjBlUGtWQ3NBZkxMVjVOYXQ3M1ZKVE1mR05BbTEzbUFXR3JJ?=
 =?utf-8?B?UUQwMnJFUzRuQTVVRFlDMmE3cjNZa2V0ck9vNk9GWWlHNWdLRllkSllWY05x?=
 =?utf-8?B?K3hSSnRPanZ4SGVXSkJCT0F0Wmx4SHNMbHd6dXBHOEpSM1VxNWx0OHpORTRu?=
 =?utf-8?B?L1Rrck1EWVJSYWVHSGJRL05WTk5DTUxCN0JNOHA3Y0hLWUFqajN2U0YwMzMw?=
 =?utf-8?B?NERDZnhzcnJYemFTYUJQa0gwbnRoSlVMRG05UWFtYUZ0a0Zrakpra0EvYmVH?=
 =?utf-8?B?MC9EcUNlTlMrQTc4b0ZocG5QTkwyeFBLc2VlSG8rVVhrVXR0VkhQcEpsbzN3?=
 =?utf-8?B?L216WmVXTzMyck5UM0YrYXFQRzRMbnI3R1h0aFRYL2p1MHdhdnIxdC84RTBT?=
 =?utf-8?B?ZTlLUW5YS25aWnQvaDU5ZXdGTUg4WXc1YjdwVmZja3p5WklGYzJ4eWdqSGRr?=
 =?utf-8?B?cUZqelJBTlNoSEl3emw0Q2hpZy80MG1RaGVlNzB0T2l2VmdvM0pFTGpETk40?=
 =?utf-8?B?RHRJd3NFSk5iYVZ1ZnRjTlFoeFhwZjhoczBldWZjcXhzSEMvR1NNNUJabUJu?=
 =?utf-8?B?NDBRTFZIODVTL3dack1TeGl6V2t5ZXd0azdQSUpudEpHVmI3ZE9UOXVXOFh5?=
 =?utf-8?B?bGo3YTlFMEZkRnNIMjlMdVFTbmdtbUdHZEZyZlFhYjUzV3NFd0lpNXhHQkFo?=
 =?utf-8?B?Ry9YZERnbHJKSmtOUTEzU2w4YWc5VjJMSFp4OXFpMVFJaVlpem1JN1h0c2Nz?=
 =?utf-8?B?VmVhdVFuejdTUHBZaG5XTCs4ajhyVndFVUFUc1RHUzMzdTBGRlNRTTViUXJS?=
 =?utf-8?B?OGVvS2YxQVNJSVRTN2loaHUzQWVZNHRxakVyYkRJTFNrRlZKZHAyeExHRnZm?=
 =?utf-8?B?VTdwUWpXT2RnRko5aC92TzRoczBHK202VEhacmFaZlhrd1Uxc2lZTFVub0Nh?=
 =?utf-8?B?Q1JJK3lBTUVBNFFPU0RXQ1N6Q0VSVHNTWXpNQWs5NjhJdDJYdXltVHBmM3Fm?=
 =?utf-8?B?UjVUY3F1eEZ2QXdaWTlTV3QraTY5NW02UUI1MkliamhlSlZEV0dzaVZQYWg1?=
 =?utf-8?B?TVFuNGxGMWY1TnI5WVRzcUkwQU4yNmp3WVZUblEwWTBWbzRLenVEQ0dKek5p?=
 =?utf-8?B?aVBVMjJjSSt0cU1lWU5YVC9mRFhTWUFxa1NYdDJsVnQ1MEplNUlzbi9HbkF5?=
 =?utf-8?B?TldhWGh2RzNWS2dTN3QyemQvNTBzM1U4bUt2SGg2TWowSjFwS1NDSGZQMGU0?=
 =?utf-8?B?RUpQR3FWN0M4dWlQcGcvc2w5RlVWMFRna2Z2SWJMYmlGdVVESFVGckM4Yzdo?=
 =?utf-8?B?NFBwSW9DUWZycXpkbFA5SzVKN2o2Qk5MTUU3aGxhc3FhRDZ2OTNna2JySEZQ?=
 =?utf-8?B?bUhyTWJ2REtzVSttRTk3OUhaSUdLdWtJYVdvS05PclY3UWE4bnhFQVFXYjdp?=
 =?utf-8?B?YUE3aGpYY0NoY2Jpb0F6bWJQcFZhTUZoZGhPQU9YdzhaaTl3NXY0S3RtaXY1?=
 =?utf-8?B?cmw3dXpEY3RmRkZFQ3BJMW5wczJsb0VmNVhtUTZLc21YNVE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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 Nov 2024 10:42:43.0033
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c4339ca2-c711-4f5d-c0f5-08dcfd869408
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A102.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6452



On 04/11/2024 13:39, Grygorii Strashko wrote:
> 
> 
> Hi All,
> 
> On 04.11.24 12:49, Michal Orzel wrote:
>>
>>
>> On 27/09/2024 00:24, Shawn Anastasio wrote:
>>>
>>>
>>> Commit 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>>> bootinfo.reserved_mem") changes the way reserve map regions are tracked,
>>> and as a result broke bootfdt's ability to handle device trees in which
>>> the reserve map and the `reserved-memory` node contain the same entries
>>> as each other, as is the case on PPC when booted by skiboot.
>>>
>>> Fix this behavior by moving the reserve map check to after the DT has
>>> been parsed and by explicitly allowing overlap with entries created by
>>> `reserved-memory` nodes.
>>>
>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>> ---
>>>   xen/common/device-tree/bootfdt.c  | 28 +++++++++++++++++++++++-----
>>>   xen/common/device-tree/bootinfo.c | 11 +++++++++--
>>>   xen/include/xen/bootfdt.h         |  3 ++-
>>>   3 files changed, 34 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
>>> index 911a630e7d..2a51ee44a3 100644
>>> --- a/xen/common/device-tree/bootfdt.c
>>> +++ b/xen/common/device-tree/bootfdt.c
>>> @@ -177,7 +177,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
>>>       {
>>>           device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
>>>           if ( mem == bootinfo_get_reserved_mem() &&
>>> -             check_reserved_regions_overlap(start, size) )
>>> +             check_reserved_regions_overlap(start, size, NULL) )
>>>               return -EINVAL;
>>>           /* Some DT may describe empty bank, ignore them */
>>>           if ( !size )
>>> @@ -590,14 +590,36 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>>       if ( nr_rsvd < 0 )
>>>           panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
>>>
>>> +    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
>> This should be moved before fdt_num_mem_rsv so that the program flow makes sense. In your case nr_rsvd is
>> not used immediately after.
>>
>>> +    if ( ret )
>>> +        panic("Early FDT parsing failed (%d)\n", ret);
>>> +
>>>       for ( i = 0; i < nr_rsvd; i++ )
>>>       {
>>> +        const struct membanks *overlap = NULL;
>>>           struct membank *bank;
>>>           paddr_t s, sz;
>>>
>>>           if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>>>               continue;
>>>
>>> +        if ( check_reserved_regions_overlap(s, sz, &overlap) )
>>> +        {
>>> +            if ( overlap == bootinfo_get_reserved_mem() )
>>> +            {
>>> +                /*
>>> +                 * Some valid device trees, such as those generated by OpenPOWER
>>> +                 * skiboot firmware, expose all reserved memory regions in the
>>> +                 * FDT memory reservation block (here) AND in the
>>> +                 * reserved-memory node which has already been parsed. Thus, any
>>> +                 * overlaps in the mem_reserved banks should be ignored.
>>> +                 */
>>> +                 continue;
>> I think this is incorrect. Imagine this scenario:
>> /memreserve/ 0x40000000 0x40000000;
>> and /reserved-memory/foo with:
>> reg = <0x0 0x7FFFF000 0x0 0x1000>;
>>
>> You would ignore the entire region described with /memreserve/ even though it overlaps just the last page.
>>
>> The problem you're describing is about regions that match 1:1 in /memreserve/ and /reserved-memory/.
>> Therefore I think you should check that the overlapped regions match exactly.
>>
> 
> I've also discovered an issue with Commit 53dc37829c31 ("xen/arm: Add DT reserve map
> regions to bootinfo.reserved_mem") - the bootloader adds Initrd in
> FDT reserved map which then conflicts with Initrd module (ARM64).
> 
> This patch, as is, doesn't fix an issue for me:
> 
> (XEN) Checking for initrd in /chosen
> (XEN) Initrd 0000000084000040-0000000086152ac6
> (XEN) Region: [0x00000084000040, 0x00000086152ac6) overlapping with mod[2]: [0x00000084000040, 0x00000086152ac6)
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) FDT reserve map overlapped with membanks/modules
> (XEN) ****************************************
> 
> So I did fast try of Michal Orzel suggestion and it seems working for me.
> And if it's working for PPC - may be that's it (feel free to incorporate). Diff below.
> 
> (XEN) Checking for initrd in /chosen
> (XEN) Initrd 0000000084000040-0000000086152ac6
> (XEN) RAM: 0000000048000000 - 00000000bfffffff
> (XEN) RAM: 0000000480000000 - 00000004ffffffff
> (XEN) RAM: 0000000600000000 - 00000006ffffffff
> (XEN)
> (XEN) MODULE[0]: 0000000048080000 - 00000000481ec000 Xen
> (XEN) MODULE[1]: 0000000048000000 - 000000004801e080 Device Tree
> (XEN) MODULE[2]: 0000000084000040 - 0000000086152ac6 Ramdisk
> (XEN) MODULE[3]: 0000000048300000 - 000000004a300000 Kernel
> (XEN) MODULE[4]: 0000000048070000 - 0000000048080000 XSM
> (XEN)  RESVD[0]: 0000000060000000 - 000000007fffffff
> (XEN)  RESVD[1]: 00000000b0000000 - 00000000bfffffff
> (XEN)  RESVD[2]: 00000000a0000000 - 00000000afffffff
> ...
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN) Loading d0 kernel from boot module @ 0000000048300000
> (XEN) Loading ramdisk from boot module @ 0000000084000040
> (XEN) Allocating 1:1 mappings totalling 256MB for dom0:
> (XEN) BANK[0] 0x00000050000000-0x00000060000000 (256MB)
> ...
> 
> 
> ---
> diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
> index f2e6a1145b7c..10e997eeca8d 100644
> --- a/xen/common/device-tree/bootinfo.c
> +++ b/xen/common/device-tree/bootinfo.c
> @@ -124,6 +124,30 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
>       return false;
>   }
> 
> +static bool __init meminfo_is_exist(const struct membanks *mem,
> +                                         paddr_t region_start,
> +                                         paddr_t region_size)
> +{
> +    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
> +    paddr_t region_end = region_start + region_size;
> +    unsigned int i, bank_num = mem->nr_banks;
> +
> +    for ( i = 0; i < bank_num; i++ )
> +    {
> +        bank_start = mem->bank[i].start;
> +        bank_end = bank_start + mem->bank[i].size;
> +
> +        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
> +             region_start >= bank_end )
> +            continue;
> +
> +        if ( region_start == bank_start && region_end  == bank_end)
> +            return true;
> +    }
> +
> +    return false;
> +}
> +
>   /*
>    * TODO: '*_end' could be 0 if the module/region is at the end of the physical
>    * address space. This is for now not handled as it requires more rework.
> @@ -154,6 +178,29 @@ static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
>       return false;
>   }
> 
> +static bool __init bootmodules_is_exist(struct bootmodules *bootmodules,
> +                                             paddr_t region_start,
> +                                             paddr_t region_size)
> +{
> +    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
> +    paddr_t region_end = region_start + region_size;
> +    unsigned int i, mod_num = bootmodules->nr_mods;
> +
> +    for ( i = 0; i < mod_num; i++ )
> +    {
> +        mod_start = bootmodules->module[i].start;
> +        mod_end = mod_start + bootmodules->module[i].size;
> +
> +        if ( region_end <= mod_start || region_start >= mod_end )
> +            continue;
> +
> +        if (region_start == mod_start && region_end == mod_end)
> +            return true;
> +    }
> +
> +    return false;
> +}
> +
>   void __init fw_unreserved_regions(paddr_t s, paddr_t e,
>                                     void (*cb)(paddr_t ps, paddr_t pe),
>                                     unsigned int first)
> @@ -201,6 +248,37 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
>       return false;
>   }
> 
> +bool __init check_reserved_regions_is_exist(paddr_t region_start,
> +                                            paddr_t region_size)
> +{
> +    const struct membanks *mem_banks[] = {
> +        bootinfo_get_reserved_mem(),
> +#ifdef CONFIG_ACPI
> +        bootinfo_get_acpi(),
> +#endif
> +#ifdef CONFIG_STATIC_SHM
> +        bootinfo_get_shmem(),
> +#endif
> +    };
> +    unsigned int i;
> +
> +    /*
> +     * Check if input region is overlapping with reserved memory banks or
> +     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
> +     * shared memory banks (when static shared memory feature is enabled)
> +     */
> +    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
> +        if ( meminfo_is_exist(mem_banks[i], region_start, region_size) )
> +            return true;
> +
> +    /* Check if input region is overlapping with bootmodules */
> +    if ( bootmodules_is_exist(&bootinfo.modules,
> +                                   region_start, region_size) )
> +        return true;
> +
> +    return false;
> +}
> +
>   struct bootmodule __init *add_boot_module(bootmodule_kind kind,
>                                             paddr_t start, paddr_t size,
>                                             bool domU)
> diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
> index 16fa05f38f38..b8db1335be6c 100644
> --- a/xen/include/xen/bootfdt.h
> +++ b/xen/include/xen/bootfdt.h
> @@ -159,6 +159,8 @@ extern struct bootinfo bootinfo;
> 
>   bool check_reserved_regions_overlap(paddr_t region_start,
>                                       paddr_t region_size);
> +bool check_reserved_regions_is_exist(paddr_t region_start,
> +                                     paddr_t region_size);
> 
>   struct bootmodule *add_boot_module(bootmodule_kind kind,
>                                      paddr_t start, paddr_t size, bool domU);
> 
> 
> 
> 

I don't think there is a need for introduction of that many functions. For a simple exact matching case
we can opencode the logic a bit. On top of Shawn patch, the minimal version would look as follows:

diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index d35b2629e5a1..759c790888f9 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -586,14 +586,14 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)

     add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);

-    nr_rsvd = fdt_num_mem_rsv(fdt);
-    if ( nr_rsvd < 0 )
-        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
-
     ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
     if ( ret )
         panic("Early FDT parsing failed (%d)\n", ret);

+    nr_rsvd = fdt_num_mem_rsv(fdt);
+    if ( nr_rsvd < 0 )
+        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
+
     for ( i = 0; i < nr_rsvd; i++ )
     {
         const struct membanks *overlap = NULL;
@@ -605,19 +605,33 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)

         if ( check_reserved_regions_overlap(s, sz, &overlap) )
         {
-            if ( overlap == bootinfo_get_reserved_mem() )
+            unsigned int j;
+            bool match = false;
+
+            if ( overlap != reserved_mem )
+                panic("FDT reserve map overlapped with membanks/modules\n");
+
+            /*
+             * Some valid device trees, such as those generated by OpenPOWER
+             * skiboot firmware, expose all reserved memory regions in the
+             * FDT memory reservation block (here) AND in the
+             * reserved-memory node which has already been parsed. Thus, any
+             * matching overlaps in the mem_reserved banks should be ignored.
+             */
+            for ( j = 0; j < overlap->nr_banks; j++ )
             {
-                /*
-                 * Some valid device trees, such as those generated by OpenPOWER
-                 * skiboot firmware, expose all reserved memory regions in the
-                 * FDT memory reservation block (here) AND in the
-                 * reserved-memory node which has already been parsed. Thus, any
-                 * overlaps in the mem_reserved banks should be ignored.
-                 */
-                 continue;
+                if ( (overlap->bank[j].start == s) &&
+                     (overlap->bank[j].size == sz) )
+                {
+                    match = true;
+                    break;
+                }
             }
-            else
-                panic("FDT reserve map overlapped with membanks/modules\n");
+
+            if ( match )
+                continue;
+
+            panic("FDT reserve map partially overlaps with /reserved-memory\n");
         }

         if ( reserved_mem->nr_banks < reserved_mem->max_banks )

Let's wait for Shawn test and other DT maintainers opinion.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 11:54:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 11:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830188.1245100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8I8q-0001h0-M8; Tue, 05 Nov 2024 11:54:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830188.1245100; Tue, 05 Nov 2024 11: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 1t8I8q-0001gt-H0; Tue, 05 Nov 2024 11:54:36 +0000
Received: by outflank-mailman (input) for mailman id 830188;
 Tue, 05 Nov 2024 11: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=R/xQ=SA=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1t8I8o-0001gn-SY
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 11:54:35 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2612::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6eee0e0-9b6c-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 12:54:30 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PAWPR03MB8916.eurprd03.prod.outlook.com (2603:10a6:102:334::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Tue, 5 Nov
 2024 11:54:27 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8114.028; Tue, 5 Nov 2024
 11:54: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: b6eee0e0-9b6c-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjFkIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImI2ZWVlMGUwLTliNmMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODA3NjcwLjMwMzgwMSwic2VuZGVyIjoiZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C+FUR8iqZpWH7auno61YBJkcCNiGr4kyJIclAUcwNQiIjSscrecU80y9OAneTn/JNZ32XM+SNz4b8dFziiHV4ZJpXT5A3pSQ+OMnQ0/niJlNepodTXFt1iTH+tVxyFkWnsIWMnUV07PTL57vOBXh2hPP7e1pVVy1QJhmxl46gguRP7sVauFGe2+hc7pLR5LjSgtIBuUlz/7mTHsKBlJJ4wa2zC1m+HIbvmdxKdYOXrH7kttgRMFnRuSOFptR4MbVbnsnDS2Ka8zzXgqhgzf+m1PlvzKSGLRXvzuFIrXvjz0Cezm1mJ36inykikvpiAJ3T5Z2I/aYMt1dIrKH7DFPKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IWwn/w7cYHisTNMosxeKZHSNUmz08gj0lC1qtbW3YNg=;
 b=ietg/k6rOpddJFmEz5GUJVITcMOh3uyerUfqXn/cIrTn+lybrb7aFpMMT4VMApUT+tFvgMjvxW2uUF2WI0eXPFyWJDYF5BnrlpYVvZRgcWZwS/pDkI1SC5c7wxR72XABxbXCf8Xl0jG8XPQHCPhS/GM/ree45xtpxQwY9RLBbiGycS8mZSRsKQLF0CNBYHq1u4Bnjv2uV0hpbEh/dBhU1yBM7JhTdn7lFeWKCtkaZLmAvr8HyCnFGV9uQG5xnNCi1WcgHD/EelZ0ensowrTt8McLPK4tL19ALtVXeteJa34HsE7yk5MtRW4l7pvREXfZQNPePlN/kTgd73lEEte3sw==
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=IWwn/w7cYHisTNMosxeKZHSNUmz08gj0lC1qtbW3YNg=;
 b=f7Hua2vp3+5BGPNW5tmE+FzB3XawY+UKLTML5blQDXZPkbFMvMpOgjIvmeLM2BpjKQyKTt3W7ngq8SYMQkdmHHKV4D8+idBK+taHyGVJ5oi7+g/64BvYy9FeyNKf9b0C1z+L5YE7BCk30mr/lc5U1BM5r+DBAu96OXfZI1qAk7ZFJKBrwZJT0sJ6zgCnSVJLEwqA5yS7ILyxqHxTD0P4wNRWseQ8tabTjcANah9jGLq/EqWk9L6hsiHT49Qc9C1GssYPEcqiOCXEfMDMfv9/Fc2ZLgKJOBmS/iEdf2Hj0fPp5FYNxBymMizC/KpS/kQrVSlXb5mWwEkjTzVJQEH5TQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <23cfbbfc-45d9-4a45-850c-56c3d796956b@epam.com>
Date: Tue, 5 Nov 2024 13:54:25 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/device-tree: Let DT reserve map entries
 overlap reserved-memory
To: Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org, Luca Fancellu <luca.fancellu@arm.com>
Cc: tpearson@raptorengineering.com, Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <cover.1727388925.git.sanastasio@raptorengineering.com>
 <302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com>
 <1ae100b3-17f0-4ac5-beb3-fdd2f12adee7@amd.com>
 <a127edbb-8006-466d-a529-1b7a80af21b1@epam.com>
 <418b801a-0a1c-406a-99ab-7e3bf81374b2@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <418b801a-0a1c-406a-99ab-7e3bf81374b2@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0074.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9a::16) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PAWPR03MB8916:EE_
X-MS-Office365-Filtering-Correlation-Id: e87bccd1-33a2-4144-14a6-08dcfd909978
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?VThLOThoWHdSNmJPanZqcWQzcjNNS0RPTy9qYVZBWCt6cDVBcFZrWE9lSFdX?=
 =?utf-8?B?Yy9EaXZiN3dLTHNMUFVaZTFQMlI0V21MVFVyUEhGQXVMeUdUclFrV3ZGNHR0?=
 =?utf-8?B?ZWVaYjd6NzVGdmJ0NTV6N2FCRnlyd2wwVzkxRzZqbklQRFhNMWE3RmMvbFFM?=
 =?utf-8?B?c2FGT1pNRW15M29QQzhmRHo4eVYzaktGRXYyQzRSamg2cEhBclNmdjBiMk5Q?=
 =?utf-8?B?ckRLR05rUDFDNVlVc3ZoZVdQd1ZYZlNaWUhNQmZyZ2JhZGtHWmhXaXBNSlgz?=
 =?utf-8?B?ekk5dXJ4cm1Ja1pLN3lnZ2V5SHNkQjY0ZUg2TUNIUmZmeEN1ZFF1OS9KUDBm?=
 =?utf-8?B?SzZGSUFEbmNhNURGeUY3ZjNXMi9TdWtKS3o3Rjk2T2lwWk5IckhjNThLSzZT?=
 =?utf-8?B?Y1hRUUZJNERiM2FpOHJHZ0FPOWp6WlY1RlRDZDRxTFZSWmhycUNTeTJVeWVL?=
 =?utf-8?B?RnRXOWtqOHBaTklWNHdwNEJTODM5Z3AxcnVmL2JBenVDWGVwb3h1UTBSZDli?=
 =?utf-8?B?aFJ0SDU4b1BNNDdtUDg3T3QzME1JQmhQU004ekdIalFHOFkxaUtHVXRyUVNG?=
 =?utf-8?B?Q0JjcmlTRU9xa0k3TytySWxxZG9INEdjZW56ZTlEK051bmo3T3FBUmFFbWNB?=
 =?utf-8?B?Q0hGZGxpNkZycjh1TCtuWlVYWXU2RGFTVVVXaVNZTzdmL1RDU3RRTVFMeWRz?=
 =?utf-8?B?QXRtd2xjaGl6NElocHJ1cmt3ZWIzQnoxWDhGUWpSOEVTeUxvdDIrVzZWbUoz?=
 =?utf-8?B?c094aWwyUmJ4VGo2UGJxek5ZR0dyK09jR2RGd2FzQ09OeTdFUXc0U2Y4Zzkr?=
 =?utf-8?B?NHJwdUkyb3p6eEQzaHhTblpYbGR2WGxZc28vY3RpVFdOVThMZVIzZkVsRDJk?=
 =?utf-8?B?cERrbVNLU1lFK0FDNENEdkRJb0Z3TlBPTXJWUFpObjRPWmYwbGJvU0hLYlBz?=
 =?utf-8?B?bUNDdTRBdkVTTE42OW1JWitlcjVpc283d09CZTFoSGlFZ2ZpcEhlUGlzbmNR?=
 =?utf-8?B?MmM5VXlEbzNXbVI5dUZUSDVYVVl5Q1p5VktiZ1dGUlJ4YW1SYUJkSXNEUkpM?=
 =?utf-8?B?TEdvNWt6UFJQYXdYamxraE1ncFZpei9uWnZQVDR4a0ZBdHRSZ0NUZmtuMGw1?=
 =?utf-8?B?ZXB2Rjd2Yk55Tk5rTi90WSthWXZEdW9RanMrMzhWZHVpS2p4L2Ribm41L0Rj?=
 =?utf-8?B?YVB6VnlwbG9uS0E1MnpxeUgxU2ttb2poQXBGOVJJcmVMU1FoM2ZTc1h1Z0F1?=
 =?utf-8?B?Sm56T0FZaE12S1ZaZzNCT21NaGpiczVNUzByWGFmTmlWOFdkZ295c0dpZml0?=
 =?utf-8?B?RjFRKzZjajdFQUFXaUVkZHp5MFdLbk5TRFB6OGZJelZRbVlmeHVRSEs0am9N?=
 =?utf-8?B?TERoVSt0Mk54ZmI4ZEpUMm9aRGpsZ3pQTC84OEU0WWlQeWJMNWVxa0oxNzc4?=
 =?utf-8?B?VGZzWWFmczh3NmY2QkprRFBCeEhsTVBVR3lidmUzYzVHSWIrTnd2cWhxQkNp?=
 =?utf-8?B?Mkd0TE5STGhTTzNPdk5YaytFbzBtNFFPZjJMOXBBT1VvYlh1bitMd1dVU0sx?=
 =?utf-8?B?QVZBMEs4SFc2Rm5NWFI0dGdRUFpvd2dhVGNvSVEvclFuVFF2TVA4MHRnQUJa?=
 =?utf-8?B?U3A4cS94cWFOY1Y3b0NuTkpSK1ptTGd6R3lUcXN0UlpiU2RpMjdnN1Zac2hH?=
 =?utf-8?B?ZEFISGpSQ0s2UnhkZzRTY1MrbjhybTN0WnBZZ01Ba1dIR3A3eC9wcTF5WXBN?=
 =?utf-8?Q?DZW7hAxsyGEqYiIP/o7Lmpd4RFJ0SUKEa2QuRNn?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?K25mY2pHWWJvOHlKS2xFT1BRZDd1QjRhMGMwcHhLS21tMXhiT1ZLWjY5Yk1C?=
 =?utf-8?B?MjBySk9RQllSWGlkTTJBVHdNa3ZJZjRuR1FTL0Fwc1hhY0k1QVZNZkYwZ0ZT?=
 =?utf-8?B?dzBuMGtLWlZhL3lzanRmZWhKSzNjVFMwUmZITGNvOW9wS0NDT3JpdGhid280?=
 =?utf-8?B?RUszVjczTzcvTllVT1pjMEVFaERQaEV0dmVLZE4vOFltTXF0dkIxSzRPMHFU?=
 =?utf-8?B?U2dGWXpXR1J4NDIzalBzL2NTUzR1TVRjODArUU1JRldHSDlLQmlPUEZTNjN4?=
 =?utf-8?B?NUxHdk1JNkFsZTZsdmRRdlBtd2NqZFlOTWRrTjVwZ05EdDljZVN2TUJJdEMx?=
 =?utf-8?B?eFppRW9McjVxQjNTVzJvcmg0dEowUVU5N09tbCtESGI5N3VZZU5HTkt3Q3BF?=
 =?utf-8?B?UDIxMVE1NGEzaHRrbm5qVTgweERiN1A0Y0QyRmMrbGRtR0RFWHFKSktCaDU5?=
 =?utf-8?B?c05Jdm9TSG9Bc1NkNkt3cjdzM0RJYkVJTTZUUWxYU3I2bThJZURLaVMwbVBU?=
 =?utf-8?B?ZzN0aG5mYm5PR0lFNFRUQ2lzd29Id0t5NG9hUUR1S0VNL2RUbnl0SFBPN3hI?=
 =?utf-8?B?ckZjU3R0UmU2V04xenl6L2I1bmhpejNDVGpZMUdBMzRYYlIwVnBVMlJIcWpN?=
 =?utf-8?B?eDNlUjgrTTNGSjhhamRUUWVTN2t5TXlRajFFcE52V01aM2Z3TkJXMTRXcjVI?=
 =?utf-8?B?b1lyc0pTemdkUzkwWXFtK25pTG11OXhMR0ViOU1ydXJpbnA3bEpWNnN6S1A5?=
 =?utf-8?B?L05RVUV0Zld1WFhDZU9iZ0NnUEliLy9kd2oveHM0TlNQdHlsRjBGUTFyMVV4?=
 =?utf-8?B?SVdzMEVBNHdrelZqVmYrc2lXZ3pPb1gvYlNnWGp5OXo4c0dRbW5aZnNVYXBu?=
 =?utf-8?B?alRpZzRRU1FXNEtsZmVFWWh4aWhrYXNvNTlXTTZvZW9wb0VpVHNidTR1MXJN?=
 =?utf-8?B?Q2JHcThIeFh1dmJUak55RTJnN0pNZkc5eEpXMzBmcnBVdzdEaGhMNjdTTXRw?=
 =?utf-8?B?aTdjYjY4ZGJrQVdLbXB6TTRCS1RXcmJwYkFwNEZkUVJ0Nzc0Z1VQTjM4MGZj?=
 =?utf-8?B?NjNEUjlTSloxc2dQR2VSTm1DS1RqT1BQcFRpVkFZb2szY0ZKZjJZaW9FbDNT?=
 =?utf-8?B?NHpTMG1MR3NENUxiMERFS2JVTHFtczA1TjVtalRFY3hrdHlCWU9qZUdZQmhv?=
 =?utf-8?B?cXJNVTQvcDEyTUVoZlkxMk5zVTRvejFYenAwaWI3L2ZmZDFnRkNnejRodmxN?=
 =?utf-8?B?UHZ2dmdEZ2NKMTV6VmxrdDlLN3lPeW5wNG5ZZVJxWml1WXdUUS9MMmZWcExu?=
 =?utf-8?B?N1VpUkRvNHpGdUd3Z2NGeTNvRVdjbDhCUWJMdU1NYkd1V3NxZ25YeHV3cmxM?=
 =?utf-8?B?ekFCNFErckJFdVA5RXBxVFdsa2xnM2h0eVd6Rmp1QngvN1NCRWdPK1kvdEty?=
 =?utf-8?B?MXpoZCtqc0Q5cTN0OWdmSDcveW9jcVoyRUFxZHJSOGhhRlJ4RDBGaWdZK0Np?=
 =?utf-8?B?SkVBa3IzbUJpbGhuRTJEbTc1RGZ2TkRZclB4ZzZtM0hUM0JNR3NMQVI4V2I0?=
 =?utf-8?B?dVpFSDJNL2hINkpMMzJWWldOcTgvUk8zYTNydGVQbkJndFk5R1dBNXpkelpJ?=
 =?utf-8?B?ZEprVEx4Y2JTWnIwZEd2a1FMWjJhalBFQkRxR1NWd2FNQ1QvWk1EN1VYdUdq?=
 =?utf-8?B?OTRtclVlN1JMbWFhanNpaEoxVTA2dmJyVHlieUQzWTJXYVdSQmhGWThSV21Z?=
 =?utf-8?B?eDV6MjJsMUN5Ynk0YkVoL0RxNk9vMTRSWG9EaUpXRG5ONDNYVVdrOHRMU3FB?=
 =?utf-8?B?VmVORWRVaGw4am5KQmdLN2YrRHR2aURHaTRrTi9RZUpZa3lnR0tvQzZmMlhK?=
 =?utf-8?B?dzg3U3gyNUpsTEpIVUozUFZ6OEZrTGY2cXM4c2FCTTNYZDRBMkkwRkRYZnhI?=
 =?utf-8?B?dTJBT2ZEMk9ZUmNPUHJLbWJuYlBJSmdCZXBjMFdxVkYvaVl6SlBUQjNqNUpP?=
 =?utf-8?B?dko3THlwLzNvbXJ4TlovK2p4dkRVU0plSmMrcXdtaHYxREZRQ1Y1Z3B0MWdw?=
 =?utf-8?B?YmtRZ0V1SHdjQkhGWDZHdjNyZDlWY0VXOElXY2puY1ZNRVRabk9iTTNpNnJs?=
 =?utf-8?B?MDRWRHMzS0I2SDlkR2M1d0xyMkxCTVcyY2NmSHRZSG12dzFnVjdMdVA1TFJs?=
 =?utf-8?B?NHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e87bccd1-33a2-4144-14a6-08dcfd909978
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2024 11:54:27.3258
 (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: IT1dCTTrmZ8e5u2lTQAO77jti8EZpjqaU5IiyGJsQwdiqYLudOFx34KLmYmi2uCHbeNvoMRKnx3X5elR4hleYb5aeudXLWStKz6nn1SKQTI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB8916



On 05.11.24 12:42, Michal Orzel wrote:
> 
> 
> On 04/11/2024 13:39, Grygorii Strashko wrote:
>>
>>
>> Hi All,
>>
>> On 04.11.24 12:49, Michal Orzel wrote:
>>>
>>>
>>> On 27/09/2024 00:24, Shawn Anastasio wrote:
>>>>
>>>>
>>>> Commit 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>>>> bootinfo.reserved_mem") changes the way reserve map regions are tracked,
>>>> and as a result broke bootfdt's ability to handle device trees in which
>>>> the reserve map and the `reserved-memory` node contain the same entries
>>>> as each other, as is the case on PPC when booted by skiboot.
>>>>
>>>> Fix this behavior by moving the reserve map check to after the DT has
>>>> been parsed and by explicitly allowing overlap with entries created by
>>>> `reserved-memory` nodes.
>>>>
>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>> ---
>>>>    xen/common/device-tree/bootfdt.c  | 28 +++++++++++++++++++++++-----
>>>>    xen/common/device-tree/bootinfo.c | 11 +++++++++--
>>>>    xen/include/xen/bootfdt.h         |  3 ++-
>>>>    3 files changed, 34 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
>>>> index 911a630e7d..2a51ee44a3 100644
>>>> --- a/xen/common/device-tree/bootfdt.c
>>>> +++ b/xen/common/device-tree/bootfdt.c
>>>> @@ -177,7 +177,7 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
>>>>        {
>>>>            device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
>>>>            if ( mem == bootinfo_get_reserved_mem() &&
>>>> -             check_reserved_regions_overlap(start, size) )
>>>> +             check_reserved_regions_overlap(start, size, NULL) )
>>>>                return -EINVAL;
>>>>            /* Some DT may describe empty bank, ignore them */
>>>>            if ( !size )
>>>> @@ -590,14 +590,36 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>>>        if ( nr_rsvd < 0 )
>>>>            panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
>>>>
>>>> +    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
>>> This should be moved before fdt_num_mem_rsv so that the program flow makes sense. In your case nr_rsvd is
>>> not used immediately after.
>>>
>>>> +    if ( ret )
>>>> +        panic("Early FDT parsing failed (%d)\n", ret);
>>>> +
>>>>        for ( i = 0; i < nr_rsvd; i++ )
>>>>        {
>>>> +        const struct membanks *overlap = NULL;
>>>>            struct membank *bank;
>>>>            paddr_t s, sz;
>>>>
>>>>            if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>>>>                continue;
>>>>
>>>> +        if ( check_reserved_regions_overlap(s, sz, &overlap) )
>>>> +        {
>>>> +            if ( overlap == bootinfo_get_reserved_mem() )
>>>> +            {
>>>> +                /*
>>>> +                 * Some valid device trees, such as those generated by OpenPOWER
>>>> +                 * skiboot firmware, expose all reserved memory regions in the
>>>> +                 * FDT memory reservation block (here) AND in the
>>>> +                 * reserved-memory node which has already been parsed. Thus, any
>>>> +                 * overlaps in the mem_reserved banks should be ignored.
>>>> +                 */
>>>> +                 continue;
>>> I think this is incorrect. Imagine this scenario:
>>> /memreserve/ 0x40000000 0x40000000;
>>> and /reserved-memory/foo with:
>>> reg = <0x0 0x7FFFF000 0x0 0x1000>;
>>>
>>> You would ignore the entire region described with /memreserve/ even though it overlaps just the last page.
>>>
>>> The problem you're describing is about regions that match 1:1 in /memreserve/ and /reserved-memory/.
>>> Therefore I think you should check that the overlapped regions match exactly.
>>>
>>
>> I've also discovered an issue with Commit 53dc37829c31 ("xen/arm: Add DT reserve map
>> regions to bootinfo.reserved_mem") - the bootloader adds Initrd in
>> FDT reserved map which then conflicts with Initrd module (ARM64).
>>
>> This patch, as is, doesn't fix an issue for me:
>>
>> (XEN) Checking for initrd in /chosen
>> (XEN) Initrd 0000000084000040-0000000086152ac6
>> (XEN) Region: [0x00000084000040, 0x00000086152ac6) overlapping with mod[2]: [0x00000084000040, 0x00000086152ac6)
>> (XEN)
>> (XEN) ****************************************
>> (XEN) Panic on CPU 0:
>> (XEN) FDT reserve map overlapped with membanks/modules
>> (XEN) ****************************************
>>
>> So I did fast try of Michal Orzel suggestion and it seems working for me.
>> And if it's working for PPC - may be that's it (feel free to incorporate). Diff below.
>>
>> (XEN) Checking for initrd in /chosen
>> (XEN) Initrd 0000000084000040-0000000086152ac6
>> (XEN) RAM: 0000000048000000 - 00000000bfffffff
>> (XEN) RAM: 0000000480000000 - 00000004ffffffff
>> (XEN) RAM: 0000000600000000 - 00000006ffffffff
>> (XEN)
>> (XEN) MODULE[0]: 0000000048080000 - 00000000481ec000 Xen
>> (XEN) MODULE[1]: 0000000048000000 - 000000004801e080 Device Tree
>> (XEN) MODULE[2]: 0000000084000040 - 0000000086152ac6 Ramdisk
>> (XEN) MODULE[3]: 0000000048300000 - 000000004a300000 Kernel
>> (XEN) MODULE[4]: 0000000048070000 - 0000000048080000 XSM
>> (XEN)  RESVD[0]: 0000000060000000 - 000000007fffffff
>> (XEN)  RESVD[1]: 00000000b0000000 - 00000000bfffffff
>> (XEN)  RESVD[2]: 00000000a0000000 - 00000000afffffff
>> ...
>> (XEN) *** LOADING DOMAIN 0 ***
>> (XEN) Loading d0 kernel from boot module @ 0000000048300000
>> (XEN) Loading ramdisk from boot module @ 0000000084000040
>> (XEN) Allocating 1:1 mappings totalling 256MB for dom0:
>> (XEN) BANK[0] 0x00000050000000-0x00000060000000 (256MB)
>> ...
>>
>>
>> ---
>> diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
>> index f2e6a1145b7c..10e997eeca8d 100644
>> --- a/xen/common/device-tree/bootinfo.c
>> +++ b/xen/common/device-tree/bootinfo.c
>> @@ -124,6 +124,30 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
>>        return false;
>>    }
>>
>> +static bool __init meminfo_is_exist(const struct membanks *mem,
>> +                                         paddr_t region_start,
>> +                                         paddr_t region_size)
>> +{
>> +    paddr_t bank_start = INVALID_PADDR, bank_end = 0;
>> +    paddr_t region_end = region_start + region_size;
>> +    unsigned int i, bank_num = mem->nr_banks;
>> +
>> +    for ( i = 0; i < bank_num; i++ )
>> +    {
>> +        bank_start = mem->bank[i].start;
>> +        bank_end = bank_start + mem->bank[i].size;
>> +
>> +        if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
>> +             region_start >= bank_end )
>> +            continue;
>> +
>> +        if ( region_start == bank_start && region_end  == bank_end)
>> +            return true;
>> +    }
>> +
>> +    return false;
>> +}
>> +
>>    /*
>>     * TODO: '*_end' could be 0 if the module/region is at the end of the physical
>>     * address space. This is for now not handled as it requires more rework.
>> @@ -154,6 +178,29 @@ static bool __init bootmodules_overlap_check(struct bootmodules *bootmodules,
>>        return false;
>>    }
>>
>> +static bool __init bootmodules_is_exist(struct bootmodules *bootmodules,
>> +                                             paddr_t region_start,
>> +                                             paddr_t region_size)
>> +{
>> +    paddr_t mod_start = INVALID_PADDR, mod_end = 0;
>> +    paddr_t region_end = region_start + region_size;
>> +    unsigned int i, mod_num = bootmodules->nr_mods;
>> +
>> +    for ( i = 0; i < mod_num; i++ )
>> +    {
>> +        mod_start = bootmodules->module[i].start;
>> +        mod_end = mod_start + bootmodules->module[i].size;
>> +
>> +        if ( region_end <= mod_start || region_start >= mod_end )
>> +            continue;
>> +
>> +        if (region_start == mod_start && region_end == mod_end)
>> +            return true;
>> +    }
>> +
>> +    return false;
>> +}
>> +
>>    void __init fw_unreserved_regions(paddr_t s, paddr_t e,
>>                                      void (*cb)(paddr_t ps, paddr_t pe),
>>                                      unsigned int first)
>> @@ -201,6 +248,37 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
>>        return false;
>>    }
>>
>> +bool __init check_reserved_regions_is_exist(paddr_t region_start,
>> +                                            paddr_t region_size)
>> +{
>> +    const struct membanks *mem_banks[] = {
>> +        bootinfo_get_reserved_mem(),
>> +#ifdef CONFIG_ACPI
>> +        bootinfo_get_acpi(),
>> +#endif
>> +#ifdef CONFIG_STATIC_SHM
>> +        bootinfo_get_shmem(),
>> +#endif
>> +    };
>> +    unsigned int i;
>> +
>> +    /*
>> +     * Check if input region is overlapping with reserved memory banks or
>> +     * ACPI EfiACPIReclaimMemory (when ACPI feature is enabled) or static
>> +     * shared memory banks (when static shared memory feature is enabled)
>> +     */
>> +    for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
>> +        if ( meminfo_is_exist(mem_banks[i], region_start, region_size) )
>> +            return true;
>> +
>> +    /* Check if input region is overlapping with bootmodules */
>> +    if ( bootmodules_is_exist(&bootinfo.modules,
>> +                                   region_start, region_size) )
>> +        return true;
>> +
>> +    return false;
>> +}
>> +
>>    struct bootmodule __init *add_boot_module(bootmodule_kind kind,
>>                                              paddr_t start, paddr_t size,
>>                                              bool domU)
>> diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
>> index 16fa05f38f38..b8db1335be6c 100644
>> --- a/xen/include/xen/bootfdt.h
>> +++ b/xen/include/xen/bootfdt.h
>> @@ -159,6 +159,8 @@ extern struct bootinfo bootinfo;
>>
>>    bool check_reserved_regions_overlap(paddr_t region_start,
>>                                        paddr_t region_size);
>> +bool check_reserved_regions_is_exist(paddr_t region_start,
>> +                                     paddr_t region_size);
>>
>>    struct bootmodule *add_boot_module(bootmodule_kind kind,
>>                                       paddr_t start, paddr_t size, bool domU);
>>
>>
>>
>>
> 
> I don't think there is a need for introduction of that many functions. For a simple exact matching case
> we can opencode the logic a bit. On top of Shawn patch, the minimal version would look as follows:
> 
> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
> index d35b2629e5a1..759c790888f9 100644
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -586,14 +586,14 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
> 
>       add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
> 
> -    nr_rsvd = fdt_num_mem_rsv(fdt);
> -    if ( nr_rsvd < 0 )
> -        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
> -
>       ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
>       if ( ret )
>           panic("Early FDT parsing failed (%d)\n", ret);
> 
> +    nr_rsvd = fdt_num_mem_rsv(fdt);
> +    if ( nr_rsvd < 0 )
> +        panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
> +
>       for ( i = 0; i < nr_rsvd; i++ )
>       {
>           const struct membanks *overlap = NULL;
> @@ -605,19 +605,33 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
> 
>           if ( check_reserved_regions_overlap(s, sz, &overlap) )
>           {
> -            if ( overlap == bootinfo_get_reserved_mem() )
> +            unsigned int j;
> +            bool match = false;
> +
> +            if ( overlap != reserved_mem )
> +                panic("FDT reserve map overlapped with membanks/modules\n");

No it will not work this way - as overlap I observe is with Initrd which is *Module* (Not reserved memory).
That's why i've had to add new functions.

> +
> +            /*
> +             * Some valid device trees, such as those generated by OpenPOWER
> +             * skiboot firmware, expose all reserved memory regions in the
> +             * FDT memory reservation block (here) AND in the
> +             * reserved-memory node which has already been parsed. Thus, any
> +             * matching overlaps in the mem_reserved banks should be ignored.
> +             */
> +            for ( j = 0; j < overlap->nr_banks; j++ )
>               {
> -                /*
> -                 * Some valid device trees, such as those generated by OpenPOWER
> -                 * skiboot firmware, expose all reserved memory regions in the
> -                 * FDT memory reservation block (here) AND in the
> -                 * reserved-memory node which has already been parsed. Thus, any
> -                 * overlaps in the mem_reserved banks should be ignored.
> -                 */
> -                 continue;
> +                if ( (overlap->bank[j].start == s) &&
> +                     (overlap->bank[j].size == sz) )
> +                {
> +                    match = true;
> +                    break;
> +                }
>               }
> -            else
> -                panic("FDT reserve map overlapped with membanks/modules\n");
> +
> +            if ( match )
> +                continue;
> +
> +            panic("FDT reserve map partially overlaps with /reserved-memory\n");
>           }
> 
>           if ( reserved_mem->nr_banks < reserved_mem->max_banks )
> 
> Let's wait for Shawn test and other DT maintainers opinion.
> 
> ~Michal
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 12:44:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 12:44:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830200.1245116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Iud-0000CT-Ak; Tue, 05 Nov 2024 12:43:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830200.1245116; Tue, 05 Nov 2024 12:43: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 1t8Iud-0000CM-82; Tue, 05 Nov 2024 12:43:59 +0000
Received: by outflank-mailman (input) for mailman id 830200;
 Tue, 05 Nov 2024 12:43: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=I3dk=SA=dingwall.me.uk=james@srs-se1.protection.inumbo.net>)
 id 1t8Iub-0000CE-Pd
 for xen-devel@lists.xen.org; Tue, 05 Nov 2024 12:43:57 +0000
Received: from smarthost01c.ixn.mail.zen.net.uk
 (smarthost01c.ixn.mail.zen.net.uk [212.23.1.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c20383e-9b73-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 13:43:51 +0100 (CET)
Received: from [217.155.64.189] (helo=mail0.xen.dingwall.me.uk)
 by smarthost01c.ixn.mail.zen.net.uk with esmtpsa (TLS1.0) tls
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (Exim 4.95)
 (envelope-from <james@dingwall.me.uk>) id 1t8IuT-006UZx-Ja
 for xen-devel@lists.xen.org; Tue, 05 Nov 2024 12:43:51 +0000
Received: from localhost (localhost [IPv6:::1])
 by mail0.xen.dingwall.me.uk (Postfix) with ESMTP id C33D0B18F32
 for <xen-devel@lists.xen.org>; Tue,  5 Nov 2024 12:43:50 +0000 (GMT)
Received: from mail0.xen.dingwall.me.uk ([127.0.0.1])
 by localhost (mail0.xen.dingwall.me.uk [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id kpGNBQSHJYyJ for <xen-devel@lists.xen.org>;
 Tue,  5 Nov 2024 12:43:50 +0000 (GMT)
Received: from ghoul.dingwall.me.uk (ghoul.dingwall.me.uk [192.168.1.200])
 by dingwall.me.uk (Postfix) with ESMTP id 92EE0B18F2D
 for <xen-devel@lists.xen.org>; Tue,  5 Nov 2024 12:43:50 +0000 (GMT)
Received: by ghoul.dingwall.me.uk (Postfix, from userid 1000)
 id D7002CA; Tue,  5 Nov 2024 12:43:50 +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: 9c20383e-9b73-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxMi4yMy4xLjIyIiwiaGVsbyI6InNtYXJ0aG9zdDAxYy5peG4ubWFpbC56ZW4ubmV0LnVrIn0=
X-Custom-Transaction: eyJpZCI6IjljMjAzODNlLTliNzMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODEwNjMxLjgyNDUzMSwic2VuZGVyIjoiamFtZXNAZGluZ3dhbGwubWUudWsiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZyJ9
X-Virus-Scanned: Debian amavisd-new at dingwall.me.uk
Date: Tue, 5 Nov 2024 12:43:50 +0000
From: James Dingwall <james-xen@dingwall.me.uk>
To: xen-devel@lists.xen.org
Subject: [PATCH] drop setting XEN_QEMU_CONSOLE_LIMIT in the environment
Message-ID: <ZyoTBgbGGYTyphH6@dingwall.me.uk>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="NL3BdUKXuzckRVF2"
Content-Disposition: inline
X-Originating-smarthost01c-IP: [217.155.64.189]
Feedback-ID: 217.155.64.189


--NL3BdUKXuzckRVF2
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

Since qemu-xen-4.18.0 the corresponding code which responds to this
environment variable was not applied to the qemu tree.  It doesn't make
sense to me that it continues to be set in libxl so here's a patch
which removes it.

These are the relevant commits for various qemu tags:

qemu-xen-4.10.0: c349189772cec43498b0bec8a84146f10b8937af
qemu-xen-4.11.0: 2b033e396f4fa0981bae1213cdacd15775655a97
qemu-xen-4.12.0: 4f080070a9809bde857851e68a3aeff0c4b9b6a6
qemu-xen-4.13.0: c81d7597747f29432a0e197bf2c2109e77f2b6cf
qemu-xen-4.14.0: 410cc30fdc590417ae730d635bbc70257adf6750
qemu-xen-4.15.0: 677cbe1324c29294bb1d1b8454b3f214725e40fd
qemu-xen-4.16.0: b6e539830bf45e2d7a6bd86ddfdf003088b173b0
qemu-xen-4.17.0: 9a5e4bc76058766962ab3ff13f42c1d39a8e08d3
qemu-xen-4.18.0: not present
qemu-xen-4.19.0: not present

If this is approved is someone able to apply it to the tree?

Regards,
James

--NL3BdUKXuzckRVF2
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="remove-XEN_QEMU_CONSOLE_LIMIT.diff"

commit 86bfb2b8105c840311645a5587bc6cce6e5312ef
Author: James Dingwall <james@dingwall.me.uk>
Date:   Tue Nov 5 11:16:20 2024 +0000

    libxl: drop setting XEN_QEMU_CONSOLE_LIMIT in the environment (XSA-180 / CVE-2014-3672)
    
    The corresponding code in the Xen qemu repository was not applied from
    qemu-xen-4.18.0.

diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 1f2f5bd97a..b193a5dc37 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -638,20 +638,6 @@ int libxl__domain_device_construct_rdm(libxl__gc *gc,
     return ERROR_FAIL;
 }
 
-/* XSA-180 / CVE-2014-3672
- *
- * The QEMU shipped with Xen has a bodge. It checks for
- * XEN_QEMU_CONSOLE_LIMIT to see how much data QEMU is allowed
- * to write to stderr. We set that to 1MB if it is not set by
- * system administrator.
- */
-static void libxl__set_qemu_env_for_xsa_180(libxl__gc *gc,
-                                            flexarray_t *dm_envs)
-{
-    if (getenv("XEN_QEMU_CONSOLE_LIMIT")) return;
-    flexarray_append_pair(dm_envs, "XEN_QEMU_CONSOLE_LIMIT", "1048576");
-}
-
 const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *guest_config)
 {
     const libxl_vnc_info *vnc = NULL;
@@ -704,8 +690,6 @@ static int libxl__build_device_model_args_old(libxl__gc *gc,
 
     assert(state->dm_monitor_fd == -1);
 
-    libxl__set_qemu_env_for_xsa_180(gc, dm_envs);
-
     flexarray_vappend(dm_args, dm,
                       "-d", GCSPRINTF("%d", domid), NULL);
 
@@ -1210,8 +1194,6 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
     dm_args = flexarray_make(gc, 16, 1);
     dm_envs = flexarray_make(gc, 16, 1);
 
-    libxl__set_qemu_env_for_xsa_180(gc, dm_envs);
-
     flexarray_vappend(dm_args, dm,
                       "-xen-domid",
                       GCSPRINTF("%d", guest_domid), NULL);
@@ -3656,7 +3638,6 @@ void libxl__spawn_qemu_xenpv_backend(libxl__egc *egc,
     flexarray_append(dm_args, NULL);
     args = (char **) flexarray_contents(dm_args);
 
-    libxl__set_qemu_env_for_xsa_180(gc, dm_envs);
     envs = (char **) flexarray_contents(dm_envs);
 
     logfile_w = libxl__create_qemu_logfile(gc, GCSPRINTF("qdisk-%u", domid));

--NL3BdUKXuzckRVF2--


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 12:58:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 12:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830207.1245126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8J80-00021U-Ed; Tue, 05 Nov 2024 12:57:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830207.1245126; Tue, 05 Nov 2024 12:57: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 1t8J80-00021N-Bw; Tue, 05 Nov 2024 12:57:48 +0000
Received: by outflank-mailman (input) for mailman id 830207;
 Tue, 05 Nov 2024 12:57: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8J7y-00021F-Pq
 for xen-devel@lists.xen.org; Tue, 05 Nov 2024 12:57:46 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c0170e9-9b75-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 13:57:43 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-539e3f35268so6636804e87.3
 for <xen-devel@lists.xen.org>; Tue, 05 Nov 2024 04:57: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-381c113e595sm16188373f8f.77.2024.11.05.04.57.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 04:57: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: 8c0170e9-9b75-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhjMDE3MGU5LTliNzUtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODExNDYzLjQ5NDY5NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730811463; x=1731416263; darn=lists.xen.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=vb/L1a/IINIiB4BFiQ2QU4P/qDW7CMhHBBpZC2ykKYo=;
        b=Jm2mMzkY9Dhe5bI2WwG40VQEFWjzdx9wPwa6G0ZvLlHV45fdv+CKELQshVjitSK4q0
         GYBllV6oTFg3LeYzoealQi0cr2EGMwBorGrfahm+wrhG0lArG+PGETjf57xvGdCA38Yp
         HvoYUSo8WK3Vvz43ijYXGorRDQ9USZHSAu3OktfivXYd/HAkMYtTnNXJQgSlqlCMllO/
         LZldErtNrSiC02tmFtBOd4O7Z1VK0kypOeAkec/EtdiC9C30dug8xfFP7X4I86zaU7vB
         yDY9stDg27xAkTUv0QvHnVcUZCmhmtaCL1Na+VjzXeOTZcSY4SmwVMfDp9r3Vcp/ASXa
         H7yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730811463; x=1731416263;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vb/L1a/IINIiB4BFiQ2QU4P/qDW7CMhHBBpZC2ykKYo=;
        b=vyZGj2pBA2FYIa98P1hOs2tHs+UwUu1uO7TkC8HiZf85YI7+GONXZ/ppz8m0WKDiF0
         kq/jPoM7EfQB9lfzHZSiHRoHoyoKXbmqNnSvFEVo+jHp3z63Dni7eTu2vvqSBq41yil9
         /ydz3u+gQhcMN2QVxHXpmXtjOkHJqswVFodleqTu+1jGenaVRbzyd9LaU6upPieUSt7E
         q3zR05bvsHaTFgoFGJOaf7upRUVjoc0rN6I1J7dDr7PgyR3o7OvkX2gbhUhDaDbjaOIk
         Jhd7pe/1mNNqhUw63+jWj1PYZhnCGElh1Oh1CwWiuRUw7f15ZxDB/+GmrW0dI6c0jVs2
         rC5g==
X-Gm-Message-State: AOJu0YzwJPXQGz7DTqcA5tTDElKIhNTiz8M3fvK+vnmwfclpVo0eo9wM
	MiYLLzE0GDWVKJw+QQdA04Dp0L7EK68kTL1CJMueE8w2fUUy96daFpPnN/QoIA==
X-Google-Smtp-Source: AGHT+IE44RFS6YXZKbwmoeHy/Cwj7HiRI4Okz7N6T/qhEjIIBN4JUadPtCBl/hTTVNLhRDWMefaG/Q==
X-Received: by 2002:a05:6512:1089:b0:535:645b:fb33 with SMTP id 2adb3069b0e04-53d65de5606mr7534011e87.2.1730811462845;
        Tue, 05 Nov 2024 04:57:42 -0800 (PST)
Message-ID: <a111a4d4-66cf-4270-ac53-0e18288ad9ee@suse.com>
Date: Tue, 5 Nov 2024 13:57:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] drop setting XEN_QEMU_CONSOLE_LIMIT in the environment
To: James Dingwall <james-xen@dingwall.me.uk>
References: <ZyoTBgbGGYTyphH6@dingwall.me.uk>
Content-Language: en-US
Cc: xen-devel@lists.xen.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: <ZyoTBgbGGYTyphH6@dingwall.me.uk>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.11.2024 13:43, James Dingwall wrote:
> Hi,
> 
> Since qemu-xen-4.18.0 the corresponding code which responds to this
> environment variable was not applied to the qemu tree.  It doesn't make
> sense to me that it continues to be set in libxl so here's a patch
> which removes it.
> 
> These are the relevant commits for various qemu tags:
> 
> qemu-xen-4.10.0: c349189772cec43498b0bec8a84146f10b8937af
> qemu-xen-4.11.0: 2b033e396f4fa0981bae1213cdacd15775655a97
> qemu-xen-4.12.0: 4f080070a9809bde857851e68a3aeff0c4b9b6a6
> qemu-xen-4.13.0: c81d7597747f29432a0e197bf2c2109e77f2b6cf
> qemu-xen-4.14.0: 410cc30fdc590417ae730d635bbc70257adf6750
> qemu-xen-4.15.0: 677cbe1324c29294bb1d1b8454b3f214725e40fd
> qemu-xen-4.16.0: b6e539830bf45e2d7a6bd86ddfdf003088b173b0
> qemu-xen-4.17.0: 9a5e4bc76058766962ab3ff13f42c1d39a8e08d3
> qemu-xen-4.18.0: not present
> qemu-xen-4.19.0: not present
> 
> If this is approved is someone able to apply it to the tree?

Once approved, any committer will be able to. First, however, like any patch
this one also needs a (your?) Signed-off-by:.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 13:20:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 13:20:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830217.1245145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8JUH-0006Et-5v; Tue, 05 Nov 2024 13:20:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830217.1245145; Tue, 05 Nov 2024 13: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 1t8JUH-0006Em-35; Tue, 05 Nov 2024 13:20:49 +0000
Received: by outflank-mailman (input) for mailman id 830217;
 Tue, 05 Nov 2024 13:09: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=wqyn=SA=gmail.com=chenqiuji666@srs-se1.protection.inumbo.net>)
 id 1t8JJQ-0003vg-1O
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 13:09:36 +0000
Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com
 [2607:f8b0:4864:20::641])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3137e59e-9b77-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 14:09:32 +0100 (CET)
Received: by mail-pl1-x641.google.com with SMTP id
 d9443c01a7336-21116b187c4so37268915ad.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 05:09:30 -0800 (PST)
Received: from tom-QiTianM540-A739.. ([106.39.42.118])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-211057a306esm77998805ad.144.2024.11.05.05.09.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 05: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: 3137e59e-9b77-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjo2NDEiLCJoZWxvIjoibWFpbC1wbDEteDY0MS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxMzdlNTllLTliNzctMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODEyMTcyLjc0ODA1OSwic2VuZGVyIjoiY2hlbnFpdWppNjY2QGdtYWlsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730812169; x=1731416969; 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=UDWyygav+8muC3u5fmkiDyo/AKuSKyI9CkFr65axGHk=;
        b=IuyUkSq81B37Xw1s8Tx6Tuvihp0Pu+yT7JY1+q6hUNCE823mcgFTPH1ZzoNSHi8lFD
         Es8OCNeLKsp+F/iUvTR4PSa+oyztuhorpv8iZZ4SZdUB0X6yaIl46sIUYjaV+CfOZccE
         z3UQVxoZPPNAkfBc2rLlUqDHLA53zcmdJq8gWf7e/++a0A2xZSx65qpJLnTg2BJapz99
         LizqavuatJIa8SZD3y+iXmhJeCkATWrWXr6yA7cPhEE6TJl3KFu2WnJ1gJUiFSWO7ETy
         JBYLO15B7nRgG1P/7RrofaVkX7zcP7e8Tj9ukpWZt93/HSodV6GXwVf69Sz7eRkqOHTa
         7V5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730812169; x=1731416969;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=UDWyygav+8muC3u5fmkiDyo/AKuSKyI9CkFr65axGHk=;
        b=qfMSZND5HvqAT02tRd/epdnxAsOqwZ3L65H8noMnP3qt0BCrwcOtVGN3Xrx596AdSI
         0eNvVGan7SzoohyD5qAjCKM/KtvwaWD07Eh3bFwbZ9JZlaK2nbPmEylVzg+iYfZxrWPm
         fHrQY4qSQtDjb6FwcrnoCgOm70wozjSGuIh+DWeGYdUI9vPvMtWHGmlnCeSOXwq5fJeD
         2gipCxqO9USxVuyI3b7wnhkpkzm3PR6NYBQMwIcQc54XDGzeIMhAZ+1dsC8ohMeIByHa
         GkjOoA+TPDty6c0p7rimLJIsRHWF3RBaGJuiKcnmcf8Hw39nr1yKhKZIeMLVNEtWZoSW
         NC1A==
X-Gm-Message-State: AOJu0YybaRMEUWzXJPBkncJJ/USfsN3B+SDDeDYYY06iXuoSGlffqqGY
	YZSJjsEvooAaNTzKyLWO8b42RboqMXBUTLYIMSD3S/VBB89WplaK
X-Google-Smtp-Source: AGHT+IF1g8Nn9YJy/sRBPmJnKRunRLCLlieuQkXJ2jxt8P/MMM6nEAY++N1OmI759/YFFuLeFvjT3A==
X-Received: by 2002:a17:903:440d:b0:20e:55b0:3607 with SMTP id d9443c01a7336-2111af1cbbcmr199687325ad.2.1730812169318;
        Tue, 05 Nov 2024 05:09:29 -0800 (PST)
From: Qiu-ji Chen <chenqiuji666@gmail.com>
To: jgross@suse.com,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	gregkh@linuxfoundation.org,
	sumit.garg@linaro.org,
	xin.wang2@amd.com
Cc: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	baijiaju1990@gmail.com,
	Qiu-ji Chen <chenqiuji666@gmail.com>,
	stable@vger.kernel.org
Subject: [PATCH] xen: Fix the issue of resource not being properly released in xenbus_dev_probe()
Date: Tue,  5 Nov 2024 21:09:19 +0800
Message-Id: <20241105130919.4621-1-chenqiuji666@gmail.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch fixes an issue in the function xenbus_dev_probe(). In the 
xenbus_dev_probe() function, within the if (err) branch at line 313, the 
program incorrectly returns err directly without releasing the resources 
allocated by err = drv->probe(dev, id). As the return value is non-zero, 
the upper layers assume the processing logic has failed. However, the probe
operation was performed earlier without a corresponding remove operation. 
Since the probe actually allocates resources, failing to perform the remove
operation could lead to problems.

To fix this issue, we followed the resource release logic of the 
xenbus_dev_remove() function by adding a new block fail_remove before the 
fail_put block. After entering the branch if (err) at line 313, the 
function will use a goto statement to jump to the fail_remove block, 
ensuring that the previously acquired resources are correctly released, 
thus preventing the reference count leak.

This bug was identified by an experimental static analysis tool developed
by our team. The tool specializes in analyzing reference count operations
and detecting potential issues where resources are not properly managed.
In this case, the tool flagged the missing release operation as a
potential problem, which led to the development of this patch.

Fixes: 4bac07c993d0 ("xen: add the Xenbus sysfs and virtual device hotplug driver")
Cc: stable@vger.kernel.org
Signed-off-by: Qiu-ji Chen <chenqiuji666@gmail.com>
---
 drivers/xen/xenbus/xenbus_probe.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 9f097f1f4a4c..6d32ffb01136 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -313,7 +313,7 @@ int xenbus_dev_probe(struct device *_dev)
 	if (err) {
 		dev_warn(&dev->dev, "watch_otherend on %s failed.\n",
 		       dev->nodename);
-		return err;
+		goto fail_remove;
 	}
 
 	dev->spurious_threshold = 1;
@@ -322,6 +322,12 @@ int xenbus_dev_probe(struct device *_dev)
 			 dev->nodename);
 
 	return 0;
+fail_remove:
+	if (drv->remove) {
+		down(&dev->reclaim_sem);
+		drv->remove(dev);
+		up(&dev->reclaim_sem);
+	}
 fail_put:
 	module_put(drv->driver.owner);
 fail:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 13:26:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 13:26:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830225.1245155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8JZJ-0006yR-Nn; Tue, 05 Nov 2024 13:26:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830225.1245155; Tue, 05 Nov 2024 13: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 1t8JZJ-0006yK-Km; Tue, 05 Nov 2024 13:26:01 +0000
Received: by outflank-mailman (input) for mailman id 830225;
 Tue, 05 Nov 2024 13:26: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=I3dk=SA=dingwall.me.uk=james@srs-se1.protection.inumbo.net>)
 id 1t8JZI-0006yC-1E
 for xen-devel@lists.xen.org; Tue, 05 Nov 2024 13:26:00 +0000
Received: from smarthost01c.ixn.mail.zen.net.uk
 (smarthost01c.ixn.mail.zen.net.uk [212.23.1.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c3b9d57-9b79-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 14:25:55 +0100 (CET)
Received: from [217.155.64.189] (helo=mail0.xen.dingwall.me.uk)
 by smarthost01c.ixn.mail.zen.net.uk with esmtpsa (TLS1.0) tls
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (Exim 4.95)
 (envelope-from <james@dingwall.me.uk>) id 1t8JZA-006bDC-QU;
 Tue, 05 Nov 2024 13:25:54 +0000
Received: from localhost (localhost [IPv6:::1])
 by mail0.xen.dingwall.me.uk (Postfix) with ESMTP id 3C3B5B18FA9;
 Tue,  5 Nov 2024 13:25:54 +0000 (GMT)
Received: from mail0.xen.dingwall.me.uk ([127.0.0.1])
 by localhost (mail0.xen.dingwall.me.uk [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id qd_Oa4LXPPnl; Tue,  5 Nov 2024 13:25:54 +0000 (GMT)
Received: from ghoul.dingwall.me.uk (ghoul.dingwall.me.uk
 [IPv6:2a02:8010:698e:302::c0a8:1c8])
 by dingwall.me.uk (Postfix) with ESMTP id 0C736B18FA4;
 Tue,  5 Nov 2024 13:25:54 +0000 (GMT)
Received: by ghoul.dingwall.me.uk (Postfix, from userid 1000)
 id 482955F8; Tue,  5 Nov 2024 13:25:54 +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: 7c3b9d57-9b79-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxMi4yMy4xLjIyIiwiaGVsbyI6InNtYXJ0aG9zdDAxYy5peG4ubWFpbC56ZW4ubmV0LnVrIn0=
X-Custom-Transaction: eyJpZCI6IjdjM2I5ZDU3LTliNzktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODEzMTU1LjIwNzc4MSwic2VuZGVyIjoiamFtZXNAZGluZ3dhbGwubWUudWsiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZyJ9
X-Virus-Scanned: Debian amavisd-new at dingwall.me.uk
Date: Tue, 5 Nov 2024 13:25:54 +0000
From: James Dingwall <james-xen@dingwall.me.uk>
To: xen-devel@lists.xen.org
Cc: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] drop setting XEN_QEMU_CONSOLE_LIMIT in the environment
Message-ID: <Zyoc4t3RAS7sbVOv@dingwall.me.uk>
References: <ZyoTBgbGGYTyphH6@dingwall.me.uk>
 <a111a4d4-66cf-4270-ac53-0e18288ad9ee@suse.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="JN7Y+jsZuWx4FjqQ"
Content-Disposition: inline
In-Reply-To: <a111a4d4-66cf-4270-ac53-0e18288ad9ee@suse.com>
X-Originating-smarthost01c-IP: [217.155.64.189]
Feedback-ID: 217.155.64.189


--JN7Y+jsZuWx4FjqQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tue, Nov 05, 2024 at 01:57:41PM +0100, Jan Beulich wrote:
> On 05.11.2024 13:43, James Dingwall wrote:
> > Since qemu-xen-4.18.0 the corresponding code which responds to this
> > environment variable was not applied to the qemu tree.  It doesn't make
> > sense to me that it continues to be set in libxl so here's a patch
> > which removes it.
> > 
> > These are the relevant commits for various qemu tags:
> > 
> > qemu-xen-4.10.0: c349189772cec43498b0bec8a84146f10b8937af
> > qemu-xen-4.11.0: 2b033e396f4fa0981bae1213cdacd15775655a97
> > qemu-xen-4.12.0: 4f080070a9809bde857851e68a3aeff0c4b9b6a6
> > qemu-xen-4.13.0: c81d7597747f29432a0e197bf2c2109e77f2b6cf
> > qemu-xen-4.14.0: 410cc30fdc590417ae730d635bbc70257adf6750
> > qemu-xen-4.15.0: 677cbe1324c29294bb1d1b8454b3f214725e40fd
> > qemu-xen-4.16.0: b6e539830bf45e2d7a6bd86ddfdf003088b173b0
> > qemu-xen-4.17.0: 9a5e4bc76058766962ab3ff13f42c1d39a8e08d3
> > qemu-xen-4.18.0: not present
> > qemu-xen-4.19.0: not present
> > 
> > If this is approved is someone able to apply it to the tree?
> 
> Once approved, any committer will be able to. First, however, like any patch
> this one also needs a (your?) Signed-off-by:.

v2 with Signed-off-by: (and a promise I've read 'CONTRIBUTING').

Thanks,
James

(This wiki link referenced in CONTRIBUTING currently errors though:
https://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches)

--JN7Y+jsZuWx4FjqQ
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="remove-XEN_QEMU_CONSOLE_LIMIT-v2.diff"

commit 7b89ea44dbcb965b6b67c8de5092ea2b95d4c6f9
Author: James Dingwall <james@dingwall.me.uk>
Date:   Tue Nov 5 11:16:20 2024 +0000

    libxl: drop setting XEN_QEMU_CONSOLE_LIMIT in the environment (XSA-180 / CVE-2014-3672)
    
    The corresponding code in the Xen qemu repository was not applied from
    qemu-xen-4.18.0.
    
    Signed-off-by: James Dingwall <james@dingwall.me.uk>

diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 1f2f5bd97a..b193a5dc37 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -638,20 +638,6 @@ int libxl__domain_device_construct_rdm(libxl__gc *gc,
     return ERROR_FAIL;
 }
 
-/* XSA-180 / CVE-2014-3672
- *
- * The QEMU shipped with Xen has a bodge. It checks for
- * XEN_QEMU_CONSOLE_LIMIT to see how much data QEMU is allowed
- * to write to stderr. We set that to 1MB if it is not set by
- * system administrator.
- */
-static void libxl__set_qemu_env_for_xsa_180(libxl__gc *gc,
-                                            flexarray_t *dm_envs)
-{
-    if (getenv("XEN_QEMU_CONSOLE_LIMIT")) return;
-    flexarray_append_pair(dm_envs, "XEN_QEMU_CONSOLE_LIMIT", "1048576");
-}
-
 const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *guest_config)
 {
     const libxl_vnc_info *vnc = NULL;
@@ -704,8 +690,6 @@ static int libxl__build_device_model_args_old(libxl__gc *gc,
 
     assert(state->dm_monitor_fd == -1);
 
-    libxl__set_qemu_env_for_xsa_180(gc, dm_envs);
-
     flexarray_vappend(dm_args, dm,
                       "-d", GCSPRINTF("%d", domid), NULL);
 
@@ -1210,8 +1194,6 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
     dm_args = flexarray_make(gc, 16, 1);
     dm_envs = flexarray_make(gc, 16, 1);
 
-    libxl__set_qemu_env_for_xsa_180(gc, dm_envs);
-
     flexarray_vappend(dm_args, dm,
                       "-xen-domid",
                       GCSPRINTF("%d", guest_domid), NULL);
@@ -3656,7 +3638,6 @@ void libxl__spawn_qemu_xenpv_backend(libxl__egc *egc,
     flexarray_append(dm_args, NULL);
     args = (char **) flexarray_contents(dm_args);
 
-    libxl__set_qemu_env_for_xsa_180(gc, dm_envs);
     envs = (char **) flexarray_contents(dm_envs);
 
     logfile_w = libxl__create_qemu_logfile(gc, GCSPRINTF("qdisk-%u", domid));

--JN7Y+jsZuWx4FjqQ--


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 13:54:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 13:54:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830233.1245165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8K0I-0003Bl-QE; Tue, 05 Nov 2024 13:53:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830233.1245165; Tue, 05 Nov 2024 13: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 1t8K0I-0003Be-MW; Tue, 05 Nov 2024 13:53:54 +0000
Received: by outflank-mailman (input) for mailman id 830233;
 Tue, 05 Nov 2024 13: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8K0H-0003BW-HV
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 13:53: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 626cf26c-9b7d-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 14:53:50 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4315eac969aso34196295e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 05:53: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-431bd947b2bsm226238665e9.25.2024.11.05.05.53.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 05:53: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: 626cf26c-9b7d-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYyNmNmMjZjLTliN2QtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE0ODMwLjU3NzA1Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730814829; x=1731419629; 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=+s5Oyk6glvdzfHQG54DyWol8OjSSU1tTw/PKtjSzTSE=;
        b=NsQ8sAlmfS+KyQ5S1aH/CscENUIUsIdjsZCmtQcm1NSgNdWVXsGms3cgL+mscRdES7
         jra8KmJ2MS+FU0OKXL8KCGYzOm6rgmN/qfnAEhZYAR6nHe/ZCGtnl31DscoQ11yY0CGq
         4l0aI29Er1EdEQ2zTROZquna46ZTMjHjkQn+P7UMKeaGK5Oxe/QCRc8o+GrglKtMAXhE
         jt7R5ldZtBX8JsCLCPYCHnm8DS4tNmt+tFBbrX3UPvI7fP/Cb0a/T10GvD3AzDddVcmy
         6WUg+G6C6ACAhusYFTLn66SR5bWL91RKc4BnIfqlQyCDmORiDptHDzuXwxrTKkCHX94Y
         cGIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730814829; x=1731419629;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=+s5Oyk6glvdzfHQG54DyWol8OjSSU1tTw/PKtjSzTSE=;
        b=XQJfOJz6jRdTDpAudYPLimuzoEhP6PjIftjmSr0EIFE/GSekUaFEqQriblgPNoBHMt
         2XPo6fJwWIbq3qDUnm1wdHtjUk8DSjEhJFK9PSER06zkwHtPr9auWPQo8rGY3rfPwNd9
         QMmCvJNARiKjRw4NJoRMuvSW6WLY5M+7RaxumMeJ/STWXGNfBgYDuZajpyjSsvljxTAX
         H88vrD3Cp0LHBeN3fd7WUzsIrKuA5L6HAWPadYFono8dPxALaExEpgwMYIlp8EFpPNiN
         IiQN6RY+l+MDX2zoPnLxF69/tOgyBDs3f1v3qbVhuwWqkIUZa4rn1Jv7YjxtVZVUfe1M
         QdJA==
X-Gm-Message-State: AOJu0YwXeDrvozrBFIF3QazOW4uKDZ1aX3okkbs1/HuI5xZm0dP+oGJt
	vQS5iyax/6/S2zqGIWLk7H9nRxv8P2/rU20KmDCBe2nz+YTFeoNpr9vGapaH3G5goryHkRbJEx4
	=
X-Google-Smtp-Source: AGHT+IF6Tgcy2Z61oJhqMLroXYwmAHtT6llsqslYeomrwim/wrx7KOZ5+wVMNLuW8a4pseUpIcAm9w==
X-Received: by 2002:a05:600c:1382:b0:431:5475:3cd1 with SMTP id 5b1f17b1804b1-4327dacc373mr141077425e9.17.1730814829497;
        Tue, 05 Nov 2024 05:53:49 -0800 (PST)
Message-ID: <f1fc4064-a2dd-4287-81ba-a90ce5205e0e@suse.com>
Date: Tue, 5 Nov 2024 14:53:48 +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] x86emul/test: drop an undue conditional
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

Gating the main part of what do_test() does is wrong: As it stands, the
"memory" forms of BNDC{L,N,U} weren't tested because of this mistake.

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

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -2213,42 +2213,37 @@ void do_test(uint8_t *instr, unsigned in
                           unsigned int bytes,
                           struct x86_emulate_ctxt *ctxt))
 {
-    struct x86_emulate_state *s;
+    struct x86_emulate_state *s = x86_decode_insn(ctxt, fetch);
 
-    if ( !modrm || mem != mem_none )
+    if ( !s )
     {
-        s = x86_decode_insn(ctxt, fetch);
+        print_insn(instr, len);
+        printf(" failed to decode\n");
+        return;
+    }
+
+    if ( x86_insn_length(s, ctxt) != len )
+    {
+        print_insn(instr, len);
+        printf(" length %u (expected %u)\n", x86_insn_length(s, ctxt), len);
+    }
 
-        if ( !s )
-        {
-            print_insn(instr, len);
-            printf(" failed to decode\n");
-            return;
-        }
-
-        if ( x86_insn_length(s, ctxt) != len )
-        {
-            print_insn(instr, len);
-            printf(" length %u (expected %u)\n", x86_insn_length(s, ctxt), len);
-        }
-
-        if ( x86_insn_is_mem_access(s, ctxt) != (mem != mem_none) )
-        {
-            print_insn(instr, len);
-            printf(" mem access %d (expected %d)\n",
-                   x86_insn_is_mem_access(s, ctxt), mem != mem_none);
-        }
-
-        if ( x86_insn_is_mem_write(s, ctxt) != (mem == mem_write) )
-        {
-            print_insn(instr, len);
-            printf(" mem write %d (expected %d)\n",
-                   x86_insn_is_mem_write(s, ctxt), mem == mem_write);
-        }
+    if ( x86_insn_is_mem_access(s, ctxt) != (mem != mem_none) )
+    {
+        print_insn(instr, len);
+        printf(" mem access %d (expected %d)\n",
+               x86_insn_is_mem_access(s, ctxt), mem != mem_none);
+    }
 
-        x86_emulate_free_state(s);
+    if ( x86_insn_is_mem_write(s, ctxt) != (mem == mem_write) )
+    {
+        print_insn(instr, len);
+        printf(" mem write %d (expected %d)\n",
+               x86_insn_is_mem_write(s, ctxt), mem == mem_write);
     }
 
+    x86_emulate_free_state(s);
+
     if ( modrm )
     {
         instr[modrm] |= 0xc0;


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 13:56:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 13:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830243.1245176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8K36-0003t3-BE; Tue, 05 Nov 2024 13:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830243.1245176; Tue, 05 Nov 2024 13:56: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 1t8K36-0003sw-6i; Tue, 05 Nov 2024 13:56:48 +0000
Received: by outflank-mailman (input) for mailman id 830243;
 Tue, 05 Nov 2024 13:56: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8K35-0003sq-6u
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 13:56:47 +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 ca4ce850-9b7d-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 14:56:44 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-37d43a9bc03so3739455f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 05:56:44 -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-431bd9a9a53sm218113865e9.30.2024.11.05.05.56.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 05:56: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: ca4ce850-9b7d-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzUiLCJoZWxvIjoibWFpbC13cjEteDQzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNhNGNlODUwLTliN2QtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE1MDA0LjEzNjQ0Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730815004; x=1731419804; 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=pfZ+UeYj+bJxihuwa6M3uSLAGfb4Hl4ju6KISLMCXMM=;
        b=SL6oHW6hzwJWXH3jkqZzUPMCTLxEP1/fcCIwnq6VgAlbMObIa3z/kqDNUKNX2MAFI3
         VQq84tLJbMlg3q/r7wB0Cdymv7QRb1v1L4ZPj/EfKciSUP3XcJQXZdupxljPhY6Wknx4
         nuqASMhPTXYELt3thmf7HQZvzJfH5AvrkY1CI1Y4oOA5EzTht9rg3XO5NvhzTiHchbvn
         zoTxyS/vaNkRwkIN2aQ4hSwP3Z/gTxtW/EDiLy9EMsyEmoPlT5d63UsbOR0uvSYkMBx9
         r/5sS4cE3cKc/4kGLeCbvA2dNU2MLGfefHmHKB6jlzWqT9rOnu0cx39z+O5x7vDErCcx
         CaqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730815004; x=1731419804;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=pfZ+UeYj+bJxihuwa6M3uSLAGfb4Hl4ju6KISLMCXMM=;
        b=D+qyAvBEC9nC8csbx4mYvVXy0vF22gqXiBhARScCCcKZEuoSDAHNhhvcsRUbGP/EIi
         264rZ/a929/DDCmKwMKilNYzslFszZZIEjQyKIAjVjQSAH+ijEIOLkEF9HbOLawZlTzI
         4asxqDPxULXHeZh6cUlId8ETivSb3qNeYF+fK1U0t/F1vZWqmQPvAjKLPhqlDWCYpRFf
         OzDIkjE6DlhJJnJCUzTPOYw/esg46Ftln8uYUFURU3Z3K1BOqvazLUCR0aPZd3xm8pa6
         44oGpiuiCR/riub9mAAzNxQxxLdUY5Zqu2ERhLOE9jPsandaubqca00X3550zNH5jP3B
         xGvQ==
X-Gm-Message-State: AOJu0Yy5PsulZ0Tr2dRZKpzH0g9M42jDR6Aab308V85YUCL9wOKrts2Z
	or6poIxmGg5WGgxubv1ThfEM1wzNg5qY7erctxRP170sYxBxFyMuR1vV62p+hmjdzCOqy5TC7Oo
	=
X-Google-Smtp-Source: AGHT+IETFyL1eq6hZ6r5qv9ZNjWhBJBWwhWurrQxX1VCDwppsP/H65RLcVhbyGJKTycRd4yF770tqA==
X-Received: by 2002:a05:6000:1541:b0:37c:cee9:4684 with SMTP id ffacd0b85a97d-381c7a5d493mr12483664f8f.14.1730815003608;
        Tue, 05 Nov 2024 05:56:43 -0800 (PST)
Message-ID: <a537dd1e-bbd3-4ef8-8014-6bb432484c57@suse.com>
Date: Tue, 5 Nov 2024 14:56:42 +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] x86/PV: further harden guest memory accesses against
 speculative abuse
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 original implementation has two issues: For one it doesn't preserve
non-canonical-ness of inputs in the range 0x8000000000000000 through
0x80007fffffffffff. Bogus guest pointers in that range would not cause a
(#GP) fault upon access, when they should.

And then there is an AMD-specific aspect, where only the low 48 bits of
an address are used for speculative execution; the architecturally
mandated #GP for non-canonical addresses would be raised at a later
execution stage. Therefore to prevent Xen controlled data to make it
into any of the caches in a guest controllable manner, we need to
additionally ensure that for non-canonical inputs bit 47 would be clear.

See the code comment for how addressing both is being achieved.

Fixes: 4dc181599142 ("x86/PV: harden guest memory accesses against speculative abuse")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: Two variants of part of the logic are being presented, both with
     certain undesirable aspects: The first form is pretty large and
     ugly (some improvement may be possible by introducing further
     helper macros). The alternative form continues to use RCR, which
     generally would be nice to do away with. Then again that's also
     slightly smaller generated code.

RFC: The .irp/.irpc/.if constructs used in variant 1 will need checking
     as to them working with old gas as well as Clang.

RFC: When the scratch registers aren't %r8...%r15, several unnecessary
     REX prefixes are emitted, as users of the macro pass in 64-bit
     registers. Similar to what's done to be able to use SETcc, we could
     derive %e.. from %r.. to shrink code size some. (An alternative,
     requiring to touch the use sites, would be to constrain the scratch
     registers to AX...DI and pass in only the last two characters of
     the names [e.g. "di", i.e. also without the leading %]. That would
     make it straightforward to use both %r.. and %e.. at the same time.

RFC: If code size was of concern, then in variant 1 the XOR could in
     principle be omitted.

--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -1,3 +1,5 @@
+#include <asm/page-bits.h>
+
 #ifndef HAVE_AS_CLAC_STAC
 .macro clac
     .byte 0x0f, 0x01, 0xca
@@ -65,17 +67,55 @@
 .macro guest_access_mask_ptr ptr:req, scratch1:req, scratch2:req
 #if defined(CONFIG_SPECULATIVE_HARDEN_GUEST_ACCESS)
     /*
-     * Here we want
-     *
-     * ptr &= ~0ull >> (ptr < HYPERVISOR_VIRT_END);
-     *
+     * Here we want to adjust \ptr such that
+     * - if it's within Xen range, it becomes non-canonical,
+     * - otherwise if it's (non-)canonical on input, it retains that property,
+     * - if the result is non-canonical, bit 47 is clear (to avoid
+     *   potentially populating the cache with Xen data),
      * but guaranteed without any conditional branches (hence in assembly).
+     *
+     * To achieve this we determine which bit to forcibly clear: Either bit 47
+     * (in case the address is below HYPERVISOR_VIRT_END) or bit 63.  Further
+     * we determine whether for forcably set bit 63: In case we first cleared
+     * it, we'll merely restore the original address.  In case we ended up
+     * clearing bit 47 (i.e. the address was either non-canonical or within Xen
+     * range), setting the bit will yield a guaranteed non-canonical address.
+     * If we didn't clear a bit, we also won't set one: The address was in the
+     * low half of address space in that case with bit 47 already clear.  The
+     * address can thus be left unchanged, whether canonical or not.
      */
     mov $(HYPERVISOR_VIRT_END - 1), \scratch1
-    mov $~0, \scratch2
+    mov $(VADDR_BITS - 1), \scratch2
     cmp \ptr, \scratch1
+    /*
+     * Not needed: The value we have in \scratch1 will be truncated to 6 bits,
+     * thus yielding the value we need.
+    mov $63, \scratch1
+     */
+    cmovnb \scratch2, \scratch1
+    xor \scratch2, \scratch2
+    btr \scratch1, \ptr
+ .if 1
+ .irpc r, "acdb"
+  .if \scratch2 == %r\r\(\(x))
+     setc %\r\(\(l))
+  .endif
+ .endr
+ .irp r, bp, si, di
+  .if \scratch2 == %r\r
+     setc %\r\(\(l))
+  .endif
+ .endr
+ .irp r, 8, 9, 10, 11, 12, 13, 14, 15
+  .if \scratch2 == %r\r
+     setc   %r\r\(\(b))
+  .endif
+ .endr
+    shl $63, \scratch2
+ .else
     rcr $1, \scratch2
-    and \scratch2, \ptr
+ .endif
+    or \scratch2, \ptr
 #elif defined(CONFIG_DEBUG) && defined(CONFIG_PV)
     xor $~\@, \scratch1
     xor $~\@, \scratch2


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 13:59:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 13:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830249.1245186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8K5X-0004eJ-OD; Tue, 05 Nov 2024 13:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830249.1245186; Tue, 05 Nov 2024 13:59: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 1t8K5X-0004eC-Il; Tue, 05 Nov 2024 13:59:19 +0000
Received: by outflank-mailman (input) for mailman id 830249;
 Tue, 05 Nov 2024 13: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=lM+p=SA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8K5W-0004dn-0M
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 13:59:18 +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 1f9ce900-9b7e-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 14:59:07 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5cec7cde922so5138596a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 05:59:07 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17f9b62sm136577066b.165.2024.11.05.05.59.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 05:59: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: 1f9ce900-9b7e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmOWNlOTAwLTliN2UtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE1MTQ3LjIwMTgxNCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730815146; x=1731419946; 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=bT2gp4HdavhNTZLihDwhjcaajBAKKyJgNrQkN9QoCtQ=;
        b=fiZHoAobFgOFfLaYw0YbKYhQdpfT5Ui9cGFth/HoQUB3CMrJ4UkjUBaKlioFsXRQdl
         sTIrsERF47YQCfNyvYg1dvWuOY7QN4Y/RxJb/B5wbP182mIDZQUrRtQZdfyMJUzmPrmP
         KzwQTyWUSk8KEo8PNRACvx69ZtBRnEHjr4WPU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730815146; x=1731419946;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bT2gp4HdavhNTZLihDwhjcaajBAKKyJgNrQkN9QoCtQ=;
        b=JmNEdkkFbnV8b3zia9fgAoBS4nASrFxJBPv/tpUD54tesmeIhVI/aRQbjN30wxLFAY
         wj6xrGZe9N263KyoXn2sJe5aM+Fk35ecpPBXdog28Qt4v578Kg8W5IkWGnpAoTofmUpX
         nG+R+15AXgBseHDOqcq4hBhl+RbTWJd7pYhMOceiKMVqIoEZTCt7h7f02BDSjbMct5UT
         gvpbV/GIo9oUblGBI4/K2huJ0RnbdVTT2IU/6EttjeVjNllfpeHEwM5Wxz0c7Q2qSDQ+
         BjQcRt7i0TCdgPlxe+gqwAlNeQAZhSzmIpE0dUVq8t+pnHBC++PLqJBUACFYP/3UlbHF
         JwMg==
X-Forwarded-Encrypted: i=1; AJvYcCXSD2YlBg9HYpXbEIuFRctdSvB7TiXJjhypxEaFkl0EzNEibqvlG66NlY0xd7kAKG2W5HtFnfKcAmE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWmYeLOrLA7qiidSuVOw+oxrK+GY3mWMh2tBmyi1fmdgehk7aB
	5bJIPUwF8Ao70FCNo5VUlnZvGohD50Nev5ANoaALvw4Q2Lc/LB2y5NU0ZFR8i5k=
X-Google-Smtp-Source: AGHT+IFbocSmjccCJ6tNgWRxgiUay+SIcuF3DOLYxkkxyt3DQYT7et+hRpPvvEnOYHGQ4UC/nxFQEw==
X-Received: by 2002:a17:907:6093:b0:a9a:26a5:d508 with SMTP id a640c23a62f3a-a9e3a5757c8mr2095923566b.9.1730815146590;
        Tue, 05 Nov 2024 05:59:06 -0800 (PST)
Message-ID: <024be5b0-e0e2-4fb2-9561-124277b2d6e5@citrix.com>
Date: Tue, 5 Nov 2024 13:59:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul/test: drop an undue conditional
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: <f1fc4064-a2dd-4287-81ba-a90ce5205e0e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <f1fc4064-a2dd-4287-81ba-a90ce5205e0e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/11/2024 1:53 pm, Jan Beulich wrote:
> Gating the main part of what do_test() does is wrong: As it stands, the
> "memory" forms of BNDC{L,N,U} weren't tested because of this mistake.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:33:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:33:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830259.1245225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd2-00031b-2P; Tue, 05 Nov 2024 14:33:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830259.1245225; Tue, 05 Nov 2024 14:33: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 1t8Kd1-00031U-VS; Tue, 05 Nov 2024 14:33:55 +0000
Received: by outflank-mailman (input) for mailman id 830259;
 Tue, 05 Nov 2024 14:33: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd1-0002K5-BR
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33:55 +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 fac9d3cc-9b82-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:33:53 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5c9454f3bfaso7202689a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:53 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: fac9d3cc-9b82-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZhYzlkM2NjLTliODItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjMzLjE3MDk3NSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817232; x=1731422032; 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=uaCt1R4em9pfxDQHOMV7fnt5XQRHenhzTeTJnqdZ8nU=;
        b=U+6rm4YdBHLDfOu0p9aWuoNvXtPwm5fOGfBLvI5eRG9b5Wibfu36JvITuwWi514VZM
         Oes2x8qGRCKxbi6s6Puc4o8U+j4xZjgJoixfdkZUnOW23S4lmDhBMid3F8Y4ptfWGOF7
         8Ph11yIpZgNRhqlpzGTv81BfPOSNVvROF2r34=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817232; x=1731422032;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uaCt1R4em9pfxDQHOMV7fnt5XQRHenhzTeTJnqdZ8nU=;
        b=trbXY5QIb6gHQvGZhrLCWp0EqV7AlemqGTtYxUxU9B+mewAVKiF2AzFg/TdjHdg9LS
         78+pqrQjKIuoZ4meprlCRn8s/liZ2LS4QwDMARChMeHSKFu4y6r8gyCi9H9MmkWD9PRZ
         bWdpizA0WnH14dAcuyuHSaZTim5sfmvv2vfWvIcFYdHfEE67smy20g6nMWGk8tPnqQ+S
         gXgEwvH4K1JlbZhXyY5Ts3X0KhHYjzlelWZ/StW5GHAVY1Fkw3uNoMCMqVPMP5Cjp76T
         o4uzMsmIe86FnAmtZpe1em08Px2LXwc59KWxbfd9FDznK9ZIFDpWZuz+foYB1+USYuW+
         U1Aw==
X-Gm-Message-State: AOJu0Yyl6A8QYfjLTRgsvzwShDIr5fvYUv45KU4EKHxSQY3gVdeSGHfw
	zrLqZFKXkRg62kqQ2BmHSQfo0Mx/EK4ZQWAqUxZ0HmLZTk0iA9VAcHinOxo3oqR55ul2i3fBDZO
	o
X-Google-Smtp-Source: AGHT+IHkwmMqPA6QHCDQwMcBPOeKV84ETVsWV5zBo30jGJZIha1WDr3qXV57i1sevxjjrvQV5bhAwQ==
X-Received: by 2002:a05:6402:4405:b0:5ce:dfab:e2f5 with SMTP id 4fb4d7f45d1cf-5cedfabe3f0mr2954851a12.13.1730817231901;
        Tue, 05 Nov 2024 06:33:51 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 04/13] x86/fpu: Map/umap xsave area in vcpu_{reset,setup}_fpu()
Date: Tue,  5 Nov 2024 14:33:01 +0000
Message-ID: <20241105143310.28301-5-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * No change
---
 xen/arch/x86/i387.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 3add0025e495..a6ae323fa95f 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -304,8 +304,10 @@ int vcpu_init_fpu(struct vcpu *v)
 
 void vcpu_reset_fpu(struct vcpu *v)
 {
+    struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
+
     v->fpu_initialised = false;
-    *v->arch.xsave_area = (struct xsave_struct) {
+    *xsave_area = (struct xsave_struct) {
         .fpu_sse = {
             .mxcsr = MXCSR_DEFAULT,
             .fcw = FCW_RESET,
@@ -313,15 +315,21 @@ void vcpu_reset_fpu(struct vcpu *v)
         },
         .xsave_hdr.xstate_bv = X86_XCR0_X87,
     };
+
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
 }
 
 void vcpu_setup_fpu(struct vcpu *v, const void *data)
 {
+    struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
+
     v->fpu_initialised = true;
-    *v->arch.xsave_area = (struct xsave_struct) {
+    *xsave_area = (struct xsave_struct) {
         .fpu_sse = *(const fpusse_t*)data,
         .xsave_hdr.xstate_bv = XSTATE_FP_SSE,
     };
+
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
 }
 
 /* Free FPU's context save area */
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:33:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830257.1245205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd0-0002YW-EE; Tue, 05 Nov 2024 14:33:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830257.1245205; Tue, 05 Nov 2024 14:33: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 1t8Kd0-0002YP-BF; Tue, 05 Nov 2024 14:33:54 +0000
Received: by outflank-mailman (input) for mailman id 830257;
 Tue, 05 Nov 2024 14:33: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kcz-0002K5-4A
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33:53 +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 f998a050-9b82-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:33:50 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5c941623a5aso11544248a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:50 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: f998a050-9b82-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY5OThhMDUwLTliODItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjMwLjg5NTk1NSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817230; x=1731422030; 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=B5MI75e4+hOjaOxFZKHpo9oTq8hdhATr+ZHahTSCs6U=;
        b=PKYz8U1znWxozUwaYYMfdTV77Kp4otFElDwOVHx9mhAklzIW8t3iYXuGIFFlUauKvZ
         icbQFsQYFxCqjYNi8BZ90e/JEtJtW0EfsjGp71yoAyWp67/baPa8GamEs9UdQaWoDl2y
         Zstprrl5ANbXnZBF3lL6Ply/DVTmdKjMCiRl4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817230; x=1731422030;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=B5MI75e4+hOjaOxFZKHpo9oTq8hdhATr+ZHahTSCs6U=;
        b=EenDw7AmIkEWo7D7xbVtQjFsouzGpB85c4nWAjjQiD0ilcUJ9teNdfwQ+I0Q6NKeyO
         abhp8TTS+mYEHKI01XjS3sBSjWHNnuF9BuPK3HJjQumtAHUjd+iqP3zFLOUl+dkuP3Iu
         5W9uKsJr5Ar0vmExlHWmHy6EV3qsQvzDauS98a/8P3TMhGqknx+9avUnutvqkt+L4Znx
         W/0aXPe5/4WxCA/16ma4XsmTUOAi6SrlwjZy9LQRXX9jQAkOuOuG/oEX2NvpJvRzUGAF
         IiYPCCO489oXyJWfbJ8vX/hjw88emR7cXZfwLl/2NbsdZg39J4iH2OWdurDVoQv1Y6I2
         eOWA==
X-Gm-Message-State: AOJu0Yz8+VZ9p0dB0/+4AH4lh5k0u3g0002DMfL0txvyQnp1xKjq18UI
	SzccX8VY2U/mngwmNzisKX6DLepYkkcKyFc0ahxKCkg/5XuhGmc6yp03hgZCNA40EX/9e8LcOUk
	q
X-Google-Smtp-Source: AGHT+IElpRYa2awz+b5ZiTEQCetsqe4Q4xDPQIeYnAy0JSjDCDL+J66ma0sNHWP3O0Gl53xOoGT0Pg==
X-Received: by 2002:a05:6402:51c7:b0:5ce:df98:ea7d with SMTP id 4fb4d7f45d1cf-5cedf98eb22mr4487574a12.8.1730817229985;
        Tue, 05 Nov 2024 06:33:49 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 02/13] x86/xstate: Create map/unmap primitives for xsave areas
Date: Tue,  5 Nov 2024 14:32:59 +0000
Message-ID: <20241105143310.28301-3-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add infrastructure to simplify ASI handling. With ASI in the picture
we'll have several different means of accessing the XSAVE area of a
given vCPU, depending on whether a domain is covered by ASI or not and
whether the vCPU is question is scheduled on the current pCPU or not.

Having these complexities exposed at the call sites becomes unwieldy
very fast. These wrappers are intended to be used in a similar way to
map_domain_page() and unmap_domain_page(); The map operation will
dispatch the appropriate pointer for each case in a future patch, while
unmap will remain a no-op where no unmap is required (e.g: when there's
no ASI) and remove the transient maping if one was required.

Follow-up patches replace all uses of raw v->arch.xsave_area by this
mechanism in preparation to add the beforementioned dispatch logic to be
added at a later time.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * Comment macros more heavily to show their performance characteristics.
  * Addressed various nits in the macro comments.
  * Macro names to uppercase.
---
 xen/arch/x86/include/asm/xstate.h | 42 +++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index 07017cc4edfd..6b0daff0aeec 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -143,4 +143,46 @@ static inline bool xstate_all(const struct vcpu *v)
            (v->arch.xcr0_accum & XSTATE_LAZY & ~XSTATE_FP_SSE);
 }
 
+/*
+ * Fetch a pointer to a vCPU's XSAVE area
+ *
+ * TL;DR: If v == current, the mapping is guaranteed to already exist.
+ *
+ * Despite the name, this macro might not actually map anything. The only case
+ * in which a mutation of page tables is strictly required is when ASI==on &&
+ * v!=current. For everything else the mapping already exists and needs not
+ * be created nor destroyed.
+ *
+ *                         +-----------------+--------------+
+ *                         |   v == current  | v != current |
+ *          +--------------+-----------------+--------------+
+ *          | ASI  enabled | per-vCPU fixmap |  actual map  |
+ *          +--------------+-----------------+--------------+
+ *          | ASI disabled |             directmap          |
+ *          +--------------+--------------------------------+
+ *
+ * There MUST NOT be outstanding maps of XSAVE areas of the non-current vCPU
+ * at the point of context switch. Otherwise, the unmap operation will
+ * misbehave.
+ *
+ * TODO: Expand the macro to the ASI cases after infra to do so is in place.
+ *
+ * @param v Owner of the XSAVE area
+ */
+#define VCPU_MAP_XSAVE_AREA(v) ((v)->arch.xsave_area)
+
+/*
+ * Drops the mapping of a vCPU's XSAVE area and nullifies its pointer on exit
+ *
+ * See VCPU_MAP_XSAVE_AREA() for additional information on the persistence of
+ * these mappings. This macro only tears down the mappings in the ASI=on &&
+ * v!=current case.
+ *
+ * TODO: Expand the macro to the ASI cases after infra to do so is in place.
+ *
+ * @param v Owner of the XSAVE area
+ * @param x XSAVE blob of v
+ */
+#define VCPU_UNMAP_XSAVE_AREA(v, x) ({ (x) = NULL; })
+
 #endif /* __ASM_XSTATE_H */
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:33:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830256.1245195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kcz-0002KM-6y; Tue, 05 Nov 2024 14:33:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830256.1245195; Tue, 05 Nov 2024 14:33: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 1t8Kcz-0002KB-4I; Tue, 05 Nov 2024 14:33:53 +0000
Received: by outflank-mailman (input) for mailman id 830256;
 Tue, 05 Nov 2024 14:33: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kcy-0002K5-0Y
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33:52 +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 f81c082d-9b82-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:33:48 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cec93719ccso4195304a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:48 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06: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: f81c082d-9b82-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY4MWMwODJkLTliODItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjI4LjUxMDQzNiwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817227; x=1731422027; 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=7UehNmm+XdMyNc78IVmVaRzHkpGfHOcJ6pojHJUSgnA=;
        b=PGcRZXijf/q58e+OMP0ktAIGFmpCrFqhhHnhFFo6VrgH2DZ1N4zRGZt4z3uH4aub4O
         HEq3QxXiamLF5f5+LhJWskLTBaKOLIewVU3eae8DuXgSjdhdVGnlovv3F0HbRPinVq7G
         nOBIqVNNND0HkAEKNOlaI18pxBjGQmS1cjQ2Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817227; x=1731422027;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=7UehNmm+XdMyNc78IVmVaRzHkpGfHOcJ6pojHJUSgnA=;
        b=mFqIsmlajXb8RnNX0XuCFjAdGXAgCXIKl+ZpPTnapLnavUZdDw+3aJDTbreNIbthCE
         Scr9Zon7V+JpAYFd0bBHgmkawEKY4y6KgQrcpYEnFl+38uBYGwZrdwFH1zpGvR6p8v0H
         1kZG5ky0VOAK12Wb29u4PX3R55bzkZIANBI42orCq2+yZlk9wzAy06SNqumjoLS+eXDE
         nTMFZdu+vlhh0KuC//K+dNk7QMLWA3Ke2VGmUjt8VsbliN0CS8Vbv3P9MPRAChGUIKK0
         SX7sEDsgV2WFyPN//ni2NxCreoJi+JsvykDjAImVG2OVzT1T2I10tbyknz4tajbvJDyz
         aUCQ==
X-Gm-Message-State: AOJu0Yzbn0heEN49sA3DEfH18tR2Pv5JxFRz1bTGZRPok6yYlpJNtwsi
	sPGEluTELtJd7V7upZbPm8BCpc2xTFTgwZ0zxmNZZ70W0cyEOIGS59J2yQVk/RplCwJbi86Lzcn
	M
X-Google-Smtp-Source: AGHT+IHRAXhExBAO/U3fsvaErEEcsSJeIZdCTocSxGxbccyQTKSg4S40Tvkucw4KZC9SbAfPGXPUkg==
X-Received: by 2002:a05:6402:524c:b0:5ce:d6db:23fa with SMTP id 4fb4d7f45d1cf-5ced6db245dmr6042455a12.20.1730817227479;
        Tue, 05 Nov 2024 06:33:47 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 00/13] x86: Address Space Isolation FPU preparations
Date: Tue,  5 Nov 2024 14:32:57 +0000
Message-ID: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

See original cover letter in v1

v1: https://lore.kernel.org/xen-devel/20241028154932.6797-1-alejandro.vallejo@cloud.com/
v1->v2:
  * Turned v1/patch1 into an assert removal
  * Dropped v1/patch11: "x86/mpx: Adjust read_bndcfgu() to clean after itself"
  * Other minor changes out of feedback. Explained in each patch.

Alejandro Vallejo (13):
  x86/xstate: Remove stale assertions in fpu_x{rstor,save}()
  x86/xstate: Create map/unmap primitives for xsave areas
  x86/hvm: Map/unmap xsave area in hvm_save_cpu_ctxt()
  x86/fpu: Map/umap xsave area in vcpu_{reset,setup}_fpu()
  x86/xstate: Map/unmap xsave area in xstate_set_init() and
    handle_setbv()
  x86/hvm: Map/unmap xsave area in hvmemul_{get,put}_fpu()
  x86/domctl: Map/unmap xsave area in arch_get_info_guest()
  x86/xstate: Map/unmap xsave area in {compress,expand}_xsave_states()
  x86/emulator: Refactor FXSAVE_AREA to use wrappers
  x86/mpx: Map/unmap xsave area in in read_bndcfgu()
  x86/fpu: Pass explicit xsave areas to fpu_(f)xsave()
  x86/fpu: Pass explicit xsave areas to fpu_(f)xrstor()
  x86/xstate: Make xstate_all() and vcpu_xsave_mask() take explicit
    xstate

 xen/arch/x86/domctl.c             |  9 +++--
 xen/arch/x86/hvm/emulate.c        | 12 +++++-
 xen/arch/x86/hvm/hvm.c            |  8 ++--
 xen/arch/x86/i387.c               | 65 +++++++++++++++++++------------
 xen/arch/x86/include/asm/xstate.h | 51 ++++++++++++++++++++++--
 xen/arch/x86/x86_emulate/blk.c    | 11 +++++-
 xen/arch/x86/xstate.c             | 47 +++++++++++++++-------
 7 files changed, 150 insertions(+), 53 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:33:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830258.1245210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd0-0002ff-Qt; Tue, 05 Nov 2024 14:33:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830258.1245210; Tue, 05 Nov 2024 14:33: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 1t8Kd0-0002eV-No; Tue, 05 Nov 2024 14:33:54 +0000
Received: by outflank-mailman (input) for mailman id 830258;
 Tue, 05 Nov 2024 14:33: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kcz-0002Lm-KR
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33: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 f8fc86c5-9b82-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:33:49 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5c937b5169cso600769a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:49 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: f8fc86c5-9b82-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY4ZmM4NmM1LTliODItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE3MjI5LjkxNDQ3MSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817229; x=1731422029; 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=lm70mwHIeRKoNhCCFejzjDU9gu+VjbCXPS3BQfLbce0=;
        b=Jbq9NOlxXEKCEAVMutHvn3NY6gBcL3xu8E0LACqzgbFFn7NJ6XQJwmmS/Wc2UEG5Q2
         XqoNUPVGHZ8LNnwA39RKjnXJheVvKMmpy3WZBHoR6W0juYBWV2HHMIRI0FRmK4Ld1jIu
         kuDd87x620yko9ktevApdRkVk2S9y18QyHzew=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817229; x=1731422029;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lm70mwHIeRKoNhCCFejzjDU9gu+VjbCXPS3BQfLbce0=;
        b=OZcdzPBYWWNblG8dBSaBhSnMbR8qBqD9UklS1N/sZoAJ22qyK3vpzOjB+fiSMQ4d+l
         DBvvfm0z5QWtRJtQLHnO6tCZ6Nn4IjsW9LgQClMu0wUbnijQBlFcXorYN/4suo1Xeh/J
         p64rv9ekxPU5f4T16aar+8DdpQyCU8f7xh6x7KkupzwdmK/qDlKDxFm2xq/+2mKgXnOq
         mMIe7EQMUMu/cveQx1faV33Rfc4O4I2pS55tZYF7xrrgatPuLbiS0vWm6f38hRX3rXUW
         tZDSRz5PrTqPiQr5BlBr+RR+FsDC5aAnFobQ6043/FBEbG6y4cYLWYDfOtIXutI+O39b
         sudQ==
X-Gm-Message-State: AOJu0Yx4cWR4QdHhqN7eJ5nYIj5rPWDPfGQwpyOCv7YmfxFW73b/3GrX
	PWcZ/ffbkEwjt68MN9iIe/UhIfKDGpGG8MDI+TYId/a26vPVhz/6LPuc6zQMqOSs1/BzSq+IMKu
	6
X-Google-Smtp-Source: AGHT+IEhWx2RuS/BYIBWDBc6maT4rwV0tb/DwlYlZRoeFkV4ZYnjAKsX+HD1obBYMGsMYslSbg1VMw==
X-Received: by 2002:a05:6402:2748:b0:5ce:c7ce:145e with SMTP id 4fb4d7f45d1cf-5cec7ce17ccmr12100578a12.14.1730817228923;
        Tue, 05 Nov 2024 06:33:48 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 01/13] x86/xstate: Remove stale assertions in fpu_x{rstor,save}()
Date: Tue,  5 Nov 2024 14:32:58 +0000
Message-ID: <20241105143310.28301-2-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

After edb48e76458b("x86/fpu: Combine fpu_ctxt and xsave_area in arch_vcpu"),
v->arch.xsave_area is always present and we can just remove these asserts.

Fixes: edb48e76458b("x86/fpu: Combine fpu_ctxt and xsave_area in arch_vcpu")
Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * Remove asserts rather than refactor them.
  * Trimmed and adjusted commit message
---
 xen/arch/x86/i387.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 83f9b2502bff..3add0025e495 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -24,7 +24,6 @@ static inline void fpu_xrstor(struct vcpu *v, uint64_t mask)
 {
     bool ok;
 
-    ASSERT(v->arch.xsave_area);
     /*
      * XCR0 normally represents what guest OS set. In case of Xen itself,
      * we set the accumulated feature mask before doing save/restore.
@@ -136,7 +135,6 @@ static inline void fpu_xsave(struct vcpu *v)
     uint64_t mask = vcpu_xsave_mask(v);
 
     ASSERT(mask);
-    ASSERT(v->arch.xsave_area);
     /*
      * XCR0 normally represents what guest OS set. In case of Xen itself,
      * we set the accumulated feature mask before doing save/restore.
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:33:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830260.1245235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd3-0003Hp-Bz; Tue, 05 Nov 2024 14:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830260.1245235; Tue, 05 Nov 2024 14:33: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 1t8Kd3-0003HX-7B; Tue, 05 Nov 2024 14:33:57 +0000
Received: by outflank-mailman (input) for mailman id 830260;
 Tue, 05 Nov 2024 14:33: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd1-0002K5-Ig
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33:55 +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 faffc597-9b82-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:33:53 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5c94861ee25so2968683a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:53 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: faffc597-9b82-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZhZmZjNTk3LTliODItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjMzLjI0NjU3MSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817232; x=1731422032; 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=yyqgbdCyqz7WQBq4sAipK7yHeendz1D8ul3qjvP/+g8=;
        b=HAITGYMUSd1lNIcdGPsrzp1k+itdrcqUkACAJWneEGU2TFJZBU/CMnfTOiJ/cJrrij
         JTSRqURZUSRTzNfRmXFlsYf8gecxKBze1d8KTMtIpm8X37lReZbBp3r5xHYgcHl1GCHu
         xFT8R1nxgrwS94imrr8uV/6Vynih48E8iSh0c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817232; x=1731422032;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=yyqgbdCyqz7WQBq4sAipK7yHeendz1D8ul3qjvP/+g8=;
        b=eUMdeZcUnqDNUHV/nLZd3jLloNFxCh6OGY5LYiv6lp8MSBOR0gYydVcVtLMLiUScQM
         NUI0fUr0J9SJd+cnrLzeeQbcWt9LKw4HL86tglxTq8vL6v67vBiYDFgKGmtKoFaTythc
         pM6t4Te//0WqvkWtWPQtLFocSk2Ayu0h69Tt2XvB45X2VVbzfpNDAL6gSRQvKG3lJAEW
         iCieZr21ikDaLuB2fbBNA4SWj4KVeSjLCBzq5pm2xrgkOHiT/Dj3DwU/LeGj83A+kZxY
         YAQw4DNPqqx6RgVd3kwEhjzSps4wYvnmHQ22n8O7X85HDhswsNJRr1TRZqCcIrcuxMvW
         eHXg==
X-Gm-Message-State: AOJu0YxZWv8zIUp/CrVWZa9S+pPd5nB0mJBMlsqwDWlP5AkL38H6n43C
	mUSfEAw1Q0BOwzn/9cq9WKToljU3r94Cq/JEUAr93gahGrA4iajLspprgGruWLCuwz1IenhlGNs
	P
X-Google-Smtp-Source: AGHT+IF1jV35urzB96D/9HqoIOs+dpJXaGQ8XIKeUjyC6ubT8ayqoooLczkbqx7hS4HjBq+ce64o4w==
X-Received: by 2002:a05:6402:5c9:b0:5ca:efe:10de with SMTP id 4fb4d7f45d1cf-5ceb9382a40mr18273172a12.30.1730817230969;
        Tue, 05 Nov 2024 06:33:50 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 03/13] x86/hvm: Map/unmap xsave area in hvm_save_cpu_ctxt()
Date: Tue,  5 Nov 2024 14:33:00 +0000
Message-ID: <20241105143310.28301-4-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * No change
---
 xen/arch/x86/hvm/hvm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 018d44a08b6b..c90654697cb1 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -914,11 +914,11 @@ static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
 
     if ( v->fpu_initialised )
     {
-        BUILD_BUG_ON(sizeof(ctxt.fpu_regs) !=
-                     sizeof(v->arch.xsave_area->fpu_sse));
-        memcpy(ctxt.fpu_regs, &v->arch.xsave_area->fpu_sse,
-               sizeof(ctxt.fpu_regs));
+        const struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
 
+        BUILD_BUG_ON(sizeof(ctxt.fpu_regs) != sizeof(xsave_area->fpu_sse));
+        memcpy(ctxt.fpu_regs, &xsave_area->fpu_sse, sizeof(ctxt.fpu_regs));
+        VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
         ctxt.flags = XEN_X86_FPU_INITIALISED;
     }
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:33:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:33:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830261.1245244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd5-0003al-JS; Tue, 05 Nov 2024 14:33:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830261.1245244; Tue, 05 Nov 2024 14:33: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 1t8Kd5-0003aa-GB; Tue, 05 Nov 2024 14:33:59 +0000
Received: by outflank-mailman (input) for mailman id 830261;
 Tue, 05 Nov 2024 14: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd3-0002Lm-Ji
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33:57 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fbcc7573-9b82-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:33:54 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-539e13375d3so5709834e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:54 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: fbcc7573-9b82-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzMiLCJoZWxvIjoibWFpbC1sZjEteDEzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZiY2M3NTczLTliODItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE3MjM0LjU0NDQyMywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817234; x=1731422034; 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=cccZT2nNkS7HwSnMjpqOOO6Pj9Rt1hTJOtUGj8Io0EM=;
        b=cqvAj5hq1PfOP4NTs3I5y/dVM5hYvU49CVm5dH1egJD2yUuL2ZuCN9fhnf3nPU8eV0
         YKacFgYt1lZ4wcLHvUpKPH3lAGAs9OkC2ceMbLkUVBKUcksFYuEFbEU8WNbmG5UnFCZT
         ylHMnciva4isyDxkzHyfBGsh/L3+OjqCWBWj4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817234; x=1731422034;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cccZT2nNkS7HwSnMjpqOOO6Pj9Rt1hTJOtUGj8Io0EM=;
        b=oJmpnsvGqWa6PrpxuY2gdYHVY7psur+QYz4ZMWDiR/q7i77HSfaQMsoroqBCV1PE/t
         59DHsP1HbnphSDDYsMiXOKvAUOyp91uWJCPKsKWq+DSBcozQItJBkGmZdRJXTpcIvpLe
         7F/bptu2fbFpxq2+TFEnt2vNNUDxurFveyJ/7OL58wCDT4NM/BeMrTvJ5LT8++Uxz2DZ
         F2tztBoCAL9x4YoXzdPyYuX+2tIFg27MuNSVEhG2zAKSBR01VzWtIatrz9iD9P4Ye+rX
         +dyFl2By6xHjH9rQBE4mxjippyMDrOqejE0YN9g8+9+Cm5MM4MDbIcxChtZtmwU/DLty
         8VsA==
X-Gm-Message-State: AOJu0YwX3SBpsV26eVykjVzf9J7LxleTWOL6fUjYMCWM9NyfLW9JTyVV
	0HQF4s8nHgw+ZjM42l2J+e8i4ndKdgi9AbTF7tqrKGUEW1LGtkHF1Zs9dd8susI/EIrZQv3VAsA
	g
X-Google-Smtp-Source: AGHT+IHrNmRZfcX4aC6aS1DeA4a59+43m9OGjtNEUC2QU5MbtRtDnUQSzXyAAjVgiUZtRovM+6xiGQ==
X-Received: by 2002:a05:6512:138e:b0:536:53f0:2f8e with SMTP id 2adb3069b0e04-53c79e8ecbdmr8749128e87.37.1730817233351;
        Tue, 05 Nov 2024 06:33:53 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 05/13] x86/xstate: Map/unmap xsave area in xstate_set_init() and handle_setbv()
Date: Tue,  5 Nov 2024 14:33:02 +0000
Message-ID: <20241105143310.28301-6-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * Added comment highlighting fastpath for current
---
 xen/arch/x86/xstate.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index af9e345a7ace..401bdad2eb0d 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -993,7 +993,13 @@ int handle_xsetbv(u32 index, u64 new_bv)
 
         clts();
         if ( curr->fpu_dirtied )
-            asm ( "stmxcsr %0" : "=m" (curr->arch.xsave_area->fpu_sse.mxcsr) );
+        {
+            /* has a fastpath for `current`, so there's no actual map */
+            struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
+
+            asm ( "stmxcsr %0" : "=m" (xsave_area->fpu_sse.mxcsr) );
+            VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
+        }
         else if ( xstate_all(curr) )
         {
             /* See the comment in i387.c:vcpu_restore_fpu_eager(). */
@@ -1048,7 +1054,7 @@ void xstate_set_init(uint64_t mask)
     unsigned long cr0 = read_cr0();
     unsigned long xcr0 = this_cpu(xcr0);
     struct vcpu *v = idle_vcpu[smp_processor_id()];
-    struct xsave_struct *xstate = v->arch.xsave_area;
+    struct xsave_struct *xstate;
 
     if ( ~xfeature_mask & mask )
     {
@@ -1061,8 +1067,10 @@ void xstate_set_init(uint64_t mask)
 
     clts();
 
+    xstate = VCPU_MAP_XSAVE_AREA(v);
     memset(&xstate->xsave_hdr, 0, sizeof(xstate->xsave_hdr));
     xrstor(v, mask);
+    VCPU_UNMAP_XSAVE_AREA(v, xstate);
 
     if ( cr0 & X86_CR0_TS )
         write_cr0(cr0);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830262.1245249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd6-0003dn-0J; Tue, 05 Nov 2024 14:34:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830262.1245249; Tue, 05 Nov 2024 14:33: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 1t8Kd5-0003d2-PK; Tue, 05 Nov 2024 14:33:59 +0000
Received: by outflank-mailman (input) for mailman id 830262;
 Tue, 05 Nov 2024 14: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd3-0002K5-W3
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33:57 +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 fc92def0-9b82-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:33:55 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aadb1so5994362a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:55 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: fc92def0-9b82-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZjOTJkZWYwLTliODItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjM1Ljg5NDEwMywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817235; x=1731422035; 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=mJwLbo7xtzRRC/VnQO4xXecso10EVyoDQfxpw8QvaGI=;
        b=Szbl2X6Sf3CZ+i/9NunmcRgJl7dOrZiIQG3VR2m9NbzB6Q9J8a9QUFK6MJqufMKKPh
         bgji8ssMnieAHstP/bHqP9i6eeRUDrOPjTATvAXhnxDjvZnoxZTv6KXJCTwRq+Briz67
         +tAf3dWs8Boy+2Xf++QEmD4GwKpjlO/izqRXk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817235; x=1731422035;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=mJwLbo7xtzRRC/VnQO4xXecso10EVyoDQfxpw8QvaGI=;
        b=QAC5disuorDut0ISeUznhscGMifL/jDVgg0gxzxhadYw9jwnDcq9s1KCuxQON8B90a
         1YuiV92uI/kfRp1E6sgud1b2eSbTqzxdtK13ZprQ1mG8THu789UwOkQ9xMyKEP9jFitf
         FkXSlVi47yorx1Dbf+/cw67Yj4FBhAr1W/A8/vx4l56PAItFyiS8tMjo2RXFj2gc6TGG
         4rO6x4GbAZlGDUu+1gM5DmE8UspZZYY5dzC55O7Mlm6Elky50lZDOuTfQAHsReZ1svos
         E1eQKQx9dsMBeAB5mA1lfVcPEBEJWPpsAOR1a0b9113xzJ2frbIHG9qwSCba9EChaGTA
         UGyA==
X-Gm-Message-State: AOJu0Yxvvbyis5FHDPwZcL+XNpGY60pv1Zas5Lujphe2DlEldjPvWDIo
	CzkplGee8Ht65Qs+dmZb/nhdcOkzVU77I1Wl0c6TAapyFWVdgDA27ZfuoU/7/YqCKzMmuzf7z7J
	t
X-Google-Smtp-Source: AGHT+IHTCf6ZJQX++QLf10O2tL6Cn7s9y8sERr+xKKzk+gTuFjlCqijQcrcnwHgB0hYuPj/Ra8bJzw==
X-Received: by 2002:a05:6402:1d56:b0:5ce:e067:27aa with SMTP id 4fb4d7f45d1cf-5cee0672877mr3491397a12.32.1730817234883;
        Tue, 05 Nov 2024 06:33:54 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 06/13] x86/hvm: Map/unmap xsave area in hvmemul_{get,put}_fpu()
Date: Tue,  5 Nov 2024 14:33:03 +0000
Message-ID: <20241105143310.28301-7-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * Added comments highlighting fastpath for current
---
 xen/arch/x86/hvm/emulate.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index f2bc6967dfcb..04a3df420a59 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2371,7 +2371,9 @@ static int cf_check hvmemul_get_fpu(
         alternative_vcall(hvm_funcs.fpu_dirty_intercept);
     else if ( type == X86EMUL_FPU_fpu )
     {
-        const fpusse_t *fpu_ctxt = &curr->arch.xsave_area->fpu_sse;
+        /* has a fastpath for `current`, so there's no actual map */
+        const struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
+        const fpusse_t *fpu_ctxt = &xsave_area->fpu_sse;
 
         /*
          * Latch current register state so that we can back out changes
@@ -2397,6 +2399,8 @@ static int cf_check hvmemul_get_fpu(
             else
                 ASSERT(fcw == fpu_ctxt->fcw);
         }
+
+        VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
     }
 
     return X86EMUL_OKAY;
@@ -2411,7 +2415,9 @@ static void cf_check hvmemul_put_fpu(
 
     if ( aux )
     {
-        fpusse_t *fpu_ctxt = &curr->arch.xsave_area->fpu_sse;
+        /* has a fastpath for `current`, so there's no actual map */
+        struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
+        fpusse_t *fpu_ctxt = &xsave_area->fpu_sse;
         bool dval = aux->dval;
         int mode = hvm_guest_x86_mode(curr);
 
@@ -2465,6 +2471,8 @@ static void cf_check hvmemul_put_fpu(
 
         fpu_ctxt->fop = aux->op;
 
+        VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
+
         /* Re-use backout code below. */
         backout = X86EMUL_FPU_fpu;
     }
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830263.1245264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd7-000450-Ah; Tue, 05 Nov 2024 14:34:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830263.1245264; Tue, 05 Nov 2024 14:34: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 1t8Kd7-000445-3z; Tue, 05 Nov 2024 14:34:01 +0000
Received: by outflank-mailman (input) for mailman id 830263;
 Tue, 05 Nov 2024 14:33: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd5-0002Lm-Na
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:33:59 +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 fd27942f-9b82-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:33:56 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5c903f5bd0eso10245858a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:56 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: fd27942f-9b82-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZkMjc5NDJmLTliODItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE3MjM2Ljg2NzczNywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817236; x=1731422036; 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=N6lX8wC6vemlWKb1ztmufWqxP8TDVhHXoJf9VFLSRv4=;
        b=kXktaJXveODNv06MYvImBltVodEW/gpD4YHFSbWOIr5/FQ0ZL1wY17TTvLyFLFt2kj
         7K1L7HUuzCY2akbGZAVx/hYV/Wl6lJ2TKKjTrw0YCf/Ih1xU1VPkSZhMXjqZw9orJjwH
         zeuGXsJU7IoqctZJhgUfzfouoi70kpNHEdGiE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817236; x=1731422036;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=N6lX8wC6vemlWKb1ztmufWqxP8TDVhHXoJf9VFLSRv4=;
        b=hxQmIs6iMOI7mT1GTmKe3MmY08Olxm58Yio+WBaSXYjHATMRVAqjlP+EyrL6KY+RyK
         cgp+BSBXvgnLSVDVwQuHfN9rVpTYGklNJbXjLBwKTMgt9w0Exqcmzqtw2hcnxHeEdNZx
         1iErhN3BPCOCvJ8wAW2l2VeMtQs6/+SeVqKmMLpTcuta/0dFDKYUWTXYor+l6N9ddr4J
         senpPPC4+NXe3rFk/rEwTBKQ7HRAJQk+/v27bX/ydrEjeLCUF9JRGzUfqB6rsSZMJB/w
         uw9pUIZ606jvg1aFWt5hNHf9CCBZcstiX0btKKaZ8FjyswtvuDlXLY3IqW/m5FMcfnMM
         RA3A==
X-Gm-Message-State: AOJu0YwyyhE8qfSKi8WT3weYnsqsHaEtGBYTBfJcfF1KcOa3MIRzaFX4
	j9IOBm5EfLVvA25wk2BI5vpebLVY35krSaK/WJRM7zbrRpTgiOa3IqZQeViddjOb/JW2XezJrPM
	v
X-Google-Smtp-Source: AGHT+IGVWmLvCB54DEgDhUuVvwOh11g5k5GHHLDORNT+WxCKbjVQgDKv6HikkcI8I3dUFbb80yEbnw==
X-Received: by 2002:a05:6402:520b:b0:5c9:6f20:4cf1 with SMTP id 4fb4d7f45d1cf-5cea971b4b5mr17021317a12.27.1730817235911;
        Tue, 05 Nov 2024 06:33:55 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 07/13] x86/domctl: Map/unmap xsave area in arch_get_info_guest()
Date: Tue,  5 Nov 2024 14:33:04 +0000
Message-ID: <20241105143310.28301-8-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * No change
---
 xen/arch/x86/domctl.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 5f01111619da..3044f706de1c 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1377,16 +1377,17 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
     unsigned int i;
     const struct domain *d = v->domain;
     bool compat = is_pv_32bit_domain(d);
+    const struct xsave_struct *xsave_area;
 #ifdef CONFIG_COMPAT
 #define c(fld) (!compat ? (c.nat->fld) : (c.cmp->fld))
 #else
 #define c(fld) (c.nat->fld)
 #endif
 
-    BUILD_BUG_ON(sizeof(c.nat->fpu_ctxt) !=
-                 sizeof(v->arch.xsave_area->fpu_sse));
-    memcpy(&c.nat->fpu_ctxt, &v->arch.xsave_area->fpu_sse,
-           sizeof(c.nat->fpu_ctxt));
+    xsave_area = VCPU_MAP_XSAVE_AREA(v);
+    BUILD_BUG_ON(sizeof(c.nat->fpu_ctxt) != sizeof(xsave_area->fpu_sse));
+    memcpy(&c.nat->fpu_ctxt, &xsave_area->fpu_sse, sizeof(c.nat->fpu_ctxt));
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
 
     if ( is_pv_domain(d) )
         c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830264.1245275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kd9-0004SI-LY; Tue, 05 Nov 2024 14:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830264.1245275; Tue, 05 Nov 2024 14:34: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 1t8Kd9-0004S5-GH; Tue, 05 Nov 2024 14:34:03 +0000
Received: by outflank-mailman (input) for mailman id 830264;
 Tue, 05 Nov 2024 14:34: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd7-0002Lm-IY
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:34: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 fe1b1500-9b82-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:33:58 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aadb1so5994427a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:58 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06: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: fe1b1500-9b82-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZlMWIxNTAwLTliODItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE3MjM4LjQ4OTUwOSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817237; x=1731422037; 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=BUizmB3LOGfKPH6kG1rx3VM0wuv9I8IHhRkqZT/M2eQ=;
        b=cJ5Uk17YC/EeN0s7Q0qiduCn0XP1QI1BdjdN7S1G4LABL/8Brkd2cO+p6wpZeQ2nwI
         ICp+gJycQ+wjPaDWvxLpZzagDqoV03Xd+MrAFU+PVDFQmv/uzXAprdSUfYCXQpT0AjSB
         88BMFVCWaIzZ2Y0V/mtaO4qMn6SBD+b0IYiqI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817237; x=1731422037;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BUizmB3LOGfKPH6kG1rx3VM0wuv9I8IHhRkqZT/M2eQ=;
        b=lZ28g9O3392r5N1YZV6q81edJJGvurxPcci5cauHgERnD6u28Z+igdiSEdkgcbyMGh
         SW7NJhxamYC5UxjZV/5JJYBI7zLvzH4xXYP1yXrhN5PB/ukUwQHcm+6hT9Zg1Si+K5dz
         cUJn01Svh0zjOsTOUR5d+Xy30iOHzTWpgSsP8QiwqD6btMXjCl0AqllPv+iiTtHPfylo
         IDVqp2AAGM81/lL+RJ/Guq6NWjI+JGViHQGVtrVXiZEJCQIsfyxWc82p1Kkm0NpxF1dY
         z2FnwFo9Mi3yycxo1GMaFiCKuXJNpNSxNKSxui0eClVidhuDgsxYv1O+DHBBaC6IXDwh
         0Bhg==
X-Gm-Message-State: AOJu0YzSYsUAnTmb8caZrr4X+ezoBf/38zSHn2000n3cBAfR1o01DJSc
	eHUls62XsyntOJAGerI6l8UkduI15qVzmq1vRXalquNl7HoWVIjjRuW+NOxPmLfkjeeat/zjpN4
	Z
X-Google-Smtp-Source: AGHT+IEiUJOQD7yv0Jo69qAsBZhZGsSu6R1qeHwLDHYDgogg18wiMRIt9gk6zfpbL/A+gvmG/cfj6w==
X-Received: by 2002:a05:6402:42d6:b0:5ce:d01e:bf79 with SMTP id 4fb4d7f45d1cf-5ced01ebfccmr6412282a12.2.1730817237507;
        Tue, 05 Nov 2024 06:33:57 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 08/13] x86/xstate: Map/unmap xsave area in {compress,expand}_xsave_states()
Date: Tue,  5 Nov 2024 14:33:05 +0000
Message-ID: <20241105143310.28301-9-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * No change
---
 xen/arch/x86/xstate.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 401bdad2eb0d..6db7ec2ea6a9 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -177,7 +177,7 @@ static void setup_xstate_comp(uint16_t *comp_offsets,
  */
 void expand_xsave_states(const struct vcpu *v, void *dest, unsigned int size)
 {
-    const struct xsave_struct *xstate = v->arch.xsave_area;
+    const struct xsave_struct *xstate = VCPU_MAP_XSAVE_AREA(v);
     const void *src;
     uint16_t comp_offsets[sizeof(xfeature_mask)*8];
     u64 xstate_bv = xstate->xsave_hdr.xstate_bv;
@@ -228,6 +228,8 @@ void expand_xsave_states(const struct vcpu *v, void *dest, unsigned int size)
 
         valid &= ~feature;
     }
+
+    VCPU_UNMAP_XSAVE_AREA(v, xstate);
 }
 
 /*
@@ -242,7 +244,7 @@ void expand_xsave_states(const struct vcpu *v, void *dest, unsigned int size)
  */
 void compress_xsave_states(struct vcpu *v, const void *src, unsigned int size)
 {
-    struct xsave_struct *xstate = v->arch.xsave_area;
+    struct xsave_struct *xstate = VCPU_MAP_XSAVE_AREA(v);
     void *dest;
     uint16_t comp_offsets[sizeof(xfeature_mask)*8];
     u64 xstate_bv, valid;
@@ -294,6 +296,8 @@ void compress_xsave_states(struct vcpu *v, const void *src, unsigned int size)
 
         valid &= ~feature;
     }
+
+    VCPU_UNMAP_XSAVE_AREA(v, xstate);
 }
 
 void xsave(struct vcpu *v, uint64_t mask)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830265.1245284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8KdB-0004jK-2b; Tue, 05 Nov 2024 14:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830265.1245284; Tue, 05 Nov 2024 14:34: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 1t8KdA-0004i0-RX; Tue, 05 Nov 2024 14:34:04 +0000
Received: by outflank-mailman (input) for mailman id 830265;
 Tue, 05 Nov 2024 14: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd8-0002Lm-LH
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:34:02 +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 fef368e9-9b82-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:33:59 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so3883220a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:33:59 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: fef368e9-9b82-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZlZjM2OGU5LTliODItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE3MjM5Ljg4MzA0OCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817239; x=1731422039; 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=UKD1CllUUFP/95/tHyduaxD4gLazG9r0IgfoStz+dic=;
        b=S+bstDkbGu3y+qM0RnCgWta6KZk/dW2D3rVgqHa0p/+XwT4SiKSxVRn4Qp04kd4KEW
         NVO6Nh6L7QjaxnrjB9JCwelirpeabrUqEYYcYAElCKWLpuQnNIda1jij/orbnPLiiIXd
         mARJVeD8vbkB/fSmK1/gfk0hNzKLfOM4Etyfk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817239; x=1731422039;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=UKD1CllUUFP/95/tHyduaxD4gLazG9r0IgfoStz+dic=;
        b=t+NEiCXvQLI6ZBRo+PaDoa2ekiRxeESia/SQL1jsgS4Z73MIeY7vmQz+upf6VDmy/3
         6PwZt2eXhdWn/FSI34YpQUBCZxOEPndMy3TDnIpc7KvQnXkqNVsollbTxFQOJqAHcTVZ
         NB2I5bEC2FAFPxd07vmb7jj4n6LLBYpqNCiAxJI+dtIpHuxj9knGmAwtLlD9vbkkm5KB
         Bz5YRct30yuoVQOBKNc0cj5AmsDuCcJgi7kowHFwQpS6HBJrBF5MFWafk48gXCsXCiaP
         +mPf5ZVxlZwFM57e+0j5d9bVmH3vUXwx9AkMFeF2gzXX9OC9QAQmF1dM/yZ+orifw5bD
         tblg==
X-Gm-Message-State: AOJu0Yx/eGEo1c1szvU1bcL8CPTrPyisiNs0EfU5G5cSLIyUL9cLTGT2
	J0+KSQg8sBH+HLqpjz7SpsfDisZrdnQKA+GiNhDch4NM+G8oi6KUUFLVqcDeztmWlowjRLs1cNi
	m
X-Google-Smtp-Source: AGHT+IHRZFhPefPtV7nx6c0cnFCSuUCW8livz50ATFuMJWDV1OhNGuvheVnLhO3/SW011uPiQ9tJRw==
X-Received: by 2002:a05:6402:845:b0:5cb:6675:bb3b with SMTP id 4fb4d7f45d1cf-5cbbf8b23eemr24693657a12.13.1730817239003;
        Tue, 05 Nov 2024 06:33:59 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 09/13] x86/emulator: Refactor FXSAVE_AREA to use wrappers
Date: Tue,  5 Nov 2024 14:33:06 +0000
Message-ID: <20241105143310.28301-10-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Adds an UNMAP primitive to make use of vcpu_unmap_xsave_area() when
linked into xen. unmap is a no-op during tests.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * Added comments highlighting fastpath on `current`
---
 xen/arch/x86/x86_emulate/blk.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/x86_emulate/blk.c b/xen/arch/x86/x86_emulate/blk.c
index 08a05f8453f7..76fd497ed8a3 100644
--- a/xen/arch/x86/x86_emulate/blk.c
+++ b/xen/arch/x86/x86_emulate/blk.c
@@ -11,9 +11,12 @@
     !defined(X86EMUL_NO_SIMD)
 # ifdef __XEN__
 #  include <asm/xstate.h>
-#  define FXSAVE_AREA ((void *)&current->arch.xsave_area->fpu_sse)
+/* has a fastpath for `current`, so there's no actual map */
+#  define FXSAVE_AREA ((void *)VCPU_MAP_XSAVE_AREA(current))
+#  define UNMAP_FXSAVE_AREA(x) VCPU_UNMAP_XSAVE_AREA(currt ent, x)
 # else
 #  define FXSAVE_AREA get_fpu_save_area()
+#  define UNMAP_FXSAVE_AREA(x) ((void)x)
 # endif
 #endif
 
@@ -292,6 +295,9 @@ int x86_emul_blk(
         }
         else
             asm volatile ( "fxrstor %0" :: "m" (*fxsr) );
+
+        UNMAP_FXSAVE_AREA(fxsr);
+
         break;
     }
 
@@ -320,6 +326,9 @@ int x86_emul_blk(
 
         if ( fxsr != ptr ) /* i.e. s->op_bytes < sizeof(*fxsr) */
             memcpy(ptr, fxsr, s->op_bytes);
+
+        UNMAP_FXSAVE_AREA(fxsr);
+
         break;
     }
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830266.1245291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8KdB-0004oi-OO; Tue, 05 Nov 2024 14:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830266.1245291; Tue, 05 Nov 2024 14:34: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 1t8KdB-0004mD-8q; Tue, 05 Nov 2024 14:34:05 +0000
Received: by outflank-mailman (input) for mailman id 830266;
 Tue, 05 Nov 2024 14:34: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8Kd9-0002K5-HU
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:34:03 +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 ffcd476c-9b82-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:34:01 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5ceb75f9631so5709387a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:34:01 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.33.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:33: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: ffcd476c-9b82-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZmY2Q0NzZjLTliODItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjQxLjMwOTk5MSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817240; x=1731422040; 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=AHukccBbBpbC+k7kZ0/gZzzWfRKQINdoK6h9gGQzyg4=;
        b=fT8CMbkKkoEionf+10rr2ldMJYNDhX+QDFRZilivZDvqtnn8htUu1tNxDov0z0ulV0
         kY1kqbe7x8SGosEnflPyAUsyB9diZAQBFvnXAgVYSWMUf9+xVqBw7/JiApz3jTlnRpmh
         fDS0bAvmBmRS/euKUR3Y6D4F45d5GiMAO6K5E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817240; x=1731422040;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AHukccBbBpbC+k7kZ0/gZzzWfRKQINdoK6h9gGQzyg4=;
        b=bNmiJftDzQrFvhFURlcL+gnu00nCOTGvhZWnCgYWE7eon4OEvg8EWnEUVSdDCYN5xQ
         zYS2+qnXLcbXVdV53+cMbBAdo0LSROdeFk23sQlgTnIBct9nFxJlKSjPlJWsy0p5JSiq
         Z0+wtQYBcdzOX1w0C2cB9+5P1TzHepXDntxuENLXUOirtuIPgvUfpCn2gRdH1t5ecPXR
         q3us5FEMYkjuTEDC1mKvkDeItqP7GXem6h49/2g3jrO6X9U7M6SC+DI8+UU9/aOKw+pm
         ASs8cfHD8M5xDsMjgqTTaCsw92odujX3c6jZxwzHUaC3xeqSJ8c4me/mhsmHN2kE6hZK
         Xsww==
X-Gm-Message-State: AOJu0Yw8zLd18fdX1+TbFG9+geylQgYbz2tQrSw47YNIcvJJHwIAVZjy
	kVKobDZn5G/R73xHxHIkXgx/MDLdc/D/PUmEHo6+agSriiTg9wnxYz00VDHZPR95ppzNdpdyRrk
	Q
X-Google-Smtp-Source: AGHT+IHa/ojeelBSzZGbiAyj+Hr1UbyyUgXITX9+Pi112rloiy17KwqQt0YRmn5B4ntqXT9Ez72fbg==
X-Received: by 2002:a05:6402:278e:b0:5ce:de14:63ed with SMTP id 4fb4d7f45d1cf-5cede146458mr4200250a12.36.1730817240423;
        Tue, 05 Nov 2024 06:34:00 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 10/13] x86/mpx: Map/unmap xsave area in in read_bndcfgu()
Date: Tue,  5 Nov 2024 14:33:07 +0000
Message-ID: <20241105143310.28301-11-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * s/ret/bndcfgu
---
 xen/arch/x86/xstate.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 6db7ec2ea6a9..9ecbef760277 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -1022,9 +1022,10 @@ int handle_xsetbv(u32 index, u64 new_bv)
 
 uint64_t read_bndcfgu(void)
 {
+    uint64_t bndcfgu = 0;
     unsigned long cr0 = read_cr0();
-    struct xsave_struct *xstate
-        = idle_vcpu[smp_processor_id()]->arch.xsave_area;
+    struct vcpu *v = idle_vcpu[smp_processor_id()];
+    struct xsave_struct *xstate = VCPU_MAP_XSAVE_AREA(v);
     const struct xstate_bndcsr *bndcsr;
 
     ASSERT(cpu_has_mpx);
@@ -1050,7 +1051,12 @@ uint64_t read_bndcfgu(void)
     if ( cr0 & X86_CR0_TS )
         write_cr0(cr0);
 
-    return xstate->xsave_hdr.xstate_bv & X86_XCR0_BNDCSR ? bndcsr->bndcfgu : 0;
+    if ( xstate->xsave_hdr.xstate_bv & X86_XCR0_BNDCSR )
+        bndcfgu = bndcsr->bndcfgu;
+
+    VCPU_UNMAP_XSAVE_AREA(v, xstate);
+
+    return bndcfgu;
 }
 
 void xstate_set_init(uint64_t mask)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830267.1245304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8KdD-0005Qe-Vh; Tue, 05 Nov 2024 14:34:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830267.1245304; Tue, 05 Nov 2024 14:34: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 1t8KdD-0005PX-OF; Tue, 05 Nov 2024 14:34:07 +0000
Received: by outflank-mailman (input) for mailman id 830267;
 Tue, 05 Nov 2024 14:34: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8KdB-0002K5-OQ
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:34:05 +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 00d4b073-9b83-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:34:03 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aaddeso5938205a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:34:03 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.34.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:34: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: 00d4b073-9b83-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAwZDRiMDczLTliODMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjQzLjEzMzc5NCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817242; x=1731422042; 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=Jc35G27Gr3VkDuTcKUwBetak3Ic6rCOhMXfwTHHpMdE=;
        b=dru1R5uas4DaJ2XypHDq0s6GgXyJkFEeLn5R0TDByDrodiM39u/T1ymHXQChZ9sVlU
         rSNY1bLvorCJZqrRFVCP7mSCyIA8Lqvhu205uvSSphmrZ6HUuyG3WMTndWTfQwmZ9XkO
         7y2v+jGG+Vvp0yAxt5a7WpwnrN382rSC/ka/Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817242; x=1731422042;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Jc35G27Gr3VkDuTcKUwBetak3Ic6rCOhMXfwTHHpMdE=;
        b=uryXotXrtvYfvCWbJYJOykz/E1Ou5YM0yWQhZ+zF6jr9wK6du3fK5F3S9/EAeYJtLA
         y5JJuBgyfZggoKXJupSkt+/07GYl96668WJkz0z267L2DgLpw/cuzUfprlZrwv0hCFNR
         r0mFXXS17Bwh7ntwT8yQXOpC3xmfy5fTARmmW9+nm6Ll3keNFFnEFQpWR+pENveLwoKf
         G1Ejncr6erofnRfp9jmKof3R7iW6/Udo+i+bnkIMB1brQ8BZ6AJvNn8/4iQmVwgPn5Jq
         euZUz6IJx2Tu4Q/oV3Epuy/EVnpGphEL7uKCg4/yVAkqg8rbzhbiMlWvXGqMI8hqauyT
         P1tA==
X-Gm-Message-State: AOJu0Yw3JsBUU6HlR+Mau4ddThXpf9UYKgxE38jQu+xoSAO46gyiMqMv
	2c29BQQzOfJFkOBWqawRm4Pp0SEV35NyLjMP5HCichIJ5/GH0tYJs7hhw6zj6RxueHDGhnhq8MX
	2
X-Google-Smtp-Source: AGHT+IH7kiUbK3mBgFNVwAoXuK6Xah394QabsKMkZvp2o5saOpNY3n0VT2XUZP6qGa/L1Iq16mEZgQ==
X-Received: by 2002:a05:6402:2751:b0:5ce:cfed:6c4f with SMTP id 4fb4d7f45d1cf-5cecfed6cdbmr8807224a12.23.1730817242071;
        Tue, 05 Nov 2024 06:34:02 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 11/13] x86/fpu: Pass explicit xsave areas to fpu_(f)xsave()
Date: Tue,  5 Nov 2024 14:33:08 +0000
Message-ID: <20241105143310.28301-12-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * const-ified v
---
 xen/arch/x86/i387.c               | 16 ++++++++++------
 xen/arch/x86/include/asm/xstate.h |  2 +-
 xen/arch/x86/xstate.c             |  3 +--
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index a6ae323fa95f..73c52ce2f577 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -129,7 +129,7 @@ static inline uint64_t vcpu_xsave_mask(const struct vcpu *v)
 }
 
 /* Save x87 extended state */
-static inline void fpu_xsave(struct vcpu *v)
+static inline void fpu_xsave(const struct vcpu *v, struct xsave_struct *xsave_area)
 {
     bool ok;
     uint64_t mask = vcpu_xsave_mask(v);
@@ -141,15 +141,14 @@ static inline void fpu_xsave(struct vcpu *v)
      */
     ok = set_xcr0(v->arch.xcr0_accum | XSTATE_FP_SSE);
     ASSERT(ok);
-    xsave(v, mask);
+    xsave(v, xsave_area, mask);
     ok = set_xcr0(v->arch.xcr0 ?: XSTATE_FP_SSE);
     ASSERT(ok);
 }
 
 /* Save x87 FPU, MMX, SSE and SSE2 state */
-static inline void fpu_fxsave(struct vcpu *v)
+static inline void fpu_fxsave(struct vcpu *v, fpusse_t *fpu_ctxt)
 {
-    fpusse_t *fpu_ctxt = &v->arch.xsave_area->fpu_sse;
     unsigned int fip_width = v->domain->arch.x87_fip_width;
 
     if ( fip_width != 4 )
@@ -264,6 +263,8 @@ void vcpu_restore_fpu_lazy(struct vcpu *v)
  */
 static bool _vcpu_save_fpu(struct vcpu *v)
 {
+    struct xsave_struct *xsave_area;
+
     if ( !v->fpu_dirtied && !v->arch.nonlazy_xstate_used )
         return false;
 
@@ -272,11 +273,14 @@ static bool _vcpu_save_fpu(struct vcpu *v)
     /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
     clts();
 
+    xsave_area = VCPU_MAP_XSAVE_AREA(v);
+
     if ( cpu_has_xsave )
-        fpu_xsave(v);
+        fpu_xsave(v, xsave_area);
     else
-        fpu_fxsave(v);
+        fpu_fxsave(v, &xsave_area->fpu_sse);
 
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
     v->fpu_dirtied = 0;
 
     return true;
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index 6b0daff0aeec..bd286123c735 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -97,7 +97,7 @@ uint64_t get_xcr0(void);
 void set_msr_xss(u64 xss);
 uint64_t get_msr_xss(void);
 uint64_t read_bndcfgu(void);
-void xsave(struct vcpu *v, uint64_t mask);
+void xsave(const struct vcpu *v, struct xsave_struct *ptr, uint64_t mask);
 void xrstor(struct vcpu *v, uint64_t mask);
 void xstate_set_init(uint64_t mask);
 bool xsave_enabled(const struct vcpu *v);
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 9ecbef760277..f3e41f742c3c 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -300,9 +300,8 @@ void compress_xsave_states(struct vcpu *v, const void *src, unsigned int size)
     VCPU_UNMAP_XSAVE_AREA(v, xstate);
 }
 
-void xsave(struct vcpu *v, uint64_t mask)
+void xsave(const struct vcpu *v, struct xsave_struct *ptr, uint64_t mask)
 {
-    struct xsave_struct *ptr = v->arch.xsave_area;
     uint32_t hmask = mask >> 32;
     uint32_t lmask = mask;
     unsigned int fip_width = v->domain->arch.x87_fip_width;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830268.1245313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8KdF-0005lT-LA; Tue, 05 Nov 2024 14:34:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830268.1245313; Tue, 05 Nov 2024 14: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 1t8KdF-0005kb-Bk; Tue, 05 Nov 2024 14:34:09 +0000
Received: by outflank-mailman (input) for mailman id 830268;
 Tue, 05 Nov 2024 14:34: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8KdD-0002K5-OX
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:34:07 +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 0275fcd4-9b83-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:34:05 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5ceccffadfdso3553120a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:34:05 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.34.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:34: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: 0275fcd4-9b83-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAyNzVmY2Q0LTliODMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE3MjQ1Ljc1ODA5NCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817245; x=1731422045; 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=6B5omt1SedDQO6IJZRH4ErAkBbwq92KD+awlMKQ0bxI=;
        b=i4FMGxGpZc1jBhlMRVOTT5mcac4CED05EJi3mHEGYHY1m3+b+bfXSYHRBR6rMxlNgr
         5ePLpd9NCU9CjN8mweZjiTfx3y2/FGXbO2F7pjp7fTlOuL9d8hBCpsWd7bff1rlHVp1p
         GfSJHcX4eV9iX3ou/oo6fZLCkVJxVcKu/c0zU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817245; x=1731422045;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6B5omt1SedDQO6IJZRH4ErAkBbwq92KD+awlMKQ0bxI=;
        b=CYr+D4hHVMLbp61AJXknGHtfqWLPkKEtesLpHxC6PNyzYVTpNayGFQJGFyISHfyHga
         6NJUUem+b/XqX55tOK9XoPWrVSB4FmLbqOi/tnyZG1Edgnns4eIclcxFCgXTQ6LWRFaO
         0sOCFGl9qvrfDdnhiqSNX6KPQ9Lyg+ml4vL9vaT+TDlE8EcskjV7QVd1dKMRF7gEgs5B
         Kq2mkOBhNUViqEi/p/3tOHlusJKpw9B0Q7DWB8/4zNhXUeIVDtDT+DdU+E1keb+wiSZn
         8zQa0X0T49Nxkq+4sM1G3zO30smcz9CFwC1O9+bjxEPdgzwZUt5MsqbT2cFH8hWIhycD
         QoCw==
X-Gm-Message-State: AOJu0Yxo9ZMybraO0V0ti8z+nurZp3HKm3+2BangoeLXUwyUQM03XH85
	3lHViGmRASmIp78iMeQ4VwQWMm7GqmCXV2ee/Wh7RXUa1Zbq2p2x61KTr/nLcmppVOB97Rxh/mp
	D
X-Google-Smtp-Source: AGHT+IFJA6M0XBv7FRFRoMs3JuKuoqXi/nf+aCqDEMKXEkJJ1sPRGW37quCEyuWC30mb250kMwCXmw==
X-Received: by 2002:a05:6402:210d:b0:5c9:74e3:acbb with SMTP id 4fb4d7f45d1cf-5cea9678020mr15569290a12.10.1730817244742;
        Tue, 05 Nov 2024 06:34:04 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 13/13] x86/xstate: Make xstate_all() and vcpu_xsave_mask() take explicit xstate
Date: Tue,  5 Nov 2024 14:33:10 +0000
Message-ID: <20241105143310.28301-14-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/arch/x86/i387.c               | 9 +++++----
 xen/arch/x86/include/asm/xstate.h | 5 +++--
 xen/arch/x86/xstate.c             | 2 +-
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index c794367a3cc7..36a6c8918162 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -107,7 +107,8 @@ static inline void fpu_fxrstor(struct vcpu *v, const fpusse_t *fpu_ctxt)
 /*      FPU Save Functions     */
 /*******************************/
 
-static inline uint64_t vcpu_xsave_mask(const struct vcpu *v)
+static inline uint64_t vcpu_xsave_mask(const struct vcpu *v,
+                                       const struct xsave_struct *xsave_area)
 {
     if ( v->fpu_dirtied )
         return v->arch.nonlazy_xstate_used ? XSTATE_ALL : XSTATE_LAZY;
@@ -124,14 +125,14 @@ static inline uint64_t vcpu_xsave_mask(const struct vcpu *v)
      * XSTATE_FP_SSE), vcpu_xsave_mask will return XSTATE_ALL. Otherwise
      * return XSTATE_NONLAZY.
      */
-    return xstate_all(v) ? XSTATE_ALL : XSTATE_NONLAZY;
+    return xstate_all(v, xsave_area) ? XSTATE_ALL : XSTATE_NONLAZY;
 }
 
 /* Save x87 extended state */
 static inline void fpu_xsave(const struct vcpu *v, struct xsave_struct *xsave_area)
 {
     bool ok;
-    uint64_t mask = vcpu_xsave_mask(v);
+    uint64_t mask = vcpu_xsave_mask(v, xsave_area);
 
     ASSERT(mask);
     /*
@@ -211,7 +212,7 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
      * saving state belonging to another vCPU.
      */
     xsave_area = VCPU_MAP_XSAVE_AREA(v);
-    if ( v->arch.fully_eager_fpu || xstate_all(v) )
+    if ( v->arch.fully_eager_fpu || xstate_all(v, xsave_area) )
     {
         if ( cpu_has_xsave )
             fpu_xrstor(v, xsave_area, XSTATE_ALL);
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index d2ef4c0b25f0..e3e9c18239ed 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -132,14 +132,15 @@ xsave_area_compressed(const struct xsave_struct *xsave_area)
     return xsave_area->xsave_hdr.xcomp_bv & XSTATE_COMPACTION_ENABLED;
 }
 
-static inline bool xstate_all(const struct vcpu *v)
+static inline bool xstate_all(const struct vcpu *v,
+                              const struct xsave_struct *xsave_area)
 {
     /*
      * XSTATE_FP_SSE may be excluded, because the offsets of XSTATE_FP_SSE
      * (in the legacy region of xsave area) are fixed, so saving
      * XSTATE_FP_SSE will not cause overwriting problem with XSAVES/XSAVEC.
      */
-    return xsave_area_compressed(v->arch.xsave_area) &&
+    return xsave_area_compressed(xsave_area) &&
            (v->arch.xcr0_accum & XSTATE_LAZY & ~XSTATE_FP_SSE);
 }
 
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index b5e8d90ef600..26e460adfd79 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -1003,7 +1003,7 @@ int handle_xsetbv(u32 index, u64 new_bv)
             asm ( "stmxcsr %0" : "=m" (xsave_area->fpu_sse.mxcsr) );
             VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
         }
-        else if ( xstate_all(curr) )
+        else if ( xstate_all(curr, xsave_area) )
         {
             /* See the comment in i387.c:vcpu_restore_fpu_eager(). */
             mask |= XSTATE_LAZY;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:34:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:34:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830272.1245321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8KdH-0006DB-FK; Tue, 05 Nov 2024 14:34:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830272.1245321; Tue, 05 Nov 2024 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 1t8KdH-0006Ac-6y; Tue, 05 Nov 2024 14:34:11 +0000
Received: by outflank-mailman (input) for mailman id 830272;
 Tue, 05 Nov 2024 14:34: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=SSsw=SA=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8KdF-0002Lm-CA
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:34:09 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01cf7f9e-9b83-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:34:04 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-539e690479cso5792053e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:34:04 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm1395047a12.4.2024.11.05.06.34.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:34: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: 01cf7f9e-9b83-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmYiLCJoZWxvIjoibWFpbC1sZjEteDEyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAxY2Y3ZjllLTliODMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE3MjQ0LjYzMjIwNywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817244; x=1731422044; 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=lvXFoZIT084RN37AsraaKxNusw6LAdGsn4eMeymG1tw=;
        b=SqgSx6G48UPW3y6LyOs90IXEpVz6faYIRLyYPtqK2OamyFDF1Ib8EfXnvF/xHEciOG
         R78qMLc4/i48a0QEKOJGnQg81xVJXlGhmJuxHPADL6PlllBLu46/+0kHk8nMfzPzROaH
         Je9JuoravDhkmjWaECdv8YXTUGGl6Sugf+Gfc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817244; x=1731422044;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lvXFoZIT084RN37AsraaKxNusw6LAdGsn4eMeymG1tw=;
        b=uZUDj4TU2vIYX0g+Egcxjnot2qx45MMI05pUkScgE3ATtv85J6hkDCakxXOcqG5jYz
         vvjFGBTcUYRjY2BT4bOSw9zTr9WOO0TXSI2Z3AWu4D6Jajptf+B6kmy2KhObvN/ZolCj
         8tnDLfhe29tU+TGvEndv/vKxBfQw4qALUu5QMSukunOIMANB2BkpmLLkYJyby0P8FN37
         EQxTBdFGKk6jLSRBqlZObmBJiPYk/O0HH0lLJrcoIwUkVT+/tBOOGAWcOH0Y46RHMouP
         sgYzydSTagAki0XGxM+5d+GofrhZDbDznAVloFQ2q4AUSykN0PEHKlHSEaA5HryZw1XM
         GinA==
X-Gm-Message-State: AOJu0YzzEb89n9yBiQV7KtMH/nJR0voWGNx606hf8T8xo1EitDfVe+HP
	TO286p5kW+DF55j5eARdL6pA6xpIM9tjCToxhZU+i7TXmpml0TN+Zhw+k1h6xGm5Dzz/k+JSUlC
	7
X-Google-Smtp-Source: AGHT+IEi8f1ooBIDDsZtziWzMdi1NElpo5P7/OCx24gHU/0VHdpp3Z4HwqasLJdsE3mVz4AD+p21gA==
X-Received: by 2002:a05:651c:98d:b0:2f7:53b8:ca57 with SMTP id 38308e7fff4ca-2fedb790772mr81567381fa.19.1730817243635;
        Tue, 05 Nov 2024 06:34:03 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.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 v2 12/13] x86/fpu: Pass explicit xsave areas to fpu_(f)xrstor()
Date: Tue,  5 Nov 2024 14:33:09 +0000
Message-ID: <20241105143310.28301-13-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
References: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
  * const-ified v in fpu_xrstor()
---
 xen/arch/x86/i387.c               | 26 ++++++++++++++++----------
 xen/arch/x86/include/asm/xstate.h |  2 +-
 xen/arch/x86/xstate.c             | 10 ++++++----
 3 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 73c52ce2f577..c794367a3cc7 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -20,7 +20,8 @@
 /*     FPU Restore Functions   */
 /*******************************/
 /* Restore x87 extended state */
-static inline void fpu_xrstor(struct vcpu *v, uint64_t mask)
+static inline void fpu_xrstor(struct vcpu *v, struct xsave_struct *xsave_area,
+                              uint64_t mask)
 {
     bool ok;
 
@@ -30,16 +31,14 @@ static inline void fpu_xrstor(struct vcpu *v, uint64_t mask)
      */
     ok = set_xcr0(v->arch.xcr0_accum | XSTATE_FP_SSE);
     ASSERT(ok);
-    xrstor(v, mask);
+    xrstor(v, xsave_area, mask);
     ok = set_xcr0(v->arch.xcr0 ?: XSTATE_FP_SSE);
     ASSERT(ok);
 }
 
 /* Restore x87 FPU, MMX, SSE and SSE2 state */
-static inline void fpu_fxrstor(struct vcpu *v)
+static inline void fpu_fxrstor(struct vcpu *v, const fpusse_t *fpu_ctxt)
 {
-    const fpusse_t *fpu_ctxt = &v->arch.xsave_area->fpu_sse;
-
     /*
      * Some CPUs don't save/restore FDP/FIP/FOP unless an exception
      * is pending. Clear the x87 state here by setting it to fixed
@@ -195,6 +194,8 @@ static inline void fpu_fxsave(struct vcpu *v, fpusse_t *fpu_ctxt)
 /* Restore FPU state whenever VCPU is schduled in. */
 void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
 {
+    struct xsave_struct *xsave_area;
+
     /* Restore nonlazy extended state (i.e. parts not tracked by CR0.TS). */
     if ( !v->arch.fully_eager_fpu && !v->arch.nonlazy_xstate_used )
         goto maybe_stts;
@@ -209,12 +210,13 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
      * above) we also need to restore full state, to prevent subsequently
      * saving state belonging to another vCPU.
      */
+    xsave_area = VCPU_MAP_XSAVE_AREA(v);
     if ( v->arch.fully_eager_fpu || xstate_all(v) )
     {
         if ( cpu_has_xsave )
-            fpu_xrstor(v, XSTATE_ALL);
+            fpu_xrstor(v, xsave_area, XSTATE_ALL);
         else
-            fpu_fxrstor(v);
+            fpu_fxrstor(v, &xsave_area->fpu_sse);
 
         v->fpu_initialised = 1;
         v->fpu_dirtied = 1;
@@ -224,9 +226,10 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
     }
     else
     {
-        fpu_xrstor(v, XSTATE_NONLAZY);
+        fpu_xrstor(v, xsave_area, XSTATE_NONLAZY);
         need_stts = true;
     }
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
 
  maybe_stts:
     if ( need_stts )
@@ -238,6 +241,7 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
  */
 void vcpu_restore_fpu_lazy(struct vcpu *v)
 {
+    struct xsave_struct *xsave_area;
     ASSERT(!is_idle_vcpu(v));
 
     /* Avoid recursion. */
@@ -248,10 +252,12 @@ void vcpu_restore_fpu_lazy(struct vcpu *v)
 
     ASSERT(!v->arch.fully_eager_fpu);
 
+    xsave_area = VCPU_MAP_XSAVE_AREA(v);
     if ( cpu_has_xsave )
-        fpu_xrstor(v, XSTATE_LAZY);
+        fpu_xrstor(v, xsave_area, XSTATE_LAZY);
     else
-        fpu_fxrstor(v);
+        fpu_fxrstor(v, &xsave_area->fpu_sse);
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
 
     v->fpu_initialised = 1;
     v->fpu_dirtied = 1;
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index bd286123c735..d2ef4c0b25f0 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -98,7 +98,7 @@ void set_msr_xss(u64 xss);
 uint64_t get_msr_xss(void);
 uint64_t read_bndcfgu(void);
 void xsave(const struct vcpu *v, struct xsave_struct *ptr, uint64_t mask);
-void xrstor(struct vcpu *v, uint64_t mask);
+void xrstor(const struct vcpu *v, struct xsave_struct *ptr, uint64_t mask);
 void xstate_set_init(uint64_t mask);
 bool xsave_enabled(const struct vcpu *v);
 int __must_check validate_xstate(const struct domain *d,
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index f3e41f742c3c..b5e8d90ef600 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -374,11 +374,10 @@ void xsave(const struct vcpu *v, struct xsave_struct *ptr, uint64_t mask)
         ptr->fpu_sse.x[FPU_WORD_SIZE_OFFSET] = fip_width;
 }
 
-void xrstor(struct vcpu *v, uint64_t mask)
+void xrstor(const struct vcpu *v, struct xsave_struct *ptr, 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;
 
     /*
@@ -992,6 +991,7 @@ int handle_xsetbv(u32 index, u64 new_bv)
     mask &= curr->fpu_dirtied ? ~XSTATE_FP_SSE : XSTATE_NONLAZY;
     if ( mask )
     {
+        struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
         unsigned long cr0 = read_cr0();
 
         clts();
@@ -1011,7 +1011,9 @@ int handle_xsetbv(u32 index, u64 new_bv)
             curr->fpu_dirtied = 1;
             cr0 &= ~X86_CR0_TS;
         }
-        xrstor(curr, mask);
+        xrstor(curr, xsave_area, mask);
+        VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
+
         if ( cr0 & X86_CR0_TS )
             write_cr0(cr0);
     }
@@ -1078,7 +1080,7 @@ void xstate_set_init(uint64_t mask)
 
     xstate = VCPU_MAP_XSAVE_AREA(v);
     memset(&xstate->xsave_hdr, 0, sizeof(xstate->xsave_hdr));
-    xrstor(v, mask);
+    xrstor(v, xstate, mask);
     VCPU_UNMAP_XSAVE_AREA(v, xstate);
 
     if ( cr0 & X86_CR0_TS )
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:46:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:46:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830363.1245334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kp6-0003a6-U3; Tue, 05 Nov 2024 14:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830363.1245334; Tue, 05 Nov 2024 14:46: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 1t8Kp6-0003Zz-RN; Tue, 05 Nov 2024 14:46:24 +0000
Received: by outflank-mailman (input) for mailman id 830363;
 Tue, 05 Nov 2024 14:46: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=zNbL=SA=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1t8Kp5-0003Zt-2N
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:46:23 +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 b685c723-9b84-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:46:17 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9abe139088so820179466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:46:17 -0800 (PST)
Received: from mbarnes-x-u.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a30f3sm141969166b.15.2024.11.05.06.46.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:46: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: b685c723-9b84-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI2ODVjNzIzLTliODQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE3OTc3LjM3ODc2LCJzZW5kZXIiOiJtYXR0aGV3LmJhcm5lc0BjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730817976; x=1731422776; 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=kgLgSCDalEsScbvom6IK4y6C5e8B2Upn5vSaAtwdf4M=;
        b=dpqsE6t7lK6WRvPVWqU4AIv/bXdAUqw1r/g93Rn8M8JY5wv5kM8tdn0sM0jEBf0qDq
         5Dwf0xc56Glf+bBp2Pl5AGeG1VtvARnfmj3CRXWZnQOWALpBNvNszVTQdFXge29Wp+LG
         i475ZgKs+ssyzq9DQgcSjekm8xZ2QHXmCSL9Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730817976; x=1731422776;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kgLgSCDalEsScbvom6IK4y6C5e8B2Upn5vSaAtwdf4M=;
        b=YUQE8YU9BVf3fBPegsmaIRgZmKsdqoVUNeB9EuWvO1B5Nj7+lJ6bESdbEQKVPSiJfy
         WpcXdds6wsztcObU0WjJR92roJcuKeHgY055rg89QM63hl8WNjvGcS4uPCtuXXK6whg0
         4IPT15LPKokabeRv8Pf3yoQUkibJ0ksun5Ftam4OJcPYukOWg44nVnIqWAOgebrTkclS
         vtrMl9zhcZbgQoxWu3o1cYRkD0n6bSSrFVnYswMDCi5zItvd8815AlrbHNqlUmSCIoh2
         5aaxKGRQ0sz7KISzFdLp2xvagDpFlagq4AqiLOwOgFD1ZNV5MP8r2//DFZQoczjfA0T2
         HLrw==
X-Gm-Message-State: AOJu0Yy7efuSEz0uinj33bd/AYD53eoZMyjpONgd6NmrSDEU9Y3DHKq0
	FTYrkPnspWZ14UCTzLIUYNA8Op5xTl2cjUz61z0Ad5YZ5jrSdLoHwVjOXFwNLewbsQ+q+zxD5/5
	g
X-Google-Smtp-Source: AGHT+IHA0u+vgGzeNV7FMnUCpgHOLXz1O2eytiYSNNUujyLMHik6ZeAuS52ievpio1miqMB2TNlQdg==
X-Received: by 2002:a17:906:6a1d:b0:a9a:18ee:5106 with SMTP id a640c23a62f3a-a9de61e95a5mr3463014366b.65.1730817976541;
        Tue, 05 Nov 2024 06:46:16 -0800 (PST)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH] CHANGELOG: Add note about xAPIC destination mode change
Date: Tue,  5 Nov 2024 14:33:31 +0000
Message-Id: <aa0ea8c5cf8ebe74f2b28dc41cb13cd8bdcdf38f.1730816930.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 674944cbe4fb..dd1d68847187 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Removed the `ucode=allow-same` command line option.
    - Removed x2APIC Cluster Mode for external interrupts.  x2APIC Physical and
      Mixed Modes are still available.
+   - Switched the xAPIC flat driver to use physical destination mode for external
+     interrupts instead of logical destination mode.
 
 ## [4.19.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.19.0) - 2024-07-29
 
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:52:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830368.1245344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8KvG-0006IR-IV; Tue, 05 Nov 2024 14:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830368.1245344; Tue, 05 Nov 2024 14:52: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 1t8KvG-0006IK-Fx; Tue, 05 Nov 2024 14:52:46 +0000
Received: by outflank-mailman (input) for mailman id 830368;
 Tue, 05 Nov 2024 14:52: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8KvF-0006IE-AD
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:52:45 +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 9bd36b09-9b85-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:52:42 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4315eeb2601so65701095e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:52: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-381c116ae82sm16393042f8f.93.2024.11.05.06.52.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 06:52: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: 9bd36b09-9b85-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjliZDM2YjA5LTliODUtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE4MzYyLjIwMTI0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730818361; x=1731423161; 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=vDwRSdEgINUlqUqy5I5C5bRD86V+LmDkk/eVT9gVhus=;
        b=PdhH4aLLDqi/pWk0RJCWBA87rCCOHTIZbP2lY+xqkT2pu9BH1uK3JuggIWlA6+Nh2e
         SiyjwNQlWCrBL026IUsGSolPp9SSppgUe2Muts05MWqd0Lhr49FSmsZUzkz5aN4QF0bc
         sfqpfxln4SRd9rRGJKZJE47viQQJaeYBJTxqw+PxBONONtTB2p6EYbo0XmYj88u76XAD
         wWHocYj+u2NQsbZf9W27tpcpoHq3p7qE4WNTMW1tE4qYu4Hvb7DROwoPi+y2mlvdm0bl
         nWRjwt0wAErlxywdlu+M1KnanSGV5kBkYY3up5H0Vz6h/UtAr/hjhhMiGq4uS1Q8gh1n
         OBTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730818361; x=1731423161;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vDwRSdEgINUlqUqy5I5C5bRD86V+LmDkk/eVT9gVhus=;
        b=p0j525MBn1hHu/RAy+Ygk9AVgJI/0JE9k2JlKF9vlFbGm+CenDexhrF9NeR4yf0+5g
         +0VjrAQYTdwtW4zE9zuhE7M0JvKqXA3hcTNJKW2YKP/J2GRHCUz0z+HRqGSz/0L176NH
         HkvnnmmStalZTE/HpIBfFIB7uLdISa+0wIjuX8fvdJ7SMpFfJHMTiFlnl2sWqd4xCMyF
         upiWGjRqETLK1cbw07va9LmzKu1QZpv2abv4QUdJ3HFzLGBvcUYffkSCoVNEjWRNvQjv
         cjyrfS1sDsviIGAjTAFEfCksN4QwsiFsoqPZLPeyOcti4imod7Vqfi0U2F6M2kwT348J
         DIxg==
X-Forwarded-Encrypted: i=1; AJvYcCXaJnT4XFXJD1nMv6BhaWkuT96A2GbFiSj4i4DkSIBVLr3Xul25NQWBDo9BYN0+V1XyGCgUL04mGIU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqW+5rfdPM7ojXbdYeizv1LhdMQi8alfRVasS+xJSF7Ith+bov
	oyxuFVy3PN+/Ad7E7fnbb9sgHvliSy57FLE+wzrFBaO87PuEV1RpFtULapQQGw==
X-Google-Smtp-Source: AGHT+IGMpBomYZKQzrcPOfv3iKK3VoUUEh9QMIQQ63YmIp9DDmcyUAMEcYnjLOE7PHisnsoWJ1oirw==
X-Received: by 2002:a05:600c:3b82:b0:431:4f29:9539 with SMTP id 5b1f17b1804b1-4328b4bdc8dmr135273065e9.32.1730818361468;
        Tue, 05 Nov 2024 06:52:41 -0800 (PST)
Message-ID: <c55fdc20-2a58-4978-bd78-4cba90a7a8e4@suse.com>
Date: Tue, 5 Nov 2024 15:52:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] Avoid crash calling PrintErrMesg from efi_multiboot2
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20240819142953.415817-1-frediano.ziglio@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: <20240819142953.415817-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.08.2024 16:29, Frediano Ziglio wrote:
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -287,19 +287,36 @@ static bool __init match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2)
>  /* generic routine for printing error messages */
>  static void __init PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode)
>  {
> -    static const CHAR16* const ErrCodeToStr[] __initconstrel = {
> -        [~EFI_ERROR_MASK & EFI_NOT_FOUND]           = L"Not found",
> -        [~EFI_ERROR_MASK & EFI_NO_MEDIA]            = L"The device has no media",
> -        [~EFI_ERROR_MASK & EFI_MEDIA_CHANGED]       = L"Media changed",
> -        [~EFI_ERROR_MASK & EFI_DEVICE_ERROR]        = L"Device error",
> -        [~EFI_ERROR_MASK & EFI_VOLUME_CORRUPTED]    = L"Volume corrupted",
> -        [~EFI_ERROR_MASK & EFI_ACCESS_DENIED]       = L"Access denied",
> -        [~EFI_ERROR_MASK & EFI_OUT_OF_RESOURCES]    = L"Out of resources",
> -        [~EFI_ERROR_MASK & EFI_VOLUME_FULL]         = L"Volume is full",
> -        [~EFI_ERROR_MASK & EFI_SECURITY_VIOLATION]  = L"Security violation",
> -        [~EFI_ERROR_MASK & EFI_CRC_ERROR]           = L"CRC error",
> -        [~EFI_ERROR_MASK & EFI_COMPROMISED_DATA]    = L"Compromised data",
> -        [~EFI_ERROR_MASK & EFI_BUFFER_TOO_SMALL]    = L"Buffer too small",
> +#define ERROR_MESSAGE_LIST \
> +    ERROR_MESSAGE(EFI_NOT_FOUND, "Not found") \
> +    ERROR_MESSAGE(EFI_NO_MEDIA, "The device has no media") \
> +    ERROR_MESSAGE(EFI_MEDIA_CHANGED, "Media changed") \
> +    ERROR_MESSAGE(EFI_DEVICE_ERROR, "Device error") \
> +    ERROR_MESSAGE(EFI_VOLUME_CORRUPTED, "Volume corrupted") \
> +    ERROR_MESSAGE(EFI_ACCESS_DENIED, "Access denied") \
> +    ERROR_MESSAGE(EFI_OUT_OF_RESOURCES, "Out of resources") \
> +    ERROR_MESSAGE(EFI_VOLUME_FULL, "Volume is full") \
> +    ERROR_MESSAGE(EFI_SECURITY_VIOLATION, "Security violation") \
> +    ERROR_MESSAGE(EFI_CRC_ERROR, "CRC error") \
> +    ERROR_MESSAGE(EFI_COMPROMISED_DATA, "Compromised data") \
> +    ERROR_MESSAGE(EFI_BUFFER_TOO_SMALL, "Buffer too small")
> +
> +    static const struct ErrorStrings {
> +        CHAR16 start;
> +#undef ERROR_MESSAGE
> +#define ERROR_MESSAGE(code, str) CHAR16 msg_ ## code[sizeof(str)];
> +        ERROR_MESSAGE_LIST
> +    } ErrorStrings __initconst = {
> +        0
> +#undef ERROR_MESSAGE
> +#define ERROR_MESSAGE(code, str) , L ## str
> +        ERROR_MESSAGE_LIST
> +    };
> +    static const uint16_t ErrCodeToStr[] __initconst = {
> +#undef ERROR_MESSAGE
> +#define ERROR_MESSAGE(code, str) \
> +        [~EFI_ERROR_MASK & code] = offsetof(struct ErrorStrings, msg_ ## code),
> +        ERROR_MESSAGE_LIST
>      };
>      EFI_STATUS ErrIdx = ErrCode & ~EFI_ERROR_MASK;
>  

A while ago Andrew and I discussed this, and I was apparently wrongly expecting
him to come back here, as (iirc; no record of this that I could find in the mail
archives, so I'm sorry if my recollection is wrong) he was the one to object. We
concluded that it wants at least considering to undo the respective part of
00d5d5ce23e6, finding a different solution to the Clang issue there.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:54:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830374.1245355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kx1-0006qo-UC; Tue, 05 Nov 2024 14:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830374.1245355; Tue, 05 Nov 2024 14: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 1t8Kx1-0006qh-RJ; Tue, 05 Nov 2024 14:54:35 +0000
Received: by outflank-mailman (input) for mailman id 830374;
 Tue, 05 Nov 2024 14: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8Kx0-0006q7-PF
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:54:34 +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 dd7ceaf6-9b85-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 15:54:32 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43159c9f617so43929695e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:54: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-432a267da36sm16448615e9.0.2024.11.05.06.54.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 06: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: dd7ceaf6-9b85-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRkN2NlYWY2LTliODUtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE4NDcyLjI3MjU3NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730818472; x=1731423272; 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=lHqJ4nh73hkxYu0mSp5FOQJTbdpxiptHvPV866EToyA=;
        b=GQNdxYCdq5UiS1zfB4qy85P+9eAYNuwGJbNu4mmZ1+Q61QfrHpmm0ltXUqGz+X++fa
         r+ogIjAltrEmC11KFNT00qE8K/FiY594s3wjwEsrI+jPuqGIU+l/4bjNTn+fK6uShbQg
         j3BxNifIpt3gmxjdk7j6abaMXwS6rAhKhNVKutoBJm1O4+lUmqJQCLBoPZuoJHKHJuhc
         KHKvlLtrSzFhzyNlW/2+BBEZtCtnKZv2+vILgtmljWWxurbEXZSm4aB5/eToWgQHaao3
         afprtREZoZgyxGM5/bN3D7V0U0qHHMrO/D1xei5LJbQboDVL1fQP6FKAP748/UL/iyC5
         98GQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730818472; x=1731423272;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lHqJ4nh73hkxYu0mSp5FOQJTbdpxiptHvPV866EToyA=;
        b=Qg46UD7e3GbbYA5ZuWJuEyZgOLWG4zqohP8Y5K5T8LNFn/+BHV1xXr7AczIUIzLbdC
         mRKLM6+/UdHOPz+3okm9JAEjPH1O0TWud0Z4K2mnQIP/30JRUyDNidXErRfmScdx2mv+
         m9gp2ZZ35Bgp+O+C3rseadohYDoLJm0dncazsgkv05e19Elnk3Loc3FOl5RsguNzA6LV
         TvUGwEeeylNngyVzqjUeJK+mX4a35i9rIYA6fLf7rkM3WN4N9LXtnEdYMqGNjtuoWcmS
         RhquBeenXZWpmvvJYK9mgFqhSqObFhv52TjXg8uuMpcO/YQVrMnlMqPrDI9DEwNZ+vcN
         fYvw==
X-Forwarded-Encrypted: i=1; AJvYcCUM0TZusgKRbI9f2UPYag/pxFBL2ZVbsBG2j4j/wPjukP51ZZcZzvQvDWvkmbqT/k/AyUquSjoS0U8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBj67pWks835un3GiiFuZ/cfvqsYmOgdb03bq+wIo6ESU/GXRB
	+7O3IQneEOutdPupdJ8UE2WBbLGC7F35HUoPMciX/4ZSLCLpW3QtDzo6cLSjdg==
X-Google-Smtp-Source: AGHT+IETAGyNn8ytPqUUmXGpNbQRsnYUaUbynUud4khtJHlVJSux0ldFLnDxraKc8scyatafNLFgEw==
X-Received: by 2002:a05:600c:524c:b0:426:5e91:3920 with SMTP id 5b1f17b1804b1-4319ad24a7fmr345576085e9.29.1730818471664;
        Tue, 05 Nov 2024 06:54:31 -0800 (PST)
Message-ID: <6295972d-bdc8-4d13-bba8-fa9bcb8cdbec@suse.com>
Date: Tue, 5 Nov 2024 15:54:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG: Add note about xAPIC destination mode change
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <aa0ea8c5cf8ebe74f2b28dc41cb13cd8bdcdf38f.1730816930.git.matthew.barnes@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: <aa0ea8c5cf8ebe74f2b28dc41cb13cd8bdcdf38f.1730816930.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.11.2024 15:33, Matthew Barnes wrote:
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -21,6 +21,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Removed the `ucode=allow-same` command line option.
>     - Removed x2APIC Cluster Mode for external interrupts.  x2APIC Physical and
>       Mixed Modes are still available.
> +   - Switched the xAPIC flat driver to use physical destination mode for external
> +     interrupts instead of logical destination mode.

Imo this wants to go into the "Changed" section, not the "Removed" one.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 14:55:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 14:55:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830380.1245365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Kxn-0007RS-A8; Tue, 05 Nov 2024 14:55:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830380.1245365; Tue, 05 Nov 2024 14:55: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 1t8Kxn-0007RL-6f; Tue, 05 Nov 2024 14:55:23 +0000
Received: by outflank-mailman (input) for mailman id 830380;
 Tue, 05 Nov 2024 14:55: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=Yqe/=SA=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8Kxl-0007K3-VY
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 14:55:22 +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 f935b9f3-9b85-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 15:55:18 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4315eeb2601so65741235e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 06:55:18 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-431bd917fefsm217655855e9.16.2024.11.05.06.55.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 06:55: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: f935b9f3-9b85-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY5MzViOWYzLTliODUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODE4NTE4Ljc3NDMwNCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730818518; x=1731423318; 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=AA+yf6mA3UaqtqgegBX9AbB2F7eAE7dWMPKa4nk3rUI=;
        b=gBoXWZON9nUTgSgQ9bGzHDehVZygPzDPkyg24bpnJpGrnmSFpPaPa46y6662OYgftL
         IVi5cTYGzD+6Ce/RoQFPGce/804Mxj8ySM6+RKnj44B0NpSJM4G7LD6L2issNueukj0I
         gkIRPy4Xy1lHdj1CNDETiwnP76CmUV2ZeODtk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730818518; x=1731423318;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=AA+yf6mA3UaqtqgegBX9AbB2F7eAE7dWMPKa4nk3rUI=;
        b=O2/sc707QCehZPggPz3T4BgM9g1nomqB6VZrULQpnLcEwH9ttHHO/hsZAs2+/juSlq
         gukAU3BDoT8sZRepP9Fiq/BgM0wUPQvhVpM+5R4ZQITHC4caAP11vSy2oc0jk7C14+zp
         l/gC7P2GHfUYzhE9bAGoYJe2B6MFyrW5KOcm+B+ZYBsNHSSvHY+j9jDPIOZ/YF7Ev3GR
         Mp4NqidatJyQn1ZZalOjubb0Ae3eK0RIjQ8V9ZVE/wYNePWUU/FKqrhHftlYvBYnvFpT
         RXM5fF+2SB/Seo8xdSVKDweW9CIpwaX1pzUjw499oyxJDi4GxISCBvIrNfgwLPs4RM1g
         D/Wg==
X-Gm-Message-State: AOJu0YztrzXLRFTF+JuWz+bfE1GfdEUsgAVPWysLZwwhtORhBQSTaDXO
	oYzk+I7X3eNK5FuWsl9JBr4+akjrOnE3Hxl8G9nLTTDq6lvPj24CzKkOW5az3O7P0Bes7yfpClu
	6sxk=
X-Google-Smtp-Source: AGHT+IFvz2u+n9ZttcoxNUWJKA4cbObvSacG2uE5RJGfK/Wa8/ORoBU2jXSg2Sxt9Sl6m7P+yg+aGA==
X-Received: by 2002:a05:600c:3b04:b0:431:6083:cd30 with SMTP id 5b1f17b1804b1-43283242a2bmr164724875e9.6.1730818517876;
        Tue, 05 Nov 2024 06:55:17 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] x86/boot: Fix build with LLVM toolchain
Date: Tue,  5 Nov 2024 14:55:07 +0000
Message-Id: <20241105145507.613981-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This toolchain generates different object and map files.
Account for these changes.
Added sections need to have special type so we put them in
separate sections as linker will copy type from input sections.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S   |  9 +++++++++
 xen/tools/combine_two_binaries.py | 17 +++++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index f20fc18977..2e565180d5 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -66,6 +66,15 @@ SECTIONS
        *(.comment.*)
        *(.note.*)
   }
+  .shstrtab : {
+       *(.shstrtab)
+  }
+  .strtab : {
+       *(.strtab)
+  }
+  .symtab : {
+       *(.symtab)
+  }
   /* Dynamic linkage sections.  Collected simply so we can check they're empty. */
   .got : {
         *(.got)
diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_binaries.py
index 447c0d3bdb..79ae8900b1 100755
--- a/xen/tools/combine_two_binaries.py
+++ b/xen/tools/combine_two_binaries.py
@@ -67,13 +67,22 @@ if args.exports is not None:
 
 # Parse mapfile, look for ther symbols we want to export.
 if args.mapfile is not None:
-    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
+    symbol_re_clang = \
+        re.compile(r'\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s{15,}(\S+)\n')
+    symbol_re_gnu = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
     for line in open(args.mapfile):
-        m = symbol_re.match(line)
-        if not m or m.group(2) not in exports:
+        name = None
+        m = symbol_re_clang.match(line)
+        if m:
+            name = m.group(5)
+        else:
+            m = symbol_re_gnu.match(line)
+            if m:
+                name = m.group(2)
+        if name is None or name not in exports:
             continue
         addr = int(m.group(1), 16)
-        exports[m.group(2)] = addr
+        exports[name] = addr
 for (name, addr) in exports.items():
     if addr is None:
         raise Exception("Required export symbols %s not found" % name)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 15:05:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 15:05:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830392.1245374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8L7d-0001zk-4j; Tue, 05 Nov 2024 15:05:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830392.1245374; Tue, 05 Nov 2024 15: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 1t8L7d-0001zd-1g; Tue, 05 Nov 2024 15:05:33 +0000
Received: by outflank-mailman (input) for mailman id 830392;
 Tue, 05 Nov 2024 15:05: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=oaTJ=SA=bounce.vates.tech=bounce-md_30504962.672a3434.v1-c55403c78d914d1c97b60d2ea93038c9@srs-se1.protection.inumbo.net>)
 id 1t8L7b-0001zM-SS
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:05:31 +0000
Received: from mail133-1.atl131.mandrillapp.com
 (mail133-1.atl131.mandrillapp.com [198.2.133.1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 636512a8-9b87-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 16:05:27 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-1.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4XjWq86Pm8zBsVPZv
 for <xen-devel@lists.xenproject.org>; Tue,  5 Nov 2024 15:05:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c55403c78d914d1c97b60d2ea93038c9; Tue, 05 Nov 2024 15:05: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: 636512a8-9b87-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzMy4xIiwiaGVsbyI6Im1haWwxMzMtMS5hdGwxMzEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYzNjUxMmE4LTliODctMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODE5MTI3LjM1NTE2Miwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MmEzNDM0LnYxLWM1NTQwM2M3OGQ5MTRkMWM5N2I2MGQyZWE5MzAzOGM5QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730819124; x=1731079624;
	bh=8PsoYL/E5IR3ApL5Be8k3DWKAIX30g2Be4e6ZK9EXI8=;
	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=Qs/d8suxhYMs/TtSf3/kZ+7QZgji3wsmr+WGmQk4hw86uii6WQQGD4ABYgyf7r4d+
	 P/czdBZJhRkbk1PjWt+qYduVzru1s4lw1u4liPcypXce1GTnAMYdai+9/Iot2EoBDX
	 01WXljL/KDAKYDMN4RfGlzN0D6zPWapwXfMo6POZGo0h4fVcn4Q0jvs8f0y7cGwdQ4
	 0bKz8IeXHH8Sqw4Txg3HqqnChjxfBFB1B0rfP8e/TR4V66s177ImVBeP3gMl9tL3Ni
	 n80NBliQpzXpxt7l98sLflHOHemabkiWVaa4RziZDSwflvpk83WgWADMihweiQaG+Y
	 HsUf49ZyOj9ZA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730819124; x=1731079624; i=anthony.perard@vates.tech;
	bh=8PsoYL/E5IR3ApL5Be8k3DWKAIX30g2Be4e6ZK9EXI8=;
	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=SDL2JCc+qaj9/8z7AfVPJgI1s7RMjD10WDzZ0M/+17SVZ0NaFk4NPnbkcspXsX1pU
	 zlrsCXhnwgc5hZxji1cVTTg6F41sQD4E1/4pxvLYNkkmlq55zF5hMEkvU5Kni1Pdb2
	 W8u5PA+LZY3IsS6isEPlwufZonxFAc42nJPdI5EysxokRbh1gJ2t0LlVFw/Nwj7scG
	 BBvBFG2j1JlAq+kTNxF5wIbY2P8Z+3QgFyrRLGGWCdPIilcvbqdWN9fSzvTqyUcNar
	 sxIBG05lssUgSyMKzmpKBfvJUs343N8GzKoirzdNx0OVoL7rHpEXgORAQs1W+W8A4U
	 ZZz99GU62MTYw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20tools/libxl:=20remove=20usage=20of=20VLA=20arrays?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730819123823
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: "Roger Pau Monne" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <Zyo0M08gb5yhBiJF@l14>
References: <20241028114831.27487-1-roger.pau@citrix.com> <3828ba9f-9bc8-4b65-a42f-b67ef061be52@citrix.com>
In-Reply-To: <3828ba9f-9bc8-4b65-a42f-b67ef061be52@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.c55403c78d914d1c97b60d2ea93038c9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241105:md
Date: Tue, 05 Nov 2024 15:05:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Oct 28, 2024 at 12:03:59PM +0000, Andrew Cooper wrote:
> On 28/10/2024 11:48 am, Roger Pau Monne wrote:
> > Clang 19 complains with the following error when building libxl:
> >
> > libxl_utils.c:48:15: error: variable length array folded to constant ar=
ray as an extension [-Werror,-Wgnu-folding-constant]
> >    48 |     char path[strlen("/local/domain") + 12];
> >       |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > Replace the usage of strlen() with ARRAY_SIZE(), which allows the liter=
al
> > string length to be known at build time.  Note ARRAY_SIZE() accounts fo=
r the
> > NUL terminator while strlen() didn't, hence subtract 1 from the total s=
ize
> > calculation.
> >
> > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> > ---
> >  tools/libs/light/libxl_utils.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_ut=
ils.c
> > index 10398a6c8611..b3f5e751cc3f 100644
> > --- a/tools/libs/light/libxl_utils.c
> > +++ b/tools/libs/light/libxl_utils.c
> > @@ -45,7 +45,7 @@ unsigned long libxl_get_required_shadow_memory(unsign=
ed long maxmem_kb, unsigned
> >  char *libxl_domid_to_name(libxl_ctx *ctx, uint32_t domid)
> >  {
> >      unsigned int len;
> > -    char path[strlen("/local/domain") + 12];
> > +    char path[ARRAY_SIZE("/local/domain") + 11];
> >      char *s;
> >  
> >      snprintf(path, sizeof(path), "/local/domain/%d/name", domid);
> > @@ -141,7 +141,7 @@ int libxl_cpupool_qualifier_to_cpupoolid(libxl_ctx =
*ctx, const char *p,
> >  char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid)
> >  {
> >      unsigned int len;
> > -    char path[strlen("/local/pool") + 12];
> > +    char path[ARRAY_SIZE("/local/pool") + 11];
> >      char *s;
> >  
> >      snprintf(path, sizeof(path), "/local/pool/%d/name", poolid);
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Although I have a minor preference for sizeof() as suggested by Frediano.

I have a preference for sizeof() too, we even used it this way (more or
less) in libxl before, for `eom` here:
    https://elixir.bootlin.com/xen/v4.19.0/source/tools/libs/light/libxl_qm=
p.c#L1608

I was a bit supprised by the use of ARRAY_SIZE on a string literal but
it's just an array of char :-).

For the patch, with sizeof() or ARRAY_SIZE():
Acked-by: Anthony PERARD <anthony.perard@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 Tue Nov 05 15:21:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 15:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830399.1245385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8LMm-0006jO-Ct; Tue, 05 Nov 2024 15:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830399.1245385; Tue, 05 Nov 2024 15: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 1t8LMm-0006jH-9l; Tue, 05 Nov 2024 15:21:12 +0000
Received: by outflank-mailman (input) for mailman id 830399;
 Tue, 05 Nov 2024 15:21: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8LMk-0006jB-KI
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:21: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 90b180d9-9b89-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 16:21:01 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-37d4d1b48f3so3225369f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 07:21: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-381c116a781sm16580401f8f.96.2024.11.05.07.21.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 07:21: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: 90b180d9-9b89-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkwYjE4MGQ5LTliODktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODIwMDYxLjQzNDg5Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730820061; x=1731424861; 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=x24M7yawIwD4HEFtjDX5aNZrFyLWkiLDWlhzZa+mDII=;
        b=d79MMVVs0QprwDAX+H+4fexf+ZL1ZiXPk37hYKNErRzsNjueiv8OXmlFqoAI6zs9b+
         /cCtE3PmOwkxsDZ8KffIIC0wXLI9G4r+ooqn/aEdtc9qNqJqN5GzXUWRASQoOQRzaz1g
         QmEU3GIeZ79M9wX2HcOUjYeDKsq+PhYAnSV83HhPqwfeuTZsSQlXyQLuYn2gprwApDAr
         TtSRS4hX8gslfCbvk7L5iiAbF/w3YY0P384bAyUQdlUTG2dbttL2y4ykrggQ2qI/UWwv
         oApVXHA4KnWyYjDUt9p0N+TKI7aznWtXOOCx3ewdb3PlvhDInT6EgW7S+cgXl9f04Op/
         0KiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730820061; x=1731424861;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x24M7yawIwD4HEFtjDX5aNZrFyLWkiLDWlhzZa+mDII=;
        b=KSeZhbUyf+RZEdXszSHa0ogtLBZISbUlMiFfmpAszqxGq9nrwENKhaqHHFRRqS6n8n
         l+/1FJi+ansUfC+ZA/K/aMS0btqaocbPPMoY+fS48noxPDunmhtz6fvWFYArWRyx/YU4
         QfdBayOfU+xNHph7Vz3BOvc7qk2PEbOKQFGZ+nxiUDLLBjd+25YLnJZ3lO5wZpDYFQqT
         A7pc+F8EDOg622EhSjJKiRBP+n+rlnnN/L9Rg6h7mUdhwseVNYtS5dVhFSI8pabt54iM
         TH87E3yF/zJslVDeozvvXXh3Bu/toGVbUND/97ZS5HdoiXPfYaBjHW7H3uQxVzsV6w0f
         0nLw==
X-Forwarded-Encrypted: i=1; AJvYcCWEShKhqYmay3dPmXzIEju5r/BABbIshrLkL2pd5pvcArtQ8PER59f7+ck9P2nbRmSEAt1IclsUFe8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyP9e0lCAWN7cxE7BijLRRuUnUmAL02ykIfjMdKDA6p6+B9k7t
	NsUuG7GtESPEAtLD7qNd7BpKO4sQya38YNZ6+B4EmnWz0FCp17oZNhsQBhRf+g==
X-Google-Smtp-Source: AGHT+IFOZEQ4VGI8MYYaUHnQ8Qq3Lvj8gHiOhx6qcf8GKxd177NXkOFJy8e4aiFS+PB/AsXsDEjP3g==
X-Received: by 2002:adf:e686:0:b0:37d:3964:e0f1 with SMTP id ffacd0b85a97d-381b70578b3mr18701421f8f.4.1730820060638;
        Tue, 05 Nov 2024 07:21:00 -0800 (PST)
Message-ID: <9e22b5ad-634f-48b7-b64c-fc44319a1d4d@suse.com>
Date: Tue, 5 Nov 2024 16:20:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] xen/riscv: introduce setup_mm()
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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
 <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.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: <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.11.2024 14:16, Oleksii Kurochko wrote:> @@ -423,3 +429,138 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
>  
>      return fdt_virt;
>  }
> +
> +vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
> +
> +#ifndef CONFIG_RISCV_32
> +
> +/* Map a frame table to cover physical addresses ps through pe */
> +static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
> +{
> +    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
> +    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
> +    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
> +    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
> +    mfn_t base_mfn;
> +
> +    if ( frametable_size > FRAMETABLE_SIZE )
> +        panic("The frametable cannot cover [%#"PRIpaddr", %#"PRIpaddr")\n",
> +              ps, pe);
> +
> +    /*
> +     * align base_mfn and frametable_size to MB(2) to have superpage mapping
> +     * in map_pages_to_xen()
> +     */
> +    frametable_size = ROUNDUP(frametable_size, MB(2));
> +    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, PFN_DOWN(MB(2)));
> +
> +    if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
> +                          PFN_DOWN(frametable_size),
> +                          PAGE_HYPERVISOR_RW) )
> +        panic("frametable mappings failed: %#lx -> %#lx\n",
> +              FRAMETABLE_VIRT_START, mfn_x(base_mfn));
> +
> +    memset(&frame_table[0], -1, frametable_size);
> +    memset(&frame_table[PFN_DOWN(aligned_ps)],
> +           0, nr_mfns * sizeof(*frame_table));

Interesting - now you write out a huge amount of -1s, just to then overwrite
most of them with zeroes. I'm not going to insist that you change this yet
another time, but the performance hit from this is going to bite you/us as
soon as Xen is run on bigger-memory systems.

Plus, unless I'm mistaken, the function continues to rely on ps == 0 as
input. Just that the dependency is now better hidden. Specifically if you
calculate nr_mfns from the difference, and then use that for allocation,
then you need to offset the start of the mapping you create accordingly. At
which point you may need to apply extra care to cover the case where
sizeof(*frame_table) is not a power of two, and hence e.g. the first valid
page might have a struct instance straddling a page boundary.

> +/* Map the region in the directmap area. */
> +static void __init setup_directmap_mappings(unsigned long base_mfn,
> +                                            unsigned long nr_mfns)
> +{
> +    static mfn_t __initdata directmap_mfn_start = INVALID_MFN_INITIALIZER;
> +
> +    unsigned long base_addr = mfn_to_maddr(_mfn(base_mfn));
> +    unsigned long high_bits_mask = XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
> +
> +    /* First call sets the directmap physical and virtual offset. */
> +    if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
> +    {
> +        directmap_mfn_start = _mfn(base_mfn);
> +
> +        directmap_virt_start -= (base_addr & high_bits_mask);
> +    }
> +
> +    if ( base_mfn < mfn_x(directmap_mfn_start) )
> +        panic("cannot add directmap mapping at %#lx below heap start %#lx\n",
> +              base_mfn, mfn_x(directmap_mfn_start));

Nit: Leftover use of "heap"?

> +    /*
> +     * The base address may not be aligned to the second level
> +     * size in case of Sv39 (e.g. 1GB when using 4KB pages).
> +     * This would prevent superpage mappings for all the regions
> +     * because the virtual address and machine address should
> +     * both be suitably aligned.
> +     *
> +     * Prevent that by offsetting the start of the directmap virtual
> +     * address.
> +     */
> +    if ( map_pages_to_xen(DIRECTMAP_VIRT_START + (base_addr & ~high_bits_mask),

I'm afraid this is correct only for the first invocation of the function.
For any further invocation you'd likely (attempt to) replace previously
established mappings. I think that here you need to use directmap_virt_start
instead.

> +/*
> + * Setup memory management
> + *
> + * RISC-V 64 has a large virtual address space (the minimum supported
> + * MMU mode is Sv39, which provides GBs of VA space).
> + *
> + * The directmap_virt_start is shifted lower in the VA space to
> + * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
> + * wasting a large portion of the directmap space, this also allows for simple
> + * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
> + * (for Sv39; for other MMU mode boundaries will be bigger ) by masking the
> + * higher bits of the RAM start address to enable the use of superpages in
> + * map_pages_to_xen().
> + *
> + * The frametable is mapped starting from physical address 0, minimizing
> + * wasted VA space and simplifying page_to_mfn() and mfn_to_page()
> + * translations.
> + */
> +void __init setup_mm(void)
> +{
> +    const struct membanks *banks = bootinfo_get_mem();
> +    paddr_t ram_start = INVALID_PADDR;
> +    paddr_t ram_end = 0;
> +    paddr_t ram_size = 0;
> +    unsigned int i;
> +
> +    /*
> +     * We need some memory to allocate the page-tables used for the directmap
> +     * mappings. But some regions may contain memory already allocated
> +     * for other uses (e.g. modules, reserved-memory...).
> +     *
> +     * For simplicity, add all the free regions in the boot allocator.
> +     */
> +    populate_boot_allocator();
> +
> +    total_pages = 0;

Nit: Is this actually necessary?

> +    for ( i = 0; i < banks->nr_banks; i++ )
> +    {
> +        const struct membank *bank = &banks->bank[i];
> +        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
> +        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
> +        unsigned long bank_size = bank_end - bank_start;
> +
> +        ram_size += bank_size;
> +        ram_start = min(ram_start, bank_start);
> +        ram_end = max(ram_end, bank_end);
> +
> +        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
> +    }

You maintain ram_start in the loop, just to then ...

> +    total_pages = PFN_DOWN(ram_size);
> +
> +    setup_frametable_mappings(0, ram_end);
> +    max_page = PFN_DOWN(ram_end);
> +}

... not use it at all - why?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 15:32:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 15:32:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830406.1245395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8LXv-0000iK-9x; Tue, 05 Nov 2024 15:32:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830406.1245395; Tue, 05 Nov 2024 15: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 1t8LXv-0000iD-6w; Tue, 05 Nov 2024 15:32:43 +0000
Received: by outflank-mailman (input) for mailman id 830406;
 Tue, 05 Nov 2024 15:32: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8LXt-0000i7-Ia
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:32:41 +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 3056052a-9b8b-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 16:32:38 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so743933266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 07:32: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
 a640c23a62f3a-a9eb16a2dbcsm147203766b.40.2024.11.05.07.32.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 07: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: 3056052a-9b8b-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwNTYwNTJhLTliOGItMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODIwNzU4LjcxMTIwOCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730820758; x=1731425558; 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=DbFBNr94KpBgAdMWjszCv+ehE3q1k7Xm8TPwu+nmF2k=;
        b=Co4gFc0t6zqQ+LzA/uwP8pw1zY6ZSdxsAiR19HD7gs8MLVg5rl69bfnXZsy2QOzCiT
         wolxeiNlZR3Id4mOpZ39fT1cvfody9pPgG2v6qo8OHcyYrW3GMo7b9zKZNy590/ZaQ3G
         Tra2GkMsVUYyS+frwWDaOXIzIVXUKpIKGT3j6+07IPExkE65Z7EsL6QwtD7oFbDU2eTT
         Y+GETJdRcLMLBo1CxToyCfmWbQOHH6UK+10TzigryJ7T2CsQc6u9oFZSLnkviQ0PS+hc
         +jd+IbKSafGvVgxKBZw0Y7HMGoEFaJ8VPWqeZ3pHHAa5TSbp9QVtdf2+5zAq6q6HzAfL
         ljBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730820758; x=1731425558;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DbFBNr94KpBgAdMWjszCv+ehE3q1k7Xm8TPwu+nmF2k=;
        b=ZWWXpoJ+fuoyGNE/VOBo/BlexmDJQoItLSjRTzVYs+v7poDhuXHRtMqVjwswq8LIR7
         aFOijX4qLAJsPvYbJWh4JLivtMFbuNWB7lYGr8PEbMqJ6OoaQpu/NWGT/g0Y8N2SmYW6
         0oGJcjnDJFnicKM9iuD1r3LwOiiXu2WRbGW1NbS6t2JI457rEpAlrH2XgU2Rme9ou+A9
         J8hiQI4FjGvg1+eR50FCEONbAuu4AdHn7Zu1AC41AeSHNINPO1UPBdGIuHhI5DxAg+Ts
         FCcQnerhMlnPVaTFlXBPmXpGf4h/ZqeyqEStgIOpFqxf0eOuH8OmKZ3J3w8wNsYPhzsr
         l0Jg==
X-Forwarded-Encrypted: i=1; AJvYcCUkOSrW2Fv4VTva90+6emBOjddu2Pk36LlupZLiMbdVU0KA7N9Lv/JjgUN6HX4ohtbDWHeHwQpTPoQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yza+mLf5I1orQbb8mARihYuAVmlAjI73bzdqW7tbNFhQKEEUei+
	q3E+b3fkt9FUBLuceQuUPp5zWJZDxEhxwD5zWw8OmitBVwkZUW2bxBQ20D7XEg==
X-Google-Smtp-Source: AGHT+IEY56QW0thHuq0rW7F1O84eYaUuHNnzTD/vIij2Vh4qhALBuqpRbxmPYoD8BeVoUkNHSsnFvQ==
X-Received: by 2002:a17:907:e285:b0:a9e:b281:a212 with SMTP id a640c23a62f3a-a9eb281a37amr265256066b.51.1730820758047;
        Tue, 05 Nov 2024 07:32:38 -0800 (PST)
Message-ID: <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
Date: Tue, 5 Nov 2024 16:32:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241105145507.613981-1-frediano.ziglio@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: <20241105145507.613981-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.11.2024 15:55, Frediano Ziglio wrote:
> This toolchain generates different object and map files.
> Account for these changes.

At least briefly mentioning what exactly the differences are would be
quite nice, imo.

> --- a/xen/tools/combine_two_binaries.py
> +++ b/xen/tools/combine_two_binaries.py
> @@ -67,13 +67,22 @@ if args.exports is not None:
>  
>  # Parse mapfile, look for ther symbols we want to export.
>  if args.mapfile is not None:
> -    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
> +    symbol_re_clang = \

Is "clang" really appropriate to use here? Even without the alternative
being named "gnu", I'd expect "llvm" to be more to the point, as at
the linking stage the original language (encoded in "clang") shouldn't
matter much anymore.

> +        re.compile(r'\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s{15,}(\S+)\n')

Just wondering:
- How stable is their map file format?
- Do they not have an option to write GNU-compatible map files?
- Why do you declare 5 groups, when you're only after the 1st and last,
which would then allow to ...

> +    symbol_re_gnu = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
>      for line in open(args.mapfile):
> -        m = symbol_re.match(line)
> -        if not m or m.group(2) not in exports:
> +        name = None
> +        m = symbol_re_clang.match(line)
> +        if m:
> +            name = m.group(5)
> +        else:
> +            m = symbol_re_gnu.match(line)
> +            if m:
> +                name = m.group(2)

... uniformly use m.group(2) here (outside of the conditional)?

Jan

> +        if name is None or name not in exports:
>              continue
>          addr = int(m.group(1), 16)
> -        exports[m.group(2)] = addr
> +        exports[name] = addr
>  for (name, addr) in exports.items():
>      if addr is None:
>          raise Exception("Required export symbols %s not found" % name)



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 15:42:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 15:42:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830416.1245404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8LhV-000347-7i; Tue, 05 Nov 2024 15:42:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830416.1245404; Tue, 05 Nov 2024 15:42: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 1t8LhV-000340-4t; Tue, 05 Nov 2024 15:42:37 +0000
Received: by outflank-mailman (input) for mailman id 830416;
 Tue, 05 Nov 2024 15:42: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=hlyn=SA=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1t8LhT-00033u-OJ
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:42:35 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91a22962-9b8c-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 16:42:31 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2fc96f9c41fso59302021fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 07:42:31 -0800 (PST)
Received: from EPUAKYIW03DD.. ([91.123.152.50])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2fdef8c6532sm21327941fa.121.2024.11.05.07.42.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 07:42: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: 91a22962-9b8c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1sajEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkxYTIyOTYyLTliOGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODIxMzUxLjQzOTMzOSwic2VuZGVyIjoib2xla3N0eXNoQGdtYWlsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730821350; x=1731426150; 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=c0HTXNi9gUQihZmAzaTOUYAdYouLWPx63xU2TGwafCc=;
        b=iiLsqsFNfx6PryJwfP8Og66+gDkkwfc/hcfgXKSMPPDa2QuJrbGDdzQqnpRCX6eslP
         6TBgyLpL4NAzq8ODhfiuqh5/fgGlL5o7HsmYkib/+FUhv+9ArzE9XU6iHz3Dh0VJUxqG
         VBaWfy2JR9d/FoPf4AvWPTyx9Kh8w3AyoKaXchVp1i/cKt7dSaaSO1ECkusJW0XQTmJB
         AWjBixODFHYg7FxBmHIOBPC9Uuse7e0vOqkSoMrx7Bp4Pz88LDqvZIs8QWKX0dQc4PL3
         0ewtUHTIokqTApSX1w3T1stJgQacXQ4byk55mS+7wHdwcXWeICHkLw5vSTGjlcDA3eNH
         ALGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730821350; x=1731426150;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=c0HTXNi9gUQihZmAzaTOUYAdYouLWPx63xU2TGwafCc=;
        b=QD4FONW81Xm+1/D1bvaYWlZKsq2FX4sIE/HoIA59EPYd5/phXV5VsX3ea7ztxNtJsY
         uL+mql7Yfk81WuRqRlvKfjZwrLPxB25VyUCH+SKpNRTbRX9GVA4EZFqR6kjLCqL4E+JW
         gj72IQjAyJPB8wDogkPVeLeiKxkGFBNdPwEKCgNSW62AZml75Aju9gEh+OMbmXJRs90T
         j83xex2J+N26Q+FUcDBJBYeBSzGBt5tFRPT7MyjqFZUL17i2M/i/52aMTcZ8UVPsR6Xs
         j9z4z/ZLT2m1jLqoP+G7APH3g3zYrcQ+S6x5uVUGgSSZ+x0zdkVCdGzS9jRg6G7/9NG7
         9GUw==
X-Gm-Message-State: AOJu0Yw3C/aSp8fodmxdvfwqBtFZmwZd3ZEfK5rV0T2I60yrgeTzD+Hg
	RV3FipMkzygoeiSGEzVce/wTb+kE0oNhbHucGfAt3PYOkFHmqWNo62ORKA==
X-Google-Smtp-Source: AGHT+IF21N/C/tWgzOxyx1suEDfZ99009JYf9Z+j4VCdJKdDmP9LiVgLTvi58lSG953Yhkm7pbOj0w==
X-Received: by 2002:a05:651c:2115:b0:2f7:cac8:9e38 with SMTP id 38308e7fff4ca-2fedb46e118mr59758921fa.18.1730821349778;
        Tue, 05 Nov 2024 07:42:29 -0800 (PST)
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
	Artem Mygaiev <artem_mygaiev@epam.com>,
	Hisao Munakata <hisao.munakata.vt@renesas.com>,
	Julien Grall <julien@xen.org>
Subject: [PATCH V2] docs: fusa: Add requirements for Device Passthrough
Date: Tue,  5 Nov 2024 17:41:10 +0200
Message-Id: <20241105154110.2175555-1-olekstysh@gmail.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Add common requirements for a physical device assignment to Arm64
and AMD64 PVH domains.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Previous discussion (V1) here:
https://lists.xenproject.org/archives/html/xen-devel/2024-10/msg00534.html

  V2:
    A lot of changes... Reworked the document significantly. Incorporated review
    comments done for V1: The main changes are:
     - split complex requirements
     - clarify existing requirements
     - generalize requirements
     - add more requirements
     - drop redundant requirements
---
---
 .../reqs/design-reqs/common/passthrough.rst   | 432 ++++++++++++++++++
 docs/fusa/reqs/index.rst                      |   1 +
 docs/fusa/reqs/market-reqs/reqs.rst           |  33 ++
 docs/fusa/reqs/product-reqs/common/reqs.rst   |  29 ++
 4 files changed, 495 insertions(+)
 create mode 100644 docs/fusa/reqs/design-reqs/common/passthrough.rst
 create mode 100644 docs/fusa/reqs/product-reqs/common/reqs.rst

diff --git a/docs/fusa/reqs/design-reqs/common/passthrough.rst b/docs/fusa/reqs/design-reqs/common/passthrough.rst
new file mode 100644
index 0000000000..58a140a0a1
--- /dev/null
+++ b/docs/fusa/reqs/design-reqs/common/passthrough.rst
@@ -0,0 +1,432 @@
+
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Device Passthrough
+==================
+
+The following are the requirements related to a physical device assignment
+[1], [2] to Arm64 and AMD64 PVH boot time domains.
+
+Requirements for both Arm64 and AMD64 PVH
+=========================================
+
+Configure IOMMU at boot
+-----------------------
+
+`XenSwdgn~passthrough_configure_iommu_at_boot~1`
+
+Description:
+Xen shall configure the IOMMU at domain creation time according to the stage-2
+(or 2nd stage) translation tables.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Provide interface for addition and removal of PCI devices
+---------------------------------------------------------
+
+`XenSwdgn~passthrough_provide_if_for_add_rm_pci_devs~1`
+
+Description:
+Xen shall provide hypercalls to allow the hardware domain to inform Xen about
+the appearance and disappearance of PCI devices.
+
+Rationale:
+The hardware domain enumerates and discovers PCI devices.
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Discover PCI devices from Xen
+-----------------------------
+
+`XenSwdgn~passthrough_discover_pci_devs_from_xen~1`
+
+Description:
+Xen shall discover PCI devices (enumerated by the firmware beforehand) at boot.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Support assignment of PCI devices
+---------------------------------
+
+`XenSwdgn~passthrough_support_assign_pci_devs~1`
+
+Description:
+Xen shall support the assignment of PCI devices to the domains. The PCI device
+is always implied as DMA-capable and interrupt-driven.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Support deassignment of PCI devices
+-----------------------------------
+
+`XenSwdgn~passthrough_support_deassign_pci_devs~1`
+
+Description:
+Xen shall support the deassignment of PCI devices from the domains.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Deassign PCI device from domain
+-------------------------------
+
+`XenSwdgn~passthrough_deassign_pci_dev_from_dom~1`
+
+Description:
+Xen shall deassign a specified PCI device from a domain during its destruction.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Assign single device to single domain
+-------------------------------------
+
+`XenSwdgn~passthrough_assign_single_dev_to_single_dom~1`
+
+Description:
+Xen shall assign a single device to a single domain. Xen shall fail to create
+a new domain if the device to be passed through is already assigned to
+the existing domain.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Assign devices sharing resources to same domain
+-----------------------------------------------
+
+`XenSwdgn~passthrough_assign_devs_sharing_res_to_same_dom~1`
+
+Description:
+Xen shall assign devices that share some resources (interrupts or IOMMU
+connections) to the same domain. Xen shall fail to create a new domain if
+the device to be passed through shares resources with the device already
+assigned to the existing domain.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Enable IOMMU to perform DMA Remapping for device
+------------------------------------------------
+
+`XenSwdgn~passthrough_enable_iommu_to_perform_dma_remapping_for_dev~1`
+
+Xen shall enable IOMMU to perform stage-2 (or 2nd stage) address translations
+for the DMA operations done by a DMA-capable device when assigning it
+to a domain.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Use IOMMU to enforce DMA operations from device
+------------------------------------------------
+
+`XenSwdgn~passthrough_use_iommu_to_enforce_dma_ops_from_dev~1`
+
+Description:
+Xen shall use the IOMMU to enforce DMA operations done by a DMA-capable device
+assigned to a domain to be restricted to the memory of the given domain.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Use IOMMU to deny DMA operations from device
+--------------------------------------------
+
+`XenSwdgn~passthrough_use_iommu_to_deny_dma_ops_from_dev~1`
+
+Description:
+Xen shall use the IOMMU to deny DMA operations done by a DMA-capable device
+not assigned to any domain (deassigned from a domain).
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Map device memory region
+------------------------
+
+`XenSwdgn~passthrough_map_dev_mem_region~1`
+
+Description:
+Xen shall map the device memory (i.e. MMIO) region into stage-2 (or 2nd stage)
+translation tables when assigning a specified device to a domain so the domain
+can configure and use the device.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Deliver MSIs to domain
+----------------------
+
+`XenSwdgn~passthrough_deliver_msis_to_dom~1`
+
+Xen shall inject associated with the MSI-capable (i.e. PCI) device interrupts
+(MSIs) into the domain to which the device is assigned whenever interrupts
+are generated.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Requirements for Arm64 only
+===========================
+
+Support assignment of platform devices
+--------------------------------------
+
+`XenSwdgn~passthrough_support_assign_dt_devs~1`
+
+Description:
+Xen shall support the assignment of platform devices to the domains.
+The platform device can be either non-DMA-capable or DMA-capable.
+The platform device can be either interrupt-less or interrupt-driven.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Support deassignment of platform devices
+----------------------------------------
+
+`XenSwdgn~passthrough_support_deassign_dt_devs~1`
+
+Description:
+Xen shall support the deassignment of platform devices from the domains.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Assign platform device to domain
+--------------------------------
+
+`XenSwdgn~arm64_passthrough_assign_dt_dev_to_dom~1`
+
+Description:
+Xen shall assign a specified platform device to a domain during its creation
+using passthrough (partial) device tree.
+
+Rationale:
+
+ - The passthrough device tree is specified using a device tree module node
+   with compatible ("multiboot,device-tree") in the host device tree.
+ - The passthrough device tree shall entirely describe the platform device to
+   be passed through to a domain so the domain can discover and use the device.
+ - The intention of the platform device usage for the passthrough is specified
+   using device tree property ("xen,passthrough") in the device node described
+   in the host device tree.
+ - The memory region of the platform device and the corresponding guest address
+   for remapping are specified using the device tree property ("xen,reg") in
+   the device node described in the passthrough device tree.
+ - The path of the platform device node in the host device tree is specified
+   using the device tree property ("xen,path") in the device node described
+   in the passthrough device tree. Both interrupt mappings and IOMMU settings
+   are based on it.
+ - The allowance of the platform device assignment which is not behind an IOMMU
+   (for both non-DMA-capable and DMA-capable devices) is specified using
+   the device tree property ("xen,force-assign-without-iommu") in the device
+   node described in the passthrough device tree. The said property also allows
+   the interrupt-less platform device assignment (a device that has only
+   an memory region) without specifying the corresponding node in the host
+   device via device tree property ("xen,path").
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Deassign platform device from domain
+------------------------------------
+
+`XenSwdgn~passthrough_deassign_dt_dev_from_dom~1`
+
+Description:
+Xen shall deassign a specified platform device from a domain during its
+destruction.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Assign PCI device to domain on Arm64
+------------------------------------
+
+`XenSwdgn~passthrough_assign_pci_dev_to_dom_arm64~1`
+
+Description:
+Xen shall assign a specified PCI device to a domain during its creation using
+passthrough (partial) device tree.
+
+Rationale:
+
+ - The passthrough device tree is specified using a device tree module node
+   with compatible ("multiboot,device-tree") in the host device tree.
+ - The PCI device to be passed through is specified using device tree property
+   ("xen,pci-assigned") in the "passthrough" node described in the passthrough
+   device tree.
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Support creation of direct mapped domains
+-----------------------------------------
+
+`XenSwdgn~passthrough_support_creation_direct_mapped_doms~1`
+
+Description:
+Xen shall support the creation of direct mapped (guest frame number == machine
+frame number) domains using passthrough (partial) device tree.
+
+Rationale:
+The assignment of DMA-capable device which is not behind an IOMMU is allowed
+for the trusted direct mapped domains only.
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Deliver SPIs to domain
+----------------------
+
+`XenSwdgn~passthrough_deliver_spis_to_dom~1`
+
+Xen shall inject associated with the platform device interrupts (SPIs) into
+the domain to which the device is assigned whenever interrupts are generated.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Requirements for AMD64 PVH only
+===============================
+
+Assign PCI device to domain on AMD-x86
+--------------------------------------
+
+`XenSwdgn~passthrough_assign_pci_dev_to_dom_x86~1`
+
+Description:
+Xen shall assign a specified PCI device to a domain during its creation using
+Hyperlaunch device tree.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Enable IOMMU to perform Interrupt Remapping for device
+------------------------------------------------------
+
+`XenSwdgn~passthrough_enable_iommu_to_perform_irq_remapping_for_dev~1`
+
+Xen shall enable the IOMMU to perform filtering (permission checking) and
+Interrupt Remapping for the device interrupts when assigning a specified device
+to a domain.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Use IOMMU to enforce interrupt generation from device
+-----------------------------------------------------
+
+`XenSwdgn~passthrough_use_iommu_to_enforce_irq_gen_from_dev~1`
+
+Description:
+Xen shall use the IOMMU to ensure that the device can only generate interrupts
+for the domain to which it is assigned.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Notes
+=====
+
+The AMD64 PVH-specific requirements are written under the assumption that once
+the Hyperlaunch feature is completed, Xen shall assign a PCI device to boot
+time domains. This is not the case today, where the PCI device can be passed
+through only to domains launched by a control (toolstack) domain.
+
+The Arm64-specific requirements are written under the assumption that once
+the dom0less PCI Passthrough feature is completed, Xen shall assign a PCI device
+to boot time domains. This is not the case today, where only the platform device
+Passthrough is supported.
+
+[1] https://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/passthrough.txt;hb=HEAD
+[2] https://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/passthrough-noiommu.txt;hb=HEAD
diff --git a/docs/fusa/reqs/index.rst b/docs/fusa/reqs/index.rst
index 183f183b1f..19c2f26b2b 100644
--- a/docs/fusa/reqs/index.rst
+++ b/docs/fusa/reqs/index.rst
@@ -10,3 +10,4 @@ Requirements documentation
    market-reqs
    product-reqs
    design-reqs/arm64
+   design-reqs/common
diff --git a/docs/fusa/reqs/market-reqs/reqs.rst b/docs/fusa/reqs/market-reqs/reqs.rst
index f456788d96..37a443395b 100644
--- a/docs/fusa/reqs/market-reqs/reqs.rst
+++ b/docs/fusa/reqs/market-reqs/reqs.rst
@@ -47,3 +47,36 @@ Comments:
 
 Needs:
  - XenProd
+
+Run AMD-x86 domains
+-------------------
+
+`XenMkt~run_x86_domains~1`
+
+Description:
+Xen shall run AMD-x86 domains.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
+
+Domain device assignment
+------------------------
+
+`XenMkt~domain_device_assignment~1`
+
+Description:
+Xen shall assign device to each domain.
+
+For example, it shall assign GPU to domain A, MMC to domain B. Only the domain
+assigned to a device, shall have exclusive access to the device.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
diff --git a/docs/fusa/reqs/product-reqs/common/reqs.rst b/docs/fusa/reqs/product-reqs/common/reqs.rst
new file mode 100644
index 0000000000..9304399e4d
--- /dev/null
+++ b/docs/fusa/reqs/product-reqs/common/reqs.rst
@@ -0,0 +1,29 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Domain Creation And Runtime
+===========================
+
+Device Passthrough
+------------------
+
+`XenProd~device_passthrough~1`
+
+Description:
+Xen shall provide mechanism for assigning a physical device to the domains.
+
+For example:
+
+- PCI passthrough
+- MMC passthrough
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenMkt~run_arm64_domains~1`
+ - `XenMkt~run_x86_domains~1`
+ - `XenMkt~domain_device_assignment~1`
+
+Needs:
+ - XenSwdgn
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 15:46:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 15:46:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830422.1245415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Lkv-0003lg-Mp; Tue, 05 Nov 2024 15:46:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830422.1245415; Tue, 05 Nov 2024 15: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 1t8Lkv-0003lZ-Je; Tue, 05 Nov 2024 15:46:09 +0000
Received: by outflank-mailman (input) for mailman id 830422;
 Tue, 05 Nov 2024 15:46: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8Lku-0003lT-TB
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:46:08 +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 10ca5407-9b8d-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 16:46:04 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43155abaf0bso49837655e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 07:46: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-381c113e595sm16581025f8f.77.2024.11.05.07.46.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 07: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: 10ca5407-9b8d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEwY2E1NDA3LTliOGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODIxNTY0LjgzMzA0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730821564; x=1731426364; 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=jyhE7GMeszEirIQg38CQZXP8OckigMSkI1OLyIH6s6s=;
        b=cWdiZqC2OOrUux5W9W2HYCug/gLpPz+6ccVThzG3ww+X4C6aU5GQE5O8NmS9NkZO9g
         pQjhAv8pG8EP0zoR24Z4Iu9p0VtbR4DZnWab1MvXSK60GP2RcoYFaTiG4r+pX4wMnF4R
         mqqYYiDS3SMSH0Pc/KO/Wt6w0xuzygwqapxSYMT4JpP6M439ZzKA+C+3VJ+OsPh19rDp
         NxIVC2oztgZHtZwHS+qgfktuKeQsIQhzZWzRmpPSQozuhj6jy3fehICRXwSVcP16JxRT
         AB+es3nlJYu6SmrhmJcuHb8nI0g9ZFKPQcBCsvc0QkJLmoGqIRywuycGxNaYU15SNlco
         D+Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730821564; x=1731426364;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jyhE7GMeszEirIQg38CQZXP8OckigMSkI1OLyIH6s6s=;
        b=pzDrBJSkdOjM1rwDTlLZ2e6CrSQ6fkovEtOT8s0CIOHu7L+SiBl3Y9qKu9IhekH7d+
         VoN2MDty9Fkix3LwYBoRUfJ3ZAwxKZA1kL5niis4cSt/mzt0Usinj/KX9XWWmxBi/oe+
         djVxP5SEvUrpzPD4ZSNFBIrhmwGbkGWmNY/LOvPvbnBR79/mjo+LXYBEUuePoZVG0W3L
         Xz6O2tuHWBh0Cm6akj7oMhgoWb9c0iRRnKiQKdY6ETNk/z0cX0Tn8OPWEP4qkfEQ0WGh
         IHen4ymSWUXsjtNIgWBjkaKF9Ao98fJ1FRzVpyba283LztT9v0/jY/4JOvBZBCxYgUzj
         5i6w==
X-Forwarded-Encrypted: i=1; AJvYcCUD9ssyh00/uVAmiB8hHxm2suUCjUzZ1FDzjQyg2KToqCWgkkJkEXbrEbetzm6pYsyWG6hbdPE0Poo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRIqw6roU7UNn7PAZj1Ky+8tAl0bzsgzLJKJD9AV+gjtpsIvWe
	finerzx/pcKmIoHCxl9+sFKfUUkp8HvUMwykgIhaRTF99pPrQqF3E2oX8XmM3w==
X-Google-Smtp-Source: AGHT+IGXcQIfxbN5FRUq6FG/rcrXMXwPMM5VbpgPiAuYNsUbZWgapxBDzZQ9qMr+3LtLwnoHtkMKxA==
X-Received: by 2002:a05:6000:2706:b0:381:d88c:d164 with SMTP id ffacd0b85a97d-381d88cd173mr4466854f8f.51.1730821564036;
        Tue, 05 Nov 2024 07:46:04 -0800 (PST)
Message-ID: <6e6f8e2a-ea16-4b48-ac70-23e72ade2b1a@suse.com>
Date: Tue, 5 Nov 2024 16:46:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 01/13] xen/common: add cache coloring common code
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Marco Solieri <marco.solieri@minervasys.tech>, xen-devel@lists.xenproject.org
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-2-carlo.nonato@minervasys.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: <20241025095014.42376-2-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.10.2024 11:50, Carlo Nonato wrote:
> Last Level Cache (LLC) coloring allows to partition the cache in smaller
> chunks called cache colors.
> 
> Since not all architectures can actually implement it, add a HAS_LLC_COLORING
> Kconfig option.
> MAX_LLC_COLORS_ORDER Kconfig option has a range maximum of 10 (2^10 = 1024)

Is the MAX_ here stale ...

> because that's the number of colors that fit in a 4 KiB page when integers
> are 4 bytes long.
> 
> LLC colors are a property of the domain, so struct domain has to be extended.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> ---
> v9:
> - dropped _MAX_ from CONFIG_MAX_LLC_COLORS_ORDER

... with this change?

> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1708,6 +1708,43 @@ This option is intended for debugging purposes only.  Enable MSR_DEBUGCTL.LBR
>  in hypervisor context to be able to dump the Last Interrupt/Exception To/From
>  record with other registers.
>  
> +### llc-coloring (arm64)
> +> `= <boolean>`
> +
> +> Default: `false`
> +
> +Flag to enable or disable LLC coloring support at runtime. This option is
> +available only when `CONFIG_LLC_COLORING` is enabled. See the general
> +cache coloring documentation for more info.
> +
> +### llc-nr-ways (arm64)
> +> `= <integer>`
> +
> +> Default: `Obtained from hardware`
> +
> +Specify the number of ways of the Last Level Cache. This option is available
> +only when `CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used
> +to find the number of supported cache colors. By default the value is
> +automatically computed by probing the hardware, but in case of specific needs,
> +it can be manually set. Those include failing probing and debugging/testing
> +purposes so that it's possible to emulate platforms with different number of
> +supported colors. If set, also "llc-size" must be set, otherwise the default
> +will be used. Note that using these two options implies "llc-coloring=on".

Nit: Both here and ...

> +### llc-size (arm64)
> +> `= <size>`
> +
> +> Default: `Obtained from hardware`
> +
> +Specify the size of the Last Level Cache. This option is available only when
> +`CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used to find
> +the number of supported cache colors. By default the value is automatically
> +computed by probing the hardware, but in case of specific needs, it can be
> +manually set. Those include failing probing and debugging/testing purposes so
> +that it's possible to emulate platforms with different number of supported
> +colors. If set, also "llc-nr-ways" must be set, otherwise the default will be
> +used. Note that using these two options implies "llc-coloring=on".

... here, maybe better s/these two/both/?

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -71,6 +71,9 @@ config HAS_IOPORTS
>  config HAS_KEXEC
>  	bool
>  
> +config HAS_LLC_COLORING
> +	bool
> +
>  config HAS_PIRQ
>  	bool
>  
> @@ -516,4 +519,23 @@ config TRACEBUFFER
>  	  to be collected at run time for debugging or performance analysis.
>  	  Memory and execution overhead when not active is minimal.
>  
> +config LLC_COLORING
> +	bool "Last Level Cache (LLC) coloring" if EXPERT
> +	depends on HAS_LLC_COLORING
> +	depends on !NUMA

Instead of this dependency, wouldn't it be more natural to suppress the
setting of HAS_LLC_COLORING by an arch when NUMA is on?

> --- /dev/null
> +++ b/xen/common/llc-coloring.c
> @@ -0,0 +1,111 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Last Level Cache (LLC) coloring common code
> + *
> + * Copyright (C) 2022 Xilinx Inc.

Does this need updating (if it can't be dropped)?

> + */
> +#include <xen/keyhandler.h>
> +#include <xen/llc-coloring.h>
> +#include <xen/param.h>
> +
> +#define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)
> +
> +static bool __ro_after_init llc_coloring_enabled;
> +boolean_param("llc-coloring", llc_coloring_enabled);
> +
> +static unsigned int __initdata llc_size;
> +size_param("llc-size", llc_size);
> +static unsigned int __initdata llc_nr_ways;
> +integer_param("llc-nr-ways", llc_nr_ways);
> +/* Number of colors available in the LLC */
> +static unsigned int __ro_after_init max_nr_colors;
> +
> +static void print_colors(const unsigned int *colors, unsigned int num_colors)

Just to mention it here as well (I mentioned it elsewhere in the past):
Personally I think that when function parameters denote array, array
notation would also better be used. I.e. "const unsigned int colors[]"
here. That'll then probably also bring us closer to using the upcoming
(in gcc) counted_by attribute.

> +void __init llc_coloring_init(void)
> +{
> +    unsigned int way_size;
> +
> +    if ( llc_size && llc_nr_ways )
> +    {
> +        llc_coloring_enabled = true;
> +        way_size = llc_size / llc_nr_ways;
> +    }
> +    else if ( !llc_coloring_enabled )
> +        return;
> +    else
> +    {
> +        way_size = get_llc_way_size();
> +        if ( !way_size )
> +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' missing\n");
> +    }
> +
> +    /*
> +     * The maximum number of colors must be a power of 2 in order to correctly
> +     * map them to bits of an address.
> +     */
> +    max_nr_colors = way_size >> PAGE_SHIFT;

This discards low bits of the quotient calculated above, bearing a certain
risk that ...

> +    if ( max_nr_colors & (max_nr_colors - 1) )
> +        panic("Number of LLC colors (%u) isn't a power of 2\n", max_nr_colors);

... this panic() wrongly doesn't trigger.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 15:52:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 15:52:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830432.1245424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Lqj-0005zM-D7; Tue, 05 Nov 2024 15:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830432.1245424; Tue, 05 Nov 2024 15: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 1t8Lqj-0005zF-AE; Tue, 05 Nov 2024 15:52:09 +0000
Received: by outflank-mailman (input) for mailman id 830432;
 Tue, 05 Nov 2024 15: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8Lqi-0005z9-AO
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:52:08 +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 e7cabe6a-9b8d-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 16:52:05 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-37d8901cb98so4230908f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 07:52: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-381c116ac7dsm16545978f8f.105.2024.11.05.07.52.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 07:52: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: e7cabe6a-9b8d-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU3Y2FiZTZhLTliOGQtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODIxOTI1LjYzMzU4Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730821925; x=1731426725; 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=Q5V6YiShfAlO5Mtb2kPexMqh/C5PT5wN308rnYqycMs=;
        b=UNgqlb8bqwpzzbNrGWXeVIu8DO4YSXqGA3fanMRLtz7EIgMiJqebguIItt81150iG0
         XheqH4sWR2c5GHh/lNY/JQ+iY+lx1fWbLJLqs0V+6yChWNLOyNoL2e4XDdmZspngkfQl
         1+lrooxlMPs8LB2Gq3dorkCgsVetgpveDjoIIF0oZcRwO1q0fAoAQKVd7VySX0NM+i9p
         eao6b9CI2triKVekRLJ6wnbQhftqhVRfjYseIldJELc8TKFaE6Xvmjd1018wclmxlGNL
         mgpDytkck06nGcV7bwAxFnRAFDXDFcBlN+27YKGIQi2f3CBAbmRuZ6TXsRJb/irSRQDR
         xTqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730821925; x=1731426725;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q5V6YiShfAlO5Mtb2kPexMqh/C5PT5wN308rnYqycMs=;
        b=DPnflDLDq2aqg6XTkkcVhxO4c/e3mcyg4lHoltONH1L+Y7DeHGniNnCfiGL5RXsJPG
         nJ434YsVtOKT8dpBIiK39jrutNXT0h0hKJGX11AFGytHlfI78izsDHwSlg3AEuWfva3+
         16ixEeleIgopvLuwxXwi7HsX8VYur8OfKI1tFgAv1TyEMWX4j0JZiuGNQlpvI5ZH6pOO
         4eZg1xQdSgDMsq3O6s0JGhPj3QTtIEfo002v6dWIMYlQowZOOZL8c5qLZVplvQe4lJLe
         gFoluw+S6GcWk3sirWyx13dlmY8tc56PEl2i15IUv20fcTbGouOIAeuHQAR3SAwXF+JM
         sLpA==
X-Forwarded-Encrypted: i=1; AJvYcCWv4hPrEIWnCXOwyoLNmhrfi1Ki5fkUgVXeO+gRuMIvkC5URtZ0yACzMGnDT8fRMUBXbpIg9AqmNPY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwdHBSoNnyQI5avqkn4TVk5cQ9VkJ4De9/SRj5Wt7MJtDCP2Ox3
	oCZexTy4ssLsDkWkZlb3kiyJIYKuAdH2u44XGQge2AoKlH++yCt9rmixAUhIfw==
X-Google-Smtp-Source: AGHT+IFcUuequf/MZ5+Maiyp0x42AEyr2HuWxjJeM8L/oJrA9hFRh00E5KtDNV9t1QImseaqg/Lytw==
X-Received: by 2002:a5d:59af:0:b0:37d:3b31:7a9d with SMTP id ffacd0b85a97d-381c79e3b6amr13261277f8f.23.1730821924897;
        Tue, 05 Nov 2024 07:52:04 -0800 (PST)
Message-ID: <93573119-f83a-4e2e-9e8e-16e3073d766b@suse.com>
Date: Tue, 5 Nov 2024 16:52:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 07/13] xen/arm: add support for cache coloring
 configuration via device-tree
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech,
 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>,
 Marco Solieri <marco.solieri@minervasys.tech>, xen-devel@lists.xenproject.org
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-8-carlo.nonato@minervasys.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: <20241025095014.42376-8-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.10.2024 11:50, Carlo Nonato wrote:
> Add the "llc-colors" Device Tree attribute to express DomUs and Dom0less
> color configurations.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>

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




From xen-devel-bounces@lists.xenproject.org Tue Nov 05 15:56:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 15:56:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830439.1245435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Lv9-0006oH-U2; Tue, 05 Nov 2024 15:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830439.1245435; Tue, 05 Nov 2024 15:56: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 1t8Lv9-0006oA-Qg; Tue, 05 Nov 2024 15:56:43 +0000
Received: by outflank-mailman (input) for mailman id 830439;
 Tue, 05 Nov 2024 15:56: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=APY9=SA=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1t8Lv8-0006gA-QO
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:56:42 +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 8b2315c4-9b8e-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 16:56:39 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4314f38d274so66630085e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 07:56:39 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb18140a6sm150564266b.195.2024.11.05.07.56.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 07:56: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: 8b2315c4-9b8e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhiMjMxNWM0LTliOGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODIyMTk5LjU5Mzk4Niwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730822199; x=1731426999; 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=bz3e7dP1KeYuebRZGkFKNHi29d8JijMB5urnbXUCkJg=;
        b=UcbaUJuOrtS3DkhBj65+AfpAxm39X2Ty46pGbyBJU4k21H3VPnVl3D7LVCUrMOOlwO
         s/EIT0yjQhkzbRylJg/Pvxf+9lRxW40vqwuga0WaJgofnjXy7wtCsTnbhAE5eYp0f3cy
         0rG8fBUQMhdUxL+GlElVM8Im+gJ3CCNAEluYs0EMjKPlMUtKyuFvsTwCSTJw2T2oQ+vj
         7yNFCMpKgb9tVawWl8q56UuH+R17wTIojnSmF6oSLcxa135Bmr7fuuBT20MpuwIHMz/o
         n1GNxs3sa7IN17bkMem76kryJ+NpU+RAyr9iogitsqi4BtbVS3cav/IiB20n+cZcJHd/
         sZIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730822199; x=1731426999;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=bz3e7dP1KeYuebRZGkFKNHi29d8JijMB5urnbXUCkJg=;
        b=EmoepkiiSIsmuePuzOuS3b0PLvJUNYsQSizReE6Zo5SXA2DI5Mj9M/9Q0RTln9RcD0
         MCe/j/sVAkYZnyKfeJ+PZj7UJsBJ9RL/erumEWDHfbzNSPFmNGEhAWkPWy+fk2PCifom
         4R+GO/2u4tB5B9VyaEG1GjE0cDWDfoDxhmE+c24SDN6GEjbNxailxX1JBP1gjgsCJecx
         BYGt/lk5vlgnFFXIy3ZIFvY5Wd73LB1L3U+C4/GfKo4IopNfmlYbOvtUiHEZ5uzHALQE
         9CaRNUHKY1XhwtLKMkLqQm9AxHUjwCJFSpIYs2pjcOvWptfmggaMY4njq8b99PnbtbYX
         O6gg==
X-Gm-Message-State: AOJu0Yziy28R13HFJusNQ5F9Ag7YgOXC6KtlkIcVSzMLSHkfxuwZCfD+
	sGovXNtllTfivmuz0WL3N2iak3bPmZGctwUVrzz6lcIsTiGqSr84JOLjTgAVozY=
X-Google-Smtp-Source: AGHT+IEScPUofJaERY2yiZU967o6GxVCJasBuDqbrT9wmPNg0fIR0y3JxAZ2piRjiLQoHXIs/cDqjQ==
X-Received: by 2002:adf:e199:0:b0:37d:4eeb:7370 with SMTP id ffacd0b85a97d-381c7ae14bdmr17673662f8f.56.1730822198751;
        Tue, 05 Nov 2024 07:56:38 -0800 (PST)
Message-ID: <79984ce2-98a2-42f4-85f8-fd53d71f10c7@suse.com>
Date: Tue, 5 Nov 2024 16:56:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Fix the issue of resource not being properly
 released in xenbus_dev_probe()
To: Qiu-ji Chen <chenqiuji666@gmail.com>, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, gregkh@linuxfoundation.org,
 sumit.garg@linaro.org, xin.wang2@amd.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 baijiaju1990@gmail.com, stable@vger.kernel.org
References: <20241105130919.4621-1-chenqiuji666@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: <20241105130919.4621-1-chenqiuji666@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------eTdyGz0k450u4KZEC4Cbyb0S"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------eTdyGz0k450u4KZEC4Cbyb0S
Content-Type: multipart/mixed; boundary="------------FTEVxyFrAV4twIPuT6CjSaEj";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Qiu-ji Chen <chenqiuji666@gmail.com>, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, gregkh@linuxfoundation.org,
 sumit.garg@linaro.org, xin.wang2@amd.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 baijiaju1990@gmail.com, stable@vger.kernel.org
Message-ID: <79984ce2-98a2-42f4-85f8-fd53d71f10c7@suse.com>
Subject: Re: [PATCH] xen: Fix the issue of resource not being properly
 released in xenbus_dev_probe()
References: <20241105130919.4621-1-chenqiuji666@gmail.com>
In-Reply-To: <20241105130919.4621-1-chenqiuji666@gmail.com>

--------------FTEVxyFrAV4twIPuT6CjSaEj
Content-Type: multipart/mixed; boundary="------------PI0x0UKMcbQZcGfSxIk646iX"

--------------PI0x0UKMcbQZcGfSxIk646iX
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMDUuMTEuMjQgMTQ6MDksIFFpdS1qaSBDaGVuIHdyb3RlOg0KPiBUaGlzIHBhdGNoIGZp
eGVzIGFuIGlzc3VlIGluIHRoZSBmdW5jdGlvbiB4ZW5idXNfZGV2X3Byb2JlKCkuIEluIHRo
ZQ0KPiB4ZW5idXNfZGV2X3Byb2JlKCkgZnVuY3Rpb24sIHdpdGhpbiB0aGUgaWYgKGVycikg
YnJhbmNoIGF0IGxpbmUgMzEzLCB0aGUNCj4gcHJvZ3JhbSBpbmNvcnJlY3RseSByZXR1cm5z
IGVyciBkaXJlY3RseSB3aXRob3V0IHJlbGVhc2luZyB0aGUgcmVzb3VyY2VzDQo+IGFsbG9j
YXRlZCBieSBlcnIgPSBkcnYtPnByb2JlKGRldiwgaWQpLiBBcyB0aGUgcmV0dXJuIHZhbHVl
IGlzIG5vbi16ZXJvLA0KPiB0aGUgdXBwZXIgbGF5ZXJzIGFzc3VtZSB0aGUgcHJvY2Vzc2lu
ZyBsb2dpYyBoYXMgZmFpbGVkLiBIb3dldmVyLCB0aGUgcHJvYmUNCj4gb3BlcmF0aW9uIHdh
cyBwZXJmb3JtZWQgZWFybGllciB3aXRob3V0IGEgY29ycmVzcG9uZGluZyByZW1vdmUgb3Bl
cmF0aW9uLg0KPiBTaW5jZSB0aGUgcHJvYmUgYWN0dWFsbHkgYWxsb2NhdGVzIHJlc291cmNl
cywgZmFpbGluZyB0byBwZXJmb3JtIHRoZSByZW1vdmUNCj4gb3BlcmF0aW9uIGNvdWxkIGxl
YWQgdG8gcHJvYmxlbXMuDQo+IA0KPiBUbyBmaXggdGhpcyBpc3N1ZSwgd2UgZm9sbG93ZWQg
dGhlIHJlc291cmNlIHJlbGVhc2UgbG9naWMgb2YgdGhlDQo+IHhlbmJ1c19kZXZfcmVtb3Zl
KCkgZnVuY3Rpb24gYnkgYWRkaW5nIGEgbmV3IGJsb2NrIGZhaWxfcmVtb3ZlIGJlZm9yZSB0
aGUNCj4gZmFpbF9wdXQgYmxvY2suIEFmdGVyIGVudGVyaW5nIHRoZSBicmFuY2ggaWYgKGVy
cikgYXQgbGluZSAzMTMsIHRoZQ0KPiBmdW5jdGlvbiB3aWxsIHVzZSBhIGdvdG8gc3RhdGVt
ZW50IHRvIGp1bXAgdG8gdGhlIGZhaWxfcmVtb3ZlIGJsb2NrLA0KPiBlbnN1cmluZyB0aGF0
IHRoZSBwcmV2aW91c2x5IGFjcXVpcmVkIHJlc291cmNlcyBhcmUgY29ycmVjdGx5IHJlbGVh
c2VkLA0KPiB0aHVzIHByZXZlbnRpbmcgdGhlIHJlZmVyZW5jZSBjb3VudCBsZWFrLg0KPiAN
Cj4gVGhpcyBidWcgd2FzIGlkZW50aWZpZWQgYnkgYW4gZXhwZXJpbWVudGFsIHN0YXRpYyBh
bmFseXNpcyB0b29sIGRldmVsb3BlZA0KPiBieSBvdXIgdGVhbS4gVGhlIHRvb2wgc3BlY2lh
bGl6ZXMgaW4gYW5hbHl6aW5nIHJlZmVyZW5jZSBjb3VudCBvcGVyYXRpb25zDQo+IGFuZCBk
ZXRlY3RpbmcgcG90ZW50aWFsIGlzc3VlcyB3aGVyZSByZXNvdXJjZXMgYXJlIG5vdCBwcm9w
ZXJseSBtYW5hZ2VkLg0KPiBJbiB0aGlzIGNhc2UsIHRoZSB0b29sIGZsYWdnZWQgdGhlIG1p
c3NpbmcgcmVsZWFzZSBvcGVyYXRpb24gYXMgYQ0KPiBwb3RlbnRpYWwgcHJvYmxlbSwgd2hp
Y2ggbGVkIHRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIHBhdGNoLg0KPiANCj4gRml4ZXM6
IDRiYWMwN2M5OTNkMCAoInhlbjogYWRkIHRoZSBYZW5idXMgc3lzZnMgYW5kIHZpcnR1YWwg
ZGV2aWNlIGhvdHBsdWcgZHJpdmVyIikNCj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcN
Cj4gU2lnbmVkLW9mZi1ieTogUWl1LWppIENoZW4gPGNoZW5xaXVqaTY2NkBnbWFpbC5jb20+
DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0K
SnVlcmdlbg0K
--------------PI0x0UKMcbQZcGfSxIk646iX
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-----

--------------PI0x0UKMcbQZcGfSxIk646iX--

--------------FTEVxyFrAV4twIPuT6CjSaEj--

--------------eTdyGz0k450u4KZEC4Cbyb0S
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/Ey8FAmcqQDUFAwAAAAAACgkQsN6d1ii/Ey98
oQf9G78mT3vg32/jkgPBfk3e87JtKYp0xwTMxC3WIEreRnKl5wfUPW4pOQqRyKj3NcoRy4hncQ5w
Ez3viiQAAEOUokVzlsqR8pyBjw2QN3SN+/A32jc4VoCADjfGaPaV/OvkfXiSCF51yP4EO8Pso+1y
h7p7EI+wG6Dh9iAEAf6AA6wj9rsuXvFIsdmJZEz8e3ObcUjAzyB96m7+JTm1lfuajvrrWu/HQJiU
2G3TBJtluqKgbXcVp82pXPmMMBP2BUJgYYMtLBdIsSM4WLn35AJH/HSPJ5GbxmoVRu4uRZutSsJD
JNGTUno81aAL1118XaOPfUW/EUC0bLqWOFAzkXZ9hA==
=PTAO
-----END PGP SIGNATURE-----

--------------eTdyGz0k450u4KZEC4Cbyb0S--


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 16:00:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 16:00:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830445.1245444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8LyI-0007wt-BH; Tue, 05 Nov 2024 15:59:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830445.1245444; Tue, 05 Nov 2024 15:59: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 1t8LyI-0007wm-86; Tue, 05 Nov 2024 15:59:58 +0000
Received: by outflank-mailman (input) for mailman id 830445;
 Tue, 05 Nov 2024 15:59: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8LyG-0007wg-Ni
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 15:59:56 +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 fe82cfea-9b8e-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 16:59:53 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-37d6ff1cbe1so4096256f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 07:59: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-381c10b7b80sm16759965f8f.10.2024.11.05.07.59.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 07:59: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: fe82cfea-9b8e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzIiLCJoZWxvIjoibWFpbC13cjEteDQzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZlODJjZmVhLTliOGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODIyMzkzLjE0OTgwMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730822392; x=1731427192; 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=/mbXfj13cF1EdqRtTfG9qdItJsDNSq8nsgZp6yXJmME=;
        b=TjAp6xzEN8vYmmvGIZmQfcysbq4QyHWPrp4FFqyZhSiPBV/xwPqIaOUxGtHmP+8CTu
         JyIFEmA+J9D0J+QE9H/dXt+YQkIwaWaKv/HwebybC7QMUD1DYGCvrX9A5KQc4Q/jSmnO
         BhMtMGFGliidcDMM7M+f6wwQdRTlcHGODww1BHXZGDisG1rPo89TeDGpmwLoMzQTLwCm
         BA4iyajIxMISeXL9yMuBffby1rMFhvWJtcc1WkwrdIKOnhmkq0vx7zyida3pv81w/Ucy
         mV5ztYn2cIqU15cY/0nyhTfWloXbrHeB3/Cun1TiodeIiAd6HW3gr6dg4ayi4xDAkF9e
         mTuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730822392; x=1731427192;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/mbXfj13cF1EdqRtTfG9qdItJsDNSq8nsgZp6yXJmME=;
        b=KcRxfY6QaBlBAq40NB3YibHrC9EHyQ06Rsr0sZ/jodvtVkW8vxDLFF2DRNmpm5Wvkt
         CMpH6Txt5QeWuFe1i07UsKvFh0ZaPQPJhKwI5pslfXTcEwb0Ha0J6CJiQQa/qEb//oKk
         TviMkuFC/zafh4pBHMEV0FT2mc/lJH3sfhxG6KnjVi7RNEuL2udnX1fXXQuEmgIshpBh
         NYsM0K7NHzTx/G0kLPwK+WqrpipTu+eyj4nhPhEcO1vZBVYCrwTgQhEqJrWMe8zLYLky
         WVsZGMpxugweQ3WCQMezgrtxHuMhvYshEujBiMU9JklX/zM6UYcRCceEDu4cQE4bIcoA
         UTew==
X-Forwarded-Encrypted: i=1; AJvYcCVYuAL01/wMrOZlKFTQMQpE/wSLIGwsBnF8rk5nEEsFYTYsdLb/dPxRuzbqW1tldbtiezVUkz3n9n0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwSBFg5fuJ4haQMdWojuC7wZSEo5JKws8ptkKu2f/iNkg4v4a0Q
	TmHHHdnNrUx7ruuZDvYFin+BQkcoA1CP9MiH9ew4I4YD8fmgHPkUhfPEZJIzqA==
X-Google-Smtp-Source: AGHT+IGVZ2UJqrCTAmb+vM4uv0yJVjtycthEJ4b81KIGawOayfX5nKUm32Sr0txuTeCyzCVq1vfOUQ==
X-Received: by 2002:a05:6000:18a5:b0:369:9358:4634 with SMTP id ffacd0b85a97d-381be7c80a7mr19221837f8f.19.1730822392427;
        Tue, 05 Nov 2024 07:59:52 -0800 (PST)
Message-ID: <f86f611a-4f18-4847-8f21-c6ef20cd6b6c@suse.com>
Date: Tue, 5 Nov 2024 16:59:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 08/13] xen/page_alloc: introduce preserved page flags
 macro
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-9-carlo.nonato@minervasys.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: <20241025095014.42376-9-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.10.2024 11:50, Carlo Nonato wrote:
> PGC_static and PGC_extra needs to be preserved when assigning a page.
> Define a new macro that groups those flags and use it instead of or'ing
> every time.
> 
> To make preserved flags even more meaningful, they are kept also when
> switching state in mark_page_free().
> Enforce the removal of PGC_extra before freeing new pages as this is
> considered an error and can cause ASSERT violations.

What does "new" here mean?

> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> ---
> v9:
> - add PGC_broken to PGC_preserved

Which then also wants reflecting in the description.

> @@ -2485,6 +2485,14 @@ struct page_info *alloc_domheap_pages(
>          }
>          if ( assign_page(pg, order, d, memflags) )
>          {
> +            if ( memflags & MEMF_no_refcount )
> +            {
> +                unsigned long i;
> +
> +                for ( i = 0; i < (1UL << order); i++ )
> +                    pg[i].count_info &= ~PGC_extra;
> +            }

The description doesn't cover this, only ...

> @@ -2539,6 +2547,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
>                  {
>                      ASSERT(d->extra_pages);
>                      d->extra_pages--;
> +                    pg[i].count_info &= ~PGC_extra;
>                  }
>              }

... this is mentioned there. And it's not clear to me why it would need doing
in both places.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 16:11:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 16:11:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830453.1245455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8M9K-0003M6-Ar; Tue, 05 Nov 2024 16:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830453.1245455; Tue, 05 Nov 2024 16:11: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 1t8M9K-0003Lz-78; Tue, 05 Nov 2024 16:11:22 +0000
Received: by outflank-mailman (input) for mailman id 830453;
 Tue, 05 Nov 2024 16:11: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8M9J-0003Lt-Oc
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 16:11:21 +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 969d6e2b-9b90-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 17:11:18 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3807dd08cfcso4764125f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 08:11: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-381c10b7d2bsm16562852f8f.16.2024.11.05.08.11.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 08:11: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: 969d6e2b-9b90-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2OWQ2ZTJiLTliOTAtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODIzMDc4LjMzOTY2MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730823077; x=1731427877; 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=7dDsZTdwLNXN9sK7w64+EFMk90/IQssB/kItDBouGE8=;
        b=Ybr7hhBGWWPSe6GjwYy5D71LKTKdKYF17iVLWPAdd5IEhvSWxoM5ef6p9GOnaxLjQd
         8iakog5UKY22y5qKmbYjydJc6tSDwaWOB7kDcUkFWoC5S19i5dctO2Y475nTccR/rzV4
         jN6v8KO5njAxrF1177elSzaOM06t3ibJ9Qm1Duie9XGYHRZjVw5CwwlXRF5fF1MJFVvx
         Ejtfx8/vWarjwjAdmp3peBsOd9k82SKnpWLwW1VU36WqCOvYccQ93ZjNTlB9SFh268UP
         wfnAF+AXXjhOxtOg5cxSc2n6rjicD6qoSQpPBs10zDJIAKduSnZdyrjCPLUpjUxBno5Z
         YULA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730823077; x=1731427877;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7dDsZTdwLNXN9sK7w64+EFMk90/IQssB/kItDBouGE8=;
        b=Stw7gNJgSw0q80hQIx+yEVcY5TvDe85SppMbYMpxpwv7l8L3QlFksuvi1b9RDXm4iq
         Ax79+Fo+bxPfxsUaBfRLv1CXLwKjXRwAwY8SCFmlBk2Kx2WwxFejUpNBWvL+CIif/YOi
         NNtzsYwTZJzhhViHFqRxgk66gRKahWajNZelGVYij8/kpQ0WNi0iGc7ROKNAoFhlNLSP
         XdCrTgP80Z4mSyaLbXdlvfZjjJqFaO7v7JK6HHo1ZYhB6qsazeGlAvM+d+mc3yRYPjdn
         uPc3Go6ixxf991h0dozJlm0NOC6SOi4I359OPdGSyARIrgVrPKSnwKGqN8akC7SV62tK
         2SUg==
X-Forwarded-Encrypted: i=1; AJvYcCU0pTTDq2WB7IwsEryjyGQuqH4WCoK3FWP+MPUvyJvwQugFBCw/Gc9ekB0F4bFE0G9vmP/gF8jrryw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1eejHZdBC6itVEnpVVGoRKAuiUPKBrpqwDfKbSSjgkCNxH0Kd
	8qV2MeuJVhDDmwItWf/iIlp0WZiQSXLy51gazgY4b12nXRogFAcyfdUqRnK/Iw==
X-Google-Smtp-Source: AGHT+IE0XplQRd+P4IfMFg/eN9Rek4zC/Ie6f3dkRtddD7kPbZnaQ9LZihiUgpw6j+y46jNPKxulFg==
X-Received: by 2002:a5d:64cb:0:b0:37d:51b7:5e08 with SMTP id ffacd0b85a97d-381c7a5ce0bmr15081500f8f.18.1730823077089;
        Tue, 05 Nov 2024 08:11:17 -0800 (PST)
Message-ID: <f14094fb-1312-42aa-b903-06f140c485b5@suse.com>
Date: Tue, 5 Nov 2024 17:11:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 09/13] xen: add cache coloring allocator for domains
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper
 <andrew.cooper3@citrix.com>, 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>,
 Marco Solieri <marco.solieri@minervasys.tech>, xen-devel@lists.xenproject.org
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-10-carlo.nonato@minervasys.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: <20241025095014.42376-10-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.10.2024 11:50, Carlo Nonato wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -270,6 +270,20 @@ and not running softirqs. Reduce this if softirqs are not being run frequently
>  enough. Setting this to a high value may cause boot failure, particularly if
>  the NMI watchdog is also enabled.
>  
> +### buddy-alloc-size (arm64)
> +> `= <size>`
> +
> +> Default: `64M`
> +
> +Amount of memory reserved for the buddy allocator when colored allocator is
> +active. This options is available only when LLC coloring support is enabled.
> +The colored allocator is meant as an alternative to the buddy allocator,
> +because its allocation policy is by definition incompatible with the generic
> +one. Since the Xen heap systems is not colored yet, we need to support the
> +coexistence of the two allocators for now. This parameter, which is optional
> +and for expert only, it's used to set the amount of memory reserved to the
> +buddy allocator.

Like for the options in patch 1, here I think you also want to make explicit
the dependency on CONFIG_LLC_COLORING.

> @@ -1945,6 +1960,155 @@ static unsigned long avail_heap_pages(
>      return free_pages;
>  }
>  
> +/*************************
> + * COLORED SIDE-ALLOCATOR
> + *
> + * Pages are grouped by LLC color in lists which are globally referred to as the
> + * color heap. Lists are populated in end_boot_allocator().
> + * After initialization there will be N lists where N is the number of
> + * available colors on the platform.
> + */
> +static struct page_list_head *__ro_after_init _color_heap;
> +#define color_heap(color) (&_color_heap[color])
> +
> +static unsigned long *__ro_after_init free_colored_pages;
> +
> +static unsigned long __initdata buddy_alloc_size =
> +    MB(CONFIG_BUDDY_ALLOCATOR_SIZE);
> +size_param("buddy-alloc-size", buddy_alloc_size);
> +
> +/* Memory required for buddy allocator to work with colored one */
> +#ifdef CONFIG_LLC_COLORING
> +#define domain_num_llc_colors(d) (d)->num_llc_colors
> +#define domain_llc_color(d, i)   (d)->llc_colors[i]

I'm uncertain whether Misra would insist on an outer pair of parentheses for
both of these.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 16:35:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 16:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830464.1245465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8MWn-0007IN-8c; Tue, 05 Nov 2024 16:35:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830464.1245465; Tue, 05 Nov 2024 16:35: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 1t8MWn-0007IG-5r; Tue, 05 Nov 2024 16:35:37 +0000
Received: by outflank-mailman (input) for mailman id 830464;
 Tue, 05 Nov 2024 16:35: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=Yqe/=SA=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8MWl-0007IA-W4
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 16:35:36 +0000
Received: from mail-oo1-xc2a.google.com (mail-oo1-xc2a.google.com
 [2607:f8b0:4864:20::c2a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f97b7378-9b93-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 17:35:32 +0100 (CET)
Received: by mail-oo1-xc2a.google.com with SMTP id
 006d021491bc7-5ebc52deca0so2815225eaf.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 08:35: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: f97b7378-9b93-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMmEiLCJoZWxvIjoibWFpbC1vbzEteGMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY5N2I3Mzc4LTliOTMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODI0NTMyLjgwMzAxMiwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730824531; x=1731429331; 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=DHSNsItkeMc9V33qT9vmmS+NKC98iXsj1rhTVxg4nyU=;
        b=BqDk2+sgNn6ZtLNu8qrsZgbvJWGue0DNm3NqCBwNEVoOcBuRs7dmLF+blSXz0GLs4m
         V/r1IOYxUfcbJkiR0fK73nPD7PN5LaCOnhmmfy2c+ud7+kn0tMWIIryZjgtG6W12KhoT
         NaqZYEIfhu+A681OTF0NVqivwZSDyYB+XdNMs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730824531; x=1731429331;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DHSNsItkeMc9V33qT9vmmS+NKC98iXsj1rhTVxg4nyU=;
        b=LwrUBLB5YV3MFuzgWDryNUG1TU7/UI3IwVmeSrxmGYcQCZr8F/NPVQDa/8567P6HU8
         gIkzphUiLh/Dwy4GBlwlD9nie2fNBfDZNkqJPt9RkPYxqvSeIewcZ2q26wLPT+S5MHLc
         6yStl4vp3YgZ1niWlbxWYaYJtFVyq6jTrsGTQ9xjUH0BfSLixGZ/lmytdRa0uze6vqWo
         OIQ9em1+hQ9HWLrNSRLQprPMazYPwvEDQAfuYT1Pfl3P/SkSyIy21M3OqSAxKCvEEqlG
         FP6/oKYHm5fhDoKDzyHdwZnneTCmaTdrjV8/lCn3LWb9PjyNpX9BrDHqTiTbt5ZGG+O7
         IxIQ==
X-Forwarded-Encrypted: i=1; AJvYcCWu9ndGtT4VVuO3bButLkl+Ng8YBDcBunzHNFAYBKCv0V1NY6D9PJCgAZqoSANUZ0SSeuPo081zUNQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2HldKdaNnBIqAiJc/ve7xotEiXjOcEcDpBmIs50jYKiI0WFLH
	03dAMw8O0fofMYQCiaOMAoo/36SBmDK6dPFUrP6bKULbUrnbphc1uZJKozoLqjj6ujfKSYyXnJ+
	G16pTnK/ghyFrlXDIpJE69004DkSl1TWR4GoYFA==
X-Google-Smtp-Source: AGHT+IFzj1yK6Fr2cdeTmtxrvPoJA7VJgDkOW/Co3LOMTxBvY7w2hcel8FF69xRDeP3sQ6CDQdxaV8qnbLjGbKBDKPo=
X-Received: by 2002:a05:6820:1b81:b0:5e5:c517:4d88 with SMTP id
 006d021491bc7-5ede61a15dcmr9755086eaf.0.1730824531427; Tue, 05 Nov 2024
 08:35:31 -0800 (PST)
MIME-Version: 1.0
References: <20241105145507.613981-1-frediano.ziglio@cloud.com> <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
In-Reply-To: <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Tue, 5 Nov 2024 16:35:20 +0000
Message-ID: <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
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>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 5, 2024 at 3:32=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 05.11.2024 15:55, Frediano Ziglio wrote:
> > This toolchain generates different object and map files.
> > Account for these changes.
>
> At least briefly mentioning what exactly the differences are would be
> quite nice, imo.
>

What about.

Object have 3 additional sections which must be handled by the linker scrip=
t.
Map file has 7 columns: VMA, LMA, size, alignment, output section,
definition, symbols, for our symbols output section and definition are
empty.

> > --- a/xen/tools/combine_two_binaries.py
> > +++ b/xen/tools/combine_two_binaries.py
> > @@ -67,13 +67,22 @@ if args.exports is not None:
> >
> >  # Parse mapfile, look for ther symbols we want to export.
> >  if args.mapfile is not None:
> > -    symbol_re =3D re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
> > +    symbol_re_clang =3D \
>
> Is "clang" really appropriate to use here? Even without the alternative
> being named "gnu", I'd expect "llvm" to be more to the point, as at
> the linking stage the original language (encoded in "clang") shouldn't
> matter much anymore.
>

I'll change to "llvm".

> > +        re.compile(r'\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-=
9a-f]+)\s{15,}(\S+)\n')
>
> Just wondering:
> - How stable is their map file format?

No idea, unfortunately, map files are not really standard.

> - Do they not have an option to write GNU-compatible map files?

I try to search, but I could not find such an option.

> - Why do you declare 5 groups, when you're only after the 1st and last,
> which would then allow to ...
>
> > +    symbol_re_gnu =3D re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
> >      for line in open(args.mapfile):
> > -        m =3D symbol_re.match(line)
> > -        if not m or m.group(2) not in exports:
> > +        name =3D None
> > +        m =3D symbol_re_clang.match(line)
> > +        if m:
> > +            name =3D m.group(5)
> > +        else:
> > +            m =3D symbol_re_gnu.match(line)
> > +            if m:
> > +                name =3D m.group(2)
>
> ... uniformly use m.group(2) here (outside of the conditional)?
>

It could be done. The initial idea was testing that VMA and LMA fields
should be identical, which gives a bit more certainty about the format
used.
About map file format, both formats have some headers. Would it be
sensible to detect such headers? BTW, probably a mis-detection would
cause symbols not to be detected.

> Jan
>
> > +        if name is None or name not in exports:
> >              continue
> >          addr =3D int(m.group(1), 16)
> > -        exports[m.group(2)] =3D addr
> > +        exports[name] =3D addr
> >  for (name, addr) in exports.items():
> >      if addr is None:
> >          raise Exception("Required export symbols %s not found" % name)
>

Frediano


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 17:06:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 17:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830471.1245475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8N0i-0003zK-Gz; Tue, 05 Nov 2024 17:06:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830471.1245475; Tue, 05 Nov 2024 17:06: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 1t8N0i-0003zD-ET; Tue, 05 Nov 2024 17:06:32 +0000
Received: by outflank-mailman (input) for mailman id 830471;
 Tue, 05 Nov 2024 17:06: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=NqUC=SA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8N0h-0003z7-9M
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 17:06:31 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b3321a0-9b98-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 18:06:27 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-539f4d8ef66so7137373e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 09:06: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-381c116abdasm16896232f8f.97.2024.11.05.09.06.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 09:06: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: 4b3321a0-9b98-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmYiLCJoZWxvIjoibWFpbC1sZjEteDEyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRiMzMyMWEwLTliOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODI2Mzg3LjIzMzE2LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730826386; x=1731431186; 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=kIqsCuObXplFO/YegFmzAI7Mt4dx/tAI9qcu+Dkzj6Y=;
        b=LjVext//FBvAlYORUjQ5F9oVQBF3OKkp5yHLl9uLpZhso0z8Vfh1PigDx6fnC2IYeC
         9Qq1X7THhmJKtVLjFp4Yj37FLKgcMKh7q8Z79pZMRT3SUwYIZ5YKT6BTigXvEAAI5h3b
         nLgxW3EinOxYvj0EWWH3yCKNaNwNHCIAIJ9x2XtNfwrfcWWxk09vfJUDK8AlUtWV2LEm
         qL2Krnl8nZMiFY04W9/oCFC6+bHIc2BlXJkwqbsXJ6n14eLT74vSbvcPtdSCmi6NKRqr
         jUjGJpguR+a0qTfz0Mn3XatdtR4EIJCiGxAxPFRrJm/+Oey/cwEu2Oc9SPWT/Xngf5Ln
         t8Xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730826386; x=1731431186;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kIqsCuObXplFO/YegFmzAI7Mt4dx/tAI9qcu+Dkzj6Y=;
        b=d+VCo5GbTbtTb1XoOAoXkXuRtwxdRfjzxJ6sgyVi3yML0+mIAh5mM359aj3R0wufOL
         iYoAu5itUcWH9HNy2/pMYXjhlLFR/rPczbe4BibyRps3k1HsKzWAxfYj15WmbFm3Cdva
         C5VFms19ROzhivFyA59gJ99P4/1ZDl/ZScPD9x2HzwpzAlXjRJ9MOhI2nSMV/S8e5VMA
         +pvbghmxkplk9nggSZHBXZ0mRR+Ti/jX0asiBJrcnvvB91bKwORI+XqrtLZ2R65ZKCpD
         3L9N5iAX6J7odf0BZZxZrRt6Lw7kZCzrIUi3N0bvnD7QUI75DFpKfQ/KrsyhRB2j3tTJ
         VM2g==
X-Forwarded-Encrypted: i=1; AJvYcCUXf9IgjCfRAsMEiONJXUQIFEPI87Y/NXIvShB+LmHWIaE+X/6qEAvbW+03ER2gkU2KQW1/EqowTNc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzyFDF+GCUDCfBP5b/ILQxzAzVynS1ddd4hMw6hqtaQZYZsrux
	N9RTBp7JE/PIiKf1uYFJurVxMlqtdFv+wYGLcWnT+7qdak+g/MaMWi1bvJryMg==
X-Google-Smtp-Source: AGHT+IGY5R667mk7y5zv27mFFjLJg6XksT1fYo23iGH7Xk+WPmE/NnbvMglcDCiVG0XgqPmZPVl9dA==
X-Received: by 2002:a05:6512:3b27:b0:539:de9c:c890 with SMTP id 2adb3069b0e04-53b34c5f9b5mr17421837e87.42.1730826386433;
        Tue, 05 Nov 2024 09:06:26 -0800 (PST)
Message-ID: <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com>
Date: Tue, 5 Nov 2024 18:06:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
 <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@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: <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.11.2024 17:35, Frediano Ziglio wrote:
> On Tue, Nov 5, 2024 at 3:32â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.11.2024 15:55, Frediano Ziglio wrote:
>>> This toolchain generates different object and map files.
>>> Account for these changes.
>>
>> At least briefly mentioning what exactly the differences are would be
>> quite nice, imo.
>>
> 
> What about.
> 
> Object have 3 additional sections which must be handled by the linker script.

I expect these sections are there in both cases. The difference, I assume,
is that for the GNU linker they don't need mentioning in the linker script.
Maybe that's what you mean to say, but to me at least the sentence can also
be interpreted differently.

>>> +    symbol_re_gnu = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
>>>      for line in open(args.mapfile):
>>> -        m = symbol_re.match(line)
>>> -        if not m or m.group(2) not in exports:
>>> +        name = None
>>> +        m = symbol_re_clang.match(line)
>>> +        if m:
>>> +            name = m.group(5)
>>> +        else:
>>> +            m = symbol_re_gnu.match(line)
>>> +            if m:
>>> +                name = m.group(2)
>>
>> ... uniformly use m.group(2) here (outside of the conditional)?
>>
> 
> It could be done. The initial idea was testing that VMA and LMA fields
> should be identical, which gives a bit more certainty about the format
> used.
> About map file format, both formats have some headers. Would it be
> sensible to detect such headers? BTW, probably a mis-detection would
> cause symbols not to be detected.

Not sure either way, to be honest.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 19:24:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 19:24:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830487.1245484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8P9w-0006a8-QV; Tue, 05 Nov 2024 19:24:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830487.1245484; Tue, 05 Nov 2024 19:24: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 1t8P9w-0006a1-Nn; Tue, 05 Nov 2024 19:24:12 +0000
Received: by outflank-mailman (input) for mailman id 830487;
 Tue, 05 Nov 2024 19:24: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=lM+p=SA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8P9v-0006Zu-73
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 19:24:11 +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 74a8a838-9bab-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 20:23:37 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5ceb75f9631so6113087a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 11:23:37 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6ac2995sm1673422a12.50.2024.11.05.11.23.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 11:23: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: 74a8a838-9bab-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc0YThhODM4LTliYWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODM0NjE3LjI4Mzk0Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730834617; x=1731439417; 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=96F0JaD9VZMbzS013WBIHevjhSrZ/GfnGru7KzUez3U=;
        b=OOpP1jyz/wE7jSVeKHylMOp/VwVf7r4TPXepawcUlckD1Y9j5MfEpkBrla/oPmk21M
         PdNf7IMR2XyHRcOHWQVzqfdoTcLaWTU8kU4M/7n/pKTGjhWpKWD1k6uEn0w9/qivmc3F
         xL+oKSSD6xS+WXvCq8NxEMxmslo8xvW4EcMsI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730834617; x=1731439417;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=96F0JaD9VZMbzS013WBIHevjhSrZ/GfnGru7KzUez3U=;
        b=YRD5GWRRoEAcNPV4BFvy+mPnyc2ftSGfbUHKS9xRLbquLGg8MSDFeiOJTaymxA813V
         voBvmhOV5T9ls1zE/g+koZugcbfwt7DS8QqnjuObTqP08abnyzHS2eS5NKVfAF+DXeFH
         AOyEJHd9hFjtnW46CxBtN9HWjB1EvmDVEnDkHEH52X2VUvF1Ymohql5wFIvbFZKepCtX
         S0ioBomcDBjbVI3cMjMjAynCPLw/U6N7k+LnzSgcIh9Pufikxt7Un+WZkD9MWSijX2TN
         7O1QER2e1qB7iDEWGslQO3bqom4g8ALwg5Nh9yu0OGg0eXX8A6U7MkkMWGSEs1p4cz4X
         SEMg==
X-Forwarded-Encrypted: i=1; AJvYcCXwpm9wSGpcdwERDALvwvELqNzyvCqTHEr7kZ7PcBZ8d28TG3b4QJKKhIz4cyMWgxwXE/fIcijPm/w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKam6WxM/qB73pBPom5HSTHxEqbbPcsqIhLyIXEDzotcAc/85c
	2aZL4VEEF4WLRPXqHQJ43vi9YtXZg9E+BZCkzA6c7lSz69/bURFigTRO2dt4rUELzHUgNia/0wq
	k
X-Google-Smtp-Source: AGHT+IGe7tVfgVepUhmCPXAiHRyCFH6OAlm2Gemw2/3cQtHeK6RJoNg9Fi2sAAzFySyGHJQ9DnmHUQ==
X-Received: by 2002:a05:6402:1d38:b0:5ce:df0c:9a5 with SMTP id 4fb4d7f45d1cf-5cedf0c0a26mr4250414a12.15.1730834616604;
        Tue, 05 Nov 2024 11:23:36 -0800 (PST)
Message-ID: <89022703-f814-4d81-87ec-5651f5e950c4@citrix.com>
Date: Tue, 5 Nov 2024 19:23:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241105145507.613981-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/11/2024 2:55 pm, Frediano Ziglio wrote:
> diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_binaries.py
> index 447c0d3bdb..79ae8900b1 100755
> --- a/xen/tools/combine_two_binaries.py
> +++ b/xen/tools/combine_two_binaries.py
> @@ -67,13 +67,22 @@ if args.exports is not None:
>  
>  # Parse mapfile, look for ther symbols we want to export.
>  if args.mapfile is not None:
> -    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
> +    symbol_re_clang = \
> +        re.compile(r'\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s{15,}(\S+)\n')
> +    symbol_re_gnu = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')

These are specific to the linker, not the compiler, so really should be
_ld and _lld rather than _gnu and _clang.

The build environment does have CONFIG_LD_IS_GNU which is used for one
LD vs LLD distinction.Â  It seems reasonable to re-use it here (so you're
not trying both regexes in the hope that one works), although you'll
need to plumb it into the script somehow because it's not exported into
the environment currently.


But, regexes are utterly opaque, and given that neither Binutils nor
LLVM document their map format, you really need to provide at least one
example of what a relevant mapfile looks like in a comment.

Looking at built-in-32.offset.map in it's gnu form, it's presumably
looking for the lines that are just a hex address and a name with no
other punctuation.

But the lld form is clearly different.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 20:20:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 20:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830494.1245494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8Q1r-0005Mm-Nq; Tue, 05 Nov 2024 20:19:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830494.1245494; Tue, 05 Nov 2024 20: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 1t8Q1r-0005Mf-LA; Tue, 05 Nov 2024 20:19:55 +0000
Received: by outflank-mailman (input) for mailman id 830494;
 Tue, 05 Nov 2024 20:19: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=lM+p=SA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8Q1q-0005MZ-8p
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 20:19:54 +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 4d400f1e-9bb3-11ef-a0c5-8be0dac302b0;
 Tue, 05 Nov 2024 21:19:47 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5ceccffadfdso3980794a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 12:19:47 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a05c0sm178482066b.39.2024.11.05.12.19.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 12:19: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: 4d400f1e-9bb3-11ef-a0c5-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkNDAwZjFlLTliYjMtMTFlZi1hMGM1LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODM3OTg3LjE3ODY1OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730837986; x=1731442786; 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=ivy6bbNy3nASRHK4MddEiT+M78nTiIEyXRAR+yxmMdA=;
        b=lrYJ696X2AhWaZB6JCZL05Qvh2sQ8r+kluqjckninL9tEWqhgJn1oNNewlbLcDC1BG
         OoP5UXthjmNxnnRFB2izRMct4hFylR29G0gYQrS0aBj2ljEFX/Z4yXfRQEfnzsuNBp82
         2J7w+dASbz/NfKF4YIJcL2cy4mDLjf6tXFlfY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730837986; x=1731442786;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ivy6bbNy3nASRHK4MddEiT+M78nTiIEyXRAR+yxmMdA=;
        b=U565YpOnQGfk7w9G+9ZPCEYwhXniOz2VE74MSwW5V7tOPtznYS7oJ77rSz8A06zkxc
         f4jHpdzJChm/A508FJzEPvZ5Z5ja11y/JWNDRYInudhU8hmRT+0rZFmpMMPs2DxjADQC
         +d/iDM4qMmvN2/HqyF15R0MtAOShCHdQSd+ogmntL84nzy/LiD6Y/4QZdnFWf0eFTgUB
         DOYMS8YDOkL6e9Nsb0ulZCZyHV0OkeDPZT4TMSMgCExI+M8qWbFhsmDe5QLWSeY0U32J
         vJ53qoglNK43ADg0EpI8H1dSeH3EKwCuRHrC6OkLhYXI+U/QtG5mgMXc8MUcg6/VQsSQ
         q9Tw==
X-Forwarded-Encrypted: i=1; AJvYcCVMMs7TMHfqcc86/HpXDBHxZ9WFJW4lGexa76xr4DRftC+Ub8xWaXclLwlXZbbJmJLFFRI9yywRMQg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxiC8S1W2muWjud1owHWTCqSNha3GkQ0O2zDuUY6r59hsOoWjq2
	DenbG7N8Dm859SHUq1HTSAGVtwSyM0Jpa3lYz6OXrvM4qxKSAVHxq3XRv9ApJfU=
X-Google-Smtp-Source: AGHT+IFG3UvbWgz670F73znkGpgc8yn5v7W6dLEImDXC+vjvee8owWPRAp5QBcV/4wsPqbhprAcj2Q==
X-Received: by 2002:a17:906:561a:b0:a9e:8522:ba01 with SMTP id a640c23a62f3a-a9e8522ba90mr963577866b.39.1730837986465;
        Tue, 05 Nov 2024 12:19:46 -0800 (PST)
Message-ID: <79c4a42d-9edf-4237-986c-de73b279f134@citrix.com>
Date: Tue, 5 Nov 2024 20:19:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/libxl: remove usage of VLA arrays
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
 Juergen Gross <jgross@suse.com>
References: <20241028114831.27487-1-roger.pau@citrix.com>
 <3828ba9f-9bc8-4b65-a42f-b67ef061be52@citrix.com> <Zyo0M08gb5yhBiJF@l14>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Zyo0M08gb5yhBiJF@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/11/2024 3:05 pm, Anthony PERARD wrote:
> On Mon, Oct 28, 2024 at 12:03:59PM +0000, Andrew Cooper wrote:
>> On 28/10/2024 11:48 am, Roger Pau Monne wrote:
>>> Clang 19 complains with the following error when building libxl:
>>>
>>> libxl_utils.c:48:15: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant]
>>>    48 |     char path[strlen("/local/domain") + 12];
>>>       |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>
>>> Replace the usage of strlen() with ARRAY_SIZE(), which allows the literal
>>> string length to be known at build time.  Note ARRAY_SIZE() accounts for the
>>> NUL terminator while strlen() didn't, hence subtract 1 from the total size
>>> calculation.
>>>
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> ---
>>>  tools/libs/light/libxl_utils.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_utils.c
>>> index 10398a6c8611..b3f5e751cc3f 100644
>>> --- a/tools/libs/light/libxl_utils.c
>>> +++ b/tools/libs/light/libxl_utils.c
>>> @@ -45,7 +45,7 @@ unsigned long libxl_get_required_shadow_memory(unsigned long maxmem_kb, unsigned
>>>  char *libxl_domid_to_name(libxl_ctx *ctx, uint32_t domid)
>>>  {
>>>      unsigned int len;
>>> -    char path[strlen("/local/domain") + 12];
>>> +    char path[ARRAY_SIZE("/local/domain") + 11];
>>>      char *s;
>>>  
>>>      snprintf(path, sizeof(path), "/local/domain/%d/name", domid);
>>> @@ -141,7 +141,7 @@ int libxl_cpupool_qualifier_to_cpupoolid(libxl_ctx *ctx, const char *p,
>>>  char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid)
>>>  {
>>>      unsigned int len;
>>> -    char path[strlen("/local/pool") + 12];
>>> +    char path[ARRAY_SIZE("/local/pool") + 11];
>>>      char *s;
>>>  
>>>      snprintf(path, sizeof(path), "/local/pool/%d/name", poolid);
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> Although I have a minor preference for sizeof() as suggested by Frediano.
> I have a preference for sizeof() too, we even used it this way (more or
> less) in libxl before, for `eom` here:
>     https://elixir.bootlin.com/xen/v4.19.0/source/tools/libs/light/libxl_qmp.c#L1608
>
> I was a bit supprised by the use of ARRAY_SIZE on a string literal but
> it's just an array of char :-).
>
> For the patch, with sizeof() or ARRAY_SIZE():
> Acked-by: Anthony PERARD <anthony.perard@vates.tech>

That's 3 for sizeof(), one ambivalent, and one for ARRAY_SIZE(), with
the maintainer (who gets the majority say) already in the largest group
already.

I've adjusted and committed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 20:46:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 20:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830505.1245509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8QRM-0001IK-Sr; Tue, 05 Nov 2024 20:46:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830505.1245509; Tue, 05 Nov 2024 20:46: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 1t8QRM-0001ID-Pf; Tue, 05 Nov 2024 20:46:16 +0000
Received: by outflank-mailman (input) for mailman id 830505;
 Tue, 05 Nov 2024 20:46: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=lM+p=SA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8QRL-0001I7-E3
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 20:46:15 +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 fade352a-9bb6-11ef-99a3-01e77a169b0f;
 Tue, 05 Nov 2024 21:46:06 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so785429866b.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 12:46:06 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a05c0sm180824566b.39.2024.11.05.12.46.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 12: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: fade352a-9bb6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZhZGUzNTJhLTliYjYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODM5NTY2Ljg4MzE1NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730839566; x=1731444366; 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=BjzLvyyfWPt8J94N1uA3Deo+wtE5Q6Dt5/FQhotzX+Q=;
        b=QX/Rd9hJBCFUgj7PuNjNxy1aC3RGkQCpeays1zhuq0VhVDViwLvCeF3wEMhtR5lwYn
         4xkOijKLjEs7wlMyRLxMXOoSCkTWfMel+xHqXBDxOIa52PODdTOk/Z41aRENgGTaI9wJ
         q6HZ535xCCGqQ/LorVv1opjJRG7+SpgJgCMhE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730839566; x=1731444366;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BjzLvyyfWPt8J94N1uA3Deo+wtE5Q6Dt5/FQhotzX+Q=;
        b=PVC7XmQWcMmagvd5lp3UnmOOW8n+U9A/wxfk07B8vbc+4eLC4WJ1ArpBRzos0J3j3N
         zWY1Ip6834QQ3q6BbWWNCitd7yz8900QL9fAKZGf+LhOtqmxL4vXiRJ6/+MbQnZ+HSYR
         5Kh8lsw654albTESSgkp37+hzUcZl9egkoYqn7xSH4SQbukIQEm6hsnBF2qM9dWXwz/q
         Ds2yNeJavUvq8GuIZvjkXvo+lSaRbON6QeRh8bDNeF3eNOshq3XFih5+C5U9BMqpGrpK
         eB6DzXrgXn3VYlY9YtuA8nZywppok1b++BfljtVtEcE+Ne7RuMy/y2mjRT5tQLXC9J61
         FH3g==
X-Gm-Message-State: AOJu0YyKJNAHGtUAQw0Ar1Kp7xeaStD7NdQpt5ugK/IAFFuMQLsfcXBH
	Sm/lJ8qBHdf70C7QtnpTzJNXJQFRiGuQF8NOad4BuDzUqJCbWQmnyniSxo4+eS1VfNqmrCWkgqz
	G
X-Google-Smtp-Source: AGHT+IGmGoooLUTDNxQlMIm9yhrshdLm1bN1ytZrj6lPvZcJiZPXvjUxVZMA+1AWoOPkUE3mg+kD4g==
X-Received: by 2002:a17:907:9490:b0:a9a:eeb:b263 with SMTP id a640c23a62f3a-a9e50caff2fmr1942326566b.58.1730839565840;
        Tue, 05 Nov 2024 12:46: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] CI: Fix package installation for Coverity run
Date: Tue,  5 Nov 2024 20:46:03 +0000
Message-Id: <20241105204603.3412857-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

Something has changed recently in the Github Actions environment and the
golang metapacakge resolves to something that no longer exists:

  https://github.com/xen-project/xen/actions/runs/11539340171/job/32120834909

Update metadata before installing, which fixes things.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

Example dry run with this fix:

  https://github.com/andyhhp/xen/actions/runs/11692180675/job/32560954258
---
 .github/workflows/coverity.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
index 984636eb4635..a6c2819b0a24 100644
--- a/.github/workflows/coverity.yml
+++ b/.github/workflows/coverity.yml
@@ -12,6 +12,7 @@ jobs:
     steps:
     - name: Install build dependencies
       run: |
+        sudo apt-get update
         sudo apt-get install -y \
           build-essential \
           git-core \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 05 23:08:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 23:08:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830512.1245522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8SeA-0002f3-IN; Tue, 05 Nov 2024 23:07:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830512.1245522; Tue, 05 Nov 2024 23: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 1t8SeA-0002ew-Fm; Tue, 05 Nov 2024 23:07:38 +0000
Received: by outflank-mailman (input) for mailman id 830512;
 Tue, 05 Nov 2024 23: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=lM+p=SA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8Se9-0002em-OI
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 23:07:37 +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 bcb71a53-9bca-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 00:07:32 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-37d55f0cf85so4034203f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 15:07:32 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381c10d4983sm17276131f8f.33.2024.11.05.15.07.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Nov 2024 15:07: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: bcb71a53-9bca-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJjYjcxYTUzLTliY2EtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODQ4MDUyLjYzMjI3LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730848052; x=1731452852; 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=Aqp20HRMdNrDj1f9s9Tmi+jiIUBSpOWSfmxAHMwwf3I=;
        b=e93W91NA4s/hPEY99lEvuAFOqXZpQ+f7QbdgUdBuEMZFbLp4XEqYBitmGRnGNln3xm
         A161VsAYx6ZJOCl6V3AHtm2M45xD6SDjJUkv1xiOa0HmOSSIIjnn96BvFLOtXABscfR9
         Z9UCrmwTqb2L9b+BXx69E7/BHvxRntc+KiNvc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730848052; x=1731452852;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Aqp20HRMdNrDj1f9s9Tmi+jiIUBSpOWSfmxAHMwwf3I=;
        b=rIDTZzTxblTMGyjn6pSvpQs6hh1awQxlzVFZ6lNOYRXTTn/cjbFQbl5Kx1+x7Nn1sx
         hWVUKwh8OW3uVumFRiTbqigtaJHqv5qzZNJcnI47+rFYqAO0vgyvTAqaZ9iXrnW3Dtxb
         RZORrKpDjbxiR9jnH7thLvr9iBtCJmlawZeRBYQ285JgXazJUhSP5ExXXRqLRvCOGfjv
         k+wggijDBGeUdg2zetTO7uuvcaFxifo/644OiCM2w4E3IBZeyQgFJuZ1AWLeFNpQMEpQ
         XZmODMdZ9W0RLfTCMAjOpKJ18R4ccpeQMAds0hgxTRLm24hVDQRBKxOcYSsB88j62V/f
         zoiQ==
X-Forwarded-Encrypted: i=1; AJvYcCWIsMQWMAY0XdDMNb/brRscLcB6TVIVIa9UIIZKoImQrl6dFldpFeCuHeR4KLlHifzwR3SCPzmivEM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyp2DKXxZrbmfq6VHwwYRz+CuzEsXXCcoe8++FFecXKWp/ROWzh
	cuA7Bk8I35AedzXNC3x6MqYaB5yjyaLoNpZEaQZu1ih0N0MFbvTGtJ0wWdroCCA=
X-Google-Smtp-Source: AGHT+IHlfRLmLRDlsulwgmqWYmrFG0wTYrxOgA6QCO6dhZM5F75Yt8HWTsIigW6dg/1DSuIUDRMGhQ==
X-Received: by 2002:a05:6000:1863:b0:37e:f8a1:596a with SMTP id ffacd0b85a97d-381be76517cmr17236478f8f.3.1730848051755;
        Tue, 05 Nov 2024 15:07:31 -0800 (PST)
Message-ID: <9b25640d-8180-4f9b-96a7-a214bbdfa238@citrix.com>
Date: Tue, 5 Nov 2024 23:07:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/10] x86/ucode: Fold microcode_grab_module() into its
 single caller
To: "Daniel P. Smith" <dpsmith@apertussolutions.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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-6-andrew.cooper3@citrix.com>
 <d68a6509-a79e-4ea7-ad39-da77243a36e7@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <d68a6509-a79e-4ea7-ad39-da77243a36e7@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/11/2024 4:33 pm, Daniel P. Smith wrote:
> On 10/28/24 05:18, Andrew Cooper wrote:
>> @@ -831,7 +818,15 @@ static int __init early_microcode_load(struct
>> boot_info *bi)
>> Â Â Â Â Â  size_t size;
>> Â Â Â Â Â  struct microcode_patch *patch;
>> Â  -Â Â Â  microcode_grab_module(bi);
>> +Â Â Â  if ( ucode_mod_idx < 0 )
>> +Â Â Â Â Â Â Â  ucode_mod_idx += bi->nr_modules;
>> +Â Â Â  if ( ucode_mod_idx <= 0 || ucode_mod_idx >= bi->nr_modules ||
>> +Â Â Â Â Â Â Â Â  !__test_and_clear_bit(ucode_mod_idx, bi->module_map) )
>> +Â Â Â Â Â Â Â  goto scan;
>> +Â Â Â  ucode_mod = *bi->mods[ucode_mod_idx].mod;
>> + scan:
>> +Â Â Â  if ( ucode_scan )
>> +Â Â Â Â Â Â Â  microcode_scan_module(bi);
>> Â  Â Â Â Â Â  if ( !ucode_mod.mod_end && !ucode_blob.size )
>> Â Â Â Â Â Â Â Â Â  return 0;
>
> Just a suggestion, but would it be useful to add a comment to explain
> the three conditions of ucode_mod_idx that are being handled before
> scanning is attempted?

The already did that, but it's in the next patch, which also rearranges
this block massively.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 05 23:40:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Nov 2024 23:40:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830518.1245533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8T9t-0008DP-Ur; Tue, 05 Nov 2024 23:40:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830518.1245533; Tue, 05 Nov 2024 23:40: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 1t8T9t-0008DI-SD; Tue, 05 Nov 2024 23:40:25 +0000
Received: by outflank-mailman (input) for mailman id 830518;
 Tue, 05 Nov 2024 23:40: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=/xwF=SA=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8T9s-0008DC-Pj
 for xen-devel@lists.xenproject.org; Tue, 05 Nov 2024 23:40:24 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50f81b21-9bcf-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 00:40:20 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730850015508589.0477555983164;
 Tue, 5 Nov 2024 15:40: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: 50f81b21-9bcf-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjUwZjgxYjIxLTliY2YtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODUwMDIxLjA4NDMxNCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730850016; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=CNinTLXaLMC9xmeAjBNLD+CcDOqeZ7x4Xyn8BxbT4RY1d9OCkNqNk7uKkEBOXGp7O3VOHz8WhbP2q0lbhF3IHGZVuw7S+fMNJGKXbWJnmkeuL3Fh30vVOAwZebQRJQ21GvV9R7tu+xhRu7V9y6iUeR6J2TX08W0btmijsMvVAeI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730850016; 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=YQdMQ7PJtxZ+nEb2TBPI5ITRfGSKvRQZ/r0uTZkytDw=; 
	b=l6MMpVsVw5J02JvH2v+hTOrUDWRNlnpeBlIHZNYTm+ngSEk092YUSIUpxpB0NoFnmBaMMEguvoBWC0E/zZXkif16L3Mmw5JtDWwoz70NdCbskaA3fM1kEnOEcXuZ2ecqcP8TUfT7//vig0v0IFeGd0WnRd/ePH/sc/6QBf1Oyi8=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730850016;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=YQdMQ7PJtxZ+nEb2TBPI5ITRfGSKvRQZ/r0uTZkytDw=;
	b=HRBrrjTc3X6hlAjgqWYmJj3q0SRIL8V6v90lHcjuMnwc4GNU/MiJfU1S2BO0iXcn
	sImnmwcdSF+fIrGEGUnWp/XP63qzlL5ihfHEzxAo69jilMuvdme4SEy8AADsljvja1J
	bIaR01oruitlSrf/GxxoZrXxcvMIwoTFvzTuYkM8=
Message-ID: <2123d209-2600-4022-b295-e7d6c35bf969@apertussolutions.com>
Date: Tue, 5 Nov 2024 18:40:09 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/10] x86/ucode: Fold microcode_grab_module() into its
 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: <20241028091856.2151603-1-andrew.cooper3@citrix.com>
 <20241028091856.2151603-6-andrew.cooper3@citrix.com>
 <d68a6509-a79e-4ea7-ad39-da77243a36e7@apertussolutions.com>
 <9b25640d-8180-4f9b-96a7-a214bbdfa238@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <9b25640d-8180-4f9b-96a7-a214bbdfa238@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/5/24 18:07, Andrew Cooper wrote:
> On 02/11/2024 4:33 pm, Daniel P. Smith wrote:
>> On 10/28/24 05:18, Andrew Cooper wrote:
>>> @@ -831,7 +818,15 @@ static int __init early_microcode_load(struct
>>> boot_info *bi)
>>>  Â Â Â Â Â  size_t size;
>>>  Â Â Â Â Â  struct microcode_patch *patch;
>>>  Â  -Â Â Â  microcode_grab_module(bi);
>>> +Â Â Â  if ( ucode_mod_idx < 0 )
>>> +Â Â Â Â Â Â Â  ucode_mod_idx += bi->nr_modules;
>>> +Â Â Â  if ( ucode_mod_idx <= 0 || ucode_mod_idx >= bi->nr_modules ||
>>> +Â Â Â Â Â Â Â Â  !__test_and_clear_bit(ucode_mod_idx, bi->module_map) )
>>> +Â Â Â Â Â Â Â  goto scan;
>>> +Â Â Â  ucode_mod = *bi->mods[ucode_mod_idx].mod;
>>> + scan:
>>> +Â Â Â  if ( ucode_scan )
>>> +Â Â Â Â Â Â Â  microcode_scan_module(bi);
>>>  Â  Â Â Â Â Â  if ( !ucode_mod.mod_end && !ucode_blob.size )
>>>  Â Â Â Â Â Â Â Â Â  return 0;
>>
>> Just a suggestion, but would it be useful to add a comment to explain
>> the three conditions of ucode_mod_idx that are being handled before
>> scanning is attempted?
> 
> The already did that, but it's in the next patch, which also rearranges
> this block massively.

I realized that and meant to come back to adjust my response. As such,

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 00:39:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 00:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830530.1245581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8U5R-0008Mk-7R; Wed, 06 Nov 2024 00:39:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830530.1245581; Wed, 06 Nov 2024 00:39: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 1t8U5R-0008MB-4Z; Wed, 06 Nov 2024 00:39:53 +0000
Received: by outflank-mailman (input) for mailman id 830530;
 Wed, 06 Nov 2024 00:39: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8U5P-0007Sp-Hs
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 00:39:51 +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 9f75ffdf-9bd7-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 01:39:46 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-539fb49c64aso8556873e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 16:39:46 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d66b9sm198664166b.59.2024.11.05.16.39.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 16:39: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: 9f75ffdf-9bd7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlmNzVmZmRmLTliZDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODUzNTg2Ljg3MzAzNywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730853585; x=1731458385; 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=zyQgfKHqhnuRdlQlcXH14Fl/zjVPFh80mAHLBVNbFoE=;
        b=W7rdOxpRRvNDCCxPPPWSSkc+98NwwSA8Hk4Uq1Fjy7EeptD7U3B8fjwJBS0xskkr8Z
         tc/h1hoikENk+3DJ8OR5KwSf8I+u6IAXRTCKl7iXgtImVQYAHYmP5W8toLAP5e2eTjG1
         EUx2I0zOGUmVyrdKarlGyM7ebHJyE4KVKqDuQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730853585; x=1731458385;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zyQgfKHqhnuRdlQlcXH14Fl/zjVPFh80mAHLBVNbFoE=;
        b=Y8CkVtRrrvfdRAd0MErnJAabLBv5WVVzIG4satQ+c/Zmhrmf/L0Dd33fnFp/25TUnM
         aEaHFTPZ0baQFqtfSBwhzv8Nz9VnSQiktwnyoKl0gzWGlSMKJ1ECtbyt9MLXm0H+hHI8
         +sylPtl9yWiYcawy5DbyavvZmlqw3aN8JEDZ0lD1aaXzK1IgubI34VtFmjJV5Tyb2lzc
         3OsmDMFvd4ms8/yfCXGtuLZQWxi+XIQBymUsXTQBlgGya9LuC6YKTyB1KGM6MjJPmOGI
         DGqGZUKDBnN6m/tzsPzGkHAU27qG9JN2y9/wra3gpWO9yZ9ZDQjjNnUijeQsNlucfgPU
         vKgg==
X-Gm-Message-State: AOJu0YzK8TSgFNNhE75CZhJuwsqakHYNbv6g+dKGK2v0ig8EbDHJ+nBC
	QuT0JUNJrom/dQiby6ZT8vjd2P1mTchaeN9GRh136JATSAaisfOEuw0PXvbNmeqGotsu+Cj8Hjl
	N
X-Google-Smtp-Source: AGHT+IFAZmdgCeIMlHYBymCGBplHOzq9/OfOVuXyHDj3nTWLCsZO4+Y9UYY974om2FQDApwkbRwIsA==
X-Received: by 2002:a05:6512:b94:b0:53b:1e70:6ab4 with SMTP id 2adb3069b0e04-53d65de3260mr14384511e87.14.1730853585415;
        Tue, 05 Nov 2024 16:39:45 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 3/4] x86/ucode: Drop ucode_mod and ucode_blob
Date: Wed,  6 Nov 2024 00:39:37 +0000
Message-Id: <20241106003938.3453243-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
References: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Both are used to pass information from early_microcode_load() to
microcode_init_cache(), and both constitute use-after-free's in certain cases.
Later still in microcode_init() is a failed attempt to "free" this
information, long after the damage has been done.

 * ucode_mod is a copy of the module_t identified by `ucode=$n`.  It is a copy
   of the physical pointer from prior to Xen relocating the modules.
   microcode_init_cache() might happen to find the data still intact in it's
   old location, but it might be an arbitrary part of some other module.

 * ucode_blob is a stashed virtual pointer to a bootstrap_map() which becomes
   invalid the moment control returns to __start_xen(), where other logic is
   free to to make temporary mappings.  This was even noticed and
   microcode_init_cache() adjusted to "fix" the stashed pointers.

The information which should be passed between these two functions is which
module to look in.  Introduce early_mod_idx for this purpose.  opt_scan can be
reused to distinguish between CPIO archives and raw containers.

Notably this means microcode_init_cache() doesn't need to scan all modules any
more; we know exactly which one to look in.  However, we do re-parse the CPIO
header for simplicity.

Furthermore, microcode_init_cache(), being a presmp_initcall does not need to
use bootstrap_map() to access modules; it can use mfn_to_virt() directly,
which avoids needing to funnel exit paths through bootstrap_unmap().

Fold microcode_scan_module() into what is now it's single caller.  It operates
on the function-wide idx/data/size state which allows for a unified "found"
path irrespective of module selection method.

Delete microcode_init() entirely.  It was never legitimate logic.

This resolves all issues to do with holding pointers (physical or virtual)
across returning to __start_xen().

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

v2:
 * Merge "x86/ucode: Delete the microcode_init() initcall" into this patch.
---
 xen/arch/x86/cpu/microcode/core.c | 194 ++++++++++++++----------------
 1 file changed, 89 insertions(+), 105 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index a2b03c52e86a..74b816a98b17 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -28,7 +28,6 @@
 #include <xen/err.h>
 #include <xen/guest_access.h>
 #include <xen/init.h>
-#include <xen/multiboot.h>
 #include <xen/param.h>
 #include <xen/spinlock.h>
 #include <xen/stop_machine.h>
@@ -59,7 +58,6 @@
  */
 #define MICROCODE_UPDATE_TIMEOUT_US 1000000
 
-static module_t __initdata ucode_mod;
 static bool __initdata ucode_mod_forced;
 static unsigned int nr_cores;
 
@@ -79,24 +77,11 @@ static enum {
     LOADING_EXIT,
 } loading_state;
 
-/*
- * If we scan the initramfs.cpio for the early microcode code
- * and find it, then 'ucode_blob' will contain the pointer
- * and the size of said blob. It is allocated from Xen's heap
- * memory.
- */
-struct ucode_mod_blob {
-    const void *data;
-    size_t size;
-};
-
 struct patch_with_flags {
     unsigned int flags;
     const struct microcode_patch *patch;
 };
 
-static struct ucode_mod_blob __initdata ucode_blob;
-
 /* By default, ucode loading is done in NMI handler */
 static bool ucode_in_nmi = true;
 
@@ -176,46 +161,6 @@ custom_param("ucode", parse_ucode);
 
 static struct microcode_ops __ro_after_init ucode_ops;
 
-static void __init microcode_scan_module(struct boot_info *bi)
-{
-    uint64_t *_blob_start;
-    unsigned long _blob_size;
-    struct cpio_data cd;
-    int i;
-
-    ucode_blob.size = 0;
-    if ( !opt_scan )
-        return;
-
-    /*
-     * Try all modules and see whichever could be the microcode blob.
-     */
-    for ( i = 1 /* Ignore dom0 kernel */; i < bi->nr_modules; i++ )
-    {
-        if ( !test_bit(i, bi->module_map) )
-            continue;
-
-        _blob_start = bootstrap_map(bi->mods[i].mod);
-        _blob_size = bi->mods[i].mod->mod_end;
-        if ( !_blob_start )
-        {
-            printk("Could not map multiboot module #%d (size: %ld)\n",
-                   i, _blob_size);
-            continue;
-        }
-        cd.data = NULL;
-        cd.size = 0;
-        cd = find_cpio_data(ucode_ops.cpio_path, _blob_start, _blob_size);
-        if ( cd.data )
-        {
-            ucode_blob.size = cd.size;
-            ucode_blob.data = cd.data;
-            break;
-        }
-        bootstrap_unmap();
-    }
-}
-
 static DEFINE_SPINLOCK(microcode_mutex);
 
 DEFINE_PER_CPU(struct cpu_signature, cpu_sig);
@@ -754,28 +699,6 @@ int microcode_update(XEN_GUEST_HANDLE(const_void) buf,
     return continue_hypercall_on_cpu(0, microcode_update_helper, buffer);
 }
 
-static int __init cf_check microcode_init(void)
-{
-    /*
-     * At this point, all CPUs should have updated their microcode
-     * via the early_microcode_* paths so free the microcode blob.
-     */
-    if ( ucode_blob.size )
-    {
-        bootstrap_unmap();
-        ucode_blob.size = 0;
-        ucode_blob.data = NULL;
-    }
-    else if ( ucode_mod.mod_end )
-    {
-        bootstrap_unmap();
-        ucode_mod.mod_end = 0;
-    }
-
-    return 0;
-}
-__initcall(microcode_init);
-
 /* Load a cached update to current cpu */
 int microcode_update_one(void)
 {
@@ -815,23 +738,47 @@ static int __init early_update_cache(const void *data, size_t len)
     return rc;
 }
 
+/*
+ * Set by early_microcode_load() to indicate where it found microcode, so
+ * microcode_init_cache() can find it again and initalise the cache.  opt_scan
+ * tells us whether we're looking for a raw container or CPIO archive.
+ */
+static int __initdata early_mod_idx = -1;
+
 static int __init cf_check microcode_init_cache(void)
 {
     struct boot_info *bi = &xen_boot_info;
+    void *data;
+    size_t size;
     int rc = 0;
 
-    if ( !ucode_ops.apply_microcode )
-        return -ENODEV;
+    if ( early_mod_idx < 0 )
+        /* early_microcode_load() didn't leave us any work to do. */
+        return 0;
+
+    size = bi->mods[early_mod_idx].mod->mod_end;
+    data = __mfn_to_virt(bi->mods[early_mod_idx].mod->mod_start);
 
+    /*
+     * If opt_scan is set, we're looking for a CPIO archive rather than a raw
+     * microcode container.  Look within it.
+     */
     if ( opt_scan )
-        /* Need to rescan the modules because they might have been relocated */
-        microcode_scan_module(bi);
+    {
+        struct cpio_data cd = find_cpio_data(ucode_ops.cpio_path, data, size);
+
+        if ( !cd.data )
+        {
+            printk(XENLOG_WARNING "Microcode: %s not found in CPIO archive\n",
+                   strrchr(ucode_ops.cpio_path, '/') + 1);
+            return -ENOENT;
+        }
+
+        data = cd.data;
+        size = cd.size;
+    }
 
-    if ( ucode_mod.mod_end )
-        rc = early_update_cache(bootstrap_map(&ucode_mod),
-                                ucode_mod.mod_end);
-    else if ( ucode_blob.size )
-        rc = early_update_cache(ucode_blob.data, ucode_blob.size);
+    rc = early_update_cache(data, size);
 
     return rc;
 }
@@ -845,7 +792,7 @@ presmp_initcall(microcode_init_cache);
  */
 static int __init early_microcode_load(struct boot_info *bi)
 {
-    const void *data = NULL;
+    void *data = NULL;
     size_t size;
     struct microcode_patch *patch;
     int idx = opt_mod_idx;
@@ -858,7 +805,40 @@ static int __init early_microcode_load(struct boot_info *bi)
     ASSERT(idx == 0 || !opt_scan);
 
     if ( opt_scan ) /* Scan for a CPIO archive */
-        microcode_scan_module(bi);
+    {
+        for ( idx = 1; idx < bi->nr_modules; ++idx )
+        {
+            struct cpio_data cd;
+
+            if ( !test_bit(idx, bi->module_map) )
+                continue;
+
+            size = bi->mods[idx].mod->mod_end;
+            data = bootstrap_map_bm(&bi->mods[idx]);
+            if ( !data )
+            {
+                printk(XENLOG_WARNING "Microcode: Could not map module %d, size %zu\n",
+                       idx, size);
+                continue;
+            }
+
+            cd = find_cpio_data(ucode_ops.cpio_path, data, size);
+            if ( !cd.data )
+            {
+                /* CPIO archive, but no cpio_path.  Try the next module */
+                bootstrap_unmap();
+                continue;
+            }
+
+            data = cd.data;
+            size = cd.size;
+            goto found;
+        }
+
+        printk(XENLOG_WARNING "Microcode: %s not found during CPIO scan\n",
+               strrchr(ucode_ops.cpio_path, '/') + 1);
+        return -ENODEV;
+    }
 
     if ( idx ) /* Specific module nominated */
     {
@@ -882,26 +862,21 @@ static int __init early_microcode_load(struct boot_info *bi)
             return -ENODEV;
         }
 
-        ucode_mod = *bi->mods[idx].mod;
-    }
-
-    if ( !ucode_mod.mod_end && !ucode_blob.size )
-        return 0;
-
-    if ( ucode_blob.size )
-    {
-        size = ucode_blob.size;
-        data = ucode_blob.data;
-    }
-    else if ( ucode_mod.mod_end )
-    {
-        size = ucode_mod.mod_end;
-        data = bootstrap_map(&ucode_mod);
+        size = bi->mods[idx].mod->mod_end;
+        data = bootstrap_map_bm(&bi->mods[idx]);
+        if ( !data )
+        {
+            printk(XENLOG_WARNING "Microcode: Could not map module %d, size %zu\n",
+                   idx, size);
+            return -ENODEV;
+        }
+        goto found;
     }
 
-    if ( !data )
-        return -ENOMEM;
+    /* No method of finding microcode specified.  Nothing to do. */
+    return 0;
 
+ found:
     patch = ucode_ops.cpu_request_microcode(data, size, false);
     if ( IS_ERR(patch) )
     {
@@ -917,6 +892,15 @@ static int __init early_microcode_load(struct boot_info *bi)
         goto unmap;
     }
 
+    /*
+     * We've found a microcode patch suitable for this CPU.
+     *
+     * Tell microcode_init_cache() which module we found it in.  We cache it
+     * irrespective of whether the BSP successfully loads it; Some platforms
+     * are known to update the BSP but leave the APs on older ucode.
+     */
+    early_mod_idx = idx;
+
     rc = microcode_update_cpu(patch, 0);
 
  unmap:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 00:39:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 00:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830529.1245563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8U5Q-0007pi-30; Wed, 06 Nov 2024 00:39:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830529.1245563; Wed, 06 Nov 2024 00:39: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 1t8U5P-0007oB-T2; Wed, 06 Nov 2024 00:39:51 +0000
Received: by outflank-mailman (input) for mailman id 830529;
 Wed, 06 Nov 2024 00:39: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8U5O-0007Sp-JM
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 00:39:50 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9fb9a4cc-9bd7-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 01:39:47 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9a4031f69fso968935466b.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 16:39:47 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d66b9sm198664166b.59.2024.11.05.16.39.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 16:39: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: 9fb9a4cc-9bd7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlmYjlhNGNjLTliZDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODUzNTg3LjM2MzczMywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730853586; x=1731458386; 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=bivrP7RYzPcmWMZylrkIsrDnMjF+93O+ViHtEw4ZTZ4=;
        b=uZwA4D/MQOLYrOJiuxn4FDvBVmervwYd0xhVjtwhz9OM6r+id69xS4zMu/HeG+4ie4
         eSQG92odQdWPSxBWSAd7Sa9VcNcN32cBxp9N5OLHKVWy9Iyc7SHg5cvVr4K7jGp/IbLB
         v6eH5y2qLcwf0pMtpCm50cBle3+uUD8Gi3xfY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730853586; x=1731458386;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=bivrP7RYzPcmWMZylrkIsrDnMjF+93O+ViHtEw4ZTZ4=;
        b=BSDGN//Ilqu0jKJ0w6YMz7+ZJzmuTrSHrp+wnA1X9YcnZ65CokiiZO5BDd/bpOTjBa
         9cSiQQkAJZTGfKZifdaWQhwRzjfszCI6uzmiMuwqqYJis2CIZAaoakLbDuAFmV6p1gzy
         i98Ory579lxXSYlwcrJgTxKVJ6u0QkQgNEIK6Hc/ewJkd2tnBvMcsPVtvVbFPuL/o3Ex
         evVYhaK1Vm1serGwMEzc5xR1YV1BBqYWlRvXG2n3qi6G+VPKWugCGEdKhRbjVoe6MCxH
         xdig7FmJ8jMbgjizSctbhWaBxmwEVeuA35aVYWlSKyYiEkXTxkS1kdZ7ketzP4JjzZHD
         OfWw==
X-Gm-Message-State: AOJu0YzsHF+rUdOpJIbW8cN9m8/aK/GBkIRl2j2IENCs4u2Mr+JOiVLW
	LqapXrtQjuahvGtiGaQJfk4jYAB0tbEDHhU/FJP3NC2MBuA2dt95ilxe8CXmqfGiC5TnEljS0pz
	4
X-Google-Smtp-Source: AGHT+IHOQD+MOwX+f3K42IcDvvL+zmdwP1SdeXuzPTIppUecycbvuCScfX3pkKpFSFFCKmBZi5/5Ug==
X-Received: by 2002:a17:907:c8a0:b0:a9e:b287:2813 with SMTP id a640c23a62f3a-a9eb2875f42mr420633066b.5.1730853586157;
        Tue, 05 Nov 2024 16:39:46 -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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 4/4] x86/ucode: Fold early_update_cache() into its single caller
Date: Wed,  6 Nov 2024 00:39:38 +0000
Message-Id: <20241106003938.3453243-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
References: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The data pointer is known good, so the -ENOMEM path is unnecessary.  However,
if we find no patch, something's wrong seeing as early_microcode_init()
indicated it was happy.

We are the entity initialising the cache, so we don't need the complexity of
using microcode_update_cache().  Just assert the cache is empty, and populate
it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/cpu/microcode/core.c | 47 +++++++++++++------------------
 1 file changed, 19 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 74b816a98b17..54ce1b5e2ba6 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -711,33 +711,6 @@ int microcode_update_one(void)
     return microcode_update_cpu(NULL, 0);
 }
 
-static int __init early_update_cache(const void *data, size_t len)
-{
-    int rc = 0;
-    struct microcode_patch *patch;
-
-    if ( !data )
-        return -ENOMEM;
-
-    patch = parse_blob(data, len);
-    if ( IS_ERR(patch) )
-    {
-        printk(XENLOG_WARNING "Parsing microcode blob error %ld\n",
-               PTR_ERR(patch));
-        return PTR_ERR(patch);
-    }
-
-    if ( !patch )
-        return -ENOENT;
-
-    spin_lock(&microcode_mutex);
-    rc = microcode_update_cache(patch);
-    spin_unlock(&microcode_mutex);
-    ASSERT(rc);
-
-    return rc;
-}
-
 /*
  * Set by early_microcode_load() to indicate where it found microcode, so
  * microcode_init_cache() can find it again and initalise the cache.  opt_scan
@@ -748,6 +721,7 @@ static int __initdata early_mod_idx = -1;
 static int __init cf_check microcode_init_cache(void)
 {
     struct boot_info *bi = &xen_boot_info;
+    struct microcode_patch *patch;
     void *data;
     size_t size;
     int rc = 0;
@@ -778,7 +752,24 @@ static int __init cf_check microcode_init_cache(void)
         size = cd.size;
     }
 
-    rc = early_update_cache(data, size);
+    patch = parse_blob(data, size);
+    if ( IS_ERR(patch) )
+    {
+        rc = PTR_ERR(patch);
+        printk(XENLOG_WARNING "Microcode: Parse error %d\n", rc);
+        return rc;
+    }
+
+    if ( !patch )
+    {
+        printk(XENLOG_WARNING "Microcode: No suitable patch found\n");
+        return -ENOENT;
+    }
+
+    spin_lock(&microcode_mutex);
+    ASSERT(microcode_cache == NULL);
+    microcode_cache = patch;
+    spin_unlock(&microcode_mutex);
 
     return rc;
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 00:39:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 00:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830527.1245549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8U5P-0007XG-A4; Wed, 06 Nov 2024 00:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830527.1245549; Wed, 06 Nov 2024 00:39: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 1t8U5P-0007W9-4Q; Wed, 06 Nov 2024 00:39:51 +0000
Received: by outflank-mailman (input) for mailman id 830527;
 Wed, 06 Nov 2024 00:39: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8U5M-0007Sp-RW
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 00:39:48 +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 9d0cc213-9bd7-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 01:39:42 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5c9388a00cfso7070604a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 16:39:42 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d66b9sm198664166b.59.2024.11.05.16.39.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 16:39: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: 9d0cc213-9bd7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkMGNjMjEzLTliZDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODUzNTgyLjg4MjM2MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730853582; x=1731458382; 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=z5qN0JZKZ0eGrmOBrjForrxeu3WkmhK+HUk9e72Uf5k=;
        b=p/VF3u8AXFu7USiEBgW5IHqVQamiQI0XKDpZqCwHaFK9daoVl100L9n7mHvy1IciXg
         3z8oVd4vJXqsbOdz7WvaI0reL5Z1rYlUB49BLV+EFN/hD+hz+Om18RtNEujHlm9rrMw0
         dq86hjqoaOdQJge+ZgIMT1Vvl7OOUFoCSPTUU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730853582; x=1731458382;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=z5qN0JZKZ0eGrmOBrjForrxeu3WkmhK+HUk9e72Uf5k=;
        b=fP4bFF60V1xFT8oec45bk9l7Rnqn+IEfMD4yA96BP4FCzEXrY4IgH+vfwmatfBX7zZ
         9slb5cbR8H6SSGMnh/knxQ7C5WnWwkTTgRxEmlwVz+PqT8j9epNJqgld7/fHq+cSyHF2
         MqzaW2xwWUiLAD7LksTphuoyBpfRDwlaIxn9D9iw+/35/wo45KN1y9M9dGjWeL1y6XuF
         ecKTFge1CWOKyqIrNFZklGF0WX4Fagt3cyLY+sb7CSF6Q+M4OoFY+D/7OAzR58bvi/tr
         QUuoViatmSwOGMRW+YULmthYZ0FjjZtdROUGwKA781ntIiIdpOMsddTJ+oaLJUZN06W4
         mWdA==
X-Gm-Message-State: AOJu0Yxpr0FcBXq+LpFvnc2y4NiSKuhnd0MH0TMx5UE7Wl3c0Uq/vzK4
	+/nCMwqORbrbh5WOVsLR3wVfIyeJNUBJof1iAfnxY9gdl2m3VA5D2ny2ef36U82iFMwKp0CS1zC
	f
X-Google-Smtp-Source: AGHT+IEDaxrSK2PmsDczFHi7QRiDc5YMFoqoTy+KgVSbpHrVJVDmXn98Wf3ltPMTvdhi5/6Q4g0Rdg==
X-Received: by 2002:a17:907:944f:b0:a9a:825:4c39 with SMTP id a640c23a62f3a-a9de5d00e3emr4119145066b.20.1730853581449;
        Tue, 05 Nov 2024 16:39: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>,
	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 v2 0/4] x86/ucode: Fix module-handling use-after-free's
Date: Wed,  6 Nov 2024 00:39:34 +0000
Message-Id: <20241106003938.3453243-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

Half of the series already committed.  No other major changes.

Andrew Cooper (4):
  x86/ucode: Enforce invariant about module selection
  x86/ucode: Use bootstrap_unmap() in early_microcode_load()
  x86/ucode: Drop ucode_mod and ucode_blob
  x86/ucode: Fold early_update_cache() into its single caller

 xen/arch/x86/cpu/microcode/core.c | 313 ++++++++++++++++--------------
 1 file changed, 170 insertions(+), 143 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 00:39:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 00:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830526.1245543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8U5P-0007U3-1F; Wed, 06 Nov 2024 00:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830526.1245543; Wed, 06 Nov 2024 00:39: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 1t8U5O-0007Tw-Te; Wed, 06 Nov 2024 00:39:50 +0000
Received: by outflank-mailman (input) for mailman id 830526;
 Wed, 06 Nov 2024 00:39: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8U5M-0007S3-Oy
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 00:39:48 +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 9d64042f-9bd7-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 01:39:43 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a99f646ff1bso843693266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 16:39:43 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d66b9sm198664166b.59.2024.11.05.16.39.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 16: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: 9d64042f-9bd7-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkNjQwNDJmLTliZDctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODUzNTgzLjQ5MDEzMSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730853582; x=1731458382; 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=qg2p2KdWuxuaSDUiJ7yQpVbcR99qOY01rSKquEZmgVI=;
        b=MHtQ36V5LBRxPc7FSpuz2QLzccbg7s60P4b4Pl/0wRuDEdsqRs80bg5fw3ccd7fV0t
         AcKugUcZ9Xxb4uMmRUGQjrGMcLp/wgBVecptFBpqtwDyfcrRKrJuduwZUW9Lcq5uUHwG
         InyoL5bycQTcbhlNhnKiNlCab9ze2o6/PA9oE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730853582; x=1731458382;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qg2p2KdWuxuaSDUiJ7yQpVbcR99qOY01rSKquEZmgVI=;
        b=Ea90mtW1PO0+AMJ5cv+lctljTaBH4IOJ3F81nMMC44H01KZtnpurqZkV4SZiubjAH9
         AVINIscHhHFQg3RAJGOWbzDfT+bfhbXpAgD9Awc55b0Pr8laf/VRa2ZYvzkoXiszQrsd
         T2JS939Ct8YigmBmzsSK8kxXl5m703G1Kp+/FYs9VDIeNh/Oqb8nhqvnCoEgq2yZ96EV
         KrmUspPOKM6jqbm3Djj4IQ/yGG5/sPHmzJoFzsMTIVOILUeQI0fj13rHxWTpw0MJQ4Px
         44QZVPH4XXxlh0d+QNa3wntX3npv4rTY8ErdKjYlmyBhHGYYECiRzr89ULPMOZxRHVld
         sVdQ==
X-Gm-Message-State: AOJu0Yw9WOYWSkJFdsilFu4pwV83tMMYzH5HSE+QT4+USzg7DlBtRYOt
	UJQyStl17mjxDnRLkwi2KhpONRf5Lz5tc6PyhQ6ujd7Rg/rUcwIxeNu0n7He5CcPOa6hsnSWZSC
	2
X-Google-Smtp-Source: AGHT+IHG8CAkxzc9uWotSu9/8aMwFwGXV78MGz0LANQehu5h+v2rf2xbbw88T0N8fLiqFo1bR1l7Cw==
X-Received: by 2002:a17:907:3202:b0:a9a:1a6a:b5f5 with SMTP id a640c23a62f3a-a9e3a7f0abamr2652933066b.56.1730853582157;
        Tue, 05 Nov 2024 16:39:42 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 1/4] x86/ucode: Enforce invariant about module selection
Date: Wed,  6 Nov 2024 00:39:35 +0000
Message-Id: <20241106003938.3453243-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
References: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The work to add the `ucode=nmi` cmdline option left a subtle corner case.
Both scan and an explicit index could be chosen, and we could really find both
a CPIO archive and a microcode file.

Worse, because the if/else chains for processing ucode_{blob,mod} are opposite
ways around in early_microcode_load() and microcode_init_cache(), we can
genuinely perform early microcode loading from the CPIO archive, then cache
from the explicit file.

Therefore, enforce that only one selection method can be active.

Rename ucode_{scan,mod_idx} to have an opt_ prefix.  This is both for
consistency with the rest of Xen, and to guarantee that we've got all
instances of the variables covered in this change.  Explain how they're use.
During cmdline/config parsing, always update both variables in pairs.

In early_microcode_load(), ASSERT() the invariant just in case.  Use a local
variable for idx rather than operating on the static; we're the only consume
of the value.

Expand the index selection logic with comments and warnings to the user when
something went wrong.

Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load ucode")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

This intentionally does not change the behaviour beyond excluding the
unintended ambiguous case.  It is deeply unintuitive behaviour, and there are
complains on various distros forums/wikis.  It ought to be changed, but not
before we have a more sane way of handling modules.

v2:
 * Adjust ucode=$num error case.

Despite the fixes tag, this can't be backported (at least not in this form).
---
 xen/arch/x86/cpu/microcode/core.c | 80 +++++++++++++++++++++++--------
 1 file changed, 61 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index b7c3e270e17e..97ed1f11588a 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -60,7 +60,6 @@
 #define MICROCODE_UPDATE_TIMEOUT_US 1000000
 
 static module_t __initdata ucode_mod;
-static signed int __initdata ucode_mod_idx;
 static bool __initdata ucode_mod_forced;
 static unsigned int nr_cores;
 
@@ -97,11 +96,6 @@ struct patch_with_flags {
 };
 
 static struct ucode_mod_blob __initdata ucode_blob;
-/*
- * By default we will NOT parse the multiboot modules to see if there is
- * cpio image with the microcode images.
- */
-static bool __initdata ucode_scan;
 
 /* By default, ucode loading is done in NMI handler */
 static bool ucode_in_nmi = true;
@@ -109,13 +103,28 @@ static bool ucode_in_nmi = true;
 /* Protected by microcode_mutex */
 static const struct microcode_patch *microcode_cache;
 
+/*
+ * opt_mod_idx and opt_scan have subtle semantics.
+ *
+ * The cmdline can either identify a module by number (inc -ve back-reference)
+ * containing a raw microcode container, or select scan which instructs Xen to
+ * search all modules for an uncompressed CPIO archive containing a file with
+ * a vendor-dependent name.
+ *
+ * These options do not make sense when combined, so for the benefit of module
+ * location we require that they are not both active together.
+ */
+static int __initdata opt_mod_idx;
+static bool __initdata opt_scan;
+
 /*
  * Used by the EFI path only, when xen.cfg identifies an explicit microcode
  * file.  Overrides ucode=<int>|scan on the regular command line.
  */
 void __init microcode_set_module(unsigned int idx)
 {
-    ucode_mod_idx = idx;
+    opt_mod_idx = idx;
+    opt_scan = false;
     ucode_mod_forced = 1;
 }
 
@@ -139,14 +148,22 @@ static int __init cf_check parse_ucode(const char *s)
         else if ( !ucode_mod_forced ) /* Not forced by EFI */
         {
             if ( (val = parse_boolean("scan", s, ss)) >= 0 )
-                ucode_scan = val;
+            {
+                opt_scan = val;
+                opt_mod_idx = 0;
+            }
             else
             {
                 const char *q;
 
-                ucode_mod_idx = simple_strtol(s, &q, 0);
+                opt_mod_idx = simple_strtol(s, &q, 0);
                 if ( q != ss )
+                {
+                    opt_mod_idx = 0;
                     rc = -EINVAL;
+                }
+                else
+                    opt_scan = false;
             }
         }
 
@@ -167,7 +184,7 @@ static void __init microcode_scan_module(struct boot_info *bi)
     int i;
 
     ucode_blob.size = 0;
-    if ( !ucode_scan )
+    if ( !opt_scan )
         return;
 
     /*
@@ -806,7 +823,7 @@ static int __init cf_check microcode_init_cache(void)
     if ( !ucode_ops.apply_microcode )
         return -ENODEV;
 
-    if ( ucode_scan )
+    if ( opt_scan )
         /* Need to rescan the modules because they might have been relocated */
         microcode_scan_module(bi);
 
@@ -831,17 +848,42 @@ static int __init early_microcode_load(struct boot_info *bi)
     const void *data = NULL;
     size_t size;
     struct microcode_patch *patch;
+    int idx = opt_mod_idx;
+
+    /*
+     * Cmdline parsing ensures this invariant holds, so that we don't end up
+     * trying to mix multiple ways of finding the microcode.
+     */
+    ASSERT(idx == 0 || !opt_scan);
 
-    if ( ucode_mod_idx < 0 )
-        ucode_mod_idx += bi->nr_modules;
-    if ( ucode_mod_idx <= 0 || ucode_mod_idx >= bi->nr_modules ||
-         !__test_and_clear_bit(ucode_mod_idx, bi->module_map) )
-        goto scan;
-    ucode_mod = *bi->mods[ucode_mod_idx].mod;
- scan:
-    if ( ucode_scan )
+    if ( opt_scan ) /* Scan for a CPIO archive */
         microcode_scan_module(bi);
 
+    if ( idx ) /* Specific module nominated */
+    {
+        /*
+         * Negative indicies can be used to reference from the end of the
+         * modules.  e.g. ucode=-1 refers to the last module.
+         */
+        if ( idx < 0 )
+            idx += bi->nr_modules;
+
+        if ( idx <= 0 || idx >= bi->nr_modules )
+        {
+            printk(XENLOG_WARNING "Microcode: Chosen module %d out of range [1, %u)\n",
+                   idx, bi->nr_modules);
+            return -ENODEV;
+        }
+
+        if ( !__test_and_clear_bit(idx, bi->module_map) )
+        {
+            printk(XENLOG_WARNING "Microcode: Chosen module %d already used\n", idx);
+            return -ENODEV;
+        }
+
+        ucode_mod = *bi->mods[idx].mod;
+    }
+
     if ( !ucode_mod.mod_end && !ucode_blob.size )
         return 0;
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 00:39:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 00:39:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830528.1245553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8U5P-0007bh-Gi; Wed, 06 Nov 2024 00:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830528.1245553; Wed, 06 Nov 2024 00:39: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 1t8U5P-0007aQ-Bj; Wed, 06 Nov 2024 00:39:51 +0000
Received: by outflank-mailman (input) for mailman id 830528;
 Wed, 06 Nov 2024 00: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8U5N-0007Sp-HU
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 00:39:49 +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 9e5a7052-9bd7-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 01:39:45 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5ceca7df7f0so4365063a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 16:39:45 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d66b9sm198664166b.59.2024.11.05.16.39.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Nov 2024 16:39: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: 9e5a7052-9bd7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjllNWE3MDUyLTliZDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODUzNTg1LjA2MzE0Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730853584; x=1731458384; 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=Z05R7l9VYc7ghmXmXZQCFu9nX1F+8KLNBANLsMWOZCI=;
        b=KffKs29uychKMbgg7ifA/VKIrhEwz7ZX0VffCM7WyOPZAP/VuKw6RjDX5GGufNWIbC
         K/tbYfLs9AVTkBakwjWiat6Z2XNOSvAHnsKO+D5CPJw6tkUFoQohNkXhJ1OE6klgfeRh
         tXvKZHKkMqc2OwejonhKqFy88f8krMiNtPNPs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730853584; x=1731458384;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Z05R7l9VYc7ghmXmXZQCFu9nX1F+8KLNBANLsMWOZCI=;
        b=lYrI1ZYR1MMTh37AVHrtRf8EMmR6tBNfRSeWNjd64pTrXHeiOKLkaRWc5glH+eTjGt
         cEmP3HU6hBgwYapFLTjsTdo8Q84V7ImhWXPaPYFIjLE1pUtwLbcx2y6gHC91vWlC+wLz
         WXGs3dRwmUPmkl0U986VqpFagK81rlQYdigwvMojRagHUlC+S2wyIKd+6RYV9+KQqsKM
         6AjYtGFAwumA6Nbd7mVIhgYrY19bh6m22luHOnx+qfE+9PfAT6/L/WOJlS0S/UHwzTar
         6FHc0gFn+OCeBbyfi4a3KDY2FLYjbdIcdl+JXrbljAU7mdx8mZYYHp45mtpQide7ZWUL
         +zyw==
X-Gm-Message-State: AOJu0YwHRLTdwHkhxgyA0EA1h7ZxEVSnZojDyecKtxEFsiT4c3/8ezPo
	XCNETNfpIcQvuPxhDAhWJT3kFBULH4+WV6xaW/BAEfQBvYqpNvKPdwhf3VWaOJus+VtRKF7qro5
	u
X-Google-Smtp-Source: AGHT+IELiNk3d6+2EJT1O40P42H11PctsxY7oR3mNu8I1PiWpljSzKyQ7AGvIYC1PSQ2nfqyg69CTA==
X-Received: by 2002:a17:907:2d10:b0:a9a:1115:486e with SMTP id a640c23a62f3a-a9e655b9327mr1752185166b.45.1730853583709;
        Tue, 05 Nov 2024 16:39:43 -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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 2/4] x86/ucode: Use bootstrap_unmap() in early_microcode_load()
Date: Wed,  6 Nov 2024 00:39:36 +0000
Message-Id: <20241106003938.3453243-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
References: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

If bootstrap_map() has provided a mapping, we must free it when done.  Failing
to do so may cause a spurious failure for unrelated logic later.

Inserting a bootstrap_unmap() here does not break the use of ucode_{blob,mod}
any more than they already are.

Add a printk noting when we didn't find a microcode patch.  It's at debug
level, because this is the expected case on AMD Client systems, and SDPs, but
for people trying to figure out why microcode loading isn't work, it might be
helpful.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

v2:
 * Drop initialisation for rc.
---
 xen/arch/x86/cpu/microcode/core.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 97ed1f11588a..a2b03c52e86a 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -849,6 +849,7 @@ static int __init early_microcode_load(struct boot_info *bi)
     size_t size;
     struct microcode_patch *patch;
     int idx = opt_mod_idx;
+    int rc;
 
     /*
      * Cmdline parsing ensures this invariant holds, so that we don't end up
@@ -904,15 +905,24 @@ static int __init early_microcode_load(struct boot_info *bi)
     patch = ucode_ops.cpu_request_microcode(data, size, false);
     if ( IS_ERR(patch) )
     {
-        printk(XENLOG_WARNING "Parsing microcode blob error %ld\n",
-               PTR_ERR(patch));
-        return PTR_ERR(patch);
+        rc = PTR_ERR(patch);
+        printk(XENLOG_WARNING "Microcode: Parse error %d\n", rc);
+        goto unmap;
     }
 
     if ( !patch )
-        return -ENOENT;
+    {
+        printk(XENLOG_DEBUG "Microcode: No suitable patch found\n");
+        rc = -ENOENT;
+        goto unmap;
+    }
+
+    rc = microcode_update_cpu(patch, 0);
 
-    return microcode_update_cpu(patch, 0);
+ unmap:
+    bootstrap_unmap();
+
+    return rc;
 }
 
 int __init early_microcode_init(struct boot_info *bi)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 06:17:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 06:17:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830581.1245632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ZLy-0004VG-Ns; Wed, 06 Nov 2024 06:17:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830581.1245632; Wed, 06 Nov 2024 06:17: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 1t8ZLy-0004V9-Kn; Wed, 06 Nov 2024 06:17:18 +0000
Received: by outflank-mailman (input) for mailman id 830581;
 Wed, 06 Nov 2024 06:17: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=gw8+=SB=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1t8ZLw-0004Ub-OE
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 06:17:17 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2405::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be313dbb-9c06-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 07:17:05 +0100 (CET)
Received: from SA9PR13CA0086.namprd13.prod.outlook.com (2603:10b6:806:23::31)
 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.8137.19; Wed, 6 Nov
 2024 06:16:59 +0000
Received: from SA2PEPF00003AE9.namprd02.prod.outlook.com
 (2603:10b6:806:23:cafe::66) by SA9PR13CA0086.outlook.office365.com
 (2603:10b6:806:23::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.11 via Frontend
 Transport; Wed, 6 Nov 2024 06:16:58 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 06:16:58 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) 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, 6 Nov
 2024 00:15: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: be313dbb-9c06-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNTo6NjJmIiwiaGVsbyI6Ik5BTTAyLURNMy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImJlMzEzZGJiLTljMDYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODczODI1Ljg3NzM1OCwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JKw5yUWjj5LnMWGzFUgpz1chd3kSgUdMA28C801bJlWf+B+KClXD72nhtApisZYOMc3S7qoDJmR/PtiK4zYLqLliRye8A5wlFUhmUQ2zIBMb7Oot4tgKr03X+dCGGQ0QLMfQvZZpYN4rUyavWVDoTua0u/sEHM6DElbn6S+tqfAUlaaFj9g0t4n330EELz/1ik5Zy6Oic4kUK9M8UhmbtAsTBPxoB5OywtI3CeyQaa821+iXNc4jCqBA1jXHh/JY0dgCNg043PITRwSkLtX+78lfg75A+6xnZdPsGjfKI52xip2eHJMY7Q9Ua9L6J12aaY+IPtNuMnzvZ8x9WXee3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y/yFvXqsoiXHrBBPosOdrUbPPJTAhrEOBVR0YQqMyMw=;
 b=b9Pvg+gOpwaBxBXAYc/DZKpbDb1BCilo0aCptIhG4wfauGaur0bUKgYImvZjOeupmnHRFW6iLgh47WyEOA/KVDHm4akd2Q3cf9iWe0hXg5nSIrJ7s4sXlTP5TEdx/WCF5K/3mgU7Ij5cuWe3AqfyB4gpmxI1S2gq1Hri+nkSLcZjBTvjKiRSM9Bdt9rqHq0dc/M1bbCICcYCDNs1frO/cscGZCQSwX7oM+uBUV/mzlTfFIaAMvQzpKaZzgfOX6g72QxHLOWkEfAJj2X+LfeCVIRqJlElCL3ugDSC1MJarqnJKzEhHIIPw2gUrA49jCBoVvAD9osGZK18v4X+RSDUow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.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=Y/yFvXqsoiXHrBBPosOdrUbPPJTAhrEOBVR0YQqMyMw=;
 b=MtUhI5x8E6qJwk2kXe9eEhH0MCWZPQoAPuTV9cgu0KVQPbTy38UV6+xQDJ40b1dhmXg40Pvlo+9rr+ghNq3dV6U1K3V1HUUYVcG3oA6V9LZFeyFW8uUseDGMnun4IE0qLPCpp9Fqauf4gv8HChbnEjACmU3Qre/KcsafR/IneLk=
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=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Paul Durrant <paul@xen.org>, "Edgar E . Iglesias"
	<edgar.iglesias@gmail.com>
CC: <qemu-devel@nongnu.org>, <xen-devel@lists.xenproject.org>, "Stewart
 Hildebrand" <stewart.hildebrand@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	Huang Rui <ray.huang@amd.com>
Subject: [QEMU PATCH v10] xen/passthrough: use gsi to map pirq when dom0 is PVH
Date: Wed, 6 Nov 2024 14:14:18 +0800
Message-ID: <20241106061418.3655304-1-Jiqian.Chen@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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE9:EE_|MN0PR12MB5859:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ea4a54c-d44b-4519-3300-08dcfe2a9ea1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Evt0MQeRA3d1BcAZs/uSvql9sDZl21PtyYkV+ncMfYP2Z5HeNQVEVARsvaLH?=
 =?us-ascii?Q?ZhAPQtYHn8q/K0WWuXcIMFGN5zrbml02GyeZbjUb5VnNPUTGLwC6ayEV8KYm?=
 =?us-ascii?Q?Ckysm/UyJqpbfVO2i3idCz6zsRBbbUl8XbCboTum1uW87WXsm5wpOemG7Gg/?=
 =?us-ascii?Q?YVol9sSu6+pb7QsSY2+56nCIwICUHACLebvO6+X2Io0D/D4ZFyo32umtKPM0?=
 =?us-ascii?Q?CuPhNcRb+jLTB8AUv1Mom7CQXoHBylUbNPFwsnK6mxYNbcpGeoNZjYpFRBBb?=
 =?us-ascii?Q?BLG2zZSgSzbXoyCZKnYkrOFe8mj27nD9F3Dmfx+xEWUe4db334rs5SZoTbHr?=
 =?us-ascii?Q?rrBt/h/9+1LlFTCzrXP9wkGdb9fvfuCZ6WhcMYLuBYHyACi3LHJNIWUniEMf?=
 =?us-ascii?Q?F4pDF+h1Dhkwnc4t3Qd5Hc7XsZQ8vIBXz3CGIv7iKlbQ76FEML3S1g3CRaK1?=
 =?us-ascii?Q?kPPj09F5cm/D2NUerptEa9pdvOtG/KyblgarMy9B1hT6pwBew0XTeznkdo81?=
 =?us-ascii?Q?jJUPrMPsjU2LPmSDCdj/PTNgNYeT8cOIcKX/b9pQU8Uw4sLnLe4mrFYR5+Oz?=
 =?us-ascii?Q?OCLfrZmANvkGt6KrzmHKg3oCJPJlLBzPn6bWlws4rsjf0QoMW4IOvZ0WiLHb?=
 =?us-ascii?Q?t9cDrbxrGkYFAsVeOevappIkNMYVnibhXlA5QtDUdqAx87DjhO092cGixAFv?=
 =?us-ascii?Q?c8OgMgniZNYe6lcECsouN8U2QsD8Hn/fUgzUk4JuEY4SNP3kYMKJd6qtxXUU?=
 =?us-ascii?Q?nbeeqDtDpuTfnOwr1Zaj0WWnscaW1x7E3twiayEvpb9cRSgYVUjfiUHioMDf?=
 =?us-ascii?Q?Y27vSZlvh2HEMJPlpF4oJChdl93p7sq5Cjm1c0BI4OvX5gr4lCZvRXgEyZak?=
 =?us-ascii?Q?sRU6Zpzkyt5/xv40rhtAaaNB+v5TKhGNPM7Lm53L718VqngIu2SSkJiTxBf4?=
 =?us-ascii?Q?wpyxWTngaUWhnZKPSgW9r1QPY4l0Fhwl5unHMl1awhZ98kLrI5+1pkSJt4WU?=
 =?us-ascii?Q?NyvFHDgQMDixp+yTy6cIZL8RzmDhG/UHrX5QBZ7pYCjMGpH+hZfHnBmEgjmO?=
 =?us-ascii?Q?zuxpPYeFRb079sa8tldcM7o1STWK3IlBpr1lf7LfU/MiT7nyjReGL6KSldZR?=
 =?us-ascii?Q?ZKAhoXd6Xva+4NQpMKUnn4CwoxXFD+6MwIH3XQXbts6uW/yULfRNMcF3UnbI?=
 =?us-ascii?Q?pT9irGacFC9e+jZBGQPto7bYTQlrYduttroPFmXiMqG1AuYD/XFBrarvD2uB?=
 =?us-ascii?Q?YAHKhrLeTbM45ONTL96+EaK4aTKaPjYpw07hT6Aqy9sKUFdj9x4IMrk1o13O?=
 =?us-ascii?Q?x7nvI1g94Qnk2mGgB3XZO5poUemzK4x+XWQsvFw/k+heKmvu113aYWq/aXjE?=
 =?us-ascii?Q?sPL2k4uNYO8OjypOorT02Rhelhrdl8CR06YoTuloZATZeCcDMQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2024 06:16:58.2276
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ea4a54c-d44b-4519-3300-08dcfe2a9ea1
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=[SATLEXMB04.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: MN0PR12MB5859

In PVH dom0, when passthrough a device to domU, QEMU code
xen_pt_realize->xc_physdev_map_pirq wants to use gsi, but in current codes
the gsi number is got from file /sys/bus/pci/devices/<sbdf>/irq, that is
wrong, because irq is not equal with gsi, they are in different spaces, so
pirq mapping fails.

To solve above problem, use new interface of Xen, xc_pcidev_get_gsi to get
gsi and use xc_physdev_map_pirq_gsi to map pirq when dom0 is PVH.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
Hi All,
This is v10 to support passthrough on Xen when dom0 is PVH.
v9->v10 changes:
* Check the return value of function fgets.
* Added comment to explain why set the length of array 'type' to be 10.

Best regards,
Jiqian Chen

v8->v9 changes:
* Moved the definition of PCI_SBDF from /hw/xen/xen_pt.c to /include/hw/pci/pci.h.
* Renamed xen_run_qemu_on_hvm to xen_pt_need_gsi.
* Renamed xen_map_pirq_for_gsi to xen_pt_map_pirq_for_gsi.
* Through reading /sys/hypervisor/guest_type to get dom type instead of using xc_domain_getinfo_single.

v7->v8 changes:
* Since xc_physdev_gsi_from_dev was renamed to xc_pcidev_get_gsi, changed it.
* Added xen_run_qemu_on_hvm to check if Qemu run on PV dom0, if not use xc_physdev_map_pirq_gsi to map pirq.
* Used CONFIG_XEN_CTRL_INTERFACE_VERSION to wrap the new part for compatibility.
* Added "#define DOMID_RUN_QEMU 0" to represent the id of domain that Qemu run on.

v6->v7 changes:
* Because the function of obtaining gsi was changed on the kernel and Xen side. Changed to use
  xc_physdev_gsi_from_dev, that requires passing in sbdf instead of irq.

v5->v6 changes:
* Because the function of obtaining gsi was changed on the kernel and Xen side. Changed to use
  xc_physdev_gsi_from_irq, instead of gsi sysfs.
* Since function changed, removed the Review-by of Stefano.

v4->v5 changes:
* Added Review-by Stefano.

v3->v4 changes:
* Added gsi into struct XenHostPCIDevice and used gsi number that read from gsi sysfs
  if it exists, if there is no gsi sysfs, still use irq.

v2->v3 changes:
* Due to changes in the implementation of the second patch on kernel side(that adds
  a new sysfs for gsi instead of a new syscall), so read gsi number from the sysfs of gsi.

v1 and v2:
We can record the relation between gsi and irq, then when userspace(qemu) want
to use gsi, we can do a translation. The third patch of kernel(xen/privcmd: Add new syscall
to get gsi from irq) records all the relations in acpi_register_gsi_xen_pvh() when dom0
initialize pci devices, and provide a syscall for userspace to get the gsi from irq. The
third patch of xen(tools: Add new function to get gsi from irq) add a new function
xc_physdev_gsi_from_irq() to call the new syscall added on kernel side.
And then userspace can use that function to get gsi. Then xc_physdev_map_pirq() will success.

Issues we encountered:
1. failed to map pirq for gsi
Problem: qemu will call xc_physdev_map_pirq() to map a passthrough device's gsi to pirq in
function xen_pt_realize(). But failed.

Reason: According to the implement of xc_physdev_map_pirq(), it needs gsi instead of irq,
but qemu pass irq to it and treat irq as gsi, it is got from file
/sys/bus/pci/devices/xxxx:xx:xx.x/irq in function xen_host_pci_device_get(). But actually
the gsi number is not equal with irq. They are in different space.
---
 hw/xen/xen_pt.c      | 60 ++++++++++++++++++++++++++++++++++++++++++++
 include/hw/pci/pci.h |  4 +++
 2 files changed, 64 insertions(+)

diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index 3635d1b39f79..5e6230c4a60f 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -766,6 +766,57 @@ static void xen_pt_destroy(PCIDevice *d) {
 }
 /* init */
 
+#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 42000
+static bool xen_pt_need_gsi(void)
+{
+    FILE *fp;
+    int len;
+    /*
+     * The max length of guest_type is "PVH"+'\n'+'\0', it is 5,
+     * so here set the length of type to be twice.
+     */
+    char type[10];
+    const char *guest_type = "/sys/hypervisor/guest_type";
+
+    fp = fopen(guest_type, "r");
+    if (!fp) {
+        error_report("Cannot open %s: %s", guest_type, strerror(errno));
+        return false;
+    }
+
+    if (fgets(type, sizeof(type), fp)) {
+        len = strlen(type);
+        if (len) {
+            type[len - 1] = '\0';
+            if (!strcmp(type, "PVH")) {
+                fclose(fp);
+                return true;
+            }
+        }
+    }
+
+    fclose(fp);
+    return false;
+}
+
+static int xen_pt_map_pirq_for_gsi(PCIDevice *d, int *pirq)
+{
+    int gsi;
+    XenPCIPassthroughState *s = XEN_PT_DEVICE(d);
+
+    gsi = xc_pcidev_get_gsi(xen_xc,
+                            PCI_SBDF(s->real_device.domain,
+                                     s->real_device.bus,
+                                     s->real_device.dev,
+                                     s->real_device.func));
+    if (gsi >= 0) {
+        return xc_physdev_map_pirq_gsi(xen_xc, xen_domid, gsi, pirq);
+    }
+
+    return gsi;
+}
+#endif
+
 static void xen_pt_realize(PCIDevice *d, Error **errp)
 {
     ERRP_GUARD();
@@ -847,7 +898,16 @@ static void xen_pt_realize(PCIDevice *d, Error **errp)
         goto out;
     }
 
+#if CONFIG_XEN_CTRL_INTERFACE_VERSION >= 42000
+    if (xen_pt_need_gsi()) {
+        rc = xen_pt_map_pirq_for_gsi(d, &pirq);
+    } else {
+        rc = xc_physdev_map_pirq(xen_xc, xen_domid, machine_irq, &pirq);
+    }
+#else
     rc = xc_physdev_map_pirq(xen_xc, xen_domid, machine_irq, &pirq);
+#endif
+
     if (rc < 0) {
         XEN_PT_ERR(d, "Mapping machine irq %u to pirq %i failed, (err: %d)\n",
                    machine_irq, pirq, errno);
diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index eb26cac81098..07805aa8a5f3 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -23,6 +23,10 @@ extern bool pci_available;
 #define PCI_SLOT_MAX            32
 #define PCI_FUNC_MAX            8
 
+#define PCI_SBDF(seg, bus, dev, func) \
+            ((((uint32_t)(seg)) << 16) | \
+            (PCI_BUILD_BDF(bus, PCI_DEVFN(dev, func))))
+
 /* Class, Vendor and Device IDs from Linux's pci_ids.h */
 #include "hw/pci/pci_ids.h"
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 06:57:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 06:57:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830589.1245643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ZyN-0001VR-J7; Wed, 06 Nov 2024 06:56:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830589.1245643; Wed, 06 Nov 2024 06:56: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 1t8ZyN-0001VK-GT; Wed, 06 Nov 2024 06:56:59 +0000
Received: by outflank-mailman (input) for mailman id 830589;
 Wed, 06 Nov 2024 06:56: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8ZyM-0001VE-KD
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 06:56:58 +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 4e27274d-9c0c-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 07:56:54 +0100 (CET)
Received: by mail-oo1-xc30.google.com with SMTP id
 006d021491bc7-5edf76cd843so1874258eaf.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Nov 2024 22:56: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: 4e27274d-9c0c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMzAiLCJoZWxvIjoibWFpbC1vbzEteGMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRlMjcyNzRkLTljMGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODc2MjE0LjUxMTM3MSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730876213; x=1731481013; 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=V+jgd88ZK3qq5xRmAbZHFebwmYfOkWBHFgyGpvETKNY=;
        b=O/Rz3NDtsM5ZaK/ANXPDBQMhsyG9rO8aoa749JHyyGOJwaCiQCTN13RG9ABLl/jkBb
         nSW3rRZIzDCQgcoXl6pWtChYV8+WlGd4hzpkWN3cM084YpBZxczfuf9em6PjV6mi7t/Q
         64DC3urbUgRJRdUWBmCLkw/e+po/koVPrYr7k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730876213; x=1731481013;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=V+jgd88ZK3qq5xRmAbZHFebwmYfOkWBHFgyGpvETKNY=;
        b=NZAVBaZvMh45nT8u9BI36qU3OI2hy9kT+CwZ8O6j0KVu9TJYKsrWDvTJFTMkC/knV9
         bSdBNu7kby8FjUVh4xpf/JSyuqEW48KUNjyPWSqqHFx40gtK48V3DrFcDNiI9YwA5Dqh
         iTGH9IkSMGTjrHeLejSc//UQWZwlGwVT3tNoyCWg2DWGWR5Tl+m8cJeFZqepwKLpcmHP
         UR7cvzakvAup+3vtUp8G/a8LkNjFSAv4lFQaPHLf0UvFdCoAgQvsK5iVXsAWweKEqQet
         uU4fH2PCxwkk++qyOaD1otRU3QvXJkzBgz5qR/MHqBLgyiRX94WieP52GoQvbCbrBMyp
         mt5A==
X-Forwarded-Encrypted: i=1; AJvYcCW8aWkNnNOVCa1ys8st5WE58akhVh/o26gdZR+zYtDNdY37qFYPwL1VoBZQk3YTLPmfxcU5gtIRWkU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXa9tK95p+GkPIg42Aw/HuOKSNeBIBpQTJGAxDDbn92KkHl3IA
	/I1yPv2YAqI+9A6P5y4nhTCgAhsSlgFf7ReKv1+RJK0JPbKC5kzKQm/nMdBsOJwoBwinX2MRyzn
	DscQeISWM8/E4h9p5BgdoGSQB33i4LOLnSjNaoQ==
X-Google-Smtp-Source: AGHT+IEyX2Iyn0+b5+oCPN05+d+JwZ0VTVG9rHvVEN9DDSxyet5nrsgJMSEcAdMYNA8zaSKlVtHb1I8WZ/7Yi/dvIa4=
X-Received: by 2002:a05:6820:80b:b0:5e5:c489:6f3c with SMTP id
 006d021491bc7-5ede651022fmr11044664eaf.5.1730876213137; Tue, 05 Nov 2024
 22:56:53 -0800 (PST)
MIME-Version: 1.0
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com> <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
 <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com>
In-Reply-To: <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 6 Nov 2024 06:56:42 +0000
Message-ID: <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@mail.gmail.com>
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
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>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 5, 2024 at 5:06=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 05.11.2024 17:35, Frediano Ziglio wrote:
> > On Tue, Nov 5, 2024 at 3:32=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >>
> >> On 05.11.2024 15:55, Frediano Ziglio wrote:
> >>> This toolchain generates different object and map files.
> >>> Account for these changes.
> >>
> >> At least briefly mentioning what exactly the differences are would be
> >> quite nice, imo.
> >>
> >
> > What about.
> >
> > Object have 3 additional sections which must be handled by the linker s=
cript.
>
> I expect these sections are there in both cases. The difference, I assume=
,
> is that for the GNU linker they don't need mentioning in the linker scrip=
t.
> Maybe that's what you mean to say, but to me at least the sentence can al=
so
> be interpreted differently.
>

Why do you expect such sections? They are used for dynamic symbols in
shared objects, we don't use shared objects here. Normal object
symbols are not handled by these sections. GNU compiler+linker (we
link multiple objects together) do not generate these sections. So the
comment looks correct to me.

> >>> +    symbol_re_gnu =3D re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
> >>>      for line in open(args.mapfile):
> >>> -        m =3D symbol_re.match(line)
> >>> -        if not m or m.group(2) not in exports:
> >>> +        name =3D None
> >>> +        m =3D symbol_re_clang.match(line)
> >>> +        if m:
> >>> +            name =3D m.group(5)
> >>> +        else:
> >>> +            m =3D symbol_re_gnu.match(line)
> >>> +            if m:
> >>> +                name =3D m.group(2)
> >>
> >> ... uniformly use m.group(2) here (outside of the conditional)?
> >>
> >
> > It could be done. The initial idea was testing that VMA and LMA fields
> > should be identical, which gives a bit more certainty about the format
> > used.
> > About map file format, both formats have some headers. Would it be
> > sensible to detect such headers? BTW, probably a mis-detection would
> > cause symbols not to be detected.
>
> Not sure either way, to be honest.
>
> Jan

Mumble... I'm looking for an alternative, maybe I can avoid using map files=
.

Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 08:05:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 08:05:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830598.1245653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8b2g-0002Kl-36; Wed, 06 Nov 2024 08:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830598.1245653; Wed, 06 Nov 2024 08:05: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 1t8b2f-0002Ke-WD; Wed, 06 Nov 2024 08:05:30 +0000
Received: by outflank-mailman (input) for mailman id 830598;
 Wed, 06 Nov 2024 08: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=lQG8=SB=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1t8b2e-0002KX-Jw
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 08:05:28 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20605.outbound.protection.outlook.com
 [2a01:111:f403:2613::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df8ddcb7-9c15-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 09:05:23 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DBAPR03MB6392.eurprd03.prod.outlook.com
 (2603:10a6:10:192::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 08:05:20 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%6]) with mapi id 15.20.8114.028; Wed, 6 Nov 2024
 08: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: df8ddcb7-9c15-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjA1IiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRmOGRkY2I3LTljMTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODgwMzIzLjUyMzg0OSwic2VuZGVyIjoibXlreXRhX3BvdHVyYWlAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ap00gm3mPYT9snOiWYVhUFaatO7l4FNowGNkOLER71OeihbI5nqtHSVaddIB63Fgi7+/eoODMx9451XefuQ5J7CkpUM43c/inP6bXGrxviB4+2REUXNGK6HwvV6ICYiIMfjjANyj4PwNfJ2ttorcenWe9kIZj2BEGm/ElZzN112pshJXMMh5HhMp3F3HwA7nWstx7MQbWGuU5KqqBW9XK8Y+Z1mZJLpiLs9ecbdvmK2QaGAhS2XBlNOTctszySyZ1saBtlAlCMtkHD30HcrRjok4BuWLOg5SZCKOIoK9uuqhYBGBpjxxS5UvlGcXNepqenyIYC/3AB5rOkmA4fZftw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pn7wSdWlSZGzjxlyLqWviHvXcweDVYrt/uwijGWzxoY=;
 b=vQycoSpeTCT9hVW0yvThGLjuYCQOzNTVtkREeErYCroewT9Zfj7LBC016fUYGI5FmNyU9uYvQJap5ew4xk1Cox/4Pv2QW0gUAmeExBf0dO9+mHczVcThJpKzQecFdoMf/5p4sArK9uB0PPCRj77qdTJqbvw6JJDwRUYhDrs/VVTi0Na8ez1GyJ7yr8IB5W6Z10wC5vhKW5K9nnzFGBn2toGiQvPT0+SpwkRAudUBE0m8WsT3SHbfO56pH74/uzQy3SB9FrK3cY9iRtXQNxocoXFC5WcouQJtR25UBACDTIy5rRhYYlE0Sb3aXotv0KTNjI1kBWznCiI570kBgKJ1ww==
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=Pn7wSdWlSZGzjxlyLqWviHvXcweDVYrt/uwijGWzxoY=;
 b=DnpEM8qayArSNIuAlpQa3RQcoaigbNJjFlAib8/8Pd7NJcS1hOk8EDbcpNvjjBWvl3LhoCtowrLBWaUJJ28KNPiJwDF+Mg322EuFUHtTmXsJ9GSOa3hKRlfR0vFPmoxXxntkwJlXvdNsknCFrAGP1kR6AbpNfBdFED4qgpN+oivXKWMOj8s7/K7C7I48zWNATq2o15xzcZ2oNLTVT6Rtv6eyp5gIkR5MKjCu4RPjk8AyOFbI3U9CT576XCfGauLjR/4y2M4AxzwryfT4y4pAENdJtKbRvPtmA2G0DQw2eNYDTRNP/jIb9zhjIj89K1eecLfzXT7Am2BaWpMHszMSjg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Topic: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Index: AQHbMCKf4QVge+H9k02dX4ZlwzpGqA==
Date: Wed, 6 Nov 2024 08:05:19 +0000
Message-ID:
 <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@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: PAVPR03MB10102:EE_|DBAPR03MB6392:EE_
x-ms-office365-filtering-correlation-id: 4bd54490-b9b6-41b5-03fc-08dcfe39c1d7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/9ruNTZZFrF5oXayaD81E5yJPHAg+DW5oqI1L8l0+dIdNx50ByMyXjOZpb?=
 =?iso-8859-1?Q?DqnATnEkrjVcjzmhP11OO6PNAubLcXyABjrNiuZMXUCE8MBSCDTbYF6Moj?=
 =?iso-8859-1?Q?Sk2KEPv64d9Dq0eCnWPl+J/M6ovissRh+p7jxcBKIVE4feB1cncM8DdLI2?=
 =?iso-8859-1?Q?Rd5qWqc+yLe5c/tcik4RgXKcIqapfJ3kwo4c05Rx41lKtK4Dk6UdsxLAd2?=
 =?iso-8859-1?Q?ScsJwc8W5TSJfCDGClPGIj+WD039FJq+xp0y8Ji+nak1jVWY+Gs+horX6c?=
 =?iso-8859-1?Q?Kja1h0307LRlC+i9pfgOpGX8jqXrNxXtrYhLLvwM4FLQUi7DYR5bvz3uwU?=
 =?iso-8859-1?Q?kjs8Fl55vDIAAw91WMy4o5UkWUvhyADByBj/fdnuRBI/RdI6Onso/lzoax?=
 =?iso-8859-1?Q?V/t3lH8lNXbOcao7qjSB57sa5RiPsXv//AYwuV36qHYlNItVoCenDHRYQX?=
 =?iso-8859-1?Q?/icsTQPIh+SWHYSdH4HcRhln/A1T5vzEwPZTHwMzjzol0tddAhEjMJ1E+V?=
 =?iso-8859-1?Q?lOngitMJJKZqB8TFxCOryAsn9bxhvtFvajhL8cjUmm4hJZeFm1KWL9aP6L?=
 =?iso-8859-1?Q?Z8C8Xy5sONKyY9o/T92sh+NTJ4rd4eYh2W31J8W5Gp/OKgU8L/W7EwSmZH?=
 =?iso-8859-1?Q?1wvq68PCwsAfgomxMMnMyBBhX7sVIIE3G9WyB3pNdRrvUsT7Zn/BOHGLyt?=
 =?iso-8859-1?Q?xkiqTgFFy+bRqDxtbY7CmduiKj4tuhDIUnN0HDkgtTVpnT2CnjRjuHwI9H?=
 =?iso-8859-1?Q?BJjFMUQZjHkGQLRTDuZwxKL1M4imyoYp0ua4S5E0FU5HA1XHxW2kwKzrR7?=
 =?iso-8859-1?Q?rQIxJPDSGANv+pOqN8r7kdx5Vab2Cr3O+slpMK2L5CHexJ8MBPrclqQ63C?=
 =?iso-8859-1?Q?caOuQAjvvqhIlva1Z/NPEERe4bVxpkCkUlt6Vo71oVAA7NSO01tIAamvuh?=
 =?iso-8859-1?Q?608OwL27j99Bfnnj+sDefQRSUwrhFtHTp7CQ8GEBC4wCFnEDTadnm6r8D4?=
 =?iso-8859-1?Q?3FKekU/u1f4ivomDMYyzEn+myxpKfso/0RFmuqZUbkw6LpmIBA3DL28eH7?=
 =?iso-8859-1?Q?EENVeRTq+OCY6OzCgYBIL1pS/UUKyZ/aJl+je9HF10L7JknYD5PGVM2bfD?=
 =?iso-8859-1?Q?V0iTM9MRfnWPuvuy4vbFIsFjY/tps8i8+jQCahg8GnNewc7D4A7740+ejA?=
 =?iso-8859-1?Q?gPaCqW6Rrj57ywLGf2DyBnBep25rSX+DIubQPXlao6xtpsTlmI6ibgw5v1?=
 =?iso-8859-1?Q?Q+RBJgiLEIy8bnV2IG6qpP/IzYpANkzubj56DPME//SCW+vZe7jyUDyIPH?=
 =?iso-8859-1?Q?sLps3AXe1Qu1WwEMqLIieEg4i4+eMk+u1fuYML01/oalYqbL+0Rpr2fVqr?=
 =?iso-8859-1?Q?22hWmQQkEe+0F6ZLGS0qK39hngwciwPhAlCjzrfnr+0N+rEirV9ro=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+YRCoEDfla31ikfxBKZ5aR3BNEH/Nl/YVSXVHErzp9k6wKkae7MBDvqW2f?=
 =?iso-8859-1?Q?GHsANpUl2l2oCt7RGN5x+7EN0xRTeuSNQsCUgNNf23etTOnmGh5gOiWG4h?=
 =?iso-8859-1?Q?7TUAlf1tABdP7SG3SzCv6WLACwXGFxgzclEEpa04r3/2nntN7l8GXC61c7?=
 =?iso-8859-1?Q?/XmGMIIDd1PvRupZ49nExAMpyeP++3vn1KDOCNSkNVutyQfb/uUxG2TU9y?=
 =?iso-8859-1?Q?vur7FEbVKvVqJhy8GP2DcPFXFJ6oBlD8ZmPtoA5Q/vm+wNZ2WvtXv8BzlU?=
 =?iso-8859-1?Q?Ab1ZKj8PHW9jq+po5HjZy9+JDWxPMVaBZkPq6oRGoGzAqs79+NKrxj8umJ?=
 =?iso-8859-1?Q?NbIEJa8za/iVg9QHD0KGPbGdAwujVRMrkQ4XiDlw59y5TH3gRl2VfT+GMX?=
 =?iso-8859-1?Q?ih/ofHKC2xIxVRFyfbZ75+ZY3dI+Cz16l8fDBBH9mZgT7n91oLI0A9QkzE?=
 =?iso-8859-1?Q?pBfIm6FxlGKmygLukYH8fGw7k7PfP73WXEdayuEM768ITe4iAhbU0njBWy?=
 =?iso-8859-1?Q?HJns3bHmtCVkvcCLQugK+aQ/gUplO6uUfR32Bf+RH4txCdj1aWMqB3uyJw?=
 =?iso-8859-1?Q?VHa6x9Tn76vOcGXGA9AQfBE/BSmzNilYQd/+TqhIz10XGkpIf9N3hopWpe?=
 =?iso-8859-1?Q?F/Wa8+03bgU/pUhV3nw22h6+dsH5f1D/RsuFiL94UC3TqTFvoSA+yxukzb?=
 =?iso-8859-1?Q?FdLONpMm/70Fj6kS3IPVFU/XWLrmj5BYbK8oDnaQQ1yf+I361wDwi9tdWF?=
 =?iso-8859-1?Q?7JL4UqsU9xf4gBASuZfy3zjUVXHcJbQCR+FFBY6bGi/gGQ6i82GumjqUTy?=
 =?iso-8859-1?Q?7VBwJ0PT5eFQ0jIYC4uVErZpkh+gJ8geDvB3wXmnipbucbzrSYAdzhQt6L?=
 =?iso-8859-1?Q?nQy7F5DMD1F90bX/5/HTKGcnPtGG63piNGXFoxgiLVD8fHAjgTpgI7lzTp?=
 =?iso-8859-1?Q?fFyc7tENoFsY71ChiuwJ7BKGC5Dw0qDvDNRkN1+3D6zc1QPJ5EmiUWlIFL?=
 =?iso-8859-1?Q?GhWefFm2EClk05Lnbll2H9HhDnD3LOuC0lFg4jE23FMWUdU//vZpeujA5c?=
 =?iso-8859-1?Q?AHNfYlI6NOtQfreP4vcYnbSu55l2CFH8qAtJg1xU4ZYrsQJnnL/rsdp7rX?=
 =?iso-8859-1?Q?7+MKlZgRd5+JoFWSwgMbqWqll+1N1YvgvzHDip/s+t9jCgcvSaYWOEFcpS?=
 =?iso-8859-1?Q?/klu3NpsX51UeK+0GJYfXY+6MjWFiLQ0Bz/xVaB2GqsYoIqBbPz1NEQTSb?=
 =?iso-8859-1?Q?ATKsRRiqPL+IQieFcxDVzHq36s71EUJIq9NyrbIlg97NrPwiqaIrO6cp5K?=
 =?iso-8859-1?Q?IOEddEIWgjaRO18Tdzk+Qw/fe00ZRDNSm8igooHAWn37XVr3/2DNIVAZXQ?=
 =?iso-8859-1?Q?9i/84K2ngHnjImTz4JF4IB3+IrljAk3iTqSdzCVNNu0Lqyc+zY6r0yQOhX?=
 =?iso-8859-1?Q?1S338J/ui0MrSZw1AixohwNv3alrLn2FSjN7ZzasT9vNtmR5x/mFnwo89U?=
 =?iso-8859-1?Q?GGnUCcbNBcePdZqDF3PA3MmaayrHjZ3ay0SVdIIoLxorq9EM5pk2pMwnzv?=
 =?iso-8859-1?Q?a9jyukgsBow1W0c5DMqHQVOKCRdb25Gr51utELWQndVGzdZKmvF3fr640S?=
 =?iso-8859-1?Q?GwTsil+aVuWq6FsieuFv9yymt8dr4WMkXzT09dzA379uuUAkrM9nhLFg?=
 =?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: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4bd54490-b9b6-41b5-03fc-08dcfe39c1d7
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2024 08:05:19.8212
 (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: AdXTMO7xQ+RXl/b10ch7gf9QFcvHev3tZwBgqVXgLLw7+YRZ+ZbjN+kSiUllxszbNutTeldAkXA/TYNAWfApSw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6392

During the construction of dmask value, it gets shifted by
(32 - msi->vectors) bits. If msi->vectors is 0, the result of the shift
becomes undefined due to shifting by a size of the type. While this
works fine on x86, on ARM the resulting mask becomes 0xFFFFFFFF, which
is incorrect.

Fix this by adding an explicit check for msi->vectors =3D=3D 0.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/drivers/vpci/msi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index 7bda47e7fc..787296fd42 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -172,7 +172,7 @@ static void cf_check mask_write(
     struct vpci_msi *msi =3D data;
     uint32_t dmask =3D msi->mask ^ val;
=20
-    if ( !dmask )
+    if ( !dmask || msi->vectors =3D=3D 0 )
         return;
=20
     if ( msi->enabled )
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 09:00:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 09:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830613.1245663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8bti-0001MY-1Q; Wed, 06 Nov 2024 09:00:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830613.1245663; Wed, 06 Nov 2024 09:00: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 1t8bth-0001MR-UI; Wed, 06 Nov 2024 09:00:17 +0000
Received: by outflank-mailman (input) for mailman id 830613;
 Wed, 06 Nov 2024 09:00: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8btg-0001ML-It
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 09:00:16 +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 85eaf15c-9c1d-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 10:00:08 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9a2209bd7fso1105690866b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 01:00:08 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb151c478sm248084666b.0.2024.11.06.01.00.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 01: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: 85eaf15c-9c1d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg1ZWFmMTVjLTljMWQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODgzNjA4Ljg5MTAxNCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730883608; x=1731488408; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=5gXuw3M5QK9WRdk3YcDHrwpzpaDmK5pY+W2E0c5Kwd8=;
        b=SECcHMxKPliWFuo3nwiKfncXUNfkjehYL8LG6rJwjP+jLR15PbPy8NG7B3uQC/cNMC
         GLQnfni31YcDYnkUzFfzz3BZVKdbzZJvJJrPp+Bwooo5JnhVLqEwtOEsuUHOPi7Piale
         pMyo25I+tRYZcC1FcNQnwzz/F1ug8Wsuo+dEQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730883608; x=1731488408;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5gXuw3M5QK9WRdk3YcDHrwpzpaDmK5pY+W2E0c5Kwd8=;
        b=CdT+V4sDXaZ7zjrviXNAI11DYsyUOploQV9TdLmNyYP5FZLQyrbf5alnA4pGgmMag1
         Ke6e4SDZUlUhkUNxzCx4UKVDo6JFdOF4dM54wpWyHhj/3xlRiwRm8cbYkxW1LiowK62j
         ifcr3lnbtD39cjiRikv+Vdb7ZlkvLXgI6DrVZff8O+y0pLD3pwFLx+nw5FbUhMlYFT5n
         B+KXkF+ytrzvn6gBB05/bpFPnZSfZfwCxxjF2EBOrsLco0bAQcWh9Mjh/x8vw4DNnDRU
         i2YKXICvyGjZNSFZ45F//2MPezCSylK3DDjrP/Vtr+xdqRuy8G2W2b9uA7W/1FronR6n
         Tanw==
X-Gm-Message-State: AOJu0Yw3m6ry4hFUg2aJ9TWAZV2Y1hrfgjX4itplJ/RZdVmF3xwh9Fep
	tz8xkPQCpKvEnffxL8Y4VG65B4CTDRzno0JhCv9P2Q8wixxwBo01SBwfyjgI3nvW6pEIVVW/mzo
	g
X-Google-Smtp-Source: AGHT+IF6lT6eOhIGGnqeb8TvNMBZ9KRoGQqvmn2HCxDDrniI79ne7OvBQWd/LN815Q7xgh4m2gUJQw==
X-Received: by 2002:a17:907:6eac:b0:a9a:7f91:8c76 with SMTP id a640c23a62f3a-a9de5a3e0ebmr4167151366b.0.1730883608235;
        Wed, 06 Nov 2024 01:00:08 -0800 (PST)
Date: Wed, 6 Nov 2024 10:00:07 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Message-ID: <ZyswF4grJSNcVqY_@macbook>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>

On Wed, Nov 06, 2024 at 08:05:19AM +0000, Mykyta Poturai wrote:
> During the construction of dmask value, it gets shifted by
> (32 - msi->vectors) bits. If msi->vectors is 0, the result of the shift
> becomes undefined due to shifting by a size of the type. While this
> works fine on x86, on ARM the resulting mask becomes 0xFFFFFFFF, which
> is incorrect.
> 
> Fix this by adding an explicit check for msi->vectors == 0.

I would also add:

Fixes: 188fa82305e7 ('xen/vpci: Improve code generation in mask_write()')

> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/drivers/vpci/msi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
> index 7bda47e7fc..787296fd42 100644
> --- a/xen/drivers/vpci/msi.c
> +++ b/xen/drivers/vpci/msi.c
> @@ -172,7 +172,7 @@ static void cf_check mask_write(
>      struct vpci_msi *msi = data;
>      uint32_t dmask = msi->mask ^ val;
>  
> -    if ( !dmask )
> +    if ( !dmask || msi->vectors == 0 )
>          return;

I'm afraid returning this early is not correct - the cached mask needs
to be updated, even if there are no vectors currently enabled.

The adjustment likely needs to be:

if ( msi->enabled && msi->vectors )
...

So that the update of msi->mask is not skipped.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 09:05:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 09:05:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830619.1245673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8byr-0001yt-Kx; Wed, 06 Nov 2024 09:05:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830619.1245673; Wed, 06 Nov 2024 09:05: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 1t8byr-0001yh-GP; Wed, 06 Nov 2024 09:05:37 +0000
Received: by outflank-mailman (input) for mailman id 830619;
 Wed, 06 Nov 2024 09:05: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=w0tz=SB=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1t8byp-0001ya-JG
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 09:05:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 469904d1-9c1e-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 10:05:32 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [78.210.84.32])
 by support.bugseng.com (Postfix) with ESMTPSA id 1D1814EE0753;
 Wed,  6 Nov 2024 10:05:29 +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: 469904d1-9c1e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ2OTkwNGQxLTljMWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODgzOTMyLjI1MTA5Niwic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1730883931; bh=FLjvsT56wnZdUW9ihgWebbU/BHeGLKqz6NMdyDugDdE=;
	h=From:To:Cc:Subject:Date:From;
	b=LcsuhhAFUSLcTtTjoF/pqdEmA4ewb18GZ6GxFQyjUNGI6r22GUxDUIEM3aTTBG2x1
	 RUYA9cLpGZ8gkU8uiGUqpPWJooIQ3v5oXdA5hnXYkdVJ1+RZxPbPmbe1VT/TtHyP8Y
	 lceZQpbI/YKm4BKPM1wY73/l9Y35H6iwv/qn5gkjpLmrMUckaf26+4jEL53z5m2gqo
	 PwpLHvwWCHrebBR2iGpMaw9U9a6oNtQS7quiTpvmMbE6AQq5TGfV4IF6/L6ABhS9BX
	 RrLW+8kfwgJUnNIm1vOCa+xcMvxAfea4DggKlg9J4NuVf7Hjj3fV9Jq0A8C7KkK4gL
	 JPcxLtcYdj6Aw==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 0/3] x86: address violations of MISRA C Rule 16.3
Date: Wed,  6 Nov 2024 10:04:44 +0100
Message-ID: <cover.1730880832.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Define pseudo keyword fallthrough for the x86 emulator,
use it and tag the rule as clean.

Federico Serafini (3):
  x86/emul: define pseudo keyword fallthrough
  x86/emul: use pseudo keyword fallthrough
  automation/eclair: tag Rule 16.3 as clean

 automation/eclair_analysis/ECLAIR/tagging.ecl |  3 ++-
 xen/arch/x86/x86_emulate/decode.c             |  6 ++++--
 xen/arch/x86/x86_emulate/x86_emulate.c        |  2 ++
 xen/arch/x86/x86_emulate/x86_emulate.h        | 10 ++++++++++
 4 files changed, 18 insertions(+), 3 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 09:05:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 09:05:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830620.1245683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8bys-0002D7-Pl; Wed, 06 Nov 2024 09:05:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830620.1245683; Wed, 06 Nov 2024 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 1t8bys-0002D0-Mm; Wed, 06 Nov 2024 09:05:38 +0000
Received: by outflank-mailman (input) for mailman id 830620;
 Wed, 06 Nov 2024 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=w0tz=SB=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1t8byr-0001yg-G3
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 09:05:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 473a7ece-9c1e-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 10:05:33 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [78.210.84.32])
 by support.bugseng.com (Postfix) with ESMTPSA id A75A04EE0757;
 Wed,  6 Nov 2024 10:05:31 +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: 473a7ece-9c1e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ3M2E3ZWNlLTljMWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODgzOTMzLjI5ODU2NSwic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1730883932; bh=NK6/l84ndfnWAGmtP6OHIKeJ23lpGjO2dcrBNpNvUxU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Z99WuS2+UF6fyFzN31Z0VD+zX8Yr2veiL0kO+rtCMMubiWPiLRRDlBCeiibM3v3pD
	 VzNYMfrUD71UOiicw1lx/b341KW4ECEoV21alKN3ERrW4vwPRqUr5GCuyQ2nBaErTj
	 8fSJPcHUaC0wDCfjqRiqju+p5VqhuBCXo/idZ6OPJUaoO++iv8+45S52xi3rynj4dN
	 LuE8CDXO2P4Bl8KikJZHfQa1W+cNQIiC1BbSXf4WJy0DRZV5KclPvAH9mYcQksKFdo
	 GGp/f2UMQDbe1b8Vz/RQbRC2gnRb/KTELsnDlEzEGup95oK/TcF1lzpMnVcOgJA0Hj
	 gvcgJiytRRwSQ==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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: [XEN PATCH 1/3] x86/emul: define pseudo keyword fallthrough
Date: Wed,  6 Nov 2024 10:04:45 +0100
Message-ID: <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1730880832.git.federico.serafini@bugseng.com>
References: <cover.1730880832.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The pseudo keyword fallthrough shall be used to make explicit the
fallthrough intention at the end of a case statement (doing this
through comments is deprecated).

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/x86_emulate/x86_emulate.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h
index d75658eba0..f49b1e0dd8 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.h
+++ b/xen/arch/x86/x86_emulate/x86_emulate.h
@@ -23,6 +23,16 @@
 # error Unknown compilation width
 #endif
 
+/*
+ * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
+ * the end of a case statement.
+ */
+#if (!defined(__clang__) && (__GNUC__ >= 7))
+# define fallthrough        __attribute__((__fallthrough__))
+#else
+# define fallthrough        do {} while (0)  /* fallthrough */
+#endif
+
 struct x86_emulate_ctxt;
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 09:05:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 09:05:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830621.1245687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8byt-0002FF-19; Wed, 06 Nov 2024 09:05:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830621.1245687; Wed, 06 Nov 2024 09:05: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 1t8bys-0002Eo-TV; Wed, 06 Nov 2024 09:05:38 +0000
Received: by outflank-mailman (input) for mailman id 830621;
 Wed, 06 Nov 2024 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=w0tz=SB=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1t8byr-0001yg-Pp
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 09:05:37 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 483db99a-9c1e-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 10:05:34 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [78.210.84.32])
 by support.bugseng.com (Postfix) with ESMTPSA id 651304EE0756;
 Wed,  6 Nov 2024 10:05:33 +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: 483db99a-9c1e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ4M2RiOTlhLTljMWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODgzOTM0Ljg4NDk5LCJzZW5kZXIiOiJmZWRlcmljby5zZXJhZmluaUBidWdzZW5nLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1730883934; bh=etnDQcjFydFYuWuYvuYIRamKA/E4dTICXmJpGZ5Jwgw=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=gblwzgjfOWd/OUhrCVpzeYtzQDSANzxfL+AAzVK2YZJ0wIUNCzAG1kzJTF7a1yxwj
	 0IGEmyWWSsWP39JNj78MA1bVwx73LxWrmbkrTzIFCo4Ik+Gdy1QGJbTrlQe/P9aHr3
	 evMCCxUOFGX+FBKLgoLoo/bXLXDERw2XJt+f15FZ1qrwkEGPsv4W5P6bmHTQG4Mi22
	 sBpMzsxNU6wIf6SOr5Z9bJPnmZTYY/BuKpydK/mzAV+AyR47q9xs8/SbXXClp2E76x
	 /WcU7dsJ11Q25MtttZAEnXPbLsQH50MEk889b/rdo7ztGsDzuIfTEqlwR/iLqpJa1R
	 NJosTV60UEzJw==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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: [XEN PATCH 2/3] x86/emul: use pseudo keyword fallthrough
Date: Wed,  6 Nov 2024 10:04:46 +0100
Message-ID: <9be1812e391ce893afa028c05614b74cddb197b7.1730880832.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1730880832.git.federico.serafini@bugseng.com>
References: <cover.1730880832.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Make explicit the fallthrough intetion by adding the pseudo keyword
where missing and refactor comments not following the agreed syntax.

This satisfies the requirements to deviate violations of
MISRA C:2012 Rule 16.3 "An unconditional break statement shall
terminate every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 xen/arch/x86/x86_emulate/decode.c      | 6 ++++--
 xen/arch/x86/x86_emulate/x86_emulate.c | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/decode.c b/xen/arch/x86/x86_emulate/decode.c
index 32b9276dc5..0a0751f2ed 100644
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -1356,7 +1356,8 @@ int x86emul_decode(struct x86_emulate_state *s,
                         --disp8scale;
                     break;
                 }
-                /* vcvt{,t}s{s,d}2usi need special casing: fall through */
+                /* vcvt{,t}s{s,d}2usi need special casing. */
+                fallthrough;
             case 0x2c: /* vcvtts{s,d}2si need special casing */
             case 0x2d: /* vcvts{s,d}2si need special casing */
                 if ( evex_encoded() )
@@ -1530,7 +1531,8 @@ int x86emul_decode(struct x86_emulate_state *s,
                         disp8scale -= 1 + (s->evex.pfx == vex_66);
                     break;
                 }
-                /* vcvt{,t}sh2usi needs special casing: fall through */
+                /* vcvt{,t}sh2usi needs special casing. */
+                fallthrough;
             case 0x2c: case 0x2d: /* vcvt{,t}sh2si need special casing */
                 disp8scale = 1;
                 break;
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 30674ec301..c38984b201 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -1460,6 +1460,7 @@ x86_emulate(
 
         d = (d & ~DstMask) | DstMem;
         /* Becomes a normal DstMem operation from here on. */
+        fallthrough;
     case DstMem:
         generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
         if ( state->simd_size != simd_none )
@@ -1942,6 +1943,7 @@ x86_emulate(
             break;
         }
         generate_exception_if((modrm_reg & 7) != 0, X86_EXC_UD);
+        fallthrough;
     case 0x88 ... 0x8b: /* mov */
     case 0xa0 ... 0xa1: /* mov mem.offs,{%al,%ax,%eax,%rax} */
     case 0xa2 ... 0xa3: /* mov {%al,%ax,%eax,%rax},mem.offs */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 09:05:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 09:05:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830622.1245694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8byt-0002MD-Az; Wed, 06 Nov 2024 09:05:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830622.1245694; Wed, 06 Nov 2024 09:05: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 1t8byt-0002LI-6v; Wed, 06 Nov 2024 09:05:39 +0000
Received: by outflank-mailman (input) for mailman id 830622;
 Wed, 06 Nov 2024 09:05: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=w0tz=SB=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1t8bys-0001ya-FA
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 09:05:38 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 493dd53d-9c1e-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 10:05:36 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [78.210.84.32])
 by support.bugseng.com (Postfix) with ESMTPSA id C49D14EE0758;
 Wed,  6 Nov 2024 10:05: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: 493dd53d-9c1e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ5M2RkNTNkLTljMWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODgzOTM2LjU5NzY2Nywic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1730883936; bh=WaAA3OoEOEbFSloOEWY4Sj5LACBV6phGN2xiIDD6990=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=aXWAPO5OBZ6looPpQRywTLMA/Ja3ydbFMhT44yV8sZRIbdH4CoX9+nBHrFdFcahnh
	 veWhMBE4HbLaLY6cvxxMfNyvW6s24Utn7NYk4154MFR2xeXibX7vftv6N6q5QtHwwZ
	 Lxv9fXNngMAEVPqdugM6qaa/uS5aOj5yYh8usuLtIylTm1owpZVh2A8vrNNnqUW5Ro
	 jcE9KNd5qXH6TT5TJ8uUGsg0AKx2vsseZ63KzLYQNi1k6/6t3QrfC3f9fDWBbBx4j5
	 v6WEJGqo3IVWmMhLcpCJTigArsp+w1snhspSX9eRTyRPVI8LGJgue3cp6A/Dj0b4yl
	 61ky1RCEe46vA==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 3/3] automation/eclair: tag Rule 16.3 as clean
Date: Wed,  6 Nov 2024 10:04:47 +0100
Message-ID: <4ab02498ab368964302b247341b1401eb53faa63.1730880832.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1730880832.git.federico.serafini@bugseng.com>
References: <cover.1730880832.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Tag MISRA C:2012 Rule 16.3 as clean for both architectures:
new violations will cause a failure of the CI/CD pipeline.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index e1d4ed012a..cb7d5743d2 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -64,6 +64,7 @@ MC3R1.R14.1||
 MC3R1.R14.3||
 MC3R1.R14.4||
 MC3R1.R16.2||
+MC3R1.R16.3||
 MC3R1.R16.7||
 MC3R1.R17.1||
 MC3R1.R17.3||
@@ -112,7 +113,7 @@ if(string_equal(target,"x86_64"),
 )
 
 if(string_equal(target,"arm64"),
-    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.3||MC3R1.R16.6||MC3R1.R20.7"})
+    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
 )
 
 -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 09:07:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 09:07:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830645.1245713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8c10-0004WN-N2; Wed, 06 Nov 2024 09:07:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830645.1245713; Wed, 06 Nov 2024 09:07: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 1t8c10-0004WG-JR; Wed, 06 Nov 2024 09:07:50 +0000
Received: by outflank-mailman (input) for mailman id 830645;
 Wed, 06 Nov 2024 09:07: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8c0z-0004W8-JE
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 09:07:49 +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 970207c1-9c1e-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 10:07:47 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5cef772621eso476018a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 01:07:47 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d667fsm253574766b.61.2024.11.06.01.07.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 01: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: 970207c1-9c1e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk3MDIwN2MxLTljMWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODg0MDY3LjA3ODU5NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730884066; x=1731488866; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=sNzyDLcyEHBNChmvncanPiVECOHrQoSFZh4RbJy4Wbo=;
        b=DaLre/KTvl7bNNZAo8v18IdvCI+6FJWTOCdqU5CgU3hWQX8F52f53i7rdZkFZqZnBx
         G47Tlsl/UFnj7G4OAzm38n4xxvLOYsI85I9zK2f7xH3Off6ACGDm3PcqMAvPGY/37ftx
         16pWsycUZLbUueuRo8ux2MY9augLJA9r7OS1k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730884066; x=1731488866;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=sNzyDLcyEHBNChmvncanPiVECOHrQoSFZh4RbJy4Wbo=;
        b=Yz+9JmdjgozQI1E9rQZeFoWeFwZfvtyRvLeN/lV/dJS5FmfYh9UiLbKQWFgL69lh/3
         29KaA3Iynh7mStxpTtAkm2Zoc5ZxQ+0znF8r1VkzcfX5WiTois9p8un+QXKYXGt9sDUg
         KXNKOb4uxwKRK52CxYnuM+O7+JMuhPyrZDy6HNfFybIMa8dAFCJDJpKdSMtcmtK2zRfp
         ayOdxbU4uWCWTx9X++CssaJz+XbuUZ1xdv+r/MqdSErgFSHs+TR/vm+FXrk6wYXl3TSY
         XMI5Fz89KUOPR9a5j31p/bqZjxzs6uQmtP9NPZHPfsssSgKEt/d+HWSx3H0Um155k20P
         jxSQ==
X-Gm-Message-State: AOJu0YyqrkwZRpegGpeDHjzgYetj+NuYcGr/c98CU/fFphpA0a2xuvaD
	iwj4by25BIsujvNpHDeCbtrQNUfok2m4nF15+rN30BNDgZc4StQsbWxxZY4Rbv4ehpKmdILWH4k
	Q
X-Google-Smtp-Source: AGHT+IFgD5taObDYJjmtUVV43dTGbIXCupC9FMeMLYEZMGm6uokV/U8/4ORkyGu0LoJOzJjlR/22IQ==
X-Received: by 2002:a17:907:318e:b0:a9a:478:2ee3 with SMTP id a640c23a62f3a-a9e50b57ba0mr2239065866b.40.1730884066377;
        Wed, 06 Nov 2024 01:07:46 -0800 (PST)
Date: Wed, 6 Nov 2024 10:07:45 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Message-ID: <Zysx4ZwCUv62uTBw@macbook>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ZyswF4grJSNcVqY_@macbook>

On Wed, Nov 06, 2024 at 10:00:07AM +0100, Roger Pau MonnÃ© wrote:
> On Wed, Nov 06, 2024 at 08:05:19AM +0000, Mykyta Poturai wrote:
> > During the construction of dmask value, it gets shifted by
> > (32 - msi->vectors) bits. If msi->vectors is 0, the result of the shift
> > becomes undefined due to shifting by a size of the type. While this
> > works fine on x86, on ARM the resulting mask becomes 0xFFFFFFFF, which
> > is incorrect.
> > 
> > Fix this by adding an explicit check for msi->vectors == 0.

Wait - how can msi->vectors ever be 0?  AFAICT there's no way in the
MSI logic to configure 0 vectors, there will always be at least 1 vector
enabled.

Maybe what you want, if this fix is for compliance reasons, is an
assert unreachable that msi->vectors > 0?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 10:13:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 10:13:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830662.1245723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8d24-00062y-AM; Wed, 06 Nov 2024 10:13:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830662.1245723; Wed, 06 Nov 2024 10:13: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 1t8d24-00062r-7j; Wed, 06 Nov 2024 10:13:00 +0000
Received: by outflank-mailman (input) for mailman id 830662;
 Wed, 06 Nov 2024 10: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=6dQ8=SB=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1t8d22-00062l-8z
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 10:12:58 +0000
Received: from fforwardh-a1-smtp.messagingengine.com
 (fforwardh-a1-smtp.messagingengine.com [103.168.172.196])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ad6b39c3-9c27-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 11:12:51 +0100 (CET)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfforwardh.phl.internal (Postfix) with ESMTP id 5CAD52920393;
 Wed,  6 Nov 2024 05:12:49 -0500 (EST)
Received: from phl-frontend-02 ([10.202.2.161])
 by phl-compute-12.internal (MEProxy); Wed, 06 Nov 2024 05:12:49 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Nov 2024 05:12:48 -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: ad6b39c3-9c27-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwMy4xNjguMTcyLjE5NiIsImhlbG8iOiJmZm9yd2FyZGgtYTEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFkNmIzOWMzLTljMjctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODg3OTcxLjI0MjYxNSwic2VuZGVyIjoic2FraWJAZGFya3N0YXIuc2l0ZSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pobox.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=fm2; t=1730887969; x=1730974369; bh=m/
	jG6tGsHQwK9nng1wt6YeGprrQD02NB9JV8gioyKA4=; b=Q5FEBSWWLEPEfkCcUI
	e7kZl2L97VrMZVlejIgLTo2G2l8WnhndN2btZitGwumctl9Z6JxdeajC9X7tx485
	PmlwObfVB9y5eEPm2rvpnafcM6Ou5XpeZRupcsOfTEQnb0Xt48BzEDqehUK3HXEa
	VvOYR2QcwIcDBtta8o2fWdkrMPV1KDmbdjU5cMgkgayqNuNXozQCo8mUPcH+kfrg
	WMvKF0QjM6uaXepMNqMXb+ZsMJCvm4o+D4VWb92JQZ+ktemDRTbzLaotCgzTpILq
	Zd60N6B3P6RpqphQxJLhMAyqJ+XqrnU/lyaoHEuZxriT8+9++63W+WljpaiVwojG
	dvYg==
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=
	fm3; t=1730887969; x=1730974369; bh=m/jG6tGsHQwK9nng1wt6YeGprrQD
	02NB9JV8gioyKA4=; b=l08bbImjmzsKhJeXkCRcu8PjzXl8worUqH4cGUDrlmh2
	T3BXWpEFXT0OE5QYJjqHO6I3UiOJKn0yH4aQIXjCA8YMHSDs/v31ZoLGRbGWpr5u
	xqxrhUbtIGE4dFYE1cf4dva5rzi2NR4OmP80UA8ypmfrZRKXMqz05sUFFojml/SU
	3h6eqN6bnffqbKdWQOYIFhqAnqIbhL8lW+fMSnwB3oS2oP7e6+6IW616aD0DDteT
	/R3L+vfdFiEQE40hin7QYfptIcuOMamsMJdW6QwJw/UhHRZJGe5gNrYsvc/auxFC
	gclIu6lD7XUKs+V2zcSQdkZ04NCeK3t2tac4cwLhaQ==
X-ME-Sender: <xms:IEErZ5iV-IkZT4NpHWO3HkxnBEuT0Y5PoT_uE4VDq315s5MR16SLLg>
    <xme:IEErZ-BdVBWf3IpbIiLqSlWQSHJANfHFf1H7HK7dKMyxDu-WUItCWZqvYCsX1PcK3
    edyIJlI4O6sGnn0gAA>
X-ME-Received: <xmr:IEErZ5GQI6ME0A_wlgtEudrM2xrqkVSvIaCkJeV7ZGCLzYit31nr6KGWEEzCWZrf-H8VC2JwbKn-CBMA6674NGBzLE_27UHyTBG76ahHRCERxzAd>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrtddvgdduudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr
    tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth
    hsucdlqddutddtmdenucfjughrpefhvfevufffkffogggtgfesthekredtredtjeenucfh
    rhhomhepufgvrhhgihihucfmihgsrhhikhcuoefuvghrghhihigpmfhisghrihhksegvph
    grmhdrtghomheqnecuggftrfgrthhtvghrnhepffdvledvvefgvdejuedvvdevfedvueeg
    tefhtdevgeeggeeljeevjeetgeevtedtnecuffhomhgrihhnpehkvghrnhgvlhdrohhrgh
    enucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehsrghk
    ihgssegurghrkhhsthgrrhdrshhithgvpdhnsggprhgtphhtthhopeeipdhmohguvgepsh
    hmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhr
    ohhjvggtthdrohhrghdprhgtphhtthhopehsvghrghhihigpkhhisghrihhksegvphgrmh
    drtghomhdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthht
    oheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhope
    hrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghl
    lhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:IEErZ-Q_lrLJsuLWFEG69MceU4oFU9zYFp1cjcnN8O0Y8s5l1CixQQ>
    <xmx:IEErZ2zQ0-HBur9H2jdFLEYs-AXsfcxTmoKp7AeHvfF4mkJMJ6vprQ>
    <xmx:IEErZ05i58B4ot7rhxcNk6rGFlPDfJ40nah2mjSxG9DZNhg5v5kGCA>
    <xmx:IEErZ7yAXLvohfbjTSM0W4LnKSCZJIK8Dr41C3a9GE8ixaVonUsmTg>
    <xmx:IUErZwvr_k5WbwZ_tGdEK-AXAUGPd8wgd0GDyKIUsK0CfO2dnKctHkPWRkZ0>
Feedback-ID: i7ff1f533:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@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>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 0/2] configurable stdvga & pmtimer emulation
Date: Wed,  6 Nov 2024 12:12:43 +0200
Message-Id: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce build options for stdvga and ACPI PM timer emulation drivers to make
them configurable with possibility to be disabled for finer-tuned setups that
don't need this code.

New config options reside in separate sub-menu, checks of emulation flags are
added so that domain can't be created if it requires devices that had been
disabled.
Since previous series one patch merged into 2 others and review comments have
been addressed (details are in per-patch changelogs).

v1 series here:
https://lore.kernel.org/xen-devel/cover.1728032664.git.Sergiy_Kibrik@epam.com/


  -Sergiy


Sergiy Kibrik (2):
  x86/hvm: introduce config option for ACPI PM timer
  x86/hvm: introduce config option for stdvga emulation

 xen/arch/x86/Kconfig                  | 23 +++++++++++++++++++++++
 xen/arch/x86/domain.c                 |  7 ++++++-
 xen/arch/x86/hvm/Makefile             |  4 ++--
 xen/arch/x86/include/asm/acpi.h       |  5 +++++
 xen/arch/x86/include/asm/domain.h     | 16 ++++++++++++----
 xen/arch/x86/include/asm/hvm/domain.h |  2 ++
 xen/arch/x86/include/asm/hvm/io.h     |  4 ++++
 xen/arch/x86/include/asm/hvm/vpt.h    | 10 ++++++++++
 8 files changed, 64 insertions(+), 7 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 10:14:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 10:14:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830667.1245734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8d3x-0006cZ-QA; Wed, 06 Nov 2024 10:14:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830667.1245734; Wed, 06 Nov 2024 10:14: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 1t8d3x-0006cS-Lw; Wed, 06 Nov 2024 10:14:57 +0000
Received: by outflank-mailman (input) for mailman id 830667;
 Wed, 06 Nov 2024 10:14: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=6dQ8=SB=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1t8d3w-0006cJ-PD
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 10:14:56 +0000
Received: from fforwardh-a1-smtp.messagingengine.com
 (fforwardh-a1-smtp.messagingengine.com [103.168.172.196])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6fa4a50-9c27-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 11:14:54 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.phl.internal
 [10.202.2.46])
 by mailfforwardh.phl.internal (Postfix) with ESMTP id 295DA292039A;
 Wed,  6 Nov 2024 05:14:53 -0500 (EST)
Received: from phl-frontend-01 ([10.202.2.160])
 by phl-compute-06.internal (MEProxy); Wed, 06 Nov 2024 05:14:53 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Nov 2024 05:14:52 -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: f6fa4a50-9c27-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwMy4xNjguMTcyLjE5NiIsImhlbG8iOiJmZm9yd2FyZGgtYTEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY2ZmE0YTUwLTljMjctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODg4MDk0LjEyOTUwMSwic2VuZGVyIjoic2FraWJAZGFya3N0YXIuc2l0ZSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pobox.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=fm2; t=1730888093;
	 x=1730974493; bh=43u5uEEEtjTdbNJ0LorbS7FyqexOX0eR01rg8PmjltQ=; b=
	JVnNRTjISyDXKmBNUa1A0o4yonYg6V64UGCiZFObdM2LOKYcycEfoOpmo+6/0by/
	/StWM7PS6+xkqHbWliJIcipBpAJ7LHw/a08GzAFa4lYoDw7eX7FNosk4506Wo61y
	Dqy20ZITW1KZYDjfLkQlgqLRHgu4HaYUY8TOdZcKPIkOmKFckpjawHx9E3JdHh0a
	NuhZJImgskNFnZuIVJ0hlL9wsd38xxiObjmAWdhio3zYkrX/4pB4MpdB9SoKeDIa
	eBW6VFB0p9jcicwrkWWswwxAZzewCW9n4CEVW03pTa15FlgPcmTNR+u2m/fNzysM
	qsjwDqGeMIeeW2ak7WNc8Q==
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=fm3; t=1730888093; x=
	1730974493; bh=43u5uEEEtjTdbNJ0LorbS7FyqexOX0eR01rg8PmjltQ=; b=Y
	1nm6q0xrzx3h+XIKf5wF96tIgLbyMq9/wmv22o0MZ8zKkiNcypNbeHTP77MIEItM
	jPgRagp3Is/y0DgvrAaC0ADMZIdx+EypVvz6vkTYuAOe3Tj5sPdkP3uUFNnopeTw
	Mz3v3xhyIzQG4s7dNNOJFKZ8naODFZ8D7klG+Cat1AMedhc/D2Krw0FXwMPxmETc
	qy2x4V+uOqYfmlWlp/SndIlSjvyEUFe5xF8TevWzMmwTSdX19b55QcYjgdIHlSka
	B8jPTmwKaiHch97btzxDVJ2gq1gDHGR9BIZlWOngfCGpkQ3ayyodVY5FSf3NXzZo
	Cp4Y5+Czu+qaRcYSwbHNw==
X-ME-Sender: <xms:nEErZ4GlkuAUxG0BcMmS5S0WhNHpoQSZJ21x6XXG4viI8zLJ0XpWuQ>
    <xme:nEErZxV6BBj6byz7quu_twFOmEooTTvmSgCzFdJUA_EqursLjctA1eHVlPU-ZQbDa
    aNwQTvRHfPGhWzVI2Q>
X-ME-Received: <xmr:nEErZyIxU_iBn12WX1-r2wG1Dp2aQM7cKw-mrUzE1J6L3fIPpTO_7YhZYqy92JOhPiISQwkGMz74aeOSCz-SeBawePvqCz3AfY8P9Lb_CR0f59as>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrtddvgdduudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr
    tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth
    hsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeen
    ucfhrhhomhepufgvrhhgihihucfmihgsrhhikhcuoefuvghrghhihigpmfhisghrihhkse
    gvphgrmhdrtghomheqnecuggftrfgrthhtvghrnhepiefgvdejudeifeevfedugedvlefg
    heejtddtieffhfelgfduteduteehudelveeunecuvehluhhsthgvrhfuihiivgeptdenuc
    frrghrrghmpehmrghilhhfrhhomhepshgrkhhisgesuggrrhhkshhtrghrrdhsihhtvgdp
    nhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnh
    dquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohep
    shgvrhhgihihpghkihgsrhhikhesvghprghmrdgtohhmpdhrtghpthhtoheprghnughrvg
    ifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehrohhgvghrrdhp
    rghusegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvg
    hrnhgvlhdrohhrghdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhm
X-ME-Proxy: <xmx:nEErZ6Hjy4V7pHqyNXjIYLEHOYsD8Gk6VPYyXaVPhuI2pAbKGUFPJQ>
    <xmx:nEErZ-VVAtknI3rhvd7TZfCIhnxcFd1-q5Fm3VKOHZGjlnE5eqc29A>
    <xmx:nEErZ9PsLMXFbUNxE_vKaogv7EBCEQBmnCnle1S4oym1cgRjHy89yQ>
    <xmx:nEErZ135BxDtTnTT4dc2gdLPn-nxWzUZON3mC5YnvupjGhjTAGvKjw>
    <xmx:nUErZ8x2SieYXbw1BOVfE9F9mRsfl4O3DgP5mE2S9wW7aE6jHaFOIhgDibm8>
Feedback-ID: idf7b619e:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM timer
Date: Wed,  6 Nov 2024 12:14:49 +0200
Message-Id: <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce config option X86_HVM_PMTIMER and make pmtimer emulation driver
configurable and possible to disable on systems that don't need it.
Option X86_X86_HVM_PMTIMER depends on HVM option, because this driver is part
of HVM support code.

Introduced additional check of domain's emulation flags, to cover the case
when user explicitly states the requirement of emulated devices that are
disabled in the build. HVM always require these devices to be present so domains
of this type can't be created when pmtimer or any other emulated device are
disabled.

Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v2:
 - updated description
 - renamed config option X86_PMTIMER -> X86_HVM_PMTIMER & moved related
   Kconfig changes to this patch
 - define X86_EMU_PM to 0 when !X86_HVM_PMTIMER
 - reverted changes to has_vpm() macro
 - moved emulation_flags_ok() checks to this patch
 - guard struct hvm_hw_acpi acpi attribute of struct domain
---
 xen/arch/x86/Kconfig                  | 13 +++++++++++++
 xen/arch/x86/domain.c                 |  7 ++++++-
 xen/arch/x86/hvm/Makefile             |  2 +-
 xen/arch/x86/include/asm/acpi.h       |  5 +++++
 xen/arch/x86/include/asm/domain.h     |  8 ++++++--
 xen/arch/x86/include/asm/hvm/domain.h |  2 ++
 xen/arch/x86/include/asm/hvm/vpt.h    | 10 ++++++++++
 7 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 9cdd04721a..ed0ece85c7 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -144,6 +144,19 @@ config INTEL_VMX
 	  If your system includes a processor with Intel VT-x support, say Y.
 	  If in doubt, say Y.
 
+menu "Emulated HVM devices support"
+       visible if EXPERT
+       depends on HVM
+
+config X86_HVM_PMTIMER
+	bool "ACPI PM timer emulation support"
+	default y
+	help
+	  Build pmtimer driver that emulates ACPI PM timer for HVM/PVH guests.
+
+	  If unsure, say Y.
+endmenu
+
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
 	depends on HAS_AS_CET_SS
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 78a13e6812..b340818ee2 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -742,11 +742,16 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 
 static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
 {
-#ifdef CONFIG_HVM
+    const uint32_t disabled_emu_mask = X86_EMU_PM;
+
+#if defined(CONFIG_X86_HVM_PMTIMER)
     /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
     BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
 #endif
 
+    if ( emflags & disabled_emu_mask )
+        return false;
+
     if ( is_hvm_domain(d) )
     {
         if ( is_hardware_domain(d) &&
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 4c1fa5c6c2..3af8963218 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -18,7 +18,7 @@ obj-y += irq.o
 obj-y += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
-obj-y += pmtimer.o
+obj-$(CONFIG_X86_HVM_PMTIMER) += pmtimer.o
 obj-y += quirks.o
 obj-y += rtc.o
 obj-y += save.o
diff --git a/xen/arch/x86/include/asm/acpi.h b/xen/arch/x86/include/asm/acpi.h
index 217819dd61..eb2e4a1ede 100644
--- a/xen/arch/x86/include/asm/acpi.h
+++ b/xen/arch/x86/include/asm/acpi.h
@@ -150,8 +150,13 @@ void acpi_mmcfg_init(void);
 /* Incremented whenever we transition through S3. Value is 1 during boot. */
 extern uint32_t system_reset_counter;
 
+#ifdef CONFIG_X86_HVM_PMTIMER
 void hvm_acpi_power_button(struct domain *d);
 void hvm_acpi_sleep_button(struct domain *d);
+#else
+static inline void hvm_acpi_power_button(struct domain *d) {}
+static inline void hvm_acpi_sleep_button(struct domain *d) {}
+#endif
 
 /* suspend/resume */
 void save_rest_processor_state(void);
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index b79d6badd7..8550473997 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -463,7 +463,6 @@ struct arch_domain
 #ifdef CONFIG_HVM
 #define X86_EMU_LAPIC    XEN_X86_EMU_LAPIC
 #define X86_EMU_HPET     XEN_X86_EMU_HPET
-#define X86_EMU_PM       XEN_X86_EMU_PM
 #define X86_EMU_RTC      XEN_X86_EMU_RTC
 #define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
 #define X86_EMU_PIC      XEN_X86_EMU_PIC
@@ -474,7 +473,6 @@ struct arch_domain
 #else
 #define X86_EMU_LAPIC    0
 #define X86_EMU_HPET     0
-#define X86_EMU_PM       0
 #define X86_EMU_RTC      0
 #define X86_EMU_IOAPIC   0
 #define X86_EMU_PIC      0
@@ -484,6 +482,12 @@ struct arch_domain
 #define X86_EMU_VPCI     0
 #endif
 
+#ifdef CONFIG_X86_HVM_PMTIMER
+#define X86_EMU_PM       XEN_X86_EMU_PM
+#else
+#define X86_EMU_PM       0
+#endif
+
 #define X86_EMU_PIT     XEN_X86_EMU_PIT
 
 /* This must match XEN_X86_EMU_ALL in xen.h */
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/asm/hvm/domain.h
index 333501d5f2..a4fddf7754 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -80,8 +80,10 @@ struct hvm_domain {
      * in public header files.
      * Internally, however, we will be using hvm_hw_acpi.
      */
+#ifdef CONFIG_X86_HVM_PMTIMER
 #define hvm_hw_acpi hvm_hw_pmtimer
     struct hvm_hw_acpi     acpi;
+#endif
 
     /* VCPU which is current target for 8259 interrupts. */
     struct vcpu           *i8259_target;
diff --git a/xen/arch/x86/include/asm/hvm/vpt.h b/xen/arch/x86/include/asm/hvm/vpt.h
index 0b92b28625..f24ef08925 100644
--- a/xen/arch/x86/include/asm/hvm/vpt.h
+++ b/xen/arch/x86/include/asm/hvm/vpt.h
@@ -187,10 +187,20 @@ void rtc_deinit(struct domain *d);
 void rtc_reset(struct domain *d);
 void rtc_update_clock(struct domain *d);
 
+#ifdef CONFIG_X86_HVM_PMTIMER
 void pmtimer_init(struct vcpu *v);
 void pmtimer_deinit(struct domain *d);
 void pmtimer_reset(struct domain *d);
 int pmtimer_change_ioport(struct domain *d, uint64_t version);
+#else
+static inline void pmtimer_init(struct vcpu *v) {}
+static inline void pmtimer_deinit(struct domain *d) {}
+static inline void pmtimer_reset(struct domain *d) {}
+static inline int pmtimer_change_ioport(struct domain *d, uint64_t version)
+{
+    return -ENODEV;
+}
+#endif
 
 void hpet_init(struct domain *d);
 void hpet_deinit(struct domain *d);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 10:17:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 10:17:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830672.1245742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8d5y-0007LO-3z; Wed, 06 Nov 2024 10:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830672.1245742; Wed, 06 Nov 2024 10:17: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 1t8d5y-0007LH-1J; Wed, 06 Nov 2024 10:17:02 +0000
Received: by outflank-mailman (input) for mailman id 830672;
 Wed, 06 Nov 2024 10:17: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=6dQ8=SB=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1t8d5w-0007L5-TB
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 10:17:00 +0000
Received: from fforwardh-a1-smtp.messagingengine.com
 (fforwardh-a1-smtp.messagingengine.com [103.168.172.196])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 40612a64-9c28-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 11:16:57 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfforwardh.phl.internal (Postfix) with ESMTP id 49CEF292037B;
 Wed,  6 Nov 2024 05:16:56 -0500 (EST)
Received: from phl-frontend-01 ([10.202.2.160])
 by phl-compute-01.internal (MEProxy); Wed, 06 Nov 2024 05:16:56 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Nov 2024 05:16: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: 40612a64-9c28-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwMy4xNjguMTcyLjE5NiIsImhlbG8iOiJmZm9yd2FyZGgtYTEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQwNjEyYTY0LTljMjgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODg4MjE3LjMzNDA2Mywic2VuZGVyIjoic2FraWJAZGFya3N0YXIuc2l0ZSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pobox.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=fm2; t=1730888216;
	 x=1730974616; bh=p2u5ACnZhknNqMHNI6CsAH2zzZ1pewvirnqiawXzLcQ=; b=
	Lxe4JJT3FL7R3h43Gm6KzKdNS4LCKiYfug73eK4RYTfP8a1kAxTYOaXECApQZCvF
	i14a/UCokJftNZGEGTKXB1WGqO9dF/G6ZvITCKixL5hoYYPAlI/80PA8G6m/k3Xt
	KDHW+TNjIqg+n8JeVQa53e5Sa4L988hLsWuW2wv5Y42MdMRm68zIem37km94ip0G
	FTBfm3xMwm/1xa04IaohO2O4W/a1Euo0ObUOqXP+Qdf/kZYOXXUMmfEzLbCH6L/d
	4WUpujbav5yVcWvaHCgsw3KyKkTdmjyqnpyrRthjrqRYAJoDHDnna5Ql/cnwFubC
	1g4HcNcuXT76Wq72v/6L/A==
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=fm3; t=1730888216; x=
	1730974616; bh=p2u5ACnZhknNqMHNI6CsAH2zzZ1pewvirnqiawXzLcQ=; b=S
	lILH3+1l8k+WGC94l5C1jbxg6/OwxZb16rvaP9ucY83M1TTFv9XFP0/ZaKF+ANcq
	Y6FAluJDxv/oh9w0l+MHQaz5N2ocxv7IH70AJUdR6+GJVSkt4PM+xoiYfxuVwz3W
	FJbhhRVHYYoTqetK5DGtLuKP1T4haEv+jYMxi+GFggj9E4pcrSYRLHV0C26HNOMV
	vX6V89HhuNTmndaK5GT4Q2k5VDpiPtVNE/TDZr+uEiOlGrcRUZtWmvXOZMvMyWU2
	+DvBj3jI7KfSwmvxWEP7lkR5QskeuSjSW3xhaiWSUE1cgGm1zBSxUX8Q8W65B1xx
	FB3Xjq/yjZFcNU/0baLMw==
X-ME-Sender: <xms:GEIrZ5ff2wcwF5hbd0BJNj7i9YRNZ6nCQ-hjQfVIJJsk3n9vgzqNSg>
    <xme:GEIrZ3P5qTzqEOr7tiECJGA7o7c54N3YRMua1QCBzSYiHbt9SEB_WiqO0OMOzYIM-
    qqJf9LBlPmmh1IZ8BE>
X-ME-Received: <xmr:GEIrZyjg4DGLIs5JgSdMhRsf6V2bfHAT6DDav4fEsTUC-fHk_MTQ50x8MNT0NYagYaz1oHni2vzlyS5YuhgqyManvQ8ehpPSchPfIGKa8Ri-ZXbb>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrtddvgdduvdcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr
    tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth
    hsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfgggtgfesthekredtredtjeen
    ucfhrhhomhepufgvrhhgihihucfmihgsrhhikhcuoefuvghrghhihigpmfhisghrihhkse
    gvphgrmhdrtghomheqnecuggftrfgrthhtvghrnhepiefgvdejudeifeevfedugedvlefg
    heejtddtieffhfelgfduteduteehudelveeunecuvehluhhsthgvrhfuihiivgeptdenuc
    frrghrrghmpehmrghilhhfrhhomhepshgrkhhisgesuggrrhhkshhtrghrrdhsihhtvgdp
    nhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnh
    dquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohep
    shgvrhhgihihpghkihgsrhhikhesvghprghmrdgtohhmpdhrtghpthhtoheprghnughrvg
    ifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehrohhgvghrrdhp
    rghusegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvg
    hrnhgvlhdrohhrghdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhm
X-ME-Proxy: <xmx:GEIrZy_N5t_y00Z7j8qJDx6bYnzX7B-medV28k-WNFiYdTL0uo6ZXA>
    <xmx:GEIrZ1tbNdcaVGwaC5mdsu1YTBNGqjG3em6lyZ9h285NMcI6RIDWhA>
    <xmx:GEIrZxFEljRg2tYpEADCwUotWl8RAiZcvCQpPHC6pM2HU2Gq0ep4Ag>
    <xmx:GEIrZ8PSa1XXX0wqqUKpXKLQgKmq0EGdoaTWfzqMFqrYgb6zoaiOLg>
    <xmx:GEIrZ_LW7eLuO-phOrI3jEx0Vzig8xYWfxB60mTH_6FZLJRY56Vk4kWpZ1bl>
Feedback-ID: i5db7bdcf:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v2 2/2] x86/hvm: introduce config option for stdvga emulation
Date: Wed,  6 Nov 2024 12:16:53 +0200
Message-Id: <53b0d5552c128630e476c77b54b8983fe02e0e1c.1730887415.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce config option X86_HVM_STDVGA and make stdvga emulation driver
configurable so it can be disabled on systems that don't need it.

Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v2:
 - updated description
 - renamed config option X86_STDVGA -> X86_HVM_STDVGA & moved related
   Kconfig changes to this patch
 - reverted changes to has_vvga() macro
 - moved emulation_flags_ok() checks to this patch
---
 xen/arch/x86/Kconfig              | 10 ++++++++++
 xen/arch/x86/domain.c             |  4 ++--
 xen/arch/x86/hvm/Makefile         |  2 +-
 xen/arch/x86/include/asm/domain.h |  8 ++++++--
 xen/arch/x86/include/asm/hvm/io.h |  4 ++++
 5 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index ed0ece85c7..35c8ace8ef 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -155,6 +155,16 @@ config X86_HVM_PMTIMER
 	  Build pmtimer driver that emulates ACPI PM timer for HVM/PVH guests.
 
 	  If unsure, say Y.
+
+config X86_HVM_STDVGA
+	bool "Standard VGA card emulation support"
+	default y
+	help
+	  Build stdvga driver that emulates standard VGA card with VESA BIOS
+	  Extensions for HVM/PVH guests.
+
+	  If unsure, say Y.
+
 endmenu
 
 config XEN_SHSTK
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index b340818ee2..aefa1fc136 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -742,9 +742,9 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 
 static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
 {
-    const uint32_t disabled_emu_mask = X86_EMU_PM;
+    const uint32_t disabled_emu_mask = X86_EMU_PM | X86_EMU_VGA;
 
-#if defined(CONFIG_X86_HVM_PMTIMER)
+#if defined(CONFIG_X86_HVM_PMTIMER) && defined(CONFIG_X86_HVM_STDVGA)
     /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
     BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
 #endif
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 3af8963218..80ec425aa8 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -22,7 +22,7 @@ obj-$(CONFIG_X86_HVM_PMTIMER) += pmtimer.o
 obj-y += quirks.o
 obj-y += rtc.o
 obj-y += save.o
-obj-y += stdvga.o
+obj-$(CONFIG_X86_HVM_STDVGA) += stdvga.o
 obj-y += vioapic.o
 obj-y += vlapic.o
 obj-y += vm_event.o
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 8550473997..106b438779 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -466,7 +466,6 @@ struct arch_domain
 #define X86_EMU_RTC      XEN_X86_EMU_RTC
 #define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
 #define X86_EMU_PIC      XEN_X86_EMU_PIC
-#define X86_EMU_VGA      XEN_X86_EMU_VGA
 #define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
 #define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
 #define X86_EMU_VPCI     XEN_X86_EMU_VPCI
@@ -476,7 +475,6 @@ struct arch_domain
 #define X86_EMU_RTC      0
 #define X86_EMU_IOAPIC   0
 #define X86_EMU_PIC      0
-#define X86_EMU_VGA      0
 #define X86_EMU_IOMMU    0
 #define X86_EMU_USE_PIRQ 0
 #define X86_EMU_VPCI     0
@@ -488,6 +486,12 @@ struct arch_domain
 #define X86_EMU_PM       0
 #endif
 
+#ifdef CONFIG_X86_HVM_STDVGA
+#define X86_EMU_VGA      XEN_X86_EMU_VGA
+#else
+#define X86_EMU_VGA      0
+#endif
+
 #define X86_EMU_PIT     XEN_X86_EMU_PIT
 
 /* This must match XEN_X86_EMU_ALL in xen.h */
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index f2b8431fac..c02fad876c 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -108,7 +108,11 @@ struct vpci_arch_msix_entry {
     int pirq;
 };
 
+#ifdef CONFIG_X86_HVM_STDVGA
 void stdvga_init(struct domain *d);
+#else
+static inline void stdvga_init(struct domain *d) {}
+#endif
 
 extern void hvm_dpci_msi_eoi(struct domain *d, int vector);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 10:32:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 10:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830682.1245752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8dKo-0001pn-CH; Wed, 06 Nov 2024 10:32:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830682.1245752; Wed, 06 Nov 2024 10:32: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 1t8dKo-0001pg-9k; Wed, 06 Nov 2024 10:32:22 +0000
Received: by outflank-mailman (input) for mailman id 830682;
 Wed, 06 Nov 2024 10:32: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=bDCL=SB=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8dKn-0001pa-2Z
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 10:32:21 +0000
Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com
 [2607:f8b0:4864:20::f2c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6536dcf6-9c2a-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 11:32:17 +0100 (CET)
Received: by mail-qv1-xf2c.google.com with SMTP id
 6a1803df08f44-6cc1b20ce54so49144276d6.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 02:32:17 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7b2f3a7045bsm613005285a.73.2024.11.06.02.32.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 02:32: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: 6536dcf6-9c2a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpmMmMiLCJoZWxvIjoibWFpbC1xdjEteGYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY1MzZkY2Y2LTljMmEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODg5MTM3Ljk4MjAxNywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730889137; x=1731493937; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t5ug+8yUmUz/riJemywkNroUYH8TsAcAXvogRYtfb1Y=;
        b=AdA8JHYOpjIGxPtcvWyzTNt0FGWAUf0MwJFCICCQ+rrVO2LJEv1kPhwEoqAmzq0unw
         i//FdFraVa7nrz11Q3vnQeiHF4vMvvYpGrCjHTDrL0DVCxVRZGGwwd04+dh4WAdKH/uq
         BhL2nVuOOzevcIt8hYnQgAWKH5KE7NaH0e1Dg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730889137; x=1731493937;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=t5ug+8yUmUz/riJemywkNroUYH8TsAcAXvogRYtfb1Y=;
        b=ASrJTzaBrYk3IoFDdKNPK7yfx/GG5qH7xCNRuYR6pgQesss13jrcuQqFXgOIxaKT8W
         g0AGo6gJ3pGs6ReoYhOwdItURJPUCc7orM9AgsByFBPQilZeKzjFNZDzMPE4wx5Em58O
         o3KxS32U5Ovq2T3fXD7rtS4rOUDeKeoyCz82sncsqKBlwPkzFT3LSSUAXKJ0f1YnaApG
         SatKpgYttPdU3IYIvI6IItCOHjAzZjEoFZ0ZqWRhdmpSU6YIkUbvEqherMOMkYDLlmAX
         WLXRzO4hfhezLbj4CkebGbUtUMfpGoKU+RAiI/F0MkF+BJdMggnNwUQxZOExx/rOoyCt
         Wn7A==
X-Forwarded-Encrypted: i=1; AJvYcCVv2FkZzgR6cyW6gQ43zPfCQOr36jSKerezycRPDqQQ2bftdws2qInW8ykGFlCKFcV08KpeRniBh/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAX6cSqckxOQuDCZgM7k+pvoXhmtE5XM8SSk0WIAF1GJoeqsSl
	IcRtFaHtUSJ1wX2Qo+FcXlBhLzQyurbCHzDfh6+OYLS7HbJNIxFZrAHM9Hi+zT8=
X-Google-Smtp-Source: AGHT+IH4HxPmCSR5RMLQFZAp5Zi7SQkRBzzbfIDjiPQ6eRplk0s0VJvHNCY1BuHJjZ2sw16Z744rpQ==
X-Received: by 2002:a05:6214:540d:b0:6cc:1f0:d38a with SMTP id 6a1803df08f44-6d35c0f9e90mr275414016d6.14.1730889136775;
        Wed, 06 Nov 2024 02:32:16 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 06 Nov 2024 10:32:14 +0000
Message-Id: <D5F0ZMVQEIKF.2I3XTFQGPPA3M@cloud.com>
Cc: "Jan Beulich" <jbeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Frediano Ziglio"
 <frediano.ziglio@cloud.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <89022703-f814-4d81-87ec-5651f5e950c4@citrix.com>
In-Reply-To: <89022703-f814-4d81-87ec-5651f5e950c4@citrix.com>

On Tue Nov 5, 2024 at 7:23 PM GMT, Andrew Cooper wrote:
> On 05/11/2024 2:55 pm, Frediano Ziglio wrote:
> > diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_=
binaries.py
> > index 447c0d3bdb..79ae8900b1 100755
> > --- a/xen/tools/combine_two_binaries.py
> > +++ b/xen/tools/combine_two_binaries.py
> > @@ -67,13 +67,22 @@ if args.exports is not None:
> > =20
> >  # Parse mapfile, look for ther symbols we want to export.
> >  if args.mapfile is not None:
> > -    symbol_re =3D re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
> > +    symbol_re_clang =3D \
> > +        re.compile(r'\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-=
9a-f]+)\s{15,}(\S+)\n')
> > +    symbol_re_gnu =3D re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
>
> These are specific to the linker, not the compiler, so really should be
> _ld and _lld rather than _gnu and _clang.

GNU binutils ships not one, but two linkers. _ld does not reflect the fact =
that
it's not the map format of a linker, but a family of them. Probably shared =
by
mold too. That's a good reason for _gnu to stay _gnu (or if changing, to
_binutils; but that's hardly relevant in this patch).

Otherwise _clang could become either _llvm or _lld. Given there's a single
linker shipped by LLVM the difference is less than cosmetic.

>
> The build environment does have CONFIG_LD_IS_GNU which is used for one
> LD vs LLD distinction.=C2=A0 It seems reasonable to re-use it here (so yo=
u're
> not trying both regexes in the hope that one works), although you'll
> need to plumb it into the script somehow because it's not exported into
> the environment currently.
>
>
> But, regexes are utterly opaque, and given that neither Binutils nor
> LLVM document their map format, you really need to provide at least one
> example of what a relevant mapfile looks like in a comment.
>
> Looking at built-in-32.offset.map in it's gnu form, it's presumably
> looking for the lines that are just a hex address and a name with no
> other punctuation.
>
> But the lld form is clearly different.
>
> ~Andrew

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 10:50:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 10:50:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830690.1245762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8dc9-00054T-OZ; Wed, 06 Nov 2024 10:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830690.1245762; Wed, 06 Nov 2024 10: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 1t8dc9-00054M-Lu; Wed, 06 Nov 2024 10:50:17 +0000
Received: by outflank-mailman (input) for mailman id 830690;
 Wed, 06 Nov 2024 10: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8dc8-00054G-KZ
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 10:50:16 +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 e51e4471-9c2c-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 11:50:10 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5ceccffadfdso4735165a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 02:50:10 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17d7066sm259364466b.130.2024.11.06.02.50.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 02: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: e51e4471-9c2c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU1MWU0NDcxLTljMmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODkwMjEwLjk5MzQ3OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730890210; x=1731495010; 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=BpmYD8zI9KYgnD49gZhc3IIpL9qdpxifRfnE9OfZrR0=;
        b=UCEuy30vChEHB0qEpFjRMzPZz4Ue58Eiuqg7GQUWs6moNsCln0OUiB3IZ2AsoDO0GV
         8H334TFmDUO53ECBA6glU+ROwKh30pcOhZvp68UFDo3OCZU6tbNGI/G96yQEM+4+TGhS
         spQX2LAfXCDDSnBsil45KPIBOUQwST0keCZFg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730890210; x=1731495010;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BpmYD8zI9KYgnD49gZhc3IIpL9qdpxifRfnE9OfZrR0=;
        b=bty4GDMVhER11JbVRlq0pB/8emU+gUFNAEpxjhqeDwCtKO+SRN+YwMqa3bITxEk+DV
         dZ3KI8gdp21JZd/FEP2TBOPvBOkF+q5yAwBRJhlTAuGXJhLH7ibOzeUOZSyAHq9khkXw
         9EldM4bgmxeOIdwvYEpCrA9uuoLZqtcDzfTt8lzKZR0XnI5ArlOUvTcTBLPcye3Xw8Kx
         JlnYzvKkpe251y3x7jelHrpE6xm1gadT1elr4Dtfc1WPRCwj9SPQEfgaMXdi4ux+cS8P
         kGYvLGqb9BOEsrindtkhUzQkHWwIsmxJx106v4Pbs3xz4TNuePXgsi/wx03TpJm+Mxlu
         +NKw==
X-Forwarded-Encrypted: i=1; AJvYcCXX0sKRz/4AN39x+Dsa+hWqwbWIhm9OBssDIanLlKjpSjFAvZ/25oWBsj10U1dXyvN+xGV9lnetYu4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwhoRe5Oj+umCzDsifqsj39JdZ5f5hq7vYUHsyhqBbM/FUG1fH+
	WRnWk3AykxmHhuOTwl8oaCoXlG9qFXkKpRcnKDgTtmsH+Rp+9+xpOGqy7nYjH97vY8JUPPHszfd
	H
X-Google-Smtp-Source: AGHT+IF1v85yfmUrlhHdhsHOBp6ZHqzDk0O7eJhwt6fjVG/upnP4v2sBK2RnkIYHg5/56tEQs6F00w==
X-Received: by 2002:a17:907:9814:b0:a9a:294:cb30 with SMTP id a640c23a62f3a-a9e508df7cbmr2229332666b.16.1730890210378;
        Wed, 06 Nov 2024 02:50:10 -0800 (PST)
Message-ID: <8f329495-8dd5-4f57-a730-9520c93b7c1f@citrix.com>
Date: Wed, 6 Nov 2024 10:50:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <89022703-f814-4d81-87ec-5651f5e950c4@citrix.com>
 <D5F0ZMVQEIKF.2I3XTFQGPPA3M@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <D5F0ZMVQEIKF.2I3XTFQGPPA3M@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/11/2024 10:32 am, Alejandro Vallejo wrote:
> On Tue Nov 5, 2024 at 7:23 PM GMT, Andrew Cooper wrote:
>> On 05/11/2024 2:55 pm, Frediano Ziglio wrote:
>>> diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_binaries.py
>>> index 447c0d3bdb..79ae8900b1 100755
>>> --- a/xen/tools/combine_two_binaries.py
>>> +++ b/xen/tools/combine_two_binaries.py
>>> @@ -67,13 +67,22 @@ if args.exports is not None:
>>>  
>>>  # Parse mapfile, look for ther symbols we want to export.
>>>  if args.mapfile is not None:
>>> -    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
>>> +    symbol_re_clang = \
>>> +        re.compile(r'\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s{15,}(\S+)\n')
>>> +    symbol_re_gnu = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
>> These are specific to the linker, not the compiler, so really should be
>> _ld and _lld rather than _gnu and _clang.
> GNU binutils ships not one, but two linkers.

Yes that's technically true.

But while only one of them is remotely capable of linking a kernel, it's
also not very relevant.

Neither Gold, or indeed Mold which you mention too, are liable to be LD
within Xen for the foreseeable future.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 10:59:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 10:59:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830700.1245772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8dkw-00062k-Mo; Wed, 06 Nov 2024 10:59:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830700.1245772; Wed, 06 Nov 2024 10:59: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 1t8dkw-00062d-Jt; Wed, 06 Nov 2024 10:59:22 +0000
Received: by outflank-mailman (input) for mailman id 830700;
 Wed, 06 Nov 2024 10:59: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=ZUQe=SB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8dku-00062X-M6
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 10:59: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 2b1fe1c2-9c2e-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 11:59:17 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4315eac969aso4276775e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 02:59: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-432aa6b2c32sm18049555e9.10.2024.11.06.02.59.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 02:59: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: 2b1fe1c2-9c2e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJiMWZlMWMyLTljMmUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkwNzU3Ljk1NTk4NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730890757; x=1731495557; 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=/z6SlINwyqQ5QiC3LmSnNQrXNZnyHD+gYX3vajlbphc=;
        b=TSVVoslf6JEcQUeZ+AWIezjE5Sv5mii3v5mQ7UF4gIgt1jld7f/oSLp1Iw2ObGYKGu
         qX+OOC9+PEadv8S7bBF9/F/ZYIT7WjJSxTt2+bVab+91RUtxmFqY25A/qGIGXUrPy6pN
         raPw0pIkeS40m3mtDoh9C9BhXPf64Nb269ZuAT86NxpFGP+YUezFkc5d7yySl3iQzY/K
         0um6YOMGJK0Ccse4GiSZ37sGdm+Y8lHRvXH8PgcyF7aeT/FEaQ/X1vd9p8h3t582nlJT
         wdeZgEdlWgVlJFCVPdV24kcDzM6Jq929YeROL2GHkwXgHmOvjrRiw6GU4Kjka4RKzjvA
         3nhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730890757; x=1731495557;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/z6SlINwyqQ5QiC3LmSnNQrXNZnyHD+gYX3vajlbphc=;
        b=G6AEwhJI6StupvYWlawL4n6n9kW4K1RS2BplRvp3YLARlzFBbdw0vnRko2FDVnHRX6
         i2eXpaUb12ulM/iCyRwKzgoT9B5y8FqdXSt0nM7EPktP7Y1W+Gd1HfoG3SlPkFlmTX0R
         YWSxBICMCbvzKUgKNzkC5wVH2wK58FK4DnqHEJOP5NN1tNaOwY0crcztYbDMj+nfxnIJ
         hkjgpq86vrczANwpmjW+MSUrOqmFTBuAVB+gqo736lIiJt689fke2zQgfiqmmk/6bzgT
         OE8gs+eZilraZGWbOJdiPwsaTCdIRTxSmrWj1cdU3Rx3+VGvM/JjChvUczIXgp2RtbW3
         nUkg==
X-Forwarded-Encrypted: i=1; AJvYcCVeFjNeLZmie3eiLqEXbNNPkLGGOv5TR7PaWQcFNPx1++XkBcjX3Bk+vAi692Wzj1eOaOffde2K3AI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYcunlNVaHyX96zytar7v1ZSR6AB62WYCvXO8a55MR866VYBNy
	awAScXkq16+VwZEvosuxR4uLQ/tcXqg0cJ3jDNphDNDWPbsX5PSW/tiXZb/j0Q==
X-Google-Smtp-Source: AGHT+IF8wGzDOU8OUDrbYS9HLq5a/LP27cuun0ftWJxtklltnthLFQG+4WniBZXW86Ild/G8NCBvPA==
X-Received: by 2002:a05:600c:468f:b0:431:47e7:9f45 with SMTP id 5b1f17b1804b1-432a9abb8ebmr17595405e9.11.1730890757402;
        Wed, 06 Nov 2024 02:59:17 -0800 (PST)
Message-ID: <80296824-760a-48c4-9dce-4875fca0ed31@suse.com>
Date: Wed, 6 Nov 2024 11:59:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
 <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
 <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com>
 <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@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: <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 07:56, Frediano Ziglio wrote:
> On Tue, Nov 5, 2024 at 5:06â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.11.2024 17:35, Frediano Ziglio wrote:
>>> On Tue, Nov 5, 2024 at 3:32â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> On 05.11.2024 15:55, Frediano Ziglio wrote:
>>>>> This toolchain generates different object and map files.
>>>>> Account for these changes.
>>>>
>>>> At least briefly mentioning what exactly the differences are would be
>>>> quite nice, imo.
>>>>
>>>
>>> What about.
>>>
>>> Object have 3 additional sections which must be handled by the linker script.
>>
>> I expect these sections are there in both cases. The difference, I assume,
>> is that for the GNU linker they don't need mentioning in the linker script.
>> Maybe that's what you mean to say, but to me at least the sentence can also
>> be interpreted differently.
> 
> Why do you expect such sections? They are used for dynamic symbols in
> shared objects, we don't use shared objects here. Normal object
> symbols are not handled by these sections. GNU compiler+linker (we
> link multiple objects together) do not generate these sections. So the
> comment looks correct to me.

About every ELF object will have .symtab and .strtab, and many also a
separate .shstrtab. There's nothing "dynamic" about them. IOW - I'm
confused by your reply.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:22:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830725.1245790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8e7Q-0001em-G5; Wed, 06 Nov 2024 11:22:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830725.1245790; Wed, 06 Nov 2024 11:22: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 1t8e7Q-0001ef-DD; Wed, 06 Nov 2024 11:22:36 +0000
Received: by outflank-mailman (input) for mailman id 830725;
 Wed, 06 Nov 2024 11: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=ZUQe=SB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8e7P-0001eZ-Q6
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:22:35 +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 6a075abf-9c31-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:22:32 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-37d808ae924so3690717f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:22: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-381c10b7b50sm19116422f8f.6.2024.11.06.03.22.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 03: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: 6a075abf-9c31-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzQiLCJoZWxvIjoibWFpbC13cjEteDQzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhMDc1YWJmLTljMzEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkyMTUyLjA4ODAxLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730892151; x=1731496951; 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=499VpUdxJcvds9v0jzsCqADRq/dDHmDNGNQLnL2XRLc=;
        b=gEu/c8na5V87WqFUaNqknZy9/fRdI0ODOAHvzGJXj+GnAJY3qA37/SXcRJrx2svkJe
         S2OR2w6pcngWwgFUvsbtsmmwmBVvnsrGaZ8tbqa+XzFu04wHpmbeeFqu3T7R2HdInBTi
         eBTp1PZ3lR3szgcX+iU8U+N27E1K4+/GaBqw2j67e3WlzTBFY/Dimn1lMrAvLcdpRWIc
         PrvpbDFpJ2wO1pXXIjrQ4ZiY6vLskX3cBrNQQa7tmQQhstuHx1upNfLNUpAoFbxAyHRG
         yRTdX8Q62PfkACO740prH+bRJgeUAe6o0fCBUoGKURkh8nvGzc98ArrtOdfZ/ewEiKJO
         qBsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730892151; x=1731496951;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=499VpUdxJcvds9v0jzsCqADRq/dDHmDNGNQLnL2XRLc=;
        b=P5qh45RAnFI53DPNe6tBhRWblBOSiFWCZiw42v0uyIm7FJmT+R9eKLBCmQqe6+57h5
         h5y0iPCgtcxACBAYGANkxcuE1s13NJyXV5KKJZseE6VGrypkiRcyKHshxsBk/UDjF7sB
         qlOSMaHAeoQ4Woyv3eSg+MfWdVY5SctepJy6zH6PZavfH3muW5dmNiASQW7p/hAXYZ95
         IvIMzRoCwGCU6CbuNa1yXq12cIkLjYjaBDMzNuh9ViO8smITx9OD4gnvMUYVwjaiDVmy
         CR6jalrPD/yBYgjpnxYP/EcTC37URbT8u0UwjcXLH9q1Ni0LVMs4uPcd9CzR/q2H64Zp
         B8wQ==
X-Forwarded-Encrypted: i=1; AJvYcCW0DBBcWAqw7EOt57M6ULtwPNh8qXtSf9IV2XPxMz2toAexy9b+6dCyimcdAQwgfn9woIo54MT0Qlg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOL8hTzkUQ9+kc9p93tYkdNvZ+6RBtGjyUO+tVOknC7RHe0VwL
	x0SxVNaSf3NVVg5gCuKWh5BF+SA0USg421W1FrQx4jKQOsuBc5iVqzo21E8/Gg==
X-Google-Smtp-Source: AGHT+IHZPUd63HBMWCG6dftQ76kUx87ySeJH4RM+wvnMi8UfvuK08F2FLJzlffMx9i7LUt4KBP/qOA==
X-Received: by 2002:adf:f68b:0:b0:37d:50e1:b3e1 with SMTP id ffacd0b85a97d-3806113d082mr29102295f8f.16.1730892151362;
        Wed, 06 Nov 2024 03:22:31 -0800 (PST)
Message-ID: <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com>
Date: Wed, 6 Nov 2024 12:22:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/3] x86/emul: define pseudo keyword fallthrough
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1730880832.git.federico.serafini@bugseng.com>
 <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@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: <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2024 10:04, Federico Serafini wrote:
> The pseudo keyword fallthrough shall be used to make explicit the
> fallthrough intention at the end of a case statement (doing this
> through comments is deprecated).
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
>  xen/arch/x86/x86_emulate/x86_emulate.h | 10 ++++++++++
>  1 file changed, 10 insertions(+)

When you had asked my privately on Matrix, I specifically said: "Adding
the pseudo-keyword to x86-emulate.h (not x86_emulate.h) is probably best,
unless problems with that approach turn up." Even if identical re-
definitions are deemed fine, I for one consider such bad practice. Yet
by playing with this file (and outside of any relevant #ifdef) means
there will be such a re-definition when building Xen itself.

In fact the patch subject should also already clarify that the auxiliary
definition is only needed for the test and fuzzing harnesses.

> --- a/xen/arch/x86/x86_emulate/x86_emulate.h
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.h
> @@ -23,6 +23,16 @@
>  # error Unknown compilation width
>  #endif
>  
> +/*
> + * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
> + * the end of a case statement.
> + */
> +#if (!defined(__clang__) && (__GNUC__ >= 7))

I realize xen/compiler.h has it like that, but may I ask that you omit
the meaningless outer pair of parentheses?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:28:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:28:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830732.1245802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eCx-0002FK-6D; Wed, 06 Nov 2024 11:28:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830732.1245802; Wed, 06 Nov 2024 11:28: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 1t8eCx-0002FC-1V; Wed, 06 Nov 2024 11:28:19 +0000
Received: by outflank-mailman (input) for mailman id 830732;
 Wed, 06 Nov 2024 11:28: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=ZUQe=SB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8eCw-0002F3-3W
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:28:18 +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 36c2b20d-9c32-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:28:15 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-37d6ff1cbe1so4806761f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:28: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-381c10b7e1bsm19018529f8f.1.2024.11.06.03.28.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 03:28: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: 36c2b20d-9c32-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM2YzJiMjBkLTljMzItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkyNDk1LjQ3Njg2NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730892495; x=1731497295; 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=EIMQF3dEGES7l2eWIPggWazUIxRdB765Mm+97U4o2DY=;
        b=BjFHNYbaXaO2QtnvzRq6cZcbkTlK5SmGqPccaey71imMb6oL+2puzZkuS/Zh1yJh+Z
         //IzKsqYxJAK7MLcP1CiDXbxwrJWWx76AnnwL2NtAbZbRtSM9oCku39wiHPjRHSuEazz
         HH73oMsLa0eyw0NDGfFHf5Ln2AsyZH+beueqTQxObKoXkOiKEsdJnyW4NfISp1/uHCoe
         S1vHRVK1a0QWZh7CDgxHrEeoeIB9RXXfBmbu/rFrpLfy3LCZrtMku4mRKNcym30ujOHx
         dn9DJsYCJyDNPHgkIjc524NmF3QfzFh1io631MXRLmHljl3jVzOPVk+2tIdrDsJlvlCQ
         nHFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730892495; x=1731497295;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EIMQF3dEGES7l2eWIPggWazUIxRdB765Mm+97U4o2DY=;
        b=Z8iUar/k9Fk7uDiHpw0hEDUW4LBXVNQigwVse7pqg2OwEzcNYP3UN5OzIRyVanLqmd
         XIvA02Gdj+JaQ1BxCO1Zb7sx0+wpYl2cpJ6HOviV11qM0EDkvAoukmfHALV0r1svTZQB
         n7M95LaG6NCJ1RSCwRsXdzAXm1CVVG28hwIN0hXUujX7l2MEzWX284UPsF75MrT1H0sW
         mlpxHXaawBaCUyYKe8wK3NIEotFTbkoOT2ErnD3yLsW9J038yWGb85hY8CUEknn0yux1
         KlqSBBSKX7J3X7cNNZNe9B1xB8x5dYpeeMF30ABNDwygamIkVrqHUr7Rvm7QEO3KTBYa
         rxTQ==
X-Forwarded-Encrypted: i=1; AJvYcCVhAA7Qja9u4OFzC66SQokdEquzRTjWtVgynFH3853xJi5MAAHJonPtfmGPDWBuWrri9gFXnQPYFQY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzi6HtvZyxho6QjThMb0fqQlAFy/IpGEI86Hhe5QmZIQCmfZgK5
	rvR2jQXujEqmh0rqidyqyNZZCFj/yA/5kBm8hzgUYJjDMSM7Pt07HEurdN5Jbg==
X-Google-Smtp-Source: AGHT+IEloJKowAVLVFihK2/OBvZWfMKStIBFcMrWptW328FtRRaGkxYFq8jvJdgvdZ6/fxB270FsNw==
X-Received: by 2002:a5d:6c65:0:b0:37c:cbd4:ec9 with SMTP id ffacd0b85a97d-381be7add43mr16829657f8f.5.1730892494834;
        Wed, 06 Nov 2024 03:28:14 -0800 (PST)
Message-ID: <ef7e8597-d0ea-4804-95dd-3fd3d6faacd3@suse.com>
Date: Wed, 6 Nov 2024 12:28:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/3] x86/emul: use pseudo keyword fallthrough
To: Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: consulting@bugseng.com, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1730880832.git.federico.serafini@bugseng.com>
 <9be1812e391ce893afa028c05614b74cddb197b7.1730880832.git.federico.serafini@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: <9be1812e391ce893afa028c05614b74cddb197b7.1730880832.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2024 10:04, Federico Serafini wrote:
> Make explicit the fallthrough intetion by adding the pseudo keyword
> where missing and refactor comments not following the agreed syntax.
> 
> This satisfies the requirements to deviate violations of
> MISRA C:2012 Rule 16.3 "An unconditional break statement shall
> terminate every switch-clause".
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

We can certainly take this as is, as a tiny first step. Personally I'm
not overly happy though to see a mix of comment- and pseudo-keyword-
style annotations in individual files. After all going forward we'll
want to use the latter, now that this becomes possible. Yet for that I
view it a more than just helpful if bad precedents didn't exist
anymore. Being the one to touch the emulator files most, I can say
that here more than perhaps anywhere else new code is very often added
by copy-and-paste-then-edit.

Therefore question in particular to the other x86 maintainers: Won't
we be better off if we fully convert to pseudo-keyword-style right
away?

Jan

> --- a/xen/arch/x86/x86_emulate/decode.c
> +++ b/xen/arch/x86/x86_emulate/decode.c
> @@ -1356,7 +1356,8 @@ int x86emul_decode(struct x86_emulate_state *s,
>                          --disp8scale;
>                      break;
>                  }
> -                /* vcvt{,t}s{s,d}2usi need special casing: fall through */
> +                /* vcvt{,t}s{s,d}2usi need special casing. */
> +                fallthrough;
>              case 0x2c: /* vcvtts{s,d}2si need special casing */
>              case 0x2d: /* vcvts{s,d}2si need special casing */
>                  if ( evex_encoded() )
> @@ -1530,7 +1531,8 @@ int x86emul_decode(struct x86_emulate_state *s,
>                          disp8scale -= 1 + (s->evex.pfx == vex_66);
>                      break;
>                  }
> -                /* vcvt{,t}sh2usi needs special casing: fall through */
> +                /* vcvt{,t}sh2usi needs special casing. */
> +                fallthrough;
>              case 0x2c: case 0x2d: /* vcvt{,t}sh2si need special casing */
>                  disp8scale = 1;
>                  break;
> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -1460,6 +1460,7 @@ x86_emulate(
>  
>          d = (d & ~DstMask) | DstMem;
>          /* Becomes a normal DstMem operation from here on. */
> +        fallthrough;
>      case DstMem:
>          generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
>          if ( state->simd_size != simd_none )
> @@ -1942,6 +1943,7 @@ x86_emulate(
>              break;
>          }
>          generate_exception_if((modrm_reg & 7) != 0, X86_EXC_UD);
> +        fallthrough;
>      case 0x88 ... 0x8b: /* mov */
>      case 0xa0 ... 0xa1: /* mov mem.offs,{%al,%ax,%eax,%rax} */
>      case 0xa2 ... 0xa3: /* mov {%al,%ax,%eax,%rax},mem.offs */



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:32:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:32:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830749.1245814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eGZ-0003x9-Lc; Wed, 06 Nov 2024 11:32:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830749.1245814; Wed, 06 Nov 2024 11:32: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 1t8eGZ-0003x2-J9; Wed, 06 Nov 2024 11:32:03 +0000
Received: by outflank-mailman (input) for mailman id 830749;
 Wed, 06 Nov 2024 11:32: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=ZUQe=SB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8eGY-0003ww-Qt
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:32:02 +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 bced1013-9c32-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:32:00 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-37d47b38336so4987971f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:32: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
 ffacd0b85a97d-381c113e69fsm18874058f8f.69.2024.11.06.03.31.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 03:31: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: bced1013-9c32-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJjZWQxMDEzLTljMzItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkyNzIwLjU1NjYxMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730892720; x=1731497520; 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=8HZ5iGSiMy1yvt8HIMxpQHnNm+Cmu7IHALBG2+41EP8=;
        b=aYnRnaMpH2W8Sr8g6/e/zFQ+wMCY4yv+e0//KVR7Jb9Ebs/9zdsYSDfEn5gi+PLar9
         WG9kAAuwtxdAaJ8JZGj7/8fTl+rAhOjrgGa25iaF6SLbdNi7NukS0lF6nlRGfTYmsuZ1
         RUk2HLkTbwfBjUbUM/nxKqFp521cN27mt2MbPyE6hON2C3pssHinuDrYrR61JVXCq3dy
         8GfiGJdFFcc3XlgpHh8f8gnogUjwcjzYGVAzJmv+pzAh8IBrVicUJJybY2lEue3Pgf/z
         lVl3NAqZV2XyzVwgXWCPFdWbxXb5hEFYZQgsOXyiK3Azku5+3+rQIb1uG85pSZRsBIKA
         PsBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730892720; x=1731497520;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8HZ5iGSiMy1yvt8HIMxpQHnNm+Cmu7IHALBG2+41EP8=;
        b=HXSPuM14HGVMRiGuHRMaiUHACDBeGCJrTaxPjkK8XiOZN0+i2bHgAYQRBUffgrDY2S
         q4zQ74RnGE+CFnLfhf3UD7HfWsgqiwpm5Xd5l+crIKoIhauVXSt5PNrnoDrUzG2Ip8yM
         XZnGiyyTbZhxLhvRZSU4XOFz8123j1QhKvDgSyvLVxpKO0PZdxqe5OTyJHt45Af+yE2g
         FOq3yT1dES/VhPFiiOTC2q8J2eKrAxJWxERxwL/EOyPjhm/f6+Hd9pPBQe2NIdnuifov
         pO+RseknG3sLnmSZxzp8x8RfWOrYeQzdMH82z3A6/ovtFbrIq2URnAvgACxKg3cZJiHw
         uFFg==
X-Gm-Message-State: AOJu0YyknWf13v/z4o56EfWiBZVHFa82vI06PU+omRxrITmgwUw7ATFk
	DDDWjPxO/Ec3NJdsNGpKuysBTXjoSfDKmw0VQi4Z5ToH/Pft0aBBAxmOLDqEG81NaGd0eVPKusc
	=
X-Google-Smtp-Source: AGHT+IHi1DwSVLWfYvbudA5Hr2/orG5aub90+1/QEOaPF6sXGnEQpuI0oijgqN378wLPE8ucP27o5A==
X-Received: by 2002:adf:f282:0:b0:37d:4a00:5704 with SMTP id ffacd0b85a97d-38061200c32mr26673278f8f.38.1730892719992;
        Wed, 06 Nov 2024 03:31:59 -0800 (PST)
Message-ID: <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
Date: Wed, 6 Nov 2024 12:31:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook> <Zysx4ZwCUv62uTBw@macbook>
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: <Zysx4ZwCUv62uTBw@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 10:07, Roger Pau MonnÃ© wrote:
> On Wed, Nov 06, 2024 at 10:00:07AM +0100, Roger Pau MonnÃ© wrote:
>> On Wed, Nov 06, 2024 at 08:05:19AM +0000, Mykyta Poturai wrote:
>>> During the construction of dmask value, it gets shifted by
>>> (32 - msi->vectors) bits. If msi->vectors is 0, the result of the shift
>>> becomes undefined due to shifting by a size of the type. While this
>>> works fine on x86, on ARM the resulting mask becomes 0xFFFFFFFF, which
>>> is incorrect.
>>>
>>> Fix this by adding an explicit check for msi->vectors == 0.
> 
> Wait - how can msi->vectors ever be 0?  AFAICT there's no way in the
> MSI logic to configure 0 vectors, there will always be at least 1 vector
> enabled.
> 
> Maybe what you want, if this fix is for compliance reasons, is an
> assert unreachable that msi->vectors > 0?

Which raises a question as to (lack of) context: Was this spotted by
mere code inspection? Or by a static analyzer? If so, which one? That
may help figure whether some workaround like the one suggested is
necessary, or whether it can simply be left alone.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:35:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:35:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830758.1245825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eJU-0004aQ-6E; Wed, 06 Nov 2024 11:35:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830758.1245825; Wed, 06 Nov 2024 11:35: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 1t8eJU-0004aJ-3A; Wed, 06 Nov 2024 11:35:04 +0000
Received: by outflank-mailman (input) for mailman id 830758;
 Wed, 06 Nov 2024 11:35: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8eJS-0004aC-KE
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:35:02 +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 274c17ad-9c33-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:34:59 +0100 (CET)
Received: by mail-oo1-xc2f.google.com with SMTP id
 006d021491bc7-5ee1e04776cso1365124eaf.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:34: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: 274c17ad-9c33-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMmYiLCJoZWxvIjoibWFpbC1vbzEteGMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3NGMxN2FkLTljMzMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkyODk5LjY0ODEyOSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730892898; x=1731497698; 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=NxCVbREjyMnEUTjnJf2lxQT8dfVrnI1B/Lw7xisk/38=;
        b=OP+G/Pj+pHTOVWZvT064doJPzZgZoNs4VZyyWEX87juvqXO27nGm3t/yZB0ZHSHT3f
         VNzww2WiaOpCdPz16Ab9Bc3eL7mVuOdkhikpaOC+1Inu42aQZ5jluRH4R1uvN5WpPlWP
         8ExB5uHe69mojy7qJd8YC3GCnQ1TRb7PWpj14=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730892898; x=1731497698;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=NxCVbREjyMnEUTjnJf2lxQT8dfVrnI1B/Lw7xisk/38=;
        b=obJcgauBWD65SMGLJP5R6rCbzqxkua7IFFZqCeQ96EOVn8BcsaK0CSqDn/7qrtUMDz
         afPEmWV+AliLrH2IVPz5LEDf3S5xIhfxd0x+NHL3kKhh5NG2zRPUtvXwEDpoc98QmFS0
         21CR8ldErlcK/dBCdYacNUN/IMEOhOLWDwfflVGWOqAS9OEzx1ix9gHKErEECi9gp09A
         C04Yxd+rvoGxJUz2UVjRc5TE9Fa7pPXh1DSTMwUDmpEzc1VRw+SYUXU5DhZXdhSdsS2R
         8POGdCFMhLJ9blsUEz6Ziq9q91igz69igb+OAaRvz6uo9wLTsGLei9idnqnV1D/HiACU
         V7lw==
X-Forwarded-Encrypted: i=1; AJvYcCVa7UG3AaJ44fRlHXPSFnSBI3eQPbZZ4qSc15rPVhbCGXwD2gL8wPGVjg9qCH68wsv8AlLYlm+G7GQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYEuJmIi5d0kA9jIHzQ4CTyYmTfydKCkgJlY8f78kAY9kRLGBv
	HF66m+URSE8Zkifqv7CJbmMVbpss+fXYzsdpnlRht25Icpoyr6Ta90EC1PSKCeM6H6j741Btzr4
	8C+ZfOOCgIWAcZit3zyInA3djp9as4vM5D4pukw==
X-Google-Smtp-Source: AGHT+IG3Eai53yDL7XPaUmGFPYDnnLT7jrAjW8Tf/SPBiG8epBlg3qBuq6gCBqoINyDGo776HvuoAKT2vcNK/UGIzFI=
X-Received: by 2002:a05:6820:1b94:b0:5ec:5eb6:1acc with SMTP id
 006d021491bc7-5ec6db9a003mr13608041eaf.5.1730892898272; Wed, 06 Nov 2024
 03:34:58 -0800 (PST)
MIME-Version: 1.0
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com> <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
 <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com> <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@mail.gmail.com>
 <80296824-760a-48c4-9dce-4875fca0ed31@suse.com>
In-Reply-To: <80296824-760a-48c4-9dce-4875fca0ed31@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 6 Nov 2024 11:34:47 +0000
Message-ID: <CACHz=ZgY_O7siQUQZjxGe=gfiB-C9jw1UQqwK9ffuHUUQmRgiQ@mail.gmail.com>
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
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>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 6, 2024 at 10:59=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 06.11.2024 07:56, Frediano Ziglio wrote:
> > On Tue, Nov 5, 2024 at 5:06=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >>
> >> On 05.11.2024 17:35, Frediano Ziglio wrote:
> >>> On Tue, Nov 5, 2024 at 3:32=E2=80=AFPM Jan Beulich <jbeulich@suse.com=
> wrote:
> >>>>
> >>>> On 05.11.2024 15:55, Frediano Ziglio wrote:
> >>>>> This toolchain generates different object and map files.
> >>>>> Account for these changes.
> >>>>
> >>>> At least briefly mentioning what exactly the differences are would b=
e
> >>>> quite nice, imo.
> >>>>
> >>>
> >>> What about.
> >>>
> >>> Object have 3 additional sections which must be handled by the linker=
 script.
> >>
> >> I expect these sections are there in both cases. The difference, I ass=
ume,
> >> is that for the GNU linker they don't need mentioning in the linker sc=
ript.
> >> Maybe that's what you mean to say, but to me at least the sentence can=
 also
> >> be interpreted differently.
> >
> > Why do you expect such sections? They are used for dynamic symbols in
> > shared objects, we don't use shared objects here. Normal object
> > symbols are not handled by these sections. GNU compiler+linker (we
> > link multiple objects together) do not generate these sections. So the
> > comment looks correct to me.
>
> About every ELF object will have .symtab and .strtab, and many also a
> separate .shstrtab. There's nothing "dynamic" about them. IOW - I'm
> confused by your reply.
>
> Jan

I checked the object files and there are no such sections using GNU toolcha=
in.

Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:35:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:35:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830759.1245835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eJe-0004ru-DZ; Wed, 06 Nov 2024 11:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830759.1245835; Wed, 06 Nov 2024 11: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 1t8eJe-0004rn-B4; Wed, 06 Nov 2024 11:35:14 +0000
Received: by outflank-mailman (input) for mailman id 830759;
 Wed, 06 Nov 2024 11:35: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=ZUQe=SB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8eJc-0004aC-Rw
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:35:12 +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 2e1c99f7-9c33-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:35:10 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-431ac30d379so53580625e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:35: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-432aa6c6569sm18929155e9.21.2024.11.06.03.35.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 03:35: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: 2e1c99f7-9c33-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJlMWM5OWY3LTljMzMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkyOTEwLjQ1NzY1Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730892910; x=1731497710; 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=IMiUwPdLpa03q2yGO43zPx+DDS9AZrV8C08NzOSoyK8=;
        b=BBXO0DL4is/ntl643JTe5BTK2O6aCY9JbqHnJEiJ26Z+mmll5WgC+hOHxieQ3cDCn6
         lL5bCPs3teGJsye+1JyaYIEvvQQVnU8qZ8DpyDoXADzilK++l7vvgYTrrMFkTvytqOAK
         4UDzai/4sxJg7oa5lGnU5JBh5bTv5rYCqmsJQD5sN7ma/2UNBMmmW/w9TzgvgSShMR/U
         teSZR682a0mJR58djEz/sOI7/fq8pzeKF+tkjwRw/lOjR2ovqS9hqPX2Q7b2RvmBU6ki
         a9TPR50jx/Yt+PGwrFhxrcVfLPCojTdKHCy8R2cCeLKryLRNz0p/hpYDdDqzOHH2uOdo
         xoSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730892910; x=1731497710;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IMiUwPdLpa03q2yGO43zPx+DDS9AZrV8C08NzOSoyK8=;
        b=JWCaqYUCp5doUSUA3hoUTFz6i3QbH2NvmszodVt/REyWmJf7b+nsC7EmiAZZY2sJFD
         2lym7oQW8SUOLt+0BAwbSQrBficX9DYzCw81vmNTGaiQ1CvIXJ6+hpoeijCqTADUgBIX
         xwtmlcju/cE32osNJnDw2jNJrid+6pFH9nb9g7s8EaHTFoxvTmspIa6fXH1imA0vF3zi
         2HNyGRocMqOqN0V/TGZ6CYPyGVMhI3j6QwVRbXv98aGSdf920sTxIQEVPTTE6rUbuk0l
         13Eoq9bV7wPP/QC6o10INGmvzCTlUUfoqXI/omDAC98xUgTxWtSfbMHgaielHrkqiwKd
         MyQw==
X-Forwarded-Encrypted: i=1; AJvYcCX2wsI0770A28bu/9dcP2Pk9nlDz4Wf1bJSwgxEJWQsBqA6OtlEpqbB8UKgU+ZsLBWlEiwDp/7gmN0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5tU/bnUzfrgBy07RtjlM9vHX1uKRuY1zBZx44NqbTk3xBXS3n
	qHBgOh4pponWnPo2b9pDoTYRpF+/McCk4M2wB9M87dWrNSYJnbyCo+WhiHRegg==
X-Google-Smtp-Source: AGHT+IF361oezCbLwepcZaxD6rQBfH3prl1QMoA9iG7Hdv4hQBG0f8TT1T9E3q5DDdGKxvtwKldtTA==
X-Received: by 2002:a05:600c:3514:b0:431:4880:3120 with SMTP id 5b1f17b1804b1-4319aca55a6mr332304595e9.11.1730892909868;
        Wed, 06 Nov 2024 03:35:09 -0800 (PST)
Message-ID: <3762161c-c803-4794-9d61-61b5519746c3@suse.com>
Date: Wed, 6 Nov 2024 12:35:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
To: Mykyta Poturai <Mykyta_Poturai@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>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@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: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2024 09:05, Mykyta Poturai wrote:
> During the construction of dmask value, it gets shifted by
> (32 - msi->vectors) bits. If msi->vectors is 0, the result of the shift
> becomes undefined due to shifting by a size of the type. While this
> works fine on x86,

Oh, also - what made you think this would be fine on x86? Afaict ...

> on ARM the resulting mask becomes 0xFFFFFFFF, which
> is incorrect.

... the exact same thing would happen (if msi->vectors indeed could ever
be zero) there, due to the type of the value shifted being unsigned int,
not unsigned long.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:41:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830773.1245844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ePD-00072s-1I; Wed, 06 Nov 2024 11:40:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830773.1245844; Wed, 06 Nov 2024 11:40: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 1t8ePC-00072l-V4; Wed, 06 Nov 2024 11:40:58 +0000
Received: by outflank-mailman (input) for mailman id 830773;
 Wed, 06 Nov 2024 11:40: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8ePB-00072d-UN
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:40:57 +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 fb7a1190-9c33-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:40:54 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9eaaab29bcso451413066b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:40:54 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb1813123sm265338366b.174.2024.11.06.03.40.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 03:40: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: fb7a1190-9c33-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZiN2ExMTkwLTljMzMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkzMjU0Ljk3MzA4Niwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730893254; x=1731498054; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=oji2e5eMKDC/XCwL3Ctgx9D3iv+s85S/x+qgXSdfdyk=;
        b=OobGcLI0Gk1AnneajHIXT0pC4PYfeZsfsJQh3t9Cs156Uz5SYkmaAW2rNtjJJsS49d
         RnKT3dQ1O+FBiqUQZrnBokBlmvLG5kG/42AHCa+8h6P9RUR4tylppuZ+o6nuREk/4AHi
         J1wALOu4zY5ugI7ltUH00Qz7IGzSHDFnstJLo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730893254; x=1731498054;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=oji2e5eMKDC/XCwL3Ctgx9D3iv+s85S/x+qgXSdfdyk=;
        b=BLi+ADedEQ/1c8f05E1tJYmULITbo58xPL5gWS4lyTQ4TylrTrh8LdqIbUYQbBiUiM
         BCm5KQNuuUbhbWbvz695MN9lmQRgf9KarnSoMPGUCGU8nxARPaiMiOjRJXb7pAISqsGU
         O3er+sm7+ebArZB4KAVq1c0dzqw2hUYPERlkZ8bf8470CM6FYs9qzY2B13mWLgOe3A1P
         9w93SS/iLA7np10WtGu5g5CqiY3Bf8Qvv/+Yeomrs0QnN+OyUp8baWQ3+mGc+5DZLDyJ
         Pkd6fkJHi8q9P+hNAyH9a+DY2YZo70mMEgNRxtFIgPC4Zcu+a/P4PmfucI+EirMEwoKN
         A5Sg==
X-Gm-Message-State: AOJu0Ywe0CfYkpmg1/z65A3FBxmPavE44O0t6OQBds+91a63wip+EkyV
	8Qtqz4N4++9HVpEudGqjehK1JlBoe3Qt1GX7HHGTYd3oIqROmm9VSlzTCdMbeLM=
X-Google-Smtp-Source: AGHT+IGtCSivtNDiJ08ILrGcru9E7Ojt/ZadgdK5W0UEK8/TaiItlxd4A0vy5I7jC7MyKS7Ymi2/4A==
X-Received: by 2002:a17:906:7f0e:b0:a9e:b093:2422 with SMTP id a640c23a62f3a-a9eb093307emr517514166b.48.1730893254341;
        Wed, 06 Nov 2024 03:40:54 -0800 (PST)
Date: Wed, 6 Nov 2024 12:40:52 +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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH] CI: Fix package installation for Coverity run
Message-ID: <ZytVxKOtQfR7DWeX@macbook>
References: <20241105204603.3412857-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20241105204603.3412857-1-andrew.cooper3@citrix.com>

On Tue, Nov 05, 2024 at 08:46:03PM +0000, Andrew Cooper wrote:
> Something has changed recently in the Github Actions environment and the
> golang metapacakge resolves to something that no longer exists:
> 
>   https://github.com/xen-project/xen/actions/runs/11539340171/job/32120834909
> 
> Update metadata before installing, which fixes things.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Seems like the current Ubuntu image has a stale apt cache?  It's good
practice to update before we install anyway.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:42:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830779.1245858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eQG-0007bL-Cr; Wed, 06 Nov 2024 11:42:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830779.1245858; Wed, 06 Nov 2024 11:42: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 1t8eQG-0007b8-A8; Wed, 06 Nov 2024 11:42:04 +0000
Received: by outflank-mailman (input) for mailman id 830779;
 Wed, 06 Nov 2024 11:42: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8eQF-0007aw-6J
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:42:03 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 22b6c34a-9c34-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:42:00 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-37d4c1b1455so4047180f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:42:00 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381c10e7465sm18840783f8f.53.2024.11.06.03.41.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 03:41: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: 22b6c34a-9c34-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIyYjZjMzRhLTljMzQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkzMzIwLjg0MTI3OCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730893320; x=1731498120; 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=e9iO0ekAbJbMiutjh+/AEpam/mXqpLJNfgJlAMLyzug=;
        b=jVfc8pYwxh/+bcNwUBCYeDCM+GjNiahvSg3HBgQHcf6h0Z8HzgC3fkjzGpRVre0Ehs
         DCrERKFB6m3xAngySPZzhqOt/BGB1Xy1AmaJUvBcaRfzqVB61u3Vo1OLDu3x1O0YV0oP
         /BR+Prpc+1FDRnZf4HLHPvz/HB8QPCJWLSDi4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730893320; x=1731498120;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=e9iO0ekAbJbMiutjh+/AEpam/mXqpLJNfgJlAMLyzug=;
        b=fNE4fU17lo0MoAP6sEkAj0Stp9/TlXNT+qMFM86vF0x8MRKdjlJmjFSCIjO1qnFzhB
         7mK5gWya+bBomffiJP5jAdjMbN7Rgwmdc0HF738M/3UJr9A0zoPovCZBBldtASS0acLr
         DLz3OoLt/lCWZ0lBudMp+7/72ap/sQy/6Br4lCipWo1i/VRNwtIL0Q0iMEPj+4hfQSws
         2e6ksXTVnARsUrHQ6cnNwKn1NqvlHGckdfxhFhXTpr1M8MF/Sltg6zjiSFSNcQ7DoGwV
         wtQY0j1OixfCx3my6paZQ+cGo4eWdBYV5izfgmKsplY8ffdNDR+c7i8WBCmsHq1GXKb3
         j7hA==
X-Gm-Message-State: AOJu0YyLJfmzwau/fvDWlQvnRV/1pl6dtCJOGoMlZpfhG70S3lgIhNyW
	H+BlvsSNaj11Wqu2gpjVz51qdszcwON/TS3oHe/e7l9lym8qFBUgxYC2LVpNSvtAvkQWZpin3Jz
	NgHM=
X-Google-Smtp-Source: AGHT+IEwr3gHQCAAnnplRL9hiBryrbGJJV2vkgJDhQTB2TvXILagsN2FRuD2teqy7Z3cnmaQRJmKsw==
X-Received: by 2002:a5d:638b:0:b0:37d:387b:f080 with SMTP id ffacd0b85a97d-381b7075edfmr18768444f8f.15.1730893320006;
        Wed, 06 Nov 2024 03:42:00 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/3] x86/boot: Fix build with LLVM toolchain
Date: Wed,  6 Nov 2024 11:41:47 +0000
Message-Id: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fix some compatibility generating 32 bit code.
LLVM has different object files and map files.
Do not use map file as they are not standard.

Changes since v1:
- do not use map files;
- add a fix for file names and preprocessor definition name.

Frediano Ziglio (3):
  x86/boot: Fix intermediate file names to generate 32 bit code
  x86/boot: Uses nm command instead of map file to get symbols
  x86/boot: Fix build with LLVM toolchain

 xen/arch/x86/boot/Makefile        | 10 ++++++----
 xen/arch/x86/boot/build32.lds.S   | 11 ++++++++++-
 xen/tools/combine_two_binaries.py | 28 ++++++++++++++++++----------
 3 files changed, 34 insertions(+), 15 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:42:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830780.1245870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eQI-0007qk-Kg; Wed, 06 Nov 2024 11:42:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830780.1245870; Wed, 06 Nov 2024 11:42: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 1t8eQI-0007qd-GB; Wed, 06 Nov 2024 11:42:06 +0000
Received: by outflank-mailman (input) for mailman id 830780;
 Wed, 06 Nov 2024 11:42: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8eQG-0007aw-QF
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:42:04 +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 23bce103-9c34-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:42:02 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-37d4d1b48f3so3793776f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:42:02 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381c10e7465sm18840783f8f.53.2024.11.06.03.42.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 03:42: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: 23bce103-9c34-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIzYmNlMTAzLTljMzQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODkzMzIyLjU1MzQwOSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730893322; x=1731498122; 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=JqBG/ejxY0G3tcFASKQ8s4CSPdRpi1GybkGCC/y1PZI=;
        b=M0LKNKb4MzltoxZVOmCmo1FazkBchinZQZ1MkT22ddDEa2SVKMQJK9Okw2z3ngevdM
         42+G+Qm12FH3g773b+yfsU5kGNc4DksYon/DelUKmXXKK9dw2uCdfJzgyGyOIHqrIPw9
         EXvFk9yh7klEMrXEIvC0bJeoXgKXjocqZ4D9A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730893322; x=1731498122;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JqBG/ejxY0G3tcFASKQ8s4CSPdRpi1GybkGCC/y1PZI=;
        b=cMznNoGnkn38aZ5QNkSscRxFIXCzBM2ntLpuFe+s289RQF8S/dMAI/y1lhB3s6C9E2
         S8GazyjeC8OI9101hPS1/rWAYXAhMJzV4SArU04m6A3DzRCru94ZKTZDCu03BpOGf8gj
         UsOaZiUi05i/i0UKC38MtobQ5964ZjSDANFRdrFFIKkwRZjtsfa73PuUtY6TFeiUwUjG
         E4AwbItmVWn5v2+NmVw7KQbSm6RNBvOPpcE56lzQQPjZWkkQD9qY4gho0iLV6Y4ogTFS
         3ih3cBOgpg7azJUihvICq787TTC7stW1jhRZM8G0duniSJTEMdLpx6UUhHYpHW4XeYXn
         I1hA==
X-Gm-Message-State: AOJu0Yz7vSf9Zq/oY/oxI3wHTyWCsAwcYa/vpkCGe62B/1coat1rmqKp
	WwgPX+Zra4JhUPBiP8JlVGxfuwefTFcqzqbLHjOmrJqF1n8yCMK6QP86C7+WIoQsnJeYjx/OTrK
	umlY=
X-Google-Smtp-Source: AGHT+IFD0Xyd4TJ84//eoDdUUxQkCWpWoZGmc7QsnwCtLxo/N+BKH3P92x9UO8Aq7fy35wObAzOaEA==
X-Received: by 2002:adf:f204:0:b0:37d:39aa:b9f4 with SMTP id ffacd0b85a97d-381b708ae51mr18136525f8f.26.1730893321695;
        Wed, 06 Nov 2024 03:42:01 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/3] x86/boot: Uses nm command instead of map file to get symbols
Date: Wed,  6 Nov 2024 11:41:49 +0000
Message-Id: <20241106114150.1432512-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
References: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Map file format is not standard making it code readind it
not portable and potentially hard to maintain.
Use nm command instead to get list of symbols; specifically
BSD format as it does not truncate symbols names like sysv one.

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/Makefile        |  5 +++--
 xen/tools/combine_two_binaries.py | 28 ++++++++++++++++++----------
 2 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 777b4befeb..01100a4b72 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -67,7 +67,8 @@ $(obj)/built-in-32.tmp.o: $(obj32)
 # If possible we use --orphan-handling=error option to make sure we account
 # for all possible sections from C code.
 $(obj)/built-in-32.%.bin: $(obj)/build32.%.lds $(obj)/built-in-32.tmp.o
-	$(LD32) $(orphan-handling-y) -N -T $< -Map $(@:bin=map) -o $(@:bin=o) $(filter %.o,$^)
+	$(LD32) $(orphan-handling-y) -N -T $< -o $(@:bin=o) $(filter %.o,$^)
+	$(NM) -p --format=bsd $(@:bin=o) > $(@:bin=nm)
 	$(OBJCOPY) -j .text -O binary $(@:bin=o) $@
 	rm -f $(@:bin=o)
 
@@ -79,7 +80,7 @@ cmd_combine = \
               --script    $(obj)/build32.base.lds \
               --bin1      $(obj)/built-in-32.base.bin \
               --bin2      $(obj)/built-in-32.offset.bin \
-              --map       $(obj)/built-in-32.base.map \
+              --symbols   $(obj)/built-in-32.base.nm \
               --exports   cmdline_parse_early,reloc,reloc_trampoline32 \
               --output    $@
 
diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_binaries.py
index 447c0d3bdb..db02494b28 100755
--- a/xen/tools/combine_two_binaries.py
+++ b/xen/tools/combine_two_binaries.py
@@ -28,8 +28,8 @@ parser.add_argument('--text-diff', dest='text_diff',
                     help='Difference between code section start')
 parser.add_argument('--output', dest='output',
                     help='Output file')
-parser.add_argument('--map', dest='mapfile',
-                    help='Map file to read for symbols to export')
+parser.add_argument('--symbols', dest='symbols_file',
+                    help='Nm command output to read for symbols to export')
 parser.add_argument('--exports', dest='exports',
                     help='Symbols to export')
 parser.add_argument('--section-header', dest='section_header',
@@ -65,15 +65,23 @@ exports = []
 if args.exports is not None:
     exports = dict([(name, None) for name in args.exports.split(',')])
 
-# Parse mapfile, look for ther symbols we want to export.
-if args.mapfile is not None:
-    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
-    for line in open(args.mapfile):
-        m = symbol_re.match(line)
-        if not m or m.group(2) not in exports:
+# Parse symbols file, look for symbols we want to export.
+if args.symbols_file is not None:
+    dummy_start = -1
+    for line in open(args.symbols_file):
+        v = line.split()
+        if len(v) != 3 or v[1].upper() != 'T':
             continue
-        addr = int(m.group(1), 16)
-        exports[m.group(2)] = addr
+        addr = int(v[0], 16)
+        if v[2] == 'dummy_start':
+            dummy_start = addr
+            continue
+        if v[2] not in exports:
+            continue
+        exports[v[2]] = addr
+    if dummy_start != 0:
+        raise Exception("dummy_start symbol expected to be present and 0")
+
 for (name, addr) in exports.items():
     if addr is None:
         raise Exception("Required export symbols %s not found" % name)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:42:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:42:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830783.1245884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eQK-00089V-6o; Wed, 06 Nov 2024 11:42:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830783.1245884; Wed, 06 Nov 2024 11: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 1t8eQK-00088h-2m; Wed, 06 Nov 2024 11:42:08 +0000
Received: by outflank-mailman (input) for mailman id 830783;
 Wed, 06 Nov 2024 11: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8eQJ-0007RL-Cx
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:42:07 +0000
Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com
 [2a00:1450:4864:20::142])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 233e1cce-9c34-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 12:42:01 +0100 (CET)
Received: by mail-lf1-x142.google.com with SMTP id
 2adb3069b0e04-539eb97f26aso4528658e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:42:01 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381c10e7465sm18840783f8f.53.2024.11.06.03.42.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 03:42: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: 233e1cce-9c34-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxNDIiLCJoZWxvIjoibWFpbC1sZjEteDE0Mi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIzM2UxY2NlLTljMzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODkzMzIxLjY2NzQ1Miwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730893321; x=1731498121; 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=clpuiLr6+GNq2EjFM/kTGl+9a7wk5TUx5RlFDo/t/qA=;
        b=S8RFwYTv6+qDv01uYf98yOGhM3RWhiCImmUBnurmkGJnH6YrBaFEwJ5RuqZyhBqv/M
         llATVarc3EK78eHGjV42RRlhc//qyBp2g6fCCnWtaNLhowxd8XUeeY5lDSOlsGuw+lvq
         Ox1cMForHfT5nYyB1GFGzkSASC+YP4zay8aBk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730893321; x=1731498121;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=clpuiLr6+GNq2EjFM/kTGl+9a7wk5TUx5RlFDo/t/qA=;
        b=TwobDD6Q0M6YR0ZuQfrP9IdwOe/APh9To364j8i04RRkeDggsbrNocH6FJS6guJZx5
         0gNqPYdBrftvvrYMeplRhiqSxPQrq6lrvIGqfEDqUZMur6MpS/cj19NI0Hm6igAQZeAY
         08jRuuYXkL5S0dZ8oEUqMStwnaAF8bA2lYHPmSNyvYa2tkdYPi0motHtqaHNIDjNkvRX
         NcK7Dn8ZWWoc+SdnpqeRvI1RCKde5PtVryWjTw3xFN96N0QUTizaunV9OPXH3HMkhFxE
         Gsft3P22isKV3JQWrSSExDS9jydrHDDArnK+7oczQwmXdGsQtjwq+NxC503QqJIrLlDc
         zDlA==
X-Gm-Message-State: AOJu0Yy+SebDuVDZmD85aQpJcfPH0iBmPtWqZNNPykZvn9eWxgoyqaW+
	AiLpCs5J1TRVyZE3wCmWF7lQuNrXucbLYMLg9PqU9khK39eNFGh/OZN2x7HGJSncpwUpvl1H6vG
	76EpOeQ==
X-Google-Smtp-Source: AGHT+IGPktNd6V7yTFf7xSW6d54nFXzj0fIqfdwBNhvEnopSInn+Z50KIVoIvRfqeiQ3GamMp0m1Ng==
X-Received: by 2002:a05:6512:3408:b0:539:f8cb:f5e3 with SMTP id 2adb3069b0e04-53b7ed18520mr14053903e87.48.1730893320764;
        Wed, 06 Nov 2024 03:42:00 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2 1/3] x86/boot: Fix intermediate file names to generate 32 bit code
Date: Wed,  6 Nov 2024 11:41:48 +0000
Message-Id: <20241106114150.1432512-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
References: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The "base" and "offset" definition were inverted, "base" file
should be the files without offsets applied while "offset" should
have the offsets applied.
Also update an old usage of "final" to "apply offset" to make
more clear and consistent (in former commit messages the "final"
term was used instead of "offset").

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
--
Anthony was right, it was the opposite
---
 xen/arch/x86/boot/Makefile      | 7 ++++---
 xen/arch/x86/boot/build32.lds.S | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index e102bd8c70..777b4befeb 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -44,7 +44,8 @@ text_gap := 0x010200
 text_diff := 0x408020
 
 $(obj)/build32.base.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff)
-$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) -DFINAL
+$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) \
+                                       -DAPPLY_OFFSET
 $(obj)/build32.base.lds $(obj)/build32.offset.lds: $(src)/build32.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
 
@@ -75,10 +76,10 @@ cmd_combine = \
     $(PYTHON) $(srctree)/tools/combine_two_binaries.py \
               --gap       $(text_gap) \
               --text-diff $(text_diff) \
-              --script    $(obj)/build32.offset.lds \
+              --script    $(obj)/build32.base.lds \
               --bin1      $(obj)/built-in-32.base.bin \
               --bin2      $(obj)/built-in-32.offset.bin \
-              --map       $(obj)/built-in-32.offset.map \
+              --map       $(obj)/built-in-32.base.map \
               --exports   cmdline_parse_early,reloc,reloc_trampoline32 \
               --output    $@
 
diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index f20fc18977..9b29f0184f 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -15,7 +15,7 @@
  * with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifdef FINAL
+#ifndef APPLY_OFFSET
 # undef GAP
 # define GAP 0
 # define MULT 0
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:42:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:42:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830782.1245879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eQJ-00086L-Tm; Wed, 06 Nov 2024 11:42:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830782.1245879; Wed, 06 Nov 2024 11:42: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 1t8eQJ-00086D-Qz; Wed, 06 Nov 2024 11:42:07 +0000
Received: by outflank-mailman (input) for mailman id 830782;
 Wed, 06 Nov 2024 11:42: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8eQI-0007RL-Cl
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:42:06 +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 2436fafd-9c34-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 12:42:03 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-37d447de11dso5035966f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:42:03 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381c10e7465sm18840783f8f.53.2024.11.06.03.42.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 03:42: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: 2436fafd-9c34-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzUiLCJoZWxvIjoibWFpbC13cjEteDQzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI0MzZmYWZkLTljMzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODkzMzIzLjM1NDM2Nywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730893322; x=1731498122; 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=vMi0+FOW37XSiIpmJo9yDY5hKngxNrldiecxy5czma8=;
        b=FWItkgwT5PVvTxvtaicZroIZynwnZSAPU5Kdo7JJ4TBbiooKy2/QP8+b8crtAaCMYC
         8UeNDaT7++vh5wGlZjS+5fV+NhmZbnhv1Mg0iNOiJmK3FHVO4n9seCZVZo47ujsCV8cr
         i7Rmb0bN+aGFBPKbIWKffmCF+leCel31E+SI8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730893322; x=1731498122;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=vMi0+FOW37XSiIpmJo9yDY5hKngxNrldiecxy5czma8=;
        b=kszxBd9SOvb/obITSBWmPnceBMd4v1WzEKcioD36mknOwO8GKbKCN3OyXSJJhUN6tU
         kvGG1KMIMBgoG06Vzt3MoSvBeWcDo4nPg5qcV2AlSf+k4BWQXcu1Kqn5OXyu73Uu3Cjo
         US0D1XB40YCdHobC37cQ3TPy5AEveLc+TjizLgOnpIWnlh43CoU/2Wc1xCfpCNuVj5Cs
         3eWfeWkWoN9RXIf2Xmrf7ARlEFcgqMODJeiXOxZc/9lqkfbRCFYL1SFIvBWmBCcvc65y
         IeA1wH0PWjnPliju8sUS0W93380XV4dBVjNBWSVXCNV+esvgZyTWjS+yNE72xUOrhUhL
         HQpg==
X-Gm-Message-State: AOJu0Yyw/UZ0OBf4FkYS6wE48XaRDcgExOA5B70AF3oGWdapi+hKQWRr
	s9qAXM1vuTuAnT2qD9pPsqaRj3rE8LkhlRO0AbfNsO7/HV+esGLQ2w3aQA80dRoj/H1f+RJRO2O
	n6HA=
X-Google-Smtp-Source: AGHT+IGJpNvzHflsKJ3yMWA/g3GWreDCCpsXVONWpKrd2U0D7czGn7NehhOveo3/szy/NQY6a7X/Gw==
X-Received: by 2002:a5d:584a:0:b0:371:8eb3:603a with SMTP id ffacd0b85a97d-381be7d6144mr21054824f8f.27.1730893322493;
        Wed, 06 Nov 2024 03:42:02 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2 3/3] x86/boot: Fix build with LLVM toolchain
Date: Wed,  6 Nov 2024 11:41:50 +0000
Message-Id: <20241106114150.1432512-4-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
References: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This toolchain generates different object files.
Object have 3 additional sections which must be handled by the
linker script.
Added sections need to have special type so we put them in
separate sections as linker will copy type from input sections.

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index 9b29f0184f..1e59732edd 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -66,6 +66,15 @@ SECTIONS
        *(.comment.*)
        *(.note.*)
   }
+  .shstrtab : {
+       *(.shstrtab)
+  }
+  .strtab : {
+       *(.strtab)
+  }
+  .symtab : {
+       *(.symtab)
+  }
   /* Dynamic linkage sections.  Collected simply so we can check they're empty. */
   .got : {
         *(.got)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:45:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:45:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830808.1245899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eTV-0001QQ-NG; Wed, 06 Nov 2024 11:45:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830808.1245899; Wed, 06 Nov 2024 11:45: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 1t8eTV-0001QJ-Jd; Wed, 06 Nov 2024 11:45:25 +0000
Received: by outflank-mailman (input) for mailman id 830808;
 Wed, 06 Nov 2024 11:45: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=ZUQe=SB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8eTU-0001QD-VG
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:45:24 +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 99fe9401-9c34-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 12:45:20 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4316f3d3c21so51232215e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:45: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-432aa74abb9sm19696305e9.42.2024.11.06.03.45.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 03:45: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: 99fe9401-9c34-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk5ZmU5NDAxLTljMzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODkzNTIwLjk1ODE3OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730893520; x=1731498320; 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=//Mb8UKJhZpV72nAkfnHlceW+A8vwbjOFIWGa/PERRI=;
        b=VFTdfouwQvLrI/AQt7//Tl09eoMxaJYdvkXwC46xyiYOda0YheQL5CqC1LFONDOE1j
         8M47jBCK3sz7ssGr+ogV2f5ro37Ir+tE2fap0K6mxddRXONFsyKczRHRYXbmWPCSrZH0
         PomSOSt9Jc/xlGvKmp/0E39k4k4dSUDlhdrunNPLpA0qabWj01JKFgtstes9jA9WxJ45
         q19pMDpygELSL/XyKbgq9wrD0lTAl9Kw9EnCkUwBkAVN16ptEdg+SRc1SqkiDyOWa34f
         gn1qMUQ8TXGzeqw7soRv5KvbCNjhTHBLlEP+wsQkl8GWI/VGrkXzhacC9sLFjrnR5ISF
         Oetg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730893520; x=1731498320;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=//Mb8UKJhZpV72nAkfnHlceW+A8vwbjOFIWGa/PERRI=;
        b=fFf2I8kw/f0IHw5wcEGD0zlSxH2nuAev0qdj81qIrJMJG9Jrkje/Q7HBk4jx3UUFDB
         /pFiA/wSvqwvJKafgTisSGqRyYEtn0/7jxXsF97jVXeeQxE2G34vz69tSejtqvjHBt0B
         kAusLl+cOokgeytYr5KOdC6M/hg271M0DXcdDRAbdyI4IqkscF1n/LGjjzWhF19msCz0
         iSTZO8+LxR1Ld0aBS/LLvNJ27aOv2z8VwYPYtO5bNK4JJtgol4wacmgcuOJSHCPdeMr+
         cdYxV1nL6kXJ0veOS6dLXAiP8mvnajWmX0zb7lazolxn+h7ovigCgSUoYcE64DU2T9UG
         Fizw==
X-Forwarded-Encrypted: i=1; AJvYcCVGrfCL+zshGjxyJPjKI2O0Q9sQz6bEGBY4pPIy4ifY+OleZ2PJ0RktpG/pbERoSmbs0h4v9iBpbu0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7h415GHbUqwZuf5TRVFAqN8VV0g92lk+u3AfG89eGBFxnh837
	Bpo6iOujlzqG9rI6CnzW+3GLKDfaLWToFREFOI6j31os2mLWQMlKlr691z5A+Q==
X-Google-Smtp-Source: AGHT+IE2a+YygcS6vrAUEFnupEvUALPPKee2TLFIBbUhJafXMteukvKmTEADnKUQmkYN6oklt6Iebg==
X-Received: by 2002:a05:600c:354e:b0:431:55c1:f440 with SMTP id 5b1f17b1804b1-431bb9de8a9mr246394875e9.30.1730893520309;
        Wed, 06 Nov 2024 03:45:20 -0800 (PST)
Message-ID: <cc7802cc-8591-4356-bf7e-3daa912c751c@suse.com>
Date: Wed, 6 Nov 2024 12:45:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
 <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
 <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com>
 <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@mail.gmail.com>
 <80296824-760a-48c4-9dce-4875fca0ed31@suse.com>
 <CACHz=ZgY_O7siQUQZjxGe=gfiB-C9jw1UQqwK9ffuHUUQmRgiQ@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: <CACHz=ZgY_O7siQUQZjxGe=gfiB-C9jw1UQqwK9ffuHUUQmRgiQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 12:34, Frediano Ziglio wrote:
> On Wed, Nov 6, 2024 at 10:59â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 06.11.2024 07:56, Frediano Ziglio wrote:
>>> On Tue, Nov 5, 2024 at 5:06â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> On 05.11.2024 17:35, Frediano Ziglio wrote:
>>>>> On Tue, Nov 5, 2024 at 3:32â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>
>>>>>> On 05.11.2024 15:55, Frediano Ziglio wrote:
>>>>>>> This toolchain generates different object and map files.
>>>>>>> Account for these changes.
>>>>>>
>>>>>> At least briefly mentioning what exactly the differences are would be
>>>>>> quite nice, imo.
>>>>>>
>>>>>
>>>>> What about.
>>>>>
>>>>> Object have 3 additional sections which must be handled by the linker script.
>>>>
>>>> I expect these sections are there in both cases. The difference, I assume,
>>>> is that for the GNU linker they don't need mentioning in the linker script.
>>>> Maybe that's what you mean to say, but to me at least the sentence can also
>>>> be interpreted differently.
>>>
>>> Why do you expect such sections? They are used for dynamic symbols in
>>> shared objects, we don't use shared objects here. Normal object
>>> symbols are not handled by these sections. GNU compiler+linker (we
>>> link multiple objects together) do not generate these sections. So the
>>> comment looks correct to me.
>>
>> About every ELF object will have .symtab and .strtab, and many also a
>> separate .shstrtab. There's nothing "dynamic" about them. IOW - I'm
>> confused by your reply.
> 
> I checked the object files and there are no such sections using GNU toolchain.

I think I checked every *.o that's under boot/, and they all have these three
sections. Can you clarify which one(s) specifically you checked?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:49:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:49:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830821.1245909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8eX1-0002AI-5R; Wed, 06 Nov 2024 11:49:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830821.1245909; Wed, 06 Nov 2024 11:49: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 1t8eX1-0002AB-2h; Wed, 06 Nov 2024 11:49:03 +0000
Received: by outflank-mailman (input) for mailman id 830821;
 Wed, 06 Nov 2024 11:49: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8eX0-0002A4-2I
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:49:02 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1aadaa56-9c35-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 12:48:56 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5c95a962c2bso8855793a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:48:56 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17f4b94sm267147866b.135.2024.11.06.03.48.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 03:48: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: 1aadaa56-9c35-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzEiLCJoZWxvIjoibWFpbC1lZDEteDUzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFhYWRhYTU2LTljMzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODkzNzM2Ljg0MjA3NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730893736; x=1731498536; 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=Be4l1kbOU1g7rTX3Wo15h3a/VZF2+LJyVfyfJyAFst8=;
        b=UK9s1L8WkBDamypEcTODvN3ZmiYnw365PQglbAeVNauFaopPY7+q4RnZbYNbJGPj9t
         n2sGyIO3wDjJhTtNd9cDTi59GSXUDAOQJOi5DcMU7HmNL7q6xxrMvTx7H2VRqpp7Av61
         eQ8kFeSUrtd5dLI7kSCHFS0ZziOv7RJZac2DM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730893736; x=1731498536;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Be4l1kbOU1g7rTX3Wo15h3a/VZF2+LJyVfyfJyAFst8=;
        b=ny9c8ykEA0GqP/IimTAewC4hzAGMdut8/2cJK/0MRQEiNvaNezuuVa8phqSrNK7Jgr
         EN+wQtN5jKXKIWNo+PrcDdmWhUXra93cQra8RDCPLmxlWxNKhBv5MqmXdFtflMcrrI6E
         vGZAoVuNh5JUNle/GHYGPEiKsZl122tkzGr6WYEnq9X7f2foCU1tE2/XERQLxhCNJyzr
         PYoEhEYZdatvudu4L9BEIHXSaPNl5PhaRE5U8GKJz8R4laWJmhrqKQhhEdlTgWm/+2ho
         3OPCpMU4yU+4LmoUSTvNBoE7vM7vKkEQl/1V2ZoqI6pbPK6ro2nPFySPFyn3N6Rs6jaF
         Dy2Q==
X-Forwarded-Encrypted: i=1; AJvYcCXWkk0AI1PaZ5ef4xx/xJhE9t1gVG5AEqFhx4EoCe8GU/d51IqGmPH56cCZmT4QScypQNI5ws3+PCU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwO3xFNUSVuwkwB73tgkCkekpue9k2zDrpG+d7+v5P2Hspo4wwg
	yo444+pyPbEHfJASVPSu0MC8ejoxOunzPVxOidR+1A7sQzIeQMiZn2LAtMk5DiM=
X-Google-Smtp-Source: AGHT+IFjoVDD8J9GN4LwbhYhp3oQZKS39dZC+NcvAwJr5Pj51NwIStCp/oUc1Mq+q0rD2hQnno2Nmw==
X-Received: by 2002:a17:907:7208:b0:a9e:2e72:f8f4 with SMTP id a640c23a62f3a-a9e5089d50cmr2056466466b.1.1730893736171;
        Wed, 06 Nov 2024 03:48:56 -0800 (PST)
Message-ID: <63dcd57f-e692-4fc1-952c-f323d8f0fde9@citrix.com>
Date: Wed, 6 Nov 2024 11:48:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] x86/boot: Fix intermediate file names to generate
 32 bit code
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
 <20241106114150.1432512-2-frediano.ziglio@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241106114150.1432512-2-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 11:41 am, Frediano Ziglio wrote:
> The "base" and "offset" definition were inverted, "base" file
> should be the files without offsets applied while "offset" should
> have the offsets applied.
> Also update an old usage of "final" to "apply offset" to make
> more clear and consistent (in former commit messages the "final"
> term was used instead of "offset").
>
> Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
>

We don't usually have blank lines between Fixes and other tags.Â  Can fix
on commit.

> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> --

Note, this wants to be 3 dashes not 2, like git automatically inserts ...


> Anthony was right, it was the opposite
> ---

... here.Â  (Various of the automated tools don't do the right thing
otherwise).

>  xen/arch/x86/boot/Makefile      | 7 ++++---
>  xen/arch/x86/boot/build32.lds.S | 2 +-
>  2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
> index e102bd8c70..777b4befeb 100644
> --- a/xen/arch/x86/boot/Makefile
> +++ b/xen/arch/x86/boot/Makefile
> @@ -44,7 +44,8 @@ text_gap := 0x010200
>  text_diff := 0x408020
>  
>  $(obj)/build32.base.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff)
> -$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) -DFINAL
> +$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) \
> +                                       -DAPPLY_OFFSET

I'd prefer to have this on a single line than re-flowed like this.Â  We
have various exceptions to the default width, and Makefiles are no
exception either.

Also happy to fix on commit.

Overall, Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 11:58:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 11:58:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830832.1245919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8egG-00052S-Vw; Wed, 06 Nov 2024 11:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830832.1245919; Wed, 06 Nov 2024 11:58: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 1t8egG-00052L-T6; Wed, 06 Nov 2024 11:58:36 +0000
Received: by outflank-mailman (input) for mailman id 830832;
 Wed, 06 Nov 2024 11:58: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8egF-00052F-H7
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 11:58:35 +0000
Received: from mail-oo1-xc29.google.com (mail-oo1-xc29.google.com
 [2607:f8b0:4864:20::c29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 715578a0-9c36-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 12:58:32 +0100 (CET)
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-5eb70a779baso2796474eaf.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 03:58: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: 715578a0-9c36-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMjkiLCJoZWxvIjoibWFpbC1vbzEteGMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcxNTU3OGEwLTljMzYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk0MzEyLjQxMjMzLCJzZW5kZXIiOiJmcmVkaWFuby56aWdsaW9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730894311; x=1731499111; 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=AImfJ9vw+EpHoODJ/X7mQ+EHHBfmUsTZk3zCFVQxZjc=;
        b=l3+Hx1FLw1SHhpRWl/ptWKiof+7FMBufIFTQoQPpPYJmfyNa/lsYUpbff+uTxeNFWl
         yyhD7xDg05mBKfRnFu6u3soVIrnYGSQpf2/9JSJaK79/yMdFAuM7tsnO+a1g5giUaDWa
         9poY6D45J2+9gNYWYeadhMCWEPK2nkyl8lbEw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730894311; x=1731499111;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AImfJ9vw+EpHoODJ/X7mQ+EHHBfmUsTZk3zCFVQxZjc=;
        b=nhZNPgdjE2YxX4MEX9kE9bQ7oZFk6YrD0bFA8meb866vM4WX6E7PsJE+M3Epp1s83I
         K0BmsnUc+sZtkiKOTqMSU0ul6Ekdgyhew+7NVXbAXXq1aky03kYQVAW7f5iRH5lesn8f
         0zGHcGqClwjONUF0wOKsNxwjMtfRrNR+RVqiU14nOT24SxAIQYSKaL1tGbWwzzb12OA3
         2VsCe+aFJ0uUSbJ2UpufdmS8/EuOCV1e9OIcP8xsrwdgpnK5oroNsE/GN1cV/nKZxQj7
         q3ekdeWGYOQd9Nkuw4LlgFks85qO9F1DoE0sCYnUwktIRKi2zcTXdoL0+7nJVCfV8JzM
         vVwA==
X-Forwarded-Encrypted: i=1; AJvYcCUMu9m++kYO/jyOkgym+4EvXusm1H+97B1Z/MxckiyJGkUVkAZyWZrlsmmZuTVQCMKKM8ZH/dUtNLA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFVPD0d1rzi7KykG6btZktLrHGgSjWD4dt9x/QElnhjLtf/QmW
	TsWBrwgDtEiKtTxFphQE/E3PL2OU0hKhF0m49xxwimP2/CTrBiPTiuySYWA4j3/WU6W68LLzB5p
	gcNQQ3WH1dg6tN/aFBbCE6W25pCzuZcuCjhpgTg==
X-Google-Smtp-Source: AGHT+IEbIMvPNBlo02cPSSvXnTKssW9Y+JabkjAAzMfh6S7zY/P4yryBVoIvsWv0iyySEGKmiBfQPGOJa3f83U1LGYg=
X-Received: by 2002:a4a:a547:0:b0:5ec:c22c:72db with SMTP id
 006d021491bc7-5ecc22c749bmr11350015eaf.2.1730894310998; Wed, 06 Nov 2024
 03:58:30 -0800 (PST)
MIME-Version: 1.0
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com> <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
 <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com> <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@mail.gmail.com>
 <80296824-760a-48c4-9dce-4875fca0ed31@suse.com> <CACHz=ZgY_O7siQUQZjxGe=gfiB-C9jw1UQqwK9ffuHUUQmRgiQ@mail.gmail.com>
 <cc7802cc-8591-4356-bf7e-3daa912c751c@suse.com>
In-Reply-To: <cc7802cc-8591-4356-bf7e-3daa912c751c@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 6 Nov 2024 11:58:19 +0000
Message-ID: <CACHz=ZjZVPSueWjxfWBjbjg8_UhZc7hMwM49BFT0bipqeBOsSA@mail.gmail.com>
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
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>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 6, 2024 at 11:45=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 06.11.2024 12:34, Frediano Ziglio wrote:
> > On Wed, Nov 6, 2024 at 10:59=E2=80=AFAM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> On 06.11.2024 07:56, Frediano Ziglio wrote:
> >>> On Tue, Nov 5, 2024 at 5:06=E2=80=AFPM Jan Beulich <jbeulich@suse.com=
> wrote:
> >>>>
> >>>> On 05.11.2024 17:35, Frediano Ziglio wrote:
> >>>>> On Tue, Nov 5, 2024 at 3:32=E2=80=AFPM Jan Beulich <jbeulich@suse.c=
om> wrote:
> >>>>>>
> >>>>>> On 05.11.2024 15:55, Frediano Ziglio wrote:
> >>>>>>> This toolchain generates different object and map files.
> >>>>>>> Account for these changes.
> >>>>>>
> >>>>>> At least briefly mentioning what exactly the differences are would=
 be
> >>>>>> quite nice, imo.
> >>>>>>
> >>>>>
> >>>>> What about.
> >>>>>
> >>>>> Object have 3 additional sections which must be handled by the link=
er script.
> >>>>
> >>>> I expect these sections are there in both cases. The difference, I a=
ssume,
> >>>> is that for the GNU linker they don't need mentioning in the linker =
script.
> >>>> Maybe that's what you mean to say, but to me at least the sentence c=
an also
> >>>> be interpreted differently.
> >>>
> >>> Why do you expect such sections? They are used for dynamic symbols in
> >>> shared objects, we don't use shared objects here. Normal object
> >>> symbols are not handled by these sections. GNU compiler+linker (we
> >>> link multiple objects together) do not generate these sections. So th=
e
> >>> comment looks correct to me.
> >>
> >> About every ELF object will have .symtab and .strtab, and many also a
> >> separate .shstrtab. There's nothing "dynamic" about them. IOW - I'm
> >> confused by your reply.
> >
> > I checked the object files and there are no such sections using GNU too=
lchain.
>
> I think I checked every *.o that's under boot/, and they all have these t=
hree
> sections. Can you clarify which one(s) specifically you checked?
>
> Jan

$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 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.

$ ld --version
GNU ld (GNU Binutils for Ubuntu) 2.38
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public Licence version 3 or (at your option) a later versio=
n.
This program has absolutely no warranty.

$ find xen/normal/ xen/pvh/ -name \*.o | xargs -ifilename sh -c
'objdump -x filename' | grep -e \\.
shstrtab -e \\.strtab -e \\.symtab

(xen/normal and xen/pvh are the build directory, with different configurati=
ons)

I'm saying that's possibly why the linker scripts didn't need to
specify these sections.

Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:06:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:06:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830845.1245928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8enN-0006fm-RK; Wed, 06 Nov 2024 12:05:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830845.1245928; Wed, 06 Nov 2024 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 1t8enN-0006ff-Oj; Wed, 06 Nov 2024 12:05:57 +0000
Received: by outflank-mailman (input) for mailman id 830845;
 Wed, 06 Nov 2024 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=bDCL=SB=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8enL-0006fS-Tw
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:05:56 +0000
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com
 [2607:f8b0:4864:20::735])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7795129b-9c37-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:05:52 +0100 (CET)
Received: by mail-qk1-x735.google.com with SMTP id
 af79cd13be357-7b14554468fso475115285a.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:05:52 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7b2f39fadcbsm624619385a.39.2024.11.06.04.05.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 04: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: 7795129b-9c37-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjo3MzUiLCJoZWxvIjoibWFpbC1xazEteDczNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc3OTUxMjliLTljMzctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk0NzUyLjI1MzI2Miwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730894751; x=1731499551; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ShCiVDp4xDH6xbz/t3F6iZ/jlXLHnluVEd8482zdrhM=;
        b=EYin+zFYcMcD49eaVWSteZ/E/wEQym2wx94CuIosmSlqm2G6Oa1ZH+PJcFju8YkFT+
         oWzfnjtNV+zl7TtW4v7gRxQB1jEamBhIR9qA50j/xJc+4Q1BVDqQSgwqG3fRyPGb2aTM
         TzMJPlQeS+A/izn2h55OVhmSVW40cIIDyYsyc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730894751; x=1731499551;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ShCiVDp4xDH6xbz/t3F6iZ/jlXLHnluVEd8482zdrhM=;
        b=mnzX5Af9YvHFnv7X6+GXF2Z9m5HK8XEe6ZT5hkM4HqQTZcZhMnh6/MXLgIM4UvMF98
         okmg/wPalX0SMo7TrLhYlSi6SO7fQTh80q4YNgTYwaJYKZBUfP4Cw/qakfLXkrE6sZzD
         hfat3mpZALAeAYbgw9WsTqOYTbkOtoojCW38TgNFwoZssxKgwG810jidXyCH2nHiolR+
         3ixL/vNyILMehsuHN0hR/sa9C/SIsgz/tV+fo3N/ZYOh7xvbVEZcSX/82er6/zah83Kb
         ODY+5YIKcrTUQShHGdH8fPQMJRJ7F/1y2dN9GosVWdhCiMCDDz5LAJKRe4i1k9T7mxSs
         +PTA==
X-Forwarded-Encrypted: i=1; AJvYcCUUiI+nuZagQVvgACrSIsw+T+eRgFddHrUy26e5QAs35pT9hkq/zuTh9J8JMacD+CbQi3Ef57WhQr0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0Ou04tHQOXfse9vZhvSMoMCthKWp4BkbhB7TIgf5/jpFlCPzE
	uy29fxnTFhFwfB1X4fNfHbDRZphKOXwk0XF2JBk7gswHdBUEGbFDGu/qPE7cPLM=
X-Google-Smtp-Source: AGHT+IGc7Elr6D4+p67Zk8gdtlzP0LjF7lzb/Vl2uvH5BVeICMlKekwgrfve001kAMuIdhvKyNEqYQ==
X-Received: by 2002:a05:620a:2944:b0:7af:cdd7:d6e5 with SMTP id af79cd13be357-7b193ed6f4dmr4890649485a.5.1730894750856;
        Wed, 06 Nov 2024 04:05:50 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 06 Nov 2024 12:05:48 +0000
Message-Id: <D5F2ZA4NEECE.553IV6IZ4G4V@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich"
 <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini"
 <sstabellini@kernel.org>
Subject: Re: [XEN RFC PATCH v4 5/5] xen/public: Introduce PV-IOMMU hypercall
 interface
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <cover.1730718102.git.teddy.astie@vates.tech>
 <78b44f9f800b8f786835ecebdaf2d6ce7366f3da.1730718102.git.teddy.astie@vates.tech>
In-Reply-To: <78b44f9f800b8f786835ecebdaf2d6ce7366f3da.1730718102.git.teddy.astie@vates.tech>

Hi,

A bunch of mostly ABI-related minor comments. Mostly about adding implicit
padding. Still reading through the logic, but this should be helpful as is =
so
I'm sending it early.

On Mon Nov 4, 2024 at 2:28 PM GMT, Teddy Astie wrote:
> Introduce a new pv interface to manage the underlying IOMMU and manage co=
ntexts
> and devices. This interface allows creation of new contexts from Dom0 and
> addition of IOMMU mappings using guest PoV.
>
> This interface doesn't allow creation of mapping to other domains.
>
> Signed-off-by Teddy Astie <teddy.astie@vates.tech>
> ---
> Changed in V2:
> * formatting
>
> Changed in V3:
> * prevent IOMMU operations on dying contexts
>
> Changed in V4:
> * redesigned hypercall interface [1]
> * added remote_cmd and init logic
>
> [1] https://lore.kernel.org/all/fdfa32c9-c177-4d05-891a-138f9b663f19@vate=
s.tech/
> ---
>  xen/common/Makefile           |   1 +
>  xen/common/pv-iommu.c         | 539 ++++++++++++++++++++++++++++++++++
>  xen/include/hypercall-defs.c  |   6 +
>  xen/include/public/pv-iommu.h | 341 +++++++++++++++++++++
>  xen/include/public/xen.h      |   1 +
>  5 files changed, 888 insertions(+)
>  create mode 100644 xen/common/pv-iommu.c
>  create mode 100644 xen/include/public/pv-iommu.h
>

[snip]

> diff --git a/xen/include/public/pv-iommu.h b/xen/include/public/pv-iommu.=
h
> new file mode 100644
> index 0000000000..c14b8435c9
> --- /dev/null
> +++ b/xen/include/public/pv-iommu.h
> @@ -0,0 +1,341 @@
> +/* SPDX-License-Identifier: MIT */
> +/**
> + * pv-iommu.h
> + *
> + * Paravirtualized IOMMU driver interface.
> + *
> + * Copyright (c) 2024 Teddy Astie <teddy.astie@vates.tech>
> + */
> +
> +#ifndef __XEN_PUBLIC_PV_IOMMU_H__
> +#define __XEN_PUBLIC_PV_IOMMU_H__
> +
> +#include "xen.h"
> +#include "physdev.h"
> +
> +#ifndef uint64_aligned_t
> +#define uint64_aligned_t uint64_t
> +#endif

Why did you need this? This header ought to depend on whatever implements
uint64_aligned_t, which is most definitely not a simple uint64_t on 32bit
machines.

> +
> +#define IOMMU_DEFAULT_CONTEXT (0)
> +
> +enum {

nit: If you give the enum a fully qualified name (e.g: iommucmd), then you =
can
add a comment on the field in the struct saying "See iommucmd" and folks wi=
ll
be able to follow the tag back here via cscope/ctags/global/whatever.

> +    /* Basic cmd */
> +    IOMMU_noop =3D 0,
> +    IOMMU_query_capabilities,

nit: I think we want "=3D N" for every cmd. Otherwise it's very annoying to=
 find
out which variant has which number as the number of variants increases. Als=
o
makes it (a bit) more annoying to deprecate numbers.

> +    IOMMU_init,
> +    IOMMU_alloc_context,
> +    IOMMU_free_context,
> +    IOMMU_reattach_device,
> +    IOMMU_map_pages,
> +    IOMMU_unmap_pages,
> +    IOMMU_remote_cmd,
> +
> +    /* Extended cmd */
> +    IOMMU_alloc_nested,     /* if IOMMUCAP_nested */
> +    IOMMU_flush_nested,     /* if IOMMUCAP_nested */
> +    IOMMU_attach_pasid,     /* if IOMMUCAP_pasid */
> +    IOMMU_detach_pasid,     /* if IOMMUCAP_pasid */
> +};
> +
> +/**
> + * Indicate if the default context is a identity mapping to domain memor=
y.
> + * If not defined, default context blocks all DMA to domain memory.
> + */

nit: s/is a/is an/. Though seeing how it's a bit in a bitmap it might make =
more
sense to rephrase it as "if set: X; if cleared: Y". The bit is always defin=
ed,
it's its state that signals a boolean property.

> +#define IOMMUCAP_default_identity  (1 << 0)

This one, and all others want a U suffix (i.e: 1U << 0). Otherwise things l=
ike
1 << 31 (if we ever get to that) will misbehave.

> +
> +/**
> + * IOMMU_MAP_cache support.
> + */
> +#define IOMMUCAP_cache     (1 << 1)
> +
> +/**
> + * Support for IOMMU_alloc_nested.
> + */
> +#define IOMMUCAP_nested    (1 << 2)
> +
> +/**
> + * Support for IOMMU_attach_pasid and IOMMU_detach_pasid and pasid param=
eter in
> + * reattach_context.
> + */
> +#define IOMMUCAP_pasid     (1 << 3)
> +
> +/**
> + * Support for IOMMU_ALLOC_identity
> + */
> +#define IOMMUCAP_identity (1 << 4)
> +
> +/**
> + * IOMMU_query_capabilities
> + * Query PV-IOMMU capabilities for this domain.
> + */
> +struct pv_iommu_capabilities {
> +    /*
> +     * OUT: Maximum device address (iova) that the guest can use for map=
pings.
> +     */
> +    uint64_aligned_t max_iova_addr;
> +
> +    /* OUT: IOMMU capabilities flags */
> +    uint32_t cap_flags;
> +
> +    /* OUT: Mask of all supported page sizes. */
> +    uint32_t pgsize_mask;
> +
> +    /* OUT: Maximum pasid (if IOMMUCAP_pasid) */
> +    uint32_t max_pasid;
> +
> +    /* OUT: Maximum number of IOMMU context this domain can use. */
> +    uint16_t max_ctx_no;

Missing u16 padding at the tail

> +};
> +typedef struct pv_iommu_capabilities pv_iommu_capabilities_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_capabilities_t);
> +
> +/**
> + * IOMMU_init
> + * Initialize PV-IOMMU for this domain.
> + *
> + * Fails with -EACCESS if PV-IOMMU is already initialized.
> + */
> +struct pv_iommu_init {
> +    /* IN: Maximum number of IOMMU context this domain can use. */
> +    uint32_t max_ctx_no;
> +
> +    /* IN: Arena size in pages (in power of two) */
> +    uint32_t arena_order;
> +};
> +typedef struct pv_iommu_init pv_iommu_init_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_init_t);
> +
> +/**
> + * Create a 1:1 identity mapped context to domain memory
> + * (needs IOMMUCAP_identity).
> + */
> +#define IOMMU_ALLOC_identity (1 << 0)

Same consideration as above. Wants to be 1U.

> +
> +/**
> + * IOMMU_alloc_context
> + * Allocate an IOMMU context.
> + * Fails with -ENOSPC if no context number is available.
> + */
> +struct pv_iommu_alloc {
> +    /* OUT: allocated IOMMU context number */
> +    uint16_t ctx_no;

Missing u16 padding

> +
> +    /* IN: allocation flags */
> +    uint32_t alloc_flags;
> +};
> +typedef struct pv_iommu_alloc pv_iommu_alloc_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_t);
> +
> +/**
> + * Move all devices to default context before freeing the context.
> + */
> +#define IOMMU_FREE_reattach_default (1 << 0)
> +
> +/**
> + * IOMMU_free_context
> + * Destroy a IOMMU context.
> + *
> + * If IOMMU_FREE_reattach_default is specified, move all context devices=
 to
> + * default context before destroying this context.
> + *
> + * If there are devices in the context and IOMMU_FREE_reattach_default i=
s not
> + * specified, fail with -EBUSY.
> + *
> + * The default context can't be destroyed.
> + */
> +struct pv_iommu_free {
> +    /* IN: IOMMU context number to free */
> +    uint16_t ctx_no;

missing u16 padding

> +
> +    /* IN: Free operation specific flags */
> +    uint32_t free_flags;
> +};
> +typedef struct pv_iommu_free pv_iommu_free_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_free_t);
> +
> +/* Device has read access */
> +#define IOMMU_MAP_readable (1 << 0)
> +
> +/* Device has write access */
> +#define IOMMU_MAP_writeable (1 << 1)
> +
> +/* Enforce DMA coherency */
> +#define IOMMU_MAP_cache (1 << 2)
> +
> +/**
> + * IOMMU_map_pages
> + * Map pages on a IOMMU context.
> + *
> + * pgsize must be supported by pgsize_mask.
> + * Fails with -EINVAL if mapping on top of another mapping.
> + * Report actually mapped page count in mapped field (regardless of fail=
ure).
> + */
> +struct pv_iommu_map_pages {
> +    /* IN: IOMMU context number */
> +    uint16_t ctx_no;

missing 6 octets worth of padding.

> +
> +    /* IN: Guest frame number */
> +    uint64_aligned_t gfn;
> +
> +    /* IN: Device frame number */
> +    uint64_aligned_t dfn;
> +
> +    /* IN: Map flags */
> +    uint32_t map_flags;
> +
> +    /* IN: Size of pages to map */
> +    uint32_t pgsize;
> +
> +    /* IN: Number of pages to map */
> +    uint32_t nr_pages;
> +
> +    /* OUT: Number of pages actually mapped */
> +    uint32_t mapped;
> +};
> +typedef struct pv_iommu_map_pages pv_iommu_map_pages_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_map_pages_t);
> +
> +/**
> + * IOMMU_unmap_pages
> + * Unmap pages on a IOMMU context.
> + *
> + * pgsize must be supported by pgsize_mask.
> + * Report actually unmapped page count in mapped field (regardless of fa=
ilure).
> + * Fails with -ENOENT when attempting to unmap a page without any mappin=
g
> + */
> +struct pv_iommu_unmap_pages {
> +    /* IN: IOMMU context number */
> +    uint16_t ctx_no;

missing 6 octets worth of padding. There's little reason for it to be the f=
irst
member though, afaics. Which means it could move to the end and use part of=
 the
existing padding there instead...

> +
> +    /* IN: Device frame number */
> +    uint64_aligned_t dfn;
> +
> +    /* IN: Size of pages to unmap */
> +    uint32_t pgsize;
> +
> +    /* IN: Number of pages to unmap */
> +    uint32_t nr_pages;
> +
> +    /* OUT: Number of pages actually unmapped */
> +    uint32_t unmapped;

... (which is a u32). We'd go from 10 octets worth of padding to a single u=
16.

> +};
> +typedef struct pv_iommu_unmap_pages pv_iommu_unmap_pages_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_unmap_pages_t);
> +
> +/**
> + * IOMMU_reattach_device
> + * Reattach a device to another IOMMU context.
> + * Fails with -ENODEV if no such device exist.
> + */
> +struct pv_iommu_reattach_device {
> +    /* IN: Target IOMMU context number */
> +    uint16_t ctx_no;
> +
> +    /* IN: Physical device to move */
> +    struct physdev_pci_device dev;

Missing u16 padding , I think?

> +
> +    /* IN: PASID of the device (if IOMMUCAP_pasid) */
> +    uint32_t pasid;
> +};
> +typedef struct pv_iommu_reattach_device pv_iommu_reattach_device_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_reattach_device_t);
> +
> +
> +/**
> + * IOMMU_remote_cmd
> + * Do a PV-IOMMU operation on another domain.
> + * Current domain needs to be allowed to act on the target domain, other=
wise
> + * fails with -EPERM.
> + */
> +struct pv_iommu_remote_cmd {
> +    /* IN: Target domain to do the subop on */
> +    uint16_t domid;
> +
> +    /* IN: Command to do on target domain. */
> +    uint16_t subop;

missing u32 padding.

> +
> +    /* INOUT: Command argument from current domain memory */
> +    XEN_GUEST_HANDLE(void) arg;
> +};
> +typedef struct pv_iommu_remote_cmd pv_iommu_remote_cmd_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_remote_cmd_t);
> +
> +/**
> + * IOMMU_alloc_nested
> + * Create a nested IOMMU context (needs IOMMUCAP_nested).
> + *
> + * This context uses a platform-specific page table from domain address =
space
> + * specified in pgtable_gfn and use it for nested translations.
> + *
> + * Explicit flushes needs to be submited with IOMMU_flush_nested on
> + * modification of the nested pagetable to ensure coherency between IOTL=
B and
> + * nested page table.
> + *
> + * This context can be destroyed using IOMMU_free_context.
> + * This context cannot be modified using map_pages, unmap_pages.
> + */
> +struct pv_iommu_alloc_nested {
> +    /* OUT: allocated IOMMU context number */
> +    uint16_t ctx_no;

missing 6 octets worth of padding.

nit: For this one and others, might be more helpful to have it at the tail =
to
allow more flexibility in how to use that padding in the future.

> +
> +    /* IN: guest frame number of the nested page table */
> +    uint64_aligned_t pgtable_gfn;
> +
> +    /* IN: nested mode flags */
> +    uint64_aligned_t nested_flags;
> +};
> +typedef struct pv_iommu_alloc_nested pv_iommu_alloc_nested_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_nested_t);
> +
> +/**
> + * IOMMU_flush_nested (needs IOMMUCAP_nested)
> + * Flush the IOTLB for nested translation.
> + */
> +struct pv_iommu_flush_nested {
> +    /* TODO */
> +};
> +typedef struct pv_iommu_flush_nested pv_iommu_flush_nested_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_flush_nested_t);
> +
> +/**
> + * IOMMU_attach_pasid (needs IOMMUCAP_pasid)
> + * Attach a new device-with-pasid to a IOMMU context.
> + * If a matching device-with-pasid already exists (globally),
> + * fail with -EEXIST.
> + * If pasid is 0, fails with -EINVAL.
> + * If physical device doesn't exist in domain, fail with -ENOENT.
> + */
> +struct pv_iommu_attach_pasid {
> +    /* IN: IOMMU context to add the device-with-pasid in */
> +    uint16_t ctx_no;
> +
> +    /* IN: Physical device */
> +    struct physdev_pci_device dev;

This subfield is non-obviously 16bit aligned (and we can't change it becaus=
e
it's already part of the ABI). This means (I think), there's a missing u16
padding here.

> +
> +    /* IN: pasid of the device to attach */
> +    uint32_t pasid;
> +};
> +typedef struct pv_iommu_attach_pasid pv_iommu_attach_pasid_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_attach_pasid_t);
> +
> +/**
> + * IOMMU_detach_pasid (needs IOMMUCAP_pasid)
> + * detach a device-with-pasid.
> + * If the device-with-pasid doesn't exist or belong to the domain,
> + * fail with -ENOENT.
> + * If pasid is 0, fails with -EINVAL.
> + */
> +struct pv_iommu_detach_pasid {
> +    /* IN: Physical device */
> +    struct physdev_pci_device dev;
> +
> +    /* pasid of the device to detach */
> +    uint32_t pasid;
> +};
> +typedef struct pv_iommu_detach_pasid pv_iommu_detach_pasid_t;
> +DEFINE_XEN_GUEST_HANDLE(pv_iommu_detach_pasid_t);
> +
> +/* long do_iommu_op(int subop, XEN_GUEST_HANDLE_PARAM(void) arg) */
> +
> +#endif
> \ No newline at end of file
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index b47d48d0e2..28ab815ebc 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -118,6 +118,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
>  #define __HYPERVISOR_xenpmu_op            40
>  #define __HYPERVISOR_dm_op                41
>  #define __HYPERVISOR_hypfs_op             42
> +#define __HYPERVISOR_iommu_op             43
> =20
>  /* Architecture-specific hypercall definitions. */
>  #define __HYPERVISOR_arch_0               48



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:10:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:10:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830853.1245939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8erS-00008I-Bn; Wed, 06 Nov 2024 12:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830853.1245939; Wed, 06 Nov 2024 12:10: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 1t8erS-00008B-80; Wed, 06 Nov 2024 12:10:10 +0000
Received: by outflank-mailman (input) for mailman id 830853;
 Wed, 06 Nov 2024 12:10: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8erR-000082-1r
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:10:09 +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 0e231b40-9c38-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:10:04 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5cebcf96fabso6488966a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:10:04 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6ac1b38sm2638351a12.47.2024.11.06.04.10.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 04: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: 0e231b40-9c38-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBlMjMxYjQwLTljMzgtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk1MDA0LjI2NzE5Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730895004; x=1731499804; 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=5sMEMOVjbd1VoD3JYF8f3GkO6OZBBpK8UdgsHcRLSPY=;
        b=E+X1QfYOsBvUylwJnKg+ZI7xHlPfadXZPzEdZ24rAq2cC/TZ0aUInZVb0BPfiIPKKv
         4pZ5WupOdJfD518pk4EcZxn28Sn1eE/XLeCi/B0K3vV4Tl87KTsWdH9Xx/X5WxyBqDl3
         3re7JWgMlsH7ndXmC+zxoHIg9vkvLJ4Fz2Qi4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730895004; x=1731499804;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5sMEMOVjbd1VoD3JYF8f3GkO6OZBBpK8UdgsHcRLSPY=;
        b=WGWjDWOZ3kRRCK7AEpJSQbl/UOaLp+QZ0jNGqAz6JjLDU6jb5c7NXnNYhQi7F+dMki
         PGb43T8RR0mkg9rOTQilfYUTXWIieOf7hxmmZeizvdUOYSRihy7ZpN6FPioks/Ln4mB6
         y7PXYIZEqpqWagQzzqWlV+9r74oV9z9jG/Ux/l8mhh7Hwhf54Q1H0aZWVb8nS2CFaUG9
         Rj1OR4/v6EwN6xkNOvKOCUkIsZZr5m6jvWAbJ348aMNC0I7ukscoP6jXioq80RjB9n7h
         n/+z7fXslVTq2bpiiu8//DrNTFEfHdLWB+/EHMMO3vz5qXJ+w7q5XXi86GQRGM32S4U2
         nBzw==
X-Forwarded-Encrypted: i=1; AJvYcCXOrICwvlSNZQn2mCSRT4awv0eZw2oZq4Ct7UqtZgUt1IGOQTZMiVYRGPOB/zzHeQMUnX/rIVAlkT4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfD2MIAkAvcJLQWUWJqS5mFQx8uzeaiY4XEoWCi4FzToOnCD91
	aJo0E+VQC1aafOxaorWoTiK1iSRynVv7PHBUpMg4ug4rWueJZj6pQMkTsZh6BNw=
X-Google-Smtp-Source: AGHT+IEmNKBCe71WpvQTYvlekg3l5NddgdV4iBaKRVaMAF+mt/cY6/XOsQKb3E4keVWBe7/8HvuumQ==
X-Received: by 2002:a05:6402:3182:b0:5ce:d491:c0b2 with SMTP id 4fb4d7f45d1cf-5ced491c977mr6799547a12.12.1730895003487;
        Wed, 06 Nov 2024 04:10:03 -0800 (PST)
Message-ID: <d00985af-f692-4f83-9ab0-18183a4a0747@citrix.com>
Date: Wed, 6 Nov 2024 12:10:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] x86/boot: Uses nm command instead of map file to
 get symbols
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
 <20241106114150.1432512-3-frediano.ziglio@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241106114150.1432512-3-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 11:41 am, Frediano Ziglio wrote:
> Map file format is not standard making it code readind it
> not portable and potentially hard to maintain.

I think you want to include a sentence along the lines of
"combine_two_binaries.py only understands GNU LD's format, and does not
work with LLVM's LLD."

That makes it more clear why this this gets a Fixes tag.

I'd also suggest having the following sentence in separate paragraph for
clarity.

> Use nm command instead to get list of symbols; specifically
> BSD format as it does not truncate symbols names like sysv one.
>
> Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
>  xen/arch/x86/boot/Makefile        |  5 +++--
>  xen/tools/combine_two_binaries.py | 28 ++++++++++++++++++----------
>  2 files changed, 21 insertions(+), 12 deletions(-)
>
> diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
> index 777b4befeb..01100a4b72 100644
> --- a/xen/arch/x86/boot/Makefile
> +++ b/xen/arch/x86/boot/Makefile
> @@ -67,7 +67,8 @@ $(obj)/built-in-32.tmp.o: $(obj32)
>  # If possible we use --orphan-handling=error option to make sure we account
>  # for all possible sections from C code.
>  $(obj)/built-in-32.%.bin: $(obj)/build32.%.lds $(obj)/built-in-32.tmp.o
> -	$(LD32) $(orphan-handling-y) -N -T $< -Map $(@:bin=map) -o $(@:bin=o) $(filter %.o,$^)
> +	$(LD32) $(orphan-handling-y) -N -T $< -o $(@:bin=o) $(filter %.o,$^)
> +	$(NM) -p --format=bsd $(@:bin=o) > $(@:bin=nm)
>  	$(OBJCOPY) -j .text -O binary $(@:bin=o) $@
>  	rm -f $(@:bin=o)
>  
> @@ -79,7 +80,7 @@ cmd_combine = \
>                --script    $(obj)/build32.base.lds \
>                --bin1      $(obj)/built-in-32.base.bin \
>                --bin2      $(obj)/built-in-32.offset.bin \
> -              --map       $(obj)/built-in-32.base.map \
> +              --symbols   $(obj)/built-in-32.base.nm \
>                --exports   cmdline_parse_early,reloc,reloc_trampoline32 \
>                --output    $@
>  
> diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_binaries.py
> index 447c0d3bdb..db02494b28 100755
> --- a/xen/tools/combine_two_binaries.py
> +++ b/xen/tools/combine_two_binaries.py
> @@ -28,8 +28,8 @@ parser.add_argument('--text-diff', dest='text_diff',
>                      help='Difference between code section start')
>  parser.add_argument('--output', dest='output',
>                      help='Output file')
> -parser.add_argument('--map', dest='mapfile',
> -                    help='Map file to read for symbols to export')
> +parser.add_argument('--symbols', dest='symbols_file',
> +                    help='Nm command output to read for symbols to export')

We call the output of $(NM) uniformly .map elsewhere in Xen, even the
top level System.map

I'd suggest retaining the .map extension, and --map argument, and you
can probably just say help='Map file (NM) to ...' for the help text to
make it explicit.

That in turn reduces the churn ...


>  parser.add_argument('--exports', dest='exports',
>                      help='Symbols to export')
>  parser.add_argument('--section-header', dest='section_header',
> @@ -65,15 +65,23 @@ exports = []
>  if args.exports is not None:
>      exports = dict([(name, None) for name in args.exports.split(',')])
>  
> -# Parse mapfile, look for ther symbols we want to export.
> -if args.mapfile is not None:
> -    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
> -    for line in open(args.mapfile):
> -        m = symbol_re.match(line)
> -        if not m or m.group(2) not in exports:
> +# Parse symbols file, look for symbols we want to export.
> +if args.symbols_file is not None:

... here.

> +    dummy_start = -1
> +    for line in open(args.symbols_file):
> +        v = line.split()
> +        if len(v) != 3 or v[1].upper() != 'T':
>              continue

A slightly nicer way of doing this is:

Â Â Â  parts = line.split()

Â Â Â  if len(parts) != 3:
Â Â Â  Â Â Â  continue

Â Â Â  addr, type, sym = parts

which means you have more legible code blow.


> -        addr = int(m.group(1), 16)
> -        exports[m.group(2)] = addr
> +        addr = int(v[0], 16)
> +        if v[2] == 'dummy_start':
> +            dummy_start = addr
> +            continue
> +        if v[2] not in exports:
> +            continue
> +        exports[v[2]] = addr
> +    if dummy_start != 0:
> +        raise Exception("dummy_start symbol expected to be present and 0")
> +
>  for (name, addr) in exports.items():
>      if addr is None:
>          raise Exception("Required export symbols %s not found" % name)

Something to consider.Â  Instead of special casing dummy_start in several
ways, you could, insert it into exports to begin with, then check

Â Â Â  if exports["dummy_start"] != 0:
Â Â Â  Â Â Â  raise Exception("dummy_start symbol expected to be present and 0")
Â Â Â  del exports["dummy_start"]

after which you're back to just the real --exports in exports[].


All of this said, it definitely looks like a much more robust solution
to the problem.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:23:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830863.1245948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8f44-0002nq-Gc; Wed, 06 Nov 2024 12:23:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830863.1245948; Wed, 06 Nov 2024 12: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 1t8f44-0002nj-E1; Wed, 06 Nov 2024 12:23:12 +0000
Received: by outflank-mailman (input) for mailman id 830863;
 Wed, 06 Nov 2024 12: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8f43-0002nc-7V
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:23:11 +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 df70d5e3-9c39-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:23:04 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9ec86a67feso112928366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:23:04 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17f9765sm270940266b.168.2024.11.06.04.23.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 04: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: df70d5e3-9c39-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRmNzBkNWUzLTljMzktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk1Nzg0LjkyNjAxNiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730895784; x=1731500584; 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=eDS24SRiUsnGsNOFS5ATl5qhFwt8KC2C8cK4+9PJLu4=;
        b=U7JVBoitL54PEhVHuAwDER2RoCyxwX6xm2HDiwbt/aCq7PUZXwqKBHsM82npUbBtEL
         ZKFZb/GDc963nj8tHxmCeKLswpya7mJW5V1u2Bxg89aU+JBv4l/ehKpfzw7mTT9BSkXH
         Sje7kjdfaXR2i9O1vO98MlD4ahv/844dRa86A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730895784; x=1731500584;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eDS24SRiUsnGsNOFS5ATl5qhFwt8KC2C8cK4+9PJLu4=;
        b=oXL2mOL8B6VjdAq3pJZjID7K4dB62wGTUjIGG4W//7BoI2oMyL0m/CoQaED4a9ajTE
         cRYEhA2uftDVzDMV37zQX/dhmLm8za+O0DHjoujBSludUIL41iJ9bDs2l5TIKVVS8+k6
         NY5raQEmRaoiO4EpoNSv0PDTc8KElQRtLGEXmWGcd5AUfY8AHlkBxAhi7KI3n0xtZXJ+
         z9/uN3egFM2jtiiWuNvtNhDTVIfAncALDgI73EpZ1GqToCprhXzklDJsyxK9IV6cXD1U
         E1fbApbOJMOhBsHNDorutWfbZ1Yb5yBXQKHxd1lb0YJESipjMKCuuYLZs645Wz2m4Nzu
         vyuA==
X-Forwarded-Encrypted: i=1; AJvYcCU9zId0XT+LHfqWx3ZkKLDkOcRujWJ6HRJ2O9OH62NwSUq3p3lpSpfFl072mn+apmPrUUWN3I600p8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDdsKNDK71tHAzlbq7NAEqZNCg/VUCexMfqCX/4PRXrHA+RzDb
	XR7Vsx4toWs7TL8YELFe47gU4/oomKW6A7zX60ZlPTdgGpGVrWHnWSfkB6+GtQg=
X-Google-Smtp-Source: AGHT+IE6lVWhsCvgsdrtDXMb8bYrOUsSlVD3sJnoccB3AObGVJ7Ezn3FJvsDX7EX5554xuwREJAOww==
X-Received: by 2002:a17:907:86a2:b0:a9a:134:9887 with SMTP id a640c23a62f3a-a9de6167ad2mr3641416266b.41.1730895784398;
        Wed, 06 Nov 2024 04:23:04 -0800 (PST)
Message-ID: <8f87849c-916f-4532-a150-3205795c9e43@citrix.com>
Date: Wed, 6 Nov 2024 12:23:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] x86/boot: Fix build with LLVM toolchain
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
 <20241106114150.1432512-4-frediano.ziglio@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241106114150.1432512-4-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 11:41 am, Frediano Ziglio wrote:
> This toolchain generates different object files.
> Object have 3 additional sections which must be handled by the
> linker script.
> Added sections need to have special type so we put them in
> separate sections as linker will copy type from input sections.
>
> Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

The patch itself is fine, but the commit message is quite stale now
you've split the fix into 3 bits.Â  I'd recommend:

---%<---
x86/boot: Explicitly list .{sym,shstr,str}tab in build32.lds.S

Currently, building with LLVM's LLD fails:

Â Â Â  ld -melf_i386_fbsdÂ  --orphan-handling=error -N -T ...
Â Â Â  ld: error: <internal>:(.symtab) is being placed in '.symtab'
Â Â Â  ld: error: <internal>:(.shstrtab) is being placed in '.shstrtab'
Â Â Â  ld: error: <internal>:(.strtab) is being placed in '.strtab'
Â Â Â  gmake[11]: *** [arch/x86/boot/Makefile:69:
arch/x86/boot/built-in-32.base.bin] Error 1

This is a consequence of --orphan-handling, and it appears that Binutils
doesn't diagnose some orphaned sections even explicitly asked to do so.

List the sections explicitly.

Fixes ...
---%<---

Happy to fix on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:27:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:27:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830870.1245959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8f7o-0003Mr-01; Wed, 06 Nov 2024 12:27:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830870.1245959; Wed, 06 Nov 2024 12:27: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 1t8f7n-0003Mk-TF; Wed, 06 Nov 2024 12:27:03 +0000
Received: by outflank-mailman (input) for mailman id 830870;
 Wed, 06 Nov 2024 12:27: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=lQG8=SB=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1t8f7m-0003Mc-D4
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:27:02 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on20620.outbound.protection.outlook.com
 [2a01:111:f403:2608::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b0dc656-9c3a-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:26:59 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9787.eurprd03.prod.outlook.com
 (2603:10a6:102:2e0::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 12:26:55 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%6]) with mapi id 15.20.8114.028; Wed, 6 Nov 2024
 12: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>
X-Inumbo-ID: 6b0dc656-9c3a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwODo6NjIwIiwiaGVsbyI6IkVVUjAyLURCNS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZiMGRjNjU2LTljM2EtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk2MDE5LjUwMjE0Mywic2VuZGVyIjoibXlreXRhX3BvdHVyYWlAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CgWdCKOZUYQeciKGMhAP9sh043Y4sUzzXD2sUTUDcjJN01kS/K8R5xrC2WsbMktWSGwnveO3sIu10NHPi/T/z3I0dwQ6F4VfwQajSd91DqUuzGQuoX1u2wmqJoT72kNRmhxGCqW0LBfOXGqanvSU+mijBZGcKaaVJ/e4UnCADaD1KQGPzl+kH2IJCUQ3zNhRO1LEOZoPv2nOd3vB5zaX/aIpX3gyWhNwkxLULtvZgbAS0hOC0BsSWJuTl5/TVyXKaPiuM7Le0+bJ8QrAIFPDIqPw+fS4xB0ptjwf3u3p6N99fKBz6IL2BNDZCI+K0DFiUNFiu+JO/SfRNntSEaUp3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uqGMfKXQm0rTh++zwIjh7vpRxxaU+KD1aOJ3YCb+cc8=;
 b=BmO8R9W0DWPLR/uWwXDIKG6KlpQnj75T7HDUWIksiRWyH/W0WX26xtUkDAdfn9IdwxF9vJAKjOi1g0EGHQtku8ZQ/jcEKv7WbHjNzgmi82GkkwyCFOYhFH4WFqwTk7BHlgYyo6MQHoVXeZvIT3pZgIqncar+eBjzkgV8spgsH4t0vuSLULMtlN//5AMpTP789QoqhJxEGdhU+/afQvqkZHhyiTh+JXu7NOIbEKQ4oHhLMqt+kXM35AmGyYScXC6yVJWfIhPaHLjgZtxEC5vX11rqtqyHwb/89H4HDIyCsGO58i9e0oepQupB3TMlSdD5Acp2Jqlc1k68mJ4KVXsY7A==
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=uqGMfKXQm0rTh++zwIjh7vpRxxaU+KD1aOJ3YCb+cc8=;
 b=qPfXSDK94WXjakfsy1cFdBKePE+OaCYkh+0OF8JRytvpiFzayJQyoMD6CmlLLr2olULt27iPCJEuB0Uuwt32AA4Yv/RBPtxUi/up/0TDTdrIaiNbX9gXgNN0FfZKWSPha2VIcwNK6Sv0ma1XzIhDAlfRu2SR9VYbdYYcYPVun7hOfm3fKtoYCZVZate+T4RPtFmbBmp+18CSCiYq0MfdkpOyaXJtylHNgFSbWAzyWTBtQABbEJAnMJ88yf6dCf33JvVUDmto1Ug4HANdB/pxLPU6czXQ/nyyyS4wVeJaldtiKumAmLiZQ0b//ZtquIo+zmYgFtETBr/rd9Dh/KYgCg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Topic: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Index: AQHbMCKf4QVge+H9k02dX4ZlwzpGqLKp9EiAgAACIoCAAChLAIAAD1kA
Date: Wed, 6 Nov 2024 12:26:55 +0000
Message-ID: <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com>
References:
 <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook> <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
In-Reply-To: <6d3f322f-7047-4033-95b5-86751a58cc70@suse.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: PAVPR03MB10102:EE_|PAWPR03MB9787:EE_
x-ms-office365-filtering-correlation-id: b90f2e59-6421-4d58-a61e-08dcfe5e4d16
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?eE14TUplZ1g1UHBWaVRPY3hJRTNudVhSeXltWXFsbW93QUJhSkdlLzZlUGZw?=
 =?utf-8?B?T0hFUGhyNUJNSEc1ZVNTbzRwVVc2Z24zVjFIUlM1NXo2bkdIM0x0d2p0QU10?=
 =?utf-8?B?Zm1CblhkMndyb3lUQ0NGMXFaZWpJZWM0Q2kybXVhTStXWm1pV0NwdXM0UTN4?=
 =?utf-8?B?T0JyMStnQ2I4M3NLM0pzOTk2azIvSTlwazVwMkQ1UE5mK1FCcUtMb0R1bXFn?=
 =?utf-8?B?QzR1cmtaZjJCakFlRXJuZVFEQTFQNUJpRGk1a0I1dWhzODZibytRWnd0TG1Z?=
 =?utf-8?B?SDVtZUcxVnlHRm0xdFlZZlptS3FQVUNBNWlYSmZLdWRTeWQvczF0SHloa2Yr?=
 =?utf-8?B?aGVzcVFZbGhmS1pMeXlKejB4Sm9lOWdrdE9oTEJGNGo4L2FiMHJqQ3c5bEVR?=
 =?utf-8?B?Ym14c2dZQmFZcmJpQUtKUDVCY0ZTditFOThrUUFrWXZpRTZSRzlsaENqSTZY?=
 =?utf-8?B?U1RRcUMydGFiMVF4V0NUNGJZdmdwOG5XbjRlSWRwL1pMMytsNHZ5UXRvQzBX?=
 =?utf-8?B?QUV4NEdMWXJoZDhuRVdadHAycTVsaU1yVitmV0dGSmhRWXdVNGhub3FtS3Vq?=
 =?utf-8?B?MzUzTG5rQlZYaWxwRldFWUNnOGdLcXZELzlOdkg3UFcwZTVtWW5Yc2RyZk04?=
 =?utf-8?B?NjNkV0p1eml4MEhhWHh4T0pCa0RySENCand1ZkpNZWpvRVZmcVRTcmRoUzd6?=
 =?utf-8?B?SUtFSmxCcDZta0pyK1VnK3pCZ0hOS2VwZTljdVZlcnd5bTBCR0ltNkFNOE1v?=
 =?utf-8?B?aXhFVzZSb0dScFNSQmZXNkMveDZteVlvbG9mNnk1ZExaWVk2Nlp0ZzJQWWVj?=
 =?utf-8?B?MExiam0rN1cxTDFUcTZDd2RUbjJVd2FER1dYTzFyczdhWk8vb0NMNzl3Ri9F?=
 =?utf-8?B?eEQ2TGhoYjhHb2t5M2xQMEJHdzBFb1BPWGJwM3dWNmlFZUxuV1diaUV4RTY3?=
 =?utf-8?B?a3dEWXpqZGt6dWZxYXJGb2JvU2FNOVVNUng3bXdxM2lobjEwYU1KNjV5ekQy?=
 =?utf-8?B?YjdIbElXMlk3RFNaSGYrRGZrTUhqTmZ5NzM0L2Q5R0tDbWdlVnNmaXdUVnFs?=
 =?utf-8?B?cW1DQlB1L2l6S1ZBQnlGS1lIcVdiT0Y4NGxBL1dpd1hRZ29Hc2trZ2FiQ0hn?=
 =?utf-8?B?eTBCZDNoUk9FTHczcDlhMldiWjNlbERTbDJwbWxsUTBqVDBJNnR5R0FHQWM4?=
 =?utf-8?B?QUVkQ21mZlJNTVVmT3ZXc1ExcU1zdERob2FnS3hkcmVSbjBnSkF4WklZM1Np?=
 =?utf-8?B?bWxpZHVIcXRreHhOc2VadTVDQ2lBNzZCZUUwK3lVWkhVQklvOFNHVURQQ0JK?=
 =?utf-8?B?M3h1ZDVYbUo3eGhhV1RpdC8yL3FCSnpZY0t4dzY3RGFRWXBYQ2VLUHJSaXRR?=
 =?utf-8?B?d011SFlyZEtwQzhoOEUxWWhDNnNxSFdxSmlpL3ZUSU5EemJyQ2ZFdzNHRVla?=
 =?utf-8?B?OCtWQUZ1Qnp6T04xMHdPTnZxeUZtczQwNGVLVE1hUXhkR0FSOUlRQkhlYU1I?=
 =?utf-8?B?NGJCbFBtSHRXQXNJaTdKbW5Bc25IY29KbDQrZnBzcGxudCtHalV0QzhlbFFR?=
 =?utf-8?B?aHYxeVk4aGFtR1hiZ1hzck04NEs5RE44TjUzZ3BJbW1mMlJ1cjJnbHJIYWpC?=
 =?utf-8?B?MERsOFh3TXc1WjZ1OS9RYU5XOVhZWG1hSzYra05CaTBnUU9GNG4yZVg2cU1k?=
 =?utf-8?B?T1hqVkNYQnpHMzlQYVY5YnkrYll2N1J2elNWV2lQYmlzamtMZGVVVERZVWhS?=
 =?utf-8?B?TnkrV3F5aGYyN0JPbWdnbktTeFdCNkFDbXhGT3BJU3lCODNLdGwyOTZCSXBl?=
 =?utf-8?Q?WOjr5yeP3KrCEQ9gmrh/3gnP7T/yN1o0Nwcuo=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WVg0QWgxQjRhMHF0ZWU3UHJ0Nkdsa1VXUlFybVpRWU5aVWJ4c1FFak8xQ3ZO?=
 =?utf-8?B?enUxbFU0UDhEOXlEVUFiVkFnTTNZOVJnK1Bpd1hhTFA0Qi9TaGxsSVJvQzJM?=
 =?utf-8?B?SGplN2N2bHRnbHF2Y1NsSmo3OUZjaUQ5YnJaSzVxZll2dzZsZGRkNEF4Z1NM?=
 =?utf-8?B?Yk84M1ZXVVNnaVRQV3BqVlpnNWlGbWNWY092bmlGc1hhZHlqeUdMRFd3Z0h6?=
 =?utf-8?B?RndHU3pqV0MvK1lFOVFrTGZ6ZitXNWxwZmxXY1JGZnpUdk96ZW5GYjhDRy82?=
 =?utf-8?B?TDlUVXJtWEwzdUxLM3c1a2syZm93RG0vR1I3Ylk1elYrNThzWFl2RHZGeStY?=
 =?utf-8?B?cnhvaUVIazFSNnYvTTZkdlMwVlpiQnE5SGVuOVdRakZOdk5wN2hrK1BQSW5S?=
 =?utf-8?B?ME54UXRORFpuSUVRUHdBenp6V2QrdDJYc09WQk1VeGw2a0k4aTdtaW1WSmUw?=
 =?utf-8?B?TjNLb283M1BBMm1XUXRJcGJvZkIvbEZ2OWhDaDIvRHYyY3dIbzZ3SXU3cFJk?=
 =?utf-8?B?RWIzSnFFVWRIOVNEODdUcmxnbzdHRkYxdFhaZEQ2WWZPYjlVdkR3bFJ1cGZw?=
 =?utf-8?B?cE9CWlJweGo1bHJSR29ycndvYzMySFRRMUxacmFqbFhQZ0lDUmNTVkpzcEFX?=
 =?utf-8?B?R1Q4RThxd3pXUHNrM1hQaGp1VzZyd2IxTFFyaDZML2ZGbDc0Q1JQa1BjY0Q3?=
 =?utf-8?B?dEZGRUFCMDBNMzk0V3J3TDNZL2I0WVRCN0x5N2sxMEY0WWwxeExQNVZ3VTlH?=
 =?utf-8?B?TkFrNHBEemltNXptaXhCTkVtVXZQVjV3S3kxaGUwTitnTWszdDRKb2o3VzNK?=
 =?utf-8?B?Q0xSRk9ySDdWdFoxZ0V1alo1SmpuaThCeU5kUjRSYUZDR3BXTzY2b2NRWE4z?=
 =?utf-8?B?ZWhSc1U4cElEL0U3S28yL2tJRjBuQ3M5UnlMckZha1N2cnBlcG5UdHRLTXFr?=
 =?utf-8?B?N0g5cXBCTnZwNG51VzBSOFBnVm1xd0NGQUFORUx0d0J0TGV5aURmcmFYSktk?=
 =?utf-8?B?NE5qUUk5L3E3UVcvTUdBRnBmcFFhWHU2UVlyaU5WZk5Oc043TzVyeGo5ZGpQ?=
 =?utf-8?B?MzFmTTFvNlRBSEpwRk5rb0xTZ2JacFZHUkw3bVpvcG9kYWwvMDgyUHJ0QjJE?=
 =?utf-8?B?d1dZWFpRYXpRUFFtejQvSWtiSkQ4Q2h1SGFkRjlUcU5KSGlNUEpmalJxYWsy?=
 =?utf-8?B?YWE4ZkpVeHcxSGtMdlFHcnBIc245UWhrdHArdENVWk1IcEhaV3g4K3grR2Vp?=
 =?utf-8?B?d0VaUXhtZ21IRHlDRktNMGxFdlJnb1pXS3BvcmkxK3pUWU1ndERGOE1SS2Ra?=
 =?utf-8?B?QUlrL0lTWXV2dU5DRlZNTmg4cTgrYjVXZEtOU1gvOGFScXhUbEhrSVpDblpo?=
 =?utf-8?B?L2VaLzhoVEZKY0ZPUXJ5NkgyaVB4ellVY1BxZGgyOWRxWWZyK05EMkVoZit5?=
 =?utf-8?B?NlBXbnYzdm94dUpOUDBjZmNiUktGSXkzMXBicCs1cXJnL0tXQ0JLdGZsRjhp?=
 =?utf-8?B?aXZaRGVDRndlSXlPUVFvQ0p4b0ZjTkFXSXVVY1NsTmhlSnVyK2w4eW9VMEx4?=
 =?utf-8?B?YkZiOWY4Nm14Q2xSZGxSWHNXbVU5NThjMDQwYXEwS3RtNFhjVnc0YzZDOFJz?=
 =?utf-8?B?REJnQzlLUGJsYlFuS2JNS0ZLR0doNFdEYzE3YnZJdGExVEVwTjMwY2VaWms3?=
 =?utf-8?B?N1gvbkt1RXNBRW03dlk3QlE4eGRHdlVRcnVmaEJHVXF0ZTBjNkVjbUhJdmd1?=
 =?utf-8?B?aklMaENITnRGcytVZDgwMWZqOTFVSmNJRkM2aDY4Z2JqUnMvTVJ0ak05ZkNW?=
 =?utf-8?B?YkJxSHdrN3FjQ2hpcFBUNkZUcE1lMjdNRE5UVXEza25UZ3IzejZPc08weG1B?=
 =?utf-8?B?dGNJdzVIZGhXelhCRXA5eHVEUDRhVzFTbVhtdnFTNyttNThjaHNsV2R6OHM1?=
 =?utf-8?B?Wnh1WTFGd3RLRFdIYmRTY3JrL2NnU3dtakhkaE5PclMzaFFib3BjdDU4U21r?=
 =?utf-8?B?TVpyck5sK2k3bXhxUWEzblBpT1l5Z3FXa0JVMm54dklXZ0srcmc2NU5Pb1Q4?=
 =?utf-8?B?SjR5c05rUUlvdS9LelMwK1JVQ2d0OThKQ3BhUDVrTVJ0eU9KekNoODBZOGJx?=
 =?utf-8?B?UGxTUENjQVBYRC9ja2JpN0I1TkNYNWdBOEJsQUVEZDNRRkhnREQycTZ2bUJh?=
 =?utf-8?B?S3c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0F4281A3DDDCBA4BB38A1846411C576A@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: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b90f2e59-6421-4d58-a61e-08dcfe5e4d16
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2024 12:26:55.3382
 (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: XLeIy5EqudFfZOTsnrmmaHemdVARyT2+CPDwPjMWp11K79G9Met5qQ0U/nWDDtSGFYzQDeu0lmNj43nZdJFz2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9787

T24gMDYuMTEuMjAyNCAxMDowNywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZTo+DQo+IFdhaXQgLSBo
b3cgY2FuIG1zaS0+dmVjdG9ycyBldmVyIGJlIDA/ICBBRkFJQ1QgdGhlcmUncyBubyB3YXkgaW4g
dGhlDQo+IE1TSSBsb2dpYyB0byBjb25maWd1cmUgMCB2ZWN0b3JzLCB0aGVyZSB3aWxsIGFsd2F5
cyBiZSBhdCBsZWFzdCAxIHZlY3Rvcg0KPiBlbmFibGVkLg0KPg0KPiBNYXliZSB3aGF0IHlvdSB3
YW50LCBpZiB0aGlzIGZpeCBpcyBmb3IgY29tcGxpYW5jZSByZWFzb25zLCBpcyBhbg0KPiBhc3Nl
cnQgdW5yZWFjaGFibGUgdGhhdCBtc2ktPnZlY3RvcnMgPiAwPw0KDQpJIGRpZCBzb21lIGludmVz
dGlnYXRpb24gYW5kIGZpZ3VyZWQgb3V0IHRoYXQgdGhlIHZhbHVlIG9mIDAgaXMgYmVpbmcNCnNl
dCBieSBndWVzdCB3cml0aW5nIHRvIG1zaV9jb250cm9sX3JlZy4gQXMgZmFyIGFzIEkgdW5kZXJz
dGFuZCwgdGhlDQpjb250cm9sX3dyaXRlKCkgZnVuY3Rpb24gb25seSBjaGVja3MgdGhhdCB2ZWN0
b3JzIGFyZSBub3QgZ3JlYXRlciB0aGFuDQp0aGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlLCBidXQg
ZG9lcyBub3QgY2hlY2sgZm9yIDAuDQpTbyBJIGFtIG5vdCBzdXJlIGlmIHRoaXMgaXMgYSB2YWxp
ZCBzY2VuYXJpbyBvciBub3QuIElzIHRoaXMgaW5jb3JyZWN0DQpndWVzdCBiZWhhdmlvciBhbmQg
aXQgc2hvdWxkIGJlIGZvcmJpZGRlbiBmcm9tIHNldHRpbmcgdmVjdG9ycyB0byAwDQphbmQgZW5h
YmxlIHRvIDEgYXQgdGhlIHNhbWUgdGltZT8NCg0KT24gMDYuMTEuMjQgMTM6MzEsIEphbiBCZXVs
aWNoIHdyb3RlOg0KPiANCj4gV2hpY2ggcmFpc2VzIGEgcXVlc3Rpb24gYXMgdG8gKGxhY2sgb2Yp
IGNvbnRleHQ6IFdhcyB0aGlzIHNwb3R0ZWQgYnkNCj4gbWVyZSBjb2RlIGluc3BlY3Rpb24/IE9y
IGJ5IGEgc3RhdGljIGFuYWx5emVyPyBJZiBzbywgd2hpY2ggb25lPyBUaGF0DQo+IG1heSBoZWxw
IGZpZ3VyZSB3aGV0aGVyIHNvbWUgd29ya2Fyb3VuZCBsaWtlIHRoZSBvbmUgc3VnZ2VzdGVkIGlz
DQo+IG5lY2Vzc2FyeSwgb3Igd2hldGhlciBpdCBjYW4gc2ltcGx5IGJlIGxlZnQgYWxvbmUuDQo+
IA0KPiBKYW4NCg0KSSBoYXZlIGZvdW5kIHRoaXMgd2hpbGUgcG9ydGluZyB0aGUgUENJIHBhc3N0
aHJvdWdoIHBhdGNoZXMgdG8gWGVuIDQuMjAuDQpBZnRlciBjaGVja2luZyB0aGUgcHJldmlvdXMg
dmVyc2lvbiB3aGljaCB3YXMgb24gNC4xOCBpdCBzZWVtcyB0aGF0DQpvbiBpdCBtc2ktPnZlY3Rv
cnMgYXJlIGFsc28gc2V0IHRvIDAgYnV0IG5vdGhpbmcgYnJlYWtzIGR1ZSB0byBpdCBiZWluZw0K
dGhlIGV4cGxpY2l0IGVuZCBvZiB0aGUgbG9vcC4gU28gSSBoYXZlIGFzc3VtZWQgdGhhdCBzZXR0
aW5nIGl0IHRvIDAgaXMNCmEgdmFsaWQgc2NlbmFyaW8uDQoNCkkgYW0gdGVzdGluZyBhbGwgb2Yg
dGhpcyBvbiBSY2FyIEdlbjQgYm9hcmRzLg0KDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:29:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:29:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830876.1245973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fAK-0004O2-JQ; Wed, 06 Nov 2024 12:29:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830876.1245973; Wed, 06 Nov 2024 12:29: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 1t8fAK-0004N3-Fl; Wed, 06 Nov 2024 12:29:40 +0000
Received: by outflank-mailman (input) for mailman id 830876;
 Wed, 06 Nov 2024 12:29: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8fAJ-0004J0-83
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:29:39 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c872ffdc-9c3a-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 13:29:35 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-539f4d8ef84so8426919e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:29:35 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17ceb1dsm279896566b.101.2024.11.06.04.29.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04:29: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: c872ffdc-9c3a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM4NzJmZmRjLTljM2EtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODk2MTc1LjgwMzA5Nywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730896174; x=1731500974; 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=PzbBlr96+9j+wwmKx3UJvbDOiCZlb8PgkREFn+hF5mw=;
        b=rnN0oUGGrrmNNe0Uqqy0+bHsLGUdvkyIjcSi739LRb8jsKM27uWAnS9gIP/vcbuPhu
         4SkGIJxYTQskl2LpUIFRqJbxL1aAUJZkJq406+Bw4+U6RuI7wK3CsTSaG46GRzjFQ13f
         Krz1UX+hMQyTEKbuCNJFAiu+HZP4Oql1AKM1o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730896174; x=1731500974;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=PzbBlr96+9j+wwmKx3UJvbDOiCZlb8PgkREFn+hF5mw=;
        b=rFHyt8uEcvs/tyOb+JRkE0r1QOiB1SfJykbK3BQf3Axc8A90DvrV4eNIFX1ZOYaaWK
         L+smo1Ip9X4Gz/2oYkAaes6QD33KlslFE2cBS+2/byQTKUzLQ7n1vrDHX5aVHe7i3tr9
         IPTkEcmJFB3mSLUY0KfrYYIW5UD4KCIVmHcXqdOWuLH3FaoFDzwyyA1UaOQ2NW7/D861
         NiiEMyDcjr+/Vkfc3Ha5oH4Bgjn/gyGtT99DEFzyi0F2KUSykelxzCrrkLoVyVZHGrGf
         OcpNBl4Tbga2xgcCyYl9eUKiErzoJv0ZjGaBQezie6oC9Mfi1zgWMvbrJbCOqxDdGgYj
         7C2w==
X-Gm-Message-State: AOJu0YyNTTjzsrtKk+w5oY0Kx3envJ0QJJE68wil6C9iDr7AaOcnUK8+
	cYwrzIBu2yuALq24p4Ix9SiOa8bb0SaCVMqBiCdcyy92dPLSNtuVSvTa4wO523Sm6bqkHZ0+a1c
	B
X-Google-Smtp-Source: AGHT+IEP3IuYlL8NsaTGkDIQ+BpLLRbxnDOeFPrYMtdnosljz5T5fScqD2EAyqOeWgLhYKHVfDJMvw==
X-Received: by 2002:a05:6512:10c7:b0:539:f06c:6f1d with SMTP id 2adb3069b0e04-53c79ea5346mr11836174e87.55.1730896174360;
        Wed, 06 Nov 2024 04:29:34 -0800 (PST)
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 v2 1/4] x86/mm: introduce helpers to detect super page alignment
Date: Wed,  6 Nov 2024 13:29:24 +0100
Message-ID: <20241106122927.26461-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241106122927.26461-1-roger.pau@citrix.com>
References: <20241106122927.26461-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Split the code that detects whether the physical and linear address of a
mapping request are suitable to be used in an L3 or L2 slot.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/page.h |  6 ++++++
 xen/arch/x86/mm.c               | 11 +++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/include/asm/page.h b/xen/arch/x86/include/asm/page.h
index e01af28916b0..6970916d61d5 100644
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -200,6 +200,12 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
 #define l4_table_offset(a)         \
     (((a) >> L4_PAGETABLE_SHIFT) & (L4_PAGETABLE_ENTRIES - 1))
 
+/* Check if an address is aligned for a given slot level. */
+#define SLOT_IS_ALIGNED(v, m, s) \
+    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
+#define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
+#define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
+
 /* Convert a pointer to a page-table entry into pagetable slot index. */
 #define pgentry_ptr_to_slot(_p)    \
     (((unsigned long)(_p) & ~PAGE_MASK) / sizeof(*(_p)))
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index d537a799bced..8f7c397a82d4 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5249,9 +5249,7 @@ int map_pages_to_xen(
         L3T_LOCK(current_l3page);
         ol3e = *pl3e;
 
-        if ( cpu_has_page1gb &&
-             !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-               ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1)) &&
+        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
         {
@@ -5370,8 +5368,7 @@ int map_pages_to_xen(
         if ( !pl2e )
             goto out;
 
-        if ( ((((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-               ((1u << PAGETABLE_ORDER) - 1)) == 0) &&
+        if ( IS_L2E_ALIGNED(virt, mfn) &&
              (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
              !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
         {
@@ -5541,9 +5538,7 @@ int map_pages_to_xen(
  check_l3:
         if ( cpu_has_page1gb &&
              (flags == PAGE_HYPERVISOR) &&
-             ((nr_mfns == 0) ||
-              !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-                ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1))) )
+             ((nr_mfns == 0) || IS_L3E_ALIGNED(virt, mfn)) )
         {
             unsigned long base_mfn;
             const l2_pgentry_t *l2t;
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:29:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:29:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830878.1245999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fAM-00050z-9A; Wed, 06 Nov 2024 12:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830878.1245999; Wed, 06 Nov 2024 12:29: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 1t8fAM-00050G-5r; Wed, 06 Nov 2024 12:29:42 +0000
Received: by outflank-mailman (input) for mailman id 830878;
 Wed, 06 Nov 2024 12:29: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8fAK-0004JA-OJ
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:29:40 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca10e52a-9c3a-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:29:38 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2f7657f9f62so56949101fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:29:38 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a42asm2651723a12.18.2024.11.06.04.29.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04:29: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: ca10e52a-9c3a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmMiLCJoZWxvIjoibWFpbC1sajEteDIyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNhMTBlNTJhLTljM2EtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk2MTc4LjYyNjQ1Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730896178; x=1731500978; 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=BcaVEltxEnxyr1CO9t1j4OvKSjNdZa22JUuN+LyK/nw=;
        b=D5rVW28cromVCQheO1PJKkr+WQJB0Ttj4DGC5vwzQgETSzpsCxfvDupu6YfP6pYPbd
         eJLR41CNCx9JALx2lfGmINXOhObPvVh2yc+2fQFtMWOXs2Uh3z9PFYseUunD/p2oC51W
         CL1NTMLVoWbkETzOtHSOmLR/mle7lXGr/DJ10=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730896178; x=1731500978;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BcaVEltxEnxyr1CO9t1j4OvKSjNdZa22JUuN+LyK/nw=;
        b=DJubesFFo49bt/XtDJz5WtYv4VWIZAw2VO1a9Em+QvOh3szMBY4olpRGQ4Nf07D8Af
         y1J+IaCG3+21p+GorZOQALxaquZd+OxzbqqNNDwvhYRPJgz/MlbP53YZcI3ruzrqWDiH
         6qyVJ0LdIyFUAZtpIjyXmwLMgvwiOUFwah3Nbd0vi6kGWdza/v2xiWtC4eCgEaLxh+rj
         /a2BTXjiPUpRROOJn+FUKK92ZCTQ7ibqmdQ0fTavEP0pBvwUSJMK9UyOH3PUuxL0rB3V
         CrXpAUVgtMopar+73IY1owWAaug4m/3xehukRe0Xf4Qu2+4XLDqFQQXksl+kz5Z3SIAh
         kC7w==
X-Gm-Message-State: AOJu0Yw+TGLjyvyWjZftnmiRgQ2Dvo0IzXs2FLUcXPiRlsrRWljfiVQP
	Qo+3DRm0ptRUxZWBOsMKjoOag2fFhw5gVFjfxe0thlhO/NIr6tozfFk3mCDFffaPb5viON/dIXZ
	3
X-Google-Smtp-Source: AGHT+IEFjGTqghs/TdsB9cSFSKBeL7oEkX8qGPdc5XOODpnBxogvgGl8TtwpM6RgS/hg+ei7Ok/TfA==
X-Received: by 2002:a05:651c:553:b0:2fb:6169:c431 with SMTP id 38308e7fff4ca-2fcbdf69596mr202631541fa.9.1730896177689;
        Wed, 06 Nov 2024 04:29:37 -0800 (PST)
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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@ctrix.com>
Subject: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
Date: Wed,  6 Nov 2024 13:29:26 +0100
Message-ID: <20241106122927.26461-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241106122927.26461-1-roger.pau@citrix.com>
References: <20241106122927.26461-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bootstrap_map_addr() top level comment states that it doesn't indented to
remove the L2 tables, as the same L2 will be re-used to create further 2MB
mappings.  It's incorrect for the function to use destroy_xen_mappings() which
will free empty L2 tables.

Fix this by using map_pages_to_xen(), which does zap the page-table entries,
but does not free page-table structures even when empty.

Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
---
The fixes tag reflects the fact that if 4376c05c3113 freed the L2 correctly
when empty, it would have become obvious that bootstrap_map_addr() shouldn't be
using it if it wants to keep the L2.  4376c05c3113 should have switched
bootstrap_map_addr() to not use destroy_xen_mappings().
---
 xen/arch/x86/setup.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 177f4024abca..815b8651ba79 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -456,7 +456,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
 
     if ( !end )
     {
-        destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
+        map_pages_to_xen(BOOTSTRAP_MAP_BASE, INVALID_MFN,
+                         PFN_DOWN(map_cur - BOOTSTRAP_MAP_BASE),
+                         _PAGE_NONE);
         map_cur = BOOTSTRAP_MAP_BASE;
         return NULL;
     }
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:29:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:29:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830875.1245969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fAK-0004JQ-Bt; Wed, 06 Nov 2024 12:29:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830875.1245969; Wed, 06 Nov 2024 12:29: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 1t8fAK-0004JJ-8R; Wed, 06 Nov 2024 12:29:40 +0000
Received: by outflank-mailman (input) for mailman id 830875;
 Wed, 06 Nov 2024 12:29: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8fAJ-0004J0-19
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:29:39 +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 c76def14-9c3a-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 13:29:34 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a99e3b3a411so147092966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:29:34 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16f8399sm271563566b.85.2024.11.06.04.29.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04:29: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: c76def14-9c3a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM3NmRlZjE0LTljM2EtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODk2MTc0LjEzNzI3Nywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730896173; x=1731500973; 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=fzv3qzjRK3TQt/MOPcg4C+RPJUCLKq1ia0oWK3NTCE8=;
        b=VcaKk9LMmzTO7yV42i2sPix27/t7c5BfwZnzGIMTRAy6UrJ58wni5kbOxfguWSAhUD
         LbbYmcV1Wg0etyXI/S8slu1VCbVc6ghimIUkZqibPeqxwKHGeF+sg371Z2OE/WVpE246
         S3EAzPRtKfAQUI5n+eZuvVM+0rM3ddQf+yTy8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730896173; x=1731500973;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fzv3qzjRK3TQt/MOPcg4C+RPJUCLKq1ia0oWK3NTCE8=;
        b=eCclSEgwDw8g4bT6ukd9volF9PJsdSUByNcBjHv7MSB+kuMBePym0cgbfWWpT7vT+Y
         ft29jPFoAWHzi7jPu8Uhu/jTYmPt78r9FIQ4DA2G+cNptSS2QNjP3LyLTLFaXXN3GsXf
         Sj6TP7sJz2lKlRYi15tcmnpZMdWBkOqco8XBsizG8AUV8xY0J24hlKYW4nzH3fyO9yrp
         RKhgkpEkzSu2MXTdPizUHrsyabETBbJ/d33TclW2slWBa9gSZBN/fJ+iNO5adoxSAJuF
         WYWKGN/H3oy7C5tDRTMe04nh9QMgF4qTqdFqRNOb7DaGjLkO08I4KJ7YTxkdXsr7EwRQ
         DqYA==
X-Gm-Message-State: AOJu0YyrxRL/shroZuQwju+qhsPBMXK0o9+SktX4ygOlsQR1UDXRXoSQ
	emVxPJhDPBPK9Bjpr0o8AjiFFzWpJf0Aubo0BK7ulENWPAcJWeKXufw5InddZN6aF3g/1/+RA/p
	s
X-Google-Smtp-Source: AGHT+IFq6DsWTay2BzSCuFVumu9DQhOrwxyujN78Le9hWhsvdfB993gvs6ON92K5jXu0hJn3H3RHLA==
X-Received: by 2002:a17:907:ea8:b0:a99:fbb6:4972 with SMTP id a640c23a62f3a-a9ec665ac6cmr206268666b.25.1730896173150;
        Wed, 06 Nov 2024 04:29:33 -0800 (PST)
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 v2 0/4] x86/mm: miscellaneous fixes
Date: Wed,  6 Nov 2024 13:29:23 +0100
Message-ID: <20241106122927.26461-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The attempt to fix destroy_xen_mappings() so that L2 tables are
consistently freed uncovered some errors in the memory management code.
The following series attempts to fix them.

All patches except for 4/4 are new in v2, and 4/4 has no change from v1,
hence kept Jan's Reviewed-by tag in 4/4.

Thanks, Roger.

Roger Pau Monne (4):
  x86/mm: introduce helpers to detect super page alignment
  x86/mm: special case super page alignment detection for INVALID_MFN
  x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
  x86/mm: ensure L2 is always freed if empty

 xen/arch/x86/include/asm/page.h |  7 +++++++
 xen/arch/x86/mm.c               | 13 ++++---------
 xen/arch/x86/setup.c            |  4 +++-
 3 files changed, 14 insertions(+), 10 deletions(-)

-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:29:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:29:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830877.1245982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fAL-0004Xx-4a; Wed, 06 Nov 2024 12:29:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830877.1245982; Wed, 06 Nov 2024 12:29: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 1t8fAK-0004Wc-TV; Wed, 06 Nov 2024 12:29:40 +0000
Received: by outflank-mailman (input) for mailman id 830877;
 Wed, 06 Nov 2024 12:29: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8fAJ-0004JA-Lz
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:29:39 +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 c9162f31-9c3a-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:29:37 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5c937b5169cso1540556a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:29:37 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a99ff2sm2737214a12.4.2024.11.06.04.29.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04:29: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: c9162f31-9c3a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5MTYyZjMxLTljM2EtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk2MTc3LjEyNDk3OSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730896176; x=1731500976; 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=dVmpTHSgje6W+FK+mwA0AzNEEu9akSw4GNptWHLi0AU=;
        b=v+1ZrkB7ugtesCaDuz9xhooq+J/lbyyKn17F9mmPD9sTAxIjrZWOggBfsyirSpBcHa
         Og3yQrpG4k+FdHrWDO87Nr8Lcnl4blhSqeiIwN5dAqKn4Xv685jkFQUfeKfSrN4HYh3a
         TRwjyJPDAEUuaLbWQOFOdUe0/bLqF4tfItIWs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730896176; x=1731500976;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dVmpTHSgje6W+FK+mwA0AzNEEu9akSw4GNptWHLi0AU=;
        b=njQeCGGioYv0AUFoN+hOeabq92CWQvXQIjvCmxj59+BqETc3/fAIhNw/SV9B2c3LrX
         rfysXIk5Kb3/j3VT4l7mpa97ax5mKNwDaA0bK6mCSpbndZEBkOeBtbWKGJ6ik0bMT+pm
         /WVaDcK8/6Y2IV5ndKHmDvf+ePZRG+oOR77RCayefpsIzGCRcYsw0GIAPdLTO/3wzkoy
         QnxihOiDdMztfIMrfeIL4jcdKUpTPGFKsKhmaUbLnCEAiqdAyGiUC4XVWWqlAysF1i5u
         /V9jNg1YaAmwY9NgroBC2WOg2Q99C1pMgsX/B+RPOMfocgpz/6dx5yRWGDfBlq5mf8rM
         MkYA==
X-Gm-Message-State: AOJu0YwrJoMTR2JS573cXg/VFT+wfhUnyYR9IETd8cokTUkKi93eQW/k
	UY3D97+oF5IW7Q4V7m4obfz8of+F5S94aYKYqEXEZxy7XOl3rmJpdWHZXBSHEXJdePLJAopgcdk
	g
X-Google-Smtp-Source: AGHT+IGWypOahahjNMwCperhYdLFPDNdZfP9EDfyRg9KmLtg0WaUKP4pjUlvv0nPncgde8ZPmp+Y3A==
X-Received: by 2002:a50:d55e:0:b0:5ce:fa33:6c56 with SMTP id 4fb4d7f45d1cf-5cefa336cbcmr564742a12.4.1730896175936;
        Wed, 06 Nov 2024 04:29:35 -0800 (PST)
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 v2 2/4] x86/mm: special case super page alignment detection for INVALID_MFN
Date: Wed,  6 Nov 2024 13:29:25 +0100
Message-ID: <20241106122927.26461-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241106122927.26461-1-roger.pau@citrix.com>
References: <20241106122927.26461-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

INVALID_MFN is ~0, so by it having all bits as 1s it doesn't fulfill the
super-page address alignment checks for L3 and L2 entries.  Special case
INVALID_MFN so it's considered to be aligned for all slots.

This fixes a regression introduced by 0b6b51a69f4d, where the switch from 0 to
INVALID_MFN caused all super-pages to be shattered when attempting to remove
mappings by passing INVALID_MFN instead of 0.

Fixes: 0b6b51a69f4d ('xen/mm: Switch map_pages_to_xen to use MFN typesafe')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/page.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/page.h b/xen/arch/x86/include/asm/page.h
index 6970916d61d5..2fa4061dc77a 100644
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -202,7 +202,8 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
 
 /* Check if an address is aligned for a given slot level. */
 #define SLOT_IS_ALIGNED(v, m, s) \
-    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
+    IS_ALIGNED(PFN_DOWN(v) | (mfn_eq(m, INVALID_MFN) ? 0 : mfn_x(m)), \
+               (1UL << ((s) - PAGE_SHIFT)) - 1)
 #define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
 #define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
 
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:29:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830879.1246008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fAO-0005Lo-I3; Wed, 06 Nov 2024 12:29:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830879.1246008; Wed, 06 Nov 2024 12: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 1t8fAO-0005Lh-Eq; Wed, 06 Nov 2024 12:29:44 +0000
Received: by outflank-mailman (input) for mailman id 830879;
 Wed, 06 Nov 2024 12: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8fAM-0004JA-GE
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:29:42 +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 cb314818-9c3a-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:29:40 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so5259529a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:29:40 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6ab10d4sm2682195a12.27.2024.11.06.04.29.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04:29: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: cb314818-9c3a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNiMzE0ODE4LTljM2EtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk2MTgwLjQ0MjEzOSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730896179; x=1731500979; 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=4qHELgAq1nN/UXJ9bkfqeoULYcH/rWuJ4SStRsxggRI=;
        b=og54/+ebibxUwSvlYnffQ0gEm3nLbtM5ufHn6FndVD2PjdnPRUaqGXIRmQAw5aikGX
         5k9PMoEvFsU3UBclrmivLopxdg/CxvYG+1rFMUABALBRMf5FbHC9BvkNxN98hfaBArV/
         zzWzUEc33OJ6JrZQAfbHM7Bm3NXG13Skajm0I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730896179; x=1731500979;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4qHELgAq1nN/UXJ9bkfqeoULYcH/rWuJ4SStRsxggRI=;
        b=Hlwn5x8i+D2VyQIXZ3yyxZvj7qNM8grCasm9E1iF4ytZU837pNXm2UGjGg3AXTKCw1
         KTGK/uL7CSvPbSevgDlNhdqyidthS8dzB9xedA6HadH0YpREYYLEeUX54oigSCxrr4Dk
         jYtsLZQQ37Sr9hZCPJoBYr8cfLQOoZDqCDA67BI2TpOr6qy6mEW///9UYL7pT0fer2mG
         un4I1n/vZw8OJBWfQglUwHNLcrzAeHROs3LMLO3CKD1u5dYcTwgI4dsOyvFBf09V9qs6
         NArvTq5zy/1KAhLUe0v6F0FoNEAqQNguyDnFkrLLGJfqP/3e0lnVyxWzSaUsP8MjrVJn
         UxrQ==
X-Gm-Message-State: AOJu0YzO17SKQdJ1QkX0WJrTVTCit0Y5fiZUyOUIsAmLOaS330ilMlKq
	K7RAHKzh9yiyZxZKyyoDLIH3MNvtLdHUCfXbh28SFu0EQh0FdGDbduDmmFvPLaVIjknpPg3uW7+
	S
X-Google-Smtp-Source: AGHT+IFQg/goUaMDwivI0dHrgfSpC+FBj2jDnE6V14jWVDhd0u+uAbDhiS+3oq9lLxJyn3ZMKEXu1Q==
X-Received: by 2002:a05:6402:5203:b0:5ca:14e5:b685 with SMTP id 4fb4d7f45d1cf-5cbbf888bcemr29831951a12.3.1730896179560;
        Wed, 06 Nov 2024 04:29:39 -0800 (PST)
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 v2 4/4] x86/mm: ensure L2 is always freed if empty
Date: Wed,  6 Nov 2024 13:29:27 +0100
Message-ID: <20241106122927.26461-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241106122927.26461-1-roger.pau@citrix.com>
References: <20241106122927.26461-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic in modify_xen_mappings() allows for fully empty L2 tables to
not be freed and unhooked from the parent L3 if the last L2 slot is not
populated.

Ensure that even when an L2 slot is empty the logic to check whether the whole
L2 can be removed is not skipped.

Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/mm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 8f7c397a82d4..05d3ba095627 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5712,7 +5712,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
 
             v += 1UL << L2_PAGETABLE_SHIFT;
             v &= ~((1UL << L2_PAGETABLE_SHIFT) - 1);
-            continue;
+            goto check_l3;
         }
 
         if ( l2e_get_flags(*pl2e) & _PAGE_PSE )
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:37:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:37:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830911.1246020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fI8-0008Qo-EZ; Wed, 06 Nov 2024 12:37:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830911.1246020; Wed, 06 Nov 2024 12:37: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 1t8fI8-0008Qh-9v; Wed, 06 Nov 2024 12:37:44 +0000
Received: by outflank-mailman (input) for mailman id 830911;
 Wed, 06 Nov 2024 12:37: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8fI7-0008Qb-9d
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:37:43 +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 e956d94c-9c3b-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:37:40 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9ec86a67feso115196266b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:37:40 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d9ce8sm280230666b.67.2024.11.06.04.37.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04: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: e956d94c-9c3b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU5NTZkOTRjLTljM2ItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk2NjYwLjUzMzA5OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730896660; x=1731501460; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=OxpICr6eHOLtWckwii8D7DsEfsbp0B6wL/WJbnmEvQU=;
        b=wCUkLTTrY3Ma41uG+39ttu81Hp9pOHwFrQOQlcE71GQ7MqMSHzhQ/vmjJUvgYTED81
         CdISbfOxihOZ8hOw4SJW9ldtSmOhcjaitJk/Rs/7r4YSfASQRQZ+a/mJKtm0Lo+mZf9w
         avTMLW/3cMZUn1kInbTr21id34pKgG94IGM68=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730896660; x=1731501460;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=OxpICr6eHOLtWckwii8D7DsEfsbp0B6wL/WJbnmEvQU=;
        b=wwCT4bpBmCQR8XBqxFn+IMheBzppMOX/LeieupQ9P9aURLEIemhU/jtMPa8TzNL0H7
         T47YuzhNga3Kqt+2W33e2M5Tn86PeXj31HMb3/NG0JW8nGbalgnllYOvihl5ix4HZ2a8
         stBwm+6XYqnSAbtt6s02USb6By/ZkZ1ZEgfZoN7opWQnoynUbzMy3sxoB5/jffeqlt6H
         VfHPx3jNAMfevVo7WRuyRMfoUcRqusAxF5MPcaeS+JS5ALuTjRIGlw9xJsu79fNhHKUN
         Ns9op4EIYuUSsguvZRtapQ/SL4qd2J9CUzCpVTqMgHzWofFb370ZrR/+9oG2TMMJqU2Y
         QsYg==
X-Forwarded-Encrypted: i=1; AJvYcCWn9u11xfKROlPqjxqJaIuntAk6JgSUumM7SSTTUcNA0eeU9Aw/5gAvuGwX2wn8g+C9NahxtJ4GZ2g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjrtwFZC3JSZj0jvyJbVPfEWM4OQk7y64RES8eZemnFx/ENhe3
	SM4NN2cRvety0nQE2FLuLjd0Z6QSm8TXdVYQd01gWyvegAuCEeFNavpWQaHXZjA=
X-Google-Smtp-Source: AGHT+IF664F8u00NmXHTHBBF8A/AMK86BVNX1s0tgKj1zp2WUYYDvdimZzoWY/0RKrH84hbSPIIQqg==
X-Received: by 2002:a17:906:c112:b0:a99:f71a:4305 with SMTP id a640c23a62f3a-a9de5ce4681mr4335648466b.18.1730896659897;
        Wed, 06 Nov 2024 04:37:39 -0800 (PST)
Date: Wed, 6 Nov 2024 13:37:38 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
Message-ID: <ZytjEoRjAPhtR7Ga@macbook>
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
 <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
 <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com>
 <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@mail.gmail.com>
 <80296824-760a-48c4-9dce-4875fca0ed31@suse.com>
 <CACHz=ZgY_O7siQUQZjxGe=gfiB-C9jw1UQqwK9ffuHUUQmRgiQ@mail.gmail.com>
 <cc7802cc-8591-4356-bf7e-3daa912c751c@suse.com>
 <CACHz=ZjZVPSueWjxfWBjbjg8_UhZc7hMwM49BFT0bipqeBOsSA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CACHz=ZjZVPSueWjxfWBjbjg8_UhZc7hMwM49BFT0bipqeBOsSA@mail.gmail.com>

On Wed, Nov 06, 2024 at 11:58:19AM +0000, Frediano Ziglio wrote:
> On Wed, Nov 6, 2024 at 11:45â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
> >
> > On 06.11.2024 12:34, Frediano Ziglio wrote:
> > > On Wed, Nov 6, 2024 at 10:59â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
> > >>
> > >> On 06.11.2024 07:56, Frediano Ziglio wrote:
> > >>> On Tue, Nov 5, 2024 at 5:06â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
> > >>>>
> > >>>> On 05.11.2024 17:35, Frediano Ziglio wrote:
> > >>>>> On Tue, Nov 5, 2024 at 3:32â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
> > >>>>>>
> > >>>>>> On 05.11.2024 15:55, Frediano Ziglio wrote:
> > >>>>>>> This toolchain generates different object and map files.
> > >>>>>>> Account for these changes.
> > >>>>>>
> > >>>>>> At least briefly mentioning what exactly the differences are would be
> > >>>>>> quite nice, imo.
> > >>>>>>
> > >>>>>
> > >>>>> What about.
> > >>>>>
> > >>>>> Object have 3 additional sections which must be handled by the linker script.
> > >>>>
> > >>>> I expect these sections are there in both cases. The difference, I assume,
> > >>>> is that for the GNU linker they don't need mentioning in the linker script.
> > >>>> Maybe that's what you mean to say, but to me at least the sentence can also
> > >>>> be interpreted differently.
> > >>>
> > >>> Why do you expect such sections? They are used for dynamic symbols in
> > >>> shared objects, we don't use shared objects here. Normal object
> > >>> symbols are not handled by these sections. GNU compiler+linker (we
> > >>> link multiple objects together) do not generate these sections. So the
> > >>> comment looks correct to me.
> > >>
> > >> About every ELF object will have .symtab and .strtab, and many also a
> > >> separate .shstrtab. There's nothing "dynamic" about them. IOW - I'm
> > >> confused by your reply.
> > >
> > > I checked the object files and there are no such sections using GNU toolchain.
> >
> > I think I checked every *.o that's under boot/, and they all have these three
> > sections. Can you clarify which one(s) specifically you checked?
> >
> > Jan
> 
> $ gcc --version
> gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 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.
> 
> $ ld --version
> GNU ld (GNU Binutils for Ubuntu) 2.38
> Copyright (C) 2022 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public Licence version 3 or (at your option) a later version.
> This program has absolutely no warranty.
> 
> $ find xen/normal/ xen/pvh/ -name \*.o | xargs -ifilename sh -c
> 'objdump -x filename' | grep -e \\.
> shstrtab -e \\.strtab -e \\.symtab
> 
> (xen/normal and xen/pvh are the build directory, with different configurations)
> 
> I'm saying that's possibly why the linker scripts didn't need to
> specify these sections.

objdump -x doesn't seem to list .symtab, .strtab or .shstrtab, but
readelf -S does:

# readelf -SW xen/arch/x86/boot/reloc.o
[...]
  [11] .symtab           SYMTAB          00000000 0004b0 000190 10     12  21  4
  [12] .strtab           STRTAB          00000000 000640 000092 00      0   0  1
  [13] .shstrtab         STRTAB          00000000 000734 000078 00      0   0  1

# objdump -x xen/arch/x86/boot/reloc.o
[...]
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .group        00000008  00000000  00000000  00000034  2**2
                  CONTENTS, READONLY, GROUP, LINK_ONCE_DISCARD
  1 .text         0000041d  00000000  00000000  00000040  2**4
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  2 .data         00000000  00000000  00000000  0000045d  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  3 .bss          00000000  00000000  00000000  0000045d  2**0
                  ALLOC
  4 .rodata       00000024  00000000  00000000  00000460  2**2
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
  5 .text.__x86.get_pc_thunk.bx 00000004  00000000  00000000  00000484  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  6 .comment      00000028  00000000  00000000  00000488  2**0
                  CONTENTS, READONLY
  7 .note.GNU-stack 00000000  00000000  00000000  000004b0  2**0
                  CONTENTS, READONLY

It also seems to skip .rel sections.  It doesn't seem reliable to use
objdump to get ELF sections.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:42:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:42:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830919.1246029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fMs-0002Ab-VF; Wed, 06 Nov 2024 12:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830919.1246029; Wed, 06 Nov 2024 12:42: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 1t8fMs-0002AU-SB; Wed, 06 Nov 2024 12:42:38 +0000
Received: by outflank-mailman (input) for mailman id 830919;
 Wed, 06 Nov 2024 12:42: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8fMs-0002AN-0U
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:42:38 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 985fc5ef-9c3c-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 13:42:34 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2feeb1e8edfso59066971fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:42:34 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb1813f2fsm273114166b.192.2024.11.06.04.42.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04:42: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: 985fc5ef-9c3c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzQiLCJoZWxvIjoibWFpbC1sajEteDIzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk4NWZjNWVmLTljM2MtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODk2OTU0LjE0MDY1Nywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730896953; x=1731501753; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=zPyp0UkTCP99QMvF1Hd2D2V2wLDFdR8ptIUgliY9SNw=;
        b=X9UKEud/QhiR90sAIkdpVOKRpZ72vupCwkeWOKRh4wul0nllDe34ERZPXS47y/XUYQ
         xQr8VrDVRMkhKgKtiT1h6a/+15qGZL4sTtxI7hbKFweAwaxVh2KvUZbrX4u0nuAN0xHo
         lodN8a6R1Wdui3TKrwQj4SMda9fq9YeESwA0Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730896953; x=1731501753;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=zPyp0UkTCP99QMvF1Hd2D2V2wLDFdR8ptIUgliY9SNw=;
        b=Em+qr3DX2WYm9vGVRFtuhH/eFCrZjsQ8E/W3fUO+V+CutYu9wWjQm0sgaEH4gET+X4
         ohCJebrbkXgFarJqGwp8wa4n6jfcUoJ81TW805PGFkO9UT0LjorfFFrjC4HGHF/vO9OX
         Q9AOQQ5eFOs4CfX+IGtoQ7MQTJ3Y49+dXCm5C1FP6DY5VX+Pb6RZcpR5T0bIDOy+wfLo
         1iWeX86haPVlEqtUSqPi+aSV+9QJ8Amsd445/dSin6vh9zH8Syf/z97etweGa3m8Baiy
         uTxx1rJFAZiSE1l1sr79H33B+v0urJ2EGnYNWSNl/uB2oDh+zbMGDG7FhHOmFxiuebQa
         zTDQ==
X-Forwarded-Encrypted: i=1; AJvYcCV6HH0f5Uhklj6Y45zS9v5NFHO++d+yJwCWTfJCgk2mccJJtzfoL4DqibT2BLyDqh52UmTVPATH98c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9ksZQDFbwDZtq9L/nvUoKgdIHGv4CkmmqoNUKfAHIGI5wlBCa
	ITPww23a5VLwVNgsTtOIg3ckDlTADmhRvxQkKwC8Im/zefPKc1KZLSf2tOjmMaI=
X-Google-Smtp-Source: AGHT+IEw7/d2pKpYUEnpQ8E3DoMjMMc3e+XtNIAbq1FFkoHHxf1U+CtdgtoeH3Z0gHSzctEc6zZNIA==
X-Received: by 2002:a2e:a589:0:b0:2fb:3df8:6a8c with SMTP id 38308e7fff4ca-2fedb7c9c38mr143665571fa.23.1730896953476;
        Wed, 06 Nov 2024 04:42:33 -0800 (PST)
Date: Wed, 6 Nov 2024 13:42:32 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Message-ID: <ZytkOP_7nmeSVEYH@macbook>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook>
 <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
 <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com>

On Wed, Nov 06, 2024 at 12:26:55PM +0000, Mykyta Poturai wrote:
> On 06.11.2024 10:07, Roger Pau MonnÃ© wrote:>
> > Wait - how can msi->vectors ever be 0?  AFAICT there's no way in the
> > MSI logic to configure 0 vectors, there will always be at least 1 vector
> > enabled.
> >
> > Maybe what you want, if this fix is for compliance reasons, is an
> > assert unreachable that msi->vectors > 0?
> 
> I did some investigation and figured out that the value of 0 is being
> set by guest writing to msi_control_reg. As far as I understand, the
> control_write() function only checks that vectors are not greater than
> the maximum allowed value, but does not check for 0.

control_write() will set vectors to (1UL << val), so even if user
provides val == 0, vectors will be 1.

Can you provide an example input value of control_write() that will
lead to msi->vectors == 0?

Is maybe msi_maxvec not set correctly in your use case if you indeed
see vectors == 0?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 12:44:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 12:44:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830927.1246039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fOT-0002kZ-CA; Wed, 06 Nov 2024 12:44:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830927.1246039; Wed, 06 Nov 2024 12: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 1t8fOT-0002kS-98; Wed, 06 Nov 2024 12:44:17 +0000
Received: by outflank-mailman (input) for mailman id 830927;
 Wed, 06 Nov 2024 12: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=Yuz5=SB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t8fOS-0002jr-3o
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 12:44:16 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3a5768c-9c3c-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 13:44:13 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-539f2b95775so7752774e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 04:44:13 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53c7bccced1sm2482483e87.123.2024.11.06.04.44.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 04:44: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: d3a5768c-9c3c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzYTU3NjhjLTljM2MtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk3MDUzLjU0MzQxOCwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730897053; x=1731501853; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=7qTUQjBhI9yWwF+wV7C9d94TaRmYhd28hDx20TNDDk4=;
        b=Zxjg/+79tBgW6DKuUl5n/iZAVDKsLz9SfntHLiO8GZMpicDYEQbCF4Rdg03gvqlvTk
         92EIYEw7AlhQrfXyBioOKx9tU45Qwc1ecDulQKIB8jeVU+KqKo5H/Dcu4OKSk62nvBMu
         FLw/G9ghg0tX/6Fwe4cNz2CpV0IkiTWd/prxz02zdVBJTleVxnA4czv5hxTzjGf7n9jn
         p753DKt0CsEOt3Lz09dB4PsYJUI2DsB/qvM79YH2ZAC/iTzQb34SEc1oaHjvrvFzNw7h
         rX56bxgSHX3RSrMT6vDqCdoB3IhU2DkbH4lrdzQGSgduxru2az9JkgWaPJC4h/tn7SVT
         DfvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730897053; x=1731501853;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7qTUQjBhI9yWwF+wV7C9d94TaRmYhd28hDx20TNDDk4=;
        b=bqZYxHoLKP8we79f00Ubt0bi37DojmPGPQtFiemhXrO+EJnTkjrlbZq5xXWmlle6Bi
         q5rT5Bn1wI3vuZrqnG/71y2C8JhneHw0EO5lPKjTviJnyZLxnv9YMrEe5GKGn/Q1n+3y
         71PGCvSB9k3uYwhuY/Hr5KxIdgSm2PRQev4HDMljZvk2BjE2qndXpCZ7403d9+giFVqW
         f/+QT2mnI5V4sQnxWhICiscyV3dIW4ICEUdeGuXjK/ErKVG4felSyHumqnaxEJP3U+K4
         WkiBp2rmVpsg+ByB8NIvVGrXvobSeH54BTQwTw0T1QU5+n95fo5QNlRu6uAMN98ccof4
         5Lgw==
X-Forwarded-Encrypted: i=1; AJvYcCXPxVRlmstLJT9cx6jUmzOeZ6DkiEgqd50k81gz3NvLC9GZ/7WW8Xn2saKRP2yo+nwBPVNN5kJdgJ4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXo2DrWr0I2nalR4sQZyhXxlxS5P7eRD3ysv/s+hx0uQ2Moki8
	uwLqrXxWGKn68xnt7WLpV99wkFyPtuhyEblWxT+LDjh8Rr56CJA9
X-Google-Smtp-Source: AGHT+IHS3RPOBJYY7bxbqnwbUgxFO/woX/PnmYAdWli6f0NWg7PgHf1g0qhuFFaylMVxxuEsoqxz+w==
X-Received: by 2002:a05:6512:1150:b0:536:741a:6bc5 with SMTP id 2adb3069b0e04-53d65dca64cmr15362293e87.12.1730897052664;
        Wed, 06 Nov 2024 04:44:12 -0800 (PST)
Message-ID: <8380261d24388e453e74514dad8216c97e3bebee.camel@gmail.com>
Subject: Re: [PATCH v3 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Wed, 06 Nov 2024 13:44:11 +0100
In-Reply-To: <9e22b5ad-634f-48b7-b64c-fc44319a1d4d@suse.com>
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
	 <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.git.oleksii.kurochko@gmail.com>
	 <9e22b5ad-634f-48b7-b64c-fc44319a1d4d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Tue, 2024-11-05 at 16:20 +0100, Jan Beulich wrote:
> On 01.11.2024 14:16, Oleksii Kurochko wrote:> @@ -423,3 +429,138 @@
> void * __init early_fdt_map(paddr_t fdt_paddr)
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 return fdt_virt;
> > =C2=A0}
> > +
> > +vaddr_t __ro_after_init directmap_virt_start =3D
> > DIRECTMAP_VIRT_START;
> > +
> > +#ifndef CONFIG_RISCV_32
> > +
> > +/* Map a frame table to cover physical addresses ps through pe */
> > +static void __init setup_frametable_mappings(paddr_t ps, paddr_t
> > pe)
> > +{
> > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0 unsigned long nr_mfns =3D PFN_DOWN(aligned_pe - ali=
gned_ps);
> > +=C2=A0=C2=A0=C2=A0 unsigned long frametable_size =3D nr_mfns *
> > sizeof(*frame_table);
> > +=C2=A0=C2=A0=C2=A0 mfn_t base_mfn;
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( frametable_size > FRAMETABLE_SIZE )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("The frametable canno=
t cover [%#"PRIpaddr",
> > %#"PRIpaddr")\n",
> > +=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 ps, pe);
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * align base_mfn and frametable_size to MB(2)=
 to have
> > superpage mapping
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * in map_pages_to_xen()
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 frametable_size =3D ROUNDUP(frametable_size, MB(2))=
;
> > +=C2=A0=C2=A0=C2=A0 base_mfn =3D alloc_boot_pages(frametable_size >> PA=
GE_SHIFT,
> > PFN_DOWN(MB(2)));
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_m=
fn,
> > +=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 PFN_DOWN(frametable_size),
> > +=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 PAGE_HYPERVISOR_RW) )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("frametable mappings =
failed: %#lx -> %#lx\n",
> > +=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 FRAMETABLE_VIRT_START, mfn_x(base_mfn));
> > +
> > +=C2=A0=C2=A0=C2=A0 memset(&frame_table[0], -1, frametable_size);
> > +=C2=A0=C2=A0=C2=A0 memset(&frame_table[PFN_DOWN(aligned_ps)],
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0, nr_mfn=
s * sizeof(*frame_table));
>=20
> Interesting - now you write out a huge amount of -1s, just to then
> overwrite
> most of them with zeroes. I'm not going to insist that you change
> this yet
> another time, but the performance hit from this is going to bite
> you/us as
> soon as Xen is run on bigger-memory systems.
I agree that validating or invalidating frames in a single pass would
be preferable to nearly two passes. I=E2=80=99m considering whether there=
=E2=80=99s a
way to ensure that frame_table is set to -1 at compile time. It seems
the best approach (and only one?) might be to initialize frame_table in
one pass as follows:
1) [0, aligned_ps) =3D -1
2) [aligned_ps, nr_mfns * sizeof(*frame_table)) =3D 0
3) [nr_mfns * sizeof(*frame_table), frame_table_size) =3D -1
Does this approach seem optimal?

>=20
> Plus, unless I'm mistaken, the function continues to rely on ps =3D=3D 0
> as
> input. Just that the dependency is now better hidden. Specifically if
> you
> calculate nr_mfns from the difference, and then use that for
> allocation,
> then you need to offset the start of the mapping you create
> accordingly.
I'm not quite understanding why the method of calculating nr_mfns
affects how the frame_table is mapped. Isn=E2=80=99t it only necessary to
calculate the correct size of the frame_table that needs to be
allocated?

I assume by the offset you mean something similar to what was done for
directmap mapping?


>  At
> which point you may need to apply extra care to cover the case where
> sizeof(*frame_table) is not a power of two, and hence e.g. the first
> valid
> page might have a struct instance straddling a page boundary.
The first valid page is aligned_ps ( which is aligned on a page
boundary ) so assuming that sizeof(*frame_table) < PAGE_SIZE we can't
straddle a page boundary, can we?

>=20
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * The base address may not be aligned to the =
second level
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * size in case of Sv39 (e.g. 1GB when using 4=
KB pages).
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * This would prevent superpage mappings for a=
ll the regions
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * because the virtual address and machine add=
ress should
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * both be suitably aligned.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * Prevent that by offsetting the start of the=
 directmap
> > virtual
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * address.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(DIRECTMAP_VIRT_START + (base_=
addr &
> > ~high_bits_mask),
>=20
> I'm afraid this is correct only for the first invocation of the
> function.
> For any further invocation you'd likely (attempt to) replace
> previously
> established mappings. I think that here you need to use
> directmap_virt_start
> instead.
Banks are sorted by bank start address ( common/device-
tree/bootfdt.c:623 ):
       /*
        * On Arm64 setup_directmap_mappings() expects to be called with
   the lowest
        * bank in memory first. There is no requirement that the DT will
   provide
        * the banks sorted in ascending order. So sort them through.
        */
       sort(mem->bank, mem->nr_banks, sizeof(struct membank),
            cmp_memory_node, swap_memory_node);
( btw, comment is needed to be updated ... )

Thereby no replacement should happen if I don't miss something.

I am thinking wouldn't it be more correct to use mfn_to_virt(base_mfn):
       if ( map_pages_to_xen(__mfn_to_virt(base_mfn) + (base_addr &
   ~high_bits_mask),
                             _mfn(base_mfn), nr_mfns,
                             PAGE_HYPERVISOR_RW) )

>=20
> > +/*
> > + * Setup memory management
> > + *
> > + * RISC-V 64 has a large virtual address space (the minimum
> > supported
> > + * MMU mode is Sv39, which provides GBs of VA space).
> > + *
> > + * The directmap_virt_start is shifted lower in the VA space to
> > + * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address)
> > to avoid
> > + * wasting a large portion of the directmap space, this also
> > allows for simple
> > + * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a
> > GB boundary
> > + * (for Sv39; for other MMU mode boundaries will be bigger ) by
> > masking the
> > + * higher bits of the RAM start address to enable the use of
> > superpages in
> > + * map_pages_to_xen().
> > + *
> > + * The frametable is mapped starting from physical address 0,
> > minimizing
> > + * wasted VA space and simplifying page_to_mfn() and mfn_to_page()
> > + * translations.
> > + */
> > +void __init setup_mm(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 const struct membanks *banks =3D bootinfo_get_mem()=
;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_start =3D INVALID_PADDR;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_end =3D 0;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_size =3D 0;
> > +=C2=A0=C2=A0=C2=A0 unsigned int i;
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * We need some memory to allocate the page-ta=
bles used for
> > the directmap
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * mappings. But some regions may contain memo=
ry already
> > allocated
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * for other uses (e.g. modules, reserved-memo=
ry...).
> > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * For simplicity, add all the free regions in=
 the boot
> > allocator.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 populate_boot_allocator();
> > +
> > +=C2=A0=C2=A0=C2=A0 total_pages =3D 0;
>=20
> Nit: Is this actually necessary?
Agree, there is no need for total_pages. It should be dropped.

>=20
> > +=C2=A0=C2=A0=C2=A0 for ( i =3D 0; i < banks->nr_banks; i++ )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 const struct membank *bank =
=3D &banks->bank[i];
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_start =3D ROUN=
DUP(bank->start, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_end =3D ROUNDD=
OWN(bank->start + bank->size,
> > PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned long bank_size =3D=
 bank_end - bank_start;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size +=3D bank_size;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_start =3D min(ram_start=
, bank_start);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_end =3D max(ram_end, ba=
nk_end);
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 setup_directmap_mappings(PF=
N_DOWN(bank_start),
> > PFN_DOWN(bank_size));
> > +=C2=A0=C2=A0=C2=A0 }
>=20
> You maintain ram_start in the loop, just to then ...
>=20
> > +=C2=A0=C2=A0=C2=A0 total_pages =3D PFN_DOWN(ram_size);
> > +
> > +=C2=A0=C2=A0=C2=A0 setup_frametable_mappings(0, ram_end);
> > +=C2=A0=C2=A0=C2=A0 max_page =3D PFN_DOWN(ram_end);
> > +}
>=20
> ... not use it at all - why?
ram_start was needed for the case when setup_frametable_mappings() used
it as the first argument. Now it isn't true anymore so should be
dropped.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:13:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:13:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830940.1246048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fqf-0008RT-Em; Wed, 06 Nov 2024 13:13:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830940.1246048; Wed, 06 Nov 2024 13:13: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 1t8fqf-0008RM-Ba; Wed, 06 Nov 2024 13:13:25 +0000
Received: by outflank-mailman (input) for mailman id 830940;
 Wed, 06 Nov 2024 13:13: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=DrBW=SB=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1t8fqe-0008R4-3g
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:13:24 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2413::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f15a0c3-9c3f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:05:46 +0100 (CET)
Received: from SJ0PR03CA0360.namprd03.prod.outlook.com (2603:10b6:a03:39c::35)
 by SA1PR12MB7443.namprd12.prod.outlook.com (2603:10b6:806:2b7::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Wed, 6 Nov
 2024 13:01:50 +0000
Received: from MWH0EPF000971E6.namprd02.prod.outlook.com
 (2603:10b6:a03:39c:cafe::6b) by SJ0PR03CA0360.outlook.office365.com
 (2603:10b6:a03:39c::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.18 via Frontend
 Transport; Wed, 6 Nov 2024 13:01:49 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000971E6.mail.protection.outlook.com (10.167.243.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 13:01:49 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 6 Nov
 2024 07:01:48 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Nov
 2024 07:01:48 -0600
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) 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 via Frontend Transport; Wed, 6 Nov 2024 07:01: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: 6f15a0c3-9c3f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjFkIiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZmMTVhMGMzLTljM2YtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk4NDY0LjE1NTIyNywic2VuZGVyIjoic3RlZmFuby5zdGFiZWxsaW5pQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DOkX/dGQ1d+xLr8P8IMY3/UMydE58Jvq9rUFKEQ1TCKxMfvzjuJXLC+D9UuFND6sgmyQjRWaaBnmG63DjqEOMV59EBNoAnKZCo5UH4SMn5ye3BBz7oUm9kxy3GgB9+aOm5aTXeMJ4vNXitYcejo75y/s3mAv8aVa+SmgovkAd+4+uo/yc5xnNRskenk4kREUf5Npzc3ve1DoClZOLxU2PBmCBf03QzjFAXmQfeO82ECAbx4piOevTlUeCqkG50bhXISZy2we39ui7GGGSBWXpazPxJcQAjVEwISxfNUV7yXVvVcaF1xU4G6ErMPEE/oYk+XVbedl+wwsnAlBzTZEew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XT11z8kAJY3Xk8WK3qUJgge4WxIHZoc7gqKAeAzEMX0=;
 b=e49fZlIOBrS2zOMAnq76/5zv12v0YziDP0CAtbiYGEkoyz/63zAwmqbXqrUaUfR/RaOQa+e5ZI35/kFuMGK7W9BBElIbEdrbQwwoOf8AYw1XRZrvkTbpaqyLyR1cMZiMAeYR2eDky4l8DXIUPF38D8HD0sHho1iffVLGzXd6ASUDtmUR84S2+1lVbAt6vnOE14CgCrCJeMkA4aXni6gWd7ggCImYQeRUO/aeAuMqR2m91Gyx/MDLdaYLfr6+fPxoZhuPxTnEN1Bw06cNZKByC5WVQYLSJTG8vy1D7clf+hicvozschTQDOyu9vNTXjNHAe/UaeL5HIxU/rQH7jYAUQ==
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=XT11z8kAJY3Xk8WK3qUJgge4WxIHZoc7gqKAeAzEMX0=;
 b=xfc5haTJLPnzJLulq2yAQfY4lRsO/NHqDSAw4DnPbTK+djxE9OAQtlwImB3t4ZAJJBPPVLlYT2R91fUEjo4Ml3y6RhW4cYjoQPKXaKkFGC6mUsWsku4YsK8Mh/QHNN7fROWbl25RIM+x67FACmf+UZ9vc4/6H6mLgE/Bb51SwmY=
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=SATLEXMB03.amd.com; pr=C
Date: Wed, 6 Nov 2024 13:01:27 +0000
From: Stefano Stabellini <stefano.stabellini@amd.com>
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>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] CI: Fix package installation for Coverity run
In-Reply-To: <20241105204603.3412857-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411061301140.89051@ubuntu-linux-20-04-desktop>
References: <20241105204603.3412857-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-540673888-1730898107=:89051"
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E6:EE_|SA1PR12MB7443:EE_
X-MS-Office365-Filtering-Correlation-Id: 5af805f0-100b-416c-1fce-08dcfe632d8a
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?VHlHcUhhYlJPSE45VHZJT2ZLcUhFd2xPSTltV0g3RkFIbVh1L0ZEMStxZUFh?=
 =?utf-8?B?TW1xNm1IMWRiWHRvaFJLZ25MZmNyZ3JDT2orM0pvRFBDbVQzSWk3ZnpzSGRU?=
 =?utf-8?B?OEZsYVpWQ0R2R0hFYzZkU1pnTW4zY2J0M3V2WmozdUFQWHU1SXNWeWJ1ZkhY?=
 =?utf-8?B?dkN5NzdyU0hycE8wR3NIYWRFVVc1ZW9Ca2ZUM25VMHNRMUVOay9EeUhyUTFs?=
 =?utf-8?B?S2NvVmZTZXhVWjZ5SkRNQ1BqRm81ZVV3dnVvcEFBNjNxY2RoNHVZbEU3bWEw?=
 =?utf-8?B?R0t0T2UxTWh5TTR1WVBLQ0tvb0Y2UHBReCs1bitTcU1TUjI5bFIrMjlac1hy?=
 =?utf-8?B?d1IyR0s0ZFdBbVBBcE0vc0tmaCtHUkFuQ3VFKzQzS1lpdGw3NTZkaEhxY0Vq?=
 =?utf-8?B?VmJJcHV4Q2lOS2hhK2NzMVFrMGhsK1g2c2N5Y2FyNEtxaDUrLzkwd20yU2Ir?=
 =?utf-8?B?TjVseERTb202bUVmOU9DK0J1emFIZFM2YnFSMWg2dVlWdnRCbmVzSVF0eVU1?=
 =?utf-8?B?YWNVRkJ1N1JyaUJPU1A0U0hiR1N2M3pPV0xhcnB3aHpUdlNmeDRyWklkOW1r?=
 =?utf-8?B?SGpCZ3FqQUVzOTZWUGR5YVpRUFlQMmJoS3FxNWliQTlyaG05UDNUSk1ydmZs?=
 =?utf-8?B?RHd0eHBLTVlLY01ycWtWdnkrYkozYjdEMUduM0U3MEpFREtsaTdoK1M4UWFG?=
 =?utf-8?B?Skd5UmlPa1NKeVdkejIvcDZPVXlZWFhDMTFsdlNnYU9lcEIrbWVKblRQaHBK?=
 =?utf-8?B?VDVMamZGOVJUQjZKSVdNKzd5YmZWcDcrVWZFZ1JTWCtMRkQycElZWU5hNldy?=
 =?utf-8?B?N2lUemNvNjNyS0V6NWYvYUFJTTVXWmZ2YTBpaGI4Z3MweWplcWhVdkdEU0dV?=
 =?utf-8?B?YUdtZE9NTjZuMHZ0M015WHJjdS9oY2dJSllHTlhFb05oc3RUclNaeEN3c3dK?=
 =?utf-8?B?c1crSW9oY3Z0MWd2Q29SSWVoRnpZZ0NyZUZyTG1FeWlNY0JmT1VtaC83Y2N5?=
 =?utf-8?B?UU5ZSGRZOHNubEhjT2VoZWZZR21ZN2h3S0pZeGdxRTF1eHM4b1RCRlZ2Rm41?=
 =?utf-8?B?bDR0WlpKRXhPQVBuSVhlMGoydElmcmhNNmwxR09rSGhROGlhbEg1bUxlTldR?=
 =?utf-8?B?NHp5YWNWVFoxV3ZsSG1CdUFLaWl4SWRlbTgwczdWcUUrdnE3cVhCcTZmcU9X?=
 =?utf-8?B?ZTBZRy9vVjdYaDlFTFkvaEg5bjgyRTUvUmJuNjFuL0tHNndxNmdvVkRRTHFQ?=
 =?utf-8?B?RjVaUkpKUnFJdU1zRnVCTS9XQzIyRWpRUk8xUk5tL2pDNGh1d2R6dDJhdGN5?=
 =?utf-8?B?eWtFMG9BSXJLY1RPZ2lzSis2VW42SVQ3SXUvZGtYZzFVeEpuVS9KNHZ6eVZO?=
 =?utf-8?B?M1NWMFFuc1J0SEZTQXBzVEJ3Zkx0NjdjWFRUbXc3UjJFbFVyTW9mRFRWMEF2?=
 =?utf-8?B?ZXZaaXRSM0hRaU0wYThYWllkd0Z6SWE2VWhMYWZBYVNTKzBMSHFQdVVhcSs0?=
 =?utf-8?B?Yzk5SVdzdFc1S3NhZUJDRFNzYVllSVBES1ZZRnFkV3phY1dTQ2lzcHE3eGJy?=
 =?utf-8?B?UjBEaUdYNDVQaU1QVVpUUE1mSmRXWElXM0ZINlU3SVUzRXpJblU0SzZtdUt5?=
 =?utf-8?B?bFhYTmlqZXRGblFJajYyUnRRb21WaHhIRmRSRzd3VkdwK1piSUNsaEFUSS9p?=
 =?utf-8?B?L0RJRHl2K1ZUMlpvbU9pdVcxWEM5YnZKcFB2ejQ4ZjgrTjZQb3JvZnhDUm9B?=
 =?utf-8?B?WXpGbW5oMEJXWXZlT0tmL2ptTEdxcWNnOEE1blE0WTZWSTJwRlI4STVDcU9j?=
 =?utf-8?Q?8rDx19Ebw+uafOeLqFnep61VRP3sqMMlqn4UU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 06 Nov 2024 13:01:49.7293
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5af805f0-100b-416c-1fce-08dcfe632d8a
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7443

--8323329-540673888-1730898107=:89051
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8BIT

On Tue, 5 Nov 2024, Andrew Cooper wrote:
> Something has changed recently in the Github Actions environment and the
> golang metapacakge resolves to something that no longer exists:
> 
>   https://github.com/xen-project/xen/actions/runs/11539340171/job/32120834909
> 
> Update metadata before installing, which fixes things.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Example dry run with this fix:
> 
>   https://github.com/andyhhp/xen/actions/runs/11692180675/job/32560954258
> ---
>  .github/workflows/coverity.yml | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
> index 984636eb4635..a6c2819b0a24 100644
> --- a/.github/workflows/coverity.yml
> +++ b/.github/workflows/coverity.yml
> @@ -12,6 +12,7 @@ jobs:
>      steps:
>      - name: Install build dependencies
>        run: |
> +        sudo apt-get update
>          sudo apt-get install -y \
>            build-essential \
>            git-core \
> -- 
> 2.39.5
> 
--8323329-540673888-1730898107=:89051--


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:15:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830944.1246065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ft2-0000dZ-5A; Wed, 06 Nov 2024 13:15:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830944.1246065; Wed, 06 Nov 2024 13:15: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 1t8ft1-0000cf-UM; Wed, 06 Nov 2024 13:15:51 +0000
Received: by outflank-mailman (input) for mailman id 830944;
 Wed, 06 Nov 2024 13:15: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8ft0-0000Zv-L1
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:15:50 +0000
Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com
 [2a00:1450:4864:20::144])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1f913a9-9c3f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:13:24 +0100 (CET)
Received: by mail-lf1-x144.google.com with SMTP id
 2adb3069b0e04-539f1292a9bso7697688e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:07:48 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6ae615sm21785875e9.8.2024.11.06.05.06.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:06: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: f1f913a9-9c3f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxNDQiLCJoZWxvIjoibWFpbC1sZjEteDE0NC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYxZjkxM2E5LTljM2YtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk4ODkzLjk5NDcwNSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730898392; x=1731503192; 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=K0Wmxp+X0d8KRimyktl9WakzvrvZ8qqvwU0jRtgqs7s=;
        b=iByM5UnDJ4sti2aMDQsDEnWdgCmhJ0p2wLPpO63qw3yuCXIm+wczCKr8G1jW3jAnra
         r734FesZqX/iYHWsueMvua3xjOO9aJaaQ0W3R3xNFCNmhwKHvwSFikQEcBNeds367iXO
         oG4HKjpmUo30melzN6MakglQYbTRgZFkblCeM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730898392; x=1731503192;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=K0Wmxp+X0d8KRimyktl9WakzvrvZ8qqvwU0jRtgqs7s=;
        b=Cm6EEKYW2uOlOK5Jl6DikENLtGEVRPhSWm+acsYIqGHKD17dxw2bRpDS8FnY62famj
         6i4mZmCBVR1h70lxec6UyMONgjWoSsRUw0RFbIFC0hl6P77n0Y6+z9M4qNM3yyVuyntb
         z1hzKg4bBxr1ZnayaqVwoWCs3QwQ2rMZgvaVQ8DYdt3V1Rdd0jYuM0VV+gz0nSd4ZtkT
         xw2D9csF1nLrpgMeXLtWUfBSwyfEvkWS2XIw83+QNUvmpUSoISZcG9gJqCaNm5vpijw+
         fFKfUwOj2j7nxcy7bbmbdrl01d/2GSV8m+ktou6ZF++Aadp7yYbkZGZSLepgiralQTq5
         lFEA==
X-Gm-Message-State: AOJu0YwgpA6g/0E/vMoLA36ycWWhztFNjuj3VNmPgreacmPC0zQs2HXi
	VC13Rj96L8+vA70VEI6CqAqt17B7SM3aHayWZgWz/XbDsTlIf5DpAOewQxnVroVy9rOlo+vF3eK
	iyiuCEw==
X-Google-Smtp-Source: AGHT+IF6Fqam+2yIIUN2Q0MVd8Q6BiDLRSGvBIEl/NP7+yLY0PieDzwN/Iw020fIhLIerZptg99bRQ==
X-Received: by 2002:a05:6512:23a9:b0:539:f619:b459 with SMTP id 2adb3069b0e04-53b348cb0e0mr19364854e87.17.1730898392026;
        Wed, 06 Nov 2024 05:06:32 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v3 1/3] x86/boot: Fix intermediate file names to generate 32 bit code
Date: Wed,  6 Nov 2024 13:06:18 +0000
Message-Id: <20241106130620.1928109-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
References: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The "base" and "offset" definition were inverted, "base" file
should be the files without offsets applied while "offset" should
have the offsets applied.
Also update an old usage of "final" to "apply offset" to make
more clear and consistent (in former commit messages the "final"
term was used instead of "offset").

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Anthony was right, it was the opposite
---
 xen/arch/x86/boot/Makefile      | 6 +++---
 xen/arch/x86/boot/build32.lds.S | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index e102bd8c70..5f832c5896 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -44,7 +44,7 @@ text_gap := 0x010200
 text_diff := 0x408020
 
 $(obj)/build32.base.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff)
-$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) -DFINAL
+$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) -DAPPLY_OFFSET
 $(obj)/build32.base.lds $(obj)/build32.offset.lds: $(src)/build32.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
 
@@ -75,10 +75,10 @@ cmd_combine = \
     $(PYTHON) $(srctree)/tools/combine_two_binaries.py \
               --gap       $(text_gap) \
               --text-diff $(text_diff) \
-              --script    $(obj)/build32.offset.lds \
+              --script    $(obj)/build32.base.lds \
               --bin1      $(obj)/built-in-32.base.bin \
               --bin2      $(obj)/built-in-32.offset.bin \
-              --map       $(obj)/built-in-32.offset.map \
+              --map       $(obj)/built-in-32.base.map \
               --exports   cmdline_parse_early,reloc,reloc_trampoline32 \
               --output    $@
 
diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index f20fc18977..9b29f0184f 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -15,7 +15,7 @@
  * with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifdef FINAL
+#ifndef APPLY_OFFSET
 # undef GAP
 # define GAP 0
 # define MULT 0
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:15:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830945.1246072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ft2-0000nH-GS; Wed, 06 Nov 2024 13:15:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830945.1246072; Wed, 06 Nov 2024 13:15: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 1t8ft2-0000l5-BT; Wed, 06 Nov 2024 13:15:52 +0000
Received: by outflank-mailman (input) for mailman id 830945;
 Wed, 06 Nov 2024 13:15: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8ft1-0000Zv-L5
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:15:51 +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 ca6ef5a1-9c3f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:13:24 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5c941623a5aso1557787a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:07:48 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: ca6ef5a1-9c3f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNhNmVmNWExLTljM2YtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk4OTA4LjExNjE2Nywic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730898325; x=1731503125; 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=IYRtBXHtmMvAiHP0ZMkvKUBKJ4wJh4GIX8aEfCSEVfs=;
        b=iIb5vJMsQu7OXrYkPhL6fGYhQx5GRBIzsK26f9HeB5F0n7myYvdeZR4cWGAi0x3vLG
         cGeUEVcOT/CkSG2dsLVnhLeNPszQp91MX8uIKKQlX5VU4owg7rDXUMvBpIe7a1YaOp9i
         FryP5E6liflgBbAV5bqj9OR1y68OqFKN3+0lY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730898325; x=1731503125;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=IYRtBXHtmMvAiHP0ZMkvKUBKJ4wJh4GIX8aEfCSEVfs=;
        b=cr1nVcTD7NlePOnx5+vtH0GAgCM6vO756kDoSGLL1R9WJ2jvkg1Zqe2Alw2gn9tpZP
         tRGCvhy5B+C1IKk1m5k/3FsRlYwoWDV1ewUpsOKzO6PhEweq1Nc3XTKWgPgDk9OyEEUD
         Kskov8AD2U8Fa/xDrcL295wzQfPqW9/twbaUZlN6DMFecKnNzuTb5JmMmO1bhyvfPjwv
         HMecqmsLtlv6IsaOwOZU1e+3QdoH2WHs+veLmwcOYkvwPaS3OnZVld5G1z4HMHaf5xpk
         hPpTpFG2XRnKZ3KlCXlcTfqINSLcOQD2RZw46eIFilLprHfSptCsnE/pGqqWf6rzA2jH
         qNNg==
X-Gm-Message-State: AOJu0YxFR4rdFMp/Q/ssVGXYGyJ3Q1JzIsfcFXnAXCy0lOmYDJ+HhCk7
	mjMjnSGt7HqqS63nTSq4Rd1ntSQB2BJcbDC6KEvkwtqbmc2EXDTdfd+VOaPuxdxKVpkKTQt9G87
	lI/k=
X-Google-Smtp-Source: AGHT+IHC79vPV0iv5YoF1GyY6qEaluGz1BR00EHejTbobHaPynygyuJW4BnXPK14tPmiRf2U37Lm5A==
X-Received: by 2002:a05:6402:2684:b0:5c9:85e8:ec8c with SMTP id 4fb4d7f45d1cf-5cef550779cmr3077911a12.6.1730898325515;
        Wed, 06 Nov 2024 05:05:25 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 5/6] CI: Refresh the Debian 12 cppcheck container
Date: Wed,  6 Nov 2024 13:05:06 +0000
Message-ID: <f1045ca6fffee47fea8380424ae432d152c79b46.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1730743077.git.javi.merino@cloud.com>
References: <cover.1730743077.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework the container to build and run cppcheck as a normal user.  User
heredocs for readability and use apt-get --no-install-recommends to
keep the size down.

Changed the libpcre3-dev dependency to libpcre3, as the -dev package
is only needed for building, not for running.

With the cleanups, the size of the container is reduced from 882MB to
782MB.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---
 .../debian/12-arm64v8-cppcheck.dockerfile     | 79 +++++++++++++++++++
 .../build/debian/bookworm-cppcheck.dockerfile | 54 -------------
 automation/gitlab-ci/build.yaml               | 12 +--
 automation/scripts/containerize               |  2 +-
 4 files changed, 86 insertions(+), 61 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile
 delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile

diff --git a/automation/build/debian/12-arm64v8-cppcheck.dockerfile b/automation/build/debian/12-arm64v8-cppcheck.dockerfile
new file mode 100644
index 000000000000..21c006e74f2e
--- /dev/null
+++ b/automation/build/debian/12-arm64v8-cppcheck.dockerfile
@@ -0,0 +1,79 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:bookworm AS builder
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CPPCHECK_VERSION=2.7
+
+# dependencies for cppcheck build
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    apt-get update
+    DEPS=(
+        build-essential
+        ca-certificates
+        curl
+        libpcre3-dev
+        python-is-python3
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+RUN useradd --home /build --create-home user
+
+WORKDIR /build
+USER user
+
+# cppcheck release build (see cppcheck readme.md)
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    curl -fsSL https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz | tar xvz
+    cd cppcheck-"$CPPCHECK_VERSION"
+
+    MAKE_OPTS=(
+        MATCHCOMPILER=yes
+        DESTDIR=/build/out
+        FILESDIR="/usr/share/cppcheck"
+        HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
+    )
+    make install -j$(nproc) "${MAKE_OPTS[@]}"
+EOF
+
+FROM --platform=linux/arm64/v8 debian:bookworm
+COPY --from=builder /build/out/usr/bin/cppcheck /usr/bin/cppcheck
+COPY --from=builder /build/out/usr/share/cppcheck /usr/share/cppcheck
+
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+# dependencies for cppcheck analysis including Xen-only build/cross-build
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+    DEPS=(
+        bison
+        build-essential
+        python-is-python3
+        libpcre3
+        flex
+        gcc-arm-linux-gnueabihf
+        gcc-x86-64-linux-gnu
+    )
+    apt-get --yes --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile b/automation/build/debian/bookworm-cppcheck.dockerfile
deleted file mode 100644
index fe4cd4a1aaab..000000000000
--- a/automation/build/debian/bookworm-cppcheck.dockerfile
+++ /dev/null
@@ -1,54 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm AS builder
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV CPPCHECK_VERSION=2.7
-ENV USER root
-
-# dependencies for cppcheck build
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        curl \
-        build-essential \
-        python-is-python3 \
-        libpcre3-dev
-
-RUN mkdir /build
-WORKDIR /build
-
-# cppcheck release build (see cppcheck readme.md)
-RUN curl -fsSLO https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz && \
-    tar xvzf "$CPPCHECK_VERSION".tar.gz && \
-    cd cppcheck-"$CPPCHECK_VERSION" && \
-    make install -j$(nproc) \
-        MATCHCOMPILER=yes \
-        FILESDIR=/usr/share/cppcheck \
-        HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
-
-FROM --platform=linux/arm64/v8 debian:bookworm
-COPY --from=builder /usr/bin/cppcheck /usr/bin/cppcheck
-COPY --from=builder /usr/share/cppcheck /usr/share/cppcheck
-
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# dependencies for cppcheck analysis including Xen-only build/cross-build
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        python-is-python3 \
-        libpcre3-dev \
-        flex \
-        bison \
-        gcc-arm-linux-gnueabihf \
-        gcc-x86-64-linux-gnu \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 3f87187443e2..57b013334b6c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -492,26 +492,26 @@ yocto-qemux86-64:
 
 # Cppcheck analysis jobs
 
-debian-bookworm-gcc-cppcheck:
+debian-12-x86_64-gcc-cppcheck:
   extends: .gcc-x86-64-cross-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CROSS_COMPILE: /usr/bin/x86_64-linux-gnu-
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm32-cppcheck:
+debian-12-arm32-gcc-cppcheck:
   extends: .gcc-arm32-cross-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf-
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm64-cppcheck:
+debian-12-arm64-gcc-cppcheck:
   extends: .gcc-arm64-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index c9988bfe927d..e5502c81a759 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -38,7 +38,7 @@ case "_${CONTAINER}" in
     _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:12-arm64v8-arm32-gcc" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
-    _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
+    _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:15:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830943.1246059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ft1-0000aJ-Qh; Wed, 06 Nov 2024 13:15:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830943.1246059; Wed, 06 Nov 2024 13:15: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 1t8ft1-0000aC-Nw; Wed, 06 Nov 2024 13:15:51 +0000
Received: by outflank-mailman (input) for mailman id 830943;
 Wed, 06 Nov 2024 13:15: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8fsz-0000Zv-VZ
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:15:50 +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 f2813688-9c3f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:13:24 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-431695fa98bso52326685e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:07:48 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6ae615sm21785875e9.8.2024.11.06.05.06.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:06: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: f2813688-9c3f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYyODEzNjg4LTljM2YtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk4OTEwLjIyMDcxLCJzZW5kZXIiOiJmcmVkaWFuby56aWdsaW9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730898393; x=1731503193; 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=9RoSBfLejw4Kcn3H7vZdus13EaC1lB3WlrWWJRCZVH0=;
        b=ID41hzumXzLTv0l1N8kGFeugR5diwB+PC+Vlg8hXY8q3aqurp2Ux1+FR6JBkCGFRvq
         14EqxIC2U0ajsPcBATnK9+MqqjOe+8hlYaFpewuDozwIPhd4ZVoOl5HtQeuA1SGqbwXr
         TNlwMpi9G0QotMB5Toi4p503AN/uiK5VCuCaE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730898393; x=1731503193;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9RoSBfLejw4Kcn3H7vZdus13EaC1lB3WlrWWJRCZVH0=;
        b=Sk6YS8qDeNFltMOLEVoUdljTeIiywo8QJr7sgSwUdxoYG8ZRkUrwtnI4fzqGCWuzIu
         Bl4TDiXUe8zUXkklH3+bEwSMOs0/ECJtUaMpkvNW0wCWr7PRxJndOCb7xSLg4Uvpke9l
         JsWhzbQJsD2FoGg8637SC3Nynfv/4l0v4TzOj4CZ3VQ/s3obpcteN1ZoXOwZU61Wt87Z
         wRk/dTK+Rtl5phqp/dAm9kWlQNoehiHwcQydHWDqJ/UnkNzFjyrgf5ct1pPgvYlgLGLT
         Dyd0xP9wNO0x4vsqlOC0o4ygZ/+rI/AtJnAhL8DY4vaqHpwrfUA6Y6sxVZhRToonVrXZ
         2PYQ==
X-Gm-Message-State: AOJu0YytL6EHAzG56LbViKL5nRQOwG04dLKL5bcJm4Kkd+Qkr8VO/ikS
	j1qjoKuxPJmHRA+v6k1rUW/7eUcQQXpt0eYILVVSp5117l1caAcqMUuxn1ZqJaJADl8zccUvkEZ
	C59A=
X-Google-Smtp-Source: AGHT+IHl8SNz+vXul5B+T/K1yfYzQ7WCfeo1q0YW4/izx/tc4fDc7sq1uqFZ2b2EHSAAKLJJ0/pPNw==
X-Received: by 2002:a05:600c:3586:b0:431:4c14:abf4 with SMTP id 5b1f17b1804b1-4319acac8dbmr368763935e9.14.1730898393076;
        Wed, 06 Nov 2024 05:06:33 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 2/3] x86/boot: Uses nm command instead of map file to get symbols
Date: Wed,  6 Nov 2024 13:06:19 +0000
Message-Id: <20241106130620.1928109-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
References: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

combine_two_binaries.py only understands GNU LD's format, and does
not work with LLVM's LLD.

Use nm command instead to get list of symbols; specifically
BSD format as it does not truncate symbols names like sysv one.

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/Makefile        |  3 ++-
 xen/tools/combine_two_binaries.py | 19 ++++++++++++-------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 5f832c5896..d457876659 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -66,7 +66,8 @@ $(obj)/built-in-32.tmp.o: $(obj32)
 # If possible we use --orphan-handling=error option to make sure we account
 # for all possible sections from C code.
 $(obj)/built-in-32.%.bin: $(obj)/build32.%.lds $(obj)/built-in-32.tmp.o
-	$(LD32) $(orphan-handling-y) -N -T $< -Map $(@:bin=map) -o $(@:bin=o) $(filter %.o,$^)
+	$(LD32) $(orphan-handling-y) -N -T $< -o $(@:bin=o) $(filter %.o,$^)
+	$(NM) -p --format=bsd $(@:bin=o) > $(@:bin=map)
 	$(OBJCOPY) -j .text -O binary $(@:bin=o) $@
 	rm -f $(@:bin=o)
 
diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_binaries.py
index 447c0d3bdb..581e57cbc0 100755
--- a/xen/tools/combine_two_binaries.py
+++ b/xen/tools/combine_two_binaries.py
@@ -29,7 +29,7 @@ parser.add_argument('--text-diff', dest='text_diff',
 parser.add_argument('--output', dest='output',
                     help='Output file')
 parser.add_argument('--map', dest='mapfile',
-                    help='Map file to read for symbols to export')
+                    help='Map file (NM) to read for symbols to export')
 parser.add_argument('--exports', dest='exports',
                     help='Symbols to export')
 parser.add_argument('--section-header', dest='section_header',
@@ -65,15 +65,20 @@ exports = []
 if args.exports is not None:
     exports = dict([(name, None) for name in args.exports.split(',')])
 
-# Parse mapfile, look for ther symbols we want to export.
+# Parse mapfile, look for symbols we want to export.
 if args.mapfile is not None:
-    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
+    exports["dummy_start"] = None
     for line in open(args.mapfile):
-        m = symbol_re.match(line)
-        if not m or m.group(2) not in exports:
+        parts = line.split()
+        if len(parts) != 3:
             continue
-        addr = int(m.group(1), 16)
-        exports[m.group(2)] = addr
+        addr, sym_type, sym = parts
+        if sym_type.upper() == 'T' and sym in exports:
+            exports[sym] = int(addr, 16)
+    if exports["dummy_start"] != 0:
+        raise Exception("dummy_start symbol expected to be present and 0")
+    del exports["dummy_start"]
+
 for (name, addr) in exports.items():
     if addr is None:
         raise Exception("Required export symbols %s not found" % name)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:21:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830953.1246088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8fyP-0003qI-3i; Wed, 06 Nov 2024 13:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830953.1246088; Wed, 06 Nov 2024 13:21: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 1t8fyP-0003qB-12; Wed, 06 Nov 2024 13:21:25 +0000
Received: by outflank-mailman (input) for mailman id 830953;
 Wed, 06 Nov 2024 13:21: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8fyN-0003pd-Jl
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:21:23 +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 5e6d0da9-9c40-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 14:13:55 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5cef772621eso793349a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:13:55 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17fa28fsm273957966b.171.2024.11.06.05.09.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 05:09: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: 5e6d0da9-9c40-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVlNmQwZGE5LTljNDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwODk4OTQ2LjgwNzkwNywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730898574; x=1731503374; 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=ZiJEoy4S4zfP9l8hKKq7xUt2X81zeaOKe3onGjZ2fFQ=;
        b=d1uH4pbr3PXicDAE20eWXnOjHc3DbXuKXVS64KDtx7S3xA0iuy6iuzeEQc7kO2jwhY
         ghZmbBkIXavU5rR4kSyYKQhGjZViihih0vjqSEBeBfjptQ3QNO5owdA0lSXf9fwWc9wH
         fCjWiD2VJSt2BG3d3omNxA3EpsUCI5++7IajU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730898574; x=1731503374;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZiJEoy4S4zfP9l8hKKq7xUt2X81zeaOKe3onGjZ2fFQ=;
        b=q3zci3HxfF655zvH1oP9Jn5a4I8R0Ct6f8ZNSeJlSYVUdbFYTxWhxmuQrkjXGKaZLb
         oNl4WzzKz8dckPbqRP305ne4NhkDc1W4I6nki+QNQUQ1x8h96VkF+K5zFDFGsi/j+eO4
         uSV+YSGEMrpkPxqfoxgPofcTDAYo1dykolJzvUe7N56Ni1o7OrJhLQmSdolJ7CE1m5yi
         nhVVegoMz0jVtUEDp+mU4hWAAkDW1jN1Ppq/A2l1teNQJcMHHOnBB0ig8ihutsFRiqsg
         Y1fN3Iq+oYJuL6nuTLxmL1Yev6R+PeidvjfiweJTcsXNPdd0oymxuYRf5NmlewgeF3nV
         WDQg==
X-Forwarded-Encrypted: i=1; AJvYcCXnfUCzIR4XM1dypzGB9ZrQ8x7OCR9KalE63ffq2d5UKwysK7Da0hGY6RwTNQBFRbdEXaKH0upKjjI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPwJzw7SFI4plfu/gPXsB3lrxMJGkUO+4Hzmav6cym4KsuYbZT
	XzpLtAP/CQJmlfShqDs7hS85HhD3khdnBC8345lp1SEt8PhVS+PNxVVWwxByL+yNmzohy4xpu+P
	X
X-Google-Smtp-Source: AGHT+IHuNVZLhuAGYmICAETFUALPV5YaVRscdMg2hw7MaUrRTje5P8go+3xYtGi0PTBOYLuSL7gEeg==
X-Received: by 2002:a17:907:9813:b0:a9a:1253:4d81 with SMTP id a640c23a62f3a-a9e50b56a34mr1846669066b.47.1730898574364;
        Wed, 06 Nov 2024 05:09:34 -0800 (PST)
Message-ID: <82e5c2e3-9875-42d6-88e7-9127d89412d2@citrix.com>
Date: Wed, 6 Nov 2024 13:09:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] x86/boot: Uses nm command instead of map file to
 get symbols
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
 <20241106130620.1928109-3-frediano.ziglio@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241106130620.1928109-3-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/11/2024 1:06 pm, Frediano Ziglio wrote:
> combine_two_binaries.py only understands GNU LD's format, and does
> not work with LLVM's LLD.
>
> Use nm command instead to get list of symbols; specifically
> BSD format as it does not truncate symbols names like sysv one.
>
> Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Much nicer.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


Looks like the series is ready to go in now, so I'll take it right away
to unblock FreeBSD testing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:28:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:28:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830968.1246113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8g56-0005Aa-DY; Wed, 06 Nov 2024 13:28:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830968.1246113; Wed, 06 Nov 2024 13:28: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 1t8g56-00059E-99; Wed, 06 Nov 2024 13:28:20 +0000
Received: by outflank-mailman (input) for mailman id 830968;
 Wed, 06 Nov 2024 13:28: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8g55-0004n0-8I
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:28:19 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2411518e-9c42-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:28:05 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-539fb49c64aso9394617e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:27:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: 2411518e-9c42-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI0MTE1MThlLTljNDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk5Njg2LjA2Mywic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730899335; x=1731504135; 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=xApgKSTK5wMGuq0ugpp4Wf2jL7mq6KYsKPKyawXSsjg=;
        b=W2DonOCCjVI2fXhSAk98znyTWVQHWnuj+d7IKo8DoDIlP85QHa9fqOYVowKp8Leoft
         fqxOVp9mq/+44By+/NyfOslvKE1/4pa6aIU3LhuuyzLSM8SrkQgGZr19hHWWS4aKjAtw
         L8K1Ms4faEkstuqGGmYH7VS/KMAPxnk2pwPnE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730899335; x=1731504135;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xApgKSTK5wMGuq0ugpp4Wf2jL7mq6KYsKPKyawXSsjg=;
        b=R5GtYSBcIXRkO9ljx7HZEQwhnFP9N70ajiM0+NRRl9O/Mm1IZvwvkQhN4K2JVopMtR
         o21CSUKVJzEdfpiX7dKqr6GMu3etpCszHGtvozSy+FGAKun5aopuv7wPlT10Au1xAoJz
         GVO5/z3ilL6JAa46zKydNO/at3hJTBvIC9jXrkA9Rt5Xg7DahIOZaEOzYOquxJ1QPo3j
         9xNHJDAgN4tK193DUZ575u41ZXO2YvEAykF/5G/LiDPgNIVyYfgZYQPK68uFoiAWzE1Z
         W2/5LxYFYAGrswGj56o4/au34uenotyTgUlDHDWEMI0hSlSqnN7Nm0qEbT8aLcJVNvLh
         F6ow==
X-Gm-Message-State: AOJu0YypalNiirDkAGb2beygMBf2EV9L4/CUZ70OCiPqkOt14qOUc6o0
	EmU+n2sKQRMPoB9w/XHQSAQUr9o3GlnB3FSu0av6BKHCl2G/9Xai4vs0Bj4ApLhgIan1DiA4Om0
	M2Is=
X-Google-Smtp-Source: AGHT+IGwqfbuEDxDxzQYcIO3SNDIjB5+YEi1B2xdbeRSCXdCh7ZM/aARZRROlbUc9hICKNlDxIN88A==
X-Received: by 2002:a05:6402:2547:b0:5c8:8290:47bf with SMTP id 4fb4d7f45d1cf-5ceb92aad89mr20048288a12.21.1730898323761;
        Wed, 06 Nov 2024 05:05:23 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 2/6] CI: Refresh the Debian 12 x86_32 container
Date: Wed,  6 Nov 2024 13:05:03 +0000
Message-ID: <6ca245790b8bd2469e82dd54ff3cedd12096369c.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1730743077.git.javi.merino@cloud.com>
References: <cover.1730743077.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework the container to be non-root, use heredocs for readability, and
use apt-get --no-install-recommends to keep the size down.  Rename the
job to x86_32, to be consistent with XEN_TARGET_ARCH and the
naming scheme of all the other CI jobs:
${VERSION}-${ARCH}-${BUILD_NAME}

Remove build dependencies for building QEMU, as we don't do it since
e305256e69b1 ("CI: Stop building QEMU in general").

Remove build dependencies for the documentation as we don't have to
build it for every single arch.

This reduces the size of the container from 2.22GB to 1.32Gb.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---
 automation/build/debian/12-x86_32.dockerfile  | 50 +++++++++++++++++++
 .../build/debian/bookworm-i386.dockerfile     | 50 -------------------
 automation/gitlab-ci/build.yaml               |  8 +--
 automation/scripts/containerize               |  2 +-
 4 files changed, 55 insertions(+), 55 deletions(-)
 create mode 100644 automation/build/debian/12-x86_32.dockerfile
 delete mode 100644 automation/build/debian/bookworm-i386.dockerfile

diff --git a/automation/build/debian/12-x86_32.dockerfile b/automation/build/debian/12-x86_32.dockerfile
new file mode 100644
index 000000000000..b1cabf8d2f6d
--- /dev/null
+++ b/automation/build/debian/12-x86_32.dockerfile
@@ -0,0 +1,50 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/i386 debian:bookworm
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+# build depends
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        pkg-config
+        wget
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+    )
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
+ENTRYPOINT ["linux32"]
diff --git a/automation/build/debian/bookworm-i386.dockerfile b/automation/build/debian/bookworm-i386.dockerfile
deleted file mode 100644
index 66fa3121c54e..000000000000
--- a/automation/build/debian/bookworm-i386.dockerfile
+++ /dev/null
@@ -1,50 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/i386 debian:bookworm
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-ENTRYPOINT ["linux32"]
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python3-dev \
-        python3-setuptools \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libc6-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        apt-transport-https \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index d64a7e40f3f1..871beb70e157 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -573,15 +573,15 @@ debian-12-x86_64-gcc-randconfig:
     CONTAINER: debian:12-x86_64
     RANDCONFIG: y
 
-debian-bookworm-32-clang-debug:
+debian-12-x86_32-clang-debug:
   extends: .clang-x86-32-build-debug
   variables:
-    CONTAINER: debian:bookworm-i386
+    CONTAINER: debian:12-x86_32
 
-debian-bookworm-32-gcc-debug:
+debian-12-x86_32-gcc-debug:
   extends: .gcc-x86-32-build-debug
   variables:
-    CONTAINER: debian:bookworm-i386
+    CONTAINER: debian:12-x86_32
 
 fedora-40-x86_64-gcc:
   extends: .gcc-x86-64-build
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index ea6e1a9b18f4..d72c22c103ff 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -35,7 +35,7 @@ case "_${CONTAINER}" in
     _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;;
     _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;;
     _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;;
-    _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;;
+    _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:28:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:28:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830967.1246109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8g56-00057i-6A; Wed, 06 Nov 2024 13:28:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830967.1246109; Wed, 06 Nov 2024 13:28: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 1t8g56-000571-2U; Wed, 06 Nov 2024 13:28:20 +0000
Received: by outflank-mailman (input) for mailman id 830967;
 Wed, 06 Nov 2024 13:28: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8g54-0004n0-8J
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:28:18 +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 1e1650fa-9c42-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:28:05 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5c948c41edeso8522844a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:27:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: 1e1650fa-9c42-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFlMTY1MGZhLTljNDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk5Njg2LjA1MzY3Miwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730899325; x=1731504125; 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=yFLoWciaTmA2tQ6Z12/KNgBqEpyVG6EHnXcJYicMIAo=;
        b=ZcY17TFlFNHuatDqqq9CapqBhFa4m0db7LQ5wOBOdH81xtkyeU34M1q7z+0Fh6Kk4Z
         FjyB8FP94VFA4HoND41bnJWoy/ZM1oLOSp3O0oTjhCUhaLwD0Bc/LxJSznbFltErKV5M
         ElR44BgqEtcUUHsgdiDLoA7sSRwzwhMRLRgkk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730899325; x=1731504125;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=yFLoWciaTmA2tQ6Z12/KNgBqEpyVG6EHnXcJYicMIAo=;
        b=GmMktjt5g9hwEfnT2MXFp1aYeYXEUT66XS+p/qKYyRrvSUvuGC69tT5o+2uWq1kqDu
         RXXtLrLqh2NVHIWIYncj7SMQiJ3ioDWDCOFbZI1Tut6KDCTHTw55T6aIOksx0lyijl7v
         Jawo+B+dMmeDAiiuv/WLzmA69J0rDQcYpUiDuH9zqH24u+7Io7vx6OlnaPTYzkWn5Kiu
         eGnVn+AtpMbCXv6zA1orrQaWXbaEyImQuGKp62JachtVBWkrlZMVopHp7hbQmJLR9Jjz
         xi2ILks6i2mDq5R8LynTR88RhbOXLVO2ZoXrFyR/id6Je2zL2QuUwBlWyn8aRyTLzFYU
         pTpg==
X-Gm-Message-State: AOJu0YyyF4ekcwD1H3eNySUEMcXTtQTI4wPqF8+j8unmbKzHMiXpGa1+
	/jWKFW19TddURo5oKgJfX40NgTps18oNBl9ZuzTjLc22ecEJlgquvx77PfMIqlSASM+rQe2ocsV
	Mv2Y=
X-Google-Smtp-Source: AGHT+IFhF5eJ1NCqMhvlN94ZlOwt1rMoNRRphNR21v/J1QzPTaI6ZOEdpOtEdZciApMMzp9zUggwow==
X-Received: by 2002:a2e:bc21:0:b0:2fa:d354:1435 with SMTP id 38308e7fff4ca-2fdebd4588bmr100964861fa.0.1730898322608;
        Wed, 06 Nov 2024 05:05:22 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 0/6] automation: Refresh the remaining Debian containers
Date: Wed,  6 Nov 2024 13:05:01 +0000
Message-ID: <cover.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This is v2 of [0], to refresh the remaining Debian 12 containers. The
containers now use heredocs for readability, and use
"apt-get --no-install-recommends" to minimize the installation of
unnecessary packages.  All containers except Debian 12 arm64 and
x86_64 run as a normal user.  Debian 12 arm64 and x86_64 have been
kept running as root as Stefano asked for it as it would break the
xilinx workers that are currently in flux.

The updated containers have been tested in
https://gitlab.com/xen-project/people/javimerino/xen/-/pipelines/1526520801

Changes since v1[0]:
  - In containerfiles, repeat the "LABEL" intruction for each label and
    avoid the backslash at the end of lines.
  - Use ENV VAR=value consistently in dockerfiles.
  - Dropped the patch that moved the Debian 12 arm64 and x86_64
    containers to run as a normal user.
  - Added a patch to drop the "-y" in "apt-get update"
  - Move libnl-3-dev to the libxl section in the Debian 12 x86_64
    dockerfile.
  - Add missing requires for libxenguest dombuilder in the Debian 12
    x86_64 dockerfile
  - Move the expect dependency to the section for tests

[0] https://lore.kernel.org/xen-devel/cover.1729760501.git.javi.merino@cloud.com

Javi Merino (6):
  CI: Refresh the Debian 12 x86_64 container
  CI: Refresh the Debian 12 x86_32 container
  CI: Refresh the Debian 12 arm64 container
  CI: Refresh the Debian 12 arm32 cross compile container
  CI: Refresh the Debian 12 cppcheck container
  CI: Don't use -y with apt-get update

 automation/build/debian/11-ppc64le.dockerfile |  2 +-
 automation/build/debian/11-riscv64.dockerfile |  2 +-
 .../debian/12-arm64v8-arm32-gcc.dockerfile    | 28 +++++++
 .../debian/12-arm64v8-cppcheck.dockerfile     | 79 +++++++++++++++++++
 automation/build/debian/12-arm64v8.dockerfile | 68 ++++++++++++++++
 automation/build/debian/12-ppc64le.dockerfile |  2 +-
 automation/build/debian/12-riscv64.dockerfile |  2 +-
 automation/build/debian/12-x86_32.dockerfile  | 50 ++++++++++++
 .../build/debian/12-x86_64-gcc-ibt.dockerfile |  4 +-
 automation/build/debian/12-x86_64.dockerfile  | 71 +++++++++++++++++
 .../bookworm-arm64v8-arm32-gcc.dockerfile     | 24 ------
 .../build/debian/bookworm-arm64v8.dockerfile  | 55 -------------
 .../build/debian/bookworm-cppcheck.dockerfile | 54 -------------
 .../build/debian/bookworm-i386.dockerfile     | 50 ------------
 automation/build/debian/bookworm.dockerfile   | 57 -------------
 .../build/ubuntu/16.04-x86_64.dockerfile      |  2 +-
 .../build/ubuntu/18.04-x86_64.dockerfile      |  2 +-
 .../build/ubuntu/20.04-x86_64.dockerfile      |  2 +-
 .../build/ubuntu/22.04-x86_64.dockerfile      |  2 +-
 .../build/ubuntu/24.04-x86_64.dockerfile      |  2 +-
 automation/gitlab-ci/build.yaml               | 68 ++++++++--------
 automation/gitlab-ci/test.yaml                | 32 ++++----
 automation/scripts/containerize               | 10 +--
 23 files changed, 362 insertions(+), 306 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8-arm32-gcc.dockerfile
 create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile
 create mode 100644 automation/build/debian/12-arm64v8.dockerfile
 create mode 100644 automation/build/debian/12-x86_32.dockerfile
 create mode 100644 automation/build/debian/12-x86_64.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile
 delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile
 delete mode 100644 automation/build/debian/bookworm-i386.dockerfile
 delete mode 100644 automation/build/debian/bookworm.dockerfile

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:28:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:28:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830962.1246098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8g4t-0004nD-PE; Wed, 06 Nov 2024 13:28:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830962.1246098; Wed, 06 Nov 2024 13: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 1t8g4t-0004n6-Mb; Wed, 06 Nov 2024 13:28:07 +0000
Received: by outflank-mailman (input) for mailman id 830962;
 Wed, 06 Nov 2024 13: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8g4s-0004n0-Ox
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:28:06 +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 1521756b-9c42-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:26:52 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9a4031f69fso1062501566b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:24:25 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: 1521756b-9c42-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE1MjE3NTZiLTljNDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk5NjE3LjYxODE3NCwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730899310; x=1731504110; 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=45oT54b/H6Gj3avxI/jIkIoWZCdO/tkO5E9TuzQK8WA=;
        b=baN70awTY8HtKCcUi2j937ez9nkWPnYU2E0WeVLQC2NBZDBGH6ClmQqsjCYDay9K/b
         uP1TeWvRIOy8qlb5CfSqftI5/QzndzS5xqu3v1BGQ5aqU/WtlQRv4ikKn8J7PDaIn3Cw
         jYmL5V0eCSe9Om4sVsGMXO6WaaKTPn37nzdP8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730899310; x=1731504110;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=45oT54b/H6Gj3avxI/jIkIoWZCdO/tkO5E9TuzQK8WA=;
        b=nreV8ndLUu4tfgWfYPCnnHfy0t0Vx9aHJdM9wW7P+J4mBlj1pnRG0/26BgBWZ+GWWL
         cj/I6gZ3+F6gtXMnan0hoOoqeoEwNk8ppZnYazsBwM1C5ahlDC4SGNNyL0NDJ59nqQsM
         0lVkffBkq+Xxqqk7ljZ87fBJe/8SQhcOOOP0R6ZCGQWyU90/JqSb9gWS9cZmn1XkdhhN
         vcB6VPWAGPzFYXWYYCo+tTuN1RDdpkX2f4VyZGtutUA2pQztwQqTfGNigQ/uoQwzIE0p
         JtSxmQvuTWzYmT4Sk35JPt7N2wxhYVAcG45APrS8OJ5tqlrt+FVLdWJERVWLqmVGwlFq
         FTjw==
X-Gm-Message-State: AOJu0Yw94UnDrre/Ai0gfkzfKSe7WznjKQSUznJe5ycGEyKJFlO0Jocj
	R0sZuPxfpfIMbsli1eMc1d9VZE5HSq6kx9HHvtLs0R2m3P4aeCkYsw0RSUkUHMGlVXI2wh2T64l
	mmTk=
X-Google-Smtp-Source: AGHT+IGaj5tsjSQdTpTziZ4I4VRkmICS/rKn3GSGax+Rv5p9Rgm1e9BDeOKl0uwbR2ReE9mJNcIl9A==
X-Received: by 2002:a05:6402:5203:b0:5ca:14e5:b685 with SMTP id 4fb4d7f45d1cf-5cbbf888bcemr29942500a12.3.1730898324303;
        Wed, 06 Nov 2024 05:05:24 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 3/6] CI: Refresh the Debian 12 arm64 container
Date: Wed,  6 Nov 2024 13:05:04 +0000
Message-ID: <ad9bcd46c85e738eccb2c51b42ae7d9d0d02fc5d.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1730743077.git.javi.merino@cloud.com>
References: <cover.1730743077.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework the container to use heredocs for readability and use
apt-get --no-install-recommends to keep the size down.  Rename the job
to debian-12-arm64-* to follow the naming scheme of all the other CI
jobs.

This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB.

The container is left running the builds and tests as root to avoid
breaking the xilinx runners.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---
 automation/build/debian/12-arm64v8.dockerfile | 68 +++++++++++++++++++
 .../build/debian/bookworm-arm64v8.dockerfile  | 55 ---------------
 automation/gitlab-ci/build.yaml               |  8 +--
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/containerize               |  2 +-
 5 files changed, 75 insertions(+), 62 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8.dockerfile

diff --git a/automation/build/debian/12-arm64v8.dockerfile b/automation/build/debian/12-arm64v8.dockerfile
new file mode 100644
index 000000000000..fa53eb174862
--- /dev/null
+++ b/automation/build/debian/12-arm64v8.dockerfile
@@ -0,0 +1,68 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:bookworm
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+# build depends
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    apt-get update
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        flex
+        # Flask
+        checkpolicy
+
+        # Tools (general)
+        git-core
+        libext2fs-dev
+        libfdt-dev
+        libglib2.0-dev
+        libpixman-1-dev
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        liblzma-dev
+        liblzo2-dev
+        libzstd-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Golang bindings
+        golang-go
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # for test phase, qemu-smoke-* jobs
+        busybox-static
+        ca-certificates
+        cpio
+        curl
+        device-tree-compiler
+        expect
+        u-boot-qemu
+        # for imagebuilder
+        file
+        u-boot-tools
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER root
+WORKDIR /build
diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile b/automation/build/debian/bookworm-arm64v8.dockerfile
deleted file mode 100644
index da8ae7512589..000000000000
--- a/automation/build/debian/bookworm-arm64v8.dockerfile
+++ /dev/null
@@ -1,55 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python3-dev \
-        python3-setuptools \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        libfdt-dev \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        # for test phase, qemu-smoke-* jobs
-        u-boot-qemu \
-        u-boot-tools \
-        device-tree-compiler \
-        curl \
-        cpio \
-        busybox-static \
-        expect \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 871beb70e157..8ee1049d857c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -411,15 +411,15 @@ debian-bookworm-gcc-arm32-debug-earlyprintk:
 
 # Arm builds
 
-debian-bookworm-gcc-arm64:
+debian-12-arm64-gcc:
   extends: .gcc-arm64-build
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
 
-debian-bookworm-gcc-debug-arm64:
+debian-12-arm64-gcc-debug:
   extends: .gcc-arm64-build-debug
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
 
 alpine-3.18-gcc-arm64:
   extends: .gcc-arm64-build
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 5b89cfa33cf8..3a4d0eb7e15d 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -17,7 +17,7 @@
 .qemu-arm64:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
     LOGFILE: qemu-smoke-arm64.log
   artifacts:
     paths:
@@ -30,7 +30,7 @@
 .qemu-arm32:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:bookworm-arm64v8
+    CONTAINER: debian:12-arm64v8
     LOGFILE: qemu-smoke-arm32.log
   artifacts:
     paths:
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index d72c22c103ff..1b75c8d93724 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -37,7 +37,7 @@ case "_${CONTAINER}" in
     _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;;
     _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
-    _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
+    _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:28:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830977.1246129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8g5M-0006DI-LV; Wed, 06 Nov 2024 13:28:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830977.1246129; Wed, 06 Nov 2024 13:28: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 1t8g5M-0006DB-Hs; Wed, 06 Nov 2024 13:28:36 +0000
Received: by outflank-mailman (input) for mailman id 830977;
 Wed, 06 Nov 2024 13:28: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8g5L-0004n0-Rw
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:28:35 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c73b1891-9c42-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:28:08 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2fb59652cb9so60267211fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:28:05 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17fa28fsm273957966b.171.2024.11.06.05.09.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 05:09: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: c73b1891-9c42-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzEiLCJoZWxvIjoibWFpbC1sajEteDIzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM3M2IxODkxLTljNDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk5NzA3LjE0OTY0NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730899609; x=1731504409; 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=ZiJEoy4S4zfP9l8hKKq7xUt2X81zeaOKe3onGjZ2fFQ=;
        b=nABD46OEz2k4LhwRueSiRzXxc0gM9FTvCUbRXM+g4wDMrchA4iXjUz3B9vkYWer3fq
         k5iegaIxw2mM24cCH2fAtvcpxap+Nzq5VIa9OiG3cQGZXiuyp8G3d1ENUSnMNTcOF4hY
         wYinAzf0rG1c9+VIGv+8r6l/tUmXxbauAe94s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730899609; x=1731504409;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZiJEoy4S4zfP9l8hKKq7xUt2X81zeaOKe3onGjZ2fFQ=;
        b=SPhi7JT/hMPW1eGUwHb76qVImfK99K+quWKKMCXDEND08bgvBYHGmU/naPmA7cnNPv
         mJzHW482ae1hOkcidBL2xBI6dEHT+cXqW7WpfPggAvX7ln3Y5ZXEfJpsn+LHuIw2LwCr
         MJaiWgtVj5Gm58NKFnm3CU/T88jW5+ubQ0AWG53g9eCwtJGCrOEX79KjHu6KSMfa/A9F
         dJflt98rCkYJ6aOUHX6sau2R8PxbmcpJeIpenizzmUMF1fJmIx3J+pI4aVU40TbB/8TS
         T98NNHr4QuYhyDbTQMwnqgEEEG5Je/BqJaU3r631CkgmM2Vzgj5j5ZmsczhQmdnFECnI
         f/BQ==
X-Forwarded-Encrypted: i=1; AJvYcCVP/FAP7T02rrEwgSmq4xkjzxPohc+0s+slKoLeXEdlKOXN5YGOi78D8H3zJolx1VYaSITbwav0svQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysVBAoxhLKvokv7pJgihx+GnZlnCHeF1jHTFNYBVs22jihntDR
	uXMErcNfaMM8lvZDkout68Bp+UgJZ5Aai6NuIls9nvy7kr6qX4CntsnSl/rsnXiozLBKUucrfb9
	q
X-Google-Smtp-Source: AGHT+IHuNVZLhuAGYmICAETFUALPV5YaVRscdMg2hw7MaUrRTje5P8go+3xYtGi0PTBOYLuSL7gEeg==
X-Received: by 2002:a17:907:9813:b0:a9a:1253:4d81 with SMTP id a640c23a62f3a-a9e50b56a34mr1846669066b.47.1730898574364;
        Wed, 06 Nov 2024 05:09:34 -0800 (PST)
Message-ID: <82e5c2e3-9875-42d6-88e7-9127d89412d2@citrix.com>
Date: Wed, 6 Nov 2024 13:09:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] x86/boot: Uses nm command instead of map file to
 get symbols
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
 <20241106130620.1928109-3-frediano.ziglio@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241106130620.1928109-3-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/11/2024 1:06 pm, Frediano Ziglio wrote:
> combine_two_binaries.py only understands GNU LD's format, and does
> not work with LLVM's LLD.
>
> Use nm command instead to get list of symbols; specifically
> BSD format as it does not truncate symbols names like sysv one.
>
> Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Much nicer.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


Looks like the series is ready to go in now, so I'll take it right away
to unblock FreeBSD testing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:28:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.830979.1246139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8g5S-0006e2-SU; Wed, 06 Nov 2024 13:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 830979.1246139; Wed, 06 Nov 2024 13:28: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 1t8g5S-0006dv-Pc; Wed, 06 Nov 2024 13:28:42 +0000
Received: by outflank-mailman (input) for mailman id 830979;
 Wed, 06 Nov 2024 13:28: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=DrBW=SB=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1t8g5R-0004n0-IY
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:28:41 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2084.outbound.protection.outlook.com [40.107.96.84])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b15995f6-9c42-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:28:11 +0100 (CET)
Received: from SJ0PR03CA0360.namprd03.prod.outlook.com (2603:10b6:a03:39c::35)
 by SA1PR12MB7443.namprd12.prod.outlook.com (2603:10b6:806:2b7::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Wed, 6 Nov
 2024 13:01:50 +0000
Received: from MWH0EPF000971E6.namprd02.prod.outlook.com
 (2603:10b6:a03:39c:cafe::6b) by SJ0PR03CA0360.outlook.office365.com
 (2603:10b6:a03:39c::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.18 via Frontend
 Transport; Wed, 6 Nov 2024 13:01:49 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000971E6.mail.protection.outlook.com (10.167.243.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 13:01:49 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 6 Nov
 2024 07:01:48 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Nov
 2024 07:01:48 -0600
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) 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 via Frontend Transport; Wed, 6 Nov 2024 07:01: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: b15995f6-9c42-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjQwLjEwNy45Ni44NCIsImhlbG8iOiJOQU0wMi1TTjEtb2JlLm91dGJvdW5kLnByb3RlY3Rpb24ub3V0bG9vay5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImIxNTk5NWY2LTljNDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwODk5NzExLjIyMTYzOSwic2VuZGVyIjoic3RlZmFuby5zdGFiZWxsaW5pQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DOkX/dGQ1d+xLr8P8IMY3/UMydE58Jvq9rUFKEQ1TCKxMfvzjuJXLC+D9UuFND6sgmyQjRWaaBnmG63DjqEOMV59EBNoAnKZCo5UH4SMn5ye3BBz7oUm9kxy3GgB9+aOm5aTXeMJ4vNXitYcejo75y/s3mAv8aVa+SmgovkAd+4+uo/yc5xnNRskenk4kREUf5Npzc3ve1DoClZOLxU2PBmCBf03QzjFAXmQfeO82ECAbx4piOevTlUeCqkG50bhXISZy2we39ui7GGGSBWXpazPxJcQAjVEwISxfNUV7yXVvVcaF1xU4G6ErMPEE/oYk+XVbedl+wwsnAlBzTZEew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XT11z8kAJY3Xk8WK3qUJgge4WxIHZoc7gqKAeAzEMX0=;
 b=e49fZlIOBrS2zOMAnq76/5zv12v0YziDP0CAtbiYGEkoyz/63zAwmqbXqrUaUfR/RaOQa+e5ZI35/kFuMGK7W9BBElIbEdrbQwwoOf8AYw1XRZrvkTbpaqyLyR1cMZiMAeYR2eDky4l8DXIUPF38D8HD0sHho1iffVLGzXd6ASUDtmUR84S2+1lVbAt6vnOE14CgCrCJeMkA4aXni6gWd7ggCImYQeRUO/aeAuMqR2m91Gyx/MDLdaYLfr6+fPxoZhuPxTnEN1Bw06cNZKByC5WVQYLSJTG8vy1D7clf+hicvozschTQDOyu9vNTXjNHAe/UaeL5HIxU/rQH7jYAUQ==
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=XT11z8kAJY3Xk8WK3qUJgge4WxIHZoc7gqKAeAzEMX0=;
 b=xfc5haTJLPnzJLulq2yAQfY4lRsO/NHqDSAw4DnPbTK+djxE9OAQtlwImB3t4ZAJJBPPVLlYT2R91fUEjo4Ml3y6RhW4cYjoQPKXaKkFGC6mUsWsku4YsK8Mh/QHNN7fROWbl25RIM+x67FACmf+UZ9vc4/6H6mLgE/Bb51SwmY=
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=SATLEXMB03.amd.com; pr=C
Date: Wed, 6 Nov 2024 13:01:27 +0000
From: Stefano Stabellini <stefano.stabellini@amd.com>
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>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] CI: Fix package installation for Coverity run
In-Reply-To: <20241105204603.3412857-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411061301140.89051@ubuntu-linux-20-04-desktop>
References: <20241105204603.3412857-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-540673888-1730898107=:89051"
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E6:EE_|SA1PR12MB7443:EE_
X-MS-Office365-Filtering-Correlation-Id: 5af805f0-100b-416c-1fce-08dcfe632d8a
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?VHlHcUhhYlJPSE45VHZJT2ZLcUhFd2xPSTltV0g3RkFIbVh1L0ZEMStxZUFh?=
 =?utf-8?B?TW1xNm1IMWRiWHRvaFJLZ25MZmNyZ3JDT2orM0pvRFBDbVQzSWk3ZnpzSGRU?=
 =?utf-8?B?OEZsYVpWQ0R2R0hFYzZkU1pnTW4zY2J0M3V2WmozdUFQWHU1SXNWeWJ1ZkhY?=
 =?utf-8?B?dkN5NzdyU0hycE8wR3NIYWRFVVc1ZW9Ca2ZUM25VMHNRMUVOay9EeUhyUTFs?=
 =?utf-8?B?S2NvVmZTZXhVWjZ5SkRNQ1BqRm81ZVV3dnVvcEFBNjNxY2RoNHVZbEU3bWEw?=
 =?utf-8?B?R0t0T2UxTWh5TTR1WVBLQ0tvb0Y2UHBReCs1bitTcU1TUjI5bFIrMjlac1hy?=
 =?utf-8?B?d1IyR0s0ZFdBbVBBcE0vc0tmaCtHUkFuQ3VFKzQzS1lpdGw3NTZkaEhxY0Vq?=
 =?utf-8?B?VmJJcHV4Q2lOS2hhK2NzMVFrMGhsK1g2c2N5Y2FyNEtxaDUrLzkwd20yU2Ir?=
 =?utf-8?B?TjVseERTb202bUVmOU9DK0J1emFIZFM2YnFSMWg2dVlWdnRCbmVzSVF0eVU1?=
 =?utf-8?B?YWNVRkJ1N1JyaUJPU1A0U0hiR1N2M3pPV0xhcnB3aHpUdlNmeDRyWklkOW1r?=
 =?utf-8?B?SGpCZ3FqQUVzOTZWUGR5YVpRUFlQMmJoS3FxNWliQTlyaG05UDNUSk1ydmZs?=
 =?utf-8?B?RHd0eHBLTVlLY01ycWtWdnkrYkozYjdEMUduM0U3MEpFREtsaTdoK1M4UWFG?=
 =?utf-8?B?Skd5UmlPa1NKeVdkejIvcDZPVXlZWFhDMTFsdlNnYU9lcEIrbWVKblRQaHBK?=
 =?utf-8?B?VDVMamZGOVJUQjZKSVdNKzd5YmZWcDcrVWZFZ1JTWCtMRkQycElZWU5hNldy?=
 =?utf-8?B?N2lUemNvNjNyS0V6NWYvYUFJTTVXWmZ2YTBpaGI4Z3MweWplcWhVdkdEU0dV?=
 =?utf-8?B?YUdtZE9NTjZuMHZ0M015WHJjdS9oY2dJSllHTlhFb05oc3RUclNaeEN3c3dK?=
 =?utf-8?B?c1crSW9oY3Z0MWd2Q29SSWVoRnpZZ0NyZUZyTG1FeWlNY0JmT1VtaC83Y2N5?=
 =?utf-8?B?UU5ZSGRZOHNubEhjT2VoZWZZR21ZN2h3S0pZeGdxRTF1eHM4b1RCRlZ2Rm41?=
 =?utf-8?B?bDR0WlpKRXhPQVBuSVhlMGoydElmcmhNNmwxR09rSGhROGlhbEg1bUxlTldR?=
 =?utf-8?B?NHp5YWNWVFoxV3ZsSG1CdUFLaWl4SWRlbTgwczdWcUUrdnE3cVhCcTZmcU9X?=
 =?utf-8?B?ZTBZRy9vVjdYaDlFTFkvaEg5bjgyRTUvUmJuNjFuL0tHNndxNmdvVkRRTHFQ?=
 =?utf-8?B?RjVaUkpKUnFJdU1zRnVCTS9XQzIyRWpRUk8xUk5tL2pDNGh1d2R6dDJhdGN5?=
 =?utf-8?B?eWtFMG9BSXJLY1RPZ2lzSis2VW42SVQ3SXUvZGtYZzFVeEpuVS9KNHZ6eVZO?=
 =?utf-8?B?M1NWMFFuc1J0SEZTQXBzVEJ3Zkx0NjdjWFRUbXc3UjJFbFVyTW9mRFRWMEF2?=
 =?utf-8?B?ZXZaaXRSM0hRaU0wYThYWllkd0Z6SWE2VWhMYWZBYVNTKzBMSHFQdVVhcSs0?=
 =?utf-8?B?Yzk5SVdzdFc1S3NhZUJDRFNzYVllSVBES1ZZRnFkV3phY1dTQ2lzcHE3eGJy?=
 =?utf-8?B?UjBEaUdYNDVQaU1QVVpUUE1mSmRXWElXM0ZINlU3SVUzRXpJblU0SzZtdUt5?=
 =?utf-8?B?bFhYTmlqZXRGblFJajYyUnRRb21WaHhIRmRSRzd3VkdwK1piSUNsaEFUSS9p?=
 =?utf-8?B?L0RJRHl2K1ZUMlpvbU9pdVcxWEM5YnZKcFB2ejQ4ZjgrTjZQb3JvZnhDUm9B?=
 =?utf-8?B?WXpGbW5oMEJXWXZlT0tmL2ptTEdxcWNnOEE1blE0WTZWSTJwRlI4STVDcU9j?=
 =?utf-8?Q?8rDx19Ebw+uafOeLqFnep61VRP3sqMMlqn4UU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 06 Nov 2024 13:01:49.7293
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5af805f0-100b-416c-1fce-08dcfe632d8a
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7443

--8323329-540673888-1730898107=:89051
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8BIT

On Tue, 5 Nov 2024, Andrew Cooper wrote:
> Something has changed recently in the Github Actions environment and the
> golang metapacakge resolves to something that no longer exists:
> 
>   https://github.com/xen-project/xen/actions/runs/11539340171/job/32120834909
> 
> Update metadata before installing, which fixes things.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Example dry run with this fix:
> 
>   https://github.com/andyhhp/xen/actions/runs/11692180675/job/32560954258
> ---
>  .github/workflows/coverity.yml | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
> index 984636eb4635..a6c2819b0a24 100644
> --- a/.github/workflows/coverity.yml
> +++ b/.github/workflows/coverity.yml
> @@ -12,6 +12,7 @@ jobs:
>      steps:
>      - name: Install build dependencies
>        run: |
> +        sudo apt-get update
>          sudo apt-get install -y \
>            build-essential \
>            git-core \
> -- 
> 2.39.5
> 
--8323329-540673888-1730898107=:89051--


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:37:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:37:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831011.1246149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gDX-0000cw-Rq; Wed, 06 Nov 2024 13:37:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831011.1246149; Wed, 06 Nov 2024 13:37: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 1t8gDX-0000cp-Oe; Wed, 06 Nov 2024 13:37:03 +0000
Received: by outflank-mailman (input) for mailman id 831011;
 Wed, 06 Nov 2024 13:37: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8gDV-0000bw-Ut
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:37:02 +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 314d25a0-9c44-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:36:57 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5c957d8bce2so3557746a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:36:57 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: 314d25a0-9c44-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxNGQyNWEwLTljNDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwMjE3LjIxNDM4OCwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900216; x=1731505016; 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=xH5wKOdOvZjOHcy7mDqmxoiWP49Ll4vPM7f/D8pUsAo=;
        b=kxZFrGawbEmJISROR9uICQpUJo5kAVQwA0Y7ck3m1ruEgmqlTE+jmMpxTKzfPvva0w
         b5O6vHPI2PWycK8bObLiX1au7v9fhH12O8W6YL89qKivZbuzX+oezgg7jdZnb/9rZRy3
         rSNUr2qnrvO+NcS9dvYvq0zdCEKJDowt+pa94=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900216; x=1731505016;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xH5wKOdOvZjOHcy7mDqmxoiWP49Ll4vPM7f/D8pUsAo=;
        b=Zw1KeoAwvutOSbAO30ezBSKcw7D3LYufDXu+x4xS2toTL4F+2rZIwiNZDIejgyPide
         OJs2spBvLLofcpMzh7cdrdgk2fKbmCdLCTywM5hnlHoNXoq07pbh0pNK+lOdvmg6XyOR
         wL0GHL9xPQwlIbmZ9bB6TGD9FEOrMO3o4lfa1C9NSsDN4PIq6Qr9s7jQMQhE4+nLTxlk
         89NHezcuLugEDDkyLZPc2Gb0+EFwtwCSo5rBEUQFNWl9JcTmHqEZYU7mTU1jh/kMGNgj
         BfOzqaP2Jwm278HFBp49CYKjnNBUCBtxa5Ofe+mR6/EijWEKEmvaFnimFoOxseOOV1Ic
         Z8XA==
X-Gm-Message-State: AOJu0Yx4D/mgnyWPHkKhwVO594wfdd/RpHdqSe4K73D8AGEudMvFUNrZ
	dqytiBD8OyiHbaXFzPBkLQl/swRGCohTghtSLf5LxSlHJm9KuuPpr69uCGZETylhO7JZqurRST/
	nH2c=
X-Google-Smtp-Source: AGHT+IGlJSWig6UQewzo2rPWl/JG425oYkgK6QnRb6acnpheKGd4wy9ZgYUxeTukBaspLTcc/lFywA==
X-Received: by 2002:a05:6402:280a:b0:5c9:45b5:6077 with SMTP id 4fb4d7f45d1cf-5ceb935bc94mr20003942a12.23.1730898325010;
        Wed, 06 Nov 2024 05:05:25 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN PATCH v2 4/6] CI: Refresh the Debian 12 arm32 cross compile container
Date: Wed,  6 Nov 2024 13:05:05 +0000
Message-ID: <5ffd2e88ebb473bbc6a9c89fb9cb63355822ec36.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1730743077.git.javi.merino@cloud.com>
References: <cover.1730743077.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework the container to user heredocs for readability and use
apt-get --no-install-recommends to keep the size down.  Rename the CI
jobs to debian-12-arm32-<variant> to follow the naming scheme of all
the other CI jobs.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---
 .../debian/12-arm64v8-arm32-gcc.dockerfile    | 28 +++++++++++++++++++
 .../bookworm-arm64v8-arm32-gcc.dockerfile     | 24 ----------------
 automation/gitlab-ci/build.yaml               | 20 ++++++-------
 automation/gitlab-ci/test.yaml                | 14 +++++-----
 automation/scripts/containerize               |  2 +-
 5 files changed, 46 insertions(+), 42 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8-arm32-gcc.dockerfile
 delete mode 100644 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile

diff --git a/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile
new file mode 100644
index 000000000000..01756bfcbf72
--- /dev/null
+++ b/automation/build/debian/12-arm64v8-arm32-gcc.dockerfile
@@ -0,0 +1,28 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:bookworm
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
+
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+    DEPS=(
+        bison
+        build-essential
+        flex
+        gcc-arm-linux-gnueabihf
+    )
+    apt-get --yes --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
deleted file mode 100644
index 95b3f0428372..000000000000
--- a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-ENV CROSS_COMPILE /usr/bin/arm-linux-gnueabihf-
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        flex \
-        bison \
-        git \
-        gcc-arm-linux-gnueabihf \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 8ee1049d857c..3f87187443e2 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -371,39 +371,39 @@ debian-12-riscv64-gcc-debug:
 
 # Arm32 cross-build
 
-debian-bookworm-gcc-arm32:
+debian-12-arm32-gcc:
   extends: .gcc-arm32-cross-build
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm32-debug:
+debian-12-arm32-gcc-debug:
   extends: .gcc-arm32-cross-build-debug
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm32-randconfig:
+debian-12-arm32-gcc-randconfig:
   extends: .gcc-arm32-cross-build
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
     RANDCONFIG: y
 
-debian-bookworm-gcc-arm32-debug-staticmem:
+debian-12-arm32-gcc-debug-staticmem:
   extends: .gcc-arm32-cross-build-debug
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
       CONFIG_EXPERT=y
       CONFIG_UNSUPPORTED=y
       CONFIG_STATIC_MEMORY=y
 
-debian-bookworm-gcc-arm32-debug-earlyprintk:
+debian-12-arm32-gcc-debug-earlyprintk:
   extends: .gcc-arm32-cross-build-debug
   variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    CONTAINER: debian:12-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
       CONFIG_EARLY_UART_CHOICE_PL011=y
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 3a4d0eb7e15d..fa452ccf7a9e 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -414,7 +414,7 @@ qemu-smoke-dom0less-arm32-gcc:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32
+    - debian-12-arm32-gcc
 
 qemu-smoke-dom0less-arm32-gcc-debug:
   extends: .qemu-arm32
@@ -422,7 +422,7 @@ qemu-smoke-dom0less-arm32-gcc-debug:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug
+    - debian-12-arm32-gcc-debug
 
 qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
   extends: .qemu-arm32
@@ -430,7 +430,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug-staticmem
+    - debian-12-arm32-gcc-debug-staticmem
 
 qemu-smoke-dom0less-arm32-gcc-debug-gzip:
   extends: .qemu-arm32
@@ -438,7 +438,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-gzip:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug
+    - debian-12-arm32-gcc-debug
 
 qemu-smoke-dom0less-arm32-gcc-without-dom0:
   extends: .qemu-arm32
@@ -446,7 +446,7 @@ qemu-smoke-dom0less-arm32-gcc-without-dom0:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32
+    - debian-12-arm32-gcc
 
 qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
   extends: .qemu-arm32
@@ -454,7 +454,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug
+    - debian-12-arm32-gcc-debug
 
 qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
   extends: .qemu-arm32
@@ -462,7 +462,7 @@ qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
     - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE}
   needs:
     - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-debug-earlyprintk
+    - debian-12-arm32-gcc-debug-earlyprintk
 
 qemu-alpine-x86_64-gcc:
   extends: .qemu-x86-64
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 1b75c8d93724..c9988bfe927d 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -36,7 +36,7 @@ case "_${CONTAINER}" in
     _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;;
     _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;;
     _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
-    _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
+    _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:12-arm64v8-arm32-gcc" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
     _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:38:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:38:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831017.1246159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gEe-0001CI-4J; Wed, 06 Nov 2024 13:38:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831017.1246159; Wed, 06 Nov 2024 13:38: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 1t8gEe-0001CA-0y; Wed, 06 Nov 2024 13:38:12 +0000
Received: by outflank-mailman (input) for mailman id 831017;
 Wed, 06 Nov 2024 13:38: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8gEd-00015Z-Jy
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:38:11 +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 5b4d6f50-9c44-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:38:07 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9eaf93e40dso356109966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:38:07 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: 5b4d6f50-9c44-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjViNGQ2ZjUwLTljNDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwMjg3LjY5MTIwOCwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900287; x=1731505087; 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=peW5Y0BE/jL0vQFydq7zr9i7yr2PvZQXqorRemV3er4=;
        b=km+GOEriso1AppnQLbfz/Mop2QcCUkeD6SlPWqyuuQqPg3BXxFhaf2+2CVehTh4X+v
         38SnEpjZE3GgSdXkCoeiYuGfuwWgj4vyrkaQbdlaQYU2cLBmw7QcwXSMyki0/klwb9TG
         k2UihkbWIOJoMMlSKv7NUiKr1RfoUcxZERTLA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900287; x=1731505087;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=peW5Y0BE/jL0vQFydq7zr9i7yr2PvZQXqorRemV3er4=;
        b=R/dCREwzdSNh2I1gWAKCvGqb3nEMNMrrGtZDXkQ62IcLEkctP7rlpEk6muBmJMfEYI
         sKhXMwQXg3crb291UmnwIFRi9oO8qWDLg3z7pymGKc1/B8J+CdEVrXapmgkZNQteVBMK
         7zd6eTJltr9o9p4uRRm4d8K3zbi6kOcTwx/nNDmxXheAMpTlte0xFpFoaB7855MuKVp4
         NoaWE1v6YDWyuvsVkOA4rCBgO+3vJJn9mbQeKvY8j8wBlennrk7e0W/HdU8aw54OWBCg
         0uKnKPC6GWSDpTzvg8gLmW1spSgsmPsRCsCIe39Osx0iNbDo8L+xDZ+ho5Qmt11bDOIL
         l9gw==
X-Gm-Message-State: AOJu0YyE5ig0xu2FEAF7EngT44rJIo2VUaAJfIquqkjpL+HemV2aDE7V
	yKEDiir1ykPyHjl9VjRFFItdu2QEikSzq5l5Ln60MJNB6LPz4E5Vs9rztBnkhYFyo48PkJ5exF1
	QmoI=
X-Google-Smtp-Source: AGHT+IE4DeGUIKZP66PFcAsTbnGgrI+CzQUM2sfdqA9YjItR7oI4vwnPgzYyZ4Q2J7m6cPOM9oXRJw==
X-Received: by 2002:a2e:be20:0:b0:2fb:4951:172 with SMTP id 38308e7fff4ca-2fcbdf5f742mr181913701fa.2.1730898326619;
        Wed, 06 Nov 2024 05:05:26 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 6/6] CI: Don't use -y with apt-get update
Date: Wed,  6 Nov 2024 13:05:07 +0000
Message-ID: <67fbec9dd324802e1a1c5e3c38ae7853ede35e86.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1730743077.git.javi.merino@cloud.com>
References: <cover.1730743077.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

apt-get update refreshes the package lists.  -y doesn't do anything
here.  It is needed for "apt-get install" or "apt-get upgrade" but not
for apt-get update.  Drop it.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---
 automation/build/debian/11-ppc64le.dockerfile        | 2 +-
 automation/build/debian/11-riscv64.dockerfile        | 2 +-
 automation/build/debian/12-ppc64le.dockerfile        | 2 +-
 automation/build/debian/12-riscv64.dockerfile        | 2 +-
 automation/build/debian/12-x86_64-gcc-ibt.dockerfile | 4 ++--
 automation/build/ubuntu/16.04-x86_64.dockerfile      | 2 +-
 automation/build/ubuntu/18.04-x86_64.dockerfile      | 2 +-
 automation/build/ubuntu/20.04-x86_64.dockerfile      | 2 +-
 automation/build/ubuntu/22.04-x86_64.dockerfile      | 2 +-
 automation/build/ubuntu/24.04-x86_64.dockerfile      | 2 +-
 10 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/automation/build/debian/11-ppc64le.dockerfile b/automation/build/debian/11-ppc64le.dockerfile
index d846b670d02c..385a0a071db2 100644
--- a/automation/build/debian/11-ppc64le.dockerfile
+++ b/automation/build/debian/11-ppc64le.dockerfile
@@ -13,7 +13,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/debian/11-riscv64.dockerfile b/automation/build/debian/11-riscv64.dockerfile
index 1c99bc89ea1a..a55047c5019a 100644
--- a/automation/build/debian/11-riscv64.dockerfile
+++ b/automation/build/debian/11-riscv64.dockerfile
@@ -13,7 +13,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/debian/12-ppc64le.dockerfile b/automation/build/debian/12-ppc64le.dockerfile
index 1d5b486bb47f..da518aab4e10 100644
--- a/automation/build/debian/12-ppc64le.dockerfile
+++ b/automation/build/debian/12-ppc64le.dockerfile
@@ -13,7 +13,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/debian/12-riscv64.dockerfile b/automation/build/debian/12-riscv64.dockerfile
index 8d7233d6757d..bce8f1015f7c 100644
--- a/automation/build/debian/12-riscv64.dockerfile
+++ b/automation/build/debian/12-riscv64.dockerfile
@@ -13,7 +13,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/debian/12-x86_64-gcc-ibt.dockerfile b/automation/build/debian/12-x86_64-gcc-ibt.dockerfile
index 3ce60e7d9466..9b5d11fca648 100644
--- a/automation/build/debian/12-x86_64-gcc-ibt.dockerfile
+++ b/automation/build/debian/12-x86_64-gcc-ibt.dockerfile
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
 RUN <<EOF
 #!/bin/bash
     set -e
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         bison
@@ -62,7 +62,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/ubuntu/16.04-x86_64.dockerfile b/automation/build/ubuntu/16.04-x86_64.dockerfile
index d8617bfade5e..9cc8ca89e8e0 100644
--- a/automation/build/ubuntu/16.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/16.04-x86_64.dockerfile
@@ -11,7 +11,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/ubuntu/18.04-x86_64.dockerfile b/automation/build/ubuntu/18.04-x86_64.dockerfile
index 336697ad954b..aefe52125a22 100644
--- a/automation/build/ubuntu/18.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/18.04-x86_64.dockerfile
@@ -11,7 +11,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/ubuntu/20.04-x86_64.dockerfile b/automation/build/ubuntu/20.04-x86_64.dockerfile
index 39fb297519ee..1ee20a13ac6b 100644
--- a/automation/build/ubuntu/20.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/20.04-x86_64.dockerfile
@@ -11,7 +11,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/ubuntu/22.04-x86_64.dockerfile b/automation/build/ubuntu/22.04-x86_64.dockerfile
index 6aa3c4d1881d..a9a9b84930fb 100644
--- a/automation/build/ubuntu/22.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/22.04-x86_64.dockerfile
@@ -11,7 +11,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
diff --git a/automation/build/ubuntu/24.04-x86_64.dockerfile b/automation/build/ubuntu/24.04-x86_64.dockerfile
index c46d152abf10..2005723b31ad 100644
--- a/automation/build/ubuntu/24.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/24.04-x86_64.dockerfile
@@ -11,7 +11,7 @@ RUN <<EOF
 
     useradd --create-home user
 
-    apt-get -y update
+    apt-get update
 
     DEPS=(
         # Xen
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:38:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831022.1246169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gF2-0001nu-BX; Wed, 06 Nov 2024 13:38:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831022.1246169; Wed, 06 Nov 2024 13:38: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 1t8gF2-0001nl-8s; Wed, 06 Nov 2024 13:38:36 +0000
Received: by outflank-mailman (input) for mailman id 831022;
 Wed, 06 Nov 2024 13:38: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8gF1-00015Z-Mg
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:38:35 +0000
Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com
 [2a00:1450:4864:20::542])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a173c70-9c44-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:38:32 +0100 (CET)
Received: by mail-ed1-x542.google.com with SMTP id
 4fb4d7f45d1cf-5c9634c9160so7602446a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:38:32 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6ae615sm21785875e9.8.2024.11.06.05.06.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:06: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: 6a173c70-9c44-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1NDIiLCJoZWxvIjoibWFpbC1lZDEteDU0Mi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhMTczYzcwLTljNDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwMzEyLjUwNTE4OCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900312; x=1731505112; 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=K0Wmxp+X0d8KRimyktl9WakzvrvZ8qqvwU0jRtgqs7s=;
        b=Q/+/tKNRlFku5tE1acH0NcrtSXjsMNxEEgdBxGO/eO9lwoDhT8JGhGkT4J9wWzt//X
         ACC/QKR6qWo7Ehz4V1WOk35EBNFE4I4srgXxns7K+45J6s8Ikvu7rrbTCMZZaIKiXn/O
         gX9TmF37BtDAMh2FNZ3nv4YBwNbpkSQmZauEg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900312; x=1731505112;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=K0Wmxp+X0d8KRimyktl9WakzvrvZ8qqvwU0jRtgqs7s=;
        b=wJZyEDZfjUr2l0GcjVqXwh1v1ZLhzjxIC1kaDiFds3rrqq9SySI/slCn5N0CWS3OxM
         6cRdhNN5+X8oDkj/I0wArEWOK9DJaOTvvYfQSAkaiUlRai0lQ5EhPgGKkNE51rD0Mhux
         o8gZniXn+EBg2w7+aeitR8k3Nqcg0ZafSyUxPkD157GXX7CaxAbDkl6t0/egjF0ezg4C
         gELEC/MvHU/AEuIxQ/k6bbU+RbI7VV+JsCYyVhoyEh0DzNWKCVinvq3bJtsGONmY1DPu
         MedC2/Sa2ipj+SZP1H+X+GTVJ26vs5bmxomgsnYC+WZGOqnisboAQsIxM9YL+wHktkWC
         v24g==
X-Gm-Message-State: AOJu0YyLHkQJw9u0MYbDcbMUSxPsPhqBiqZy9oZRpjGbgeJOjgyNdhQ/
	0LdbhAuV2UcbRIO1583L/NgWyFUIrHTOenFYqYIC/7YjV47bGB+IA2IrLz+Eu9V2lxfSliq45VX
	q19OsPw==
X-Google-Smtp-Source: AGHT+IF6Fqam+2yIIUN2Q0MVd8Q6BiDLRSGvBIEl/NP7+yLY0PieDzwN/Iw020fIhLIerZptg99bRQ==
X-Received: by 2002:a05:6512:23a9:b0:539:f619:b459 with SMTP id 2adb3069b0e04-53b348cb0e0mr19364854e87.17.1730898392026;
        Wed, 06 Nov 2024 05:06:32 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v3 1/3] x86/boot: Fix intermediate file names to generate 32 bit code
Date: Wed,  6 Nov 2024 13:06:18 +0000
Message-Id: <20241106130620.1928109-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
References: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The "base" and "offset" definition were inverted, "base" file
should be the files without offsets applied while "offset" should
have the offsets applied.
Also update an old usage of "final" to "apply offset" to make
more clear and consistent (in former commit messages the "final"
term was used instead of "offset").

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Anthony was right, it was the opposite
---
 xen/arch/x86/boot/Makefile      | 6 +++---
 xen/arch/x86/boot/build32.lds.S | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index e102bd8c70..5f832c5896 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -44,7 +44,7 @@ text_gap := 0x010200
 text_diff := 0x408020
 
 $(obj)/build32.base.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff)
-$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) -DFINAL
+$(obj)/build32.offset.lds: AFLAGS-y += -DGAP=$(text_gap) -DTEXT_DIFF=$(text_diff) -DAPPLY_OFFSET
 $(obj)/build32.base.lds $(obj)/build32.offset.lds: $(src)/build32.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
 
@@ -75,10 +75,10 @@ cmd_combine = \
     $(PYTHON) $(srctree)/tools/combine_two_binaries.py \
               --gap       $(text_gap) \
               --text-diff $(text_diff) \
-              --script    $(obj)/build32.offset.lds \
+              --script    $(obj)/build32.base.lds \
               --bin1      $(obj)/built-in-32.base.bin \
               --bin2      $(obj)/built-in-32.offset.bin \
-              --map       $(obj)/built-in-32.offset.map \
+              --map       $(obj)/built-in-32.base.map \
               --exports   cmdline_parse_early,reloc,reloc_trampoline32 \
               --output    $@
 
diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index f20fc18977..9b29f0184f 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -15,7 +15,7 @@
  * with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifdef FINAL
+#ifndef APPLY_OFFSET
 # undef GAP
 # define GAP 0
 # define MULT 0
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:38:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831025.1246179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gFB-0002CV-JJ; Wed, 06 Nov 2024 13:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831025.1246179; Wed, 06 Nov 2024 13:38: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 1t8gFB-0002CO-Gk; Wed, 06 Nov 2024 13:38:45 +0000
Received: by outflank-mailman (input) for mailman id 831025;
 Wed, 06 Nov 2024 13:38: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8gFA-00015Z-Gv
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:38:44 +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 700c2d7b-9c44-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:38:42 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9a0ec0a94fso1066922166b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:38:42 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6ae615sm21785875e9.8.2024.11.06.05.06.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:06: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: 700c2d7b-9c44-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcwMGMyZDdiLTljNDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwMzIyLjQ5MzQ1Nywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900322; x=1731505122; 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=jNXAAQEeft4M3yHeAl+E+8ZpS3tKf0AXKURNXRVDvkI=;
        b=G9/wro57tjy1YNw9AEn5pnVIqz0EXLVPQ+FMEhiRYWriOYP6yfrVDyNyXD7nbZ27yz
         hLBHYDs83cdBhkcEw8c8lAVAjY5jehY4VC4ELdOPMzuvvzOwh3BOd2U7h8KbaI9+EUAr
         1utJOZepDYFTt44YgLrwmU1mQxtyVoypvBLv8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900322; x=1731505122;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jNXAAQEeft4M3yHeAl+E+8ZpS3tKf0AXKURNXRVDvkI=;
        b=vsn4LOgznxhBzUVTv0nheeWLhVt6JcET1lm7yB3BYTiscrpoa3bHlv0qF4s53fT055
         NexXQfdfoAZkpGznrtUEzgLMu+aHNkE6mdUChRBU+BO0OZQ9W2t5sFMaBxDtKJf73Uai
         VZ2viJHUKeS/RmqQG5GQo0UCwZoVKvDV1CQPM1JKk0R6QIglcaJH92SHNuWEodarlsJQ
         ENVEGa77Eng7d0bCQd+yGSxzhyw+npS2taqyx86Bide2Zb3MhcB5LceMjoMyjIZzpGJD
         bDFnci+XlW+MDP/xZxtFnYexmVvdZLyUVjzq1x4Lm8T4azxsI4tAg1K6hGiXpgrWYc+d
         GjKA==
X-Gm-Message-State: AOJu0Ywk8yLBok+KK1GDE3VIMG5APW/7+9oRj/23uS7kvkesl+a903A5
	wyxjoAMVpQ/EmIJUJSZcUgH/GXaQTjGo6HIhCXxFrN5jVikSufdeh/zbr0tQyBNDhLik24kQcly
	XSq4=
X-Google-Smtp-Source: AGHT+IHtwN3ieirDaOOPhRyRU6kaYSf9448q2ZSYS/K6+6OC8xNmi7RTqs+tpo0NOe79hlbipOhFxQ==
X-Received: by 2002:ac2:4a83:0:b0:533:44e7:1b2a with SMTP id 2adb3069b0e04-53d6bb3fad8mr6374380e87.40.1730898393970;
        Wed, 06 Nov 2024 05:06:33 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v3 3/3] x86/boot: Explicitly list .{sym,shstr,str}tab in build32.lds.S
Date: Wed,  6 Nov 2024 13:06:20 +0000
Message-Id: <20241106130620.1928109-4-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
References: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently, building with LLVM's LLD fails:

    ld -melf_i386_fbsd  --orphan-handling=error -N -T ...
    ld: error: <internal>:(.symtab) is being placed in '.symtab'
    ld: error: <internal>:(.shstrtab) is being placed in '.shstrtab'
    ld: error: <internal>:(.strtab) is being placed in '.strtab'
    gmake[11]: *** [arch/x86/boot/Makefile:69:
arch/x86/boot/built-in-32.base.bin] Error 1

This is a consequence of --orphan-handling, and it appears that Binutils
doesn't diagnose some orphaned sections even explicitly asked to do so.

List the sections explicitly.

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index 9b29f0184f..1e59732edd 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -66,6 +66,15 @@ SECTIONS
        *(.comment.*)
        *(.note.*)
   }
+  .shstrtab : {
+       *(.shstrtab)
+  }
+  .strtab : {
+       *(.strtab)
+  }
+  .symtab : {
+       *(.symtab)
+  }
   /* Dynamic linkage sections.  Collected simply so we can check they're empty. */
   .got : {
         *(.got)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:39:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:39:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831044.1246189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gGB-0003DE-2T; Wed, 06 Nov 2024 13:39:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831044.1246189; Wed, 06 Nov 2024 13:39: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 1t8gGA-0003D7-W5; Wed, 06 Nov 2024 13:39:46 +0000
Received: by outflank-mailman (input) for mailman id 831044;
 Wed, 06 Nov 2024 13:39: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8gG9-0003Cx-Eb
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:39:45 +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 93eb5d68-9c44-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:39:42 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-37d47b38336so5093344f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:39:42 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6ae615sm21785875e9.8.2024.11.06.05.06.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:06: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: 93eb5d68-9c44-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkzZWI1ZDY4LTljNDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwMzgyLjcyMTA5Mywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900382; x=1731505182; 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=9RoSBfLejw4Kcn3H7vZdus13EaC1lB3WlrWWJRCZVH0=;
        b=iZGUkX7BtDUqOw2+BfMNoVFcjs8zQzu5cuNEcEMphMpKYM6NKo4J6isqQNmSJjx7Vk
         lkHwkQuyGhi0qcZEMDcHHkNuEixyMWxp1Zv0epLeTaJzovr2b7LFd57B6daGMQ0LO7xG
         33HGICcxQkV3fEZ/jJaSUAi3/ZRDYQkgZivbc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900382; x=1731505182;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9RoSBfLejw4Kcn3H7vZdus13EaC1lB3WlrWWJRCZVH0=;
        b=wUo0fJkNf2luE425yiUExdKvYGyjX9ykwaaXKjeWdex3NkNuvP3mJ8T+esXkwtFtPc
         VaaEDIuLKThbs1xpFiF8QLJDfnTTYwsRw8jmge3VNiZsZ0LXxRge3nd/Mr8OOSlQX8dj
         a7T1gIsEp3wTzBsRqCr/NBaYU7Bp6jUIW3ltBqygbgrJDF/p72zX4++6kM8kpUlYfgHb
         HlHOeNAnYPlfHZBTF3Whf+d3p4n4k+Mln6m9VwxW7hxIh/c8y9bPYe1GnarfxV+/DSiP
         sQPI1nIk0XSMiSvHFH33JFDXEYjVcLVwNkhJGr6cozLPSMYCA75KiHwEL96gVtPnhOLj
         hr4Q==
X-Gm-Message-State: AOJu0YzT4rWXtZW3Y1S6rq+5DLaeKBhmv20RIlUosflQ6cxkBeivQ9+X
	nlflykXDtaRsZSKa5lsM1dQPlpyFoOk7kqohLrrU6equj12WRxr+8/JkZQNAL1JSiBXmLA7m+WI
	YYOw=
X-Google-Smtp-Source: AGHT+IHl8SNz+vXul5B+T/K1yfYzQ7WCfeo1q0YW4/izx/tc4fDc7sq1uqFZ2b2EHSAAKLJJ0/pPNw==
X-Received: by 2002:a05:600c:3586:b0:431:4c14:abf4 with SMTP id 5b1f17b1804b1-4319acac8dbmr368763935e9.14.1730898393076;
        Wed, 06 Nov 2024 05:06:33 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 2/3] x86/boot: Uses nm command instead of map file to get symbols
Date: Wed,  6 Nov 2024 13:06:19 +0000
Message-Id: <20241106130620.1928109-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
References: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

combine_two_binaries.py only understands GNU LD's format, and does
not work with LLVM's LLD.

Use nm command instead to get list of symbols; specifically
BSD format as it does not truncate symbols names like sysv one.

Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/Makefile        |  3 ++-
 xen/tools/combine_two_binaries.py | 19 ++++++++++++-------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 5f832c5896..d457876659 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -66,7 +66,8 @@ $(obj)/built-in-32.tmp.o: $(obj32)
 # If possible we use --orphan-handling=error option to make sure we account
 # for all possible sections from C code.
 $(obj)/built-in-32.%.bin: $(obj)/build32.%.lds $(obj)/built-in-32.tmp.o
-	$(LD32) $(orphan-handling-y) -N -T $< -Map $(@:bin=map) -o $(@:bin=o) $(filter %.o,$^)
+	$(LD32) $(orphan-handling-y) -N -T $< -o $(@:bin=o) $(filter %.o,$^)
+	$(NM) -p --format=bsd $(@:bin=o) > $(@:bin=map)
 	$(OBJCOPY) -j .text -O binary $(@:bin=o) $@
 	rm -f $(@:bin=o)
 
diff --git a/xen/tools/combine_two_binaries.py b/xen/tools/combine_two_binaries.py
index 447c0d3bdb..581e57cbc0 100755
--- a/xen/tools/combine_two_binaries.py
+++ b/xen/tools/combine_two_binaries.py
@@ -29,7 +29,7 @@ parser.add_argument('--text-diff', dest='text_diff',
 parser.add_argument('--output', dest='output',
                     help='Output file')
 parser.add_argument('--map', dest='mapfile',
-                    help='Map file to read for symbols to export')
+                    help='Map file (NM) to read for symbols to export')
 parser.add_argument('--exports', dest='exports',
                     help='Symbols to export')
 parser.add_argument('--section-header', dest='section_header',
@@ -65,15 +65,20 @@ exports = []
 if args.exports is not None:
     exports = dict([(name, None) for name in args.exports.split(',')])
 
-# Parse mapfile, look for ther symbols we want to export.
+# Parse mapfile, look for symbols we want to export.
 if args.mapfile is not None:
-    symbol_re = re.compile(r'\s{15,}0x([0-9a-f]+)\s+(\S+)\n')
+    exports["dummy_start"] = None
     for line in open(args.mapfile):
-        m = symbol_re.match(line)
-        if not m or m.group(2) not in exports:
+        parts = line.split()
+        if len(parts) != 3:
             continue
-        addr = int(m.group(1), 16)
-        exports[m.group(2)] = addr
+        addr, sym_type, sym = parts
+        if sym_type.upper() == 'T' and sym in exports:
+            exports[sym] = int(addr, 16)
+    if exports["dummy_start"] != 0:
+        raise Exception("dummy_start symbol expected to be present and 0")
+    del exports["dummy_start"]
+
 for (name, addr) in exports.items():
     if addr is None:
         raise Exception("Required export symbols %s not found" % name)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:39:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:39:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831045.1246199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gGL-0003Zc-AI; Wed, 06 Nov 2024 13:39:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831045.1246199; Wed, 06 Nov 2024 13: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 1t8gGL-0003ZV-6j; Wed, 06 Nov 2024 13:39:57 +0000
Received: by outflank-mailman (input) for mailman id 831045;
 Wed, 06 Nov 2024 13:39: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8gGK-0003Z3-K1
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:39:56 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9949d733-9c44-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 14:39:51 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2fb6110c8faso63121301fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:39:51 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a3bf6sm282781366b.24.2024.11.06.05.11.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 05:11: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: 9949d733-9c44-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzYiLCJoZWxvIjoibWFpbC1sajEteDIzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk5NDlkNzMzLTljNDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTAwMzkxLjY1OTI3Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730900391; x=1731505191; 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=Eb4ZlEBdrUesJRtFoLJxjTO3FH3+xQ2X7hbwEozANNM=;
        b=ioHtOeycM92691QIG99AAoKC767OCniA19T//ApEnuBsBAMkYvr1SHfwh2BD1Jr/7F
         zzKI9qBYS8JSKXqBAUT/1crQQ6RTZstJrX257wGe5fRYbvaJljrMVoOYPBC+wfSqDuJ3
         wugfIr7NpKC6//quO9cdhJXJQx/L7L3mL67yc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900391; x=1731505191;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Eb4ZlEBdrUesJRtFoLJxjTO3FH3+xQ2X7hbwEozANNM=;
        b=ZUfPtMSfhSHxbV+ZbxEZJmYSckUJ0/9aBn6DPiS8kCb98QkBEm929v850PRTJMz7Vi
         xJmYrOcsSmU35ThmIUKZ+ttdisnZDaMgtHDdm5xz3o1Aymuj5EYuxAQBYByMVQhCoxM4
         zyA2RKb1VY71mefuAmbYz+Xffok28NlRd4NwrMl6GnNglRfhu9dfNlg0Mwtx9ZR4+vQ+
         GdJ0Xetm/QEXCUvB/pf8lpD63thPRYuc+EAbj9qkRKUQdwxclKdoMi13VkrGMzIxEz++
         guNm0ZIQ9tBrgVS3AzzK62ECXnamJaSiKjB42O9TFrC6b1+c3972BI1ZnRbs/QsI84Cf
         uF6g==
X-Gm-Message-State: AOJu0YyR+sPRjmrtiaSDJKd+2kad2c4P1mhqHAMb2T51c4RPQgu8Sz4D
	mNAiTNEvMJbkigEsfG25vBXa3qc+w+aMNN/JS6CiR2pAj9fDopZolsbVJwcg+aw7CHlIBA8eYeV
	V
X-Google-Smtp-Source: AGHT+IGItccYorqO9/YYseq3f3D437tjeNzdTGEK/ifqtfhwdvNkV1Dr3Fi4OxHB439Ckg5b5clTlw==
X-Received: by 2002:a17:907:971d:b0:a9a:13f8:60b9 with SMTP id a640c23a62f3a-a9de5fc7847mr3923686466b.36.1730898704211;
        Wed, 06 Nov 2024 05:11:44 -0800 (PST)
Message-ID: <7ab2705e-02ba-4e5f-8dd9-ac00a93ba39a@citrix.com>
Date: Wed, 6 Nov 2024 13:11:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: Fix package installation for Coverity run
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>
References: <20241105204603.3412857-1-andrew.cooper3@citrix.com>
 <ZytVxKOtQfR7DWeX@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ZytVxKOtQfR7DWeX@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 11:40 am, Roger Pau MonnÃ© wrote:
> On Tue, Nov 05, 2024 at 08:46:03PM +0000, Andrew Cooper wrote:
>> Something has changed recently in the Github Actions environment and the
>> golang metapacakge resolves to something that no longer exists:
>>
>>   https://github.com/xen-project/xen/actions/runs/11539340171/job/32120834909
>>
>> Update metadata before installing, which fixes things.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>
> Seems like the current Ubuntu image has a stale apt cache?  It's good
> practice to update before we install anyway.

Thanks, and yeah.Â Â  As chance would have it, the problem resolved itself
in this mornings run, but we should take the patch anyway.

A couple of weeks ago, they did strip out one of the versions of Go, but
it wasn't the version of Go we were trying to use.Â  But in hindsight,
that doesn't mean that the metadata was kept properly up to date.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:41:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:41:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831064.1246208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gI7-0005TP-K4; Wed, 06 Nov 2024 13:41:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831064.1246208; Wed, 06 Nov 2024 13: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 1t8gI7-0005TI-HX; Wed, 06 Nov 2024 13:41:47 +0000
Received: by outflank-mailman (input) for mailman id 831064;
 Wed, 06 Nov 2024 13: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=kC+v=SB=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1t8gI6-0005T1-EJ
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:41:46 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id dad9022d-9c44-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:41: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 0F0EB497;
 Wed,  6 Nov 2024 05:42:11 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2799B3F66E;
 Wed,  6 Nov 2024 05:41: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: dad9022d-9c44-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImRhZDkwMjJkLTljNDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwNTAyLjI4NTg5OSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [PATCH] xen/device-tree: Allow exact match for overlapping regions
Date: Wed,  6 Nov 2024 13:41:32 +0000
Message-Id: <20241106134132.2185492-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There are some cases where the device tree exposes a memory range
in both /memreserve/ and reserved-memory node, in this case the
current code will stop Xen to boot since it will find that the
latter range is clashing with the already recorded /memreserve/
ranges.

Furthermore, u-boot lists boot modules ranges, such as ramdisk,
in the /memreserve/ part and even in this case this will prevent
Xen to boot since it will see that the module memory range that
it is going to add in 'add_boot_module' clashes with a /memreserve/
range.

When Xen populate the data structure that tracks the memory ranges,
it also adds a memory type described in 'enum membank_type', so
in order to fix this behavior, allow the 'check_reserved_regions_overlap'
function to check for exact memory range match given a specific memory
type; allowing reserved-memory node ranges and boot modules to have an
exact match with ranges from /memreserve/.

While there, set a type for the memory recorded during ACPI boot.

Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
I tested this patch adding the same range in a /memreserve/ entry and
/reserved-memory node, and by letting u-boot pass a ramdisk.
I've also tested that a configuration running static shared memory still works
fine.
---
 xen/arch/arm/efi/efi-boot.h       |  3 +-
 xen/arch/arm/static-shmem.c       |  2 +-
 xen/common/device-tree/bootfdt.c  |  9 +++++-
 xen/common/device-tree/bootinfo.c | 48 ++++++++++++++++++++++++-------
 xen/include/xen/bootfdt.h         |  9 +++++-
 5 files changed, 57 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 199f5260229d..d35c991c856f 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -167,13 +167,14 @@ static bool __init meminfo_add_bank(struct membanks *mem,
     if ( mem->nr_banks >= mem->max_banks )
         return false;
 #ifdef CONFIG_ACPI
-    if ( check_reserved_regions_overlap(start, size) )
+    if ( check_reserved_regions_overlap(start, size, MEMBANK_NONE) )
         return false;
 #endif
 
     bank = &mem->bank[mem->nr_banks];
     bank->start = start;
     bank->size = size;
+    bank->type = MEMBANK_DEFAULT;
 
     mem->nr_banks++;
 
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index aa80756c3ca5..149ed4b0a5ba 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -696,7 +696,7 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
         if (i < mem->max_banks)
         {
             if ( (paddr != INVALID_PADDR) &&
-                 check_reserved_regions_overlap(paddr, size) )
+                 check_reserved_regions_overlap(paddr, size, MEMBANK_NONE) )
                 return -EINVAL;
 
             /* Static shared memory shall be reserved from any other use. */
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 927f59c64b0d..fb3a6ab95a22 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -176,8 +176,15 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
     for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
     {
         device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+        /*
+         * Some valid device trees, such as those generated by OpenPOWER
+         * skiboot firmware, expose all reserved memory regions in the
+         * FDT memory reservation block AND in the reserved-memory node which
+         * has already been parsed. Thus, any matching overlaps in the
+         * reserved_mem banks should be ignored.
+         */
         if ( mem == bootinfo_get_reserved_mem() &&
-             check_reserved_regions_overlap(start, size) )
+             check_reserved_regions_overlap(start, size, MEMBANK_FDT_RESVMEM) )
             return -EINVAL;
         /* Some DT may describe empty bank, ignore them */
         if ( !size )
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
index f2e6a1145b7c..05038075e835 100644
--- a/xen/common/device-tree/bootinfo.c
+++ b/xen/common/device-tree/bootinfo.c
@@ -99,7 +99,8 @@ static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
  */
 static bool __init meminfo_overlap_check(const struct membanks *mem,
                                          paddr_t region_start,
-                                         paddr_t region_size)
+                                         paddr_t region_size,
+                                         enum membank_type allow_match_type)
 {
     paddr_t bank_start = INVALID_PADDR, bank_end = 0;
     paddr_t region_end = region_start + region_size;
@@ -113,12 +114,16 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
         if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
              region_start >= bank_end )
             continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, bank_start, bank_end);
-            return true;
-        }
+
+        if ( (allow_match_type != MEMBANK_NONE) &&
+             (region_start == bank_start) && (region_end == bank_end) &&
+             (allow_match_type == mem->bank[i].type) )
+            continue;
+
+        printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                region_start, region_end, i, bank_start, bank_end);
+        return true;
+
     }
 
     return false;
@@ -169,9 +174,14 @@ void __init fw_unreserved_regions(paddr_t s, paddr_t e,
  * with the existing reserved memory regions defined in bootinfo.
  * Return true if the input physical address range is overlapping with any
  * existing reserved memory regions, otherwise false.
+ * The 'allow_match_type' parameter can be used to allow exact match of a
+ * region with another memory region already recorded, but it needs to be used
+ * only on memory regions that allows a type (reserved_mem, acpi). For all the
+ * other cases, passing 'MEMBANK_NONE' will disable the exact match.
  */
 bool __init check_reserved_regions_overlap(paddr_t region_start,
-                                           paddr_t region_size)
+                                           paddr_t region_size,
+                                           enum membank_type allow_match_type)
 {
     const struct membanks *mem_banks[] = {
         bootinfo_get_reserved_mem(),
@@ -190,8 +200,21 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
      * shared memory banks (when static shared memory feature is enabled)
      */
     for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
-        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
+    {
+        enum membank_type type = allow_match_type;
+
+#ifdef CONFIG_STATIC_SHM
+        /*
+         * Static shared memory banks don't have a type, so for them disable
+         * the exact match check.
+         */
+        if (mem_banks[i] == bootinfo_get_shmem())
+            type = MEMBANK_NONE;
+#endif
+        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size,
+                                   type) )
             return true;
+    }
 
     /* Check if input region is overlapping with bootmodules */
     if ( bootmodules_overlap_check(&bootinfo.modules,
@@ -216,7 +239,12 @@ struct bootmodule __init *add_boot_module(bootmodule_kind kind,
         return NULL;
     }
 
-    if ( check_reserved_regions_overlap(start, size) )
+    /*
+     * u-boot adds boot module such as ramdisk to the /memreserve/, since these
+     * ranges are saved in reserved_mem at this stage, allow an eventual exact
+     * match with MEMBANK_FDT_RESVMEM banks.
+     */
+    if ( check_reserved_regions_overlap(start, size, MEMBANK_FDT_RESVMEM) )
         return NULL;
 
     for ( i = 0 ; i < mods->nr_mods ; i++ )
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 16fa05f38f38..8f8a7ad882a4 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -23,6 +23,12 @@ typedef enum {
 }  bootmodule_kind;
 
 enum membank_type {
+    /*
+     * The MEMBANK_NONE type is a special placeholder that should not be applied
+     * to a memory bank, it is used as a special value in some function in order
+     * to disable some feature.
+     */
+    MEMBANK_NONE = -1,
     /*
      * The MEMBANK_DEFAULT type refers to either reserved memory for the
      * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
@@ -158,7 +164,8 @@ struct bootinfo {
 extern struct bootinfo bootinfo;
 
 bool check_reserved_regions_overlap(paddr_t region_start,
-                                    paddr_t region_size);
+                                    paddr_t region_size,
+                                    enum membank_type allow_match_type);
 
 struct bootmodule *add_boot_module(bootmodule_kind kind,
                                    paddr_t start, paddr_t size, bool domU);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:43:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831069.1246218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gJM-000625-Un; Wed, 06 Nov 2024 13:43:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831069.1246218; Wed, 06 Nov 2024 13:43: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 1t8gJM-00061y-Rz; Wed, 06 Nov 2024 13:43:04 +0000
Received: by outflank-mailman (input) for mailman id 831069;
 Wed, 06 Nov 2024 13:43: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8gJM-00061k-0z
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:43:04 +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 093ec1a7-9c45-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:42:59 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5c941623a5aso1625055a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:42:59 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: 093ec1a7-9c45-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA5M2VjMWE3LTljNDUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwNTc5LjUyNDA0Miwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900579; x=1731505379; 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=IYRtBXHtmMvAiHP0ZMkvKUBKJ4wJh4GIX8aEfCSEVfs=;
        b=bVlW8nk4HUS1PPicm0rgsgr7gLndXUpoaMBykGIEpLIs4ywgy5TZtbZz+IJtmrBU87
         81SXnFnlM37YNEGXQug6xm3/W0aICd/6aHcXwzi4o0KEHLo6+EA+AS/y67PNzJnonLqN
         X14eY2dn83FzgACVFMZ2qRg6gMwjgzvUaDRRE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900579; x=1731505379;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=IYRtBXHtmMvAiHP0ZMkvKUBKJ4wJh4GIX8aEfCSEVfs=;
        b=qMmaVEsbOm+L3kNqhx/hxhlH7OtOMSTRSZ+yQJ639INN+X8XaSw3rIFsUrOeaNsF6m
         KE5AJBo2jXvXG8yCJ64hZUfvs0l61uFDm8iODY1FamKBSDjwGDXEWapm2GM/ETMV8zN/
         smLXonbp4bVLJzroCmgTp1W6MvVIhjPOtkV6NKQNtByq7K4fK6A3qWWbP1cy/6mtT5d1
         n9bD4UKlX772ZfulZYsz5RuNTZLUI3o2V5pHBAt8VjbRBaqEX3rwuWsqa8HCQ1NyYmZI
         jDxWesPnBtpBOBIcUw8mJLfzAhkenTb3Yua2PRH3PE9arRFp3vTy2lXhT3u0Y/r24ciJ
         wqYw==
X-Gm-Message-State: AOJu0Yw9N+aMOermV86PDsVqDO8nzVK2oqX5EKdaEEcIzV3bUlfFruRT
	E3WZD/LfKfc+4Bq/TeLpmdsYv5F+wRUX+A9vm63s9RaA3PbM8Z9IBSaV/2DfaB7RHLdTLe2UrdF
	ZpWg=
X-Google-Smtp-Source: AGHT+IHC79vPV0iv5YoF1GyY6qEaluGz1BR00EHejTbobHaPynygyuJW4BnXPK14tPmiRf2U37Lm5A==
X-Received: by 2002:a05:6402:2684:b0:5c9:85e8:ec8c with SMTP id 4fb4d7f45d1cf-5cef550779cmr3077911a12.6.1730898325515;
        Wed, 06 Nov 2024 05:05:25 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 5/6] CI: Refresh the Debian 12 cppcheck container
Date: Wed,  6 Nov 2024 13:05:06 +0000
Message-ID: <f1045ca6fffee47fea8380424ae432d152c79b46.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1730743077.git.javi.merino@cloud.com>
References: <cover.1730743077.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework the container to build and run cppcheck as a normal user.  User
heredocs for readability and use apt-get --no-install-recommends to
keep the size down.

Changed the libpcre3-dev dependency to libpcre3, as the -dev package
is only needed for building, not for running.

With the cleanups, the size of the container is reduced from 882MB to
782MB.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---
 .../debian/12-arm64v8-cppcheck.dockerfile     | 79 +++++++++++++++++++
 .../build/debian/bookworm-cppcheck.dockerfile | 54 -------------
 automation/gitlab-ci/build.yaml               | 12 +--
 automation/scripts/containerize               |  2 +-
 4 files changed, 86 insertions(+), 61 deletions(-)
 create mode 100644 automation/build/debian/12-arm64v8-cppcheck.dockerfile
 delete mode 100644 automation/build/debian/bookworm-cppcheck.dockerfile

diff --git a/automation/build/debian/12-arm64v8-cppcheck.dockerfile b/automation/build/debian/12-arm64v8-cppcheck.dockerfile
new file mode 100644
index 000000000000..21c006e74f2e
--- /dev/null
+++ b/automation/build/debian/12-arm64v8-cppcheck.dockerfile
@@ -0,0 +1,79 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 debian:bookworm AS builder
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CPPCHECK_VERSION=2.7
+
+# dependencies for cppcheck build
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    apt-get update
+    DEPS=(
+        build-essential
+        ca-certificates
+        curl
+        libpcre3-dev
+        python-is-python3
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+RUN useradd --home /build --create-home user
+
+WORKDIR /build
+USER user
+
+# cppcheck release build (see cppcheck readme.md)
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    curl -fsSL https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz | tar xvz
+    cd cppcheck-"$CPPCHECK_VERSION"
+
+    MAKE_OPTS=(
+        MATCHCOMPILER=yes
+        DESTDIR=/build/out
+        FILESDIR="/usr/share/cppcheck"
+        HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
+    )
+    make install -j$(nproc) "${MAKE_OPTS[@]}"
+EOF
+
+FROM --platform=linux/arm64/v8 debian:bookworm
+COPY --from=builder /build/out/usr/bin/cppcheck /usr/bin/cppcheck
+COPY --from=builder /build/out/usr/share/cppcheck /usr/share/cppcheck
+
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+# dependencies for cppcheck analysis including Xen-only build/cross-build
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    useradd --create-home user
+
+    apt-get update
+    DEPS=(
+        bison
+        build-essential
+        python-is-python3
+        libpcre3
+        flex
+        gcc-arm-linux-gnueabihf
+        gcc-x86-64-linux-gnu
+    )
+    apt-get --yes --no-install-recommends install "${DEPS[@]}"
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile b/automation/build/debian/bookworm-cppcheck.dockerfile
deleted file mode 100644
index fe4cd4a1aaab..000000000000
--- a/automation/build/debian/bookworm-cppcheck.dockerfile
+++ /dev/null
@@ -1,54 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 debian:bookworm AS builder
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV CPPCHECK_VERSION=2.7
-ENV USER root
-
-# dependencies for cppcheck build
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        curl \
-        build-essential \
-        python-is-python3 \
-        libpcre3-dev
-
-RUN mkdir /build
-WORKDIR /build
-
-# cppcheck release build (see cppcheck readme.md)
-RUN curl -fsSLO https://github.com/danmar/cppcheck/archive/"$CPPCHECK_VERSION".tar.gz && \
-    tar xvzf "$CPPCHECK_VERSION".tar.gz && \
-    cd cppcheck-"$CPPCHECK_VERSION" && \
-    make install -j$(nproc) \
-        MATCHCOMPILER=yes \
-        FILESDIR=/usr/share/cppcheck \
-        HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
-
-FROM --platform=linux/arm64/v8 debian:bookworm
-COPY --from=builder /usr/bin/cppcheck /usr/bin/cppcheck
-COPY --from=builder /usr/share/cppcheck /usr/share/cppcheck
-
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# dependencies for cppcheck analysis including Xen-only build/cross-build
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        python-is-python3 \
-        libpcre3-dev \
-        flex \
-        bison \
-        gcc-arm-linux-gnueabihf \
-        gcc-x86-64-linux-gnu \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 3f87187443e2..57b013334b6c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -492,26 +492,26 @@ yocto-qemux86-64:
 
 # Cppcheck analysis jobs
 
-debian-bookworm-gcc-cppcheck:
+debian-12-x86_64-gcc-cppcheck:
   extends: .gcc-x86-64-cross-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CROSS_COMPILE: /usr/bin/x86_64-linux-gnu-
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm32-cppcheck:
+debian-12-arm32-gcc-cppcheck:
   extends: .gcc-arm32-cross-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf-
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
-debian-bookworm-gcc-arm64-cppcheck:
+debian-12-arm64-gcc-cppcheck:
   extends: .gcc-arm64-build
   variables:
-    CONTAINER: debian:bookworm-cppcheck
+    CONTAINER: debian:12-arm64v8-cppcheck
     CPPCHECK: y
     HYPERVISOR_ONLY: y
 
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index c9988bfe927d..e5502c81a759 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -38,7 +38,7 @@ case "_${CONTAINER}" in
     _bookworm-i386|_bookworm-x86_32) CONTAINER="${BASE}/debian:12-x86_32" ;;
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:12-arm64v8-arm32-gcc" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:12-arm64v8" ;;
-    _bookworm-cppcheck) CONTAINER="${BASE}/debian:bookworm-cppcheck" ;;
+    _bookworm-cppcheck) CONTAINER="${BASE}/debian:12-arm64v8-cppcheck" ;;
     _opensuse-leap|_leap) CONTAINER="${BASE}/opensuse:leap-15.6-x86_64" ;;
     _opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
     _xenial) CONTAINER="${BASE}/ubuntu:16.04-x86_64" ;;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:43:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:43:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831076.1246229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gJp-0006Y7-Co; Wed, 06 Nov 2024 13:43:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831076.1246229; Wed, 06 Nov 2024 13:43: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 1t8gJp-0006Y0-8a; Wed, 06 Nov 2024 13:43:33 +0000
Received: by outflank-mailman (input) for mailman id 831076;
 Wed, 06 Nov 2024 13:43: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=6nbp=SB=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t8gJn-00061k-SF
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:43:31 +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 1b4c4cf7-9c45-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:43:29 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9acafdb745so182031166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:43:29 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6ae615sm21785875e9.8.2024.11.06.05.06.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:06: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: 1b4c4cf7-9c45-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFiNGM0Y2Y3LTljNDUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwNjA5LjgxMjUwNywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900608; x=1731505408; 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=iC/ssupFSJTkxCKBaHe1Umzon0/xq/exjo7F/imeSNg=;
        b=EAUNq6nw/Nz17/07Rn5yc5xq0R7xhddAoit6lNCsyzTz5QQjvHvImsEsOTKdStRYGs
         Oiws2ezk5G2RW4Siu/+6c17Hf0w2W6qxsoxa0RXB0r/o6Lp7xmmXEb7KD5Tx0ynS7Yib
         MTJlhh7v6eNH5RZlwfnb82YykKW+iTtit2KgU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900608; x=1731505408;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=iC/ssupFSJTkxCKBaHe1Umzon0/xq/exjo7F/imeSNg=;
        b=ek95aqTbYrzrn3QLwZ0GenhqZa3WaSkYsBkZGOZPmx68MfcGSCXS0xisRr59wPtYmR
         y/Dq21w3pihEJ1gG4oj6egXSBBRt/Gg8DYAcm9hFw9rF9NHwS/DGqev6emm10BPyERXw
         2i6oSpO5PrR/Jm+lN4ylMiICCR724ypin7gCHTIvg2HD1rCrsauw2jvSE+YUetJKXhtM
         Sl6Gq8jwtc9aBZNYU821wFsXRi/cwOrUVxDVHYZ3py+98XCpEZsBIU8AnZ31a0V5TLy3
         L7sddAPQEF11ElatU4o0QhdF2ga7908EhQP/4L9Ow8FwI69E5Piw84XWkI1YXeFsSnNw
         inyg==
X-Gm-Message-State: AOJu0YwTA0anN9gUIbOg58FBVIjeC2V4LrdhJbJEYc9GnZgSQ+8K8c5r
	TlN2JaiS12FkDI965UsR6UGagGVzF5BNiFrGS9SY7S6I0jB8ewD3Xq3+YtsZ+EHmHC91AoZnk9k
	sL7Q=
X-Google-Smtp-Source: AGHT+IEENntri2GwURKmd0G7AZsIiYX384VHLbSgMbsVrqloeuvfhgfJSThdcXYnsWD/hYuXD7pGdA==
X-Received: by 2002:a05:600c:1553:b0:42c:b98d:b993 with SMTP id 5b1f17b1804b1-432a9a74e90mr22612125e9.2.1730898390871;
        Wed, 06 Nov 2024 05:06:30 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 0/3] x86/boot: Fix build with LLVM toolchain
Date: Wed,  6 Nov 2024 13:06:17 +0000
Message-Id: <20241106130620.1928109-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fix some compatibility generating 32 bit code.
LLVM has different object files and map files.
Do not use map file as they are not standard.

Changes since v1:
- do not use map files;
- add a fix for file names and preprocessor definition name.

Changes since v2:
- address comments.

Frediano Ziglio (3):
  x86/boot: Fix intermediate file names to generate 32 bit code
  x86/boot: Uses nm command instead of map file to get symbols
  x86/boot: Explicitly list .{sym,shstr,str}tab in build32.lds.S

 xen/arch/x86/boot/Makefile        |  9 +++++----
 xen/arch/x86/boot/build32.lds.S   | 11 ++++++++++-
 xen/tools/combine_two_binaries.py | 19 ++++++++++++-------
 3 files changed, 27 insertions(+), 12 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 13:44:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 13:44:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831083.1246238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gL7-0007B1-KQ; Wed, 06 Nov 2024 13:44:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831083.1246238; Wed, 06 Nov 2024 13: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 1t8gL7-0007Au-Hq; Wed, 06 Nov 2024 13:44:53 +0000
Received: by outflank-mailman (input) for mailman id 831083;
 Wed, 06 Nov 2024 13:44: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=nSNS=SB=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t8gL6-0007Ai-3o
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 13:44:52 +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 49a1ccad-9c45-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 14:44:47 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-539f72c8fc1so7318769e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 05:44:47 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6a9a3e3sm2708939a12.12.2024.11.06.05.05.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 05:05: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: 49a1ccad-9c45-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmYiLCJoZWxvIjoibWFpbC1sZjEteDEyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ5YTFjY2FkLTljNDUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAwNjg3LjY2MjE2OSwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730900687; x=1731505487; 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=ep8EzNnBGYuRzdmlGG1nNPu6Bpt+tpLeX3JycmIw8eY=;
        b=IebuaaWxaT09gmWVfAWELP350I1H4wDTtSRnZj4suEeqsAzMvepZ78cUwKiAv8Kqs2
         9VYmCGf2fZUKk7X+NCOJDpj/KjmrAlO6+qXmZUqxGV25HFA0TpmeyjTeGwaa9BKQJ5hK
         6tQN5oET35PyDM1OIBeU5Xo0CTeYmlGj1T/NI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730900687; x=1731505487;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ep8EzNnBGYuRzdmlGG1nNPu6Bpt+tpLeX3JycmIw8eY=;
        b=RvWO1naPWlFIB1q5hCqOoElKEwfv/apbml+hJoN4B/B4StyMzQphuGXGfd6LYsMugq
         gnMrpjSN8W3CTo7RiHwXrgDb4OQkWJyryZHOmhvr6UvhD6MVF6pIx9ywBF0weSut9Caf
         fGdyBhffsaYSOoWG5Nh+G5oq+nnvMztGrI5yx9esUrS33Wxt2ZBzTIbRTh4ScmW0y3/V
         zPMlUh5jUAyWjp3PfueQRNIbsAO7/lyKU3OKLKgBLg3zYeWNxRIEsTe/Xo2xxjOTplJI
         wG8A65Ix3x+CDW25K8z4cExKyXZkX5SdEzRokW6m1tve2u09vVFGXu2scudd1UdCg8wH
         b4OA==
X-Gm-Message-State: AOJu0YzdjbWwJl5chp1vXtxTiXSiVhfE3QeOyrILKpnxe4Fr8B+QppRf
	JieAb7gDBfW9KXK7Jzhlo+HZ7dXmfLCsrJy4zX2CF7o0wXu6ezx4p2uh6REmyUiuniFMT/JC0Wk
	/9Vo=
X-Google-Smtp-Source: AGHT+IElaVShQZYzT3KmsZKBxhonJq/DoVUXXNFDK3HSXpwRYLA5vkJRZy3oJuvg8M4YPRPQXSqITw==
X-Received: by 2002:a05:6402:2748:b0:5ce:ddd4:7c2f with SMTP id 4fb4d7f45d1cf-5ceddd47c77mr6533443a12.7.1730898323243;
        Wed, 06 Nov 2024 05:05:23 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH v2 1/6] CI: Refresh the Debian 12 x86_64 container
Date: Wed,  6 Nov 2024 13:05:02 +0000
Message-ID: <083c6bb0194fdd082425185f9d153b355a47c614.1730743077.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1730743077.git.javi.merino@cloud.com>
References: <cover.1730743077.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework the container to use heredocs for readability, and use
apt-get --no-install-recommends to keep the size down.

This reduces the size of the (uncompressed) container from 3.44GB to
1.97GB.

The container is left running the builds and tests as root to avoid
breaking the xilinx runners.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---

Changes in dependencies:

$ diff -u <(git show origin/staging:automation/build/debian/bookworm.dockerfile | awk '/&&/{f=0};f;/apt-get \-\-quiet/{f=1};' | perl -ne 's/ \\$//;s/^ +//; /^#/ or print' | sort) <(awk '/^ +\)/{f=0};f;/DEPS=\(/{f=1}' automation/build/debian/12-x86_64.dockerfile | perl -ne 's/^\s+//; /^#/ or print' | sort)          
--- /proc/self/fd/16    2024-11-05 14:06:10.160095997 +0000
+++ /proc/self/fd/17    2024-11-05 14:06:10.160095997 +0000
@@ -1,34 +1,29 @@
 acpica-tools
-apt-transport-https
 bcc
 bin86
 bison
 build-essential
 busybox-static
+ca-certificates
 checkpolicy
 clang
 cpio
 expect
 flex
-git
-gnupg
-golang
-libaio-dev
-libfindlib-ocaml-dev
-libglib2.0-dev
+git-core
+golang-go
+libbz2-dev
 liblzma-dev
+liblzo2-dev
 libncurses5-dev
 libnl-3-dev
-libpixman-1-dev
 libyajl-dev
-markdown
-nasm
+libzstd-dev
+ocaml-findlib
 ocaml-nox
 ovmf
-pandoc
 pkg-config
 python3-dev
 python3-setuptools
 qemu-system-x86
-transfig
 uuid-dev

 automation/build/debian/12-x86_64.dockerfile | 71 ++++++++++++++++++++
 automation/build/debian/bookworm.dockerfile  | 57 ----------------
 automation/gitlab-ci/build.yaml              | 20 +++---
 automation/gitlab-ci/test.yaml               | 14 ++--
 automation/scripts/containerize              |  2 +-
 5 files changed, 89 insertions(+), 75 deletions(-)
 create mode 100644 automation/build/debian/12-x86_64.dockerfile
 delete mode 100644 automation/build/debian/bookworm.dockerfile

diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile
new file mode 100644
index 000000000000..c440748f2336
--- /dev/null
+++ b/automation/build/debian/12-x86_64.dockerfile
@@ -0,0 +1,71 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:bookworm
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+# build depends
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    apt-get update
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        liblzma-dev
+        liblzo2-dev
+        libzstd-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libnl-3-dev
+        libyajl-dev
+        # RomBIOS
+        bcc
+        bin86
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Golang bindings
+        golang-go
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # for test phase, qemu-smoke-* jobs
+        expect
+        qemu-system-x86
+
+        # for qemu-alpine-x86_64-gcc
+        busybox-static
+        cpio
+
+        # For *-efi jobs
+        ovmf
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER root
+WORKDIR /build
diff --git a/automation/build/debian/bookworm.dockerfile b/automation/build/debian/bookworm.dockerfile
deleted file mode 100644
index 72e01aa58b55..000000000000
--- a/automation/build/debian/bookworm.dockerfile
+++ /dev/null
@@ -1,57 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 debian:bookworm
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV DEBIAN_FRONTEND=noninteractive
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        zlib1g-dev \
-        libncurses5-dev \
-        python3-dev \
-        python3-setuptools \
-        uuid-dev \
-        libyajl-dev \
-        libaio-dev \
-        libglib2.0-dev \
-        clang \
-        libpixman-1-dev \
-        pkg-config \
-        flex \
-        bison \
-        acpica-tools \
-        bin86 \
-        bcc \
-        liblzma-dev \
-        libnl-3-dev \
-        ocaml-nox \
-        libfindlib-ocaml-dev \
-        markdown \
-        transfig \
-        pandoc \
-        checkpolicy \
-        wget \
-        git \
-        nasm \
-        gnupg \
-        apt-transport-https \
-        golang \
-        # for test phase, qemu-smoke-* jobs
-        qemu-system-x86 \
-        expect \
-        # For *-efi jobs
-        ovmf \
-        # for test phase, qemu-alpine-* jobs
-        cpio \
-        busybox-static \
-        && \
-        apt-get autoremove -y && \
-        apt-get clean && \
-        rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index af2b1ceba3a4..d64a7e40f3f1 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -345,15 +345,15 @@ alpine-3.18-gcc-debug:
       CONFIG_UNSUPPORTED=y
       CONFIG_ARGO=y
 
-debian-bookworm-gcc-debug:
+debian-12-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: debian:bookworm
+    CONTAINER: debian:12-x86_64
 
-debian-bookworm-clang-debug:
+debian-12-x86_64-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: debian:bookworm
+    CONTAINER: debian:12-x86_64
 
 debian-12-ppc64le-gcc-debug:
   extends: .gcc-ppc64le-cross-build-debug
@@ -557,20 +557,20 @@ debian-12-x86_64-gcc-ibt:
     EXTRA_FIXED_RANDCONFIG: |
       CONFIG_XEN_IBT=y
 
-debian-bookworm-clang:
+debian-12-x86_64-clang:
   extends: .clang-x86-64-build
   variables:
-    CONTAINER: debian:bookworm
+    CONTAINER: debian:12-x86_64
 
-debian-bookworm-gcc:
+debian-12-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: debian:bookworm
+    CONTAINER: debian:12-x86_64
 
-debian-bookworm-gcc-randconfig:
+debian-12-x86_64-gcc-randconfig:
   extends: .gcc-x86-64-build
   variables:
-    CONTAINER: debian:bookworm
+    CONTAINER: debian:12-x86_64
     RANDCONFIG: y
 
 debian-bookworm-32-clang-debug:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index e8f57e87bd19..5b89cfa33cf8 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -43,7 +43,7 @@
 .qemu-x86-64:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:bookworm
+    CONTAINER: debian:12-x86_64
     LOGFILE: qemu-smoke-x86-64.log
   artifacts:
     paths:
@@ -155,7 +155,7 @@
 build-each-commit-gcc:
   extends: .test-jobs-common
   variables:
-    CONTAINER: debian:bookworm
+    CONTAINER: debian:12-x86_64
     XEN_TARGET_ARCH: x86_64
     CC: gcc
   script:
@@ -477,35 +477,35 @@ qemu-smoke-x86-64-gcc:
   script:
     - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-bookworm-gcc-debug
+    - debian-12-x86_64-gcc-debug
 
 qemu-smoke-x86-64-clang:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-bookworm-clang-debug
+    - debian-12-x86_64-clang-debug
 
 qemu-smoke-x86-64-gcc-pvh:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-bookworm-gcc-debug
+    - debian-12-x86_64-gcc-debug
 
 qemu-smoke-x86-64-clang-pvh:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-bookworm-clang-debug
+    - debian-12-x86_64-clang-debug
 
 qemu-smoke-x86-64-gcc-efi:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-bookworm-gcc-debug
+    - debian-12-x86_64-gcc-debug
 
 qemu-smoke-riscv64-gcc:
   extends: .qemu-riscv64
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 6ac02c42d124..ea6e1a9b18f4 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -34,7 +34,7 @@ case "_${CONTAINER}" in
     _bullseye-riscv64) CONTAINER="${BASE}/debian:11-riscv64" ;;
     _bookworm-riscv64) CONTAINER="${BASE}/debian:12-riscv64" ;;
     _bookworm-x86_64-gcc-ibt) CONTAINER="${BASE}/debian:12-x86_64-gcc-ibt" ;;
-    _bookworm|_) CONTAINER="${BASE}/debian:bookworm" ;;
+    _bookworm|_bookworm-x86_64|_) CONTAINER="${BASE}/debian:12-x86_64" ;;
     _bookworm-i386) CONTAINER="${BASE}/debian:bookworm-i386" ;;
     _bookworm-arm64v8-arm32-gcc) CONTAINER="${BASE}/debian:bookworm-arm64v8-arm32-gcc" ;;
     _bookworm-arm64v8) CONTAINER="${BASE}/debian:bookworm-arm64v8" ;;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:06:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:06:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831105.1246264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gfS-0004Q2-D4; Wed, 06 Nov 2024 14:05:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831105.1246264; Wed, 06 Nov 2024 14:05: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 1t8gfS-0004Pv-AW; Wed, 06 Nov 2024 14:05:54 +0000
Received: by outflank-mailman (input) for mailman id 831105;
 Wed, 06 Nov 2024 14:05: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8gfR-0004Pp-2S
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:05:53 +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 38aef28a-9c48-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 15:05:47 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9a2209bd7fso1155096966b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 06:05:47 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d5478sm281681466b.45.2024.11.06.06.05.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 06:05: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: 38aef28a-9c48-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM4YWVmMjhhLTljNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTAxOTQ3LjYwMDQ2Mywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730901947; x=1731506747; 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=m586iYu2T2POowcEzTDes3+efSuPLVwbfm08jEBgtSc=;
        b=F/sHhOxezOBASE+EyzjPuk9ER5VrOM76jK4FBMnO64NqLwvYi4JqYE9uDjSLFRol0W
         ifaReE0YarLJ43KByveQ1v8R02z63xCc0Tk/dDb5CfCyNEXLNDLokNC2r2NH7XJQRDow
         RZaKofZhuKrpEiokOadEiiIWomcFIMNTsBWSI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730901947; x=1731506747;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m586iYu2T2POowcEzTDes3+efSuPLVwbfm08jEBgtSc=;
        b=cnfjXt/0fl06a+nFRELkEw7mMNbeuTXa50xjRvkNbhfHZrRH1cKXR7yhDIjWT56+b4
         HcjUFFH3BdDl5pvMMD5TYiAxxVpfS5aMleY5pO/RV0KqvVazQxqrxUuqVyD8f9kPCQSg
         iXW0UUZrYRDg5Udk4B/qD6L1p3Xqd7TtA5TQ5WTxzfgJgRF0FIkdJpZRryCh2+I0oDQo
         t1rntIImC2B+h8BO2WKst92EKBI9zuMIB3ioRrcJsZjI6P6iYNd6VrU1FO5LjeOVIqt7
         oCKUbFb3XxC6S1KDGVzxtjnlT2ObKhlA/71Apiqe0gGSL2TGyZ9AMtT/mXbpqeoi7uEQ
         q6fw==
X-Forwarded-Encrypted: i=1; AJvYcCVe/3VxyhNXTmN9bKLD4+TWE/9LGgTmR8jwOBWq1kMmE7cZaThOgUE6Sf7SN80NMAYPXgDEfey10t0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxeX3djjr3uENE7+isrGEQoF1LC47+oK+/f4Rxqog/ai2moS4wa
	t6ewpN2WDB3lg5lONL5Qo+ulV9nCykUlJ17YBFn2LLkklgS2mJhwfz+tpzbfC9+CvOLJ1aROUpj
	v
X-Google-Smtp-Source: AGHT+IG8iLh+he1pVBpFaWMhwnlTLFGvvPpLAFSJeQNVs9Vrnd+MQf9d2dPOkob//Jyk+PJQKJjc2g==
X-Received: by 2002:a17:906:478f:b0:a99:f56e:ce40 with SMTP id a640c23a62f3a-a9de6166952mr3866070366b.47.1730901946737;
        Wed, 06 Nov 2024 06:05:46 -0800 (PST)
Message-ID: <9dcc4580-bb3e-4722-a623-0776a91c1764@citrix.com>
Date: Wed, 6 Nov 2024 14:05:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/12] x86/boot: introduce boot module types
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-2-dpsmith@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241102172551.17233-2-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
> This commit introduces module types for the types of boot modules that may be
> passed to Xen. These include xen, kernel, ramdisk, microcode, and xsm policy.
> This reduces the need for hard coded order assumptions and global variables to
> be used by consumers of boot modules, such as domain construction.
>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, albeit it with
one extra suggestion.

> ---
> Changes since v7:
> - merged the addition of microcode and xsm boot mod types
>
> Changes since v5:
> - added guard around initrd type assignment
> - removed a missed rebase artifact
> ---
>  xen/arch/x86/cpu/microcode/core.c   |  1 +
>  xen/arch/x86/include/asm/bootinfo.h | 12 ++++++++++++
>  xen/arch/x86/setup.c                |  4 ++++
>  xen/xsm/xsm_policy.c                |  1 +
>  4 files changed, 18 insertions(+)
>
> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
> index 1fa6cbf3d364..f46464241557 100644
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c

@@ -831,6 +831,10 @@ static int __init early_microcode_load(struct
boot_info *bi)
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
Â Â Â Â Â Â Â Â Â Â Â Â  }
Â 
+Â Â Â Â Â Â Â Â Â Â Â  /*
+Â Â Â Â Â Â Â Â Â Â Â Â  * Do not alter this boot module's type.Â  We're most likely
+Â Â Â Â Â Â Â Â Â Â Â Â  * peeking at dom0's initrd.
+Â Â Â Â Â Â Â Â Â Â Â Â  */
Â Â Â Â Â Â Â Â Â Â Â Â  data = cd.data;
Â Â Â Â Â Â Â Â Â Â Â Â  size = cd.size;
Â Â Â Â Â Â Â Â Â Â Â Â  goto found;


To make it absolutely crystal clear that ...


> @@ -845,6 +845,7 @@ static int __init early_microcode_load(struct boot_info *bi)
>              printk(XENLOG_WARNING "Microcode: Chosen module %d already used\n", idx);
>              return -ENODEV;
>          }
> +        bi->mods[idx].type = BOOTMOD_MICROCODE;

... this is deliberately not done on the scan path.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:19:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:19:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831113.1246274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8gsW-0008FW-Gh; Wed, 06 Nov 2024 14:19:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831113.1246274; Wed, 06 Nov 2024 14:19: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 1t8gsW-0008FP-Dm; Wed, 06 Nov 2024 14:19:24 +0000
Received: by outflank-mailman (input) for mailman id 831113;
 Wed, 06 Nov 2024 14:19: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=VMU+=SB=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1t8gsV-0008FJ-LK
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:19:23 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170130004.outbound.protection.outlook.com
 [2a01:111:f403:c200::4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cb677cc-9c4a-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 15:19:19 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PA4PR03MB6944.eurprd03.prod.outlook.com (2603:10a6:102:e0::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 14:19:17 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8137.018; Wed, 6 Nov 2024
 14: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: 1cb677cc-9c4a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6YzIwMDo6NCIsImhlbG8iOiJEVVpQUjgzQ1UwMDEub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFjYjY3N2NjLTljNGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTAyNzU5Ljg4ODgyOCwic2VuZGVyIjoiZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NvtisC0etbqMc0SzSafOdUqEECau8i0jo1KxUEnf0NaD2Us40y7Uh6JzmpzK0aAQi60RsPM99EPQETR5tc0nGwYGOtTYfT2Ekr42TEfi1uPkJ5Tots4IqiYAuw38jIVH55bRGsQhrVM4Zk2HUVh4PvHn/3Qd2ZXAnKV5wj10JasNwqk9LXeakGntC57lUkCMn2NR9SrIPBc8Z0z0Q5D74E/Ong4leGbQcc+H3l9wRKY0Z5llf9MiO+T7m/8NlKM6LDmbiQFQ8/xmyM+xUHAygpOEZpJ/KGl35MLDGPvlR0hKN0AYDvTtGR4Uqmc3POtZ+WzB04V0sUG8ezN7LtZYcg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=z1dAccebykuxnKhJ6CqD4TxswwzD4ENLzUsm4zKB5B8=;
 b=pZ/tPlTV7zohdvIqbilo276mYk+4bQQ5iRhMA+gbzr8Efv0UNpxyGT7qf4gEgKHpe8dA7tLVPlEFGl2BiuLUYX6amzc/BTL7Do9xoWrNamkdnbRQc5QxXbfFWoYD0467KqgM8s2GCGeIVgOM9GgwMmONTKoakWfgPozpZyG0m/28seVewG5fGnYkjIDSJep7SGJllOXK4FdJUl8zVOFNE3d5X5IMfuY7kMXFssFRJifpKfck3MWYVlMHohwVzrE3b/kFEhWWooUtWiSD55aClrT9N5jn1HV5PlV/YydYMERX/YF2chX7PTPgxpcAOVvtkrzMEz4FxUBTaVZU4tUYng==
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=z1dAccebykuxnKhJ6CqD4TxswwzD4ENLzUsm4zKB5B8=;
 b=e/nQ1T855/SVPAiK6jRMYXz9bnXfqZuz9QTdrt5Dte7KySHgL+jyRDmz3Blh4h3gnTv3QTe9skhlJ+HvHIxQe6tDkaqZd34xwAieVoA3R9YO0cDSSM82taGpz65y62cv2xjBw1clJqfQRhJdjUWpOJtbXLQJjf8leDiltzRPG1gNJdu7hPZTIV9ZP8caVu2QnNUA46Lj2C8yxwzUnDQtBXRuO3N6sDKVvxRRWNcioRbWD09rEO0JyJ2rLIarVkkEcOoZxAG5MG4jLvgJUY25uPz/WDn9kFMLJ/iunGGH+3OaT0BODX7SqirpKlbw4BCPo/z5VSK6n1qY9VLu2nmAVQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <1175a6a0-9eef-4029-a7c0-e07d15b0aa76@epam.com>
Date: Wed, 6 Nov 2024 16:19:14 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Luca Fancellu <luca.fancellu@arm.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20241106134132.2185492-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0276.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e6::6) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PA4PR03MB6944:EE_
X-MS-Office365-Filtering-Correlation-Id: 57905e91-3c8a-442d-1449-08dcfe6dff41
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?dlFNY01DblFQNFdTQ3QrMVFpT3NkdCt0M09iQlZMQW9PKzVZY1liOVV5RmNz?=
 =?utf-8?B?THdDRnZWSjlpTGhWWjJ4bHpHdDRsbDFBbE15bmZSWkJnRkZxbEJIUitCM2Vo?=
 =?utf-8?B?MEtuMXNvN05kMU9samxLSmdtWWdyQ25xS0NwVkFhbEc5K3ZqckZmcW1IYldl?=
 =?utf-8?B?MWJhSmpHTXpOOE0vYUVoUkFxeGZCVndsMVBzdmQ4UDhDREFRajZPTThTQzhU?=
 =?utf-8?B?R2pBd1VnK3FkVjA3eTY2RTJzdWhqWGY1cWxSem1ReUVpNHdMbFhMbG94ckVL?=
 =?utf-8?B?WUNJYVlxSHhoNDA1Snl3b0hqNG8zN3JMMk9MeWg2VFFqS2lPSVZTOFIwU1p4?=
 =?utf-8?B?RzFxL2tYVEthK2hIOVFZYXJzdFZoL2g4QjlZcjZrWXNnUGhudUdCY3VLQUJC?=
 =?utf-8?B?NmlNU0FrNllidG9YSERRdGxvaXA5TjRoMEtyQjAzZmIzWlNoQ29OM0VJOUdp?=
 =?utf-8?B?bmpXZGxaaFlrdDVLUE1SNWU4UzhoSlN3OWs2dXlXSVgyNVJWWU5iUlZQTitJ?=
 =?utf-8?B?dVQxRUhYYzcxSitLbW9MZHNydzM1bmdxdjBWQStBeHYxRXVucVl5bFF5bEUr?=
 =?utf-8?B?eTc3L29zZ1JzWUxVZWRGaFBMOXBpVUdrSklsSGpzdHhZWW1DNmVXWEQ4c1Vx?=
 =?utf-8?B?ZENEUDZhZ3kwUHd3Nk9NRnhzQTVEWkcxdmlGdE9rY1NaT2xYY0tpcUpsUU1r?=
 =?utf-8?B?eWszUzRLaE5tT3dwZlBUWkJtM2ZUQUlxczdiWjE3ZFh2dUR3aytzQ3h6TW85?=
 =?utf-8?B?RVR4T21wNWcwOWlsbEN2YWJUcmcyeTVvT2pkWEpWb2ZaY0xZZHRKcUVyQlNX?=
 =?utf-8?B?QUZYMERZUTZRZ1FTaWRWRjV0T01KREdjU2xDZWpRZ2htZVd4eGlkVUVJOS84?=
 =?utf-8?B?aHd6TjJHaFE3dC9pQWRrYzBEZXhFQTMzYnNaY0NWaEsvcldkM2I3eXJRaDBW?=
 =?utf-8?B?bUNTcmFmTXQ4UlRmSmlOZ2pCTGlBZ1hVRDc2dkdCZk52dGt6bHh5V2ptRGxW?=
 =?utf-8?B?QTk5SDYzRVNWNWRxU0E2dnlWcGFVZ3Z0d3pLSnZvaTJOMkpVS1VKeTlXV0J0?=
 =?utf-8?B?ejRFT2RWNFM3cnllckQzUnk3Vk1raGM4dVk3Sm9lNm5UVDhxOWZSNlREWHlZ?=
 =?utf-8?B?b2tISWRwWEoxVkpsaFZJbUlEbW90R0RrRGRZelJLWGFhbE5PelZhQTVtd0dj?=
 =?utf-8?B?OVVxM2xvRDd2TTgxZXBoYk1XQ093cnh3L0MxQjYzSk1sL2FjbXJ5ZTVRbE9P?=
 =?utf-8?B?b3Y3ZjRJQUVleUI4dVJWT0lvRGZTNXR1T2xnM0VqOWp4OC9vcmorcDgvcHJh?=
 =?utf-8?B?TzFXS0p5amIxTHcyV3czVWFIcnlEemFZZk91bVZKS2pySHhMMndaYmh2R1B3?=
 =?utf-8?B?ZFMrREN1NGhEOG5yYTlqWWRXOEVrcy9IR2hlMGxQamZzUnZnaDFSUW10TmZu?=
 =?utf-8?B?MlNlY0tWc2NaY2hXSUJkRGVkZm5HWWNIUkR5clhFL0JSZ2dzSG9ndjhkNGhI?=
 =?utf-8?B?ZjZHYktXNk56RU40eHloS1BqQy9QZ0lMaE9hdDVBNTNuYkhWSUVkc0htMDdz?=
 =?utf-8?B?Mk9lQmNRMDZUSksyQ0t3MTdqZklpSkVQVDVPMXRqL1grMk9SK055UFdQMXZU?=
 =?utf-8?B?TDd2WE9XdS9ucCsybWswRmZ3bXp1cUpzcGYrU1Z4YWxiR3E4emhQb3pSY0g0?=
 =?utf-8?B?U1oyc09ZN2pxQ1RPKzE2T0orUHk4N29QeUMrRlc5MHZjWVZ4WFRuZGRzV01v?=
 =?utf-8?Q?mQjwq8OQn1vOaE7oiQE9b58Jm6y/CB2r3b0DXFi?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?b2c0K0dnczdib3BtMmpwWE5ub1NlUjNsVytLdXQzbDZJQWZ1c0Z6ZGtkdCty?=
 =?utf-8?B?Y3JHeC9Jb0MvSU5GSllEOWdLWGQ2QTBMc3JMRjdXdHRhR25mNnQ3bTBsSm40?=
 =?utf-8?B?dVFTeVZjelNtclFtZ1JwQTF3cXY5U2FWYUZyQ29LM3A1NjVHb3paL05nUCtQ?=
 =?utf-8?B?VzJTWGZvcHhEeXlzZVB2Y29Eb0NSYmdUVjVTanZzVkJMSzdVR1cvNlRuL3Zp?=
 =?utf-8?B?NkJDRGZoMTlOeXB6SUVBa2lLQTFmUmg0UnYycnp4V0pGdm4wME90T3I3SElj?=
 =?utf-8?B?YUZ6d3FNKzdnZDBScFM0ajM0KzVYT2N5U2lzTXVCK3BiNGk3Q2xseVJwVG50?=
 =?utf-8?B?WHJWa0VPSy9DMzlOS1RSbXptdXA4RjlzRTlyaTFLVkU3eGo5N0NUWjFTVXVG?=
 =?utf-8?B?a3NkVGhRaXlVNjdNdXEvbEd0bVhUVnNvT01oSGNidzZmUitNTDdyRWFrR3NU?=
 =?utf-8?B?aE9zNnBDVCtLdm8xU21DSjlDeHc3bjZ5WW80V3l0cFhXdTVRWHhKdUM5RjFx?=
 =?utf-8?B?aG9BZ1lEK0VMNlpxSk5oNjBaTnJKRG9aWi9xUHhSdkxZSE44dXdUQ1JDSVNW?=
 =?utf-8?B?SU1lS1JYa1kzbFBVeHhQc09zRjd0UDkrTG5ZQk1oN1kycGcra0xSYmdRa3Fx?=
 =?utf-8?B?QmJLU3MwYjhoQ1QzYml4ZGFMRitSeStxMkg2ODd2TTJ6VW42eWpCbkJ4a1Vq?=
 =?utf-8?B?a2xVR0FKSGZWdys4L0VPU0ZOeHJvZEdSOHo2bFk5N3hMcTZjYzZTQmJOMEpm?=
 =?utf-8?B?VVBzaDlqaHB0YVRyc1hEekt3bENRUVVMbGFxLzFjb21jWG1PVW1Gam5yeElo?=
 =?utf-8?B?cjc0WlB0SEZvc0RCbjdtVzkzSkR0ZDQ5OUkrZlViOEkwT1Q4U2Q4ancwNlBO?=
 =?utf-8?B?dktPS3dLR3dnNjNlb3VHb2hlU1p3SmhINFdZZkpBVHBxMWFHSTByV0JoTHdz?=
 =?utf-8?B?a3hMbUpHdFU2K2hPYXFJVUtaRnpuOVVDaE9UUUdwRk5aMjY0Tm1oZjg3Nk9O?=
 =?utf-8?B?RW42bWEydjVoMDgzYktOVWRSRVN2NjFWWkFRT1VDR0sxNE5GSDB1M2FFRitD?=
 =?utf-8?B?ZUZjN1ZwaUNaRFkrU1ZSRmRhb2IrSWJBeVh3OTh0WlJpQm5hL1dJL21aUjE2?=
 =?utf-8?B?ZWhheWpTVi9oR0NhZVhGVlF0VGJYVzFrZC8vTmVUVVVQaGVlTFZuK3d3Uk83?=
 =?utf-8?B?M1dBOXdaejdUZkhic1BOR21vOEN1ZnR1VWp5bmlWRDBaOWNlVG9tSExaSSsy?=
 =?utf-8?B?cEVKMHJpZjZVOHdGdWhnbWRBY3ZVeEdETnQvRkdtektSb1V1VEQ5bjVwSjg1?=
 =?utf-8?B?eFFFRzQrZHlUNjJiTy9YWFBMMUtTa0RMQjhqTUI1TWlnaG5hdWxYMSsxR2Ir?=
 =?utf-8?B?NUphdlJ2MXVvTXFmOVRxc00wdTRNRXJXTXBZeTdTQmxXL3FIcE5nVTl6ZDI0?=
 =?utf-8?B?SnZ5c29RVFFucWlMdmNwSWJZbG9NMlJvM1N1TVZOTmIxeE80eTBJTUdlbjQx?=
 =?utf-8?B?QW45WmZpRUpkVmtwTE0raTBiQjRLWGc4b1d3MWpteW9GRmNRdThuVWlRWWdo?=
 =?utf-8?B?WUt0OG9CUXhuMit2RU16aVROSHFvUzBFeDlaMUU4eDhCNEdNTUVsUEZidElF?=
 =?utf-8?B?TWJCYW1pTUdKVkpoWEUrYk95cHJCWmxJMlNaQng1VmJlR1ZCejVIYWxZcTNo?=
 =?utf-8?B?a1ZmemZjV0s5VkZtQWZWMEtHSUdxa2tLZUNlRmp0VHp2RmZBdm10M1FjY1R2?=
 =?utf-8?B?MExaaUJjNW1WazlVVmovS2p3Y0ZFSlNGVWUzZzVqVCt4aHNlTWlNZFV2a0p2?=
 =?utf-8?B?YkgvclRLdkNtLzIwYXFUalRSN3dzWnJ1cm52d2huVUt1QU84eFRQV1VRWFlX?=
 =?utf-8?B?d01tWkRnK0R4bExtUVRIV1Byd0xQUEdXOFFVVFJYMkozQ2wxRTB6NXVaT1Nl?=
 =?utf-8?B?Y3dZU3k2VUVBQTNUZmNIa3BwZ2JnWFJIaXVUcjhyVFlndUxqbW12TkVGREJl?=
 =?utf-8?B?V2VlTDBUVmFsUlNKQUpaTUNhTXJrT2VMZTFhWC9jaXB6Q1IrbUczWTFGbWhm?=
 =?utf-8?B?bUhBSkcyaEdKVis1SVlQeHFNVXY2aVI2MVB1VGlLUjd2STErMHZUbUZKdGZ4?=
 =?utf-8?B?NjlMOTkyOTBpcjF5VnlobERBVXNvWnJKa2JsaGhlSzNCeDhmZzRnZk15NzZv?=
 =?utf-8?B?Wmc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57905e91-3c8a-442d-1449-08dcfe6dff41
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2024 14:19:16.8581
 (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: ivvbBzoLabZEHaoNbMz+eLRBq6+q8I4pbH899ayTqPP487VFFCrUYjRrg7oRCDfM1AitYRXCUYSuof4llucfOvEFpG85JT4Mus8UqjPxHw8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6944



On 06.11.24 15:41, Luca Fancellu wrote:
> There are some cases where the device tree exposes a memory range
> in both /memreserve/ and reserved-memory node, in this case the
> current code will stop Xen to boot since it will find that the
> latter range is clashing with the already recorded /memreserve/
> ranges.
> 
> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
> in the /memreserve/ part and even in this case this will prevent
> Xen to boot since it will see that the module memory range that
> it is going to add in 'add_boot_module' clashes with a /memreserve/
> range.
> 
> When Xen populate the data structure that tracks the memory ranges,
> it also adds a memory type described in 'enum membank_type', so
> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
> function to check for exact memory range match given a specific memory
> type; allowing reserved-memory node ranges and boot modules to have an
> exact match with ranges from /memreserve/.
> 
> While there, set a type for the memory recorded during ACPI boot.
> 
> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> I tested this patch adding the same range in a /memreserve/ entry and
> /reserved-memory node, and by letting u-boot pass a ramdisk.
> I've also tested that a configuration running static shared memory still works
> fine.

[...]

Thank you, Dom0 started successfully with Initrd.

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

Meminfo from boot log is below:

(XEN) Checking for initrd in /chosen
(XEN) Initrd 0000000084000040-00000000860864fd
(XEN) RAM: 0000000048000000 - 00000000bfffffff
(XEN) RAM: 0000000480000000 - 00000004ffffffff
(XEN) RAM: 0000000600000000 - 00000006ffffffff
(XEN)
(XEN) MODULE[0]: 0000000048080000 - 00000000481ec000 Xen
(XEN) MODULE[1]: 0000000048000000 - 000000004801e080 Device Tree
(XEN) MODULE[2]: 0000000084000040 - 00000000860864fd Ramdisk
(XEN) MODULE[3]: 0000000048300000 - 000000004a300000 Kernel
(XEN) MODULE[4]: 0000000048070000 - 0000000048080000 XSM
(XEN)  RESVD[0]: 0000000084000040 - 00000000860864fc
(XEN)  RESVD[1]: 0000000060000000 - 000000007fffffff
(XEN)  RESVD[2]: 00000000b0000000 - 00000000bfffffff
(XEN)  RESVD[3]: 00000000a0000000 - 00000000afffffff
...

BR,
-grygorii




From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:32:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831123.1246285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8h58-0003Ms-NP; Wed, 06 Nov 2024 14:32:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831123.1246285; Wed, 06 Nov 2024 14:32: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 1t8h58-0003Ml-K9; Wed, 06 Nov 2024 14:32:26 +0000
Received: by outflank-mailman (input) for mailman id 831123;
 Wed, 06 Nov 2024 14:32: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=lQG8=SB=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1t8h57-0003Mf-24
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:32:25 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2614::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ecddf8db-9c4b-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 15:32:18 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA1PR03MB10697.eurprd03.prod.outlook.com
 (2603:10a6:102:48c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 14:32:13 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%6]) with mapi id 15.20.8114.028; Wed, 6 Nov 2024
 14:32: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: ecddf8db-9c4b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjJmIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImVjZGRmOGRiLTljNGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTAzNTM4LjY3MjkzOCwic2VuZGVyIjoibXlreXRhX3BvdHVyYWlAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=alHGsTpE191ZOnGsr+zMB9DQvlA7eUIlDB46DJA55jAxAjLCAJW1EJfs6ieqYGCtYt2Od4wbzQ9BSRru6F1uTg5qYRAhGsBa8OR8IqgciUbPUvJSPHH/q7TX/iC5hDg8RH4hPehtuQ1cnV7B7RmrL8mIfHaALz3r9G1X7870786GYtsb9gG005OSEvpmgNw4To9OgJbqfzzlwKlcUIO90Z4eaamSlIDaPeLyItSbMCwScssLQ+6gRQhPhEOykl2a22J4Vxc0oHPu7b1tnPdOdOETDYaXyDmorKSN+2DCpdTPBZrmjcXiZ5lxtMqcQwhkJrMnvfwDtVI+4vISY2XhwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D2jS3YFSDVwMR4MCij1kqd9LS89we+Pb26VysOxdMS4=;
 b=guggDLDn35e8i5wus8pz58Kc8V16A6CEd5tXZdb03IRsOkc3gC464pxxqCJdhhUvAf0G0hscZRKNVWrRpAB6BftPDhm1Ev3K2XutdeZ9y4W9Y9Y7ocILQl5ZMDOcTnj43poPsTOyIYe0cBLol/DkiDy+zIn6UrYF98VMhvcPYaoX7KYqQjoO5pB4f8COyc/nBY/5FhhQr6fdsJ+Z1kf0R7RluGWlHRqXNzaIQNcUcOFrKcMXphObX27FfpPJkRRJb6+UfPD8BVCpLqX/EAN+49L2LnjC/0UzU0KXAFyfpJl0PveSukAAkkyik5n8Sp6aerJNBu6+d7pRDOxzNlZTzQ==
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=D2jS3YFSDVwMR4MCij1kqd9LS89we+Pb26VysOxdMS4=;
 b=Si+cc0C/aIeXo1Rmn0eM2E+e9gJkrMzdxPa495IaAii1Y/IL/tA13G+JCHjw7die/8ml51K4C0WmmlaNVgxCn7hjCvlJRl6vVSr6+0GRRvgqn4rkK5bsbXjdJb0C/eGJYOjinVzUshJ3IF7Aghy64nmVj0CCp8WQBZ2OHkCbv+ZbziJNJCOdXXsJIVBqpxUVZsw01ibdcHhSaxtfdz4ljxxiNroWu6pBhGehGhy8d/vUBsanEhtZTYRCrVzLw++e8a6IR1ab5BCT7ioIMa3jJ18ynPotXY3OdUCV6vKRGIi+uWERQhuAZyRuO4AS0hBwXUY/FuzF0gJk6p0h8ZwjSA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Topic: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Index:
 AQHbMCKf4QVge+H9k02dX4ZlwzpGqLKp9EiAgAACIoCAAChLAIAAD1kAgAAEXgCAAB6ggA==
Date: Wed, 6 Nov 2024 14:32:13 +0000
Message-ID: <7c57371b-803a-418b-97cb-55e79516eed4@epam.com>
References:
 <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook> <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
 <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com> <ZytkOP_7nmeSVEYH@macbook>
In-Reply-To: <ZytkOP_7nmeSVEYH@macbook>
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: PAVPR03MB10102:EE_|PA1PR03MB10697:EE_
x-ms-office365-filtering-correlation-id: 97860458-4953-4ce4-854a-08dcfe6fce65
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?bkI1L3ArWjVaTTlLblhLek1hV2ZHR3hVcURsakN6aDkxZHpMMlZVdERlUEZP?=
 =?utf-8?B?RXVZcWxnQndQeU9uN05LWk01dEhkc3Y0R0s5QUpZVmVRLy9Hc1BySEJrcDlj?=
 =?utf-8?B?V3hOZ1dxL0Foc0pUOGg0K1JpeG9BcE1UaW5ERmlaKytjT1JkdTNzaEJzQloz?=
 =?utf-8?B?QUdHN1ArWEpXMzR0VjFvYk9qd0pITWFhc2pwKzRjdEtsMExCNWcvY0cxdVNj?=
 =?utf-8?B?MHRKK2dKL21xWFY3T3o3N3NGWlJUT0NpL3hhM2FocFlOTWpObGJ4aHMwd2cw?=
 =?utf-8?B?R0wzTlRuektYNjljcGw1VHV4UmJrbDVuVXMzdVJ1RW5yMTAveVh4Y1N5dGlh?=
 =?utf-8?B?anRkbDhpYm9kL3Z3SUJNdUNiTWFueURqRzVNTENlZHVHK3hIWjBtYml2OWZz?=
 =?utf-8?B?U2o5ZFpYR1l4Sml6Q05HWGtZbnVQY04xdzlXeVpXSWIvRWVkYnFpdGtxNStm?=
 =?utf-8?B?UHhQdDNiQzdJVzJvdUs5d0tjZDlHbkpKbzNpTmlvcW9vdGNmUVpCVjQreEEz?=
 =?utf-8?B?VzJ0YVNnRDFDUnhsUVhHaU5sbHl5aXNjcmdndXpxaXZyaTBUMSs0YkE3VU1a?=
 =?utf-8?B?M0ZqZjVIK0JvaHdwckJPM3JlcXJyL1RZTXJON0Rzc0hTUk5WUTRINVhHSEJv?=
 =?utf-8?B?ZDJEYnNDZXVSeWI3VmdWQmszTVFyQm9NWFh1czBrQjJEaXJOWnM3ZUt5akM3?=
 =?utf-8?B?RmIrZjFXK08zcmNmRExabU5hMFlEQmNJOUNZZjZqbjhlc0d1QjdJS00ya2tq?=
 =?utf-8?B?MWxZQjNnelZHNFdnTWNNSlBpK0RkK3FaeUxOY1kwUXFpVGc4QStjRENIby9G?=
 =?utf-8?B?bHc1K3hFK2pRSnlUMGplZDVCQlRScG5ocjl1Q25Ed2tmaGRBd3RoSTlRcHlu?=
 =?utf-8?B?TjlkOFlybC9lVGNPRi9XK0Z5WnZxRmwxd3RCSXZxK1RLZUNhbWFFWVVrYTk4?=
 =?utf-8?B?Z21XVXdDV2tWNGdXVkZOWjhOQ2lDMDQzaUg4WXBFWEJBbkpoMkE2NUpPckpx?=
 =?utf-8?B?ZEI3Rm9xNXdvNG1meTdiM2kvcnYxa3gwZUpCTlArMzFxeU8rdmJzUUN0UHJB?=
 =?utf-8?B?K01tZTBqdU00cmt4eGhtbFhyTW9UdUdqbC9vTWdHa0FTUnUwUVdKQzlPdHBM?=
 =?utf-8?B?WmR4QnBXS0dMQVp0SjgwMTV5cnRHNFM2R3RqbXd5Tys4a3UxTEh1UVhMQ1FP?=
 =?utf-8?B?VmRPemdXWjhtQnpUazRDZGdMNytLU0M3dGV3eURKQjdMTkRDR1c3K3hKaDJS?=
 =?utf-8?B?bVF5UjIrVW1GeUUxY21SSHRHU0tlcytDUnVpc2YxZ3gxK2VVUlM4Z0ZDODJM?=
 =?utf-8?B?b3o0aTVkbnR1aGhqL2JROUlWZU1WdDM0djNaSTUxKzN6NE92d3NXb1ppMC9t?=
 =?utf-8?B?QnNlY1NJYUVMMnJaeXZEemtQcGRCKzlTWkpEaTZVcDZKamVFRmltR3ZPQncz?=
 =?utf-8?B?c3BpOWxhTXI3V3dJNWNqdXhCUDN0RkxUenlFeTA0Z2JYdE5BZjA5dERzSTdM?=
 =?utf-8?B?aytCbXRsbVBydFJBNXdmaWZxcjhqM2ZpNlVObFZxQTljRVA4WU1pOGt2bm1J?=
 =?utf-8?B?VEo0ZS9hQ21WcDRDQXRvajV2WlhOV0h0ZHdzTC9la0lrMEpCQUlNcmNZbkFo?=
 =?utf-8?B?d0dEMlhUMC9vWVpsZ3lLd0oyNkxQNElxUnN6YWJTeGhQcWJrcVE1MklMWEVP?=
 =?utf-8?B?RTlQaTRwcFk3YnUwRDhHdEVvNUtReUcxODN6VUJGR0N2SFdVMHFvdHA5U1Rv?=
 =?utf-8?B?eVRoM0x0QWlHQXp2dlFaZXRpclVFZU83Y3EyaStQNlRYMlpFbEJQK2VoQ1pH?=
 =?utf-8?Q?skHgKY1kdTgfOy0qTjZZdi/EkMAODkK+bTJG0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aVlTRGhVdDVwbjhGWUxyNG5TOHJwclVVMmt6WlBYL3lDU1M1aWtKdjVwUFdD?=
 =?utf-8?B?S2h0M3JPemhjTnFMbnNoU0FJY0NCUFdEWkJqMis5NCtMNmd6SUc4QTA5Yktp?=
 =?utf-8?B?T0R2VHM2RkdHWWp2SXBXaEIxdStwTmxJeDJtU25VV2hiK2c1RE84ZmRadGNL?=
 =?utf-8?B?dTQ4VEJMWFo3K0wwUUpoL2xQYlI1UWlwUkVidk9oc2FzbDgxUW9LUVQvRk9S?=
 =?utf-8?B?ZjVZMDlSQW5PV0tUWkNsekNZYjdiWjBJcjhuaFQxUHRmaEMzTDVLSVN6NFBY?=
 =?utf-8?B?NkhjdHlucHhhd0ErM1hnM0FXSzJQazlDdDAzbGNNdFVSeUhlcmZkSWpnYWpM?=
 =?utf-8?B?MGtIVDhuSlNHYUlkRnlDd1FvS2ppdkhwY0lVVVplMWFGc3NkN1JmZi9Ha2Q5?=
 =?utf-8?B?MXNoWm1hTXpWcDlqcW5IdmpKU081QzZiUFkrSTJCRVR3eU9yYS9jUnRNN2pH?=
 =?utf-8?B?OVNJcjIwTC9Pc1dQMHpFdlJzZHBXc3U1R2pFclJCWmVod0FjajJ2M3Q0ZTVT?=
 =?utf-8?B?LzkxZm5iRVV0c2JMYUtEMmlqUXBRcVQvekZWSGFRSUxYWDNpa0FuMUxuREJ6?=
 =?utf-8?B?VFVHM1V4SWdiVWpkWXB2Q243QU1VdWJuM2RKTHlvc1RGQlpPNkZHOU5zdi9N?=
 =?utf-8?B?QVYzTVVsN2tXb1VxUDcyajVpN05vMFpaQm53OTQzTHErVnFNWlo0akYyZ3VL?=
 =?utf-8?B?MlNoZXU5UExPUDdaRGhEK2U1UlJPWWxidlpHRzJxRjZjMHZIdFBmR2hkdTdu?=
 =?utf-8?B?cjRNK3k3V0VjTUxYa1I2b1RqeWVwVTZrM0h1ODlFK3ZuMXkzd1ltZ1ovMzd0?=
 =?utf-8?B?czZONkNvKzQvTUtGWDBaREdWZ3FHeE9qamV2NUxleWtGUGJvWGxvVFI0eTFW?=
 =?utf-8?B?c0NFY0JWdTluajI1VXRhdXlKNnVuOEZzYnN2NjcyTGxhS1FMNFV0UzArYjNV?=
 =?utf-8?B?Q2ZuN0FTYytKSVBkanFWSlBuWFlKVWFvOUNySGw3VVFOMzdpbWppS2o3aUo5?=
 =?utf-8?B?djhOcWkrWHpvblgzeTdhYTREM1FqVXVVbGw4bFBPTkViajFvZitTSXVYRzN3?=
 =?utf-8?B?QkdkTGlHZW5NMi9pUGhYL1cwVFc0NWg4ODNVOXFXbHNXTERaVDdMa29NNFNK?=
 =?utf-8?B?TWV5YldNYzVrMzlqU256eUV0QkxxZVZaWEcvSlo3OEdXY1BnbHYzQ1ltd25t?=
 =?utf-8?B?Q0FQM2dJM28rMzVEVS94K3BJRVFkTmRBL09VVjh5Y2ltUHNmSldVeGppcllU?=
 =?utf-8?B?cldQVG9zV0ZNQWZrcjArbWs1azFtM0tjeTBWY05TUWthVWw0bnhVaS9DaUhi?=
 =?utf-8?B?V2RqVWNiV1VQcmJnM2w5TFNucWVXUUFJVno2RFhIYk5ya1JBbzU1MC9BSWhS?=
 =?utf-8?B?akpBek9pMFJSSlM0THg2M3NQY29qNTB0dk85dkhnTmQrbENHb0hnRFNSWkdV?=
 =?utf-8?B?VC9kREt1d1AvN0lTV0Z4blBPNEl1OGJjUmVYSXJVNUovekZEd2lUSVp1UGQ4?=
 =?utf-8?B?Zy9YdXRtTm5IczU2KzNycDJkWVFJVTF4MVRHSE94SlJjVHB2ektlWE9UM09I?=
 =?utf-8?B?SVhXM3NFaGJSKytLUHJxTmk5RUorYXdmdmdFd0k0eDFZcUsvZmZLS3dOQ2ZG?=
 =?utf-8?B?b3N5d2dRdUVMenA0U2k0NUtqUGhjdG5uejNwdmFjSldOMGhaNGFRRlZmdEdm?=
 =?utf-8?B?a0ZKR0Z4VDV1dkZwd0FBZjJQQ3ppYnNneE55M3hrc1JML1piT1hTYm1qSVhF?=
 =?utf-8?B?R0o4OGlBbVV2ZjJmL082NWlWcERuU1UzbWJTVkw1cWQ2WjBtNWJGN2xMTUNG?=
 =?utf-8?B?ZnE4dHh5RlJ2dXJ6RzNWdXBhcktxMTRMVEZxdVYwbzllUEdXTVorN1dObTJj?=
 =?utf-8?B?VXhsN1JNUVp1SWFFbWtzRG9kVkl0RlpFV0ltS1IvZE9uRllMeTZBRWpRdUxF?=
 =?utf-8?B?bDB3MXV0Z29IaG9zNVE3emtIVlF1YTVxZmtadEtnSHliTmZtdXpZZnJ6RnNj?=
 =?utf-8?B?WmkzUmQwd0VEU2FTWEpmd3dtMVYxZlV0SHBGT0h0L1ZETU12N05HMVVJRytn?=
 =?utf-8?B?YzFDby9OWVBZMm94cmYrK3pUSjc4R2RYV3JOdnU4WGJUbXd2a3pzY21JRFMz?=
 =?utf-8?B?Z2hXSGpxdUQwZEtyVDJYVTZTN0pPYWhSRXlMOEJPUkRSa1ovZVNGWjNaN3NN?=
 =?utf-8?B?R1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <FA3A06A342CE4342AB276A0AF4059F86@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: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 97860458-4953-4ce4-854a-08dcfe6fce65
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2024 14:32:13.7296
 (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: /LB0DNEFnNW4QP2VQy5+LzNmgVLDcS6mSmQQWuXyR4IxEQeatAwDbNYO0kize1Zv6jlwpqQYBYrg8LrbAD5H5w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10697

T24gMDYuMTEuMjQgMTQ6NDIsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IE9uIFdlZCwgTm92
IDA2LCAyMDI0IGF0IDEyOjI2OjU1UE0gKzAwMDAsIE15a3l0YSBQb3R1cmFpIHdyb3RlOg0KPj4g
T24gMDYuMTEuMjAyNCAxMDowNywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBXYWl0IC0g
aG93IGNhbiBtc2ktPnZlY3RvcnMgZXZlciBiZSAwPyAgQUZBSUNUIHRoZXJlJ3Mgbm8gd2F5IGlu
IHRoZQ0KPj4+IE1TSSBsb2dpYyB0byBjb25maWd1cmUgMCB2ZWN0b3JzLCB0aGVyZSB3aWxsIGFs
d2F5cyBiZSBhdCBsZWFzdCAxIHZlY3Rvcg0KPj4+IGVuYWJsZWQuDQo+Pj4NCj4+PiBNYXliZSB3
aGF0IHlvdSB3YW50LCBpZiB0aGlzIGZpeCBpcyBmb3IgY29tcGxpYW5jZSByZWFzb25zLCBpcyBh
bg0KPj4+IGFzc2VydCB1bnJlYWNoYWJsZSB0aGF0IG1zaS0+dmVjdG9ycyA+IDA/DQo+Pg0KPj4g
SSBkaWQgc29tZSBpbnZlc3RpZ2F0aW9uIGFuZCBmaWd1cmVkIG91dCB0aGF0IHRoZSB2YWx1ZSBv
ZiAwIGlzIGJlaW5nDQo+PiBzZXQgYnkgZ3Vlc3Qgd3JpdGluZyB0byBtc2lfY29udHJvbF9yZWcu
IEFzIGZhciBhcyBJIHVuZGVyc3RhbmQsIHRoZQ0KPj4gY29udHJvbF93cml0ZSgpIGZ1bmN0aW9u
IG9ubHkgY2hlY2tzIHRoYXQgdmVjdG9ycyBhcmUgbm90IGdyZWF0ZXIgdGhhbg0KPj4gdGhlIG1h
eGltdW0gYWxsb3dlZCB2YWx1ZSwgYnV0IGRvZXMgbm90IGNoZWNrIGZvciAwLg0KPiANCj4gY29u
dHJvbF93cml0ZSgpIHdpbGwgc2V0IHZlY3RvcnMgdG8gKDFVTCA8PCB2YWwpLCBzbyBldmVuIGlm
IHVzZXINCj4gcHJvdmlkZXMgdmFsID09IDAsIHZlY3RvcnMgd2lsbCBiZSAxLg0KPiANCj4gQ2Fu
IHlvdSBwcm92aWRlIGFuIGV4YW1wbGUgaW5wdXQgdmFsdWUgb2YgY29udHJvbF93cml0ZSgpIHRo
YXQgd2lsbA0KPiBsZWFkIHRvIG1zaS0+dmVjdG9ycyA9PSAwPw0KPiANCj4gSXMgbWF5YmUgbXNp
X21heHZlYyBub3Qgc2V0IGNvcnJlY3RseSBpbiB5b3VyIHVzZSBjYXNlIGlmIHlvdSBpbmRlZWQN
Cj4gc2VlIHZlY3RvcnMgPT0gMD8NCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCkluZGVlZCwgSSBo
YXZlIGNoZWNrZWQgYW5kIG1zaV9tYXh2ZWMgaXMgc2V0IHRvIDAuIFRoYW5rcyBmb3IgcG9pbnRp
bmcNCnRoaXMgb3V0LiBJIHdpbGwgaW52ZXN0aWdhdGUgZnVydGhlciB3aHkgdGhpcyBpcyBoYXBw
ZW5pbmcuIEl0IGlzIHF1aXRlDQpzdHJhbmdlIHRoYXQgaXQgc29tZWhvdyB3b3JrZWQgb24gNC4x
OCB3aXRoIHRoZSBzYW1lIHByb2JsZW0uDQoNCkkgd2lsbCBjaGFuZ2UgdGhlIGNoZWNrIHRvIGFu
IGFzc2VydCB0aGVuLCBzbyBpZiBzb21ldGhpbmcgc2ltaWxhcg0KaGFwcGVucyBhZ2FpbiBpdCBj
YW4gYmUgY2F1Z2h0IGVhcmxpZXIuDQoNCk15a3l0YQ==


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:34:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:34:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831129.1246296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8h6s-0003t3-3O; Wed, 06 Nov 2024 14:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831129.1246296; Wed, 06 Nov 2024 14: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 1t8h6r-0003sw-Up; Wed, 06 Nov 2024 14:34:13 +0000
Received: by outflank-mailman (input) for mailman id 831129;
 Wed, 06 Nov 2024 14:34: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8h6q-0003sk-NF
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:34:12 +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 2dd0c452-9c4c-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 15:34:07 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso720934866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 06:34:07 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb18140a6sm288441666b.195.2024.11.06.06.34.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 06: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: 2dd0c452-9c4c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJkZDBjNDUyLTljNGMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTAzNjQ3LjM1MjY5NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730903647; x=1731508447; 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=zKohzV+Hi0+Y/7hjJZy0JZs/usHdZoFKGVTbo5xN8Cg=;
        b=nhb5F5nYRJ6qIvz8CSYcV3MEbRF+IPkbwIe683j768/oTnByvbQ2BYSf9HtKlmTQt+
         LuhFhQRhil26MSnhx0VGmOZZ5TG+9qnDhmoYuLK+KI73GCL03X2aBVojE8JUNLtNpGgM
         jdGVEuznMTEttf0KZp1jdhGM31Aansp03yF/Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730903647; x=1731508447;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zKohzV+Hi0+Y/7hjJZy0JZs/usHdZoFKGVTbo5xN8Cg=;
        b=j/n5BpUdmAGJW9dL5yPfIO0e6pnFcbr/aEldywykvm2+7adF20AHtYPV+1ABkCfVGO
         7b4EOYvggYl1Tj2/w1D6Ee2zRKrcPbHOzst7yEkiN7RSxbABvV63qqxxQaaoW/jDl33r
         iA2AgfcbHanyTzf1lhOExLiOc2uwOO8iOmLfzxdQxgh2b5/ZBH0HxqoAa00gaRdI+2hM
         GGjc0yG7XEBiLGgYz9EE7kgYi0nRWpLVcgGU5YrHYbyse1/I+KpmraWI6/C7MMOpI3Dn
         MpPBCRtDaLGKmXMWYq72v2eSNq3GChuua6A/PlcF97XQDQwqbY/QgI0jKKK61xXkeLjB
         R2nw==
X-Forwarded-Encrypted: i=1; AJvYcCWhHoakxfze8aD+Pr/g+BCTQqNSvuH9hgG03XIYSZTV3JQZfUCi3wnLHdmZ1s0SsZ9+Nf+ul7CjJxw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJVSu2JptKXWQsgQLjKdcJXcdzpnxLrrKsKPMbyF9rMXI7kYAG
	5NChybtxmkCFsexzqAE7WFgKmAhvfCFh4AuXqieInCXZ9OnRyHudUib0AB7Men0ug1Dr+NPDw8u
	s
X-Google-Smtp-Source: AGHT+IEb75xrB9mL1DJ/s3lJGpXkQe3Za8VJghAEDwlnXMQDgfmyGjo5LcLuW1JDP3qPIQ9S6pBXig==
X-Received: by 2002:a17:907:94cf:b0:a99:f945:8776 with SMTP id a640c23a62f3a-a9e6557ddd2mr2114805466b.24.1730903646696;
        Wed, 06 Nov 2024 06:34:06 -0800 (PST)
Message-ID: <2faf07d6-35a2-46c8-92db-8cf26a304800@citrix.com>
Date: Wed, 6 Nov 2024 14:34:04 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241102172551.17233-3-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
> With all boot modules now labeled by type, it is no longer necessary to
> track whether a boot module was identified via the module_map bitmap.
>
> Introduce a set of helpers to search the list of boot modules based on type and
> the reference type, pointer or array index, desired. Then drop all uses of
> setting a bit in module_map and replace its use for looping with the helpers.
>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v7:
> - collapse the three module_map patches into one,
>   - x86/boot: remove module_map usage from microcode loading
>   - x86/boot: remove module_map usage from xsm policy loading
>   - x86/boot: remove module_map usage by ramdisk loading

Definitely nicer for having been collapsed together.

> ---
>  xen/arch/x86/cpu/microcode/core.c   | 12 ++++-----
>  xen/arch/x86/include/asm/bootinfo.h | 42 ++++++++++++++++++++++++++++-
>  xen/arch/x86/setup.c                | 28 +++++++++++--------
>  xen/xsm/xsm_policy.c                | 19 +++++--------
>  4 files changed, 70 insertions(+), 31 deletions(-)
>
> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
> index f46464241557..b09cf83249f6 100644
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -790,15 +790,13 @@ static int __init early_microcode_load(struct boot_info *bi)
>  
>      if ( opt_scan ) /* Scan for a CPIO archive */
>      {
> -        for ( idx = 1; idx < bi->nr_modules; ++idx )
> +        for_each_boot_module_by_type(idx, bi, BOOTMOD_UNKNOWN)

Minor, but we treat for_each_* as if they were for loops, so this either
wants to be

for_each_boot_module_by_type ( idx, bi, BOOTMOD_UNKNOWN )

or

for_each_boot_module_by_type (idx, bi, BOOTMOD_UNKNOWN)

spacing wise.Â  There's no agreement between maintainers on the extra
spaces inside brackets or not.


However, despite looking at this many times, I've only just realised...Â 
This semantically changes things in a direction that we won't want.

Today, BOOTMOD_RAMDISK only happens a side effect of being "first
BOOTMOD_UNKNOWN standing at the end".

But the EFI boot code ought to set bi->type=RAMDISK explicitly from the
ramdisk= argument (it can probably set type=MICROCODE too), and future
plans with a large HL config probably will be similar.

Anything which sets type=, and type=RAMDISK in particular, prior to
early_microcode_load() excludes it from the search.Â  This is definitely
not what we want.


It's a latent bug for now, but I'd suggest keeping the plain for loop, with

Â Â Â Â Â Â Â Â Â Â Â  /* Search anything unclaimed or likely to be a CPIO archive. */
Â Â Â Â Â Â Â Â Â Â Â  if ( bm->type != BOOTMOD_UNKNOWN &&
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->type != BOOTMOD_RAMDISK )
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;

as the selection criteria.Â  Probably also want to start from idx=0 to
remove assumptions about the dom0 kernel.

Thoughts?



>          {
> +            struct boot_module *bm = &bi->mods[idx];
>              struct cpio_data cd;
>  
> -            if ( !test_bit(idx, bi->module_map) )
> -                continue;
> -
> -            size = bi->mods[idx].mod->mod_end;
> -            data = bootstrap_map_bm(&bi->mods[idx]);
> +            size = bm->mod->mod_end;
> +            data = bootstrap_map_bm(bm);
>              if ( !data )
>              {
>                  printk(XENLOG_WARNING "Microcode: Could not map module %d, size %zu\n",
> @@ -840,7 +838,7 @@ static int __init early_microcode_load(struct boot_info *bi)
>              return -ENODEV;
>          }
>  
> -        if ( !__test_and_clear_bit(idx, bi->module_map) )
> +        if ( bi->mods[idx].type != BOOTMOD_UNKNOWN )
>          {
>              printk(XENLOG_WARNING "Microcode: Chosen module %d already used\n", idx);
>              return -ENODEV;
> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
> index fc74e3b224e7..37dfcc14fa7d 100644
> --- a/xen/arch/x86/include/asm/bootinfo.h
> +++ b/xen/arch/x86/include/asm/bootinfo.h
> @@ -43,10 +43,50 @@ struct boot_info {
>      size_t memmap_length;
>  
>      unsigned int nr_modules;
> -    unsigned long *module_map; /* Temporary */
>      struct boot_module mods[MAX_NR_BOOTMODS + 1];
>  };
>  
> +/*
> + * next_boot_module_index:
> + *     Finds the next boot module of type t, starting at array index start.
> + *
> + * Returns:
> + *      Success - index in boot_module array
> + *      Failure - a value greater than MAX_NR_BOOTMODS
> + */
> +static inline unsigned int __init next_boot_module_index(
> +    const struct boot_info *bi, enum bootmod_type t, unsigned int start)
> +{
> +    unsigned int i;
> +
> +    if ( t == BOOTMOD_XEN )
> +        return bi->nr_modules;
> +
> +    for ( i = start; i < bi->nr_modules; i++ )
> +    {
> +        if ( bi->mods[i].type == t )
> +            return i;
> +    }
> +
> +    return MAX_NR_BOOTMODS + 1;
> +}
> +
> +/*
> + * first_boot_module_index:
> + *     Finds the first boot module of type t.
> + *
> + * Returns:
> + *      Success - index in boot_module array
> + *      Failure - a value greater than MAX_NR_BOOTMODS
> + */
> +#define first_boot_module_index(bi, t)              \
> +    next_boot_module_index(bi, t, 0)
> +
> +#define for_each_boot_module_by_type(i, b, t)       \
> +    for ( i = first_boot_module_index(b, t);        \
> +          i <= (b)->nr_modules;                     \
> +          i = next_boot_module_index(b, t, i + 1) )

(i) = first_...


> diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c
> index 4c195411d05b..12c9de5a1fbf 100644
> --- a/xen/xsm/xsm_policy.c
> +++ b/xen/xsm/xsm_policy.c
> @@ -33,22 +33,18 @@
>  int __init xsm_multiboot_policy_init(
>      struct boot_info *bi, void **policy_buffer, size_t *policy_size)
>  {
> -    int i;
> +    unsigned int i;
>      int rc = 0;
>      u32 *_policy_start;
>      unsigned long _policy_len;
>  
> -    /*
> -     * Try all modules and see whichever could be the binary policy.
> -     * Adjust module_map for the module that is the binary policy.
> -     */
> -    for ( i = bi->nr_modules - 1; i >= 1; i-- )
> +    /* Try all unknown modules and see whichever could be the binary policy. */
> +    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
>      {
> -        if ( !test_bit(i, bi->module_map) )
> -            continue;
> +        struct boot_module *bm = &bi->mods[i];
>  
> -        _policy_start = bootstrap_map(bi->mods[i].mod);
> -        _policy_len   = bi->mods[i].mod->mod_end;
> +        _policy_start = bootstrap_map(bm->mod);
> +        _policy_len   = bm->mod->mod_end;

Minor, but you ought to switch to bootstrap_map_bm() here straight away,
which reduces the churn in patch 9.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:38:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831141.1246305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hBB-0005BQ-JD; Wed, 06 Nov 2024 14:38:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831141.1246305; Wed, 06 Nov 2024 14: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 1t8hBB-0005BJ-FI; Wed, 06 Nov 2024 14:38:41 +0000
Received: by outflank-mailman (input) for mailman id 831141;
 Wed, 06 Nov 2024 14:38: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8hB9-0005BC-A7
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:38:39 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cce13199-9c4c-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 15:38:34 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a99ebb390a5so177400366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 06:38:34 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb1813b25sm289662766b.184.2024.11.06.06.38.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 06: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: cce13199-9c4c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNjZTEzMTk5LTljNGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTAzOTE0LjIzNzI0OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730903914; x=1731508714; 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=4ksB2N02xJrWSph3D7DLXQOVRUEnXl9nPQhOvSB7Xek=;
        b=fXCCUAhpkdfy7rxXjWT+c5/Ml8e4N8IkB/4XZBIRfzxieEw71F31o0drIg1fCc2ZWe
         UyBf0u+lS10yUDkIXTmzvwuVDdOMs2heLEWv9qX0Ab23ywCGsrgopNmE2nLUa4Yuhw54
         GnTNU1xDmNjEgITxS1taQRfceaDVhVpoxt6ZQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730903914; x=1731508714;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4ksB2N02xJrWSph3D7DLXQOVRUEnXl9nPQhOvSB7Xek=;
        b=Bqq9VsyVpT/Bw+2W2Idcv2D38fTcN5Bj+VLX9r4sZS30iRfWyh5hfq/d/k8CXn5VYB
         8sHb5eaHhxrK2WFxPSMVVJAR7iFqIQDKmL026//rM4Mv20t9pdVZtt9wn6WlZtgjOVFh
         RNxH1qzjvKGdUyCl39l5UtL4GHo4/8/id8oBZLUW+sBT9T5BeKWQtzx11UCK/7nigl8u
         9V6dLDrcLuuBIzx5VOMa2SHQPeRkFSng2QDa65BaRUnL4y0qxHuNDC4GvQnaGF+JCSvk
         o8zjn2CkHRQVSETNzJPIusEUZuU2TuZbMXBRDgai/tc9nMXa9JRi0RQ8Hgq1bf83/+wQ
         eZ0A==
X-Forwarded-Encrypted: i=1; AJvYcCWeNw5rvZ2icsv246VnoMUziHfDYNXF3mAQJ5RrycsUAScdkJClsvoTqWGlq3TI+z+vRrl6nj8Xz6k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkaFPMuTnc/OZS+O+KVu0hi/4bH7MJimW36s84dPGkPAxknM7K
	9hMJIrd+c26fmspLYfrnMA4jMC9oUwsjl6BLKG7W2luEs80JBYuF/HVJ93O8LmY=
X-Google-Smtp-Source: AGHT+IHcxRpgHh60ztt5QYgn8q9stKSE5Fba6yIcwGqphVJDoDZPthg7keKjHeLPLfqd/LEWGsAeRw==
X-Received: by 2002:a17:906:d54e:b0:a9a:5b84:ac81 with SMTP id a640c23a62f3a-a9ec669d4f2mr269887566b.31.1730903913531;
        Wed, 06 Nov 2024 06:38:33 -0800 (PST)
Message-ID: <4172f59f-9191-473f-affb-82b8d707bcbc@citrix.com>
Date: Wed, 6 Nov 2024 14:38:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/12] x86/boot: introduce boot module flags
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-4-dpsmith@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241102172551.17233-4-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
> The existing startup code employs various ad-hoc state tracking about certain
> boot module types by each area of the code. A boot module flags bitfield is
> added to enable tracking these different states. The first state to be
> transition by this commit is module relocation.
>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

This looks safe to rebase ahead of patch 2, making it able to be taken
without delay.Â  (With only a trivial adjustment vs bootmod_type in patch
1, it could probably go into staging without waiting for the rest of the
ucode-uaf fixes.)


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:45:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831149.1246314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hI4-0006ut-C7; Wed, 06 Nov 2024 14:45:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831149.1246314; Wed, 06 Nov 2024 14:45: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 1t8hI4-0006um-9R; Wed, 06 Nov 2024 14:45:48 +0000
Received: by outflank-mailman (input) for mailman id 831149;
 Wed, 06 Nov 2024 14:45: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=RQdK=SB=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8hI2-0006ug-Sb
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:45:46 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb673515-9c4d-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 15:45:42 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730904334665738.1396343508083;
 Wed, 6 Nov 2024 06:45: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: cb673515-9c4d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNiNjczNTE1LTljNGQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA0MzQzLjAyMjUyNSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730904337; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=jjAryP8RCLD75W8XZuG/nsK58jWXFd5YVYoqRFBsegDl7xn7f08B/7IqWkdnuU9OCPyR2s1lNE2e/FSCyslmHpQlIQzX3q1k5KjP8VjC+fzRvtr2k+UEhXeSULaX1NWnBAQn4bRgSKW/FHv+zlFZJR+RWNU7aJR8ezmJ3sLKK0U=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730904337; 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=/YLcxsoOOu39VuRd5DmMwgFPCASmAmv3+ERaiS3X7MQ=; 
	b=TyrgM4tfmFrTNMZPvB+U+n3B6Y8i/CqPw93kAwB8JZhKuWO7xcgag1685p06hQ3sdQ+TYAN0LQnTkG/+YA3jRl3EUtn1foCrmou/5pfHWj22FhQ5h0AxZGdGOqICIxEc03NPACIHCLBwdIOwgqGdGNGhylOdNNKzo7oqbk/8Hus=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730904337;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=/YLcxsoOOu39VuRd5DmMwgFPCASmAmv3+ERaiS3X7MQ=;
	b=WAY6dJ5t2CYQKilAY6gBNM1NBY/4sWQGjV0eynL7yfNo20cjeKtlOwxc4gp+iCHj
	+S/PL4Z+mnDK7nk6emBKiEb7JfhJVILLxG+J6rMkiJi8Pq+NWZHrRnBIWUbtjrjhutQ
	QTP3qToSqL1cG9eqhHu0NmsJMimx/dIr5HuBXDtI=
Message-ID: <3102f7a9-de50-4b09-b4ea-48f0887f3a31@apertussolutions.com>
Date: Wed, 6 Nov 2024 09:45:31 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/12] x86/boot: introduce boot module types
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-2-dpsmith@apertussolutions.com>
 <9dcc4580-bb3e-4722-a623-0776a91c1764@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <9dcc4580-bb3e-4722-a623-0776a91c1764@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 09:05, Andrew Cooper wrote:
> On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
>> This commit introduces module types for the types of boot modules that may be
>> passed to Xen. These include xen, kernel, ramdisk, microcode, and xsm policy.
>> This reduces the need for hard coded order assumptions and global variables to
>> be used by consumers of boot modules, such as domain construction.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, albeit it with
> one extra suggestion.

Sure.

>> ---
>> Changes since v7:
>> - merged the addition of microcode and xsm boot mod types
>>
>> Changes since v5:
>> - added guard around initrd type assignment
>> - removed a missed rebase artifact
>> ---
>>   xen/arch/x86/cpu/microcode/core.c   |  1 +
>>   xen/arch/x86/include/asm/bootinfo.h | 12 ++++++++++++
>>   xen/arch/x86/setup.c                |  4 ++++
>>   xen/xsm/xsm_policy.c                |  1 +
>>   4 files changed, 18 insertions(+)
>>
>> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
>> index 1fa6cbf3d364..f46464241557 100644
>> --- a/xen/arch/x86/cpu/microcode/core.c
>> +++ b/xen/arch/x86/cpu/microcode/core.c
> 
> @@ -831,6 +831,10 @@ static int __init early_microcode_load(struct
> boot_info *bi)
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>  Â Â Â Â Â Â Â Â Â Â Â Â  }
>   
> +Â Â Â Â Â Â Â Â Â Â Â  /*
> +Â Â Â Â Â Â Â Â Â Â Â Â  * Do not alter this boot module's type.Â  We're most likely
> +Â Â Â Â Â Â Â Â Â Â Â Â  * peeking at dom0's initrd.
> +Â Â Â Â Â Â Â Â Â Â Â Â  */
>  Â Â Â Â Â Â Â Â Â Â Â Â  data = cd.data;
>  Â Â Â Â Â Â Â Â Â Â Â Â  size = cd.size;
>  Â Â Â Â Â Â Â Â Â Â Â Â  goto found;
> 
> 
> To make it absolutely crystal clear that ...
> 

Absolutely, as it might not be clear to a future editor of the code.

>> @@ -845,6 +845,7 @@ static int __init early_microcode_load(struct boot_info *bi)
>>               printk(XENLOG_WARNING "Microcode: Chosen module %d already used\n", idx);
>>               return -ENODEV;
>>           }
>> +        bi->mods[idx].type = BOOTMOD_MICROCODE;
> 
> ... this is deliberately not done on the scan path.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:50:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:50:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831158.1246325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hMj-0000pn-Tk; Wed, 06 Nov 2024 14:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831158.1246325; Wed, 06 Nov 2024 14:50: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 1t8hMj-0000pg-QL; Wed, 06 Nov 2024 14:50:37 +0000
Received: by outflank-mailman (input) for mailman id 831158;
 Wed, 06 Nov 2024 14:50: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=RQdK=SB=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8hMi-0000pV-TX
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:50:36 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78b187ed-9c4e-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 15:50:33 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730904625295152.6335008174757;
 Wed, 6 Nov 2024 06:50: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: 78b187ed-9c4e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc4YjE4N2VkLTljNGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTA0NjMzLjQ3NjIwMSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730904628; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=QD3fEgmN9opbEU9IYOfp7FrjQTWEnEGI1oJiWTJSxVT+kI4Lh3/Eveo01baLUtK/v5Vqgrk9DK01lwX1l9WMInt6+fjP4hc7LZA+wISFP3IrdHzJ2RErghCuRFS7V4sMcLQkxaKdYER0eV46CNhJfSqOIh8o/pUZgMU94guwark=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730904628; 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=fvljI8DRXGMEXkm48aXLoDUy0iR1Mc4S10rWOr2Clhc=; 
	b=AtqHV/Z17LaFnRorgEHphXG31EcaLxaQ5tvmGRq25hemmOkiREEkXEJL77Wwu5u6WIfhnpuXM/OeHdAZA7aY7oUc6pXZxqfP28Ct7Zj2WnAtAhL1NMm0GedMjJhj/RH620QSP0jL6QZfJ3w5kXzIYZ19QasEbv3qNO6syo1Tex8=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730904628;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=fvljI8DRXGMEXkm48aXLoDUy0iR1Mc4S10rWOr2Clhc=;
	b=C7SxY3Fv/GrR2f26Ku0Ssv7+FCksKFs9tLjQHw2Et80bMPULCywTVBCxEnTK1TAc
	E9Kyl2JJMOjImU6fXrBPPw+fxF2NcT8oM+lLFoTIEEh0C7CIhT5VmMHmM+2Tptgual/
	jycMAxgwb2EhhrMgvKKO7RThpSr2EVPUEooO5Wi8=
Message-ID: <111206f7-2a87-4a31-a6fd-003b5941cb85@apertussolutions.com>
Date: Wed, 6 Nov 2024 09:50:23 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
 <2faf07d6-35a2-46c8-92db-8cf26a304800@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <2faf07d6-35a2-46c8-92db-8cf26a304800@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 09:34, Andrew Cooper wrote:
> On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
>> With all boot modules now labeled by type, it is no longer necessary to
>> track whether a boot module was identified via the module_map bitmap.
>>
>> Introduce a set of helpers to search the list of boot modules based on type and
>> the reference type, pointer or array index, desired. Then drop all uses of
>> setting a bit in module_map and replace its use for looping with the helpers.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v7:
>> - collapse the three module_map patches into one,
>>    - x86/boot: remove module_map usage from microcode loading
>>    - x86/boot: remove module_map usage from xsm policy loading
>>    - x86/boot: remove module_map usage by ramdisk loading
> 
> Definitely nicer for having been collapsed together.

Most definitely.

>> ---
>>   xen/arch/x86/cpu/microcode/core.c   | 12 ++++-----
>>   xen/arch/x86/include/asm/bootinfo.h | 42 ++++++++++++++++++++++++++++-
>>   xen/arch/x86/setup.c                | 28 +++++++++++--------
>>   xen/xsm/xsm_policy.c                | 19 +++++--------
>>   4 files changed, 70 insertions(+), 31 deletions(-)
>>
>> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
>> index f46464241557..b09cf83249f6 100644
>> --- a/xen/arch/x86/cpu/microcode/core.c
>> +++ b/xen/arch/x86/cpu/microcode/core.c
>> @@ -790,15 +790,13 @@ static int __init early_microcode_load(struct boot_info *bi)
>>   
>>       if ( opt_scan ) /* Scan for a CPIO archive */
>>       {
>> -        for ( idx = 1; idx < bi->nr_modules; ++idx )
>> +        for_each_boot_module_by_type(idx, bi, BOOTMOD_UNKNOWN)
> 
> Minor, but we treat for_each_* as if they were for loops, so this either
> wants to be
> 
> for_each_boot_module_by_type ( idx, bi, BOOTMOD_UNKNOWN )
> 
> or
> 
> for_each_boot_module_by_type (idx, bi, BOOTMOD_UNKNOWN)
> 
> spacing wise.Â  There's no agreement between maintainers on the extra
> spaces inside brackets or not.

If it is considered a for loop, then I would feel obliged to add the 
spacing per the coding style.

> However, despite looking at this many times, I've only just realised...
> This semantically changes things in a direction that we won't want.
> 
> Today, BOOTMOD_RAMDISK only happens a side effect of being "first
> BOOTMOD_UNKNOWN standing at the end".
> 
> But the EFI boot code ought to set bi->type=RAMDISK explicitly from the
> ramdisk= argument (it can probably set type=MICROCODE too), and future
> plans with a large HL config probably will be similar.
> 
> Anything which sets type=, and type=RAMDISK in particular, prior to
> early_microcode_load() excludes it from the search.Â  This is definitely
> not what we want.
> 
> 
> It's a latent bug for now, but I'd suggest keeping the plain for loop, with
> 
>  Â Â Â Â Â Â Â Â Â Â Â  /* Search anything unclaimed or likely to be a CPIO archive. */
>  Â Â Â Â Â Â Â Â Â Â Â  if ( bm->type != BOOTMOD_UNKNOWN &&
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->type != BOOTMOD_RAMDISK )
>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
> 
> as the selection criteria.Â  Probably also want to start from idx=0 to
> remove assumptions about the dom0 kernel.
> 
> Thoughts?

Yah, as much as it would be nice to use the helper, this is the 
exception where there is a complex match condition to be handled. This 
will be switched over to an explicit for loop.

>>           {
>> +            struct boot_module *bm = &bi->mods[idx];
>>               struct cpio_data cd;
>>   
>> -            if ( !test_bit(idx, bi->module_map) )
>> -                continue;
>> -
>> -            size = bi->mods[idx].mod->mod_end;
>> -            data = bootstrap_map_bm(&bi->mods[idx]);
>> +            size = bm->mod->mod_end;
>> +            data = bootstrap_map_bm(bm);
>>               if ( !data )
>>               {
>>                   printk(XENLOG_WARNING "Microcode: Could not map module %d, size %zu\n",
>> @@ -840,7 +838,7 @@ static int __init early_microcode_load(struct boot_info *bi)
>>               return -ENODEV;
>>           }
>>   
>> -        if ( !__test_and_clear_bit(idx, bi->module_map) )
>> +        if ( bi->mods[idx].type != BOOTMOD_UNKNOWN )
>>           {
>>               printk(XENLOG_WARNING "Microcode: Chosen module %d already used\n", idx);
>>               return -ENODEV;
>> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
>> index fc74e3b224e7..37dfcc14fa7d 100644
>> --- a/xen/arch/x86/include/asm/bootinfo.h
>> +++ b/xen/arch/x86/include/asm/bootinfo.h
>> @@ -43,10 +43,50 @@ struct boot_info {
>>       size_t memmap_length;
>>   
>>       unsigned int nr_modules;
>> -    unsigned long *module_map; /* Temporary */
>>       struct boot_module mods[MAX_NR_BOOTMODS + 1];
>>   };
>>   
>> +/*
>> + * next_boot_module_index:
>> + *     Finds the next boot module of type t, starting at array index start.
>> + *
>> + * Returns:
>> + *      Success - index in boot_module array
>> + *      Failure - a value greater than MAX_NR_BOOTMODS
>> + */
>> +static inline unsigned int __init next_boot_module_index(
>> +    const struct boot_info *bi, enum bootmod_type t, unsigned int start)
>> +{
>> +    unsigned int i;
>> +
>> +    if ( t == BOOTMOD_XEN )
>> +        return bi->nr_modules;
>> +
>> +    for ( i = start; i < bi->nr_modules; i++ )
>> +    {
>> +        if ( bi->mods[i].type == t )
>> +            return i;
>> +    }
>> +
>> +    return MAX_NR_BOOTMODS + 1;
>> +}
>> +
>> +/*
>> + * first_boot_module_index:
>> + *     Finds the first boot module of type t.
>> + *
>> + * Returns:
>> + *      Success - index in boot_module array
>> + *      Failure - a value greater than MAX_NR_BOOTMODS
>> + */
>> +#define first_boot_module_index(bi, t)              \
>> +    next_boot_module_index(bi, t, 0)
>> +
>> +#define for_each_boot_module_by_type(i, b, t)       \
>> +    for ( i = first_boot_module_index(b, t);        \
>> +          i <= (b)->nr_modules;                     \
>> +          i = next_boot_module_index(b, t, i + 1) )
> 
> (i) = first_...

Ack.

>> diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c
>> index 4c195411d05b..12c9de5a1fbf 100644
>> --- a/xen/xsm/xsm_policy.c
>> +++ b/xen/xsm/xsm_policy.c
>> @@ -33,22 +33,18 @@
>>   int __init xsm_multiboot_policy_init(
>>       struct boot_info *bi, void **policy_buffer, size_t *policy_size)
>>   {
>> -    int i;
>> +    unsigned int i;
>>       int rc = 0;
>>       u32 *_policy_start;
>>       unsigned long _policy_len;
>>   
>> -    /*
>> -     * Try all modules and see whichever could be the binary policy.
>> -     * Adjust module_map for the module that is the binary policy.
>> -     */
>> -    for ( i = bi->nr_modules - 1; i >= 1; i-- )
>> +    /* Try all unknown modules and see whichever could be the binary policy. */
>> +    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
>>       {
>> -        if ( !test_bit(i, bi->module_map) )
>> -            continue;
>> +        struct boot_module *bm = &bi->mods[i];
>>   
>> -        _policy_start = bootstrap_map(bi->mods[i].mod);
>> -        _policy_len   = bi->mods[i].mod->mod_end;
>> +        _policy_start = bootstrap_map(bm->mod);
>> +        _policy_len   = bm->mod->mod_end;
> 
> Minor, but you ought to switch to bootstrap_map_bm() here straight away,
> which reduces the churn in patch 9.

Ack.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:52:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:52:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831164.1246334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hOh-0001Mh-88; Wed, 06 Nov 2024 14:52:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831164.1246334; Wed, 06 Nov 2024 14:52: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 1t8hOh-0001Ma-5G; Wed, 06 Nov 2024 14:52:39 +0000
Received: by outflank-mailman (input) for mailman id 831164;
 Wed, 06 Nov 2024 14:52: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=RQdK=SB=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8hOf-0001MU-Ci
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:52:37 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1328d86-9c4e-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 15:52:34 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730904747861384.24842207424683;
 Wed, 6 Nov 2024 06:52: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: c1328d86-9c4e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMxMzI4ZDg2LTljNGUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA0NzU1LjEyMTEyOCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730904750; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=BxioXDAQQUi8w91cOKiyxiB4EHoc2A6tskBkTG7Pb6wTS3oNWsd4kfhZhIV0h4vtsWNTUk8SREEtkAfnyId68tIUq5Ofj/moG6czJZ6cp/TRhgXIczXcYKDXHlSQo+sCS/G8b0vTnRMGR0w/8RqM3GI4YlXYX1wKSjL/Fb6xVbE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730904750; 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=j0GDESmwi4wUWs8/LMK6scNZ8RanVoOqDz3vO8QCLbs=; 
	b=mOanUUxluL3LE9a0yXO+FZniIKEXrBvRIVc+Mf3d0qFR4urzc+om2rBfKCQxFSH6E3qKIJfxrNG3GMJekwaotE33tKDdr6COMnGTdujkY+g2ahXqmOK/wG1NMUmGga/RCzt7oucut/HkZBhVOAfEZi8gfexZ968yg//LLgl+sgI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730904750;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=j0GDESmwi4wUWs8/LMK6scNZ8RanVoOqDz3vO8QCLbs=;
	b=MQZP+OS4Fa9MDkv9Ate6ENIKz0Ls2lGOMl0LForhrCvOL/1chFLbohbBLQyGnCoY
	K1MGaGoL3M4GHcLEsofdd0yU+4jhm9b9L+G5HyUbq7SVNRvzBKenGfKToS0Kr8osZ1n
	knh9HNEE1auNjJUXiY+TJLwthakrgc/XE5iAO+Zc=
Message-ID: <f1ac596c-80e1-4d14-950e-2e014ef3a474@apertussolutions.com>
Date: Wed, 6 Nov 2024 09:52:26 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/12] x86/boot: introduce boot module flags
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-4-dpsmith@apertussolutions.com>
 <4172f59f-9191-473f-affb-82b8d707bcbc@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <4172f59f-9191-473f-affb-82b8d707bcbc@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 09:38, Andrew Cooper wrote:
> On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
>> The existing startup code employs various ad-hoc state tracking about certain
>> boot module types by each area of the code. A boot module flags bitfield is
>> added to enable tracking these different states. The first state to be
>> transition by this commit is module relocation.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> This looks safe to rebase ahead of patch 2, making it able to be taken
> without delay.Â  (With only a trivial adjustment vs bootmod_type in patch
> 1, it could probably go into staging without waiting for the rest of the
> ucode-uaf fixes.)

Thank you and I have no objections as it would reduce the size of v9.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:55:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:55:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831171.1246353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hRE-000207-NI; Wed, 06 Nov 2024 14:55:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831171.1246353; Wed, 06 Nov 2024 14:55: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 1t8hRE-000200-JQ; Wed, 06 Nov 2024 14:55:16 +0000
Received: by outflank-mailman (input) for mailman id 831171;
 Wed, 06 Nov 2024 14:55: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8hRD-0001zS-0S
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:55:15 +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 1ee5d2e5-9c4f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 15:55:10 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cefa22e9d5so765065a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 06:55:10 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6aafe0asm2819476a12.23.2024.11.06.06.55.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 06:55: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: 1ee5d2e5-9c4f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFlZTVkMmU1LTljNGYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA0OTEwLjgxMjI0MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730904910; x=1731509710; 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=JgqN6sR5UD1PdYwuMkpfyRkRhRTaQoIDTKuF/rDdOX8=;
        b=Kv4zTdrCjnuwCnpsx7yoh9C/6kHpEbIIy/VVC9lTAOU5+NKxcBpXrnRa4rCtFgVftU
         4fUllhy5G7B/JIbzdxlsxE8JsPpIIy7kNGoBTupXULJmBEvfYBlik33iGlAoFJEeLwxW
         ou444RS/+FhfjVgAmGARN8b1pqpJ0adn24mh8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730904910; x=1731509710;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JgqN6sR5UD1PdYwuMkpfyRkRhRTaQoIDTKuF/rDdOX8=;
        b=SNZ4HBhAiZWXJqGGcKYshtquAG8KOucIMHkl6udY+xrgXKNwylwG50fEFCJdUYmrUB
         2SANa3zL5VRnzfxvVEvv4z3NGnp+S+iMEDWnmICC9VQDs8dUVklw4Np4Yfhk7WpFSy3w
         KfZyrv6+vu5q+27kPtY/vc5xFyQyB4A1dxkdctBlw+rxI/O76J2fKalEozAECzJJjN2o
         xNJCLDya5KzwIdf+kmrYXlEsGAxeY2bO8Db+eynYSLgE9a9CTZSfykicC8jH4oVLTWiR
         hNj8okHb2cRhoVF1EqTSqBcJvCqdUslGneqr1xsXj9PmIK4Nmm7Q9vJ7unBzSblmTYjM
         Vxyg==
X-Forwarded-Encrypted: i=1; AJvYcCUUo8ve7H+xNwjo9nRzwW6M1PA4hp62Lt3g7e7NUS3Dp3YEl7ACsWDZ+8lI14l6aYAobtuv76P0bTg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUEhfkgCgWJQuW2KP5i3fr4fftmQhiMjDC/jAZnlNbkknyIX7w
	TGMyMnULlHhHKTndgAGl4WAjF0cyyFPwezX7+GE4412IS6A35lQMXpqgrgLwFok=
X-Google-Smtp-Source: AGHT+IGV6pzu4QWw5cA2rKECJXIiSDXsOFxXYRDgJ+eib8oCokspuB2rqevBByNoLWdxgA+ADg0f9A==
X-Received: by 2002:a05:6402:51d0:b0:5ce:d4db:ddb5 with SMTP id 4fb4d7f45d1cf-5ced4dbded9mr8745557a12.32.1730904910174;
        Wed, 06 Nov 2024 06:55:10 -0800 (PST)
Message-ID: <68d95851-0938-4efc-b885-de564600b40c@citrix.com>
Date: Wed, 6 Nov 2024 14:55:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
 <2faf07d6-35a2-46c8-92db-8cf26a304800@citrix.com>
 <111206f7-2a87-4a31-a6fd-003b5941cb85@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <111206f7-2a87-4a31-a6fd-003b5941cb85@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 2:50 pm, Daniel P. Smith wrote:
> On 11/6/24 09:34, Andrew Cooper wrote:Â 
>> However, despite looking at this many times, I've only just realised...
>> This semantically changes things in a direction that we won't want.
>>
>> Today, BOOTMOD_RAMDISK only happens a side effect of being "first
>> BOOTMOD_UNKNOWN standing at the end".
>>
>> But the EFI boot code ought to set bi->type=RAMDISK explicitly from the
>> ramdisk= argument (it can probably set type=MICROCODE too), and future
>> plans with a large HL config probably will be similar.
>>
>> Anything which sets type=, and type=RAMDISK in particular, prior to
>> early_microcode_load() excludes it from the search.Â  This is definitely
>> not what we want.
>>
>>
>> It's a latent bug for now, but I'd suggest keeping the plain for
>> loop, with
>>
>> Â Â Â Â Â Â Â Â Â Â Â Â  /* Search anything unclaimed or likely to be a CPIO
>> archive. */
>> Â Â Â Â Â Â Â Â Â Â Â Â  if ( bm->type != BOOTMOD_UNKNOWN &&
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->type != BOOTMOD_RAMDISK )
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>>
>> as the selection criteria.Â  Probably also want to start from idx=0 to
>> remove assumptions about the dom0 kernel.
>>
>> Thoughts?
>
> Yah, as much as it would be nice to use the helper, this is the
> exception where there is a complex match condition to be handled. This
> will be switched over to an explicit for loop.

This is simple enough, and I'm happy to fix this all up on commit.Â  Save
it going around the loop yet again.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 14:57:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 14:57:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831185.1246371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hT6-0003HA-95; Wed, 06 Nov 2024 14:57:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831185.1246371; Wed, 06 Nov 2024 14:57: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 1t8hT6-0003H3-69; Wed, 06 Nov 2024 14:57:12 +0000
Received: by outflank-mailman (input) for mailman id 831185;
 Wed, 06 Nov 2024 14:57: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=NlMZ=SB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8hT5-0003Gv-LX
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 14:57:11 +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 654363d0-9c4f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 15:57:08 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a99e3b3a411so174863166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 06:57:08 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d4d6bsm288757966b.44.2024.11.06.06.57.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 06:57: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: 654363d0-9c4f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY1NDM2M2QwLTljNGYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA1MDI4Ljg2NDk2LCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730905028; x=1731509828; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Tg5fNpdufbLioTRL7mwtxuR06iGyLbq0m33VqiHthWA=;
        b=FAtn+K14dJVE4VKJ8nK29Yi6IldJfILoXvlL2YbTgQvUIN0n5c4AtmnaukJ3y8hPIe
         Gk/7BINXRpmikgikM2WUAPAH/434s2u+ys+sh7xDmCAOn9dK/6OinG+/RL8mQEEuigCJ
         uKDDYJ9mcHNW+LQX7GjMMiTFLvMe53iL2j3IM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730905028; x=1731509828;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Tg5fNpdufbLioTRL7mwtxuR06iGyLbq0m33VqiHthWA=;
        b=eVduqshyUAjWNf+PzHmFZeAyuPObQbOV6njTPku4L16xFZs5HAN7yNLS32AWvvgz5Q
         oIbUgFbK4JQXTdK5bMi8FUFiWbgA9mep9/u5K+Apvlp38NJHX0tbasKYi/p2vJwQfZUY
         9JRwk64iTObttxM9G6tbfptdRLKBYmefWKbE+rpOTFKVjWI4tvVHXM5EHu3DE9dYBayI
         MToiy6f+CsBiPTS0TqP13J9sYkPAURDe3chn3tFO4XI/RPZRZjP9lfJAbuQQ257yiNCS
         FOKm+eDuIyKFANRWnE3OItCWkwG7K6bHmzy7tqMgTAWccGPmobIG6ab5tOdZ3LyDm2mj
         G+FA==
X-Forwarded-Encrypted: i=1; AJvYcCXLABks2+SXmjct+FcylstG9fapIiUNwXSn+0tjb98Cy7SkPgS2VOK6wenw7RZcv0Ag1K3UWk91xKU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfqotH1aWtdgLLne6T+epJy59Jicn/BN5wMhBDf++k0qCGQqce
	Mg35x47ianW3tRlo4WC5+G+Vb++E4db+28GAEy/trW9t/GHd/+Yd/Ix0ZyFE2Z6u0QQcvh1RmWL
	Y
X-Google-Smtp-Source: AGHT+IHgz1AnhI9xEvc3uOOLKDRKg7ZOmdeE67VuCsqIdCT08Ev8GMeLeEdACBk1wOnBPk52rDUgnw==
X-Received: by 2002:a17:907:da3:b0:a9a:f19:8c2a with SMTP id a640c23a62f3a-a9ec65b3a66mr318185266b.6.1730905028159;
        Wed, 06 Nov 2024 06:57:08 -0800 (PST)
Date: Wed, 6 Nov 2024 15:57:06 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Message-ID: <ZyuDwnYj5-uCWrMy@macbook>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook>
 <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
 <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com>
 <ZytkOP_7nmeSVEYH@macbook>
 <7c57371b-803a-418b-97cb-55e79516eed4@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7c57371b-803a-418b-97cb-55e79516eed4@epam.com>

On Wed, Nov 06, 2024 at 02:32:13PM +0000, Mykyta Poturai wrote:
> On 06.11.24 14:42, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 06, 2024 at 12:26:55PM +0000, Mykyta Poturai wrote:
> >> On 06.11.2024 10:07, Roger Pau MonnÃ© wrote:
> >>> Wait - how can msi->vectors ever be 0?  AFAICT there's no way in the
> >>> MSI logic to configure 0 vectors, there will always be at least 1 vector
> >>> enabled.
> >>>
> >>> Maybe what you want, if this fix is for compliance reasons, is an
> >>> assert unreachable that msi->vectors > 0?
> >>
> >> I did some investigation and figured out that the value of 0 is being
> >> set by guest writing to msi_control_reg. As far as I understand, the
> >> control_write() function only checks that vectors are not greater than
> >> the maximum allowed value, but does not check for 0.
> > 
> > control_write() will set vectors to (1UL << val), so even if user
> > provides val == 0, vectors will be 1.
> > 
> > Can you provide an example input value of control_write() that will
> > lead to msi->vectors == 0?
> > 
> > Is maybe msi_maxvec not set correctly in your use case if you indeed
> > see vectors == 0?
> > 
> > Thanks, Roger.
> 
> Indeed, I have checked and msi_maxvec is set to 0. Thanks for pointing
> this out. I will investigate further why this is happening. It is quite
> strange that it somehow worked on 4.18 with the same problem.

Check whether pdev_msi_init() is called during device addition, as
that's what initializes msi_maxvec.  Another cause could be memory
corruption.

> I will change the check to an assert then, so if something similar
> happens again it can be caught earlier.

Let's try to figure out what causes msi_maxvec to be 0 in your case
and then we can see how to better detect this.  If msi_maxvec needs to
be checked it should likely be done in init_msi().

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 15:02:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 15:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831191.1246380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hYQ-0005Bm-SY; Wed, 06 Nov 2024 15:02:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831191.1246380; Wed, 06 Nov 2024 15:02: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 1t8hYQ-0005Bf-Q2; Wed, 06 Nov 2024 15:02:42 +0000
Received: by outflank-mailman (input) for mailman id 831191;
 Wed, 06 Nov 2024 15:02: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=bDCL=SB=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t8hYP-0005BZ-Gr
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 15:02:41 +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 28236dfe-9c50-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 16:02:35 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a99eb8b607aso890715766b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 07:02:35 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a2e91sm296077866b.26.2024.11.06.07.02.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 07:02: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: 28236dfe-9c50-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI4MjM2ZGZlLTljNTAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTA1MzU1LjgyNTA0OSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730905355; x=1731510155; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MYQnvUg8qXmqxZhe4pOZg0z4JIsPnilcJseYQw9ea+4=;
        b=PKj4XJOIxlm+MFpuH96hH3euls9klIItIdFbDSbYccX1FDuzgVsChCd2uDKsb5djvM
         /QEpHtcQcbzax0XsYzErAdC5suDgDlZtuZtG8y4gwwpuTyE1QPqpre8wISxCl2EjxYDw
         X+y4S8r521rhF2PWEJZkseZH+dfZZNU5mhwxQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730905355; x=1731510155;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=MYQnvUg8qXmqxZhe4pOZg0z4JIsPnilcJseYQw9ea+4=;
        b=jqRJhbxF5lDoN/49cosht5peEjdFfwKykcAyevmzaqWJt+lpWeyvku53nKwH1Nybd5
         /cj6lA72s9i1eE3Hr4nUEyqb2nAecf+h03bEO97CwmHi78CNkkll6nW2PyKeAOyeX+qg
         +1BfOfB4kQZXw4X7Pez0Au88gb+tiQNj6D3kzXP6HqR500U3KPmIvFdCQL9gUfMBhpqB
         ib8RZdrW2m6xDHUfaIxhA7z7pHAkQmqQKL0kESzkFEbb5xkZbvRyqAtmpctRc7O6Krma
         QUQjR69U5rmZ2+P861JZXii4t+b6bMP31dlccsq6sYn9j+yplGkH5b4B2w5tb7KZq4Ra
         qCKg==
X-Forwarded-Encrypted: i=1; AJvYcCVHC+n9lEA/Q8UZBMYUNEt8sMYeAU11d+ikfFgpMVC/dk0ULo6KEYi0LjzQqdHML0grBpfr1Dd/xI0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKcSe07c7BHVriN5/hO5boYGMucwallVnXts8x6yXW5R7RQgqj
	cq55qB0xFhZ0Qob2SsnP4qSu7wh+19SModDoij8zXdQfrZxya1I3XM6YFRvuJmA=
X-Google-Smtp-Source: AGHT+IGsMslr/DP7vLv8ZqbYWDljs+y+FwqJPeYKz5O+f2AsWvem7B9bwuuEByoKAoDkZeAXy9Xw9A==
X-Received: by 2002:a17:907:2d28:b0:a9e:c442:2c15 with SMTP id a640c23a62f3a-a9ec4423328mr304508966b.38.1730905354395;
        Wed, 06 Nov 2024 07:02:34 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Wed, 06 Nov 2024 15:02:31 +0000
Message-Id: <D5F6QL236EKV.Q4U5DC28EOO4@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich"
 <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini"
 <sstabellini@kernel.org>
Subject: Re: [XEN RFC PATCH v4 2/5] docs/designs: Add a design document for
 IOMMU subsystem redesign
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <cover.1730718102.git.teddy.astie@vates.tech>
 <b847b3653a7410600e9e4bf87b515bdccd6d9496.1730718102.git.teddy.astie@vates.tech>
In-Reply-To: <b847b3653a7410600e9e4bf87b515bdccd6d9496.1730718102.git.teddy.astie@vates.tech>

Hi,

I have absolutely no idea how much of the code is yours, vs what was there
before. I'm just going to infodump as I go and hope that proves helpful in =
some
way.

On Mon Nov 4, 2024 at 2:28 PM GMT, Teddy Astie wrote:
> Current IOMMU subsystem has some limitations that make PV-IOMMU practical=
ly impossible.
> One of them is the assumtion that each domain is bound to a single "IOMMU=
 domain", which
> also causes complications with quarantine implementation.
>
> Moreover, current IOMMU subsystem is not entirely well-defined, for insta=
nce, the behavior
> of map_page between ARM SMMUv3 and x86 VT-d/AMD-Vi greatly differs. On AR=
M, it can modifies
> the domain page table while on x86, it may be forbidden (e.g using HAP wi=
th PVH), or only
> modifying the devices PoV (e.g using PV).
>
> The goal of this redesign is to define more explicitely the behavior and =
interface of the
> IOMMU subsystem while allowing PV-IOMMU to be effectively implemented.
>
> Signed-off-by Teddy Astie <teddy.astie@vates.tech>
> ---
> Changed in V2:
> * nit s/dettach/detach/
>
> Changed in v4:
> * updated for iommu_context locking changes
> ---
>  docs/designs/iommu-contexts.md | 403 +++++++++++++++++++++++++++++++++
>  1 file changed, 403 insertions(+)
>  create mode 100644 docs/designs/iommu-contexts.md
>
> diff --git a/docs/designs/iommu-contexts.md b/docs/designs/iommu-contexts=
.md
> new file mode 100644
> index 0000000000..9d6fb95549
> --- /dev/null
> +++ b/docs/designs/iommu-contexts.md
> @@ -0,0 +1,403 @@
> +# IOMMU context management in Xen
> +
> +Status: Experimental
> +Revision: 0
> +
> +# Background
> +
> +The design for *IOMMU paravirtualization for Dom0* [1] explains that som=
e guests may

nit: imo, either "explains why" or "states that".

> +want to access to IOMMU features. In order to implement this in Xen, sev=
eral adjustments
> +needs to be made to the IOMMU subsystem.

nit: s/needs/need

> +
> +This "hardware IOMMU domain" is currently implemented on a per-domain ba=
sis such as each

The "hardware IOMMU domain" is briefly mentioned in the commit message, but
wants defining before assuming it's known.

> +domain actually has a specific *hardware IOMMU domain*, this design aims=
 to allow a
> +single Xen domain to manage several "IOMMU context", and allow some doma=
ins (e.g Dom0
> +[1]) to modify their IOMMU contexts.

Without an adequate definition of "hardware IOMMU domain", I really don't
understand this paragraph. I don't know if it's explaining what we have or =
what
we want to have.

> +
> +In addition to this, quarantine feature can be refactored into using IOM=
MU contexts

nit: s/ quarantine/ the quarantine

Also, "can" or "will be"?

> +to reduce the complexity of platform-specific implementations and ensuri=
ng more
> +consistency across platforms.
> +
> +# IOMMU context
> +
> +We define a "IOMMU context" as being a *hardware IOMMU domain*, but name=
d as a context
> +to avoid confusion with Xen domains.

"hardware IOMMU domain" was never defined in the first place though. Are th=
ey
domains in the more abstract sense then?

If so, I definitely prefer the "context" name and it'd be very helpful to h=
ave
a note at beginning of the design note stating that a hardware IOMMU domain=
 in
the old nomenclature is conceptually the same as an IOMMU context in the ne=
w
one.

> +It represents some hardware-specific data structure that contains mappin=
gs from a device
> +frame-number to a machine frame-number (e.g using a pagetable) that can =
be applied to

e.g? or i.e? Is there any other way besides page tables in the intended des=
ign?

> +a device using IOMMU hardware.

nit: from "device frame numberS"

> +
> +This structure is bound to a Xen domain, but a Xen domain may have sever=
al IOMMU context.

nit: s/context/contexts

Is "this structure" a context?

> +These contexts may be modifiable using the interface as defined in [1] a=
side some
> +specific cases (e.g modifying default context).
> +
> +This is implemented in Xen as a new structure that will hold context-spe=
cific
> +data.

nit: Either "This is... that holds..." or "This will be... that will be".

> +
> +```c
> +struct iommu_context {
> +    u16 id; /* Context id (0 means default context) */

s/u16/uint16_t/ here and elsewhere, but...

also, seeing how this is a new ABI, I'd avoid mistakes of the past and go f=
or a
64bit number. That way it'll never roll over in this universe's lifetime an=
d
we'll never have to care about how to track used context IDs.

Are there any hot paths that take it? (I'd hope not). Any reason not to wid=
en?

> +    struct list_head devices;
> +
> +    struct arch_iommu_context arch;
> +
> +    bool opaque; /* context can't be modified nor accessed (e.g HAP) */
> +};
> +```
> +
> +A context is identified by a number that is domain-specific and may be u=
sed by IOMMU
> +users such as PV-IOMMU by the guest.

nit: are there any other users? The identifier _is_ a PV-IOMMU context id,
right?

> +
> +struct arch_iommu_context is splited from struct arch_iommu

nit: s/is splitted/is split/

> +
> +```c
> +struct arch_iommu_context
> +{

Lots to say about the way data seems arranged, but I suspect I'll see it be=
tter
in context (pun intended) in PoC later on.

> +    spinlock_t pgtables_lock;
> +    struct page_list_head pgtables;
> +
> +    union {
> +        /* Intel VT-d */
> +        struct {
> +            uint64_t pgd_maddr; /* io page directory machine address */
> +            domid_t *didmap; /* per-iommu DID */
> +            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the =
context uses */
> +        } vtd;
> +        /* AMD IOMMU */
> +        struct {
> +            struct page_info *root_table;
> +        } amd;
> +    };
> +};
> +
> +struct arch_iommu
> +{
> +    spinlock_t mapping_lock; /* io page table lock */
> +    struct {
> +        struct page_list_head list;
> +        spinlock_t lock;
> +    } pgtables;
> +
> +    struct list_head identity_maps;
> +
> +    union {
> +        /* Intel VT-d */
> +        struct {
> +            /* no more context-specific values */
> +            unsigned int agaw; /* adjusted guest address width, 0 is lev=
el 2 30-bit */
> +        } vtd;
> +        /* AMD IOMMU */
> +        struct {
> +            unsigned int paging_mode;
> +            struct guest_iommu *g_iommu;
> +        } amd;
> +    };
> +};
> +```
> +
> +IOMMU context information is now carried by iommu_context rather than be=
ing integrated to
> +struct arch_iommu.

That's good. I wonder about the concurrency story though, as every context =
in a
domain is gated by a single lock. Presumably we could make it per-context
instead? There's parallelism already on the IOMMU when operating on context=
s of
different domains, so I'm not sure why the limitation. Or whether there's a
restriction we're missing and we should have the lock be per IOMMU instead.

> +
> +# Xen domain IOMMU structure
> +
> +`struct domain_iommu` is modified to allow multiples context within a si=
ngle Xen domain

nit: s/multiples context/multiple contexts/

> +to exist :
> +
> +```c
> +struct iommu_context_list {
> +    uint16_t count; /* Context count excluding default context */
> +
> +    /* if count > 0 */
> +
> +    uint64_t *bitmap; /* bitmap of context allocation */
> +    struct iommu_context *map; /* Map of contexts */
> +};
> +
> +struct domain_iommu {
> +    /* ... */
> +
> +    struct iommu_context default_ctx;
> +    struct iommu_context_list other_contexts;
> +
> +    /* ... */
> +}
> +```
> +
> +default_ctx is a special context with id=3D0 that holds the page table m=
apping the entire
> +domain, which basically preserve the previous behavior. All devices are =
expected to be
> +bound to this context during initialization.

nit: "identity" seems better termed

> +
> +Along with this default context that always exist, we use a pool of cont=
exts that has a
> +fixed size at domain initialization, where contexts can be allocated (if=
 possible), and
> +have a id matching their position in the map (considering that id !=3D 0=
).
> +These contexts may be used by IOMMU contexts users such as PV-IOMMU or q=
uarantine domain
> +(DomIO).
> +

... I'll leave it here for the time being. I need time to digest the rest.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 15:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 15:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831199.1246391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hdP-0006CA-Fc; Wed, 06 Nov 2024 15:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831199.1246391; Wed, 06 Nov 2024 15: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 1t8hdP-0006C3-CF; Wed, 06 Nov 2024 15:07:51 +0000
Received: by outflank-mailman (input) for mailman id 831199;
 Wed, 06 Nov 2024 15: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=xF+1=SB=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1t8hdN-0006Bt-Ul
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 15:07:50 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20608.outbound.protection.outlook.com
 [2a01:111:f403:200a::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de0f931b-9c50-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 16:07:42 +0100 (CET)
Received: from MN2PR01CA0055.prod.exchangelabs.com (2603:10b6:208:23f::24) by
 PH7PR12MB6936.namprd12.prod.outlook.com (2603:10b6:510:1ba::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8114.30; Wed, 6 Nov 2024 15:07:36 +0000
Received: from BN3PEPF0000B076.namprd04.prod.outlook.com
 (2603:10b6:208:23f:cafe::de) by MN2PR01CA0055.outlook.office365.com
 (2603:10b6:208:23f::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Wed, 6 Nov 2024 15:07:31 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B076.mail.protection.outlook.com (10.167.243.121) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 15:07:30 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 6 Nov
 2024 09:07:30 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Nov
 2024 09:07:30 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Nov 2024 09:07:28 -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: de0f931b-9c50-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjA4IiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRlMGY5MzFiLTljNTAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA1NjYyLjUwOTA0Miwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IKHbHh92XKmN+JqlE+y6Th03b2uuG4Rl7JDk/eSKbm4jlMPAnmOM9edjMNd9bhHrNsgxxISNXf5Hs3xYZQr1y+qam4XeFMazVTJFyuAFuDu4FIPSf78g/nLDr2ujGLN2912RF4XMBZjXOaBv9OgsFEGbJxNeVQgA07t0a0lBr8nox9OgmD0LrfqQPzFTHDkz2+BYfyX8rQmnJRdXpQYvoRWsMS+er0uPH3oQoOQ5VkihQOwRN3myTGPCBKFbP9LVB5LCpr+yZ7AHIEGoJaMYXm+CweLC6Qat7TH6Yr1oaSbSpYqqMMaPcNeTCwkm7psuunIGwbR7mmYmeORUStznvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UmGfr9YAT/jMo+NtkL6AVLsUurS+IfL8hP3NwFSI/H4=;
 b=p1TreqSBMMvGioVGRwm1vnfBAIsySiBfYcJMnVUgFVhK1887ZfiUI4oaVUhQ+A3k8A1AI4w8mMmc6VJkflca2SFrAssELkz/R3KQUilKXa0+WMe9X/bBUqXEBocNN8Mw6/DRs/FQvxGhz/nM4ELxYaoMmIsEqdDgLyzAPvTXOqWzfmbk0cUWm/J0wAI82xoBcCuXW7ZXbQory6YehXllwH1AXc85BMdNdUXMs5leTGoRKXIUJ6vX9eMKlTkT030D4Gc9Uk+URhmn6RtOEAzME8cFDE8kfyiHKnjFHNyzVN9zzXqxbhCKF9zPkFZrhb4AYCt4SsFyaksFuDnhioNI8A==
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=UmGfr9YAT/jMo+NtkL6AVLsUurS+IfL8hP3NwFSI/H4=;
 b=LRyiHqB+tqvibqRKmQ3QVbk4spX9rEPjwBEL6UAkW3NzXbfTnDKW5zxS2igiKEr+O2JtFzAUTHjUMn0TV8ansJUrNFooinaUYM2EmI5ATi+lU802dff8qIQ7rePnyXYEITOVcQRh+MroxMvRRpGlFRSWjD8n5vBZFwEVvrLniL8=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
Date: Wed, 6 Nov 2024 16:07:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Luca Fancellu <luca.fancellu@arm.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>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241106134132.2185492-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B076:EE_|PH7PR12MB6936:EE_
X-MS-Office365-Filtering-Correlation-Id: 317d7eb2-1f12-414d-11d9-08dcfe74bc48
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?MHBmb3Nxd0p4TVlWWEk2MldJK2t4ejFlMGhWbWdWQmU0TUovM0gzZTdXdmZy?=
 =?utf-8?B?dVhjNjRUdytJRHNUckk0M2NoUTVnMXBXclpzM2JUQURJcG43SnZTRC9KbzFG?=
 =?utf-8?B?V0t1a3pWem5YQlBhMXBwdzdqdHFPaDNqemIvSUlFTW5QaFlXdXJrNHgzQWxN?=
 =?utf-8?B?VzBQSlZ5YkhZSHBCTHJEemloaFE2elE1UGJ6U2ZveFBSNVdkZGFtWHFTcldp?=
 =?utf-8?B?VEIvcHkyUzlFUFo4N0pBSnUvQTdxSytQM1lTZ1VVSnpXRjlNYlRaVHJabnd4?=
 =?utf-8?B?YnBJV0g1b0JuaDZyWm94WUFRRHJIMFVpUm5DZC9kUzNlU2E0UVhMUmV2Y0Iy?=
 =?utf-8?B?THBSYlN3YzhNei8yNTgrRUE2bzFidXRnbVRIU3JMTlFQY2dIeEZxZmJVSlR0?=
 =?utf-8?B?STZzZHN5bHJLSDBLZVBNdEhudDNHK05HbmZzT3k2QkJjOWFRVWtpejZWeDdU?=
 =?utf-8?B?UjRCa3laMEc5cktCTEpYY3BjcklzWlV3ejZoeTI4MlZ6QUYwdHJMeWEwVFBO?=
 =?utf-8?B?QW12L2IzNnV4L01jVDdPTGVyR3RaTE4wUS9jWmI3TGduSGJ6NEhPN3l0b3kw?=
 =?utf-8?B?aEthM3F4d0xWbk8rekJ4aHh5RVVZK1VmbnUwcWZXTzRjQ3BKUFBmUEtFR2xs?=
 =?utf-8?B?eW8yMnJFRWl1ZGpCRkJYUHBmSDJ1SkVpb2JVRzFrc2xZR3htbnQ5TVczTU9X?=
 =?utf-8?B?NThEZ1RFNTZVRzNaeW5FbUZjYVpGSjdTZ1E4Uk5jWFRxdHEvQjFBZXQ1eDJR?=
 =?utf-8?B?c0dydlRCMFZ1RXRzazlvdytGcEY1a3RSRjRoUi9LL09ydkQ0ekc2RTZuNWR2?=
 =?utf-8?B?eXUvLzlja1VOSHZBNFJWczM0WndpWUtpZzErcEYvWnNxRVZxMGxab0hqbHF4?=
 =?utf-8?B?SFZ1SzIzNW52M1dQSWNIOXFvS1Bka0lCQU81N2J6VFlvR1FRZyszMFFwT05a?=
 =?utf-8?B?bitwN081L3Jrb0tiUWE3WnBLZkgzZEx2R3VZdnQ3Mm1IRXRsTSs5VkxGRnph?=
 =?utf-8?B?WFVBaDVLTkFtRjk1WlQyVzQzM1hEdlR5YkFrZjBxdFBZd2prU1dWNmpzL3NQ?=
 =?utf-8?B?NE9TR1MzZXN1THNwT0tvaTBaK1FIT1BFV05FS1ZmSFlPU2NzTnBDd2RnVHVB?=
 =?utf-8?B?V2hGdGY3bTZKc24vUVpkU0g4a05id3JDUXpqQjlEUFFpc0JHSUhTMk54RlRM?=
 =?utf-8?B?WElRT1ZxQXFDQjVWNnVvS05STHVyWTJIU1d1RmdrTURRZUlKTEpTdWJzazRX?=
 =?utf-8?B?MGprS215dzhEdk05VkdzM3hsbWZMUWRqMm1XeTZUcDcra2lsUUcyb0p0OGFO?=
 =?utf-8?B?OVFUUkFJS1Vmc2twblg2R0d1VlR1NXpFWmJsU0poUEdzbFRJd25ML1MycnRO?=
 =?utf-8?B?bTlDRUM5WWNlWFRLRDN6Yk5aSnYwMExzMWFYaHA4MzgzVElFVld5QUhNeE1Q?=
 =?utf-8?B?SXV5ck12bGtDZlluRUsrK3VrN1V1UDFibi9JMnQ5dEFlSE9EbDM4NVBOeks5?=
 =?utf-8?B?eG9mZWFlUjFpMHE1alRIOU44c08yeGJob1lQajlzTlpTTnRLRlE3NDJURE9j?=
 =?utf-8?B?QVhvREJOQXMzZHc2cy85R3o4Y3ZueXJuYUdJTFg2WDhnMGdWTkpKWnFxV3dO?=
 =?utf-8?B?UmpjNHVPNURJU0wrWTdFLy9uc2ZMc0JPWlAvSmFyc2gxWEF6anUwZHFRVnZv?=
 =?utf-8?B?SlRWNVdZejI2a3plUWV4WjRkZFNiTlBvbTR3S0t5ODI4VnJWUlBwQXpVVlZu?=
 =?utf-8?B?TDFaTmdhUkVONGF6MFRzUTYrY0F0cTdZL3hMU2pZbzF3WnN2R25UY1hwSnYy?=
 =?utf-8?B?Uk91b0dWenNTUi9meis5a09XNG52NyswSkVGbk03UHlqODR1TkJqN2JKT1Nw?=
 =?utf-8?B?bmIrcHFjOUZ4eGhRVEVPd1BiTzhVaEhaYmhzWWNlVEZIOWc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 06 Nov 2024 15:07:30.7644
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 317d7eb2-1f12-414d-11d9-08dcfe74bc48
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B076.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6936



On 06/11/2024 14:41, Luca Fancellu wrote:
> 
> 
> There are some cases where the device tree exposes a memory range
> in both /memreserve/ and reserved-memory node, in this case the
> current code will stop Xen to boot since it will find that the
> latter range is clashing with the already recorded /memreserve/
> ranges.
> 
> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
> in the /memreserve/ part and even in this case this will prevent
> Xen to boot since it will see that the module memory range that
> it is going to add in 'add_boot_module' clashes with a /memreserve/
> range.
> 
> When Xen populate the data structure that tracks the memory ranges,
> it also adds a memory type described in 'enum membank_type', so
> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
> function to check for exact memory range match given a specific memory
> type; allowing reserved-memory node ranges and boot modules to have an
> exact match with ranges from /memreserve/.
> 
> While there, set a type for the memory recorded during ACPI boot.
> 
> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> I tested this patch adding the same range in a /memreserve/ entry and
> /reserved-memory node, and by letting u-boot pass a ramdisk.
> I've also tested that a configuration running static shared memory still works
> fine.
> ---
So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
and the changes below look a bit too much for me, given that for boot modules we can only have
/memreserve/ matching initrd.

Shawn patch fixes the first issue. AFAICT the second issue can be fixed by below simple patch:
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 927f59c64b0d..d8bd8c44bd35 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -586,6 +586,10 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)

     add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);

+    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
+    if ( ret )
+        panic("Early FDT parsing failed (%d)\n", ret);
+
     nr_rsvd = fdt_num_mem_rsv(fdt);
     if ( nr_rsvd < 0 )
         panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
@@ -594,10 +598,14 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
     {
         struct membank *bank;
         paddr_t s, sz;
+        const struct bootmodule *mod = boot_module_find_by_kind(BOOTMOD_RAMDISK);

         if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
             continue;

+        if ( mod && (mod->start == s) && (mod->size == sz) )
+            continue;
+
         if ( reserved_mem->nr_banks < reserved_mem->max_banks )
         {
             bank = &reserved_mem->bank[reserved_mem->nr_banks];
@@ -610,10 +618,6 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
             panic("Cannot allocate reserved memory bank\n");
     }

-    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
-    if ( ret )
-        panic("Early FDT parsing failed (%d)\n", ret);
-
     /*
      * On Arm64 setup_directmap_mappings() expects to be called with the lowest
      * bank in memory first. There is no requirement that the DT will provide

I'll let other DT maintainers voice their opinion.

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 15:14:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 15:14:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831208.1246400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hjo-0008LA-6q; Wed, 06 Nov 2024 15:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831208.1246400; Wed, 06 Nov 2024 15: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 1t8hjo-0008L3-3v; Wed, 06 Nov 2024 15:14:28 +0000
Received: by outflank-mailman (input) for mailman id 831208;
 Wed, 06 Nov 2024 15:14: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=RQdK=SB=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8hjm-0008Kx-61
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 15:14:26 +0000
Received: from sender3-of-o57.zoho.com (sender3-of-o57.zoho.com
 [136.143.184.57]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc208a99-9c51-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 16:14:21 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730906054875949.5198788689;
 Wed, 6 Nov 2024 07:14: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: cc208a99-9c51-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg0LjU3IiwiaGVsbyI6InNlbmRlcjMtb2YtbzU3LnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNjMjA4YTk5LTljNTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTA2MDYyLjA3MjY4NSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730906056; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ajOBBlmPpdiPMi4H+uFe75d8YpjPkn5PHh0LtqoZyVBj+U+DRQw1SnOE9kY0Xq51ZzqCMpvn2RndFGTKWaL7tKEHQpxtGatEHb80VUaZ3U1wiHSQXmdA8p5Vpqlpz+dAiMwq9lLZ9gyHMtBhgtMqBB+iLKa/utVJ2ImAbm0PZlM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730906056; 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=Woo7u0NI4cUUtonYX/cO6RK325mjxb/ZfHTPVVOKLvg=; 
	b=e2HQwdDIfRC90eGb7q9EARDAKvGj9q7NsnHaHZNpJ7AyXxTtkeHEgUm4q/9poLBNc6GpgDZqXfdfLtA9NJLkJPVm5ofFVabVSBlzDxvBgmBGZnw8gvR8wuKrjOphUqXyHjxWvIZq/t66IEODgXxomCEUiUIwGLqV9B6mYqIvePA=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730906056;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=Woo7u0NI4cUUtonYX/cO6RK325mjxb/ZfHTPVVOKLvg=;
	b=QeA1WiJqp/+q5eqGnuZ+FTAztxNZvsz1MsmTlOQmLzgJpEstQg/CeRlRF20Hr0+K
	EUYtk6metY+GUmyh3fWhiWO02qcRFUrJyv9LIG3BPG8zr9shvxXfiJSzc82cexoPN1s
	Li2srRO/lrbnBOs900Qoo4sDYnx7j7FQMbChAsNU=
Message-ID: <d9c96a68-4c34-4217-8700-b38c9cb78e84@apertussolutions.com>
Date: Wed, 6 Nov 2024 10:14:13 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
 <2faf07d6-35a2-46c8-92db-8cf26a304800@citrix.com>
 <111206f7-2a87-4a31-a6fd-003b5941cb85@apertussolutions.com>
 <68d95851-0938-4efc-b885-de564600b40c@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <68d95851-0938-4efc-b885-de564600b40c@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 09:55, Andrew Cooper wrote:
> On 06/11/2024 2:50 pm, Daniel P. Smith wrote:
>> On 11/6/24 09:34, Andrew Cooper wrote:
>>> However, despite looking at this many times, I've only just realised...
>>> This semantically changes things in a direction that we won't want.
>>>
>>> Today, BOOTMOD_RAMDISK only happens a side effect of being "first
>>> BOOTMOD_UNKNOWN standing at the end".
>>>
>>> But the EFI boot code ought to set bi->type=RAMDISK explicitly from the
>>> ramdisk= argument (it can probably set type=MICROCODE too), and future
>>> plans with a large HL config probably will be similar.
>>>
>>> Anything which sets type=, and type=RAMDISK in particular, prior to
>>> early_microcode_load() excludes it from the search.Â  This is definitely
>>> not what we want.
>>>
>>>
>>> It's a latent bug for now, but I'd suggest keeping the plain for
>>> loop, with
>>>
>>>  Â Â Â Â Â Â Â Â Â Â Â Â  /* Search anything unclaimed or likely to be a CPIO
>>> archive. */
>>>  Â Â Â Â Â Â Â Â Â Â Â Â  if ( bm->type != BOOTMOD_UNKNOWN &&
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->type != BOOTMOD_RAMDISK )
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>>>
>>> as the selection criteria.Â  Probably also want to start from idx=0 to
>>> remove assumptions about the dom0 kernel.
>>>
>>> Thoughts?
>>
>> Yah, as much as it would be nice to use the helper, this is the
>> exception where there is a complex match condition to be handled. This
>> will be switched over to an explicit for loop.
> 
> This is simple enough, and I'm happy to fix this all up on commit.Â  Save
> it going around the loop yet again.

No objection on my part, as I was just going to make the changes as you 
suggested.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 15:16:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 15:16:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831215.1246411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8hlh-0000TO-J0; Wed, 06 Nov 2024 15:16:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831215.1246411; Wed, 06 Nov 2024 15:16: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 1t8hlh-0000TH-FM; Wed, 06 Nov 2024 15:16:25 +0000
Received: by outflank-mailman (input) for mailman id 831215;
 Wed, 06 Nov 2024 15:16: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=kC+v=SB=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1t8hlg-0000T2-OS
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 15:16:25 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 (mail-dbaeur03on20602.outbound.protection.outlook.com
 [2a01:111:f403:260d::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13e4ad9a-9c52-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 16:16:21 +0100 (CET)
Received: from DUZP191CA0038.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::22)
 by AS2PR08MB9497.eurprd08.prod.outlook.com (2603:10a6:20b:60f::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 15:16:18 +0000
Received: from DB5PEPF00014B9A.eurprd02.prod.outlook.com
 (2603:10a6:10:4f8:cafe::3e) by DUZP191CA0038.outlook.office365.com
 (2603:10a6:10:4f8::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Wed, 6 Nov 2024 15:16:17 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5PEPF00014B9A.mail.protection.outlook.com (10.167.8.167) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8137.17
 via Frontend Transport; Wed, 6 Nov 2024 15:16:17 +0000
Received: ("Tessian outbound 72f4d55e3d4f:v490");
 Wed, 06 Nov 2024 15:16:17 +0000
Received: from Le28f87d258bf.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 C28A3136-794A-4B43-B235-D162164CAE34.1; 
 Wed, 06 Nov 2024 15:16:06 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Le28f87d258bf.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 06 Nov 2024 15:16:06 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by GVXPR08MB10864.eurprd08.prod.outlook.com (2603:10a6:150:154::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 15:16:03 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%4]) with mapi id 15.20.8137.018; Wed, 6 Nov 2024
 15:16: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: 13e4ad9a-9c52-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwZDo6NjAyIiwiaGVsbyI6IkVVUjAzLURCQS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjEzZTRhZDlhLTljNTItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA2MTgxLjEwMjMwOCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=bXhDzUyh9YKXoFg91T0zOFDFjmdpdtK3RXDGsTqdUEBqZc6wgG8QPPvihQjKt59DKzSa5G9oymmt9cK5YwUTXlB4LvM0a4tQNWvhaIA9MZW5mfwxRQGHr3/xePyU+Dlc6suorkkE2uJ+s3ZdPrqwe9bLfAJsWp1xa0DhjMp2iTTdOvHVykZBEKREx6DtUWZob2T6w/+Ad3J+1hNvqn+ztES0BUBGc7kZ+RTDLM9vMt0XQdOkLfnhaB1iq6CAVofrS8q9FUHTxW8tEaLmwbqxA1mbQHhvEi/Y46MvWCifGQ3iH39JyHys23B5D4Huwnz6dm+up6oLzG6prH1Ky0gaZg==
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=L/pjgpsfRcPJYNsV8CBJvA2QeU9Wg8xy+5+rH2Ywsec=;
 b=F2OoOvzjaXFke4MwH5B0Uwf2nsFSkWkC0rKTNrP1J++7og2n3sB4JTbXR65eoBoW+HM4fywbHASyTGYzoHVnVfw4t1BBk8IiGlV0TJIBX1GExpN8jR1lt55YzQ2+h3l/mjvEjlgaMOOeo8cBOMYNVf604vJHKat8Xslj7+uSVeaasSFOmAQwzwoRxtwETnSfrY1eExFihfNxjrkQWNhoqgaCbZnnpdBO7sFUx+HEGgRP+YtIoos3m80XKxvE0DkebYQ8VKYiowT34dnNyAR/b6X03/4XT2DcjiacsbvTlIxK0C918CQ6vUBWIwaiT67r7ZTG9J2kqq8dg/Q9Viwg1w==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=L/pjgpsfRcPJYNsV8CBJvA2QeU9Wg8xy+5+rH2Ywsec=;
 b=aP8ZDispyNoXpNHjEyPgVzg94hv+ZzVhOe6DKxcrFzmqz/D+npcAxIZibrQOw7Rz0053fYXsG94fL2zA6ll/K1rrb5mKOrwWsO4VP7TYDbqayHpl7UX1+6J+lBYkN0o0MVqQOd95IebQhwlwDlcyNc5LMjcaIveLuOOHfN4CxvY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 9eae788475530d32
X-TessianGatewayMetadata: 6q5RTYDpzHKSdmw/sokLD3E0QU8ept8Hn8/XeEfOMKVy1/Lg6xTM2ItlbuScTG5cZVDjUrQ+D6GuWLuK0BX788P3oZx9QunPWLaI49wJ8/GYC8c6UWDId0jH4BUj2AQ+S9lcMojsBV6z//W6KPQIO+nYQX5pyk3ZGrLYI7psFIE=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jZ+ovt54Q+xzt1EkSuMIoxdcmO8DxWatAOh1FS7lFekFV7mwxXXGLvy6L07c9RsCHLG02YKAEk6J8KaDNMVn+sbmLKom4c4NNeDSRsGiHej3OJFvL/aOaoFOUuaIrSs8Drs731jubqkkbavcUEH9LBc9KWjpmvqr/nDbZHHOLjZYSE2ssLOWsH/7zs4UAWga/KduLHcaS7eWkNbbmZk3YnqUMPKmJAQxTea3R0Xcm5gYV4/qgu6CIxkXYE8Uf4pN339rv40TeRUjRC+bs+HWtqqqOWQ4PxRDAe/57F1nEsszSHlcdA1LmAV8I4jRxUyM36C8+yvB0AFpTGl2ry/S/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=L/pjgpsfRcPJYNsV8CBJvA2QeU9Wg8xy+5+rH2Ywsec=;
 b=EAC0WTdk/lk7HlPmNESqOHk5HgVTEKuVTLM2CIt+yCQoBGLoVncMtk78UYXVku0oswQL8A/yrBlyDz7YX6LZ/9RJTWr0v3uVEFbLcB7rpXOEUzPXaYLWqJCf3IDnYyShXKkurcGkvDTYBLwJzvA9sKmJxQbDXxP4fYhTEGHEe5HZQ5a9hUzIHD3HQ2cXciU2mAKK1gCiLhInkRwu35nKyEaNRABOjb5Bp5vq/iuqOlTyNRC/t+QQZQVBE7FeG8oTQRsC8pNe81fFAn8rf0z5VpTWjluW4oCQaMv/7VVO4z9hoTsf8BaJWB73HK6h7JGl/G6CgKdJRh6X740M+qDDqA==
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=L/pjgpsfRcPJYNsV8CBJvA2QeU9Wg8xy+5+rH2Ywsec=;
 b=aP8ZDispyNoXpNHjEyPgVzg94hv+ZzVhOe6DKxcrFzmqz/D+npcAxIZibrQOw7Rz0053fYXsG94fL2zA6ll/K1rrb5mKOrwWsO4VP7TYDbqayHpl7UX1+6J+lBYkN0o0MVqQOd95IebQhwlwDlcyNc5LMjcaIveLuOOHfN4CxvY=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Michal Orzel <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>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Thread-Topic: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Thread-Index: AQHbMFGwb2V2aTQ740yGxnKF6IdbXLKqWowAgAACWoA=
Date: Wed, 6 Nov 2024 15:16:03 +0000
Message-ID: <FA4FF581-69EA-46C0-A0D4-D327B167A4D6@arm.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
In-Reply-To: <d9ad0972-2fd1-40ef-a11c-d56e102fef38@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|GVXPR08MB10864:EE_|DB5PEPF00014B9A:EE_|AS2PR08MB9497:EE_
X-MS-Office365-Filtering-Correlation-Id: 01942754-a6d6-423b-86d8-08dcfe75f64f
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|1800799024|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?d2NvM3psZmxPZEYwMy81bTREZ08xUThLb01JOWJCQlg1VUtWdVZNT25UY0RQ?=
 =?utf-8?B?eTVpOWx5Z0ZaeGN6MXZuMk4xU2dWZ3NwM2FFcFZyWXdaMCtXSUJUT3k3aVNl?=
 =?utf-8?B?bmhMQndkZnRidUZ1ZUlqQ1B2RWZiOUFYQzBwUjFYOFFUN2dMU0t4cG1QeWdm?=
 =?utf-8?B?dDVCcjRFakU1NjhycmRoZmhxL3EvM0NnNXlzb21acDBDQ2VCTWpOY29XUWYz?=
 =?utf-8?B?MTVxQXdRNGJYemtEVnA3ZjhtbkwzbGhtUUN5dFFwNTNmRmMxRnVrZjQycHlP?=
 =?utf-8?B?T3ZXTW5ncHZlVnBjNTlaQlAzU1dNQUdudmZZS1IwZFRuVjMvRFZCQSttMjFr?=
 =?utf-8?B?YWhjaWJPeE8rUFpkUThBWUMybGJoWktvYW03VTZyZlpmWnkxbXh3S1FGY0Va?=
 =?utf-8?B?ZE5TNFBGc2VMUDhCNEpjTFFnaUFqdk1HRXdkd29FK3hxVk9TWmZFUDJ0QldH?=
 =?utf-8?B?bnQxVVpKamJNL0hwbG5xYWE0M0FWTFk2aExtUDdoVVpiWkpFT284NldLV2N6?=
 =?utf-8?B?cHZWNDNFaGMveG01cGVKc1RBWWx2ZWZ2MG1ETUJQajdGSWQ3d2FPQk1CTVYv?=
 =?utf-8?B?QzhHalZBVFNiSDNma1haUGNTN1U3TUhWS21iVkFOd2hvOWRVMTFidVdxeHFT?=
 =?utf-8?B?QmpNbVZWWFRValdxNFpFUFFlQkd3VmhiMWR6RnBhWWVWK1QrQWwxNEZCQVJP?=
 =?utf-8?B?VUcrOHdaOWJYK25mYzNKQTF1SnpXaEFDYTNLdTQ2MHBTWm9sMi9LSVVNRzk2?=
 =?utf-8?B?S3RIY2hoUk1VZTIrOTNWOTZud1NZMnlhWFZlQVp4dHBMcHZJbnFLa25FY1gw?=
 =?utf-8?B?aU9LMEVTQ2dpK0w4TGRhY1ZmdGt5REVlOHJUcS9pSFhTSWtXSmdrSXhsVDdo?=
 =?utf-8?B?Q21JdXY4QjRxelQ2Z2MzMm1hQkdIbkgxQnpBUEpGc3F0dlNnSnlkRmZvQndG?=
 =?utf-8?B?UEdLalFwSjZaSVE5WG9PUUVuY0dXdXd3YWtVbHVqMytqM1duc3FsOGhqYXZw?=
 =?utf-8?B?WTJmQXJYSDFTSXhralpnVmo5Q1dMajZOYjdWSGFYSlNDOHJrZ2pnSW1qVVMy?=
 =?utf-8?B?QytoL2hsSHNNOWNka2MzQTVma241bFpnNCtpRzJyL1dWdlI5Q1dacTZPL29F?=
 =?utf-8?B?RjdQTkhyMlNtVkl2ckw3WWVodktPRG1NdGJKYzlRNkJ0S2lGbExndlp3cXlE?=
 =?utf-8?B?WGIySFpaaVRJaVBqa2dQYWxZWWsrT1lYb0FzRzY2R0tFZ29qWW9RKzJGWEdX?=
 =?utf-8?B?TFV4dmdVNG43WHlNdzV4eTkrVklMR053a0U3czFETWpkbmZTZU5jcE9nanM1?=
 =?utf-8?B?MDFaaW8ySmQzVmNDTVFvQldHY2pXRkNuUHJEUjdLaEd0aXl6SFFZc2tJcW13?=
 =?utf-8?B?MVp6SFhWa05oRzdKd2dIMHpuZUtrSC9KVnBiNWRGQkxYWkVVdzJzcVJHWWFj?=
 =?utf-8?B?TTVZL1lEeE9leEtqUStFQzVVcDk0UGZuMVBqclE0QVlzelZ0MkJpVThQMGtK?=
 =?utf-8?B?dDFHc0F4anZFWXlDQjRmMlVEUENLN1lVVDdjSE5xMzhQY0dJWjlFUW4zM1hn?=
 =?utf-8?B?eENleUh0Tmo5ck9sYTduMktYOVlYSklkOTBSWDB2aW5DRXJFa1BSZlNjMlAz?=
 =?utf-8?B?SnNwWGI1Q1ZER1JtajJieDl6QnR3dmpFalBUWWhJQzNmR01tTzIwRGFaODBa?=
 =?utf-8?B?WkgyL0Jhc0Q1NHpwL2tsUlVGcUp4bmxaQXBweFBhSTMwUjc5UGlqUHdsdVV4?=
 =?utf-8?B?cWlCSHlvWnh1RGVVSHJTNWpTMnFlMmFLRWpyb290eURIaUozL0pWYVJ6Sm44?=
 =?utf-8?Q?V7Qb1RaU1RIicfelbPanKBW2Pa3ly3AlXOU+k=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <064EF56B40F1E748B97B0BD7C6FAD622@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10864
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9A.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	87e533de-e7c7-4ca1-2281-08dcfe75edd0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|35042699022|82310400026|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MTN2ZVB1ZjBuNEc0Zm95Z0pDdnRSaUJDTk1vTThSS3Y5a1Flazg1cDdXcFdv?=
 =?utf-8?B?MU44T2tRdTVvMEt5RDZ2Qkh5MHc1eHB2YXIwNkpNakR5clYzRkZuZWRlVElZ?=
 =?utf-8?B?bUJrSGcvS0UxVTZNR1pBejYxQ0NSQ2tiQVFYcDBIeEE0WWVuNUEzN2hvdzdG?=
 =?utf-8?B?a1h1aXB2OHFVZnMvWmpoVHdsRTVrVnUrNWM2dHVGcFdDdlNpa0E2ajZDakZI?=
 =?utf-8?B?ZE9Ob3B3ZW1QV2tWRU1TbUsza29VV3NlOTN0K0doWHJwaHJvUTgraU85ekdG?=
 =?utf-8?B?enlwUHlvOHIxM0JTZ3lQdTBoSVFNVGR6MTBDSFZsVzlSNXZqOWo0dmpDQ29G?=
 =?utf-8?B?TTBpeS8rSUJCVHBRSUEzdXhhajNiQXdHMDQ3Q2NvZUgzdDJ0N0xjUTJpZFlL?=
 =?utf-8?B?N0p4U1RpelYwK3FiRFcvMlZnK2FhOTdqYW5aekpLYUJIRUk4SVYrOS9vTjZ1?=
 =?utf-8?B?NnpSZkxyUWYwQ2w4MVd4VEU4QjYwU3p1UkREaEtRTnlWR2hWbitaTkZTZ2xi?=
 =?utf-8?B?Y2xuOGtDTThnMUxpaDY0NEpGaUxSUG1NTGpDM3FRcmhHOTVOYnZSamYxUXFm?=
 =?utf-8?B?cHR4eUorSVRsd3NVTWRwS3pMVG5URnN1M1lUMGF1REYwb01NbWhGd0xJZTBB?=
 =?utf-8?B?VFJMVVlHdEdlWnlEcFVuN3p5OGJQZjlma01OMHJmTnMwNHZ2N2FtVEp4NlE3?=
 =?utf-8?B?RkJQbVF6akIxWkFsbS9EL3ZTWjBXVUt4bXYxRG1pT0lDa2VuOGZOUHMvaEhp?=
 =?utf-8?B?eGc4ZlpNR1MvZ0l4cytCVSt3a1Iva0tWOC9vM2o5Vzc4SHM3WE1pZXYzRjJ0?=
 =?utf-8?B?cklvaXhjb1MxOXlUSytDMlJxZHBtZTJ3U2w5VnpEU3dDelFWNnM5WDdlVWdF?=
 =?utf-8?B?YzBhaERQb2JaVXRQMmYwd0dxeTJOb1ROZXpVUWd0TjR4dHYyMHFHenlOS2ti?=
 =?utf-8?B?eEY1cGJ3ZVJHK0VsdnVyaHhLSmRBRXFqRXVjeTYvSGpkb3JMVW5uaHVJc2xh?=
 =?utf-8?B?cXJHbVBHVnh5ejh6OVVlODBFelg0R2p2YXdLT1JyN2tNMVhRQmJwQkdSaDBK?=
 =?utf-8?B?UnpWQS9rK0l2WkZmYTJ3UWRXSEM3QjVqNit0MUtjMTQ5Y0lwbmZzSkFDRzdk?=
 =?utf-8?B?bzVkeEJIaWFZdXZTOFoxdTBkSmxJcExoejhsOXlpb1hzSndXV2pkWE5EZzBV?=
 =?utf-8?B?UERtRGtySTNhS3ErV3NMVGl0S2VDUUwzTWJKWDVUam9IR3MvSUtBRWVSTEdr?=
 =?utf-8?B?c0FJOXFjVlRNU0VWeXJaNVhOK2hBZ1JIVlVkcENESGN0NDJCODZxN2s5aGRU?=
 =?utf-8?B?NzFmdjVEdWdHYzBGaHh6WFZManhjSWhzNEp2VitvSlRZamJxYjRjZ0MxWVZy?=
 =?utf-8?B?QW9Yam9kNnR5UmJyRlA3M1g0WUdraVA5eTd2eklrNm92R2ZxblVIcnVNNDJI?=
 =?utf-8?B?N1RXRVp1N3Mra0dBMUpSTTZIV0V5enJESVMxTU1Pc0Z1dHN3NHliWS9OYWRy?=
 =?utf-8?B?TkFJelZBd0pheHFuMDZhaFp3bjByZ3ZZVFRid1BMMWF4RGZxVGJkWFM4RUJK?=
 =?utf-8?B?aXdiaVh5L0hVQnNwUFB3SUJSYWxkNE51S0VEMzhzTVpRb0hKT2s0S1hBWUxj?=
 =?utf-8?B?WnF5TXE2MitpMkdQOUt3ckRkQ0ZEd3BMYnB1eDJWZU1mbUpBZHdtb2Ivdnor?=
 =?utf-8?B?M2xXYnE5Tk5UUS93NkRwdXEzTEN1eC9hUlc4aDBNYkdrNmlVZnBCZXZrUlFy?=
 =?utf-8?B?d0ErWUgzcUJGblYwTUlLWDJ4Y0g1TThHTGZkcUxCbU9tOUJRYitGRFhOemRx?=
 =?utf-8?B?WGtGbWsxMTZJSkJ6amVoUnRNbW5memdwNG12MVUxWmdaQThkZnVqY1l5UUEy?=
 =?utf-8?B?eUpGNk9uYThLY1lJSkt5NFZJSU9mbzRIMnZjNmw3WDlIUHc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(35042699022)(82310400026)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2024 15:16:17.6647
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 01942754-a6d6-423b-86d8-08dcfe75f64f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B9A.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9497

SGkgTWljaGFsLA0KDQo+IFNvIHdlIGhhdmUgMiBzZXBhcmF0ZSBpc3N1ZXMuIEkgZG9uJ3QgcGFy
dGljdWxhcmx5IGxpa2UgdGhlIGNvbmNlcHQgb2YgaW50cm9kdWNpbmcgTUVNQkFOS19OT05FDQo+
IGFuZCB0aGUgY2hhbmdlcyBiZWxvdyBsb29rIGEgYml0IHRvbyBtdWNoIGZvciBtZSwgZ2l2ZW4g
dGhhdCBmb3IgYm9vdCBtb2R1bGVzIHdlIGNhbiBvbmx5IGhhdmUNCj4gL21lbXJlc2VydmUvIG1h
dGNoaW5nIGluaXRyZC4NCj4gDQo+IFNoYXduIHBhdGNoIGZpeGVzIHRoZSBmaXJzdCBpc3N1ZS4g
QUZBSUNUIHRoZSBzZWNvbmQgaXNzdWUgY2FuIGJlIGZpeGVkIGJ5IGJlbG93IHNpbXBsZSBwYXRj
aDoNCj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvYm9vdGZkdC5jIGIveGVu
L2NvbW1vbi9kZXZpY2UtdHJlZS9ib290ZmR0LmMNCj4gaW5kZXggOTI3ZjU5YzY0YjBkLi5kOGJk
OGM0NGJkMzUgMTAwNjQ0DQo+IC0tLSBhL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvYm9vdGZkdC5j
DQo+ICsrKyBiL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvYm9vdGZkdC5jDQo+IEBAIC01ODYsNiAr
NTg2LDEwIEBAIHNpemVfdCBfX2luaXQgYm9vdF9mZHRfaW5mbyhjb25zdCB2b2lkICpmZHQsIHBh
ZGRyX3QgcGFkZHIpDQo+IA0KPiAgICAgYWRkX2Jvb3RfbW9kdWxlKEJPT1RNT0RfRkRULCBwYWRk
ciwgZmR0X3RvdGFsc2l6ZShmZHQpLCBmYWxzZSk7DQo+IA0KPiArICAgIHJldCA9IGRldmljZV90
cmVlX2Zvcl9lYWNoX25vZGUoZmR0LCAwLCBlYXJseV9zY2FuX25vZGUsIE5VTEwpOw0KPiArICAg
IGlmICggcmV0ICkNCj4gKyAgICAgICAgcGFuaWMoIkVhcmx5IEZEVCBwYXJzaW5nIGZhaWxlZCAo
JWQpXG4iLCByZXQpOw0KPiArDQo+ICAgICBucl9yc3ZkID0gZmR0X251bV9tZW1fcnN2KGZkdCk7
DQo+ICAgICBpZiAoIG5yX3JzdmQgPCAwICkNCj4gICAgICAgICBwYW5pYygiUGFyc2luZyBGRFQg
bWVtb3J5IHJlc2VydmUgbWFwIGZhaWxlZCAoJWQpXG4iLCBucl9yc3ZkKTsNCj4gQEAgLTU5NCwx
MCArNTk4LDE0IEBAIHNpemVfdCBfX2luaXQgYm9vdF9mZHRfaW5mbyhjb25zdCB2b2lkICpmZHQs
IHBhZGRyX3QgcGFkZHIpDQo+ICAgICB7DQo+ICAgICAgICAgc3RydWN0IG1lbWJhbmsgKmJhbms7
DQo+ICAgICAgICAgcGFkZHJfdCBzLCBzejsNCj4gKyAgICAgICAgY29uc3Qgc3RydWN0IGJvb3Rt
b2R1bGUgKm1vZCA9IGJvb3RfbW9kdWxlX2ZpbmRfYnlfa2luZChCT09UTU9EX1JBTURJU0spOw0K
PiANCj4gICAgICAgICBpZiAoIGZkdF9nZXRfbWVtX3Jzdl9wYWRkcihkZXZpY2VfdHJlZV9mbGF0
dGVuZWQsIGksICZzLCAmc3opIDwgMCApDQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiANCj4g
KyAgICAgICAgaWYgKCBtb2QgJiYgKG1vZC0+c3RhcnQgPT0gcykgJiYgKG1vZC0+c2l6ZSA9PSBz
eikgKQ0KPiArICAgICAgICAgICAgY29udGludWU7DQoNCk9rIEkgc2VlLCB3ZSBza2lwIHRoZSAv
bWVtcmVzZXJ2ZS8gZW50cnkgaWYgaXQgbWF0Y2hlcyB0aGUgcmFtZGlzaywgZmFpciBlbm91Z2gs
IEkgZG9u4oCZdCBoYXZlDQphIHN0cm9uZyBvcGluaW9uIG9uIGhvdyB3ZSBkbyB0aGF0LCB0aGUg
aW1wb3J0YW50IHRoaW5nIGlzIGp1c3QgdG8gdW5ibG9jayB0aGUgdXNlcnMgZXhwZXJpZW5jaW5n
DQp0aGlzIGlzc3VlLg0KDQpDaGVlcnMsDQpMdWNh


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 15:44:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 15:44:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831223.1246421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8iCd-00064Q-LP; Wed, 06 Nov 2024 15:44:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831223.1246421; Wed, 06 Nov 2024 15:44: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 1t8iCd-00064J-Ic; Wed, 06 Nov 2024 15:44:15 +0000
Received: by outflank-mailman (input) for mailman id 831223;
 Wed, 06 Nov 2024 15:44: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=Yuz5=SB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t8iCb-00064D-Uk
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 15:44:14 +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 f6df84cf-9c55-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 16:44:10 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2fb443746b8so60898191fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 07:44:10 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2fdef5d6cc0sm25720631fa.42.2024.11.06.07.44.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Nov 2024 07: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: f6df84cf-9c55-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzAiLCJoZWxvIjoibWFpbC1sajEteDIzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY2ZGY4NGNmLTljNTUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA3ODUwLjE2NTcwOSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730907849; x=1731512649; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=5xmtowCTRPvOi8EtuknFA8TQkk1xavZ1qqy5wcx33fE=;
        b=JrkS2YwGA2USr3AFT15wSClZbhZ5EwtzXWq0sxmbYDVZ22fp4xU2xrHGLY2nG452xg
         EmNeg3gzLhqKbQ4lHup0xLe7f34XvRWXTqpOuHKOmrEib6fs0yeA48IDM0vAOT2gw0o2
         sDlrJK9QVa8soeKmVJ4666LsYZOLYSwV5Vwnvk+nkpFphSVOO6NASR05Yz/o4e+Ytk4p
         smqd/BYVQvINZFb+1Y4wep1BsY9qWl2uEpf3zLC27AI2cAvtcVMtg8kR7hEd6Qaecsa4
         wzJFonKaHM3xLvRMRsuzv/boPM5ll3LIZ0f2Fu8oyGGclBOmTLHrm1AJaBjScHt7oRAs
         S/0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730907849; x=1731512649;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=5xmtowCTRPvOi8EtuknFA8TQkk1xavZ1qqy5wcx33fE=;
        b=VWjyMv3cWRUWVXhDMipP/aKisoQls/De9uPZQZ+dSQtkwNRjtqOjVrHIW2O6NXALoT
         B9PzRIgyi/BjMe3jM7zw0v/8SksCaSmFLil/m9rFgTEPgWYohgDY6eJDvMUHDgcjSdCG
         O0JeBVdOOnO50flnLZgj5LqtmJ+ZNtMvI8yPi6/nvRMschvEi+FASpxw32dXu063XdkG
         +bCII6QaMRIDzWSoVqv6kQ4Q7/LesKzmlUfFPPJydU1hqnhuetU6eG9CaH0yQGIM/vf5
         5r0pxvDkw7EJaxIOfKNCrozzMjG3F+gm3A/9feECwf7wnM/qq0ihBQU+vA8WFgrUV8Kp
         E1FA==
X-Forwarded-Encrypted: i=1; AJvYcCUbWC7RocPtgLjT5qz1679SEi1Hi0oay6fGWu0YMaI8GVtpL4Idl9jc5jcOaJjwU1eahNM4U0flGgw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqXuBHzFn4i3cXhYk78iw+7xL2C4cHDVHOEKJuexySjIs2gFu2
	HL6ZE3OhpSjlqcP48LfeqvJLZY6/+nNHstut2VJoOumrebWZvJ9a
X-Google-Smtp-Source: AGHT+IE069wUdStTgXIqRSLWl1rbHfcuu7M5riUfSTsL5H5Hs0pDnVnUNd0xUSEIROZyk1L0egDW4Q==
X-Received: by 2002:a2e:80a:0:b0:2fb:5ac6:90f0 with SMTP id 38308e7fff4ca-2fcbe09ad70mr154451331fa.34.1730907849128;
        Wed, 06 Nov 2024 07:44:09 -0800 (PST)
Message-ID: <8914c0756ee05f09874a2473af16fe26b936ea1a.camel@gmail.com>
Subject: Re: [PATCH v3 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Wed, 06 Nov 2024 16:44:04 +0100
In-Reply-To: <8380261d24388e453e74514dad8216c97e3bebee.camel@gmail.com>
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
		 <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.git.oleksii.kurochko@gmail.com>
		 <9e22b5ad-634f-48b7-b64c-fc44319a1d4d@suse.com>
	 <8380261d24388e453e74514dad8216c97e3bebee.camel@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Wed, 2024-11-06 at 13:44 +0100, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-11-05 at 16:20 +0100, Jan Beulich wrote:
> > On 01.11.2024 14:16, Oleksii Kurochko wrote:> @@ -423,3 +429,138 @@
> > void * __init early_fdt_map(paddr_t fdt_paddr)
> > > =C2=A0
> > > =C2=A0=C2=A0=C2=A0=C2=A0 return fdt_virt;
> > > =C2=A0}
> > > +
> > > +vaddr_t __ro_after_init directmap_virt_start =3D
> > > DIRECTMAP_VIRT_START;
> > > +
> > > +#ifndef CONFIG_RISCV_32
> > > +
> > > +/* Map a frame table to cover physical addresses ps through pe
> > > */
> > > +static void __init setup_frametable_mappings(paddr_t ps, paddr_t
> > > pe)
> > > +{
> > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
> > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE);
> > > +=C2=A0=C2=A0=C2=A0 unsigned long nr_mfns =3D PFN_DOWN(aligned_pe - a=
ligned_ps);
> > > +=C2=A0=C2=A0=C2=A0 unsigned long frametable_size =3D nr_mfns *
> > > sizeof(*frame_table);
> > > +=C2=A0=C2=A0=C2=A0 mfn_t base_mfn;
> > > +
> > > +=C2=A0=C2=A0=C2=A0 if ( frametable_size > FRAMETABLE_SIZE )
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("The frametable can=
not cover [%#"PRIpaddr",
> > > %#"PRIpaddr")\n",
> > > +=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 ps, pe);
> > > +
> > > +=C2=A0=C2=A0=C2=A0 /*
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * align base_mfn and frametable_size to MB(=
2) to have
> > > superpage mapping
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * in map_pages_to_xen()
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > > +=C2=A0=C2=A0=C2=A0 frametable_size =3D ROUNDUP(frametable_size, MB(2=
));
> > > +=C2=A0=C2=A0=C2=A0 base_mfn =3D alloc_boot_pages(frametable_size >> =
PAGE_SHIFT,
> > > PFN_DOWN(MB(2)));
> > > +
> > > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base=
_mfn,
> > > +=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 PFN_DOWN(frametable_size),
> > > +=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 PAGE_HYPERVISOR_RW) )
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("frametable mapping=
s failed: %#lx -> %#lx\n",
> > > +=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 FRAMETABLE_VIRT_START, mfn_x(base_mfn));
> > > +
> > > +=C2=A0=C2=A0=C2=A0 memset(&frame_table[0], -1, frametable_size);
> > > +=C2=A0=C2=A0=C2=A0 memset(&frame_table[PFN_DOWN(aligned_ps)],
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0, nr_m=
fns * sizeof(*frame_table));
> >=20
> > Interesting - now you write out a huge amount of -1s, just to then
> > overwrite
> > most of them with zeroes. I'm not going to insist that you change
> > this yet
> > another time, but the performance hit from this is going to bite
> > you/us as
> > soon as Xen is run on bigger-memory systems.
> I agree that validating or invalidating frames in a single pass would
> be preferable to nearly two passes. I=E2=80=99m considering whether there=
=E2=80=99s a
> way to ensure that frame_table is set to -1 at compile time. It seems
> the best approach (and only one?) might be to initialize frame_table
> in
> one pass as follows:
> 1) [0, aligned_ps) =3D -1
> 2) [aligned_ps, nr_mfns * sizeof(*frame_table)) =3D 0
> 3) [nr_mfns * sizeof(*frame_table), frame_table_size) =3D -1
> Does this approach seem optimal?
>=20
> >=20
> > Plus, unless I'm mistaken, the function continues to rely on ps =3D=3D
> > 0
> > as
> > input. Just that the dependency is now better hidden. Specifically
> > if
> > you
> > calculate nr_mfns from the difference, and then use that for
> > allocation,
> > then you need to offset the start of the mapping you create
> > accordingly.
> I'm not quite understanding why the method of calculating nr_mfns
> affects how the frame_table is mapped. Isn=E2=80=99t it only necessary to
> calculate the correct size of the frame_table that needs to be
> allocated?
>=20
> I assume by the offset you mean something similar to what was done
> for
> directmap mapping?
Here is the small diff for simplicity:
   --- a/xen/arch/riscv/include/asm/mm.h
   +++ b/xen/arch/riscv/include/asm/mm.h
   @@ -132,11 +132,13 @@ struct page_info
        };
    };
   =20
   +extern struct page_info *frame_table_virt_start;
   +
    #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
   =20
    /* Convert between machine frame numbers and page-info structures.
   */
   -#define mfn_to_page(mfn)    (frame_table + mfn_x(mfn))
   -#define page_to_mfn(pg)     _mfn((pg) - frame_table)
   +#define mfn_to_page(mfn)    (frame_table_virt_start + mfn_x(mfn))
   +#define page_to_mfn(pg)     _mfn((pg) - frame_table_virt_start)
   =20
    static inline void *page_to_virt(const struct page_info *pg)
    {
   diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
   index db75aa1d4f..9bd15597a9 100644
   --- a/xen/arch/riscv/mm.c
   +++ b/xen/arch/riscv/mm.c
   @@ -426,6 +426,8 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
   =20
    vaddr_t __ro_after_init directmap_virt_start =3D
   DIRECTMAP_VIRT_START;
   =20
   +struct page_info *frame_table_virt_start;
   +
    #ifndef CONFIG_RISCV_32
   =20
    /* Map a frame table to cover physical addresses ps through pe */
   @@ -437,6 +439,11 @@ static void __init
   setup_frametable_mappings(paddr_t ps, paddr_t pe)
        unsigned long frametable_size =3D nr_mfns * sizeof(*frame_table);
        mfn_t base_mfn;
   =20
   +    if ( !frame_table_virt_start )
   +    {
   +        frame_table_virt_start =3D frame_table -
   paddr_to_pfn(aligned_ps);
   +    }
   +
        if ( frametable_size > FRAMETABLE_SIZE )
            panic("The frametable cannot cover [%#"PRIpaddr",
   %#"PRIpaddr")\n",
                  ps, pe);
   @@ -454,9 +461,12 @@ static void __init
   setup_frametable_mappings(paddr_t ps, paddr_t pe)
            panic("frametable mappings failed: %#lx -> %#lx\n",
                  FRAMETABLE_VIRT_START, mfn_x(base_mfn));
   =20
   -    memset(&frame_table[0], -1, frametable_size);
   -    memset(&frame_table[PFN_DOWN(aligned_ps)],
   -           0, nr_mfns * sizeof(*frame_table));
   +    memset(&frame_table[0], -1,
   +           PFN_DOWN(aligned_ps) * sizeof(*frame_table));
   +    memset(&frame_table[PFN_DOWN(aligned_ps)], 0,
   +           nr_mfns * sizeof(*frame_table));
   +    memset(&frame_table[PFN_DOWN(aligned_pe)], -1,
   +           frametable_size - (nr_mfns * sizeof(*frame_table)));
    }

~ Oleksii=20

>=20
>=20
> > =C2=A0At
> > which point you may need to apply extra care to cover the case
> > where
> > sizeof(*frame_table) is not a power of two, and hence e.g. the
> > first
> > valid
> > page might have a struct instance straddling a page boundary.
> The first valid page is aligned_ps ( which is aligned on a page
> boundary ) so assuming that sizeof(*frame_table) < PAGE_SIZE we can't
> straddle a page boundary, can we?
>=20
> >=20
> > > +=C2=A0=C2=A0=C2=A0 /*
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * The base address may not be aligned to th=
e second level
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * size in case of Sv39 (e.g. 1GB when using=
 4KB pages).
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * This would prevent superpage mappings for=
 all the regions
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * because the virtual address and machine a=
ddress should
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * both be suitably aligned.
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * Prevent that by offsetting the start of t=
he directmap
> > > virtual
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * address.
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(DIRECTMAP_VIRT_START + (bas=
e_addr &
> > > ~high_bits_mask),
> >=20
> > I'm afraid this is correct only for the first invocation of the
> > function.
> > For any further invocation you'd likely (attempt to) replace
> > previously
> > established mappings. I think that here you need to use
> > directmap_virt_start
> > instead.
> Banks are sorted by bank start address ( common/device-
> tree/bootfdt.c:623 ):
> =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 * On Arm64 setup_directmap_map=
pings() expects to be called
> with
> =C2=A0=C2=A0 the lowest
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * bank in memory first. There =
is no requirement that the DT
> will
> =C2=A0=C2=A0 provide
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * the banks sorted in ascendin=
g order. So sort them through.
> =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 sort(mem->bank, mem->nr_banks, sizeo=
f(struct membank),
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cmp_me=
mory_node, swap_memory_node);
> ( btw, comment is needed to be updated ... )
>=20
> Thereby no replacement should happen if I don't miss something.
>=20
> I am thinking wouldn't it be more correct to use
> mfn_to_virt(base_mfn):
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(__mfn_to_virt(=
base_mfn) + (base_addr &
> =C2=A0=C2=A0 ~high_bits_mask),
> =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 _mfn(base_mfn), nr_mfns,
> =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 PAGE_HYPERVISOR_RW) )
>=20
> >=20
> > > +/*
> > > + * Setup memory management
> > > + *
> > > + * RISC-V 64 has a large virtual address space (the minimum
> > > supported
> > > + * MMU mode is Sv39, which provides GBs of VA space).
> > > + *
> > > + * The directmap_virt_start is shifted lower in the VA space to
> > > + * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address)
> > > to avoid
> > > + * wasting a large portion of the directmap space, this also
> > > allows for simple
> > > + * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a
> > > GB boundary
> > > + * (for Sv39; for other MMU mode boundaries will be bigger ) by
> > > masking the
> > > + * higher bits of the RAM start address to enable the use of
> > > superpages in
> > > + * map_pages_to_xen().
> > > + *
> > > + * The frametable is mapped starting from physical address 0,
> > > minimizing
> > > + * wasted VA space and simplifying page_to_mfn() and
> > > mfn_to_page()
> > > + * translations.
> > > + */
> > > +void __init setup_mm(void)
> > > +{
> > > +=C2=A0=C2=A0=C2=A0 const struct membanks *banks =3D bootinfo_get_mem=
();
> > > +=C2=A0=C2=A0=C2=A0 paddr_t ram_start =3D INVALID_PADDR;
> > > +=C2=A0=C2=A0=C2=A0 paddr_t ram_end =3D 0;
> > > +=C2=A0=C2=A0=C2=A0 paddr_t ram_size =3D 0;
> > > +=C2=A0=C2=A0=C2=A0 unsigned int i;
> > > +
> > > +=C2=A0=C2=A0=C2=A0 /*
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * We need some memory to allocate the page-=
tables used for
> > > the directmap
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * mappings. But some regions may contain me=
mory already
> > > allocated
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * for other uses (e.g. modules, reserved-me=
mory...).
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 * For simplicity, add all the free regions =
in the boot
> > > allocator.
> > > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > > +=C2=A0=C2=A0=C2=A0 populate_boot_allocator();
> > > +
> > > +=C2=A0=C2=A0=C2=A0 total_pages =3D 0;
> >=20
> > Nit: Is this actually necessary?
> Agree, there is no need for total_pages. It should be dropped.
>=20
> >=20
> > > +=C2=A0=C2=A0=C2=A0 for ( i =3D 0; i < banks->nr_banks; i++ )
> > > +=C2=A0=C2=A0=C2=A0 {
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 const struct membank *ban=
k =3D &banks->bank[i];
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_start =3D RO=
UNDUP(bank->start, PAGE_SIZE);
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_end =3D ROUN=
DDOWN(bank->start + bank->size,
> > > PAGE_SIZE);
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned long bank_size =
=3D bank_end - bank_start;
> > > +
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size +=3D bank_size;
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_start =3D min(ram_sta=
rt, bank_start);
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_end =3D max(ram_end, =
bank_end);
> > > +
> > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 setup_directmap_mappings(=
PFN_DOWN(bank_start),
> > > PFN_DOWN(bank_size));
> > > +=C2=A0=C2=A0=C2=A0 }
> >=20
> > You maintain ram_start in the loop, just to then ...
> >=20
> > > +=C2=A0=C2=A0=C2=A0 total_pages =3D PFN_DOWN(ram_size);
> > > +
> > > +=C2=A0=C2=A0=C2=A0 setup_frametable_mappings(0, ram_end);
> > > +=C2=A0=C2=A0=C2=A0 max_page =3D PFN_DOWN(ram_end);
> > > +}
> >=20
> > ... not use it at all - why?
> ram_start was needed for the case when setup_frametable_mappings()
> used
> it as the first argument. Now it isn't true anymore so should be
> dropped.
>=20
> Thanks.
>=20
> ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 15:57:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 15:57:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831234.1246431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8iOx-0008Sh-TK; Wed, 06 Nov 2024 15:56:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831234.1246431; Wed, 06 Nov 2024 15:56: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 1t8iOx-0008Sa-PB; Wed, 06 Nov 2024 15:56:59 +0000
Received: by outflank-mailman (input) for mailman id 831234;
 Wed, 06 Nov 2024 15:56: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8iOw-0008RG-Gd
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 15:56:58 +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 bddc291b-9c57-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 16:56:53 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a99e3b3a411so186567866b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 07:56:53 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb17ced03sm303162266b.104.2024.11.06.07.56.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 07:56: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: bddc291b-9c57-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJkZGMyOTFiLTljNTctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA4NjEzLjQ3ODg3NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730908613; x=1731513413; 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=28gQ1hYY7abQh9NSjEig4Q+GbvE8lmNYJgG2nLQs48I=;
        b=gf9CXSgW7MRVWA58OWEBupRRIufteV3wDOCJQLByhf4kDmnTYac+PCwXoz7yImHB7I
         pXREgo2v7Y/wTFX5P9E7BX4a+eSJEOkTr9ftS8lz/v82u4v8hlKAQKT2S/Zod+4YN3RI
         wmgUbflOmAwsHUvSgFrgKLqrkMMh/rS0U2qNM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730908613; x=1731513413;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=28gQ1hYY7abQh9NSjEig4Q+GbvE8lmNYJgG2nLQs48I=;
        b=np2b0UQknFs6am8E/2IfeE/wIswxffxZERok2vlx2prssNtp0ljovmkMpkvKc7SvWU
         LL1yyIpa9gBsnYWodvddEEXlIk6Rk6pokECCrEF5DZx0Qr3bpRJsYEok8Wazp3kLxCoH
         5YZurUKLX3q6ec1pM32U2CL6jMmFhsNHRH0wIjTTmMuleLkHT5CK+IhW1tqknMFkMxm+
         chQ3zqucOD36alPHDUO+J3DAcSKlvI/7Hhj/y1wfYcGg/i4zn8g7Sl2FlQwqMFP9vEHU
         xbSkBBehcvti0eq7bJaaJI5jDiv/BwPOFVqtM2q13TZwc8z4nwabimECTdwTFmWDxgCa
         4yPQ==
X-Forwarded-Encrypted: i=1; AJvYcCV+7lfSX741weQCPXB0Jx/M7Gg1+WrZNwI43TcwJCHZuBqS5ai5006wTSQH0rP7cVcBl2KeZBT3kWs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWnIok6oktW2tQuV06RYeXGdz3oSRkEAbsJLe2d0fjTvE37Slc
	d+gvRE0fzPVWNlThqWrr6jpzXyFm8OdLzDtusN+fZ3CG75LXmI5Se2dO0uUvqWfskMyFAUvSEuK
	d
X-Google-Smtp-Source: AGHT+IEXWx0VTz5dD4VqLOaOjHn4nS72HGo6D0/GXLmasjckAmEcUzRIDKccgPTDXAofGijCXqdtbA==
X-Received: by 2002:a17:907:1c95:b0:a9e:82f3:d4ab with SMTP id a640c23a62f3a-a9ec66047e8mr279288766b.9.1730908612912;
        Wed, 06 Nov 2024 07:56:52 -0800 (PST)
Message-ID: <21d4af14-23ba-4783-bf9e-d670f72d1745@citrix.com>
Date: Wed, 6 Nov 2024 15:56:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 6/6] CI: Don't use -y with apt-get update
To: Javi Merino <javi.merino@cloud.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1730743077.git.javi.merino@cloud.com>
 <67fbec9dd324802e1a1c5e3c38ae7853ede35e86.1730743077.git.javi.merino@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <67fbec9dd324802e1a1c5e3c38ae7853ede35e86.1730743077.git.javi.merino@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/11/2024 1:05 pm, Javi Merino wrote:
> apt-get update refreshes the package lists.  -y doesn't do anything
> here.  It is needed for "apt-get install" or "apt-get upgrade" but not
> for apt-get update.  Drop it.
>
> Signed-off-by: Javi Merino <javi.merino@cloud.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
>  automation/build/debian/11-ppc64le.dockerfile        | 2 +-
>  automation/build/debian/11-riscv64.dockerfile        | 2 +-
>  automation/build/debian/12-ppc64le.dockerfile        | 2 +-
>  automation/build/debian/12-riscv64.dockerfile        | 2 +-
>  automation/build/debian/12-x86_64-gcc-ibt.dockerfile | 4 ++--
>  automation/build/ubuntu/16.04-x86_64.dockerfile      | 2 +-
>  automation/build/ubuntu/18.04-x86_64.dockerfile      | 2 +-
>  automation/build/ubuntu/20.04-x86_64.dockerfile      | 2 +-
>  automation/build/ubuntu/22.04-x86_64.dockerfile      | 2 +-
>  automation/build/ubuntu/24.04-x86_64.dockerfile      | 2 +-

Judging by this file list, the change is independent of patches 1-5, so
can go in straight away.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 15:59:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 15:59:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831239.1246441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8iRa-0000gX-8P; Wed, 06 Nov 2024 15:59:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831239.1246441; Wed, 06 Nov 2024 15:59: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 1t8iRa-0000gQ-5G; Wed, 06 Nov 2024 15:59:42 +0000
Received: by outflank-mailman (input) for mailman id 831239;
 Wed, 06 Nov 2024 15:59: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8iRY-0000gK-Vz
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 15:59:40 +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 1f388223-9c58-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 16:59:36 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5c9388a00cfso7930516a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 07:59:36 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a0771sm302716166b.27.2024.11.06.07.59.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 07:59: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: 1f388223-9c58-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmMzg4MjIzLTljNTgtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA4Nzc2LjgyNTg1OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730908776; x=1731513576; 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=NDX4IVqEcD/CzxLfFCWCKo4EOE2guwQKedesdcxnGlk=;
        b=qMTJhFX1JjtfZAzXboZCwt88vOYcO+rnh+Fx+T3IfyYS9R9tbw/sAZMJbXnEKumkIC
         w2yPFxQ/b8YhBw/MKnmsflAqO0JHSb6f2oB3KqGVMb44LczXcOQyVmeuxj+wt3CFxo2R
         VnBoGEPTatT5X462aeVkmJLjCJRJI1a71rJxc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730908776; x=1731513576;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NDX4IVqEcD/CzxLfFCWCKo4EOE2guwQKedesdcxnGlk=;
        b=h58V60dnjJlF/fWSyqAgVk2APzXgKfYXRlduW65l/2rPI+KYEtdMLXqRizWrHYwnZB
         N037FAuQjakKT/EoknqKgN91F66m1QMDYEKKv3YZ3cWD951VporMRJ4QA5ry27IYg5xb
         iWfBYCjF6GNEJdQy9XpO6W8KcdxsI+Q+3LJ0rhkmgH0gPXKRyuGW6kk96cXHQhvKB89T
         Qory92ACoSFhBkK39W5uXGW7gAOaLSeccS4+TGEjc9sK3dDGbBN0cQRXtUqZ60+prius
         MRfyvQqlQFZjLNNdTwIuNkFDvyejjtI1wtiiaQTihJPRpfM8bfEOlqrUTxKHapg6u5V4
         vMYA==
X-Forwarded-Encrypted: i=1; AJvYcCVwMxZlbQ18eXzzHL3Ze3LUFNeiJYCzTKlWHUjQh806cYzCCMz0ErZHQeQ7e5sBCBBa15N181BkGEg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxlZ+hfb6eNSyI4Wy00KvDpLP9yzX1/ODGXi9ZKKQb5MMGqCn3n
	7sBiQONeCkuN0Dkel+nIT/GXwlh5sFmho/xWPEo/5gblbIkUqp4PjeVEA34bW2c=
X-Google-Smtp-Source: AGHT+IGBCHFetBSc2rU5pVn5U74vCpVDOrT0wj1ZqpSi5T//CyfAjDkAecRopHKe93T3T7VW+DlyuA==
X-Received: by 2002:a17:907:3f9d:b0:a9a:1160:993 with SMTP id a640c23a62f3a-a9de5c91c9dmr4293510866b.8.1730908776245;
        Wed, 06 Nov 2024 07:59:36 -0800 (PST)
Message-ID: <fcbd6e5d-8f6c-416a-a7bf-83893a95e9b4@citrix.com>
Date: Wed, 6 Nov 2024 15:59:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/6] CI: Refresh the Debian 12 x86_64 container
To: Javi Merino <javi.merino@cloud.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1730743077.git.javi.merino@cloud.com>
 <083c6bb0194fdd082425185f9d153b355a47c614.1730743077.git.javi.merino@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <083c6bb0194fdd082425185f9d153b355a47c614.1730743077.git.javi.merino@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/11/2024 1:05 pm, Javi Merino wrote:
> Rework the container to use heredocs for readability, and use
> apt-get --no-install-recommends to keep the size down.
>
> This reduces the size of the (uncompressed) container from 3.44GB to
> 1.97GB.
>
> The container is left running the builds and tests as root to avoid
> breaking the xilinx runners.
>
> Signed-off-by: Javi Merino <javi.merino@cloud.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 16:10:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 16:10:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831249.1246451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8iba-0003Oo-5P; Wed, 06 Nov 2024 16:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831249.1246451; Wed, 06 Nov 2024 16:10: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 1t8iba-0003Ny-1a; Wed, 06 Nov 2024 16:10:02 +0000
Received: by outflank-mailman (input) for mailman id 831249;
 Wed, 06 Nov 2024 16:10: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=y0u0=SB=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1t8ibY-0003HC-Un
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 16:10:01 +0000
Received: from mail-il1-x12d.google.com (mail-il1-x12d.google.com
 [2607:f8b0:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90a6697e-9c59-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 17:09:57 +0100 (CET)
Received: by mail-il1-x12d.google.com with SMTP id
 e9e14a558f8ab-3a3b463e9b0so24336675ab.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 08:09: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: 90a6697e-9c59-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoxMmQiLCJoZWxvIjoibWFpbC1pbDEteDEyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkwYTY2OTdlLTljNTktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA5Mzk3LjI2ODA2NCwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1730909396; x=1731514196; 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=hrxTxPGTV9NGXRNReCq+aWbGNvfGaaC9bERcA/xijE4=;
        b=RbvJ/xoHN1Is+j6wuKlA0e8zYuTYpRsUSWp7+wGringzc1J34YRnhRtz9sECJq4IRX
         bF2yXasOn4yNh3BsLcJnBOTMZi2IQwovqp97p1sVyRoRxCmJbJLlsvTBChVx2YL+Z6RZ
         Y74W76BAQVjBdQeUZcNvLTNGuntFW5tPLNduDewBQhTH1gkI0pP47jYDDoa3GZcT03El
         rRWrUinIwCrgBD3u10XxbBObiA5lMr9AQZlXTMz75jU7fnivbYqSaZtImQ6ocLa6ItEl
         0Lgszz/LAIbM7HBwjhVPSB1dWEWoy8sfomgyzD4hN7/T/9t+0U92/h+zVcaB8lWuOqFs
         RTRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730909396; x=1731514196;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hrxTxPGTV9NGXRNReCq+aWbGNvfGaaC9bERcA/xijE4=;
        b=nSBBF7ARGj0VCPOjyUz2GX/H6v0vQHvpclBaGdk8+ubqYhSewjY1IRYOPz7uDj2hoT
         l2xHGmzaSdZu2blN4b+hYFo3tLGNY10eRlUOEJhHlcdLjZBtopy5hdkDHFsCL9xuWdmT
         asYRzKINZX+MBzrTr7NbPFWDvf2PzgFNdM14wzaDyRPf/Yr+e8B6reJFyPE0qrtKvKt7
         iN6lo81wKMOktBTx0lWUbz394E3JtGlmVvI+X99n38W+HdRyRy0oo4Y/uPU+bjikBWAx
         zCshX/b+g6gAC+6fuI5cJStgOqV1CBHktWz1LD9JIzO6Iq/mWaPbVun6+DA/PARIw/qb
         CslQ==
X-Forwarded-Encrypted: i=1; AJvYcCVvZobY16qV3olq/MjdeEuLPfFMEe4Sqa8qVyifvfbwhrYn4bNq2F7jkBkyIDj8/gu/JZ7mj7NZ5RM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4If1iS+hLgnpxbsApdVNiRy4qjm5wvW4qaUhg20tA8rbMX3Oz
	ZBSkzgwzZgOxTJJD99mEwPwQ1HgM4WGYJ4knlhzqxEJ2UkW1SQdVuQwPV90ViCjxV4TLlHkGWtE
	WcHUK20ercPMhsYHFObZ6QbZhXjj4CeSBYPn6sg==
X-Google-Smtp-Source: AGHT+IELeOfsitgzW+hYdMc9WCJg6M8WvYDhaXMSHKrNspDZ/r1hbfFUfTWhBfKNuRRuTqkRWGakkiS3MU75BqnWeXs=
X-Received: by 2002:a05:6e02:1948:b0:3a6:c7a8:a1cc with SMTP id
 e9e14a558f8ab-3a6c7a8a3ccmr151767865ab.20.1730909395525; Wed, 06 Nov 2024
 08:09:55 -0800 (PST)
MIME-Version: 1.0
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-2-carlo.nonato@minervasys.tech> <6e6f8e2a-ea16-4b48-ac70-23e72ade2b1a@suse.com>
In-Reply-To: <6e6f8e2a-ea16-4b48-ac70-23e72ade2b1a@suse.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Wed, 6 Nov 2024 17:09:44 +0100
Message-ID: <CAG+AhRUtmpB1uSd5kW7zNjyDdmBcVCta9t5Qdu6ND+RYx3VUfQ@mail.gmail.com>
Subject: Re: [PATCH v9 01/13] xen/common: add cache coloring common code
To: Jan Beulich <jbeulich@suse.com>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
	Marco Solieri <marco.solieri@minervasys.tech>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 5, 2024 at 4:46=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 25.10.2024 11:50, Carlo Nonato wrote:
> > Last Level Cache (LLC) coloring allows to partition the cache in smalle=
r
> > chunks called cache colors.
> >
> > Since not all architectures can actually implement it, add a HAS_LLC_CO=
LORING
> > Kconfig option.
> > MAX_LLC_COLORS_ORDER Kconfig option has a range maximum of 10 (2^10 =3D=
 1024)
>
> Is the MAX_ here stale ...
>
> > because that's the number of colors that fit in a 4 KiB page when integ=
ers
> > are 4 bytes long.
> >
> > LLC colors are a property of the domain, so struct domain has to be ext=
ended.
> >
> > Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> >
> > Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> > Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> > ---
> > v9:
> > - dropped _MAX_ from CONFIG_MAX_LLC_COLORS_ORDER
>
> ... with this change?

Yes.

> > --- a/docs/misc/xen-command-line.pandoc
> > +++ b/docs/misc/xen-command-line.pandoc
> > @@ -1708,6 +1708,43 @@ This option is intended for debugging purposes o=
nly.  Enable MSR_DEBUGCTL.LBR
> >  in hypervisor context to be able to dump the Last Interrupt/Exception =
To/From
> >  record with other registers.
> >
> > +### llc-coloring (arm64)
> > +> `=3D <boolean>`
> > +
> > +> Default: `false`
> > +
> > +Flag to enable or disable LLC coloring support at runtime. This option=
 is
> > +available only when `CONFIG_LLC_COLORING` is enabled. See the general
> > +cache coloring documentation for more info.
> > +
> > +### llc-nr-ways (arm64)
> > +> `=3D <integer>`
> > +
> > +> Default: `Obtained from hardware`
> > +
> > +Specify the number of ways of the Last Level Cache. This option is ava=
ilable
> > +only when `CONFIG_LLC_COLORING` is enabled. LLC size and number of way=
s are used
> > +to find the number of supported cache colors. By default the value is
> > +automatically computed by probing the hardware, but in case of specifi=
c needs,
> > +it can be manually set. Those include failing probing and debugging/te=
sting
> > +purposes so that it's possible to emulate platforms with different num=
ber of
> > +supported colors. If set, also "llc-size" must be set, otherwise the d=
efault
> > +will be used. Note that using these two options implies "llc-coloring=
=3Don".
>
> Nit: Both here and ...
>
> > +### llc-size (arm64)
> > +> `=3D <size>`
> > +
> > +> Default: `Obtained from hardware`
> > +
> > +Specify the size of the Last Level Cache. This option is available onl=
y when
> > +`CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used=
 to find
> > +the number of supported cache colors. By default the value is automati=
cally
> > +computed by probing the hardware, but in case of specific needs, it ca=
n be
> > +manually set. Those include failing probing and debugging/testing purp=
oses so
> > +that it's possible to emulate platforms with different number of suppo=
rted
> > +colors. If set, also "llc-nr-ways" must be set, otherwise the default =
will be
> > +used. Note that using these two options implies "llc-coloring=3Don".
>
> ... here, maybe better s/these two/both/?

Ok.

> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -71,6 +71,9 @@ config HAS_IOPORTS
> >  config HAS_KEXEC
> >       bool
> >
> > +config HAS_LLC_COLORING
> > +     bool
> > +
> >  config HAS_PIRQ
> >       bool
> >
> > @@ -516,4 +519,23 @@ config TRACEBUFFER
> >         to be collected at run time for debugging or performance analys=
is.
> >         Memory and execution overhead when not active is minimal.
> >
> > +config LLC_COLORING
> > +     bool "Last Level Cache (LLC) coloring" if EXPERT
> > +     depends on HAS_LLC_COLORING
> > +     depends on !NUMA
>
> Instead of this dependency, wouldn't it be more natural to suppress the
> setting of HAS_LLC_COLORING by an arch when NUMA is on?

So moving the "depends on" in the HAS_LLC_COLORING definition? Yes I believ=
e
it would be better.

> > --- /dev/null
> > +++ b/xen/common/llc-coloring.c
> > @@ -0,0 +1,111 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Last Level Cache (LLC) coloring common code
> > + *
> > + * Copyright (C) 2022 Xilinx Inc.
>
> Does this need updating (if it can't be dropped)?

I don't remember what's the current policy for these copyright lines.
Do you still use them? If they are used, should they reflect the history
of the revisions of the patch series? I mean, in v1 it was "2019 Xilinx Inc=
."
2023-2024 would then be MinervaSys.

> > + */
> > +#include <xen/keyhandler.h>
> > +#include <xen/llc-coloring.h>
> > +#include <xen/param.h>
> > +
> > +#define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)
> > +
> > +static bool __ro_after_init llc_coloring_enabled;
> > +boolean_param("llc-coloring", llc_coloring_enabled);
> > +
> > +static unsigned int __initdata llc_size;
> > +size_param("llc-size", llc_size);
> > +static unsigned int __initdata llc_nr_ways;
> > +integer_param("llc-nr-ways", llc_nr_ways);
> > +/* Number of colors available in the LLC */
> > +static unsigned int __ro_after_init max_nr_colors;
> > +
> > +static void print_colors(const unsigned int *colors, unsigned int num_=
colors)
>
> Just to mention it here as well (I mentioned it elsewhere in the past):
> Personally I think that when function parameters denote array, array
> notation would also better be used. I.e. "const unsigned int colors[]"
> here. That'll then probably also bring us closer to using the upcoming
> (in gcc) counted_by attribute.

Ok.

> > +void __init llc_coloring_init(void)
> > +{
> > +    unsigned int way_size;
> > +
> > +    if ( llc_size && llc_nr_ways )
> > +    {
> > +        llc_coloring_enabled =3D true;
> > +        way_size =3D llc_size / llc_nr_ways;
> > +    }
> > +    else if ( !llc_coloring_enabled )
> > +        return;
> > +    else
> > +    {
> > +        way_size =3D get_llc_way_size();
> > +        if ( !way_size )
> > +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' =
missing\n");
> > +    }
> > +
> > +    /*
> > +     * The maximum number of colors must be a power of 2 in order to c=
orrectly
> > +     * map them to bits of an address.
> > +     */
> > +    max_nr_colors =3D way_size >> PAGE_SHIFT;
>
> This discards low bits of the quotient calculated above, bearing a certai=
n
> risk that ...
>
> > +    if ( max_nr_colors & (max_nr_colors - 1) )
> > +        panic("Number of LLC colors (%u) isn't a power of 2\n", max_nr=
_colors);
>
> ... this panic() wrongly doesn't trigger.

Yes, but I don't care if way_size isn't a power of 2.

> Jan

- Carlo


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 16:17:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 16:17:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831256.1246461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ij8-0005DH-UF; Wed, 06 Nov 2024 16:17:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831256.1246461; Wed, 06 Nov 2024 16: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 1t8ij8-0005DA-Q9; Wed, 06 Nov 2024 16:17:50 +0000
Received: by outflank-mailman (input) for mailman id 831256;
 Wed, 06 Nov 2024 16:17: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=68q8=SB=epam.com=Sergiy_Kibrik@srs-se1.protection.inumbo.net>)
 id 1t8ij7-0005D0-Ux
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 16:17:50 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2613::60a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8c48c62-9c5a-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 17:17:46 +0100 (CET)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by VI0PR03MB10225.eurprd03.prod.outlook.com (2603:10a6:800:20e::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 16:17:41 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.8114.015; Wed, 6 Nov 2024
 16:17: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: a8c48c62-9c5a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjBhIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImE4YzQ4YzYyLTljNWEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTA5ODY2LjczNzI0Niwic2VuZGVyIjoic2VyZ2l5X2tpYnJpa0BlcGFtLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CvNQ4mL468xEREdfBm33wRiWka58Iba5DCS1WgXKo2FhyqiUyCrC+atbzHSsOr4bEJ623bitBm+8Y5cAV6nd+Cc6Qi4gqYe5Cf5FZOMCItfml9WopoBnNTyjNeKiMLsETQkIKre3boj3/qWTLlWi3gypG12A0W6tYd5S9gohzAW83dNuk+hM7ov9Mq/GvNj+qlDv0kN3xO+eRH/g2Jrm4ViBZ9NYcqiXm/4LkYVWN8q/7yfo7ZcePwoEcqAjSGqoQf4z8e/F/2VNE3bih87bvLrZ+TPoIu9ctS1ZfxzRQfxvhd85oY6pVVcn60fiBMMQUFGe/zgC8iY3wl0UC1Lvhg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vrCHY9gmvzgb1cRGQ4VSIWnw/tGtMWTjyeWRGT5V2r4=;
 b=xI1YXRmL0eiLsnYeo5jPquYchXCD0AYcd0AOCkb+plQsrAnQOdHHrT6ojkSitkSSQzlGACg3d2P5sXnE5zZuXKQVYB0kcbr5X1Zgauujol07Nc4KnU/NDKQGUw+iFJ8/mKTJeTjJ3If+BGX23VP1WIAvVNWIwlT2pe5YxDtls/JVc6nDQirv7d2ZIKIaxur+WEz90Byix68tc27/Lq8onM/e3t7WTn1DuOX6oBrmWS6fByiuYmHWRmLFsikMCYrcEnOCEjm2EM0Nn8pamFF+i06TP8PVWKFw9AYayOL2sjDJJOwFCAYEAeC0+W9BpnEVnl6FrOYUpdsoYmt+6toMgw==
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=vrCHY9gmvzgb1cRGQ4VSIWnw/tGtMWTjyeWRGT5V2r4=;
 b=OLxu+5EsFEp5aMOPhN17NHZEpuD2hfSSiWNsxFH/MHb7t0PElBVigeTigkrf8v3CGMmvrPLXQ+ZMKcrKNDsnz1WaZbn3ksH2Z13rro5jjzS5ibwCp2XNOLARus1s1ZDbodxe0NPC7JFWVo1dbyvD17AM67jrTC7UGrecaiqXrfgPzVZLnFw3C29lJ4ORcAr1OniKpoeEJI8p1DaMiNAOjiensMoiZFFmjGRQJKNvcuXxNX3qC22q8Oi5zsCLofKVWfoWA7P7w8TSsa5pSkDaF16jke/yHVDu1X6MRSlpZbX/llYr0CrSFbPJUmj5DFGdKOHKMwphbQtvWSMm3oh9zg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <09171e88-28d2-433b-a9c3-ad822e9f57c0@epam.com>
Date: Wed, 6 Nov 2024 18:17:36 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM
 timer
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich <jbeulich@suse.com>
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
 <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0020.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::24) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|VI0PR03MB10225:EE_
X-MS-Office365-Filtering-Correlation-Id: 756326df-7177-4167-069e-08dcfe7e87dc
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?aWxKK3hrcUhNUWdSSjdiR3BEbFByNWw1eFRhR2txVmVFRU9GY2tBL2NGcmRR?=
 =?utf-8?B?SFVrK2IxRWdHR2EvdC9RZmtvL2oyQjRXa3laR2pma2RtY1N5WHVQL2NZeEZN?=
 =?utf-8?B?Zm5KWXcwYzBvR3pMRTRUUTQxemtBS3BpY2g3Q2pOT2ptZUNEQUFZNEVlbGlu?=
 =?utf-8?B?TGEzRGFOWnQvSGY2UG1FSjNzU25oQXA1NWEvMDVhN1c3RDlpYnJKSnlSMGdZ?=
 =?utf-8?B?WEd3WVNWMzI4Sk51aVRMTncwN0FvcndvQlVvN1FoWFYxWTBPYkYyNm1idWl0?=
 =?utf-8?B?NGdoaDJiK2lQbGk5YnVpN0t5WXFXYkdMLzlsYmFxL0RnZ3ZjdWpMdllYamNs?=
 =?utf-8?B?TWFoMjBIU29HZWZ2ZDJucUlraDNSM285cm1oL2c4d0V1TzA0MTZjUDdFTHV2?=
 =?utf-8?B?MzlIR2Q1ZDJtekk3MHVQL3I4dVNSOXRiZTdpVHQ4VXNrODNMV253aEsrdXo3?=
 =?utf-8?B?RnVra1RiVGpmN2tUOHd0ejRqRVV1UjBuYkxSMHNBV0tMYXptLzBEUDA2V2xR?=
 =?utf-8?B?MmZsY1h0NkdrNWw2WEhTWmdLeGpiaExTMW9pdkJkV2Vnbkx5c1E1and6YTBB?=
 =?utf-8?B?aUFJdFJkNGNMZnVUWW8vNFA2ckxkZFNUa0NjNDE2ZHphNHlzVWF1MXh6L2sz?=
 =?utf-8?B?dk1iRU1VZkNkRGFYZXVxeUNST05Ec05GdVU2YnU2SjZkK280cDVpVEd1MU5U?=
 =?utf-8?B?UndjTkdNTGJub1BreHZvSU1OTkRsZmFZUTF1djRlZERiRVpVUDNmMHR1Qkxm?=
 =?utf-8?B?QS94SW51MW5naVlELzBvUGkzRi8yUHY4RXpkM25KVlV2RWs1czlIWVdNSHJa?=
 =?utf-8?B?ZWt0Q0JWRTJHSzhCR0VDcGNjY3pjVE5BT0RuZGs1bzNpbzI1WitIQzE2dkVB?=
 =?utf-8?B?dnJXVUFyekFVTzM5WFFBTVczNWMyZHN4bjlmbDdQTi9QYjRIRDhTeUNuNjdY?=
 =?utf-8?B?ZHdpM3hDdDBOQXlyQ2lkeWhBWng5ZXVXTVBTRlpuQ0haQzVDZEpGU2drYlpG?=
 =?utf-8?B?NnFuTUZzald2K0g5ajVuSG13YW1rY2lMVzNRVVAyQWJFQkVCVkR6TGR6WDZJ?=
 =?utf-8?B?WFlNaEFQZG5yOEQvMEdnQjhXV0RhWEFxS0hZaStCVkJIOTkzZk5QZ2VPTE9m?=
 =?utf-8?B?WmhjUXlQNXdhbXN1L092eExmaCtWZytLN3hTdnV5Y09Pd2w1anN6cXJNY2xy?=
 =?utf-8?B?eEdhNmx5bXFKZSsrUHdiL2srVWV0QWpvUTEveVhSOGxITmlmYkJyaG5KYkFP?=
 =?utf-8?B?cnNVYlFUSUxpVHhpdVVSU1B5NmViSUtWZDNGRzNCV1lGUnBRa0lRUW5BY2JC?=
 =?utf-8?B?aE9wSHdVbWZwWGZLcnhQTzJXS0dhMW5peU1QaUpJZ0ljd2dGWUpVMUt0SVpo?=
 =?utf-8?B?cGxpOVBEa2dpRjY4cStwVDFVU3R1ZTFjd3lpU0FJN01lS2w4c1JkdXppSUhs?=
 =?utf-8?B?VmFOOGhuRFZIUWZaM3ppSnpDdEFlNmNEMUxGbFVKM1JMcWp6a0hPdUlTSHFV?=
 =?utf-8?B?VzNhRTY1T0ZaOEdNWUhpZ1g1elB2T2VJL3laQU1VMlU4b01BMEhScHoxN3Bx?=
 =?utf-8?B?cjZnMDNTWkdPa0RRTW80MUs5RC9CRDlsNGk5M3FBbUZGTDRJLzJIb0ExOXhu?=
 =?utf-8?B?M1JPWWg2aGR4VUNaTDlNMjgrWnJncDZXbzNHTnhWT0p3bnQrbENvbkplMjJu?=
 =?utf-8?B?NjMrNTZ2TTU2ckRoTmplcG1ZcFFxS09DaFhPZmlvTGNCWWtETjVEbVQ3UnNH?=
 =?utf-8?Q?U1zD+dejj/ANCKpCocQ2opRIt+53s16W/jMOvNf?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.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?ZmcrNXZLd0o3RkplODlERWU1YlUzWFFaWTJhOXZlU2didXlaRUF3ZXd3c2N0?=
 =?utf-8?B?WGZaallDSURzN0g2MmQzR1QveVFtSVo1KzhVZHNmemFmSTQ5V0ZXR2ZueUNr?=
 =?utf-8?B?eDRjRlVVMXpONVphcXdGbWgwQUZCUDBUMDRCU25rWVZhdmMwNmM2dHd5K04r?=
 =?utf-8?B?OXpzWUtrT3NmKy9vWnNyUlJ6cWJLRTQ3QlZWaS9rRDBvUE5mSm95b1gzOWxL?=
 =?utf-8?B?M1ZvNVp6UzdlK2VxWWNHRHJwRnhNc2xiWENvYWgzelJpUWZqZ0JSMTBXbFhX?=
 =?utf-8?B?N29iUS9raW1BdGdEeU91dFF6bTY0WTl0S2txOHNNMkRKTVVMcVN2SGUwYVZO?=
 =?utf-8?B?TGIwbDRZWFZSTGlPcE4yWFFBTy9hRDh5SEdHUTg5UURDT1JieTFtT0tEVFJJ?=
 =?utf-8?B?WHN3N09wQlh0SndJUHhZeHAvTzdvUkJCcG41SG5iTHpOb1VuSDg1UHFSQnoy?=
 =?utf-8?B?b2d6YjE3clc2bFMrckI2YVMwS1dwbFlsckJBL25HaUsvNGIwQ29pNkpzZFdU?=
 =?utf-8?B?eExJeGNtV2o4ZVdyeVI2LzhsVXp3QTllaXNPNVJscENybDk4UXZFYWUzZHdC?=
 =?utf-8?B?S1M4Vi9CWlFrTU5tam5TV1lwNGRQZzhNNnh3N3o1eUl5cWtNK1BwWmVnZktP?=
 =?utf-8?B?L010NTVzSVNQLzQvREREL01IcTgwWW1LbDRKR3N5cTNNNm5JZ240QmNuNjZh?=
 =?utf-8?B?VWl1RW1kVy81Rk91QTQ1NnZpZ1lHVTUvM0lxd2M5UTRta25zNVpQRlQvWC9Q?=
 =?utf-8?B?d2F2OFRybVhzWElJbWIrR1p1Szg2U2RuRDZtQVFnSmJrQUpsMm44c3IrMmNX?=
 =?utf-8?B?TXQxc2xtL3VpMGRYSWloTmR2RHl4TFJlN21GbHd6WHVOMExzUnlPVW4vcUZz?=
 =?utf-8?B?dmRqWUMxeTR2NTFPcHFNUVJBckViYlBvNnhvblQwSVIwci9nZnFYRDdJQ0pG?=
 =?utf-8?B?bUlLWnlNTDJBSU5BVWZXMTRGVUFpZDVhOWFmNXVPem9PZ3RBODUvcWJka1c1?=
 =?utf-8?B?NWo5WWxObHgvSk5Vbmo2MlhTeDdldVROdVNmempBOHFGbFhSNHJFVmRLMWNY?=
 =?utf-8?B?MWhHSzNFK2FUNzlXSmFFODJ0ckpyVkxPWlRLZ29KR2ZFMGZiTzBSLzBZczFV?=
 =?utf-8?B?Zk9MQko4WWdtT2krQ25ZaGwzd28vWi9EU05VWEZscTR4dkpITDlPN2xMbjdQ?=
 =?utf-8?B?RGJ0UHppYzdDVFBOWXNoUTROZXlwOFNBYU92TjNUeDFlSEM2RGMzOHd3Y3FG?=
 =?utf-8?B?b09KK0JIYjArUDZuOGQvNGhIZ0VHS2NSTWJEbytWbVk0RVhScnAyVlo5Rm1D?=
 =?utf-8?B?NXdPc1g2eFMraEFURUV2VXJrZHRWY3NramZHS1ZxYlZEYUxkNnpwVUpHRU1w?=
 =?utf-8?B?eC8xZE5uMlI5blcyeU5WbXk0d3BWZVpDclVBTTJZYlVjUHd4ZUZtYjZxSHlX?=
 =?utf-8?B?dDVEKzhVZkg3dFd0SERpb2NnY3ZndEdUT3BSeGFFcDVGOVlMS1pBb2d6QmtR?=
 =?utf-8?B?cm5GZ3R0M2xXTEE5cEo2L29yQ2VHd1dvK3BuUGw4WmQ5ZXR0TXozNXJqRGht?=
 =?utf-8?B?amk3dXJKZ3VjVE92K1ZjRjA5Mno2ZDFvYWhaQTljN2xLRVl1My9YNzd5Z1Z1?=
 =?utf-8?B?cEJPREFJY201a01DWi9ESktva2JoVjJXNDdhYWR0MHJidWN0S1pycWlKSnJh?=
 =?utf-8?B?WmduT0JXNHFSTGcyQXlvRXZQd0VjWG1lanJkYXlpekJxZ0VVeGwzbGxYY0tp?=
 =?utf-8?B?V09pU1VQMU5KQVRwdWNVYkFycHVyMk8xVkptVGNETkJMQTVMNFdrWFFmckdI?=
 =?utf-8?B?YXhINjdmTTJCV3V1b3J3V2s0WnNCMkpqbEI5d0s5QmtsbldSWGMxU0U0ay9L?=
 =?utf-8?B?d0ZzMm1ES3NpSm9UTU9samt4dDhqNzVGYllwVjVFMEhrbFFBN3grM2VBRTd5?=
 =?utf-8?B?Y0wvb1lhQWJvQUxzZ1VrdmpodlZsdTQ4U3dsK2hkNDN3akI4VVdaOHhLSGVJ?=
 =?utf-8?B?VG82WWF6bzhlOUt3ZEU2b1BVYXVpUElUaGRkZElPVU15dHVtVGY2WndsZEds?=
 =?utf-8?B?cW5YcGIwd2x2N3RDNlgweWxQdjJZdjg0M1FrVytQY2o5NWpJa0p4SlNndW5q?=
 =?utf-8?B?ek1mYWFjK0pGdTFGY3ZEb0NjZ1dSNXBwQTNUMWVZMmJJZ3B2aUlIbTl0ZHRK?=
 =?utf-8?B?ZFE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 756326df-7177-4167-069e-08dcfe7e87dc
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2024 16:17:38.0728
 (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: qFjGHgCH6HzyeMRTMWGtc7usGEnt4wBmMKP6QgDFC7ojfcPOQ8TxCTP/DnzN+evpjNiO24I1faohldqbN0oyyw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10225

06.11.24 12:14, Sergiy Kibrik:
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 78a13e6812..b340818ee2 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -742,11 +742,16 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>   
>   static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>   {
> -#ifdef CONFIG_HVM
> +    const uint32_t disabled_emu_mask = X86_EMU_PM;
> +
> +#if defined(CONFIG_X86_HVM_PMTIMER)
>       /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
>       BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
>   #endif
>   
> +    if ( emflags & disabled_emu_mask )
> +        return false;
> +

oops, disregard this chunk please, it should be:

   if ( (emflags & X86_EMU_ALL) != emflags ) 

      return false;

with disabled_emu_mask completely removed.

>       if ( is_hvm_domain(d) )
>       {
>           if ( is_hardware_domain(d) &&


  -Sergiy


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 16:21:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 16:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831265.1246471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8imO-0006jh-G4; Wed, 06 Nov 2024 16:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831265.1246471; Wed, 06 Nov 2024 16: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 1t8imO-0006ja-D1; Wed, 06 Nov 2024 16:21:12 +0000
Received: by outflank-mailman (input) for mailman id 831265;
 Wed, 06 Nov 2024 16:21: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=RQdK=SB=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8imN-0006jU-7L
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 16:21:11 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e71ba78-9c5b-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 17:21:05 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730910055422541.3328016191316;
 Wed, 6 Nov 2024 08:20: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: 1e71ba78-9c5b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFlNzFiYTc4LTljNWItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTEwMDY1LjU4MTgyMiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730910058; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=lE1d2NDoPhLRtKrdCBKTxTlLm3oGWD6CqS9S8FHgHumg6nMDZ7KlPsUud/Wur/TgacHwVLW3GRq2nWblbAQC0KiiINzRYswQ1wPlOHPOIywk6FDXEvsiKc2GUmskbMK6q1bcYGK44c855T1DOTN/NgWCSCd6qDgYn6OeJkVoCGg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730910058; 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=eKU1yiXHigfAhJthGM4+219Bnmvbjh9/dWAbzDGrca8=; 
	b=PcLOE4E5ZrnZg60Px31GOZS3Xnj7KOz7Q4n/A9eQvIrLK7OOojWf9KQciBdQb/4AnmhYMwLt52PzC5swtlFumiGalrGftRYnBQ9V5SVXCHH3RkylUKtK+Iu9s17aWzgLIe7iPvYArZKMAuI6Yfq7wijJv7HgYgQYRV5P3OfjvGM=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730910058;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=eKU1yiXHigfAhJthGM4+219Bnmvbjh9/dWAbzDGrca8=;
	b=e+6Rr1AC/t3Tixr9vUF4brqtCNtHU4XtpFKcdER9XoBcWtN1wkif2dykuOc5wQzp
	OYhGBeHcpyDZgS72OvVKE2Hcw6KQD+TI9ERBZeqJrssNMj1y0WeJaO5xLs3SSyWNw7N
	/bht1JPvcoeGjuiaF06mrLsv8F0dSZdnu/w3P8Fc=
Message-ID: <f4b8593f-654b-4fcd-b3b2-dab6dd227e8e@apertussolutions.com>
Date: Wed, 6 Nov 2024 11:20:53 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>
 <D5DDABNKHN42.1HD2T6NV99J51@cloud.com> <ZyngfwQYZTFfwqlp@macbook>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <ZyngfwQYZTFfwqlp@macbook>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/5/24 04:08, Roger Pau MonnÃ© wrote:
> On Mon, Nov 04, 2024 at 11:45:05AM +0000, Alejandro Vallejo wrote:
>> On Sat Nov 2, 2024 at 3:18 PM GMT, Daniel P. Smith wrote:
>>> On 11/1/24 16:16, Stewart Hildebrand wrote:
>>>> +Daniel (XSM mention)
>>>>
>>>> On 10/28/24 13:02, Jan Beulich wrote:
>>>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>>>>> Add links between a VF's struct pci_dev and its associated PF struct
>>>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>>>>> dropping and re-acquiring the pcidevs_lock().
>>>>>>
>>>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>>>>> VFs may exist without a corresponding PF, although now only with
>>>>>> pdev->broken = true.
>>>>>>
>>>>>> The hardware domain is expected to remove the associated VFs before
>>>>>> removing the PF. Print a warning in case a PF is removed with associated
>>>>>> VFs still present.
>>>>>>
>>>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>> ---
>>>>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>>>>
>>>>>> v5->v6:
>>>>>> * move printk() before ASSERT_UNREACHABLE()
>>>>>> * warn about PF removal with VFs still present
>>>>>
>>>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>>>>> just after an adjustment to the commit message. I'm instead actively
>>>>> concerned of the resulting behavior. Question is whether we can reasonably
>>>>> do something about that.
>>>>>
>>>>> Jan
>>>>
>>>> Right. My suggestion then is to go back to roughly how it was done in
>>>> v4 [0]:
>>>>
>>>> * Remove the VFs right away during PF removal, so that we don't end up
>>>> with stale VFs. Regarding XSM, assume that a domain with permission to
>>>> remove the PF is also allowed to remove the VFs. We should probably also
>>>> return an error from pci_remove_device in the case of removing the PF
>>>> with VFs still present (and still perform the removals despite returning
>>>> an error). Subsequent attempts by a domain to remove the VFs would
>>>> return an error (as they have already been removed), but that's expected
>>>> since we've taken a stance that PF-then-VF removal order is invalid
>>>> anyway.
>>>
>>> I am not confident this is a safe assumption. It will likely be safe for
>>> probably 99% of the implementations. Apologies for not following
>>> closely, and correct me if I am wrong here, but from a resource
>>> perspective each VF can appear to the system as its own unique BDF and
>>> so I am fairly certain it would be possible to uniquely label each VF.
>>> For instance in the SVP architecture, the VF may be labeled to restrict
>>> control to a hardware domain within a Guest Virtual Platform while the
>>> PF may be restricted to the Supervisor Virtual Platform. In this
>>> scenario, the Guest would be torn down before the Supervisor so the VF
>>> should get released before the PF. But it's all theoretical, so I have
>>> no real implementation to point at that this could be checked/confirmed.
>>>
>>> I am only raising this for awareness and not as an objection. If people
>>> want to punt that theoretical use case down the road until someone
>>> actually attempts it, I would not be opposed.
>>
>> Wouldn't it stand to reason then to act conditionally on the authority of the
>> caller?
>>
>> i.e: If the caller has the (XSM-checked) authority to remove _BOTH_ PF and
>> VFs, remove all. If it doesn't have authority to remove the VFs then early exit
>> with an error, leaving the PF behind as well.
> 
> I'm unsure if it makes sense to have an entity that's allowed to issue
> a pci_remove_device() against a PF, but not against the VFs of the
> device.

Apologies for not fully defining how SVP would work. The Supervisor is 
the one of the few domains considered running at the higher trust level.

When I was referring to restricting the VF, for instance, that a VF of 
L:M:N may be assigned label gvp1_pci_t that only allows guest VP 1 
access, while VF X:Y:Z would be labeled gvp2_pci_t that grants guest VP 
2 access only.

At the same time, the Supervisor would be allowed in the policy to 
remove all VFs, in the example above it would have access to 
gvp1/2_pci_t labeled devices. In theory, it would have attempted to have 
the Guest VP tear down (or unplug the VF in a hotplug scenario) the 
virtual device. But in the end, it can't rely on the Guest VP to 
properly shutdown/unplug, and must be able to properly manage the system.

> The owner of the PF should be capable of disabling SR-IOV, at which
> point all the VFs disappear from the PCI config space.  If such entity
> is capable of controlling the SR-IOV capability, it should also be
> able to issue pci_remove_device() calls against the VFs.

Correct, as I mentioned above.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 16:24:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 16:24:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831271.1246481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ipC-0007Hp-TW; Wed, 06 Nov 2024 16:24:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831271.1246481; Wed, 06 Nov 2024 16:24: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 1t8ipC-0007Hi-Qo; Wed, 06 Nov 2024 16:24:06 +0000
Received: by outflank-mailman (input) for mailman id 831271;
 Wed, 06 Nov 2024 16:24: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=DrBW=SB=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1t8ipB-0007Hc-1F
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 16:24:05 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20631.outbound.protection.outlook.com
 [2a01:111:f403:2408::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8560fc1c-9c5b-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 17:23:57 +0100 (CET)
Received: from MN2PR15CA0027.namprd15.prod.outlook.com (2603:10b6:208:1b4::40)
 by BL1PR12MB5873.namprd12.prod.outlook.com (2603:10b6:208:395::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov
 2024 16:23:51 +0000
Received: from BL02EPF0001A0FB.namprd03.prod.outlook.com
 (2603:10b6:208:1b4:cafe::a9) by MN2PR15CA0027.outlook.office365.com
 (2603:10b6:208:1b4::40) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Wed, 6 Nov 2024 16:23:51 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A0FB.mail.protection.outlook.com (10.167.242.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 16:23:51 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 6 Nov
 2024 10:23:51 -0600
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) 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 via Frontend Transport; Wed, 6 Nov 2024 10:23: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: 8560fc1c-9c5b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwODo6NjMxIiwiaGVsbyI6Ik5BTTA0LUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijg1NjBmYzFjLTljNWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTEwMjM3LjU5NDAwMSwic2VuZGVyIjoic3RlZmFuby5zdGFiZWxsaW5pQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M1ecuWHpfJCCdfWTghsYpyIo3573ufyXQsjGh27B13M9LsZJVnWcEvJZxl0vaoHAGSmx5k+lnF7JYny3vqQqB8BC6Ke8CKEkWtbFOvDBlFhMsP1kf+r6RWMdvCoIho6bdLOw7q1qwwcgOEipSDL401JSrJmdnFhy4hhkMgJ91zk2T01MjSmsqGeXJNuTk/eZlBWjmE8Jcqe7ByBAnsrnOBzIj14ey+GnGcd5R8tQ6I/4FvpEL1VJeTWT+X6cUbIMdz3oMxwMoeDiirR8K1dlGEbChhnoBJgo7FDCjERiuK+i9xYzYDP3V6Cq/KZ/SlJG/1Icvn6Sf/zVBFrd3bjbQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lKElNW/y5iF5z9M2pYmDfu8myHWqPMgt5s9ZXhzAP8Q=;
 b=a3qJ2gxmEe0So1TUflQxxrlO9CmcLpBuZtR7Or0e932Ev0CXqegJ6V1Rva4XKesHo+l8NsWo9siNQhoSALiBOxDCNdLfx05YcjAY9qHtw6jySYcvOY9aOJsdg2rrQiCgeZXhqTPCPx2WYI+jD0PuMnpsk21KvIpgqrkI50HO3DMfAO16jIgwGK0b6tR6Trua69SrxVbyV1tYoKh3iqP3wMd5ymbaLZkz152d54XFkdT7JRRVF7wZHJ7s6BRp7cMjz7cIWVbE7KkkUOwNz6H1bCoKIyMr4r/lVi/UAzC8CAEhOyBuFiEBMH2SKaNoFPK/5HUWaWmgZqBQfYUgcLAPBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=cloud.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=lKElNW/y5iF5z9M2pYmDfu8myHWqPMgt5s9ZXhzAP8Q=;
 b=g8Gm0IrXnWX8kNGpFCVN3zlbtem2CNz+SQj9mwPLRABxXgRAMM8aHf2HS31wlQVh2GtGdb/7wFYd0uAd+FubrrPe94K7zxrhrpl+IwhIdc5R+2IZKf/hYOlPA2IpR7QpEIIjzYdeo2tflcXxeIX2GUQjfwChHly0/lNBwGUFqpY=
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=SATLEXMB03.amd.com; pr=C
Date: Wed, 6 Nov 2024 16:23:28 +0000
From: Stefano Stabellini <stefano.stabellini@amd.com>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Javi Merino <javi.merino@cloud.com>
CC: <xen-devel@lists.xenproject.org>, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 3/6] CI: Refresh the Debian 12 arm64 container
In-Reply-To: <ad9bcd46c85e738eccb2c51b42ae7d9d0d02fc5d.1730743077.git.javi.merino@cloud.com>
Message-ID: <alpine.DEB.2.22.394.2411061615590.89051@ubuntu-linux-20-04-desktop>
References: <cover.1730743077.git.javi.merino@cloud.com> <ad9bcd46c85e738eccb2c51b42ae7d9d0d02fc5d.1730743077.git.javi.merino@cloud.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Received-SPF: None (SATLEXMB03.amd.com: stefano.stabellini@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FB:EE_|BL1PR12MB5873:EE_
X-MS-Office365-Filtering-Correlation-Id: b4dccdf5-4cf2-485e-f6ca-08dcfe7f66cc
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?ENuOK+O6MA4mjI/QiTGx4w0Q8rOUqBMpfo6+JTST0WjPZdFcKHp1xldTTyId?=
 =?us-ascii?Q?CCM8KiXNF/UMurzvGdYota+tEsdnQs5Af9KqIZUZXP5319sNtFOn+npfWPRJ?=
 =?us-ascii?Q?wkCUzbDo6+Y3RgmQf7E8QD+xkV1gL8JPCNx12A4rA/EQGGuCgET/20rukB8W?=
 =?us-ascii?Q?12VCZrsvZvbQsBROPVrltmaYCa5BzUUbDt1W7Lnku9vAyiGm69fXejgurvPL?=
 =?us-ascii?Q?s+MXKvPW+dVNzUk+kFFEAM/UusZuEK2KKxDr0S4AaFx1LadNYVuaOROJ7eYF?=
 =?us-ascii?Q?EnJKBBF3vk/tH/O1B9oMN+VoXa0bpoDb0qNL2PIMqR358R244hrdFuZK9B1F?=
 =?us-ascii?Q?0oX1h9x1JIW93BxHh8Tw4iTMsbRpg3Drz6RxSEga+5ImWTepARn7OAyOf1aE?=
 =?us-ascii?Q?ilzZcDQoDolnO4aummEFlzZElNlfC8Ce4JQce2niO7t0MngJxnXAfU/1Wqlp?=
 =?us-ascii?Q?lD3BYKwTGrtRwhcJWCWImZyygRNy9m16eE2B2nxkdWjhKwGGEhu+7wSkhaDp?=
 =?us-ascii?Q?RybBJJp6wWW7XA1mADiVRJtHwUes+E6n8RLnnja4798QqBBYPXAK4Nk0gjA0?=
 =?us-ascii?Q?goozV1PS4Wbgewb/wPbhKQHovjxetiBiJrEnF040zjYIRaN8brFY+uBQfttS?=
 =?us-ascii?Q?Yzv+3n7W7dtaibEUvmfyXkN/7EC8dnx2zA4bf3cFoo1xSrNd/Av+vzOEKWGQ?=
 =?us-ascii?Q?/qfMBk20WOfjj0dzV2oCAAWIyvNNG4k8DCRY8P4mYwZjoDmQVGXDYOmzwW5E?=
 =?us-ascii?Q?d87u09l1/ho0J77wLv18UYOHRzTq6R2uq6G22XIAKvgk4blVLm4s/NFU2yKd?=
 =?us-ascii?Q?iqMjWxx68GMgbhiTKoAPpo97zQdyyz5yv/DBB/Z4qqKvTcwz3ZkV6iw3C32G?=
 =?us-ascii?Q?FR1zIrDl1TJxaTIGDdr/v9LL7oTfrNPEVzeLxAc2ceHzcgnxe9z7Ad5nQXgR?=
 =?us-ascii?Q?p73IHV20E+MRTK+5iiyTZ2RJiYb951wZ8HtnoMNS7zseNvCT8iyk/44peBje?=
 =?us-ascii?Q?L0srFiWA4ZqrvYD61aU0uRRT75RPUE5KWv1fjYxPAAcU+p79IaLXGaeYlgdi?=
 =?us-ascii?Q?uZrMwWQ+ZVSMZnUjuJnDBwfDcSv97yNPMUfypXlVIHWsxqklpD97cRMaKnPn?=
 =?us-ascii?Q?JMQ9e1Kbr0Pi5sv1k8FW8fxYZr8b5Li8DBscTLtdquGyGAV+UYAuyxvBKuoC?=
 =?us-ascii?Q?I8ZUdKVWbawC00pnKiCp9lF7df+5kMseD9MNQ0yXceEcQ+svCs1QKIhoH3Tl?=
 =?us-ascii?Q?Xy2MSjhPrhJ4K6UpGWul2dux0vX/hacfT4WFS9xGnYDgtW1x6uvilpX2YQ+5?=
 =?us-ascii?Q?K2GjRKEepBfWuIMHBYF/X0zr0qtRshNSHBLEYrB3fz+tGR4749aqTBMHdFCe?=
 =?us-ascii?Q?C4woKLBnYdmkA/gj7AiQl8Te5lsQJH2DAfKDcal/4vyC2uIB+A=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 06 Nov 2024 16:23:51.8153
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b4dccdf5-4cf2-485e-f6ca-08dcfe7f66cc
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5873

On Wed, 6 Nov 2024, Javi Merino wrote:
> Rework the container to use heredocs for readability and use
> apt-get --no-install-recommends to keep the size down.  Rename the job
> to debian-12-arm64-* to follow the naming scheme of all the other CI
> jobs.
> 
> This reduces the size of the debian:12-arm64v8 from 2.25GB down to 1.62GB.
> 
> The container is left running the builds and tests as root to avoid
> breaking the xilinx runners.
> 
> Signed-off-by: Javi Merino <javi.merino@cloud.com>


Hi Javi,

I generated a new dependency diff, this time it should be correct, see
the diff appended below. Most of the differences are not concerning,
but I have a couple of questions.


> --- /tmp/1a	2024-11-06 16:12:09.235734221 +0000
> +++ /tmp/2a	2024-11-06 16:12:15.203659831 +0000
> @@ -1,36 +1,32 @@
>  acpica-tools
> -bcc
> -bin86
>  bison
>  build-essential
>  busybox-static
> +ca-certificates
>  checkpolicy
> -clang
>  cpio
>  curl
>  device-tree-compiler
>  expect
> +file
>  flex
> -git
> -libaio-dev

I think this one might be needed to build QEMU but given that we don't
have any build jobs building QEMU on ARM today anymore, it could be
removed. We are going to add a new build job to build QEMU on ARM at
some point soon but we can add any relevant dependency back at that
time.


> +git-core
> +golang-go
> +libbz2-dev
> +libext2fs-dev
>  libfdt-dev
> -libfindlib-ocaml-dev
>  libglib2.0-dev
>  liblzma-dev
> -libncurses5-dev
> -libnl-3-dev

I think it is the same for these two


> +liblzo2-dev
>  libpixman-1-dev
>  libyajl-dev
> -markdown
> -nasm
> +libzstd-dev
> +ocaml-findlib
>  ocaml-nox
> -pandoc

The removal of pandoc and markdown both concerns me. Wouldn't this cause
the documents under docs/ not to be built anymore?


>  pkg-config
>  python3-dev
>  python3-setuptools
> -transfig
>  u-boot-qemu
>  u-boot-tools
>  uuid-dev
>  wget
> -zlib1g-dev


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 16:31:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 16:31:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831279.1246490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8iwg-00011w-L9; Wed, 06 Nov 2024 16:31:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831279.1246490; Wed, 06 Nov 2024 16:31: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 1t8iwg-00011p-I6; Wed, 06 Nov 2024 16:31:50 +0000
Received: by outflank-mailman (input) for mailman id 831279;
 Wed, 06 Nov 2024 16: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=RQdK=SB=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8iwe-00011j-Gm
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 16:31:48 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bae2695-9c5c-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 17:31:45 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730910696820382.4793134129818;
 Wed, 6 Nov 2024 08:31: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: 9bae2695-9c5c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjliYWUyNjk1LTljNWMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTEwNzA1LjQ0MTUwOSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730910698; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=hQUevx2WvOCg2KOsDLB6yKttBXpJPP4M9a/QlyKPKbz1/YRXK97+YGrsRsWq4Y2KwY+2Ca/knqxOpB1GsCesbXA0Xo0lgEk5cV8poFE4ern1UzmR6XnhsfVZEbq9SWmhGHaWiGagCmO35i7GSK7uEzfM9GwuKVApTIR6OsYJXGY=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730910698; 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=EYM9AbxuG3iCsPgSx7jA1ypaIDcyAYrS6EpKQIkX8AU=; 
	b=c+f1+7DTUk44KlwV+l/JTut9/vGyb+ncRwisADv85bMHSyta+DnYcHjZ5e8QZyRNNsXbEt9TKmCjrph3eJzP+xd6iGU5I6qW6pCej3qCnuLRaqDbfFJGdSlteOsg+cv5XfB2jv3XW92NqRRnCcWmTF40+ltO2ncn6+8I+UySusc=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730910698;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=EYM9AbxuG3iCsPgSx7jA1ypaIDcyAYrS6EpKQIkX8AU=;
	b=iOxBmTQc+u2m/NxCHnF+xQ5/WW4LYe4oyROQFHBNPpwV68080E+8X/NvfZgg8Itt
	/5whLSQcv36xf5g3a46eN8oMWz7SWHk3ga5dU3R+or/jOpV5zHEwaSzWKbsmVbCnH72
	PJwK8Agq9QuoXHb6IqQbSG7gQpfsT3jUpH200MYw=
Message-ID: <33c6687c-4593-4259-bfe5-ff19746eafea@apertussolutions.com>
Date: Wed, 6 Nov 2024 11:31:35 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>
 <ZynfSMUVEy71ZskR@macbook>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <ZynfSMUVEy71ZskR@macbook>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/5/24 04:03, Roger Pau MonnÃ© wrote:
> On Sat, Nov 02, 2024 at 11:18:24AM -0400, Daniel P. Smith wrote:
>> On 11/1/24 16:16, Stewart Hildebrand wrote:
>>> +Daniel (XSM mention)
>>>
>>> On 10/28/24 13:02, Jan Beulich wrote:
>>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>>>> Add links between a VF's struct pci_dev and its associated PF struct
>>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>>>> dropping and re-acquiring the pcidevs_lock().
>>>>>
>>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>>>> VFs may exist without a corresponding PF, although now only with
>>>>> pdev->broken = true.
>>>>>
>>>>> The hardware domain is expected to remove the associated VFs before
>>>>> removing the PF. Print a warning in case a PF is removed with associated
>>>>> VFs still present.
>>>>>
>>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>> ---
>>>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>>>
>>>>> v5->v6:
>>>>> * move printk() before ASSERT_UNREACHABLE()
>>>>> * warn about PF removal with VFs still present
>>>>
>>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>>>> just after an adjustment to the commit message. I'm instead actively
>>>> concerned of the resulting behavior. Question is whether we can reasonably
>>>> do something about that.
>>>>
>>>> Jan
>>>
>>> Right. My suggestion then is to go back to roughly how it was done in
>>> v4 [0]:
>>>
>>> * Remove the VFs right away during PF removal, so that we don't end up
>>> with stale VFs. Regarding XSM, assume that a domain with permission to
>>> remove the PF is also allowed to remove the VFs. We should probably also
>>> return an error from pci_remove_device in the case of removing the PF
>>> with VFs still present (and still perform the removals despite returning
>>> an error). Subsequent attempts by a domain to remove the VFs would
>>> return an error (as they have already been removed), but that's expected
>>> since we've taken a stance that PF-then-VF removal order is invalid
>>> anyway.
>>
>> I am not confident this is a safe assumption. It will likely be safe for
>> probably 99% of the implementations. Apologies for not following closely,
>> and correct me if I am wrong here, but from a resource perspective each VF
>> can appear to the system as its own unique BDF and so I am fairly certain it
>> would be possible to uniquely label each VF. For instance in the SVP
>> architecture, the VF may be labeled to restrict control to a hardware domain
>> within a Guest Virtual Platform while the PF may be restricted to the
>> Supervisor Virtual Platform. In this scenario, the Guest would be torn down
>> before the Supervisor so the VF should get released before the PF.
> 
> The VF getting released before the PF is what we would usually expect?
> 
> I'm a bit confused because a guest being torn down doesn't imply that
> the device is removed from Xen (iow: a call to pci_remove_device()).
> Removing a device is hot-unplugging the PCI device from Xen, not
> deassinging from a guest.

I was providing a use-case that was crafted, just not implemented. I 
have not looked at SRIOV in some time and not at the level necessary to 
determine this, but I would be uneasy thinking a VF could just be 
released from a guest to be reassigned either to the host hardware 
domain, aka Supervisor VP, or another guest. Perhaps a reset of the VF 
is enough or it might need more, I have not looked at the details at 
this point since we are still ages away from Xen being exactly capable 
of really doing a true implementation of the SVP architecture.

> I would also be uneasy with assigning a PF to a non-privileged domain,
> specially if VFs from that same device are being assigned to trusted
> domains.

As mentioned in the other response, the PF is in a higher trusted domain 
level than where the VFs would be assigned.

> My assumption is that you generally want the PFs assigned to the
> hardware domain, and the VFs assigned to any other domains (trusted or
> not).

In the SVP architecture, there is more than one "hardware domain".

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 17:05:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 17:05:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831288.1246500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8jSp-00065p-Ti; Wed, 06 Nov 2024 17:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831288.1246500; Wed, 06 Nov 2024 17:05: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 1t8jSp-00065i-Qs; Wed, 06 Nov 2024 17:05:03 +0000
Received: by outflank-mailman (input) for mailman id 831288;
 Wed, 06 Nov 2024 17:05: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=RQdK=SB=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8jSn-00065c-OJ
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 17:05:01 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f904c74-9c61-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 18:04:57 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730912689645601.7594197816804;
 Wed, 6 Nov 2024 09:04: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: 3f904c74-9c61-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNmOTA0Yzc0LTljNjEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTEyNjk4LjA3NzQzOSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730912691; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=huXcBegMGQ942MOBBGGqR/MvFcYKWdLeENOwUxao8mPt0OHCoJ4IeOUvockwmbMTYTfXK/TUUbimUB7RNRw8BN6FXbmdyEX9p6506EKr2BEPlgaLUqMTRvvvfitqJVTSWUR76VImQhYQFsFHdZxLhK5RM9m/5s5vV1BPZXisc6Q=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730912691; 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=9ZYY3pcLpZM/hm5b8/Lo8mDisbvisyGqObheT8aXFzY=; 
	b=HaMRU2AJPa7Ovq178rUAxsJ76zmpwLEYmfbUn7Nycwk3tpuJb69aUsjkEWXs/vhj8DchdUDt9Kb3WcswyYCHcNwGMP6tlmGpLhQJ5l5DH4gEW9bUb3XERCNAhrANH824wONhkxKHbyWabqlkloYsxyNnymkGJ/NfC4fSkFQSITg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730912691;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=9ZYY3pcLpZM/hm5b8/Lo8mDisbvisyGqObheT8aXFzY=;
	b=HWE66jvXgWc8Db7b3FEnlVO5HFHXVm0SFBgpg8pcg7OcZND+/1vph7ZO21dPUdzI
	tM2hMdtYRjwZx+izJePy/6FXOcDcfGYA16f1k2BPUSCSCn4r2ianXUgQrLl63FXyPN9
	jHEVQrabLyWUdcpzl/bdNMBGtqd3pMpkK57dJG4w=
Message-ID: <f5ca5e27-2ca2-4670-aa05-fa6ab1e4f6c7@apertussolutions.com>
Date: Wed, 6 Nov 2024 12:04:47 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <a40185b1-7c1b-4a57-91fb-e439a4c896f0@apertussolutions.com>
 <D5DDABNKHN42.1HD2T6NV99J51@cloud.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <D5DDABNKHN42.1HD2T6NV99J51@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/4/24 06:45, Alejandro Vallejo wrote:
> On Sat Nov 2, 2024 at 3:18 PM GMT, Daniel P. Smith wrote:
>> On 11/1/24 16:16, Stewart Hildebrand wrote:
>>> +Daniel (XSM mention)
>>>
>>> On 10/28/24 13:02, Jan Beulich wrote:
>>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>>>> Add links between a VF's struct pci_dev and its associated PF struct
>>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>>>> dropping and re-acquiring the pcidevs_lock().
>>>>>
>>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>>>> VFs may exist without a corresponding PF, although now only with
>>>>> pdev->broken = true.
>>>>>
>>>>> The hardware domain is expected to remove the associated VFs before
>>>>> removing the PF. Print a warning in case a PF is removed with associated
>>>>> VFs still present.
>>>>>
>>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>> ---
>>>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>>>
>>>>> v5->v6:
>>>>> * move printk() before ASSERT_UNREACHABLE()
>>>>> * warn about PF removal with VFs still present
>>>>
>>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>>>> just after an adjustment to the commit message. I'm instead actively
>>>> concerned of the resulting behavior. Question is whether we can reasonably
>>>> do something about that.
>>>>
>>>> Jan
>>>
>>> Right. My suggestion then is to go back to roughly how it was done in
>>> v4 [0]:
>>>
>>> * Remove the VFs right away during PF removal, so that we don't end up
>>> with stale VFs. Regarding XSM, assume that a domain with permission to
>>> remove the PF is also allowed to remove the VFs. We should probably also
>>> return an error from pci_remove_device in the case of removing the PF
>>> with VFs still present (and still perform the removals despite returning
>>> an error). Subsequent attempts by a domain to remove the VFs would
>>> return an error (as they have already been removed), but that's expected
>>> since we've taken a stance that PF-then-VF removal order is invalid
>>> anyway.
>>
>> I am not confident this is a safe assumption. It will likely be safe for
>> probably 99% of the implementations. Apologies for not following
>> closely, and correct me if I am wrong here, but from a resource
>> perspective each VF can appear to the system as its own unique BDF and
>> so I am fairly certain it would be possible to uniquely label each VF.
>> For instance in the SVP architecture, the VF may be labeled to restrict
>> control to a hardware domain within a Guest Virtual Platform while the
>> PF may be restricted to the Supervisor Virtual Platform. In this
>> scenario, the Guest would be torn down before the Supervisor so the VF
>> should get released before the PF. But it's all theoretical, so I have
>> no real implementation to point at that this could be checked/confirmed.
>>
>> I am only raising this for awareness and not as an objection. If people
>> want to punt that theoretical use case down the road until someone
>> actually attempts it, I would not be opposed.
> 
> Wouldn't it stand to reason then to act conditionally on the authority of the
> caller?

Correct, and as I hopefully clarified in response to Roger, like 
everything with virtualization, it's turtles all the way down. Try 
having this model in mind,

   +----------------+  +-------------------------------+
   | Supervisor VP  |  | Guest VP                      |
   |                |  |                               |
   | +------------+ |  | +------------+ +------------+ |
   | |    HWDOM   | |  | |    HWDOM   | |    Guest   | |
   | |  +------+  | |  | |  +------+  | |  +------+  | |
   | |  |      |  | |  | |  |      |  | |  |      |  | |
   | |  |  PF  |  | |  | |  |  VF  +--+-+-->  PCI |  | |
   | |  |      |  | |  | |  |      |  | |  |      |  | |
   | |  +------+  | |  | |  +------+  | |  +------+  | |
   | +------------+ |  | +------------+ +------------+ |
   +----------------+  +-------------------------------+


> i.e: If the caller has the (XSM-checked) authority to remove _BOTH_ PF and
> VFs, remove all. If it doesn't have authority to remove the VFs then early exit
> with an error, leaving the PF behind as well.

Yes, I would agree that is reasonable. Please, I am not trying to make 
this complicated, but just trying to give a more advanced (nested?) 
model to consider. Not something that we have to figure out all the 
details of how to make it all work. I am just saying, consider that a VF 
may have a different label than the PF which allows another domain to be 
able to take actions on the device as if the domain fully owns that 
virtual PCI device. A code comment around the xsm check(s) could state 
that it is expected that a system with access to the PF label must have 
access to all VF labels and the dummy policy should already be wired up 
to only allow the hwdom to do it.

> That would do the clean thing in the common case and be consistent with the
> security policy even with a conflicting policy. The semantics are somewhat more
> complex, but trying to remove a PF before removing the VFs is silly and the
> only sensible thing (imo) is to help out during cleanup _or_ be strict about
> checking.

Yes, and I was not trying to suggest the PF would be removed before the 
VFs. Apologies if it sounds as though I am repeating, myself,, all that 
I was attempting to say is that the VFs should be able to be checked 
separately from the PF. This would allow a domain that was granted 
ownership of a VF, to be able to unplug the VF and only that VF from the 
system. I would leave it to the PCI logic to manage the sequencing of 
the PF and VF operations. In such a scenario, I would expect the hwdom 
to have the facilities to monitor/check the status of the VF to manage 
the case that a guest unplugged it.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 18:46:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 18:46:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831303.1246541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8l36-0002Uo-9f; Wed, 06 Nov 2024 18:46:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831303.1246541; Wed, 06 Nov 2024 18: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 1t8l36-0002Ub-4w; Wed, 06 Nov 2024 18:46:36 +0000
Received: by outflank-mailman (input) for mailman id 831303;
 Wed, 06 Nov 2024 18:46: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=aqLR=SB=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1t8l34-0001q9-Rx
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 18:46:34 +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 7081103d-9c6f-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 19:46:31 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a9ec267b879so10426066b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 10:46:31 -0800 (PST)
Received: from localhost.localdomain ([89.101.241.141])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16f8e2csm315523366b.91.2024.11.06.10.46.29
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 06 Nov 2024 10:46: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: 7081103d-9c6f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcwODExMDNkLTljNmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTE4NzkxLjY1MTExNSwic2VuZGVyIjoicGhpbG1kQGxpbmFyby5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730918791; x=1731523591; 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=yO3kVmbmcBoFVWzYS+y583sX7R+jYDZcKW8eZMLJiQc=;
        b=NUt1njxNyP8K7t5dDpRveanq80bKrNrMgU6qV2xkKJLI/uePjUWSeoKhlxfTHwMvIw
         A/DIDcX1HF8nWkWfW8cdI0sVzmRuFjX9DxxxQZ3cFC70ASg5ziFEIaML9wjk7Rhx/QNw
         ctn9SSRs7X/m3UkS5kqSSkWfkcx6FPFRaQG7FGS51luUnSJ3qXkDYu0b0ZsbwoeLPIae
         caGQZew0oW/Xdvhz70NKDCFBsDrjOlFud4EXLCJ0D5PCt9vAB3A9g+upyw4zkvwY2cgf
         7NvpTivJjgvbIBKKNVc5V8p0JzH403mo5826ji381tHKxrS9dFbKzEVq1IQ3fzxfviLl
         Z2bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730918791; x=1731523591;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=yO3kVmbmcBoFVWzYS+y583sX7R+jYDZcKW8eZMLJiQc=;
        b=ZMsVqjbqRrLPjo1skImcGIB2a+XNjjEhyvJaYAX8+J+6I8sIb1NZUcDXOlOEg3B8Lk
         HJBrrLnG5oc//zOk4hr+lEHTtpJM0fmgrEPctNVBMcOO94S1EeksbCu/+KTZYSmy0RDk
         Th/lF86PXZ0/c8lcwiibh0q3I+yrdspUPTGvUd0jH3iHUCCJMHNewBX5+u0a6vGOD7lO
         ZbQpwVsIxE79UkVYuaTOiWqON65egdqup2f1tRJTW3gUk5OG1bO3C0wlAKKnnuAdrj6s
         494W8OqSB8dCN4WSn8cK4nX1gvKWyLIL9WJtceB2Jw+gGVvAyiNtXkcqjxuchPtfI33+
         tX4g==
X-Forwarded-Encrypted: i=1; AJvYcCWVvcEHmJQmBUam66u4RN8M0ECYlZXcNRe27yA9YPF5BY33LIE6XoGCdaD8yLofS0Ql0sWP3kJWZTo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbaLjydEfog9Mj5cb8JaByWDI7LJRUhUXtSw0DrBRrYaCkx+Ou
	KpGwQFDvVlft2Q1+hgMQRuR0d8Ze7/UiXe48sPmSYPb+XVWIr4fF+tia70fS9F4=
X-Google-Smtp-Source: AGHT+IHLwEYzjh7bE7VY6UKu2vqJy3kDHJGLTpvdAYwpwyzxfVfdumNtAIjQKBsxyhavBG7XBennEQ==
X-Received: by 2002:a17:907:7ba7:b0:a9a:522a:eddd with SMTP id a640c23a62f3a-a9e5089b4admr2275919566b.11.1730918790907;
        Wed, 06 Nov 2024 10:46:30 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Artyom Tarasenko <atar4qemu@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	xen-devel@lists.xenproject.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
	Anthony PERARD <anthony@xenproject.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Thomas Huth <huth@tuxfamily.org>,
	Jia Liu <proljc@gmail.com>,
	Stafford Horne <shorne@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 3/5] hw/m68k: Mark devices as big-endian
Date: Wed,  6 Nov 2024 18:46:10 +0000
Message-ID: <20241106184612.71897-4-philmd@linaro.org>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20241106184612.71897-1-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These devices are only used by the M68K target, which is only
built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_BIG_ENDIAN (besides, the
DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
using DEVICE_BIG_ENDIAN.

Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 hw/m68k/mcf5206.c  | 2 +-
 hw/m68k/mcf5208.c  | 6 +++---
 hw/m68k/mcf_intc.c | 2 +-
 hw/m68k/next-kbd.c | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/m68k/mcf5206.c b/hw/m68k/mcf5206.c
index 7247cdbe5e..4892924fc2 100644
--- a/hw/m68k/mcf5206.c
+++ b/hw/m68k/mcf5206.c
@@ -582,7 +582,7 @@ static const MemoryRegionOps m5206_mbar_ops = {
     .write = m5206_mbar_writefn,
     .valid.min_access_size = 1,
     .valid.max_access_size = 4,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
 };
 
 static void mcf5206_mbar_realize(DeviceState *dev, Error **errp)
diff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c
index e37cd50d18..4166877066 100644
--- a/hw/m68k/mcf5208.c
+++ b/hw/m68k/mcf5208.c
@@ -155,7 +155,7 @@ static uint64_t m5208_timer_read(void *opaque, hwaddr addr,
 static const MemoryRegionOps m5208_timer_ops = {
     .read = m5208_timer_read,
     .write = m5208_timer_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
 };
 
 static uint64_t m5208_sys_read(void *opaque, hwaddr addr,
@@ -192,7 +192,7 @@ static void m5208_sys_write(void *opaque, hwaddr addr,
 static const MemoryRegionOps m5208_sys_ops = {
     .read = m5208_sys_read,
     .write = m5208_sys_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
 };
 
 static uint64_t m5208_rcm_read(void *opaque, hwaddr addr,
@@ -224,7 +224,7 @@ static void m5208_rcm_write(void *opaque, hwaddr addr,
 static const MemoryRegionOps m5208_rcm_ops = {
     .read = m5208_rcm_read,
     .write = m5208_rcm_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
 };
 
 static void mcf5208_sys_init(MemoryRegion *address_space, qemu_irq *pic,
diff --git a/hw/m68k/mcf_intc.c b/hw/m68k/mcf_intc.c
index 9fc30b03ba..5f38c49077 100644
--- a/hw/m68k/mcf_intc.c
+++ b/hw/m68k/mcf_intc.c
@@ -166,7 +166,7 @@ static void mcf_intc_reset(DeviceState *dev)
 static const MemoryRegionOps mcf_intc_ops = {
     .read = mcf_intc_read,
     .write = mcf_intc_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
 };
 
 static void mcf_intc_instance_init(Object *obj)
diff --git a/hw/m68k/next-kbd.c b/hw/m68k/next-kbd.c
index bc67810f31..4d87edc2de 100644
--- a/hw/m68k/next-kbd.c
+++ b/hw/m68k/next-kbd.c
@@ -163,7 +163,7 @@ static const MemoryRegionOps kbd_ops = {
     .write = kbd_writefn,
     .valid.min_access_size = 1,
     .valid.max_access_size = 4,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
 };
 
 static void nextkbd_event(void *opaque, int ch)
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 18:46:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 18:46:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831302.1246531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8l31-0002BD-0v; Wed, 06 Nov 2024 18:46:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831302.1246531; Wed, 06 Nov 2024 18:46: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 1t8l30-0002B3-U9; Wed, 06 Nov 2024 18:46:30 +0000
Received: by outflank-mailman (input) for mailman id 831302;
 Wed, 06 Nov 2024 18:46: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=aqLR=SB=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1t8l2z-0001bx-Sw
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 18:46:29 +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 6d42fc42-9c6f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 19:46:26 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cb15b84544so60659a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 10:46:26 -0800 (PST)
Received: from localhost.localdomain ([89.101.134.25])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d9f96sm318040866b.75.2024.11.06.10.46.24
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 06 Nov 2024 10:46: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: 6d42fc42-9c6f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZkNDJmYzQyLTljNmYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTE4Nzg2LjE4NzU3Mywic2VuZGVyIjoicGhpbG1kQGxpbmFyby5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730918785; x=1731523585; 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=iNstnbcurcwe9tiYawZfa8Zi088/DUlHFBmK9/a+8zY=;
        b=sruHHMZyssMgzhOqYMe+sYjr0w1eMmCgkOkvAksLwg/mqXhj2NKg7TXW9EQ02mOVSP
         mn3GL7uTN0yTF2Zy3fzGrNMY9WlcDiCtxUuroBDV5mWSSan/SJw1HKIPuPTd4G/iBkZS
         vzNosczKOmO00uhJVIamOTs1nNrBeCSDIJZ7Aj8R7PA6SgRNpfrKoJr+MuWHfCnO4WJS
         5H8+OyeN9sFNnBriI8WZ0aPd+MNgoV3H9/6p89WJXr8eNQvBopyhqT+NX1iVY9etjddN
         oF6y/C+7yUsCenZSnBBvwbY0vLRZ+8GHYZiWJ0+ynJCbuoAoAV6QZkwZ3vK/pq7H60ul
         S3qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730918785; x=1731523585;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iNstnbcurcwe9tiYawZfa8Zi088/DUlHFBmK9/a+8zY=;
        b=J5tKR/wC/unQRQD3P+aeZH8lfUESxCrFUBsridW8AWDYSnnprnG5HyIKUimk3leOCo
         /LM55m8McFd5F8jRbcrA7zzJXyKso68RslwEwg2a194r21mNIo3jCcNyg/LjZyFVzuJO
         R2w97zIZ8dSQ25ZBlba0EIvGsPO5zzN34QfQmSO13brUlvPMX2ZXFP5H71Eh08Q3Kj3h
         yoWIvU8L/27kaXMZGd+ayw7HZVdvsF2wnUq9afAQYO0DNoBQu3ZXfC0FUZz7Wf/XiUNr
         sVjC9ZpC/QY9Q+2gegEVXeNFuTVM+N5fQTIhbaz7S7kmdUedho1Xd2gfo3gJwnc5e2yf
         9nNg==
X-Forwarded-Encrypted: i=1; AJvYcCVq4lPezw24DigGPJK88KlrSyZkG2JVxLpfqAMXCYkrAOL3z7TlAYnd7BH6Egf/ikUeza0/olIIiAY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3jycs2MoUFQmY6BNqp/4ACfR7GkYV6rxs32Zks23/FyMkfMLf
	gUxj4eI9Sv5hTCCNyOdPsZcB+ELHswmxDAP/VbIQRZ6b+ItRAi9AfUeOx/w4TgI=
X-Google-Smtp-Source: AGHT+IGjArD1IMYMRr0Wdsufa3Pz3wV1Bnd8QpL2R9nInPp4yr8/a39mB/pkO2WyFWxS76ZZlJR3WQ==
X-Received: by 2002:a17:907:94cb:b0:a9a:835b:fc77 with SMTP id a640c23a62f3a-a9e6549106bmr2239257766b.8.1730918785638;
        Wed, 06 Nov 2024 10:46:25 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Artyom Tarasenko <atar4qemu@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	xen-devel@lists.xenproject.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
	Anthony PERARD <anthony@xenproject.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Thomas Huth <huth@tuxfamily.org>,
	Jia Liu <proljc@gmail.com>,
	Stafford Horne <shorne@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 2/5] hw/tricore: Mark devices as little-endian
Date: Wed,  6 Nov 2024 18:46:09 +0000
Message-ID: <20241106184612.71897-3-philmd@linaro.org>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20241106184612.71897-1-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These devices are only used by the TriCore target, which is
only built as little-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_LITTLE_ENDIAN (besides, the
DEVICE_BIG_ENDIAN case isn't tested). Simplify directly using
DEVICE_LITTLE_ENDIAN.

Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 hw/tricore/tricore_testdevice.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/tricore/tricore_testdevice.c b/hw/tricore/tricore_testdevice.c
index ae95c49565..169f5907e9 100644
--- a/hw/tricore/tricore_testdevice.c
+++ b/hw/tricore/tricore_testdevice.c
@@ -47,7 +47,7 @@ static const MemoryRegionOps tricore_testdevice_ops = {
         .min_access_size = 4,
         .max_access_size = 4,
     },
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
 static void tricore_testdevice_init(Object *obj)
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 18:46:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 18:46:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831301.1246521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8l2w-0001uS-Qd; Wed, 06 Nov 2024 18:46:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831301.1246521; Wed, 06 Nov 2024 18: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 1t8l2w-0001uL-Nm; Wed, 06 Nov 2024 18:46:26 +0000
Received: by outflank-mailman (input) for mailman id 831301;
 Wed, 06 Nov 2024 18:46: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=aqLR=SB=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1t8l2u-0001q9-TX
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 18:46:24 +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 6a65c4e5-9c6f-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 19:46:21 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5c937b5169cso297591a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 10:46:21 -0800 (PST)
Received: from localhost.localdomain ([154.14.63.34])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cee6b0fc4dsm3129846a12.84.2024.11.06.10.46.18
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 06 Nov 2024 10:46: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: 6a65c4e5-9c6f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhNjVjNGU1LTljNmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTE4NzgxLjM3NDM5Miwic2VuZGVyIjoicGhpbG1kQGxpbmFyby5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730918781; x=1731523581; 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=JkT1yg2VZs3DMTFUZrgUQwWp62WZ2rdU+E0+QzLt/pA=;
        b=yZK4pvOHyx0FRptNpygrQTSHqtVeYHcV12nKz3s7TzDbiuCYeLfatVfGlFP7sbTZIh
         vfamdS8af1za08SVbwueT/sHtLmcwM7oowXHPDt1rXGX1vhsVqH/SZ86xqED4IyrG97R
         Ue3wIVy4pBfMZKoMOE2H1Es+MPx2G/a7WGI9SgHCR/+KtXnTqIJprDKXzDxeAgdE2nBA
         pJx7udqm3OpzMNkgh02GF+hQakY/6KlHKiu62+ZNTa9Z/PmqWUX0V0v7voHAk6r0SigD
         RoY9MRiAJDXFuzCLsd30Qr0DAL9bIjTGHhNKe8ZpzQOvkolxSXgHpLLf+hm0I3qEG1wp
         3QEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730918781; x=1731523581;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JkT1yg2VZs3DMTFUZrgUQwWp62WZ2rdU+E0+QzLt/pA=;
        b=ZsirUvqKwmqNvBW/1TREUnkLPJXax2GgGtdyHcJeVaDi7Kj3vonZ+vNxGbB0kI98t4
         s/t8cE4M6sEMV/XWexX2AdPBHoE7kH4XovZ6JwTGm4Udklaig9LsILOqJnLdTLN9CDlS
         sZtF7j6lFJFZBr0ruPwAZ9OlxWF/Vg6qryvtIwiaAhm7EZta2GtioeOdB2lHvrCAdWgX
         2TNSCJIInwxp8JIC3ad/iH6MoJdJwJKoKDHrHTa/1/Z2/jDCChpzVHF5osa5Yllg84ad
         hTBk2EI4Rx3rc2iuKEWjsWH5sE5o8mcmTF729VGKVOV+gj52sXJaGjtg4P7d9XoNmp+o
         oaZw==
X-Forwarded-Encrypted: i=1; AJvYcCXr4NmMwC5qgwJleOoY03H6ZHo9DcYSh40qyj3+hX69g9IfISY1p5cPa/ESDKNqDnzQa2W1+czm0aA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyd0GsesqyAXXD5rSRPDmbsrrtdDy0RDj2jhx9bZn/PNttwyhh3
	cK+qWFfHQSStKWaG1ZQQzZHTEa/LUoTfLW35LfoE5iRqKYvEKDskI/S48L5WLtM=
X-Google-Smtp-Source: AGHT+IFRztwwFzuqDMLCKe1HJL0VyN7UZW2IThAYmIBOBL/vYMjon6/glkSd1siXs1SQu1MAzFb96Q==
X-Received: by 2002:a05:6402:26c8:b0:5ce:e5be:d042 with SMTP id 4fb4d7f45d1cf-5cefc66ec4amr296655a12.5.1730918780697;
        Wed, 06 Nov 2024 10:46:20 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Artyom Tarasenko <atar4qemu@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	xen-devel@lists.xenproject.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
	Anthony PERARD <anthony@xenproject.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Thomas Huth <huth@tuxfamily.org>,
	Jia Liu <proljc@gmail.com>,
	Stafford Horne <shorne@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 1/5] hw/i386: Mark devices as little-endian
Date: Wed,  6 Nov 2024 18:46:08 +0000
Message-ID: <20241106184612.71897-2-philmd@linaro.org>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20241106184612.71897-1-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These devices are only used by the X86 targets, which are only
built as little-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_LITTLE_ENDIAN (besides, the
DEVICE_BIG_ENDIAN case isn't tested). Simplify directly using
DEVICE_LITTLE_ENDIAN.

Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 hw/i386/kvm/apic.c         | 2 +-
 hw/i386/pc.c               | 4 ++--
 hw/i386/vapic.c            | 2 +-
 hw/i386/xen/xen_apic.c     | 2 +-
 hw/i386/xen/xen_platform.c | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/i386/kvm/apic.c b/hw/i386/kvm/apic.c
index a72c28e8a7..3a5d69e8d0 100644
--- a/hw/i386/kvm/apic.c
+++ b/hw/i386/kvm/apic.c
@@ -214,7 +214,7 @@ static void kvm_apic_mem_write(void *opaque, hwaddr addr,
 static const MemoryRegionOps kvm_apic_io_ops = {
     .read = kvm_apic_mem_read,
     .write = kvm_apic_mem_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
 static void kvm_apic_reset(APICCommonState *s)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 830614d930..2259589e0d 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1064,7 +1064,7 @@ DeviceState *pc_vga_init(ISABus *isa_bus, PCIBus *pci_bus)
 static const MemoryRegionOps ioport80_io_ops = {
     .write = ioport80_write,
     .read = ioport80_read,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
     .impl = {
         .min_access_size = 1,
         .max_access_size = 1,
@@ -1074,7 +1074,7 @@ static const MemoryRegionOps ioport80_io_ops = {
 static const MemoryRegionOps ioportF0_io_ops = {
     .write = ioportF0_write,
     .read = ioportF0_read,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
     .impl = {
         .min_access_size = 1,
         .max_access_size = 1,
diff --git a/hw/i386/vapic.c b/hw/i386/vapic.c
index ef7f8b967f..fd906fdf78 100644
--- a/hw/i386/vapic.c
+++ b/hw/i386/vapic.c
@@ -718,7 +718,7 @@ static uint64_t vapic_read(void *opaque, hwaddr addr, unsigned size)
 static const MemoryRegionOps vapic_ops = {
     .write = vapic_write,
     .read = vapic_read,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
 static void vapic_realize(DeviceState *dev, Error **errp)
diff --git a/hw/i386/xen/xen_apic.c b/hw/i386/xen/xen_apic.c
index 101e16a766..a94e9005cb 100644
--- a/hw/i386/xen/xen_apic.c
+++ b/hw/i386/xen/xen_apic.c
@@ -36,7 +36,7 @@ static void xen_apic_mem_write(void *opaque, hwaddr addr,
 static const MemoryRegionOps xen_apic_io_ops = {
     .read = xen_apic_mem_read,
     .write = xen_apic_mem_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
 static void xen_apic_realize(DeviceState *dev, Error **errp)
diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
index ec0e536e85..3b3e745822 100644
--- a/hw/i386/xen/xen_platform.c
+++ b/hw/i386/xen/xen_platform.c
@@ -514,7 +514,7 @@ static void platform_mmio_write(void *opaque, hwaddr addr,
 static const MemoryRegionOps platform_mmio_handler = {
     .read = &platform_mmio_read,
     .write = &platform_mmio_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
 static void platform_mmio_setup(PCIXenPlatformState *d)
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 18:46:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 18:46:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831300.1246511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8l2r-0001cA-Jw; Wed, 06 Nov 2024 18:46:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831300.1246511; Wed, 06 Nov 2024 18:46: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 1t8l2r-0001c3-Gt; Wed, 06 Nov 2024 18:46:21 +0000
Received: by outflank-mailman (input) for mailman id 831300;
 Wed, 06 Nov 2024 18:46: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=aqLR=SB=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1t8l2p-0001bx-KG
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 18:46:19 +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 66f5e7cb-9c6f-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 19:46:15 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9ed49ec0f1so13034966b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 10:46:15 -0800 (PST)
Received: from localhost.localdomain ([154.14.63.34])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16f8c5asm317692666b.90.2024.11.06.10.46.13
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 06 Nov 2024 10:46: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: 66f5e7cb-9c6f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY2ZjVlN2NiLTljNmYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTE4Nzc1LjY4Njk4LCJzZW5kZXIiOiJwaGlsbWRAbGluYXJvLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730918775; x=1731523575; 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=XmhWRZXxp83O2InQlFonyaildfIoabED880hXmnDZ7g=;
        b=EFA7nX9LG6bOF840RMX4qfxecakA6p//UHWwuxOU1RpDGDwyPsxAaBVatU+e/pDDzB
         mmMlk/QRkcZSzXx1jeBBoms12pth+WvzV/CoEBQ5ibujGCmVgC1G1pRYguVgMyY4XZKX
         MP8xNRutVK/K/5T91o9mfsiC+tA9yRhA5YicbTqiCA7rbAcF2l7Q2Gne8pdtADR+YTTh
         RPxXTnl60XcId3LThCs7+WlFHLGbSX/c3DugcCOYkSDLDWvsqE/H7C9G0x63YSssteVV
         RgIrVDmh0Pje7wqrCayKinNSw/zSEIlv/0rOApOtC8s/L83IxsA/1EV6zg98VpQwwy6r
         2z7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730918775; x=1731523575;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=XmhWRZXxp83O2InQlFonyaildfIoabED880hXmnDZ7g=;
        b=syjnZAb/GmEZwdFmdZXlYpBoUKE+6lcJFVYlEbcO936HUapOiVIqQmlxzuYJ+Jj1A4
         w79b18be/Q43VTFJNeyZw/hE5I5g1COGjg4F4lD+J93+feY6trlQR2gYRFCyyGCg2boL
         Fgr2VL3ppRrY65kQFX85vL14cVA/UalaN74ifDEavtOTMewuvzWA9ELw2Nk3JoVAe88G
         A+hQH0X0CxWa0qUMAkgbf368uw6YWH6dW2FcIT0a53L/5LSGYkwdh/69n2W228h+A2In
         q1TSgJCNKDB71VuiJRdPblY9DgraekHDD0cOnY/F3Q6CLHNskLk1/mvAybcUBU2oR4Kk
         mm+g==
X-Forwarded-Encrypted: i=1; AJvYcCUN8qSp6ItOGSQNi08wr7y9tFjEEsUqud8tI8eLuyRFDSSlRQoVX41To97CinldG7y4HGc86SFwA4Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjNHtGra5iuxu4vHrz+ORdCc6IP2dVtGrSoIhxWfUDpmJDaZ2/
	7cK5nFNpevoiMNwJidU4NsvoeZTUdZhIA9G6PHxCMEWMMwIepeQrFUfSsgjFDEo=
X-Google-Smtp-Source: AGHT+IF3aqIXCddVzxdTkCqTIT+QsXKTqG9THVwgPVGSC1f3F5fPhTl2w+fvLxGmqJxqNY6o2pGfbg==
X-Received: by 2002:a17:906:f34a:b0:a9e:c696:8f78 with SMTP id a640c23a62f3a-a9ec6969260mr306265266b.51.1730918775010;
        Wed, 06 Nov 2024 10:46:15 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Artyom Tarasenko <atar4qemu@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	xen-devel@lists.xenproject.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
	Anthony PERARD <anthony@xenproject.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Thomas Huth <huth@tuxfamily.org>,
	Jia Liu <proljc@gmail.com>,
	Stafford Horne <shorne@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 0/5] hw: Mark architecture specific devices with specific endianness
Date: Wed,  6 Nov 2024 18:46:07 +0000
Message-ID: <20241106184612.71897-1-philmd@linaro.org>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

When a device is only built for an architecture built for
a particular endianness, we can simplify the device to not
use the "target native endianness" definition and directly
use the proper target endianness.

Philippe Mathieu-DaudÃ© (5):
  hw/i386: Mark devices as little-endian
  hw/tricore: Mark devices as little-endian
  hw/m68k: Mark devices as big-endian
  hw/openrisc: Mark devices as big-endian
  hw/sparc: Mark devices as big-endian

 hw/i386/kvm/apic.c              | 2 +-
 hw/i386/pc.c                    | 4 ++--
 hw/i386/vapic.c                 | 2 +-
 hw/i386/xen/xen_apic.c          | 2 +-
 hw/i386/xen/xen_platform.c      | 2 +-
 hw/m68k/mcf5206.c               | 2 +-
 hw/m68k/mcf5208.c               | 6 +++---
 hw/m68k/mcf_intc.c              | 2 +-
 hw/m68k/next-kbd.c              | 2 +-
 hw/openrisc/openrisc_sim.c      | 2 +-
 hw/openrisc/virt.c              | 2 +-
 hw/sparc/sun4m_iommu.c          | 2 +-
 hw/sparc64/sun4u.c              | 2 +-
 hw/tricore/tricore_testdevice.c | 2 +-
 14 files changed, 17 insertions(+), 17 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 18:46:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 18:46:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831306.1246551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8l3A-0002sD-HL; Wed, 06 Nov 2024 18:46:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831306.1246551; Wed, 06 Nov 2024 18:46: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 1t8l3A-0002s4-D0; Wed, 06 Nov 2024 18:46:40 +0000
Received: by outflank-mailman (input) for mailman id 831306;
 Wed, 06 Nov 2024 18:46: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=aqLR=SB=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1t8l39-0001q9-Ke
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 18:46:39 +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 7365aef6-9c6f-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 19:46:36 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9acafdb745so35862666b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 10:46:36 -0800 (PST)
Received: from localhost.localdomain ([89.101.134.25])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d9d68sm317330266b.72.2024.11.06.10.46.34
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 06 Nov 2024 10:46: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: 7365aef6-9c6f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjczNjVhZWY2LTljNmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTE4Nzk2LjQ5NjAwOCwic2VuZGVyIjoicGhpbG1kQGxpbmFyby5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730918796; x=1731523596; 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=YsFK2U3XFqb/vEljmH+2siHctjoVhJmmiNdlJHfI0/4=;
        b=W/J9lIP6zrElw4Hq74bucweEH1iuYzhVkfIZnGeKvjmhiR637CEOELSdwbQ5ov/FzW
         XUhrEcp/0eByp4ffvDhX8XpY79dFhu8zwzLcG7ZzFD+TEynWkoC3J/U42YkuXsTQ9klK
         QCztpol6HIUaPiKFk97spKmU2bX29AVbVwsHrLaMyFBdm3ce3l89LucJP0zNr1F6Qvvy
         vKipokhQYP4AkczuC6DWCsmxR3SAfRGPgOuKWbRk22raHwL8catbRDmryJi6Z3ewnkl3
         9hWby6R00rOi8t3E3Kdf+grGfMkOqSp9PpfSTEvZ4DzVn0uniHNazPBEwZPlyeZPVh5L
         IBtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730918796; x=1731523596;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YsFK2U3XFqb/vEljmH+2siHctjoVhJmmiNdlJHfI0/4=;
        b=QtycT7FjhMyvnwCN1HQMyNNiRQXXblxZ8IOezV7m2v8/fJUjnx/01kEdfWp6OS+3Yw
         9u0oHl3ySAhZ30nOSfBLKiKFSh6+4/gehHv4jjgwBRw/uQdzJEW10yfjeKD3BK7xufaz
         MnFlRc1t3IRaZj9CvL+uwSvuvDd2YL1WQpC1sdMcSyXkSBnAJX+ND6G4RikzMjgMwZ9A
         sneQ7EJ5k4xGm+xEg71XykFJzT5HaRGOBT+hr5eS2lfDeIWjRZCDW70G6BHwZh9kbTmh
         DpPKfSKw9AVjDbz/VXquJMEesOzhtgJUIP9b7eY8KFKMbH8xuc67tZSK/5bqC3sBTWDk
         LoNA==
X-Forwarded-Encrypted: i=1; AJvYcCUjHSc1O/tm83TUcbpyIDRMzboflgJ/e+gNL6+BwhZOFff+J5YmPC6zdMOCzxefFHsA1LHFZzyZCLo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwT5qLqg1Rf/SqDQI38huvA47Gr44/KDtQdpur4D+6i57JIEvQJ
	wr2W9jrzpNew5OB7xleZM6vd0JAyuFhjvXLJ8cod87GPvjoedBsKaMOsYU1pmfE=
X-Google-Smtp-Source: AGHT+IE+L+yQyHT39fSRf4/OhKcpAqJYHinN1o/h9Nj2ZuOUgW78Lq2jC2oQuBoUyZL+R29YcaV+GA==
X-Received: by 2002:a17:907:7f90:b0:a9e:670f:9485 with SMTP id a640c23a62f3a-a9ed51c6ed6mr17121666b.30.1730918795914;
        Wed, 06 Nov 2024 10:46:35 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Artyom Tarasenko <atar4qemu@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	xen-devel@lists.xenproject.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
	Anthony PERARD <anthony@xenproject.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Thomas Huth <huth@tuxfamily.org>,
	Jia Liu <proljc@gmail.com>,
	Stafford Horne <shorne@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 4/5] hw/openrisc: Mark devices as big-endian
Date: Wed,  6 Nov 2024 18:46:11 +0000
Message-ID: <20241106184612.71897-5-philmd@linaro.org>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20241106184612.71897-1-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These devices are only used by the OpenRISC target, which is
only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_BIG_ENDIAN (besides, the
DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
using DEVICE_BIG_ENDIAN.

Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 hw/openrisc/openrisc_sim.c | 2 +-
 hw/openrisc/virt.c         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
index 9fb63515ef..794c175bdb 100644
--- a/hw/openrisc/openrisc_sim.c
+++ b/hw/openrisc/openrisc_sim.c
@@ -266,7 +266,7 @@ static void openrisc_sim_serial_init(Or1ksimState *state, hwaddr base,
     }
     serial_mm_init(get_system_memory(), base, 0, serial_irq, 115200,
                    serial_hd(OR1KSIM_UART_COUNT - uart_idx - 1),
-                   DEVICE_NATIVE_ENDIAN);
+                   DEVICE_BIG_ENDIAN);
 
     /* Add device tree node for serial. */
     nodename = g_strdup_printf("/serial@%" HWADDR_PRIx, base);
diff --git a/hw/openrisc/virt.c b/hw/openrisc/virt.c
index 47d2c9bd3c..ede57fe391 100644
--- a/hw/openrisc/virt.c
+++ b/hw/openrisc/virt.c
@@ -236,7 +236,7 @@ static void openrisc_virt_serial_init(OR1KVirtState *state, hwaddr base,
     qemu_irq serial_irq = get_per_cpu_irq(cpus, num_cpus, irq_pin);
 
     serial_mm_init(get_system_memory(), base, 0, serial_irq, 115200,
-                   serial_hd(0), DEVICE_NATIVE_ENDIAN);
+                   serial_hd(0), DEVICE_BIG_ENDIAN);
 
     /* Add device tree node for serial. */
     nodename = g_strdup_printf("/serial@%" HWADDR_PRIx, base);
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 18:46:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 18:46:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831310.1246561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8l3F-0003JH-SR; Wed, 06 Nov 2024 18:46:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831310.1246561; Wed, 06 Nov 2024 18:46: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 1t8l3F-0003J5-P8; Wed, 06 Nov 2024 18:46:45 +0000
Received: by outflank-mailman (input) for mailman id 831310;
 Wed, 06 Nov 2024 18:46: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=aqLR=SB=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1t8l3E-0001q9-LQ
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 18:46:44 +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 7676c029-9c6f-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 19:46:41 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-53a097aa3daso33057e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 10:46:41 -0800 (PST)
Received: from localhost.localdomain ([89.101.134.25])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16a7dc6sm314521266b.7.2024.11.06.10.46.39
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Wed, 06 Nov 2024 10:46: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: 7676c029-9c6f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc2NzZjMDI5LTljNmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTE4ODAxLjU3MzQzOCwic2VuZGVyIjoicGhpbG1kQGxpbmFyby5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1730918801; x=1731523601; 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=MkGkfKVgrldMieE36JppEsQQQbpaD8YlgbmPxpDRAVA=;
        b=EOmEPHvSv1wcVQwCWiWpG7S6c3OlvR54obZp1jOR63EAZ9qDnE1DnKmW2QKC8tJ/mV
         1FPVnMadyv/cWy94mNDAS03yzb34OtrWUkueDzVFwcrTlFqg5rwtawICgEwOMA+J7bS/
         ThUogKEVzUxXkdPY8zwBOh9UBrsQWNkz9XyL/wumycnr5VLzV94iwifRBraoKU0PPPSz
         uShXBolxIp4EIYxFeivGx4Ky8NVy5vuT3/Vfk8KDpZYZAHi/7qV9p+ZGW/IOuwzP8JrR
         Zs+pgw+LXCz+ek6scG2Iq0LLJOxIUYZlF45AruQuH4dtmfFzgn7fsmxEpSRycoremOI+
         CHJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730918801; x=1731523601;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MkGkfKVgrldMieE36JppEsQQQbpaD8YlgbmPxpDRAVA=;
        b=XKXdnKSrUOM2u8X5iLKI6rJtKMq0JBO+ou3rNCRjL1fqNcur/5pCP00ZT2Eb18tu3T
         HeIJbqNguBWud+9jQCIWeorqe72fSwQP1fIfqlasI1+G8AG/4/I+o5hDVrmDpCeCylXS
         lGfDzW8zSMkCbEeMCLIAPCGg+fXkQ8+j7Zq4n34GICOtWNydy+4IqtiGrN8qBE59SDaO
         nx173I90HGAQVKYuJRZAgCg5mn2GAVpNdJ5+MwDQlJOo4wVgN7IaGfuJ4cYY/7ydFvOj
         /VLufE58aZKYiINj8U4Ixx6sGdMU3u+dM4h7QPsDADKIqCMJXHcgyJvrlgPRMgVNj7ar
         hJjQ==
X-Forwarded-Encrypted: i=1; AJvYcCUXdqOc4XdCAnKiFY2RZW0UIPB5ugRrgM4qc9EYCDix1ltQWttrsStfl5C84t/kiFubHpjg5hBWc3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxaWfJd73Jf6xUNayatKNV6QcqQV/XT77PSWv95qid8Fr7DMlbq
	cXIJfvNM7VfxIswJNJARrc1XTayM4qgBs3zuBBz3ENn3XxCpc/49Rvn4jZY1B5g=
X-Google-Smtp-Source: AGHT+IGZ7yhvC/Wx3siWVWtSGdKVwGW9oG3YHsndXh771V6dpEgTCitAC2JnhInj+huJT/sEjeTvSw==
X-Received: by 2002:a05:6512:3c96:b0:530:aa09:b6bf with SMTP id 2adb3069b0e04-53d65df7628mr10283658e87.24.1730918800919;
        Wed, 06 Nov 2024 10:46:40 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Artyom Tarasenko <atar4qemu@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	xen-devel@lists.xenproject.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
	Anthony PERARD <anthony@xenproject.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Thomas Huth <huth@tuxfamily.org>,
	Jia Liu <proljc@gmail.com>,
	Stafford Horne <shorne@gmail.com>,
	Paul Durrant <paul@xen.org>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 5/5] hw/sparc: Mark devices as big-endian
Date: Wed,  6 Nov 2024 18:46:12 +0000
Message-ID: <20241106184612.71897-6-philmd@linaro.org>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <20241106184612.71897-1-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These devices are only used by the SPARC targets, which are
only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_BIG_ENDIAN (besides, the
DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
using DEVICE_BIG_ENDIAN.

Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 hw/sparc/sun4m_iommu.c | 2 +-
 hw/sparc64/sun4u.c     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/sparc/sun4m_iommu.c b/hw/sparc/sun4m_iommu.c
index 6f765e97e4..4486508e3b 100644
--- a/hw/sparc/sun4m_iommu.c
+++ b/hw/sparc/sun4m_iommu.c
@@ -238,7 +238,7 @@ static void iommu_mem_write(void *opaque, hwaddr addr,
 static const MemoryRegionOps iommu_mem_ops = {
     .read = iommu_mem_read,
     .write = iommu_mem_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
     .valid = {
         .min_access_size = 4,
         .max_access_size = 4,
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 541c7f74fa..9d7aebf632 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -254,7 +254,7 @@ static void power_mem_write(void *opaque, hwaddr addr,
 static const MemoryRegionOps power_mem_ops = {
     .read = power_mem_read,
     .write = power_mem_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_BIG_ENDIAN,
     .valid = {
         .min_access_size = 4,
         .max_access_size = 4,
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 19:13:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 19:13:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831344.1246570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8lT2-0000Kx-V5; Wed, 06 Nov 2024 19:13:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831344.1246570; Wed, 06 Nov 2024 19: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 1t8lT2-0000Kq-SY; Wed, 06 Nov 2024 19:13:24 +0000
Received: by outflank-mailman (input) for mailman id 831344;
 Wed, 06 Nov 2024 19:13: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8lT1-0000Kj-Vx
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 19:13:24 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2de97ad7-9c73-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 20:13:17 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9a0ec0a94fso13675766b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 11:13:17 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9eb16d9f05sm323354466b.74.2024.11.06.11.13.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 11:13: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: 2de97ad7-9c73-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJkZTk3YWQ3LTljNzMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTIwMzk3Ljg4NzQxLCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730920397; x=1731525197; 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=yJpeov9s3LXlc/rSUZH+AFKQ1saHpWbwmajWMsNbxLw=;
        b=K80W2zU+8N67ysv+dtlJdlcgpz72EgQVx0MUfl7XnwKTyNIgxaPwZX0PGXV2O+50RL
         rZ3ecvfrreppctptGYyYHut1f+b5EOryEkTtezfAo2zfOassNKAZUVbJ4uo0TVHC9jjz
         cHqXi4rChW3vn/Me8lIar55T5vCZjDDBtouO8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730920397; x=1731525197;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yJpeov9s3LXlc/rSUZH+AFKQ1saHpWbwmajWMsNbxLw=;
        b=epbp7lryLSZsw8z7703vb750l1HQa2b10OsMcXGqHQwMg55dR2QLyBAfcbHgUNpJHD
         EwTvotke9YsDTTRkcd0Si0lwRUlgSDRUmf940nX0TJHgnwILEsNzOMGYKMlwK8OMyvJo
         TxgwpK8XptZRIZwYyvki/v+ncSuhpKQ1eEJQ5X7epqB1vbflebFl53lU8tM6loT7G7Dg
         x42YTokKk83c5669NAeIbQ2B7T3hQf1DOkXt8Oq3QEehR/XNjKo/7Xa4E8MWn2SLplMQ
         UkuIAa1IUAgpjZ7fzMfdUo+AUzl4Al/PZz7H0c0NgKf6dIxiuifer05LlKD80S7RdzPE
         p5Kg==
X-Forwarded-Encrypted: i=1; AJvYcCVAD5ivJncMxLBKsp6yndFu9iKQfUkcbAYJzF7otuT/NweyIBePmF2i02Tapvg4bG3iryo+B7Q76C0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywxi3wygH9J6oC4LK/9A9vC3sxMtenxNi0sauY2p7pyGqhW7Lu+
	cNiCp7fH1ZoOMvtEafM62oEz/OEkc9gaxAfNWqQAD0e5lVAeqovg6eqxmgSRqcY=
X-Google-Smtp-Source: AGHT+IGyBC1ha/oMYp3i4TqjODkSPqa+Su1MnRYAHWIBG77QY2Aabk0+tP16YudPlewx6BkS4ONm7g==
X-Received: by 2002:a17:907:7b87:b0:a9e:b5d0:e5c with SMTP id a640c23a62f3a-a9eb5d013dcmr637962866b.61.1730920397307;
        Wed, 06 Nov 2024 11:13:17 -0800 (PST)
Message-ID: <c416948c-0730-4392-98d2-f550bfeaf8cc@citrix.com>
Date: Wed, 6 Nov 2024 19:13:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/6] CI: Refresh the Debian 12 x86_32 container
To: Javi Merino <javi.merino@cloud.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1730743077.git.javi.merino@cloud.com>
 <6ca245790b8bd2469e82dd54ff3cedd12096369c.1730743077.git.javi.merino@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <6ca245790b8bd2469e82dd54ff3cedd12096369c.1730743077.git.javi.merino@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/11/2024 1:05 pm, Javi Merino wrote:
> Rework the container to be non-root, use heredocs for readability, and
> use apt-get --no-install-recommends to keep the size down.  Rename the
> job to x86_32, to be consistent with XEN_TARGET_ARCH and the
> naming scheme of all the other CI jobs:
> ${VERSION}-${ARCH}-${BUILD_NAME}
>
> Remove build dependencies for building QEMU, as we don't do it since
> e305256e69b1 ("CI: Stop building QEMU in general").

The container never had ninja/meson so Qemu hasn't built in it for many
years, irrespective of e305256e69b1.

>
> Remove build dependencies for the documentation as we don't have to
> build it for every single arch.
>
> This reduces the size of the container from 2.22GB to 1.32Gb.
>
> Signed-off-by: Javi Merino <javi.merino@cloud.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

I'll tweak the commit message on commit, to save needing a repost.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 22:17:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 22:17:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831374.1246660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8oKY-0006xE-9R; Wed, 06 Nov 2024 22:16:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831374.1246660; Wed, 06 Nov 2024 22: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 1t8oKY-0006x7-6q; Wed, 06 Nov 2024 22:16:50 +0000
Received: by outflank-mailman (input) for mailman id 831374;
 Wed, 06 Nov 2024 22:16: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=SEZf=SB=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t8oKX-0006x1-8g
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 22:16:49 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2415::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8cec959-9c8c-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 23:16:36 +0100 (CET)
Received: from SN4PR0501CA0060.namprd05.prod.outlook.com
 (2603:10b6:803:41::37) by SA3PR12MB7952.namprd12.prod.outlook.com
 (2603:10b6:806:316::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.29; Wed, 6 Nov
 2024 22:16:32 +0000
Received: from SA2PEPF00003AE7.namprd02.prod.outlook.com
 (2603:10b6:803:41:cafe::f1) by SN4PR0501CA0060.outlook.office365.com
 (2603:10b6:803:41::37) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Wed, 6 Nov 2024 22:16:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00003AE7.mail.protection.outlook.com (10.167.248.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 22:16:32 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 6 Nov
 2024 16:16:31 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Nov
 2024 16:16:31 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Nov 2024 16:16: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: c8cec959-9c8c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjBkIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM4Y2VjOTU5LTljOGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTMxMzk2LjM3MDc1NCwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ds4uHz19NAy8yqQ1JDuAK4Q1FpPxaJwJQqpbmmklH+Krxd2okSlurdWfDJIMgaszhnziCFBq47i7z+v8ntQu3n6oqVWuEBrCgh5FnxQHENt33yQGvAFu3TLCvUt1EkBvD41/XwpQYUE06td+IxLM3AGQNePtXtv3sKl6IfrXUwJdlu/34QU37d/Pw8eORm4I2odf7Bvk3IXjDpcjNgolwQGhmZtO1m5hiIr7UdsxyTlpXV8Av/byGEltP3/oPa4nkCwfub7O6nWom/gtc5eLzNNBDVAwz17Z7+lNgNFSf6MM7XETNkYJzX8MILSTeC+Jr0FQNrRr+rjHmfGVk+iVAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E80QCvVYRMVdrgjpY5Lml6kcF0rOZlAtuXbSg4ACi0w=;
 b=leTODSwLkyMHrRYINucoguiPD2PTJPHnD/S8l9GPKO+XdDB/8DhdGPWnT/pQ1cdqnZvjzMO7RZ25WbGs/XWYq/XXKhDDS3uBMEO6VTtnSM2PX3PKaHpjl/9bUruOhooy+m6UEt+eP8vRIblyyMZq7e78PlXVx6dCHgRetWSQfbRV+fdq8XWnDlI9YtU/83ndzp1OjwETMJh74QUYiNnHQ84y68jvoUzRKRGiztdYwbQER7Gl9k3e1gETsERkFuxcrQ4GhKTKqbyw+LX2I6sAYfR0c3dXtmkws2uYRRqARNuTE2XCjV7JfF71L4kZNWFjRcKqaKKpmdlFMeXDVNyi/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=E80QCvVYRMVdrgjpY5Lml6kcF0rOZlAtuXbSg4ACi0w=;
 b=Tn7MgY/W30Iv/ltoBhv5ft1cxS/wazWJGu/U8YZl/FMLXmn56YmsrHYQmfZxMKND8VxsAKTPLPugHDWl1uvhEhKS0Yr56q13n3sNvCoJPJCU9G8RKNvY0bm2mxpQw/FibNreYbdUFgI0HdU9Ah7gDjsqQCJvyRiyr+kmRmT0tJM=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <773dbe75-d1d3-41ea-8ff7-c031e0e9a920@amd.com>
Date: Wed, 6 Nov 2024 17:16:29 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] x86/boot: introduce module release
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-5-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241102172551.17233-5-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE7:EE_|SA3PR12MB7952:EE_
X-MS-Office365-Filtering-Correlation-Id: de443ce6-b78c-41fd-382e-08dcfeb0ab62
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:
	=?utf-8?B?K1hRR3FqZlMzNFh3cEREejAvdE9td2hzVk83QXV3aW5TNXhtT1lERmRRSnlU?=
 =?utf-8?B?bFRhOTFXdW9RYU80bWJScmlMa3J2TGF0TCtrYWhsT3VUTkJZVGM0WTlJTHRz?=
 =?utf-8?B?RjRBd2pWaE1SSUN1R1BwV0h0UXI4ekhpSjhaK2xLMmZZazQ4aGUvQU1TZnNM?=
 =?utf-8?B?OCtvV2RDYWRJL0k2djg2MGJyQWlrT3BHNmRodFdyV2NVMEF2cnI4TnVOSXhk?=
 =?utf-8?B?SlI2a0N4UUpOVm1rUm01S3BRUzJ5L3Z3aklUc3JuNkpNUDM0R1llbnZhdCth?=
 =?utf-8?B?NUMrMmFRa0I5aEMvaThDbVZtN2t0cWlaQUJ1dHR0QVVNOEhpMjlyMDNpTXhk?=
 =?utf-8?B?Z0lxUm9XZU03YzdjM1k1eVJzTnFRTngvb2NnSWlFY0piNDZuNVVVTG9xNjR5?=
 =?utf-8?B?VzhYQmlIUzZrUk5qVEVQT1FoenJaaGd6RnpGL0NPVEltT1dnUDI2Q1ZyMHFP?=
 =?utf-8?B?Tm5LVjcxb0ppc1BQbEs3cU9YYkhUZDd1bEVDL2hEK2R1V2lsZE1mdk92MDJ1?=
 =?utf-8?B?eWNOUDZwaFpKRjlhbEZlNlpWd3FVbCswS0VlZFJsNkFIV0xTY3hCU0dITGJq?=
 =?utf-8?B?SUdpWHdEZHc1VEE5dlRhSXZMNkhxWFNUbjNCNDZrSHpLMTlvcklTbFcwenZx?=
 =?utf-8?B?MFdCbFVZdnRSU3lkT256aHZ0L0o2NjNMdUp0U3hrNjN4R2pFaUJlWEczS1Q1?=
 =?utf-8?B?VS9tY3BMQ3dVeFpXSWpKdHpnaHg0U0d2WkEvdGo0dWdFRUdvc0JDNUE2MDEx?=
 =?utf-8?B?aUY4NnZ6NjM1YVhldWFmc1ZCdTN0L1R5VzhFcVJUakVnUzVKN1dPLy9jTTBK?=
 =?utf-8?B?Y3EwNzBXYWxybkFxRitoNjZjcllBODdtZlc3eWhpdzQzTDA4ZUhmdjcrS1p5?=
 =?utf-8?B?KzJmRkZ6VzVVUTRLL1JSamFPTUs5eTF3alUzaUlhK2JjeWdUZWFlL0xZLzlm?=
 =?utf-8?B?ZXFzM1oyL0lRdTd6NzliUENGUlhMTEZsYkJRTVlCdm05U0ZDemFhM2M0WEdH?=
 =?utf-8?B?QTZ2elpJdkZNK3VSM1laTDdxd2t2a1pFMURJeUFzNzRtcXJFNGE0TFRMcUtj?=
 =?utf-8?B?Y1k5OUV1TElOUzJGNzdhT0N0OHNnNTNPUXhidVQrUWZuNURaOWZSQkhIM2tV?=
 =?utf-8?B?dmdqWlBPbjJ3TmFFZ25ZQm52REp3bkwrbnR0VG9NbGczb2dCL2xoSEJKQ2ZY?=
 =?utf-8?B?aDdIVCtiS2lSL3ZBTzFKOGVYTVhqZi9jTGVSNlYwRDRONStZSVo3bDBxZC9Z?=
 =?utf-8?B?c0FOdUFPdVNhYkllZTZLdGt3RGN6Q2xxYUdhaWFwUW5wVDhHek9vN2VwQlEx?=
 =?utf-8?B?L1BHbzdQNjN3VkhhWWZ4NStPaGRQL2NsRWpFbHo5OUpmSnBvR2RnL1dGUjNv?=
 =?utf-8?B?bHM4M1N1d2FBblNMNVBWOWwrbmh5MFpKM2JML0pOMVJOS3F0YS83aEJmNUpk?=
 =?utf-8?B?eEd3K1Y4MXJac25xNjVhUEluYkJEZXRRS05qL0IwZWcrZ1o0aUtzMk1iRmp2?=
 =?utf-8?B?Z1o5Zm8xV1ZMVzdyN21QUWFCV3N2N0w1SzBZd0g3NEhGcHpucnFiSXJoVXJz?=
 =?utf-8?B?QXRJS2t1T0RMd0RXSTFmWXJPWGJ2OExzcjFDeWVNNnkzbDFqNkd5eXNFTGwr?=
 =?utf-8?B?MWxvY21nMFppZ0xkTC96cHpGS0VhSXdBczB5MDkyNFN6OUZqZ1RGSEYrbHZ2?=
 =?utf-8?B?OWdBVkpGdWxYa3R6a1Vrb1FoblpjNnk5Rjd2OE43TUk5TitTL2w3dGVhTTJN?=
 =?utf-8?B?NTVBSjZ5SnkxenN4Nm5NNDkyQ1JxSmt3RmZXY1craE5jNzBzaC94ZlBsKzky?=
 =?utf-8?B?b0dOVWttdm14ZS9McVltRW9Zd0gzSlZrQXVGalFCekltdmcxRXE4UVN3L3hk?=
 =?utf-8?B?Z1FlaFdIS2MwS1R1WHNUaXlUSE9sMnJXVTdyeUV5empUZVE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 06 Nov 2024 22:16:32.1557
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: de443ce6-b78c-41fd-382e-08dcfeb0ab62
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7952

On 2024-11-02 13:25, Daniel P. Smith wrote:
> A precarious approach was used to release the pages used to hold a boot module.
> The precariousness stemmed from the fact that in the case of PV dom0, the
> initrd module pages may be either mapped or explicitly copied into the dom0
> address space. So to handle this situation, the PV dom0 construction code will
> set the size of the module to zero, relying on discard_initial_images() to skip
> any modules with a size of zero.
> 
> A function is introduced to release a module when it is no longer needed that
> accepts a boolean parameter, free_mem, to indicate if the corresponding pages
> can be freed. To track that a module has been released, the boot module flag
> `released` is introduced.
> 
> The previous release model was a free all at once except those of size zeros,
> which would handle any unused modules passed. The new model is one of, free
> consumed module after usage is complete, thus unconsumed modules do not have a
> consumer to free them.

Slightly confusing.  Maybe just "The new model is to free modules after 
they are consumed.  Thus unconsumed modules are not freed."

> To address this, the discard_uknown_boot_modules() is

"unknown"

> introduced and called after the last module identification occurs, initrd, to
> free the pages of any boot modules that are identified as not being released.
> After domain construction completes, all modules should be freed. A walk of the
> boot modules is added after domain construction to validate and notify if a
> module is found not to have been released.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v7:
> - This is a new approach as an alternative to the `consumed` flag.
> ---
>   xen/arch/x86/cpu/microcode/core.c   |  4 ++
>   xen/arch/x86/hvm/dom0_build.c       |  7 ++--
>   xen/arch/x86/include/asm/bootinfo.h |  2 +
>   xen/arch/x86/include/asm/setup.h    |  3 +-
>   xen/arch/x86/pv/dom0_build.c        | 20 ++--------
>   xen/arch/x86/setup.c                | 57 +++++++++++++++++++++++------
>   xen/xsm/xsm_core.c                  |  5 +++
>   7 files changed, 67 insertions(+), 31 deletions(-)
> 

> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index d061ece0541f..e6d2d25fd038 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -341,27 +341,55 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
>       return nr;
>   }
>   
> -void __init discard_initial_images(void) /* a.k.a. Free boot modules */
> +void __init release_boot_module(struct boot_module *bm, bool free_mem)
> +{
> +    uint64_t start = pfn_to_paddr(bm->mod->mod_start);
> +    uint64_t size  = bm->mod->mod_end;
> +
> +    if ( bm->released )
> +    {
> +        printk(XENLOG_WARNING "Attempt second release boot module of type %d\n",
> +               bm->type);
> +        return;
> +    }
> +
> +    if ( free_mem )
> +        init_domheap_pages(start, start + PAGE_ALIGN(size));
> +
> +    bm->released = true;
> +}
> +
> +void __init release_module(const module_t *m, bool free_mem)
>   {
>       struct boot_info *bi = &xen_boot_info;
>       unsigned int i;
>   
> -    for ( i = 0; i < bi->nr_modules; ++i )
> +    for ( i = 0; i < bi->nr_modules; i++ )
>       {
> -        uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
> -        uint64_t size  = bi->mods[i].mod->mod_end;
> +        if ( bi->mods[i].mod == m )
> +            release_boot_module(&bi->mods[i], free_mem);
> +    }
> +}
>   
> -        /*
> -         * Sometimes the initrd is mapped, rather than copied, into dom0.
> -         * Size being 0 is how we're instructed to leave the module alone.
> -         */
> -        if ( size == 0 )
> +static void __init discard_unknown_boot_modules(void)
> +{
> +    struct boot_info *bi = &xen_boot_info;
> +    unsigned int i, count = 0;
> +
> +    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)

for_each_boot_module_by_type ( i, bi, BOOTMOD_UNKNOWN )

To match style from 74af2d98276d ("x86/boot: eliminate module_map")

> +    {
> +        struct boot_module *bm = &bi->mods[i];
> +
> +        if ( bm == NULL || bm->released )
>               continue;
>   
> -        init_domheap_pages(start, start + PAGE_ALIGN(size));
> +        release_boot_module(bm, true);
> +        count++;
>       }
>   
> -    bi->nr_modules = 0;
> +    if ( count )
> +        printk(XENLOG_DEBUG "Releasing pages for uknown boot module %d\n",

"unknown".  Since the operation already happened, maybe "Released pages 
for %d unknown boot modules"?  I'm not sure of the value of that 
message.  It would be more informative to provide the module index and 
maybe a page count.  The index would at least point to which module is 
unused.

> +               count);
>   }
>   
>   static void __init init_idle_domain(void)
> @@ -2111,6 +2139,8 @@ void asmlinkage __init noreturn __start_xen(void)
>                      initrdidx);
>       }
>   
> +    discard_unknown_boot_modules();
> +
>       /*
>        * We're going to setup domain0 using the module(s) that we stashed safely
>        * above our heap. The second module, if present, is an initrd ramdisk.
> @@ -2122,6 +2152,11 @@ void asmlinkage __init noreturn __start_xen(void)
>       if ( !dom0 )
>           panic("Could not set up DOM0 guest OS\n");
>   
> +    /* Check and warn if any modules did not get released */
> +    for ( i = 0; i < bi->nr_modules; i++ )
> +        if ( !bi->mods[i].released )
> +            printk(XENLOG_ERR "Boot module %d not released, memory leaked", i);
> +

Why not release the memory here instead of leaking it?

I feel like the corner case of mapping the dom0 initrd is leading to 
this manual approach or releasing modules individually.  That logic then 
has to be spread around.  discard_initial_images() kept the logic 
centralized.  Maybe just replace the mod_end == 0 special case with a 
"don't release me" flag that is checked in discard_initial_images()?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 22:19:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 22:19:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831383.1246670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8oNF-0007YU-PD; Wed, 06 Nov 2024 22:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831383.1246670; Wed, 06 Nov 2024 22:19: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 1t8oNF-0007YN-Md; Wed, 06 Nov 2024 22:19:37 +0000
Received: by outflank-mailman (input) for mailman id 831383;
 Wed, 06 Nov 2024 22:19: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=SEZf=SB=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t8oNE-0007YF-3q
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 22:19:36 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20618.outbound.protection.outlook.com
 [2a01:111:f403:2406::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31c7ade0-9c8d-11ef-99a3-01e77a169b0f;
 Wed, 06 Nov 2024 23:19:32 +0100 (CET)
Received: from SA1P222CA0054.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2d0::29)
 by MW4PR12MB7359.namprd12.prod.outlook.com (2603:10b6:303:222::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Wed, 6 Nov
 2024 22:19:25 +0000
Received: from SA2PEPF00003AE5.namprd02.prod.outlook.com
 (2603:10b6:806:2d0:cafe::7b) by SA1P222CA0054.outlook.office365.com
 (2603:10b6:806:2d0::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Wed, 6 Nov 2024 22:19:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00003AE5.mail.protection.outlook.com (10.167.248.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 22:19:25 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 6 Nov
 2024 16:19:25 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Nov 2024 16:19:24 -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: 31c7ade0-9c8d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNjo6NjE4IiwiaGVsbyI6Ik5BTTAyLVNOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjMxYzdhZGUwLTljOGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTMxNTcyLjI5NzcxNCwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r9wJVTs0hNsTHlxO891MiuztQDQshJ/djKY4yGaBCEMZJErw7lxS8sIpwt3szpymhfvUB8j1rd1stnNtHhoClgA7X5+AYLZ2KppRrzyFqcHjL5+xXH0G8Rw11ZWsWCyJ2GAfGnE3F4F3oGzLPAx1rz45cDCWnVHslUA11zqEaHVbcJoQulGxuZy19VG4nWg8gM+JxQvS3E/Zt96J3hC59qPG52Oi0daLnlI+E44bEOXHWQrzHf3OCG0NF6giIMfQMyShiNjI7TI+xWPSXNpGbmzU1ZN6DgdjNJ223yOCa+mTcnl7FG65/W2HpyFxxXfs1n+ytdJc6fgompGGnmHBrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NVL/XZ/2Jxc2pMkp+egjwkW+G6EnxLlH0GSd0uYX6fI=;
 b=yv43rptnvXqdDpK1oXnkADQ4zQQQ3bR3IL1hXC3tubOIzRqRdGDIEr6QL4FRSCDEsBzpdQ37IQv8UUX6L2wpF8Re8EfP4DEEmNBZy2Hr3osfTqHEA3JKLWMOWVTpEyKKijF9SGM3KE2VPFgc19ZtwCMBMpOPiyCepVIN8eoYT61ylvw/AaBpUtAWliJfBnXtqhkm+cqhAe/Gc0MW1ewzeJeQzL9bp41lo0sErBzRTDyiy3mTGr967moy7RF5RIeA5LE9JnOx5n5kdWYKfocZ2ANvTMdicPZ3Nl5uqU+gbD24ytUg0xZs8YSu7mwArzhQZFELVVX0rJIE01VHM/H+BQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=NVL/XZ/2Jxc2pMkp+egjwkW+G6EnxLlH0GSd0uYX6fI=;
 b=tamIVEkpMQwcArw9WjASDU/WfkL3S/sMp+7CvlSYL81yHtPSgOUWMr2V7/QbZZTbNXVPmXH2avgqGkDXSZhr7f9DcxxDCm8ES/ozOh3kaPFe59F2WGWj7nO2IMbESgT9HcwnERidyL712RBxRTo/kqXbNxIXbIxN75ToDcKw9qM=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <95af4f8e-585c-4bd6-a3fc-c7234e9cce83@amd.com>
Date: Wed, 6 Nov 2024 17:19:24 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/12] x86/boot: add cmdline_pa to struct boot_module
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-8-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241102172551.17233-8-dpsmith@apertussolutions.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: SA2PEPF00003AE5:EE_|MW4PR12MB7359:EE_
X-MS-Office365-Filtering-Correlation-Id: 0cb19493-eb34-47ad-a7be-08dcfeb112aa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dmxBL3ROTDFaMytpUGhkYllZNlZxOStLbFNqbUJPQmJxZWlnTEpVYkpWdFNN?=
 =?utf-8?B?UHdZYmJZWm0zeE5LUFNwZEd0WHV0c3R6VzdEQnMvd2p6QmUyZDVtWXZNZXNE?=
 =?utf-8?B?NDA5bEtnekU2YVRGb2p6V3NXR1Z2Uzh0ZVRxM01tOTkzY09BOS9nc3ZiWWxo?=
 =?utf-8?B?K0RyamVBdjQxVWxxNDM4UlRhVUpDSDdjTzRtYzlzbDVyTTh1M3huOGlUb0Yr?=
 =?utf-8?B?Z3RXcnhLcnNjTUZnSVA4RHhXTGlxcTd6UkoxeE5Yd0Y4Z1JJME5BQkswZkkx?=
 =?utf-8?B?ekFtb0djRXdITWIwRzl6MTlhQ1dOd0FGTFc0YXUzMmdSY0JYRzJTaWxXUmp3?=
 =?utf-8?B?U21zMStSWTNLbE5Dc2F2Z0RWaXVINDVFcE5aajZ4RXBCZ3VEZzlTV0owRjV5?=
 =?utf-8?B?STBwZGFHbFNMdlhSL1l0WEl3Mk9QZGlxbW1tam5tbUFmZFBQZlRqOHRITDVL?=
 =?utf-8?B?TVpSREozVVZWSHdjTDNGOEJuTHhJbzlvOGFMcmk5bEVQRGFCMlBjak1hL0FK?=
 =?utf-8?B?L0VhQXFBU1ZScnAwanFQVlVyZGs4aldsRDBXVTB4ejFQdlVJQW1OUnUzWmJs?=
 =?utf-8?B?R0NHZVJKeU5PcktHbkd1aTlGanBxRlhXdTJ0cDRFU2RkbjVDRS9mNjk2VjRY?=
 =?utf-8?B?RmJXYS9ueTU5SWhHZGxFdndmaGRIL1lsWENvcDIxakpZUTVudmRGOVBUQ1B0?=
 =?utf-8?B?dG5YQ3JkWngvTGNqVzFTcFRiQXJSVEl2ZC9jOHdKTy9ncFZ5emNVdzNzNmow?=
 =?utf-8?B?M244THNIaTQydmVzYjVPaEduR1BYVkttTzBmTDB0QllHWHVheklIQjhtR1hP?=
 =?utf-8?B?RjRUWi9NdXNVN3RmZkh4TW92cTRWamQwVlZBcm5iUmZ6dGdVVVhLd3JwbEFk?=
 =?utf-8?B?MmNCYUlYcVdzMldENXVYZ2REVWtVQjdjS0NUNXBTTmVGNVNtTCt4c2xtN3A2?=
 =?utf-8?B?emV5Ymp6RWEvTVhrQWdVckN2V09SUForSGZUZ2hnUGZ2TGQ3T0ZtWWp1NThJ?=
 =?utf-8?B?eGl6Q3JRTmFBbmtVM1IvK2pUekhzTGcweWQyNzE2NjdIVnlmRlBmQm5zQWNJ?=
 =?utf-8?B?R050TXBBcUtUZ0dGYUhUTnNOSmNid2lUV3hJVUJjTTc0YzJrZ1dXUVp1MzVE?=
 =?utf-8?B?enZiTHdYVUl6elRjYVNrQ1pxMTVnTy9IdDV2YTJWdXUwOG9jUEZIdllycGZo?=
 =?utf-8?B?bFdzZ1MzaVZPS2dpZ3ZoazhUNlAvQXVhYXRJWEd2RVI0dFBVZWNBZkw2Z09n?=
 =?utf-8?B?dlhjV1VyS2daMEtYd0ZLcjBGM2lvbm5UQXdwMk1Ya0pMQUxzM1B3STllTlJE?=
 =?utf-8?B?d0FXcVpPdS84L2hKeXNmS2pqY3NEcGM0M3Q2blBCcEY3bGh2R3ZVVjF5Q2th?=
 =?utf-8?B?SmRGaDFFaTl5amZ0UzlmMjMwVytNVEhBOXpRNExKa2tzVDhWT0RsRjBzblpG?=
 =?utf-8?B?bjdXVjV6NXBtRTJoenkxNWdHNVdwS0R4YjhWaS9maVN2dmdaQzBLWlN5Nnpp?=
 =?utf-8?B?K0ZsaUh2RXBsTC9ldldhM25aNkxjVkwvNzEzeFhIempWbTlISjIrcm1rRzgx?=
 =?utf-8?B?ZlNEOHZnOWt4YldjTkNLOGZUU2preG5RSjd5Rkp3U2Q1Vjc1NjV1dGNsSjQv?=
 =?utf-8?B?Z1hkM3dwZUtCbGlUTGJ0STVZaGJENlVBUHRpWm56TXJ1T1dYSFJUWlU5MDFW?=
 =?utf-8?B?QXFIbnFNZVhTMElnc2xWVlBOU1dGbWZycmNOaXlKY2NCZU1ibk9aN2lPVVBj?=
 =?utf-8?B?a3hkWjRHbk5iU28rZWN3YkJoVklvU204V2UzV2lnL2lya2dNR29iMWs4bjB0?=
 =?utf-8?B?akEzSDhhcTAvQUhHRVFRYlZTWm1icXZ1MVpVSXlaSVh3UzZiaEFoWmxUQ2lB?=
 =?utf-8?B?anVtWFJjemI0TXdKakhJQkZIM3BnRHB0NHg1M3VDc0dHNkE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2024 22:19:25.4826
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb19493-eb34-47ad-a7be-08dcfeb112aa
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7359

On 2024-11-02 13:25, Daniel P. Smith wrote:
> Add an address field, cmdline_pa, to struct boot_module to hold the address of
> the string field from struct mod.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 22:46:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 22:46:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831391.1246681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8onK-00038i-SY; Wed, 06 Nov 2024 22:46:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831391.1246681; Wed, 06 Nov 2024 22:46: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 1t8onK-00038b-P2; Wed, 06 Nov 2024 22:46:34 +0000
Received: by outflank-mailman (input) for mailman id 831391;
 Wed, 06 Nov 2024 22:46: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8onI-00038V-PL
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 22:46:32 +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 f4bd067a-9c90-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 23:46:27 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4316a44d1bbso2956315e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 14:46:27 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6b2d13sm37631225e9.12.2024.11.06.14.46.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 14:46: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: f4bd067a-9c90-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC13bTEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY0YmQwNjdhLTljOTAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTMzMTg3LjE0ODg4Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730933186; x=1731537986; 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=5WjcH9LsZd4f+cNUlGoEXrtphxMziOEhEaYMGYoVdBk=;
        b=OXtBGypGcp5f0CZUJCjcIiQH0piejnRxHru9sfS0HX58nr7Us+NhITqL8wgmwsg3zJ
         ykBV6UbRBJFgx/N2NSU+BMIz2KkIYWjieH+TYtQh8Wy4WjTuSWzvcUNT0qRg7zaLgcOE
         AJ1riaaFY2XXL5xsUAEJB/CZm7/u92OUZAjHU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730933186; x=1731537986;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5WjcH9LsZd4f+cNUlGoEXrtphxMziOEhEaYMGYoVdBk=;
        b=JUCrADFVxioohX6e5xpLQsDuAywmr1I1yYMn5w2u24J7RRkfvot6bzkcUsWCEDfkZC
         7wUjpHSmlV2ZQQdImc0SPvcUotq8UQkl5M5ahMwvLUV4OFw+T53BvvXYG6G82Gi6MBNT
         tcOrCHPqf4Q6wqk1DWzsE54dvUIYIR7nSW9bF/AbQZZD+QhsKTwhncnMPyYadyt8OeGC
         ig+JytjZ8ZdH68SMmJeWroZiw2tYceGrBuJSB8mJj6uYAMeGcbl9q6gM0o3V0kPjDLbd
         C0aRl6p7G08jTC8CFq9jjVe5a4d1ncGzz5wi73vWKlSrVYQHv0NEVCFOdacd9f64uZKO
         zzxw==
X-Forwarded-Encrypted: i=1; AJvYcCXzqARl/vcp8HbOlYmvX8yEA9Kjshb15R1ZUgr51tyb3dfn79ZJDGGcKTOzcgID/huq5eaSF4TnIwg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxe09E0bvbhl+Aya0KUE/lauGNADd2dI07JoaQuRuzSWabtXZ9j
	LizJ5Ffbh+tMWh9qyZeFZPEZrBPOBJLIfExrioVuNAgHiI6NsefwRDB5U9RhE/o=
X-Google-Smtp-Source: AGHT+IHuq5hH2Jv9TtJrACc44EDHadDm5b3UFEojs1S3B3DgcF6ML4hehyGZ5Q0jWV2u9mFrMnZWiQ==
X-Received: by 2002:a05:600c:511f:b0:42c:b037:5f9d with SMTP id 5b1f17b1804b1-4327b6f466amr231576485e9.3.1730933186290;
        Wed, 06 Nov 2024 14:46:26 -0800 (PST)
Message-ID: <f592170a-6cb3-4bfc-9486-2253a6443e33@citrix.com>
Date: Wed, 6 Nov 2024 22:46:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 04/12] x86/boot: introduce module release
To: Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-5-dpsmith@apertussolutions.com>
 <773dbe75-d1d3-41ea-8ff7-c031e0e9a920@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <773dbe75-d1d3-41ea-8ff7-c031e0e9a920@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 10:16 pm, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> @@ -2122,6 +2152,11 @@ void asmlinkage __init noreturn __start_xen(void)
>> Â Â Â Â Â  if ( !dom0 )
>> Â Â Â Â Â Â Â Â Â  panic("Could not set up DOM0 guest OS\n");
>> Â  +Â Â Â  /* Check and warn if any modules did not get released */
>> +Â Â Â  for ( i = 0; i < bi->nr_modules; i++ )
>> +Â Â Â Â Â Â Â  if ( !bi->mods[i].released )
>> +Â Â Â Â Â Â Â Â Â Â Â  printk(XENLOG_ERR "Boot module %d not released, memory
>> leaked", i);
>> +
>
> Why not release the memory here instead of leaking it?
>
> I feel like the corner case of mapping the dom0 initrd is leading to
> this manual approach or releasing modules individually.Â  That logic
> then has to be spread around.Â  discard_initial_images() kept the logic
> centralized.Â  Maybe just replace the mod_end == 0 special case with a
> "don't release me" flag that is checked in discard_initial_images()?

I've been conflicted on this for ages, but I agree.

There are many wonky things with the current arrangement.

First(ish), discard_initial_images() should be named
discard_boot_modules() (if it's saying a separate function).

Second, the individual dom0_build.c's should not be calling this
directly.Â  They're both right at the end of construction, so it would
make far more sense for __start_xen() to do this after create_dom0().Â 
That also avoids needing to export the function.

And yes, as Jason says, the "initrd mapped instead of copied" is a weird
corner case, and the other path manually releasing and also saying
"don't free" is just pointless complexity.Â  I do like the idea of a
"dont_free" flag.

Thoughts?

I know this would be moving back to a more v7-like approach, but I think
the end approach is cleaner.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 22:56:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 22:56:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831398.1246691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8oxH-0004vK-Ot; Wed, 06 Nov 2024 22:56:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831398.1246691; Wed, 06 Nov 2024 22:56: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 1t8oxH-0004vD-Ls; Wed, 06 Nov 2024 22:56:51 +0000
Received: by outflank-mailman (input) for mailman id 831398;
 Wed, 06 Nov 2024 22:56: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=4He5=SB=ilande.co.uk=mark.cave-ayland@srs-se1.protection.inumbo.net>)
 id 1t8oxF-0004v7-Ul
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 22:56:50 +0000
Received: from mail.ilande.co.uk (mail.ilande.co.uk [2001:41c9:1:41f::167])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62dc95e7-9c92-11ef-a0c6-8be0dac302b0;
 Wed, 06 Nov 2024 23:56:42 +0100 (CET)
Received: from [2a00:23c4:8bb8:f600:5c84:8fbb:e5d9:991a]
 by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>)
 id 1t8owe-0005r0-2z; Wed, 06 Nov 2024 22:56: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: 62dc95e7-9c92-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMDE6NDFjOToxOjQxZjo6MTY3IiwiaGVsbyI6Im1haWwuaWxhbmRlLmNvLnVrIn0=
X-Custom-Transaction: eyJpZCI6IjYyZGM5NWU3LTljOTItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTMzODAyLjI1NjQzOSwic2VuZGVyIjoibWFyay5jYXZlLWF5bGFuZEBpbGFuZGUuY28udWsiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:Content-Type:
	In-Reply-To:From:References:Cc:To:MIME-Version:Date:Message-ID:Sender:
	Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
	:Resent-To:Resent-Cc:Resent-Message-ID;
	bh=vPYua6EHEWEq/K0JkQ0LEICGjtmS8znNO+vD/x/Hz6M=; b=yi3a4QFJbaHjJMAE1MMOtblf/B
	jBBQW5JztSPJo8FiHX2FETYDSdv11VTzfszZoHFXbwuZZRROlVbdFnLZ685oW3kS0fjy1G/6I3KDl
	Mn3Br/PA51aCDXvbk3ys1SUKG9/bL332iOKhgI2RNbQPuvxeEIcFdggDUur96WcWkNlEzj31a+/2I
	S76L5YDZPRXhtYe8+fWlXdeaPcF6NQryMrk+eDmgg/zj4dKUb3aDA5zYp93ugcZk7W+qrFVZWZWHd
	Lh6JvfDbz1zVCtVdajaMNXuUF+rzGkbu+cSNjQMvhrOcQeS3DMdhA8U6p42MX+FbedI5z8AcwVmO0
	98Iq27ZhwmE9jJ7A3uWHTpT59cffbshRY9r6TOfoNL+pkADvb9MuU8NuPx9Ki+5HGkGTbjoUZqDML
	DZ/27gAVeUgRbUJBsZBzGFZKOZPUkWA3IoI4/GBfh6g1M12gNLo6Z2WlJUxBK2tKv2OynVFeItbon
	Ek5Dy52QdURAhixRShSQbYFK1rISHm2tXNyi9waAvsWkYx5P0OyvI0PSunMxIzF75/MJcMfUBqZWj
	tXPK7qYlV2l1yPMmsILBEgHJoNXrdzuXWAojEJSL2Wyht/SVgJ7bzA16YAWy4USrldY6C5p0wdmI3
	mWTS5vGl63k5/Yj/SvY2FSBHxGGgcgRtjrbfyXxQI=;
Message-ID: <3b172279-ee99-4a04-bf6e-fdf6511215d4@ilande.co.uk>
Date: Wed, 6 Nov 2024 22:56:30 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 qemu-devel@nongnu.org
Cc: Artyom Tarasenko <atar4qemu@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Richard Henderson <richard.henderson@linaro.org>,
 xen-devel@lists.xenproject.org, Paolo Bonzini <pbonzini@redhat.com>,
 Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
 "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
 Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
 Anthony PERARD <anthony@xenproject.org>,
 Eduardo Habkost <eduardo@habkost.net>, Thomas Huth <huth@tuxfamily.org>,
 Jia Liu <proljc@gmail.com>, Stafford Horne <shorne@gmail.com>,
 Paul Durrant <paul@xen.org>, "Michael S. Tsirkin" <mst@redhat.com>
References: <20241106184612.71897-1-philmd@linaro.org>
 <20241106184612.71897-6-philmd@linaro.org>
Content-Language: en-US
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Autocrypt: addr=mark.cave-ayland@ilande.co.uk; keydata=
 xsBNBFQJuzwBCADAYvxrwUh1p/PvUlNFwKosVtVHHplgWi5p29t58QlOUkceZG0DBYSNqk93
 3JzBTbtd4JfFcSupo6MNNOrCzdCbCjZ64ik8ycaUOSzK2tKbeQLEXzXoaDL1Y7vuVO7nL9bG
 E5Ru3wkhCFc7SkoypIoAUqz8EtiB6T89/D9TDEyjdXUacc53R5gu8wEWiMg5MQQuGwzbQy9n
 PFI+mXC7AaEUqBVc2lBQVpAYXkN0EyqNNT12UfDLdxaxaFpUAE2pCa2LTyo5vn5hEW+i3VdN
 PkmjyPvL6DdY03fvC01PyY8zaw+UI94QqjlrDisHpUH40IUPpC/NB0LwzL2aQOMkzT2NABEB
 AAHNME1hcmsgQ2F2ZS1BeWxhbmQgPG1hcmsuY2F2ZS1heWxhbmRAaWxhbmRlLmNvLnVrPsLA
 eAQTAQIAIgUCVAm7PAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQW8LFb64PMh9f
 NAgAuc3ObOEY8NbZko72AGrg2tWKdybcMVITxmcor4hb9155o/OWcA4IDbeATR6cfiDL/oxU
 mcmtXVgPqOwtW3NYAKr5g/FrZZ3uluQ2mtNYAyTFeALy8YF7N3yhs7LOcpbFP7tEbkSzoXNG
 z8iYMiYtKwttt40WaheWuRs0ZOLbs6yoczZBDhna3Nj0LA3GpeJKlaV03O4umjKJgACP1c/q
 T2Pkg+FCBHHFP454+waqojHp4OCBo6HyK+8I4wJRa9Z0EFqXIu8lTDYoggeX0Xd6bWeCFHK3
 DhD0/Xi/kegSW33unsp8oVcM4kcFxTkpBgj39dB4KwAUznhTJR0zUHf63M7ATQRUCbs8AQgA
 y7kyevA4bpetM/EjtuqQX4U05MBhEz/2SFkX6IaGtTG2NNw5wbcAfhOIuNNBYbw6ExuaJ3um
 2uLseHnudmvN4VSJ5Hfbd8rhqoMmmO71szgT/ZD9MEe2KHzBdmhmhxJdp+zQNivy215j6H27
 14mbC2dia7ktwP1rxPIX1OOfQwPuqlkmYPuVwZP19S4EYnCELOrnJ0m56tZLn5Zj+1jZX9Co
 YbNLMa28qsktYJ4oU4jtn6V79H+/zpERZAHmH40IRXdR3hA+Ye7iC/ZpWzT2VSDlPbGY9Yja
 Sp7w2347L5G+LLbAfaVoejHlfy/msPeehUcuKjAdBLoEhSPYzzdvEQARAQABwsBfBBgBAgAJ
 BQJUCbs8AhsMAAoJEFvCxW+uDzIfabYIAJXmBepHJpvCPiMNEQJNJ2ZSzSjhic84LTMWMbJ+
 opQgr5cb8SPQyyb508fc8b4uD8ejlF/cdbbBNktp3BXsHlO5BrmcABgxSP8HYYNsX0n9kERv
 NMToU0oiBuAaX7O/0K9+BW+3+PGMwiu5ml0cwDqljxfVN0dUBZnQ8kZpLsY+WDrIHmQWjtH+
 Ir6VauZs5Gp25XLrL6bh/SL8aK0BX6y79m5nhfKI1/6qtzHAjtMAjqy8ChPvOqVVVqmGUzFg
 KPsrrIoklWcYHXPyMLj9afispPVR8e0tMKvxzFBWzrWX1mzljbBlnV2n8BIwVXWNbgwpHSsj
 imgcU9TTGC5qd9g=
In-Reply-To: <20241106184612.71897-6-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-SA-Exim-Connect-IP: 2a00:23c4:8bb8:f600:5c84:8fbb:e5d9:991a
X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
	mail.default.ilande.bv.iomart.io
X-Spam-Level: 
X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED,BAYES_00,
	URIBL_SBL_A autolearn=no autolearn_force=no version=3.4.2
Subject: Re: [PATCH 5/5] hw/sparc: Mark devices as big-endian
X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000)
X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk)

On 06/11/2024 18:46, Philippe Mathieu-DaudÃ© wrote:

> These devices are only used by the SPARC targets, which are
> only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
> definition expand to DEVICE_BIG_ENDIAN (besides, the
> DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
> using DEVICE_BIG_ENDIAN.
> 
> Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
> ---
>   hw/sparc/sun4m_iommu.c | 2 +-
>   hw/sparc64/sun4u.c     | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/sparc/sun4m_iommu.c b/hw/sparc/sun4m_iommu.c
> index 6f765e97e4..4486508e3b 100644
> --- a/hw/sparc/sun4m_iommu.c
> +++ b/hw/sparc/sun4m_iommu.c
> @@ -238,7 +238,7 @@ static void iommu_mem_write(void *opaque, hwaddr addr,
>   static const MemoryRegionOps iommu_mem_ops = {
>       .read = iommu_mem_read,
>       .write = iommu_mem_write,
> -    .endianness = DEVICE_NATIVE_ENDIAN,
> +    .endianness = DEVICE_BIG_ENDIAN,
>       .valid = {
>           .min_access_size = 4,
>           .max_access_size = 4,
> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index 541c7f74fa..9d7aebf632 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -254,7 +254,7 @@ static void power_mem_write(void *opaque, hwaddr addr,
>   static const MemoryRegionOps power_mem_ops = {
>       .read = power_mem_read,
>       .write = power_mem_write,
> -    .endianness = DEVICE_NATIVE_ENDIAN,
> +    .endianness = DEVICE_BIG_ENDIAN,
>       .valid = {
>           .min_access_size = 4,
>           .max_access_size = 4,

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.



From xen-devel-bounces@lists.xenproject.org Wed Nov 06 23:00:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 23:00:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831404.1246700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8p1A-0006Qi-6s; Wed, 06 Nov 2024 23:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831404.1246700; Wed, 06 Nov 2024 23:00: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 1t8p1A-0006Qb-4K; Wed, 06 Nov 2024 23:00:52 +0000
Received: by outflank-mailman (input) for mailman id 831404;
 Wed, 06 Nov 2024 23:00: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8p19-0006QV-Iz
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 23:00:51 +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 f65f1865-9c92-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 00:00:48 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-37d70df0b1aso161061f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 15:00:48 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432b0562642sm2404865e9.21.2024.11.06.15.00.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 15:00: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: f65f1865-9c92-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmUiLCJoZWxvIjoibWFpbC13cjEteDQyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY2NWYxODY1LTljOTItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTM0MDQ4Ljc2MTA0MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730934048; x=1731538848; 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=WOGjgEIaCJQ1bsU3lAnO9w75gPJTKSbLZ5ekoN35fg0=;
        b=SvPWEkM7LTP1eYN6uBBl7wQ/aQfX3klpFIdR8LniuSN8MLfDVha5LRAfVQ8ycyd4AS
         eLrDpbQuwzXmLRrKkOhgpXJUC/xwEJ08+Sw0He5XGwAM4S5vOwBW6VrVh8+rG+yeqA1H
         nhPZny2o0VOy9YQnR5fuPEMmRe/cuZo7DgA6Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730934048; x=1731538848;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WOGjgEIaCJQ1bsU3lAnO9w75gPJTKSbLZ5ekoN35fg0=;
        b=l+0kF+OB+SeaALGFtque3YmSx1zjPZ1iPUCgHv2wCF7r6ZIRlHUpJNA73wi81fRj/o
         AfrDHzZ8Z/8nnMtuyI/D4uSwT3wbPusmWzgrsTz7QKxQ2e1SMp871RYFavfUvwo3MOlt
         mo0ys2n9c+Zq3Lww5kmZV4q8Qd++VKE/1h5NTMG69Rn2OsTvlL6OIFvSOAhqbHzs0CBl
         AL6fPF9Vy3eouXIVtU8aR+UUSVn1x4RIYwW2Km2y64Wo/mg+d7Ac9JRD+mkVMEpcxXsu
         PUF0jZWPoeCnGuMVUL4f9QI7TJ3Yw8XPrxW5IILAICdbvayeWaJgTrbLvK+Cui+S/leC
         UItA==
X-Forwarded-Encrypted: i=1; AJvYcCX46vNAlMXhK7kNWLLJ82pSQxAZ6l3rasMYbDClrW6eJtq5QUYwQPLNqvCpaAwnGo4qQbpV94Fn9Ko=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJbkLnPU0eP9hnt4YK8iR0SFpez2fynsKAva3w6w8ezT0NW3M7
	qKxiiqKRR3AyG9sgeaTofVrBvMpoeCFdaiKwg71Yt7YZlT8LwSqkLhkx4c6PnsA=
X-Google-Smtp-Source: AGHT+IE1PJE2AuToes+ZR4LQh8WruIEyhhYRlDC+qUmsPj9vyjpaB/0rQZ6h62LoVA/CrUs91o6WQQ==
X-Received: by 2002:a5d:4106:0:b0:37c:d558:a931 with SMTP id ffacd0b85a97d-3806115902emr28159744f8f.31.1730934047972;
        Wed, 06 Nov 2024 15:00:47 -0800 (PST)
Message-ID: <113c48b9-7cbf-43e0-b351-ab7f14f06e63@citrix.com>
Date: Wed, 6 Nov 2024 23:00:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86/boot: move headroom to boot modules
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-6-dpsmith@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241102172551.17233-6-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
> index b1549d8c8f93..e337baa905f0 100644
> --- a/xen/arch/x86/include/asm/bootinfo.h
> +++ b/xen/arch/x86/include/asm/bootinfo.h
> @@ -30,6 +30,28 @@ struct boot_module {
>  
>      enum bootmod_type type;
>  
> +    /*
> +     * A boot module may need decompressing by Xen.  Headroom is an estimate of
> +     * the additional space required to decompress the module.
> +     *
> +     * Headroom is accounted for at the start of the module.  Decompressing is
> +     * done in-place with input=start, output=start-headroom, expecting the
> +     * pointers to become equal (give or take some rounding) when decompression
> +     * is complete.
> +     *
> +     * Memory layout at boot:
> +     *
> +     *               start ----+
> +     *                         v
> +     *   |<-----headroom------>|<------size------->|
> +     *                         +-------------------+
> +     *                         | Compressed Module |
> +     *   +---------------------+-------------------+
> +     *   |           Decompressed Module           |
> +     *   +-----------------------------------------+
> +     */
> +    unsigned long headroom;
> +
>      /*
>       * Module State Flags:
>       *   relocated: indicates module has been relocated in memory.

By the end of the series, this ends very poorly laid out.

It works a whole lot better when putting the bitfields between type and
headroom.

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 23:04:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 23:04:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831415.1246710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8p4J-000731-O6; Wed, 06 Nov 2024 23:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831415.1246710; Wed, 06 Nov 2024 23: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 1t8p4J-00072u-LM; Wed, 06 Nov 2024 23:04:07 +0000
Received: by outflank-mailman (input) for mailman id 831415;
 Wed, 06 Nov 2024 23: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=wNbQ=SB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8p4I-00072m-Bp
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 23:04:06 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a1ae6ea-9c93-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 00:04:02 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-539f84907caso266899e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 15:04:02 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed97fe6csm34716f8f.31.2024.11.06.15.04.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 15:04: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: 6a1ae6ea-9c93-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzUiLCJoZWxvIjoibWFpbC1sZjEteDEzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhMWFlNmVhLTljOTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTM0MjQyLjc2NjA0NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730934242; x=1731539042; 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=aE3WDdVyWqbnaNEgU1H5qvfSbMs21cXNuTF3st29ZjE=;
        b=FF5+8J0+3Vu7PqIUAih8kbURSYxztbdlGPmuw0u84ko2+WjXd2MvwfsTITCqDJVnOx
         YdT603X4VlSV1H9pwUl2CIIpwLXjtuPfi75T7Km44vA1r62QOFokWsCy/zX1sIRwW9Np
         L7oRL2LpZ9m1OdD2dbyAN1tOzMuBvCDyDQF88=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730934242; x=1731539042;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aE3WDdVyWqbnaNEgU1H5qvfSbMs21cXNuTF3st29ZjE=;
        b=qoNAMyzpFBn15ZvLsJp2UTrLz+Y75XflnSBLhCgHT6EMkroe/wz7vcS42qOdbdQUET
         oD5BVvzrQvtUpT3QengWy7ezg5QZztWXuNg0L0CLRsnJypqdogwUQxNlMYjZ5qwi6HAW
         biptczNaA3gYcE+1m3jtYbfkn7QTvatuQT9zU0MnEgy8UhY8xITPqLhU9ns59xEWR8XX
         lt7BeL0xpvvPGLx7eZZ8H/nPsIrDuu1h2CTmouaOu1jNP+gK7kl59Tb04hmdeVGoB2Se
         bVVeIDO4nz0fCy8gpQFdfrTK79nkHbJEBsED2Kgovuwa9S+9ALv5Zv/DewPkxQ5jyKCL
         oMXg==
X-Forwarded-Encrypted: i=1; AJvYcCXwS4N/uKldP4NGrKMfyis0xzM7Wgyg/EjPP+5N8Q8bet6qe5poIwU+rL1FpyHWrxCNtw5UGAM7HPE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyjHgZNrOX0JT7fGTa5zoBgr5B+M/qgvxg9eNJW+rImfD7R4LS
	xnCendbjDQV/kpkzbyMEY92FP09h2pu8g1gpopfr4sHDrYN2XoLGzIQ/NzWTGPk=
X-Google-Smtp-Source: AGHT+IF51jiQwVN+VSQwsOC7R4VspcGP04O2tLzLOx1Nz10uaBeah/gAeqTKfiQXs063mj15CqgKng==
X-Received: by 2002:a05:6512:3ca7:b0:539:e873:6e2 with SMTP id 2adb3069b0e04-53b348ec22cmr17477190e87.8.1730934242071;
        Wed, 06 Nov 2024 15:04:02 -0800 (PST)
Message-ID: <a924211f-4a2e-44c1-9e06-efde05c189c8@citrix.com>
Date: Wed, 6 Nov 2024 23:04:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] x86/boot: relocate kextra into boot info
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-7-dpsmith@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241102172551.17233-7-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
> Move kextra into struct boot_info, thus no longer needed to be passed as a
> parameter to create_dom0.
>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Technically "..., so it can be removed as a distinct parameter to
create_dom0()".

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 06 23:06:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Nov 2024 23:06:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831420.1246721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8p6Y-0007bj-40; Wed, 06 Nov 2024 23:06:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831420.1246721; Wed, 06 Nov 2024 23:06: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 1t8p6Y-0007bc-0q; Wed, 06 Nov 2024 23:06:26 +0000
Received: by outflank-mailman (input) for mailman id 831420;
 Wed, 06 Nov 2024 23:06: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=SEZf=SB=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t8p6W-0007bW-QI
 for xen-devel@lists.xenproject.org; Wed, 06 Nov 2024 23:06:25 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20622.outbound.protection.outlook.com
 [2a01:111:f403:2412::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b94eed8a-9c93-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 00:06:17 +0100 (CET)
Received: from BN0PR02CA0017.namprd02.prod.outlook.com (2603:10b6:408:e4::22)
 by SN7PR12MB8819.namprd12.prod.outlook.com (2603:10b6:806:32a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.29; Wed, 6 Nov
 2024 23:06:11 +0000
Received: from BN3PEPF0000B078.namprd04.prod.outlook.com
 (2603:10b6:408:e4:cafe::e9) by BN0PR02CA0017.outlook.office365.com
 (2603:10b6:408:e4::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Wed, 6 Nov 2024 23:06:11 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Wed, 6 Nov 2024 23:06:11 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 6 Nov
 2024 17:06:11 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Nov
 2024 17:06:10 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Nov 2024 17:06: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: b94eed8a-9c93-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjIyIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImI5NGVlZDhhLTljOTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTM0Mzc3LjA4MzcwMywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mPqMr8a8aTIOI7c9yE9zclxFMDHi0+ELA0rKhku7osgNuOmPYhLwMVTiuiN3R907kUczwEH8/W99cVXAI91GT7Vi+t7lpYGrIeHzf0JdlsT9h6Qy2aURktF3pMWXAMbk85q8i07x1xOo7AqTnv6IS9kg6zrU7+tp8T+a/jz+DAnCXZDm3Nup/lcTvHKOP/Nee0xKLEv4THrnWYftQl27w+PwfuDO7foMZoiPGID52mHfeTb2XoSnuFdshw+6fgDlDYjqkIRq7OViLBT9l31KlkUGXdlzcxK4Kr6QVanSLWcbhLa62wv9vqHOKPcUMlYlRsQlwTVGxpZUORfP5U0Jlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5iai/JAWZ6mHE2y4PmwDHPIH979Wi3idCSHmAzSPwNQ=;
 b=Xv+ItW+HZI2b+Ppf8c8uxNJbmrP6hjeGkNHTJtyvtvS2d7b7UhM0D3GCbDzl6yCCNzs398tP2DCcR8coRbrJwXjV1K54CPZ16b0qbzTbd0lg2toDIa3jlrJwOr6MhB+1Vwvk28EHOQu7K6DfW9LsaylTJU0DKYI66HZA6C4406eP5uYndnYTYB3JS7BWAAUak8rxzXnE3N0o7O0kJV8fMscCT4XcZoEDPuXHhnqLlAwXus2D7GnMUlxKxAmw5ZedYzG8xXSfeyt4LU73xi9TRWbT/4HfsbBGaVl4Bry08T9MfFS7evaTicoB7EcX5QWHX25JcKd6o0NCxrU9tT9Piw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=5iai/JAWZ6mHE2y4PmwDHPIH979Wi3idCSHmAzSPwNQ=;
 b=wzv3XplC2Xrjg3+OgHooTDV4+TfVYfRdsD2jcc4ADAHfjuZ6JmZIu+QO7moYw6wvnjD0t74hdJ905sCfZts+5jrlABwVHb7sKqcQlIaArsp5VWtLphmHkFcm9M1xfPp1Y2XBAyYfmvKkGw/BTEgZB74XQkkMavD60fB5GGOBTAQ=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <990c8955-ae4a-449f-a40c-7c15faf61154@amd.com>
Date: Wed, 6 Nov 2024 18:06:06 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/boot: convert domain construction to use boot
 info
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-9-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241102172551.17233-9-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B078:EE_|SN7PR12MB8819:EE_
X-MS-Office365-Filtering-Correlation-Id: 643767e3-8d77-48f0-5b42-08dcfeb79b2a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bFlJWHNDS1lZeXcwVVFHbStQeWViTE9tcGl1MlJYVlJxR1c3QkhBOFhMTHZK?=
 =?utf-8?B?dkR2ZFFGTURJUjc2blY5b0NESmdXQTlvMjJTa0FGQ0ZUVFVQWDZ4WkZiRkxV?=
 =?utf-8?B?and4YVkrWFBwRUtYbVZ6SysvUHNrTHNnbXpUeHZtZlZDRVpoR1NxVFJWTDV1?=
 =?utf-8?B?U3JSZGF4Z2JYcTgvdno4OTNVd3FZdHhIVU4rdFdseUJTT0JVY0toYlFWUWxB?=
 =?utf-8?B?VFE2MUdTZTMyczRSUWIxdU9CdFFJT1h4ZXJHN3VldWlMczJKM0ZBczVXTVFF?=
 =?utf-8?B?QWJTdzZBV1htb3ZuQ1VoWmpZNndMMlBoSHdwL2F2TDQ4N1hkTW9oa2JGWHZw?=
 =?utf-8?B?ays0NzZzbkxBUFNKODZYT2c5d1NuK2pDanpjQ1RlN2xNeUpIR1BTeEFlVitL?=
 =?utf-8?B?RExweWhTNXRXbUpXdzRWcEx1VWY5R2o1REdwd0UrMzBjWVd5S0pENkd4QTNW?=
 =?utf-8?B?L2hZdGxzdDI0TW54aG5FTHdmQzFWaFNpbUpxSmlsVXE3ekEzSWtnUjk0eEtp?=
 =?utf-8?B?dEJLQ1kwS3laK05NTWptSEI2eWpCVm54bEdWTzdrU1lxUmExRk9EWUFJWlhP?=
 =?utf-8?B?ZU1jWW5SbVVwbUhqVVRZemVnYzRvd0ZVTHBEdkRzSVRjVXZ0MmFvQlFlbmNT?=
 =?utf-8?B?UjBYL05WVzJlUjZnRTViOWljMFczRHNTZGdXL3UzV3BkK3U3bm9FZExhT2gr?=
 =?utf-8?B?SVVHZHNvV2NoOTgrM0JsUjAwdk91QmJzRHdhYjZkeFk1VVQ3cStuVlNFQW5M?=
 =?utf-8?B?WHdVRHFKVnA5UUlXVkJ1N2xzZlBqYTljeHFPV0J6bmltcHhaRm1jbGpFWWZt?=
 =?utf-8?B?SUpJT3U5djlCWXl1R1VTUWQ2K2h6aTZzM1lxRWlhelNSNkdQOHVja0VXRGNk?=
 =?utf-8?B?c0pSVDR5cDM4WEQvZ1ZXVXN1UlNac3NXMVJaQTFHVnQ5MktCSE9YZHlaQTBr?=
 =?utf-8?B?RjBKK1FjTitOMjdSd2UvLzVpVEhLUFovR0Rad1ZIR3dvOXdkS3RpclpWeElE?=
 =?utf-8?B?NnB6eUYzWFdPYWVHM2ZBRWt4TFQxR2g0VjVIaXNVRk93MXJoU3M4TXUwTmdZ?=
 =?utf-8?B?Q2FrL3ZLRmFVK0txM2RpR0dKOEJ1MFJGTlBwdnlYcHh3TjBxWE90aVQ2azNE?=
 =?utf-8?B?dTdhcUh5c0ZJWTZHaVMvNG1lajZncnQwckZEQWRJaERwRkNVVFZoYVV0ZExJ?=
 =?utf-8?B?Mm8yc3BOQzY0Q0JCaGpxeFJnSEYxQlViMlhSMmQ5SEdHRDVTc2sxNTUwOGxh?=
 =?utf-8?B?VHd1TWhjSTFkK1l5dmJnNE1BMmVXN2dKWWZkWkVOVkl6cWNENWNzamFtY29z?=
 =?utf-8?B?dVBiRVJ1QTF2UjVnYThRNmJZeG5JejlHalZ6Skkza05nSTloNDdNV2g5dkNY?=
 =?utf-8?B?eUsrK2lSanI3R2tybC94SGFHdGpUb0xhSVptYnQwZ0lXRjZOckdCZ3g3Z1d3?=
 =?utf-8?B?dldlVDdhUm1pUjBnOWc1SEk3ckk3WVUxTzVMaHhxQXBXTGg5YUw0RHd6V0pR?=
 =?utf-8?B?UHA2Q2lSUUVad3dkZHJXWGZjQTYwTnRwS210VkJINFRhZUN6RkJqYWI2NGlq?=
 =?utf-8?B?QlAzMU1ZUnRoY0hGSkNvMTZKNUpGZituQllkUnVwZVQ0RGtuOFNiRERPWDJX?=
 =?utf-8?B?M2k3VXZEcWE0UElQOHZEYzdsWFF1YVd5OE03V0I3aHY5dGZqb1lGbXBpUkNh?=
 =?utf-8?B?U0JsV1JVaG5JMGtRQTY1SGlZU1F1ajZwVFpoZHIvR2FpQ3Z2YXJuMWFZWmpI?=
 =?utf-8?B?OTFrcC94MGgwSFdYY1VualRoZXEwQXhVdVZvOGNvUVVONHdza2lTZVpPbEVI?=
 =?utf-8?B?UnlndjJFSG5BNko2M2Mrek1ieUg4aElFVnh6ODdMRWRNTk4xV0tDV2JMOStM?=
 =?utf-8?B?UXQ5a084N0ZtMmxQUFVnOHNWeVduOVFFQ3k0bzY2ZG5Db1E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2024 23:06:11.4701
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 643767e3-8d77-48f0-5b42-08dcfeb79b2a
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=[SATLEXMB03.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: SN7PR12MB8819

On 2024-11-02 13:25, Daniel P. Smith wrote:
> With all the components used to construct dom0 encapsulated in struct boot_info
> and struct boot_module, it is no longer necessary to pass all them as
> parameters down the domain construction call chain. Change the parameter list
> to pass the struct boot_info instance and the struct domain reference.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v5:
> - renamed from "x86/boot: convert create_dom0 to use boot info"
> 
> Changes since v5:
> - change headroom back to unsigned long
> - make mod_idx unsigned int
> ---
>   xen/arch/x86/dom0_build.c             |  9 ++--
>   xen/arch/x86/hvm/dom0_build.c         | 49 +++++++++++++---------
>   xen/arch/x86/include/asm/dom0_build.h | 13 ++----
>   xen/arch/x86/include/asm/setup.h      |  7 ++--
>   xen/arch/x86/pv/dom0_build.c          | 59 ++++++++++++++++-----------
>   xen/arch/x86/setup.c                  | 33 ++++++++-------
>   6 files changed, 95 insertions(+), 75 deletions(-)
> 

> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index a4ac262db463..cd97f94a168a 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c

> @@ -1301,16 +1302,25 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
>       }
>   }
>   
> -int __init dom0_construct_pvh(struct domain *d, const module_t *image,
> -                              unsigned long image_headroom,
> -                              module_t *initrd,
> -                              const char *cmdline)
> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>   {
>       paddr_t entry, start_info;
> +    struct boot_module *image;
> +    struct boot_module *initrd = NULL;
>       int rc;
>   
>       printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
>   
> +    rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
> +    if ( unlikely(rc < 0 || rc > bi->nr_modules) )

Here and ...

> +        panic("Missing kernel boot module for %pd construction\n", d);
> +
> +    image = &bi->mods[rc];
> +
> +    rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
> +    if ( rc > 0 || rc < bi->nr_modules )

... here.  Can we just check rc < bi->nr_modules for validity?  Valid 
modules are 0...nr_modules and not found is MAX_NR_BOOTMODS + 1.  It 
eliminates these unecessary double checks.  This would apply to 04/12 
"x86/boot: introduce module release" as well.

> +        initrd = &bi->mods[rc];
> +
>       if ( is_hardware_domain(d) )
>       {
>           /*


> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index c1f44502a1ac..594874cd8d85 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c

> @@ -374,10 +371,13 @@ static int __init dom0_construct(struct domain *d,
>       unsigned int flush_flags = 0;
>       start_info_t *si;
>       struct vcpu *v = d->vcpu[0];
> -    void *image_base = bootstrap_map(image);
> -    unsigned long image_len = image->mod_end;
> -    void *image_start = image_base + image_headroom;
> -    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
> +    struct boot_module *image;
> +    struct boot_module *initrd = NULL;
> +    void *image_base;
> +    unsigned long image_len;
> +    void *image_start;
> +    unsigned long initrd_len = 0;
> +    const char *cmdline;
>       l4_pgentry_t *l4tab = NULL, *l4start = NULL;
>       l3_pgentry_t *l3tab = NULL, *l3start = NULL;
>       l2_pgentry_t *l2tab = NULL, *l2start = NULL;
> @@ -414,6 +414,23 @@ static int __init dom0_construct(struct domain *d,
>   
>       printk(XENLOG_INFO "*** Building a PV Dom%d ***\n", d->domain_id);
>   
> +    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
> +    if ( unlikely(i < 0 || i > bi->nr_modules) )

Single check here.

> +        panic("Missing kernel boot module for %pd construction\n", d);
> +
> +    image = &bi->mods[i];
> +    image_base = bootstrap_map_bm(image);
> +    image_len = image->mod->mod_end;
> +    image_start = image_base + image->headroom;
> +    cmdline = __va(image->cmdline_pa);
> +
> +    i = first_boot_module_index(bi, BOOTMOD_RAMDISK);
> +    if ( i > 0 || i < bi->nr_modules )
> +    {
> +        initrd = &bi->mods[i];
> +        initrd_len = initrd->mod->mod_end;
> +    }
> +
>       d->max_pages = ~0U;
>   
>       if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
> @@ -613,7 +630,7 @@ static int __init dom0_construct(struct domain *d,
>           initrd_pfn = vinitrd_start ?
>                        (vinitrd_start - v_start) >> PAGE_SHIFT :
>                        domain_tot_pages(d);
> -        initrd_mfn = mfn = initrd->mod_start;
> +        initrd_mfn = mfn = initrd->mod->mod_start;

MISRA doesn't like these assignment chains?

>           count = PFN_UP(initrd_len);
>           if ( d->arch.physaddr_bitsize &&
>                ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)) )
> @@ -628,17 +645,17 @@ static int __init dom0_construct(struct domain *d,
>                       free_domheap_pages(page, order);
>                       page += 1UL << order;
>                   }
> -            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod_start),
> +            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod->mod_start),
>                      initrd_len);
> -            release_module(initrd, true);
> -            initrd->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));
> +            release_boot_module(initrd, true);
> +            initrd->mod->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));

Assignment chain here.

>           }
>           else
>           {
>               while ( count-- )
>                   if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
>                       BUG();
> -            release_module(initrd, false);
> +            release_boot_module(initrd, false);
>           }
>   
>           iommu_memory_setup(d, "initrd", mfn_to_page(_mfn(initrd_mfn)),

> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index aba9df8620ef..d9785acf89b6 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -977,10 +977,7 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
>       return n;
>   }
>   
> -static struct domain *__init create_dom0(const module_t *image,
> -                                         unsigned long headroom,
> -                                         module_t *initrd, const char *kextra,
> -                                         const char *loader)
> +static struct domain *__init create_dom0(struct boot_info *bi)
>   {
>       static char __initdata cmdline[MAX_GUEST_CMDLINE];
>   
> @@ -997,6 +994,14 @@ static struct domain *__init create_dom0(const module_t *image,
>       };
>       struct domain *d;
>       domid_t domid;
> +    struct boot_module *image;
> +    unsigned int idx;
> +
> +    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
> +    if ( unlikely(idx < 0 || idx > bi->nr_modules) )

Single check here please.

Regards,
Jason

> +        panic("Missing kernel boot module for building Dom0\n");
> +
> +    image = &bi->mods[idx];
>   
>       if ( opt_dom0_pvh )
>       {


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 00:15:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 00:15:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831430.1246732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qAg-0000aH-MQ; Thu, 07 Nov 2024 00:14:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831430.1246732; Thu, 07 Nov 2024 00:14: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 1t8qAg-0000aA-IW; Thu, 07 Nov 2024 00:14:46 +0000
Received: by outflank-mailman (input) for mailman id 831430;
 Thu, 07 Nov 2024 00:14: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8qAe-0000a2-QP
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 00:14:44 +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 4780c2be-9c9d-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 01:14:40 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-37d538fe5f2so241058f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 16:14:39 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381eda04136sm128730f8f.97.2024.11.06.16.14.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 16:14: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: 4780c2be-9c9d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzIiLCJoZWxvIjoibWFpbC13cjEteDQzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ3ODBjMmJlLTljOWQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTM4NDgwLjAxODk1NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730938479; x=1731543279; 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=A3IYPChvG9mz1mDcI7O/kOqBHEdLNysE+NFaE6/WO2M=;
        b=Da3x2+qJBwo2pq8FR19GI/eqWob+10Jg0RuCPLer5OPxi+AwQDBqOKogYHD2eurkoi
         3bN9HJpJ7MxnRdVDu9oUM/zsDpLqjjG4rkztxy3IDBdYuu70K+nQLmEW09smgP41FWlH
         LwLUKKKrI+Svkda5Pyk8cInVgbcEB2rHxyR+8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730938479; x=1731543279;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A3IYPChvG9mz1mDcI7O/kOqBHEdLNysE+NFaE6/WO2M=;
        b=MOZs1JPlrD3C9SgGw/VoKpLgn14+Ks1L2i3DtyfeMa93LfzKFTgHNQx2H0B7aTStJm
         U4l6DJUASoAQp5rhrfUlKMKsTwwFdaovpUQ9tV8WfMHbEgHcrVtpzhcADwdn41SN3LCI
         1EOfB/t0m/L+eGjMwGRq9MBPo1AYtOJljCbr78PhtGqDS9JcExyJRPhrky0Ps26eK19E
         co17xB8Mlpv0Ehi2XCp+Ozy3tkzReoCJI8pMZi2/k79j4Egdv4jD3F34mxU3QE43woMb
         kOJsPPjUyFH2jqhV1Wjo+eFpxbSIzH2lY4wG5qvPdSpw6Sp9iL+VEsvt3e84irLi9xL0
         vmAg==
X-Forwarded-Encrypted: i=1; AJvYcCXQ8MTrgrWnIhN/ELjYE9B3UHrD1N20baNGqYFelgSg1R2mFCnx9N/k+13DMz7TzoLtCoKta150jAA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFAo4AxKIWuYegb5zthZc6I1CTqU5xZmW2uQ+XowczuLA1HddP
	81oWPKcrBnOTeqJHH1oWDg9K1w2pLYkdCClMHlKHSdi6KbO0MLrvhjJRkPRhfEM=
X-Google-Smtp-Source: AGHT+IGBiji5BL5OQLWPJh52Xc/BxIH98My5WxsQnX6umd/uYGVimtD4i5XLihJL2HLLGSbI7LMmjQ==
X-Received: by 2002:a05:6000:4213:b0:37d:f4b:b6ab with SMTP id ffacd0b85a97d-381edb2c0d1mr76499f8f.59.1730938478971;
        Wed, 06 Nov 2024 16:14:38 -0800 (PST)
Message-ID: <53590a98-f4cc-42cb-b85b-9820fcedecf3@citrix.com>
Date: Thu, 7 Nov 2024 00:14:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/boot: convert domain construction to use boot
 info
To: Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-9-dpsmith@apertussolutions.com>
 <990c8955-ae4a-449f-a40c-7c15faf61154@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <990c8955-ae4a-449f-a40c-7c15faf61154@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 11:06 pm, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> With all the components used to construct dom0 encapsulated in struct
>> boot_info
>> and struct boot_module, it is no longer necessary to pass all them as
>> parameters down the domain construction call chain. Change the
>> parameter list
>> to pass the struct boot_info instance and the struct domain reference.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v5:
>> - renamed from "x86/boot: convert create_dom0 to use boot info"
>>
>> Changes since v5:
>> - change headroom back to unsigned long
>> - make mod_idx unsigned int
>> ---
>> Â  xen/arch/x86/dom0_build.cÂ Â Â Â Â Â Â Â Â Â Â Â  |Â  9 ++--
>> Â  xen/arch/x86/hvm/dom0_build.cÂ Â Â Â Â Â Â Â  | 49 +++++++++++++---------
>> Â  xen/arch/x86/include/asm/dom0_build.h | 13 ++----
>> Â  xen/arch/x86/include/asm/setup.hÂ Â Â Â Â  |Â  7 ++--
>> Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â Â Â  | 59 ++++++++++++++++-----------
>> Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 33 ++++++++-------
>> Â  6 files changed, 95 insertions(+), 75 deletions(-)
>>
>
>> diff --git a/xen/arch/x86/hvm/dom0_build.c
>> b/xen/arch/x86/hvm/dom0_build.c
>> index a4ac262db463..cd97f94a168a 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>
>> @@ -1301,16 +1302,25 @@ static void __hwdom_init
>> pvh_setup_mmcfg(struct domain *d)
>> Â Â Â Â Â  }
>> Â  }
>> Â  -int __init dom0_construct_pvh(struct domain *d, const module_t
>> *image,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned long image_headroom,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  module_t *initrd,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const char *cmdline)
>> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>> Â  {
>> Â Â Â Â Â  paddr_t entry, start_info;
>> +Â Â Â  struct boot_module *image;
>> +Â Â Â  struct boot_module *initrd = NULL;
>> Â Â Â Â Â  int rc;
>> Â  Â Â Â Â Â  printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n",
>> d->domain_id);
>> Â  +Â Â Â  rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
>> +Â Â Â  if ( unlikely(rc < 0 || rc > bi->nr_modules) )
>
> Here and ...
>
>> +Â Â Â Â Â Â Â  panic("Missing kernel boot module for %pd construction\n", d);
>> +
>> +Â Â Â  image = &bi->mods[rc];
>> +
>> +Â Â Â  rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
>> +Â Â Â  if ( rc > 0 || rc < bi->nr_modules )
>
> ... here.Â  Can we just check rc < bi->nr_modules for validity?

You could, but eventually MISRA will say no and I suspect it will then
be made your problem to fix.

In this case, we ought to have an `unsigned int idx` and not (re)use rc.

Also, we panic far earlier in __start_xen() if there's no dom0 kernel,
so I think we can just assert that rather than having a logically dead
panic() path.


> Â  Valid modules are 0...nr_modules and not found is MAX_NR_BOOTMODS +
> 1.Â  It eliminates these unecessary double checks.Â  This would apply to
> 04/12 "x86/boot: introduce module release" as well.
>
>> +Â Â Â Â Â Â Â  initrd = &bi->mods[rc];
>> +
>> Â Â Â Â Â  if ( is_hardware_domain(d) )
>> Â Â Â Â Â  {
>> Â Â Â Â Â Â Â Â Â  /*
>
>
>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>> index c1f44502a1ac..594874cd8d85 100644
>> --- a/xen/arch/x86/pv/dom0_build.c
>> +++ b/xen/arch/x86/pv/dom0_build.c
>
>> @@ -374,10 +371,13 @@ static int __init dom0_construct(struct domain *d,
>> Â Â Â Â Â  unsigned int flush_flags = 0;
>> Â Â Â Â Â  start_info_t *si;
>> Â Â Â Â Â  struct vcpu *v = d->vcpu[0];
>> -Â Â Â  void *image_base = bootstrap_map(image);
>> -Â Â Â  unsigned long image_len = image->mod_end;
>> -Â Â Â  void *image_start = image_base + image_headroom;
>> -Â Â Â  unsigned long initrd_len = initrd ? initrd->mod_end : 0;
>> +Â Â Â  struct boot_module *image;
>> +Â Â Â  struct boot_module *initrd = NULL;
>> +Â Â Â  void *image_base;
>> +Â Â Â  unsigned long image_len;
>> +Â Â Â  void *image_start;
>> +Â Â Â  unsigned long initrd_len = 0;
>> +Â Â Â  const char *cmdline;
>> Â Â Â Â Â  l4_pgentry_t *l4tab = NULL, *l4start = NULL;
>> Â Â Â Â Â  l3_pgentry_t *l3tab = NULL, *l3start = NULL;
>> Â Â Â Â Â  l2_pgentry_t *l2tab = NULL, *l2start = NULL;
>> @@ -414,6 +414,23 @@ static int __init dom0_construct(struct domain *d,
>> Â  Â Â Â Â Â  printk(XENLOG_INFO "*** Building a PV Dom%d ***\n",
>> d->domain_id);
>> Â  +Â Â Â  i = first_boot_module_index(bi, BOOTMOD_KERNEL);
>> +Â Â Â  if ( unlikely(i < 0 || i > bi->nr_modules) )
>
> Single check here.

Similar argument.Â  Except it turns out that i is used for precisely two
loops in dom0_construct() both of which are from 0 to either 4 or 32.

So it very much can be converted to being an unsigned variable, and then
this works nicely.

That said, drop the unlikely().Â Â  This is an init function run once, and
all it is doing is reducing legibility.

>
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index aba9df8620ef..d9785acf89b6 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -977,10 +977,7 @@ static unsigned int __init copy_bios_e820(struct
>> e820entry *map, unsigned int li
>> Â Â Â Â Â  return n;
>> Â  }
>> Â  -static struct domain *__init create_dom0(const module_t *image,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned long headroom,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  module_t *initrd, const
>> char *kextra,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const char *loader)
>> +static struct domain *__init create_dom0(struct boot_info *bi)
>> Â  {
>> Â Â Â Â Â  static char __initdata cmdline[MAX_GUEST_CMDLINE];
>> Â  @@ -997,6 +994,14 @@ static struct domain *__init create_dom0(const
>> module_t *image,
>> Â Â Â Â Â  };
>> Â Â Â Â Â  struct domain *d;
>> Â Â Â Â Â  domid_t domid;
>> +Â Â Â  struct boot_module *image;
>> +Â Â Â  unsigned int idx;
>> +
>> +Â Â Â  idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
>> +Â Â Â  if ( unlikely(idx < 0 || idx > bi->nr_modules) )
>
> Single check here please.

I'm surprised that the compiler didn't complain about "idx < 0" being
tautological here.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 00:43:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 00:43:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831440.1246741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qcd-0004f6-VI; Thu, 07 Nov 2024 00:43:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831440.1246741; Thu, 07 Nov 2024 00:43: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 1t8qcd-0004ez-SU; Thu, 07 Nov 2024 00:43:39 +0000
Received: by outflank-mailman (input) for mailman id 831440;
 Thu, 07 Nov 2024 00:43: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8qcc-0004et-Pi
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 00:43:38 +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 5206a8fd-9ca1-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 01:43:35 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5ceb75f9631so432401a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Nov 2024 16:43:35 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b9b661sm110232a12.36.2024.11.06.16.43.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Nov 2024 16:43: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: 5206a8fd-9ca1-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjUyMDZhOGZkLTljYTEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQwMjE1LjMzMzYsInNlbmRlciI6ImFuZHJldy5jb29wZXJAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730940215; x=1731545015; 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=dUjf75pWqTyO/d34duPXWyGmmlzbnFWkTMY/4NaRmuU=;
        b=LfVbPZEvlan77S8pnQwhKTYR26TC+rlrH0pt9CpFqFVck0Vx00NiDJ+5No/EZkoljD
         /oIXcL3N4yJG/+FSr3CBP6pFG2TcqA2mfmi/UJSPDpqp4o5NMHwdJUVGCc3/eFUxb2PY
         lpqiobn6O4x8XstTtaD7TJj26bBpLMFYbCcoY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730940215; x=1731545015;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dUjf75pWqTyO/d34duPXWyGmmlzbnFWkTMY/4NaRmuU=;
        b=ug4leWddHzcxYgu4RWnbGw9Awitt+mqXFOGIahF8OUeFtPN/SkUdQH5VtbaD9hfZlo
         8BQTBpllghq/YGjjUdx6XYV2PWTZpUfoAA4qn4Puur/8xLfheiGaH326eXH0Knp8YW4N
         lCFclLOD0hdgxJOM7+hK96bC2rEiP2zPmfQ4lxBT93nyRiy8yihPRQhQ/FG42gK9DJTl
         9eFz/KuNekrmZPKw8Zez3dwa+1b7oVblL4m1E7+9FwEp1L2LecAvAkiM38NirqYA1j1S
         EGq6xU4dIx39OTdMgnfF0ey/mTGD2k5dix10zjGg2l7WCBYp9h4W5/kFBNEeHeUODl15
         AisA==
X-Forwarded-Encrypted: i=1; AJvYcCU1y3zbVkSn1kMCTqNm3xM/f1WBipRfMG7KfoI16sgUAfu5Ww9EMeg1oLRhhVegBMgEAk6wxFjioKM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzaxYpLS+BUtzwiRsCt3fFh+tAr+Lw8p6k5Fxznrgvk++xKBpA7
	xeVvOcbqZ8DKPDqTZiMt6qw2Qa+33wkYIbo1wlkUzESKIZnqgWIGSQ/F70Bi3O4=
X-Google-Smtp-Source: AGHT+IEiIISG+C8Ih/xwliC68P+RnPcNN7ppi9B95jVToSMr8Wu4QnMBrpnxJEFkeTRu+K0w6lNxyA==
X-Received: by 2002:a05:6402:51d0:b0:5ce:fc54:9ebf with SMTP id 4fb4d7f45d1cf-5cefc549f75mr758177a12.27.1730940214751;
        Wed, 06 Nov 2024 16:43:34 -0800 (PST)
Message-ID: <2c1849f0-90f0-4e76-b8f9-c925522fc2e5@citrix.com>
Date: Thu, 7 Nov 2024 00:43:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/boot: convert domain construction to use boot
 info
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-9-dpsmith@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241102172551.17233-9-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
> @@ -1301,16 +1302,25 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
>      }
>  }
>  
> -int __init dom0_construct_pvh(struct domain *d, const module_t *image,
> -                              unsigned long image_headroom,
> -                              module_t *initrd,
> -                              const char *cmdline)
> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>  {
>      paddr_t entry, start_info;
> +    struct boot_module *image;
> +    struct boot_module *initrd = NULL;
>      int rc;
>  
>      printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
>  
> +    rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
> +    if ( unlikely(rc < 0 || rc > bi->nr_modules) )
> +        panic("Missing kernel boot module for %pd construction\n", d);

Just noticed while experimenting.Â  The upper bound (for the error case)
should be >= because nothing good can come of being handed the Xen module.

> +
> +    image = &bi->mods[rc];
> +
> +    rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
> +    if ( rc > 0 || rc < bi->nr_modules )
> +        initrd = &bi->mods[rc];

This range check is tautologically true.Â  You want && instead of ||.

Same elsewhere, although this goes away when the variable is unsigned
(and we remove assumptions about the dom0 kernel's index).

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 00:47:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 00:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831449.1246751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qg4-0005Sx-Cx; Thu, 07 Nov 2024 00:47:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831449.1246751; Thu, 07 Nov 2024 00:47: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 1t8qg4-0005Sq-A1; Thu, 07 Nov 2024 00:47:12 +0000
Received: by outflank-mailman (input) for mailman id 831449;
 Thu, 07 Nov 2024 00:47: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8qg3-0005Sk-1U
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 00:47:11 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf28f4a2-9ca1-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 01:47:06 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730940418659637.7451190722413;
 Wed, 6 Nov 2024 16:46: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: cf28f4a2-9ca1-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNmMjhmNGEyLTljYTEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQwNDI2LjkwMjExOSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730940421; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=BIa31vl2lcLCLd/utdfC7veNor/rTPbz9yldV0W+DgCxvTIvnrh2FTri7jTUfpD3HYmnmYDKqQb+oqhwhOa4mp70iX77q3mPtfgi7xc3WoHhNX8DwRPBV05gAGqms15W3UqscWlp3HcWp3myRRCfoUrfGpyXjH0s8YXkWKDevP8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730940421; 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=Aqqy5SY0lFUYcEMWg53q0eCqBfQW70PNqW77l3utW+U=; 
	b=agMOmDySitLlB3KU/X+gl4h6mtXfkZVbL+YeOl3eR36bPRj967bfIC1bBYZmtH8rW9kabrb652qoSGwRwDnV0+ud928pV7r/hI216YeKL4bIUKUOB2F5da7lBLHtg5rldcIjqvn6hm93ZEaXAnrr5Z98tFTgyRr337P6d+eKC0s=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730940421;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=Aqqy5SY0lFUYcEMWg53q0eCqBfQW70PNqW77l3utW+U=;
	b=Crw5WwO6dwFyVOaw0aG3XewzUXeOdBhxJAs+vQuJEXEac0EABBR8MIVc2G5INhCC
	3RZDWHxgPEc9bFpptsrmFIpgleFq+jec+CUvE9/r8loLxkjcGz2COVmhj04nCksMFpJ
	1G8GkoG6zeqX4lOZwrIbYLLSKzKWEbtcnZvKpC0o=
Message-ID: <599e55ba-b9d6-4fc9-bf59-ddd95b9a2482@apertussolutions.com>
Date: Wed, 6 Nov 2024 19:46:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] x86/boot: introduce module release
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-5-dpsmith@apertussolutions.com>
 <773dbe75-d1d3-41ea-8ff7-c031e0e9a920@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <773dbe75-d1d3-41ea-8ff7-c031e0e9a920@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 17:16, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> A precarious approach was used to release the pages used to hold a 
>> boot module.
>> The precariousness stemmed from the fact that in the case of PV dom0, the
>> initrd module pages may be either mapped or explicitly copied into the 
>> dom0
>> address space. So to handle this situation, the PV dom0 construction 
>> code will
>> set the size of the module to zero, relying on 
>> discard_initial_images() to skip
>> any modules with a size of zero.
>>
>> A function is introduced to release a module when it is no longer 
>> needed that
>> accepts a boolean parameter, free_mem, to indicate if the 
>> corresponding pages
>> can be freed. To track that a module has been released, the boot 
>> module flag
>> `released` is introduced.
>>
>> The previous release model was a free all at once except those of size 
>> zeros,
>> which would handle any unused modules passed. The new model is one of, 
>> free
>> consumed module after usage is complete, thus unconsumed modules do 
>> not have a
>> consumer to free them.
> 
> Slightly confusing.Â  Maybe just "The new model is to free modules after 
> they are consumed.Â  Thus unconsumed modules are not freed."

okay.

>> To address this, the discard_uknown_boot_modules() is
> 
> "unknown"

Ack

>> introduced and called after the last module identification occurs, 
>> initrd, to
>> free the pages of any boot modules that are identified as not being 
>> released.
>> After domain construction completes, all modules should be freed. A 
>> walk of the
>> boot modules is added after domain construction to validate and notify 
>> if a
>> module is found not to have been released.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v7:
>> - This is a new approach as an alternative to the `consumed` flag.
>> ---
>> Â  xen/arch/x86/cpu/microcode/core.cÂ Â  |Â  4 ++
>> Â  xen/arch/x86/hvm/dom0_build.cÂ Â Â Â Â Â  |Â  7 ++--
>> Â  xen/arch/x86/include/asm/bootinfo.h |Â  2 +
>> Â  xen/arch/x86/include/asm/setup.hÂ Â Â  |Â  3 +-
>> Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â  | 20 ++--------
>> Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 57 +++++++++++++++++++++++------
>> Â  xen/xsm/xsm_core.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  5 +++
>> Â  7 files changed, 67 insertions(+), 31 deletions(-)
>>
> 
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index d061ece0541f..e6d2d25fd038 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -341,27 +341,55 @@ unsigned long __init 
>> initial_images_nrpages(nodeid_t node)
>> Â Â Â Â Â  return nr;
>> Â  }
>> -void __init discard_initial_images(void) /* a.k.a. Free boot modules */
>> +void __init release_boot_module(struct boot_module *bm, bool free_mem)
>> +{
>> +Â Â Â  uint64_t start = pfn_to_paddr(bm->mod->mod_start);
>> +Â Â Â  uint64_t sizeÂ  = bm->mod->mod_end;
>> +
>> +Â Â Â  if ( bm->released )
>> +Â Â Â  {
>> +Â Â Â Â Â Â Â  printk(XENLOG_WARNING "Attempt second release boot module of 
>> type %d\n",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->type);
>> +Â Â Â Â Â Â Â  return;
>> +Â Â Â  }
>> +
>> +Â Â Â  if ( free_mem )
>> +Â Â Â Â Â Â Â  init_domheap_pages(start, start + PAGE_ALIGN(size));
>> +
>> +Â Â Â  bm->released = true;
>> +}
>> +
>> +void __init release_module(const module_t *m, bool free_mem)
>> Â  {
>> Â Â Â Â Â  struct boot_info *bi = &xen_boot_info;
>> Â Â Â Â Â  unsigned int i;
>> -Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>> +Â Â Â  for ( i = 0; i < bi->nr_modules; i++ )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
>> -Â Â Â Â Â Â Â  uint64_t sizeÂ  = bi->mods[i].mod->mod_end;
>> +Â Â Â Â Â Â Â  if ( bi->mods[i].mod == m )
>> +Â Â Â Â Â Â Â Â Â Â Â  release_boot_module(&bi->mods[i], free_mem);
>> +Â Â Â  }
>> +}
>> -Â Â Â Â Â Â Â  /*
>> -Â Â Â Â Â Â Â Â  * Sometimes the initrd is mapped, rather than copied, into 
>> dom0.
>> -Â Â Â Â Â Â Â Â  * Size being 0 is how we're instructed to leave the module 
>> alone.
>> -Â Â Â Â Â Â Â Â  */
>> -Â Â Â Â Â Â Â  if ( size == 0 )
>> +static void __init discard_unknown_boot_modules(void)
>> +{
>> +Â Â Â  struct boot_info *bi = &xen_boot_info;
>> +Â Â Â  unsigned int i, count = 0;
>> +
>> +Â Â Â  for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
> 
> for_each_boot_module_by_type ( i, bi, BOOTMOD_UNKNOWN )
> 
> To match style from 74af2d98276d ("x86/boot: eliminate module_map")

Ack.

>> +Â Â Â  {
>> +Â Â Â Â Â Â Â  struct boot_module *bm = &bi->mods[i];
>> +
>> +Â Â Â Â Â Â Â  if ( bm == NULL || bm->released )
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>> -Â Â Â Â Â Â Â  init_domheap_pages(start, start + PAGE_ALIGN(size));
>> +Â Â Â Â Â Â Â  release_boot_module(bm, true);
>> +Â Â Â Â Â Â Â  count++;
>> Â Â Â Â Â  }
>> -Â Â Â  bi->nr_modules = 0;
>> +Â Â Â  if ( count )
>> +Â Â Â Â Â Â Â  printk(XENLOG_DEBUG "Releasing pages for uknown boot module 
>> %d\n",
> 
> "unknown".Â  Since the operation already happened, maybe "Released pages 
> for %d unknown boot modules"?Â  I'm not sure of the value of that 
> message.Â  It would be more informative to provide the module index and 
> maybe a page count.Â  The index would at least point to which module is 
> unused.

Ack to unknown.

Can adjust the phrasing, the question is there a desire to have a 
message for every boot module freed. Guess I could do a single log line 
split across multiple printks, Thinking about the case where someone 
tried to abuse the interface by loading a bunch of unused modules.

>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  count);
>> Â  }
>> Â  static void __init init_idle_domain(void)
>> @@ -2111,6 +2139,8 @@ void asmlinkage __init noreturn __start_xen(void)
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  initrdidx);
>> Â Â Â Â Â  }
>> +Â Â Â  discard_unknown_boot_modules();
>> +
>> Â Â Â Â Â  /*
>> Â Â Â Â Â Â  * We're going to setup domain0 using the module(s) that we 
>> stashed safely
>> Â Â Â Â Â Â  * above our heap. The second module, if present, is an initrd 
>> ramdisk.
>> @@ -2122,6 +2152,11 @@ void asmlinkage __init noreturn __start_xen(void)
>> Â Â Â Â Â  if ( !dom0 )
>> Â Â Â Â Â Â Â Â Â  panic("Could not set up DOM0 guest OS\n");
>> +Â Â Â  /* Check and warn if any modules did not get released */
>> +Â Â Â  for ( i = 0; i < bi->nr_modules; i++ )
>> +Â Â Â Â Â Â Â  if ( !bi->mods[i].released )
>> +Â Â Â Â Â Â Â Â Â Â Â  printk(XENLOG_ERR "Boot module %d not released, memory 
>> leaked", i);
>> +
> 
> Why not release the memory here instead of leaking it?

Because you don't know if it was mapped or consumed.

> I feel like the corner case of mapping the dom0 initrd is leading to 
> this manual approach or releasing modules individually.Â  That logic then 
> has to be spread around.Â  discard_initial_images() kept the logic 
> centralized.Â  Maybe just replace the mod_end == 0 special case with a 
> "don't release me" flag that is checked in discard_initial_images()?

That is what started me at the options to deal with it. The two I came 
up with was a flag and this approach. Weighing the pros/cons of the two, 
the deciding factor is when multi-domain construction is introduced. 
With multi-domain with a large number of domains, a balance has to be 
struck between holding all the kernels and ramdisks in memory plus being 
able to allocate the desired amount of memory for each domain. Perhaps a 
balance can be struck, with a discard_consumed_boot_modules() that walks 
the boot module list, and discard the ones consumed. While only dom0 can 
be constructed, it would be called once after create_dom0 call returns 
(per Andy's suggestion in response to this comment). An expansion on 
this could be that instead of using a free flag, use a ref count that is 
incremented as it is claimed and the decremented when it has been consumed.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 00:49:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 00:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831455.1246760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qi1-00060A-Na; Thu, 07 Nov 2024 00:49:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831455.1246760; Thu, 07 Nov 2024 00:49: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 1t8qi1-000603-L7; Thu, 07 Nov 2024 00:49:13 +0000
Received: by outflank-mailman (input) for mailman id 831455;
 Thu, 07 Nov 2024 00:49: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8qi0-0005zt-OG
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 00:49:12 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18b6f306-9ca2-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 01:49:10 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730940541055346.34239794619634;
 Wed, 6 Nov 2024 16:49: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: 18b6f306-9ca2-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE4YjZmMzA2LTljYTItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQwNTUwLjQyMTA2Mywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730940543; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=TFuoOlA/jjvPC8K1/xiManxGkV9Zw6/hp03Jd3yPj56GvxDfSYq4Jy+Q0Kr40EnTMCKNzGS3JqadiOFDjSd54F4INTexG0w42CLo6qH7F3LscnMrLGi6tA3Bjh9CrRcV2amOF/nS3uV4QrqXKoV6jD4pc+Pk6IC8oZeTj4vzla0=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730940543; 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=Bjl+qG1q3ezB4Ua6CgqxSOZczqOC9SVgseum+rwTgjw=; 
	b=UQZtrwI8EVbmnrj2XVtNxKkvptcSOmeHp0aj1nQe10sP5twFFRU/9d/v+P8M2LZl+AKdbXBvIT0YVFTqRXIjAcyF/pXMyes8y4GRaxEOzxkUzIp3PAn1e6T+F/gHx6MmyHfb0s4L2A4mnXW4aeDc6hcfcTlPCtmNVWqHyStxBmg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730940543;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=Bjl+qG1q3ezB4Ua6CgqxSOZczqOC9SVgseum+rwTgjw=;
	b=MHjShEplncReh5e454AeMfStiSarB8GA3e6I3IJoY1v8z8IsQwMSb/MLGSpiWT7f
	y5XZCrZy/BghPtgNLa2Iud9NwxyTyEH9iuaCK7RALHAkO1tRzf4zbH5naHM6VI37y0d
	gwUhabMIqgb3woJcpNhFAs+Y/fLyyW1Wj8+oEFfA=
Message-ID: <4279aa2b-035b-47cc-8e7c-53a5db4774ed@apertussolutions.com>
Date: Wed, 6 Nov 2024 19:48:59 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 04/12] x86/boot: introduce module release
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-5-dpsmith@apertussolutions.com>
 <773dbe75-d1d3-41ea-8ff7-c031e0e9a920@amd.com>
 <f592170a-6cb3-4bfc-9486-2253a6443e33@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <f592170a-6cb3-4bfc-9486-2253a6443e33@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 17:46, Andrew Cooper wrote:
> On 06/11/2024 10:16 pm, Jason Andryuk wrote:
>> On 2024-11-02 13:25, Daniel P. Smith wrote:
>>> @@ -2122,6 +2152,11 @@ void asmlinkage __init noreturn __start_xen(void)
>>>  Â Â Â Â Â  if ( !dom0 )
>>>  Â Â Â Â Â Â Â Â Â  panic("Could not set up DOM0 guest OS\n");
>>>  Â  +Â Â Â  /* Check and warn if any modules did not get released */
>>> +Â Â Â  for ( i = 0; i < bi->nr_modules; i++ )
>>> +Â Â Â Â Â Â Â  if ( !bi->mods[i].released )
>>> +Â Â Â Â Â Â Â Â Â Â Â  printk(XENLOG_ERR "Boot module %d not released, memory
>>> leaked", i);
>>> +
>>
>> Why not release the memory here instead of leaking it?
>>
>> I feel like the corner case of mapping the dom0 initrd is leading to
>> this manual approach or releasing modules individually.Â  That logic
>> then has to be spread around.Â  discard_initial_images() kept the logic
>> centralized.Â  Maybe just replace the mod_end == 0 special case with a
>> "don't release me" flag that is checked in discard_initial_images()?
> 
> I've been conflicted on this for ages, but I agree.
> 
> There are many wonky things with the current arrangement.
> 
> First(ish), discard_initial_images() should be named
> discard_boot_modules() (if it's saying a separate function).
> 
> Second, the individual dom0_build.c's should not be calling this
> directly.Â  They're both right at the end of construction, so it would
> make far more sense for __start_xen() to do this after create_dom0().
> That also avoids needing to export the function.
> 
> And yes, as Jason says, the "initrd mapped instead of copied" is a weird
> corner case, and the other path manually releasing and also saying
> "don't free" is just pointless complexity.Â  I do like the idea of a
> "dont_free" flag.
> 
> Thoughts?

How about the ref count I suggested in response to Jason?

> I know this would be moving back to a more v7-like approach, but I think
> the end approach is cleaner.

No worries, the series is looking better each time.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 00:50:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 00:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831461.1246771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qj3-0007R4-WA; Thu, 07 Nov 2024 00:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831461.1246771; Thu, 07 Nov 2024 00: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 1t8qj3-0007Qx-TQ; Thu, 07 Nov 2024 00:50:17 +0000
Received: by outflank-mailman (input) for mailman id 831461;
 Thu, 07 Nov 2024 00: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8qj2-0007Qo-17
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 00:50:16 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dd3d6d4-9ca2-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 01:50:12 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730940604863144.41014049611738;
 Wed, 6 Nov 2024 16:50: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: 3dd3d6d4-9ca2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNkZDNkNmQ0LTljYTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTQwNjEyLjYwMjYzLCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1730940606; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=lWEn4jlLKkuZ/TKwGETmssq13fMmItqS6JfquUGI40ZtCD/Bf0Y0cVqfECIjqI7SKI6pMtDtrv1pX9ILP3Nc63jeLTb4kVu10FZXOZTpaKpDggqPwfNl+7xrVy7v2Y4CaC866LJo9e6rN40cUMQLlSF9Klp7e189R9rKz2qkMhI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730940606; 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=CQrUaKQJZyNt/jguIR6wgwku9uegLetjZW2K8LXHTv0=; 
	b=a3fMIGEG/nC8CYczgfTw25exx7jlrJnVGDf1gEXwwtRLdG34blfcX54EqKfSi52tQ83tYQdyIOoqFTUx8UF/PTXjzZxUEE/FB9QQWB0MlqJE6/zdoYUqUCGCmMCIOa+R3NwEQ6MBSJaAWjITiMO4XmiIGMNoqGAKyaSoU1bccbw=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730940606;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=CQrUaKQJZyNt/jguIR6wgwku9uegLetjZW2K8LXHTv0=;
	b=lW7GqHu4pir5A20XtdGZQ8aNS4gjJJdg50WFdr0Hvx6EBitI521uwMyQM46LmXjH
	ncPM5mfaERNT6ljAhXcgFnhf2rKnWInpwKCzxLWKj51aI0+njuLN1NCJ0PuWJ56UrA3
	Z6lm7rXr4/wSY9h2wc6yHQTNXgrmKiniU16Cq7Zs=
Message-ID: <dec1d18a-dd27-4f52-ba61-5428e906b6e3@apertussolutions.com>
Date: Wed, 6 Nov 2024 19:50:02 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86/boot: move headroom to boot modules
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-6-dpsmith@apertussolutions.com>
 <113c48b9-7cbf-43e0-b351-ab7f14f06e63@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <113c48b9-7cbf-43e0-b351-ab7f14f06e63@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/6/24 18:00, Andrew Cooper wrote:
> On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
>> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
>> index b1549d8c8f93..e337baa905f0 100644
>> --- a/xen/arch/x86/include/asm/bootinfo.h
>> +++ b/xen/arch/x86/include/asm/bootinfo.h
>> @@ -30,6 +30,28 @@ struct boot_module {
>>   
>>       enum bootmod_type type;
>>   
>> +    /*
>> +     * A boot module may need decompressing by Xen.  Headroom is an estimate of
>> +     * the additional space required to decompress the module.
>> +     *
>> +     * Headroom is accounted for at the start of the module.  Decompressing is
>> +     * done in-place with input=start, output=start-headroom, expecting the
>> +     * pointers to become equal (give or take some rounding) when decompression
>> +     * is complete.
>> +     *
>> +     * Memory layout at boot:
>> +     *
>> +     *               start ----+
>> +     *                         v
>> +     *   |<-----headroom------>|<------size------->|
>> +     *                         +-------------------+
>> +     *                         | Compressed Module |
>> +     *   +---------------------+-------------------+
>> +     *   |           Decompressed Module           |
>> +     *   +-----------------------------------------+
>> +     */
>> +    unsigned long headroom;
>> +
>>       /*
>>        * Module State Flags:
>>        *   relocated: indicates module has been relocated in memory.
> 
> By the end of the series, this ends very poorly laid out.
> 
> It works a whole lot better when putting the bitfields between type and
> headroom.

Ack.

> Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 00:53:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 00:53:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831470.1246781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qm3-00084F-Iq; Thu, 07 Nov 2024 00:53:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831470.1246781; Thu, 07 Nov 2024 00:53: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 1t8qm3-000848-Fx; Thu, 07 Nov 2024 00:53:23 +0000
Received: by outflank-mailman (input) for mailman id 831470;
 Thu, 07 Nov 2024 00:53: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8qm2-000842-Sy
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 00:53:22 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id adf38dc6-9ca2-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 01:53:20 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730940792087829.3952704129282;
 Wed, 6 Nov 2024 16:53: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: adf38dc6-9ca2-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFkZjM4ZGM2LTljYTItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQwODAwLjU3NzY1Nywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730940794; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=PWKNtchBckgOx7BAm8uKOLDnSJW2z5rP25lh36Y1MKqVw3lIrDjVBlX0Wu4Vvt4qTwSzlKTDY6mjBLnu+xfj5TGPDBs3H36KyTgdcHg04RDRtPQWVJUqvrOzjvVP+f8HIpuT+XreTrMd0uRJMgUAjfM7pnret4IApypxVOsxaLI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730940794; 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=gXj605fb2qJxJkSSsI51z3LTA+5SFLl+zzEGmQSq5ag=; 
	b=dGnFU7bmNo2TB+VUEeoBv/suBzrXU9+hpAuBzFHUfiYOWGIaxO4Of2uE/Em9hTLXXhE4cC2fMEy9wGYXF+ugUSXDmJFxv52Jc24oYCaggi1o5zlo6XmILBQOftz98mrBkg89BmV/g0er1apt9ZCHjusQCbRLrMd4kz/Kwk8S0So=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730940794;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=gXj605fb2qJxJkSSsI51z3LTA+5SFLl+zzEGmQSq5ag=;
	b=q0eCUjZ/xiGUeQIdiTPmcOsp1QWmPnxFMcfYB8W8uc6q4EYwnuP+1D0jQUgTcCrl
	M3g7Fvc+IFDrKdtfMEqZKgabEtyqCUiyJXrNTFeup0RhDV98CcfShPc+MncGMnktfI1
	8x4H8Ouq5Xl5TSFHOrJOvbQL4DuAeFFL/ubfS8G8=
Message-ID: <21393fc6-b9d4-4a09-a127-f8e3be2d988b@apertussolutions.com>
Date: Wed, 6 Nov 2024 19:53:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] x86/boot: relocate kextra into boot info
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-7-dpsmith@apertussolutions.com>
 <a924211f-4a2e-44c1-9e06-efde05c189c8@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <a924211f-4a2e-44c1-9e06-efde05c189c8@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/6/24 18:04, Andrew Cooper wrote:
> On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
>> Move kextra into struct boot_info, thus no longer needed to be passed as a
>> parameter to create_dom0.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Technically "..., so it can be removed as a distinct parameter to
> create_dom0()".

Ack.

> Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thank you.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 00:56:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 00:56:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831478.1246791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qox-0000E4-06; Thu, 07 Nov 2024 00:56:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831478.1246791; Thu, 07 Nov 2024 00:56: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 1t8qow-0000Dx-Tk; Thu, 07 Nov 2024 00:56:22 +0000
Received: by outflank-mailman (input) for mailman id 831478;
 Thu, 07 Nov 2024 00:56: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8qov-0000Dr-Ra
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 00:56:21 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18b43082-9ca3-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 01:56:19 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173094097272833.11558330149671;
 Wed, 6 Nov 2024 16:56: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: 18b43082-9ca3-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE4YjQzMDgyLTljYTMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQwOTc5LjY0NDQxOSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730940974; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=RsU+T97qpqzoE7F2uVwNjBzBFvv/+vSpG+ZbyM/HRgmcWtBrLhCQaRu0FLar3x5lBGvIAKsnQCTDqsrL3UdFpIFZr5m6KWUnWQzDfTQYTm99u9Z5Cw4cdh5KJoipG9oObyWbib/hxuVAAlPjw1Q69UgYHJfrK/iDKr3aiuhIaM4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730940974; 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=PbpVuIuZ+J2ObY7J9JpNwlrnWFQTBbcPVHqVE77AOnw=; 
	b=KBZoXS3oiNUc6mddO2tJ8KSO3CUPaswktU2x8Vo4l7L8kqJdB9Aq0zhv0lhhHgj6KfS32Fqq9/NSri9fA717e1V5FWc+mSeKZ9g9teBcJ9WrKkdawEJP8uzNwGTDnuqj0dTHhSyZhBletXza1Qv9V/ksqBxdPOUXXMPfORGv+pQ=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730940974;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=PbpVuIuZ+J2ObY7J9JpNwlrnWFQTBbcPVHqVE77AOnw=;
	b=ojAfAC2CYpUG6SVQl2AUwMDgmQQgPhj4QBLrYX30fwHMAbZoiPXPyMzun951jRxg
	wPmt65lZ6gKeYg6LpdfjGoKWNhLReLOLeLbhSBdFkx3F3WzasfRfgIce8yXG69GKF7+
	YECI2pC2R+PVdRvetrEdIjzvWmC5V14KhYfgHkvA=
Message-ID: <db147471-95ff-4744-9945-e5ffbffa1b15@apertussolutions.com>
Date: Wed, 6 Nov 2024 19:56:09 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/12] x86/boot: add cmdline_pa to struct boot_module
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-8-dpsmith@apertussolutions.com>
 <95af4f8e-585c-4bd6-a3fc-c7234e9cce83@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <95af4f8e-585c-4bd6-a3fc-c7234e9cce83@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/6/24 17:19, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> Add an address field, cmdline_pa, to struct boot_module to hold the 
>> address of
>> the string field from struct mod.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thank you.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 01:07:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 01:07:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831485.1246800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8qzK-0001oj-TN; Thu, 07 Nov 2024 01:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831485.1246800; Thu, 07 Nov 2024 01:07: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 1t8qzK-0001oc-Qe; Thu, 07 Nov 2024 01:07:06 +0000
Received: by outflank-mailman (input) for mailman id 831485;
 Thu, 07 Nov 2024 01:07: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8qzJ-0001oW-Ik
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 01:07:05 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97b8916e-9ca4-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 02:07:02 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730941616407266.6232332402303;
 Wed, 6 Nov 2024 17:06: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: 97b8916e-9ca4-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk3Yjg5MTZlLTljYTQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQxNjIyLjU0ODU5Miwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730941618; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=U7HgF1CT2o83+FmkGSj0s2Q6h0xDrPwfaJy3jHRMolVIjDbdugEkMoIyzYgJru8Ifb7PGMWGAi4Ywd5zz+b2jmrVWHAOQrzZy4gSFN/sYS2QI0QnU1ajVp1m4GgUzz71bJjBrTMW0jVN+p/drhSkMOHAED6pgB7yMZXxAkeXc38=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730941618; 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=Dbk+5d/FlhMxRV1tnu5hGilEWvSzCcp3K/5SzS8X99s=; 
	b=mlCZ/8Mc9HQgyH2EogIu8excdjxBm+/bC2XgsIDFaieYz8ok/rDpxa13NUzxthHDAInoFJLYL+JruXzHHBei95T112kdbxloVcB65wx1KITihV4we3TMTBFpc4Zar5aD4dfb4XWut69DrEM1BTrzvJ9ag+u1xaAG3Gmn+6Ue+Y4=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730941618;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=Dbk+5d/FlhMxRV1tnu5hGilEWvSzCcp3K/5SzS8X99s=;
	b=UBoK5OsUZFrJD8fiGeZdkU8IMm2UVVEOqwVpcpGJ97VnL3s+RsSsgB53kRHdem27
	NRkaAmm+qgJHdOLmY18Mz2g6ttFR17UQC2LWgCRI1ZsPOMK+NgrPp82vFnI+652LPUF
	TUQRsQFBO00c8hBlC/tA1deWtTEAyMeq7mCcyrK0=
Message-ID: <cac68929-62cd-4c27-875b-bf1cb2e1e766@apertussolutions.com>
Date: Wed, 6 Nov 2024 20:06:54 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/boot: convert domain construction to use boot
 info
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-9-dpsmith@apertussolutions.com>
 <990c8955-ae4a-449f-a40c-7c15faf61154@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <990c8955-ae4a-449f-a40c-7c15faf61154@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 18:06, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> With all the components used to construct dom0 encapsulated in struct 
>> boot_info
>> and struct boot_module, it is no longer necessary to pass all them as
>> parameters down the domain construction call chain. Change the 
>> parameter list
>> to pass the struct boot_info instance and the struct domain reference.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v5:
>> - renamed from "x86/boot: convert create_dom0 to use boot info"
>>
>> Changes since v5:
>> - change headroom back to unsigned long
>> - make mod_idx unsigned int
>> ---
>> Â  xen/arch/x86/dom0_build.cÂ Â Â Â Â Â Â Â Â Â Â Â  |Â  9 ++--
>> Â  xen/arch/x86/hvm/dom0_build.cÂ Â Â Â Â Â Â Â  | 49 +++++++++++++---------
>> Â  xen/arch/x86/include/asm/dom0_build.h | 13 ++----
>> Â  xen/arch/x86/include/asm/setup.hÂ Â Â Â Â  |Â  7 ++--
>> Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â Â Â  | 59 ++++++++++++++++-----------
>> Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 33 ++++++++-------
>> Â  6 files changed, 95 insertions(+), 75 deletions(-)
>>
> 
>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/ 
>> dom0_build.c
>> index a4ac262db463..cd97f94a168a 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
> 
>> @@ -1301,16 +1302,25 @@ static void __hwdom_init 
>> pvh_setup_mmcfg(struct domain *d)
>> Â Â Â Â Â  }
>> Â  }
>> -int __init dom0_construct_pvh(struct domain *d, const module_t *image,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned long image_headroom,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  module_t *initrd,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const char *cmdline)
>> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>> Â  {
>> Â Â Â Â Â  paddr_t entry, start_info;
>> +Â Â Â  struct boot_module *image;
>> +Â Â Â  struct boot_module *initrd = NULL;
>> Â Â Â Â Â  int rc;
>> Â Â Â Â Â  printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
>> +Â Â Â  rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
>> +Â Â Â  if ( unlikely(rc < 0 || rc > bi->nr_modules) )
> 
> Here and ...
> 
>> +Â Â Â Â Â Â Â  panic("Missing kernel boot module for %pd construction\n", d);
>> +
>> +Â Â Â  image = &bi->mods[rc];
>> +
>> +Â Â Â  rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
>> +Â Â Â  if ( rc > 0 || rc < bi->nr_modules )
> 
> ... here.Â  Can we just check rc < bi->nr_modules for validity?Â  Valid 
> modules are 0...nr_modules and not found is MAX_NR_BOOTMODS + 1.Â  It 
> eliminates these unecessary double checks.Â  This would apply to 04/12 
> "x86/boot: introduce module release" as well.

Please see my response to Andy's response.


>> @@ -613,7 +630,7 @@ static int __init dom0_construct(struct domain *d,
>> Â Â Â Â Â Â Â Â Â  initrd_pfn = vinitrd_start ?
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  (vinitrd_start - v_start) >> PAGE_SHIFT :
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  domain_tot_pages(d);
>> -Â Â Â Â Â Â Â  initrd_mfn = mfn = initrd->mod_start;
>> +Â Â Â Â Â Â Â  initrd_mfn = mfn = initrd->mod->mod_start;
> 
> MISRA doesn't like these assignment chains?

Ugh, correct. Regression, not sure why, from previous review.

>> Â Â Â Â Â Â Â Â Â  count = PFN_UP(initrd_len);
>> Â Â Â Â Â Â Â Â Â  if ( d->arch.physaddr_bitsize &&
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ((mfn + count - 1) >> (d->arch.physaddr_bitsize - 
>> PAGE_SHIFT)) )
>> @@ -628,17 +645,17 @@ static int __init dom0_construct(struct domain *d,
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  free_domheap_pages(page, order);
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  page += 1UL << order;
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  }
>> -Â Â Â Â Â Â Â Â Â Â Â  memcpy(page_to_virt(page), mfn_to_virt(initrd->mod_start),
>> +Â Â Â Â Â Â Â Â Â Â Â  memcpy(page_to_virt(page), mfn_to_virt(initrd->mod- 
>> >mod_start),
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  initrd_len);
>> -Â Â Â Â Â Â Â Â Â Â Â  release_module(initrd, true);
>> -Â Â Â Â Â Â Â Â Â Â Â  initrd->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));
>> +Â Â Â Â Â Â Â Â Â Â Â  release_boot_module(initrd, true);
>> +Â Â Â Â Â Â Â Â Â Â Â  initrd->mod->mod_start = initrd_mfn = 
>> mfn_x(page_to_mfn(page));
> 
> Assignment chain here.

Ack.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 01:11:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 01:11:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831491.1246811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8r3Q-0003ZL-C4; Thu, 07 Nov 2024 01:11:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831491.1246811; Thu, 07 Nov 2024 01: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 1t8r3Q-0003ZE-9P; Thu, 07 Nov 2024 01:11:20 +0000
Received: by outflank-mailman (input) for mailman id 831491;
 Thu, 07 Nov 2024 01:11: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8r3P-0003Z8-2X
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 01:11:19 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f0cf6c9-9ca5-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 02:11:15 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173094187001415.199790424614548;
 Wed, 6 Nov 2024 17:11: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: 2f0cf6c9-9ca5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJmMGNmNmM5LTljYTUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQxODc2LjEzNzY0LCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1730941871; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=HFOLFFMxxVVusp8mjjeYdYVZYzVBi1a/MYQbk8Y2JY0QO6kgxZGSk2i1I6TWLcj2JM+DV7+1JnC1s8gZNBKX0ZSCDwmlau5uSQG+gdjb1TGy3T5SaQpYd8UGziScf+ua8359S2tIQzxWXaV11JhkCZKaq9TXLL0rH98Dh050Qec=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730941871; 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=eH7aAfbG1KG3/E0hO1jW3zLi6HI2ZqZgpiDCerskCYw=; 
	b=gSBD4kenIejjy8foDpVeOmLhlatf4f5vFKXVVzSiPEQ9F8rdfEqsJUrgVlomZKIwz+UYl0EsK6Wk+LR8ITulx8q3Mf+8joSil9PiWAXba2aAiD7MnITwC8IZ9imrfVpVEyW0qycZIJLIZ86eik9L+LbkxGOvLUGi8ktlOhxjgd4=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730941871;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=eH7aAfbG1KG3/E0hO1jW3zLi6HI2ZqZgpiDCerskCYw=;
	b=sEcJ3xGIiHLfV+ikurXEExvZTQlGrXVKVswA6xy15pHlCUGhuS4rPQ7t0eq2Y27I
	SMEp9G/lcIrGrpbKXgNogtRZ9AmRBVixBJW5TrnP9iRPHks9R7tu18xAHlrxj6KBioy
	TI79T4v7VUt1t6SwTQMgwtVjL3FIXsh0S2TeHIss=
Message-ID: <b1e6b6c3-4b38-4f56-bcd6-147ed0dc9a2b@apertussolutions.com>
Date: Wed, 6 Nov 2024 20:11:08 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/boot: convert domain construction to use boot
 info
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-9-dpsmith@apertussolutions.com>
 <990c8955-ae4a-449f-a40c-7c15faf61154@amd.com>
 <53590a98-f4cc-42cb-b85b-9820fcedecf3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <53590a98-f4cc-42cb-b85b-9820fcedecf3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 19:14, Andrew Cooper wrote:
> On 06/11/2024 11:06 pm, Jason Andryuk wrote:
>> On 2024-11-02 13:25, Daniel P. Smith wrote:
>>> With all the components used to construct dom0 encapsulated in struct
>>> boot_info
>>> and struct boot_module, it is no longer necessary to pass all them as
>>> parameters down the domain construction call chain. Change the
>>> parameter list
>>> to pass the struct boot_info instance and the struct domain reference.
>>>
>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> ---
>>> Changes since v5:
>>> - renamed from "x86/boot: convert create_dom0 to use boot info"
>>>
>>> Changes since v5:
>>> - change headroom back to unsigned long
>>> - make mod_idx unsigned int
>>> ---
>>>  Â  xen/arch/x86/dom0_build.cÂ Â Â Â Â Â Â Â Â Â Â Â  |Â  9 ++--
>>>  Â  xen/arch/x86/hvm/dom0_build.cÂ Â Â Â Â Â Â Â  | 49 +++++++++++++---------
>>>  Â  xen/arch/x86/include/asm/dom0_build.h | 13 ++----
>>>  Â  xen/arch/x86/include/asm/setup.hÂ Â Â Â Â  |Â  7 ++--
>>>  Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â Â Â  | 59 ++++++++++++++++-----------
>>>  Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 33 ++++++++-------
>>>  Â  6 files changed, 95 insertions(+), 75 deletions(-)
>>>
>>
>>> diff --git a/xen/arch/x86/hvm/dom0_build.c
>>> b/xen/arch/x86/hvm/dom0_build.c
>>> index a4ac262db463..cd97f94a168a 100644
>>> --- a/xen/arch/x86/hvm/dom0_build.c
>>> +++ b/xen/arch/x86/hvm/dom0_build.c
>>
>>> @@ -1301,16 +1302,25 @@ static void __hwdom_init
>>> pvh_setup_mmcfg(struct domain *d)
>>>  Â Â Â Â Â  }
>>>  Â  }
>>>  Â  -int __init dom0_construct_pvh(struct domain *d, const module_t
>>> *image,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned long image_headroom,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  module_t *initrd,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const char *cmdline)
>>> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>>>  Â  {
>>>  Â Â Â Â Â  paddr_t entry, start_info;
>>> +Â Â Â  struct boot_module *image;
>>> +Â Â Â  struct boot_module *initrd = NULL;
>>>  Â Â Â Â Â  int rc;
>>>  Â  Â Â Â Â Â  printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n",
>>> d->domain_id);
>>>  Â  +Â Â Â  rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
>>> +Â Â Â  if ( unlikely(rc < 0 || rc > bi->nr_modules) )
>>
>> Here and ...
>>
>>> +Â Â Â Â Â Â Â  panic("Missing kernel boot module for %pd construction\n", d);
>>> +
>>> +Â Â Â  image = &bi->mods[rc];
>>> +
>>> +Â Â Â  rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
>>> +Â Â Â  if ( rc > 0 || rc < bi->nr_modules )
>>
>> ... here.Â  Can we just check rc < bi->nr_modules for validity?
> 
> You could, but eventually MISRA will say no and I suspect it will then
> be made your problem to fix.
> 
> In this case, we ought to have an `unsigned int idx` and not (re)use rc.

I can move to using an unsigned and ...

> Also, we panic far earlier in __start_xen() if there's no dom0 kernel,
> so I think we can just assert that rather than having a logically dead
> panic() path.

convert it to an ASSERT().

>>  Â  Valid modules are 0...nr_modules and not found is MAX_NR_BOOTMODS +
>> 1.Â  It eliminates these unecessary double checks.Â  This would apply to
>> 04/12 "x86/boot: introduce module release" as well.
>>
>>> +Â Â Â Â Â Â Â  initrd = &bi->mods[rc];
>>> +
>>>  Â Â Â Â Â  if ( is_hardware_domain(d) )
>>>  Â Â Â Â Â  {
>>>  Â Â Â Â Â Â Â Â Â  /*
>>
>>
>>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>>> index c1f44502a1ac..594874cd8d85 100644
>>> --- a/xen/arch/x86/pv/dom0_build.c
>>> +++ b/xen/arch/x86/pv/dom0_build.c
>>
>>> @@ -374,10 +371,13 @@ static int __init dom0_construct(struct domain *d,
>>>  Â Â Â Â Â  unsigned int flush_flags = 0;
>>>  Â Â Â Â Â  start_info_t *si;
>>>  Â Â Â Â Â  struct vcpu *v = d->vcpu[0];
>>> -Â Â Â  void *image_base = bootstrap_map(image);
>>> -Â Â Â  unsigned long image_len = image->mod_end;
>>> -Â Â Â  void *image_start = image_base + image_headroom;
>>> -Â Â Â  unsigned long initrd_len = initrd ? initrd->mod_end : 0;
>>> +Â Â Â  struct boot_module *image;
>>> +Â Â Â  struct boot_module *initrd = NULL;
>>> +Â Â Â  void *image_base;
>>> +Â Â Â  unsigned long image_len;
>>> +Â Â Â  void *image_start;
>>> +Â Â Â  unsigned long initrd_len = 0;
>>> +Â Â Â  const char *cmdline;
>>>  Â Â Â Â Â  l4_pgentry_t *l4tab = NULL, *l4start = NULL;
>>>  Â Â Â Â Â  l3_pgentry_t *l3tab = NULL, *l3start = NULL;
>>>  Â Â Â Â Â  l2_pgentry_t *l2tab = NULL, *l2start = NULL;
>>> @@ -414,6 +414,23 @@ static int __init dom0_construct(struct domain *d,
>>>  Â  Â Â Â Â Â  printk(XENLOG_INFO "*** Building a PV Dom%d ***\n",
>>> d->domain_id);
>>>  Â  +Â Â Â  i = first_boot_module_index(bi, BOOTMOD_KERNEL);
>>> +Â Â Â  if ( unlikely(i < 0 || i > bi->nr_modules) )
>>
>> Single check here.
> 
> Similar argument.Â  Except it turns out that i is used for precisely two
> loops in dom0_construct() both of which are from 0 to either 4 or 32.
> 
> So it very much can be converted to being an unsigned variable, and then
> this works nicely.

Ack.

> That said, drop the unlikely().Â Â  This is an init function run once, and
> all it is doing is reducing legibility.

Ack.

>>
>>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>>> index aba9df8620ef..d9785acf89b6 100644
>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -977,10 +977,7 @@ static unsigned int __init copy_bios_e820(struct
>>> e820entry *map, unsigned int li
>>>  Â Â Â Â Â  return n;
>>>  Â  }
>>>  Â  -static struct domain *__init create_dom0(const module_t *image,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned long headroom,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  module_t *initrd, const
>>> char *kextra,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const char *loader)
>>> +static struct domain *__init create_dom0(struct boot_info *bi)
>>>  Â  {
>>>  Â Â Â Â Â  static char __initdata cmdline[MAX_GUEST_CMDLINE];
>>>  Â  @@ -997,6 +994,14 @@ static struct domain *__init create_dom0(const
>>> module_t *image,
>>>  Â Â Â Â Â  };
>>>  Â Â Â Â Â  struct domain *d;
>>>  Â Â Â Â Â  domid_t domid;
>>> +Â Â Â  struct boot_module *image;
>>> +Â Â Â  unsigned int idx;
>>> +
>>> +Â Â Â  idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
>>> +Â Â Â  if ( unlikely(idx < 0 || idx > bi->nr_modules) )
>>
>> Single check here please.
> 
> I'm surprised that the compiler didn't complain about "idx < 0" being
> tautological here.

As above, unsigned and ASSERT.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 01:14:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 01:14:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831497.1246821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8r64-00047A-Of; Thu, 07 Nov 2024 01:14:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831497.1246821; Thu, 07 Nov 2024 01:14: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 1t8r64-000473-Lt; Thu, 07 Nov 2024 01:14:04 +0000
Received: by outflank-mailman (input) for mailman id 831497;
 Thu, 07 Nov 2024 01:14: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t8r62-00046x-Pm
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 01:14:02 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90e3cb6e-9ca5-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 02:14:00 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730942032804316.4659053353964;
 Wed, 6 Nov 2024 17:13: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: 90e3cb6e-9ca5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkwZTNjYjZlLTljYTUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTQyMDQwLjU3NDMyNywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1730942035; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=a2RyTlskiuueu3mMb7uEzxMvbCKqEGZEnaxRAVxrUQMR20DBZsk5dl7dv/9NiuaJXbU8/l+GCFUOZ1MCZZq3jkXK2DyzW6hDtuM2vrpt/L+bIFnpmsWcA8453KZDwOtUQZ1VBbycAIQQsm4fHB1zip9EM/dWr3KetOp+0g5qrwQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730942035; 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=HqMJazsdIFaJ4mH78mQUuSonJ1WjNlhBuGlyCpIY5k4=; 
	b=VGoE5bvehaWq4sZS0wcCBnUwjjexayKup9PzuMGPCrvSUkrboAy4QBmPObIHj2mQnAcj/Vcx/tKKZSaUZ2Dyt/Fq70msiFNGRHmzb/XxAAdbokRT6q+BGQf9D9CWLJE9Qbua7fLocQTJrTWH8Sf/xHaqCJTmG5hnrQJIa0m12A0=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730942035;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=HqMJazsdIFaJ4mH78mQUuSonJ1WjNlhBuGlyCpIY5k4=;
	b=cSd/PV10fmxzQl3my2A/0LiKGq+uL2DQ1PF+nVOkS6LHoDYiVfVsUuE3o2vA6UAP
	iJ5XT8lIGsJ5+P8lYHHJWzXmRf7CfNnejZqGjgmK7pTHimxeKSC3oChUi02pebzlUyZ
	gmqYMGu+DsltmvKa6chG+C+WOP5vpEaufnfQZhb0=
Message-ID: <53b8f7c6-3e02-4f5d-a0bd-25becdd0fcc7@apertussolutions.com>
Date: Wed, 6 Nov 2024 20:13:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/boot: convert domain construction to use boot
 info
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-9-dpsmith@apertussolutions.com>
 <2c1849f0-90f0-4e76-b8f9-c925522fc2e5@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <2c1849f0-90f0-4e76-b8f9-c925522fc2e5@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/6/24 19:43, Andrew Cooper wrote:
> On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
>> @@ -1301,16 +1302,25 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
>>       }
>>   }
>>   
>> -int __init dom0_construct_pvh(struct domain *d, const module_t *image,
>> -                              unsigned long image_headroom,
>> -                              module_t *initrd,
>> -                              const char *cmdline)
>> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>>   {
>>       paddr_t entry, start_info;
>> +    struct boot_module *image;
>> +    struct boot_module *initrd = NULL;
>>       int rc;
>>   
>>       printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
>>   
>> +    rc = first_boot_module_index(bi, BOOTMOD_KERNEL);
>> +    if ( unlikely(rc < 0 || rc > bi->nr_modules) )
>> +        panic("Missing kernel boot module for %pd construction\n", d);
> 
> Just noticed while experimenting.Â  The upper bound (for the error case)
> should be >= because nothing good can come of being handed the Xen module.

Ack.

>> +
>> +    image = &bi->mods[rc];
>> +
>> +    rc = first_boot_module_index(bi, BOOTMOD_RAMDISK);
>> +    if ( rc > 0 || rc < bi->nr_modules )
>> +        initrd = &bi->mods[rc];
> 
> This range check is tautologically true.Â  You want && instead of ||.
> 
> Same elsewhere, although this goes away when the variable is unsigned
> (and we remove assumptions about the dom0 kernel's index).

Ack.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 08:49:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 08:49:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831519.1246832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8yCu-0006yw-8z; Thu, 07 Nov 2024 08:49:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831519.1246832; Thu, 07 Nov 2024 08:49: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 1t8yCu-0006yp-4m; Thu, 07 Nov 2024 08:49:36 +0000
Received: by outflank-mailman (input) for mailman id 831519;
 Thu, 07 Nov 2024 08:49: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8yCs-0006yj-FO
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 08:49:34 +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 33d39634-9ce5-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 09:49:30 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9ec267b879so104616366b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 00:49:30 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17643sm63672266b.21.2024.11.07.00.49.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 00:49: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: 33d39634-9ce5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMzZDM5NjM0LTljZTUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTY5MzcwLjU0NjI4LCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730969369; x=1731574169; 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=09SQ87ZB9lYkZ4opBgm3YjpRGD4piTTFwgGq+KVliIc=;
        b=T+Zemi8BzkRvKjW5fFHnE4VL4320FK+TucpvMpm5Apk91dhWteiBZKGUC/S9Xb52WU
         8w9ud9wm0qzoL+joHX5dAufTAaVDeZU4+uVXUmKyY28kQE9mkNtUanqPuvgcuL5EmMD5
         8NtHQafbPeZ/ejUbZ8cz+rBPrSV8/qcSH4Bsw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730969369; x=1731574169;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=09SQ87ZB9lYkZ4opBgm3YjpRGD4piTTFwgGq+KVliIc=;
        b=iRcYmSdFI2SJcP9SB3aTH6qqxIqvTAOsoXKNQn4/QnDPhAflYEOh+X+EqA2pK2knkX
         jQmD1AbKZMbB2qrFp4LEblx4xC0XHmDJGtkWcnXXH8ONrKKUgz05nhJ1spQkI99FHNTw
         YaNdz7OhFPLXr+M5zAFaPpUUcl0R4u6I4W/GgH4albiK2Jigqv5DHNppHrC8f5ggnkDn
         qy8Cg1RhU5z/nr/IyT+7YJwj9w1QuN4TlOC/XtJfmuOK8DuPIV6+z58rRWZ+gw1VtSdo
         ZuPw5919/LTxjWffXE7TplD/ELFQHWiBIyK4pJFXSrlVJwxe9o8rJB/MTnAdZTh2Qnqp
         WC3g==
X-Gm-Message-State: AOJu0Yy0fjwpJUW8cOGSBpAw+NOGs9xJoonKHE1Jo+RZjUoT3ty2iUGC
	TJ9idDUGIKcUe7sBMX7LXVgg8pahykRb3J16sMAp0S9sntAKPsJNcYL4jjPZgM6MkdKoVyV8H7e
	I
X-Google-Smtp-Source: AGHT+IHKKRom8I21n8oDX4xAcaH2ltJu2AdHOpUtLNRiLPsXF/63kW4uMC7PagXvM3k65xu81OXg+A==
X-Received: by 2002:a17:907:7e8d:b0:a9a:e6:a031 with SMTP id a640c23a62f3a-a9ee7568a87mr16742166b.59.1730969369568;
        Thu, 07 Nov 2024 00:49:29 -0800 (PST)
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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/Kconfig: livepatch-build-tools requires debug information
Date: Thu,  7 Nov 2024 09:49:27 +0100
Message-ID: <20241107084927.37748-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The tools infrastructure used to build livepatches for Xen
(livepatch-build-tools) consumes some DWARF debug information present in
xen-syms to generate a livepatch (see livepatch-build script usage of readelf
-wi).

The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
on release builds, thus providing a default Kconfig selection that's not
suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
because it's missing the DWARF debug section.

Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/common/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 90268d92499a..f3135f85034d 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -420,6 +420,7 @@ config LIVEPATCH
 	default X86
 	depends on "$(XEN_HAS_BUILD_ID)" = "y"
 	select CC_SPLIT_SECTIONS
+	select DEBUG_INFO
 	help
 	  Allows a running Xen hypervisor to be dynamically patched using
 	  binary patches without rebooting. This is primarily used to binarily
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:05:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:05:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831530.1246841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ySS-0001HM-Kp; Thu, 07 Nov 2024 09:05:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831530.1246841; Thu, 07 Nov 2024 09:05: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 1t8ySS-0001HF-Hf; Thu, 07 Nov 2024 09:05:40 +0000
Received: by outflank-mailman (input) for mailman id 831530;
 Thu, 07 Nov 2024 09:05: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8ySR-0001H7-Eg
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:05:39 +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 72f3c2e0-9ce7-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:05:35 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so118109466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:05: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
 a640c23a62f3a-a9ee0a4b5cesm64716566b.72.2024.11.07.01.05.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 01:05: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: 72f3c2e0-9ce7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcyZjNjMmUwLTljZTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcwMzM1LjM0OTQwNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730970335; x=1731575135; 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=tRyRQ6ac7W6xsATqWq4b0tTA709f6tGCsC14IhqOfIg=;
        b=FbK5yxQYfUwgBuA6NmyDmaNT8zVXwLicTks4mtXDHkgmBlRBCKHgWYR6spcjwPiC6/
         awWWB+77birjBV2vXrzsMnTxQ5Rt8g5W3g+ia9R9g87qxoInhh1cRKtvGuo3JvmxjCY9
         qbCBuLS0PeSfqL6+JV5AM/ItkRtLiFVTZNDmWm3MLldzGTJDmcT8Z755a15Mkx4VkqBU
         nB7HLNDDtNSYW3gd9+3E7IOVpTn6v1/WvSwK5s0UAnfoSyh4qGakfQ9gK/ZK4OIioWuk
         dQyRQC/dH3a5n58el0KyPyV8uOn0PB97FyKHj6osaBCUQgq3MKh1pAr51Eedyvnmx3Va
         6cYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730970335; x=1731575135;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tRyRQ6ac7W6xsATqWq4b0tTA709f6tGCsC14IhqOfIg=;
        b=uoRWqyVzAvX+jfWb+IL0/QDNzlmlcipK788+l4AHMKSUIdO3ooM3FaLAB+iXPoO8OD
         VYf0SYslXU/ofmBolHqHrUeCZuVwACH6inVNmmMVA9pl6DzI5Rmzp3Vtp2QbsExIv8c+
         0LjdB3cTscveBfRL3L6+qT3jwT+g+rq8DjoJIUECr1qLEB7HYBOsh9fJgAZ1lcZe7cse
         4Zarsb+VWkICQCqdQvf2phhrZzs5w1ws6DqY/Sg1XncLWM0KmQLaAHNs59qI7RjVyotN
         aBuRArDCr07OEqZcIA7ccAu92Pya1fibD8yfmCFGvKZv0XaB3171GVL1Gug48DrWedlw
         j+CQ==
X-Forwarded-Encrypted: i=1; AJvYcCXAQ6jOTfQkuEgS0RA8Pv51GGfd64Oaewk7vc8UMYbm/r/DyWoyonUNvv4+CyLk8KmIXlU1ilBAdFc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMJvBYWKoRUVn0ldMrrDd6oY+7VI6iu2sD1/9jA1J4k6FkPg4M
	CdO4q3h0UndmfvlluHcQTX/U71UAhb3FH2GKDIX3hBm7Z6cP0wUD49M+u/uj3w==
X-Google-Smtp-Source: AGHT+IFxRgnh5TFkVbFh1KqWaVZ4vB+b8rpPTnXsBkM79Vx9dIR/x3VfuolKk0oUUzoWNbhzlWyzTw==
X-Received: by 2002:a17:906:f5a1:b0:a99:42e7:21f with SMTP id a640c23a62f3a-a9de5ff9e6fmr4051501366b.37.1730970334637;
        Thu, 07 Nov 2024 01:05:34 -0800 (PST)
Message-ID: <3ee6d76d-25ee-4c14-a71a-e93d06812320@suse.com>
Date: Thu, 7 Nov 2024 10:05:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 01/13] xen/common: add cache coloring common code
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Marco Solieri <marco.solieri@minervasys.tech>, xen-devel@lists.xenproject.org
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-2-carlo.nonato@minervasys.tech>
 <6e6f8e2a-ea16-4b48-ac70-23e72ade2b1a@suse.com>
 <CAG+AhRUtmpB1uSd5kW7zNjyDdmBcVCta9t5Qdu6ND+RYx3VUfQ@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: <CAG+AhRUtmpB1uSd5kW7zNjyDdmBcVCta9t5Qdu6ND+RYx3VUfQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 17:09, Carlo Nonato wrote:
> On Tue, Nov 5, 2024 at 4:46â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>> On 25.10.2024 11:50, Carlo Nonato wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -71,6 +71,9 @@ config HAS_IOPORTS
>>>  config HAS_KEXEC
>>>       bool
>>>
>>> +config HAS_LLC_COLORING
>>> +     bool
>>> +
>>>  config HAS_PIRQ
>>>       bool
>>>
>>> @@ -516,4 +519,23 @@ config TRACEBUFFER
>>>         to be collected at run time for debugging or performance analysis.
>>>         Memory and execution overhead when not active is minimal.
>>>
>>> +config LLC_COLORING
>>> +     bool "Last Level Cache (LLC) coloring" if EXPERT
>>> +     depends on HAS_LLC_COLORING
>>> +     depends on !NUMA
>>
>> Instead of this dependency, wouldn't it be more natural to suppress the
>> setting of HAS_LLC_COLORING by an arch when NUMA is on?
> 
> So moving the "depends on" in the HAS_LLC_COLORING definition? Yes I believe
> it would be better.

No. Putting it on an option without prompt will, iirc, only cause a warning
when violated, but will otherwise have no real effect. The "select" of
HAS_LLC_COLORING wants to become dependent upon !NUMA, until that combination
was made work.

>>> --- /dev/null
>>> +++ b/xen/common/llc-coloring.c
>>> @@ -0,0 +1,111 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +/*
>>> + * Last Level Cache (LLC) coloring common code
>>> + *
>>> + * Copyright (C) 2022 Xilinx Inc.
>>
>> Does this need updating (if it can't be dropped)?
> 
> I don't remember what's the current policy for these copyright lines.
> Do you still use them? If they are used, should they reflect the history
> of the revisions of the patch series? I mean, in v1 it was "2019 Xilinx Inc."
> 2023-2024 would then be MinervaSys.

I don't know what the policy is either. I think it can be there or it can
be omitted. Yet if it's there, I think it wants to be accurate at least at
the time a new file is being added. (These lines usually aren't updated
when later changes are made to the files.)

>>> +void __init llc_coloring_init(void)
>>> +{
>>> +    unsigned int way_size;
>>> +
>>> +    if ( llc_size && llc_nr_ways )
>>> +    {
>>> +        llc_coloring_enabled = true;
>>> +        way_size = llc_size / llc_nr_ways;
>>> +    }
>>> +    else if ( !llc_coloring_enabled )
>>> +        return;
>>> +    else
>>> +    {
>>> +        way_size = get_llc_way_size();
>>> +        if ( !way_size )
>>> +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' missing\n");
>>> +    }
>>> +
>>> +    /*
>>> +     * The maximum number of colors must be a power of 2 in order to correctly
>>> +     * map them to bits of an address.
>>> +     */
>>> +    max_nr_colors = way_size >> PAGE_SHIFT;
>>
>> This discards low bits of the quotient calculated above, bearing a certain
>> risk that ...
>>
>>> +    if ( max_nr_colors & (max_nr_colors - 1) )
>>> +        panic("Number of LLC colors (%u) isn't a power of 2\n", max_nr_colors);
>>
>> ... this panic() wrongly doesn't trigger.
> 
> Yes, but I don't care if way_size isn't a power of 2.

Well, you may not care, but imo the resulting configuration ought to reflect
what was requested on the command line (maybe unless e.g. documentation
explicitly says otherwise). If way_size has low bits set, that wouldn't be
the case.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:19:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:19:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831540.1246851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8yfl-00038y-Qi; Thu, 07 Nov 2024 09:19:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831540.1246851; Thu, 07 Nov 2024 09:19: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 1t8yfl-00038r-MY; Thu, 07 Nov 2024 09:19:25 +0000
Received: by outflank-mailman (input) for mailman id 831540;
 Thu, 07 Nov 2024 09:19: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8yfj-00038l-V9
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:19:23 +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 5ec3d822-9ce9-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 10:19:20 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43193678216so6633235e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:19: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-381eda137cesm1130698f8f.108.2024.11.07.01.19.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 01:19: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: 5ec3d822-9ce9-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVlYzNkODIyLTljZTktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTcxMTYwLjQ4ODQxLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730971160; x=1731575960; 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=8t8No/UVl29MEUMNuXPjvD4eBIQShE/o7jicsd79qPI=;
        b=D4REkJGAMGlYOUG4sbtayrGeem6/V/LCtbhzKdHOy0qY6qUkdiyJqABEiSVUcViRov
         7nCmABlalzTd7ns5F3UamCjdMIqRNPJK5KgQP4uz/8mv5wkv8Wvcq7AR0Iq+H9PHI/gc
         1mwIvPK+cVj2eyMd7HPw/HjvdkPIQ4jdcUaB5xvSBlCD/27OPCmZNUBovZwyq6I0F4aM
         xkREuZYDN6mMOCdVHOT+5m0AsZ2xw3XBM9eKmwolKnsr8OF6h21yFOFvp7r3FNGB9v02
         I5DBmIdwFQSGNkcQc3TJ+rn3/zI8cONZ2cx7M8pwoFYw4FwewX18KHane+S3NcbY6lYc
         Km+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730971160; x=1731575960;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8t8No/UVl29MEUMNuXPjvD4eBIQShE/o7jicsd79qPI=;
        b=eecs4JTbfdMjy5mdZVWuhFPZrZmXwguubwal6032qFnAhg8drYLy9Eojlyy8dS2GE/
         nJDNhnzeGx4whgrAgi6Jaj9vUBXqsyXmoHyw5N9QTFtEbJi8uq6MERjiF4637Q5w3W7F
         B43CAS+ZxRQ5NbQLvFbUaHnJc/q1R1//Y92Bn7wCJ1seDO71TeyJRXS7PvL9b6RPgjAh
         yUMDeK81OV5osm/q3T49WUozksDhG11wKpggm2FQRrsZvg/I0e2Z9QkOllDQwZH92i2U
         2/tIH3QbpWKI3diPnMk4zmgYjLmRW95XZ5VdSMp2lDeKfgVe5Ckt4QVBlRpknZc0Uh0X
         UZPg==
X-Forwarded-Encrypted: i=1; AJvYcCXNc54uzasFjx1c6jJ58SOwCXIWnAVDgHKFp/OT8+SnLgrrTPEXq3thyn/V3w/LgXH7RfOcZ2eIrcM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz7cXLB6u147GmpC3/zEyahvT6DKBYYqd3bRDcoig0BQg+hxqfx
	XtKksdbrUOu5vSUcgJmtjXH+ChwHaDYQDmsSOI1u2DGecthCUFXM4PC4LAGpOQ==
X-Google-Smtp-Source: AGHT+IFivhK52z6qr6NBni8n/5Tg3I6D7y3agLASvSpWI6OIVMQe+1U+pjm4D2zlbjbkn4rMjVC+bg==
X-Received: by 2002:a5d:6943:0:b0:37d:4e74:68a with SMTP id ffacd0b85a97d-380611e0f5bmr27798608f8f.46.1730971160022;
        Thu, 07 Nov 2024 01:19:20 -0800 (PST)
Message-ID: <15f8c4d9-bd90-4b1e-9cea-53e62d601a58@suse.com>
Date: Thu, 7 Nov 2024 10:19:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] xen/riscv: introduce setup_mm()
To: 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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
 <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.git.oleksii.kurochko@gmail.com>
 <9e22b5ad-634f-48b7-b64c-fc44319a1d4d@suse.com>
 <8380261d24388e453e74514dad8216c97e3bebee.camel@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: <8380261d24388e453e74514dad8216c97e3bebee.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 13:44, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-11-05 at 16:20 +0100, Jan Beulich wrote:
>> On 01.11.2024 14:16, Oleksii Kurochko wrote:> @@ -423,3 +429,138 @@
>> void * __init early_fdt_map(paddr_t fdt_paddr)
>>> Â 
>>> Â Â Â Â  return fdt_virt;
>>> Â }
>>> +
>>> +vaddr_t __ro_after_init directmap_virt_start =
>>> DIRECTMAP_VIRT_START;
>>> +
>>> +#ifndef CONFIG_RISCV_32
>>> +
>>> +/* Map a frame table to cover physical addresses ps through pe */
>>> +static void __init setup_frametable_mappings(paddr_t ps, paddr_t
>>> pe)
>>> +{
>>> +Â Â Â  paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>>> +Â Â Â  paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>>> +Â Â Â  unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
>>> +Â Â Â  unsigned long frametable_size = nr_mfns *
>>> sizeof(*frame_table);
>>> +Â Â Â  mfn_t base_mfn;
>>> +
>>> +Â Â Â  if ( frametable_size > FRAMETABLE_SIZE )
>>> +Â Â Â Â Â Â Â  panic("The frametable cannot cover [%#"PRIpaddr",
>>> %#"PRIpaddr")\n",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â  ps, pe);
>>> +
>>> +Â Â Â  /*
>>> +Â Â Â Â  * align base_mfn and frametable_size to MB(2) to have
>>> superpage mapping
>>> +Â Â Â Â  * in map_pages_to_xen()
>>> +Â Â Â Â  */
>>> +Â Â Â  frametable_size = ROUNDUP(frametable_size, MB(2));
>>> +Â Â Â  base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT,
>>> PFN_DOWN(MB(2)));
>>> +
>>> +Â Â Â  if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  PFN_DOWN(frametable_size),
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  PAGE_HYPERVISOR_RW) )
>>> +Â Â Â Â Â Â Â  panic("frametable mappings failed: %#lx -> %#lx\n",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â  FRAMETABLE_VIRT_START, mfn_x(base_mfn));
>>> +
>>> +Â Â Â  memset(&frame_table[0], -1, frametable_size);
>>> +Â Â Â  memset(&frame_table[PFN_DOWN(aligned_ps)],
>>> +Â Â Â Â Â Â Â Â Â Â  0, nr_mfns * sizeof(*frame_table));
>>
>> Interesting - now you write out a huge amount of -1s, just to then
>> overwrite
>> most of them with zeroes. I'm not going to insist that you change
>> this yet
>> another time, but the performance hit from this is going to bite
>> you/us as
>> soon as Xen is run on bigger-memory systems.
> I agree that validating or invalidating frames in a single pass would
> be preferable to nearly two passes. Iâ€™m considering whether thereâ€™s a
> way to ensure that frame_table is set to -1 at compile time.

How would that work, if the entire frame table is allocated dynamically?

> It seems
> the best approach (and only one?) might be to initialize frame_table in
> one pass as follows:
> 1) [0, aligned_ps) = -1
> 2) [aligned_ps, nr_mfns * sizeof(*frame_table)) = 0
> 3) [nr_mfns * sizeof(*frame_table), frame_table_size) = -1
> Does this approach seem optimal?

That's what I would have expected, yes.

>> Plus, unless I'm mistaken, the function continues to rely on ps == 0
>> as
>> input. Just that the dependency is now better hidden. Specifically if
>> you
>> calculate nr_mfns from the difference, and then use that for
>> allocation,
>> then you need to offset the start of the mapping you create
>> accordingly.
> I'm not quite understanding why the method of calculating nr_mfns
> affects how the frame_table is mapped. Isnâ€™t it only necessary to
> calculate the correct size of the frame_table that needs to be
> allocated?

Assume there's 4G of memory actually starting at 16G. Afaict you'll
allocate a frame table for those 4G, but you'll map it right at
FRAMETABLE_VIRT_START. Hence it'll cover the first 4G of physical
addresses, but _none_ of the actual memory you've got.

> I assume by the offset you mean something similar to what was done for
> directmap mapping?

Kind of, yes.

>>  At
>> which point you may need to apply extra care to cover the case where
>> sizeof(*frame_table) is not a power of two, and hence e.g. the first
>> valid
>> page might have a struct instance straddling a page boundary.
> The first valid page is aligned_ps ( which is aligned on a page
> boundary ) so assuming that sizeof(*frame_table) < PAGE_SIZE we can't
> straddle a page boundary, can we?

But sizeof(*frame_table) < PAGE_SIZE means nothing as to the alignment
of an individual struct instance in memory. Iirc sizeof(*frame_table)
is 48 for RISC-V, so the common alignment across struct instances isn't
going to be better than 8, and there _will_ be instances straddling
page boundaries.

>>> +Â Â Â  /*
>>> +Â Â Â Â  * The base address may not be aligned to the second level
>>> +Â Â Â Â  * size in case of Sv39 (e.g. 1GB when using 4KB pages).
>>> +Â Â Â Â  * This would prevent superpage mappings for all the regions
>>> +Â Â Â Â  * because the virtual address and machine address should
>>> +Â Â Â Â  * both be suitably aligned.
>>> +Â Â Â Â  *
>>> +Â Â Â Â  * Prevent that by offsetting the start of the directmap
>>> virtual
>>> +Â Â Â Â  * address.
>>> +Â Â Â Â  */
>>> +Â Â Â  if ( map_pages_to_xen(DIRECTMAP_VIRT_START + (base_addr &
>>> ~high_bits_mask),
>>
>> I'm afraid this is correct only for the first invocation of the
>> function.
>> For any further invocation you'd likely (attempt to) replace
>> previously
>> established mappings. I think that here you need to use
>> directmap_virt_start
>> instead.
> Banks are sorted by bank start address ( common/device-
> tree/bootfdt.c:623 ):
>        /*
>         * On Arm64 setup_directmap_mappings() expects to be called with
>    the lowest
>         * bank in memory first. There is no requirement that the DT will
>    provide
>         * the banks sorted in ascending order. So sort them through.
>         */
>        sort(mem->bank, mem->nr_banks, sizeof(struct membank),
>             cmp_memory_node, swap_memory_node);
> ( btw, comment is needed to be updated ... )
> 
> Thereby no replacement should happen if I don't miss something.

I don't see how banks being sorted matters here. On the 2nd invocation
you'll start mapping pages again from DIRECTMAP_VIRT_START plus an at
most 1G (for SV39) offset. If both banks have 2G, the resulting mappings
will necessarily overlap, if I'm not mistaken.

>>> +Â Â Â  for ( i = 0; i < banks->nr_banks; i++ )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  const struct membank *bank = &banks->bank[i];
>>> +Â Â Â Â Â Â Â  paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
>>> +Â Â Â Â Â Â Â  paddr_t bank_end = ROUNDDOWN(bank->start + bank->size,
>>> PAGE_SIZE);
>>> +Â Â Â Â Â Â Â  unsigned long bank_size = bank_end - bank_start;
>>> +
>>> +Â Â Â Â Â Â Â  ram_size += bank_size;
>>> +Â Â Â Â Â Â Â  ram_start = min(ram_start, bank_start);
>>> +Â Â Â Â Â Â Â  ram_end = max(ram_end, bank_end);
>>> +
>>> +Â Â Â Â Â Â Â  setup_directmap_mappings(PFN_DOWN(bank_start),
>>> PFN_DOWN(bank_size));
>>> +Â Â Â  }
>>
>> You maintain ram_start in the loop, just to then ...
>>
>>> +Â Â Â  total_pages = PFN_DOWN(ram_size);
>>> +
>>> +Â Â Â  setup_frametable_mappings(0, ram_end);
>>> +Â Â Â  max_page = PFN_DOWN(ram_end);
>>> +}
>>
>> ... not use it at all - why?
> ram_start was needed for the case when setup_frametable_mappings() used
> it as the first argument. Now it isn't true anymore so should be
> dropped.

As per above it may actually be necessary (or at least desirable) to pass
it into there again, if nothing else then to know how much of the initial
part of the (mapped) frame table to invalidate.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:21:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:21:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831546.1246860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8yho-0004aO-48; Thu, 07 Nov 2024 09:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831546.1246860; Thu, 07 Nov 2024 09:21: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 1t8yho-0004aH-1Y; Thu, 07 Nov 2024 09:21:32 +0000
Received: by outflank-mailman (input) for mailman id 831546;
 Thu, 07 Nov 2024 09:21: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t8yhn-0004a6-Jy
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:21:31 +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 aac563c7-9ce9-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:21:27 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5cec7cde922so855543a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:21:27 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7f1sm577582a12.8.2024.11.07.01.21.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 01:21: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: aac563c7-9ce9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFhYzU2M2M3LTljZTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcxMjg3Ljk3NjcyNCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730971287; x=1731576087; 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=+CJH+ao0PY0No8GlLcJu+ZaQIMWVulzskxujc+D6UuU=;
        b=M8FoKzhAVCnX1OGdhk8nPBvpPMOOvuiG6GhTsJ5oMrsBOhM9iMlEeRZvyyi+yJ5coe
         W8Xh6oLH+jfNueALVq603Dd5hlx873nW7tODZGbCbyAZ43qzQ6amvYFJ87fpz4ISGVTI
         uWZIyDcG9sdLAY2RWSOeu7R0HJ0g0O1QilluI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730971287; x=1731576087;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+CJH+ao0PY0No8GlLcJu+ZaQIMWVulzskxujc+D6UuU=;
        b=IDE0HZloE4DZMmEciPrN/7uQxzz60qkLwEhQiJy5NEmi87ja6ld6lAoDETH5xaWq1K
         tQ/8GYiMKHbXjK0w1BY+Pd06b/MvROWRaNUpHDPR/rhUDU6t7CFu1jJWRif33UayP5tH
         /69Dz47HOfhT/sWy96rDKgfOui5ImiK5M3nT5QW7yh3lWoBs535Vh0/W4Es5+QuxK9U3
         JR0hOi5ox3WTTdgacXhH6NVt/OsB/9I4j/ExY8+U6e5Vq5zI+dV+EkCh+ZR7aQoyxj27
         LXSr1xSeMpV9i3VpXAKHqCwu+gAagd/ZA+V6Be+P9rmkU8fIHO2q3FUvCIal6218Jvah
         os+Q==
X-Forwarded-Encrypted: i=1; AJvYcCX4WcHP4lqR3qTxTC+RVQBOChDVF+7i6xQZaarPD9hV+CiKVgatbhnX6s9o1/yEDhePgJJVQ5kCWM8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyt4Xw4TNna7XzUOyI3SGFI2flr2mEhYQiFAEqUxe6Da5iC9k1m
	Zyis9N2BUzsY3hkU8n40MemcHV/TnbxvNO4IYhdIQCo64zEisdH/l9M9myjRX20=
X-Google-Smtp-Source: AGHT+IEfVGF38hiCs7eO6CXH5sn47eGU16YMjB7xSftyQZkzpy1NAVqhUGpEQVDEjtR8ntgcR6hN2w==
X-Received: by 2002:a05:6402:1d4e:b0:5cf:457:343a with SMTP id 4fb4d7f45d1cf-5cf059b94d8mr514538a12.16.1730971287380;
        Thu, 07 Nov 2024 01:21:27 -0800 (PST)
Message-ID: <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com>
Date: Thu, 7 Nov 2024 09:21:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241107084927.37748-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241107084927.37748-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/11/2024 8:49 am, Roger Pau Monne wrote:
> The tools infrastructure used to build livepatches for Xen
> (livepatch-build-tools) consumes some DWARF debug information present in
> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
> -wi).
>
> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
> on release builds, thus providing a default Kconfig selection that's not
> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
> because it's missing the DWARF debug section.
>
> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Oops, yes.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Fixes tag ?


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:25:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:25:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831554.1246871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ylJ-0005Ef-Ls; Thu, 07 Nov 2024 09:25:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831554.1246871; Thu, 07 Nov 2024 09:25: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 1t8ylJ-0005EY-IW; Thu, 07 Nov 2024 09:25:09 +0000
Received: by outflank-mailman (input) for mailman id 831554;
 Thu, 07 Nov 2024 09:25: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8ylI-0005ES-2v
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:25:08 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2c0a772e-9cea-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:25:04 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-539f6e1f756so712876e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:25: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
 5b1f17b1804b1-432aa5b5db0sm52938515e9.5.2024.11.07.01.25.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 01:25: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: 2c0a772e-9cea-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJjMGE3NzJlLTljZWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcxNTA0LjgyODg4NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730971504; x=1731576304; 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=55xtnYlRJmcZKTVbj5Xk7NZjM10t2C3yrI4zdzF2On8=;
        b=WDQBRvEi5aX2q1Y4TWFP2qhaJPWIBDTShJUHAHC0WnQnnUAvPsnpNzB2AJ9Ht0KKzN
         6+YQB2ujfKCY+f284/pnA+qYDnsEDpofNXsGUL4u95s0E71h6GZazkeguUhFcKPcUqx6
         4box9TTpb9zT8aVYH9jdHBIMa8bYSpdBJKjmn5fqUdMiqLLrwSZ1RSLUbGCYTiusRqj2
         KFjLjNEnkNHLPclbr0ZG1KeCVj8DtETWKFYX1h4uhXdx+3nhH5aS6AbR3mf/OxU9gvCv
         7HIRN8QynIrVHUXg7kB0JnXUA7znu2Dx9Fw4KBhQXq6Dx8NhnlPpg8pwk7CkhiNR/DJ6
         oU6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730971504; x=1731576304;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=55xtnYlRJmcZKTVbj5Xk7NZjM10t2C3yrI4zdzF2On8=;
        b=m31dd/jFEnIzrG/BkVgxdd5/SzhgOltnHsfXwnusomAmpatieje9ItKjzQ5Oye3gKW
         oAF3JR8bQjBSSJYYyuPPgi22xUklsvaJ/ZkX3Mg6xXLALieKELDBdsOqvyb5FDHiLzbo
         lmWN1AnsB41PfguKe5dj2v+PpT982cK6981giFGDLxsXw5ePFp2wffQvN++p9YgdmDsQ
         bQdSfqMzLlCZjoz2G7iaLxg6Kxzp86tbalh5Y4PoAUvlnjfzr9xTlDtewsR4ZZLcCsar
         wXoDci5JlAcatOdGWM+ghBhDA0oAUy+/9O5vL0jsoAKK1kyEZ9TUf/W1pX1nJwTSfsPQ
         JuuA==
X-Gm-Message-State: AOJu0YzEodutO44ubonjOG5Qr6IaH2lDz8kc1/c2bu+icvaUyAqSf5ay
	uMjFukbYX0wRpH3lUB7Q9p0k54l6rUZVa1QiBlGakLBZmfjpOIm8TTWCaGcmOg==
X-Google-Smtp-Source: AGHT+IFtl7PEmQYB1DE3RhvcSsEkaqf3zbSuLCz07gMBXRuwp4DvU8u7neRCTn/WeFEs5kzypFhckg==
X-Received: by 2002:a05:6512:1385:b0:539:e60a:6dd0 with SMTP id 2adb3069b0e04-53b34b373admr21873364e87.51.1730971504171;
        Thu, 07 Nov 2024 01:25:04 -0800 (PST)
Message-ID: <f731b7a3-9581-4acc-85d2-2b3decd35fae@suse.com>
Date: Thu, 7 Nov 2024 10:25:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook> <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
 <65d2043f-5e6f-4d84-8241-eb28dd94fc45@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: <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 13:26, Mykyta Poturai wrote:
> On 06.11.2024 10:07, Roger Pau MonnÃ© wrote:>
>> Wait - how can msi->vectors ever be 0?  AFAICT there's no way in the
>> MSI logic to configure 0 vectors, there will always be at least 1 vector
>> enabled.
>>
>> Maybe what you want, if this fix is for compliance reasons, is an
>> assert unreachable that msi->vectors > 0?
> 
> I did some investigation and figured out that the value of 0 is being
> set by guest writing to msi_control_reg. As far as I understand, the
> control_write() function only checks that vectors are not greater than
> the maximum allowed value, but does not check for 0.

How that? How could it even check for 0, when 0 isn't possible? Quoting
the code there:

    unsigned int vectors = min_t(uint8_t,
                                 1u << MASK_EXTR(val, PCI_MSI_FLAGS_QSIZE),
                                 pdev->msi_maxvec);

"val" in the guest written value. As that's used as a shift count, how
could 0 result there? The only way I can see 0 ending up in vectors is
when pdev->msi_maxvec was still zero. Yet that's then a bug in device
initialization.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:36:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:36:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831562.1246880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ywB-00074g-KH; Thu, 07 Nov 2024 09:36:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831562.1246880; Thu, 07 Nov 2024 09: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 1t8ywB-00074Z-HN; Thu, 07 Nov 2024 09:36:23 +0000
Received: by outflank-mailman (input) for mailman id 831562;
 Thu, 07 Nov 2024 09:36: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8ywA-00074T-CO
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:36: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 bcc7723c-9ceb-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:36:17 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cedf5fe237so876906a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:36:17 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7f0eesm589363a12.31.2024.11.07.01.36.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 01:36: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: bcc7723c-9ceb-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJjYzc3MjNjLTljZWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcyMTc3LjE4Njk4OSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730972176; x=1731576976; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=IL2yLEbWrQ6V2Lj7RiGk6bI3gNn4wSAKk94B1WfCVAg=;
        b=fk+Bw2o2GzlsSHtDey0gDCyKgV7lLt4XuvvOsA0y2mwFO5d9OGOp7Gu6fDPUa09DSX
         s27+gDaFGT37TG8WhqYt3fHF4CcnZDY+PNOqoKCvI7Ly/tTRsV82BACSHYNzQmk1LPlp
         WH6DEST4v/ND8ULmUp0OEZgR3eXAd8G9+gAfo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730972176; x=1731576976;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=IL2yLEbWrQ6V2Lj7RiGk6bI3gNn4wSAKk94B1WfCVAg=;
        b=oN0GvHM14heTmCNv7yTpDIYhVl0ap5DXyyu8UwKkmt+Ek9W4dbfnnRVGPDK0tzFjeO
         ChJO3DEXuZ+yiNwwDFJcTjugnxYoH0lkTrH0vYTjPTBNGEtELpsOIuVqlHb5jkcnPahY
         af2L05ULkAHgkDbYg1XAIrvuqM5K5shS9/XzLKckDN311GL5vBAXD/O6ruh67IUbJI0h
         naPL0ZKr+jbmi5TFmHxATJj36ucPB74lo1WFjqWjfIvyElhUzCoSHJKRA++ZIYzbXkyp
         QXgHdq+dN4hzgQCY+cyNkvpV7Lmk/j4hs2qZowBMF2acwvhNwxGFFnJiIItbIQNBzjQG
         R5zw==
X-Forwarded-Encrypted: i=1; AJvYcCVHUwhImDO/ty8iX3Gq5vkye5ZFonhRgrfMTN2KwEaT3hQMKxfGmxSIxtQI69padPxJv0yQADYRx6Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4UoHVsLXshIgRI4yMqOv93obrNzlEbJJ2wdm/fFmnvKqVjqqs
	+Ih4s8FuOv0I6ertUUNh+kei2IbgGwp6YxgSb9brB6iP3ci29ncYL8wOPi/67+/F3tCfRo/l5oM
	N
X-Google-Smtp-Source: AGHT+IGmwnQC6C2ckIm4fAaiXGdaI2B5+Rf/dya63Xa5NPQYfWomX2Co0YCbHp69nrKlFqI82DlfOA==
X-Received: by 2002:a05:6402:518b:b0:5ce:fa47:2597 with SMTP id 4fb4d7f45d1cf-5cefa472620mr2865985a12.9.1730972176540;
        Thu, 07 Nov 2024 01:36:16 -0800 (PST)
Date: Thu, 7 Nov 2024 10:36:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Message-ID: <ZyyKD2knurwS4cMi@macbook>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook>
 <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
 <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com>
 <f731b7a3-9581-4acc-85d2-2b3decd35fae@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f731b7a3-9581-4acc-85d2-2b3decd35fae@suse.com>

On Thu, Nov 07, 2024 at 10:25:02AM +0100, Jan Beulich wrote:
> On 06.11.2024 13:26, Mykyta Poturai wrote:
> > On 06.11.2024 10:07, Roger Pau MonnÃ© wrote:>
> >> Wait - how can msi->vectors ever be 0?  AFAICT there's no way in the
> >> MSI logic to configure 0 vectors, there will always be at least 1 vector
> >> enabled.
> >>
> >> Maybe what you want, if this fix is for compliance reasons, is an
> >> assert unreachable that msi->vectors > 0?
> > 
> > I did some investigation and figured out that the value of 0 is being
> > set by guest writing to msi_control_reg. As far as I understand, the
> > control_write() function only checks that vectors are not greater than
> > the maximum allowed value, but does not check for 0.
> 
> How that? How could it even check for 0, when 0 isn't possible? Quoting
> the code there:
> 
>     unsigned int vectors = min_t(uint8_t,
>                                  1u << MASK_EXTR(val, PCI_MSI_FLAGS_QSIZE),
>                                  pdev->msi_maxvec);
> 
> "val" in the guest written value. As that's used as a shift count, how
> could 0 result there? The only way I can see 0 ending up in vectors is
> when pdev->msi_maxvec was still zero. Yet that's then a bug in device
> initialization.

See followup emails, I've arrived at the same conclusion and Mykyta
confirmed it's msi_maxvec that's indeed 0.  Still waiting for them to
figure out why msi_maxvec is 0.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:36:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:36:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831563.1246891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8ywF-0007Jn-Rm; Thu, 07 Nov 2024 09:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831563.1246891; Thu, 07 Nov 2024 09:36: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 1t8ywF-0007Je-Ng; Thu, 07 Nov 2024 09:36:27 +0000
Received: by outflank-mailman (input) for mailman id 831563;
 Thu, 07 Nov 2024 09:36: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8ywD-00074T-Ro
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:36:25 +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 c007e870-9ceb-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:36:22 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43169902057so6162475e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:36: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-432aa5b5e56sm55465715e9.2.2024.11.07.01.36.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 01:36: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: c007e870-9ceb-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMwMDdlODcwLTljZWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcyMTgyLjY3MDQ2LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730972182; x=1731576982; 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=DKQRtuORBujOIxBp4MUElYOGxn68m7mfgGkP1ICiRgA=;
        b=Zuz24OUs2m0ptwhAJX+Opbog5mmTmsjWFrULM3zj95/2Oj4S86EXBbrWDG4mJwYWpm
         39qgzqZn/XUnEBeqsEqi+9KijE3sjptR3vjR+e4xtkmOqeC+kcDquMRhttnJdC9NKNbv
         hEdDrJVADI+ndQYLg587UCI/1RXH1/5CIhGtpVJdHCRuLPEc5lTBVF5+lQ8gXNB5ZaAD
         pbuK+99RBly6D35AI5dPbE53KWyKwklzS5GHNpTLa9ZqNOX/kW0y8at9+Bp6Yxl2c5P1
         W2Kv9XbBrAszIkFjjdwC7wF8NeCh6CYGzSMbGaBSF9rp2D3bdfPCu552R/CEMiaZ2rXW
         vweQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730972182; x=1731576982;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DKQRtuORBujOIxBp4MUElYOGxn68m7mfgGkP1ICiRgA=;
        b=ZyYCOVdcuDB/W4HX/2eyI0BFxpHVqLr8H0uPfMJMJhYGCwjic/4alRcgs5a2qR5orL
         n0q2+VOnSgka3sqXUdm5BWaymZhWq1Mbk7MLQA3x0XBD64BvSm7bej5lTG9yjwtmzqGl
         za6ZhhfM5XE0pJbQzNZc2Ikeg/OSDZaqucPPqe5qGbq/9R1Fs3AG1hftXeWt4LmQybRP
         M9demIbDQfVkCL1S9r77irWubBDiMqYtW93BUh6Gz5SHaAV+AH9huPChlsgE5w8GYP2I
         m+nwWquPjMSCdtgVYdMYh9qQ1b7zuL2o3EyKm8F5Ga2Ipg+chmbn7yMRcuYqN8hsrT6A
         jiGQ==
X-Forwarded-Encrypted: i=1; AJvYcCV+hEQnQqTa8q9AxMYi2cmUL1r/q5keGC0M9DoHr4zvozeQ554Tk4qpNavY4ySw0HE5uhpAHy6F5aw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwdxHM5IHQyJwxNrYldSINJCAmkmK8FjHKlSe9YonBPRv5C2OBB
	awq+8CWeWn9Tn9/bnJ9hzH0bDtTKLDIGVJQ56MWYkScVdkWNq5V16mQX24LgVg==
X-Google-Smtp-Source: AGHT+IHw5g8FnF1aaTZyz8nWa8rX2wktOL82P2IFxLdaC5CWOhZl91J1C1T3zifkhlimH27eH57Obw==
X-Received: by 2002:a05:600c:190e:b0:42c:a905:9384 with SMTP id 5b1f17b1804b1-432b308d52cmr5211375e9.20.1730972182034;
        Thu, 07 Nov 2024 01:36:22 -0800 (PST)
Message-ID: <b633d472-6668-491b-82cb-2814c8aa5dbe@suse.com>
Date: Thu, 7 Nov 2024 10:36:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] x86/boot: Fix build with LLVM toolchain
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>, xen-devel@lists.xenproject.org
References: <20241106114150.1432512-1-frediano.ziglio@cloud.com>
 <20241106114150.1432512-4-frediano.ziglio@cloud.com>
 <8f87849c-916f-4532-a150-3205795c9e43@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: <8f87849c-916f-4532-a150-3205795c9e43@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 13:23, Andrew Cooper wrote:
> On 06/11/2024 11:41 am, Frediano Ziglio wrote:
>> This toolchain generates different object files.
>> Object have 3 additional sections which must be handled by the
>> linker script.
>> Added sections need to have special type so we put them in
>> separate sections as linker will copy type from input sections.
>>
>> Fixes: aa9045e77130 ('x86/boot: Rework how 32bit C is linked/included for early boot')
>>
>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> The patch itself is fine, but the commit message is quite stale now
> you've split the fix into 3 bits.Â  I'd recommend:
> 
> ---%<---
> x86/boot: Explicitly list .{sym,shstr,str}tab in build32.lds.S
> 
> Currently, building with LLVM's LLD fails:
> 
> Â Â Â  ld -melf_i386_fbsdÂ  --orphan-handling=error -N -T ...
> Â Â Â  ld: error: <internal>:(.symtab) is being placed in '.symtab'
> Â Â Â  ld: error: <internal>:(.shstrtab) is being placed in '.shstrtab'
> Â Â Â  ld: error: <internal>:(.strtab) is being placed in '.strtab'
> Â Â Â  gmake[11]: *** [arch/x86/boot/Makefile:69:
> arch/x86/boot/built-in-32.base.bin] Error 1
> 
> This is a consequence of --orphan-handling, and it appears that Binutils
> doesn't diagnose some orphaned sections even explicitly asked to do so.

With my binutils hat on, I'd like to express that I don't view this as a
fair statement. GNU ld simply doesn't extend the concept of orphaned
sections to purely control ones, which need processing / transforming in
one way or another anyway. Instead I'm puzzled by lld's behavior
requiring such sections to be named explicitly.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:40:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831579.1246900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8z04-0000yZ-9Y; Thu, 07 Nov 2024 09:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831579.1246900; Thu, 07 Nov 2024 09: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 1t8z04-0000yS-72; Thu, 07 Nov 2024 09:40:24 +0000
Received: by outflank-mailman (input) for mailman id 831579;
 Thu, 07 Nov 2024 09:40: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t8z02-0000yM-VJ
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:40:22 +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 4db1141e-9cec-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 10:40:20 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a99f3a5a44cso91203966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:40:20 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17651sm68457366b.38.2024.11.07.01.40.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 01:40: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: 4db1141e-9cec-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkYjExNDFlLTljZWMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTcyNDIwLjMwMDg1Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730972420; x=1731577220; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=3qMWNJHmcQtwiQmVgOTvSVZFEo9XJVvsxTt8A5Dc2kc=;
        b=o25+pjj7X8DqHzZ+RyiUCF/5YmkikQBjv4EZJyJt7GaMZYBeUXtTlkmTMt9GyDz/w0
         e53EvJ0FRJMygPxlUKtoJN7sLuqUvM6Kp0GvGHUbWKn3jzxDy+1ArPw8/zEwyodchoTg
         PBjD/tvDoaOBLuKfDvqwwAoVP4FJAFsKayyXA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730972420; x=1731577220;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=3qMWNJHmcQtwiQmVgOTvSVZFEo9XJVvsxTt8A5Dc2kc=;
        b=RbcdVsiRNdMGrS1jjvcu9ChmxQwiMGuTM1lglHVPvPrVtC7ZKvSPkRIba74rN9tJ3c
         JvEgiU7PFg+4gd/U4vRp2FoFe8fKgbHuO0fqTpafoM9KE6kkZ1c1eM1cVFHNQoAV2cja
         xxTulgnMb9bH5O8tACsB35Gj+7FuQpvEvU6qIID44Weqoxu5+0bT9c74iJ6WP0xifFSE
         AI5Jz3hbrIniUdoo9l4+/E0heXIeLuzhjPbdHKQohNk1xSOFMRqbWNFt7CcnhjJFtdfO
         TB9D77aogK1Nbg7+jBI/qskPfnDYj07ztGggJPI4rFqxgFoEjjOS7zSEnR0DNlrEJjia
         T+jA==
X-Gm-Message-State: AOJu0YzCne+nsM4rb0Mi5qd8i+alENFc/eWI0cSFGHfs0Fv6MDp/jt0t
	UfJWOsPLhfWMSlaMmCBratNtBPGsSRxaVd4tQMXdGc+3TNMKzK70NB6/g/cv1cGMK90w6yO1Ymt
	K
X-Google-Smtp-Source: AGHT+IG2MI2CD4nzB8EXfyw7RJ/l7husDsFjajiS/iK+HiAy+yKiiaJR2i19dB8MmbNXko0Gr4FaZQ==
X-Received: by 2002:a17:907:7fa6:b0:a9e:c2b5:198d with SMTP id a640c23a62f3a-a9ec2b51c03mr673296566b.42.1730972419652;
        Thu, 07 Nov 2024 01:40:19 -0800 (PST)
Date: Thu, 7 Nov 2024 10:40:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
Message-ID: <ZyyLAj6MZ3fvOFBC@macbook>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com>

On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
> > The tools infrastructure used to build livepatches for Xen
> > (livepatch-build-tools) consumes some DWARF debug information present in
> > xen-syms to generate a livepatch (see livepatch-build script usage of readelf
> > -wi).
> >
> > The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
> > on release builds, thus providing a default Kconfig selection that's not
> > suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
> > because it's missing the DWARF debug section.
> >
> > Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
> >
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Oops, yes.
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Fixes tag ?

Was borderline on adding one, but wasn't sure since it's strictly
livepatch-build-tools that requires the DWARF data, but custom made
livepatches (like the examples in tests) do not require such
information.

Possibly:

Fixes: 11ff40fa7bb5 ('xen/xsplice: Hypervisor implementation of XEN_XSPLICE_op')

Which is the commit that originally introduced the CONFIG_XSPLICE option.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:42:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:42:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831587.1246911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8z21-0001W0-KW; Thu, 07 Nov 2024 09:42:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831587.1246911; Thu, 07 Nov 2024 09: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 1t8z21-0001Vt-Hh; Thu, 07 Nov 2024 09:42:25 +0000
Received: by outflank-mailman (input) for mailman id 831587;
 Thu, 07 Nov 2024 09:42: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=YWgB=SC=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1t8z20-0001Vn-Ei
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:42:24 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170130004.outbound.protection.outlook.com
 [2a01:111:f403:c200::4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 957ead5d-9cec-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:42:21 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PAWPR03MB9860.eurprd03.prod.outlook.com (2603:10a6:102:2ec::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.31; Thu, 7 Nov
 2024 09:42:18 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8137.018; Thu, 7 Nov 2024
 09:42: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: 957ead5d-9cec-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6YzIwMDo6NCIsImhlbG8iOiJEVVpQUjgzQ1UwMDEub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk1N2VhZDVkLTljZWMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcyNTQxLjAxODg1Niwic2VuZGVyIjoiZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JM7M/jZ4xo1bf+kazui9cGGZ6hmQ09CvRlkGyeQNf+nX11UwnKFqrZ73oEjXt7ldNK5AF8udwide8AvJsyPH29mqtHfoKfh+Ykmv5IE7l7o1qLsEztq/+3J0sYF+khlHD5SiOHBQ4T6i7mbxtVLlvS9eI7t/Wqh8GjVPFHbFcMBiacYQ7W5LRZRDHWbGSSWLCufAbPgVb6c4Xp8Z3lG0eOA6kJSrJBcauJAX0d2biOAMf00a9Rj1XjTFBfZaZm4eQGU7g/sFC3QCB1YMaOxaBCcdYL/V4ZxNdA18n/p8GXt0A1cFDdb4FApK2WmxiVV3XpLrejfzPO1edWV8mp7dxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LFiayGjTBRcI7cQ0abKObLDf+rLXE69e44c4qw3gLHU=;
 b=JO3Nl23BCXMJKTehje+UCT69j4YQMpFt9tyKx7bTb6qbWjWmSxEhNLynrKm05/ui1V7gNMxMxQ84arY3dESYwZemislK4lfU6RSjntZyP/97kgq7BkFNfMxekmQvuoC2yqjK1vL4f2xfPFeDbRktAcGGIeos7tNAGL7E/UuBBkN8/ki/cJnEdDp6Z5E1IBHWrqvPQBCOQmEU8YNd2IDbUngaPamNnM/eE6Pja2H6Dox+6zWH0/NI7y0qO7RxJ3gboLXvBMG7Z/rtNprzVlJ+YoIxhzNKMEctG6Dg+Lq58hzCNHAJPRWznpyyGmVqABAOCGSmL6M4ENS0KNv+nZb53Q==
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=LFiayGjTBRcI7cQ0abKObLDf+rLXE69e44c4qw3gLHU=;
 b=ICkdR24ZJSZSJ0IMMPbaTSteFze2jszyC2xt44lhKShtfdI1Yc3WR87Ghb7/nwLx7+o1FhDb4u0XN3aO2XI86Vjmz8twCpXJWB/JVZV9TAHoMeslqUJGziU25DRNpOUo0n05lgLDCQuBdBhDlRGGUWPqQGRoW2+/DEoylQBiaEG38BROlF7hHKjfSauW8wH13NIe3DUysGsXdlW3phQ5sCVJC4jsHrSP/GUTbqQpmIuyRWw2FmcBEX2Ip3JEJmM3Olcyta0wc70Yq2sPSSz42zs9BlAXlTV4e8FzUcEDNgCgh/NKEHIRMsCm/EM48RDkLBbLo2SR+M609XTI/vP3DQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <e6bfae0a-4d8d-4d41-9046-30400da45cc0@epam.com>
Date: Thu, 7 Nov 2024 11:42:16 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Luca Fancellu <Luca.Fancellu@arm.com>, Michal Orzel <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>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <FA4FF581-69EA-46C0-A0D4-D327B167A4D6@arm.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <FA4FF581-69EA-46C0-A0D4-D327B167A4D6@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0110.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a8::6) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PAWPR03MB9860:EE_
X-MS-Office365-Filtering-Correlation-Id: ae1728dc-c972-4139-5956-08dcff10784f
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?RzJNNi9ZWmVCYXY2N0RZMUpoQWdlcjZZQmIvY3lUVzlhKzR0RUMzS2RPdldl?=
 =?utf-8?B?dTM5MExlQWM5RjJTc1pETFFCbllSbDhnSFdkVnBMMEZxY09hREtpV29VaFFX?=
 =?utf-8?B?eHNLWGZzcC8vanN4ankxTU4wcTVhRzJmd09jRXB6SGp6QlJmdXFlL2pwbTJU?=
 =?utf-8?B?dHlsajBHODYzUEhmTFpNdk5SbDZYMFVoSU9kUFJmdlpORjZYaCt1QWJjaU15?=
 =?utf-8?B?YjY2UGdhQmdxMTROZTNMK3ZuYWJzR1dLYnRYSnluUjN2dWJFd1YxdXNiU2Zr?=
 =?utf-8?B?MTIrZlBrWEEzVzMxNzc1dTRNSTcrekJLN3F6RHd6OVNIZUNkUGEwUDlFdDE1?=
 =?utf-8?B?bVdLM2lUWDZHaDFPSjFNQzBnc2tialZ5UFN1T0FWd1FOUWhtVmxXS1l3RzI2?=
 =?utf-8?B?OFR1bXhhNER4REF1UU1HaGZCaUZNN1J1R212WFdSVHYwQ09CMVN6MnFMRlli?=
 =?utf-8?B?NHptTlFreU9yZDY5OW9PZHVUc2RCdjVIZ0RjVUJudEZ2d3dQU1MxclhEbnVH?=
 =?utf-8?B?QmtDTWYrSVpLWHZBV1JPWTFURnA5VEthVy85UWNuMzNxakNnNU1sNFRFSGRr?=
 =?utf-8?B?VzYweHZPM2NKK0lRL3E3RG81TmhVVFZtcXF5SWU2ME95b0pFblNhRVZLUFNo?=
 =?utf-8?B?RnorTXRyQ0xYQTV0aDdTZGtnbm9GQU8xNkdwdFF3YXRnRTdFaVdvNFFnYXhu?=
 =?utf-8?B?VmwrcFV3eEZoaDlHalJodzNVQVlwaElhZmRjdytkWmJ2LzE0QUwwRitFdDhC?=
 =?utf-8?B?SlA3cFY4TGVwRnBtQytEMXRLclVKS09uTDhXSnl4YnNXamZMOG12Y0IwRDFT?=
 =?utf-8?B?VnVxMnN1V0ZEYkhiV0J6MVdPTERNd3BtVEVvcnN5aVZwV1ZTZmdWRUtkdnpm?=
 =?utf-8?B?TlozTEptcTEzbG1GN2JJc2txdU8xQmRLYi96Zkc1SHFrOGFqbStLaFpKbyt6?=
 =?utf-8?B?YlQ1UmZaYmhyUTF3MlFLclQ5ak14akhTVHRRWXByejlrMXhKRCt3YUY4dnFj?=
 =?utf-8?B?TWExbUkrNVNqeUQ1YXowZ0pudnhUSDlXZkJydUpoYWd0MVVORWsyakQ1VTh4?=
 =?utf-8?B?RWkyQ3ByYktQMjlFZE5HRW1WTEo5ZkNEajJqSkpGbnVqU0lYWDV0a2hmRGxT?=
 =?utf-8?B?YVBkdWhLNTRWK1VqVDBVN2I4bjNhbEZvdTMwK3Fad2N6ZWM2T0lxWDNVNitR?=
 =?utf-8?B?aytrbkJ1MkRVZnplVitNd3gvQ293SVNnM0VtbERJYkg4a0RBQ2dFU0ZnNkRD?=
 =?utf-8?B?VkpzOEh0bFh2TzdQYzliZ1lMZXMwWEtqU2Foc1p3NjB5ckpRdXY4bUdnOTNN?=
 =?utf-8?B?WTFxMkxKanZMeDA3dEJQRHBaR21RYWZGQlVrNnRVeUxZUTM5ZkZQM1prdjlt?=
 =?utf-8?B?R2VuNk5VRUpqN3VDWHhNVk5aQ0ZCMTJlbzRscjBCcnRGdTh6KytOcXlEUzJy?=
 =?utf-8?B?S1RDTmFuZU14VWhnQTlxb2lMS2JueE1MbVRWS2RIb1lBYWh0U21SU2xKeWtW?=
 =?utf-8?B?TEFCeVJBYVZNMysxTVNCbEY0cEJORVVpaUQ3OWNqZEFFKzJaWkdRcjUwMnh6?=
 =?utf-8?B?bkY1SHJSNjlVQmxtS2M2MXV6TkhmK3ZoanlDK0NHZHZOZDRDWHIzQVh5ZitM?=
 =?utf-8?B?M0R2MVVIUE1uMlUwdUQ4cjBWUkVzQnJUS3Fub2pnZ3phdThrTE9iTXdsVGNG?=
 =?utf-8?B?TllwOHlFSTdSVVM4NE8zQlZBd0V3R3M4bHpGeFNzN2p0MWYwVFVSMHhrQm4v?=
 =?utf-8?Q?U4FUmrLYjBpZyZQlgrFaEukLs8P3BPwLIYeg5Vw?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?dXpieEhtcWNGeEtOeXFXaXJ0cTZlR1VIZEpyZFdvdmxMY25TdDBRR09ZRUJx?=
 =?utf-8?B?MjZlTk15cHFMMlNJd2Vvc3dRcTUwbGVrUkZWdEJOalVhZGpHRk8zWFZ0R2lY?=
 =?utf-8?B?VGl6OGM2L2FwWWZSQlZORHAxSzB3UmhnNGlQYmUvQyt1SThJcDkwUmFIZGEw?=
 =?utf-8?B?M1dYRmEvbSt5RlNzcFhxWmF1OVFzbFo1YU9SREhCSytSR1hhQjNJaEpSNWZE?=
 =?utf-8?B?MXJ4bWFUVk1jNmtnNk5iMVJHMHZmQnR5ZUNhOHZDRWFOUTB4V0Qzd0lTODlJ?=
 =?utf-8?B?R3dyT3F4YkhIelp3TEFjRVhyZ0NKaUJHYm9Kb1BRdlV6NjhHWENyRmpGQzMx?=
 =?utf-8?B?SHl1dWFQd0VkR21jSW02YW05MkFTUGMvUHBCbWpSMzVndDdaS3VmL0wrQk5D?=
 =?utf-8?B?NWJEOUdmOEZpMEswNmJuQzJkOWwwZnNaRTNZL01qZk9SRTVubjZBSzVHdlA1?=
 =?utf-8?B?bnJvVXpBM29KTmlWdXhSKzEvWG9oNVN2RFhCSjAzUTdPQlRuWGNXTHNJbWVs?=
 =?utf-8?B?dGszS2x5OXI4Uk0rc3RLd1ZLZS9ZajVZZisyWXFveWNLcktXalNZTkRoT2hy?=
 =?utf-8?B?K0pNdkFhODRiSlFvMzFtUTB0Z1djK29XU2hydHRqWTV1b0ZjcXV0dUNqWUJV?=
 =?utf-8?B?OG8vYVhQSU1zOFlONW84ekxSRWNFUEh1WjVlLzR0bWRVVk1xQmJjMVhVNXhW?=
 =?utf-8?B?TG8vNEl3WUFrOHk5ZGt2V09EUGxvdXpyMEtFK0dvTXNoT01YcVV5U0lwTDNl?=
 =?utf-8?B?RmRKVlArU0pPZWpWd2ZSa084RzlhUHBsTW5nbGFvL0VHc0hBSGhEYUczYnhW?=
 =?utf-8?B?NzRZN3RDVjRpcEpINVY3a2JkVjhlNk1PMkpkTTdGVUJqYmV6VU5xblI1QVNT?=
 =?utf-8?B?bUtzeXVYcXo0ZnpCMmNyV3YrMlUrcTQrRjhVWG8yZmRsc0d5bUxKL1VFY2Uw?=
 =?utf-8?B?NWU3UEk4a010UFpZTTdBazFnRWdlcUdZUjU1Z3ZCdCt1dEdUaldBMmVaY2Qz?=
 =?utf-8?B?TE0rYVBRTTZiaXFTc3locVpZc0M4OGZXcGRqT2hJMGtJOWlGKzVneWh5VG1W?=
 =?utf-8?B?R0R5RDVYNmY4N01jN01Tai9WUllWZkJKTDlydHdIY0VnVDVnTHlOL054Z2U3?=
 =?utf-8?B?MHJEcHl1cWg3eXdnT3ltZVRHdS9HaGUyUm8yYkdmR0tRRjAyc2l3VlloTXAw?=
 =?utf-8?B?QkMwSGtLbmk4YXRrNE1YaTVXVEYvdCtUdXNGdzhrb0VXMXZXcGlWZ1BOVjAv?=
 =?utf-8?B?bGhJVmJ1YzEzWGM2WDRUUjN0RDdaYlJhZE5pUnBUOXMvS0tmbnZrdlliaTNZ?=
 =?utf-8?B?QngrejQzZDdXRXBNNm5tZ1VQL3hnanhic1M3ODUrOEZVY2lMOWFhUVJjRW9q?=
 =?utf-8?B?V2FsVC9FZEZiZUNKb3FaR2NvbW1wbjVCS0drRWErVE5rQkdGWlZLK3N1Mi9l?=
 =?utf-8?B?blFmaUQ1QVpkemlrZi9yaEt5SmdrTUs5VkxNSmNGT0lJZVhqZTcxaUhXdVBX?=
 =?utf-8?B?Q2UxYUN4K1cyQlI1NnIxRUE3SEdwV1poTlY1emdEVFROblRSaGtockZiMFpY?=
 =?utf-8?B?NmJ5OCthYUd6M3M5NkNDN3F0NS94cXNLc3FKYkFLNWMxekZnSm1aSS94VUpL?=
 =?utf-8?B?NExsa1lhSWVNUzRIRmVRVytuREtaeHh0WFV6OFNoZjZJZnJ0RlYzYVBDTG5T?=
 =?utf-8?B?amlRRnZMMHNJOXdrRzhqaEJrUHVYTUN2aEJRSTBJc3dWN2cwWXE4Q2xqeWdy?=
 =?utf-8?B?Y2UwZVBubU9weEFHeks3WGl6ZDFXRVh4eXhYa3VDQk41amo5V2JWMk43Tmhn?=
 =?utf-8?B?Mks3S2JpbGxQUUdnQ3M3R2RHNTBRUWdyT3BvNFA4OU1KMmNFc0ZZM1p1U2tj?=
 =?utf-8?B?NnFLMmNCZENCVjFrTGZDVG9nR1I2d0c2UktOaDdCTSswM2lIcGFRcStTUDlr?=
 =?utf-8?B?S3VKTnBWNHZ5ekdpQlo2dHNxc2dOVnRHSWE5ai9jK3FBMi9hTFh1aXVCbEM5?=
 =?utf-8?B?U2VlZ3RRVlhOTkJkQ1Axamp2R0VLTFJqU3VTeTM0OFI4N1E5S1kxTGZneStr?=
 =?utf-8?B?Sk9ydWdLdWtiV0pnejVhY3JTdnpSWFhWS2VDMlJHYzEwQVNKeU50WkdpUlZQ?=
 =?utf-8?B?dndkS09tcnVUenJEc0xmeThOSGdjTGpSbExETGxUakpPNG0yUnE0a3ZXWElT?=
 =?utf-8?B?blE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae1728dc-c972-4139-5956-08dcff10784f
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2024 09:42:18.4253
 (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: phT5XIM8OaneUQrNkf1laEjXpVEuhy0/7mEC5sBLgqs488e9gpWhu6kYcLUKBxicC02VBZoklMyqSXxuy5pGLWharznCgmNXbW+ifPuaLl8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9860



On 06.11.24 17:16, Luca Fancellu wrote:
> Hi Michal,
> 
>> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
>> and the changes below look a bit too much for me, given that for boot modules we can only have
>> /memreserve/ matching initrd.
>>
>> Shawn patch fixes the first issue. AFAICT the second issue can be fixed by below simple patch:
>> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
>> index 927f59c64b0d..d8bd8c44bd35 100644
>> --- a/xen/common/device-tree/bootfdt.c
>> +++ b/xen/common/device-tree/bootfdt.c
>> @@ -586,6 +586,10 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>
>>      add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
>>
>> +    ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
>> +    if ( ret )
>> +        panic("Early FDT parsing failed (%d)\n", ret);
>> +
>>      nr_rsvd = fdt_num_mem_rsv(fdt);
>>      if ( nr_rsvd < 0 )
>>          panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
>> @@ -594,10 +598,14 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>      {
>>          struct membank *bank;
>>          paddr_t s, sz;
>> +        const struct bootmodule *mod = boot_module_find_by_kind(BOOTMOD_RAMDISK);
>>
>>          if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>>              continue;
>>
>> +        if ( mod && (mod->start == s) && (mod->size == sz) )
>> +            continue;
> 
> Ok I see, we skip the /memreserve/ entry if it matches the ramdisk, fair enough, I donâ€™t have
> a strong opinion on how we do that, the important thing is just to unblock the users experiencing
> this issue.

Don't know if my opinion would matter here, but Luca's patch looks more generic and logically solid for me.
While handling only "ramdisk" somewhere in the middle  - looks more like a hack.

Any way, it's up to you.

BR,
-grygorii


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:46:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831596.1246921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8z5f-00029S-6u; Thu, 07 Nov 2024 09:46:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831596.1246921; Thu, 07 Nov 2024 09: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 1t8z5f-00029L-46; Thu, 07 Nov 2024 09:46:11 +0000
Received: by outflank-mailman (input) for mailman id 831596;
 Thu, 07 Nov 2024 09: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8z5e-00029F-74
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:46:10 +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 1c024fc7-9ced-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:46:06 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-37d3ecad390so1067485f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 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-381ed9978afsm1213396f8f.52.2024.11.07.01.46.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 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: 1c024fc7-9ced-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzQiLCJoZWxvIjoibWFpbC13cjEteDQzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFjMDI0ZmM3LTljZWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcyNzY2LjUzMzQzMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730972766; x=1731577566; 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=4icKvh7bQaT/mFZnzgWTco3Ya5kHOgRa2Lo28+KbHXA=;
        b=cZWv4IVGUn6N4aYxvMyowmwCuJ/wd6Lfef+hyVbLi0M9BKdsp1+K9rdlFTaHoL0mqQ
         M7yrwJRkv8FjMB3OKaEMlpngFig8sJLt0ZbX/VAW7i8ar0amQr09k+BMLkJyQ/Vu+iud
         XDUK18cLu5i20swwSSZyJhtZ2MWl3Grn8klTKZKv7hWdmaHh6SIU2xE0GXh0FsuSqpoL
         aKwwyGZBoGFyPokNA2cAbqDDsjzGxlnRMNtSUl9YDEm/QZb6VUDQUir+pP/WkcddRdes
         IFH3hPDUg0Rwe/Y1pB3I1AkM4pjbeL8ddaJzmdYYgRaNoE7PvDmWBpHvwCL8zdnJQi/P
         ppKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730972766; x=1731577566;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4icKvh7bQaT/mFZnzgWTco3Ya5kHOgRa2Lo28+KbHXA=;
        b=csotWhF7YnrlEVqZJtrCaPmAzmOLIG8vog7VG3lGNG1VufW87bUjW5tEU/bK7/7ZW6
         SLJNB7CLjyGeuwa+i3l17Ty/1qMMCipG9QXsBv7VtTRyAvF/I873HQVAJRBBytFtBVPQ
         mYHJIoxhhjNIdpeClAYwTLyHTYXBvwrkAJTfc7pvueUYeewf8h5oa04eAhHrZi0tgdlA
         qYolgfHhO4uBtLkAB6stnAQhW1hD7XBq46YsEGDnQ8w/BZwnZLXLvrkcTXTqbl/8UaVk
         h9Uc5PaTEd7yeE2M07p3e7WeiUwYFo/15YSUfMFdtRXOFQVkHt7LPFrQREFfsEhO6W9Q
         5F6Q==
X-Forwarded-Encrypted: i=1; AJvYcCWFK9F9/DfO4X+YHCa4m5pAHTB9sbAZQGy31IPT+DqiAns778Ecp4O4DfT21DOWmfaef6pJDFi+xgI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBvfaQVtUwpYO+2b5gHqREz2eTZDTRfdv97pcBHjdiP5ONxKsl
	Est95QZKECIsS6akuhippgSQJ5O48pTQX8Rc40wlYlxoEPBz61ldLSnHjn4Euw==
X-Google-Smtp-Source: AGHT+IG5XOAjpF6L7fiwvCOy1tU9PxqhI1qqmQ3+rOeE+iH+Q2iWe7mnqgZ4ailHXNn3U1Nr9enmRQ==
X-Received: by 2002:a5d:59ae:0:b0:37d:2d6f:3284 with SMTP id ffacd0b85a97d-381ef6d3584mr540981f8f.9.1730972765657;
        Thu, 07 Nov 2024 01:46:05 -0800 (PST)
Message-ID: <9947c21d-b5f7-4197-b6d9-dd4d491a30c2@suse.com>
Date: Thu, 7 Nov 2024 10:46:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241105145507.613981-1-frediano.ziglio@cloud.com>
 <48a22295-f3ac-496b-bdfb-ee17b0ada994@suse.com>
 <CACHz=ZhrxTSYGyWMQSE0Xi6sW2BZiLDuKkP2508CBRELD-USgQ@mail.gmail.com>
 <816ae079-378b-4bfd-93f2-83c5a281eb01@suse.com>
 <CACHz=ZhzrZO5o8EarXewC6BzrX4acSyAFsAO2hHBvm9xYRecqg@mail.gmail.com>
 <80296824-760a-48c4-9dce-4875fca0ed31@suse.com>
 <CACHz=ZgY_O7siQUQZjxGe=gfiB-C9jw1UQqwK9ffuHUUQmRgiQ@mail.gmail.com>
 <cc7802cc-8591-4356-bf7e-3daa912c751c@suse.com>
 <CACHz=ZjZVPSueWjxfWBjbjg8_UhZc7hMwM49BFT0bipqeBOsSA@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: <CACHz=ZjZVPSueWjxfWBjbjg8_UhZc7hMwM49BFT0bipqeBOsSA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 12:58, Frediano Ziglio wrote:
> On Wed, Nov 6, 2024 at 11:45â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 06.11.2024 12:34, Frediano Ziglio wrote:
>>> On Wed, Nov 6, 2024 at 10:59â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> On 06.11.2024 07:56, Frediano Ziglio wrote:
>>>>> On Tue, Nov 5, 2024 at 5:06â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>
>>>>>> On 05.11.2024 17:35, Frediano Ziglio wrote:
>>>>>>> On Tue, Nov 5, 2024 at 3:32â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>>>
>>>>>>>> On 05.11.2024 15:55, Frediano Ziglio wrote:
>>>>>>>>> This toolchain generates different object and map files.
>>>>>>>>> Account for these changes.
>>>>>>>>
>>>>>>>> At least briefly mentioning what exactly the differences are would be
>>>>>>>> quite nice, imo.
>>>>>>>>
>>>>>>>
>>>>>>> What about.
>>>>>>>
>>>>>>> Object have 3 additional sections which must be handled by the linker script.
>>>>>>
>>>>>> I expect these sections are there in both cases. The difference, I assume,
>>>>>> is that for the GNU linker they don't need mentioning in the linker script.
>>>>>> Maybe that's what you mean to say, but to me at least the sentence can also
>>>>>> be interpreted differently.
>>>>>
>>>>> Why do you expect such sections? They are used for dynamic symbols in
>>>>> shared objects, we don't use shared objects here. Normal object
>>>>> symbols are not handled by these sections. GNU compiler+linker (we
>>>>> link multiple objects together) do not generate these sections. So the
>>>>> comment looks correct to me.
>>>>
>>>> About every ELF object will have .symtab and .strtab, and many also a
>>>> separate .shstrtab. There's nothing "dynamic" about them. IOW - I'm
>>>> confused by your reply.
>>>
>>> I checked the object files and there are no such sections using GNU toolchain.
>>
>> I think I checked every *.o that's under boot/, and they all have these three
>> sections. Can you clarify which one(s) specifically you checked?
> 
> $ gcc --version
> gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 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.
> 
> $ ld --version
> GNU ld (GNU Binutils for Ubuntu) 2.38
> Copyright (C) 2022 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public Licence version 3 or (at your option) a later version.
> This program has absolutely no warranty.
> 
> $ find xen/normal/ xen/pvh/ -name \*.o | xargs -ifilename sh -c
> 'objdump -x filename' | grep -e \\.
> shstrtab -e \\.strtab -e \\.symtab
> 
> (xen/normal and xen/pvh are the build directory, with different configurations)
> 
> I'm saying that's possibly why the linker scripts didn't need to
> specify these sections.

Just to mention it here as well - objdump's -x option doesn't include "control"
sections. Considering the help text for -x this feels like a bug. However, as
documentation has it:

"Display all available header information, including the symbol table and
 relocation entries."

the symbol table and possible relocations _are_ being displayed, just not as
part of "Sections:".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:48:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:48:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831602.1246932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8z7s-0003Ag-Jz; Thu, 07 Nov 2024 09:48:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831602.1246932; Thu, 07 Nov 2024 09:48: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 1t8z7s-0003AZ-F3; Thu, 07 Nov 2024 09:48:28 +0000
Received: by outflank-mailman (input) for mailman id 831602;
 Thu, 07 Nov 2024 09:48: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8z7r-0003AT-2K
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:48:27 +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 6d907bb9-9ced-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 10:48:23 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43167ff0f91so6643925e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:48: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
 5b1f17b1804b1-432aa6b2d13sm52499985e9.12.2024.11.07.01.48.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 01:48: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: 6d907bb9-9ced-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZkOTA3YmI5LTljZWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTcyOTAzLjMyMzczNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730972903; x=1731577703; 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=81rmPOQxArOZCHQm7NcbBFKQylZnuCOKFIDm83WY5vg=;
        b=VduM7s0N23lq3j+zZerv0JG3outXA4lQ9ii6KeSXCUjx5xhVGMWg+hYvK7mpZhXrEJ
         ZHB/8PF2bXIm/uxOoaeEklA0ow26SlBsf3/FvfFu066tp9ZhRHNij9x8obqn1PCCX0cy
         Z2mY/cssYz4skS6ADNEErfEHbRUxTPesy/G9kO5nTSqQArsu8DlfXViesmRIeGvyxEJD
         PVhzjbCgkh19CjuPsO+aH6z9guPN8b7d7UHc0v2UAUp5g20ZS8XQVzFe9GR3p4EKQazW
         UgdEbqBPzm293xESOE5QL2lFSDnt6eXLfhdMc3+XMq3GFTB8t+Dho42sC2hrfvhqvV7b
         nCWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730972903; x=1731577703;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=81rmPOQxArOZCHQm7NcbBFKQylZnuCOKFIDm83WY5vg=;
        b=NjSqVFExuYMaNYQWxJe+7Up+Ved6pmcEPVr4rbLWwVddubQqcRvO/5f8SMDOsu7JbL
         qWDb4sQHK6X9abNZ4Y/bQjeHeMwWuzcfV/h51As81vMdWG36DvudIOAlnuLwwAkLOCBG
         6nkXfCjyUHFSWuPkV2EkO4I1PpJn/ir04/z0ruA+3YwlF/RvhtKPhR2bZjHy8OManA5o
         M/orA9sOavBgqx2HEI+1DAHAv4y9IledgPn52WHd+v371YX45zrwIVG8AFDxRTLzeOEs
         wEuMbb+KDKpLRDcgGpDAJ8+iySZzBXRqF8WQRJIz+Kvq0I3EaTgEjjZOeZ7/4b6qZdF7
         1fYQ==
X-Gm-Message-State: AOJu0YxF4iZ9CMyrabDANg6z31DbkIM7abF6tz3N+Yg2fIWuSAfeA1a0
	8fzdfLCiOVw87wQH2T8xVkWd0iXtSfcaD0If4Zt8nwGXYq96feeCg8I3BVs5Qg==
X-Google-Smtp-Source: AGHT+IHCpZIpiyeCMdqDwaVOqE0l9q1zrBq0bjajtck4m24gULwh/PvuzHrhwl/SsgF5tNaBr5mUqg==
X-Received: by 2002:a05:600c:19cd:b0:431:6153:a246 with SMTP id 5b1f17b1804b1-432b2fff579mr6035565e9.13.1730972902613;
        Thu, 07 Nov 2024 01:48:22 -0800 (PST)
Message-ID: <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>
Date: Thu, 7 Nov 2024 10:48:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com> <ZyyLAj6MZ3fvOFBC@macbook>
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: <ZyyLAj6MZ3fvOFBC@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 10:40, Roger Pau MonnÃ© wrote:
> On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
>> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
>>> The tools infrastructure used to build livepatches for Xen
>>> (livepatch-build-tools) consumes some DWARF debug information present in
>>> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
>>> -wi).
>>>
>>> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
>>> on release builds, thus providing a default Kconfig selection that's not
>>> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
>>> because it's missing the DWARF debug section.
>>>
>>> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
>>>
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> Oops, yes.
>>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> Fixes tag ?
> 
> Was borderline on adding one, but wasn't sure since it's strictly
> livepatch-build-tools that requires the DWARF data, but custom made
> livepatches (like the examples in tests) do not require such
> information.

At which point: Is "select" really appropriate then? Wouldn't it be more
logical then to change DEBUG_INFO's default to take LIVEPATCH into account
(still permitting people to turn debug info off if they know they won't
need it)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 09:54:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 09:54:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831610.1246940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8zDm-0004g1-5H; Thu, 07 Nov 2024 09:54:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831610.1246940; Thu, 07 Nov 2024 09: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 1t8zDm-0004fu-2i; Thu, 07 Nov 2024 09:54:34 +0000
Received: by outflank-mailman (input) for mailman id 831610;
 Thu, 07 Nov 2024 09:54: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8zDk-0004fl-8g
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 09:54:32 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46ee1998-9cee-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 10:54:27 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2fb57f97d75so7697431fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 01:54: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-432aa737c86sm56159315e9.38.2024.11.07.01.54.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 01:54: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: 46ee1998-9cee-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmYiLCJoZWxvIjoibWFpbC1sajEteDIyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ2ZWUxOTk4LTljZWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTczMjY3Ljg3NjY0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730973267; x=1731578067; 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=UB4xixjLoDQZljxh9xQWG+MH6w8lvKu1WiuWNlaTOXQ=;
        b=VJhXlwV3olSM2sdYmJWz3IkScIf87xs2LM44nOd8CtqhaDTToflnd1snEAoHZOaRXb
         xwsi+iBCbY3G2Fabnlc69LhQGSi31ikfX4P5qZUluBLm+13FnK1d84TXmsZj/GspUqBM
         zgPvF1bkFz//F9isH5blyTn1N/7LHler93CGL9zCCo52/FZ2uJ/dnlT7bQIZCCffbkJ2
         X/UdAU1DVZ3u9aFWqW74t8VB5xp1hzp8W5aoIx8Xgbs8k9NGkZ8eltY7T2TGVp4Hjjy2
         HDt5Lfd82CSOMaNZkosH0dOT68S5Of1SoY98CMSbCIz/5Vfj/VpwPVg0bVA639BQ4fOi
         n77g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730973267; x=1731578067;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UB4xixjLoDQZljxh9xQWG+MH6w8lvKu1WiuWNlaTOXQ=;
        b=kLZqMDJ/h02kJWIBsdTYA939AKDhKVAZNS2l7znpFri7CBFVe343QjXgAD+mnvDLrr
         /qgim7WY4D28fQNKDfCgklBE45V8Md9EhHN1FlH93EqKhaJjVAeKSabqz0AVApXrPl2V
         uKhQ7NIc4DmG2JFJ8knx06MLlyl/dzhBfQjASiT+v11iPtRcEuueexGSw7o6XcSHoV8i
         eb6fePpzGNq3PHWzyDDmXnDPeAQ73I7jCQF/Dfp1Zf3ZeL8M2hVKO2Jro098ylbHJZm/
         QfX1e4V2AdkNn073x2QHlkOQKCVObV9m4VXpYYlSOikomhf1+UuYM8hB/+P6rx5YJzSQ
         Kgsg==
X-Forwarded-Encrypted: i=1; AJvYcCX4mTJJNoiVAhiUXhjfsCS9+sfRq/dksNPla440M593GzVYIrPNi2yfTER/2cKkFBXxZJuJu2cDwRo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymnMDCmS38MFxnR8UoLDtZAJkeCQ5V/54ZlBr+TCeFIGPfuwUy
	PoTTfqceHTjyWUZcK7nBOHARAJC43gvqZX34pIHhx4HMDLT8R0ICqJODcqs45sIEoZOEitfsTZs
	=
X-Google-Smtp-Source: AGHT+IFyQFqYAs3CO4e2zbd5qOXWQ/mkg+kmepBnfCufrE+SJ8LGzLxsoFqkAivwejQHvhe24JwG6Q==
X-Received: by 2002:a2e:5109:0:b0:2fb:4428:e0fa with SMTP id 38308e7fff4ca-2fcbe04f435mr162406031fa.36.1730973267256;
        Thu, 07 Nov 2024 01:54:27 -0800 (PST)
Message-ID: <6f296504-1c71-4817-a3e8-f7e365ceef38@suse.com>
Date: Thu, 7 Nov 2024 10:54:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
 <2faf07d6-35a2-46c8-92db-8cf26a304800@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: <2faf07d6-35a2-46c8-92db-8cf26a304800@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 15:34, Andrew Cooper wrote:
> On 02/11/2024 5:25 pm, Daniel P. Smith wrote:
>> With all boot modules now labeled by type, it is no longer necessary to
>> track whether a boot module was identified via the module_map bitmap.
>>
>> Introduce a set of helpers to search the list of boot modules based on type and
>> the reference type, pointer or array index, desired. Then drop all uses of
>> setting a bit in module_map and replace its use for looping with the helpers.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v7:
>> - collapse the three module_map patches into one,
>>   - x86/boot: remove module_map usage from microcode loading
>>   - x86/boot: remove module_map usage from xsm policy loading
>>   - x86/boot: remove module_map usage by ramdisk loading
> 
> Definitely nicer for having been collapsed together.
> 
>> ---
>>  xen/arch/x86/cpu/microcode/core.c   | 12 ++++-----
>>  xen/arch/x86/include/asm/bootinfo.h | 42 ++++++++++++++++++++++++++++-
>>  xen/arch/x86/setup.c                | 28 +++++++++++--------
>>  xen/xsm/xsm_policy.c                | 19 +++++--------
>>  4 files changed, 70 insertions(+), 31 deletions(-)
>>
>> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
>> index f46464241557..b09cf83249f6 100644
>> --- a/xen/arch/x86/cpu/microcode/core.c
>> +++ b/xen/arch/x86/cpu/microcode/core.c
>> @@ -790,15 +790,13 @@ static int __init early_microcode_load(struct boot_info *bi)
>>  
>>      if ( opt_scan ) /* Scan for a CPIO archive */
>>      {
>> -        for ( idx = 1; idx < bi->nr_modules; ++idx )
>> +        for_each_boot_module_by_type(idx, bi, BOOTMOD_UNKNOWN)
> 
> Minor, but we treat for_each_* as if they were for loops, so this either
> wants to be
> 
> for_each_boot_module_by_type ( idx, bi, BOOTMOD_UNKNOWN )
> 
> or
> 
> for_each_boot_module_by_type (idx, bi, BOOTMOD_UNKNOWN)
> 
> spacing wise.Â  There's no agreement between maintainers on the extra
> spaces inside brackets or not.

Just to clarify - no, the latter form you suggest is not okay to use.
Daniel's form is, as is the first one you suggest. The choice is between
"like a for() loop" (your 1st form) and "just another macro invocation"
(Daniel's form).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 10:05:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 10:05:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831618.1246950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8zO1-0006xy-2v; Thu, 07 Nov 2024 10:05:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831618.1246950; Thu, 07 Nov 2024 10:05: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 1t8zO1-0006xr-0A; Thu, 07 Nov 2024 10:05:09 +0000
Received: by outflank-mailman (input) for mailman id 831618;
 Thu, 07 Nov 2024 10:05: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8zNz-0006xl-4k
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 10:05: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 c266343f-9cef-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 11:05:04 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4315df7b43fso6493545e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 02:05: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
 5b1f17b1804b1-432b05620b4sm17623045e9.20.2024.11.07.02.05.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 02: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: c266343f-9cef-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMyNjYzNDNmLTljZWYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTczOTA0LjYxMjg1Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730973904; x=1731578704; 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=ZSxWTJkgsKtlME+nUFx9gsnt01aHX1wyLAAIHuEqRYA=;
        b=KRwerDIlLJaV7yL77tGmtyH9C5BlqD3vin3tReV3Ge8My1u7Xz7KH3kY6aYujVfAfT
         5CijYI2IK3CO5WL5EOjLIwAac2sku+u1WYe6kP/9wl6v6E/pL2u/mlSOFiDyakPtPg/E
         CuICt3aAwG4ByaiofiVrW2QtXYRvUeeQzx1OPCWghJayfsVr+Zr6GeRzBRk5QxCUPebh
         kLo9s0TJVQz+dL4+W1yi9072CYvbhLKSrzf3pOIJiEJsu+ErO1jgiGQ8xD2rNJEe/kel
         +K9x4zD9yq1nKGhUWZZBdn8OhzNHkG3GwwtzQaQBNKyEc4QTTlZi5kHavLIs+cZOfxxV
         CpQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730973904; x=1731578704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZSxWTJkgsKtlME+nUFx9gsnt01aHX1wyLAAIHuEqRYA=;
        b=pDMht5Jj3ZU3sy3QUkwvF9CcMJ3ckdp/t2WhChMI7geeUI8QvrDXlV34AEcg+ijWN3
         Uy5L2rKPBxwqIziP8js8m2TkVfUseQ4NUmB7Zg6wiFn/edtHH16DotERD4oL2am3hLN4
         j+25l+23KF98lvX/14oeddjIixT/wiUM9w2zjxTqIhmSNRR7yHISra6XDP/o0Caac+7p
         N5uj4Ev0pJ22rLBpTRHRGD8SKVL3+lK5+R0tB3oQeO/iiBXrDmuAPmR98Ed7bCY9RbRZ
         mshu64eaZPqFKchQirFF3jxjsOm6N6fmmQEZUiO6h7YExT4z00EvYlv8jNPwTZy8jWzX
         S7gw==
X-Forwarded-Encrypted: i=1; AJvYcCXMfUVwmS4DxsgI3U7sqQ+oiTSSQvJGNmfOt5VoE4PjuZxOv7ki0n6FZ64vRekXkMeLf0VHGu0RXJ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGs2hvJfWTV8jNz69VIwsVQlr93llHeqkPCTy57caSuvjnkfP5
	+JBr6kQfFjCiOR43cKozu+B3fIsEIqTfYYQTVm7rJuH8y9w/2ImK15pNUoTKWg==
X-Google-Smtp-Source: AGHT+IEgTuJBXosDAk0w7sVNmnyYggkgpNIDwfXqTwOBNbiInn7BOuBdJMY9KOZqwN9twuJmH4e9Yg==
X-Received: by 2002:a05:600c:3593:b0:430:54a4:5ad7 with SMTP id 5b1f17b1804b1-4319ac76449mr399894515e9.1.1730973904011;
        Thu, 07 Nov 2024 02:05:04 -0800 (PST)
Message-ID: <d32a3eb9-c0cb-4f87-9f88-4fc0d32cf1e8@suse.com>
Date: Thu, 7 Nov 2024 11:05:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.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: <20241102172551.17233-3-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.11.2024 18:25, Daniel P. Smith wrote:
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -790,15 +790,13 @@ static int __init early_microcode_load(struct boot_info *bi)
>  
>      if ( opt_scan ) /* Scan for a CPIO archive */
>      {
> -        for ( idx = 1; idx < bi->nr_modules; ++idx )
> +        for_each_boot_module_by_type(idx, bi, BOOTMOD_UNKNOWN)
>          {
> +            struct boot_module *bm = &bi->mods[idx];

pointer-to-const? You really want to get used to applying const to pointed-to
types whenever possible. IOW ...

> --- a/xen/xsm/xsm_policy.c
> +++ b/xen/xsm/xsm_policy.c
> @@ -33,22 +33,18 @@
>  int __init xsm_multiboot_policy_init(
>      struct boot_info *bi, void **policy_buffer, size_t *policy_size)
>  {
> -    int i;
> +    unsigned int i;
>      int rc = 0;
>      u32 *_policy_start;
>      unsigned long _policy_len;
>  
> -    /*
> -     * Try all modules and see whichever could be the binary policy.
> -     * Adjust module_map for the module that is the binary policy.
> -     */
> -    for ( i = bi->nr_modules - 1; i >= 1; i-- )
> +    /* Try all unknown modules and see whichever could be the binary policy. */
> +    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
>      {
> -        if ( !test_bit(i, bi->module_map) )
> -            continue;
> +        struct boot_module *bm = &bi->mods[i];

... same here (and likely elsewhere in the series).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 10:14:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 10:14:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831628.1246961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8zXB-0000kN-2K; Thu, 07 Nov 2024 10:14:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831628.1246961; Thu, 07 Nov 2024 10: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 1t8zXA-0000kG-Vp; Thu, 07 Nov 2024 10:14:36 +0000
Received: by outflank-mailman (input) for mailman id 831628;
 Thu, 07 Nov 2024 10:14: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8zXA-0000kA-GX
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 10:14:36 +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 15315923-9cf1-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 11:14:32 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-539f1292a9bso737517e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 02:14: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-432aa74abb9sm55253975e9.42.2024.11.07.02.14.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 02:14: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: 15315923-9cf1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE1MzE1OTIzLTljZjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTc0NDcyLjk2MjIxNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730974472; x=1731579272; 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=f983S6h+HLmFUr9DZLpXfuoLLvROS9LPfZi1mCx7uok=;
        b=UT8UwxiQd4iRSrhzxcvUW+8plN3+OZRyD5RU4G1DRdEeQssdErOASGx6wrYS0Tv+t8
         xiVBC+OFzRNaKAYFF1JZ++8NimVlXtmDYWo9i26UWW6JunCMl7DJcYvvEJAnFpRMbIpT
         wdADVatX50unkZ9vl2SO6yB5a/GGp2a3l+mO20A9ZmJUzF2YOz9uqIGWc8LQicJTKwcp
         oXTBGWGo7L2mKJZ5R7yzV4oTxxpjscX4oP+LjUyEQHtAElk3NNpx33Z+KGFOzcmL9xOf
         6tOjOlr7pJ63zkkQl4r5TVFCR+muS36DJ9HckqcdxdvwfDTHcUtwm8dC1OdfXWksKTgV
         wtaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730974472; x=1731579272;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f983S6h+HLmFUr9DZLpXfuoLLvROS9LPfZi1mCx7uok=;
        b=axx8wf2yvNQ8l4zdFWzKwp3qRLkeIdXzLkv/eV8ZXiTRex0vGU1LQ/RgpdwyjKSSBm
         V9ITu5pmSJWDxZ/6QRH2WWi0pXPOThwF8JMq51BblJSkOqk5/8l9ZDXhh9b5jANvIrjd
         Bp6x4qfEyatW6dQySpsuOEOYq8AvBLe8g4A+L2g0Q7yQSgXHFfBhtfLyrN8a0oWDuPWX
         Dbt8ObKB0rTeDRSOeAsVaLjgFA6BkdD8mCxyPzrtIuBjbdqq6gR4lAeqm4qqxpez5+8Q
         vlBTJpaUNY4suSp9YOwTnlHuGdmtSdg03duZP6fApHOb2EjHLzHIfBdvRiDS6AXFWhnA
         ZQDQ==
X-Forwarded-Encrypted: i=1; AJvYcCXKMYpwDmz0AoW3TNUin1aNc9ozSUq+lnlys22+xfsp2fd6ztHV3cujI/yUJFUJ5JASdecUphBBN/4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtckcweTdWtSIgDnr90EdujsLKD5xiDFaoj8oNJH1oEOBEP8s/
	+ye/j1yCz3a6pigWluEfJ890yPMx5NQONfOo6Y+8sMZpo2Sd6JpXyE7qGEjENw==
X-Google-Smtp-Source: AGHT+IFkKSBIIL6CrMu6ju0PzK9lGwabCBIcAuOFOW80toORbP63zXFX6sp8ZnemM8wRHK/Iz7M0JA==
X-Received: by 2002:a05:6512:3b2b:b0:52e:f99e:5dd1 with SMTP id 2adb3069b0e04-53b3491cd1emr22061015e87.47.1730974472290;
        Thu, 07 Nov 2024 02:14:32 -0800 (PST)
Message-ID: <f6f439cb-4d89-48d5-98c4-83e3761ea59d@suse.com>
Date: Thu, 7 Nov 2024 11:14:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/ucode: Enforce invariant about module
 selection
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241106003938.3453243-1-andrew.cooper3@citrix.com>
 <20241106003938.3453243-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: <20241106003938.3453243-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2024 01:39, Andrew Cooper wrote:
> The work to add the `ucode=nmi` cmdline option left a subtle corner case.
> Both scan and an explicit index could be chosen, and we could really find both
> a CPIO archive and a microcode file.
> 
> Worse, because the if/else chains for processing ucode_{blob,mod} are opposite
> ways around in early_microcode_load() and microcode_init_cache(), we can
> genuinely perform early microcode loading from the CPIO archive, then cache
> from the explicit file.
> 
> Therefore, enforce that only one selection method can be active.

While, following my v1 comment on this, I'm okay with it staying like this,
I'm afraid ...

> @@ -109,13 +103,28 @@ static bool ucode_in_nmi = true;
>  /* Protected by microcode_mutex */
>  static const struct microcode_patch *microcode_cache;
>  
> +/*
> + * opt_mod_idx and opt_scan have subtle semantics.
> + *
> + * The cmdline can either identify a module by number (inc -ve back-reference)
> + * containing a raw microcode container, or select scan which instructs Xen to
> + * search all modules for an uncompressed CPIO archive containing a file with
> + * a vendor-dependent name.
> + *
> + * These options do not make sense when combined, so for the benefit of module
> + * location we require that they are not both active together.
> + */

... "do not make sense" is still wrong here. As per your subsequent v1 reply
to my comments, it is merely the case that we do not assign any meaning to
that combination. Yet as outlined we could. With the wording tweaked
accordingly:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 10:29:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 10:29:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831638.1246970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8zln-0003Il-7h; Thu, 07 Nov 2024 10:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831638.1246970; Thu, 07 Nov 2024 10:29: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 1t8zln-0003Ie-4x; Thu, 07 Nov 2024 10:29:43 +0000
Received: by outflank-mailman (input) for mailman id 831638;
 Thu, 07 Nov 2024 10: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8zlm-0003IY-Bc
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 10:29:42 +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 30b38b55-9cf3-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 11:29:38 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-37d8901cb98so1136289f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 02:29: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-432aa6b2c32sm54552105e9.10.2024.11.07.02.29.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 02:29: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: 30b38b55-9cf3-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwYjM4YjU1LTljZjMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTc1Mzc4LjE3ODg0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730975377; x=1731580177; 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=uNu2z6FAZc0eEPxLHeTEkXZHEJGyYmsllslFLM14SDQ=;
        b=KchI1UulLD76hANorul+wBYFJMX0mfsF3x/LWQjhmfL9wX0jregP8AKOHS7hLG21wZ
         ercgwzTR6HqIJOQqAHJKsARwPDArle+6yh0ApMe7sf0X4AvKgWNqe8eTKiIq6DWcRUjh
         D7V4kZKqP+D6vuLwDDMTUwo8R+rPGpqmOUabdBxmMVH1FTYl+Kv3I0eA1Qzb849GrIqh
         qck0qh8pmbhrkq7ekpYIBk7pPeeMxoASz3He9UMLmFOJViy97FWTGoOCBB1YlQUq/x9l
         anydzE+bx+7q1k4IMyDMrA1oAHB106glap/LdeMaLH0CJVSVXEuXQ/GVtM5j9237FFZ/
         5udw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730975377; x=1731580177;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uNu2z6FAZc0eEPxLHeTEkXZHEJGyYmsllslFLM14SDQ=;
        b=aeJymUXPG0Lb5nCwUsYfrEcJrGLtdMgSBdOlvsDtr+wjuLcvlymvc1yMIPDjCDVp8e
         K51aOlkClYBVMNupTkEQVoIvKFSkJ7oKKGZyQIG/vnuNvbmxoYE9pqZnCQIqK47XB0fN
         m710+rFethl5BUN9OWkVND04NMmxo3+NyFKXjYQQbvZ2X+WTG+zfcRTlZkIe6CP9wjrm
         S0yNi8sTLifYbBtnQ12ASWzGkTO15OcT2/jCR6JCQDm6HSmAJVWYwmJDTe12k8ajSDGp
         ugLhP8PGi9lTakkALE9bsnDUls6M/hb8L/JU+itzJ0mTvuYcMM0xeetuyohxGE0UrW2e
         sfDA==
X-Forwarded-Encrypted: i=1; AJvYcCUYxBUo/D0H/NLhChgd5SrGFYOhTgZYjNsgVQm/fzxz4NxYNWEJG1f0/fxxmpXCs1sXzwt19GzcFa4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAI4nHIXQ9k35CXrcWpacHUkf78/dAfEkbiID7n7nJHxsO5dRR
	ofJD5lqL54cROGxEuWGKQ2BFKTZjf1XoFLXtE3D9uyiEXcpg7D8ihcVAlGVqFA==
X-Google-Smtp-Source: AGHT+IG3OvxnpkA313u/ENZWsqbW8H6q8G1xTYw3hNMGVYfnU7iTrfgvXr0lFeGvP4cih1yQ2pjXsA==
X-Received: by 2002:a5d:6c6d:0:b0:37e:d6b9:a398 with SMTP id ffacd0b85a97d-381ec5d2dd4mr2340340f8f.9.1730975377532;
        Thu, 07 Nov 2024 02:29:37 -0800 (PST)
Message-ID: <819c9b77-8d09-4231-8a86-58fa84971459@suse.com>
Date: Thu, 7 Nov 2024 11:29:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/13] x86/xstate: Remove stale assertions in
 fpu_x{rstor,save}()
To: Alejandro Vallejo <alejandro.vallejo@cloud.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: <20241105143310.28301-1-alejandro.vallejo@cloud.com>
 <20241105143310.28301-2-alejandro.vallejo@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: <20241105143310.28301-2-alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.11.2024 15:32, Alejandro Vallejo wrote:
> After edb48e76458b("x86/fpu: Combine fpu_ctxt and xsave_area in arch_vcpu"),
> v->arch.xsave_area is always present and we can just remove these asserts.
> 
> Fixes: edb48e76458b("x86/fpu: Combine fpu_ctxt and xsave_area in arch_vcpu")
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Nov 07 10:42:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 10:42:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831646.1246981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t8zxy-0006Cg-9S; Thu, 07 Nov 2024 10:42:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831646.1246981; Thu, 07 Nov 2024 10:42: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 1t8zxy-0006CZ-5j; Thu, 07 Nov 2024 10:42:18 +0000
Received: by outflank-mailman (input) for mailman id 831646;
 Thu, 07 Nov 2024 10:42: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t8zxw-0006CT-Qg
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 10:42:16 +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 f308d045-9cf4-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 11:42:13 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-37d43a9bc03so509315f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 02:42: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-381ed970f85sm1397254f8f.6.2024.11.07.02.42.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 02:42: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: f308d045-9cf4-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmMiLCJoZWxvIjoibWFpbC13cjEteDQyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYzMDhkMDQ1LTljZjQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTc2MTMzLjY5OTQzNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730976133; x=1731580933; 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=Jw93W3c8JG9R3gtPFd3iHgWKOgS/EjdU9vPNN5QRmMM=;
        b=A2Ng2jAkRSf/2TBWQK4tCu7Nqhe3tW9dfxpS/VV7WtH2lpElCyrdkpACbi6u9b8GpA
         zh4uSTT4CVou8axgv1N4lKy0TC8cvouqWBXKzBhGVmHkz2xFtjaf9w1aL3htJWEB6kHy
         kPBf87ZU9Qe16f8GJ3SQXHeNeFE+fA/fwzZBh02djGYERs62EhA2c13gzDHivQeLqoHu
         h1lmaIIon9xnKCPZTYlu6B+WuNvNQJcFjLQAlS/G+WP+y6uyHy79FWaEqnUxkLZQx9f8
         Zg3jjBrqrSOVsG6VAvG72GcnpvvCCoar9KY/IKYCCB8O4byK215WaxPusWjU74lNdXxk
         f5qQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730976133; x=1731580933;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Jw93W3c8JG9R3gtPFd3iHgWKOgS/EjdU9vPNN5QRmMM=;
        b=POkWXXqXAnGORU2jIiGAkG8nOxT0hm4VAa/cRlycuapY0LCtct4dQQr++eaBIDMrpb
         cb9Fep2sKs86tkp4wKUywBxMMPsoUHyTnM6qADHClMQ794yoWKnoWbBLRKwp1gDVlcpw
         KfS2J6UWZbtp5nSLRgD7YuidJPx42ak5gsrIQVLF4WRN51snfHofBOOcQ7BIHzyc+bFW
         z7JGdNcRZwLcsIWMypw/3AsDtmouFZ0GBd1UvlZtMxGy3y+fap0jIJrMLydl4lHBTkq/
         eON3L+8Ed8i91tnr+4neOnoRLJiUYc3AiRsE+DNHo1IBiCKwf3ZVtMr0Vdl8NIHeU9XE
         EwlQ==
X-Forwarded-Encrypted: i=1; AJvYcCUXR0k9zrMvHMeUQVF8rz0pZ8j7sTOhpbL6j7hP7BMMSUZVT1PiaFOyJubn/hUt3DdpmyFJGGNbImk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDJNashXQBm07fB+v5lm2/fIDR0ZsEqbY6oXu7BbM/ohjxo0o8
	EYfAVGmGJ9nT+sTxtVDAZWHQpzsoZVUKx3jg+2uJG3grvI33j/g/RLVEa79FyQ==
X-Google-Smtp-Source: AGHT+IHDTyw4eRczkIBhdmDhcSHsDRcJL0nxl9jAox6/z1kwo7bYGQNcfXqer2izKi5YH9tOuO23yg==
X-Received: by 2002:a5d:64c5:0:b0:37d:37b2:385d with SMTP id ffacd0b85a97d-381c7a47416mr20178902f8f.12.1730976133064;
        Thu, 07 Nov 2024 02:42:13 -0800 (PST)
Message-ID: <85d6a128-965b-4f39-8d08-2b2084db65b4@suse.com>
Date: Thu, 7 Nov 2024 11:42:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/mm: introduce helpers to detect super page
 alignment
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-2-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: <20241106122927.26461-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2024 13:29, Roger Pau Monne wrote:
> --- a/xen/arch/x86/include/asm/page.h
> +++ b/xen/arch/x86/include/asm/page.h
> @@ -200,6 +200,12 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
>  #define l4_table_offset(a)         \
>      (((a) >> L4_PAGETABLE_SHIFT) & (L4_PAGETABLE_ENTRIES - 1))
>  
> +/* Check if an address is aligned for a given slot level. */
> +#define SLOT_IS_ALIGNED(v, m, s) \
> +    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)

The check involving an address and an MFN, I think the comment would better
also reflect this. "Check if a (va,mfn) tuple is suitably aligned to be
mapped by a large page at a given page table level"?

As to the name of this helper macro - "SLOT" can mean about anything when
not further qualified. If the macro was local to ...

> +#define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
> +#define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
> +
>  /* Convert a pointer to a page-table entry into pagetable slot index. */
>  #define pgentry_ptr_to_slot(_p)    \
>      (((unsigned long)(_p) & ~PAGE_MASK) / sizeof(*(_p)))
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c

... this (sole) file using the derived ones, that might be acceptable. If
it's to remain in page.h, how about e.g. IS_LnE_ALIGNED()?

I further wonder whether it wouldn't be neater if just the level was passed
into the helper. Doing so wouldn't even require token concatenation (which
iirc both you and Andrew don't like in situations like this one), as the
mask can be calculated from just level and PAGETABLE_ORDER. At which point
it may even make sense to leave out the wrapper macros.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:07:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:07:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831655.1246990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90Lg-0001Dp-1x; Thu, 07 Nov 2024 11:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831655.1246990; Thu, 07 Nov 2024 11: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 1t90Lf-0001Di-Vl; Thu, 07 Nov 2024 11:06:47 +0000
Received: by outflank-mailman (input) for mailman id 831655;
 Thu, 07 Nov 2024 11: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t90Le-0001CO-Ha
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:06:46 +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 5e9d320c-9cf8-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 12:06:42 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-431616c23b5so5006045e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:06: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-381eda04211sm1410723f8f.94.2024.11.07.03.06.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03:06: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: 5e9d320c-9cf8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVlOWQzMjBjLTljZjgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTc3NjAyLjcwOTIzNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730977602; x=1731582402; 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=Nm300VYn7fhW5AekSqn0xroHoaUFuKZGC7bvr8G3deI=;
        b=SJJsF3sMe6GL5LsglERCpGauDuVr2xgeIHNDLjXjWaku7d1MMU9YMlyRDVh4XSZUpu
         YUUtkvjoF85fs0sM9S7KKgQqeCXXDlOf5R4dQJoy6Z1V01Ef7aeB4KyqL+tJRUvXUm4N
         +HO84hckEFJi+J45bFx1AwyOfpO+p1cwo+QVNdtf87rpelstsQSpY3V3oDN5bxhHXBeP
         +kbcJ72BwPjtKbCe06DfHLLL4L54fSsuNrAFFzU77hgr0I7VVlLqBqw+atIA+WAe/DrC
         NlM8zBp4v0pgi69JlsLBFRXbbXcOdXfd9xP7zvlRMkV4Mu/cQRWuia3L5tUSZCyzqdbM
         hlDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730977602; x=1731582402;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Nm300VYn7fhW5AekSqn0xroHoaUFuKZGC7bvr8G3deI=;
        b=lBpY54UGOtEqLxf/B2d53g/m0736UD3O/cXC8yF8n1XW3FydXipHm1h1Hjscb6c6IR
         NQReOy7du4uKu63liLWjsrVYdv4jVdHQnWXnuqPGnq0+5cB1RXPQH86p5X9mYS7EVYZU
         NYDHvJv13EqoH3Qov44/JzpTTwGZi9R8tYr21qlJwScQyU1nIvLhnQ8znjO//VJviHMx
         by6Ql3Mahsd+dFKZ35EPv63p1NNKIL4WczMbxRHXYwlG8FHLiRs6yDeebvNeWyRu+5XT
         Jo5h4NPr9SUBkzxBtBu7J0evSZcAP7X9ymagnNmKG2JAIUJmVvhwE6e5fqZrXklGVhSr
         A9vw==
X-Forwarded-Encrypted: i=1; AJvYcCXfU+1n2ZbfgG2YlGfTC1xG9MgsQez4XploibktX+bg3hhdsbtpVr2EP9S1zi+aegTX4JL0AI1s1qM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywzqy7Q2D+Zd6T2OG0R42K9C7enO3uJRwyqS1mSWSVTJBLVD523
	6GlukjH7DzpyBhrMLCsBfYuOGOZLiU46ZFaL63kjx7rQXnTGqx3wmI4siKk3ww==
X-Google-Smtp-Source: AGHT+IFLauGEXCoo3UWmPikOWruFSQf7xGo9PIoZ1gRKCPzR0JxfZX8cBOvZ1d/2JgUwQ8cuQ5z+sQ==
X-Received: by 2002:a05:600c:4ed0:b0:42c:b991:98bc with SMTP id 5b1f17b1804b1-432af279e0fmr23952555e9.0.1730977602068;
        Thu, 07 Nov 2024 03:06:42 -0800 (PST)
Message-ID: <2d11d5c6-4e87-4520-af48-844c90462620@suse.com>
Date: Thu, 7 Nov 2024 12:06:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] x86/mm: special case super page alignment
 detection for INVALID_MFN
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-3-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: <20241106122927.26461-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2024 13:29, Roger Pau Monne wrote:
> --- a/xen/arch/x86/include/asm/page.h
> +++ b/xen/arch/x86/include/asm/page.h
> @@ -202,7 +202,8 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
>  
>  /* Check if an address is aligned for a given slot level. */
>  #define SLOT_IS_ALIGNED(v, m, s) \
> -    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
> +    IS_ALIGNED(PFN_DOWN(v) | (mfn_eq(m, INVALID_MFN) ? 0 : mfn_x(m)), \
> +               (1UL << ((s) - PAGE_SHIFT)) - 1)
>  #define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
>  #define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)

With this adjustment it feels yet more important for these macros to
become local ones in x86/mm.c. This special property may not be what one
wants in the general case. And m is now also evaluated twice (really:
once or twice), which a "random" user of the macro may not like.

I'm further uncertain now that this is the way to go to address the
original issue. Notably for the 1G-mapping case it may be better to go
from the incoming flags having _PAGE_PRESENT clear. After all we can
always create non-present "large" PTEs. E.g.

        if ( (cpu_has_page1gb || !(flags & _PAGE_PRESENT)) &&
             IS_L3E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
             nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
             !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )

Thoughts?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:14:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:14:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831665.1247001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90TV-0002tE-Tn; Thu, 07 Nov 2024 11:14:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831665.1247001; Thu, 07 Nov 2024 11:14: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 1t90TV-0002t7-R4; Thu, 07 Nov 2024 11:14:53 +0000
Received: by outflank-mailman (input) for mailman id 831665;
 Thu, 07 Nov 2024 11:14: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=h3Hw=SC=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1t90TT-0002sz-Pd
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:14:51 +0000
Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com
 [2607:f8b0:4864:20::72d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f2abefc-9cf9-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 12:14:47 +0100 (CET)
Received: by mail-qk1-x72d.google.com with SMTP id
 af79cd13be357-7b153047b29so54235685a.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:14:47 -0800 (PST)
Received: from localhost ([185.68.248.203]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7b32ac57c9bsm52636585a.54.2024.11.07.03.14.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 03: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: 7f2abefc-9cf9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjo3MmQiLCJoZWxvIjoibWFpbC1xazEteDcyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdmMmFiZWZjLTljZjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTc4MDg3LjMyNjA1OSwic2VuZGVyIjoiYmVybmhhcmQua2FpbmRsQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730978086; x=1731582886; 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=BAL0jV1wYbpF9brwNg25ULVfF9qMZKxgs/nv5clUd7I=;
        b=e+yA22zZ99RudOBD1oP7MejjbYYhpNrHLwecRZTb7mHvghDToAfjrHGYt4xI8YI36a
         bPlEcf4k0GbZL1bP02jzp30kQTX85989DF1+fRFJglg7V4MPYa//jVngDWhUeB/WdMzR
         ECZLKJ0z3ufZC4PHJrliPjZxa4+IM2T08cMDQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730978086; x=1731582886;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BAL0jV1wYbpF9brwNg25ULVfF9qMZKxgs/nv5clUd7I=;
        b=a+cERawTQ8xuGxsJxaCx8oqcYJvC36tZ2MAXTxxRKYETlj6iXrNOmSL+yWx7UR8iWW
         GPUwPnOLGmZ8rL3xIgR1j9D/a0DcoC/y+tVDDsQj04tmYEfUHxKS8PJB559TYmgDdKpW
         2Tf1isDOujI42ENDUYIgALIKglvTN530haAX7Q0Bwjt8D/MDo1zljbn/00bc3zcoEzZs
         SKzGbmyJL5rKjtTW/iwgUOmSqGS65rVP2bt9nvwr2NlpzIZsti9qWS1qbV4vhfk+ReTM
         N9c+Sc2sdU1zz2WY0cHODxlcckh2Fhqlv4/D7MrSn3DYSl3PjUIZEI7GpH4syWOFYPVC
         zwng==
X-Gm-Message-State: AOJu0Yx7vkE8IHzPzEHh9Pgj/RLG8u9sk0csks0cbcikgB6QG+3sw5rW
	ufs7EpSVdM2xpM59qoiX5gGRxva+h0hxPKUtg1O/KCiYh6FPL9Iza+vgVs/telFAieAyql4XsAF
	25rZJEQ==
X-Google-Smtp-Source: AGHT+IGjlG1jy+C+giPHUEmtKnVUP4kdWakVDbvxMQ8lcpxjDrkelab0eNoKMsMo/FxYUcV6QTTKhA==
X-Received: by 2002:a05:620a:24cb:b0:7ac:b1b1:e730 with SMTP id af79cd13be357-7b193f5d485mr5899173085a.61.1730978085881;
        Thu, 07 Nov 2024 03:14:45 -0800 (PST)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] NUMA: Introduce NODE_DATA->node_present_pages(RAM pages)
Date: Thu,  7 Nov 2024 12:14:40 +0100
Message-ID: <20241107111440.443547-1-bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen tracks the total span of physical memory space of each NUMA node,
but the PFN span includes large MMIO holes in e.g. the first NUMA node.
Thus, the span is not the same as the amount of usable RAM of a node.

Xen does not need it, but NUMA node memory amount can be helpful for
management tools and HW information tools like hwloc/lstopo with its
Xen backend for Dom0: https://github.com/xenserver-next/hwloc/

Introduce node_present_pages to node_data[]:
On boot, set the count of usable PFNs and update it on memory_add().

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
---
Changes in v5:

- Checked node_present_pages on NUMA HW.
- Code and comments are exactly as suggested & affirmed in v4 review.
- Comment adjustments on commit are ok, but keep the code as-is: e.g.:
  'err' needs to be defined outside the loop to be in scope for check.
---
 xen/arch/x86/numa.c      | 13 +++++++++++++
 xen/arch/x86/x86_64/mm.c |  3 +++
 xen/common/numa.c        | 37 ++++++++++++++++++++++++++++++++-----
 xen/include/xen/numa.h   | 17 +++++++++++++++++
 4 files changed, 65 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c
index 4b0b297c7e..27cee68a4d 100644
--- a/xen/arch/x86/numa.c
+++ b/xen/arch/x86/numa.c
@@ -100,6 +100,19 @@ unsigned int __init arch_get_dma_bitsize(void)
                  + PAGE_SHIFT, 32);
 }
 
+/**
+ * @brief Retrieves the RAM range for a given index from the e820 memory map.
+ *
+ * This function fetches the starting and ending addresses of a RAM range
+ * specified by the given index idx from the e820 memory map.
+ *
+ * @param idx The index of the RAM range in the e820 memory map to retrieve.
+ * @param start Pointer to store the starting address of the RAM range.
+ * @param end Pointer to store the exclusive ending address of the RAM range.
+ *
+ * @return 0 on success, -ENOENT if the index is out of bounds,
+ *         or -ENODATA if the memory map at index idx is not of type E820_RAM.
+ */
 int __init arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
 {
     if ( idx >= e820.nr_map )
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index b2a280fba3..66b9bed057 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1334,6 +1334,9 @@ int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm)
     share_hotadd_m2p_table(&info);
     transfer_pages_to_heap(&info);
 
+    /* Update the node's present pages (like the total_pages of the system) */
+    NODE_DATA(node)->node_present_pages += epfn - spfn;
+
     return 0;
 
 destroy_m2p:
diff --git a/xen/common/numa.c b/xen/common/numa.c
index 209c546a3b..38369e487b 100644
--- a/xen/common/numa.c
+++ b/xen/common/numa.c
@@ -4,6 +4,7 @@
  * Adapted for Xen: Ryan Harper <ryanh@us.ibm.com>
  */
 
+#include "xen/pfn.h"
 #include <xen/init.h>
 #include <xen/keyhandler.h>
 #include <xen/mm.h>
@@ -499,15 +500,41 @@ int __init compute_hash_shift(const struct node *nodes,
     return shift;
 }
 
-/* Initialize NODE_DATA given nodeid and start/end */
+/**
+ * @brief Initialize a NUMA node's node_data structure at boot.
+ *
+ * It is given the NUMA node's index in the node_data array as well
+ * as the start and exclusive end address of the node's memory span
+ * as arguments and initializes the node_data entry with this information.
+ *
+ * It then initializes the total number of usable memory pages within
+ * the NUMA node's memory span using the arch_get_ram_range() function.
+ *
+ * @param nodeid The index into the node_data array for the node.
+ * @param start The starting physical address of the node's memory range.
+ * @param end The exclusive ending physical address of the node's memory range.
+ */
 void __init setup_node_bootmem(nodeid_t nodeid, paddr_t start, paddr_t end)
 {
     unsigned long start_pfn = paddr_to_pfn(start);
     unsigned long end_pfn = paddr_to_pfn(end);
-
-    NODE_DATA(nodeid)->node_start_pfn = start_pfn;
-    NODE_DATA(nodeid)->node_spanned_pages = end_pfn - start_pfn;
-
+    struct node_data *numa_node = NODE_DATA(nodeid);
+    unsigned int idx = 0;
+    int err;
+
+    numa_node->node_start_pfn = start_pfn;
+    numa_node->node_spanned_pages = end_pfn - start_pfn;
+    numa_node->node_present_pages = 0;
+
+    /* Calculate the number of present RAM pages within the node */
+    do {
+        paddr_t ram_start, ram_end;
+
+        err = arch_get_ram_range(idx++, &ram_start, &ram_end);
+        if ( !err && ram_start < end && ram_end > start )
+            numa_node->node_present_pages += PFN_DOWN(min(ram_end, end)) -
+                                             PFN_UP(max(ram_start, start));
+    } while ( err != -ENOENT );
     node_set_online(nodeid);
 }
 
diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
index fd1511a6fb..f6c1f27ca1 100644
--- a/xen/include/xen/numa.h
+++ b/xen/include/xen/numa.h
@@ -68,9 +68,24 @@ extern unsigned int memnode_shift;
 extern unsigned long memnodemapsize;
 extern nodeid_t *memnodemap;
 
+/* The memory information of NUMA nodes in the node_data[] array */
 struct node_data {
+    /* The starting page frame number (lowest pfn) of the NUMA node */
     unsigned long node_start_pfn;
+
+    /*
+     * The number of pages spanned by the NUMA node, including memory holes.
+     * Used for the pyhsical memory range when scrubbing unallocated memory.
+     */
     unsigned long node_spanned_pages;
+
+    /*
+     * Number of usable memory pages that are available in this NUMA node.
+     * The sum of these values from all NUMA nodes reflects total_pages.
+     * The Xen Hypervisor does not use this field internally, but it is useful
+     * for reporting the memory information of NUMA nodes to management tools.
+     */
+    unsigned long node_present_pages;
 };
 
 extern struct node_data node_data[];
@@ -91,6 +106,7 @@ static inline nodeid_t mfn_to_nid(mfn_t mfn)
 
 #define node_start_pfn(nid)     (NODE_DATA(nid)->node_start_pfn)
 #define node_spanned_pages(nid) (NODE_DATA(nid)->node_spanned_pages)
+#define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages)
 #define node_end_pfn(nid)       (NODE_DATA(nid)->node_start_pfn + \
                                  NODE_DATA(nid)->node_spanned_pages)
 
@@ -123,6 +139,7 @@ extern void numa_set_processor_nodes_parsed(nodeid_t node);
 extern mfn_t first_valid_mfn;
 
 #define node_spanned_pages(nid) (max_page - mfn_x(first_valid_mfn))
+#define node_present_pages(nid) total_pages
 #define node_start_pfn(nid) mfn_x(first_valid_mfn)
 #define __node_distance(a, b) 20
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:24:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:24:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831673.1247011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90cG-0004hu-PW; Thu, 07 Nov 2024 11:23:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831673.1247011; Thu, 07 Nov 2024 11:23: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 1t90cG-0004hn-Lv; Thu, 07 Nov 2024 11:23:56 +0000
Received: by outflank-mailman (input) for mailman id 831673;
 Thu, 07 Nov 2024 11:23: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t90cF-0004hh-GX
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:23:55 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c48a80cd-9cfa-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:23:52 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2fb5111747cso8136871fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:23: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-432a26a7508sm72434345e9.0.2024.11.07.03.23.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03: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: c48a80cd-9cfa-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMjkiLCJoZWxvIjoibWFpbC1sajEteDIyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM0OGE4MGNkLTljZmEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTc4NjMyLjU2NzMyNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730978632; x=1731583432; 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=+Syh19L/M+eIV2mKgeoSgMkx4RX4dpOVqnJMgqzmGFI=;
        b=MdOySZdiyBQH91xddWLWIwsdKeU/ZC24AyxXlnNHnLYZP1gVAxe+B9NDCQLteVMRrd
         n9UF9T3Uvhn+S3I2/B9uGdyy5tu1/FGiD/7WMUl2sLJhwOGwnRpFtkuv75DFwlJc/ngq
         1xAnulhbajlqs0AZlxV71IboJyGl0+/7UVWz6BRWlM/kSBylzhoxCR70evXQHpE0JZF0
         XJghS6y+OeZtziFzBJrhenoDxiohHIFZCnt+hiCm/SlhqcnZqH5qcgHGHBZ8b1cAfTAp
         03cBb5Dgs2pt3HUtHcCQ/o+IxGlwe5JIrdg+/+T0GiWqX08T9/BvIsB0WuVb35sd9AHk
         YkDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730978632; x=1731583432;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+Syh19L/M+eIV2mKgeoSgMkx4RX4dpOVqnJMgqzmGFI=;
        b=GSAYfL+Y0D8w131ZmDaxGwLpjmtrth1hH4fKlbTUsj7fVaoME3/eVF70Oe/9sW8a0n
         6z+tgGgKHMHXsLNtsPjDoxZTmnniEvwGPX/JtZSajMNmxMemzZdS7qBzDStnNQVUAwvV
         +N2fFZhjt/Ie6S2h4IcttRWPk6MICBXaNMmOadjDrNUk5azqUGE1H9AECfjoUwBsT99c
         G04+HgPGCpO08q69hlWsMuVA1yMw8OTaU4jH3I9TKo07LxfWIGe8arbYnjl1jDR16ANM
         7Iq9yHLvm+LO2zsr2S/poNKYnO8Kzk2NhpZ5aRMvmdaDplcm526bNAm5RIcQs7e4dfts
         ES1Q==
X-Forwarded-Encrypted: i=1; AJvYcCXERwWszhWNIKDnWakIWj7PpWm2zbaJfnqZfHub4u9oiB2BTud80nVFqqsBvVqeVMdJrbhUHn7/tQk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzX+GVa0V3Dg27zsfBrOVmIgCvnw94oJRfPK2X4bQCVsKDK7wz
	SBVNm1SxuhfxKsC2rQn9YDzO5g3lm17IWteT8/cMEdsD6vZXji6ne5Q34cGlFQ==
X-Google-Smtp-Source: AGHT+IFXU7XB0Evp6CcKHZiByPYRpUxo6dnZ1rCX9IK22kSLSbc9xs8xtAHKrAuFlUMI847G76Ukkg==
X-Received: by 2002:a2e:a596:0:b0:2fb:57b7:5cd with SMTP id 38308e7fff4ca-2ff1a8c4906mr7005131fa.7.1730978631930;
        Thu, 07 Nov 2024 03:23:51 -0800 (PST)
Message-ID: <c8620982-37b5-4556-9061-5dbf5778a43a@suse.com>
Date: Thu, 7 Nov 2024 12:23:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of
 destroy_xen_mappings()
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-4-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: <20241106122927.26461-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 13:29, Roger Pau Monne wrote:
> bootstrap_map_addr() top level comment states that it doesn't indented to
> remove the L2 tables, as the same L2 will be re-used to create further 2MB
> mappings.

With that I assume you refer to the 2nd sentence in the comment immediately
ahead of the function. According to my reading, it may imply what you say,
but it certainly doesn't "state" this. Imo the problem was latent already
before, if BOOTSTRAP_MAP_{BASE,LIMIT} were changed to cover at least one
full L3E range. Which isn't to say that ...

>  It's incorrect for the function to use destroy_xen_mappings() which
> will free empty L2 tables.
> 
> Fix this by using map_pages_to_xen(), which does zap the page-table entries,
> but does not free page-table structures even when empty.
> 
> Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
> ---
> The fixes tag reflects the fact that if 4376c05c3113 freed the L2 correctly
> when empty, it would have become obvious that bootstrap_map_addr() shouldn't be
> using it if it wants to keep the L2.  4376c05c3113 should have switched
> bootstrap_map_addr() to not use destroy_xen_mappings().

... I mind the commit you name to be blamed. It was clearly something I
missed back then.

With the 1st sentence of the description re-worded some:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:25:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:25:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831679.1247021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90dd-0005F5-4Q; Thu, 07 Nov 2024 11:25:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831679.1247021; Thu, 07 Nov 2024 11:25: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 1t90dd-0005Ey-1Q; Thu, 07 Nov 2024 11:25:21 +0000
Received: by outflank-mailman (input) for mailman id 831679;
 Thu, 07 Nov 2024 11:25: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t90db-0005Eq-Tg
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:25:19 +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 f6c8052f-9cfa-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:25:16 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5c9693dc739so1158357a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:25:16 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7e6sm681607a12.14.2024.11.07.03.25.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 03:25: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: f6c8052f-9cfa-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY2YzgwNTJmLTljZmEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTc4NzE2Ljk3ODUzNSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730978716; x=1731583516; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=FJ60yPRzmDk5VmxE0O8k0mAmglukEGhdOXCCRQ1TMi8=;
        b=rp85oCGyL2Gl3wCNltv2PQ/MjCCClHXrN7xttk33AQl/3o8b81wcBQrMNEqAWZiffQ
         JU2P5a/PnVYe/Lx34TFjfrh+dchsdkAzPLraA1zfvOUhpryXGqPUqa6JCkx6/TgWPpXu
         3WlujBU3q5oTSloRURiQfqcnhidveFXeJBigo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730978716; x=1731583516;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FJ60yPRzmDk5VmxE0O8k0mAmglukEGhdOXCCRQ1TMi8=;
        b=bP1GYqaFihpTlc6qEWsn/8KcrTqwnDzKD8J/ENfO4n+tlYVT1ueZv5glEgIxssFSk9
         OQZIciAgC7hdxrFiGswBbJv9QL6WvyLvfVxM6BZyHmmMjLrZ/V+LszV5mu5SrXsJsR0y
         xx35vrQDNgwdo1f9gExlkTzCvG24rkWe+nUvAtz+bzwUV5JlvU3BgNYyGNMrSC9C58yI
         sK0I8PQREjhdGqg+3HLZgtUHVbtHgNGNaQiWOVixNHfHc3VnT7rqVkUZ8QH+tEEisT7n
         a0DJ+CQFqY0Px3bKX7ODIDW95dWkrbTvgz7C7NLbJPzjNwhR3Bvlc/jXG88JC9QdUHRN
         G6qA==
X-Gm-Message-State: AOJu0YwicCAuvOiKaflsg0vzC31OL55pDdlqPwgmQyrXjhiRbL2Ijb+F
	8RAVX/kyRbUBGSHLKi9f4+ZblgtVpjKaFcpIRO06G/GxuIG6jPFvoHgXqzKiE44=
X-Google-Smtp-Source: AGHT+IFv7NEuZNMKatpR7mQN5PCnEAsBdssq93gHSEYPIhMJZ8cAwbDu40lNO6dah4SMfvR1BHZ8mg==
X-Received: by 2002:a05:6402:13d0:b0:5ce:df56:4cb7 with SMTP id 4fb4d7f45d1cf-5cedf564cf2mr9033491a12.27.1730978716377;
        Thu, 07 Nov 2024 03:25:16 -0800 (PST)
Date: Thu, 7 Nov 2024 12:25:14 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
Message-ID: <Zyyjmu9tm1KEGiqQ@macbook>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com>
 <ZyyLAj6MZ3fvOFBC@macbook>
 <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>

On Thu, Nov 07, 2024 at 10:48:21AM +0100, Jan Beulich wrote:
> On 07.11.2024 10:40, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
> >> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
> >>> The tools infrastructure used to build livepatches for Xen
> >>> (livepatch-build-tools) consumes some DWARF debug information present in
> >>> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
> >>> -wi).
> >>>
> >>> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
> >>> on release builds, thus providing a default Kconfig selection that's not
> >>> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
> >>> because it's missing the DWARF debug section.
> >>>
> >>> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
> >>>
> >>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >>
> >> Oops, yes.
> >>
> >> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >>
> >> Fixes tag ?
> > 
> > Was borderline on adding one, but wasn't sure since it's strictly
> > livepatch-build-tools that requires the DWARF data, but custom made
> > livepatches (like the examples in tests) do not require such
> > information.
> 
> At which point: Is "select" really appropriate then? Wouldn't it be more
> logical then to change DEBUG_INFO's default to take LIVEPATCH into account
> (still permitting people to turn debug info off if they know they won't
> need it)?

At least right now the only way to build useful livepatches for Xen
(not dummy tests) is using livepatch-build-tools (that requires DWARF
sections).  My concern with using the Fixes tag was that I don't know
whether initially the DWARF info was needed or not, or maybe whether
people used a different tool rather than livepatch-build-tools.

I don't mind changing, but I also don't think an hypervisor built with
LIVEPATCH but without DEBUG_INFO is going to be useful to anyone given
the requirements of the tools we provide to build livepatches.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:28:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:28:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831686.1247030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90gT-0006Bu-Hm; Thu, 07 Nov 2024 11:28:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831686.1247030; Thu, 07 Nov 2024 11: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 1t90gT-0006Bn-EX; Thu, 07 Nov 2024 11:28:17 +0000
Received: by outflank-mailman (input) for mailman id 831686;
 Thu, 07 Nov 2024 11:28: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t90gS-0006Bh-0t
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:28:16 +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 5fd32cfc-9cfb-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:28:13 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43163667f0eso7480855e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:28: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-381eda066fdsm1455880f8f.104.2024.11.07.03.28.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03:28: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: 5fd32cfc-9cfb-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVmZDMyY2ZjLTljZmItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTc4ODkzLjM2MDQxOCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730978892; x=1731583692; 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=A7bBQYPu9Az+p1v15MSA/wK+0oXvQkwI0r0g5yDOrhs=;
        b=SVYSCh3XscZ0dl9lAg69IZbWG7XzzS7tjdX6xzPU6AXSO6kxQgJflur2lsogrnrif7
         lUKDckUHG+yNUjhYAr4GQvGZWCNSL3JMhXTBU8dR34NA115QEhe8crSYGRxuhTK0Fwc1
         kmsLRc8MDR3wsxMFH2sL1aaTjPJWvBa+DJgJcRq8/7d0KqTYMEjn3zK23R0M/bX7cIrn
         /1VKh5vheWXJvbh/89dBbtroDsdLkidON9E9HLbMBz/wXtcEs9EtBSBJhNPUOOi2NxfN
         /DCVS/GSikS5RhCuoBT6FBsN1HeQK77VMx8u3KxEipvMtvTLJ2OkWH9M5OdBnCDXydH+
         NlUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730978892; x=1731583692;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A7bBQYPu9Az+p1v15MSA/wK+0oXvQkwI0r0g5yDOrhs=;
        b=Ekuw+1BG6bAi2QnJzgJNJoutq6kZehrmxpKLiAUYJvur3j8z6+1n9jzbnmBm+2nGRz
         cJuqf0ZLOqnyjqnQCWEIV5RAX7uo3pq1EzRoZ0k5HdIu+WfJ7qGm6ABT+bA+AzuIek4P
         PKzP7vM6GjcfnnSaXxYJvMYvTq3EW5X6h5qlL2rg/Nxvv6ihUCpoxT9qmrNDYjsKBSUm
         J3EYKRW6152wxPD52segEt/mcmsNleaNEms5a2NHMTR5GDQrhYFA2cuW64PsdOeweos/
         LP4nYpAvc2FAPNUvva0CqqbhczVLd5Nieagj9EzXQLOSSYu1WePupFRwS983ATHO8Tx0
         R2RA==
X-Forwarded-Encrypted: i=1; AJvYcCVc8OSHiHpA6EFmMDJ1nQkP7KgNEM540iDH0ae+rF9tIcvtsatloCr0ughbBR9uWSvZwoUFIqynrcM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkzaNdBzmPKshDvsCiMbuj/o4cl21j6y/UGN+QLUAh9NrY91M3
	GKlh+3oxOCb7EX3m0KV9CXII2mr78AAmARs6iyiTOIgEK3Lz/zgETEPhXCFnPg==
X-Google-Smtp-Source: AGHT+IEAQvKDPpL2lqIpjoD1YuF5hp+BkJTsXcY1Qn7NDWdyJaWkDzQrHQEAjSkJdduq5N5+k8yr/A==
X-Received: by 2002:a05:600c:138d:b0:42c:bae0:f065 with SMTP id 5b1f17b1804b1-4328323f762mr191227295e9.5.1730978892642;
        Thu, 07 Nov 2024 03:28:12 -0800 (PST)
Message-ID: <9472eba9-c016-40c0-8cc3-8297d7db04d3@suse.com>
Date: Thu, 7 Nov 2024 12:28:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/4] x86/mm: miscellaneous fixes
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241106122927.26461-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: <20241106122927.26461-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2024 13:29, Roger Pau Monne wrote:
> The attempt to fix destroy_xen_mappings() so that L2 tables are
> consistently freed uncovered some errors in the memory management code.
> The following series attempts to fix them.
> 
> All patches except for 4/4 are new in v2, and 4/4 has no change from v1,
> hence kept Jan's Reviewed-by tag in 4/4.

Just to mention it: When a patch was buggy, and perhaps even more so when
it actually needed reverting, I think all R-b (and likely even all A-b)
should be dropped. Clearly the reviewer, too, missed an important point.

That said, the tag is fine to keep in this specific case; I would merely
have re-instated it after looking through the prereq changes.

> Roger Pau Monne (4):
>   x86/mm: introduce helpers to detect super page alignment
>   x86/mm: special case super page alignment detection for INVALID_MFN
>   x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()

Btw - it looks like patch 3 (with the possibly adjusted description) is
independent of patch 1 and 2. If you can confirm that and if we can agree
on replacement wording for its description, it could go in before you
send out a v3.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:30:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831694.1247041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90iZ-0007i9-1E; Thu, 07 Nov 2024 11:30:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831694.1247041; Thu, 07 Nov 2024 11: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 1t90iY-0007i2-TI; Thu, 07 Nov 2024 11:30:26 +0000
Received: by outflank-mailman (input) for mailman id 831694;
 Thu, 07 Nov 2024 11:30: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t90iX-0007hw-Qb
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:30:25 +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 abcea415-9cfb-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 12:30:20 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso134239866b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:30:20 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a18539sm82028966b.27.2024.11.07.03.30.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03:30: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: abcea415-9cfb-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFiY2VhNDE1LTljZmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTc5MDIwLjcyMzMxOCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730979020; x=1731583820; 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=Fl/2YEe4eqHnPTHFiX33vww5QDimSXH6xE0JG7hHrE8=;
        b=lK39YlBvtTeOD58p1SrPgp/grLf1HyMJbJ/klUwa7zv2d0usNAqaUKu8+H20dOrDEd
         4eC5d9LjQGbePjFLaj9z9881AaeuSvFlkYDsoYBcJm4Wm0wNbGWgVz46yRYH17YicnRO
         oveZxIZ4X2hOyqruBQyENStIRU+bJW3PdSuUk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730979020; x=1731583820;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Fl/2YEe4eqHnPTHFiX33vww5QDimSXH6xE0JG7hHrE8=;
        b=PoBbpo/Gvo8I38wHbtYwEXRNw53MF1HFwfXm0eQgkzFl21q26uLhXrnsDGPFoFxkyl
         xrothq9nwC87VZ6DFU6PKWPLRTkUboo3KutCYGgcWPIgbxhecbtnOgJn2du2YIYQMan/
         u9j+2Pdb2Q4qpI8GAZwV3m/1SyVgibszMlrcPhedI2Y3RAZu4GCROAlElyufz9ZeXeTr
         MadaLFD9YEpZBf2yqtZzQE9knakDU8AZ3AgqgXpCzOuKE/8IaYh/geJl37tMZiKIVJn/
         SVNlUWJygrYhetDmH55yiBA8mrdktC8TUMv1+LHs9CDq+/i+KOQkKJ1SNM5qPBXULrgN
         tN2w==
X-Gm-Message-State: AOJu0YzdzHvi6f3/fnBmjVe0fwFrwzhlrf1J+boZ1VNYE7KGLuyY0tWH
	jXYGvrQmP2oZ4bP3ggn9nJm1GB14KLWB/G+1F2KkmHqxZi4tTNFeqovVe3exo2Q=
X-Google-Smtp-Source: AGHT+IF82/9lU5lvBRSURJvdRU8gEXJ3cQTtDlQJyzHea3Jf8woRGaXWLXj5obyA8odWFkdiuDcilA==
X-Received: by 2002:a17:906:c145:b0:a80:f840:9004 with SMTP id a640c23a62f3a-a9e6553bf86mr2389758166b.12.1730979018515;
        Thu, 07 Nov 2024 03:30:18 -0800 (PST)
Message-ID: <e81ae2da-383f-4cc7-8213-66f8ccc9b6e7@citrix.com>
Date: Thu, 7 Nov 2024 11:30:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com> <ZyyLAj6MZ3fvOFBC@macbook>
 <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/11/2024 9:48 am, Jan Beulich wrote:
> On 07.11.2024 10:40, Roger Pau MonnÃ© wrote:
>> On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
>>> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
>>>> The tools infrastructure used to build livepatches for Xen
>>>> (livepatch-build-tools) consumes some DWARF debug information present in
>>>> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
>>>> -wi).
>>>>
>>>> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
>>>> on release builds, thus providing a default Kconfig selection that's not
>>>> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
>>>> because it's missing the DWARF debug section.
>>>>
>>>> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
>>>>
>>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> Oops, yes.
>>>
>>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>
>>> Fixes tag ?
>> Was borderline on adding one, but wasn't sure since it's strictly
>> livepatch-build-tools that requires the DWARF data, but custom made
>> livepatches (like the examples in tests) do not require such
>> information.

Ok.Â  I guess it doesn't matter too much.

> At which point: Is "select" really appropriate then? Wouldn't it be more
> logical then to change DEBUG_INFO's default to take LIVEPATCH into account
> (still permitting people to turn debug info off if they know they won't
> need it)?

I am very disinterested in letting people who think they can do
livepatching without debug symbols shoot themselves in the foot like that.

It's only debugging symbols.Â Â  If people *really* think they know
better, they can strip them themselves.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:39:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831705.1247050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90rZ-0000R4-S0; Thu, 07 Nov 2024 11:39:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831705.1247050; Thu, 07 Nov 2024 11: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 1t90rZ-0000Qx-PT; Thu, 07 Nov 2024 11:39:45 +0000
Received: by outflank-mailman (input) for mailman id 831705;
 Thu, 07 Nov 2024 11:39: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t90rY-0000Qr-OK
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:39:44 +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 f993c4be-9cfc-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 12:39:40 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-37d4ac91d97so741939f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:39: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-432b05c26e3sm21137675e9.33.2024.11.07.03.39.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03:39: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: f993c4be-9cfc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY5OTNjNGJlLTljZmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTc5NTgwLjcwNzQ3OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730979580; x=1731584380; 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=/Y3sWFnTKA+M0AYgMs7ToFiiuGneUzyuFwxDollg57Q=;
        b=f26/mbMOehPLNnYuQC87RdLxjjhYMjEiIQzFIG+0Np+YdX+h8Vx6c87FyIm9Y9FnAk
         Hdo73gopDBTjPIWNJq9DEmdpVjYzT/CZorFKX0ktzz/o0AgQAHSjkvLaVBlNPQjATO9r
         /85Zo2p8maiCFJoORi5lbY3ATgvIFYGXr6qjqX0l5C03xqEao22N7e04vSkr/5T0W/U/
         ri7Zh+HkkgC5JiKZ9DSqHMf6dDutVF4UKvi6mOXqW4sT30e6y0MV9rRp23iOaE/SgJIo
         MzO66U5EpdmwlWMHV9P2PB5pehcjrAuo3wwvSvCDVjD+SOFHQwYa9WpGHHwycO7/qacf
         6B/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730979580; x=1731584380;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/Y3sWFnTKA+M0AYgMs7ToFiiuGneUzyuFwxDollg57Q=;
        b=ZZxiF6tCwyJfn2Z5sUfb/KCXoZMtkZGTtizkBU4AriUQQiMIWXD/WI+MgZawFomC/y
         pBwtt8JCFgblokILuU91bxFWKw35xhtnH9w50/kisffglH3wfjqlZIM33GOz1XkAD+FX
         V7UA6CikhF/P6C7UqU07Z5+6XashCYxAnHoyv5dMeCg1ojAwuaKpBwB9H9r6IbwxPoo4
         rMVOzqBIOMHrygTSRMEoTxW8Tqt1f9RIYsMi+pd0bPDkhQunTHpSIQQAhlydI/ujleqI
         kSnssKe35svCEtHZi+JsGSDcEXtj/NrCQR7PtH7JhuqQKlhk2wf2XAU5m/MFu2TBlEaW
         lmCg==
X-Forwarded-Encrypted: i=1; AJvYcCXQIU4HjprER9CkWTvTF7C4B8t50+AMb7+1/K4lKdR+3W9ZUHjeF7GWderzF7/k9D0Cu88mYihS0O8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKtQvVY+ZvJg94ewquLznexLHh20p/rK/iQRzResCpdQ3Z7vUu
	fk1VKMHL62bqH1g+8m3Caik/FdNs1ndmvHwmz2leiAg2oGn7gaNVJOwZdWrkHA==
X-Google-Smtp-Source: AGHT+IEghTBKaTxQ3K8cdWEzBcrKC9DXOHwKhDWsMsASxq2ROt7dkZbTzDiRcHnNdmeyjvoA1ATYfg==
X-Received: by 2002:a05:6000:4189:b0:381:d844:512f with SMTP id ffacd0b85a97d-381d844521bmr9918420f8f.57.1730979579985;
        Thu, 07 Nov 2024 03:39:39 -0800 (PST)
Message-ID: <41bdfd6c-f842-4969-a30a-17d91916d8ac@suse.com>
Date: Thu, 7 Nov 2024 12:39:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] NUMA: Introduce NODE_DATA->node_present_pages(RAM
 pages)
To: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241107111440.443547-1-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: <20241107111440.443547-1-bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.11.2024 12:14, Bernhard Kaindl wrote:
> --- a/xen/common/numa.c
> +++ b/xen/common/numa.c
> @@ -4,6 +4,7 @@
>   * Adapted for Xen: Ryan Harper <ryanh@us.ibm.com>
>   */
>  
> +#include "xen/pfn.h"
>  #include <xen/init.h>
>  #include <xen/keyhandler.h>
>  #include <xen/mm.h>

Please retain sorting, and please don't use ""-style includes when all others
use <>-style (and there's no specific reason for using quotes).

> @@ -499,15 +500,41 @@ int __init compute_hash_shift(const struct node *nodes,
>      return shift;
>  }
>  
> -/* Initialize NODE_DATA given nodeid and start/end */
> +/**
> + * @brief Initialize a NUMA node's node_data structure at boot.
> + *
> + * It is given the NUMA node's index in the node_data array as well
> + * as the start and exclusive end address of the node's memory span
> + * as arguments and initializes the node_data entry with this information.
> + *
> + * It then initializes the total number of usable memory pages within
> + * the NUMA node's memory span using the arch_get_ram_range() function.
> + *
> + * @param nodeid The index into the node_data array for the node.
> + * @param start The starting physical address of the node's memory range.
> + * @param end The exclusive ending physical address of the node's memory range.
> + */
>  void __init setup_node_bootmem(nodeid_t nodeid, paddr_t start, paddr_t end)
>  {
>      unsigned long start_pfn = paddr_to_pfn(start);
>      unsigned long end_pfn = paddr_to_pfn(end);
> -
> -    NODE_DATA(nodeid)->node_start_pfn = start_pfn;
> -    NODE_DATA(nodeid)->node_spanned_pages = end_pfn - start_pfn;
> -
> +    struct node_data *numa_node = NODE_DATA(nodeid);

Nit: Just "node" as a name would likely suffice, without losing anything,
yet helping readability?

> +    unsigned int idx = 0;
> +    int err;
> +
> +    numa_node->node_start_pfn = start_pfn;
> +    numa_node->node_spanned_pages = end_pfn - start_pfn;
> +    numa_node->node_present_pages = 0;
> +
> +    /* Calculate the number of present RAM pages within the node */
> +    do {
> +        paddr_t ram_start, ram_end;
> +
> +        err = arch_get_ram_range(idx++, &ram_start, &ram_end);
> +        if ( !err && ram_start < end && ram_end > start )
> +            numa_node->node_present_pages += PFN_DOWN(min(ram_end, end)) -
> +                                             PFN_UP(max(ram_start, start));
> +    } while ( err != -ENOENT );
>      node_set_online(nodeid);

Nit: Blank line above here please.

With those (happy to take care of while committing):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:42:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:42:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831712.1247060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90ty-0001sr-7q; Thu, 07 Nov 2024 11:42:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831712.1247060; Thu, 07 Nov 2024 11:42: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 1t90ty-0001sk-55; Thu, 07 Nov 2024 11:42:14 +0000
Received: by outflank-mailman (input) for mailman id 831712;
 Thu, 07 Nov 2024 11:42: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t90tw-0001se-Sk
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:42:12 +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 52cf32f1-9cfd-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:42:10 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-37d4fd00574so472731f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:42: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-432b0562642sm21311245e9.21.2024.11.07.03.42.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03:42: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: 52cf32f1-9cfd-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjUyY2YzMmYxLTljZmQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTc5NzMwLjM2ODcyNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730979730; x=1731584530; 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=4i3EIorw66PDv2ixCYy6jyxTps6uALkK7M+QJjfvtBw=;
        b=HAWRx2ZS0a+2OlSEyP4jhIJ+UuX601ECxuNFlIOk+AAlqvFFtxFK3c4XEpLeLgwurb
         Lu5Tc9PIEPlTbVa8KTWpsliHH3onI/YNqRj/55RJT9F7XeX223hA+cXdavCkLqe56ZHd
         0YIEncz14p9BifbMpjykGYWk7bFXSDUDPIivYWHO3Q31EnmjWesiD9j3cBDZ0B+ON7zu
         ftJ7HXL2KNFEVWkwP3/W9Mqs78JymmdhH3LcrRjsemiW98RrSm7yNM7FMne9xbJy8qxw
         FqRSes/Egx16rjb9nI3pis3rwtNBkaqU6KG0aZVdjsc5fBd/IR08P1w+doJ+U8h6POhq
         ETMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730979730; x=1731584530;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4i3EIorw66PDv2ixCYy6jyxTps6uALkK7M+QJjfvtBw=;
        b=UA9L79kVniPBGtwUo25remfE6zBXvAiS/OiYr43QALC4KphVtAnxLpiC3PmcTbUQ4i
         d89gn27Y9iBP48SJ1Glpf/gIyTRbSfuKbETSY5mF4mBs7eA0TsV/Vw8W2nJDiXwadPKe
         VKy3aMXuIn5gYV2svyLgsYY3WL0N+AK1RZwu72nQbo09cBFgKYtLwG0gtfEtxa62713V
         n75XW58jjGIDl0PvKHDH9cyZsQwz2PXhZFoTNjmC+L5MGIeeoEpoMYczCzDYs4CJVhFu
         1K3H9EkqXj3Y4+qtCYijQww/Kq83IjV+qC255glbX8mcrIpUI3y+sV3yquhPQNiFRblE
         aphg==
X-Gm-Message-State: AOJu0YyKLpbn5sT11L7u60BnuhvYaqNv4KuyT7vZ1/IwlR50huquOkBR
	dSqNBV1w4d2VYwqjTpyOemOAm4E0DXTaSZ5IlWq/9En4u3nl8vi3C1lja+EQEg==
X-Google-Smtp-Source: AGHT+IH51t3VEabAuYpPft4vZ/EpXR1iNfkzxWMp1r77PtiTPKUeZXP1CCzGhsUMDTcAFHKXKeCAzA==
X-Received: by 2002:a05:6000:178a:b0:374:b9ca:f1e8 with SMTP id ffacd0b85a97d-381ec607160mr2175329f8f.20.1730979729730;
        Thu, 07 Nov 2024 03:42:09 -0800 (PST)
Message-ID: <3dc45d47-7400-4c17-9e89-9604b01bdac4@suse.com>
Date: Thu, 7 Nov 2024 12:42:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com> <ZyyLAj6MZ3fvOFBC@macbook>
 <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com> <Zyyjmu9tm1KEGiqQ@macbook>
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: <Zyyjmu9tm1KEGiqQ@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 12:25, Roger Pau MonnÃ© wrote:
> On Thu, Nov 07, 2024 at 10:48:21AM +0100, Jan Beulich wrote:
>> On 07.11.2024 10:40, Roger Pau MonnÃ© wrote:
>>> On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
>>>> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
>>>>> The tools infrastructure used to build livepatches for Xen
>>>>> (livepatch-build-tools) consumes some DWARF debug information present in
>>>>> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
>>>>> -wi).
>>>>>
>>>>> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
>>>>> on release builds, thus providing a default Kconfig selection that's not
>>>>> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
>>>>> because it's missing the DWARF debug section.
>>>>>
>>>>> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
>>>>>
>>>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>
>>>> Oops, yes.
>>>>
>>>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>
>>>> Fixes tag ?
>>>
>>> Was borderline on adding one, but wasn't sure since it's strictly
>>> livepatch-build-tools that requires the DWARF data, but custom made
>>> livepatches (like the examples in tests) do not require such
>>> information.
>>
>> At which point: Is "select" really appropriate then? Wouldn't it be more
>> logical then to change DEBUG_INFO's default to take LIVEPATCH into account
>> (still permitting people to turn debug info off if they know they won't
>> need it)?
> 
> At least right now the only way to build useful livepatches for Xen
> (not dummy tests) is using livepatch-build-tools (that requires DWARF
> sections).  My concern with using the Fixes tag was that I don't know
> whether initially the DWARF info was needed or not, or maybe whether
> people used a different tool rather than livepatch-build-tools.
> 
> I don't mind changing, but I also don't think an hypervisor built with
> LIVEPATCH but without DEBUG_INFO is going to be useful to anyone given
> the requirements of the tools we provide to build livepatches.

Well, okay, especially Andrew looks to be pretty strong about this. I
don't want to stand in the way ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:48:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831719.1247071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t90zg-00033J-RX; Thu, 07 Nov 2024 11:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831719.1247071; Thu, 07 Nov 2024 11: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 1t90zg-00033C-Oi; Thu, 07 Nov 2024 11:48:08 +0000
Received: by outflank-mailman (input) for mailman id 831719;
 Thu, 07 Nov 2024 11:48: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t90zf-000336-Qp
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:48:07 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2602dae3-9cfe-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:48:04 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aadb1so995335a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:48:04 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dee4a2sm82210966b.136.2024.11.07.03.48.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 03: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: 2602dae3-9cfe-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI2MDJkYWUzLTljZmUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTgwMDg0LjY2MjkyNSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730980084; x=1731584884; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=kl9tQ+SDV1nln+FQEStM8ScmNXBv0OdZKzB2RZsc5sc=;
        b=JUmfRzbNz/VvTvhvtppk13h4VYUl9FkQO7pCXrZ3JjFW0gA0ykCYhcIdGxpCFPo6Ep
         w319tF5u5YIkIVAHTWXydfpPle+L0G8LFXcMR4z+6FyaVzUHSTgrpl7oz0BpYw9SFN3r
         eW6xisx7t9haF7tJIdE3qkWwLBSSxVzamdid4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730980084; x=1731584884;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kl9tQ+SDV1nln+FQEStM8ScmNXBv0OdZKzB2RZsc5sc=;
        b=BYGPrRuBL/zmAAa1DHaQBp51EjWvrmdPbHsvZLkk15y+4oSVw6APBWdSPQ4O/ONbpS
         YSN2TY1vhGWv/MULIFp4h3fznunl3f/Lvj7HNY4H+eGD1dZ4wRSx0cRdQgfaIyihN+Qd
         8wljiQgtzkQkiD/ZHRhnKzqhMOCLgu0BIIbRsmul2IS9G/GcngAUPVm3QeBexmXl1+C3
         S0ufeB1YPuaCbnr3NaNDitJUds3WzbO5oscM703hRM2VEA6eJZQ0MMNW5blhTPqVFuG2
         KjbO8AMk6CtkU3T5Z9OkLBGg0vqJSjAfshohYgVAqghZX53han2TsPm1fI7YekL17tRI
         z8tQ==
X-Forwarded-Encrypted: i=1; AJvYcCVM66Kn0zWSTuYz/WR5CGEkHx+bAvkQdmWLURPt5TS12qSI6uD9kdemzzw4mXXc7ayqfBFg10TjX1I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzA5bvKCIw9BtmswOsEkf/3CljL6zxJvRBAoUPHgMuzVgxdlrg4
	Xgm2MoCel/2xDWsPIpF8OyeRSIuGAJ6PToGS5RGXQfTDeoXGX6DAJsmSqOx2s6w=
X-Google-Smtp-Source: AGHT+IFOBGOaJuacUpExW+7aimactDysYerGU8GETwLV1d0PE2YrdHHl9Ulc9/AKAZ8aulPCXuDVPA==
X-Received: by 2002:a17:906:478b:b0:a9a:66a9:2c55 with SMTP id a640c23a62f3a-a9ee7479e0emr58887966b.6.1730980083976;
        Thu, 07 Nov 2024 03:48:03 -0800 (PST)
Date: Thu, 7 Nov 2024 12:48:02 +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 v2 0/4] x86/mm: miscellaneous fixes
Message-ID: <Zyyo8qMobqQT-rA5@macbook>
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <9472eba9-c016-40c0-8cc3-8297d7db04d3@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <9472eba9-c016-40c0-8cc3-8297d7db04d3@suse.com>

On Thu, Nov 07, 2024 at 12:28:11PM +0100, Jan Beulich wrote:
> On 06.11.2024 13:29, Roger Pau Monne wrote:
> > The attempt to fix destroy_xen_mappings() so that L2 tables are
> > consistently freed uncovered some errors in the memory management code.
> > The following series attempts to fix them.
> > 
> > All patches except for 4/4 are new in v2, and 4/4 has no change from v1,
> > hence kept Jan's Reviewed-by tag in 4/4.
> 
> Just to mention it: When a patch was buggy, and perhaps even more so when
> it actually needed reverting, I think all R-b (and likely even all A-b)
> should be dropped. Clearly the reviewer, too, missed an important point.

My consideration for keeping you RB was that the patch wasn't buggy
itself, but the bug fixed by the patch uncovered bugs in other areas
of the code.

Hence it's my understanding the patch was and still is correct, but
given the timeframe in which the breackage was discovered (the evening
before a public holiday leading to a weekend) I feel it was safer to
revert than to either rush a fix or lave the tree broken until next
Monday.

> That said, the tag is fine to keep in this specific case; I would merely
> have re-instated it after looking through the prereq changes.
> 
> > Roger Pau Monne (4):
> >   x86/mm: introduce helpers to detect super page alignment
> >   x86/mm: special case super page alignment detection for INVALID_MFN
> >   x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
> 
> Btw - it looks like patch 3 (with the possibly adjusted description) is
> independent of patch 1 and 2. If you can confirm that and if we can agree
> on replacement wording for its description, it could go in before you
> send out a v3.

No, I'm afraid it can't go in ahead of 1 and 2, as with the current
logic in map_pages_to_xen() using it in bootstrap_map_addr() will lead
to allocation requests, and thus hitting a BUG_ON().  Calling
map_pages_to_xen() with INVALID_MFN currently causes super-page
shattering if present.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:55:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831730.1247081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t916F-0004fN-IC; Thu, 07 Nov 2024 11:54:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831730.1247081; Thu, 07 Nov 2024 11: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 1t916F-0004fG-FS; Thu, 07 Nov 2024 11:54:55 +0000
Received: by outflank-mailman (input) for mailman id 831730;
 Thu, 07 Nov 2024 11:54: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t916D-0004f8-Mw
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:54:53 +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 184bac62-9cff-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:54:51 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9a0ef5179dso133603666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:54:51 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0deeef7sm82662666b.145.2024.11.07.03.54.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 03:54: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: 184bac62-9cff-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE4NGJhYzYyLTljZmYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTgwNDkxLjE1OTYyLCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730980490; x=1731585290; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=UuYdK5k9okck0V2sRC0oIb06oFHPncN5ly31dj3z2s0=;
        b=N659MazGPgkgtzJfxoTTKslpZMASBhvmt97qdWvJtn1xHNrsH05NC7i9j5Vjhywedw
         Bd/ggFyAlkytFrs27sTRqXB/ME4BVbtjQ1B4FRn0Ek5Sj4wuOsAKxnhQAd/WWp/hDpI7
         PG1sh8kMnomcQI+j8Aw3B9DzK9m9ospclCQYI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730980490; x=1731585290;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=UuYdK5k9okck0V2sRC0oIb06oFHPncN5ly31dj3z2s0=;
        b=vqAz88Ij1AY2kvYRKUCiJd4YBH/iEsQzVoK+LxnCNQFmU377Yfiw1Hm52eZ9DYiF6V
         NKA0EZirR6jOcfDLeQXSW2jOqC9vLvPjW7hq6T+3RThubH6lhfJ3ZP8fLyTU1YdJ+QP4
         9Ds02oefJpMasCi5d1OQrhFvmAbR1UE2Fu0sVbJuxdoQtVcJmwAlTZbii8pFIa3bEX/H
         soWHIte+o5Qtw6cPn7+Re6/fkWLhQLov9HGsD6NJbUpo8kD+raGaiCDw8th42G+ZYwGn
         OvpALzRJUr/O/pD0eX+fiwCsC5UiXYE6UBfnrnTP+tW5TKgzj1u2IF/OFKsa6Rib+qwK
         QBcQ==
X-Forwarded-Encrypted: i=1; AJvYcCU/ApFPUFPr2oE2czjsPtMnADGpFGr7g2E5lF+QJvSrF27sy40Virxkd93Jll77M5Gz75xgpYqdg7k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxomY6WKJjRyyfVdtwtVzFW6nItYFL8Z8F3uJlEddDAhzbhvCnC
	r/2LyXkSf2agzIUEn5tF4kaZASFYk0sAfxaqWwoL5ux2O//gTjIJnI55NcETG4YstPmAbYZlA8R
	1
X-Google-Smtp-Source: AGHT+IFxIfDi7ByY/43N0nTdPqoIDGte8bN7OVzfQcaudotiC0cp43NUS8gNpEshWSInfYhz6P0RMw==
X-Received: by 2002:a17:907:9713:b0:a9d:e01e:ffa9 with SMTP id a640c23a62f3a-a9de5f82589mr3926014166b.33.1730980490487;
        Thu, 07 Nov 2024 03:54:50 -0800 (PST)
Date: Thu, 7 Nov 2024 12:54: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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of
 destroy_xen_mappings()
Message-ID: <ZyyqibpW2dFg5hOQ@macbook>
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-4-roger.pau@citrix.com>
 <c8620982-37b5-4556-9061-5dbf5778a43a@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c8620982-37b5-4556-9061-5dbf5778a43a@suse.com>

On Thu, Nov 07, 2024 at 12:23:51PM +0100, Jan Beulich wrote:
> On 06.11.2024 13:29, Roger Pau Monne wrote:
> > bootstrap_map_addr() top level comment states that it doesn't indented to
> > remove the L2 tables, as the same L2 will be re-used to create further 2MB
> > mappings.
> 
> With that I assume you refer to the 2nd sentence in the comment immediately
> ahead of the function. According to my reading, it may imply what you say,
> but it certainly doesn't "state" this. Imo the problem was latent already
> before, if BOOTSTRAP_MAP_{BASE,LIMIT} were changed to cover at least one
> full L3E range. Which isn't to say that ...

Hm, maybe I've implied too much from that comment.  What about
replacing the first paragraph with:

"bootstrap_map_addr() needs to be careful to not remove existing
page-table structures when tearing down mappings, as such pagetable
structures might be needed to fulfill subsequent mappings requests.
The comment ahead of the function already notes that pagetable memory
shouldn't be allocated."

> >  It's incorrect for the function to use destroy_xen_mappings() which
> > will free empty L2 tables.
> > 
> > Fix this by using map_pages_to_xen(), which does zap the page-table entries,
> > but does not free page-table structures even when empty.
> > 
> > Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
> > ---
> > The fixes tag reflects the fact that if 4376c05c3113 freed the L2 correctly
> > when empty, it would have become obvious that bootstrap_map_addr() shouldn't be
> > using it if it wants to keep the L2.  4376c05c3113 should have switched
> > bootstrap_map_addr() to not use destroy_xen_mappings().
> 
> ... I mind the commit you name to be blamed. It was clearly something I
> missed back then.
> 
> With the 1st sentence of the description re-worded some:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:57:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:57:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831739.1247103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t918y-0005wI-5c; Thu, 07 Nov 2024 11:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831739.1247103; Thu, 07 Nov 2024 11:57: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 1t918y-0005wB-2D; Thu, 07 Nov 2024 11:57:44 +0000
Received: by outflank-mailman (input) for mailman id 831739;
 Thu, 07 Nov 2024 11:57: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t918w-0005w5-4h
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:57:42 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c83af2a-9cff-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:57:39 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-539e7e73740so693869e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:57: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-432b0562642sm21825775e9.21.2024.11.07.03.57.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03:57: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: 7c83af2a-9cff-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzIiLCJoZWxvIjoibWFpbC1sZjEteDEzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdjODNhZjJhLTljZmYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTgwNjU5LjIxMjEyOCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730980659; x=1731585459; 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=/ptetnW1EcEBHdfLH4TPxXtQEUWElejFgMbfWLraAgA=;
        b=H+doEfAI5f2pUz84QL2iwLi/QjnO8DVuNRjge32VrdoCskpGIUuz+kky1ImAhDS6AA
         uswMyjTmWhR5Vi7mdABGshMl1yvWVo0zwKkaWOzJ+pJSQ7qv94rgT+sDOlTLYPl5A7yk
         dBq2/DSLtVSj6M2UedQzIbEzsf1DDNuKz6I7zbBja8g9nVKpYGt4u4KorXutLZrX+TSe
         tsmdpCHjmMvd8IzdzqQ50IcwUGBNmopt2LsVCvKNvs723yLRLd1//tRB1vathHzMDtcA
         hL09SW6w6enh7aNDf10FphWWMhCCjvD3TryBPUz/csmnpuSoiFLgdjclDWekbwN38798
         ktcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730980659; x=1731585459;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/ptetnW1EcEBHdfLH4TPxXtQEUWElejFgMbfWLraAgA=;
        b=a1xNuVkbivKTv/2b9WzLkQu21+9knFtBLgpGoGMfJdATFy0zgVIK3bYlfQmYtoWF53
         2PGreMzLImUAfcrnirMhOKa4VBhX3QSciXSz9ExFAgvkTv3n0QR00MvTZkIowHYwmyLm
         ScliJrxh6qxGvAUL543pPtFQOCWJgdeNf7wss4ZwKGx4ZdeoTC71IR60fWFiJsPKdLdq
         55Wqu2owJ+Azjc1MVJU6MqkBntV4zl1LtclQuOb+2SpkMZBFV6aP42j+S+E7CQoGS2WF
         IEr90FFLCjyJjusZ2ZyuWmJZmJTGEpyJHhqtoCQcNnb3PFipZVkOGcQ42faIlwQGGRyw
         4KHg==
X-Gm-Message-State: AOJu0YwGpK72r4+MrM3MlyiHWErPPoy+F1jKoFK2ZeDnKGezMI9pyTK1
	j5Eh2rbqg6xyEZBCRzoB1wgQMXsyuIACOq0XAMwcbjo9ri16sQbGX7MrrPG6DA==
X-Google-Smtp-Source: AGHT+IH+t1INUeLLKhf414v4EMBKvE1WlhVyOmwuW/3TEn4X1n2jVv1hOBLwl2q5ZN/8rOb+1/dHGg==
X-Received: by 2002:a05:6512:31c3:b0:53a:c16:a9e with SMTP id 2adb3069b0e04-53d840a9283mr509118e87.51.1730980658635;
        Thu, 07 Nov 2024 03:57:38 -0800 (PST)
Message-ID: <b1ef3ffa-2021-45df-af46-098eb4cb3a46@suse.com>
Date: Thu, 7 Nov 2024 12:57:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com> <ZyyLAj6MZ3fvOFBC@macbook>
 <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>
 <e81ae2da-383f-4cc7-8213-66f8ccc9b6e7@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: <e81ae2da-383f-4cc7-8213-66f8ccc9b6e7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 12:30, Andrew Cooper wrote:
> On 07/11/2024 9:48 am, Jan Beulich wrote:
>> On 07.11.2024 10:40, Roger Pau MonnÃ© wrote:
>>> On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
>>>> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
>>>>> The tools infrastructure used to build livepatches for Xen
>>>>> (livepatch-build-tools) consumes some DWARF debug information present in
>>>>> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
>>>>> -wi).
>>>>>
>>>>> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
>>>>> on release builds, thus providing a default Kconfig selection that's not
>>>>> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
>>>>> because it's missing the DWARF debug section.
>>>>>
>>>>> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
>>>>>
>>>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>> Oops, yes.
>>>>
>>>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>
>>>> Fixes tag ?
>>> Was borderline on adding one, but wasn't sure since it's strictly
>>> livepatch-build-tools that requires the DWARF data, but custom made
>>> livepatches (like the examples in tests) do not require such
>>> information.
> 
> Ok.Â  I guess it doesn't matter too much.
> 
>> At which point: Is "select" really appropriate then? Wouldn't it be more
>> logical then to change DEBUG_INFO's default to take LIVEPATCH into account
>> (still permitting people to turn debug info off if they know they won't
>> need it)?
> 
> I am very disinterested in letting people who think they can do
> livepatching without debug symbols shoot themselves in the foot like that.
> 
> It's only debugging symbols.Â Â  If people *really* think they know
> better, they can strip them themselves.

Besides my abstract concern, let me also add a concrete practical one. I'm
sure you've noticed that xen.efi is _much_ slower to link with debug info
than without, or than xen-syms. That's a consequence of how GNU ld (really:
libbfd) works internally. By not allowing DEBUG_INFO to stay off you're
forcing me to either wait longer for every single one of my post-commit
pre-push build tests, or to turn off LIVEPATCH there. The latter not really
being a good idea.

Nevertheless, as said in reply to Roger: Go ahead if you absolutely think
that's the only sensible way.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 11:59:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 11:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831747.1247112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t91Ae-0006V7-Gv; Thu, 07 Nov 2024 11:59:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831747.1247112; Thu, 07 Nov 2024 11:59: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 1t91Ae-0006V0-EL; Thu, 07 Nov 2024 11:59:28 +0000
Received: by outflank-mailman (input) for mailman id 831747;
 Thu, 07 Nov 2024 11:59: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t91Ad-0006Us-Kw
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 11:59:27 +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 bb5925d9-9cff-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 12:59:24 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43193678216so7959585e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 03:59: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-381ed97ec9fsm1575177f8f.42.2024.11.07.03.59.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 03: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: bb5925d9-9cff-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzYiLCJoZWxvIjoibWFpbC13bTEteDMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJiNTkyNWQ5LTljZmYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTgwNzY0Ljg0MDc4Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730980764; x=1731585564; 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=qkxdXELn6uGvYAe2la3v5eI3YvZUMuagryUdI6NwtYU=;
        b=Hm2XnrJRvZqmCRK8U+AqzPLk/qnRia4qlmQeqFpVLYoLNDyW8YlpUTqMiuz9f6dIyr
         REduE6u4VfJTRt3saKc5ILmw8d+VBDJvJPKqAVsqmWNpK6MsLmigRXJ9bqODfu9Tm5BN
         l2gKGiD7qYIPhiBIyAy9OEpYIA7p895SmenHuXv8F2G6zh7S5RDOGhFQTWnhcAag6cKG
         ldc3GxqHzv/Nc7tanz62o1ia84GTGIEGC/da97TMtdMoZ8wuDPI4QNpuzLTKGlCfGO5y
         P0nAuoVO4OfIfaSlXF7u66prqnxrO+zYOBfr2mVZl9VoNBZKD1/gSDpz38ZIUeydc6ty
         xv3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730980764; x=1731585564;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qkxdXELn6uGvYAe2la3v5eI3YvZUMuagryUdI6NwtYU=;
        b=D3QgacoS8vyUt2773Pux9Ro3fqHejNUDuDOWLIw7rOn6wzgGOLZ0M3yfHvRIV0gHXi
         Kkj12/133ybRZn5N3K3Arf9vDdCyAwKGEvQqXw7lQwcAiGUvar+bTafmhPoPglcyIaAD
         +TQ2HR6ToQHRnt6uM7ayl1482tUCs0KBpNcwLaHPntLXkPed2+cynXZubduDw8EBkSkX
         WdmEK52ZnxPU471PhFB8UJLyd49KWSaQQjhprCW7Zu1Rp0eyk9BhawrbYc5X1czH1Nf5
         eW+/vYdMYcH4zAq2femE4P61zP/m6o3HJB6Kh4rHINkAu50w3iKIVXAb6wjd/FKm4HPa
         q6zA==
X-Forwarded-Encrypted: i=1; AJvYcCVdlGRdQvo6onMvpNhQHH5cSTb4BPMex7NxomZvU9udF9ioQ3hXsIARPm7uPpHGYQojxqgT34Kcph4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YytAVdA51qjrfmr9EBxvsWOpQwRzcV+EJvXVd0uZI/ya9D0BLw7
	JmxXj4VZmmD4hvkx32TPGIU+pU0fDmXCyMicd6E1Nx+6on0XMtN8e93QEUKnuQ==
X-Google-Smtp-Source: AGHT+IHHYSJeOPw/WlQ++Azx+McRQ2WkjwcqY9yb/3NiSV1HI4CLiwuBFmlDS//p4cFz7pmJ0XSXdQ==
X-Received: by 2002:a05:600c:350b:b0:42c:e0da:f15c with SMTP id 5b1f17b1804b1-4319acbb947mr344459005e9.20.1730980764153;
        Thu, 07 Nov 2024 03:59:24 -0800 (PST)
Message-ID: <554040b0-bbeb-46db-80cb-6ac512b2edbe@suse.com>
Date: Thu, 7 Nov 2024 12:59:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of
 destroy_xen_mappings()
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: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-4-roger.pau@citrix.com>
 <c8620982-37b5-4556-9061-5dbf5778a43a@suse.com> <ZyyqibpW2dFg5hOQ@macbook>
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: <ZyyqibpW2dFg5hOQ@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 12:54, Roger Pau MonnÃ© wrote:
> On Thu, Nov 07, 2024 at 12:23:51PM +0100, Jan Beulich wrote:
>> On 06.11.2024 13:29, Roger Pau Monne wrote:
>>> bootstrap_map_addr() top level comment states that it doesn't indented to
>>> remove the L2 tables, as the same L2 will be re-used to create further 2MB
>>> mappings.
>>
>> With that I assume you refer to the 2nd sentence in the comment immediately
>> ahead of the function. According to my reading, it may imply what you say,
>> but it certainly doesn't "state" this. Imo the problem was latent already
>> before, if BOOTSTRAP_MAP_{BASE,LIMIT} were changed to cover at least one
>> full L3E range. Which isn't to say that ...
> 
> Hm, maybe I've implied too much from that comment.  What about
> replacing the first paragraph with:
> 
> "bootstrap_map_addr() needs to be careful to not remove existing
> page-table structures when tearing down mappings, as such pagetable
> structures might be needed to fulfill subsequent mappings requests.
> The comment ahead of the function already notes that pagetable memory
> shouldn't be allocated."

SGTM.

Thanks, Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 12:17:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 12:17:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831759.1247122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t91Rs-0001jF-15; Thu, 07 Nov 2024 12:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831759.1247122; Thu, 07 Nov 2024 12:17: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 1t91Rr-0001j8-Uk; Thu, 07 Nov 2024 12:17:15 +0000
Received: by outflank-mailman (input) for mailman id 831759;
 Thu, 07 Nov 2024 12:17: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t91Rr-0001j2-0L
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 12:17:15 +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 35a882e3-9d02-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 13:17:08 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cec7cde922so1099083a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 04:17:08 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc4c55sm84522966b.130.2024.11.07.04.17.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 04:17: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: 35a882e3-9d02-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM1YTg4MmUzLTlkMDItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTgxODI4Ljk4MDU4Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730981828; x=1731586628; 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=R0TrtkVlBH9e81jRHnU7vENpjqxQ5LEGpgZsOR9rejw=;
        b=kWfX1auj0fjTv9MnmWLSiGs4+ggNjlv64tpOyN6hUNDpRFbiUgFME9CbumoOVuhLpJ
         se5QCT3+LuOdvNKYdkLg0BWzakFlPzKER4/hvuQ91JyTQCU6oarpInO5L/G3rr8fx5BN
         4PibMUKKjewJAmCg8AlWq0vYyQ/vcC2n1AQZs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730981828; x=1731586628;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R0TrtkVlBH9e81jRHnU7vENpjqxQ5LEGpgZsOR9rejw=;
        b=ScXCQSchLcgGCxoRqzUbnPdPWMycZVC/9UDftJM9Aly72eZZWpqV5T85yRDrcO3ghJ
         +0IUh6yvNGbnwbNRHEgg+R9b6gZcKy9uASlyMm6rDTKBP9cKvCOOd8ItioP8zUA2UbKL
         ViupsKFwSZpxtVPpVGXjL5AMsbU/LWC4BYAh05CP8+37n4SaVqtspGK6VkdlmUnLHIzw
         Ul3RHL8CyEDRPyPfcZJROhTZr1mziIhdjkjjwKOYxTXsmrfbXA51Vqa95ze8ZfsQO75k
         R5YIxiHgHlUUaSlz6nSsqheQbas67vW8AhA0W6jnEKRynr8rulKKTxIUqV6b7Sbe3y48
         p/kQ==
X-Gm-Message-State: AOJu0YyDwBESV9NgLzH6g5U6gOzl9EB2XCf3+suJk7Txwty16b4sU6YT
	idCWxgXnxh6QCLlEdEUPDw+tdDU099txqcDG8GXZAdwvCNr0OnveS5gWn6FWZek=
X-Google-Smtp-Source: AGHT+IGke/9gbt6sRPcxnz2RidO1pMqhIfKrHuvQBD+0gPAOrA0LjenKPIBxEoua/YU3iYmnxwDNLQ==
X-Received: by 2002:a17:907:3f14:b0:a9a:4f78:c3 with SMTP id a640c23a62f3a-a9ee74a7f39mr73341166b.21.1730981828146;
        Thu, 07 Nov 2024 04:17:08 -0800 (PST)
Message-ID: <ce901e5e-2872-48c0-b3a0-52478d642706@citrix.com>
Date: Thu, 7 Nov 2024 12:17:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com> <ZyyLAj6MZ3fvOFBC@macbook>
 <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>
 <e81ae2da-383f-4cc7-8213-66f8ccc9b6e7@citrix.com>
 <b1ef3ffa-2021-45df-af46-098eb4cb3a46@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <b1ef3ffa-2021-45df-af46-098eb4cb3a46@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/11/2024 11:57 am, Jan Beulich wrote:
> On 07.11.2024 12:30, Andrew Cooper wrote:
>> On 07/11/2024 9:48 am, Jan Beulich wrote:
>>> On 07.11.2024 10:40, Roger Pau MonnÃ© wrote:
>>>> On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
>>>>> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
>>>>>> The tools infrastructure used to build livepatches for Xen
>>>>>> (livepatch-build-tools) consumes some DWARF debug information present in
>>>>>> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
>>>>>> -wi).
>>>>>>
>>>>>> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
>>>>>> on release builds, thus providing a default Kconfig selection that's not
>>>>>> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
>>>>>> because it's missing the DWARF debug section.
>>>>>>
>>>>>> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
>>>>>>
>>>>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>> Oops, yes.
>>>>>
>>>>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>
>>>>> Fixes tag ?
>>>> Was borderline on adding one, but wasn't sure since it's strictly
>>>> livepatch-build-tools that requires the DWARF data, but custom made
>>>> livepatches (like the examples in tests) do not require such
>>>> information.
>> Ok.Â  I guess it doesn't matter too much.
>>
>>> At which point: Is "select" really appropriate then? Wouldn't it be more
>>> logical then to change DEBUG_INFO's default to take LIVEPATCH into account
>>> (still permitting people to turn debug info off if they know they won't
>>> need it)?
>> I am very disinterested in letting people who think they can do
>> livepatching without debug symbols shoot themselves in the foot like that.
>>
>> It's only debugging symbols.Â Â  If people *really* think they know
>> better, they can strip them themselves.
> Besides my abstract concern, let me also add a concrete practical one. I'm
> sure you've noticed that xen.efi is _much_ slower to link with debug info
> than without, or than xen-syms. That's a consequence of how GNU ld (really:
> libbfd) works internally. By not allowing DEBUG_INFO to stay off you're
> forcing me to either wait longer for every single one of my post-commit
> pre-push build tests, or to turn off LIVEPATCH there. The latter not really
> being a good idea.
>
> Nevertheless, as said in reply to Roger: Go ahead if you absolutely think
> that's the only sensible way.

I had noticed that link was taking a long time.Â  I hadn't realised it
was this specifically.

But to put this another way, you're arguing to intentionally avoid
fixing a sharp corner, because there's a perf issue in Binutils.

I will note that it was you who forced the generation of xen.efi on
everyone, even those who didn't want it, without any knob to turn it off.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 12:21:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 12:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831765.1247133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t91Vu-0003Uv-G6; Thu, 07 Nov 2024 12:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831765.1247133; Thu, 07 Nov 2024 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 1t91Vu-0003Un-DG; Thu, 07 Nov 2024 12:21:26 +0000
Received: by outflank-mailman (input) for mailman id 831765;
 Thu, 07 Nov 2024 12:21: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t91Vt-0003Uc-Ik
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 12:21:25 +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 cc80d798-9d02-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 13:21:21 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cebcf96fabso1057163a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 04:21:21 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5c91esm727688a12.4.2024.11.07.04.21.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 04:21: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: cc80d798-9d02-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNjODBkNzk4LTlkMDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTgyMDgxLjk3MjE4NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730982081; x=1731586881; 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=SDbTb7NjSJYn3X1Dh4L5KXZIiaqRtXYAT6o5D6+07ZU=;
        b=agqa3JUTy2fl+mpj6JAbJDy6oCVvngy5hXNVD3oNvvYw0Dj5/T+RoEIu1onw6X2l0N
         XDMfXYgbItG/QgG2u5xA3M9d6bJuT4vbqioXzl/I0Cz0U4yCwUTkdkG/Dw2pE5fTIG2D
         QojCzhveo0ceeSc5D7TIKYOvaO4zH+Sdm8X7M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730982081; x=1731586881;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=SDbTb7NjSJYn3X1Dh4L5KXZIiaqRtXYAT6o5D6+07ZU=;
        b=KDlPEuO5NauW9d7pwGLfJ88OOreiFGrZtnVmNeZm4l83EPjOhZjULwAYuVaqw4Vi/Y
         dPuVM0CFzzJVUQMsX1TgKm/dmRrmbOlumLJlVrfB2w5d9WWxgxNFFD8U2+DgBQXteAET
         9vN2GznH0AP3XropOmIWGrdFtJyAbJdigcrg+Oa7KjBHdunalf74mJIG7KjtOktz7r/R
         QQq/xIaqkixLzpBOpL1dx7va5bSoGVmo3U7LCy/ZNBMu/FMpMlpWyI1LdKXaC5PoBoTf
         XJD5H9IB6LeRz1piM13vJ73Qo5NDXFGYTVtjvEDhDNeix1hfhB3MyDhAkLOoN6apzjRF
         K6Iw==
X-Gm-Message-State: AOJu0YwBIf1dX9Ai/7nKcHtrH8poN1I2+wIleBtXYQrPSp3BnvwmKmNk
	q1u5EsvG2Yi8VQL9jKGre0E/JfdRGj+JVJFj6utLxfP8fFMXxKovwB6wF3iIQ5Nrv9yGLh4oTFQ
	N
X-Google-Smtp-Source: AGHT+IGpF/m3x2o12SaRg3fy6eGoryDpECSFOmUQ7NWXQw1gZ34JFuB/Ho2T7Tux41gXWEKqiTfODQ==
X-Received: by 2002:a05:6402:5242:b0:5ce:f7c2:65fe with SMTP id 4fb4d7f45d1cf-5cf05a5976emr1020372a12.28.1730982080836;
        Thu, 07 Nov 2024 04:21:20 -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/ucode: Don't use microcode_update_cpu() in early_microcode_load()
Date: Thu,  7 Nov 2024 12:21:15 +0000
Message-Id: <20241107122117.4073266-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
References: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are two callers of microcode_update_cpu(), and because one passes NULL
and one doesn't, there are effectively two disjoint pieces of logic wrapped in
a single function.

early_microcode_load()'s use skips all the microcode_cache handling, and is
just a simple patch application.

This skips a redundant collect_cpu_info() call (performed in
early_microcode_init(), marginally earlier), and avoids holding
microcode_mutex when we're not interacting with microcode_cache 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/microcode/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 11cd878d1f2e..d9406ec3fd34 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -900,7 +900,7 @@ static int __init early_microcode_load(struct boot_info *bi)
      */
     early_mod_idx = idx;
 
-    rc = microcode_update_cpu(patch, 0);
+    rc = ucode_ops.apply_microcode(patch, 0);
 
  unmap:
     bootstrap_unmap();
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 12:21:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 12:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831766.1247143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t91Vv-0003jv-My; Thu, 07 Nov 2024 12:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831766.1247143; Thu, 07 Nov 2024 12:21: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 1t91Vv-0003jo-JX; Thu, 07 Nov 2024 12:21:27 +0000
Received: by outflank-mailman (input) for mailman id 831766;
 Thu, 07 Nov 2024 12:21: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t91Vu-0003Uc-8N
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 12:21:26 +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 cdc17699-9d02-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 13:21:24 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a9ee097a478so39568066b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 04:21:24 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5c91esm727688a12.4.2024.11.07.04.21.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 04:21: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: cdc17699-9d02-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNkYzE3Njk5LTlkMDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTgyMDg0LjA4NzUzOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730982083; x=1731586883; 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=dhkaHQoFIRa55JOrJcaTnvyo182cpXRAkClX9uwWjpI=;
        b=sO82k5t5Q6dEIqdNrAUES0PJxkdj5oCkKdoq+GZElFsTYIjdjyXjW+6ONieJ12Qcuh
         gFc7xGMRhhRh7dzqKC+z4wsj94V7xUlY/8hOkSfMhXMlBCq2Q/ygWST+1LRS5YXR1Qmh
         c1MmweaBw8GZRH94LOhcHkjy9PMFSlX8Bx9Rs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730982083; x=1731586883;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dhkaHQoFIRa55JOrJcaTnvyo182cpXRAkClX9uwWjpI=;
        b=pm4GiG+qeObyx5U0QNQ28ePF8BlR6D03pCta05ItCreKSikHPzejjzcPY+iQ2gZb2l
         F/SQ5aZPRb0u5KYLAUGJrPEtvHnx7fwZjaTFul/m9QDbDsWlcxmxlYVX5dAzrM4Edp2m
         PrvOiErm+Hh27Y/P/TZBtj527cGTXIbG+lq4nXVlsQU6HrD/DETwdWITLQ1wUC2szVZh
         5KA4lfjpRrKuN+40a0Y+hi+O3ptWnkhnMS8S2VmHO63bZYMcLLNa9j+mZUaHqvuPgS/q
         RnpfQIpzvK+iIsDQaltI9ip6AAhfP7SMa0sFCkBLY+LqGRBK7jqbkbCzCJz8zYSCyM7V
         bTxQ==
X-Gm-Message-State: AOJu0YxkCgBkyc3lXBb/5UjXE/D06Yr/SII6nY9nZsz+gQmWAIDVtAdm
	p49xaukRrSlTsm3DZR2PHiWDH9xKy49YJYqt8zHKsPNTZBjSCtVkgTkznhHQ8gkXC5nQ4XtpDqZ
	l
X-Google-Smtp-Source: AGHT+IFYCiJbEL/d67ECmyal5RqaBxk7eAqjmISW2oKfrekMRSrrUF/GI3CDJgtpBs1SzNPvU+rF9Q==
X-Received: by 2002:a05:6402:d05:b0:5c9:5745:de9a with SMTP id 4fb4d7f45d1cf-5ceb926152emr19520279a12.9.1730982082892;
        Thu, 07 Nov 2024 04:21: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 3/3] x86/ucode: Remove the collect_cpu_info() call from parse_blob()
Date: Thu,  7 Nov 2024 12:21:17 +0000
Message-Id: <20241107122117.4073266-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
References: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the tangle of logic starting to come under control, it is now plain to
see that parse_blob()'s side effect of re-gathering the signature/revision is
pointless.

The cpu_request_microcode() hooks need the signature only.  The BSP gathers
this in early_microcode_init(), the APs and S3 in microcode_update_cpu().  For
good measure, the apply_microcode() hooks also keep the revision correct as
load attempts are made.

This finally gets us down to a single call per CPU on boot / S3 resume, and no
calls during late-load hypercalls.

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>

Slightly RFC.

Just before posting, I've realised that cpu_request_microcode() does actually
use the current CPU revision, and it's buggy, and it's the cause of `xen-ucode
--force` not working as expected.

I'm tempted to do another series cleaning that up in isolation, such that this
patch becomes true in this form.

---
 xen/arch/x86/cpu/microcode/core.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index fd4b08b45388..5897ec54032a 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -189,8 +189,6 @@ static struct patch_with_flags nmi_patch =
  */
 static struct microcode_patch *parse_blob(const char *buf, size_t len)
 {
-    alternative_vcall(ucode_ops.collect_cpu_info);
-
     return alternative_call(ucode_ops.cpu_request_microcode, buf, len, true);
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 12:21:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 12:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831767.1247148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t91Vw-0003ll-0G; Thu, 07 Nov 2024 12:21:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831767.1247148; Thu, 07 Nov 2024 12:21: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 1t91Vv-0003lK-QC; Thu, 07 Nov 2024 12:21:27 +0000
Received: by outflank-mailman (input) for mailman id 831767;
 Thu, 07 Nov 2024 12:21: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t91Vu-0003Uj-Im
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 12:21:26 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc3f5e0b-9d02-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 13:21:21 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2fb56cb61baso6771021fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 04:21:21 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5c91esm727688a12.4.2024.11.07.04.21.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 04:21: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: cc3f5e0b-9d02-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzMiLCJoZWxvIjoibWFpbC1sajEteDIzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNjM2Y1ZTBiLTlkMDItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTgyMDgxLjUxMzQxNiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730982080; x=1731586880; 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=C6icg0MDABYZdPdC+khSj3SMrU2+HHDUysXP9VMvz7c=;
        b=B1tnZwxwSkrVNBXZ0/QT9vsav5YiFQynpJbZ+ce1jCAXIX5Mw0T7kLIYwNxz2hCk05
         QHEKhhSCzuVs1MHGaJ0JPGoyNeZidRNn85u+tVVEvaonFJziN39d4tCxUt/kXiXMf5Q4
         YaViCSkxYccDaWqYqcEhudorQNE56sOfS+HIw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730982080; x=1731586880;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=C6icg0MDABYZdPdC+khSj3SMrU2+HHDUysXP9VMvz7c=;
        b=ka5uWmZQ9YiAcTKdpIu37npdfIXHzyFyrLXwymMngbTUULRtWEbSOFCoTHCsYqXNQ+
         aiZSyBRxNj7cnMhB7z3/pu7Ngf4LwrT93CXrkY96Asyt4Qy7ZkOzvqwN7LgZMnhUfgMC
         iYIZI1c9G5awqVLvzOl/0zHM8XvF+o234tXVfU4CONzRW+IvjvNFeZkX+j0OhEakLESX
         3NPDAZoObxkVM83mGs0h3gvcyvBnQAtAyEgQpJr2AL0q9NpbKqIIi9QYbdZ1CpKi3x5l
         rhcK6y+cqo2CbxQL4iRmAEYNw8greLByztvRIe2jvJLeuTKSQtzuVS08jiTmeGF5MSD1
         hyUA==
X-Gm-Message-State: AOJu0YxN8xZr4wpwGSKIhMSc7Th68IrS+v+BRIgvyJBV1WB/Rl281vrn
	B1JGcd2Y/NkRTTdZPbtjTvcjKy+zjcXpkErGQ5Hckbg5vQkm7AS95eQ4f4NQ8sXYzXQYz3IIFqz
	t
X-Google-Smtp-Source: AGHT+IHEOuxakUltTPR5M8DyWdGV5G+DRIwkS6sk9SZ7dvFKfp1UcxaXz7POtUpsjbZl7VacB+ixAA==
X-Received: by 2002:a05:651c:1515:b0:2fb:5035:a03 with SMTP id 38308e7fff4ca-2ff1a8ff558mr9122361fa.14.1730982080140;
        Thu, 07 Nov 2024 04:21:20 -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/ucode: Simplify/fix loading paths further
Date: Thu,  7 Nov 2024 12:21:14 +0000
Message-Id: <20241107122117.4073266-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

collect_cpu_info() is fairly expensive and called excessively.  Rationalise
this substantially.

Except I found yet another bug when testing this.  Notes in patch 3.

Andrew Cooper (3):
  x86/ucode: Don't use microcode_update_cpu() in early_microcode_load()
  x86/ucode: Fold microcode_update_cpu() and fix error handling
  x86/ucode: Remove the collect_cpu_info() call from parse_blob()

 xen/arch/x86/cpu/microcode/core.c | 53 +++++++++----------------------
 1 file changed, 15 insertions(+), 38 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 12:21:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 12:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831768.1247155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t91Vw-0003sB-CB; Thu, 07 Nov 2024 12:21:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831768.1247155; Thu, 07 Nov 2024 12:21: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 1t91Vw-0003qf-3o; Thu, 07 Nov 2024 12:21:28 +0000
Received: by outflank-mailman (input) for mailman id 831768;
 Thu, 07 Nov 2024 12:21: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t91Vv-0003Uj-8q
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 12:21:27 +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 cd731a90-9d02-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 13:21:23 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5ceccffadfdso1144762a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 04:21:23 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5c91esm727688a12.4.2024.11.07.04.21.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 04:21: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: cd731a90-9d02-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNkNzMxYTkwLTlkMDItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTgyMDgzLjU4MjU3NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730982082; x=1731586882; 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=VVZQOpTTpM2S/e3rLNR3YwvXv7wCxv2Z+w11Kz7Jc/g=;
        b=qolGz+oYeKF3B686Z2usJizG+p3SXjQ71i8I4nNSUiXWJwXJ6Ssx18Fw8xhtfolLgJ
         po4n1hzwotK1YZPlbsAKoF/zmWgWNhIUhIXEQGcMYtTuCIYExisNPmq9hyFR3agWyQuZ
         KPkGlxel/x264BqDTUii+1Fm3QpVbJfvIjDQc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730982082; x=1731586882;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=VVZQOpTTpM2S/e3rLNR3YwvXv7wCxv2Z+w11Kz7Jc/g=;
        b=FCHSz5lITD/FPObe2PqRxIKxqPlvrykEQ6+sKMKjNO4Qzen0v6DdKhXz6wH/LFFmHh
         kPTbDDo/k13irK8ayP2VNzgb64NAcMSp9pa58eKuzz4dL4aAXmhGR89ccj+d91bcyjQ6
         +3N4peuFeBWsZBw9kXjamOWUMrnhP2ZdTV/WoEwO6vqPeUW5TuYPKxUe7rTFiyhlPlUN
         7mqzJHtlgqfj9Y/+YqUa6gdocBMr0lQ6z8FRlHKhP2U6nxqoRbPCd+qGZvxX1a5bCue3
         hiBsou28H5Zn+CZP3zdoX9EoaIrn9Q7DC2LtZWfIduiPa/bJBq7UuQb5ywu2tqMfxRO6
         A0Pw==
X-Gm-Message-State: AOJu0Yxv0NfWqd7+O3DLLuEV2O0JVX/zm+jLX2g6/nf34l/kNkKaE30m
	/vv7ndbeDqSrZsE3fDErwXYhKDxoFEEoWY87cPgHiTWxUYfVcJe2BKk6X6IKhim7evAe0tCAF0H
	A
X-Google-Smtp-Source: AGHT+IGWMic17q7tsN1mJCztBO+K8U9AP6DY+ZFvHixitFldko5Xa+0H3e44iwcr5m94BjL2g1uPeA==
X-Received: by 2002:a05:6402:5242:b0:5ce:f7c2:65fe with SMTP id 4fb4d7f45d1cf-5cf05a5976emr1020450a12.28.1730982082259;
        Thu, 07 Nov 2024 04:21: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 2/3] x86/ucode: Fold microcode_update_cpu() and fix error handling
Date: Thu,  7 Nov 2024 12:21:16 +0000
Message-Id: <20241107122117.4073266-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
References: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fold microcode_update_cpu() into its single remaining caller and simplify the
logic by removing the patch != NULL path with microcode_mutex held.

Explain why we bother grabbing the microcode revision even if we can't load
microcode.

Furthermore, delete the -EIO path.  An error updating microcode on AP boot or
S3 resume is certainly bad, but freeing the cache is about the worst possible
action we can take in response; it prevents subsequent APs from taking an
update they might have accepted.

This avoids a double collect_cpu_info() call on each AP.

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/microcode/core.c | 49 +++++++++----------------------
 1 file changed, 14 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index d9406ec3fd34..fd4b08b45388 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -263,40 +263,6 @@ static bool cf_check wait_cpu_callout(unsigned int nr)
     return atomic_read(&cpu_out) >= nr;
 }
 
-/*
- * Load a microcode update to current CPU.
- *
- * If no patch is provided, the cached patch will be loaded. Microcode update
- * during APs bringup and CPU resuming falls into this case.
- */
-static int microcode_update_cpu(const struct microcode_patch *patch,
-                                unsigned int flags)
-{
-    int err;
-
-    alternative_vcall(ucode_ops.collect_cpu_info);
-
-    spin_lock(&microcode_mutex);
-    if ( patch )
-        err = alternative_call(ucode_ops.apply_microcode, patch, flags);
-    else if ( microcode_cache )
-    {
-        err = alternative_call(ucode_ops.apply_microcode, microcode_cache,
-                               flags);
-        if ( err == -EIO )
-        {
-            microcode_free_patch(microcode_cache);
-            microcode_cache = NULL;
-        }
-    }
-    else
-        /* No patch to update */
-        err = -ENOENT;
-    spin_unlock(&microcode_mutex);
-
-    return err;
-}
-
 static bool wait_for_state(typeof(loading_state) state)
 {
     typeof(loading_state) cur_state;
@@ -702,13 +668,26 @@ int microcode_update(XEN_GUEST_HANDLE(const_void) buf,
 /* Load a cached update to current cpu */
 int microcode_update_one(void)
 {
+    int rc;
+
+    /*
+     * This path is used for APs and S3 resume.  Read the microcode revision
+     * if possible, even if we can't load microcode.
+     */
     if ( ucode_ops.collect_cpu_info )
         alternative_vcall(ucode_ops.collect_cpu_info);
 
     if ( !ucode_ops.apply_microcode )
         return -EOPNOTSUPP;
 
-    return microcode_update_cpu(NULL, 0);
+    spin_lock(&microcode_mutex);
+    if ( microcode_cache )
+        rc = alternative_call(ucode_ops.apply_microcode, microcode_cache, 0);
+    else
+        rc = -ENOENT;
+    spin_unlock(&microcode_mutex);
+
+    return rc;
 }
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 12:33:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 12:33:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831797.1247173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t91gy-0007FV-Dz; Thu, 07 Nov 2024 12:32:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831797.1247173; Thu, 07 Nov 2024 12: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 1t91gy-0007FO-Ax; Thu, 07 Nov 2024 12:32:52 +0000
Received: by outflank-mailman (input) for mailman id 831797;
 Thu, 07 Nov 2024 12:32: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=wb0k=SC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t91gx-0007FI-9e
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 12:32:51 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 657862e8-9d04-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 13:32:48 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-53a0c160b94so891752e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 04:32:48 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d826a9d0asm196583e87.183.2024.11.07.04.32.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 04:32: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: 657862e8-9d04-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1sZjEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY1Nzg2MmU4LTlkMDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTgyNzY4LjAyOTE5Mywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730982767; x=1731587567; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=KYSWrXMMRsd/cPCSRctkM5Gp0AVwIIS9n7AJfVx9F3s=;
        b=IOrbweNGuh5C1EDSGyUUyaC652pB55mvT770iGkFY8mHSRO/fkkvI8YPN2hzawmEOf
         XoPDgjsMqiG6MDuCOij/d6BvM/uho0+9uL0PVKP1o6H3Hn7z3dPJ4iB6YvRiSQQtakFa
         Mtg7Jvo5wNdfAVyafFZ7ZBuT+Wa1FBnh37/YY0KI9HL1Fv0uXISG1xHE1Rr+TqYXikac
         L4VLqye/NCiM4BO1se+T9tlvDM2EdfswBm/1HjgbJ7LSZyb4mNmLpp23rKlzdDg7353y
         mjEOEkySfadgR5i2rqkEGcW7wOkfZVS0YjrhPyxzVGjxETG1JprlIzncxPhr+rc/1oHc
         jwRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730982767; x=1731587567;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KYSWrXMMRsd/cPCSRctkM5Gp0AVwIIS9n7AJfVx9F3s=;
        b=E6tH43v/Npn3J0Ap5QQCCgKQcUszE2RXRBq17nkx600rouJjVxD5n3dm9CU+tVjRF0
         9IGBDJhYtsLuL4r2YoAevDpcwWuJNSGlgbs4UyzG5hZ21AfDWRxvkucP8/LNapXxEOo+
         5ZMRYRPzwCoN0/Mhkp5YLrIxCtJIXXhxfwJKbo6O+XkOnJ87RKOUFK4nObCVgJ1r/gLR
         s9C+rXLzR8Mf5baiuqDn33/zuFh99n87vOFK81Nm1+QtGxT1x9yI+7QK4F/hQoDUmrbw
         SPrj/Vm7skYgf0RB1/dICoMEptkVefbajZr2L2T90MnLFEhvnyTuwmhvvaFsuZJyAm25
         9xhQ==
X-Forwarded-Encrypted: i=1; AJvYcCVmHFA8gN3PhFo4KX/Js08vRmlQMPQ8VWcxurtvopl3Jg03fsVV78v3hm084vaRzNYw1eZAosOZX/Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxhvm78dzyncKF2DMnHjGrfxCxcgkWXdzpN67B2EbTpUp7DWeni
	ihEyysXs9u5Shw+EO5xXnSZYiHbMe0TKkp/Qp/ZbUUBU3JdWqTpl
X-Google-Smtp-Source: AGHT+IGCjq8xToywcD3TK3Ki2J54eeA0IPvlk1IgDQuaGV16P0FTN/gPL4FTDg9VRK1ys9WzCTjxmw==
X-Received: by 2002:a05:6512:3d05:b0:536:55cf:3148 with SMTP id 2adb3069b0e04-53d65df8d2bmr11944597e87.31.1730982765863;
        Thu, 07 Nov 2024 04:32:45 -0800 (PST)
Message-ID: <779e315475c8fcbe6226767f96f67c88a0ad4eb7.camel@gmail.com>
Subject: Re: [PATCH v3 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 07 Nov 2024 13:32:44 +0100
In-Reply-To: <15f8c4d9-bd90-4b1e-9cea-53e62d601a58@suse.com>
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
	 <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.git.oleksii.kurochko@gmail.com>
	 <9e22b5ad-634f-48b7-b64c-fc44319a1d4d@suse.com>
	 <8380261d24388e453e74514dad8216c97e3bebee.camel@gmail.com>
	 <15f8c4d9-bd90-4b1e-9cea-53e62d601a58@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Thu, 2024-11-07 at 10:19 +0100, Jan Beulich wrote:
> On 06.11.2024 13:44, oleksii.kurochko@gmail.com=C2=A0wrote:
> > On Tue, 2024-11-05 at 16:20 +0100, Jan Beulich wrote:
> > > On 01.11.2024 14:16, Oleksii Kurochko wrote:> @@ -423,3 +429,138
> > > @@
> > > void * __init early_fdt_map(paddr_t fdt_paddr)
> > > > =C2=A0
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 return fdt_virt;
> > > > =C2=A0}
> > > > +
> > > > +vaddr_t __ro_after_init directmap_virt_start =3D
> > > > DIRECTMAP_VIRT_START;
> > > > +
> > > > +#ifndef CONFIG_RISCV_32
> > > > +
> > > > +/* Map a frame table to cover physical addresses ps through pe
> > > > */
> > > > +static void __init setup_frametable_mappings(paddr_t ps,
> > > > paddr_t
> > > > pe)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
> > > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE)=
;
> > > > +=C2=A0=C2=A0=C2=A0 unsigned long nr_mfns =3D PFN_DOWN(aligned_pe -=
 aligned_ps);
> > > > +=C2=A0=C2=A0=C2=A0 unsigned long frametable_size =3D nr_mfns *
> > > > sizeof(*frame_table);
> > > > +=C2=A0=C2=A0=C2=A0 mfn_t base_mfn;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 if ( frametable_size > FRAMETABLE_SIZE )
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("The frametable c=
annot cover [%#"PRIpaddr",
> > > > %#"PRIpaddr")\n",
> > > > +=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 ps, pe);
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 /*
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * align base_mfn and frametable_size to M=
B(2) to have
> > > > superpage mapping
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * in map_pages_to_xen()
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > > > +=C2=A0=C2=A0=C2=A0 frametable_size =3D ROUNDUP(frametable_size, MB=
(2));
> > > > +=C2=A0=C2=A0=C2=A0 base_mfn =3D alloc_boot_pages(frametable_size >=
> PAGE_SHIFT,
> > > > PFN_DOWN(MB(2)));
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(FRAMETABLE_VIRT_START, ba=
se_mfn,
> > > > +=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 PFN_DOWN(frametable_size),
> > > > +=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 PAGE_HYPERVISOR_RW) )
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("frametable mappi=
ngs failed: %#lx -> %#lx\n",
> > > > +=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 FRAMETABLE_VIRT_START, mfn_x(base_mfn));
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 memset(&frame_table[0], -1, frametable_size);
> > > > +=C2=A0=C2=A0=C2=A0 memset(&frame_table[PFN_DOWN(aligned_ps)],
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0, nr=
_mfns * sizeof(*frame_table));
> > >=20
> > > Interesting - now you write out a huge amount of -1s, just to
> > > then
> > > overwrite
> > > most of them with zeroes. I'm not going to insist that you change
> > > this yet
> > > another time, but the performance hit from this is going to bite
> > > you/us as
> > > soon as Xen is run on bigger-memory systems.
> > I agree that validating or invalidating frames in a single pass
> > would
> > be preferable to nearly two passes. I=E2=80=99m considering whether the=
re=E2=80=99s
> > a
> > way to ensure that frame_table is set to -1 at compile time.
>=20
> How would that work, if the entire frame table is allocated
> dynamically?
Yeah, there is no way to work in dynamically allocated way. Then let's
stick to ...
>=20
> > It seems
> > the best approach (and only one?) might be to initialize
> > frame_table in
> > one pass as follows:
> > 1) [0, aligned_ps) =3D -1
> > 2) [aligned_ps, nr_mfns * sizeof(*frame_table)) =3D 0
> > 3) [nr_mfns * sizeof(*frame_table), frame_table_size) =3D -1
> > Does this approach seem optimal?
>=20
...
> That's what I would have expected, yes.

>=20
> > > Plus, unless I'm mistaken, the function continues to rely on ps
> > > =3D=3D 0
> > > as
> > > input. Just that the dependency is now better hidden.
> > > Specifically if
> > > you
> > > calculate nr_mfns from the difference, and then use that for
> > > allocation,
> > > then you need to offset the start of the mapping you create
> > > accordingly.
> > I'm not quite understanding why the method of calculating nr_mfns
> > affects how the frame_table is mapped. Isn=E2=80=99t it only necessary =
to
> > calculate the correct size of the frame_table that needs to be
> > allocated?
>=20
> Assume there's 4G of memory actually starting at 16G. Afaict you'll
> allocate a frame table for those 4G, but you'll map it right at
> FRAMETABLE_VIRT_START. Hence it'll cover the first 4G of physical
> addresses, but _none_ of the actual memory you've got.
I need to clarify some basics about the frame table.

Does Xen expect that frame_table[0] =3D 0 (PA), frame_table[1] =3D 4k (PA),
..., frame_table[x] =3D RAM_START_PA, frame_table[x+1] =3D RAM_START_PA +
4k, and so on?

My understanding is that it could be done as follows: frame_table[0] =3D
RAM_START_PA, frame_table[1] =3D RAM_START_PA + 4k, and so on, taking
into account mfn_to_page() and page_to_mfn() logic. (And yes, in that
case, the current implementations of mfn_to_page() and page_to_mfn()
aren't correct and should be updated as suggested here:
https://lore.kernel.org/xen-devel/cover.1730465154.git.oleksii.kurochko@gma=
il.com/T/#me2fc410f3d4758b71a9974d0be18a36f50d683b1as
as these implementations are based on that ps =3D=3D 0). With this setup,
mapping FRAMETABLE_VIRT_START to base_mfn should be correct, shouldn=E2=80=
=99t
it?

With the current implementations of mfn_to_page() and page_to_mfn(), we
either need to allocate a larger frame_table to cover the [0, ram_end)
range (in which case mapping FRAMETABLE_VIRT_START to base_mfn would
work), or change the mapping to frame_table=3D( FRAMETABLE_VIRT_START +
PFN_DOWN(ram_start) ) -> base_mfn. Or to not loose virtual addrees
space of FRAMETABLE ( so the mapping will still be
FRAMETABLE_VIRT_START -> base_mfn ) to do the similar to directmap
mapping ( or what the changes suggested in the link above). Is my
understanding correct?

>=20
> > > =C2=A0At
> > > which point you may need to apply extra care to cover the case
> > > where
> > > sizeof(*frame_table) is not a power of two, and hence e.g. the
> > > first
> > > valid
> > > page might have a struct instance straddling a page boundary.
> > The first valid page is aligned_ps ( which is aligned on a page
> > boundary ) so assuming that sizeof(*frame_table) < PAGE_SIZE we
> > can't
> > straddle a page boundary, can we?
>=20
> But sizeof(*frame_table) < PAGE_SIZE means nothing as to the
> alignment
> of an individual struct instance in memory. Iirc sizeof(*frame_table)
> is 48 for RISC-V, so the common alignment across struct instances
> isn't
> going to be better than 8, and there _will_ be instances straddling
> page boundaries.
If we speak about the alignment of an individual struct instance in
memory, what is the issue with that, except that it could be less
efficient when accessing this memory? This inefficiency could
potentially be addressed by adding some padding to the struct page_info
but then we will have bigger frame table size.
Another issue I can see is that the size of the frame table could be
calculated incorrectly. It may require an additional page to cover the
case when the frame table size isn't aligned to PAGE_SIZE, but this is
accounted for by rounding up the frame table size to 2MB
(frametable_size =3D ROUNDUP(frametable_size, MB(2));) before allocating
the frame table (base_mfn =3D alloc_boot_pages(frametable_size >>
PAGE_SHIFT, PFN_DOWN(MB(2)));).

Something else should be considered?

>=20
> > > > +=C2=A0=C2=A0=C2=A0 /*
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * The base address may not be aligned to =
the second level
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * size in case of Sv39 (e.g. 1GB when usi=
ng 4KB pages).
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * This would prevent superpage mappings f=
or all the
> > > > regions
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * because the virtual address and machine=
 address should
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * both be suitably aligned.
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * Prevent that by offsetting the start of=
 the directmap
> > > > virtual
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 * address.
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > > > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(DIRECTMAP_VIRT_START + (b=
ase_addr &
> > > > ~high_bits_mask),
> > >=20
> > > I'm afraid this is correct only for the first invocation of the
> > > function.
> > > For any further invocation you'd likely (attempt to) replace
> > > previously
> > > established mappings. I think that here you need to use
> > > directmap_virt_start
> > > instead.
> > Banks are sorted by bank start address ( common/device-
> > tree/bootfdt.c:623 ):
> > =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 * On Arm64 setup_directmap_m=
appings() expects to be called
> > with
> > =C2=A0=C2=A0 the lowest
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * bank in memory first. Ther=
e is no requirement that the DT
> > will
> > =C2=A0=C2=A0 provide
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * the banks sorted in ascend=
ing order. So sort them
> > through.
> > =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 sort(mem->bank, mem->nr_banks, siz=
eof(struct membank),
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cmp_=
memory_node, swap_memory_node);
> > ( btw, comment is needed to be updated ... )
> >=20
> > Thereby no replacement should happen if I don't miss something.
>=20
> I don't see how banks being sorted matters here. On the 2nd
> invocation
> you'll start mapping pages again from DIRECTMAP_VIRT_START plus an at
> most 1G (for SV39) offset. If both banks have 2G, the resulting
> mappings
> will necessarily overlap, if I'm not mistaken.
Yes, you are write, overlapping is really possible.

Then __mfn_to_virt(base_mfn) to calculate VA of a bank start should be
used:
   @@ -473,24 +483,24 @@ static void __init
   setup_directmap_mappings(unsigned long base_mfn,
        {
            directmap_mfn_start =3D _mfn(base_mfn);
   =20
   -        directmap_virt_start -=3D (base_addr & high_bits_mask);
   +       /*
   +        * The base address may not be aligned to the second level
   +        * size in case of Sv39 (e.g. 1GB when using 4KB pages).
   +        * This would prevent superpage mappings for all the regions
   +        * because the virtual address and machine address should
   +        * both be suitably aligned.
   +        *
   +        * Prevent that by offsetting the start of the directmap
   virtual
   +        * address.
   +        */
   +        directmap_virt_start -=3D (base_addr & high_bits_mask) +
   (base_addr & ~high_bits_mask);
        }
   =20
        if ( base_mfn < mfn_x(directmap_mfn_start) )
            panic("cannot add directmap mapping at %#lx below heap
   start %#lx\n",
                  base_mfn, mfn_x(directmap_mfn_start));
   =20
   -    /*
   -     * The base address may not be aligned to the second level
   -     * size in case of Sv39 (e.g. 1GB when using 4KB pages).
   -     * This would prevent superpage mappings for all the regions
   -     * because the virtual address and machine address should
   -     * both be suitably aligned.
   -     *
   -     * Prevent that by offsetting the start of the directmap
   virtual
   -     * address.
   -     */
   -    if ( map_pages_to_xen(DIRECTMAP_VIRT_START + (base_addr &
   ~high_bits_mask),
   +    if ( map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn),
                              _mfn(base_mfn), nr_mfns,
                              PAGE_HYPERVISOR_RW) )

Thanks!

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 13:25:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 13:25:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831813.1247194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t92Vo-0006K6-9K; Thu, 07 Nov 2024 13:25:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831813.1247194; Thu, 07 Nov 2024 13:25: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 1t92Vo-0006Jz-6d; Thu, 07 Nov 2024 13:25:24 +0000
Received: by outflank-mailman (input) for mailman id 831813;
 Thu, 07 Nov 2024 13: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t92Vm-0006Jr-7R
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 13:25:22 +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 bb299c4e-9d0b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 14:25:18 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-431695fa98bso7482955e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 05:25: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-381ed970d4fsm1772255f8f.5.2024.11.07.05.25.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 05:25: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: bb299c4e-9d0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJiMjk5YzRlLTlkMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTg1OTE4LjQxOTM4NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730985918; x=1731590718; 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=rmOpsxmaw+yexmtAZ6yYDZzEdgsmWXdBhsdga8bmoRU=;
        b=SP93hAdTkYS9Z9MNujBo4g47OGa3MI0Lp8uWF1pLcvykXJBohhRoeXH6dAA+NXC5Yw
         KyTUdPxEynKX9Sqgq8w/Urb3FLuGItl+0RV5BZoP2vEhUYfysWMPlRMN2b3DI2UVtbKJ
         yUB+QMuQTSP+NYkzt8ShWBAh9XefGpsBV9GPgpFnCxWd+9fBdyJ9IrQcl2Y7O5GdBldS
         TEDVmCvRnTbiY2wNF1j7Uo8WRUnYsjhzoZ8ktQJJQ923HG7CO4CV/Y+hxlrnj8jynWL3
         s4IvU4vUGmujypTAXwh9MDBjp0lNipYvE2yrMZDZa8mscul9LRNo6b74jmQpoEWSg1Ux
         W9OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730985918; x=1731590718;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rmOpsxmaw+yexmtAZ6yYDZzEdgsmWXdBhsdga8bmoRU=;
        b=wnSnSBQcduwbKvqOFovPGQjlwcixUuZQ0vJBzImzlFX87mkGpRDqc9yjEfYK04RCwJ
         UOJodCTR4NIRy/Q5zuE3trS3yiuzZv+G11sbNoV+Y3KAL7kS1sTjYhQjGGkkX+jlzJVv
         PQalToBjjz0YuP7/OhVFreFzN+nBapAJdfx9VzeqdusukzOD8W1V7r0Yjtf3V19vWbiQ
         k3xM4vzoPouVfgsbn2iNzBaBp7/sEIZl/dQanYFJnbCPHHOP45+5wSBrxxCsvE8nZLyl
         d896AjzZvuQAXtrH+fH0/JUt1ERtzj30dkRMCMX6hHBHn/Jzss4A3HdEO6jOIqEPz3EB
         /vSg==
X-Gm-Message-State: AOJu0YxHVqZ3uKAoabu6c9CI5lUisRpPmPUXj5Glbes/RC5QGqI5g5pz
	64/WlZNL+ygximKgIcnL2vINMrZVN65gYN4aPImjVMlkiwCbMkDqM/KWS+8efA==
X-Google-Smtp-Source: AGHT+IEDLGlq7p+T8eIon8wikcW7xfGiAXP+9n1PzYIhxyDvC2yQnvy4sp+RowzPadDYkbGNq0xerw==
X-Received: by 2002:a05:600c:1d1d:b0:42f:4f6:f8f3 with SMTP id 5b1f17b1804b1-4319ac6fbf7mr387567455e9.7.1730985917796;
        Thu, 07 Nov 2024 05:25:17 -0800 (PST)
Message-ID: <c5c95c48-94ad-47bd-9fe8-74cc048d3312@suse.com>
Date: Thu, 7 Nov 2024 14:25:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/Kconfig: livepatch-build-tools requires debug
 information
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241107084927.37748-1-roger.pau@citrix.com>
 <66fd7b53-25f5-459b-8563-e33fccba90ef@citrix.com> <ZyyLAj6MZ3fvOFBC@macbook>
 <22c59035-67e3-4e43-bfe0-26675a93e9ae@suse.com>
 <e81ae2da-383f-4cc7-8213-66f8ccc9b6e7@citrix.com>
 <b1ef3ffa-2021-45df-af46-098eb4cb3a46@suse.com>
 <ce901e5e-2872-48c0-b3a0-52478d642706@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: <ce901e5e-2872-48c0-b3a0-52478d642706@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 13:17, Andrew Cooper wrote:
> On 07/11/2024 11:57 am, Jan Beulich wrote:
>> On 07.11.2024 12:30, Andrew Cooper wrote:
>>> On 07/11/2024 9:48 am, Jan Beulich wrote:
>>>> On 07.11.2024 10:40, Roger Pau MonnÃ© wrote:
>>>>> On Thu, Nov 07, 2024 at 09:21:26AM +0000, Andrew Cooper wrote:
>>>>>> On 07/11/2024 8:49 am, Roger Pau Monne wrote:
>>>>>>> The tools infrastructure used to build livepatches for Xen
>>>>>>> (livepatch-build-tools) consumes some DWARF debug information present in
>>>>>>> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
>>>>>>> -wi).
>>>>>>>
>>>>>>> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
>>>>>>> on release builds, thus providing a default Kconfig selection that's not
>>>>>>> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
>>>>>>> because it's missing the DWARF debug section.
>>>>>>>
>>>>>>> Fix by forcing the selection of DEBUG_INFO from LIVEPATCH.
>>>>>>>
>>>>>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>>> Oops, yes.
>>>>>>
>>>>>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>>
>>>>>> Fixes tag ?
>>>>> Was borderline on adding one, but wasn't sure since it's strictly
>>>>> livepatch-build-tools that requires the DWARF data, but custom made
>>>>> livepatches (like the examples in tests) do not require such
>>>>> information.
>>> Ok.Â  I guess it doesn't matter too much.
>>>
>>>> At which point: Is "select" really appropriate then? Wouldn't it be more
>>>> logical then to change DEBUG_INFO's default to take LIVEPATCH into account
>>>> (still permitting people to turn debug info off if they know they won't
>>>> need it)?
>>> I am very disinterested in letting people who think they can do
>>> livepatching without debug symbols shoot themselves in the foot like that.
>>>
>>> It's only debugging symbols.Â Â  If people *really* think they know
>>> better, they can strip them themselves.
>> Besides my abstract concern, let me also add a concrete practical one. I'm
>> sure you've noticed that xen.efi is _much_ slower to link with debug info
>> than without, or than xen-syms. That's a consequence of how GNU ld (really:
>> libbfd) works internally. By not allowing DEBUG_INFO to stay off you're
>> forcing me to either wait longer for every single one of my post-commit
>> pre-push build tests, or to turn off LIVEPATCH there. The latter not really
>> being a good idea.
>>
>> Nevertheless, as said in reply to Roger: Go ahead if you absolutely think
>> that's the only sensible way.
> 
> I had noticed that link was taking a long time.Â  I hadn't realised it
> was this specifically.
> 
> But to put this another way, you're arguing to intentionally avoid
> fixing a sharp corner, because there's a perf issue in Binutils.

I understand there is a sharp corner, yet recall I had suggested an
alternative. People changing defaults are responsible for what they're
doing, after all.

> I will note that it was you who forced the generation of xen.efi on
> everyone, even those who didn't want it, without any knob to turn it off.

True, but if there's desire to turn it off, a knob can always be added.
EFI support pre-dates the introduction of Kconfig by several years, iirc.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 13:25:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 13:25:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831814.1247204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t92Vr-0006YJ-Fn; Thu, 07 Nov 2024 13:25:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831814.1247204; Thu, 07 Nov 2024 13:25: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 1t92Vr-0006YC-Cz; Thu, 07 Nov 2024 13:25:27 +0000
Received: by outflank-mailman (input) for mailman id 831814;
 Thu, 07 Nov 2024 13:25: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=tRHX=SC=gmail.com=gragst.linux@srs-se1.protection.inumbo.net>)
 id 1t92Vq-0006Jr-Ri
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 13:25:26 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be6d0503-9d0b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 14:25:23 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-539f6e1f756so975874e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 05:25:23 -0800 (PST)
Received: from epuakyiw0a98.kyiv.epam.com (ll-22.209.223.85.sovam.net.ua.
 [85.223.209.22]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d826af003sm214286e87.265.2024.11.07.05.25.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 05:25: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: be6d0503-9d0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzIiLCJoZWxvIjoibWFpbC1sZjEteDEzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJlNmQwNTAzLTlkMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTg1OTIzLjc5ODI4Mywic2VuZGVyIjoiZ3JhZ3N0LmxpbnV4QGdtYWlsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730985923; x=1731590723; 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=bpKqtiiah/MyPzTQHICukxAGpceAk/bMRNOsccrstIk=;
        b=Ck6rGt5hjBYKuDZcW8jySoolSPFzJX+hmjoAW9TPyPh5CgegNG+5t5wEsuhozJRxsT
         BxyPH1fo5ubyLIbsHoeX2yFHns8htgXr5EbJOop3F00ZIdSrDqxSqj6ehVYRiLrbYYTM
         aeTYQr0pPmuw4yEkkqul1E+R6DOP0Ci3yaA99Ygd4aHd1tCoejt3hTvVzyXW5+3/GzAt
         IHHhIxU0ILP9ghl9hTTBbx7GeRtliOjyUfxyrqZAqhQFSHJLsPZitxEvRMbJ+QO1EYmX
         IAJzge/npxpXVRJNcLyNDQt7d+al0HREJaLwRxXqMGtl1ICg4uGGRWoooIjrQFWj28/y
         IE3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730985923; x=1731590723;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=bpKqtiiah/MyPzTQHICukxAGpceAk/bMRNOsccrstIk=;
        b=TK1Is6sKvgYlajvTVmFhpupORRdWX3qD45Tg+p5BJ4kE6DyfdUndUUpFmeSb+cBMAl
         m2abEQNVh2DdRgGCQU0RnuqrmzdMkunEe7Vi6BKCFpMQH4rtZ6qRFhNt9zx3IiS/T2sU
         8NmAuf6ZwK5OqHvEGvFHPcE4EQtoSRrZaBA+R/T7ZEkQT39aymTSCu3As+TEHLIdkwVb
         v3LWEm9YdKXVvm/JX7WmbJIG0fWA66SE/yFVQbjWuRasEFJhCsGniwrKh+dRIHwAc1Ju
         tVXDiwMJ6ibAKZDk/iD4Zrx+1TKNd0Wr5iXNrg06JF7ZImA2rzecinZr2v9au23MyU6J
         Vw1g==
X-Gm-Message-State: AOJu0Yzqza4g1oyKLFbXcjNbqW/7J6DROrDXOBQpoPMdYkZnXwNjFQRv
	4l6/hqZvedJzsow4nWUlp3rNrFFNAhItFWP8hpXEO32xODLQ/YCYqYz74Ha8
X-Google-Smtp-Source: AGHT+IFWhmelZY20geYJLdWJ1tRmBFGsoNiLCmj2ZIb8PPqeoNJJsJzX90s+FodxvE+6DeAjEFC2IQ==
X-Received: by 2002:a05:6512:ad6:b0:539:fb6f:cb8d with SMTP id 2adb3069b0e04-53b348e1452mr23410418e87.27.1730985922468;
        Thu, 07 Nov 2024 05:25:22 -0800 (PST)
From: gragst.linux@gmail.com
X-Google-Original-From: grygorii_strashko@epam.com
To: xen-devel@lists.xenproject.org
Cc: Grygorii Strashko <grygorii_strashko@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Mykyta Poturai <Mykyta_Poturai@epam.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH] iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H) support
Date: Thu,  7 Nov 2024 15:25:01 +0200
Message-Id: <20241107132501.724836-1-grygorii_strashko@epam.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Add Renesas R8A779G0 (R-Car V4H) IPMMU support.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index da011413c5c0..d828d9cf6afd 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -788,6 +788,7 @@ static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
 #define RCAR_PRODUCT_M3W     0x00005200
 #define RCAR_PRODUCT_M3N     0x00005500
 #define RCAR_PRODUCT_S4      0x00005A00
+#define RCAR_PRODUCT_V4H     0x00005C00
 #define RCAR_CUT_MASK        0x000000FF
 #define RCAR_CUT_VER30       0x00000020
 
@@ -836,6 +837,7 @@ static __init bool ipmmu_stage2_supported(void)
         break;
 
     case RCAR_PRODUCT_S4:
+    case RCAR_PRODUCT_V4H:
         stage2_supported = true;
         break;
 
@@ -871,6 +873,10 @@ static const struct dt_device_match ipmmu_dt_match[] __initconst =
         .compatible = "renesas,ipmmu-r8a779f0",
         .data = &ipmmu_features_rcar_gen4,
     },
+    {
+        .compatible = "renesas,ipmmu-r8a779g0",
+        .data = &ipmmu_features_rcar_gen4,
+    },
     { /* sentinel */ },
 };
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 14:20:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 14:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831840.1247215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t93NQ-0006EW-Ji; Thu, 07 Nov 2024 14:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831840.1247215; Thu, 07 Nov 2024 14: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 1t93NQ-0006EP-Gz; Thu, 07 Nov 2024 14:20:48 +0000
Received: by outflank-mailman (input) for mailman id 831840;
 Thu, 07 Nov 2024 14: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=Mm4d=SC=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1t93NP-0006EJ-38
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 14:20:47 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77d29b94-9d13-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 15:20:41 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a99ebb390a5so392037766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 06:20:41 -0800 (PST)
Received: from localhost.localdomain ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a18539sm101346366b.27.2024.11.07.06.20.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 06: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: 77d29b94-9d13-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc3ZDI5Yjk0LTlkMTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTg5MjQxLjM2NTU3OSwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730989240; x=1731594040; 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=y/U9+72wMeDNxXeJVAep/L+/jFQ+DgDjK+lqlpXNaNg=;
        b=JsV4pLRNuF/oW3ygYZEY4qvJlaWrPrTO+8OIysA2+vdzqlK52cMTNYxwAruyym4CSE
         Mc5F9qzacfvhpcTZo5jiC+VDZnly66G8+qiTnOw4Ul8gjo+hbZlqEq4tlogpGnGyWL00
         YCS+KkDrU8h7GYeDjsn5s5rEX1GLKX90w4uUo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730989240; x=1731594040;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=y/U9+72wMeDNxXeJVAep/L+/jFQ+DgDjK+lqlpXNaNg=;
        b=nxcMRxy3i2ES3S5stphJyTDYBeR85Vcl1HbOVu+bLXxGCQFbS6vvaIeN1MQc3PwXTO
         UBLlliiXAD8hnqu1zeTUXHxvLAACW13oPfU9iZtWoJ0gdtYnptwhYSmzEivfEWol9oYD
         QbW++F2OWn54eLu1iRfOggF1U58dCDyUlcSo/jFa3PwIKzOK9qmJwiBx/LWD7G+kQhzU
         9QhylGSDNEirmH18aAHBmbMSMrLYoP7KBMnsdJsA9qlrulQdbbBFlOn1SauzwANrJnjJ
         T/1z+3PolijfMSYb1e+zbwKbAgx1Im6N0dideqp7RfbjlArXlce/U+gntUwWLyq8xIzS
         3kvA==
X-Gm-Message-State: AOJu0Yzu/w5WMBJ7ruOVIq+2XvqkIBgSOj3L8l4EU6fZFSvqBZGHoYdB
	kOjzk5TUGOrZC8fXXwyMKPkDa7Jk5fN1Ii3X8G0WzSW3Vib5Xn6xK8fnYVGXNMmQt5LSUvlKg3U
	6RBo=
X-Google-Smtp-Source: AGHT+IEU6eVutiiVjD49o1Wr6cLP7PRKeraQQD66Z4rsPHFohI0Dx78LUHcYbdOv4Eg4+qdX8/yL5g==
X-Received: by 2002:a17:907:7b8e:b0:a99:ee26:f416 with SMTP id a640c23a62f3a-a9eeb0f94ffmr13039166b.14.1730989239080;
        Thu, 07 Nov 2024 06:20:39 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Victor Lira <victorm.lira@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Javi Merino <javi.merino@cloud.com>
Subject: [TEST_ARTIFACTS PATCH v1] scripts: add lzo to the x86_64 alpine rootfs
Date: Thu,  7 Nov 2024 14:19:33 +0000
Message-ID: <20241107142012.2593333-1-javi.merino@cloud.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In the qemu-alpine-x86_64-gcc test, we want to test libxenguest built
with all libraries.  If we add lzo-dev to the alpine:3.18 container,
libxenguest is linked against it.  However, as the initrd in the
test-artifacts does not contain lzo, the qemu-alpine-x86_64-gcc gitlab
CI job fails with:

  + bash /etc/init.d/xencommons start
  Starting /usr/local/sbin/xenstored...
  /etc/xen/scripts/launch-xenstore: line 90: echo: write error: Invalid argument
  Setting domain 0 name, domid and JSON config...
  Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
  Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
  Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
  Starting xenconsoled...
  Starting QEMU as disk backend for dom0
  + xl list
  Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
  Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
  Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
  + xl create -c /root/test.cfg
  Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
  Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
  Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
   *   Execution of "/etc/local.d/xen.start" failed.

Add lzo to the initrd that becomes the rootfs to install liblzo2.so.2 .

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---

Tested in https://gitlab.com/xen-project/people/javimerino/test-artifacts/-/jobs/8295092924

 scripts/x86_64-rootfs-alpine.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-alpine.sh
index 28d8e30d8eac..f8b04c52f82e 100755
--- a/scripts/x86_64-rootfs-alpine.sh
+++ b/scripts/x86_64-rootfs-alpine.sh
@@ -12,6 +12,7 @@ apk add dbus
 apk add bash
 apk add python3
 apk add zlib
+apk add lzo
 apk add ncurses
 apk add yajl
 apk add libaio
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 14:21:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 14:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831848.1247225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t93OD-0006iZ-TV; Thu, 07 Nov 2024 14:21:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831848.1247225; Thu, 07 Nov 2024 14:21: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 1t93OD-0006iS-QQ; Thu, 07 Nov 2024 14:21:37 +0000
Received: by outflank-mailman (input) for mailman id 831848;
 Thu, 07 Nov 2024 14: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=0Tfg=SC=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1t93OC-0006EJ-7H
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 14:21:36 +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 9688dcd6-9d13-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 15:21:32 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9a0c7abaa6so113669566b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 06:21:32 -0800 (PST)
Received: from mbarnes-x-u.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc4c60sm101118366b.102.2024.11.07.06.21.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 06:21: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: 9688dcd6-9d13-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2ODhkY2Q2LTlkMTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTg5MjkyLjkzNzU1LCJzZW5kZXIiOiJtYXR0aGV3LmJhcm5lc0BjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1730989292; x=1731594092; 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=rA1pIqBmQIVPWtjPV0G5LDbyMaZKrsqGTVi3yIVl/FQ=;
        b=L3BKMDDi/ShKTPofJ1TOrL9PC98mkt22QUBLdPKOVDZjGGcyj2Cu2Dz2lfNyX+vCQq
         rgEOMyJiS6hTc6vrV1crk2qdSBsIfMMRZhQ9YJYYbg0sxVhflE3mvpX9FDTc9wvRk3yN
         Y4IT4/nNJfk/iLUOvscH7gZ++7jesEdGaEzwk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730989292; x=1731594092;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=rA1pIqBmQIVPWtjPV0G5LDbyMaZKrsqGTVi3yIVl/FQ=;
        b=ZptX5dgK9CgNOwCFxoF0ZS9C0kIOodAsyKbeR69nyTmO1H/AZZIWU0t31Z6NaRQ7ay
         O1OezQzv66Od+Lz+addwfdL1/xbb/SQh+TWah4tgeaxVW86R9iB7DsAb/iJU23rWyOsf
         5v+Kr2iE49n4cDzEOEyTMyV1axU1ezqHDALOufd1a0qa0f7Ry0a0dgFv2ahPM7APGWwq
         tY2kiyndPvilbzm0l2BeTwTZ1SMhb73C6o2/1zxh+rFkOv3V9HRS/cPlEac+RGYUhtQQ
         fpJJHqxlR8a0OiYos3spCBcQ/L8ALrRBVxfFEAT3gHHfUy/BxzV87XUq8sYlldOYr9s6
         5tow==
X-Gm-Message-State: AOJu0YxFuqQSnmKYyur3YZ+6mjU094aC1qUUHdqxytF84xQv8632NP0w
	diyq277u3LaKtVJ6AqPjH6PGXalj4T+WYRAo/uBItswp01xElSt7X7QjkwWdhAxEibxhpXkdW+N
	X
X-Google-Smtp-Source: AGHT+IFDnjiLUO0ISlQw65xJE+VgtU11b41sNeLIhrHwi2grcI2OUTTMJ1UZTOKs/f+8bVXNJB01tw==
X-Received: by 2002:a17:907:2d91:b0:a9a:80cc:c972 with SMTP id a640c23a62f3a-a9e655a8980mr2338718766b.27.1730989292138;
        Thu, 07 Nov 2024 06:21:32 -0800 (PST)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH v2] CHANGELOG: Add note about xAPIC destination mode change
Date: Thu,  7 Nov 2024 14:08:31 +0000
Message-Id: <f7e299a8c1af7c5875e07f80b0229b1cd322a5f6.1730987624.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
Changes in v2:
- Move notes from "Removed" to "Changed" section
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 674944cbe4fb..8553b2e4516e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - Fixed blkif protocol specification for sector sizes different than 512b.
  - On x86:
    - Prefer ACPI reboot over UEFI ResetSystem() run time service call.
+   - Switched the xAPIC flat driver to use physical destination mode for external
+     interrupts instead of logical destination mode.
 
 ### Added
  - On Arm:
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 14:31:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 14:31:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831854.1247235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t93X1-0008Sn-P5; Thu, 07 Nov 2024 14:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831854.1247235; Thu, 07 Nov 2024 14:30: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 1t93X1-0008Sg-LO; Thu, 07 Nov 2024 14:30:43 +0000
Received: by outflank-mailman (input) for mailman id 831854;
 Thu, 07 Nov 2024 14: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=eoxm=SC=gmail.com=ubizjak@srs-se1.protection.inumbo.net>)
 id 1t93Wz-0008SY-N4
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 14:30:41 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbcfbe59-9d14-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 15:30:39 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2fb470a8b27so20159341fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 06:30: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: dbcfbe59-9d14-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzIiLCJoZWxvIjoibWFpbC1sajEteDIzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRiY2ZiZTU5LTlkMTQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTg5ODM5LjA3NzQ1Niwic2VuZGVyIjoidWJpempha0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1730989838; x=1731594638; 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=w3DzRFO1j10BZCdzNgBY0f8TIGH1g3i6yXo3itiQA+E=;
        b=YBGfYv24VKw/jlJrnEYhyuxy2gzS6v81ZlR0nczaU3Vy+aFWNAX9MW9OJFutrY6BOb
         x82ZGoi5LF5kqtFaewwSujpLOQ8wzYUCOq9wXROAueStn5dIz5DYsLhfOZf5lhFhg0C8
         Ni/30woZCRIcxcsgCEqf+ZK8n0/N0I5RhHyYMdmHFTQZNI+ydjIkLwjADaiawwLwjhVA
         margfysdZUhN6uIopMdX/D5sK8jx+1znRzkQ58enwUZ491Y9JzulsYvfgFNzMGIHn21F
         GiORrQHkm2RzMGB8LkoXi+UWJ2/OSUzIEHNdAUPwi9eLTYNGOZWKxYgrHJEiSj0rF7+g
         KGrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730989838; x=1731594638;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=w3DzRFO1j10BZCdzNgBY0f8TIGH1g3i6yXo3itiQA+E=;
        b=Ic9cE2uaS2mYI+ovv9SkvaJpDBmIyJhvhyaynfG8FKOeoYcHmUJHBy9DONCW0ayHyw
         eiDY18WkkMnCrlqVlUCBJKqHgvEeSivBP4ldVPOog5/kmvSyFyl7/c3hHb3jESyCuD8Q
         k+pq1KXilX3jh/houCJl1HiBi6FmWAsmp+nByZzxfsPuY/WwcMlbyWUIA78+MC5A8im4
         34V1tuKtVNY0kIUNtp6MyWt3S7yCDZqYn/6rO7OW1g3u1qkQjmQ4yyHPTEo1SLj3jH3Y
         iM2SjwyZsqTix+oY81Z2LXVBJxzxGzAP/9b89vE9/yHa/CUVshGw6hg9jTNxJAffsLYU
         iKUQ==
X-Forwarded-Encrypted: i=1; AJvYcCVp/ETHgsl6vxKdx5uAU8MgSqd/+6536w3RDky4w4XEYGkd0/JX92dhqyQcDmKRgcaGwsfXtNvSL3Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNHwSNG7hg8DgiZjqsr9+kyRC4LUAAivWWpUhy6gWyQ+FWiW9B
	DyGn4plN/QcSagtNTTLeJVsUtpb+l5uv2Ms4BTV1MHAI/nlfajvGH2teQNXBfcJ1gsHYuKF8Tj6
	+L2PejdzWINOucOYaspS8iRFklM4=
X-Google-Smtp-Source: AGHT+IGgSyaarGGvCbE/nD3rQQTNPlY5f1CWNSjxwV6FbfjWZzSk+RTRw7sgBh5ZSJeTHLrO2EZStSq/tpCCRaB0u3Q=
X-Received: by 2002:a05:651c:150b:b0:2fb:5be4:3645 with SMTP id
 38308e7fff4ca-2ff1e808cfamr1000311fa.0.1730989837803; Thu, 07 Nov 2024
 06:30:37 -0800 (PST)
MIME-Version: 1.0
References: <20241105155801.1779119-1-brgerst@gmail.com> <20241105155801.1779119-6-brgerst@gmail.com>
In-Reply-To: <20241105155801.1779119-6-brgerst@gmail.com>
From: Uros Bizjak <ubizjak@gmail.com>
Date: Thu, 7 Nov 2024 15:30:26 +0100
Message-ID: <CAFULd4ZAFuGMdkXz_Lu0vrQHQG4CSgaJzuGSdM0abPpNOO8cPg@mail.gmail.com>
Subject: Re: [PATCH v5 05/16] x86/pvh: Use fixed_percpu_data for early boot GSBASE
To: Brian Gerst <brgerst@gmail.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, 
	Ingo Molnar <mingo@kernel.org>, "H . Peter Anvin" <hpa@zytor.com>, Thomas Gleixner <tglx@linutronix.de>, 
	Borislav Petkov <bp@alien8.de>, Ard Biesheuvel <ardb@kernel.org>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 5, 2024 at 4:58=E2=80=AFPM Brian Gerst <brgerst@gmail.com> wrot=
e:
>
> Instead of having a private area for the stack canary, use
> fixed_percpu_data for GSBASE like the native kernel.
>
> Signed-off-by: Brian Gerst <brgerst@gmail.com>
> ---

This patch looks like it could be submitted independently of the main
series and should include XEN maintainers (CC'd).

Uros.

>  arch/x86/platform/pvh/head.S | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/x86/platform/pvh/head.S b/arch/x86/platform/pvh/head.S
> index 64fca49cd88f..b0a9a58952aa 100644
> --- a/arch/x86/platform/pvh/head.S
> +++ b/arch/x86/platform/pvh/head.S
> @@ -159,10 +159,15 @@ SYM_CODE_START_LOCAL(pvh_start_xen)
>  1:
>         UNWIND_HINT_END_OF_STACK
>
> -       /* Set base address in stack canary descriptor. */
> -       mov $MSR_GS_BASE,%ecx
> -       leal canary(%rip), %eax
> -       xor %edx, %edx
> +       /*
> +        * Set up GSBASE.
> +        * Note that, on SMP, the boot cpu uses init data section until
> +        * the per cpu areas are set up.
> +        */
> +       movl $MSR_GS_BASE,%ecx
> +       leaq INIT_PER_CPU_VAR(fixed_percpu_data)(%rip), %rdx
> +       movq %edx, %eax
> +       shrq $32, %rdx
>         wrmsr
>
>         /*
> @@ -232,8 +237,6 @@ SYM_DATA_START_LOCAL(gdt_start)
>  SYM_DATA_END_LABEL(gdt_start, SYM_L_LOCAL, gdt_end)
>
>         .balign 16
> -SYM_DATA_LOCAL(canary, .fill 48, 1, 0)
> -
>  SYM_DATA_START_LOCAL(early_stack)
>         .fill BOOT_STACK_SIZE, 1, 0
>  SYM_DATA_END_LABEL(early_stack, SYM_L_LOCAL, early_stack_end)
> --
> 2.47.0
>


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 14:33:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 14:33:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831863.1247245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t93ZO-0000Z8-5P; Thu, 07 Nov 2024 14:33:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831863.1247245; Thu, 07 Nov 2024 14:33: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 1t93ZO-0000Z1-2C; Thu, 07 Nov 2024 14:33:10 +0000
Received: by outflank-mailman (input) for mailman id 831863;
 Thu, 07 Nov 2024 14:33: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=1QHo=SC=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1t93ZN-0000Yv-B5
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 14:33:09 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2416::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f63f5d3-9d15-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 15:33:00 +0100 (CET)
Received: from MN2PR03CA0024.namprd03.prod.outlook.com (2603:10b6:208:23a::29)
 by IA1PR12MB8189.namprd12.prod.outlook.com (2603:10b6:208:3f0::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20; Thu, 7 Nov
 2024 14:32:51 +0000
Received: from BN2PEPF00004FBC.namprd04.prod.outlook.com
 (2603:10b6:208:23a:cafe::52) by MN2PR03CA0024.outlook.office365.com
 (2603:10b6:208:23a::29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Thu, 7 Nov 2024 14:32:51 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 14:32:51 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Thu, 7 Nov
 2024 08:32:50 -0600
Received: from [172.25.174.226] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 7 Nov 2024 08:32: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: 2f63f5d3-9d15-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjFmIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjJmNjNmNWQzLTlkMTUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTg5OTgwLjUxNTQ5NCwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZlSmXbHXlTVDvFHHbfkSo1WPh94+/kCZHJDNPQBq6mTqugnt6afoT6KeVHy7QXIraqUb7dfRAR3WljsAo8NdITJ/85zelrOy1wosX3zxtHNhz0WjwyPhOfIAQmXjGNe3OrM/mErn2RklTmkAwDX1HRgTwE+FWZ+ZTHZycHHUTO/tpzg9shk5IjeO9k2TzamwcLBDMAwUGZEiYnlOOmLf5+UbfTS8veN8Eqqbh+YtVUj/Kj2FFMB6Ux2mgbysnTj9TMHExnb55yZbpK9E3vkEtG/1wYrWtghm4aXSqnbxNQdr8TgaCEyu/isGn/Y/bG041w96wOb4f6i2GCn6p0m5cg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l3+87iTJa5i3OVo6HJ1Hufy8q+Y1/QfHAYtRW7sPQMU=;
 b=I79TJ1zxVaAp1ajRr2gYen5fTS7tlCH4uvcrX07c8s+oalGazj6Xb9WXRZOSogvmfDUcQRSjJeJomufMbYQgMpHxXm7ORw6R5WbUp7vZesRbwAHwTYg7NkYUrnrnOcyPHKkdqz89uETT+aJihAysDA8ldTrsMNcC/jLw6cBoHglS97Dv8CaGz3zts2UTqnDVgi09XOnzkTIIJLiL7IFkM68gJhDw2Y/BGOz7vmb2XBBq/c8ocZY74kMCitSxMqhpQmAZY40P+2EY4n3SPYX4gZvLStUVqsvUZXXk0wmcskULouuxNAK0LtmqpkBivsnTJW0TCVp8erAAl21uChCTqQ==
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=l3+87iTJa5i3OVo6HJ1Hufy8q+Y1/QfHAYtRW7sPQMU=;
 b=Egn20PlOuVr9oq18I8drieJlhPkBYI5ke0M/x9PK7SLNLILV4WAFs/VWlJeOHcH2fiRBkwPz9C5xqWgy/B9l8SF3vSd/7AGtmg2YYbEh3I86EGyVFzP+BybLjV0XnSDC9xhrEBe3s0gCZrbI4EiiIPSc5v+WMqx5n10SDvlU0x4=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <e9a02c31-519c-4cc0-b623-7f2335c7aeec@amd.com>
Date: Thu, 7 Nov 2024 09:32:48 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBC:EE_|IA1PR12MB8189:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b0b00c4-c73f-4a5b-bd3b-08dcff390f31
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?eU0rQXFNeUJ0NnBqaVdIWTk1QmtGemVicGlUSkV6RW5qb1lrSDIrRVkxc2h3?=
 =?utf-8?B?NVRVbUNFZVpzUlVLVjNqTkZncDNNK25JQnhWbTlPbUthNGc1OGhGMW93alVJ?=
 =?utf-8?B?dmZNaGs5VlFWZmgxZHpyRFpzZVBRV2RGeUlMUDNORmlrU2RreU9yampzS1Bm?=
 =?utf-8?B?aEpJVDM2MTFKSzZvUjNEd2hJYmE1YzdleFRpYnlvSFFyTkhLai9WUVFUcHhl?=
 =?utf-8?B?SkRPQ21rUDFkTFpGZ2lGY1F6YWk3MWU1cWUvWlpzZk83Nm4wa1NyRHNmaC9L?=
 =?utf-8?B?czV4MlFaU0d3eS91bE5oZStjTzNtTDFDQU44VC9HbnN6NUU3SWJJcm92djhX?=
 =?utf-8?B?UjNKanlzdnBVN2cwWnpCUEkvdjhyRmYzVlNMMlJsV3VOWE9Rc1hvTTJEaTU4?=
 =?utf-8?B?anpIOVRsTzhZSzlyb3lPbWFia0J0MXRZUmwvZ2NKb0h5RWhvbzN4ZFJNaDlt?=
 =?utf-8?B?N1FSdWpwZFB4cENkZjV3dTFJeWFXZmZRNnR2OWJ2L2RGdFFUSWlYK3VHbGNC?=
 =?utf-8?B?WTB3OG85UlVqUUdwM1RQczFZM0tqOUNQTjlNZ01RUkVkY2YwTHRBUmthMVM0?=
 =?utf-8?B?Z04wWkxlRzkwZklqNlhiZkY0dytSdHhSdU0wUVVSL04yQWc1dng5T1ZBaC8z?=
 =?utf-8?B?S2VpZFUrZDR4UmY2TEE0bzcwZFlXTExjYlJpcGZ4VjJkS1RVL3BqY0hZWWhv?=
 =?utf-8?B?TnFtN201bVdKazl1c3M4MlVXZ0E0NFJ5NFVQZFQrNExvOHhUY2hYM3Q4em85?=
 =?utf-8?B?NTZuQUtQTkQwb2JBdDRkK1EwUDlGc2VhZE91Z1hoakgzQWlZOXAxam9Nb1Uy?=
 =?utf-8?B?bnBrTUV6WVVxaWNKVWdXWjRnamNSaFRLNXZQMGFxWmE1YXd0RW1MQ0hOV1d1?=
 =?utf-8?B?amdCdGJRQnVML05tWjJ0anFBOXMwWmlDSFlndnp3Z1JBREhENzEwZWMzcGJa?=
 =?utf-8?B?ekZLeHcreW16QjRMTHcvQVgxa1d5TTVEUTRIK0Y1ZDE1RjVmMy8xU1hFcUJy?=
 =?utf-8?B?RTd2OTEwM1RKb2pHUmNXQk1mcGhQZFgxeDRrK0w2OXBZUGJPOGx6RHA2V0F5?=
 =?utf-8?B?NzRSbDdjRHNmdFViMFFneEt5RXV4R3NRazhNNHkza0lqTkhzZzExR0RwSWxC?=
 =?utf-8?B?Zjc3bEV0OGlrS3RQcnNDenRyeHIyeDJHVGREZzVVUEQrK0FCQU9rWUFQa0Vi?=
 =?utf-8?B?M3FmMVhNem93UFlnbVN0VTdxR0JPSjdlZ2c1N1FpdTNsZEdNLys4N20wbzQ2?=
 =?utf-8?B?b0NhSEx4QkFRS1o0bEZxbVh1YnNiYU9LR04rcUNuR1RkVEZZRUc4U2xlSWo2?=
 =?utf-8?B?Vk1xVEVxUnhIK0c3SnRuQnRTV1BzbEwrTnRqcW1waXBRQXdhazRHN052U2ZR?=
 =?utf-8?B?RmZrMHhwNU9nVTIrMjhiL05kT0lXTURQKzVEaDNqWkhqUDlicnBkMUJsdVNn?=
 =?utf-8?B?ckMzeUFKcjJWRVhQeWo3K1JSQmo4a2k3MHZNeEJHaFZFOVlnQWV5M0dUWDVD?=
 =?utf-8?B?UGtHa212UkNUNndqaUt0dm4xVEhNSUtqU0xXb1NtS2hkVXNWWlVkb2hxaVdp?=
 =?utf-8?B?aEhuTjJodUZGTHd3TTRlN2xySmhTOE1qazlLZllKL0RVdXBCa2Urb1hLcnUv?=
 =?utf-8?B?V3Y0T2FZQzNGMDBHNXY4YmdZZUlzRm9KRFZmTnlqem5oay8xZk0zN2NYYng2?=
 =?utf-8?B?S0tGZmpweS9ORWQrcU1xOUhXNGcvZUFjbTdwY1pWSWFxUHdBMDNNdG85a2ln?=
 =?utf-8?B?dStIWGc1QjlsaitzUnZEY3VLVDRtbmJ2SFdtVUV6c0pmS2JjNjNLa2pHell3?=
 =?utf-8?B?RzlueFNWN3dSTzZWaHpzRFVsRUw1cUNsVzlaV2JiYUhKOEh5Q0NoVmFxWTZa?=
 =?utf-8?B?TVBESVdJMkNNTkprVUNhU3FVa1o3aWF3U3hCaHVrWWhmVkVDZTkvUExzTkMw?=
 =?utf-8?Q?uf2v1J3/gI4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 07 Nov 2024 14:32:51.2279
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b0b00c4-c73f-4a5b-bd3b-08dcff390f31
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=[SATLEXMB03.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: IA1PR12MB8189

On 11/4/24 02:44, Jan Beulich wrote:
> On 01.11.2024 21:16, Stewart Hildebrand wrote:
>> +Daniel (XSM mention)
>>
>> On 10/28/24 13:02, Jan Beulich wrote:
>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>>> Add links between a VF's struct pci_dev and its associated PF struct
>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>>> dropping and re-acquiring the pcidevs_lock().
>>>>
>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>>> VFs may exist without a corresponding PF, although now only with
>>>> pdev->broken = true.
>>>>
>>>> The hardware domain is expected to remove the associated VFs before
>>>> removing the PF. Print a warning in case a PF is removed with associated
>>>> VFs still present.
>>>>
>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>> ---
>>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>>
>>>> v5->v6:
>>>> * move printk() before ASSERT_UNREACHABLE()
>>>> * warn about PF removal with VFs still present
>>>
>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>>> just after an adjustment to the commit message. I'm instead actively
>>> concerned of the resulting behavior. Question is whether we can reasonably
>>> do something about that.
>>
>> Right. My suggestion then is to go back to roughly how it was done in
>> v4 [0]:
>>
>> * Remove the VFs right away during PF removal, so that we don't end up
>> with stale VFs. Regarding XSM, assume that a domain with permission to
>> remove the PF is also allowed to remove the VFs. We should probably also
>> return an error from pci_remove_device in the case of removing the PF
>> with VFs still present (and still perform the removals despite returning
>> an error). Subsequent attempts by a domain to remove the VFs would
>> return an error (as they have already been removed), but that's expected
>> since we've taken a stance that PF-then-VF removal order is invalid
>> anyway.
> 
> Imo going back is not an option.
> 
>> While the above is what I prefer, I just want to mention other options I
>> considered for the scenario of PF removal with VFs still present:
>>
>> * Increase the "scariness" of the warning message added in v6.
>>
>> * Return an error from pci_remove_device (while still removing only the
>> PF). We would be left with stale VFs in Xen. At least this would
>> concretely inform dom0 that Xen takes issue with the PF-then-VF removal
>> order. Subsequent attempts by a domain to remove VFs, however
>> (un)likely, would succeed.
> 
> Returning an error in such a case is a possibility, but comes with the
> risk of confusion. Seeing such an error, a caller may itself assume the
> device still is there, and retry its (with or without having removed the
> VFs) removal at a later point.
> 
>> * Return an error from pci_remove_device and keep the PF and VFs. This
>> is IMO the worst option because then we would have a stale PF in
>> addition to stale VFs.
> 
> Yet this would at least be self-consistent, unlike the variant above. No
> matter what, any failure to remove VFs and/or PFs correctly will need to
> result in there being no attempt to physically remove the device.
> 
> You didn't enumerate an option lightly mentioned before, perhaps because
> of its anticipated intrusiveness: Re-associate stale VFs with their PF,
> once the PF is re-reported.

I'll plan on this approach for v7.

> Problem of course is that, aiui, the VFs
> could in principle re-appear at a different BDF (albeit we have other
> issues with potential bus-renumbering done by Dom0), and their count
> could also change.
> 
> Jan
> 
>> [0] https://lore.kernel.org/xen-devel/20240827035929.118003-1-stewart.hildebrand@amd.com/T/#t
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 14:59:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 14:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831879.1247256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t93zA-0003uf-BB; Thu, 07 Nov 2024 14:59:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831879.1247256; Thu, 07 Nov 2024 14:59: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 1t93zA-0003uY-6z; Thu, 07 Nov 2024 14:59:48 +0000
Received: by outflank-mailman (input) for mailman id 831879;
 Thu, 07 Nov 2024 14:59: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=UaIZ=SC=bounce.vates.tech=bounce-md_30504962.672cd5dd.v1-d3db07cae15342c28425c0fbcbd0c7e8@srs-se1.protection.inumbo.net>)
 id 1t93z9-0003uM-5R
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 14:59:47 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb18bc92-9d18-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 15:59:42 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xklbd24Bhz5QkP7K
 for <xen-devel@lists.xenproject.org>; Thu,  7 Nov 2024 14:59:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d3db07cae15342c28425c0fbcbd0c7e8; Thu, 07 Nov 2024 14:59: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: eb18bc92-9d18-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4xMiIsImhlbG8iOiJtYWlsMTM2LTEyLmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImViMThiYzkyLTlkMTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkxNTgzLjA3ODYyMywic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MmNkNWRkLnYxLWQzZGIwN2NhZTE1MzQyYzI4NDI1YzBmYmNiZDBjN2U4QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1730991581; x=1731252081;
	bh=rAB3NA4jAWP69vOTwwHucDx92mVM2KIOfw2tuJPI2Rw=;
	h=From:Subject:To:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=gUdLgKKeXPXfcuuwtkXZ0qgg+uIGlc/m6dulHMYfcAPnbLRYZ6tCN+yXJ3YEsbQ4Q
	 14IXFffwePbamhxvUbNYVhU4X0u4rfJw9K7lHX0QQslb7jya4tNyfTR/yZl5FMerD8
	 F6MMYmaW0dDSkbD4jW5oubYHW4LDBrM+53UPUxlIVJ8WoAl9FCJ5+s3JO1wncUzSm0
	 aRr9oydFJj3lG5IwnSLcXyFWjucjCk0c4F9d631qzR0fMkddb/vTV395bfqlPVRdIs
	 ynkd6QJQAvkQnwzjseqZ07CxmmQ3s9EOOq5BfLOrxKWyK4PJDjobZwDqP2TzjBYZrN
	 KQUzsEu+0Hx2w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1730991581; x=1731252081; i=anthony.perard@vates.tech;
	bh=rAB3NA4jAWP69vOTwwHucDx92mVM2KIOfw2tuJPI2Rw=;
	h=From:Subject:To:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=L2oRyORFgMGnerTB/z8+PYAZMblQorzDcJ83E4R5YGqZYhztH3vi+tV8FULwF9p6z
	 sY+Wdp3TXqZMkBldV52KqJ+Bsx9GZ/QWjWIaFnlq47vRtEyjf9g6OIw9ODHBpTtWYg
	 4AFtElIFByddg5wa2k958pRV+f2rdfn9dU3qk/+4ouym1wiVl98dgc9k2UzZCrZyZ8
	 G41jCd53kqfYHrQrHO5qRTg1taSjLRONV2sNuoxugNNv5DPUJmUcQI0ePh1QnitmmT
	 BBqzNjyOaSuWxGgd68rB/UfsOU6Wbv7t79Sr0/vGP5ZKhLh2HEZG/wSD5SLHHq+64g
	 RlKmcOjFgf/Tw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Xen=20Project=20Winter=20Meetup=202025?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1730991580551
To: xen-devel@lists.xenproject.org, xen-announce@lists.xenproject.org, xen-users@lists.xenproject.org
Message-Id: <ZyzV2GBrFgz+z1dK@l14>
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.d3db07cae15342c28425c0fbcbd0c7e8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241107:md
Date: Thu, 07 Nov 2024 14:59:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello everyone!

Vates is pleased to organize the next Xen Project Winter Meetup. With
this in mind, we're excited to announce that we'll be hosting the Xen
Winter Summit in January 2025, on Thursday 30th and Friday 31st.

Here's what's in store: After a welcoming breakfast, we'll dive into two
days of talks and collaboration, organized as follows:

 - Morning: Talk sessions
 - Afternoon: Design sessions

Whether you're already a Xen developer or just starting out with system
development skills, this event will give you the opportunity to work on
Xen topics to improve the hypervisor. You'll collaborate with Xen
maintainers and help newcomers, including academics, join the project.
We encourage you to register and submit a proposal if you'd like to
share on a related topic - all contributions are welcome, and we'll
review each with great interest.

You can register and submit your proposal at
    https://campaign.vates.tech/xen-project-winter-meetup
at the bottom of the page.

This site also contains all the information related to the event.

We're also organizing a private tour of Aconit, Europe's largest and
oldest computer museum collection, on Thursday afternoon, as well as a
gourmet evening out in Grenoble. A detailed schedule of presentations
and activities will follow soon. The link above also provides guides for
accommodations, directions to the university venue, and activities,
should you wish to enjoy the snow over the weekend or explore Grenoble's
local culture.

Please don't hesitate to reach out for any additional information.

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:00:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:00:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831883.1247281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t93zP-00058q-VV; Thu, 07 Nov 2024 15:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831883.1247281; Thu, 07 Nov 2024 15:00: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 1t93zP-00058D-Rv; Thu, 07 Nov 2024 15:00:03 +0000
Received: by outflank-mailman (input) for mailman id 831883;
 Thu, 07 Nov 2024 15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t93zO-0004op-OY
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:00:02 +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 f528c49f-9d18-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 15:59:59 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9ed49ec0f1so181310466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 06:59:59 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4a995sm104931766b.61.2024.11.07.06.59.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 06:59: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: f528c49f-9d18-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY1MjhjNDlmLTlkMTgtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTkxNTk5LjI0OTE4LCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730991598; x=1731596398; 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=kWudKZrT5r7ZSn6U4xo51gIARID7PZJcRRFdJ5MGAUc=;
        b=IusyHBpR7pkVMp/GtIQR6VJaX/PBTvJYrSpYXgHrIgCwrEr44Wgq/CwwCy8o7lkZzI
         ZwbzfZ16DzVu9i3b+dwBc2QaitwL11Zw8xZXYWWRv/RTbDOYh2GyYJObEARrkvYsa4e/
         GO6Rn17azamXg0kUGO0vWEgMdC6h24SddO1Lk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730991598; x=1731596398;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kWudKZrT5r7ZSn6U4xo51gIARID7PZJcRRFdJ5MGAUc=;
        b=M/hH9BjRt4lSBnaSraHZdDwHhy5nfpKU6LLDp9MJE9yo3l36dASYQ6lHtxnLijcM/5
         xarXQYODD4l0+x3Cus8gZX9eldq5klk4GtV+vFNpuf81RYGq32KtSnpE9E5AUR7iXhpT
         EaJbbGn3LhKT/LJVH+GSOOthb+FCyzD9E/kU1jdlgCz1gKVUMKLbI1p8/JK7yitVMAm6
         23zWLVyZ6xhxcY6HrxOkX/J9+kuHDhaznCwlJmsjFDYwqgM552V17aNOMkJM2EA5Aj1a
         FOt2684Vugldntmb721JvUyNvsTrtZ3l+2t2eOlP4nTEu6NBjJkK6KUyy7DwKKA1poUc
         sFbQ==
X-Gm-Message-State: AOJu0YzvlAYnJHnVIg37keeDT91FbX3b3+7FRj7b924r3/kd+e9n4F+L
	HyjKmN0gJDcfKUVpINQO4sbC/cfBhxHFkYh35L+vOQze7BmisryBqKptQs5eo3Y3wvwqpfYrqGD
	h
X-Google-Smtp-Source: AGHT+IGklpQsEOfcEOlt9KJ2CJFqMxK3g3wcXmlS1Hqp7PEGQv1QogbpZ0L8+gEZ9ycNzhjI0eQbpA==
X-Received: by 2002:a17:907:c26:b0:a9d:e1d1:bf95 with SMTP id a640c23a62f3a-a9eeaef5d00mr28148866b.25.1730991598311;
        Thu, 07 Nov 2024 06:59:58 -0800 (PST)
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] xen/x86: prevent addition of .note.gnu.property if livepatch is enabled
Date: Thu,  7 Nov 2024 15:59:52 +0100
Message-ID: <20241107145952.73403-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

GNU assembly that supports such feature will unconditionally add a
.note.gnu.property section to object files.  The content of that section can
change depending on the generated instructions.  The current logic in
livepatch-build-tools doesn't know how to deal with such section changing
as a result of applying a patch and rebuilding.

Since .note.gnu.property is not consumed by the Xen build, suppress its
addition when livepatch support is enabled.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/arch.mk | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 1460ecf30b9a..1ded012d9f5b 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -26,6 +26,12 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVPCID)
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR)
 $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD)
 
+# Disable the addition of a .note.gnu.property section to object files when
+# livepatch support is enabled.  The contents of that section can change
+# depending on the instructions used, and livepatch-build-tools doesn't know
+# how to deal with such changes.
+$(call cc-option-add,CFLAGS-$(CONFIG_LIVEPATCH),CC,-Wa$$(comma)-mx86-used-note=no)
+
 # Check to see whether the assmbler supports the .nop directive.
 $(call as-option-add,CFLAGS,CC,\
     ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:04:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:04:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831914.1247291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t943I-0006pr-FU; Thu, 07 Nov 2024 15:04:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831914.1247291; Thu, 07 Nov 2024 15:04: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 1t943I-0006pk-CQ; Thu, 07 Nov 2024 15:04:04 +0000
Received: by outflank-mailman (input) for mailman id 831914;
 Thu, 07 Nov 2024 15:04: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=shok=SC=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t943H-0006pa-7a
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:04:03 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20626.outbound.protection.outlook.com
 [2a01:111:f403:2417::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83d1351e-9d19-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 16:03:59 +0100 (CET)
Received: from MW4PR03CA0292.namprd03.prod.outlook.com (2603:10b6:303:b5::27)
 by IA0PR12MB8301.namprd12.prod.outlook.com (2603:10b6:208:40b::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Thu, 7 Nov
 2024 15:03:54 +0000
Received: from SJ1PEPF0000231C.namprd03.prod.outlook.com
 (2603:10b6:303:b5:cafe::c9) by MW4PR03CA0292.outlook.office365.com
 (2603:10b6:303:b5::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Thu, 7 Nov 2024 15:03:53 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF0000231C.mail.protection.outlook.com (10.167.242.233) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 15:03:53 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Thu, 7 Nov
 2024 09:03:51 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Nov 2024 09:03:50 -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: 83d1351e-9d19-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjI2IiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjgzZDEzNTFlLTlkMTktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTkxODM5LjU5Njc1Mywic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aUcDJmZVfe7vmdYm2xU33cYFhdT1xYJePBiqEnNZD+dFOgypazvNzXUsfJuDZwrurmOIFPww3J7JlvrKi/GbRiaOTzmEb/ktStgkJH8MsAczBaCg1T5vrWkVndQlItsNl50dDeznJYOMxCQKEMOF3h+Dgn7IKecToYOgaltMkcWjnOvP6B6X9QBNG/W3Z7cgs9IzhKO14GfYJRU1KqBUxLGDPBxM4hj07YLyobM/kzQb2CeYvmrcJIrHgusnVFzrwHte/FikGAFTCr6lSHu2tIcDIylYeQ6FhP9XCUy6RTFoNbuaoHjArKH9XN2++JRzvbFN4rnHlfQkUHRgN8xXjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PBiv2GOIhg1R37a1jCV8SfIWyCn/z+gfjg0RbWL1A0g=;
 b=VXkX0txiPetjdgt2RvHWozcEKYyg1LCXRxk0ISbtOVdYCCvR4oyC5zRVMSJ9juJsWZB0rVxJUNHqNw+RwDNPNC/4pqNHQ70j6zS071j2DzUozwGqaPEzIZOLBCe/Fe4aeF+yJ/A4M9Gmgjr9z8e76vj5OF/vPOvtL0TMOkQjJZIm/7iTgcLW0XDL8v60y+x0AZ5t3wV3Zv2WpjIAQtqCFJDm+D2t1RZL8YWZKfK/lnYEUqMiDSHMY+5v1u9xvWBCYPvs24s4q/YPn7amdcsQeeroH2sbQQ7ZLz2qC/e2I/34eAPCk3KvI2LzD0oo2Q/Z9mLOo+1z1QF0RIGke7pDug==
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=PBiv2GOIhg1R37a1jCV8SfIWyCn/z+gfjg0RbWL1A0g=;
 b=d546+mU+nRkg4lERrG/iF+VKaIhPMKdEq4pc5KhZDuMNLCVjVa/A/CYQTGQ68n7PZJGtxEI+/250I33KRGp/TgqzD4naDJRPrmaDLyKdOrpgj8bN2ZoSqsdV2iGXExh9m8ViCuoJlIzL/EPSAQEp1ApxdkRLnVdIBppqW59I2Ro=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v5 0/3] Enable early bootup of AArch64 MPU systems
Date: Thu, 7 Nov 2024 15:03:27 +0000
Message-ID: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231C:EE_|IA0PR12MB8301:EE_
X-MS-Office365-Filtering-Correlation-Id: 7c2ca8d4-e87a-41b8-8a4c-08dcff3d64fb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?OhAvOWvcPjNt2QR8jB/0Jdm4FNw+uqrqGrrnGdSvO9wPDYVaQJv81COcWT9h?=
 =?us-ascii?Q?eTG769/wo0PxVdqviMLStZDyXiXdY1aN79eB+QVaeePS1NjeLLI60R0CAlni?=
 =?us-ascii?Q?+CcptO3818atXbvGXnHjocygY5dRKqrby8h2ZlKYQ78GIeDo71dHvX10joun?=
 =?us-ascii?Q?RFZ+7t+0cUOJJ0UAsv5TwWR2NLngpsvm+Pn8o0Z6KNAt1tqmswr3MQSTbCNz?=
 =?us-ascii?Q?KZ0UoAS4upNjX1YoRc6ampFUDNndvMbac/uPJieH1661B7FWM64L3GmxmI5Y?=
 =?us-ascii?Q?Xs7qLdWRrWImrKWRDtzrK4kvTOFqjvjmctn7nj/MAxBBgCTMP+EGTD2T3yx0?=
 =?us-ascii?Q?ysAcJ4jSgSBqODk0fl+1+qBVQ09UaW0coxIYgW6sZ65RGHLmj2F1yH5levQ0?=
 =?us-ascii?Q?EBkKu5KyiYKO76RJi5i0ypTmMMzpeKXzT7bSV0ngl2fMu0Ue166q+ZQQgj/o?=
 =?us-ascii?Q?JJVSQFEJFmU6WOy2oe1Bzwk4FLz7yYWi4tTjH9jKpfmb5jhm49vZb22WiUHa?=
 =?us-ascii?Q?YOl3dV7V6URnctCvK9eb3C5ZB0JsOz3j31aZPVhbpgru1u21I3WuQ7sdfCc2?=
 =?us-ascii?Q?hd+gt5URFFIFOiw1V456bP72wO5jhn8nM1J8xiDrjRpUiKvWmBU/56/RBw5B?=
 =?us-ascii?Q?ZU6j8yMC8SsLMMCgXTv7fQRclxcqQMMZbbHZGbU0oaDJWBrBKBqPl3S+vlts?=
 =?us-ascii?Q?YkU1WtiNRpoQBKHgGR0ZLEyVvUR5oDznIm5hnLk+mvTJw+b4kkKcDq7N5Ljg?=
 =?us-ascii?Q?7YZiOzvUzu2eu2kYFisoRwgrvXVqFha9Yp8RpdxUehp2KhEXX2cUrlHBFlvg?=
 =?us-ascii?Q?wrtWcCVy11o2OtYaru+1ph/0QwBcioMU8yMd/Y9rjXFwPEHSZi0ZFSeVtfo3?=
 =?us-ascii?Q?s6PRYqZKPvYUL175QFipZmMh+zfR5A2ucW8ydNKlJcjtxxDwV8nZdrqfPbGU?=
 =?us-ascii?Q?H3JK0q6JAubtwNekif2ByvXPbW6F13EkHpYXgP3ElI0weANVekRAVoEMbJvE?=
 =?us-ascii?Q?YaYsCd5Rf7uEH0xilPyatIo7DjOAmFfJXzDhYu42zPuvRBRC8nLrxTMJ7Vu6?=
 =?us-ascii?Q?i1fyEbVx7fpu5s4f/gB+X4hUiFbkgIJ1Nmlc/dLD/mj1iTCkUsvoUZSvwPQf?=
 =?us-ascii?Q?bYy3Y4eyb3JOMMxt4WHXUgYpfrU8VCX8WKGmIeEp+rRzQiRNej0ZCpjnl19p?=
 =?us-ascii?Q?Bu5qTcx4Z8+vgrTpDFrEIPM83Jyuz5CdatI4QwlEmgxy/H1WIrzy2ouBKtp4?=
 =?us-ascii?Q?8e8m9GG0li/dRVlbONmCAUIbvTwn/SGNdJvMdkjt6GjyYBXrphQg10j0z/Xn?=
 =?us-ascii?Q?xnW3PY7njwzKmnHjORtuIAZicnx3s0ZYRg1Xk0l3KO4WSeeCei7My9laXgPY?=
 =?us-ascii?Q?rRwmmnDCKpBdqIBEWiqz+0cnz1WF78X+9D2OlNO1/MPEw4cCTw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2024 15:03:53.0499
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7c2ca8d4-e87a-41b8-8a4c-08dcff3d64fb
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8301

We have enabled early booting of R82.

Changes from v2 :-
1. Added a new patch "xen/arm: Skip initializing the BSS section when it is empty".
2. Split "xen/arm: mpu: Create boot-time MPU protection regions" into 2 patches.

Changes from v3 :-
1. Removed some of the R-b as the patches have been modified. 

Changes from v4 :-
1. First 3 patches have been committed. Last 3 patches have been rebased.

Ayan Kumar Halder (3):
  xen/arm: mpu: Create boot-time MPU protection regions
  xen/arm: mpu: Enable MPU
  xen/arm: mpu: Implement a dummy enable_secondary_cpu_mm

 xen/arch/Kconfig                     |   2 +
 xen/arch/arm/arch.mk                 |   4 +
 xen/arch/arm/arm64/mpu/Makefile      |   1 +
 xen/arch/arm/arm64/mpu/head.S        | 159 +++++++++++++++++++++++++++
 xen/arch/arm/include/asm/arm64/mpu.h |  25 +++++
 xen/arch/arm/include/asm/mm.h        |   2 +-
 xen/arch/arm/smp.c                   |  11 ++
 xen/arch/arm/xen.lds.S               |   1 +
 8 files changed, 204 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/arm64/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:05:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:05:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831922.1247301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t944R-0007OM-OI; Thu, 07 Nov 2024 15:05:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831922.1247301; Thu, 07 Nov 2024 15:05: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 1t944R-0007OF-Lb; Thu, 07 Nov 2024 15:05:15 +0000
Received: by outflank-mailman (input) for mailman id 831922;
 Thu, 07 Nov 2024 15:05: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=shok=SC=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t944Q-0007O4-FV
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:05:14 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20611.outbound.protection.outlook.com
 [2a01:111:f403:2009::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ae30684d-9d19-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 16:05:10 +0100 (CET)
Received: from BN0PR10CA0010.namprd10.prod.outlook.com (2603:10b6:408:143::14)
 by PH7PR12MB5655.namprd12.prod.outlook.com (2603:10b6:510:138::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Thu, 7 Nov
 2024 15:05:04 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:143:cafe::c3) by BN0PR10CA0010.outlook.office365.com
 (2603:10b6:408:143::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Thu, 7 Nov 2024 15:05:04 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF00004FBA.mail.protection.outlook.com (10.167.243.180) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 15:05:04 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 7 Nov
 2024 09:05:02 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Nov 2024 09:05:01 -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: ae30684d-9d19-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjExIiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImFlMzA2ODRkLTlkMTktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTkxOTEwLjYxMTc0MSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DME6xoVjRXZlvstwq4Zrhxo16w7gPKrHXVheuHarjcXxpaealqr3nptwT8DVDwrPQaZsGcHOV8XfMDl4+K3etxz6OCaD/MlLZZL+i+GfOeloAlMF44GcqjpDM8OfeiBNzpOhY1TbzixEhPUCOMteLe1hFl6rwCeeX/+tki3jWq5rbLGDfcb5/0rCtaeyVGNvGOH+hikl6eboDZGKul32Un4YzwSXUnpLafdQNG0Nz7tq0ftTkiAb9CCLtgWzM5tErBEnqYcaKOz6toUHySC/1i0KPk0h4DNZCcNeLgcG4uokopwJejGTe7EATDJ1IL/Nmgs8QAAz6HPg/XtKOAuUbw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=65rTsyDXUybu7MXHbDYZzPLCUNdM5/rzSPP6wjr9au8=;
 b=inmt3LozASUdzCQDo0JB8YUfCI3OEybTe/heJfmf7nDsxAjWGop6NNFidluGKXfWmmvwq+d8Ko78869MT74X+i3gXrdxkkpSzLA5quwTFSHi7wPOAJTtHDFxZp3XyEKk51i4/6yQ2znqShj6Uy4QrxonHwK8bGLSAIKApW+mlfrojnJTeS3+dvYsUsCpHVWldExWz6T0tTKFbyYF04jaf82LpZ18kzZPxiJqd4UMrB6B6xp3FjszQVfiHKaXVdp5ghMAJ8lt/RweyJltBDqXwRo0xnuVwniOZ+EO7XWU26UIc9Rpg2JELSc18zRJr+Ykr5bxfm6S51fyCEh8Wbqj/A==
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=65rTsyDXUybu7MXHbDYZzPLCUNdM5/rzSPP6wjr9au8=;
 b=Cf7krAZ6FFTbjlL6QIInnim1y0tfcZRwL1OhIbEN2IOa58XWnJdGHo5HYbrzNrdQA0RLx8JrewZUk4yHUVSiCUHgwZTvLI2JyI/pR/L7J5QIvbjeVghbJtNvVqU6UiChQguiBR4HaK8MuA5qWrioHi6UQpKv6cuiGffHicgLl9g=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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 1/3] xen/arm: mpu: Create boot-time MPU protection regions
Date: Thu, 7 Nov 2024 15:03:28 +0000
Message-ID: <20241107150330.181143-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
References: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBA:EE_|PH7PR12MB5655:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e489901-b447-40fe-fe72-08dcff3d8f3c
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?DZcSaOariQJuiwEVdVJjFrytsE5IITo5MjPaXJ07oD/W+ahX2kquNSr9C26L?=
 =?us-ascii?Q?G58N6B78HmBn7du/p64/SItid9E5hHL7vuf39Z2Y1uR+ognDHkphUJrQ8pUn?=
 =?us-ascii?Q?j5koB0jxb5Y5Qkg5j4/qkaLq6HqK2D+oJWLVX+AG9dP0GWwOg2QEMTwILaUM?=
 =?us-ascii?Q?BGUy5gsEdGm9QOZGSyy5zfvr5Gz3j6vdglTXoM2eEUMl+LZSAkjYj62bFI9s?=
 =?us-ascii?Q?seNYVIWDIivXvVazPCYpC762yEZAdMbuLG48uBMdnJMpNxjkACAYVqK1rq34?=
 =?us-ascii?Q?GkZyplQTC4V7V9pJI5k2D07MpaUb8L5wE/kCLCae2PcLcxUc7ZWFG6FB7Efc?=
 =?us-ascii?Q?DBcLOCqpI7IBRisAURqXXy9++ajgIytYVOu89nzhD8B9kVa7UcE2/PS3J7w4?=
 =?us-ascii?Q?0bsC/kQGp1if7pQfPec8fVQVOUjmnYGjZOdiNf69k3ZlU0/2aZJaPMC2VI/6?=
 =?us-ascii?Q?lIqSGOyjPX1CUCKHBWxm7XPAtP5NbZS5ZbVwJCxFE3JKNy8rdYKnW2JNXEjq?=
 =?us-ascii?Q?lYoMIqnAO5jRDzqYKIxdMvQxekm6RoWICecwFWlqKHayl9TB8Bw6XIEqAmD8?=
 =?us-ascii?Q?dO0GYrUE0G2hMO60ytMpT17ogIahpHjGciUCp6bnjKUOCc6ixjy2IWnoFKam?=
 =?us-ascii?Q?uktrrO+CHK1bN57X/R9z9vTj3Xu6A73Y/25rOS8yh57OBNefu/8csZpYzcj/?=
 =?us-ascii?Q?oqPTg8rAySiShXdDnaFbtwB2tSVP5Qj/Ba3lgFT2XRkFY0rUAlzjdZaaghqm?=
 =?us-ascii?Q?1vgDPoMSB5tfUyLXOrtpAhplbvOLieMzEtKsPy81RWNE0Bug+/f05grpmKgs?=
 =?us-ascii?Q?iOtqkXTCa5H1Hv6c18bHedFfsuZ7zeWNZ7WkwqRjMtH8stL8TI/zyKn9jXCf?=
 =?us-ascii?Q?K3Z7yMvCGk/akXuGVbfFqsyxXvB3gqjrXgcR8Ij3Xz8SbB/RhZ7IgXnygMyE?=
 =?us-ascii?Q?sgJi0+OgyNEL8pP5nj/K2g29x+JxZirhvIKofBsLx6mDLk8eLah/wfSL5x43?=
 =?us-ascii?Q?13kkdmHlEdPzdSMVocQtjCaheAdLxVKtuN5QaLE+fYu9NgTCdxB7Hj7NEb3V?=
 =?us-ascii?Q?r1BXrnBNt2UsRmWtJV02APM/2DkydIGyfkvcPEizFByjVsKGRfTCx5aHdG11?=
 =?us-ascii?Q?hedvG9CkNle+WO44Gq551Wn3lLLLMpPQ5HD9j3mQ7lWB1vVlONHCkR70LlFg?=
 =?us-ascii?Q?08f/yAnnvEX6uxJnk82wIMdh3ud9RnH/VDgAvMd01scGgaBcWuEQmiprBMDf?=
 =?us-ascii?Q?nU4yFAEfjjfmnp5tbMs0779wNqu9ZDsWfi2yUIpHllDSYxvpVvHtq333dgLW?=
 =?us-ascii?Q?r2sKdwqpzyUQ3yBOVSQwAib697H+cSARxeyXS506PiFmLoGrT6fLtm/zyz1b?=
 =?us-ascii?Q?/fHI3QKW4TsO1YBbCHJDJ/+19tN94S4AtbWtEGyLWQj4UDj6BA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 07 Nov 2024 15:05:04.0369
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e489901-b447-40fe-fe72-08dcff3d8f3c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF00004FBA.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5655

Define enable_boot_cpu_mm() for the Armv8-R AArch64.

Like boot-time page table in MMU system, we need a boot-time MPU protection
region configuration in MPU system so Xen can fetch code and data from normal
memory.

To do this, Xen maps the following sections of the binary as separate regions
(with permissions) :-
1. Text (Read only at EL2, execution is permitted)
2. RO data (Read only at EL2)
3. RO after init data and RW data (Read/Write at EL2)
4. Init Text (Read only at EL2, execution is permitted)
5. Init data and BSS (Read/Write at EL2)

Before creating a region, we check if the count exceeds the number defined in
MPUIR_EL2. If so, then the boot fails.

Also we check if the region is empty or not. IOW, if the start and end address
are same, we skip mapping the region.

To map a region, Xen uses the PRBAR_EL2, PRLAR_EL2 and PRSELR_EL2 registers.
One can refer to ARM DDI 0600B.a ID062922 G1.3  "General System Control
Registers", to get the definitions of these registers. Also, refer to G1.2
"Accessing MPU memory region registers", the following

```
The MPU provides two register interfaces to program the MPU regions:
- Access to any of the MPU regions via PRSELR_ELx, PRBAR<n>_ELx, and
PRLAR<n>_ELx.
```

We use the above mechanism to create the MPU memory regions.

Also, the compiler needs the flag ("-march=armv8-r") in order to build Xen for
Armv8-R AArch64 MPU based systems. There will be no need for us to explicitly
define MPU specific registers.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from :-

v1 - 1. Fix some of the coding style issues.
2. Reword the help message.
3. Updat the commit message.

v2 - Add clarification for the use of page and page size.

v3 - 1. Add a new file arm64/mpu/mm.c to contain the build assertion for page
size.
2. Enclosed the check for the start address within "#ifdef CONFIG_MPU".

v4 - 1. Increment the region selector in prepare_xen_region
2. Ensure that the first 8 bits of MPUIR_EL2 are read, to determine the maximum
number of supported regions.
3. Remove the inclusion of mm.h. *MPU_REGION* macros have been moved from mm.h
to mpu.h. The reason being mm.h cannot be included in an assembly file.
4. Add the build flags for "Armv8-R AArch64 MPU". As a result, we don't need
to define MPU registers. So, removed
xen/arch/arm/include/asm/arm64/mpu/sysregs.h.

 xen/arch/arm/arch.mk                 |   4 +
 xen/arch/arm/arm64/mpu/Makefile      |   1 +
 xen/arch/arm/arm64/mpu/head.S        | 122 +++++++++++++++++++++++++++
 xen/arch/arm/include/asm/arm64/mpu.h |  25 ++++++
 xen/arch/arm/include/asm/mm.h        |   2 +-
 xen/arch/arm/xen.lds.S               |   1 +
 6 files changed, 154 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/arm64/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 022dcda192..9c4bedfb3b 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -9,7 +9,11 @@ CFLAGS-$(CONFIG_ARM_32) += -msoft-float
 CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
 CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
 
+ifeq ($(CONFIG_MPU),y)
+CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
+else
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
+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/mpu/Makefile b/xen/arch/arm/arm64/mpu/Makefile
index b18cec4836..a8a750a3d0 100644
--- a/xen/arch/arm/arm64/mpu/Makefile
+++ b/xen/arch/arm/arm64/mpu/Makefile
@@ -1 +1,2 @@
+obj-y += head.o
 obj-y += mm.o
diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
new file mode 100644
index 0000000000..37e4b455bb
--- /dev/null
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -0,0 +1,122 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Start-of-day code for an Armv8-R MPU system.
+ */
+
+#include <asm/arm64/mpu.h>
+
+#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 */
+
+#define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
+
+/*
+ * Macro to prepare and set a EL2 MPU memory region.
+ * We will also create an according MPU memory region entry, which
+ * is a structure of pr_t,  in table \prmap.
+ *
+ * Inputs:
+ * sel:         region selector
+ * base:        reg storing base address (should be page-aligned)
+ * limit:       reg storing limit address
+ * prbar:       store computed PRBAR_EL2 value
+ * prlar:       store computed PRLAR_EL2 value
+ * maxcount:    maximum number of EL2 regions supported
+ * attr_prbar:  PRBAR_EL2-related memory attributes. If not specified it will be
+ *              REGION_DATA_PRBAR
+ * attr_prlar:  PRLAR_EL2-related memory attributes. If not specified it will be
+ *              REGION_NORMAL_PRLAR
+ */
+.macro prepare_xen_region, sel, base, limit, prbar, prlar, maxcount, attr_prbar=REGION_DATA_PRBAR, attr_prlar=REGION_NORMAL_PRLAR
+    /* Check if the region is empty */
+    cmp   \base, \limit
+    beq   1f
+
+    /* Check if the number of regions exceeded the count specified in MPUIR_EL2 */
+    cmp   \sel, \maxcount
+    bge   fail_insufficient_regions
+
+    /* Prepare value for PRBAR_EL2 reg and preserve it in \prbar.*/
+    and   \base, \base, #MPU_REGION_MASK
+    mov   \prbar, #\attr_prbar
+    orr   \prbar, \prbar, \base
+
+    /* Limit address should be inclusive */
+    sub   \limit, \limit, #1
+    and   \limit, \limit, #MPU_REGION_MASK
+    mov   \prlar, #\attr_prlar
+    orr   \prlar, \prlar, \limit
+
+    msr   PRSELR_EL2, \sel
+    isb
+    msr   PRBAR_EL2, \prbar
+    msr   PRLAR_EL2, \prlar
+    dsb   sy
+    isb
+
+    add   \sel, \sel, #1
+
+1:
+.endm
+
+/*
+ * Failure caused due to insufficient MPU regions.
+ */
+FUNC_LOCAL(fail_insufficient_regions)
+    PRINT("- Selected MPU region is above the implemented number in MPUIR_EL2 -\r\n")
+1:  wfe
+    b   1b
+END(fail_insufficient_regions)
+
+/*
+ * Maps the various sections of Xen (described in xen.lds.S) as different MPU
+ * regions.
+ *
+ * Inputs:
+ *   lr : Address to return to.
+ *
+ * Clobbers x0 - x5
+ *
+ */
+FUNC(enable_boot_cpu_mm)
+    /* Get the number of regions specified in MPUIR_EL2 */
+    mrs   x5, MPUIR_EL2
+    and   x5, x5, #NUM_MPU_REGIONS_MASK
+
+    /* x0: region sel */
+    mov   x0, xzr
+    /* Xen text section. */
+    ldr   x1, =_stext
+    ldr   x2, =_etext
+    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* 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
+
+    /* Xen code section. */
+    ldr   x1, =__init_begin
+    ldr   x2, =__init_data_begin
+    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen data and BSS section. */
+    ldr   x1, =__init_data_begin
+    ldr   x2, =__bss_end
+    prepare_xen_region x0, x1, x2, x3, x4, x5
+
+    ret
+END(enable_boot_cpu_mm)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
new file mode 100644
index 0000000000..f8a029f1a1
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * mpu.h: Arm Memory Protection Unit definitions.
+ */
+
+#ifndef __ARM64_MPU_H__
+#define __ARM64_MPU_H__
+
+#define MPU_REGION_SHIFT  6
+#define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
+#define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
+
+#define NUM_MPU_REGIONS_SHIFT   8
+#define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
+#define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
+#endif /* __ARM64_MPU_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 5abd4b0d1c..59b774b7b8 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -16,7 +16,7 @@
 
 #if defined(CONFIG_MMU)
 # include <asm/mmu/mm.h>
-#else
+#elif !defined(CONFIG_MPU)
 # error "Unknown memory management layout"
 #endif
 
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index d1e579e8a8..bbccff1a03 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -147,6 +147,7 @@ SECTIONS
        *(.altinstr_replacement)
   } :text
   . = ALIGN(PAGE_SIZE);
+  __init_data_begin = .;
   .init.data : {
        *(.init.rodata)
        *(.init.rodata.*)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:05:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:05:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831923.1247310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t944W-0007em-4G; Thu, 07 Nov 2024 15:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831923.1247310; Thu, 07 Nov 2024 15: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 1t944W-0007ef-1P; Thu, 07 Nov 2024 15:05:20 +0000
Received: by outflank-mailman (input) for mailman id 831923;
 Thu, 07 Nov 2024 15:05: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=shok=SC=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t944U-0007dL-Pw
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:05:18 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20604.outbound.protection.outlook.com
 [2a01:111:f403:2418::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0ee9450-9d19-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:05:15 +0100 (CET)
Received: from SJ0PR13CA0045.namprd13.prod.outlook.com (2603:10b6:a03:2c2::20)
 by IA0PR12MB8280.namprd12.prod.outlook.com (2603:10b6:208:3df::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Thu, 7 Nov
 2024 15:05:09 +0000
Received: from SJ1PEPF00002318.namprd03.prod.outlook.com
 (2603:10b6:a03:2c2:cafe::3a) by SJ0PR13CA0045.outlook.office365.com
 (2603:10b6:a03:2c2::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.14 via Frontend
 Transport; Thu, 7 Nov 2024 15:05:08 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00002318.mail.protection.outlook.com (10.167.242.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 15:05:07 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Thu, 7 Nov
 2024 09:05:07 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Nov
 2024 09:05:05 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Nov 2024 09:05: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: b0ee9450-9d19-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjA0IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImIwZWU5NDUwLTlkMTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkxOTE1LjAzNTEyNSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zG2HohGWpSyX4aVaue0OBpr1WDIw/uAtr6OONtLnR2YOzY6pKAMJIIUA2PW9cig/7zoijKVG2Saf3AwOmXrhWSFwE8bOfJZXPP/aB1X0Bx0AVzowyC9yt1RNchnfXkkAxtr40Uu3aW0AevMCx/wAV5vBHMKaZPCZymyjHeZhTZqyoggvovK9dxo+y7GmQAfFnzk5lZiPgGirc4rjQ1CN/ja1AkAkPY7g429D/ZRdM4yFqTPVgagqVU4jeM0av6oHRksnnuttxQ5TwaMtk5o3xnwkKSrSXqEC6eSWLiH7aArGosE3h32TzxmqZ7UUqqwUy8611143jMmOYuLjdZtqvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iC2GdZCuxuVwaZw2qvbMt7m8oDLf7Amskjm7zxYii5I=;
 b=QvakQ16TsKOmj15y9eNAU1yDysl6F+NBwIMngJTu+7F97ZBBP7tgwFhs5qIG8f5FGa4cYurkWZ2WiYrJrn91MUaitSozVNO0Qh7w8Lcz9tfqR3liyv2bt1hPGyZuSh4ImDbeSYquHZgo9yZn3rFiTHSr+JsiTIqONOIsb4Potg90ipkTHi4Ae8gNU7BLexHYLx/sOmbQgRucNFlhbpPUQ6n+HgHsgYXcRiJ7c9QuKkuByBVp+mWPDLMP4pf+p9yUNVu/ka4UwslIyOxTF9KMY/dwmUzeky+vVcJKvBzBXKl7bmaW4w10AZ1+G+fZzQaCR9r8MIbvLVr8ceymRAZ1gw==
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=iC2GdZCuxuVwaZw2qvbMt7m8oDLf7Amskjm7zxYii5I=;
 b=H8dBc+BTvfW6v30lhc4wL1FDq17zA90QxbyH5wd8nsK/5ORtvI+OdAsuNoWQWFDjHvDda4Y7/kcK70d9Gr3xSYjgzYaZSsXnpfda1r8CcDHhaH9klJdAfgqQamnLH/HZmZIDneCqilnj9VT1VcX9fImIjQ5ZvaaIhnvtSGpt+Ls=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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>, Luca Fancellu <luca.fancellu@arm.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v5 2/3] xen/arm: mpu: Enable MPU
Date: Thu, 7 Nov 2024 15:03:29 +0000
Message-ID: <20241107150330.181143-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
References: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002318:EE_|IA0PR12MB8280:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e5faa20-b652-4a31-38ec-08dcff3d91a9
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?Zu/P9rrT3uaYyihTHUBa+Db5CkACcB50pI8NiZ/mOMMsFnzi7wCzm3p34BJg?=
 =?us-ascii?Q?rxZ+s8H8O7Twak3WpO0EsgagYR0En2viUq/M0Vpuj/gn1rsVBsizWSV/a3Pp?=
 =?us-ascii?Q?RyHwMM1sPvdDK16q4B1l8CeVe7MP9ecM10dUxC5mXmxHi3ut41aa9KibHdcW?=
 =?us-ascii?Q?GwjG/Rn5z/kahoPXKdynjXpJlsDcTyXGiv0lH+SNBC1mCwhAF/Tcp4qM5Kap?=
 =?us-ascii?Q?M55AHVbBgYk7PwP1BzONeJrFGoMMSN5Os/779wJ75kbNTnQ9cBFcWhDrthp2?=
 =?us-ascii?Q?fdBAnofiQhppBYtDTVJZRQpv+S08CJpLb/RL+RN1DVpTmv0Sb6jAdzgfGRT7?=
 =?us-ascii?Q?tFA687mKpAso7XbFytE0S7SJ0dfOuxAusy4cZiaDGakdPwtCKoqUxGAWoFFy?=
 =?us-ascii?Q?xoyz0n3jZN7xxhKidAe3roGfXEfWH65P2uTv71VDlHb8d4CLqfHaIswwZrMY?=
 =?us-ascii?Q?38PPHpqYJr/AvJVv9h/b4iLFja8chIZSkjDHzB8gKdkU1H3ff61EvDfl8oCx?=
 =?us-ascii?Q?Xee5Hbaklz7vecKFv7uqTp7G2/3hSovZ/eVeAkGwjgnr5UFnVt2v9ZWDEFpX?=
 =?us-ascii?Q?ru5T5PNFLcjXCM14qzgZhxUFvjNmQfCn7RG6w3WkgHDneh93oNIESVvnNs/O?=
 =?us-ascii?Q?huZMTr+6fQ/4RPvDYnZjKESOdHnMztBFbvly2dUrFiLKyohull6zLsMGTsPn?=
 =?us-ascii?Q?H5iBTqnWCBgUqy2HYlGsco/FPUviw8beb1z15PuNQHn8T54D2Nz4EyDlEmhL?=
 =?us-ascii?Q?VoG592PpxSWkLxGB46gh743Cnw4TMaEdu6bIyCh/R1xeZ3V2yxmWMC3lCPUl?=
 =?us-ascii?Q?IwwKxxOBBeY5VVGTkWm5lCy9/1HIvmAGxi0fJ0j2yeX4atxA/fMCxtI0LGKa?=
 =?us-ascii?Q?UkQofiZOALyeBwP6TXpysXakQALzOUxBsNETfDAUf8sY0XCh7fgMfy0fLncO?=
 =?us-ascii?Q?f20ieX4PIM5MMwWjUBANH9w4Mv7GhzVZPK5r+58mwRrGnEQ2uO/zBqX0l+8g?=
 =?us-ascii?Q?5jG4JEM+7U07VuXrUt144km5o4F7ytBCZ2LrySQpiREjN/j8deYH2A/lV+S0?=
 =?us-ascii?Q?pwNJRsIN/73qKSfurXdIdJOfHUgBkcgeJDBA6SXgYLR5IcPu34PGl2eFTUkx?=
 =?us-ascii?Q?QR8NMSAFJXz9rq4UnuKBDjwOQE268qHo64F7xTIZDSd/PJSq3WhykEAbnIkg?=
 =?us-ascii?Q?bgAPtWnXYTuk6IZBrR4/BpyR4wOezAAyXgZ+L5j5QMW9oWiS0RnHOz1jrDPT?=
 =?us-ascii?Q?QX61JtiwVbgZg2MkUrZeOywUKr4RFBFHZpH7skerbYvLGKSLPLvxqsTwYJI4?=
 =?us-ascii?Q?lIs3QKSC34cljzn1SBP7T0nm52YJuv3pf6gi7m8w5VmTgJ9Njq/25Qh1q4ZW?=
 =?us-ascii?Q?gYL4N4/LJPXR0dnDm0TqEan4SZRqphOtaHxy0rwdOAp8r5QQ4Q=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 07 Nov 2024 15:05:07.9923
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e5faa20-b652-4a31-38ec-08dcff3d91a9
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002318.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8280

After the regions have been created, now we enable the MPU. For this we disable
the background region so that the new memory map created for the regions take
effect. Also, we treat all RW regions as non executable and the data cache is
enabled.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes from :-

v2 - 1. Extracted from the previous patch into a new one.

2. Disabled background region.

v3 - 1. Removed dsb before setting SCTLR_EL2. The reason being
>From ARM DDI 0487K.a D23-7349:
"Direct writes to these registers (includes SCTLR_EL2) are not allowed to affect
any instructions appearing in program order before the direct write."
So, we don't need a synchronization barrier before writing to SCTLR_EL2.
Further, we do have synchronization barriers after writing the MPU region
registers (which happens before we read SCTLR_EL2). So, SCTLR_EL2 is written
after the MPU registers are synchronized. And, thus adding a 'isb' to flush the
instruction pipeline ensures that the subsequent instructions are fetched after
the MPU has been enabled.

2. Saved and restored lr in enable_boot_cpu_mm().

v4 - 1. Moved the definition of SCTLR_ELx_BR from sysregs.h from head.S. The
reason being sysregs.h does not exist any longer (refer to previous patch for
details) and SCTLR_ELx_BR is used in head.S only.
(I have preserved the R-b abd A-b, let me know if that is ok).

 xen/arch/arm/arm64/mpu/head.S | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index 37e4b455bb..a449aeca67 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -5,6 +5,9 @@
 
 #include <asm/arm64/mpu.h>
 
+/* Backgroud region enable/disable */
+#define SCTLR_ELx_BR    BIT(17, UL)
+
 #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 */
@@ -69,6 +72,29 @@ FUNC_LOCAL(fail_insufficient_regions)
     b   1b
 END(fail_insufficient_regions)
 
+/*
+ * Enable EL2 MPU and data cache
+ * If the Background region is enabled, then the MPU uses the default memory
+ * map as the Background region for generating the memory
+ * attributes when MPU is disabled.
+ * Since the default memory map of the Armv8-R AArch64 architecture is
+ * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
+ *
+ * Clobbers x0
+ *
+ */
+FUNC_LOCAL(enable_mpu)
+    mrs   x0, SCTLR_EL2
+    bic   x0, x0, #SCTLR_ELx_BR       /* Disable Background region */
+    orr   x0, x0, #SCTLR_Axx_ELx_M    /* Enable MPU */
+    orr   x0, x0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
+    orr   x0, x0, #SCTLR_Axx_ELx_WXN  /* Enable WXN */
+    msr   SCTLR_EL2, x0
+    isb
+
+    ret
+END(enable_mpu)
+
 /*
  * Maps the various sections of Xen (described in xen.lds.S) as different MPU
  * regions.
@@ -111,6 +137,7 @@ FUNC(enable_boot_cpu_mm)
     ldr   x2, =__bss_end
     prepare_xen_region x0, x1, x2, x3, x4, x5
 
+    b    enable_mpu
     ret
 END(enable_boot_cpu_mm)
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:05:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:05:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831924.1247316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t944W-0007hh-F1; Thu, 07 Nov 2024 15:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831924.1247316; Thu, 07 Nov 2024 15: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 1t944W-0007gz-99; Thu, 07 Nov 2024 15:05:20 +0000
Received: by outflank-mailman (input) for mailman id 831924;
 Thu, 07 Nov 2024 15:05: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=shok=SC=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t944V-0007O4-0w
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:05:19 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20611.outbound.protection.outlook.com
 [2a01:111:f403:2406::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0e37569-9d19-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 16:05:15 +0100 (CET)
Received: from BN9PR03CA0349.namprd03.prod.outlook.com (2603:10b6:408:f6::24)
 by IA1PR12MB7589.namprd12.prod.outlook.com (2603:10b6:208:42b::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Thu, 7 Nov
 2024 15:05:10 +0000
Received: from BN2PEPF00004FBF.namprd04.prod.outlook.com
 (2603:10b6:408:f6:cafe::d2) by BN9PR03CA0349.outlook.office365.com
 (2603:10b6:408:f6::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.18 via Frontend
 Transport; Thu, 7 Nov 2024 15:05:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF00004FBF.mail.protection.outlook.com (10.167.243.185) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 15:05:09 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 7 Nov
 2024 09:05:09 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Nov
 2024 09:05:08 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Nov 2024 09:05:07 -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: b0e37569-9d19-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNjo6NjExIiwiaGVsbyI6Ik5BTTAyLVNOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImIwZTM3NTY5LTlkMTktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTkxOTE1LjA1OTA1OSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yDVjq3XWmm4foMccpqq1euTtZGCuRZk8EwDrqk793MnTgH/Q0TS8KviT+EEr2xk3VRnreo4vpumIxg1+V8mqhGBrk0QPrjMYfc4v9rv+gC/MJkXPd79D1dwNdSf/A+4cg5k5fWG8xXMahgwsa3YULEonWCovYwGLAzh7zcLdwwErQwp9PHjzQValhQL55gZsbMZRhBUgFm9sx0JZY+KytzHGyxGOOaRVGkXYY+dbL62i9rS0FNAc35UYbHi1R3/cOM7UMvBUqRATM+0wL+fuVDZe/fVNrJwGIUnPJs57L8DoJ0KIKlY7gTQSrACbSKSEe8Dv8A0VgAImcLuTcBZx0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qAQiWvLjbBtQ0a4CEJ8gt3eXVztXmRRY74/RrFG2CcQ=;
 b=dQUtunZGcf1cLMk5S8n4C1z3fpT2jduif1yrS3YICOlQwhhD9n1We/J0N1s2PpYOBA9l7hbLASBYxn+i7i7EpPk084jOUV50+yz87m7nEbVS33zyHEGQivXwj+CHsCkejuPO5QQv/EcW64bffwBPQWVi3FvzEDLPFiNDbzLHpB//EQJU4BRt+7sG0o5dVBzjlAIgpr8md5LiJy+iMyBIU4hdkZHXTR9v+pC31eG4A8J5P1phaU11t862ni1mUUcjh0k+ZtGEBm36UU1AjmUJeueQumwTY1lDFb96lUVDk7+VdvsJMX/RsBsax81Nnr/l0okGjzLG72CazwquP5LyOg==
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=qAQiWvLjbBtQ0a4CEJ8gt3eXVztXmRRY74/RrFG2CcQ=;
 b=FPS30SLMDy9Tq9FitBYKUfPo2gBhbc5Blt8WFBXJ8A7hFG8Ua0a5QhmBOYqlLwl+FQ7tApvHRkXaBeNZQzL2z//Fnuuss2RA4p8nBxj0XHf8B7TRkGPVQWDWN2NfkABjgoJbm/cSCd0K1QuBNztvY6+pZQ8PJa2x1vazvtvgIyE=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 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>, Luca Fancellu
	<luca.fancellu@arm.com>
Subject: [PATCH v5 3/3] xen/arm: mpu: Implement a dummy enable_secondary_cpu_mm
Date: Thu, 7 Nov 2024 15:03:30 +0000
Message-ID: <20241107150330.181143-4-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
References: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBF:EE_|IA1PR12MB7589:EE_
X-MS-Office365-Filtering-Correlation-Id: 13e614b9-e260-4641-f8f0-08dcff3d92aa
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?bC9NMFRFeTdaWmlRMXJaNDZPOWZCakhmaEZCcEF0QytYSElYeVlPV1FyNllj?=
 =?utf-8?B?YUpaK01Nd3ROQ1JKazZWQjJUdzJ6MlFGREh6bEhFV2dCU2x2aFhiWHcrdVNy?=
 =?utf-8?B?Q2pmSW5UQjI1ZVJVUUJHY2FWYjNIVEhuYkFmMXg2ZDJMSkpZTGs2UjBFa3Vm?=
 =?utf-8?B?QlYrOWlWNXlRY296RUhHaXhBd0Vuc2doUUM4ckpwOFNrdm83WXRub0VGcHpU?=
 =?utf-8?B?WG9Yem5rS2tlOVRUbTdkdGdvbDNveGp5dG9qNUwwYTY5M2o1SzZTaXUwTGcz?=
 =?utf-8?B?WGZvZjhzTjExT3BDRTlrWjZ6cmtQcFA2Z2lSR0RSNGFWTFI0WE1Seit1R1RU?=
 =?utf-8?B?cGlzYXl3MGpUUks4dFpnck5iSmlzbkR0ZDdxVm54OWtTUHlLREtsazNnRlpk?=
 =?utf-8?B?SGQrdFZpb2I1N1VRQTBOanVXVDAreUlFOXZHQ045VkoweXg3RVNBWG9ySXJH?=
 =?utf-8?B?STk5UElQcDEyYnp0eUNwaDZoblRiNlhuVDdUNCsrQmVHcnVzcHdrV0lMekNF?=
 =?utf-8?B?MDNDTjNsSG00d3dYNUZPM3h4SW5KMDA5ejNSSVFtOVIxOXRhcHN4N1Y4NURH?=
 =?utf-8?B?UENIQkxjREZQK1d2RGVQT2FuWmVBK0YvNHAxSW5SdXlpSUZ4UDZQQnJGc3o0?=
 =?utf-8?B?THpIdzhiS01heVZNWGtqRjBRK0lZODJUR2ZYRVBjQzhsK2lGcXJGenVHNStx?=
 =?utf-8?B?ZTNCWlZlbnpOaDlkK3pEWkZ3UTV5SnZPNVNJdHN4VU1qbVNOZkZTTzJVNEZ1?=
 =?utf-8?B?YXhkTENGcVZxdi84SWhGYVlqdGI1N3grZDhGQ0RrTU4zd3hCSEI2VDZwclJN?=
 =?utf-8?B?bEFVZjhBSjZpeEwrb1EzNFV2SDh0VFV4TndGRGNKaWtNY0xEeEs4Y0xCYklS?=
 =?utf-8?B?b0wrNGpVY0EvaE5ocVhMTzJVN3BqcEl3MnZsaUdvbVlMMHlGUzhZbi9BTnlz?=
 =?utf-8?B?V3ZadDdXb3MxMG41SEZCMnBlVTl1Z0NpMlVYWWc3anZXYkdOMEV5YllKZ3dE?=
 =?utf-8?B?aHJLUEcxYmtSQ0hldVNqUlhWa2tteG9MUS9wN1Z2R1lXQnNrcUcrcW1TT20r?=
 =?utf-8?B?ZkcvSjQyN3FNbk9DUHh5VUhtaGJtVDBSRnZJbjU5bWFNQWwwMzByaDE5UDRq?=
 =?utf-8?B?cC9kL0ZMdFIvazVYakRGVGl4OUhNSERFM29MMEd3Vy92VmJTVTBFM3Rad0ZK?=
 =?utf-8?B?clJ4UEFFU2dkU1BoQ1RSVW52SGNJZitqZFgrQ2JJQmdQK3dYTkpUVkhIcTI0?=
 =?utf-8?B?SjNxMWtLZ0FnaFI0RWlLSWxoVzVGaTh1ZTcxSDJIcVZVdFFrR25lS2xxbW9r?=
 =?utf-8?B?TWUwTzVLMXRkZ0JKN0c1am9sbVEwanFEcE9LSUxHTWtDZFVvZ2VSaDkzMkRm?=
 =?utf-8?B?RnVQMFVpL0NqcXBtYW1Oa0V0S1p0UEZzYjlSZlBUejlJQlZKZW8zZTlBUlZL?=
 =?utf-8?B?cTI4RmZkM2JqMGpkUFJFZGFoai9qakUycUYwUC91L1Z3Z1JWWlRZcHo0QVhp?=
 =?utf-8?B?NWRlZU1zM2FUZHZEMzRoTWgvL2lsSmhZUUovU1MyaHFjUmhtMGdvcDBHWHBq?=
 =?utf-8?B?eVJZL1BDTmc2MXk3enIrY2VtZlQ5Tjh2V21qWVVpWFEwd0Fid1BiWnlhUDlw?=
 =?utf-8?B?c1FDTmRFZEhoQzJjWmtOeE5TS0R0YUFBN01DOE9NVFRFeDBabGVtbWZ2cHFz?=
 =?utf-8?B?aThmUjh3ZlFqNUw0ejJiUFFzMjNOOFNIZGRHQjNGYUh2K1ZWcUlTVUtrNlJC?=
 =?utf-8?B?WEtvSDNVWGI4UDJYT1NrOHFRSVFodS85T1NWWnJDTEIrU2RYVjRPYWIrTkdp?=
 =?utf-8?B?OEU0MENpRUZoZFNhTEFHSjFudkY0ZkI0TW9jWFd2YmFNK08wMnhXcDErTUdh?=
 =?utf-8?B?MFpHNXhiR3hxbzkxeW1KMVhnT3YreTJERlVWT1ExNVFiQ2c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 07 Nov 2024 15:05:09.7752
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 13e614b9-e260-4641-f8f0-08dcff3d92aa
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF00004FBF.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7589

Secondary cpus initialization is not yet supported. Thus, we print an
appropriate message and put the secondary cpus in WFE state.
And we introduce to BUILD_BUG_ON to prevent users using from building Xen
on multiprocessor based MPU systems.

In Arm, there is no clean way to disable SMP. As of now, we wish to support
MPU on UNP only. So, we have defined the default range of NR_CPUs to be 1 for
MPU.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from :-

v1 - 1. NR_CPUS is defined as 1 for MPU

2. Added a message in enable_secondary_cpu_mm()

v2 - 1. Added the range

2. Clarified in the commit message why/how we have disabled SMP.

v3 - 1. BUILD_BUG_ON() is moved to smp.c.

v4 - 1. Moved "default "1" if ARM && MPUâ€ right after â€œdefault "256" if X86â€.

 xen/arch/Kconfig              |  2 ++
 xen/arch/arm/arm64/mpu/head.S | 10 ++++++++++
 xen/arch/arm/smp.c            | 11 +++++++++++
 3 files changed, 23 insertions(+)

diff --git a/xen/arch/Kconfig b/xen/arch/Kconfig
index 308ce129a8..9f4835e37f 100644
--- a/xen/arch/Kconfig
+++ b/xen/arch/Kconfig
@@ -6,8 +6,10 @@ config PHYS_ADDR_T_32
 
 config NR_CPUS
 	int "Maximum number of CPUs"
+	range 1 1 if ARM && MPU
 	range 1 16383
 	default "256" if X86
+	default "1" if ARM && MPU
 	default "8" if ARM && RCAR3
 	default "4" if ARM && QEMU
 	default "4" if ARM && MPSOC
diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index a449aeca67..731698aa3b 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -141,6 +141,16 @@ FUNC(enable_boot_cpu_mm)
     ret
 END(enable_boot_cpu_mm)
 
+/*
+ * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
+ * please the common code.
+ */
+ENTRY(enable_secondary_cpu_mm)
+    PRINT("- SMP not enabled yet -\r\n")
+1:  wfe
+    b 1b
+ENDPROC(enable_secondary_cpu_mm)
+
 /*
  * Local variables:
  * mode: ASM
diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
index c11bba93ad..b372472188 100644
--- a/xen/arch/arm/smp.c
+++ b/xen/arch/arm/smp.c
@@ -1,4 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
+#include <xen/init.h>
 #include <xen/mm.h>
 #include <asm/system.h>
 #include <asm/smp.h>
@@ -6,6 +7,16 @@
 #include <asm/gic.h>
 #include <asm/flushtlb.h>
 
+static void __init __maybe_unused build_assertions(void)
+{
+#ifdef CONFIG_MPU
+    /*
+     * Currently, SMP is not enabled on MPU based systems.
+     */
+    BUILD_BUG_ON(NR_CPUS > 1);
+#endif
+}
+
 void arch_flush_tlb_mask(const cpumask_t *mask)
 {
     /* No need to IPI other processors on ARM, the processor takes care of it. */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:08:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831955.1247331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9480-0001Io-Tm; Thu, 07 Nov 2024 15:08:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831955.1247331; Thu, 07 Nov 2024 15: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 1t9480-0001Ih-QH; Thu, 07 Nov 2024 15:08:56 +0000
Received: by outflank-mailman (input) for mailman id 831955;
 Thu, 07 Nov 2024 15:08: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t947z-0001Ib-OB
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:08:55 +0000
Received: from sender3-of-o59.zoho.com (sender3-of-o59.zoho.com
 [136.143.184.59]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31c3e7d0-9d1a-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 16:08:51 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730992124005463.56805739058893;
 Thu, 7 Nov 2024 07:08: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: 31c3e7d0-9d1a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg0LjU5IiwiaGVsbyI6InNlbmRlcjMtb2YtbzU5LnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxYzNlN2QwLTlkMWEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTkyMTMyLjI1MjI5LCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1730992126; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=WjZS1+1JGHtrkOwzTZT5R6DsIKJilWtlfqoU+DMscyvBB5qonaIEbO8VlptOfgR6BTwuDMh2mWSfacwC1Axo0oPtiBgp1LByOf4QoU4sFFpRjH1sf18toVUDETZzUuoPsMxgC/IRYSHv7rTQdnfDdRO39qRxngGpUbR8sCSEIkw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730992126; 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=KSjlVB/tCxG/hK6mCg5S2Bydfu62JEN8jSgv282MD+0=; 
	b=X3lKTXtGu4FSK0oA1hm8hRYv+l/GX9MkEgpb2JIZvTwJeLm7jE4hMLpZ5s3bIu9x4lZM/r2ROcaT4dEn7yQo8BTGQACe0+0dMxzxGdwGVClFzsCu59x8UeCS3bMsg3rJsTloPZ/xva2KwM+Da2BCRVs2ViGtgtspOmCUxBQJImM=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730992126;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=KSjlVB/tCxG/hK6mCg5S2Bydfu62JEN8jSgv282MD+0=;
	b=tlOroXzDUwwdHCh9+ljeQLzA/aebjcd9D58WTsJpuB1I03CZdra69k21NDt5DNN2
	2AoBHDJY/Qz6eO9Vh0M/siKhnxjT0d3wvAicwJDzyNdBpdWz/Wi8M9kGai1w4aeC/4J
	vCklvUrnfGmFRA8xPA+JxcAX9eDG/xbFMHoD1ctI=
Message-ID: <bc6dab85-75a6-4bb2-83cc-884bc07650f5@apertussolutions.com>
Date: Thu, 7 Nov 2024 10:08:37 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: Jan Beulich <jbeulich@suse.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
 <d32a3eb9-c0cb-4f87-9f88-4fc0d32cf1e8@suse.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <d32a3eb9-c0cb-4f87-9f88-4fc0d32cf1e8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/7/24 05:05, Jan Beulich wrote:
> On 02.11.2024 18:25, Daniel P. Smith wrote:
>> --- a/xen/arch/x86/cpu/microcode/core.c
>> +++ b/xen/arch/x86/cpu/microcode/core.c
>> @@ -790,15 +790,13 @@ static int __init early_microcode_load(struct boot_info *bi)
>>   
>>       if ( opt_scan ) /* Scan for a CPIO archive */
>>       {
>> -        for ( idx = 1; idx < bi->nr_modules; ++idx )
>> +        for_each_boot_module_by_type(idx, bi, BOOTMOD_UNKNOWN)
>>           {
>> +            struct boot_module *bm = &bi->mods[idx];
> 
> pointer-to-const? You really want to get used to applying const to pointed-to
> types whenever possible. IOW ...

Yes, I have been trying to be more diligent to add them when possible. 
To the point that I have had to unwind some due to writes that must be 
done in later function calls they get passed. Obviously this is not one 
of those case and can fix this one.

>> --- a/xen/xsm/xsm_policy.c
>> +++ b/xen/xsm/xsm_policy.c
>> @@ -33,22 +33,18 @@
>>   int __init xsm_multiboot_policy_init(
>>       struct boot_info *bi, void **policy_buffer, size_t *policy_size)
>>   {
>> -    int i;
>> +    unsigned int i;
>>       int rc = 0;
>>       u32 *_policy_start;
>>       unsigned long _policy_len;
>>   
>> -    /*
>> -     * Try all modules and see whichever could be the binary policy.
>> -     * Adjust module_map for the module that is the binary policy.
>> -     */
>> -    for ( i = bi->nr_modules - 1; i >= 1; i-- )
>> +    /* Try all unknown modules and see whichever could be the binary policy. */
>> +    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
>>       {
>> -        if ( !test_bit(i, bi->module_map) )
>> -            continue;
>> +        struct boot_module *bm = &bi->mods[i];
> 
> ... same here (and likely elsewhere in the series).

Nope, you can't const this one as that will cause this is at the tail 
end of the loop to fail:

+            bm->type = BOOTMOD_XSM_POLICY;

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:14:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:14:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831973.1247341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94DL-0002rH-JR; Thu, 07 Nov 2024 15:14:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831973.1247341; Thu, 07 Nov 2024 15:14: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 1t94DL-0002rA-Ff; Thu, 07 Nov 2024 15:14:27 +0000
Received: by outflank-mailman (input) for mailman id 831973;
 Thu, 07 Nov 2024 15:14: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t94DK-0002r4-2y
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:14:26 +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 f7936326-9d1a-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:14:22 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43155afca99so12828275e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:14: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-432b05e5bddsm28038725e9.38.2024.11.07.07.14.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 07:14: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: f7936326-9d1a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY3OTM2MzI2LTlkMWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyNDYyLjI1MTQ5Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730992461; x=1731597261; 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=c5h7gu01U4ciFqAZdnOd9/Q6V7zCCLDtQan6smJx2Ps=;
        b=EPnLmLoVl/FhIVsFKojph+ezv4NgpYWXdwRcPvVyTEGYsRS/DZRbjPHayKxYwGrADm
         LWtnhXKqGs+xiJcqnqhhChWSz5uqR49WElVacqEI9hUTZ3Cin+OWeaAX+3BLT3MH6Uri
         bAut32ehJdHjraAl5UaukAcLMV5q5/vrEXaWO30VE/ZLAiRsRLjl3lFY1pYBxh1yHuDB
         lC+EOcbaFwAyYB81Cw+AK0kpbSwuQplwOWfklZlrHpBrHxMbrSj0G1GJgzT1amGn/bkA
         fqAMo9uy8ze4GUAyT74d5m+XcR3h56dtyg14Gsbr4CMFl+XKRXXcJKOpXFuVK++deSk1
         cVyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992461; x=1731597261;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c5h7gu01U4ciFqAZdnOd9/Q6V7zCCLDtQan6smJx2Ps=;
        b=QscP9dtpESygU75kRMVWavZk+aXAveIX91iPz28zp9VxH5T5CNeLwC7LYrEqCRWK7g
         geotr2ORrM2pzhvO+r2lC2i4nluVd+uH4Nv5Oej2LANuGrrs+DapBJM5K/uJGLrPTEHt
         EqGaoeaDRR++Mqz45i2Is2LH3mBGDM45Wpdhe3J2CAGBK5k5K67O0MuYQIsg+jmnEi3b
         eiaCsM9JcKXr1svbhNp8PQ1txr+1JPcfDFYod7TgsMzasvQVlyE/kPZWowtXw8H6VpVY
         VKwaTCqS99DiYnkUCP71qqBVZ5bcHxf4NmDCVh6KDxiyr2IvWeuJGqh+Q/SqmXzJaBtn
         YPjw==
X-Forwarded-Encrypted: i=1; AJvYcCXDexHtM8xb75BdvTngrsOolufTiAta+sDz5Emyt1xrtVVBbxx7dspSFvTtqFWMXWLwTmNpcT3N4HY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIJwkbviUY00ob9K63Z0BKmFRk8Mm4P/mgORpHH88YAZkWGJt/
	cHADwPngRqvVvYWlgthfKrWja/kvgncIyYzP6p4Ij/wDphcoEPbBVqYCjpVp6w==
X-Google-Smtp-Source: AGHT+IGruvmNgTCICTjRuqz68/jR5OG+DgCulzYM6z7z86vuCUSpF1nJySr9UsFrrY3VxQ2W6D5aGg==
X-Received: by 2002:a5d:64a9:0:b0:374:c7cd:8818 with SMTP id ffacd0b85a97d-381f0ae8885mr294595f8f.22.1730992461520;
        Thu, 07 Nov 2024 07:14:21 -0800 (PST)
Message-ID: <0cd98d20-9377-479a-8f24-ebfdbfceda8f@suse.com>
Date: Thu, 7 Nov 2024 16:14:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: prevent addition of .note.gnu.property if
 livepatch is enabled
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241107145952.73403-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: <20241107145952.73403-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 15:59, Roger Pau Monne wrote:
> GNU assembly that supports such feature will unconditionally add a
> .note.gnu.property section to object files.  The content of that section can
> change depending on the generated instructions.  The current logic in
> livepatch-build-tools doesn't know how to deal with such section changing
> as a result of applying a patch and rebuilding.
> 
> Since .note.gnu.property is not consumed by the Xen build, suppress its
> addition when livepatch support is enabled.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

Just one thing though:

> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -26,6 +26,12 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVPCID)
>  $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR)
>  $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD)
>  
> +# Disable the addition of a .note.gnu.property section to object files when
> +# livepatch support is enabled.  The contents of that section can change
> +# depending on the instructions used, and livepatch-build-tools doesn't know
> +# how to deal with such changes.
> +$(call cc-option-add,CFLAGS-$(CONFIG_LIVEPATCH),CC,-Wa$$(comma)-mx86-used-note=no)
> +
>  # Check to see whether the assmbler supports the .nop directive.
>  $(call as-option-add,CFLAGS,CC,\
>      ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)

I don't really like this being squashed between two as-option-add invocations.
Can this be moved down, e.g. before or after the XEN_IBT chunk? Happy to move
while committing ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:15:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:15:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831980.1247351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94EG-0003Np-So; Thu, 07 Nov 2024 15:15:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831980.1247351; Thu, 07 Nov 2024 15:15: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 1t94EG-0003Ni-Ob; Thu, 07 Nov 2024 15:15:24 +0000
Received: by outflank-mailman (input) for mailman id 831980;
 Thu, 07 Nov 2024 15:15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94EF-0002r4-BS
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:15:23 +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 1a0ba618-9d1b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:15:20 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso182704666b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:15:20 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4a4cbsm106948666b.62.2024.11.07.07.15.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:15: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: 1a0ba618-9d1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFhMGJhNjE4LTlkMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyNTIwLjAyNDIxNiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730992519; x=1731597319; 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=IpdSP4ns8MXGdRIB2QmldxTpAvwYCXDF1K6TA3gwK0o=;
        b=EwMB5+LQFpsyWFPMdIFL5D5D6uErGdJlqZRdD6lRRZLKTnQ6Xa3MjFK+PQgzqmSoaZ
         hVT6GF+ofO0aTm2gCRnTl47KMfl6R6Wo75MfThLftEnfNLs8VQcYWT6DJA19UHtERK+U
         2Yr5sVbc+7V/pW1dgptt5EiNre7N8i1ZF5FJ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992519; x=1731597319;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=IpdSP4ns8MXGdRIB2QmldxTpAvwYCXDF1K6TA3gwK0o=;
        b=FcjlnazqTrrgNR/6agmFqmSYVAeYIX0lbxT80rWsGyxjR4HKvxJ0VkYJ4++z7kbLcp
         EUAOvo6o5Cv2siZF6Tqb5M2YSBpcqkC0ODesfnBn486P81KTuYYQMc2fxamLHpMaADPy
         1BKzlXkKuKmdla62tJdJo5pDhAsAvzG+rwf/llfsTJLFsx7YSWDET69lEq8hdm7YhztN
         HH+g6oFSGbfUqdS8Pjx7+/CxCr526pF78qF95LDRo71k5rokugGMYJ620SV4t/Kv55xh
         bIh/K/sFUHlqThdo+SH3ouyXx8pZW4toDZHB5WZwt8JAQH1BdyLT0ZA+yWf1zgZcYURy
         YsVA==
X-Gm-Message-State: AOJu0YzIL9DpC8tSJTK2WrHBwGWJY0uvFpKGzDfdjJW4EDK2RiUz6K9x
	CuyUG1tjt4Ba8Q3DSsuU4puXCnMbVdsC61U7eJ0awPiDYRDlliUr7KXGEhRR3zuDUhVeL3Ulj+k
	1
X-Google-Smtp-Source: AGHT+IECOrdk6KT+2gGI9vgWmR3uk53Ky40Huv2lySL1UBNAfjAhOL87GAP/tRc4/6u8KKoWw/ORGg==
X-Received: by 2002:a17:907:d09:b0:a9a:10c9:f4b8 with SMTP id a640c23a62f3a-a9eeb58a509mr25229866b.61.1730992519198;
        Thu, 07 Nov 2024 07:15:19 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: konrad.wilk@oracle.com,
	ross.lagerwall@citrix.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 0/4] livepatch-build-tools: fix for livepatch hooks
Date: Thu,  7 Nov 2024 16:15:05 +0100
Message-ID: <20241107151509.73621-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

First two patches in the series are misc (IMO trivial) fixes.  Last two
patches fix the usage of hooks.

Thanks, Roger.

Roger Pau Monne (4):
  livepatch-build: allow patch file name sizes up to 127 characters
  create-diff-object: update default alt_instr size
  create-diff-object: don't include symbols for .livepatch.hooks.*
    sections
  create-diff-object: also include relas that point to changed sections

 create-diff-object.c | 14 +++++++++-----
 livepatch-build      |  5 +++--
 2 files changed, 12 insertions(+), 7 deletions(-)

-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:15:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:15:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831983.1247361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94EZ-0003pe-3g; Thu, 07 Nov 2024 15:15:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831983.1247361; Thu, 07 Nov 2024 15:15: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 1t94EZ-0003pX-0G; Thu, 07 Nov 2024 15:15:43 +0000
Received: by outflank-mailman (input) for mailman id 831983;
 Thu, 07 Nov 2024 15:15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94EW-0002r4-Up
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:15:40 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 244944b6-9d1b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:15:37 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2fb587d0436so11680141fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:15:37 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7f2b8sm897146a12.32.2024.11.07.07.15.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:15: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: 244944b6-9d1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1sajEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI0NDk0NGI2LTlkMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyNTM3LjE2NTA2NSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730992536; x=1731597336; 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=+wQGyOib1tQTUTkaoHf6X8ibGsUQOPP4unQmWIurJ8s=;
        b=RegTc60iWuBCbA054XGBNIj4WHyY0UaVvVSaeyzg6pcst/zDasNeeZ7zkNjSNDd87u
         nfYExE2YgksgIzUo4NyYJhKSDo5+1/1yzXPe1uo9ZcmfQzTDiKXY+MMkej8st12GVc/l
         kxR1S4Ep1MwE+naUM8EiavI5ztq7hVWexs3q4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992536; x=1731597336;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+wQGyOib1tQTUTkaoHf6X8ibGsUQOPP4unQmWIurJ8s=;
        b=Qk2/XJHtOY6aY5Z6xPH8l/B/RdD6VTN7FMXevETE6De8Y+0UxXCdPhRXiMIptz4Ytw
         gBCS8jdd2CPAAWRIMad1QPcSE7eaJMutRUsg4H62lXXGBnIL8hxSY+ehJ1C5VRHTWhXW
         O9YOIu2Fk4y7asTeKdfU0S+oMhsyXy5sX2G7Aoe48Cg1RAyBEFIb2zkYOvKBIRE4diBh
         9cTRvEmY/HIg/oJbOwepNc8PrsaCPNGKXzuJLynRMX2Dtf7Lg8TPSKRRXBFy+hXH2Qxn
         nw885Y6eGpbpE4iUrqZSW6IOX4mHhMvczImwwfkhrW5eUWR35t03M/2VVLXWOKT4s0OU
         LefA==
X-Gm-Message-State: AOJu0Yxzt5vjm56AXXlgKCDaspjUUk9pZwwhcDVNDRkBRlALyskskTPu
	Wwl9xJWyHDNzWS0c8ZaqiPQq2YSuhDWgQioK8zP90C0DDs9Wc24JBa37VnCa+ns9tECMFvA6ZuE
	Q
X-Google-Smtp-Source: AGHT+IFDvWRuY+wFU1pUnNG9Wy15ukLVuf8w4hxEiiOJfzS7M7ZxSt6woPtnTQFsyngilw7x3Q9Bqw==
X-Received: by 2002:a05:651c:247:b0:2fa:ccae:d1d3 with SMTP id 38308e7fff4ca-2fedb7a218amr135454981fa.11.1730992536245;
        Thu, 07 Nov 2024 07:15:36 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: konrad.wilk@oracle.com,
	ross.lagerwall@citrix.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 1/4] livepatch-build: allow patch file name sizes up to 127 characters
Date: Thu,  7 Nov 2024 16:15:06 +0100
Message-ID: <20241107151509.73621-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241107151509.73621-1-roger.pau@citrix.com>
References: <20241107151509.73621-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

XenServer uses quite long Xen version names, and encode such in the livepatch
filename, and it's currently running out of space in the file name.

Bump max filename size to 127, so it also matches the patch name length in the
hypervisor interface.  Note the size of the buffer is 128 characters, and the
last one is reserved for the null terminator.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Take into account the null terminator.
---
 livepatch-build | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/livepatch-build b/livepatch-build
index 948b2acfc2f6..f3ca9399d149 100755
--- a/livepatch-build
+++ b/livepatch-build
@@ -72,8 +72,9 @@ function make_patch_name()
     fi
 
     # Only allow alphanumerics and '_' and '-' in the patch name.  Everything
-    # else is replaced with '-'.  Truncate to 48 chars.
-    echo ${PATCHNAME//[^a-zA-Z0-9_-]/-} |cut -c 1-48
+    # else is replaced with '-'.  Truncate to 127 chars
+    # (XEN_LIVEPATCH_NAME_SIZE - 1).
+    echo ${PATCHNAME//[^a-zA-Z0-9_-]/-} |cut -c -127
 }
 
 # Do a full normal build
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:15:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:15:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831986.1247371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94Ea-00044b-Av; Thu, 07 Nov 2024 15:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831986.1247371; Thu, 07 Nov 2024 15: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 1t94Ea-00044S-7U; Thu, 07 Nov 2024 15:15:44 +0000
Received: by outflank-mailman (input) for mailman id 831986;
 Thu, 07 Nov 2024 15:15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94EZ-0002r4-E6
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:15:43 +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 262c7c07-9d1b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:15:40 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso182766766b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:15:40 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc577fsm105065666b.93.2024.11.07.07.15.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:15: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: 262c7c07-9d1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI2MmM3YzA3LTlkMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyNTQwLjM1MDg4OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730992539; x=1731597339; 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=esNbhQqTrLxjjeO/Fjv64wjBfsHTSsTnJcFIKd2KO/E=;
        b=VMiUTWH+lh6tqfdVMEdob1F4dG4u1/b4hYWYHefBz5OMWR5fWZMiRNiM8QyTRpu7fB
         oOsKDsaYU27LtuVLOXaS3uVfDwuwSqVyBjP5f9htfw+wzDk9de9p63g+Y7uQCQHBzFfm
         JqDKfVFwNahxn/6UvD6SImIVpKIAh9xianLFY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992539; x=1731597339;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=esNbhQqTrLxjjeO/Fjv64wjBfsHTSsTnJcFIKd2KO/E=;
        b=jlrzrTBa6XMUdGLXSsaTs2tFKUjo8u5/Jc+UAKWSWffwtDM4/v9N3S2aGhTUXpLBJQ
         qNfmGdVT/HGO8f4r6BmJddsTwRRwbDsdVTPCLT6bPtZLluW8tTOQA5t4+euTg2dypNhf
         u3piPtLsUHwCAQx8eLWormIXLzD313nOHjvkNIhSOWrDNcGrsPt1FfR1wJgNTMMUxUEA
         LkAkVU+ymza1vOlUtKARlkBdkajDnXt07kjnS6X8GDJnD1LbgmrtSH1aK3zqlJoqpO0r
         sNd+XIJxMZGp67IlbtaqOJv+p83C1UDEXTyiqoDzn1nexbtmiBJbC8GgjsDWF3lXc16o
         8pvw==
X-Gm-Message-State: AOJu0YwOQ/j5BNbRAIFrXUgqq/nUiMC1mFokBzkANMm3v0M1bCn8w8H4
	6r60LAfn7hwE97gIP//dWJmssCSeFZze/xFPvlEoejzYuDlFuwwbdPS0OEEj+zSlO0udTpCPFnv
	1
X-Google-Smtp-Source: AGHT+IFGGHxjWVRiTS9h+iQ0FBRCyQVa00MB3gGIgAdh3O6Ttgjh4FyWdGEZbf9AErzCWO2quu11jw==
X-Received: by 2002:a17:907:ea6:b0:a9a:3ca0:d55a with SMTP id a640c23a62f3a-a9eeb51b547mr26028366b.57.1730992538574;
        Thu, 07 Nov 2024 07:15:38 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: konrad.wilk@oracle.com,
	ross.lagerwall@citrix.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 2/4] create-diff-object: update default alt_instr size
Date: Thu,  7 Nov 2024 16:15:07 +0100
Message-ID: <20241107151509.73621-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241107151509.73621-1-roger.pau@citrix.com>
References: <20241107151509.73621-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The size of the alt_instr structure in Xen is 14 instead of 12 bytes, adjust
it.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 create-diff-object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/create-diff-object.c b/create-diff-object.c
index fed360a9aa68..d8a2afbf2774 100644
--- a/create-diff-object.c
+++ b/create-diff-object.c
@@ -1000,7 +1000,7 @@ static int altinstructions_group_size(struct kpatch_elf *kelf, int offset)
 	char *str;
 	if (!size) {
 		str = getenv("ALT_STRUCT_SIZE");
-		size = str ? atoi(str) : 12;
+		size = str ? atoi(str) : 14;
 	}
 
 	log_debug("altinstr_size=%d\n", size);
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:15:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:15:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831987.1247375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94Ea-00046v-Li; Thu, 07 Nov 2024 15:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831987.1247375; Thu, 07 Nov 2024 15: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 1t94Ea-00046M-Fl; Thu, 07 Nov 2024 15:15:44 +0000
Received: by outflank-mailman (input) for mailman id 831987;
 Thu, 07 Nov 2024 15:15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94EZ-0002r4-PR
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:15:43 +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 267592fd-9d1b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:15:40 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5c9693dc739so1544972a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:15:40 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7f680sm892182a12.35.2024.11.07.07.15.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:15: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: 267592fd-9d1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI2NzU5MmZkLTlkMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyNTQwLjgzMzg4Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730992540; x=1731597340; 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=isWwW9X0NWcagZExhydjq1zaUhOWH5R4bKfYKSQjzPQ=;
        b=cwBXLG9/4LpTjizgBSX3Bc4xCDELIeke9QnzusbXcEhLh3xCjJ4I39TNJIZo8H4BIZ
         kTRPnVR8Ipq0KSzZAwSk2JC3iZ81SMRhSmKfdoL9V6kkuzFzuBfyKa3Ck/GqlRuPdcFR
         UZEgnY0UgHhFBCzamZORZSw/XLYGcQ5RhqgZ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992540; x=1731597340;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=isWwW9X0NWcagZExhydjq1zaUhOWH5R4bKfYKSQjzPQ=;
        b=O1BaIZuDZ+QVs1dPFCdZLTWEwtZtDxForZ3JU3+9aPUkZMRYres5+8Gv5U2RHLn/pj
         WMPXaqidRZ4cJO+//704C8xiwpPp+G+ft9IWNtu0ZpNPhwVSiZjl5Qfk2IMhzeUaegVR
         GrkwLR8HsFGWnI/DG6HiMMaWgJltkv0yRm6Fe8cmOTZjWxQo3WIS6opVbGZxoDT+nSsH
         Z8yRpUAsqLb3vgvWQ4Q3tdAI3XhbTuG6EuQyR8DSUf+tdenfIy/geyBajx3PiEd4/6is
         AFr3vo/F0AodUxs9rNXrkhBVFEpET3edlwt/BseE2hSowHEufnZUBUE/r6k0e5KWSQAK
         dM6w==
X-Gm-Message-State: AOJu0YxFV5ahh2to77h/LT5YGcQIFK23JjJFjN0mjmCEYrcAz6evyaQB
	48MvDmb/ar/+K+9XU4uS0S2Hs9dZPwyOw1HvpExYcyKHUiyzKalI979hphiMQbFCTKpIeT5LXzD
	v
X-Google-Smtp-Source: AGHT+IH3O6PHb8bjkcu93G7LpE9tkqRjpgm2ayxjyhVT6hkJH/Mmc8BYk0hy1OIqDB1+t1MocQHAIg==
X-Received: by 2002:a05:6402:2814:b0:5cf:757:f493 with SMTP id 4fb4d7f45d1cf-5cf0757f53dmr836498a12.24.1730992539925;
        Thu, 07 Nov 2024 07:15:39 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: konrad.wilk@oracle.com,
	ross.lagerwall@citrix.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 3/4] create-diff-object: don't include symbols for .livepatch.hooks.* sections
Date: Thu,  7 Nov 2024 16:15:08 +0100
Message-ID: <20241107151509.73621-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241107151509.73621-1-roger.pau@citrix.com>
References: <20241107151509.73621-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Not all toolchains generate symbols for the .livepatch.hooks.* sections,
neither those symbols are required by the livepatch loading logic in Xen to
find and process the hooks.  Hooks in livepatch payloads are found and
processed based exclusively on section data.

The unconditional attempt to expect each hook serction to have a matching
symbol leads to a segmentation fault in create-diff-object when such symbol is
not present, as the code references a NULL pointer.

Fix this by not attempting to include symbols associated with hook sections.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 create-diff-object.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/create-diff-object.c b/create-diff-object.c
index d8a2afbf2774..924059a1842b 100644
--- a/create-diff-object.c
+++ b/create-diff-object.c
@@ -1555,8 +1555,6 @@ static int kpatch_include_hook_elements(struct kpatch_elf *kelf)
 				sym->sec->sym = NULL;
 				/* use section symbol instead */
 				rela->sym = sym->sec->secsym;
-			} else {
-				sec->secsym->include = 1;
 			}
 		}
 	}
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:15:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.831989.1247391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94Ec-0004ao-Se; Thu, 07 Nov 2024 15:15:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 831989.1247391; Thu, 07 Nov 2024 15:15: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 1t94Ec-0004aU-Oq; Thu, 07 Nov 2024 15:15:46 +0000
Received: by outflank-mailman (input) for mailman id 831989;
 Thu, 07 Nov 2024 15:15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94Eb-0003oI-Ct
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:15:45 +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 27b7f558-9d1b-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 16:15:43 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5cedf5fe237so1288439a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:15:43 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17678sm105578466b.10.2024.11.07.07.15.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:15: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: 27b7f558-9d1b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3YjdmNTU4LTlkMWItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTkyNTQzLjA3NTE0Miwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730992542; x=1731597342; 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=XoiNjgms/M7CWzojeRA9q51b8yyw2BKqNf2L0rfvMh8=;
        b=NWUGG7m/RIDce28t98IW3bFqSGLgsKfgFkLmRB4Yrmp2zU8MvlDWVIZD61m0+xyCZ6
         NRhWTHO3KgKOx4xT30zkdfAMax4+cTYbUcxkSwK1BnPG7TVSlDOABZd28VrTA04Qn3jD
         0933BNToepSfojI4uUDP2lYljrqVafeYPnSig=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992542; x=1731597342;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=XoiNjgms/M7CWzojeRA9q51b8yyw2BKqNf2L0rfvMh8=;
        b=tYeOf6Xyvu6ZTB7x6hm1D0/AWRD+L62yE4N0zn9awV1FvxyNkC2DM9htdOwEOvL7tL
         VXGs8I3bvHW3ZAL+zbGp9VXq9XCPNrRis2qpOz/SeEg9FVhhI05dy5CTx1/Atx13rcm0
         jJXQFDWR2qLLNcK8rERk5MiyaTucDxYpUOr2q/p6g0yRNzDwouZOXN0qLjPW07KiQVEo
         4waI4ncyDfVNUfrYt6zIFAm2/qwS8gZ5gmIKuvscZvw34WPDiQBPqGpuX4wl2xFDUPwX
         AnLxEoS2xK5mPkgNftZVppSXNJsoTokPA4eTLm9A/jqHnJnDq+t/30Vh6vIyEB8kZxPj
         CMmw==
X-Gm-Message-State: AOJu0Yw5CLqiyGOviJN88JJO7v+bNhVV+rFLaILApgc+pKQGXLP958Ab
	9XhRlh/iaGp7rO3MvrAHAYmFlxPQiEShNjYdroPw3nTMUIUIsy5CXk3SvxfyuKhRTa/C0wG6IbS
	p
X-Google-Smtp-Source: AGHT+IEnh9Qz4SbUeRjvVHrxBsM7u1e/LqXNY5W2RAoK1Lmokyfoh+I1mSpvdEeZOf1+y0Jdl2IJdA==
X-Received: by 2002:a17:907:97d6:b0:a9a:673f:4dcc with SMTP id a640c23a62f3a-a9e6557d76amr2279855066b.22.1730992542131;
        Thu, 07 Nov 2024 07:15:42 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: konrad.wilk@oracle.com,
	ross.lagerwall@citrix.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 4/4] create-diff-object: also include relas that point to changed sections
Date: Thu,  7 Nov 2024 16:15:09 +0100
Message-ID: <20241107151509.73621-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241107151509.73621-1-roger.pau@citrix.com>
References: <20241107151509.73621-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

create-diff-object has a special handling for some specific sections, like
.altinstructions or .livepatch.hooks.*.  The contents of those sections are in
the form of array elements, where each element can be processed independently
of the rest.  For example an element in .altinstructions is a set of
replacement coordinates, with the layout specified by the alt_instr struct.  In
the case of .livepatch.hooks.* each element is a pointer to a hook function to
call.

The contents of this array is processed element wise, so that
create-diff-object can decide whether the element relates to the content in the
livepatch and thus needs keeping.  Such relation is driven based on the
contents of the relocations for the special sections.  If a relocation to be
applied to a special section element depends on any symbol to be included in
the livepatch then the special element is also considered required and thus
added to the livepatch contents.

However relocations don't always reference function type symbols, they can also
reference sections type symbols, and that's usually the case with hook symbols
that have relocations based on section symbols, as an example:

RELOCATION RECORDS FOR [.livepatch.hooks.load]:
OFFSET           TYPE              VALUE
0000000000000000 R_X86_64_64       .text.foobar

Symbol information for .text.foobar:

0000000000000000 l    d  .text.foobar      0000000000000000 .text.foobar

As seen above, the .livepatch.hooks.load relocation uses a non-function symbol,
which given the current code in should_keep_rela_group() would mean it's not
considered for inclusion in the livepatch.

Fix this by allowing should_keep_rela_group() to also keep relocations if they
either point to function or section symbols.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 create-diff-object.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/create-diff-object.c b/create-diff-object.c
index 924059a1842b..c21cc576052a 100644
--- a/create-diff-object.c
+++ b/create-diff-object.c
@@ -1158,11 +1158,17 @@ static int should_keep_rela_group(struct section *sec, int start, int size)
 	struct rela *rela;
 	int found = 0;
 
-	/* check if any relas in the group reference any changed functions */
+	/*
+	 * Check if any relas in the group reference any changed functions or
+	 * sections.  As seen by hook related relocations (.livepatch.hooks.*),
+	 * it's possible they use the section symbol as a reference rather than
+	 * the function symbol.
+	 */
 	list_for_each_entry(rela, &sec->relas, list) {
 		if (rela->offset >= start &&
 		    rela->offset < start + size &&
-		    rela->sym->type == STT_FUNC &&
+		    (rela->sym->type == STT_FUNC ||
+		     rela->sym->type == STT_SECTION) &&
 		    rela->sym->sec->include) {
 			found = 1;
 			log_debug("new/changed symbol %s found in special section %s\n",
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:18:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:18:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832013.1247401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94HR-0006nB-FF; Thu, 07 Nov 2024 15:18:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832013.1247401; Thu, 07 Nov 2024 15: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 1t94HR-0006n4-Ck; Thu, 07 Nov 2024 15:18:41 +0000
Received: by outflank-mailman (input) for mailman id 832013;
 Thu, 07 Nov 2024 15:18: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t94Et-0002r4-Oz
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:16:03 +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 323a3306-9d1b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:16:00 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4315e62afe0so9754415e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:16: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-432aa74bab3sm63693805e9.43.2024.11.07.07.15.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 07:15: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: 323a3306-9d1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzYiLCJoZWxvIjoibWFpbC13bTEteDMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMyM2EzMzA2LTlkMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyNTYwLjYzOTAwOCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730992560; x=1731597360; 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=cqtMN9EGeIA5v+4lD5d3V0U1O8kx/oJv/Lx46QMzrvQ=;
        b=X32MR5azRg3a90eMGnoObWeITU/DPfV2rfxmRT76kHK9bwlJCCFU5rn8XWpEPHRAyu
         yVX2qAbL816YjKOKNH1sxAI/x9qyDbisnUMiFPp0HtQ9tWcepNVKZ+roohzFzjHrBufo
         7pEvw+8TT5daFT8D+UWFBv4CMKZgOIEsDVGEEfVbxMIG8puLs97kBeHQHwWk/Rmxmerb
         84UpJt46cYsuW50nQt8iDbJmd7DItNEzjN1/v8Xiu5quAED6NJfJCF7MuaXDewyi758W
         ehx4EaI4qizSb9Ki/CTCU++fEOa33Hr+xTmUxZ3+Im5YA+2unn/SqRi5aPF6fSZ1wq5q
         t0Zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992560; x=1731597360;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cqtMN9EGeIA5v+4lD5d3V0U1O8kx/oJv/Lx46QMzrvQ=;
        b=byqJBcsuIoaTjFE/kJrSZ2HBdsBADQForjmSlRNsoRdkBT5ee7D2fqJRUIpXykwn/x
         h+LXQOeUfCJmSER0W4wvy2bBO7NPV80+CoH6bWeUPpe3BRAG3xGpr8jxn6FDOL/t1J0s
         xo3bMwNxmrEfwtqPs1sgv6iF2qh1qtNVigxavvFd8uTkyLs9j+4//uGhl07/JF/R03ZQ
         nFueqeoqISqn3+XNXGH6lwlEw7T8ZPB0K6IPlYFP0eszph/Byukwy8bwqQbf8OlKdbgM
         j4rM97/v3N3I7WvctFH4Un6soxA6FWSHUWXcGp7WFb7JHZPOTNqXuqMvIWu46y9dxNsQ
         cOTA==
X-Forwarded-Encrypted: i=1; AJvYcCW+u8bS7Jt0dsR9zGFJqJtGAdD0rAeZLYTH6NytL60OVjZUMR2UIZQ7LllrfaCIn1DJWdmBgELn/Io=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvK6JOOLNjt8RdXnfNLwrtH9EitWtegRIz4AtPbQ4A5hrM9ho9
	+7n0R7qZRwnUNSy4oNgi37Yg8Q0102N8SLCTxN3EdinLw0nHnqnAVF+f6LStzQ==
X-Google-Smtp-Source: AGHT+IF45QnaEaPTx/IunvBoQd237OwZAaaIab44RVM3b0QQtyOUsttojU8mQI6NYvfW8KzdaLAR4w==
X-Received: by 2002:a05:600c:1c01:b0:431:12a8:7f1a with SMTP id 5b1f17b1804b1-4319acadc13mr398860205e9.16.1730992559993;
        Thu, 07 Nov 2024 07:15:59 -0800 (PST)
Message-ID: <4c40ca3e-73ab-402b-b5f9-23146ec14e60@suse.com>
Date: Thu, 7 Nov 2024 16:15:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
 <d32a3eb9-c0cb-4f87-9f88-4fc0d32cf1e8@suse.com>
 <bc6dab85-75a6-4bb2-83cc-884bc07650f5@apertussolutions.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: <bc6dab85-75a6-4bb2-83cc-884bc07650f5@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.11.2024 16:08, Daniel P. Smith wrote:
> On 11/7/24 05:05, Jan Beulich wrote:
>> On 02.11.2024 18:25, Daniel P. Smith wrote:
>>> --- a/xen/xsm/xsm_policy.c
>>> +++ b/xen/xsm/xsm_policy.c
>>> @@ -33,22 +33,18 @@
>>>   int __init xsm_multiboot_policy_init(
>>>       struct boot_info *bi, void **policy_buffer, size_t *policy_size)
>>>   {
>>> -    int i;
>>> +    unsigned int i;
>>>       int rc = 0;
>>>       u32 *_policy_start;
>>>       unsigned long _policy_len;
>>>   
>>> -    /*
>>> -     * Try all modules and see whichever could be the binary policy.
>>> -     * Adjust module_map for the module that is the binary policy.
>>> -     */
>>> -    for ( i = bi->nr_modules - 1; i >= 1; i-- )
>>> +    /* Try all unknown modules and see whichever could be the binary policy. */
>>> +    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
>>>       {
>>> -        if ( !test_bit(i, bi->module_map) )
>>> -            continue;
>>> +        struct boot_module *bm = &bi->mods[i];
>>
>> ... same here (and likely elsewhere in the series).
> 
> Nope, you can't const this one as that will cause this is at the tail 
> end of the loop to fail:
> 
> +            bm->type = BOOTMOD_XSM_POLICY;

Oh, I had managed to not spot that.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:20:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:20:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832023.1247411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94JN-000071-SG; Thu, 07 Nov 2024 15:20:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832023.1247411; Thu, 07 Nov 2024 15: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 1t94JN-00006u-OM; Thu, 07 Nov 2024 15:20:41 +0000
Received: by outflank-mailman (input) for mailman id 832023;
 Thu, 07 Nov 2024 15:20: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t94JM-00006k-NM
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:20:40 +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 d72b306e-9d1b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:20:37 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cedea84d77so1697825a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:20:37 -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
 a640c23a62f3a-a9ee0a194e6sm104465766b.41.2024.11.07.07.20.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 07: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: d72b306e-9d1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ3MmIzMDZlLTlkMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyODM3LjMwNDcwNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730992837; x=1731597637; 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=hO87ppwPPLqB3gFqW0wJ7BUnVDziwJ8skDuQ+3ovV+k=;
        b=IvnIcANwXTFIVCdR22FxvW8tmbJxQHrV44FRExnG7dGAd1phsWsu3Ep8szOX8niqsb
         hUqlM/Q6CpEaWH3praLOhvuYXzqpC/nvSvLrQp0CQBOfzVfjyEHyMhaTSJ82lQN8B8Vr
         mtT1INNC3iBN/ZZbwYgp6EwGfCclMS24CePC5CUsb46xjEuG055vdxBg8XPmCtUDs0vw
         elwlvo06wSo+AxrPUnjDtAh3HM6ULI1tdNn6CLV4ZpkgzgveKd+NSKvvCrgctyLCTzs6
         XDV27YVfrtbUKuf6e/83UEXpwb7WZx/t2LqLfm84P9JACiKOf5viBt2letlDiNUXQoyu
         +iZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992837; x=1731597637;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hO87ppwPPLqB3gFqW0wJ7BUnVDziwJ8skDuQ+3ovV+k=;
        b=ZjvagSxHsi8ZDtlSdOVVbjnjNKAo9RGivbqQ//H3NJ9N4+YuJcdYxM19OEn6aU4fPs
         voFucCdTo0xOyvq5hzrdTwtMvMEfn9JIWe/8cpy7WBHLw13fFkLdvwq6WFVgXqjlZ252
         rn/1gMF3uGbRcitNMia3RRJy6xea0dfqXj+EAKUgEjW7rA9wBy9yElfaC7ZZkF5lsz18
         xRhLVy6N5IV5enGZSRnLVmUiqiYY2DKyo0DR9qpvlvZyZmPbpJlBBOCswrpVDO6BE3hS
         FkbNxGAgu8x3XOCy33Pqia/sk7Bo4q5IXvSAqT0pTviKs8w/P+SjHPl2jbEdToM1a6zs
         Y3fw==
X-Forwarded-Encrypted: i=1; AJvYcCWZITOVSGcIv9iU1AQY5eDl1CTgAGldXz4o3yP+/NS3Sb7z1S9UhOXbuPIsFJXsl22e02fFe8RgDKo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7BLZxQ+Yfkc9pWVy4SEMbl4Dhm/pfcfltBVnlW2iB+j91oX7q
	9O21HSiJ/jlBYhuazHpBMnkPNZ5E9d3QaTBtE9KheqLIqi36kV6CR6rgwHHWqQ==
X-Google-Smtp-Source: AGHT+IGYN/frPQ0Xq752Fz1/VqqkSe9Lqr+V+xqfW6irQFQHHNqe6pgmnnWTOq3qv3xELhLMxkRpbg==
X-Received: by 2002:a17:907:7f93:b0:a9a:1437:3175 with SMTP id a640c23a62f3a-a9eeb00a528mr46297666b.51.1730992836728;
        Thu, 07 Nov 2024 07:20:36 -0800 (PST)
Message-ID: <28f3bcb5-ce01-48f6-b0a9-0ffa96998315@suse.com>
Date: Thu, 7 Nov 2024 16:20:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] create-diff-object: update default alt_instr size
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: konrad.wilk@oracle.com, ross.lagerwall@citrix.com,
 xen-devel@lists.xenproject.org
References: <20241107151509.73621-1-roger.pau@citrix.com>
 <20241107151509.73621-3-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: <20241107151509.73621-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.11.2024 16:15, Roger Pau Monne wrote:
> The size of the alt_instr structure in Xen is 14 instead of 12 bytes, adjust
> it.

Nowadays yes. Isn't the tool supposed to be usable with all livepatch-capable
Xen versions, though? As a random data point, 4.7 still had the size at 12.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:20:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:20:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832024.1247421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94Jc-0000Ra-2T; Thu, 07 Nov 2024 15:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832024.1247421; Thu, 07 Nov 2024 15:20: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 1t94Jb-0000RT-WE; Thu, 07 Nov 2024 15:20:56 +0000
Received: by outflank-mailman (input) for mailman id 832024;
 Thu, 07 Nov 2024 15:20: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=9PMW=SC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t94Jb-0000R7-5W
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:20:55 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de1e845c-9d1b-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 16:20:50 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1730992841286423.78284299951997;
 Thu, 7 Nov 2024 07:20: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: de1e845c-9d1b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRlMWU4NDVjLTlkMWItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTkyODUwLjczOTg5LCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1730992842; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=h52WZWOC9y9F//b25eN81aMqkH21pn4MDFZJA6xBrsr32GgGxAfciN/Rx8F9EBi/129EuGgavmOM834IvAiRUT4PZdzxHYFVWMnhgAJ64obXFduPU9uQlNLHL4iowPCKOsAObawmID+Ij0W2t2tnjQN4CRNMsNEQ/9NUpgI+T40=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1730992842; 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=e7pUCQEXiwbHmhXpKP5ghbovuABm4HGgLAe3v5b9E3g=; 
	b=hXplxh2bF5WvY+jh5NzYxsfSMuop8DsCy+7yVxwI3VedsHOstmQC0RrAi3rYmxsHs9oARa8PvE5ivIY/tGM0vRVA5pKKS2zXyNL9FwfrKRsV3hCLoyl77rx63eP1HriMohEEF5dtaiW2UJGhNw2yqAhLVQnmWSR4L+7pspG109o=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1730992842;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=e7pUCQEXiwbHmhXpKP5ghbovuABm4HGgLAe3v5b9E3g=;
	b=NhKj6hPuMqWuvwQ6wLio3JogxMxQ+VZxcvxFLpYk4iE9/5E6enkH733Mp08g/2iE
	P8yc/Xmpe7Yaq1+1HGNCoTGUBzbhiGNu5GynhNLTEHSOdNJtmQMJSebx2WZ1iDShyBI
	2a28YlPseBy/Lmo1lqijYi0Bn6mw0ibpp72y3DqM=
Message-ID: <63f5ad89-5221-4d2b-b6d2-aec78fa3d0dd@apertussolutions.com>
Date: Thu, 7 Nov 2024 10:20:39 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/boot: eliminate module_map
To: Jan Beulich <jbeulich@suse.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-3-dpsmith@apertussolutions.com>
 <d32a3eb9-c0cb-4f87-9f88-4fc0d32cf1e8@suse.com>
 <bc6dab85-75a6-4bb2-83cc-884bc07650f5@apertussolutions.com>
 <4c40ca3e-73ab-402b-b5f9-23146ec14e60@suse.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <4c40ca3e-73ab-402b-b5f9-23146ec14e60@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/7/24 10:15, Jan Beulich wrote:
> On 07.11.2024 16:08, Daniel P. Smith wrote:
>> On 11/7/24 05:05, Jan Beulich wrote:
>>> On 02.11.2024 18:25, Daniel P. Smith wrote:
>>>> --- a/xen/xsm/xsm_policy.c
>>>> +++ b/xen/xsm/xsm_policy.c
>>>> @@ -33,22 +33,18 @@
>>>>    int __init xsm_multiboot_policy_init(
>>>>        struct boot_info *bi, void **policy_buffer, size_t *policy_size)
>>>>    {
>>>> -    int i;
>>>> +    unsigned int i;
>>>>        int rc = 0;
>>>>        u32 *_policy_start;
>>>>        unsigned long _policy_len;
>>>>    
>>>> -    /*
>>>> -     * Try all modules and see whichever could be the binary policy.
>>>> -     * Adjust module_map for the module that is the binary policy.
>>>> -     */
>>>> -    for ( i = bi->nr_modules - 1; i >= 1; i-- )
>>>> +    /* Try all unknown modules and see whichever could be the binary policy. */
>>>> +    for_each_boot_module_by_type(i, bi, BOOTMOD_UNKNOWN)
>>>>        {
>>>> -        if ( !test_bit(i, bi->module_map) )
>>>> -            continue;
>>>> +        struct boot_module *bm = &bi->mods[i];
>>>
>>> ... same here (and likely elsewhere in the series).
>>
>> Nope, you can't const this one as that will cause this is at the tail
>> end of the loop to fail:
>>
>> +            bm->type = BOOTMOD_XSM_POLICY;
> 
> Oh, I had managed to not spot that.

No worries. As I said, I have been trying to develop the habit to check 
if write usage will be needed, const-ing and then finding myself often 
greeted with gcc error about write to const. Wish gcc could warn about 
pointers that have no writes in scope to help catch viable candidates.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:21:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832036.1247431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94Jx-00013T-B9; Thu, 07 Nov 2024 15:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832036.1247431; Thu, 07 Nov 2024 15: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 1t94Jx-00013M-7B; Thu, 07 Nov 2024 15:21:17 +0000
Received: by outflank-mailman (input) for mailman id 832036;
 Thu, 07 Nov 2024 15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94Jw-00011n-67
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:21:16 +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 ec9bcf91-9d1b-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:21:13 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5c9c28c1e63so1302027a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:21:13 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03bb75f4sm898765a12.44.2024.11.07.07.21.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:21: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: ec9bcf91-9d1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVjOWJjZjkxLTlkMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTkyODczLjI3MDk0Nywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730992873; x=1731597673; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=JM+JLM1VAtFg407nyvJk4DIkApbsRqgPtmJ7TaZfDKQ=;
        b=hQoGxMSu7V6qtvVfc4TzdC7OaKKxSCUoLlZABawkNdgnegvXYLhyAg2gDcsNeTYjFQ
         o7/S0bcNAQDzl/MaY+jAKSPPKblxhN3uyrzL9s/2hWAr9X/b6STrllylWCsL7ojQAJZ9
         8NDYmno0zThVvYbRqTrDOzN89MBSdUKFfERLU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730992873; x=1731597673;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=JM+JLM1VAtFg407nyvJk4DIkApbsRqgPtmJ7TaZfDKQ=;
        b=bJF2A6GyKqg0o5Ripu3+czBx0jmnnOOv5AwcC9Pfk6o+HgaFSoDZ0RF23GxaFaUvao
         5/igOgZXrlJqH7eNo/TCf1SvmNnWfJQ8wTb/Wgid4qbPVc0/VUMCqQYUkerBtHim9ee8
         NbpjHvGpGZKmvWGphwGnagssKFsP3psnrRI4XYEXlGXUC0qYJuxujsA8ss6F/LkQJoyP
         BWBHGquXovcTGUuO6SiBOOWVBGvJ/6OwJvM2+PP+Z7yKr2qCqKmpyX3wwmDZ5Ydn+Lli
         8F6LJzUIJWw10Cg7ew2IEnSWTeoSIiDP0gJamh/Du22/rSsGWyeVzZLNtXNLwAwPW7XM
         goSg==
X-Gm-Message-State: AOJu0Yxt2cht5laXKlS9k7YQWqfZ7gI9JRs8hSSp2OkRL9M38suKXro/
	wBCxKNC2GX33n5pvEdFZUOb/8YLB/yszctMJbYm5IlsgTxQNrLfRwUpyngIlvR3KRTRUo0gRdlr
	N
X-Google-Smtp-Source: AGHT+IEjUMadQ5abFYngTuObGyFbKfwP/l5BlLVy7wTwTZ74vJI+ZBWlVk1nF0u490dW+7IxIgRVMQ==
X-Received: by 2002:a05:6402:5255:b0:5ce:d6b0:85c0 with SMTP id 4fb4d7f45d1cf-5cf08c2140amr270012a12.22.1730992872652;
        Thu, 07 Nov 2024 07:21:12 -0800 (PST)
Date: Thu, 7 Nov 2024 16:21:11 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Matthew Barnes <matthew.barnes@cloud.com>
Cc: xen-devel@lists.xenproject.org,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v2] CHANGELOG: Add note about xAPIC destination mode
 change
Message-ID: <Zyza57tpYLGWYsDx@macbook>
References: <f7e299a8c1af7c5875e07f80b0229b1cd322a5f6.1730987624.git.matthew.barnes@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f7e299a8c1af7c5875e07f80b0229b1cd322a5f6.1730987624.git.matthew.barnes@cloud.com>

On Thu, Nov 07, 2024 at 02:08:31PM +0000, Matthew Barnes wrote:
> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Not sure it's worth adding a:

Fixes: dcbf8210f3f3 ('x86/APIC: Switch flat driver to use phys dst for ext ints')

So it's tied to the commit that introduced the change.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:52:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:52:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832053.1247441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94o0-0007XN-IG; Thu, 07 Nov 2024 15:52:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832053.1247441; Thu, 07 Nov 2024 15:52: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 1t94o0-0007XG-FI; Thu, 07 Nov 2024 15:52:20 +0000
Received: by outflank-mailman (input) for mailman id 832053;
 Thu, 07 Nov 2024 15:52: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94nz-0007XA-Ao
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:52:19 +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 42346ef4-9d20-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 16:52:14 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a99f1fd20c4so157038066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:52:14 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2e8basm107307066b.194.2024.11.07.07.52.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:52: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: 42346ef4-9d20-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQyMzQ2ZWY0LTlkMjAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTk0NzM0LjkzODgyMiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730994734; x=1731599534; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=y5JSaTmIdAy2Dji5JYpOds2UP0sJ27md6szUFWJuSXk=;
        b=vaVt9nOnBb3q/Cdb68WXrqXMU03XZxZZHDkJsTaW7x+GeE4YP1ZylzQucCLwokLhBL
         p8uRIj6krf/j4ZU9DuprYAzQvL6Pv8JG8Ak9Tzeo+CqN0Flhsr0ZRGyi2cVrjbDafU6S
         kqxLlXLVl50n/9hvUCynPTJYQY9AxDN0FIiLY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730994734; x=1731599534;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y5JSaTmIdAy2Dji5JYpOds2UP0sJ27md6szUFWJuSXk=;
        b=GGT4qk00BgaHZwk1WRmbkHQZE598FDERB3RdEuImgiCpQ0wwufFP8QNAdHKMUOZ9F4
         AbUGwG1KQ6Xo/prmRtH1hlgQTZ2Wa2MdpE6GG912aCTMU9mzJGpJ7BfXmnLA/QIZ7CIQ
         RcKOpH/mrWegu6i5Xu4Yp+xdfOY/AKCPyoencjcpiuy3+2tq0LXR6inmoqM3pULdy+Sf
         MAB5+YgSWNARS0CJdnqjZcGvuh4KoEipqcIS6tbSd3p5lXxLratJxh1Q0EE7+IYyZRdK
         aulHzSjh5jKQYmMDEfC168OP0ahLvqg6tYaU1SCexIskF1YqITiBoEPGfHITSsvFjeVJ
         X4jQ==
X-Forwarded-Encrypted: i=1; AJvYcCUxnjxjf0fucdpAssgAjhez/IZ9PLyPHkeVAzzmtqMjEorRc2wSGLAivD3N+caD1iFtmrw94LtF6b0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwIRYu89SG6JfWFvQFOklUQwZw0MnYacBo8lvlM1jpkCgSijGOc
	P6tCUouoCboguy6ELNR0JiHS83yl9hq55r42e0gmpWlhUG0eyNSoh5dubxONPVY=
X-Google-Smtp-Source: AGHT+IGFvBszqKklQqlKZPyEyWwoSZfOfSrXva4DVBLqLfNNUD9MAm1xrW4lCCIxa4iaOLKaPdKn0g==
X-Received: by 2002:a17:906:4fca:b0:a9e:c947:d5e5 with SMTP id a640c23a62f3a-a9eeaefae9cmr49999166b.28.1730994734304;
        Thu, 07 Nov 2024 07:52:14 -0800 (PST)
Date: Thu, 7 Nov 2024 16:52:13 +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 v2 2/4] x86/mm: special case super page alignment
 detection for INVALID_MFN
Message-ID: <ZyziLfZGLZJBSEjo@macbook>
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-3-roger.pau@citrix.com>
 <2d11d5c6-4e87-4520-af48-844c90462620@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <2d11d5c6-4e87-4520-af48-844c90462620@suse.com>

On Thu, Nov 07, 2024 at 12:06:41PM +0100, Jan Beulich wrote:
> On 06.11.2024 13:29, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/include/asm/page.h
> > +++ b/xen/arch/x86/include/asm/page.h
> > @@ -202,7 +202,8 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
> >  
> >  /* Check if an address is aligned for a given slot level. */
> >  #define SLOT_IS_ALIGNED(v, m, s) \
> > -    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
> > +    IS_ALIGNED(PFN_DOWN(v) | (mfn_eq(m, INVALID_MFN) ? 0 : mfn_x(m)), \
> > +               (1UL << ((s) - PAGE_SHIFT)) - 1)
> >  #define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
> >  #define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
> 
> With this adjustment it feels yet more important for these macros to
> become local ones in x86/mm.c. This special property may not be what one
> wants in the general case. And m is now also evaluated twice (really:
> once or twice), which a "random" user of the macro may not like.
> 
> I'm further uncertain now that this is the way to go to address the
> original issue. Notably for the 1G-mapping case it may be better to go
> from the incoming flags having _PAGE_PRESENT clear. After all we can
> always create non-present "large" PTEs. E.g.

Hm, I don't think we want to do that in map_pages_to_xen() as part of
this change.  Doing so would possibly imply the freeing of
intermediate page-tables when Xen previously didn't free them.  If the
CPU didn't support 1GB mappings we would always keep the L2, even if
fully empty.  With your proposed change we would now free such L2.

I'm not saying it's a wrong change, but just didn't want to put this
extra change of behavior together with a bugfix for an existing issue.

> 
>         if ( (cpu_has_page1gb || !(flags & _PAGE_PRESENT)) &&
>              IS_L3E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
>              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
>              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
> 
> Thoughts?

I was doing it based on mfn because that's how it worked previously
when 0 was passed instead of INVALID_MFN, and because I think it was
cleaner to hide the evaluation inside of IS_LnE_ALIGNED() instead of
open-coding it for every call to IS_LnE_ALIGNED().

If we want to do it based on flags it would be best if those are
passed to IS_LnE_ALIGNED(), but again, might be best to do it in a
followup patch and not part of this bugfix.  I fear it could have
unpredicted consequences.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:55:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:55:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832063.1247450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94qk-0008B4-1B; Thu, 07 Nov 2024 15:55:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832063.1247450; Thu, 07 Nov 2024 15: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 1t94qj-0008Ax-Ur; Thu, 07 Nov 2024 15:55:09 +0000
Received: by outflank-mailman (input) for mailman id 832063;
 Thu, 07 Nov 2024 15: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94qi-0008Ap-PJ
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:55:08 +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 a7c727d4-9d20-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:55:05 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a99f1fd20c4so157490566b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:55:05 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0def54asm109351366b.157.2024.11.07.07.55.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:55: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: a7c727d4-9d20-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE3YzcyN2Q0LTlkMjAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTk0OTA1LjI3NTg5OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730994905; x=1731599705; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=ypOxMP7nwAQjcmDUT1kYqE7fwDN1OAKh6KOlmHhvw9c=;
        b=BZxIIrgGdzfAvqa3YrcZEJi32yvKq0tGZ039Kuyqeme4aSPJLnXJmn9QSvXsjowkHF
         S82Xnxl6sssYAp7iRq9DszUYOni/EAo/EdKMrbfY3Ep43CbANknM/2ZBTGEx02ePmPqZ
         Q6B2hDPylBvnCPd+CAkRMd9l+2FlUrn1WOfgQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730994905; x=1731599705;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ypOxMP7nwAQjcmDUT1kYqE7fwDN1OAKh6KOlmHhvw9c=;
        b=ioxZcZ1XB79m1zEYcqqQxrDUd54gQHmI9gGS/s0j5RhdanlDo2ny7pKJM+FPBMYoB8
         mu/CZ4KT9t7Y1svpfmER+4GNTHBHVUWtd8RzWvnpl6nFjdqOuYe7xelHR5P52SC1q77A
         rpKRtRYKsW9rKmZ0dyT7NQeyZFAwrwLJ5pLRUoGnNXIW2qdJK2ZXSpljvqAU+S8SriIf
         hFJmPo4rjDcVwyl/wiLN+gLYTc35E0v58ZIyXds6P1wfeCf4hS+0iOl9AwxrG0f2xEXl
         Km2pg3CCqG9J7HfSbBeqEFpaQ42VQMRlYNVsy4t8AAQGBII8ysHfT2xgTH9q34A46yX7
         OWRw==
X-Forwarded-Encrypted: i=1; AJvYcCWRNHvQd34lMmW6Umxt5y2vhUfeZu8PwDdEpae7liF5WDtboRANuiOkVFHa4RKjzY5Azd4uv54dXps=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx9nm70ZNlN+uIot0y/EHkn4wk5aPDL8fAIPdnO8hvwHFxHx0lM
	LsBF5Jjcz7LQrNxJsP/Hx9WmYrpQ1pPQjTIduB9nAvVnvBN2tk53BL5Y1PH30Z4=
X-Google-Smtp-Source: AGHT+IHF64y3dvHWIsETZMU66q1LZVUSHRxfP/W72r6ptxiY3pdggVmbfrMWgwHLGi146/lgy6Tqrg==
X-Received: by 2002:a17:906:ef08:b0:a9a:80bd:2920 with SMTP id a640c23a62f3a-a9eeb00b3abmr54596966b.53.1730994904656;
        Thu, 07 Nov 2024 07:55:04 -0800 (PST)
Date: Thu, 7 Nov 2024 16:55:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: konrad.wilk@oracle.com, ross.lagerwall@citrix.com,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/4] create-diff-object: update default alt_instr size
Message-ID: <Zyzi17UTGMRU_7Ql@macbook>
References: <20241107151509.73621-1-roger.pau@citrix.com>
 <20241107151509.73621-3-roger.pau@citrix.com>
 <28f3bcb5-ce01-48f6-b0a9-0ffa96998315@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <28f3bcb5-ce01-48f6-b0a9-0ffa96998315@suse.com>

On Thu, Nov 07, 2024 at 04:20:35PM +0100, Jan Beulich wrote:
> On 07.11.2024 16:15, Roger Pau Monne wrote:
> > The size of the alt_instr structure in Xen is 14 instead of 12 bytes, adjust
> > it.
> 
> Nowadays yes. Isn't the tool supposed to be usable with all livepatch-capable
> Xen versions, though? As a random data point, 4.7 still had the size at 12.

Yes, livepatch-build-tools will fetch the alt_intsrt size from the
DWARF info.

However when using create-diff-object without the env variable being
set a default value is used, and that's currently 12.  I think it
would be best to update that default to the value used by the current
Xen version.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 15:56:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 15:56:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832069.1247460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t94rm-0000Gn-9u; Thu, 07 Nov 2024 15:56:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832069.1247460; Thu, 07 Nov 2024 15:56: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 1t94rm-0000Gg-7B; Thu, 07 Nov 2024 15:56:14 +0000
Received: by outflank-mailman (input) for mailman id 832069;
 Thu, 07 Nov 2024 15:56: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t94rl-0000GY-9m
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 15:56:13 +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 ce23df45-9d20-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 16:56:09 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a93c1cc74fdso157570566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 07:56:09 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a18508sm109872366b.6.2024.11.07.07.56.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 07:56: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: ce23df45-9d20-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNlMjNkZjQ1LTlkMjAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTk0OTY5LjY2MTM2OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730994969; x=1731599769; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=uhLPmwMNl7CD4kKhHqD6vHYIFwnFoulavutnZCQ3ido=;
        b=jcvj5zBfL6AzexAuBS68MbVO3Chg+7xoRhjJNgqdtIwW8t4nZ1zo+LIGWMtNhwnRtm
         gaIuWAKFcpjiFWvdktkQ7Z1CfjOyCS8WfvR/64l95Q2pjf8cveRMwKTe0x9EvEgksZ0D
         K4xRBkfv05kOBcQ7Pkdg5D9ctv3GV/Wp/s20k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730994969; x=1731599769;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=uhLPmwMNl7CD4kKhHqD6vHYIFwnFoulavutnZCQ3ido=;
        b=Cb6rw+c+KW18hm01RQSsKx6dq56ViSkxA9zUNVe44wLXOP+n/sniB0gQBwHTmdhGNE
         kS2k6reCxFslrIyCZuQX1C9O/coG6BUc0mC2eOVpfS0G/9h8CuhuNJmV3oyxwHhpCqA+
         beavEd1kgLS2dq+qYm0iBk50IIzNG2apdDbwK+Thpkl0neeADBs/uaswJ+g1RpTW8l0g
         rCp222coxxk1WrbbT2c0DyqnBV8VQgODJ1s6Zd7CTxGP2fstzkiv1zVFDONkAsfujryq
         rcXtlIEd60D0pjnJhaj/8rEz1laryisvqrwwlpgy5DwNij07Lj0Eoon4KAFtWcyHPv+E
         wWKg==
X-Forwarded-Encrypted: i=1; AJvYcCVJXzLXHd5D//qmfx8lDkqI5B0JA8Lp8ROM/bthkW8wBmMgSMMHqGyB5NsErIher1ykBddBdmI3naU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydTbtNLD4U+9pQCqg5Wys8CiWWGLD9kRMGy8qlH2lwKo1s+cOa
	hW3FwmNHpG7MwyYd3Dnah011VQlilfIoOncElW+IAhTJj/ct7HY9wdESRQ0ZqPfUkez3mBXVerv
	D
X-Google-Smtp-Source: AGHT+IHPLc309EpWj5d2yCndgDc0e1nHQkjj8EF4pfYfk2w3zDC//PTLLsgKnJc6uqTAv7w6ixV/Ew==
X-Received: by 2002:a17:907:3e08:b0:a9a:9df:5581 with SMTP id a640c23a62f3a-a9e655b9595mr2267078466b.38.1730994969045;
        Thu, 07 Nov 2024 07:56:09 -0800 (PST)
Date: Thu, 7 Nov 2024 16:56:07 +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] xen/x86: prevent addition of .note.gnu.property if
 livepatch is enabled
Message-ID: <ZyzjF9S0ZeWEAOWB@macbook>
References: <20241107145952.73403-1-roger.pau@citrix.com>
 <0cd98d20-9377-479a-8f24-ebfdbfceda8f@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0cd98d20-9377-479a-8f24-ebfdbfceda8f@suse.com>

On Thu, Nov 07, 2024 at 04:14:20PM +0100, Jan Beulich wrote:
> On 07.11.2024 15:59, Roger Pau Monne wrote:
> > GNU assembly that supports such feature will unconditionally add a
> > .note.gnu.property section to object files.  The content of that section can
> > change depending on the generated instructions.  The current logic in
> > livepatch-build-tools doesn't know how to deal with such section changing
> > as a result of applying a patch and rebuilding.
> > 
> > Since .note.gnu.property is not consumed by the Xen build, suppress its
> > addition when livepatch support is enabled.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> Just one thing though:
> 
> > --- a/xen/arch/x86/arch.mk
> > +++ b/xen/arch/x86/arch.mk
> > @@ -26,6 +26,12 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVPCID)
> >  $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR)
> >  $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD)
> >  
> > +# Disable the addition of a .note.gnu.property section to object files when
> > +# livepatch support is enabled.  The contents of that section can change
> > +# depending on the instructions used, and livepatch-build-tools doesn't know
> > +# how to deal with such changes.
> > +$(call cc-option-add,CFLAGS-$(CONFIG_LIVEPATCH),CC,-Wa$$(comma)-mx86-used-note=no)
> > +
> >  # Check to see whether the assmbler supports the .nop directive.
> >  $(call as-option-add,CFLAGS,CC,\
> >      ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)
> 
> I don't really like this being squashed between two as-option-add invocations.
> Can this be moved down, e.g. before or after the XEN_IBT chunk? Happy to move
> while committing ...

Feel free to move it.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 16:05:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 16:05:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832079.1247471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t950C-0003B3-4K; Thu, 07 Nov 2024 16:04:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832079.1247471; Thu, 07 Nov 2024 16:04: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 1t950C-0003Aw-1D; Thu, 07 Nov 2024 16:04:56 +0000
Received: by outflank-mailman (input) for mailman id 832079;
 Thu, 07 Nov 2024 16:04: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=aElt=SC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t950A-0003Aq-J8
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 16:04:54 +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 050f2442-9d22-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 17:04:51 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-431ac30d379so9542825e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 08:04: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-432b05c1f56sm28986245e9.34.2024.11.07.08.04.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 08:04: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: 050f2442-9d22-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA1MGYyNDQyLTlkMjItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTk1NDkxLjMwMzAxOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1730995491; x=1731600291; 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=e8Lqs45Rjv4Y2GCwHzk9T6KG8ODUgjzv1Utcdv7yxpY=;
        b=Us2nRpGmBiPSVertv/m6a6lVP6MAFoKx9NGSOlQ8XRjmjgF5/xArFKt+NZKd2JnYe4
         GgHgR57qHhfYU/xeJCauZuxGfMl5U0PErj5l4ejNcWlhLcv6Siz/+NiUV8A9MA/lSHst
         ueLNyM5waokjzpzxuXiwVMWl2IjvTms7wdfcTjw3FyF2fqNiCal/4NPopPlLoW5KOW5v
         uVpoxxKPcfwntoLSbE21u4SHeeuaMJGHutXUe3dN9wPT+tlGqINPem+c6YbgtB7LoBVm
         yB0bvuZdPqasm0u2dYAHMoTbrShUzn3iUbrUW2RqQgyeHFe7mhRiXQu9Uu7uME9BEjzp
         sIMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730995491; x=1731600291;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e8Lqs45Rjv4Y2GCwHzk9T6KG8ODUgjzv1Utcdv7yxpY=;
        b=L+QtVrzf1pMX5ooDiePu6Y9qZLzxu7TbwaNKUHT30b77t88OqpOK99h3+wZ3aqJI4x
         QqGaJbmDITM2Nkws5PFcgkDLGMkjE11dubRhu08ujw7fKAeBJcINuGzh1GlJqgzyJSAU
         CILHMJh0te6uELoOahLWLABFdxzeDTy38x84FlD0+S4MobKZdDF2NNhHKmlCNNTjd6Zv
         pXBqkyzA2vy2OWT46ckM7yRPGpVpJR6ZUfdiyZeNXF4R97DGwyTi4EjN4o7AYI2/Lmo6
         EBlRCReCe/GQQd+3qui26xGXh8UQIQbWGj4onaeCg3Uiuk+G+TjXv+y41SqDol+tNRQx
         bbXA==
X-Forwarded-Encrypted: i=1; AJvYcCWNQix4RneA206i4GmsM7TXmFg4JIDitUcr7r1B7wovgRGUF2vmObxaP0Pu1wrt2HNE5oRBI0tAtHo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAEAt3k4879u2ZmHLVz6XDYXHnVeUuIaE9qJZ7edy79HZ33jAm
	494VbqUfnnnsFdEmxDGplxrk530bB0g6Ck+u0zO79FAJjHCJu6u0SoTK2LjiLg==
X-Google-Smtp-Source: AGHT+IF11x8gonGQ+oyxYoO7x64y7q8GEV/XWBRqcvb14wa7xp4hfXcdeAKn97atWvUxQlELAL1KBg==
X-Received: by 2002:a05:600c:45cd:b0:431:5eeb:2214 with SMTP id 5b1f17b1804b1-4319ad363eamr376946715e9.33.1730995490486;
        Thu, 07 Nov 2024 08:04:50 -0800 (PST)
Message-ID: <1e9e3475-0dc3-4344-ab78-fa5f42ae30ab@suse.com>
Date: Thu, 7 Nov 2024 17:04:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] create-diff-object: update default alt_instr size
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: konrad.wilk@oracle.com, ross.lagerwall@citrix.com,
 xen-devel@lists.xenproject.org
References: <20241107151509.73621-1-roger.pau@citrix.com>
 <20241107151509.73621-3-roger.pau@citrix.com>
 <28f3bcb5-ce01-48f6-b0a9-0ffa96998315@suse.com> <Zyzi17UTGMRU_7Ql@macbook>
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: <Zyzi17UTGMRU_7Ql@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 16:55, Roger Pau MonnÃ© wrote:
> On Thu, Nov 07, 2024 at 04:20:35PM +0100, Jan Beulich wrote:
>> On 07.11.2024 16:15, Roger Pau Monne wrote:
>>> The size of the alt_instr structure in Xen is 14 instead of 12 bytes, adjust
>>> it.
>>
>> Nowadays yes. Isn't the tool supposed to be usable with all livepatch-capable
>> Xen versions, though? As a random data point, 4.7 still had the size at 12.
> 
> Yes, livepatch-build-tools will fetch the alt_intsrt size from the
> DWARF info.
> 
> However when using create-diff-object without the env variable being
> set a default value is used, and that's currently 12.  I think it
> would be best to update that default to the value used by the current
> Xen version.

Oh, I see. Makes sense of course.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 16:07:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 16:07:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832085.1247481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t952s-0004HK-GP; Thu, 07 Nov 2024 16:07:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832085.1247481; Thu, 07 Nov 2024 16:07: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 1t952s-0004HD-DL; Thu, 07 Nov 2024 16:07:42 +0000
Received: by outflank-mailman (input) for mailman id 832085;
 Thu, 07 Nov 2024 16:07: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t952r-0004H5-6o
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 16:07:41 +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 67fd8703-9d22-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 17:07:37 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5cec7cde922so1465827a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 08:07:37 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7e87asm929025a12.20.2024.11.07.08.07.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 08:07: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: 67fd8703-9d22-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY3ZmQ4NzAzLTlkMjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTk1NjU3LjI3NTQ4NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730995657; x=1731600457; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=0dhvmXxfHbapXpqGm8fl5N0bzv/si7HULfLf8tDohfA=;
        b=s8IoaGakD2eCh1GacyypBXMwFb/fj9h1ttI5WmUxjMXmRX6rlejwj3w7Vc0L/0Bx0b
         In/SuOhMXMVB/e56kWuh3pKa2hvx1Yx6eDeOQAoAsTkYlMC7sOwP3Qgpfes86UOf/JRe
         HClZZtBShBFHhy+o//Bbnz9gSMPlz3D/cGpxE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730995657; x=1731600457;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0dhvmXxfHbapXpqGm8fl5N0bzv/si7HULfLf8tDohfA=;
        b=MTxG6rWK82vNh5BGeq3R6R3JH60BFTmkDUQ9KZD6xmAX0Wu0XYYPEqz7xI59xzxDim
         a7LFhEH664Ex+paGcu5otIbSbY4tfOUQI0ono7gu8cJkQkrjXkfGm8sRpGX9AKyW5iqw
         4mVoL9eukKGyAa8b4wlOUvKz6fa6f1y9FN4WdJrWYK9piKUEpilLGaI2/JXShmeSAH+W
         nETB2fqWMG5hwj4iqHlM7/ac4WnCZHXjQGWpO98peydCHcOQTJrVJ7nuMpghQRvqugXS
         wnghtznNz/5IhnE+p0IhH43vODxEf2xhWG9O3TM2MNMd8XXEMJdj6aWe7myC5kKpWEnW
         cIpA==
X-Forwarded-Encrypted: i=1; AJvYcCWxQ4ppDYBZQFrpd3X+L+cac20izAVFitrOHGLpFEQ6vH2k95Ip+GRkXU1i4VS69Of/+8SsPGng80I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxvQ8HYn3PtNfel67u2nDFPWkDK3M2YN0cN+03qB5AzSbonc/IM
	hZQRMJM1gt3Ya1Q+YIA9Vpgt3tbNix6AqB1wrfrrp5pQ3iOuY1kQgcyBYrO5xpc=
X-Google-Smtp-Source: AGHT+IHEkRgQpIu/7IRr2IZdTj/Na8n7/b9Ukg+05EC8uO66Ybr00rzk9xGID6f3L4xhCclHhKI8Vw==
X-Received: by 2002:a05:6402:5193:b0:5cb:b68d:8def with SMTP id 4fb4d7f45d1cf-5cf08c6be4emr341920a12.31.1730995656466;
        Thu, 07 Nov 2024 08:07:36 -0800 (PST)
Date: Thu, 7 Nov 2024 17:07:34 +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 v2 1/4] x86/mm: introduce helpers to detect super page
 alignment
Message-ID: <ZyzlxiipPvbUjs0r@macbook>
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-2-roger.pau@citrix.com>
 <85d6a128-965b-4f39-8d08-2b2084db65b4@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <85d6a128-965b-4f39-8d08-2b2084db65b4@suse.com>

On Thu, Nov 07, 2024 at 11:42:11AM +0100, Jan Beulich wrote:
> On 06.11.2024 13:29, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/include/asm/page.h
> > +++ b/xen/arch/x86/include/asm/page.h
> > @@ -200,6 +200,12 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
> >  #define l4_table_offset(a)         \
> >      (((a) >> L4_PAGETABLE_SHIFT) & (L4_PAGETABLE_ENTRIES - 1))
> >  
> > +/* Check if an address is aligned for a given slot level. */
> > +#define SLOT_IS_ALIGNED(v, m, s) \
> > +    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
> 
> The check involving an address and an MFN, I think the comment would better
> also reflect this. "Check if a (va,mfn) tuple is suitably aligned to be
> mapped by a large page at a given page table level"?
> 
> As to the name of this helper macro - "SLOT" can mean about anything when
> not further qualified. If the macro was local to ...
> 
> > +#define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
> > +#define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
> > +
> >  /* Convert a pointer to a page-table entry into pagetable slot index. */
> >  #define pgentry_ptr_to_slot(_p)    \
> >      (((unsigned long)(_p) & ~PAGE_MASK) / sizeof(*(_p)))
> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> 
> ... this (sole) file using the derived ones, that might be acceptable. If
> it's to remain in page.h, how about e.g. IS_LnE_ALIGNED()?

Since you expressed further concerns in the next patch, I will move it
to being local to mm.c.  I don't have any other use-case, but assumed
the macros are generic enough to be useful in other contexts.

> I further wonder whether it wouldn't be neater if just the level was passed
> into the helper. Doing so wouldn't even require token concatenation (which
> iirc both you and Andrew don't like in situations like this one), as the
> mask can be calculated from just level and PAGETABLE_ORDER. At which point
> it may even make sense to leave out the wrapper macros.

I can see what I can do.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 16:41:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 16:41:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832097.1247490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t95ZH-0001qY-Vb; Thu, 07 Nov 2024 16:41:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832097.1247490; Thu, 07 Nov 2024 16:41: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 1t95ZH-0001qR-Sn; Thu, 07 Nov 2024 16:41:11 +0000
Received: by outflank-mailman (input) for mailman id 832097;
 Thu, 07 Nov 2024 16:41: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=FYad=SC=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1t95ZG-0001qL-9d
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 16:41:10 +0000
Received: from mail-il1-x130.google.com (mail-il1-x130.google.com
 [2607:f8b0:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13872813-9d27-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 17:41:03 +0100 (CET)
Received: by mail-il1-x130.google.com with SMTP id
 e9e14a558f8ab-3a3b4663e40so4093115ab.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 08:41: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: 13872813-9d27-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1pbDEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEzODcyODEzLTlkMjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTk3NjYzLjY0NTkyMSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1730997662; x=1731602462; 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=aMvM9pfaZHXSxg21BbBGZDS7D59ifQHvIVH8bWxb/CU=;
        b=ErSTUlfypN9JhmxpuktNlRMgq5TZr4BH/oCB9U80eBGm09iXBjW1ZZ/Dd++0/Wxfal
         53Vdl8SLrEyb2gxEBACNkZQ91T/+fEjA/CG7+VRVu+tZBnzGKKcTR/t4LluibHybd3cc
         PPEER/KN+V6+EVY5f3gmjCnXmLfvNDD3iTPQ2qygGukZCgIqMy8Hsb+xNPL3Ax89qBRA
         bVV1M2Xe4EHxNQYORSR68uxpCLHjdK8Fd3XM/1Al///12Fy7gLeni6Kr+GY/Z65DPWlH
         VdyKyep/QZw/nv1n0cQAvdUufs5rS4eOCAh4v+AvnJ2hGiH3U/0tILU3JP+qXUfsh02A
         RhUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730997662; x=1731602462;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=aMvM9pfaZHXSxg21BbBGZDS7D59ifQHvIVH8bWxb/CU=;
        b=Ye77Y3SNUISUcXeM/eRMCx1Yess6faUe+w9xGGDFXve9tVMxQBDj7l6MiYU4+pAh6h
         EBpyfEcxvJhcSIOzlK1iSZrAAFb4R5u9Tx7WyhDKHbPs0aoyjnED0awdKCOOsGFU0Q19
         DuoMQxOhTGdUva9RFtCXd6qfL4w3IcxQUEbxi10EHJV/XJvXPQg3a+jNWNSfsxsVvcTY
         hMe9U9fTTgly2x+01LUmjXtwYrpIbxs2Mb+OYUBj6J3I5i8yJe7+NH86D2/NyOp0QMye
         wCyJFud5NS1qiZjMWRKExtIvO68oZH5M7ACpcKvN7eU0fiSYcWIBwmxZLgrI7kKev+YW
         wymQ==
X-Forwarded-Encrypted: i=1; AJvYcCWz2j5LAPpzNx6NJ7NdGnZeIDgq42ASDEDab59SrAYJ3MW0ACA/uuC+dx/EysYgOlNQtdvGXxNngVs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRnjTBz4iQPAvXlg84JXFS6AmhURxxeRCMxWnsQUn//scel2L1
	Nl/hMKaHDDvrlnyD/He/eEBLBPB1177eaSS/+2sHtMHcJ0rSdHAwFwD/5jYVMBYZsE91Cxez0I5
	SGH2rK+THyPJDrN4533vZ6Vkbaaz25K9G5D1G+A==
X-Google-Smtp-Source: AGHT+IFRY2af/mNfFVQ3SyQY4T2xl7yiB6Y0P+DQYT6R8Zk8yHCR/9usDZVcNQmecNlmZrWrPy3VPaOERsuoCTxXaO0=
X-Received: by 2002:a05:6e02:1a6c:b0:3a4:e377:d906 with SMTP id
 e9e14a558f8ab-3a6b021b260mr267343555ab.1.1730997662317; Thu, 07 Nov 2024
 08:41:02 -0800 (PST)
MIME-Version: 1.0
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-9-carlo.nonato@minervasys.tech> <f86f611a-4f18-4847-8f21-c6ef20cd6b6c@suse.com>
In-Reply-To: <f86f611a-4f18-4847-8f21-c6ef20cd6b6c@suse.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Thu, 7 Nov 2024 17:40:51 +0100
Message-ID: <CAG+AhRVu6O=2X9vO12R43=0oHmEjr4Zwus3tx+rDWCRUwE9R0g@mail.gmail.com>
Subject: Re: [PATCH v9 08/13] xen/page_alloc: introduce preserved page flags macro
To: Jan Beulich <jbeulich@suse.com>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Tue, Nov 5, 2024 at 4:59=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 25.10.2024 11:50, Carlo Nonato wrote:
> > PGC_static and PGC_extra needs to be preserved when assigning a page.
> > Define a new macro that groups those flags and use it instead of or'ing
> > every time.
> >
> > To make preserved flags even more meaningful, they are kept also when
> > switching state in mark_page_free().
> > Enforce the removal of PGC_extra before freeing new pages as this is
> > considered an error and can cause ASSERT violations.
>
> What does "new" here mean?

I believe it means "assigned to domains". So yes "new" it's definitely wron=
g.

> > Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> > ---
> > v9:
> > - add PGC_broken to PGC_preserved
>
> Which then also wants reflecting in the description.

Yep.

> > @@ -2485,6 +2485,14 @@ struct page_info *alloc_domheap_pages(
> >          }
> >          if ( assign_page(pg, order, d, memflags) )
> >          {
> > +            if ( memflags & MEMF_no_refcount )
> > +            {
> > +                unsigned long i;
> > +
> > +                for ( i =3D 0; i < (1UL << order); i++ )
> > +                    pg[i].count_info &=3D ~PGC_extra;
> > +            }
>
> The description doesn't cover this, only ...

PGC_extra must be cleared before freeing pages. Since here we're going to f=
ree
pages, PGC_extra must be removed.

> > @@ -2539,6 +2547,7 @@ void free_domheap_pages(struct page_info *pg, uns=
igned int order)
> >                  {
> >                      ASSERT(d->extra_pages);
> >                      d->extra_pages--;
> > +                    pg[i].count_info &=3D ~PGC_extra;
> >                  }
> >              }
>
> ... this is mentioned there. And it's not clear to me why it would need d=
oing
> in both places.
>
> Jan

- Carlo


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 16:42:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 16:42:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832106.1247501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t95aa-0002Pf-CT; Thu, 07 Nov 2024 16:42:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832106.1247501; Thu, 07 Nov 2024 16:42: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 1t95aa-0002PY-9M; Thu, 07 Nov 2024 16:42:32 +0000
Received: by outflank-mailman (input) for mailman id 832106;
 Thu, 07 Nov 2024 16:42: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=FYad=SC=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1t95aZ-0002PQ-BB
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 16:42:31 +0000
Received: from mail-il1-x12f.google.com (mail-il1-x12f.google.com
 [2607:f8b0:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 459b8ed5-9d27-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 17:42:27 +0100 (CET)
Received: by mail-il1-x12f.google.com with SMTP id
 e9e14a558f8ab-3a6ababa9f7so4702945ab.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 08:42: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: 459b8ed5-9d27-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoxMmYiLCJoZWxvIjoibWFpbC1pbDEteDEyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ1OWI4ZWQ1LTlkMjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTk3NzQ3LjY5NDgzMSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1730997746; x=1731602546; 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=0jUHihYfxwlTtP7M3pJ6fmNDh05kQeq4rq21pt+cEv4=;
        b=nw/6wQIPYzdCov0nUdLIcjmDeVUWw4H0HKcKsp38DlDQKc4j37wRvblW/MGX6xGu//
         /tEOHgfCdrJKZroe1jGFA1DIEngH0HuOfgAbf8boD6Ib32VZ79oUPLeeQmPAP/SLME79
         khJqrghDCi66OCctNHYBUpIndxFxGPGdhOfxkvQfdB8yS1O58Nm9anzU1A9nmTZUBCvx
         H1fgkYvegX5/AoRgbfJhB+rLfEDBUjde8yBMgZZ74/ASFsL67dKREP2r9oq4PYML15V9
         bE9jIfzIplUEjzc2ELJsQ34UyYH2tOLLR4ryAFSIXp9PjlX06Sn7+NgBsYVfU87qA0s6
         b9Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730997746; x=1731602546;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0jUHihYfxwlTtP7M3pJ6fmNDh05kQeq4rq21pt+cEv4=;
        b=AV00v0NMjoFp4EaofH+mrGYJaxMtH9meINt4QKkw8HNKo/29ik9N1eg8dVgZT8Htnx
         n35nUj/R08p4PU1LwR3f3iBDJ0kPYC4kC3+kRXt+IOHINRg4dUgPhNpUvWtobOy9aif3
         m3zUpY8vT69bVBjlSi9pJQQAncS3lVrc2SCxDYDSRomFURLAK8rBHvZ4GzVcqDKSIbcs
         l8sMvNkpRoCwdRcEEC8wjH47UYX50A+TR/RH8Kg/muARvLPikzjSeKMj5MQ2jXrnFuJ9
         z0m5OUF0X7ui9g0wsYKYlMJE/i7TG1pDdYVWxLgv9EBhuHK0P1flv6B3atIqYXFo16Zi
         yPAA==
X-Forwarded-Encrypted: i=1; AJvYcCWSlheoIYrzrV/BYtl+BI46c2fYF1Gv/2waSpsFD3x4d83bPIoIQSkh/Pyh35DeFS2aPDOH83i+qkc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzaAqJdMmipxS/h8ajsFpFXzqqsxY6IrpbNunefvuejKmLASQ+r
	2GMBlYkkUDeWQ0y1JwE7yaUg8tr7ebHD3Rgp2m1u291wDCUmtxTxPwLGv2xZOq/fCLy40jnytbp
	9FvBs0DWyDQOiVCSMBesII/Z4XXfstpfbh6UEFg==
X-Google-Smtp-Source: AGHT+IEMchko5a31Z3/Mu0BYr+fqb4nIDgfikuh3EsrzVH7RDCtZWoT0CQsPMh3TbGedXygO9myvT3kBqgva19lLoew=
X-Received: by 2002:a05:6e02:2142:b0:3a4:e452:c42c with SMTP id
 e9e14a558f8ab-3a4ed27c5f0mr500762385ab.6.1730997746350; Thu, 07 Nov 2024
 08:42:26 -0800 (PST)
MIME-Version: 1.0
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-10-carlo.nonato@minervasys.tech> <f14094fb-1312-42aa-b903-06f140c485b5@suse.com>
In-Reply-To: <f14094fb-1312-42aa-b903-06f140c485b5@suse.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Thu, 7 Nov 2024 17:42:15 +0100
Message-ID: <CAG+AhRV=xoDiQtP4WbkUwQO+87-Anwz7dMHQbYYdMfence3arA@mail.gmail.com>
Subject: Re: [PATCH v9 09/13] xen: add cache coloring allocator for domains
To: Jan Beulich <jbeulich@suse.com>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper <andrew.cooper3@citrix.com>, 
	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>, Marco Solieri <marco.solieri@minervasys.tech>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan

On Tue, Nov 5, 2024 at 5:11=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 25.10.2024 11:50, Carlo Nonato wrote:
> > --- a/docs/misc/xen-command-line.pandoc
> > +++ b/docs/misc/xen-command-line.pandoc
> > @@ -270,6 +270,20 @@ and not running softirqs. Reduce this if softirqs =
are not being run frequently
> >  enough. Setting this to a high value may cause boot failure, particula=
rly if
> >  the NMI watchdog is also enabled.
> >
> > +### buddy-alloc-size (arm64)
> > +> `=3D <size>`
> > +
> > +> Default: `64M`
> > +
> > +Amount of memory reserved for the buddy allocator when colored allocat=
or is
> > +active. This options is available only when LLC coloring support is en=
abled.
> > +The colored allocator is meant as an alternative to the buddy allocato=
r,
> > +because its allocation policy is by definition incompatible with the g=
eneric
> > +one. Since the Xen heap systems is not colored yet, we need to support=
 the
> > +coexistence of the two allocators for now. This parameter, which is op=
tional
> > +and for expert only, it's used to set the amount of memory reserved to=
 the
> > +buddy allocator.
>
> Like for the options in patch 1, here I think you also want to make expli=
cit
> the dependency on CONFIG_LLC_COLORING.

Yep.

> > @@ -1945,6 +1960,155 @@ static unsigned long avail_heap_pages(
> >      return free_pages;
> >  }
> >
> > +/*************************
> > + * COLORED SIDE-ALLOCATOR
> > + *
> > + * Pages are grouped by LLC color in lists which are globally referred=
 to as the
> > + * color heap. Lists are populated in end_boot_allocator().
> > + * After initialization there will be N lists where N is the number of
> > + * available colors on the platform.
> > + */
> > +static struct page_list_head *__ro_after_init _color_heap;
> > +#define color_heap(color) (&_color_heap[color])
> > +
> > +static unsigned long *__ro_after_init free_colored_pages;
> > +
> > +static unsigned long __initdata buddy_alloc_size =3D
> > +    MB(CONFIG_BUDDY_ALLOCATOR_SIZE);
> > +size_param("buddy-alloc-size", buddy_alloc_size);
> > +
> > +/* Memory required for buddy allocator to work with colored one */
> > +#ifdef CONFIG_LLC_COLORING
> > +#define domain_num_llc_colors(d) (d)->num_llc_colors
> > +#define domain_llc_color(d, i)   (d)->llc_colors[i]
>
> I'm uncertain whether Misra would insist on an outer pair of parentheses =
for
> both of these.

Yes, rule 20.7.

> Jan

- Carlo


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 16:57:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 16:57:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832116.1247511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t95ox-0004kN-Jf; Thu, 07 Nov 2024 16:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832116.1247511; Thu, 07 Nov 2024 16: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 1t95ox-0004kG-H2; Thu, 07 Nov 2024 16:57:23 +0000
Received: by outflank-mailman (input) for mailman id 832116;
 Thu, 07 Nov 2024 16:57: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=FYad=SC=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1t95ox-0004kA-07
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 16:57:23 +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 5934c284-9d29-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 17:57:18 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-539e63c8678so1276711e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 08:57: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: 5934c284-9d29-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU5MzRjMjg0LTlkMjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMwOTk4NjM4Ljg4MDY3Niwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1730998638; x=1731603438; 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=cxt3mGwCtGS1IdHVDEZ8tA7dhZ6/D/HzwCVdK+BSeMg=;
        b=SBdgVjVLKFG1q3EA/v64LB6PGyH90kUI6zUCvMzc9P9Jn5U6zg4nKHGolnlTzyZBSZ
         pEoXlQouytVDuGsCRZniww71dqH5wYAHdyEp7q7PjMhwhannhLLY1yQw17PTIBU8/XSG
         X+l31Dho2sbYAdji2uYPM8Pm8WSYMdIbGZBlUadUva/oGyIfCD3HcxJ8evKOeQQZim/y
         kn2WBrDKhrtF/gYUsVAzceDuYwvJDpipS8qtv8mn+cdlbG3uIc1YmUv1DLLBbcySlTRo
         aFKHI7Vn7G5MJwXwWx5pRQEUCquOqyunbSFGz38rfHlPO4WyQgt4BZwEJsfcG0F+6tau
         90jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730998638; x=1731603438;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cxt3mGwCtGS1IdHVDEZ8tA7dhZ6/D/HzwCVdK+BSeMg=;
        b=Pb4+FbBdoRhikBF9/+oCqrJuGIavzyCcfTE/twIhxve42RLNiE0P7D5NUSZxA82NWB
         dOTloxz3ipxhcxQoRaoI2d3tLh7PtOnJBwmAXYCiox7T/wypVWq8tcANCU5RuHNjckla
         X88kWh5rIsd+fNB0ocKHaF70MrjCktHODdzRbQmyHY+jSub/4xrehsblXf5lNM9VH7VH
         0RxxF5iC86xQgGBHHRZP7lWoMn35aBL5hqtpJr9tybumkT654EgMXmNYC5P9N5hh0Mv9
         jVuYxQYWhDcq5fG5SrRFi6vXruEmyDljyS7QPzcAP8FeyjZkEhSNC2Bq/4AZ7eTkmWGX
         DToA==
X-Forwarded-Encrypted: i=1; AJvYcCWxvFxgo/AZDy8Dt9fxOvnhIcCIvTWHHLgRmWKG9eZ/IgUruSyP0p3be4ekwZif8I0HZliTvtYzF7c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQZQkwYgHqpSMeRaWIx2lilcKQv1z1wh7zwjeFIc3CbCDa4YTW
	Fa5B0mZbc5PZYWmq7MTL4NeTbsrpME0Lwc26IDwxhgYHapkhf79iv9FP7rVKCjI9mYtua2AmxFr
	BW46Hcn5wjwj6Rw1ApraM+xqMl9x05MIoZ3n3Ug==
X-Google-Smtp-Source: AGHT+IFUIMIo/KQddU6V+M3es5kQWT37nVWea833ApWmPd5ZI1y3OOn4M692WPr+R9Kg7XfOEowlU3GxDNHSblWjoWM=
X-Received: by 2002:a05:6512:3ba4:b0:52c:9468:c991 with SMTP id
 2adb3069b0e04-53d65de495bmr12150660e87.14.1730998638091; Thu, 07 Nov 2024
 08:57:18 -0800 (PST)
MIME-Version: 1.0
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-2-carlo.nonato@minervasys.tech> <6e6f8e2a-ea16-4b48-ac70-23e72ade2b1a@suse.com>
 <CAG+AhRUtmpB1uSd5kW7zNjyDdmBcVCta9t5Qdu6ND+RYx3VUfQ@mail.gmail.com> <3ee6d76d-25ee-4c14-a71a-e93d06812320@suse.com>
In-Reply-To: <3ee6d76d-25ee-4c14-a71a-e93d06812320@suse.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Thu, 7 Nov 2024 17:57:06 +0100
Message-ID: <CAG+AhRUEw035DVZtxGWuVkSx3aY5dkBacjZ4AC2N0jysa4fvKg@mail.gmail.com>
Subject: Re: [PATCH v9 01/13] xen/common: add cache coloring common code
To: Jan Beulich <jbeulich@suse.com>
Cc: andrea.bastoni@minervasys.tech, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
	Marco Solieri <marco.solieri@minervasys.tech>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Thu, Nov 7, 2024 at 10:05=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 06.11.2024 17:09, Carlo Nonato wrote:
> > On Tue, Nov 5, 2024 at 4:46=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >> On 25.10.2024 11:50, Carlo Nonato wrote:
> >>> --- a/xen/common/Kconfig
> >>> +++ b/xen/common/Kconfig
> >>> @@ -71,6 +71,9 @@ config HAS_IOPORTS
> >>>  config HAS_KEXEC
> >>>       bool
> >>>
> >>> +config HAS_LLC_COLORING
> >>> +     bool
> >>> +
> >>>  config HAS_PIRQ
> >>>       bool
> >>>
> >>> @@ -516,4 +519,23 @@ config TRACEBUFFER
> >>>         to be collected at run time for debugging or performance anal=
ysis.
> >>>         Memory and execution overhead when not active is minimal.
> >>>
> >>> +config LLC_COLORING
> >>> +     bool "Last Level Cache (LLC) coloring" if EXPERT
> >>> +     depends on HAS_LLC_COLORING
> >>> +     depends on !NUMA
> >>
> >> Instead of this dependency, wouldn't it be more natural to suppress th=
e
> >> setting of HAS_LLC_COLORING by an arch when NUMA is on?
> >
> > So moving the "depends on" in the HAS_LLC_COLORING definition? Yes I be=
lieve
> > it would be better.
>
> No. Putting it on an option without prompt will, iirc, only cause a warni=
ng
> when violated, but will otherwise have no real effect. The "select" of
> HAS_LLC_COLORING wants to become dependent upon !NUMA, until that combina=
tion
> was made work.

Ok, got it.

> >>> --- /dev/null
> >>> +++ b/xen/common/llc-coloring.c
> >>> @@ -0,0 +1,111 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>> +/*
> >>> + * Last Level Cache (LLC) coloring common code
> >>> + *
> >>> + * Copyright (C) 2022 Xilinx Inc.
> >>
> >> Does this need updating (if it can't be dropped)?
> >
> > I don't remember what's the current policy for these copyright lines.
> > Do you still use them? If they are used, should they reflect the histor=
y
> > of the revisions of the patch series? I mean, in v1 it was "2019 Xilinx=
 Inc."
> > 2023-2024 would then be MinervaSys.
>
> I don't know what the policy is either. I think it can be there or it can
> be omitted. Yet if it's there, I think it wants to be accurate at least a=
t
> the time a new file is being added. (These lines usually aren't updated
> when later changes are made to the files.)

Ok, makes sense.

> >>> +void __init llc_coloring_init(void)
> >>> +{
> >>> +    unsigned int way_size;
> >>> +
> >>> +    if ( llc_size && llc_nr_ways )
> >>> +    {
> >>> +        llc_coloring_enabled =3D true;
> >>> +        way_size =3D llc_size / llc_nr_ways;
> >>> +    }
> >>> +    else if ( !llc_coloring_enabled )
> >>> +        return;
> >>> +    else
> >>> +    {
> >>> +        way_size =3D get_llc_way_size();
> >>> +        if ( !way_size )
> >>> +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways=
' missing\n");
> >>> +    }
> >>> +
> >>> +    /*
> >>> +     * The maximum number of colors must be a power of 2 in order to=
 correctly
> >>> +     * map them to bits of an address.
> >>> +     */
> >>> +    max_nr_colors =3D way_size >> PAGE_SHIFT;
> >>
> >> This discards low bits of the quotient calculated above, bearing a cer=
tain
> >> risk that ...
> >>
> >>> +    if ( max_nr_colors & (max_nr_colors - 1) )
> >>> +        panic("Number of LLC colors (%u) isn't a power of 2\n", max_=
nr_colors);
> >>
> >> ... this panic() wrongly doesn't trigger.
> >
> > Yes, but I don't care if way_size isn't a power of 2.
>
> Well, you may not care, but imo the resulting configuration ought to refl=
ect
> what was requested on the command line (maybe unless e.g. documentation
> explicitly says otherwise). If way_size has low bits set, that wouldn't b=
e
> the case.

Ok.

> Jan

- Carlo


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 17:19:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 17:19:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832125.1247521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t96AW-0007th-9n; Thu, 07 Nov 2024 17:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832125.1247521; Thu, 07 Nov 2024 17:19: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 1t96AW-0007ta-6g; Thu, 07 Nov 2024 17:19:40 +0000
Received: by outflank-mailman (input) for mailman id 832125;
 Thu, 07 Nov 2024 17:19: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=GEtt=SC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t96AV-0007tU-Dr
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 17:19:39 +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 75cc7d68-9d2c-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 18:19:35 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9ec86a67feso204563266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 09:19:35 -0800 (PST)
Received: from localhost ([213.195.124.162]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2d7absm119807666b.179.2024.11.07.09.19.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Nov 2024 09:19: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: 75cc7d68-9d2c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc1Y2M3ZDY4LTlkMmMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMwOTk5OTc1LjUyMzgwNiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1730999975; x=1731604775; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=5uiozKql4La8jnILXuv5BTnGU3Py29MEA6j1yU5W8bg=;
        b=r/TuH25aZ0z/BW/CUkiSsXKo1/cI7tEa1CVSPtJzuJioGlL1aj8ir1btZZuaztC997
         tI0MY5g9XfRmiY5x0JOQ8uEviCfpEJPtegf5LD0GxMGacxM2WoTLCii8vTixg+V2ESrL
         J6UdhPCQJLF1sT4CpMrwanwATlS9d8mpVt+5I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1730999975; x=1731604775;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=5uiozKql4La8jnILXuv5BTnGU3Py29MEA6j1yU5W8bg=;
        b=mmaW9CJ/ZfNxSvQ7nWIrmw8PSFJN6whuLnRkQziM3psJUTs6JRYZ8ibDBaBEdni+Qm
         hZlHP4+XFdILR7R+hcl0j01N/sdg/5yIl5zwWwy4PGB9LNz0zl2m5G+mkUKqkL6L1cxy
         iDehjthAbS4XX+e96RbIQmXcPo8oxDRqdcGl4tttmunalfM5yj33NxO3hFM+9hoH3Gaf
         8vZ9cnRtuDs5/jjr94ADImA/pJ8UGOgHTI6RsRxCeGC3Z4bYyYguALh5kXwm/L/5QsLN
         lnld7ORWo/6BFM98UfQCtMcvDPtdjFkNZwJfsM4dJs5xDQUnvH1YQ0M2MM8bK5Hc2G7u
         HcDQ==
X-Forwarded-Encrypted: i=1; AJvYcCXKub6z3Z/6l1nT9QPzOTjH5kS2MwrkiM0ZW05W4wjbxeLCdndJRolZwcp0dt2lZgiSMar8QFlyTVg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxx1gj0+gB2SKI5/Y0k436KJtu58by2bRi30RjKXBT3rIhYvhwe
	0x4q0OXgt29hWAev8bBVqJIEx7HVWB5WQ+cq8sg9geLXKDezMO79gPf82TfxanWp8+euX69igP9
	k
X-Google-Smtp-Source: AGHT+IGodC2H459SjXXEndd9/3T38Bij95f4Lg+7qSdLBLeVID5PEPy+UpTUYmiHXaH6NUAzMzMtBg==
X-Received: by 2002:a17:907:86a2:b0:a9a:134:9887 with SMTP id a640c23a62f3a-a9de6167ad2mr4143256766b.41.1730999974664;
        Thu, 07 Nov 2024 09:19:34 -0800 (PST)
Date: Thu, 7 Nov 2024 18:19:33 +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 v2 1/4] x86/mm: introduce helpers to detect super page
 alignment
Message-ID: <Zyz2pYEjbh9SVnAl@macbook>
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-2-roger.pau@citrix.com>
 <85d6a128-965b-4f39-8d08-2b2084db65b4@suse.com>
 <ZyzlxiipPvbUjs0r@macbook>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ZyzlxiipPvbUjs0r@macbook>

On Thu, Nov 07, 2024 at 05:07:34PM +0100, Roger Pau MonnÃ© wrote:
> On Thu, Nov 07, 2024 at 11:42:11AM +0100, Jan Beulich wrote:
> > On 06.11.2024 13:29, Roger Pau Monne wrote:
> > > --- a/xen/arch/x86/include/asm/page.h
> > > +++ b/xen/arch/x86/include/asm/page.h
> > > @@ -200,6 +200,12 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
> > >  #define l4_table_offset(a)         \
> > >      (((a) >> L4_PAGETABLE_SHIFT) & (L4_PAGETABLE_ENTRIES - 1))
> > >  
> > > +/* Check if an address is aligned for a given slot level. */
> > > +#define SLOT_IS_ALIGNED(v, m, s) \
> > > +    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
> > 
> > The check involving an address and an MFN, I think the comment would better
> > also reflect this. "Check if a (va,mfn) tuple is suitably aligned to be
> > mapped by a large page at a given page table level"?
> > 
> > As to the name of this helper macro - "SLOT" can mean about anything when
> > not further qualified. If the macro was local to ...
> > 
> > > +#define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
> > > +#define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
> > > +
> > >  /* Convert a pointer to a page-table entry into pagetable slot index. */
> > >  #define pgentry_ptr_to_slot(_p)    \
> > >      (((unsigned long)(_p) & ~PAGE_MASK) / sizeof(*(_p)))
> > > --- a/xen/arch/x86/mm.c
> > > +++ b/xen/arch/x86/mm.c
> > 
> > ... this (sole) file using the derived ones, that might be acceptable. If
> > it's to remain in page.h, how about e.g. IS_LnE_ALIGNED()?
> 
> Since you expressed further concerns in the next patch, I will move it
> to being local to mm.c.  I don't have any other use-case, but assumed
> the macros are generic enough to be useful in other contexts.
> 
> > I further wonder whether it wouldn't be neater if just the level was passed
> > into the helper. Doing so wouldn't even require token concatenation (which
> > iirc both you and Andrew don't like in situations like this one), as the
> > mask can be calculated from just level and PAGETABLE_ORDER. At which point
> > it may even make sense to leave out the wrapper macros.
> 
> I can see what I can do.

Would something like:

#define IS_LnE_ALIGNED(v, m, n) \
    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << (PAGETABLE_ORDER * (n - 1))) - 1)

Defined only in the context of map_pages_to_xen() be OK with you?

I'm unsure whether it would be better if I still provided the
IS_L{2,3}E_ALIGNED() macros based on that, as IMO those macros made
the conditionals clearer to read.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 17:54:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 17:54:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832142.1247543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t96hz-0005Jl-4Z; Thu, 07 Nov 2024 17:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832142.1247543; Thu, 07 Nov 2024 17: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 1t96hz-0005Je-1X; Thu, 07 Nov 2024 17:54:15 +0000
Received: by outflank-mailman (input) for mailman id 832142;
 Thu, 07 Nov 2024 17:54: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t96hx-0005JY-10
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 17:54:13 +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 49176ad8-9d31-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 18:54:07 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9a4031f69fso214626266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 09:54:07 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17b64sm125570866b.39.2024.11.07.09.54.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 09:54: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: 49176ad8-9d31-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ5MTc2YWQ4LTlkMzEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDAyMDQ3Ljk0MjM0OSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731002047; x=1731606847; 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=ouFh+uwxQya7zFRHd/ppWV5/JAsH5GlDDv9E4Dq4I+w=;
        b=pB1jENt/Y/AvHXC0BlupryQSeCkZliioqTemjTLg+g8GoRu94lbcBp7wJ2VjN8H7Pf
         xY1abL9m1DLYT4HyzHM9hy7IhfzwjfqQbNzfb8m1yfg1SbMTMpK8tbBdTGsjba08xn7y
         vXkqjalU/CD4FqeJNzPcvsy6at1D4mBYAc+90=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731002047; x=1731606847;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ouFh+uwxQya7zFRHd/ppWV5/JAsH5GlDDv9E4Dq4I+w=;
        b=bOxLSuANXoeB2PUIxALx2689hqeXbeyyRZmVKAeY7W6hhsGygniS170v+vmLodcxCc
         9qjJ72BziuwZvygXp/XFDyvfHCWjIBmcZMhs7DennDM1Xtw48RzUarPsCyASnxXw4hYG
         /YvquQIWCDLJFw5BizVCGr7/rk8tOHW0N99OqGAuMpFo2GCrDIxpFYlI4kbH0dWoTZTP
         /GktyO8FhH6T7Y5FdL8chyDPVFMowV+V4nyZ/FA4AhsgMdF7rliXL5hxmNgr3Byko/bu
         ddcPk2BoSwskNgMFxoG0LsgowWu8bEihwLb1OVAjxuyTNvaJvjGFr7+xypuSZKj2yZCs
         W+Kg==
X-Forwarded-Encrypted: i=1; AJvYcCVjzVCdIyUXMABUjCgyXyCDhQoYRZWrBx7zrobZ3ncdfJlpIZF5Azt88YaVqxdJrOrSsd0PWRpflpk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YynTP5Iun6FHwnSwur0QFsgn+XvMEeju3Z5T1DXOp2fSFOx1lPb
	ZC8CHRdtAO8Ff3bYrg7VsuIxpy6/6gLI7GuviAQVW89BZlf/kzNVlHOX3fPM6uA=
X-Google-Smtp-Source: AGHT+IEo1DlSsBRdQI2Jzyq1eCOq4EFIj3ncqvGkdZW/VB0Sq3Y2xb+RomP0GhwndXt5nj9CQQ1pQA==
X-Received: by 2002:a17:907:7245:b0:a99:f8e2:edec with SMTP id a640c23a62f3a-a9de5d6f21cmr4480182366b.21.1731002047247;
        Thu, 07 Nov 2024 09:54:07 -0800 (PST)
Message-ID: <0579d685-392a-4707-af8c-49445d8e4000@citrix.com>
Date: Thu, 7 Nov 2024 17:54:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [TEST_ARTIFACTS PATCH v1] scripts: add lzo to the x86_64 alpine
 rootfs
To: Javi Merino <javi.merino@cloud.com>, xen-devel@lists.xenproject.org
Cc: Victor Lira <victorm.lira@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241107142012.2593333-1-javi.merino@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241107142012.2593333-1-javi.merino@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/11/2024 2:19 pm, Javi Merino wrote:
> In the qemu-alpine-x86_64-gcc test, we want to test libxenguest built
> with all libraries.  If we add lzo-dev to the alpine:3.18 container,
> libxenguest is linked against it.  However, as the initrd in the
> test-artifacts does not contain lzo, the qemu-alpine-x86_64-gcc gitlab
> CI job fails with:
>
>   + bash /etc/init.d/xencommons start
>   Starting /usr/local/sbin/xenstored...
>   /etc/xen/scripts/launch-xenstore: line 90: echo: write error: Invalid argument
>   Setting domain 0 name, domid and JSON config...
>   Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
>   Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
>   Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
>   Starting xenconsoled...
>   Starting QEMU as disk backend for dom0
>   + xl list
>   Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
>   Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
>   Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
>   + xl create -c /root/test.cfg
>   Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
>   Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
>   Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
>    *   Execution of "/etc/local.d/xen.start" failed.
>
> Add lzo to the initrd that becomes the rootfs to install liblzo2.so.2 .
>
> Signed-off-by: Javi Merino <javi.merino@cloud.com>

Ah - this is a good example of the problem I opined about in
https://lore.kernel.org/xen-devel/86a60aec-f259-41be-92a0-ce66ce24f4ae@citrix.com/T/#u

For now, I'll take this and use it as a test of whether I can drive the
new test-artefacts repo.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 19:59:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 19:59:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832162.1247577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t98f2-0002wL-Rj; Thu, 07 Nov 2024 19:59:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832162.1247577; Thu, 07 Nov 2024 19:59: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 1t98f2-0002wE-PA; Thu, 07 Nov 2024 19:59:20 +0000
Received: by outflank-mailman (input) for mailman id 832162;
 Thu, 07 Nov 2024 19:59: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=2I65=SC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t98f0-0002w6-RG
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 19:59:19 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20622.outbound.protection.outlook.com
 [2a01:111:f403:2409::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c03320d9-9d42-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 20:59:10 +0100 (CET)
Received: from DS7PR03CA0350.namprd03.prod.outlook.com (2603:10b6:8:55::27) by
 DM4PR12MB6011.namprd12.prod.outlook.com (2603:10b6:8:6b::14) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8137.19; Thu, 7 Nov 2024 19:59:06 +0000
Received: from DS2PEPF00003444.namprd04.prod.outlook.com
 (2603:10b6:8:55:cafe::7) by DS7PR03CA0350.outlook.office365.com
 (2603:10b6:8:55::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30 via Frontend
 Transport; Thu, 7 Nov 2024 19:59:06 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS2PEPF00003444.mail.protection.outlook.com (10.167.17.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 19:59:05 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 7 Nov
 2024 13:59:04 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Nov
 2024 13:59:04 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 7 Nov 2024 13:59:03 -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: c03320d9-9d42-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwOTo6NjIyIiwiaGVsbyI6Ik5BTTA0LURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMwMzMyMGQ5LTlkNDItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDA5NTUwLjI5NDE5LCJzZW5kZXIiOiJqYXNvbi5hbmRyeXVrQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Un44ICz1tHtJjorgdgKMVi3hhcSxzCQg0sTm7C3RKmwagD98Zb1+8tpvICt//2CpZZuAAtiosbGA0uCNAreh5rSrzX7IX8E7b1wcQLSE6d/cT6HYAqm6Tmv/HSihgOTAttr1ZkxcUdzo8NE96W+/lt1HcrQxwaH8rn0qOOJI6PJ7p9fZuEq9xfFvUIPFPhKDNAnP221fOoXkJ3/FNzhj9JLJKB9xFQ4F36L0GZkBNp296FlYM2It4lLxr//xf+37XQiq5uNbECxDuCgqDi1F6Fjyq4EcHtAXn7HvlwVU19Rym/EzLvjlrplCGfSXlMGJiew1GbCDTLGzaGKpTiRduw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ErXqcHMPA9yICIr4IEoPKUPrzh0rH2SAjbFJPlGRQIQ=;
 b=pyLhzOrYzOwI8YG4ZWpQyIc20gHW62ovb0A6g91oGM5pB/ffF7gWGj/GaCx8iG9T/a4iMircdy29E9JV5zUQgn0875h9sI9t8fDpoylqZhqaLbARnolG/xOj+NFQjANapPm3G8/k0p2a9bvZN75sdYjcwDM+j54JyaWHkZjDaN0PZyv2bIyj/nTL9dDN6lwwVQNFIYFgX4CO2K5dtFxDRuMYrPPc5qmyftLkLisY73c3C40tk4AnUqpzbzezwbdjtpZbmGSKt8B8Ac3r8VHeKxCrQ69A/iMJoTKNBRGUy8L8cVMpuSFi08gC/rbKFrXAPc5D5h+KEMa6lyjORinG+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=ErXqcHMPA9yICIr4IEoPKUPrzh0rH2SAjbFJPlGRQIQ=;
 b=eruB3VTs25SfUjjSVeh6d7F2boSSbeKWx6+Ik0FhmaohQmQTaOqZkB/ifI7VlkOgEuYI/mLL4UHUAqo4ayb6VqPq5+y0gle301rHNlUmsK4tZWxqM2+FdJuDeYl6KSCP7yiLgU+OppIzSglVqk2msjChP/7RJfiqsxGsKpY+LVk=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <8642417d-ba48-4fc7-b893-a34044d319e0@amd.com>
Date: Thu, 7 Nov 2024 14:59:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 04/12] x86/boot: introduce module release
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-5-dpsmith@apertussolutions.com>
 <773dbe75-d1d3-41ea-8ff7-c031e0e9a920@amd.com>
 <599e55ba-b9d6-4fc9-bf59-ddd95b9a2482@apertussolutions.com>
Content-Language: en-US
In-Reply-To: <599e55ba-b9d6-4fc9-bf59-ddd95b9a2482@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003444:EE_|DM4PR12MB6011:EE_
X-MS-Office365-Filtering-Correlation-Id: f647d835-1136-40c6-bf38-08dcff66a267
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YVhSbFJRejNTcjlweUJsbGNsTTQ4WkFwQWxrbm5YcXU1alR3bEVaa08zNkk5?=
 =?utf-8?B?MEVoNVNteFJmMGJNZVgrM1BIM1RVU3NpSWhmSHlsZ09GaWZJMFVmaFlHUktE?=
 =?utf-8?B?TjhWd0FNTkFTM0YvSEw2RHZPUi9YOTlYWWZmb2pPNVNCdG9hZUFTWkFoVkcv?=
 =?utf-8?B?dlRKTTBNYldoODRVcGpXQm11Y0c0RkkrYlQ0WFVVNFJtUXc5Ynp1aDZPLzIw?=
 =?utf-8?B?MVhHVzJ1VVV5bmJaNkNDMDVEVWpkazZySW9SNk8rQWZYTHA0UDZRS1Zzbk1l?=
 =?utf-8?B?bTVOcmJhbFpxYi8rQ0U3V2xMa2tLK3BtQlRPVWpiSHpaTDdMdGZoZWROaDNh?=
 =?utf-8?B?Q2dpeldHellEeDBmMU9LRU13aTNvZDYyU0RNUGhGRmtwa2xwVUxDTDlJdU9y?=
 =?utf-8?B?VHNjdWltcmZlK1RlbFN1eEQ5TE1lYVQ4YWtUK0JvZ2czWTNCTWhDQ2Y5Nmxx?=
 =?utf-8?B?Vlc3MDVYYVhzaGMvMnNLS0ZEdHJyOGthQ3lQVUJzTGxJV3doYXZLenorbDc4?=
 =?utf-8?B?WEpvaWNzVnQrUmxGV0lxbSsyc2tpRGNielBhZ3Jpc1laZlZ1amRQVmw3NzZu?=
 =?utf-8?B?VVNmVTBxcDlIcTBuUm5EWXNOWjBxQTVIVHUwWGJhYjdzR0hUUW8wdmxlVmUw?=
 =?utf-8?B?Rmo0ZGIxRjBuM1hnWW91Uk1pZ0pCcHpWWlQxSzVYS0NIUmZUcThITmFZM0xx?=
 =?utf-8?B?d3Exd0Z5NVpNaysyRHBkYWRYbHNEbERSU2NYRGlyTUl4THBITk1UZThRL2d0?=
 =?utf-8?B?YmNmUGpJdEtleENKMnVuaE9POWoxdm9pMGU2RUdUT1hZU21HVUxrYkcya0VR?=
 =?utf-8?B?UXl1V0JzVmw4Um5jTFRSbkF4Ulk1NnR0eHBHeFNvc0w5YVYxVytjUU9FUXI3?=
 =?utf-8?B?Q1o4RjI3b2I2NDd5dHIya0dlc3J1Ym9mS09qVzVzNmhBWitGT2xOYXBJcDk3?=
 =?utf-8?B?VzdWd0dPVS9WdUlyN1JiWWl4bGdlRnZlTXhYQWZhSmw2UEdRMnFvb3FmUzBT?=
 =?utf-8?B?TFpBb1pmdm4waks5Q1lNYkdrKzBKOWg4bk1lOUh3SThqVnc5S09aZkNTMDlM?=
 =?utf-8?B?VDFEaXFEQmhsWGVnRk9oaWZmVkRDWW5iSUFLR015cTcveXNaSjM0VjVIU0hM?=
 =?utf-8?B?NW5SNGROTThxeEU4RmN3K25TT1lGSlZKKzlxbHREdjA2WTRGSFpJd0hkMnha?=
 =?utf-8?B?OHBzK09MbkdPalpEbEwvaVJNRDQ5b1BKUGViNTRYYTQxUUlMTGtVbkxLNzFD?=
 =?utf-8?B?aFZhS1RPQVljQ1Bja1hmblVNV1JKNjRIRVVUSVlIbmhnUGlFd05aQmI5a3VO?=
 =?utf-8?B?Rm5HNWhLZk1oSWxicEJKaGFsb1p0TzFNUHlhQ25WNnUxOXpNYUtOYytxQ1RG?=
 =?utf-8?B?Q2pSVUFSVTFKUEFIcjBsL0tiSGdPYkNXUUc3N3V4WEx0TitSanNMUlk5MDB0?=
 =?utf-8?B?ZlNVR1NYL0RWSDk3cTRyZTFBUXRsWkxlaTNOWVVBNWVNLzJBSDhpa0NVSEFl?=
 =?utf-8?B?dk1FRk10YWlsWmVsVTdJYU9MbTM3K0didU12aHVtTnVKYXoyTjIzUkRjRUxF?=
 =?utf-8?B?MnMyL2IwdldicERPREdNUU1xeHp6TUVnaWg0dGpBMlk3N3lpc3REQURNRUZG?=
 =?utf-8?B?c05kYUluMzc2czFIU2gwblZmYUFCYldka2o3bXRiMzdjZ1Bjd2RqL2ZYcWMv?=
 =?utf-8?B?bjBDZFBiK3VQSHYwUmtxcThKSnFISTdlNFBPNHpDZGZQQ0ZrWnVLUHZrSEIz?=
 =?utf-8?B?d3dqcHBFM1BjL2JKMzlKOEpGTi9seEQ3R29jQ0t1eFYzVXEwQTJQTGZDQVFN?=
 =?utf-8?B?MEZlWFZqSkdpRHBHdTVidjRkUzV4Kyswdy9yanMybUUvVHdjci9XMExid0Nv?=
 =?utf-8?B?STd2alhDeGZPY211Mk5pM0ZXb0RzZ1RhdXpHeGM5UktQeVE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2024 19:59:05.5129
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f647d835-1136-40c6-bf38-08dcff66a267
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003444.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6011

On 2024-11-06 19:46, Daniel P. Smith wrote:
> On 11/6/24 17:16, Jason Andryuk wrote:
>> On 2024-11-02 13:25, Daniel P. Smith wrote:
>>> A precarious approach was used to release the pages used to hold a 
>>> boot module.
>>> The precariousness stemmed from the fact that in the case of PV dom0, 
>>> the
>>> initrd module pages may be either mapped or explicitly copied into 
>>> the dom0
>>> address space. So to handle this situation, the PV dom0 construction 
>>> code will
>>> set the size of the module to zero, relying on 
>>> discard_initial_images() to skip
>>> any modules with a size of zero.
>>>
>>> A function is introduced to release a module when it is no longer 
>>> needed that
>>> accepts a boolean parameter, free_mem, to indicate if the 
>>> corresponding pages
>>> can be freed. To track that a module has been released, the boot 
>>> module flag
>>> `released` is introduced.
>>>
>>> The previous release model was a free all at once except those of 
>>> size zeros,
>>> which would handle any unused modules passed. The new model is one 
>>> of, free
>>> consumed module after usage is complete, thus unconsumed modules do 
>>> not have a
>>> consumer to free them.
>>
>> Slightly confusing.Â  Maybe just "The new model is to free modules 
>> after they are consumed.Â  Thus unconsumed modules are not freed."
> 
> okay.
> 
>>> To address this, the discard_uknown_boot_modules() is
>>
>> "unknown"
> 
> Ack
> 
>>> introduced and called after the last module identification occurs, 
>>> initrd, to
>>> free the pages of any boot modules that are identified as not being 
>>> released.
>>> After domain construction completes, all modules should be freed. A 
>>> walk of the
>>> boot modules is added after domain construction to validate and 
>>> notify if a
>>> module is found not to have been released.
>>>
>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> ---

>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  struct boot_module *bm = &bi->mods[i];
>>> +
>>> +Â Â Â Â Â Â Â  if ( bm == NULL || bm->released )
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>>> -Â Â Â Â Â Â Â  init_domheap_pages(start, start + PAGE_ALIGN(size));
>>> +Â Â Â Â Â Â Â  release_boot_module(bm, true);
>>> +Â Â Â Â Â Â Â  count++;
>>> Â Â Â Â Â  }
>>> -Â Â Â  bi->nr_modules = 0;
>>> +Â Â Â  if ( count )
>>> +Â Â Â Â Â Â Â  printk(XENLOG_DEBUG "Releasing pages for uknown boot module 
>>> %d\n",
>>
>> "unknown".Â  Since the operation already happened, maybe "Released 
>> pages for %d unknown boot modules"?Â  I'm not sure of the value of that 
>> message.Â  It would be more informative to provide the module index and 
>> maybe a page count.Â  The index would at least point to which module is 
>> unused.
> 
> Ack to unknown.
> 
> Can adjust the phrasing, the question is there a desire to have a 
> message for every boot module freed. Guess I could do a single log line 
> split across multiple printks, Thinking about the case where someone 
> tried to abuse the interface by loading a bunch of unused modules.

It's 63 modules, so not too many.  And this is the boot path, so it's 
administrator controlled and shouldn't really be subject to abuse.

I think printing the index of unused modules makes the message useful. 
If a module is provided to Xen, but Xen doesn't use it, it is worth 
flagging which one.  As an example, if I thought module 3 was ucode, but 
it isn't getting used, that is useful information for further investigation.

>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  count);
>>> Â  }
>>> Â  static void __init init_idle_domain(void)
>>> @@ -2111,6 +2139,8 @@ void asmlinkage __init noreturn __start_xen(void)
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  initrdidx);
>>> Â Â Â Â Â  }
>>> +Â Â Â  discard_unknown_boot_modules();
>>> +
>>> Â Â Â Â Â  /*
>>> Â Â Â Â Â Â  * We're going to setup domain0 using the module(s) that we 
>>> stashed safely
>>> Â Â Â Â Â Â  * above our heap. The second module, if present, is an initrd 
>>> ramdisk.
>>> @@ -2122,6 +2152,11 @@ void asmlinkage __init noreturn __start_xen(void)
>>> Â Â Â Â Â  if ( !dom0 )
>>> Â Â Â Â Â Â Â Â Â  panic("Could not set up DOM0 guest OS\n");
>>> +Â Â Â  /* Check and warn if any modules did not get released */
>>> +Â Â Â  for ( i = 0; i < bi->nr_modules; i++ )
>>> +Â Â Â Â Â Â Â  if ( !bi->mods[i].released )
>>> +Â Â Â Â Â Â Â Â Â Â Â  printk(XENLOG_ERR "Boot module %d not released, memory 
>>> leaked", i);
>>> +
>>
>> Why not release the memory here instead of leaking it?
> 
> Because you don't know if it was mapped or consumed.

So this is more of a sanity check since it should not trigger?  i.e. 
it's a bug to see this message.

>> I feel like the corner case of mapping the dom0 initrd is leading to 
>> this manual approach or releasing modules individually.Â  That logic 
>> then has to be spread around.Â  discard_initial_images() kept the logic 
>> centralized.Â  Maybe just replace the mod_end == 0 special case with a 
>> "don't release me" flag that is checked in discard_initial_images()?
> 
> That is what started me at the options to deal with it. The two I came 
> up with was a flag and this approach. Weighing the pros/cons of the two, 
> the deciding factor is when multi-domain construction is introduced. 
> With multi-domain with a large number of domains, a balance has to be 
> struck between holding all the kernels and ramdisks in memory plus being 
> able to allocate the desired amount of memory for each domain.

So you're saying that by piece-wise free-ing memory, you can have more 
domUs loaded by the boot loader?  If free-ing is delayed to the end, 
memory is tied up that could otherwise be assigned to domUs?

Is this the real motivation?  If so, it belongs in the commit message. 
As it is, the commit message is lacking in a specify reason why this 
change is needed.

> Perhaps a 
> balance can be struck, with a discard_consumed_boot_modules() that walks 
> the boot module list, and discard the ones consumed. While only dom0 can 
> be constructed, it would be called once after create_dom0 call returns 
> (per Andy's suggestion in response to this comment). An expansion on 
> this could be that instead of using a free flag, use a ref count that is 
> incremented as it is claimed and the decremented when it has been consumed.

Are you expecting 1 kernel image gets used to create N domUs?  Or are 
you only handling 1:1?

Is mapping the initrd only expected for a single PV dom0, or do you 
envision mapping multiple initrds for multiple PV domUs?

It seems to me that more mapping might help alleviate keeping memory 
tied up.  Freeing XSM and ucode early helps, but those aren't 
particularly big.  An initrd in the 100s of MBs is significant though. 
If you hyperlaunch Xen and 2 domUs, you'd want to be able to assign ~all 
the memory.  Losing 2x ~100MB as unassigned for copies of the initrds is 
wasteful.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 20:47:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 20:47:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832170.1247587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t99Pq-0000py-A6; Thu, 07 Nov 2024 20:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832170.1247587; Thu, 07 Nov 2024 20: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 1t99Pq-0000pr-6p; Thu, 07 Nov 2024 20:47:42 +0000
Received: by outflank-mailman (input) for mailman id 832170;
 Thu, 07 Nov 2024 20:47: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=2I65=SC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t99Pp-0000pl-MF
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 20:47:41 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20622.outbound.protection.outlook.com
 [2a01:111:f403:2408::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82ea36fe-9d49-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 21:47:33 +0100 (CET)
Received: from MN2PR18CA0003.namprd18.prod.outlook.com (2603:10b6:208:23c::8)
 by SA3PR12MB9179.namprd12.prod.outlook.com (2603:10b6:806:3a1::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Thu, 7 Nov
 2024 20:47:28 +0000
Received: from BL6PEPF00020E61.namprd04.prod.outlook.com
 (2603:10b6:208:23c:cafe::14) by MN2PR18CA0003.outlook.office365.com
 (2603:10b6:208:23c::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Thu, 7 Nov 2024 20:47:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E61.mail.protection.outlook.com (10.167.249.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 20:47:28 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 7 Nov
 2024 14:47:27 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Nov
 2024 14:47:27 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 7 Nov 2024 14:47: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: 82ea36fe-9d49-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwODo6NjIyIiwiaGVsbyI6Ik5BTTA0LUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjgyZWEzNmZlLTlkNDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDEyNDUzLjc4MDIxMSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eL7xJ1j4UIuiXAffdgs0tNb8WZe1e1KeQRo9jmK6ljS2UMTA6WHaac0QCkC5uJ1RAuRkRL0wxXpxcsWnpoUzDVMExC5Dcjvzq0UCwT48fexewRYBbq2sgSEEjB/SXo2Jg7/FINLkgtsAS60FhIo3uR0WsRIBLwgBGlk2pt9S5Om4fQn5qhNRycqSmmZ40p9Nj11GVZHZlD6loBF1l/qKFf/fH4nKCbUBnMUYTYVOLxRc+Q3lhi93/dLuCWywtWT+z47Mtat1QPe5XXhupauOWfUbMo/24DOQ1t2bVMs7505GKPLtgm2Qdqd5ASFUTW0AePWxZRgFKOiM4k3YFkiJMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0Gp1VITgRuUgB5Q4DDZz/CZ+vfbhwymosWB1g6D1bi0=;
 b=pHmATzD20ZMp5ZdCcymgsxuQWcNwEC7dczEcu/HeYQAZzIZMb2drjXId9/sqFwwQunMLuSFJ8BfpOnpFqPZBXFPGYGItlTLffOmF4V8lD14wxR4uj6QczbIWvP0WO/MV1jbcOArpB9SMWjtG/+75/RbacMi02O/Bwr6EDAQgfznRUGHucnv08jGH2Cnoejg0WXq5YZ4zElMee//K0IukXABjJAoIiFqIO+5p7JDBP1+xJEOYb+lZ2HjHJys6XQUkZiEiGz7b6nJ5Zd/o9aF8IP8YqwgjlMEagnUDwlrn9Lf/2oN1uTN26MrnskLUo9qxSLonKIPxjxfTkgFGyqkVlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=0Gp1VITgRuUgB5Q4DDZz/CZ+vfbhwymosWB1g6D1bi0=;
 b=uAZ2svh0m8NLxbDfXOMTynxJWWLrvsdbMjZ2KpfhbUQYimUpz5N1cHuKxdQr5pozDR++GKB8a76r05Gx8TuYjzDwdTeAjrG16aSbJU+aF6wWhaTqrROnOUeA8jZpkGo+wEu1Q7mcvzhFO9CWzbLhtTif5X8gvtJliIJgjuttin4=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <bd4fa542-7e05-463d-99d7-b5c57781a56e@amd.com>
Date: Thu, 7 Nov 2024 15:47:25 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/12] x86/boot: add start and size fields to struct
 boot_module
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-10-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241102172551.17233-10-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E61:EE_|SA3PR12MB9179:EE_
X-MS-Office365-Filtering-Correlation-Id: 101c83f4-d6a5-4765-253d-08dcff6d647a
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:
	=?utf-8?B?d0V5c1g5Q25yQTNvUnI1RzVGTlFZYjhJQ3l1UTcwQkN2R0l0SGJxZHdkZmRm?=
 =?utf-8?B?RUZPTlZHelRNNGVSa2drZHc0c3BIMUVqY0V2TlVlcEVkaFh5YmpRNVhhR2Mw?=
 =?utf-8?B?VytXdllxMUJmRnlUcUhDeHVzT0l1VjlYT2UySmdlR3ZkV0VmU3UxdUczdGdx?=
 =?utf-8?B?VTQ1cGZHRUNkdWVTcnlzNDBZcHhFaWFMa0VSWkdtK2VYd2d3MTJzdG55OWht?=
 =?utf-8?B?Ly9tbm0vOG1yMzdBOUdYZVE0cno1VUVNTUJ1UDJqWXdZWUVQUzdySXNpc0Vm?=
 =?utf-8?B?T3o3UHNMbmdzWW9vVVJGdDN5cndObzJQMmQ2WCtYaWNheTgzZWxyVVNrZTc4?=
 =?utf-8?B?TnpqK2RVY2dSZGRIejVTRUhKZHVvYXRlNC9iY2lxRDNwUXp0eFVJUk9EWUNh?=
 =?utf-8?B?dTdlSUgzeW9NT2NLeG5yc3RmMmsySUhKR2RJQURPRGxGUlV5Umx6Q1ZDYlRy?=
 =?utf-8?B?ZXo5U1ZRT1d3bGQvRFdISndUQzNNbzUrRDhEcEhla0t0QkdoNlArWEZwRHVJ?=
 =?utf-8?B?U2JWZmoxelhEVzd6QUkxcVIxSTBsMkJxbmpvcXU1dDJrU1ZERWlaR0EvYUlu?=
 =?utf-8?B?bWZaOGdNYm5OYTdyUGRlWm1vbkxTbkRrSnhScFJWY3hFdkEyUjBNVlRheW5P?=
 =?utf-8?B?aXJXRGVUdThKRjljeVZKbjlLR0tyN0RTdnhmWWcxWGhZdUJNbkZjbHNtY1hv?=
 =?utf-8?B?cEcrbGttdWJDMTZQaE1JRWRVdlE4bklwaWczaEhZL2FSMU93UmV4V0Rhb2w1?=
 =?utf-8?B?VXBzdEFPN0d0Tkw0TjlsK2NNY3NmM2NmZ2FZcVdZU3FJa0cxNE9HcENFL212?=
 =?utf-8?B?VU9HVDBQNXVtTDVBYXFNU0dpekNIaUMvMnZGdkt3MkJyOW9lQzhYNGl0WSth?=
 =?utf-8?B?ZEFDbUNBcU1WT0FPenBDd0U4dHo4WG16L3U1QkhuVnk3RHRJa040RDkyS0Zm?=
 =?utf-8?B?NmFyQXRoT3FidVY3QWVMWDhKOFZWUkg2bHNoeEVESkVCSnNPVUE1SFJBQVlt?=
 =?utf-8?B?WDlVQ284RTNoc1FpNjRubW02QzUxd2Q1ZHRoMS9UZzMzTFBveFhtT3JUUk4x?=
 =?utf-8?B?emY4OTRpc0k5eE1McE1MRU5KelZ4YnFLUG5va3BtSlpNVFRzRUVLdnR2QWR3?=
 =?utf-8?B?K1liMGY3SlcrWXd4K2M5T1V2ZDlEZVBlbGFXdXNuNU9VaTRCemNscExhaTNq?=
 =?utf-8?B?WWRTYUw1eFAvQ1RmdEJ0THhpMWF0VVozekRRT00yK0VKM0hGNXZJRmNYMTR3?=
 =?utf-8?B?OThZMGFLWWFKZVJocHlkKzFYUzI3a0NYRFoyWFVkN2NnQ3R0a0lvSGgxczNL?=
 =?utf-8?B?QnVkK0ovcjhnT2p6cmFia2NneDN5Zm1RN043SzdFRGo0K2NIdUtxWWs0eTIy?=
 =?utf-8?B?d3RRc3k2NHl1ejlkVmVna2YvdVVlaWhIUlZlRDNZaG1MamQ1QmwrLy83SG5j?=
 =?utf-8?B?aXhmR3BNLzdoempxbjM4azRoQ1U3dTBNcU9ZMFpPdEpoOFNMQ08vUWFzckNH?=
 =?utf-8?B?WGtSYzZjakJRM1JCRy9FajhzN2RJdFhiMzN2dXNZTDk5LzZYam03YTF6UU12?=
 =?utf-8?B?d1g4aWw2MjRGeWJMa1ZhVU5mL3A4KzdwTG9COGhMb094Vis4ZHpmYjV2U09w?=
 =?utf-8?B?RUkwR1JKMzNwV1RGUER6ZVMra09PNjBhL3NTZGVaODJ4MEx3dHNwWDFXQjR6?=
 =?utf-8?B?Lzg5YnN0SUlNdnVvOW1kT1J1Mm1hamQ0VEI3ekdEQ1VkOE1kSmxydWlRRVVW?=
 =?utf-8?B?NkhQSDJHNFh6SFpsb2FQaStRaGpWWWxlS0V2L1lHSW9NNHFJY3c3dHZCeTJF?=
 =?utf-8?B?T0JNWjZmZHVPdC9SL0ZiL20xV1duS1VGZCtpVDhZYlFOd0wrZDV4c25kQ2hk?=
 =?utf-8?B?bXpYSm1LTDBVTit1dThqY0VxZXJzb0hiQlVmcFh1My9ERGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 07 Nov 2024 20:47:28.1387
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 101c83f4-d6a5-4765-253d-08dcff6d647a
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E61.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9179

On 2024-11-02 13:25, Daniel P. Smith wrote:
> Introduce the start and size fields to struct boot_module and
> assigns their value during boot_info construction. All uses of module_t to get
> the address and size of a module are replaced with start and size.
> 
> The EFI entry point is a special case, as the EFI file loading boot service may
> load a file beyond the 4G barrier. As a result, to make the address fit in the
> 32bit integer used by the MB1 module_t structure, the frame number is stored in
> mod_start and size in mod_end. Until the EFI entry point is enlightened to work
> with boot_info and boot_module, multiboot_fill_boot_info will handle the
> alternate values in mod_start and mod_end when EFI is detected.
> 
> A result of the switch to start/size removes all uses of the mod field in
> struct boot_modules, along with the uses of bootstra_map() and release_module()
> functions. With all usage gone, they all are dropped here.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> --
> Changes since v7:
> - add the start/size change to bootstrap_map_bm()
> - convert all BM start/size when introduced, consolidates:
>      x86/boot: populate boot module for xen entry
>      x86/boot: transition relocation calculations to struct boot_module
> - consolidates all the removal commits
> 
> Changes since v6:
> - put the efi conversion for mod_start and mod_end back along with check
> - dropped unnecessary cast
> - updated the population of start and size fields to take into account efi
> 
> Changes since v5:
> - switched EFI population of mod_start/mod_end to addresses
> 
> a#    edit 336ac1fc0019 x86/boot: introduce boot domain
> ---

> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index d9785acf89b6..18b93d6a272a 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -313,13 +313,29 @@ static struct boot_info *__init multiboot_fill_boot_info(
>        */
>       for ( i = 0; i < MAX_NR_BOOTMODS && i < bi->nr_modules; i++ )
>       {
> -        bi->mods[i].mod = &mods[i];
> -
>           bi->mods[i].cmdline_pa = mods[i].string;
> +
> +        if ( !efi_enabled(EFI_LOADER) )
> +        {
> +            /*
> +             * The EFI loader gives us modules which are already frame/size.
> +             * Switch back to address/size.
> +             */

This comment...

> +            bi->mods[i].start = mods[i].mod_start;
> +            bi->mods[i].size = mods[i].mod_end - mods[i].mod_start;
> +        }
> +        else
> +        {
> +            /*
> +             * PVH and BIOS loaders give us modules which are start/end.
> +             * Switch to address/size.
> +             */

And this comment are reversed?  But I would just use positive logic:

if ( efi_enabled(EFI_LOADER) )
    /* EFI case */
else
    /* non-EFI */

> +            bi->mods[i].start = pfn_to_paddr(mods[i].mod_start);
> +            bi->mods[i].size = mods[i].mod_end;
> +        }
>       }
>   
>       /* Variable 'i' should be one entry past the last module. */
> -    bi->mods[i].mod = &mods[bi->nr_modules];
>       bi->mods[i].type = BOOTMOD_XEN;
>   
>       return bi;
> @@ -335,8 +351,8 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
>   
>       for ( nr = i = 0; i < bi->nr_modules; ++i )
>       {
> -        unsigned long start = bi->mods[i].mod->mod_start;
> -        unsigned long end   = start + PFN_UP(bi->mods[i].mod->mod_end);
> +        unsigned long start = bi->mods[i].start;

This should be paddr_to_pfn(bi->mods[i].start)?

> +        unsigned long end   = start + PFN_UP(bi->mods[i].size);
>   
>           if ( end > node_start && node_end > start )
>               nr += min(node_end, end) - max(node_start, start);

> @@ -1745,13 +1733,11 @@ void asmlinkage __init noreturn __start_xen(void)
>   
>       for ( i = 0; i < bi->nr_modules; ++i )
>       {
> -        const struct boot_module *bm = &bi->mods[i];
> +        unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
>   
> -        set_pdx_range(bm->mod->mod_start,
> -                      bm->mod->mod_start + PFN_UP(bm->mod->mod_end));
> -        map_pages_to_xen((unsigned long)mfn_to_virt(bm->mod->mod_start),
> -                         _mfn(bm->mod->mod_start),
> -                         PFN_UP(bm->mod->mod_end), PAGE_HYPERVISOR);
> +        set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s) + PFN_UP(l));

This is fine today since s (.start) is checked for page alignment.  The 
other option would be `paddr_to_pfn(s + l) + 1`, but I'm not sure that 
is an improvement.

You don't have to change anything.  Just noting something I noticed.

Regards,
Jason

> +        map_pages_to_xen((unsigned long)maddr_to_virt(s), maddr_to_mfn(s),
> +                         PFN_UP(l), PAGE_HYPERVISOR);
>       }
>   
>   #ifdef CONFIG_KEXEC


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 20:58:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 20:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832185.1247597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t99aa-0002dz-Bg; Thu, 07 Nov 2024 20:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832185.1247597; Thu, 07 Nov 2024 20: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 1t99aa-0002ds-8w; Thu, 07 Nov 2024 20:58:48 +0000
Received: by outflank-mailman (input) for mailman id 832185;
 Thu, 07 Nov 2024 20: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=2I65=SC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t99aZ-0002dm-0Y
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 20:58:47 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2415::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 11ff62cd-9d4b-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 21:58:43 +0100 (CET)
Received: from CY5PR15CA0185.namprd15.prod.outlook.com (2603:10b6:930:81::24)
 by CY5PR12MB6226.namprd12.prod.outlook.com (2603:10b6:930:22::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.18; Thu, 7 Nov
 2024 20:58:39 +0000
Received: from CY4PEPF0000EE3D.namprd03.prod.outlook.com
 (2603:10b6:930:81:cafe::a5) by CY5PR15CA0185.outlook.office365.com
 (2603:10b6:930:81::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Thu, 7 Nov 2024 20:58:38 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE3D.mail.protection.outlook.com (10.167.242.15) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 20:58:38 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Thu, 7 Nov
 2024 14:58:37 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Nov
 2024 14:58:37 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 7 Nov 2024 14:58: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: 11ff62cd-9d4b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjBkIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjExZmY2MmNkLTlkNGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDEzMTIzLjQ2NzU1MSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ScUzk6qu1RnjWQldmFeBiApbj9E9WGtJbWGlTF1Zun5MzxEAXX/HOnsklxKLsn9Awdjd5TGLjsWjBMwycYh2Fj2SiUlTbRh6d1Wv3G6UzOwH2adMpEE/mKGu++YjdazicIMdxKMD30Mx8PWd/fW94hku/kZD2PCsExEskr3ssEm2FKv7aqNk4uHZxfvlMTkYRKvAcu+m9HyyUyiu0TDcvvaS+5ew7SXNlSNlv9tSLevaTCggTIvUXvUaW+AijE7zZ0+jCiFSYJu6IHRLMaDGrZGLy/9oQkgpMczjkmKO+brhmcVz/VXiKvyzNEs7CpW7DYZqxqAeBLDtiGS9ypCN6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qx0dw3guOB3XMuPqs5dm8Tr2WH50uT+xQ2WTwDKtohI=;
 b=HR202OX+zTioKlbfLxbyztQ2T0KZPsBxB5e5SZzGom+8TuIqDAwinRln3IQerTM1DEFI62+Zp7Lj2Rw9Mm1oJTukFnifuctZb3ps2MwUkTq6gkMjwxA2MJ7cNqVNgpNfjztW4381t1IpN/brrurWiw+Jbs3O9qhGPMoteevEtY6087JrXT+S7uZHYtKzo1ISGSwSubT2hfGeLnAwljwx+2qnBMmy+SSamFZvE9wko0GK86uLKU7qxfcS4MB2XcJAb1iEx5/DSIswUqR0O2f5Y0YRcl9OAJbMtzOx9Zt2vawUNQhcnCFEV7+FGkMlclQCUgfEno2sTVG/epWc59DpGw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=Qx0dw3guOB3XMuPqs5dm8Tr2WH50uT+xQ2WTwDKtohI=;
 b=XY4J06FgBDSLLzRw1LchwwSvrQt1njBtdNLzaefVy0oslSrhMHa0zFID0invHpOeDpAXlI5/NdENibUxEiPmFQR8gb9aSi5OVlfGBeEvM50dHEcINk3fISesR1Ti2d63vFTgRGNx+9obaOHhDVhEWnl0lOjGDUXgORh6gTTg8aM=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <eb450574-071e-48f5-aab2-0af469b909e1@amd.com>
Date: Thu, 7 Nov 2024 15:58:35 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] x86/boot: introduce boot domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-11-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241102172551.17233-11-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3D:EE_|CY5PR12MB6226:EE_
X-MS-Office365-Filtering-Correlation-Id: 17a5e219-2ca2-4c66-476b-08dcff6ef3e1
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:
	=?utf-8?B?ME43bjRCODJGbUZNUjhJcWRYNmtBeTRVeVR4M3VNM29PNHJBeC9lZ0hYRTVL?=
 =?utf-8?B?aFE4bzdmdDAybkxPaEY1RStmSHZhYWExRFZPMTFYV1pwYkcyVjJNVGtBYzBi?=
 =?utf-8?B?UGtuT1QvemZ0a1QwTmpBaGo2SS90MTd5OXYxa3BONnV4cGcyZis5OWo0WnF1?=
 =?utf-8?B?Rlc0WEhOdFhoR285cnRKcGw4NjZjN0l0bXFqUXZ3UGw1R21vOHlrdWFiaHFF?=
 =?utf-8?B?TS9LWWx5ekk2THdrTGlQMTV1RFdvQlpGdklJeVlmV3NOUCtsUDYwVldObnFR?=
 =?utf-8?B?bVF6T1ZjNWVLTGFLZVdON0dHdE9rRlluQ08rZFF5dFFDdnpET2hZSXVpNllH?=
 =?utf-8?B?cmkwR1ZPb0pCQkx3eWhhaHozcHFKOU1XU2RGaTBZZlJ4Q2ZISlh6WEtNSnpl?=
 =?utf-8?B?YndrY01FMG1JaVQzK3pvRzhDZ1ljVEVCSHRTOU5pQ2FEcERsRHJPd0dYR0lr?=
 =?utf-8?B?QWJ0a1JuN05FVDZhaUJJUjlteGR1aE1zRnExVGk2WVZydTVZbDN6TkJYSnNi?=
 =?utf-8?B?bUVMcjg5d1V6OFlCYkhIZlRlcXROd1RTb1l5RTFwMFAranZmT2tTMWFOUDdv?=
 =?utf-8?B?V1JoMEFXbEt2MmY3elZTRllNUzBrcUhlKzdFelVIY0gxT25mckt5QWllVm9J?=
 =?utf-8?B?bkNDbHJuUmpmYTdjMmpxMmJjWlMvbTBkNzRwRldnN2QwcW0vU1ZQaHNpb05J?=
 =?utf-8?B?Wm9xdGwxMlNLdTEydGlKRTVqbkNzV3lCekNLTXBid00vVE9LWWNiWjJVYlJU?=
 =?utf-8?B?T2ExM2pHSXpMWVkyWGZsa014OStWSzFrQzQwUWxVOXpjdlRLMWh0Smppa0ZY?=
 =?utf-8?B?UWZqUWpXYTVXNU9TUjlxYXNNTEN3bm1ZTkRVNUFnQndYRytzNXBaRlF1RmFr?=
 =?utf-8?B?Qm5DVWRnaTByMFhsZkEyM3Rab1QrUGhOOHJQcGZiNTFJZlFzVE1aNE4vYVlt?=
 =?utf-8?B?QzJmK3dxNW1aSjczNFlVV2laNUViZE5PUzdNMmlUaGxKMUlnSUxCUEJwNzRy?=
 =?utf-8?B?K3VyZktwdnRyTFZlT1dGMXNzc3VCc3MvY0hOQ1hSZjFBaVArZi9tOGNvQkJi?=
 =?utf-8?B?UWNTU2lIUXN1SGN1SFF5NjhmRXVCbVcxRHdxak5LeFk4Sm4rNmUrWVM4K0FO?=
 =?utf-8?B?SzVYLzAyVW1PZHk3clJiSFlENGZBUURjU2ZkNmFWQ21oQTczMnA5YXpWUHN3?=
 =?utf-8?B?ci9tcUtHZ0tsb09tZ0VrUjg3NUVqbVlITSt2b1JZdUxLWGFzb3JJR29LUDVz?=
 =?utf-8?B?dEVNam5WcEZoM3k2M0NvK3Vmbld6c0Z5eFpKVjZKbTZSK3JrM3BjbkI2T1Uv?=
 =?utf-8?B?WWJXOHBJYjNRUXZ3a1hhV0E3dFdrMTlKVG5wK2h6cGNydDZFU0tqMmd0UVpn?=
 =?utf-8?B?VDR2SlpTc0NwVmVjVGtVRThIQVQxUUgxUGltOSswdGJFWUV4MmE1NVF6WXd1?=
 =?utf-8?B?TGZqb08zSktRcGMrNTQxdWxQZnNpUGNXNVZjTmxVZ2lZdHdxWmcrWXlDRmph?=
 =?utf-8?B?MlB4VS9yQWFiUkN5QU5ySEx4N2xKVHkwNXlWZjVDYlpzOUFPb3pkbmg0S2o5?=
 =?utf-8?B?Q0tyQlZDMkMwYTNoaDdYZ0V6WDcvbk5ZaERpeVZMWjVpbXcxZjUzMk5XV3Ir?=
 =?utf-8?B?RW9EcGxjaHVUR1U2S2E0NDM4Q0tmS2laSmRiY3JFYkN2Qm55NmpRUFNjSEZr?=
 =?utf-8?B?czI4Y01WUmkrU2ZtbVdhK3pyVVJLdTQwYUUxMFpTZHZqS0JxY2RFNHNYYmc2?=
 =?utf-8?B?Sno4dlFCNy9oTmdBVWlZSVgrUEdnbVlpakxobmdGcEU4aDRvL2dKL3lHanNL?=
 =?utf-8?B?b0IzbmtMbTltMkxISW93NzFmWU41eEQzcEpCOC9XaG5vc3FiTUxVZzlZWHU4?=
 =?utf-8?B?eXMrdHNxVGFYNXFMWk90cThUOTMvSTNNVEtFY0RYL3FFZFE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 07 Nov 2024 20:58:38.1161
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 17a5e219-2ca2-4c66-476b-08dcff6ef3e1
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE3D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6226

On 2024-11-02 13:25, Daniel P. Smith wrote:
> To begin moving toward allowing the hypervisor to construct more than one
> domain at boot, a container is needed for a domain's build information.
> Introduce a new header, <xen/asm/bootdomain.h>, that contains the initial
> struct boot_domain that encapsulate the build information for a domain.
> 
> Add a kernel and ramdisk boot module reference along with a struct domain
> reference to the new struct boot_domain. This allows a struct boot_domain
> reference to be the only parameter necessary to pass down through the domain
> construction call chain.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v7
> - collapsed the incremental changes to the call chain into this commit
> ---

> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 18b93d6a272a..6e25a9f726c7 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c

> @@ -1026,11 +1019,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>           panic("Error creating d%uv0\n", domid);
>   
>       /* Grab the DOM0 command line. */
> -    if ( image->cmdline_pa || bi->kextra )
> +    if ( bd->kernel->cmdline_pa || bi->kextra )
>       {
> -        if ( image->cmdline_pa )
> -            safe_strcpy(
> -                cmdline, cmdline_cook(__va(image->cmdline_pa), bi->loader));
> +        if ( bd->kernel->cmdline_pa )
> +            safe_strcpy(cmdline, cmdline_cook(__va(bd->kernel->cmdline_pa),
> +                        bi->loader));

I'd indent bi->loader so it lines up with __va, since bi->loader is the 
second argument to cmdline_cook().

With that:

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

>   
>           if ( bi->kextra )
>               /* kextra always includes exactly one leading space. */


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 21:13:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 21:13:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832194.1247607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t99oJ-0005Qr-Hf; Thu, 07 Nov 2024 21:12:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832194.1247607; Thu, 07 Nov 2024 21: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 1t99oJ-0005Qk-Er; Thu, 07 Nov 2024 21:12:59 +0000
Received: by outflank-mailman (input) for mailman id 832194;
 Thu, 07 Nov 2024 21:12: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=2I65=SC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t99oH-0005Qc-KT
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 21:12:57 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2414::60a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c32a885-9d4d-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 22:12:52 +0100 (CET)
Received: from CH0PR04CA0070.namprd04.prod.outlook.com (2603:10b6:610:74::15)
 by DM4PR12MB6012.namprd12.prod.outlook.com (2603:10b6:8:6c::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8137.19; Thu, 7 Nov 2024 21:12:48 +0000
Received: from CH2PEPF0000009A.namprd02.prod.outlook.com
 (2603:10b6:610:74:cafe::56) by CH0PR04CA0070.outlook.office365.com
 (2603:10b6:610:74::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Thu, 7 Nov 2024 21:12:48 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF0000009A.mail.protection.outlook.com (10.167.244.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Thu, 7 Nov 2024 21:12:48 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 7 Nov
 2024 15:12:47 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Nov
 2024 15:12:47 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 7 Nov 2024 15:12:46 -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: 0c32a885-9d4d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjBhIiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjBjMzJhODg1LTlkNGQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDEzOTcyLjYxODAxOCwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nfbmXbcLZJVmYzoCP2WArZAYe6LSz1kuhcli+tayiXv43nIT3ciYvXapH/wD1jqAwbo5V4EDOja1QPYU008XuQ9K5fk+SduGEZtTL4dQ0p+KMWpn4QXFgdQDuc5L8xthf+zIeXFs93ohnlD0daJooF53yaT4fdV+hHCisyMr8CoPQvYxtkGQPgz+b5A/qEoW2O5QC8Jd+L65vxMarboOuBDhxEIqmDKMKC8NnU/jtdJ9wZTAC4A3AoFbP667hUSqCT9rixwomrM2JIrRDTJ8FQzQg1hLiK8NLe6AeXlHJ6hwPKcpzq+Jm6MwXd4oLamtkfpxdCnPzske5h7NmsPJqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yOdhTX9d0VxfNaAqnwZk1tI+22gfz7+7+QWyZkVHbFE=;
 b=HY1wpCr2/VdlZcO7b/jJezwg332CEjgC/GaCpD0uRBU73FDnwM2+/dS7t9SWN+O+Oh9L3yZ3yKOI9Y2dUPQwNpwpLm/HND0Ubf0n6hzlmkWXzLsexxIk+pXSlYCEpmvxkvjkln83BWoKAdHKhOUVIqW7hVyfU108Bh0Pw8DFEgKBsYSRfmKhMezc7pP4ugga2YGOtdMumEuyF5wKzFfM8IIkz43BUnuCvU/W+0Q6lQw6x8sRi8Vk5ikyPvpbPFhJcDnhgF94BUxZJZBZ0uUYkpH6FR3RYSVgHYYHQuvJeWeYl9UARr1Po2CweFiO/oKdqt+cwRR0NyObZ8GO4aKUDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=yOdhTX9d0VxfNaAqnwZk1tI+22gfz7+7+QWyZkVHbFE=;
 b=EC3X7/oM+7lq4DrahAIoz/X2tXkW4OMNI3S5W1mqCxoEuw86gZVhNflqBBfYM0q2D9Emmtiu6Z8v54JO+duk7tdf3vTZ/yFsyGpSkA3fF4r7DaX1eQ9IcnH0WRDV7tTM5A+S669p1SkXfLM/v6W4zNSZ2WRmic6ubiRGHLLIFAA=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <1a7d3d9a-0100-4dcc-9e2a-727a3061cd74@amd.com>
Date: Thu, 7 Nov 2024 16:12:46 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/12] x86/boot: add cmdline to struct boot_domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-13-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241102172551.17233-13-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000009A:EE_|DM4PR12MB6012:EE_
X-MS-Office365-Filtering-Correlation-Id: b25baeda-508e-4c9b-3f0e-08dcff70ee6d
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?U1orOVF1STk4Rko2MXVLMXM2NUpSVHprVzRKOUxPU0lMTWs4ajZSNEtQNEZo?=
 =?utf-8?B?OTFQODR6MzBmTTZXeTh0aGpCb04wUFUxanRUZ0dPTWlhMnh2cmhiYUtqbVVM?=
 =?utf-8?B?QnVYNW4xNzVEd0k4WW1MK2JpMkk2RWh0RHRTdUFNUFZ2dmRVV0ltYWhDVzZX?=
 =?utf-8?B?MkNRaGZXSkNBMW9JWlZ2ekdJUU5IbzdWck8yY1lvVUFWQ1RuQWZCN2tueUp0?=
 =?utf-8?B?ZW02RXVNVXJiNDhGYWtGamdpeXU2TE9SL3RZMnQrZWZrSTYrVlhWdTF5QkZ3?=
 =?utf-8?B?SXJGZ0E1NUgvYUhwOEwra1RBbnJWUmdiZHI3eStKaTVZMGFCRmVvb1RDMUUv?=
 =?utf-8?B?UlcxMWhJdS9pNG9uaGxDWElnMHkxckJ6SHgrTmJCNmlHWVZjMVRyRXQ0UHhk?=
 =?utf-8?B?RzNGdEpicXZvd1ZmcElybkVla2xHNFp5MHBKQWNBa2JneEk1VWNEMEVBL3Zk?=
 =?utf-8?B?M1Z6b3gzdFhmY3BCcGdrV0JEa21HT2ZuWkJiK29TbmY0ZVdSOTNjOW9ORVhp?=
 =?utf-8?B?T2FHaWxZbnFNWGt6bEoxZCtEMTFmNUEvSlVPemZpVEZ6OGtqVUtKNUx2aFgw?=
 =?utf-8?B?UjdTb0Y5eTBWa1dtY0RCM21zYWVZRmhZMmFtamVVT3VBZzArZEcyS2w5WHNo?=
 =?utf-8?B?NkJOSEROQm9QNTNGbUJYUGhxcnFHdE1ObGl5VlA4UjdOcXAydS9wUWN1RDht?=
 =?utf-8?B?enF6cE5ldWp2dENYaVRUbkZLUzZpaWY2OTVWcHJxZWJTRXVWUmF4K055elpW?=
 =?utf-8?B?RXEwM2xoOWR4WGExaFE2OHNKWHByMUhkYUpMb2dmNDlHbGpoMDNvRC9Nb1ZF?=
 =?utf-8?B?dGxwclVBdlR0SWFxeVhjVEd2RXV6YU5FVXV0OVBDeXliOFdHLzVhY1JsL0NY?=
 =?utf-8?B?ZVhkcUs2UFFjOXhKbm9rZG1TUEJEa25YU3FoekkrV05lUm9IT2Z6eXhMa2ti?=
 =?utf-8?B?QzdUOE9CMzZKempmRjYrKytxcXRHVnBINXBqcWJjS0ZVVU0yNnBFaFZmWW1H?=
 =?utf-8?B?WmdCMmd4aWRYQzBCTWRMcWhwYXBlVlR0eVVKM2xoUmg1VkVTNVR4MDJTSkJm?=
 =?utf-8?B?RFJzTmxCeUQwRnBYTDFJcDhPZll3TG1iZzdqeHBFY3BsMUE5MFFwdkVFT1F4?=
 =?utf-8?B?SHltejc1UGg4VEFINXRITDFCdGp6WUlHWFQyVk9EdGtsRkVsMzlIeXViTGUr?=
 =?utf-8?B?bzI1clRIZ2pLRjlJK2JvL015UnlENE51QkhTUWdlNFpGemJQTEdLZWZwY29G?=
 =?utf-8?B?OGhEb3ZVSVhtNWhqa3lkVm9remtQRnQyTWRvK0N1Nm00ZThyMjFmSlJUbGRa?=
 =?utf-8?B?RVZBRzlqSElUQWxheEQ2WkU3VW9nMmpjM2NHQ1ppaERCNnFrNkMvKzBValBW?=
 =?utf-8?B?UnlMMURwUTFnbHpDRE82bDJXTVFEeVNjc3RUK1JWM0p5TmdVdUViV2d5Qy9o?=
 =?utf-8?B?a0gxS3BHY2xKNlF1YlVPQkxKV25vY2NyR04wQjVZWi8zM1ZCR1JoWFlpWHpx?=
 =?utf-8?B?Z3FuRHpRMUxkWGFJWjhvd1BhTlhsbW1pc1AwUEhEWEVBai8wb2g5UXpGUGo2?=
 =?utf-8?B?VEhkK2lVekd3WTRjYS9YdzAyRm1WbzVNREJpNEd4WFk0Y3RVK3MzbWl4OTdL?=
 =?utf-8?B?bi8zZlN4SmJWTnh6ZEFiZmZQZzRGSExHdE9xZTVVTDlaOHNjUE9LSWxuWE5a?=
 =?utf-8?B?ZWg3bm94TUdjb2Y4RkR1Nml2MGMrbjhkbmROaG0vYWRFNUpWWGF6dklySkxF?=
 =?utf-8?B?Nk9aL3hjN1FkUVNkMnd2Q2I1YWZJc3NFSEt3RnVOM1lhelBEMi92SUdGdGQw?=
 =?utf-8?B?QkhkNXdmYnhPTDNKRUl2WTRtYlpoajJMRVRybW1aNmxGbnVXQjU3WWJ1VWg3?=
 =?utf-8?B?eFlPUWVhbFVMQTBiNUtLTjBUOVp0Z0FMeWtOVjRPUGE0R0E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 07 Nov 2024 21:12:48.0387
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b25baeda-508e-4c9b-3f0e-08dcff70ee6d
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6012

On 2024-11-02 13:25, Daniel P. Smith wrote:
> Add a container for the "cooked" command line for a domain. This provides for
> the backing memory to be directly associated with the domain being constructed.
> This is done in anticipation that the domain construction path may need to be
> invoked multiple times, thus ensuring each instance had a distinct memory
> allocation.

Is the area only used at domain construction time?  If that runs 
sequentially, then only a single cmdline buffer would be needed. 
cmdline_pa can keep pointing to individual cmdlines.  Unless the 
multi-domain builder needs to keep multiple?  But that could maybe keep 
cmdline_pa pointing into the device tree?

> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v7:
> - updated commit message to expand on intent and purpose
> ---
>   xen/arch/x86/include/asm/bootdomain.h |  4 ++++
>   xen/arch/x86/include/asm/dom0_build.h |  1 +
>   xen/arch/x86/pv/dom0_build.c          |  4 ++--
>   xen/arch/x86/setup.c                  | 18 ++++++++----------
>   4 files changed, 15 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
> index 3873f916f854..bc51f04a1df6 100644
> --- a/xen/arch/x86/include/asm/bootdomain.h
> +++ b/xen/arch/x86/include/asm/bootdomain.h
> @@ -8,10 +8,14 @@
>   #ifndef __XEN_X86_BOOTDOMAIN_H__
>   #define __XEN_X86_BOOTDOMAIN_H__
>   
> +#include <public/xen.h>
> +
>   struct boot_module;
>   struct domain;
>   
>   struct boot_domain {
> +    char cmdline[MAX_GUEST_CMDLINE];
> +

You might want to put the 1024 byte chars at the end of the structure. 
Having the other pointers at the start is probably more useful.

>       domid_t domid;
>   
>       struct boot_module *kernel;

> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 28257bf13127..2c84af52de3e 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -960,8 +960,8 @@ static int __init dom0_construct(struct boot_domain *bd)
>       }
>   
>       memset(si->cmd_line, 0, sizeof(si->cmd_line));
> -    if ( cmdline != NULL )
> -        strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
> +    if ( cmdline[0] != '\0' )

Shouldn't this check bd->cmdline[0] ?  There is a const char *cmdline in 
this function that should probably be removed.

Regards,
Jason

> +        strlcpy((char *)si->cmd_line, bd->cmdline, sizeof(si->cmd_line));
>   
>   #ifdef CONFIG_VIDEO
>       if ( !pv_shim && fill_console_start_info((void *)(si + 1


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 21:14:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 21:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832201.1247617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t99pz-0005x1-SF; Thu, 07 Nov 2024 21:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832201.1247617; Thu, 07 Nov 2024 21:14: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 1t99pz-0005ws-P4; Thu, 07 Nov 2024 21:14:43 +0000
Received: by outflank-mailman (input) for mailman id 832201;
 Thu, 07 Nov 2024 21:14: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=SZQb=SC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1t99py-0005wm-L1
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 21:14:42 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b8bf42d-9d4d-11ef-99a3-01e77a169b0f;
 Thu, 07 Nov 2024 22:14:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 712065C5521;
 Thu,  7 Nov 2024 21:13:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2610C4CECC;
 Thu,  7 Nov 2024 21:14: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: 4b8bf42d-9d4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjRiOGJmNDJkLTlkNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDE0MDc4LjgzMTgxMSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731014076;
	bh=P1Cjaso0pOHFUI2MWF9X+186mJwk2hxlWv2q0XCwlH8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=A1s60jPKxP1Tm15qwex9InrMzpGkukwcHaOiCbc8FfafNlw7i/0ig2w0AKZNj650o
	 nv014vzCjK/KZ/qWUqZWiisTvgPpy4DC0WXsfmKMVPsjG+pLos27WDncQ3XZxsoQqb
	 bf4Nlezgt4DSqi2p67wPCroQNkiV2qf718vbLA6naQFmTYxDaIY7A6saFrIRXOMj1e
	 WDL4XBmq8lCfHedWTF6229CjW1Vvrqx/fQJvwKIHwxpf3qslFGldI8ENKCGOJ4SvBx
	 vzbh2OTSPPpUUzc2K0JzOWXygRLzr8ZqZMlkV7XTQymCmm2MwGPGepkGDQVRD3+v10
	 5cKPvw4AxaaRw==
Date: Thu, 7 Nov 2024 13:14:34 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: gragst.linux@gmail.com
cc: xen-devel@lists.xenproject.org, 
    Grygorii Strashko <grygorii_strashko@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: Re: [PATCH] iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H)
 support
In-Reply-To: <20241107132501.724836-1-grygorii_strashko@epam.com>
Message-ID: <alpine.DEB.2.22.394.2411071314270.89051@ubuntu-linux-20-04-desktop>
References: <20241107132501.724836-1-grygorii_strashko@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, 7 Nov 2024, gragst.linux@gmail.com wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Add Renesas R8A779G0 (R-Car V4H) IPMMU support.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Assuming it was properly tested:

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  xen/drivers/passthrough/arm/ipmmu-vmsa.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> index da011413c5c0..d828d9cf6afd 100644
> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> @@ -788,6 +788,7 @@ static void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
>  #define RCAR_PRODUCT_M3W     0x00005200
>  #define RCAR_PRODUCT_M3N     0x00005500
>  #define RCAR_PRODUCT_S4      0x00005A00
> +#define RCAR_PRODUCT_V4H     0x00005C00
>  #define RCAR_CUT_MASK        0x000000FF
>  #define RCAR_CUT_VER30       0x00000020
>  
> @@ -836,6 +837,7 @@ static __init bool ipmmu_stage2_supported(void)
>          break;
>  
>      case RCAR_PRODUCT_S4:
> +    case RCAR_PRODUCT_V4H:
>          stage2_supported = true;
>          break;
>  
> @@ -871,6 +873,10 @@ static const struct dt_device_match ipmmu_dt_match[] __initconst =
>          .compatible = "renesas,ipmmu-r8a779f0",
>          .data = &ipmmu_features_rcar_gen4,
>      },
> +    {
> +        .compatible = "renesas,ipmmu-r8a779g0",
> +        .data = &ipmmu_features_rcar_gen4,
> +    },
>      { /* sentinel */ },
>  };
>  
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 07 21:59:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Nov 2024 21:59:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832214.1247626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9AWj-0003Tz-2U; Thu, 07 Nov 2024 21:58:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832214.1247626; Thu, 07 Nov 2024 21:58: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 1t9AWi-0003Ts-WA; Thu, 07 Nov 2024 21:58:52 +0000
Received: by outflank-mailman (input) for mailman id 832214;
 Thu, 07 Nov 2024 21:58: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=Cd42=SC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9AWg-0003TW-Vr
 for xen-devel@lists.xenproject.org; Thu, 07 Nov 2024 21:58:51 +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 76944ab0-9d53-11ef-a0c6-8be0dac302b0;
 Thu, 07 Nov 2024 22:58:47 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a99ebb390a5so474574666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 13:58:47 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2e8basm146803166b.194.2024.11.07.13.58.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 13:58: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: 76944ab0-9d53-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc2OTQ0YWIwLTlkNTMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDE2NzI3LjEzOTc5Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731016725; x=1731621525; 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=E1b3faoyWdNmwo1yQ8no4nH5lZG4NAHGGyZTc2kK6sc=;
        b=XtfLhfZ207xIoTimZHyUCyRGpukO5G/VCgMX7+AamPsCNAgWarOE2lUVu6WzmF9+J0
         3tA9CUtjRuAR3X3Ef29CjwDOhqmh4XY2rzb653EKIuxNdHAc/2cKduFOdt8DVFqlV5tb
         PAWKgb6a25I8qdmcZoVWiTa0mHVQWA57IJ/ls=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731016725; x=1731621525;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E1b3faoyWdNmwo1yQ8no4nH5lZG4NAHGGyZTc2kK6sc=;
        b=BPM6yVJ0KautlJy5AZ4sIblhHPJ6G56mxxI4nJBk14FtwLfwshRExVPAAd0uioed4k
         V4oyJD3+jGPs9YHYjZhMg6/hdPuPlYV8eZkQRH391snQhV+sGJ2IZR0Tjpmw+bG3Q923
         Dg7gOPgDMrrgZv6rvs44AqtCUjgidxwJXWbk6qk4c0DRQUaKaYZ4DVBxbGDZEoAhYUlE
         IfzKKhKqt8ivt52auxlLHTf9xXUfITdXuGR3UK1XTMe63oOwEPgF2yPILl8zeAzJztTJ
         CnpZw0zo38Sn54dgSr8Iz7LVW+Ll9dE5TG7YyiZeTq7OjCqVlNnnlgfdKfD+lpsChBsA
         Ddcg==
X-Gm-Message-State: AOJu0YzY4ZCXuzR2Y278sL6IShyEN8PO7cjbHqPGOoBT2iZyECzXLG3U
	x/dLZMe8gxlxyeEW04xgGsa9cw1QRvp7Gdkj/8Du4NDpk9kGEtRvhm+8Rhc3QodozUBB6w/G1hV
	V
X-Google-Smtp-Source: AGHT+IGvO7glfx2Jm51OGQ6lJOOUGWIgikbvDrmrhnS9HBqr0jLPdXcOU4URfugubjOsZnaGMi1SdQ==
X-Received: by 2002:a17:907:96aa:b0:a9e:b5d0:4714 with SMTP id a640c23a62f3a-a9eeff934b8mr35668866b.21.1731016725280;
        Thu, 07 Nov 2024 13:58:45 -0800 (PST)
Message-ID: <5aa29b23-cf22-45a5-b7b6-7e307a2238d2@citrix.com>
Date: Thu, 7 Nov 2024 21:58:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
To: 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: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-4-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241107122117.4073266-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/11/2024 12:21 pm, Andrew Cooper wrote:
> With the tangle of logic starting to come under control, it is now plain to
> see that parse_blob()'s side effect of re-gathering the signature/revision is
> pointless.
>
> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().  For
> good measure, the apply_microcode() hooks also keep the revision correct as
> load attempts are made.
>
> This finally gets us down to a single call per CPU on boot / S3 resume, and no
> calls during late-load hypercalls.
>
> 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>
>
> Slightly RFC.
>
> Just before posting, I've realised that cpu_request_microcode() does actually
> use the current CPU revision, and it's buggy, and it's the cause of `xen-ucode
> --force` not working as expected.
>
> I'm tempted to do another series cleaning that up in isolation, such that this
> patch becomes true in this form.

Actually no.Â  Having tried a bit, I think it's easier to do with patch 2
already in place.

So instead I'm tempted to edit the middle paragraph to note that it
currently uses the revision but that's going to be fixed shortly.Â  The
rest of the paragraph explains why it's still safe anyway.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 01:31:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 01:31:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832233.1247638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9DqE-0003A8-8t; Fri, 08 Nov 2024 01:31:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832233.1247638; Fri, 08 Nov 2024 01:31: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 1t9DqE-0003A1-4k; Fri, 08 Nov 2024 01:31:14 +0000
Received: by outflank-mailman (input) for mailman id 832233;
 Fri, 08 Nov 2024 01:31: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=QHk0=SD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1t9DqD-00039v-1c
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 01:31:13 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e091998-9d71-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 02:31:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 071455C5499;
 Fri,  8 Nov 2024 01:30:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8D53C4CECC;
 Fri,  8 Nov 2024 01:31: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: 1e091998-9d71-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjFlMDkxOTk4LTlkNzEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDI5NDY0LjQwMjQ5Nywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731029462;
	bh=HvPK+7BvsCSRaNi41hp+ycCtCv8SduMHP+Npm4g5BPs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ANuwmyIcVpAXxtrXAaYGsgyApRnB1AjviPTvdF9zdinhSlUrAmb5LPhkKoI6XPYCA
	 k1Ak4D73VMaOlWeJa9gdgAchGxx8VqDpY1O1352xuKMxZIzTNhGsheokYUtrnTHoCK
	 B5E4AmeHDON0yt8CrGWXhwciFDfZESjLS4hSSvpMj91FCBeoLc28yCfdEvUoND6DE7
	 l2baKQu2IRcIqkM4Jl4R2+buIwX5GNjsY+tMzKCFaLTs+RnoLnyq17NBV1FWStxnXN
	 zS8fVImvuJgQtjDfGcHSWbdneYAr9O1kp/kPSBd1VV3ZGxuSJD+cFuVXvm1saxzZEO
	 EqEmVRowwekNw==
Date: Thu, 7 Nov 2024 17:31:00 -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: Javi Merino <javi.merino@cloud.com>, xen-devel@lists.xenproject.org, 
    Victor Lira <victorm.lira@amd.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [TEST_ARTIFACTS PATCH v1] scripts: add lzo to the x86_64 alpine
 rootfs
In-Reply-To: <0579d685-392a-4707-af8c-49445d8e4000@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411071730520.89051@ubuntu-linux-20-04-desktop>
References: <20241107142012.2593333-1-javi.merino@cloud.com> <0579d685-392a-4707-af8c-49445d8e4000@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Nov 2024, Andrew Cooper wrote:
> On 07/11/2024 2:19 pm, Javi Merino wrote:
> > In the qemu-alpine-x86_64-gcc test, we want to test libxenguest built
> > with all libraries.  If we add lzo-dev to the alpine:3.18 container,
> > libxenguest is linked against it.  However, as the initrd in the
> > test-artifacts does not contain lzo, the qemu-alpine-x86_64-gcc gitlab
> > CI job fails with:
> >
> >   + bash /etc/init.d/xencommons start
> >   Starting /usr/local/sbin/xenstored...
> >   /etc/xen/scripts/launch-xenstore: line 90: echo: write error: Invalid argument
> >   Setting domain 0 name, domid and JSON config...
> >   Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
> >   Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
> >   Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
> >   Starting xenconsoled...
> >   Starting QEMU as disk backend for dom0
> >   + xl list
> >   Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
> >   Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
> >   Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
> >   + xl create -c /root/test.cfg
> >   Error loading shared library liblzo2.so.2: No such file or directory (needed by /usr/local/lib/libxenguest.so.4.20)
> >   Error relocating /usr/local/lib/libxenguest.so.4.20: __lzo_init_v2: symbol not found
> >   Error relocating /usr/local/lib/libxenguest.so.4.20: lzo1x_decompress_safe: symbol not found
> >    *   Execution of "/etc/local.d/xen.start" failed.
> >
> > Add lzo to the initrd that becomes the rootfs to install liblzo2.so.2 .
> >
> > Signed-off-by: Javi Merino <javi.merino@cloud.com>
> 
> Ah - this is a good example of the problem I opined about in
> https://lore.kernel.org/xen-devel/86a60aec-f259-41be-92a0-ce66ce24f4ae@citrix.com/T/#u
> 
> For now, I'll take this and use it as a test of whether I can drive the
> new test-artefacts repo.
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

+1

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 07:37:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 07:37:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832242.1247646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9JXv-0002Mn-CU; Fri, 08 Nov 2024 07:36:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832242.1247646; Fri, 08 Nov 2024 07:36: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 1t9JXv-0002Mg-9q; Fri, 08 Nov 2024 07:36:43 +0000
Received: by outflank-mailman (input) for mailman id 832242;
 Fri, 08 Nov 2024 07:36: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=uvFD=SD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t9JXu-0002MY-Na
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 07:36:42 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 306f4b5b-9da4-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 08:36:38 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-37d3ecad390so1677624f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 23:36: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
 d9443c01a7336-21177e87537sm24067445ad.270.2024.11.07.23.36.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 23:36: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: 306f4b5b-9da4-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwNmY0YjViLTlkYTQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDUxMzk4LjgyOTQ5OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731051398; x=1731656198; 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=qMZCOHjAe0ESWN7d7HfkJuBRNqsqigUwVWdtBQnWMc0=;
        b=IAtVb79ql7W8RRYghjN9rFgIHfxPY3/Vu76/zn9uDRDMcPsjBexPzLKdBuMOvxw9rj
         FdGYkawRTfL3aRzf4+blFDJxjUnkB3v+BWrSnlQCrMt8ZE/ER6voMtcBClNwezBYVy9w
         O+oE0NM0PSxmZYAbyBkLyxcUSZeOPPdZECkrFWnVW2ewsmrvLkh2aQEh+0y+0z5URxz1
         9SDApRiUOGOVsSAnXQebAJmcCev28uR/+kUYI3l8/LJJYIX4k8WpPBvtO6PNeb0g45JN
         GHoKDuy4WMJ0vIhz6PEL0AWrWUfqouvN6vS7DToXSvNFLtdHPqRQYU8nzlg+M89qThjB
         CKig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731051398; x=1731656198;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qMZCOHjAe0ESWN7d7HfkJuBRNqsqigUwVWdtBQnWMc0=;
        b=i8HuWx/Ud65KYviO0PNXo+rluSkDhcwaNg48MCJDK1nJZbFReFDJv+u2chn2IlpjVX
         Q8SpYKIp247bUVTU8ZOvehfJwDQBKQCNst4TsU2YgLdZ5XuMr116EwTdFZDgt/rJpRXk
         vJsUfhU4oZClWwGRpiX20BfROKRm6ngCod3CjcHqdg+IPZJL6SwY7ZMnkNjVKBrG8njS
         9asIGe26IH1f4fXxouFrm5NsRb1F7G3bBCwcuuOXasnHKDj045jf0q7IlVtIaSU0YYDy
         gJ1JwzZXE6Vsk4gsQQXlGvaz1jgt2pg1VfUk8QGglhElpdmJrYCBtcRe8P3ifsg5WZ9p
         Isxw==
X-Forwarded-Encrypted: i=1; AJvYcCVunssWf09fasgn5TwhL06AxLCQ1sRJK15qEhVQ/Y9KBXBnGUBkYhQiQ8LMXwN2PgccscyEy/KSm88=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygUpq2MbOpThOeCRoVqZpEfK+NSlevYZox9k4wv6DWXATiV8v2
	iwpAerPkpYYoTXjEqVN6vSGLu5FpApPi9tJHhI2YA86jeo3yhbpO9qphH/7Nbg==
X-Google-Smtp-Source: AGHT+IGK7DkmkNjAsaBFx/fWzjGTZ5XdgNVZ+U5p4R/JVIzf6NxMhK6GvoW595KXeGY518WT6kGjTA==
X-Received: by 2002:a5d:5f8e:0:b0:37d:5251:e5ad with SMTP id ffacd0b85a97d-381f0f40e32mr1983677f8f.2.1731051397940;
        Thu, 07 Nov 2024 23:36:37 -0800 (PST)
Message-ID: <04eea7f5-92a5-452c-84af-e95d70d090b6@suse.com>
Date: Fri, 8 Nov 2024 08:36:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/mm: introduce helpers to detect super page
 alignment
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: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-2-roger.pau@citrix.com>
 <85d6a128-965b-4f39-8d08-2b2084db65b4@suse.com> <ZyzlxiipPvbUjs0r@macbook>
 <Zyz2pYEjbh9SVnAl@macbook>
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: <Zyz2pYEjbh9SVnAl@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 18:19, Roger Pau MonnÃ© wrote:
> On Thu, Nov 07, 2024 at 05:07:34PM +0100, Roger Pau MonnÃ© wrote:
>> On Thu, Nov 07, 2024 at 11:42:11AM +0100, Jan Beulich wrote:
>>> On 06.11.2024 13:29, Roger Pau Monne wrote:
>>>> --- a/xen/arch/x86/include/asm/page.h
>>>> +++ b/xen/arch/x86/include/asm/page.h
>>>> @@ -200,6 +200,12 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
>>>>  #define l4_table_offset(a)         \
>>>>      (((a) >> L4_PAGETABLE_SHIFT) & (L4_PAGETABLE_ENTRIES - 1))
>>>>  
>>>> +/* Check if an address is aligned for a given slot level. */
>>>> +#define SLOT_IS_ALIGNED(v, m, s) \
>>>> +    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
>>>
>>> The check involving an address and an MFN, I think the comment would better
>>> also reflect this. "Check if a (va,mfn) tuple is suitably aligned to be
>>> mapped by a large page at a given page table level"?
>>>
>>> As to the name of this helper macro - "SLOT" can mean about anything when
>>> not further qualified. If the macro was local to ...
>>>
>>>> +#define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
>>>> +#define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
>>>> +
>>>>  /* Convert a pointer to a page-table entry into pagetable slot index. */
>>>>  #define pgentry_ptr_to_slot(_p)    \
>>>>      (((unsigned long)(_p) & ~PAGE_MASK) / sizeof(*(_p)))
>>>> --- a/xen/arch/x86/mm.c
>>>> +++ b/xen/arch/x86/mm.c
>>>
>>> ... this (sole) file using the derived ones, that might be acceptable. If
>>> it's to remain in page.h, how about e.g. IS_LnE_ALIGNED()?
>>
>> Since you expressed further concerns in the next patch, I will move it
>> to being local to mm.c.  I don't have any other use-case, but assumed
>> the macros are generic enough to be useful in other contexts.
>>
>>> I further wonder whether it wouldn't be neater if just the level was passed
>>> into the helper. Doing so wouldn't even require token concatenation (which
>>> iirc both you and Andrew don't like in situations like this one), as the
>>> mask can be calculated from just level and PAGETABLE_ORDER. At which point
>>> it may even make sense to leave out the wrapper macros.
>>
>> I can see what I can do.
> 
> Would something like:
> 
> #define IS_LnE_ALIGNED(v, m, n) \
>     IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << (PAGETABLE_ORDER * (n - 1))) - 1)
> 
> Defined only in the context of map_pages_to_xen() be OK with you?

Yes.

> I'm unsure whether it would be better if I still provided the
> IS_L{2,3}E_ALIGNED() macros based on that, as IMO those macros made
> the conditionals clearer to read.

Not sure without actually seeing it in place. Without those wrapper macros,
having n be the first macro parameter may help reduce the visual difference
between both variants. Yet if you clearly feel better with the wrappers,
I'm not going to insist on omitting them.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 07:44:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 07:44:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832249.1247657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9JfH-0003sX-3J; Fri, 08 Nov 2024 07:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832249.1247657; Fri, 08 Nov 2024 07:44: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 1t9JfH-0003sQ-0V; Fri, 08 Nov 2024 07:44:19 +0000
Received: by outflank-mailman (input) for mailman id 832249;
 Fri, 08 Nov 2024 07:44: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=uvFD=SD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t9JfG-0003sK-4d
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 07:44:18 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ebdb1f2-9da5-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 08:44:14 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-37d8901cb98so1736146f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Nov 2024 23:44: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
 d9443c01a7336-21177e62dd4sm24235145ad.218.2024.11.07.23.44.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Nov 2024 23:44: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: 3ebdb1f2-9da5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNlYmRiMWYyLTlkYTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDUxODU0LjAxODE3LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731051851; x=1731656651; 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=/gHfzJ/P6xQFpsm3WRa4Drxldim7T6UdxNC5/e9gzA0=;
        b=S/ZtD1siHGIGlqaU2DdHeiRSQC2bLWd96m5cr39kZZixwmpuVX26TDrm9u/dkw9Ppk
         dzY16aj7/EZXCp0mgM/czOqWGuGoeBgJNomnyJqf8FNu36U9fdCIP3jqOn7PAM5rn+xa
         etsRk0cHtUXV1ZOur1qODOn5I3NJ4VpLf/NUnajnOUT32TFwEoBIo5ZmzQZPt1a8enBE
         WOpPgto5b7hONqZf2pulvWClBdPWS014SU3wBNOSiF3QiyrXEnTfhMp3rNXJdwmhOEWJ
         M/tL6cL23dmS5ArKlsYRHxrW3AAeipC2nk7lO2/kwWUNqrlRB4zgBi+UUJob4gb79qby
         lACQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731051851; x=1731656651;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/gHfzJ/P6xQFpsm3WRa4Drxldim7T6UdxNC5/e9gzA0=;
        b=GV8rj08wyAlKhevtfvuKlNbR0gzZ+jzlPuMaUc0tA7dGswA/+M/LV+1PAdwmzAgF4Z
         vtZIrSdcyrzAC/OzaS4TGKOLNxDoOAAEJQZfpilMUwtfzYPStLFcu5I6dOsUET8+czbT
         qYJhgWHHGv7s6LB9xG7Shytw/NFsP4tDXY+oRyS6w5JmNrJt3fQDxQYp8RICK16gjdr9
         QnAuT5V4GO1P7/pybtML6MqiG6sd9pU3evdH8VAytLq9ZcQb7mT5Fqb/SsC+6GCfdEZ+
         El4CWk+0HtUuJDmDUDKhXpq2+PPnfQJOw9ycgeFkhJ84xn2lhgtoWAyJTRELiYiY+iyN
         y5Qw==
X-Forwarded-Encrypted: i=1; AJvYcCWLSQJ7N3E3p+O+ysDUhPL6r58owrxXNNvpbd8S37DtI0oH3mTwLGNkV4ER2poaceVqUGeHYk+alRc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0UZXMuItu7e8lSz+KXq27Twle9vsBx3ugD9oa/iVwpSh2tqFA
	a7wVeQLxHBPn859d7TSJyWwujlRz6yAMpJbpgKhrdZZjPymr4AiccgGPl6O1zw==
X-Google-Smtp-Source: AGHT+IFBrjj0DHk9Z+3vSAh74JNTpioLg2QQ41I9E3tuL1vK0BhjlU3vqY6OZhrmJtDqKMtZ2Q+ITg==
X-Received: by 2002:a5d:64c7:0:b0:37c:fdc8:77ab with SMTP id ffacd0b85a97d-381f0f57f22mr1881814f8f.7.1731051851517;
        Thu, 07 Nov 2024 23:44:11 -0800 (PST)
Message-ID: <535d6835-8823-4dea-8671-eba1527a6e1f@suse.com>
Date: Fri, 8 Nov 2024 08:44:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] x86/mm: special case super page alignment
 detection for INVALID_MFN
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: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-3-roger.pau@citrix.com>
 <2d11d5c6-4e87-4520-af48-844c90462620@suse.com> <ZyziLfZGLZJBSEjo@macbook>
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: <ZyziLfZGLZJBSEjo@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 16:52, Roger Pau MonnÃ© wrote:
> On Thu, Nov 07, 2024 at 12:06:41PM +0100, Jan Beulich wrote:
>> On 06.11.2024 13:29, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/include/asm/page.h
>>> +++ b/xen/arch/x86/include/asm/page.h
>>> @@ -202,7 +202,8 @@ static inline l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
>>>  
>>>  /* Check if an address is aligned for a given slot level. */
>>>  #define SLOT_IS_ALIGNED(v, m, s) \
>>> -    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << ((s) - PAGE_SHIFT)) - 1)
>>> +    IS_ALIGNED(PFN_DOWN(v) | (mfn_eq(m, INVALID_MFN) ? 0 : mfn_x(m)), \
>>> +               (1UL << ((s) - PAGE_SHIFT)) - 1)
>>>  #define IS_L3E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L3_PAGETABLE_SHIFT)
>>>  #define IS_L2E_ALIGNED(v, m) SLOT_IS_ALIGNED(v, m, L2_PAGETABLE_SHIFT)
>>
>> With this adjustment it feels yet more important for these macros to
>> become local ones in x86/mm.c. This special property may not be what one
>> wants in the general case. And m is now also evaluated twice (really:
>> once or twice), which a "random" user of the macro may not like.
>>
>> I'm further uncertain now that this is the way to go to address the
>> original issue. Notably for the 1G-mapping case it may be better to go
>> from the incoming flags having _PAGE_PRESENT clear. After all we can
>> always create non-present "large" PTEs. E.g.
> 
> Hm, I don't think we want to do that in map_pages_to_xen() as part of
> this change.  Doing so would possibly imply the freeing of
> intermediate page-tables when Xen previously didn't free them.  If the
> CPU didn't support 1GB mappings we would always keep the L2, even if
> fully empty.  With your proposed change we would now free such L2.
> 
> I'm not saying it's a wrong change, but just didn't want to put this
> extra change of behavior together with a bugfix for an existing issue.

I can understand your concern here; perhaps indeed best to keep that
adjustment separate.

>>         if ( (cpu_has_page1gb || !(flags & _PAGE_PRESENT)) &&
>>              IS_L3E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
>>              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
>>              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
>>
>> Thoughts?
> 
> I was doing it based on mfn because that's how it worked previously
> when 0 was passed instead of INVALID_MFN, and because I think it was
> cleaner to hide the evaluation inside of IS_LnE_ALIGNED() instead of
> open-coding it for every call to IS_LnE_ALIGNED().
> 
> If we want to do it based on flags it would be best if those are
> passed to IS_LnE_ALIGNED(), but again, might be best to do it in a
> followup patch and not part of this bugfix.  I fear it could have
> unpredicted consequences.

Here, however, I view the flags-based approach as simply a different
(and imo more correct) way of addressing the issue at hand. The special
casing of MFN 0 had always been somewhat bogus imo, just that in the
old days we didn't even have a proper INVALID_MFN.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 08:02:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 08:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832259.1247667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Jwg-0007UB-JX; Fri, 08 Nov 2024 08:02:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832259.1247667; Fri, 08 Nov 2024 08:02: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 1t9Jwg-0007U4-Gu; Fri, 08 Nov 2024 08:02:18 +0000
Received: by outflank-mailman (input) for mailman id 832259;
 Fri, 08 Nov 2024 08:02: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=uvFD=SD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t9Jwe-0007Ty-Rd
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 08:02:16 +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 c2f28b55-9da7-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 09:02:12 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-539f2b95775so2221132e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 00:02: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
 d9443c01a7336-21177de0428sm24721545ad.105.2024.11.08.00.02.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Nov 2024 00: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: c2f28b55-9da7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMjkiLCJoZWxvIjoibWFpbC1sZjEteDEyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMyZjI4YjU1LTlkYTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDUyOTMyLjkxMjYyNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731052932; x=1731657732; 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=2BlHD35Knz/aC0dFL0tPw1OQ7PsCeak2NV8LlDj7bJE=;
        b=SBT6BIhoVSE7XKjoWZ91+ngAfYRy5DizhYUi+N7Nyqe1OoON5D0Z+trYjLgM/MuCR0
         Zxux4Gqd4IZ0TjdvKzoVEEDuH9vOs4LSPlRTO+9+oMRMPMhTcdEcsp+Yg82Q+bRZZIv+
         k1v2NzP9RYdIhNs/Acn31MCVxhBsiaaE9epcvb2Um73XYztB1dogfwQyP67dYyrB9xJn
         0zmVps5e8jai63BTnM54gj5n8biO048xZSTXxHUIK7uW19TGrdZO+iMOJ7dRRpiunBjW
         uzQH1RTC01yGUjxB91NxkDrElNZaW2YNUv/nwwwglJ5stMVo1JO7iftm39Q1WhHEN9e8
         +zmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731052932; x=1731657732;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2BlHD35Knz/aC0dFL0tPw1OQ7PsCeak2NV8LlDj7bJE=;
        b=MxX6HmJeDPuNOIHwzfb5NyjQjcX3KxWdIdkfJRNCbETZTe9t6w2oAPA/vyxyxc2c3T
         9Q08MVub1isQkFkBef3vWb26PyPP18UhW38RytVnzd7ceOYS9ranVa/HOpyl/RtPpDAC
         gxpqZL66NtrIT+jWeOyVOkAJO/6tOunEY9Y3W69mZW1dxH3xYbk8zrH8balGBJQkeAfC
         9CMPNZ2Vhtp13iMUgpFEAxpgUt0ZL3LJIEnZoJl8SoLlTdqBEvjYS4zPOjKlnkiUbBuE
         siwuP5cH/FUNVhfgBoatUefHoIX16oeNGVkEiUVFMFgrBGn67ENRCAzJ9xWeVPI3tSyB
         QR8Q==
X-Forwarded-Encrypted: i=1; AJvYcCUR0TZvNpM0qwmqV4mxhNlSf77I2tEsaeycmX+a7ij3ENZ/oPTZg6tRWBv/AE0d1zzXvScSY8ZdluI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweGP8FyKbU6FVIdIgeEhnTxEHAxaFTJLiw25ikdlElSP9rproH
	ZQtigv1EqsCoyfblEG6VaYaR9t3FPsOde6ToaXoS97rWe7bTz/Rqb0GzefPodQ==
X-Google-Smtp-Source: AGHT+IFPtu9iSTUNO23Cpz+rGBBTTtc7gw2BvHJxka/znWI5SDwqxE8GJ6oi848DUpzmpWPMaLMcgw==
X-Received: by 2002:a05:6512:1594:b0:539:8f68:e036 with SMTP id 2adb3069b0e04-53d862cd727mr1544281e87.34.1731052932145;
        Fri, 08 Nov 2024 00:02:12 -0800 (PST)
Message-ID: <991049e4-124f-4957-af4a-f01d32a41eb5@suse.com>
Date: Fri, 8 Nov 2024 09:02:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] xen/riscv: introduce setup_mm()
To: 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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1730465154.git.oleksii.kurochko@gmail.com>
 <0f7cd809e848607408ff4615e55b847f5a524559.1730465154.git.oleksii.kurochko@gmail.com>
 <9e22b5ad-634f-48b7-b64c-fc44319a1d4d@suse.com>
 <8380261d24388e453e74514dad8216c97e3bebee.camel@gmail.com>
 <15f8c4d9-bd90-4b1e-9cea-53e62d601a58@suse.com>
 <779e315475c8fcbe6226767f96f67c88a0ad4eb7.camel@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: <779e315475c8fcbe6226767f96f67c88a0ad4eb7.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2024 13:32, oleksii.kurochko@gmail.com wrote:
> On Thu, 2024-11-07 at 10:19 +0100, Jan Beulich wrote:
>> On 06.11.2024 13:44, oleksii.kurochko@gmail.comÂ wrote:
>>> On Tue, 2024-11-05 at 16:20 +0100, Jan Beulich wrote:
>>>> On 01.11.2024 14:16, Oleksii Kurochko wrote:> @@ -423,3 +429,138
>>>> Plus, unless I'm mistaken, the function continues to rely on ps
>>>> == 0
>>>> as
>>>> input. Just that the dependency is now better hidden.
>>>> Specifically if
>>>> you
>>>> calculate nr_mfns from the difference, and then use that for
>>>> allocation,
>>>> then you need to offset the start of the mapping you create
>>>> accordingly.
>>> I'm not quite understanding why the method of calculating nr_mfns
>>> affects how the frame_table is mapped. Isnâ€™t it only necessary to
>>> calculate the correct size of the frame_table that needs to be
>>> allocated?
>>
>> Assume there's 4G of memory actually starting at 16G. Afaict you'll
>> allocate a frame table for those 4G, but you'll map it right at
>> FRAMETABLE_VIRT_START. Hence it'll cover the first 4G of physical
>> addresses, but _none_ of the actual memory you've got.
> I need to clarify some basics about the frame table.
> 
> Does Xen expect that frame_table[0] = 0 (PA), frame_table[1] = 4k (PA),
> ..., frame_table[x] = RAM_START_PA, frame_table[x+1] = RAM_START_PA +
> 4k, and so on?

Not strictly, no. You'll find that common code has very few uses of
frame_table, so many aspects are fully up to the arch. However, there
is the assumption you mention above in PDX space. When PDX == PFN
clearly that assumption would then also hold for PFNs.

> My understanding is that it could be done as follows: frame_table[0] =
> RAM_START_PA, frame_table[1] = RAM_START_PA + 4k, and so on, taking
> into account mfn_to_page() and page_to_mfn() logic. (And yes, in that
> case, the current implementations of mfn_to_page() and page_to_mfn()
> aren't correct and should be updated as suggested here:
> https://lore.kernel.org/xen-devel/cover.1730465154.git.oleksii.kurochko@gmail.com/T/#me2fc410f3d4758b71a9974d0be18a36f50d683b1as
> as these implementations are based on that ps == 0). With this setup,
> mapping FRAMETABLE_VIRT_START to base_mfn should be correct, shouldnâ€™t
> it?

Yes.

> With the current implementations of mfn_to_page() and page_to_mfn(), we
> either need to allocate a larger frame_table to cover the [0, ram_end)
> range (in which case mapping FRAMETABLE_VIRT_START to base_mfn would
> work), or change the mapping to frame_table=( FRAMETABLE_VIRT_START +
> PFN_DOWN(ram_start) ) -> base_mfn. Or to not loose virtual addrees
> space of FRAMETABLE ( so the mapping will still be
> FRAMETABLE_VIRT_START -> base_mfn ) to do the similar to directmap
> mapping ( or what the changes suggested in the link above). Is my
> understanding correct?

Largely yes. There's one more aspect to consider: Even when frame_table[0]
maps MFN 0, the initial part of frame_table[] doesn't necessarily need
mapping to any memory when RAM starts at a much higher address. Valid
struct page_info instances only need to exist for any MFN for which
mfn_valid() returns true.

>>>> Â At
>>>> which point you may need to apply extra care to cover the case
>>>> where
>>>> sizeof(*frame_table) is not a power of two, and hence e.g. the
>>>> first
>>>> valid
>>>> page might have a struct instance straddling a page boundary.
>>> The first valid page is aligned_ps ( which is aligned on a page
>>> boundary ) so assuming that sizeof(*frame_table) < PAGE_SIZE we
>>> can't
>>> straddle a page boundary, can we?
>>
>> But sizeof(*frame_table) < PAGE_SIZE means nothing as to the
>> alignment
>> of an individual struct instance in memory. Iirc sizeof(*frame_table)
>> is 48 for RISC-V, so the common alignment across struct instances
>> isn't
>> going to be better than 8, and there _will_ be instances straddling
>> page boundaries.
> If we speak about the alignment of an individual struct instance in
> memory, what is the issue with that, except that it could be less
> efficient when accessing this memory? This inefficiency could
> potentially be addressed by adding some padding to the struct page_info
> but then we will have bigger frame table size.
> Another issue I can see is that the size of the frame table could be
> calculated incorrectly. It may require an additional page to cover the
> case when the frame table size isn't aligned to PAGE_SIZE, but this is
> accounted for by rounding up the frame table size to 2MB
> (frametable_size = ROUNDUP(frametable_size, MB(2));) before allocating
> the frame table (base_mfn = alloc_boot_pages(frametable_size >>
> PAGE_SHIFT, PFN_DOWN(MB(2)));).
> 
> Something else should be considered?

Much depends on what your decision is as to the earlier aspect. If
you map [0,end), then what you have ought to be fine (except for
being wasteful).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 09:06:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 09:06:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832368.1247678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9KwJ-00071p-BA; Fri, 08 Nov 2024 09:05:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832368.1247678; Fri, 08 Nov 2024 09:05: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 1t9KwJ-00071i-6Z; Fri, 08 Nov 2024 09:05:59 +0000
Received: by outflank-mailman (input) for mailman id 832368;
 Fri, 08 Nov 2024 09:05: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=pwxj=SD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t9KwI-00071J-DT
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 09:05:58 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8a55562-9db0-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 10:05:54 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2fb5be4381dso19164271fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 01:05:54 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff17900a63sm5625601fa.47.2024.11.08.01.05.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 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: a8a55562-9db0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzQiLCJoZWxvIjoibWFpbC1sajEteDIzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE4YTU1NTYyLTlkYjAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDU2NzU0LjIzMTc0Mywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731056753; x=1731661553; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=7Jql9MZWi7RMQuyLHQJSF5WsDDEPGdW1VQps+dmrYmw=;
        b=WzLX9JsKj4Nx4AXBPHtnDzlEH9TigjzwxtXiy/x9iFXUdo4Z74a1N/XybdSOMBiZXb
         fm8Vp9YwAsQDjvhYJ27ptMKWOMqA87kl2FazZHMVyeBe9qKOQ79S27CsWq2t5RL4eMrp
         cmCZJa7QLXneBGgdaqR3kCZC7X505i6Qw907mdaYmA8Op/Zjz3TD2gXFd32y59z47F2L
         +PUwo5Ep/zgW9t8Tv05b0aHKcsOLhfQWY/QpcjdxJed1h7NYa3znbuu6kzCncFfsSUdr
         /MSmxzeNdRHPcSI4902RG5zCC+PmLhHHe8+wDwQeC06m4f8M/drBbeb5a46q/eLzPG3W
         hBAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731056753; x=1731661553;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7Jql9MZWi7RMQuyLHQJSF5WsDDEPGdW1VQps+dmrYmw=;
        b=O9z/0je38/ZNLU76X4J3vSxuNz8knVkYMmRExXCNhFGWW6TlHjyH95b+MSO328cNxa
         f6uGej4DwyKCAN7mcDic8d1h8i9W6USdXxmOf5++ey1PoVe8iwhwWrd7j2jnbSFtOQFP
         LrJOzUw8HZgL9PWAyUKMKIiTiX88480nC30E6qhd5MzUposcyYW+aeSaFqGUetmczZfV
         Ga8v49Mt5qCiSlMB7PMPX4aMOBEkjo0SVBqwRageEE4HKFpYrAr085MXvnZSRInIZLzj
         egTfgVfKngsAUJV0GMu906MdBiAngpITmzmzNBTf+S9mQCwwEtpfkyobmxBqTWbKVSA6
         h32Q==
X-Forwarded-Encrypted: i=1; AJvYcCVFddh/niXBMFGPkK4EKHwDB3p+1PgnBvbFsew7J+Lwsqq/5iummeOLqvEPfpb4GS2EH3kht3rE+EI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyd8Ib+phgw6P6G46K8rcdnntTLOqDwmv44F37h0ar/Yb6Ojd3Y
	AGqEHcGPgB0/l2zWECvSuV/aOvEoFpGKj27vCCfJAIu68Okjq3qj
X-Google-Smtp-Source: AGHT+IEytm3Nn50CtNxcbxcAeV6p4F2EE7ghw4mWw6b/f9wSGCG24DgELQk/VG7/2JRWXB6w+iuUww==
X-Received: by 2002:a05:651c:1589:b0:2fc:a347:6d87 with SMTP id 38308e7fff4ca-2ff20162111mr10285211fa.13.1731056753203;
        Fri, 08 Nov 2024 01:05:53 -0800 (PST)
Message-ID: <05906194cc4197d281142734baa48118afb64b4f.camel@gmail.com>
Subject: Re: [PATCH v2] CHANGELOG: Add note about xAPIC destination mode
 change
From: oleksii.kurochko@gmail.com
To: Matthew Barnes <matthew.barnes@cloud.com>, xen-devel@lists.xenproject.org
Cc: Community Manager <community.manager@xenproject.org>, Jan Beulich
	 <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
Date: Fri, 08 Nov 2024 10:05:49 +0100
In-Reply-To: <f7e299a8c1af7c5875e07f80b0229b1cd322a5f6.1730987624.git.matthew.barnes@cloud.com>
References: 
	<f7e299a8c1af7c5875e07f80b0229b1cd322a5f6.1730987624.git.matthew.barnes@cloud.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Thu, 2024-11-07 at 14:08 +0000, Matthew Barnes wrote:
> Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>

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

~ Oleksii

> ---
> Changes in v2:
> - Move notes from "Removed" to "Changed" section
> ---
> =C2=A0CHANGELOG.md | 2 ++
> =C2=A01 file changed, 2 insertions(+)
>=20
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 674944cbe4fb..8553b2e4516e 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -10,6 +10,8 @@ The format is based on [Keep a
> Changelog](https://keepachangelog.com/en/1.0.0/)
> =C2=A0 - Fixed blkif protocol specification for sector sizes different
> than 512b.
> =C2=A0 - On x86:
> =C2=A0=C2=A0=C2=A0 - Prefer ACPI reboot over UEFI ResetSystem() run time =
service
> call.
> +=C2=A0=C2=A0 - Switched the xAPIC flat driver to use physical destinatio=
n mode
> for external
> +=C2=A0=C2=A0=C2=A0=C2=A0 interrupts instead of logical destination mode.
> =C2=A0
> =C2=A0### Added
> =C2=A0 - On Arm:



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 09:41:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 09:41:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832376.1247687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9LUr-0003nB-Uw; Fri, 08 Nov 2024 09:41:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832376.1247687; Fri, 08 Nov 2024 09: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 1t9LUr-0003n4-S7; Fri, 08 Nov 2024 09:41:41 +0000
Received: by outflank-mailman (input) for mailman id 832376;
 Fri, 08 Nov 2024 09: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9LUq-0003my-S2
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 09:41:40 +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 a61ffedd-9db5-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 10:41:37 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cec93719ccso2444110a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 01:41:37 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2e8basm207662266b.194.2024.11.08.01.41.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Nov 2024 01:41: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: a61ffedd-9db5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE2MWZmZWRkLTlkYjUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDU4ODk3LjUxODA1OSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731058897; x=1731663697; 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=zSjg0hVRsNeMjVCNDiBr6+9z0ld2xB1b3F2uPzushWY=;
        b=ZSdf5BjphQi4s3mrL9YsIdwrNWTPI7WXNqNNMLLQw9sgGW01FhRdD4q5ToEg9IUJ4F
         +4FakNS1CI8i7WE/2//AsAGorMDsOPnDwdet0d1wV8Gj36W3n7hbwodzdchfhN4Q7tAh
         cyRTc6/x4p9aD7KkGgvitjXRtHQYxhySMo1HY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731058897; x=1731663697;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zSjg0hVRsNeMjVCNDiBr6+9z0ld2xB1b3F2uPzushWY=;
        b=rn41Tz3zSqMIzB7ItfNrvosl7f4113/3tw4Cuqn1gL819hd96kIhh4+2s+LMtsoNdT
         etZqWY/hqSbPbh3xhH1FQwyspABMf4OxmHLFycM2YiQB6EcTaetcmo0i4HO+IL7CFj3I
         ZgopJAMaXF0qDNu66f0JaHWsjcs75C7+vLlmBfotANIBi7TfooaJQpuQ7mJezRCFwQ89
         jjOUyPjC3lPZiwrHrmjUN/YoQLkJXKig1F+MNI00vGoPXyl4OZn+wooO8slSzIgIuoyB
         4qtP8HAT6fIJA/qOjwk+AsoZmL6CRCP8VN+847QH+yr5qrNXrHVsCInx1sFUNbzngFSj
         sbaQ==
X-Forwarded-Encrypted: i=1; AJvYcCVya+3bAQC8+pr8I2FcYhbZB4bDrckMHD3+lOh6VCNWXsBbh7kTKH9z00q8PRLK9kbZq5feF93oREo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzf2wm5AuvAtBQt7g+Jbryo/9Vsj03kZ23Ka98m/RXcor6B2MNU
	dXmgjSakd7wIm+2BZrT9+S381TiXvyGDhv5+Z+YzRgooBMi4cGi9SlmCFEtxeWw=
X-Google-Smtp-Source: AGHT+IGnaL6SCzrUZHkWPuwthJaiYZqy/qMOyJGSqVJS5j4IjiXp5blPzP3E7VWfAArxu1oQSccfUA==
X-Received: by 2002:a17:907:5c7:b0:a9a:d23:f8ca with SMTP id a640c23a62f3a-a9eeff0831amr182639366b.13.1731058896900;
        Fri, 08 Nov 2024 01:41:36 -0800 (PST)
Message-ID: <ac948cdc-8ae6-41f1-b7dd-35820e9c2193@citrix.com>
Date: Fri, 8 Nov 2024 09:41:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of
 destroy_xen_mappings()
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@ctrix.com>
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-4-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241106122927.26461-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2024 12:29 pm, Roger Pau Monne wrote:
> bootstrap_map_addr() top level comment states that it doesn't indented to
> remove the L2 tables, as the same L2 will be re-used to create further 2MB
> mappings.  It's incorrect for the function to use destroy_xen_mappings() which
> will free empty L2 tables.
>
> Fix this by using map_pages_to_xen(), which does zap the page-table entries,
> but does not free page-table structures even when empty.
>
> Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
> ---
> The fixes tag reflects the fact that if 4376c05c3113 freed the L2 correctly
> when empty, it would have become obvious that bootstrap_map_addr() shouldn't be
> using it if it wants to keep the L2.  4376c05c3113 should have switched
> bootstrap_map_addr() to not use destroy_xen_mappings().
> ---
>  xen/arch/x86/setup.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 177f4024abca..815b8651ba79 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -456,7 +456,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
>  
>      if ( !end )
>      {
> -        destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
> +        map_pages_to_xen(BOOTSTRAP_MAP_BASE, INVALID_MFN,
> +                         PFN_DOWN(map_cur - BOOTSTRAP_MAP_BASE),
> +                         _PAGE_NONE);
>          map_cur = BOOTSTRAP_MAP_BASE;

One option to consider is this.

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index eac8488c4ca5..b317a4d12f55 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -461,8 +461,13 @@ static void *__init bootstrap_map_addr(paddr_t
start, paddr_t end)
Â 
Â Â Â Â  if ( !end )
Â Â Â Â  {
-Â Â Â Â Â Â Â  destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
-Â Â Â Â Â Â Â  map_cur = BOOTSTRAP_MAP_BASE;
+Â Â Â Â Â Â Â  if ( map_cur > BOOTSTRAP_MAP_BASE )
+Â Â Â Â Â Â Â  {
+Â Â Â Â Â Â Â Â Â Â Â  memset(&l2_bootmap[l2_table_offset(BOOTSTRAP_MAP_BASE)],
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  0, (map_cur - BOOTSTRAP_MAP_BASE) >>
L2_PAGETABLE_SHIFT);
+Â Â Â Â Â Â Â Â Â Â Â  flush_tlb_local();
+Â Â Â Â Â Â Â Â Â Â Â  map_cur = BOOTSTRAP_MAP_BASE;
+Â Â Â Â Â Â Â  }
Â Â Â Â Â Â Â Â  return NULL;
Â Â Â Â  }
Â 
We know for certain there's nothing to free, and and this far less logic
than either destroy_xen_mappings() or map_pages_to_xen().

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 09:45:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 09:45:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832383.1247697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9LYm-0004NB-EX; Fri, 08 Nov 2024 09:45:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832383.1247697; Fri, 08 Nov 2024 09:45: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 1t9LYm-0004N4-Bq; Fri, 08 Nov 2024 09:45:44 +0000
Received: by outflank-mailman (input) for mailman id 832383;
 Fri, 08 Nov 2024 09:45: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=uvFD=SD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t9LYl-0004My-F0
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 09:45:43 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 370ee653-9db6-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 10:45:40 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-53c779ef19cso2187028e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 01:45: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
 d9443c01a7336-21177de0872sm26513965ad.110.2024.11.08.01.45.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Nov 2024 01:45: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: 370ee653-9db6-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1sZjEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM3MGVlNjUzLTlkYjYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDU5MTQwLjU4NTM1Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731059140; x=1731663940; 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=6UOsmGoWA1bG59+bj2O0Dulqy5+lu4/Q0P7Mnt9xzGA=;
        b=EIvocoK8gdqakhwrOT253tbOvAvDhP6+JMar35wZ+NB93jnbZ+8za8ddF3NvVGWcqj
         L7IRpRJPWnNF1qxF9c8reoOya7O+xHt87e7yuaZqMktDBJ/DI7uFieSEar6CXzuARE5r
         pz4dfdTDo3aiAHUH4tPXn5wel5J2p1uJQYV9+hLCETPpl0Z4JUXuRj7RL1kHuvoSpCmz
         0gBU2O+jWKa8KaYvP+J4BZtPJ7l3gPu18NVshzIBu6JV+2dZ5Y/NUzNK8NTmxZLqRTHm
         ErXGpAUy9S9IRH8NbVSiRNwj8vLRTHbKQu62OydXQGq5DjDBxj/i76aOqpdFcE17ZCrV
         Eayw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731059140; x=1731663940;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6UOsmGoWA1bG59+bj2O0Dulqy5+lu4/Q0P7Mnt9xzGA=;
        b=Hk+ZCJeyCzb8fuMeKfOS5dQ8COvKiqi1ETdh4l84Q5fMTpz7SyLzvSZ75YB3+rbxUk
         BrHkLRdLa1RGmEyfZ5/+0mI+uprgQ2+syTOvGtj30FregIqm+anIAySF1IpUc1fN9xu0
         Qu+rRyAddOMUNXFHkVy+5MEP4umZ4blnV/GxqoUKZypy/lvXViDcZs7N4l3ayzSLAuSg
         Wy0YFO/7Nej4b/vz6Ckmu+xAdl7uk34kne7S5KCrIA+8cTGrfSaXGNbleqdlVl/Nv7IH
         +bZbxzVwlpKYahCLwFimwsiHZc4iEAzQP4qggaFQRhsgiqU1aHi00XycMkzlKzO/k19O
         S2DQ==
X-Forwarded-Encrypted: i=1; AJvYcCUoFzkRCb+WqahMzvG9VusNenWXQZ6kXHn+GGxfIdOSB80gqt+Z5ejsGvLvMqT10Om5RLZBaQ35eZQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7IZQOR5bduXoO19HY3sA6MWLECIAbS2zStKa9J86fUZN9/SBM
	fXV69FZEXbLWm1L+O/VD7DXKdad9S0uFdbvIHlBqVVheuSQjSfRt9F5KQfTj1Q==
X-Google-Smtp-Source: AGHT+IHYq0XbwkFzkzT4m/SsdhhoZHnMsvDZhOpnsGkjUReB1GnND9VSoFk6b7ZV5GnmtRCZag5ySw==
X-Received: by 2002:a05:6512:3e01:b0:539:9720:99d4 with SMTP id 2adb3069b0e04-53d86296bb0mr902250e87.28.1731059139963;
        Fri, 08 Nov 2024 01:45:39 -0800 (PST)
Message-ID: <aa739c74-bbad-4cf4-b0a3-f86a2fa88a21@suse.com>
Date: Fri, 8 Nov 2024 10:45:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of
 destroy_xen_mappings()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-4-roger.pau@citrix.com>
 <ac948cdc-8ae6-41f1-b7dd-35820e9c2193@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: <ac948cdc-8ae6-41f1-b7dd-35820e9c2193@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.11.2024 10:41, Andrew Cooper wrote:
> On 06/11/2024 12:29 pm, Roger Pau Monne wrote:
>> bootstrap_map_addr() top level comment states that it doesn't indented to
>> remove the L2 tables, as the same L2 will be re-used to create further 2MB
>> mappings.  It's incorrect for the function to use destroy_xen_mappings() which
>> will free empty L2 tables.
>>
>> Fix this by using map_pages_to_xen(), which does zap the page-table entries,
>> but does not free page-table structures even when empty.
>>
>> Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
>> ---
>> The fixes tag reflects the fact that if 4376c05c3113 freed the L2 correctly
>> when empty, it would have become obvious that bootstrap_map_addr() shouldn't be
>> using it if it wants to keep the L2.  4376c05c3113 should have switched
>> bootstrap_map_addr() to not use destroy_xen_mappings().
>> ---
>>  xen/arch/x86/setup.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 177f4024abca..815b8651ba79 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -456,7 +456,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
>>  
>>      if ( !end )
>>      {
>> -        destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
>> +        map_pages_to_xen(BOOTSTRAP_MAP_BASE, INVALID_MFN,
>> +                         PFN_DOWN(map_cur - BOOTSTRAP_MAP_BASE),
>> +                         _PAGE_NONE);
>>          map_cur = BOOTSTRAP_MAP_BASE;
> 
> One option to consider is this.
> 
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index eac8488c4ca5..b317a4d12f55 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -461,8 +461,13 @@ static void *__init bootstrap_map_addr(paddr_t
> start, paddr_t end)
> Â 
> Â Â Â Â  if ( !end )
> Â Â Â Â  {
> -Â Â Â Â Â Â Â  destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
> -Â Â Â Â Â Â Â  map_cur = BOOTSTRAP_MAP_BASE;
> +Â Â Â Â Â Â Â  if ( map_cur > BOOTSTRAP_MAP_BASE )
> +Â Â Â Â Â Â Â  {
> +Â Â Â Â Â Â Â Â Â Â Â  memset(&l2_bootmap[l2_table_offset(BOOTSTRAP_MAP_BASE)],
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  0, (map_cur - BOOTSTRAP_MAP_BASE) >>
> L2_PAGETABLE_SHIFT);
> +Â Â Â Â Â Â Â Â Â Â Â  flush_tlb_local();
> +Â Â Â Â Â Â Â Â Â Â Â  map_cur = BOOTSTRAP_MAP_BASE;
> +Â Â Â Â Â Â Â  }
> Â Â Â Â Â Â Â Â  return NULL;
> Â Â Â Â  }
> Â 
> We know for certain there's nothing to free, and and this far less logic
> than either destroy_xen_mappings() or map_pages_to_xen().

Yet then such open-coding can badly bite us at other times.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 09:49:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 09:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832392.1247707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Lca-00052U-TO; Fri, 08 Nov 2024 09:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832392.1247707; Fri, 08 Nov 2024 09: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 1t9Lca-00052N-QR; Fri, 08 Nov 2024 09:49:40 +0000
Received: by outflank-mailman (input) for mailman id 832392;
 Fri, 08 Nov 2024 09:49: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9LcZ-00052H-Au
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 09:49:39 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3bcc721-9db6-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 10:49:36 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-539f7606199so1890279e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 01:49:36 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6c11f8sm92022035e9.25.2024.11.08.01.49.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 01:49: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: c3bcc721-9db6-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMzYmNjNzIxLTlkYjYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDU5Mzc2LjYwMDE0Nywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731059376; x=1731664176; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ckRx2buNXd0fpJLrWZiiRs+lCRAQLfxh+9AWVZ3zjRQ=;
        b=V8aCOBt74giQzPn1/lvZNIuDc6f4aazGN60BH9bAJJ4sQ6sjWk+PVyOwiF5Ru3zoR8
         0wVddUL9jZ7XLYtWQXvC1OJzNn+dazs+0Di64dFmfTFQzJYUBTbsdgaxIrYt2coHlaY9
         9eCuLJZy7YLRogcgksvoxh74CWcfldS2vG62M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731059376; x=1731664176;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ckRx2buNXd0fpJLrWZiiRs+lCRAQLfxh+9AWVZ3zjRQ=;
        b=bTccOcB5hgVphPAHi5tI/4C24J/2+U7PkxNLI/hGz5KfBa7rvvQUkZK9HjEMoxnDFC
         L0yoz5gGDP4AkBg6SS6EPPf7qa4037T9n3Mlg6HkmGCV+NNYAKLG0UqZr1k46Hixt0Cj
         f1y4ZpdHjOD2A0AlhQTahyKyasVxfqQXldlr2YvghXJY07hWBhYv2OPf5Rxt+1ZPsRov
         eG+ZjISKZp9tSGOI1w817LeBugIpy4X420/+fIS/nW1ryR5SeAUiHHCpdP6hFTAXAKLM
         oumMt00JQSLMBDW7exRWbiDXs1SQ/MUlXYulsEUbdyFAC3T4s17WR4zu6P+Wkqo3I9mu
         IkkQ==
X-Gm-Message-State: AOJu0YyRfilrkRchXMBYkgJrUcIXCx3sGTydftP73YLiuusiLLw5DzKR
	FuvIRdK/JDMDfTvMBJdLV8t9pihQiISyrii2iNfsfu7kheDI4G1LHRnaFbYfeXL7mjROKKBPczB
	2
X-Google-Smtp-Source: AGHT+IESQ2Q6NRj4WBRaRbHzaV66uUguAlm4P5zTEQZe+e+K7ta4XTcXYeZolxFgGTvhJUxai/vHVw==
X-Received: by 2002:a05:6512:3c84:b0:539:f807:ada5 with SMTP id 2adb3069b0e04-53d86227edfmr1150279e87.3.1731059375992;
        Fri, 08 Nov 2024 01:49:35 -0800 (PST)
Date: Fri, 8 Nov 2024 10:49:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@ctrix.com>
Subject: Re: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of
 destroy_xen_mappings()
Message-ID: <Zy3ernBVL8OplX0t@macbook>
References: <20241106122927.26461-1-roger.pau@citrix.com>
 <20241106122927.26461-4-roger.pau@citrix.com>
 <ac948cdc-8ae6-41f1-b7dd-35820e9c2193@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ac948cdc-8ae6-41f1-b7dd-35820e9c2193@citrix.com>

On Fri, Nov 08, 2024 at 09:41:35AM +0000, Andrew Cooper wrote:
> On 06/11/2024 12:29 pm, Roger Pau Monne wrote:
> > bootstrap_map_addr() top level comment states that it doesn't indented to
> > remove the L2 tables, as the same L2 will be re-used to create further 2MB
> > mappings.  It's incorrect for the function to use destroy_xen_mappings() which
> > will free empty L2 tables.
> >
> > Fix this by using map_pages_to_xen(), which does zap the page-table entries,
> > but does not free page-table structures even when empty.
> >
> > Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
> > ---
> > The fixes tag reflects the fact that if 4376c05c3113 freed the L2 correctly
> > when empty, it would have become obvious that bootstrap_map_addr() shouldn't be
> > using it if it wants to keep the L2.  4376c05c3113 should have switched
> > bootstrap_map_addr() to not use destroy_xen_mappings().
> > ---
> >  xen/arch/x86/setup.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> > index 177f4024abca..815b8651ba79 100644
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -456,7 +456,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
> >  
> >      if ( !end )
> >      {
> > -        destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
> > +        map_pages_to_xen(BOOTSTRAP_MAP_BASE, INVALID_MFN,
> > +                         PFN_DOWN(map_cur - BOOTSTRAP_MAP_BASE),
> > +                         _PAGE_NONE);
> >          map_cur = BOOTSTRAP_MAP_BASE;
> 
> One option to consider is this.
> 
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index eac8488c4ca5..b317a4d12f55 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -461,8 +461,13 @@ static void *__init bootstrap_map_addr(paddr_t
> start, paddr_t end)
> Â 
> Â Â Â Â  if ( !end )
> Â Â Â Â  {
> -Â Â Â Â Â Â Â  destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
> -Â Â Â Â Â Â Â  map_cur = BOOTSTRAP_MAP_BASE;
> +Â Â Â Â Â Â Â  if ( map_cur > BOOTSTRAP_MAP_BASE )
> +Â Â Â Â Â Â Â  {
> +Â Â Â Â Â Â Â Â Â Â Â  memset(&l2_bootmap[l2_table_offset(BOOTSTRAP_MAP_BASE)],
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  0, (map_cur - BOOTSTRAP_MAP_BASE) >>
> L2_PAGETABLE_SHIFT);
> +Â Â Â Â Â Â Â Â Â Â Â  flush_tlb_local();
> +Â Â Â Â Â Â Â Â Â Â Â  map_cur = BOOTSTRAP_MAP_BASE;
> +Â Â Â Â Â Â Â  }
> Â Â Â Â Â Â Â Â  return NULL;
> Â Â Â Â  }
> Â 
> We know for certain there's nothing to free, and and this far less logic
> than either destroy_xen_mappings() or map_pages_to_xen().

Should we then also consider using l2_bootmap directly when creating
the mappings?  So that we have symmetry between the map and unmap
logic.

I think it might be better do to this change as a followup patch, as I
would like to change both the map and unmap paths at the same time.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 10:11:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 10:11:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832431.1247733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9LxP-0001nf-0J; Fri, 08 Nov 2024 10:11:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832431.1247733; Fri, 08 Nov 2024 10:11: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 1t9LxO-0001nY-Tk; Fri, 08 Nov 2024 10:11:10 +0000
Received: by outflank-mailman (input) for mailman id 832431;
 Fri, 08 Nov 2024 10:11: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9LxN-0001nS-OE
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 10:11:09 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c323e418-9db9-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 11:11:04 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43161e7bb25so15987865e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 02:11:04 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432b05e5b96sm58793935e9.41.2024.11.08.02.11.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 02:11: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: c323e418-9db9-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMzMjNlNDE4LTlkYjktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDYwNjY0LjU1MTY5NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731060663; x=1731665463; 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=A8B59PsbjVMwBvTEdsytStB0ka/uppscNlMZreH/byk=;
        b=XWSQVQYV1vZFyT6hFx6UEq7rwodYdCZF1h9cXQJFmf65Fmm0vM8I/FfrD8qMKlW9tG
         WzdiTsemstakqz3qmA3t6Y+QzVl4/Xh/VAV9lzhfwx3SPKN9sqHaDFqjXA5NBThVaG/4
         5AfGUwzFEuxG4roCgv4ENd7jWoLKK1TSOSF08=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731060663; x=1731665463;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=A8B59PsbjVMwBvTEdsytStB0ka/uppscNlMZreH/byk=;
        b=oyvyCe8v7r0L0zlktzRjlLE52oBm6He4xLtSAcDT0kI0ABFHA/FjLvXMuS66Yk8dzC
         C0+cAD5+kIWIDZFZh/VJovD3YPrjEBkPhLBFYC0HZf0jCumU7XFdjYdSunBo+4ya5b4A
         SFLj4umAPPu3qUPYUEjeMxEBrLOSumMIK9JeaA0dCaVcvtd7qRs9YwY7M1raBdNntekD
         PW2h1mGgioRSKXbXdg1vazIS9rCt3/A8cSV1VIWuvfJA6jMOR6j23ivwHAezEBCcJfKb
         6lOYjgv3j2tAQYS92u3CkTsyHskpq4tNiVdbXxWFVZGNUOT0BCcdbAB6wHFu/Un8gztT
         6pBg==
X-Gm-Message-State: AOJu0YyCVcZE3QUIKIiQHKqfRf3hMhvl8Si/x7NU0Zpqais4D4nFjVXM
	E49vePJbLwOMxbRv1faRQChf4qHfFOY4fFyrWhICGdKB5xHRSWygYf/TAPhossxddctMDb41sNt
	d
X-Google-Smtp-Source: AGHT+IFDgUFk6NAqgt+UYiaSfLOhAutazTTCUaCWVKrtb6toyoFbjsYa9X4QvE1M5LpCo6bfm5Dx1w==
X-Received: by 2002:a05:600c:3514:b0:431:52b7:a485 with SMTP id 5b1f17b1804b1-432b7508b3dmr17657385e9.19.1731060663351;
        Fri, 08 Nov 2024 02:11:03 -0800 (PST)
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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] xen/Kconfig: livepatch-build-tools requires debug information
Date: Fri,  8 Nov 2024 11:10:25 +0100
Message-ID: <20241108101025.82228-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The tools infrastructure used to build livepatches for Xen
(livepatch-build-tools) consumes some DWARF debug information present in
xen-syms to generate a livepatch (see livepatch-build script usage of readelf
-wi).

The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
on release builds, thus providing a default Kconfig selection that's not
suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
because it's missing the DWARF debug section.

Fix by selecting DEBUG_INFO by default if LIVEPATCH is enabled.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Don't use select.
---
 xen/Kconfig.debug | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index 07ff7eb7ba83..c4a8d86912e0 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -133,7 +133,7 @@ endif # DEBUG || EXPERT
 
 config DEBUG_INFO
 	bool "Compile Xen with debug info"
-	default DEBUG
+	default DEBUG || LIVEPATCH
 	help
 	  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
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 10:24:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 10:24:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832443.1247743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9MAC-00041k-2C; Fri, 08 Nov 2024 10:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832443.1247743; Fri, 08 Nov 2024 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 1t9MAB-00041d-Uw; Fri, 08 Nov 2024 10:24:23 +0000
Received: by outflank-mailman (input) for mailman id 832443;
 Fri, 08 Nov 2024 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=uvFD=SD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t9MAA-00041T-NH
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 10:24:22 +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 9d50cd7e-9dbb-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 11:24:19 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-37d3ecad390so1777717f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 02: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
 d9443c01a7336-21177e44807sm27077685ad.155.2024.11.08.02.24.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Nov 2024 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: 9d50cd7e-9dbb-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkNTBjZDdlLTlkYmItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDYxNDU5LjgwMDkwMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731061459; x=1731666259; 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=l4zJdsjhnxmsuocdefZBnF/ea3uvn7P7N8euQA9hJp4=;
        b=gWKAptLa+HNjBAVWlFb3PjPeBqwFbgqAQxk6SrbmO1fm2qPdX3txWTMDT7b2epcKr7
         2iFTDR+ro7T4wfRajkLdWPKRCfHh3uWPeWqX1XHO9QW+N+NWpWOCDie/N7Q9C2ZodXze
         NN8Uo+sE1E4OL+dvggXk3xG21XZDCQpV3dCpO6Q1h+H4E9EisHvo4ERdqKe1NtTwyZrz
         Jf2SGEI8W49F0TSCqFNWigviQc+8Crz7W3FVa/X6QodztRyjcOtaMtsulkZM98hnRPzB
         sGmG5BzopnY2S7KmNZrOLh+GBA8SG+6uOUFgDHle9Vmcy3CTu+uZVez+okkdtRrgeIyU
         Ob8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731061459; x=1731666259;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l4zJdsjhnxmsuocdefZBnF/ea3uvn7P7N8euQA9hJp4=;
        b=OCYhb7XFRVND3P0l1b+Tpxh5ih86LUXgpGbRrZo0mD6pcqX7FBIHtt77JA+6FGku/Q
         Xyp/7is5CBacAIBEEJt5pdNZSaOZYmF+kBOJYgjCfm1KyRPHiRDOgzEFLNJQTh+ljT3G
         +Y8PC74bAGiRXjR2auP+FlHrPEvfV+mRwHedEYmGYdYLV2H4gFBemFYWBhk/Q+9PNTdB
         Lujq4reJDKRGDBY/I9UDVu5TvBky++gr4pqNpGfgjjd8ytkhNjI4v98OOmIk5NTjmFcG
         CD/J6XWKb1H1P+b3jZx/gEwoWl+cnMLqJe6lj6YsO2Xdb2FWLO0ka5nJq27pWn0uXeUk
         9nZw==
X-Forwarded-Encrypted: i=1; AJvYcCUQZ7fZZ08zY0ianJlmazW8cet4m0CfqQNe2+wwmlfJGYYEyZbWq4/0rdH+StfGCSq5Z9i/x8HFF8I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZlq6MXbokQ3Z49qHgnfrjpPT/CeWwYWhV8KwueD/nYkGbNXU3
	YiFyJVNaQnZbOr0+ipUM+v5w3BpHFUyZ1MPbqEdvQRzf22dQwB27FRl1+SAn6Q==
X-Google-Smtp-Source: AGHT+IENyWP8tNOlZTUe+IBdLzvNKNz31OyxwxJQpzrB4QN3IW8cZ0dVlHlpyKy42QT5Uk/7yZLTKw==
X-Received: by 2002:a05:6000:2a5:b0:37c:cce8:4acc with SMTP id ffacd0b85a97d-381f0f5dcebmr2352333f8f.13.1731061459081;
        Fri, 08 Nov 2024 02:24:19 -0800 (PST)
Message-ID: <9eb957bb-93a4-4b53-a8bd-20c62b2fe9ff@suse.com>
Date: Fri, 8 Nov 2024 11:24:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/Kconfig: livepatch-build-tools requires debug
 information
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241108101025.82228-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: <20241108101025.82228-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.11.2024 11:10, Roger Pau Monne wrote:
> The tools infrastructure used to build livepatches for Xen
> (livepatch-build-tools) consumes some DWARF debug information present in
> xen-syms to generate a livepatch (see livepatch-build script usage of readelf
> -wi).
> 
> The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
> on release builds, thus providing a default Kconfig selection that's not
> suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
> because it's missing the DWARF debug section.
> 
> Fix by selecting DEBUG_INFO by default if LIVEPATCH is enabled.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

Yet I wonder whether this now faces Andrew's opposition.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 11:01:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 11:01:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832451.1247753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Mjq-0001kX-PR; Fri, 08 Nov 2024 11:01:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832451.1247753; Fri, 08 Nov 2024 11:01: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 1t9Mjq-0001kQ-Mr; Fri, 08 Nov 2024 11:01:14 +0000
Received: by outflank-mailman (input) for mailman id 832451;
 Fri, 08 Nov 2024 11:01: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9Mjp-0001kJ-EG
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 11:01:13 +0000
Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com
 [2607:f8b0:4864:20::1033])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1523b9c-9dc0-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 12:01:08 +0100 (CET)
Received: by mail-pj1-x1033.google.com with SMTP id
 98e67ed59e1d1-2e2bd0e2c4fso1617102a91.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 03:01:08 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-2e99a541d16sm5152060a91.16.2024.11.08.03.01.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 03: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: c1523b9c-9dc0-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoxMDMzIiwiaGVsbyI6Im1haWwtcGoxLXgxMDMzLmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImMxNTIzYjljLTlkYzAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDYzNjY4LjQ4NDAwNiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731063667; x=1731668467; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=I3EtV/rR3PMGcpV3wKfTo8n8n1LgMNEzH0HvwGajS6M=;
        b=H9IZOiVkLk7v4Il+okfAWy9p/kOhCucs47JcioBivzVhd22Durx6SXn4j+9BodZGH5
         SY6G/ZDqkqSkpd/8d5uX99oKy2CX6F2zJehnRSykEy7ps4o/kdOEeb4Ne8MJzVzViHVs
         YNf2tSgBerCUgxCwOM7LDlkQZQmylA0izPQ7c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731063667; x=1731668467;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=I3EtV/rR3PMGcpV3wKfTo8n8n1LgMNEzH0HvwGajS6M=;
        b=mY3mNWEVvdMmh0BDrYW7xiBdK7SGRmZhQbxShW5AQUkoUF0DS5YijPQS/WG89hasIU
         sVvwJogp+w/2FKgu6EC8ofjeLqbvsYkBWVVFCsjZSnRj7Alqhnq4xWE/5IfvdWZwXmCH
         Jbl9IHTed07UCDiIcj08EA82sa3wJCFzrx3veCKsfgJLc78K81N6A4cK0J/DusiRV4Vf
         qFNFNGpN1YzSJ1Yn+n789YdauqtVIEo+JZnlyAJl7tOrv3yTbONOQWzdMZe3qC9bbRTO
         CRvzNc0RXIUfxdkKLTylOcrjKovWPQ8O3QDvn7Dt2g3Ln/wZeLWGtZG9In6blVC9CDVR
         4XoQ==
X-Forwarded-Encrypted: i=1; AJvYcCXK8qc/rZKfUOh4iPyY1zYIN9nHx0e+FJfcjOqh1eYmWALDbJ5PXNlg025FoGsGE4e/0u92+6H0HYw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFzzmT34oE02gVdmhZQSUfOAEYtYh7OeBlweuEFiXcSt4Gd8WO
	ZhYAXRs1lLaQHzaP0o++HGVZ1655VU4akwpZ/3ViWYKY4+Cmgq7W0Dckmx4eoQA=
X-Google-Smtp-Source: AGHT+IEfzhzjSjv1upQ9Yn2B6zFbK5FyGyUnWs8BlotL2DnDcJ8ufprvbv4DoLh0wWH6D8/8k2l4ig==
X-Received: by 2002:a17:90b:264d:b0:2da:d766:1925 with SMTP id 98e67ed59e1d1-2e9b175575dmr3003505a91.37.1731063666711;
        Fri, 08 Nov 2024 03:01:06 -0800 (PST)
Date: Fri, 8 Nov 2024 12:00: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>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] xen/Kconfig: livepatch-build-tools requires debug
 information
Message-ID: <Zy3vaVve-Dmhwz4i@macbook>
References: <20241108101025.82228-1-roger.pau@citrix.com>
 <9eb957bb-93a4-4b53-a8bd-20c62b2fe9ff@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9eb957bb-93a4-4b53-a8bd-20c62b2fe9ff@suse.com>

On Fri, Nov 08, 2024 at 11:24:12AM +0100, Jan Beulich wrote:
> On 08.11.2024 11:10, Roger Pau Monne wrote:
> > The tools infrastructure used to build livepatches for Xen
> > (livepatch-build-tools) consumes some DWARF debug information present in
> > xen-syms to generate a livepatch (see livepatch-build script usage of readelf
> > -wi).
> > 
> > The current Kconfig defaults however will enable LIVEPATCH without DEBUG_INFO
> > on release builds, thus providing a default Kconfig selection that's not
> > suitable for livepatch-build-tools even when LIVEPATCH support is enabled,
> > because it's missing the DWARF debug section.
> > 
> > Fix by selecting DEBUG_INFO by default if LIVEPATCH is enabled.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Yet I wonder whether this now faces Andrew's opposition.

You have both options now on the list.  I don't mind that much, just
want to get this sorted.  Either patch is better than the current
situation.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 11:32:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 11:32:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832462.1247762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9NE4-00060y-4l; Fri, 08 Nov 2024 11:32:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832462.1247762; Fri, 08 Nov 2024 11: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 1t9NE4-00060r-2E; Fri, 08 Nov 2024 11:32:28 +0000
Received: by outflank-mailman (input) for mailman id 832462;
 Fri, 08 Nov 2024 11:32: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9NE2-00060f-NJ
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 11:32:26 +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 1f1d1f01-9dc5-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 12:32:22 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5cb6ca2a776so2970988a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 03:32:22 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4b90esm224837466b.65.2024.11.08.03.32.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 03:32: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: 1f1d1f01-9dc5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmMWQxZjAxLTlkYzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDY1NTQyLjk4NDkyMiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731065542; x=1731670342; 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=5GMxLpSdX/qKdomxrV7skRI1u0DIRvFBG4c4tYQWUrQ=;
        b=pIax7XgK5sXT5+A4nUWfGLYT4BgwobalGsei0/NjPz4EdaAgR0JvPqCXIoW7nRJs3w
         Z/kVPGTTLAgd53Az6BBv5k7I+qt/DImKulDbcgY5Ga5cxbDGfyfQ51wWUPah5QKCCOAR
         80oleDYPTlekpstbAuFfmHWgyB/fx1lva9KWk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731065542; x=1731670342;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5GMxLpSdX/qKdomxrV7skRI1u0DIRvFBG4c4tYQWUrQ=;
        b=UbSbmzkV0wggDVMFAkk4c9BK33ft9QLhCmP5M2fMeH4ZD8D5oYljdi6wrcoQv0Ey5v
         ehkkr5pfF20yLtWMs5Np7bxbor5AwcH1APBcv2lFX8sENV0dwlZWPh+xOopnSv//Hhrk
         /ZkYJMoCJTzHOzU6gUotYd5F/k67edhNS3ZcEIUy8o2Qi7fgwa6m9TpiOT8N2NsZIQDz
         TWyh1ZmJZzxii3wViJETl23W3HL6/pMIR/TBmFn+oMnwzeGzDfjEK/cYCT3pDqVhF39e
         OSxeXQWEW+NgYlpzaD0y48cwq7FGqEk5d5KRCQc8BIuLKKsqXs/6zwiFsmS2ClaGykUW
         Apew==
X-Gm-Message-State: AOJu0Yyo+7A5UJDj3S0b0InFDczk0MJ/N1SdrwvYxy5KswhcrYz5DPkO
	ydfLJwMo/g3hU0tVIz2fFPwRV7N3dCJ5weXuLxrdhI1nLJyQZhXC9cSIkCGYCUgCjLVskVzFERK
	z
X-Google-Smtp-Source: AGHT+IH+l8YC9ByJg3VKrS3n3vRH/yFhzouzPcHReqanIT966AqxnixfAjMyhUZyRFSu67t9Bk2FTA==
X-Received: by 2002:a17:906:dc8a:b0:a9e:b471:8006 with SMTP id a640c23a62f3a-a9eefff13demr182493066b.43.1731065542060;
        Fri, 08 Nov 2024 03:32:22 -0800 (PST)
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 v2 0/4] x86/mm: miscellaneous fixes
Date: Fri,  8 Nov 2024 12:31:40 +0100
Message-ID: <20241108113144.83637-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The attempt to fix destroy_xen_mappings() so that L2 tables are
consistently freed uncovered some errors in the memory management code.
The following series attempts to fix them.

All patches except for 4/4 are new in v2, and 4/4 has no change from v1,
hence kept Jan's Reviewed-by tag in 4/4.

Thanks, Roger.

Roger Pau Monne (4):
  x86/mm: introduce helpers to detect super page alignment
  x86/mm: skip super-page alignment checks for non-present entries
  x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
  x86/mm: ensure L2 is always freed if empty

 xen/arch/x86/mm.c    | 30 ++++++++++++++++++++++--------
 xen/arch/x86/setup.c |  4 +++-
 2 files changed, 25 insertions(+), 9 deletions(-)

-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 11:32:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 11:32:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832463.1247767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9NE4-00064D-DM; Fri, 08 Nov 2024 11:32:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832463.1247767; Fri, 08 Nov 2024 11: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 1t9NE4-00062t-9M; Fri, 08 Nov 2024 11:32:28 +0000
Received: by outflank-mailman (input) for mailman id 832463;
 Fri, 08 Nov 2024 11:32: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9NE2-00060g-Uw
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 11:32:26 +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 1fd71f02-9dc5-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 12:32:24 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5c9c28c1ecbso2548788a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 03:32:24 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4bfa1sm222698766b.74.2024.11.08.03.32.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 03:32: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: 1fd71f02-9dc5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzEiLCJoZWxvIjoibWFpbC1lZDEteDUzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmZDcxZjAyLTlkYzUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDY1NTQ0LjQxNDI2OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731065543; x=1731670343; 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=QHfkhGUnT0xwCTLoRSPpeRbYmiIBgZ+v2c3CutALv3Q=;
        b=UGTfdHE+y6FJAYVUvdPy3bo0pnT7YQKiXvMCF/ptT3A9bl6cIxqmYI7o9oF5dfrPuz
         akhkwWqLUI4B7ThsevRCB/2u/aaSchE4vTdP069Lw4jXulbbW9X7e50bJtkx+a/cMW8P
         Dyf0i4WL+KjOoZaBVd0istTnSghe8VYd1eY98=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731065543; x=1731670343;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QHfkhGUnT0xwCTLoRSPpeRbYmiIBgZ+v2c3CutALv3Q=;
        b=m09SLWVKgye77AmfzFt9KgJQCegwCbewLUkoQjEb9H29SvjrT5alSeKo+4J1pPpE7F
         YmPgCthqZGoxeqxSL3VAqzNp9BB7elca06kPoLLBuMuCAch1GcIT4CYA0AXLkCs443vL
         CINI+nQ6+XiZ+TnJIuPybeZT5fpJV4b92bTz6+EhapBhqFVF9CQSIm+0U/2mULj0o3vQ
         Lgiemx7kA9QNwSPCgNBK9QCKBk91Lv0IuNbIV9jYPdUw3wO7zhXBsfY7jrvjfkgypUJh
         mkOrcKqWD6wXrIX0z4MPzxS0aKJRm1LC0QoSGG6cNXG+YW7fTA4Sre0qXhdy1me/BPuK
         FwWQ==
X-Gm-Message-State: AOJu0YxLShpIEdOf4Ko1i1zzX4ReKZ1Luv5uDohCzlpLSqNCas7Hn2hc
	rVdXeUBdLHgEJLqV0sb4xVVzNCZvpNHJxudOlFBLGgYrAtPFPetxKOJYz/owO5AKeAcIV9DgRms
	A
X-Google-Smtp-Source: AGHT+IHnGJLyrRZSvRtHSPlxNz38lSDP7tcz1Xe4EjKzGuTjisPpZiSaE51Jm9bXOiyEGBdeNYKQTQ==
X-Received: by 2002:a17:907:3e9e:b0:a9a:8674:1739 with SMTP id a640c23a62f3a-a9ef0008cf0mr189975466b.53.1731065543284;
        Fri, 08 Nov 2024 03:32:23 -0800 (PST)
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 v2 1/4] x86/mm: introduce helpers to detect super page alignment
Date: Fri,  8 Nov 2024 12:31:41 +0100
Message-ID: <20241108113144.83637-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241108113144.83637-1-roger.pau@citrix.com>
References: <20241108113144.83637-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Split the code that detects whether the physical and linear address of a
mapping request are suitable to be used in an L3 or L2 slot.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Make the macros local to map_pages_to_xen().
 - Some adjustments to macro logic.
---
 xen/arch/x86/mm.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index d537a799bced..8afb63c855b9 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5232,6 +5232,12 @@ int map_pages_to_xen(
     }                                          \
 } while (0)
 
+/* Check if a (virt, mfn) tuple is aligned for a given slot level. */
+#define IS_LnE_ALIGNED(v, m, n) \
+    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << (PAGETABLE_ORDER * (n - 1))) - 1)
+#define IS_L2E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 2)
+#define IS_L3E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 3)
+
     L3T_INIT(current_l3page);
 
     while ( nr_mfns != 0 )
@@ -5249,9 +5255,7 @@ int map_pages_to_xen(
         L3T_LOCK(current_l3page);
         ol3e = *pl3e;
 
-        if ( cpu_has_page1gb &&
-             !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-               ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1)) &&
+        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
         {
@@ -5370,8 +5374,7 @@ int map_pages_to_xen(
         if ( !pl2e )
             goto out;
 
-        if ( ((((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-               ((1u << PAGETABLE_ORDER) - 1)) == 0) &&
+        if ( IS_L2E_ALIGNED(virt, mfn) &&
              (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
              !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
         {
@@ -5541,9 +5544,7 @@ int map_pages_to_xen(
  check_l3:
         if ( cpu_has_page1gb &&
              (flags == PAGE_HYPERVISOR) &&
-             ((nr_mfns == 0) ||
-              !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-                ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1))) )
+             ((nr_mfns == 0) || IS_L3E_ALIGNED(virt, mfn)) )
         {
             unsigned long base_mfn;
             const l2_pgentry_t *l2t;
@@ -5587,6 +5588,9 @@ int map_pages_to_xen(
         }
     }
 
+#undef IS_L3E_ALIGNED
+#undef IS_L2E_ALIGNED
+#undef IS_LnE_ALIGNED
 #undef flush_flags
 
     rc = 0;
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 11:32:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 11:32:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832464.1247783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9NE5-0006T9-NB; Fri, 08 Nov 2024 11:32:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832464.1247783; Fri, 08 Nov 2024 11:32: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 1t9NE5-0006T2-Iy; Fri, 08 Nov 2024 11:32:29 +0000
Received: by outflank-mailman (input) for mailman id 832464;
 Fri, 08 Nov 2024 11:32: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9NE4-00060f-GA
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 11:32:28 +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 208faf58-9dc5-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 12:32:25 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9e71401844so243122866b.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 03:32:25 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc4c18sm223026666b.121.2024.11.08.03.32.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 03:32: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: 208faf58-9dc5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIwOGZhZjU4LTlkYzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDY1NTQ1LjM5NzUwNSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731065544; x=1731670344; 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=6IDMV3cbJu3SgaSqePIjXkH0NqJWYaQKiZv2BBcuvU8=;
        b=IR1DSEDcXjvj+HYW6kXz9yCMmPXDGSUgwuDsbP3hB12ERb7gJUnd+rcXI72zYKch13
         v3j6ieOP0ictKc7dhGsMTPGXnu/es0np1WJIAAEx34Hj8O5ekygkZr6vRHUEF8DJAoYr
         glB0e4Ox8uRr+RaEbfcvGIUVBKrI84by/nywA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731065544; x=1731670344;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6IDMV3cbJu3SgaSqePIjXkH0NqJWYaQKiZv2BBcuvU8=;
        b=U3m3zf8LqQGnUk+CfxAJ/L7Ve0SopklTpvKX7q9imeejjfEjma1KNEkeBNdK21Z9CG
         IYkaNutSq+asvHmBH2RxWrXLq4V7CovUoZPW0PVfI5ssyGfH09p3JdISvzYNcQDMgWs1
         Ms8JIsDSmFX6WtzitdJWD2oY36Ru9StZgiv2M4yc6/LXP1u97lKY/mKln7ESD4zbIAp5
         C4K5axckKu8u8v4QaOOuB99OSjX5EZL/+Y3qa03VEGjDZ0i2Y4pxj2JIIs3gqXxehDEq
         DXWaw04OxLve3F/B4KFqlTlE4V/g9B/ScpYxOFhjjhdIs+cZDjH8pGfAB7tbG+z60t0R
         vcpw==
X-Gm-Message-State: AOJu0YwSJtaGHHDguoMOyeA+ClbSOi7cB8nOVwejz23eWDWNMXbiZ8YQ
	MGoJkIexHbTEWsT5OAQALkQIWvRZqS4blqnQKxeiJ20Zao20Q+KDs6dwvASQ9tS5LnQFTXinRbv
	0
X-Google-Smtp-Source: AGHT+IHSdK76R8jeKdJ5/M0JC2X3Ik030Ae/Z3JqhChC/O5JSXgTzr2bxNCOlYsLEgjaaIsic5vWNw==
X-Received: by 2002:a17:906:5f98:b0:a9e:f28c:374a with SMTP id a640c23a62f3a-a9ef28c3ba4mr125502766b.32.1731065544475;
        Fri, 08 Nov 2024 03:32:24 -0800 (PST)
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 v2 2/4] x86/mm: skip super-page alignment checks for non-present entries
Date: Fri,  8 Nov 2024 12:31:42 +0100
Message-ID: <20241108113144.83637-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241108113144.83637-1-roger.pau@citrix.com>
References: <20241108113144.83637-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

INVALID_MFN is ~0, so by it having all bits as 1s it doesn't fulfill the
super-page address alignment checks for L3 and L2 entries.  Skip the alignment
checks if the new entry is a non-present one.

This fixes a regression introduced by 0b6b51a69f4d, where the switch from 0 to
INVALID_MFN caused all super-pages to be shattered when attempting to remove
mappings by passing INVALID_MFN instead of 0.

Fixes: 0b6b51a69f4d ('xen/mm: Switch map_pages_to_xen to use MFN typesafe')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v1:
 - Detect non-present entries from the flags contents rather than checking the
   mfn parameter.
---
 xen/arch/x86/mm.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 8afb63c855b9..64b8054891da 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5232,9 +5232,17 @@ int map_pages_to_xen(
     }                                          \
 } while (0)
 
-/* Check if a (virt, mfn) tuple is aligned for a given slot level. */
-#define IS_LnE_ALIGNED(v, m, n) \
-    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << (PAGETABLE_ORDER * (n - 1))) - 1)
+/*
+ * Check if a (virt, mfn) tuple is aligned for a given slot level. m must not
+ * be INVALID_MFN, since alignment is only relevant for present entries.
+ */
+#define IS_LnE_ALIGNED(v, m, n) ({                              \
+    mfn_t m_ = m;                                               \
+                                                                \
+    ASSERT(!mfn_eq(m_, INVALID_MFN));                           \
+    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m_),                         \
+               (1UL << (PAGETABLE_ORDER * (n - 1))) - 1);       \
+})
 #define IS_L2E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 2)
 #define IS_L3E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 3)
 
@@ -5255,7 +5263,8 @@ int map_pages_to_xen(
         L3T_LOCK(current_l3page);
         ol3e = *pl3e;
 
-        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
+        if ( cpu_has_page1gb &&
+             (!(flags & _PAGE_PRESENT) || IS_L3E_ALIGNED(virt, mfn)) &&
              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
         {
@@ -5374,7 +5383,7 @@ int map_pages_to_xen(
         if ( !pl2e )
             goto out;
 
-        if ( IS_L2E_ALIGNED(virt, mfn) &&
+        if ( (!(flags & _PAGE_PRESENT) || IS_L2E_ALIGNED(virt, mfn)) &&
              (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
              !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
         {
@@ -5544,7 +5553,8 @@ int map_pages_to_xen(
  check_l3:
         if ( cpu_has_page1gb &&
              (flags == PAGE_HYPERVISOR) &&
-             ((nr_mfns == 0) || IS_L3E_ALIGNED(virt, mfn)) )
+             ((nr_mfns == 0) || !(flags & _PAGE_PRESENT) ||
+              IS_L3E_ALIGNED(virt, mfn)) )
         {
             unsigned long base_mfn;
             const l2_pgentry_t *l2t;
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 11:32:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 11:32:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832466.1247803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9NE8-0006xk-8w; Fri, 08 Nov 2024 11:32:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832466.1247803; Fri, 08 Nov 2024 11: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 1t9NE8-0006xd-5L; Fri, 08 Nov 2024 11:32:32 +0000
Received: by outflank-mailman (input) for mailman id 832466;
 Fri, 08 Nov 2024 11:32: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9NE6-00060f-Ql
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 11:32:30 +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 22024e07-9dc5-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 12:32:27 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5c9693dc739so2868034a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 03:32:27 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7f1sm1951138a12.8.2024.11.08.03.32.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 03:32: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: 22024e07-9dc5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIyMDI0ZTA3LTlkYzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDY1NTQ3LjgyOTIxNCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731065547; x=1731670347; 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=Hy1rkOMw7x1rLXXuXX/nNUCuXlBj0Xy8KQUl33hR/Gg=;
        b=Ja4n9ROREEHM3ZMjA7sGNZqP+H4vdMeVgLmzDkWKzah3/TZih2RGK1fCnWk9zk0H72
         yHf416R9Y2nGsycFfUcoVkQTKuNZtyidReQFATDW2HpbWlX58x2xy1zubLSWNseC7Kjm
         i7V4DfgtopXQ1veAY3HFEwmtX/7RvUxu3Ti9M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731065547; x=1731670347;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Hy1rkOMw7x1rLXXuXX/nNUCuXlBj0Xy8KQUl33hR/Gg=;
        b=BeeMjJwOIe6hXaC8Mkuzn/g7Km5m/JbwiigKa3EGMO9aCfm4zuntrczXM/2e4bMwoU
         Iwg93YsLdsTd6akGoIa+w/45AEbI86gUOUOLgabYW4Cg1fqNJ/sSKPEuobfaFhSSADZ5
         uQjdwCnGY7FfbHMSqcavV8++OFfuZBEuigzfeCdzTbUws1PG2uaRkwTbT0MZHuqDcCj/
         v+n2XCDeVTQJPyXIWgP4xARRVaK+CQepbYkbhn4GJJzWaT2DJZyX07jKEu+JrHXpDY+2
         GEfXO3qh6pxGaM6tYtJIyPdboLiwot7xFvNZzQhHpfozpoHWN82LMKpO2bZnGVQF10BH
         GYhQ==
X-Gm-Message-State: AOJu0YwdXd4kLIC4EZmCbO5hDW3yPJEfYDghbo8cfVQaNxkJYJu9MIDu
	ozGfnJ0prMzuvSngctN7Jn6seMNem7vVvxVAaA4u/IzSQ3CDerSb1Zo6AZ+FEiGBM9qPibXS9Br
	L
X-Google-Smtp-Source: AGHT+IFjecNCao5lsL7w1bkyUj5XNZbq0NAXdF5qofiHRnPek57Q64WqXdld3mSVYG/gwB4xgXQT0Q==
X-Received: by 2002:a05:6402:3547:b0:5cb:acfa:61ee with SMTP id 4fb4d7f45d1cf-5cf0a441833mr1683126a12.23.1731065546957;
        Fri, 08 Nov 2024 03:32:26 -0800 (PST)
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 v2 4/4] x86/mm: ensure L2 is always freed if empty
Date: Fri,  8 Nov 2024 12:31:44 +0100
Message-ID: <20241108113144.83637-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241108113144.83637-1-roger.pau@citrix.com>
References: <20241108113144.83637-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic in modify_xen_mappings() allows for fully empty L2 tables to
not be freed and unhooked from the parent L3 if the last L2 slot is not
populated.

Ensure that even when an L2 slot is empty the logic to check whether the whole
L2 can be removed is not skipped.

Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/mm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 64b8054891da..489c71150255 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5731,7 +5731,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
 
             v += 1UL << L2_PAGETABLE_SHIFT;
             v &= ~((1UL << L2_PAGETABLE_SHIFT) - 1);
-            continue;
+            goto check_l3;
         }
 
         if ( l2e_get_flags(*pl2e) & _PAGE_PSE )
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 11:32:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 11:32:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832465.1247793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9NE7-0006iA-28; Fri, 08 Nov 2024 11:32:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832465.1247793; Fri, 08 Nov 2024 11:32: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 1t9NE6-0006i1-UK; Fri, 08 Nov 2024 11:32:30 +0000
Received: by outflank-mailman (input) for mailman id 832465;
 Fri, 08 Nov 2024 11:32: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9NE5-00060f-NF
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 11:32:29 +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 2158ed38-9dc5-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 12:32:26 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso355449366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 03:32:26 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2f45fsm221932666b.204.2024.11.08.03.32.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 03:32: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: 2158ed38-9dc5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIxNThlZDM4LTlkYzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDY1NTQ2LjcwMDIyOCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731065546; x=1731670346; 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=b0FsFkoIjQtR5Yklh+Ux7paSLeD4eOoP2CsT3Yg/Cq0=;
        b=J7PbuHBopXB4U33tV0+XXTD8hEMcaKPwBkKGW/dal1QO8kG8K8x4cH7kw1KjDMJv0a
         nDXBxb2vQphbM3kQW+rhEETYLTLAg77jC6mheYvbAPgV6T8Y7hnqbTGRkC4pIfPOKR8d
         IjPe4zPzWXxNcys4R9S4hlt8F6uMtwIght0L4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731065546; x=1731670346;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=b0FsFkoIjQtR5Yklh+Ux7paSLeD4eOoP2CsT3Yg/Cq0=;
        b=MJr5JE27Y/fCMQb+GxisTlqa6Nm2eCWMd5L304vqb0MsXVzKOsefxgzb0Zp0U+Geu9
         oxXcSru52b3bSegKP2+Qi2edSPoSiSaq1Na1BEltGbrZnRi4I9s1HhNv2ubF7Cyqj2Km
         7akSgS1v1jv/HV0e/Jxb/deMDpSVAOa56mwCKCb++vvT/OaWHKzMTpPICicGuJqXlwS4
         RGqmzscI437R0tX37zxRndE6VWbIbONfD1S05wVnCIPhDHUvvX11DJoNeu5q3LhFDzeQ
         ctYKKHV1ytvrw4BKtO3OmBhha6DVWZpIG46XpqxH1ND1585Bqnt/5PvjhfL5q8tZWf84
         mWEg==
X-Gm-Message-State: AOJu0Yz9EEWHi1xMJxwpLPzFT4Ly8/iE8nGm5VkHgTIxn8JYjVfUsH1x
	PwTebNkg+XGY81Bt14N/TevrWg9GiIAGAELmdpwMxTVUbPUxE4YToDzhpq1DqZ7A33qGqxNH6tI
	h
X-Google-Smtp-Source: AGHT+IFy4fnRmgbWrct3CZB3rKXTHBYaRMNiebB/Puw9Ue9WYq850IfO2FJ0xODFGojsIO+hspGLsA==
X-Received: by 2002:a17:907:7243:b0:a9a:49a8:f1fa with SMTP id a640c23a62f3a-a9eefeed031mr220996966b.23.1731065545811;
        Fri, 08 Nov 2024 03:32:25 -0800 (PST)
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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@ctrix.com>
Subject: [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
Date: Fri,  8 Nov 2024 12:31:43 +0100
Message-ID: <20241108113144.83637-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241108113144.83637-1-roger.pau@citrix.com>
References: <20241108113144.83637-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bootstrap_map_addr() needs to be careful to not remove existing page-table
structures when tearing down mappings, as such pagetable structures might be
needed to fulfill subsequent mappings requests.  The comment ahead of the
function already notes that pagetable memory shouldn't be allocated.

Fix this by using map_pages_to_xen(), which does zap the page-table entries,
but does not free page-table structures even when empty.

Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v1:
 - Adjust commit message.
---
 xen/arch/x86/setup.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index eac8488c4ca5..be7ca26b3dd5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -461,7 +461,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
 
     if ( !end )
     {
-        destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
+        map_pages_to_xen(BOOTSTRAP_MAP_BASE, INVALID_MFN,
+                         PFN_DOWN(map_cur - BOOTSTRAP_MAP_BASE),
+                         _PAGE_NONE);
         map_cur = BOOTSTRAP_MAP_BASE;
         return NULL;
     }
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 12:12:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 12:12:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832528.1247813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9NrA-0006Nj-Jr; Fri, 08 Nov 2024 12:12:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832528.1247813; Fri, 08 Nov 2024 12:12: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 1t9NrA-0006Nc-Ft; Fri, 08 Nov 2024 12:12:52 +0000
Received: by outflank-mailman (input) for mailman id 832528;
 Fri, 08 Nov 2024 12:12: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9Nr9-0006NV-1l
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 12:12:51 +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 c33ca85f-9dca-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 13:12:45 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso363153966b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 04:12:45 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4a988sm223954466b.59.2024.11.08.04.12.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 04:12: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: c33ca85f-9dca-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMzM2NhODVmLTlkY2EtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDY3OTY1Ljc5MTU1Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731067964; x=1731672764; 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=KPl05uDpcIVvTaOJ217rmBk+BiHJABBBSah5zq7hgxc=;
        b=A7qjLE6SQ96KJUb3LiKRSDXKg8NWJPwF99rUxlK7R4y8ky4nZj0AuGl/Xr0EY/G2k7
         lm9NfaDc0doJspSP4atNE+NzbfKuKxd54V7vIwWsPj3tuKYtnnBsU9eMGysCthhAlfH1
         BlioawicSgDGyS48GuW8klodhSrMs4q+7/ofc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731067964; x=1731672764;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=KPl05uDpcIVvTaOJ217rmBk+BiHJABBBSah5zq7hgxc=;
        b=XzFHcoD0Mbh37p3upRy4ZY+95rxOzVvTuW0EW96AjU5GZcPepJLBulLCjVXDSdRJgT
         3QJyIeUORF/gOZ6Y/wfiqBdGQZN4MpFM1g0V8S14yAMCYum8dC/5fxR7bMhnQZtRuGIY
         qfRJ+BBselCI3KSI7/5W1nOkfiN9YDFpNcdI0jWbxQGC2x9NlunXgr7IA4dzd+nNO7u3
         yYl/b4LX0Kc+16b3miZtjnsjIrNEr//5QZoHMISqUSYXXBVsGcB2SEoSBCqOFKLG7VU/
         cQkyihd/0o1Vds0Iyg7/jPi4pFJWQVL9HTKIXNDEHdT/9Au4M56N8PTMDlCcucu7ooZH
         fQjw==
X-Gm-Message-State: AOJu0Yx5wxkXuO+mERVRIcpIrmMMjs7KkGRIAGUOTzAPZTtN8H33yvjU
	LgXrJQKUlmJkgL7sM9Glxl20EZYYibO2owLEs9pvRme6f4wibw/i16k8hYsJcNVPehsBybf4efW
	+
X-Google-Smtp-Source: AGHT+IHX6d+y0TiDZ7gHyA8K7KonB6rhXBRUeR4cYlqIfXUzM8h/tZnjrWXc3aI4Z4KIgwpBsOu/QA==
X-Received: by 2002:a17:907:6d0c:b0:a9e:447b:6f76 with SMTP id a640c23a62f3a-a9eeff38602mr232465866b.31.1731067964142;
        Fri, 08 Nov 2024 04:12:44 -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/3] x86/ucode: Fix cache handling in microcode_update_helper()
Date: Fri,  8 Nov 2024 12:12:41 +0000
Message-Id: <20241108121241.243945-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
References: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

microcode_update_cache() now has a single caller, but inlining it shows how
unnecessarily complicated the logic really is.

Outside of error paths, there is always one microcode patch to free.  Its
either result of parse_blob(), or it's the old cached value.

In order to fix this, have a local patch pointer (mostly to avoid the
unnecessary verbosity of patch_with_flags.patch), and always free it at the
end.  The only error path needing care is the IS_ERR(patch) path, which is
easy enough to handle.

Also, widen the scope of result.  We only need to call compare_patch() once,
and the answer is still good later when updating the cache.  In order to
update the cache, simply SWAP() the patch and the cache pointers, allowing the
singular xfree() at the end to cover both cases.

This also removes all callers microcode_free_patch() which fixes the need to
cast away const to allow it to compile.

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>

This is in prepartion to totally overhaul compare_patch().  There's now only a
single caller.
---
 xen/arch/x86/cpu/microcode/core.c | 66 +++++++++++--------------------
 1 file changed, 24 insertions(+), 42 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 5897ec54032a..0cc5daa251e2 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -86,7 +86,7 @@ struct patch_with_flags {
 static bool ucode_in_nmi = true;
 
 /* Protected by microcode_mutex */
-static const struct microcode_patch *microcode_cache;
+static struct microcode_patch *microcode_cache;
 
 /*
  * opt_mod_idx and opt_scan have subtle semantics.
@@ -192,33 +192,6 @@ static struct microcode_patch *parse_blob(const char *buf, size_t len)
     return alternative_call(ucode_ops.cpu_request_microcode, buf, len, true);
 }
 
-static void microcode_free_patch(const struct microcode_patch *patch)
-{
-    xfree((struct microcode_patch *)patch);
-}
-
-/* Return true if cache gets updated. Otherwise, return false */
-static bool microcode_update_cache(const struct microcode_patch *patch)
-{
-    ASSERT(spin_is_locked(&microcode_mutex));
-
-    if ( !microcode_cache )
-        microcode_cache = patch;
-    else if ( alternative_call(ucode_ops.compare_patch,
-                               patch, microcode_cache) == NEW_UCODE )
-    {
-        microcode_free_patch(microcode_cache);
-        microcode_cache = patch;
-    }
-    else
-    {
-        microcode_free_patch(patch);
-        return false;
-    }
-
-    return true;
-}
-
 /* Returns true if ucode should be loaded on a given cpu */
 static bool is_cpu_primary(unsigned int cpu)
 {
@@ -496,6 +469,8 @@ struct ucode_buf {
 
 static long cf_check microcode_update_helper(void *data)
 {
+    struct microcode_patch *patch = NULL;
+    enum microcode_match_result result;
     int ret;
     struct ucode_buf *buffer = data;
     unsigned int cpu, updated;
@@ -524,17 +499,20 @@ static long cf_check microcode_update_helper(void *data)
         goto put;
     }
 
-    patch_with_flags.patch = parse_blob(buffer->buffer, buffer->len);
+    patch = parse_blob(buffer->buffer, buffer->len);
     patch_with_flags.flags = buffer->flags;
+
     xfree(buffer);
-    if ( IS_ERR(patch_with_flags.patch) )
+
+    if ( IS_ERR(patch) )
     {
-        ret = PTR_ERR(patch_with_flags.patch);
+        ret = PTR_ERR(patch);
+        patch = NULL;
         printk(XENLOG_WARNING "Parsing microcode blob error %d\n", ret);
         goto put;
     }
 
-    if ( !patch_with_flags.patch )
+    if ( !patch )
     {
         printk(XENLOG_WARNING "microcode: couldn't find any matching ucode in "
                               "the provided blob!\n");
@@ -549,10 +527,7 @@ static long cf_check microcode_update_helper(void *data)
     spin_lock(&microcode_mutex);
     if ( microcode_cache )
     {
-        enum microcode_match_result result;
-
-        result = alternative_call(ucode_ops.compare_patch,
-                                  patch_with_flags.patch, microcode_cache);
+        result = alternative_call(ucode_ops.compare_patch, patch, microcode_cache);
 
         if ( result != NEW_UCODE &&
              !(ucode_force && (result == OLD_UCODE || result == SAME_UCODE)) )
@@ -561,12 +536,13 @@ static long cf_check microcode_update_helper(void *data)
             printk(XENLOG_WARNING
                    "microcode: couldn't find any newer%s revision in the provided blob!\n",
                    ucode_force ? " (or a valid)" : "");
-            microcode_free_patch(patch_with_flags.patch);
             ret = -EEXIST;
 
             goto put;
         }
     }
+    else
+        result = NEW_UCODE;
     spin_unlock(&microcode_mutex);
 
     cpumask_clear(&cpu_callin_map);
@@ -593,14 +569,18 @@ static long cf_check microcode_update_helper(void *data)
      *   this requirement can be relaxed in the future. Right now, this is
      *   conservative and good.
      */
+    patch_with_flags.patch = patch;
     ret = stop_machine_run(do_microcode_update, &patch_with_flags, NR_CPUS);
 
     updated = atomic_read(&cpu_updated);
     if ( updated > 0 )
     {
-        spin_lock(&microcode_mutex);
-        microcode_update_cache(patch_with_flags.patch);
-        spin_unlock(&microcode_mutex);
+        if ( result == NEW_UCODE )
+        {
+            spin_lock(&microcode_mutex);
+            SWAP(patch, microcode_cache);
+            spin_unlock(&microcode_mutex);
+        }
 
         /*
          * Refresh the raw CPU policy, in case the features have changed.
@@ -615,8 +595,6 @@ static long cf_check microcode_update_helper(void *data)
         if ( ctxt_switch_masking )
             alternative_vcall(ctxt_switch_masking, current);
     }
-    else
-        microcode_free_patch(patch_with_flags.patch);
 
     if ( updated && updated != nr_cores )
         printk(XENLOG_ERR "ERROR: Updating microcode succeeded on %u cores and failed\n"
@@ -627,6 +605,10 @@ static long cf_check microcode_update_helper(void *data)
 
  put:
     put_cpu_maps();
+
+    /* The parsed blob or old cached value, whichever we're not keeping. */
+    xfree(patch);
+
     return ret;
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 12:43:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 12:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832539.1247822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9OKC-0002H1-PI; Fri, 08 Nov 2024 12:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832539.1247822; Fri, 08 Nov 2024 12:42: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 1t9OKC-0002Gu-Mk; Fri, 08 Nov 2024 12:42:52 +0000
Received: by outflank-mailman (input) for mailman id 832539;
 Fri, 08 Nov 2024 12:42: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=PTb2=SD=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1t9OKB-0002Go-IS
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 12:42:51 +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 f56635a2-9dce-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 13:42:48 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-431481433bdso18090305e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 04:42:48 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432b05c26e3sm65019875e9.33.2024.11.08.04.42.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Nov 2024 04:42: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: f56635a2-9dce-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY1NjYzNWEyLTlkY2UtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDY5NzY4LjE2MTMyMiwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731069767; x=1731674567; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XyLyijz4kvYk0zATBMHnZC6WMbqcgsBZuOOHu53zOvk=;
        b=TinyPIxic53y8XQ0fiPSyb2/hZFQRAn7/KlfifH2BqfJBiaNntLg9redSnq6lgdRMe
         bwgTD6mVW5vhQab3xxcepH2dOvWHPFBEi6Pjd29VpVdi9CEa6WmIHu238AYMrSJLk+Ul
         z/vUA4PzlUt+XMU8S00XY2yxxUux3i6GOvFxg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731069767; x=1731674567;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=XyLyijz4kvYk0zATBMHnZC6WMbqcgsBZuOOHu53zOvk=;
        b=YPR5M98RBa1QFpzyA7seaFE/Q9TT+2XQ53mh444SD7AArpEmAgEsdE/CEYb/cys6UY
         H0JC8yGoCCoBZAzUfhYm1RBYhWjUMPCLNNZ/tR+HjXdwynNzvkq+tLh7kh3whBEbgahk
         eS50jSteJM0B4T9hgB5DJRzAuq0gINE/6r97vLNNaAtZezFttvkhpTQT+LXimvoVgKC0
         hAUrjys0cCyz+2hPWe5ECgp1jKkGAvTFMnyHar2Snt+TfHgarXhGl00CT6w2IlJXcZdA
         FMoHcokSEcz92WaGHPL1+otdwC458KY95jlRZR1nK9HITOHGsFrlDM6abSAPnoDKU2v+
         gqOw==
X-Forwarded-Encrypted: i=1; AJvYcCWiyk19Gfb5suqm6BCYKpnPEYst9VFi21SQ7FSG5kmQqioKh5A/nrMhdXZOKKOYEn9CsCPWvxCgSdc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxnFAKKkViw/rjKxI1K/lW/WzbdZBH46SoIyvu2S9vVhRb0DyuN
	TUlaN9coljufIF55IY7aeyNDH46U0weQmqN6KREKHJu6e9+0ERZ3rN5HLBOnQ1g=
X-Google-Smtp-Source: AGHT+IGcOk5f8yWifxTY5xI3/fw/33DMfxWGlVxGcSw+9sljxcL/wIw61crxr+rICZ757NtlLiKwTg==
X-Received: by 2002:a05:600c:5494:b0:42f:8515:e490 with SMTP id 5b1f17b1804b1-432b74fd8e5mr19860665e9.5.1731069767356;
        Fri, 08 Nov 2024 04:42:47 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 08 Nov 2024 12:42:45 +0000
Message-Id: <D5GT0NR29WEF.216KE5GCTH1TL@cloud.com>
Cc: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>, "Stewart Hildebrand"
 <stewart.hildebrand@amd.com>
X-Mailer: aerc 0.18.2
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
In-Reply-To: <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>

On Mon Nov 4, 2024 at 7:44 AM GMT, Jan Beulich wrote:
> On 01.11.2024 21:16, Stewart Hildebrand wrote:
> > +Daniel (XSM mention)
> >=20
> > On 10/28/24 13:02, Jan Beulich wrote:
> >> On 18.10.2024 22:39, Stewart Hildebrand wrote:
> >>> Add links between a VF's struct pci_dev and its associated PF struct
> >>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to av=
oid
> >>> dropping and re-acquiring the pcidevs_lock().
> >>>
> >>> During PF removal, unlink VF from PF and mark the VF broken. As befor=
e,
> >>> VFs may exist without a corresponding PF, although now only with
> >>> pdev->broken =3D true.
> >>>
> >>> The hardware domain is expected to remove the associated VFs before
> >>> removing the PF. Print a warning in case a PF is removed with associa=
ted
> >>> VFs still present.
> >>>
> >>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >>> ---
> >>> Candidate for backport to 4.19 (the next patch depends on this one)
> >>>
> >>> v5->v6:
> >>> * move printk() before ASSERT_UNREACHABLE()
> >>> * warn about PF removal with VFs still present
> >>
> >> Hmm, maybe I didn't make this clear enough when commenting on v5: I wa=
sn't
> >> just after an adjustment to the commit message. I'm instead actively
> >> concerned of the resulting behavior. Question is whether we can reason=
ably
> >> do something about that.
> >=20
> > Right. My suggestion then is to go back to roughly how it was done in
> > v4 [0]:
> >=20
> > * Remove the VFs right away during PF removal, so that we don't end up
> > with stale VFs. Regarding XSM, assume that a domain with permission to
> > remove the PF is also allowed to remove the VFs. We should probably als=
o
> > return an error from pci_remove_device in the case of removing the PF
> > with VFs still present (and still perform the removals despite returnin=
g
> > an error). Subsequent attempts by a domain to remove the VFs would
> > return an error (as they have already been removed), but that's expecte=
d
> > since we've taken a stance that PF-then-VF removal order is invalid
> > anyway.
>
> Imo going back is not an option.
>
> > While the above is what I prefer, I just want to mention other options =
I
> > considered for the scenario of PF removal with VFs still present:
> >=20
> > * Increase the "scariness" of the warning message added in v6.
> >=20
> > * Return an error from pci_remove_device (while still removing only the
> > PF). We would be left with stale VFs in Xen. At least this would
> > concretely inform dom0 that Xen takes issue with the PF-then-VF removal
> > order. Subsequent attempts by a domain to remove VFs, however
> > (un)likely, would succeed.
>
> Returning an error in such a case is a possibility, but comes with the
> risk of confusion. Seeing such an error, a caller may itself assume the
> device still is there, and retry its (with or without having removed the
> VFs) removal at a later point.
>
> > * Return an error from pci_remove_device and keep the PF and VFs. This
> > is IMO the worst option because then we would have a stale PF in
> > addition to stale VFs.
>
> Yet this would at least be self-consistent, unlike the variant above. No
> matter what, any failure to remove VFs and/or PFs correctly will need to
> result in there being no attempt to physically remove the device.
>
> You didn't enumerate an option lightly mentioned before, perhaps because
> of its anticipated intrusiveness: Re-associate stale VFs with their PF,
> once the PF is re-reported. Problem of course is that, aiui, the VFs
> could in principle re-appear at a different BDF (albeit we have other
> issues with potential bus-renumbering done by Dom0), and their count
> could also change.

Are you enumerating it for completeness or suggesting it should be done?

Maybe I'm missing something here (and please, do tell me what if so), but w=
hy
would this option be desirable at all? What would benefit from such semanti=
cs
(as opposed to any of the others)? It would break the lifetime dependency
between PF and VFs, and that doesn't strike me as a feature. It also turns
kernel bugs into a fine implementations by making promises about how state =
is
persisted, but the consequences of that appear to be too far reaching to kn=
ow
for sure it's 100% ok.

>From afar, it sounds like trying to turn a bug into a feature. And that can=
not
always be done sanely. But again, maybe I might very well be missing
something...

>
> Jan
>
> > [0] https://lore.kernel.org/xen-devel/20240827035929.118003-1-stewart.h=
ildebrand@amd.com/T/#t

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 12:52:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 12:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832549.1247833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9OT5-0003yj-ML; Fri, 08 Nov 2024 12:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832549.1247833; Fri, 08 Nov 2024 12:52: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 1t9OT5-0003yc-Hg; Fri, 08 Nov 2024 12:52:03 +0000
Received: by outflank-mailman (input) for mailman id 832549;
 Fri, 08 Nov 2024 12:52: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=pwxj=SD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t9OT3-0003yG-Hr
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 12:52:01 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3dc19d59-9dd0-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 13:51:58 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-539fb49c64aso3028772e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 04:51:58 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff179d1cd3sm6441261fa.94.2024.11.08.04.51.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 04:51: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: 3dc19d59-9dd0-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmQiLCJoZWxvIjoibWFpbC1sZjEteDEyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNkYzE5ZDU5LTlkZDAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDcwMzE4LjgyOTkwMywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731070318; x=1731675118; 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=/KF/4uaLg9OGUJ36n8jOjIhEvlDeSBqlRVNpRQDpJbs=;
        b=ciPmbsfTqSCo7JcfY0mbWmNcTNN3CiUAHImNvvnrmtCRyuwJ1JwX4tMCmHwiCdGql2
         0UMDFyaYgdvF0zhWi0eMuiCTDaL76Li4mHjf+S1Ade/qGkdz9f9NLbCj4biMtcyQcvZ9
         UD9WVv+QmIC8N8lhxmOe8VFm9eXKytNaeNZQLQdP7OFZdeHkK9mRUwB+T/VB3k41qY8P
         LuM+v+xTFGUsyyT5PvDlKNVRjHU+cOkQXcYBZEb+f25zo+7CVy02X6RUPEwCidzQki1x
         011/st1tCnpLGpf6YQ0BCEDjITr6wGhwwmfBWNF0fbU0Jzp6/Sw0bqN3JAv/3GnpFFOg
         Htlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731070318; x=1731675118;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/KF/4uaLg9OGUJ36n8jOjIhEvlDeSBqlRVNpRQDpJbs=;
        b=Lj5zgbrmXHhvoTNGo+8L/X5Eezt9YBkJL8rAJUGpf5gvMQTReiZKHvc7OnpllNzez4
         +2PCB/rcFCbeTIIzIy8W0D31sN/aPPmzG8PEgrMGrJdtFe0BvuRCJaDwCToclWcP6fj1
         X1pPcMs0VowrXVKEGo+6XZGis+pB+FATw3QOoPalnKM08WTIP53yntR8X6WGVIdE7ODb
         Zmq/9ZjJfs1xaY3Z7htmMl1BFfCU+Iy/TkGb5Gx1b92o9Tx+ykx1Mdc/qKfjZKCMp9q1
         0v0+NF9SxCD+wXXsdtc85HONCnvKs6f9VN5TIebdefGnHjpSxiEV5TABhbPAB6Apk8J9
         ymwg==
X-Gm-Message-State: AOJu0YzSvME9sZMEVQW9wnWUyxd9E6BwZyp8uCX4gzYTFrRWnzEExtvE
	rqZyjK7QsWLVm60jAO9sN0aMprWeE7f7+/vprBAJkc9KAsDVTsDdOSqqHQ64
X-Google-Smtp-Source: AGHT+IGAJUKMLuLRL7Lnd220yIKLpKMVZdrpEVRz9MwVzCVo/ULoMZelGU0dHajCGZaXVsPr7TMkdA==
X-Received: by 2002:a2e:a58c:0:b0:2fa:c0c2:d311 with SMTP id 38308e7fff4ca-2ff20162607mr25520611fa.5.1731070317607;
        Fri, 08 Nov 2024 04:51: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 0/3] Setup memory management for RISC-V
Date: Fri,  8 Nov 2024 13:51:51 +0100
Message-ID: <cover.1731069334.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Finish initializing the memory subsystem by mapping the direct map and
frame table.

The frametable_virt_start variable is introduced with substracting
of an offest ( taking into account that RAM start could be not 0 ) to save
virtual address space of FRAMETABLE. Also it simplifies the
calculations and thereby improves performance for page_to_mfn(), mfn_to_page()
as there is no frametable_base_pdx or frametable_base_mfn ( if CONFIG_PDX_COMPRESSION=n);

The directmap_virt_start is introduced and shifted lower in the VA space to
(DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
wasting a large portion of the directmap space, this also allows for simple
VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
(for Sv39; for other MMU mode boundaries will be bigger ) by masking the
higher bits of the RAM start address to enable the use of superpages in
map_pages_to_xen().

In addition, initialize the VMAP_DEFAULT region, finalize the boot allocator,
and update the system state from early_boot to boot.

Introduce share_xen_page_with_guest() to deal with linkage error which occurs
because of DCE:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

The function maddr_to_virt() is introduced as part of this patch series.

virt_to_maddr() is updated as it is started to use direct_virt_start which is
introduced in this patch series.

---
Changes in V4:
 - Rebase on top of current staging.
 - Fix issues with setup_frametable_mappings() and setup_directmap_mappings().
 - Drop unnecessary local variables.
 - Minor log messsages fixes.
---
Changes in V3:
 - Update the cover letter message as DIRECTMAP connected things were changed.
 - Update setup_mm(), setup_{directmap,frametable}_mappings.
 - Introduce ROUNDDOWN in <xen/macros.h>
 - All other details please look at the specific patch.
---
Changes in V2:
 - update the cover letter message.
 - merge first 3 patches to "introduce setup_mm()" patch as after setup_mm()
   rework all the things in first two patches of v1 started to use changes
   introduced in "introduce setup_mm()" patch.
 - add Acked-by for some patch series.
 - All other details please look at the specific patch.
---

Oleksii Kurochko (3):
  xen/riscv: introduce setup_mm()
  xen/riscv: initialize the VMAP_DEFAULT virtual range
  xen/riscv: finalize boot allocator and transition to boot state

 xen/arch/riscv/include/asm/mm.h    |  19 ++--
 xen/arch/riscv/include/asm/setup.h |   2 +
 xen/arch/riscv/mm.c                | 154 +++++++++++++++++++++++++++--
 xen/arch/riscv/pt.c                |   6 ++
 xen/arch/riscv/setup.c             |  14 +++
 xen/include/xen/macros.h           |   1 +
 6 files changed, 184 insertions(+), 12 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 12:52:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 12:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832552.1247863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9OT8-0004hF-Kx; Fri, 08 Nov 2024 12:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832552.1247863; Fri, 08 Nov 2024 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 1t9OT8-0004h8-HS; Fri, 08 Nov 2024 12:52:06 +0000
Received: by outflank-mailman (input) for mailman id 832552;
 Fri, 08 Nov 2024 12:52: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=pwxj=SD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t9OT6-0004KV-RT
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 12:52:04 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f34b8f3-9dd0-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 13:52:01 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-539f8490856so2486272e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 04:52:01 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff179d1cd3sm6441261fa.94.2024.11.08.04.51.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 04:51: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: 3f34b8f3-9dd0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzEiLCJoZWxvIjoibWFpbC1sZjEteDEzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNmMzRiOGYzLTlkZDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDcwMzIxLjIxMzkyMywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731070320; x=1731675120; 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=5RBOzLKW+Lk5l1HfU2OOOR0TzYe+7zWVSmx7Lwgwr/s=;
        b=bWkumRgq1DZ0Oud0NQW3xTJxwD/auyLXY3kaD6tB+zz3Ow0NE9bkoCbmL/18CzVXAF
         lDmvf5cFQ8FtTcwUMTfTp8lRMpi8ygNtSRro/re7l8unshWay3uI3GuLBSujrV60yyNH
         Cz5cdsYZ5SiNJa+Nyew4Q+AJgCHVRjCmpVBnSjAuFwo4w/ktsgmpoDfWR/A1NX27yd0N
         guI4NrRdJvWy2h7irx4SNPbvnaxj3Mgrqifn/PmyxOTA9+HQPrztVPVG9x/9Xeb0TIJZ
         zuhPmwu5K89By155WIYFg8CwFjHKCbEryHtMuURLEUzP8bz71Ft/+g83ogXXtNbVcQK3
         0lhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731070320; x=1731675120;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5RBOzLKW+Lk5l1HfU2OOOR0TzYe+7zWVSmx7Lwgwr/s=;
        b=L60VUO/m0f7n519daXKeTGLArOOkJ1jGxQldgOEvmIHoNFiwezjs7fhjf5Y8byhZ36
         /jvwdzn2nOnWeeAEELa0pFsZW9oxtF1rkvqvRdDK6iEN3uQwvm6g2Um6uVvHoAQjQ0Ea
         RS8VeZmHyGAVPCwZ+W+kDHXMI9zrBWmCaR53ykabAta/26oM2p0/ciAaMwnSZEcI/v1/
         0VQ+Jqi51sLtmQjxku/kTkIbhKwI8gw+Hayf4AAr4GGpL88wx413s5bBZ5d0OOJ2ZwEJ
         JptKNqJ8mQ+dUaUk5TimvUH/iEjIN3bOoQtCtz5ZCE9gs+ds3AxlR1pijEk77G41EyST
         XlMg==
X-Gm-Message-State: AOJu0YwLRB/ICHm2Bd57l2XBcp2ihBR6mawb7zdj5lFNUDdFHYjU9imf
	8D2uoCH2ZY9xJUbWJFtbLMK4sLKZni2qcEVChVQwFpcIjrEHq82qJWu6Z7vO
X-Google-Smtp-Source: AGHT+IEt4Wpy+8yhnbg3fv3FC8KTAT8VSu28ply8GZ5ZZMEFkWTs3sDKX+Upjulv1x3VR40ubLzh1w==
X-Received: by 2002:a05:651c:544:b0:2fb:6027:7c0a with SMTP id 38308e7fff4ca-2ff201e734amr12350001fa.8.1731070319976;
        Fri, 08 Nov 2024 04:51: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 3/3] xen/riscv: finalize boot allocator and transition to boot state
Date: Fri,  8 Nov 2024 13:51:54 +0100
Message-ID: <f616818c38f65e0d59e9caa9bb922bf12238a109.1731069334.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731069334.git.oleksii.kurochko@gmail.com>
References: <cover.1731069334.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a call to end_boot_allocator() in start_xen() to finalize the
boot memory allocator, moving free pages to the domain sub-allocator.

After initializing the memory subsystem, update `system_state` from
`SYS_STATE_early_boot` to `SYS_STATE_boot`, signifying the end of the
early boot phase.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V4:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/setup.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 3652cb056d..9680332fee 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -65,6 +65,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     vm_init();
 
+    end_boot_allocator();
+
+    /*
+     * The memory subsystem has been initialized, we can now switch from
+     * early_boot -> boot.
+     */
+    system_state = SYS_STATE_boot;
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 12:52:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 12:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832550.1247838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9OT5-000428-T2; Fri, 08 Nov 2024 12:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832550.1247838; Fri, 08 Nov 2024 12:52: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 1t9OT5-000401-P4; Fri, 08 Nov 2024 12:52:03 +0000
Received: by outflank-mailman (input) for mailman id 832550;
 Fri, 08 Nov 2024 12:52: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=pwxj=SD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t9OT4-0003yG-M8
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 12:52:02 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e57fb4a-9dd0-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 13:51:59 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-539e59dadebso2437699e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 04:51:59 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff179d1cd3sm6441261fa.94.2024.11.08.04.51.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 04:51: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: 3e57fb4a-9dd0-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzIiLCJoZWxvIjoibWFpbC1sZjEteDEzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNlNTdmYjRhLTlkZDAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDcwMzE5Ljc0MzY4NSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731070319; x=1731675119; 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=bg4o6YPlKB/P8QnjrwlvBOhRSmBMJphju8/P/zCbMw0=;
        b=D1rKNenLyLhACRaoQ+eLP7aHOn8Qtf5QFMppZp+znwKM9VWb8lGPnfAb67LEcdj3L/
         mr8tOmtD3XZ9lktYfv25qkQ1W2AFqN7+/HaMxcsTPQ/t9XS2VXn+EN4FfYCEI5AMSF7t
         DMHZGjOLWPidvvECKQm5I+6vLGuWiHUlUvNYkpbbVCqY4aZ2ZcgLIePe5aESYNJCubMy
         uTZQAcy1nzzfOicTqiL8zasx219PoEr0FFJIy8lHB5dOdNbMuNVaJrEG+zq2MyaJRJJ5
         fjWlq9ww03FeQsKpL6pJHiD8K6Exca+vfB08iSsE79/x1ngK9IF+rTHtbKufQ5EDy1J0
         zGyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731070319; x=1731675119;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=bg4o6YPlKB/P8QnjrwlvBOhRSmBMJphju8/P/zCbMw0=;
        b=cthM0eRXqRjmfLK1IwKSn6h1Tk9SM/MVzj4CHHdIYVagEx89F05OtogFr4EiOK2aTx
         dwa9A6pNqYQZ9DXajvoMhl/tmuwBFRqcXD2aomJXi+hXmoB1qkisBlU8H/8aj3w5L64V
         4HJ5NHkBdHe4rO9T9jmGnkjSrwKXN2QujwGvmBX+P6vrc9NxkhBledKD9PSVm7BBgMJQ
         YY1V2vZUF+p+f8Xi5JrKm5uIlOGePCUUQG0lWAVt/beU2rybVuJw0tk48TndPn+aQevt
         vvtiJlmeQkE4OXr441Lmcmg7eXe2KdwYJq7aiy52yt1VhEeNNlTUox3Y0TvRGGKqxXyQ
         biqQ==
X-Gm-Message-State: AOJu0Yx2xtWGm6Cp2MXn+ixDjR+IlyEXfISjhcke+j8RBruXyHS1Ky51
	OXI+/bA4GQzT8GRtBLnfzgOc8jWs0Vj3b85kM4qWFCpmMNmjcDOJIKj6TXeF
X-Google-Smtp-Source: AGHT+IFjs4Ow12MpT2cDV/KCNtdUr+/4D5NosLj0sJ7wqYNv8kLwU+YQYt3dpRkB33QpzebXVwg8Pg==
X-Received: by 2002:a05:651c:2122:b0:2fb:5e64:327e with SMTP id 38308e7fff4ca-2ff20288ef5mr15198401fa.33.1731070318415;
        Fri, 08 Nov 2024 04:51: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 1/3] xen/riscv: introduce setup_mm()
Date: Fri,  8 Nov 2024 13:51:52 +0100
Message-ID: <2a9262165c71733792974f5e27795625013bc656.1731069334.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731069334.git.oleksii.kurochko@gmail.com>
References: <cover.1731069334.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the implementation of setup_mm(), which includes:
1. Adding all free regions to the boot allocator, as memory is needed
   to allocate page tables used for frame table mapping.
2. Calculating RAM size and the RAM end address.
3. Setting up direct map mappings from each RAM bank and initialize
   directmap_virt_start to keep simple VA <-> PA translation and if
   RAM_start isn't properly aligned then add an additional alignment
   to directmap_virt_start to be properly aligned with RAM
   start to use more superpages to reduce pressure on the TLB.
4. Setting up frame table mappings for range [ram_start, ram_end)
   and initialize properly frametable_virt_start to have simplified
   version of mfn_to_page() and page_to_mfn().
5. Setting up max_page.

Update virt_to_maddr() to use introduced directmap_virt_start.

Implement maddr_to_virt() function to convert a machine address
to a virtual address. This function is specifically designed to be used
only for the DIRECTMAP region, so a check has been added to ensure that
the address does not exceed DIRECTMAP_SIZE.

After the introduction of maddr_to_virt() the following linkage error starts
to occur and to avoid it share_xen_page_with_guest() stub is added:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

Despite the linkger fingering tasklet.c, it's trace.o which has the undefined
refenrece:
  $ find . -name \*.o | while read F; do nm $F | grep share_xen_page_with_guest &&
    echo $F; done
                     U share_xen_page_with_guest
    ./xen/common/built_in.o
                     U share_xen_page_with_guest
    ./xen/common/trace.o
                     U share_xen_page_with_guest
    ./xen/prelink.o

Looking at trace.i, there is call of share_xen_page_with_guest() but in case of
when maddr_to_virt() is defined as stub ("BUG_ON(); return NULL;") DCE happens and
the code is just eliminated.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Change in V4:
 - s/heap/directmap in log message in setup_directmap_mappings().
 - drop local variable total_pages in setup_mm() as it is not used.
 - call setup_frametable_mappings() for [ram_start,ram_end) range.
 - setup_frametable_mappings(ps, pe):
   - update initialization ( validation/invalidation ) of frame table.
   - add and initialize frameframetable_virt_start variable to cover
     the case that ps ( RAM start ) could be not eqaul 0 so the proper
     calculations are needed in mfn_to_page() and page_to_mfn().
 - setup_directmap_mapping():
   - update the value of directmap_virt_start: add an alignment to the size
     of HYP_PT_ROOT_LEVEL to have proper alignment so more superpages will be
     used for mapping.
   - re-use indirectly directmap_virt_start ( by using mfn_to_virt(base_mfn) )
     during mapping of directmap region for RAM bank to not face an issue with
     possible mapping overlapping during the 2nd invocation of
     setup_directmap_mapping().
 - Update the commit message.
---
Changes in V3:
  - Update the comment the part where DCE should be mentioned and directmap-related
    things are touched.
  - Move ROUNDDOWN to <xen/macros.h>.
  - s/sizeof(struct page_info)/sizeof(*frame_table) in setup_frametable_mapping().
  - Updates in setup_frametable_mapping():
    - align phys_start (ps) up to a page boundary and align phys_end (pe) down
      to a page boundary.
    - Update panic message.
    - Add the comment about alignment of frametable_size and base_mfn.
    - invalidate all frame_table entries and then just init with 0 only valid ones.
  - Double blank lines removing.
  - Initialize directmap_virt_start with DIRECTMAP_VIRT_START.
  - Updates in setup_directmap_mapping():
    - Drop local variable rc as it is used only once.
    - Move directmap_mfn_start definition to setup_directmap_mapping() and
      change __ro_after_init to __initdata.
    - Update the commit message about alignment of directmap_virt_start.
    - Move down directmap_virt_start for (base_addr & ~XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to not waste a lot of directmap space.
    - Map DIRECTMAP_VIRT_START + (base_addr & XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to _mfn(base_mfn).
    - Add log of the range in case directmap mapping failure.
  - Drop XENHEAP_VIRT_START and use directmap_virt_start instead.
  - Update the comment above setup_mm().
  - Update the calculation of bank_start and bank_end in setup_mm() to cover
    the case when a bank doesn't cover full pages.
  - Move share_xen_page_with_guest() to riscv/mm.c instead of riscv/stub.c.
  - Drop inclusion of <xen/pdx.h> in riscv/mm.c as thery is nothing used
    anymore in riscv/mm.c.
  - Move variable directmap_virt_start and setup_mm() outside
    #ifndef CONFIG_RISCV_32 ... #endif as they are likely to be common.
---
 Changes in V2:
  - merge patch 2 ( xen/riscv: implement maddr_to_virt() ) to the current one
    as maddr_to_virt() started to use the thing which are introduced in the
    current patch.
  - merge with patch 1 ( xen/riscv: add stub for share_xen_page_with_guest() )
    as this linkage issue happens during introduction of maddr_to_virt().
  - use mathematical range expressions for log messages.
  - calculate properly amount of mfns in setup_frametable_mapping() taking into
    account that ps and pe can be not properly aligned.
  - drop full stop at the end of debug message.
  - use PFN_DOWN(framsetable_size) instead of frametable_size >> PAGE_SHIFT.
  - round down ram_size when it is being accumulated in setup_mm() to guarantee
    that banks can never have partial pages at their start/end.
  - call setup_directmap_mappings() only for ram bank regions instead of
    mapping [0, ram_end] region.
  - drop directmap_virt_end for now as it isn't used at the moment.
  - update the commit message.
---
 xen/arch/riscv/include/asm/mm.h    |  19 ++--
 xen/arch/riscv/include/asm/setup.h |   2 +
 xen/arch/riscv/mm.c                | 143 +++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c             |   3 +
 xen/include/xen/macros.h           |   1 +
 5 files changed, 162 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index ebb142502e..6849092352 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -12,6 +12,8 @@
 
 #include <asm/page-bits.h>
 
+extern vaddr_t directmap_virt_start;
+
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
 
@@ -25,8 +27,11 @@
 
 static inline void *maddr_to_virt(paddr_t ma)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    unsigned long va_offset = maddr_to_directmapoff(ma);
+
+    ASSERT(va_offset < DIRECTMAP_SIZE);
+
+    return (void *)(directmap_virt_start + va_offset);
 }
 
 /*
@@ -37,9 +42,9 @@ static inline void *maddr_to_virt(paddr_t ma)
  */
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
-    if ((va >= DIRECTMAP_VIRT_START) &&
+    if ((va >= directmap_virt_start) &&
         (va < (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)))
-        return directmapoff_to_maddr(va - DIRECTMAP_VIRT_START);
+        return directmapoff_to_maddr(va - directmap_virt_start);
 
     BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
     ASSERT((va >> (PAGETABLE_ORDER + PAGE_SHIFT)) ==
@@ -127,11 +132,13 @@ struct page_info
     };
 };
 
+extern struct page_info *frametable_virt_start;
+
 #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 
 /* Convert between machine frame numbers and page-info structures. */
-#define mfn_to_page(mfn)    (frame_table + mfn_x(mfn))
-#define page_to_mfn(pg)     _mfn((pg) - frame_table)
+#define mfn_to_page(mfn)    (frametable_virt_start + mfn_x(mfn))
+#define page_to_mfn(pg)     _mfn((pg) - frametable_virt_start)
 
 static inline void *page_to_virt(const struct page_info *pg)
 {
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c0214a9bf2..844a2f0ef1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,8 @@
 
 #define max_init_domid (0)
 
+void setup_mm(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 27026d803b..988673c313 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -372,6 +372,12 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return -1;
 }
 
+void share_xen_page_with_guest(struct page_info *page, struct domain *d,
+                               enum XENSHARE_flags flags)
+{
+    BUG_ON("unimplemented");
+}
+
 void * __init early_fdt_map(paddr_t fdt_paddr)
 {
     /* We are using 2MB superpage for mapping the FDT */
@@ -423,3 +429,140 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
 
     return fdt_virt;
 }
+
+vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
+
+struct page_info *__ro_after_init frametable_virt_start;
+
+#ifndef CONFIG_RISCV_32
+
+/* Map a frame table to cover physical addresses ps through pe */
+static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
+    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
+    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
+    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
+    mfn_t base_mfn;
+
+    if ( !frametable_virt_start )
+        frametable_virt_start = frame_table - paddr_to_pfn(aligned_ps);
+
+    if ( frametable_size > FRAMETABLE_SIZE )
+        panic("The frametable cannot cover [%#"PRIpaddr", %#"PRIpaddr")\n",
+              ps, pe);
+
+    /*
+     * align base_mfn and frametable_size to MB(2) to have superpage mapping
+     * in map_pages_to_xen()
+     */
+    frametable_size = ROUNDUP(frametable_size, MB(2));
+    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, PFN_DOWN(MB(2)));
+
+    if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
+                          PFN_DOWN(frametable_size),
+                          PAGE_HYPERVISOR_RW) )
+        panic("frametable mappings failed: %#lx -> %#lx\n",
+              FRAMETABLE_VIRT_START, mfn_x(base_mfn));
+
+    memset(&frame_table[0], 0, nr_mfns * sizeof(*frame_table));
+    memset(&frame_table[nr_mfns], -1,
+           frametable_size - (nr_mfns * sizeof(*frame_table)));
+}
+
+/* Map the region in the directmap area. */
+static void __init setup_directmap_mappings(unsigned long base_mfn,
+                                            unsigned long nr_mfns)
+{
+    static mfn_t __initdata directmap_mfn_start = INVALID_MFN_INITIALIZER;
+
+    unsigned long base_addr = mfn_to_maddr(_mfn(base_mfn));
+    unsigned long high_bits_mask = XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
+
+    /* First call sets the directmap physical and virtual offset. */
+    if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
+    {
+        directmap_mfn_start = _mfn(base_mfn);
+
+       /*
+        * The base address may not be aligned to the second level
+        * size in case of Sv39 (e.g. 1GB when using 4KB pages).
+        * This would prevent superpage mappings for all the regions
+        * because the virtual address and machine address should
+        * both be suitably aligned.
+        *
+        * Prevent that by offsetting the start of the directmap virtual
+        * address.
+        */
+        directmap_virt_start -=
+            (base_addr & high_bits_mask) + (base_addr & ~high_bits_mask);
+    }
+
+    if ( base_mfn < mfn_x(directmap_mfn_start) )
+        panic("can't add directmap mapping at %#lx below directmap start %#lx\n",
+              base_mfn, mfn_x(directmap_mfn_start));
+
+    if ( map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn),
+                          _mfn(base_mfn), nr_mfns,
+                          PAGE_HYPERVISOR_RW) )
+        panic("Directmap mappings for [%#"PRIpaddr", %#"PRIpaddr") failed\n",
+              mfn_to_maddr(_mfn(base_mfn)),
+              mfn_to_maddr(_mfn(base_mfn + nr_mfns)));
+}
+
+#else /* CONFIG_RISCV_32 */
+#error setup_{directmap,frametable}_mapping() should be implemented for RV_32
+#endif
+
+/*
+ * Setup memory management
+ *
+ * RISC-V 64 has a large virtual address space (the minimum supported
+ * MMU mode is Sv39, which provides GBs of VA space).
+ *
+ * The directmap_virt_start is shifted lower in the VA space to
+ * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
+ * wasting a large portion of the directmap space, this also allows for simple
+ * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
+ * (for Sv39; for other MMU mode boundaries will be bigger ) by masking the
+ * higher bits of the RAM start address to enable the use of superpages in
+ * map_pages_to_xen().
+ *
+ * The frametable is mapped starting from physical address 0, minimizing
+ * wasted VA space and simplifying page_to_mfn() and mfn_to_page()
+ * translations.
+ */
+void __init setup_mm(void)
+{
+    const struct membanks *banks = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR;
+    paddr_t ram_end = 0;
+    paddr_t ram_size = 0;
+    unsigned int i;
+
+    /*
+     * We need some memory to allocate the page-tables used for the directmap
+     * mappings. But some regions may contain memory already allocated
+     * for other uses (e.g. modules, reserved-memory...).
+     *
+     * For simplicity, add all the free regions in the boot allocator.
+     */
+    populate_boot_allocator();
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
+        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
+        unsigned long bank_size = bank_end - bank_start;
+
+        ram_size += bank_size;
+        ram_start = min(ram_start, bank_start);
+        ram_end = max(ram_end, bank_end);
+
+        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
+    }
+
+    setup_frametable_mappings(ram_start, ram_end);
+    max_page = PFN_DOWN(ram_end);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e29bd75d7c..2887a18c0c 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 
 #include <asm/early_printk.h>
 #include <asm/sbi.h>
+#include <asm/setup.h>
 #include <asm/smp.h>
 #include <asm/traps.h>
 
@@ -59,6 +60,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
 
+    setup_mm();
+
     printk("All set up\n");
 
     machine_halt();
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index 19caaa8026..cd528fbdb1 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -2,6 +2,7 @@
 #define __MACROS_H__
 
 #define ROUNDUP(x, a) (((x) + (a) - 1) & ~((a) - 1))
+#define ROUNDDOWN(x, a) ((x) & ~((a) - 1))
 
 #define IS_ALIGNED(val, align) (!((val) & ((align) - 1)))
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 12:52:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 12:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832551.1247842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9OT6-00047Q-4j; Fri, 08 Nov 2024 12:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832551.1247842; Fri, 08 Nov 2024 12:52: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 1t9OT6-00046Z-1z; Fri, 08 Nov 2024 12:52:04 +0000
Received: by outflank-mailman (input) for mailman id 832551;
 Fri, 08 Nov 2024 12:52: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=pwxj=SD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t9OT5-0003yG-7X
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 12:52:03 +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 3ea36d03-9dd0-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 13:52:00 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-539f0f9ee49so2345017e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 04:52:00 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff179d1cd3sm6441261fa.94.2024.11.08.04.51.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 04:51: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: 3ea36d03-9dd0-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNlYTM2ZDAzLTlkZDAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDcwMzIwLjg5MTc4NSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731070319; x=1731675119; 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=5ami57zT7BuXkngz26sixB7SwBQKxu3U75GI5FEiqX0=;
        b=MF20899FSvfF+yU27D/kaTZVYw1O0EpbWlyULKiHaPvtuKGqleW2D9FYt9ZA7t3dJ5
         4xRyNvYbztwFqSoThtvvPjPX6GDCF5ZedkCITtUlpTn05VAU9BRZAxMhDrcBwD1iW/Kh
         j+JRSrd3gbLUFTKytQamDGPSVLw9bvgmabgtflpg4myIvKHAyqsYGn/C1gZn4TCbpR4/
         5+JRDymg6N2XDtPRlfkz3KovN41ESsE9XdCMfYXmVVBHH329/gQQ/kCtl09T8rw6r1f7
         yeaw9tQhebDDW/sDVVVO56mSxiKAregMHIpJjXCuSVzRl0wwSqKqe+OhgDXO0plN2yvN
         4A9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731070319; x=1731675119;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5ami57zT7BuXkngz26sixB7SwBQKxu3U75GI5FEiqX0=;
        b=Uyekj05zU+b8wTgEawY/RD+DUNSSksELhixT2GS95T6BkRJHm+OScCmzqEiTprQFgn
         5JG4QZsLGmWw6LSOeseLI+nZF6UOgaaO3FMzHUu+Kd/zsYaOqabFr5EEKUAY/OhNx3jU
         1aEBocyumQ1FIRuhRJjbN4pvXiBslt/mnInwIMHPxevxZmeM0fqMZotovq3oLRDo/3t+
         UO88pn7LQOPW9IGONNmS2IZSjYS26IGPmY6UA2DJjvuFZet//pZPldC7vLiQcgpNzBLo
         pb9PY/GpLQ9HfsngXO+S2rXSZRVXskYar4w016WCoStS+9EzXDW1LkhC6swZSaHVFh3O
         9XSw==
X-Gm-Message-State: AOJu0Yw7dF+cn3FH/E+3y+eDF9i4zmAbjhQC3+RUr8tWmhX4uKtduBSo
	KYxqTJrnlTbp2GT9qXDsDmT7gBox/279+OwvYrpam+nyoFUejab2RYU2TctR
X-Google-Smtp-Source: AGHT+IFMtYnrrkD2Afi+XtQiYMUbxSn96kIZ/NxIl5AtWnu8otOooMN5wQCMmSO5p4CvU9ye14YzGQ==
X-Received: by 2002:a05:651c:1589:b0:2fb:5bb8:7c24 with SMTP id 38308e7fff4ca-2ff20152825mr13961661fa.8.1731070319189;
        Fri, 08 Nov 2024 04:51: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 2/3] xen/riscv: initialize the VMAP_DEFAULT virtual range
Date: Fri,  8 Nov 2024 13:51:53 +0100
Message-ID: <5b4a5eb30bd98c1f204def1c6ea131488a79b6cc.1731069334.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731069334.git.oleksii.kurochko@gmail.com>
References: <cover.1731069334.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Call vm_init() to initialize the VMAP_DEFAULT virtual range.

To support this, introduce the populate_pt_range() and
arch_vmap_virt_end() functions, which are used by
vm_init()->vm_init_type().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V4:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/mm.c    | 11 +++++------
 xen/arch/riscv/pt.c    |  6 ++++++
 xen/arch/riscv/setup.c |  3 +++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 988673c313..14e6845c0d 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -351,12 +351,6 @@ void arch_dump_shared_mem_info(void)
     BUG_ON("unimplemented");
 }
 
-int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
-{
-    BUG_ON("unimplemented");
-    return -1;
-}
-
 int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
                               union add_to_physmap_extra extra,
                               unsigned long idx, gfn_t gfn)
@@ -566,3 +560,8 @@ void __init setup_mm(void)
     setup_frametable_mappings(ram_start, ram_end);
     max_page = PFN_DOWN(ram_end);
 }
+
+void *__init arch_vmap_virt_end(void)
+{
+    return (void *)(VMAP_VIRT_START + VMAP_VIRT_SIZE);
+}
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index cc5e2d3266..d62aceb36c 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/domain_page.h>
 #include <xen/errno.h>
+#include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
@@ -419,3 +420,8 @@ int map_pages_to_xen(unsigned long virt,
 
     return pt_update(virt, mfn, nr_mfns, flags);
 }
+
+int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
+{
+    return pt_update(virt, INVALID_MFN, nr_mfns, PTE_POPULATE);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 2887a18c0c..3652cb056d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
+#include <xen/vmap.h>
 
 #include <public/version.h>
 
@@ -62,6 +63,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     setup_mm();
 
+    vm_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 13:18:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 13:18:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832591.1247877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Os6-0000vT-M1; Fri, 08 Nov 2024 13:17:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832591.1247877; Fri, 08 Nov 2024 13:17: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 1t9Os6-0000vM-JH; Fri, 08 Nov 2024 13:17:54 +0000
Received: by outflank-mailman (input) for mailman id 832591;
 Fri, 08 Nov 2024 13: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=uvFD=SD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1t9Os6-0000vG-5l
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 13:17:54 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da72efa3-9dd3-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 14:17:50 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-539f7606199so2145538e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 05:17: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
 d2e1a72fcca58-7240799bb25sm3709653b3a.109.2024.11.08.05.17.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Nov 2024 05:17: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: da72efa3-9dd3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzIiLCJoZWxvIjoibWFpbC1sZjEteDEzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRhNzJlZmEzLTlkZDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDcxODcwLjIwNDUzNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731071869; x=1731676669; 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=44MqjS2Qw0/t+kC4+TvLRlMa6ZNUkGOne1S4wjO2nMs=;
        b=CEiI4Scda51DCKpLNpHQtfJev8K5tn+7QNKVzshj7yG1m284Gtyc7oGC4lQW5qYTMM
         cv5m3aRRh4w6EPdfF2KdhO9w90fjEyg+dQ/fOxAt3A42C4eFCXk4gKXEVyVNYFNi3vAh
         0qkLimUvK++8dMQjB0Y9cxKM659pmncKmxaG9jJgagAZTET7Wr40Xi+VfiuxRdfC44+I
         epXyoTRDnNra1VbKtvwIA7cOLIBmNpGmrIHiyODGTHXxpWg6TOYVsLz+V7l6Yt3fUOxU
         q3e+ITDHOIGOYaaG+56Ponw7VOZdbTREdxJZHlllD6/Pblg+VdvdIt0eIlE33rEXIqr/
         77nQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731071869; x=1731676669;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=44MqjS2Qw0/t+kC4+TvLRlMa6ZNUkGOne1S4wjO2nMs=;
        b=rNhwMqSbPYPpQSUkpPMT9Bm1BKwTOJVuArPk70DqM713k2HbH4Df0Rtz5dVKrvm58O
         zD2LQtKNKQFeO7vSS6trgXFWy/9vLEw2bh6il+pPy+uYRlxx9wUsD0NDF1hI+3/tmEvr
         AGdYOIGgtWr7mTls1CEegxKL1V46r75PEbGzGZAQWwEDfvFKxJJHnUDq6f+2Ws1I552u
         rM/6ntzPQlJPnSimoHmK7sHHVHYUQTCREVoVXzV+62VfERuTSqBBiPwlliW48ow2iMOh
         O0+IcnMemZA4DN8A1gkPCFAVdjc8934Id7YNEHRDUTvhtYvfIWTzQk3MxzRf/KPDWFPq
         lQwA==
X-Forwarded-Encrypted: i=1; AJvYcCXDRCRwUP2tzSH+HBRzB1yv/Ja2ghQ6yuGZOBWh3STKXqrwFa3aXHfiyBoOFsPbo44HmczHzg+DVeY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzTQ/3FOKLz+wnWTdhwLx39Wb+6cPLprq3hS2rhTZxAW3gnjvrq
	KddoqZbWsPLRP9YjZg7XO83ZqNfPY/P4YVdG9+e+gBAkq6OHxF/KCulN4b+QYA==
X-Google-Smtp-Source: AGHT+IErz2pxU2nbhV1FVRsOxfBTz+X489lODuW7CphapPAXZ7xL/dTZSwrpzNc5tqI72/ZrSknL1A==
X-Received: by 2002:a2e:be93:0:b0:2fb:36df:3c8 with SMTP id 38308e7fff4ca-2ff2021b236mr14996771fa.10.1731071869506;
        Fri, 08 Nov 2024 05:17:49 -0800 (PST)
Message-ID: <39b2a334-1298-4e83-b7b7-393c79964539@suse.com>
Date: Fri, 8 Nov 2024 14:17:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
 <D5GT0NR29WEF.216KE5GCTH1TL@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: <D5GT0NR29WEF.216KE5GCTH1TL@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 13:42, Alejandro Vallejo wrote:
> On Mon Nov 4, 2024 at 7:44 AM GMT, Jan Beulich wrote:
>> On 01.11.2024 21:16, Stewart Hildebrand wrote:
>>> +Daniel (XSM mention)
>>>
>>> On 10/28/24 13:02, Jan Beulich wrote:
>>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>>>> Add links between a VF's struct pci_dev and its associated PF struct
>>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>>>> dropping and re-acquiring the pcidevs_lock().
>>>>>
>>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>>>> VFs may exist without a corresponding PF, although now only with
>>>>> pdev->broken = true.
>>>>>
>>>>> The hardware domain is expected to remove the associated VFs before
>>>>> removing the PF. Print a warning in case a PF is removed with associated
>>>>> VFs still present.
>>>>>
>>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>> ---
>>>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>>>
>>>>> v5->v6:
>>>>> * move printk() before ASSERT_UNREACHABLE()
>>>>> * warn about PF removal with VFs still present
>>>>
>>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>>>> just after an adjustment to the commit message. I'm instead actively
>>>> concerned of the resulting behavior. Question is whether we can reasonably
>>>> do something about that.
>>>
>>> Right. My suggestion then is to go back to roughly how it was done in
>>> v4 [0]:
>>>
>>> * Remove the VFs right away during PF removal, so that we don't end up
>>> with stale VFs. Regarding XSM, assume that a domain with permission to
>>> remove the PF is also allowed to remove the VFs. We should probably also
>>> return an error from pci_remove_device in the case of removing the PF
>>> with VFs still present (and still perform the removals despite returning
>>> an error). Subsequent attempts by a domain to remove the VFs would
>>> return an error (as they have already been removed), but that's expected
>>> since we've taken a stance that PF-then-VF removal order is invalid
>>> anyway.
>>
>> Imo going back is not an option.
>>
>>> While the above is what I prefer, I just want to mention other options I
>>> considered for the scenario of PF removal with VFs still present:
>>>
>>> * Increase the "scariness" of the warning message added in v6.
>>>
>>> * Return an error from pci_remove_device (while still removing only the
>>> PF). We would be left with stale VFs in Xen. At least this would
>>> concretely inform dom0 that Xen takes issue with the PF-then-VF removal
>>> order. Subsequent attempts by a domain to remove VFs, however
>>> (un)likely, would succeed.
>>
>> Returning an error in such a case is a possibility, but comes with the
>> risk of confusion. Seeing such an error, a caller may itself assume the
>> device still is there, and retry its (with or without having removed the
>> VFs) removal at a later point.
>>
>>> * Return an error from pci_remove_device and keep the PF and VFs. This
>>> is IMO the worst option because then we would have a stale PF in
>>> addition to stale VFs.
>>
>> Yet this would at least be self-consistent, unlike the variant above. No
>> matter what, any failure to remove VFs and/or PFs correctly will need to
>> result in there being no attempt to physically remove the device.
>>
>> You didn't enumerate an option lightly mentioned before, perhaps because
>> of its anticipated intrusiveness: Re-associate stale VFs with their PF,
>> once the PF is re-reported. Problem of course is that, aiui, the VFs
>> could in principle re-appear at a different BDF (albeit we have other
>> issues with potential bus-renumbering done by Dom0), and their count
>> could also change.
> 
> Are you enumerating it for completeness or suggesting it should be done?

I was meaning to suggest that it should at least be considered.

> Maybe I'm missing something here (and please, do tell me what if so), but why
> would this option be desirable at all? What would benefit from such semantics
> (as opposed to any of the others)? It would break the lifetime dependency
> between PF and VFs, and that doesn't strike me as a feature. It also turns
> kernel bugs into a fine implementations by making promises about how state is
> persisted, but the consequences of that appear to be too far reaching to know
> for sure it's 100% ok.
> 
> From afar, it sounds like trying to turn a bug into a feature. And that cannot
> always be done sanely. But again, maybe I might very well be missing
> something...

My main point is that the other suggested options have weaknesses, too.
Leaving stale VFs around forever isn't, imo, any better than trying to
reuse their structs.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 14:12:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 14:12:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832603.1247889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Pim-000075-Cl; Fri, 08 Nov 2024 14:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832603.1247889; Fri, 08 Nov 2024 14:12: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 1t9Pim-00006y-8N; Fri, 08 Nov 2024 14:12:20 +0000
Received: by outflank-mailman (input) for mailman id 832603;
 Fri, 08 Nov 2024 14:12: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9Pil-00006s-Ps
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 14:12:19 +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 73f4596a-9ddb-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 15:12:14 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5cef772621eso2454360a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 06:12:14 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03c7c90dsm2072770a12.80.2024.11.08.06.12.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 06:12: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: 73f4596a-9ddb-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjczZjQ1OTZhLTlkZGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDc1MTM0LjI3ODYwOCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731075133; x=1731679933; 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=aOsgMR4lxE39KxzWp4Qkhc9aUsZMLXg7adtJmW72W5E=;
        b=aDSMTp7KiB1y/xy87s2j8YCe2uQhDXsrI16pTHf6cxp6TC2TBf/TWuTTOwgZiC/l0O
         0H7J4EZsWyDfFTc6iFk2v0Q/nJCDmjaiY6xyrzsspVc8viikNodpWjvH01EHNymrxWPs
         s/UiHI07soy55c1qHGAA+fqNmXVb0XnC7fRTs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731075133; x=1731679933;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=aOsgMR4lxE39KxzWp4Qkhc9aUsZMLXg7adtJmW72W5E=;
        b=aVeOKSriATvHzkLjSLGzb71SdxNTSDv+UkAUbg4JvzqRdSETdwZAteHYXpPioi+kbS
         4qMVwQqMiwMY0LEhVY8oXVGGz8nMQQ26t7FUgEx74uUqea7i1Cc4nxXn1ErKWyCMmTPB
         TZO3EGjjAUU8T+DzKAUQW3UH9iC+IDWpfmROjNsGpH7hA2Os62362/tUvBSUMQIRjq+O
         ZrTKCFn4G9Ylva5zQc+jzbcY4Zxom5ddUEUOGT7ltNUcAt8m070DuZLsGrFSBK5Sa1w8
         muevPvebBd4ZLAKOE1b+Ay+3vmz315nX1k3s+kXlqV/T7SpepCf/NWHSE2mIydo/p+QG
         lxoQ==
X-Gm-Message-State: AOJu0YzDHte7+U3w8Der8bgS9D3UNmmsRh2Du4ZHknXRm6rnUJbNzxZk
	21EQp8hhuU2ankkOLBk6M3lWQ43qjaz0ENuzRFQY96FKKIWUBPPAKyrlcx1Cfs6iA4eXJFct6JB
	W
X-Google-Smtp-Source: AGHT+IGzH+NgdZrMBNW/kiOfpbwwuMFExiH8OLqaxci+KviFg7S9bNhXt3Q5wBpx77o/zbTBtafDKw==
X-Received: by 2002:a05:6402:35cd:b0:5c9:59e6:e908 with SMTP id 4fb4d7f45d1cf-5cf0a30b0d7mr2409557a12.6.1731075133170;
        Fri, 08 Nov 2024 06:12:13 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Krystian Hebel <krystian.hebel@3mdeb.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] x86/boot: Fix bootinfo.h to be standalone
Date: Fri,  8 Nov 2024 14:12:10 +0000
Message-Id: <20241108141210.298063-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

Work to rebase the Trenchboot patch series has encountered:

  In file included from ./arch/x86/include/asm/tpm.h:4,
                   from arch/x86/boot/../tpm.c:23:
  ./arch/x86/include/asm/bootinfo.h:88:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'next_boot_module_index'
     88 | static inline unsigned int __init next_boot_module_index(
        |

Fix this by including the necessary header.

Fixes: 74af2d98276d ("x86/boot: eliminate module_map")
Reported-by: Krystian Hebel <krystian.hebel@3mdeb.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: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Krystian Hebel <krystian.hebel@3mdeb.com>
---
 xen/arch/x86/include/asm/bootinfo.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index cc6305630683..b9c94b370d57 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -8,6 +8,7 @@
 #ifndef X86_BOOTINFO_H
 #define X86_BOOTINFO_H
 
+#include <xen/init.h>
 #include <xen/multiboot.h>
 #include <xen/types.h>
 

base-commit: 75035c386eeb8bd5dbed1831dbb96a35b31521f6
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 14:43:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 14:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832617.1247898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QCV-0004F5-LR; Fri, 08 Nov 2024 14:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832617.1247898; Fri, 08 Nov 2024 14:43: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 1t9QCV-0004Ey-Ih; Fri, 08 Nov 2024 14:43:03 +0000
Received: by outflank-mailman (input) for mailman id 832617;
 Fri, 08 Nov 2024 14:43: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9QCU-0004Ee-AA
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 14:43:02 +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 be6599e5-9ddf-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 15:42:59 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9a4031f69fso365875266b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 06:42:57 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a1769asm242652866b.1.2024.11.08.06.42.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 06:42: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: be6599e5-9ddf-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJlNjU5OWU1LTlkZGYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDc2OTc5LjM1ODUyNywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731076976; x=1731681776; 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=lh3+rwx8/jiA2Wdt/b58ELRXBqK8S1uD7mJYN2j4Y+s=;
        b=YxenahuBpxVZIUfXBgtEpCX/VoE13oj2ogfVBeKI7fOBlEbhIJmgEbN2D7iPhX3qei
         Sft4pANtbP8m0nZvXCcOIiTsBg1y1LnRYp3llhu3H/pa6qbJBae0ARWxcZmKMcAmP2re
         FnKJuwgS/nfnXj9hbmLT/L9OgjomT2buCyACQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731076976; x=1731681776;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lh3+rwx8/jiA2Wdt/b58ELRXBqK8S1uD7mJYN2j4Y+s=;
        b=RSvbiHA6sXPMW02GcaHms2gY0u8huCZuO/Rg14nxTZmIMmHPVwCB+bo2K5cwfzEjE4
         T4SamnjTA1bM5csNMiDzq69xb7uM3EiUQNcYwq3lF5jThkv10KbMGNK+k1FHQT9NL8nB
         H7Ing5UCvD+wKLkrNlKglBsqBHNFKS2TWqrAbcBtgAr5dC1gdSnbB4/wu/yERmP3/EQd
         RVjXhql20FS1ewQUCrc0BrYTRUFNmHDp7Ernki1pRhKXu57kuK9JGqzb3A3VLBpsImy8
         IEPH357YgR2pLg9OSsdfEIDc2aWtDxrfexdpF3LdimJRnhLaYTiQs7K4F+UT1R//Q8ny
         ERog==
X-Gm-Message-State: AOJu0Yzbke9bSeuV5S62+P6WmS+NwJ+B0/Ga5BOH+aZKu3lPZX98bSrL
	j/z4qT5wipcB4xzDZ+TtWjH53r359m0pRcoeIPBsaU/QXE7wkfyhvsNGtTuGxu3wNapMPvk8LNx
	v
X-Google-Smtp-Source: AGHT+IE1jgXerry7yyLadQmIM9Ql8rNRk+reNHu5T4qRwmiZ08BW7cb0lQ9wXsj6/OEPj6XgIkoVsQ==
X-Received: by 2002:a17:907:7baa:b0:a9a:2afc:e4e4 with SMTP id a640c23a62f3a-a9ef0052ae7mr283798166b.59.1731076975694;
        Fri, 08 Nov 2024 06:42: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 0/3] x86/ucode: Untangle revision-relational logic
Date: Fri,  8 Nov 2024 14:42:49 +0000
Message-Id: <20241108144252.315604-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: 20241107122117.4073266-1-andrew.cooper3@citrix.com
References: 
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now, cpu_request_microcode() ends up consuming the currently-loaded
microcode revision (and discarding the answer), simply because the helpers are
too overloaded.

Andrew Cooper (3):
  x86/ucode: Rework Intel's microcode_update_match()
  x86/ucode: Rework AMD's microcode_fits()
  x86/ucode: Drop MIS_UCODE and microcode_match_result

 xen/arch/x86/cpu/microcode/amd.c     | 57 +++++++++++++---------------
 xen/arch/x86/cpu/microcode/core.c    |  5 +--
 xen/arch/x86/cpu/microcode/intel.c   | 35 ++++++++---------
 xen/arch/x86/cpu/microcode/private.h | 21 +++++-----
 4 files changed, 54 insertions(+), 64 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 14:43:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 14:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832619.1247914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QCX-0004VQ-A0; Fri, 08 Nov 2024 14:43:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832619.1247914; Fri, 08 Nov 2024 14:43: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 1t9QCX-0004UL-4G; Fri, 08 Nov 2024 14:43:05 +0000
Received: by outflank-mailman (input) for mailman id 832619;
 Fri, 08 Nov 2024 14:43: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9QCV-0004Ek-5c
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 14:43:03 +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 beb32690-9ddf-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 15:42:57 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a9a0c7abaa6so257497566b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 06:42:57 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a1769asm242652866b.1.2024.11.08.06.42.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 06:42: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: beb32690-9ddf-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJlYjMyNjkwLTlkZGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDc2OTc3LjY4ODMxOCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731076976; x=1731681776; 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=FzOnLS8oEDSa6W+7YLbE30LQXdw68icgkxCi29QgKBU=;
        b=dZYwQHfZ4OFiZE8ubGjLp6Lnbmv7vPDKzKYMlreL9qBWEmCsHZhDQr7OR0d/t2C6Bj
         USyy6jblzzLOwH/4qNeTSnbpyCNj8UM7JlYjtQRmsu2ZYMiYN9MyePGbDTUTtxid5hMy
         9Uu7KxyRl9GnHKLVEIL3fJHBboMnW7QdjdKbU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731076976; x=1731681776;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FzOnLS8oEDSa6W+7YLbE30LQXdw68icgkxCi29QgKBU=;
        b=CmDepuanYpAU7Yg6RJL5FwVlJImvtdHJK6KCzY9ZJSloHIdezpRTACqw3eWr/YZf5i
         H+qUQYp7KpPEtHJ/4KMjVUegpexip+6FS+t03ouxmauGqju+O66Q7FAde5yi15JxN4IO
         A0KgtJwbDesIfSt9WgcQVYbPHZEoFy/6y1jpCD488w9sa1ac3xqTJQoqoJrnUjzETDKD
         0lWivEkkYEsSkySegM4PamfR8dLlP5sv2nHu0/Ud6DIy0EXc4t13lD3/2MWHHUTk5xct
         kEuJnoB45kCt3KUEF/LD1HYUBwkx/jTxTS7hw76u2h8CWKYEvoKhMZjYPX+XzuG7U4Ud
         fPGA==
X-Gm-Message-State: AOJu0YxiBHO0PnAShJk7dy1D5zJOKEeqNUL1MzE5+wxl2N1aCiWYVLs9
	bYrKbr0fTnBEpW8M4odRK5Lr//nePljXP9D+C8hRWT9ubbFThBRhdxVbXU7jTuJOqsiS0Xcd0On
	q
X-Google-Smtp-Source: AGHT+IEQ6sbZoLMaTddFbkrfA1iRfdl7IHL/JmblKm5yn3lEQSqpnR+YO+84Ndq0KeFDNh/gVny08w==
X-Received: by 2002:a17:907:1c98:b0:a99:543e:94b4 with SMTP id a640c23a62f3a-a9ef001909amr264353766b.56.1731076976421;
        Fri, 08 Nov 2024 06:42: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>
Subject: [PATCH 1/3] x86/ucode: Rework Intel's microcode_update_match()
Date: Fri,  8 Nov 2024 14:42:50 +0000
Message-Id: <20241108144252.315604-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108144252.315604-1-andrew.cooper3@citrix.com>
References: <20241108144252.315604-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This function is overloaded, creating complexity; 3 of 4 callers already only
want it for it's "applicable to this CPU or not" answer, and handle revision
calculations separately.

Change it to be microcode_fits_cpu(), returning a simple boolean.

Notably, this removes a path where cpu_request_microcode() inspects
currently-loaded microcode revision, just to discard the answer.

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/microcode/intel.c | 26 +++++++++++---------------
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index aad6a693e800..3f37792ab4b5 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -248,9 +248,8 @@ static enum microcode_match_result compare_revisions(
     return OLD_UCODE;
 }
 
-/* Check an update against the CPU signature and current update revision */
-static enum microcode_match_result microcode_update_match(
-    const struct microcode_patch *mc)
+/* Check whether this microcode patch is applicable for the current CPU. */
+static bool microcode_fits_cpu(const struct microcode_patch *mc)
 {
     const struct extended_sigtable *ext;
     unsigned int i;
@@ -260,18 +259,15 @@ static enum microcode_match_result microcode_update_match(
 
     /* Check the main microcode signature. */
     if ( signature_matches(cpu_sig, mc->sig, mc->pf) )
-        goto found;
+        return true;
 
     /* If there is an extended signature table, check each of them. */
     if ( (ext = get_ext_sigtable(mc)) != NULL )
         for ( i = 0; i < ext->count; ++i )
             if ( signature_matches(cpu_sig, ext->sigs[i].sig, ext->sigs[i].pf) )
-                goto found;
-
-    return MIS_UCODE;
+                return true;
 
- found:
-    return compare_revisions(cpu_sig->rev, mc->rev);
+    return false;
 }
 
 static enum microcode_match_result cf_check compare_patch(
@@ -281,8 +277,8 @@ static enum microcode_match_result cf_check compare_patch(
      * Both patches to compare are supposed to be applicable to local CPU.
      * Just compare the revision number.
      */
-    ASSERT(microcode_update_match(old) != MIS_UCODE);
-    ASSERT(microcode_update_match(new) != MIS_UCODE);
+    ASSERT(microcode_fits_cpu(old));
+    ASSERT(microcode_fits_cpu(new));
 
     return compare_revisions(old->rev, new->rev);
 }
@@ -297,11 +293,11 @@ static int cf_check apply_microcode(const struct microcode_patch *patch,
     enum microcode_match_result result;
     bool ucode_force = flags & XENPF_UCODE_FORCE;
 
-    result = microcode_update_match(patch);
-
-    if ( result == MIS_UCODE )
+    if ( !microcode_fits_cpu(patch) )
         return -EINVAL;
 
+    result = compare_revisions(old_rev, patch->rev);
+
     if ( !ucode_force && (result == SAME_UCODE || result == OLD_UCODE) )
         return -EEXIST;
 
@@ -365,7 +361,7 @@ static struct microcode_patch *cf_check cpu_request_microcode(
          * If the new update covers current CPU, compare updates and store the
          * one with higher revision.
          */
-        if ( (microcode_update_match(mc) != MIS_UCODE) &&
+        if ( microcode_fits_cpu(mc) &&
              (!saved || compare_revisions(saved->rev, mc->rev) == NEW_UCODE) )
             saved = mc;
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 14:43:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 14:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832618.1247908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QCX-0004TT-1j; Fri, 08 Nov 2024 14:43:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832618.1247908; Fri, 08 Nov 2024 14:43: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 1t9QCW-0004TM-Un; Fri, 08 Nov 2024 14:43:04 +0000
Received: by outflank-mailman (input) for mailman id 832618;
 Fri, 08 Nov 2024 14:43: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9QCU-0004Ee-VT
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 14:43:02 +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 bfafcbe4-9ddf-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 15:42:59 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5c9c28c1ecbso2798355a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 06:42:59 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a1769asm242652866b.1.2024.11.08.06.42.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 06:42: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: bfafcbe4-9ddf-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJmYWZjYmU0LTlkZGYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDc2OTc5LjM1ODY2OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731076978; x=1731681778; 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=Rvx6e7hDDh9yfZyKvdLwUiSvDhDIqKekI/oIecuoc9s=;
        b=l205x1p77vc/Cxpr+wZpBJLew2Hk2dTK2fwRinlrn+PcXuQ8fwT378DAH0YQEcn2Mo
         J5MkqZBfk2f4ApOWtYIBJ9wQKcmSqO3cuFjookg+5590Q0KtTQsDR88QYYfZlbGFGV+n
         dFd5Zmv8ENwLAGZ72L3KW2yVBlMKuMkxWseL0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731076978; x=1731681778;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Rvx6e7hDDh9yfZyKvdLwUiSvDhDIqKekI/oIecuoc9s=;
        b=FdGDcoqVttsOsZjKmDSiXscswDd4uj+9tPbXCiXqDRUNi181mHEbus82NtNNKZLSS4
         7SsmQ9yqtY+gIgqY5e0T5Z/yqL29Etoeb8/Xmk/yqE39UnkhOBqCiPO2yCJ8LJzRqivJ
         5HTOqS0OaPOL4GNhNGpDRkGXHVoD9YLF3fzKsdJyzDB+iz6wjKiIqXNF6/KSp0LDkMve
         6v0he7HNoSDw14LSZ4vqKVc6e5Ll9v8nz5uF1Ca1D9r9N4HzrPMj+evPKr2WG/kvq2tt
         mWqEl1oKMvQTHhAb8zPq04DhJu/zA7xiSGjZbake+Wc9z/nnjoqxFqgSglDfPdTthRQB
         oUew==
X-Gm-Message-State: AOJu0YxfNJGr5XHSknFQis4rfNsh2abwSpTdPx9REp6YdsfeLmXlPk77
	ioyDw9wteySV7xUso1xl7uKocE3eGtkanXQZrd7jcHt1Ca+OrZCl4bUL1Qg/Tk1sC9GopitZHli
	v
X-Google-Smtp-Source: AGHT+IHh0V7LDjgbTI/cZZA70SUOsc2LiajlysWqvUWIbghIxkfUHTGMhcMvw2D8NLjByq4xxdb2IA==
X-Received: by 2002:a17:907:7f1f:b0:a99:f4be:7a6a with SMTP id a640c23a62f3a-a9eeffdc630mr299757066b.47.1731076977862;
        Fri, 08 Nov 2024 06:42: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>
Subject: [PATCH 2/3] x86/ucode: Rework AMD's microcode_fits()
Date: Fri,  8 Nov 2024 14:42:51 +0000
Message-Id: <20241108144252.315604-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108144252.315604-1-andrew.cooper3@citrix.com>
References: <20241108144252.315604-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This function is overloaded, creating complexity; 3 of 4 callers already only
want it for it's "applicable to this CPU or not" answer, and handle revision
calculations separately.

Change it to be microcode_fits_cpu(), returning a simple boolean.  The
checking of the equiv table can be simplified substantially too; A mapping
will only be inserted if it's correct for the CPU, so any nonzero equiv.sig
suffices to know that equiv.id is correct.

Drop compare_header() too, which is simiarly overloaded, and use
compare_revisions() directly.

Notably, this removes a path where cpu_request_microcode() inspects
currently-loaded microcode revision, just to discard the answer.

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/microcode/amd.c | 49 ++++++++++++++++----------------
 1 file changed, 24 insertions(+), 25 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index c7a779c1d885..3861fec6565a 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -182,36 +182,31 @@ static enum microcode_match_result compare_revisions(
     return OLD_UCODE;
 }
 
-static enum microcode_match_result microcode_fits(
-    const struct microcode_patch *patch)
-{
-    unsigned int cpu = smp_processor_id();
-    const struct cpu_signature *sig = &per_cpu(cpu_sig, cpu);
-
-    if ( equiv.sig != sig->sig ||
-         equiv.id  != patch->processor_rev_id )
-        return MIS_UCODE;
-
-    return compare_revisions(sig->rev, patch->patch_id);
-}
-
-static enum microcode_match_result compare_header(
-    const struct microcode_patch *new, const struct microcode_patch *old)
+/*
+ * Check whether this microcode patch is applicable for the current CPU.
+ *
+ * AMD microcode blobs only have the "equivalent CPU identifier" which is a 16
+ * bit contraction of the 32 bit Family/Model/Stepping.
+ *
+ * We expect to only be run after scan_equiv_cpu_table() has found a valid
+ * mapping for the current CPU.  If this is violated, the 0 in equiv.id will
+ * cause the patch to be rejected too.
+ */
+static bool microcode_fits_cpu(const struct microcode_patch *patch)
 {
-    if ( new->processor_rev_id != old->processor_rev_id )
-        return MIS_UCODE;
+    ASSERT(equiv.sig);
 
-    return compare_revisions(old->patch_id, new->patch_id);
+    return equiv.id == patch->processor_rev_id;
 }
 
 static enum microcode_match_result cf_check compare_patch(
     const struct microcode_patch *new, const struct microcode_patch *old)
 {
     /* Both patches to compare are supposed to be applicable to local CPU. */
-    ASSERT(microcode_fits(new) != MIS_UCODE);
-    ASSERT(microcode_fits(old) != MIS_UCODE);
+    ASSERT(microcode_fits_cpu(new));
+    ASSERT(microcode_fits_cpu(old));
 
-    return compare_header(new, old);
+    return compare_revisions(old->patch_id, new->patch_id);
 }
 
 static int cf_check apply_microcode(const struct microcode_patch *patch,
@@ -221,12 +216,14 @@ static int cf_check apply_microcode(const struct microcode_patch *patch,
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &per_cpu(cpu_sig, cpu);
     uint32_t rev, old_rev = sig->rev;
-    enum microcode_match_result result = microcode_fits(patch);
+    enum microcode_match_result result;
     bool ucode_force = flags & XENPF_UCODE_FORCE;
 
-    if ( result == MIS_UCODE )
+    if ( !microcode_fits_cpu(patch) )
         return -EINVAL;
 
+    result = compare_revisions(old_rev, patch->patch_id);
+
     /*
      * Allow application of the same revision to pick up SMT-specific changes
      * even if the revision of the other SMT thread is already up-to-date.
@@ -396,8 +393,10 @@ static struct microcode_patch *cf_check cpu_request_microcode(
              * If the new ucode covers current CPU, compare ucodes and store the
              * one with higher revision.
              */
-            if ( (microcode_fits(mc->patch) != MIS_UCODE) &&
-                 (!saved || (compare_header(mc->patch, saved) == NEW_UCODE)) )
+            if ( microcode_fits_cpu(mc->patch) &&
+                 (!saved ||
+                  compare_revisions(saved->patch_id,
+                                    mc->patch->patch_id) == NEW_UCODE) )
             {
                 saved = mc->patch;
                 saved_size = mc->len;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 14:43:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 14:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832620.1247919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QCX-0004bK-Ii; Fri, 08 Nov 2024 14:43:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832620.1247919; Fri, 08 Nov 2024 14:43: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 1t9QCX-0004a3-DJ; Fri, 08 Nov 2024 14:43:05 +0000
Received: by outflank-mailman (input) for mailman id 832620;
 Fri, 08 Nov 2024 14:43: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9QCV-0004Ee-Vn
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 14:43:03 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c007c9dc-9ddf-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 15:42:59 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-539fb49c64aso3405888e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 06:42:59 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a1769asm242652866b.1.2024.11.08.06.42.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 06:42: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: c007c9dc-9ddf-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMwMDdjOWRjLTlkZGYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDc2OTc5Ljc1MDI0Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731076979; x=1731681779; 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=eAYyhUk3NiNBRpvH7yor3qXtJxAbrlhbvjZAvpbioVA=;
        b=KJeSDo5Y5/WyGjExdFR8TK/i5F1QnzOQ30Ma6/Jc3ZKxzbZhBlHAviIUkAk9pGOJwr
         uUpOa7vtO4jk64wWN1j5bW+LKBN+odENUQIKlrqIncvCZFOOdVZ0OylVrMaZo42ljuax
         XVT8v3qvyf9VNHsT6pGUXl41FpQxEMBEyBjRE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731076979; x=1731681779;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=eAYyhUk3NiNBRpvH7yor3qXtJxAbrlhbvjZAvpbioVA=;
        b=MJtMHVXgDHVX6RqT5p0ip55q86063DrKmJBOdCfYIJ5IhlE9d+t2ovlAJ9xESpdP+Z
         ciM7gKNd+R642LW0UTul2VTxw3s1iGQkIyMxZqWjywmHDzaTBQml+JyG7faI1YaavdFD
         gmkps2/gDPXxgycrnvu7qu5ZGw74JPOHVrH0qHWUdUX5TalvGibV8ITnUpW9UIx70TJn
         jrccd+pMS84auaX2d5WuwCpkdl7GUqJ06+bPMCKvEHiGP+I0i8B9A3gYX6PZTKMdA/EN
         5kf8mDDFFY8uN5a7Vb3Fj458mM9jeY6GeW6c/4OdIjG0hMt8KiGR50aOaoCIlbRu52ol
         vitw==
X-Gm-Message-State: AOJu0Yy+73gvmkBl9AG8LD94T2ogGs1irbSqQtoSUAYn/umlODu7VTA4
	MaD8GGnxVlh0dfSQoia/lR4UFSL1TkTqzH6GUTuLtDTES2cYOVqDSYGFnE89/pDUOWbC7cr9TwK
	C
X-Google-Smtp-Source: AGHT+IGnPqf8jybKj6TO83BLp1vxdYvmZx+c0I1+Ak4JN/eWFn0gbiR4NvaiWXKrze/JnFqBp02Irg==
X-Received: by 2002:a05:6512:2348:b0:53b:1fd1:df34 with SMTP id 2adb3069b0e04-53d862ee36bmr2606893e87.45.1731076978612;
        Fri, 08 Nov 2024 06:42: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>
Subject: [PATCH 3/3] x86/ucode: Drop MIS_UCODE and microcode_match_result
Date: Fri,  8 Nov 2024 14:42:52 +0000
Message-Id: <20241108144252.315604-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108144252.315604-1-andrew.cooper3@citrix.com>
References: <20241108144252.315604-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All uses of MIS_UCODE, have been removed, leaving only a simple ordering
relation, and microcode_match_result being a stale name.

Drop the enum entirely, and use a simple int -1/0/1 scheme like other standard
ordering primitives in C.

Swap the order or parameters to compare_patch(), to reduce cognitive
complexity; all other logic operates the other way around.

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>

I don't particular like keeping "result" as a variable name, but nothing
better comes to mind.
---
 xen/arch/x86/cpu/microcode/amd.c     | 10 ++++------
 xen/arch/x86/cpu/microcode/core.c    |  5 ++---
 xen/arch/x86/cpu/microcode/intel.c   |  9 ++++-----
 xen/arch/x86/cpu/microcode/private.h | 21 ++++++++++-----------
 4 files changed, 20 insertions(+), 25 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 3861fec6565a..366c8c59e93a 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -170,8 +170,7 @@ static bool check_final_patch_levels(const struct cpu_signature *sig)
     return false;
 }
 
-static enum microcode_match_result compare_revisions(
-    uint32_t old_rev, uint32_t new_rev)
+static int compare_revisions(uint32_t old_rev, uint32_t new_rev)
 {
     if ( new_rev > old_rev )
         return NEW_UCODE;
@@ -199,8 +198,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *patch)
     return equiv.id == patch->processor_rev_id;
 }
 
-static enum microcode_match_result cf_check compare_patch(
-    const struct microcode_patch *new, const struct microcode_patch *old)
+static int cf_check compare_patch(
+    const struct microcode_patch *old, const struct microcode_patch *new)
 {
     /* Both patches to compare are supposed to be applicable to local CPU. */
     ASSERT(microcode_fits_cpu(new));
@@ -212,11 +211,10 @@ static enum microcode_match_result cf_check compare_patch(
 static int cf_check apply_microcode(const struct microcode_patch *patch,
                                     unsigned int flags)
 {
-    int hw_err;
+    int hw_err, result;
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &per_cpu(cpu_sig, cpu);
     uint32_t rev, old_rev = sig->rev;
-    enum microcode_match_result result;
     bool ucode_force = flags & XENPF_UCODE_FORCE;
 
     if ( !microcode_fits_cpu(patch) )
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 0cc5daa251e2..05d0d68d8158 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -470,8 +470,7 @@ struct ucode_buf {
 static long cf_check microcode_update_helper(void *data)
 {
     struct microcode_patch *patch = NULL;
-    enum microcode_match_result result;
-    int ret;
+    int ret, result;
     struct ucode_buf *buffer = data;
     unsigned int cpu, updated;
     struct patch_with_flags patch_with_flags;
@@ -527,7 +526,7 @@ static long cf_check microcode_update_helper(void *data)
     spin_lock(&microcode_mutex);
     if ( microcode_cache )
     {
-        result = alternative_call(ucode_ops.compare_patch, patch, microcode_cache);
+        result = alternative_call(ucode_ops.compare_patch, microcode_cache, patch);
 
         if ( result != NEW_UCODE &&
              !(ucode_force && (result == OLD_UCODE || result == SAME_UCODE)) )
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index 3f37792ab4b5..9616a5e9db4b 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -229,8 +229,7 @@ static int microcode_sanity_check(const struct microcode_patch *patch)
  * Production microcode has a positive revision.  Pre-production microcode has
  * a negative revision.
  */
-static enum microcode_match_result compare_revisions(
-    int32_t old_rev, int32_t new_rev)
+static int compare_revisions(int32_t old_rev, int32_t new_rev)
 {
     if ( new_rev > old_rev )
         return NEW_UCODE;
@@ -270,8 +269,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *mc)
     return false;
 }
 
-static enum microcode_match_result cf_check compare_patch(
-    const struct microcode_patch *new, const struct microcode_patch *old)
+static int cf_check compare_patch(
+    const struct microcode_patch *old, const struct microcode_patch *new)
 {
     /*
      * Both patches to compare are supposed to be applicable to local CPU.
@@ -290,7 +289,7 @@ static int cf_check apply_microcode(const struct microcode_patch *patch,
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &this_cpu(cpu_sig);
     uint32_t rev, old_rev = sig->rev;
-    enum microcode_match_result result;
+    int result;
     bool ucode_force = flags & XENPF_UCODE_FORCE;
 
     if ( !microcode_fits_cpu(patch) )
diff --git a/xen/arch/x86/cpu/microcode/private.h b/xen/arch/x86/cpu/microcode/private.h
index c9dd8ba066f9..957d4d4293d0 100644
--- a/xen/arch/x86/cpu/microcode/private.h
+++ b/xen/arch/x86/cpu/microcode/private.h
@@ -5,13 +5,6 @@
 
 #include <asm/microcode.h>
 
-enum microcode_match_result {
-    OLD_UCODE, /* signature matched, but revision id is older */
-    SAME_UCODE, /* signature matched, but revision id is the same */
-    NEW_UCODE, /* signature matched, but revision id is newer */
-    MIS_UCODE, /* signature mismatched */
-};
-
 /* Opaque.  Internals are vendor-specific. */
 struct microcode_patch;
 
@@ -54,11 +47,17 @@ struct microcode_ops {
                            unsigned int flags);
 
     /*
-     * Given two patches, are they both applicable to the current CPU, and is
-     * new a higher revision than old?
+     * Given a current patch, and a proposed new patch, order them based on revision.
+     *
+     * This operation is not necessarily symmetrical.  In some cases, a debug
+     * "new" patch will always considered to be newer, on the expectation that
+     * whomever is using debug patches knows exactly what they're doing.
      */
-    enum microcode_match_result (*compare_patch)(
-        const struct microcode_patch *new, const struct microcode_patch *old);
+#define OLD_UCODE  -1
+#define SAME_UCODE  0
+#define NEW_UCODE   1
+    int (*compare_patch)(const struct microcode_patch *old,
+                         const struct microcode_patch *new);
 
     /*
      * For Linux inird microcode compatibliity.
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 14:53:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 14:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832655.1247942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QMs-0007s8-Ii; Fri, 08 Nov 2024 14:53:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832655.1247942; Fri, 08 Nov 2024 14:53: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 1t9QMs-0007s1-GB; Fri, 08 Nov 2024 14:53:46 +0000
Received: by outflank-mailman (input) for mailman id 832655;
 Fri, 08 Nov 2024 14:53: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9QMq-0007rv-R3
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 14:53:44 +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 3d0f137e-9de1-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 15:53:39 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a99f1fd20c4so319758966b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 06:53:39 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc4c18sm243429266b.121.2024.11.08.06.53.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 06:53: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: 3d0f137e-9de1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNkMGYxMzdlLTlkZTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDc3NjE5LjEwMjQ5OSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731077618; x=1731682418; 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=Z6xkYzsBAesyu5Y5WNvzvYUHdQIIWi9YiQJdKKIjz60=;
        b=JeLxG2YGumr8LenUQWGP63WFKmO841B4uZDQMX5GPmz0taxb/Go4TW254zayVyiM7I
         MkaaRK8eNUA/UQ+6JW80yzqWn5/bGJ3P5uhr0uKcl5ykKjAJ4pWw7Yi9HjZyTBQOp6nP
         RzN9Hbl9EmHxN1gThO0OYEMzzi3CdqPnxLyvw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731077618; x=1731682418;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Z6xkYzsBAesyu5Y5WNvzvYUHdQIIWi9YiQJdKKIjz60=;
        b=iRm7sL22+w1JGG+7mpNaRVBNr+LA+KYxnk7H4ECjr5yPz9dTwnq9qfubrmHUmws0x/
         eHufQ5ZQ84TymgucsoA1bxrgMgUHwLXG/aukVr2ScQLBNB7lbXD8MIftAO2kRXnZlddm
         ADZwj9s1rfRlMDLE/sAf+NouRbAsrjdGkM6xL+KAu5Ke4H3zaZgsua2PvdkKN7SzQU8W
         /Skhrb5V8NmEPa492wo0N0wQnSpPUSokP5yTrI9SyWHGSUvNm3zZq/XB3WsuE179OFtv
         oOmzfdPezCAz9hIyP2l3s8NXEXcoWSpTk1oZ/bKuLKx0h2iIvCNNl7XQs1dictm7sgni
         isRw==
X-Gm-Message-State: AOJu0YzBqrv+88/wo+YqqglpO5ck1wfIDYPU+7cT+oRBrg5VPzv+98RV
	5i45/uOMQf7fjU5H1xdrYyuebLVVtT/sHhzxbwyabr9ZBLSIXyC0/TvV/VktzJC3J2uXgiZW7x7
	4
X-Google-Smtp-Source: AGHT+IH1aAKwK2xcMvN/qXmksM/XFL1VDe8FffY+N36SeEN+2yxfild1wDuGcesclASN7vrQu8nCMQ==
X-Received: by 2002:a17:907:60cf:b0:a9a:1253:4d81 with SMTP id a640c23a62f3a-a9eefff1ffemr248768866b.47.1731077617984;
        Fri, 08 Nov 2024 06:53: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>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v2] x86/trampoline: Collect other scattered trampoline symbols
Date: Fri,  8 Nov 2024 14:53:35 +0000
Message-Id: <20241108145335.315884-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

... and document them too.

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: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>

v2:
 * Rebase

video.h, edd.h and e820.h also contain trampoline symbols, but they're pretty
well contained headers already.

kbd_shift_flags seems especially dubious.  It's a snapshot of the keyboard
state when Xen happened to pass through the trampoline, and surely cannot be
useful for dom0 in the slightest...
---
 xen/arch/x86/include/asm/processor.h  |  2 --
 xen/arch/x86/include/asm/setup.h      |  2 --
 xen/arch/x86/include/asm/trampoline.h | 15 +++++++++++++++
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
index 26e2fb13699a..877651212273 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -96,8 +96,6 @@ extern void ctxt_switch_levelling(const struct vcpu *next);
 extern void (*ctxt_switch_masking)(const struct vcpu *next);
 
 extern bool opt_cpu_info;
-extern u32 trampoline_efer;
-extern u64 trampoline_misc_enable_off;
 
 /* Maximum width of physical addresses supported by the hardware. */
 extern unsigned int paddr_bits;
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index d7ed4f40024c..25c15ef9140d 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -48,8 +48,6 @@ int remove_xen_ranges(struct rangeset *r);
 
 int cf_check stub_selftest(void);
 
-extern uint8_t kbd_shift_flags;
-
 #ifdef NDEBUG
 # define highmem_start 0
 #else
diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
index 57a1f85a539e..838c2f0b6fcd 100644
--- a/xen/arch/x86/include/asm/trampoline.h
+++ b/xen/arch/x86/include/asm/trampoline.h
@@ -85,9 +85,24 @@ extern uint32_t trampoline_xen_phys_start;
 /* A semaphore to indicate signs-of-life at the start of the AP boot path. */
 extern uint8_t trampoline_cpu_started;
 
+/*
+ * Extra MSR_EFER settings when activating Long Mode.  EFER_NXE is necessary
+ * for APs to boot if the BSP found and activated support.
+ */
+extern uint32_t trampoline_efer;
+
+/*
+ * When nonzero, clear the specified bits in MSR_MISC_ENABLE.  This is
+ * necessary to clobber XD_DISABLE before trying to set MSR_EFER.NXE.
+ */
+extern uint64_t trampoline_misc_enable_off;
+
 /* Quirks about video mode-setting on S3 resume. */
 extern uint8_t video_flags;
 
+/* BIOS Int 16h, Fn 02h.  The keyboard shift status. */
+extern uint8_t kbd_shift_flags;
+
 /* Extended Display Identification Data, gathered from the BIOS. */
 extern uint16_t boot_edid_caps;
 extern uint8_t boot_edid_info[128];

base-commit: 75035c386eeb8bd5dbed1831dbb96a35b31521f6
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 14:56:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 14:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832670.1247953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QPd-00007U-3e; Fri, 08 Nov 2024 14:56:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832670.1247953; Fri, 08 Nov 2024 14: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 1t9QPd-00007N-0r; Fri, 08 Nov 2024 14:56:37 +0000
Received: by outflank-mailman (input) for mailman id 832670;
 Fri, 08 Nov 2024 14:56: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=pwxj=SD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1t9QPb-0008VT-Hz
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 14:56:35 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4ceebc1-9de1-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 15:56:33 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-539fb49c64aso3450318e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 06:56:33 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d826a9b20sm643149e87.195.2024.11.08.06.56.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 06:56: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: a4ceebc1-9de1-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1sZjEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE0Y2VlYmMxLTlkZTEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDc3NzkzLjA2NDQ4Miwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731077792; x=1731682592; 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=Q+IilI5qGpm4uw0qApSuShMgKh3gPsQJjpkbbyUG+xg=;
        b=fg/eFt3eQq+iK+uHQfqAsFzeBjqP9KrSUlEXVT/dUt3wdo3CPivnB8i6R2VAMGKxq3
         5bqfRuee0Dm8FOIR3uI9awfwqz0R0vri0ZNzCU5xF7WqhHMjjc3PF9cK8W9T/HsQHphv
         sPoeO4G4xuCYjed46ivfzXIaY76+yA4Sp6KIXLYu8wTUixKzGOdzJpIdM7cBKFnG+WbM
         G5BlPujVoLagzQV9uMC4Y1MQO5uHZxDN1Awu7IqGe8dI7ij9pz2ZdJJ9EpqUjy3JOHBT
         E1YSRErPNP9eyumovD7gvwbP8iwBfY2KslAUe5VdIurouSp2XGaJM/q3y128MnzCuTKw
         5Ngw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731077792; x=1731682592;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Q+IilI5qGpm4uw0qApSuShMgKh3gPsQJjpkbbyUG+xg=;
        b=rMckhpGnktCtcN6Abaq7bgtSbZBtaJmX85GrtRTEEfRVBSZBv+ix72Io1cQxNuVUMK
         Yyrg3XtQHPEPq/e15Lqwqw03VWnFLqzBgbPmLBCitEyiXFPdXrLlLmTT73m1CqbtXuAR
         N7I5hIGUlv+ifuzDjA30qpaj8fJBDB9AvCPI/UeYO8OkWsWI5yFOJkL3IWrRw+u2GoCx
         WrIUPeo+uSRspfMNnEnq4ZAr0sw8NRW4GVaJ8KhvuPdFE/CbE5V8BRAB7FQRTvh2x7BR
         SkplD77CpZPV8ec0CAVadotEepWhuJHQE5EPk3z9oumNx71/drzigSLBV0jv0YXqixYi
         WClA==
X-Gm-Message-State: AOJu0YxnFLK1w0MzXtUX9aITKXiwHuVrgb8PadCLr7/27+3oKiWuad05
	NGKZv0WGCHsEX8A+6N6NB6d4fYlb/OoFT+ykoFxk1HqYTN8/NMBle/sK/OSQ
X-Google-Smtp-Source: AGHT+IH7MBl6nndIOle5jxpyjCxLXnFAsMfIQCPURbda958tUSQQkndnILS3QHwaubE8OI4b9u7UXg==
X-Received: by 2002:a05:6512:3f09:b0:533:71f:3a3d with SMTP id 2adb3069b0e04-53d862c7321mr3121403e87.24.1731077791938;
        Fri, 08 Nov 2024 06:56:31 -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>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [PATCH v1] drivers/char: move dt_uart_init() to dt-uart.c
Date: Fri,  8 Nov 2024 15:56:27 +0100
Message-ID: <8e1036a7e6c884702d46e377c1c5b723570c819e.1731077742.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The `dt_uart_init()` functions is relocated to a new file `dt-uart.c` to allow
for reuse across architectures that utilize the device tree to describe hardware
components.

RISC-V is going to follow the same approach to UART initialization, which
includes checking for the presence of `dtuart` in the console string or verifying
the `stdout-path` property in the `/chosen` node, followed by searching for the UART
node and calling `device_init()` for UART setup.

Add `xen/drivers/char/dt-uart.c` to the ARM ARCHITECTURE section in the MAINTAINERS
file, as ARM maintainers are best suited to maintain this code.

No functional change.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 MAINTAINERS                 |  1 +
 xen/drivers/char/Makefile   |  1 +
 xen/drivers/char/arm-uart.c | 80 -------------------------------
 xen/drivers/char/dt-uart.c  | 95 +++++++++++++++++++++++++++++++++++++
 xen/include/xen/serial.h    |  2 +
 5 files changed, 99 insertions(+), 80 deletions(-)
 create mode 100644 xen/drivers/char/dt-uart.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 17fc5f9eec..075eecfb8e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -247,6 +247,7 @@ F:	docs/misc/arm/
 F:	xen/arch/arm/
 F:	xen/drivers/char/arm-uart.c
 F:	xen/drivers/char/cadence-uart.c
+F:	xen/drivers/char/dt-uart.c
 F:	xen/drivers/char/exynos4210-uart.c
 F:	xen/drivers/char/imx-lpuart.c
 F:	xen/drivers/char/meson-uart.c
diff --git a/xen/drivers/char/Makefile b/xen/drivers/char/Makefile
index d3b987da1d..ab76857387 100644
--- a/xen/drivers/char/Makefile
+++ b/xen/drivers/char/Makefile
@@ -15,3 +15,4 @@ obj-$(CONFIG_ARM) += arm-uart.o
 obj-y += serial.o
 obj-$(CONFIG_XEN_GUEST) += xen_pv_console.o
 obj-$(CONFIG_PV_SHIM) += consoled.o
+obj-$(CONFIG_HAS_DEVICE_TREE) += dt-uart.o
diff --git a/xen/drivers/char/arm-uart.c b/xen/drivers/char/arm-uart.c
index 91f13a4136..693f6c4760 100644
--- a/xen/drivers/char/arm-uart.c
+++ b/xen/drivers/char/arm-uart.c
@@ -19,89 +19,9 @@
 
 #include <asm/device.h>
 
-#include <xen/console.h>
-#include <xen/device_tree.h>
-#include <xen/param.h>
 #include <xen/serial.h>
-#include <xen/errno.h>
 #include <xen/acpi.h>
 
-/*
- * Configure UART port with a string:
- * path:options
- *
- * @path: full path used in the device tree for the UART. If the path
- * doesn't start with '/', we assuming that it's an alias.
- * @options: UART speficic options (see in each UART driver)
- */
-static char __initdata opt_dtuart[256] = "";
-string_param("dtuart", opt_dtuart);
-
-static void __init dt_uart_init(void)
-{
-    struct dt_device_node *dev;
-    int ret;
-    const char *devpath = opt_dtuart;
-    const char *options;
-    char *split;
-
-    if ( !console_has("dtuart") )
-        return; /* Not for us */
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
-
-        if ( chosen )
-        {
-            const char *stdout;
-
-            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
-            if ( ret >= 0 )
-            {
-                printk("Taking dtuart configuration from /chosen/stdout-path\n");
-                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
-                     >= sizeof(opt_dtuart) )
-                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
-            }
-            else if ( ret != -EINVAL /* Not present */ )
-                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
-        }
-    }
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        printk("No dtuart path configured\n");
-        return;
-    }
-
-    split = strchr(opt_dtuart, ':');
-    if ( split )
-    {
-        split[0] = '\0';
-        options = split + 1;
-    }
-    else
-        options = "";
-
-    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
-    if ( *devpath == '/' )
-        dev = dt_find_node_by_path(devpath);
-    else
-        dev = dt_find_node_by_alias(devpath);
-
-    if ( !dev )
-    {
-        printk("Unable to find device \"%s\"\n", devpath);
-        return;
-    }
-
-    ret = device_init(dev, DEVICE_SERIAL, options);
-
-    if ( ret )
-        printk("Unable to initialize dtuart: %d\n", ret);
-}
-
 #ifdef CONFIG_ACPI
 static void __init acpi_uart_init(void)
 {
diff --git a/xen/drivers/char/dt-uart.c b/xen/drivers/char/dt-uart.c
new file mode 100644
index 0000000000..0ad0b18001
--- /dev/null
+++ b/xen/drivers/char/dt-uart.c
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/console.h>
+#include <xen/device_tree.h>
+#include <xen/errno.h>
+#include <xen/param.h>
+#include <xen/serial.h>
+
+#include <asm/device.h>
+
+/*
+ * Configure UART port with a string:
+ * path:options
+ *
+ * @path: full path used in the device tree for the UART. If the path
+ * doesn't start with '/', we assuming that it's an alias.
+ * @options: UART speficic options (see in each UART driver)
+ */
+static char __initdata opt_dtuart[256] = "";
+string_param("dtuart", opt_dtuart);
+
+void __init dt_uart_init(void)
+{
+    struct dt_device_node *dev;
+    int ret;
+    const char *devpath = opt_dtuart;
+    const char *options;
+    char *split;
+
+    if ( !console_has("dtuart") )
+        return; /* Not for us */
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
+
+        if ( chosen )
+        {
+            const char *stdout;
+
+            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
+            if ( ret >= 0 )
+            {
+                printk("Taking dtuart configuration from /chosen/stdout-path\n");
+                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
+                     >= sizeof(opt_dtuart) )
+                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
+            }
+            else if ( ret != -EINVAL /* Not present */ )
+                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
+        }
+    }
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        printk("No dtuart path configured\n");
+        return;
+    }
+
+    split = strchr(opt_dtuart, ':');
+    if ( split )
+    {
+        split[0] = '\0';
+        options = split + 1;
+    }
+    else
+        options = "";
+
+    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
+    if ( *devpath == '/' )
+        dev = dt_find_node_by_path(devpath);
+    else
+        dev = dt_find_node_by_alias(devpath);
+
+    if ( !dev )
+    {
+        printk("Unable to find device \"%s\"\n", devpath);
+        return;
+    }
+
+    ret = device_init(dev, DEVICE_SERIAL, options);
+
+    if ( ret )
+        printk("Unable to initialize dtuart: %d\n", ret);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
\ No newline at end of file
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 3d21207a3d..7c82700929 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -168,6 +168,8 @@ static void inline xhci_dbc_uart_init(void) {}
 
 void arm_uart_init(void);
 
+void dt_uart_init(void);
+
 struct physdev_dbgp_op;
 int dbgp_op(const struct physdev_dbgp_op *op);
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 15:20:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 15:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832689.1247967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QmI-00048V-UU; Fri, 08 Nov 2024 15:20:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832689.1247967; Fri, 08 Nov 2024 15:20: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 1t9QmI-000480-Rm; Fri, 08 Nov 2024 15:20:02 +0000
Received: by outflank-mailman (input) for mailman id 832689;
 Fri, 08 Nov 2024 15:20: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=Gwdq=SD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1t9QmI-0003tl-6U
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 15:20:02 +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 ea1b623c-9de4-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 16:19:57 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9acafdb745so463853966b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 07:19:57 -0800 (PST)
Received: from localhost ([213.195.120.105]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc580esm248774966b.106.2024.11.08.07.19.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 07:19: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: ea1b623c-9de4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVhMWI2MjNjLTlkZTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDc5MTk3LjkzODMwOSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731079197; x=1731683997; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=NothjRa7hJs7krxw/fHeGCdJnIvRShxLJRNh0o3cmgk=;
        b=wYxFEQ+Pyr83U8CwClCbDUmqEjueevLjGVYCpr1fBCeabTRgfvuSW2TgE+fAeQIXxO
         yOodm6GHPJ+EVoREEPilI1+sP6N36uuxsxr34RjPeZ7RKpNDbamKnApphaVQzfYXHseo
         8MZJyi2ssBo1ithNc974b9WxCM2zBnwfN6t3Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731079197; x=1731683997;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NothjRa7hJs7krxw/fHeGCdJnIvRShxLJRNh0o3cmgk=;
        b=AxFn8kIcEiva7Y5+Uculh49Xwpail7J14GagxD5vWPwQjyJ/Y7Yrhw6j4bhkHRLQSz
         t6+xBzpgs7FqkUHIZYbWGl+rVXD7mxsCVFmnSeGlNceUnva/0+HswHkMMCTtQB1dtHOl
         burDL10zttWq4DsWjv4fS+dfHbKCpLQr0TTfJokBqcyW0yVLtvy6fxhOTg5b9OXZ4jhd
         F6uYF6sUb0Lkmgfa9rRklA+GdUPNXVH0s7AN15Yl58vwDYWqwBzbiDHAlwOwKxgzzjtj
         42WDvSKCwAQrsdfXll+IBwuZeTIUqVse9tYjw5lRUa5nZJsPaB1sur9XExlL2mtWS2Bj
         gglQ==
X-Forwarded-Encrypted: i=1; AJvYcCWEQuTSeDV+GVqJiZnWGdKPoo3xWdltakGCpAk7wojPZCx1T3Xl6DccSckEYdseAl3iRqeJTEId3wk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9+jUOmDgkahbaWVUWMGP4cRNg6kh2XRPnL3+PyPtdhOfy7iFT
	LT7WuOKzP+0Y/qGUEQJkbw5c2h6qtczma2iAzeUFef9oUCqcFzSNh41mxU0rA+g=
X-Google-Smtp-Source: AGHT+IE1/T87ONUhJ6KbeDKX61K5vCZlDt/TqYnpNG6tUPtJNY3G3vwg3YXHf/WzetyW+J2pa7VMoA==
X-Received: by 2002:a17:907:3188:b0:a9e:c4df:e3c9 with SMTP id a640c23a62f3a-a9eeff97fcemr317489966b.24.1731079197172;
        Fri, 08 Nov 2024 07:19:57 -0800 (PST)
Date: Fri, 8 Nov 2024 16:19:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
Message-ID: <Zy4sG915LicXNmIV@macbook>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
 <D5GT0NR29WEF.216KE5GCTH1TL@cloud.com>
 <39b2a334-1298-4e83-b7b7-393c79964539@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <39b2a334-1298-4e83-b7b7-393c79964539@suse.com>

On Fri, Nov 08, 2024 at 02:17:40PM +0100, Jan Beulich wrote:
> On 08.11.2024 13:42, Alejandro Vallejo wrote:
> > On Mon Nov 4, 2024 at 7:44 AM GMT, Jan Beulich wrote:
> >> On 01.11.2024 21:16, Stewart Hildebrand wrote:
> >>> +Daniel (XSM mention)
> >>>
> >>> On 10/28/24 13:02, Jan Beulich wrote:
> >>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
> >>>>> Add links between a VF's struct pci_dev and its associated PF struct
> >>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
> >>>>> dropping and re-acquiring the pcidevs_lock().
> >>>>>
> >>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
> >>>>> VFs may exist without a corresponding PF, although now only with
> >>>>> pdev->broken = true.
> >>>>>
> >>>>> The hardware domain is expected to remove the associated VFs before
> >>>>> removing the PF. Print a warning in case a PF is removed with associated
> >>>>> VFs still present.
> >>>>>
> >>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >>>>> ---
> >>>>> Candidate for backport to 4.19 (the next patch depends on this one)
> >>>>>
> >>>>> v5->v6:
> >>>>> * move printk() before ASSERT_UNREACHABLE()
> >>>>> * warn about PF removal with VFs still present
> >>>>
> >>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
> >>>> just after an adjustment to the commit message. I'm instead actively
> >>>> concerned of the resulting behavior. Question is whether we can reasonably
> >>>> do something about that.
> >>>
> >>> Right. My suggestion then is to go back to roughly how it was done in
> >>> v4 [0]:
> >>>
> >>> * Remove the VFs right away during PF removal, so that we don't end up
> >>> with stale VFs. Regarding XSM, assume that a domain with permission to
> >>> remove the PF is also allowed to remove the VFs. We should probably also
> >>> return an error from pci_remove_device in the case of removing the PF
> >>> with VFs still present (and still perform the removals despite returning
> >>> an error). Subsequent attempts by a domain to remove the VFs would
> >>> return an error (as they have already been removed), but that's expected
> >>> since we've taken a stance that PF-then-VF removal order is invalid
> >>> anyway.
> >>
> >> Imo going back is not an option.
> >>
> >>> While the above is what I prefer, I just want to mention other options I
> >>> considered for the scenario of PF removal with VFs still present:
> >>>
> >>> * Increase the "scariness" of the warning message added in v6.
> >>>
> >>> * Return an error from pci_remove_device (while still removing only the
> >>> PF). We would be left with stale VFs in Xen. At least this would
> >>> concretely inform dom0 that Xen takes issue with the PF-then-VF removal
> >>> order. Subsequent attempts by a domain to remove VFs, however
> >>> (un)likely, would succeed.
> >>
> >> Returning an error in such a case is a possibility, but comes with the
> >> risk of confusion. Seeing such an error, a caller may itself assume the
> >> device still is there, and retry its (with or without having removed the
> >> VFs) removal at a later point.
> >>
> >>> * Return an error from pci_remove_device and keep the PF and VFs. This
> >>> is IMO the worst option because then we would have a stale PF in
> >>> addition to stale VFs.

I'm thinking probably this is the least bad option, and just force the
owner of the PF to ensure there are no VFs left when removing the PF.

What sense does it make anyway to allow removing a PF with VFs still
present?  Not sure exactly what the owner of the PF will do before
calling pci_remove_device(), but it would seem to me the device should
be ready for unplug (so SR-IOV disabled).  Calling pci_remove_device()
with VFs still active points to an error to do proper cleanup by the
owner of the PF.

Returning error from pci_remove_device() and doing nothing would seem
fine to me.  There should be no stale PF or VFs in that case, as the
caller has been notified the device has failed to be removed, so
should treat the device as still present.

Thanks. Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 15:23:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 15:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832696.1247978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9QpF-0005L6-EB; Fri, 08 Nov 2024 15:23:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832696.1247978; Fri, 08 Nov 2024 15:23: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 1t9QpF-0005Kv-AH; Fri, 08 Nov 2024 15:23:05 +0000
Received: by outflank-mailman (input) for mailman id 832696;
 Fri, 08 Nov 2024 15:23: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=ksFx=SD=cloud.com=kelly.choi@srs-se1.protection.inumbo.net>)
 id 1t9QpD-0005Ki-A5
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 15:23:04 +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 561cc726-9de5-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 16:22:59 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso399849966b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 07:22: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: 561cc726-9de5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU2MWNjNzI2LTlkZTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDc5Mzc5LjMwNDkyMSwic2VuZGVyIjoia2VsbHkuY2hvaUBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731079378; x=1731684178; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=8L3xrWZEEhfuyGpUNyObVxXSjfEz0wRw3ep6lxI2YRI=;
        b=Lg+n/8MzkUXS/9JGgwaXZwyN26YDHG0XMgUy6fSf6FxUtmg15UdgNqutUsBfam9DxB
         L60XhjoXgd3Gjg789t+ELzYMW82k/6v0sBOh22uXsXcNyN4w2VrMyzInMyMpEwnkUFPp
         Qp+ZKxHP5acALyDGmaainGoSkHQpg3qPMJPRg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731079378; x=1731684178;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8L3xrWZEEhfuyGpUNyObVxXSjfEz0wRw3ep6lxI2YRI=;
        b=dy9yHIVX/Qjb9ImghfsOStMReE7nUvg7b2E5Tjk8Ia/vmj8csEsaD0npHd8vYLn6c+
         tS8C9SZSSHEbJ9r4WZ4R188c5KF1AY1POrcc2fnAzcF2O5r+2qL+gycilREb61cZfxLe
         8zmvukxBtBYM5XNB9//m/BBGDaOLJltzrxmpu7eiWNM6agy0CvOqjSXJvm8hC8PW0WvS
         Wj+e+bijOIGTmmBqZWz5Ni14GlOUSpiDyOORS+iHU5grlVAmFrngl3kPWL3CxEjECag2
         u+OGrJtO4PicNJ54ABnsI+TIZuPheIvS2AWULv8PHBEIdIAWLDFHmBI9OW2/vkA4BtnD
         n96g==
X-Gm-Message-State: AOJu0YzKVRj1xFpIr4ZOcseDnNVt9QTKb0zUy4763l356pNy87keGQ6H
	to6U1wrUuKXtq9Pj8CeOJvqPgeix4g0kefG5S07A/VAXMpMea4caFrRq4fKLi8tYjikm9U7992Z
	giteSMlOu4zHLDRy9pEYPI9QH65EcmsUmW75u/xAPLGlf5g68m++/Kg==
X-Google-Smtp-Source: AGHT+IHxrwgD4RLwvcskntaX5BJNW7jJWs+kpAdsMoVfhTdJcxU6jvN7zYq+EB6zSarhyQczvQirnCihu5fYNKyD4R4=
X-Received: by 2002:a17:906:6a19:b0:a9a:5d15:26c2 with SMTP id
 a640c23a62f3a-a9eeffecbd5mr333446466b.45.1731079377155; Fri, 08 Nov 2024
 07:22:57 -0800 (PST)
MIME-Version: 1.0
From: Kelly Choi <kelly.choi@cloud.com>
Date: Fri, 8 Nov 2024 22:22:19 +0700
Message-ID: <CAO-mL=yQv1ky_0GcBNZOsmJW3AFpb58CW17zKAVwMid+FPix6Q@mail.gmail.com>
Subject: Xen Project Introduction Workshop & virtual link - Anglia Ruskin
 University, November 2024
To: xen-devel <xen-devel@lists.xenproject.org>, xen-users@lists.xenproject.org
Cc: Simone Campo <simone.campo@cloud.com>, 
	"Halder, Ayan Kumar" <ayan.kumar.halder@amd.com>
Content-Type: multipart/mixed; boundary="0000000000005ab7f006266853f2"

--0000000000005ab7f006266853f2
Content-Type: multipart/alternative; boundary="0000000000005ab7ef06266853f0"

--0000000000005ab7ef06266853f0
Content-Type: text/plain; charset="UTF-8"

Hi all,

I'm pleased to announce the next Xen Project Workshop in Cambridge!

In person attendance is free, but you must register *HERE*
<https://cryptpad.fr/form/#/2/form/view/YXHSSND-WmWdmv3msHqN4jC5RDpF8cSspct8pnr2U8w/>
We've also included a teams link below for virtual attendees.

*Date: Thursday 19th November 2024*
*Time: 18:00 - 20:00 GMT*


*Updated location: Lab109, Science Building, Anglia Ruskin University,
Cambridge Campus, East Rd, Cambridge CB1 1PT (refer to PDF for directions)*
*Virtual link to join: *
*Join the meeting now*
<https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZmZhNjFkZDAtNThjMS00OGUyLTkzNjMtNTkxYjE1YmQ0ZmEw%40thread.v2/0?context=%7b%22Tid%22%3a%225f35c3da-39ae-4632-9ac1-afc2f25d2852%22%2c%22Oid%22%3a%22e7f4f6f0-13ee-407a-aafa-aa35d1822068%22%7d>

Meeting ID: 379 369 264 424

Passcode: sSSHrU

*Dial in by phone*

+44 20 7660 8200,,429618426# <+442076608200,,429618426> United Kingdom,
City of London

Find a local number
<https://dialin.teams.microsoft.com/3f84d4df-98d8-43a8-b8b6-de3d0592e9e5?id=429618426>

Phone conference ID: 429 618 426#
*What to expect?*

*Talk 1: Introduction to Xen Hypervisor*

*The talk aims to introduce Xen hypervisor to beginners. It gives an
overview of the architecture of Xen, key features and explains some of the
interesting ongoing work.It illustrates the use-cases of the hypervisor and
sheds some light on how one can contribute to the Xen project.*
*Speaker: **Ayan Kumar Halder*
*About:*
*Ayan has been working on open-source system software for the past fifteen
years. He has contributed to open-source projects such as Linux kernel,
Uboot, Zephyr, etc.In his current role, he supports Xen hypervisor on
Arm-based AMD platforms. More recently, Ayan has been enabling Xen for Arm
MPU-based systems. Further, he is working as a safety architect for Xen
within AMD. He is coordinating efforts within his organization and across
the Xen open-source community, to drive Xen towards safety use cases.*

*Talk 2: Qubes OS and the Xen Hypervisor behind its security*
*Speaker: *Simone Campo and Thomas Kenner
*About:* Simone is a graduate software engineer at XenServer BU and an
associate lecturer in computer science at Anglia Ruskin University. Thomas
is a student at ARU, with experience in back-end software engineering and
has recently been working on Qubes OS.

We look forward to seeing you there!

Thanks,
Kelly Choi
Community Manager
Xen Project <https://xenproject.org/>

--0000000000005ab7ef06266853f0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div dir=3D"ltr"><div>Hi all,</div><div><br>I&#39;m p=
leased to announce the next Xen Project Workshop in Cambridge!</div><div><b=
r></div><div>In person attendance is free, but you must register <a href=3D=
"https://cryptpad.fr/form/#/2/form/view/YXHSSND-WmWdmv3msHqN4jC5RDpF8cSspct=
8pnr2U8w/" target=3D"_blank" style=3D""><b>HERE</b></a></div><div>We&#39;ve=
 also included a teams link below for virtual attendees.</div><div><br></di=
v><div><b>Date:=C2=A0Thursday 19th November 2024</b></div><div><b>Time:=C2=
=A018:00 - 20:00 GMT</b><b><br>Updated location: Lab109, Science Building, =
Anglia Ruskin=C2=A0<span class=3D"gmail-il">University</span>, Cambridge Ca=
mpus, East Rd, Cambridge CB1 1PT (refer to PDF for directions)<br><br></b><=
/div><div><b>Virtual link to join:=C2=A0</b></div><div><a href=3D"https://t=
eams.microsoft.com/l/meetup-join/19%3ameeting_ZmZhNjFkZDAtNThjMS00OGUyLTkzN=
jMtNTkxYjE1YmQ0ZmEw%40thread.v2/0?context=3D%7b%22Tid%22%3a%225f35c3da-39ae=
-4632-9ac1-afc2f25d2852%22%2c%22Oid%22%3a%22e7f4f6f0-13ee-407a-aafa-aa35d18=
22068%22%7d" title=3D"Meeting join link" target=3D"_blank" style=3D"font-fa=
mily:&quot;Segoe UI&quot;,sans-serif"><b><span style=3D"font-size:15pt;colo=
r:rgb(91,95,199)">Join the meeting now</span></b></a><div style=3D"margin-b=
ottom:4.5pt"><p class=3D"MsoNormal"><span class=3D"m_5039482187530934832me-=
email-text-secondary"><span style=3D"font-size:10.5pt;font-family:&quot;Seg=
oe UI&quot;,sans-serif;color:rgb(97,97,97)">Meeting ID:=C2=A0</span></span>=
<span class=3D"m_5039482187530934832me-email-text"><span style=3D"font-size=
:10.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(36,36,36)">37=
9 369 264 424</span></span><span style=3D"font-family:&quot;Segoe UI&quot;,=
sans-serif;color:rgb(36,36,36)"><u></u><u></u></span></p></div><div style=
=3D"margin-bottom:18pt"><p class=3D"MsoNormal"><span class=3D"m_50394821875=
30934832me-email-text-secondary"><span style=3D"font-size:10.5pt;font-famil=
y:&quot;Segoe UI&quot;,sans-serif;color:rgb(97,97,97)">Passcode:=C2=A0</spa=
n></span><span class=3D"m_5039482187530934832me-email-text"><span style=3D"=
font-size:10.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(36,3=
6,36)">sSSHrU</span></span></p></div><div><div style=3D"margin-bottom:4.5pt=
"><p class=3D"MsoNormal"><span class=3D"m_5039482187530934832me-email-text"=
><b><span style=3D"font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(36=
,36,36)">Dial in by phone</span></b></span><span style=3D"font-family:&quot=
;Segoe UI&quot;,sans-serif;color:rgb(36,36,36)"><u></u><u></u></span></p></=
div><div style=3D"margin-bottom:4.5pt"><p class=3D"MsoNormal"><span style=
=3D"font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(36,36,36)"><a hre=
f=3D"tel:+442076608200,,429618426" target=3D"_blank"><span style=3D"font-si=
ze:10.5pt;color:rgb(91,95,199)">+44 20 7660 8200,,429618426#</span></a>=C2=
=A0</span><span class=3D"m_5039482187530934832me-email-text"><span style=3D=
"font-size:10.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(97,=
97,97)">United Kingdom, City of London</span></span><span style=3D"font-fam=
ily:&quot;Segoe UI&quot;,sans-serif;color:rgb(36,36,36)"><u></u><u></u></sp=
an></p></div><div style=3D"margin-bottom:4.5pt"><p class=3D"MsoNormal"><spa=
n style=3D"font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(36,36,36)"=
><a href=3D"https://dialin.teams.microsoft.com/3f84d4df-98d8-43a8-b8b6-de3d=
0592e9e5?id=3D429618426" target=3D"_blank"><span style=3D"font-size:10.5pt;=
color:rgb(91,95,199)">Find a local number</span></a><u></u><u></u></span></=
p></div></div><div style=3D"margin-bottom:18pt"><p class=3D"MsoNormal"><spa=
n class=3D"m_5039482187530934832me-email-text-secondary"><span style=3D"fon=
t-size:10.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(97,97,9=
7)">Phone conference ID:=C2=A0</span></span><span class=3D"m_50394821875309=
34832me-email-text"><span style=3D"font-size:10.5pt;font-family:&quot;Segoe=
 UI&quot;,sans-serif;color:rgb(36,36,36)">429 618 426#</span></span></p></d=
iv><b><font size=3D"4">What to expect?</font></b></div><div><b><font size=
=3D"4"><br></font></b></div><b>Talk 1:=C2=A0<i>Introduction to Xen Hypervis=
or</i></b></div><div dir=3D"ltr"><i>The talk aims to introduce Xen hypervis=
or to beginners. It gives an overview of the architecture of Xen, key featu=
res and explains some of the interesting ongoing work.<br>It illustrates th=
e use-cases of the hypervisor and sheds some light on how one can contribut=
e to the Xen project.</i></div><div dir=3D"ltr"><b>Speaker:=C2=A0</b><i>Aya=
n Kumar Halder</i><br><b>About:</b>=C2=A0<i>Ayan has been working on open-s=
ource system software for the past fifteen years. He has contributed to ope=
n-source projects such as Linux kernel, Uboot, Zephyr, etc.<br>In his curre=
nt role, he supports Xen hypervisor on Arm-based AMD platforms. More recent=
ly, Ayan has been enabling Xen for Arm MPU-based systems. Further, he is wo=
rking as a safety architect for Xen within AMD. He is coordinating efforts =
within his organization and across the Xen open-source community, to drive =
Xen towards safety use cases.</i><br><br><b>Talk 2: Qubes OS and the Xen Hy=
pervisor behind its security</b></div><div><b>Speaker: </b>Simone Campo and=
 Thomas Kenner</div><div><b>About:</b> Simone is a graduate software engine=
er at XenServer BU and an associate lecturer in computer science at Anglia =
Ruskin University. Thomas is a student at ARU, with experience in back-end =
software engineering and has recently been working on Qubes OS.</div><div><=
br></div><div>We look forward to seeing you there!</div><div dir=3D"ltr"><d=
iv><br></div></div></div><div><div dir=3D"ltr" class=3D"gmail_signature" da=
ta-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div>Thanks,</div><div>Ke=
lly Choi<br></div><div><div style=3D"color:rgb(136,136,136)">Community Mana=
ger</div><div style=3D"color:rgb(136,136,136)"><a href=3D"https://xenprojec=
t.org/" target=3D"_blank">Xen Project</a><br></div></div></div></div></div>=
</div>

--0000000000005ab7ef06266853f0--
--0000000000005ab7f006266853f2
Content-Type: application/pdf; name="cambridge-campus-and-city-map (2).pdf"
Content-Disposition: attachment; 
	filename="cambridge-campus-and-city-map (2).pdf"
Content-Transfer-Encoding: base64
Content-ID: <f_m38vc2w30>
X-Attachment-Id: f_m38vc2w30

JVBERi0xLjYNJeLjz9MNCjM4MiAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgNDIw
L0xlbmd0aCA5NTIvTiA1NC9UeXBlL09ialN0bT4+c3RyZWFtDQpo3rRWy27bSBD8lT5mDzbn/QAC
A0oCbBZ2vILlm2EEhMJ1jJUlg6aA1d+nepoSJEcSedkLS5yprunXNGUCKTKRtDJkEjmryWRyMZBV
5JUjLPgIMBS1J2sp+UTWU8qRbKScDdkEc/BsBkZFTpHWypPTQFCdJW0c0AEjMJC2vI9jLe/D3tlA
DvYuBBwLzEDYewM0wAA/oBO0IQ+dEBJ5TzrqSB56ke2glxTeoZcg6qGXUqYAvYxwIKFz1BQQqoJO
sECIBgfMjoInoy0wABFziGSMBiYgDg0ZCB5CNBY8SBkbLUXoOejhp3ExEkyN14EQqvFwEkvGsx10
AjIYoRNglDjz8DdBJyIZCToRjwSdZIDQSRD9+LH6vKjf3r7Vr1wqRXfVNReLf0zrtll2923TcN0O
V26b/7rrZkOmulstGrZGEphyv3ltqlnXrueFd7dadVdXOGWi8Lh5XjZfm+ennx2qeamqv6uberNa
g1FNzOG+MZfRHRDsOwF7GVGJA4o7pPjDI6b1Ox/y3n41e63nzeSfrmmL3ayr2+6v5Q/Eiwxj4R4R
9+8XvFAE9ThBN1rQnBa8uiqJvObe50zf1MunD83y4s9Pf1RTVL0szqovq/n6BaKFfLt+eXtQfNGw
SZqvGn48SkXa7nm+aBirT6sfm2pa4PvF938bfrldtS/1AiWvn9r69ees24A8RRyrdlPNmjlOeMDN
Y+EYBKJAEnACPcUIWAFxKJae4eYvIHZBVIJoBjEPIuZEJclb6t+KyuPDcr1Y0P/8sOK/FQesOGfF
VSuO2xLGI98sdCRfJ4X6eCna9Il0Xyj0x1IKMbqJ0CKQMyyn3ssdK1eRhxeGzRybmZNegGaZ5kGz
+QwNTQqe7WcET2ShcPP0Hbq137bqTLpGdh/6IjpJpesrK6l0kkoX9xPrpDHkpG3unTSNJOKRb0Dq
z+obu/cl2TO+8Hw8sxvPxuElAC/+eAnAi8teAvDiue8bvG93af4gaQh2G8BRF7YVO7F71n1pz+O7
uzru0pPf13FHiVtKGu41DFmk5thAKCHGvUNk0hza7c+MUQb7Y2WEQT95xhDVCKIGMeSxxDSWGMcS
w1iiH0t0g8QJZ0fzmAh2OyZSPDJOCo+nTjDDPMs8Pczj4RfUME/ztMvDvDKb0yAvMy0O0hLTwmna
5PyfIOSfBfzgOXEcrYx8N0jz42jluzNccjtIk7GSdhcs/D55yodTc9ZjHiG1G5LuiBR/1jRXJukR
UrsLYEd+WDUXI50K+JcAAwD9JjpKDQplbmRzdHJlYW0NZW5kb2JqDTM4MyAwIG9iag08PC9GaWx0
ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTIvTGVuZ3RoIDIwMC9OIDIvVHlwZS9PYmpTdG0+PnN0cmVh
bQ0KaN6Ezj1rwzAUheH8lDu2i+69sizZEAx2oUsDNSmdQgbVFUJEtoI/QvPvYzJlaoYD73YeJYFA
5cCKYbvFel3TpL+DLASVWoHRJIxkYDbCGA2FJMF8xE/c2WtaZmyj7VzvhhmbmLpTVWEd55d68DFY
2C/TKQzwPYSLG6cwXyEmnzav+AGssYX1lGCPrYfC3OsL34NfRldVjxhFgnRZrkgSJWeQ50pIla04
Flkun2rebP8zhl/voLP9eZmgt+c7gv433AQYABulTwsNCmVuZHN0cmVhbQ1lbmRvYmoNMzg0IDAg
b2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCAxOS9MZW5ndGggMjcyL04gMy9UeXBlL09i
alN0bT4+c3RyZWFtDQpo3ozQzUrEMBQFYB/lLnUxSfPTJoWh0ApuFBxmcCUuMm2IoU0ztKnYt/eO
gyBuxsWBezmbjyMkZCAKYBhVAMdst7TGNE38fN0ooiUrBDBGdM445FoQBYorkkv1Rp/pk1njkuhu
MK0Ndky0GWLbVxWth3R7b8Jx8p2z0Pq0Qov9ZCGY080dfQTO6A4kQ8Ce7hxcjgN98G6ZbFX9dnBN
srKQSMyI4gw5iii0ap4Rxq466tEN3sB+mXs/wsvoP+w0n0VDdPFiEf+2sLwgWsBGZiVRZYljCPwV
bieJKPVVzGENxzjAZE+TnbH0o4M5LR2eYNo2hhA7k3wcAa3p3UJv12/jea5c/BC1+mP8EmAAKOKD
EQ0KZW5kc3RyZWFtDWVuZG9iag0zODUgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0
IDE4L0xlbmd0aCAzODgvTiAzL1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjerJLdaoNAEIVfZZ4g+6dm
hSAktnpRQkP0ohBCScxSLI0r6wbSt++sbpoWiv2hF8JRz8zOnP3kFCgwCKMAuIA4jmA2I/Om0bYD
IQT+XJO5sQt93tAJBfeEcTjh0whkwCYy3pLFi1KHMUOqG6sa13A6NEyNbscKcqNPLTDBevdSHerd
mH21M9jeze/sa9Xpk6lUh4vcnm1e2J1VqPOCQsx7S14wYOyiOa7tpQAR9DpJSIZTY1nJHilI2RtQ
YyEdCssS+1Ev3WfmC1dGV4WyG7K6yUipznbrPrXK2Lofapli4iwYdkvdJJHXHLX0XR7u98+qchNk
R/Tz4aTsiH7OvUY/D7wWqCOvA9TS6xBzvNRGqP16eMJau2SAksKaU2WHFDt8L3f7jhSkNPVxLPby
tVWY/ZNKEsfMf0HCf4TIf0IRv0MRX5kQnzFIOWLA4gsGFDj7GgnPQc8Ev+CBFyV/Q0d4hWP63X2x
v91Xqk8uHnJXH7qN7E+BfvIPxi5J3gQYAASZEG4NCmVuZHN0cmVhbQ1lbmRvYmoNMzg2IDAgb2Jq
DTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA3Mi9MZW5ndGggNjU1L04gOS9UeXBlL09ialN0
bT4+c3RyZWFtDQpo3qyVXUtbQRCG/8reaShnP2bnY7dIQLRCQW2wXjXk4iTuAaUkIY2U9td39jRR
aSQN6EUyOyebmXfmmd0TYzTeRPKGSU0wMeuHwGDKaqNJUH00OVSfTACsG9mEiFEXYgJzNuMawpub
PsZfCxsbNxY3ljaWN1aqnZycuNORfl2bKKk+GQ7d2djbRCmBbrXgVZr+YgOSzzxxZ6vSru8X8/N2
XY7PP4IHDB4gQIhRPvhw5P3RwF0YdJ9v3eX9vJyuVouf7nIcWGwAMbrdCtfSbAatAYNYJJy4y09j
d72YF/dlWeb9vybuapsieA4UA+VvA3d9ddwhMZfgm2kn3GBO2ExRpOkoccrStkG6gRuZ1JfpRovl
43LbJHdTZutxYot9ek8WVE4QsFzlAVtmLfTr4/ThuBYwqMv1r2Xpy3G3xw+/aeBu64PT+XyxHg61
gRcGUi/cdO33H8WN2lWZr82Gz9+UlDWVsFHtlhWMSO59wlT9yVOeXu6/Gbac2L+RE2Ley4k0iM+9
Sg1mdG2zNggpWRT4D6fdFEpLBGaJBButmBrsoDQtSVFu01mRXEon8Aqt+Ny64NFiFYFicwomEFmu
InWoMsu70YJdWpHJRp+eaCFJ9Q+kRfmNtMjz/lOVVY1eEoJKLelFEaxqFp3uSAexouBfsqJOUioC
TSs4a3QT68mK3JQiKdzBNGRuX2FFL1gFHRxtG1sPeqzQpqpPz5sP78YJdzlBwn5et5xqD9Q/lNNb
bz+CsI9T9BrWQNTZSbU5aCFUP9qUD8MU00tMCFOcJsam0xiNvjb0KswIDbGHNGtbLnf0CiZ57hto
36IBQBsjqKJkBQyguiG9Gyfe5RRi6o/wlhNEX/19nP4IMADFe9W5DQplbmRzdHJlYW0NZW5kb2Jq
DTM4NyAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTE3L0xlbmd0aCAxMjU1L04g
MTQvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN7sWW1v20YM/iv3vQh8b7wXoCiQLM3StGg3u1m7DP2g
JFoqzJUDW9mQfz+Sd1JkJ/acONv6QTAYSSeSx+PLw9NFWy2k0D4IpRwIo53QxkhhnBbGRhxxRhhw
UYRAg1FEfBnBCiWVsNbQjRY2QBQqCNAGNUUBDq9aCvCAVyWcBtTngnAOdb58OTooFuXRrG5Gv374
6fPZ5MX+vCqmo9f1xeyyqq9Gn6p6v15U3fNRNV80P3wt5kKOSOywXFzMq+tmNkcrPa5gPHpXZA4N
MJrcnDe31+Xo4/ym/Mg39Icn/FRdNl8Xv3mQ4v8kcjmRARAAjimEiA7y6EAljDGJcAyCTbz43Mq1
Mv9EHT/q6AjHMXzAkxF5rZn4WSnhUYCeWVBKHmcD0QDm9SHJZb5OLt9HazvdNN4aQWQxl0gXLaYz
FOfoG9zdkw1I9J6uoS+TifVIeSeH9z7LtGQwTbVLV3KAgTQfXVl/1qNkz5BugFbRPZAILYmurThR
F6+sOjF3OvMDOYY5sto2qvei5mRngzc4vc92kfF5DLCkLOm28W520uWRz/ilMeMgB9B2RKvogrRC
bHQX2R71I6lz9NuMWCUy1vd5+lmWM2Nd2lIp9LNiNZ23KgN0zINztHql/PLqVR+Mfj778PrteCcw
ggGMBjAawGgAo53B6OjH90e/vNkJjMwARgMYDWA0gNHOYHRcTv8sm+qi6JAIPWcZXt4X30p+f4ct
+EfdAcuyprPi+vdDlD8vmkWSPSsOz7eTPTl+dzo+eTFpiqtJUS/2DmazP7aBRqNXsRFxZAka8et3
nQktLmrlUOZ5fuTkde+cMptlsx3g9cPv8TM73eHnOea4/vKgE8fFtPyruN2blN+qg9n08ml+xGRc
9qN1W7QYzd/s/Z+OjmnZEZRglKvJZYqfaHEQ4qrTPCSiykIHOUlO9CoKb6k1JFdR3QUEDE8IjSDh
NHE5p1LJoxyP0mmI5Okc+HveRXzQVF5YQoQ1dEaC0aSjEYgIA3ygQmYaqUTUnked1CyFWOetsLhQ
Q2UuUQbNC4Y1o1NsNI/MJK3C5viOy6ubaTF/WnjRDSvx1eqB+M5O6wq1lYSOzH8/4gCrhmO30zlV
tU5vnSTwRfAmB2u17Pjg7sUc3e6Q8I2nni0jx5z4tA1ZCt3rUxCd1hxSg5yEsRtKDD/jnPIJJ6kL
BmoalJEhuZx4jOS8inTchbNQIpAMNT8lLEtga4m207mmEPfHp+OiWszqutw73KkYlTQbopVQrRcq
uyZU9nkwzvtd8NJJKmJyoErXkJzOwTUtV5C0RQHmB3Y9CIv4abm5tSkH2m6ukR1crlc9bjfWh3mK
z6k8XAwMiBYTCrjzgqc1Wk7mVDrymX+AWOVMN1+MvNuiESlSQQMgzmHSR6NS8coUcxMIy7AEgs1F
E8wdZGPZbNmTyNNlfVnUDbEtROo2XWTeXJZ1UzW3e8dLaS6X0nzZ4995L3TcA9d1Q0shf3I/BB+X
OqIN9K3yHXRFonV9EQh+n7cz/hvbR/ufbB8dFxFtEJ0LeRPJcQoq91Jn0F3YdwJBBscby9ebLAX8
LxnKDirhELiEg9qwwQTtuMAZbLDXtkCl2RIaoe0mvaWtDbRbzt7mlDQ8dp0qrgL25Oj07eeTXQ5D
uBsNhyHDYchwGDIchjz+MORvAQYAdm7QzA0KZW5kc3RyZWFtDWVuZG9iag0yIDAgb2JqDTw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjU4NjY+PnN0cmVhbQ0KSIl0l0uPHMcRhO/zK/pIHrq2
st4FCDpQlATLFiCDC/hg+ECvV/RDJCTZlqF/7y+qe3art0cgiNnp6arKyoyIjLx79+P7T8tnn939
4f2nD8urx0/r129e3337xe/eLsEvn3/+5u0Xy+XN/cUv+mfLvy53X7/zy4d/X+7u7/Xg/nt+y8ua
+Tm34HwIbQnBpRTScv/x8udX7x5/fF2XV/95bZEDPv718efX/PSK/a2//sv9N5cv7y9ffssxd1/9
48N/f35UNFsAdg3g7rsf3j88/u27t18t/OSX8dA7801hucR/b2ELzhTcT0S2BRwsOt9CWLJVgoph
efg4bvPx0oxfCD11F3pZfrhkcyUta48uRH0P5qKvy2oxOmudJ8V1X3jAL9XrlbW6WvSKN2dVD6zx
Lu+we8/jlUikLS5rDS7U7UlzLQWeJGcx6UlqLlfOLnon6EnIBNOJLjjLcezsXcvEa3pXZ/398v3l
j5efLqG5mMrSCSovOSSXfF+KD662sPz8ePnT8mnKiHHNpAsXCy4Ws+eMcEKttkSXChtVV8qSnS99
+fWyfVuzq1HB5ORqUiaqa12Z4QJVyQudpOpKybtSFX92IelGMfCAVBUK5hV+KC4pU+QlNT1gM+P4
tTTXozY1ZY7v0ZWgUz3bFWd9uvxU6ORiI7jCNrH29nytwIUIkuBTMkXSXR5Fo9CjRJHLKbPgtqWs
B5xIYtZovNk2KGTqoqqkgYTkPEleed5S24DQU94ebPVz2fMd9I2avww3ZmWO01OLLgcY8RTuat31
zmHApKYBKuWsbOmOJe0QKuQokGXLt9JBLntOS2yZCIHm0/YkkWd1lCBTLV28C+n9xjaUwsPTJbRx
XpmipMCNGxayPkC9f4ccsLFuiCWI4xO4EPlrLX1P/csDDQDFDhUCxYcKU14osCfXYbAJcFCKqpx4
8qcSJLgoPlflc4ekNx3Ppy6XubaKaBBlQJLrW7TnFcYWBcTVPe+WqaKJEKUoWCNskbHw1sBn5TqZ
ZLsct/ehpjbkIBsLONKzQJkII+NWxP0hOnkQx5Cb2mwQvY0wA8xtkE649xsPWh8RrlWkUv1FiSyV
gSpely/IjU/KBqwamiLRSuMJKuPz9KTzYAgIRPCo8tr9zsCYdkoqMYOj1Gn6ulVrawZwE8WdEOdF
fbhZCkyUBj5jpYuR/LkaCtpGxouPz1/3z4fL0xPEAQ3eF65E3sG9f/rr4aJf2tP347LTtsdjt6Xb
LR7EhwrIG3Fml69foKBwClQSfL5+u+63f1ef4/tYxsmis3/6i8vMP6zHNevLLdfjiesUy1OEDy/S
//vL9vx/y6wsLbFlbnSAQjtOU8cDJIg2fBCswHrsoKHykIN/ubxjb1u+mfdKYq5on/t4O06iSgAA
mOtE1AWcF64RNrnb9kLXQOQhNvqvs8D1CvoULbUDRizkBU22Ksy/O8hCGncJBJJMgUyXWgtMoghc
I9uNhYQhVGY0lP4woxJ19/QVf1oUW5WhSPRAunnK07VR07hpClsl16Rv3IX77Leej4a1klXEAT3o
doh5aCXZG8x8sZDHQVYlw8ec2eFZA11WlyFLTcQl3V2oT6hLOgdAYLmQlOzJtoT+OQCVD00jOUks
onxUUf02tn0ff4RC5BCTRyGb+Ic4lw7M5hhGVkKP+31eQCmq/3MWW+BW4jEZXognpCqfhLD70f7I
dVA0a3PDCakZl1O2QkVbxaE8zFOaWh0tKUCEFVjW88IIMy0W0pwVQa4zNCitl6Zx5zMaI22MI6ls
ocPZoS3KOqR95Y1YaRVVC09HCiPDYaj/hfPKAmT0AngQAaYjI9coKiJBDQ/6YmVHWdQhpQfg9OA0
aBrSfwxv3E1L3GCZBsjUSZQLo69SByAQVWc8XZdRU7sTfGhLXWo9xCyMftKz5IqSh64WJM8Huevw
7MPg8fnry0hJSswNjMgclQn2ArIY7of5ebEqQRIEDGLwWWZlyE610XV6rBuwlCeiiCeyBLkunS2B
wZkdS0pPXvAfpd/AH/Ybvb1VUymMerpJIM6RJyJHZfIgqm9zZeqW+o0ZpFUKJleR8ilwZBTeMI3A
dNzKHDmEyn2Yj3IDjFdGlqxJoeSDRcTH+niDMypCsFuLMFV1mD0sCjGjm2E3rOEcs8ebRWI7x7yS
5bIZ6aKiFe4gHy3ndZWma9ez5Z/LLfyckY65qjLbw2oBlIKbCsOx/3KBWbUNo0Sa0oI+hWIjgETW
aAXGliu1imoEuzYeD74OmZo9UvQTBhnWStd7ssdiKa9GX87wI2Sr0mrcWSqzYd/hm4eNAJ0N7wll
Wztj4XmXk0gjSN0PLg6NH26wlzhklyYpvwx/RBdAGzVItn0KgYuQ+OVROEjXjQkjU5pW4xSwjkAC
IVSjTPpgWw0zVQVE4DLnQXGuuexRYBkr5d2/kQKvDnGi6J5mEEOznxsq4knjMelRF1GR2DG7qStT
yMoike1aBbxA5zdQgch3Bgn5gktSO0WlIHSgX/ArQjAmkoolOalVM02Nch6aLw9yRYcjACfrappX
ypZmjZQm5JdhC31r5zviV7AfTF60P5/yLGcsjfvE0zTPRg2jcRyRxLFV44pKRkB9d/51twvVxgNq
qQlAnc/i8Nv0bot9ECxobdc4mjZPIbxi/LpEpMEtJpiH37J2zctnoZ+82Fqb4YA+JxUlhrM/a1y3
MoxkZozQ8tTWKJs802bZXy5jEItqJfKlXnFOWeqjbAhHEry1Pm0t7YboV3UIBc1tZ7ZgoZUE7qS2
pcZT5bYKkV6/2RCbUwFxFJwop1o0oIY4my6AtUEhn69kw44KlQgSWjc7pL2xDjUVhjSPFbntDv6O
mjjvCKsyHQnBoxNWP6sBvpZqCjkAF+Y3NQK891mZTIIohUhJ0tUmVZUIJUQV56UmpauhJYPkcYwF
6zZqcVpRDUZCFgmKXCufUnh4V4derEmCETVLaBKQu+hBtSEqdT/Gy5zOhMkyJShb7Bpk6tyRcMm+
bkYGaINoL0YSTR3CAH92N5PA67CXOpZur1s1qiEYYbdQj4cL53jUYpURo6p8dGN1zVKBhQ/laK1S
pnqOktx1IsR0ytrYROvd1mqQ8jfcDdePDSCrZXaJ3LPvI11Zbzg15BOcGPYKKhBGA7N+WAfTVHvN
EgSeuSeoTf08wzAjUCTSEopQkCZQ0rmZCRY2Q6Tgj+eMKBSeBxFsqat+7OKVvOMuSBjgCU/iINN4
o7vjcVFQdg9ZyhDmJktvhMUa5MStMmxD6TLuGgEkt+Lu1QJdqfKii1uWI0DCojYxO0hR27WQOe6c
6jB8c+Wessp1nteUP7I8JrSzBZNY0CqoLlewduxoXs2Y5tRuLAwcWdXoI2Ws3acD6m3AHDuTz+OA
9WFRMoBSauahEB9kZUxLdmsCEYvV0INaQZndldruZvZSvCFsVVMuPYTT0K0wx0or8xRbTfF8IrmL
HWlhXAQ+x3rLO7C41k3EbXR9jQFnewxq4EGi90VrE3+2trkp1G/1l0QWgX0+YCHTQgk4ndnKTbEL
Mjtd+mozEFCpSjfD+wGGipJw6WB2uychdJBN1JuyhdIUdWgnxKgXqMpMRnRNbqnZT11c2vZ/vssl
R44bCKL7PkVfoMb8f7ZeemdANxhAG2stw7f3i2RXiyyWBgY8060pFsnMjHiBWnE31OLIavYgd25C
gh5weaCWfZqRcDyXdhOD7ZBgjAF1cHU2RpGXRBOvqDpIi8p/NIAJqi6rGEOkqEDEBestoBcp9FnC
iLhe0iHmv3VjGY0R14zASYT1FP8hslxuwUdlG9ymd4wIRsyJLUJtAkr3OUqMirG7nJaaOLRLbFDS
3n4MJrdE0aK0XkQ3AV5TxnlFnWi4x+6Bt+F9LRipE3Fk0uYuNFQ8I+9F2eQJyCMtKgBNaSYGQFXw
NF7xwxgw6GXckMoPnLFzHCy0s/UvqkbKwhaBvRSk+ynOkGPGzddibprNzCT7XcCj6EwlS5px5+PM
ACUamXRMTAaudKcx3xdJajZvjQ08z4XglE0Kc18HtUtEkeA5iCBOQoDfROsw8exNWm1Ilu5V+DRr
JPyKYGTD6SqogbsNiH4+vFHY2dpcfFZKadL1LQIkATbliWhqmZFXqlGtQ9OuLckr09IqUglXXZz7
yuM/XIciIgwqlVDphVQC2SyntFBCnZi0V7n4UvqKvDJl1wFIDHsTQe1tfPAKjaMllG2b1QtD2aYI
Rerx6zkJPa39Ud9ofmlpGIhaOqUkQdiCHxwA7rc0+2MsJe1W4NvqJ2HRBGqIybbTRalVomzeNW1B
Ya8bojvrIG5eFMDj+Wyo61zQjaw/0KzkWeOiCHAwRN6tVyDGc+HO7amcsepr6Pd+5Mqa3gkv9Ta5
yvFqxgOhTmHvGZwL3BTOdeWwMvUMvFrjUDFPUdDewA6S9e11BBNKLFKKsBTOOpc08rgTz9JLaTdx
qWfWLUVe4MOcSwmTuZj7O39zZvaXcxWIdvFFnf1MQQpZSmMWkRfOUqQcNHYh8Ij9g/IL4w1qqg9R
AThY5k95/GldV0WNcpwonYSC4iz6jpvy5r90CeWA+NmB6nnfJu+SMQ69phncMRbOhYkiT2IBJQcF
F803NchFiIYFc0wNsCUJgoNpD8qRQFifxddpU5Y8xJpf0KPklhSJA4jvtLGe78cvk16KBiIxQdXP
on+MMKR2acNSuOthg8pHe79nauM6rZFFUG4GRmfZSlL+Q0OTSx/ZtOyrKNRWjfJuQ9WNvCfx2/sn
CSYKVwW0qpR97Z8un4USdRCCICejzQTSfGZL6nEPuNJ8iAN3DU95bi7mtg9HVBD0KhyVTXmmHk6u
sVZWkc8zoSg8sWlfg3IpQ2QRV61Tt7MEuyXoKAdlE3VMcwdWHbg5Am12iBwBYglLOZrcO5M1VLE5
MwP6kHyKiguNbyj4XcRU+wh0k4F7LsntdUfnGtPO9AFYJftZrZT9ws1DRFVUqHV7Gk4u80PVOq4N
gAxS3WDWFTUkvCO9oPbqYFGIktlzZmp8rLP2UHOM4+jWQlx+LcUcrbV0z0NYGu9AnDUjC9pKAslh
bK29xiIm7Uz3am4sw+nMrSXcKBMXzCoWMRzBoiF8RgPw5z/vQQ9VQwuy6LmFBcV004cZud7O7UTx
vNy/2RdD3QvddRPNDJzHuoUxnR0J34RulIGeEkXO1hjzonbxecQICwy/WZHz1plIOXbyxntyo7ER
Jp8r+fd5vWmvOED/sAa6P7sdHsYi9FceUMuIw5RQk8o3FlVuaSy6KRtwrRkF/YIPi5tUlQujbM3O
FRiVI8rljcoVMfl35KJRL7k/6x9iy7DrL3+V1BwZDfG9z9nTwsbxYv9taHi7V/sHuaEPc/vjZRgR
Zw9JpEK6C8H0MtS6DSx+x/ArStKHvczwSrMrXziz3DpCQMnvT+PH5+P8zE6KV/Szpw5ELpOG3Pu3
z4f+Jb0/r49dFl3eOJ5z9t+nzGDUTKXoKsX4SBfQ609pRqOT3h/PFV+fgzAGFRuPBkuU7vyF0yz/
cFyeOq6rHpe3HsuW3lv9fHy/UQhKkiEkhqBqnGa5obx4FKXr0nrWyHw/akdDhJuG9SyC48A5OCCx
tSytJO2SZMd0afsrhoBlLjLZgCnLLTzdrKE7mw430gB/hwJqBmwW351ejxwkHEncJn3DF0ZkiV7z
UpLNEbuH3p4EKR+ZKrEOFtqDJRQylwnLFjn4MxyD1RSrcm+rCyQhHQ67Y27gFD4pZ2LBBNzJc3xH
j4NaEXzzRi57THQBIsz80mdM8Y5VhagmolfV2tCRqFHk0WLkuBgEshWzuZ4Js42xw+aMNsRT2ea6
x2x/QjbTIOWPG6BXN8ADAnpQXSF2MuSCQRbB8k05aaKEaoasQDBnR6VGhOfFol/0kmk7LlIUDFuY
Mcd6xWbfsFt4LNJU7z3B12IyI0+JmklCzDCppCM8u4ZDHsYtcxNXSfXgY3DUp6gFolu0kVFCpXlh
DPuhAQqFI+Ap2MjNUQ2SK4qPHWnlaY4lYW1hE9RA8SsNXmj0MFcVE6GET+mELAiPZGusCDLti9D4
juIkesOneZaBT4b7qdglhj0YGOqkDDCYmiOK5sAfB4j5Sw/OhyXs9MZ9M3YMUV8K3BglpCvVa4kX
BE3yLrwoqyPmiYeWmhCc22rKXQGoMwkVz8ThR4AMSMlmu2ge0aj87X8PbpUxUq2DqT6iNTxHhnfy
JrfmaNplOwE17SBMhPBicdPF6w5lJkS0HL1pS6iyVvqtdjGW5/UCBaYMatyzgXWytA3ZCG6+KnQJ
xDsEHiQEgWw2k+h0RpMCebNwF070cc+/Vg9QuqTSpEi6al76o3e5OGtxbsDsowNyB1idolo3SiQ0
FMqLTaUHNbLFQvIrAcYCb9CUSZZ8f6PiuoEoNaOXIFIEf1ZCeipJfNnhsysKCPyMH7kxHhNY0qeI
PZdPQ+JRIal3CnUM6iqGlSAHL9HwXbEWzEDIejkLedOXJxEWlgrOXVTDyRuoVf+iL8ELYJkFiAga
rknwOnXoOILlgYTNsVhNomiauQkiuvVs06jyR+pOndahB9TZj9PhCtBylAaW9tKfu5a0kCaRLoVW
WGYMie/0pCSuRusYbQoJd7uipKy4gSohxSnPNM/6gQ4TI9IK1Ej1c7wq//5+U6QtKkXMktVa09xy
PtvoCX2fyaKo8DBrT9xIHZ+TwimkH6Nhj5X7umNMo7JGcaLgHmcJFvRUgVKweEZ7aIJ4IJ0telNU
D5d4BYKSo4LcfJVqQW+AW6I3luMVvmz3WNgrs8ESVXQ1L0E3qElpAinHl76dMInSuwSHBq1hBmY9
ImH5UANzwlQHtklKWV7f21Hl5Pqrqu45cDUR0YFi5245BSEpGNhBhexPk6KkKuOUy7xW5CvfRiqM
+pMsH1AkVe4AHf/7kvK4xO6QFR80U2XhJlZ2SqCU2EISCgOAZ7tWFY6h/FDb6MLV/z+/pByLQVRW
NAXRTWaMlKjwpAGXJXDklsCWjqhZE2DSGl7az8/S4s5hhSddtajmQdXFI3uwGOpL2p/jgBgSQ650
6JfI5XoeYu73x0xOLZJG+d5cdwbwZQOjgDOmL8gnR5Cu0IGVyDe9mm7AFTMGckOcdEhNFpmur37J
jkiqmU2YuQkPgaM+fMOnM3TdXCJ9UwvvFA6UJf6xdJB20WdyROoXwC7ku8RmbYH8sSfkZCws4lbw
5E3BZERy1IVJNe+EE4HC2qia7yiL7OrXdcoxVHf59Z40InWD1BQo1AAlL6rqGvr8AT/tz4mpkDIB
fihpEZBmiI1tVkNsJjsLB3CQmuv8TVE7nwqhk4VLiSuW0bW5LNBry6mMdITpyZYc92ulKzu4RzzD
BfrRBwxY1DoDmvOKsC5qc9Jrupn/NTkI44YHGNcM4Bj//bNoWMXmuDkGEgeZ70LIbCLq1WqV8jvV
4vXp9ePzcX5BjbobrBgVNiwQufOXz8fy/frMdcnlhec29N/n4/uvc3z435yEiwfHZ1KWXHU7Cq+X
Q1TuMf76+Pr5+Xh/E5SV+DmelBIJVdz7t8+H/qW+P1+e2xZeXzyePc/k9LXUGdCCEvr5EQCpw1gT
Knh+Old8fZb98vn14Pvaj/e9H+s/Hetzx3XZY33rsezovdNRiL8ff357V6NRjT++fePsz2/fkfQu
FAWmC7dzvH6+vqWXEYTULBnxlvD8n/Fy67HrKKLwe37FeRw/nKHvl0c7CeBckT0RQoAiFIwIiJcE
ib/Pt6qrZ+8zHtmOFNdxudfu7uqqVase/vPZ3bcvHv5lODog6zUmXt26N0tDREP1Sa4K9fIRJdBc
e821FVKWNpmlVlqVroIXhXm9MVYfJWTbyax7pf7DpPcJF5UCwn2xcQrxfZGCuLp1b5ZOzHPtVyIb
C/d24+h+QUp8Gk7WvQy1lHBd+xGpZrjLIy4Jl+c6p6x7M62ydqS+cF3ZL9znG5dNA1YudHXr3ky3
jwhycFE9Pt7G0rbrHpbuYWG3JPXSuqH4xLrdDxulBCFbkqEw7ss0oMq8ZKjWoKZzTMZULKvI+urW
vZm5BhnXDDdrX3f7cuO6dqMrLJyse3NRCLtwUFrp625/3LiqN2DStbcz695cuqachest1ZuYjKJc
qWpgV7fuzQpGHdUEaeht5eWfhKOILMrUWjB2WHa7eRF6SZWUrZpw1qt/58ik56SxYCURzW53aSjF
lvQSnCL7nl86Mmdtck9DNHFpdruJhzJtaV/EazuioyUj2NunvDJ0zVhyUqY0Z1Aamto4KtYWWKaE
pBDpT/eRBOixHA2VR8lHRG2FZUrWdODGvTAO2YoCMZw/4JsNa+vp2gziCTPbXSl3dQBgkSZvuK83
rqwyYBpRBpjZ7krHGVZFaKCQ6m00U9S0Q3dE6m7j7koHy3IIyTBowIcNDNlezm6+jburWnm35O66
az0KXm8sBQeyVvVKN+6mlBBXvRoyNi/5HZ1Uso0dQ1J+G3dXCirNWCxp4hj9htSkKhWe2Cw8Mu7l
BUnTWdaOw9P0K8fZnAP9a7p1496I7O4pN9sPcso3BVzJXuG6tQkz7o2aq7K9IweuJd0Qho1BAJoR
gBn3RiRMT2OVU89t3tBTLXPhQr+4cW+k8PvICxdDbbf7VUubAc1e3LjXhF0VYVVNi6nfkDbUsnDF
7ifj3ghPlFX2BUKYC/fNxq1+OZT/btyrWSHRXYxoZi4HW2j8NBFEPdCGrRbJi58u/uN/qKigiVOt
2n/GpgKP81KpUpjIquzPd5//85eff/3vX1JKL1C5d7+++OvDV3yfM1sNXB7+zqI//Pzupxf1cvdu
/TPhS2KaIWbxFfrnv/3y7xcc7O7dL+99T3L+6fcQdHfv1r/faIr4Y1iiItiVdB0C3/Vgmp2Q4mbc
V/T4o6AWhibassL0O6sP1INeoTd1YLfLWYxHKQn+hxNmPdEiX1ctkCLdULLLWaj6qodHcTBkrRg6
9d/3mCRD+hR/u3VvqdI9vGyeettTIWrwUAuiciW23bq38GR1EOoSRFyugF47rqgdcBnpJrfuFU6T
SAmoE5H5wRjkre42Ulgo2eUsTV3XNrOGnE4MRf9rCzbKgg1Ro3lLo+u2INyAsfJRTCxIwe5WYjSY
rHtLo3lG/o5PnnGiUilS3a2nYtuZdW9h9OtINR6Ol0zpTPpaUZ/F8eC9afZALoyqH/McS1aUhauO
qxf3MpjA5JIZJAqsM08925TzczBQUJpG2TxxpJbOSWmt6BkY3tKR4zQMSxSC0s/RZIVHpTmuXdxL
cqkaNOqSaXHU22gmj0p3XL+4tyiInE6Z0kdfCfb9Iywt2HDYuLi3qNREESVIQ52pyVY8CwNVqB60
tZ58RH/yy0bFsWDTYfPiXuGGlBd6Hi7L6TYoaqpSSwu2Qomv8M5DfFei2mBqR0iOsYX6kmi/KuOH
NRYZ90b1TxF40nVHWNX+ahFw09QFma26MsR49jvDvjMTrRzhwElmPqL8kf3F//xIbSJDQjnjuo1L
doKv/UR03uV4658efS957V2jdF/yhWMk/c1hbZr3abAMQ2COUKIb96YmTdNUCdCLMf/OadoamWvD
Y6zCmXFvQrtWqbpMKaUcTgKmoFEltqoGATrTMu5NTcxM28wdtRbzSfOWVRvgms7hxr2KVpdez11h
mke2FKRsteuRxGiyZdybetLpuB77cu613e+Fo/umnIVDDOmYZtybICT4iO1gtExcDtGbF/Vov772
k3FvIhqwNWGhObToIvRbP6dKWDgCeXHjXkThfQgUQUZN9D3KXRxHSxIsLlhcMJxCjcG2WWKk+yjn
jxChfAsmYVh/ug+aRyokzUpTkiYdjQu+iEbu8L/RkVn3cq37Jm7mtclL78lvH3HlWRzbakydZHYO
GgRcKT14Oredq5fHD9VnP8Slk3JXrB2Vhd7MXn3CAbrGHRo84sb79MunqO6ofqAGKQFppyTde4rt
hzfLXCrxpAyz98NnLNd36h3rsi+f8M2rp9X+CeeDSJhTSbXCwyZPtU94jjxVgcC6hH45Mu3Drw+M
QSJb1uTkrfa9eLx/zCLdA2NYjrpCXdkmZVfFj4mHEc6sezP8Sjcp9mi0m5MCZEVv6tHisesy7stM
HbmgUfVqVZPWoyrPyh1DSWBe3bo3F9Rxm9leLXj5vXZYheZYXqMFxax7BZudvybJiHTqYVkzgVom
L2O9z6x7UX3SqZyaoYwZt9zg7Gphricwu5x6Z2QEX7GRLMWjc2SNdjpkaMFCYta9euhSKPPME8bS
2pGSrKgaRSiPYGLOrHtzZfCoRRtnMjPlI1NYMUyUheTHTHbMusgI2ZIk5nTg6vu9Wbim0kCrMUOJ
nMy6VwkSQ9J+A1KdN5Nt6NJFlFbRBfcP9+eYKCUJJnJ0+DP4iBqKxgPWVxt+/If7MyoiNrpRmYpZ
nwc36E7ZgF2h2T+WOyfNZISGueF+awh7P7vSOunQ7Lh/uJ8oamoiBOhqHPPgQlZ08l6ACW1c9w/3
KzEnYb5UyG+Gs5JnhfIDQIt5Rcd+uJ9iRWhMWlykVd8wmSQMzZWo8d/l6ta9Sk5mTFoch+69zNOA
Q9oWExGjdXZ0u92ROaxnVRctY5Q5jypkSUC3cTZ6f1IKmN3uyNxB2yUHU1kv9fiU3GqMqEhCRUuW
yG53lJyqEjJJnd7p8DtH9jiF7HUJIbPbHaVgpNB0YRKhnZSoGpRJuJDWjGp2uyMSkuGqW0WO7AL9
t45Ef0jZJ4nEq9vtjmQq5ViNsGI/8Q0rcrJHKKkZ0Ox2U9DcV9RDMbc6402AopQDsY99jUqy281V
NRk2K2caQD8ehXePpIW6JIr+6ta9KUA/xXD6h3wicCQZeuUiQatcd+vexMYqlUoWhXZk66R0DQRh
NoHMujdRyWV6t6BZ5CNXeV5dp5MfQvGnexINojdxfh0Cn2ljZE0enCSoU27r/iQezdYs1AprPcQh
sRuSTwpeCFaVZt2fFHxNeCICuts43k+Zj6YxpGTxtu5PtMM0NdOprQWX/98sZJPANWQP/bKt+9lO
KiYa29U62g2SscKQKdo1ZdybjE05auDafZ6UcxOlLVJMebGkWfenCqsysoLUaFBP/M+KVNYlUxuW
nWbdnxCx9H7iNIeU4jwzDtJzXTKLo7Z1f6pq9rrtTLTMWG4eUzKfEtVbu1lOKkOhAWV3DKc+LPrN
e2B6ePqdeHHj30FzMHQo5ytk4vX88ilqgTamqDNwUEY5JqScD0b/0E60xpZjteqCENqRQBro5j7x
9x+7OdUFVRLpYPE6sZ7k5v7MxT+cHkPx5mMHhIjTFGtQzsPHQnuH3zzEH8MFFvjHZyBE0eRlDdbO
zbo3N/ErHU6KOBbvrSbgIqUdNHIx+xiTm3VvbjZmCAdPBefGHxaOdhTpOlOMf3XrXp0YHTHANamD
cWJG69FST5pn3S6n5jvkusnb/zNeblmSHEUQ3UptoJp4Pz5BGoSOQOKIAY72vxGueVh2Zc8Ihp/2
Ga+0jMgIdzPz6/gO9SPPVQInI/J0PMk6GGYHDClvi1O6DTQFwzZCF/NeAVN0tg5pFr3f5Nivcc3W
G1LghRptm3ARnRWO0VU4jopfPljviVQ3XV3ocERnNfMm6VSDuedaNwHnzUsbgZRwMU9HZytjJWoB
Dns0U8uvIbZIS7Zwe8VRRnS2Iocp62dYsa067pNWKnqh3ECOc1F0tjKQloHIaVIMGy/cd7653XQN
WJ84z4jOIrhnkEVA4Jt5yOKng5tt6Ty3LMHT0dm6KJCtCQ/a6PtDoXS68hRmcWGWh7N1SauiwHhR
XeXmMBDzJVOTlrbp6GxdTJ1Lu6n8sGe9F1nu6oPM54cXUjxJiJhD0R0x543tjzND7DIDxq0FTNFZ
4fpiEVU0Jne8vq4wtMRhjo3Vejo6q5kECt9nYOte79/vuHJw1bj6cFZMJvpTbc50E8JvrAbByha0
Jr65i9k3VkMoNk3fWti9/sJBw/lxyO21/nlN82vaeU0MGJw0N4nEfZDE+D3/7uIapDb9q5d22dZy
698/fP6cDydiurtUnKGGEe/h4GxFIwakyBvGW93uyL+d7S/8xPP2ARKC6S+6vnBcT1yJWr/i+MeN
4XEnMgYn8715TbVIY5cz8kV0VsQEcyIns8gkj5vl54lh3DQuCFHZuPyFpy546YsQP12wtgPm1c5i
bcfVQ2/UxJInsmr/60LVdVDNsPZwtjVZZvZW1P8Xrf1y4Ypx3mQ+mxTFc30jT3kLTMdq696/PJEP
bhm3Hs4yjtDP4Uk6vJ/3B5FY3KaeLwdWHs6ptCTkmHZUrI+Xt4wH6gH5THwoZBu+d2h6UalgjG7G
IJ44sGsxrwaqnTmWlZC1WV4KoQeSt1gNqw9nVchNn1pljWfaHy8OdxrP+wrKuYLUonz7kKTlSmW3
WyfEE+V3cdRJR5Ey28b6aEirH/Y59ykU+UNHZ5ts4VDnZuxIublCKWWS4tWsMcvR2YbBr/KFHTeZ
rmnit4Nb85TUDOd8orOi3NQZZfquatNXgSEkbejUp0z/09HZJiuIVACT8NtN/NO4tUTtQ9bo6ehs
2AE4CdyQU9ivwpQCafrjtHc4tYjOStZX0S5pOnXju8HigRgWZcd3wBSdVT3jLpAr3Hndpr+HcZr0
cHBrxzYjOquKJrbAzZbnqw/k/ML48bqAKZ6kSqyKNDuNMNK8mSVKYGyRLYYjzETEK1tkSqAmrRYq
fzuUKQXg9TU4OqKTha3JU4zEGV97/HRQm8sSIXddnaOzkvSNiOL+z528ix/OQppPHQz1j6OzKpSF
3wSHN2D79xEJeUKOEfMRchDRWWlz1nwxEoW9+s0SoG+YDgp6dcz409HZ1kTLmmBjIB3jdZiaQ1MI
XS1LuhfB2VbX2x5QJp+MIK32KhV0Z6ewjiVq8QRntU/WpIFm5/LszMwPpaW4NaZYOd4IzgqHgeQy
0ZE9x03eOYgKP3EgSQfyHiKrDlqMfg8OCZ2f697o4XH6xmM8HSOn7sHtsseBLvR8c538XqFWDqF1
jVQnOqvuYd6YgePublykw8NK6fDqCJyis61rZOUFwu2rxD5fOJ3dkCY+HU8ynEbFVenLajanPC4U
3Zjk8gK158O5UIPd5jkP3eR7neiJrD3OfE4korPiZ2j+rLam7/saSrF5atK6i1o9grMx9WmZjjbP
7DP5+SvcfDi842AgPC64rq8eL8ZM6scvLcn7YPpn25j2uM27B/L8L87np29/BazdmZsYAt+Y9Mbr
qGWPyvWif/jN67KNn099SryK6PjpqBQDKsWGREDwVJkV9pMRaNoBFYPKw9m8Y5aiWjrKNe6OT0/E
ERb48eBqfzib+YaddBMMf6m2j7BWA8YnPx2dzSjIYBij8VSlt17QA+vAkldLZ7UlWNACXzc12tbb
vaszcxDX2Aen6CyfiG0YOXglCOZd8ej7PkVctdfYZkRnCzTL4MB6jIxNFvs2pFDw8gGhAk9HZxF1
DXr0OrNYmd6nx4bwE/gSzS5PR2dL4v9yVdCGCKa+SoLZlUIHNzRsPR2dRVTFay0MRN39g1/ByOvW
V+pRKhGd5VB5T5qh6Gvkjzwmz9vfeuK8n47OZj6Lx2n8Kakvx0H8/eBymRC49hdDX0RnsxwtdQBO
A4YdhO99p9DwJcvwdHRWVZaavDj31y7H8uvBwQOhj+3sM6KzGSfcizzBwlid1X46KE5dt0cNhwGP
6Cx9wClR4w3jjm+6uUaqANMkHE4qcIrOqjrbxngwzb7tPMqLzahfjU205D5TSURnuTkNSJwux9NT
+dCzWd9PNS93w4puiCwNKFcsHOai2SD96qquRd9XxyGIiM7SgfAN3YByve1tQ2bcHNHrKFysF9FZ
VWeQRaedZMzeL6+gc0vLUSSnqBWdVXFuXXpPuh2b8O/cDE2niUQFamiPSpWECSsVYcZAyCK/n0gT
LcuSpiyubccAk10a8wpa2ZNgspz9S1w5uGncOjjqslKXjFoPigXWbONFY/97PYx76fj1XqgdtPOF
o395zSHsP357A030q+8tm2PwB//85Qb6VxvAVIwib11LaMk7r0mc9iUh/8fJdbkHuQWs4pwm8r9+
ufHx1cZR/txkf2Wlcr71yjfWgxLUbBK/ldbNpAcufzyo/VpPRCV/0rSwh9zPFxNIaSiy/og/zuSV
31ZVvReZ9lrv7DFSFGzKSW0W4STzYodLZrZksfq4dyVdemDqlejkyOSlzmazmYnl2twPB1L3OJ1f
tmg8grN5LVU7MA1Ys95XwnWbMII9Hs6ISREzmI0GGcXnfinhPPretoQtwklm5IFBipOglcPQ3k4P
n34YpgRK4SQz9DLxBKAoslY+8CGav4Ng8tBnRXBW7ItAwKPwRVZzv9+xmCgdHOPNw8FZ8W+RVyDS
zLdNsq08wkTUHt48orOaMntY2Mmyvq/vDSslTESpMVJFdBbDm+WtmoxPNmX8YlgN56GR1jFy1CD+
nVoeWVPDfQgrMuhVvZxjmFJ0Fs+6k1gep1RGb3fPWhodx+OrxuwW0Vksa1ds/GPUdfb34wVboQbz
oOYBaV7bb2klmhbv3/Sx97V6XFFcyNPR2amO2TpK6OM6wh8MGyW22NTMjs4iyqlpLNIURTF+mC5H
CGuuZ7isx6KRm0wKlcmpsegY7hWPlmX2GEnzOihFZzFiSVapTRXXnh8qeOxTwj2aOYKzLSZM3tJx
gmXfSlHntg6sRSlGcJY5tssZDIqrDlv0Hw1b+6BSlIXCScJMMXgxxUmE8qsQVUTdZjgaOoKzPN2h
RWB4qpzbvaNLycfnlxqnruCsyn7LUdahf3w0/PV4zKK6dnC2Ue2N3oIO32qqZ5O/GdZWWEwqPjap
4GwXF0L/I3TK1WgqKN3OO9UDqwFTliZrWa1a1tv9qvl5mhbxbQ8HZ5GIsrWDAvmn+wDLHKXhQW52
1ZjuFJzNsBTnibQsDb4mub9YlMNdYs9GlEgEZ4XbS8MozI+/avfhkCqN295bfKO/ziEYcsA4Xgqa
3jkl8idPcSLz53yTNT9/nRNqsTPNMf2iEA96OM98QHM/HJzNSaqYVoxNWKPy2uIT46JvDSDR4UoH
supQYJ/W840ReKQwvBwkdeVwpbXVLfHAlsh+7teVP+Xmi9dMB5kCGen4yClv0BfFlm4azyPI4zon
qpo/4UoLOVYTUnPCuql80f8D2EQHDs5mGVP651HXhmVGvuMgi4Mr/2G8XHbjOo4wvNdTnKW0INP3
y9JKBMeJLBkybS+cIDDsBAgCOEiQ90e+v7rOTA9Nk95McYpTp/t0V/2Xqqu34Fm7xCK0GFIIYRui
pN5aEnp03b0Fz0b5vKqhQmL0ktv1VOUgc12G0jjKgmej/Jo5gM6ZxTJv6rAOVqcx9eBZZP99ETdk
kDaHEXc8CmkReF4YkRdGWDZKRUdRjIC9ugLyCQx2+aLueKxPz8UYNRAMMdQTat5nPfSyZl3N68Gz
MSaZPpXh/njDq94XlNeFmn2RlYJngTzEu1QRtFqLs8/HE9oXsC+6V7BcjHROQp1mOHkON4bfnFib
F9RmK1JYyRjpDiF0Fi5Vx8xPJ/gtZEmwzuHBs5TwXQBVxj2teUM+qae2gKwf69NzMek8tRoIH5oD
u59jDt1Wg23MHnYjdMuqrleaDRV9f3KPbzIvzCzLUypYLiJw0UAsjRrvvY4r9XAnc/UH5L7mJtjc
KFuaFBjnWSWvU9omlU5f71WiTU3U0CglPTKT3CAWAKgZ+6zRDqv31w4teJbOMqNXYSDec+w3FkWH
Ovu2TK+CZxGSOBpWw/H06KLwvLK+zCrQEQ8PnjV10Us6fUbar6w4GcRo5tWCZ5e8oKnlh+j/ujdj
nSUt09DS4cGz1CBi+S5DBqRtRi5r38n8Ccr28ODZMhAoQVgJQ9ZbiQ0nFZUNyGV9eg5CvpdnlVwO
20zLMuGoKOmc3eHBs+AHJwJ4ybP2VDZs/d1D/Fs4AJV/vBIgG5IXCXAPK5knGqB1TlqckubWLPyg
JoPxMaIR67CusWzGRszIDpp4oc5tYSkXeRbGCw90ePBsnnJH6iPqcnNccHnZB+NIXa/kPXg2zwn9
rOVMZ6nsy1VWM8N7h7jLTLcHzxZhemssD5nwnLXcZ6cwdamNZTg8eLYEbVN9G+Bm+ZLL61UNisp6
sQ6zsJJFGNs4C4CP181zryomHwpUxWl48CxqSqvzfep44yZyyjp1bj9gFQ8PnpUzrR0CoFs1WFei
42sP1p4ta85W8CxL32vUdfXFce+71Z1NvKJhCHb0FjxbJNxQHigq7qS4zPkLtusyt9Mhc7nbPg/P
ws6CWpVKRIe2I9JMYTFyN+ltwbMlsRJdRh3c3sfWLFzzWJK9RunlFTyLq4Whbat6xXyDgDEv5Gy9
qc6CZ4vGtWmfmCAkeNmn6SFehslWlmZjbjx4tki3Cx8rpDKS0+w7HwthMe1NT0nfWvBsAdB6msnq
6NV043f7sp9pmClRWMkiDoIiqMI3iGYuV1kZLjUAihRzd3jwbKkM88JROkkS6zIV5T5L9t5JV/I8
D54tEvGxSswnLXxDYm0RJkxyeFjJIjIX4NQ8rpu80Ni0S1xV+vRcqfM+6seMMVeY6n71sS0D1dq6
wrauUFnV4SgF2VnCdbMnURxgNqMGNbeFlUQlMnfiMTmhutMferkzWUIPKUCPni1sbupk1GgopNVo
Xzls96FrrnaeHj1bxEOZXauxS3E5cE6urBn7Cs1A1KJnC0qgSaJWcD8z9dd96mYgRCa7T9unRc8W
3VfnD7khJmteG6Wok9TGU4N359Gz6DZ4e2Qb3IyIvxJnWUZTdkvt6dGzRXLAHCZYEVrbOoVfpCrr
1MY0R2PRs8g3CHhYWe07fhbJDpXVKuHv0bPqy9oEaUNz6Nfg+JnRJuI8+ds7j56lt+/V/TApuOND
d3gZLEVZnosCLXq24IDotWF1Zfj4OFmDX03GcHTDCIueLU24KzlBHce7kUoSmcY1CabnmuSc5aJa
Mgrk4TJ0arqR+22BZwnJBkjBs/ABIIzPrKK+FMve08yniZ6sU/Pg2SitE8G+AomlXG/UC7o7LnvR
TQoqeJYt3tfA5JUpGzTGFVQkZxc5oLz1ehY8GzOvNcSek4XL5rr0vOSCOqXDg2cjaBIkKcsYzNLY
YEWEtV4vBtN0FjwbQdoyOBYuDgxzJfHp1HTFjhPakxSw4NnICPWRTdulkMp1YqXfNALVuX8Fz8J6
oJ9JXrjsPBVn25nqqotJWsCCZ6P4owgqMHkt/oJtYVcrHV39tIJncaAcqFAbcV5mvGnPkMuqy8P0
p4JnY0W9JMnlplfveR+HoAeqLphsseDZyNAOdXNpRZot7esBytW0K8d9ePBsrFV6ZM0Fndt2CTm5
ZIHLtGFX8ByNjFbCDCRERcZUWNVbVXFQ6JRwPPzkfQdKDP/+4N+h2JV493id6AvFy0pZ4CSLhJyA
mm4056/vDwUAgaiK8RFLX8aAx1Vf/cP63oUtljhWIqVL5uvzDeL+CqwSu0Q1cqcYzCt6FgOHkKF7
UlYLtHidJa3Vzkd/9Ew6t/PJt5fOX3y3CDOkema+8A2W80R/f77S9MQf/anx/MWvvNP+CtlfIV9e
AWlS4DUsAk21627GJ5g0DFVE7PHMIk6rbEGCyXPJ4zrV9ou66orXlePMckl4BhqwVYeCbx4v9qiI
LEgHp3HXTZi5ebXn14L0K4CVmmjLOfFyy+22L59bnqNBjuldyeS+3vX9y+uDC1HmIjXU4nAR8N43
IFx/dG35eNSJl3t8cUhhSJAPtA1tuc19SG+67vkRZKeho6KRgjC8C/mPL63e0+LZiItLsW2qRU0/
zrf48wka54bev7whdFAB3WOYcJULlM9e2s8MTJIoOXKKyS/sCgFrcaOudw+v3j48/ywWHoxyxGsy
IHVvvmc2noNQHrYGqKHLuYF7QCZcBv+ld8m8eJFUihGdUVzDfPvy+sA2nLHqWhqbV6XVOmcgLdmO
f726CwY7Dz8e3P1s+lc4/0xBOj3y9tbCi2q+f/3232/68fp/P/z8zx+Pz3/47xtsYzxe//T3n9/8
9eFPr4I9ge3w8KDnItWzZMEYwVSCxZXMnYketQEMaoyQr/jzC/KwivjkcyIPggtlW4QwrYd0vXP7
xdPrawOQZM7VQKZPB5cL+NYbJH1hB7KiuSwySPvs2C/yk3WZui46B16QLjW5/vvwG9YbSxYIZ1pO
49phzx745Gq5WcRHrN6Wn37DJjV/iMiEiMBYjt1U1hgEerWYdlTwHCJedq8d7BdG3xXHut277Xqt
Jj3xHDY9QQEpnpzkUt0WfbhU5Seq2DO6OA2AOHO1jEa9Xu2za3EdQvtsOrlvbPPsm045Gq3FvObr
1T9TU4IMA2iJp2II2iOYSjf88OxzJLXBtWxcXuP1Tp85nYK7SSJ8nBnsGjY9z3ch3h2Ih6AS9K3o
+Qi0TMQ26DCBd1c97hob9LEqK6rijJ6PER+GPaKSsQ+h7Ta1pnNNutKDZ6PAocvzTKn9Xq7CoXDa
ateoRg1WaNHzSB0ATL5AFnCEftWU5mXzqmzZ3tKi5yMitNHyR2TO0kmpX61K9jZX5QBLz+j5mGVD
ZWE6Xe/O5QsvzKVbYQkM0xk9LweZpedjk+HNm5ykQcpYmy252WYtej5m3nfIiyDHYpvrYD93KyHd
aZUtj+OMno+IJPh7uYoizN9c65zV19SjV/BsFMjJruFh8Qduej56XRDpU1DTOh6Lnpex44CzLd1H
2toeD1fCOtgqJD2j56OEWNamgYEkNLsgHtg9ile2aCdr0fO2yRlU2eikWnYT2vTWVjnDWlPR8/KF
lQ4iz4RnR2cfE0SG1oRAwAsPns0IZOwBXhEKba1UZ843bJ+F6TOoX3//wT6/tM+P/l99vrPPwz6/
fqOWOrgW8auIvdqyVW+0wkpmdluQmgf8wx/90aprDehi3K5+rsKxTq3yeBfrc60ux5PUPiPQRXce
zyzyM4Uo7IU/0uqK75ma61POXQBTuB79/eHp943nimi0//yf/GrZreO4gvv5irskF5fu9wMwBBh2
5EU2MUggCy8C4ZqKBFOSI1ER8vepqtM9d4aUaCtZeiFxzp2e7tPnUVVnAatDwx86r4vbJarcQ3GB
FXR4f7v8/fCWwuOKcMH2oy4iwPy6/ItKR3qHOFsrvstQHZUseHojtfJmOfqmYZZMUVDzsWElkgk3
ENz/LEfUakz+ANZEKu8WCEtOqhlkikuuNvo2Yz67W2IAXfZDdZwcaMNhFEdGVjJJ9Kqhh7gIw9u/
l1fLy+WnVTfVvdOQFYlYCIjnQz877VCk7AIEQWTmNJ9BdY7n04KSLW1Y0KGuji/s2WGFPR35czzY
8uN2p+Pcyg4ZpptfOG1C788eEzlDQwYywlcbKOZ3PS5f9JhEvLoMY/qMx6O9eOR0edrpsHF6hHwX
cF+gCAvinDO0dED6Nu5jxCMP4U/Ajqj+DhDe/zktR3ZYmPbdcgS0ZtT7XAfCra2uew2TPs1nwFvp
+tJsSJ+5iU/jaJ0xLJ6pvYeNL83DYTvu4Ma2p1FvHAAQUHQui84f/grZ0UDznw5/rmjwNneIyTVi
8hPHwYeB+XXR8DMGIz5RyMQAekC3c37pA2c/fjhcX2oYun9xGQmm96/f2VTkbS/iGlQae/ybG/8P
hvjm5UJWgmAAHxZKvp8vbl7dHn58fwlIv3jx8v4Sf97N4QrAD+L7AYuuL4948erdb7+9fvvPw6PX
39++vcds5g4XtxNHfw8hofLQIQgxSATKLW6yTZGDqQO9FNDRdwsUfQWCel6mGAJ6ip96BXRVPL+M
aQEyrhXiK3g5Y1TdHAPEtA6OnpmD3muUheA3KOU7ZpY6qF1B2W1PefJansDvwSwJY2wkUa7n4ZpE
OU8CI5Af0QMQfeSDrhOOnZOLxHPr64nnvVGTIDpUAuE5xbDduniTQYDu/dZEx+3WreXPbN05qiWw
nSeelj1bkfQZlrE3MbezfRAe3QNMFpGIjLg1LYh4Ur5C8OMLugFpnYNWgOIKtSRCHizUWAu2xQoO
FVyB40CClDa2B7NFiqIYtZrgkHekXpMNyKBTCI3XDvDX84eAZg/1fOU/Su+PwDo1SEKKc9+j8OOr
0alA78cNOqFCXFnh6liAEth+7jVModN4xt0UvmFCQnkutG1YVxxr7JRhnfHJ7DM+me3GJs72/iq8
/nME5A9A9jc3N97A9SF4pwhK84XTJObLHoZIvrn0Hlj5/rICc1+/JZALxtOTIE6lmHOjlmtgFYD3
xXfv7z9oKMElQJ9EZBe64frfXp/uPwKUsfXtq3cfP9yu2+69B1Y4zn+f1NFgXUAFHeUeP5qLb385
fGc7nV78cjvhH19grxo2p15crxQBpzCN1LLzCTxBgiFXiLpux1ZWUIjk92HyFN2iG6fDePiEmMZK
3yX2sd23zqXmXC7PtBvMHPEvOef4Nz5r+M3/5fkzQCVe+vQMYPOtrUg/4F/Fv+djdefvz+gOUtZH
FsdjBFhkzHMQxhE4lTRHbo8Hjj1xPFGNr/mzn6+f9sEIdPDZ59USqgGCHWoJCB2K81vMRj/WoMKd
z4DB2NsE0r754fqz/b5lUCiGXFHMDjXs+15jIx6tjl02k4QoG8CdOOe1WLffeM6L5koGK5XzD9fn
DqsAZyK+vEIKtl3mVBVWEft+C+j15NG3qaOrS7ZEXTx/vRbcRjRtu+1rBr9Rq1vOBwFypMvMdE2b
uQlVTL4CIOJKGOdY1SVZTxRaFCTLNEFZrRh9FygA2BEZ4R5BqBhJaNjB52lhQgEGp2kOxItX1FPD
4J+kAUUmtsbU6QEXaZAcMO7KJRF6xCXMaU5qZtNzqWWosbJ6nkGzeeM6xc0AU8DdAxO8X0XziGxS
drVtz8xxNx2l3/ksT7HALJRGUAgCRMgw8N4RyYeJqAEfPUBxury7z6OZMaObPEqDjVOorDeNg2Oq
Qhy7uR851MGuimTNSkBybbV4f+bhbGcIKX6Z9Eee4Edg0LBODHCFkJ9vTUsyOPQRf1NOomI0gOiv
wds3zFLT7UNLViTQz7SLbdKLtuxNPNBDmBYOhCKzWtBbORaq1xNKQT4xbJ63xVpOrghSlcTvzExj
nKR+u2OJOpZQtCdco6iycCeiSudnsdZhKDZe1al3pPPG6qRkjfij5NVifubKTXiluxlTrKma2hzi
jlaLiqjXGxosYEprs+Bx4vYVabBn/B+bWoUWg9+lEM1EJAKX9BlK+N76DPvpkVT2mQNDber2ym7e
drtvhFDgxuhadriyw4Y2w5qm+fnOE16FBUHuuConM2pboZMN0RKlvnHJ8NjGhoburI6d6TmFwhUT
0ajnzMx5+aQJF21tNVimMQHBLJSZAuQRLGzU+Tto63ORKXjDhGUAO6npHBhEtjFdzuQ+soMQPTCd
XaenvH3EYBLjedEDE2vC6FQ7YJjsHH8oWJyVaUjU1RoBJ0jayxyHxnt4HSghhwn0C4kOX0p02yf6
y3muD/JcH+S1PLL/1zyX/z/PvmI1kwtub069RfFuUQU7+grg6iTOyGghSttfQseplR4V2MAhxJU7
ltJW+6QzCPTrCqSgJdsAfzdmFQOsP4ADoIDOn4O7gXfnA8w+LWcX5orpInYAFz+8BMljUxG1IMI6
gIos7CsiZDFPFRQmJHNkGpCZxrPyHJyfr6I+YoYwok4LlUCRtUyb4kIFk1hFSYILn7ScpyVGyalu
3vpuFitzUiQzKb6KYnOAvDqzE4fNxsJsaiKEs4XiymNykk2+EpdUVoFrRuZ9GuYNB7D5jtfwYiAR
SM+iEjRrHDDc9wYOquI46kA564LRMlF6uLq7yCOSbyzkbtXqIkB5m6keihFtdtYfaTXQpK6KK1ge
w7ybJqJOeO/Ix9ROpOsmdqKGfbPagJfcV/HEasOHxYIrPeY5X5rhhZaMOqKGArEXTvNnuMrKJEU8
/WCcqb5KGwxMmdPZspEDoBlyq/Y6baJlF7U3qzBZnBkHPcumVlUkit1S4pti057pcs3TwjdG+jHM
Z7K8Kc1hmqo3+OBOUhXSFr2KJl3aC+kS6UJW1nJOfpe13LsJ6ZZUVcm3jVXjUFayGRqBcZAYSkFr
fFbdjAK0YsZtqwkcGYHsYwYVUNHCYWZHp0s9C2de3yRNQbBNQPLEKAHJg1OklUyTyWJiyygcs6tV
Yc/Wh6Z35atZ0jetTJP1az0RpVVULLkNV5sqzIuRnCmsoO03jlI6R9u/ItVvFmqdPk3INEOEqJZu
SUjQSzEJ1fQdexmH6qMW7YAYpqXb5VjXt0HCiNvktrFEqsu0ofNKsPqTp+Z3NVkbxrQRrEQrIQhn
2J+YzxbBdHpg9givYFdFhNC18cyY9TTf4BOxn9NAkYdazLq4LN5KtOtMkHqmI5h2pApQWSX1VvOS
klVYUB1z1bq63OeuLolGAdUz5tWgngg3skE12m3MyXU27R1TZ0UVAmVuLzJaV+KiJEMeBzRvhQJi
iya3UUGVGrr0+cz9zapdu+dSh4XnFGdV7CrG4NaNtt22cOxUJkhACYT0tKfIRJFiiCvscNZ0jj1D
lTQHSjGbb8WkXGlCwGgtTYkzxl3ltkyLSYoGsFHTBjnvaDJvGPxjCCWT6oB58SWvLb2bHc1pV6ct
nFHkcl0dBxjnvPG8qSBMoxX/yEaB1GQiTVNuNfo0YDVRqXrkszzVKlpx4lhwaRp4L5kyTBI9tR6L
b/i8u9BDngQo4EYZ2fKEkC3gotWctU8c3kdrJCkcFqyy4do0eH0/6ERm7nJQ5TpGXfaPn5bws1qp
OxPPQhc/xgEiZE6SLdTzNpIRZp0JiyBRaGo/GmRYLA0xuoFuD35a0lSUIfMtStRQ0eRXt9HVe1vZ
hRXeRQN0sZdX3kOPYon2X/KrZEeO44je+yv6ZHQb4CD35SpBF8sCZHMAQ5B8IJo0SXM4hGjRtP/e
773IrKWHJEjbN0IQp6KrKiozMuItEjLEFraqG4zMK+zI6DH36XsJBmUEBnrLLVQMYBlsRjmqhJ9W
i60jVz5YUhi+J3OaqwGQm7aX687jWoQR24hMUxE+0rj2unuZaguH0P0qvihA9MzAIJFMn9V/aPvg
kZCvZI18KYDivU+KG5+0mF6b6p1PWu5tjJJtsrYro9SujNG1cap7o1Q/aZTSf22U+geN0rYynWID
lfGNjJU3lQlSWQT8tLWzu9DZfrqE83LZ0Yubh67CIaSX/BZxfuLRvBoP2oNKZqR6s1nyuJmDffrB
drCLGMACn3HQYXvQ/RMH3f+fB933B13+94OOnzho1oNYU2Aeq4gkRGCF1fXtswOsIkRqwv3CcqFM
218CPBVjJ/jNENUBFe6A4brElwN/8VjF+gQ6qXjLAGDdxvzG5bD+UoFBxzVBBVjnzScsvhzWRYwn
lkUiAcjnehvkkE1TYGExGd83Dsa2J0JWT1QhYapt+t6puRjopMlo415UZSTj1gi90KOhoWKcvYnE
lPzG9bbcZmQuNNXNXd/tLjW0UaWdpZirTCup2aTDmUaTrjfPF2eE9hIYzpjUJVqpZfW9vc/AVqMe
GfdYGi8yEoGYJZnzaki8C+gTxHYoTPWm/6vR87LS3T6uqT5F6q2aTJlJXWxOqodkjJuN5GtaAkyp
q2KLlOoM72aIohMuNAiLLcK9tjjA10scpUyHiJLzBTpYbSXLMGotjAgiwM6uUMoF38w5mbDNVade
q9WnU2hAhpUmBl5sLwa4LIGWVXuZ8XS9aNuclgjnWgY9K6ZmNZcoada97IHP45prrrmOiMZXJUH5
xzVZ3hTnCFmRCa3MJFUhbdGrhgWT8GoHuoHYHYQy2e/1dDE1LcvLIW2bqMahsBSzLobGwazokNxZ
bTPaD+dte63+OFwvmy/PgPpn2EwLs8aWTbUc/c5omowM5myi/FNKqrn6YURJKt7axuI6LFtu0/TO
tVokgdPKDNm+5nSE17GpWaBnba3N7IQ4yZnCMmu5WSkVNClSBofCH2qnzAgnYOYpSkI1W2QvNhXS
rPmGk0y1J8urzpEss8jsqHWm7g7Lm2yPS+SErzOGzCvBmk/rtFWPRgrDc4zJr0ESMweNaMxrRCQd
3DtiZyzdnfletbSGOGtOJjozwjtZFqLapRS7tp1N40c+48wF0Gg6uR02OrmAPWXyn46EClhCu4qL
BWp+eNVoaF89fWw1jOei7ByoQ7vZnLyMLt0qHSbPU0/2oqB15ohR+JFH/uZ1uFxiNJ2N3pHJLd3P
gB8YYe3Knw1A9KB2Yh2xa5bLGGaggowbmQwznCJahdqzN6QhkAZVHkdWpQ/+tnlEn/jAE1ui5SaA
lsGhjsCxBQjwErU01osObRralouWH3pdwwd6DkTgE17wvZDO/D5lvko5M5Yl+lBCFpj5mqZqmy9u
8nlR9VzhjAYqsoc0TUGY66BitohYyGNo3Vyw6pI2iAhpU9CWFXKCpxca5tyOz2frFkIQ9E8N4o2m
KYHqCetu/nT45vbAYxQG8n+0/qtDxTkZytlVLRCE6I2cEloTHHz7+nD648s398fz7d+Jgg4gdHs5
jov3GrtUjKP78fbp4efTT0/Oj3Dz9Pb8CGN+enr+6+0fDksHRVvDK+yNeZQjGemjxTFHyHH69s3b
8UVq+rhL/92/zhjB0+XFk/vnz5T7u9vDr6xKpIsgcR0zSAUuBTXFSKHa6Lm/HO+1iGj13nERmDcD
qnPkuWHTS+WdvKZYz5mzKLt/L4cuxWYR27yON+ya1GFXj+xne1xaOo23RiAuxUdG6OYbxj+jgR4u
HU6soKWBweiCuGkaxyYSv5SozlMg7zCuczdnMMImxvHGjo6sInoV24w0QmCjGAPiFOPMNCKj5hCX
u8zllzct4Zp3+ZkfXBNuE8yFrnEsm5WMdTHf0Gj83vh97mqzYwuM0XNf71mZ9K8lAu7yQ1US3dQz
+aWw4EL+orOza6dDzX06PMp3oH4bns1FqYOaJbGlZhGFYBGDqc6IMwyzOUelKWETGJctYSIZIyji
1WhqnVqP7NGmDanGJsmkWqnGLSKcZMLBTXWYbEPiCVxkH2yzYjtfLTJSrrauWocKtY9XI+NetNfS
dAy1miRJw8GMpZB65GIFaMC9EXWVNplsi1lTUbyYOTbPqGpk2BOsadXMMKK4BVDGTRClrtc4OVNs
VUExwRYV9CFpJLXqjanImPSFbN2stVmkR1Xr5S6FLxOZDG2UiHUWF4oyqk16j2Ycta9FW1sLmaoC
qlK9464gn08X24wz6VO14DoUT9Mauq9j+dwOWCI3O6bAKJl+8VyaRTpwEf5yN/OVZuONo4yKgh/P
diVyVd0ltQXW4DkvUZaKWuNU1Te9ZTsJi9a5uqzkdE1FkVoL5cyFFhdlARX9fPrhnI+nJ29fndFl
p2fndDz9dhQJyDLuiejxr++evD1j2E5fyBOoNrEgpId4C1oFQvrkKfbqlilULw1j4DoopK//oDKJ
XTZjHGx2GsTxWMaec1lSjVBwNK5D1WTdLT9EtJXcnxJFVpcmUp8ZET+r/CPWYHORI3YziZvpL6tm
0X/fsyR44P0xHX84fo31cFJ5Lw6PZ7uubPygcRtxAEsBl8IZgKYoor79xh9/NzVNtslcOvX2xbPj
n8/o6Ccv785wFKd/nzEqJ3UvQPH01Hock+537/1yenxGe//27umzew7GOgvl6skxB/94iScvZ2yf
wS/nL5wL2/NN3c0EXMcNVXZqgKvs/KfkU97Ip7yTT1mSqfSNfkIwBZQR2pWCylsFlfcKKn9CQWH9
32/Xj80WBxrJ2Ego+w08Qge4Qhp//BkaHuRwk+lKEhuuuI0eSzdgwgZQIeP5DN7INAiOqT2owrNn
5VDvPqr2wIRE/oaxQ6n71izt5y1/dN4i1+U3A5eIruvEJaJuXZKNUBM3rj0ECSTT3fpDYZcfZyYU
kR8YH7JomTgLx8DlEbqZws3kE3+uXcNHcegrqswWiVgfR64iKsKSXXkDyaR4zJ3eEA37xTUJRIOw
qQlxgYpuPAh0qr6tySw0+WzXaO0gl7r8AIylYRyZOAmNotK+NMK1KhavZbHYzTRufuBy7XP3ZvMB
RiNRzBC1OCbUpkRTFz8OdUGYXKA0ZUmu1qasOENnnd6/fP365f1ze4oydPfMj+dO3H7z5m4i7Ee8
Z3RAq4o1Zt8pljcUCm1JUACW52wakBcEtaKKJJTCJKmXRsw3KclLOCs4NtYkiktTU6KjhhFtUt2A
KkpPgF9t9nykjgQINZ51xF9yCFQ7H88YK5x0F7MwdLzbAYeI8CplZZbDujsA5rLBcigGb5Ergdj0
ipEqHcMAP5zb7x9SanS9jvPSJcQy+gWfxB5uPL+tA/vpDBF5evPu/vkgSDf8a10Oi/w42M/04pdq
wcZu6g+loEPBwdWlQDYzzZdPV79pOW+mC/ojt/XBCM4Ifkk2Qk3XuOYUZB3+/CEb849MUGedZnN8
aYTrdFm8TpfFbqZx8wOfrwe/qqJ8PhTjW65VIXFxsa9lwUwU4WnwnJyAqQPcJDlIhVFSqGvICtQB
UHT4kn9+lCJb5dF4d3U2pdN6coQawXOjc6hyfDRcr2mInYcouskFhisJaAXhhB1BIK258H2MN/54
m8WEjUuKBv6JQZi1eFWfxR8N28crkfiUHL+Yu8AukPOYpAnasLNg0IPTQQ7LNPLywUo/i+4MHFsu
xNaxEYE3Wfdip4KLTWruSsfF6LmrfsyN8ImU+z5uccCZ8NLzk7s/2FlFE/Q8fyC8omvC+nzN2Fpb
ko1QfTyuG5Zf9abF3lvLj0Q+od+Qb3xohHRG+sCI1cZc54jdTONG/g+NdvbpAxLra6rJA7t3LSDg
E9BB6N3c/kN+tezGdVzBPb9ilhwDpPv9WBpKEAGCkSCiF0YMBBRNS0woStFQCfL3qarT9zUkFSrw
xsiGvOfentPd51FVJ6Lm8uCj7968ud4jehzg2u707eU+ctS6xzhHPXC9e7kvfPHh8+F65qElxICJ
FHyQU+BFXI8PTqG4HU9ngCUvNv1vrRojQhXwJUNjpZJXmExJkMnxCI83VveJEhed44g/OHWnZgho
chtc+nnVCkAJbawUOKM2gtgcL4hvZ9xUIExWZUlA9RbNURToGdmFYu+dLzLGRwoZJK1n3qgiROBv
blIlXThguiLp0pNJBjXyU8yMi+YA3wVJankzDKC2AUOQRk5iu9sAiXsCHe1FcMITr/u9+wrIgB4L
wPIMmEVBrNQ2Ul813aXKoDoJLOzkdX0CGS4BtRRSmLd8njhZlw7lHSIODcft8zHz4jrcqan9HBTf
9h97pOEgaXpBgehFWtPCgvDXODsbprpzPDOMpkWnF7gU4z08IY+JInLsNEy1J3cYtoWk5cl2kxs3
bfAoZrnHxsL/r6g8QK21oj7GL/zPaNnYK1XBGIBemVC+PUwohin2dMe3gq9Pn25+fjsmI3BsFb+H
obQ/fvh0f9i9uL7bJ2EeRHfmw/XXCe4nBqXQ2T84Tsa9S/1fpCU0S4WCWqRlkstlYT2vQjtzNkyl
cjwDHcQ+w6Qyc1xpfkAngWgy9hnmIizNXoSl2W5y48z9ZpJ9kLaMRLjAcREaDpORpe33e4i908vD
PSbSwyO8ggnMc4zNhGdi6kIBOEUjrA0meWTPWHHQvEstATzBqtjx9Ls//7DbX/yNAo74Knmniev0
xeX7N6oSfnbjAH8/EcNS3YE4EBtVzPf7jEPf3O2uLt9//Dyf+yGZpUwERrxxe1SLERYjyn+ZhfML
y5G/Gdp4QwecP12Fqm4IfEl5fXsGBktwKHVoFu57TrddXNspMmzRDM1LXAslUcJwCp3a6tpxMv0K
PvdkLIbZIVtnnEiMZ/jBVk2OjxpWc6+lQY+xYjdP/V4V9aBMvPjw/uPl4aBooy/6qiNf7utKaSy5
OE5wyqCuCjHvE/g+gd9VVD/c3fxTKub60+HmfkDB4f7zz+hwJO5+wMCc/N/hN58MPw43WHRlOHA9
J/Y4RXNaIRYIBJu0lpHWcepXmyETQgbVXEphUa2QwFMhUNA4QaOV9PNgZwnPunKg7RpatWTImeLb
WkjUoEGD0o9+i6YO1CykpZNYgKK6wnwHAYIFDoIW+wVOL0VjCzKKGUq4jYwBSikTKCz45KKNQ364
u9JYhZR701u2ve2+Hm2e6gEUEEcoIEAkI9YH6JkFnoadvR/9I5eRYcP0wrgs5PnFWcmSVMPVsIwF
7ZnCSp0wbABCpwwcfgiGjvxp+wzTsLP3yTbszJPpJi9uuN9g5xfID4AdGuo8J0Q1Ttr9DgB6ebi5
3G0b55HKXUNr4rCCskqe+m+FAQFFqlk3kTOY/KxekYTFtZqoJmsSAhCkYuMuo8t6pcKoGnYgh6VZ
uxR2p7YlshT5rTZSoVKD9Ek7d2a2VqToa67qrCr1jY04PGDOSfzMZWanJD1/ziRDP8dAwMP/FjQP
9FIlXbl1wKm1NzRr0aVw3hD0PZJPm2D5ljUbSbhVdycKAtQrv3dvuWwUPvicvX3uQwnrrAgH0RVx
CNJPyO03jww7rzbpwI2K6pyY0vLTTPfVCjslgAtaEJOCpfyrBUjEKmqmWYBE9sKyHjOSBMpwNkx1
0XieBMgwJwEy/EwCZOzzawiQp5uIoiJ31B6kD2owNuui13ug2Om/bu7efXhswuXUxwGRQQy9fEGJ
PBO2n6Z9iIXagBKps1bKcb4K+Bf/PA6O+FS26uaf5Utdai8sX8VQUAuVhdmXWUu2ADPcd04XNLfA
cTjB7RpExrTJMJUsOh+2ksUzDtsNL27yvsnWtxf+r7z7xS8PSR6/iwGRz6ACaUCl60/Q+WLpe3L6
9acVqQej9It9p7bce3z/9+2HseLim5PTl4JICI9NihPgIRFNUhug/AWtubDutxcX/omTQ56EFkEK
gQDRhuYdwmcB6/lgfzn96VTC5QU//fH7n/YLjpOZe18JkELdwwmqpCFA8iMCxGbM1B+ZMc0JfyUv
sa0vbP6cwG3jG1i5PL57GI6ngwDx43IIFoQf95CruP3d293rfZ7GLkqwa6gvP6u0Z09fj+j/eeuO
So02ADDEP+6Byuh31MXFEmLDZ8euhCbCU1sFGh5CDds4D/3+/OFwOxtsGz7TfYpgTAfaWzc81JXv
RriBlAI+W/9l30HsUTzK5pBXzmfzLEE/FT+7GabNhvYMYVWbWG68gCDopC/zA/ZImVBvuwzz6sT8
D1PdzgMO201O3OR+afd/nHCw6QWNFpMYEmsruhQ75LLWtUBnBQlN9ofXYff2sJG44MkAicqguZrq
unpxBnYrz1QxFZ2PAFaKXBL/1ckwMdxoCOR6sLVEqf2nuE3oRbOw2o3V9jj5MUs72Ho3ZC2wBGMj
joaYUVI5NAzSjGZFGyAe9dw76WFXx/N8qPEpsSnH/sOYT2/mfEPcoDFH8jYMXsC7+ZudAEaU1Ofh
qMzTfNQzlS+FVuzHVhXN3o6Vk7Uk9JlzyhfzSarJjVXQICa3pAdM77peaaZVJBXPW+2TRe7Cddv8
Nar6MXWk8Wz8ppqVdL5VBccji7NQWCzcIIlmk2YKFzRuRMuIs1x423B8xe8ZdCBqapagHsjJ6uQ+
xGkvR9Z0CDc/WXDX7NRZajhvYiuHDVqfczCCxnWKh08cx9xoeh6ppzoiJNPFaldktRyZ7NZuGpaL
j0x2QFxMxJq6F2lXrJM4UgU39/s6wzhhgMhKEBKdw9JyA0Stqp5RkswY9DdHh9lqpkOHjSKGHhg/
4u7R2758uDrZvl//5MjfZrPpCMtUujp64nyRf5NHh6rBePebOfmvxg9IWSNJp4qtSthe3DvuHZra
wZOwNF5Ozw2wpZt7IWckuu/Q0oBLQCBmPHsmdFZsYVYkO+AxcmmMTX8ZGrS0I4VUzIyFcyo8FjIA
ZhbUla+GwcALs4gJIaZhsWkCGSaNKEEeFaERnbw/AQ0iNpg9M9qYoIJW5DhEokngx7MuriAdBFyL
JsCC3FDN4IU7ttNCSxCH20ZcAuKSDIDIgctSi5x6G3iO6yoADGb3THLniACjkAkD8GkYvNtYBysK
nWD4XiYDMUkM5jAz/CqYkc+YXBGI1vXBOwu6DphFb7cytdR1xs6JdIhGscvUjMP48ZTZMBqVsRip
Vl0n646exAoQZuQrh01kMYq0u4IYcRlY+huZFLRVmJ+tciarNH0h+yB2jHoq3Dh6A0jAqONVMF8k
ygTZhFIkHeVwO79Aaoz5KkncQJnom2hE142HkiF2TxIWSn0pHBxik9E1HbLzCNosuW6w3XUEV8Sb
qxMZYzIRnoJ4HLEUW5/D4M0ail60Uq08qpSy4zk6suNnk8dEKFJeFngvOSE7Ztk5F7O9jtAAYCqg
EjSUVhBhp035h+rRAYvVMEfUPlkSSrnk+WukztYvm8id+WFhpmBXDZTYDbFuu+nibKW8OwoDrxHH
cXE6eCEL+/nmuSoyeOOrXbU4+3WOdtXi6zo2RSCArVlX8/eCojUzVepxa2AOH13Lqc9Z2wUpNPch
MneMFN9vj3ilUY5zEHNVwGY4dMcJVUQjmagKX71W9CrihxcCkN54y3PMViGNeuvIp2Lum/ozYf17
qto0m5JyvBmLloKuCCic/dKromH2YKpC6QlD5tm3XMvQMoxdQStIl0RWLdwWm3y4lVmKk6en8RU/
sSOkJIehaG3x3dYKNDPEpTzF1dk3FxM/hGKFGdkaqI0gsPSOQBKoyJsA1EkeI9gxJ/th4cfOwcWw
SUuTNzFVosFltJjEpk0440jLjV4Ihl2zJb/Jrb+Sf0bfbA87EQ6aPzFHqMTih3U7W10jAELeSU2M
8H+or7bVuI4s+t5fcR67IZLqfgHjB8kekxBDPOm3EIaOLDvCluxRbIaB+fhZa+2q0y05kLeBgUQ+
+/Sp26691wVp6QRxJ6rLkdzX5EJxH03802kvGtYHoGSO4zr2TGAEElmAc2VO0sVxXBA9FscxMkmy
xSI56zlLNs1cCnmx5wlNSWRazIDWwLXFjgCRwDl8lNYIVR7OrhjTV+NaUT7Riyf3Mzjh/2qZo2Fj
Oqsmy03aQZKXHzCZglRUSwtipOzFVxmnpUPLKig7R83GeMb6uarPq8ydc6JQJpoKwM/ApEicIfW+
Ex60lK0q44yuiceJIDd+xdxehRyi1L2z2qdYYHGx7uMAY7kAvBHzEmVED8iyHyCUq9GG/czb5xQ0
PlUo07M4CzhUkuFObHntUcCS9+MS+5hhpRh2OFZsZZJe+5MXGAIM0FUXbxDUuzfLkxTWKOAo8iNp
CB9eIIHdUz9K7FTRTKNDw6a74bqOg16MI0Y+yPYjYI1k8RQ/DdJhifiHZvELkVoIUyKLvWSzi9Vr
ShNSbrg976UMOGFrBIra4vo89QMjL/FL+d5Ha5427bcehZANcIS8gwo8FbyUyj5T/nAqq93Tv1Lv
6fguy03aCD2bPKrFFDJfJwOj4xxnx6m4yPxtHTEmmW2DSrmT0swzHDjnJV+8BBhBP5vK9tm6s6u9
QlCzphSV0iLSPJdiIr8oikG3G41zYtRZ5FDCOE6UEnSmErvTGUr30trV+j2OwFlpKEfkYmylmM05
5pPP1qmtjFBQ48eYGUwI8nOJCdS2OsrLhbkzblQhd/2R40RhdiAmRIJDZyUqSE8xD+INNeHMEpvE
/JslkXMUP1KsmZvLM/1cJ8yLeXRpVnUvX18t9ufi58+H++XZs4sfD/fvl+3N/dmry93F66vvXyyo
wOfPL1/gozeby/2GJ1MJ8iYKPdt+D3W87N9trDxQ6o08CccFNEIf7O82v2ydDzgGVIL9tyz/wf+H
h6/nh+vzrx9G/G6Hkcv2cL3L2MNvnz59OMfjuV+2n+4udiiBLXb38RbD/vhwez8GffnX7ZcvO2xn
e/Oww6G35xr+ZyN2v+5/2LzcjyP/7fb914cbHtrOGec5L376eLi+efvq4fD599vrBT/7RT/8c2NH
W5BCoEhaulc7NVhEFMtwtMdeLtQQuI5aIGw8tnj0roS+zL5KYktCX5wB8C8MBcawcuwyRsBBZDpI
+1fUA0y0CCIZfG6f2/OcySJbxEa41YUC6YCFvVA/RFQiQMoUMGoIk3oaXhWpJ8FatO5t/gpCQrJt
GyNYT2HhelSwgJE557NA4NryiGwTZxQEcdH+KAOYPdstNWP2UjSEiEcR9lMcG8HONaPfn4Csd7Rb
YKuKKwq+pVOQ5crRutN2SOcWpQksEDnnnudvoAsnlKs1zsiZCOUjtWMdhOqRiacxezmX0xdggGQs
30zaUrwmAwuLrgUEJhr1K/FAHB1AZk5CoQggTZYTKij0nkRzK259epqpHqmvUcJko3ZCRoQYXiug
T+lphbwnLcbkmAJ2eSZLkOVM4fVJLY9jyIIWollRm+DpC5Z2PokhmaIW9yyeIDZ2uisWyzdHoa6o
Xd3oWj09C2GePcFCi5ZNV9aITnZgsWLQt2CeY7i4H6t62YlH770Umo0Yz3O2EdpScwPWlE+KFXno
ZNj/j42/OYHJAmBBkTbcMExHgxzq36JkQ9WX8Nf3Uh8drz45Xv2f3wvOEzKarDnocEcNfLJvj16B
OjA1QudLWk/HgJbCrGelk/KVOrGiqItMThLd2zNhD4pwRCh96VRYH0h8zxddPgodjAVAudg9gKRJ
wQYqssi0rraMerePyERYGJGT/QlS2XbgKt5A31EF0V5WYo2nt8V9SRjLe3SSSyEAwR0Q7eWlKKsZ
M930kwokEcswEsoalR8NBSbykdchQIPsb4QyAEtX5GrRt6FbHDIpquasKAIwcRZZHIvoZXvta5xh
T7KMTwfazmhK9WPM+ZnkQk9AwQootcC3pi/XkIDJUFEtkq0yE/S5QaF3QiZXpGJlp84lP7upumal
yYhLJ9kTqehAqmbcRzprk56m+4xF5eLT+mz1NKMQeI/JtG3V5US5gFIFjARQ2gAotI6iuVtfwOul
ibCKq7ZORmoDkOVYHamIvi0PLiLv8wKtPUvQ0OTki/TcTa5XEkRg30Uh9jCIEUX4ZFPiz9xtU/Sw
d0aoWCiYTzPGVJnhTS1l1Akzjn23roWbfreYWAEU0hzzi26KmbHsqzvGci2cs1CQoI+m5gZ5jjfK
jvfqQdZWalZFZnQtlgYKGjA+KOcxa7j3gelswSo+THXRlE/UFhtlpoGN1pcnWWH2wdGFPAgFgnmp
LlECSkPTTdE2AJKkqvCma3DPFnpfR57qGtupUzz9AgCWi/IiS1SBj11hNMPkzdWehY5tRislyT0U
Ku/68Sa57Wq+B3cXW5OkwNG81VlMXttGZlUpUB+l6Q2khrM3ShKqpaWuuNj2TifFMlW1iVYGbt5R
t9KajJhSL0Qdjqeg5OPcVLWuWGFLdPEFiwMXZtfunbWBs2ssya6tJquC4JShrq/R8CQeijvBk8XM
mLf7X7+ApPNZcXHeymtUlxhMP0gp0XfyDIV1M45yek4xCyUkazaydVCRybCRyIQfs+VZqq0oB0ho
Mjb1gk1kkGKU4OX1rc8mvmsyUI0jRanZSt18q90+myUI4YTmFmpfen/83YrZeuvxridXBXX93QZF
WnMa4ccZohelnnkN4tLo5WiAQRkwE0CTEffDAvKCb05dgd6EeeQXBezonbiSPZM5Ev61iGXtSXbQ
y9QImCnHQd49klcEeihLT7tSmB1rUVSxD0ccI2UJPgCbqDLkSziEosFzM+nCVOKKrEG87ozczIRj
M6S43NdgVREWUnVkObXChjPB4ayjWLFmBCNrki0qk5SjVaYrtJ1FOoh3kE+i1mxkSVai+BF7svrk
bMEIcUQmamJcX2AjguCGG5b/yDRXFl1T/Kuzxq+Y39FnwUkOSEwEHSkOY5ou00d0Vi4BT6hnxkEo
Y05XKBWMaaLBfy+GlcBU9kmkdzAKAXcTEWJcQZse6izi5D4vK+fUUUB6gfeJIDXdCT3Q4xe2iRSb
3Ti5WijWurklrzDz0NFsE0I3C8vpUEn1S7lERPO0NUhEqAJXmicyviCIVlHCYJC4ayT9yo3rUy8x
R8NGqC+FrgIjDdc7wKcJLumwouo/B0nWFmQVk2RyiLz5KJGiwrRHK0KLUB5d5Rzj6NPTFn6qoAs+
R783bDF6FPkqoB3FEM0c1gyjhk//Ss27Wd1ektNGjGcpRT6dzYlE+qdznB2n4iLzt3WEJjm2TyGx
UqmGGRL41PjZ8cjSIaCEZMDVmgwYEYAZ7N08Ra8S3WKGIM3JMAapxNh12QJd6gUegXWA5fw4UZCA
zFXislgYEhPvSrLeDyNwVh58AlWydGKV20llTRyfVXAx5hESOEIbY2Yw4Ci0uYSAu87VUbAqNe2M
WXMGbdz3R05f8jwTR7Q+TktsaHFmQmTSSzgmip0iZhx55Bz0HJZmNi/l6rgCbqmWeTuPbs4K7+Xr
q8X+XPz8+XC/PHt28ePh/v2yvbk/e3W5u3h99f2LBfr2+fPLF/jozeZyv7nY+38gacv+3SYIqlkX
9uQjQEY2tyV6prrs7za/bK92bdke7n57uH37fgeK294s17dfdsCyZfvv5XoXHBfUP18edlhue7P7
df/D5uX+r/eW5960s72zjZEuybJqqvHsYyeNgMSK8DyPzY2NYU+Hu89f//huebnz2Mnhjy/L33eA
u+2nw9vvluNnV5c4/U//VQiKCwECDAArA0+pDQplbmRzdHJlYW0NZW5kb2JqDTMgMCBvYmoNPDwv
QUlTIGZhbHNlL0JNL05vcm1hbC9DQSAxLjAvT1AgZmFsc2UvT1BNIDAvU0EgdHJ1ZS9TTWFzay9O
b25lL1R5cGUvRXh0R1N0YXRlL2NhIDEuMC9vcCBmYWxzZT4+DWVuZG9iag00IDAgb2JqDTw8L09y
ZGVyaW5nKElkZW50aXR5KS9SZWdpc3RyeShBZG9iZSkvU3VwcGxlbWVudCAwPj4NZW5kb2JqDTUg
MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyND4+c3RyZWFtDQpIiZrAwMEAAoyt
Ug4MpAJGgAADAFLGAXoNCmVuZHN0cmVhbQ1lbmRvYmoNNiAwIG9iag08PC9GaWx0ZXIvRmxhdGVE
ZWNvZGUvTGVuZ3RoIDUxODcvTGVuZ3RoMSAxMDM2Mz4+c3RyZWFtDQpIiaxXW28bxxWe2SWpm3Wz
SOqyljzUipSqXVKKbN1sWaa5omiLbkNZdrprN/ZSpGS3sR3bsVPbTZP0mprtS5/62scGSIuhlAIt
kIe0D0GA/oO0fSgQIEB/QIDWTdXv7JK05FuRoiK055tzvpk5l5mz5O1bdzZYG3ubqWzyxbWJKeb/
fYB/t/T6beEP+QE8Pt68cflabfwpY+2Ry1fvbXaN/Pldxjr+wVho5spGsRz449x9xiITIM1cgcLn
RzbwGLly7fbd2vgBY60jV18tFfe/H8b44K8ZC4avFe/e8O0jf8BDXC9e23jpnWQe478xpnx249ZG
zT76MR7bTOV/UWwWhO0DpQLNz3zJ/8qm2D+hbWtSVc5DTP0lU3YKTFyoRcdu3Lv1Gksz8TCkvrcT
ZUx9j/0dof6CbEqb8hHtjox8mb+b+FxkF2mu0sbYjkErK3/aeaiEdz7fOejts4GPwxzFUAya4jEM
JbXzcOdfnn33Gp94q5iNVT711vHGbAmfDMvw/M5vaAz57m69avKf0lhN8gpJyUwh2Tk76wiRlx2r
eRlaO2/Lw5occ9xNUTlnSyVe/H0za2alkr6uxWKSOZJZ+tIW48xyM0nJTSnczaRUTFEW8sOCDCTO
b43xVitbyspQ1o5JNe6cuWDH9JhWsYUsFKBKO5qQc4TmHEdUfXaxLMegqo2EnCT7JDE/LNgC3lSK
QrYWbBcaQbZWQjOEZlzNdRxHk9xwHF2ygr3hOEmpmgLrBOJFeBa0CrYM6hkZ0jOIw5HcTcqAqcMv
Ua4G1zOCLOSx5ntATxl0syWpjsdgtERFVLBBdTIYR5CrtlvQimccW3dijpDpNRs2jUKr7Z+UQVM2
WcYWU/xMhTDUMzoSrmeKUlnflLwEL2RwPCmbTEGutlml3wXYuqAVZNp1iOIuea42m1tNbczKZsZj
jdy3mHtr0eqvwg24YCFuV2QrepHq4uWLaZRTKTQ4WfcS1dGLS/4Wbc+YLkcwi2mPQts9aZ/pBbTV
1qqi2Joec8ZjSdluVhUlK8vFpaTsMEEUQu6zVmg6gJ5xZDuNzmDUjlFSdmKZLi8lAhkoYV/ZYbmi
4grZgaQlZZeZP2tXA+UlZ0S2b+h3k7LbzK/a+TVfqcWg7/H0+80q67TO2dXOTkvyYkZ2GnRmcZIz
1X30aMdD8igqocYLdpWSh2gzFdSXth2P6ZhWx5pvpym4CqRxEEkO/ueg3VuqZxSwyliPjmxZki1u
cc69WvWYrMqU7FlbduoZkZVtOHytOg5cRrjY/rfd3Zx1sEym4lb3hwz5wNCGkaYwYusxkjJiVjnJ
KPJMstesqiT7zGqAZL9ZDZIcMKshkppZbSJ5wKw2kxw0qy0kv2Lq9bzLkIsM6yIl+ct0QZJyfJcx
2jDe9I3GLmOiYbzlG4dMJtuN/yG+g4hvCH4JxEcyhvhIDiM+kjriIzmC+EjGER/JBOIjOYr4SI4h
PpKmKRa8Y5o0sW23KyzU1rW8UuLqmXRWU6ZMGjKJWziBC5ATz6iiXpzTqSM+l6FR9JON0vKonBiv
Bnkka6ORUYAv7M7Mk+YpU0x7/h4Cj2ef3AS386mbk55F3/deOEuL+lx1ikcouMNIADx+usO4FcW5
pJw2U70LSTnz36g4wSXQZ1ETFo2LlMjRzUcuT1UqOT2HVmHjFYHOinYww3kkjJTOoUVFZRdoAXTN
uEeTLZaxUUnpQixUsN78XopI+WvJADRgCulS00iv2tuKUIW2rSTUASdDjbQZPVn32PoyrrD1+H10
qZn57w3Fcsu6VK1iGWbFKmrALjWyx+cU4Rbau76MYurYYRnxQXi7YL2nbKL7LTOALoEiBHGygk+s
ihUporjnBJ4Fv1U+2gu1P1LPg4A2mKjlQV9Aio42TLLZsy/rOdqUqrfQSB8FU8swO2unxAJeueR9
TSnIr3oJQnGMTu1+u/vFe9qxrlVKp7N9bJcnVr1ULn0FeDzkenkX0ShSlMVl2WXZBQ2vTLHgpKop
HsYFPb7HekYr7LGmnzr3eTNOmHLOeN6GGVPOGxX4RucLQT2TioKmZAozLC9kOpv1mtCx1HFZUrhn
/qpL6Dt4hdSJX+IQ5/5f55aioBa1oKML7TohMafmYxa9dc6o52EZo3kjptcyUYukEXQOQUf8C46v
F7jLPSl5GPf55DP0p7AcD/fIaeAVU85C5ClvWSRYLONdWs/UaZOOsMwDftXcQrMC+BoAJ/CiucU9
TQHA06wSJwtwhjgE1ohD4CxxCJwzt9H1TgC9BMQ99HVzm/s6G8jXOcTjhM4Tz0MXiOehbxDPQy/T
nhbARdqTwCXak4BLexIoEmcZYJ04BErEIVAmDoENz68M0KbnF6HLnl+Ernh+Efqm5xehb3l+EXrF
84vQVc8vQteQ4yONAl73RnIR8FUfHge8QUn3RmmMbuI1WuPc8iFxXvM4vMa5jclHG6ve8UbejNd9
SDO+7UOi38U6NcI9HxLhvg+J8B1wFxrrveGNPPp3fUj0N31I9Lcws0Z424dE+J4PifB9cI811vuB
N/LoP/Qh0X/kQ6L/GDNrhHd8SISf+JAID8ztloBS/7KaMWTzhlRHCnfr7+EkKqXhZ9Yb+LGlsv50
VEH6F/BTkx1jp+m3GVO71ZaIwbnOlTf+3X+ff6Z89MURsDkTO58rUSXMdDaWjh/QWpoDmLyCkrJL
mJnLM0VRLzFVPameHh2LjwRa+oyew4vKoalob1MioQ93KJHwEIaLymxvKKQPpxSRyJUXV+8MvtKT
Ho3Nj/f1G/MiPBbrD10duL92rJwb5aHZ9RUjd3Q4Fh+YSI8mTkxqbeGBTnE0b+bXEQaLwadV5RM2
yKbYz/Oyr2CnO0Z0rT2ghgbCClOVFW2PIqisOD5tCO4u5lkoxC8hhFy+OaioKrsUaFIYO8lOa+k4
U0PBkBp883EiDwYf8Zx0/8EhzsbHhqYOTvVFe/Z3drS1sEE+2NISNoKIcbqWgu5D3eFob4QCT4yO
hkKjlIfplFrPC++dPp+J68fPHTruatfbu7sjTbFxRRksD/dNjg2GWmLjE32x2bHefnO+1Vgpzc8W
V4xjE3zqi1/1dPGLqjKsjb4wd7HrQCL64D/sV3twlFcV/917v33mtSHZ3Tw2S/aZNwl5EshjCSGU
pGBISFNECDQIWNoACrSdEWeclk6x4tiptQ50LLXThy06HcdRsI52dLTj2NEpM1CLFTstAuKDIIVC
pVl/92YXQ8AR//Ev9s6Zc+/97r3fOb/zO+d+W1gZ9ATrE+Fooi5AjLoYnVeIkYID1YkKm1BKrpp0
Cujss8iAdnG7ZQGWw3LYbYYEdpKggTarpgZv19jYmMz4+IJc+8ADOtMJfITnZaAyUeZ2SGFBGh50
aArwQCXTdMpAxozcPJvLXxUqc3gjPK+lwZEnvvvC8NjY+P2/Pnpu4Gl5bGJ28vcTb+poaobNJcPy
UKY5Ri6lMOe5hFwYxAWi4aICgpwnePJUkIMEMluqFMmaGmdJDa6o6RjticcXjba3jy7S+u2CytaQ
ppvWpa2Vhe7q3tHm5tHe6rQW2fFEbXFxXSIeI+MCdfM1iskqOUjb8lGBsYQrFnUqy7KJ3r5Xisim
EthsckQJ7b9DEMsRu7a2TxdiQTKFDDJcZDJk0Q3WrEj4fV4mWdBb4avIdDMOFvJFvtN4GC/LJXje
5ua0k2VTHHR4g0ps6lwTGFsbHGlrJovCHUPDkdYKX2FVW8Q7qzxod5eWzXK31U38Sr67unZOde9d
za2ji6tWp0niCcR8uwsqgzMmoys2Sg//voQTM51KslD3MpJp52DI0pCb59H5Lex2R8qylvp6v9iY
GPWOrS8erndn2cQB2dIw8ZrM2N48X/EUtDO6TTKD9WfrZApmFGZIKWYIYsM01SMrNUrlaL4iNzVD
Gf41Nns6M4vBGWHJL0w+xtSnKxJ5Ar78XE9WpstBCItFsYMQ+sPxJp2BDfXNLdMz8f2B5WPrapf7
ddL53MFKISNb3JvuFomJo3vmtoieifsmMyxU1Ng6j0woIhq75AnEWHNGE2vCwukKCDgjwg3WTbfV
m8mwukbgcvX0we12jsDpbOuzW5LOrsrKcChttM7CdnV7PC4Qr4/X19aUBosK8mbkenKyszIz3C6n
w46YiGXTdqErhLeB6ZNqTQ1NHUrXFM0HU1wd5H+LrrF2h1dGCyI+9+OPj+0Z6+kRvurOikhHkb+r
rrLFW5Adel8om8op91THhHw4r7TcWzA0MSy+rWXIGeuuD3oyS6J+14Az8xGHv8BvdzkaY25SwtwN
eGvU5xnJabuAYnVa/xn7zQbXFa0PHzvzTnJ2ssQWVE9z6CJK+sdd6kDSB9jm82m9LWjOmfKTu68Z
fsgtAQyLTyMhf4aY3IaIHEWRvIgoDiZny4OownEkRDnilIBYhhbxLGbjD2gXz7HkHEG7/AaK5Xo0
iLdQI2Mop5TKRvhkGWbKEdTJKAJyBWbJJQjjj2T7WfTQ2JD4Ad8JzBPvIaz6UC2fhYPSLw/Qhjeo
V1IWUH6LqDyFfuGhnIZbfo1zt6FfradOUsa5fjP136mfoN6IHM71yOdht0hc+UV6/RhccjtmiigG
5TpSNEp7WlEhzmAezqOW9gboe5espe07EZKDKBXriMN2hOUQbf4H5VJyD33pEjVYQMy79Lz8JNfr
fdsQFjv4bBx+sRkFci1xmYks1QG7dMMpI3CJvxG/GKoZkGXUs4lTu8G/CHfIblSwAjTKEG15lZeZ
xIDMRI3Yh0Wqh/oQquS9iBPHTtmPdjO3D3OFj+cdQaf4Ou39KoLGl11YQh8iOjaiGT4RItY/QRn3
t6mdqFJ7Ual2oUy8Q9snMTciRumr1i8R7/ScQLn6efKUfImYrEzFJCWMR76JiSd5mVrKw1yTjsc0
EUfRKs+afs81ouPyKe6pIoY6BjcQ9QK1jsvgtcKY2ExcjCTPUM4T98jVuEyXDLQZrWMzVRgbzncZ
rf3W79W+z2E+6P5z7Hu4Tvc1N7UtUzReR326bzDUfc1fzSONyc4Udtru/6Y117dx/Q00DmKe6TMX
jI/jhpse4n+Uvr9OfYH6JG3NJSZS5GIWdVDHSF5inP5CfjJ/uOZhLSaPyGcjzCfN6xvqzdT9vAAW
MpeSqXdP10PJcVmEX8oPOF5ubIsYrKdofljEdN8aQkRd4RxzVefMdZr1R+fRf9QbkG1yjHlu9IPM
qy0oNHzS8bxJrWuDyU/NQR37dI1gnl6n/8T3lCBom49+6xDlboSsOtYgjpnHC6yT7H9IWfJv321N
XHdwcu3VOKb4pXPK8PpsCh/NtxHWm+ncm8YPxvgEY/c7xjSHsVXX4TyJYd1VLKf7nsYwjd0gCnQd
kV9CPmNZIT/DPVuJZZq/p6bFeXqMUueksZyur+J3nR/o13k7xf5J+6bGQusB3mdPsX7rmvck6+V7
rNfH0IqTrG0P8u74PFrFLvYPIipeQ7nYgGUyzthuYm1fxztrHdpY58KsjT6uLxb7ue5+FIqnOLef
uaGftbE+7qVNj3GcXvcMPwXS654BP2/NvRiUFurUCsSs+1CmSoiPhUqxGJ3WQ1gu/4laVYgOg+NK
Pt+LGnUAFbS7Wn2TdfRF8v4hPmshbpvJgyP0u5KSz3twTfIDU6/P0+cf0/Z+OMWPWN/fxoB4A82U
+TLIuNxDjoQpO1CkApTPUZZyfBt6zR3rQYB3Sq+6E9nkpYtn98of8m6diTz6EJN7iPlC3tdLOb8M
Lmshc+l7yFFPwGnisYjzcxi3AfK1jbXiI/SIP3OulrVmNSr53pCsYTwvc24/esWb/ACbYP9Rw++w
PIqo2kef7uE4yrX6/t/Odbxz5WLasZ1zw9Sf4J0Y474vT+4VXvrpZY05A7eagNMK8f47wnt8J7WW
45RzlO3Ikj/lHa7z6EmOn2dtWoUBdTz5sdrE8V8p43z3CeqtlJcZN/09oPddYfz0t8Bp7t/CePyC
+86xf57+8wy5hvIq/OoE5x4h1k30U89rOcwz7NR2syZqvpHexQzpZd5ou75Ff+7gnV5CvF5Gt7wL
uZrnqhh28SK/hYY4t5zioNQT3+9TL6Vo7ndS76Dw3hAnGSfN+0Oc198N/egW5xBTLnSrWnNGnt7L
Wt5NHvjo0wLa5L96L65IfiS+w2cRnsX8xEV04yLvhSvJryi+VzXy2Z3Jy8aOLrPOJaup7RgUB6jv
TV6SJckkbv4X+L+09biUbqKUbUmq7ZM5bG2m7b/VbrVb7WaaKr7V/tcG/nGTu7ETDlP3JKr5PfIo
e/uyfKla6MJn9Sr+FGsv/kV71bTEDUXRk5mXTJRBKAWrpYvRFmnHjrS6ExePNK06tWJHhbG4ME1S
jSTOYEftdOVGmE37V5wgiIiL+SP+An+Enhcfln5sXDQhL+eed++59z5IXqKxIH6kMd/V/CrPwxB9
nN7GW40NTBjHGue4J19qnCd/pbHg/j6ssUU8W51bWK1Vx2teHB547cpymEROIw7uR+MNGmiizdIj
bGILLf5aPYePF7xP4hVe8yqhcmdNsfESPsCjZytDPuaxg5AKamxn8Ymel9SO8I18jK/Eu0QeAi6C
z7wJsyi1JXKf6dEgnifbpB3z9LKqlF70FytZrcoSkfldrUYc6H6U4jvsMesOvmfxEee8THMrq0pl
lfT+8g+vX7olHJBrMUbph+xF9bvPMcgyNBipVmORUQnZEkbpp5RCRnpclVFUMYcFrJKvYvyP2QqW
iRPmcKgVU1Vl2WRNt/3eL/Z/er/vPqnVU8P4uXYOw4YNv5mi4JwCs1NPTZSVIYufxKKYtsvWUMG0
NbWRW8m51qQYMTOq6FwM9h72Bnr9PUumZh+pB86pVIcy8nDTZ0bnY70rO/U0H7jpmLLO7UM+ALLj
r9SVyxoPWVwXS2LGfmk9LpjF8plxfdQVP9Ic3BMzsOC6NwIMACUPzVcNCmVuZHN0cmVhbQ1lbmRv
YmoNNyAwIG9iag08PC9Bc2NlbnQgOTI3L0NJRFNldCA1IDAgUi9DYXBIZWlnaHQgNzEwL0Rlc2Nl
bnQgLTIyNy9GbGFncyA0L0ZvbnRCQm94Wy0yMDcgLTIyNyAxMzEwIDkyN10vRm9udEZhbWlseShY
TEhHT0grUmFsZXdheS1TZW1pQm9sZCkvRm9udEZpbGUyIDYgMCBSL0ZvbnROYW1lL0pITFVSSitS
YWxld2F5LVNlbWlCb2xkL0ZvbnRTdHJldGNoL05vcm1hbC9Gb250V2VpZ2h0IDYwMC9JdGFsaWNB
bmdsZSAwL1N0ZW1WIDEwOC9UeXBlL0ZvbnREZXNjcmlwdG9yL1hIZWlnaHQgNTIzPj4NZW5kb2Jq
DTggMCBvYmoNPDwvQmFzZUZvbnQvSkhMVVJKK1JhbGV3YXktU2VtaUJvbGQvQ0lEU3lzdGVtSW5m
byA0IDAgUi9DSURUb0dJRE1hcC9JZGVudGl0eS9EVyAxMDAwL0ZvbnREZXNjcmlwdG9yIDcgMCBS
L1N1YnR5cGUvQ0lERm9udFR5cGUyL1R5cGUvRm9udC9XWzNbMjQ3XTIwWzY2NF03MVs1NTkgNjM3
XTc3WzI0Ml03OVs1NDhdODNbNjAyIDYyOF04NlszNzRdODlbNjA5XTQ5NVs2MjBdXT4+DWVuZG9i
ag05IDAgb2JqDVs4IDAgUl0NZW5kb2JqDTEwIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9M
ZW5ndGggMjg3Pj5zdHJlYW0NCkiJXJFNasMwEIX3OsUsk0WQ7dhJA8bQJDV40R/q9ACONE4FtSxk
eeHbV9KEFCqQ4GPmPY2e+Kk5N1o54B92FC066JWWFqdxtgLhijelWZqBVMLdKZ5i6AzjXtwuk8Oh
0f3IyhL4py9Ozi6wepbjFdeMv1uJVukbrL5O7Rp4OxvzgwNqBwlUFUjsvdFrZ966AYFH2aaRvq7c
svGav47LYhCyyCkNI0aJk+kE2k7fkJWJXxWUtV8VQy3/1dO77NqL787G9q1vT5IsqQKlOVEdKd9H
2m2JnohyojPRgagmOkYqyHNHLgV57umGYkeUER2IikDpS3Cpj/4FYfT7jOERPmt4JCRma3048UNi
KiEPpfHxZ2Y04FVhs18BBgAuYItEDQplbmRzdHJlYW0NZW5kb2JqDTExIDAgb2JqDTw8L0ZpbHRl
ci9GbGF0ZURlY29kZS9MZW5ndGggNzcyNy9MZW5ndGgxIDEzODU1Pj5zdHJlYW0NCkiJtFZ9bBzF
FX8ze3dx/BHH8QfgTbeztz7H+PbOjokdh7qQ3vpsHAdy/oi6G4t2L2c7qYjBmICSSkVBopBcKhVS
WqSqf9APIUWk1azToESkNDQQaD4ohbapWtLz2ck/tLSiLagltbdv9s6OnTipqNo93byZ997MvN/7
2t059vAQlMAekCCxqa+hCXLPu/i3UyPJ0bZHTuKUtAFIT6Ue2clyYt9ZHN4YHt02klv7nwEoqdy2
Y/fw6N4TfwdYcRBgecv2oeSg77XvPAwQzKBSy3Zk5PS1Shxqto/s3JVfrwMorNnxQCrZ/f49AwCR
e/HMipHkrtGcvOlBHNj9yZGhyh8O3I3rpwHoS6MPPLTTPQpoc/NGIR8dG8rrN+/A4TBIZJIeBz/q
Hqdp5HwtR8kF3PMxcosKJImQAEjPAXUTwAby6GF099hDwIBdDkiH3CrEfgjeQ+jPChktpqfEbegx
PApHgrQYfNLjSH+GngxADGogBL3QB48i5zX4E6GkmARJI2kmXSRBHiVfJwfIWfJH8iEFSqlM11IL
bXud/pxekEqlMukZ6aB0XDrhk32Nvi/6nvY5SokSUuLKgJJSRpSvKt9Qjik/Uc4pl5S/Kf9kEqtg
1UxhQVbLGtntrJ2Nst1sH/su+wF7nh1kh9gxtVytUpkaVGvVqNqvfiFIg4FgaXBFsDJYHVSC4eBd
QTs4FDr90cnLvssB1/UQhqAWMfTDc3ASTsH7RCIlRCOrSQvZQHo8DK+S98gH5GNKqJTHcAox/HYB
BvCt9K32PeXjSrFSo7QrW5Styg5lj3JAOaocV04rF5W/Kv9glJWzm9lKxjwM6zwMO9kexPD9RTH0
qQN5DGWI4ZY5DIMeBhAY3Cn3onvJPYIjJrF7yn0dxzMu5q571j3nvum+7B5397v3u19yh9xhd9vM
abd+ZgvAzEv4//yMOf3B9IXpM9Nv4Kp6JjT94fT5qa9MbZvqmmqeaphaNVU5tXTy0uTU5PnJVyaP
TDrZg9lvZ5/Nfiv7zeyB7L7sY5lT2Y3ZrqyR1bPhbH22LlubrZ54ZeKnEy9OHJkYn3hh4smJxzJ/
yPw+807m7cxbmXOZ05mXM9/L7M/sfbemMBz4S+DPXmZdeV6cN74KN3p4/n/l+dEN9f+fz5OwD9Jw
Bs7Cm/ALeAt+CW/DO/Br+A3W5zTMgIsgn4DzcBp+BfvhHOwlCu2mG+nd9B6aoD00RGvpKlpHb6X1
NEwjtIE20tW0id5GN9FeuoY20z4apf1Up5s/kV378DcGY6KWaTFmRFhUOj3jXqaV7kfuSq/uv4y/
++A+vLNBbPE0GmiTe9n9lyeff8bvvFP0uVMueud4a+jB3ybYRHrcF8Qa6fPz+VIDeUKspUbyuKAc
dMZhsxm3GOvmy3q6eaBvi8nXyLzOsodZerPJaSh5rAAKIJXStsqqysHiYGjt45gyhh2LcKJzZg9H
ONXZIOMnEtxXu2W8jhQa8VScB+KmyqWQ1Ttgqpoqp03GEwlkrbdkxlvFrNWymJPTTg7yOmTlV4w3
Cnmj0DyRMBlak04yXpgwbeQwISsUsxYxa7Fl27IsmZOwZWkcEuaQZUW4pDM8xxdKomV+I2Fyvxbj
AS2GOCxO7Aj36RraxQYd/9YYExJhsZyzQIzcb8dTXKpXUWiwNEvjBU6jP4Qge0w7ISd7LVOzVIvx
9X0mymQBLX9/hPt1vsQIjwPNeSqASy2mocO1WJLTrcOcpNAK7q+P8CU6E6YWGamjPtjKxAl8vW0J
FbvdM7VAH19SBEY8Vq/O+X6pvjAWhblTSBhNMBC3zeJpLSni4vkLZOFTzmQ0ctZKjI6WbM9dUXSd
7bwGd4F8Bdr8TcW6B2i8qFDCYMuaatWrEV6iO5TG+WCyPcKX6ajIGC82NojtONFiFi8Rq15cleAq
wkvxmOWeSxh6IIX38mWGzdI248vQaRG+XO/uNx3fYLtVw0uGtF0RXqZ395jdfTmmrCK/3OOv0B0o
NTabTmmpwUkyxkvDImcxk2NOsRhKcOCkCiMhhRKmI5yHaGNpjK+4tl7VcNvsXM7JxRYsBcGxEEkn
2t+J3IWhuk4AHYByDb1lcLhjnBDixapcBwdovN/kpVqMxXkRJl+hhgkXYzZef6SsjMAyiMXStrMi
EOb7wnIQ3VSB2MrDEV6pO0TQKvSzoDfpjiTozbrjE/QW3fELWq07AUFl3Vki6ErdKRD0U7qzVNBb
dW3W7zxgo4c1FuXkXlEgEV4/T1g1J3wwJwzPE9bOCcdyQkUHXhL+L/B9GvEpaBdDfIKqiE/QIOIT
VEN8gtYgPkFDiE/QWsQn6CrEJ2gd4hNU11mbl6YRHa8ts5mBsbUNL5RYerrI1ajOI2EewSpswALo
ZNeJopZs1URHvKGGLNA3zoWWVPGGesdPKuMmNjIBcPV8z1wrbtJZs2fvbahH4tdegtW56OWCD1U/
9l447XdorU4TqRTg1qAD0OLFDcaqSLZGeLMevaktwlv+kypmcArV12JMoCrEoqxTVD76siud7tQ6
sVWY+IrAzortoIWQygp0aSu2qCq+HNV82DVDnhpfaoSH0lGNsbY0nrduoQqL5s7iPuSgJuO2aBrr
e8zDFL8/5cO0Vqq2YqKRFmBP1jxtrQNL2Li6Hm3RzHLvDWrYgxqXjOQgiqmRlHFui0Z29Z4kmoXt
XevAYGp4QwfiQ+LdguctcomWa5k+7BIYBD9mlv+aU/FEgSjkGYFjItcqr9yFsb991g/4Zcr9tXk/
aG3oos/MiXiBJ+/QOsWlInptc+4TYPIehn4zytrwlSuszzOZsGs2BIEQrrrmv91zwVssrfOR0kRu
f3aeJcZsqGzxCXA15Nnw3oGNIiq82MGXG2ZCxlcma7OiTpRUYIHeuUDaKycWSNcvuvdGOz6n89bw
jS6M6XxdOI22ifxCUNdVxYBGeRR3GB5kkZuzMRFpqWGxRLHOcqe2Y9/BV8is4idI4s7/Vd4KFKJF
tWnYheZliGrlbYxjb20Nz/qhA1frwqqW90QeyRzoTgRdmStw/LzAWi6P8jVYz3ddh9+Fx5GKct6M
8w06X4ukW/jt33xXSXPbyBntbhCgSImUuQDcFxAAAZKgRHGVKZGEJFMLKdmyLcuWZZNj2bIydjKO
PdGMNTNeZjyZJZWkfIjPrkouuSSlGl/yC3JJTjn4MDWVQyrXVG7JyXK+BihZ9iEX9OvGa+Dr972v
G2iDwMl5OEsPlVrWqYX3uwBX9O9gswJwGgCm4Iz+HTZHVgGYI2cppw3gHOVQcJ5yKFijHAou6C9g
15sBtA4Im+ii/gJbY5cAWWMblIcpukx5JtqkPBNdoTwTXaXvnAPQo++koE/fScF79J0UXKOceQBb
lEPBdcqh4AblULBtxjUL6KYZF0U7ZlwU/ciMi6L3zbgoumXGRdFtMy6KfmzGRdFPQOP6UQI/MHv7
TYB3LNgC+FMqutkzoHcXjtEB554FKedDk4MHnJ/B5Kmjp+6aPXPGRxakMz62IKXfh+cMCHsWpIRP
LEgJnwJ3+uh5n5k9k/7AgpT+0IKU/ghmDgiPLUgJn1uQEr4AbuPoeU/Mnkn/0oKU/nMLUvpXMHNA
+NqClPCNBSnhW/2Fw0YOP1Znc/tD2/uMvHr/8BzOQ6bqkLffo6eIQSFDAIyvEshBAy/TfzPEeBgH
nytVSnz9g6dP4S6KwG/Zc/g5M/mUOt0FZgMd52MsYfL84MRv8L/Jn1/VgU3QxOv/wG/lBeRDKooZ
YXgSYTDZQQyD+jB1ES1rmibbHMEc9ruJlBojlXKTlIpxYi+PQd9NeH8c+k1CKmq7X5vstVW13Zus
9dvq114xH4nmRS+00Qi0WJm9czafP3tnFtqxMWi1uUI4XJjTtFnaztKV6HB5SaaQF00YYyyGcDrI
xtiewDIIZsgOx8LyUO9odV7k9Xt4j8fuCOUUXqyUPG5GqkBAtZIHvzy49WuHOjbh85aLCvvt3t4e
Hh8JCe4HgWTCcdCk70uDckOkjTIob2R9YHkvJoh04A68D+0gQpirNswwDYa+LYMy8YzOOgK5EuhQ
azKVcpqqYFebDFWFB5XsbsYu8mm31BjPtLJCIR/UpNjIuqswcyZfWq3Fwtq44B3Lp514PL/UrIYF
MRrzxXMuITJ63S3GfKF8S5Gq2cSIM5wQT+xBlvyvPycCaOJELtQ3nC4MSkCmSKe7L6xeMoIIBp5w
2IZsX4JiBPXgLpUnYsTfvgVrunDEIOj0hjGK0MgwPNjp8XhBw2COrYgVXPKUeInHpQqePPgBn9m8
dOnghz88evYx/uPB+fvPsOsfVLnY69tkGKLS0LKxlMYMcrsIsRGaLsLYyEPEIg6x3LYdgmFsiAEt
MSYXIW7cp2GdwUiRpVQkHBS8J4YdSMPakMOfwwMZpVRarQlCqVg1NebsElW8WhN5yV6t4lRxvSmp
8+9Nnv40uRJdy1fbM0XxpGd3aMQ95BVw71VsZBy3xOm1UvVSS5o9uaqOzVTLRjzMqI2ueuXeJ89d
J0AONAYVUCN/QUlURk1jCrKPfeCzEGYZpgOmY20MuzOIGZ/qgpS2w9JIifD5Xk6VZUWTqXTKWyUi
BOxpM+5qlTqDBUtWjtUMqWnz/dr0tVNyevFma+6uuhJc1udWCb9SKm/OpQ9ehQsyz8vjkUhB9kP7
r/LlubS+trdy7dl2uV5dS2dvXZOzsnHxT7wyEYmMy34/JU/IAq14/fV/SQEqXEEn0RKqGEVxFHJD
SwnR3OwgljUXBNvEm1JfnDea1bKeDQoyB/vF8eXU0unDwjctHmferX9m0FrJIoXMQq9S6c1r/qTq
V8q59vmMduGU7g6lfIKW9H3DS3ogqIt+PkXblP/v3pjk9cgx71Q2U/9bcbWeEKfPTcRL2aTTu5gr
LBXDoeJSgc9IUcewmCsHQlrEPRpVg0E1OnoiquI6n+CHh4UEr+h5yGoIsgqhwq5WRVeNyzzsI34w
nwvb8Ri22ZUEQRwLatg5u417CGa227DdLPY+CLLQdWCOQ312iJjCZDSMigWtmqmmkvHYwK4qVp1g
18CxhA+MqkLCBZ73CwGeoy5WOU4tVmvVSsU0BNz4a3q2EBGnzk1Ic+GpenY1m9nevftg1JMKpTMs
I93wpRoeITgZLs+WnaH8tKy09NDIcLw8GY9dmLvz/u94L75nT0VjY4WtIOx+047hcTlF192AdV8h
3yM/rPyX3f0g7A6jQ2BlKUVsLNS8jelE3hrBMLJhEWOw/GYXnDHQwG5aHXOWBhFDfOc+2KcxIHHY
5GwYAYHHKBnnVUEdcdo51ob82E+rmgUdeMlT8ljVQE2kHlUEZ+fjDN6Z7kV2v4puNkprDVGZvbyR
rKZ5v1KM5xd89khKc1bHN8n3By8LFb1zo3Zyayl7L5SdTCbrengq98CfDLjorhQFBRKQeRFphhIO
OYZssOvAdo5Nl0PUgxwvMsuKpphHm+94vR46uloLcBy1fxTq01jfiz/xTKZiRYUXlGJUbow8iXx2
0bi5qGKuttXRO9NaLBHI1CWpng3IYW16We9eh3zQaGYhmjjkwzAa0QhhCO7YMQtlyJJtZLOZZbhg
leFAxkQCo4SaUCUxFPB5wWpxHLc0fHP88n7OLsaZQZw+K3I7LrQgpPTijmFsLyiYHNxmgulCWFtw
fRh7VGBXarBPBIgz19mqTl7v6npnq+IKDiUKKa8Kn+EreHpqwZcqxKiOQbj8ivwT8ahmlJ2wIw5j
uHRsGLMYQaDbEDHpg5rz4AGOa3D0eOQR7/HKkscz5AjnSh6pUqqUId+WsjwPh4rnarvdO2vMREYz
nvnHj/Evbia37iW2h4Z7ys2Dj0Cx+GuRNEExGdXQb7v7ETCm34U5nMsSlkthxIaCBE4zsDEdJu8O
b1hTUojjcJ9+CC10we0s6tNTqN0Fwc3szzBg6DRE3+qaTPR/iBtGKK1gNJ5XaulaLCL4R92QExnL
jrdyAuVf8hw/t8DdFVr5sHtW3jgLOyvrrZRsXK42rsR39ZXbrfXd7FJ8s5Q4qYfCPYeg/Y/xaoFt
+jjj393ZceI8HTu2E9t5+I0TJyROHGNibCghrxoGhbFAWEK0hglQttJVqLCyjRarTKMTU6XSjk0w
2hVYNU17tBrrJnVIK0gbK12rFiq6TWyUlrUbg0FFId7v7m+7wTBpkb5857v7333P3/edu8FQmw41
dXnN1kC3CA1NROdNDod628dmKuNjKfe87gFfyOSN+ReFOzdV2ZtrH2mPOcLxpuZYyC4RAG44DgQQ
ZKC21Bw9Whe+TstcouSITmsjkbQAP8CfXrWHEu5R800CLWUik8nwiltX+apduxAHOI934bxyCqUC
RgNHK8FVPi0YUeZDsc+3YuVUXmsyy+aoJWBQyd4bMZjZoX2Dmczr3z5++vzAfuRv/z/enfmTjLC+
7McshZOryZ/ylCJBy1B7VefF0R7swIHqikF+r89TI3CqGfa1FjLT39OXcTZUuCprHYOuZD8/e+uU
q7m0ZKqy6p4Fmtxik4qjVakKJ3pivalUnjusBUgdoI/pxw0lXK+HEpznGqZ6kr/lYsm4jOuBwtpo
qhyRbfaYPTWlZU48XE0a2ptmDSJ1Et6sthzIiU2ZVn9wSTX+BwaqMw+77l+4aNDYPJmcu8BdyfzJ
eKJz5o+S93XOnOIV6yO9qY7oPG982E85y3uhgY2GUsZqZJ+RfSp/LTwgxmVjmhzh+W7PSvInVnTj
iN+B/MLoSx5TnadGjw45JzWgoiAt5OTeTFvAEvI1GiDjdH9nTroaV9Cu5OqKaTJpeLYQMsn3AvAV
9+XxC1aCOAq/GHndDXbkiJkhGopxq2pWq6C1EKwjNTXg9w9MSdTy+5dMnazzdbkk1ua5sW1kMto7
CcQameyNgrNqz7yQzRaKe9wAXHsortmLPcTNVEO+lLtUvWSY7OQh9zgeNVxZBrHfYzLXqBdNSc5n
snXvsrGHEhN1me1V/rYwOgk928fC4ZnjvOLLjtZmEyxP1uw19ha3UlgiYgPA0IHSAgMQk42iBoaq
Ks4yRBO6hdISCrOwPlcECy1toF3c3ihKdLA1CiA7E4t2hLvmrg0H26OJyGCbpSk20jZ/Q2s0OOJz
t5fbA65outO2xRgKrHR7Gp3OBlNVQ0trYzAVtrv9yzHRVFVbVWmocno7WtKjpGS/zrbyF6meOlJt
9YBTJkXuG9Ej0DneNzkgpAmtEwSCm0x1bkOZo9WnVcEeBeYRBeFaErKtjqWtzk6ftb8/Mz3tqqsL
Vjgq7FVNnR4W3nD06IYsOW1VetwdUzWwAm/UB7RGo7wciV5fy+ULxiF/6fK/cp2IReafxCoE1YS+
0IA4CDMMLwttmWavjqbwdrNaTDWVFWUGtB0O5jCo7szfAxyySIElly1Zvic7t3xlZnVgyJapNlkc
5d6wTnimjV+cYoMzbz7cMZf1zzwh2ywdb3GFolGFSiSWQA+TxCtcZCzToQ6yYbwQhIRWrkFrrRkv
qZoSFEAWEZ6AwSMi5t5AxAYstPFXv/bO9JrR6bM79qfGNvfGNq9NSqi9cIFXzGw5ev7gwfNHpbeW
ZXfQK8IAaG6E0jKiVsEvbB1uIJYmUpgtgNk26LRsy06x++ZW+Z1coDP7Dk+OV/f9hxziImbo1Iay
m5K/fmbpuWw069C7xHext0zqQ+or8UIWjwZ9Equ9epc6Z9Yf333bz3/hkwitZrspwU+Tj28jN/oY
q6glD53IRvkJvAcvUYJFyc16yM5GKcKeow66SHH2A4rTXynOj5GDT1En+4jaeDf5eTs58Y608BC5
kEXtvBO/x7CWxqvsOvXjaTnABTWznxPeGTj7ArlFmkL8AOn5YRrmP6Ym/nvwUdAC0JvUzN+nYdYI
ukQG/j3MDdKwWA/+Cegq9n8J/Ar40+CbqIp/RCn+LHEdmh+eyd7iT5KOP4jOq49W8EcQTn2QawhN
/zt4UWSpA/fUQ/cE5HfyXZB7NTnZFrJjrhGyJ7AnwfTZPdAtwRLUJw5hL+b557Fffod97FGsXSYr
+zpZ+UaKcR+ViQGEtRl3+9FkfUgN+DbEamgZeBfvpZiyfyd9ln+GAryFIjwIuU6Qi5lpObdQKztJ
aTEE/jIF4TkP/wLN52spruYOUR9zUZC9TfPZAdz/FDmVLvsozffCf/ANW0J1LARb/4q8+D4OuUPi
ZZojfgTd/wx7SZvniD0AXSX/xafzrAS++V32Pf4CbDKa80mO4I9q5ZPG7FXQdcRPU8EfRcTOUbfy
j/TLbJJ+GcM3sKvywV1IHAGXfll9O0FXkn7RKPt30EXEblPBL0XEshRVY+mb2QTfQJ+E4lJvea/U
fZBa1PiHGLtpIU9iLGNTyjKL0zn4MjdWNpRjGb8yjqRNduVsJ+Uu5muKfstY34b9d+F0UsWZS+aC
0vGyyqsa2P40dP8t+A3wS/BJOfhNcBnbPukjUYZvdIhP5A/WHpek8kjaXRLyScb1Xfke8BXZGfa5
bFb5V95dzMdgewsdg0+139Lv0tazOJuGPTHWJahJXMEcclXmzB0c+CPz6H/yjVSpcgx5rvhjyOdv
kE3Fk/Tn/8klNqj8fFLLzwJGIE/v4B8Az7zk0idpWPdL0IPk0kVg1zT0XUR9uguYI4VJBd313Zh7
Sdtb8GMuvmROqbi+krOPjLdp3FEce0XxAh//Bb57Az41gt+6w86aDUMFWxbrnrdh3nargQ/AEf4t
qhUlwO6v4Jud0Dcfv+8X+bnYR7lz8rYs5gX73aEHDcu8Lcidl2+2LyRfg3MOAsMl5h1AvbkGzPyQ
uukGsO2nFGNHqJv9BOM/kIedBbZuAvatobhuL3BxCnNTWHsPsfcM9Pwm1bPnUcceQx17Fpj4POSQ
a/di/JyGn+xptc/ODmPfrty+I7BDHP5bD6qjNrGO/LodFBSN8JGN5rAh3Pco3Ses1CoStEDZcYI8
4jf4/Tb2HQM/Dv4atUCHIE+QGXY28DdwXgRUjTq4MXtZ1dIGKoXtg+x+KmWvUA97jUbYW9QFugd7
rfCNncdAe8kukqB9oPVUx1fQYlVjLZCZ0WKxgYw8APvZMP9rxIOfTHweasAT8PUw/LES8/fhVbGK
jOxFqhDfR/8g/SHPScFvyyHXQjRoekqiPi/mXdB1HLJvhy16EJefYO4gLWYfoA7NYLxHxXcj8K5Z
/Az+3Kx0c6v6vw37tuNO1FuVAxM0B+cL1LrF/Dvat8xLaebN3kCsGHQWMuq64Md3Ucf3gEu6CLoG
+ip0ehVc5tF+8KO0CHqnxb+z16Fzmv8TdBV3/w18C0jitOwH8J2ohgyyF7hMS6GHT5yhtK4M44+p
Uuz8L/vV0tNEFIW/mTszHaQ+SBNCpCQVFHnVCKx8dqxVAZFAA7GoMa1tgZpCSQURExI3JhgjK1cm
Rv0F0hgIIS66M5K4dmlMWLkxMXGp9bu3g0ZlwYJl78mZ+93vnnPuY+7MnKHtJHUdPvGV3FPuqcN1
MrbST4xRzbpa2QTk+de/c0+PUOW8Vrnfce5/EI72GiF9FvvlORcOv+9rtLlJTmo99Qzv8TvWVxXn
5zs2xPmE5HeDOVSNOvcfyMu8IU5e47npREhcJx7DAf0za4t6lM9sDc9OPd8bW9/FeOkbn4cQ99av
chHB+ydKXzS7tCTOwuavTUjaqHkMUeVYp1hzXcpvltl9Q+kndlrq+CwuYEXzUKLaih6gvNxdEX7x
XGyKTeOcsWA2UC5Q8uYrS7f6rWdKNjwtnjHPBqW0JXZ9RSpSkYrslkBjHvII88ygZdHRwf+Ox0Qv
9ta6b8Mq5KUVi4CP1zI2iH0utoia2avxywPtNk64WEMz87Ay1plTvXexIP/RxQbxDxfLHKOpr6d/
JNrXHk1k03OJ+WA4l03tjMJ55DDNpeSRwTgmMMPfixYk0cq6C8fRSQ0g+LvVzcUGcAUJWs4olEQv
ppBmBHmdV/6Tbr/D2BncI5/FHeI8UQIpHKNXjlatKtoguVu0yBH3kp1mO0tJqFnJeJn/WIezlaNk
yPwdLUqcctcjI17ELEedwn3ln2FfQsWcULOSozq0HtvG6k/cAObIzdBHxk9zLXK9d3lNqRFy9JS7
MUCvSbIBNNJORkrTM8FdaWSa24N+jJDvQ/s/vUGEGSPLaDL6OOdSXufOfHbTSpTPb2mF93u7cnnZ
H40VNG1pdB2aDRvJ6QI84VXgUneTiTbZcLzXjAHjpN1m1XlM26Xi+rAesbqMQ6aivOG3tUVfcV9x
T9FyCmYVqZrwqiOLbAhECoe1xaHYsrMYK4hUpNAsW+v2Ax56ZzE5HJMmoyyO94YxaJy2O6yDHtPb
tqaVHi4bTwo6Im/MlIVI5JcAAwAye7biDQplbmRzdHJlYW0NZW5kb2JqDTEyIDAgb2JqDTw8L0Fz
Y2VudCA5MjMvQ2FwSGVpZ2h0IDcxMC9EZXNjZW50IC0yMjkvRmxhZ3MgMzIvRm9udEJCb3hbLTIw
MiAtMjI5IDEzMDkgOTIzXS9Gb250RmFtaWx5KFJhbGV3YXkpL0ZvbnRGaWxlMiAxMSAwIFIvRm9u
dE5hbWUvSkhMVVJKK1JhbGV3YXktQm9sZC9Gb250U3RyZXRjaC9Ob3JtYWwvRm9udFdlaWdodCA3
MDAvSXRhbGljQW5nbGUgMC9TdGVtViAxMzYvVHlwZS9Gb250RGVzY3JpcHRvci9YSGVpZ2h0IDUy
ND4+DWVuZG9iag0xMyAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM1Nz4+c3Ry
ZWFtDQpIiVySy2rDMBBF9/qKWTaL4FciJWAMjZOAF31Qtx/gSOPUUMtCdhb++2o8IYUKbB2hmas7
GkVldaxsN0H07gdd4wRtZ43Hcbh5jXDBa2dFkoLp9HRfLX/dN05EIbmexwn7yraDyHOIPsLmOPkZ
np7NcMGViN68Qd/ZKzx9lfUKovrm3A/2aCeIoSjAYBuEXhr32vQI0ZK2rkzY76Z5HXL+Ij5nh5Au
64TN6MHg6BqNvrFXFHkcRgH5OYxCoDX/9tMdp11a/d14kacUHMdhCnxiPhGfmYNInnFMRjFZwpwQ
p8wp8YZ5Q7xl3hJLZkm8Y94FlqwjSUeyjiQdmTFnxKwjSUeyjiQdqZgV8Z55T3xgPhCXzCXxkflI
zDVKqlFyjZJqVOxBkQfFHhR5UFyXoroU+1HkR7EHRR4UnxUmuvD7zdLVhxcCj77qm/ehpcszWnpJ
XewsPl6aGxyELPrErwADAFicru0NCmVuZHN0cmVhbQ1lbmRvYmoNMTQgMCBvYmoNPDwvTGVuZ3Ro
IDIwMjQ1L1N1YnR5cGUvWE1ML1R5cGUvTWV0YWRhdGE+PnN0cmVhbQ0KPD94cGFja2V0IGJlZ2lu
PSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4
PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDMgNzkuMTYx
MjEwLCAyMDE3LzA4LzExLTEwOjI4OjM2ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRm
OkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1
cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25z
LmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h
ZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMu
YWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpz
dEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgog
ICAgICAgICAgICB4bWxuczpzdE1mcz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBl
L01hbmlmZXN0SXRlbSMiCiAgICAgICAgICAgIHhtbG5zOmlsbHVzdHJhdG9yPSJodHRwOi8vbnMu
YWRvYmUuY29tL2lsbHVzdHJhdG9yLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcFRQZz0iaHR0
cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3QvcGcvIgogICAgICAgICAgICB4bWxuczpzdERpbT0i
aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIgogICAgICAgICAg
ICB4bWxuczpzdEZudD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0ZvbnQjIgog
ICAgICAgICAgICB4bWxuczp4bXBHPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy8iCiAg
ICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyI+CiAgICAg
ICAgIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vcGRmPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxkYzp0
aXRsZT4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgeG1sOmxh
bmc9IngtZGVmYXVsdCI+Q2FtYnJpZGdlX2NpdHlfY2VudHJlPC9yZGY6bGk+CiAgICAgICAgICAg
IDwvcmRmOkFsdD4KICAgICAgICAgPC9kYzp0aXRsZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURh
dGU+MjAxOS0wNi0yNFQxMjoxMzoyNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAg
PHhtcDpNb2RpZnlEYXRlPjIwMTktMDYtMjRUMTI6MTM6MjQrMDE6MDA8L3htcDpNb2RpZnlEYXRl
PgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNS0wNS0xOVQxMjo0MzowNyswMTowMDwveG1w
OkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgSWxsdXN0cmF0b3Ig
Q0MgMjAxNCAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wTU06SW5z
dGFuY2VJRD51dWlkOjk2MTVkOGViLTcxZGUtZmM0Ni05OWMyLTYzNWE0YzFmYzZmMDwveG1wTU06
SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo3NmRlNzczYi0y
MzNhLTRjNGUtOTk3OS05NjIzN2IzMjM1YTA8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4
bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+dXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1
MDhDODwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06UmVuZGl0aW9u
Q2xhc3M+cHJvb2Y6cGRmPC94bXBNTTpSZW5kaXRpb25DbGFzcz4KICAgICAgICAgPHhtcE1NOkRl
cml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmlu
c3RhbmNlSUQ+dXVpZDozYzUxYzc4Yi05YWEzLTAxNGUtYTI1YS01ZTQzZGNkZTY0MmE8L3N0UmVm
Omluc3RhbmNlSUQ+CiAgICAgICAgICAgIDxzdFJlZjpkb2N1bWVudElEPnhtcC5kaWQ6Rjc3RjEx
NzQwNzIwNjgxMTgzRDFFMzVGMTk5NDM4OUE8L3N0UmVmOmRvY3VtZW50SUQ+CiAgICAgICAgICAg
IDxzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+dXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBE
MzE1MDhDODwvc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6cmVu
ZGl0aW9uQ2xhc3M+cHJvb2Y6cGRmPC9zdFJlZjpyZW5kaXRpb25DbGFzcz4KICAgICAgICAgPC94
bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxy
ZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K
ICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAg
ICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOkY3N0YxMTc0MDcyMDY4MTE4
QTZEQ0Q3RUIwOUUyRjZEPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RF
dnQ6d2hlbj4yMDEzLTA3LTI0VDE2OjU1OjAzKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAg
ICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBJbGx1c3RyYXRvciBDUzU8L3N0RXZ0
OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0
OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxp
IHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlv
bj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJ
RD54bXAuaWlkOjc2ZGU3NzNiLTIzM2EtNGM0ZS05OTc5LTk2MjM3YjMyMzVhMDwvc3RFdnQ6aW5z
dGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNS0wNS0xOVQxMjo0Mzow
NSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdl
bnQ+QWRvYmUgSWxsdXN0cmF0b3IgQ0MgMjAxNCAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVB
Z2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4K
ICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAg
PC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06TWFuaWZlc3Q+CiAgICAgICAgICAgIDxy
ZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K
ICAgICAgICAgICAgICAgICAgPHN0TWZzOmxpbmtGb3JtPkVtYmVkQnlSZWZlcmVuY2U8L3N0TWZz
OmxpbmtGb3JtPgogICAgICAgICAgICAgICAgICA8c3RNZnM6cmVmZXJlbmNlIHJkZjpwYXJzZVR5
cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgPHN0UmVmOmZpbGVQYXRoPi9Vc2Vy
cy9kZWJzbWl0aC9Ecm9wYm94IChEZXNpZ24gYW5kIERlbGl2ZXJ5KS9EZXNpZ24gYW5kIERlbGl2
ZXJ5IFRlYW0gRm9sZGVyL19OZXdfQnJhbmQvTG9nb3MvQ01ZSy9FUFMvTWFzdGVyL0FSVV9Mb2dv
X01hc3Rlcl9DTVlLX1llbGxvd19BVy5lcHM8L3N0UmVmOmZpbGVQYXRoPgogICAgICAgICAgICAg
ICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjBlNjU5MzQ0LWE4MmMtNDEwYS1iN2Fh
LTU0OGM3MjdlMjUxYTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgICAgICAgICAgPHN0
UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDowZTY1OTM0NC1hODJjLTQxMGEtYjdhYS01NDhjNzI3ZTI1
MWE8L3N0UmVmOmluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDwvc3RNZnM6cmVmZXJlbmNl
PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAg
ICA8L3htcE1NOk1hbmlmZXN0PgogICAgICAgICA8eG1wTU06SW5ncmVkaWVudHM+CiAgICAgICAg
ICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291
cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0UmVmOmZpbGVQYXRoPi9Vc2Vycy9kZWJzbWl0aC9E
cm9wYm94IChEZXNpZ24gYW5kIERlbGl2ZXJ5KS9EZXNpZ24gYW5kIERlbGl2ZXJ5IFRlYW0gRm9s
ZGVyL19OZXdfQnJhbmQvTG9nb3MvQ01ZSy9FUFMvTWFzdGVyL0FSVV9Mb2dvX01hc3Rlcl9DTVlL
X1llbGxvd19BVy5lcHM8L3N0UmVmOmZpbGVQYXRoPgogICAgICAgICAgICAgICAgICA8c3RSZWY6
ZG9jdW1lbnRJRD54bXAuZGlkOjBlNjU5MzQ0LWE4MmMtNDEwYS1iN2FhLTU0OGM3MjdlMjUxYTwv
c3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1w
LmlpZDowZTY1OTM0NC1hODJjLTQxMGEtYjdhYS01NDhjNzI3ZTI1MWE8L3N0UmVmOmluc3RhbmNl
SUQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAg
ICAgIDwveG1wTU06SW5ncmVkaWVudHM+CiAgICAgICAgIDxpbGx1c3RyYXRvcjpUeXBlPkRvY3Vt
ZW50PC9pbGx1c3RyYXRvcjpUeXBlPgogICAgICAgICA8aWxsdXN0cmF0b3I6U3RhcnR1cFByb2Zp
bGU+UHJpbnQ8L2lsbHVzdHJhdG9yOlN0YXJ0dXBQcm9maWxlPgogICAgICAgICA8eG1wVFBnOkhh
c1Zpc2libGVPdmVycHJpbnQ+RmFsc2U8L3htcFRQZzpIYXNWaXNpYmxlT3ZlcnByaW50PgogICAg
ICAgICA8eG1wVFBnOkhhc1Zpc2libGVUcmFuc3BhcmVuY3k+RmFsc2U8L3htcFRQZzpIYXNWaXNp
YmxlVHJhbnNwYXJlbmN5PgogICAgICAgICA8eG1wVFBnOk5QYWdlcz4xPC94bXBUUGc6TlBhZ2Vz
PgogICAgICAgICA8eG1wVFBnOk1heFBhZ2VTaXplIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K
ICAgICAgICAgICAgPHN0RGltOnc+MjA5Ljk5OTkyNzwvc3REaW06dz4KICAgICAgICAgICAgPHN0
RGltOmg+Mjk2LjY4NjExMTwvc3REaW06aD4KICAgICAgICAgICAgPHN0RGltOnVuaXQ+TWlsbGlt
ZXRlcnM8L3N0RGltOnVuaXQ+CiAgICAgICAgIDwveG1wVFBnOk1heFBhZ2VTaXplPgogICAgICAg
ICA8eG1wVFBnOkZvbnRzPgogICAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgICAgPHJk
ZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEZudDpm
b250TmFtZT5TdGFnU2Fucy1Cb29rPC9zdEZudDpmb250TmFtZT4KICAgICAgICAgICAgICAgICAg
PHN0Rm50OmZvbnRGYW1pbHk+U3RhZyBTYW5zPC9zdEZudDpmb250RmFtaWx5PgogICAgICAgICAg
ICAgICAgICA8c3RGbnQ6Zm9udEZhY2U+Qm9vazwvc3RGbnQ6Zm9udEZhY2U+CiAgICAgICAgICAg
ICAgICAgIDxzdEZudDpmb250VHlwZT5PcGVuIFR5cGU8L3N0Rm50OmZvbnRUeXBlPgogICAgICAg
ICAgICAgICAgICA8c3RGbnQ6dmVyc2lvblN0cmluZz5WZXJzaW9uIDEuMDAwO1BTIDAwMS4wMDE7
aG90Y29udiAxLjAuNTA7bWFrZW90Zi5saWIyLjAuMTY5NzA8L3N0Rm50OnZlcnNpb25TdHJpbmc+
CiAgICAgICAgICAgICAgICAgIDxzdEZudDpjb21wb3NpdGU+RmFsc2U8L3N0Rm50OmNvbXBvc2l0
ZT4KICAgICAgICAgICAgICAgICAgPHN0Rm50OmZvbnRGaWxlTmFtZT5TdGFnU2Fucy1Cb29rLm90
Zjwvc3RGbnQ6Zm9udEZpbGVOYW1lPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAg
ICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAg
IDxzdEZudDpmb250TmFtZT5SYWxld2F5LVNlbWlCb2xkPC9zdEZudDpmb250TmFtZT4KICAgICAg
ICAgICAgICAgICAgPHN0Rm50OmZvbnRGYW1pbHk+UmFsZXdheSBTZW1pQm9sZDwvc3RGbnQ6Zm9u
dEZhbWlseT4KICAgICAgICAgICAgICAgICAgPHN0Rm50OmZvbnRGYWNlPlJlZ3VsYXI8L3N0Rm50
OmZvbnRGYWNlPgogICAgICAgICAgICAgICAgICA8c3RGbnQ6Zm9udFR5cGU+VHJ1ZVR5cGU8L3N0
Rm50OmZvbnRUeXBlPgogICAgICAgICAgICAgICAgICA8c3RGbnQ6dmVyc2lvblN0cmluZz5WZXJz
aW9uIDMuMDAwZzsgdHRmYXV0b2hpbnQgKHYxLjUpIC1sIDggLXIgMjggLUcgMjggLXggMTQgLUQg
bGF0biAtZiBjeXJsIC13IEcgLWMgLVggIiI8L3N0Rm50OnZlcnNpb25TdHJpbmc+CiAgICAgICAg
ICAgICAgICAgIDxzdEZudDpjb21wb3NpdGU+RmFsc2U8L3N0Rm50OmNvbXBvc2l0ZT4KICAgICAg
ICAgICAgICAgICAgPHN0Rm50OmZvbnRGaWxlTmFtZT5SYWxld2F5LVNlbWlCb2xkLnR0Zjwvc3RG
bnQ6Zm9udEZpbGVOYW1lPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9y
ZGY6QmFnPgogICAgICAgICA8L3htcFRQZzpGb250cz4KICAgICAgICAgPHhtcFRQZzpQbGF0ZU5h
bWVzPgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaT5DeWFuPC9y
ZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+TWFnZW50YTwvcmRmOmxpPgogICAgICAgICAg
ICAgICA8cmRmOmxpPlllbGxvdzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPkJsYWNr
PC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBUUGc6UGxhdGVO
YW1lcz4KICAgICAgICAgPHhtcFRQZzpTd2F0Y2hHcm91cHM+CiAgICAgICAgICAgIDxyZGY6U2Vx
PgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAg
ICAgICAgICAgICAgPHhtcEc6Z3JvdXBOYW1lPkRlZmF1bHQgU3dhdGNoIEdyb3VwPC94bXBHOmdy
b3VwTmFtZT4KICAgICAgICAgICAgICAgICAgPHhtcEc6Z3JvdXBUeXBlPjA8L3htcEc6Z3JvdXBU
eXBlPgogICAgICAgICAgICAgICAgICA8eG1wRzpDb2xvcmFudHM+CiAgICAgICAgICAgICAgICAg
ICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5
cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFt
ZT5XaGl0ZTwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRm
OnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpz
d2F0Y2hOYW1lPkJsYWNrPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjEwMC4wMDAwMDA8L3htcEc6YmxhY2s+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8
cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6c3dhdGNoTmFtZT5DPTkgTT0yOSBZPTY2IEs9MjQ8L3htcEc6c3dhdGNoTmFtZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0
aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9k
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj45LjAwMDAwMDwveG1wRzpj
eWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjI4Ljk5OTk5OTwv
eG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+NjYu
MDAwMDAzPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Ymxh
Y2s+MjMuOTk5OTk5PC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjps
aT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJj
ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz03MyBNPTEw
MCBZPTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOmN5YW4+NzMuMDAwMDAyPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1hZ2VudGE+MTAwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAg
ICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxy
ZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTAwIE09NzEgWT0xMCBLPTQ3PC94bXBHOnN3YXRjaE5hbWU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6
dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1v
ZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1w
RzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjcwLjk5OTk5
ODwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+
MTAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
YmxhY2s+NDcuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3Jk
ZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNv
dXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz04NiBN
PTggWT0wIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpjeWFuPjg2LjAwMDAwMTwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptYWdlbnRhPjguMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAg
ICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJk
ZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MTkgWT04OSBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFu
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjE5LjAwMDAwMDwveG1w
RzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+ODguOTk5
OTk5PC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+
MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgog
ICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTI3IE09MCBZPTEw
MCBLPTM8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6Y3lhbj4yNy4wMDAwMDE8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjMuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAg
ICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjps
aSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnN3YXRjaE5hbWU+Qz0yNyBNPTAgWT0xMDAgSz02MDwveG1wRzpzd2F0Y2hOYW1lPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjI3LjAwMDAwMTwveG1wRzpjeWFu
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBH
Om1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4xMDAuMDAw
MDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+
NjAuMDAwMDAyPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0yIE09MTAwIFk9
ODUgSz02PC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmN5YW4+Mi4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bWFnZW50YT4xMDAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnllbGxvdz44NS4wMDAwMDI8L3htcEc6eWVsbG93PgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz42LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPkM9OSBNPTI5IFk9NjYgSz0yNCAyPC94bXBHOnN3YXRjaE5hbWU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGlu
dD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+OS4wMDAwMDA8L3htcEc6Y3lh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4yOC45OTk5OTk8L3ht
cEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjY2LjAw
MDAwMzwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNr
PjIzLjk5OTk5OTwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2Ui
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkFSVSBMaWdodCBC
bHVlIFJHQjwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpjeWFuPjY2LjgzMjk4OTwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptYWdlbnRhPjcuMTAxNTQ4PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnllbGxvdz4yLjQzNTM0MDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAg
ICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjps
aSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnN3YXRjaE5hbWU+QVJVIExpZ2h0IEJsdWUgQ01ZSzwveG1wRzpzd2F0Y2hOYW1lPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjY3LjAwMDAwMjwveG1wRzpjeWFu
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEuMDAwMDAwPC94bXBH
Om1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAw
MDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAu
MDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MTkgWT04OSBL
PTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlw
ZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRp
bnQ+NTMuNTk4MjI0PC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpj
eWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1hZ2VudGE+MTkuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnllbGxvdz44OC45OTk5OTk8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRm
OnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpz
d2F0Y2hOYW1lPkFMU1MgQ01ZSzwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MzEuOTk5OTk5PC94bXBHOm1hZ2VudGE+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz44Ny4wMDAwMDA8L3htcEc6eWVsbG93
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpi
bGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkFMU1MgQ01ZSzwveG1wRzpzd2F0Y2hOYW1lPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD40NS4zNTAzNTg8L3htcEc6dGlu
dD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4zMS45OTk5OTk8L3ht
cEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93Pjg3LjAw
MDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNr
PjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0xMDAgTT05MCBZ
PTEzIEs9NzE8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6Y3lhbj4xMDAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1hZ2VudGE+ODkuOTk5OTk4PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4xMy4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz43MC45OTk5OTg8L3htcEc6YmxhY2s+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8
cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6c3dhdGNoTmFtZT5DPTEwMCBNPTMxIFk9MCBLPTA8L3htcEc6c3dhdGNoTmFtZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0
aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9k
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAwMDAwPC94bXBH
OmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MzEuMDAwMDAw
PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4w
LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJs
YWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjps
aT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJj
ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz02IE09MTAw
IFk9NTUgSz0yODwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpjeWFuPjYuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1hZ2VudGE+MTAwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+NTUuMDAwMDAxPC94bXBHOnllbGxvdz4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MjguMDAwMDAwPC94bXBHOmJsYWNrPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0xMDAgTT00IFk9NTYgSz04PC94bXBHOnN3YXRjaE5hbWU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6
dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1v
ZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1w
RzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjQuMDAwMDAw
PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz41
Ni4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpi
bGFjaz44LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3Vy
Y2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9ODAgTT05
OSBZPTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOmN5YW4+ODAuMDAwMDAxPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1hZ2VudGE+OTkuMDAwMDAxPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAg
ICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJk
ZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09ODIgWT05NCBLPTI8L3htcEc6c3dhdGNoTmFtZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFu
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjgxLjk5OTk5OTwveG1w
RzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+OTQuMDAw
MDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+
Mi4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgog
ICAgICAgICAgICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgICAgICAgICAgIDwveG1wRzpD
b2xvcmFudHM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+
CiAgICAgICAgIDwveG1wVFBnOlN3YXRjaEdyb3Vwcz4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5B
ZG9iZSBQREYgbGlicmFyeSAxMS4wMDwvcGRmOlByb2R1Y2VyPgogICAgICA8L3JkZjpEZXNjcmlw
dGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/Pg0KZW5k
c3RyZWFtDWVuZG9iag0xNSAwIG9iag08PC9NZXRhZGF0YSAxNCAwIFI+Pg1lbmRvYmoNMTYgMCBv
YmoNPDwvTGVuZ3RoIDcyNzUvU3VidHlwZS9YTUwvVHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hw
YWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBt
ZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYt
YzE0MyA3OS4xNjEyMTAsIDIwMTcvMDgvMTEtMTA6Mjg6MzYgICAgICAgICI+CiAgIDxyZGY6UkRG
IHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+
CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRj
PSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1w
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0i
aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9
Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAg
ICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3Vy
Y2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmlsbHVzdHJhdG9yPSJodHRwOi8vbnMuYWRvYmUu
Y29tL2lsbHVzdHJhdG9yLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcFRQZz0iaHR0cDovL25z
LmFkb2JlLmNvbS94YXAvMS4wL3QvcGcvIgogICAgICAgICAgICB4bWxuczpzdERpbT0iaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL0RpbWVuc2lvbnMjIgogICAgICAgICAgICB4bWxu
czp4bXBHPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy8iCiAgICAgICAgICAgIHhtbG5z
OnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+
YXBwbGljYXRpb24vcG9zdHNjcmlwdDwvZGM6Zm9ybWF0PgogICAgICAgICA8ZGM6dGl0bGU+CiAg
ICAgICAgICAgIDxyZGY6QWx0PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRl
ZmF1bHQiPlByaW50PC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAgICAgICAgPC9k
Yzp0aXRsZT4KICAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAg
ICAgICAgICAgICA8cmRmOmxpPkFkcmlhbiBWYXVnaGFuPC9yZGY6bGk+CiAgICAgICAgICAgIDwv
cmRmOlNlcT4KICAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0
ZT4yMDE5LTA1LTE1VDEyOjM3OjE1KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8
eG1wOk1vZGlmeURhdGU+MjAxOS0wNS0xNVQxMjozNzoxNSswMTowMDwveG1wOk1vZGlmeURhdGU+
CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE5LTA1LTE1VDEyOjM3OjE1KzAxOjAwPC94bXA6
Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBJbGx1c3RyYXRvciBD
QyAyMy4wIChNYWNpbnRvc2gpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXBNTTpJbnN0
YW5jZUlEPnhtcC5paWQ6MGU2NTkzNDQtYTgyYy00MTBhLWI3YWEtNTQ4YzcyN2UyNTFhPC94bXBN
TTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjBlNjU5MzQ0
LWE4MmMtNDEwYS1iN2FhLTU0OGM3MjdlMjUxYTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD51dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQz
MTUwOEM4PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpSZW5kaXRp
b25DbGFzcz5wcm9vZjpwZGY8L3htcE1NOlJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8eG1wTU06
RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6
aW5zdGFuY2VJRD54bXAuaWlkOmM4ODAxNTQ0LWNkODEtNGNjYy1hOTAxLTRhYTFjNTY0NjdkYjwv
c3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpj
ODgwMTU0NC1jZDgxLTRjY2MtYTkwMS00YWExYzU2NDY3ZGI8L3N0UmVmOmRvY3VtZW50SUQ+CiAg
ICAgICAgICAgIDxzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+dXVpZDo1RDIwODkyNDkzQkZEQjEx
OTE0QTg1OTBEMzE1MDhDODwvc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICAgICA8
c3RSZWY6cmVuZGl0aW9uQ2xhc3M+cHJvb2Y6cGRmPC9zdFJlZjpyZW5kaXRpb25DbGFzcz4KICAg
ICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAg
ICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJl
c291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0
aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjcwZjVhZGUy
LTVmNDUtNDA5OS05YTk2LWVmMWZhNGU3Yzc3Mzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAg
ICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOS0wNS0xNVQxMToyMjowNiswMTowMDwvc3RFdnQ6d2hl
bj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0
b3IgQ0MgMjMuMCAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAg
ICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9y
ZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgog
ICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAg
ICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MGU2NTkzNDQtYTgyYy00MTBh
LWI3YWEtNTQ4YzcyN2UyNTFhPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8
c3RFdnQ6d2hlbj4yMDE5LTA1LTE1VDEyOjM3OjE1KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAg
ICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBJbGx1c3RyYXRvciBDQyAyMy4w
IChNYWNpbnRvc2gpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RF
dnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vcG9zdHNjcmlwdCB0byBh
cHBsaWNhdGlvbi92bmQuYWRvYmUuaWxsdXN0cmF0b3I8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9
IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0
RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBs
aWNhdGlvbi9wb3N0c2NyaXB0IHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5pbGx1c3RyYXRvcjwv
c3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAg
IDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RF
dnQ6YWN0aW9uPmNvbnZlcnRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RF
dnQ6cGFyYW1ldGVycz5mcm9tIGFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQgdG8gYXBwbGljYXRpb24v
dm5kLmFkb2JlLmlsbHVzdHJhdG9yPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAgICAgICAgICAgICA8
L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+
CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vcG9z
dHNjcmlwdCB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUuaWxsdXN0cmF0b3I8L3N0RXZ0OnBhcmFt
ZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAg
ICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPGlsbHVzdHJhdG9yOlN0YXJ0dXBQcm9m
aWxlPlByaW50PC9pbGx1c3RyYXRvcjpTdGFydHVwUHJvZmlsZT4KICAgICAgICAgPHhtcFRQZzpI
YXNWaXNpYmxlT3ZlcnByaW50PkZhbHNlPC94bXBUUGc6SGFzVmlzaWJsZU92ZXJwcmludD4KICAg
ICAgICAgPHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PkZhbHNlPC94bXBUUGc6SGFzVmlz
aWJsZVRyYW5zcGFyZW5jeT4KICAgICAgICAgPHhtcFRQZzpOUGFnZXM+MTwveG1wVFBnOk5QYWdl
cz4KICAgICAgICAgPHhtcFRQZzpNYXhQYWdlU2l6ZSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgIDxzdERpbTp3PjExMS4zNTI3Njk8L3N0RGltOnc+CiAgICAgICAgICAgIDxz
dERpbTpoPjczLjUzMDE5ODwvc3REaW06aD4KICAgICAgICAgICAgPHN0RGltOnVuaXQ+TWlsbGlt
ZXRlcnM8L3N0RGltOnVuaXQ+CiAgICAgICAgIDwveG1wVFBnOk1heFBhZ2VTaXplPgogICAgICAg
ICA8eG1wVFBnOlBsYXRlTmFtZXM+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAg
ICA8cmRmOmxpPkN5YW48L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT5NYWdlbnRhPC9y
ZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+WWVsbG93PC9yZGY6bGk+CiAgICAgICAgICAg
ICAgIDxyZGY6bGk+QmxhY2s8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAg
ICA8L3htcFRQZzpQbGF0ZU5hbWVzPgogICAgICAgICA8eG1wVFBnOlN3YXRjaEdyb3Vwcz4KICAg
ICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0i
UmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8eG1wRzpncm91cE5hbWU+RGVmYXVsdCBTd2F0
Y2ggR3JvdXA8L3htcEc6Z3JvdXBOYW1lPgogICAgICAgICAgICAgICAgICA8eG1wRzpncm91cFR5
cGU+MDwveG1wRzpncm91cFR5cGU+CiAgICAgICAgICAgICAgICAgIDx4bXBHOkNvbG9yYW50cz4K
ICAgICAgICAgICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxy
ZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpzd2F0Y2hOYW1lPldoaXRlPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJs
YWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAg
ICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+UmljaCBCbHVlIENNWUs8L3htcEc6c3dhdGNoTmFt
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjEwMC4wMDAwMDA8L3htcEc6
Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT45MC4wMDAwMDA8
L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEz
LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJs
YWNrPjcxLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3Vy
Y2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTAwIE09
OTAgWT0xMyBLPTYwPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptYWdlbnRhPjg5Ljk5OTk5ODwveG1wRzptYWdlbnRhPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTMuMDAwMDAwPC94bXBHOnllbGxvdz4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+NjAuMDAwMDAyPC94bXBHOmJsYWNr
PgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAg
PC9yZGY6U2VxPgogICAgICAgICAgICAgICAgICA8L3htcEc6Q29sb3JhbnRzPgogICAgICAgICAg
ICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcFRQZzpT
d2F0Y2hHcm91cHM+CiAgICAgICAgIDxwZGY6UHJvZHVjZXI+QWRvYmUgUERGIGxpYnJhcnkgMTAu
MDE8L3BkZjpQcm9kdWNlcj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4K
PC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz4NCmVuZHN0cmVhbQ1lbmRvYmoNMTcgMCBv
YmoNPDwvTWV0YWRhdGEgMTYgMCBSPj4NZW5kb2JqDTI0IDAgb2JqDTw8L0xlbmd0aCA0ODYzL1N1
YnR5cGUvWE1ML1R5cGUvTWV0YWRhdGE+PnN0cmVhbQ0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlk
PSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu
czptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgNzkuNjc1ZDBmNywgMjAy
My8wNi8xMS0xOToyMToxNiAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9k
Yy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29t
L3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNv
bS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0
dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAg
ICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIj4KICAgICAgICAgPGRj
OmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgog
ICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1k
ZWZhdWx0Ij5DYW1wdXMgTWFwIENhbWJyaWRnZV9BNF9kb3VibGVfc2lkZV9jYW1wdXNfJmFtcDtf
Y2l0eS5pbmRkPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAgICAgICAgPC9kYzp0
aXRsZT4KICAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAg
ICAgICAgICA8cmRmOmxpPkFSVSBEZXNpZ24gYW5kIERlbGl2ZXJ5PC9yZGY6bGk+CiAgICAgICAg
ICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgICA8eG1wOkNyZWF0
ZURhdGU+MjAxOS0wOS0xOVQxNTowMTo1NCswMTowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAg
IDx4bXA6TWV0YWRhdGFEYXRlPjIwMjQtMTEtMDZUMTU6MzI6MjVaPC94bXA6TWV0YWRhdGFEYXRl
PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAyNC0xMS0wNlQxNTozMjoyNVo8L3htcDpNb2Rp
ZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIEluRGVzaWduIENDIDEzLjAg
KE1hY2ludG9zaCk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+
dXVpZDpkN2EwNDQ3Mi01YWUwLTQ1NTMtYjdiOC1mZGEzNTZhM2EzMDA8L3htcE1NOkluc3RhbmNl
SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDowMTgwMTE3NDA3
MjA2ODExOThEQkEyNTNGNjM1OUE2QTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAg
ICA8eG1wTU06RG9jdW1lbnRJRD54bXAuaWQ6MWM4NmNlMTUtZDQwOC00OTM0LWI1OTEtZDA2MjIz
Nzg4M2U1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06UmVuZGl0aW9uQ2xhc3M+
cHJvb2Y6cGRmPC94bXBNTTpSZW5kaXRpb25DbGFzcz4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRG
cm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNl
SUQ+eG1wLmlpZDo0YjhlZGUwZi1lMWI1LTQxOTItOTg4Mi0xM2RhZjM5NzYwNDY8L3N0UmVmOmlu
c3RhbmNlSUQ+CiAgICAgICAgICAgIDxzdFJlZjpkb2N1bWVudElEPnhtcC5kaWQ6ODEyNWQzZmIt
NTdlMC00ZGE5LWFjMTEtZDU4YmMxZDk1ZWEwPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAg
ICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTk4REJB
MjUzRjYzNTlBNkE8L3N0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVm
OnJlbmRpdGlvbkNsYXNzPmRlZmF1bHQ8L3N0UmVmOnJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8
L3htcE1NOkRlcml2ZWRGcm9tPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAg
PHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2Ui
PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNvbnZlcnRlZDwvc3RFdnQ6YWN0aW9u
PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6cGFyYW1ldGVycz5mcm9tIGFwcGxpY2F0aW9uL3gt
aW5kZXNpZ24gdG8gYXBwbGljYXRpb24vcGRmPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAgICAgICAg
ICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBJbkRlc2lnbiBDQyAxMy4wIChNYWNp
bnRvc2gpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hh
bmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE5
LTA5LTE5VDE1OjAxOjU0KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICA8L3JkZjps
aT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAg
ICAgIDxwZGY6UHJvZHVjZXI+QWRvYmUgUERGIExpYnJhcnkgMTUuMDwvcGRmOlByb2R1Y2VyPgog
ICAgICAgICA8cGRmOlRyYXBwZWQ+RmFsc2U8L3BkZjpUcmFwcGVkPgogICAgICA8L3JkZjpEZXNj
cmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+DQplbmRz
dHJlYW0NZW5kb2JqDTI1IDAgb2JqDTw8L0F1dGhvcihBUlUgRGVzaWduIGFuZCBEZWxpdmVyeSkv
Q3JlYXRpb25EYXRlKEQ6MjAxOTA5MTkxNTAxNTQrMDEnMDAnKS9DcmVhdG9yKEFkb2JlIEluRGVz
aWduIENDIDEzLjAgXChNYWNpbnRvc2hcKSkvTW9kRGF0ZShEOjIwMjQxMTA2MTUzMjI1WikvUHJv
ZHVjZXIoQWRvYmUgUERGIExpYnJhcnkgMTUuMCkvVGl0bGUoQ2FtcHVzIE1hcCBDYW1icmlkZ2Vf
QTRfZG91YmxlX3NpZGVfY2FtcHVzXyZfY2l0eS5pbmRkKS9UcmFwcGVkL0ZhbHNlPj4NZW5kb2Jq
DTg2IDAgb2JqDTw8L0FEQkVfRmlsbFNpZ25JbmZvPDwvVmVyc2lvbiAxMDA+Pi9BY3JvRm9ybSAz
MzIgMCBSL0xhbmcoZW4tR0IpL01hcmtJbmZvPDwvTWFya2VkIHRydWU+Pi9NZXRhZGF0YSAyNCAw
IFIvTmFtZXMgMzcyIDAgUi9PQ1Byb3BlcnRpZXM8PC9EPDwvT05bMTQzIDAgUl0vT3JkZXJbXS9S
Qkdyb3Vwc1tdPj4vT0NHc1sxNDMgMCBSXT4+L1BhZ2VzIDIzIDAgUi9TdHJ1Y3RUcmVlUm9vdCAy
NiAwIFIvVHlwZS9DYXRhbG9nL1ZpZXdlclByZWZlcmVuY2VzPDwvRGlyZWN0aW9uL0wyUi9EaXNw
bGF5RG9jVGl0bGUgdHJ1ZT4+Pj4NZW5kb2JqDTg5IDAgb2JqDTw8L0FzY2VudCA5MjcvQ2FwSGVp
Z2h0IDcxMC9EZXNjZW50IC0yMjcvRmxhZ3MgMzIvRm9udEJCb3hbLTIwNyAtMjI3IDEzMTAgOTI3
XS9Gb250RmFtaWx5KEdZSENCUCtSYWxld2F5LVNlbWlCb2xkKS9Gb250RmlsZTIgMTEwIDAgUi9G
b250TmFtZS9KSExVUkorUmFsZXdheS1TZW1pQm9sZC9Gb250U3RyZXRjaC9Ob3JtYWwvRm9udFdl
aWdodCA2MDAvSXRhbGljQW5nbGUgMC9TdGVtViAxMDgvVHlwZS9Gb250RGVzY3JpcHRvci9YSGVp
Z2h0IDUyMz4+DWVuZG9iag05MSAwIG9iag08PC9Bc2NlbnQgOTEzL0NhcEhlaWdodCA3MDAvQ2hh
clNldCgvQS9DL0QvRS9HL0gvSS9LL0wvTS9OL08vUC9SL1MvVC9VL1cvWS9hL2QvZS9mL2cvaC9p
L2wvbi9vL3AvcXVvdGVyaWdodC9yL3Mvc3BhY2UvdC91L3kpL0Rlc2NlbnQgLTIwMS9GbGFncyAz
Mi9Gb250QkJveFstMTY5IC0yMDEgMTEwMSA5MTNdL0ZvbnRGaWxlMyAxMDkgMCBSL0ZvbnROYW1l
L0pITFVSSitTdGFnU2Fucy1Cb29rL0ZvbnRTdHJldGNoL05vcm1hbC9Gb250V2VpZ2h0IDQwMC9J
dGFsaWNBbmdsZSAwL1N0ZW1WIDEwNC9UeXBlL0ZvbnREZXNjcmlwdG9yL1hIZWlnaHQgNTIzPj4N
ZW5kb2JqDTkyIDAgb2JqDTw8L0FJUyBmYWxzZS9CTS9Ob3JtYWwvQ0EgMS4wL09QIGZhbHNlL09Q
TSAxL1NBIHRydWUvU01hc2svTm9uZS9UeXBlL0V4dEdTdGF0ZS9jYSAxLjAvb3AgZmFsc2U+Pg1l
bmRvYmoNOTkgMCBvYmoNPDwvQUlTIGZhbHNlL0JNL05vcm1hbC9DQSAxLjAvT1AgdHJ1ZS9PUE0g
MS9TQSB0cnVlL1NNYXNrL05vbmUvVHlwZS9FeHRHU3RhdGUvY2EgMS4wL29wIHRydWU+Pg1lbmRv
YmoNMTAwIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNDEyPj5zdHJlYW0NCkiJ
XJPdboJAEIXveYq9bC8aFHZn24SYtNomXvQntX0AhNGS1IWseOHbdw/HtElJlI9wZuYDx3y5Xq1D
N5r8LfbNRkez60Ib9difYqNmq/suZPPCtF0zXq6m7+ZQD1meijfn46iHddj1WVWZ/D3dPI7xbK7u
236r11n+GluNXdibq8/l5trkm9MwfOtBw2hmZrEwre5So+d6eKkPavKp7GbdpvvdeL5JNX+Jj/Og
ppiu55Rp+laPQ91orMNes2qWjoWpntKxyDS0/+7bS9l213zVMasKhGezdEp8S74F35HvwEvyEvxE
Ts2rkrUlass5eQ4uyAWYfUr0scxYZCwzFhlbkkuwJVuwIzuwJ3swe9qpJ90s3OyKvErs6Obg5jjL
YZbjLIdZjrMcZgndBG7CvCAvzAvywrxMeboJ3ETIAqanwFPoKfCUB/IDmM4CZ6GzwFkeyY9gvmfB
e/Z8Fo9n8XTzcPN083DzdPNw83TzcPN0SCcsw+VXx1qk7TW/O9ecYkzrNq34tGfYsC7o779g6AeT
qvDJfgQYAF56zQYNCmVuZHN0cmVhbQ1lbmRvYmoNMTAzIDAgb2JqDTw8L0FzY2VudCA5OTcvQ2Fw
SGVpZ2h0IDcwMC9DaGFyU2V0KC9zcGFjZS9DL2EvYi9jL2QvZS9nL2kvbS9uL3Avci9zL3QvdS95
KS9EZXNjZW50IC0yNjIvRmxhZ3MgMzIvRm9udEJCb3hbLTY5NiAtMjYyIDEyOTYgOTk3XS9Gb250
RmFtaWx5KEFSVSBSYWlzb25uZSBEZW1pQm9sZCkvRm9udEZpbGUzIDExMSAwIFIvRm9udE5hbWUv
SkhMVVJKK0FSVVJhaXNvbm5lLURlbWlCb2xkL0ZvbnRTdHJldGNoL05vcm1hbC9Gb250V2VpZ2h0
IDYwMC9JdGFsaWNBbmdsZSAwL1N0ZW1WIDEwOC9UeXBlL0ZvbnREZXNjcmlwdG9yL1hIZWlnaHQg
NTAwPj4NZW5kb2JqDTEwNCAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDMwNz4+
c3RyZWFtDQpIiVyR22rDMAyG7/0UulwvSg5rawomMNoOcrEDy/YAqa10gcUxTnqRt59klQ5mSPQZ
Sf51yA71sfb9DNl7HG2DM3S9dxGn8RotwhkvvVdFCa638+2W/nZog8oouVmmGYfad6MyBrIPck5z
XODhyY1nXKnsLTqMvb/Aw9ehWUHWXEP4wQH9DDlUFTjs6KGXNry2A0KW0ta1I38/L2vK+Yv4XAJC
me6FFGNHh1NoLcbWX1CZnE4F5plOpdC7f/5CS9q5s99tVKbk4Dwno8zmMTEZZXZFYjLEpXDJLDG7
FLMR3jBvhbfMWlgz74X3zEfhI/NJ+ESspQbNNWjR0qylRUuzlhYtzVpatDRraXmfDDd764rbpu3A
fab2GiONM60wzZEn2Hu8bzmMASiLP/UrwADmMJTTDQplbmRzdHJlYW0NZW5kb2JqDTEwNSAwIG9i
ag08PC9Bc2NlbnQgOTMzL0NhcEhlaWdodCA3MTAvRGVzY2VudCAtMjIzL0ZsYWdzIDMyL0ZvbnRC
Qm94Wy0yMTYgLTIyMyAxMzEwIDkzM10vRm9udEZhbWlseShSYWxld2F5KS9Gb250RmlsZTIgMTA4
IDAgUi9Gb250TmFtZS9KSExVUkorUmFsZXdheS1SZWd1bGFyL0ZvbnRTdHJldGNoL05vcm1hbC9G
b250V2VpZ2h0IDQwMC9JdGFsaWNBbmdsZSAwL1N0ZW1WIDcyL1R5cGUvRm9udERlc2NyaXB0b3Iv
WEhlaWdodCA1MjE+Pg1lbmRvYmoNMTA4IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5n
dGggODc5Ny9MZW5ndGgxIDE1NTA2Pj5zdHJlYW0NCkiJtFZrbBxXFT73zu7GzziOH209Ybiz43Uc
7+zaedixG5OYHa9dx4WuHxEziYDZ+JEgxa1JDUqQqFIJaLKpRAilkZCQykNIUaNyxyFVIkKbkpKW
PEpogSBIWK+d/CkvFdSqNNjDubNrx06coCLY1d4z95xzzz3fec2O7f7CEBTDPpAg8Uhf/RrIfq7i
zx4YSY6+cFCbAiCtANKhgS+OsazYdxGX14dHd4xk9/5nAIorduzaOzz5HfUKwPKjAJX7dw4lB32n
1nGAVatRqWknMrL6q3bgUr1zZGxPbn8QoKB612MDyffrp8cA1v4IbZaPJPeMZuXNZ3FhjyZHhmzY
/yXco0/06uhjj4+5JwF93vCykI/uHsrpb0jjchwkcpkcAj/qnqYp5DydpeQanvkAuYV+SSIkANJz
QN0EsG059DC6d/fj0AbsZkA65lYi9mPwNkI/ImQ0n54Tt2HE0BSuBGkR+KSvIP0ZRjIAMaiGEPRC
HzyBnJ/DnwklRSRIGkgj6SIJ8gT5OjlMLpI/kXcpUEplup5a6Ntr9Bf0mlQilUrPSEel09IZn+xr
8H3W9w2foxQrISWubFMGlBHlq8o3lVPKT5VLyg3lH8o/mcTKWRVTWJDVsAb2IGtno2wvO8C+y37A
fsiOsmPslFqmVqpMDao1alTtVz8TpMFAsCS4PFgRrAoqwXDwoaAdHAqdf+/sTd/NgOt6CENQgxj6
4Tk4C+fgL0QixUQjq0kT2Ux6PAyvkrfJO+QDSqiUw3AOMfxuAQbwrfCt9h3ycaVIqVbala3KdmWX
sk85rJxUTivnlevK35X3GWVl7H62gjEPQ4uHYYztQwzfXxRDn7oth6EUMTwwh2HQwwACgzvlXndv
uCdwxfpxz7mv4XrBxdp1L7qX3Dfcl9zT7kH3Ufdz7pA77O6YOe/WzWwFmPkJ/j41Y06/M31t+sL0
67irmglNvzt9ZerLUzumuqYap+qnVk5VTOVP3picmrwy+crkiUknczTz7cyRzLOZb2UOZw5knkyf
yzyc6coYGT0TztRlajM1maqJVyZennhx4sTE+MTzE09NPJn+Y/oP6bfSb6Yvpy+lz6dfSn8vfTC9
/2p1QTjwt8Bfvcq69Xlx3voq3OvDc79bnxfuqf///DwFByAFF+AivAG/hMvwK3gT3oLfwG+xP6dh
BlwE+TW4Aufh13AQLsF+otBu+jD9BP0kTdAeGqI1dCWtpatoHQ3TCK2nDXQ1XUPX0kdoL11HG2kf
jdJ+qtMtH8qvOH5boVX0Ms3HigiLTqcX3Jt0ufueG/T6fhN+W6CFVtNqccTTqKYr3Zvuvzz5fBu/
96zoc1aue3a8PUTwq4NONrlc7JE+P58v1ZEjYi+FybOCctAZhy1m3GKsmy/t6eaBvq0mXyfzWsse
ZqktJqeh5Kk8yIOBAW27rKocLA6G1j6OJWPYsQgnOmf2cIRTnQ0yfibBfTVbx2tJgREfiPNA3FS5
FLJ6t5mqpsopk/FEAlltlsx4s3hqtizmZLWTg7wWWbkd4w1C3iA0zyRMht6kkowXJEwbOUzICsRT
k3hqsmXbsiyZk7BlaRwS5pBlRbikM7TjCyXRM7+RMLlfi/GAFkMcFid2hPt0Df1ig45/e4wJifBY
znogVu634wNcqlNRaLAUS+EFToM/hCB7TDshJ3stU7NUi/G2PhNlsoCWuz/C/TpfYoTHgWYjFcCt
FtMw4Fosyen2YU4G0Avur4vwJToTrhYaAyd9sJ0JC7zNtoSK3e65mqePLykEIx6rU+din68vzEVB
1goJowsG4rZZPKUlRV68eIEsYsqZjE7OeonZ0ZLt2SsK73KcV+MpkG9Bm3+oSPcAjRcWSJhsWVOt
OjXCi3WH0jgfTLZH+FIdFRnjRcZmcRwftJjFi8WuF3fFuIvwEjSzzAsJwwgM4L18qWGzlM34Ugxa
hC/Tu/tNxzfYblXz4iFtT4SX6t09ZndflimryC/z+Mt1B0qMLaZTUmJwkozxkrCoWazkmFMklmJc
OKnETEihhOmI4CHaWArzK66tUzU8NvssZ+XiCLaC4FiIpBP970TuwlTdJYEOQJmG0TI4bBwnhHi5
KtPBARrvN3mJFmNxXojFV6BhwcWYjdefKC0lsBRisZTtLA+E+YGwHMQwlSO2snCEV+gOEbQS4yzo
fbojCXq/7vgEfUB3/IJW6U5AUFl3lgi6QnfyBP2I7uQLukrXZuPOAzZGWGNRTj4tGiTC6+YJK+eE
n88Kw/OENXPC3VmhogMvDv8X+D6K+BT0iyE+QVXEJ2gQ8QmqIT5BqxGfoCHEJ2gN4hN0JeITtBbx
CarrrNUr04iO15bazMDc2oaXSmw9XdRqVOeRMI9gF9ZjA3Syu2RRSzZrYiLeU0MW6BvmUksqeX2d
4ycVcRMHmQC4en5k7hSv0Vmj5+9a1CPxOy/B7lz0csGHyh97L5z2jVqzs4ZUCHDrMADo8eIOY1ck
myO8UY/e1xrhTf9JFSt4ANXXY06gMsSirFN0PsayK5Xq1DpxVJj4isDJiuOgiZCKcgxpM46oSr4M
1Xw4NUOeGs83wkOpqMZYawrttSxUYdGsLe5DDmoybouh0dZjHqf4/1M+TmukKismBmkezmTN09Y6
sIWN2/vRFsMs+96ghj2occlIDqKYGkkZn20xyG4/k0S3cLxrHZhMDW/oQHxIvFvQ3iKXaNmR6cMp
gUnwY2X577CKFgWikOcEronsqLx1F+b+wdk44D9T7q/JxUFrxRBtmBPxPE/eoXWKS0X2WufCJ8Dk
Igz9ZpS14itXeJ9jMuHXbAoCIdx1zX+7Z5O3WFnnMqWJ2v7YPE+M2VTZ4i/A7ZBn07sRB0VURLGD
LzPMhIyvTNZqRZ0oKccG3bRA2isnFkjbFj17rxMf13lz+F4XxnTeEk6hb6K+ENRdVTGhUR7FE4YH
WdTmbE5EWWrYLFHss6zVdpw7+AqZVfwQRdz5v6pbgUKMqFYNp9C8ClGtnI9xnK3N4dk4dOCuJaxq
uUjkkMyB7kTQFdkGx78X2MtlUb4O+/mhu/C70BwpL+ON+LxZ5+uR/Jvraott4zqi997lkqIly14+
RVFccbl8ig+TXJGURJFaiaQoS7ItxZYiWQ9atmTZlVPl0bpK2sRxnDbuT4MWaAr0I0VQBP1IH25c
tMinUUAfLdCPogUaBA2MBgiKoiiatggKB6I6c5dUjBrw7tnVuXfmzpyZWc5g3GoQYP8kzNJ2pGYT
KOF7MwDPJN6FZgXgLACK4FziXcrfzAHgb+aRUwPwBHIQnEcOggvIQbCQuA9dbxzQIiDK0ZOJ+9R4
twTIeLeMPIroIvI4WkEeR6vI42gNbVYArKNNBA20ieAS2kSwgZxJAJeRg+AKchBsIgfBFvdrAtBV
7heibe4XomvcL0TXuV+IvsD9QrTD/UJ0g/uF6CmI8chRAr/In+6VAe4acAzg0xh0/qTD0zMwRluc
Zw2InOc4h7Y4X4LFxaNdv8yf+IqbBsQVXzEg0vdgnxbheQMi4QUDIuGrwB092u9r/InTXzQg0l8y
INJvwcoW4WUDIuG2AZHwCnBLR/vd4U+c/qoBkf51AyL9G7CyRXjNgEi4a0AkfDNx32pi7Y/Vifi9
jq17QnBurz2Hk5Ap/+EjVmK/JVkyoEeyPW6BETqNv8saRBCqM4Qx2oBE1ehsOiX3uRwBk9UZp+Gw
GjA7HTJzy4LT0c3UQKQgC1o2nxtMsUhKyA2WmZZ1uel/5U19fdGdntGGV/RAuLo+9Paeas+NT8cW
Gt78XG7owogvVF0dqu8m2XhgoF7yx2RXZ5ec1NOZqbR7e9gR9J4olZWk0tN1vG+gGM+c0bzxCIiI
JA4/IH9nHxGJmO+fEGk6bgejBXc3OORyW8LhhCus+QYdybCnWtTGztCL2pWNjYxHXtq8nj773kXv
+gPCz/8BeQi72HEXAXdxmC2RssAPAmd6OKtnfacUmyecdOZ8WshFL156sO5Nrq4sRtLXN5dkT2Zj
4wruNHf4M/IdcpmYycQvRFD0afiZObek2wTK4KfsLgSRrEFgS2TWq0v4kr362LtlvROAmZglyWR1
xd0FNac5LYuSe8Izf6HRuIAWvLCPzvaJQDy6i0GpjM4YizFfRJAETA1VKdOb0TP0T2z/YATYjBQO
P2VJtgBnjBCf3gs7MbC/DQkmDVg6RWaj0WjQZO2JU57LFDPyJzMLREENdDNMtZYtM5YMV1bz+dVK
uH2vedOVaKyS9sI9FoU7DU3szieT87sTcE+l4J5fGlPVsaU83AOBsSU8SQoub7AisZGMnhKpYALN
mQTTHTgGowLbNotwPLJ+dDobsamSU5IsVk885FRymtQtqDlwqKBJ9I3mT77VETmVtbsLmQCbLJfL
9MddfT0nJ3oDstgUuFbg8j6rkTiq3OlgXOTQnRgl2yBxYc1EBaEkoKk4icuxlGh1xzXUk6EEjAGq
AmOCereAyhRnoksdz/vGcgFJySjKYKTPkjQHCtOp1FS2N5gb7fGX0v10M1CrjvWd8AWTsj3ks9l7
fdaM2e/3eBLD/bHRRH9ntzow6C+DLyR4eJX1Q1QCJE/KetFLRZPdBt4xKEgzNYnEtE1EIjBRAKcp
ZU+2qpPRc0E1lVDzwXw4FA1aIJH2VgKN4gxHCi4X5q9gNmN6C4+lFI8XjFRXc0PrkNXaxsjkM76E
c2UoMTXYR907VW15IvxZuKLJsgZ/r2Z9Pq1C6/g2Nrtbu/HWzuBkOaqVBs49N12cDI0v/c2XRXUA
D+6hiubDk3XB5XugRQs5RuJ61EpNkAARroya2FWI+uiMAHou0dmOjo5jHcckSTppRj1qVI0oFhWy
Q3NFGplebT5YmaF/fP3bKO4PP6RO2mi+hepfxhoDCzbSD9nO6dmTlHFVgdZNbMtMRZGuEV4yIPtW
0cHnZcIfDykpJciVhcFSJIXHzWxxubj88UWZUakdLJXt+vNTsebP6WJodMCdT5fqkzYl2dv8J7V6
T6mO5s3/9Cb9Nql/wPOraCXjZft+bVzJL7tsl3O9mZC7+W9XKEMfNh+5gqd6vWnVCUIcgC78OvsN
1GdUD8k+a4cJ8juN7QELlLdh3pBrwmwsGuGlam+1WEtKeLxCsQFiigeSiy/NNV7zF6TM0KhPv1wJ
xOobw/JYMSuNSOXZhdjpF5Yy9Jp+a3NssRZQ0/LxwQvX88Ub5zMnlIwqR0sDLn37DuYOI/smRLaL
eEhED4IrPHw8kBQKh6eNEJfDLgGnUxGhC2nSkfgohkzl0Vv+ZOHWQjy9/OJZ2h2sbY6/887EVlVl
+0OXbp+ev7Om0U1952z84JfJczsQE7SbB7ud5JSegAybRMG0hYo30ogZbecRrp2kU8J/rQ4hKa3/
LN9U6R+az9KV5tvlMtsvH5Ji8xPCY/4Z+y5Mvigp6IM2iYkswLUyDTVmEkTDFs6+KpdMwwz9okZm
JckejUQVi9UbD5kf75U4cz7PRL6Qgw4uqezildtTzy9nM0t79cHFSkbKq0/Xi41KMDa1MVza1d58
v3jtqfLV29X6K1eK7thwIDhRzp7fGR69MZ8eLt/MN39IjFiQH7Q7Pw8+a8f9qPNDzKXlSayL1go2
DCtE0q/3GemCjrEGfR/GPS4TiWiMGlynOJcn6fdh7V7ZWCs4eMZTetwKrRHKdBqbJbTNl3CH0RkR
BWrY7yJdNslmw3JVJJg+EiSbUk1iv2sexJoHk1NQpO46qzdL9NcH77H9Zi/9GH00lPUE2OmGyQZd
AU5CYTBtEZOppTCx7a3XI50AWndUMXOPlba6VOnzulSXaTh1Zsgv52dSH3/UrwUd7kjO92e2Hxmb
iyXmy+HmI1r1Jot+pZjwtO1vg32JyETT011HHQOa0hZpyQuUJrTPKvc5bMCWpF7Iv/sxPyx2Vfg/
VxLgSr87NhL86bkf/f6vbW/+YngTqQ9HLM1/UDN3KTXi9xcTOJcl8Gie90mv3gPDiQhroD2eO3AA
uyKf0irEWM0pbP5g8gC+CO4e7LG7fIIoh5/SfzEbCZMhsq6vwKSj7Di10FSQmSwyJWYTjj2LiVq2
2y2lPoPxbogd8JUyNWOlZnP7AT4LIpRk05Gh6JDS7+vrcdlOdlpJmIaP/Y/waotx4yrD55yxxx7b
e7E947vHnhnb4+t6vWOP117v2rs7Y2/sTdJuEqLNpd64uUGVKEiklAcuT0g8tRJvLYKWm3ioUBBS
EVJRaREvhfQB1JcIkApIICHxgFSoUOLwn7F346SRsGTZx3N89F++833fz/GF4BH0A8FalfpBh6rD
QhB4TWCp5qgsq8I90PVa7cgvfpBulyPJ5jPL2b3kCTN7uhC6MhzdCnu5SByT1I1ybT/IcfKxzM45
v7TkChfXZLmZD87Plc1nk2LJuHnpH7EWEwnmyivVrMQJ3Jm5+VYllE/4aPYD8Dmb5B7iUQ7d7HDp
lJOx2ey4P7gTAiMWh4w3BtDWadoOTPPG7CTVaEd64jmt+XQTvfo71KMFAwJYRlHIBXIel4O12xCP
eSdUww75CgB8r64fMp96CAbqHQSRwf2Na/F1Qxlt1s+uS5mt80ahp8WjFTOX0JdSHptSabg2KlfI
vfF7tc2l45e0+uhYoaWsDbK53TVFALH4brQs89A/FfK0Q5fTVC1i0SfUonekFjtULdKPq8UsRz1S
CzVjHjT7N2NbgZPLWVOLi1VTDVfyIrvtzjfMdOOgq2IW4slvN4RsKVnfLRVPNKT5cNLHx8qKvzAY
0fpnIa461D+KltE3J0Wfk6XwnI1h/Rh8Sz86u7aT/v5kkzipPMtadNsbOO2EEq7Ncdia3BMb0KPH
AyfVgaO9+51wPIZRNhNbji8HeJ93YR4gG8VRzmrSI8hCq6Y4rdUoTqEWtUdKiiX9wlY61T5b3boa
N0ILXCiV+Fw+3FhRbK5MZTWaNyoRsdpzlfqXavXn+wWzgjcefAWgmQhoWqvFK+XoG9Fyik+t7Wbz
uw2ZVke1XLgP3F0JdTrrYhyMHe47sB1Ux04o681mN4WcomCklJRSTg0H/V5IRcay87FUKNh4h0Sn
r0k//ZM0HLjYGHZV1TxYbQyNDB5vMVJ1OxNeycvcmqfY7L7KSJaj0xKMCxq4Wr90rFDoH+jORSbf
q8bnQ4qwGIfm4nzeXInFVro5qiugJfgF8lcURI2O7gav7sGYGlSGIUPoUhc4G3ZYtqANt4dl11kq
EkEU9PrTQJFOLgK8CdJYq+pHgGQFQYPbc3lnZ6+XaArCfE5YXnnlFfx7ff7ghm+h4vb0u4v6uGRh
TAKP7EMp1EBf7cwX8vKczc6GQwRoGy56BOAkW0ChAtmbosNBpZvynHUtNhmAVAaCbc9i7ukbAU+Z
NEaVcrqRacSjAd7CUwqnnsQTaP3jVvupsIrp+5sppbOvb4+U9Zx5sXruppxPXF2DLoji9YzYLCft
7sxyPVY0l8Nireso9Q80/fl+cVu78eBj/dRqrKNLK2Uh185fW2k2Auml0BuxZZlPt3ZVwJlksSCU
+2W4hQyoSLGTg+mKIRcnFwih9mBq2IDWkM1hAw6zDAQ7NRAMTJ0DwzAI9+A/5MXLl6Hj8DfCwXlu
Oju5HMRy7ZRtNgZWDW0MmTFhPq+fzk4S47DoEGsOP37nl7cMA6ePf/hH7L7+PSC4RSx+OL4LZ594
+F/shbMXkNJJOoHAOBhm6LiDNiy/QiFlkt20ssjAoX6ocYBaqyBrXdwTRjLuFuc8/jpf1sm9B9+K
S6y97nTVltEkbmbPYsm9DieG/C6YOfAUIgKdNuxDB0vsdsiATDKIdsKIrulDdkjB2zt6tt9xg9nw
K4Ky6ORiBUnxVi0mdXgn31j6RRN0C9QTDWD2jGZDrJVkzlhtrl3gjY3k9fbWSe7Y14rraXBK5z8T
yNal8XtYuXh6b3v8LuFebG33W19Prp3SpnXHEH8QmW8tuMij4H3wlRnSibU9oB7BijyA6BKe2IYA
397hg/2fKV4I2Q6u+LGQJ5FCkAQb9YbY0rIchPfFbqGVWqTxQGRJK6JGN9k8rR3yVxHi8U+mFOr+
p3wFJYJwLL7CKCVHQnBF/Bhw8CRPzRNmZuqkseBc4zkzo5rPra4OTVCh4b9FzQTSqopUglSjKroK
/ZFeH/WLxf6oro/6BewpDhpJqbFbLBxvSFLzuKX8BVB+31OUP2Ipv91OhtS4tmcFnVZrE0+Vv/0p
ZzC75/8o/2xBn6b8Z7auJIz15NWWfm4rLbfP9vKmpR+5SKOi2Dzpsu7a1sbvkD9dqayXBqMqpAuN
AOXP7zZlQSlHXo8tK/wEE/gk8aA5lOkoTtAPhPtzmOzAhTlMcGIV/V7/xCqyM8AM4pPmVcHoxEer
Tju+S3ba47cJ9+WWQSkbxcE7/gpqWEGVzlI8ZmMAYfiI2C0/NNNmKREJOVlUwRW7ZQanvKfTvNUl
pvZpvxEUGYFnP1n/Qj5RPF9tD3h1TS1tFYRErZdtjUQpfqoUXVL4+WRFWdnVIjdd2cxSKqWVA/GA
l3MHYrmE2lJ5NZkVRXcoHRYi/gWnJ5RcknZOQ/RhYBKT/By8B0yLUcxiK3Q6QtCxx4anbG85JJji
FDorCilriptYoJolSpolRFYmdWyyQTEjBLKib2fHeOklkg7Fi2yYcbmcnnAmjG/rd+7o42/Ho34b
rV8X7keUcKCQtye2xh2ZgwkSnA6hzoeubNPV1PfwjKWSNDh0YD8yoonJz9SWT3+dXLHDHfsdOCVo
eRvOAUCM4Zhj0oOa5Wqo6EztjaxkLH/zzzOnjC+JzYrqMUKeBSYkyrddn7+FV8b3fsJnqhLeGZ+M
tQhORlvr2zSXBVBZF+TCI7WTcjvpZMbTMbBPJqEBtU4FUvMJFQq04ET16ozm92vY4mf1s84Fh0/g
w8G/dN/96eb4X26t6PLNvY6xS+7ohBvr+P0HB/ECHSutORalquTl4ULrYxRl/g6/oA+ucffp5+/u
/c35EJTfLjI/gCUHN56+6Hz05sMAzLJteJq1i9Y5My/yjceWD+F9H13AKWSSH6E0eQFlANtJ8j7K
olcfZslrqIx+jUw8h4rYg5J4E23g76Aq+gg9g3+INtEv0Ca5gKLkMqrjN9ES1KdIAnCGjIJEQgo5
j6okiGTyLFoBDUuht+E/d1EX30cSfgsZ8FnHf0AyY6Iy+T7ykFfRPvkxypPfwOcleB+H929h/WeY
TD9B+/ij/7Ff9rFZX1Uc/977+z3P03bQFVgbKKV0wKCvGy2BDeTlodRC+5RudLD1ZSoPbWHdCiUM
NjBxQvYCCuyfzRmXmRhlGuP+oJIRM6cytmg0WYyiMiqSvQiIqWFumhAWrZ97+2spD6hZov/xuznP
Offcc+8995xzz7mPcu0T8FaqLdgMhNAXGd8C/gv4IHiDJtiPdLf9jsaHBay5k3f1fuXZHZqOXVvt
XYSHRZ+pqjBD6HNG1eh6q+1Ryt6mOaxValOaw20psg9BryTHDADvDu0nF6RMnpqDryIL396LvJvX
o1JSf8qc1zRzt6bYFtXbfE0KqnSzuaSbbTF4kP0Dzdd53QeuYe9ab/+P1WGr0eUjbDVF87HDNP1Z
95vLusM0aEmQ1Fzzfc21S1Rm69VgF2m55x3QApPDOie0yjzJA+xpzfRn6VWLbedNjW/MVBWg7wzz
On5ZomXBQlUG61WFvcvNb/GLs3kEnLfc4+eRjXjYvCZ4feic/R7nTEc+iYCx6cA6wAC32F/hxxF/
ZID5uZKedn4ZC84vHcyZgw2dD64DwSGw80vqasAned4vA6rXwNCH4BjnLh/1SyZM0QqPnW/GAr5B
h5TH7txuX2eHQlV4+lvY4QPd6WkXm06XMVjfJJYi2tvQ0S5+XRxhE4+dzVKRDf8TdrHec32sF7TQ
0+/5+E/ZQfy0Urm6NHSG8/8SPAj+A74olHubXiIeBnibcG/sKe7OD4lP7g8yTzjw94h49sB9Ik5q
I9x8FV4EblYeOSLH+5e9M7FdOfQPW6K37T+jvvO1s/UYbOqxJ3S4R+VhDjzuqrszEW4Y7ZN/3D0a
xevBfxrTT6OLu2Pcc4/3kEvWqNDHk/Pnf8N/G8YuN7j76WOwOMIuR3BPr8Hvsm+uimPL1BYeBdpU
GpaSf+ag81/VHJ6FdlB65eyx6iuyo36M4svdKR/XI/Zx8VZP/s2MvYz4wMcX8N1pfDrZ+fgaOw/b
8K5RW2aefcSGI7ZLka/II3Yv+fpjVdlW5qyGPxK/72X4OdNH0TojtszEo/a75hzkj4ExcTKi31hf
OEzpDZ6jarmc9xS5+k0l9WPA1Z/FSpo7gfuhnydfv6AydLuPXLM8LNftZj399VpmfqHZZrcmm0fR
5VnydKcKzTPwnuUMbmw6+XEv+XOvZo7KPTdG7iv4gfc9NW4acVgdpHRb+FmVBfjHnCJvz9eqcLuv
UwvsSS31duxQRdChO4JN5Nt28u3n6G/QrGANfl1AXdmohD2CXSZQa6eqzjYNXfL5+if49IiqTCV/
+w7TP6F7zXFq7nHoyyom/xdRT4rwRZE9o6KgGqigzi7SWl9jx1Njz2ltsEQFdjq1chL8l6kdk+hX
coYD2Hwhd2UF/CZNDGcr33xX+cGTmuj9UQO/TOPxSSX0LTqrNeYivFJiswNeL2sUY4+/w/u61ppv
4D8D/SXGqIH2tMqDrfjzYfrZnM/V/83ILeaNsAo9XD39NLiRGj2deXuAfarUZbUDBeZ95QbnFA/z
qIlvIvMA2MHvgUFgi/LtUbC7RwfBL6qJmGoP+nl6bVW7PQtcxManGOuDdnk6zTpu3ln0dm+B3zDW
iU8OqSN4A/od5QXzwKuB11Qc/Bq8E1vP8Pev3cOPWCMBP+Flyv0b6Ti8m7grTq8vK865FtJv5n3U
ZJdroo/3DzTefI170givgT8JfwQXInsIXAu42J8HfhigbpgB9HRx/21o925YyJx32O+CmoIYMksZ
/yK8t6Cnse556IvoOlIXGxTgEzc2x91PnVYTkND7QweCYsWDEq+H9Xqwtt9rGphzEQdN+NfaWchf
+31mtO3WS779zrcPzafMI+anY5udl9G67BvBhGB18AXaCdqga2FOuNS3x2k/C8//uxbbGBuIz46/
kpicaE1cSFzImkBblrU5663s/OzO7JPZJ3NiOV05L9008tXdaDfajXaj/W8b/3JEnXs8yo6WqrVE
+6FeHF8Q5chsbXNSfIEcb5gOoQsiOg5VyagJsxl+iH+Aw7RRpXk5oq1yzdsRHcA/F9EhNXViRMeh
lzaualrX0ljRku7tfiy9q6qle9OO3vS2T8LVCvVpq3ahd4826UFtV4lK1akycI3mqhooUdVobx7a
l2i10khu91SnGrRF3azgfnf5+Zuj8SRr92gn/F49Ar0NKq0u3c6sPqTK/Gr3wNuARB90A9yt9Htp
aa+VW6/nGm4Sbd0uPXCuXq0Fuis6j1uxXjvYdYs+7+f3MJb2az7otXK7JpHeeB2pK+uW6DF425nj
1u/mLO68j/Lb5XfoY6azRjOzNsMt0Qzk3ErdzExjlRlq1Cpq8Tr4jarIGK3yq25Ch+HzXd37JDP/
X7LBcIAPvUIcXO9LHS5qae035pm2V2WylKXOrf1K1B6VVs6bGVO56yTHtYfN4aKs8vjkRCwrYq23
a21dvCa8NeZZ42pfKzg26VjusZxj8WR/LBvWhNqjSfe5TqC6/llm35rWw8l9rf1BV13/bNd7NWs3
tyK5r3NtqxNp40uOeyC8J1ycVRkvTMTGlf/ADD11ODzYb1V3JNYVV13dvwQYAFpHMVcNCmVuZHN0
cmVhbQ1lbmRvYmoNMTA5IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjQyNy9T
dWJ0eXBlL1R5cGUxQz4+c3RyZWFtDQpIiXxVaVQUVxqt6qKq1ENK6U61Dq1dPS5EBNQoRjFBRJQo
CgKtLCoeEZAGFJCtA+iRjNOMjmLMcYueE0FHRWV1AzQ6EpVkEJVFo43SiIojLhFaTL7CryHzgJm/
c96POm+57953v/te0ZSdgqJpWvRbuGR5sJ+LPi0yVh+ZmOo2LykpoX9CkjW0LNrJo+1F9MSID08+
TGBhwnDQO5SNHrZQSSlo2tPPJyk5MyUu1pCmmxjlrPMxpMSlpsVFJur0UQZjZEpalqtu2tSpMyfr
vNev1w2sS9WlxKTGpGTERE+e4qtflpkco5uqi45ZR1E0adQQihpLUeMV1EQF5cpS0xlqFkXNpqh5
FLWApfwpaqmC0jPUCopyIuophuKoGZSRqqEZeiL9NV1K19A9CqViqSJH0ch8xKxgrjGP7UbZrbP7
jrVnU9g69g8ulTvDveY53o/fzXcOcR+ye8iNodxQD51gsxfkrVdghpF+cpcpk7eKlr3nKlsdryYe
jY9PTd+QtmfLwa+13/3lwPZsx6zMTQm5WuFSQQaEPYJa4HcYlaflX1Tm0+p27iaEsbCPu4Vh7Lti
DrN6prA4hMPs3imsqgOK5MtiHteFtSyu4YQCk0WubKUrgJE/LmXgd5PY1Vh84Qep1cCvjQozTNOg
OLcD/GF+Wweomi9uTCiWLrRxJaHhRz7RoB9qUY0ZaAQHFCFAEh7ssMhFrbQZKGgFO8ashnAOMmEE
KCAXtuHwbjRKuIoDytYnykXtPHg88MZlGOI1Fz0kIXaHBXIeQeLj/g0IWF5iwTbIgS2PcAskwi+P
bd6c0GB6CGsfQP5j+hzwhIVi4INJfGs+UvSTBD9juhcMxUX85sTYHH8Njpr/AoIg6MlDGNlckb6+
VDr7nDu5LPT7TzUYjn/CEbgJN8NHOBzCJaGdeNlkgWrjgPw6oBnwV0MT1GET0D2BSGM11kE1Ur2B
vIDmgoyeQCP9EBQMBKnJtKJ/+Nzg6KB8sksW1wk0xOMLtosUYpssQjLkscXTebyOXSx0IcULwcSz
vkGMbFJb8JbcN8gBmwsy5HoQafNzecPAjs/l+m84WGGrZ+s5WCXXs7ts9UAR8okc+tsK2e3kIxey
6MIJTwm2BiQSC3MHvHipqjKrOziVWa7J4+GxrYbt7Al0sx0ggBr5AIsOnACCqUW+1EJctZMnA8NA
j0mEOeAEDpANWegESpyDXuiESszCbHBCB/CSWuxwmPtTCICAp/+GYTD02VQMwIDp7jhUEr4ifh59
CAWDcdhGjBqw5OhLDma9vg0u4DKpFmdIJIRAzRJfct0XY9zcIiLHSW4klQRb9Qi2t9LNBLKVYOX1
6rfEQhcoYe+duvCv144wxrUWp2gxqjeQLKl6yx3Yv2PnPglHgVl8zb34p8F92so4V4lY4WNqlSta
lSfPJL2CvE6VGXLJyVzbm2A0KL88j+POSp8dCTl8z/FWRXn77QpjYpm2vI07Ebk0f6YGR7vPRwHZ
2nAYHis9S2na4u7oFbJuqlbV4R5yqiRBiplOTDVcrU19qxHSieV9Fhqy+qPzQi33QYTFtscDImx9
vGAxPemhjPQ9Eof7bxiwPhKdfctAkuQgpG0BPPq+nwEe4N32BHy1csAkWxCPYwJi3LQCXNwBLqju
z5WyqKdWlQzhauA5GCkfY/M4+Nh2jO3vepBLXjyZV5Wjg+1ifxDGyBdZFw61gz0H0hsfzwk5gwEF
U/+9saqhjIdIWcmWuvP4BTayf+dwLjSyEw0cxNtEFot5wcvUuCYDttfB+GZlcSdseKfaJH+qPicT
Tn5+FY6YGZSeFqH1KuL/UfzD4VpNQ1myv+TL742N371ag8M+C9VJqssTGpa/arx05MJZrWrTqm8P
5pzTqC7j4jpRv/bErZtXjjeWFf3NdFJCho/bYNi4TCMYTfdXZsjLLeBpVJa/g0NWwrlIfafHnqsx
7YvS6jGVK45bU+CjGYuMD0YSBvTr8AT67vWSijLCEbhrz5aj/RzeDeL8kEswDtzulTf8WJaddErC
w/ya6LXJQRphkckMXnfAtZEueQ+7uxh5C+SK3+z8/qAjzJ3dQp620ePH4ec4q30CuP96o/D4GW1T
PL8xISJ9ocZZfwlG5ErgCEni3cpoZPMk3MUBs7/6fL1GwEKShNC7QN+nW61Mvhwq3rSFWuXQ3+/q
znM/njhYpa2s477NStsdq5mhj5wkrV7CCxn4xYP396HXsvV/R26Rd8r54iouaXNGkklSvSkxrDzq
q0EFKrwxDH1/XfBbw7WTZ8slPT8zKN510fLDx+O08XO4lMo7Xz3XgNOrmzBcwpxGcW7IedDB+Htl
DdWl2RuKiFA+1rA6cblG2EhkBrcRk+k7VthkZcCzx1786a97o7X63kCrrOWOVVSfuKG5cjLTT8I/
rPJIHriAU/Pm+MRFhWkFfE/g+cZmGKb8GezRzkr+LXPUchB/O/dAlDbYls+puq7KzWJR4fGi4qQT
CQlJyfEJhRuLJAF/G0xh/TsGvNQ99vxAVYN7A7n/SiIeDChSVZGY54uLbfnW/rdLy/8/Qaqqa9tz
9qdohFSTWVaZ6ZJuqOpmoJxc9rFAdcJs+BypbhxLGtVf19lAfQJjJbPd9KCboARlTf2z9htfkudN
GbxkmkQK8ucM8Lgv85ZBNYe6VW/gzi6RXGC7BoiAZc63nT1DYqOjJVXL9QHixb3eVjBwqjeJpZWZ
tzU5crBYV7cOnXHSAoNP6LpDp9f/R/Lf57KvWr9rxT5gGskF+tT3UVv5ApDpwie+3/jhK9o/r6tb
XnjGfXbhE72tjb310l6RackZ8sIrTkAsAIfDiR9C7CvW7Ft5CWiIZtvNH3w3GTc+++7zmvl7apvo
d9lTp9+9D934m32OvOX0vLlbpLavWnTuyMaq8iVya26yzc+Im+Mo/ZvdKVRD61jK1xr5B3VLKuKl
ItMLnbziFy8qlsuyYStZt7fkIdDsGa3Xfwhehqfg39fYNPenPVm3YsKEeXJnY9jDS2Yfkv9+6jvH
5d8c35VUfysBE3F5y+1wUJoAhVclKPb6rohGZ80+J/+DWfWPFLviicy7F86v2LBfTrgiom9q82Lp
0z/mq7IJ7/ijwl6UGFYUBsyTwFD/6VjOuOxHLjOw2DMTfcz2feZPVdblwCpT/g8zqIDS/MHMqp3P
9j3iT6rzb3NWvtaJP+ZP/m47ke23zUR2uQWurgGM/3k4b3N94v40iYf3e5jIjyeiAAEGACz+JNMN
CmVuZHN0cmVhbQ1lbmRvYmoNMTEwIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGgg
MTA0MTUvTGVuZ3RoMSAxNzc1Mj4+c3RyZWFtDQpIiWxWW2wbxxWdmV2Sot7L95u7XHKXb4m7XK4p
iRQtkZZMyZZYS5almLRliZKLWrb8bGqkTvz4CoKgKFIYSVG0KIoiP0WLBEHz0SJNAsiFUyRIUaAw
WhRFWqBFP/yTPtBHqN4hqThFSoIz2JnLO3fOOffevXblehMNoOcQgxYXTowoqP1JfA+Gsxs767vv
PSb9CEWSCDFf27hxje/sJ1kYfr61u73Tff4FQgP27Qtf2ap+HNFg4bcIBcfON9c32XcO3UQo/0dY
y52HhY79mA+G8Pmda093n0sI9YYvXNpY/83CR3cQ4l0IGWw760/vdvbLmzDwF9d3mkfO1b6LUPQn
CJE/7V66em3/TQQxl+/R/d0rzQN7Gv/rCCPP/j/JNHkPaWi0lNIwYryYIA/GhKmCBXMGMUx5DhGC
zyCMK3hezQhBlyPMmu0JnGbEkNFuCxBngLHbBokYkmQ9wKhKTsumiZxmtGyRqIrDif/aK6kFfmba
npxK5lYmhNhMI1e7X1AHMofnY1OzXmU2rS1kvdFKQ5+9mSbBPrdjMJv2CG5r3wCfnh7NHc84MyNn
B3ivNZ3yhr2O/sFgcjyerem+dAiYSez/nbxBPkAJpKMKemXuR67FUyVrITTIEMPoSFxkWYIxYpmq
93OrDKyudv4QRgZD+57tG6MzRoYgNDtnwix78IDmvSXhf8yYuhEzTKFrhdo2qyVHCgRRnkrqKR2C
SsiS2yn2AGaCbDSKoTShyOgHAAUIRc/kzOU01Wg0OSNKTgc7iixD0YX1rARQk/Dh5Bfz2ZPFkD08
6nEGrWa/UomGpxS/PZzxfYezrmHe/2LrQqTifzOmOGRl2jjktaW1lChlylKU1+fioTElbnHHI6I1
XEi6bFI+HFBSMeurYi1dvpp+6ZjP866/FPUkAhz+fa/VFXD4NZ6XRxAoRdr/EPeTx4hDxteHDHg0
YaV3cA4C9Q6nSZIkp6wFli1J2TOdX5xcwmvqZrOphj3LzR1l4bXTscYD6sUHXnDXywADXrDNaJJz
HcWAeDA+MVnLl71yklsKaLITr20+aMROv7ag7DSXPWG12dxEBKnAt0qWkRXJyF/ygF/CYLINYj2g
IBqNgkhd4J7qsgM4RdoE54ihQULBVZUiIapcqet6oyzL5Yau1yvyrl3WgoIm22EWgjDjyNSlWipV
uzQFczoNc6qa8/tz1VSqqvn9WpXeKwXDW2QcWVCmlDZA+uAq6I29C+IkmCHbRgNVYAOCK6B5GC3I
YuPsHGcyuxMRu6Cp3CAjahCQrnL4rdadF81SWrHatEyEubyxsYHr/R7H0LaL502tKD2PDv8gFRRD
qVLcihG2QN6SKuzAeWi7LUyWCpOhp8VQLBBLGszOhEpJKzJtQYHm5CLzqf4GGZNgjw6GixmxOOLT
s95UxNd3pDdROJ4ePab5Asmsw64p0R48F5+dzHutfFB08uqQ0zdQ6xMCdneyIEbGksG+Xq8YdW1A
JMH9LxEjYBJH86WjUcygwQFCWEKBIQxLbiEDMiKDsWmCoBkWMRA1aGOlW20IXsBIliJhv8/jsgz3
mVEcx3vMtgTuBtwuNw5Ht9xAfpjEIqPndMEumHI57FeWJ0W50sgdu8lP+U4pxUXIEr80ZV/Hpv7B
HosdP9X6W5jL40JoYknRTk2GKuOT8ez8ZCAj2gSejU5UpdWLzXesjo5ub5MQmYGQAyUvKJDco1Dj
ZSgDqE4NjnHcMAMAY0ETsIivtV4lxta3voo/an4yBvah/S0iARY8yqJiadyNDazVAiQBGsiIWQNi
t8E3FKbPoxASknEhG8qGI9GwCSRt/UzReIKB3ikskc9om8ISgpqaGztbjshHmoXyZfGws5aZWyX2
1Xx2bUoCjvSYyxXTg90ZV9S1aSlRu17denk7W8yX45lnr6aykdLKQ1ccrHLUKgfWcWhABJlg+CbZ
g7kXJUpRM2YRrhpgJJglWyC8iTnIaFzA8z09Pb09vRyAZKRZqWJRFkwiCBQL57DrxlzrcfXL+KdX
bpC9T8befhvbcKb1AaI9F064BSdYUBB0pJWUYUxYmluISqhpxFCL60DCxBxN/nonv3iej/OxiJAW
wu38okAJnNDGzGhyONpFQLRTjLC9g5Qkklvi+GKq9QN8MTIRd2qZwszVIXfY/pc/OCTfcOuN9+2i
dygb/XGiPOIme7x6WMg+5bCcGXFEA5ZHnF/GP/xw2Cs50+NUDOL+v8hL5CFUp2gpEvCbe2inqVKt
0PLU6Ru0tVaY+VhUbhcqa7dXmmhXfcIhLbCUVzG9+lxt/Xnx1FBcybkPLeX9ocKS4tHVxGCdKx5f
ic89s6bg86Vnm8WTlXE+6elLVU+ns43ZxIA/GdSihbijtH2XckYR/T4g2o/cSIaeB52u3mYK4sFQ
M9p0IeSwWTmw6RMM0LZU7lPBWdvYcTS2xf+cvL2SzKw9t/Dn4MRJ/YUXDq2MB8jeobO3j9bu1lW8
eagxLbUQ5CDFhJ6rw7l9aKSUBGZZA8M2qco79FEmD/iDsQ/1cfTTrY8cJHX7S/SWG/+u9XVcaL27
sUH2Nh7WHx14j4F3M4qVJLgliINpdpMT7gaaZAssdWxGZuqXqlA98Mot4ket+zjd+iU4/FW99T71
GN7/N/k2vBlJ8PKlDw8RA+HhZQE2GHg1gnxlDJ3wu28CtPUYoSRU0DzHWaORqGAyexMR45Pm0+6S
T7jN6ZoIZV8kh9euz9xcU9W1Z45uPS+e9G8VlC+MBcXCUia3kfrGx41T9fHNe7Ozd87ll48Ux8YS
Mw011zgSU3LzJ1ovH9z9fhtZyicNkcVNaDgMMzEHzeD/IIo5kRPgBwhw5P7l1iu7u3iLph7Otx6Q
vdavcazjF/0M/DLIXXK0YSQH6oA1hvsv21Ub28ZZx++5893ZsfNyPp/fzr74fLbPL4ntxPF7HF/S
JE7ttGuavqVdXp2ua9msVFCt3UjHyjapfENIgCam8QE0EBJMICEhMTRBKe9ICNYPreAL+4A0kFbE
VBDKlf9zZ4e03bdLfPc8/5ff7/f//SkTGdyxHfwpjqTv4cfo6yZbtQCeSAboAVoQ4ToUa4FcjAph
LJOGaAHx4HNDxtQodyiVLgZtl4cmtk+c1XYdHnl6U0MX9a8svbY2MdLL8w0jz5im9NkY6DFcAD2G
yGCkkGSN7CbqdHLGsIPTQWqQQrHCsR109LP631B896PnyZ/rX0Id/bb+GdS4fKd7cg1OpnHcJhlA
g9fAU3TPpAma4yw2t3GkjA/bhZzfbJvfUm6DT2ktZYOZC+LXxFMYgruOTwD0YfqbdXMQDifndGL4
yRylULgJPJ/jyG/+cepPO1c//PAqeqjvos/rCNpwFH3frCuO73sGumH60ABvUBPcCyyvRn85Jw4P
VASfhyBG5b2dM+jLl1fRv3QHnESgh3tVzH4FUP1bQDVvahPm/AHHazEBDOAP+70wcXnE0zBx6QMG
CosAOjBgMKDRC4u7Z8cmzu02F3dXxnJP7+rvh6onJgrLFSlUXc4VTlSG6dr5G7ONG9vV+jOvHGrc
aFfRs+MgTiBS2dxqIzW6sNrTplOQ5wAh4nkCKMNO6jwB1rrH425HRB83CK8NxGXG6Irc0ydF4PZD
U46hZHapIg+Xnsq+9yOvGhhyhhLuH5C349PLqdHlafUBOuuKZINSVuG7t0NbwZtKRE7LOvYnDQyz
80RXnkCpqF43pYDLCW9znB/I7jkQBcsr6mOB5HEgrsjE8Nsvv/GNWzgWfjjh/okZS2SmlOjT//kA
4hGiWVHMRgTo+iDEs2JMV1HzYiJTqwTmNGFcj2ep4XAV6LmSl8mVv1/+B9kk23tvku02Rs089Po7
8L2PiGgyZcAFN9hg4hwJXXbxAw6WIXzIh7scPcjHtPkokehqqTnKXw43rxw/eWUhtMOPtjZGGuey
6Fn9q4df2SxV25+bw89j5xopuJOB89+COxlC1iS4EggKzOwyyqQAQzCcE3NJJMEGoN0777+gf7Ch
/xUI9QuyvFeBr0HBCMLiMXoBXOeG7CBnDIXNBbhpg++mtwXc806wFH6wFJ5ijgIqAdspBQGp0OKl
02cuXrv055f0exuvvrah33vxL5fIn92/r9/S/0vOgthN6T+FS3+MaFwtG0R+E260EooWYuH8T4rd
Slid+7ELCodevXX7Jf3Bjv4fINnX0LZe0uGz2xjLAdhRBkgX8KxAbGirAiDZBaLSj1iURhY2ihiL
BPViAGEsw1qY6xADXMte6JmDRsuGGIZYp63m5pmII2I8Gy8kCuFQMOB1G55YRWof9M5zYMqYyyIs
VfCHILg8AnaGMRU2ShWGTiGfx1MItkv372LTGTFUXRqLLgRnppJLqfD555+7Ghzy2EOKhVIuBOMN
lxCoS9VWpc83MqlEJ0e8/fZIZXo4OD/bufCugtYoMuST02NLQb/TNWd35JJqHuc+A7kvk3cJnH1H
sylhK2Wx0KjZesd77IwWhAynWkCobposDGdiHTFmmqImP/Y7rn73JTxh4Z0VzeMWEBGSBNWtOvpY
hrYQLuSyGloVUwU82QqFnlyp+1LFsAKsmE9PbgY2O8Or9YlTNTk2c24pMpnyehLlcO4pgZHi6b5y
dp28q/9+vDLaahdKW4eTa8FsXVGmx6SZzBc80cAgxksIcnRDfxWsowHxMY/X2Pd4C9SiGo8+6vEO
+gDs8UzvHoo1tqeWrgQ/xWuqXE56falyyBWXfcxz/heXa9sNFTHFrWaqUQ3LUX9GU2PTWdHu8g+G
qq2R1hauuwwxLUHdg8Q48UWz2AMRRey3UIzfBaaIbIqP/IMmmyvma5JZc4YxxkGjZcX2AQYC22sK
jAqGZij6+uMvYt+2/96K5hsGVCfj0vjwuNfNOwcHAKRBFLQ9MkbcHiwu7kegCXXI/9/7Ik/+7ExU
qZ/M1TfETj/HCaycJMngdtibjQcZm5zMeOVi3OMbKfelmu1ycbOZqmXQ+N63+CEMy7CojpXWhgIx
901fUhqSxrVwRMsGoEa4b1XoW4hIEZpWk4KwhKEmCyJAUjSJZ003s31LB3nJMiLklJxSoz4Pz0FK
IRSyPjEZGVaWqF5HeTMZFmVw61Roba09HyWRvkqJqaLkTkUC1jVxd5ESkyW8UPkpSGSrWGy3UiOH
N/MOgVVKCbddkJxitYWKckl1u9WSDMjzA/xeIT8gPERZK9gRRToQwoskRRnSPg9TEt4wrHwdeMMw
NQZrl4fwcHxU4TgryCU4hHwuP1HYhyMjCDngzcb8/NkjoamAdzDBq4nXX0ffPils7nCDx22OStF7
Uj9t7LIymYMKRogy8bI2kEqG+y004/OSMCqB4n6AU9gACLYoPYSw2Fq0oLoGKaYpgBT4dLL+BJSe
eBEwFYsiYiwTLcfKQdHtMjAVQZHHMZXvzq6Y2nOX+U8AFpc/U1ci2kqhvj68mWw9Uz39aXVKWi+E
a2kxsOX0pdUA0xdKpD2RctztG6nSqeZGvtQ+nJrMtnVL+UwtVM1XkiPOWCV+LDuxwgWjwk1fQuKG
cwCxeiaAtWEGyOgBHnqwNgz2GX4NkpnCUmZZh9waPWOucIIyRIMllxVuwlAFljugXqSnk8t60omQ
tdORLtTG6rFBFF2Yc8qjov4r0KhfFiaVypGUobnQ4nfgTgr8woiWoGFAkqsmWQmi3uoudhY8WFmY
OLRh4ZmuhafyOWGm0+mQ9r2Pyc1r17o5KHCenUhqah8LJsgwtghNtYy+geM+sFrAHMaOW1ZZQ3yL
OZZH3337dKfz0dXf3Ll//C2IdezhPf0PuDqHHv4bZeDkQTxprSCYNgRuGTwzYRSI3OhuCsoQ3hR4
rBR4XTJUMpY/1JFEe7B/yDvjL9fJu3vvBmUrfcreP1XuVp7aMrB5XLMF3JzVgmtvglLAHoheZxmS
piF+0oxf1HwE/hv/yKxjujT2f1vR7BGF4xVeGbLaAr0eMbhF+w85oWCwqNsxaquTTWeOcJ3saOYo
19kePj893bLJ21q6FhlA0cOzc0X91yjaPDRbhA7aLxars7lKzWhiDzcuwM3cD7uwMUN3wiO1jk1P
vYccEXay/7Ff9UFRXVf83Pv2g91ld4HdZfny8fatLLALywLCCoKuH4ggKkGIESqKgEJEUNAYWk10
2iR+NNPUpnGmM5nmw7ZjpanRmDRTG6Omav1q1CQ2rbosxHYmNumkjplEh3099+3jS207/pGZdsZ3
5r1333n33nPPueee8zvs8y6XWvzWv3Eq26hT5XgTfG6HrrOF7y7LKXGa2IIUpzK0F5SKUyI+xWJl
Ma7njmqhfLRamPPfqwXuzmohe2rzbJervLm0tLmcvT9OcBc5WMJjb6HInajPqmwuLGyuzBp+E5Mr
kIOwOOBKw5yX4psuYwwPYgwrYoxMhjHSJo5gjCQZY6jVdCkrv6aNhQ7MWtOJgjGm3YVBxvYZxRiZ
8Zl3Y4yxBh2HMdDYDGSsmrYspbOJX1pSiHlMnFq3yFmUGZ/oKXHavBk8Bph0r77Eh+bub8yZnFW5
vLAII0zjcJqKSUmL35bg5uPkaJtFa1DPCeCDnoBJdGD2VqmtFsqNRFum7HC0HaeIEmhHlFV27+4+
qCzL2xku3pfqS7ANZ+2oe0TY4awdCa6F42KrLr+uVEybUV9QsmxCkznWnGoUc4Wl1ryKBDWf6bM7
i9keF7Pt9U9eXuku9i4d+oXFTBsp9Yp/LSxsLPJsT3CnWvi86WgGDKXyiSBtNAZLPTGQGoWZGkE5
sBomsrURYJ4fa4mUQpqRE+nPy7OTtkCzrXNF8qI8vVFN+qg/P/wuNawvnM6gPdilL8kFtGsW+AOT
kjCBJiOA49gvbiSVythzjKPzCLujNJBFstSKG8iZphAhd7qXKxiBdzK+5qmd5xAUEJi2KTsr51u+
3KLArNzZWdZUf6VnyoqMnIoad1F0skcomJeXsFaf6ZotOl1OBx9nTBDcfMZUT/xEcUax0xUTH2OM
MiY5cxxzF+G6EzB6ttK3sKrzBbITLVQTyS0lmPUxdmLWV5IqLAN51ZjwET2JWl2yJy2CMwvk3J8v
53t5+X7Saqt0J3md1rKyzu5ummq3u/XJ+kRTSrZAyuv6+urCl1MSY9QovRQjQgE1QDKsjQBHQ6KB
UhJH0FoILtmXSvlSkKWVk3EIWxcsU4+A/GRADlHRJyK/YezfxQELgXhrbIwxWqfFY5dMkrVykeOS
i1K24jvx42BNbWdLTq2dQcV4Pe8m1LlGv+pREgh/9Gyxn8wOb4jgQkfSpKIpqIcRfciCesh1KvoS
uhXuNLA0QGkpVerUuFhW6+VzWE3mcx+eXPvCrraT1BCuIa8N3YRItcv5cRalSjXqdSoN81C1CrEj
sFAt+2ecBetUpUrlnOlaJ07oT2cFq9ZOz7VfbmhqarjSvqeqob5kSn19FUvCN26gnKVHr+7effUo
kxSF66UoycwkmfQatDLKkXPwiBhcsxnM1jgry8QWu93vz+cszvR0rdZp4TZu1ume7Dl8pGeLTrel
58hhajgQG3sgfCt8e39MzH6iJhqUopMmUCtKwbotMNEQhRCBWAmLMzSySaiuAsqccTaRHTl7BGn5
IyaKbEeteYLOaLHaTJfWvvJc22cxC6ZGJ8V8h1MZUvIzUKuHyS+HNmaXcmqmF4NLZ1GiDjIDLjU7
l3gSZSxAloDiGNwSlFnKVaERY5lMP3EUOGzEYXOkkOLwefJq+CSZEl5QRh6fXxbeOh/nKCLX4Wf0
Cu7PzINqeXPn7tOzNMp2GmjX8PRTmSfGMib93hgepv3I/sfK+2/x43mxacttzg4Huf7Yxk3r4Z5X
MyNiQ5pMGsbRbnKZemV6HukN+gaXegdVc3u5r1UFqhbVs6oBtUmdrn5Y/V31y+qL6q805Zqnkc5p
PtdmaKu0TyH9ajxFeaJejPqbrlf3Z32Sfq/+msGIVGxoM5yINkcviT5vrDZuMn5sSjBtNP3U9IFZ
aw6YVz2gB/Q/Ti8+oP8vYiGU5Qx8R4OKYyH1KGzGQDoD67E0qIGF8ARyfg9/x9QfTUTiIwWkglST
J8gPyE5yhlwnNynLc8nUTxfTQ/QE/QO9wpm5WO55bg93iHtXlazyqZaqfqh6nTfyaXwZ38A386v5
p/gf8W/zv+PP8tf4G/zXAidYhSSBF0TBJfiEYmGWsEboFbYJLwu7hZ8Le4Q+4W2HxRHvEByiw+Xw
OmodjSIVNaJZjBNtYpLIix5xjrhMbE079eWx26rbGklCXQTUwYU61MJLcAyOw2eEI0biJLmkENHD
Q7IO75FPyRfkFtaznKLDcdThT+N0AFWKKlf1nGofH81P5Gfx9fxyvoPfzO/kf8Mf4k/xn/D/5L8S
qGAREoQUQZB1KJJ1WCdsRh1evacOCx0Nig6xqEPiiA4tsg7AdJAGpU+ka9JBfB4DkI5LJ/B5WjqD
zzPSWemc9I50SNohdUrtUqu0QloZPiW5w/UA4d/ivSj8yNAXQ1eGTg+dxK+kcNrQzaFLg5sGVw5W
DBYM5gymD9oGdQPXBgYHLg0cGTg48HpoT+gnoV2hF0I/Du0MbQttCR4PVYUqQjNDWSFPyB3KCLlC
Sf1H+g/3v9l/sH9//97+Z/q3BK8G/xK8GLwQfD94Nngq+E7wleCO4NbLE/UezT80n8ueNXq9Oeb5
3r1TsnLtU+7R67X/2P+bvJ6BbbAdTsMZOAd/hPfhPFyAi/AhfAQHYAjCIKGST8MlOAUfwA44C1sJ
T+fSKjqPzqfV9CGaRl00nWbQTOqmHppNc6iP5tI8mk8XYJ04CdH5QsQZtTSL1qE0HXQrVuPADqC0
Vdi2K20Ntrzs1Kp0+PtRKFPaBLzk10qbgolcUdoc8q8rbRV4aaLS1mC7vHJOVV1NpaemqaN1Q1Nv
9sLW1e0zujpa7o8NM6EL1kAvLr0dVkIbrMOjl4HgKhPfeeCDXLwFyB75ysciToB50IQ918mtZqiA
TmjFGdizVx6/WvkfwLnb4XHkd0APtrux1QQtaIRmlLsapbDZqpG3HHt0YbsCuWvwuwOpSV4Vm6/9
Lm4AV8uktCNn/Gw12G5R9GEzzob1KLUTvi2Pb8d/TfKcbfKqmNQA9l5xj16j8wqwAXnrcAybvxV1
Yfo+hs8WWUIXjmTWmI+jViNXABH7sZlacWQTWkWESlZuQR3yK8Fzx99sDHWtOLIdw3cX8ltkKStx
TRF972/sN9kbOMTXjwAWFBhvt6NPfz/yRp/Ng1vINWg5LDM1wL0EVKoGoWH4MK7p7e5BUwu3NVyf
FI8T9cGnAsAu9o8a6HFgUZ+7r/O9FqkRGtnYf7FerbFxHVX4zOyu40cc27XjlNw0mfX1Oo733s2j
eTjJOnHu9a6bmsDaTtq9SUvuxo+WRwktSQmPUAqkkEVIIAFC9Ac/qoKoEJp1AKVCQhX86A8QSJVa
pKqAhBCtgqARVUurVlq+M3d3u06cVCB2NXu+mflm5rzm3L14r6FqmneWv6m+Lfuqb1Q3mXMW8A0o
wP1Nm6vJjLTMVN+uvmPmm/d40eziNHb5q9nH9GkCX488MVX9Cfchf9Q8HnPE17gfc0WZpSZHaTpW
zAVKTek101O6ZfZ4Ue+09HAQLqrysaKWqdLTrXjbnJuzT1nJpKZAk29PLKEc+KHnauFoFS66Wjpq
XulnCjo+dHxpWLT7ubmcbskVkzqWCmZOFJN20ioXlS4UMDQeWEqPMhoNAlWJ2KV5PYyhWk/pbTy/
jZnPFIoK2pRLil/aQowonmtntJvR7tAKgyCwtEgHga2pUFwIAlfHHIV94qkSNEv4haJO2J5usT3Y
EWgRujru2NBLzVcSpzzFM6yxFWnAvzoR5uZ0bCSJSV+VVRkHVLYlUjByuhgWrNJMULSDZKD0+GwR
cxabVjvf1QlHr/LTSyiWxlMt6NqeDYfbXknLU4tazEELnRhx9SpHsaod/tzlOJ1SvIMeDwOmhBNG
1VZnaVUH+TlvJNnwfZuzPBbt0S4iDRV82B2qXNkucVyMv8hin2plQcm6loiOXZqIjui4wXI9iFVk
vWta86LVjjFoqaM9hmBbdjIYSbq606lImdPzpQlXr3FAVEqv9u/k5QC2F+hO7s2g14meq7uwTbdx
iYIH5nCuXuOHqhwqvQZOc3W3M3W0WInPTwSDunPBPufqHmdqujg1Gw1aSYz3mvFbnAp1+ceKla4u
X4uSp7vSnLPIZK+ymn868aNFPyIRSxWKFXYerPXKiC8fO5K0sayOrWiel+Aq8EgASyah/yRGl4fq
BgGsEPXa8Jav6cCSEMLEqtehCsnc0aLusj2V0x1IvnYbCeepEMf/rKdH0BryvHJYuaUlrS+mrQG4
qQ+29aZdvdapCJb98DPLdU4lxvJWpxJn+T6nkmC53qm0sLScyiqWG5xKK8vbnEobyy2OXfe7bgnh
YVtltLiXL4irR5om+xuTD0aT6abJocbkQ9HkRod0Z/p/sG8T7NsIvRTsY5mEfSwHYB9LG/axHIR9
LFOwj+UQ7GO5GfaxHIZ9LB1HZU2aug6O7QmVj9iGvgklrp7DuZpxtJvWLm7hVlyASXWDKNqlUZsr
4k0ZFlu/rRFa0a+3jlQSYm2uiELGBm5v9sz10zsctcvoezt4Inf9IbidKx7O49T/U/PAmThgj1Z2
iLVs3E44ABqvrDBuRWnU1buczLqsq3e/FxUZPAf6HsSE+lMqoyb55sOXh8vlSXsSpaKIRwQqK8rB
biHW9sGloyhR/bobtDiqZsrQdJufXihnbKWyZey3dzlFZaK9dBwjYCodctEYny5ekniPsy7Jodj6
wONC2oqabBu2nccV9q+9jyEXs+i5If1w3tYxvzSPaemXLOCQC9m1a0pQC+XdziOYNk7Iwz4Icwr2
W+EQOyqZcVQJBCGBzEpctyt2ZItSRgn8FqJS+e5ZiP2+uh/whqcTQzU/2Fm4aH9jSrea+bw9yYdy
9LIN97ExNQ/T0WJGZfHIZe1rg4r1qoegJYXe4eanexS8ldK6Fimbc3usSRO/HqqQ/wJca3I9vAdQ
KDLsxbzu9osFC49MlQ0ylYzowwU9uGx2xiosmx1fce3NVhxy9Gj6Zgd6jt6bLkM3zi8YdUMqAprR
Gazwjcmcm/WYcFrauCwZ3LNo1wnUHTxC6sT/Iokn/195y1ZwicraqEJNGZIMajrmUFtH03U/5NHb
m07aNU/ULGkYPQmj10YXHH8vcJd7M3on7vMdNxg/jO1EX6/eBXyno/dATLHfcnCwyuNZWvfU+x1O
YT0FeMRZQrEC+ACAYPBBZ0mYkQKAGZlmTg5ghjkMZpnD4ChzGBxzLqHqHQK6C0gYdLdzSURjRaBo
LGCeYHSceQadYJ5B9zDPoHv5TB/gQ3wmg5N8JoOQz2RQYk4e4BRzGMwxh8E8cxgsGL08oEWjF6P7
jF6M7jd6Mfqw0YvRR4xejD5q9GL0MaMXowfg432NAH7c9PQBwNMRPAj4CXa66Y2j9yAeozXOQxFk
zicNR9Q4Z7B4f2PXs6ZnVjwcQV7xqQgy/Rz2qRE+HUEmfCaCTPgsuNnGfp8zPUM/H0Gmfz6CTH8E
K2uEL0SQCY9GkAlfBHessd+XTM/QvxxBpl+IINMfw8oa4SsRZMJXI8iEi86ltris/1n10rp1QccG
C+fqz2GXH6GCX8KIulreGjrZlX2drNgrPPy7+9reYfnci1deqm6v3pbYGPs+um34ix99RPTuRpQ4
hPkdiY1mp6aPvLis+28s2UB3iwUal7+ilDxDtpyj9fINGqTL1e3yMl52/0TjYpiG0DaIadojnqDt
9EcaE0/SGD1PY/K7ZMlFul38gVyZomE0JXdSv9xMm+RJ2iYHaYMMKCOP0AD9GW+Br1Ie6ibFz3Em
0X7xFxqITZEjn6BVaAX5Y+jwW8gTaD7a72lQvkwF0Y32CrXLb2HsDirEFiGraFfBPw35T8hvQ95P
XRjLyx9QS9yiuHwUVn+T2uRZ2iQGaVbOkwWZkXtpi7hC++k12gp9N8B2T26F7ucpKWdJiXn44SwN
yGPQ+V9ob1a/Dls84ZIPr3s8Lo+Dz+vO0IB4GHNXaZ04TbfKEvyyiTpjB6hFtlOrtKlN/AP+S5GD
gExDboefxoz/19NdcoK2yG7aKZPQ5Rd0m5A0I1eTKx6nyVge8mlKywdoCH48KAs0ZsYep32iH/s9
TwfFd6DvN2ijseUCHYENNsdG7KZ+kYSvf0mbsT4bO0/p2PdoJHaBNouXoHvkc9PEHGxl+RT8XR8T
NBz7dfVl+RR8cqIWk1pDPPpMTLqrb0FK+Rw49Xhc08QLtFe+anB+WeO43IM1afiQY7BCi/0QkuMy
u7whJgkTF9OqV9Beg9/tRlyubR2UNZJj09wQG4x7RrLdfC7bPor7wPhJ4G7wGHNusi5Nkp6lHXVs
fMiY85fziH1yvuY71vu9JOf6GfBXkHSZ9huMu2BsvGpysxv+fwG2Pwv5OuTfoGsPfCJFD2UgN3KM
5JuI09+Rn7g/4DzGzdwj5LNpuE+c1yvK05AFiosc7tJ/GC+72KiKKI6fmbn7RUoRSwstbU3bXZS1
pE0RFdPIUi4iNdbtstWtXzTShCgYS0zRB0lMgKQRIfHBkAAxxQdDAiasH1gqifuiT75oglEfiDG1
fsREGggKVq6/md2tzVYTb3JyZs49M3fO1//MDUrfruQDwWXdIJ/pq8yz7mxtztfzuNqOPxl7A9Jm
ZpFRq7ZmFnDwx9bRf/KdUu1qjDp3fD91NSL1Lp9sPP8nt9jg6tPmoI19GSOo0wX8B77TJM2hjZL2
zkPPSYvXCQYxp443edOMf4ce/sf20Dr0Joq6c3Es5ZetKZfXv5X8Y/NtO3hTmXsV+UGMp4jd18R0
CbE1C/xc9GHnnC8rbS/7sOy7bbLC4oh+TZYRy9X6WdbswZfl/P2xIs6VMSrtU/ZlJZ/z3wI7JG3r
dt75i+ebHwvLM/SzE+C3xbyj4OX34PW3sl6mwbb99I5XZL06yHhC4qogd6id0q9XEdtdYPswPWtY
usG5VrCxDv2Vahy9l6VenUA2Tm3Yd93g4zHO9Abzst5JSczpnZRmvdb1xWbtSacZlIT3ktxumvCP
J0m1VTZ4BySr/5QOUy/3Oz8+wftjssackdWcu928BY6eIu8P8O4e/PYCeXARu5PQMvrgUHDV4fUV
bL7A2dMSVZPg+zeSUZ/L3dBG3UxcdpMjrdBeaTCN0ItQH/MHpdf12FukkZ7Sa3JSTV7G2LtXf0Rv
vU1qsCGhD+PzzfTrPuT9EvM2U0vvyRLzJv9gNh5bkN9L3DLkazdYcUMeUD8j6wBrnpYk323Ra4jn
dWTj0qu+kDvVTcaHXH636q8kbo5j027mcXRt/x9Fj56rt3KOUWSPwR+hJyZY93pxrarFzlow5hdZ
ZG5K1Guh/12kj++DW7oEzUCjslh/Qg+3dXSU+Ttg01OSMZeCv8wu5r9Cl/n2FHwPdJq42fuAXTdL
/Oxd4CfWjxCPT1k3w/gK9rOHHoI+luVmCtkYvl6HnVZu6Uv2CMPDTifu7kjfya26lrqx53obex6l
pzfhr9Pi62dkqc1zs1LC6hR3oQFkWSgCdeHfD+B9kM39DfC9EH1DTRMnm/fnkdt7Q1p8NSMJExPf
dLg9auxasNwnD+qwaRNnWj7XFweDG+pd3rWxF/Up18SXa/SF2eCI4bvmLt7lguvuHD1OL6bb4WHZ
ps7Anw/+0E1BYG+N3BT3SaR4aZR2au8Qo+OL65zEFK+PwYfSJf/2PHS2MZPLK3VkcFJUlOTaMZKX
SM85kS1r20KStJNU1eNen3dfNBleEQlFS6IhndV+uMtrCTlRVc+FukJNobqwqBBO5UMxREt7zqXs
YydG/HxcjfXzFzqWy5thP7/Kziajr4ryUmM7sjmrMsiTqnrSS3vd0fZwQyRUlZxQwcGz3uG8Fv/9
0HBYfF/+FmAAJNU/QA0KZW5kc3RyZWFtDWVuZG9iag0xMTEgMCBvYmoNPDwvRmlsdGVyL0ZsYXRl
RGVjb2RlL0xlbmd0aCAxNTQyL1N1YnR5cGUvVHlwZTFDPj5zdHJlYW0NCkiJVJMJUBNXGMd3k+ym
VRoo262VjbsRkMuqsWpxPEYBxyqIGE5BtAUSFIQkHEIRhBlrlJmKgjqKeMAolximIKHQGuQQRKsc
zuh40Y5H1XYUr8h8a59O+xLLTLs7u997+/b93+/73v+RhExCkCSpDF6xKio8eHpAeFR4QkqWQa/X
zVimS08JNKRp7eMeIkeKSpk4xYl9twpVKCmXv/IoWOoM8S6w4WOrki51JaQkuWxVbJDBmJeZsnFT
tireJyneV/WFerZ6Bn7NVyXmqQJ1+tSE9BS9KigzJTvboJ+pCkhLUzl+z1Jl6rJ0mTk67czxhWct
j4jMM+pUapVWl0wQJL4JT4IIlBErCCKYIFaThIYgIqREHIEvV5wIUUc04N+iyUbyjUQjMUsXSbOl
wzIn2UZZNUVTs6gM6jjEwO1BCBgioWMIFg5JxTi4zVafLCs/IZytrenscqvdUbOtmu8wRNdHcZmZ
OwqzhXXGjJhoN+O+jMOZfGxdt6GbG5Slpx+t2ypsryg+csStvryu5jC/r7x8Tzl3qmGr4Yiwf9ve
/Hw3faHRmM/vKCosLuRQLdrFXmhcApNA7d9Rj/zgkCblV+SO/J/E6inQoMesqIUqfcdbLaqiFKhB
AQdNY2LxGPkT0HiElopKEwtx4ANzIFZANI08p09FSqScDhJQgeoJDsq7F7WrW/lbt6ibq2afQxSH
4pAPmoNiUSzgCHGC4oFpbFGO6DlmynVtAQLOgIwxQ5uJHexpqK0SmPgYkInFSCZnzDHy2pyIhpUc
8kDEVOSHiYmp4CHsHWPnh/Q9fny577eRS5pZs0I1CwTFv6IQnevajzmwMmOFq5jX99lzUIPa5zny
DY3KSkkT4KgcSYoopuDdGpDIGWunPO201TjA7Rxj54Zfvnev9/L9+30h8+ZpQuYKimsmG/TayBaQ
QStIpGDFitOwvgS8BCShZ4eFfjlPc+nhw75L99rMecZqfuQa9fP6NfWLOeSNSHx7I2/AEbz/h2hP
vAUkGNFiYgestQ2nBaYgBiRv4h1sqFTemBZ1MpRDvj7eSC0wVqR+5g2+fClm1GDGPszYixnD7YxX
MSP95+hLskUslUIHJqSeXnzUKKBJ9OacxPy1XFD4uV+KBHEyXXJod3m5G7gjGdB443FEjgg4wjQe
TYErbF9Fd8sV7kp3kqZCUBxDB2xQZoPYUV+baw/OOgok/njDRqACHWCZ2zDp1SNQXd80ENYqME/b
fjjR2ecGsQiXdWSTvG7L1+WJHJqweDaiNCfX/pgsbCkqKCjKv7Pos+bjrXWdHHP76tm1S5euiwlY
sbHZWmC3FDOCqMrfF4MzJybIIhLPXOi3nDnfY9GGrUnURgoKZKnKEYtzb4CfqwX7icUlfAFysYu1
mM2tranmxMTU1IQEc6pFYP6IfNuFx7GVJLQCmvA8L3sSdnMsf/8w1v5PcauLvtLcdK6vITmYR132
vtzev3BqvD8iB+fQnmlBifokHd9m/KZ6NRe5LiPZKDAjvThTxf+kDVi23SFbT19v7rwx1KSbw6N6
hyxM/uoaclm+ITU9m2duOuaivBwoHoMu+2EYt+3TflSBwQ9R0CNPaejOusT918Mr44xpm/HSnXg6
lL71dHgW137ctjwzYncur0D+mEsJ9HtlpskBVUUzw3esbQPHjhbvPMgzTfCBnBne813RniwuLGlz
0laBaRqwc7mbbB6wBHaNuja+Dnr9FM+3QIKJfXFt6Pnd9WfWHhcYc1RlxO42t8rDx2oqjxTm7ueH
BimLQXsihlsSqlm4oFvbsU2wbrPuinBLytii45ns1NTqVsGdZiyfDy15xStUmE5lg/hcElj7wWIx
nqgCPxs+5ZtoxyGI9/J4gctrsvmOil65rufHywu7Texwu/nUCYH5Nvz9DqN6OdMeoIsJCkpufsBD
Pf7SJUeThwLBhVeU4Sq/2Z5LnhSN0m60hwWahrtvtlNITiNn1I6cod3ehpC3akphKhOLyyC6jEYH
yuR8lf/fTh9+7zQR/CaAz8TRkr0lbU5Oz/eXlJQ0On0kvvxErGD/EWAAVAMzdw0KZW5kc3RyZWFt
DWVuZG9iag0xMTIgMCBvYmoNPDwvQUlTIGZhbHNlL0JNL05vcm1hbC9DQSAwLjQyOTk5My9PUCBm
YWxzZS9PUE0gMC9TQSB0cnVlL1NNYXNrL05vbmUvVHlwZS9FeHRHU3RhdGUvY2EgMC40Mjk5OTMv
b3AgZmFsc2U+Pg1lbmRvYmoNMTEzIDAgb2JqDTw8L0xlbmd0aCA1MTgxMy9TdWJ0eXBlL1hNTC9U
eXBlL01ldGFkYXRhPj5zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2Vo
aUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQzIDc5LjE2MTIxMCwgMjAxNy8wOC8xMS0xMDoy
ODozNiAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv
dXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8x
LjEvIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8i
CiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0v
IgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NU
eXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6aWxs
dXN0cmF0b3I9Imh0dHA6Ly9ucy5hZG9iZS5jb20vaWxsdXN0cmF0b3IvMS4wLyIKICAgICAgICAg
ICAgeG1sbnM6eG1wVFBnPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvdC9wZy8iCiAgICAg
ICAgICAgIHhtbG5zOnN0RGltPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvRGlt
ZW5zaW9ucyMiCiAgICAgICAgICAgIHhtbG5zOnN0Rm50PSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvc1R5cGUvRm9udCMiCiAgICAgICAgICAgIHhtbG5zOnhtcEc9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20veGFwLzEuMC9nLyIKICAgICAgICAgICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUu
Y29tL3BkZi8xLjMvIj4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZv
cm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAg
ICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5QRyBPcGVuIEV2ZW5pbmcgQ2FtYnJp
ZGdlX2NhbXB1cyAoMDAyKTwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpBbHQ+CiAgICAgICAg
IDwvZGM6dGl0bGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMDktMTlUMTU6MDA6
MTMrMDE6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE5
LTA5LTE5VDE1OjAwOjEzKzAxOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVh
dGVEYXRlPjIwMTgtMDYtMTJUMTU6MjI6NTcrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAg
ICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIElsbHVzdHJhdG9yIENDIDIwMTcgKFdpbmRvd3MpPC94
bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnV1aWQ6OWU4NTc1YzUt
ZmQ5Mi1kYTQ0LTkwZTgtZjk5MDI0YmM5N2ExPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8
eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmJjZjRmZGRiLTYyOTYtZTQ0Yy05YmZiLThlMTEwOWM2
MDMyNTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJ
RD51dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4PC94bXBNTTpPcmlnaW5hbERv
Y3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpSZW5kaXRpb25DbGFzcz5wcm9vZjpwZGY8L3htcE1N
OlJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD51dWlkOjBkNmU4NmJm
LWUwNjAtNGY4YS1hMTJkLWI5NWE5YWFhMzYzYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAg
ICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDoxODY1ZGYyMi1mZWY5LTNjNGYtYWU1Yy1hNzRi
Y2UyNWZlZTc8L3N0UmVmOmRvY3VtZW50SUQ+CiAgICAgICAgICAgIDxzdFJlZjpvcmlnaW5hbERv
Y3VtZW50SUQ+dXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDODwvc3RSZWY6b3Jp
Z2luYWxEb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6cmVuZGl0aW9uQ2xhc3M+cHJvb2Y6
cGRmPC9zdFJlZjpyZW5kaXRpb25DbGFzcz4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4K
ICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAg
ICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAg
PHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RF
dnQ6aW5zdGFuY2VJRD54bXAuaWlkOmQ0ZTkyNTk3LTQ0NmQtNDQ3OC04ODg4LTgwZjA4MWJjMjJh
ODwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0w
NS0yNFQxMDoxNzozOCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0
OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0b3IgQ0MgMjAxNyAoTWFjaW50b3NoKTwvc3RF
dnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RF
dnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0
aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5j
ZUlEPnhtcC5paWQ6YmNmNGZkZGItNjI5Ni1lNDRjLTliZmItOGUxMTA5YzYwMzI1PC9zdEV2dDpp
bnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE4LTA2LTEyVDE1OjIy
OjU1KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVB
Z2VudD5BZG9iZSBJbGx1c3RyYXRvciBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVB
Z2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4K
ICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAg
PC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8aWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU+UHJp
bnQ8L2lsbHVzdHJhdG9yOlN0YXJ0dXBQcm9maWxlPgogICAgICAgICA8aWxsdXN0cmF0b3I6VHlw
ZT5Eb2N1bWVudDwvaWxsdXN0cmF0b3I6VHlwZT4KICAgICAgICAgPHhtcFRQZzpIYXNWaXNpYmxl
T3ZlcnByaW50PkZhbHNlPC94bXBUUGc6SGFzVmlzaWJsZU92ZXJwcmludD4KICAgICAgICAgPHht
cFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PlRydWU8L3htcFRQZzpIYXNWaXNpYmxlVHJhbnNw
YXJlbmN5PgogICAgICAgICA8eG1wVFBnOk5QYWdlcz4xPC94bXBUUGc6TlBhZ2VzPgogICAgICAg
ICA8eG1wVFBnOk1heFBhZ2VTaXplIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAg
ICAgPHN0RGltOnc+MjEwLjAwMTU1Njwvc3REaW06dz4KICAgICAgICAgICAgPHN0RGltOmg+Mjk3
LjAwMDA4Mzwvc3REaW06aD4KICAgICAgICAgICAgPHN0RGltOnVuaXQ+TWlsbGltZXRlcnM8L3N0
RGltOnVuaXQ+CiAgICAgICAgIDwveG1wVFBnOk1heFBhZ2VTaXplPgogICAgICAgICA8eG1wVFBn
OkZvbnRzPgogICAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6
cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEZudDpmb250TmFtZT5S
YWxld2F5LVNlbWlCb2xkPC9zdEZudDpmb250TmFtZT4KICAgICAgICAgICAgICAgICAgPHN0Rm50
OmZvbnRGYW1pbHk+UmFsZXdheSBTZW1pQm9sZDwvc3RGbnQ6Zm9udEZhbWlseT4KICAgICAgICAg
ICAgICAgICAgPHN0Rm50OmZvbnRGYWNlPlJlZ3VsYXI8L3N0Rm50OmZvbnRGYWNlPgogICAgICAg
ICAgICAgICAgICA8c3RGbnQ6Zm9udFR5cGU+VHJ1ZVR5cGU8L3N0Rm50OmZvbnRUeXBlPgogICAg
ICAgICAgICAgICAgICA8c3RGbnQ6dmVyc2lvblN0cmluZz5WZXJzaW9uIDMuMDAwZzsgdHRmYXV0
b2hpbnQgKHYxLjUpIC1sIDggLXIgMjggLUcgMjggLXggMTQgLUQgbGF0biAtZiBjeXJsIC13IEcg
LWMgLVggIiI8L3N0Rm50OnZlcnNpb25TdHJpbmc+CiAgICAgICAgICAgICAgICAgIDxzdEZudDpj
b21wb3NpdGU+RmFsc2U8L3N0Rm50OmNvbXBvc2l0ZT4KICAgICAgICAgICAgICAgICAgPHN0Rm50
OmZvbnRGaWxlTmFtZT5SYWxld2F5LVNlbWlCb2xkLnR0Zjwvc3RGbnQ6Zm9udEZpbGVOYW1lPgog
ICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VU
eXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEZudDpmb250TmFtZT5TdGFnU2Fu
cy1Cb29rPC9zdEZudDpmb250TmFtZT4KICAgICAgICAgICAgICAgICAgPHN0Rm50OmZvbnRGYW1p
bHk+U3RhZyBTYW5zPC9zdEZudDpmb250RmFtaWx5PgogICAgICAgICAgICAgICAgICA8c3RGbnQ6
Zm9udEZhY2U+Qm9vazwvc3RGbnQ6Zm9udEZhY2U+CiAgICAgICAgICAgICAgICAgIDxzdEZudDpm
b250VHlwZT5PcGVuIFR5cGU8L3N0Rm50OmZvbnRUeXBlPgogICAgICAgICAgICAgICAgICA8c3RG
bnQ6dmVyc2lvblN0cmluZz5WZXJzaW9uIDEuMDAwO1BTIDAwMS4wMDE7aG90Y29udiAxLjAuNTA7
bWFrZW90Zi5saWIyLjAuMTY5NzA8L3N0Rm50OnZlcnNpb25TdHJpbmc+CiAgICAgICAgICAgICAg
ICAgIDxzdEZudDpjb21wb3NpdGU+RmFsc2U8L3N0Rm50OmNvbXBvc2l0ZT4KICAgICAgICAgICAg
ICAgICAgPHN0Rm50OmZvbnRGaWxlTmFtZT5TdGFnU2Fucy1Cb29rLm90Zjwvc3RGbnQ6Zm9udEZp
bGVOYW1lPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QmFnPgog
ICAgICAgICA8L3htcFRQZzpGb250cz4KICAgICAgICAgPHhtcFRQZzpQbGF0ZU5hbWVzPgogICAg
ICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaT5DeWFuPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGk+TWFnZW50YTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRm
OmxpPlllbGxvdzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPkJsYWNrPC9yZGY6bGk+
CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBUUGc6UGxhdGVOYW1lcz4KICAg
ICAgICAgPHhtcFRQZzpTd2F0Y2hHcm91cHM+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAg
ICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAg
ICAgPHhtcEc6Z3JvdXBOYW1lPkRlZmF1bHQgU3dhdGNoIEdyb3VwPC94bXBHOmdyb3VwTmFtZT4K
ICAgICAgICAgICAgICAgICAgPHhtcEc6Z3JvdXBUeXBlPjA8L3htcEc6Z3JvdXBUeXBlPgogICAg
ICAgICAgICAgICAgICA8eG1wRzpDb2xvcmFudHM+CiAgICAgICAgICAgICAgICAgICAgIDxyZGY6
U2VxPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291
cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5XaGl0ZTwv
eG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNN
WUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9D
RVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4w
MDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50
YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAg
ICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1l
PkJsYWNrPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0
eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOmJsYWNrPjEwMC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJk
ZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
c3dhdGNoTmFtZT5DTVlLIFJlZDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6bWFnZW50YT4xMDAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4xMDAuMDAwMDAwPC94bXBHOnllbGxvdz4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6Ymxh
Y2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAg
ICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DTVlLIFllbGxvdzwveG1wRzpzd2F0Y2hOYW1lPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzpt
YWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAw
MDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAu
MDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Q01ZSyBHcmVlbjwveG1w
Rzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8
L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNT
PC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAw
MDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRh
PjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnllbGxvdz4xMDAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5
cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFt
ZT5DTVlLIEN5YW48L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpjeWFuPjEwMC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPkNNWUsgQmx1ZTwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEwMC4wMDAwMDA8L3htcEc6bWFnZW50YT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnll
bGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3ht
cEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAg
ICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DTVlLIE1hZ2VudGE8L3htcEc6c3dhdGNo
TmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1v
ZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0
eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBH
OmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MTAwLjAwMDAw
MDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+
MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpi
bGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3Vy
Y2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTUgTT0x
MDAgWT05MCBLPTEwPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6Y3lhbj4xNS4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6bWFnZW50YT4xMDAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnllbGxvdz45MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4xMC4wMDAwMDA8L3htcEc6YmxhY2s+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8
cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT05MCBZPTg1IEs9MDwveG1wRzpzd2F0Y2hOYW1lPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT45MC4wMDAwMDA8L3htcEc6
bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93Pjg1LjAwMDAw
MDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAu
MDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09ODAgWT05NSBL
PTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9k
ZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+
UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFu
PjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1h
Z2VudGE+ODAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnllbGxvdz45NS4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBh
cnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0
Y2hOYW1lPkM9MCBNPTUwIFk9MTAwIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT41MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVs
bG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1w
RzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTM1IFk9ODUgSz0wPC94bXBHOnN3
YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1w
Rzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3ht
cEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwv
eG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjM1LjAw
MDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxs
b3c+ODUuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv
cmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJl
c291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTUg
TT0wIFk9OTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6Y3lhbj41LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnllbGxvdz45MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPkM9MjAgTT0wIFk9MTAwIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MjAuMDAwMDAwPC94bXBHOmN5YW4+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFn
ZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8
L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAw
MDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9NTAgTT0wIFk9MTAwIEs9
MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2Rl
PkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5Q
Uk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+
NTAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1h
Z2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBh
cnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0
Y2hOYW1lPkM9NzUgTT0wIFk9MTAwIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOmN5YW4+NzUuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVs
bG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1w
RzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9ODUgTT0xMCBZPTEwMCBLPTEwPC94bXBH
OnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwv
eG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8
L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj44NS4wMDAw
MDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4x
MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpibGFjaz4xMC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5
cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFt
ZT5DPTkwIE09MzAgWT05NSBLPTMwPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6Y3lhbj45MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4zMC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93Pjk1LjAwMDAwMDwveG1wRzp5ZWxsb3c+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjMwLjAwMDAwMDwveG1wRzpi
bGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9NzUgTT0wIFk9NzUgSz0wPC94bXBHOnN3YXRj
aE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzpt
b2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6
dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj43NS4wMDAwMDA8L3ht
cEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAw
MDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+
NzUuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRm
OmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291
cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTgwIE09
MTAgWT00NSBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpjeWFuPjgwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptYWdlbnRhPjEwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzp5ZWxsb3c+NDUuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRm
OmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6c3dhdGNoTmFtZT5DPTcwIE09MTUgWT0wIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+NzAuMDAwMDAwPC94bXBHOmN5YW4+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MTUuMDAwMDAwPC94bXBHOm1h
Z2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwv
eG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAw
MDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz04NSBNPTUwIFk9MCBLPTA8
L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5D
TVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJP
Q0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjg1
LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdl
bnRhPjUwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNl
VHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hO
YW1lPkM9MTAwIE09OTUgWT01IEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjk1LjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+NS4wMDAwMDA8L3htcEc6eWVsbG93
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpi
bGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTAwIE09MTAwIFk9MjUgSz0yNTwveG1wRzpz
d2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3ht
cEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94
bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAw
MDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEw
MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
eWVsbG93PjI1LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOmJsYWNrPjI1LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAg
ICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1l
PkM9NzUgTT0xMDAgWT0wIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmN5YW4+NzUuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MTAwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFj
az4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9NTAgTT0xMDAgWT0wIEs9MDwveG1wRzpzd2F0Y2hO
YW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9k
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5
cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+NTAuMDAwMDAwPC94bXBH
OmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MTAwLjAwMDAw
MDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+
MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpi
bGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3Vy
Y2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MzUgTT0x
MDAgWT0zNSBLPTEwPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6Y3lhbj4zNS4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6bWFnZW50YT4xMDAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4zNS4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4xMC4wMDAwMDA8L3htcEc6YmxhY2s+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8
cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6c3dhdGNoTmFtZT5DPTEwIE09MTAwIFk9NTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMC4wMDAwMDA8L3htcEc6Y3lh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4xMDAuMDAwMDAwPC94
bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz41MC4w
MDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFj
az4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2Ui
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTk1IFk9
MjAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0
eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzptYWdlbnRhPjk1LjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp5ZWxsb3c+MjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJk
ZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
c3dhdGNoTmFtZT5DPTI1IE09MjUgWT00MCBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjI1LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjI1LjAwMDAwMDwveG1wRzptYWdlbnRh
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+NDAuMDAwMDAwPC94bXBH
OnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8
L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAg
ICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTQwIE09NDUgWT01MCBLPTU8L3ht
cEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlL
PC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VT
UzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjQwLjAw
MDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRh
PjQ1LjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp5ZWxsb3c+NTAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6YmxhY2s+NS4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5
cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFt
ZT5DPTUwIE09NTAgWT02MCBLPTI1PC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6Y3lhbj41MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6bWFnZW50YT41MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjYwLjAwMDAwMDwveG1wRzp5ZWxsb3c+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjI1LjAwMDAwMDwveG1wRzpi
bGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9NTUgTT02MCBZPTY1IEs9NDA8L3htcEc6c3dh
dGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBH
Om1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1w
Rzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjU1LjAwMDAwMDwv
eG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjYwLjAw
MDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxs
b3c+NjUuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6YmxhY2s+NDAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8
L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJS
ZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0y
NSBNPTQwIFk9NjUgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6Y3lhbj4yNS4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bWFnZW50YT40MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjY1LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0zMCBNPTUwIFk9NzUgSz0xMDwveG1wRzpzd2F0Y2hOYW1l
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MzAuMDAwMDAwPC94bXBHOmN5
YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+NTAuMDAwMDAwPC94
bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz43NS4w
MDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFj
az4xMC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxp
PgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTM1IE09NjAg
WT04MCBLPTI1PC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6Y3lhbj4zNS4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bWFnZW50YT42MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6eWVsbG93PjgwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjI1LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPkM9NDAgTT02NSBZPTkwIEs9MzU8L3htcEc6c3dhdGNoTmFtZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjQwLjAwMDAwMDwveG1wRzpjeWFuPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjY1LjAwMDAwMDwveG1wRzpt
YWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+OTAuMDAwMDAw
PC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MzUu
MDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz00MCBNPTcwIFk9MTAw
IEs9NTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5
cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpj
eWFuPjQwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzptYWdlbnRhPjcwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjUwLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAg
ICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkg
cmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzpzd2F0Y2hOYW1lPkM9NTAgTT03MCBZPTgwIEs9NzA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjUwLjAwMDAwMDwveG1wRzpjeWFuPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjcwLjAwMDAwMDwveG1wRzptYWdl
bnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+ODAuMDAwMDAwPC94
bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+NzAuMDAw
MDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+QVJVIExpZ2h0IEJsdWUgQ01Z
SzwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBl
PlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGlu
dD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpj
eWFuPjY3LjAwMDAwMjwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzptYWdlbnRhPjEuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6
cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3
YXRjaE5hbWU+bGlsYWM8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6Y3lhbj40MC4wMDAwMDE8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6bWFnZW50YT4yOC45OTk5OTk8L3htcEc6bWFnZW50YT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAg
ICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTg2IE09OCBZPTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6
dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1v
ZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+ODYuMDAwMDAxPC94bXBH
OmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+OC4wMDAwMDA8
L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAu
MDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Ymxh
Y2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxp
PgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5BUlUgQmx1ZSBD
TVlLPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5
cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0
aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzptYWdlbnRhPjcwLjk5OTk5ODwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp5ZWxsb3c+MTAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+NDcuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAg
ICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjps
aSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnN3YXRjaE5hbWU+QVJVIExpZ2h0IEJsdWUgUkdCPC94bXBHOnN3YXRjaE5hbWU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+NjYuODMzMDAxPC94bXBHOmN5YW4+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+Ny4xMDE1MDA8L3htcEc6
bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjIuNDM1MzAw
PC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4w
MDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAg
ICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5BUlUgWWVsbG93IENNWUs8
L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5Q
Uk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+
MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
b2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lh
bj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
YWdlbnRhPjE5LjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp5ZWxsb3c+ODguOTk5OTk5PC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpw
YXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dh
dGNoTmFtZT5CbGFjazwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MTAwLjAwMDAwMDwveG1wRzpibGFjaz4K
ICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTAwIE09NzEgWT0xMCBLPTQ3PC94bXBHOnN3YXRjaE5h
bWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0
eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3ht
cEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBH
Om1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwv
eG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjcwLjk5
OTk5ODwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxs
b3c+MTAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6YmxhY2s+NDcuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8
L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJS
ZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0y
NyBNPTAgWT0xMDAgSz0zPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmN5YW4+MjcuMDAwMDAxPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVsbG93Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4zLjAwMDAwMDwveG1wRzpibGFj
az4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPks9MTU8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2Vu
dGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1w
Rzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjE0Ljk5OTQw
MDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPks9MjU8L3htcEc6c3dhdGNoTmFt
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5
cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1w
Rzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6
bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1w
RzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAw
PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4w
LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJs
YWNrPjI1LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3Vy
Y2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPks9MzU8L3ht
cEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9D
RVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAw
LjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2Rl
PkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4w
LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdl
bnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOmJsYWNrPjM0Ljk5OTA5OTwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNl
VHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hO
YW1lPks9NDU8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjQ0Ljk5OTk5OTwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPlBBTlRPTkUgODcyIENNWUs8L3htcEc6c3dhdGNoTmFtZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj44MS4zODcwMDE8L3htcEc6Y3lhbj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4zMy43MTYzMDA8L3htcEc6
bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjYuMTE4OTAw
PC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4y
ODM4MDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAg
ICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5XaGl0ZTwveG1wRzpzd2F0
Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3ht
cEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAw
PC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwv
eG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAw
PC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4w
MDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVs
bG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv
cmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJl
c291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAg
TT01MCBZPTEwMCBLPTAgMTwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bWFnZW50YT41MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4K
ICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9ODYgTT04IFk9MCBLPTA8L3htcEc6c3dhdGNoTmFtZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+NDAuMDAwMDAwPC94bXBHOnRp
bnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2Rl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjg2LjAwMDAwMTwveG1wRzpj
eWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjguMDAwMDAwPC94
bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAw
MDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNr
PjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+QVJVIExpZ2h0IEJs
dWUgQ01ZSzwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6dGludD41OS45OTk5OTk8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmN5YW4+NjcuMDAwMDAyPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1hZ2VudGE+MS4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxp
IHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6c3dhdGNoTmFtZT5DPTAgTT05IFk9MTAwIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+OS4wMDAwMDA8L3htcEc6bWFn
ZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8
L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAw
MDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTAwIE09NCBZPTU2IEs9
ODwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBl
PlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGlu
dD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpj
eWFuPjEwMC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bWFnZW50YT40LjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp5ZWxsb3c+NTYuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6YmxhY2s+OC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJk
ZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
c3dhdGNoTmFtZT5DPTEwMCBNPTMxIFk9MCBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAwMDAwPC94bXBHOmN5YW4+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MzEuMDAwMDAwPC94bXBHOm1h
Z2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwv
eG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAw
MDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09ODIgWT05NCBLPTI8
L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5Q
Uk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+
MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
b2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lh
bj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
YWdlbnRhPjgxLjk5OTk5OTwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp5ZWxsb3c+OTQuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6YmxhY2s+Mi4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpw
YXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dh
dGNoTmFtZT5DPTYgTT0xMDAgWT01NSBLPTI4PC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+Ni4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4xMDAuMDAwMDAwPC94bXBHOm1hZ2Vu
dGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz41NS4wMDAwMDE8L3ht
cEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4yOC4wMDAw
MDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAg
ICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTgwIE09OTkgWT0wIEs9MDwv
eG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBS
T0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4x
MDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1v
ZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFu
PjgwLjAwMDAwMTwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
YWdlbnRhPjk5LjAwMDAwMTwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBh
cnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0
Y2hOYW1lPkM9MTAwIE09OTAgWT0xMyBLPTcxPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjg5Ljk5OTk5ODwveG1wRzptYWdl
bnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTMuMDAwMDAwPC94
bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+NzAuOTk5
OTk4PC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAg
ICAgICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICAgICAgICAgICA8L3htcEc6Q29sb3Jh
bnRzPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6
cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDx4bXBHOmdyb3VwTmFtZT5H
cmF5czwveG1wRzpncm91cE5hbWU+CiAgICAgICAgICAgICAgICAgIDx4bXBHOmdyb3VwVHlwZT4x
PC94bXBHOmdyb3VwVHlwZT4KICAgICAgICAgICAgICAgICAgPHhtcEc6Q29sb3JhbnRzPgogICAg
ICAgICAgICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjps
aSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnN3YXRjaE5hbWU+Qz0wIE09MCBZPTAgSz0xMDA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50
YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBH
OnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MTAwLjAwMDAw
MDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTAgWT0wIEs9OTA8L3ht
cEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlL
PC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VT
UzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAw
MDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+
MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6YmxhY2s+ODkuOTk5NDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAg
ICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBl
PSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+
Qz0wIE09MCBZPTAgSz04MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz43OS45OTg4MDA8L3htcEc6YmxhY2s+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8
cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT0wIFk9MCBLPTcwPC94bXBHOnN3YXRjaE5hbWU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1h
Z2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwv
eG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjY5Ljk5
OTcwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTAgWT0wIEs9NjA8
L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5D
TVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJP
Q0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAu
MDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2Vu
dGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6YmxhY2s+NTkuOTk5MTAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAg
ICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VU
eXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5h
bWU+Qz0wIE09MCBZPTAgSz01MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz41MC4wMDAwMDA8L3htcEc6YmxhY2s+
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAg
ICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT0wIFk9MCBLPTQwPC94bXBHOnN3YXRjaE5hbWU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFu
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBH
Om1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAw
MDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjM5
Ljk5OTQwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTAgWT0wIEs9
MzA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9k
ZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+
UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFu
PjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1h
Z2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6YmxhY2s+MjkuOTk4ODAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAg
ICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFy
c2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRj
aE5hbWU+Qz0wIE09MCBZPTAgSz0yMDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4xOS45OTk3MDA8L3htcEc6Ymxh
Y2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAg
ICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT0wIFk9MCBLPTEwPC94bXBHOnN3YXRjaE5h
bWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2Rl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlw
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpj
eWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94
bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAw
MDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNr
PjkuOTk5MTAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MCBZPTAg
Sz01PC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1v
ZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBl
PlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lh
bj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
YWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmJsYWNrPjQuOTk4ODAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAg
ICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAg
ICAgICAgICAgICA8L3htcEc6Q29sb3JhbnRzPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAg
ICAgICAgIDx4bXBHOmdyb3VwTmFtZT5CcmlnaHRzPC94bXBHOmdyb3VwTmFtZT4KICAgICAgICAg
ICAgICAgICAgPHhtcEc6Z3JvdXBUeXBlPjE8L3htcEc6Z3JvdXBUeXBlPgogICAgICAgICAgICAg
ICAgICA8eG1wRzpDb2xvcmFudHM+CiAgICAgICAgICAgICAgICAgICAgIDxyZGY6U2VxPgogICAg
ICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT0xMDAgWT0xMDAg
Sz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1v
ZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBl
PlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lh
bj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
YWdlbnRhPjEwMC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRm
OnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpz
d2F0Y2hOYW1lPkM9MCBNPTc1IFk9MTAwIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT43NS4wMDAwMDA8L3htcEc6bWFnZW50YT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6
eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwv
eG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTEwIFk9OTUgSz0wPC94bXBH
OnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwv
eG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8
L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAw
MDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEw
LjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5
ZWxsb3c+OTUuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAg
IDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9
IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5D
PTg1IE09MTAgWT0xMDAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6Y3lhbj44NS4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6bWFnZW50YT4xMC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVsbG93Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFj
az4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTAwIE09OTAgWT0wIEs9MDwveG1wRzpzd2F0Y2hO
YW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9k
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5
cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1w
RzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjkwLjAwMDAw
MDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+
MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpi
bGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3Vy
Y2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9NjAgTT05
MCBZPTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6Y3lhbj42MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bWFnZW50YT45MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAzMTAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDMxMDA8L3htcEc6YmxhY2s+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICA8L3JkZjpTZXE+
CiAgICAgICAgICAgICAgICAgIDwveG1wRzpDb2xvcmFudHM+CiAgICAgICAgICAgICAgIDwvcmRm
OmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wVFBnOlN3YXRjaEdyb3Vw
cz4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BZG9iZSBQREYgbGlicmFyeSAxNS4wMDwvcGRmOlBy
b2R1Y2VyPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0
YT4KPD94cGFja2V0IGVuZD0iciI/Pg0KZW5kc3RyZWFtDWVuZG9iag0xMTQgMCBvYmoNPDwvTWV0
YWRhdGEgMTEzIDAgUj4+DWVuZG9iag0xMTUgMCBvYmoNPDwvTGVuZ3RoIDUxODEzL1N1YnR5cGUv
WE1ML1R5cGUvTWV0YWRhdGE+PnN0cmVhbQ0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0w
TXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRh
LyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDMgNzkuMTYxMjEwLCAyMDE3LzA4LzEx
LTEwOjI4OjM2ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJk
ZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1l
bnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv
MS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8x
LjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25z
LmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxu
czppbGx1c3RyYXRvcj0iaHR0cDovL25zLmFkb2JlLmNvbS9pbGx1c3RyYXRvci8xLjAvIgogICAg
ICAgICAgICB4bWxuczp4bXBUUGc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC90L3BnLyIK
ICAgICAgICAgICAgeG1sbnM6c3REaW09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
ZS9EaW1lbnNpb25zIyIKICAgICAgICAgICAgeG1sbnM6c3RGbnQ9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC9zVHlwZS9Gb250IyIKICAgICAgICAgICAgeG1sbnM6eG1wRz0iaHR0cDovL25z
LmFkb2JlLmNvbS94YXAvMS4wL2cvIgogICAgICAgICAgICB4bWxuczpwZGY9Imh0dHA6Ly9ucy5h
ZG9iZS5jb20vcGRmLzEuMy8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwv
ZGM6Zm9ybWF0PgogICAgICAgICA8ZGM6dGl0bGU+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAg
ICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPlBHIE9wZW4gRXZlbmluZyBD
YW1icmlkZ2VfY2FtcHVzICgwMDIpPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAg
ICAgICAgPC9kYzp0aXRsZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOS0wOS0xOVQx
NTowMDoxMyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRl
PjIwMTktMDktMTlUMTU6MDA6MTMrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
OkNyZWF0ZURhdGU+MjAxOC0wNi0xMlQxNToyMjo1NyswMTowMDwveG1wOkNyZWF0ZURhdGU+CiAg
ICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgSWxsdXN0cmF0b3IgQ0MgMjAxNyAoV2luZG93
cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+dXVpZDo5ZTg1
NzVjNS1mZDkyLWRhNDQtOTBlOC1mOTkwMjRiYzk3YTE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAg
ICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6YmNmNGZkZGItNjI5Ni1lNDRjLTliZmItOGUx
MTA5YzYwMzI1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1
bWVudElEPnV1aWQ6NUQyMDg5MjQ5M0JGREIxMTkxNEE4NTkwRDMxNTA4Qzg8L3htcE1NOk9yaWdp
bmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOlJlbmRpdGlvbkNsYXNzPnByb29mOnBkZjwv
eG1wTU06UmVuZGl0aW9uQ2xhc3M+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFy
c2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnV1aWQ6MGQ2
ZTg2YmYtZTA2MC00ZjhhLWExMmQtYjk1YTlhYWEzNjNhPC9zdFJlZjppbnN0YW5jZUlEPgogICAg
ICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjE4NjVkZjIyLWZlZjktM2M0Zi1hZTVj
LWE3NGJjZTI1ZmVlNzwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdp
bmFsRG9jdW1lbnRJRD51dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4PC9zdFJl
ZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgICAgIDxzdFJlZjpyZW5kaXRpb25DbGFzcz5w
cm9vZjpwZGY8L3N0UmVmOnJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8L3htcE1NOkRlcml2ZWRG
cm9tPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAg
ICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAg
IDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ZDRlOTI1OTctNDQ2ZC00NDc4LTg4ODgtODBmMDgx
YmMyMmE4PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4y
MDE4LTA1LTI0VDEwOjE3OjM4KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8
c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBJbGx1c3RyYXRvciBDQyAyMDE3IChNYWNpbnRvc2gp
PC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4v
PC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2
dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omlu
c3RhbmNlSUQ+eG1wLmlpZDpiY2Y0ZmRkYi02Mjk2LWU0NGMtOWJmYi04ZTExMDljNjAzMjU8L3N0
RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDYtMTJU
MTU6MjI6NTUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0
d2FyZUFnZW50PkFkb2JlIElsbHVzdHJhdG9yIENDIDIwMTcgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0
d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFu
Z2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAg
ICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxpbGx1c3RyYXRvcjpTdGFydHVwUHJvZmls
ZT5QcmludDwvaWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU+CiAgICAgICAgIDxpbGx1c3RyYXRv
cjpUeXBlPkRvY3VtZW50PC9pbGx1c3RyYXRvcjpUeXBlPgogICAgICAgICA8eG1wVFBnOkhhc1Zp
c2libGVPdmVycHJpbnQ+RmFsc2U8L3htcFRQZzpIYXNWaXNpYmxlT3ZlcnByaW50PgogICAgICAg
ICA8eG1wVFBnOkhhc1Zpc2libGVUcmFuc3BhcmVuY3k+VHJ1ZTwveG1wVFBnOkhhc1Zpc2libGVU
cmFuc3BhcmVuY3k+CiAgICAgICAgIDx4bXBUUGc6TlBhZ2VzPjE8L3htcFRQZzpOUGFnZXM+CiAg
ICAgICAgIDx4bXBUUGc6TWF4UGFnZVNpemUgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAg
ICAgICAgICA8c3REaW06dz4yMTAuMDAxNTU2PC9zdERpbTp3PgogICAgICAgICAgICA8c3REaW06
aD4yOTcuMDAwMDgzPC9zdERpbTpoPgogICAgICAgICAgICA8c3REaW06dW5pdD5NaWxsaW1ldGVy
czwvc3REaW06dW5pdD4KICAgICAgICAgPC94bXBUUGc6TWF4UGFnZVNpemU+CiAgICAgICAgIDx4
bXBUUGc6Rm9udHM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxp
IHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0Rm50OmZvbnRO
YW1lPlJhbGV3YXktU2VtaUJvbGQ8L3N0Rm50OmZvbnROYW1lPgogICAgICAgICAgICAgICAgICA8
c3RGbnQ6Zm9udEZhbWlseT5SYWxld2F5IFNlbWlCb2xkPC9zdEZudDpmb250RmFtaWx5PgogICAg
ICAgICAgICAgICAgICA8c3RGbnQ6Zm9udEZhY2U+UmVndWxhcjwvc3RGbnQ6Zm9udEZhY2U+CiAg
ICAgICAgICAgICAgICAgIDxzdEZudDpmb250VHlwZT5UcnVlVHlwZTwvc3RGbnQ6Zm9udFR5cGU+
CiAgICAgICAgICAgICAgICAgIDxzdEZudDp2ZXJzaW9uU3RyaW5nPlZlcnNpb24gMy4wMDBnOyB0
dGZhdXRvaGludCAodjEuNSkgLWwgOCAtciAyOCAtRyAyOCAteCAxNCAtRCBsYXRuIC1mIGN5cmwg
LXcgRyAtYyAtWCAiIjwvc3RGbnQ6dmVyc2lvblN0cmluZz4KICAgICAgICAgICAgICAgICAgPHN0
Rm50OmNvbXBvc2l0ZT5GYWxzZTwvc3RGbnQ6Y29tcG9zaXRlPgogICAgICAgICAgICAgICAgICA8
c3RGbnQ6Zm9udEZpbGVOYW1lPlJhbGV3YXktU2VtaUJvbGQudHRmPC9zdEZudDpmb250RmlsZU5h
bWU+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpw
YXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0Rm50OmZvbnROYW1lPlN0
YWdTYW5zLUJvb2s8L3N0Rm50OmZvbnROYW1lPgogICAgICAgICAgICAgICAgICA8c3RGbnQ6Zm9u
dEZhbWlseT5TdGFnIFNhbnM8L3N0Rm50OmZvbnRGYW1pbHk+CiAgICAgICAgICAgICAgICAgIDxz
dEZudDpmb250RmFjZT5Cb29rPC9zdEZudDpmb250RmFjZT4KICAgICAgICAgICAgICAgICAgPHN0
Rm50OmZvbnRUeXBlPk9wZW4gVHlwZTwvc3RGbnQ6Zm9udFR5cGU+CiAgICAgICAgICAgICAgICAg
IDxzdEZudDp2ZXJzaW9uU3RyaW5nPlZlcnNpb24gMS4wMDA7UFMgMDAxLjAwMTtob3Rjb252IDEu
MC41MDttYWtlb3RmLmxpYjIuMC4xNjk3MDwvc3RGbnQ6dmVyc2lvblN0cmluZz4KICAgICAgICAg
ICAgICAgICAgPHN0Rm50OmNvbXBvc2l0ZT5GYWxzZTwvc3RGbnQ6Y29tcG9zaXRlPgogICAgICAg
ICAgICAgICAgICA8c3RGbnQ6Zm9udEZpbGVOYW1lPlN0YWdTYW5zLUJvb2sub3RmPC9zdEZudDpm
b250RmlsZU5hbWU+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpC
YWc+CiAgICAgICAgIDwveG1wVFBnOkZvbnRzPgogICAgICAgICA8eG1wVFBnOlBsYXRlTmFtZXM+
CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpPkN5YW48L3JkZjps
aT4KICAgICAgICAgICAgICAgPHJkZjpsaT5NYWdlbnRhPC9yZGY6bGk+CiAgICAgICAgICAgICAg
IDxyZGY6bGk+WWVsbG93PC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+QmxhY2s8L3Jk
ZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcFRQZzpQbGF0ZU5hbWVz
PgogICAgICAgICA8eG1wVFBnOlN3YXRjaEdyb3Vwcz4KICAgICAgICAgICAgPHJkZjpTZXE+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAg
ICAgICAgICA8eG1wRzpncm91cE5hbWU+RGVmYXVsdCBTd2F0Y2ggR3JvdXA8L3htcEc6Z3JvdXBO
YW1lPgogICAgICAgICAgICAgICAgICA8eG1wRzpncm91cFR5cGU+MDwveG1wRzpncm91cFR5cGU+
CiAgICAgICAgICAgICAgICAgIDx4bXBHOkNvbG9yYW50cz4KICAgICAgICAgICAgICAgICAgICAg
PHJkZjpTZXE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0i
UmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPldo
aXRlPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1v
ZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBl
PlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lh
bj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
YWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAg
ICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFy
c2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRj
aE5hbWU+QmxhY2s8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MTAwLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPkNNWUsgUmVkPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEwMC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVs
bG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1w
RzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkNNWUsgWWVsbG93PC94bXBHOnN3YXRjaE5h
bWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2Rl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlw
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpj
eWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94
bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4xMDAu
MDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Ymxh
Y2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxp
PgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DTVlLIEdyZWVu
PC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+
Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBS
T0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4x
MDAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1h
Z2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6eWVsbG93PjEwMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBh
cnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0
Y2hOYW1lPkNNWUsgQ3lhbjwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnN3YXRjaE5hbWU+Q01ZSyBCbHVlPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MTAwLjAwMDAwMDwveG1wRzptYWdl
bnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3ht
cEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAw
MDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkNNWUsgTWFnZW50YTwveG1wRzpz
d2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3ht
cEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94
bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8
L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4xMDAu
MDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnll
bGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8
L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJS
ZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0x
NSBNPTEwMCBZPTkwIEs9MTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpjeWFuPjE1LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptYWdlbnRhPjEwMC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjkwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjEwLjAwMDAwMDwveG1wRzpibGFj
az4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTkwIFk9ODUgSz0wPC94bXBHOnN3YXRjaE5h
bWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2Rl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlw
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpj
eWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjkwLjAwMDAwMDwv
eG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+ODUu
MDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Ymxh
Y2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxp
PgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT04MCBZ
PTk1IEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bWFnZW50YT44MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6eWVsbG93Pjk1LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAg
ICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSBy
ZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnN3YXRjaE5hbWU+Qz0wIE09NTAgWT0xMDAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjUwLjAwMDAwMDwveG1wRzptYWdlbnRh
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1w
Rzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAw
PC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAg
ICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MzUgWT04NSBLPTA8L3ht
cEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlL
PC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VT
UzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAw
MDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+
MzUuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnllbGxvdz44NS4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAg
ICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1l
PkM9NSBNPTAgWT05MCBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpjeWFuPjUuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjkwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0yMCBNPTAgWT0xMDAgSz0wPC94bXBHOnN3YXRjaE5hbWU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4yMC4wMDAwMDA8L3htcEc6Y3lh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1w
RzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAw
MDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNr
PjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz01MCBNPTAgWT0x
MDAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0
eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
Y3lhbj41MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAg
ICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSBy
ZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnN3YXRjaE5hbWU+Qz03NSBNPTAgWT0xMDAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj43NS4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRh
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1w
Rzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAw
PC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAg
ICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz04NSBNPTEwIFk9MTAwIEs9MTA8
L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5D
TVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJP
Q0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjg1
LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdl
bnRhPjEwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmJsYWNrPjEwLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBh
cnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0
Y2hOYW1lPkM9OTAgTT0zMCBZPTk1IEs9MzA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpjeWFuPjkwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjMwLjAwMDAwMDwveG1wRzptYWdlbnRhPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+OTUuMDAwMDAwPC94bXBHOnll
bGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MzAuMDAwMDAwPC94
bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz03NSBNPTAgWT03NSBLPTA8L3htcEc6
c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94
bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwv
eG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjc1LjAwMDAw
MDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAu
MDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnll
bGxvdz43NS4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAg
PC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0i
UmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9
ODAgTT0xMCBZPTQ1IEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOmN5YW4+ODAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOm1hZ2VudGE+MTAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz40NS4wMDAwMDA8L3htcEc6eWVsbG93PgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4K
ICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9NzAgTT0xNSBZPTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj43MC4wMDAwMDA8L3htcEc6Y3lh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4xNS4wMDAwMDA8L3ht
cEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAw
MDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+
MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgog
ICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTg1IE09NTAgWT0w
IEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
b2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlw
ZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5
YW4+ODUuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1hZ2VudGE+NTAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6
cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3
YXRjaE5hbWU+Qz0xMDAgTT05NSBZPTUgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+OTUuMDAwMDAwPC94bXBHOm1hZ2VudGE+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz41LjAwMDAwMDwveG1wRzp5
ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94
bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0xMDAgTT0xMDAgWT0yNSBLPTI1PC94
bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01Z
SzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NF
U1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAu
MDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2Vu
dGE+MTAwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp5ZWxsb3c+MjUuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6YmxhY2s+MjUuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAg
ICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFy
c2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRj
aE5hbWU+Qz03NSBNPTEwMCBZPTAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6Y3lhbj43NS4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4xMDAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxs
b3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBH
OmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAg
ICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz01MCBNPTEwMCBZPTAgSz0wPC94bXBHOnN3
YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1w
Rzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3ht
cEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj41MC4wMDAwMDA8
L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4xMDAu
MDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnll
bGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8
L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJS
ZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0z
NSBNPTEwMCBZPTM1IEs9MTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpjeWFuPjM1LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptYWdlbnRhPjEwMC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjM1LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjEwLjAwMDAwMDwveG1wRzpibGFj
az4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MTAgTT0xMDAgWT01MCBLPTA8L3htcEc6c3dhdGNo
TmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1v
ZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0
eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjEwLjAwMDAwMDwveG1w
RzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEwMC4wMDAw
MDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93
PjUwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3Jk
ZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNv
dXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09
OTUgWT0yMCBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1hZ2VudGE+OTUuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnllbGxvdz4yMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPkM9MjUgTT0yNSBZPTQwIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MjUuMDAwMDAwPC94bXBHOmN5YW4+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MjUuMDAwMDAwPC94bXBHOm1h
Z2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz40MC4wMDAwMDA8
L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAw
MDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9NDAgTT00NSBZPTUwIEs9
NTwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2Rl
PkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5Q
Uk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+
NDAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1h
Z2VudGE+NDUuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnllbGxvdz41MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpibGFjaz41LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAg
ICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBh
cnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0
Y2hOYW1lPkM9NTAgTT01MCBZPTYwIEs9MjU8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpjeWFuPjUwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjUwLjAwMDAwMDwveG1wRzptYWdlbnRhPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+NjAuMDAwMDAwPC94bXBHOnll
bGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MjUuMDAwMDAwPC94
bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz01NSBNPTYwIFk9NjUgSz00MDwveG1w
Rzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8
L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNT
PC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+NTUuMDAw
MDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+
NjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnllbGxvdz42NS4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpibGFjaz40MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5
cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFt
ZT5DPTI1IE09NDAgWT02NSBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpjeWFuPjI1LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzptYWdlbnRhPjQwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+NjUuMDAwMDAwPC94bXBHOnllbGxvdz4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6Ymxh
Y2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAg
ICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTMwIE09NTAgWT03NSBLPTEwPC94bXBHOnN3YXRj
aE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzpt
b2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6
dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4zMC4wMDAwMDA8L3ht
cEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT41MC4wMDAw
MDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93
Pjc1LjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OmJsYWNrPjEwLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9y
ZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVz
b3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MzUg
TT02MCBZPTgwIEs9MjU8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpjeWFuPjM1LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptYWdlbnRhPjYwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+ODAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MjUuMDAwMDAwPC94bXBHOmJsYWNrPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz00MCBNPTY1IFk9OTAgSz0zNTwveG1wRzpzd2F0Y2hOYW1l
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+NDAuMDAwMDAwPC94bXBHOmN5
YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+NjUuMDAwMDAwPC94
bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz45MC4w
MDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFj
az4zNS4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxp
PgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTQwIE09NzAg
WT0xMDAgSz01MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmN5YW4+NDAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1hZ2VudGE+NzAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnllbGxvdz4xMDAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+NTAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAg
ICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJk
ZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnN3YXRjaE5hbWU+Qz01MCBNPTcwIFk9ODAgSz03MDwveG1wRzpzd2F0Y2hOYW1lPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+NTAuMDAwMDAwPC94bXBHOmN5YW4+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+NzAuMDAwMDAwPC94bXBH
Om1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz44MC4wMDAw
MDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz43
MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgog
ICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5BUlUgTGlnaHQgQmx1
ZSBDTVlLPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmN5YW4+NjcuMDAwMDAyPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOm1hZ2VudGE+MS4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxp
IHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6c3dhdGNoTmFtZT5saWxhYzwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpjeWFuPjQwLjAwMDAwMTwveG1wRzpjeWFuPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjI4Ljk5OTk5OTwveG1wRzptYWdlbnRhPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpi
bGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9ODYgTT04IFk9MCBLPTA8L3htcEc6c3dhdGNo
TmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBH
OnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwv
eG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3ht
cEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj44Ni4wMDAwMDE8
L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT44LjAw
MDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxs
b3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9y
ZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVz
b3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkFSVSBC
bHVlIENNWUs8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6Y3lhbj4xMDAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOm1hZ2VudGE+NzAuOTk5OTk4PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4xMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz40Ny4wMDAwMDA8L3htcEc6YmxhY2s+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8
cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6c3dhdGNoTmFtZT5BUlUgTGlnaHQgQmx1ZSBSR0I8L3htcEc6c3dhdGNoTmFtZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0
aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9k
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj42Ni44MzMwMDE8L3htcEc6
Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT43LjEwMTUwMDwv
eG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+Mi40
MzUzMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFj
az4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2Ui
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkFSVSBZZWxsb3cg
Q01ZSzwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0
eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1hZ2VudGE+MTkuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOnllbGxvdz44OC45OTk5OTk8L3htcEc6eWVsbG93PgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAg
ICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkg
cmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzpzd2F0Y2hOYW1lPkJsYWNrPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4xMDAuMDAwMDAwPC94bXBHOmJs
YWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAg
ICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0xMDAgTT03MSBZPTEwIEs9NDc8L3htcEc6c3dh
dGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94
bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAw
MDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8
L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAw
MDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+
NzAuOTk5OTk4PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnllbGxvdz4xMC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpibGFjaz40Ny4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5
cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFt
ZT5DPTI3IE09MCBZPTEwMCBLPTM8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50PgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6Y3lhbj4yNy4wMDAwMDE8L3htcEc6Y3lhbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxs
b3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjMuMDAwMDAwPC94bXBH
OmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAg
ICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Sz0xNTwveG1wRzpzd2F0Y2hOYW1lPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6
bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAw
PC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+MTQu
OTk5NDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Sz0yNTwveG1wRzpzd2F0
Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3ht
cEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAw
PC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwv
eG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAw
PC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4w
MDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVs
bG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6YmxhY2s+MjUuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8
L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJS
ZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Sz0z
NTwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBl
PlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGlu
dD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpj
eWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
Om1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6YmxhY2s+MzQuOTk5MDk5PC94bXBHOmJsYWNrPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6
cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3
YXRjaE5hbWU+Sz00NTwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+NDQuOTk5OTk5PC94bXBHOmJsYWNrPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx4bXBHOnN3YXRjaE5hbWU+UEFOVE9ORSA4NzIgQ01ZSzwveG1wRzpzd2F0Y2hOYW1lPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRp
bnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2Rl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjgxLjM4NzAwMTwveG1wRzpj
eWFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjMzLjcxNjMwMDwv
eG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+Ni4x
MTg5MDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFj
az4wLjI4MzgwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2Ui
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPldoaXRlPC94bXBH
OnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VT
UzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4w
MDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5D
TVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4w
MDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50
YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAg
ICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1l
PkM9MCBNPTUwIFk9MTAwIEs9MCAxPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzptYWdlbnRhPjUwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxsb3c+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJs
YWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAg
ICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz04NiBNPTggWT0wIEs9MDwveG1wRzpzd2F0Y2hO
YW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6
dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD40MC4wMDAwMDA8L3ht
cEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBH
Om1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+ODYuMDAwMDAxPC94
bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+OC4wMDAw
MDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93
PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRm
OmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291
cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5BUlUgTGln
aHQgQmx1ZSBDTVlLPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp0aW50PjU5Ljk5OTk5OTwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6Y3lhbj42Ny4wMDAwMDI8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6bWFnZW50YT4xLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAg
ICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxy
ZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTkgWT0xMDAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGlu
dD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT45LjAwMDAwMDwveG1w
RzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAw
MDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNr
PjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0xMDAgTT00IFk9
NTYgSz04PC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzp0aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzptYWdlbnRhPjQuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnllbGxvdz41Ni4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz44LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6
bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzpzd2F0Y2hOYW1lPkM9MTAwIE09MzEgWT0wIEs9MDwveG1wRzpzd2F0Y2hOYW1lPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjEwMC4wMDAwMDA8L3htcEc6Y3lh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4zMS4wMDAwMDA8L3ht
cEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAw
MDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+
MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgog
ICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT04MiBZPTk0
IEs9MjwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0
eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
dGludD4xMDAuMDAwMDAwPC94bXBHOnRpbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1hZ2VudGE+ODEuOTk5OTk5PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOnllbGxvdz45NC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpibGFjaz4yLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAg
ICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkg
cmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzpzd2F0Y2hOYW1lPkM9NiBNPTEwMCBZPTU1IEs9Mjg8L3htcEc6c3dhdGNoTmFtZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj42LjAwMDAwMDwveG1wRzpjeWFuPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEwMC4wMDAwMDA8L3htcEc6
bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjU1LjAwMDAw
MTwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjI4
LjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9ODAgTT05OSBZPTAg
Sz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5
cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0
aW50PjEwMC4wMDAwMDA8L3htcEc6dGludD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OmN5YW4+ODAuMDAwMDAxPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1hZ2VudGE+OTkuMDAwMDAxPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAg
ICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSBy
ZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnN3YXRjaE5hbWU+Qz0xMDAgTT05MCBZPTEzIEs9NzE8L3htcEc6c3dhdGNoTmFtZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAwMDwveG1wRzp0aW50Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAwMDAwPC94bXBHOmN5YW4+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+ODkuOTk5OTk4PC94bXBH
Om1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4xMy4wMDAw
MDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz43
MC45OTk5OTg8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRmOmxpPgog
ICAgICAgICAgICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgICAgICAgICAgIDwveG1wRzpD
b2xvcmFudHM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxp
IHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHhtcEc6Z3JvdXBO
YW1lPkdyYXlzPC94bXBHOmdyb3VwTmFtZT4KICAgICAgICAgICAgICAgICAgPHhtcEc6Z3JvdXBU
eXBlPjE8L3htcEc6Z3JvdXBUeXBlPgogICAgICAgICAgICAgICAgICA8eG1wRzpDb2xvcmFudHM+
CiAgICAgICAgICAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICAgICAgICAgICA8
cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT0wIFk9MCBLPTEwMDwveG1wRzpzd2F0Y2hOYW1lPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzpt
YWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8
L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4xMDAu
MDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MCBZPTAgSz05
MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2Rl
PkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5Q
Uk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5YW4+
MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bWFn
ZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8
eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpibGFjaz44OS45OTk0MDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJz
ZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNo
TmFtZT5DPTAgTT0wIFk9MCBLPTgwPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjc5Ljk5ODgwMDwveG1wRzpibGFj
az4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTAgWT0wIEs9NzA8L3htcEc6c3dhdGNoTmFt
ZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBl
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5
YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3ht
cEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAuMDAw
MDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+
NjkuOTk5NzAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MCBZPTAg
Sz02MDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpt
b2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlw
ZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmN5
YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzpibGFjaz41OS45OTkxMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpw
YXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dh
dGNoTmFtZT5DPTAgTT0wIFk9MCBLPTUwPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjUwLjAwMDAwMDwveG1wRzpi
bGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTAgWT0wIEs9NDA8L3htcEc6c3dhdGNo
TmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1v
ZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0
eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94bXBH
OmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAwMDA8
L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93PjAu
MDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Ymxh
Y2s+MzkuOTk5NDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjps
aT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJj
ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MCBZ
PTAgSz0zMDwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
Rzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OmN5YW4+MC4wMDAwMDA8L3htcEc6Y3lhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bWFnZW50YT4wLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzp5ZWxsb3c+MC4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpibGFjaz4yOS45OTg4MDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJk
ZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
c3dhdGNoTmFtZT5DPTAgTT0wIFk9MCBLPTIwPC94bXBHOnN3YXRjaE5hbWU+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnllbGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxs
b3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjE5Ljk5OTcwMDwveG1w
RzpibGFjaz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTAgWT0wIEs9MTA8L3htcEc6c3dh
dGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBH
Om1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1w
Rzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAuMDAwMDAwPC94
bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+MC4wMDAw
MDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6eWVsbG93
PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6
YmxhY2s+OS45OTkxMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcmRm
OmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291
cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNoTmFtZT5DPTAgTT0w
IFk9MCBLPTU8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1hZ2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6YmxhY2s+NC45OTg4MDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICA8L3JkZjpTZXE+CiAg
ICAgICAgICAgICAgICAgIDwveG1wRzpDb2xvcmFudHM+CiAgICAgICAgICAgICAgIDwvcmRmOmxp
PgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAg
ICAgICAgICAgICAgPHhtcEc6Z3JvdXBOYW1lPkJyaWdodHM8L3htcEc6Z3JvdXBOYW1lPgogICAg
ICAgICAgICAgICAgICA8eG1wRzpncm91cFR5cGU+MTwveG1wRzpncm91cFR5cGU+CiAgICAgICAg
ICAgICAgICAgIDx4bXBHOkNvbG9yYW50cz4KICAgICAgICAgICAgICAgICAgICAgPHJkZjpTZXE+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2Ui
PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hOYW1lPkM9MCBNPTEwMCBZ
PTEwMCBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHht
cEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1w
RzpjeWFuPjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOm1hZ2VudGE+MTAwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAg
ICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjps
aSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnN3YXRjaE5hbWU+Qz0wIE09NzUgWT0xMDAgSz0wPC94bXBHOnN3YXRjaE5hbWU+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1wRzptb2RlPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3htcEc6dHlwZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4wLjAwMDAwMDwveG1wRzpjeWFuPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjc1LjAwMDAwMDwveG1wRzptYWdl
bnRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwv
eG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAw
MDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0wIE09MTAgWT05NSBLPTA8
L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9kZT5D
TVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+UFJP
Q0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFuPjAu
MDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2Vu
dGE+MTAuMDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOnllbGxvdz45NS4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzpibGFjaz4wLjAwMDAwMDwveG1wRzpibGFjaz4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNl
VHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpzd2F0Y2hO
YW1lPkM9ODUgTT0xMCBZPTEwMCBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzpjeWFuPjg1LjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzptYWdlbnRhPjEwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTAwLjAwMDAwMDwveG1wRzp5ZWxs
b3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBH
OmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAg
ICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0xMDAgTT05MCBZPTAgSz0wPC94bXBHOnN3
YXRjaE5hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1vZGU+Q01ZSzwveG1w
Rzptb2RlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzp0eXBlPlBST0NFU1M8L3ht
cEc6dHlwZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAwMDAw
PC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+OTAu
MDAwMDAwPC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnll
bGxvdz4wLjAwMDAwMDwveG1wRzp5ZWxsb3c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4
bXBHOmJsYWNrPjAuMDAwMDAwPC94bXBHOmJsYWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8
L3JkZjpsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJS
ZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz02
MCBNPTkwIFk9MCBLPTA8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHhtcEc6bW9kZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx4bXBHOnR5cGU+UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpjeWFuPjYwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8eG1wRzptYWdlbnRhPjkwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MC4wMDMxMDA8L3htcEc6eWVsbG93PgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzpibGFjaz4wLjAwMzEwMDwveG1wRzpibGFjaz4KICAg
ICAgICAgICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgICAgICAgIDwvcmRm
OlNlcT4KICAgICAgICAgICAgICAgICAgPC94bXBHOkNvbG9yYW50cz4KICAgICAgICAgICAgICAg
PC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBUUGc6U3dhdGNo
R3JvdXBzPgogICAgICAgICA8cGRmOlByb2R1Y2VyPkFkb2JlIFBERiBsaWJyYXJ5IDE1LjAwPC9w
ZGY6UHJvZHVjZXI+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4
bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+DQplbmRzdHJlYW0NZW5kb2JqDTExNiAwIG9iag08
PC9NZXRhZGF0YSAxMTUgMCBSPj4NZW5kb2JqDTExNyAwIG9iag08PC9MZW5ndGggNzI3NS9TdWJ0
eXBlL1hNTC9UeXBlL01ldGFkYXRhPj5zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0i
VzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6
bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQzIDc5LjE2MTIxMCwgMjAxNy8w
OC8xMS0xMDoyODozNiAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9l
bGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
eGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94
YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6
Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAg
eG1sbnM6aWxsdXN0cmF0b3I9Imh0dHA6Ly9ucy5hZG9iZS5jb20vaWxsdXN0cmF0b3IvMS4wLyIK
ICAgICAgICAgICAgeG1sbnM6eG1wVFBnPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvdC9w
Zy8iCiAgICAgICAgICAgIHhtbG5zOnN0RGltPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvRGltZW5zaW9ucyMiCiAgICAgICAgICAgIHhtbG5zOnhtcEc9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20veGFwLzEuMC9nLyIKICAgICAgICAgICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUu
Y29tL3BkZi8xLjMvIj4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wb3N0c2NyaXB0
PC9kYzpmb3JtYXQ+CiAgICAgICAgIDxkYzp0aXRsZT4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+UHJpbnQ8L3JkZjpsaT4K
ICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6
Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+QWRy
aWFuIFZhdWdoYW48L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2Rj
OmNyZWF0b3I+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMDUtMTVUMTI6Mzc6MTUr
MDE6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE5LTA1
LTE1VDEyOjM3OjE1KzAxOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVE
YXRlPjIwMTktMDUtMTVUMTI6Mzc6MTUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8
eG1wOkNyZWF0b3JUb29sPkFkb2JlIElsbHVzdHJhdG9yIENDIDIzLjAgKE1hY2ludG9zaCk8L3ht
cDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDowZTY1OTM0
NC1hODJjLTQxMGEtYjdhYS01NDhjNzI3ZTI1MWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAg
IDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MGU2NTkzNDQtYTgyYy00MTBhLWI3YWEtNTQ4Yzcy
N2UyNTFhPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVu
dElEPnV1aWQ6NUQyMDg5MjQ5M0JGREIxMTkxNEE4NTkwRDMxNTA4Qzg8L3htcE1NOk9yaWdpbmFs
RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOlJlbmRpdGlvbkNsYXNzPnByb29mOnBkZjwveG1w
TU06UmVuZGl0aW9uQ2xhc3M+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VU
eXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6Yzg4
MDE1NDQtY2Q4MS00Y2NjLWE5MDEtNGFhMWM1NjQ2N2RiPC9zdFJlZjppbnN0YW5jZUlEPgogICAg
ICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOmM4ODAxNTQ0LWNkODEtNGNjYy1hOTAx
LTRhYTFjNTY0NjdkYjwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdp
bmFsRG9jdW1lbnRJRD51dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4PC9zdFJl
ZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgICAgIDxzdFJlZjpyZW5kaXRpb25DbGFzcz5w
cm9vZjpwZGY8L3N0UmVmOnJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8L3htcE1NOkRlcml2ZWRG
cm9tPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAg
ICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAg
IDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NzBmNWFkZTItNWY0NS00MDk5LTlhOTYtZWYxZmE0
ZTdjNzczPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4y
MDE5LTA1LTE1VDExOjIyOjA2KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8
c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBJbGx1c3RyYXRvciBDQyAyMy4wIChNYWNpbnRvc2gp
PC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4v
PC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAg
PHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2
dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omlu
c3RhbmNlSUQ+eG1wLmlpZDowZTY1OTM0NC1hODJjLTQxMGEtYjdhYS01NDhjNzI3ZTI1MWE8L3N0
RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTktMDUtMTVU
MTI6Mzc6MTUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0
d2FyZUFnZW50PkFkb2JlIElsbHVzdHJhdG9yIENDIDIzLjAgKE1hY2ludG9zaCk8L3N0RXZ0OnNv
ZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNo
YW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJk
ZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5j
b252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRl
cnM+ZnJvbSBhcHBsaWNhdGlvbi9wb3N0c2NyaXB0IHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5p
bGx1c3RyYXRvcjwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAg
ICAgICAgICA8c3RFdnQ6YWN0aW9uPmNvbnZlcnRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAg
ICAgICAgICA8c3RFdnQ6cGFyYW1ldGVycz5mcm9tIGFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQgdG8g
YXBwbGljYXRpb24vdm5kLmFkb2JlLmlsbHVzdHJhdG9yPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAg
ICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBl
PSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9z
dEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBw
bGljYXRpb24vcG9zdHNjcmlwdCB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUuaWxsdXN0cmF0b3I8
L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAg
ICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0
RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0
RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi9wb3N0c2NyaXB0IHRvIGFwcGxpY2F0aW9u
L3ZuZC5hZG9iZS5pbGx1c3RyYXRvcjwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAg
PC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5
PgogICAgICAgICA8aWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU+UHJpbnQ8L2lsbHVzdHJhdG9y
OlN0YXJ0dXBQcm9maWxlPgogICAgICAgICA8eG1wVFBnOkhhc1Zpc2libGVPdmVycHJpbnQ+RmFs
c2U8L3htcFRQZzpIYXNWaXNpYmxlT3ZlcnByaW50PgogICAgICAgICA8eG1wVFBnOkhhc1Zpc2li
bGVUcmFuc3BhcmVuY3k+RmFsc2U8L3htcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PgogICAg
ICAgICA8eG1wVFBnOk5QYWdlcz4xPC94bXBUUGc6TlBhZ2VzPgogICAgICAgICA8eG1wVFBnOk1h
eFBhZ2VTaXplIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0RGltOnc+
MTExLjM1Mjc2OTwvc3REaW06dz4KICAgICAgICAgICAgPHN0RGltOmg+NzMuNTMwMTk4PC9zdERp
bTpoPgogICAgICAgICAgICA8c3REaW06dW5pdD5NaWxsaW1ldGVyczwvc3REaW06dW5pdD4KICAg
ICAgICAgPC94bXBUUGc6TWF4UGFnZVNpemU+CiAgICAgICAgIDx4bXBUUGc6UGxhdGVOYW1lcz4K
ICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+Q3lhbjwvcmRmOmxp
PgogICAgICAgICAgICAgICA8cmRmOmxpPk1hZ2VudGE8L3JkZjpsaT4KICAgICAgICAgICAgICAg
PHJkZjpsaT5ZZWxsb3c8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT5CbGFjazwvcmRm
OmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wVFBnOlBsYXRlTmFtZXM+
CiAgICAgICAgIDx4bXBUUGc6U3dhdGNoR3JvdXBzPgogICAgICAgICAgICA8cmRmOlNlcT4KICAg
ICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAg
ICAgICAgIDx4bXBHOmdyb3VwTmFtZT5EZWZhdWx0IFN3YXRjaCBHcm91cDwveG1wRzpncm91cE5h
bWU+CiAgICAgICAgICAgICAgICAgIDx4bXBHOmdyb3VwVHlwZT4wPC94bXBHOmdyb3VwVHlwZT4K
ICAgICAgICAgICAgICAgICAgPHhtcEc6Q29sb3JhbnRzPgogICAgICAgICAgICAgICAgICAgICA8
cmRmOlNlcT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJS
ZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+V2hp
dGU8L3htcEc6c3dhdGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6bW9k
ZT5DTVlLPC94bXBHOm1vZGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnR5cGU+
UFJPQ0VTUzwveG1wRzp0eXBlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzpjeWFu
PjAuMDAwMDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1h
Z2VudGE+MC4wMDAwMDA8L3htcEc6bWFnZW50YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHhtcEc6eWVsbG93PjAuMDAwMDAwPC94bXBHOnllbGxvdz4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6YmxhY2s+MC4wMDAwMDA8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJz
ZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6c3dhdGNo
TmFtZT5SaWNoIEJsdWUgQ01ZSzwveG1wRzpzd2F0Y2hOYW1lPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8eG1wRzptb2RlPkNNWUs8L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx4bXBHOmN5YW4+MTAwLjAwMDAwMDwveG1wRzpjeWFuPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8eG1wRzptYWdlbnRhPjkwLjAwMDAwMDwveG1wRzptYWdlbnRhPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICA8eG1wRzp5ZWxsb3c+MTMuMDAwMDAwPC94bXBHOnllbGxvdz4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6YmxhY2s+NzEuMDAwMDAwPC94bXBHOmJs
YWNrPgogICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgICAg
ICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx4bXBHOnN3YXRjaE5hbWU+Qz0xMDAgTT05MCBZPTEzIEs9NjA8L3htcEc6c3dh
dGNoTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6dHlwZT5QUk9DRVNTPC94
bXBHOnR5cGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOnRpbnQ+MTAwLjAwMDAw
MDwveG1wRzp0aW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8eG1wRzptb2RlPkNNWUs8
L3htcEc6bW9kZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhtcEc6Y3lhbj4xMDAuMDAw
MDAwPC94bXBHOmN5YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBHOm1hZ2VudGE+
ODkuOTk5OTk4PC94bXBHOm1hZ2VudGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4bXBH
OnllbGxvdz4xMy4wMDAwMDA8L3htcEc6eWVsbG93PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8eG1wRzpibGFjaz42MC4wMDAwMDI8L3htcEc6YmxhY2s+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgICAg
ICAgICAgIDwveG1wRzpDb2xvcmFudHM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAg
ICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wVFBnOlN3YXRjaEdyb3Vwcz4KICAgICAgICAg
PHBkZjpQcm9kdWNlcj5BZG9iZSBQREYgbGlicmFyeSAxMC4wMTwvcGRmOlByb2R1Y2VyPgogICAg
ICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0
IGVuZD0iciI/Pg0KZW5kc3RyZWFtDWVuZG9iag0xMTggMCBvYmoNPDwvTWV0YWRhdGEgMTE3IDAg
Uj4+DWVuZG9iag0xMTkgMCBvYmoNPDwvQ1MvRGV2aWNlQ01ZSy9JIGZhbHNlL0sgZmFsc2UvUy9U
cmFuc3BhcmVuY3kvVHlwZS9Hcm91cD4+DWVuZG9iag0xMjAgMCBvYmoNPDwvQkJveFs0NzIuNjU2
IDc1MC45NTEgNTE1LjI5NyA3MjIuNzU0XS9GaWx0ZXIvRmxhdGVEZWNvZGUvR3JvdXAgMTE5IDAg
Ui9MZW5ndGggNjM5L01hdHJpeFsxLjAgMC4wIDAuMCAxLjAgMC4wIDAuMF0vUmVzb3VyY2VzPDwv
RXh0R1N0YXRlPDwvR1MwIDkyIDAgUj4+Pj4vU3VidHlwZS9Gb3JtPj5zdHJlYW0NCkiJdFNLrhQx
DNz3KXKBCf4kdnwCNmwQSBxgxEdiQALuL1G23xuJBWqpO9WxnXKlTOPju+sXnuUybdtwkel7jQW4
eMiZHD5+f74+jZ8XzTAeNJ0F730i13HG9+vN2w80vv5BIezj4bHCJrnzcDWEuo77jyu36o0zdNxo
ohxPtTVu/en3/brJZPbXPVCS85r0Ajool7fnRqbc/ql3exass14gveZQ1flyvf+HuM9w3yCOoIMm
n8SRjk6KiIxHwqCEQUWSl4Exn5NAshkcUTQXFjKVOHeypEJs5OhcygAHyiNwTZEYa3K2syer5h5b
Aj8LQOxkoE1BEZRaKGLzoDWUNxk3R4kEhF8I9LmWgkjqD7DBjafRSWCyU2A+Hei881Ijcu946Wq4
e6AgSxRiHRpoFM1LfpAoCbZWosIOiTw6lLywcSRRP7vuIKTQKkTO3dOuS7bW1uaKdFnAhQC6AmQF
cgNwM4+62D0lUguCIo+EJQrNdaR0k3QpWSl63KstPZ3pUY252ev9FQ1PRFYo6dzzqk8pSNIW052I
tWTKqUBoELfT0iSZak0EXkrS1lblptXkdbqWQATrPhIrZaNE0ZAQh4Jg9kgjhSeUUwzd0nwEqQE2
MlCeljaH5UWUqDIJY1znJGMAXX1oaiPWIqxkT5C14LI6qX3AKv+ZFZ4rj3SBGJwufs4KuHD1T5vr
o6U9RVWkVoNXi1uWxNBw9FydVQO9tZpwr36j3bN25OTIy73wkhqkbe1YTaSn1FjbE704LNsprY5y
OasV8ZxU0RYBR9wvQPPWJIdHoiuX6ah6stVxmuZvzWD6fepycnlyqVGKbsrMA30f17dSMJ+/AgwA
npAIhQ0KZW5kc3RyZWFtDWVuZG9iag0xMjEgMCBvYmoNPDwvQ1MvRGV2aWNlQ01ZSy9JIGZhbHNl
L0sgZmFsc2UvUy9UcmFuc3BhcmVuY3kvVHlwZS9Hcm91cD4+DWVuZG9iag0xMjIgMCBvYmoNPDwv
QkJveFsxMTkuNDcgMjY4LjI3OSAxNjIuMTExIDI0MC4wODJdL0ZpbHRlci9GbGF0ZURlY29kZS9H
cm91cCAxMjEgMCBSL0xlbmd0aCA2MzgvTWF0cml4WzEuMCAwLjAgMC4wIDEuMCAwLjAgMC4wXS9S
ZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzAgOTIgMCBSPj4+Pi9TdWJ0eXBlL0Zvcm0+PnN0cmVh
bQ0KSIlsU1uqXDkM/D+r8AZakWRZslcwP/kJCcwCLnnA3BmYZP8wVTp9SQJDg1t1LMlSqaTj0/vr
X/zMjkQNDxXdPsIlw4ZvsVPj++frz/HPpXLShkqZ41z70D57/HW9++Ojjq8/mGcofjZsbskNF19T
jq0YL39fvOpTak2caXCUmfHb+XK5mNUTuZTvZ8TTbg9aj7fPdH/8muPxlup+5An1LUI7yZfrw28V
p9TeoABNW+bPgg29Vpfg4xXoKAs6yuIsWKgxTjzYDtKzvli8nuo4ycOUxJcpMQ3nXsh/hbifEWKI
WWJz8sYSdu0F2/PAK8XJo+xYI2UnM06chWiMSBT2y1USwe53TdwsFGSSKLQkfZEV2+1Vtsg8vu9q
BvMQHC2C49leJ5pQD96V017zwJ7nNKjTfloN084ge9lMHyeIBkjLDpZTLNkEpsTh9A/oSplxUJ3D
L8XuSs9CzBI/7FrR+yvQRncoMLaRnk6nSdp2deU5d0cV2uGUMUBOB4CvZ/NUBLkMjiBqjgcawBWe
nIsAoh23yOF3Wj2cPIOoHizIIrDczy148D3KbErNZkKhxFfAqWxLrYEeRi8U8wplnCJyJIaKk8Ii
iy4LIahcY/bLUT0CVUYp9rDzs0Q4USv9Wod4ru6ZleB/3hRENmNezwj/f9kHik2j7gMSmvXLoiJ/
p9DFtdfZROu5ub+zxk0mlfbABtjpDdnoAXBNLkexEbS9OdxYqHi2chnHeMDAOlCJk2Ayf6yirWVN
hlNnWAEsD1Uau7moXnSf98Q3ZUOcdbPRFPm5Rb5amtr9ZOTtOintJ2EQ9eJc/ZY0N4g3N6VLWfwO
zvNbM8jffwIMACNb/XkNCmVuZHN0cmVhbQ1lbmRvYmoNMTIzIDAgb2JqDTw8L0NTL0RldmljZUNN
WUsvSSBmYWxzZS9LIGZhbHNlL1MvVHJhbnNwYXJlbmN5L1R5cGUvR3JvdXA+Pg1lbmRvYmoNMTI0
IDAgb2JqDTw8L0JCb3hbOTcuMzA1MyAyMTkuMjAzIDEzOS45NDYgMTkxLjAwNl0vRmlsdGVyL0Zs
YXRlRGVjb2RlL0dyb3VwIDEyMyAwIFIvTGVuZ3RoIDY0MC9NYXRyaXhbMS4wIDAuMCAwLjAgMS4w
IDAuMCAwLjBdL1Jlc291cmNlczw8L0V4dEdTdGF0ZTw8L0dTMCA5MiAwIFI+Pj4+L1N1YnR5cGUv
Rm9ybT4+c3RyZWFtDQpIiWxUW6pUQQz8P6s4G5g2nc6jswJ//BEFFzD4AEdB3T9YlTOXiyADTWo6
nU5Vqo+cH98dv/CrHEv8nDWHSJymI+zUPWbl+fvz8en8eciomKeMnIrVdzGufX4/3rz9IOfXPyiD
ffzmOWcMV0MJsbFN9Lz/OLjV60hfWGMicaxYvdozvh865swn0pG6nyeecWcwur38zfTbaw17Affj
uuQJ5eWEdJEvx/t/OrYRigJVQ2zaa8MTXLNb0PMBVMKGSow3Gxud2NehRjp+MTDn9pKJdUOqNQL/
rGFrYt3uyLKhWqeNiTM+5lrcmY44tyPW2MiKoTiPKlAzxg5lXayJ06wuGMr9yGFG9jsXdnxvxIFG
E6ScqszdWYn6GF4Vdna2hoERJ/gkQWl0XllLqhbYS2Xsi4cWjhJkdZ5kw5iF5nJHa11KYA0kZ5Nw
pV+iNYxhRQMUGS0r9Ke4Psa8ei2OzocWeQvYP4DIHw3aVgrU1SQY7+zOY+0+lRU954ieDwAvz1Yq
CdjDHXPc67yBgLbVlhPM1aOFosgrme0gTp/H6KBh6QQz9vMl3Hgj+10jV2shcOMDcAmJiVQjKR53
9POAPSqJtH2TQXdRSB2ObDQvtvpqy54CX+QDcF7as0sk0TDcVAINb9bGnhGsSwWLFk3zeUL/732d
fOgQohzeAsXX1wo6XUKcb19Way21W/6rqrWcdNsNr2BWv5INCoC+KG+SB1hvWtQcLODuawoTHQOZ
B+0BWwCs/raYJwGMQSmURsMrwPuhTW23EtlvXdc18s1OiCMvMdq3WpfLr8+CNJswv1JXtnwtF1zt
u8fS8Wa86imo8+sIVvTvt9aPv78CDACGt/2+DQplbmRzdHJlYW0NZW5kb2JqDTEyNSAwIG9iag08
PC9DUy9EZXZpY2VDTVlLL0kgZmFsc2UvSyBmYWxzZS9TL1RyYW5zcGFyZW5jeS9UeXBlL0dyb3Vw
Pj4NZW5kb2JqDTEyNiAwIG9iag08PC9CQm94WzYzMy44ODggMjYyLjk1MyA2ODAuOTEzIDIzMS44
NTddL0ZpbHRlci9GbGF0ZURlY29kZS9Hcm91cCAxMjUgMCBSL0xlbmd0aCA2MzcvTWF0cml4WzEu
MCAwLjAgMC4wIDEuMCAwLjAgMC4wXS9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzAgOTIgMCBS
Pj4+Pi9TdWJ0eXBlL0Zvcm0+PnN0cmVhbQ0KSIlsVFuqFEEM/Z9V1AamzKPyqBX4448ouICLD3AU
1P2Dyam+egVp6KkzSSU5J0nTeP/m9qMeV52ZOUR5psVYMUnWKETbx8+Ptw/j+43mdh40g6XelrvP
O8fX26vX72h8/lWByl4PD7ddfr6HVCjmivX07dYmvGfquNP00MHTaI37+Tnvp9tdpqo923QS5XXp
OrfPOd7P/+fC/Z9o9z/hTqoL03WHEObT7e3Lsr34s3iV3Tzzb9V1OayLkD0eXSBThZh7B5J7VLXK
fV599IzDI8iGTNPo2jl9rEngEbnqLCbtt6Z7QytCVmduU7PzqbGHTj9EfO6iWYHUxz2meVVaNmuw
XQtIES3HxHWZVB4F1LOKihYh56JdYNnlaBC3cxbwhKRRnSsUvFs1Ej6u4VBRY7XVGBp7S5CTDb6x
4BszyYETxa0U6K8HaTbivHx5Y5YY0gZCVdZ2qjkkaWlbW68WYCoU4trMtYqjljaP1mYt6+JNBcJx
86JmUqZK1byeZdQtGIO+cdqHMrKRBBJraYwWEgPHAsEV0igDhAh9cL6mbCGOtmfVUVNfqZKQCkJ0
4tNvFtzvn0fPsq/mzKwHLuyY02WVpqLsWADrJaTE4EVXXmjFqcAEqjNBSprCUFqsZ5fXkb3qKsvG
Dib3TaqWIJAhrxIAL///llhNqtcFUa/BiRdbUqUwmkDmpzDozmdTKWBjQxeugayNqeqxU9SdE3xU
yrpBVzaE8mJUyIzPVTHg5NNXx3ciLhLnq6F5iaKdXaF1dWzhOyG7J0n9iODd6oI7jiZYENET2hvo
2QtmOBrD1qIxvhOdpC8FmrMUmlp9SZtUkfsCCfv5LcAAyDsGUw0KZW5kc3RyZWFtDWVuZG9iag0x
MjcgMCBvYmoNPDwvQ1MvRGV2aWNlQ01ZSy9JIGZhbHNlL0sgZmFsc2UvUy9UcmFuc3BhcmVuY3kv
VHlwZS9Hcm91cD4+DWVuZG9iag0xMjggMCBvYmoNPDwvQkJveFsyNDQuMzkzIC0yNjkuMzQgMjkx
LjQxOCAtMzAwLjQzNV0vRmlsdGVyL0ZsYXRlRGVjb2RlL0dyb3VwIDEyNyAwIFIvTGVuZ3RoIDYz
Mi9NYXRyaXhbMS4wIDAuMCAwLjAgMS4wIDAuMCAwLjBdL1Jlc291cmNlczw8L0V4dEdTdGF0ZTw8
L0dTMCA5MiAwIFI+Pj4+L1N1YnR5cGUvRm9ybT4+c3RyZWFtDQpIiWxU3aoWMQy836foC2xN0jRp
n8Abb0TBBzj4Ax4F9f3BmfQTPSALS7JNk5lJstLev7l+4DH3PvZo9xDpPmbz7GLehnbZ0X5+vD60
75f0Hdqkpxrec23ae7Wv16vX76R9/oVMOMejzWIiIle7bc2uqz19u3hS774GXpHetE95+X66rA8g
ON7oIutceJgIONZdX0/w/W+G+0+iU+LhyuOCVIpP19sXYEf3rchjG9Hp+y9c7TkJwHZ7BjRlqr53
snIslBy43z0VZqws/CmBb3NsgNYVzbsQfy6HadMQ5D2C3lxtwlQegFT0sRAZMhETfY9gipEt+wzW
5EmiD2RuSZYLFzc8iWjrgSlzwHZ81+5zVNQsISMMJ7FKv0Tw6mnUSEwrLKMkG8iNO1pOgO7qGrTT
GZd9SZa7iMfX0XmUUzZbjjCreaF2yQSoA4IYLjFKB+0C+la3By/MvnAd0kLmZwjgPgkUFKCMkoDE
hu1Li0D1GUfbqr2IZluADNWqR5abDoeEnRHkgJtOlZzMwSSJBS2DHZCsBscrx3DO+MQm3AHGRQaE
b1asJqqNImsGuOibU3FVL89rT0LOmRH9UDZUJtdIFgEm0cLxrMLTSmUVSibdIB1cmyWDep5qTs8e
pJHy6bq5t5Vpan0ekudK/H/kU9hK5chjAG36PxsKmaqezCBOL60JCU4eJJNFz6DdGH8A43bIMLr8
KSiGFP+TQqmlK5xZs08+i+7S+p1w4rAdo7SWcsY6cgypQOrLGfUSB4hrRLEE5B/FH/7Oo0dJ5jbO
iNcVH2fg1U7s1DotycCiJqtqcd0JyscRdU42Cev7fH0pCfn8FmAA07n7dg0KZW5kc3RyZWFtDWVu
ZG9iag0xMjkgMCBvYmoNPDwvQ1MvRGV2aWNlQ01ZSy9JIGZhbHNlL0sgZmFsc2UvUy9UcmFuc3Bh
cmVuY3kvVHlwZS9Hcm91cD4+DWVuZG9iag0xMzAgMCBvYmoNPDwvQkJveFsyMTkuOTUgLTMyMy40
NjEgMjY2Ljk3NCAtMzU0LjU1Nl0vRmlsdGVyL0ZsYXRlRGVjb2RlL0dyb3VwIDEyOSAwIFIvTGVu
Z3RoIDYzNi9NYXRyaXhbMS4wIDAuMCAwLjAgMS4wIDAuMCAwLjBdL1Jlc291cmNlczw8L0V4dEdT
dGF0ZTw8L0dTMCA5MiAwIFI+Pj4+L1N1YnR5cGUvRm9ybT4+c3RyZWFtDQpIiWxUS44VMQzc9yly
gRfs2LGTE7Bhg0DiACM+EgMScH+JKqdHwwI9qZ/dceyqst3SPr67fuE3dPc928Om9zmzeXYZ3ky7
7Gi/P1+f2s9L+g5t0lMHnnNt2nu179ebtx+kff2DRDjHT9tw7eqeSGm7m4i1px8Xz+rZl+ER6U37
xBmfL/bTNbrZvD3rIutcuE0EHOtRb0/w4zWDvzhP1ylxu3JfkErx5Xr/L1yAFN9A67PHnuMVrfac
rD92ewYyZaa+d7JwLFQ02bA9FXasLPwpgXfTFkDriua9qORymGMqgrxH0JuroSSExYFki16XovBH
3xZMgWf2GSwaMmHvIPORlGvhIiFIRFs3qMTJ6o732n2eqFlCstQC0NIvY8PJQY1kaIVllGQG5XBH
ywnwXV2Ddjrjsi+gpbuIx9fR2cqxTUfXCRw1M5QvmQKVLBElMqieKTjnrH4b1Zt9uVNdSPAMCdwn
oU4bFEfJQcARB8hPDrdUtkd1GOFsDcChHMaTMm06BhXZHEEOuOklDsmDTBIMugY79IyOVwpzzvnE
NjwCnIsMKD9YsNqow4rtGICLzlVaVSvPa1dCztkgeFO2VCZXSRZbmgQLx7MKz1E6q1Ay6dhNumOW
DOp5qpU3bs7KmzDcKtPUem2S50r8f+g9kIBcwBFyQNTXHYVKVUFmEKeX1FoTJHmQTOp+Ru2BBQAw
LoigT3D5YVCMKZKjSO2GcL/wedG6NjD4cJfWJ4Uzh/0AfDkrbNiDKDlMKpD6ckq9ln3s+jOsAfnH
JH/4O48ei6c+7Ax5xbqdkVc9sVPrtCQDixos7jKdao6bHlX5RSQxBcFvJSJ/fwUYAKz//GkNCmVu
ZHN0cmVhbQ1lbmRvYmoNMTMxIDAgb2JqDTw8L0NTL0RldmljZUNNWUsvUy9UcmFuc3BhcmVuY3kv
VHlwZS9Hcm91cD4+DWVuZG9iag0xMzkgMCBvYmoNPDwvQURCRV9GaWxsU2lnbjw8L1N1YnR5cGUv
cGFnZS9UeXBlL0ZpbGxTaWduRGF0YT4+L0JCb3hbMTguMzI3MiAyMjUuMTYzIDUwOC44NzIgNDc1
LjkyNl0vRm9ybVR5cGUgMS9MZW5ndGggNDkvTWF0cml4WzEuMCAwLjAgMC4wIDEuMCAwLjAgMC4w
XS9SZXNvdXJjZXM8PC9Gb250PDwvVFQwIDEwMSAwIFI+Pi9YT2JqZWN0PDwvRm0wIDE0MCAwIFI+
Pj4+L1N1YnR5cGUvRm9ybS9UeXBlL1hPYmplY3Q+PnN0cmVhbQ0KcQowIFRjIDAgVHcgMCBUcyAx
MDAgVHogMCBUciAvVFQwIDEgVGYKL0ZtMCBEbwpRCg0KZW5kc3RyZWFtDWVuZG9iag0xNDAgMCBv
YmoNPDwvQURCRV9GaWxsU2lnbjw8L1N1YnR5cGUvZmllbGRzL1R5cGUvRmlsbFNpZ25EYXRhPj4v
QkJveFsxOC4zMjcyIDIyNS4xNjMgNTA4Ljg3MiA0NzUuOTI2XS9GaWx0ZXIvRmxhdGVEZWNvZGUv
Rm9ybVR5cGUgMS9MZW5ndGggODIvTWF0cml4WzEuMCAwLjAgMC4wIDEuMCAwLjAgMC4wXS9PQyAx
NDEgMCBSL1Jlc291cmNlczw8L0ZvbnQ8PC9UVDAgMTAxIDAgUj4+L1hPYmplY3Q8PC9GbTAgMzM1
IDAgUi9GbTEgMzM2IDAgUi9GbTIgMzM3IDAgUi9GbTMgMzM5IDAgUi9GbTQgMzQwIDAgUi9GbTUg
Mzc0IDAgUi9GbTYgMzc1IDAgUj4+Pj4vU3VidHlwZS9Gb3JtL1R5cGUvWE9iamVjdD4+c3RyZWFt
DQpIiTJQCPHhKgRCA4WQZAUgUQ4iihUMDYBUFYhdpKAfEmKgYKgQksal75ZroOCSzxVIggZDUjUY
karBmFQNJqRqMIVpALLNIOxALoAAAwBF9klFDQplbmRzdHJlYW0NZW5kb2JqDTE0MSAwIG9iag08
PC9PQ0dzIDE0MyAwIFIvVHlwZS9PQ01EPj4NZW5kb2JqDTE0MyAwIG9iag08PC9OYW1lKEFkb2Jl
IEZpbGwgJiBTaWduKS9UeXBlL09DRz4+DWVuZG9iag0zMzIgMCBvYmoNPDwvREEoL0hlbHYgMCBU
ZiAwIGcgKS9EUjw8L0VuY29kaW5nPDwvUERGRG9jRW5jb2RpbmcgMzY0IDAgUj4+L0ZvbnQ8PC9I
ZWx2IDM2MiAwIFIvWmFEYiAzNjMgMCBSPj4+Pi9GaWVsZHNbXT4+DWVuZG9iag0zMzUgMCBvYmoN
PDwvQURCRV9GaWxsU2lnbjw8L0F1dG9XaWR0aCB0cnVlL0ZpZWxkQ29sb3JbMC44NTg4MjYgMC4x
OTk5OTcgMC4xNDExNzRdL1NpemVbMTA4LjA0OCAyOC4zOF0vU3VidHlwZS90ZXh0L1RleHQgMTY2
NDQzOTA5L1R5cGUvRmlsbFNpZ25EYXRhPj4vQkJveFswLjAgLTE1LjkgMTA4LjA0OCAxMi40OF0v
RmlsdGVyL0ZsYXRlRGVjb2RlL0Zvcm1UeXBlIDEvTGVuZ3RoIDE0MC9NYXRyaXhbMS4wIDAuMCAw
LjAgMS4wIDIyLjY5MDkgNDYzLjQ0Nl0vUmVzb3VyY2VzPDwvRm9udDw8L1RUMCAyNDIgMCBSPj4v
UHJvY1NldFsvUERGL1RleHRdPj4vU3VidHlwZS9Gb3JtL1R5cGUvWE9iamVjdD4+c3RyZWFtDQpI
iTyNwQrCMBBE7/sVc6yg7aao6LXam4LC/kAsSUm1EldF8OtNQHqYN7OwzDDkQA9qhKoTmuMOxOVm
tQWXdZJZGmhPjACqRBimhvh0S4eET8YThpN9c1aYZPynjFTE9+UWOkSr13DvYdXZOWYyUJu3pk0s
cvOeCq/OwfqXU6zjOD22Qmf6CTAAIT0o6g0KZW5kc3RyZWFtDWVuZG9iag0zMzYgMCBvYmoNPDwv
QURCRV9GaWxsU2lnbjw8L0F1dG9XaWR0aCB0cnVlL0ZpZWxkQ29sb3JbMC44NTg4MjYgMC4yMDM5
MTggMC4xNDUwOTZdL1NpemVbMTQ0LjA3MiAxNi4zOF0vU3VidHlwZS90ZXh0L1RleHQgNzgxMDA1
MzE5L1R5cGUvRmlsbFNpZ25EYXRhPj4vQkJveFswLjAgLTMuODk5OTkgMTQ0LjA3MiAxMi40OF0v
RmlsdGVyL0ZsYXRlRGVjb2RlL0Zvcm1UeXBlIDEvTGVuZ3RoIDEyNC9NYXRyaXhbMS4wIDAuMCAw
LjAgMS4wIDM2NC44IDIzMS44ODNdL1Jlc291cmNlczw8L0ZvbnQ8PC9UVDAgMjc4IDAgUj4+L1By
b2NTZXRbL1BERi9UZXh0XT4+L1N1YnR5cGUvRm9ybS9UeXBlL1hPYmplY3Q+PnN0cmVhbQ0KSIks
zTEKwkAUBNB+TjGlNpu/IQFtI2tlQOVfIMQoCm5wsxDw9P4Fmzcz1Qj1hA86RXVm1x8Icbt2T3G1
NKZvWqYHhE+iUhX6mnq3rSONtbDQi8W39ERvIX/1jc0xzTFzijkNcZw4R4Zhybze3FZfCOUyKC74
CTAAPY0gjQ0KZW5kc3RyZWFtDWVuZG9iag0zMzcgMCBvYmoNPDwvQURCRV9GaWxsU2lnbjw8L0F1
dG9XaWR0aCB0cnVlL0ZpZWxkQ29sb3JbMS4wIDAuMzg0MzA4IDAuMF0vU2l6ZVs3Ny4zNzYgMTYu
MzhdL1N1YnR5cGUvdGV4dC9UZXh0IDk2NjQwMDE5My9UeXBlL0ZpbGxTaWduRGF0YT4+L0JCb3hb
MC4wIC0zLjg5OTk5IDc3LjM3NiAxMi40OF0vRmlsdGVyL0ZsYXRlRGVjb2RlL0Zvcm1UeXBlIDEv
TGVuZ3RoIDExMC9NYXRyaXhbMS4wIDAuMCAwLjAgMS4wIDQzLjA1NDYgMzczLjg0Nl0vUmVzb3Vy
Y2VzPDwvRm9udDw8L1RUMCAzMjYgMCBSPj4vUHJvY1NldFsvUERGL1RleHRdPj4vU3VidHlwZS9G
b3JtL1R5cGUvWE9iamVjdD4+c3RyZWFtDQpIiSRMzQqCQBi8z1PMMS/5rXbobHgrSJwXCFtFIcEt
CHp6vyUG5odhxqgrNjRCeWdzuxCBdqzPJxrTBONMlJIxVNToWYM3+mZ6M5jLL/tE3zn+rBcO/fyM
jOsnPdYhstCCNt+3QoddgAEA8m0a6Q0KZW5kc3RyZWFtDWVuZG9iag0zMzkgMCBvYmoNPDwvQURC
RV9GaWxsU2lnbjw8L0ZpZWxkQ29sb3JbMC45ODgyMzUgMC45NTY4NjMgMC41MjE1NzZdL1N1YnR5
cGUvZG90L1R5cGUvRmlsbFNpZ25EYXRhPj4vQkJveFswLjAgMC4wIDI0LjQzNjMgMjQuNDM2M10v
RmlsdGVyL0ZsYXRlRGVjb2RlL0Zvcm1UeXBlIDEvTGVuZ3RoIDEyOS9NYXRyaXhbMS4wIDAuMCAw
LjAgMS4wIDE2Mi45MDkgMzY0Ljc5OV0vUmVzb3VyY2VzPDw+Pi9TdWJ0eXBlL0Zvcm0vVHlwZS9Y
T2JqZWN0Pj5zdHJlYW0NCkiJVE1JDsMwCLzzivkACLCd2H/oJVJ/EKnJpYf2/4dSO65UjTSAZkFx
v9ErYNCAwZqU3GK6uFXH/iSVViuCyxpc3PE+6OsOCVk0N3ASD/MqKRl4jME7sZmkOjXLsiw+Y9el
3TZ2nlJP8V8l/zrHv+vWGdLedNKDtsBHgAEAJk0pgg0KZW5kc3RyZWFtDWVuZG9iag0zNDAgMCBv
YmoNPDwvQURCRV9GaWxsU2lnbjw8L0ZpZWxkQ29sb3JbMC45ODgyMzUgMC45NTY4NjMgMC41MjE1
NzZdL1N1YnR5cGUvZG90L1R5cGUvRmlsbFNpZ25EYXRhPj4vQkJveFswLjAgMC4wIDI0LjQzNjMg
MjQuNDM2M10vRmlsdGVyL0ZsYXRlRGVjb2RlL0Zvcm1UeXBlIDEvTGVuZ3RoIDEyOS9NYXRyaXhb
MS4wIDAuMCAwLjAgMS4wIDI4Mi43NjQgMjI1LjE2M10vUmVzb3VyY2VzPDw+Pi9TdWJ0eXBlL0Zv
cm0vVHlwZS9YT2JqZWN0Pj5zdHJlYW0NCkiJVE1JDsMwCLzzivkACLCd2H/oJVJ/EKnJpYf2/4dS
O65UjTSAZkFxv9ErYNCAwZqU3GK6uFXH/iSVViuCyxpc3PE+6OsOCVk0N3ASD/MqKRl4jME7sZmk
OjXLsiw+Y9el3TZ2nlJP8V8l/zrHv+vWGdLedNKDtsBHgAEAJk0pgg0KZW5kc3RyZWFtDWVuZG9i
ag0zNDMgMCBvYmoNPDwvQXNjZW50IDEwNDAvQ2FwSGVpZ2h0IDcxNi9EZXNjZW50IC0zMjUvRmxh
Z3MgMzIvRm9udEJCb3hbLTY2NSAtMzI1IDIwMDAgMTA0MF0vRm9udEZhbWlseShBcmlhbCkvRm9u
dEZpbGUyIDM0NCAwIFIvRm9udE5hbWUvRkdORlZJK0FyaWFsL0ZvbnRTdHJldGNoL05vcm1hbC9G
b250V2VpZ2h0IDQwMC9JdGFsaWNBbmdsZSAwL1N0ZW1WIDg4L1R5cGUvRm9udERlc2NyaXB0b3Iv
WEhlaWdodCA1MTk+Pg1lbmRvYmoNMzQ0IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5n
dGggMjIxNTgvTGVuZ3RoMSA1NzI5Mz4+c3RyZWFtDQpIiXyWeVRURxbGv9uvX9E0DSKLuEC/1w2v
XaNGHUcdoriOE6OS0TFRo0IQFwRFJYpGhUSNihtuuCugggubqKC4oBFxQQREzdIdYGLiOLZHjfFo
xobuqUYOM/nD1Dn31q2q+6pe/frVVw0C4I5ECAgdPaZbD5/3J63gPRZuYREx4bHzy/3LAAoGfMIi
FsTJ2cW1GwDfPQCbPS12ekyfQ606A/5awC1vevSiabN3V44A2hcBfj4zIsOnWkeMKwf63+Lz9Z7B
O7x6tp0CDFDzdtCMmLj4cTPO8HBAB2DYhOg5EeG0MeMBsPJL3g6LCY+P9VvvmguU/ciT5NnhMZG1
g/WjgJsqwGVJ7Jz5cY5OSAGqlznHY+dFxqblP3zE2/sAXTcIwmpKhgiNuEvsyXfR7k0tVGGayksj
qtyYWuUs6jp0dVxE/EQ+iys3jB05WEYIZEe9WG3/kHq69Kf8EJDD4QDUJvGsczX4cq+Ckx+Hw/nx
iNpyY2jq5LVK5cz5feGDglpkLhpXrZvO3aOFZ0svbx/fVn6t27Rt5x+gl2SDMTBIMbXv0LFT5y7v
dO3W/d0ePXv9qfef+/Tt95fg9/oPCBk4aPCQocP+Ovxv74/4YOSo0aEf/n3M2H+M++jj8RMmfjJp
8pSwcHwaMTVy2vQZM6NmRcfMnhM7d978uM8WLIxftPjzJUuXJSR+8eXyFSu/WrV6TdLades3bEze
tHnL1m0p23fs3IU9e/ftT01LP3DwUEbm4SNHjwlZ2Tm5ecfzT5w8VVB4+kzR2XPnLxRfvITLJVdK
r167fqPsZvmtikpU3a6+c/feN/jue7Plh5paqL2H8Y0O4Vt1wRAsI4dKVo1XZQuBwmhhoZAgJAnr
hDShQnipdlePFruJ48Qp4ioxSdwoXhUfiS+YP3O4JGhOas5rHAFRAbMCLgfcCHDoE/T79b9IvlKA
NFQaKX0kjZcmSpOkpdJJqUSqlszSU+mFZJdbyEbZJHeXe8n95P7yEHmyHCsvkhPkrXKx/MwgGrwN
fgajwWToahhlGGuYbFhh2GY4bFQZmbGF0cvoa2xrlIwdjZ2Nw43hxshAVaBnoEGBolJ0iqfio7RW
/JUgpYvSSwlWopVEZYWyWlmnbFHSlCwlXylSziklyk2lQvlOeWAKNoWYBpnCTBGmaaZZpjldErr6
ZRoyV2XmZBZmOo5F/ko2ZvOz9bYF2/rbBtqG2C7ZHPUR9S8aBjQ8b3jR0GAPtMfZE+z1jnrnd8e/
uFQVVAbVBFWOECSECouFFZziBuGAUCm8UnuoQ8V3xfFiuLhGXC9uEivFZwxM7xKqSdUUaO4EgFOM
DigJsOuhT9Sn6p9LrSVZGi6FNlGcIiVKBVKpdE/6QXouvZQhe3GKneQecl85uJFilBzHKSbLqU0U
WzVRHGkYY5jIKSY3U2zJKbYx6psohhmnNlKU30IxtJlispKqHG2meINT/JZT7NdMMdIUxSmGcYp+
mcbM1Zl5ma+OdecUYfO2Bdj6cIohtsG2Ybbq+sn1zxuCGym+tsv2WPsCe6KTouM+P79Pud0GxPfe
HEf7TKdXV/KoE6C9q63W3tZWaSuA+sr6sv8/uE96A0/VT0cC1gTgAdcwq7e1pbWF1d2qs7pZtVZX
q4uVWUWrYFVZ8cj5m6FuZaPnmlq38HFUY1z4uC/w+OO6pLqlQG1U7aK6Imv5/S51G6w7ag/XptSk
1KTXrAVqMpzZtX41c2u4YtZ0rwmp6VkTZBlmGWoJtvS19Lb0tHS3dLQYLe0sPhYyPzFbzQ/NP5ud
SglzqbnYfMFcyKMr5kPmXPNQ8yDzQHOQ2Wg2mPU/7eTzcQ2bGccteuY7kQ3+j7mmf8AP6x6X3S67
XHa+2a/Xcn41fN+yI9fSRy25wosQIhpVbhBXMDtnFs37xorpYhavC0R+Z7Ae3D75HzGNZ6OP1+Rp
52krtb+5cW10m+DscxvXZJvxh8WtyO1b7l/quIrqnLcG97rGWXWt3mToRr3tWV0fp+n6NbV6//FK
v3vS480ajbHuLW/2+s2cuuHNmeu4pTS3LroXeHgAHo3v6dG60bdtGhRwACuwUpjMb68H+AobsBZ7
cQQH4Ykkjng5tuAZfsF6bMdqIn4fP8U+HMWveI4XSEcWrqEU2fgUEUjGVNxAJK7iOm6hDDdRjn9h
GqpQgUrkYDqeYBPu4DaqMQP/hhVrEIWZmIUYRGM2UjEHcxGLeZiPzxCHBViIh4jHYizC51iKJShE
GhKwjP9L+AKP8BhnKIW2k4oEUpMIG+ppB+2kXbQbDbATIxfSwEF7aC/to/2USmnkSlpyIx2l0wG8
xCs6SIcogzLpMB2ho3SMsiibciiX8ug45dMJ/Ia7lERr6SSdogIqpNPkTh50hoqoBXlSS/JCHf5J
3uRDZ+kc+VIrWkfn6QIV00W6RF+TH7VGLvKoDbWly1RC7cifAkhPV6gU/8Fr/Ij7JJFMBjLSVbpG
1+kGldFNKqdbFEhBpJCJKqiSqug2VdMdFFF76kAdqRN+ws90lyWxtWwdW882sI0smW1im9kWtpVt
YylsO9shBrGdbBcy2G62h+1l+9h+lsrSWDo7wA6yQyyDZaqj1LPYYXaEHWXHWBbLZjksl+Wx4yyf
nWAn1dHqGHaKFbBCdpqdYUXsLDvHzrMLrJhdZJfY1+wyK2FXWCm7yq6x6+wGK2M3WTm7xSpYpbpe
3aC2qx0iRBJVoiCqRVFkoouoEV1FrejGqthtVs3usnvsm//SXJ/NVV1XHMbvWfvuvdc665y7z1EB
CZAE6kgCRDMYCMZCgOi9FxMHCBCwY+OYCdiYXmy6EL24AKZjbOOZOJNkEsd23I0xRQghhADRhBBN
CCGUO5PJB1hv/i/W/B51VhWqc6pInVfF6oIqURdVqbqkytRldUVdVeXqmrqubqib6paqULet09YZ
66xVaJ2zijhCe9rXETpSR+lo3UA31DE6VjfWTXScjtcJuqluphM5kqM4mg2X8EUu5Utcxpf5Cl/l
cr7mPHAeOtXOI6fGeezUOk+cOuepU+8GXMsFnaSTdYpO1Wk6XTfXGTpTpnADbqjn6wV6oV6kF+sl
eqleppfrFfpt/Y5eqVfp1XqNXqvX6fU6X2/QBYHTgRK9MXBWb9Kb9ZbwT9sW/m079E69S7+r39Pv
6w/07kBh4FygKHAhcCZQrPfovfpDvU/v1wf0QX1IH9ZH9FH9kT6mP9af6E/1cY7hWG7EjbkJx3E8
J3BTbsaJnMTJnMKpnMbpwfXBfMwJzsHumIs9sCf2Cr6Gedgb+2Bf7If9cQAOxEE4GIfgUByGw3EE
jsRROBrH4Fgch+NxAr6AE4MF3JwzOJOzuAW35Faczdf5Bt/kW1zBrbkNt8VVuBrX4Fpch+sxHzdg
AW7ETbgZt+BW3IbbTTfzvMkx3XEH7jS5pgfucoUbdGUg3nvDqrTuWFXWeeuudc+6bz20qq1HVo31
2Mq0aq0nVp311MoKay0AYbqCgCBIUKABgcC2WgCDAy6EwIAHPkRAJERZLSEaGlitrGxoCDEQC42g
MTSBOIiHhLD6VobFkmi1ttpAktUWkiEFUiEN0qE5ZECm6cntuD0X8Xku5ttcyXe4Cr+GLGgBLaEV
ZENraANtoR20h2egA/4Hv4E5MBfegDdhHrwF82EBLIRFsBiW4LewFJbhd/g9/oA/4k/4M57AX/Ak
/oqn8DSewbNYiOewCM9jMV7AEryIpXgJy/AyXsGrWI7X8AbexFtYgbexEu9gFd51c/Ae3scH+BCr
8RHW4GNYDiukJ32sxScyQkZiHT6VUTJaNpANsZ4CZBHIGBlLgoIkSZEmJCKbmBzZSDaWTWScjJcJ
5FKIDHmyqWwmE2US+RRBkRRF0dSAGlIMxVIjakxNKI7iKYGaUjNKpCRXUQqlUhqlU3PKoEzKksky
hVpQS2pF2dSa2lBbakft6RnqQB3pWeokU2UadaYu9BvqSs9RN3qecqg75VIP6sl3+R71ojxXu+iS
a7vsOtSb+lBf6kf9aQANpEE0mIbQUBpGw2kEjaRRruuGXON6pq/pZ/qbAWagGeR2d3PdHm5PM9gM
MUPNMDPcjDAjzSgz2ozx3vTmeW95870F3kJvkbeYRtMYGkvjaDxNoBdoIv2WXqTf0SSaTFPo9zSV
pvF9mk5/oBk0k16il+mP9Aq9SrPoNfoTvQ6rYDWsgbWwDtZDPmyAAtjID2ATbIYtsBW2wXbYATth
F83mh1zNj/g9fp8/4N0mz5sS+iL079CXoa9CX3MN3OK9vIc/5H28nw/wQT4k25pEk2SSTYpJhQpv
Mj+G2yYNKsUCsUgsEcvECrFKrBH5okBsETvC5bJH7BcHxWFxVBwTx8VfxN/EP8WX4hvxg8k0rUxb
08F0hjvihDglCkWxKBVXxHVRISpFFVTBXbgH9+EBPIRqeCQ7ymdlJz7MR/go1/ITruOnXO8EzHNQ
A4+hFp5AHTyFehEQlgAhRNALCCnTZZbsLLvIrrJb+D5H5sqeMk/2kQPkkHBLjREJcoJ8UU6R0+VL
8lX5ukiTc+Q8OV8ulIvlUrk8XFor5Wq5Vq6XG+RGuVluldtFptwp35W75T55SH4kPw2L7nP5V/kP
+UW4yb6TP8kTooU8Kc/IIlkiy0RrWS5vykp5T1bLWlmvhNKKlVG+ilQNxU0Vq+JUgmqqmqlElaxS
VbrKUFmqpcoW7VUb1U51VJ1UV9VN5ahcgaqH6ql6qTzVW/VRfVU/1V8NUAPVIDVYDVFD1TA1XI1Q
I9UoNVqN8YJqLB/jT/6/j7AFC+d/+6hxaqKapKaqaXzcAUc5dlhyEU4Dp5ET7yQ6qU66k+FkOdlO
u7ALuzjdnFwnz+nnDHKGOaOccc5EZ5Iz1ZnuzAiVhMpC5aGboYpQVehe6EGoJlRnLCOMNNqQcY1v
os1eb6o5YI6Yj81n5nPzd/Mv85X51nxvfvRmeDO9l71Z3mzvz94qb50/2Z/mz/Rf8Wf5s/25/lv+
Un+Zv9xf4b/tv+Ov9Ff5q/01/lp/nb/ez/c3eAXmZ3PC/GJOml/NKXPanDFnTaE5Z4rMeVNsLpgS
c9GUmkumzFw2V8xVU26umevmhjeXL7gxbqxVbF2wSqyLVql1iertgG3ZYAs7aEtb2dpGm2zbZtux
XTtkG9uzfTvCjrSjzFgzzu1lxltl1uXgw2B18FGwJvg4WGv+S3WZh/d0ZnH8nHe5P+7Nzfu7akmi
llhCRJCoGg+lmFIkIoltOgiVlNhTDEbsS+wqRVHLtChqxqgJg1pCbR2yWFrLzGMtQW3zTNW0+N35
Zmb+mMl53uc+ub973/e85z3nc893gMkwA80g864ZbFexq9rV7Ag70o6yq9uv2jXsmnYtu7Ydbdex
69r17Pp2jN3AbmjH2o2cYqfEKXXOOuec884F5xvnW+eic8m5LO6Ke+K++N45Tl/QLrHAOs6v0W7a
Q1/xbfoTFdAx5wTNpCOUJ7vLFJkGpZvqXKTjvJiXOCe5henMd2Qv2Vv2kX1luuwZ/l74ofDD4Znh
heFHwrPskO07RE+5zGFHcEtHOkoUqql0wEHz4wScoOOFFYeVhJWGnTVdTFc3wx1oPgzOCc4NZgYX
eYPFQucKraaHdJQ2Uz63o6Xcnn/DyzifP+QJtJdznYpuDbemW8ut7Ua7ddy6bj23vhvjNnAburFu
F5Npssx7ble3m5vkNnLj3MZuvBlihppsM8wMNyPMSDPKbeI2dZu5CW6qm+amuz3dXm6i29zt7Sa7
3d0Ut0fwRfAlczAU9D3y2BOe9JSnPcsLeBW8ip7tYQue64V7xgt6nlfJe8Wr7FXxqnrVvAgv0ovy
qnuZwTw6TIXBecH5wQXBhdY4a7w1QZxw9kFPfekccA46h5zDTqFzRJwUp8TX4i/itDgjikSxKBGl
4qw4J86Lq+KauC5uiJvilvhO3BZ3RBmI8wYIkw7V10vWkrVltKwDzgzWmToL7EnRPXQqyJOhB+pB
oFE3naSTwY9j+rg+AYac0UW6GDwaq8fp8SDTaD1G58gGsqGMlY1AqMk6V08BneaDUXlg1EIwa5qM
k41BqmUyXjaRTWUzmSATZXP5Gsjzg36qfwSFHuiH+hHYEwR9KpWvCfbUtIaBP8OtEfJ7eR/jAVjT
HrTpaObreLNANzELdVOzSDczi3WiWWKW6gTzgVlm8kG36/qGvglixYJbDcCtON3JamYlgGP1wbB4
kKu11cZ6Q8fqWLPcrDArzUdmlVlt1piPzVqzzqw3G8zvzCfmU7PRbDKbZQv5uvyH/EF2lm/LLrKr
7Ob2MRPNJJkrp5iaprZTZKLNNDPdzDAzzSwz28wxc02emaf3UyRGlN5CkSqGoCD9Moy75ddQtn+3
/Pfyq7gPRbn3v4NoK/2Bs6END9NRfkLlOmgfquoUVaNf0lqoueWURxa9gzvzKQ2mcX85R/oF1BQ6
T2IU4dk+0Hv7qSpH+Peg/ebI83hrDrlUh9pTDyjGxZzkj6d+dE3NopaUBB05hqf7ff0lfr6/CbWz
T57yX5JDUVCog6nIf6Qv+X+jeLyxAvV1jfMr7qY3scp0PLkO2nON7K/YH+L/DA+ioUCLSFEyFXGh
iMPsWVTGEZwrO2KWjf5O/xieepX6Q8+ugTZrwZ1FtO7nJ/tFVBVrTMSsq2kXmLIHMTlIVzhMP/E3
+U8okhpTF+yngIq5UIZezgi1Q8Q0ohRLrfDLaDpEJ6kUGvCIGK3DdCK+r7/1L1BlSqBe8HYL3rzD
z9B9ov+UJ1QnvwOFIy7LyqNNx6FJo9AJp3Bv9LejxXr5PlXAigmwTMpGvFdh9qvotfegjy6RG9V2
9dyqEbruh+NEYuhjWkdHoHQjoEzH8kworluio8hAZ3NTLlfb1LnAIOx6AI2kxbSdnnEl/gWn8q95
KOdyHhi1Gvq1lO+K9qKnGI7uZajMkQdVB1i6GqtmoaoWWndDfUPHQmdDz/xEfy6lIh9mwPsVtB47
20cl0ESX6RrdZM0Oh8NqczT34smwqSDwp7yVt3EBVinlm3wPKuIpP4daIKiE6uWdPqyueF9MQHe2
Fiwpp8kD8ZOsJuugjlvINvJXcjS8ypMfwHbLGypKlUCtJsJW6g3oPbbro/qJFRaYWYEqnHmx8WWj
l1dDFJoXWhnaFSrwb1AVnGEUolCL2sD7QbBhOO+VyLg/0nkOQ+yiuBG35SREJoOHcQ5PRCRn8xre
/G/fd/ABROkiP4bPLnRKuc9NoC86iBTYAJElctBh5osC8a34WQbQWxhZRTZC7faXWXKcnCRXyp3y
DLq6m/JH+QLmK1vVUnVUjIpTnVWGGq/WqzJVpvuBeLct2xppzbX2Wn8PvB5oG+gRSA30h1LdE7hQ
YWD5Nw9fvj/T//zxdfScb8ndtEQ0V5HgcTHyOYMyZbJApoqtPE9M4QJRT0+0WovW3J2eqBjE+oTY
gH6ytUzmbpxOw0TCf2azKqvPcWmjvqKH6gD2VoyZJ1phPFU8tsJoF5NohTWPy2YqTp6mK/IaB9Qn
9FdlczV+KLbIHsiCg6qt7kvRci3tkDk8hXaLt4js5xUWIY+78+fgQk9O5H9Kn6TojixqKW/RLBou
LuErOoHm0UecqYbQEmrOuVRGn6EqYvUoULUKfy2y1QLxCheQUNuwu1Zcj6WuTLO5v1xjPRaXaTyV
KJuuyt/D+xKxQyarJzqNh6ICptBcyvFn0CTdV53jIWj/elN9dR10y5WJKhrXaaBKPzBtD6p7PzjQ
XibjTgQyJwl50QuEWANbBU4oZFA2arwPKFZMBVZPsZeG6HAGdYjU6VAaveN/Rqv9ITTKz6d48CDP
z8WMW+k2LaWtPCc0mcZQTVTOVU7SnUSJ7uTHiwXiskgXK///fBHt+hxB92E78E9b/SUtUBcpndr5
i/xvkN0NQdjV9C51pe+wy0dY4W1ZSM1D3cUXfic5Bvu9Rqn+Fr8W2zTUH0EpdIA2BzQNCsThjHfy
Oex3MmWJNH+czAplIw5LEYU3Ea3x4M98laNmqZ/+xXjV/LZxXPGZ5ZcoktKKsvXBleXZjJayvKK/
GseypEprUaQtq3b07V1ZQpeiqMiOkyhxGtQpChAo3NhrBw16MJpbzj3N2kJBGT0YuffUfyAHAS3a
CCgCxwhQG+ybWS5NFm1Rcjn7ex8z782bN2+G6CHs+UdQb76CffN72Dmw943rdz++/dGHOx+8/96t
d2/e2H5nq7Sxbl5bWV56++oFY3Lix+Njo+dHzp1980dnTp86eSIzrB8fOjaY1gboGyo52n+kT0n1
9nR3HT7UmeyQ29sS8VhrtCUSDgUDEkbDOZq3CUvbLJimly5lOE0LwCg0MGxGgJVv1mHEFmqkWdMA
za1/0zQ8TaOuiWUyjsYzwyRHCfvTNCUVvDpvAv58mlqEHQh8ReAvBE4AVlXoQHI929OEYZvkWP6T
bSdnT8Nwbqw1S7Ol1swwcltjAGOAWDfdcXH3BBZA6s6NuhJqSYBTLEWnc6yXTnMPWEDLFTbZ3LyZ
m1ZU1coMM5wt0g2G6BRr14UKygozLJxlEWGG3OCzQQ+IO/zMeViR0YatxzfpZmHNZIGCxW106GB3
mnV/ut/zmoTBk1nzs0apEnByPTcIJx3nM8K+mjcbpSpvLQvGgL6SlredPJh+CEGcXSRgTbprmQzf
BZOEz4TPyptfieY4x75JWJRO0W3npg1Lk3IYWrijPk6ljL3qNyiVI86SSVU2qVCrMN3nHkLOwp0n
vQbpbZZkhl25wwus29ZeA/FEIyjVZQIJdY5mF+qRxdwjOgMJwUiRgCcmhTmN8KY0gpziCKjBx8LQ
i23Citxg0aztyKOcz/uzkCZT4nyPIAPowbfNnEKNE9bk7xGHPE/qqQZyHzNdZ8eP8xSJZGFNwccJ
QZ/NDH9SkSjdkQm8IHxoDmJbsEZPQvhVlS/wg4qBNoBg5XnTownaUB4j46RuMcnmkme+5PAyl5R9
Sb27TSGTdxGGMnOYtaTrT7vc1ZnbHmW463+IS558dpHOzq+aJOfYtdjOLjVRnnykLqsh1pk1A4pU
Q5ISEFJIyrW6MifMOAtq8IRFUm9WIi2QlYKDSZ7J9iWvtVpV9f/sVKn+g/cSr9fdam6yUb2ZHmui
m9yLOwFwGA7X2aVVx2ltkkGqeQZnai/IeLRkqiTL0DLsTA2eSvXZCP9ZCjMgZFmuAPnnsWpkk6JS
wxZ8eHZmhvNQ6BwnT0nesZ1CpVreoESmzp70tfS1s5Oz/cSpVJ8+UFj+oQWx2sajmWHKJY6z6aKA
BmYMxcUCnMs+sNjbukXZhk5VapZgLu4oiqtLdhaQhKZciu/Nuwa+t7hq7skIkXtL5mMJS1l7ynIH
QGbuEYQMwZU4lzM5QTiBZjGE5rHUIvSVPQOhspAGBUPQxQpGgtfi8zAqViSPJ3uG0sKQAdfKYiXo
SQxfOwi8Fo9X9rSP1bRbQCJzyVMEJw4SQu/jArFkGq3njFFjzJiQJiWICGc9Bs5T0B3D6MkEnsSK
C2MuCHYFl90xQ9kTIy3UNMugyXnlOg8852oNA4E9b+LLr2ewvGo+mUAwvmhBY4p/eKUFJxr3kChM
PM+v6WZccmYXIQO5sHVEaW0QE96RYcp+Sn+u8tmxFXpHBSZlBKo1KLnoYp/lOAS+FKJSXDG9lovw
cB+MZLHyhq+r9EFOvCbj0FXk1ZM+XkPq1n7hW/sIrHHg+OZY8T9aA+8Zvs5b8Qj33bcQ9ezDKe0Z
ddacVchHlR3hhmt+ANnWZ4kRwJPfCU+wOJyKcCfY4nuJ8CIHZZJedqWrunhj8XYu09wmaPAfHLpn
YbFUsmlxLco3DU/8/6qEG5T4QSIGd+Qxn8I1ytu+Dnunmdyuk3n+gzuKdsIrEzAXsWVVdlNhtyy9
rlLgc3Zgb4/yDT4qOl/kPxuOnYusXCyAi3DezBQpMC4Dg5gbXgT5Qe3wm1OxAN14lGuW2Pt605BQ
EzCUKBiIT4eV54htERtqCJ6HYCuEheBNtuD6RAu8bsx585mD4g+vgrMIfRFfNoVFoJ5tFUqUF1fG
892LPvcxCN6hRZMhxXEo5BC4qOVBGYZPs3B6hr/g2dFpocRvdlv8YlfyrhzgrogOH03JUdUCFUkT
sYTAwUbb4E3R4ffGdVuHSHQ4SYecd2DDr0OtCqaLKzbUNSKTPBFLXVCAgiDMcMqCgTzFqMYVob94
0uw93V2PaK854vlA95RbxKjiEsHmfJWIeAB8qDOpewSEfPJ4YVWcC7BQPHghbQbCa0BWKbw37KKl
2rHh9Z/hXRV/wbxuwLH8AwDy3dXwvbnGSrjGkrML1xUIbEYUORSCLwqgCJralfB+OFKRvjQ6USi4
H0CtkeA+Rr0t4dC+FPgj/CWM4i/xCdSjyy/GX41flZ+PX3k1jiYByy+hOX1K7VA7NGgwFNmXJPDs
pRFC/0Qk+Az+tKC16l+Cfw/9GZ0KXGB3dfNCBxqs/oASKIENtILSDVjz8e5KjxyPVzjo9UEKwIWj
Qi9R/SuKoZjA8QYca8B9DVjx8e5KoCcWE8NJPsAeMI6tFAPF4O3Ax8GgNng2cL4vG5iJ/ORI7uj0
QH5wMWBF1o5cO3a/s41Wqt/tyrK0POADzQdpHwz6AJRf7CY8ZQ9oPkj7AJRfGHmOjiXSA9JAYFB7
q/1NOq3lTq6SFbqs3YrdTLzbtnWo1HMn9mni0/Zfyj8buK39OuDE7iec9s/luwO/0n6beNT+6HC/
GxbnVUZNJ5V0KpoewmmEhlLJ4JnTaVSCZEhk7ij3FUnRuhKZ/kENa6GuUKX63IjH4+HlUH8m2t/f
FUCTB5MHekfy/Dr8aq913JHsPn/ywPsqRkYbaEvEQmrfkX4F/qzBf7Uw1gbeAF441K9kUjCitPyb
FE4ddKEMhuuJkeQcGRM8B5feHfwFDuMKZkY80086O6eWuWFw5RsjwSnuCszgcvSCXH2O4iguFjJa
/a6+qFE/Wf6wEk2jITxUqf5tt61NWh7i84lxY0OpM2q8lj5qW2291ZZEosJ7QYxwOlmpfit6JcVy
JAT4wWjn3ZNLBNK393Txeo8OSb9+ZV/X9QP5ANqr8gtdX7/C4fMDCJcOj/xqXd/nzfN/sV32wU2b
dxzXI9lSJFuy5NiSX5QYguO8KOAkdl4MoRHlpVCOEmARy8AlWWEQSAmBwtjWDVgHg7br+GPsbuU2
YDBuZO0CJBAg3JVuue7l2IXboLtyMLgbucFtBW7j2HhJst/z2Eq8uyVY+cqSHz96ns/3+/uBV0rR
8MqlEMiWqkoq3WWM/6DcE4OCV7gfhdHUsDrVeY5J9HVMdamFIE53wFYEGo1GQ0l5U/F4ZVVLfl0h
naiura1Jxkpi0ZJYrCZZW5uoVlWNi8WmFLF+n6Y6NFX1+1h2SlE0trJfXPXbb3Z2L2taOWO0Y0n7
2m/98wdHn+xxXvB8eOLkkVQ9+uyLO7++59mPfzP6rx+hP8sbv7f8xS1z5q6dorUZdUfXdH68uv3y
Lumd93atWJxIbCidcWbb1qEtb9yDxoZ6eeyuQ3e8QJVSdUwR9rVZwYt8eVAMlZeJ5eUpsdZfF55e
vqA8LabL14vt5a2Vb4t7yt5XD4ZOiP7Sc2N3+1wuFsN/1wxidTzYXXo2OFA6GBwq/aP/ZmneHBUV
4q1UMJpeLwGUYFqDKVmMVUSLBIyK8mTKkapY4JhfYeW1GF/Jaze2ub/r/p37ifjEUOqSEnLI8WhS
q57sC6wq6yyjy/S41Ch9XzokjUnOQ1KP9EBipIGxpxm0+i3J7fHQzRLmCXtYwpPwyTLbLLlFEY6s
xwPHGMGoz5IChLAzliTpjHaO7u4NVGQSRbICFYLwYnPggE/XOWr8Wai5JUK1zrjK2uQ2Cvh+PM40
BUzbrFNjzzN8my6LYjGZVPHkKMY1Gz7/MF343agDswrnd2BBiXhEVhbEDdOFpx0lE4bz533466Pn
6BWmVGJSMTk2KVYZ64k5U+BP4gIIpU8zYgBsR76+14pV4eumWDglWZm6lKIPp1BKg6/px4NreeTx
Td7SigNF8bzsqsRt38UzvjMVKx79iB1i6QjbyNKsL+tG1pf9AJsdZ5rFSnj5WTd+ODaAH4514yfD
R7aZlfAesDJ+EraqHvvQ/kl3ZfxoGDI4DF9If/7Ivtgwgo/Dwzjb7oBd4fQOGDSe8+GuTNqlSNJh
zxKzdsEfqivcTzGG4XZLZeeYqf0dsNclAlNNNOMKaJruO8fET3fANoNhq+MJcK0Cg6eUBIwIxi3G
fiRurSO/NckS7Feu5AWa2Ff1+32qNiXGsJxEgwSTw01Mw+rz63suvrRlfs2G62tRYu7eHV8rOBnY
eGXf3u4mmdeKLuralwc7V1a/3r7up7GCt5rn/WL3K7te8UliKFosbJw6s6Ur0PXOQrPt5WnbHz7b
PbMe3SzV5dJF8fmtKxbP/Cquzk1jd5nPwcchug27+CKljT3MMNhnCXnZTeRt4bGFbAsFxHkM7Cma
lJ6ktMODPBjnJmoT9BcOr+7iArrDhSQ/l4fR4sjOcm68s5yMd5Yju/CHq5+QwiMPpqvxq6oybL7E
u1FEn50/W1uWv0xrzW/VDtIHmffFY/KxkDtPDArr6XZmvXOre5O4UzzuPsOfFc643ap7j/uvNCMV
rfJ0enZ4GA8CW5qxSgpPqhWmtZ86TN2mHlI85fG4qIk56jD1WUJOwfHYBcf0WJ6olEf8XxSGdfuf
26ix++O3UVGXEUGIQgiZkpFpMcws5MjMrhqqzbhiEryFqUYm9hKaj6lGIfwtaIHut83kt83kz5pp
suWPDnEowjVyNCfhATgBD8CRlMQLTG7nMp87a3FV4eQgbt9yfDLhnPTm7H8kz1No7FJ9C1zd/MjA
R7IfYBJAWU7fgX+kkkH9akGZj4ZNAXpJLzjW6wiAA/o6HC6Xl1jBxdm1K57ALzAB0rALKCXpxTVr
vGRh2JmGUwUPfnl99N+b7+378EakJ7jjS3u7j31n/Xtot9Y/hAqQ8AGid/UcCW/o+PWfPv3Vt6EC
zQNybzkvUApVQOeTCvSmQDvEYjEpzhGdNb4afTn9BWGpb5m+ll7tXMO/5mvVL0WuOq/l3wwO5w/7
Hmh/Dw4X3I6MRdRIxAg1qA2hhaFNkf0RbhodFaep0+kacSE9V5znW6AvFyxxrTjM/k19ih5JMvIz
kkv2UGHgRqEEP4R5AICY6GQDdpBDJ5tA1ICNUR80uYoHMn/iVs//xS1qeYpl+YqCZMVUWpWdiiNi
YqtETGwexYtrgEIqCg5LhcXGUgLkGvSecCswoUiYCTi/T3IfxH/6MFrKgD27s5byhtemzGtT5s1Q
dtbyRjm7++Zkcpc5w/qIG+JucWOcA9O3mGO4QmJhEtRcYcbahEhSLLkQITJYmGwiTZQdtoZBmqeR
nEYo3dVAeit5xGiATguz14BfCg5lDB5EMQTxKcYPfJkC5C6SJEpwhQl3Ls5DAXBAXMKbajSAtsk1
OHIhczO0QRIjghr0ToAdU79mcMe1reuvvtX6w3jvyKQPtm772c+/sf3Inp+8++zoIcS8vWQWLT2d
R3sv//7jT65fHsQ9z0LoeQohK/1AnEqI0yKU7qebmbQzzTe71jAbnJ38GleeH1djstQgzKVYFej4
WOL9zPnU9zjkqPJOD1bps7yLQrP0Jd6VwaV6m/f1UJu+nd3uf0w/DsiUijyipjWpreomlVF1z375
sEzLsiOsCxx1ge7GXiWtAGmuyVbLkDkH8iHHNCDs4ThVWk7XrNnk9VqaKUKLQHpeETOC5yfipgfv
mIgH5UvKkydFJIYicNZbHEviv/24DYigiDpgNyhnLTUxXg9ku8+WM1yZ+ZYc5cxoedLmxcYsG1Om
YXGTchDSCUKZUNMJPCoBCRCqy0EIeDEWYXzuwHuA02PSUxOogBzowo07JLrSDSNdDQiXdQwRSpOq
jro2h80CipSonVANnJVZcYm6QrFQEGQVMyZ2yJRcKdP5jCw48rPxJoRJvAnZePOmVr2ajhtKIp7u
yok4mUpUU4qPm6xi5NDkGCn3zKsXKu6fvzf6APluXEMSen5XOL37tXdHrtNL3PXWvjdPIEs72oci
iEFuVDr6l9En8qSeC+vQgT2z1x3HBO6Fkt0AmcdQHC1gAntpIbvejC1YW3AgZgXJtiPYq4kmc0I7
c7TD1n0W7cruEWML1hYciPFBR3Iq4IR25miHrWFQRzZoGFuwtuBA5MzUjkYqRztztGO8Na6z+FrM
zmJ+P3+YP8lf4m/xD3mO4iP8Jn4nfyj71m1+jP8v59UeVMV1xr/dPbt7H4K7wL1eQSOCoEJ8cQkW
Q+X6isQHNVrRGrVGrU0EE4VkmmRqgoMKRplJ0ko1TRUYM1pxRrRkatJkQmcycZypie0U+5o2pmKa
lKRlHMJMNLD9fefu4vXmn7Z37m++c86ex3e+9wlM8CMpm0LV/Ib2K6fb3aGgSntOIUM3RMAw83QS
x0Wr6BTd4powukW/UElkiyvoCcHxkx0OjVuxMRxxhay9RYBZEBlssiL+apCNYelSaHwVC7Ahi0rf
4hWRxMS7q7ZsqIzKOc4VShtlsJXWJr4Q7/5l/VIEdINiCoe7zMvl5fwsvC8a0hDgmrq6ukTfBx/c
Don8239GldJIpH2MiBVWPpbxKl3XjHT1lHXBuq79I71fG0w3wF9/LCeYUvyMpRyxrkSuRZyIyPZl
pGaE08bppmKEUwIpqaNS70paqQkhJdVLYLFxVamTIjEWUUQmq+AUbgczWFRBfrDY7NtBKbRgjpzB
KUwmq6B8YaH/JT9r0ArwowX9wZgsaoKxaEmxE1TwD1ZGODplFpcUd0b6I+rOSGukM9IdERFNjYbC
Xj4Le5Eo7EWccJ6CV9hgl23jMQUlSm3SiDZJMkZSmySYKfnNZkZIlS83wawRn54GdvohYcpGyLhG
girHWIMbEtQmHxxlA2XyLbLhbn1ylCqzoPmy8vLP7VKFQ9OCZ2Jhw/YHfAEzoBlWPnJ6ljI6kJal
UCGqrYI9KLsIJpMV86cEwgHF0HQUWjPP1+jxN0e5tISoHQ2VuC8KO9cujpdYdmP7U3/d1LbCCnQV
VFfUnRT5Pzm7aOfyot1Dder+x3fMe/k3Q2/hLvsQYt6DtdiKKa3l/hnpiiWUXFEsFohVYpt4Uhh+
2+f3+VPSbX8KaT4lOM6AiVDAP+VFn+LLyU5X0tUc25O87enC9lRgSxV0x6xk8XnOxY2YnaAOQ6qD
H69sIMQGE5YaMaRGZElOlWmL373bs+LyR806UNsLD2Mxl9rybVdaStalxtTd73JNUatswNMO0vRr
RvCCVnK+xoiLs+iOOCFP1Kr8WoMk97XPfaz84Y1z58+/f2PGPSK/bVfFnJOTF5dvqh36Pb+nJjk3
1QL9KI1RHmcZzsumUc7wSDgMJrR9CW0zoW0ktAPIu7n5xX4W2SQ06sciho1KCSgahS1/4eiAEUbt
OdrKoRwl5U4l58k/LSDFHsupSssbpTimb5F/0SZzp1lvvmgKMrPNVrPT7DavmIbJFQDLH42BLq4p
0bjZJd9r8brRbcgcHfcdgxv9sSBrw5TaQP8TGfTMN9XtFFFKzm1L1ArUMtBrfR73DKt3oEzWeEOo
8NJK7WjUusShzwtz5zTk4KIuLvMIjZi/RgmkpNipAf8FbRryr8FqihYVzeAsDFXljYmXe3bufVF7
NvSWa2dw8lWtzGVlm2vu3bv3F6+/nl445Z6249bc77WrWw4pZs1w86GhHy2/N5M1R2QSffh29bLv
ji77wpflI/61X59cwPTq3t7Pbp0d+r5FvofQ9WM+rwDMucOVtMCiW2dvPWvF90n42S2GO6SWjqBT
/QNtFHUUAh40x9MP9CpaqzTSOlR1P2Ro4ykmzlAt5p5Gfx7om7wW81cDHwJlQBWQ6Y4tBx4BVnEf
c9/gtdhjJ+8jaR2t802gJ/QqZwjntegXaRtwDO12cZ1OGaW0A/0TWPeOIJrNc7CmxThNRzD+Kr5v
wdgx0LXot6G9Hutmum2/2UxjmQIGxqdin4PufSdrv6YSUed8hLt8B3suAfbjjBWgDwBLMScddD7Q
qFykJuWi047voNSA8xt5HFjo0grssw/fy7FuEvoNaGeCDwN0NDARmKKeoVI1g94CnYH7r4nfG7hI
j/KdR+4E/l2evo44j0sTgTPfBnLVUucGqD+Bt2Q0JOFBLUr1oNVAFvCQepl2iGWkQF5H9RukMWB3
LKe/Ad8UW6kSfQV8rtK76BXuA8sl6pwh8Sq1agP0DXx71mjBPbZC3rOAQZqhfkbTjDx6Hva1EPvv
AY5hz0+kPWylb+P86aBRcUPa0H7gEM76tycnlg36e6DXlTjrK/YHrF8FLIZe6oEa5gfnz2CZs96V
quFSzO3FnPUMjI+RwN3ZJnkNr8deea4dtt+h1I45zZDrNVABhJgHD9LOXODbe9hnLGAA44HpwA2g
HagG5gBLgSk4m3CuJu0VNsO2Ke0DtqFfhAzBm7TZ+B2OSX3GfabN3YvPmWicoWoXE3lP9he2WfBy
ztubfYptxqPSvqul3f+L78k2NULhe6KPFjMP0gdhWx5lvwPP7A8tSH5Nkp6hBrZZ5s+jLBe2NSkT
+IRLyxLuOlP6CKhGlOvaeoNHPVmM0EfpBPbcZGxGTGmlCvEkVWgv0WbRTwu1qTQd76QKvg/mdqp9
tNLXTVHo8lvoH02iRxhmj7Jd78Y9OyDPHvoZZLpL9Kg5okfR9Q7nU52US3qH+pxsf40mQ+mOf2PK
SPz2v47/P1Cv6h2ImR3OP/Uex8F9XmafMPuUmUC2RzF+HqgHCnyFyhFftXLBXE0WnpUDwBMiRnP0
GM0W3dBPCHEevoDx1fpH9I7WDF33OH9S6qlexR5miB5RWxDTcJZ6lRoYvD/ozgQ7usvmkm3Jo569
JlOO+a5NTQA14H/vu+h1MQh8ATtaCpscy7mB47PMD4jRwH7XXreP2Ocleg30oGefSXa6Pck+RyXb
ZTKVuQXx3fNTnHXAuz/HR45xHCM5znGc8eYn04T1L6inYccchy/TOtevc1wsAY9/d30fcRj6XuM4
xgPOSaPLOaWlOaeMIrT/COjOScji6ZGcutYZdvPpVC+Xxscp6OVRPUo73Hh2Qsabm/RjmUerJH9+
4yw9r9+G3hEDJb+trg9CnuC7WmyCzF+hQ7jHWK0R/ohxYD3LROoC70LOC5wTtcOQM+eiZmrQ/oJ6
gddGyZb5opzWgPdLcgw5lSmP6Wuo3eijIrEasbabtrKu+B7MD+ve9xSl+EKIEz00S/wcc0IUwLxW
KYMYnZR2wWuriVgW5hYyYbOVmMP7tck1MUpz5XFCykKuRy3CNsyywJ5GiFbKeqKPjuuraQ18qM2s
pzZU+wS/OIU9XsO6JcwL1mXKfH2YHoZ/NSE2NSHmkLT/dc5trQP3eRpxHdDqIaMOiuj1kGG1vPtC
EY+xjew/2mnKZxsxDiMOcz1xmF4QhbTIqKZmjDXriJM49yDG9sJ/C+G7B7B+ghu3CWcfwDivLeda
hmsE9hczRulGvawDSPLAdQrO1z6lNm0JNcGO5/kOQw77aBr9Vz/nTJwqKDCd9zWLdoPOVqP0O5wQ
RJtz6BtiDz0mqqhImwXftWma+C189Uv66X+4L/fgqoo7jv/uPXvuSVAaHsHhKXSIgGJBmIFqpUID
BggPoSFBkRIrER0FarU6vkatKEF8VMFSRGXQWrRRKw7gI2WKrQ98VOh0imiL1RG1o3ZqS8GOxtzT
z2/PnpubEy4X0P7TO/OZ79m9u2f37Ov3Xa9M6s0rco95Wm7VtOkuQ7wNfP8mvKXm75AZmp/+I+nV
MseMof4yWWzq5VLvCdben6STWcBcU8+/nXVSQf29vNeR2iNzvDr21lKePyMOUs62sSmcrJhJ8g1b
Lw/b15hEn9NT+Kpq5pT+6nO7/tLXXD/jPh6gf/Y79b3U0zLmHhnDOO2G4yLNzkzfJo/AuvSfZbw3
Ta5MPRw2M8hVCSblp82o1DUwzIySp+DHPJ+I/gYej9J4t1HyF7iJdz+LbtR7gZKulNGq5K2F1fBq
/F8+2s6B8vPx+4TN7dKbiTWQ2hc2K8nyjPNo2httvh02K6zFaiVznZQHl0u5N5j8Y6mXSPt92E+b
pcKT8D/F+nQw+I3IG8dx+d8Yzwd6zCGwO08HqLrYcMR9O1KY365wkh3ff0iPaA1J99Tr4S60LvW6
dPUuYw0C6WGku8fjGc8T+SttfmL+0pVhVsc8mZ9MJ+e1WDq9UerziddBbj2skNMUM5bykEyXvCyn
KZkX+O+FjmnzUBHmyAneGu0Ta3Bwx3TmDBmspCvoa2+tw56DXHoHZwRoWVu/s0xUdO8q6U3c1yD3
/yg5XWkbVxmt4+qtif6P5yeel+T80L8RZrt8Bx2MfgutQatjzd+zyX2bzIvPkgOVSeyNEYXe+f8E
e+cV2AYv/q/bSglrFbpAZjc+ZCw+cif+5GxZItLKWfLFcFjPOTQL3UUe0Tt7PHTmuSt556P3ibTs
5/kS8ndGhGnTR9Y5X9mLvCdd3RL3vpqofstLIp/vg8ej+i1NcCHP/wLiectb6G/R1ZT/iHo3or+L
/m+tJ305bCH9MemFcCbPd6A90BOhO3Sj/ipF/UiHe+hXrge+fxyq4lnm08/+aDN6TfIOccgaz2cR
Td414vkvpr67S3TUaBy4M72L79uQf/c52B0nVuYzm4+pDVvxlEerj1Yvq/7Z+ken9v5mfSztipTH
Sn9K1b+qd1b/iur7GzO+7U8t/TrH9svFjfyzNbVP1kIX6OP0Isp8lh4cbufsKWN97+du9KBCmjUm
dRHhDmJXGbFuK+fufvQ10v3Q/XFMi8/WDmdskZj2VacPN0YeQUwd6ahPUCg/5mTHZCUZiw+XYrH7
iGN5gRidH6e/bDqO8zGlp8lIJRgXNitJX9rBBxRJF/O5h5tO+o7DTid8SZxO0uH/5NqL/Uxv6Z0j
se8OF71bmM1t3j/uQ3If5/abSzNGp+fDOTDExdAH4N+cGf2AGBWuIH1tyRcysuQxGUl6GRAXw7HQ
oP+ho1O3iaQ/DVtJ30C6i3nNlj3T0VBsPSfXrfpz6w8ZM3sO3qH9l+FwKnSDJ2BRPNd6h6Ttd9JE
Xb3nmjnhfrMdEh6wqI6SH8JjpMtIl3EWl2e6cm6Pk4d4Xop2Qjtxvs+EBZzlM/xtYWvmKlummv+q
zI9kEuf8YrOTd+4Jn+dMX2SyUhYcLY3EziXE0P78v4q6y0j3QHsGA+RB3vM09W/RGJDZSxycTTws
1dhBu3WyFi6i7Blmr9zlHSUTeE+F2SPlTk/yW+T7Gq8yw6SLxjzyjkeHWN2DN54rE2As7xujscZ7
hDXyPnWJP+ly2eJNly3mUbmE923o1CRrS7fJ2pIGqSq5TlZlmmSVd68sIe/e4Ha5NzNUGvUdcVzV
mBg/Y6ZSQT8b8xeR7u20Mv7mpCew/ZsrU4nLD+S3G9crqSKW7uX7aVv7WszbEOOXQwPfYdBPk+3p
GKWbwt9HKhe4GH95LubXyVz6OVbH1I7tXJnpXcu9T2O6tr8efV3mmaXgxjjZl7gtxqW1kBeKvQnP
s2GSzrOF2K3ryq6liFr/Qztfk3XO/M7s4TKd//AZHR/LFZRPSy/zCbCGtJ8K66sXzE6/Sfm17NHF
7BXWoFmJZ2qSGx2UDdfbegttvQmZGhhLvxZQryl8rw25qY3wPVMryy2Ml85fujx8Br0k/SptnSJl
dvwupU+3yixzDn5IpDfjqN/d0wwhX9fnLGD+4UrSFfbbndqxGke9MplsvxFP5Q0T4b8S71T1V4yb
Kxs8JVXBONbrUVLlb5QK7wf4l2c56/oyd9XMa5ks8d6VY83JMt/rKg1KqircnvoYxakr6Y/IfxO9
k3SjzEnvknmM1/WwEJbz3S2WV/AKwH652HGekm5KfZ3//wpnued+0TN5p8iTlvgdTbI+D8qF70JL
+i7arpSG9NO0sY6+0I7Xhf2XgDrnOoa4diaa2eyx9oxPQl3V4UnIVz0uicvvnYR81cok5FceoB+F
yhXqR6H8QUnIH/QV9KPQewcmIX/gQfo3JQn5Uw6jH4XGuSIJ+RUH6cf0JORPT/aD84l7bPZF7qaP
om+4eP8hOhVl9WWf55n7RbjApd9w5X4Gq+Fu2AeVDs68sJ4yjejfYT3MbCP7MtpX7C9uJ1wJJ0Bd
1JbWzf46atvi2sxujOq3Poa+lEgfAx9E7dm29extRgfCGvd9y1y7G6K+Z1e2lc/2jb7R1tvQRujB
d6nfH61pI7s5InwO/RXshm2uX/p8rBsP/ean9F1t54J8btZwZpwjQqwuD5oiNVfLVHvm7mgXqy62
5+EeediedyFn3xgZmemMD7lPKtU36Bnun2fL3+I3EJsEf4JXsH7hHfHNC9LLf1/qzWKZ4D2JL57I
eUsb5qdytr5bz231HN7NMg1maAzj3NRYOIUzt7HTJutfulCm3PyN/t4tW7mzLfPPlBT1M8Ew0ncQ
1++XK/yr5aqSRbI180/6ulMWEK/6Z+rlFP8GmRTfbTOLpNQ/Gl/gtGS1zA9OJL9JBpgPpG9pI77u
DzKDMftm3HbstUwg5eTrnG1x6w++GApTbZ/pLz7MmKH4MTyTjdffY0wabH+ma/w0vxTjXS/if0Ls
nixDglK813BZVtpT1mU+5Tsy+NShMjDXJj7Aa5JBwfkywm+UQX4tczQU3/we4zxLOsXK2b41mC+B
Pydswbvdby6wfrGbeUR6Wu9A7Mpp/I4mWe1fL7eyJoYlfU3so3KewrdzXBu3kfseVONn7vud5vkN
O+7kV5seMtTvwdrBd3RQ16eghzxM2VtiPxtslerAQ9fLgsxSqfGnMS7dpSZ4TroFE6Wn+rMgsL5u
kcZo/zO8aI0MYm7GA3eK8EJg/4VnuT1+KfO3C+ayGee5PNA5D48iv9bV5f/wsuieYcvwX7jcPY93
NERltG7rW668ngdZx9sR9h4yIN+nWj8aeev2mvP1dv1UFdWE/yykuodZI91zfjj2kx11JXpBnMbn
vc0eXUHdAZCJfXRSKbsKj3JtpNYbqv7C6c91ranXS2rOVxfQQv41z8dG+yzWyFfflNB5TgfF/rqY
5vx3Ow1Dl/5azq8X0zoptb7TaXAb5yEeNFaXX5anmQ73p3y1cyKe87Hq36sZ95vNOrzoQdB1p2Ru
YA20p07x7pRzD0SGSKIEC9vjfH5BMj+h3n9ZLxfgKKsrjp/9XpuHBAliSSxJKykBKo8EdURBJYUl
UEZADEJkhjpEa0RlZKkz0vqqYrSCI9phIkEKlSAQqp0pYgm2tDqCUMVHjZ0idZxpMTysdUpsQZCv
v3O/u8uypKyO7sxvzne/77723nPP/R/IK88mPKww5/siwhbLIcsvFTcmonhLswkPGzR364bgKcaF
vCER8Z0RRv+fAdZA4tykecXGBnoXnhFUhhL/l+WRFGGopNY9tY6pdeG/fcj/vik959T4tt+vuo9f
dV++rv99prlnwpncBykbKN3Om/0xHI7Q+ETd3paAdd0KbbDL8oTCWSnl3H7q3oA/QWab0/xgCbmp
Yst6FpUAZRfvG50DcqSDETKzu/WJ3xD5X7wyWif/mFxvtdc+/kcPje+KjX0V+VNktYkF06VcYwv3
rp7z4d4f5cZTNV84Db8p0bPBPelTv5e/QBLOn8Kn/YXEhE/CV/170ALAWA9YdlpWRdovfA57qVnn
kbIFuz4TctsyRetE92TYavW26tj5ESc6o/cn55WKve4R/scxKVHd4F0pJUa/NEoTlLiH+I5e4D88
5F4vY/TOcC9GW6E/VC+YsyDS23sfG9GDdZnirss439+VB7w61glUE5l92s4doPW3m/alNi4O1LHc
ucTx96TcOUQ9vtHuIe3D3yQLVRe5ZBT+ZPxiKnWnhm+5zdhayxG4jflOl0bnARni3ijVzpvonT68
vx3m8dwX2xNmwgq4Q6rM+2P4yWfUB9ej/BrWlwaodo5aFkfo91iNNDibpQFN3EB/Ub0O0yYikIbY
S2asBreG/qjnkCm5KAq3j30O+L6IdtsQbvQXOxT1Zb6l6uSfrBO/SxIFN0rCvR87DB0xJmyPHZBR
Xr30Yk97wEXs9W6bP2je9AawWuFKyruc38hsxT0gEw3Lw3a3Eqz1fyWN/mgZ4n+OPtiLH3wgo/z/
SIt/hQwMpnCPbZT5kvHzkuFx/G6a0xHujq1jLhkEM6RP/isynj2UPK1rrdMG2FiduY8En5YY2Za0
RX2Sd7j2rBmdGx8r93OOExDFokhrnUPbAj17PE82d2yr9KMnJ8qhTrBaoZ6HacSGAtpMtWd4Kv60
Wn3LakHVmBudtzWvZS6lYbszRcps2+uivDS8G34OE+l3BXnMpUqsK1ymZJTbla+77N0nF3sXwWie
R59eZj+rLafsbfC4XK54V1BPqZfB7nJtG+11rnIwWSoVp4IxSrsp30Nedwe5obYty112Nkl/xfhb
5ell/tM4Jf2/c5V74FuQ8re0T/+//58MVSMnuFe2BRvCDsovwFLi6xrFkzDk2xar1x52CznbC8hB
J0hFFMOJjUkpI36VeYvxPXR/1J/0JjbVaGwkzh/XO8Lef030e0x1qduX+K+xDK1o+9c8qVbbq84n
7k3Q2OdfKHUaazWmmjsDLap5GvGmQWOLs1NGOMejGBTrMIjGIrcXsaOGOdYYa56dwTam1Ei+M4L/
8kSE2zPcaWJSURSzXKG/32o84/6N4lU/tzSKX847UQxy3qdOii44KNWchRcjTG623txNn0Vx0sRC
4rQ+a+5i86eeegaJF2Ny6SWrLduy7NaUzaULbZs22+b0+vUyzduNn6xi7/RO3iGD/BlSmM67REbo
+vsfmnyllu+qQU7qfL3z9J40+8Qe1aGJDkksOy/wOmSa7q1/pRTr3cU6bYd3MuzsCHNP6zp2ossK
uHcnmTGIcfTfBz/tsvPU/KQEP30knfulcrlUriFymbdS1rg/RAsNl1p737+Ykd+uUdTP/J3Sqjmb
Wt69Tr3a6N4wd8gr8Ca8BR/Du7BX5PO/sqczdF3S+dAvRPvc4u9lvbZLft4kKQnaI73i3ivzY01S
rzC3JxXe/zrNBikh9CbgMqiC6TDWWmKuTDBxPsl6J2WWW4w+mIKfJGQ05SqeR3t3odUreZ9ES98p
12Dr3BLWIcndmDT6ulrfeXdTbxj7m2T/fyx1/itys/9nmeMfkbX5E2UtdoXryGX+GFnDf/yBN18S
mqehK5qcAvK1pFzF/VCE9lmkczHzob5+M+f2du60h6XZe5lvndh5kMc9NozyJ9IcOyjNbpJ9oo77
Iu938P0jbBXfb7X2Pd7dSnw4m3p/k6XeTZIXzCTmzJM87xYokvKAnIo4M4s+LqFNlRmnkzvxZXnM
zKE7dE7z7JwssYNhF3N6FLsZ9qTmko2ZRyY6j+y+M+m088kaT9G1yETXxfu3DGX8ZfA7eIc5XQ5N
/vdOXa9MdK5pPj113mYNU+haZqNrm6LIrnM36LpnYv73LSf3IQ1roHti9sL6gPssY+uz/m+t80k0
R/UB4yP14qT2H5+cZOb9oZlvs/cdudnMjXH8BLGAvWcttM7V6T4jf3rUtNN6fDN7qHPTdX5OBpk5
7DC+NVHH1e+6nkGX9Aw2U2cPY5xLnTnS34ytfT8Yzc+0bSSG0VdwDd/Luav28U45N/pm5m//V3ru
uv86d/r0e0RzR0s2c0YnBQPpq4z6P0FXqo/UwXZJBM+ZvSp2+0sz8eB8mKtxAb4N37DvhsIEGAwj
bFnt+eYcf1H0vH9RjpiYkMmKXGg8yKI6+513brgxs6zxA65yGrGt5jmeqx+NURqfcsE99kwqfmWP
obFMQQMUpeNaJqvk2oz1N2vvfcx99E95SgkK0TQdssj/uyxyBhDXB9DvALkAymAODIfzoJ9lkP02
wJbzYOBZyyRRdJbeAWF70dvGqvbmRIXkMWFLLg2crfVSGjC7Hjrx5di74WzsAewi/zzuhefRdynt
naPs/og9yACNOy6TXPM6TZO+IUOUtAbeFH7gS/iBtyzc7/0j3B+fhSbcI9XxImxvGVn4gmYpJy5g
TY7zMBeSarPnmUuLf9n/zXifGk3xepRzuRtkgP8HtMhGqz+SUk9eOhZ7N+V+8WelOOgjfYOrZKX/
e2mKr5f8YI+UW63yYN5i6RHvLX3zi7hnd6NDVMvUYZ9Gf83DV9HUitHf58s2dxi+2U5cWYCWmsm9
0iIFJj/UfHAvGuYx+T5aex/jj1XtFEuEu1W3Mt4s1UX01RiMkg2F08OX8iaGxYVnSTV+NvaUnPVd
cWLr0MHrODPmnZQ6U8nD1smgjHe11g6yNvX+NmO7ZCWcDedFNjzqDJUlPM+NPUmusA1dvM1okZ5o
6N6KVxn+V9E1PxPevVKhuPvYw4znnPniM6eSncd5zxAnIF3Oyquy87ScZ+QFzp6SOidzJaHgQ2WR
vlR7ohM7GXsU+zxcDeOzntXX10Y27A8VcK3l8SyGUfcv2AuhKqXved7oVpG39eKcvSXL/AoZqO9g
sLNE2mCVNxaNOBqy7biMZ10f6ruVxMHhck5soQyljzuCGdLHP4j/vQbtksDXE+Z5I/rhVewu/HuB
rDHfxkmrN1Ja4zdIKz7dgs+2EENH+WvlZ6bdcmkJ8mmzVZb6G8KP/Cc5W9pXszQF11JvP9/72bGI
l/54tM6tPM+VRu9b9NlXpvh3ySUBOV9QwnyrZDOa9JbYdeGdseXhaqdcymN7wk3eN6UmWC8/RVc2
eU//j/1yj23quuP4z+dc35iwkEdJAh2Jz3iYQlhInLbRgJI4oDRJeTVKYdCtmWPfJCZO7NoONFQb
FEqp1opWRaJr1y6sSExU2wBnE0GdFFbxWGlH0Tr4AygLsD+Yti5VK1XruuJ9z7k34TU0rdI2bTq2
Pr/f7zzu77xfuEfvhe4GHdTAR6AR717lpMHGm3Cb+ROEVyHcbafjvlKv7MdoO8KbXW9mdhvdmSN8
D95HSGfHKE+VMY1ajS3qG1neZnOPU+6jVIe+3KbCHZm/GHG052O08Wdq7R9i36OpHkZRifsU1XtO
02bFKVuPL8R3SZriodFfZunN68D1CO1gA9Qq8bxFCyXmUcz/o7fuh6wO3+2geaPnBvydxD5V7T6e
OWx0ZXZn7ybybMd+8hD2nq3QznvORLzZhDtOPd1hmjbGA3hTfkQ15sNo5xqazV+W69HZ32/a7+Xb
DO3tdv2Y1kA/DL1s9F0H3xVuN9Z5F95Nkq9gHkoOOHjsu+24hZnPs5ZAPwG9mpo8s6C91JQ1gL1x
+FYN/w+ibSXYGwugzdH341j4HtrJHsebNkkFmD+miVMGeyhlmbgP3UuLs/9IoaxXabHKn6R884c0
0f199Odj2JM3gNG34Rn6uvszzJk9dBdvwN35R2odLcB34wzK/H707WiEaQH/GHuc7c8c9WvcgX1/
MW3jz9MKicHR95Jv4x0H2KvwtRbz/E3aknUAc/ZRzJ3XaatJOBeC2BtPqrrcCV+N/D4akmnGIN6C
kn71JmxE+7aY7ViXJ1COk8fto3b0wwo5Dnw7TTSn0SsYs22YC39FvTMyTY1PJ9q9gUrdeLXKs8q9
BmdNFebxQegwtBNGHUqR34V2FeLbQviVdZJa3mML1RlFWLcptO00xv88+rkPvleSod69lVTjvoS7
vxynl+lZj0ltZg2twl26mu/EHbwE95DXMdcu0yPIs1qei6jP0LjHqdjYlRnJuhtn4nvYI5KZT90t
lK3O1STVsY9gH8Ne9mHmExPtM7YDtMtoQ942jOFl2oExagYtCoy5xLAwF8+pe/pWw6StfC/6wE2l
/G2M4Us4P49nXoMfOX8my3qpusm3YBXG9ErmE+MwOI13BWWKjNOArl5B++U9v5znUxj7a6nrM/hr
ht8j9LQp6GmU34m5LX0+JN85qi/QNzev+duFeSHWW+G1e+Et96V/dibeg7sduHYfunoAaxfbT2Yh
7Cngu7D9oArk2Xz+JNHfngJbYFvIUwl90D7zrnbwC3TRk6Ic/O1f9P8To+6L4cm2yT5ClHMvUe7g
jeRfuZWJRTdSuMameKJGo9FoNBqNRqPRaDQajUaj0Wg0Go1Go9FoNBqNRqPRaDQajUaj0Wg0Go1G
o9FoNBqNRqPRaDQajUaj0fxXcBHlv8h+TgvoBGURozyqpaeI3MXuP5EbYaIJ9FNIDojdKaWysyiM
kEuFyZXDvuPYnL7En3FsA/aLjm3C3u3YWVTJ9yGnyxgHn6V82LFdNMl91bEZTTCLHJvTJHO6Yxuw
Fzi2CbvFsbOozYzSXhLkpwqqpGpYLdRJFvRSilEPSFEfxVXMIoQSsKUMIj6icpQjJUBR/AU1I64D
36coqUIWtIXc6yDDKmcO/g0ItSHWovWIWa6896Dc0XKWwHsffPfCj4DfGHxGKAQ7BDuOtMRYOWKs
9hVUBcs3FqqmOaoOQXiII69AuUGUI32EqMvJ24RQJ2Jlai/qmBxrk+yHiGpH9Lb1aVd9IagO4Tak
yNig6okb22j7iTktFaqUXqSGVHtlqB2+1+PbhIrpRa6w6jmB+NHxaESdZO9E1Hc9qm/nq+8tlcOi
bpQpezqspHBqNJpXqPgkYmT/xcdG8Fo7ZHoKtYjgyyR6IaBy2i0abUVQ1UnOgLAqUda5S7Wu/YvM
nr3CX1FZLVo6LbE01hNL9cUtsSiWiMcSwVQk1lMuAtGoaI50dKaSotlKWol1Vrhc5OQ0WG0Ja71Y
Hrd6WuQ3S4J9sd6UiMY6IiERisX7EvIbId1XVAmfVNVzRHMwGu8UDcGeUCzUhdimWGePaOgNJ2VJ
LZ2RpIhe76c9lhB1kbZoJBSMCqdE5ImhUJGM9SZCFlR7an0wYYnenrCVECnZjsYWsSQSsnqS1nyR
tCxhdbdZ4bAVFlE7VoStZCgRicsGqjLCVioYiSbL6+9fVr+ysSyQiASjt7OVkLUIilQiGLa6g4ku
EWu/fQ/+h9d3tkKv8f+VNV5P99MyyJUou+y6FS9HtwO1jKoa3y7Xvxp//Y7yb9lP7DOXKDOTdtI/
+B1o2RoYz+fIP5tKJeTlZXw2DnIvn502S7yD/K4B3yTvqV/wWTQMGJ+VLivxHuIzeUl6vrd2kE8b
KCj05wa+ygWO3rlKCsgY2AeGgEGtvBTxeZAbwSawDwyBU8DEiV+qUgWIgX4wLFN4CZ+SFt68wEw+
Gd9OxpGey4tpBGQARz2LUWoxLQet4DnQD0yVT8bEwEYwBD5UKbW8OP1CFepenH5GqYG1Ub8KBu3g
N76pggOrVtt66YO2XtxoZ5tnZ6u8244ur7P1zDm2Lpjh3yR1do7/cKCIF6GRRah4HNLFjlCuy0Ve
2sULaT9g3HRiannBwHSfv3+IG+TijLswA7yZw9yVzsn3B7JZho1QAXnZn9kHdgr7YGBCvr8/0MQu
0T4wBDi7hP9FdpE2smHZ55A1oB8MgXfBCDDZMP6/w/8Cu0C57H2aC2pAK+gHQ2AEZLH3IfPYeXnx
UlLaNYCx85B57ByadQ4yl52FdZadRdXeS1d/zX9IGWVzHcM7wzGKv+wYBUX+Qfab9KezMKN8GGnM
qDf4VFpIVXxqekYlpt+k9IKId5BdHhBl3l2BCvZb2g9wpYTMAwKsAN8CcWDCOgPrDG0Cz4NdYD/A
LIPMA4KdAO+AM1QBasEK4GGn0ihmkL2b9tV5A0XsJDtOxejxX7NfKf0OO6b02+yo0m9Bl0KfYMfS
pV4KjEc64Zs86DzouUh3s18OTC/wZgL5bAh954WcC2rActAKngMmG2JT02FvAZy8QSc8hJxp+oPS
e+g1D9Wu9db6FmECCil88+6DBdEv+n2s1rfzJQSl8G1/AZYUviefhSWFb8MTsKTwRdfBksIXXgtL
Ct+aVlhS+Ja3wIIYZD84OH2mt/rvjFdBbBNHFJ2/62bXCYmdlAaXbDzrOLZKlhCUJjhgGq/NuqHa
Q0ISkDe1ICSyRMWBSpuQU9PlgNSoglSqRCt66wmBEGsHRZsEqUg+NZdeWvVYDj20JwqHUk7un9lN
KGoqddb/v5n/38z8+Ts73h2/DGo+IixhlpYwS0uYpSUSEpbYRV6GWGzf1Pr6MGO3de1QH3U2wXkE
ziQ434JTAWcZnGvgnATnPDgaOAo4cXB0cLZgBFPhgP7wteZxPQbONjj3wbHBSYOTAqcXHBUyuick
ah+8y6HIYS3PHjrE90bx9IkICcxoAvd8As+E71D/gNLgLR1Jao9PfjvOsGetL+e3j5wYvIKPTx07
1vE21MkvKCG8QXXcRnUcpI4DRFDnUC6gPEZ5itJAaUJ2Dwa+ynUE9QBKDuUCyqcoT1GaeDhPUQRy
JQjxAQ+MBT0QBD6OEhLqePXglRASendUiWrR0+KqApE4jMcbcSFDOjvxyO5ol9s9aF1/0frXi1YS
zoeFm8IqO7qFLwJcrb3Eoxu+rqW3aP4t+IrEQ7jz4DhJQwpxhNi8PUwUmeEQUYR7iIM15Rx2i9TS
h+kmtLFe6/Sl8iv9XfEErP6mbNGfVS8ENfoTWu6t0x+VFfr9gCej5VHaA4RNlVM3lBF6f5tTr6Hj
do0uM1innyhj9LLCHRXfcd7Glh6hk+kZehrHM5Q5qts45jrNKefpSZ81zPqs06MYguZX+zDYQwqf
NBlHy0M6fPZsxoNL+mHpllSSxqVj0qB0WEpIVOqWuqT9coccldvkfXKzLMtNckgWZCLv9xpPdA2/
Psn+piiDphDTIV6PCkyz71d29IEs4LuT+6ZoCuZUAUz38Twx51T3z6mkB81nZtw3kgVwO0xiThfc
Ec30pMakm9FMV5r4sFQFuGmh1RU+84BMlzxoMNP1LrfjVGmDALRfv9HF8J3rNyyLxDqv5mK5jtH2
4+8be6jZQGuvSuy1enfBvWVOlWrDd+92Fyx3kNcbDayb7pdTarm0Ac/hj6KxAc8YWKUNcRSeFyeZ
XRw1LMv04BznERWeIQ+3zjPOk/FfmvGIKsd93m2fl8L+yOtlgLxwmKQ4LxUOc14IGK9q9xaNam8v
5xzAFznOsQ+o/+Rsp5CTSnFOp0O2OWe702Ecd5RTFAUpcYVT4CBROEWBg5xy7hVlIKCs7FJW+Ewi
vOIoPqf1yQ6n9QlytP9bKgVNg7WsNV8uVpLF2WSxgjLrfn71Usx15lS1Om8xh+qK6dm5+UsML1Zc
K1kx3PmkoVaz5T3cZebOJo0qKRenS9WyXjFqWT1bTF40rLWxiaHMa3Ot7M41NLHHYBNssCE211hm
D3eGucfYXBk2V4bNNaaP8bkI3+oTpapMCtapso9rQkszbtvZroRV6Ix+PMr3cDYRW+7axFeXO6RF
s9x9yYLbisJc/fn+PHPho8VcbWiOBK7YcjbRtQl3AlcUze3JAtEWFu1FEit+ZPg/GwuaFhZZwn2t
2f9V0Fd09YuGvUCI6fZNmW7uzEypKklonWVLck/s2Fpail7jsW88gsYTzCiKu0RmO8ls4XBA/Pf9
XwzwFHsKHGFrDfQ44CehJbpxc1rAE2F6Btdanilt4osV+6+wLVygDRrYO2MEYWsa8duErXlHFhaD
WpCLhQD9ntjF3knJbmHJ0nYztsCH5enUyqV8m3hMHMBPDyoeRexH7EccRBwUB/SONBWFDA3LGdrS
bFCpyaA7o1ra3wIMANIXXA8NCmVuZHN0cmVhbQ1lbmRvYmoNMzQ1IDAgb2JqDTw8L0FzY2VudCAx
MDQwL0NhcEhlaWdodCA3MTYvRGVzY2VudCAtMzI1L0ZsYWdzIDMyL0ZvbnRCQm94Wy02NjUgLTMy
NSAyMDAwIDEwNDBdL0ZvbnRGYW1pbHkoQXJpYWwpL0ZvbnRGaWxlMiAzNDYgMCBSL0ZvbnROYW1l
L1FaT0VLUitBcmlhbC9Gb250U3RyZXRjaC9Ob3JtYWwvRm9udFdlaWdodCA0MDAvSXRhbGljQW5n
bGUgMC9TdGVtViA4OC9UeXBlL0ZvbnREZXNjcmlwdG9yL1hIZWlnaHQgNTE5Pj4NZW5kb2JqDTM0
NiAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDIzMjQ1L0xlbmd0aDEgNTg5MTE+
PnN0cmVhbQ0KSIl8lntUU1cWxr+dm3sSQkQFFUXCvQncWB9Vqw6jDrW+cJy2Kh0dWrUqFEFFEFSq
aFVoq1UBEV/4VvCFLxBfoPhAK6KiCIJYbVJgaus4xqXWurRjIJkTZDnTP+xZa+9z9j6Pe88v93wn
IAAtkAwBIaNG9+jV5v0Ji3nGyi0sIjY8fna571WAgoA2YRFzEuTc4rp0oO0WgM2Iip8S23d3u66A
rw5wz58SMy9qae5XNUCnIsAQNTUyfLLtg9ByIFjm6wVO5QnP3j6TeBzK44CpsQmJoVNP8mbwfGDY
uJi4iHBqpEQg9SaPw2LDE+O9V7gdAqr68EHyjPDYSOu6WXE8HgNoFsTHzU5wdkEmcKfS1R8/KzI+
+8j9Bzx+Auh7QBCWUQZEaMVNYm++i46vauEGolSeWlHlztQqV1HXo7vzHBLH81XcuGHMiCEyBkJ2
NojVjo+ot2YAHRkIcjqdgNosnnI9DW25V8HFj8Ph/HiLfLgxNCd5rVK5xvy+8E5BLTKN1k3nrm/h
0bJVa0+vNm3bebfv4NPR1+AnyUaTf4Bi7vRW5y5du73dvUfPd3r17vOnwD/37df/L0HvDnhv4KDB
Q4YGD/vr8L+9/8GHI0aOCvno76PH/CP040/Gjhv/6YSJk8LC8VnE5MioKVOnRU+PiZ0RFz9z1uyE
z+fMTZw3/4sFCxclJX/51deLl3yzdNnylNS0FekrM1atXrN2Xeb6DRs3YcvWbduzsnfs3LV7T87e
ffsPCAdz8w7lHz5y9NjxgsITJ4tOnT5ztvjceVwouVh66fKVsqvXyq9XVOJGVfXNmlvf4c73FusP
tXVQew3jGx3Kt6rBUCwip0pWjVXlCv7CKGGukCSkCGlCtlAhPFe3UI8Se4ih4iRxqZgirhQviQ/E
Z8yXOTVJ2mPaM1qnIdow3XDBUGZw+iX5bff7RWorGaRgaYT0sTRWGi9NkBZKx6QSqVqySI+lZ5JD
bimbZLPcU+4j95cHyEPliXK8PE9OktfKxfITo2j0MnobTUazsbtxpHGMcaJxsXGdca9JZWKmliZP
U1uTj0kydTZ1NQ03hZsi/VX+rfyNChSVoldaKW2U9oqvEqB0U/ooQUqMkqwsVpYpacoaJVs5qBxR
ipTTSolyTalQ7ij3zEHmgebB5jBzhDnKPN0c1y2pu3eOMWdpTl5OYY7zQOSvZGd2b3ugPcg+wD7I
PtR+3u5siGh41vhe49PGZ42NDn9HgiPJ0eBscH13/IvLUkFlVI1T5QkBQogwX1jMKaYLO4VK4YXa
Qx0iviOOFcPF5eIKcZVYKT5hYH6aEG2WtkB70wBOMcZQYnD4wS/ZL8vvqdRekqXhUkgzxUlSslQg
lUq3pB+kp9JzGbInp9hF7iX3k4OaKEbLCZxihpzVTLFdM8URxtHG8ZxixmuKrTnFDia/ZophpslN
FOU3UAx5TTFDyVL2v6ZYxine5hT7v6YYaY7mFMM4Re8cU86ynPycFwd6coqwe9kN9r6c4kD7EPsw
e3XDxIanjUFNFF86ZEe8Y44j2UXReZef38fcqgDx3VfH0THN5dVcQRxdAF2NrlpXpbuhqwAaKhuu
/v/BfRQIPFY/HgHYkoB7al572VrbWtpa2PQ2d5vO5mbT2JhNtAk2lQ0PXL8Z6pc0ea6p9XMfRje1
Cx/2Ax5+Up9SvxCoi66bV19kK7/brT7dtqFub11mbWbtjtpUoHaPa3Sdd+3MWq6YtT1rB9b2rg2w
DrMGW4Os/ayB1t7WntbOVpO1o7WNlSyPLDbLfcvPlh9dsyyllmLLWUshb1207LYcsgRbBlsGWQIs
JovR4vfTRr4e17BpCdxipr0d2ej7kGv6h/ywbtFs1mzSbHy1X8+v+dXwfevOXEsftOYKL0KIaFK5
wVzBHJxZDM+NEXeIB3ldIPI7g/Xi9un/iGlbNflEbb5ulq5S95s710b3ca6ce2izrcYfFvci99vc
P9dzFdWrXRm9Wt+0qr7dqxH6kW+aq+/rMn3/5ijwj5/0u5ker57R1Na/4c1evlpTP/z1yDRuma+j
cy0KPDwAj6b39Gjf5H2aOwXsxGIsESby2+sevkE6UrEV+7ALrZDCEX+NNXiCX7AC67GMiN/Hj7EN
+/ErnuIZduAgLqMUufgMEcjAZJQhEpdwBddxFddQjn8hCjdQgUrkYQoeYRVuogrVmIp/w4bliMY0
TEcsYjADWYjDTMRjFmbjcyRgDubiPhIxH/PwBRZiAQqRjSQs4v8SvsQDPMRJyqT1pCKB1CTCjgba
QBtpE21GIxzESENaOGkLbaVttJ2yKJvcSEfupKcdtBPP8YJ20W7aQzm0l/bRfjpABymX8ugQ5dNh
OkJH8RtqKIVS6RgdpwIqpBPUgjzoJBVRS2pFrckT9fgneVEbOkWnqS21ozQ6Q2epmM7RefqWvKk9
DiGfOpAPXaAS6ki+ZCA/ukil+A9e4kfcJYlkMpKJLtFlukJldJWuUTldJ38KIIXMVEGVdIOqqJpu
oog60VvUmbrgJ/xMNSyFpbI0toKls5Usg61iq9katpatY5lsPdsgBrCNbBP2sM1sC9vKtrHtLItl
sx1sJ9vFdrM9LEcdrZ7O9rJ9bD87wA6yXJbHDrF8dpgdYUfZMXWMOpYdZwWskJ1gJ1kRO8VOszPs
LCtm59h59i27wErYRVbKLrHL7AorY1fZNVbOrrMKVqluUDeqHWqnCJFElSiIalEUmagRtaKbqBPd
2Q1WxapZDbvFvmO3/0tzfTZXdV1xGL9n7bv3Xuusc+4+RwUhQBJIqCCJDgYDwVgIIXrvNQ4QIGDH
xjETsOnVRhQJ0YsLYDrGNp6JM0kmcWzH3RhThBBCCBAgQIgmhCi5M5l8gPXm/2LN71FF6qwqVudU
iTqvStUFVaYuqnJ1SV1WV1SFuqquqeuqUt1QN9Ut65R12jpjFVlnrWKO0J72dYSO1FE6WtfTMbq+
jtUNdSMdp+N1gm6sm+hEjuQojmbDpXyBy/gil/MlvsxXuIKvOvedB06N89CpdR45dc5j54nz1Hnm
BlzLBZ2km+pknaJTdZpuptN1hkzmehyjF+iFepFerJfopXqZXq5X6JX6bf2OXqXz9Gq9Rq/V63S+
LtDrdWHgVKBUbwic0Rv1Jr05/NO2hn/bdr1D79Tv6vf0+/oDvStQFDgbKA6cD5wOlOjdeo/+UO/V
+/R+fUAf1If0YX1Ef6SP6o/1J/pTfYzrcyw34IbciOM4nhO4MTfhRE7ippzMKZzKacH8YAFmBedg
d8zGHpiDPYOvYy72wt7YB/tiP+yPA3AgDsLBOASH4jAcjiNwJI7C0TgGx+I4HI8TcGKwkJtxOmdw
JjfnFtySW/E1vs6VfINvcmtuw20xD1fjGlyL6zAfC3A9FuIG3IibcDNuwa24zXQzL5os0x234w6T
bXrgTle4QVcG4r03rSrrtlVtnbPuWHete9YDq8Z6aNVaj6wMq856HNb3UyszrLUAhOkKAoIgQYEG
BALbag4MDrgQAgMe+BABkRBltYBoqGe1tFpBDNSHWGgADaERxEE8JITVtyoslkSrtdUGkqy20BSS
IQVSIQ2aQTpkmBxux+25mM9xCd/iKr7N1fg1ZEJzaAEtoRW0hjbQFtpBe3gOOuB/8BuYA3PhTXgL
5sF8WAALYREshiWwFL+FZbAcv8Pv8Qf8EX/Cn/E4/oIn8Fc8iafwNJ7BIjyLxXgOS/A8luIFLMOL
WI6X8DJewQq8itexEm/gTbyFVXgbq/GOm4V38R7exwdYgw+xFh/BClgpPeljHT6WETISn+BTGSWj
ZT0Zg88oQBaBrC9jSVCQJCnShERkE5MjG8iGspGMk/EygVwKkSFPNpZNZKJMIp8iKJKiKJrqUQzV
p1hqQA2pEcVRPCVQY2pCiZTkKkqmFEqlNGpG6ZRBmbKpTKbm1IJaUitqTW2oLbWj9vQcdaCO9Dx1
kikylTpTF/oNdaUXqBu9SFnUnbKpB+XwHb5LPSnX1S665Nouuw71ot7Uh/pSP+pPA2ggDaLBNISG
0jAaTiNopOu6Ide4nulj+pp+pr8ZYAa63d1st4ebYwaZwWaIGWqGmeFmhBlpRpnR3lvePG++t8Bb
6C3yFntLaBSNpjE0lsbReJpAE+m39BL9jibRZJpCv6epNI3v0XT6A82gmfQyvUJ/pFfpNZpFr9Of
6A3Ig9WwBtbCOsiHAlgPhbCB78NG2ASbYQtshW2wHXbATprND7iGH/J7/D5/wLtMrjcl9EXo36Ev
Q1+FvuZauMF7eDd/yHt5H+/nA3xQtjWJJsk0NckmBW56k/kR3DKpUCUWisViqVguVoo8sUYUiEKx
WWwPl8tusU8cEIfEEXFUHBN/EX8T/xRfim/EDybDtDRtTQfTGW6L4+KkKBIlokxcFtfETVElqqEa
7sBduAf34QHUwEPZUT4vO/EhPsxHuI4f8xN+ys+cgHkBauER1MFjeAJP4ZkICEuAECLoBYSUaTJT
dpZdZFfZLXyfJbNljsyVvWV/OTjcUqNFghwvX5JT5HT5snxNviFS5Rw5Ty6Qi+QSuUyuCJfWKrla
rpX5cr3cIDfJLXKbyJA75Ltyl9wrD8qP5Kdh0X0u/yr/Ib8IN9l38id5XDSXJ+RpWSxLZbloLStk
paySd2WNrJPPlFBasTLKV5EqRlSqWBWnElRj1UQlqqYqRaWpdJWpWqhWor1qo9qpjqqT6qq6qSyV
LVD1UDmqp8pVvVRv1Uf1Vf1UfzVADVSD1GA1RA1Vw9RwNUKNVKPUaC+oxvBR/uT/+whbsHD+t48a
qyaqSWqqmsbHHHCUY4clF+HUcxo48U6ik+KkOelOptPKaRd2YRenm5Pt5Dp9nYHOUGekM9aZ6Exy
pjrTnRmh0lB5qCJUGboZqg7dDd0P1YaeGMsII402ZFzjm2izx5tq9pvD5mPzmfnc/N38y3xlvjXf
mx+9Gd5M7xVvljfb+7OX563zJ/vT/Jn+q/4sf7Y/15/vL/OX+yv8lf7b/jv+Kj/PX+2v8df66/x8
v8Bf7xWan81x84s5YX41J80pc9qcMUXmrCk250yJOW9KzQVTZi6acnPJXDZXTIW5aq6Z695cPu/W
d2OtEuu8VWpdsMqsi/TMDtiWDbawg7a0la1ttMm2bbYd27VDtrE927cj7Eg7yowxY92eZpxVbl0K
PgjWBB8Ga4OPgnVmvJlg/kt1mYf3dGZx/Jx3uT/uzc37u2pJopZYQkSQqBoP1WJKkUUS23QoKimx
pxiM2JcQW6WkqGVaFDVj1IRBLaG2DklsrWXmsZagtnmmalr87nwzM3/M5Dzvc5/c373ve97znvO5
5zvQDDLvmsF2Nbu6XcOOsCPtKLum/bJdy65t17Hr2tF2Pbu+3cBuaMfYjezGdqzdxCl1ypzTzhnn
rHPOOe9843zrXHAuOpfEHXFX3BPfO0fpC9oh8q2j/ArtpF30Fd+iP1ERHXGO0Uw6RHkyRabKdCjd
NOcCHeVFvNg5zq1MF74te8neso/sKzNkz/D3wg+EHwzPDC8OPxSeZYds3yF6wuUOO4JbO9JRolhN
pX0Omh8n4AQdL6w0rCzsdNgZ09V0cwe4A82HwTnBucHM4EJvsFjgXKaV9IAO00Yq4NdpCXfg3/BS
LuAPeQLt5lynslvLre3Wceu60W49t77bwG3oxriN3MZurNvVZJos857bze3uJrlN3Di3qRtvhpih
JtsMM8PNCDPSjHKbuc3dFm6Cm+amuxluT7eXm+i2dHu7yW6Km+r2CD4PvmAOhoK+Rx57wpOe8rRn
eQGvklfZsz1swXO9cM94Qc/zqngveVW9al51r4YX4UV6UV5NLzOYRwepODgvOD+YH1xgjbPGWxPE
MWcP9NSXzj5nv3PAOegUO4fEcXFCfC3+Ik6KU6JElIoycVqcEWfFOXFFXBXXxHVxQ9wU34lb4rYo
B3FeA2EyoPp6yTqyroyW9cCZwTpTZ4E9qbqHTgN5BuiBehBo1F0n6WTw44g+qo+BIad0iS4Fj8bq
cXo8yDRaj9E5spFsLGNlExBqss7VU0Cn+WBUHhi1AMyaJuNkU5BqqYyXzWRz2UImyETZUr4C8vyg
n+gfQaH7+oF+CPYEQZ8qFWuCPbWtYeDPcGuE/F7ew7gP1nQAbTqZ+Tre5OtmZoFubhbqFmaRTjSL
zRKdYD4wS00B6HZNX9c3QKxYcKsRuBWnO1strARwrCEYFg9ytbXaWa/pWB1rlpnlptB8ZFaYlWaV
+disNmvMWrPO/M58Yj41680Gs1G2kq/Kf8gfZBf5luwqu8nubh8z0UySuXKKqW3qOiUm2kwz080M
M9PMMrPNHDPX5Jl5ei9FYkTpTRSpYggK0i/HuFNxDWX7dyp+r7iKe1CUu/87iDbTHzgb2vAgHebH
VKGD9qCqTlAN+iWthppbRnlk0du4M5/SYRr3l3GkX0TNofMkRgme7QO9t5eqc4R/F9pvjjyHt+aQ
S/WoA/WAYlzESf546kdX1SxqTUnQkWN4ut/XX+wX+BtQO3vkCf8FORQFhTqYSvyH+qL/N4rHG8tR
X1e5oPJOegOrTMeTa6A9V8n+iv0h/s/wIBoKtIQUJVMJF4s4zJ5F5RzBubITZlnvb/eP4KmXqT/0
7Cpos1bcRUTrfn6yX0LVscZEzLqSdoApuxCT/XSZw/Rjf4P/mCKpKXXFfoqolItl6MWM0OuImEaU
YqkNfhlNB+g4nYYGPCRG6zCdiO/rb/3zVJUSqBe83YQ3b/NTdJ/oP+Ux1dnvSOGIy9KKaNNRaNIo
dMKp3Bv97WixVr5PlbBiAiyTshHvFZj9CnrtXeijy+R6tVU9s2qFrvnhOJEY+pjW0CEo3Qgo07E8
E4rrpugkBqCzuSGXqS3qbGAQdv0OjaRFtJWechX+Bafxr3ko53IeGLUS+vU03xEdRE8xHN3LUJkj
96uOsAw1Vs1CVS2w7oT6ho6EzoSe+on+XEpDPsyA98tpLXa2h8qgiS7RVbrBmh0Oh9XlaO7Fk2FT
QeBPeTNv4SKscppv8F2oiCf8DGqBoBJqVnT6sPrifTEB3dlqsKSCJvfFT7KGrIc6biXbyV/J0fAq
T34A2ymvqyhVBrWaCCvU69B7bNWH9WMrLDCzElU69Xz9iyYvroQoNC9UGNoRKvKvUzWcYRSiUIfa
wftBsGE470Jk3B/pHIchdlHchNtzEiIzgIdxDk9EJGfzKt74b9+38T5E6QI/gs8udEqFz82gLzqK
VNg7IkvkoMMsEEXiW/GzDKC3MLKabILa7S+z5Dg5SRbK7fIUurob8kf5HOYrW9VR9VSMilNd1AA1
Xq1V5apc9wPxblm2NdKaa+22/h54NdA+0COQFugPpborcL7SwIpvHr58f6b/+eNr6DnflDtpsWip
IsHjUuTzAMqUyQKZKjbzPDGFi0QDPdFqK9pyCj1WMYj1MbEO/WRbmczdOYOGiYT/zGZVVZ/j0k59
RQ/UPuytFDNPtMJ4qnhkhdEOJtEGax6VLVScPEmX5VUOqE/or8rmGvxAbJI9kAX7VXvdl6Llatom
c3gK7RRvEtnPKi1EHqfw5+BCT07kf0qfpEhBFrWWN2kWDRcX8RWdQPPoI85UQ2gxteRcKqfPUBWx
ehSoWo2/FtkqX7zERSTUFuyuDTdgqavSbO4vV1mPxCUaT2XKpivy9/C+TGyTyeqxTuehqIApNJdy
/Bk0SfdVZ3kI2r/e1FBdA91yZaKKxnUaqNIPTNuF6t4LDnSQybgTgcxJQl70AiFWwVaAEwoZlI0a
7wOKlVKR1VPspiE6nEEdInUylE5v+5/RSn8IjfILKB48yPNzMeNmukVLaDPPCU2mMVQblXOFk3Rn
UaY7+/EiX1wSGaLw/88X0W7IEXQPtg3/tNdfUr66QBn0ur/Q/wbZ3RiEXUnvUjf6Drt8iBXeksXU
MpQivvA7yzHY71VK8zf5ddimof4ISqV9tDGgaVAgDme8nc9iv5MpS6T742RWKBtxWIIovIFojQd/
5qscNUv9RAtR84X/Ir36YptIzvjM2o7/x2tDcOINMMvgcGUd/hQ4gpMm2zg2JBFc/t9uSHTrOMkF
CgdHq9PRPtQPjUALVfvWO6mquHu6VkWdTVLViaoquvc8VZX6UqmqUvUeisQDx0MbSL+ZtU1Me1Wl
rndnvn8z38xvvvlmDPnmEeybX8DOgb2vX13+zrfvvH/71ns3b3zr+rWldxcX5maNt6cmJ9668k29
r/cbPd3ZC13nz5098/XTp06e6Mxox7/2xrGO9FF6RCWHDx1sV1JtrckDLfv3JeJyrDkaCYeCAX+T
z+uRMMrkacEirMNi3g566VIn52kRBMU9AosREBUabRixhBlptNTBcvE1S9211OuWWCY9qKczQ/KU
sK0BSip4etQA+ocD1CTsiaAvC/rHgo4CrarQgORblwYIwxbJs8IHS3beGoDunHAoR3MLoc4MckJh
IMNAsSS97eBkLxaElMxnHQkFojAolqIDedZGB/gImCedL86zkVEjP6CoqtmZYThXonMM0X4W04QJ
ygk3rCnH/MINucZngx4QJ7NpP6zIaM7SIvN0vjhjME/R5D7iGvgdYMnvbre+YqHzRM64t1ereOx8
6zXCWdu+R9ijUWOvVuWlaUIf0FZKFyy7AK4fAojD4wS8ScumwfAyuCR8JnxW7vwWaJ5LrOuEBWk/
XbKvW7A0KZuhsbvqSiqlr+/+GaXyxJ4wqMr6FGoWB9qd/cgeu7vappO2Rk1nxpHjLrBOc6xKRKJ7
iYW6TlDCnFPDY3VkMR8RHYSAYKREYCQGhTl18WKhC9mlLjCDx8TQis3DilxjwZxly1ku5+2ZLy1T
Yn+JIALok783SopVSVNa/hJxksdJPdRAX6OZprHjx3mI+HOwpjDGXsGf68x8UJEovS0TqAA+NALY
Fs3sSYBfVfkCP6joaA4YVh41XJ6gOWUF6Sc1k0kW12zWNC2TXFOuaerNLQqRvIYwpJkWFuiovzH5
wL78UpbhA/9FveDqh8fp8Oi0QfK2VcV2eKKBc/VddV2VYvtyhkeRqpSkeIQWgnKmbswZI8K8aXib
RFDPV/wBiEohwaTAZOuSW5ohVf0fG1V2n/JWonrVrDpMltUa+e4GvmF4EdsDA4bDdXhi2rZDDToI
NdfhYLWCiEcThkpyDE3CzkzDW9nd7OKfqTAdIMtxA4g/V1RlGwyVKm3Cw6OzM1OARGfbBUoKtmUX
K7vlOUpkaq9Ln0uf27fzVi1wKrsbDxRWeGgCVks425mhXGPb8w7ypMGNrjhYEOdzD0z2lmZSNqdR
lRoLMBcniyLqhJUDSkL9DsX3Rx0d3x+fNtZlhMj9CWNFwlLO6jedo6Az1glCupBKXMqFnCGcQcMY
oFmRAsJeWdcRKgutVwgEX6pgJGSBmgyjUkVyZbLrqEM40uFaWap4XY1es/aCLODKyq71G1XrAGhk
rtlAcOIgoXQfB5gJQw+d17N6t94r9UmACBetgGQDbLsxWu3FfVhxoM8xIa7gstOtK+uip7GqZRks
uaxcl8HIudmejsCfO/HJVzOYnDZWexH0L0qw6OcPz7QwiL17SCQmHudva0ZEsofHIQK5MtSlhPao
CW/IMGXv0A9VPjs2Re+qIKSMQLYGIwddbDdtm8CPAiqlKcMtuQpn2qEnk5XnarZKO8TEKzYCTUVc
rbbzHFL39r2atzvgjRN2zR0r/UdvMHqGr/JSvGL4zpuIuv7hlHad2jP2NMSjyg5yx9VxANvcbooe
YCQfiZFgcTiV4E6wyPcS4UkO0iQdcqQrmqixqO0hmp8HC/7BoXsOFksl8ya3onzT8MD/SiO8x4gf
JKJzW+6ucbjKudvXZu82skt1tsA/uKOkT7hpAuYitqzKrivshqnVTYp8zjbs7Szf4FnR+CL/LDh2
LrJyqQhDhPNmsERBMAQCYsy5CPKD2uY3p1IRmnGUq57Ye1pDl5ATMKQo6IhPh5VHiGUSC3IIHgWw
FcJ8UJNFuD7RIs8bI+58RiD5Q1W0x6Et4sumMD/ks8XiAuXJlfF4d9HnY/TC6NC4wZBi2xRiCIaY
LoAxdN/BmjoGeQXvbY0WF/jNbpFf7BbcKwcMV6DDe1PyVDXBREoLLAE42GhzvCjZ/N44a2mARNxO
2OSCDRt+FnKVt6M0ZUFeIzIpELHURQU4AGGQcyZ05BoG09wQ2ou3g93UnFl/+pVEvLc01zggehWX
CDZSM/GLF4j3NSYlu0DJJ4/HpsW5AAvFwfOlBwFeHaJK4a1hF01Ujw23/SBvqtQWzG0GErN2AEC8
O2l8f2RvJpxhieGxqwoA2ymSHPLBD3mQH/WvSXi7yV+RPtb3IZ9324NCfu82Rm2BJt+25Pkt/CUM
4o/xCdSqyc97XvRckZ/1XH7Rg/qAlnegOH1KjavxNBQYkuwO8Wzu6D70T0S8m/CnBf5BIXwPbYGv
82xZM/RWqQeFpJ530C34o/Ur5H0ENo+8n3zEu5+dfYL6npw+paxinpZb+1Jbp06bZ86dadnY2tri
vX0Ky/WFbwOF0RPRW0uT71Ag4Pcjj/cQHDeh4KEwCvjhONT3y4mz/gnPEAmRqBRKRb1BKRKpYH1t
KtgcDrtEKBIFQm+eChJMoHciy9Ikquw+X4vFqkQ0Koh/rEUiVSIYrEuaOPFUD0WjQM1Guq+2agCP
5j6zABNUANjz2cvPtjWBGP8SF072yBw3xfEFKp4zv77h82EUBGrtBgpgLxArN7AE09f6tPiFkxrH
IK62qNXvU+/RnZ95tJ0/eH7g23j8su+XL6OPOTafATbLgE0Q/V5gc0Rg8yM/rsMD0PyUSCQsSanw
/4mHHhaARMJhAcLLf0Mj1D3zlWhso74qELMNSPxGIPEaBInXEfjM86edv0rsxQifffbxi0WI8k8g
oh/D3FvREen7YvZqItyME2+2Tx9eDNw87A3KfFgBUfpFeRSiRKxqtLL7TBCRGhGuEYnK7l9WE6mz
UD9dPXLsbJzzB4+dlat1rFqD/o+rBztcPdjL1Zrr9UEg0s1D7UNkPDzTfrP9TvDD5rux5dD92E+i
P49VYl80/y0mN0ciJB7bH4/H4rFIMKFIaupAqCkRl6MRX2sweCCZajuU/N3uJkR+GDbHFEpCjLdw
9JNJpB4Rq9v6L8bLNbiJ64rje3elXXmlfcnSrh5rC8uy/Fhj+SE/REy8NOEVl3e9jJMo2E0owTiA
aEmhTQfygABlWr4knQmZAoVmEpqWAMY2mJnQ1JNpM3RgGmCmDDR0ak9JWwOT8TiEYNRzr7TGncmH
Wt7VuVe7V3fv/f3/5yggSaKreI6cfUB5KA+5rDj7xdQtxdkJ6BeQecoqjotvs4PZm2RjWXtjIbhh
BvGDsyxeIjY9I7Yxtj3GxKIBm5aATUtgipbA/0sLm6flS5uWuzYtpY+8+020yOkJ3AyOBMbgDRQk
wyuPjmGAAbWmEl4thRQt9bpYYzh/Ig/X1aK0Mf2PwuNB9W/yLlNKSfIsxTsLujpRBjpPU2L2b2Yo
mFKiwZQXDtHUU3LUB0cEDn8qP0hn+ERBUBtk6k13bzBIIckFmEahPYVpm4LnlMqRWq+qfh/LqZqq
FZYyNXR5vLRUge6mpsZkvLTkEL1n+PyPPvl0UUXHt7PjH3WsXzmzpP3v6NCONxf/4vCDWueZJX/c
+vaVorLY4s0PMqjutb0tbm5yM9PQvHX+8zuB9ieyNx2641GqgmpmooT26gKhoCoohKoqhaqqlNDk
bw7PqlpYlRbSVT3C2qqu2j3Czsq31P2h9wR/Bd53vBPlEJhBHL0TPFrRHxyqGA5eqPiL/3qF63EV
FYMITAVvlNeLz04PPjdiRJbgKKJFAkZ1VTLlSFUvdCyotlydxvdca40XPa97/uT5SvjKUJqTInLI
iVhSqy/xBVZVbqikK/WE2Cb+XDwgZkXnAfGYeFtkxKHsvRykA5bowfCIg9l/9WGcRDwJnyyzHaIH
kyKykgTnuCAQBsUAofKUJYo6ow3SR08GqgmemMpqnv9WR+ANn65z1NSzUHPL+XqdcVd2y90UKGVi
Sh1U9u6UaqjsfUrASjHdFsUSistKwDD+QyaFA9ONe2MOzDW0R2BBSTBOVhaCa6YbTztGJgzt+4T5
2CD9lCmWm1Rcjs+I18aPxZ0p7EOiSHfEB7NXcsFQdjz39SeteB3+3BSKS5O1qXMp+mAKpTT4mgE8
uOYij28WWFpZIJpw5Vcl4clrNZHTqqlYidiH7AWWjrBtLM368gpmffkb2Pw4NRYrEkPwEDcIECfw
4CdjidGzInEFGT8JW9ciTzxUWTqDFToOJzmdMfAH6TFbzUYrFrMxOgrJvW3EaBuD5giRy8ObM9CG
f5Ay6LmuliIaRhl4ozLhAYoxDI9HrBxkZg70wl6X80w9iRl3QNN03yCTONEL2wxCrE80gBpx2kwp
DTAiCLKMZUuj8cZkU1MzeTUmQY9Rlit/lG4ApWqq3+9TtdI4w3IiDWFDPb6IaX3udM+xs/O/v6Bx
3dU1qGHurm1biz4IrL+4e9fRpXKBFj2ra98d3vB0/Qtrn/9VvOjVjnm/2bH45cU+UQjFyvj1M2d3
ZgKZn7ab3U/UbLnz9Y7ZLeh6hS5XLEos6Hpqyewf4oy9NHuTGQMdh+hurOKzYOp3cgz2WbzLTs92
INmBbAcKBKcxsMdp8kM1KW6TkIRxXkpthIrL4dXdXEB3uJHo51wYLY7sLOfBO8vJeGc5sgt/vvQx
3pwxeThdjw9Iyeb8Ag+K6I8VPqatKFyhdRV2afvp/cxbwhH5SMjjEoJ8D72W6XFu9mwUtgvveE4V
9POnPB7Vs9PzD5oRo6ukDdI2iZEQyNKM11J4Ul0wrX3UQeoGdQfKFElyUw/nqMPU5/BAvi1CyU5d
pmRJMdFF9B8Nw7r9z2VU9tbUZVTMbUQQohBCpmiQNUJmHnJk5lcNNeVUMQO6MNXIxFpCCzDVKIS/
BS3U/baY/LaY/HkxlVj+2AUORbg2juZEPADH4wE44pJ4gcnlXO6+fourCyeHcXU7TScPlZPe1L6i
tH3Zk5CJUPZcSyd8umncwGeyHyASQFlOj8A/VkUGpTOdKHdr2OShkveCYr2OACigr9fhdnuJFNzc
VPXYgA8QAdKwCigl6W0C6DUujiWQg51pPV50+3dXH3y56fPdv70WORbc9uSuo0de6/kZ2qENXEBF
iH8f0S8fOxRe1/uHT6989ApkoHlA7mdQbylUEV1IMtBLPO0QyoSk8LjgbPQ16ivp7/DLfSv0NfRz
ztUFz/q69HORS87LhdeDo4Wjvtvav4OjRTci2YgaiRihVrU11B7aGNkX4WromFCjzqIbhXZ6rjDP
t1BfyVvCGmGU/ad6D42LMvIzoluWqDBwo1C8H8w8AEDczTkmABGwjRxqlAZEDdkY9VlUmSKB5z+8
VPpG3GKWVCbLFxUkK6bSpWxXHBETSyViYvEoXpwDFJJRsFkqLBaWEiCfDWa/gEuBCUXETED7FvF9
CO72YbSUIXt2/ZbyA69NmdemzJujrN/yxjg534frVUzeI9aH3AXuMy7LOTB9SziGKyYSJkbNFeek
TYgkyZILESKDxcml04orsGdjEYZwclqRlM60ygTMSaN1BFdaY22t+FCwKWPwwIrBiI8zfuDL5MF3
kShSvDtMuHNzEgXAAXEN3lQbrtZLGrHlgufmaAMnRgQ1XP5EWaZl9fC2y5t7Lr3a9Wbi5OSM9ze/
+Ot3f7zl0M5f7v368AHE7Fk2hxbvzaO95z/5/cdXzw9TQFw71DzF4JV+IE4lxGkRSvfTHUzamS7o
cK9m1jk3FKx2u/w4G5OlhsBcjqMiHZ/LvX913vNNhBx13lnBOn2Od1Fojr7M+3Rwud7tfSHUrW9h
t/gn6ImATKlIEjRtqdqlblQZVZf2yQdlWpYdYZ3nqDP0UaxVUgognJzJVsvgOW8Ugo9pQNidKaq0
afW3ZpN30tJM+NVxjdTHAmYEz0/ARQ/eMQEPWlBelfxAQEIoAq2TZfEkfh/AZUAERdQhu0Dpt9SG
qXwg27W5nOPKLLTkGGfGqpI2LzZmeZsyDYubMQ0hnSCUMzWdwKMSkACh5un1uZE2SIE+An2A00QG
9y3K1ehjk5C0R4h1pVsnM60Ip3UMEUqTrI4ym8JmEUVS1HbIBs7afHCOukixkBBkFTMm9MqUXCvT
hYzMOwrz9saHib3xeXvzplY9k04YSkMinZlmcTLVUE8pPq5ExcihkjhJ98wzZ6pvnf78wW3ku3YZ
iej+Tf7Ejmf3Tl6ll3larN0vvYcs7XAfiiAG/Zfsqo9t4jzj73s+3/nu/HFnO+c720mM7djGCZDa
Jlloih0+BpQBHRSXD4cyymeaFEjYOkaQYHxkVT/WFRVaqWoLQ23XIQEJrJQVlU0D1JWpTJo6TdNK
Kxj7o0NCFUMrUuI9z3t2MCzK4/d3d+/73vve+zy/5/c4aWrsi7Fv1cjxsxvpq/tnbnwHs/UQIbYb
4IE6vcH8z2e3CT7uPfWMes32L98t2x2fwEOdWIgqrtx2lb6mXjG+NMoGH3H43X7dG7aLVNBdssvt
dN9HQu4aF3FXCakQLrrjRgF9zGDko6QQK34kGwUFqIZnpTABqkRZD6QkRj4KU8xw/S3KVEAyilC4
vlNgSUopZNtyZYXCv7LQQG8L5tpyJ4xbBrfFeNs4YZw3eMPGZev0Kj/pVc/Sqx6kN1FW4mmaVeKd
qlR/dwsBXCJhCwOGUBBX6r67yJiAOKbEeVb64du9sJxb8IVJBFzgS8KThQH1TvfWe/TEBGTn7U6m
LWsfwN9NVih2QnGYz9/UOii62sztBV3QJNkhi7JNUBPA0SHqkb0hSpohe6Z3QxolQHqhguSSdZkK
NjskztbhXrulIfP5PCvksnVtFYWoxbSclTK1oSM//Mfqw4+p8qn003MH3uUTh47P3rIgs3N0gNv/
TF/XK5dHPwK+mgV8lQRvcRGTltFfflNn4IZ9WH0h8GD1tQ6RyR54Rdl0zhHmOorCcscGYZPDkVOn
eafpU43Z6nzvfH22UbKXpMVqt7dbX2z02fuktWqft09fazxL6yTB7lppe9z+uLzS2WtbZ18n9zrl
QJgXtbCi+MHd7rmYvybn+atuWFCL/niI5bcQczcRyMjKbyLLbBWxCP7NChwGGDUgwENlgFEGo8R4
U65VpERUxQjQznhBg3LoaoiGsI+CZAbYXXUyd9W33BWp1QUxQJxuWATxsiKM6VYSZk7FWIqwioQ4
0d+JztyqAK9uJHk4gqoUI9V5ibOSXMlDQSQ0JsO67/MkoLPuO83d3ff7F9NiwGCYBGeWlhWkJfYl
0hr7Gomn3csJE2MnFc3KhQofYCTFV0gKHMmntoMfkTo/4ydfTSacdfS5C3+n+o6vn786dvPD4aH9
wyP7hoY5H02+9KOxr0b/9PVPaQN1Xf708p8vfPpHiJB9kAovgldpVGQc9PAUH1V5GuNz/Ex+Cb+e
38YLkuaQHJLLp0kuYnNQJSwA8RBZSr3soI5oxEd9XFSrxrNW/fha9SNpLLDPF9QHgxIlTCXI/1vQ
aoJcYOeBJS47BqQhncW5wA6ECXey0Dvnngq2ZAiLalC2t/uvkzwL3g6NVYAdHUT9ZMi98w+oPPpp
NxSAEKOSTVDO2NqGewUrSDP3ghS+LiharOkgPvcdmb4pv3LV9BkzHl7lb+ATh7fOnfZuck5+df/o
X5DH86BdT8I3bOUb8BuOBKrfwqgCE0BXO4uQVE20JGtwogY31eB4DY7V4GgNnlCDI+OEP1jko/7o
NOlRaVa8GF0XHZRekvbG3/H9uuX3NpcUCBqB1vktnwfsIW4px6kZKhslR0kqySWl5Cy5ehw9Uo/c
o/Q4e1ynEqeSnmQinoxPbIuvkJcraxNrU9ti2+K74gfkN5yvpA61vNp6VP6V85fJo6mRxIWEnoIz
Y+EcrYJYFcSrgPXBA41WQawK4lVQf6b8RcHb0LHCkWxyynwwkqjjlcn1QSwBo2YLE9Fm3lxkPmke
Nz8zBY/ZaG42r5p8o/lzkzPPgRvVgYczfVXwY3eVFiin0iuUI1SlHOqtEb+eY7pLdWs5SieX6nvr
ufpwncjjMnAQgBvMFxEUfOiLfHiy0hikwbhZ8Bm5DA7PILuZhvWL9GLq6M5mBEeaERxlqrgrk4kg
fNolsUMzuZVErFLqSFGMp2G+0+GOK2maxlfjNGnkeZybAZwmjfoOZ0r/tnroI8V0kK1lAqi91Znz
GS6f2ZXhMigm44QtiqgsfCLWMXBLGcAVIvgAFxmpsKVejMQ9jKY9bCOeCPb3YNr140I8blyFh5UG
HoFFe0EreqJXCc2TRcCX5kMVlde9dcHtGvZrVqHtX8iSL7u5FbXe7RqKxGIV2vzNraD6MLb7Ia5H
WQPRDP8Q1AErLxeSkxpidn9LQlO9qk+1CVFXJESklBii9knw0+CHywnuWIhEYy6nY6IcoqmkJAvN
fIg0qvWYwZtVyPfWD8XXp5t3795NamoZ2t0PTD1+AzuFCjKhtF5JJOon88DPH/ROVsxgsK6ecXWd
xShTsvlmqHiyWseULNJ2u24xdTKRnMxNzbW1t1lyQLSUgD8AyiDQwFm8nsgPe57bMfjjqU0HLr6+
qOs76V8s2XluhXbCObBpsEfXp4T2fnyouOnizs/+Rh8JP92/btYjMaMpM2/3wjnbU43Nc3dsMBaX
FrfHwvU+OZ7tGiyteOuJY8BW8fI3XNr+OgnQZ5CtuiLEWR4bpw+lBjtqsFiDhRosQ/jEEjkJfS4O
YJdJCXW6ZGojuio1e2RBD9sUjxolUeq6V51WidErW24TLXqbnLQsOmZLs1eLW8Rd4ssiTyDVvy2e
EM+LV0RBxKoGs4WI/sp0xJnyN6cwa4iYSJimQMDqDks/WiKioDA5IVS0hCWWxLNcDzFo28n1tTkE
jvr2dfWmpQ7V67c7Wd06ClUrOF02q36CRUelK9SuUFdkTmHpSgAUpF4qu1yaW5bO2CZBTSGgC2Qz
mSmVpN0UsEpYLTY1q7VDlolpfvQHTg1+r3NNb8vevSOnT/uaUw2H31KnrzvCPfUCFXvHXnxh9MCC
liDmGUJEQoaDm2896en8jyPkIPh35Foyje3ne6//++7x0Q0qcXwfLiXojyPAxOljC8lMldw9fvcn
qjVPzZ92UKjc4jrG7QT3V7KKHyB1YPPEevKsvUiW0SGyAph0EM1WTwr8MdIPfd+H6y5oz+JY6L8U
7CpYJ1gRLFi5twDsB2BL8Br6fohjYY4tOA9rB8gKRyPZbC+WR+F9B+2XyHqwNwEf4a+R94QO0gfX
R2Hcxzwh7dgHxhwU3ievwf034PlTcO9NaJfB9WHAJRjXWsGS+CIxsQUT4P5EmOf5yn6Ttt+RNn6g
/BXsZTnM+SjYfnjHY9B+F2w+9PFBOwNsiF4iP6OXykfgObRkD7x/CO+Dzaq0c2GeffA8D+PicL0H
cBDWIUDrAZsAluKOkQ7OTz6Cdgrs/wlr32CXyEbc8/ieYP2VNf2/WWucX2vwznNgMa6j/E9opZq1
PWh7HrB5tizZBe3/uC//2KrKM44/95z3nHtBSSm0Gz/CUIcDRAotAX8MbXUFsfgLsK1BMlAb5qi4
CUqccVJWhQrUOJUGAbtCEFiLESZs2pjJlilDB2RmxTnZ4gSSKYtujLKw2p59nveeU66nYCnTf3aT
b77nee/74znP+/w6lWAwmObslfnmBklgr2e9I+Iq8Du101/AVaZCbkJOoOcMb4esURncaLEwaDfr
pME9Lpfz30N+He9Rgb3zwQkZ4/xdRvsXy2L8q5j9l4B69vyb9YcKuZXz8+Bx5oj1oaVgJWd9EtlJ
bYO8hHudzlmfajywfga4jnupAveoPpw/Rm2u954o67iCuYeZM0vB+FcteHf1SV2j69nr4tAPN5xi
2cCcWuz6PmxAruoQwfpZCP57g30GAh8MAXngCNgAKsGVYCoYwdnCua71V3xGfdP6B77h7caG6GZ9
Nv0O9fY+0zGzPtxLz7nQ3yqVIS7UPTVe1GfRZXu0t8aU+kzE1r8rrd9/rO+pPtXJxJ45KtepDjYG
8a2INe7QWeOhjpaixvJWqVafVf0iVruor1mbEBMhT8x417E2RmBX5Ouhr1dHHNmik++Wjew5x7+T
nNIgU8z9MsX9sdxp/iHF7kjJ88Yyxvswd5tzVKandsk47vJm5GdjvFqRbEnM83bxnk3Ys0Wew6b3
mRbnItOS8Lym4ENPEnu8JucR+9yF40jsSv+nrMj8r6fj5wLngNdEzmwKPvJagoD3eUpjInk0MRZc
EDHjPwNV4JLUqMTqVGXi5SRtoS9yHHzPFMmVXpFcZnZxP7nkeWKB8VLvr/KaW8tdtwTvJqqkymGP
ZK7c4dSR0zjLOSDVCt0f/n6GH33G5+K+FHHkr3HWnB/61FDYJ/72hTgc4gRoxY+m4pMDtTZofrb1
gRwNlob+Oq/TP/fI8/CKyD9jfjov5p/nx/0yzra2kN+jOOWsx6P31/yoOU5zpOY5zTPR/DhnrF/u
NOLHmof3yswwri8KUYKOH4SxTx7mvsuDwJ8cbPZ3BFvcfsEWv4DnPwIv2IwtHuysqbcFHWE9HRnV
0vS4nBfVUW+czA/z2Uabb47JM7aOlln9evkvymKvjXsnB1p9G8IYxJ7oXWnmYPM1spL3GOguIx4Z
B7PUJvYuRAZoXdCa6K7CzlqLaqXafY9+QdeOk2xbLwqlHN332DFqqrKOeeWywT8qBaaUXLtLKvSu
9D1UH7371APSJ5VLnmiRfPNT5uRKb+Y1WBsUyWbrF7q2UkRtkbxLkvjsTczR/dbbNUXSL7THRmsL
u55eRH1YbcGefq5Mt/3EUfmJVyrlxND6ZJWs5+NKiIst7PE860pUF9YNsvV6ldxOfNWQm2rIOWL9
f2bQ5jbxPg+S14FbhY2aZIBXhQ0r7bsXm3SOXabx4zbKN9RH/FXkYe0nVslyM0om+ZVSy1itR57k
3BWMPUr8jiJ2H2f90DBvC2c/zriuLdReRnsEjZdkkfT3q2wfIFYH7VM43/1Q1rslUoMfX5NahR0e
k9FyVr9ga5oTNJjBPrev/BC+zBknb3PCeTxrDX3FLJHvmjIpcPOJ3WwZbX5PrJ6UtW6WzDZvylrz
sqxU2fSXEe423n8HvaWO75dbdNx5G3m1zDQTWV8j95rZstDdju/9QXqbudw167wn8JNhrD/GviES
h2SmW0ZsLeX5JHWQefaMHcH1CjNFRtt1GbC6Rojp7EzlrUq4U/TV58/oi66dekY6nkY/+566L+t0
jlkrE7HTQXBxmjumObXSBBqcP8m33BvlB4ktQTNGnhzDlEzZjE88DPLMePkFWMLzpfAvwYtpmd5t
vLwHHmPvXfBL+l2gcK6VCcqM1YPV4K3ov0zoOacbz4Q3OGj+jLyTWgMSx4NmRXw+dp7AeRPMVUGz
Al8sUfiLJSe5SHLc4Yx/jXUx2RtMPO2UYa4E/+5Op88Dv/wMOxZlvmN0H/BXzgIHM/gC5bA2nLNu
5wruNxuMtfb9WHLTPiT9EweCd+CyxAHJdh/ABwFyHnL/yJ7RPTH+tB2P3Z9zbdChNo+Px+X4vXYn
Oy/J7ExEftDpD0/J1QpTyHwQl1N75GqF/zr/vd5VNpu7wUy5xF2jOuGDw7vK/s0yXOEMQ9dBuoaY
A53yfnIE0Ll2fR+5TqGxq3B28L0GOv8fL5MUp+wqE9Su7pr0/9H9RPcSvx/0yzf75Bp4OHwlPAMu
iTgzZuNxGx+Lcsnp5sRiI/9Me/4/gdh5E+wGb3zZZyUEXwV9gX+QPqSQPrKF/uR2qRZpJ5d8OgZs
Ig/dCr/DGNW7YyTow3M2Y9+BnxNpa+V5AeMtaQSOGSwNYV85kLGfh2tT4X4z0uvbfivyn+PgxfT6
tkYwj+d/Aup525/hX8Grmf8R6x6Ff53+v3028iLwKvJR5HvAbTw/CefCl4L+oB/r6xTaj3T5Dv3C
+fTfH2fL9Cx3oedQuBl+OP4NcdYc3Wc3HP/WiO6/O/bCb4munLYD30wf0Pdty/z2+bxvnIi5z45M
mNKgnZ7yfO2jtZfV/tn2jyHb7zfbx3KuSE7E6NNL+1ftnbV/hXX/Zb5n9SlFrzlWr7BuZObWxHGp
B33B4JArmXPSGR7sI/dk4d+tfBttVCDjY1KWRrCf2pVFrXuNvNsK70UeArdGNS3KrV1ybDc17YuW
e1ojz6GmFoSYHcOZxiNcHuJ6RbwW9xTd1e5zruVnqNGZdfp/laM6H6HX1VKgSBYFzYp4X9qlD+hG
7q7P7akc7zt6LMf6kkiOo8v/cd+L+plBMqgTsbjrKfTbwuw81ftHOsTjuDPeQhkbTcoEeWBEWEM3
gH+RM4YAalTwFPIjqU+lIPWCFCDXAOpiUAgq9D94QqJWxDkRtCP/CLmv2Wvn3haiojt/jvut9ue2
P8RmNg8+qfrLGPBN0A9sB/Oju9ZvSM5+36Hq6neumRm0mn0g1gN2y+PlPvACchZyFrk4x88mbxfJ
Zp6Xwr3h3uT3aWAuufwWb3fQ7j9k55Tw32Rzv0whz99rWtjzUPAbcvp80yFZyfNlGbWzmho6lP/r
WFuDnAsPSF4gG9nnZdav0BrgH6MOllMPe2nt4NwyqQeVzL3ZHJNn3POkmH2GmUOSE/JYr03u0Hrl
50lfrXmMjYRHWD5EbzxLikEh+03UWuM24SNHWEv9cXLkVfcmedVslQXst613o9T32i31qQqZnFos
dX6j1LnrpJqxdcknZJ0/SpbpHlFd1ZoYPdNMJZJDbM2fjzwo5Gujd473BFa/WXIDdXlD5rnRutRk
aukx3p+zVdfuehtq/HJQwXsY+ET8PLWR0xj8Ls1yd1jjF3XW/DKZhZ6FalNr21kyzX2E7z6t6Xr+
JviAfNssBaGN47pEZ2GX9jP1QlFvwnM5mKL3bEHtVr+yvpRGqfehva/r9c68PsRwlt5/8Irax+JB
5jsy0HwC8CHVU4F/DQTlzrvMrydG7yVW8EHzND1TozwagrnBJrvuHruu2J8BCtFrLusag8OnII+d
QnDYlMpyC+yl9+fkBK/AC5y3OOsKybL2W4hOK+VWM4d+SOS/rJcNbJbVFcfP+3y2ZYB8dGkbKC50
wGCK4HRDZEJ1BSpCWS0DdKJS6sfED+rM1IiosIJoNsS5guhgAsGCG4nODyRhmwPFbaibTM2YGjcg
wjJNZAYt9Nnv3Huft2/fUppF3uSX89773Pvc+9yPc/6njHXU7y4JhlGv5/NSYP/hdsoV5tudNWs1
nn69ZbL5RjSVf6YIzwr8saqvWDfXNn5OquLxnNceUhU+LRX+TeiX3+LrBrB31exrb7nP/0DKg2/J
XL+P1CuZqmRP5jAWpa54h6h/B7uCcpPM9t6SK1ivRXAD3M93txpeRSsA9+VmxzzFa8l8hefvwiz3
f6D9T90YedaQvqNFNuZAu+QDaPUeZuxKqfeeZ4y1zIVx/NO4f3nQ52rHMDfOxOB73LGOXJgPfdWO
zId6tV/Nx9WX5UO92sp8qK88wTy6atfVPLqqH5IP9UNOwTy6eu/gfKgffJL5XZwP9Rf/H/Poap0r
8qG+4iTzmJoP9VPz54F/Io9t20VuugX7tov3H2KnYDl9bX/gP/lF0uDKb7t2P4dmWAVHoNKBz0vm
0KYJ+2/YCNPbaduNHSDml46TrIThMMOOpX3bXrRjG9yYbU/b/sefwr6SV/4yHLDjmbHV927DDobV
7vuWunG32rm3rWxv3zbAfqPpt7WdxIfv0n8Qtradtt9Ykpewv4J98LKbl/4vd+uh3/ycvqvdL8jn
wWp8xpUixOr+cYu1wZ0yxfjc1zrEqpuNP/ynbDL+LsH3nS+jo57okMekUnWD+vBwnmm/PKwnNgn6
BK1g9ML7EgY7pTTcL3OCG+Ui/1l08UT8LWMEP5PL9N3qt1Vz+MvkEqjRGIbf1Fh4MT63qegZo19O
o03/4CDzXSU7yNmWhjMlQ/8oPpPyT4nr6+RH4Z1yR8F82RF9zFz3SgPxalA0R8aE98qkNLeN5kth
+CV0gbMFzTI3/jr1LXJ6cEAGFDah616XGtbsm+nYqdYKYulPve7Zdnf+4NgImGLmzHzRYUEwAj2G
ZjLx+vusSb2Zz1SNn8GTEviLRMKPiN2TZVhciPYaKUsLS2Rt9CnfEaFTR8jg7JjoAL9FhsTXyKiw
SYaEdezRCHTzv1jnS6Uotfj2HfFcicPZSSvabV1wrdGLfYPNUmK0A7Era9N3tEhzuEge4Eycma9r
Uh2V1RSh2eO6dIzs92A1fma/39kcvWHWnfrqoFhGhMWcHXRHJ+vmFBfLJtouT/VsvEOqYx+7URqi
H0tteAnr0k9q45ekbzxRSlSfxbHRdfM1RoefoUVrZQh7cyGQUyTXA/cvmeXueCP79xZczmW8wtWB
7nnSg/o615fnyQ9tnmHa8Cy53/2/0FFv22jf4/9w7dUftDnes5g85PRcnWr0qNXWHW1W15vzU9Wt
zdOfXVm9w5yRflk9nOrJznYl9tq0jM57jzv6EH1PhyjV0fmWto+gURZaa7Sh2g3OPqFnTbVevs3q
6i5sV/o1R8fae5Zaq6uX5NkrnB2S6uvubFZ/d7BJ4sq9snq9OztDCo3udDZ+EH+IBk2tq++dY6NO
+VOuNXsivtOxqt+rWfdlwVq06EnQc6dE93IGOjJD8VfI1SciIpIo8Q0dcTq/S6Kf0A8KBuWTfKIw
53ssyaOOw45fKn5GRAlW5JN8YtDc7QREjzEuFJxhiXdbjP4/CayBxETSgr7GRhoLTwoqQ4k/cixP
SRIlXfd0HdN14dsO8N3XZuecju/e+0X38Yvuy6n67pPNPRfu5H5IbaSccN7sj+ETi/on2vZzRKzr
i7AZXnWsVLgrZdzb//rzOE+Q26fTOXiQ3FRxZb2LSoSyi0vsPSBHOmSRWSdan3iePX/xULtOYatc
5bTXfr6jp/p3xfm+isIaWWd8wQwZpL6FuKv3/Kzgd9LQUfMltZybUr0bxMmQ9n3CW6XK+2PyRHgH
PuHj5JXwbrQAMNZix27HWqv9kl9jzzPrPEZewD6ZC7ltuaJtbJxMNji9rTp2gaXtoK1vn1fqe/2j
fEerlKpuCMZLqdEv10kTlPqHeY5e4BuW+lfJBI0Z/rloK/SH6gVzF0T6Be9iLT1Zlxp/U879HiGL
gzrWCVQTmX3aRQzQ9rtM/zLnF4fpWP4P8ON/l0HeYdrxjH5L9R3hM3KH6iKfjCKcxrmYTtvpyRt+
M3aS4yjcyHxnyHXeYjnDb5DR3uvonWLqb4Gb+F+C7Q2zYA3cJqNMfSvn5HPagx9Q/hM2lHoY7X3m
eMCizzOVUu89K/Vo4nreZ9vtNX0skdRnfm/GqvcreR/tPDIlH0XhF7v/Ec+X0G8Hwo33ZQ7bd5ln
aZvC9jbxXVJV1CBV/n3YkeiICcm2zIdyfjBb+rCnPeEc9nqPyx80b3oNWK3kccqvek/LHMX/UKoN
q5Nt/lBwNnxKrgvHyRnhcfTBPs7B+3J++Kk8Gl4gw6Ia4tgWWSA5v6AxOca5q/X2Jnsym5hLDtFM
KS7cKRPZQynQts56mwGbqTPxSDjTkiHbks32neQdvrtrRufGF8l93OMqsL7Iaq3+9C3Su8f/aSbG
bpCBvMmzOVQbq5XofajFNxTRZ7q7w9M5T+v0bDktqBpzi/cXzWuZS1myzauRctf3MpuXJgvhYajm
vWvIY85TMkeSR5Sc8jblVJeDe+Tc4BwYx/9xncvs52hHh72NHpJvK8EFtFNmy3B/tfa1e91dOZom
QxWvgjHKTlC+m7zuNnJD7Vvefdl7RgYr5rwN7Vzmm76jZL+7u3JPzhak5y17prv6/sZENXIVcWVH
1JLspfwcrMC/rlcCSRKeveD02jK/B3f7VnLQyVJhfTi+sVHK8V/lwQOcPXS/fZ/0wzdVqm/Ezx/T
GOHiXxPvbVVd6pfg/9WXoRXd+zVPmqT9Vefj9yar7wu/IXXqa9WnmpiBFtU8DX9Tr77F2y1ne8es
D8rsNYj6Ir8PvqOSOVYaa/57w51PqZRC72y+ZaXF753sNj6pl/VZvvC+59WfEX+tvxrol1n/5b1p
fZD3Lm1SjsAhGc1d2G4xudmTJjZ9bv2k8YX4af2vuYvLn3rrHcRfTOhOLzltuTnPvpja7nSh67PZ
9encfrbUBns4J2vZO43JL8vXwpnSI5t3iZyt6x8eMPnKJJ6rBmnX+RrzNE6afWKP6tBEhyWTnxcE
e6VW9zYcL301drFOu+DNHDvHYuK0ruNBdFkRcXeKGQMfx/uLOadH3Dw1PynlnC7P5n5pLpfmGiJj
g8dlvX8NWugsmeTi/fac/Ha9oucs3C0bNGdTS92faTfJxg0TQ3bC6/AG/Af+BvtEjr/Dns7Udcnm
Q78QfecL4T7Wa5cUFkyR0mib1Sv+IlmQaZLZCnNbpVC/NUuLlOJ6q2AsjIIZcJGz+FyZbPx8I+vd
KJf7fdEHNZyTKhlHeRT/xwV3odWHUt+Ilr5dLsXW+aWsQyOxsdHo69FaFyyk3Uj2t5H9v1Pqwp1y
ffhXmRselY2F1bIRu8b3ZGw4QdbzjVcGC6RK8zR0RZNXRL7WKFOJD73QPkt0LmY+tNdn5t7eQkxb
Js3BSzw7iL0JCohjIyl/LM2ZQ9L8P/bLPTjq6orj393fYzc8IhASEEiyAo3A0JgEFW0jlBAiREDM
BCOPkcljQ2IeG9mggtVpoSGM1QyWmQhELDblEUphGHm09AGDCi1tqbWFzqDt0CKFWlodRCtV8+v3
3P3tsizaVaed/nOT+ey5r9+5577OPdcIc53Yxvgxy4+y/gJlPuubXPkay5roHwaw3R/wtFkHvz2P
PicEv9lIUpFt801FP7OQOm7jN/mqn3O8E1/EGmXDxyE2hVybXDxvOpdoUwflPnIqaksiyo54xI5E
3fGcc+1J6E+QuYhH5sW8iFz230l+Qn5HmyaRdmvq1fMVj9ga492r7VZzGEXmMhGZ2yip7jx/DDLv
8ahxN15ZhxicA1kTtRbuHjB2sm9Jy7ilzdsRG2UPqD0yH97o+nNPzlR2/0XZu878Ah5QtrEfq4S+
gGvPuZA2ZTGdkf3Uob6TdqxTayi2yTzvwlhlw1G1t0qlX6mX+bQv4Tp7H9ucYh8ZbFONUapv0b0q
Yp/6tp4+jLrsctZn8646yzIhI1Kn7HfHFbNd1l9sp06rf8R2xpLreEZn2mOoK4vtv8q4UvbIXHIE
JfYutVaDjFFYR38wkjSIXyA3kCFuWS6ZQcaRCW5e5Eh1jj8tct4/Le8rnxDPs8kQf5BAQWKZmeHs
iM+L/yCzvfWUm1Xal0yP+CjxT8ngPbY16r8S+xBfJjAGSI35tXg2oSJu/tXcm//gffR3bBTsvoxp
TqDNOoM2bw79eg715mA8ySLVJI8MJ5kuY926HDfvJ2P6daIktZ/cAc6B1FeVlNibJ8rhO8bpShYD
J8Z60RgwsR3jxBc9J51FlH+lbLOG817Yy/guGnsnyRtLuQZxMMadFk8yu66JSX+NLwqxGHiPc9qC
c9rsdM6bbzjnfQsZE55CgS+VMg23990vr5Te8ZyTD5loIGGRiXYmi8U/67jZ37sqpvhV5M1lbEeO
dYixyA43/ghjPt+lxZSPM5/p24lBdjqG2rPxnPVTtPt6kGKfQrYbq6zyP4n+vjQMTUnlPXuccYjE
MnMpuxl/hbhXGVMLKv4eiYPGTdybB+hXWhlLzeO90oU+6n0o78HXGcOswV2Mtc+y/2KJnTwlznGJ
W9nfQomLqKveLsT2vvc6h/2lzqC+/VDAfVZ81Zv1JLyebYyDt/HMqDIM897Dd9g2jI0rm+7Ksa6M
ljcreQnPkQFkeEQ6l725eIrpBs96vhUOMi4+qGKR6xhDpwnmjc4/BZnz/4T5NYwWjLNcw7h00vfi
1qtJfMeZW+knSCyf8K5KfKclPSP7efaE6DlpQInAPZQViS9F9p6jvJvyMuVeUkbuTEjLXt8Skc4o
MppUuHwrgZvY9veUN5P8aHzP9A4jn++2gTxnv0GnNRpjpIyM8z6F75FNZjFjxDtIopwWl5b5YXvj
RvrBPAz2LEcudTxk34d0603uv1+SAyjhXi9R6R2MH35GeYz7uxXfVXXTsNm8HZt9QWzmnu7inu2i
Dy20tuAJ9d0GdNkp/OZHeNra7lyw1vNsia51aLcr2O486zPdvugvrTsZ6zQx3YB6M0CdQzHHegy3
2Xzz2dfT3nzsY0za6FngLPNscJ73ZiPbc8rZY45Akd2DFYwr281uxtE9lE1kMaYbb1Gy3Kpw65jm
m7Dd/j7zFcw3ReoZr5So9CPoYH6F57DTbTY5Lxlb+D5ivfcIBqg+RmGRuVJ9I/2tsLe4/T6IIs5l
u8ovdt43WziedzjGPers/9C7DiP9XjQK1iso8Z/ACsUrEdk3nd+FMcKP6J8zK/EceO7HWu8LWCT4
f45Jgv0y9//L1/pDbxG/W4svRe8N6jtOPzXROuocMhuc7j7dgL+D/mQufU8bpfues1lulzLGKUGa
bUcw7+Kb8iIm2ws4zvkYZ2yQ8+j69wR/L28zjrfJswPzKRdQzo6+66g7z7J4zhv4bhJu4D4Udrv4
I7FtyiTnI99Myq9TzkOpfyxlNkp9L9A3nr5WUv89HFsmfeMgSjv6fozlb0Gn91G+acMYxP1j27xl
6EPhsxkP3YriPn9DtW8jilX7MAbaz2Ow1cX5fIQ+eTmJvg1P4j7rA+6ZLRhjTGfsvFWdo0J+l2LC
eSP6djRrUGi8Qx8X0WdH9Zpp9PvFaDfWYI5gGpx74TG+44h3I3U9wH1+GCt9u7lnH+Te2Y42G7wX
KukbjytbhlHXDOMOHJQ68wd8CwrfVm/CGRzfSruW5/IY+3HbWDmo5TzMkXUwOjDYHoVnuWbt3Av/
ot2O1Kn1qeO4lyPL4qtV7iprPu+aCdzH+ylrKN08bchiew/Hlc5v06lXbBIpcWy6uqPAc9vKsZ3g
+r/OeV5G3ffCVO/efEy2/szYX9ZpA57026iyJ6OCsfREo5MxeCbjkO3ca2dwP9vMk3uR9hxMeRRD
zE3OW76beSf+lj4i7Fy2ytFH3athFHkvMn2Evuxt5z2b4zM7CMdlVrFtFdfwDNZyjcpIuYJrLphB
7sXXVJzeZtpoM3o4BxayjF9wDdfz/jzqfId6ZP9cL3Yp2+QtOIFret55zzxETvBdASfDPEHQe57j
lzg/1xiIGvrXLM8H1FdGvS9htR3AavZfx70tOufKO0fNBecm8cx/Ut5I53lLvxIXXhMvJbsTb2Fs
R67EQ727eXbpfpxJTI8gTzBdQCaQARE++gbw4Sqykukg2+RT7o/ceb2LjT/iT/5W9Od/5K/xv8CB
/x2Mj+B99bPBGPFzk7I6Qr8iPk72AANvTU5aDQ/YgStk9ALDedtn1mo0Go1Go9FoNBqNRqPRaDQa
jUaj0Wg0Go1Go9FoNBqNRqPRaDQajUaj0Wg0Go1Go9FoNBqNRqPRaDQazf8FDzDwGe9eFOIYfPBi
AL6CVYA1xLoAi3kgFTv5axB4h8mvSvtQw5xH5eHp733cTRvoZ3zTTZtMP+Ombaa73bQP+cYutvSY
KdSZZZx20x4MtXrdtBepdoabNjDUHu2mTaYL3bTNdLmb9qHKbkQPAihAHvIxkaly1CFIOQshNJNW
LEOLKpnK3BKm5beS5fWqRS5rpqCR/wGUsWwxv29FWOWClEG2foi/Naplf/5PZ66KpUE8zJK7lfZm
9hvtZya1L6PupdQToN4QddajmulqpltYtyTWTyBmfR4mMJUTy03EeGVDJTW0sG2A/VayH9FRjQa3
bSlzdSyV2qW0MRwbk8xDvRpH4yfaU6vmIoAi5qtYI6WVaiauHmNET8gdaUD1spS11Wq8kqul7of5
7RJVspStatTMBVgeXY8ZtElmp15916zm9svq+6BqEUQT+5SZrlG/AdeiaNuAKg+zROavJbaCV8Yh
9a20op5fhjkLU1TLyIiio6hUNskOqFE9is0NanS1n2f39AQK8vInBsrrgoFZoeZQ67KWYGBqaElL
aElla32oOTcwpbExUFa/uK41HCgLhoP/Zr96Y9o47/D7vkdtAyU2XgKkGN+BwWk4ElInqZOQwtmx
R1J3ghCa2YwFjLkUEhojDEGdtOQiLVKjrqHqpGzLpBH1w1S1qnKcK2YgEpnYupV1S7R1mZT+o90+
rB86mn5Yl0/e8945/7RE2j5s0qTd+fk9v/f3e94/9957753HjquDm6Wysr3qwJg6KXWMqse6eZ2n
ks+lJ8alkfQzwykplR59bozXkXjzW7ZKfk7BJqkrOTI6JO1NHkulU0cRfTI9dEzaOzGY4T11Dw1n
pJG72zmcHpPCwwMjw6nkiFToEZo0OpUy6YmxlAo6PD6ZHFOliWOD6pg0zq9jX7f01HBKPZZRW6SM
qkrqswPq4KA6KI1YUWlQzaTGhkf5BZp9DKrjyeGRzOb9PR3RWJccGhtOjjzINw0fRVIaH0sOqs8m
x45K6cMPnsH/8vNdYuL/z/j/yjO+n/Tg/kRJDPMo3/XE87v7DEY5Yo74Qap/N373jvIf2U+sdy4h
+Q3kHLnPMdN9OlQqNPGT1ZEaIgqy0IgXuSg0GrYaMSc8mvVXiVcvCRvJCsCEjYZcI84JG4Qao0VU
coIv614XcIY2CRJevc2mlWDTwEVgESgifYIXcRfsSUADLgKLwFXAhje+18xKQBqYBlZ4RqgRPIYk
ukIbhPWoux6vdKdQSVaBPCBgnJXotZJ0AH3AFDAN2Ewdj6SBk8Ai8LmZUYRK4+WtGHul8YJJ2SMj
AbOYtIq93zSL2a8nLP7afosj+yzZLkv22DYrvDls8YYmi90NAY1zSVngcqhCqMBFVmDgo7CU/Zw4
KSUiuSCsIzrABFshogjubL0/ML0oFBEqMIFiBYj5ywI1ysoDoRKWZ6vETUT2V/aZlWGfZdeUB6ZD
T7JPyEVgERDYJzg/Zh+Tk2yFzzlsGzANLAJXgFXAxlZwfoTzQ/YhcbIPSDPQBvQB08AisArY2Qew
LvY+//AyLffbAMbeh3Wx93BZ78E62XV419l1DO33RnBnYM505OaCIzYUnMrqguOuCOTY74ybG7Gi
/LjTWFELQh1pJVuFOqPhMSy/KmP3sJhjf8pKsnghtIW9S3QAn5SwLkACOoF+YBSwwbsG7xrRgJeA
C4AOYJXBugCJLQPvANfIFkABOgEHu2qgmxy7YvjDYqiC/Zb9klRixn/DfmXyO+wtk3/NfmHy22Av
eJm9ZXhFEipFnqCOC+wCNyP/EPtZtt4t5kPlbBFzJ8I2A21AB9AHTAE2tsjqjEHRjUYWyLKDQGmQ
T03+CXnFQZQjouLfgwUocePf9QQ8mGlp2s8U/7kfosiN/+zL8Ljxf+e78Ljxf+sUPG78I8fhceMf
PAKPG39PHzxu/B3d8GBy7Mc/rd8gBjuOUinkZJOYpUnM0iRmaZIUsUl+kptFfGw/MhobMWPnFXlj
o6jNU+0S1bqo9grVVKqdoNopqu2m2iGqyVTzUM1LNYVqC3QHpkKjypv3FHcqVVRbptobVMtQzU+1
BqrVU02iQSXHao19W02KmpQN8YcO/EQrdh8nq8WM1mLN12JPWIS9AuTNkgKRVGeJ13s512Ub26zy
5l2BNB6fJVRcwm1YIh8BRbhBS1hGS2hkCQ04YduAPuAysArkARvUdRj4lGmdsM1AG9AHnARWAZs5
nFWAkXRhiBfNgfFBNxcG3gEUsSWcdThrWa1S4/K4ZNdeYcpDnV7a4c17WZBUVGDLdpc7ynO0bPbL
sr9/WUaKQ8XsLJviWzd7qcBTxk1s3fQHhn9BDK2j3yfeIqw8upP4aQN4B8mY5e3E4+C8jXjY6+CA
4TmIak7D3yTO0zW81qx40/Nn8VNPjsH9i2dB/KOUK6KG+AdEXp8V3/WcEd9uzjkQueTPUdC8ZErn
PDvEN5ZN6SkkzhviCU6z4rc97eJRj5lQrcShDEqKU+zy94h70V7EMyAqGbQ5K7Z5Dom7LdV2XmdW
3IIhyJbbiMFu9Jid+ryIvCluf/rpYI4OKU32c/a4vcP+uD1gb7LX2kV7jb3avtbhdrgcaxwPO0oc
DofNUeRgDuJYm8uvKDL+fZK1NhcnWxG3RabvYtzy/69866MOhm8n/StCjMUOhGlMv5wisQFJ/9sB
X46W7O/RH/KFqe6OkVh3WN8hx3L2fJcelGO6vfMb8RlKzyYQ1dnzOUq64zma56HT1bp7T3yOUFp+
+sVqzo+efjGRIFUVx9uq2tyt5Tu/GrmP6S9Y+c5RdY9fE9bPxQ7Eje2vvVYTTugB08/n4cf07x2Q
euNz9Av6eTQyR29wSsTnhFb6RbSLx4XWSCIRy9GDpo5I9AZ0WDo3TJ0Db2muI5LDa+nOW7oG1Ieu
nhN0xcWkwdQ1FBebuiLKdTOZ+mhkpr7e1FTiQ87UZCqluzXLDdA0NJiaCo0sm5rlCo1r9FZT4vFA
4vWYEvoI8ZgSD33ElBy8I2kuSM7clpwxexLoHY3H0pSt3NKUrUAj/6uHGpZlmm1JpHqjqi/a74uq
QL/+wvGhKl0bkKSZVIInJF3w9w+khjgnVT3hUyN6yheRZlp675Pu5ekWX2SG9Ea74zO9ihoxWpSW
qC8ZSWTbO7cF7+nrzO2+tnXep7FO3tg23ld78D7pIE+3876CvK8g76tdaTf7IuZS74zPOEg4safX
4iwrLcGy7a+uTYQrXKOt5hpuqa06UT2PT5dXSamc0B/2hfUygKc2hTaFeAqPFk+tQdhZSFWdaKmt
nqevFlIuhMt9YSKPT2QmSFV0OGL9MjgQGp/gE25ZOfOgA7moriQjmXFCYnrjgZjetr8nPmO3I9rP
L0nfdStWWhrN5S9bwc0I7uJBQbgt5LHdPFZcXBD+8/2fKPAe/hRobCFLFS/FX8KEoHtj3Qw7QncP
rrW3Jz6PDyv+rsgkcIEZKtPMrTYKw5ZlYpUJv+ZbGJ8oeIW5GC+wVRNVMrem5PbBJ0u+PWPjZrPm
dMq98dAa4XGhGX89RGELeBN4EzgADgjNitsvCiwoFjuCYmlJRLTbIv+QPMzUSG2AAAMA8kf8KQ0K
ZW5kc3RyZWFtDWVuZG9iag0zNDcgMCBvYmoNPDwvQXNjZW50IDEwNDAvQ2FwSGVpZ2h0IDcxNi9E
ZXNjZW50IC0zMjUvRmxhZ3MgMzIvRm9udEJCb3hbLTY2NSAtMzI1IDIwMDAgMTA0MF0vRm9udEZh
bWlseShBcmlhbCkvRm9udEZpbGUyIDM0OCAwIFIvRm9udE5hbWUvWU9QWFpTK0FyaWFsL0ZvbnRT
dHJldGNoL05vcm1hbC9Gb250V2VpZ2h0IDQwMC9JdGFsaWNBbmdsZSAwL1N0ZW1WIDg4L1R5cGUv
Rm9udERlc2NyaXB0b3IvWEhlaWdodCA1MTk+Pg1lbmRvYmoNMzQ4IDAgb2JqDTw8L0ZpbHRlci9G
bGF0ZURlY29kZS9MZW5ndGggMjQ4MjcvTGVuZ3RoMSA2MTQ5Nz4+c3RyZWFtDQpIiXyWe1zM+RrH
P8/85vdtmqaki0j1+83Ub6zLYuU4OK3N9Ti7i/Zw7GJRm0iK0BKL2rMsQnLLncoldBWK3Nc9UgmL
ma3Oso5jvLDWiz2mZs53qld79g/7fb2e5/s8z/f+nt/3+Q4IgCuSISBsxMhuPbw+HL+YR8xcwiPj
IuJnl/tdBSgE8AqPnJMg552uTQW8twFs+uT4KXG997TpDPhpAZfCKbHzJlOfC/uBDqVckqOjIiZZ
PhpdDozoy+frFc0DHsG+E7kfz/2g6LiExNHRx7g5Yj0wZGzsjMgIVc7RR8CGp9wPj4tIjPdZ5VzA
tzOcd5KnR8RFtXEddY770wGnBfEzZifYOyEduP/Y0R4/Kyo+s+gRtx/w/ei6QRCWURpEaMQtYjA/
RfumWqjCZJWHRlS5MLXKUdR16Go/g8RxfBZnLhg1bKCMUMj2erHa9gkFO/WjolCQ3W4H1EbxuGM1
eHOtgoMfh8P5cYt8uTA0B3mtUjn6/L7wRkEtMieNs9ZF5+rWyr21h6eXdxuftu182/v5B0iy3hAY
pBg7vNOxU+cu73bt1v29HsE9/9Trz7379P1LyPv9PgjtP2DgoMFD/jr0bx9+9PGw4SPCPvn7yFH/
GP3pZ2PGjvt8/ISJ4RH4InJS1OQp0VNjpsXGTZ8RP3PW7IQv58xNnDf/qwULFyUlf/3PbxYv+Xbp
suUpK1auSl2dtmbtuvUb0jdu2rwF27bv2JmRmbVr95692fv2H8gRcvPyCwoPFh06fKS45Oix0uMn
Tp46feYszp2/cPHS5StlV6+VX6+oRNWN6pu3bn+Pu/dM5h9qaqH2HMIPOogf1QmDsIjsKlk1RpUn
BAojhLlCkpAirBQyhQrhldpVPULsJo4WJ4pLxRRxtXhJfCy+ZH7M7pSkOaw5qbH7x/hP8z/nX+Zv
D0gK2Bnws+Qt+UuDpWHSp9IYaZw0XlooHZbOS9WSSXomvZRscivZIBvl7nJPua/cTx4kT5Dj5Xly
krxePi0/14t6T72P3qA36rvqh+tH6SfoF+s36PcZVAZmaGXwMHgbfA2SoaOhs2GoIcIQFagKdA/U
K1BUik5xV7yUtoqfEqR0UXoqIUqskqwsVpYpK5V1SqaSqxQppcoJ5bxyTalQ7ioPjSHGUOMAY7gx
0jjZOM04o0tSV59sffbS7Pzskmx7TtQvZGVWH2sva4i1n7W/dZD1rNVeH1n/suGDhhcNLxsabIG2
BFuSrd5e7/ju+BeXoYJKrxqryheChDBhvrCYU0wVdgmVwmu1mzpMfE8cI0aIy8VV4hqxUnzOwAKc
wjQZmmLNTX9wirH+5/1tAQhIDsgIeCG1lWRpqBTWTHGilCwVSxel29IP0gvplQzZg1PsJPeQ+8gh
jRRj5AROMU3OaKbYppniMP1I/ThOMa2FYmtOsZ0hoJliuGFSI0X5LRTDWiimKRnKgRaKZZziHU6x
bwvFKGMMpxjOKfpkG7KXZRdmv87pzinC6mn1t/bmFEOtA61DrNX1E+pfNIQ0Unxjk23xtjm2ZAdF
+31+f59xuQGI7zddR9tUh1ZXcqsToL2lrdbe0FZpK4D6yvqr/39xn/YCnqmfDQMsScBDNa89La0t
rSyuFp3FxaK1OFucLMwiWgSLyoLHjt8MdUsaNc+pdXOfxDTaJU/6AE8+q0upWwjUxtTOqyu1lN/v
Updq2VS7rza9Jr0mq2YFULPX0bvWp2ZmDc+YNd1rQmuCa4LMQ8yDzSHmPuZe5mBzd3NHs8Hc3uxl
JtNTk8X0yPST6UfHKNNF02nTKVMJty6Y9pgKTINNA0z9TUEmg0lvCniwmc/Hc9jUBC6xU9+NavB7
wnP6x/yybnPa6rTFaXPTeT2+4U/DvdYdeS593JpnVBFCZGOWG8AzmI0zi+WxUWKWmMvrYpG/GawH
l89/I6Zxb9SJmkLtLG2l9lcXnhtdxjpiLqObZS3+sLiUutzh+pWOZ1Gd2hHRqXWNs+raNPXQDX/b
WF1vh+j6Nnu9/nil3410a1qj0da9ZWdvmubUDW3puZJLeot3xrXYzQ1wa9ynW9tG7dvcKGAXFmOJ
MIG/Xg/xLVKxAtuxH7vhjhSO+Busw3P8jFXYiGVE/D1+hh04gF/wAi+RhVxcxkXk4QtEIg2TUIYo
XMIVXMdVXEM5/o3JqEIFKpGPKXiKNbiJG6hGNP4DC5YjBlMxDXGIxXRkYAZmIh6zMBtfIgFzMBeP
kIj5mIevsBALUIJMJGER/5fwNR7jCY5ROm0kFQmkJhFW1NMm2kxbaCsaYCNGTqSBnbbRdtpBOymD
MsmZtORCOsqiXXiF17Sb9tBeyqZ9tJ8OUA7lUh7lUwEV0kEqokP4FbcohVbQYTpCxVRCR8mV3OgY
lVIrcqfW5IE6/Is8yYuO0wnypja0kk7SKTpNZ+gsfUc+1BYFKKR25Evn6Dy1Jz/ypwC6QBfxX7zB
j7hPEsmkJwNdost0hcroKl2jcrpOgRREChmpgiqpim5QNd1EKXWgd6gjdcID/ES3WApbwVayVSyV
rWZpbA1by9ax9WwDS2cb2SYxiG1mW7CXbWXb2Ha2g+1kGSyTZbFdbDfbw/aybHWMehrbx/azAyyH
5bI8ls8KWCE7yIrYIXZYHauOY0dYMSthR9kxVsqOsxPsJDvFTrMz7Cz7jp1j59kFdpFdYpfZFVbG
rrJrrJxdZxWsUl2vblDb1HYRIokqURDVoigy0UnUiM6iVnRhVewGq2a32G32PbvD7rJ7zPQ/muvz
uarziOP4Pfvc53l2z55z9xwJgUSRQKACEh0MBoIxiN57L3aAAAE7No6ZgE2vNqKLXlwA0zG2yUyc
STKJYzvuxpiOECB670KIkjuTyR+wb34vdj5fc9IUmlOmyJw2Z8xZU2zOmfPmgrloLpnL5oq5aq6Z
6+aGc9g54hx1jjnHnROcYAMb2gSbaMvZJFveVrDJNsVWspVtFZtq02xVW82mcyKX4yQWLuLTfIbP
cjGf4/N8gS/yJe++98Ar8R56pd4jr8x77D3xnnrP/Ijv+GCr2xo2w2baLJtta9paNkdncHmuYKfb
GXamnWVn2zl2rp1n59sF9h37rl1o8+0iu9gusUvtMrvcrrAFkcORIrsyctSusqvtmvhPWxf/bRvs
RrvJvmfftx/YD+3myLHI8ciJyKnIkUih3WK32o/sNrvd7rA77S672+6xe+3Hdp/9xH5qP7P7OZlT
uCJX4spchVM5jatyNU7n6lyDMziTszg7uiy6HFtHJ2MbzMO22A7bR9/ADtgRO2Fn7IJdsRt2xx7Y
E3thb+yDfbEf9scBOBAH4WAcgkNxGA7HEdECrsm1OIdzuTbX4bpcjy/zFb7K1/g61+cG3BDzcREu
xiW4FJfhclyBBbgSV+FqXINrcR2ul1byorSWNrgBN0qetMVNvvKjvo6kBm85N51bzm3npHPHuevc
cx44Jc5Dp9R55OQ4Zc5j54nz1MmNay0CcbqCgihoMGABgcB1agODBz7EQCCAEBIgEco5dSAJyjt1
nXpQAZIhBSpCJagMVSAV0uLqWxgXS7pT32kA1Z2GUAMyIBOyIBtqQi3IkXbciBvzCT7JhXyDb/It
vo1fQy7UhjpQF+pBfWgADaERNIbnoAn+B7+ByTAF3oK3YSpMg+kwA2bCLJgNc/BbmAvz8Dv8Hn/A
H/En/BkP4C94EH/FQ3gYj+BRPIbH8QSexEI8hUV4Gs/gWSzGc3geL+BFvIRX8Cpew+t4A2/iLbyN
d/zWeBfv4X18gCX4EEvxEcyHBTrQIZbhY52gE/EJPtXldJIuryvgM4qQQ6CTdQopipImQ5aQiFxi
8nRFXUlX1lV0qk4jn2IkFOiquppO19UppARKpHKUROWpAiVTClWkSlSZqlAqpVFVqkbpVN03lEGZ
lEXZVJNqUQ7l6ho6g2pTHapL9ag+NaCG1Iga03PUhJrS89RMZ+osak4t6DfUkl6gVvQitaY2lEdt
qR3f4bvUnjr41keffNdn36OO1Ik6UxfqSt2oO/WgntSLelMf6kv9qD8N8H0/5osfSGfpIl2lm3SX
Hn4bP89v67eTntJLeksf6Sv9pL8MkIEyKHg7mBpMC6YHM4KZwaxgNg2kQTSYhtBQGkbDaQS9RC/T
b2kkjaLR9DsaQ2P5Ho2j39N4mkCv0Kv0B3qNXqeJ9Ab9kd6EfFgEi2EJLIVlsBxWQAGs5PuwClbD
GlgL62A9bICNsIkm8QMu4Yf8Pn/AH/Jm6RCMjn0R+3fsy9hXsa+5FK7xVt7CH/E23s47eCfv0g0l
XapLDcmQTLgejOJHcEOy4KaaoWapOWqeWqDy1WK1XBWoNWpDvFy2qO1qp9qt9qp9ar/6i/qb+qf6
Un2jfpAcqSsNpYk0h1vqgDqkjqlCdUadV5fVdXVT3YbbcAfuwj24Dw+gBB7qpvp53Yx38x7ey2X8
mJ/wU37mReQFKIVHUAaP4Qk8hWcqohwFSqloEFFaZ+tc3Vy30C11q/h9a52n2+kOupPupnvFW2qQ
StPD9Mt6tB6nX9Gv6zdVlp6sp+rpeqaerefq+fHSWqgX6SV6mV6hV+rVeq1er3L0Rv2e3qy36V36
Y/1ZXHSf67/qf+gv4k32nf5JH1C19UF9RJ/QRbpY1dcX9VV9U9/VJbpMPzPKWMNGTGgSTQV11aSY
KibNVDXVTLqpYTJNtqllck0dU081Ng1MI9PUNDMtTSvT2uQpNG1NO9PedDAdTSfT2XQxXU030930
MD1NL9Pb9DF9TT/T3wwwA82gIGoG8z7+9P/7KFex8v63jxliRpiRZowZy/s98IznxiWX4JX3Knqp
XrqX6WV7tbxcr57XKO7CFl4rL8/r4HXxenh9vAHeEG+EN9Ib443zxseKYsWxi7Grseux27G7sfux
0tgTcUSJFiskvoSSJFuDMbJD9sgn8mf5XP4u/5Kv5Fv5Xn4MxgcTgleDicGk4E9BfrA0HBWODSeE
r4UTw0nhlHBaODecF84PF4TvhO+GC8P8cFG4OFwSLg2XhcvDFUGB/CwH5Bc5KL/KITksR+SoHJPj
ckJOSqGckiI5LWfkrBTLOTkvF+SiXJLLciWYwqf8ZD/FKXROOUXOaeeMc5aeuRHXccFVbtTVrnGt
iy65rsuu5/puzBU3cEM3wU10y8lgGeK3l6FOsXMu+iBaEn0YLY0+ipbJMBkuI+Ql+S/VZR7e05nF
8XPe5f64Nzfv76oliVpijwgSVeOhWkwpEpHENh2KSkrsKQYj9iV2lZKilraobcaoCYNaQm0dslha
y8xjLUEtmWeqpsXvzjed+WMm53mf++T+7n3f8573nM8933fNYLuKXdWuZkfYkXaUXd1+2a5h17Rr
2bXtaLuOXdeuZ9e3G9gN7UZ2jN3YKXKKnRLnrHPOOe9ccL5xvnUuOpecy+KuuCfui++d4/QF7RIL
rOP8Cu2mPfQV36Y/Uz4dc07QTDpCObK7TJapULopzkU6zot5iXOSW5rOfEf2kr1lH9lXpsme4e+F
Hwo/HJ4eXhB+JDzDDtm+Q/SESx12BLdypKNEgZpKBxw0P07ACTpeWFFYcVhJ2FnTxXR1B7gDzYfB
OcG5wfTgIm+wWOhcoVX0kI7SJsrl12kpt+ff8TLO5Q95Au3lbKeiW8Ot6dZya7vRbh23rlvPre82
cBu6jdwYt4tJNxnmPber281NdBu7sW4TN84MMUNNphlmhpsRZqQZ5TZ1m7nN3Xg3xU1109yebi83
wW3h9naT3O5ustsj+Dz4gjkYCvoeeewJT3rK057lBbwKXkXP9rAFz/XCPeMFPc+r5L3kVfaqeFW9
al6EF+lFedW99GAOHaaC4Lzg/OCC4EJrnDXemiBOOPugp750DjgHnUPOYafAOSJOilPia/FXcVqc
EYWiSBSLEnFWnBPnxVVxTVwXN8RNcUt8J26LO6IUxHkNhEmD6usla8naMlrWAWcG63SdAfYk6x46
BeQZoAfqQaBRN52ok8CPY/q4PgGGnNGFugg8GqvH6fEg02g9RmfJhrKRjJGNQajJOltPAZ3mg1E5
YNRCMGuajJVNQKplMk42lc1kcxkvE2QL+QrI84N+on8EhR7oh/oR2BMEfSqVrwn21LSGgT/DrRHy
e3kf4wFY0x606Wjm6zizQDc1C3Uzs0g3N4t1gllilup484FZZnJBt+v6hr4JYsWAWw3BrVjdyWpu
xYNj9cGwOJCrjdXWek3H6Biz3KwweeYjs9KsMqvNx2aNWWvWmfXmE/Op+cxsMBvNJtlSvir/KX+Q
neVbsovsKru5fcxEM0lmyymmpqntFJpoM81MNzPMTDPLzDZzzFyTY+bp/RSJEaU3U6RqQFCQfinG
3fJrKNO/W/57+VXch6Lc+99BtIX+yJnQhofpKJdRuQ7ah6o6RdXo17QGam455ZBFb+POfEqFadxf
zpF+PjWDzpMYhXi2D/TefqrKEf49aL858jzemkMu1aH21AOKcTEn+uOpH11Ts6gVJUJHjuHpfl9/
iZ/rb0Tt7JOn/BfkUBQU6mAq9B/pS/7fKQ5vrEB9XePcirvpDawyHU+uhfZcLfsr9of4P8ODaCjQ
QlKURIVcIGIxewaVcgRny46YZYO/0z+Gp16m/tCzq6HNWnJnEa37+Ul+IVXFGhMx6yraBabsQUwO
0hUO02X+Rr+MIqkJdcF+8qmIC2ToxYzQ64iYRpRiqDV+GU2H6CSVQAMeEaN1mE7A9/X3/gWqTPHU
C95uxpt3+Cm6T/Sf8oTq5HegcMRlWXm06Tg0aRQ64WTujf52tFgn36cKWDEelk6ZiPdKzH4VvfYe
9NHFcoParp5ZNULX/XCcSAP6mNbSESjdCCjTsTwTiuuW6CgGoLO5KZerrepcYBB2/Q6NpMW0nZ5y
Jf4Vp/BveShncw4YtQr6tYTvivaipxiO7mWozJIHVQdYmhqrZqGqFlp3Q31Dx0JnQ0/9BH8upSAf
ZsD7FbQOO9tHxdBEl+ka3WTNDofDanM09+LJsKkg8Ge8hbdyPlYp4Zt8DyriCT+DWiCohOrlnT6s
rnhfTEB3tgYsKafJA/GTrCbroI5byrbyN3I0vMqRH8B2yxsqShVDrSbA8vR69B7b9VFdZoUFZlag
Cmeeb3jR+MXVEIXmhfJCu0L5/g2qgjOMQhRqUVt4Pwg2DOedh4z7E53nMMQuihtzO05EZAbwMM7i
iYjkbF7Nm37xfQcfQJQu8mP47EKnlPvcFPqig0iGvSMyRBY6zFyRL74VP8sAegsjq8jGqN3+MkOO
k5Nkntwpz6Cruyl/lM9hvrJVLVVHNVCxqrMaoMardapUlep+IN5ty7ZGWnOtvdY/Aq8G2gV6BFIC
/aFU9wQuVBhY/s3Dl+8v9D9/fB0955tyNy0RLVQkeFyEfB5A6TJJIFPFFp4npnC+qKcnWm1EG+5O
ZaoBYn1CrEc/2UYmcTdOo2Ei/j+zWZXVNlzaqq/ooTqAvRVh5olWGE8Vj60w2sUkWmPN47K5ipWn
6Yq8xgH1Kf1N2VyNH4rNsgey4KBqp/tStFxDO2QWT6Hd4k0i+1mFRcjj7rwNXOjJCfwv6ZMU3ZFF
reQtmkXDxSV8RSfQPPqI09UQWkItOJtK6XNURYweBapW4a9FplogXuJ8Emordtea67HUlWk295er
rcfiMo2nYmXTVfkHeF8sdsgkVaZTeSgqYArNpSx/Bk3SfdU5HoL2rzfVV9dBt2yZoKJxnQaq9APT
9qC694MD7WUS7kQgcxKRF71AiNWwleCEQgZlosb7gGJFlG/1FHtpiA5nUIdInQ6l0tv+57TKH0Kj
/FyKAw9y/GzMuIVu01LawnNCk2kM1UTlXOVE3UkU605+nFggLos0kff/54to1+cIug/bgX/a6S9p
gbpIafS6v8j/BtndCIRdRe9SV/oOu3yEFd6SBdQi1F184XeSY7Dfa5Tib/ZrsU1D/RGUTAdoU0DT
oEAszngnn8N+J1OGSPXHyYxQJuKwFFF4A9EaD/7MV1lqlvqJFqHm88CbT1A32/7NeLHExJFcq3q+
DNOmBwMDNMbVLg923IPB67UNA4Fe5mNjZJu/u7FH7mEGFn92be9uVnFyCFLkrNV4pT3u3pxrcqkG
OxmcHNAqUU6cssox2gNSFClIq4iNIsUOeVU9M2aiJEpPT/X7v1evX72qhpUDa9+48fijDz94+OD+
++/du3vn9sq7y0uLefP6/NzstavvGKMj3x0eSg0OXDj39tm3zvT3ne5N6qe+c/JET+I4PaaRo91H
utTOjvZ4W2vL4eaY0nRIjjZGGsKhYMDvkzBKZmnOJqzHZv4eeulSL8dpAQiFAwSbESDl6mUYsYUY
qZc0QHL53yQNT9KoSWKFDKPh3iTJUsK2M5SU8cKUCfCnGWoRtivgKwL+TMAywJoGCiTbvpIhDNsk
y3IfrzhZOwPm3MZImqaXIr1J5EYaAWwEiMXpAxfHR7AApHg25UooLENQrJNmsqyDZngEzJfIFkps
csrMZlRNs3qTDKeLdJEhOsaadCGC0sINC6ZZSLght/ls0Bpxk1vO07KCFm09WqKlwk2T+QoW9xHT
wW+GxX+w0/4GBePNafOTg1zV52TbbxOOOs4nhD2bMg9yNT5aFtgAXSmRs50cuH4KSZyYIeBNemyZ
DD8Gl4TPhM/Km98SzXKKfYewBjpGV5w7NryaToeh6Ufaemensbn/NerMEmfWpBobValVyHS5LciZ
frTRYZCOek5v0lViXmLdQ00VICofBJZqPAEJcQ5NTNcyi3lEdBwKgpEigUhMCnMa4MPSAHKKAyAG
l4VBi5XgjdxmDWnbUVKczvVZIKFQ4nyLoALo7l/qKYUKJZhQvkUc5HVSKzXgV2Gm6+zUKV4ioTS8
U4hxRODnepMflyVKHygEHpA+NAm5LVipPki/pvEXvFY20CIgbHXK9HCCFtV1ZPTpFpNsztmqclrn
OGe1yqmp2xQq+TnC0GZaWbindjcpbYezKymG2/4He8njT8zQiakFk2Qdu5Lbidk6zOMP1HgViB1O
mz5VqkCS6hNcKMqbNWGOmFHmT8AdFEVdKofCUJWCgkmOKfYlb7QimvZ/KpX3v+Fa4vFGrRImS+n1
+FAdXhde1PFBwLC5TswuOE6kjgel5jkcrzyg4tGsqZE0Q3OwMhNwl/e3BvjfUpkBKUtzAag/j1RB
6wTVCmzBxauzN5mDRuc4OUpyju0Uyvuri5Qo1NmUvpS+dB5k7WrhlPdfrqks99SCXK3gVG+Sco7j
lFzkS4AbQ3WxAC6k1yx2TbcoW9SpRs0lmIubQlFt1k4DJKExl+InU66Bn8wsmJsKQuTJrLkuYSlt
j1nuceCZmwQhQ1AlTuVEjhCOoAkMqVmXwkJe3TQQWhVcvyAIvFjGSNDCVRpGxbLk0RTPUY9wZMCx
slj2exyjKu0HWtijrXrSJyvSYeAonPMSwY6DBNO7XEBmTSNywUgZQ8aINCpBRjhpHSgvQXYIo40R
PIpVF2xOC3IZr7pDhropLE1XJFdBktNWazSInIsdMAT+vInPvZnB3IK5MYLAvhhBYoxfvNNCEAfX
kGhMvM6v62ZUciZmoAI5MzKgRg6wCVdkmLJb9Psanx2bp480IFJGoFuDkIsudlmOQ+BHISvFedMb
OQsnu8CSxVYXq7JqF9TEGzQKqqKuNrp4D6l5+2HV2wfgjQNO1R0r/kdvED3DN/gobhG+ex5Rzz/s
0p5T56azAPWosSPccSUOQA91WcICRPK5iASLzakIZ4JlvpYIb3LQJullV7qqiycWT+cyzZZAgv9h
0z0HL0sjJYtLUb5oeOH/VyF8QIhvJMK4owxVMVzBvOXrsHfr0ZUamuN/OKMkTnttAuYilqzG7qjs
nqXXRAp8zg6s7RRf4CmhfJH/bdh2LrLVYgFChP1mvEiBcBkIxFz0Msg3aoefnIoFUONZrnhi7+t1
JqEnYGhRYIhPh61OEtsiNvQQPAXJVgkLwJMsw/GJFnjfmPTmMwnNHx4FZwZ0EX9tKgtBP1suLFHe
XBmvdy/7PEY/RIdmTIZUx6FQQxBiIgfCYL6HBXvG+QPuBzotLPGT3TI/2C15Rw4IV2SHW1OzVLNA
REqIXELiYKEt8qHo8HNj3tYhEzGn2SGDDiz4PPQqf09x3oa+RhSSI+JVF1TAIAnjHLPAkCfYkOCC
oC/uHvae7uZDiTcUcd/XPeGwsCoOEWyyKhISNwAPdSbFB4DJJ4+nF8S+AC+KJy+QGIf0GlBVKteG
VTRb2TY8/XGuqlZfmKcGFKu6AUC9uwn8ZPJgJ7zJmiemb6iQ2F7R5FAAfsiHQmjsuYR3gqGy9IVx
GAX8Oz4UCfl3MOoIBwM7ku/X8EnYgL/Ap1G7rvxt+PXwVWVv+MrrYTQKsPIKhjP9WkyLJWDA0GRf
Ed/WKyOA/oGIfws+WtDP/vlH/GO0jSKoxB7r5osIOP15sIwnjR7sG5YkHMHDKCL5AEHBgVDqGny1
3odvsGcQ4LPGn34ObvfyezvK7rACTvmo7Cqvd3GsefBMv/oiFMS8g7ePdm73bfefsc6eO9vaEgyd
OH/+wi+2J6+/NXjet739cK3nSkfhBmTjyv6f/K2BLXQEncJ/5vG4kmjxR5vwUXwL+7B6stuQsSy3
BLrVwLHuFjnSjVFCKe/vGR2yLM0p3XGlqUmaiyvRKIxRTov36bq+3advf7Wt/BZiHN1tHuzL7yq/
yUOERu/dDpwJGa2ZjgxZaJ4ld32lUCl8p7lEPgp/r+tx+Cddfwh/1RYLEVkOzp0o73/9nAMUAEPl
kCYYPKxJWYLAVPz7W5DXsrRiNFSDxGU8sI5eJN5R9vdQFEUhJ/BVu/9X1IgaK/DfkYxkbBix+cSH
iqHRt/sVjBRFkWBu3/wyGg3OKZ8lI2BnozsajZax8Xy++1BjoweEZflXwk43HjTk0fit+P34j+L+
uFIRgGzIABiH5uNt3FS8jcccL0vHN/TfrfHKgQzp+V0YdgHOP9Q5uLcrkvU6vxMTCTvTDxsGM6Bw
UQjScIJQokEa8ABcFjeA8yhvqS8wDkTkk2Vf34t7sqy2HAPo+b0WWQ0AsH5PDUA16KN6bPBfVJcN
bBPnGcff986+s30fvvjrfM4lRxLH+bhQJ7FDMArkKGNAIQSKYo22hoSuLQQKOF0pW6tBt8KgnQqb
xDSVdbCWsZHRhQ5DQsjUrEOVtgmB2g2pEUzdmk7pxEdU0XRQEu95X9shgHN+7nw+v/e+v///+V/U
bITrAhSYj1RFKsp5juPnzIk1eoAQrqIcFSnNsBfAvkAg1jinKQ6ncOzXp4N1yzYnF3ZsYBYOPZOZ
fOHyK/+aGn1z/9g71yab219f2XPsrRe/12tbI3fXt9UvuHn1yc6prz589cb38XL8Ej7xp9++f+9a
qnftwC9/3tcHvD2SHbPptgWoGjWz5YQ3q84pOWs1KVRbI9XWJqQ5/ubiebXLalNSqrZb2lTbWf+q
tLfmjcDh0AnJXz2QHcsIAsVizNJIdVzrrT6rna++oF2q/tB/rdrxjQAuJXQWkXn3eMjWLpJtEyGo
nVSGagTNutp4wpaoW2ZbWpd0rDWfdmwyd4g/Ev8i3pHumEXNcRnblGg4rjaW+YLra7bVMDV6VG6V
D8hH5KxsPyL3ybdkVj6fvZtjqj8pi0QH8kD2vxmgiBS3LZ+icB2ySBZf5txu2EYkiRIiBylUZ5Ky
rLMARi9MM4UHmAnWuVwPdwQP+XSdR9P3ghZXuRp1VqjpUroQgD0xDTMCmAuQo+y9PNhCEnFEjaiy
LDyQvU4HRQpLIEfDNqJX2B+FCaXFbTqzUFy1BDLsMB0w7N/LkJ8PDzCPW3KVhSJKZFakPtIXsScg
ZmdkmemIDGSv5IrzoDf686eTkQbyuSWVgrQSwwnmaAInVPiZfnJx1UFv33Im1cpgedSRn5VoQWrR
nNRAndHwe9wljjG4Vo7hfHl9cb78F7j8dR5KcjKZfo4aEBckN8eJ5M7IluvgZLIGnELuhGuYm9Nf
7l8qndOeaSqgwwmqy9uFD1smyfazz4gwR03QpmlScc74chr24ZUAB1bBglGKKjMNbyhd3I9Y0xRF
uWaAnd2/Bda6ysU20poVgqqq+6hEYZlBoo3RGOiUyDRRFIMrglAriS4jTXFwb/q/KU50C3a+gAGh
BtSA3+8LqBURluNlBkqQLZzEtnz7XHff0JLnljZtHnkGxxbv2/XdklPBrZf37+tdpTjV8iFd3XBh
2xONz27a+Fak5Icd3/zdnpUvr/TJUihc6do6e/7adDD92nKr65GHdo5/vWf+XHytWleq26JLOx9v
n/8CBHm0F3Rs2AeRgkoYD9Xxi9guusP2Jvtiu73VOGUwhlGux/SH9e3GQYOb520JtIRWBFaEUo6U
9C13KrAu1O3YIm10bw1sDQ0bH4sj6oj2b+919br2acknRtbQZtmj7qiv3t7qtuwr3KvsT9tHSr60
3VVExS/bOAayNsdjl1+XhSCoIW/noIDgDMsPFizfKk8Gw5cFrAiW0CnsFmyGRUARqGaFIK0HshMZ
wg0U41QLAhEFEYFAuhBBhxwh+oHqO7iIyUNYlIPwbLIohjx5QpGNfmh5oSIXJfug4RhbIJzNMW9p
SbaSYYYxPoiP4lN4HNsMeIBqh9Y7kJ2iooXinlVC5IUp3Zi2WuwhdGNKN5zxvwyRFT01QIaMg2S8
2Ed+FWulS5qDJiSVmdT3tLQpgDM9NgrwTz4oCEI8vIoSNFigFIZvANAZ7FJkP+01smDjimmv4XgG
AcGtZgIobgVuyyqAYOglpYxfQRXlVaxPvd9S8OzfZHre3dCXtqa++OPQZibe8ZMdJ3/9/I6T9sHJ
Lw+0H/jrc1O3pq68iX/2XsdrF/92+YOL0N1XZcfYG9A3QkwXoW0Iqdnx3Cpnki5HfkqdhcJdKJRC
QZboHEEin2/i8i43dhP7XIW2Q+6zeXSBD+o2Act+3kHmmqdzzYtkrnmFzDVPVX/x7x/QLg1pppH8
kUizxCliQ1/kXaSu8a5RO72d6mHmMPuGdEw5FhIdkubqZjax3fbnxe3Sbum4eMZ51nVGFAPiXvFT
hpXL17u3uXe5WTeGNmBF6hEZVCcM6yCEvk/QOHIit1tA98eow9AXumZg7p7G3J10h2UH7TflxTBv
D5yGsjenT0NhwTQwRhhjSzbpHGErzzO28rOG5+RceBYcopxZFLKlFK0QRWuZ7i+Yt7+Atj9v3mVJ
f/gSjw2+lWd4mVyAd5EL8LQrkwmmp/NiXj58Q3H8QiEc5TG879SpnuVrKpavfgzSEM4Oz10Ln/bc
JrmppxAxwTqV1Ci8CK9pAHYtzn212HJBxvdAh/DYgpRYmyB4qPUK/HQ6ipE/ko7UXBqKe0gaUvkI
gTZnrmzLuyW3fj8y9VXP5/vfuWr0abse29d77JXu1/Eetf8SLsGuk5h5ue9XxZu3/PmjK+//AJxy
OThlKZDrB6cMUKdUDaT7mQ42ZU85O4Sn2M32bc6nBIef9GIyp0VQWI+SqkSnGdjzsf2ubyJka/DM
0xr0hZ620EJ9tecJ7VG9y/NsqEvfye30TzATQQUFsFtS1VWBzsD2ABvQ3QeVoxBoFVux7uLRINNL
Zq7gKcOWTBZDAQIOeYEqFVx0fJoVdUZYVgvuejqpWhIEhAyRBhQ36XglEnnIikrkos6q2vgpeGII
GbB3ujISJ+/9JAQY2AicL8STs8lAbFqdSiFYK46Cayph3grXxgk77TzLF9DKQ2OZSX4W1STt9LxO
tZpDTKdw0cDNa6XxB40vZbZNUr9bqaRNcyJNjrXl7W4SWvZo7lmlZTLdQp6oEsT7SMqmLb2n2CpB
1DB2gzbt9fliGF1GHMhTCQBRlrRFQUq9wnhZxWXz5mFzFVPYXHnYPIn161JRsygWTaVnAKegWCMq
8vFlNH/jMhrSOXbdYN3Nc59P3cK+q//AMr435vrDnid/PDnCrBbnJve/dAIn1bcz8LjGYhFXT/1z
6o4yq29wIz60d9HG4+SJ0wsNe7f9I6TidZS/Up8Tu7WoVq9Z2nbtsPgL6YTkCEnV0iltWLNpZBGN
kBEvcUis6NZd2M+YPq+N5ZDriA/7st7cYvUnvZZNLSycWjABNbdSkD7VShtimZ+CxxAQGubGybtl
6kb8IMKaRRqvZkngtMhHiETV5AgqJ96L6mhwHch+YQm0efrIyqJctKbFf2hfhuIufVRDbwe1ITyI
ytAEdqGgac7Id7DmZotyu0VpoX5y4/90V31sFMcdndmdnb3dvY/d+9rFZ3M+H2sDd0XEd7ZxdOKW
EozUgiFVuNopVlBCUEtRixEhgEpqi0gglUo0ahQSKbWpKoRSVTG2Cy6NiqVU+aNqZVK1VUvERxSX
JmlNLZW6iYPt/mb21l5CONk7b2c/ZjW/N2/ey031oHK5VCrNlcpT7QYUeOMRMOoGVWQaAI+pK9EU
MmgkhXM4t7q/H+d6e9CB1C+RmoyJAni30X0iVSNjYjMUFLsFLfBdr2BkWwotxTaWqUA2mGokComs
MTwwEKs5fmjLztS65q89NjEhvnaq99vFjq9HX1c7dj196t4e5qi+PP+4+DHoxHK0WljF67RL06R4
XrPjW7RNcarULavLa43xfLZda41/ReuIV+Qu7ZvarPrfRHhNNt+0Pru+aUvT6fxgXm7NtK4q5zu0
jsymVU9knlj1LfmZzDOrduX78teaPszcyf67yTCTNDEmXBhdWRuT+b6j16O1fNfp44SG4CEcc3Sp
tjaibmqoDarJRMEuqKARS7qgAvb0QvU0wllRUW3Lumpi3XTMXWafSfJQRWFHnjsuM8qKbfJUwwpu
UlZwM8mvQYFhn4FSs7soO7/DhcVkIYQtaBP2s1mfRs1WxwxWzIMRbKOGtEfItEfIdJWQZiW94kpk
InIzshAh6Ug5sg12XE9WIrorK2sqES4rkRpGu0gD+6pILfuiCA9xrB+Oy3L5g5niduBZ55Ky9G51
c8SSkXK7S7xjcqYEEjPJVGaStSWmK72wTcHeBIs0KSIUq5W4r4IZDzYAurQPZp0mYiu5dsTcjOCa
LNAoUBCgnGkmTdf1N4GECC18zzJbCkacJ4dYfMl27XlTa9548NhJK4wPDb03/Z13f/jW0XPPvjf4
m49fPXfse+d/cfTw+a6ax+3m3U+2Df0Al66fwfjUmb57ez+ZOPxzcfW741d+//Y7bzOmnoTvLYH3
F5EsqIypI4JanXXRA9QDMoANy3i5MGj/UmRdwpIPEw+PVgTNc8oeoB6QASy+dM7nb5aw5MPEw/BS
UqWF6AHqARmA70u9OIF8WPJh4mGnraK0MtJsU04rg8qQMq7cVKYVGSlpZb/SpwxUu24pC4qaVsBy
yUQQFSr+emG8+obVFfEFjKhEiUplW0JkgAySITJObhE6TqaJgEg9uQpnhLhOX9gBYNYx2dohPF8Q
lX0C4UJJPKEkLEIw3hKWC1TGXdIZ2Lzd8tsqCAJzJaaI5akc3/PYP2Pngd7cw36pS0SVKHIws/01
fygz9Yu1FBIi2P6To6Oj5J8TE58lSONn12D/Ab6InwBfNJEnxRER1uiGGJ9ExacmAR8mHl50h1Ao
D0jVFV0LXXyXpxX6pCJGQv+RZqioBNn0UBbd2LyoHlA8II4tfOjo7MEd4vOqEKX1sUwxAJlvJNpU
VFj2gzYq8Y4M73BehB5KiERom7KZSDb9ktqlPi8+p14TP6DyOYqztFG2A+10nVIObQt1k27aJXcr
x8gR6VXlHfpH8hc6ST+S/0c/DSSiqiqJIhEolRUlACdKIGDLNC7LVCTEltS4JKkq0IMEMNRdonIg
oGlIJWM44igSYUWUGgLsLFHPnbXODU/NaTBdmid/mid/mjtZlyqajQTvquBdFapTGa4INiRQhMto
G6xwoI3zCN+Idb4R88CJOMNYwIX9ljt4xIMGWhYMvZ/ZvMevhqB6W/XqdptjXmsm17N1Ctw6KsM+
rJeAbCXDbD8hrcmRY/pvobVyYQCyHigFSiI/XqA8qYW+quC08qIoKFbIKCJ4dTeQc+POLkdV8nXt
SqCurgTVvjFc1w7Nn4breXMh084/pLsH9fbgXpTLwRO/QnRhfDjTDgwYH06y5saw3k7dhp8FeXNB
cx/O8fzAhopeJzgQT8Jo8XiJH+CpmWGLPfyvCyn3dtzTzY0iQ9Wlg1j2iKiw2gkiARWqSPmSgZ8R
Ndu5ZygYuIBxFsuwcvAbH83vxVduzJ/9vnT53lt4aP7Q3G4hfXT+G7COjoPutjHdxf0Pqu6G0MM1
9nNaunjrFyjn5xTS99YH9PBSReKyJzF717auyNtii9uufcRtG2zeOnbCLEaktDQg3ZTINjhMS2Ja
2i/1SQsSgSlRBdF2jWJb1SgmwEkNIDyOpoGQqB4syS1EkCd/zPk5dZyixEdO1ycGqibR1T4AC9xF
oEURRJ3kfhFkKggukesg35gPfIHmjSDVLV61bMdHpcuzHcxhn0CINoJ3y4rfZZXZ8BKK+cTMb5mi
Pmz4cJ1vhmt9OOXDNT7M7veKV+vDKR+u8eHgwvwiDvlw2IcjPhzzWTvdh6M+bPhwzLN//P4lHPVh
w4dDIMasOIGxKgCd/auzVQsVbTJJJpX3zb/XS3+WZuoFM1CfVaxUvSKK2eW1NMHcmIxptmaZrl61
8Wl70BZs06wJ26cNbBBGDsNiztKApelojCJGnFHEYLpvMpoYAqOJEWQ0AaMPQQKuzXKOGIxg7HuM
MdwzYnkB1fKU03JXhxOqWPbpFE7xkVKLI6X4SHB+xzHYSCnCRkqpbKQUU1WNvTsVZGOmmKllY6Zg
qItIKGS9QbKePGer8hyvZG18FYFADyIhjZhIi1yk6x4Q6SBfB8lqXrrn5aW7TpwHJpf+YVe3V9hj
+PBIZvP9RpY7gq3cs+q+Tm5ufb52rnPTs4/d7j2AWJQC9wB6r0+BpjMLEXVDVTgYjzXGg0YKR0OJ
FEaQp3L9uIeLJH6otXBUXa0BqcRUS4yJay/u02RFpMsBDu+jrgluhsxV9tZhgsWtpMkOCSNrFBt5
8OIIAKATZ5vP7T30SvqF3/3kjZHszvX7fzzatXtL/6Ok8eXOp57uuvzmxbkm4fV9Tz368s/mXhGG
Dx/e/tqP5v5WXdfibVjXSXybJ7KYJNKYcF4f0z8Q/xGbFmdilDB/0AC8PaLjM/pV65a1YJH6QDwc
T0ZrJSBqMqSGwsHwBv+qCPtWfnjhrruKwM+EV1gOI7DlsCpqKxnW4qzGGqOYweqscb3TGvgdrLA8
MGlxVmg4/9SlmKaycsP5jMO3as0ptBYXNAx/WqfF9LWm2FocsqYtYb81aA1Z4xaxRKGQSHrcS3ps
THq+K8kVembUMFz9XRJi8wEhJlUCzrKUB0jgvCNVPR53ovA50zDDi8LeaeozPT7DWWIELN0t6dB5
3wX4MSqCiQDmlctTRjuu0i1JDUUNqLIqUr3RoOEUjqjRKu1W97O0lWNxSwmpSSCXKEU5pSQvVy3S
CYgEocrPpRM/fe76rrPbdXX0/5xXa2wU1xU+d2Z2Zmd3bc/6sYvXGBYb87DDywumNgQvBDAxrxqK
IbxKgFLwgxBM2ihNGiMDpgE3lLYUIkpsx60pRsIUR5AoUVwJBdGUCik16UNpSGOqtIQUIRJVUHv7
nbsz7rL0T2v507n37n2e853HFNYuaOjUxvzkzLwdi4tfGGhQ9m2vn334NwNvIUk1D27TRoEt6TRC
9Em+7PJZE6xHrYWWVh7uDisjw+N9+bnFWcW5c3J3hA+F3WXBspzKYGXOE+41vrXBtTk17lrfNqs+
WJvTG34/88NhH4beH9Gf2T/iejgWDuRrRVZR1jStzJqvVVqrrRvem7mDltefqgaGD+eQGBie6qXU
7NmJ+SbbYZds2wwE07JHX/UIyxP1bPA0erSw5Fs4yvxCwfzXqJfDmmeY3b/nVNKf97BZZUnNVvVw
RE1jy3p2iYyIEkl3yJPukCfdjmDZ1ekFRL2oMUWr6Ba3hTZSlIulQhWclGUYEzKMCRnGhMUXEj4+
TjDnmN1yaoAPFj4+FFEFdBLZIyumDxMoMpMimMUMutsvhT3KxEGGvyVpw6yhdZzr6emcHkr1pwYu
qJPO16V6QQ59+AV1wlC8KS8vKpWfOE60CWRlKnp+3pixfjUzECkumSZjTXNH2eGt+6/WPPPRd1a/
PNH/828929W5q+Hs4DbX2y9VVR2MHX1t8P6BRWUD99WOKxff63vv1x/AA/YSKe+CNX5hSM7MmJQh
LE3ka1O1x7Tl2hZtl6abfrfpNlMy/GYKqW7hleYmjznukFu488IZIkPJ8zsq9ztG8DuO64+XVlEr
2ekSqql/Rv0JTqxLJ34gf0jFk55Q9y9Jr7j44Jdk3Gv7rXV3d/ZDz6zlUvzLr0qyLjenvnCRdb5T
rMs5zwEecd17QS1JiOuJMT1osFIN+N/e9lnbytesnzVnzoz1mSO0MW1PLyjrHFtRvmHnwO84To+O
3VEKXccoKLbL+iv8QL3jTWi7E9pGQltPaHtQheaP4S+/3uhoNBqzBQlfikeoFLDMojQPPE31pll5
lCdS/gvlPXHK54HyPhEz3PPMeRuMHUajccjQyAgbrUa30WtcNXSDPYr1b8Q9Sjbu9LAdjHgdYjfY
JkY84urcuM0Oyh++8ssPXihLFuNNpYaGiZKzW5JKWzjBrXg8tfrvImzeKkelyw7gj0Ssy1zvOrn3
rAofKO6pU71gjFocNeuEJyXFn+oxpTt4dDZTpLh4EhJwEUxVEGQvGDPNnz8t4p8Ou+X7MwNwCMUK
LZq5se6RPXvOvf56RtG4EW2vWrO+0a5sOiiMusGWgwM/XPxIiC3XFPtUva6NwbXPs+XeQNHaGzXx
saCEMwJT0/ip2emZU4syxGh3RsAnMgJeEN8P/VMk8EBODSREvUBCTg0UDAty8gvJzBqUOTWYzjoO
yrKNlRyUrA8OZdOgzKZB9gqZTYOyYAtyNk1hlceCojcogktCTJEAJ9LQ7ZCyI9Qa6g7FQlrI55DC
55DCF/fFc9W+AnPIFU1BZti8al43NdNxRXPIFU15KdPDFzL5aOmBpsykpiJr5iXZD3zGwAE5wj2c
MuNuyYYvnxl3R5kwQ5qVmpKWouiGW3e73Eibmi+HUtz+HOKkWVi4G/GRadEDZ1X9shhTvQFd0qCc
4yIoMGqapMBYkCDizwyy9UtKuK2WP9+3/rWllrfH699eVfX9GT3HexbUL53WoBweONcypaJq+cv7
ldL7f+SARAZRZc+aa19Pm/mFO8dN/Nf+ydhCltf29H9278zANy1yV6FrYj6vAIxZg0voMYvunbn3
nCVHEv/8R3R7SCkdQrfyAa3XGigLeNzIpW+7qmmVaKbVyil6nqHmUlQ7TTsx9xT6syHf5LWYvwL4
CJgJVAMhe2wx8CSwnPuY+wavxR47eB8pG2i1eyQ95aqODeC8I65LtAU4gXa79gmd1EupHv0OrHtH
I5rOc7DmiH6KjmL8OH7fhLETkKvQb0N7LdZNttum0ULZLAEd4+OxzwH7vWPVX1GJ1hD7GG95AntW
Avtwxlch5wMLMScDcg7QLC7RfnEp1o7fIakJ5zfzODDXlguwz178Xo51o9FvQjuEe+iQacAoYJxy
mkqVTHoLchLevzL+buASbeU3D70J97fv9DDid1yYCJz5NpCvlMZuQJoJd0tGUxIeVyPUCFkL5ABV
yhWq1xaRgL6OuW6QygDvWE9/Bh7VNtMS9AXuudzVQ69wH1gs0RAb0I5Tq3qXvoLfntOP4B2boe8p
wJc0SfmMJugF9CL4NRf77wZOYM9PJR8209dw/kTIiHZDcmgfcBBn/cPRE+sG/d2w6zKc9S/2B6xf
DlTALo1AHd8H509inbPdRfVgKeb2Y85aBsaDEng7c5LX8HrsVWDzsP0/ktoxpwV6vQ6pAVl8BweS
Zzbw27vYJxvQgVxgInADaAdqgTJgITAOZxPOVSVfwRnmpuQHuOG6BB3ibpKz8TeckPaM+0ybvRef
M0o/TbU2RvGe7C/MWdzlrLM3+xRzxpGS37WS95/zO5lTQxK+p92kCr6D9EFwy5Hsd7gz+8MRlED7
pTxNTcxZvp8jWS/MNakT+IQtZya8dbL0EUiVKN/mepMjHV0Mya3UgT036BsRU1ppgbaLFqg/oI3a
bZqrjqeJrskYw3swt1u5ScvcvRSBLZeifyxJHmUYfaLG1Yt3dkGfffRT6PRprU/J0/qEy9UV+5uL
xGVXl/Jd2X5IJkP0xn9jyUj87X8d/3+gXHN1IWZ2xf7u6ovF8J7D7BPGTTEZCDsS478EGoFCd5E4
6q4VF4wVZOlEd4GntCiVuaI0XeuFfbIQ5+ELGF/h+pjeUVtg677YH0QjNSrYw8iiJ5UjiGk4S7lG
TQzeH3JHAo8e4Fwylxzp8DVZcsy3OTUSUof//dZGv40vgS/Ao4XgZDbnBo7PMj8gRgP7bL7WDPHz
Mv0M8oDDzySe1iTx05fMy2Qpcwviu+OnOOt7zvs5PnKM4xjJcY7jjDM/WSasf0k5BR5zHL5Cq22/
zrNRiTv+xfZ9xGHYe2Usps+Pdeo9sZNqeuykXoz27wFXrBO6eHYop66KDdr5dLyTS+Pj5HXyqCtC
9XY865Dx5g79SObRank/Uz9DL7ruw+6IgfK+rbYPQp+4d622ATp/hQ7iHdlqM/wR48Ba1om0BdEw
zgucE9UfQ8+ci1qoSf0T6gVeGyG/zBfltBJ3vyzHkFNZ8phrJbXrN6lYW4FY20ub2Vb8Dr4P2979
DIqzLMSJPpqi/QJzssiDea1SB1HqlLzgtbVErAtjExng7BLM4f3a5Joopdv66JC6kOtRizCHWRfY
U8+iZbKeuEmvulbQSvhQm9FIbf/mvvyDq6iuOH7e7t33kiiTBBInBBA7READQdIBtVKDAQMERGgg
0EiNLRFtEWq1dfxVRVESQRwrQhExA45F+pCKA/gjZYqtP/BHhdYpqC3tOKJ21E5tKdDBmLf9nPt2
k8eGEKD0n76Zz5y999279+z9cc73cucTzsV63vEz+lWrL/Qrtvl6uVzB+WoiNjURc8Tu/zq/1d3A
99xMXAd3AXO0QYq8BczhXPvtY006xjbq+XGTMlD3SHw5cVj1xHJZbErl0vhcWUrdUo84ybhLqLuH
81vK2b2P/v2DuC2MfR/12rdCtYxqBD0vidHSK77A6gCxPqhOYXz3E1nrVksT+/iSrOXMw70yVI7r
5z+VtjEEpr/TzZMfY893vipvM8JpPGsOfcHcJd81tVLuDufs5stQ83vO6mF51M2VevOGPGqel/u1
bHrJYHcT378Fban1u2SK1jtvU14pdWYU/ZtkvqmXG91n2Ht/kBwzh7Wmn/cA+6SE/vt5b0Bsn9S5
tZytRTwfJg/Szo6xxZ+gmPEy1PbLwPoaEvHZmchXVbOm+KvPR/iLr+1+hj4exT/7nfpe+mkb86iM
Yp72wtlpm5rqLJUNsMb5o4xxL5NbYuv9Fia5KsL4zLIZEbsdyswIeQ7u4nkI9lfwdLqMdhshf4J7
efeL2M16L1CcShmplrpmWAlvhv9louMcrT4Tr4/fckR5K7kGYgf8FiXannkeyXgjzdf9FoW9WK3E
75SCxE1S4A6i/kz6RcpeH87TVilxxf93dz4dC37DM+ZxdOY3huuBPeM42Jthz1Ib5IaT9u1kYX3z
4Tw7v3+XwvQekl6xPf472NrYHsl3f8QeBMpllHuF8xmuE/XLbH1k/ZxKP6VzHq2PlqPr2l3Z2Sz1
mYT7oH0/PCQXK6aC9hAtZ70uFyvxV/jvlc5l82Q31Mm57ir1iT04qHM5frkMUpwSfC3WPpw5aC/v
IkaAtrX9e8g4Rc+u4mzhvgbt/4+QS5WOeZWROq/uqvT/4fqE6xJdH/wbbnbKJdhB2K9ha7DVoc08
s9FzG60LY8nR2kTOxvCu3vn/BGfnDdgBr/6vx4oJexXyIL4XHVKBjtyNPrlCFoq0EUu+HAbriEPT
sO9QR/ZOnQM9eM6n7hrsYyKtB3m+gfrdaXzH9JE1ga7sTd2zQd+s4H016f6tr4l8cQCeTvdvTcL3
eP4nkM9b/4z9NXYl7T+l3z3Y36T/b6unfBNso/wZ5etgJs8PYguxQ6AX9KT/CkX1SKd76Cm3R79/
HK9Fs8zGz/7YFuzt0TvEcdtwPbux0btGuP7dWS+4S3S26XngzvQBum9T5t3nWHec0LKeqUzMdL8N
TXm66mjVsqqfrX4MrL2/WR3LuCIFocWfbNWvqp1Vv2L1/Y1xz/ozHb+usn4FeSMztsYOSDPkQZ/A
zqXNYWeQv5PYk8v+Psjd6AmFMntMatP4u8hdueS67cTdg9i3KPfDHgxzWhhbO8XYbnLaqS6faI48
iZxaHlAfoav6kAsCJijRXHyidJe7TzqXd5GjM/P0f1sO83xI9sVSriRG+y1KVJd20gHdlLvTuSda
juqOEy5HdElYjtLp/+jeC/VMsRS3Ezl3J4reLczWDu0f+hA9x+3nLSgzR5dmQhwYHOTQx+FfxIx+
QI7yH6J8R9aXUp61UcopNwF50a+ABv0POzK2VMQ55LdRvptynnnLtp0Z0NDdfo7uW9XnVh8yZzYO
Pqj+yzC4CHrCMzAvXGu9QzL2+w5ZV++5ps4/aHZCRAN2a0fID2Aj5VzKucTigng+cXu0PMnzImwO
Nof4PhXmEMuneDv8tvittk01/1WZH8p44vx8s5t37vNfJqbPMynJTZwujeTOheTQ/vy/gr5NlAux
RYmz5Ane8zz9l2gOiO8nD84gH2Zr7mDcWmmGubS93OyXh93TZCzvKTH7pCCw53mt8m3NV/EyydOc
R9052MHW7kMbz5KxUMH7RmmucTewRz6iL/nHKZBt7mTZZp6SG3jfppykNGfvkOasBqnKulNWxJOy
wl0tC6lbnXhAVsdLpVHfEeZVzYnhM2Iqluhnc/48ysWBrQy/OaoJrH+zZBJ5+fHMccN+WVXk0v18
P2Orr91pG3L8YmjgOwz2UHQ8nSMn6f82beXaIMff1J7za2UWflbonNq5nSVT3Tu492lO1/HXYffI
lWYRBHMc9SUci3lp60oLhdqE5xkwXtfZQu7WfWX3Uprp3id2vSbomnk9OMO5uv7+Czo/lptp70hv
8zmwh9RPhf3VG2Y479G+mTM6n7PCHjTL0ExJuSeAtv462+86229svAYq8GsO/ZL+hx3IvR34H5rp
stjCfOn6OQX+C9gbnDcZ60LJtfN3Iz7dL9PMVeghkWLmUb+7yAymXvfnNGD94RbKJfbbA2vnajT9
cmWC/UY0lVsmwn9Z7kWqr5i3oG3iOalKjGa/niZV3mYpcb+PfnmRWNeXtatmXXNlofuBnGkukNlu
vjQosSp/Z+wzLEpdcT6l/j3sTyg3Sp3zjlzJfC2A62Ax391qeQOtAJyX6wOuVpxk7Cv8/xf4ZvDc
L/1M3YXyrCV8R1LWZUA7/wNodR5m7EppcJ5njDX4wjhuHucvAn2+EzA4GGecmcEZO5IxUeirdlgU
6tWeHSWoL45CvdrKKNRXHsWPrtp15UdX9QOjUD/wFPjR1XsHRKF+wDH8mxiF+okn4EdX81wShfqS
Y/gxOQr1k6N+EJ+4x6Ze5W76FPbdIN9/gp2EZfelXuaZ+4U/Jyi/G7T7KayER+AAVAYQ8/x62jRi
/wbrYGoHqdexfcX+wnH8ZXAu1KbH0r6pX6bHtgRjpjan+7dtxL4WKZ8BH6fHs2Nr7G3BDoBVwfc1
BeNuSvueWtbRPtU3/Y2236YOfBe+Qf/+2JoOUlvT+C9hfwF7YUfglz6fGcyHfvNz+q6OuCBfmFXE
jKtEyNUFiWTamttkko25u47IVdfbeLhP1tt45xP7Rkl5vAc65DGpVN2gMdy72rZf4jWQmwR9glaw
euF98cwr0tv7SOrNfBnrPosuHke8ZQyzXK7Qd2vcVs3h3ieXwRTNYcRNzYUTibmNOVusfsmjTYH5
K/4+Itu5szV5MyVG/3iijPKD5PW1crN3m9yaNU+2x/+Br7tlDvmqf7xeLvTulvHh3TY+T7K909EF
gc1aKbMTQ6hPylnmY+mb3Yiu+51MYc7OD8cOtZZJSAH1umbbgv0HX5bCJOsz/qLDjClFj6GZbL7+
FnPSYP2ZrPnT/FyMu0DE+5zcPUEGJ7LRXsOkKbtI1sQP8R1xdGqpDGgfEx3gJmVg4hoZ7jXKQG86
a1SKbv6QeZ4mOaEltm9PzJaEV+e3ot3WmmutXuxpNkiR1Q7krnYbviMpK70Fcj97oiyqa0Id1a4p
PLvG08Mx2r8Hq/mz/fsDm6E37LxTX20KpdQrZO+gOzrZwKdEoayn7ZJQzya2S3XCxa6TOfFFUuNd
xrz0kprES9IzMU6KVJ8lElbXzdMc7R1Gi9bIQNZmDHCn8P/DerkAV1Gdcfy7e3b33iQkkaShJAyJ
hTQBKo8EdaqASsRrSBkeYiKkGaklUgIoIxedqa2olRipYAU6mShIsbwflc4UoURaWhlCsRXFEpwi
KjNtiEBrmRJaEMjp/zvn7GWzeVwdvTO/+fbsntc9j+/7f3MA7p+cbu54DPv3PqjCZbzfvAO85zIF
78tNW3yXj+o8Q9XBN/lT83ynoVrX4bZXPzT12R+0Gz7WqDzker9OVXpUa+uONq7r1fmJJrQB/dmd
5TuMM5IZ18OenuxsV8LO9srQeR/jjq5A2+uB6+nooEXdemiURdoqbch2g7Hr+Kyx1gvauK7uxnan
X306Vt8zz2pdXRuw9xtb4OnrRDauvztYKU05La7XE9kKSlK609jwMvhDaFDPmvfpPut2yp/8Vu0J
CaNjWb+XYd2X2GuhRXuAzx3j/gRnoCMVjFhO3+8KF5GECc/riNH53eL+DO1AJC+IPM9gzk9r5CrD
WcMvGREiYuzlQeR5BeduXeC+gnFBZKgmfEij9H8PYA0ojEgayVDW5VjYI1AZTPjfhuc9pGS8dffW
0VsX/LdT+N+z43P2xjf9ftl9/LL78lX9757m7gd3sgV41mW6nDf2R3Few/4JdTMNLtb1DbANvGVY
yeCu5ODeXhAP4jwBf5tO52AZclPGlPkuMi6UXbivvgfIkc5oaHpX6xN+UJ+/cKFeJ+cyPWC0Vwv+
Ryr7d8b4vvykyfSq8gUVlMe+BXGX7/kI+480q6Pmk1NxbrL5biBOOqjf21lIUevPcp3zOHzCOfkn
50loAYCxFhsOGdZq7Sd3wN6q1vkW2gO7xQ9y21yG6+g4KTcYvc06doGmvVW/vzYvz/eKi/gflymb
dYN9B2Ur/VJDdSBbnMV36AX8h+fEAzSWY4a4GdoK+oP1groLRJn2R7CaVKzLZLHZd7+/RYvtcqwT
YE2k9qkJMYDrN6n2OcYvDuKxxFz48Q8ozzqLeviGds9xH85Oepx1kUBG4UzCuZiCulPkEdEAW2q4
CB7GfCuoxlpMQ8UsKrbehd7JwvtHwHw894VNB9PBavAYFan3l3FOPkN9IGyU/wLrUDUoti4Zlmr4
e6iEqq1dVA1NXI3+dL1m1UbjUnXoTTVWtShBf6hnIVMSUBQiyzy7+F6Ldvsg3NBf6KzuS33z6iRd
qxN+gqLJsygqnoEdDh0xVjaGTtNou5J6Y09TwU3Y68Mmf+C86R2A1ZJrUH7L+g3NYMRpKlO8LBtF
ITDW+RXVOGNoqHMV+uAEzsFJGu38l1Y5t9MgdzLi2HZaQL6fHZNXcO6mWs3ycGgz5uLDnUZZSQfo
buwhRbiusdY2ABsqV/GIcKYphGyLtuk+kXcIc9eUzg2Po2dwj6NA+yKttb6Gtsl89/A8ScXYDdQf
PVk6h2rHakm+D1PhG5LRZoq5w1Nwnl7ls2W0IGvM7dZ7nNdiLjmy0ZpMuabtd3VeKheBn4My9Lsa
ecytTKhN1jO+ciPzVZftp+lm+yYwBs9jOpexn8WGDnvrrqDbGPt21GMqaYh4mdvqvU5UdidRIWPl
Y4ycLspPIq97DLkht81NXLZ20kBGnbfCzmX8p7uY+P9OVE7F2QLeeYuf6e7+f0yyRo4iruxzt8pm
lHeD5fCv6xmbpMS3PUavLREpuNsLkYOOp3ztw+EbY5QL/5VrL8XZg+7X/VEmfFMJ+0b4+SscI0z8
q0O/l1mXir7w/+zLoBVN/5wnlXJ71vnwe+PZ9zk3Ujn7WvapKmZAi3KeBn9Tzb7FOkQjrSvaB4Wa
FcS+SPSG7yjBHEuUVc/WEONTSijJGon/slIj0uUh5ZPStM8ShP5+y/4M8Vf7q/4iR/sv66j2QdZH
qOPRBs5QMe7CXo3Kzbao2PSZ9pPKF8JP8zPnLiZ/Suc7CH8xNpFeMtpyW8C+4dlEutC02WbadK5f
SVPtwzgna7F3HJMP0mBnGqXE8y6ikbz+zimVr5TiO2uQazqfYx7HSbVP2KNyaKKzFArmBXYzTeW9
de6gDI5dWKcmcNRnZ2hUnOZ1bIUuS0bcnaDGgI9D/1k4p21mnpyfZOOcPh/P/bxczss1iEbZa2i9
+AG00AgqNfF+ry+/Xc/wOXMO0QbO2dji3duoV6rjhoohB8C74Aj4FBwDJ4iu/g17Oo3XJZ4P/YK4
zz3OCaxXEyVFJlC226j1iniKFoTqqJLB3F5i8P7XcbZSNlxvFIwCRaACjDMWPpfGKz8fw3rHqEpk
QB9MxjmJ0hiUi/A8xn4CWr0Q72PQ0j+ke2HLRTbWIYbYGFP6upjf2YtQbzj2N4b9/xGVOwdojvNX
mulcpI1JZbQRdrWwaJQzltbjP37PXkBRztOgK+qsZORrMZqI+JAG7VPLc1HzQX3+pu7tI4hpS6jB
3o9vrbDzQQRxbDjK56ghdIYaRAz7hDpiL94fxPd/whbh+0PGfoB3D8E/XId6H9JyezZF3OnwOfMp
Ys8DaZTnIqeCn6lCH99GmyI1Titi4n56Uc2hK3hO882cDKEzsg1zegF2FzjuzSWImocfnkewbz+t
Zj6B8RheCz+8LvZ/aBjGrwe/A0cxp9tAnXNnx/Xyw3ONc6HjvNUaevBaBuG19Ugz69wFvO5+1P+e
d20f4mANeE/UXpgzIF7D2PzM/5vrnNNz5DOgzkglWd7+40xOUPM+pebbYH+T5qi5YRwnCl+Avcda
cJ174n3q8/SCasf18E3tIc+N13kHDVZzOKjOVhmPy995Pd02Snd3oc5xjNEHdWbSQDU29/2snp9q
WwMfhr7ce/E9D7GqBe+YPvqbmr/5X/G58/7z3NGnk6rnDi3ZgDs6wR2EvnJR/8fQlXxGykETRd0d
aq8yxEBqgD8YAOayXwDfAF8374aB8WAIGGnKbAeoe/x54fv+ebmofIKf1YlgfxCgOPjO7iO3+8vs
P8BEqwZ2g3oOJ+qHfRT7p0Qgjm3y/FdwDPZlDDRAWtyv+VlL9/nWX629/Sni0b/oFcZNgaZpplrn
71RrFcCvF6DfAroB5IKZYAToB/obBptvBaYcAYN61VM0rRfHANmY9p6yrL1xoyTyGLkqkQYOaj1P
AwbrQSfuDx2TM2BPw9Y6/RAXXoe+87R3grJ4FHvgAxr3Lj+J5tVJk75DQ5m4Bt4pTzokT9r18hP7
H/KTcBU04XEqDqfBZtItKbs5S2m/AWtyBQ9zQYxtcJ6JtPgX/d8Y74LSFG/rnEtspQLnD9Ai243+
iFEl8tJxsItQ7h9+jTLcLOrrTqQ1zu+pLryFktzjlGe0yrORpZQazqS+SWmIs4ehQ1jLlMOug/6a
j7MKTc0o/T2A9onhOJuN8CsLoaWmI66somSVH3I+eAIa5kX6DrR2C8Yfx9opFJWHWbdivCrWReir
xh1NW1Mq5JuRMpmR0ouKcc7GdchZj5EV2gwdvBl3Rr2jHGsK8rDNNNj3rtTYwcZ67x9Wto3WgOtA
P23lJWsYLcPz3NBLyBX2QRfvU1okHRo6k7EL5f8YXvOesJ+ifEa0YA99zwnzxU0dCeZx9ib4CRAv
B/KqYJ6W8I7sxt1jvHsyl6IMzlCu1pds21thJ8Fegn0d3APuDjzzWd+orRwI8sF9hhUBhqPu+7A3
giJP3+N5uyhC3tYb9+wI1Tv5NOj/7Jd7cFTVHcd/e8+9d5NoIATygJLsKUgihIZko02VSLIR05BC
iTGWl4Vudm+SJZvsursBg7UgFONoS22ZQYU6QSl0oLZAYivUzoRxUFvasUwt/AFIA/QPptXG0Rmn
auX2e869GyiU6WvqjDPn3vmc3++8fuf9EmFglvZt+hHYqc/HHfEOcLW86wpd9A/Ss1LsgxU0ybOO
ymFjjbmU8ow/Yf79BvycGjDXG6T+PO4Pv4Q8hvmdoh/IuLtot34b7fZatBtzegfm7A7soTXGHnpM
5ttOO8xM5HmJvmvss98ynsbaEraeon5zCdJdRHyRWxb2S+OLuOt0Q++iiM5hs5CajYfoCybefOZk
1LeSfoY7adSzwu7zbLef1Xzk85yyX9CnUr25lzbiXtmv78I9ei9kN+igRjYKiXBjiRsHHW/CfvPH
8C+Bv9uJx32lQeoP0Bb4N3petnfp3fZRtgfvI8Rrr1KOLGM6rdI3yTyivI3mHrfc+6kefdkv/R32
X/U42vMe2viCXPuHtadoWoZGUYFxnBoyTtBGyXFH3pCHfEmamkHpz1509TrwrKSt2hCtEmT8iuYJ
zFcw/1+5dj/U6pFvK92ePjdg73XsU9XGa/YRvcvelbWLKGML9pN7sfdshnTfcybCzSbccRpoomk6
6F/Cm/JdqjVXoJ3LaRbbLtaju79ftd+Ltxna2+15npZDroD8cvpdB9sVhoF13oV3k+CzmIeCgy4Z
zt02c579sXch5MOQy6gpYyakj5q8Q9gbR66VsH832laEvTEX0ky/H8f8t9I27UG8aZOUi/ljmjhl
sIeS18R96PM0P+vPFPI+Q/Nl+iRNMJ+lScYO9OcD2JPXgfTb8CQtNT7CnNlDN7NG3J1/KNdRDfJl
6mT/Mf121MNUw97DHufYM9N29YnY9+dTP3uCmgU6Q98LHsI7DmjPwNZqzPOXaZP3IObs/Zg7+2iz
STgXgtgbX5d1mQJbC9gdNCzi9EN4CwoG5JtwAdq3yWzHujyGctw0Rgm1ox+axTiwLTTJnE7fx5j1
Yy58iHrbIk6OTyfavY6KDbxaxVllLMdZU4V5/CJkGNL1ow7FSO9Bu/KQNw92RZ2EFPfYPHlGEdZt
Cm07gfE/g37ug+2vkC7fvZVUa5zH3V+M03b6VoZJbWYtLcFdupptwx28CPeQfZhrF2gl0iwT5yLq
M5z5IBXoO+1R7y04E9/AHpG0PzBaKUueq0mq196F/ir2snfs9020T98C0C69DWnbMIYXaCvGqAW0
SjDmAt3CXDwt7+mbdZM2s73oA4OK2a8xhk/j/HzNfg52xPyZLOol6ybeglUY04v2+/oRcALvCrLz
9ROALl1E+8U9v5xNoDD212LPR7DXArtH6VGT06MovxNzW9i8V7xzZF+gb65e89fzszyst7zL98Jr
7kv/6ky8FXc7cPk+dOkg1i62H3se9KngMeh+UAVyHD7+JtHfHgGboFtIUwn5onPmXepgZ+lcRoqy
8Ttf9H/gw38PtvrTgxe9mfkc0Y33OYw7S5SDHp1Y7pC30qEQN4QpdUTFhUS8wWHa1x2mH3GYsY6o
dINCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQK
hUKhUHzieIgmPKn9lGroGHlJoxyqo0eIjALjLTLgJxpHP4HLAGlThCt1L4Xh80g/ebK1b7g6oxvZ
466uQ3/S1U3ou1zdS5VsP1J69EzYLGYjru6hQuOSq2s0zsx3dUaF5k2urkOvcXUTequre6nNjNJe
4uSnCqqkamit1EkW5CKKUQ9IUR/FZcid8CWgCzeI8IhMUY6YAEXxc2pBWAfypygpfRakhdRr4IZl
ymz8jfC1IdSitQhZLK33oNx0OQthvQ+2e2GHw24MNiMUgh6CHkdcYqwcPlb7CqqCVjLmq6bZsg5B
WIgjLUe5QZQjbISoy03bBF8nQkVsL+qYHGuT6IeIbEf0uvVpl33BqR7+NsSI0KDsiX9so2Mn5raU
y1J6ERuS7RW+dthei7wJGdKLVGHZcxzh6fFYgDqJ3onIfD2yb+fK/JZMYVE3yhQ9HZYud2uUTstl
eBIhov/iYyN4uR0iPoVaRJAziV4IyJROi9KtCMo6iRkQliWKOnfJ1rX/N7NnL/dXVFbz1k6LL4r1
xFJ9cYvfGUvEY4lgKhLrKeeBaJS3RDo6U0neYiWtxBorXM6zsxuttoS1li+OWz2tIs/CYF+sN8Wj
sY5IiIdi8b6EyMOF+YoqXiJE9WzeEozGO3ljsCcUC3UhtCnW2cMbe8NJUVJrZyTJo1faaY8leH2k
LRoJBaPcLRFpYiiUJ2O9iZAF0Z5aG0xYvLcnbCV4SrRjQStfGAlZPUlrLk9aFre626xw2ArzqBPK
w1YylIjERQNlGWErFYxEk+XLFjcvXX5PWSARCUavp0tH1CLIU4lg2OoOJrp4rP36PfgJr+8siVrj
n5Y1vgyj00xLaTndQ2VXrHgxuh2oZVTW+Hqp/tPwK3eU/8t+4py5RHYpbaN/8h1s3Ry4gc0WvzaN
isjHytgsHOQ+NmvQLPIdYjcPlRT6jv+CzaQRoLGZg2VFvsOslBUNzvXVHWLTh3Lz/OMDn2McR+8c
6XK4MbAfDAOdVrFihOfAXQ82gP1gGBwHJk78YhnLQQwMgBERw4rY1EHuywmUssnIOxlH+nhWQKPA
Bgz1LECpBbQYrALfAQPAlOlESAysB8PgHRlTxwoGv1eFuhcMPi7F0OqoX3qDjve+r0rv0JJljlx0
tyPnL3CS3e4kq7zFCS6vd2TpbEfmzvBvEDIr238kkM/y0ch8VDwO16MdpfEeD/loJ8ujA0BjphtS
x3KHbirxDwwznTxMYx7MAJ99hHkGsyf4A1marY1SLvm0v2hvOzHa20PjJvgHAk3aedoPhgHTzuM/
p52j9dqI6HO4tWAADIPfglFgaiP4/4D/rHaWxmtv0hxQC1aBATAMRoFXexNujnZGXLykK/RaoGln
4OZop9Gs03DHa6egndJOoWpvDFbf5j8slbI5ruKb4SoFn3GV3Hz/Ie13gx/MxIwqwUhjRr3EptE8
qmLTBmdUYvoVDtZEfIe0C0O8zLczUKH9ng4AXCnh5gAOmsHXQByY0E5CO0kbwBNgJzgAMMvg5oC/
M159MU1dYfyc00pvQaAwh0wuPbcU7iZXxDCwCg5uSztc+gACml7WCIIkTpe4pCDJkrFrMpORTVm2
xG0umYkPi9GY3RbDCpjoQuYmc3MP+/M4H/Ywn5w+zPnU/c5pwZm5ZLf9fb/vfN/v/Llfz729V2Mr
wE3gZ7INMIE+QGE/ZDBNlt3K6BEermLfs6/JRlT8O/aN5JvsuuRv2VeSb4D94BV2PePnJFyCPEEf
H9gHbkZ+Hftyrr6S58IV7Cpqx2GbgS6gFxgGZoEidpXVZQ7ySgyyRFYUAmWG3JH8GTmnEPMwN/Vu
bEBNGL39BXgwZ7WzOjP10x+jKYx+6n14wuhvvQtPGP314/CE0V89Bk8Y/eBheMLoQ8PwhNF7B+HB
ZNmnX9Q/y0O9R6gWLmdTqNIUqjSFKk0RN5sSH/LQLdb2SaaxERU7YxqbG7m9SO0r1O6n9jlqj1N7
mtrHqb2L2vupbVBbpbaf2ia1l+gOlMKm5uXHmjvNamqvUPsStVPU1qndQO16ams0ZGZZIPPS85Ji
kubC4qIDv9CJu085C6CiAez5AO4JV2FvATnZMiHS6vLiZ/yC6+Yau/Ltre0tR3H5LKPjMn6GZfIr
4MYPtIxttIxBljFAOWwXMAxcA+4COaAI6josfFbacthmoAsYBt4E7gJFcjl3AUaOFpb4uVyYWHRz
YeG9gJst41OHT4AFzFqf6jN8u12zKi33015/zs9CpKoKt+zKCqUiS0vnH5T+9aCUeMNedorNils3
e6/As5mHuHXTjzL6Eg8/TT8kfjd2Ht1JdNoA3kFSst1GVEVwK1HZRXBLRt2HbuUZfQtfpGWi1zx/
qP7G76hZBvd3dYn/omXdNMN/QuTiPP9RneE3mrMKIlf0LAUtalK6oO7gl1ak9DgSZzJ8WtA8f0Pt
4UdUmRjPJ/an0DLLeb8+xHdjvKg6ys0UxpznXep+viuvahN95vk2LMHIu41Y7GZVThr0I3KZt+3d
G8rSQ+YWz2lPwtPr2e5p8WzxBDzcU+up8WxQKhWfUqasV4oVRSlS3ApTiLIhm7ttGnj7JBuKfIKK
3MK6pe9jwor3V3HrowrDs5PzlCvO4gMRGneujZH4qOb8ORDM0uI9Q866YIQ6lXESH4w4O4x41pPr
d0JG3PH0vZxIU3rKQtRhb2cpGUxkaU6ETtQ4ld2JBUJpxYmTNYKfO3HSskh11bGu6q7KzoqdL0af
YEYK1nh0VD/m10ac0/GBRKbtwoXaiOW0SD+Xgx93PhjQkokFep/+EYsu0HuCrMSCq5Pej/WLuKsz
alnxLN0ndUSj96DD1rkndQr+pYWOaIo/rzuT1zWgP3T1gqDzekmD1DV4vVLnpkKXTtXHoun6eqnZ
iAc5qUlt1P6pWWmApqFBaqpssiI1K1W20DidUqKqkPhVKaGbiColKt0kJfseSZoLkpk1yYycyUUf
adS8pvT2qqb0NjTG/z3GI4ZB5zqssWRsPBgbCcbGgRHnnWOHqh17VNPSY5ZIaI5LHxkdOyT4wLhj
BcejzlgwqqU7kk9IJ0W6IxhNk2RsMJFOmuPRTIfZEQseiFpzPX2tocfmmlmbq7XvCYP1icFaxVw9
oSekQyLdI+YKiblCYq4es0fOReRW70ukFRKxupN5nmMlxdi2IzUBK1Lle61T7uGOQPV0zSIeXc6T
EsNy1gcjTikgUk3hprBI4dISqTKEywup6umOQM0iPV9I+RCuCEaIMTGZmiTVsVei+W8KB0ITk6Lg
eWuk/utALuaYB6KpCULiTuNA3OnaM5RIezyIjohTctpXYyUlsWzuWj64FcF2EXS51oQitkvEvN6C
8N+//2SBu8VVYLOlOWr6KV4JLZfjjw8y3BEGh3CuyaHEIh6sxH9FysIJpqhBU6tjFJZtGCTfJuKc
VzExWfAKtZgocL4nuqRWS7J2iGIZaxWbkMPKchrJRLjMtd3VjFcP7toGbgI3gVvALa5ms1LnLhbi
XiXES4qj3FMU5aujWsbfAgwAnnHWHg0KZW5kc3RyZWFtDWVuZG9iag0zNDkgMCBvYmoNPDwvQUlT
IGZhbHNlL0JNL05vcm1hbC9DQSAxLjAvT1AgZmFsc2UvT1BNIDEvU0EgZmFsc2UvU01hc2svTm9u
ZS9UeXBlL0V4dEdTdGF0ZS9jYSAxLjAvb3AgZmFsc2U+Pg1lbmRvYmoNMzU4IDAgb2JqDTw8L0JC
b3hbMjk1LjMgMjI0LjMzMiAzNjguNzIgMjQ0LjMxOF0vRmlsdGVyL0ZsYXRlRGVjb2RlL0Zvcm1U
eXBlIDEvTGVuZ3RoIDkyL01hdHJpeFsxLjAgMC4wIDAuMCAxLjAgLTI5NS4zIC0yMjQuMzMyXS9S
ZXNvdXJjZXM8PC9Qcm9jU2V0Wy9QREZdPj4vU3VidHlwZS9Gb3JtL1R5cGUvWE9iamVjdD4+c3Ry
ZWFtDQpIiWyLsRHDMAwDe03BCXgkINHgBOnjNez9W8up0+H/HuFaEsrCEezUHjlXdNn3MxjhMvBw
KtruwaIj+9iOrrZrnINreWkDKFcKf7u3StU0oF0Eft9HgAEANK8Y3A0KZW5kc3RyZWFtDWVuZG9i
ag0zNTkgMCBvYmoNPDwvQkJveFsxMTYuMSAzNjYuMDIgMTc0LjgwOSAzODYuMDFdL0ZpbHRlci9G
bGF0ZURlY29kZS9Gb3JtVHlwZSAxL0xlbmd0aCA5MS9NYXRyaXhbMS4wIDAuMCAwLjAgMS4wIC0x
MTYuMSAtMzY2LjAyXS9SZXNvdXJjZXM8PC9Qcm9jU2V0Wy9QREZdPj4vU3VidHlwZS9Gb3JtL1R5
cGUvWE9iamVjdD4+c3RyZWFtDQpIiWzMuxGAMAwD0D5TeAKd5RB/JqCHNWD/FkNNp3snSZEr01wU
prOYHbgtLZdjH/TC1KLM2EBNk3vQCG9wzPSQa5xNBYZGK7FY9Vd7Sw2p6Pf8do8AAwD/VBhkDQpl
bmRzdHJlYW0NZW5kb2JqDTM2MCAwIG9iag08PC9CQm94WzEwNC40NjQgNDQ3Ljk4MSAxNTUuNjA5
IDQ2Ny45NjddL0ZpbHRlci9GbGF0ZURlY29kZS9Gb3JtVHlwZSAxL0xlbmd0aCA5Mi9NYXRyaXhb
MS4wIDAuMCAwLjAgMS4wIC0xMDQuNDY0IC00NDcuOTgxXS9SZXNvdXJjZXM8PC9Qcm9jU2V0Wy9Q
REZdPj4vU3VidHlwZS9Gb3JtL1R5cGUvWE9iamVjdD4+c3RyZWFtDQpIiXSLsRGAQAgE86+CChju
H5CrwFzb0P5TcYzNbnf2TCuqZorptEVUD3gYU459IJqMEI9s7SH3aFbmynaljkW5xjmATZ3wtku9
gJ/y7Uh2l1M983s/AgwA5eYaQQ0KZW5kc3RyZWFtDWVuZG9iag0zNjQgMCBvYmoNPDwvRGlmZmVy
ZW5jZXNbMjQvYnJldmUvY2Fyb24vY2lyY3VtZmxleC9kb3RhY2NlbnQvaHVuZ2FydW1sYXV0L29n
b25lay9yaW5nL3RpbGRlIDM5L3F1b3Rlc2luZ2xlIDk2L2dyYXZlIDEyOC9idWxsZXQvZGFnZ2Vy
L2RhZ2dlcmRibC9lbGxpcHNpcy9lbWRhc2gvZW5kYXNoL2Zsb3Jpbi9mcmFjdGlvbi9ndWlsc2lu
Z2xsZWZ0L2d1aWxzaW5nbHJpZ2h0L21pbnVzL3BlcnRob3VzYW5kL3F1b3RlZGJsYmFzZS9xdW90
ZWRibGxlZnQvcXVvdGVkYmxyaWdodC9xdW90ZWxlZnQvcXVvdGVyaWdodC9xdW90ZXNpbmdsYmFz
ZS90cmFkZW1hcmsvZmkvZmwvTHNsYXNoL09FL1NjYXJvbi9ZZGllcmVzaXMvWmNhcm9uL2RvdGxl
c3NpL2xzbGFzaC9vZS9zY2Fyb24vemNhcm9uIDE2MC9FdXJvIDE2NC9jdXJyZW5jeSAxNjYvYnJv
a2VuYmFyIDE2OC9kaWVyZXNpcy9jb3B5cmlnaHQvb3JkZmVtaW5pbmUgMTcyL2xvZ2ljYWxub3Qv
Lm5vdGRlZi9yZWdpc3RlcmVkL21hY3Jvbi9kZWdyZWUvcGx1c21pbnVzL3R3b3N1cGVyaW9yL3Ro
cmVlc3VwZXJpb3IvYWN1dGUvbXUgMTgzL3BlcmlvZGNlbnRlcmVkL2NlZGlsbGEvb25lc3VwZXJp
b3Ivb3JkbWFzY3VsaW5lIDE4OC9vbmVxdWFydGVyL29uZWhhbGYvdGhyZWVxdWFydGVycyAxOTIv
QWdyYXZlL0FhY3V0ZS9BY2lyY3VtZmxleC9BdGlsZGUvQWRpZXJlc2lzL0FyaW5nL0FFL0NjZWRp
bGxhL0VncmF2ZS9FYWN1dGUvRWNpcmN1bWZsZXgvRWRpZXJlc2lzL0lncmF2ZS9JYWN1dGUvSWNp
cmN1bWZsZXgvSWRpZXJlc2lzL0V0aC9OdGlsZGUvT2dyYXZlL09hY3V0ZS9PY2lyY3VtZmxleC9P
dGlsZGUvT2RpZXJlc2lzL211bHRpcGx5L09zbGFzaC9VZ3JhdmUvVWFjdXRlL1VjaXJjdW1mbGV4
L1VkaWVyZXNpcy9ZYWN1dGUvVGhvcm4vZ2VybWFuZGJscy9hZ3JhdmUvYWFjdXRlL2FjaXJjdW1m
bGV4L2F0aWxkZS9hZGllcmVzaXMvYXJpbmcvYWUvY2NlZGlsbGEvZWdyYXZlL2VhY3V0ZS9lY2ly
Y3VtZmxleC9lZGllcmVzaXMvaWdyYXZlL2lhY3V0ZS9pY2lyY3VtZmxleC9pZGllcmVzaXMvZXRo
L250aWxkZS9vZ3JhdmUvb2FjdXRlL29jaXJjdW1mbGV4L290aWxkZS9vZGllcmVzaXMvZGl2aWRl
L29zbGFzaC91Z3JhdmUvdWFjdXRlL3VjaXJjdW1mbGV4L3VkaWVyZXNpcy95YWN1dGUvdGhvcm4v
eWRpZXJlc2lzXS9UeXBlL0VuY29kaW5nPj4NZW5kb2JqDTM3MiAwIG9iag08PC9BUCAzNzkgMCBS
Pj4NZW5kb2JqDTM3MyAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDQ4ODI0Pj5z
dHJlYW0NCkiJhJdbjx1XEYXfz6/oRxup2/t+kaI8JE4QSEgBRuIBIWRNnAQYg0hgJP97vrV2nzkz
9gOyND5VvS91WbWq9ptv//bjf39+v33xxZvfff2bt1vYvvzyq7dfb5c33z28u3///Xdvv934EjYr
w7b+/ePy5td/DNuPv1z+fYnWxC3FfNSS51YKP0JL2/0Hb/hwSfHIvW7Jfx8uqR6pbnuax7BcDv7b
czpakvjT5YfL7y9f3V1vO4buu4t/1S13P1z6EcIo2x6OHMLczv9ObRzpiGHInHb0mNt29+Hy51ff
vC7bq3f688vrv9z99uUZfTv/u54xMWW27DNSHV1nvPrP67u/v9w3tvO/p33lmHMM74stRO/bPtv3
+X3tKHNtC7NMb/vDp9vitv6euhTC0UbgR6zHjM2OvvrXZ5d9GqAUytFiHd7XS1u3vfu/RqYwjqT7
ta/OuILyvfZ9cwcM8iDp+FLYFutWWVXG3FoKRyeCP7+//Gn75zMAPQMOYQvKVO3pmD20G3DCQWy2
FvjeQEacR8GC1ghzOuWCPI+J2nImfBzTir5zdyQdPR414cARhj+mmjcvrVvPh+67RJzrfCxHSpvS
QJz5S3QQ8Ba/JsrB0jGO0PuT4uEy6jFiwV5D91dg9wrc/MLPAjTHSGMrbagSxs3PDPSVqDLalhJp
6cpCwrePl1QIgjBWQ+aKTNHkbZJ7hD0eiRTFSErbhtSIS+x4nbbHy04p4NTtwJ5IEIkac3LweUMs
1F8gY8cAJbHUo1GOjxcOHdgYSyOaZKkQ62RxAAfsUnzaFms/ZnUc2JieyRwfo+WCVb5e4eS23mQd
1iq+JERkwWqBuUXnllBUQtGEjEjQ2UydJTJPEOIRQVjqJJQLq9MkqQU450Jakr6ySrEmz7UjEuIo
r8s4ZuOiYZJSDFnBd+Abo0NK3qo02F3hJeJQgg4sR63ThqejiB24onmFAogMDiNA2+N4+n1PEhSH
m2bPiptWAzntJqBxcn7rjh870KQyrOlNjLjXeuTWrCkxXTWU1dKQeuSS45JTlpW12X5poMO9grlU
fG0jPXuldhQHRbEUXYtmpm5Nz+CFsiNKdrMCGMlFYhL2WI8sGunQCIiUOIoOnPCuxRkVZ05rPh+W
o9Qd6hJX5IFW041gCmxInj4CHs2EasI9s68rV2jwomFLkrvT6UITVDW4m9RGKvS2xJ6rs8WvRmTA
YcrjzHCwBiJTI0KOyl+NzsijVwB0MI9BfXiFuCMKf+Dwo0Aza1SpDTMPMrkFGAEQa/kAMkaSzjMp
3IggZiIXqVu1TGJ0oztaZMku5EwRUOoJgWCwtlLL3WE8xN5ETlQNOMWulDR/rxJm1KaqeVJk3FhQ
zl0liZ/dZqrjEqBMqBTd4syL8nI5gzuIJkQSYJAHUUZrat20hrZkUYhKme9BRa6WLm/uP/U6ZYBS
SXMdlGYHaU9+q6KUkR2SEw5gHqhmh7jGzI42FxKovVCLNZ7QURXtmcDDjvskIVD9DrutqqXNBaEW
RTLFo1IYiveUrmtQdBDuY1Nfisr5OxNMr0+bujahGiEt+CRbsYMo6EzbiCuIB05jMVsQRWFNE+aU
T5r1rCxV9S1AESnVLazQZ103BTWfvas/j3Wqut9OdSx2515BfRczlZVfmZKzVW3UtcY/UPRulo+B
dCpJ1F0fppMY1yixU6tJ0YNPYc9hBYnUrpjPmiQksyy/1bYI0yRcohTFJrVkRVrUOIcLR5oAplTB
htpcPUapvGqYWiCsHX6QcYn+Qv+3TA9CkYUle9k1KA6pCHh3QLJMS4VWg20KWYwCTFVZTO+Jxs6e
mogyOfJDkRIhNUxxuhTWJNZJZpdGwzRmcD4xyYpDxR17ZqpxWMQyQl09IaoEK250DI1uK950GFmT
q+aQFTlQqohpWW5OLj4NXUXNpfZCQUMbJyKedCoMRxw0Lw1AEnSF824LIFwF4UTSFMAz3VTJGJ5U
EKEb4VyKaUUzLO9X4qo8ayqo7oIS+++5i9ddhZ6jdKx+CGOgSEGwTI08uifEuDTXplAhL6oQMFNR
H71kygXaFPRjQi4aqT5TYYo2kvOZrWLoUfoz6dYYqLKNSn+muZdm4hZCHA0NdjF5SsuqVTAADqD0
AUSyLeJHku9SBVWpfA9DPMfYBNFpGxNIFZVDI15BckhX1Ex1/b54WaqqyrOqaSgjaaWssHfCrSJL
bay0FKGUfB3GG603gg8VXVGFCRWT+rFipKXoJXlPdimBSRAdq48t1ajl/CwMWiVmuqrwiAl3UTcR
UadSk1c5gLHZl0cawxhemuey5VFWDWlEG/XqtVgG9CW+RPKVzKSuC5uHKrszyeKhNWXVEvDCOfGj
VFk5YB7Sk9FrsorfChopLiRF+pnqwSpZhoohUW0OYqtlyWrkYBvaPheIFjEnszSeKpVHZFyJsd/W
cNWTCj6pxppyp5EAVXLLlCp6AIZRqCJBImrCTItiWrNjbvxiMw13wkmAZKr5oXns5LagGSKexdk2
+FXlZTGrhqiU5pSjCPpfzTWvI6IZpmj+XJhQQHcG+OlLsL8ED3/8Wu1RrU1EzOaqESCpnjQrkMJu
ntVjZMRzADTLJFs2vMbNRLOTO2ZVG+tSELLgTVzuPsGjijlXTMZDoixy1sC5i0vLvCk8wvT4bAm1
rcCn55tMs8JqKZ6HirGLYX1du37smutn9UTilpzEY0oqVK6+uvOEhQhU03jX3UWGSlbTCw2xZdmh
F61HQ2wNspUuADlQkIc59pQeL2KzdFPs6nKnLNbhzvUZI5IoHBi16BME8LbRRky8ZAB628qaiCkw
LvKAW7ufKeBOk0jbcDh6ooTYVA5Nha2LhbShCQXO8iAxRBBjU8dKMiW6VFUpqjRqaGq1Xj9+Pqpf
xykah4PS84ntfLy+eLomHMlqnwwiNvA2ugXPBGenoyQmt8bpB5I63zB9pmnOl4IShQ08TIJjEToW
j3HKnR6UNacYFSRxjhUmb9DjEF9dCPO6A3dE8t2TTckOsN6NdQ1roFH3QePr4RQ10kdlgvpBoUrp
eoaeR5TuaYthNfiBoYcWSc3FowYyP7icN1/zdxX/EBsAM+1XZrkartJk/HDRoKoHaHXZLRmezcE1
i9y9MNP5bA/Y0SSW/bZF1L4FrSkZrmrUDkkbWIGEc8RravoSjxF9gEAp0JxNV9GTM7yj99/QbD91
LWmAn4BjVp5++mxYHxoocbhSJLU/m9Vp8BwDKQebqxcQlQAnhoUAmhKli5ySUkTL0KPySe5+DYbb
nSfcGKCfA67qidSprV5t6fNHEoEWnRD/ogdHVCGqw3oACWsyOVQSKEWc58MQSZy20g2DaK7XML06
j7K4yKuafB1ei3PNVERqKRqvCV2zOiNB7hL1/hHa0xrM6a6ag6Iea10maIbeayIJ0aIuqbmdRSyN
OlsF6npo7sOEhCwYKovArZyKPBcDcpm6X216HHUbo8HRCg0NjyZa8zjhr6CTY+MoS9bUghyEkcoY
25r9RCP/qsZlEQ+G/I/3cueR6ziicD6/4oY7wdL9fqQylEiQYUsLOLAdEEsaprUSYYogIf96n6+q
752ZpUllSqZv9XT1ox6nTgGBlf5Kfv/1pESqVxNPx4Sib0yfKGP6plWhsP8vrlkSPlJ8puqXKI30
b3Pdegrahnckuyh6JqTDaPuMYkrVIS4VqkWixlHShA9QsIscDFAeT8dMxQFj056BulIpy2l1vIjV
g/0EKFrBU7oHeUZ4z4HQfmq2SwJTqOnjaZe70WAZ3c4qpFraFodHLLHb6kCJswl9KHstABGlN53g
myiA0FUUa3Gtr/KN8GdfP1UhqiLNRDoSqqvcQFxXWhYopSLUKo68khFr8MClAkAnnaBEOLDhSrE8
gH9qOXlQXWxW0FRurSQyMUBNIwoRsibUkEeNsqloEU1K/mHVvFjfIS8Mq4aiiEoTOSFhdZ0JNbFq
6c1RBO/hsNBn1RKlAgcOzxzjddxvyZE/B3ENx7Gldmmk5ne2XlQGlXcwSEOIVECII8zJMN6tUbxc
Rhj8gmJK968Aj17n0hMST7JIBJg+fL56Usz1hilUU2ygcICZKGyBOcRJ6wnAi8M60qgwTArJwI3i
6SrogiTVpWwsJmjPyPM0E53Jy2CygqCZ9DKFZmWh2Na2Y1AxnsUxM85m3FByxz6xUyLMYtp8hDXV
9GhxPSNk9EXW2+gs8sgmAETSNBryK9KqEUE9JcihoMn0oqHqoCsMwFjP9XLJCRGUvp3hBWMYq2cG
+Jo2U4K1AgKTDP+b0bo5ZuBmBfIwavXC2VRxDvlZuYnbt0ry7aPc88127Ss9I8NV4MWzQcoOqpO0
QNs1I8AvKjwE/vLh9INtfLOPnlNK0DbWkyjqL9uo0msLkEhuo7/QUIsNvtVll6IMil3blE6IKnCP
bSjkejmAZOxEHmQtDi/errGzwkE8QPDpfIEmSOlfRWGAVlF2tVdkWoYrqggr+JOAharx66kGy6Ck
UU7dKD2CkqRNeocNK6wb5I6Im0Zuhy2nZdpEWEdekqVs9n7QJgT4VNBqm4EJYFw7pMdPCQnBqvjA
JApBgOGwhFwByHRBmgUHpJAJShhBV1ex69EotEJDxbShoTR30hJgb0oRGGnwGeG+8E87wVpyskAW
sOidlJ++Cx/A5ySzuBhUzma84dN/OX31cPrDwwOvePjnSf/DP+WV2Y052LhmSzdcFu2Bn2Kuh59O
d9+dH/7tesn1ytIr25oVtMsF09RGEIBL7W93L89pu3s8t+3ux3MO293r8z8evrnZqK6N6rHRxGgy
Wy/Gtbvv9PO5bHf/Pcft7s1lj889ogZSWgjciyF7ske8fv6IT86uFF07WsEKuUZtO9Q+e5zwPoSQ
TG/O6HrfP9drS69d9OhNRChEEgVmya/5Cj2tDPL+w6O8KMyMxXkjY9hgbWouuhk9zN1E3715ejrD
6re77fszNWi7e/vylZlLISJV8HxuD6+0+I9vn57evH53ToJiX1/52NcHjgash3laPezY1rBmc6Mf
3MD8Xse6wtc6dpPX2eJGe25r2LW70cpp+oXqYfq/nPN29/5T9U8OH5Euq5p6hN0dnvrysUOOjcH1
wrj21G+cpzqSArSNQj/cU29/+zxVhxpNq0P60Xr53MH+8fH/e5puwughlbEkN9Ofz+asl+9+/OXN
q9cXhwXbRlCq2LRKm2wvxjWbBUWj6YJZGJuL0Nk2/Aq7vzvHgPP0+Yqfn/h56/8I8hLpK2Hj54fz
IM7eH//G9e/rc/M/uBRNyLDs6sGoko8+S70swucsxMkl3N5EkeFHX66zzv3MqZ3vdaqQSNVDTVfo
1ur46LOUaxEFkRrlUKnukj+ZR5S7sXDbPIJ1TD6u6THpXBQ5ohJtzitIgaspsDYY/HTWZ+OaVuhU
iG0S6Gdlqyl+XIpJHQT9R0l2Ux/X9KCsCI0Eq9ohzkuM3xtT4YkdUrKGNTkgxrpfpqTQwKL2g6lB
4CIv7PC6+31c0wIT+SVKsV4U3y/FSk+gZrE0U/RxTQ+K+ERRT4Vmo/huKaaWuegMwV7o45pWNraE
njoUyNTFpEKxqNpDg+FE2sc1rewfVOlMd0DDc60oG5riqMbHfVzTUszNFAWFYcGGPVH5Ufes6Str
+rZmJ0kv9QTLSdcmVXoOvRxAX+9jXLOTLkQEOGVwvszr03oxe6qCdk+Mwmk2KzUdAg2CLsgxh99x
aDK1DM9d45qddCsNNVkV4nMU7ugYgtc8DW1cs5M4N9KlS0JKDKNcbdJENVi/XdLGNTuhCbBLyFS6
DhZFb4qYpNVswWnjmqWlSEqKJLopitSu1dTHoVaseVzjmhUnaL2hJsf06H77F2rK6hGiJbsnrY1r
NoYAI1O2C2sGlP4IFFVsNqZ3BXHXuGZhY7PDWRsOb+mSsyJuPaCnWMjo2bhmrSkpIxp1H0MRjt7f
U0qoKqsqJK0pp+/XaHMKEmGL+G9qSgRxHlP7xXUKvWdRVyu+fL/GNRsDvRG0u9MFlnGJlEoDSuM4
OjRnjWs2km8QyNQBxdou8Sz7gZKazipK92tcs1Hplii2SdW7zBov3pO7mkineG8WA7hf45qNkQur
/dKZapbqFUA0QpXeICol0bNxzUZlaW2T8/QxFlgvGjdoSiLcgSbQx31W/LhQVJMaOSv31/SvGv0b
8i+wYOOaVYAo382eQtzFq/x9Xz/sfdv24wlkld3VMil3lOfiUNzyXsdO5eO719BuQg6sawLFSaio
cxQtjnQyba35z8mRYYuQbWV6xVIAQ6JGdpb9dfv5qglJGdBWtivTdfZ1EyIjgGgBa0xZgcfJtbvE
MNQR7LLKWjMkRokAkd3D/vEI1FAaXHTdpbKEfb8l+mGuFVbzEQjYLIyxy9EKLlk7FSqWwkmUZpeO
Gy6Z3q9uS5P2jG0ZOJRe1QQWj33xEvadlujHuM66wXE1tUg3XV5KXUGrWP2MgdNu4HFj4PHMwOPG
wOl3MnC+MfC4MfB4ZuBxY+D8+xk4Q8FVk0sTHFG4LgYWWldTFTNs1i4lD+QlUd4eTxdZFWRbSlCD
nF2XDxlH8+OYl8rYVQ7B9zvEZPwdrSsDR6DLL1cX1GBSbdvN9+IJh3R1Q+TwwoinK97al7m55rR2
rLX+fXUzE/0QV1nnHxf7QvxSm1Qqr80bVHHNRGFikxDtJdHyK+ThV1dtlhj9vzS5lQqTCdEokQBK
rleRmGppnhQEUc8o0qMAxMY3CSw+yj1gFRZRXeSCsgdjGaFR+wYQDkETU5qeFTNS33Ii1kKlQpbO
XiWl9f2oot8P6elER7NL3Kmjr7P27ySXo+NSEH90DePJm+/l3xbQh8TLsm7lkr77sO/Bd7PPZiq5
m0qxRcMWJbtyMOXgq9rEMHUWqmRAI9p3yfslLGbNxKpgOl5jI0hCMWepZ9rj8nlKKQETV5LPexN/
uPV53X0er32ezOd99zli9Gzbfd7d59bUjm4+hyCZYYK9OWKLBP9JsCxVT94Yi7+4dCS1EvqHvuIF
1IYHQzD6bOvB0x6c/cHd3mvxONpn33sUwU9i3BiKPp/4zLM55FqaRZjJ+mbR42mXWLcvZ2bfxXOV
dAzrnyeAdkyCi45HItz9InX4lEQsKRG+Zrxe5jUx22sbzRPdoNW1YMROtcZuAnShNxDTsJrZzCCp
28JOkZelCVedJ3/LpkOZYsfzoTICUnSaFt2F6tHBXO41hqvlHI8E5taD3Ax6NIJHJ/fqslpegpW2
nnfRTNEsEaL3dOJDbFKspkBrdEBdXk4WRbINXoZM8rhuYcZzouFRis38NE1nD/5qwTC+EAyhk1si
zznf1BPdz5s4C1qVvdDMyFZqPR1oJuwdu2AnjyVw2drsL4frbGDvPGu/yyKGL+L27WlsH//HeLn0
xnUcUXjPXzFLMsAQt9/dSwsR4hjOwrEAwbCzsBPBUiBLQWQryL/Pd07dIe/QcpKNqOq5/ayq8+BM
X5wOB5RqXhNxTu7BndUeD9iMlmfGlVu0atbJQDLa8uPN16z91c2zB+V5P9Ge4m5couCuNxuX+LsP
p6xsCDzxdWn1cErfSMJKXOOBmIk5bZoZf/fhlCXaBW6L42zhCd57IqCsgmq85tI8/9kHrbXros42
Nfnu6H7Z51mOg0nb5onxN11UOgmv1EfBNa26hfN8t88cwgdm2GMN58hDFIfxpeBhchiCHy9TcrOh
szi4/N2HU5pUklog0Sx9d3SnfSZuQxPVw+fL3xiVBemp0uEJjBuzPFozV03zxJHDQvrvPpxSl4Sn
y5KaaN/xYiaMOmn3E4dixlhlcX7q6ux1KOZNfdZVx0kwIc7obno5CrDjvO47WEM8hMjnfdixCuLM
C5Skts3FeOaBIHCWGstTuj+QreyOR88x0AbtzNVyrFibnoREzogLP2cy08zH1AeBqlhRVbqoz1aN
GaCpYIlqWWMfGIb9asx8LWP0lUSZaaH+6o3SQhZNFVATkrZ6fCMttlpgk/uBb2tsgybhjIn28KvA
x1Ph5kfjNJNUTeM+v9IUFF0hCa1HPECNii0c/pzik06YbFIjLkBDA2zN3IVO50X5ngonbjK2lEra
L6mYVmO+9MLbG3hM7FSHDaTjjOSrzcd4ezN4Pn4G/CNIvCAFGemk8Hh3pdlnJe5MAnXm0tySjOvE
3YhWJILVKD1yyzJDAqyvvThEb0bzYzaEiBRdJGPCj7zt0PuLoLIZitdaEIGs7QWyQMTN+u9fp3r6
0xEVtcRgwX2RfEDtfTlz+PXSwPHjf18bIIWLqgWfK7VO83H3OTmsKppLI8JoxUUedLLfcSCKX/1n
hs/zugEpgT5ZvxXRQGnH4mqox6itbDP0NO7ZgkrHRkzAjL8aIMFjekoXpx3iSRZRw3w3nfHzlKzu
StsaFg9Ag9wSaW8ltAa7Con1RPEFt2YTqYcVAyBPViO3+9AjLKo7nYVNfR22OWdpE0+aEh/tyYjd
AJUU5X+e/G/N48hYdIhqod23tn8y+elqYJMsaY/HA1YEVYeRTkMAvl1Jbvu6RWqpT4iu7rNqkTTp
JG/tLyMdohG4zyP4DIE4J1+h2tSqqAvdV39jZPG1HqlPj6jdhZSM1FAMhT7UVkiweIrCgjoxl0pj
n5OrRhC/dR5SrZEaeWFkCF9VzD2WWQBFjLTIAypGlXqm/lov+0jJ4UtndKJ1jz4AwVIVgVCD5Lby
DB02hW5U4y9P78wvoS5tQ6+LnEcKMsxTxmMeWCZVS7ZmoNlsfNioG0jOwn2woUoHBaZWGyToYbTQ
Zx99yit2K2OzueukqYLnKlKu1W07j2CBgDqeUoyrXuiTtGxU26ETtfPYe49a7qqZlO6jLy4j2xWb
VAvQvEvnTVR1tVuWTCQDPUlvjCtAQj1nmyF98NYDwuknA37z6FXF8paUakpPBqJmtSbtoYEVXm+T
cZg7KwrUInP7j/TH9lAFv02OeUNFQoAd4kPxH5zR5ooDCOqDaBAJbE3Hga6oliodEL/SJTy9Cna7
DCyeQHWbQoN096wGzLceEIV2iENLJvKxqH8XdjoMdCxC0aJt+hdxX+l7zFr0rHUNm6tsCIupiHjw
REzvq1+Ew1Y0v829FIxl8rjjMfefaIWsY8O/TQhEFoCCnlVxNghBE1c1nBfqj5dCBbEMjaNDCO2k
Mso+Iy/Qog9/JJ+VtmKncM48DRwYXx1KTojoG0g5ldEPJdfEtuKnWl0/ikkNHF8MgrXZaA718R43
EiuFEChU4NdVnwywF5JEHkluiDyAcgxEDV9iEjiij0QSRQM1teNAAhSry7KQKeBgXRBK712WYF2P
m6WYub7sX7EEn63sLf+kgmuTnAdsJtunZfaZHDdvA/pIn8rJ40PWrFKRMUW9bD0fFCG3k5xJEvGq
oT1UJeoRQO+K5IW/aykRZ4sSrrQLX4kNmYdZIq6YwyxeddVzypYV12iriKnkbF133sylD/FviFsQ
CZbj7ZuSRFvmoC+93LpcHm/m5ms5WcBlqXH4a3YL6stHxUlpRV0WC+3rHL6QH6hLIs5CPG2xV8rl
QSNd6b1DzeqkVUighKlpHqmDYpzmq9BnSecCNSWO0jwMqMGDGIGffjUA1bRhKF+mnNcPdPLbZLZg
3knz0J/IlHboomn1LAJ1svawWEYRZqP3GfIafY95Dw7VDIKLJCPqIKpc93izdkLEhw2iNmcqHpl2
XoBvMrMZ0pNcga5DCQdoAjCZ3lK5hlVDX7ieuK/rL0ndshZ5W2FE1LZZxqJsMQNsIbFDl94nTOBx
14IamJYmOn0YHZ5dOo6uTBZQaSPTXGAttyW4yw0RZh4vdieN3hsnYZ3RpYuIq2IfkrAgJ9U75jJN
nBwapE+z7wO0LtnVM0k9LkWxm0IMIW8wWg47IoHL73W7xKS4SKetsDNjiZ/vZ1it7nqFDabvx/dd
EM73l1ggpTuYJno4Lw6r1XWWKj8g9ydUNMcQzxCOEU/BiQEuoRhou54OzUsNTumIpZJk2lU1NhM9
5ylS8vNAwHgQxs94wGJsERyqesCk4c15Ejm48yi71GWJVrLlZ7MpoFykvM5z2R66ZrnWmVauJcKh
PYYkqH0lBK542+W+mUk1LrHFSSQvrE1IxccbKWJVPG/dLfCAimpRupnATNjLHa02/XiDiRFsaaCY
Ijp3kXWztsHShNlgNqn4SEPo5ZpaTnYsajNvcpuTBTA74PeQGZE5TZohSgYmdQLVbFKN1bArIz6g
NnN40C2kCs+45BiKnJOwXotNGxHJT+ZIOEhZC5blqDhWF+d0paz5oM1S5dwpFF6WKmCuWrt5RhxM
BC1/sqLbWX8Z3lSQbjQedkP+yS3sI20Y9eUIcrRrF3V0l4XQVGWxeQ85AZFQMi75xrkoS4ASIlEG
jWy7X5NsU7K4M5LRhZZvD7GgnmtQRnKUAGb3Y5trPt5QTW3qGVBPMzq0AT5qChcV7yiOxCZZh8kz
UPpgVsNbcv8GliliqSFZkhVVdh7xWrHQv/3j0DZqTObN2FSdyCFAd7ogCRb2yh40Qdos1P4LE5Sm
bCJ0irlSpY0EOKGt0hgXsXHFZnkxoxymoGDI1dWUg6ImZ0PjpEng0I+SevGqEucr3JJKRRDfAkrq
9iSe9VNxyNs97iKAYzxtDB7We4hjuychejYOcxa4AOGcvYdVo2hovZEuhjM1i93uO8cEvYX6LJ0e
7eYD8SNmB48EyILP7cD74lf1WZG7EsK2pY7htMthEcGpALXs6hYf5fIKilmVUsw9AGci8EiE8QGm
aZKk98v8CZ9u0x+bGf4fPC4ct6gW5T67wOp47mTXat0hdLnYrbME1ondLrp3D9u2/9r6HvtUYW+L
TqFKFZlXlWdyz/8vx2b9wvogKyctxwMi3mcSvPpJpZdkvw4uUdDd0FzdfqhoEUOuftEbzpP/pPhV
MgmC4qr9dPGUMrv1YJa+unn2wtvHMYf/iiA9DdIHSpKMxYufbm6//OzZ3Yu/a6UhVji9+NvN7bZl
j8US9+pQsL3WuPj+X45EsQCwkLFEV/Nypz98/cfDXGaKHpoJGOBg9W9v/3zH/W9f/fVO//7jDk49
3f785v27u7+8+OIGoSUnSSVQH/7887vBd29/ev/PO+rr9tXJ3+kDkY7PrUN/d/v58y+/u9Pm3BNi
EUOtfY3nd2k73X7/4ec37378sM8fVqmX+d+ywPPP7oD6269ZZT9KAeWSJae2+OwdK3z/4c338WKS
KMcFfND3v3x4FRtcHur88HZFyLipjrUyl+HFvr19eUcL37764Yf9Yg9r/l6Xevn8WVzqko3+yWzU
JfnJ2mOTJPwP7dW2G8dxRN/9FfvIDcBFX6pvjwZtGAaiOAglBwb0wlBURGRNBiIlQX+fU13dM90z
s5dRKAhYTXGm69ZVp06hXLLuq8ct0njxeYv+vbh74Iw/S2y48En8v9xwgsEpLt7dPZQc6ZS6b663
uIHnT+/uH4uv9ZYXoiVUq+JpjVVDKoUL5Pr+4XZ/c/+RQ3r9F47w+te/SYS8YwD+YE1XazoXx5f7
hw+Pdxvkl70bMryQhTzmMJEASRiTOQnIwZ//vXl6kjvzucp3ZvHG8oI4vn17kdN2xR/99qoUhRH2
yROKrHz3080WpXjx+f5dVTOrrJ+26I+LH7dw6eL3qgmkH22faWGXXL4nDvT5aYvg3xpjit7Y1tvF
mwfumRwV6dC3wvWbedEw++AljlEkYvZmm39sgUpIwcO/h7LwCzdeK+PubotIn2sLWkuTQP/I9XbN
hfa6xHm8SMBXPZN+B6C0TlCE63a/v7+DVWKrGyAGcSE83rzbDHcmfcys0oKEpAzopdkxfi6+Ss1v
rvb3D/e3m7cXb37OuHNVu5vnTNy8/rKZ1xFSjvUISfWOeVUg8erv25STsLUZsrao1ovRydcADwYZ
/Jnlr/vH4dX2EpZm+ADT+DRwyTvwp+z71ePTXnL8vMn1x+evBCN/q8Ck8/xFEpn5FEiF6k9P/7l/
qLHpHh1/udnv7z5+lXIxzrXvYOgfb66lYHhO8fqAHcCYqe7hQ0k8z2k4wQwnf/jq05987++3zLwR
6QAntVpMVyyvP9zd5EiH4qqgE+zEvVdvXhX3gABMFHE7pWn+ev+vj+zgDYIr3ZcmzTCexsxFqSGn
ppT/9e393cPtNhfXYN73fl4V3JyMH28n4+f66tdihisLBm435eFL/hB86xJlzLxbPN9eQu0jagNq
P76rRYFT+QQPuNg58iO34tOH25qvxy2K6v1zHWe2dweDXdz5+XXLpbANkULyAihOBPkemQpYPK9L
XLGZTfHSKAKDQqoC75WDMGOYg3qMOufBVab6qZLbbIAG3s0WqiQmqjS1YRSWHCak4Nzg2bMYeBnI
RVCMNPIQiIhDKCIeNkTMsMDJpoa6YPS3RROZtDMr4+1RO78UjVa6i0bk8VpUfzFq6WpGQ8RkFdzl
e0SDRcsngzUVLBapM4vR9LGsKrDRgJNinweh2xB0E4Bu3F8sXmw4yfCW6DAhA5jLMedb3+N5zTHo
B0/x1syT0930pr3nuOmv+dAt5wa0QBQT3c56Oy0nqfbYBiHiEIaI/beHrQTPC9E0U+cGQpM42o2j
vXO0nwP58RqX72Yt8jIxjVYUZpr2LxVTawGrn8Fc9gGtTrHpQHFK7OyrlO1USexUqXw4s+DBCTxO
zS0UXKgmqlhsFLEaKeIBKxZIoiNYAgzsnDEvH4dNYUfGhwULLxgHDADfA1cxeB8Wsu8GvYMhzwTy
xXB3ZNZN6hTYJKYvCDWqzRrdXk7Jm875183NSMpSeRZbC9eCdSxqkOi57stO+WWr/bJVf3lUf2De
itv2AQCs9Iv6HpLsF3PdL+K7Zt9Nzo0BNsYpK3kZkBqtWCwZKc2g8P8GKY1ecCGhuYElmino94mj
WnFxl/haXioOKxxfE/MP5Ek7LChp4w0YMujox7sf/rl5mAxlE9F2AcMF/KiFfSbVxLVgyIkvWcbO
hs1vlGlnbC4ZNgDJ5+3KKl+EW96qoqHxXQxhOFYkUSqfQgZByPUnEoKMeRcgDD8oUSnvB1Seb9kV
MrqIqnyvRMvtAhFBciIFxBx3vm1jxW6RzVyZHxPs8RXwf+ATvBkqXJypUvZXcdjlrd5pWSLyyUFi
lflblqEPudkvOWWwJGHx3FnyrvPKcOb28hRMDl/lQROSZUFzDkXK2TCBmrfYFJqDRZKbEREKsJ3u
W7GUOOVxoinngZxlweXbdqoKWY3zZnzntR1PeaCHaMwfVpHknc+CbQVTP/RD4KNYggjkmwAjURd+
Iju8xQWBataTg1QLM4vIppZyA0mRfObtlnSWiFIjBa/laJZRY8bJ2Syj9kzIdvK8dDbWZBXpVkqL
Hzm9w5EiiD58JKKY248i5QoylNVqTjr+3c6WncR5po21Dq1n/HJX20lX676rS6ZjbLs6nOxqSfPQ
1brvarPY1iH3bo4p5TnPQtfXcdLXZqGxTfRIF/Jlrd85ateveWeTdDZJ73rpbF2l0tlpeNt0Nq3r
7OyVAjpY4sY0cdrZlMbWDjJ7k5Sv6XrbTHrbdL0d2t6m1De37Zvby7d2LlQ0VWbe9lYqmYrQtb00
MCbOrO197eaQRbdpBLv5XN8NiRjlElOg2MQbMYvabAytbqS57XBykEo2itz0uu9aPUp7hUZqWj1K
a1Jtddl5C6SUVg81QUUaWj20rZ7aVqczWj1Iq+um1Q/tipawxXlAS9BQZ8i3teYy6s7ZM6YN+D/V
M1LdOn/umDG8P2gsIIcAzHXGwDNsWG/M6Z1zKwNzJud7vS0LZMD6uM4Y3+cxY9/AzggHmOYGfAlA
Cx10oNZSHrcUpAyDmfyH2gVP1r7Ke5aDCsNnjKhh0CQS11h55E6qS0Fk/LYY7EUFflOeG6xfBGky
6BVRCAR8E1GV86qoXSBmqA0hZiZ7NA2XBKZtlKEvozp6XaVs3wqg5bc6G6onRVLyWX6sf+czrKnq
y88CoNGKpMrXS+OWr14HvqYTfsdjflPntuvcdqPbrnGbDnodz/Gal4dAmfp721c5I2vRrHI5SYkV
RhWyz7jGWF/ZnYtmOCWSkvrLj7skIy1uGiW2CNlntiOiks+XfeaZneEDszfGjrsze9swGltUmPHy
q8vz7Q/wZHgDUMaIyAfksZpaBgSDfQ1758YlD/Wqz5Qr87WHAz7iEx+BMslThQN7DHtMSHksrDEV
MR4SrTcV7S6heVeZ4rT7bzAFpNNgBKtsOVRTOGKr1Y+SwXRwCfNPKT3FySgDNQrwdb8FI6tYIDLV
b0aEjOk8hBQyrVKLkKFHyA4gY4ePdAQfuTYCE2KvmBbRDGZIYMath0c6AI+hhUfTIo2pUOOKqMqB
5YXEMQ066XlYDZB0ACBDA5DLfoez/PY78rmwQh7RU4gUhxW1EGkOQ6QdTok0QKQ9AJGmh0g6DZEm
GrRaBivsTaTcFCJ1g5GUf015FoysEgOjKyfk+ThIIqPY03AhntCpStOsx2nW4xhUmJxx47GnJh/a
HqejDA0LrtYIYpUtICtm0WpbyYKR23W2cCZxKlbbwoKpaKUtYCvWy8O2Wv28VmT96MOk0wGgDAUp
dQuVesIn9YRPFgbpO7T0I1r6Hi39uXyyp5PxfDqJCzdWcUE67BwA2inqOEEd36GOmeBl6GDHDCdF
GmDHtHRSsEVXhSIU3PFFPMrNcKfK0GnXjzJKm5YQ0x2llDa1ruve9Xim68nxkCKDuR2mrg+YaVvM
1B1m1r92vDIc4JV6U4402KuLUGDTFlGVA8t+611MkXsWU5Yr6yRu2g43bYObvsFNfwo3DQCbUKZk
Qa6IB9RJbmQNNlQN/SZJD3HPm9M8jM8lwjerbCEKINF6WxHtRyttRVyX+wZbfGd+nS2LklbxiK1W
v9uZEES/tmG6K7lUeFTqcFNPgDNMgDN2wBkGTefQTLMpKqywhZFm2gqcuogFOVMRVTl/BDlx5cpr
3AN6IW+2B/garUDOE0yzQ07TIufA2KhjbAfgB7cZnaOTrh+lmhPktJ3rdnTdzpHzHLJ5wHUUZIgY
3WT9zhjrZsgpaK9Mi5xH2KYZTi0CZ8M2dcs2dYXNKh5hm9Z4BktONxCp74sRNE0Dl7o8t2TTriab
RkeGXDAFBwVk3DkLpU47hXXFUkCvnI0txiiEAL/XmDJMgcJ6UwRICuuiwpnIrGitKRALvTIoj0o2
hy212tEQjrXrXbL2AMvsSaaZgGU8AywryzwFlrYFS7cp+kUoYGmK+D/yqy3HkRwH/vcpfAEbokS9
zrGXGGDqv68/DAZlZ2bZ5azpnsViB42GK5CZFCWREUGS5Xr43mXiqs1p2zq1medvR0vtXhoUUEgM
W75pi27aerYhyvGCKOslPtlGW8G4kKMUbz9rW9z+zLO9Tbpvk877pOc2ad0lrY+kdZv0vGyjbZPu
Z5JuRsmQsWryJPOY9JEfZUeQsmdIOUOR45scOZ6TZDaHN5LitO2TXvTIkhtn+Y4k6SwPxnKzVE9m
usyoQAdtCp0vB0i8OdARxh+5bbv509SYu+2xzH4maLZ2kXNB2y3BhpwI2m4t5XNB+60WlTNBx03M
aZ4KCmlTZprG/vo2dPYbzN+v8Fnf85ns+CzM3ylCs9se1cxWgde1zX/ihr41f+cJrZ8htOeDp+4G
zxf0YHffqonNu7y/y2n9DKfJltRkz2rv8jYrM2D/rAZ7OqY9I9+vWW25wT2t9S9pzb7ZRMoBdryW
v+a1DhoaxUe9lPP4gtd0w2u64zU9w2vS4I2tqGtrt5rSeOlXzKmZ9Rj2ov228aVNkWYJDOuKE1Ez
yuJc0Ob3eSKm+aiaTwa1Ex6qZ6IOa4N6Mmq5tazcv0wZn8barU/Lh5+9T8sHXsu7ofYFrX3Barp1
abp3abpzaXogtSechuvTZNVfjdxsssqvuOG7Ju0XOK2c4AZcZjaVfJv3/xinSZtWb3YjFRuwxn1j
1Y4/O6uW/4tWTVq1KvPuRcdI/+esmlZzE9nchLqtyK+9Ct6sEy+W29T5pVlRI8qaazkR1Qgimak7
F9WGTOmnolarkXEyqg2UMk9FNetvV3cuqvmXlhB1mMjlz9Pn2Nm1+9z5fVpDpN80fv5tu4YLb2qE
r6XYHdXPtqeSIvxn1LnlCENBEv3+FGRQ7l8S3VmieNO3S3yzYZscIFiiBkzxwbNmw60qzN271Nsu
dTmkPnap6y71TwQXqY9t6rJPvZ1KvZu62q1p8bWPxHx0bTt+29PbNxzb+EXDpg3VpGCSfuvywrDl
U4atPtitPlkKbjaLKXRNclMt+WVv481u9aLT2CBFb8vz3i7FTsFE8UzUYtaun4zab2ap+pmoNl/a
lZ2Lar5e0qmooD85GVVvqQqjCnrwqWV7Q279FzzbCdPW96ZNdqYtuO3o2p7ZNlz3KG3aZs2fduvF
F/anfmHb7tZIfJWt/ckPdsje7Lolti057GktqEGfNhnuvZU03ib9uzybbj3bloz3ju1N0mYxqm2v
JusbGcekZ0QOPhtjS2iGdlPo8mhy/5Lozmk40wmX9phCy5bUyp7UCkmN1u1J6tUmIkx8KaGG5Uhq
+c0YWj6Noflg2jxf+49iNf65/LldvttkVk2qm1ldMcrbLH/rRlVIokw/C5u1FsAPthnQPrVC+XjA
qb4WBji7mYYujD/saNoNljqwdZWRUtWFPVZfMR4IC9i3gbn+xx0zuYhka3GJdG9KI4Skl5+Xf9PO
sZcP2/9/sP8L/+2v3miwz2YHICjBLRffpPrGc8bmMKt6S9sc53B0b3h8jK3n4T0+RRz25C9PE+iP
Hxln682n4rCK013jw9E5ioJey9qRlOpQBb1v/eyo4k5st81Ry7ATyc+Rz2wThWGKdWW26UQcJYXw
V+Hy5gGNIrQ4mBXEr4kLiFkBe9YZRG2h7J7GlzNLlm/Nj97cXkfXGWd9/DA9K2jINIojUTRh70TI
3eSzKZE3s9RA6pynLd5Em9aaGcUtXm41VvAjS4m5zMS7IerqCPbGT4IS2guPKReKZ5yFZGqnW3Xb
XXKjyVu27TUWWOHpKIVVM69Rnc91qF/y4LvVBdV+h5Nn9TOxEGn3NDk/QgM+vLkK63iytqYvkydr
K3MdUVZeEqfu2WK4kOmGuWsIcrk7BofNBebjsxZ38yO2Lmp9aNq4mSsUw4Mkr27g0oh74On1ncYk
LjxjOAXHqn4/8IuOK+9LRjiURhXPshyLeryshKPycQs82yTu9CqJ9jqeW3EwnVzCyxTWQyyndm8+
AEmKOc7rLHmRG6od8hq5qt05BgbV+LZ1vFxzWRBV2Xpk4qdrs86MUBX9OUvkZaMrWnLB4p0gUgnB
sAbvm+p4WWYc6bTCdMsdJ9Tr9mmzisS38VQnXpYUsPTuGhkv547emWldXnJCDiROzyQDSHby/fFd
Qqv7Ngmz0YMxB5cltJdnX6UmHrg9IJilesU3gQonYbMUTBqjkx6n7c2KMZegQ7XPMIJZtcNK+q3+
8V64pdke7cprgU+rR8vTW4hD9NpSDoLQkxbQ5cRVh69CkNo9CpHbH/5JjflYMFSMEXayRUBTONez
OK0F02VpF8M+8dH/v1t9q9FifT6zjRBqLVxr3fAW1flKrfaVaojpCDLskyadkxIF+kq5Js40wqQG
SvSVgs3MB2CVNfsoIMvYVdqtsQSrQ+qu1GxA6PSVwuwKgNOlartcFH08pVRfqdvsCYdJKWlQ66sr
t+ty8qwg3f6wc2rLoWjD19GlaNMHPKg3IC6c6u2rwrZQv922xACpNDUQbaet7lBqcegCTdm+UsMB
odv+Mo/CxAqRSlQAhPtKGXecPceZ1rXFFKqBOw+2+g5DvK+UcmJTb99yC15CPIh5YOj3lWruWLNf
K21OSPg1x0ZDpa9UdGK2UB1j97wsloxZLpVYbtJxtBzp0DND1h27caCus+rYbxB2blchKjKjCNUV
yDs1ud+rz+RcvMKsL2zy209NLtwXijpP37qTmk5o3QFJL1HFgqfroSg+VV1mw0iHcs57E8C2Xs5g
7rsRgTxTywMi7mzz8ZRKTlggDzI361DHCe0PyLjSAZmdhoiztiDcFHH3TooPedOUbUq4d2AfFyq4
F6wgCk8Tmg1FqpW1DcmmfHulC56VaANpiJJDyFzUQseywC7P3OMJVZvf6IWi7SgB6Yy18GIJzpi8
qT4c9e4K6nVFQwu95kYh0WAqelHdAugzxdlfdG+wENQZlbKIpN4RxfkKpaZV90nEpfrjB+X5Sq12
V236fKdCivTDZX4p02p7GBalZBMxzf2gXaNxkkq+eG3xUxZyIZKxIBrKKkI3b6c1AXiogK5g8Xe3
LY74Enh4i604EzPghYvwb9cwpEDIHk3rzRTfp4i75Dq5Pv68/Lv2/la/SzViRJUXEOPIe/2ubuRl
KWpTN+5VY+UxfY6YfS4h4BylwbSJNmYuppuYQ0zlxhKS5njkYB2lcOQclOWaBhUOBVeX0lFiTMO9
aEydMOMUsc6u7jk/npo4N5fWPtkgQyjD3i9GBS44NbGZBq1BiZkU4ows0nRYKrNQjreJ68gS9OEy
XJROoZQBWDPJamIKNZarZCs/T7VuDfKarui9k1enTkLyhniknkkcebq+tyVaIGEsFKpREtNYNVI7
7UDcWwg86T0UcJkfKCSPfQ0hYENcSwtBVaydH5/X6dfYU8whGNlcz6MsOnIzOzPXFBO2bujmOQxN
LN+qP5e69J62cdTwA5xma11T0OB42uOx26a05i37roBj8yoyuAcrNRbRhWX0RMBh5UtFY0D7tR8E
HBqNGSoku7meBIRKtLkUu4grz5JOl93RlkS79sw2luwOV2G5+zC7s7Q0eQKWHNuClGqt22f1Lt8N
QtjTfKyifuthKQBnKJdtv95CypGdaUsJ8Z4YBHO0G+yWoUq57ngRxtcr1Y7aPpsUUHUgS2o9fKKt
hjuFkhEVgY3omd8V9S20QL4Djd7mM2YCo9dc5kPY7cwg87GeQvR7pCJ4tPzGaJxkG7fTHeXoLjty
a8/ErsVtPRDStaKT2Li/uRBEmZpOGsl3pE4nsK1eJdXKm67VbaWxrvdMdvaH9c5kQs4QmEbO6fdf
5FdLbhw5Et3rFLUeQAKDf55jFnMAYRoGuj2LWfSgbz/vRUQyyVKpZNmGW7A3UkVm8heM9wlYPmye
5SiD/uYLNSzvGtbGjxAx/NtULL9PwX+xQ78l3TEAgKSgFNnKyVvSHd8p3fEN6c7fJN1xl+6+S7f8
IOlO75Dub1DucV+5+wdS7vaxlLu8X7mJi0r5SJFX3L6fcrevV+56R7nrVyt3GKt0t0266w+V7rpJ
d9qku34c6Y4fSbql4XnE4UHK5KL0hopt3eeVhl1L2Jcq2PgKBfui5nPckO2f/sBvSbZUqMwAR5aS
yPDpJ5LseFey+88p2fIhNFvfZ3lDssvfKdn1rmRLxc22QFygdjY//7pkH7J8V7Lrd5LsiFq6J9ry
5aItLzVb/hbNbnc0u93R7PH9NTt+JM2e3P3UN/bOMJa9INFAICrghrEkFchRbGkYcLxkaFtJwsN9
fm0KnDG8hoYoe8tBAzGpssnwuGgYnRS6odrfRr2HczRJPy2zgyijLKvz5MvmQC5p3TxpVvPBX4UA
Ttbq2gvcaT+Hced5TkoiWZZE8Rwrckc4RR/nhklG/TyPHJDRwyKq/UyFnHhipuZQS+Sc2PI8l7Vr
mJuyWzp2HOZR8Dydx/zEckVR0bAVehOoPHcnYvBjS6Fb5BTLvjgaxHuwDfdFJTyIEkUOlj4uEMMR
VefwAcDNl5arORT4yOe8diNz1cRCPHZDiQXcjp1SY9x3Fg9LXC+Tb5Wf+jn4rAqb2vM9V541qNtS
IRlLyVGO+nkmFZ7zTnnRtZz5OF87HuZw2+WcPsx1Lf1zV3Y3c9N2cfNMgY3gcq+76mRBowjeuw3n
/k401x3NpdxHcx4bnOs1nOsG5xzzDuea7sK5XcGZIPafY8ezwvsEdLsH6JpWQHNPG6DrBui6AzqP
e4guZUd0fQei+5cBGi5wAbROOQGd+oQQe4EN1GUDdZO2gprSvoIap1xR3a9QXXZUxzuwTsueoJtp
h3UpG6xH3mBdygZrDl5hrS75HqzjFa7Ljut+hWsr5Qls5mQFNlO2AbsswLZ8L+Be9zZhNsHtHZKD
m074dXDDwDSUKNGNzilv6B6DlxwOD1mUQw8LK4Wpj80sRyqaettAT8x096ZHCt1IdmOUhriJIHUK
y5JjP+sVwH6E87IerePUmA2IvoIrGdEHaShJw1HXt7YaVyhtC3VBM9rYAfxPiBen0c8aG0ckM/IV
mdaqMMxVTMRc8ugaclWj2j84uNXzpAhp39ZQfZitfa6sbeUnTjZU7ASdwmcNh2jhK0oaU0vz51Ey
ntCpOmpL1jBXnSgXC2Mlgry/7XhuYPSQrWLUITpxC+X8WNchFs892Ab/OPdrLz89TDNFpfnMMKR5
vqh9mtGNtpxZaWaYO66Rp9EqM/stauuP2hHdlEZmabpFLL3j1FZXnNjeqVGIMZ2BHRgBj1uylzQr
fIackqkqwUP9NmXnqRLGmVZD7hrqKjz08rZGOXie4WhOFqGyH4iHEBWMYomnQ3y69ljjhAJbEC/w
Hth1DOORgt4rsbExWmLzk9kC2f0VjEKUqkctsu3JegkI2TkVr8Yx2B+N4YUtuBr+bWedEwvFwgLu
quxALezI2vy4qRxXGJdqYaxcZxjNoqLQGKDNOCKuahrlr7zUStCdx/MVTm65thVmCpoSFDq2Pay5
nmWKMHhIM4Cw+8lq044u+7mL5jofcC/ak863SfvZGWbdVRjnt/MSbWJ6Q1+2g6WoIT7UwO310Mip
SftCjYjy9CTajzpglzD1Zab+pODuw6O+ziRAX1ehkDH8QYr94LvtQU7tGJLdwx0PpOqDasSFB0Gb
pGoXPLB43OLW9L27paF2mrH4Hoe6CleVjs/NTEXnMroTcSZLSpleWcZkPM3BXQT4udX5nqC20otj
i5Mqfm8e5mjuVLxSc23LRi0OJwhqSstsJi1nzDavL3kwzG+xLXfchRq5Ob3RC7PmFkqN/bE5UlQ8
wxcqHgoLAvAZqB5B4lcVT6p50zWmNiO2F3mJ6FGCM5RtNiZnrFyLXapTVjc3JMWtt3ppMGYcB4eN
xc4wWd3sT92+H93naxQPLuvJVOs+zS7Pr/YqHdY/BY1Dcr7VNorJdjouWoPpyOYQlfHYPAvF7m7G
9jqptzmym1CMdLmZL5BboTsYlxqDsvt///3wr8t/eAdPvDhvIS+/L/cSExIX8AaVBj8ZFncVDqMj
1l0GwpCWQcWZHSZYEpjAI6TgWdk7X4AWMKL6GNgt6JVBT6AfiEAxzw9EvwZZqbVjTI/F5+Gcgo+K
lgGyOkgXonvnDrir54ff/oHzy+V/l/UoOEGlnOVEugG5zaMgTVZFmsx/bpUJ+4Sk4S51WFwLk8Im
WH3UeGMYDTZUGfWE6mzLOAzDLYF2tdKuhg3eAyqhRIwvtV3nG5usdmKyZm2WXwooTQXSBeP6jAPh
gJQiWBtmUqW8V0urwTIWppE3QLZEs4AjdtUc6mrJPtejTfz8YP5D71RxxG082j6WnK8nwTQZzFFY
OYJrXhGNBJAp243EYRzsC65eWL2yJC6rJMNkq05eDwM0OxOBxCWaryXf7BrpwHN6MQ7ZYJMKNyBJ
jcl1fVMs5HKUOQqOnIicF7m4QVZjzGRSCqDNjEnbzHXSWg8tWUgtIIYeNGLtSEnMRCu8QpaTzsbf
ihmsF2kjaiVCg8Sj2G+lPAkqIuDqahioorGcBTRzsSp/mQBSF0qjCpgXWVjuCQkPestV7eX1QDYT
qI2KDkyI6hUZQzW+1hsl3nCEBNazXUp8UeJ+RlJm07PL9pflzWbKIk2r+BAPglU2f/rF2YjHdZrH
YzZbx8NwjLhd1K2ziqpVy1bUwQr6ZYI5ptAx1ADHB15cC3Ownmu5Uc8NbrGj3EF62HtM18Meb4/j
raRCv9WB5rZep2UXOEbhPVoHY4xGlx3pWjq4m+4NlvpZtZVuhA4L/PGYtf1jyEunSwV6adi0nocq
DW0i9zbgADX3RJbP+GjzP9OIBG2DNO3cT/S+55WqpjMFMtHSgaXiAlFamkHWS7cygfLC+TvG0a2G
usIhFT12DrcYAdfUoMI4NfOyrlcOA6Ze8+rGAvs1dDZIfKAruEr8UVasMyUSL26rPJO0qlygvlvp
Ztbz8et5Cu5R317MNuxxKW2TXA29ws/CvlXaAVkCteeOG+l9yZbXdXhxYtg0nBQMzTE1rUe24ny0
Un2ZKbWW6ERwM2hO666prw8UVMCo7C3AIVmNwE03EjwDC7Iva0ounq2FNDj/9B/nU0ugfX6Sh1+W
+AJ38yoNLr5F7plGYHVQr+YVaQkDhZcaew15kZ7XshMptCj4VlCJL27jlcuIWKOjIYxcVdKLnAIs
iQUZlKsIKMNbhW4yKYHc9DC0DQNHDGauwGVSj83iEfz4p34DVpMtT4b95TUIzUhVRbeZHjktbwE3
bdSkDRC3oJ78FZKICcMr/AoNFFqCurkN9c7IdrzBzglpYU8Su1qjttqNVNm3xnAD7AlOnV1u7HRZ
Q9Zkl64nDNMWBu0JA9U/drMAq8nOSFLmHiCncFm1bqoCtrGmsAXl7VL9XzoipV/pR+gtbl6+xuA0
5lQeBiV5+w1rbD2jx9iHtjc2D2ZnpIvYb5UHbsFC9Uncn4XBxwef99k7EuQBh9tc+S9wdoPRJ6sE
p4nfHyA9qBDyLbIi2stB3IAaEe3MfnvIYt5zflGf2v7FksZAu974cSHgljJGC1qT9VgEZe1q/wmu
P/GOesouN6v+a4aeSFLsEMQiE20AuGvWRzUfPDRS/0Bg6kPCVCWqWNzhMfBvWMuXgL+/HrTXUDUK
4Ch+lPQjcuSfdLwpqGTlqAuQ0Lic6J7YE/JdJkUEtJk6Aw8ejWcQkMuUoThabXS0G8H2NF1/aTFm
6DU7nPUCsN0lvW/AFm0DigIXJBlnySuzv6N0tdTu1C7DpXaznLWL31vtZnm1dvHvW4D7ix36NmIj
OssG1yK5sG8xxJa1YGKE5YxyfnEHsRDopwjzIHk89RbKlwO2fi1g8wbYfAXYvAE2XQG2b4CtV4CN
G2DHPcDWFbDlPYBl/iMRuuQ/p3cANmEC7ali5rv/s182PXIbRxi+76/gMTloxKr+BgwfbFlGEhgw
4AV8DhRbcCA5SIwgfz9vVfOje4bkkDOc3ZU0B63YHPZX1VtVT3m+Ra3ZR7rX1dkv6srTwSpdnI1Q
mWWIpSuvVXZH9wTJhvGLhWCVHjQ5I8uhw5XwvH15fapovVF5NQSwdpX9t1VXjxsQesrQWnQzLd1E
ubVwC90eyfbmgfqZX3emojo0jAiD0Hr0Xl1FrTI6e2zj4vjFUkV14dBGAXr0FK1r+dkZeEuQuucI
UnFAiyxZOmBTlFpKhxZFpvEBd3E8K1uuZGuPZEs31y3VwrW1cHl1nH72F57pVrGBh1R9AHtZM9mt
hoML4wdLzSpJsHiPj8G+kTcEapwPVHoRzWqoAjUuBGooA9Wfa1bFwam2v616DxGpjengEfSBzSE4
EYfH3iAhSSD46ufmd3zVNu/x73u4438Ntc0PzcPr73+i5v0fD68fH8U/j78+vH77sW3e/AurqviN
x6FQy5FXI+uyl65KxapYwqDxocSHtvW6rLl0Xe7X/eaxy1kEQ2TxoiwQ7NyqyvXRpiR+ReJDF9Yy
/P/48eFPrvn42+9//Pnxnw/fHS/ytweW/Zu/NqWOE7wQ0dEERkxFKnKBwQuyGko/VfnDIUxIynvA
g0ll3wep4SDyV9JC23hZE08QHQTRj/wB1ar/KP+UA/bXfPnTy4qdbWJS/xFBznLZUF9W0n4rma27
7nhiabcQOGghoILgqGDfV/LGx+Gax8uUlYIk6C1+lk6EkEbLZfTmr8arv+pv+yrfcBzr9YcvX00Y
4Lz3oTeW3lOFF11Se6Ql5xfX4M4aFCPyL2RbXCMeUnITTodOIgWjG6Jz5Ztc/d8P2N+1EpnwAzlI
zaEFgnJUnaEPqS6pH2LlHjgOZcE1Jsr/qXSywJTkIkmnyMpSmXK+0pH8F3PO1TESaC56MgmnxcVl
bn5491C9z3O7Kd2gX68b5s36I7RaCbEcMgeMoYczkpHzWJIthIXV0XYMo+GE3RjODQpGMhMDNYH8
J5sO7+Tj2H/cDfqVumHepjrBcLR3R9xgjEPmn7Uv9/aNlX3jkX1jZV+esS9fZF+eta+p7Bsr+8Yj
+8bKvubp7AvRB1YDG9BPKNNLq9VW8cyCOmScddyNrJf1xrEU926SwIcW4u5B6ji7OLzHlNhPGQZ5
vWEom+VZhYFJsUAP50zsx7JsUN+3iMV+VJxQxsivQVFdJtb2lXepe4dvY/dtfi5OpsO8SZ7S7T8c
bF6+oBvrTWXd1vpsoTZJn9CSXoRMLgUxnxythqTU/BsnORT7lNEtNFpIxfMobUkxFZkSt7CYx5AH
eXmW8EXKBsVZIK1XQQWwiAUMStsYkY5Rz6OgY8R+ToFMtY59cQMWqbXwhFPIEm7j7vkd6m8YRh8w
EsDMIzlTkPnYq39mtjonj9B3NnmGRbDJDFkrP6ueh5HczOBUeSQ4GPVZOdDro9cpJugUqx9F/Yj1
yK1ObvNXPolhpNUElLamEXqSZ2v6Q6hk1cTEWmJgzKSdnOi3jX6Q5XFEgRYMYkAiqg3eHfnc9T6n
0ucqABN6n8uQcrD1Pg/Z51F9HvQSbSuXwI3EOK3em8QeLPdhIRcgsnxC1neELN+0KKkC2+IT8nrp
KJdOvrt00kubfGmNgzbzycKl+zJ4onNkI5eLu9Zgn7OuRhoJ73fP8lHuKmQk3/Wfy5t+lRyuEpFt
94t0dIeYRGAudfU+hXEUYDqcS62JIYJB0iGAjPPQqEW9NEWC1ZplpTfBIFk9iXY7mBdlyFFzqld7
cNAPg9RYWFqbxoDIEsNHF/P2EVJAJZFkgUEUq0sBwTPJocFDeZoxQwzLoaOEZ4s7y6BV18qxQMFk
uoEWt2D6oVrCayzopySekEWsVhVBHGzgOiez9kowjTiZBUaxZ1ClyW0oyV8mr25KOkeDQQWMG8RZ
JWATSRsmepgJUVpWbO80Z6lkUfdarybWWpsDIpA2hN70A904dgM5q/P6U87XRrN9DzknZ6EI28H7
HvnI3eFsd3hoI2B61r67wtne9v0k4IwkjauBEVTmDmc7w9kgXzgl3eHsS4AzRJRXOIPPI38hcDaU
wROd3+Hsy4IzCgercOaDBOxzwpklubBrXPAHF228JZzxRfDATwRn5gJ4MGfhwbaIBJ61765wtrd9
94WzW9k3SZ0UA6NUemPucLYnnI3ylaogSpuGM/Ni4Yy+BDjjC+DMzVQnS+IUxID4PMELu7JZGtls
K5fRdi5bgWVjATxR+IvHsnRrLIsllnGBZa7GMnrxXNZJfxnMRAtspZ8L8eC4KiZPD2Ys1g7OY0sJ
+juX7csNyJtuzrx3LLvavBGRzGJgZJmQ+I5l+2JZp17kSxP8nco+fypDQDnCZuJz70P87LGsK38n
Cr9T2RdHZag5YtDgIoQINzwflRmbxD2p8WwkstwZLgsbuCz24BBrcIhrwSFMg0M84rK4gcv8Fi7z
a8EhNsPRTg2MWGT4b8bAx2QWNpDZzQ1sKgOvIjO/hcz2MbADkCEkPSOEyV8FZq4CM9uDma3BrGAx
mbIZzMwRmJkKzPwSmG3gsgUs8yWWmWY41oJ4IZcgdlgNZqkGM1MU6TDJZXEOy3gNlc1Dmb8SylwB
Za6CMnsllKURysIclJlVTOYKJjMXM5mxHoUE1UtCybY27MRkfpLJXFoBZa6CMp6GMjcPZWYRyorq
d6LvRSxzBZb567GMKyzji7GMF7DMrcWytD+WcYllXGMZ11jGs1gWboxlIgZs5RmhdlSmeyYLNZPR
BVBmzzMZgxR8RN4KbYJ5oYdlJvOLTFYhWeiJIdTEEEpiWAAGPw0M4YjIwgYic1uIzK0FhtAMRzsx
L+G9QyqfMe8xkflFIquA7NbmNZV5V/GY28Jj+5gXObUV60qqCOEMj8VFHrMVj5mex0zNY6bksQLO
TngsTvMYH/EYVzxml3iMNgBZ/zxFZLYkMm6Ggy2IFxlVUvZ6Ios1kXFZotMkkoU0x2SU1kBZnKcy
dyWV2YLKbEVl5koqiyOV+ZLK3AhlnAoqC6uojC+mMmblZ1aXB6k9l1IZlR4Pk1DmVzCZr5jMTjOZ
r5jMlkxmF5msqH4nCl9kMlswmbueyahiMrqYyWiByexaJov7MxmVTEY1k1HNZDTLZL5iMr+GyXgD
kjFLwcRKgQgWqorJSGW+prJroYxn6BASCujGPDJRdOEqJqNlKDMT1EBnscE8EZXZC7DBnsUGfAM5
SGKdNvA2KqNlLNvbwPty2a0MDNpNyAGISVzX8hkwS08JZukSMHNPAWZuJZgV+kWiYNSvGTDjFwtm
/ImCmU0zZOYnyEwLnD6vJ7M5VJGQigJZ4vPosPelZJajbR7NIETaimfKc1KxzuOZ6fCMVvDZWAhP
dP7i8SzeGs9CiWdU4Jmt8ew56MytoTNKGZLCCjozFsEltodiYeuqokzQmbmAziQ4Qk7YxmY8M5Nn
QaOAZeFpExDrMfEZPnOLfLaMZzxBDwvw4BoaqPIWdNZXtx4fTDfaxA/mLD+Q99C7pJJpCx8DmlsE
tGU+29nC1+LZU1k4oIpDyLAwEoevup07oV1NaIWAhTaQup+Q0MxIaLwLoIXbAloY+SyUeBZKOgsK
Z2ENnIUTOAsVnLmL4czNVCeJJieGF3ejFtojd9ve3aW3aYLNaALN4gSaUcdmeolIzwJnRRk80fhL
pTPT01m6NZ2JRrHWCZy5Gs7oxdJZjoZe/8t0RgHBHnFFA004rqrJLJ1RxjNlMJvprHsu4MxOwJlb
gjPEC7aSPski6UjGXoYzvwhntJ3OaAEe/I3xbKxsIzrsTQ7cRigWipsx8DGb+UU2o+1wdo2Br6Wz
JzEwyXvJJ9YcfEh0R7M90azQr5H6e1yrb4pmPKIZpU+BzXwa4cynks58KvHMp2v4zFd8ZnfnMwkp
1MyoPnfH3c4GPsvBtgLQKj57FjwrCuGJzl8qnvHT4plki0+WzyhtADQEzcFFTGeLw+LeK/iswDNT
4Jkp8cysw7Pvfvi2yX9ev/3t/X//80vz1Vevf/j2L29wtK+//uaN/PDjh7+/++UfP7552+AXavSl
XAE0icKKog89tyiwH4s3SGmIeQ4JdVLGUCfigSPizQ9DRFn9AqEZkWZdMQH6dON6/TBvKPOrFx+G
FywqlQl5uf8TXi47liRFEN3XV9xlN1IVGY+MjNwizYYlaokFQmjUCI2ggQWopPl7zrHIe6tqGsSm
q91vxsvd3Ny81lD4/bjLfDv/crD+fuP7ivuL7hv+4s1fn35/+8fTdiX3b+8S2/okn5NKyTQ236mx
Sr0dNpxRQtWgu1vBziUGAd43yW2/AP5TUvWbL/dzXiYn/fpL+ZPnfPnLE1VUZ/iPsgjn+efyNkLZ
D+ic/Qe1ASK+/P3pD59++Nxvn370n399/uOX337cZNyuP/dNKl2uH31twm6nm3z69+cvf/248Lhd
fx4Lj5cxx1gLZ4GZXXj7buH3J57Y53ktnMTPhb/7buF5u/7cFzbLtjoYcDadJ+/99M/vFn4XqDbp
H/eF9eB/Lvzx/1+1A6LDqcmFvbd11T+78Icv/xUcvfkmlNEYwI2KfGBjsQjusuoBZQqeD9r+EixK
p9vhw47rZ6AyZR3NGj46Jl+DL9UNH4PoKdFkGJlb8Av0WQPZzpICIUtQ3eQYdY2BQNmPnt2/Pp1S
U304vj2dPdS5LXD+CnTeodk+vHMwiZThLEE1jAiF+0Nh2q2GlijzPRLBng1Ufn4i44DmxjUOi7Kn
d5TNUC3elv4LbSO8Lby48tnn7TUDAgolOy6hfc5b2WkdyNGfn64jyn7CutwvrbEMtqY7vj5RK9vh
y+kUdnvJZI950mG42Hw5KNFy9Ig+AgHF9nc229NhCvkaiDUnH/pImWu713TfztXnSR9MI1csTi5f
06G9+VlIzFJUgqqeUOGh2Kz+CFc09Sf9s56T/mwuT67pj2dUzk77tT1unNp9NK8/iUIjYuMSAUqI
wScktrd4ABZl27b9Eu6IHv62DR4kNV4d1QP2PGWX1gpsQlOuJ1Cu2qdIupuOajUwenzQeLTmzhOI
zc6IkP0U0H6/Oyy0OKjDiBNnRgTBqRRtd0+CogdOwy5tmSW3HBya2CCkHXaEbM0doG5MIpdLHNHx
nEqp2Z0NprMYZp/rkTXWYJe23furnrkZlx7V9zwoRViqMbt0+oN2OYwsVVcjVso2og8M9pbqiWtQ
/Uab7N/iOE0ZOFXMFb91JvDgrefgCGXAQlb3CILRM2XYwwYweB5qLJ5OFZeaWqAqFGJ6hONK83bu
axcUm3bhgTWMstKMBw6A/9A7c31hi5yWhjUgeE7+R75Hu6OpEwMAkr5VSqSyiKrsGHp4J3j2Qc1I
pq1tNpV3nLDZE2dmU9VKj7x+pvfDbjuBOFc8E3E0oIISnJ5YYG97s7jJTAk9HO5RF6q5uYDcc9ED
zNvKy4rxlulL/mv9CvFZorfqbnnLJ2LXbdqypRPLulzj6Tn2u776+HBGLQJGMg+eUgXfm9KjxL1+
5oKoOwL7DIchClfES4jkGTo9Sl0x35dMZoYYjrilXINPlwGThr6CgqO0vE/XoEG4aG/XN12gs/EK
fOkLgfB13R+LuqXUvd4iYMMqvw1A0Y17QskFRc2FPVy7+lRu7HN905p6iEe0y2Fwj8wgOQkKtKhU
ZfNcX+xqAGRcP82fCZT1JwndVoa9C0nTNYIIcdjXNwcNw/jR37pwn7bdZJYx9SWr+EUo2LnPFnss
lBP+3TQUitKenHdDC0KyUJdzxcvOPJdn9JKXb+JnLF9LlVHOTmT8x1iWldOHj3vmaFsky5wExn7G
0ZygSETogtfictKt8N5u3ghMyRo6TjdkFnbAk3pd09K5BjFIlez3JOB0F0kq2T/E90O/JBcDOvRS
DWR4Y4l1z5wZ+CasuLbiMm91T3VRadLfHAUTxi3TZD5yzvm2fEvx8t0I39USwUOPsMufHzzFAWkV
88OnJEgF84LVW8iW/J1R4YhH0dIWREBeltG+j+RjhgafOxnq+1yeIqI7GRrHRdzkscd3rGAUA2bN
8cs5UppqLbth56eD0D1nQGiXg/+8pmfUc3lOt8E+aioVfARs40jXeu5pHxlqadqbL/voaj0FPdLQ
ddEVrKGuGjpLCrnnsKKwOz2+Q0pWla6GSxl3bL7eGqD00LLkqK+Nm+lvRjE1n6Yly5fTecYTIKNT
kbRz5IpGDRgLA0ub1xej2F11lXlcrs1JbPXFOIrSDMgVX2Byhkr4qVThnnx5L8ezPTIlWOi1X465
HLWULNpXrVExJLBn42YkmuWUmour9TcXr6IHTWsCpQmH2zronjJCbeBu+Cr2s6AoUwPqo+gKQZ9g
tTfm4cKYTfaxHCoyHGqgPArFv6WfHixyRG3Hqp4yzlCt6tNYCH6qT2UYR+Cpo1l0umYOv1y+gVqN
ihgLp6UtWRpHgSYLEJgBsHJlS7wESvRzNA7pPJUNb59w1MODBhwSoNlTLjyX3Y+OuASelHQ6UHB4
tTmORTfi5DXfFOk72o+9C4ATyHDEi9MBZ9mTzwsGkJWkK7Y0+3QTtlcRxVNWElkRlHC9PWTTr8Yu
i5wSUVeriokWYnqNyDxtio2u4+ghiTULxyI4zIfVsehSKZweg2oMRqCw3RyOq+ok2dNr7mN1TXUV
86prOLrb5ar0m/4Ht444vC+2uCoPeykbVebdQ3nTAOSyxxLqN2S/pwusKsu1rvZAzdsNVO0BEsu2
DLQS30mIgrWytFcGTJ62Zl41iCwzx/U2gCY3k+K+IlSlcspQ1p9v5iuDyr73N8ezmtwP7JZBwssZ
c6bFgr0zVYynh5A6bO4rVcUIWeeAFM90vWBFZuwLdgQEmQFEV73xKSx9O8RX5J/CwfCrKQQ8AOMG
9q401gwYYLemZxIBr7Prns6XUkm17FWQnTe9E3LXgPthvG1QIAkC9Got29ybpqOxOEGCw8Uz3HB3
8z6iP4gV3Hprdukl6KzZhqxdZl8UD2aSpud+hPHQcscR0U0m+1jBqpGm8oEjLQCv5b7kyDS43+0d
QpR/WlYEkccNtVWuO8zMqeRjz7hlsciJVP1wC5678xz4ZqT9oJdPilP+OcuydzmdfrdpkxdrgN6E
zseGz1WAdQ2xRCUiNo7jeHMwXqkZEzdVkg6ZscfBHeFn0Dpn7J5p5LmFHsCvv0BnCqObdd8ZDpyh
Xp+mVFWZJCpIp08Py5yMdCujmv6q9j+qV5kOgHBOLvrTL8U8PRYeISg8capI32aY3ByM9WhlpyTA
PISyIeCYA0rCPqrXVeRzjYc903S2tzMv3L20D8ijbbMPCK+kszsmvLvA5jQo+RYHEkXQM9GYhgB7
bKqUxZ09k+IzWKsx1KP8tEUCYkchv8hJpDTi+shG/FYjm4/AOsxTejrgS82pQ0Yo51Li2xoO5IfI
Ah2h2DVbPluQXGDPJFtjq4Z2mH1bEpZ9uhMu9W1PP1Nc2CWXU7/sfdk9PTpntchW/pNhz75yOdp2
LKEO7KouQTDcdvNTbWddnj4drejxL2vYwFHj8MbrHsMFQ3VjC9pX8O+Obw+HQmizyIBrjqATUnv3
n5U8BP+V72uaEFdQQUt0bV3akqEQ9/Jmfn2qpvndBwBKHh/Xw0k99si7SUaDt99s6DhS4M3jdAlJ
Ua5iZFhDQLvMFfRBHY+zRsyEmPHIPqfUOeTnQXGOdxY80qOYHp6WVxt4O8TIaGW3t5hWfmWSr09U
117vjsm7lXQxBwmXqu94GIlDBsX98jAtKG7aOqDM/aYAD6CgwC6i0B9T2x8OCWqYeKExW8y0F/DQ
liKFcxa6x1QSgpugzoZO1GqEHYICmuFrJfhlq6s4qi8TrJj3ur424V8lAJUKi3YQZYvalzhQCpCK
1jSN21ytM0jnRsr8ojr3LLtJiHdf5ZOYcD+jZjXlt14uq2s161krGaUTHyl+02FUQwsH6fbxFtlC
yQqG+quGs507QBERqeIf8iFQy/qmpVzoiAK56fV/d1JpbFaYD11CM37Hp0pOBcp/eK925biuI5jj
K264Gyx83o+ULiV00WUJSFSWAxQAW7RWQhVIk1X6enX3zN69CwhypoA8O4M75zHPbpQFK+dIxRC2
QV4C6IC9CEMCfiRCRmDfEBlLuBK4h2TGJgY08DlmNHpzS25Q0fIxGOJpS/cV0qYjL6AgJGGCF/Ml
UB7ippyOVDFy07AwWSYHqxQV+UNMKypB6qSWqhO7yAQaaNU8ADRrhFNzir9Aw3pTSrCbdQ09nFrq
axVPm10chBrCQ9MUjpLIUTjdKlRNy867FsKIYd9g4CJgq/xi6MTlbyz2hHh/hROWD8s2ZvAw0Axj
08hAwmYIwbk4EvgnaJoAoyKKkUCMl/5ydaND3l9sB4fWweQGxGPhjc12UKDggbtRj4BGDTVdp8CJ
7XXepna6TxSTF2+bXeDY1gfxKyYyeRTyDBcKxLCFRQMkgviUpVYh6yyyA2xPtzZxXKDFob8hthOx
xZc1cQqjZ+JhGADooSgkQvQJAFCRzszuroGIY5AJwC2Jl+RT0P+7iRlJW6LAh8Q0LXUJkKUohCON
PsVuHb9rm/77/jVAIeQfGmJIi3nhBgwzjvuBxiPET5zIacorG8zDE9ledY3sIEtDZRBcKP1iNA1x
6jANWhY5K97NxMbAw5hEI87ovIkwPLvwhd2alWtiWJjBeYu1392uGTjQJv5ye8sn3f77qhOfFr69
oMkffHUtehYegIuD4aCtY/rf/ny1+7C//a/ZVbOrblcX17bCq2Ku0q431DTs/rm726dld79vy+6n
fQ7L7nH/r9v3Fzs136mtOyG/R0RXRFOFW6bv9Mu+LLtf93HZfTzv8eYreqaPkRQ1cxxPveLx5Ste
n41MqJP0jHymyGpZrd4+jeMpVVlFtknafffSbrjdWO2GaEWXXSXnot0D7Q5BLOv2XpHtzN+Dr1AQ
AQjyZOMGctCHj8cjfHw9l93y3Z5catk93T3IWRxtPHbSEw/4+K9Px+PHx+c9uk+07yt/nL4PPJks
yh6bc2StaHEtro3EI85EjwH6Bn7SLb7ByQvC7iE6bzAWX04bJMKGavaNiED2n/Z52X1+bf7q/ExW
OMwcMGdcxOoPjgUrGoRJmTMul3YRqz86D+RimBmYgl67e/r/xxUWPWETDYGP9czd3csg24+vvxdt
sZQMwHfIyLPag3v6H3uF7O75p08fHx7PYQvah8xJxUmgcvDVtRX4boxAzI/plqrt946ef95jQCF8
+PnA/37mf0/2F2CGxAqGsPC/m/1gsn1e/xr9r4/7Zn/gnfDI0Sr92IYBKVtdDSfxTcSFBQFprVzc
Bg3cjj9fyc9+4+TO334ywBZquGEqCwb7atqEidxQRJiqOLezsTIwf1dcBKhBS0lcxfNsdXUi0p5F
pmAc0XNI3YWAbk6aAmoNQUOtrk4Bd+WshCnmUPb2+tVNC4cp6gpXoqmtrk4BTuUwOABIaDysCX8g
oSPNKWHquraalna5YOLBLrM72ZE3MsScSYFpUmbWbW11Nf7h5doKg7ATw9H0s5sC3vO2RneFt01F
XJbLLAYWA4cxzZ7dDIxM2RCmDG11dSJm1F0x7NgZz44F+opJhm1aGml1dUJKz6JwknD0ujUFUQqD
/kHt6ExbXU3T3JqAKsPpp+qVgXDSy2h6Gc3FtQK6XU0BPu7DU+jGDFuZah5hdDtysKVIS8Oa6DEM
cIbk4sTBI/C8GWWo1bU07E0wXEh3biZUBEcDi4FBMb8WwgjpaDaDnENU7TVmQx3DOip30KlEZbS6
lih6skfCMBJkWQLc0ZD8tnFwgpg0pQ5X1zIIY7DtYaphizrOLySVwcWR3uhnSnOurk2JZUEmmDAc
MVba1hBFR0OQN2NZXF2bEkB9i0LJyMM5zfBHGqLSIzo2GkAe1gi4upaZFot8yuHfbZxa5mA8M6qN
QCvTUKtrE0gn6kyG2Gu6c1TL6MxV2Kx33O3gq2tZTGBK1SB/68nC/wOIjdkCkwrXtZlpq9W1KbFZ
MVKpMZTRcu4TDRuHCGjJ9WCgDr66NhEqVHKdBAKAiZTPqdM4mAYMUycH9NW17Bq92m0BOzBAzlkO
T6IK4cna+ExfXZtADqrgbWoo7xE3OYDYcR5lFq9aslbXJkzKyU6dWiBtnef2gWTppAIA9EFdVetJ
CwKGBKdvKnvApi0zsIh1RJtCFz746toE+F2TqGtVhdetYWPkAoGoWoZW1yYQE7Rmugb8ZoB3nV/4
zYq+gb2RXrhZIV3KzBz0jazxgeLvy/MjAXtmRePyJJOJfBAiygYonxzHvtkwE6Rc5+UPnF6sgzPN
Q9U3fndgMdqlSURc4lLAEU4yhlpTA44e+0DQ4T/u2VbaSTJTt3DhtJ2LdpaMgpMRbYb8t6uVHk8y
bBsrHWmjKjJpcz/J7Afq87QkX0uiNFx5u9Jd4Of99LkL58s1m988SDZ+hfVu4EyXzA+5LsT+++49
ebdceLe88G658O6f4twL3/YL3/YXvu0Xvv0zXcvRhRcfwBQLMM7GtwEtnySWRCnqxey7q1BRa/dX
Z7lPJQhtCASSnGs/4Bro66qHSTuZrILtt4o4y4w23kWrmHazOrOL3LM3RTWMVVqvZ3LgvFzc7qVz
qS0u8fPpn9vvdSsX7RyzsRucLvZm2lbE59KxoUZzbAy8T4hybCzcOJRkfk2Uovk8J9Zbmt1cwysW
ORZdFngdGA8HHSFlBBnAaTCH88gaQGhysGkLAaS9hIipqv3ht+Zbi0ytIH0HErY875BG518wF5uu
hhzr0X/fYyizb5l0hERgZBKvxCMnnHf6zUlGG5OaLk6LCj8ttpV+KpNxigS+qpVsAn4mXrcIpbQg
NQIsi8hdS9VXWX8RCGqV077YmybaWL0WLML4oKsSKxwj0s5Xqsq/EVscIcWh/FEBBiaK5+PrQhol
RhVSrZiYl/H2cG+DbdtGD3a3aG+DbTUHXzLYfRPsgkFFt7A8iJIJ2Cpf0CofwyQv6AFJJpihNCFe
QQD45BzlvKE3j2Zv1jERDrM367WWj7O+9eZ17r3M8Gx1ceSvXvR4wBXNjAgGsgqAh3z+SSxZ3UsW
KkffyAsV3ii6EsUjG2cYBDyTlzYuu0qDKAYSqwQiymAkIXcXe2PhaWaTcHJTohx8J6Eg+Pf8buou
OQr8RQ8M26V7jJjqnscBxOC4WJOd3pBhGB8EhxAmryLyBgHYK6vLyS6MupYvxSxMy6nRCaYZSLaA
josVF9TWJnLNxCPFEU5/hdCDQt6Erpoyg7WuOFe+m+SMcU6z6XVNz+J/UW03KxnVBtYCqMqF/mYu
oJ5mIJ7orMR+MaRHYj6BW1jYklpyEcoDjKcAxqabz+mCTtZ8oMTLtsi/EeIFNX7eaWwuAyCP3vAV
l3m/bG6Gx1xnQ+mRxKZu8ENVaPAH+CUtQBdkT2AEAdKXqxts+m6FjtcD4PHAeoIJehwYClmIra5O
QCg16F2ZKZGM3H1PEIpvgNeJyGPjbU6rqxP8Nmcl6MqVMNM4wZObxin6kAqH3Gl1tTBzN1M0H2Yw
Tf/npqFlXhj8TZZD15UyEQoXDuYEGDzYFWn4iwyRYuyNje1C17XV1akUThOeSeTMqqbpf06mQdwD
ES8y1epqUoMRu0wR4zbGmf0wV2qjZY1ih7aaloZZmDVF1lGsZ76lEsg6szWjh1pdjUJETQsbRg6S
OC/YQVQVOEE4p06J8jSb0mAdxE3qBJYbWvTxKpLssq/yIIlsDYfIjGXCR/AfFob/AYqBtkmnM8NZ
vyCvg8+EAiyUCiQHW05kLUcoGNdpewx9QQU6QC5qnTqEKZxJa6vJqOrMvsw7oC2yPyHXWpY4+GlX
M8SecC7EqWmrM1RqpXLnH0l2vv2N8XLrjeM4ovC7fsU+7hpYYfre/SjJgu3EToKQimFIeaAlwmJA
kYZJS/C/z3eqZnZnRUbxi8Tqne6urss5p+i/bOidH0QpRYCuFME6Y9OUc15HKSjrxUFqIGnowalF
t4WZ2twsbq5UwNA+jN1Ux2Q8GDQGQTkQB54ZioRs9FTgPNvN0yI1WGAPe3/SOIqC6IalSBMiwHP5
Pk06j+FSlMioWC2J2IUKYH8ycmkqHM7HjeLmwKS9u+W08QeNhB1HcVtihNoqVUEDQxKPI9N9GrNN
hvld5I57WY0nWzSFLQr0Bs+e/2pKSkhpZjL1XEdfZ0ToKMC0hMQJyJf4Tq1qVUA8EfAsVPXBdoGy
zV8Fp4Tz0yZvfsA+BUw7yGhaJ/WxxvL5UOP20wuu1RLLn+8NPCejjE1w/zqPF1Ymgq7/9XiwX63c
3b+vcEsrxsYmD04LrdEnhXxQ3LmLeI9lVuGJycs5WYs8XKAUQpn9bjTTg4UiHWgUVYk8BX1cGNSZ
8t9NVGuBAE6W0Dw5dScbhIIYwQ7tknoG0iNkW2im+yUqii8QgKK8ku0c7NRgVbsnJnms79lTAj34
N3RIO1mAfMSHwgKXA32QtnayArkkiVOR+3KwKczjCrukv6rLXC1AK1T3eiXbx/smPVXngwsVvSc1
ZYrzrqyD+TakOIcmC974f0TfFY3BeUrtdrD6lnpUAGKcFwaKRDGqDhdqfVpMK6naJihW9d4lhOO8
YM5UnZLnTUKbPe3d0irVWuj+bHJKnVkxO/4BFZLle1hV6k8rk0UGMCqxzQtT9cHMauy9CRBT9z5J
6q/T4o2AfGh6EjjNtjWXBA+ZyLkaEk6aRwTtFi1hO1jFQpvsVUFTGVqXbguOxx8PDhxorMAmapIg
bAKUQKxiCqDVcoIGTCUnpFeEbQxccBN6EPpZtZlqNRoC7gOYVptUG6ziwV2WphPayOKSZGLZxDwv
P7mv6jXwBG2a+nqKIE4t2xA0eY85Gp/aPpc5k2EPUYZNMQcr58WUurSFboJSlaGc1uJDz+RpG7MV
lnd8mf1ULkGdPwlPpjUqoQg0rJbaZl2QNOsWczZMxvlUXzBC1/sTultV15eFIsxJ0pi2AGdl2SHk
xRb+TqahWYA8KVjZ1iCz3YT1Qorq066ozRoTWwWpNDeFQDISnhm6UOfREoHC4fuU26IMaEGkfopz
DXB1sqF2HHP+SB+ISVTcTRnsolmpebEglkP/SfEyCVInjtGSb81xBw8lsnxDpt0jXVi7Aa3iVbOQ
cdj86h8dE1WQBOJsK9JQy7rQ6jzyZAc12bgHVBRvd/CUG5q1jn4XZgaxf3LISHRVaKcL3CG5YQ0L
WGdkSpFSLuuFYD2hSHa7nAX5flxAobsM06hZZIZUjqFmxGABpYB6MwWphEBLyXHP2/yz2q3Shqbc
NaZKEje8QHph9/5oOlZRbAQ9Sb0Odq+lXoHNIBswyfTVbIms9B6A2AQQOG+shR2SMIaYZtezHYex
h2lk7MS74pjZE9xJ9E0i8u1oUsHR4j1Z5S7m/5CsdBPUK34QazeJwxS7B60tBVOMe+lmYtQkR3vW
Y6Vd0uETWlUjG49Rg3drBz+mHr4BfTTTarZE/yZdGeyjMOJB7ZwouFWU5WkUXIeq6YFbjmTR3SVt
zD5NhK55A1dNaC8L6munODCHvK4W0Eax2JZonf4n+Csx5nXxEuWC/Mpl5RIuBmPDaNU/mzYWyiQP
SdfDDd3tYrNdsMIOk2BGMuNpH7MNoBqvOIzpxaOZu8a2QYQYbMjrXg2geJWSEpXbF+LKqomRqNvI
pdZUPeVlnlDjkFElb/gWgFcty3DW/VAkAqdJ6ht8aouAcRZ2viCEMI99TxQkDeMCCUj5qjlKKwTN
tFjVKWFjP9jAiFopNJJkjNF7k502nZHDRjvwW+wvFE52IhWlYY7WmJYrKgGjjcuwgEerEOweqttS
5QiQaczDR8C52C1PZk/wKpg1mbjlh0wTYpsWi4oIvNNm/zSrCP3arAqTyzqeUa11pTBAZXrE3uuk
Ew5iG1aLpvpLHEebmkkzDUPX3Uth6WOqsUs/DBUn+TzRVejNLp6U8Gyhrsqyyd4IzYvNTQiiJoIA
hrtVJtUgH/eEerJI8WRNiSYpkzwgyGEY1iXTYkOaih1hSrPDkuyTtkymyXg+W1ScAOVkw1z3UXIP
JBIIvElJilRsFBFueCNgACCGZY/9Q81JWOW2SJsyUfEPQPvjE2aT0rzfS7f6qIaRhAedoUFF0poi
KaD0xyegLG1Z1X7d2Es1Sib2RCNQ+YE329io0sX+aM1jCl47q4ZaJSUaT0Q7MnfT7aJjFwJwkotz
aDtXcSy1KDeKjw7sEfCpq4XRXC+3JBr2bbJik6Pd+m3fkl0fZrLf0w8j+b3FxNq+4+rMCkJBXxku
o2gvIb5mgGSzG10OZzRT+M0bhtGkemEM44tAftXIUviDgojTZFpRNN2wuXos4oImsjQHIg0KSs/N
xUUCRemLLeqbpPcm3IkSyRIpUmR6i2606M/zo7AZ8FRbzC1bhtFjrsNtfWeMMzZdL0lmBc6iWgdn
RZ+mZClrdtIfTxi6pJYDYaebiVOQPsgiFW3FjWa/TrV6NUfRMOw8pS8RQx64pu5qqufq1c1zGSJL
PAiPE3rLVk/huIU6i0RsvWXFN0N9rU4hfyFNK6UR3JngZCBD0U0+E5LIdGJ3qusRuximzzbz7PAR
ZrbJWo3H8w623XZqATvBRciwYmE+bb4XfR64pYnLXdNJFQKNM/yoJSdj8tD6IdiryYiKrUFIHoys
VtBmk6flsRpSyqMi07krmwvUajXGoDRFoEl9PdsDx6LVohFMUrFZtxv/BMZdBIuFCNmsitfY1P4k
JjNgkVnxoMhTsLV2PLRsk5X9OQ4j1z64k0rVqV08dcHCa7Z+B1AiORP7WJ8D5nGSR8Fg9P/ObVHB
GmLvqqit5jbpfXG1bvQBAME49dWwKPSmW5lmWndSo/qRo215S5Ze7Bv7b/5dXBSqCa9lvqRAUq3H
oD4/Nw/cVbHXqGbMf8Zh+RW6I49roVDPPzzZfv/s+e78PzbP6qfN+bsn22mKtuanPVXHDoUn2sL8
Z9R0ZUCvsaMSVR23+ebsu9VeduJ1RLF1m0M5/fX2nzsgfHv5dqd/f92Bo5vt/dXtze7f5395sqfs
k4BigO/2+be7xnfXH25/20H128uNfTcZbe2D+S2n32y/ffn9m50uZ8wB2tBzAjY74+UuTJvtxd39
1c0vd/N+w+zD/tcc8PLZDpLZnnHK7Ao4QmVL6umKZzeccHF3deERk1BZH2CO3v5+d+kXLIHaH2KX
S1PIpGcoT4kHQvZ6++MOpbq9/Plnf9n5V3rMjy+f+2OWLNRHs4BwhV4z7UicR6rRj3xxuyN82487
WGN7eaNI3/ubSPRn7/7mQoF9ysPfXd7MsRG3r7852xH5+9/fXd3Ob1uy+8grC5A8SY1oZBjyTYVx
dnXz9vri6jc9yV949t3f/IX0BbhG9bew3BasKD5d3by/vdwQV3l3iOzDKAT4Go0g3QN4ZOpHV764
/fDrxd2dJ6taeT+Nj6bKpOvx1zdbi9sLffT3H+ZqkPin3KVJcvLvvr7YUYPbj1fvlmMelNTXO7za
PtvBXNt/LSdBTUgzJFY6ja4SpZfe3+14/Rsodz63rwtt++pGzWKvyqGd9sDZq4dVs8d1BlOCo5ur
3/nTDtAmBDe/HOqiPpLypTQuL3e89H7pvZTyZw/9yQruTJV2Pr/zi1VSGXuy8AtwC8xCS91eX19d
cmnWpRuQIqsQbi/ebQ4p8/7dJ7wALqH/GpcmZ7DY/uE1v3lxfXVz9XbzZvvqpeHNi6WrRTh9c/5p
87COEg3aTP9ICI5a3at/7IbFYJcMqnZU6/bo5DmgIXDZSbNx//Xt4af/0l4tu3LcRnSfr5itFrfB
R/G1NAQjCGDBQGR/gDKRYcE3FiDZCfL3PsUqdpPdPTPdF1cb3Sk1WQ+yzuGpN9DFlw0vILRlKXZJ
Ve3V3N9+/vosR/zHpbYf738r3PhjIyQcuJM5tdhGpXD959ffPv3earMjK/79w/Pzxy//l25xPOUu
3xDonz+/l355EsVfVYhb+54XysHzg40kCHKxLnz353/42n9Bq9fLmumkNYsbeuWnXz9+qJXOvdVI
J/lVeu9+fqfpgQGgLDFxGcXMD5/+9YUT/IDiFHxlhYVlN9Qsay1whHb/++unj79f39TmmsPHMc+3
ypurZyf61bPz/u0/NAx3FgJcL/rjf3VhwFPE2qrocf3w5gluP6M34PbLv1tTYFfdwQ9bHhL5jpH4
9ddrO6/Pb9BUv/zRnjE/poMHXdL5/qdOsAQWDybzEAA6YYW2CBYnTylVIV2VlakTj9psxsXk1Yu1
Vp1LHEyIkUfHdRzeuURRS2KoUSPo77V/D7oIwTGXQ9knR+tCfM3N5hYiL/ZSSDXnQuyefO4CYQgq
1q4r8UMl+XQlBBXmWOahEqbCQeculTg/VlLt7kr8cCX+fiCMfriT8sqV1GHLYdB5An2GkN1+IW5V
yOneWuJAKidK2zjUBrOlEDtUYvtS7N5hRcwckdVP5Ems0INaVjgJR2tZ4mAeLKHsd5cfgeLnKMPN
37r4ikUiQNtBtVDJa6xo+5exmGovxVRztfpOpAjY57TuZXu8nHU9/RTS9wKG14LJDNoB5weR+Y1K
WwIZbojweoX1MeRJt+gFKqnrOclKIz03UyI1UyI1qy3dNJzhF9vsBVHmmKM0u4VRu8VR81agQPwm
BZabdioxx29RTUBDF2aybZDXrYYgUx1BPwJDuCQC+3wjll4CRR5haBvoJSy9aPAuVODpE68ebsql
/t0RVtRwz83sLgimBGxWjbhHbw4SyNltiKdVjKdVkKcxytPdMAEiIxsGZwIBxZ7gXq2UAMGEaTbu
xFB2H2txq1rcWIu7FccbFui4FQ+BbTa65vUIrcVxmAZt2MZ5DUIzGMtSYWzkKafw7dh5DhQKBtgN
aF6lGn6rLct+B/3dPwDcfJXAXJII1SRMImGwIwZJtiLIAdOuq/KeX0sxrpyr4TL1I6w072sGO5WV
XAU3yPNsReZRO0UTL2EyWSYCaHwxrpwKRVLT6Aajbq47BeNNjWh550BKpXTXZziVXOoRcr4kpRme
nbCJs+cRyTbrypOlZZ2jX6FFQ5l3qiUu61q24c9weduscol4FMD5xJDqs8IVigq78IAqUM+5GjUn
i+MTox6H5xm2ffNl2eRL8yXrOBtLUe5TrMbCRIxtG+u+UH/WwwihGdVFdMuniKznLclndVfXqUlZ
vlE1Um/EtpCWepvd8s/81rXCCl9EKxotQe0T7gQ9q5vUmKtW29SefGbbZz1Dx6sDVBCXzyc6Wxln
U/dWGxNTybK32oBWkEi2tr0xoZ2UWlfpJ/4J18G2PWqIQywSU+I9LyaBlxmH9aG3qdSeuW4mIeAl
F9RmoepycLQL5phXaPYrNJOguQxotgfgTD2c/QDnsgdnQbATOEc1Bji7FZzLHpwdSDinImUbfoPu
4FmkUhTAFoFzMwShxs4fOzT7k2jmpJznXblMhfoHT+FsZzgbaccsLZtKD+hURkTLV4W0bGyYtgOm
04Dpui5vfzf6JL/GepEOjmr0WJdjS3mL9YbguovKpTPS5b/t21x+s+dSsgtdlcW77gxmgNerlt7T
jbZ1oh6C2j3Ey4BwEoT7zuoQTgLI1BBOglY/INy381FrRrjvEe57hKcDCHeC8NwhfH9ERPaYDKHr
bJ5CsUPTB4BxTyQTAAK1KlukoXNd7C9fPmLtrUiBwRpOhoqTwxt9MlaAfPMEJjoTizeVF4TCbFUC
nQzlgAK6Has/tsSTDG7I4aYsauoZAAAK9a6DMKwVHuz+oBk9JqXY7Kqw66Ovy5gY0+xJLO4Z/cnY
0AlRzBhqI7MLgofa5exfDIEN/IpZwcm5iWl0v1G3OzSMLgENYNZ0ZaLUPz5G6pRnVSaIIk9/Cc2o
4UkeuPoRQ1zJ80axjCyrP9v/8x7ektWf/BZWq9MJm0bX7z2bfKUWbP8o73wv79zlXYzr8mZL864/
l7zz7bzzobw9qytXdbuzY/8yW2ahVL5oxE76JzWr9pcRmVq/+kkkjz5EnJMswi/8bxEyxobOTVKj
5s2hxDS6YVemlDzFjI50GNESWd/nDabGuTDN4jsYOtZ/vf6+/s1j3iK1iAdX3SG/HzCmLZMPUDKF
dZIf8cgQtvqMdyyGLQU9nSMuhXq427uM6Sw/PfFMJGzBQ3M6EEBHaJQzgSJO7AUlpYlOhcmTAapu
huld4z4zNHmx3A9hw5OCJnn18/CvcmRSUyhyXtgR5DF+DCJde3pMIz2O7FgGdgz32BHXawn78Sh4
49dvQXBeSCacJkd/gxxjR44iMYRkgm0k00yj63fBimsPHh8f5J1Ok6O/QY6xI8f9vNOhvDOLM5w3
jw2ubLixCDemgRvjXW60806v8ZUd7U16jCM9piP06PiJhpwoqC6NmfOo2pGj/Bv0t5CjV4sJUdbX
X/eZMRCkcgEy0aJTtsZtAO42AOc9CT1kfURn5x7h7q7sQogUKJ6L5VAJvSBWZGFdzsVK9YDPx8pY
70+eYZ4SJP/tWL1/Pzmn50Yxb+Wk4Eq50PY8aVdi0q7EpBV6jD1XxoUr48iV8aiWHMkyHZaS3CI5
B742SGhv/IZ1ZH5zcWAdu6IdGuiyzDvFmumy9JqMqvAqzaEYyjtRzbuiDDfqUogPU7+rJtMeYdJ9
NZn6zMfE86HEy+RK5sT9lGLZqkllzDgwZlgxZhgYcyDMlZr0F93QEW8zlC6jmkY37OdNU3YYWyz4
yJWyVpNbvowDX1LHl3YhTPtIS0bcs8O+Jwgcw010QBJhD3f1E+sceU0czMfSKxZ+O+ypWAlXzYA+
GysxwvktOxMrTI7Z63SsKFg5FSui8e/V1fvHdYYstZBfMTIznSIrD5RpV5yZVpxZBs5Ms6cjAtNd
1AVToe8Vpm+kadVU1sxqGt1/R2Liyo1lRGacdCw3tRqdYM0HIrNnzSbW7KjWaFBr++TDt0omPcz8
rsocSLPXmDNhbujyiL68lTHGIW+5t3A/rmwEprIlndCXbd8OWQ7aMvTaMjSyJDXvasvkJsg8XGpO
U+Qu2uHK2LGk19+9tozntKUPaFxblQZuGcMqHYC5DwRKYaRlhDR0mFN8CMwpZ6MFkEp4QbQIyJkc
zkXDplhZ5XQ0iyWRTkZzeBbjvWj96bHfxOeO/kZh+YbILANVuhVjliOMeYwwqSfMcFH3YihhOjWV
MNvXxzKTr50EhHgpwBZbsZaEd5xQS+55Jzfe8fPHjjDTDcKki+7p/c3uJJaYRtfv4Zg7IZXkHmee
hsztKvXUpV6M7VJna9aZtk89XQaHQ+7pUO4Ogs3UHqMp5VUXb6hzZrunme466gwPqdOepU67n3bI
EBPc8AnKD8PYijt5yJyF5iPytLpjVJodT1tGCI8sziA1uj1LkgWcc13IjO57eG9GSLJu8jbmI26d
PKXH3IIrqNARt/CWDmebp2SOZVsmz7PtMbeYbzJziTOgxnX/LRz3Cqrw5RyXRo6zI8flwxzHF0kV
6LaA291aAwdMtb0oPEFx8QjF7c6jNMyj+zTBt589a+QHib+A4eIRhis9w5WR4R6ljnktWvZWylSy
24jDfIjiwpbi8l2OC5fOTVRj4Lh4l+PIhsmz1nQGPRhoTXG5o7jUUVwaKC51FJdvUhxIC9ljQShT
IONvShlXcNI5XSAjq4i8rV4cZkIcezrgEsAH7o+4jJPn+eaxS8yl6ViWGVgN/oDLDJ14LEvcPuYm
domWixtCs4Nqc6s/o2pzK0ZzA6PZPUq7Q2fUSzYaJRuNko16OvuL/DJNjuzGgfBVdIFScANInmMu
MRHT89vXNxIJvqUkVT2pF3e4w9GWID7uQH7Jd6QM19ub6IuabdAsHwnC583a15WsXJAD3GM21/Ns
3b+fkNmz9jXDhpjdlPNr8a1P07sfZ5+mv8qnlWmZOGzN5tdSTfIzbZqCUYLCMUFJqemHDkUNCQ0w
mx1PuIcGRYvdSIaLeTpqsb20fHFUMc2rcmVU8XO4NqpataCOno/aX+XqoBnU5FJNffO9nrVxcmjb
8/PzeoaRftAz9MsWDfetDZsZZnSG9DcC0SgQoWX9JBB9CUTbWu30tn74fYmDV7q8xNf7GJQGyUsa
JMIUHd4rM1xnqrk8XbSeFn23Zj2ueYla+0DUYuV6XPl54Xpp4aYLggs1X5Ha3cLferOzurU7WWuX
vZl+pzfTUs0GKYrdfsnyRthozvSSOTt4s/dsYO926JjKHg8lnX3g+eHVhxU1tt/N8XZW9fjg3dXN
76gj69moI5mNyddGHe21mI+8Mqpt15Pryqhi11euDKp2K1eXardbG5cqTe9LZrNpj2Wtf9mmmf6U
51atn61aPlu18daq+bDvvDztvtXdhznj0epHtkdOtufO9bSD6wHUj3ZtEzb/1f5eD9K2jbcNtylb
GyEQ9f1HkF1pGk2erfsH2rV6tGvjoMn7yvullffXnNw7JWN9lzfS1k/SVk7SVu6encXVrM2tZw2/
SHFr08WqHl+e/ahu/axuPdTto6UXe+t4ytfXnvv903PkJ0/Pdv/09MQ92jY/UPuXYefNU/zvML09
QUyboNHdnpBpHGZ/HY1Ll+rJqGOsAD+g4RHO12QL/LaHQ/E8GF7xdmsOpvWbnU03RyjbH6y+xmut
efuDjzfWOHuESax3xFzDty3mAmMom46TpK0+Mba+/PXyh20e+/lmR/AfHMEL/zsngLnjAYbaI81s
TTkeQlavm2Ip/w0HWF2HtHo01d+b6Ivdt+zllJJ4OAa9QcHHZmbZdZbuYae+dXxbbRoqy2AoyRuz
z2pFoXiTlubBrFAyRUtzV2nF0fvWZNc4C3sVGIJSOEY112Czej8rF/PfNk1Xbyu2D/tehkfNnLwJ
fM4cxTZnX8zG+QSlN7sHxSoJpasetYYJSrSJaYiVvohHKog0cxB7ollUeo3IrVuNqEHCNXF7oijY
4huyGZwQKQ2PavLDL5NhpjaL8gQn2TIyzwIDAWlFY4ueQSVxxyV5UlcpfjizZYqyRyp+q1YlvEaS
Xitbk7hIap9+592Ng10B66FxpNWaqw+lhck02CqN2STU2+b3nPx0sUZlGEmfNHBcmPSjZMY2SEDa
QxQD0/4stgYis382BZJdx+F5ZVouPGBPZ4TqGZv4sLGUqD5HmtHeI0t9O4gJ6ezVYfGYvsSyHlQp
OwtLbYzREbFfmcVFGm80vq8kKXPPYlk3vh5ovOMiyrjzDLb5hnhK5BwxXB3yx5cr9gBAGKsVKzbk
oXE0QkTSV+RM7i3C5K5jpuiaCrDHCEYTJRlr7sYqu8RoUhsgQ2wYOkdrCWMG4couEzwdrcfWlNi1
xdmKh667OHrcqB1otGo2IYhLrNTiuKOmvi9mkWmUP6nUVSFCEwkuFyAFbgdzimEKCfEUgxANnj5D
SEoUgj8xWok6sIoX5J3XTO7ukiV0ENozFct1Q5nrlraPsN3UBsJJWkIndxwnqzaakgmdqKiLGBEF
SLZWB4nzZn0dBRlDRUjzxt97yPWKg2Ic5kQtBm77sASGcWirNb0sdHHcd0z1v37Hz0jdxIq6mnzU
ZMmkB6MYiL4R2JyIglgjW0cnfv35FpS+kdmM6cTHeu6A07eyytFBfUO21pBbwJ3c9jh7CG67dvt7
CthGBBklnB0CUDWSGyFovbUS1zey26uDfauEL4BhJ72dzUbsG/GNEMi+kd9OtclVuJw7tG8EuFMN
iUGE+7SQajIci5p8HYoXbHY5gXoJl+xkIsbdBSF5yHHfremrSx2pBnhjKJ478X1zlhNjnLimaAZm
by1AHQDH8ZQQLMc8ee4xEO577qFR4q+SkpingPiNRPdQ1GOVuHVg/EaoM7bDupHqjKfXS5d8aCfX
GRdndq4xnhBBI1YLlt9YK1ytknA9uvuDK+3FMaDVZUWAuYMdypjivN+oggiIZ6owQcZ5qolkueZY
59Hbskh1hhPOTmucvEkLTGCKjzM94YyPAVUSnaEVIYAekW2jLR9AQJPmEdYXwvzQKuvCQW+gXPd5
SHKuIiME7OiB8K4TJhb4SIgjArfBcH4IbjvCEfQG3GS/QkLbIk/kZOoDekdhYkuTGV+wZLDbgwGW
aSPLqrc1Ys6PASK2t9BQENUoc2WUcROEJbIYrOye1PmFvHZH6Ait3BKsLIDNJjAagI7Xg/N+RSA0
8ez79S9XhClTFCfxvCLiGdntzCafb4Q1QnXFy50eGYS+EdcIgendXz4E9bT9pgnhSjhFKXfgmuK2
ENKKxZTMH21F5E/e/4DSscs7fm9nwdeBDxYh0cXfx2tLqyfiaUrBLzGOj08EYp4IHV99j8mB/fMU
o6QYfSHbDtg6/fXyhx7CU4oPE+QMOOU58Qg6a1bxR0Mei7vJua1Llyb9TRqLBy7IS68zc3aDuqkD
5H6jSXMk5rxo00gT2UQvUB0YV0dZqZQOvxyrmhy172BroRhjzr2x8K1iYuAksBnNvbsjEC+8ZFqD
YlI+ekv2aVX5zk1kmBew/ZUDl8bCq6St0C5M8cY+aRekO03nJNWzCRgeLzWWCJYaLQrlyqtf4vmF
s4qQcmNPQ0SZJ1GBXVkPDFdinyfOFZ4MD65FAK00DIstM/Oskh44uDyQU7tzx2HOhAciM25Z3V3V
FNDv2LVtfsTnowbVg+JjeBrUHN/P5C546rEdtmY9e5hEpcfyOh+6swXGhQ9bXWmFS8au0zIlkxgv
wcNZnOPL44jlOghVAuQ0kW9APnC58BPGQMuBcYfyAYDMURe8xemyEhdkTH2Z0Qb0ZInbyANcKhpd
SxHn8SKuZR14vFg+HXY1LroWhL2vsDqCc91bJTylly6eeXkeJhKnYhgMtbBJoBzoFaFDxgoNOEw9
FKXYlME9p3efLMFRPRpMaEBIFkZtv4C+tjCp+FAKWVxH9vcnC7f5BCUz7+HkbQ+VbahbS2Tdmuws
eo1uzn02Vbc82L9Ppk7+EXBHkMKzwK6AnlFWtbqNop6YbFqRJnr7ZKDeo9wBeBF2GwbfPQKKiXlq
iR6iqZ7K0ytH3eG4bS0e1uYQ5wuh+U+Xw0ppgf28xPTaul2zi2subm8v0UzuaVZ/Ec3qHc3ks0j/
I7f+DOS1TlMgkCx1c9mW8A85Pj7D8TafgLx+F8jbGeT5TPLxi0jePkFy+TrJ60OSp/mDUa7fh/Lx
m6E8fx7lKIyWu7v9YWu1I/86yuWM8vYdKNeHKNcvo/xE8nYkef+1JG8nktcjydvvQvLyc0jev0jy
ZJcrVuwN6WPLeUyz06v0nmX3KLtKstXxkyS7+CQt70H8j9j1M36XWV6TGjuaVQ3g9C/B93yI7/FP
4rv+NHz33wTfnfgeT/A9D+2/Ht/5Ib5RFw0p0ewgoBIX4N0uwbs+h/c1dD8k97hO7nfQHdHn2V2/
j93yMbvlY3brD2d3/63YHbr9Ok7KLZpwcv1l2q5n728yFGnR5kqsxpoJCYB7hQb3yLXenFxpRg0l
1igSJyTBN7PVsKrXbKVFL771vb24odr7Q/XHYfyCc9+nx74Pq6tWq/mwesisnwZ+6/AvQNzWYNk6
925Y+tgGhYpsE9q1Vd2XA+Eq+2qhQ23fDP4v+14Byf0kDo04qK0rz3EbmMe8TctbWEviHa3lpm0f
9ve27/G/yFSb0Ua2kv4/arKgVynM6ZqwcnVqpH1d7F5sqrGvy7JtLjbbukrk4rbDnuOscut769/k
V02vHLcRvO+v2GMSYCWSzebHNUhiIEFOEpAf8BBbiSEHiAEb/vep6ubMkPt21+9BlmNAB8uvd4Yc
drOqutqLta8FO1I6dvYb2b+LBillPxB7iOp+WjbzlkcqCEEY/D7dJp9ezKLua2dUcOtR8f3LBwb9
YExmOrZ1o35kRT7WOEE4DXUYNTme75QY68NwZ759OD7sd7Cfyy9oP7bf3pYULVSc7nZtOVqxiQAE
twndXkloXQmt8pDQ5u1mQl/zua58rrLwuUt9SOimK6Hrzugc28LoulK66V1K85szp6usnK4LpxdK
M9v7lFZZKa2voHR7GaVjnCjtW26UTtZhBoO4NC+87rrwuseZ1wlGZeK1p3nw2l4+eC0rrfMjWre4
0Lr3g9bZettM65qPK/WnM603+5aOrR/TOi+0lpXVPS6sNhxPrGZFFlb7+werux67e7UnavMuJmoP
ku3UjnGidtFyn9qlcwgRUrsrjMFBbZKIkhllYIiCQeaNE7n98FGRxyU2U3F/hmmHHsRNEQckqo+7
IoVtdAdB5575iGs/ms7mwT6/KktbPY4lbY80yljkoVKrs9T5qX/NZoO0hPZB99g4gSJp9yOoDo4A
N8Rhj7vbggLhsOfBIVQh1kRUdLNbcZ2GKB88YZ50+nixoWkOU9o/fnzaJ6sP3K0UikEOZB/C6p2y
+Kc4jQBWDBqMLEngg0y3QWMKRbhQnBMd2mTs8lM0NDMnm0ctOxOzh7nX+V37TPbxbTtBDqMU47T2
9MNp9DVvMx85ZeYju2Sm2OXGRs7MsrG2hEQ1nOU8zHYuJmtxBw81z4PER714ROhtWTuukg01jEoy
+RmbeFT8a1qZYgtDigjyKcyB8lK3EdFf1rY7rnxU1sk7h8lezvPDNuQgQHC9a1iYKgc1HQ8rB4VY
4tZ4KkeKnA4mcPhQR40Ezim5jrDZQDOC2jjstJQdb1ESwu6EBThDZ2i2nyES93cs5NTKfweSG37n
vxPOSYaBRU5jhSy3SKHN07stcykNhWGIUl02EgBSgd/xbAxgxfzm/oy8GA+p+UjHxpb9qRiExmf2
QoAsyjIlXcKY8oFVFNGmO4S5s4ixjJDeBnNRGGtTTTbgxSPZ6SlLMYedt6XLu3FbKnbrRca7xCj7
yKgbALJDoqKafNfHRWTL5giEBD1Yu4cdE8W0EyW8IIwuWh3jbjm2itBsF7UU+/ZD30RvjtlFRgwW
WD/J44cUjc3jUiP9oC2p2a0K1D5c/VCrfbRsccm2hXrD63DRU3fp6LbpvDdbaJi1avUbQr5nHr8e
gmbtTTwOpU2nHc+d2V7ZmqbYgXRhfxqiF/3kA2ZJdDqnx/vHcaVRp828wcxxylMZnPdLHHW+CnNz
++4uMOy0o+WatR9Ho0jJHj1r5IqaZVC9A34N7nf26Nxm72G8RTnCaJidQhqVMFTKS5HK8Ko1eqF1
5BqHdy+TKTbRLJuS+aSTt1KJW6A2vZ54XI8D9rGvDkdl3n2yyi1YrDJizVb6uAxSrHXeimnHH9YA
d2TFlLD5Gcf0HkcHrJih9vqybDQM5ikAiG+niksBK4VH6MKjylHysM8QYjdmRrOYO2JvEQvgNiG/
KMGTqTEsGE6EAtCkYEJg97LFEcdkhCo8ncBqvINQTa4jtAh0N63mVtwWHu5UDFGoWKEQ8BR+CB7s
6fT1H5gaaCDnH89LRoLbh+heGsSJirNnBI+haijh1b5boIfU8QnaVyxrnEoO7LF9QRDFEHK1DNYT
ZhI50nt20GhfhnpiuwwrIM+WZUEnD5A2qlLvz6qOM1ZPmu6go5QoTWWthV2KST8hnRZZs0BDgWIC
kUSzeqHNS7NDP50YQ3MvLExHqZWMKChGGXtdbN+nk9kLa7J+48SSH2Kq+ZwFwINXI28eJZrZCrNC
T6e3cm9opJF5FJJlX4VSYVwgDOONRZmeDKiB4yohz6sEKKK5tk5xtQxgUE6NkZLQ2zN0I0nUcAM5
sDZAjpSH9TXLG4lvQLtbeRKnoOiukSNV6x66BGVC3GKwCRvTe2MpKlHMB9uG/LvYi+BS4z0kZXsI
UTas36y4Qrub4L4D3EiZ0EZqkH3ZvMO7Z6u0oTPHSG7FtGA786ryGEavywf90cz6QZgicDYvFIN3
yM/JlCMGUd2OqfIc3yNJyiFRnbIs/xLcpZYRWW11LBlBGLhuut2er7jM21y23fw7IwzbitslTrxD
oNkwk9azX+4UOIKLNGsxUAVkwbRpR7iF6UizC7fLKkX2m6tllzvrcCtqTUlQ3RrKdXVBY8jexScU
SEK01EOngHZYTRqz6iiFqtBmREsL5tveRcjmS3MHfacVw8D5ZP6Hcx+dKOWEfsm1vui+6cU/Ye2g
CGcg+pRkzsgnm9tVJ9I6eH3BmbFwTupimKenDrewDeZTIFENTH4px5kT0i2rrjekAV4Dgl24sJrv
Pz6IFZZIeq5eIpxUKns8Z4fYr4u/QYtYSyYpA+GuKPifdTZruUDsBuvLjuvtr6e99244H6D2ZZcJ
4snrbfGA+oHwG9WWDBXlYHIRwIPt8Mh9NMkbidMfWkdgR5I0o9W8gYP2VsESJ7JLarTLq/g8WggR
EWvkcGhoMKJ3vEnYijCxPJ2XuqTzKNqkIZlfOSzJ9LtX0lcccrJd3KZajyscGqcCkilXejp9ZkNu
JAwckie2xlzFdanuV6oG85HKMWgVoAfrCsdH9riUQfKWnlUYDCqc4HKkkICkg4WFFgl/q1AYIASp
Vc6imFEiGxpKhB7JckYz10J6Ua/ZLZALBQXegd6wctjwnS7c1uWavQahBjPDPIQ58TuaLRWKVZmG
0rvMVHbDjJLfcHyc6yhOkJCuXeeiNevDKreKVpEFlS4pTtZSXiyfOp43vcEIxq5uk18zd7DYby2F
WZFUbNEtLc0m+HacQq2KNUX/X94iF+V4/DDm2vl9ji6ybzbCYEv9b8hm2FY2A76MN7mP7S/n7Tsj
tN5Rj9hHsuP1MHYJY/enMYug5Fi0GPYvqAZOqg+OjCEd355UqRDYnkrZ7JjgMFonXeh//4m6aQEi
w/RGhYTU+Y2pnOhrjTOoAG0IjmrCmmRr0DCAyLLY3Blw0B/wqHarX4v0sF6lN926YJJsA29tnnGO
PvCabmAbexh9UohmO9RIjLgX89Z+uXC9FpFzP/FppTZQ2e1pTCbPAQz5ga5YMZHQN1Q7piTbuVYb
a6TZtwuFjhTLbjFwMAq4rVOYcvxLh44yNZ9uqjA7Kdlq9ZMhUpUWtS7Vr0v1f4bDFATAlroWeC9X
jvHlAJafAbCuANYJwHoFYH0EYPlUEn+Zud8mr2hDq+4sAPofdB/b5CAzfthmO33M/soD+gqMMEZI
FAgaQIMZX0xgeU7g9iIGx4XC6YrCeaFwvqJwXijcrijcFwqnRxSuM4XrqygsENBKozzdgSDZl3M4
F0wvyY4fcH9VP1MP+qVg/Ml9+ItM/TaDOQhmJTY7PHvpzuA4oydD5mKcX3nA4FxArcpOkjonpVQ/
pQX/thj8uZpwhoo28+LHHbyuC+fAo+BzkdWp9TOhOK8ozhOK8xWK869F4C8m8zsduAPzgESK4nmB
vgt5A07RpuePum8vb6LCi6fI8fTzE/eheX4Nb8v/hbcChWtWrr32r6Ot1vymKr4N4OKZlnvoHfBM
/j/dog29+w9X6E2/MHr1Cr16hd78ct5+QanfmXvhi2HWYuXr6dbYWwn/frzxaOyFjUmBT1sGh8i3
F3JX78698luYe525Ppe2/IC5fWZu+9mxt+Q3retS/baWtig2x1L8hIxwqQpE6JuCIuONf5y/wzvh
/A3++wrX8COu//z38+ntV+/i+ZvvT2/fv+e9vP/69PYvH+X8p//go4R/Ksg5s16YbwRfw75QBtu4
vHrjPG0sDaWBZIniRjRPB26v3le3ff/4fkhYVB245bCh3YLxZ0FOkgEeyD3qjNt///H0Oz1//Nd3
3//+/b9Pf77e5G+4lRQKz3D+6/l/7NdLbyS3EQfwXKNP0UfpoFk+ii/AMOBHYCSID8EKyMHIQZbX
xiayNonXSPLlk/yryO4hZ6Z7ukc9kteri9Sc6Z4mi8Xij1Uae+474TBkTNr4iEwZ0tjaTQxaVtLr
ppD4iPnheTPGsTerEyOSjUzHf/EUd5eQzff4WMP5fctvElKo3JS/ysv1+zz+/fFyqJOyLk+i4eXF
Aw7tgC3Xmo1Cx/KQtz02WNjEeYszB220ilXtwyEOmR2Hce7+Tr17GBs2VoV8dLEe2/D2Z/LQr4ex
X/fDvc5D3Lbz+Ps7rw9E4HgGGI2J59+T7LOcchyRNJUC1TgcyotyvKPjKKucq8ORa8P+tBttWB6p
vFK7eI7Rl3K9ia22se/jiMPVEtOVuG5v361RI/lGLpYqH/uIhhb/Iy6TpY366KUE80PXhGXBgS0X
dxfN5/nZ8khp9L9XmvllfReUbHbyc6wf6RwF3be5eno58bjghlbVQ2krqYLlSUyil0SU/9y/7ad8
f+jvL41t96SZ39R0Yujd3S7ssa5JaHk4xn2IqQkx7YSYmhCPRPikAI/GtwlvaMIbdsIbmvA+bXQj
vMFPaeJNtBYD7/6RIYMLpylroGqw2u4utu2QJE34GaGFxDdf8EZtohs+xyO+f2Ro5N8bmmwoeagK
sMamnnvmki1N/s3gZWJVHFpD93JbiWDKc7vx5U+ptPj2VG7P18NPlWZ+T34m96Dv2ETqojQZZ5vY
KsEhg0zx5CotsdWUzwcmh1ZOC7qcKQzfZ1LI0eFeksQ276IovZFrmcHhw6DlBUEWswHjgE64y4bO
bXjHuhMOOrSshw5gPYNrrzm/lHwerC7ZntCKgb8xofPSNYaZLtd3FyQlLLfu0TJsAWlxlzwe59ra
Xwev5Znc8oq/4SdEwfmn5FLSGW+RBo/K44QlDVwa7i4FHqBX8jHmWJ7Q/Kvk5C4r3wCYuMa2gus8
poR6hjh4/iJFzbEyvNB9Kh2QdJUAa8uyx/8oOSSLU6VtTu6vpkg+5dUUSPmdGS8TXk93/l1dpjvk
+a6nOy88ktkOZbYDOkohSFx4iWAEmvnreATeOdEvT7yTNY++GE4QbFj4JngOtNUSvShjZnrwmMnI
mH0ZsyyEnJDjY642wb0st3l53OetWIZf/IZB+m3DRJ3PDLlJNnT9E7Iqyw+V9Yp4kPSKm/dcQhW6
ygcObgUMKgytiEiz/XiloImlEHmMsW8GrgQbPlngWibD8TmAeB6lJ3KYIVktmBOeNYe+56lJ3MhB
QxHlGyMe565oZ/LbvWdUGqY+w1yjYXkFRy62aHCxk+cUjjX9EuamtTLHct5LspYcV98gB9TckOqW
tC5NPr9uouq/5eOprC7ycp7zkhy83mWqHddBUkam2iQvo/MyLP6jpfpaSUcpBZwPkv1O0iGMpgNX
Ey7H0HFUWKj1dh0N/4S1IU+bkcpMWg5tVnEjRCnlIaXSkDfLNsEt7qzX/F3UkhxSn5WLhzuDE4lz
kXcFz2fW+AK0MxDC8UA5p0eCvKLQ1g7xh2E0l3AcYQNo5DPqUngx2npGq7IXddPRC9J+7UjDckLf
fF5OyaePAWnVRriX5S9I++iQho06BC1FD/dZ/axKcz7xVNgu4CmPSJ3RaCf54cmEdoofjvIB634T
vTUj4V1RZ+sGd12bnSe0nmsT76QRe5Q1R1ymJ2GWpmFGB2BWNfZglis2Pb3MYiWz2MosLpHZkLcI
rglud5ceXGaPucyu5DJ/gsvCr9xly1m2zcjdtYRdmgu352nnBbkWykyjMr9cZe4ElYUZKhs2vv0M
/xBMZs9sMl+bzNQmi63J3HOYzC4xmT9uMocksB5lLSDNEkbzrCILTF2sBV6MErEXkq1KMo+ZQiKN
xPfFZI8xGW9GKIsGSay5Mp0RZe4klLnuyVGWKpSlFmVpGcqGzPWoj+HZURZeUHZWlFmePyuLScmW
+xGobNj8dlP8RWUfn8o81yfsSwHbY1L6OVlGCUR0CBAmDBOfjrHMzWeZ1gUOWtdw0HouHNxBONgd
ltkFLHPLWOZm0sF2Q9/24huRqJzHI/HdYZmbzbJzR7cJ7iyWuUUsWyO2iUsYipA2vBy1fQTLYo0y
W0xW6kCk/tNeXfGox6gOLLNH74BMNyJLUyILc0UWy+16YNwgsti/pxKZ7oa+jaetThunzBKU2QZl
rt6n4zjK0ijKaBbK7CjK6HEoCxXKTIOycDrKYmWyOGqyMMNkfmsyf7LJKGEP1LiJV5KKcQ2T2XGT
+Tkm043J9IjJ3ITJwqTJtjvffopPoizUKDOroEy3KtOnsowmWEZzWWbPwDKqWUYty6hlGY2yjCZY
Fh7NMkoBE2N5p6aNMv6gylKjMnMSynyFsnSwK9YlTnNUK41zg7f6CMpoEmVUo4x3gP6iYoNKNRto
gg10kA1mB2VmAcpoGcpoJhxMN/RtL76UMMOYqpH47qCMJlFGFcrOHd0muLNQRotQtkZsHUqOxXIx
Glt0xCFvEmUmTaCMV1PFMpOKy4QOSjaQ/vPeX3kBjtgsF4jouh2b7dCskVmYklmcK7NUbs/XjcxS
/55KZj3MpjIX+2UIuxv1lMtM4zJb79Vh3GVx1GV2lsvMqMvM41zmKpfpxmXudJeFVMHMNzBLFcx8
BbM5MnMny8w6XkUmyXIyHho6TWa6nm4ap1mYQzPT0MyO0Mw3NAsNzeIkzar9by/LJ2nma5rpVWjW
yuxUmJkJmNm5MDNngJmtYWZbmNkWZnYUZraBGTUw84dhZubDzDqEQFILUDeKt9YDMguNzHD3Y2kW
RpSo2dK8BQcsDqPMo2zmpm2mD/DBHeWDfjKd9Z8uIoQ+agiKvKu70Rgv8pmb9NnaEV5XaGeLr98k
3hkQYJx1UtTTSLOTRovLjRbHjWaXEy0+EdHiLKJVyYuSz3VkhGjmGNFoJaL5E4iWzks0vxLRQkO0
OEK0A0LTQjS3hGhjWqEYEPyymIxp9qclRDsqtLBcaII6htQMofky5jRDaPU2uJflHwLRzJmJ5mqi
6ZpooSUaPQfRzByi6UK0cJxolBBB4xldgecVpWvSaO4Uo8kMakmOWIwWD4NR+U2UeGNCsLQVHTGa
nTQaTRvtACBoAhC2K4I5j9Co7HBUBFEaiwBx1A9IHGQ8j2gkwDtAs5NAo0mgrRvex/HsSYJrFZd0
y6vXoRqGSC84Ww1ndeaiRka3u1kPOmv269V0VuOM1sAZisB5daYrnunGZ7oBmhah6VlCM3tCa4kW
TiUajexPvKaSMiGvqaR0e+BRlPK0K9l/hml3h5imDzjtANNiYZoXpj2X0+qtcC/ff7lOsz3T7JmZ
5oVp5gDTYss094tlmilM88eZxtmAEsclmRKmAJN8nGkmK80JxUJWWiyNWmlhT2nTSMNCtHxCvcYq
wk+igE8jjSaR5hYjzU0ogs6LtHqnGxxh1nYEWaQClu5YgHeQRpNIc0uR9ojwPg5pTxTctFGKccOi
IB/9C9JWQ1qduWGjA7/sMNLMWZAWa6XZD0JpFdIaozVEe5TQGqD51YGG9UTichF60jQLaHQIaPN8
FhqfnY1naZpn1Sa4l+m/XJ71zafymf6QfaYX+Mxx6iXe6xKvPDuDZ8jEyme+9plvfObn+Ox3X3/R
5T+vXv/99qH75JNXf7x9+KG7fPNw/dXnV6++/uL3X3am+/TTz7/EPX+6+Pxme+Nnd+9/vr2/efPv
993lf//3m99elbtUGd3fLl599dp0P/x08ermRuODm+9RTS02hZt/dbrcpTosScwZFqDWvDjQvZsf
Ly67q5u/lt7d8Fu39/PZzoWd+7+5fH3lu8v3P3/35uHK4aK7+svNH/hZ+Y262/vjs93Q86Zn5U0e
17p602dXqFaXd/wa+fPuxx/ffXd7hc/ev333kN9bOv4PCYZLSHxsrpEwqan755uLP3cP/M2GV4YU
C4mV4lhts8NE7CohEJ7b5gV6xFWQK5fiqqy8Kdf5L28Y/B/VRQobbk45Qct/gdT24+vq9uv2h67r
d1z3L97mzkREaVnGtMkQIlIeY56RBts7v7n86v7dt7f3V1h/l93rn396f/v24fbbt/dv3//nymB4
+HRBSrhur2tDNqDM/J/8amnS4yiCd/2KPUoHy/1+HDFEEDYHgjA32wexCKRAtgl7HeB/T2ZW9cz0
J+3KcPGBy+7kN9Pd1VWVVVk68PPvfnx4+/DTwwu48fnru6+fv4iD5/z+y8+/frGlwae/+eHh7d9e
3T/wsM8++/7fd1+l3tnM0Xfh38kGO8H1iq0aSuYAe7/59I93sOzn7396WMY8lU5KJRUg/GmPJNRE
b0MZqahzJV6qjXrt1OAlIY6akqL9KwuxgLITHa9ZQqn1Lt9HFVzfy1HQSnseKKLZFw7lYGYD8W20
PWuxHeNQhZt2OH73zK10HHyX4LvfP3uj9AyerH9QFSx3/8LzF3f/h+4IEhVvnn0Jp5xu+XCCQJ9T
FFcUhwIJt8840mCj+5HBJl00IuFpvYjSX701puFy32BR34qxGqaK40SXmi0fRcIFNd1whYSgkIEa
FY7QYcDTVWaCAuUMaohFEqhE6oEoMUg4o+CY83wLDgdJlji4NtswBPnUqiR5iJo8qb2l0GVVa6bX
Q9WwO9rQ0sZBrkivEOYsK2qZOmdWve2z2LFdVkwZBUcwJaqrZthoWiklM7nQeYCtCFJNC1pLH/Zt
tMvn1E1mJfNUCH6QB8bNchGH5YZbjh64aN4KHhke+kmx51wP3Slc4zB52Q03BSlLGDEtq4LMScH0
FaUphU1zPOTcHP39DBp1Wf7O91Fiz3DSHEmO2v5Zc8Asbl6dloPR1zPEvHHw99E4HNwz05Ro8ZSz
EbcMqTpKpp7Fk12jkROzYoio0JkcObY5xcTzcFdT+CNLgh8gsRm6EyZKisbqYYiaN1PzpSlJ0a6P
U9NAsiznLMuQrZBqQOn9iDDQXMzhS8xs1WEaHOHizOc5GGbTopVgqaZsQ+S0WGUiLeQk2CzpKlIQ
I6nsg8cLN+3Tlo3MobQPS+UQuaynKhQr17VieZ24zOQ3FRVPy8bZUmhIit3QIAqW/TXwfqPF4xVc
0YsvixrVbFludFNWpjORk8Y1W8faWKR+afKEezj1VLtOJhp27V4590UFMWNBv6AIl8Ogal4YCNKJ
ZmN29Ta9jvQLmk2JPGVnw7xiQ4Zo1V7mIn1FF/BjFt6jFFLiZi/gh2B/Qri0pRX+N6V+UWLQIyGj
eEGglIDi/p4c+wUyqj8ho9B1WyzSUs9/9/bHV3959/qvd/989cM/3n739+sxj4gnFHkMUBgdmHdp
YmgtoEepKCrIgv9SPHlTfDk+3BbhiooqmyHZ0tiHtNL5FYscmgIrTluAf7vJbUJkYlZH5AqkfWZU
7f89E7k7sGX2tT2vjey/naEFS4wHFYNoBsUWHbLdosAisdlNDFyMIiS51LajkrdyWvT/NEojLgG/
Lv61PZ9GEdkZWmBnL5NuJ940UIJY5T7iy371Zd992X8tX5arL8vuy/Jr+LKhqXDFQGeMc+tMam4m
yJp3OQf8W01GGmwsTrYCFkg62v971v1ZHfHz4Z+vZ9vJkB1iK05vSgG6fsyGeFakB/IVuFEGUTmn
Wj0X3fqSv5b1Kz5v/rk9r50W4iG2Qoe7RY/n5URVqnHv8lV5iY4YeGKIMi0W3pk69t7lsev1IAHK
pi31kTINKGkqwikwrHmYFs2dTamhECXVebS5zgxJWT0cf+ndqd6Y1W2oH9FPUfswNxZ12pw8d9hc
fT0KDtpM4TO7jD3fo7kwwwxJ3sIVhmgTT5mxHs+9aYmBFihfuAB6AVrWtrJn8UlULN3EbyvrHTW+
vRH70Mv5XG1NbFIfYieugecsOlSpkqiPZuO9QiNbJutoS6pjZkK2hJCPYy4uXJoiww4cZjmy8X36
1AH+F6yYYx92QpkW8jDnNeRlC3m3mEeL+SXkRRFvHnGWoNIt4jiVVwh0TNFj5W1IPui9nrWkS98V
EbLroqQ37jzUR2grL12iLt380krHqju3x+68Otl7WZ6NHO/41AsZ7LrfNOIBkOb3zw7ElrsWiI++
jzMVrihiSdUAhUIZYCV0l4ngjgv1Ew65OYsqgOCC6slYsDdyHC7ic1E5rRpdho4vqv6cfARzTGss
Mv3MkakQ5MnA4DgKXeisGu30hhTL+oYA2hbai+sAIj+ssdq6MOrBYULpb7Yi3GgWBTIJ0DADKrcz
Joc23YhR+hSjjepCaSYMq2K+ql3VnBJs3GOK8XZd1+KfyNcpKxdz1JLFAOXu7I8yYMKdTEi1yLI1
45G4RVZ2IXDJ2khU98tKsz7U7vrsDnTyHI4krCMtGKroVuwpwE9bPqZmxxJvf/pFevaqXjNnnnro
jPfUK/a7EaVj//yr57/9+QXu+/z+3etDl37z5y8O6fuUMI0T92WdmhzqpFDBatTuDwjTj4jPwVrX
UBbJ/5v5k/Fm5vtMmasIs4bIVtmjU2qWbyFS6kwDRaivVCxEQxMc45vUatIwOEI732aVsLU0v5Ts
LU7RkNN5IroFi++yp3hnd2tR+YoNNnxEHWCxyP18Baz50hfS5nNX5V05D6UG0/hkFn2imeU0l7rx
ehv861Z07LL82ZabL8735qlzvdx4bm9OPk+3GJzWWYjc9nDcidzM543fHBuROsNiy6JKNZk9mjOl
wwn4uQi1li9WHkHii0qzQixeeGMz3Zq2W7vZbN/l8h5zr7339e7FSxLUMi/nowW0cViHin6xHGgc
NzsDdkT7eB+t0HM16lk69zVleRxL1/TTKnhmGRGUt2GW805HNq6sTpa45pELO+iwY63589jZ3H2c
a7E4rAre/1K6ZMRxHRbBeg31bUdGw2soDB+kt0TlSW/10gu960ZvsfQRfue58TvOnd9p43eJV37n
emzLUJWd4Gkn+M7vdPK73vA77fze6H0lkB250TvXnd8l3vA77fzGZTd+5/k0v60+XAhed4KXsRM8
jQ8TvN4SPMaN4G3OjeCjlwvBAwegC8FzbTcELxeCIppt7gS3a18IHrf3E0HbCV5uCN53gqd4ITh1
807xslM8jRuKl43iXH8huealC8n7TvJyUtEM30geN5IrtdNK/Klh9ULyciU5fXohedAQeZCc8biQ
vM15JbkF8yB5beNpkk/qbpA8ZGj/bdSQcE9mBPuFplq7AI+nxSV4so3M2851vUhlgdvOdR9OUp65
ltmA0y+faABkTl231ajV1+UD3861FSEl1CouoCjk8JEL5UAs53yXbF/wN/BljOmkM9g3/eM65wYr
Pw6tn2+zVOYhC5Ara6spjRyjbKoS4PxGFnOK5cgZm8MeOE/WJsdBlydNuhLR0OwFMrW9jFa4ABHN
ptYtyNrQMLoYmogpRkXLoYnULoAs8oIJjbyrPwhiLulS7kJtRECT7oAjChaLD4IeLl8DI/OoP6fD
pq1DLY47PN5WtSXuNIzt5fq+eIVAYkOmN80w5/v6crR5Hne4BDAPeqyPuOFWl3XUXcBhbRdBNeBZ
7XITwaoggF99TL7NFh27+uUtHXOBTKiKRBrnx0dkbWfEvS3DYuNsNuZyY87jTJPIsVBpUy13QQuN
YcEOA25hbpiz7LkfamRmUtImw1lJuvYDlbtGMKcZdoqavTwuCwdvOPheUi+MtX6Y9ou9+A+tSf4m
y3v8UDF2bT+wAHhxsB9SVweljDQjGXZTMW40C0XN6w5BPT7M5ZORrMZWxz2zumWvjJEjx9Vo+8Dr
nHt53vzA9DprfuTcp5ropY0/tM1o++GwAoE2WeBbNtz/egRTd1zccowNJ+ZEsQJDWRHP3a0SsWTW
1UfmaR2j0U745kh4fIdYfHvkGfXF4mONrL5LOBgfzwILn5crRtlWefba5y5FpawLMy/Pmov6DZOo
b1aeRgyU5/d2XlY9utpDe0/CrvdvWMmq5DIT9VvCpgbHAUXer6Ge8m3+h/xq2Y3rOKLZhl9xlzML
k/1+AIYBy3KEOBYSRwSyELyYjCmZEUXJFBVbP5/knKrqO3eosTiSkU2y4dzDflVXV506Zcq7ukXG
sv4YgfbG+HLZYBPf7mBi2XX6EOPc2bVFnC1K6SVRZijm0HbEPZddwL4bJM9OQzYCmDDI89hsgsbO
AvLEYdGPJ6b3dOOXo6TN6TN63BZNQ6pCngVzEE1cR3Gs2HWnvFmE54O1zI4LvKcLmieZIUoSeLfv
64Ioato1k6HqFoMaxgtIE9zOuF3WQeh6SRLKWLka44dqoPRxVekzczVpl7wKzWjjuYuedrku5oMk
m+lvx6TksdZXMf5ESIbhO90/mj05eZWO5lufJPFqWnaujMOhU5zkaXRFHVF82sO+yny6a3j468df
TSdnT15vrqfPPz/7dnP9fFpdXH/26MH67PFXf3w49emLLx48xJwH57tpX25v326uzi9+uZ1W//r3
736/tjnOHuvFydmjJ2F6/ubE278chF2i/gfzomglpOf5y5PVtD7/h5rw9TlP2E2PDtev+9Ofrh6v
67R6xT+3a2Tw6tXNGlpjteV/3q3Bbavt1cX0enPz4vL6+fr782+4r17xy5vby2eb7S3tf/Dg1S/T
0xSQ1xRB3iFbM6I6JThHuA9lwzdU0e/P/jzBK+9evb2d9i6JFXpNx2um6LTfc17aBgYNYhslH3vc
XMDTqN/Syu3N6PszoG/wQMsZZX9CFwH561v8JMblnlHzytQSQqtz5G/T9SKVUozUyrw3JFCAxJpz
yWn4S3HS2Pct3PnZSuSnAVXX9nkSSovWMtlGkeMi/UTQ91GCPLVIYUcrOyTR6Lq5fm9PbFeFEsPY
VZGzxc723L7HGfS5T8ghz4rCLN2/aA5ahYNkSU+S/D37geT4VHejXqTaWKnI6TT5HP9PUi3QxowN
FWxP7DSFzhY42eOu6Y000O41vX7Q9LowfWn4bPae0fUDRtejjEZlzJJQaAwwaWmzP1Vyasqhvaoh
dUZbZcjdKNRg6mOhAqezutZMsq0u8dLq2n4KxG4eptDZgsN2Q1A3ST1kTuald4ajSlVWKe+rdIhB
/ib73p5Ao9ZoCH2XFHeu0O9x2H00C8YzevnuU5lWNM/5z9OOQ0lnrvaZdNI9nJsyL3Nn/tPV+dqj
jqxeXV5drPF7++ZoYm1IcgcNSMbpCTIIzBQdMuUArX6Iuw5R7j6fFYqs1kWpLpVB81rgu5JHM64J
S1iK5BKbPQhnHyTmSBuGtiy9Di3TGAWq88IBnESDQqBkJVuQMKKXfpCRJkXdxWJAMwxRrNBNgzR1
m0O8hvlMxk5hyx0WeZZEYF7xE12jdRGoRUAUZSTm0AcSDgjzmFatsc6Qbqgzs3RrIicOmBRxP1R5
JF3eMwn8HLyahHR1dXRLRFVM8kgoQ+KN6MJiNPbFwtjHhjqTDEZddLVDSoOxHQDRvJ2oEL16Jwl1
q/QDfen3VvVTm0eKqGtbUmOzvWVejVms6NMClOmfY2z2wMDzbVpIi4v2GBZuQIzsBpnebV5oaPaD
YbjVe5PWratj5SFzSXrTuEAt2jGCkaHdZKRg9ISmACgiEZouDgcZ2mqM8RNb5zDWGNANMUmhnne1
g6mxpoQqwAtFH82W/mPZcp8XZ8JAsGZ3HC3uT3+6+uvaZ1j15nbz9obyc3O9Br6dzqbtZg2FMq2e
iTa9OIYtMzKmNLZSGawNpkhwS5NCUj6aLE+l3WGAS98Ggw+yJha5gE6jIrajj3cERpdOoVYJnxq8
/sSBGDd4tTAPM3Cw4XI+jEpp7GVIZYd+t9Pkgi0k7mhMwjS2ke15nh5jUOKVdhjWlNpNd7aLs90H
eVoFmf50Qv5L08/4/mb6P3QH78Te7wmcsnPLspPxsqKyO2X4cBmYH8w0NyEJ7rHxzyrSuS4nHNuD
JAjOXqfawKkohbO7IdeSMI2H17BYKxGeBnSKu3ZpPJpXES2SrwnzhZi0GBcTv1541xf5YbVhEZei
k1jL2V5aM9OLqE0fZTQoJZdSpnccrV5w1NGZhWkPN4nCw6VKSMQgiqAqqUU9tUj5RFomhTAMcrHJ
ugzn4G/X4ttIyFgeSaKxJHHWOwng76THrJg+vwy7g53f7+XMMMjjE/XlQlbiohFED8bK7HqPoc/9
6U9XT16+enEJGzc3ypKbo0Vlxjv2kiSEOgp+gcNaOUiT9+lGxFOVDXIsixBkXfVazkbVlho8sJMo
myFn79D7Yk1Pgdkxwey7p9w5ZP+MvSP2T7j3veNvfG9kQLpbN6FM27hKPq6b2Jv97eUztA9ccU89
bLgvurLmC/Rzauy+4CqQTUVH9/EvnRAqTPdUcCuwzn/pqccxsZDc3o+oT33rD3GqJxFScJIzCq6/
DL0O8slpivW0u/22lnqMfIQ1TcgnR9WGpDlF4MYOyqwDXxG3EnezKQf9vJVBZ9WQ33iwpqJScQNx
YIFuw83bZGcoUDkKExSKp2ifQmfrne17qLhTn75f3P/nHfFrZX3pA+RhR+wnFMUG3twFJ4qnti7M
Nj1KtX7sCpnGFC7FmgvnpAonXwwHrcogd5nftTmJY33NWhVNoNBkltJiXZsXmF2UXNDyW4s2C0V6
vx7pPC9twmdJPgszcYwEVG2ZWEMRWHVdzJyMvauUXmkTMSnLYChBYPGyU7LRoL1orU2TkSeeMmiI
Cru3hDTUTA1duEKXQopkGSUFiIleYMleoLQ6yqC8mTR7hFkv6mSrkswLXVlJbCRfODvJXBrUruhs
PBc5y4dsT+a1BQtJn8gHkS+5RMXBNb10s34xiwYKzuanKu1l8qMlFFyytYglCo7FIqAwQlCYczfc
JVtqDotx7Dr2K0EwJZfur5qvjfEURCrnZPsFjUj1OyOuZG13LWCbtDvenJMDGVE9SVYUj79fmBkm
WEjl3/GQy4QgPcdxPCAim84bsHO0RPO9x3EIGGeuh54l7OOlHEoZCHtA6FTEk5WBwIZPNrBXJfWH
nAbk3FjLcjTPazOLRglld046rcmSzHvClosWGIIur0ED05TRFypKrQL5pBNzFZQ1RmtSpFWqO67T
YEayYotgaZlke3E/JSnt6FEBdmdUV0FRxpLOIz3gdnExQst0FZFzmlYBrxztKoxkvkUNOtOJd5lp
tLAlvkSOerNcOJPaQxIMrweOqkYQbJpm1AK1dGxVb12WiOc6S1MySZsRbhKkSFDfXZ1kvJQ0K6kp
LEmSwguTRKFPaw4IHSv28XIu/TY55+5IOWipVlSquJ6O03J3pj+8fLP5+9XFD9MVVN29og7nBdQB
37hBkiYC2Y/Hg78QTAc03UepnkPyvpMI4hTA0xCSy6LvBulVfRGReDU2rSiVbW32SRs0q+JMPhIR
OzwPm5FLeNrcpNy7zjTuSG1MbrJTPWVLiJhA+DQ4z9tu3Fkq9qmHQiyyhVqihjjRDc/26jiFTcdN
TNgcuiuzCuEeaAvO2t0VmVVhQBZi19oLA/GEL9ncFqiJLJWJ4Uw6JWd0WehxInouoegnx4Ro/pgQ
PdRX0ngUGg9ZlMJxMbk//enq8TpPq83l9XRxza/bm3UFvt4SXLzZbzL/cPn87c0FjVT7y7D/7C9X
m+3FD49uNq9/vNxOGA6TDMi6n07QoaClmWpWv3YvAqNBb7TyERFa0Nc4VI1aQIMeE5f9AinNiSKI
EmkskAoQqXhSBJrCyrWTregIzIR1+rsFtWUEqiKWjmLT9XvspEgP0RXO4hCGITwp/QrMAu2C4xH9
DYFCuZMm/x/qq23FqiMKvp+v2I9zIOP0/QIiZMZREiLEeN5CEB0nIsyo0YT8fqpqde9zkUTyEsiD
Tq999u5evS61qoKgXlOwTGv1bf6KpheXpRvDWG9h5npVsrY09zPjhtTKOGMU9vtu5INDIhppZ/TM
WzJLDaz6wCjigQV/ijPo5r2mdUoNvEOCHeYFJgGmD4b/oWAIxt2JBfKQVIepD8PAnfIDwNb8DZrT
1UmAhyVtYMsmsmTSgHzo1BZ/LocPgDSkZ020BFAVkrhhoBQx62ajuePXX7EHOgQnkvc54hLZL3UD
3jDWxrl5Yk1X3Lo6jVQnhQSYALmQogNhhfB0phUzUeFpmMLOdA6DI/ZHxjSCJX3hjE128aEvbJ8x
QURu5ganD1ja+cAGn4g63DcJkNJUZ/GBNN0XV+EEqF3d6FoNR3ywqSekySyarqwW/uRVsUn4JNOC
WRXh/TiVi5vN0XN+UccXYz13G6YdNR3YD4eDYkUceuv5f+L48wP8LAAWFGlDhjGGMCX/1YBvZLLh
6wmrR/euJ/eu/3nCcNFAXddcoej1R357KZnsqskdUlaX0t7ICNHNZpgocFIqaY0icUSFGMeaeNjR
fWahJzzpBsgoOJzng97Zf2jtJD0A74EwDZVACQJ4jAzrEDrcLLm+yh5wqhCGhSaHA1R/YVy4aqCg
IY1LdBCOJtpUCapQV8RPwF/n1ClEJl81BjixIqUpbYabtEeGaFJpfrzqFfHiizbykekQ0nkQGGIc
EKfLcrXo3dDNDpmzq+YsKyYSr8AJOqwbUvXaVxs8nmITw6IDhqeF/Ql3m73N/RlkeIT7AoiAsWb4
1vTmalbJg+BlVZM1yakDcw+mcpwgyxVehYybuqLONW+n0qRlOhGl4cQkA2c47T7CWfmYaeXIVLmA
2s611dO0QmAeU2H3URshOZFdmEsVYhJZSZYDigdFc78+AK1PE3plV7nOUdUGUidajjPKU4qOIUVC
wARae5agT5PjrarWXWMKPjM87LsoKOe28CKiCE+c0mDN3ZzyifWnSUs6j4OkepkvlRme1FJGnTDi
8Lt1Hdz0u9nECsCT9phvgHW68QUrDcx7tYPmGvYsZCqearXrVEzV8UTR8V49yNoiLzcl0VZb5Cjo
g/FCgVDQ594HhpO6VTU9aUdTPDMFz7KGgY3Wl5OoMPoY3oUDEtQkShAElIDC0JQpuIxredEt6jZ9
3LOZ3tcRp7radmsor4M3AGC5KC4EA2BC5UYwY7bA4m5s3NDhZrRSEg9EoTLXx07SbUqrqtxFdBa5
Bq7mrc5i8nIbkVWlgJYg0ne6bHP2REFCtbTUZRdz73BTHFNVm2hl4OY9CW1io5tNDjiEIG9BLsi9
SXddscIWG+MDFgcSZmn3ztrAWRpLsrTVZFUQnCLU9baJTLE+wZPZjJi3/K9vgOv5LLs4b+U1qksT
TD+IQqGTK+9QWDfjKof31GQht2TNRpOBLhk2EpnwY7Y4i84VxQABTTZNvWATESRLJXh5vUuJyxDU
ZKAaR4hSs5N6suZX9tksQQgnNDdTfun5/ncrZuutY6/nrArq+vsNirTmNMy7aaIXRauZBs3S6CV1
gEEZMBMwJiPywwLygm9uXYHehHnEFwXsKKp4kq05ORL+msWy9hx2INLkCNgpxzG8e+RcEeihLD11
TGF0rEVRxT7scYwjS/AB2ESVIV7CIRQN1s2oC0OJFFmDeOWMs5kBhzMccbmvxsoizCTryJJwhQ1n
hMNZR7FiTSFG1iRbVOopR6tMV6hHi3gQc5APrNbsy5KsRPEjfLL65G7BBuKwjNTEuD6AI4LghgxL
mGSqLrNuqArUWeNX7O8owCAxByQmgo4Yh02aLjVIdFYsAU+oZ9pBKJOMsRClgk2aaPDfi2ElMJV9
EikqbIRgdhMRYlxBm+LqPOLmPi/rzKmjgPQAzxNBasoWiqPjB+ZEis0yzlktFGvdZJSXmXnpaHoK
ppuF5XSppPolXSKieeodBCJUgStVFSe+IIgaUsRgDHHXOPQrHderXmSOSo5QXwrlBr40XO8Anya4
pPSKqv8cRFlbkIZMoskhMvNRJEWFaUsrQrNQHl3lHOPo08MWPmXQBa+j3xtcjB5FvhJoRzJElYcz
w6jhw//F5t2sbi/KaV+MtZgiV+dzIw39wz3O91vxkPnb+oU22bdP4WAlUw3TJPCp8bPjlcVDMBKS
AVdrUmZEAEawd9MUvYp0azIEcU6aMYglxq5kC3TJF3gF1gGO8+NGQQQyV5HLYmZIDLwryXo/DMNZ
eXCFUcnSiVVqJ5U1cFyr4GLMwyRwhDa+mcaAo9DmEQLuOk9HwarU5Bmj5gza6Pcdty953olftD5u
S2xocUZCw6SXsA8UO0WTccSRe1BzWJjZvKSrIwV0qZaZnaPMWeFdP7taNhcvPr56vzx8ePHDq/dv
l7Pb9+dPL7cXz66+e7yANzx6dPkYLz3fXO7+Xrpe7PxLBHLZ/boJgm/Wiq18BPBERLG2RB1Vl939
5uezq21bzl7dv/707s3bLcbe2e1ysw2Ozz7+8Xn7y+77zfXO/MPB/+Rimy5e7HbDB05LDln11Fj7
2DlFMMOK4DybH9dbz0M//778tAW2nX149eab5Wo4drtcXWLLH3fmz9eC1acnbnSzAhQYILcgKUjB
khsKMKBqwNo8eImceHH7cVuXs9+3COzZ7f3r209biIqzJTjf90cjHhffPr68fvnk3d3di3dv3y+X
fPwbNn+Lf0+Rnj8x5pdnC4+NlpcZkosn92V5/GHm/C8BBgDpxGonDQplbmRzdHJlYW0NZW5kb2Jq
DTM3NCAwIG9iag08PC9BREJFX0ZpbGxTaWduPDwvQXV0b1dpZHRoIHRydWUvRmllbGRDb2xvclsw
Ljg1ODgyNiAwLjE5NjA3NSAwLjEzNzI1M10vU2l6ZVs3MC43MDQgMTYuMzhdL1N1YnR5cGUvdGV4
dC9UZXh0IDE1MzgwOTEyNTcvVHlwZS9GaWxsU2lnbkRhdGE+Pi9CQm94WzAuMCAtMy44OTk5OSA3
MC43MDQgMTIuNDhdL0ZpbHRlci9GbGF0ZURlY29kZS9Gb3JtVHlwZSAxL0xlbmd0aCAxMTUvTWF0
cml4WzEuMCAwLjAgMC4wIDEuMCAxOC4zMjcyIDQxMi4yNDddL1Jlc291cmNlczw8L0ZvbnQ8PC9U
VDAgMzY4IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0XT4+L1N1YnR5cGUvRm9ybS9UeXBlL1hPYmpl
Y3Q+PnN0cmVhbQ0KSIkszc0KgkAcBPD7PMUc86L/Lfrw6Io3g4J5AotkowSVCHx6d8HLb2ZOY1SL
EV4obvTXmrD8cixpuStPycOZUw9jIArJ6PbUK249GPknZjqLsaQ+0cWwTX2xayvP7hc+zzD0zPRG
k14a4Y5VgAEAj+4bzg0KZW5kc3RyZWFtDWVuZG9iag0zNzUgMCBvYmoNPDwvQURCRV9GaWxsU2ln
bjw8L0ZpZWxkQ29sb3JbMC45ODgyMzUgMC45NTY4NjMgMC41MjE1NzZdL1N1YnR5cGUvcm91bmRy
ZWN0L1R5cGUvRmlsbFNpZ25EYXRhPj4vQkJveFswLjAgMC4wIDc3LjY3MjUgOTYuNDM2Ml0vRmls
dGVyL0ZsYXRlRGVjb2RlL0Zvcm1UeXBlIDEvTGVuZ3RoIDEzMC9NYXRyaXhbMS4wIDAuMCAwLjAg
MS4wIDE1Ny41MjcgMzQyLjY5MV0vU3VidHlwZS9Gb3JtL1R5cGUvWE9iamVjdD4+c3RyZWFtDQpI
iWyPSw7DIAxE9z7FXKAWxAGcE1TKru0R2JJFVr1+jUWJVFVInjcjhk/gTRWBt1RspmXB806CNyJ2
0GkSbEUIRFklC+pBPerzJqlnuGjI11b6CRqVyLnIDP7bYM2BUbnk9Sqmlec259F0nve5a/ZEhynj
sOo/aPSiB30EGAC8bDDSDQplbmRzdHJlYW0NZW5kb2JqDTM3NiAwIG9iag08PC9Bc2NlbnQgMTA0
MC9DYXBIZWlnaHQgNzE2L0Rlc2NlbnQgLTMyNS9GbGFncyAzMi9Gb250QkJveFstNjY1IC0zMjUg
MjAwMCAxMDQwXS9Gb250RmFtaWx5KEFyaWFsKS9Gb250RmlsZTIgMzc3IDAgUi9Gb250TmFtZS9T
RlVLWEorQXJpYWwvRm9udFN0cmV0Y2gvTm9ybWFsL0ZvbnRXZWlnaHQgNDAwL0l0YWxpY0FuZ2xl
IDAvU3RlbVYgODgvVHlwZS9Gb250RGVzY3JpcHRvci9YSGVpZ2h0IDUxOT4+DWVuZG9iag0zNzcg
MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyMTcyMC9MZW5ndGgxIDU2OTkxPj5z
dHJlYW0NCkiJfJZ5XFNXFsd/Jy/vJoSICCgukPcSeLEuVauOow5a93HaqnR0bNWqUMQFQVGp4god
sSoi4oa7ghsubCqC4oJW3FAEQa2aFJjaOo7xo9Y62jGQzA3yYaZ/2Pv5nHPPOfe8e9/95t1zAwLQ
BPEQEDxiZOeuPh+NT+ARK5eQsKjQ6DmlftcACgJ8QsLmxshZRdXJQPPtAJsxOXpKVM99LToAfjrA
PXdK5PzJqpgB/wbaFvKch1PDQyfZPh5dCvRJ4/P1mMoDXt1aT+T+He4HTo2KiR099SQ3+7wBhoyN
nBkWSguz+NoJo7gfEhUaG+272i0HKMnjSfKM0KjwpxsNh7h/C9Asip45J8bZHqlARbBrPHp2eHT6
0UePuR8N6DtDEFZQCkRoxa1iN76LNm974SYmq7y0osqdqVWupq5BJ+c5xI7js7hxwahhA2X0g+ys
FSsdn1I3TV862g/kdDoBtVk85VoNzblWwcWPw+H8uEWtuTA0BHmvUrlyftv4oKAWmUbrpnPXN/Fo
6tnMy9uneQvflq1at/HzN0iy0RQQqJjbvteufYeO73fq3OWDrt26/6HHH3v26v2noD59P+zXf8DA
QYOH/HnoXz76+JNhw0cEf/rXkaP+Nvqzz8eMHffF+AkTQ0LxZdik8MlTpk6LmB4ZNWNm9KzZc2K+
mjsvdv6ChYsWL4mL//rvSxOWfbN8xcrEVUmrk9ekrF23fsPG1E2bt2zF9h07d6Wl796zd9/+jAMH
Dx0WMrOyc3KPHD2Wdzy/4MTJwlOnz5wtOnceF4ovXrp85WrJteulN8rKcbOi8tbtO9/h3n2L9fuq
aqi9h/CNDuJb1WAQlpBTJavGqLKEAGGEME+IExKFJCFdKBNeqZuoR4idxdHiRHG5mCiuES+Lj8WX
zI85NXHaPO0ZrdM/wn+6/wX/En+nIc6wy/Cz1FzylwZLw6TPpDHSOGm8tFjKk4qlSskiPZNeSg65
qWySzXIXubvcW+4rD5InyNHyfDlO3iAXyc+NotHb6Gs0Gc3GTsbhxlHGCcYE40bjAZPKxExNTV6m
5qbWJsnUztTBNNQUagoPUAV4BhgVKCpFr3gqPkpLxU8JVDoq3ZUgJVKJVxKUFUqSsl5JVzKVo0qh
clopVq4rZco95aE5yNzPPMAcYg4zTzZPN8/sGNfJN8OYsTwjO6Mgw3k4/BeyM7uvvYc9yN7X3t8+
yH7e7qwNq31Z92Hdi7qXdXWOAEeMI85R66x1fXf8i0tTQWVUjVVlC4FCsLBASOAUk4U9QrnwWu2h
DhY/EMeIoeJKcbW4ViwXnzMwgyZYm6bN197yB6cY6V/s7zDAEG9IM7yQWkqyNFQKbqA4UYqX8qVL
0h3pe+mF9EqG7MUptpe7yr3koHqKEXIMp5gipzVQbNFAcZhxpHEcp5jSSLEZp9jKZGigGGKaVE9R
fgfF4EaKKUqacqiRYgmneJdT7N1IMdwcwSmGcIq+GaaMFRm5Ga8Pd+EUYfe2+9t7cor97APtQ+yV
tRNqX9QF1VN845Ad0Y65jngXRecDfn6fcakAxD5vj6Njmkury7nVHtDd1lXqKnQ3dWVAbXnttf8/
uE97AM/Uz4YBtjjgoZr33rZmtqa2Jja9zd2ms7nZNDZmE22CTWXDY9dvhppl9ZrX1Jp5TyLq7YIn
vYAnn9ck1iwGqiOq59cU2kofdKxJtm2uPlCdWpVatbtqFVC135Vd7Vs1q4pXzKouVf2qulUFWodY
B1uDrL2sPazdrF2s7awmaxurj5UsTy02yyPLT5YfXE9ZLlmKLGctBdy6aNlnybEMtgyw9LcEWkwW
o8Xw4xY+H69h02K4RE57P7zO7wmv15/ww7pds02zVbPl7X69lvKr4X6zdryWPm7GK7wIIay+yg3g
FczBmUXy2Chxt5jJ+3yR123WlcsX/yOm9azXsdpc3Wxdue5Xd14b3ce6Yu6jG2Qdfre5F7rf5fqV
nldRvdoV0av19bPqW7zN0A9/17P6ni7R927wevz+Sr950uPtGvW2/h1v9ubtnPqhjZlJXFIbvXNN
8j08AI/69/RoWa9bNwwK2IMELBMm8NvrIb5BMlZhBw5iLzyRyBEvxXo8x89YjU1YQcTv42fYiUP4
BS/wEruRiSu4hCx8iTCkYBJKEI7LuIobuIbrKMU/MRk3UYZyZGMKnmItbqEClZiKf8GGlYjANExH
FCIxA2mYiVmIxmzMwVeIwVzMwyPEYgHmYyEWYxEKkI44LOH/Er7GYzzBSUqlTaQigdQkwo5a2kxb
aCttQx0cxEhDWjhpO+2gnbSL0iid3EhH7qSn3bQHr/Ca9tI+2k8ZdIAO0iE6TJmURdmUQ7l0hI7S
MfyK25RIqyiPjlM+FdAJakIedJIKqSl5UjPyQg3+Qd7kQ6foNDWnFpREZ+gsFdE5Ok/fki+1RA5y
qRW1pgtUTG3Ij/zJQBfpEv6DN/gBD0gimYxkost0ha5SCV2j61RKNyiAAkkhM5VROd2kCqqkWyik
tvQetaP2+BE/0W2WyFaxJLaaJbM1LIWtZevYeraBbWSpbBPbLAayLWwr9rNtbDvbwXayXSyNpbPd
bA/by/ax/SxDHaGezg6wg+wQO8wyWRbLZjkslx1hR9kxlqeOVEex4yyfFbAT7CQrZKfYaXaGnWVF
7Bw7z75lF1gxu8guscvsCrvKStg1dp2VshusjJWra9V1aofaKUIkUSUKoloURSZqRK3oJupEd3aT
VbBKdpvdYd+xu+weu/9fmuv0K6vriuP4c/d5zjl7333vc+4FFFEBBRkUnDUatcYoIs7zPDZVq1aT
JqZxVRPnMREHEOchgxpnYxKzVtPVdrVpkmaOMY4IiKioqIgDCKj0Waurf8B+83ux1+er8tUlVaAK
VZG6rIrVFVWirqpr6roqVTfUTXVLlanb6o66a521zlnnrQvWRSufI7SnfR2hI3WUrqfr62jdQMfo
RrqxjtVxOl430U11AkdyFNdjw0V8mYv5CpfwVb7G17mUbziPnEqnynnsVDs1Tq3zxHnqPHPq3IBr
uaATdTOdpJN1ik7VzXULnSaTuD5H68V6iV6ql+nleoVeqVfp1XqNflu/o9fqbL1Or9cb9Eado3P1
Jp0XOBso0psD5/UWvVVvC/+0HeHftkvv1nv0u/o9/b7+QO8NXAhcDOQHCgPnAgV6n96vP9QH9EF9
SB/WR/RRfUwf1x/pE/pj/Yn+VJ/kBhzDDbkRN+ZYjuN4bsJNOYETuRkncTKncGowJ5iLPYPzsRdm
YG/MxD7B1zEL+2I/7I8DcCAOwsE4BIfiMByOI3AkjsLROAbH4jgcjxNwIk7CyTglmMfNuQWncTq3
5FbcmtvwTb7FZXyb73BbbsftMRvX4XrcgBsxB3NxE+bhZtyCW3EbbscduNP0MC+anqYX7sLdJsP0
xj2ucIOuDMR5b1rl1j2rwrpk3bceWA+tSqvKemxVWzVWmlVrPbGeWs+s9LDWAhCmKwgIggQFGhAI
bKslMDjgQggMeOBDBERClNUK6kF9q7XVBqKhAcRAQ2gEjSEW4iA+rL61YbEkWG2tdpBotYdmkATJ
kAKp0BxaQJrJ5A7ckfP5EhfwXS7ne1yBX0M6tIRW0BraQFtoB+2hA3SE56AT/ge/gfmwAN6Et2Ah
LILFsASWwjJYDivwW1gJq/A7/B5/wB/xJ/wZT+EveBp/xTN4Fs/hebyAFzEfL2EBFmIRXsZivIIl
eBWv4XUsxRt4C8vwNt7Bu1iO97AC77s98QE+xEdYiVX4GKuxBlbDGulJH2vxiYyQkfgUn8koWU/W
l9FYRwGyCGQDGUOCgiRJkSYkIpuYHNlQNpKNZayMk/HkUogMebKJbCoTZCL5FEGRFEX1qD5FUwOK
oYbUiBpTLMVRPDWhppRAia6iJEqmFEql5tSC0ihdNpNJ1JJaUWtqQ22pHbWnDtSRnqNO1Jmepy4y
WaZQV+pGv6Hu9AL1oBepJ/WiDOpNmXyfH1AfynK1iy65tsuuQ32pH/WnATSQBtFgGkJDaRgNpxE0
kkbRaBrjum7INa5n+psBZqAZZAabIW4vN8Pt7WaaoWaYGW5GmJFmlBltxpixZpz3lrfQW+Qt9pZ4
S71l3nIaS+NoPE2giTSJJtMU+i29RL+jqTSNptPvaQbN5Ic0i/5As2kOvUyv0B/pVXqN5tLr9Cd6
A7JhHayHDbARciAXNkEebOZHsAW2wjbYDjtgJ+yC3bCH5nElV/Fjfo/f5w94r8nypoe+CP079GXo
q9DXXA23eT/v4w/5AB/kQ3yYj8j2JsEkmmYmySTDHW8a18BdkwLlYolYJlaIVWKNyBbrRa7IE9vE
rnC57BMHxWFxVBwXJ8RJ8RfxN/FP8aX4Rvxg0kxr0950Ml3hnjglzogLokAUi2viprgjykUFVMB9
eAAP4RFUQhU8lp3l87ILH+VjfJxr+Qk/5Wdc5wTMC1ANNVALT+ApPIM6ERCWACFE0AsIKVNluuwq
u8nuskf4vqfMkJkyS/aTg+SwcEuNE/FyknxJTpez5MvyNfmGSJHz5UK5WC6Vy+VKuTpcWmvlOrlB
5shNcrPcKrfLnSJN7pbvyr3ygDwiP5KfhkX3ufyr/If8Itxk38mf5CnRUp6W52S+LJIloq0slWWy
XD6QVbJW1imhtGJllK8iVbQoUzEqVsWrJqqpSlDNVLJKVS1Uumql2oiOqp3qoDqrLqq76qF6qgyB
qrfKVH1Uluqr+qn+aoAaqAapwWqIGqqGqeFqhBqpRqnRaowaq8Z5QTWeT/An/99H2IKF87991AQ1
RU1VM9RMPumAoxw7LLkIp77T0IlzEpxkJ9Vp4aQ7bZwOYRd2c3o4GU6WM8AZ4oxwxjgTnCnOVGeG
M8uZHSoKlYRKQ2WhO6GK0IPQo1B16KmxjDDSaEPGNb6pZ/Z7M8whc8x8bD4zn5u/m3+Zr8y35nvz
ozfbm+O94s315nl/9rK9jf40f6Y/x3/Vn+vP8xf4i/yV/ip/tb/Gf9t/x1/rZ/vr/PX+Bn+jn+Pn
+pu8PPOzOWV+MafNr+aMOWvOmfPmgrlo8s0lU2AKTZG5bIrNFVNirppr5ropNTfMTXPLW8CFbgM3
xiqwCq0i67JVbF2hOjtgWzbYwg7a0la2ttEm27bZdmzXDtnG9mzfjrAj7Sgz3kxw+5iJVol1NVgZ
rAo+DlYHa4K1ZpKZbKaY/1Jd5uE9nVkcP+dd7o97c/P+rlqSKBF7RJCoGg+lmFIkiNimQ0MljdhT
DEbsS+wqJUUtbVHUjFETBrWECjoksbWWmcdagtrmmapp8bvzTWf+mMl53uc+ub973/e85z3nc893
sHnHDLGr2FXtanaEHWlH2dXtl+0adk072q5lx9i17Tp2XbueXd9uYDe0Y+1GTolT6px2zjhnnXPO
eecb51vngnPRuSTuiLvinvjeKaIvaKdYYBXxK7SLdtNXfIv+TAV01DlGM+kw5crusofsBaWb4lyg
Il7MS5zj3MJ05tuyj+wr+8n+MlX2Dn83/GD4ofD08MLww+EZdsj2HaInXOawI7ilIx0lCtVU2u+g
+XECTtDxwkrCSsNOh50xXUxXN80dZD4IzgnODaYHF3lDxELnMq2iB3SENlEet6Ol3J5/x8s4jz/g
CbSHc5yKbg23phvt1nJj3NpuHbeuW8+t7zZwG7qxbheTbjLMu25Xt5ub5DZy49zGbrzJNENNlhlm
hpsRZqQZ5TZxm7rN3AQ3xe3lprq93T5uotvc7esmu93dHm7P4PPgC+ZgKOh75LEnPOkpT3uWF/Aq
eBU928MWPNcL94wX9DyvkveSV9mr4lX1qnkRXqQX5VX30oO5dIgKg/OC84MLggutcdZ4a4I45uyF
nvrS2e8ccA46h5xC57A4Lk6Ir8VfxUlxShSLElEqTosz4qw4J66Iq+KauC5uiJviO3FL3BZlIM5r
IEwqVF8fGS1ryRhZG5wZotN1BtjTQ/fUKSBPmh6kB4NG3XSSTgY/juoifQwMOaWLdQl4NFaP0+NB
ptF6jM6WDWRDGSsbgVCTdY6eAjrNB6NywaiFYNY0GScbg1TLZLxsIpvKZjJBJsrm8hWQ5wf9RP8I
Ct3XD/RDsCcI+lQqXxPsqWkNA3+GWyPk9/Iexn2wpj1o09HM1/FmgW5iFuqmZpFuZhbrRLPELNUJ
5n2zzOSBbtf0dX0DxIoFtxqAW3G6k9XMSgDH6oFh8SBXa6uN9ZqO1bFmuVlh8s2HZqVZZVabj8wa
s9asM+vNx+YT86nZYDaaTbKFfFX+U/4gO8s3ZRfZVXZz+5mJZpLMkVNMTVPLKTYxZpqZbmaYmWaW
mW3mmLkm18zT+ygSI0pvpkhVn6Ag/TKMO+XXUJZ/p/z38qu4B0W557+DaAv9kbOgDQ/REX5M5Tpo
L6rqBFWjX9MaqLnllEsWvYU786kXTOP+co70C6gpdJ7EKMaz/aD39lFVjvDvQvvNkefw1hxyqTa1
p55QjIs5yR9PA+iqmkUtKQk6cgxP9/v7S/w8fyNqZ6884b8gh6KgUIdQsf9QX/T/TvF4YwXq6yrn
VdxFr2OV6XhyLbTnajlQsZ/p/wwPYqBAi0lRMhVzoYjD7BlUxhGcIztilg3+Dv8onnqZBkLProY2
a8GdRYwe4Cf7xVQVa0zErKtoJ5iyGzE5QJc5TD/2N/qPKZIaUxfsp4BKuFCGXswItUPENKIUS63w
y2g6SMfpNDTgYTFah+lEfF9/75+nypRAfeDtZrx5m5+i+0T/KY+pTn4HCkdclpVHm4qgSaPQCffg
vuhvR4t18j2qgBUTYOmUhXivxOxX0GvvRh9dKjeobeqZVSN0zQ/HidSnj2gtHYbSjYAyHcszobhu
io4iDZ3NDblcbVVnA4Ox67dpJC2mbfSUK/GvOIV/y0M5h3PBqFXQr6f5jmgveovh6F6Gymx5QHWA
paqxahaqaqF1J9Q/dDR0JvTUT/TnUgryYQa8X0HrsLO9VApNdImu0g3W7HA4rBbHcB+eDJsKAn/K
W3grF2CV03yD70JFPOFnUAsElVC9vNOH1RHviQnoztaAJeU0uS9+ktVkbdRxC9lG/kaOhle58n3Y
LnldRalSqNVEWL5ej95jmz6iH1thgZkVqMKp5xteNHpxJUSheaH80M5QgX+dquAMoxCFaGoD7wfD
huG885Fxf6JzHIbYRXEjbstJiEwaD+NsnohIzubVvOkX37fzfkTpAj+Czy50SrnPTaAvOogesLdF
hshGh5knCsS34mcZQG9hZBXZCLU7UGbIcXKSzJc75Cl0dTfkj/I5zFe2ila1VX0VpzqrNDVerVNl
qkwPAPFuWbY10ppr7bH+EXg10DbQM5ASGAilujtwvsKg8m8evnx/of/542voOd+Qu2iJaK4iweMS
5HMapctkgUwVW3iemMIFoq6eaLUWrbk7PVb1EetjYj36ydYymbtxKg0TCf+ZzaqsPseljfqKHqj9
2FsJZp5ohfFU8cgKo51MohXWLJLNVJw8SZflVQ6oT+hvyuZq/EBslj2RBQdUW92fYuQa2i6zeQrt
Em8Q2c8qLEIed+fPwYXenMj/kj5J0R1Z1FLepFk0XFzEV3QCzaMPOV1l0hJqzjlURp+hKmL1KFC1
Cn8tstQC8RIXkFBbsbtWXJelrkyzeaBcbT0Sl2g8lSqbrsg/wPtSsV0mq8e6Fw9FBUyhuZTtz6BJ
ur86y5lo//pSPXUNdMuRiSoG12mgygAwbTeqex840F4m404EMicJedEHhFgNWwlOKGRQFmq8HyhW
QgVWb7GHMnU4gzpE6mSoF73lf0ar/Ewa5edRPHiQ6+dgxi10i5bSFp4TmkxjqCYq5won6U6iVHfy
48UCcUmkivz/P19Eux5H0D3YdvzTVn9JC9QFSqV2/iL/G2R3QxB2Fb1DXek77PIhVnhTFlLzUHfx
hd9JjsF+r1KKv9mPZpuG+iOoB+2nTQFNgwNxOOMdfBb7nUwZopc/TmaEshCHpYjC64jWePBnvspW
s9RPtAg1nw/efPxvxosuNo6jPLO7d3s/a3vt/PhnnTDb6blt1s4PIcR/2Fuf7xLHaur/7jqx2PPZ
jhPS1gmoEBDiXiJH61SKhFQR8QKv8DKbWOJsVZVVRUg8oIoXEA9QHvxSCUuBpCgqCeab2b2zD0HF
em7m+53vm2+++WYM5+YXcHLg7NuXbn/n2zdvrLz7ztvXv3Xt6vKVpcX5OeetmempNy++bg8OfKO/
r7en++yZr53+6qmTJ453dVrHXnv1lY7My/Qlk3zl6JF2o621pfnwoYMHmhr1hvo6LZ1KJtR4TJEl
jDpzNO8R1uExpYOeP9/FcVoAQmEfwWMESPlaGUY8IUZqJW2QXPoPSTuUtKuSWCf9qL+rk+QoYb8d
pqSMZ8cdgN8fpi5hOwJ+Q8D3BFwHsGmCAsm1LA8Thj2SY/n3lv2cNwzTBelUlmYXU12dKEilAUwD
xJrpSoCbB7AApOZcbyChRB04xdrocI610mHuAZMzucICGxt3csOGabpdnQxni3SeITrEGiwhgrLC
DItnmSrMkKt8NWiNBJ1b/t2yjuY9S1ugC4XLDpMLLrfRaIHdYdb8/e2WPRQmb8o6q/u5huznWq4S
jvr+KmE/G3f2c03euy7MAbpSJu/5eTB9F4I4OknAmnTbdRi+DSYJXwlfVbi+RZrjFO8aYUk6RJf9
ax5sTZvP0MQt80Fbm72x+xfUliP+lENNNmhQtzDcHhxE/sSth602aa3ldHUGemMY2KC+IQK0uv3A
YpUnICHOodGJamQx94iOQEIwUiTgiUNhTd28W+xGfrEbxOBzMWixBdiRqyyZ9Xy9l9O5PotldEr8
zxFkAN35ay2lEFHiGf1zxEGeJ9VUA34FZpbFjh3jKaJmYU/BxwGBn+nqfK8sUbqiExggfGgMYltw
e09A+E2Tb/Ba2UbzgLDSuBPiBM0bD5B9wnKZ5HHOVoVzaJpzShVOVd2jkMnrCEOZOcQSHdXWoB8+
kFvuZfjwl7AXQ/7oJB0dn3VIzvei2I5O1WAhv7vKiyB2IOvIhhRBkiELLiTl5aowRxyNKRlocZHU
C2U1AVkpKJjkme6dD3s3ZZr/p1J59zHXEsOeWuQm67Vq8b4avMY9zZfBYbhcR6dmfT9Vw4NUCw2O
RANkPJpyTJJlaBpOZgZaeXerm/9cg9kQsiwXgPwLSRFaI2hEsAsfz86uzjwUOt/PU5L3Pb9Q3i3N
U6JTf0P6WPrYX8l5lcQp726uGSx/14VYLePerk7KOb6/ECA5A2ZsI8ACOJtdc9mblkvZvEVN6izC
WoJepJlTXhYgCQ0FFN8ZD2x8Z3LW2dARInemnAcSlrLekBu8DDxngyBkC6rEqZzIEcIRNIohNA+k
hJA3NmyESoKrCILAi2WMBC1RoWFULEshTQ8NdQhDNjwri2Ul5NgVaQVoiZBWCqVfjaQTwNE5ZxPB
jYMEM/wCQKYcO3XW7rX77AFpUIKIcNIDoGyCbB9GDwfwIDYCmHNCkMu4FPTZxoaYaSKSLIEkp5Wq
NPCci+2bCOyFC5/eW8H0rPNwAMH8ogeJIf7xSgtO7D9DojDxPH/LcjTJH52EDOTMVLeR2scmXJFh
yr5Jv2fy1bEZessEImUEqjUIBehcu+v7BP4oRKU444Q9Z+HOdpjJZaX5iqzRDjmxh2qgKvLqYTuv
IVVrP6hYuwnWOOBXzLHif7UG3jN8ifeiCfeDryMa2odbOjTqX/ZnIR9NdoQbjvwAtL7dFTOAJz8R
nmBxORXhTbDEzxLhRQ7KJL0QSBctMWIx+hdobgEk+A8u3TOwWSZZcLkU5YeGJ/7/FML7hPhFIib3
9b4KhiMsPL4+u1KLLlfRPP/BGyVzPCwTsBZxZE12zWDXXasqUuBr9uFs9/ID3iuUz/GfB9fOOVYq
FsBFuG9GihQIF4BAnPkwgvyi9vnLqVgANR7lyBJ7x6qZEmoChhIFE/HlsNIY8VziQQ3B4xBsg7AY
jGQJnk+0wOvGWLieMSj+MBT8SdBFfNsMpkI9WyosUl5cGc/3MPrcRwW8Q5MOQ4bvU8ghcDGTB2GY
voPFO0b4AG3FooVF/rJb4g+7xfDJAe6K6PDZjBw1XRCRMiKWEDg4aPO8K/r83TjnWRCJRr/JJz0+
HPg5qFVKR3HGg7pGdJInYqsLBmAQhBGOuTBRKJjMcEHQF62DvW0Fc2pmjyLau1YonBCzikcEG6uI
qKIBcMNiUnM3MPni8cSsuBdgo3jwYpkRCK8NWWVwbThFU9G1EeqPcFWjsmGhGlDcygUA+R5k8J2x
/ZXwMmsanbhkQGC7RJFDMfhDMlLR0LqEt+NqWbpvH0AxZVtGKVXZxqg1EY9tS/KH8C9hEt/Hx1GL
pf+j/0X/Rf1p/xsv+tEgwPpz6E6dNBvNxgx0GIrscyJvPbdj6J+IKFtQAndfgC03tgmW6iWf3bac
148gvPsMaUjDNppBqd3nVTi5jx7bBysVeH0mkdC0MgfiSgSoQPkoUvkCpVFaiMXT6Y8i3acVoqRV
iHiPGE+l0+E8hyMAaRGQjkcmUqkIiFWAZH3FjQpFDSm/msH1Dbo0LZV3/74eAc/W6+riHHhqu5oW
n05qvI+J/oR+Ur+SWE56+h35nv6b2K/jW/pjPZ2IuXhGGtOX00x/oj2pe1KfVDSlTqmX4b+jmKJo
dfWJuKpqACfimgo7CmbsBk2TphFRtYPAkmSZ0w5xmkwU7SBoJY/GYomjcTlellbsJEpon9lwSUub
OI0wTttNGkGLqjwxpnyifKrI9xSslDG202PalvqpJt/TsMZxvUH9RJV+pJZUSf1xw+//AJnxdO5G
K/ygtezoO22t+s4Oahnsb9sZ3O7Xd6Ctxo5b1g/1R6vHW8SIG5t6ehp7elb1R4/qHz1ajYXjqZN4
lKUnR9lReFbBhWFDHVlXGuSEurn7GKHdZ93wufjmjTnrSz4jSMTL8ilbu55IIKwkYKFYAn9ODw6C
2RPWyVMuxacxlU35gCl3vBJXZen07yTnT7988dOf/xH/7X7+pfbTsc0v8vjDfw1Ls/iDje++vwan
5QMoFp9BLjeiI+gY/jPP5g2eYPZr6X8zXq6xUVxXHL935s6MZ2Z3Z/Y5a7Pesb1eO/ZueXj9AOKy
Q1IcJbwpLDTqUqsESIhLMS+RV+uUNEUNFVRVEf3QQNWGoBYUA0twAy1OE/EhAeFUSaUaRVgNEERC
sCggZLC3597ZWS+BSJW8M/+dnblzfM7vPK4qLiGkI5aJrYptkF+RxWcqNgnr5A3qVmGrKtaHZD5c
3xgNVcoz9fzlEt4v2xgWtBu5sWWFM7Ls90UbGxsaUKQyCgEyo1EvKgvDs2PFZ8P568Vnw/lbcJ0+
q2TCdaJLB+7EvvwlK65poHxuNxxFCoJYRi0VGXpigGIpLo7fs268ZN14cV09E69zRei6LoWu5qIw
u+harook2FhIgqinkDpRxeUGYXky0SpcBaNaFX0WIL2VoyYxQdcBMZJj1NpCpGLYUqhlKJt4+Pu0
6thBzbaPwhHqD/0+9yocbhTCTTWrR/QD8W3XR9shyomEdxqEG/uMaYBVFpabcFj2NfbxqaNdPh9G
UVC5LlSGK0Ec7mKEJNLw0KTENCAk5a1uCoWCAVGiRw8Xw9VNba2tLc11dTEodk1tMzhb7+Lq9n+4
YdXqn+9Y2vPu9rHf4G+/PPWJ2R0/e33sHP7R8rpHn5y++Lfbxw4K73zvryuX70vVn+hZfahzCr/I
G1o19/EfN9zZK7mmPtux6Lkp4CZKWCMQJqA/Ubos4JbwUQGVVdFc5N48KnG842zecTZfdDb/fzv7
luPs246zxQc4W7+UtR07ZfIEaO6Ow6in0gnmI/BScNc/uH9Ctvz3INR79Gr+MjHhP9BRJedj/8ML
WHBptUKLMEsQ0mavyZkmpFfkkcg6c6cpTve3h9or5oTmVGTLsu5lWja0vGJNWZf7aW1taG1Fv/lv
16AxWP4f/5fGl+WfVQ6ZebO8SpikTQpMFtKaJczRFgirhMHKm2REd+lBDxE5mEpFCSvBiEelKXPb
TiuWJjfuTx+rJhOuHVCxrlpqp9qjEtOivlJd1HVqmGnbXUwM5yj0IG6Ab5kYYp6kVyyVelLdiL2c
280i47W71dsZbwr5nPZC2I+WHxQLBmH+T/EuJ65l9g3lGT7Ocf0Y78R7cS8exsSErcZ8zOO+/FiO
hhjEXavS4wHlooZinS6I4U30CjUU0+6j66J9a4iajMPUXsySH5dHH2sLJ6CnjxfPbPf69rn6aCG9
LiQSVDs/2al2NQ1/LLmmTEZZDE+g7gk5rOieYB8/6WiXRyXiBFC5LlHiEINlWjrRlAZiqmOATGuq
KcoFdRSrqecDRijVRLMqViPib72ZW3/oh291W2PX/3biWa55ya83H3hj0+YDwjujN3fM3/HBhrFr
Y//6Pd51cslrZz4cOHUGeOvIX+bP2zWZ8zPeXlQ44o67m93fcQstgZbIUm6xsijw3chq7ilhpbwi
0BnpNz8WPvF/Wn7RfzFwzfii/CLjKmSaiQoK4+wKSqY0kat1TwxN51rcs7lZ7o7A45GlSsa92n1R
/Dw0gm94dByEFNQ14E2VvAiA4wE45R7ginNLOIXRcYc5gCDu1e5hUythUyuyWZvR4ro+4MW61/J2
enu8QCcNrs2o10ch8FLyvJRWr0hR8DJm4ep1uBUQ8Hpo/OH7VwxUrzOPeI871gGeG31lBWR9DoY+
u7y8nfHVSroz5Og2mg9nTsIIcF7KS8SU0tJ8iZei1C4pTAGUotQCiQEouei7pAr6aqk82ryghLZs
d6GQjyZK8YNpIcGoa79gw9ZOP+O4dWeBtkM8Rc1SungVezxIUW3eVEmzeUunfNNYiapuEWM1dXUt
zT6gLmQAfTgwThw/deX7P/1k05qPt3bumnRktOrAps1v7H9hyx9efX37nT/uwfwvF87kPCMdnO/0
B++eGjz9Pq1wj4wt5K+QGSiKGrkGRlynqgqBpBoPzFFnBUS5srwyqdYFkrFpamvgCbUjkJGWqU+r
I8rNoGdiLFk/Izajfk79zuTepNRa3dqQTnaoHdWzGhZXL254RlpRvaKhM9mTHKy/XP1V7Fq91wiJ
wT7uUO6hiF/CfdyfLb0KTUadaB3qQf1oAAbrPu4lSxciEU2ZVRNxKaFgKp5SgK7xRq6AHh+4C9QB
XUo8HB4wsG5YRqfRY5CkpUL8kowug9FlFOkyGF1GiP3Wl79i00XvEul3my4QdxldBiTCSPGdBmj7
na6MsVHDcVRjOt3LdMgzbfIsI2PWntTOaue1vEZMLa3N13jNoVIrEDgxo1VR4rQKSpxWQ63SItQi
jRGnMeK08kRyYzWFLjHvxjhh9vRwVS/ljoFHL1y4BZubqxfSV0ezF+i5nQ4P3SjbPcFSEMIhHiF/
RGB1DjzuqgF1rAu8Lgb9D4E+3OWX6CDRZBc9GEd+sDwLHBpGiFW6ttZ6AJKzeTRaUt6ASAH1l0C5
6i216dGNL20Le/Dm3nPDaz/61Ynn9608t/fvV36376UX9x98fsv+ZRUL401PPdnW+xpu/3Q3xtt3
99xdc/vslr/wjR/1nzz93qn3KKnbwN52qI2wz+MUSuoRTinODAUxvv8BMbO8sD26W0QHlWihRBNH
w75KdTqXI0RHSCCKi44WeUAlWijRxNGwKClgwTtCdIQEosRSp4SiEi2UaOJoqy0jt1Jo5ss75b1y
r9wvn5eHZQnJprxO7pH3FC4NyXlZMWWMsEQ4Xhb54/n+wgqNGf4nGImCSBRRiguI7CF7SS/pJ0NE
7CfDhEOkigzAN0LszsstATFiGTR3COv3RKEmkADbMkAesfZMaEun3BLapxXKLplX9tiC8YnMbsyj
wCathwl7/wQfSuf67m/eCh0jiiAiC9OyWHEmTXuwvyUV5KEQbsvlcuSLs2fvBEndnUGYG7cCL22U
F/zy/bTMdH8zG19joHjrAyL+tciWrHpfHI9lBBYuoS/ff6RtajM7N7fY58lT7HNNnJ2teNBo1gRT
2COcF8h8OAwLvCmsE3qEvEDgv1c4Po5RYSV6toKpluY9CPejYUgVVAWldAgR5ISNDsv2bFUY01jY
EAsbKqMxQ07MQOSdcboQPDSP3Bs8Gj0YqFn8WEFZ/4BYHUEKi1O6MFpvzdFNKAQF/QIh/hL0nBC+
xDqOX+BFP7df79M/4z/3D/O3/CKhG6ca1d38nI536wPhoXA+TKrKAp5AyBcRJCyG3Irb4/LcM3Z4
SpqExxlBrEjGUxu2qBf+x3nVB1dxVfGzu3f3fSXmvSTvIy+DfCeQCCSEBIMpPL5DkEBAAkYstGVq
JYWiEW07VJJJSUIhVbGkfBmTSAckzJCWVwtMtfGPyqCWasdQtVVbgRkrTGUYikIN6+/ct/v6sulI
y5v3m7P37v0495zfOfdsRJYbvgn87Mtma6DQvRILyLJY2sU3Ro6Q5a8sjbPZNmjftMphr1Un34hl
ykI5VlI2zfQp+PuqI+yH6LSyaX2RqxF1c6Qr0hfpj4iIppYEQ/a9ELJvipB9CYSkJ2/EAwHroybp
sPAwhwnpMH4XYEVIle4Rlt/6Y5lQ5yosnCRAddh/46spAZX4Erpe4UfnkBeFiS/PCj98WoGKOIBP
TYTj3MdiISPg8bq9Lq9m+PNQleUqGd7MXIUKlcLCgia+TQr5OvGke0NexdD0zJNa0QsP6/a9Ybk/
yAULLo1gYGyAPzTHGMFAa8+Wv6zrXub3xgvqKxsOi7xnj8/fvGTqE4MNasumjbN3/3bwZY5j1MTv
iDyKKC8xW05RFAf1IEDUUVmhaRlMlJzM7GmFWco4d1YoTckK+QzyBlC/UkloCD9CKfwIpfAjND4S
ZkdGJUvCkh/hTFkgMD98skiQbggnmRHOtkqF/ySYEU5jh4SZGensFDOs9IeVcHWU3RJiUkSvRtXN
0a5oX9SMimiaTYg0mxBpCUKcqE0b7+FJfvYl8rZnlOd3yOLCYwczP8QCrJ5HKuXxskIe3lp+E3kk
Kzwqq+WpzhkSunC5rEeHuV8S46L8GqooL1cClvOjwv+Z9Ix01XC5DbfuBgVEWi6luwO5xAQoKGhC
DcvRHke0awG4/mcoYkOG1+DItz+TElVrfl4p0gA+kbg4KONnbdbWgXt/stTvi/sCm2pqnv5C/GC8
cuPS0gZ19+CJ9uKFNSu+16aWy2xOKA1p3/ebrq3NqPjAnesm/vVcyC9gef7Ji1duHR/8mp/cNWh6
MJ5nAK6Zt6tprp9uHb/1uF/2pP4CHYbVpZYn0ae+SfeKBgoCi1wj6Dt6La1WWqlOPUpbGdoIiolj
9E2MPYr2bMjTPBfjVwJ/AyqAWiBq9S0B7gNWcBtjT/FcrLGZ15GygercI+kRvdYcxH4d+hl6EOjE
c4+4QEeMctqI9iHMe0UQTecxmNNhHKW96D+I9w+grxNyNdrdeF6DeUXWs8fVTjksAQP9E7HOTuu8
+dovqUw0mO/iLF/GmlVAC/ZYBrkAWIwxWZBzgFblDLUpZ8wevIekZuzfyv3APEtWYp3teD8L88ah
3YznKPQwIDOA0cAE9RiVq9n0MuQUnH9V4tzAGXqIz5w8E/S3dBqOhI6LU4E9fw6MVcvNS5CeFN2c
aHZgkVZCjZD1QC5Qo75GG8UXSYG99umXSGOAd2ynvwL3iPVUjbYCPVfocdrPbWCJRIM5KA5Sl3ad
Po93jxsdOMd62LsYuEFT1Cs0yRhP28CveVi/CejEmv+QfFhPX8L+kyFLxCXJoRZgF/b6l20ntg3a
TfDrcuz1X44HzF8BLIRfGoGHWR/sP4Vtzn5Xam+XY+xFjFnDQH9YAmdnTvIcno+1xls87PlIUg/G
tMOu70AKIMg62JA8s4B3v8I6OYABjAAmA5eAHqAemAEsBiZgb8K+muQrOMPclPwAN/QzsCF0k5xN
nKFT+jMRM93WWrzPaOMY1VsYzWtyvDBnocvz9tocU8wZW0p+10vev8/nZE4lJWJPXKaFrIOMQXDL
lhx30JnjoQN3cpuUx6iZOcv62ZLtwlyTNkFMWLIi5axFMkYg8R021uJ6sy1tWyTlQ3QIa64z7kdO
6aJK8S2q1H5A94urNE+bSJP1IvThPBjbp16m5e5+KoEvl6K9zyH3MlwDyga9H+fshT0H6Eew6TfE
gDpGDCi63mu+p5NyVu9Vvyufh0knlP7EO5aM1Heftv9uoJ7Xe5Eze81/6gOmifPs5phwXVaKgFG2
RP8LQCNQ4C5U9rrrlZOuleQ3iK4Dj4gYzdBjNF30wz9B5HnEAvpX6u/SK1o7fD1g/klppEYVa7iC
dJ/agZyGvdTz1Mzg9SE3p/BoCOecXLKlzVen5JxvcWokpIH4O2fhooUbwAfg0WJwMofvBs7P8n5A
jgZaLL5uSPLzLD0HudPmp4OnGxz8THPy0inl3YL8bscp9tphn5/zI+c4zpGc5zjP2OOdMmX+U+pR
8Jjz8GtUZ8X1GAtV0PHvVuwjD8Pfq0zTWGAeNuLmES3TPGJMxfMfAd08DFs8mrxTV5u3rft0on2X
JvrJZ9+jeglttPLZIZlvrtEz8h6tlfp5jOO0Tf8QfkcOlPp2WTEIe0LverEONt9Pu3COHK0V8Yh+
YA3bRPoCX0R8L/CdqO2Bnfkuaqdm7S3UCzy3hALyvphFq6D7WdmHO5Ul9+mrqMe4TFPFSuTaflrP
vuJzsD7se/cWFGdB5IkBKhY/xZggeTGuS9ogRoclL3huPRHbwvUAucDZaozh9brlnBhlWvY4JG0h
56MWYQ6zLbCmEaTlsp64TD/WV9IqxFC3q5G68R1CiIsjWOM5zKtiXTAvKu/rPfQVxFcbclMbcg5J
/teZH2q9OM+jyOuA1ggb9VJEb4QN6+XZ54lEjm3l+NGOUh5zxNiDPMz1xB56ShTSfKOe2tHXriNP
Yt+d6HsS8VuI2N2B+SOtvE3Yewf6ee4srmW4RuB4ccUoy2iUdQBJHbhOwf7ae9StVVEbeDzbvQd2
2E6T6BP9zGMJqaDANM9pfnoCcrpaQm9gBx+e+Q49JZro66KWpmrFiN0ATRK/R6zepANaBq0Vv6YD
4iTt4rbIoglaH84fR23J/a/TMu5X30B7L9WJCsxvo01iLTVoz4N7fyCveBC+xjz9afBkHOZfw7oW
lAtUp9UitlrwfBP3IMbJPeLmIoaopElyXgqkrjYcOquLcaoq+BT68vMQfaFrUk9bx4/RT56T18U8
HiMOUAXs9DYwPiFv16jt1At0qX+mudoSekw5Yp6GkRc4UJnaFqXKVmCyKKWXgCY8fw7yF8DxRBu1
Wym9BWzH2v2QJ/i7gKHOoTKW6OsE9gK/sd+lgvf5uP5U6Lnm6SHtF3HXAMp18zTDOR52LsN+ZeIe
8zQDXKxiGNso2/Vtytby0f9ZzHO09VzE04s0TiPz33fS6f8Bv+IUO8ZSz2j7AzL0CfB2ihzF0rob
7lq3uwX8GwCKpH3fp2CCQ5SlnDffhKxVzlNA2wIOAmhPRjvLtqftJ/T/UPY7/KfOMW+zzZ39zrbT
r3dqqydobSpsHiT5sJtmMsQsjAecbfdZmskwXsW7V4e3xeE7oI4KtP2sEziYP7xtLKV8hjoOukZ5
DmIOSLZfR44AeKycn04LGRy7DDWO7zUg+b6U5jM+siuVsV21/Yn3tn9svzj9A/2KxTmaDZkPOQNy
BWSVLf/HfbkHV1XccfyXe14JSsMjdJIIhg4UsVHQzNRKdQoNNAIiQkOCIAWRS0R5qGgdix21gCby
aFUsRYsMvqgGqXRUFGWGWi3g2/5B0amvEdFROqMVcdSYe/r57dlzc3OSm4jSf3pnPvM9u3f37J59
/b6bu2eT+zaZF58lnZVJ7I1T873z/wn2znOwG3b9r9sqENYq9AL/dXzISHzkXvzJ+bJMpJWz5Kvh
sIlzaAq6jzyid+ZE6Mlzb/IuQu8UaTnM82Ly90aEKfc42Wh9ZRl522zdQvu+2qh+yx6RLz+Fh6L6
Lc1wCc//AeJ5yxvoU+g6yn9IveXo36L/W2eRvgp2kD5IegGcx/PNaD/0JOgLfai/VlE/0uEeetS1
8/vH11U8yxz6WYE+gf46eYf42hrPZzeavGvE89+devYu0VGjceDO9A6+b2vu3aerO06szGcmF7cu
bMVTHqs+Wr2s+mfjH62a+5vxsbQrUhIr/SlS/6reWf0rqu9v9D3Tnzr6dYHpl40buWdrwaeyAXrB
cVbnU+aL1AnhS5w9xazvw9yN7lVIs8akPiJ8mdhVTKzbybl7GH2R9AD0cBzT4rO1wxnbTUw72ukj
jZHfIKZWWWYlyJcfc7plnJKMxUdKd7H7G8fyPDE6N05/23Qc52OKfiJVSjAqfEJJ+tIOPqCbdHc+
90jTSd9xxOmEL4nTSTr8n1x7sZ8pl/IsiX13pOjdwn20zfvHfUju4+x+s2nG6Ge5cA4MtTH0bjjE
mTEAiFHhraSvLfxKqgq3SBXpJiAuhiMhrf+hpxWsFkl9FraSXkq6l/uiKXueJd3dek6uW/Xnxh8y
ZuYcvFn7L8PhDOgDf4GF8VzrHZK2304RdfWe604PD7svQcIDdqs/lMthC+li0sWcxSV+b87tUfIn
nm9Ee6A9ON8nQwNn+SRvd9jqLzFlxvNfjXuljOWcX+Tu5Z37w2c40xe6GSkOjpVGYucyYmgF/6+l
bhPpfmhpMFDu5T2PU3+lxgD/E+LgVOJhkcYO2q2XDTCfsue6n8htzjEyhvcMdvdLidVTvBaZrfHK
Hya9NOaRdyI61Oh+vPEMGQMjed+ZGmuczayRA9Ql/qRKZIczUXa4D8pi3re1R7NsKNotGwrTUlN4
naz1m2Wts16Wkbc++K2s9yulUd8Rx1WNifEzZqogGGBi/kLS5Var429OegLTvxkygbh8d267cb3C
GmLpJ3w/bWtfu/M2xPgVkOY7XPSzZHs6Rqnm8IVIZZ6N8VdlY369zKCfI3VMzdjOkMnOtdz7NKZr
+5vQf8pM90awY5zsS9wW49KazwvF3oTnqTBW59lA7NZ1ZdZSRJ33gZmvcTpnXk/2cLHOf7hdx8dw
NeVTUuZ+BKwh7afC+iqDqanXKL+BPbqIvcIadNfgmZpluYWy4SZTb4GpN8avhZH0q4F6zeG7bcgN
bYTvunWywsB46fylSsLt6OLU87Q1QorN+F1Bn1bJFPcC/JBIOeOo313qDiVf1+cUYP7hV6QHm2+3
asZqFPWKZZz5RjyVM0yE/wqdM9RfMW62bPCY1ASjWK/HSI33sAx2LsW//JWzrj9zN555LZZlzjty
vHu6zHF6S1opqAlfKjiI4tSV1Ifkv4beQrpRpqf2yUzG63pYACv47hbDc3gFYL9cZpmrpJoLvsf/
b8I0+zwgeiZvhGwzxO9olk05UC58B1pSt9F2taRTj9PGRvpCO04v9l8C6lxoGWrbOcudyh5rz+gk
1FUdnoR81e8nsfnlSchXrU5CfnUn/chXLl8/8uUPSUL+kKPQj3zvHZSE/EFd9O/sJOSffQT9yDfO
g5OQP7iLfkxMQv7EZD84n7jHZnZxN30QfdXG+w/QCSirL/MMz9wvwgabftWW+wOsg9vhU6i2cOaF
syjTiP4bNsHkNjLPov3F/OJ2wjXwA6iP2tK6mSejtg22zczDUf3WLeieRPq78F7Unmlbz94n0EFw
h/2+Jtvu1qjvmTVt5TP9o2809ba2ETrwc+pXoLVtZB6NCJ9G/wyvw27bL30+3o6HfvNj+q62c0G+
dO/gzLhAhFhdEjRH6l4jE8yZ+3K7WHWZOQ/3y/3mvAs5+86UKr8nPuROqVbfoGe4N9eUX+mliU2C
P8ErGL/wtnju36XMOyCz3EUyxtmGLz6L85Y23N/L+fpuPbfVczg3yTkwSWMY56bGwrM5cxt7PGL8
Sy/KlLjv09/bZSd3tibvPCmgvh8MI30zcf0uudq7RpYULpSd/sf0da80EK8q/FkywlsqY+O7rb9Q
irxj8QVWC9fJnOAk8ptloPue9C9qxNe9IpMYsx/Fbcdeyw2khHydsx12/cFXlTDB9Jn+4sNctxI/
hmcy8foXjEna9Geixk/3AXGd60W8j4jd42RoUIT3Gi5NRaWy0f+M7/DxqZUyKNsmPsBpliHBRXKq
1yhDvDrmqBLf/C7jPEV6xMrZvjOYI4E3PWzBu93lzjN+sY+7WUqNdyB2ZTV+R7Os866XVayJYUlf
E/uorKfwzBzXxW1kvwfV+Jn9fqs5fsOMO/nj3X5S6fVj7eA7OqjtU9BP7qfsytjPBjtlfOCgm6TB
v1FqvXMYl75SGzwtfYKzpFT9WRAYX7dQY7T3BV60VoYwN6OBO0V4CbD/wml2j1/B/O2DGWzGmTYP
dM7DY8ivs3X5P/xldM8wZfgvXGGfR1vSURmt2/qGLa/nQcbyVoS5hwzM9anGj0beur1mfb1ZPzXd
asJ/5lPdw6yRvlk/HPvJjroGnRen8XlvsUdvpe5A8GMfnVTKrsWjXBup8Yaq91m9R9eaer2kZn11
Hs3nX3N8bLTPYo189Q0JnWl1SOyvu9Os/26nYWjT38n69e60XoqM77QarOY8xIPGavOLc9TvcH/K
VTMn4lgfq/59PON+k7sRL9oFuu4UfylroD31inOLXNgZPpFECRa0x/r8vPi/ox4UViQJDyn0+TcR
4R8tBy13K06BiOLekiQ8ZNC7Wyf4d9IuFJ4cETwbYfx/FzAGEhBJC/sY9TUWdgkuQwk+sqyMCUMl
Hvd4HONx4dve47vnZfsct2/f+23n8dvOy9H67q76ngt78gDE6iud9pv5MRyK0POJsn0tPuP6JGyG
5yxrFPZKOfv2sDOX9QS5dTqsg9XcTRWb1r2o+Di7oDTaB9yRPoyQaZ2NTzA3Wn/BCdE4eS0y23qv
A3xHTz3fFXv2DS6aJHeZs6BeKvRsIe7qPj/FfUoa2nu+sJZ1U6Z7gzjpUb63d6XUpJ4P7/GWcCZ8
HO7xrsMLAG0ttzxr2Rh5v/Ah9MdmnEfIdvSBXLjbHq9omShOhvdZv60+dnFE5v0ov61f8dnrfM53
tEiZ+gZ3lJQZ/3KxNEKZc5D/8Qt8Q5MzW36qMcM5DW+F/1C/YPaCSF/3TTSiJ+Myybk/Z39XynK3
jnEC9URmnnYRA7T8LlO/3J6LQ7UtZz7n+L+kInWQcvxHvSZ9h/eILFFf5HCj8M5lXUym7OTwH846
dKzlc1hEf+vl4tRyOdlpkKrUK/idfuRfDpfyXIoWwzRYD1fJqSa/hXXyJeXBcUm/gHqShqrUF5ZV
Efp/QbWkU9skjSdO876o3H9ZrxrYKqsz/Nzv7962UKCljB/bTmAtJQq0iFNpYXTl0lbGj1iBQsYW
mAxKx+Ay489gCqmNmxKQpSkUEAItUKrOgCCVrQYGDDIrOsoyxhaSifw5Z7RuOIFvz3u+810ut2xX
k93kyXvOPb/fOe953uftUGM8OJgXOKTWmmcWcz72M5gpmVQUZoYuO2yv4bg2CjfOF7jizaXa/D5J
N/sElyOc/CjC5ira4dQR49zWwCUUWpXoxTvtToziXbfr/EHypncInpa7mfUTxh7MEZiXUK6wwW01
cwlt7ZexwC7C3fZ16oOz9INzKLT/iQZ7LIY4UxjHWrAUMT8r4l6j300zOtz2wE7uJQbODGQkHcEE
3iFC0ldbYzdBG6hQ8Qj0aQSYbWG3NyfzDlO/NaVzgyVYxXccJjwu8rRWb45NlrfH8mQVYxuRyZkM
L4e6wdNy5T1MIzckc8xU/Yan0p+2im9pLSgas8V4T/Ja7qW/22pMQZYeO8vLS90VxC+Jcs67kXnM
A4JAp1sniKm3Cv7fdesZ3GuNIopYLupa530WaNxyt86LGCOwxrKfoBJDzQ0y1rvrRHVnMnIFxmCu
0f829Z8xr3uMuaGMzUpcN/ZikED5W27XOr9pvCD63Ynq3elbhO9vUZ/+b98fcUUjhxlX2pxmt4P1
/cRa8ut2gQXXZdsBrdeeM1P4tpcxBy3DYI/DyY0RZJG/sqzn6XvU/d58SCc3FQs3kuevSYzQ8a+W
834hutTsS/4XLqNW1PNLnlQq40Xnk/fKhPvse1AhXCucqmIGtajkaeSbecItxnGMNK55HBToUIBw
kdmL3FHMPRYrq8rGUM0pxUgyRvJb1nkwe7jHFSelepxlgvO9IXzG+OvxVabZ3+Mv45THQcZf2cdH
J3EZBXwLBz2o3GyXik3/9nhScSF5WsqSu+j8qYe8QfLFuER6SWvL3XH2Td8m0oV6zG49pmv/Skyz
2uknW3h3EpOPIc+egZRo3gWMlPO3P1D5SinbRYPc1PkS8yROqnviHVVQE11BID4vsDowTe7W/hbS
JHbxnI4Sp2LsHA8qTss5XqAuS2bcnajWIMdx/gz6aafep+Qn/einv4jmfn4u5+cawGhrM7ab86mF
RqBUx/uDMfntdoH4mX0cjZKzieV/b7NfqRc3VAw5Qpwk3iU+Ik4TZ4Hrf+KdzpBzieZDL0HmPGCf
5XkdRVJoIvo5rZ5eMZ/G0kAtKgXc23oB//9VFM3oR+oNE6OJfOIRokRbci7KFM9HeN4RzDbTqA+m
0E/CKGI9n+Uiazm1ei7/j1BLP4GHaSvMfjyHCGNjROnrAvnPWsF+w3m/Ed7/U6iwj2Ch/QfMta+i
KakcTbQbTQOj7XHYzm/8nrUUYcnTqCtqjWTmaxFMYnxIpfapkb2o/bC/tKl3u4Qx7TnUW4fZdoF2
MRFiHBvO+seoD1xGvRnhPbGPeZD/H2P7h7T5bK/W9s/8r5r80JP9/oK11g8RcmaScxYjZC0iUpHt
MKciz8zmHPdxTL5a5wJj4mGsUXu4HWRPi/WeNAKX3U7uaTXtPuKMv5d4qH3EQvYRP3csLuj9xK0n
kLOIhZyL9QmGcf064tfEKe5pDFFrf/vW84qF7DWKz27dtzpDH3KW8ZCz9ZGqz/k2kHOPhfruRTfv
IQqegdyJugvtA+YrXFvK8t3S52Nvj+IDykcqYfj3T5+cqPb9gdpvvfUNLFR74zp2mFzAu+dZSJ+H
onN6/rRajZN+bFN3KHuTc34VeWoPx5Rvlcu60i7n6XSih7OPfc5wjT7sMxeD1Noy97Pe/tTYBeQw
zuU8zPZsxqrz/E/Qx2tT+9ffFd273L/snXPa3b29U0vW841OdIZwriz2/yl1pfhIBXEUYedVdVdp
5iDUkw8GElXCC8SdxNf0f8OIMmIoMVLXxQ5U7/jLQt77l8VVxQmx2JgIwgdxKIj/z+rjtsTWhT+I
ScYC2kZVDiaaRzhK+CkRGMd2+PwVv4ZwmYAaIDXKa7HYgukx56/O3vqI8ejv2CRwUqhpOlBj/w01
Rg55PYfz5uAuIouYS4wgBhCZGnm6LUfXQ8SQbnUIp3aTGOC2pr6nrGhvviiXeYzbkEgDx2s9XwPG
96NOPBw47c6hvURbYw9gXHid+s7X3gnq5k94BzGgxh0fi0T76qJJ38HdgqgG3uues+Ges+rci9b7
7sXgbGrCMygIptKm4/6U/ZKl3LiLZ3KNhSoiIjZ+n4m0+Ff9bq73mdIUb3s5l9mMHPstapEWrT8i
qGReWkK7gvXM4CtIczLQ15mEzfZvUBvchSTnDLK1Vnk29Dy6B9PRNymVcbadOkS0TAXtNuqvxfRV
amqB0t8D0WYOp2+2kleWUUvNZFxpQLLKDyUfPEsNswYPUmuf5/olop0CYbdddCvXmy26iHMtcArR
nPKIeyhU7qaldEMB/azklpz1NIzATurgnXwz6j/0N6YyD9uJvJj/SrXN09b//0fKdmIz0ZMY4Fn3
c2MYXmC5KrCeuUIbdXGb0iI9qKHTBVau+y+BnPn/gvU0BgvM87zDmHLCfHHHrYjP46wd5AkiWo/L
q+LztIRvZD/fnsB/J1UIC+hDWZ6+FHvjAu1k2s9pXyceIibElcXXmzzrDiIGE9M1XozDcPb9I+09
RL6v71luMfOZt/XiO3sXdfZgDJH/iKHGC9hNbLFKqBGLiHg7PqYs58P+Zi55cAR6B57EMM7xmDMD
GfZl+t/viVaE6ethVW6hfvgd7Qn69zJsV23j0Wjdj8bgD9BIn26gzzaQQwvtJvxcjduABieJY97E
WrvZ/dBez7clc9Wj1pnOfhfZnqnXIl/aE6h1qlmuwgLr65yzL6bYy3Gfw5zP6cf95mMfNemiwCz3
icAGd6uRjezAGXevdQeKnV1YSV1Za22jjt5FW03MR6n5D1r+b0/XbSwzJ6x1XmZ9OuvVXjv1SliV
H8dq1lcGDrnbrGr3t2YT8yO2G0fRU60xCHOsVWqMrLfSadLrLkExz7JW1ee7V60f83s+5TfuVW//
gFGPgSEDiwT2SYRDHVipcNKzKRkcF8EdIfg/9zvx7yDwXawz9mCOIHQcYwTOEfr/ka58aBRz3Do8
4McNztdOnvqmfcx9y6pytyVvA0KryScV5J4aWp3POfzfKafGCSPdcTxYDzKn/ARjnVn8zkoMNTfI
e9T8Hsf3kpvxe6sDLaiknUU7yc/rOPcI2+Y7r2LeJLiTfih4TSPkadukMe714ETaZ2hnojyUR5uN
8uAecuO5rpbzT+W3ZZIb02gdP3+M1kehzniKOW0EafQfx2GUIYci6FAP3YuS5CuYG9yEEtU/gl7O
VvS2G3iej5OTnyT83PA0Zthf0GeaMMQspXbeod5RIcclWXDf93NHax4KzU/Jcd58jj+vlU7eL0Gt
uQZTBJbJsxcsZx5HGJs410L6+SGsCr5Gn11C32lGjQPGhe+TG9vVXvpzrjKzCG3SZr3BXFDwksoJ
y/h9q5xH+S5PcB3dx87Bf9gv99imrjuO/865jhNgIU62PNgc35MUzEhYHg5VeJXYsFVAQWFp6Etd
M8e+IQYTW7ZDlE6Ci9Z27VqRqpNgZdOCmDSJVR30ZoPwkMKUjq4pG2gtTAJKA0wTldal2h/t2APv
e47No9vQHlKrTTq++vx+v/P+nd85957jHsRhnVwHYwd9xn0XfRdr9g3shT/B76wsU+vTi3k/Tr4C
/GuVZ1XBIzhrWrCPD0FHofNp+OBDfYZ5laNtOfqVPkkt77Hl6owivLcZzO0M1v8C4jyIvh8gl/rf
20xtBZdx95frtJueK3JTt7uNHsRdutXYiTt4Ne4hP8Reu0KPoc7D8lyEP2PTvkaVrj3ZqcIFOBPf
xDcinb1W0EnT1bmapuX8D7BP4Fv2fvYDN+bn2gEwL1c36nZjDa/Qt7BGHaBTgTWXuCzsxfPqnv6k
y01PGvsQgwLyGW9gDV/E+fladi/6kftnlvRL+Sb/C7ZgTa9mP3AdB2fwv4KyFa4zgK5fxfzlPb/B
KKUovq8+9mf014F+X6Wn3YKexvi92Nuyz/Xyf46KBWLz9+/8ndJGOd638lv3wn+4L/2rM/Fu3O3A
rfvQ9Vfw7uLzk10G2wu+CTsAWoAnx1+fIPrLU+DrsC3UaYY+lDvzrm8wLtKlogwV48n94v9bGAvx
ndv97+F+9OOh6GSOGctuUXw1h6fqFqVOjk9P3pny32o0Go1Go9FoNBqNRqPRaDQajUaj0Wg0Go1G
o9FoNBqNRqPRaDQajUaj0Wg0Go1Go9FoNBqNRqPRaDQazScOIyrdxX9CS2mCComTh4L0FFFBZcHv
qABpopn0I0gDEP+slMoupChSTKWJFfOtedugTxnP5m0X7F152w37+3m7kJqN/ajJXNPQp8+YzNuM
qgqu521OM90VedugKvfsvO2CvTRvu2F35u1C6nbHaR8JClATNVMrrE7qJQt6LSWoD2RokJIqZwVS
KdhShpEfUzUaUBKiOB5BHcjbgPYZSquUBW2h9hbIqKpZjGclUt3ItWgAOe2q9z6Me2OcNeh9EH33
ox+BfhPoM0YR2BHYSZSlbo4jbnrfRC2w/DdTrTRf+RBGD0nUFRg3jHFkHxHalK+7Gqle5MrSfviY
vjknGYeYmkf8jv70qFgIWo50N0pkblhF4qNzzPWTyM9UqFH6URpR85WpHvQ9gLYpldOPWlEVOYH8
G+uxCj7J6MRUuz4V2yWqvaVqWLQZY8pIR5UUeY9u1BUqP40cGb/kzRW8NQ9ZnoEXMbRMIwohVTM3
oxuzCCuf5A6IqhGlz5vU7Hr+m92zTwSamltFZ68l1ib6EpnBpCVWJFLJRCqciSX6GkQoHhcdsQ29
mbTosNJWaosVbRDFxSut7pQ1INqTVl+nbLMmPJjoz4h4YkMsIiKJ5GBKthGy+6YW4Zeqdb7oCMeT
vWJluC+SiGxC7upEb59Y2R9Ny5E6e2NpEb+9n55ESiyPdcdjkXBc5EdEnQQGFelEfypiQfVkBsIp
S/T3Ra2UyMh5rOoUa2IRqy9tLRFpyxLW5m4rGrWiIp7LFVErHUnFknKCaoyolQnH4umG++9df99D
q+tDqVg4fidbCelFWGRS4ai1OZzaJBI9d47gJ/x+T1fod/z/5R2/n+6l9XQfPYQ41d/2xsvV3QAv
48rjO9X6T/Nv/6J8LN+T3JlLlJ1LO+mf/F7pfDI0w5gvH15L1WQa9UYdDnLTqHPc1eao8fkRf5V5
+pgxjyYBN+Y59dXmYWOuUe0sMYOjxl0jZeWBktAXDIGjt1FJAZkA+8EYcFGX4UO+B3IbsMF+MAZO
AzdOfJ8qFSABhsGkLDGqDa8jTE9orjELbWfhSC8xKmkKZIEBPysxaiW1gy4wBIaBW9WTOQmwDYyB
91VJ0Kh0XmiB75XOs0qNbIwHVDKcSz76FZUcefDhnF775Zz+4qpctcW5as0LctkNy3N67vycLpsT
sKWeXhw4HqowKjDJCjiehGT8VSphjEzaY5TTAcANdz4naJSNzPYHhscMFzGDGww7wMweN5hTXBoI
TedZPkVlZPLf8/dyJfy9kZmlgeHQan6Z9oMxYPDLeC7xS7SNT8qYQ7aBYTAGToEp4OaTeN7Bc5Ff
pBL+NjWCNtAFhsEYmAKF/G1ID78gL15KSrsNcH4B0sPPY1rnIUv4OVjn+Dm49qbTuihwWBn1jXnD
nJM3Kj+XN8oqAqP8V861edhRfqw0dtRRo5aWUYtR68xpxvarcpbGzFF+ZUTUm3tCTfwtOgBwpYT0
AAHWga+CJHDDOgvrLNngebAHHADYZZAeIPgEOAnOUhMIgnWgiJ92MMwoP+X4l5uhCv5L/hpVIuK/
4D9X+iQ/ofQb/GdKvw7tg57gJxyfSaEZKCe08UB7oBtRXsB/OjK7zMyGSvkYYmdCNoI20A66wBBw
8zFe60TNMnRylCaKCDUdelfpH9DeIgpuNIP+FdiAQgr/4ntgQQyLYT8P+ne+iKQU/h0vwJLC/8Rz
sKTwP74dlhT++BZYUvijG2FJ4X+kC5YU/vZOWBCj/HuHZs81W9s3MREq4QOI0gCiNIAoDZCLD8iH
rrmkb99x6uoQsd3B+nl1pn2E2ceY3cHsvcy2mL2V2duZvZTZjzG7ntleZvuYHWT2UbYQobBZ8Mcf
SS4KVjF7gtkvMzvNbD+z5zB7NrMFaw2O8hpnVYtSX1JqJCRfOuh7luHrU8JrENEa7PkafBPGIE+B
rEoFUUnU5irP8kldO1LXlks3LA4k8PqMo+E4lmGc3gEuLNA4ttE4OhlHByWQbaALHAdTIAvcqF0L
x4eULIFsBG2gC2wDU8Ct3JkCnBJ5F/crx6TTjXnH24GLj+OpxVPDa4LVHq+n3rPSGPKyEh9r92V9
vJUqKvDJListKh1lxQc/LP7jh8U0LTSN7+BD8tPNn8/rIecaPt3s247/qBkqZ7vI58LOY4vIz+ZA
L6S0St9N3iKpF5CXvwQdcLwPoFmJ459vHmEzZauD5jXvb8x3vaMc5lXvUfPXYtTFHPMMcl46aL7l
fcZ8vXG0CDnH/KMM6ohQVQ97F5ovT6iq21Gw2zG3SvU3xsvvp20riuP32gw7pNCQIRo1JjYyQV1d
RoWg3poqGGM3k/ywlKSVnVlVIIrEtJdJTvq2ihekoal7mdSH/QVVn67LhAJ76TN/BX/C6MNes3Ou
nbBqTOpVfM/193zuOb431z/uifqTUlN/ULijmzieR3Bm3VR3llvqNxDPUfZUK4KYJ+qm8lx9lFAb
2OdEvQ+XYCTNu3CxXyg8qV4C5Q914+lTc0D3rXvSa8mXvpUeSGvSPWlRUqUFqSjNyXk5J8/IN+Qp
WZYn5QlZkIk8NxheWAbsPsncZA7N5ATWE7ydE7DG/Ss++qgswNubfS56gtewqcfed4i3p7G/G/qA
Tj1psc90m7K8R7ymzb4yvIE03GGm4TGp/p0fU/prACoTfh5Q0vQHdIjSYZHlt/1TQuns4asi2juH
r4KAFOZfbBY289XZrx8711TttDauSuGj9oLNXnsN/93G27cLdsDWeHs4hLbHfmtooX9KP9C/XOeU
XqIJ/FOxSj+4O6iLVScIvAF9xjmi0UvgYOlcck6GtzRyRJNLCfd7wpWhP3BLaIDLZEiZc+VMhnMT
FLk4WnKdeGmJM7fgQ44z0S3t38x5GZhymTPzB+ScM+fzB8iwKkcUBZCSwhF6mygcUehtjjy7QlZT
5GiMHPFMIr1ilISZvhgx0xfAGJ9aurZh0ONK0Andru62dbcLR5v98mK/wA72NC3uBOjQmLjc3uvs
o93tskDvOqyjO1pcCa9xh+iu6E5MQrfpx6HVdd5VrIqr7zrBca2+bn6U62ica71+TbA6BlvHXDXz
GreJ7hrmMjGXiblqVo3nInyp1/1YJnawHSb2WMhOwbJtFxcDez73Y5Wv4cpi4WXxDD5d3pCsEbAb
us2m4UDXytbKFrrg1kLXDMg3U1fhZWWxeEbfpK4cyLO6TYxeP+qTgvu9k/wiKCD1+jjhSW1E/1fA
5zJr14l6hHjsbsNjm09afixJoLZxSOzhSMtm3cHwfSJ+CeJDFEVxDKL2CLVMJgX/+//3U7uNd8GB
8OcxtUoUtoSByEpeU4AnQrMFYw1b/hl8WOG7IgpggBE1aDSKkV62YZDknOCYR0evn7bSueilNukJ
XaLRlIwLTpYxnrEeD8un0wj9rRnxgbgKWw9VvA92BewK2DWwa+KqlV9WRcFUM7KpZqccVZp01FHU
wPhHgAEARh4Y8A0KZW5kc3RyZWFtDWVuZG9iag0zNzggMCBvYmoNPDwvQkJveFs4Ni40MjY5IDQw
NS4yNjQgMTcyLjYyNyA0MjYuNjY2XS9GaWx0ZXIvRmxhdGVEZWNvZGUvRm9ybVR5cGUgMS9MZW5n
dGggOTQvTWF0cml4WzEuMCAwLjAgMC4wIDEuMCAtODYuNDI2OSAtNDA1LjI2NF0vUmVzb3VyY2Vz
PDwvUHJvY1NldFsvUERGXT4+L1N1YnR5cGUvRm9ybS9UeXBlL1hPYmplY3Q+PnN0cmVhbQ0KSIls
jLkNAzEQA3NVsRUQ5ErapwLnvjbs/tMTzqkzYjBDonaVhxHO2aoztDY77P0aioQ82paIjJn2HS30
DyVmbLfPuEY3vLMO9PPD+u+JBGsdzQVFrKe9BRgAnXYZnw0KZW5kc3RyZWFtDWVuZG9iag0zNzkg
MCBvYmoNPDwvTmFtZXNbKP7/AH4AaQBjAG8AbgArAEMAbwBtAG0AZQBuAHQAKwAxADUAMAA6ADYA
NwA6ADIANQAyAC0ARQBOAFUALQAwKTM4MCAwIFIo/v8AfgBpAGMAbwBuACsAQwBvAG0AbQBlAG4A
dABTAGUAbABlAGMAdABlAGQAKwAxADUAMAA6ADYANwA6ADIANQAyAC0ARQBOAFUALQAwKTM4MSAw
IFJdPj4NZW5kb2JqDTM4MCAwIG9iag08PC9CQm94WzAuMCAwLjAgMjQuMCAyNC4wXS9GaWx0ZXIv
RmxhdGVEZWNvZGUvTGVuZ3RoIDI1Ny9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzA8PC9BSVMg
ZmFsc2UvQk0vTm9ybWFsL0NBIDAuNi9UeXBlL0V4dEdTdGF0ZS9jYSAwLjY+Pj4+Pj4vU3VidHlw
ZS9Gb3JtL1R5cGUvWE9iamVjdD4+c3RyZWFtDQpIieSSO07EQAyGr/JfIMb2vE+wEhIFokTbMIgF
lC2AguvjyWaWTMQN0BT25/j5Kx+Q5X2ewHgz5xsed2bfjW/xeGQ84+bwwDh9WZTtCQoCceGMekai
5CFKUSLOmLY4Y8qkv2yUODWS7K8kFH1B7Tw5yk4utQt7cjH0Tkap5HXMChVbmjFkDk2GCRXDAjOG
7YbFt0dVvOIF96bDAUwhZ/VqjkbLN32oWMSFridT5L2kpiDzUUzXPwVtMRNSyWloJjcxOvPiB0q6
dTMV3yhQkBGWpIuxswO3OdLarxDa4Y607HyWsaKDI+ev5Y6K2hc1qXa+82PF/A9/kyf8CDAAMiSp
Xg0KZW5kc3RyZWFtDWVuZG9iag0zODEgMCBvYmoNPDwvQkJveFswLjAgMC4wIDI0LjAgMjQuMF0v
RmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxODYvUmVzb3VyY2VzPDwvRXh0R1N0YXRlPDwvR1Mw
PDwvQUlTIGZhbHNlL0JNL05vcm1hbC9DQSAwLjYvVHlwZS9FeHRHU3RhdGUvY2EgMC42Pj4+Pj4+
L1N1YnR5cGUvRm9ybS9UeXBlL1hPYmplY3Q+PnN0cmVhbQ0KSIlkkEEOAiEMRa/yLzBNWwoDJzAx
8QTGjZoYDW7ceH07gjOZMWz+K49SYOzAFHNWUw+adDTxULwSIl43MO7OifGG4QDBw0t7HBnCfBJc
4TX2JSiIxIUzLk8YCYRGwRODX2AYlLSgouN3b6JIcQNGPouT8D91ce5ep74hoFBKftVIwVquLWfK
YZZW0K0GI2n245Fybrm2nMgWaQXd8vEKNJBMv+VPXXHtPCj7LPGnb3Cxz/gIMAB0t061DQplbmRz
dHJlYW0NZW5kb2JqDTM4OCAwIG9iag08PC9EZWNvZGVQYXJtczw8L0NvbHVtbnMgNS9QcmVkaWN0
b3IgMTI+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvSURbPDFCNzQ5MTMzNTRENzRGMzI5ODkwQTFBNkRD
QTVFNUZCPjxFQjcyQTM2N0QwMkVENzQ1OTk2NDRFQ0I3NDUzNzUyMj5dL0luZm8gMjUgMCBSL0xl
bmd0aCA1MTYvUm9vdCA4NiAwIFIvU2l6ZSAzODkvVHlwZS9YUmVmL1dbMSAzIDFdPj5zdHJlYW0N
Cmje7JZLSFtBFIbPmUTTINZNoahVkD6sVBQLcSN2pVAwKhYUF1Z8owupW0UFH3TjyoUYKLUUunOp
LhRBkCKIAbXgsrsGoRvBB/WR3HHOf8Wb2CaanZRk8fHz3zNn5swMZ6JIfkoRj7HSlNWqFVFPAxnS
AFgl5Bbho1noXDCEr4+FqluYPwk/AmdeWN9lyPxc9JNlUqxD614ZRRxDi/TIMdaglObcbkvmqpX4
3Rr6R3wCqjOh9eCmjhfPR0L9MMo5hJOV3Lz3gWoP9RYnMcrs/PiWYi6rkt3eqcRuqzRzCmVnF8bZ
9qQb/TrjXE7WT0rr4Av7ROKT2Wef2gfJGdz0XM2luTznVPJU44YMSbaNb86oiveiny4IvT+ERelC
D3walru0tQRdeENT3oqjqU7oAtnWfsd310fF+KNi3sb6OvLVe1ulVyt3tfmQpwJ1fZexn4Pid7ZD
f7lbnhRTTExz6ScI3fL/q8t+BXTqlOPsj8L+WAm6UGfAMDL3GzdkVJyubHQkCzyQXhQ4F7/vJ5yA
ODNTTob+TPSxP8Km0LXmlmeIgd/xzkSGR33JvE3aPf4Gnb8E874y84aH9u26XNcxHzfDxh9c/Lv2
TNR+FFuve+oEKyyQFa4x9D7yTztVNJZC2/15FV+3DS+aP+EtyIH/EsS/HfUL/d/sFaXN9dKlAAMA
c1aWtw0KZW5kc3RyZWFtDWVuZG9iag1zdGFydHhyZWYNCjM3MTE5Nw0KJSVFT0YNCg==
--0000000000005ab7f006266853f2--


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 15:38:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 15:38:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832712.1247987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9R4H-0007ke-8C; Fri, 08 Nov 2024 15:38:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832712.1247987; Fri, 08 Nov 2024 15:38: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 1t9R4H-0007kX-5Q; Fri, 08 Nov 2024 15:38:37 +0000
Received: by outflank-mailman (input) for mailman id 832712;
 Fri, 08 Nov 2024 15:38: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=kpLv=SD=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t9R4F-0007kR-5e
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 15:38:35 +0000
Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com
 [2607:f8b0:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 817feb4e-9de7-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 16:38:31 +0100 (CET)
Received: by mail-ot1-x32a.google.com with SMTP id
 46e09a7af769-7180f2f5fb0so1475701a34.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 07:38: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: 817feb4e-9de7-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC1vdDEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgxN2ZlYjRlLTlkZTctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDgwMzExLjcyMjI2NCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731080310; x=1731685110; 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=PzkQ6yjrGMHNFOleLn3anvYPdWAO2I6q1VA1NHFPq9g=;
        b=WF72ADTNL5/bwV2Wnr9A7FDXg9QMBzcpSmai+mJoxianfv3fFuc8YGOX/bvxmFhrB0
         PRf+5amfrXuUzXRUVhEIINKkAHALMAjc96Wscj17t6HINMKKZFxV0cQT0LEPWoYt59BS
         TNPyPWt7zJgiL9Gw6jSOxE6VvyoeUaPP4fM0k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731080310; x=1731685110;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=PzkQ6yjrGMHNFOleLn3anvYPdWAO2I6q1VA1NHFPq9g=;
        b=U1PtpsotVI2kistLXqW3TX5XOYK3Ii1sdZBZJTgEiI1t0NU11a03/wgNUo8FXYvEzE
         uaHW3ZMutZRCtY3vUA+LYq9mQ2iE2JP1B3uAFcdsE+CXYxlHl2VFm6sC23tGVh0wPaz5
         O7WTIVl3FDVw02HHnLBuVotd+FOuP6jcVXb5ehMUZ2u9yjkvzjQYjsqnQsidukAafBm7
         SygDyAqx6RqqVYdNDXhFRdQY3pMUh4j0Xuxncw0WEhWfuQsJQdrMuCNu6/SBY2Ja627i
         m4l0B3I7UYPsvYxqjaokk3Hqwb+Nzdwck8ljpGqLzO6TzSQKrY+1Co8Cf0vzj+bSHJIl
         DNEQ==
X-Gm-Message-State: AOJu0YypCuDp4DvqKinize8ulVaZq4mZH0uu3LtVMRrdHIh3rNbgE2TI
	dATrC5jW2ZCMQYyFAieb8mOxVzCV3QU2Q/Fc28b5cQfarXl+Mz9c4X5+46LyvM9+oBW0mZLyaLX
	5PJ+IMPe+paklY1SPGtEdZtrkzLoRW4RDZ6GMdQ==
X-Google-Smtp-Source: AGHT+IELsFKkJGA0G9/REqbDphWczSd5IZt69INWGXTBcpeEdSBiR8sQbsdoL7sLiubKSumZbbkwDwpBvY5rTEhRk3w=
X-Received: by 2002:a05:6830:6186:b0:717:d012:a513 with SMTP id
 46e09a7af769-71a1c26869emr4265416a34.19.1731080310153; Fri, 08 Nov 2024
 07:38:30 -0800 (PST)
MIME-Version: 1.0
References: <20241108145335.315884-1-andrew.cooper3@citrix.com>
In-Reply-To: <20241108145335.315884-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 8 Nov 2024 15:38:17 +0000
Message-ID: <CACHz=ZgN5UOFFMfH2MqD3ouSmGsk8_T+47W=F61nnUV7vGfV6w@mail.gmail.com>
Subject: Re: [PATCH v2] x86/trampoline: Collect other scattered trampoline symbols
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>, 
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Nov 8, 2024 at 2:53=E2=80=AFPM Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:
>
> ... and document them too.
>
> 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>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
>
> v2:
>  * Rebase
>
> video.h, edd.h and e820.h also contain trampoline symbols, but they're pr=
etty
> well contained headers already.
>
> kbd_shift_flags seems especially dubious.  It's a snapshot of the keyboar=
d
> state when Xen happened to pass through the trampoline, and surely cannot=
 be
> useful for dom0 in the slightest...

I suppose an OT comment here.
It's just passed as a firmware information back to dom0.
It's used by the Linux kernel. See for instance
https://gfiber.googlesource.com/kernel/bruno/+/801f6772cecea6cfc7da61aa1977=
16ab64db5f9e/arch/x86/xen/enlighten.c.

> ---
>  xen/arch/x86/include/asm/processor.h  |  2 --
>  xen/arch/x86/include/asm/setup.h      |  2 --
>  xen/arch/x86/include/asm/trampoline.h | 15 +++++++++++++++
>  3 files changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/=
asm/processor.h
> index 26e2fb13699a..877651212273 100644
> --- a/xen/arch/x86/include/asm/processor.h
> +++ b/xen/arch/x86/include/asm/processor.h
> @@ -96,8 +96,6 @@ extern void ctxt_switch_levelling(const struct vcpu *ne=
xt);
>  extern void (*ctxt_switch_masking)(const struct vcpu *next);
>
>  extern bool opt_cpu_info;
> -extern u32 trampoline_efer;
> -extern u64 trampoline_misc_enable_off;
>
>  /* Maximum width of physical addresses supported by the hardware. */
>  extern unsigned int paddr_bits;
> diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/=
setup.h
> index d7ed4f40024c..25c15ef9140d 100644
> --- a/xen/arch/x86/include/asm/setup.h
> +++ b/xen/arch/x86/include/asm/setup.h
> @@ -48,8 +48,6 @@ int remove_xen_ranges(struct rangeset *r);
>
>  int cf_check stub_selftest(void);
>
> -extern uint8_t kbd_shift_flags;
> -
>  #ifdef NDEBUG
>  # define highmem_start 0
>  #else
> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include=
/asm/trampoline.h
> index 57a1f85a539e..838c2f0b6fcd 100644
> --- a/xen/arch/x86/include/asm/trampoline.h
> +++ b/xen/arch/x86/include/asm/trampoline.h
> @@ -85,9 +85,24 @@ extern uint32_t trampoline_xen_phys_start;
>  /* A semaphore to indicate signs-of-life at the start of the AP boot pat=
h. */
>  extern uint8_t trampoline_cpu_started;
>
> +/*
> + * Extra MSR_EFER settings when activating Long Mode.  EFER_NXE is neces=
sary
> + * for APs to boot if the BSP found and activated support.
> + */
> +extern uint32_t trampoline_efer;
> +
> +/*
> + * When nonzero, clear the specified bits in MSR_MISC_ENABLE.  This is
> + * necessary to clobber XD_DISABLE before trying to set MSR_EFER.NXE.
> + */
> +extern uint64_t trampoline_misc_enable_off;
> +
>  /* Quirks about video mode-setting on S3 resume. */
>  extern uint8_t video_flags;
>
> +/* BIOS Int 16h, Fn 02h.  The keyboard shift status. */
> +extern uint8_t kbd_shift_flags;
> +
>  /* Extended Display Identification Data, gathered from the BIOS. */
>  extern uint16_t boot_edid_caps;
>  extern uint8_t boot_edid_info[128];
>
> base-commit: 75035c386eeb8bd5dbed1831dbb96a35b31521f6

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 16:30:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 16:30:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832725.1248002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Rrr-0006k9-VF; Fri, 08 Nov 2024 16:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832725.1248002; Fri, 08 Nov 2024 16:29: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 1t9Rrr-0006k2-Ry; Fri, 08 Nov 2024 16:29:51 +0000
Received: by outflank-mailman (input) for mailman id 832725;
 Fri, 08 Nov 2024 16:29: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=K99Z=SD=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1t9Rrq-0006jm-Co
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 16:29:50 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20621.outbound.protection.outlook.com
 [2a01:111:f403:2409::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a78b58ca-9dee-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 17:29:42 +0100 (CET)
Received: from DS7PR03CA0254.namprd03.prod.outlook.com (2603:10b6:5:3b3::19)
 by PH0PR12MB7907.namprd12.prod.outlook.com (2603:10b6:510:28d::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Fri, 8 Nov
 2024 16:29:33 +0000
Received: from DS2PEPF00003446.namprd04.prod.outlook.com
 (2603:10b6:5:3b3:cafe::1e) by DS7PR03CA0254.outlook.office365.com
 (2603:10b6:5:3b3::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Fri, 8 Nov 2024 16:29:33 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF00003446.mail.protection.outlook.com (10.167.17.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Fri, 8 Nov 2024 16:29:33 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 8 Nov
 2024 10:29:32 -0600
Received: from [192.168.59.65] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 8 Nov 2024 10:29:31 -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: a78b58ca-9dee-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwOTo6NjIxIiwiaGVsbyI6Ik5BTTA0LURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImE3OGI1OGNhLTlkZWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDgzMzgyLjQ4MzQwMSwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hiTqGOnc0dEWZQYF/lYUmMZ30q2iR39SYU3ut6om+hakN/vJSJSkbkrOKE8b2ETcGXWi0jHvrPTf+l8HHtrZINFNMSCkHrHC0ETqSPHZXtPcOyHZ98E9ho+Cl988x8Or+JZINeKwKO5rHZ35kNj3/f4JtzbnT+lCnF2t8dLkUq6NjhP5jGppbJziMKtg4pA+zB3oTEt3AvbW3URgI1J2+WpSa0NNToGmGVEJ7nOSLf7djqpwubceHRAtvw/+j5jXgoi/3ZgixYwo9N8sh4Sz5Cl93JMgtFBIUfYV9hBdZcZpFq279jKA/S+h5ba/sZhMYCTkZxo3ikel3RZWYAV6CA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sbZBgVmUGPMICijMrrBrHw0Viq1K+Ua8gb+RrZwVJOU=;
 b=B6NeWRGo7F3jIsBDEYRIL2Hu/JPqvCkuSaHNm900f+V4ggnA5nyMFZ+HdJdd+zo3LVIto337QGNgngTjm0umN4IE+t0iz/wga+RaID/8BWr4bhG1cxfIyaD+orTISuhhWpnb+QaW+dNGeQWHUbq9Fx5njHYB/YkcpwLXzTr/CTxF+yu7yTpnlmknsYlMs0EO6py17nsHT3NJxzR3m0HyvHptrs0Bs86DJU4xsfunSGDwA+Sb7pZGWjJB4V1qTr4tMHAh1gacAbOSU5CcAWqpJ6ucZnD5UDJUJ0ifYeEkeIoMPKct7UHvZIr55R0Fq/Zo4kFSdD3x6t9jhkqtRrZYUw==
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=sbZBgVmUGPMICijMrrBrHw0Viq1K+Ua8gb+RrZwVJOU=;
 b=2MHWpVHt2IAQsmwoS7GkDBYL1NHc4B4z0LP7Yh5iE+10TmMuSpgzkfvqTahOVw30yDCV2lNiRNspxXTykU1jdXL6aD9Uqt1YFZ/EtjfYHj0Z3B+imbXai0vPh1cbbgeeOjZxlhs8UfzQvaFPf/xUj1E99agI68NuX2OgtvS4pTU=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <ec9dd718-ef25-4a23-8080-8081ef2facb9@amd.com>
Date: Fri, 8 Nov 2024 11:29:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
 <D5GT0NR29WEF.216KE5GCTH1TL@cloud.com>
 <39b2a334-1298-4e83-b7b7-393c79964539@suse.com> <Zy4sG915LicXNmIV@macbook>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <Zy4sG915LicXNmIV@macbook>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003446:EE_|PH0PR12MB7907:EE_
X-MS-Office365-Filtering-Correlation-Id: c1954aea-9900-49a9-8df3-08dd00128736
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:
	=?utf-8?B?OHA4dXNpTS9xK3JLYldTOEdaUWw5RjZPNXlGNDJzbng2b2xaaGJnZFZ5akpE?=
 =?utf-8?B?RHVDL2lGeU5TWFpZbTkxYlJNRnNQTld6d0JzcTBhQlo1WitpUUV5RUZVNytv?=
 =?utf-8?B?UjdtUk4zczhzanprMG9nK1FTQ1k2bWxiY2ozUFRYMzNBOFVGRmJ4NjRNV0g1?=
 =?utf-8?B?ZHlSNTZ0ZHN3TlRxaEVwSE5aZTJRUk5ER1J2bzMwUFk2VmdINXRpL1FtczhU?=
 =?utf-8?B?MDRTVkRRZzFMQWxqN2J6cEJCNXA0UERmYWdlMFZ2bEY5Q1lWem5SYkViUjl5?=
 =?utf-8?B?dFRjQW9xR3I5S3JvTnZtWVVLM1prWSs1U2lLTGp0VzNSQ2huQkhkODFSRlly?=
 =?utf-8?B?b3dGWk5FSzBnTmRkMDJWUExSdGg2dExmMC9Lbi9MVVN4Wk9vMnFWcmZFOFFI?=
 =?utf-8?B?dVg0bm9YUUNNRlRSUC9Na21rRVkzWWtnS0xXdHI2dlVzTTBGUzQwTHQ5QnVy?=
 =?utf-8?B?R0trbWRIb0VJNUo5dlVsRmltVWJCeE5sZkczbUQ0YjYzN2FNTFQ3OHY1ZkUy?=
 =?utf-8?B?bzhhb1B1bEN6OXM5Qmc1dEZyeWhsM0JPcFdjWHp1aE9EWjE0VldOVFo2dUo3?=
 =?utf-8?B?U3U5YThXd2oxTjkySG5yajdwakk3aDErVVdvRkVKTW4yQXdmNXRzMW5IOStv?=
 =?utf-8?B?TTMrWkNmQ3ZheVhoZFhEKzlKSHVaNGIyTHViVkc3OGF6dVlva0lhQXlCbXlU?=
 =?utf-8?B?d2x3aWw3cE8vQkpUYTJ6b0t0cVFJTkZJRkUxd3NxMnlYU3daNklTTnR1KzdP?=
 =?utf-8?B?TkVucVNXcU9SZlBIQ1ZzU0lkRUQ4ZGJWRVl5a2dTLzJIREh6WmdXWTcxZ2VO?=
 =?utf-8?B?S2ZQVUhBeS9mM0t6SnNGR1F5ZnNvYUg4aWxaSWNpbzMvTmFscVRmU2g0cXNI?=
 =?utf-8?B?TkVjcnV5ZVNBR2Z4dXFYMThDeEtnL0IvaGNvdnJxZjkzdzA0clNwcTA2empL?=
 =?utf-8?B?emNIelVyeUVKRzE0UXJWbERLWVQxUnpISXR3VGpxaUFJYkxSQkdWanJMTVg0?=
 =?utf-8?B?a1NQSU1QRSthcE5BdFlRaVVaZ1VTZjdWRVNualp3Tm5vVlgzQ3d2RWRmWWF2?=
 =?utf-8?B?Z3R4RUk1SUFMK3MzazU1SWhCQUczLzZMQmRWOU56M3EwT0cweDZuYlBua09R?=
 =?utf-8?B?QzJFZGwyQ2xwOGd3OEdzT1NxZ1IvbTdTNmZJOXM4V3grbnl4cm5OdXMzbjZQ?=
 =?utf-8?B?WUdRRnJhZWxpU3d2RFlWanRDUUJaeWRjRk1nZk45SExKQzJnUFUvdWxlR0NI?=
 =?utf-8?B?MSswaHpVSlhjcGpJTVVPZEF3S3pxVVdzZmtPU0d3anYxcUxuWVNYS2pqbjZV?=
 =?utf-8?B?MXpReERZOWhHYTE0TXI5TDlyMlE1Ymc1TkovaVFDTlg5TjZ0ZlgzMmFVdE9r?=
 =?utf-8?B?U1lHOFh2Q2dyQ2x3TnlpcytTZ3p6aDNHa1JGSmZsWHRNZkU1OW1yeGVFcTg5?=
 =?utf-8?B?by81UFdYRjN0UjZ4QjE1YmV5MVNCY0lYOVpRa29DMWpseGtRTVZOWDhISTE0?=
 =?utf-8?B?bDNvdVZ3SEQ5Q1crSkdra25vSlJMWjdaZC9wUGVJRzJhZFU0MG5uS0ZLZHM4?=
 =?utf-8?B?UHJJM1hnRi9oSU5EYzdLQVZZbW91TEloVzRYcm9ZVy9OOW5tVmNyS25DU1l6?=
 =?utf-8?B?RmZTZ3Z4aGYrbFp2aVh3MFRSZFpxWUx0UCswUUhvbllLczhIYnJEdWMrVGlP?=
 =?utf-8?B?N2pUaktiSGZyeHhxeCtkeFVRMEtjWE1HejRsRUt5V0ZKSjNjc2FISE8zaFFw?=
 =?utf-8?B?UmpVV0I5eVA2WW84ekNiMHk5UlZ0aXBHSm5ndnBOdXBLNS9Dc29KQklJZlh4?=
 =?utf-8?B?Y0xaTU51azZJSEZpcDdReEgxbkdBaVJrdU1tTTZSazcrZXV1U2w1SW4zdjJp?=
 =?utf-8?B?MmtZVnpDR3AzNlZFSytzSW1QdjF6ZTRoK1FKSjNTNHgyOGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 08 Nov 2024 16:29:33.3451
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c1954aea-9900-49a9-8df3-08dd00128736
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003446.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7907

On 11/8/24 10:19, Roger Pau MonnÃ© wrote:
> On Fri, Nov 08, 2024 at 02:17:40PM +0100, Jan Beulich wrote:
>> On 08.11.2024 13:42, Alejandro Vallejo wrote:
>>> On Mon Nov 4, 2024 at 7:44 AM GMT, Jan Beulich wrote:
>>>> On 01.11.2024 21:16, Stewart Hildebrand wrote:
>>>>> +Daniel (XSM mention)
>>>>>
>>>>> On 10/28/24 13:02, Jan Beulich wrote:
>>>>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>>>>>> Add links between a VF's struct pci_dev and its associated PF struct
>>>>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>>>>>> dropping and re-acquiring the pcidevs_lock().
>>>>>>>
>>>>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>>>>>> VFs may exist without a corresponding PF, although now only with
>>>>>>> pdev->broken = true.
>>>>>>>
>>>>>>> The hardware domain is expected to remove the associated VFs before
>>>>>>> removing the PF. Print a warning in case a PF is removed with associated
>>>>>>> VFs still present.
>>>>>>>
>>>>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>>> ---
>>>>>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>>>>>
>>>>>>> v5->v6:
>>>>>>> * move printk() before ASSERT_UNREACHABLE()
>>>>>>> * warn about PF removal with VFs still present
>>>>>>
>>>>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>>>>>> just after an adjustment to the commit message. I'm instead actively
>>>>>> concerned of the resulting behavior. Question is whether we can reasonably
>>>>>> do something about that.
>>>>>
>>>>> Right. My suggestion then is to go back to roughly how it was done in
>>>>> v4 [0]:
>>>>>
>>>>> * Remove the VFs right away during PF removal, so that we don't end up
>>>>> with stale VFs. Regarding XSM, assume that a domain with permission to
>>>>> remove the PF is also allowed to remove the VFs. We should probably also
>>>>> return an error from pci_remove_device in the case of removing the PF
>>>>> with VFs still present (and still perform the removals despite returning
>>>>> an error). Subsequent attempts by a domain to remove the VFs would
>>>>> return an error (as they have already been removed), but that's expected
>>>>> since we've taken a stance that PF-then-VF removal order is invalid
>>>>> anyway.
>>>>
>>>> Imo going back is not an option.
>>>>
>>>>> While the above is what I prefer, I just want to mention other options I
>>>>> considered for the scenario of PF removal with VFs still present:
>>>>>
>>>>> * Increase the "scariness" of the warning message added in v6.
>>>>>
>>>>> * Return an error from pci_remove_device (while still removing only the
>>>>> PF). We would be left with stale VFs in Xen. At least this would
>>>>> concretely inform dom0 that Xen takes issue with the PF-then-VF removal
>>>>> order. Subsequent attempts by a domain to remove VFs, however
>>>>> (un)likely, would succeed.
>>>>
>>>> Returning an error in such a case is a possibility, but comes with the
>>>> risk of confusion. Seeing such an error, a caller may itself assume the
>>>> device still is there, and retry its (with or without having removed the
>>>> VFs) removal at a later point.
>>>>
>>>>> * Return an error from pci_remove_device and keep the PF and VFs. This
>>>>> is IMO the worst option because then we would have a stale PF in
>>>>> addition to stale VFs.
> 
> I'm thinking probably this is the least bad option, and just force the
> owner of the PF to ensure there are no VFs left when removing the PF.
> 
> What sense does it make anyway to allow removing a PF with VFs still
> present?  Not sure exactly what the owner of the PF will do before
> calling pci_remove_device(), but it would seem to me the device should
> be ready for unplug (so SR-IOV disabled).  Calling pci_remove_device()
> with VFs still active points to an error to do proper cleanup by the
> owner of the PF.

In normal, correct operation, right. The PF driver is indeed expected to
disable SR-IOV (i.e. remove VFs) during its removal, prior to calling
PHYSDEVOP_pci_device_remove for the PF.

> Returning error from pci_remove_device() and doing nothing would seem
> fine to me.  There should be no stale PF or VFs in that case, as the
> caller has been notified the device has failed to be removed, so
> should treat the device as still present.

But software has no way to guarantee there won't be a physical device
removal.

In test scenario #2 described in the first patch [1], the PF (the whole
device, actually) has already been physically unplugged, and dom0
invokes PHYSDEVOP_pci_device_remove to inform Xen about it.

[1] https://lore.kernel.org/xen-devel/20241018203913.1162962-2-stewart.hildebrand@amd.com/

That said, test scenario #2 would only happen when a buggy PF driver
failed to properly clean up the VFs before the PF. But the point is that
returning an error does not guarantee there won't be a stale pdev in
case of a buggy dom0.

I guess as long as we trust the owner of the PF, this approach is fine.


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 16:31:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 16:31:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832732.1248012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Rt9-00089L-B5; Fri, 08 Nov 2024 16:31:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832732.1248012; Fri, 08 Nov 2024 16:31: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 1t9Rt9-00089E-7O; Fri, 08 Nov 2024 16:31:11 +0000
Received: by outflank-mailman (input) for mailman id 832732;
 Fri, 08 Nov 2024 16:31: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=8BGf=SD=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t9Rt7-00086y-UB
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 16:31:09 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20624.outbound.protection.outlook.com
 [2a01:111:f403:2412::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d93f8711-9dee-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 17:31:06 +0100 (CET)
Received: from DS7PR03CA0258.namprd03.prod.outlook.com (2603:10b6:5:3b3::23)
 by SA1PR12MB8697.namprd12.prod.outlook.com (2603:10b6:806:385::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Fri, 8 Nov
 2024 16:30:57 +0000
Received: from DS2PEPF00003446.namprd04.prod.outlook.com
 (2603:10b6:5:3b3:cafe::bb) by DS7PR03CA0258.outlook.office365.com
 (2603:10b6:5:3b3::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Fri, 8 Nov 2024 16:30:57 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF00003446.mail.protection.outlook.com (10.167.17.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Fri, 8 Nov 2024 16:30:56 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 8 Nov
 2024 10:30:56 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Nov
 2024 10:30:56 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 8 Nov 2024 10:30:55 -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: d93f8711-9dee-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjI0IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQ5M2Y4NzExLTlkZWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDgzNDY2LjM3MTA0Nywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tQgx12xz21/R+XVFwqw38ugiImW2ck7Pf4hCaDEk8Z8+4wdFj9s3F4kCp0AYcmxEjBCSB4f2kZ+ZWagm5h0MGMeiG5kradx7hmKuNOYT9vLjvQNo2Hac+e9nSABpqshKYOgrDUry2T/Q4eGM9NGpEM6ws71VVf5Yay94FuFmdGqQtwswfft9vCwTgMJmCMtU6JUghiM2ut1ik8GIVRz224Met1+JsWTNeSqQ21H+cxx1mQ0zjTBM0OzeY36IOyX6b9zqEpwK9bDNLCKK6eAHXr3pZpkZnDEoZQ8QsWkG1AWAzSA0tIZHEd7c1p8aifnfXay5KNgl+xY5RcNzK1h22g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XGTvyv61mwP7cHt5/X2xMHtqhRxVIDUbnyqPIu0C7z4=;
 b=SOFPk/wrIBB+BB6fcHf0bpyq+/uoIQKLo5ikfT3WiT/aoezJYy63YEc+M23ZYtAK3KAl40r/FxwI3ZCpmaeay/dI1aq36gu2sE7n3qM69qG8eFIzo9bFpmVvVqgC62W300msyKlpZjGcYqk1QdY3ALY9LlMQU5HYD4jyx1ekcgRK/3pX9IjiwXv101bS1WLgMgYzeOSxRNk4CVW8+FFU1huEeS/hO0nJGr+UIGWaBnBz9mAFx5iB67mnL5s7R96z4ozwXK2A4+TS8WquJJZdGcFpAxNdghVgPi1Tkk7XiFQaOela7u94xIVDP/OM6jg1Zlgk1nMhEoB0DWZjwW0j0A==
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=XGTvyv61mwP7cHt5/X2xMHtqhRxVIDUbnyqPIu0C7z4=;
 b=cXgOZ7nCgH50bY1FvP3qDLaVV/9njls5XaTCg9q0bT7jzC19c53sTqUVSAQFaHUUGHxIJsrDPHcWaUzuL9mnXFZCN5RV7DcYDbLKqusKlfsJctkqltQzyhXtlHXZcc906eJBCJUf1kA1iWLGQaG1BTyu9uGfjEF6ePQhuThmDEc=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <a08a2653-097e-4cb9-bc17-6b3e4ca57114@amd.com>
Date: Fri, 8 Nov 2024 11:30:57 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix bootinfo.h to be standalone
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Krystian Hebel <krystian.hebel@3mdeb.com>, Jan Beulich
	<JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20241108141210.298063-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241108141210.298063-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003446:EE_|SA1PR12MB8697:EE_
X-MS-Office365-Filtering-Correlation-Id: 298d0a4b-5287-4908-64cb-08dd0012b900
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?K1VCZit0OVh2N05zaEtPOWJCY0VJRkExaTR0NS9XaStvV3VvTDNoRkRMSXhH?=
 =?utf-8?B?TUxQdTlOYW9YbHBIRjNjcEM4VVpzMFZLUFZQNGVjZEFMQy9xVURVRkl5VUd1?=
 =?utf-8?B?TzNHSEhNYXdCQ2FmRUpiL2VKRk5JTjQ4MlN6Q1E5aWs4YzkycndJNEZwZUJ6?=
 =?utf-8?B?TXplc2NveUJ1QUFSQjZvTW9TT2VnVzZBUG5JbTJ4SndOakZ1Sm1jMm9ydGtX?=
 =?utf-8?B?VGI1cXFOdjRxOU5ZMzMrbXRnN29JOVlzbEZWaHhSVEd0WDRQM1I5SWRNaGdn?=
 =?utf-8?B?R1M3VVlQQXl0ZW02eW1KaThQblg1aldBQ0pFekxObDdpdXdwV2JZM1N1RGFl?=
 =?utf-8?B?SHRmQmI1d3B3RmhSQkR3RmcweFZjQlVhL3ZyYVYvbElBU1FLOU1Zeks1VGFk?=
 =?utf-8?B?OW5MaE4reXBJaEhHR3pPM2lnTXBtREQybDRCZkd1RG85M1BXc3FMZ2dOVmxV?=
 =?utf-8?B?U0pxOC96RCtzTWhpdml3bVRRRzZ4WnA5NlVOZlAzWnc1MGo1UEVTNWJGejN2?=
 =?utf-8?B?UHJTYjZvSVM1ZW9tN2VNelFPVlZNZFN4SWNiS2cvbTNQZUZHTGlLcithT1Vk?=
 =?utf-8?B?RHhwb2NSRksvQWpER1pVbmx6amdiK1g4SVVVNDFuV0lBcm0xWG4xNUVpMlEx?=
 =?utf-8?B?TzVHQ3J4WWswc1Q5SVBVNkVnMEpSVVd3anZQeU9ONkdmUTNZRmlYbTRlVVQ0?=
 =?utf-8?B?SFpscklWaThTaGRlbDNyeXQxc2d1a0JudEVIdC9hcjZVVDREMm5XRkNNZUoy?=
 =?utf-8?B?emhjNC90Z2NyM0ZHQm9HV083a2tSOUVqODFaUGRWUVphN2dXVTlEbGVTVEVq?=
 =?utf-8?B?NEFOVldhUjdnaWtkZFc3bkwzV2NOYXNOSWdmcW85UUorYTVCZmxOMlVmaHhL?=
 =?utf-8?B?d3E4dHI3RWhTK0k3anNoY0JncEMxMzNmZkQ3THBxWm9uMzk5UWZaZFpsbTYx?=
 =?utf-8?B?QW1vMGFjVDY3ZlFYSC90aHNGenVjWkRFeWRsSDdBMk9LRzZZbW8yUVgvTVdL?=
 =?utf-8?B?QWRsS0gvZzBweUV4c0ZLKzhYUm9CU0RZb3B4NG91MzZWNEc4Y0NJSDY0TG4r?=
 =?utf-8?B?aWNYcmtiZHdvalhGdUV3RjhkTVNVQWJ6K3FOOGc4OXhvdXNGNW1jRkFOdWRD?=
 =?utf-8?B?bEVZR1JOWlI1RTZTZXd5Wmd5YjJBMWJ0OHZxZHRERFFhU3Y1RlcwaTgxa3pi?=
 =?utf-8?B?VGVoNlFDYXBocXUwMHV6WmwrYjh4OUxoZFZ5VCtkTlZHNUJwT0Fjb3Fra1Zx?=
 =?utf-8?B?c0RObGtJdnc3OXpndm5rdFgvZ1ZjczR6d083NE5UL3dZYTA3UjlEc3daU2Er?=
 =?utf-8?B?MUp0SzQ1cDIwQ01UR2lKN3VGVTJzU2Q1amlybEp1QVBETGplL2FUbTUyU3ll?=
 =?utf-8?B?cnY2ZUZnYlBzNkNKUzhZWmJaQm9zOW5GQlZoc251VmdNYTdvVitaTjkwSjZT?=
 =?utf-8?B?RS9mWlNQUnpleXlOb0UvVW1NdjVFam5aTjZodWl1UXRyNmxkY2ZnUENqME9N?=
 =?utf-8?B?b2xaSzhZRkM1ZlJKK2J2SHJCSngxWVhydlRwN3NrTEFqVjR5azNsTGhXY09q?=
 =?utf-8?B?Q3cvOFhZUTlWTWlGbnJjaG55aURCRU04WFF1TGRBdHJDNzY3cVNBU1FBZFc5?=
 =?utf-8?B?S21leTJ4V3o1TlJxbjdVYitvK1pFK0tjSWlPK2NubE1LUkkzYVlRekxPTFlr?=
 =?utf-8?B?NlN3K2xMOWo0WkV5SVM1TG9IN1hpcTVPTDlmZTlHdXpENHFKMk9YTmJpakhP?=
 =?utf-8?B?Mzc5UExRYXdjVU03NDBZQXFtanNKdDY0dlF0dzV3NkZ3ZmxISGNSbTFJd3Yw?=
 =?utf-8?B?N21JUDhaeWZoRXkybXQ5d0l2ZHg2bG1JZEhMZGJ3bTJ6bnBCOTUySG5hM0tO?=
 =?utf-8?B?VXVsUmtvVEwwNUQ1U3FDUStSWFZkU1pDT2ZZbDI3NTN2eUE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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 Nov 2024 16:30:56.8919
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 298d0a4b-5287-4908-64cb-08dd0012b900
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003446.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8697

On 2024-11-08 09:12, Andrew Cooper wrote:
> Work to rebase the Trenchboot patch series has encountered:
> 
>    In file included from ./arch/x86/include/asm/tpm.h:4,
>                     from arch/x86/boot/../tpm.c:23:
>    ./arch/x86/include/asm/bootinfo.h:88:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'next_boot_module_index'
>       88 | static inline unsigned int __init next_boot_module_index(
>          |
> 
> Fix this by including the necessary header.
> 
> Fixes: 74af2d98276d ("x86/boot: eliminate module_map")
> Reported-by: Krystian Hebel <krystian.hebel@3mdeb.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 18:12:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 18:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832747.1248026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9TSh-0003xj-Bh; Fri, 08 Nov 2024 18:11:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832747.1248026; Fri, 08 Nov 2024 18:11: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 1t9TSh-0003xc-7l; Fri, 08 Nov 2024 18:11:59 +0000
Received: by outflank-mailman (input) for mailman id 832747;
 Fri, 08 Nov 2024 18:11: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=pHpy=SD=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t9TSf-0003xV-2O
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 18:11:57 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id edb6a023-9dfc-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 19:11:53 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173108950565775.16323100540728;
 Fri, 8 Nov 2024 10:11: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: edb6a023-9dfc-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVkYjZhMDIzLTlkZmMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDg5NTEzLjYyMTAxMiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731089507; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=KMT4sawYA+b39pOu2UPWfQ50MCSAyf4UQcYnpTd4k3ZiyFi8VJ7nGfF//uCdynbA3vsTLRM+P1C1t/DvfnASMcUsnUiJK4xTyrcEJMKcvDFBZXX/+4zLLInXgynMWBWA34fsAKOxPXAFwjgEfHuU8NvM7f/5DP1QB1qQ0riYiVw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731089507; 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=WTRvt10S0XSQbGAcLZDMZCSbdE1ek9NvEvcIu4QFdEc=; 
	b=jgFSrtE6rWBUl2E4Wc/DckCc8tTKuMNZzNnPYJ8XxXiDClZngDiJ61vjkjayvoDYLTdJe5bBVJ5ZmDyABf77mwkofMb53wqhFwJ4wCIODkZJPHo6iVkqx7NdX6+ZfpdDj7jXOcRhi7G7sIyvxG9TjULFotI8EYPDt+fiJkrmYVc=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731089507;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=WTRvt10S0XSQbGAcLZDMZCSbdE1ek9NvEvcIu4QFdEc=;
	b=DqCOL7i79CZIBT/Mld+1GK4/M+m575DEU9WoT5mw3kln6ZGxCEtg1bCwZXosRDgk
	82qB0iUnKRBh4OqqYA1sf6NGvSpFWjlcnurgast1bFKnFMmREDpM6e+Q9ZMznPXcLjY
	r9xO7nzfptpoqx0nA/N9KfYXEb6yAYMTqSxj2bEo=
Message-ID: <badb64f3-6c51-4f81-969d-14843513def5@apertussolutions.com>
Date: Fri, 8 Nov 2024 13:11:44 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix bootinfo.h to be standalone
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Krystian Hebel <krystian.hebel@3mdeb.com>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241108141210.298063-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241108141210.298063-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/8/24 09:12, Andrew Cooper wrote:
> Work to rebase the Trenchboot patch series has encountered:
> 
>    In file included from ./arch/x86/include/asm/tpm.h:4,
>                     from arch/x86/boot/../tpm.c:23:
>    ./arch/x86/include/asm/bootinfo.h:88:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'next_boot_module_index'
>       88 | static inline unsigned int __init next_boot_module_index(
>          |
> 
> Fix this by including the necessary header.
> 
> Fixes: 74af2d98276d ("x86/boot: eliminate module_map")
> Reported-by: Krystian Hebel <krystian.hebel@3mdeb.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: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Krystian Hebel <krystian.hebel@3mdeb.com>
> ---

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:17:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:17:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832754.1248035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9UTr-0002iY-Vz; Fri, 08 Nov 2024 19:17:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832754.1248035; Fri, 08 Nov 2024 19:17: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 1t9UTr-0002iR-TO; Fri, 08 Nov 2024 19:17:15 +0000
Received: by outflank-mailman (input) for mailman id 832754;
 Fri, 08 Nov 2024 19:17: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=pHpy=SD=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t9UTr-0002iL-2U
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:17:15 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cb69c28-9e06-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 20:17:10 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731093423192378.14653418271905;
 Fri, 8 Nov 2024 11:17: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: 0cb69c28-9e06-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBjYjY5YzI4LTllMDYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDkzNDMxLjI2NjExNSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731093425; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=agnQ0oDddt9aBNoa0bze98B9Hip9khjxsv3eXmSsGpm5jBBjVpS6oXcYYSueQXT6BjryxVPisLKwA243+dXEWV4UzWNieOxmWo/SFO1RKHUA7tWFFzvK6Z7fIpTGtRj7p6ro6I2IonGlEVT5hO6kGUIU9DowewhMrZYxGmhH5OU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731093425; 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=hxcI88TddtcriTmuRuynGcVOBVd9+DzofvoZH7mEp0E=; 
	b=Ef3gLXHc+xXsb/cSRUQ964Jb7t2uX12QUaZ/vjS0obqEKiJEryymNNKxwP0xhFAY1FSTtW7TdkNrlUafBuwOAEccG7UoIw0knttMfRuS6lHv+GkZ9DAuXkBOAbSrVedcUuGrsWcrS2NoWIQNYqwWV2lZdeLOz8bWNcA1KdYnpxo=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731093425;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=hxcI88TddtcriTmuRuynGcVOBVd9+DzofvoZH7mEp0E=;
	b=foiUIAPcbnqIBoK4bSipyn/R2buFaMnSXqilVJN9u0uuXs7DMX59YcD9qtLXb4nx
	UvQGka71HvCL1FCh9HWZYijhIlkYVg8mMV2F2EWso9wqXdA94acgMFpbC1KYkBclimA
	I5+A+RrUDPBLw4ATISNFFP4IUtf9dnXTQVv7Bpjc=
Message-ID: <c8d690f9-a357-44de-a6e5-4bbab4256c51@apertussolutions.com>
Date: Fri, 8 Nov 2024 14:17:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/12] x86/boot: add start and size fields to struct
 boot_module
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-10-dpsmith@apertussolutions.com>
 <bd4fa542-7e05-463d-99d7-b5c57781a56e@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <bd4fa542-7e05-463d-99d7-b5c57781a56e@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/7/24 15:47, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> Introduce the start and size fields to struct boot_module and
>> assigns their value during boot_info construction. All uses of 
>> module_t to get
>> the address and size of a module are replaced with start and size.
>>
>> The EFI entry point is a special case, as the EFI file loading boot 
>> service may
>> load a file beyond the 4G barrier. As a result, to make the address 
>> fit in the
>> 32bit integer used by the MB1 module_t structure, the frame number is 
>> stored in
>> mod_start and size in mod_end. Until the EFI entry point is 
>> enlightened to work
>> with boot_info and boot_module, multiboot_fill_boot_info will handle the
>> alternate values in mod_start and mod_end when EFI is detected.
>>
>> A result of the switch to start/size removes all uses of the mod field in
>> struct boot_modules, along with the uses of bootstra_map() and 
>> release_module()
>> functions. With all usage gone, they all are dropped here.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> -- 
>> Changes since v7:
>> - add the start/size change to bootstrap_map_bm()
>> - convert all BM start/size when introduced, consolidates:
>> Â Â Â Â  x86/boot: populate boot module for xen entry
>> Â Â Â Â  x86/boot: transition relocation calculations to struct boot_module
>> - consolidates all the removal commits
>>
>> Changes since v6:
>> - put the efi conversion for mod_start and mod_end back along with check
>> - dropped unnecessary cast
>> - updated the population of start and size fields to take into account 
>> efi
>>
>> Changes since v5:
>> - switched EFI population of mod_start/mod_end to addresses
>>
>> a#Â Â Â  edit 336ac1fc0019 x86/boot: introduce boot domain
>> ---
> 
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index d9785acf89b6..18b93d6a272a 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -313,13 +313,29 @@ static struct boot_info *__init 
>> multiboot_fill_boot_info(
>> Â Â Â Â Â Â  */
>> Â Â Â Â Â  for ( i = 0; i < MAX_NR_BOOTMODS && i < bi->nr_modules; i++ )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  bi->mods[i].mod = &mods[i];
>> -
>> Â Â Â Â Â Â Â Â Â  bi->mods[i].cmdline_pa = mods[i].string;
>> +
>> +Â Â Â Â Â Â Â  if ( !efi_enabled(EFI_LOADER) )
>> +Â Â Â Â Â Â Â  {
>> +Â Â Â Â Â Â Â Â Â Â Â  /*
>> +Â Â Â Â Â Â Â Â Â Â Â Â  * The EFI loader gives us modules which are already 
>> frame/size.
>> +Â Â Â Â Â Â Â Â Â Â Â Â  * Switch back to address/size.
>> +Â Â Â Â Â Â Â Â Â Â Â Â  */
> 
> This comment...
> 
>> +Â Â Â Â Â Â Â Â Â Â Â  bi->mods[i].start = mods[i].mod_start;
>> +Â Â Â Â Â Â Â Â Â Â Â  bi->mods[i].size = mods[i].mod_end - mods[i].mod_start;
>> +Â Â Â Â Â Â Â  }
>> +Â Â Â Â Â Â Â  else
>> +Â Â Â Â Â Â Â  {
>> +Â Â Â Â Â Â Â Â Â Â Â  /*
>> +Â Â Â Â Â Â Â Â Â Â Â Â  * PVH and BIOS loaders give us modules which are start/end.
>> +Â Â Â Â Â Â Â Â Â Â Â Â  * Switch to address/size.
>> +Â Â Â Â Â Â Â Â Â Â Â Â  */
> 
> And this comment are reversed?Â  But I would just use positive logic:
> 
> if ( efi_enabled(EFI_LOADER) )
>  Â Â  /* EFI case */
> else
>  Â Â  /* non-EFI */

Ack.

>> +Â Â Â Â Â Â Â Â Â Â Â  bi->mods[i].start = pfn_to_paddr(mods[i].mod_start);
>> +Â Â Â Â Â Â Â Â Â Â Â  bi->mods[i].size = mods[i].mod_end;
>> +Â Â Â Â Â Â Â  }
>> Â Â Â Â Â  }
>> Â Â Â Â Â  /* Variable 'i' should be one entry past the last module. */
>> -Â Â Â  bi->mods[i].mod = &mods[bi->nr_modules];
>> Â Â Â Â Â  bi->mods[i].type = BOOTMOD_XEN;
>> Â Â Â Â Â  return bi;
>> @@ -335,8 +351,8 @@ unsigned long __init 
>> initial_images_nrpages(nodeid_t node)
>> Â Â Â Â Â  for ( nr = i = 0; i < bi->nr_modules; ++i )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  unsigned long start = bi->mods[i].mod->mod_start;
>> -Â Â Â Â Â Â Â  unsigned long endÂ Â  = start + PFN_UP(bi->mods[i].mod->mod_end);
>> +Â Â Â Â Â Â Â  unsigned long start = bi->mods[i].start;
> 
> This should be paddr_to_pfn(bi->mods[i].start)?

Yes, and honestly probably a bad names for the vars as start/end tends 
to refer to addresses while pages usually have mfn/pfn in their name. 
The question is the churn from variable name not desired.

>> +Â Â Â Â Â Â Â  unsigned long endÂ Â  = start + PFN_UP(bi->mods[i].size);
>> Â Â Â Â Â Â Â Â Â  if ( end > node_start && node_end > start )
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  nr += min(node_end, end) - max(node_start, start);
> 
>> @@ -1745,13 +1733,11 @@ void asmlinkage __init noreturn __start_xen(void)
>> Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  const struct boot_module *bm = &bi->mods[i];
>> +Â Â Â Â Â Â Â  unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
>> -Â Â Â Â Â Â Â  set_pdx_range(bm->mod->mod_start,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->mod->mod_start + PFN_UP(bm->mod->mod_end));
>> -Â Â Â Â Â Â Â  map_pages_to_xen((unsigned long)mfn_to_virt(bm->mod->mod_start),
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  _mfn(bm->mod->mod_start),
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  PFN_UP(bm->mod->mod_end), PAGE_HYPERVISOR);
>> +Â Â Â Â Â Â Â  set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s) + PFN_UP(l));
> 
> This is fine today since s (.start) is checked for page alignment.Â  The 
> other option would be `paddr_to_pfn(s + l) + 1`, but I'm not sure that 
> is an improvement.

Out of curiosity, why are you thinking that module start would never be 
paged aligned?

> You don't have to change anything.Â  Just noting something I noticed.

Ack.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:20:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832761.1248046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9UX5-0004C0-Dy; Fri, 08 Nov 2024 19:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832761.1248046; Fri, 08 Nov 2024 19: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 1t9UX5-0004Bt-Ax; Fri, 08 Nov 2024 19:20:35 +0000
Received: by outflank-mailman (input) for mailman id 832761;
 Fri, 08 Nov 2024 19:20: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=pHpy=SD=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t9UX3-0004Bn-Vd
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:20:33 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82dd2cb1-9e06-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:20:28 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731093620805707.5870524094822;
 Fri, 8 Nov 2024 11:20: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: 82dd2cb1-9e06-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgyZGQyY2IxLTllMDYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDkzNjI5LjI4NTYyNiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731093624; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=MzslziarQb9QrX6gxokLde2b+vAS4Lv0YD7IIxg5VER9iCYBV1nZQZXpS4Lqyb3p/UKt8X0ojI3Lwpyv+LS2PLMw8y2IjmFIpr8FvfoyzrmtuJdd50vDz9Hszm0zuFs4iL6t34Myq25+6rVH8wG1qnXfGLUGlJMM7rWhrH89gbg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731093624; 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=3SwoarSDdh+gZemX9amQd8J1gBrNVFneYdXOGW7iHo0=; 
	b=h7cpdBGb2jIfYo2BOheRKmfO6Cl/UCCxazSRoIZT1k7G1JzWI3c8J7ZWn/siQa9unk/wUGCQhXECTzdkmhhYYFv1tFMqjEOgf8CG4+tHg/bt9+kY5B/CJdIXMYvxBC6VqZzqamZj2NW27uwF5J4Ko72sJrjvcDvnQqa+cU0aDEs=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731093624;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=3SwoarSDdh+gZemX9amQd8J1gBrNVFneYdXOGW7iHo0=;
	b=a1BDn47l7aertUJBg2asfCLMlVKPTKa6NiYzUGilgcN6eO5WEvivI/+QJthHFzPK
	yrRjNl683UfGlcXfbJN8eikjGp2otwOQSLOpO6yXnWkxHpt6KeB/EjmujExDQVxOysH
	92pmbc2u4j6lbKAFpcA2jl0aRx8xTbAJ39VKESiI=
Message-ID: <0768fe0b-7e17-47ef-aa3e-8c8468792bef@apertussolutions.com>
Date: Fri, 8 Nov 2024 14:20:19 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] x86/boot: introduce boot domain
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-11-dpsmith@apertussolutions.com>
 <eb450574-071e-48f5-aab2-0af469b909e1@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <eb450574-071e-48f5-aab2-0af469b909e1@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/7/24 15:58, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> To begin moving toward allowing the hypervisor to construct more than one
>> domain at boot, a container is needed for a domain's build information.
>> Introduce a new header, <xen/asm/bootdomain.h>, that contains the initial
>> struct boot_domain that encapsulate the build information for a domain.
>>
>> Add a kernel and ramdisk boot module reference along with a struct domain
>> reference to the new struct boot_domain. This allows a struct boot_domain
>> reference to be the only parameter necessary to pass down through the 
>> domain
>> construction call chain.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v7
>> - collapsed the incremental changes to the call chain into this commit
>> ---
> 
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 18b93d6a272a..6e25a9f726c7 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
> 
>> @@ -1026,11 +1019,11 @@ static struct domain *__init 
>> create_dom0(struct boot_info *bi)
>> Â Â Â Â Â Â Â Â Â  panic("Error creating d%uv0\n", domid);
>> Â Â Â Â Â  /* Grab the DOM0 command line. */
>> -Â Â Â  if ( image->cmdline_pa || bi->kextra )
>> +Â Â Â  if ( bd->kernel->cmdline_pa || bi->kextra )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  if ( image->cmdline_pa )
>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcpy(
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cmdline, cmdline_cook(__va(image->cmdline_pa), bi- 
>> >loader));
>> +Â Â Â Â Â Â Â  if ( bd->kernel->cmdline_pa )
>> +Â Â Â Â Â Â Â Â Â Â Â  safe_strcpy(cmdline, cmdline_cook(__va(bd->kernel- 
>> >cmdline_pa),
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bi->loader));
> 
> I'd indent bi->loader so it lines up with __va, since bi->loader is the 
> second argument to cmdline_cook().

Ack.

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

Thanks,

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832775.1248078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7s-0000Qt-61; Fri, 08 Nov 2024 19:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832775.1248078; Fri, 08 Nov 2024 19:58: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 1t9V7r-0000Ov-Rg; Fri, 08 Nov 2024 19:58:35 +0000
Received: by outflank-mailman (input) for mailman id 832775;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7q-0008TY-Kh
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:34 +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 d3fe9871-9e0b-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:58:31 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9a6acac4c3so398705466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:31 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d3fe9871-9e0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzZmU5ODcxLTllMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk1OTExLjIxNjg2OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095910; x=1731700710; 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=8ANEYUxwjZbcuyDzK95iBxFnfD77BA80c4Ql6FKNyVY=;
        b=BzHdf4eau3mQ9MSmW+wGMIKnt/j/G8pRH8M0nzA4Ax0jiAuJH01aNrn38dElxJANyf
         x6d6pZKLauaBKloOatjT8Fsi7iiIrKrzYx0cpo848G8Fc6l6MWKjRlkTHjuO8PlPEBN2
         BGPYueM7q7QcdpZvHw1UiFCPU1niCAmw/KGWw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095910; x=1731700710;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=8ANEYUxwjZbcuyDzK95iBxFnfD77BA80c4Ql6FKNyVY=;
        b=cNGrbLLHq/lAwSVylnpjP3qEMmpkhW3Cy7hgfoCA0DiCcqWna8xvb7K48oTJxSrbQG
         ogmjPk/NWebNwQmicKdC36/0TdiOyVfKkrXjMcamCj24cg6R4pIydoNswdaaR6qx0AHx
         /0NTf5o5iPrj5IakPSikMt+83q/0Me05IRTuEqX6ZsJ3aJzocPNBnCVlGKFEaPrkXRpq
         Hh6l2QIymDro6oS5kIMvlhwLa77dsMcwWDqdYAUHg3OBvVE/WFNkBgvDaJR3WIxZEIkE
         ZL1+7l2bFSdN2k6jDbsb6wg1k0buAm9R4S0t1HBiFXmWjkAKx5vbEjpStmOM/Wr0PzAf
         Yhng==
X-Gm-Message-State: AOJu0Yz1a7MaXmjRRmWpbQ6EBOKLhoTTlx845bnT+uWEq/Q38ykSE0es
	86CHYSsJYiiG4KLlk1zxEsFR/sumFWhtTjrc8WtelQBxjq7pye6Rvq2FAxRGWhUY5qxZ0do8Ov4
	/
X-Google-Smtp-Source: AGHT+IFvX9tGeHDVwmSP4Z5fuOX3wsaPvxwmr8qKx24X2101fA9FQ0Q9PeAvSGbtqqCLnc23lSzhVw==
X-Received: by 2002:a17:907:2da7:b0:a9e:edcf:b7c8 with SMTP id a640c23a62f3a-a9eeffd8f7cmr397363166b.44.1731095910024;
        Fri, 08 Nov 2024 11:58:30 -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 03/10] x86/mach-apic: Move generic_*_probe() declarations into genapic.h
Date: Fri,  8 Nov 2024 19:58:13 +0000
Message-Id: <20241108195820.789716-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... as the implementations are in genapic/probe.c

This covers the only functions that both setup.c and boot.c were including
mach_apic.h for, although setup.c was depending on io_apic.h transitively too.

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/acpi/boot.c                          | 2 +-
 xen/arch/x86/include/asm/genapic.h                | 3 +++
 xen/arch/x86/include/asm/mach-generic/mach_apic.h | 3 ---
 xen/arch/x86/setup.c                              | 3 ++-
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 170f9783c55e..3901f9d9825b 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -38,7 +38,7 @@
 #include <asm/mpspec.h>
 #include <asm/processor.h>
 #include <asm/hpet.h> /* for hpet_address */
-#include <mach_apic.h>
+#include <asm/genapic.h>
 
 #define PREFIX			"ACPI: "
 
diff --git a/xen/arch/x86/include/asm/genapic.h b/xen/arch/x86/include/asm/genapic.h
index 4d39fb9a244b..6c8845d17d27 100644
--- a/xen/arch/x86/include/asm/genapic.h
+++ b/xen/arch/x86/include/asm/genapic.h
@@ -51,4 +51,7 @@ unsigned int cf_check cpu_mask_to_apicid_phys(const cpumask_t *cpumask);
 void cf_check send_IPI_mask_phys(const cpumask_t *mask, int vector);
 const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu);
 
+void generic_apic_probe(void);
+void generic_bigsmp_probe(void);
+
 #endif
diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
index c0d8b232c9eb..50f39b72ccfb 100644
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -39,9 +39,6 @@ static inline int multi_timer_check(int apic, int irq)
 	return 0;
 }
 
-extern void generic_apic_probe(void);
-extern void generic_bigsmp_probe(void);
-
 /*
  * The following functions based around phys_cpu_present_map are disabled in
  * some i386 Linux subarchitectures, and in x86_64 'cluster' genapic mode. I'm
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index eac8488c4ca5..4feef9f2e05a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -46,7 +46,8 @@
 #include <xsm/xsm.h>
 #include <asm/tboot.h>
 #include <asm/bzimage.h> /* for bzimage_headroom */
-#include <asm/mach-generic/mach_apic.h> /* for generic_apic_probe */
+#include <asm/genapic.h>
+#include <asm/io_apic.h>
 #include <asm/setup.h>
 #include <xen/cpu.h>
 #include <xen/cpuidle.h>
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832776.1248084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7s-0000VH-Cu; Fri, 08 Nov 2024 19:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832776.1248084; Fri, 08 Nov 2024 19:58: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 1t9V7s-0000UQ-5J; Fri, 08 Nov 2024 19:58:36 +0000
Received: by outflank-mailman (input) for mailman id 832776;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7r-0008TS-Bi
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:35 +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 d53e1047-9e0b-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 20:58:33 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a9a4031f69fso417234366b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:33 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d53e1047-9e0b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ1M2UxMDQ3LTllMGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk1OTEzLjI3OTA3MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095912; x=1731700712; 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=AL3v6pBQgxthivHZltyBUNUpaHsfqdVQAfCymchp+Ls=;
        b=GPeGSjLNbMmKBkXbP3vf2ejXol5CH9kq7AXzreEtaCzeRvz4QOB4X4UZmyKMuztSzv
         gHadao1wWAiT/gcvmOsoNnPJHbbNAzo8fwcgQZlp6E5nrVzDPuVwW4eAKAjby7eW1eoQ
         E1v/8hYM2XfeUFHwZ1S8TxPdbHfeDJ1XiA39E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095912; x=1731700712;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AL3v6pBQgxthivHZltyBUNUpaHsfqdVQAfCymchp+Ls=;
        b=dLTPYz8Geu+Rpet6y9D6djQ3qaJU9HeSuYmGMRwVFz+xHFA4KvbVdxtwkKvMuYU7zN
         fqQG8rrCcRl1TeY78hT0Q0m4qnGzTGunaCrc9sLH3bxFUn0t6y7ZtK7s7jRrzs1vSCSD
         g11GbeDYT2cZn2rbkFhEn9A8dac4Yr8yetOWPuwWn/cZd/NBP0MmM0lh++KU2QCiQQTW
         4EE0ufr9TepZGev5UU1iF814h32Alvf7+8QoIJeimlKrYWeFfzK8wst+6WMm+3IBPuxn
         RlOwrXZtGWssU7c9useGwPk77bIjxW2CJdrdMN+JHqXPY1lao24aaCtkhwoBQ+74LDKo
         uprA==
X-Gm-Message-State: AOJu0YxxniZZSwL+EMFG6A6sT0zcPm1HPM+uMQ6IZD2YQhSAZwCD3Oox
	WQ6PH9eG3zVYZlkQhUeLbuJv9T4FHKT2agZNq2R+pBCub0HpFaBhfhB04GERYd0Cb9GkiwwIzFw
	m
X-Google-Smtp-Source: AGHT+IHbxuNfLi3G8lUvZ+uWqI+pNZ9bkTPQHxt/iYne9UQjXwO0hWdMlmtUs9MHI5xVGNOJP9kFww==
X-Received: by 2002:a17:906:c112:b0:a99:f4fd:31c8 with SMTP id a640c23a62f3a-a9eeff0e9b4mr368661666b.22.1731095912116;
        Fri, 08 Nov 2024 11:58: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 05/10] x86/mach-apic: Drop ioapic_phys_id_map()
Date: Fri,  8 Nov 2024 19:58:15 +0000
Message-Id: <20241108195820.789716-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's an unnecessary wrapper.

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/mach-generic/mach_apic.h | 5 -----
 xen/arch/x86/io_apic.c                            | 4 ++--
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
index 3cf58d5f6b90..b3e9ea6600ef 100644
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -45,11 +45,6 @@ static inline int multi_timer_check(int apic, int irq)
  * really not sure why, since all local APICs should have distinct physical
  * IDs, and we need to know what they are.
  */
-static inline void ioapic_phys_id_map(physid_mask_t *map)
-{
-	*map = phys_cpu_present_map;
-}
-
 static inline int check_apicid_used(const physid_mask_t *map, int apicid)
 {
 	return physid_isset(apicid, *map);
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 11b74d3eaf8a..0123edab649b 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1491,7 +1491,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
      * This is broken; anything with a real cpu count has to
      * circumvent this idiocy regardless.
      */
-    ioapic_phys_id_map(&phys_id_present_map);
+    phys_id_present_map = phys_cpu_present_map;
 
     /*
      * Set the IOAPIC ID to the value stored in the MPC table.
@@ -2237,7 +2237,7 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
      */
 
     if (physids_empty(apic_id_map))
-        ioapic_phys_id_map(&apic_id_map);
+        apic_id_map = phys_cpu_present_map;
 
     spin_lock_irqsave(&ioapic_lock, flags);
     reg_00.raw = io_apic_read(ioapic, 0);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832777.1248105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7t-0001Aq-VC; Fri, 08 Nov 2024 19:58:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832777.1248105; Fri, 08 Nov 2024 19:58: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 1t9V7t-0001A2-Oo; Fri, 08 Nov 2024 19:58:37 +0000
Received: by outflank-mailman (input) for mailman id 832777;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7r-0008TY-OG
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:35 +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 d4f1db93-9e0b-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:58:32 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a99eb8b607aso355544466b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:32 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d4f1db93-9e0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ0ZjFkYjkzLTllMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk1OTEyLjgwNjY3NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095911; x=1731700711; 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=A+Sj7fLqtLlYMTst58VusJVJ11oM18S4VDVx3DGpYgc=;
        b=cnmim8IgrX77bUd4N651Ed0MK7wWhtsWdadquSMzsih38NmdHU6S3niflAwgrYSp+j
         nHRaIbghcFa4AmpkI1GIvNYMu4hOw90lTxJB6ejtJ9LjDgD16yw1zHsDCu88OuvvPUUr
         /tKpcvEGxzCxRzkFYHqmLp0iYhUQ7pr3v53TE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095911; x=1731700711;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=A+Sj7fLqtLlYMTst58VusJVJ11oM18S4VDVx3DGpYgc=;
        b=KEpbMIEa5Hsxemr6IN9uMc647la0LQ8qAMoT8q92dd6lUep0hUGbDx6qyypmomeEk8
         BgJoi7eEc6tgYZrTd7bOQCWp7R6CpE43gsld23IsdNypy0EyltJq1SL8lRNJXQej7ZGA
         bHF9K/CN994Tp4wEh4U+rgbyddTS3S47dwxfDcmjMP6ZZwb115GiyymlabufGP3QIzUv
         JD5x/JWsMcQ0sEPu3pwa45fHu6Ue/0wzejLfYnCaJ68v9ovcuKMG0wczCTfwSO21qsIa
         q+fTvFdqFuL6DJxFa1ImT/MyKei4Ae67swbg32C6bBOT/3ur8AFOx4sew9ft6OJbKzNu
         uLsA==
X-Gm-Message-State: AOJu0YzrsSNBKeElfNFxFOt+k/D5pkSNKcTt8EiR5MtgxnFwdfo1jfEm
	pSSe4ZrmYmdhqGQ0PSZAIvSlM5mDcbFViHpQggWftdl71jN/Bfef1tUVU5p29kvPcyFS9b4DbUc
	C
X-Google-Smtp-Source: AGHT+IEN4P6UyfNPOw3vCYe1Veh/DK4NTalWMNlzUMfZW1t3VfRK37PAGzQr1hTa51LcRzqaABQFtQ==
X-Received: by 2002:a17:907:7f1f:b0:a9a:9ab:6233 with SMTP id a640c23a62f3a-a9eeff44cfcmr446772166b.34.1731095911424;
        Fri, 08 Nov 2024 11:58: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 04/10] x86/mach-apic: Drop apic_id_registered()
Date: Fri,  8 Nov 2024 19:58:14 +0000
Message-Id: <20241108195820.789716-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's an unnecessary wrapper.

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/apic.c                               | 3 +--
 xen/arch/x86/include/asm/mach-generic/mach_apic.h | 6 ------
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 254ab5d388dc..9f3a374e9581 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -495,8 +495,7 @@ void setup_local_APIC(bool bsp)
     /*
      * Double-check whether this APIC is really registered.
      */
-    if (!apic_id_registered())
-        BUG();
+    BUG_ON(!physid_isset(get_apic_id(), phys_cpu_present_map));
 
     /*
      * Intel recommends to set DFR, LDR and TPR before enabling
diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
index 50f39b72ccfb..3cf58d5f6b90 100644
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -45,12 +45,6 @@ static inline int multi_timer_check(int apic, int irq)
  * really not sure why, since all local APICs should have distinct physical
  * IDs, and we need to know what they are.
  */
-static inline int apic_id_registered(void)
-{
-	return physid_isset(get_apic_id(),
-			    phys_cpu_present_map);
-}
-
 static inline void ioapic_phys_id_map(physid_mask_t *map)
 {
 	*map = phys_cpu_present_map;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832778.1248110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7u-0001Fo-96; Fri, 08 Nov 2024 19:58:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832778.1248110; Fri, 08 Nov 2024 19:58: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 1t9V7u-0001Eq-3l; Fri, 08 Nov 2024 19:58:38 +0000
Received: by outflank-mailman (input) for mailman id 832778;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7t-0008TS-8a
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:37 +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 d636ca00-9e0b-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 20:58:35 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5c9c28c1ecbso3208806a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:34 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d636ca00-9e0b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ2MzZjYTAwLTllMGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk1OTE1LjAwNTc5NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095913; x=1731700713; 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=APtwUM4/DSKoYZ87C5Z8DIqnxYFMBxhhyq2sJc0n8KM=;
        b=d3p9iY8ymr6tzxXtKXIiy75Ez0+Qhpda3v/s2kflRh4rc9/ClPlzGXMPOvBmQxXmy3
         NJ8T3nddltonGgH4lE4ritEBgVEl3GarWSdAEyx/VKVqFvsU90bglkowbk3TssYOSIaD
         aKk3n/N9ZnXz4DtX7PaKkEtxhF3K4VBLfaUgo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095913; x=1731700713;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=APtwUM4/DSKoYZ87C5Z8DIqnxYFMBxhhyq2sJc0n8KM=;
        b=QOkrhgyh1C/W3mtKdZoQwYCGT0TmgbWitVCJ89Horgb5DGvMQou9Dxrbme3kzF4tm7
         3cZD4SgmCVOJAffcxOZtVOmwuRlGVOk+nVXtwKZjtE39L6Q2BcR4MrujJ5nx+iw5jBfS
         b6n6rJ7cEkO9aLeeW7hM5lrQlbjzjWszM7lZwnI5som0Dg9ciko4L8vKberj41/9Ix9q
         rnRHd9NfLj8VuiqabSLPcxDPMEkNMmQ6TOxw+53BzkNn/nO+jFMTEatapfoWqdDq/74o
         ok05hhtx1QjGYlGin/t1T9fYS9j837kxb6TfiSv1wWWCCttdOlzTgIz8ZlV/5fJNA3Te
         7QXQ==
X-Gm-Message-State: AOJu0YwsEpSb/59nJHrWzE4pkh1+Dk2OhStVkwIf4fosEL7tOnmkkLoi
	PZA0kNmbZuTXCkewbp1ctwkR+MIFGJwDw7DCvovoXcQOUOP9ElwgvvaBwsd6wHNN1ruHClYuYDh
	D
X-Google-Smtp-Source: AGHT+IFKGQL0b0X7k0u5px8jrCXQAxW6XKp1V2s6lzp7Hb41YROrnFFRf3etEXpuEfdEahMpEYcdJA==
X-Received: by 2002:a17:907:6d1c:b0:a99:e67a:d12d with SMTP id a640c23a62f3a-a9eeffd93aamr380686466b.48.1731095913550;
        Fri, 08 Nov 2024 11:58: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 06/10] x86/mach-apic: Drop check_apicid_used()
Date: Fri,  8 Nov 2024 19:58:16 +0000
Message-Id: <20241108195820.789716-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's an unnecessary wrapper, and is longer than the operation it wraps.

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/mach-generic/mach_apic.h | 5 -----
 xen/arch/x86/io_apic.c                            | 9 +++++----
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
index b3e9ea6600ef..c8e0637f4424 100644
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -45,11 +45,6 @@ static inline int multi_timer_check(int apic, int irq)
  * really not sure why, since all local APICs should have distinct physical
  * IDs, and we need to know what they are.
  */
-static inline int check_apicid_used(const physid_mask_t *map, int apicid)
-{
-	return physid_isset(apicid, *map);
-}
-
 static inline int check_apicid_present(int apicid)
 {
 	return physid_isset(apicid, phys_cpu_present_map);
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 0123edab649b..5a4d8597e07a 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1520,8 +1520,8 @@ static void __init setup_ioapic_ids_from_mpc(void)
          * system must have a unique ID or we get lots of nice
          * 'stuck on smp_invalidate_needed IPI wait' messages.
          */
-        if (check_apicid_used(&phys_id_present_map,
-                              mp_ioapics[apic].mpc_apicid)) {
+        if ( physid_isset(mp_ioapics[apic].mpc_apicid, phys_id_present_map) )
+        {
             printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n",
                    apic, mp_ioapics[apic].mpc_apicid);
             for (i = 0; i < get_physical_broadcast(); i++)
@@ -2253,10 +2253,11 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
      * Every APIC in a system must have a unique ID or we get lots of nice 
      * 'stuck on smp_invalidate_needed IPI wait' messages.
      */
-    if (check_apicid_used(&apic_id_map, apic_id)) {
+    if ( physid_isset(apic_id, apic_id_map) )
+    {
 
         for (i = 0; i < get_physical_broadcast(); i++) {
-            if (!check_apicid_used(&apic_id_map, i))
+            if ( !physid_isset(i, apic_id_map) )
                 break;
         }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832773.1248065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7r-0000Gt-DO; Fri, 08 Nov 2024 19:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832773.1248065; Fri, 08 Nov 2024 19:58: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 1t9V7r-0000Gm-AL; Fri, 08 Nov 2024 19:58:35 +0000
Received: by outflank-mailman (input) for mailman id 832773;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7p-0008TY-IY
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:33 +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 d1a38915-9e0b-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:58:27 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a99eb8b607aso355531366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:27 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d1a38915-9e0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQxYTM4OTE1LTllMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk1OTA3LjIzNzkxMSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095906; x=1731700706; 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=H7ABmwsC0seQ/uymT6fJjlpqSUyxVJgAD7hLpklJ4vs=;
        b=wBRx7zLI4aBt11w+8FvApbxTDTCLvO04JpTMhu69Mh5pzjyX8WLacpY/MxThDxWpHQ
         5UuQhoNRJi32qhVh7xhnmyWAgpDaiDXlKHm6jwJohFtb1302C0KZw+mLhSq530zW2UYy
         jFwTzcgVX6vflFxxUJ26ayWSngaeTW26RcukM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095906; x=1731700706;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=H7ABmwsC0seQ/uymT6fJjlpqSUyxVJgAD7hLpklJ4vs=;
        b=c3k3QRJUZsjjh+Il4J1UMGbqADwkpGqDAbFSYIiBkpP7uTHf2cMvCfaq6UvTNaDM30
         /toM54036zNKx57O0hW4PYzCztXIlV4e18Rlqd8E2oswSs8s6EeYjpyvxV7YyY4QqjPL
         M9oZMOHXn6zFN9Nai276kbUc08TG+IKg+i/PmWSSVLYh9TFyzFiE1G44H8H2zzvgQY7e
         +dVuNNhxs222DeQj0Z0lskYNl0evfs1zpngxOWDkZf7aRnWunIhaZr6ew/jLU20HnI0/
         1r+CDGcPPIzM1PD/3mwv4uqLfI8HL2ymIw3Floc0aALgR0e3501RMaWwUbrSWrhMioNX
         hwdg==
X-Gm-Message-State: AOJu0YxlkAHTgstK86uiYYnshOorUn95wOWOtygHGKqv2uAo7/fPaRi5
	lj1J2LKFRYl7+16wMtKAVxqn/qpO4ci43foIExMc9qMAoc28WoueNNv7Fwu8+26f6e9hkXfVE62
	W
X-Google-Smtp-Source: AGHT+IHxLv+VD8mNKKgEUG7HsVrFP4Y4VTq1POvzDlcQ7oyBQgLlIeXTyGG3Lp+W+blAjIFrC+DODA==
X-Received: by 2002:a17:907:3f97:b0:a99:d3f4:ff3b with SMTP id a640c23a62f3a-a9eeff4101emr353861066b.27.1731095906227;
        Fri, 08 Nov 2024 11:58: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 00/10] Untangle mach-generic/
Date: Fri,  8 Nov 2024 19:58:10 +0000
Message-Id: <20241108195820.789716-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

There's only one header file left.  More than half of it is totally useless,
and the rest has better places to live in the tree.

This lets us drop a compiler include path.

Andrew Cooper (10):
  VT-d: Drop includes of mach_apic.h
  x86: Drop includes of mach_apic.h
  x86/mach-apic: Move generic_*_probe() declarations into genapic.h
  x86/mach-apic: Drop apic_id_registered()
  x86/mach-apic: Drop ioapic_phys_id_map()
  x86/mach-apic: Drop check_apicid_used()
  x86/mach-apic: Drop check_apicid_present()
  x86/mach-apic: Drop set_apicid()
  x86/mach-apic: Move the genapic wrappers to genapic.h
  x86: Delete mach_apic.h

 xen/arch/x86/acpi/boot.c                      |  2 +-
 xen/arch/x86/apic.c                           |  7 +-
 xen/arch/x86/arch.mk                          |  1 -
 xen/arch/x86/cpu/common.c                     |  1 -
 xen/arch/x86/cpu/intel.c                      |  2 -
 xen/arch/x86/genapic/delivery.c               |  3 +-
 xen/arch/x86/hpet.c                           |  3 +-
 xen/arch/x86/include/asm/genapic.h            | 20 +++++
 .../x86/include/asm/mach-generic/mach_apic.h  | 77 -------------------
 xen/arch/x86/io_apic.c                        | 32 ++++----
 xen/arch/x86/irq.c                            |  6 +-
 xen/arch/x86/mpparse.c                        |  7 +-
 xen/arch/x86/msi.c                            |  6 +-
 xen/arch/x86/setup.c                          |  3 +-
 xen/arch/x86/smp.c                            |  4 +-
 xen/arch/x86/smpboot.c                        |  6 +-
 xen/arch/x86/x86_64/acpi_mmcfg.c              |  1 -
 xen/drivers/passthrough/vtd/iommu.c           |  5 +-
 xen/drivers/passthrough/vtd/quirks.c          |  4 +-
 19 files changed, 72 insertions(+), 118 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/mach-generic/mach_apic.h

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832774.1248071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7r-0000JY-Nk; Fri, 08 Nov 2024 19:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832774.1248071; Fri, 08 Nov 2024 19:58: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 1t9V7r-0000Id-HA; Fri, 08 Nov 2024 19:58:35 +0000
Received: by outflank-mailman (input) for mailman id 832774;
 Fri, 08 Nov 2024 19: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7p-0008TS-LG
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:33 +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 d3b31170-9e0b-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 20:58:30 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9ef275b980so182263366b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:30 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d3b31170-9e0b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzYjMxMTcwLTllMGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk1OTEwLjY5MTQ5Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095909; x=1731700709; 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=G+dFm0a0Fhh1qywKmm6kV9dHHbNP/gyGU4Edu50c+o8=;
        b=NDQv/yfhjL/mPnYvZESzX5bwfnOylZXbtS2WXzEHoXlElei9P85ky5cqIf+H06TxQ0
         lu38xFp4dZusDq3lz4bw+MDGpIg0/G345oDbMG+Bjl6E6Gb1lTUcLEnHJuZEIQZL5fZ6
         8+FDVkn39nqlnRH79qPbpDeFQqBPOYBUATUYY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095909; x=1731700709;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=G+dFm0a0Fhh1qywKmm6kV9dHHbNP/gyGU4Edu50c+o8=;
        b=MqNZmvSE1/Fg/gu3pWpQ7WjVxRU9XkNyQckRr0rM1YlLqfYeGPmC5ClhcLmivaro4D
         WKRBqRFwBaTZXCheHe6hYXaiPMm/yEt6SIW2F1a/sLIr7Nu5KtiazS+7pMUpg22N0VcK
         o8+aHEZ88y8Pok67W70RnhCOAozHs/R/gYM/pyQDVRVV5KYYeEyb1Tn/ss7n301xOXQX
         JTioPOXTRdqYLNbQKLUfmgXpMEdTln1G/Ccbz5Pfnc9dC7bKkF6qGWZs2yGgwUmyOrsb
         I2Rd2ukacpzNxRmU57sNfEPajNbUnb40vlQp8CJtubkKbrXFSZatoY6bAci+82c6AnCs
         WKtg==
X-Gm-Message-State: AOJu0YwDlOv2oAzd0Z5k/n+k4GOJ8C7l3AKUhaZLIs1v2hr6MqxrNCg1
	AxnSC6IUh+VDlGtAE8sAlSGJMYd7G709eQ3EpO8ckJr2nLi10WzN8ZqFECtZ+tJ5OXxOgOqgvRG
	W
X-Google-Smtp-Source: AGHT+IEOhqfnb4iyEIZTlMK8aPLGxI8ZmGPT7RBh1fXdTFrp3d4nBhxCGtT3Ce/bAkTP4y3ZJ54+5g==
X-Received: by 2002:a17:907:3e1d:b0:a99:f861:ebd with SMTP id a640c23a62f3a-a9eefeebe5amr408994766b.14.1731095909312;
        Fri, 08 Nov 2024 11:58:29 -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 02/10] x86: Drop includes of mach_apic.h
Date: Fri,  8 Nov 2024 19:58:12 +0000
Message-Id: <20241108195820.789716-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

A number of files don't need mach_apic.h at all, or only need transitive
dependenices.  Drop the includes.

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/common.c        | 1 -
 xen/arch/x86/cpu/intel.c         | 2 --
 xen/arch/x86/genapic/delivery.c  | 3 ++-
 xen/arch/x86/hpet.c              | 3 ++-
 xen/arch/x86/smp.c               | 4 +++-
 xen/arch/x86/x86_64/acpi_mmcfg.c | 1 -
 6 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index ff4cd2289797..067d855badf0 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -18,7 +18,6 @@
 #include <asm/random.h>
 #include <asm/setup.h>
 #include <asm/shstk.h>
-#include <mach_apic.h>
 #include <public/sysctl.h> /* for XEN_INVALID_{SOCKET,CORE}_ID */
 
 #include "cpu.h"
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 807b708217e9..6a7347968ba2 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -14,8 +14,6 @@
 #include <asm/i387.h>
 #include <asm/trampoline.h>
 
-#include <mach_apic.h>
-
 #include "cpu.h"
 
 /*
diff --git a/xen/arch/x86/genapic/delivery.c b/xen/arch/x86/genapic/delivery.c
index 3def78f380d3..7bb7bd658650 100644
--- a/xen/arch/x86/genapic/delivery.c
+++ b/xen/arch/x86/genapic/delivery.c
@@ -1,9 +1,10 @@
 #include <xen/irq.h>
 #include <xen/sched.h>
+
+#include <asm/apic.h>
 #include <asm/current.h>
 #include <asm/smp.h>
 #include <asm/hardirq.h>
-#include <mach_apic.h>
 
 /*
  * LOGICAL FLAT DELIVERY MODE (multicast via bitmask to <= 8 logical APIC IDs).
diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index 2f54d3188966..51ff7f12f5c0 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -13,11 +13,12 @@
 #include <xen/numa.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+
+#include <asm/apic.h>
 #include <asm/fixmap.h>
 #include <asm/div64.h>
 #include <asm/hpet.h>
 #include <asm/msi.h>
-#include <mach_apic.h>
 #include <xen/cpuidle.h>
 
 #define MAX_DELTA_NS MILLISECS(10*1000)
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 04c6a0572319..bd337e548c5a 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -14,7 +14,10 @@
 #include <xen/delay.h>
 #include <xen/perfc.h>
 #include <xen/spinlock.h>
+
+#include <asm/apic.h>
 #include <asm/current.h>
+#include <asm/genapic.h>
 #include <asm/guest.h>
 #include <asm/smp.h>
 #include <asm/mc146818rtc.h>
@@ -23,7 +26,6 @@
 #include <asm/hpet.h>
 #include <asm/setup.h>
 #include <irq_vectors.h>
-#include <mach_apic.h>
 
 /* Helper functions to prepare APIC register values. */
 static unsigned int prepare_ICR(unsigned int shortcut, int vector)
diff --git a/xen/arch/x86/x86_64/acpi_mmcfg.c b/xen/arch/x86/x86_64/acpi_mmcfg.c
index 7b0904622931..7fe5663c5984 100644
--- a/xen/arch/x86/x86_64/acpi_mmcfg.c
+++ b/xen/arch/x86/x86_64/acpi_mmcfg.c
@@ -37,7 +37,6 @@
 #include <asm/io.h>
 #include <asm/mpspec.h>
 #include <asm/processor.h>
-#include <mach_apic.h>
 
 #include "mmconfig.h"
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832772.1248055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7q-0008Tq-6U; Fri, 08 Nov 2024 19:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832772.1248055; Fri, 08 Nov 2024 19: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 1t9V7q-0008Tj-3g; Fri, 08 Nov 2024 19:58:34 +0000
Received: by outflank-mailman (input) for mailman id 832772;
 Fri, 08 Nov 2024 19: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7p-0008TS-1R
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:33 +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 d2629bec-9e0b-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 20:58:28 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a86e9db75b9so407484366b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:28 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d2629bec-9e0b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQyNjI5YmVjLTllMGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk1OTA4LjUwNDU4Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095907; x=1731700707; 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=bYie9AcBWI2S7AR0N11MSukBCPDyuxvyXWxJgl6q148=;
        b=Ce34HUJi51sY9h8GqrU1K0EhG99I1+zcKK5euEZUzoMHv6AJH/JvE/Q/cktReb9NXr
         N/gJ7ZpFL+iAqBK8DglC8yhoKk5EmWL+9/UjLKWO/WWPJ8rtZ5w8TSn5pcaMjYB2+uyY
         +6Igp8ARu3/Tisu0lbLSwKPf8uFXoNjcvAwP8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095907; x=1731700707;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=bYie9AcBWI2S7AR0N11MSukBCPDyuxvyXWxJgl6q148=;
        b=fK9EfM2Ue8Dtm06NW8UCezWIYknL8RBsQnu4oXWi/zhCi5X3OL1tTBBE80AEXdSK1i
         jd4kNGdHppqHsDdVhX24gMNVZbuwCJjS1ijxrKpgRQjjws4tLQD2k4ACCOR6QTD/Dlxk
         KVXXJS1zt8kTE1RNtGHXEXVBpUFW6JlhfuTmIjAkqm6qv5olb3T6gu0DkXsCl9jjZq0s
         C1sxZ6QyhSjq2UDVn59jWoeV9ieOGJmDqXSuQwdb5s8bJr8sWHR3oY+SDtDwKCg3qYvn
         qtVy5Jz21IPrdijGjwR4wDhxoIRgk7yJZgoJpVT3OpvRqoNzkbvDhUtYPHtGvYBcU4QW
         5tmA==
X-Gm-Message-State: AOJu0YwR3DqiC6nvrMy6hFktJnBOwbzfuLVLNIk2Dpz5rGZNSap+KzlB
	xDjn+oPfVcjZ/+IOvziEq5m3e52YQRBw0Af3OordR2sjfTyv1W2k/GfoyBr93JEEodLcEgnHUsm
	a
X-Google-Smtp-Source: AGHT+IFkwDRG0JuBnQUiz375sbx3PWclHmsV85IVLpeZpU/Z9XZFyOAYTDVEGQOuTd8OzCcEOvwLMw==
X-Received: by 2002:a17:906:f598:b0:a9a:20b4:4078 with SMTP id a640c23a62f3a-a9eeff0da70mr350698466b.16.1731095907494;
        Fri, 08 Nov 2024 11:58: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>
Subject: [PATCH 01/10] VT-d: Drop includes of mach_apic.h
Date: Fri,  8 Nov 2024 19:58:11 +0000
Message-Id: <20241108195820.789716-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Neither iommu.c nor quirks.c use any functionality.  iommu.c only uses it to
transitively include apic.h and io_apic.h, while quirks.c is only depending on
the ACLINUX wrapping of strtoul() which we spell simple_strtoul() everywhere
else in Xen.

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/drivers/passthrough/vtd/iommu.c  | 5 ++++-
 xen/drivers/passthrough/vtd/quirks.c | 4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index e13be244c130..27a4d1640189 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -31,12 +31,15 @@
 #include <xen/pci.h>
 #include <xen/pci_regs.h>
 #include <xen/keyhandler.h>
+
+#include <asm/apic.h>
+#include <asm/io_apic.h>
 #include <asm/msi.h>
 #include <asm/nops.h>
 #include <asm/irq.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/p2m.h>
-#include <mach_apic.h>
+
 #include "iommu.h"
 #include "dmar.h"
 #include "extern.h"
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 950dcd56ef8a..dc3dac749ce6 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -32,7 +32,7 @@
 #include <asm/msi.h>
 #include <asm/irq.h>
 #include <asm/pci.h>
-#include <mach_apic.h>
+
 #include "iommu.h"
 #include "dmar.h"
 #include "extern.h"
@@ -321,7 +321,7 @@ static int __init cf_check parse_snb_timeout(const char *s)
         else if ( strcmp(s, "cap") == 0 )
             t = SNB_IGD_TIMEOUT;
         else
-            t = strtoul(s, &q, 0);
+            t = simple_strtoul(s, &q, 0);
     }
     else
         t = t ? SNB_IGD_TIMEOUT_LEGACY : 0;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832779.1248126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7v-0001kk-W1; Fri, 08 Nov 2024 19:58:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832779.1248126; Fri, 08 Nov 2024 19:58: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 1t9V7v-0001k0-Qi; Fri, 08 Nov 2024 19:58:39 +0000
Received: by outflank-mailman (input) for mailman id 832779;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7u-0008TY-Jq
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:38 +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 d6820324-9e0b-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:58:35 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5c9c28c1ecbso3208821a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:35 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d6820324-9e0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ2ODIwMzI0LTllMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk1OTE1LjQ1MjczLCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095914; x=1731700714; 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=pYLPSJ4LnDxE4PBKWdzigEqbbkS/YUzGMHz1cObbzSM=;
        b=eBifqC7RNAJMGsWO7CQudZZviiY2nS6g/+7/m7BSi3Z5kzyjYf/oJ37ACQ5n465jCS
         2VUotdoAXM9/k/hVPjSN7uiKJYuN64arypaYXAkXZ/Xk8htrHU2YkX+KX4vikohYcd3D
         r8Ez2/D5Mz+jtIraj79Dya+qjjgjzvUjUE+4s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095914; x=1731700714;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=pYLPSJ4LnDxE4PBKWdzigEqbbkS/YUzGMHz1cObbzSM=;
        b=mRprT2knvG6XqjHca5W6s3/oS4xGw3RNYit1HXeCJ5hvJzTB+Du3IntSarZnOELpKk
         ckvh9+Hx8WBqX3Tyk9STrY2BmKwKRiy//OJQHV6G+QMZUZ25BjYMa4GESQNdcNupEqsO
         ZghUZRfvldJDkcEeammTI2IDsIJktHLNXHMDmPG5VWQVBuxpKKdB8+FGSFoDjGYiwAy6
         PxE1D4DILVYoA5oGf9jNcEp3J0lY4ybDQ/J3i6xA7CLWwTlbpLat925fgB2AOMCC7Azc
         zW3KxB0BjJJx880FdXwvGGuMB9OrSdFt4Q1e8LCpBBGZH1yoXLczcfdt1PyzDgemwAX9
         282Q==
X-Gm-Message-State: AOJu0YwJMgoTqM7B8nOYfSEFiINkpCLa7lqKqXFuU6Jw3HsualqcAMNz
	oAYfZu+r3Vu3QARHcqt3n8H3UnbcyYxVlAB3seXZU3LkQhKYnO60QrHzJsGO4pXKklH1YYOpejU
	u
X-Google-Smtp-Source: AGHT+IElLsSjvElF2qNR+EDaQMrF6EoirLU7rCR/THkONc3tstOEx2T9+EaQ1ce4ezkwyEMa0wfgnA==
X-Received: by 2002:a17:907:7b88:b0:a9e:441c:f74d with SMTP id a640c23a62f3a-a9eefee456bmr320848366b.16.1731095914232;
        Fri, 08 Nov 2024 11:58: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 07/10] x86/mach-apic: Drop check_apicid_present()
Date: Fri,  8 Nov 2024 19:58:17 +0000
Message-Id: <20241108195820.789716-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's an unnecessary wrapper.

It's also the only reason that smpboot.c includes mach_apic.h, other than for
transitive dependencies.

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/mach-generic/mach_apic.h | 5 -----
 xen/arch/x86/smpboot.c                            | 6 ++++--
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
index c8e0637f4424..7940c0234cb9 100644
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -45,11 +45,6 @@ static inline int multi_timer_check(int apic, int irq)
  * really not sure why, since all local APICs should have distinct physical
  * IDs, and we need to know what they are.
  */
-static inline int check_apicid_present(int apicid)
-{
-	return physid_isset(apicid, phys_cpu_present_map);
-}
-
 static inline void set_apicid(int phys_apicid, physid_mask_t *map)
 {
 	physid_set(phys_apicid, *map);
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 9e79c1a6d6e6..42272a9844fa 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -20,6 +20,9 @@
 #include <xen/serial.h>
 #include <xen/numa.h>
 #include <xen/cpu.h>
+
+#include <asm/apic.h>
+#include <asm/io_apic.h>
 #include <asm/cpuidle.h>
 #include <asm/current.h>
 #include <asm/mc146818rtc.h>
@@ -37,7 +40,6 @@
 #include <asm/tboot.h>
 #include <asm/trampoline.h>
 #include <irq_vectors.h>
-#include <mach_apic.h>
 
 unsigned long __read_mostly trampoline_phys;
 enum ap_boot_method __read_mostly ap_boot_method = AP_BOOT_NORMAL;
@@ -1193,7 +1195,7 @@ void __init smp_prepare_cpus(void)
      * CPU too, but we do it for the sake of robustness anyway.
      * Makes no sense to do this check in clustered apic mode, so skip it
      */
-    if ( !check_apicid_present(boot_cpu_physical_apicid) )
+    if ( !physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map) )
     {
         printk("weird, boot CPU (#%d) not listed by the BIOS.\n",
                boot_cpu_physical_apicid);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832780.1248136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7y-00027w-8N; Fri, 08 Nov 2024 19:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832780.1248136; Fri, 08 Nov 2024 19:58: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 1t9V7y-00027h-4N; Fri, 08 Nov 2024 19:58:42 +0000
Received: by outflank-mailman (input) for mailman id 832780;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7w-0008TS-Sr
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:40 +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 d86dd1cd-9e0b-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 20:58:38 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso445809066b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:38 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d86dd1cd-9e0b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ4NmRkMWNkLTllMGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk1OTE4LjYxNzMzNywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095916; x=1731700716; 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=y8X0HqMtDZiLrdBUx5d/OQYZukjUCR6KuzOBHabB77Y=;
        b=Gxxqe+rPQ60TkUJkNTPX1HrJyZVk4w1gSNN6R12jipRhZwDH/w5Ijm5L/n0xlpJmxx
         EmVxur2p8NSN8eS8WEOIrKqwhPL8vnFrF1s6wvnDR4wKOPzhj/QmJIfVjB7qlu03JpLN
         75/bot+PFuDUo+xaeKoPv3WhC8HFjH1GPosF0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095916; x=1731700716;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=y8X0HqMtDZiLrdBUx5d/OQYZukjUCR6KuzOBHabB77Y=;
        b=HJcBAihf+poLj1CwfhSwgMmnNyOE3LiyT/twd2vWNCtPP6nCcWxb8vPeSsRhU6BoEz
         i92DhyUiCZiDm8yw1siqlkTGTLePAd6OOlpUeIkLXKBuL2UlmoOnJw3IreRig8VonrGM
         FQBNMQfSCmmP1lZRbba++Ag3Pbb5qxERSoy2Q2HeyK1mO2k7rUMFUiysDV4sYevNITW5
         c89xDpxQXdptzF4BByXf2KLugN9IfWYEjhiuqht6EusdpB40FiSth772yILRH5npeeNn
         7IXM+c5FnASnq/vo5zikEL4+8g33FOgYN1zffuxo9XY1T6iycyWxzULpH7hAjHXFI+aC
         acxA==
X-Gm-Message-State: AOJu0Yy1kOALwWuXOI4NmGXCx1azN7V+dGeK+PMdY2gC3JLdb8e+aqCQ
	1ERWGQ8rPPoCs8EWhaLzq1lFmhsfkjAr0MsBzLZqy5gyEg7R6/HcuHLiw/ax56WcDPrVhechFfL
	d
X-Google-Smtp-Source: AGHT+IGIq/AzlAScjGBIlnMvhuRaeruqGMKX3YDhzKpMJQ1Cd05P4q9EtKkfOePceh4UoLnR/A0Baw==
X-Received: by 2002:a17:907:3d9f:b0:a9a:6633:3a90 with SMTP id a640c23a62f3a-a9eefeb157bmr395505966b.8.1731095916338;
        Fri, 08 Nov 2024 11:58: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>
Subject: [PATCH 09/10] x86/mach-apic: Move the genapic wrappers to genapic.h
Date: Fri,  8 Nov 2024 19:58:19 +0000
Message-Id: <20241108195820.789716-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This a better place for them to live.

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/genapic.h             | 17 +++++++++++++++++
 .../x86/include/asm/mach-generic/mach_apic.h   | 18 ------------------
 xen/arch/x86/irq.c                             |  6 +++++-
 xen/arch/x86/msi.c                             |  6 +++++-
 4 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/include/asm/genapic.h b/xen/arch/x86/include/asm/genapic.h
index 6c8845d17d27..cf36d48f3b07 100644
--- a/xen/arch/x86/include/asm/genapic.h
+++ b/xen/arch/x86/include/asm/genapic.h
@@ -37,6 +37,23 @@ struct genapic {
 	.name = aname, \
 	.probe = aprobe
 
+#define INT_DELIVERY_MODE (genapic.int_delivery_mode)
+#define INT_DEST_MODE (genapic.int_dest_mode)
+#define TARGET_CPUS ((const typeof(cpu_online_map) *)&cpu_online_map)
+#define init_apic_ldr() alternative_vcall(genapic.init_apic_ldr)
+#define cpu_mask_to_apicid(mask) ({ \
+	/* \
+	 * There are a number of places where the address of a local variable \
+	 * gets passed here. The use of ?: in alternative_call<N>() triggers an \
+	 * "address of ... is always true" warning in such a case with at least \
+	 * gcc 7 and 8. Hence the seemingly pointless local variable here. \
+	 */ \
+	const cpumask_t *m_ = (mask); \
+	alternative_call(genapic.cpu_mask_to_apicid, m_); \
+})
+#define vector_allocation_cpumask(cpu) \
+	alternative_call(genapic.vector_allocation_cpumask, cpu)
+
 extern struct genapic genapic;
 extern const struct genapic apic_default;
 extern const struct genapic apic_bigsmp;
diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
index b4a2f0a0b068..3e17c271d9ac 100644
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -6,24 +6,6 @@
 #include <asm/genapic.h>
 #include <asm/smp.h>
 
-/* The following are dependent on APIC delivery mode (logical vs. physical). */
-#define INT_DELIVERY_MODE (genapic.int_delivery_mode)
-#define INT_DEST_MODE (genapic.int_dest_mode)
-#define TARGET_CPUS ((const typeof(cpu_online_map) *)&cpu_online_map)
-#define init_apic_ldr() alternative_vcall(genapic.init_apic_ldr)
-#define cpu_mask_to_apicid(mask) ({ \
-	/* \
-	 * There are a number of places where the address of a local variable \
-	 * gets passed here. The use of ?: in alternative_call<N>() triggers an \
-	 * "address of ... is always true" warning in such a case with at least \
-	 * gcc 7 and 8. Hence the seemingly pointless local variable here. \
-	 */ \
-	const cpumask_t *m_ = (mask); \
-	alternative_call(genapic.cpu_mask_to_apicid, m_); \
-})
-#define vector_allocation_cpumask(cpu) \
-	alternative_call(genapic.vector_allocation_cpumask, cpu)
-
 static inline void enable_apic_mode(void)
 {
 	/* Not needed for modern ES7000 which boot in Virtual Wire mode. */
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 0001e93ba8ac..6340cd6dd73d 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -21,10 +21,14 @@
 #include <xen/trace.h>
 #include <xen/softirq.h>
 #include <xsm/xsm.h>
+
+#include <asm/apic.h>
+#include <asm/genapic.h>
+#include <asm/io_apic.h>
 #include <asm/msi.h>
 #include <asm/current.h>
 #include <asm/flushtlb.h>
-#include <asm/mach-generic/mach_apic.h>
+
 #include <irq_vectors.h>
 #include <public/physdev.h>
 
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 677fd83218d4..68d6e25178a9 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -21,13 +21,17 @@
 #include <xen/iocap.h>
 #include <xen/keyhandler.h>
 #include <xen/pfn.h>
+
+#include <asm/apic.h>
+#include <asm/genapic.h>
 #include <asm/io.h>
+#include <asm/io_apic.h>
 #include <asm/smp.h>
 #include <asm/desc.h>
 #include <asm/msi.h>
 #include <asm/fixmap.h>
 #include <asm/p2m.h>
-#include <mach_apic.h>
+
 #include <io_ports.h>
 #include <irq_vectors.h>
 #include <public/physdev.h>
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832781.1248141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V7y-0002Bs-Nd; Fri, 08 Nov 2024 19:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832781.1248141; Fri, 08 Nov 2024 19:58: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 1t9V7y-0002AJ-Fm; Fri, 08 Nov 2024 19:58:42 +0000
Received: by outflank-mailman (input) for mailman id 832781;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7x-0008TY-Kt
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:41 +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 d778e7c9-9e0b-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:58:37 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so347762166b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:37 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d778e7c9-9e0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ3NzhlN2M5LTllMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk1OTE3LjAyODE1Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095916; x=1731700716; 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=LUt6z7qotJTk+Jtsld6eOnMm4y4nkKlOfdMmgeqNQZs=;
        b=Xi2dX2gZJ1GAsaWPr8BLEA0xQkvRjtKRXZlhoVTTGzoiMCvfpePGJ8/WcPvAsC7dzo
         q0y9OEk8gasGS9a+2P+hnWJG4wrxwxNHQKr8DD61OmtsdJ2T0ZH+X/8lpy2qYWRb9P+N
         AYpis9D7Vr/HrpSWsdOMU0Zl5JC1zyT1FUfg8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095916; x=1731700716;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=LUt6z7qotJTk+Jtsld6eOnMm4y4nkKlOfdMmgeqNQZs=;
        b=D9AjKbq364Y4rKuyjLn/xbuyI+ro6pW413q4DeUm1a8B3cwtVkrp0XF2Yb4GZCS7Vs
         S0g9DHlMxwrDyrANuJ2GUOu1R59DI6VlnImninsqX5a9HsAiWHpPrDTwgF3A1vpV81HD
         7qUG+eff982esReUcLLCASDddye7r23QxcQHMVNWWtaVX7Mje84Nv8wJmEuElHaQAqhU
         5ko5PvjHRy2v+CxuXO1b+ogWS7YXLp28El3Eb8uBBKRJrlGZ50XS1QXPyarL4kp+DP6K
         abRGuBPPYh5CFxjrnFd/1o/VdiGsXTNXsUrcO03SFgUzfS/5TDydFBE2t1TUw5JVK35o
         9bcg==
X-Gm-Message-State: AOJu0Yym8ds47TbGUJT0RnhlyPGAGf7BSWZMYDgGqqmI/ibmJAAzOFFz
	hD1ZesImncxSxSgJHToQII+6NUf9P1pIYlgUTUN8sdF+g6ZzV7EZCoZ/pGyw0LO0BG/YSY2ixG/
	4
X-Google-Smtp-Source: AGHT+IHcM9/g6UuN1NPBnHBdf2XO8eZElhhw83hxBGhwOm+YwzANwjNhHUrnnEvFQvs3nJMuqWdMug==
X-Received: by 2002:a17:907:9288:b0:a9a:10c9:f4b8 with SMTP id a640c23a62f3a-a9ef0040b8amr345801966b.61.1731095915662;
        Fri, 08 Nov 2024 11:58: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>
Subject: [PATCH 08/10] x86/mach-apic: Drop set_apicid()
Date: Fri,  8 Nov 2024 19:58:18 +0000
Message-Id: <20241108195820.789716-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's an unnecessary wrapper, and longer than the operation it wraps.

It's also the only reason that mpparse.c includes mach_apic.h, other than for
transitive dependencies.

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/mach-generic/mach_apic.h | 11 -----------
 xen/arch/x86/io_apic.c                            |  4 ++--
 xen/arch/x86/mpparse.c                            |  7 ++++---
 3 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
index 7940c0234cb9..b4a2f0a0b068 100644
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
@@ -39,15 +39,4 @@ static inline int multi_timer_check(int apic, int irq)
 	return 0;
 }
 
-/*
- * The following functions based around phys_cpu_present_map are disabled in
- * some i386 Linux subarchitectures, and in x86_64 'cluster' genapic mode. I'm
- * really not sure why, since all local APICs should have distinct physical
- * IDs, and we need to know what they are.
- */
-static inline void set_apicid(int phys_apicid, physid_mask_t *map)
-{
-	physid_set(phys_apicid, *map);
-}
-
 #endif /* __ASM_MACH_APIC_H */
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 5a4d8597e07a..2774cd45c091 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1537,7 +1537,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
                         "phys_id_present_map\n",
                         mp_ioapics[apic].mpc_apicid);
         }
-        set_apicid(mp_ioapics[apic].mpc_apicid, &phys_id_present_map);
+        physid_set(mp_ioapics[apic].mpc_apicid, phys_id_present_map);
 
         /*
          * We need to adjust the IRQ routing table
@@ -2270,7 +2270,7 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
         apic_id = i;
     } 
 
-    set_apicid(apic_id, &apic_id_map);
+    physid_set(apic_id, apic_id_map);
 
     if (reg_00.bits.ID != apic_id) {
         reg_00.bits.ID = apic_id;
diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index e13b83bbe9dd..b16c105b18bf 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -20,8 +20,10 @@
 #include <xen/delay.h>
 #include <xen/efi.h>
 #include <xen/sched.h>
-
 #include <xen/bitops.h>
+
+#include <asm/apic.h>
+#include <asm/genapic.h>
 #include <asm/smp.h>
 #include <asm/acpi.h>
 #include <asm/mtrr.h>
@@ -29,7 +31,6 @@
 #include <asm/io_apic.h>
 #include <asm/setup.h>
 
-#include <mach_apic.h>
 #include <bios_ebda.h>
 
 /* Have we found an MP table */
@@ -161,7 +162,7 @@ static int MP_processor_info_x(struct mpc_config_processor *m,
 	}
 	apic_version[apicid] = ver;
 
-	set_apicid(apicid, &phys_cpu_present_map);
+	physid_set(apicid, phys_cpu_present_map);
 
 	if (num_processors >= nr_cpu_ids) {
 		printk_once(XENLOG_WARNING
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 19:58:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 19:58:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832783.1248156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9V81-0002kT-5U; Fri, 08 Nov 2024 19:58:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832783.1248156; Fri, 08 Nov 2024 19:58: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 1t9V80-0002kA-W5; Fri, 08 Nov 2024 19:58:44 +0000
Received: by outflank-mailman (input) for mailman id 832783;
 Fri, 08 Nov 2024 19:58: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9V7z-0008TY-60
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:58:43 +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 d92719ef-9e0b-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:58:39 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso428872266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 11:58:39 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dc5db6sm271523466b.119.2024.11.08.11.58.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 11:58: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: d92719ef-9e0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ5MjcxOWVmLTllMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk1OTE5Ljg3MjY1NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731095919; x=1731700719; 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=V7/2tyrjO+foQHdsyFkn3cPeL3RHFRZuXllVwsi5Vtc=;
        b=CkARgPquSLI8bUur+u8lLxcr6PPOnZ8vFsAupUvc40a2okHHbS84epkYTOJqC9sbwV
         xNV+vu/ZXQh4zWM/BF9NmB6QN5OjwZQdvCHYni7CJtLyIFTs0T9yar8nKTuvFEy5muhA
         HC1z3b6ptTx3POuJQiwW3W6ll4cafkJ2tHULo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731095919; x=1731700719;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=V7/2tyrjO+foQHdsyFkn3cPeL3RHFRZuXllVwsi5Vtc=;
        b=Zgj0arYIocY9j+P2DZ5HiCor8FCrAAGLMMcRD7wLEVM5CC/vIrf6rUudi/Sl+FtOhb
         tm+F2nxv1UI9CV3S6f6H5AOBEUKyyI5H4IzaO1SW/Q7sW9xOWxKCYBCHByNezCQr2wX5
         BZhdkL9yK44hrwuadhZaEEJOXxQY4YUDc7QmdYRs8eS9DKObiuJw+ndhEcw/tsFQ4eJM
         1chhH47jMIvCfQINhIP8ycCbSajTahHAqFQUGaNldDdocfss6asVS8FmQ12a9IX2d7m9
         cY/KWbd+pD2F034EC5E7NjRst8aU/N4W1b8HcEC4MlMvBN+Ag8ZOjbPbbhNFm4rxnfGF
         Krsg==
X-Gm-Message-State: AOJu0YxNPI6jwBf0v4AkhX8reGFkIRbZXXqM3ajYPXT8Hopa69zSAFHN
	1GgCp7lC/a8WtIA/eOpamn7U0szzXWiMAK+LS/fEUWZZUTCzXUbX1ffu+8DRlZJvzMS/mJFzAUh
	6
X-Google-Smtp-Source: AGHT+IH/oI66KdDWXrvpJYzMBjtAQSbLS30PUxc/CQOomyFvs4Uyw/JRJcbEoLqDDY/Ktm/JcrdwtA==
X-Received: by 2002:a17:906:dc8a:b0:a9e:b090:e65d with SMTP id a640c23a62f3a-a9eeff383eemr334778266b.32.1731095918858;
        Fri, 08 Nov 2024 11:58: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 10/10] x86: Delete mach_apic.h
Date: Fri,  8 Nov 2024 19:58:20 +0000
Message-Id: <20241108195820.789716-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-1-andrew.cooper3@citrix.com>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All useful content has been moved elsewhere.

Clean up the dregs, and remove the entire mach-generic include path.

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/apic.c                           |  4 ++--
 xen/arch/x86/arch.mk                          |  1 -
 .../x86/include/asm/mach-generic/mach_apic.h  | 24 -------------------
 xen/arch/x86/io_apic.c                        | 15 +++++-------
 4 files changed, 8 insertions(+), 36 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/mach-generic/mach_apic.h

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 9f3a374e9581..8f192f80b852 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -35,7 +35,8 @@
 #include <asm/hardirq.h>
 #include <asm/apic.h>
 #include <asm/io_apic.h>
-#include <mach_apic.h>
+#include <asm/genapic.h>
+
 #include <io_ports.h>
 #include <irq_vectors.h>
 #include <xen/kexec.h>
@@ -230,7 +231,6 @@ void __init connect_bsp_APIC(void)
     }
 
     printk("Enabling APIC mode.  Using %d I/O APICs\n", nr_ioapics);
-    enable_apic_mode();
 }
 
 void disconnect_bsp_APIC(int virt_wire_setup)
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 1460ecf30b9a..8f8aeda679d8 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -3,7 +3,6 @@
 
 export XEN_IMG_OFFSET := 0x200000
 
-CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-generic
 CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-default
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 
diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
deleted file mode 100644
index 3e17c271d9ac..000000000000
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __ASM_MACH_APIC_H
-#define __ASM_MACH_APIC_H
-
-#include <asm/apic.h>
-#include <asm/io_apic.h>
-#include <asm/genapic.h>
-#include <asm/smp.h>
-
-static inline void enable_apic_mode(void)
-{
-	/* Not needed for modern ES7000 which boot in Virtual Wire mode. */
-	/*es7000_sw_apic();*/
-}
-
-#define apicid_to_node(apicid) ((int)apicid_to_node[(u32)apicid])
-
-extern u32 bios_cpu_apicid[];
-
-static inline int multi_timer_check(int apic, int irq)
-{
-	return 0;
-}
-
-#endif /* __ASM_MACH_APIC_H */
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 2774cd45c091..13daebc10a97 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -31,13 +31,16 @@
 #include <xen/softirq.h>
 #include <xen/xvmalloc.h>
 
+#include <asm/apic.h>
+#include <asm/genapic.h>
 #include <asm/hpet.h>
+#include <asm/io_apic.h>
 #include <asm/mc146818rtc.h>
 #include <asm/smp.h>
 #include <asm/desc.h>
 #include <asm/msi.h>
 #include <asm/setup.h>
-#include <mach_apic.h>
+
 #include <io_ports.h>
 #include <irq_vectors.h>
 #include <public/physdev.h>
@@ -1104,14 +1107,8 @@ static void __init setup_IO_APIC_irqs(void)
             }
 
             irq = pin_2_irq(idx, apic, pin);
-            /*
-             * skip adding the timer int on secondary nodes, which causes
-             * a small but painful rift in the time-space continuum
-             */
-            if (multi_timer_check(apic, irq))
-                continue;
-            else
-                add_pin_to_irq(irq, apic, pin);
+
+            add_pin_to_irq(irq, apic, pin);
 
             if (!IO_APIC_IRQ(irq))
                 continue;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:00:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832829.1248166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VA0-0006uS-JF; Fri, 08 Nov 2024 20:00:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832829.1248166; Fri, 08 Nov 2024 20:00: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 1t9VA0-0006uJ-FR; Fri, 08 Nov 2024 20:00:48 +0000
Received: by outflank-mailman (input) for mailman id 832829;
 Fri, 08 Nov 2024 20: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=Hbhu=SD=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t9V9z-0006u1-1f
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:00:47 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2409::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21f67270-9e0c-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 21:00:43 +0100 (CET)
Received: from MN2PR02CA0032.namprd02.prod.outlook.com (2603:10b6:208:fc::45)
 by PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20; Fri, 8 Nov
 2024 20:00:34 +0000
Received: from BL02EPF0001A104.namprd05.prod.outlook.com
 (2603:10b6:208:fc:cafe::28) by MN2PR02CA0032.outlook.office365.com
 (2603:10b6:208:fc::45) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.29 via Frontend
 Transport; Fri, 8 Nov 2024 20:00:34 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A104.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Fri, 8 Nov 2024 20:00:33 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 8 Nov
 2024 14:00:33 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Fri, 8 Nov 2024 14:00: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: 21f67270-9e0c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwOTo6NjBlIiwiaGVsbyI6Ik5BTTA0LURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjIxZjY3MjcwLTllMGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk2MDQzLjI2MDEwOSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GuCrvQdfqgT85Jzl0TwHCVG3mFzEmtBFnU9OsrrvRpvDD/QN5nJyo6T4WcMDwYwCVhsRpYZruDIDBjDs2lPnKcRZ+r2mn7fMgjRC83AD0PJWYt0lpM74KtY38DXB/qPFrKZC/nRibDDsChUD9rlMMPUuHwu/Q/8LPwjb4VjfWmYYaxF12CEhFGgRIFKW0s7JTF9tH3CaINuuYPFJBLsG2YRbPTwFvPpVUgCRWAjOBTMs1d6rKebJ93qxsLvbKOQ8w0G3NZqKoXmCXjxZ0Qf6i9JxM7KS0MewIPKC1k1YEGDTEk1B/NkGy9vfknNaIpkUTUlx7LVV2dV1mPDVm6TUcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W7MTVHvsmqy7eo+n+r9GFgMFK/5bG+cP0QVZBcwS2z0=;
 b=elc9XBJO9//E9uqMkZN+oCUmyzcpaEQmSgGhoVUBjX8+A2BnD3K+yZLcFOUjvZOdgb3uo0MiskmHM0o8gFXw+hIZZ/6JKpYbDhEG60COSNuYHGjRs23p6V2sk9ay6Htoa7BHTVruKWmC7OPjuJ9/plPqJk+GKKvZ3uP1H5VC1gBREKK6wlaZK8f0jG7XSZlAhw87C+6tsMOv82MD3tRvQ1W3Tul7LZ880/SD51/imdK/PGOmM1wRGBxn85SRUk3cq98mnBNm3xgfQeCqdp88L+oNp7fI6Dx9zYSeJ80c17cWIGN8rz/6C/Qm5v0lOhyqDamv57apQBGFl/nvrGs4Ig==
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=W7MTVHvsmqy7eo+n+r9GFgMFK/5bG+cP0QVZBcwS2z0=;
 b=yWtbksmbzat7PO9Id+Nb+UPfaUaa/4n0h0rso93TV+ce2ncGByV77sbVCsqMcjxE2PuXO/r0PDUMLMWO9Sp5HtXQzgyjsfzOkXlpAOtVPq6jwO8FCLUBuIN6jvgO1+R7v0yut4/Fl6/OBgCaohjKqIuFP0tAkRRLPjZeTgrWznA=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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 v1 1/2] xen/mpu: Map early uart when earlyprintk on
Date: Fri, 8 Nov 2024 20:00:24 +0000
Message-ID: <20241108200024.857766-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A104:EE_|PH7PR12MB5854:EE_
X-MS-Office365-Filtering-Correlation-Id: c9d9f930-15cb-41cb-cfd8-08dd00300164
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?UNRvq5qEqoJlAKyJNbd+Oio+MRlRZpwJ3HLmjUiC1iEX0cHbZld8uDNQAhsI?=
 =?us-ascii?Q?1VqHJSdJmBeRHl3Wye1jFvdS6phWRJQjEXsOCaXmi6xAr/qUxTKiVgItO1wY?=
 =?us-ascii?Q?ae2gMmkdxSi59514EMmwkOTV7ze5IDFVY18qki39UqeU3fabf0wbhQfEZIFm?=
 =?us-ascii?Q?DRtfnT9szppxoliqtl0gZ5TImo3MSu9vfnD48vlzT9cylrNYv/KresHAw8f+?=
 =?us-ascii?Q?NvuRMRNwLJaugCsU9woQjbbwSpfJwKeahCK7w9lswWzoj2mYp5RpncP4ZYPk?=
 =?us-ascii?Q?cWuYkiY20Mzbdf9dVDHSCb0gHT+QSB/J3mD8Gb+qtgvAVboN4cs3nttdCyao?=
 =?us-ascii?Q?wvdHrdaokC4wb1iDiFej8UzGkWDuuwEtHDYCqk4zHDRVvu7ncJrwbEOxHn5P?=
 =?us-ascii?Q?ks74U1luYJGhpSKc6UIdtEJlsMqaqXNtAQ49F51XaPvvClOK62qPiqbgZeGD?=
 =?us-ascii?Q?Sx4p/htd/O3ThY+mFVJqoUkzJsKJoGHO4FxbIam05m+OlgDioOMBErWkIqGM?=
 =?us-ascii?Q?r6ETMvHCpJSj0kwAsrcHULekbWywSNPPdiArCyrVdyRUKf3dFJtX1EHDdL/7?=
 =?us-ascii?Q?iphJDvstFNsci3oEc6IR+BNJB024tLzuyiERNWl79BoAvOzetI/1egtyvT5L?=
 =?us-ascii?Q?jjeqFHqOzV7Y6DTZYk3mHe6TFXe5mDGsubzzOfsuGz151IXWCCme7NP4feQt?=
 =?us-ascii?Q?os9FG2WvBAc5LWPsVw3oSi2HbxPO2cMHwByuZMG/G2x2GMl7pg9TEKvc8ylf?=
 =?us-ascii?Q?qOv9v4FG+yAKX5jF8wZEbiqtYPu0Qahsmsm10XV9pjv+DEq/5WGRUTy8q4r5?=
 =?us-ascii?Q?eYodOAFp6MQCIOrXc2QWDBZEQIFew9wXdgOcRzmAwxo784yHofiKjvuvFD6/?=
 =?us-ascii?Q?gh1XHIyP6rlQ5NMZuUxDMFGjETd+CKYtPXASBUwGC/jEq7KquOytCWmSsKl6?=
 =?us-ascii?Q?KNwUfCtJsqjBHDgSqaW5eVAqBkpxVPROCJWAsJaqBBTIF5wqI15vEHNYSVZ1?=
 =?us-ascii?Q?jqoW5q8FNtnxlSReihybAxP4/v4+qqypLKUFa3VJVta+1tjpe+N5nMqV/iOX?=
 =?us-ascii?Q?1T3Ydr0HFsLVkKY93mwMJR3Lgt6kcj7mtYUlYhdhzXx6jW0aEo4tWhnsyEBg?=
 =?us-ascii?Q?sWAtuJj1+ff5HQZjr1nL59cA0M5ebQZJKUQ6z6RCqb8EJN1ObxOEtNzyv3w+?=
 =?us-ascii?Q?7BBs7xr/rc8AUQ1I+X3NUAp9BHWsQgkRr6zx6YMOBqrrd2Vwx8YuFMWCAHTj?=
 =?us-ascii?Q?ozzmYjDZnkMBGDNTzeO944r3sZ5p47fH0gSQc9mrmrWM8c81dcWyvBTQF+bI?=
 =?us-ascii?Q?UTMIxE3uJrGAbYw+CROblK2Abplnywl11od9lqJuO/Kjfmd8EXE4U/89ENys?=
 =?us-ascii?Q?Cs1w6rbG0LRT+ODLxfiONVXZ0LCzBo35fxTrVQHzFMn53nOp2w=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 08 Nov 2024 20:00:33.7823
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c9d9f930-15cb-41cb-cfd8-08dd00300164
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A104.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5854

CONFIG_EARLY_UART_SIZE is introduced to let user provide physical size of
early UART. Unlike MMU where we map a page in the virtual address space,
here we need to know the exact physical size to be mapped.
As VA == PA in case of MPU, the memory layout follows exactly the hardware
configuration. As a consequence, we set  EARLY_UART_VIRTUAL_ADDRESS as physical
address.

Further, we check whether user-defined EARLY_UART_SIZE is aligned to PAGE_SIZE
(4KB). This is partly because we intend to map a minimum of 1 page(ie 4KB) and
the limit address is set as "EARLY_UART_SIZE-1". The limit address needs to end
with 0x3f (as required by PRLAR register).

UART is mapped as nGnRE region (as specified by ATTR=100 , refer G1.3.13,
MAIR_EL2, "---0100 Device memory nGnRE") and Doc ID - 102670_0101_02_en
Table 4-3, Armv8 architecture memory types (nGnRE - Corresponds to Device in
Armv7 architecture). Also, it is mapped as outer shareable, RW at EL2 only
and execution of instructions from the region is not permitted.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 xen/arch/arm/Kconfig.debug              |  7 +++++++
 xen/arch/arm/arm64/mpu/head.S           |  9 +++++++++
 xen/arch/arm/include/asm/early_printk.h | 19 +++++++++++++++++++
 3 files changed, 35 insertions(+)

diff --git a/xen/arch/arm/Kconfig.debug b/xen/arch/arm/Kconfig.debug
index 7660e599c0..84a0616102 100644
--- a/xen/arch/arm/Kconfig.debug
+++ b/xen/arch/arm/Kconfig.debug
@@ -121,6 +121,13 @@ config EARLY_UART_BASE_ADDRESS
 	hex "Early printk, physical base address of debug UART"
 	range 0x0 0xffffffff if ARM_32
 
+config EARLY_UART_SIZE
+       depends on EARLY_PRINTK
+       depends on MPU
+       hex "Early printk, physical size of debug UART"
+       range 0x0 0xffffffff if ARM_32
+       default 0x1000
+
 config EARLY_UART_PL011_BAUD_RATE
 	depends on EARLY_UART_PL011
 	int "Early printk UART baud rate for pl011"
diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index 731698aa3b..98422d7ed3 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -11,8 +11,10 @@
 #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 */
+#define REGION_DEVICE_PRBAR     0x22    /* SH=10 AP=00 XN=10 */
 
 #define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
+#define REGION_DEVICE_PRLAR     0x09    /* NS=0 ATTR=100 EN=1 */
 
 /*
  * Macro to prepare and set a EL2 MPU memory region.
@@ -137,6 +139,13 @@ FUNC(enable_boot_cpu_mm)
     ldr   x2, =__bss_end
     prepare_xen_region x0, x1, x2, x3, x4, x5
 
+#ifdef CONFIG_EARLY_PRINTK
+    /* Xen early UART section. */
+    ldr   x1, =CONFIG_EARLY_UART_BASE_ADDRESS
+    ldr   x2, =(CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
+    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
+#endif
+
     b    enable_mpu
     ret
 END(enable_boot_cpu_mm)
diff --git a/xen/arch/arm/include/asm/early_printk.h b/xen/arch/arm/include/asm/early_printk.h
index 46a5e562dd..98fd52c4db 100644
--- a/xen/arch/arm/include/asm/early_printk.h
+++ b/xen/arch/arm/include/asm/early_printk.h
@@ -15,6 +15,24 @@
 
 #ifdef CONFIG_EARLY_PRINTK
 
+#ifndef CONFIG_MMU
+
+/*
+ * For MPU systems, there is no VMSA support in EL2, so we use VA == PA
+ * for EARLY_UART_VIRTUAL_ADDRESS.
+ */
+#define EARLY_UART_VIRTUAL_ADDRESS CONFIG_EARLY_UART_BASE_ADDRESS
+
+/*
+ * User-defined EARLY_UART_SIZE must be aligned to a PAGE_SIZE, or
+ * we may map more than necessary in MPU system.
+ */
+#if (EARLY_UART_SIZE % PAGE_SIZE) != 0
+#error "EARLY_UART_SIZE must be aligned to PAGE_SIZE"
+#endif
+
+#else
+
 /* need to add the uart address offset in page to the fixmap address */
 #define EARLY_UART_VIRTUAL_ADDRESS \
     (FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
@@ -22,6 +40,7 @@
 #define TEMPORARY_EARLY_UART_VIRTUAL_ADDRESS \
     (TEMPORARY_FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
 
+#endif /* CONFIG_MMU */
 #endif /* !CONFIG_EARLY_PRINTK */
 
 #endif
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:05:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:05:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832840.1248176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VEy-0007c0-7X; Fri, 08 Nov 2024 20:05:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832840.1248176; Fri, 08 Nov 2024 20:05: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 1t9VEy-0007bt-4o; Fri, 08 Nov 2024 20:05:56 +0000
Received: by outflank-mailman (input) for mailman id 832840;
 Fri, 08 Nov 2024 20:05: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=pHpy=SD=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1t9VEw-0007bl-QE
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:05:54 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8e3f15c-9e0c-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 21:05:50 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731096342991134.0728993380519;
 Fri, 8 Nov 2024 12:05: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: d8e3f15c-9e0c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ4ZTNmMTVjLTllMGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk2MzUwLjYxNjM4Mywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731096345; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=nzhANqHmNoKzjMbqhbvJ7IXY64E/1L8nXcDHQHyLjGj3sKyAii/uE3mOAEf/CMbEDorRuza11J59KBytea5LClhkCQXv35e7l/faD0vY91DUyVhgu899QIgDvEa/E8qIy+7CJYuJZ5yPIC4cbrrGM0F33eljcX86UFFrZ2eCrVo=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731096345; 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=M0+chFa0tl4CltlsCBW9R5wavRfypjHKFXHtpCWUpzY=; 
	b=jqjCEy669AO+kKXnCbu99SuHAzMf3VAPoQvdJydHsxlPSJkq71nsOTzosNujwm3PSj5j+R1/2oPjmpPN8+LcU2bjXzyKbxV3umYZvM0N/hf2mijG9vI3+CSwSFFHFe13+7LDRBWRaWoIYE32d7l9ihDXxnfAabKhRY4cdBSV4lI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731096345;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=M0+chFa0tl4CltlsCBW9R5wavRfypjHKFXHtpCWUpzY=;
	b=Z1mjPuuhzq1HPgdE3zUu7zB2dgm4jssAstGeQPCI/vBCJPG/BzFStURNgwqF/sZt
	6vEmNK3j76Y36j7VYTICSvXzDfK0IWSDc+ZJ7JYikloKvwSCbi7JNdLPgbqtvUmtR23
	uvMAaCpbkzbTvvhaFTfu5i+goShXlwiWlLV7W+Ag=
Message-ID: <1aa86ca0-bcda-4fc9-8bfa-207699313723@apertussolutions.com>
Date: Fri, 8 Nov 2024 15:05:41 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/12] x86/boot: add cmdline to struct boot_domain
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-13-dpsmith@apertussolutions.com>
 <1a7d3d9a-0100-4dcc-9e2a-727a3061cd74@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <1a7d3d9a-0100-4dcc-9e2a-727a3061cd74@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/7/24 16:12, Jason Andryuk wrote:
> On 2024-11-02 13:25, Daniel P. Smith wrote:
>> Add a container for the "cooked" command line for a domain. This 
>> provides for
>> the backing memory to be directly associated with the domain being 
>> constructed.
>> This is done in anticipation that the domain construction path may 
>> need to be
>> invoked multiple times, thus ensuring each instance had a distinct memory
>> allocation.
> 
> Is the area only used at domain construction time?Â  If that runs 
> sequentially, then only a single cmdline buffer would be needed. 
> cmdline_pa can keep pointing to individual cmdlines.Â  Unless the multi- 
> domain builder needs to keep multiple?Â  But that could maybe keep 
> cmdline_pa pointing into the device tree?

It turns out that 1024 may not be large enough for all use cases. 
Instead of trying to make an educated guess, this is being switched to 
dynamic allocation for v9.

>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v7:
>> - updated commit message to expand on intent and purpose
>> ---
>> Â  xen/arch/x86/include/asm/bootdomain.h |Â  4 ++++
>> Â  xen/arch/x86/include/asm/dom0_build.h |Â  1 +
>> Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â Â Â  |Â  4 ++--
>> Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 18 ++++++++----------
>> Â  4 files changed, 15 insertions(+), 12 deletions(-)
>>
>> diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/ 
>> include/asm/bootdomain.h
>> index 3873f916f854..bc51f04a1df6 100644
>> --- a/xen/arch/x86/include/asm/bootdomain.h
>> +++ b/xen/arch/x86/include/asm/bootdomain.h
>> @@ -8,10 +8,14 @@
>> Â  #ifndef __XEN_X86_BOOTDOMAIN_H__
>> Â  #define __XEN_X86_BOOTDOMAIN_H__
>> +#include <public/xen.h>
>> +
>> Â  struct boot_module;
>> Â  struct domain;
>> Â  struct boot_domain {
>> +Â Â Â  char cmdline[MAX_GUEST_CMDLINE];
>> +
> 
> You might want to put the 1024 byte chars at the end of the structure. 
> Having the other pointers at the start is probably more useful.

OBE.

>> Â Â Â Â Â  domid_t domid;
>> Â Â Â Â Â  struct boot_module *kernel;
> 
>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>> index 28257bf13127..2c84af52de3e 100644
>> --- a/xen/arch/x86/pv/dom0_build.c
>> +++ b/xen/arch/x86/pv/dom0_build.c
>> @@ -960,8 +960,8 @@ static int __init dom0_construct(struct 
>> boot_domain *bd)
>> Â Â Â Â Â  }
>> Â Â Â Â Â  memset(si->cmd_line, 0, sizeof(si->cmd_line));
>> -Â Â Â  if ( cmdline != NULL )
>> -Â Â Â Â Â Â Â  strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
>> +Â Â Â  if ( cmdline[0] != '\0' )
> 
> Shouldn't this check bd->cmdline[0] ?Â  There is a const char *cmdline in 
> this function that should probably be removed.

This was caught in the switch to dynamic allocation and the local var 
was dropped.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:06:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:06:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832853.1248185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VFi-0008I2-FC; Fri, 08 Nov 2024 20:06:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832853.1248185; Fri, 08 Nov 2024 20:06: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 1t9VFi-0008Hv-CU; Fri, 08 Nov 2024 20:06:42 +0000
Received: by outflank-mailman (input) for mailman id 832853;
 Fri, 08 Nov 2024 20:06: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=Hbhu=SD=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t9V94-0008TY-Lk
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 19:59:50 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20625.outbound.protection.outlook.com
 [2a01:111:f403:2412::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fda93938-9e0b-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 20:59:42 +0100 (CET)
Received: from BL1PR13CA0382.namprd13.prod.outlook.com (2603:10b6:208:2c0::27)
 by MW6PR12MB8958.namprd12.prod.outlook.com (2603:10b6:303:240::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.30; Fri, 8 Nov
 2024 19:59:36 +0000
Received: from BL02EPF0001A102.namprd05.prod.outlook.com
 (2603:10b6:208:2c0:cafe::5e) by BL1PR13CA0382.outlook.office365.com
 (2603:10b6:208:2c0::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19 via Frontend
 Transport; Fri, 8 Nov 2024 19:59:36 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A102.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Fri, 8 Nov 2024 19:59:36 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 8 Nov
 2024 13:59:36 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Fri, 8 Nov 2024 13:59: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: fda93938-9e0b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjI1IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZkYTkzOTM4LTllMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk1OTgyLjU1ODcyNiwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HHBdWtrHsQWOyACF6/v0JSMkQoLXpa0OD1w3qu5Y+a15e1nU4m3qywXu8HoWg/AHiI1anpFYvljh6vVBkWuRAHqPNTmAqRY74jtaHk8cfQr6i+NxLQ926WzjTrnDwCGOrCKHUryrlgv8/stdmF2t4PKFh2SbK4Dwc2wSQ2gY26WR89ds9GnUNFPCPY0iIA3HkRw1laUOePnfM4Bm48O59ut2hHs9WGal+6X6H6Se/Ic4iqoPyCRhg/0AMYqLznfUBTCGyYqVzorH8pmtOpqu+xKo376N7Ma81IQcnT2u4aTapopRmQtIlhkdbUrKxu6vo2dDhCPTrcbG0BUB8BrE+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=EjVkE7Hn/7zDFOepCcGvGZ5CLYZ0+pgJCfhHdOJNTRQ=;
 b=lnaJcug/13EPYOupgeehr5Qob4tFpQY07Jh8VQfkFBLkmkjrh3J+8GqWmisAPU4aMnvOX0Xlh+/mTpM60nwlcOI7nLm37dk4rq4wwg7wzI650D5saGF7fX4BQ6YyH4mpJ/MSBzOWXJ94oWoal72TF4j08WWSWLax9ZwSwHJhRW9445xhE1MZFYqhPxzX7wFNwdTZ3ucIj0szsfJF96mjdSi+ZvhDVa/ZOxLVMs6WhFaxIJxHgD6ljL+WB8G3Ob4k/+E5oKs5B9wZo8NLznRSXLSl7Ffc6zjsLOeRv6to35rvtqmc0EFTTJLVIPrgI45MGHPUnIzZNz9rJNu9Oa6VfQ==
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=EjVkE7Hn/7zDFOepCcGvGZ5CLYZ0+pgJCfhHdOJNTRQ=;
 b=1Oi1HF1raRH9lfmCQGY0gaiuoqFaZGJtwP+YvAomcEavufqqExuaeWUwn1QBsom25sFLyqThO5dciu6e9qrMtta7DTJxZLHQt3WmjZor1xfw46XYMdHQ5RGe8fV/Oi9GJtD4X0X9SRYQZjvjEAHobkVl14hOK0y7sFXECWI2D2g=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@arm.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Rahul Singh
	<rahul.singh@arm.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Subject: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Date: Fri, 8 Nov 2024 19:59:18 +0000
Message-ID: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A102:EE_|MW6PR12MB8958:EE_
X-MS-Office365-Filtering-Correlation-Id: 3be77637-9b36-4752-933a-08dd002fdf42
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?XTY6IMDccaXIfAS6ano/JEhhlmBBu5wE6RpZ+yXliUzCnYk2M+64nRFLLLAr?=
 =?us-ascii?Q?V3BQX/uqCOodemjOwjhfdOlJP64IaJXH9wrGJytyD7/XQtt6cDGSFVuIX+FR?=
 =?us-ascii?Q?djEXMYn8LXn5NYQkGXcrZflsvKYK11MWlojIZo3HlWMiZKTZgmr8UbQobXsN?=
 =?us-ascii?Q?F7JOkud8jzWcwEaPzUa49eeJ5yg59lSJtMvd+8gaPs/HccL9k4AIcATHyPLG?=
 =?us-ascii?Q?1Az1dLNfnIFGLqKl3chkqUtwyFbqrYlMWN48XFHA/TzKG5DBzy1JxXPQBrIQ?=
 =?us-ascii?Q?0s16eKnltrwGrejszmASRTEMsLPdaqHesxw+QLLZ6JwL4Cx4PXJgafKnqeqk?=
 =?us-ascii?Q?pZFX85nMUJC2H16jEldWK++Q58GrwVb+peJZ7aujgppAeseChwlM6BLGLevR?=
 =?us-ascii?Q?eGZiH6OMKo3wRfhTft9axXfdaazrcOqXYAh+/VuWoqgqQOohakKk6x64AKBR?=
 =?us-ascii?Q?eZFH7lhSHtqp/XACmgr1ScQysLXllEgj9OEfes8/jMmnBrPP0H9Gi8bskjlw?=
 =?us-ascii?Q?eTF20tuaXihb+e6X9o4gJoO+BX5Ykro9E0BBAyLDiLnaaXgKNY92SeLMZG1p?=
 =?us-ascii?Q?+UX74/m0yHxofmCSlMZumXXU8iEPj38t45QoV9ZJxWtHzL/i6F7OruvXdWPl?=
 =?us-ascii?Q?One2lmHjq0l8WrEYr+5IJMGArbfXFcqHBjOS6spymC0ly7uiz6fwo+gMMquF?=
 =?us-ascii?Q?gWMeft+tVO57G40HQJL+QIdOD0LaOM7MC+zot0y/XSBL4AHXgk+DCM240ToY?=
 =?us-ascii?Q?khtHpjJnJ2a9rYney+LO2AnsrIiaXTaIBxXYUeBpKTYVTlIjWObKEcCKVsGa?=
 =?us-ascii?Q?gT/n8/1KnSGM4PgZzt3QDassCOfxRGEUz3euEecFyXqTui3dXwihfXIqcWn9?=
 =?us-ascii?Q?LP33xn9QHYxhcZYQUPFIAUiA+O7Oc3UxndjLvby5vU+Mw6UrkE5gVEGa2NA/?=
 =?us-ascii?Q?xZLeybi3RAYFJGzpB/ZV1jh8/Zv0enbnK5deCM7f1a4OmMOvd1My2ShQX1Q2?=
 =?us-ascii?Q?9fCGVg8SpU5KKvrqQn7sugK5HrZfAQYOcbZ5LGfBbZ2PdEVaWRSEq1u/o2Fq?=
 =?us-ascii?Q?W+RQ3jRfc+EtKwnmlFChE8NThGE8g1Qyz2H1Lm/egrgM9mKFC95c1F3INJCS?=
 =?us-ascii?Q?BpY/6qcN4tjxoLrzylUMUI6q/enn5cyTopCMzNXtR35swdsCUFjf50Y8E4t3?=
 =?us-ascii?Q?Tm1Cvj9rw/m8XPgVJZe6ByQUM4ePuKt44oaYOlEXPbS3snhsPNhEqpHuMOhl?=
 =?us-ascii?Q?uGofjWd0VSY5QknfG5cct2JfgniDyiMCpZMZZ7hPNOL6JFYP27LjrszWUecP?=
 =?us-ascii?Q?q1d1PfR1AErCUotjbwSsxqsUHIdGSC4rh0V7/Jn0hffFS0HYEp1zln2lX/Eg?=
 =?us-ascii?Q?aDHiDkushV1doy+m8EQA6B/SxZO9Ed/H0VHlshToZ+5OvS4S8Q=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2024 19:59:36.5154
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3be77637-9b36-4752-933a-08dd002fdf42
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A102.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8958

From: Penny Zheng <Penny.Zheng@arm.com>

In Xen, SMMU subsystem is supported for MMU system only. The reason being SMMU
driver uses the same page tables as MMU.
Thus, we make it dependent on CONFIG_MMU.

Signed-off-by: Penny Zheng <Penny.Zheng@arm.com>
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 xen/arch/arm/Kconfig            | 2 +-
 xen/drivers/passthrough/Kconfig | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..3699e148e9 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -16,7 +16,7 @@ config ARM
 	select HAS_DEVICE_TREE
 	select HAS_PASSTHROUGH
 	select HAS_UBSAN
-	select IOMMU_FORCE_PT_SHARE
+	select IOMMU_FORCE_PT_SHARE if MMU
 
 config ARCH_DEFCONFIG
 	string
diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kconfig
index 78edd80536..75ad403dd3 100644
--- a/xen/drivers/passthrough/Kconfig
+++ b/xen/drivers/passthrough/Kconfig
@@ -5,6 +5,7 @@ config HAS_PASSTHROUGH
 if ARM
 config ARM_SMMU
 	bool "ARM SMMUv1 and v2 driver"
+	depends on MMU
 	default y
 	help
 	  Support for implementations of the ARM System MMU architecture
@@ -15,7 +16,7 @@ config ARM_SMMU
 
 config ARM_SMMU_V3
 	bool "ARM Ltd. System MMU Version 3 (SMMUv3) Support" if EXPERT
-	depends on ARM_64 && (!ACPI || BROKEN)
+	depends on ARM_64 && (!ACPI || BROKEN) && MMU
 	help
 	 Support for implementations of the ARM System MMU architecture
 	 version 3. Driver is in experimental stage and should not be used in
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:07:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832868.1248196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VGT-0000dj-OV; Fri, 08 Nov 2024 20:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832868.1248196; Fri, 08 Nov 2024 20: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 1t9VGT-0000dc-Ko; Fri, 08 Nov 2024 20:07:29 +0000
Received: by outflank-mailman (input) for mailman id 832868;
 Fri, 08 Nov 2024 20: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=Hbhu=SD=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1t9V9N-0008TY-8a
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:00:09 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20610.outbound.protection.outlook.com
 [2a01:111:f403:2407::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bfefc3a-9e0c-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 21:00:05 +0100 (CET)
Received: from BN1PR14CA0015.namprd14.prod.outlook.com (2603:10b6:408:e3::20)
 by IA1PR12MB8358.namprd12.prod.outlook.com (2603:10b6:208:3fa::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Fri, 8 Nov
 2024 20:00:01 +0000
Received: from BL02EPF0001A106.namprd05.prod.outlook.com
 (2603:10b6:408:e3:cafe::f4) by BN1PR14CA0015.outlook.office365.com
 (2603:10b6:408:e3::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Fri, 8 Nov 2024 20:00:01 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Fri, 8 Nov 2024 20:00:01 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 8 Nov
 2024 14:00:01 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Nov
 2024 14:00:01 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Fri, 8 Nov 2024 14:00: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: 0bfefc3a-9e0c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNzo6NjEwIiwiaGVsbyI6Ik5BTTAyLUJOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjBiZmVmYzNhLTllMGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMDk2MDA1Ljk1NDEyNSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bCy8eOjKCl86YmlMtrxz1r8PMWCHYCAd02esWKfUoXk8WudPPsi54A+loeWro140yzTzY9vzeqJIquupLwBUiTDPIiWvLeiMlVPF6rnF4jun0suBW+k0FKEyA3CuJNQSH3XTNgr8Shmi+m8LHiyi/kIyHL3qZVkhDT8unvrv3rffKJbFrxcgLiHL7ixwfeiBtQv6FlLlj5Tzz0XbCAoNqx9LYIbQtJAkuNS6Mfp0mOS27zCbWrXnmNJicMq2wXHKAiMEVo7Al+kjoupirViPSpigyQ/XiQ9gdqsl87ULxGYiigXNDpzjdxiVuwZvGf4NWSx5RIqhUnjOUwJ+7XolOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ArCNV0s2PkwS3OtHPkfHlUgeBEoSbhGKaQvQyNAhqcg=;
 b=MIluM3Yx8mgTCzWIHvyIT3kt7DRBOwF0D9R6iAmF795tYoQ49k2Zh1vjZ8uFLZo0XWp2Zb/2bS9+i9e6Qa2SXOJ4LCMfYqptcbzIW9gPkAyHDUtbRh1qLLVhnj9kNlmq/SB5Zh/txuSNdB9ikm/9xFRXZagBHw7Hl8LqI8oT9Vfl5Hbdq/cYd9QygJbbpJp0k9OYJJ7lr8g2SdJRLRa2S1qOZWMWi8KR1EtKqymGT+m0mFqETsjz1kHZHNKO2cc7GvPAA8eFbIs4w4+itIw5UFuTWF+qLlCGj8coWe3TBnFHLdpmBiCReymsrCXmAPgDsxHB9anv1cahsiBuMcIiNg==
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=ArCNV0s2PkwS3OtHPkfHlUgeBEoSbhGKaQvQyNAhqcg=;
 b=KLX+hDBPQfNU1jQs5l4WPwfd1w+rge5b8PlstdbyhyKBhbyoCPrZoAxyelQuTKFDF79daZe8rpfO/kKcVL6mf1Ni5ANpgLgUV5TllB0w3uwrGrU9L41skk4N4GxVM7Ptdsv6rZbMCw/7512wll4l9eK6/Jlo3m3v3LxnvGuAkXk=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 0/2] Enable early bootup of AArch64 MPU systems (Part 2)
Date: Fri, 8 Nov 2024 19:59:56 +0000
Message-ID: <20241108195956.857112-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A106:EE_|IA1PR12MB8358:EE_
X-MS-Office365-Filtering-Correlation-Id: 9557ee4d-690a-4889-32ec-08dd002fee52
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?IKe4fQ8SlRT78o++vNF2J70w9nJZaMKRK6Mx0A+dhba86cohFXIHfwlAen9n?=
 =?us-ascii?Q?D36f4pMC/Cc1+HjGWtMgmBel1uXdiZm+0bzOo/xKirHJM4OYTZ/2JBiEVsW/?=
 =?us-ascii?Q?GTtwlByiH0q8eZyqo/PTB7v0KgiXnUtiuMKYvkP1VKdEB/kqyk43NIQkuFxO?=
 =?us-ascii?Q?PoAqyCMbh0AxvTGaIs7/hXtvrmcT+pdWbDUW0fe03zLAscD4+AVIGKtU9IH5?=
 =?us-ascii?Q?ru5wPOOfnRvMA9fhDNemuj9PxCiDbsE6+pQRuI3fCurmE7B5SNBML0zeYswz?=
 =?us-ascii?Q?XxISE/O3G2quPr8ykaThyU/hxmHMT8dDpuWmt/7FYurELGCgC3OWfCC8MBpg?=
 =?us-ascii?Q?diNqtEYpk/Gf4nLFqYMhW5fEFcN1Qjtn5cVRuDoYFuVEw2t+Lc/YQ8oq0rQl?=
 =?us-ascii?Q?j1qDTOcGs0RQI1HYFoOkDnWnzSZUyjS5Z/OWhDdXIuGP5HhcowfvwPSG0Sta?=
 =?us-ascii?Q?jNpj10T4sIIErNG6FjkReCJv36kWkFSUpsp+o4Gy6vsZ13ZN+1RyI2bjUKPA?=
 =?us-ascii?Q?vC0insGIofFSN1Q6MNDsQaoDIoexkgQqPNfsdmQZNwOGYilQ2vtqfP4PAbMA?=
 =?us-ascii?Q?hG6rV/e1gwp3PCcY3a4Pk8VWJkc29G9mL9eZ4yzSZNF4clxtb2rZU1mNtbzt?=
 =?us-ascii?Q?NJbfLD4XVbAQvF/rXKkx9yc9F6wgRhMwcGtqvKCRGKYRDflPbEDhwZOHBR+j?=
 =?us-ascii?Q?hq9ncVbcvG5XmJqxOTuZAb6DA9MKXeKSqSg3LyHc1bRZlb4XoQpnErInQtBo?=
 =?us-ascii?Q?00qmzYsU/xLRpcKySI7CsotX8xyo8WSEMzIqYsS2eek34ou4t4ZzbX8D1XnH?=
 =?us-ascii?Q?nLQWU6h4ly1itX/nXkb+nswDXaemUlkkZ0UFn4E1icut46nAtPcLGOQiG5mI?=
 =?us-ascii?Q?k2ogaNcCGJw8TzmUciUv1jPhOJcHMDX8VLwMcFRWAlOdY2XlBOpbcjvK94RO?=
 =?us-ascii?Q?zOiBJxvNQwFd9wULev8lNGA3kdugBwDmsX5iHVJeXhMDCJY1u6fM8sJYBGxW?=
 =?us-ascii?Q?70hjIQylqVx7o4yeNBFULOl1+UoMha2Q3pFFFpZ6LJVnd1S7nA03TwjJv7z4?=
 =?us-ascii?Q?VJA5XJ1dVu/uP1vP/2vBW7s8VAMMKKnberQdypBq6phRO+7m60oMr2XXeTvZ?=
 =?us-ascii?Q?E9IpIj0bd4eGOB3XdIsDznF1Sq6c46MBkxTXODpq/QF2ei/br/Axcuku+6OZ?=
 =?us-ascii?Q?73Le2do+PDssDldheNGFEM5vY9JNsLHj+EVS1VeN9dp499xKDZbxcj+IRT7J?=
 =?us-ascii?Q?77FG6PmvjMb0CC/kp5mtgsUoNrt6L56eHpH3mHbnX8KSLGWSPI9Odwn03ZL6?=
 =?us-ascii?Q?2DqL84E5s/mFH8+xNbZqVPBzHiDK65Y+32jqbps/vg7fPcDnN6FF4fSmzGDZ?=
 =?us-ascii?Q?7nRzwFdlNREFn3+OjVb+FgHjE/uj6IYBmf9YtTMRw2ASAMaMKA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2024 20:00:01.7837
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9557ee4d-690a-4889-32ec-08dd002fee52
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=[SATLEXMB03.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: IA1PR12MB8358

This patch serie concludes earlyboot support for Arm-v8R AArch64 MPU systems.

Depends on "[PATCH v5 0/3] Enable early bootup of AArch64 MPU systems"

Ayan Kumar Halder (1):
  xen/mpu: Map early uart when earlyprintk on

Penny Zheng (1):
  xen/mmu: enable SMMU subsystem only in MMU

 xen/arch/arm/Kconfig                    |  2 +-
 xen/arch/arm/Kconfig.debug              |  7 +++++++
 xen/arch/arm/arm64/mpu/head.S           |  9 +++++++++
 xen/arch/arm/include/asm/early_printk.h | 19 +++++++++++++++++++
 xen/drivers/passthrough/Kconfig         |  3 ++-
 5 files changed, 38 insertions(+), 2 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:12:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832904.1248226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VKx-0003Jt-Q0; Fri, 08 Nov 2024 20:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832904.1248226; Fri, 08 Nov 2024 20: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 1t9VKx-0003Jj-N9; Fri, 08 Nov 2024 20:12:07 +0000
Received: by outflank-mailman (input) for mailman id 832904;
 Fri, 08 Nov 2024 20: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9VKw-0002pM-FS
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:12:06 +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 b8ae5d35-9e0d-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 21:12:04 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5cacb76e924so3676047a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 12:12:04 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7e6sm2334739a12.14.2024.11.08.12.11.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 12:12: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: b8ae5d35-9e0d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI4YWU1ZDM1LTllMGQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk2NzI0LjM3MjQwNCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731096723; x=1731701523; 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=90OoYiFeZ5rMxk+cdK/xirLCI8U4EbCancSqXIxcb6s=;
        b=fHHlrgHOgis8Tq3by1YpR8QUm8PvqvSecKL/zDhMqj/t1yN2yD68kCEnY77y2B+AXN
         45W8zjtIxwvrLiWGgt1aXfhcbyXCRWG72wfitbLqyANsg6SYkvjGsz3+BeW4T8VM8kJi
         TP10XK5mMb0qr7Bvlk51wJm5C5vsHB77Yd0Xc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731096723; x=1731701523;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=90OoYiFeZ5rMxk+cdK/xirLCI8U4EbCancSqXIxcb6s=;
        b=cWdIYwYZlt8kbezquOk44RJgNsmNovmWflj6JJlc9Rs7KK8WGR5sbgu6e+xaKM4DF+
         uMog3L6wr0RMVaMjAQle3Mu4OWPjhH+1YUmZ/gzxi0kwMY2cFYSBXOf/b+jgK+KpTE6L
         Dhi/QjfEHpc2eEtsJJgSffe4MgNu2wI3WL6Yrlz/+eR7qTRKvmTaAiUAWVPxQYYYPByW
         CyHgRqmL3Mroe8+kJpLKqwsOyLsc8Efz63hrwcikdoXYIlJHaNNORZ97v4t/e++m5ti5
         jstVIs4OO0wlZTd22kvRz6s8yLQMk5S/gSxW4DnrU7dqFiKmLWgJAggAEhuc+f4sIttz
         yIHg==
X-Gm-Message-State: AOJu0Yz0qMFaLiW5lW2kM8FgqWIwrZSsZHMIjL3DE+R/qZ+B0JiEFxYa
	qTt/40vt7/CYAzNvwohWq4tHSqGOSxNPkOpbKy6WNJ4jOU55IsrdLeFU8nthcarkXAv+eFHDbBW
	u
X-Google-Smtp-Source: AGHT+IFKIlWbL97/gpKNq8zVpa0Fzo1LE/X0eiolV45FBf4cIPPR1IZTZALCEkK/TS0ZU8Tz4N9xtw==
X-Received: by 2002:a05:6402:3510:b0:5cf:9f6:1c01 with SMTP id 4fb4d7f45d1cf-5cf0a44744bmr3451673a12.25.1731096722763;
        Fri, 08 Nov 2024 12:12:02 -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: Move mach-default/io_ports.h to asm/io-ports.h
Date: Fri,  8 Nov 2024 20:11:45 +0000
Message-Id: <20241108201147.812036-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108201147.812036-1-andrew.cooper3@citrix.com>
References: <20241108201147.812036-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

intercept.c and msi.c don't even need this header.

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/apic.c                                             | 2 +-
 xen/arch/x86/dom0_build.c                                       | 2 +-
 xen/arch/x86/hvm/intercept.c                                    | 1 -
 xen/arch/x86/i8259.c                                            | 2 +-
 .../x86/include/asm/{mach-default/io_ports.h => io-ports.h}     | 0
 xen/arch/x86/io_apic.c                                          | 2 +-
 xen/arch/x86/msi.c                                              | 1 -
 xen/arch/x86/time.c                                             | 2 +-
 8 files changed, 5 insertions(+), 7 deletions(-)
 rename xen/arch/x86/include/asm/{mach-default/io_ports.h => io-ports.h} (100%)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 8e8ff4d155ff..bb86a1c161b3 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -27,6 +27,7 @@
 #include <xen/smp.h>
 #include <xen/softirq.h>
 
+#include <asm/io-ports.h>
 #include <asm/irq-vectors.h>
 #include <asm/mc146818rtc.h>
 #include <asm/microcode.h>
@@ -39,7 +40,6 @@
 #include <asm/io_apic.h>
 #include <asm/genapic.h>
 
-#include <io_ports.h>
 #include <xen/kexec.h>
 #include <asm/guest.h>
 #include <asm/nmi.h>
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 8d56705a0861..72747b92475a 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -16,11 +16,11 @@
 #include <asm/dom0_build.h>
 #include <asm/guest.h>
 #include <asm/hpet.h>
+#include <asm/io-ports.h>
 #include <asm/io_apic.h>
 #include <asm/p2m.h>
 #include <asm/setup.h>
 #include <asm/spec_ctrl.h>
-#include <io_ports.h>
 
 struct memsize {
     long nr_pages;
diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c
index 8f82b82b0723..da22c386763e 100644
--- a/xen/arch/x86/hvm/intercept.c
+++ b/xen/arch/x86/hvm/intercept.c
@@ -17,7 +17,6 @@
 #include <xen/lib.h>
 #include <xen/sched.h>
 #include <asm/current.h>
-#include <io_ports.h>
 #include <xen/event.h>
 #include <xen/iommu.h>
 
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index a14f20bdf676..5c7e21a7515c 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -19,9 +19,9 @@
 #include <xen/delay.h>
 #include <asm/apic.h>
 #include <asm/asm_defns.h>
+#include <asm/io-ports.h>
 #include <asm/irq-vectors.h>
 #include <asm/setup.h>
-#include <io_ports.h>
 
 /*
  * This is the 'legacy' 8259A Programmable Interrupt Controller,
diff --git a/xen/arch/x86/include/asm/mach-default/io_ports.h b/xen/arch/x86/include/asm/io-ports.h
similarity index 100%
rename from xen/arch/x86/include/asm/mach-default/io_ports.h
rename to xen/arch/x86/include/asm/io-ports.h
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 12cc4a561d14..d44d2c9a4173 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -34,6 +34,7 @@
 #include <asm/apic.h>
 #include <asm/genapic.h>
 #include <asm/hpet.h>
+#include <asm/io-ports.h>
 #include <asm/io_apic.h>
 #include <asm/irq-vectors.h>
 #include <asm/mc146818rtc.h>
@@ -42,7 +43,6 @@
 #include <asm/msi.h>
 #include <asm/setup.h>
 
-#include <io_ports.h>
 #include <public/physdev.h>
 #include <xen/trace.h>
 
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index be5ef99e088f..fa724911928e 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -33,7 +33,6 @@
 #include <asm/fixmap.h>
 #include <asm/p2m.h>
 
-#include <io_ports.h>
 #include <public/physdev.h>
 #include <xen/iommu.h>
 #include <xsm/xsm.h>
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index bc9f26594103..a9aa335d7c9f 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -39,7 +39,7 @@
 #include <asm/div64.h>
 #include <asm/acpi.h>
 #include <asm/hpet.h>
-#include <io_ports.h>
+#include <asm/io-ports.h>
 #include <asm/setup.h> /* for early_time_init */
 #include <public/arch-x86/cpuid.h>
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:12:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832903.1248216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VKv-00034O-Ju; Fri, 08 Nov 2024 20:12:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832903.1248216; Fri, 08 Nov 2024 20:12: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 1t9VKv-00033w-GE; Fri, 08 Nov 2024 20:12:05 +0000
Received: by outflank-mailman (input) for mailman id 832903;
 Fri, 08 Nov 2024 20:12: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9VKt-0002pM-Bo
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:12:03 +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 b6397e88-9e0d-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 21:12:00 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cece886771so4338110a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 12:12:00 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7e6sm2334739a12.14.2024.11.08.12.11.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 12:11: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: b6397e88-9e0d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI2Mzk3ZTg4LTllMGQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk2NzIwLjI0NDUzMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731096719; x=1731701519; 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=8MMy8e2dl3W/FfU86BORT7sNQ1T6E9mw4dCgXuqbc4E=;
        b=WzqXc+q3NyawmmIsDQeQldVe7iVabSMcmdSQ54HRXyzFUx+dJhGEE+RAhe+uG0BQf+
         V/9g/pOxdgd+VZykLwgbhx64FiZ5Q3gf61dNL9D+wL/RTU2I/x9OURYB3UrdThmn4PcV
         M9K7i9QGrM3Yz7RxVjbiM7SrqQeqRbKp/20KY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731096719; x=1731701519;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=8MMy8e2dl3W/FfU86BORT7sNQ1T6E9mw4dCgXuqbc4E=;
        b=ciRK04agTH8GvEI/SNta5X3uAVTkRDKzvd/ig11z5BrHZ91zPj6jmaia36SoyBz0aE
         uPV7It+2DMxDMU0R+N+/XaKGwoOP8UH3+rFdPnB9cTwWRslDNbugNqXX7GohaSae4D+E
         AEdRZUUh5KUCyQmoOwP5NanIRLbjpANN+e7h0pVx+k6TWxEKTomewl8x52AfecblaPc0
         QDNIMvVSp02wLb7uM7Rpe1qzUdLAODNBLVonTV0a5KQbA/y5pYbn8G25rVv4wPOgO2cB
         yw/LE5TmICY4OdBs4lZ8UAoZn4eErzQdiMMCiAGfTWdHDb49VdI/ZtUBcIcNDlYDLbE5
         dS6A==
X-Gm-Message-State: AOJu0YxirEo4lAoc+8BYJYDI6Mrs23DoQZzUeLgT0bfb691MqNH+8PrU
	3IT7nOSPNFno3rM5LzQFJzMtfK3ZAXyw5KOnrugs359ZZ7WTcvkxQPYQ5F4mFDJ2OnoZt/J3KtL
	0
X-Google-Smtp-Source: AGHT+IHBTmngeNBjGTDSUpzBLDTzycAJDBAwbriOJKsg/gpCD6Nh1KlwxMASrNZyXJ6btFUQXyhsOg==
X-Received: by 2002:a50:fb89:0:b0:5cf:a27:c87e with SMTP id 4fb4d7f45d1cf-5cf0a27c98dmr3327773a12.10.1731096718640;
        Fri, 08 Nov 2024 12:11: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>
Subject: [PATCH 1/4] x86: Move mach-default/irq_vectors.h to asm/irq-vectors.h
Date: Fri,  8 Nov 2024 20:11:44 +0000
Message-Id: <20241108201147.812036-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108201147.812036-1-andrew.cooper3@citrix.com>
References: <20241108201147.812036-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

irq_vectors.h is included by with multiple paths.  Move it to be a regular
header instead.

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/apic.c                                           | 3 ++-
 xen/arch/x86/cpu/vpmu.c                                       | 4 +++-
 xen/arch/x86/i8259.c                                          | 2 +-
 .../include/asm/{mach-default/irq_vectors.h => irq-vectors.h} | 0
 xen/arch/x86/io_apic.c                                        | 2 +-
 xen/arch/x86/irq.c                                            | 2 +-
 xen/arch/x86/msi.c                                            | 2 +-
 xen/arch/x86/pv/hypercall.c                                   | 3 ++-
 xen/arch/x86/pv/traps.c                                       | 2 +-
 xen/arch/x86/smp.c                                            | 2 +-
 xen/arch/x86/smpboot.c                                        | 2 +-
 xen/arch/x86/traps.c                                          | 2 +-
 xen/arch/x86/x86_64/compat/entry.S                            | 2 +-
 xen/arch/x86/x86_64/entry.S                                   | 2 +-
 14 files changed, 17 insertions(+), 13 deletions(-)
 rename xen/arch/x86/include/asm/{mach-default/irq_vectors.h => irq-vectors.h} (100%)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 8f192f80b852..8e8ff4d155ff 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -26,6 +26,8 @@
 #include <xen/delay.h>
 #include <xen/smp.h>
 #include <xen/softirq.h>
+
+#include <asm/irq-vectors.h>
 #include <asm/mc146818rtc.h>
 #include <asm/microcode.h>
 #include <asm/msr.h>
@@ -38,7 +40,6 @@
 #include <asm/genapic.h>
 
 #include <io_ports.h>
-#include <irq_vectors.h>
 #include <xen/kexec.h>
 #include <asm/guest.h>
 #include <asm/nmi.h>
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index a5bb1689c7d5..c28192ea2662 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -13,13 +13,15 @@
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/sched.h>
+
+#include <asm/irq-vectors.h>
 #include <asm/regs.h>
 #include <asm/msr.h>
 #include <asm/nmi.h>
 #include <asm/p2m.h>
 #include <asm/vpmu.h>
 #include <asm/apic.h>
-#include <irq_vectors.h>
+
 #include <public/pmu.h>
 #include <xsm/xsm.h>
 
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index 10ddd2b0fbbf..a14f20bdf676 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -19,9 +19,9 @@
 #include <xen/delay.h>
 #include <asm/apic.h>
 #include <asm/asm_defns.h>
+#include <asm/irq-vectors.h>
 #include <asm/setup.h>
 #include <io_ports.h>
-#include <irq_vectors.h>
 
 /*
  * This is the 'legacy' 8259A Programmable Interrupt Controller,
diff --git a/xen/arch/x86/include/asm/mach-default/irq_vectors.h b/xen/arch/x86/include/asm/irq-vectors.h
similarity index 100%
rename from xen/arch/x86/include/asm/mach-default/irq_vectors.h
rename to xen/arch/x86/include/asm/irq-vectors.h
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 13daebc10a97..12cc4a561d14 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -35,6 +35,7 @@
 #include <asm/genapic.h>
 #include <asm/hpet.h>
 #include <asm/io_apic.h>
+#include <asm/irq-vectors.h>
 #include <asm/mc146818rtc.h>
 #include <asm/smp.h>
 #include <asm/desc.h>
@@ -42,7 +43,6 @@
 #include <asm/setup.h>
 
 #include <io_ports.h>
-#include <irq_vectors.h>
 #include <public/physdev.h>
 #include <xen/trace.h>
 
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 6340cd6dd73d..e56bacc88d84 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -25,11 +25,11 @@
 #include <asm/apic.h>
 #include <asm/genapic.h>
 #include <asm/io_apic.h>
+#include <asm/irq-vectors.h>
 #include <asm/msi.h>
 #include <asm/current.h>
 #include <asm/flushtlb.h>
 
-#include <irq_vectors.h>
 #include <public/physdev.h>
 
 /* opt_noirqbalance: If true, software IRQ balancing/affinity is disabled. */
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 68d6e25178a9..be5ef99e088f 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -26,6 +26,7 @@
 #include <asm/genapic.h>
 #include <asm/io.h>
 #include <asm/io_apic.h>
+#include <asm/irq-vectors.h>
 #include <asm/smp.h>
 #include <asm/desc.h>
 #include <asm/msi.h>
@@ -33,7 +34,6 @@
 #include <asm/p2m.h>
 
 #include <io_ports.h>
-#include <irq_vectors.h>
 #include <public/physdev.h>
 #include <xen/iommu.h>
 #include <xsm/xsm.h>
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 4294e930128b..2febade44b73 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -11,9 +11,10 @@
 #include <xen/hypercall.h>
 #include <xen/nospec.h>
 #include <xen/trace.h>
+
 #include <asm/apic.h>
+#include <asm/irq-vectors.h>
 #include <asm/multicall.h>
-#include <irq_vectors.h>
 
 /* Forced inline to cause 'compat' to be evaluated at compile time. */
 static void always_inline
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index ed8aa97382b7..fd1597d0bdea 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -13,10 +13,10 @@
 #include <xen/softirq.h>
 
 #include <asm/debugreg.h>
+#include <asm/irq-vectors.h>
 #include <asm/pv/trace.h>
 #include <asm/shared.h>
 #include <asm/traps.h>
-#include <irq_vectors.h>
 
 void pv_inject_event(const struct x86_event *event)
 {
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index bd337e548c5a..02a6ed7593f3 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -19,13 +19,13 @@
 #include <asm/current.h>
 #include <asm/genapic.h>
 #include <asm/guest.h>
+#include <asm/irq-vectors.h>
 #include <asm/smp.h>
 #include <asm/mc146818rtc.h>
 #include <asm/flushtlb.h>
 #include <asm/hardirq.h>
 #include <asm/hpet.h>
 #include <asm/setup.h>
-#include <irq_vectors.h>
 
 /* Helper functions to prepare APIC register values. */
 static unsigned int prepare_ICR(unsigned int shortcut, int vector)
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 42272a9844fa..568a3abe1f47 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -39,7 +39,7 @@
 #include <asm/time.h>
 #include <asm/tboot.h>
 #include <asm/trampoline.h>
-#include <irq_vectors.h>
+#include <asm/irq-vectors.h>
 
 unsigned long __read_mostly trampoline_phys;
 enum ap_boot_method __read_mostly ap_boot_method = AP_BOOT_NORMAL;
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index a9c2c607eb08..fd8a4448e3f7 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -69,7 +69,7 @@
 #include <public/hvm/params.h>
 #include <asm/cpuid.h>
 #include <xsm/xsm.h>
-#include <asm/mach-default/irq_vectors.h>
+#include <asm/irq-vectors.h>
 #include <asm/pv/traps.h>
 #include <asm/pv/trace.h>
 #include <asm/pv/mm.h>
diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S
index a99646c0cd4e..1e87652f4bcb 100644
--- a/xen/arch/x86/x86_64/compat/entry.S
+++ b/xen/arch/x86/x86_64/compat/entry.S
@@ -5,11 +5,11 @@
         .file "x86_64/compat/entry.S"
 
 #include <asm/asm_defns.h>
+#include <asm/irq-vectors.h>
 #include <asm/page.h>
 #include <asm/processor.h>
 #include <asm/desc.h>
 #include <public/xen.h>
-#include <irq_vectors.h>
 
 FUNC(entry_int82)
         ENDBR64
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index c5c723b5f4d4..40d094d5b2ee 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -7,10 +7,10 @@
         .file "x86_64/entry.S"
 
 #include <asm/asm_defns.h>
+#include <asm/irq-vectors.h>
 #include <asm/page.h>
 #include <asm/processor.h>
 #include <public/xen.h>
-#include <irq_vectors.h>
 
 /* %rsp: struct cpu_user_regs */
 .macro ASSERT_CONTEXT_IS_XEN
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:12:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832902.1248206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VKu-0002pe-97; Fri, 08 Nov 2024 20:12:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832902.1248206; Fri, 08 Nov 2024 20:12: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 1t9VKu-0002pX-5Z; Fri, 08 Nov 2024 20:12:04 +0000
Received: by outflank-mailman (input) for mailman id 832902;
 Fri, 08 Nov 2024 20: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9VKs-0002pM-NS
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:12:02 +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 b4bd377a-9e0d-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 21:11:58 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5c9c28c1e63so3102964a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 12:11:57 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7e6sm2334739a12.14.2024.11.08.12.11.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 12: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: b4bd377a-9e0d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI0YmQzNzdhLTllMGQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk2NzE4LjAyNDIyNSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731096714; x=1731701514; 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=9F0p0naKEdjA8PbAMPXImgeAUFCdUbbfn6MicbM+T3I=;
        b=DA5/O/+PHaEN36dIRmyl9AkokjmQ8mjlGnPnZTVDNzu0c9tHPo7DktW8YsGsqNhsr+
         U7Qeu+vCyMFk6qnVlRyw0R+Tvwsk3WgoDgH5qQvyZ16nhPCAETPUa7ne4ttabn6PUieA
         6PRdww/IfGyJMdqaaOMcDaPUKuPzFpNIhJWxg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731096714; x=1731701514;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=9F0p0naKEdjA8PbAMPXImgeAUFCdUbbfn6MicbM+T3I=;
        b=pA4rwxgHYCJJZ5mEYxr13/BodkBMd18p/knpK38DNIyb4cNzOHRQlAeaUvJ/nEbGlL
         kB/jW9RTfy3ZKO5VfD01WtF2T7wWCLWjGFDlI35lkqKsINjyKQbKXSUgJxOJZOpvrECm
         4fiqrQP40Qsr2uA9kFheMpRA5sRbYjSqjlltf5KE6G0EZhMWhBbbUIGr1nPTRZVdWrfc
         yLAPNKPy/WXUnjwhetcFQ3zkhX3ido+YZM4cOxhR/8DEWxDcl9Q0Md8USR0dnnVutBhj
         jNf+ats9TOzP79lsJ1hRW9F9dnsKiwMw5tz62WwSzeJhgu2ep2mCBYtavTSAVgrAP3XA
         t5sQ==
X-Gm-Message-State: AOJu0Yztwx5cHGQydI0MpELgZg7Nl9J+enAokxicWMHWTpoyONVNIrHf
	lyshg9Su3IIEstmuyFviqk3BwG4q3vKBmrqv450BezPY0z1DhdbElLyKxpJwW9cvF6RqiMhBt08
	1
X-Google-Smtp-Source: AGHT+IEdzDyeihdzCj3aKezy0q0OZAZqJFrhos4n8zlZY/g5Pf2OfszD2IBIqGNSZU6ZRY9nnwrXRQ==
X-Received: by 2002:a50:d5c7:0:b0:5cf:f82:edfd with SMTP id 4fb4d7f45d1cf-5cf0f82eebdmr3015585a12.3.1731096714387;
        Fri, 08 Nov 2024 12:11:54 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 0/4] Untangle mach-default/
Date: Fri,  8 Nov 2024 20:11:43 +0000
Message-Id: <20241108201147.812036-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

There are only a few trivial header files left here.  Shuffle or drop them, so
we can remove another compiler include path.

Andrew Cooper (4):
  x86: Move mach-default/irq_vectors.h to asm/irq-vectors.h
  x86: Move mach-default/io_ports.h to asm/io-ports.h
  x86: Drop mach-default/bios_ebda.h
  x86: Drop mach_mpspec.h

 xen/arch/x86/apic.c                               |  5 +++--
 xen/arch/x86/arch.mk                              |  1 -
 xen/arch/x86/cpu/vpmu.c                           |  4 +++-
 xen/arch/x86/dom0_build.c                         |  2 +-
 xen/arch/x86/hvm/intercept.c                      |  1 -
 xen/arch/x86/i8259.c                              |  4 ++--
 .../asm/{mach-default/io_ports.h => io-ports.h}   |  0
 .../{mach-default/irq_vectors.h => irq-vectors.h} |  0
 xen/arch/x86/include/asm/mach-default/bios_ebda.h | 15 ---------------
 .../x86/include/asm/mach-default/mach_mpspec.h    | 10 ----------
 xen/arch/x86/include/asm/mpspec.h                 |  4 +++-
 xen/arch/x86/io_apic.c                            |  4 ++--
 xen/arch/x86/irq.c                                |  2 +-
 xen/arch/x86/mpparse.c                            |  9 +++++++--
 xen/arch/x86/msi.c                                |  3 +--
 xen/arch/x86/pv/hypercall.c                       |  3 ++-
 xen/arch/x86/pv/traps.c                           |  2 +-
 xen/arch/x86/smp.c                                |  2 +-
 xen/arch/x86/smpboot.c                            |  2 +-
 xen/arch/x86/time.c                               |  2 +-
 xen/arch/x86/traps.c                              |  2 +-
 xen/arch/x86/x86_64/compat/entry.S                |  2 +-
 xen/arch/x86/x86_64/entry.S                       |  2 +-
 23 files changed, 32 insertions(+), 49 deletions(-)
 rename xen/arch/x86/include/asm/{mach-default/io_ports.h => io-ports.h} (100%)
 rename xen/arch/x86/include/asm/{mach-default/irq_vectors.h => irq-vectors.h} (100%)
 delete mode 100644 xen/arch/x86/include/asm/mach-default/bios_ebda.h
 delete mode 100644 xen/arch/x86/include/asm/mach-default/mach_mpspec.h

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:12:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:12:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832906.1248236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VL3-0003eb-1x; Fri, 08 Nov 2024 20:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832906.1248236; Fri, 08 Nov 2024 20: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 1t9VL2-0003eU-V3; Fri, 08 Nov 2024 20:12:12 +0000
Received: by outflank-mailman (input) for mailman id 832906;
 Fri, 08 Nov 2024 20:12: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9VL2-0002pM-1O
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:12:12 +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 bbf37b87-9e0d-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 21:12:09 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cefc36c5d4so3287378a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 12:12:09 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7e6sm2334739a12.14.2024.11.08.12.12.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 12:12: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: bbf37b87-9e0d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJiZjM3Yjg3LTllMGQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk2NzI5Ljg1NzcwNywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731096727; x=1731701527; 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=XoqxbvTlH2fbgMqE+4mTh6oqAYRmOVdflDf9LezcXaw=;
        b=Z/avr9Pzd3nEmEDVSR6D55IMuIHZYg7x5MJb4BJGV08/4XztTUoYp/UViVt8JsnDHR
         eu11VTrE+3xXKNAVPI/wFJ9ZiFdKfw2BO1eUiv9ifCqs/hqHtVZEFx618L+W0Q5+aFpD
         mVC1qb/MNWDReyIqNyoVripc7Yj1EpxwQpxQQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731096727; x=1731701527;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=XoqxbvTlH2fbgMqE+4mTh6oqAYRmOVdflDf9LezcXaw=;
        b=TGIQFNvaGZXbd01Roo5csuknRlWzj6O2k9RBsIWAGqMnaTpzuBEIhYTi4+T+6qTI+D
         TA32/AyH5C4oXuqgl81SXPKWil0QWozhri/sCo4EqSGmRlSiU2+XFAOriCnlyleInaci
         xr5KmpPewl261Dx75XgE4DFOnqsiysV95JXUuJp2XdsDzyIKDqzk2rt+L/fgRDOa3Ikh
         m9W+tUtoX0uSd/zrd8n+sJxlvbfOkkoLjnmPUaMzLeHSg5aCgu9OJC0xJHjS4GcCTeSW
         SQN76fHfMUAYK3h19auxySLfBTX5DWBjl3wu6JsvXkKgj/tSOAB/Ahw1V7Wsucs1G+7M
         XZGQ==
X-Gm-Message-State: AOJu0YxPU43ohsY6NgNDmyIzRXJTN23u0y6WCeGkK9LXQAscHd63S6J1
	5bX13oE1h6lWyTcwrWltsR6FImH/gjyuM376L/a9i3kTasJNxZUSfGoWqWw46P8v86wW89tRf1c
	m
X-Google-Smtp-Source: AGHT+IEK8SppKwQFFl9O9k94CcXlNkyxkvJuNdDNdoZ5iiOdVBurhwLQ+QJNCOePExKv/QxxrUdErw==
X-Received: by 2002:a05:6402:234a:b0:5ce:fc32:3536 with SMTP id 4fb4d7f45d1cf-5cf0a272570mr3363501a12.0.1731096727437;
        Fri, 08 Nov 2024 12:12: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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 3/4] x86: Drop mach-default/bios_ebda.h
Date: Fri,  8 Nov 2024 20:11:46 +0000
Message-Id: <20241108201147.812036-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108201147.812036-1-andrew.cooper3@citrix.com>
References: <20241108201147.812036-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It has a single function, and a single user.  This is unlikely to change
moving forwards so fold it into mpparse.c

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/mach-default/bios_ebda.h | 15 ---------------
 xen/arch/x86/mpparse.c                            |  9 +++++++--
 2 files changed, 7 insertions(+), 17 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/mach-default/bios_ebda.h

diff --git a/xen/arch/x86/include/asm/mach-default/bios_ebda.h b/xen/arch/x86/include/asm/mach-default/bios_ebda.h
deleted file mode 100644
index 42de6b2a5b97..000000000000
--- a/xen/arch/x86/include/asm/mach-default/bios_ebda.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _MACH_BIOS_EBDA_H
-#define _MACH_BIOS_EBDA_H
-
-/*
- * there is a real-mode segmented pointer pointing to the
- * 4K EBDA area at 0x40E.
- */
-static inline unsigned int get_bios_ebda(void)
-{
-	unsigned int address = *(unsigned short *)maddr_to_virt(0x40E);
-	address <<= 4;
-	return address;	/* 0 means none */
-}
-
-#endif /* _MACH_BIOS_EBDA_H */
diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index b16c105b18bf..957a19d9887d 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -31,8 +31,6 @@
 #include <asm/io_apic.h>
 #include <asm/setup.h>
 
-#include <bios_ebda.h>
-
 /* Have we found an MP table */
 bool __initdata smp_found_config;
 
@@ -734,6 +732,13 @@ static void __init efi_check_config(void)
 		efi_unmap_mpf();
 }
 
+static unsigned int get_bios_ebda(void)
+{
+	unsigned int address = *(unsigned short *)maddr_to_virt(0x40E);
+
+	return address << 4; /* 0 means none */
+}
+
 void __init find_smp_config (void)
 {
 	unsigned int address;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832907.1248246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9VL7-00040I-BC; Fri, 08 Nov 2024 20:12:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832907.1248246; Fri, 08 Nov 2024 20:12: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 1t9VL7-000407-7p; Fri, 08 Nov 2024 20:12:17 +0000
Received: by outflank-mailman (input) for mailman id 832907;
 Fri, 08 Nov 2024 20:12: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9VL5-0002pM-Rj
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:12:15 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be3bc89b-9e0d-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 21:12:13 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2fb51f39394so19007521fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 12:12:13 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d7e6sm2334739a12.14.2024.11.08.12.12.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 12:12: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: be3bc89b-9e0d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmQiLCJoZWxvIjoibWFpbC1sajEteDIyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJlM2JjODliLTllMGQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk2NzMzLjYwNTYzNSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731096731; x=1731701531; 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=GPC86lay0Nkrz6T/SvUOsZkRaQ4nDoNQ73rWRAiZP1Q=;
        b=DQXDNKDQkIOJFBPJztbV95k5Oyw0OZyVgA4iJ9avddSZImgTu7hxnunVWtmJWDvVzI
         5V1en2gHk0IuomW0Qj/9FXPc7r9GJh3oUClGUMZ7puhYLrjb6vDgRnk/eU0j8XF+/F/A
         ZS8wJwERgDOXaiYQGYFsucMvpNwEODdnHJZ74=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731096731; x=1731701531;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=GPC86lay0Nkrz6T/SvUOsZkRaQ4nDoNQ73rWRAiZP1Q=;
        b=oZLEfnkvJjmJon1La+jXV4TUTKXZyIHJughHPfgunZfe6A1CpKM/hjkR7Ak9t51cq0
         vZuo4nE99GD6fw9aZ1Hc7HWt3C1+jJORE9C/tEliAs8O3yW11Br9GVOBzjjcVb+zZ6uk
         WfC/UDRyFYSatYFHPzZt8oQaA77rCW/oKvx1K+rJ5eR/+C0pww10uhRkrUKJTM5QOSXI
         1ObQ66qcZUcZbk49iGH38RG/JM1YvC9N0uBgDiaY8VVuxX0Iohz8+2ocj9edSL1bfDaD
         fDPpPgVc9PVUc2rYRwYKyK/E+G7ULggU0KgTD0jp3W1bL0RBbqxqLF0Xbq9b6H2k3qLM
         WNow==
X-Gm-Message-State: AOJu0YzWgjsfis4fOfaiXXpAATXA/Ow4VUsFOIY96mXhx5CUiWFLeLy2
	4aaUcdX1a8T9VXVVOuVJhXpo4MoBEBNS2Bni4eu7ytfj8oKOv/Y5XrU9JbOzdaXaPEhiEMnxDCt
	z
X-Google-Smtp-Source: AGHT+IG8ArwTwcoDg/F3fTYByQlPv12EikWzpKo2ua6iZps9ZqcCDDaY8ChLzyACKMjfL1xqzWx7jQ==
X-Received: by 2002:a2e:a90a:0:b0:2ef:17f7:6e1d with SMTP id 38308e7fff4ca-2ff201e74b6mr24958381fa.4.1731096731082;
        Fri, 08 Nov 2024 12:12: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 4/4] x86: Drop mach_mpspec.h
Date: Fri,  8 Nov 2024 20:11:47 +0000
Message-Id: <20241108201147.812036-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108201147.812036-1-andrew.cooper3@citrix.com>
References: <20241108201147.812036-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This header is included in exactly one location.  Fold it into mpspec.h

With this done, mach-default/ is empty, so remove the include path.

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                                |  1 -
 xen/arch/x86/include/asm/mach-default/mach_mpspec.h | 10 ----------
 xen/arch/x86/include/asm/mpspec.h                   |  4 +++-
 3 files changed, 3 insertions(+), 12 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/mach-default/mach_mpspec.h

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 8f8aeda679d8..80b4431c8906 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -3,7 +3,6 @@
 
 export XEN_IMG_OFFSET := 0x200000
 
-CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-default
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 
 # Prevent floating-point variables from creeping into Xen.
diff --git a/xen/arch/x86/include/asm/mach-default/mach_mpspec.h b/xen/arch/x86/include/asm/mach-default/mach_mpspec.h
deleted file mode 100644
index 1a4e3f8c4f35..000000000000
--- a/xen/arch/x86/include/asm/mach-default/mach_mpspec.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __ASM_MACH_MPSPEC_H
-#define __ASM_MACH_MPSPEC_H
-
-#define MAX_IRQ_SOURCES 256
-
-/* Generic (i.e. installer) kernels need lots of bus entries. */
-/* Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets. */
-#define MAX_MP_BUSSES 260
-
-#endif /* __ASM_MACH_MPSPEC_H */
diff --git a/xen/arch/x86/include/asm/mpspec.h b/xen/arch/x86/include/asm/mpspec.h
index 45e474dfd1b6..267768e7595e 100644
--- a/xen/arch/x86/include/asm/mpspec.h
+++ b/xen/arch/x86/include/asm/mpspec.h
@@ -3,7 +3,9 @@
 
 #include <xen/cpumask.h>
 #include <asm/mpspec_def.h>
-#include <mach_mpspec.h>
+
+#define MAX_IRQ_SOURCES 256
+#define MAX_MP_BUSSES 260
 
 extern unsigned char mp_bus_id_to_type[MAX_MP_BUSSES];
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 08 20:48:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 20:48:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832954.1248259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9Vtz-0003pO-4W; Fri, 08 Nov 2024 20:48:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832954.1248259; Fri, 08 Nov 2024 20:48: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 1t9Vtz-0003pH-1B; Fri, 08 Nov 2024 20:48:19 +0000
Received: by outflank-mailman (input) for mailman id 832954;
 Fri, 08 Nov 2024 20:48: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=8BGf=SD=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1t9Vtx-0003nq-9U
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 20:48:17 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2413::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3866bc3-9e12-11ef-a0c6-8be0dac302b0;
 Fri, 08 Nov 2024 21:48:11 +0100 (CET)
Received: from BN9PR03CA0787.namprd03.prod.outlook.com (2603:10b6:408:13f::12)
 by PH7PR12MB7795.namprd12.prod.outlook.com (2603:10b6:510:278::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.22; Fri, 8 Nov
 2024 20:48:07 +0000
Received: from BL6PEPF0001AB75.namprd02.prod.outlook.com
 (2603:10b6:408:13f:cafe::cc) by BN9PR03CA0787.outlook.office365.com
 (2603:10b6:408:13f::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.20 via Frontend
 Transport; Fri, 8 Nov 2024 20:48:06 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0001AB75.mail.protection.outlook.com (10.167.242.168) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8137.17 via Frontend Transport; Fri, 8 Nov 2024 20:48:06 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 8 Nov
 2024 14:48:06 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Nov
 2024 14:48:05 -0600
Received: from [172.31.40.161] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 8 Nov 2024 14:48:05 -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: c3866bc3-9e12-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjJmIiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMzODY2YmMzLTllMTItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMDk4ODkxLjI2MzkxNywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hkmNC9tdt7stt2I/izD1rlTV9Rjh/2dVC5ir2Pe8lHnkdXC2qiu9pYa09vHJdU2aQSTXkInHNeSJCFrcNXevJzRnnt4fIQmIukhnahyMMEuiBQV2PuED9QZA005jU5Xb17BccBJA+X+jKFzBE0M3XKCygi4NnD4CRNB0GBzPLvqMgMZcYwkbIE9rHgAMy7KGbp57OgmFpEHa/2yHEbvDVZAMnWnVyPUlF1degqm1ce4ddy16oOecyyDSVXeTgNO2TYsVCArysdiXM/pxdZlOyeVdQLcchy9nkq08lwpg8J2xKsNW/4XAp4jQQxRkKjlgKVd9vGjcEJaJt5Creu2ATw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hOVogaPg211amCTXnanFw5x+1/S67p/VuCo4B1auadI=;
 b=pN7ldTgv4M88s14OxJ+xPCECtoa65xa9qDf5JCoPhKdZ1Q+eVPL/NH3FX//+4FV+8ZsAodSIryW3WAYoU/xVZ4zn9tt/U4tdOFnjUjK6wm2t4lzcARA1a8lJ6yhA3PL6zIhRjjbIdz3qhqaZnOgmzem8qnQTX0rAc0BRoUW4fUlqQZa7SSouZwqJN8ouU/hhbiHFbbKA1D09zlWrsM91JHCs3NC1gcn6CCjhtCKSAEOHM6HQk40fXG78SEei7gT+GRnVPdvimN6YcZ0MK022gkQIRN1RyTGrV3EkThlJXrPGkjtWQ2uSMUNTdDsyciABYu6jCm7Mmwem0jdhZOYFmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=hOVogaPg211amCTXnanFw5x+1/S67p/VuCo4B1auadI=;
 b=uSfsIgeVhc7MyorknSNxDggHON2OoQx6DHltZO8z6aYvqOeX8p7yauy5WA+mJG9AnO+MzbAlFL3TTDT3kwAIPgAIdewt9GpbFFA4FsP26UwWffC22WFnuiBIZARvcadI5QtUiBYptCB/KqDJ1x1/c7WzbpNkI7eslR+n94KFS38=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <54d9913f-55ff-46a8-b43c-2e20c5640985@amd.com>
Date: Fri, 8 Nov 2024 15:48:03 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/12] x86/boot: add start and size fields to struct
 boot_module
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-10-dpsmith@apertussolutions.com>
 <bd4fa542-7e05-463d-99d7-b5c57781a56e@amd.com>
 <c8d690f9-a357-44de-a6e5-4bbab4256c51@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <c8d690f9-a357-44de-a6e5-4bbab4256c51@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB75:EE_|PH7PR12MB7795:EE_
X-MS-Office365-Filtering-Correlation-Id: 0dc93915-76af-43e2-b387-08dd0036a5de
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:
	=?utf-8?B?dHJXU3I1Nzc5WWEzMndDTUxiNkwwcGh1OGcvM21uY0RGbUtpR3V0VldEQkxF?=
 =?utf-8?B?U3g4WjBkRjVOYjVlbG9VYVNmRURHTmU1Z0txaUlybGp5VlBVblhOczZtemti?=
 =?utf-8?B?cWZzdEtLU1gzaTZNeU9KTXRwU20xU3hFRUY0OXY4ZXRyS0RFdW16cURhMkts?=
 =?utf-8?B?MHd2ejFXZ1ZLOUVnbDBSekI5NnNmN3hJWmtzYjFzMDExQmVwUzJEc1M2Z1pC?=
 =?utf-8?B?SGVJdTYzaDVpK2tZWkk5SndpVklrRk1uTG5GR3hBQzRtNk9rSFhGYko0TUdN?=
 =?utf-8?B?Q0Q1czJUa3F4TVd1YTc5N3JLTjZLTHdBbUMvWUI0aURsVXJkeVprRk5NbmUx?=
 =?utf-8?B?YXh1TnlNdHBsdHVTRXZ1VEdiamZnYTMwZVNmY1FGVE1PMFplVm9MKzdMNXBK?=
 =?utf-8?B?SU9lOVM3K0pFNGVWQzNUMUUzL21VUy9mdWpOQ2xvaGYzVisrYk5ETGx6a1px?=
 =?utf-8?B?ai9iRUw0L1ZxM0RDUnRQaGRhMU5XWlgwb3llOGliczdLVnVqb1A4bVg4WmtN?=
 =?utf-8?B?YU1iRm1JMkFMdFdBdFZQb3N1M3lDekI0VVJDU2wveEEwOFdzNkdOeWxndUJz?=
 =?utf-8?B?TWovOGFOTHNXamRwVEkxcVBQQWYyUnF3WTdnK1RWVlNvbDJ5UlUxeU5xSVRa?=
 =?utf-8?B?RFlFWU5taGNZeTBxOWwxSng2Y1FmRnRmZWtXVDhvbVl0TGQyNUpJLzMxclcx?=
 =?utf-8?B?MUlRMkxNWlh4aUJqSlFZU005bm5RQkJObWlveDdZa2hrYUxMVUhKeVZXMEY5?=
 =?utf-8?B?QW1iUzJRN3JndkNKejkrVk9nNjIra0VoVWVKbVR0VzhDYW0rVzdtbGRaQjI3?=
 =?utf-8?B?dUxFS3ZuekNEZjdkMkdzK0NwcGVUeTE0ODA3SnVqb1F6NTFvSFZDOFRvYjMw?=
 =?utf-8?B?MXlIU1hRQVpza3RXQ1l2c05YL3ZMekNrSTFuY2l4cTFqQnZIZDh5NEVkWEdU?=
 =?utf-8?B?YTAxbDV5ZDU5aHBEQThVS3ErcGx0ZHlFTFdpMEJDRHZTODVlMi9yMTF0NFdW?=
 =?utf-8?B?cjgvZm1PNjlCNEl2UWY4Q1dZTUVxOHBNWDZCOE5kenB5YXFEOFFqcnZIZllh?=
 =?utf-8?B?WnFrL29CblIrY1J0UFoxOFpxSytBSHpXVlo0RWtpTkR4bUJZaER0MVBSejZx?=
 =?utf-8?B?enJ1WFR0aGRFYzgydkVhTjh6dDVHMmNCdEJJdURKOVFEbHpWTWtydHV6STVG?=
 =?utf-8?B?b0RrOUtiZEZRbEFHNGZENTlCT2dEUnhvMDU2OC9idU0zSlpUNFV4MWQwaEFr?=
 =?utf-8?B?ZnBpWFFLbWZVY01RZHY3OHdVSXRUL29mYkYzd1JkNGhXdXY4bTFrVThKbkNU?=
 =?utf-8?B?Q2h3YVNIU2NzaU1PMk82NXJNbkxVK0pxUEFBQitGdFRwNDJGQmpHSXk5T0lV?=
 =?utf-8?B?bEpEdkFpREl5a25HMmQ4U1Rkb29FUzJNRkhvTkFNdGhjMys3N2xKK0lZMG1z?=
 =?utf-8?B?aWdxUEJwMGNkdXVRWWtGU2N1cEhsTktuZjR3RklrSGJ1bVRldzFmOEtaaEtC?=
 =?utf-8?B?ckd6UUc1dllWK2RCaGx0aW1jUHlGb0FKc3RoN3Z2SUNxTHpnUkJ1c1luN0hQ?=
 =?utf-8?B?UEZtQzZXS2g0TVZ6enJLNC8rUjF1bG1HNHRhMGMrMGJiNHRDL0hYVFZkRnh4?=
 =?utf-8?B?RWs4UENNL1kvVjc5NlZaanJRUVBUTEJqREhRcjVDVzZuYmJpbFRvZ0V2YnFR?=
 =?utf-8?B?T3dsYlFTUUsxTmk4YU9ab3FVQ00zc1N3bWEvVVY1RnhNZ3FsY2FUMkdVak8w?=
 =?utf-8?B?elNTV2paNnhiV1RLM0pCQnFVcHh5dGtwSGpWL1JiRmp3QkRCbldSM3VVdDNP?=
 =?utf-8?B?N09CeHAxYlZOS2ovZXpKckUra1dFbkMyS1lkcUJvaXdyS29JTDMxYnVEK3Na?=
 =?utf-8?B?N2JQQWZLd0hKUTV4b2NZbUVVOEFzV3U1MkJ5VmFTY2tUN3c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 08 Nov 2024 20:48:06.7079
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0dc93915-76af-43e2-b387-08dd0036a5de
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB75.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7795

On 2024-11-08 14:17, Daniel P. Smith wrote:
> On 11/7/24 15:47, Jason Andryuk wrote:
>> On 2024-11-02 13:25, Daniel P. Smith wrote:
>>> @@ -1745,13 +1733,11 @@ void asmlinkage __init noreturn 
>>> __start_xen(void)
>>> Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>>> Â Â Â Â Â  {
>>> -Â Â Â Â Â Â Â  const struct boot_module *bm = &bi->mods[i];
>>> +Â Â Â Â Â Â Â  unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
>>> -Â Â Â Â Â Â Â  set_pdx_range(bm->mod->mod_start,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->mod->mod_start + PFN_UP(bm->mod->mod_end));
>>> -Â Â Â Â Â Â Â  map_pages_to_xen((unsigned long)mfn_to_virt(bm->mod- 
>>> >mod_start),
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  _mfn(bm->mod->mod_start),
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  PFN_UP(bm->mod->mod_end), PAGE_HYPERVISOR);
>>> +Â Â Â Â Â Â Â  set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s) + PFN_UP(l));
>>
>> This is fine today since s (.start) is checked for page alignment.  
>> The other option would be `paddr_to_pfn(s + l) + 1`, but I'm not sure 
>> that is an improvement.
> 
> Out of curiosity, why are you thinking that module start would never be 
> paged aligned?

I think you have an extra negation - the module start is always page 
aligned as checked elsewhere.

While reviewing, I was just noting that this code starts rounding 
addresses when it previously operated on pfns.  Non page-aligned s + l 
could then cross a page boundary.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 08 21:11:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Nov 2024 21:11:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.832964.1248270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9WG0-0008PZ-0B; Fri, 08 Nov 2024 21:11:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 832964.1248270; Fri, 08 Nov 2024 21:11: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 1t9WFz-0008PS-Th; Fri, 08 Nov 2024 21:11:03 +0000
Received: by outflank-mailman (input) for mailman id 832964;
 Fri, 08 Nov 2024 21:11: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=ALGw=SD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9WFy-0008PM-G2
 for xen-devel@lists.xenproject.org; Fri, 08 Nov 2024 21:11:02 +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 f2caa4b8-9e15-11ef-99a3-01e77a169b0f;
 Fri, 08 Nov 2024 22:10:57 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43162cf1eaaso30343865e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 13:10:57 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432bb8c3b15sm25145615e9.2.2024.11.08.13.10.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Nov 2024 13:10: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: f2caa4b8-9e15-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYyY2FhNGI4LTllMTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMTAwMjU3Ljg4MzE3Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731100257; x=1731705057; 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=OxLZ5lReg8T7Q190Q0FkUEVXOrw7aGYZzDmv4DHdKB0=;
        b=rdOi4A6nsosmCgZP7old40RA7ROT6ROZ0Ulhsz+E2saIIcEK66jLR3N8wdqyZAE+gu
         x85hqNR4I6I99HQwAXiPeQnR3J2K+mXY37InC2gSUxC6IjXzIOH22WSq5HqzpIwhLoOH
         5ZpaJZbukjKhK+kg2Lpk9KlIUQt90oWq77LcI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731100257; x=1731705057;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OxLZ5lReg8T7Q190Q0FkUEVXOrw7aGYZzDmv4DHdKB0=;
        b=R0wbXiQT2fx5gft1BF9Qmf+VRW3k72a3duX9GEa66NngkY6l3g7/oQHH+lmaOVTfRk
         C7VLYtHkNfa6bGmAukoeGDFDFdnsHSezEmE8VwQxxLwAET9FslGFp5DQGFpVEfQVy27l
         xCViJrpe8bENB5goOOzZUUOOJNlCIRjXsjXzQZIN4uThhhv4uGbVmlcCGSGtbBWChZDC
         R1WXxzAbhzD+FwqGg9sHQ/6k51K9ZHYQTz/clv1H4krO8Crc2KQh442r2VPMFIcRvVBJ
         aQKRG4VCy23f9BBSb6RL/GhyqdACF7pC2ZkGsBeywtxcDZeO3/fum/JVoESdGquuti5/
         E71Q==
X-Forwarded-Encrypted: i=1; AJvYcCUmsFzrjh/DSSGBmxOcKDOrJv2fWy2fapA/RuUoTCKtyvE5Puk/0hBTnFmpPppL+vXRikcEh/jqBh8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx72RzchfcfJQCBhWH6WsnqqMQJ5QV3s4CvQgLZ1o/y360PjSpl
	1MkwzOqYhp5jhFjKeoB7EfKxY3ySqdJGMiZgKbLjh4W3sdPnbDUpu03MfAHuK3Y=
X-Google-Smtp-Source: AGHT+IFjMFroz/j3YdTkrr80WJTP2e1L5dqwAtO8/uo2Z3qdXm+K841Uy2Kn9D6RpuSgCD8dse3GDQ==
X-Received: by 2002:a05:6000:2587:b0:37d:39d8:b54b with SMTP id ffacd0b85a97d-381f188af64mr4394172f8f.58.1731100257209;
        Fri, 08 Nov 2024 13:10:57 -0800 (PST)
Message-ID: <f1aa733c-b4eb-493e-88db-73e2192c8320@citrix.com>
Date: Fri, 8 Nov 2024 21:10:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/12] x86/boot: add start and size fields to struct
 boot_module
To: Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-10-dpsmith@apertussolutions.com>
 <bd4fa542-7e05-463d-99d7-b5c57781a56e@amd.com>
 <c8d690f9-a357-44de-a6e5-4bbab4256c51@apertussolutions.com>
 <54d9913f-55ff-46a8-b43c-2e20c5640985@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <54d9913f-55ff-46a8-b43c-2e20c5640985@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/11/2024 8:48 pm, Jason Andryuk wrote:
> On 2024-11-08 14:17, Daniel P. Smith wrote:
>> On 11/7/24 15:47, Jason Andryuk wrote:
>>> On 2024-11-02 13:25, Daniel P. Smith wrote:
>>>> @@ -1745,13 +1733,11 @@ void asmlinkage __init noreturn
>>>> __start_xen(void)
>>>> Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>>>> Â Â Â Â Â  {
>>>> -Â Â Â Â Â Â Â  const struct boot_module *bm = &bi->mods[i];
>>>> +Â Â Â Â Â Â Â  unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
>>>> -Â Â Â Â Â Â Â  set_pdx_range(bm->mod->mod_start,
>>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->mod->mod_start + PFN_UP(bm->mod->mod_end));
>>>> -Â Â Â Â Â Â Â  map_pages_to_xen((unsigned long)mfn_to_virt(bm->mod-
>>>> >mod_start),
>>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  _mfn(bm->mod->mod_start),
>>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  PFN_UP(bm->mod->mod_end), PAGE_HYPERVISOR);
>>>> +Â Â Â Â Â Â Â  set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s) + PFN_UP(l));
>>>
>>> This is fine today since s (.start) is checked for page alignment.Â 
>>> The other option would be `paddr_to_pfn(s + l) + 1`, but I'm not
>>> sure that is an improvement.
>>
>> Out of curiosity, why are you thinking that module start would never
>> be paged aligned?
>
> I think you have an extra negation - the module start is always page
> aligned as checked elsewhere.
>
> While reviewing, I was just noting that this code starts rounding
> addresses when it previously operated on pfns.Â  Non page-aligned s + l
> could then cross a page boundary.

It's worth saying that until this patch, Xen critically depends on
modules having 4k alignment.

This patch finally breaks that dependency, so we can e.g. load microcode
actually-early on boot.

While the modules are currently aligned, lets try and write code which
doesn't assume it.

So yes, probably best to have

Â Â Â  set_pdx_range(paddr_to_pfn(s), PFN_UP(s + l));

here.Â  (I think?)

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Nov 09 00:37:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Nov 2024 00:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833010.1248300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9ZTP-0007U6-ND; Sat, 09 Nov 2024 00:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833010.1248300; Sat, 09 Nov 2024 00:37: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 1t9ZTP-0007Tz-KN; Sat, 09 Nov 2024 00:37:07 +0000
Received: by outflank-mailman (input) for mailman id 833010;
 Sat, 09 Nov 2024 00:37: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=7Zvo=SE=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1t9ZTN-0007Tt-QZ
 for xen-devel@lists.xenproject.org; Sat, 09 Nov 2024 00:37:05 +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 ba2088ca-9e32-11ef-a0c6-8be0dac302b0;
 Sat, 09 Nov 2024 01:36:58 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a99f1fd20c4so390008466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 16:36:58 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0ad2cdcsm294743766b.87.2024.11.08.16.36.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 16: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: ba2088ca-9e32-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJhMjA4OGNhLTllMzItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMTEyNjE4LjUwNDE5LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731112617; x=1731717417; 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=tMqDlkmdt/fddKZMacTV945+a8ec8UbBh+hwQOHboRo=;
        b=HyF5+bSdCpPyMid/LWhlsouFQ+wDFXwHJByvw2Np3MPTQe1X4ORNAwB8hChyWVer6C
         HXRVB3ilYQL3Buh/omnVsuBU7615HKbJWyK6DsOCEtZR32RSSYIPpqIeXMfUfMF4M92g
         l8odEsFKoVJj3gb005ZfqZxmNFI4bath/hdwI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731112617; x=1731717417;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=tMqDlkmdt/fddKZMacTV945+a8ec8UbBh+hwQOHboRo=;
        b=NnBqocQ4P8nKLpNl/xojbEV5t9jTvjAf4fUT6rE2eFESXLVU7Tm4ClCiT5a4q/3pK1
         +UbPQbh+AbCXkzDaYKWWbgywrHUoXuYnT5qS+ZBYUe2JnpZmBr2QYV0anf/6Idkh9B71
         jOMOZEnvG2+USxrN6RhatcWR0YWx0t9z4QNvb9GH7DIaMH6s7oJbbqN2P3eR27+uxiOa
         GSskoVIOjc9PAvt7QXzgakPwEicZDllk7M9K2owBiJDkAJTECY4KsvJXg8FueVkVtjZe
         8LZjP7TJDQXyyX83SKlRrYV++DqSCPhTfR3TSnvVnTvM1WVEXsaYf1/WTQWcRfNE4cxM
         KHKw==
X-Gm-Message-State: AOJu0Yx9NsSJBkBEsiAYsv8UDgXkAIrO1fNvA+o+lMfJSNXBkIOUj9Xp
	QNsT5jb/AlCmghUj5QKNZR5VPYDVdsA2Jyo3WTp6dKW41Aw5BRQxHnExTe45iIBp+dokT6CChOQ
	M
X-Google-Smtp-Source: AGHT+IEpoeQ7J/3kohUZZrrSK4cg7vHNUX8hAexOALYXq8HaLGo+LVJ53p2s0kGyl+IysZTEwliprA==
X-Received: by 2002:a17:907:608a:b0:a99:499f:4cb7 with SMTP id a640c23a62f3a-a9eeff0e34fmr469881066b.23.1731112617267;
        Fri, 08 Nov 2024 16:36: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>
Subject: [PATCH] x86/wakeup: Fix code generation for bogus_saved_magic
Date: Sat,  9 Nov 2024 00:36:54 +0000
Message-Id: <20241109003654.884288-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

bogus_saved_magic() is in a .code64 section but invokved in 32bit mode.  This
causes a real encoding difference.

Before:
  66 c7 04 25 14 80 0b 00 53 0e    movw   $0xe53,0xb8014(,%eiz,1)

After:
  66 c7 05 14 80 0b 00 53 0e       movw   $0xe53,0xb8014

The differnce happens to be benign, but move the logic back into a .code32 for
sanity sake.  Annotate it with ELF metadata while doing so.

Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

This issue dates back to the very introduction of S3 support in Xen, in 2007.
---
 xen/arch/x86/boot/wakeup.S | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
index 08447e193496..c929fe921823 100644
--- a/xen/arch/x86/boot/wakeup.S
+++ b/xen/arch/x86/boot/wakeup.S
@@ -153,15 +153,16 @@ wakeup_32:
         /* Now in compatibility mode. Long-jump to 64-bit mode */
         ljmp    $BOOT_CS64, $bootsym_rel(wakeup_64,6)
 
+FUNC_LOCAL(bogus_saved_magic, 0)
+        movw    $0x0e00 + 'S', 0xb8014
+        jmp     bogus_saved_magic
+END(bogus_saved_magic)
+
         .code64
 wakeup_64:
         /* Jump to high mappings and the higher-level wakeup code. */
         movabs  $s3_resume, %rbx
         jmp     *%rbx
 
-bogus_saved_magic:
-        movw    $0x0e00 + 'S', 0xb8014
-        jmp     bogus_saved_magic
-
 /* Stack for wakeup: rest of first trampoline page. */
 ENTRY(wakeup_stack_start)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Nov 09 06:29:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Nov 2024 06:29:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833057.1248326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9exc-0006Yw-75; Sat, 09 Nov 2024 06:28:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833057.1248326; Sat, 09 Nov 2024 06:28: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 1t9exc-0006Yp-2m; Sat, 09 Nov 2024 06:28:40 +0000
Received: by outflank-mailman (input) for mailman id 833057;
 Sat, 09 Nov 2024 06:28: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=JlmF=SE=gmail.com=th.huth@srs-se1.protection.inumbo.net>)
 id 1t9exa-0006Yj-5T
 for xen-devel@lists.xenproject.org; Sat, 09 Nov 2024 06:28:38 +0000
Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com
 [209.85.218.45]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7e147c0-9e63-11ef-99a3-01e77a169b0f;
 Sat, 09 Nov 2024 07:28:33 +0100 (CET)
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-a9e8522c10bso435923566b.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 22:28:33 -0800 (PST)
Received: from tpx1 (ip-109-42-51-55.web.vodafone.de. [109.42.51.55])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2f063sm320647166b.203.2024.11.08.22.28.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 22:28: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: d7e147c0-9e63-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwOS44NS4yMTguNDUiLCJoZWxvIjoibWFpbC1lajEtZjQ1Lmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQ3ZTE0N2MwLTllNjMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMTMzNzEzLjQ0MjI4LCJzZW5kZXIiOiJ0aC5odXRoQGdtYWlsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731133713; x=1731738513;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dNJVGivY9x2lfWzH3SyeTmuDvzlThAkBFU1sZtixOO0=;
        b=QY2loqGeqbb6hSHde62EV2WMXTpE/hyIn9E6sDpiJPnbihqTi/QcJU/LYGLZ/DGv71
         fc4Lv1fwglqR2ZJ4K5DZMVVhMHymX9110UoXRMRAKrUyDPME/ID80Wzp5ikWZtdKgwnB
         t6S3dgrJFuvaazKgoHMbcJ8ffMAPpMNWOgeQWKzQbCZMTefOG+YXCg+p6OUMZTxhZwdv
         LXEyuDJBBqpMRRLKQT7W8K8m8hcQM5bie6CzemZViNTN8SDyLqcK/H6Fzl3Fb/4Zec1Z
         qqMvTogIIfsuw0YJfhNFeBmGZNmRA4wJiarP5uc+HSBA6LpjFTg9PEjJMNixJHaABumQ
         BDpA==
X-Forwarded-Encrypted: i=1; AJvYcCWmocCCrvnENNfc+l5OUF7WyWSxA5jowPYuy2lKPyCvTQRDmGtFNUhVCVO2YUOsdubccc2fJ+wZQys=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJVSoIQrxrj/2AVDE9mBTfgPG6+lwdNxAOEP+B7426pSJNOsuq
	8ncRUPnhJ1gOO2AqI+f/i/DyF0k4VBtYyYeI8xDgLsI3rMouIKdg
X-Google-Smtp-Source: AGHT+IEXPsP9CoMFa89mHLDjCHOdfjCyiUp6wyrPn1p/n+U5kkK9z9pYi0Eb3KM4Dr6nz3QLxzMJgQ==
X-Received: by 2002:a17:907:3e88:b0:a9a:662f:ff4a with SMTP id a640c23a62f3a-a9eec5823a8mr587122166b.0.1731133712484;
        Fri, 08 Nov 2024 22:28:32 -0800 (PST)
Date: Sat, 9 Nov 2024 07:28:29 +0100
From: Thomas Huth <huth@tuxfamily.org>
To: Philippe =?UTF-8?B?TWF0aGlldS1EYXVkw6k=?= <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, Artyom Tarasenko <atar4qemu@gmail.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Richard Henderson
 <richard.henderson@linaro.org>, xen-devel@lists.xenproject.org, Paolo
 Bonzini <pbonzini@redhat.com>, Marcel Apfelbaum
 <marcel.apfelbaum@gmail.com>, "Edgar E. Iglesias"
 <edgar.iglesias@gmail.com>, Bastian Koppelmann
 <kbastian@mail.uni-paderborn.de>, Anthony PERARD <anthony@xenproject.org>,
 Eduardo Habkost <eduardo@habkost.net>, Jia Liu <proljc@gmail.com>, Stafford
 Horne <shorne@gmail.com>, Paul Durrant <paul@xen.org>, Mark Cave-Ayland
 <mark.cave-ayland@ilande.co.uk>, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH 3/5] hw/m68k: Mark devices as big-endian
Message-ID: <20241109072829.205680ca@tpx1>
In-Reply-To: <20241106184612.71897-4-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
	<20241106184612.71897-4-philmd@linaro.org>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.43; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Am Wed,  6 Nov 2024 18:46:10 +0000
schrieb Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>:

> These devices are only used by the M68K target, which is only
> built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
> definition expand to DEVICE_BIG_ENDIAN (besides, the
> DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
> using DEVICE_BIG_ENDIAN.
>=20
> Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
> ---
>  hw/m68k/mcf5206.c  | 2 +-
>  hw/m68k/mcf5208.c  | 6 +++---
>  hw/m68k/mcf_intc.c | 2 +-
>  hw/m68k/next-kbd.c | 2 +-
>  4 files changed, 6 insertions(+), 6 deletions(-)

Reviewed-by: Thomas Huth <huth@tuxfamily.org>


From xen-devel-bounces@lists.xenproject.org Sat Nov 09 06:38:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Nov 2024 06:38:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833068.1248335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9f74-0008ES-5m; Sat, 09 Nov 2024 06:38:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833068.1248335; Sat, 09 Nov 2024 06:38: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 1t9f74-0008EL-38; Sat, 09 Nov 2024 06:38:26 +0000
Received: by outflank-mailman (input) for mailman id 833068;
 Sat, 09 Nov 2024 06:38: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=JlmF=SE=gmail.com=th.huth@srs-se1.protection.inumbo.net>)
 id 1t9f72-0008EF-VL
 for xen-devel@lists.xenproject.org; Sat, 09 Nov 2024 06:38:24 +0000
Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com
 [209.85.208.52]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36b78648-9e65-11ef-a0c6-8be0dac302b0;
 Sat, 09 Nov 2024 07:38:22 +0100 (CET)
Received: by mail-ed1-f52.google.com with SMTP id
 4fb4d7f45d1cf-5cecbddb574so3455731a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 22:38:22 -0800 (PST)
Received: from tpx1 (ip-109-42-51-55.web.vodafone.de. [109.42.51.55])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7e803sm2718538a12.22.2024.11.08.22.38.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 22:38: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: 36b78648-9e65-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwOS44NS4yMDguNTIiLCJoZWxvIjoibWFpbC1lZDEtZjUyLmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjM2Yjc4NjQ4LTllNjUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMTM0MzAyLjA2MDk1OSwic2VuZGVyIjoidGguaHV0aEBnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731134302; x=1731739102;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Yh9OIV9oZswSsFPCTF0kPB7VF1ucoQK7O4BeLuZMrcY=;
        b=UOKp7ODy2o8iFqs7iIQ/9HXzzWjyHqYeo5+5RiJvQO9ZfYSDGCel5QNvCdNfZJ06HD
         ilTJxl6pyjluK/XRhF4X6fWktJrkh9Fb/hRf32fupiBm9esGaJSpMnJK0uZUOeUGQ1Uy
         bRexuKo06unXTSiQT65DrgVNMyzJc3eC8rxYOYC9UpZja/FWRw8HqFD8bJYvtpkTHJxt
         XWoCOZS3HuJ/5dXfDd2HJd+n/kjDkxSlCrX4/GVjB5boDzGighnLK3JlpyFd3v4Amyor
         2apNyAytfr/3TMA9rPZbxZjp4KDpedMi4mX7xqZmEIrAA++9m9yX62eOfOkVSfLy+WR+
         6TUA==
X-Forwarded-Encrypted: i=1; AJvYcCUiNwnnFSD2cy7X20+JMYq4IMgHZhA5AdNFtAATWhPXJcGPrP4nfeRXPtose9iQq6UCM046cN6ecXE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVI40DdpUSGUC3YqF9eWxw34QA8Ogh3iKBPu/XzFtJ79yf7cMR
	X/u3NdzitOeMp8M+tjzNmPvLycNe22OVKwBZBHKNLmdEF+iNPZ25L7yHrHhf
X-Google-Smtp-Source: AGHT+IHPajL9uDCipqaoWRFvEDIWChGJwvUQQ3wq/EqOC6SQN31/8hSCkCC0GORuyRX1TGgUbym+oA==
X-Received: by 2002:a05:6402:1ed4:b0:5ca:14f3:2883 with SMTP id 4fb4d7f45d1cf-5cf0a2faec8mr4822397a12.4.1731134301339;
        Fri, 08 Nov 2024 22:38:21 -0800 (PST)
Date: Sat, 9 Nov 2024 07:38:17 +0100
From: Thomas Huth <huth@tuxfamily.org>
To: Philippe =?UTF-8?B?TWF0aGlldS1EYXVkw6k=?= <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, Artyom Tarasenko <atar4qemu@gmail.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Richard Henderson
 <richard.henderson@linaro.org>, xen-devel@lists.xenproject.org, Paolo
 Bonzini <pbonzini@redhat.com>, Marcel Apfelbaum
 <marcel.apfelbaum@gmail.com>, "Edgar E. Iglesias"
 <edgar.iglesias@gmail.com>, Bastian Koppelmann
 <kbastian@mail.uni-paderborn.de>, Anthony PERARD <anthony@xenproject.org>,
 Eduardo Habkost <eduardo@habkost.net>, Jia Liu <proljc@gmail.com>, Stafford
 Horne <shorne@gmail.com>, Paul Durrant <paul@xen.org>, Mark Cave-Ayland
 <mark.cave-ayland@ilande.co.uk>, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH 2/5] hw/tricore: Mark devices as little-endian
Message-ID: <20241109073817.40177d87@tpx1>
In-Reply-To: <20241106184612.71897-3-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
	<20241106184612.71897-3-philmd@linaro.org>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.43; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Am Wed,  6 Nov 2024 18:46:09 +0000
schrieb Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>:

> These devices are only used by the TriCore target, which is
> only built as little-endian. Therefore the DEVICE_NATIVE_ENDIAN
> definition expand to DEVICE_LITTLE_ENDIAN (besides, the
> DEVICE_BIG_ENDIAN case isn't tested). Simplify directly using
> DEVICE_LITTLE_ENDIAN.
>=20
> Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
> ---
>  hw/tricore/tricore_testdevice.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Thomas Huth <huth@tuxfamily.org>


From xen-devel-bounces@lists.xenproject.org Sat Nov 09 06:39:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Nov 2024 06:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833074.1248347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9f7x-0000J1-Fa; Sat, 09 Nov 2024 06:39:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833074.1248347; Sat, 09 Nov 2024 06: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 1t9f7x-0000Is-B8; Sat, 09 Nov 2024 06:39:21 +0000
Received: by outflank-mailman (input) for mailman id 833074;
 Sat, 09 Nov 2024 06:39: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=JlmF=SE=gmail.com=th.huth@srs-se1.protection.inumbo.net>)
 id 1t9f7v-0008EF-Vx
 for xen-devel@lists.xenproject.org; Sat, 09 Nov 2024 06:39:19 +0000
Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com
 [209.85.221.41]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57a92353-9e65-11ef-a0c6-8be0dac302b0;
 Sat, 09 Nov 2024 07:39:17 +0100 (CET)
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-37d473c4bb6so2471329f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 22:39:17 -0800 (PST)
Received: from tpx1 (ip-109-42-51-55.web.vodafone.de. [109.42.51.55])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0deef4bsm324372866b.138.2024.11.08.22.39.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 22:39: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: 57a92353-9e65-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwOS44NS4yMjEuNDEiLCJoZWxvIjoibWFpbC13cjEtZjQxLmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjU3YTkyMzUzLTllNjUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMTM0MzU3LjQxOTEwMiwic2VuZGVyIjoidGguaHV0aEBnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731134357; x=1731739157;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=v0bCOe3u0gtgRNy9hKRvSdASo+/BgARCB/z16A9uSDU=;
        b=T3bX8NGdFPBDNLt/msUoiA1JQLKbjLcfoWvdiizwK0qK5udJffUGCxJS4hx5fqro92
         mkoM7qxyLTMZPeEXU2tqI16bgR5e/7LT/6qOO8VKeJqb2FsfFTr5vhF++uy/hhoiHFAN
         AaBOQJTuZFzZ+3zYi92aL0erL8wu1VGLJ0WazmhfIrd4Dzu1qxyJDv70X1iEPkXeh6nP
         SJFBgm1ca6L7Uw4wiVWPliZ/l0KGhDEN/pQctAe0uGZQI58PkuAwty/HupFgq981CEy7
         OadJtdpWB+x5i2zXkFqTmrFNbpBUEso/n9ptTVN0tfC5+VoC9LMa/u0I23vVeuet5LQ5
         Xt7A==
X-Forwarded-Encrypted: i=1; AJvYcCXuY7QhETef8VL2p7Io51S/ibiu8fgCKX6IXz4yRpQK8WDyRKtxD1cJ+z+8E9jZ4p4Pl+mgZx7RO80=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyToqBGXN3DX5pKDmSVeVsyk8B46VoM0JnsOSRRIlNW9mLbsIIJ
	bPxBNY04nsAhKgtsEzEodobgLq4BhkN65UyFvYyTYFeUBTGnlBNr
X-Google-Smtp-Source: AGHT+IGzVbwX9id1Pl7vidS2UUBLfPO0kJyH3hRsr2sBMlSE6+jJdE0A7qwElRUZVOCsCCSoj+zjZQ==
X-Received: by 2002:a5d:5886:0:b0:37d:5130:b380 with SMTP id ffacd0b85a97d-381f186cbbemr5239484f8f.23.1731134355294;
        Fri, 08 Nov 2024 22:39:15 -0800 (PST)
Date: Sat, 9 Nov 2024 07:39:12 +0100
From: Thomas Huth <huth@tuxfamily.org>
To: Philippe =?UTF-8?B?TWF0aGlldS1EYXVkw6k=?= <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, Artyom Tarasenko <atar4qemu@gmail.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Richard Henderson
 <richard.henderson@linaro.org>, xen-devel@lists.xenproject.org, Paolo
 Bonzini <pbonzini@redhat.com>, Marcel Apfelbaum
 <marcel.apfelbaum@gmail.com>, "Edgar E. Iglesias"
 <edgar.iglesias@gmail.com>, Bastian Koppelmann
 <kbastian@mail.uni-paderborn.de>, Anthony PERARD <anthony@xenproject.org>,
 Eduardo Habkost <eduardo@habkost.net>, Jia Liu <proljc@gmail.com>, Stafford
 Horne <shorne@gmail.com>, Paul Durrant <paul@xen.org>, Mark Cave-Ayland
 <mark.cave-ayland@ilande.co.uk>, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH 1/5] hw/i386: Mark devices as little-endian
Message-ID: <20241109073912.711357a8@tpx1>
In-Reply-To: <20241106184612.71897-2-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
	<20241106184612.71897-2-philmd@linaro.org>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.43; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Am Wed,  6 Nov 2024 18:46:08 +0000
schrieb Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>:

> These devices are only used by the X86 targets, which are only
> built as little-endian. Therefore the DEVICE_NATIVE_ENDIAN
> definition expand to DEVICE_LITTLE_ENDIAN (besides, the
> DEVICE_BIG_ENDIAN case isn't tested). Simplify directly using
> DEVICE_LITTLE_ENDIAN.
>=20
> Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
> ---
>  hw/i386/kvm/apic.c         | 2 +-
>  hw/i386/pc.c               | 4 ++--
>  hw/i386/vapic.c            | 2 +-
>  hw/i386/xen/xen_apic.c     | 2 +-
>  hw/i386/xen/xen_platform.c | 2 +-
>  5 files changed, 6 insertions(+), 6 deletions(-)

Reviewed-by: Thomas Huth <huth@tuxfamily.org>


From xen-devel-bounces@lists.xenproject.org Sat Nov 09 06:42:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Nov 2024 06:42:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833080.1248356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9fB3-0001nW-SZ; Sat, 09 Nov 2024 06:42:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833080.1248356; Sat, 09 Nov 2024 06:42: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 1t9fB3-0001nP-Oa; Sat, 09 Nov 2024 06:42:33 +0000
Received: by outflank-mailman (input) for mailman id 833080;
 Sat, 09 Nov 2024 06:42: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=JlmF=SE=gmail.com=th.huth@srs-se1.protection.inumbo.net>)
 id 1t9fB2-0001nJ-Eg
 for xen-devel@lists.xenproject.org; Sat, 09 Nov 2024 06:42:32 +0000
Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com
 [209.85.208.48]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca0f4595-9e65-11ef-a0c6-8be0dac302b0;
 Sat, 09 Nov 2024 07:42:29 +0100 (CET)
Received: by mail-ed1-f48.google.com with SMTP id
 4fb4d7f45d1cf-5c95a962c2bso4216312a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Nov 2024 22:42:29 -0800 (PST)
Received: from tpx1 (ip-109-42-51-55.web.vodafone.de. [109.42.51.55])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0deeed0sm326761966b.139.2024.11.08.22.42.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Nov 2024 22:42: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: ca0f4595-9e65-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwOS44NS4yMDguNDgiLCJoZWxvIjoibWFpbC1lZDEtZjQ4Lmdvb2dsZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImNhMGY0NTk1LTllNjUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMTM0NTQ5LjIyNDc0MSwic2VuZGVyIjoidGguaHV0aEBnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731134549; x=1731739349;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=y/H2qO36ATbxDWZ4mWVuZziP41ISPn6jJdrrP3YzKMY=;
        b=dOEw7eCUXpjdHvYai1BZFPxD4WtkyjuQJiRyqlNMohP0KWQVmWnMUtjhIU8LLUskQR
         3DQbXJHrkS1UDrGfKkQa3AtwLOfjCbrKNi9KkZvglURCu2NLQV+/IlymczFeFF+ElB4W
         wrfyiQngt4zlrysil6tm6LZ5AC48eR/WoO6Tb42tSGtHlmWGFl0/7FBfr2qLmSuuO9vP
         uU8GYFl63uTlhHxCpz7d7oXRLC1cpsDJMGv4w+SUMb9/L0oKZJ3rFceM8OUAhJWq4jUq
         aa7eSxhOo7GoT0/5Z1AoPUiAgRvVwspI+/Esl+9+H12L9uoRHZITGpPpCPpd+GDEn8j+
         aP7A==
X-Forwarded-Encrypted: i=1; AJvYcCVMJVW6MixubeprIrvejZyNrEIaOsZ9Bw7Qja/+hC5eB8vC6J0h8xUtTDaTNA72vh3wNgxrrhbgF/Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVpebxpWU8B9RJlC829AyLPfCfk7aWU4ZVz33+Myg6OSsTkJxa
	C8yHFzHMtaXxZjy8R4LOiMR3SN5AmwVHoFEGDZDQyWf+O/6SCJuX
X-Google-Smtp-Source: AGHT+IEpCDirefYJ1XvSvyjemP96RQwc9BT4xA6vRnMS9LAvfGorR3mF478Lf6M0MQqE1Secs8gIDA==
X-Received: by 2002:a17:907:60cf:b0:a9a:1253:4d81 with SMTP id a640c23a62f3a-a9eefff1ffemr431963466b.47.1731134548441;
        Fri, 08 Nov 2024 22:42:28 -0800 (PST)
Date: Sat, 9 Nov 2024 07:42:25 +0100
From: Thomas Huth <huth@tuxfamily.org>
To: Philippe =?UTF-8?B?TWF0aGlldS1EYXVkw6k=?= <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, Artyom Tarasenko <atar4qemu@gmail.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Richard Henderson
 <richard.henderson@linaro.org>, xen-devel@lists.xenproject.org, Paolo
 Bonzini <pbonzini@redhat.com>, Marcel Apfelbaum
 <marcel.apfelbaum@gmail.com>, "Edgar E. Iglesias"
 <edgar.iglesias@gmail.com>, Bastian Koppelmann
 <kbastian@mail.uni-paderborn.de>, Anthony PERARD <anthony@xenproject.org>,
 Eduardo Habkost <eduardo@habkost.net>, Jia Liu <proljc@gmail.com>, Stafford
 Horne <shorne@gmail.com>, Paul Durrant <paul@xen.org>, Mark Cave-Ayland
 <mark.cave-ayland@ilande.co.uk>, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH 4/5] hw/openrisc: Mark devices as big-endian
Message-ID: <20241109074225.76e0e4ad@tpx1>
In-Reply-To: <20241106184612.71897-5-philmd@linaro.org>
References: <20241106184612.71897-1-philmd@linaro.org>
	<20241106184612.71897-5-philmd@linaro.org>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.43; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Am Wed,  6 Nov 2024 18:46:11 +0000
schrieb Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>:

> These devices are only used by the OpenRISC target, which is
> only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
> definition expand to DEVICE_BIG_ENDIAN (besides, the
> DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
> using DEVICE_BIG_ENDIAN.
>=20
> Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
> ---
>  hw/openrisc/openrisc_sim.c | 2 +-
>  hw/openrisc/virt.c         | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>=20
> diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
> index 9fb63515ef..794c175bdb 100644
> --- a/hw/openrisc/openrisc_sim.c
> +++ b/hw/openrisc/openrisc_sim.c
> @@ -266,7 +266,7 @@ static void openrisc_sim_serial_init(Or1ksimState *st=
ate, hwaddr base,
>      }
>      serial_mm_init(get_system_memory(), base, 0, serial_irq, 115200,
>                     serial_hd(OR1KSIM_UART_COUNT - uart_idx - 1),
> -                   DEVICE_NATIVE_ENDIAN);
> +                   DEVICE_BIG_ENDIAN);
> =20
>      /* Add device tree node for serial. */
>      nodename =3D g_strdup_printf("/serial@%" HWADDR_PRIx, base);
> diff --git a/hw/openrisc/virt.c b/hw/openrisc/virt.c
> index 47d2c9bd3c..ede57fe391 100644
> --- a/hw/openrisc/virt.c
> +++ b/hw/openrisc/virt.c
> @@ -236,7 +236,7 @@ static void openrisc_virt_serial_init(OR1KVirtState *=
state, hwaddr base,
>      qemu_irq serial_irq =3D get_per_cpu_irq(cpus, num_cpus, irq_pin);
> =20
>      serial_mm_init(get_system_memory(), base, 0, serial_irq, 115200,
> -                   serial_hd(0), DEVICE_NATIVE_ENDIAN);
> +                   serial_hd(0), DEVICE_BIG_ENDIAN);
> =20
>      /* Add device tree node for serial. */
>      nodename =3D g_strdup_printf("/serial@%" HWADDR_PRIx, base);

According to https://openrisc.io/or1k.html the openrisc CPU could be
implemented as little endian, too ... so would it make sense to use
a runtime detected value here instead?

 Thomas


From xen-devel-bounces@lists.xenproject.org Sat Nov 09 15:59:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Nov 2024 15:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833142.1248366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9nrS-0004pI-Gf; Sat, 09 Nov 2024 15:58:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833142.1248366; Sat, 09 Nov 2024 15: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 1t9nrS-0004pA-CW; Sat, 09 Nov 2024 15:58:54 +0000
Received: by outflank-mailman (input) for mailman id 833142;
 Sat, 09 Nov 2024 15:58: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=1MTz=SE=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1t9nrQ-0004p4-MH
 for xen-devel@lists.xenproject.org; Sat, 09 Nov 2024 15:58:52 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81afb6d7-9eb3-11ef-a0c6-8be0dac302b0;
 Sat, 09 Nov 2024 16:58:48 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4316e9f4a40so26737795e9.2
 for <xen-devel@lists.xenproject.org>; Sat, 09 Nov 2024 07:58:48 -0800 (PST)
Received: from [192.168.3.213] (73.red-95-127-47.staticip.rima-tde.net.
 [95.127.47.73]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432b05e5f77sm112739325e9.43.2024.11.09.07.58.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 09 Nov 2024 07:58: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: 81afb6d7-9eb3-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgxYWZiNmQ3LTllYjMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMTY3OTI4Ljc2MDY4OSwic2VuZGVyIjoicGhpbG1kQGxpbmFyby5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1731167928; x=1731772728; 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=O5QJBE+exSNEWl13piD/ZWc/zu8Q994F5xC83jXETjo=;
        b=Q6klVlkItgkbr1haRwhqXTzP0/SPTwVZXlHb8140a1whgVvcH7oBZxJye+xW+wjoOI
         XkaT738AAwdOJAkAzxkmGF/4QEDz0mEP/mEZBSRw0WIDMwo6tdx3QW6vgocnyCltU9zD
         RYwPNMp2iFiBrJxHQ/fmWE8EPP1ndY6gXG8i2LGlU9Z7pr+I8eYDPPaCkvN0mIIBri+I
         YtMMv76BKWzwZUnoer3KehIg9u/WfvIhcDszWRwzKcOUtoYyVfAOzpMYrG9FOWrRg9sx
         oclFk/CrTlho39qX6UtH3e23SCa4TUruu5w1/BpnCnYQwJVrx1/0yZcFxlswtVNBHTMa
         ZMCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731167928; x=1731772728;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=O5QJBE+exSNEWl13piD/ZWc/zu8Q994F5xC83jXETjo=;
        b=vC/qLmOBEVng31TUuWBe+PYH2sxK1Ns/h8Ikotque9WJJvEeV9A2QIt0Ihi6e4sf0V
         4oBiNNtl6uS9wt4f2l7YZoRr7kyDYFiih111oCIqZ279XjnNwXaBuxFnDcFyZbnoEOlo
         xZ/bi2bf8zD35f65eC+57nUP5EBriRrxvCKXcPE+9tb5I1dnMLdkJjC3H243iZZGPeOS
         PHPOBIKzlsiG3x1qGE/XNc9BXx6ec0Ws9IB1MMDSWAjIhmiF8SHGD26w8XoNJcCisbGX
         VhIwrCs/FHtvKrwuCeGUSVDNc7Rto+6susjlbu2OmpUXDPMYrkgnyfyt5I9AFiUO6dIS
         /eug==
X-Forwarded-Encrypted: i=1; AJvYcCXxyqIgESx8oGYY8GHhvgFuuIBFetfVa6g8C9rW0aXLvog0Q4/VsvlDI+4uQu9K9xTCmXX3h/Jl0IM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNAkpf3qutSv1Ue3P94drTX942bwQtGTU3nke6R/Yet+AO7vXh
	yfr260Db+c2bXSMWTN1ks5C4+CL3SNmKrqvCVKNegp+nshGX3DguEmrT8vxi0tU=
X-Google-Smtp-Source: AGHT+IEdF64Da16/injPEnNM4CGcXvREr92TI2x4tU2BHjXMu8nVHZ2fJ3gn9VKceL1Nt+6kSIG1bA==
X-Received: by 2002:a05:600c:4590:b0:42c:b4f2:7c30 with SMTP id 5b1f17b1804b1-432b7515c33mr55770805e9.23.1731167927842;
        Sat, 09 Nov 2024 07:58:47 -0800 (PST)
Message-ID: <84046f49-a39f-4639-a383-fa3c4a97e17a@linaro.org>
Date: Sat, 9 Nov 2024 16:58:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] hw/openrisc: Mark devices as big-endian
To: Thomas Huth <huth@tuxfamily.org>
Cc: qemu-devel@nongnu.org, Artyom Tarasenko <atar4qemu@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Richard Henderson <richard.henderson@linaro.org>,
 xen-devel@lists.xenproject.org, Paolo Bonzini <pbonzini@redhat.com>,
 Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
 "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
 Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
 Anthony PERARD <anthony@xenproject.org>,
 Eduardo Habkost <eduardo@habkost.net>, Jia Liu <proljc@gmail.com>,
 Stafford Horne <shorne@gmail.com>, Paul Durrant <paul@xen.org>,
 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
 "Michael S. Tsirkin" <mst@redhat.com>
References: <20241106184612.71897-1-philmd@linaro.org>
 <20241106184612.71897-5-philmd@linaro.org> <20241109074225.76e0e4ad@tpx1>
Content-Language: en-US
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20241109074225.76e0e4ad@tpx1>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Thomas,

On 9/11/24 06:42, Thomas Huth wrote:
> Am Wed,  6 Nov 2024 18:46:11 +0000
> schrieb Philippe Mathieu-DaudÃ© <philmd@linaro.org>:
> 
>> These devices are only used by the OpenRISC target, which is
>> only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
>> definition expand to DEVICE_BIG_ENDIAN (besides, the
>> DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
>> using DEVICE_BIG_ENDIAN.
>>
>> Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
>> ---
>>   hw/openrisc/openrisc_sim.c | 2 +-
>>   hw/openrisc/virt.c         | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)


>> diff --git a/hw/openrisc/virt.c b/hw/openrisc/virt.c
>> index 47d2c9bd3c..ede57fe391 100644
>> --- a/hw/openrisc/virt.c
>> +++ b/hw/openrisc/virt.c
>> @@ -236,7 +236,7 @@ static void openrisc_virt_serial_init(OR1KVirtState *state, hwaddr base,
>>       qemu_irq serial_irq = get_per_cpu_irq(cpus, num_cpus, irq_pin);
>>   
>>       serial_mm_init(get_system_memory(), base, 0, serial_irq, 115200,
>> -                   serial_hd(0), DEVICE_NATIVE_ENDIAN);
>> +                   serial_hd(0), DEVICE_BIG_ENDIAN);
>>   
>>       /* Add device tree node for serial. */
>>       nodename = g_strdup_printf("/serial@%" HWADDR_PRIx, base);
> 
> According to https://openrisc.io/or1k.html the openrisc CPU could be
> implemented as little endian, too ... so would it make sense to use
> a runtime detected value here instead?

While this patch is a code change, it aims to not introduce any
functional change. We are not building (nor testing) these devices
in a little endian configuration:

$ git grep -l TARGET_BIG_ENDIAN configs/targets/*softmmu*
configs/targets/hppa-softmmu.mak
configs/targets/m68k-softmmu.mak
configs/targets/microblaze-softmmu.mak
configs/targets/mips-softmmu.mak
configs/targets/mips64-softmmu.mak
configs/targets/or1k-softmmu.mak
                 ^^^^
configs/targets/ppc-softmmu.mak
configs/targets/ppc64-softmmu.mak
configs/targets/s390x-softmmu.mak
configs/targets/sh4eb-softmmu.mak
configs/targets/sparc-softmmu.mak
configs/targets/sparc64-softmmu.mak
configs/targets/xtensaeb-softmmu.mak

$ git grep -L TARGET_BIG_ENDIAN configs/targets/*softmmu*
configs/targets/aarch64-softmmu.mak
configs/targets/alpha-softmmu.mak
configs/targets/arm-softmmu.mak
configs/targets/avr-softmmu.mak
configs/targets/i386-softmmu.mak
configs/targets/loongarch64-softmmu.mak
configs/targets/microblazeel-softmmu.mak
configs/targets/mips64el-softmmu.mak
configs/targets/mipsel-softmmu.mak
configs/targets/riscv32-softmmu.mak
configs/targets/riscv64-softmmu.mak
configs/targets/rx-softmmu.mak
configs/targets/sh4-softmmu.mak
configs/targets/tricore-softmmu.mak
configs/targets/x86_64-softmmu.mak
configs/targets/xtensa-softmmu.mak

(no little-endian config here)

Having little-endian OpenRISC is certainly welcomed, but it
has to be done separately, preferably adding test coverage.

Should I rework the commit description to be more precise?

Regards,

Phil.



From xen-devel-bounces@lists.xenproject.org Sat Nov 09 17:30:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Nov 2024 17:30:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833155.1248377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1t9pHH-00082V-Qd; Sat, 09 Nov 2024 17:29:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833155.1248377; Sat, 09 Nov 2024 17:29: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 1t9pHH-00082O-Lm; Sat, 09 Nov 2024 17:29:39 +0000
Received: by outflank-mailman (input) for mailman id 833155;
 Sat, 09 Nov 2024 17:29: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=XhcN=SE=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1t9pHG-00082E-1F
 for xen-devel@lists.xenproject.org; Sat, 09 Nov 2024 17:29:38 +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 2ef0de09-9ec0-11ef-99a3-01e77a169b0f;
 Sat, 09 Nov 2024 18:29:34 +0100 (CET)
Received: by mail-oo1-xc34.google.com with SMTP id
 006d021491bc7-5ebc5b4190eso1618866eaf.3
 for <xen-devel@lists.xenproject.org>; Sat, 09 Nov 2024 09:29: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: 2ef0de09-9ec0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMzQiLCJoZWxvIjoibWFpbC1vbzEteGMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJlZjBkZTA5LTllYzAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMTczMzc0LjA2MTA3NCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731173372; x=1731778172; 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=MnBgyk+HuLO+pRn+kyxnKHxAr+iVsEbAFrfnjzBUHug=;
        b=jzZyG8vk1KKIFIEkk+xeFFrO99G4jolRl8LvXTWa8pmAxXYZ4ucMwqPjC7jepIMrJO
         BLrY3rhBpkL+JdXZPqtEOH0iyZhcWd2c4aqoB2bbP9nzcOQbyXEsjtISQF+RtZsPT8wm
         t24n1T/Q29/jiAXlgadKvboBJdGr0Fy5nG1ag=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731173372; x=1731778172;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MnBgyk+HuLO+pRn+kyxnKHxAr+iVsEbAFrfnjzBUHug=;
        b=RjAhvYzBauGPgH7vEN61v0vc5MKc1msdYUcxZuXKpOELWEpZkM1/EmY6Z/thhom74w
         L61pqjfiyySuENbGXOW7iZKxiuRxig86dmYx8HC3SiIigYIR0/DYRneQ83UOvdCq5ddq
         eW5L0aSO+lbosB2pDx/45xmjJ2J9cWTjd0PhFwmQcznY8J/H3IX5SyjAff8JUZetRFxc
         bye/ngEMkwb+Z9axdqd6OY6NJ7QzIjiR407wGMUwKTTtRtd0Q2ghAQoAPNWkWtimE/EY
         6yrROsVJYv87W27BMV99odQA8S13qCmNQf23e1QynMrFACHiYNpufnxs6G9Vl2VGJJKL
         xrFg==
X-Gm-Message-State: AOJu0Ywts5etDtDvszYB4A8CZuUo2iPHZgAN362RkwNuJsKQMV9BTAWw
	0xn0FZmYb4qe4Z99BiPPOmQf5kgkqcPsZIVvI6RJak6903X9wyffKA+90lSO/pvwwT/Uxe41liR
	H9mKIC3A9Gb8HC+rckv4VtKw9M23VkUcPiGDBgQ==
X-Google-Smtp-Source: AGHT+IHpHs69jJYd289OJp5TgEzS/9oloDlLcL4Kdd8K17XC5BO7K/vNbedDtCXPzfiYJM7FD0jzEX8UqRoKycDMs74=
X-Received: by 2002:a05:6820:1f08:b0:5ee:74:4d35 with SMTP id
 006d021491bc7-5ee57bb6560mr5389095eaf.2.1731173372376; Sat, 09 Nov 2024
 09:29:32 -0800 (PST)
MIME-Version: 1.0
References: <20241109003654.884288-1-andrew.cooper3@citrix.com>
In-Reply-To: <20241109003654.884288-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Sat, 9 Nov 2024 17:29:21 +0000
Message-ID: <CACHz=ZjBiEkXCGayGSdFUUc0eCFqSvGGSyFDMmRc76Nz_aP9QA@mail.gmail.com>
Subject: Re: [PATCH] x86/wakeup: Fix code generation for bogus_saved_magic
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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Nov 9, 2024 at 12:37=E2=80=AFAM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> bogus_saved_magic() is in a .code64 section but invokved in 32bit mode.  =
This

Typo: invoked

> causes a real encoding difference.
>
> Before:
>   66 c7 04 25 14 80 0b 00 53 0e    movw   $0xe53,0xb8014(,%eiz,1)
>
> After:
>   66 c7 05 14 80 0b 00 53 0e       movw   $0xe53,0xb8014
>
> The differnce happens to be benign, but move the logic back into a .code3=
2 for

Typo: difference

> sanity sake.  Annotate it with ELF metadata while doing so.
>
> Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
> 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>
>
> This issue dates back to the very introduction of S3 support in Xen, in 2=
007.
> ---
>  xen/arch/x86/boot/wakeup.S | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
> index 08447e193496..c929fe921823 100644
> --- a/xen/arch/x86/boot/wakeup.S
> +++ b/xen/arch/x86/boot/wakeup.S
> @@ -153,15 +153,16 @@ wakeup_32:
>          /* Now in compatibility mode. Long-jump to 64-bit mode */
>          ljmp    $BOOT_CS64, $bootsym_rel(wakeup_64,6)
>
> +FUNC_LOCAL(bogus_saved_magic, 0)
> +        movw    $0x0e00 + 'S', 0xb8014
> +        jmp     bogus_saved_magic
> +END(bogus_saved_magic)
> +
>          .code64
>  wakeup_64:
>          /* Jump to high mappings and the higher-level wakeup code. */
>          movabs  $s3_resume, %rbx
>          jmp     *%rbx
>
> -bogus_saved_magic:
> -        movw    $0x0e00 + 'S', 0xb8014
> -        jmp     bogus_saved_magic
> -
>  /* Stack for wakeup: rest of first trampoline page. */
>  ENTRY(wakeup_stack_start)

Hi,
   I agree with the code move, it's supposed to be 32 bit so it should
be in the 32 bit section.
Does the ELF annotation help with debug information? Maybe worth
adding to the comment.

OT: If I understood correctly, the code is writing a character on
screen in a tight loop. Maybe an hlt instruction could be helpful?

BTW

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 00:42:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 00:42:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833284.1248402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAIV8-00075m-6a; Mon, 11 Nov 2024 00:41:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833284.1248402; Mon, 11 Nov 2024 00:41: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 1tAIV8-00075e-2r; Mon, 11 Nov 2024 00:41:54 +0000
Received: by outflank-mailman (input) for mailman id 833284;
 Mon, 11 Nov 2024 00:41: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=lXmN=SG=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tAIV7-00075Y-6T
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 00:41:53 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20631.outbound.protection.outlook.com
 [2a01:111:f403:2408::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b83cfb74-9fc5-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 01:41:43 +0100 (CET)
Received: from CH2PR12CA0023.namprd12.prod.outlook.com (2603:10b6:610:57::33)
 by BL3PR12MB6403.namprd12.prod.outlook.com (2603:10b6:208:3b3::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.26; Mon, 11 Nov
 2024 00:41:38 +0000
Received: from CH2PEPF0000009A.namprd02.prod.outlook.com
 (2603:10b6:610:57:cafe::f5) by CH2PR12CA0023.outlook.office365.com
 (2603:10b6:610:57::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.27 via Frontend
 Transport; Mon, 11 Nov 2024 00:41:37 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF0000009A.mail.protection.outlook.com (10.167.244.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 11 Nov 2024 00:41:37 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Sun, 10 Nov
 2024 18:41:37 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Sun, 10 Nov 2024 18:41: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: b83cfb74-9fc5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwODo6NjMxIiwiaGVsbyI6Ik5BTTA0LUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImI4M2NmYjc0LTlmYzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMjg1NzAzLjA4NDQ3OSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HUdlEl4wR+DX8e/bGLQUwK7cT5baBT2Vlw6DR8dMjNvZvfU41mYsFAsOXwR3knCOyx55voKYsVg5Dq5/auoPD92lxdO8ludI9JG9XXJjWGdja86P/0rGPNSWa34kneI4LZIr/G+243cLObPm5N6sm1hSzsCTt+4879tsy2t40P1EueoWOfU8NE1o55gQv5bIib/2i0Y+g7AoTPvxwqW7CXPDoFcJcBZflh3jNguOhvTr0RiewYXJkw888cOJywGv1tW09Qx720o/whv8kxqB97VsJNKkOkmm6ANaKv0ABqank3BAmuJm4aAOFF/OzOqc9v9OK+8PVWONRGr4wCWQDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ABJUv5E9o58HhKmF0WeZnKV+R/ZPY+Ymo+vs/dthYmI=;
 b=Xkf9ukrnK3kBh6rvU8tKl7Do7zE0xZtrMZhAMCUu25Sx1++9RBZWRAhgfo1lD1q7Xrk1m1cwne1PV1qnWOMQ9g5jmKc1tJFVNMV+FVRtOHl3+DoftV5T23jqs+ttOunAakCrZBO/V6WWXoAy5BW4E/oDQn1KY3CAMlwRvNhT+F+VzRAelP1Cje7sdk+Fuw+qJ33ajwsjZ2fSWQockfzgN/DO2YdLdGIb2p1dUkgZbgLYzZvPvbt9ke1AFwSO6Lzhu4hMY971AdKmBnKa+q/0/BckvVK+e4WvleZbtcvaKt5BMnuG5laEgfLn71gtM9nH3U0Yjvs9boPF5Evr6zOrQA==
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=ABJUv5E9o58HhKmF0WeZnKV+R/ZPY+Ymo+vs/dthYmI=;
 b=My+QP3ddWSIRhMdKFpvV4tFbxV6zV+N+DLj5Bi3V8Y/pRO/pbUCMyj4V1HbqHi6exXn4YzQ1nuUQpRB+1ZmcUp9a/YrstmE5nXsh5LbZU4JvXm2YeqktpSk3XpMr9H1l94sEp6wagBnP7pZNCYHK/1SW6KHX9ZkkOFJJOm92TKc=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <92898f00-cff8-4a96-906b-2390b082e719@amd.com>
Date: Sun, 10 Nov 2024 19:41:36 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 09/12] x86/boot: add start and size fields to struct
 boot_module
To: Andrew Cooper <andrew.cooper3@citrix.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, <xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241102172551.17233-1-dpsmith@apertussolutions.com>
 <20241102172551.17233-10-dpsmith@apertussolutions.com>
 <bd4fa542-7e05-463d-99d7-b5c57781a56e@amd.com>
 <c8d690f9-a357-44de-a6e5-4bbab4256c51@apertussolutions.com>
 <54d9913f-55ff-46a8-b43c-2e20c5640985@amd.com>
 <f1aa733c-b4eb-493e-88db-73e2192c8320@citrix.com>
Content-Language: en-US
In-Reply-To: <f1aa733c-b4eb-493e-88db-73e2192c8320@citrix.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: CH2PEPF0000009A:EE_|BL3PR12MB6403:EE_
X-MS-Office365-Filtering-Correlation-Id: bbfa0be5-323b-45a1-1d6b-08dd01e999fe
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?cmxVaUN5UEpMamgyci93dU5PM0Z6SXVaS1FxeVRPOVBNVklTdE5YUXBHTFBB?=
 =?utf-8?B?Rk1DL1pQaThReHdaY1BxTHgvdEF2VndudERIWTNLbUlTelNSUUNnYzR5MXQy?=
 =?utf-8?B?SmZjZGt4QXlyOVJRZzVoSS83bkZuSXZKM1poeHFkTzZmZEVkOGtia2ZNaXVk?=
 =?utf-8?B?KzYyZlZVYmhXYnVPTnhHbGNyK3QxSVpBZVZyRW8xRHNmQnJWamhUc2E4Ukdo?=
 =?utf-8?B?TFovQXhkOUpWelJnejN2ZFBLQ0xsWWNvaXpEMGVWdnZiVFpFemFBS0xRaUhm?=
 =?utf-8?B?QkdQaTFGbkVKcnd0RG10RXhzME5sOHVEMExPN0I5TVd5elRQOThUeThkN09B?=
 =?utf-8?B?T0xJY2ZSQW1sTHNBUUdlcTZJUU9hRGNlUC9SM1VESkFWNVdEWE1leE12VEVB?=
 =?utf-8?B?QUV6OE90MGpLbmFxOEFsbjU4cjBZRXZwM0lYZFhYQnBYUUdXOW1INmtoc1p2?=
 =?utf-8?B?WmhnM095Rk16S0FjOHEvMDZ4MjU2UjVqd28rT2JoOWxlZHgxTzNkMXc2eGZk?=
 =?utf-8?B?OGVqOW15djRLL3pLc1NBU0UvL081RnZ2c0I5MEpwNytzbXVraEgxdGgyZW5G?=
 =?utf-8?B?UzFLczFIQVZqbnY5Q3ZIeFBQYnJpTkUwR0FCajgwa29IYjNpbS90UDlIVTMv?=
 =?utf-8?B?ZTgxL2dZOHJwZ05oeXZBeWQrdDdONkl4ck5JYXgyU1dFUlVFZ1F4TFZvSEQz?=
 =?utf-8?B?YXZIZm8zbmNxaHhsNWRkWXAyeHpCanl2OEU3ZHFoWjdZRG5JYzM0VFRpK3hu?=
 =?utf-8?B?WDM1dEZ3aHVlZDAvR0pxN0ZzczBPaXVKQm12bmdJWU5rdmVUQmw1VlV5MFNI?=
 =?utf-8?B?cUliZGo5eHJVOFVaNUhhZTdFVDVqM0dQL2hUZUxLWnE1NEdTR1lzZjhyMzNX?=
 =?utf-8?B?Myt3ZWEwb1NnNjFBSWMxa0VrSEZVajBuaUdRQUZpc2FqcGFaamNUbHZpMnV2?=
 =?utf-8?B?VEVQaDkxSlJlN0NidTFlQS85L0VNVFQzMWRyWWNzSEJJWjRyNkVDSmJERGJo?=
 =?utf-8?B?ektQbmxFNjhWZFJ3bXRBOFRzanZPdGErYkMzT0hVanE5VXlSN3ROUTZjVzNT?=
 =?utf-8?B?VTVXUHp4OCtodFl4RXZUemVEenN3eklQYldYc05SUG05KysyTHcxVzBlcitu?=
 =?utf-8?B?S2N2Z2Z3WmR5ZituNHlCc2NEZDZkMURERGxrUGZ1bTNZdDZEWEh2SW9yeTd5?=
 =?utf-8?B?dndOVXJiZFY1Q3poZFdQQVdiaFlEUnV1VTdEdURXRi9UMjB0anRWQVlQNE5u?=
 =?utf-8?B?eUJQREtrWlV2cDk4anpybTI5M2JaZ1M3Njc3MFZKcDNiMWlGZGJMcFJCM2l2?=
 =?utf-8?B?MGFHa1d2cWxQTUIwRkJDRndDeUdTS2JVVUYweXpuRVNEOGs3Znp1S3N3OHN4?=
 =?utf-8?B?QlZKS3g5KzREWXF0S0ZaY2N6bE5FNjR5N1lBR2ZKQVg3NlhuYk5adjQ0RzZF?=
 =?utf-8?B?dXFsMFloc3pxWkxxKzFJNWY4TkxMaDY4TUpxZ1hSeVFMYVJkZEF0S2EyTS9k?=
 =?utf-8?B?bSszZE5WdWo0ZlRBUHE1Y1M3MmNiOUdPbWovMG9rek8vUTZXM29EYWNDcHRD?=
 =?utf-8?B?cWgzSGNQVkhDRGpWKy9CbExtaGJ2RUpuWC95MGl0MGR0blhrRmdON0hLRm1l?=
 =?utf-8?B?WEJtcDhUV0JnRHpUdSt2cHUxOVljSlg5RG5ibmJ3KzZLWS9aVTd0cjUxZW8r?=
 =?utf-8?B?QnMvZGtjc2ZTQWtyalQ2S1NUaithUVhOYTIyL2dieFVpcktGY0s3WFVjYmZ3?=
 =?utf-8?B?WTl5SjFSWllIKzNpR0xYZXRLTituMk1KbTR3eHhYMDJ0UVJwTnFhblBrRmR6?=
 =?utf-8?B?RDk1WjlleG95VWhoTWJib2loc09MSGRCUFdUU1J4ZExIeUQ0V3hYK080aTNx?=
 =?utf-8?B?eUYvSFp2RlhCRkZ4WlJ2dm4xYXdjYUZFWmJMQTZEZVdzV0E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 11 Nov 2024 00:41:37.8272
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bbfa0be5-323b-45a1-1d6b-08dd01e999fe
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6403

On 2024-11-08 16:10, Andrew Cooper wrote:
> On 08/11/2024 8:48 pm, Jason Andryuk wrote:
>> On 2024-11-08 14:17, Daniel P. Smith wrote:
>>> On 11/7/24 15:47, Jason Andryuk wrote:
>>>> On 2024-11-02 13:25, Daniel P. Smith wrote:
>>>>> @@ -1745,13 +1733,11 @@ void asmlinkage __init noreturn
>>>>> __start_xen(void)
>>>>>  Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>>>>>  Â Â Â Â Â  {
>>>>> -Â Â Â Â Â Â Â  const struct boot_module *bm = &bi->mods[i];
>>>>> +Â Â Â Â Â Â Â  unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
>>>>> -Â Â Â Â Â Â Â  set_pdx_range(bm->mod->mod_start,
>>>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  bm->mod->mod_start + PFN_UP(bm->mod->mod_end));
>>>>> -Â Â Â Â Â Â Â  map_pages_to_xen((unsigned long)mfn_to_virt(bm->mod-
>>>>>> mod_start),
>>>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  _mfn(bm->mod->mod_start),
>>>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  PFN_UP(bm->mod->mod_end), PAGE_HYPERVISOR);
>>>>> +Â Â Â Â Â Â Â  set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s) + PFN_UP(l));
>>>>
>>>> This is fine today since s (.start) is checked for page alignment.
>>>> The other option would be `paddr_to_pfn(s + l) + 1`, but I'm not
>>>> sure that is an improvement.
>>>
>>> Out of curiosity, why are you thinking that module start would never
>>> be paged aligned?
>>
>> I think you have an extra negation - the module start is always page
>> aligned as checked elsewhere.
>>
>> While reviewing, I was just noting that this code starts rounding
>> addresses when it previously operated on pfns.Â  Non page-aligned s + l
>> could then cross a page boundary.
> 
> It's worth saying that until this patch, Xen critically depends on
> modules having 4k alignment.
> 
> This patch finally breaks that dependency, so we can e.g. load microcode
> actually-early on boot.
> 
> While the modules are currently aligned, lets try and write code which
> doesn't assume it.
> 
> So yes, probably best to have
> 
>  Â Â Â  set_pdx_range(paddr_to_pfn(s), PFN_UP(s + l));
> 
> here.Â  (I think?)

I think PFN_UP(s + l) is wrong when it ends on an address ending in 
0x1000 since it will not be rounded up.

s=0x1000
l=0x1000
PFN_UP(0x2000) = 2, but I think we want to pass 3 set_pdx_range.

So I think we want:
     paddr_to_pfn(s + l) + 1

I was wondering if we needed s + l - 1.  But size is set as
mod_end - mod_start, so s + l is correct.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 02:17:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 02:17:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833293.1248412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAJzc-0000vL-Up; Mon, 11 Nov 2024 02:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833293.1248412; Mon, 11 Nov 2024 02:17: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 1tAJzc-0000vE-Qk; Mon, 11 Nov 2024 02:17:28 +0000
Received: by outflank-mailman (input) for mailman id 833293;
 Mon, 11 Nov 2024 02:17: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=Zp6W=SG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tAJzb-0000v6-Jm
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 02:17:27 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14d8c5c0-9fd3-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 03:17:21 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BBF215C57DA;
 Mon, 11 Nov 2024 02:16:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DBD8AC4CECD;
 Mon, 11 Nov 2024 02:17:18 +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: 14d8c5c0-9fd3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjE0ZDhjNWMwLTlmZDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMjkxNDQyLjE2MjcyMywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731291439;
	bh=uBnOdpg0LjCPqGmPn5WzrEMm3iE89j9hAVl41CbS4Pk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=AkTzKdHzuS+fTuKY5B5N/tYU5fpY4xHCUQpE2VeTMCbZbtkghFql5/NCbW0YIle4T
	 pXpDXI47MadoZS78ndBz6A4VCDJoB3hG5Nj9HD2utbA1uiDhDsLVi/42hQafz6nekw
	 8PU/cPZhksMTGxHEF2vF8NrmbbySFijxv0/Hd/4IqL0li/hjzqoqX33VNHcaEEIHkB
	 V6zBDNNxvwUJOjfHHqw6pjJygOybxhCi1IDZESi5+OAbljpLSRDRQQNKtbr0qAaZmQ
	 ZWKkhI8zkB34JYMva7sMey8TVzJpk5jDYFi0xnrI6gjWfIEA4tBI0xTfi9rVy/ijz7
	 kDSFRg0sWkhyg==
Date: Sun, 10 Nov 2024 18:17:14 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    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>
Subject: Re: [XEN PATCH 2/3] x86/emul: use pseudo keyword fallthrough
In-Reply-To: <9be1812e391ce893afa028c05614b74cddb197b7.1730880832.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2411101817030.14721@ubuntu-linux-20-04-desktop>
References: <cover.1730880832.git.federico.serafini@bugseng.com> <9be1812e391ce893afa028c05614b74cddb197b7.1730880832.git.federico.serafini@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, 6 Nov 2024, Federico Serafini wrote:
> Make explicit the fallthrough intetion by adding the pseudo keyword
> where missing and refactor comments not following the agreed syntax.
> 
> This satisfies the requirements to deviate violations of
> MISRA C:2012 Rule 16.3 "An unconditional break statement shall
> terminate every switch-clause".
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  xen/arch/x86/x86_emulate/decode.c      | 6 ++++--
>  xen/arch/x86/x86_emulate/x86_emulate.c | 2 ++
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/x86_emulate/decode.c b/xen/arch/x86/x86_emulate/decode.c
> index 32b9276dc5..0a0751f2ed 100644
> --- a/xen/arch/x86/x86_emulate/decode.c
> +++ b/xen/arch/x86/x86_emulate/decode.c
> @@ -1356,7 +1356,8 @@ int x86emul_decode(struct x86_emulate_state *s,
>                          --disp8scale;
>                      break;
>                  }
> -                /* vcvt{,t}s{s,d}2usi need special casing: fall through */
> +                /* vcvt{,t}s{s,d}2usi need special casing. */
> +                fallthrough;
>              case 0x2c: /* vcvtts{s,d}2si need special casing */
>              case 0x2d: /* vcvts{s,d}2si need special casing */
>                  if ( evex_encoded() )
> @@ -1530,7 +1531,8 @@ int x86emul_decode(struct x86_emulate_state *s,
>                          disp8scale -= 1 + (s->evex.pfx == vex_66);
>                      break;
>                  }
> -                /* vcvt{,t}sh2usi needs special casing: fall through */
> +                /* vcvt{,t}sh2usi needs special casing. */
> +                fallthrough;
>              case 0x2c: case 0x2d: /* vcvt{,t}sh2si need special casing */
>                  disp8scale = 1;
>                  break;
> diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
> index 30674ec301..c38984b201 100644
> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -1460,6 +1460,7 @@ x86_emulate(
>  
>          d = (d & ~DstMask) | DstMem;
>          /* Becomes a normal DstMem operation from here on. */
> +        fallthrough;
>      case DstMem:
>          generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
>          if ( state->simd_size != simd_none )
> @@ -1942,6 +1943,7 @@ x86_emulate(
>              break;
>          }
>          generate_exception_if((modrm_reg & 7) != 0, X86_EXC_UD);
> +        fallthrough;
>      case 0x88 ... 0x8b: /* mov */
>      case 0xa0 ... 0xa1: /* mov mem.offs,{%al,%ax,%eax,%rax} */
>      case 0xa2 ... 0xa3: /* mov {%al,%ax,%eax,%rax},mem.offs */
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 02:17:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 02:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833296.1248422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAJzx-0001GR-4q; Mon, 11 Nov 2024 02:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833296.1248422; Mon, 11 Nov 2024 02:17: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 1tAJzx-0001GK-1h; Mon, 11 Nov 2024 02:17:49 +0000
Received: by outflank-mailman (input) for mailman id 833296;
 Mon, 11 Nov 2024 02:17: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=Zp6W=SG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tAJzv-0000v6-Ph
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 02:17:47 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22618230-9fd3-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 03:17:44 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 736F6A414D2;
 Mon, 11 Nov 2024 02:15:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F517C4CECD;
 Mon, 11 Nov 2024 02:17: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: 22618230-9fd3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjIyNjE4MjMwLTlmZDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMjkxNDY0LjMyNDY1LCJzZW5kZXIiOiJzc3RhYmVsbGluaUBrZXJuZWwub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731291462;
	bh=5npUYnPCujKacKgnWxXrB0c6VETFvfgOYaHsSXO82Sw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=c01jjuk6mRJnlpExVNiSg8Y/MIlUoCRRq2S41izowoKcU8Cq9RO/I72lGy407eUGR
	 Zj2aggRH1SGYty6fI/4QEsiIWe89RpHk3K4wkWfNoa/mD37kFkifxMTy40wdmXazBs
	 rZLzkupVioLf7nDMe0T8h9UJFY88Ma6bkHQbia9CI0IH3nmF5DTsb3FI3/WD/8+gJf
	 ruB+BP3i9EgOUsa3pCY5eGj7DIgf4hJSw4pfHOv6aNa+AUqQPYebLUttaO/jE7UZUM
	 u5rkHGXqC4hfPNNVhVW771KXOvl25s9U+FkB7FgkBmSFFPGN8J6RgpeVdAKJzB4aMz
	 LAuct4znFy80g==
Date: Sun, 10 Nov 2024 18:17:40 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Federico Serafini <federico.serafini@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 3/3] automation/eclair: tag Rule 16.3 as clean
In-Reply-To: <4ab02498ab368964302b247341b1401eb53faa63.1730880832.git.federico.serafini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2411101817250.14721@ubuntu-linux-20-04-desktop>
References: <cover.1730880832.git.federico.serafini@bugseng.com> <4ab02498ab368964302b247341b1401eb53faa63.1730880832.git.federico.serafini@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, 6 Nov 2024, Federico Serafini wrote:
> Tag MISRA C:2012 Rule 16.3 as clean for both architectures:
> new violations will cause a failure of the CI/CD pipeline.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

Pending the first 2 patches being acked:

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index e1d4ed012a..cb7d5743d2 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -64,6 +64,7 @@ MC3R1.R14.1||
>  MC3R1.R14.3||
>  MC3R1.R14.4||
>  MC3R1.R16.2||
> +MC3R1.R16.3||
>  MC3R1.R16.7||
>  MC3R1.R17.1||
>  MC3R1.R17.3||
> @@ -112,7 +113,7 @@ if(string_equal(target,"x86_64"),
>  )
>  
>  if(string_equal(target,"arm64"),
> -    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.3||MC3R1.R16.6||MC3R1.R20.7"})
> +    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
>  )
>  
>  -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 02:24:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 02:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833307.1248432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAK64-0002xD-Qg; Mon, 11 Nov 2024 02:24:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833307.1248432; Mon, 11 Nov 2024 02:24: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 1tAK64-0002x6-NW; Mon, 11 Nov 2024 02:24:08 +0000
Received: by outflank-mailman (input) for mailman id 833307;
 Mon, 11 Nov 2024 02:24: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=Zp6W=SG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tAK63-0002x0-Ku
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 02:24:07 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04ce0feb-9fd4-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 03:24:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 722E9A41505;
 Mon, 11 Nov 2024 02:22:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FAB1C4CECF;
 Mon, 11 Nov 2024 02:24: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: 04ce0feb-9fd4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjA0Y2UwZmViLTlmZDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMjkxODQ0LjEzNjEyOCwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731291842;
	bh=e++fqIDi03ECvYpkN8Km9QzhukQyi+B32gz3XIboN0o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=H6pjJRrcO+oUCzWlZzerEfv+o0g3HTOjS2t0JIeN/aKkuDtEBA8Wr0t3sLmX3nEIR
	 erHCEfNj8QoVMmGN258v2+1KTNCh4heQJw1FvHCrVvXP/Yb4LGhvhMMcRJb2EolSSP
	 muFd9cFZIWXYg2jhT4IgWOxSjmfDiW6Hi3MY02/xeEU2NrYMXwBS/RtGMjeXUkkmwx
	 Yr7tR3E5aPxd30dCJza/clX760BnuQxT60ovcXRllJw1u7TzeBvpN+gpXMVtxf42gn
	 I5DxN0gdCUMExmISxtpDo+rSITJnNYY1ewFDlMwnIjqVb9P+oCbSoxONwSVZaCz8fe
	 pfZqaqh0nmi5w==
Date: Sun, 10 Nov 2024 18:24:00 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Federico Serafini <federico.serafini@bugseng.com>, consulting@bugseng.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 1/3] x86/emul: define pseudo keyword fallthrough
In-Reply-To: <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com>
Message-ID: <alpine.DEB.2.22.394.2411101820430.14721@ubuntu-linux-20-04-desktop>
References: <cover.1730880832.git.federico.serafini@bugseng.com> <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@bugseng.com> <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 6 Nov 2024, Jan Beulich wrote:
> On 06.11.2024 10:04, Federico Serafini wrote:
> > The pseudo keyword fallthrough shall be used to make explicit the
> > fallthrough intention at the end of a case statement (doing this
> > through comments is deprecated).
> > 
> > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> > ---
> >  xen/arch/x86/x86_emulate/x86_emulate.h | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> 
> When you had asked my privately on Matrix, I specifically said: "Adding
> the pseudo-keyword to x86-emulate.h (not x86_emulate.h) is probably best,
> unless problems with that approach turn up." Even if identical re-
> definitions are deemed fine, I for one consider such bad practice. Yet
> by playing with this file (and outside of any relevant #ifdef) means
> there will be such a re-definition when building Xen itself.
> 
> In fact the patch subject should also already clarify that the auxiliary
> definition is only needed for the test and fuzzing harnesses.

Hi Jan, I don't understand this comment.

You say "playing with this file (and outside of any relevant #ifdef)"
but actually the changes are within the #ifndef
__X86_EMULATE_H__/#endif. What do you mean?

You say "Adding the pseudo-keyword to x86-emulate.h (not x86_emulate.h)
is probably best". I am not very familiar with x86-isms but the only
x86-emulate.h I can find is ./tools/tests/x86_emulator/x86-emulate.h
which is not a header that would help define anything for the Xen build?

I am not understanding your suggestions. From what I can see this patch
looks OK?


> > --- a/xen/arch/x86/x86_emulate/x86_emulate.h
> > +++ b/xen/arch/x86/x86_emulate/x86_emulate.h
> > @@ -23,6 +23,16 @@
> >  # error Unknown compilation width
> >  #endif
> >  
> > +/*
> > + * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
> > + * the end of a case statement.
> > + */
> > +#if (!defined(__clang__) && (__GNUC__ >= 7))
> 
> I realize xen/compiler.h has it like that, but may I ask that you omit
> the meaningless outer pair of parentheses?
> 
> Jan
> 


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 02:31:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 02:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833317.1248442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAKCo-0004i7-Fq; Mon, 11 Nov 2024 02:31:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833317.1248442; Mon, 11 Nov 2024 02:31: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 1tAKCo-0004i0-Cn; Mon, 11 Nov 2024 02:31:06 +0000
Received: by outflank-mailman (input) for mailman id 833317;
 Mon, 11 Nov 2024 02:31: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=Zp6W=SG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tAKCm-0004hu-Ko
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 02:31:04 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fce20f8d-9fd4-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 03:31:00 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A6FBD5C06DE;
 Mon, 11 Nov 2024 02:30:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA6B8C4CECD;
 Mon, 11 Nov 2024 02:30:57 +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: fce20f8d-9fd4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6ImZjZTIwZjhkLTlmZDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMjkyMjYwLjY1MzE3MSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731292258;
	bh=XHbzUWmxKS6KlxtaSsbzezbQy9rpyI4WqFu1NdD5i9g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PLFBJRzwbhJmbhtKlRhHxUUH2LWZxENs7Rbxt5Ggu4jw0H1wyu2gkJO4Q0/hEUU9c
	 7ezgcx57QlCwNokYWXxhXtzqxK/L9Jfem8NaY2JE7SyPYAEOVPhIjK9WxPi33Snkcs
	 JMp3GWqplN8/6zkwPIKVXicGuDCS8mkAleRkpOdHI7aUGRCKuxBDQYPaoUg9O1BFW4
	 TxNViwvA/wd6RV9+wxGyidybwjGdv9q0MYq2kQYVYgqsAmujm8dLTmUFCuqBkk3/ye
	 gSWWWAV3KGxxo1rtzQTKVHJ22WaEsb05AAGqmK6OmOKWgU5Byly1YKPK4rSoNjWHSa
	 /IaOBT4ECuJ3g==
Date: Sun, 10 Nov 2024 18:30:57 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM
 timer
In-Reply-To: <09171e88-28d2-433b-a9c3-ad822e9f57c0@epam.com>
Message-ID: <alpine.DEB.2.22.394.2411101829350.14721@ubuntu-linux-20-04-desktop>
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com> <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com> <09171e88-28d2-433b-a9c3-ad822e9f57c0@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, 6 Nov 2024, Sergiy Kibrik wrote:
> 06.11.24 12:14, Sergiy Kibrik:
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 78a13e6812..b340818ee2 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -742,11 +742,16 @@ int arch_sanitise_domain_config(struct
> > xen_domctl_createdomain *config)
> >     static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
> >   {
> > -#ifdef CONFIG_HVM
> > +    const uint32_t disabled_emu_mask = X86_EMU_PM;
> > +
> > +#if defined(CONFIG_X86_HVM_PMTIMER)
> >       /* This doesn't catch !CONFIG_HVM case but it is better than nothing
> > */
> >       BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
> >   #endif
> >   +    if ( emflags & disabled_emu_mask )
> > +        return false;
> > +
> 
> oops, disregard this chunk please, it should be:
> 
>   if ( (emflags & X86_EMU_ALL) != emflags ) 
>      return false;
> 
> with disabled_emu_mask completely removed.

With this change:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 02:33:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 02:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833327.1248452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAKFD-0005Is-UP; Mon, 11 Nov 2024 02:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833327.1248452; Mon, 11 Nov 2024 02: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 1tAKFD-0005Il-Re; Mon, 11 Nov 2024 02:33:35 +0000
Received: by outflank-mailman (input) for mailman id 833327;
 Mon, 11 Nov 2024 02:33: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=Zp6W=SG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tAKFC-0005Id-I4
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 02:33:34 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 56f46f82-9fd5-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 03:33:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id D2633A40E20;
 Mon, 11 Nov 2024 02:31:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD6F6C4CECD;
 Mon, 11 Nov 2024 02:33:28 +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: 56f46f82-9fd5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NWQxOmVjMDA6OjMiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjU2ZjQ2ZjgyLTlmZDUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMjkyNDExLjY1OTE2NSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731292409;
	bh=KTdgh3h0eJlKNMFEysLgDbsEX2rz1m+qifyRstn7WTw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Wn0kTO+O5rbj+vq6Poskp7YenM0zZd1t1/UdEwJTNlIwjdYncgvCjHdYoq4Jt9QkJ
	 G7YykcwINITBEeNywcultG0+9AuS3F+XnCT9Yi6k4BFHVPRWkUAfaWu46sUcZ4/L23
	 rSgNwW4RRmviGpHqkWD24FPmCiCkfGAKE9SdkSJAID++zG4JlO9DkPlNsYXV80cW9w
	 jr2VaYqODFFjxGTY7/UzCtfanHG03OwdzOCNw8IEExr8drJPnRm0br8nviC9AsYop1
	 eRpLYTgdo1fza5iuphC14N8ygiyOVXFunMqzSN5uFxHsosaXcxDRWmvCG2d0Bh+Rcc
	 fbkEXRsq3lhFA==
Date: Sun, 10 Nov 2024 18:33:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [XEN PATCH v2 2/2] x86/hvm: introduce config option for stdvga
 emulation
In-Reply-To: <53b0d5552c128630e476c77b54b8983fe02e0e1c.1730887415.git.Sergiy_Kibrik@epam.com>
Message-ID: <alpine.DEB.2.22.394.2411101831220.14721@ubuntu-linux-20-04-desktop>
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com> <53b0d5552c128630e476c77b54b8983fe02e0e1c.1730887415.git.Sergiy_Kibrik@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-990869920-1731292410=:14721"

  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-990869920-1731292410=:14721
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 6 Nov 2024, Sergiy Kibrik wrote:
> Introduce config option X86_HVM_STDVGA and make stdvga emulation driver
> configurable so it can be disabled on systems that don't need it.
> 
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> CC: Jan Beulich <jbeulich@suse.com>
> ---
> changes in v2:
>  - updated description
>  - renamed config option X86_STDVGA -> X86_HVM_STDVGA & moved related
>    Kconfig changes to this patch
>  - reverted changes to has_vvga() macro
>  - moved emulation_flags_ok() checks to this patch
> ---
>  xen/arch/x86/Kconfig              | 10 ++++++++++
>  xen/arch/x86/domain.c             |  4 ++--
>  xen/arch/x86/hvm/Makefile         |  2 +-
>  xen/arch/x86/include/asm/domain.h |  8 ++++++--
>  xen/arch/x86/include/asm/hvm/io.h |  4 ++++
>  5 files changed, 23 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> index ed0ece85c7..35c8ace8ef 100644
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -155,6 +155,16 @@ config X86_HVM_PMTIMER
>  	  Build pmtimer driver that emulates ACPI PM timer for HVM/PVH guests.
>  
>  	  If unsure, say Y.
> +
> +config X86_HVM_STDVGA
> +	bool "Standard VGA card emulation support"
> +	default y
> +	help
> +	  Build stdvga driver that emulates standard VGA card with VESA BIOS
> +	  Extensions for HVM/PVH guests.
> +
> +	  If unsure, say Y.
> +
>  endmenu
>  
>  config XEN_SHSTK
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index b340818ee2..aefa1fc136 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -742,9 +742,9 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>  
>  static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>  {
> -    const uint32_t disabled_emu_mask = X86_EMU_PM;
> +    const uint32_t disabled_emu_mask = X86_EMU_PM | X86_EMU_VGA;
>  
> -#if defined(CONFIG_X86_HVM_PMTIMER)
> +#if defined(CONFIG_X86_HVM_PMTIMER) && defined(CONFIG_X86_HVM_STDVGA)
>      /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
>      BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
>  #endif

You need to remove this part, following your reply to the previous patch

With that modification:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
> index 3af8963218..80ec425aa8 100644
> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -22,7 +22,7 @@ obj-$(CONFIG_X86_HVM_PMTIMER) += pmtimer.o
>  obj-y += quirks.o
>  obj-y += rtc.o
>  obj-y += save.o
> -obj-y += stdvga.o
> +obj-$(CONFIG_X86_HVM_STDVGA) += stdvga.o
>  obj-y += vioapic.o
>  obj-y += vlapic.o
>  obj-y += vm_event.o
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 8550473997..106b438779 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -466,7 +466,6 @@ struct arch_domain
>  #define X86_EMU_RTC      XEN_X86_EMU_RTC
>  #define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
>  #define X86_EMU_PIC      XEN_X86_EMU_PIC
> -#define X86_EMU_VGA      XEN_X86_EMU_VGA
>  #define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
>  #define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
>  #define X86_EMU_VPCI     XEN_X86_EMU_VPCI
> @@ -476,7 +475,6 @@ struct arch_domain
>  #define X86_EMU_RTC      0
>  #define X86_EMU_IOAPIC   0
>  #define X86_EMU_PIC      0
> -#define X86_EMU_VGA      0
>  #define X86_EMU_IOMMU    0
>  #define X86_EMU_USE_PIRQ 0
>  #define X86_EMU_VPCI     0
> @@ -488,6 +486,12 @@ struct arch_domain
>  #define X86_EMU_PM       0
>  #endif
>  
> +#ifdef CONFIG_X86_HVM_STDVGA
> +#define X86_EMU_VGA      XEN_X86_EMU_VGA
> +#else
> +#define X86_EMU_VGA      0
> +#endif
> +
>  #define X86_EMU_PIT     XEN_X86_EMU_PIT
>  
>  /* This must match XEN_X86_EMU_ALL in xen.h */
> diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
> index f2b8431fac..c02fad876c 100644
> --- a/xen/arch/x86/include/asm/hvm/io.h
> +++ b/xen/arch/x86/include/asm/hvm/io.h
> @@ -108,7 +108,11 @@ struct vpci_arch_msix_entry {
>      int pirq;
>  };
>  
> +#ifdef CONFIG_X86_HVM_STDVGA
>  void stdvga_init(struct domain *d);
> +#else
> +static inline void stdvga_init(struct domain *d) {}
> +#endif
>  
>  extern void hvm_dpci_msi_eoi(struct domain *d, int vector);
>  
> -- 
> 2.25.1
> 
--8323329-990869920-1731292410=:14721--


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 06:34:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 06:34:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833336.1248462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAO0N-0008NP-3J; Mon, 11 Nov 2024 06:34:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833336.1248462; Mon, 11 Nov 2024 06:34: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 1tAO0N-0008NI-0N; Mon, 11 Nov 2024 06:34:31 +0000
Received: by outflank-mailman (input) for mailman id 833336;
 Mon, 11 Nov 2024 06:34: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAO0L-0008NC-JI
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 06:34:29 +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 fea02040-9ff6-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 07:34:25 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-539e7e73740so3805913e87.3
 for <xen-devel@lists.xenproject.org>; Sun, 10 Nov 2024 22:34:25 -0800 (PST)
Received: from ?IPV6:2003:ca:b721:c835:8cf8:ed41:9b27:a44e?
 (p200300cab721c8358cf8ed419b27a44e.dip0.t-ipconnect.de.
 [2003:ca:b721:c835:8cf8:ed41:9b27:a44e])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed97c6b6sm11902254f8f.24.2024.11.10.22.34.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 10 Nov 2024 22:34: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: fea02040-9ff6-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZlYTAyMDQwLTlmZjYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzA2ODY1LjUyNDYwNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731306865; x=1731911665; 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=QoRLhL/8P+vCTgqdLldZ5WcOdrKK/Ll0D6M85RZqnB8=;
        b=Ezc+teud4WYTTEPrPzVQWj4DEi2ndgT0yxA539algomTnGBd/UN1XJi1dO1ZeBBhXA
         ppXL4k/ZvlPI0ZCvG3QnjbmDoxu9b6ok9qmOq0Dh3yp00k/S6Lw/6yRuUjMUiHjKOJ0P
         tjPu7KEk+9Ff6z74RPpBjgZoyqMip0atPYnuWx+vxXWHcw64I3iOOk7EmMSjq6VkQTwN
         SKujAryREl+Gtd0TMXFhXkXAv05Ys9+AB44E9NOAjktjhy3fJdAlv9tW151nnC6fDb2Z
         RA9nLaQ5rM/EmZPFdI1tEPn+VCUIyeQmYdusXNPjzMZgdyahaQ8USzRu9rCdJ/RUvIfq
         EL6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731306865; x=1731911665;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QoRLhL/8P+vCTgqdLldZ5WcOdrKK/Ll0D6M85RZqnB8=;
        b=NAoKnFv7BPYy6/0P8nFUDAEunoMv5mKL+ODa0Sx9fBb620pHBIVEQmcsMhKYmVbA+v
         f+bRTqvXr670l7Imv0Ik7a0C0URcZZflCZDZpKEeke6qNKNMTvdlkyzRJhsQRsCUQw1J
         10zrljvXgln5XoaH0saoaXndvcdYe4BNRIuoNDG5fryhvr1cqvEpSi1Tr0a4aGu4dNMj
         xAClwATljap1HAJ+vfc8ayG8/curtwV+2QTa6UQgvGHLLvik6Zby1lanMITcwon12jSJ
         pvw3s6k4Cj+LKQYkt9H4hnUbhLf2Od+SdWjNy4yDRhgJBlSY1pUp8SbKgb+aPve7jC73
         4T6Q==
X-Forwarded-Encrypted: i=1; AJvYcCV5xBVlZi2D+TthY4PBN/ePF4LQRiMGvD59XtNWP/gdzCGf/Fg4Cb/fR75g+O6K3AXy/oh40PQuP2Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5JdDROZR4hQl7C+KZBzlHR08jY9Mlp43a94ALNen2Tpizeso/
	Ch+b9etLtPJf+NKBMVGiKZGA3Wl9dpdhQji5nnafcGuzjVzQvUmFzUbYfPSodw==
X-Google-Smtp-Source: AGHT+IHfP3npFilnSaZ1rx+Myrxkuc/HL+XBjlkcF3QP4zgZWUaEBs4WNSmKGxEL1Cf4sbhUW9pR+Q==
X-Received: by 2002:a05:6512:3994:b0:539:e232:e436 with SMTP id 2adb3069b0e04-53d8623da26mr5228209e87.24.1731306864791;
        Sun, 10 Nov 2024 22:34:24 -0800 (PST)
Message-ID: <57d407cf-3f3a-43f6-9aa4-05cac5b50c46@suse.com>
Date: Mon, 11 Nov 2024 07:34:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/3] x86/emul: define pseudo keyword fallthrough
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Federico Serafini <federico.serafini@bugseng.com>,
 consulting@bugseng.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: <cover.1730880832.git.federico.serafini@bugseng.com>
 <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@bugseng.com>
 <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com>
 <alpine.DEB.2.22.394.2411101820430.14721@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.2411101820430.14721@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 03:24, Stefano Stabellini wrote:
> On Wed, 6 Nov 2024, Jan Beulich wrote:
>> On 06.11.2024 10:04, Federico Serafini wrote:
>>> The pseudo keyword fallthrough shall be used to make explicit the
>>> fallthrough intention at the end of a case statement (doing this
>>> through comments is deprecated).
>>>
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>> ---
>>>  xen/arch/x86/x86_emulate/x86_emulate.h | 10 ++++++++++
>>>  1 file changed, 10 insertions(+)
>>
>> When you had asked my privately on Matrix, I specifically said: "Adding
>> the pseudo-keyword to x86-emulate.h (not x86_emulate.h) is probably best,
>> unless problems with that approach turn up." Even if identical re-
>> definitions are deemed fine, I for one consider such bad practice. Yet
>> by playing with this file (and outside of any relevant #ifdef) means
>> there will be such a re-definition when building Xen itself.
>>
>> In fact the patch subject should also already clarify that the auxiliary
>> definition is only needed for the test and fuzzing harnesses.
> 
> Hi Jan, I don't understand this comment.
> 
> You say "playing with this file (and outside of any relevant #ifdef)"
> but actually the changes are within the #ifndef
> __X86_EMULATE_H__/#endif. What do you mean?

"relevant" was specifically to exclude the guard #ifdef. And the remark
was to avoid the #define to merely be moved into or framed by an
"#ifndef __XEN__".

> You say "Adding the pseudo-keyword to x86-emulate.h (not x86_emulate.h)
> is probably best". I am not very familiar with x86-isms but the only
> x86-emulate.h I can find is ./tools/tests/x86_emulator/x86-emulate.h
> which is not a header that would help define anything for the Xen build?

But that's the whole point: We _have_ "fallthrough" as a pseudo-keyword
already for the Xen build. For it to be usable in the emulator files, it
particularly needs to be made available for the test and fuzzing
harnesses. And that without interfering with what the Xen build has.
Hence why it wants to go into precisely that file, where all other build
compatibility definitions also live.

> I am not understanding your suggestions. From what I can see this patch
> looks OK?

No, it is - first and foremost - the wrong file that is being touched.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 06:40:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 06:40:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833344.1248471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAO60-0001aP-Mt; Mon, 11 Nov 2024 06:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833344.1248471; Mon, 11 Nov 2024 06: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 1tAO60-0001aI-KK; Mon, 11 Nov 2024 06:40:20 +0000
Received: by outflank-mailman (input) for mailman id 833344;
 Mon, 11 Nov 2024 06: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAO5z-0001aC-JF
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 06:40:19 +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 cfb97d57-9ff7-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 07:40:16 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-37d5689eea8so2378671f8f.1
 for <xen-devel@lists.xenproject.org>; Sun, 10 Nov 2024 22:40:16 -0800 (PST)
Received: from ?IPV6:2003:ca:b721:c835:8cf8:ed41:9b27:a44e?
 (p200300cab721c8358cf8ed419b27a44e.dip0.t-ipconnect.de.
 [2003:ca:b721:c835:8cf8:ed41:9b27:a44e])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432b0562860sm164895095e9.22.2024.11.10.22.40.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 10 Nov 2024 22:40: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: cfb97d57-9ff7-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNmYjk3ZDU3LTlmZjctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzA3MjE2LjYwMDA0OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731307216; x=1731912016; 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=Vh02vnXRa68asDEXybC1H0gsMPnXuyX3wnjfBuhi6gs=;
        b=LxKh6txmLwwpwajvVJxzzmOFpBRMO75mT753EcGaHWG0HupY/jn6/n2Mml3x1PbvJE
         zvbZ8yml6CAMIgLpG1iSOUjan0b5Ybb3DAxIhwrDv4X9iflbKARL1pJWNgZYdTiMU3WR
         3ALix38OmLg9yGZIBiBzvx7gL7sljfR4iwSdwKgupnuJmP9zCNKeOg/2lZrSO8xMfGye
         oEPDkh5Uuj5TJ93NxOhaogGRgKBa4BlkeNuz3OjBu/9jk9Jms/mQdr1n2DrBSKl6j2NJ
         TNanRo5YnuMPe5DbtQ6DOric+FYsxXYIY3JwKU90pqMej3Age7ZI/eNeliW/CvNkKqOT
         Fyjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731307216; x=1731912016;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vh02vnXRa68asDEXybC1H0gsMPnXuyX3wnjfBuhi6gs=;
        b=QXluaxZGxvbSmVujRolNmXIFCj66bYYbABG8CV+VpkT/RvWFBgoh+dqBXqGUtumFmg
         wz8TkrM3jzLMh4/iFV518E0aK+J9LeC0NZXjin9ZbPhVlZqAKBpUP4xlowJkqBxda6Ds
         +jx/2NqsgQvdH0t9+bt+ekqsG9Kui1f+H/ZbF50+MnZqPQRrAKeANg1om3dBWzK8RQuW
         fp2fNs3xxBH04RbS0cltEg8TijKZhINShi3mFceUpt+yNTaprw+SoSPHJIi0ZELN819t
         x0iIlDMBF8dT8+oIrmBU2BYRfkeTMaXqn8OLCozJCyjidmu2LzMBjvLFmmWSiiSP/P+8
         q9+g==
X-Forwarded-Encrypted: i=1; AJvYcCWjjzOt9qtxwgnWJNdD3NuoKKMciBvnNnON/ob/P8foLg+FtOsBdDr3yPWf1ukE1jAuz/8ZgU1b5xk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3dLyTkXa2WAeJ/Rg0evsMMF45FDMK3nvMuYrUHaXRPTpfGJ63
	8Ce4gguEKlrpRCf4oOJwHhoSl/QCxJKJVZRdDZiABPn45asWeCoocTZhau4+2w==
X-Google-Smtp-Source: AGHT+IFqwekx/8WyiE72idn3H3XNbQ9XQ8Cw0x3Cu3sliV0c5qeeq3cxuVFpycEs9XoIwoN7SZ/zwA==
X-Received: by 2002:a05:6000:2c1:b0:37d:238:983 with SMTP id ffacd0b85a97d-381f186b4b2mr10424443f8f.22.1731307215728;
        Sun, 10 Nov 2024 22:40:15 -0800 (PST)
Message-ID: <479d7430-ca30-4d72-b636-b47e5a2356f4@suse.com>
Date: Mon, 11 Nov 2024 07:40:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
 <D5GT0NR29WEF.216KE5GCTH1TL@cloud.com>
 <39b2a334-1298-4e83-b7b7-393c79964539@suse.com> <Zy4sG915LicXNmIV@macbook>
 <ec9dd718-ef25-4a23-8080-8081ef2facb9@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: <ec9dd718-ef25-4a23-8080-8081ef2facb9@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.11.2024 17:29, Stewart Hildebrand wrote:
> On 11/8/24 10:19, Roger Pau MonnÃ© wrote:
>> On Fri, Nov 08, 2024 at 02:17:40PM +0100, Jan Beulich wrote:
>>> On 08.11.2024 13:42, Alejandro Vallejo wrote:
>>>> On Mon Nov 4, 2024 at 7:44 AM GMT, Jan Beulich wrote:
>>>>> On 01.11.2024 21:16, Stewart Hildebrand wrote:
>>>>>> +Daniel (XSM mention)
>>>>>>
>>>>>> On 10/28/24 13:02, Jan Beulich wrote:
>>>>>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
>>>>>>>> Add links between a VF's struct pci_dev and its associated PF struct
>>>>>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>>>>>>>> dropping and re-acquiring the pcidevs_lock().
>>>>>>>>
>>>>>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>>>>>>>> VFs may exist without a corresponding PF, although now only with
>>>>>>>> pdev->broken = true.
>>>>>>>>
>>>>>>>> The hardware domain is expected to remove the associated VFs before
>>>>>>>> removing the PF. Print a warning in case a PF is removed with associated
>>>>>>>> VFs still present.
>>>>>>>>
>>>>>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>>>> ---
>>>>>>>> Candidate for backport to 4.19 (the next patch depends on this one)
>>>>>>>>
>>>>>>>> v5->v6:
>>>>>>>> * move printk() before ASSERT_UNREACHABLE()
>>>>>>>> * warn about PF removal with VFs still present
>>>>>>>
>>>>>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
>>>>>>> just after an adjustment to the commit message. I'm instead actively
>>>>>>> concerned of the resulting behavior. Question is whether we can reasonably
>>>>>>> do something about that.
>>>>>>
>>>>>> Right. My suggestion then is to go back to roughly how it was done in
>>>>>> v4 [0]:
>>>>>>
>>>>>> * Remove the VFs right away during PF removal, so that we don't end up
>>>>>> with stale VFs. Regarding XSM, assume that a domain with permission to
>>>>>> remove the PF is also allowed to remove the VFs. We should probably also
>>>>>> return an error from pci_remove_device in the case of removing the PF
>>>>>> with VFs still present (and still perform the removals despite returning
>>>>>> an error). Subsequent attempts by a domain to remove the VFs would
>>>>>> return an error (as they have already been removed), but that's expected
>>>>>> since we've taken a stance that PF-then-VF removal order is invalid
>>>>>> anyway.
>>>>>
>>>>> Imo going back is not an option.
>>>>>
>>>>>> While the above is what I prefer, I just want to mention other options I
>>>>>> considered for the scenario of PF removal with VFs still present:
>>>>>>
>>>>>> * Increase the "scariness" of the warning message added in v6.
>>>>>>
>>>>>> * Return an error from pci_remove_device (while still removing only the
>>>>>> PF). We would be left with stale VFs in Xen. At least this would
>>>>>> concretely inform dom0 that Xen takes issue with the PF-then-VF removal
>>>>>> order. Subsequent attempts by a domain to remove VFs, however
>>>>>> (un)likely, would succeed.
>>>>>
>>>>> Returning an error in such a case is a possibility, but comes with the
>>>>> risk of confusion. Seeing such an error, a caller may itself assume the
>>>>> device still is there, and retry its (with or without having removed the
>>>>> VFs) removal at a later point.
>>>>>
>>>>>> * Return an error from pci_remove_device and keep the PF and VFs. This
>>>>>> is IMO the worst option because then we would have a stale PF in
>>>>>> addition to stale VFs.
>>
>> I'm thinking probably this is the least bad option, and just force the
>> owner of the PF to ensure there are no VFs left when removing the PF.
>>
>> What sense does it make anyway to allow removing a PF with VFs still
>> present?  Not sure exactly what the owner of the PF will do before
>> calling pci_remove_device(), but it would seem to me the device should
>> be ready for unplug (so SR-IOV disabled).  Calling pci_remove_device()
>> with VFs still active points to an error to do proper cleanup by the
>> owner of the PF.
> 
> In normal, correct operation, right. The PF driver is indeed expected to
> disable SR-IOV (i.e. remove VFs) during its removal, prior to calling
> PHYSDEVOP_pci_device_remove for the PF.
> 
>> Returning error from pci_remove_device() and doing nothing would seem
>> fine to me.  There should be no stale PF or VFs in that case, as the
>> caller has been notified the device has failed to be removed, so
>> should treat the device as still present.

Imo really that's another case that would best be addressed by proper
ref-counting. Each VF would hold a ref to its PF, and hence the PF would
go away when the last VF is removed, or when PF removal is (properly)
last. Just that this likely is too complex a change to be warranted for
the purpose here.

> But software has no way to guarantee there won't be a physical device
> removal.
> 
> In test scenario #2 described in the first patch [1], the PF (the whole
> device, actually) has already been physically unplugged, and dom0
> invokes PHYSDEVOP_pci_device_remove to inform Xen about it.

I don't think that's how it's supposed to work. Physical removal should
occur only after software has done all "soft removal". I'd view the
notification to Xen as part of that.

Jan

> [1] https://lore.kernel.org/xen-devel/20241018203913.1162962-2-stewart.hildebrand@amd.com/
> 
> That said, test scenario #2 would only happen when a buggy PF driver
> failed to properly clean up the VFs before the PF. But the point is that
> returning an error does not guarantee there won't be a stale pdev in
> case of a buggy dom0.
> 
> I guess as long as we trust the owner of the PF, this approach is fine.



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 08:50:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 08:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833354.1248481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQ84-0000MG-HL; Mon, 11 Nov 2024 08:50:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833354.1248481; Mon, 11 Nov 2024 08:50: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 1tAQ84-0000M9-EV; Mon, 11 Nov 2024 08:50:36 +0000
Received: by outflank-mailman (input) for mailman id 833354;
 Mon, 11 Nov 2024 08:50: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQ83-0000M3-EI
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 08:50:35 +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 02149315-a00a-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 09:50:31 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4316e9f4a40so36333635e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 00:50: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-381eda04211sm12325739f8f.94.2024.11.11.00.50.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 00:50: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: 02149315-a00a-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAyMTQ5MzE1LWEwMGEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzE1MDMxLjkyNDkwNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731315031; x=1731919831; 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=eyV46D3P+CGdce+m7n5Vyx/hfHv6bNIaMxlW57CtFNI=;
        b=b0vm94x3KOQJ3zccZtugnW6taZJtTwJ+oyebG6FcolbX4ikq4IGK6DNAqpSpFQ1vqP
         tHB9cR6goTZL8J2v7wYYyqzRC7HFUeVzmDtKomjLlU3KLXMg61nTVNM8sm8CJGMLD9Lk
         EUpc6zfyxjIWYRPIo0cUroti7KwwVaMElq6PGtODKdys8a5ejStfQBkMskwRxqLh+E+J
         P3MeweuIUuLgo+F1bhQiqTZwSmJ49CEGtaD12wvl68kgctk4sec34ye6McFKswyObrXK
         VjfNk0hfRsdFDZ6AZVVmwpq8eNI1f+kGDJ2PADyBTJ3sUfzCzw245IdqmRy1JsIzZiD5
         E8Ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731315031; x=1731919831;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eyV46D3P+CGdce+m7n5Vyx/hfHv6bNIaMxlW57CtFNI=;
        b=jG1iTHCVB9jbUBTi4jcV/NRbpkUWnsPI7F5nZxUSx1tLA9QbwOir9msxts6V5euZ/y
         FBmfneAZ7SIjIFmfBp/3VFNhNq4CbmeqHjW0z/fpdkIjIUdb61YxtPuwaYp/UriLH0Gk
         PFAZlUlAxNlCrti2tYYr67H83Fann3Wap9jllxGJcFOvz+GrSWXG+i0T5Ia7ipQwNTOs
         vMra63YDPlB8fDyh3KOnMgaV7R3n4sC1wMQjTcuRLRYKB3Uj/cYuB3dwVueeE6UHSp5Z
         NqOVWlceoFAryy4H6kUusdhoPHZc/aYF7spCTTVX1/GYxywRDBujJmT3ptUmYLSKQuJS
         Sk5Q==
X-Forwarded-Encrypted: i=1; AJvYcCWxow5iP9NdBCb7K2Xuia2x4QhIfGzg1/IeRp3WVswwAzkTwnKtVOFETAE67KfxniBdy3YH5s3QS4c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywel61ilXSCeAd/GVcIldYPMKcCKUPfc6Fn5bNoI47B4NpksbtF
	vByrlkHl5jSYsgUvqgpvJMMxBdBDH6b1tHqJqH50L3cD6qSPiVTUBEu8L+fzxA==
X-Google-Smtp-Source: AGHT+IH3guZaMjqDo4Lo03vQ/NiWWXCj/d3dxuk4QCiRO9vG8O0dQ5fizjja47H0ph2QnI5PAA3WRA==
X-Received: by 2002:a5d:64cb:0:b0:37d:50f8:a7f4 with SMTP id ffacd0b85a97d-381f188c98bmr11381214f8f.52.1731315031320;
        Mon, 11 Nov 2024 00:50:31 -0800 (PST)
Message-ID: <533ef71e-c3ee-4698-acb0-2def2618785b@suse.com>
Date: Mon, 11 Nov 2024 09:50:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/mm: introduce helpers to detect super page
 alignment
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241108113144.83637-1-roger.pau@citrix.com>
 <20241108113144.83637-2-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: <20241108113144.83637-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.11.2024 12:31, Roger Pau Monne wrote:
> Split the code that detects whether the physical and linear address of a
> mapping request are suitable to be used in an L3 or L2 slot.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one further tweak:

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5232,6 +5232,12 @@ int map_pages_to_xen(
>      }                                          \
>  } while (0)
>  
> +/* Check if a (virt, mfn) tuple is aligned for a given slot level. */
> +#define IS_LnE_ALIGNED(v, m, n) \
> +    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << (PAGETABLE_ORDER * (n - 1))) - 1)

n wants parenthesizing here, for Misra's sake. I'll take the liberty to do so
while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 08:57:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 08:57:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833364.1248492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQF6-000185-CJ; Mon, 11 Nov 2024 08:57:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833364.1248492; Mon, 11 Nov 2024 08: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 1tAQF6-00017y-8M; Mon, 11 Nov 2024 08:57:52 +0000
Received: by outflank-mailman (input) for mailman id 833364;
 Mon, 11 Nov 2024 08:57: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQF4-00017o-TN
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 08:57:50 +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 059171c7-a00b-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 09:57:47 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43168d9c6c9so36364325e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 00:57: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-381eda04ceasm12143054f8f.102.2024.11.11.00.57.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 00:57: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: 059171c7-a00b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA1OTE3MWM3LWEwMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE1NDY3LjIzODEyLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731315466; x=1731920266; 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=1m1zPo6jdM2Gh9cdyq4GyR6RtWIvQAlYUfRTefeTzbo=;
        b=I2Ard/dcVVnBsD1I3BKi/v5T+n5LzPEepxggnhNAq5UQfmV64k8mZKIpthHchCTnwc
         fR+sQsK+O95HvsYi1c+tfewsNTUYPuCiqIImAmAkg1BJGUbrVZWKQyNCBw/VTrfI5EAM
         EKobOsR/uXb6XGikPyZSqQfXvAoqlW3HU7oyAvL+UqrlnJaVrLtEhe9WyG4eNoTIvFaW
         sHwEbq7yn4XnEm87H6o5Sw8pUiV+xycRtkMwnL9d6Kxij8XCXBF39CGqjvtH8h3MpzZp
         VqNMChcVvus0M1CbikeE5DvH85sL8tv2pXz4irh2/n427uRWz9SGQs53XOUKE3tLpxpJ
         SY9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731315466; x=1731920266;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1m1zPo6jdM2Gh9cdyq4GyR6RtWIvQAlYUfRTefeTzbo=;
        b=jlcSJfOI/RYOSFBdoXMB5m6JvEKC1RKBOXWXwL1394D+eJG82cQefgl0PzpJXc9DAx
         Ctm824HUiVVlBCiSUJ0CznseT9aW7yYj7+5IDM+0mXbZTVdQ9JJxotJ6t/ZOlLwbJIqc
         +tvOyFHza1AhZxZp1CAw1dct+ZplaI5NbOrYoVxe9Y7+v8U7wJ5MvzvfaMJNdfn7SIwv
         FC9ApaXzLYnVmVx203EOsDmXJdFc2rB/0BMP/7+UkBJYIn3vrFLmSSaOJZA6B3xKYHCj
         IZviOdW0TmsBkA8Qs2JaMN/44qavJe4WiH7QzX/ZAc2dojM+mKXmHnpY4TUYV3K8Oywo
         SnQA==
X-Forwarded-Encrypted: i=1; AJvYcCXN9HfsiVWUH81r7TJyDr2M3YaGe4lmDCHucpPzOi1vbTkmZZ3peResAzzNR+gLWG6nF1fJR8wkFcQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOxkiWpp7Bbzw9yqkEfbLSoJ4TvmvZSPIQrCBOxuSYx9Q3T9xz
	XuOk420ZEx83PctjhUte+BHPNFtiS12L7kAXdHBkAuGQmAJIbZbvspeEkk4CNQ==
X-Google-Smtp-Source: AGHT+IG0r8mz9znMZ5imQtkbmU77mLuGGJqyDWkfSZxZoGkTSDMJOt1yQoSNbb0eNOwse1uow4Stfg==
X-Received: by 2002:a05:6000:1ac5:b0:37c:cdb6:6a9e with SMTP id ffacd0b85a97d-381f1866f1bmr9939200f8f.9.1731315466609;
        Mon, 11 Nov 2024 00:57:46 -0800 (PST)
Message-ID: <2af354d9-788b-4ea7-977c-d9aa64704a98@suse.com>
Date: Mon, 11 Nov 2024 09:57:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/mm: introduce helpers to detect super page
 alignment
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241108113144.83637-1-roger.pau@citrix.com>
 <20241108113144.83637-2-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: <20241108113144.83637-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 12:31, Roger Pau Monne wrote:
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5232,6 +5232,12 @@ int map_pages_to_xen(
>      }                                          \
>  } while (0)
>  
> +/* Check if a (virt, mfn) tuple is aligned for a given slot level. */
> +#define IS_LnE_ALIGNED(v, m, n) \
> +    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m), (1UL << (PAGETABLE_ORDER * (n - 1))) - 1)
> +#define IS_L2E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 2)
> +#define IS_L3E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 3)
> +
>      L3T_INIT(current_l3page);
>  
>      while ( nr_mfns != 0 )
> @@ -5249,9 +5255,7 @@ int map_pages_to_xen(
>          L3T_LOCK(current_l3page);
>          ol3e = *pl3e;
>  
> -        if ( cpu_has_page1gb &&
> -             !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
> -               ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1)) &&
> +        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
>               nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
>               !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
>          {
> @@ -5370,8 +5374,7 @@ int map_pages_to_xen(
>          if ( !pl2e )
>              goto out;
>  
> -        if ( ((((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
> -               ((1u << PAGETABLE_ORDER) - 1)) == 0) &&
> +        if ( IS_L2E_ALIGNED(virt, mfn) &&
>               (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
>               !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
>          {
> @@ -5541,9 +5544,7 @@ int map_pages_to_xen(

About 50 lines up from here there's another place where I think
IS_L2E_ALIGNED() wants using. That becomes noticeable with the remark
I'm about to make on patch 2, on this ...

>   check_l3:
>          if ( cpu_has_page1gb &&
>               (flags == PAGE_HYPERVISOR) &&
> -             ((nr_mfns == 0) ||
> -              !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
> -                ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1))) )
> +             ((nr_mfns == 0) || IS_L3E_ALIGNED(virt, mfn)) )
>          {

... similar construct (checking "flags == PAGE_HYPERVISOR"). Not sure
if I should also make this kind of an adjustment while committing ...

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 08:59:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 08:59:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833371.1248502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQGo-0001f1-O1; Mon, 11 Nov 2024 08:59:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833371.1248502; Mon, 11 Nov 2024 08:59: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 1tAQGo-0001eu-JL; Mon, 11 Nov 2024 08:59:38 +0000
Received: by outflank-mailman (input) for mailman id 833371;
 Mon, 11 Nov 2024 08:59: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQGm-0001em-TY
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 08:59:36 +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 4552569b-a00b-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 09:59:34 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4314c452180so29138265e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 00:59: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-381eda137dbsm12138917f8f.110.2024.11.11.00.59.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 00:59: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: 4552569b-a00b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ1NTI1NjliLWEwMGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzE1NTc0LjE3OTE2Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731315573; x=1731920373; 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=VSsfGbkjh0BWPNyMVh08pMBq76DNNVzESDwckLiJD9c=;
        b=Ox/WhGw8H2NeNE4zDbb3bNb+zbtyLiftJ9khjcR5nIKmzjs1ONZLstPrr6OKcCiGq4
         jjvBl+b9uIYW8ArtbpkelUQOcFoosO0K7yMRZsWgX3scBcKJKXw2+TZxpc1LoThzh1cN
         qxItEFwgGyh2SNG+UnL2jJ5UbHvLZ8IPQdP0G4rraF4VDrHeL36Qs1lVzY81ZmgPIGbh
         Pq/ijAePfC8cKmkk7eY1UNXj0WlD+vcqD0x1/uy4ZutdEsub7SfjKnWAEPjFCLYie9Rq
         4iXqdQfbOtz9O+n53FVv3wOjRxF+KQqPZ9IUSLwKNEPnxu8L6nWgmugVBun6fD4NguNb
         2fJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731315573; x=1731920373;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VSsfGbkjh0BWPNyMVh08pMBq76DNNVzESDwckLiJD9c=;
        b=DEmFpXs0knBSIeTN/PR3msGkYndLEHhtWQi0ExYyFoLiXrpVjqZkqwUejDVhkwF7Cs
         3LNnVyGZeqCk2IpolQk8az0ULMvtPMPTyaQGJGO8vL5rrxuYrj7MBRvVflhedOLKIkFb
         6CyVlRUAOpiuCBRpWlZDgp/Koyy+OcE5IaSuQab5CZAlUOgrr/Npug5Xm1ACJRI7ExgF
         qCkRxrzpcluYsci5zPEFNuU8aIfYV+HApo0dMcfW2Bk8uUIGvOw2qWBDoZV0knerLOE6
         y8hv7ugflhNV4waTXb7/zs/PSZ8yS6ky9Maicgn6u28n191QNOxvjtbq8Dfwt3V6Pqkl
         IkFA==
X-Forwarded-Encrypted: i=1; AJvYcCUZ0xopEFvu3D2vSTmcwkUJNC/eJppGpzcTBAeSWhvTdllBAVRKkipjxXr+VMMHHqwebzYX1+AL7N4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydNu1h6SS32V9t3USlr18W58RJ3liywR5+Wx2B9Q0HVyI427hK
	m4hq9TAQcSkyjilq+Fqy1ETFucyENrSHE2K8+d/b7+L2gvGwMOmOPXjxZR4fnzyD/vMc6HKBI6I
	=
X-Google-Smtp-Source: AGHT+IGpmp7tVZm17IFbsnBTxU+53zQuTEPLshPL/ffg3JC0hdd2QwfgwU2JTHCt/dmyLe8O+/t94Q==
X-Received: by 2002:a05:6000:4007:b0:381:c7b7:9f2d with SMTP id ffacd0b85a97d-381f1c8c3f2mr11318384f8f.27.1731315573691;
        Mon, 11 Nov 2024 00:59:33 -0800 (PST)
Message-ID: <b01fc421-cdca-43e8-8c87-52d8dcb9378b@suse.com>
Date: Mon, 11 Nov 2024 09:59:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] x86/mm: skip super-page alignment checks for
 non-present entries
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241108113144.83637-1-roger.pau@citrix.com>
 <20241108113144.83637-3-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: <20241108113144.83637-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 12:31, Roger Pau Monne wrote:
> @@ -5544,7 +5553,8 @@ int map_pages_to_xen(
>   check_l3:
>          if ( cpu_has_page1gb &&
>               (flags == PAGE_HYPERVISOR) &&
> -             ((nr_mfns == 0) || IS_L3E_ALIGNED(virt, mfn)) )
> +             ((nr_mfns == 0) || !(flags & _PAGE_PRESENT) ||
> +              IS_L3E_ALIGNED(virt, mfn)) )
>          {
>              unsigned long base_mfn;
>              const l2_pgentry_t *l2t;

With the "flags == PAGE_HYPERVISOR" check I don't think any change is needed
here? With this dropped (again: uncertain whether to offer making the adjustment
while committing)
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:02:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:02:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833377.1248511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQJZ-0003B3-3P; Mon, 11 Nov 2024 09:02:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833377.1248511; Mon, 11 Nov 2024 09:02: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 1tAQJZ-0003Aw-0T; Mon, 11 Nov 2024 09:02:29 +0000
Received: by outflank-mailman (input) for mailman id 833377;
 Mon, 11 Nov 2024 09:02: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQJY-0003Aq-K6
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:02:28 +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 ab073947-a00b-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 10:02:24 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4315e62afe0so40577555e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:02: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-381ed970729sm12301943f8f.15.2024.11.11.01.02.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:02: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: ab073947-a00b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFiMDczOTQ3LWEwMGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE1NzQ0LjgyNDE5Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731315744; x=1731920544; 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=+eoVDAfQdegFBfoFuKk+lIZLkTbKuOjDAWMy4ty3WOU=;
        b=MdIcyEDffcg1gGCo63rrva1AZ/yQuv9sA8JnpAZA+DbWUrT8VpQMX4TvAII5jmyxTN
         PE2FQ05pGcL6wr/ofUDplVlpWPRTqBLZIGlAYAgo+L9U30Se69Of9My88i25c+cmkjuw
         maR6Aak9P64PdxmUPzvDpPvWzuhysMKIh5fr1tT9xEuvhnL7dATfihALOUILJLb183by
         FznLEJBBSRf2yStEQLnbmHBocUDLpsdEOc16SlU/eEQH7AC9kRPbKubzRRzsvtW17O45
         LNgbDwFZ2OO6uAEs7ySXVF6aBgqmXBuwh7pNGUUJ3m8UqaC+Dpcprw+OZ0nWoGtz/yix
         Q0DQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731315744; x=1731920544;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+eoVDAfQdegFBfoFuKk+lIZLkTbKuOjDAWMy4ty3WOU=;
        b=vomtmEsMj9uccfGpegSyNYMDzZnGLs+2lb0fX4DeFBFUmpBh4ecc3y0dYre3n64bQH
         T7YEhu5Q9COvGHPAbrjHP9LFuv9xRP39OhHkHKaGmIbIXITIDmRYCGCfyClI3tBAi5eO
         9iE2B4eqbprOTo+RNn+PbeQZwiUSmU8l3jX2um6211fQJijv09J9PA7mYB2xfesBhNef
         /QD93mk1aDXKwrmfKVDeebrv+Mm9w8D/EVFAMaDZmtYf99MK9lTeZS9KYytpr0FFr47p
         bMOF816+u09tI0lT8a0anZ01uZCOoFtFEQefWfJewkSu5GSz3Ny0KYTKnpxa3x4CUkLI
         I95Q==
X-Forwarded-Encrypted: i=1; AJvYcCWVvnA7t8PvuzueWdWNB3tXzKtfRoSCEpYXR4qlMzGihHNU7Ur32zVkGnfXmmH7wzuqNqG0P62AnMo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmwYQC3B7ZzAaUdcFYGY9euW77NDhTK2ws2Zcg91D1AHPr7ivl
	D3UtdDyZSeK4qQeGrCf66ycrlzGrVo76G01K2uD+c9QEsSf11KdZSY9syOsXWuagTjaToOwRunk
	=
X-Google-Smtp-Source: AGHT+IEw6VPzBAfsgIvg9dv0k7gOMN+WkHTlwtuCVycDBu4fgLsxCN8NQPDoW1uGIGzEJelQqwcY/w==
X-Received: by 2002:a05:6000:154d:b0:37d:45f0:dd0a with SMTP id ffacd0b85a97d-381f18672b7mr9064973f8f.1.1731315744240;
        Mon, 11 Nov 2024 01:02:24 -0800 (PST)
Message-ID: <4b2c525c-d421-4b71-a35a-f8c072781ad7@suse.com>
Date: Mon, 11 Nov 2024 10:02:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/trampoline: Collect other scattered trampoline
 symbols
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241108145335.315884-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: <20241108145335.315884-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.11.2024 15:53, Andrew Cooper wrote:
> ... and document them too.
> 
> 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: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> 
> v2:
>  * Rebase

As the previously somewhat controversial adjustment disappeared:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:10:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833386.1248522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQRM-00050w-Rz; Mon, 11 Nov 2024 09:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833386.1248522; Mon, 11 Nov 2024 09: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 1tAQRM-00050p-Oo; Mon, 11 Nov 2024 09:10:32 +0000
Received: by outflank-mailman (input) for mailman id 833386;
 Mon, 11 Nov 2024 09:10: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQRL-00050j-Uj
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:10:31 +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 ca3f260f-a00c-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 10:10:26 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-37d5689eea8so2449513f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:10: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-381ed9ea647sm12183404f8f.68.2024.11.11.01.10.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:10: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: ca3f260f-a00c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNhM2YyNjBmLWEwMGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE2MjI2LjcxNzUxLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731316226; x=1731921026; 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=IQ4yCUVMm/mFhC6+X7KyN5yjQABfyWgc/HHwk88sUWE=;
        b=MtmgBqEXIBe/COksknOc4C/LG3i6nfTpkrXDcSJGDlbwXWKX9nW5/lsL6xtlxm21ew
         ZvJErikUCDLVJ88cKTsMJIfqS710T2lE+35OY/Y+rSw0V2pqqLm1377i3YlNgHWvq7kc
         6Ougl/r94n8B5+tLe+cjSdmpEPswvxsb5EcS1fjb05IIsP3RoUSbO8MGE5EHE8bLIe71
         17bXt/GlnQdbjy31PmPZ6J5bCjE5M+7aYPij/MZEpq1BIC2zCF8altPf3ztQsADIWE+V
         /62FIrJNTuUm+jIOHmild0y5lijLDb33Bu+pc277g6eK4z43jh8hDywuKMkfh9/6vqGH
         Gxig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731316226; x=1731921026;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IQ4yCUVMm/mFhC6+X7KyN5yjQABfyWgc/HHwk88sUWE=;
        b=Jnsj93gtgXgj4AnO6bAk0NKHDQKsAVZOtu26puYqKgbPR8wPeaJ7keNdTHZFutRLfy
         Jar00DJFbU0YeAjfnf9ctBX7goweH1fCDwvEBrff/Rdwm4YJgN8ZlMqBr5fIuHeLNuiN
         oXiTom5maAZDIya/ANGXXWmZUp7ANjReSUlei6w5bsWpNUGnKbNOVeezoCTNj2pdTx1/
         GqFr1kGgj3VZxuANO5Rnt1cq1f4rb8zGoLxXf/FuYmyYFnx8UTXqJ7Ig9TC5IgXozf+/
         NVnm7pYSe5q+6ygPUOBxWI1MRx9zDDdf3xDflCTe8e6LK3vNpMPxvMG7Vxk01rmI1j70
         r7UA==
X-Forwarded-Encrypted: i=1; AJvYcCW9eeIrsw5/nUfhBZIkcKdiay8Nh0a3nSnNLaQmc4WSTOYme4p5EQvcOgV55H58tiMK7Y16QKJutOA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3AbNkuAIoBygx0uedMIIak6Ffnng72W3hfnorPPlxsxVQ+t6T
	aQzPRn6FYUQL8yZspl2RPPx44bkx1lxHNa7DKuiKKw/YfWjMxCM9+/cxIlArIg==
X-Google-Smtp-Source: AGHT+IHxWeL1J1ePvS2SVh2hkSwR/8120mnVZs0k4od/VAnHDS8jqEijrWFAcRhxkVyQ9zes1ylkYw==
X-Received: by 2002:a5d:6d85:0:b0:37d:4e9d:233f with SMTP id ffacd0b85a97d-381f186b5eemr10836413f8f.24.1731316226068;
        Mon, 11 Nov 2024 01:10:26 -0800 (PST)
Message-ID: <5bc0af87-b80b-4770-985d-083b7e8b564f@suse.com>
Date: Mon, 11 Nov 2024 10:10:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/10] Untangle mach-generic/
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: <20241108195820.789716-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: <20241108195820.789716-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 20:58, Andrew Cooper wrote:
> There's only one header file left.  More than half of it is totally useless,
> and the rest has better places to live in the tree.
> 
> This lets us drop a compiler include path.
> 
> Andrew Cooper (10):
>   VT-d: Drop includes of mach_apic.h
>   x86: Drop includes of mach_apic.h
>   x86/mach-apic: Move generic_*_probe() declarations into genapic.h
>   x86/mach-apic: Drop apic_id_registered()
>   x86/mach-apic: Drop ioapic_phys_id_map()
>   x86/mach-apic: Drop check_apicid_used()
>   x86/mach-apic: Drop check_apicid_present()
>   x86/mach-apic: Drop set_apicid()
>   x86/mach-apic: Move the genapic wrappers to genapic.h

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

>   x86: Delete mach_apic.h

I'll comment on this one separately.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:14:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:14:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833393.1248532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQUk-0005ZQ-9o; Mon, 11 Nov 2024 09:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833393.1248532; Mon, 11 Nov 2024 09: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 1tAQUk-0005ZJ-6w; Mon, 11 Nov 2024 09:14:02 +0000
Received: by outflank-mailman (input) for mailman id 833393;
 Mon, 11 Nov 2024 09: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQUj-0005ZD-8H
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:14:01 +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 480326ef-a00d-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 10:13:57 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-37d4fd00574so2315363f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:13: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-432b05302e1sm167290405e9.9.2024.11.11.01.13.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:13: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: 480326ef-a00d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ4MDMyNmVmLWEwMGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE2NDM3LjczMzU0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731316437; x=1731921237; 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=38DWQL5wqxlyLSmjlt3lXIFA8dqTrjHt8Hc5DcGqq1k=;
        b=D8IKWZ8fK8Y8FJIIFQYeF0ALSBgBuZmhQgzCjG+zw4O8ZY8zZPkO6bm0G/GMLGdGve
         Sl8vJtOXrwP22HADckRZx8h++W4p/wuCjcFjS5wixZKEJI9itotC9KMRMyMfX7lBiKGx
         PdT3vkbs7eikSOx+IQxuHIvmR2kJJbk+V3f5h3pBVNcWifdUcQpSjfOJiGgZU6io/Q87
         23talBII+xVarolHYUPdQvY10JtYMcLNfeqe/SODgGdCkAf5vegriLrUUpIWnXueHEqv
         ZOIokwU631hkKemWQFM3nKlD9SMcGo1nCVSomYdwSh6ZAU5KwId4V6laDWKlYRmU4NwH
         xhHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731316437; x=1731921237;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=38DWQL5wqxlyLSmjlt3lXIFA8dqTrjHt8Hc5DcGqq1k=;
        b=QIUtLaHU/htlQDcXJKS0Wc4sqM4ZTX2cLOn5vI3STjdcTpNUveV2U2FvKH3vf7gKmP
         Vg3OIInqcpXBaaO53yMSzPaR4QcHgJZz0Ltv/omrLqcfK6QvfG9uNb14g2UklGtUDKh8
         RZrt1/0tc/kcsxjmMQq93aE8jASyCRSMFQekRDlSCBUDiXvBoaz8uTfdsSF484yow73I
         OJUS1K5T5g3AnZkWqz3b1GV1gwonScyuVEIerhf6jxyC3Y4/8bbBHgxt4ACuqZveQFTd
         85IqEIKAOha2iabfSibHuzh4olo2T8aK3FLUdAx6F1fl6jnCm9W1MQ4QFtDuT9muL+ti
         PrtA==
X-Forwarded-Encrypted: i=1; AJvYcCUcS7hhRQaV8toqQ4IKFWiH8xJrjqPQJ/zpN9kvBdlhx07s1bNYXqg1e0Tm6jBcx4F5dSn7rOQrw88=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwA67lzSmEeWq/ZuwnyMMRaOgbl/NRvCNTl3qSTg3BS1gF75GDZ
	ngAMOvyDHMGjKP72IybpDw+dvRBs+6oFyFr+fdAFObhK1BOP4vKrSkcn4VrX3dcnNGMAcH/U1CA
	=
X-Google-Smtp-Source: AGHT+IFYStWMMNsvsIzb44GqovH7VaAfKPsVWzfW9lEjzLAEy/iihNadEjYn7NCiX2llfpkeisqzqA==
X-Received: by 2002:a05:6000:402c:b0:374:c1ea:2d40 with SMTP id ffacd0b85a97d-381f0f40d9cmr9954928f8f.1.1731316437132;
        Mon, 11 Nov 2024 01:13:57 -0800 (PST)
Message-ID: <aab4e7e6-1dce-4f6d-a135-f79dc5a3f2b9@suse.com>
Date: Mon, 11 Nov 2024 10:13:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/10] x86: Delete mach_apic.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: <20241108195820.789716-1-andrew.cooper3@citrix.com>
 <20241108195820.789716-11-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: <20241108195820.789716-11-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 20:58, Andrew Cooper wrote:
> All useful content has been moved elsewhere.
> 
> Clean up the dregs, and remove the entire mach-generic include path.

What's "dregs" here?

> --- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -#ifndef __ASM_MACH_APIC_H
> -#define __ASM_MACH_APIC_H
> -
> -#include <asm/apic.h>
> -#include <asm/io_apic.h>
> -#include <asm/genapic.h>
> -#include <asm/smp.h>
> -
> -static inline void enable_apic_mode(void)
> -{
> -	/* Not needed for modern ES7000 which boot in Virtual Wire mode. */
> -	/*es7000_sw_apic();*/
> -}
> -
> -#define apicid_to_node(apicid) ((int)apicid_to_node[(u32)apicid])
> -
> -extern u32 bios_cpu_apicid[];

For these two, isn't there some Misra aspect? They're both unused, and Misra
generally dislikes unused stuff. Whereas ...

> -static inline int multi_timer_check(int apic, int irq)
> -{
> -	return 0;
> -}

... this and the other inline function further up clearly have their sole
users removed here, so are fine without any further text in the description.

Preferably with the description amended / clarified:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:18:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:18:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833405.1248542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQYW-0006bj-Rc; Mon, 11 Nov 2024 09:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833405.1248542; Mon, 11 Nov 2024 09:17: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 1tAQYW-0006bc-O7; Mon, 11 Nov 2024 09:17:56 +0000
Received: by outflank-mailman (input) for mailman id 833405;
 Mon, 11 Nov 2024 09:17: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=pNnr=SG=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tAQYV-0006bW-3Q
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:17:55 +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 d26c1b7d-a00d-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 10:17:49 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-37d8901cb98so3014578f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:17:49 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed987d95sm12504533f8f.44.2024.11.11.01.17.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 01:17: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: d26c1b7d-a00d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmYiLCJoZWxvIjoibWFpbC13cjEteDQyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQyNmMxYjdkLWEwMGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE2NjY5LjkyMzk1Nywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731316669; x=1731921469; 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=RoK10uqg/eof6UsDV5W1ljmMjN103pwl7a9vNQHLSLI=;
        b=TWHVnfs4+MMu87/1HjoH4/hGB0r9ggUPlLhIxuNQoK1jNgZlcNCI7d8nok6I4W0h4t
         yhmZ4paiUUaBtVadCce2XRGmPNTKUCdmJRFGglBYYntfzOT3aZNlHxTB65YYI19g+S9c
         5RBcv6R1nK95yO192piI0nAIPnFlpmhgQyKYw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731316669; x=1731921469;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=RoK10uqg/eof6UsDV5W1ljmMjN103pwl7a9vNQHLSLI=;
        b=cinDQFesKWWo1iwbq9XfLr+PuUJ4GU2eLcSk1eVEJTLtl8I8wLGkm5Hn+ctwoT4Cef
         /Uk4HIjZTvz/NJLjGZKZ4x9kgrT1+R4Okxlhc+Rw8aTsEc3Q86G9q3vZYlORzloHI3/H
         gMVc9jRsn1LIveOb6gFOHZj5/vkyPTD5VRl/hNUsroFzxXnPvlMFAWQQiuPWsyOKz8sl
         l05Lh/KAgXGasqKu0T2J8wLpNy6dDtB2rJlc7HfLNAU7IhRZr2Sg6kuvqQAVBdqZVMZq
         LdAAStNuPhkpd77XjUMrZS+/I4gPb8L2dkH5TjyYwQEkYqVC4YMtPCyfjYFpCMPOdCuX
         3s+Q==
X-Gm-Message-State: AOJu0Yzid+e3XJrEtppBi5fyRmW5tR+q7HAsuWTfTAHt2i1wP/ol1OmQ
	En6pYfwNDPJJlIi8pGUlHbD8oPJRUv3+DXs27U32+g8lcugdPOrHAxu/vLIHsQibNbnwZHWdFLg
	4ti8=
X-Google-Smtp-Source: AGHT+IFaWdGkzHS8bA+P2iLdlI4sEbL1uodfBNX3EUD4LjH0t8WFaHeY/wPwNzch5DiNWlkLEEXLKA==
X-Received: by 2002:a05:6000:4818:b0:381:ebf4:e5e8 with SMTP id ffacd0b85a97d-381f1a6caa7mr9618989f8f.7.1731316669017;
        Mon, 11 Nov 2024 01:17:49 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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] x86/boot: Setup correctly fs segment for bogus_real_magic
Date: Mon, 11 Nov 2024 09:17:39 +0000
Message-Id: <20241111091739.4885-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

bogus_real_magic code uses fs segment so it should be initialised.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/wakeup.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
---
OT: Seen another similar patch on ML I suppose this part of code is not that
tested. Also, considering EFI code, do we always have VGA available in these
cases?

diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
index 08447e1934..b73b947bdf 100644
--- a/xen/arch/x86/boot/wakeup.S
+++ b/xen/arch/x86/boot/wakeup.S
@@ -20,6 +20,8 @@ ENTRY(wakeup_start)
         movw    %ax, %ds
         movw    %ax, %ss        # A stack required for BIOS call
         movw    $wakesym(wakeup_stack), %sp
+        movw    $0xb800, %ax
+        movw    %ax, %fs
 
         pushl   $0              # Kill dangerous flag early
         popfl
@@ -44,8 +46,6 @@ ENTRY(wakeup_start)
         call    mode_setw
 
 1:      # Show some progress if VGA is resumed
-        movw    $0xb800, %ax
-        movw    %ax, %fs
         movw    $0x0e00 + 'L', %fs:(0x10)
 
         lidt    wakesym(idt_48)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:21:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833412.1248553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQbs-00084l-AI; Mon, 11 Nov 2024 09:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833412.1248553; Mon, 11 Nov 2024 09:21: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 1tAQbs-00084e-5d; Mon, 11 Nov 2024 09:21:24 +0000
Received: by outflank-mailman (input) for mailman id 833412;
 Mon, 11 Nov 2024 09:21: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQbq-00084Y-2T
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:21:22 +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 4eb466d8-a00e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 10:21:18 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-37d4ba20075so2815528f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:21: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-381ed970d4fsm12638087f8f.5.2024.11.11.01.21.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:21: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: 4eb466d8-a00e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzUiLCJoZWxvIjoibWFpbC13cjEteDQzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRlYjQ2NmQ4LWEwMGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE2ODc4LjQyMTE2LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731316878; x=1731921678; 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=ak3JEXcUuEnYrsteGJHDEZsA3uC1LaFR+UbhNKCFbBo=;
        b=FmaGq2yFPYd7kpP6OakD3FoGSo9SCO7RCPSHZMJ8Il0t45VQwIyp0424t9/+aAp1JM
         zONDq8//nbsfL6X6UXfprCiCyYvFBYjiqL5zhS7rvP0EaR3xKCvvAZf6nSn7ECNwYi4z
         HmJIOlfVh8GP4SYBkq8+pJL62s/fnGdbiekeAhlGPYTOh55/EY2u67nEt5BvaBCLtugf
         9SQ7BbhSvs9fwBCz43FuU0EnWnuKJIBYNc+zk0Y7v1FGoQFtczDUgiN6TJuCG59lCVsM
         J5rhF12jb4wWje7erzuTEEaAawpcq5AUp+vFqqxV6SxHWBoYecTO1nS5r/I610/1td5A
         Q9Xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731316878; x=1731921678;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ak3JEXcUuEnYrsteGJHDEZsA3uC1LaFR+UbhNKCFbBo=;
        b=v5j6OM5R6sLMFRyS234hLJU8om5Iawm9qKqNpWhATrn2l/foAXXHZCq//VUIR1rVot
         J8MHBsLxaopwP1LtWpELGyJzijHQ3a1hoClrMBkSGgygrHi21vuoqJq8cdm5mQ7IyxrQ
         Wf7tsc/LEqAmz+rklT6erjqB7yt/fAJQOHrc99RrB7lLvS5tdUcH22DDc7vP/hdri6qG
         ++EiXxIOPuYKOTXP/6gu8gPWWi2XeDnny+jmwu3AJUCkvECy1lHC8Yyxh5Y6hKWDUs97
         WADfZwN+LPcOtznps1cvVky8EyFH0cssEknQUOOiEN1lzW0s/4rWieu/ICgM+AIfBrLG
         qdRg==
X-Forwarded-Encrypted: i=1; AJvYcCUVPO2d2mF23wM6NHDoVCFrtzMCsIRyx1SFO2OT0d1H9NzYOLQCmKD5pCR9X/WyEaMcWpylvsJzgV4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBYkwoI7+HEG3qzDDcNFXhGlr8krAtU/vSanimF5pFBSPpY9ij
	mM3PiZ7MdRhgYVqisrAjVM2n/KY54ViuICS/38ZwwZK1/nhLPOuBdBek0c/0dx+A8fIJDXTgeqk
	=
X-Google-Smtp-Source: AGHT+IHOdlLLvL+6F8gPv+3tx5LU1FbSIr1HWXopimys9zd2OpNeOtQumQVbtUX3E1bB0JYMO8wqBg==
X-Received: by 2002:a05:6000:4213:b0:37c:d1e3:ebd2 with SMTP id ffacd0b85a97d-381f1823488mr10460709f8f.29.1731316877823;
        Mon, 11 Nov 2024 01:21:17 -0800 (PST)
Message-ID: <63b510cf-b26c-41ab-a317-377eb56c434a@suse.com>
Date: Mon, 11 Nov 2024 10:21:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] x86: Drop mach-default/bios_ebda.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: <20241108201147.812036-1-andrew.cooper3@citrix.com>
 <20241108201147.812036-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: <20241108201147.812036-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 21:11, Andrew Cooper wrote:
> @@ -734,6 +732,13 @@ static void __init efi_check_config(void)
>  		efi_unmap_mpf();
>  }
>  
> +static unsigned int get_bios_ebda(void)
> +{
> +	unsigned int address = *(unsigned short *)maddr_to_virt(0x40E);

Now this is a case where I think use of uint16_t is not just optional, but
even a requirement.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:23:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:23:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833418.1248562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQdX-0000Ap-JI; Mon, 11 Nov 2024 09:23:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833418.1248562; Mon, 11 Nov 2024 09:23: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 1tAQdX-0000Ai-GN; Mon, 11 Nov 2024 09:23:07 +0000
Received: by outflank-mailman (input) for mailman id 833418;
 Mon, 11 Nov 2024 09:23: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQdW-0000Ac-El
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:23:06 +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 8c0847fb-a00e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 10:23:01 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-37d70df0b1aso2651858f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:23: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-381edc1104asm12585185f8f.88.2024.11.11.01.23.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:23: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: 8c0847fb-a00e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhjMDg0N2ZiLWEwMGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE2OTgxLjMyODE0NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731316981; x=1731921781; 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=HWLnYUCttsC6XlffBNQz7o6QOiQ8yovhcb9yUdyZx8g=;
        b=Wkonvy4NR6s2YPUccMeqKEwBgX3ylW8MPnTfumuHBpzS5Is4x9PTN0vcGu/omiBRWC
         OWoX6YQ2ZWiRetoHnUyxsE3NAgRpTDTa2Wr/m75KeZixBbxbm4Ptvypf41xpU6NEO+YL
         o31FobM3sfYgfe84TBSD3fPiYI3uoHFD04AAkiqjvch0qafBgx0MvFqv6ABrJ1dVKzme
         WkV5/fFzYWFWYQyUaZ03i/w6ajvO9A9duSiu9dwnx2UmkhKpV2QPFVBCK1E4xxB2DSN3
         gYWw6c8h80AGKMTO7qVqRrV7ayPG8fqCDIBYCCaxz6KEa31e+NgRuTWku9DlctGDqzaE
         SFBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731316981; x=1731921781;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HWLnYUCttsC6XlffBNQz7o6QOiQ8yovhcb9yUdyZx8g=;
        b=Y3GFZsIDDdIPmqkQ3a+BSXYxJjkTh+k3CHhhKkDlHnhiNriTeWTZ22trzLaLtLRC9b
         Kkkjh9ZsDaxkpsS8EctAYx7O23VmGPiTyVLLZpEriZTWBUJIgh5fYOFNQIt9Jyb1a+SY
         Yw966umleR68VRqMPDZ6EhZ6NUaO6RmE/wCz6cv9QP6y7GoVpjAnB5bxugSEpspWpCTv
         6giuDLrvnqQ7n3DmwqcKRRXSFOMun9j6gyJkW/cqGM6Cxk9aUfb/3vuo5Fh9rfFg42r8
         QaOJVlZ+t8V/fdXivW0HSbzm02Zdatvz/QAjk6YVh0UXbwH9JB7/gqxQlbsUGq7UHuCP
         rCvw==
X-Forwarded-Encrypted: i=1; AJvYcCVmnq1QHmmWwBPoqvzw7AYJ8xwd7VLF6H3bA5QINU95mNmhLytgZjdRbMeKSw+9u+4brQkLFwsG90o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvPRseUg4SrDoQ4bci+Af397RVGFthhHDdNZUmMc3nnb8AIU/G
	1ovQY+Ga5Gt6hrv4oROJrIN47nopIy8Vzrj6cDgiphuOPD6ERaoEGnhhpazRU8QPwr2R74k9kGE
	=
X-Google-Smtp-Source: AGHT+IEZ2ppU+lDu1+H2GgxGLTMoG/OwqeRknrVab6k5RLRHhTM1jL0bIA4a8A7QYv5/avsNEZax2g==
X-Received: by 2002:a05:6000:18a7:b0:37d:52d0:a59d with SMTP id ffacd0b85a97d-381f18672fdmr9022375f8f.10.1731316980656;
        Mon, 11 Nov 2024 01:23:00 -0800 (PST)
Message-ID: <f7515b69-f92b-4508-8859-e23c28b735ba@suse.com>
Date: Mon, 11 Nov 2024 10:23:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] x86: Drop mach_mpspec.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: <20241108201147.812036-1-andrew.cooper3@citrix.com>
 <20241108201147.812036-5-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: <20241108201147.812036-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 21:11, Andrew Cooper wrote:
> --- a/xen/arch/x86/include/asm/mach-default/mach_mpspec.h
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -#ifndef __ASM_MACH_MPSPEC_H
> -#define __ASM_MACH_MPSPEC_H
> -
> -#define MAX_IRQ_SOURCES 256
> -
> -/* Generic (i.e. installer) kernels need lots of bus entries. */
> -/* Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets. */

This (presumably obsolete, but still) reasoning is entirely lost ...

> -#define MAX_MP_BUSSES 260
> -
> -#endif /* __ASM_MACH_MPSPEC_H */
> --- a/xen/arch/x86/include/asm/mpspec.h
> +++ b/xen/arch/x86/include/asm/mpspec.h
> @@ -3,7 +3,9 @@
>  
>  #include <xen/cpumask.h>
>  #include <asm/mpspec_def.h>
> -#include <mach_mpspec.h>
> +
> +#define MAX_IRQ_SOURCES 256
> +#define MAX_MP_BUSSES 260

... for why it's 260 here. Imo the value either wants lowering to 256
(for there hardly being anything ISAish in 64-bit systems), or at least
that half of the comment retaining.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:23:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833424.1248572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQeD-0000gc-Rw; Mon, 11 Nov 2024 09:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833424.1248572; Mon, 11 Nov 2024 09:23: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 1tAQeD-0000gV-Ok; Mon, 11 Nov 2024 09:23:49 +0000
Received: by outflank-mailman (input) for mailman id 833424;
 Mon, 11 Nov 2024 09:23: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQeD-0000gN-3t
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:23:49 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a7011321-a00e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 10:23:46 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4314c452180so29292185e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:23: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
 5b1f17b1804b1-432bc46751asm73966975e9.0.2024.11.11.01.23.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:23: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: a7011321-a00e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE3MDExMzIxLWEwMGUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzE3MDI2LjY2NDYzNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731317026; x=1731921826; 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=ACj/1Pu2/PsGc3CX0qOv6kfqJbb3XZcHeus/JDIAbpI=;
        b=Xa18Ng0vXwRVC9P+yUGV5AcZsVXnQyJJRnGao4u5uPrQYdXGtEnEK2/ulF4rj3GUZE
         IRMxCfVETR4ZEqMe+s4MIk5ZdrgjdKi6KWEBREf6aI4ovtauEhL62TcGenSZ+NUp26ZS
         uFqcxQgk80o4mQTFO/ZJXOWhBdN+njgbA0mLRjFL4d4pZQH+PqjRyMfwEbA7abhVYsUM
         3Z7c3NY2tn8meAYgMJueoBZWb9+rUqOgFRWrx2qFGwS7ltKpE/mayVqdy9o8oUSjDT1l
         Wocj996p9Y8GtjWCapjuBmsNmy1KDzGYX9EWSqpAw+VtYVG6/s4K4svHXyAQwDQpxVTv
         JNng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731317026; x=1731921826;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ACj/1Pu2/PsGc3CX0qOv6kfqJbb3XZcHeus/JDIAbpI=;
        b=QxUyCl+gYoZp+X9jJt70LbYCLfELMt6tY0luRDobhY959O+7d63LjJzegIidFxfg1m
         DlT9s/UjOL7mcynFHijSWOGnhwEUM0wmX3dqbGBRRp61PDRb6cIAJwi+TUw4e0/6NRay
         wIj5FbGFfqgDgEMQSusR4Pp4AkNBp8Klg91DnvM+ZvcT6INbOzH4v+lZDwFiFvgpQwCe
         /XLUVY29tO6p+/VnZobpgC9S6WZwq/DR6m2GT9jbq12xHdazjSiXXwJxXaLY5lQdqamk
         gVwX9L9lfhHBHdymja0D39sc7XwT8o/jJD5ZYDapUqIj5+VDJYihq2OuOwYvVV1Mf0yX
         FGUg==
X-Gm-Message-State: AOJu0Yz9GabMcBZDKjinS7ghn4FKzE8cieJ0xIWKnDjNfez5p3tt3cha
	Tb2Lm1FqFErcf+DoDM35MMwWm+oB9W7JhbLpr/RIg7Y0ns2E2AN+m8zNTncE/g==
X-Google-Smtp-Source: AGHT+IEL9Yzju05JtZbLyWW2f1nRY7fS4mywRrf74eiGnwEZvymBn0t845I6ZJRzCLSjd2aD67p71w==
X-Received: by 2002:a05:600c:4ecf:b0:431:405a:f93b with SMTP id 5b1f17b1804b1-432b686ec50mr99380455e9.10.1731317026043;
        Mon, 11 Nov 2024 01:23:46 -0800 (PST)
Message-ID: <f6a17f61-6248-435f-8d08-b4d6c80c9382@suse.com>
Date: Mon, 11 Nov 2024 10:23:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Untangle mach-default/
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20241108201147.812036-1-andrew.cooper3@citrix.com>
Content-Language: en-US
Cc: Xen-devel <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: <20241108201147.812036-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 21:11, Andrew Cooper wrote:
> There are only a few trivial header files left here.  Shuffle or drop them, so
> we can remove another compiler include path.
> 
> Andrew Cooper (4):
>   x86: Move mach-default/irq_vectors.h to asm/irq-vectors.h
>   x86: Move mach-default/io_ports.h to asm/io-ports.h
>   x86: Drop mach-default/bios_ebda.h
>   x86: Drop mach_mpspec.h

Preferably with the minor adjustments to the latter two patch:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:29:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:29:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833434.1248582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQjc-0001xV-Dl; Mon, 11 Nov 2024 09:29:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833434.1248582; Mon, 11 Nov 2024 09:29: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 1tAQjc-0001xO-B2; Mon, 11 Nov 2024 09:29:24 +0000
Received: by outflank-mailman (input) for mailman id 833434;
 Mon, 11 Nov 2024 09:29: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQja-0001xI-S4
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:29:22 +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 6de88ccd-a00f-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 10:29:20 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-37ed7eb07a4so2786274f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:29: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-381ed970729sm12358151f8f.15.2024.11.11.01.29.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:29: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: 6de88ccd-a00f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmYiLCJoZWxvIjoibWFpbC13cjEteDQyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZkZTg4Y2NkLWEwMGYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzE3MzYwLjM3MTg4Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731317359; x=1731922159; 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=Xi6YOGGHaSJ68ELlxR6Pnu4bytUl+QM5euAZv/m6ARo=;
        b=JRQ9k+nW3LfnHTlU/M2+fLgKROffKcaZ+iYlR5GDUtxd7JWFt/bCWZwMkewcahbtms
         xbpDtnWcP2T/OK1aYVE9N5R9AzklayOviKsK0YCJfNByRww7UJD0T/sgCv8xB0ACIGBq
         lx4QCprLMoMfswUBAoH/872rxznhhMe2MlZgjP7v5LFbAaxEBkSAyD3hTqSplZI8xAmU
         NGqhkSMyXGsN2//YFHsPMijEJon/9lfwAFL9wduVHF08FV0NdINCh6MNNZlmiOEdOh2F
         NL9DOIfzIu2jlisoqVnagpYeJ1UVZ+IRRxK1Br8ozvGupvsIolBCwKipkT14xFBD46Zo
         TC2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731317359; x=1731922159;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xi6YOGGHaSJ68ELlxR6Pnu4bytUl+QM5euAZv/m6ARo=;
        b=nMwOyTnCXdpKf8zBzl81qL10GzqfH7JzDdMvL1ecdWdcmrEMbXVionNvIbEfCG627/
         YkT1fKSXJ2iOkatRMBSlH7xSNeSmSdx5RgtwWo5BDVWBVn2q3KvyUEKzKfhGFqfWBC5B
         dxOPr+DIrMGCIrb8uPxSKnrtuFQnmTRpTcX/qIQTOUPpKME4TDARlJmxjyTmDozP6Skp
         dzEOr5H++pQPS4lUe10BQlExE2Bmo241HyfA1SA2Z6owUJrMmHcC8Ah9bMr9rDDpcCLk
         2hjFnjTNaPERholKLjln3EfmbB3QTmjLNSRv3tr/yGtX7Y131AIWgazxN8Ec0Pr+V7YK
         YuQw==
X-Forwarded-Encrypted: i=1; AJvYcCVeiWgddhof0gY32j6gcuZFylcew6j/S/6jiZI9iSpBh2gwzypuLM6S6foPd2BTbWwwXhx2biocSmo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFdc/vmlKWBoHZG3daL5rCTnXQp5ycux1/A/VGU37KY4BD1b7M
	2vWaQPsDhQqkkEmk7xGdG7fT9KpqcjRsnVsUhwcbChBLWEyrDIJSgGYK2J96rQ==
X-Google-Smtp-Source: AGHT+IFafj4yFrcvLIhVS6BJ2ac+sWY9dptO9VVSLg80Gd98ofRjhXR276sag2inkAe1zGj8H7cURQ==
X-Received: by 2002:a05:6000:2d11:b0:37d:4e03:ff8e with SMTP id ffacd0b85a97d-381f1823a63mr7273787f8f.28.1731317359559;
        Mon, 11 Nov 2024 01:29:19 -0800 (PST)
Message-ID: <05cf7373-453b-4aab-ae41-b8c85cf0c9fa@suse.com>
Date: Mon, 11 Nov 2024 10:29:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/wakeup: Fix code generation for bogus_saved_magic
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: <20241109003654.884288-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: <20241109003654.884288-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.11.2024 01:36, Andrew Cooper wrote:
> bogus_saved_magic() is in a .code64 section but invokved in 32bit mode.  This
> causes a real encoding difference.
> 
> Before:
>   66 c7 04 25 14 80 0b 00 53 0e    movw   $0xe53,0xb8014(,%eiz,1)
> 
> After:
>   66 c7 05 14 80 0b 00 53 0e       movw   $0xe53,0xb8014
> 
> The differnce happens to be benign, but move the logic back into a .code32 for
> sanity sake.  Annotate it with ELF metadata while doing so.
> 
> Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:38:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833444.1248592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAQry-00047c-BA; Mon, 11 Nov 2024 09:38:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833444.1248592; Mon, 11 Nov 2024 09:38: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 1tAQry-00047V-7D; Mon, 11 Nov 2024 09:38:02 +0000
Received: by outflank-mailman (input) for mailman id 833444;
 Mon, 11 Nov 2024 09:38: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAQrw-00047P-UE
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:38:00 +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 a27cf24a-a010-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 10:37:58 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-37d43a9bc03so2942786f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:37: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-381eda0ed16sm12290232f8f.107.2024.11.11.01.37.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:37: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: a27cf24a-a010-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImEyN2NmMjRhLWEwMTAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzE3ODc4LjA1ODUyLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731317877; x=1731922677; 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=qn7e6EXwanVynR/ErhuHZjmpCHg/TeD84upznD2gpkA=;
        b=L8MvnSyiawzNgRBn406YhlWYhXukk0bsQdh2VaW298sFLJdyEhH0wfOxUR5wo6u2ZD
         Sw2ClzPlU1ybRBFbvhe0dcb+AmASBtnofmdLeUhvtkbYviQmrwxMcZhKPnNvLPwsO3uT
         uJ+4qpX8URVyzTNjZC9utSUUTKGMKH6v+qdN+w7w246xhICS3uzD2iGgcWAYs3oCylBB
         RVOj0EKdVNBoYTTos7MneK9vqa6WluRb0h0frODKCEdHn7mkqwtUPM/NbKEb/9K8j5v6
         BFM/wJwoJuIdkfHXUFIv52IS9ryGxl/eac5tw8SDJV9a8+5BjS/xiaIIE8ZgUrXR7OEC
         C5+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731317877; x=1731922677;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qn7e6EXwanVynR/ErhuHZjmpCHg/TeD84upznD2gpkA=;
        b=RVy6AA6Yba89QbDKHkwexBwHGVE9ht+jRGws8ocLJRTBX82w239+O6CTqrCaPKfV+4
         mHL4N9gkzMK5EG5FH37oFk/QnFgEKcghoTVo2aAqzCQGfqBJmC0ny+l1KuJGUKV7TIn/
         +aw23grOhhI0dVfP94mXSF5z0BVMHpGZw/xUmgEs9fmiBbAf1ZQohK2im4a1JK+spt4/
         uuhV6I8uLi39HAN4NjgK0zquJV5SX0wuDmWVvvNwJvoeHz0zWgKdo2MF4p/ta5WlmITC
         LLK/LpG3Upp5bXxgblXs8MNv6GgpgdLjwYOZiyw7GnSy6tiAwZV0dD1ebolXehtpuKdh
         fgnQ==
X-Forwarded-Encrypted: i=1; AJvYcCXNNwd2fR5ZAb1nwy07WNpffYypPlxtHcO/AHWdjH2AerPZfJQI547Ck7J+eXE1JDahelLFwpNiSdQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqFd0p5EBW2agKkgOua8Im72B6knHQuTzhxRL/g6XECvWjlYHY
	eY+KW0hgWdxLCFiCPK+tw0gFdgcmlo6ePdkz8vnV5YkjsDC0AJfROBjZUntSyw==
X-Google-Smtp-Source: AGHT+IFkYNc0qz0PVsi3JRVEFDEaxcwJE4Haup6XFs/9BsZpi0gZLy5LWO8Zliml9BUk8y1HbEi1uw==
X-Received: by 2002:a05:6000:1449:b0:37d:377f:51e6 with SMTP id ffacd0b85a97d-381f18852aamr8973037f8f.56.1731317877416;
        Mon, 11 Nov 2024 01:37:57 -0800 (PST)
Message-ID: <9ccb3216-533e-4e64-be89-e667db7390f7@suse.com>
Date: Mon, 11 Nov 2024 10:37:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Setup correctly fs segment for bogus_real_magic
To: Frediano Ziglio <frediano.ziglio@cloud.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: <20241111091739.4885-1-frediano.ziglio@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: <20241111091739.4885-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 10:17, Frediano Ziglio wrote:
> bogus_real_magic code uses fs segment so it should be initialised.

Like for Andrew's fix:
Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")

> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
>  xen/arch/x86/boot/wakeup.S | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> ---
> OT: Seen another similar patch on ML I suppose this part of code is not that
> tested. Also, considering EFI code, do we always have VGA available in these
> cases?

No, we can't really assume so. This is "best effort" only, with the hope that
if there's no VGA there, then there's also nothing else there which might
dislike the writes.

> --- a/xen/arch/x86/boot/wakeup.S
> +++ b/xen/arch/x86/boot/wakeup.S
> @@ -20,6 +20,8 @@ ENTRY(wakeup_start)
>          movw    %ax, %ds
>          movw    %ax, %ss        # A stack required for BIOS call
>          movw    $wakesym(wakeup_stack), %sp
> +        movw    $0xb800, %ax
> +        movw    %ax, %fs
>  
>          pushl   $0              # Kill dangerous flag early
>          popfl
> @@ -44,8 +46,6 @@ ENTRY(wakeup_start)
>          call    mode_setw
>  
>  1:      # Show some progress if VGA is resumed
> -        movw    $0xb800, %ax
> -        movw    %ax, %fs
>          movw    $0x0e00 + 'L', %fs:(0x10)
>  
>          lidt    wakesym(idt_48)

Between these two hunks we have

        lcall   $0xc000, $3
        movw    %cs, %ax        # In case messed by BIOS
        movw    %ax, %ds
        movw    %ax, %ss        # Need this? How to ret if clobbered?

I'd guess that the loading of %fs was deliberately after that point, in
case some BIOSes messed with that, too. Hence I'm unconvinced we can
simply move the loading of %fs; I think it needs duplicating instead.
(That way it's probably also safer wrt the mode_setw() invocation. That
doesn't touch %fs right now, but it's also not said anywhere that it
shouldn't.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:52:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833452.1248602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAR5X-0002OS-Bu; Mon, 11 Nov 2024 09:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833452.1248602; Mon, 11 Nov 2024 09:52: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 1tAR5X-0002OK-6n; Mon, 11 Nov 2024 09:52:03 +0000
Received: by outflank-mailman (input) for mailman id 833452;
 Mon, 11 Nov 2024 09:52: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAR5V-0002OE-Q6
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:52:01 +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 973b6e19-a012-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 10:51:58 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43167ff0f91so37787995e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:51: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
 5b1f17b1804b1-432aa5b5fb1sm213944345e9.8.2024.11.11.01.51.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:51: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: 973b6e19-a012-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk3M2I2ZTE5LWEwMTItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzE4NzE4LjE3ODM4Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731318717; x=1731923517; 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=NxDbsYYmTyK4GLQIdZ0EG7BslDm6UFCW/AUHCbeebxA=;
        b=fkk4g/gjU+X2mg0dufy+GJpSYRw8+ykxbObghm1tPy4ShwIOk1qaQNTdwBd5vFRcfs
         AJbByk6c74YfYoacRCBCQvPcqZSH09MDaPVr4BF8x4DVMo0Dxcl30Y3auQaqjNwsm/JS
         x8wW/tx0cZtHN4yttbtiphFGmCxmrjk43Yx0eChjYgPGUbskvligfosKdjKiyrKkOyTf
         X+JprkbHm1z9Bgcujp4raerXSoxZ6ldxHBIyDZqpvQuatZbYpVbwdPYc7mwIQNy2kh03
         D0jS5sZ/zSlE1M2/k8oiFqGcS6ey3dSvn1fwtIvJtH5WcZ3EnQQHY9ZyHNhuGiaY84Zk
         A7WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731318717; x=1731923517;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NxDbsYYmTyK4GLQIdZ0EG7BslDm6UFCW/AUHCbeebxA=;
        b=bqiyDWvmNaiQj3B4+w63w2KKXIwawiTVyzYUE6lbLLBlgJfrBP4lh0AV6bw2cf0/hS
         KaHnclinjAzd7VZt8Zq94KgECI6/s4YoBAf9P6oVjARTlYcNgrUUosmNrCiioMRZeyWv
         dI/GlW/laeL4F7kHXzrCnitqd6vLgHWWmicI1vk4+3mq+XKO48UbZ0vAajJIRJRrXgfM
         BlJo5jT97jnJCqPGerCSZ1suz7RI55CSkzkYWS0qUsfvsR2Q2aN02gpVrUuLtdiQ7j1P
         TKHJChvYsW3FJ5MbzL8ro72ZZvxHxsLPW+yojzeGssX2SznUr2sbvMpaerh60hvDgf1B
         hZlA==
X-Forwarded-Encrypted: i=1; AJvYcCVQEwiQejks/FHQSJ9IT7wifhZAIO4nNqnNpV2kTg8LVhxkFSys5m89dBC7GmJLeEWjuQjCscFugG8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy0AYhaDamn/HGYRIp/LIzzG3zS5PCi09aoBYGTljz93D7Z7neo
	N/9h43J4uE9CWwkPmip7ps5uU5BSKiFQicq5QW2SFiVKK6l2uR0CtpQX829JhA==
X-Google-Smtp-Source: AGHT+IEbdUqgXJcAgC4jdb52mcSRqEBT8CKz5HIQE/jiVaIWCYb+KYBF37M74E6g5rzPoRdwrvEayQ==
X-Received: by 2002:a05:600c:3586:b0:42c:b74c:d8c3 with SMTP id 5b1f17b1804b1-432b7522c60mr90092735e9.32.1731318717457;
        Mon, 11 Nov 2024 01:51:57 -0800 (PST)
Message-ID: <34a2d071-59a8-46eb-a9fd-516cce801343@suse.com>
Date: Mon, 11 Nov 2024 10:51:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM
 timer
To: Sergiy Kibrik <Sergiy_Kibrik@epam.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>, xen-devel@lists.xenproject.org
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
 <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@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: <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 11:14, Sergiy Kibrik wrote:
> Introduce config option X86_HVM_PMTIMER and make pmtimer emulation driver
> configurable and possible to disable on systems that don't need it.
> Option X86_X86_HVM_PMTIMER depends on HVM option, because this driver is part
> of HVM support code.
> 
> Introduced additional check of domain's emulation flags, to cover the case
> when user explicitly states the requirement of emulated devices that are
> disabled in the build. HVM always require these devices to be present so domains
> of this type can't be created when pmtimer or any other emulated device are
> disabled.
> 
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

What exactly was it that Roger suggested? I don't think it was what the patch
does overall, but just _how_ it is being done? That makes quite a bit of a
difference, as the former could be read as kind of an implicit ack to what is
being done here (and also in the other patch). Issue is: I remain unconvinced
that this conditionalizing is actually something we really want/need.

> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -144,6 +144,19 @@ config INTEL_VMX
>  	  If your system includes a processor with Intel VT-x support, say Y.
>  	  If in doubt, say Y.
>  
> +menu "Emulated HVM devices support"
> +       visible if EXPERT
> +       depends on HVM
> +
> +config X86_HVM_PMTIMER
> +	bool "ACPI PM timer emulation support"
> +	default y
> +	help
> +	  Build pmtimer driver that emulates ACPI PM timer for HVM/PVH guests.

Does this really affect PVH guests? Isn't the whole point of the change
that in a PVH-only environment this wouldn't be needed in Xen?

I wonder how meaningful "pmtimer" is to someone reading this help test in
isolation. I'd just drop the word.

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -742,11 +742,16 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>  
>  static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>  {
> -#ifdef CONFIG_HVM
> +    const uint32_t disabled_emu_mask = X86_EMU_PM;
> +
> +#if defined(CONFIG_X86_HVM_PMTIMER)
>      /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
>      BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
>  #endif
>  
> +    if ( emflags & disabled_emu_mask )
> +        return false;
> +
>      if ( is_hvm_domain(d) )
>      {
>          if ( is_hardware_domain(d) &&

While you commented on this hunk, it didn't become clear what exactly the
resulting new hunk would be. I question in particular the change to the
#ifdef: If that's changed and the BUILD_BUG_ON() kept as is, the comment
also needs adjusting. Yet it would perhaps be better of the BUILD_BUG_ON()
was split accordingly.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 09:53:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 09:53:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833460.1248612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAR6c-0002sw-JE; Mon, 11 Nov 2024 09:53:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833460.1248612; Mon, 11 Nov 2024 09:53: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 1tAR6c-0002sp-G4; Mon, 11 Nov 2024 09:53:10 +0000
Received: by outflank-mailman (input) for mailman id 833460;
 Mon, 11 Nov 2024 09:53: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAR6b-0002se-UA
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 09:53:09 +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 bfe9537a-a012-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 10:53:06 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4314b316495so34809015e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 01:53: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-432b053047dsm169058675e9.3.2024.11.11.01.53.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 01:53: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: bfe9537a-a012-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJmZTk1MzdhLWEwMTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzE4Nzg2LjMzNzAxOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731318786; x=1731923586; 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=w59a/tK6LcOwygBO059wCUTDX8yCzfcL3FLuCwZGN6g=;
        b=e5sAbYKDFWlTMfGmTJ5EmGn4aiVCrZcyGRdQEdyzVa4iSpKJKfbNdD5r3+Zr3pxlt5
         OYwwEUJfAeV7ICWHuLvHt+/6hxtLnDLGMgvTT9WuG/2Xm69p3wuYjB9cMauuU/ZCpUOI
         JX/kd5tG6vX1u8y1FCx0ZFQXjiijIgs0+Uuui1YFwgTD5w5KmeTP1XPa1liuxbq6ntGv
         FDRTHZ8NPil576+KAT/iooUtRqbTiynwSpLcYub/0D3UeQ0y+EGtR75SwJKGOqS2h8qJ
         RRxxyibkWnmJ4dheUpSxhGNqCy3HEoXMn/wPAglHa7w1Q5iu+OwnQKrHyNIx6882cs9G
         7+7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731318786; x=1731923586;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w59a/tK6LcOwygBO059wCUTDX8yCzfcL3FLuCwZGN6g=;
        b=S8VCzWq+H1dFaVHj+d0CU7WQOzhc0UHY4dwxrjNYWdBVaGZsAzzUh7WWcxfnxBXBYo
         uzdtTaBxYKkrYrck+DQuMgVYWd2gLmaotPlh0OqSe24Jc8DkDtA52WfbQQUlKgejPDha
         WtrdAE3FYQyeqLdPjj+ihtLxAsO1JNx2oPlOmk6M5m52AJRUMr96CqX9U8SIxRHX0VPb
         ZO3bglY4k6ATvUdt0KKV8rhmi9Y2H1ftLN4VMLZT81VvqLWjQO7tbr9BqTTLHJMq7X/8
         ZLqfFoFojtJTUw0ekH4gCkXHk4m+WTrDYvpP28GFPoJ56cGPWE5XepPGGfxhOae66Fwx
         QwrQ==
X-Forwarded-Encrypted: i=1; AJvYcCXxUkLfl1HmmElUov9T54OHUhu8kHP7dU4tHCLezu2P5F/6D4WV/qGkynHDqwgaWOyqKzRfjJ86VC4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9RcZuZ5yIlFhUWRs9BrLwiCiRmOyUs6YOzse/YOuNNlsk4VkA
	MGbypRGgZiUlnrvW8gnErcPuHDv998oh+m4WcnWJU6PxXCNqDz24sr3pUOnRbtI39zUs1mbbZOY
	=
X-Google-Smtp-Source: AGHT+IEdwkHnPofLCeqyph5h4CPUQSL4UB1SgCZhGM8shWa0jpw9n78rnIa2z5bDSsmC7oKRBofHzg==
X-Received: by 2002:a05:600c:138a:b0:431:5c17:d575 with SMTP id 5b1f17b1804b1-432b750274fmr90951495e9.11.1731318785685;
        Mon, 11 Nov 2024 01:53:05 -0800 (PST)
Message-ID: <9466b184-0ea4-4c2a-acf7-ab85edd56a57@suse.com>
Date: Mon, 11 Nov 2024 10:53:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/2] x86/hvm: introduce config option for stdvga
 emulation
To: Sergiy Kibrik <Sergiy_Kibrik@epam.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>, xen-devel@lists.xenproject.org
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
 <53b0d5552c128630e476c77b54b8983fe02e0e1c.1730887415.git.Sergiy_Kibrik@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: <53b0d5552c128630e476c77b54b8983fe02e0e1c.1730887415.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2024 11:16, Sergiy Kibrik wrote:
> Introduce config option X86_HVM_STDVGA and make stdvga emulation driver
> configurable so it can be disabled on systems that don't need it.
> 
> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

FTAOD - largely the same comments as for patch 1 apply here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 10:18:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 10:18:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833470.1248621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tARV0-0006cJ-JE; Mon, 11 Nov 2024 10:18:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833470.1248621; Mon, 11 Nov 2024 10:18: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 1tARV0-0006cC-GU; Mon, 11 Nov 2024 10:18:22 +0000
Received: by outflank-mailman (input) for mailman id 833470;
 Mon, 11 Nov 2024 10:18: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 1tARUz-0006bn-Ma
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 10:18: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 1tARUy-00015p-16;
 Mon, 11 Nov 2024 10:18:20 +0000
Received: from [2a02:8012:3a1:0:440f:f547:9226:a08e]
 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 1tARUy-0001mc-12;
 Mon, 11 Nov 2024 10:18: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>
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=ietWmLYycllmS2mSyMvZwkOylV26P1xbB+aobozA0a4=; b=kFizLWwW9dWB6Jo+eJSWqgw9+W
	Fw9o5731VAGhEDoPc658yQxJAcB9Jr1UJbdwNCKgwAOEA3rQnTn9csdYH4tpE0DCCFCjhIiEg3q+b
	uLLaLt4YCHBSUBJ1JOSOgJ8BUhoxoKV8c5v/+6LBfP5pdN8R7ayK2oFeaHE3GT+PA4y4=;
Message-ID: <6ab4ad29-404d-4f5c-8582-5d2f492fd549@xen.org>
Date: Mon, 11 Nov 2024 10:17:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H)
 support
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>, gragst.linux@gmail.com
Cc: xen-devel@lists.xenproject.org,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20241107132501.724836-1-grygorii_strashko@epam.com>
 <alpine.DEB.2.22.394.2411071314270.89051@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2411071314270.89051@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 07/11/2024 21:14, Stefano Stabellini wrote:
> On Thu, 7 Nov 2024, gragst.linux@gmail.com wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> Add Renesas R8A779G0 (R-Car V4H) IPMMU support.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Assuming it was properly tested:
> 
> Acked-by: Stefano Stabellini <sstabellini@kernel.org>

It is now committed.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 10:24:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 10:24:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833477.1248636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tARaf-00009G-7e; Mon, 11 Nov 2024 10:24:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833477.1248636; Mon, 11 Nov 2024 10:24: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 1tARaf-000099-4X; Mon, 11 Nov 2024 10:24:13 +0000
Received: by outflank-mailman (input) for mailman id 833477;
 Mon, 11 Nov 2024 10:24: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 1tARae-000092-3G
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 10:24: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 1tARad-0001C2-1D;
 Mon, 11 Nov 2024 10:24:11 +0000
Received: from [2a02:8012:3a1:0:440f:f547:9226:a08e]
 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 1tARad-0002MR-1J;
 Mon, 11 Nov 2024 10:24: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>
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=0YBhHb/6pDPGIbPhvORejdS9Cn2tGzlmu4vrEvNcDH0=; b=Tgxy7H1q/RpWRuPpoPhSZLlawH
	OA2QTjP4Dl+ceeBt3KaPGYsQA59vl/AtCCFwkAXLZOadaSV0MHT+KnJIldNZdHrigOTZa5lYNfpQk
	3/XSMrVE42xhi/9w0UGfYL+/c9eNzAjb+/Hym1S8dAJHn5Kx7PKHbQ7hjsbQxRgOwpGA=;
Message-ID: <96d8d5c0-015a-4dd5-8ef1-6d9cd6948cab@xen.org>
Date: Mon, 11 Nov 2024 10:24:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] drivers/char: move dt_uart_init() to dt-uart.c
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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: <8e1036a7e6c884702d46e377c1c5b723570c819e.1731077742.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <8e1036a7e6c884702d46e377c1c5b723570c819e.1731077742.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 08/11/2024 14:56, Oleksii Kurochko wrote:
> The `dt_uart_init()` functions is relocated to a new file `dt-uart.c` to allow
> for reuse across architectures that utilize the device tree to describe hardware
> components.
> 
> RISC-V is going to follow the same approach to UART initialization, which
> includes checking for the presence of `dtuart` in the console string or verifying
> the `stdout-path` property in the `/chosen` node, followed by searching for the UART
> node and calling `device_init()` for UART setup.
> 
> Add `xen/drivers/char/dt-uart.c` to the ARM ARCHITECTURE section in the MAINTAINERS
> file, as ARM maintainers are best suited to maintain this code.
> 
> No functional change.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>   MAINTAINERS                 |  1 +
>   xen/drivers/char/Makefile   |  1 +
>   xen/drivers/char/arm-uart.c | 80 -------------------------------

The only thing left in arm-uart.c is the ACPI initialize. I guess at the 
some point this will be needed for other architectures. I think it would 
be more suitable if the file is renamed, maybe uart-init.c?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 10:30:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 10:30:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833490.1248645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tARgC-0000qt-T3; Mon, 11 Nov 2024 10:29:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833490.1248645; Mon, 11 Nov 2024 10:29: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 1tARgC-0000qm-QQ; Mon, 11 Nov 2024 10:29:56 +0000
Received: by outflank-mailman (input) for mailman id 833490;
 Mon, 11 Nov 2024 10:29: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tARgB-0000qg-D5
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 10:29:55 +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 e22a2918-a017-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 11:29:51 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4315c1c7392so37841565e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 02:29: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-381eda03696sm12665718f8f.87.2024.11.11.02.29.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 02:29: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: e22a2918-a017-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzYiLCJoZWxvIjoibWFpbC13bTEteDMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUyMmEyOTE4LWEwMTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzIwOTkxLjI5MTAxNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731320991; x=1731925791; 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=pgoMsRdbc7KWdOCT6+/Kw78cgpOaPo4acsg+NBH4R9I=;
        b=OE0ZIT62zHPabjLsRaqyK5nOH4ep+RGuHhSJ4+q7uXRFzy9XaqPeo0xpUSh2n27wSi
         5K4NfIJEvjc6C8MbEzpNRePgZR1yehcl+aLtY9hSr8AX4eE9xnnLAVIigetINaSy655p
         JEnbvib/j3bA5xqBdqK+GKar6bzZcKEO+I1cc3Fa0zBzmxNMLG78CQfT5wwDIUBI5D+/
         wyRFoLCmLMJV/4HtCy0zxXGpwCCh89D/gyrXQpLKvVyY3Gz3F9Mbqb6nEkMVpqpLXhtf
         oN2B9dUaVPXYojSi1wHpsvZiOIBlNr4QSewcqsLU9UsLP5TF8G9usCAYeVtXanaq3C3U
         WHBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731320991; x=1731925791;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pgoMsRdbc7KWdOCT6+/Kw78cgpOaPo4acsg+NBH4R9I=;
        b=qQevkfoh7VldH9Gv+ftcEuOCdraboiqGbyxL8HRDHaouEBhN4SVkt74BkrMROowUeX
         3vPEi78V2hbKrokza6CHY28Vg5dV7UjYRaXSG7WEH2otogYDrzr9YfFBWQTKzIrIXOPY
         c06lb74HDhzDHFTdF5CwF0q302vGNkbbrzlXnoBTl7V8zv2gjtvBTPDwJBVm2AKX6utz
         OehiAjWO8bcwFhSYhUm+KNehgJCVnJu0HndSgewbe17W7qsTfN1Tps4Dk3BPrfCmnVqp
         lmgGkhG6RnEsPqq4KCq6t6bVphSM/dwmF8U3i0cA5uvA5SizUo+ybm5tvlIFUvh3QpNt
         IgNA==
X-Forwarded-Encrypted: i=1; AJvYcCUmo5Wb0bDvqgEw7UqAbXljri5F+zwR+6KhAAma8s9h8rvnQ894wT7CyXKXDlsmM03xQWLGRmNq9+s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUoTFyVtg/LiLd+lYwQT7nQhk1TXtkbHnz2++ZjAdx7688JcRp
	1+PZ9aHQeYOwydWtJKFoM/ZmXMAv55U2xH4BbO12k1a1dS7QbQ93NP09Lyqg/g==
X-Google-Smtp-Source: AGHT+IGXUIolPBafr6Sno6s0vf41gh0by72nm1ccrLB4PxVtXG/yyz0/UdbsxGZbTsCtOOCAUmFs6Q==
X-Received: by 2002:a05:600c:3b05:b0:431:537d:b3b4 with SMTP id 5b1f17b1804b1-432b7503540mr95769675e9.11.1731320990672;
        Mon, 11 Nov 2024 02:29:50 -0800 (PST)
Message-ID: <9eeb11a3-df72-4a77-9235-6a872b365ecd@suse.com>
Date: Mon, 11 Nov 2024 11:29:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/riscv: introduce setup_mm()
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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731069334.git.oleksii.kurochko@gmail.com>
 <2a9262165c71733792974f5e27795625013bc656.1731069334.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: <2a9262165c71733792974f5e27795625013bc656.1731069334.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 13:51, Oleksii Kurochko wrote:
> @@ -37,9 +42,9 @@ static inline void *maddr_to_virt(paddr_t ma)
>   */
>  static inline unsigned long virt_to_maddr(unsigned long va)
>  {
> -    if ((va >= DIRECTMAP_VIRT_START) &&
> +    if ((va >= directmap_virt_start) &&

Is this a valid / necessary change to make? Right now there looks to be
nothing immediately below the directmap, yet that would need guaranteeing
(e.g. by some BUILD_BIG_ON() or whatever else) if code builds upon that.

>          (va < (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)))
> -        return directmapoff_to_maddr(va - DIRECTMAP_VIRT_START);
> +        return directmapoff_to_maddr(va - directmap_virt_start);

FTAOD - no question about this part of the change.

> @@ -423,3 +429,140 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
>  
>      return fdt_virt;
>  }
> +
> +vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
> +
> +struct page_info *__ro_after_init frametable_virt_start;

As for directmap_virt_start - perhaps better with initializer?

> +#ifndef CONFIG_RISCV_32
> +
> +/* Map a frame table to cover physical addresses ps through pe */
> +static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
> +{
> +    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
> +    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
> +    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
> +    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
> +    mfn_t base_mfn;
> +
> +    if ( !frametable_virt_start )
> +        frametable_virt_start = frame_table - paddr_to_pfn(aligned_ps);

If you make this conditional, then you need an "else" (or something that's
effectively one) just like you have in setup_directmap_mappings(). Like
for the earlier assumption on ps being zero: Assumptions you make on how
a function is used want to at least be self-consistent. I.e. here either
you assume the function may be called more than once, or you don't.

> +static void __init setup_directmap_mappings(unsigned long base_mfn,
> +                                            unsigned long nr_mfns)
> +{
> +    static mfn_t __initdata directmap_mfn_start = INVALID_MFN_INITIALIZER;
> +
> +    unsigned long base_addr = mfn_to_maddr(_mfn(base_mfn));

Seeing this and ...

> +    unsigned long high_bits_mask = XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
> +
> +    /* First call sets the directmap physical and virtual offset. */
> +    if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
> +    {
> +        directmap_mfn_start = _mfn(base_mfn);

... this (and more further down) - perhaps better to have the function take
mfn_t right away?

> +       /*
> +        * The base address may not be aligned to the second level
> +        * size in case of Sv39 (e.g. 1GB when using 4KB pages).
> +        * This would prevent superpage mappings for all the regions
> +        * because the virtual address and machine address should
> +        * both be suitably aligned.
> +        *
> +        * Prevent that by offsetting the start of the directmap virtual
> +        * address.
> +        */
> +        directmap_virt_start -=
> +            (base_addr & high_bits_mask) + (base_addr & ~high_bits_mask);

Isn't this the same as

        directmap_virt_start -= base_addr;

i.e. no different from what you had a few revisions back? I continue to
think that only the low bits matter for the offsetting.

> +    }
> +
> +    if ( base_mfn < mfn_x(directmap_mfn_start) )
> +        panic("can't add directmap mapping at %#lx below directmap start %#lx\n",
> +              base_mfn, mfn_x(directmap_mfn_start));
> +
> +    if ( map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn),
> +                          _mfn(base_mfn), nr_mfns,
> +                          PAGE_HYPERVISOR_RW) )
> +        panic("Directmap mappings for [%#"PRIpaddr", %#"PRIpaddr") failed\n",
> +              mfn_to_maddr(_mfn(base_mfn)),
> +              mfn_to_maddr(_mfn(base_mfn + nr_mfns)));

Maybe worth also logging the error code?

> +void __init setup_mm(void)
> +{
> +    const struct membanks *banks = bootinfo_get_mem();
> +    paddr_t ram_start = INVALID_PADDR;
> +    paddr_t ram_end = 0;
> +    paddr_t ram_size = 0;
> +    unsigned int i;
> +
> +    /*
> +     * We need some memory to allocate the page-tables used for the directmap
> +     * mappings. But some regions may contain memory already allocated
> +     * for other uses (e.g. modules, reserved-memory...).
> +     *
> +     * For simplicity, add all the free regions in the boot allocator.
> +     */
> +    populate_boot_allocator();
> +
> +    for ( i = 0; i < banks->nr_banks; i++ )
> +    {
> +        const struct membank *bank = &banks->bank[i];
> +        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
> +        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
> +        unsigned long bank_size = bank_end - bank_start;
> +
> +        ram_size += bank_size;

As before - you maintain ram_size here, ...

> +        ram_start = min(ram_start, bank_start);
> +        ram_end = max(ram_end, bank_end);
> +
> +        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
> +    }
> +
> +    setup_frametable_mappings(ram_start, ram_end);
> +    max_page = PFN_DOWN(ram_end);
> +}

... without ever using the value. Why?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 10:33:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 10:33:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833497.1248656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tARjr-0002lW-CL; Mon, 11 Nov 2024 10:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833497.1248656; Mon, 11 Nov 2024 10: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 1tARjr-0002lP-8g; Mon, 11 Nov 2024 10:33:43 +0000
Received: by outflank-mailman (input) for mailman id 833497;
 Mon, 11 Nov 2024 10:33:42 +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 1tARjq-0002lJ-Cr
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 10:33:42 +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 1tARjp-0001Mr-2F;
 Mon, 11 Nov 2024 10:33:42 +0000
Received: from [2a02:8012:3a1:0:440f:f547:9226:a08e]
 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 1tARjp-00030p-2b;
 Mon, 11 Nov 2024 10:33: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>
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=yOp9E7TUNb/L822gZ8Iowvr6HsPsDI1/jLybZa9TC7Q=; b=l0/DTF+DUPfWhd448jnDMiTllH
	Bg9VtYV2LFaj9fnQ+WrvSl/tNP7fJpSHYhiLHBJv10iq0OK0MqTPOulbpbBxtFwnlob3IhwxKpR1X
	6curNOnNZKZMGCi5wQ48PRw+pzSy6wgtG8oA7T2/+4+Vj4XuSxYIcV9bN/I9/b8IMRos=;
Message-ID: <3d731902-d5eb-4f63-8501-5ddecf748cb9@xen.org>
Date: Mon, 11 Nov 2024 10:33:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] xen/arm: Add SCMI over SMC calls handling layer
Content-Language: en-GB
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "Andrei Cherechesu (OSS)" <andrei.cherechesu@oss.nxp.com>,
 xen-devel@lists.xenproject.org
Cc: S32@nxp.com, Andrei Cherechesu <andrei.cherechesu@nxp.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: <20240930114715.642978-1-andrei.cherechesu@oss.nxp.com>
 <20240930114715.642978-4-andrei.cherechesu@oss.nxp.com>
 <59b54859-d893-4bf4-8118-7e4a00e7d87e@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <59b54859-d893-4bf4-8118-7e4a00e7d87e@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 01/11/2024 15:22, Grygorii Strashko wrote:
> Hi
> 
> I'd be apprcieated if could consider my comments below.
> 
> On 30.09.24 14:47, Andrei Cherechesu (OSS) wrote:
>> From: Andrei Cherechesu <andrei.cherechesu@nxp.com>
>>
>> Introduce the SCMI layer to have some basic degree of awareness
>> about SMC calls that are based on the ARM System Control and
>> Management Interface (SCMI) specification (DEN0056E).
>>
>> The SCMI specification includes various protocols for managing
>> system-level resources, such as: clocks, pins, reset, system power,
>> power domains, performance domains, etc. The clients are named
>> "SCMI agents" and the server is named "SCMI platform".
>>
>> Only support the shared-memory based transport with SMCs as
>> the doorbell mechanism for notifying the platform. Also, this
>> implementation only handles the "arm,scmi-smc" compatible,
>> requiring the following properties:
>> Â Â Â Â - "arm,smc-id" (unique SMC ID)
>> Â Â Â Â - "shmem" (one or more phandles pointing to shmem zones
>> Â Â Â Â for each channel)
>>
>> The initialization is done as 'presmp_initcall', since we need
>> SMCs and PSCI should already probe EL3 FW for supporting SMCCC.
>> If no "arm,scmi-smc" compatible node is found in Dom0's
>> DT, the initialization fails silently, as it's not mandatory.
>> Otherwise, we get the 'arm,smc-id' DT property from the node,
>> to know the SCMI SMC ID we handle. The 'shmem' memory ranges
>> are not validated, as the SMC calls are only passed through
>> to EL3 FW if coming from Dom0 and as if Dom0 would be natively
>> running.
>>
>> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>> ---
>> Â  xen/arch/arm/KconfigÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  10 ++
>> Â  xen/arch/arm/MakefileÂ Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  1 +
>> Â  xen/arch/arm/include/asm/scmi-smc.h |Â  52 +++++++++
>> Â  xen/arch/arm/scmi-smc.cÂ Â Â Â Â Â Â Â Â Â Â Â  | 163 ++++++++++++++++++++++++++++
> 
> Could it be moved in separate folder - for example "sci" or "firmware"?
> There are definitely more SCMI specific code will be added in the future
> as this solution is little bit too simplified.
> 
>> Â  4 files changed, 226 insertions(+)
>> Â  create mode 100644 xen/arch/arm/include/asm/scmi-smc.h
>> Â  create mode 100644 xen/arch/arm/scmi-smc.c
>>
>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>> index 323c967361..adf53e2de1 100644
>> --- a/xen/arch/arm/Kconfig
>> +++ b/xen/arch/arm/Kconfig
>> @@ -245,6 +245,16 @@ config PARTIAL_EMULATION
>> Â Â Â Â Â Â Â  not been emulated to their complete functionality. Enabling 
>> this might
>> Â Â Â Â Â Â Â  result in unwanted/non-spec compliant behavior.
>> +config SCMI_SMC
> 
> Could you please rename it to clearly specify that it is only dom0/hwdom
> specific? Like SCMI_SMC_DOM0 or SCMI_SMC_HW_DOM.

I expect this series to be just a stop gap until we support SCMI for the 
VMs. Once this is merge, I don't expect we would want to keep a Kconfig 
to allow SCMI just for dom0. Therefore, I am not entirely convinced the 
proposed new name is a good idea.

> 
>> +Â Â Â  bool "Enable forwarding SCMI over SMC calls from Dom0 to EL3 
>> firmware"
>> +Â Â Â  default y
>> +Â Â Â  help
>> +Â Â Â Â Â  This option enables basic awareness for SCMI calls using SMC as
>> +Â Â Â Â Â  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
>> +Â Â Â Â Â  compatible only). The value of "arm,smc-id" DT property from SCMI
>> +Â Â Â Â Â  firmware node is used to trap and forward corresponding SCMI SMCs
>> +Â Â Â Â Â  to firmware running at EL3, if the call comes from Dom0.
>> +
>> Â  endmenu
>> Â  menu "ARM errata workaround via the alternative framework"
>> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
>> index 7792bff597..b85ad9c13f 100644
>> --- a/xen/arch/arm/Makefile
>> +++ b/xen/arch/arm/Makefile
>> @@ -45,6 +45,7 @@ obj-y += platform_hypercall.o
>> Â  obj-y += physdev.o
>> Â  obj-y += processor.o
>> Â  obj-y += psci.o
>> +obj-$(CONFIG_SCMI_SMC) += scmi-smc.o
>> Â  obj-y += setup.o
>> Â  obj-y += shutdown.o
>> Â  obj-y += smp.o
>> diff --git a/xen/arch/arm/include/asm/scmi-smc.h b/xen/arch/arm/ 
>> include/asm/scmi-smc.h
>> new file mode 100644
>> index 0000000000..c6c0079e86
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/scmi-smc.h
>> @@ -0,0 +1,52 @@
>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>> +/*
>> + * xen/arch/arm/include/asm/scmi-smc.h
>> + *
>> + * ARM System Control and Management Interface (SCMI) over SMC
>> + * Generic handling layer
>> + *
>> + * Andrei Cherechesu <andrei.cherechesu@nxp.com>
>> + * Copyright 2024 NXP
>> + */
>> +
>> +#ifndef __ASM_SCMI_SMC_H__
>> +#define __ASM_SCMI_SMC_H__
>> +
>> +#include <xen/types.h>
>> +#include <asm/regs.h>
>> +
>> +#ifdef CONFIG_SCMI_SMC
>> +
>> +bool scmi_is_enabled(void);
>> +bool scmi_is_valid_smc_id(uint32_t fid);
>> +bool scmi_handle_smc(struct cpu_user_regs *regs);
>> +
>> +#else
>> +
>> +static inline bool scmi_is_enabled(void)
>> +{
>> +Â Â Â  return false;
>> +}
>> +
>> +static inline bool scmi_is_valid_smc_id(uint32_t fid)
>> +{
>> +Â Â Â  return false;
>> +}
>> +
>> +static inline bool scmi_handle_smc(struct cpu_user_regs *regs)
> 
> I propose to add "struct domain *d" as the first parameter to make it
> more abstract from Xen internals.

I am not sure to understand why we would want the call to be more 
abstract. This function should *only* act on the vCPU currently loaded. 
So it makes sense to use "current->domain".

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 10:49:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 10:49:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833506.1248665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tARyr-0004qc-K4; Mon, 11 Nov 2024 10:49:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833506.1248665; Mon, 11 Nov 2024 10:49: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 1tARyr-0004qV-HV; Mon, 11 Nov 2024 10:49:13 +0000
Received: by outflank-mailman (input) for mailman id 833506;
 Mon, 11 Nov 2024 10:49: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tARyq-0004qP-M4
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 10:49:12 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9299be9d-a01a-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 11:49:06 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-539f58c68c5so7274781e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 02:49:06 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0def48csm575533266b.155.2024.11.11.02.49.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 02:49: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: 9299be9d-a01a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmQiLCJoZWxvIjoibWFpbC1sZjEteDEyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkyOTliZTlkLWEwMWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzIyMTQ2LjI2MDgxMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731322145; x=1731926945; 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=dNwJ2AToIEHIwEkCvp6Pq87mMK1+byPsYYAF0h0wiDw=;
        b=WWqfhPzQ3XbRU1gnKUGaM2WS38FuZeXYnUfWpa+3llb/3/HnoRC48NLNxD/JAnh+Wx
         KoezUB8q6V5J5ggkNTHWVC8sbD175H0L+mD172T1DknH8rnbBmFaJyxJsrvZO14NKwEv
         YORaeIuNJln7gi5G2jxSp+6QTbuQy4m2hOeYw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731322145; x=1731926945;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=dNwJ2AToIEHIwEkCvp6Pq87mMK1+byPsYYAF0h0wiDw=;
        b=dGP6iYiP32fxtmFXLqWj5xh/m4jfF+NC2alRm1/Zq/JBGcc2Axe/t/Bs0WSyakt3W9
         q1bTAbsmdxBzU5hsPyvCs2Yg/uifgkojoe/i7NOkYzip5oVovfPHXYiuZ3pMKzasGkJQ
         /jQNoUMvME6aLMQOL3g5xvqg2uwX53X/VpyREpt6A09MsXbNBDFSdF/UDSeMSO+mWtYE
         p6R/GrPEDzxpxZcUDlH5ny7c2bW3RpOw6RAUME7ibsdbbLAF+2DYdA/A37GTvhJRINQY
         tIxonNmDiiBo5W+kHDYPQKer1YXwX3d9H/oLNiSsa7Uiseg0Zb0SyiHVVNpf+tkn2ubK
         Uc+A==
X-Gm-Message-State: AOJu0Yy7L/6ON++XPjUPnkt09zim7lO566KUG1weoVQ41Ew9eNxGUpoX
	YYlx7DAh43z8Z9lvJmP6wccmzv3yzK+oWXiaAKECYtxty9Owhu/87Tc9E/i9mfYYTWYVJKFlTpK
	c
X-Google-Smtp-Source: AGHT+IH/14pheofl01b1r6SX5TiQ8MtbbOqlFs8QITX9yYBeDJRTOSU+Rav90+jMK/T1tg2Dj/sMKA==
X-Received: by 2002:a05:6512:1594:b0:539:8f68:e036 with SMTP id 2adb3069b0e04-53d862cd727mr7341297e87.34.1731322145080;
        Mon, 11 Nov 2024 02:49: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>
Subject: [PATCH] x86/trampoline: Change type of trampoline_phys to uint32_t
Date: Mon, 11 Nov 2024 10:49:02 +0000
Message-Id: <20241111104902.985611-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

As now documented, this variable holds a page aligned value less than 1M.

However, head.S fills it using 4-byte stores, and reloc_trampoline() is
compiled for both 32bit and 64bit, where unsigned long is a different size.

This happens to work because of the range of the value, but switch to uint32_t
to make it explicit.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>

Bloat-o-meter reports a marginal code-gen improvement:

  add/remove: 0/0 grow/shrink: 5/7 up/down: 26/-85 (-59)
  Function                                     old     new   delta
  enter_state_helper.cold                     1091    1100      +9
  __start_xen                                 8827    8835      +8
  __cpu_up.cold                                199     204      +5
  intel_unlock_cpuid_leaves                    102     104      +2
  acpi_enter_sleep_state                       397     399      +2
  efi_arch_memory_setup                        538     537      -1
  arch_init_memory                             632     631      -1
  trampoline_phys                                8       4      -4
  do_platform_op                              5439    5431      -8
  compat_platform_op                          5450    5442      -8
  reloc_trampoline64                           137     122     -15
  __cpu_up                                    1513    1465     -48
---
 xen/arch/x86/boot/reloc-trampoline.c  | 2 +-
 xen/arch/x86/efi/efi-boot.h           | 2 +-
 xen/arch/x86/include/asm/trampoline.h | 2 +-
 xen/arch/x86/smpboot.c                | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/boot/reloc-trampoline.c b/xen/arch/x86/boot/reloc-trampoline.c
index 0a74c1e75a4c..d5548eb08f85 100644
--- a/xen/arch/x86/boot/reloc-trampoline.c
+++ b/xen/arch/x86/boot/reloc-trampoline.c
@@ -15,7 +15,7 @@ void reloc_trampoline64(void)
 #error Unknown architecture
 #endif
 {
-    unsigned long phys = trampoline_phys;
+    uint32_t phys = trampoline_phys;
     const int32_t *trampoline_ptr;
 
     /*
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 3133985c88f8..7930b7c73892 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -235,7 +235,7 @@ static void __init noreturn efi_arch_post_exit_boot(void)
     u64 cr4 = XEN_MINIMAL_CR4 & ~X86_CR4_PGE, efer;
 
     efi_arch_relocate_image(__XEN_VIRT_START - xen_phys_start);
-    memcpy((void *)trampoline_phys, trampoline_start, cfg.size);
+    memcpy(_p(trampoline_phys), trampoline_start, cfg.size);
 
     /*
      * We're in physical mode right now (i.e. identity map), so a regular
diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
index 838c2f0b6fcd..8c1e0b48c2c9 100644
--- a/xen/arch/x86/include/asm/trampoline.h
+++ b/xen/arch/x86/include/asm/trampoline.h
@@ -52,7 +52,7 @@ extern char trampoline_start[], trampoline_end[];
  * the 1M boundary (as the trampoline contains 16-bit code), and must be 4k
  * aligned (SIPI requirement for APs).
  */
-extern unsigned long trampoline_phys;
+extern uint32_t trampoline_phys;
 
 /*
  * Calculate the physical address of a symbol in the trampoline.
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 9e79c1a6d6e6..7f0f57bb8ffe 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -39,7 +39,7 @@
 #include <irq_vectors.h>
 #include <mach_apic.h>
 
-unsigned long __read_mostly trampoline_phys;
+uint32_t __ro_after_init trampoline_phys;
 enum ap_boot_method __read_mostly ap_boot_method = AP_BOOT_NORMAL;
 
 /* representing HT siblings of each logical CPU */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:01:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:01:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833514.1248676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASAa-000862-Ko; Mon, 11 Nov 2024 11:01:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833514.1248676; Mon, 11 Nov 2024 11: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 1tASAa-00085v-Hw; Mon, 11 Nov 2024 11:01:20 +0000
Received: by outflank-mailman (input) for mailman id 833514;
 Mon, 11 Nov 2024 11: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=PBOk=SG=epam.com=Sergiy_Kibrik@srs-se1.protection.inumbo.net>)
 id 1tASAZ-00085p-Q8
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:01:19 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on20614.outbound.protection.outlook.com
 [2a01:111:f403:2608::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45547a1e-a01c-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 12:01:15 +0100 (CET)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by PA4PR03MB6829.eurprd03.prod.outlook.com (2603:10a6:102:e7::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 11:01:11 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.8137.018; Mon, 11 Nov 2024
 11:01: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: 45547a1e-a01c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwODo6NjE0IiwiaGVsbyI6IkVVUjAyLURCNS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ1NTQ3YTFlLWEwMWMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzIyODc1Ljg3NDEwOSwic2VuZGVyIjoic2VyZ2l5X2tpYnJpa0BlcGFtLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TJPn5eOjK/upuCUAkmlWFLjfavqTM5mZwuqEHtZyCHM652QajYYolIB9eVyipUVVbwakPODIQ9v/IeoaDL6KpQGSQ+RkhXFEt8PvOcRMSY2r4XxLbtNmvTHQVQRj/Kl18qpG1HLTEHGvuWz/VoIUD5rathYHPNjMWTVXszgnftPgTQy91FXp0AUeAUBymm1Q39TqoP0djSsYJ33OYXCVWN68C+b3cs1R55lR8oHNxh/dyarWV3BsP/EAqVoLyotUyWc4265PQ4a/9vGkU779lpMz8jX8I+86QPev2A/Mg9AebHbTSzeCvHMXPjybHdEU65eTUoLW5ZGUk/aTdaWAeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kaRJ4eSctnOcOyMu+PuRKTrKbvjYqj7wwyAXQ+futgI=;
 b=oXkKw04hOTCrcfCFmMl7R3Fd1tV32RWStqg3cWOyr+RvPyofqxi/NRUztHqjgyhzksQTfYn59XevM+pSjd3k3z5/jXFoxV/oQciOg91u+XG8id92fFoVVuNpdEnsMp+5UKY46PrZ35b1NG+yZcMvIayopbYCOum3k9LkzlR7Ivh//rENxmGGZO++DuiuhTYR3q5q2+Fe5QNE/jEMPok59HeMs+2zpvLJgkeWBVfxQWJaBdJnmnyEKIspAqKvNwFYyIi5cNNgIYkq5tHH/FlSpYVFH4TrdU5OpoOLoQC0ZMjNOWba05RcE1s3WK2aGZyAxBR3y45kCF8OTfOe+dIqRQ==
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=kaRJ4eSctnOcOyMu+PuRKTrKbvjYqj7wwyAXQ+futgI=;
 b=baKXCevs+w3U1yDaEJas5t8rwgSjUx+MUiH3TlWj15DQk9Rm782ASFdExRJpIMWEmEKygDAD2/v6WCaTG4dDRZnl/W4J69jlu04+R9CaONnS5JW/KJ2/jtNeYAeyDjIpbsapzezD6HpmAjT69x7GBSzLQNUeAOl0HlluT5au6ZghIyXX++i8Eth87LNGzAbIwjgIUc7+D7rCN+8erUIHrmrZAjTxfxmnBGIU6Iq9/gSsisriJFnqnLUW1qVtmlvZv0Lo2cdqPd9oJitL7sbBCPa71avEWGt79gu9HPu7uAUTYKma66/tpm2nFIKNSdCV/z83UZOnFS1qploGYgGB2Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <505e0790-10b9-4468-994b-1a3890eaef46@epam.com>
Date: Mon, 11 Nov 2024 13:01:08 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM
 timer
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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
 <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
 <34a2d071-59a8-46eb-a9fd-516cce801343@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <34a2d071-59a8-46eb-a9fd-516cce801343@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BE1P281CA0157.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:67::16) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|PA4PR03MB6829:EE_
X-MS-Office365-Filtering-Correlation-Id: 78d0beb3-2194-4c88-415f-08dd024026f3
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?SnJPbStGSUkrVHEwMjFqWWRYdmlqQ0N0VFEyaW9qWkU3UWVtcjRUYWs1UHVU?=
 =?utf-8?B?aDN3TjFBSHFWODM0Vis3c1VrQWdhMWhKV1Y0OGgrRElaUXQwTWVtQmNoM3Z1?=
 =?utf-8?B?cTFFbU1LaHJvZ0piVXgxbGxEa1RhTWN0UzVrQ0JlK1hzT1M0V01MQTl6QVlZ?=
 =?utf-8?B?MmhjV0FOVW1CaWhoMlBHTkJlT3dQcWpNU1IzYmZSbE5NSUlZU2tSUnlYaUU2?=
 =?utf-8?B?Q3o5QWF4czZUWFN1UkxBUmNrMW1Dai9tNVdPRHRuYnZCeEhsNTNZLzdhQkNh?=
 =?utf-8?B?T0srYnZFTHlCS3dhWnhYalVzOVNCUWdRRXA3M0xJaGFEMk9zVysrY2lVRzJx?=
 =?utf-8?B?clV1TU1lOW0vZkZacDYySjBsOXJVZ1lBeFRXdGhQREJNTHVoL2dUQW1obnRG?=
 =?utf-8?B?eXY3ZVRHNlRIMDByZFlyNHd3dHF6d24rUHVPRm5JWm1oWldFQVE3WGVjMEVQ?=
 =?utf-8?B?SGlnOVR4TG0rUTlFV1JIa0VzUmttc1hUR3drMk0vOXFIU1Nsa0tmR0JrTHFG?=
 =?utf-8?B?QW94eDVWUE0veXNqb2gzWDhkeHZnaTFSS1d3eHBZZ0NXYkRQT3MvNFdzbjN3?=
 =?utf-8?B?bzhWL3VreTRidXVKVVhTcUpRbHZPNytHUDZOTFZBcWZWNlRRZmZac3Z2WS9p?=
 =?utf-8?B?UHUzeGxvN1RGUlpoeDI2NWtSQzU3RnY2eXVMMDhiMnVFYTBWZUx4THF5TXRw?=
 =?utf-8?B?VVpOUUNCUnlLOWtZR2xlOWtpU0tscWs2ZUhIcjB4eGJNa0VKYWk0UXlUemsr?=
 =?utf-8?B?VFFpZHJqMW8yNTFvRUdqSTVjdkI5cGl6WmFSdzdBckgvOXp2UStxU0VYMGNX?=
 =?utf-8?B?d3VWWXZEWEhpTVZCRGdBWE51OVk5NlY5N1dvN3hUYXR0RkpuQmN2NlJBYlk3?=
 =?utf-8?B?a3lWdTR3MlRzSllJRENJdVl2S3N4dUJuWmRLdzVNYzdZR0FLSzBqSlBkTmhW?=
 =?utf-8?B?MXdvaFI3VUJQbERQU0MvUW1LdDRHTGJaWVFHMVJzdlFHbFBvNGtJSEJ6WGJM?=
 =?utf-8?B?TmdNZ1B5Zk5GVXhzdGtsdzVqVUU3anRDd0dQc2Rkek1ORFV4Tm9tQUk5ZE11?=
 =?utf-8?B?VkFGVVF0TjdVRHBCcnVQM2FRR05RS20xektCOUUvSGZQREZBK09Dek1pbWRS?=
 =?utf-8?B?UDUzRm12MG9OVnRxd0owS3A3TkRkdmtmenBNaHpNcUc2L0lLcS90RXhERFQr?=
 =?utf-8?B?eVVyeng5R20xTlhLOVdaYWR2dHpVS1VMRExSbVJTUmJmTjRKNVFDMVBQeFEw?=
 =?utf-8?B?Q1d6Q1V5WE9tdnJXa2lSMG42WHNERTJXcDhPd0oyNUlqR0VVT0RyeVJVS21F?=
 =?utf-8?B?ZjdBc1VaS2FqcU13N0M4SmJzOUdCZnpFLzA1UDRrSFRua3l6Rk55SGU0MGp0?=
 =?utf-8?B?UC9PR0dDc3p6V3J0dk56OVU3Yk04Sit1bU0zampEaGpwREY3Vmk5RUE5dkE2?=
 =?utf-8?B?S1FKcGx0alNjeEJzeFRXeWlOeTFFQi9NMldYMjJ1SzhUcUExWGpvZUx5Y2Yv?=
 =?utf-8?B?Z2EyTnBTN1VLTHdqUHhValRrbUY0aGR5dzZkb0IrR29mN3p6OHUxc2N3Y1M5?=
 =?utf-8?B?NStYa2FxZndxNjVpZVgvNkhlRWFYL2Rkb2d4Mks4ajZIc1kvV2tyU0ZPSW9s?=
 =?utf-8?B?Qjlma0l0cVFwYWZVMFdIT3Vpa0RpUWo3NDB4NlZYeWdtMXpWY24yV0QwWjlu?=
 =?utf-8?B?bUVVUTl1N2dXY2M2RGNST1lUekh6L0tERjUrL290SUovT0psSkN6cDQ2WXF2?=
 =?utf-8?Q?QKQHaW4MyO9r4/cD8KXodESx0DTSYu1sO2w4BZM?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.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?MnhUNW5HNkUwMjlKVkplb2tuN3JQTGlUdklTai91L3ZIandvRklpVjRtNEs2?=
 =?utf-8?B?d3YvR25MblNaRlRPTEl5cUpvS0VxaWRYYmVqUlhtNUpqaDBSWkF1c3JISTRq?=
 =?utf-8?B?dFl1azdKK09vQUQ5SzVrdlJUTTlYdSsrVENVUjZNOVRwN0hwOThMNkUyM0hI?=
 =?utf-8?B?S0xSMFh0ZVZQSnRUSk9pc2dLNC9wNHljbDk5UEhZdG90bks1b0pJbVNKUlZJ?=
 =?utf-8?B?Z092aVBOUDl0bTVORFlIU0xLKzlwbkdlV0xyTisxdzhLOW9haU4xaFZVaE1p?=
 =?utf-8?B?eTY5S1FDN2p2ZEVhZ3BLN3dEYkMxeGVYWCswVG9QSzBobTNJUkRUZWViSFpF?=
 =?utf-8?B?OEVYaFVMZjlNbXI1QnBPY1lnQ0tpVHZZdGcxNzFNNm5uakY4NEJHOEw3Z1dw?=
 =?utf-8?B?QVdxNlVVMnVDeHo4M2tnMGZoYkJnOEVsUW9xMmU4V1BSYzRqNGhKQVArbzM1?=
 =?utf-8?B?RE9xdlNhbmVxZmVuYnIrYU1Ra2RJR1RFcng5MENxL0N4NlJDeVNYTCtSWENN?=
 =?utf-8?B?WnFYUmU1SGhsWjJRRWlHNk1vM0VkTXBLUGxBM285cWx1WkZCcVJBS2kzZnVV?=
 =?utf-8?B?WEMyWjNoejlZYWVrR3NKUU9lZ2VqYVVwNkhrQXk2anJRRHVtYjRDNCsyUDU0?=
 =?utf-8?B?UFZKdHJVajhUSm00eVcwS1FVc3QzZHFqU1Iwbm0vRWNwSkU2cnY2MWwyWHln?=
 =?utf-8?B?ZjRvYlI4ZkxaTDBtMkNpdjAxSVVHT3hhakdKeGpmS1oxS3dnMFl4T011ZlI1?=
 =?utf-8?B?LzNYRCtaWThyaGI0VVlDZWo2OGo1bkh2NmhJbkFrZzRvTUJJQnJSWm5SakJq?=
 =?utf-8?B?SEVhQWdwVCtSNUxrRTNZNVh4WkFHQ2FPL2RFb3YwMXpFTXRRZDN3VVIyKzMv?=
 =?utf-8?B?UjdmT0FoZEsvUWpoTzRFYThPdExLaGRIbXpVQ3BUcUx6VXh4T2dUaWJRcDlt?=
 =?utf-8?B?dm9BUmdlVGNtVm5OaGh6V3d6aGVBdjRlY3dFZ1RLeGVZbGMwVlVSTEpHcldB?=
 =?utf-8?B?QUI2a2Z0ek5SSWZGQkFBdElPRVkyY1R1Ny90cHh4UkpTNjRYaE1Pa2xvbmgx?=
 =?utf-8?B?Z1hmaWhTZDVtZm5aSFBiY1d3UFpqcHVuV2ExR0QwWHZtbnFmNWd5MmpSYXFU?=
 =?utf-8?B?NTVQR1g3UkVuRG91OXpMVnJuNkhiTDhDb1E3eCtUY25iR2NleHVVNUUvbFlM?=
 =?utf-8?B?ZzRzN3hyc3A3czA1NXdMWWlGZFFvc09uR0VOMHIwQ3RxSDlkMWtYcVpUOG1U?=
 =?utf-8?B?bERaVDUvaG4xU1o1cFVhTDdBcDkzc3lYQ1liK3ppWW9SOWRLT0RNaHV0Qy9l?=
 =?utf-8?B?MWRwOUxocmZ6RTd1VTVRZE5Sb3BpaXZudklNR1RiNHB0UDNWQk1PcHhsWXlG?=
 =?utf-8?B?TlM4N2k5VkxROFpJVW1zcmV0ekxXQXJOaEJmeGM5ZDFGa3NneHNUVzJoT05J?=
 =?utf-8?B?bWV4d1hpMnp2SVhzSUVnMDlhQzB2d0ExTlRCTUFaUXFHOVNCTXlJRmQvVjU0?=
 =?utf-8?B?T290cEd2cFRBWklJZUJlQ0FHOUxwRFRmUEswdll3VjJNajA5VHpWaFB0ZUgy?=
 =?utf-8?B?cVZmK2VaYkdlZnIvYXNDaDdHL3VNOHp4clFKN2Z3aTl6TkJsRHQvTEc2Q1l4?=
 =?utf-8?B?WG95d05aZGVyc1VkUXFVM1hGblJjbGU1ZkRDUGlkYTNlZVUyWU5EaHVCRElu?=
 =?utf-8?B?SzZPZlFUUG5saFpuMTIyTExXb0daK08wTnpBMzN3OFRpMkorT3BnZXNPUkFh?=
 =?utf-8?B?WWp6eTduMm14andWR0w0OEhCcmUwVmRuakcyanowQXR0YVo1SzhZV2hNTFIr?=
 =?utf-8?B?ajZxWjVYM2gzU24wYTRXSld1aHpnWUQzK2Y0d21pY2xkN1FUVHZnSHNoU3RJ?=
 =?utf-8?B?bXNweG5oakFPcUtIN1FHdUFZWWI5VytJRmFXMWQ1djYwUlJ1S2g1MjAraVQ1?=
 =?utf-8?B?eUxKaWVOckd1ckFGdmFEbCt1eVpMc3ZsZzB6UWVqTXVCQmQwZmZmRk1CNjgz?=
 =?utf-8?B?bDNvZ1U3KzJ2WFYwQTcydXlaQzMwbmdJNTVEZDRSbjZLZFdJaDhBNzhLRFk0?=
 =?utf-8?B?YWNHZm1sbTBZTDRsa1M5YU5tYzJOMDBuNUlnN3RZNkFnVWx1NkFUM0RsOGlt?=
 =?utf-8?B?Nko3eFJ3LytYKzROQWFXcXNoYk5WbXVodkZvSmQ2TWdHT1dBcGd2dG14RTAz?=
 =?utf-8?B?MUE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 78d0beb3-2194-4c88-415f-08dd024026f3
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 11:01:11.3109
 (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: lKHddVpJvzAvOb171FIGTD/2slGGWjfPVGbHEBWUQVUBN5UcLDhOzwOEyECJN9vfbJfa9D9guhq+JsBM4gMoIQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6829

11.11.24 11:51, Jan Beulich:
> On 06.11.2024 11:14, Sergiy Kibrik wrote:
>> Introduce config option X86_HVM_PMTIMER and make pmtimer emulation driver
>> configurable and possible to disable on systems that don't need it.
>> Option X86_X86_HVM_PMTIMER depends on HVM option, because this driver is part
>> of HVM support code.
>>
>> Introduced additional check of domain's emulation flags, to cover the case
>> when user explicitly states the requirement of emulated devices that are
>> disabled in the build. HVM always require these devices to be present so domains
>> of this type can't be created when pmtimer or any other emulated device are
>> disabled.
>>
>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> What exactly was it that Roger suggested? I don't think it was what the patch
> does overall, but just _how_ it is being done? That makes quite a bit of a
> difference, as the former could be read as kind of an implicit ack to what is
> being done here (and also in the other patch). Issue is: I remain unconvinced
> that this conditionalizing is actually something we really want/need.

about a half of this patch is what Roger suggested. These changes were 
in a separate patch, which Roger suggested to be merged into other 
patches. What tag should be put in this case then?

>> --- a/xen/arch/x86/Kconfig
>> +++ b/xen/arch/x86/Kconfig
>> @@ -144,6 +144,19 @@ config INTEL_VMX
>>   	  If your system includes a processor with Intel VT-x support, say Y.
>>   	  If in doubt, say Y.
>>   
>> +menu "Emulated HVM devices support"
>> +       visible if EXPERT
>> +       depends on HVM
>> +
>> +config X86_HVM_PMTIMER
>> +	bool "ACPI PM timer emulation support"
>> +	default y
>> +	help
>> +	  Build pmtimer driver that emulates ACPI PM timer for HVM/PVH guests.
> 
> Does this really affect PVH guests? Isn't the whole point of the change
> that in a PVH-only environment this wouldn't be needed in Xen?

PVH guest may (depending on its configuration) still use PM timer, so 
I'd say the point is in a PVH-only environment this driver becomes optional.

> I wonder how meaningful "pmtimer" is to someone reading this help test in
> isolation. I'd just drop the word.

sure, the word is rarely mentioned anywhere, I'll remove it.

> 
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -742,11 +742,16 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>   
>>   static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>>   {
>> -#ifdef CONFIG_HVM
>> +    const uint32_t disabled_emu_mask = X86_EMU_PM;
>> +
>> +#if defined(CONFIG_X86_HVM_PMTIMER)
>>       /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
>>       BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
>>   #endif
>>   
>> +    if ( emflags & disabled_emu_mask )
>> +        return false;
>> +
>>       if ( is_hvm_domain(d) )
>>       {
>>           if ( is_hardware_domain(d) &&
> 
> While you commented on this hunk, it didn't become clear what exactly the
> resulting new hunk would be. I question in particular the change to the
> #ifdef: If that's changed and the BUILD_BUG_ON() kept as is, the comment
> also needs adjusting. Yet it would perhaps be better of the BUILD_BUG_ON()
> was split accordingly.
> 

This #ifdef definitely wants nicer change. How would you suggest 
BUILD_BUG_ON() be split?

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:05:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833524.1248686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASEM-0000Nd-78; Mon, 11 Nov 2024 11:05:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833524.1248686; Mon, 11 Nov 2024 11:05: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 1tASEM-0000NW-3X; Mon, 11 Nov 2024 11:05:14 +0000
Received: by outflank-mailman (input) for mailman id 833524;
 Mon, 11 Nov 2024 11:05: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tASEK-0000NQ-8x
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:05:12 +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 cf424cbe-a01c-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:05:07 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5ceccffadfdso6083044a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 03:05:07 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03bb83acsm4815831a12.51.2024.11.11.03.05.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 03:05: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: cf424cbe-a01c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNmNDI0Y2JlLWEwMWMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzIzMTA3LjAxNDQ3Mywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731323106; x=1731927906; 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=iIBjKHYDjM3hKudU8q8nmLLQuyZG2NCz1BON/yH64zQ=;
        b=gfH96lYVa6JkjqpZuQ7S1XwGWPqf9eXg/aTq06YyW+SMK+tySWrNrnr/BhTnQKXTf7
         ChJm1zQktnBqzmfrE20ba0OLEStZ9TFHxyDyymKcPrd3zOfH5YyyU36NbWJABf8LZOtv
         cVTlN3EkmmYD5w39pLkbMp5BlpWUvoDbzi8NI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731323106; x=1731927906;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iIBjKHYDjM3hKudU8q8nmLLQuyZG2NCz1BON/yH64zQ=;
        b=YOV90MPNRewn6lNZdDjjaiLWg3V+uLwmfHpQyxCTIRZUNv3WVMbPCO8F8GvV4rCZyn
         DmH1uKidcROm3nhQfspE4C6RPkSt1cXiQfmpkIh7MF6R8l+mM/lY6QBH/JDiTNaM0nCt
         hHetZcUr2K2XPFQnckX1UQJf5AIibso0fI5xBjQGNCfMz1wP0kztyq7t543WTJ+uEya5
         pRpbgoOQiAhnyxhn7rf9xVXP7/J5JcCgQLqMeC9eeHNgCWA8AkhvSSWcK+uatibBRcdR
         xy+BM2t6qwNFRMKCS7mtHeQRAuyO8UoKzIqguzIjJ0QZsMPtTpgufC3YzyHXfYqXL4P9
         Pqiw==
X-Gm-Message-State: AOJu0YyIQ75nEVHkYpfOcVQm+FynAF3EaltJM1o9VLE3Jon9u9a6z3OK
	frmFpVxnVaBJGazDkoCh9LKqy8INNVeO71MA02zgePb8vC+CV9iFaAw4v044OlI=
X-Google-Smtp-Source: AGHT+IGegQ+I8C5F8EMyNU0KyGF1d24aKXZB/tM6bwPxXPYuchdKlk94nLzIhgFEI+GDLGUkfrNDgQ==
X-Received: by 2002:a05:6402:2794:b0:5ce:c9d3:9fdc with SMTP id 4fb4d7f45d1cf-5cf0a323015mr10072455a12.16.1731323106458;
        Mon, 11 Nov 2024 03:05:06 -0800 (PST)
Message-ID: <1ace53f6-dd00-4277-9e91-4f3117facd38@citrix.com>
Date: Mon, 11 Nov 2024 11:05:03 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/wakeup: Fix code generation for bogus_saved_magic
To: Frediano Ziglio <frediano.ziglio@cloud.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>
References: <20241109003654.884288-1-andrew.cooper3@citrix.com>
 <CACHz=ZjBiEkXCGayGSdFUUc0eCFqSvGGSyFDMmRc76Nz_aP9QA@mail.gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <CACHz=ZjBiEkXCGayGSdFUUc0eCFqSvGGSyFDMmRc76Nz_aP9QA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/11/2024 5:29 pm, Frediano Ziglio wrote:
> On Sat, Nov 9, 2024 at 12:37â€¯AM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> bogus_saved_magic() is in a .code64 section but invokved in 32bit mode.  This
> Typo: invoked
>
>> causes a real encoding difference.
>>
>> Before:
>>   66 c7 04 25 14 80 0b 00 53 0e    movw   $0xe53,0xb8014(,%eiz,1)
>>
>> After:
>>   66 c7 05 14 80 0b 00 53 0e       movw   $0xe53,0xb8014
>>
>> The differnce happens to be benign, but move the logic back into a .code32 for
> Typo: difference

Thanks.Â  I'd noticed and fixed up locally.

>
>> sanity sake.  Annotate it with ELF metadata while doing so.
>>
>> Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> This issue dates back to the very introduction of S3 support in Xen, in 2007.
>> ---
>>  xen/arch/x86/boot/wakeup.S | 9 +++++----
>>  1 file changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
>> index 08447e193496..c929fe921823 100644
>> --- a/xen/arch/x86/boot/wakeup.S
>> +++ b/xen/arch/x86/boot/wakeup.S
>> @@ -153,15 +153,16 @@ wakeup_32:
>>          /* Now in compatibility mode. Long-jump to 64-bit mode */
>>          ljmp    $BOOT_CS64, $bootsym_rel(wakeup_64,6)
>>
>> +FUNC_LOCAL(bogus_saved_magic, 0)
>> +        movw    $0x0e00 + 'S', 0xb8014
>> +        jmp     bogus_saved_magic
>> +END(bogus_saved_magic)
>> +
>>          .code64
>>  wakeup_64:
>>          /* Jump to high mappings and the higher-level wakeup code. */
>>          movabs  $s3_resume, %rbx
>>          jmp     *%rbx
>>
>> -bogus_saved_magic:
>> -        movw    $0x0e00 + 'S', 0xb8014
>> -        jmp     bogus_saved_magic
>> -
>>  /* Stack for wakeup: rest of first trampoline page. */
>>  ENTRY(wakeup_stack_start)
> Hi,
>    I agree with the code move, it's supposed to be 32 bit so it should
> be in the 32 bit section.
> Does the ELF annotation help with debug information? Maybe worth
> adding to the comment.

As said in the commit message, it's simply ELF metadata (symbol type and
size).

It doesn't interact with debug symbols, so far as I'm aware.

It's mainly for livepatching (the ELF metadata is how changes are
identified), but we're applying it uniformly to all assembly as a
cleanup activity.

> OT: If I understood correctly, the code is writing a character on
> screen in a tight loop. Maybe an hlt instruction could be helpful?

Yeah, it's not exactly great code, but it needs more adjustments than
just a hlt.

It ought to know about CONFIG_VIDEO, and ideally video=none.

> Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:05:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833529.1248696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASEn-0000r6-Eg; Mon, 11 Nov 2024 11:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833529.1248696; Mon, 11 Nov 2024 11:05: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 1tASEn-0000qz-Af; Mon, 11 Nov 2024 11:05:41 +0000
Received: by outflank-mailman (input) for mailman id 833529;
 Mon, 11 Nov 2024 11:05: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=kNBq=SG=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tASEl-0000NQ-5G
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:05:39 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2612::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dfb72e5e-a01c-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:05:34 +0100 (CET)
Received: from DUZPR01CA0087.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46a::18) by AS8PR08MB8996.eurprd08.prod.outlook.com
 (2603:10a6:20b:5b1::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.27; Mon, 11 Nov
 2024 11:05:31 +0000
Received: from DU2PEPF0001E9C6.eurprd03.prod.outlook.com
 (2603:10a6:10:46a:cafe::8c) by DUZPR01CA0087.outlook.office365.com
 (2603:10a6:10:46a::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Mon, 11 Nov 2024 11:05:31 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU2PEPF0001E9C6.mail.protection.outlook.com (10.167.8.75) with
 Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14 via
 Frontend Transport; Mon, 11 Nov 2024 11:05:31 +0000
Received: ("Tessian outbound 93d42030d577:v490");
 Mon, 11 Nov 2024 11:05:30 +0000
Received: from L4c8e27da8558.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 0CFCEDF4-1CDA-4A46-B90D-055069D91EEE.1; 
 Mon, 11 Nov 2024 11:05:19 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L4c8e27da8558.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 11 Nov 2024 11:05:19 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by GVXPR08MB11182.eurprd08.prod.outlook.com (2603:10a6:150:1f7::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Mon, 11 Nov
 2024 11:05:17 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%4]) with mapi id 15.20.8137.027; Mon, 11 Nov 2024
 11:05: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: dfb72e5e-a01c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjJjIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRmYjcyZTVlLWEwMWMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzIzMTM0LjcyNjU0Mywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=CXy48S6UYRGb+jdyYiUndi9h4Wu3cI5G70/hNG8mQK37QIn9BWunjEfXPSfCS38+Te6jbE6Dok5///UsRrbVUdFPmY84abLvuOGkrvljwSFlik+djq/iWZnDxM/f03YB+4mmYbS02RPKprlwHJfr57BvmuXS78WU2TfCMNeRa00kuK4nbunKkNscLKGQ/3GqvprBDHCL/dRZBOc1KkLRmhJVSpA6bAuHitp95S5VYLin9nUVWyKZuopUKnQ09bH1j9pggkPOwOTWaklepDiJoOY82DAytWQmeVGFdlGX10qw85SC47BvSX0PylHkBSGJXF63Ld9RZNX0NMxS/J1+Ew==
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=4Q+ixIaZQlT2NxEclvzZEL9mKTxiVGJ0d+1HKxQL4GA=;
 b=EbYPkcKCGv4swrdQMps99ij30ZLY8VnePW00TXBe7Lho6SMhFX3Xep/hvMQ9yNLhGDPPzG94PCRfK1IZNjuN3Uw/HmDmUvwiYeQpp+qldOjRO26KJfwe2mvtefgaI0efN7A6O5FSTP+FBvjyKuXYTKK2fpJK7CNrwaGfztAcN2pVj8UDi8VxDYttsMFKa2o/cX9LTE5CK+oAYnCAparcO8T0ueg3BvgEcMbfvgHHi2D7IjUNGgRlUZzUzitgq116U3rBu7UiGQe++vWjOCU2optkqoXWVSSGCiXqpSPMSzOgwzKUwmeVVPNnC5i7sxuVEngN9CNGWI65KzQvh7Jr6g==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=4Q+ixIaZQlT2NxEclvzZEL9mKTxiVGJ0d+1HKxQL4GA=;
 b=AkKPAUYN2HTO/ziAKkGNj3/h07Pg/WAIciVqo2AvUbNoHaXc09TZhiwSCpJCQla5ZqDtfBi7O0qx03SsDeaUZSEW5LOvOEKZxcJygdMUqr2fGPRm2fCBuJi58isHZFd9z174uokpYyNf87zb0lPreGgP1xH3tnomjnrxUDFJBOo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 3c020562de9cd9ea
X-TessianGatewayMetadata: 6ajMjVabGSPKAkf2E/nwTWgBcL6Pr/SrpIVL/8y6fxNsfJoFYeultHmhGdz/4mTRpnrlwf/QYzUF4WyoLFtXf6+gKJJb3S/66Qp417VGlyaucSGTUKpGNuk1+mZNd3N154DQdyNBJR3Dy/26dHak3fepOR1lHxsQjPzOm25axOc=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XRNlP0T85Qk62ndx8ZSj66TFGgiTJAYaK6VnEpU8Yp1FxytLcuTkHyK/5k2wC2xz7ayHPEK8Rntc1ReJjY7HAopwY4qJ7iwwA5fZZbdo2MHsWHB+0vBa0IlhVawwoXdEtr+zuyYAF/UMPdxlB2Fc47zPSRJsJz/NhwFxZuMau7/j4VYUEjaCMl+mYmW1N3W8Z221AvX08owyqO5WjucnyVfZSnHMbhRn99inpUOOdo1cz5hnac0H+BWadPBIVkMlA6J6WTZVnN4q3Qvjo7d/oVh2JqAkNjixJZT0eMNwjejkbEfl9vIkbi7SvA8cqeQS+1pBejMIDEJCJfd8WYf4NA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Q+ixIaZQlT2NxEclvzZEL9mKTxiVGJ0d+1HKxQL4GA=;
 b=blOu4C1jQjoPHoZFCPH87Y3dDiyYFtzBzKx6OzM7WhTl0VSuQy4oe/yjr0j2YXIyjOnAFQ/uXpvn4qCxatj/aHo4fhc6xk+9Qfe0CmDXixzBiiYe4mLvkdc2GG/f3gy1iZXFagiDqLu7V7fxxhbAzj6KkQkVgOxSiUu+qhuw1bEPQYKiKdiOAY5HwVqW6bvAv2kGevAXepOk3kt+CX/o3krtNBLyd+OIYfxDUbPlsXdXZyGE1h0CCL2n6jDyixZvVg61uL7bCTWQQPb4DcmcMIYQftkapgs3tHzIb2WHp+bYeFd8BN+KPnjWUyuubwXvekq7/A7zMTbf8G6/Hi/bPA==
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=4Q+ixIaZQlT2NxEclvzZEL9mKTxiVGJ0d+1HKxQL4GA=;
 b=AkKPAUYN2HTO/ziAKkGNj3/h07Pg/WAIciVqo2AvUbNoHaXc09TZhiwSCpJCQla5ZqDtfBi7O0qx03SsDeaUZSEW5LOvOEKZxcJygdMUqr2fGPRm2fCBuJi58isHZFd9z174uokpYyNf87zb0lPreGgP1xH3tnomjnrxUDFJBOo=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v5 1/3] xen/arm: mpu: Create boot-time MPU protection
 regions
Thread-Topic: [PATCH v5 1/3] xen/arm: mpu: Create boot-time MPU protection
 regions
Thread-Index: AQHbMSZ/yErsGrD3s0im25m0krd8DrKx8N6A
Date: Mon, 11 Nov 2024 11:05:16 +0000
Message-ID: <FE6C9D2C-EC6D-4A52-B321-C2B5F9F59D7D@arm.com>
References: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
 <20241107150330.181143-2-ayan.kumar.halder@amd.com>
In-Reply-To: <20241107150330.181143-2-ayan.kumar.halder@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|GVXPR08MB11182:EE_|DU2PEPF0001E9C6:EE_|AS8PR08MB8996:EE_
X-MS-Office365-Filtering-Correlation-Id: ab7af407-e3ba-453e-7a19-08dd0240c1e7
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|1800799024|366016|8096899003|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?+E0cmAcNnfjqjcfve0Vh6Ws62JZQ9F+EQL5IjqH7GmGbW5jPwIZ3rszI/+2w?=
 =?us-ascii?Q?2zC13gXqVtVz/xyFzAqs09Paw7LMwf0I3mKE5KzcSyAQwMZpy6Ra9piHOAR5?=
 =?us-ascii?Q?iYs+NDSI4Xdt5+0DOsh6tE3oLPpXtsHnGn/1DFIPTk/xItZPN632fFgB0pw0?=
 =?us-ascii?Q?hRkR04DMBWiugMgiF6st7r7xQ4v6tkjbjHFGboQK7fszCHS3rnjmnXR0tyFi?=
 =?us-ascii?Q?EPqZyVDC/f1SGN47XVQduNm6vbYpX+wrJo1jReePeUx0/LEMpTIL385V1tj5?=
 =?us-ascii?Q?7ireZbNipiiz/+XyRPCPzrkIxUSHtUd+jcktYoYL9BdNl300BlybKGR/F989?=
 =?us-ascii?Q?/AEX3pVP2Xko5LIxGP2cmDwj2CoFJ+aG4I3mncWpShzQg+ffWPDLgrKgvG7u?=
 =?us-ascii?Q?JujOiUfAechAuuZg8GZMeAInOaqYgnX4FBntQsQBvhQnBoWpOwv/9dDno1y9?=
 =?us-ascii?Q?j77rYJqjoWAyYARkPtgioFl8h1IOU+qqUCzCNj/BGjIopWSHBNBf0sAwpZRG?=
 =?us-ascii?Q?BB3VkxkmNQlD6+9YJgo8+BBQUfPmiZkzRpy01LF4NnO57lI+YG/POSZHTJjG?=
 =?us-ascii?Q?KvdJ5ZbsSizsvSa5FF+IlsqH9dqTB/v4Usr7RLAtQK5a/kh84SQhkB44bAdy?=
 =?us-ascii?Q?rDME8PSGS9VqnPqPoqdkcQEOS14lC8IJG5Wf3y5pjZAPZqLFgBPyQ2f+NvUV?=
 =?us-ascii?Q?kCvfDzyz0xAMOMQ3tCGbD0snv8GHzY6yzZRSle4UYbrCJtcOTf8pBtuAOmDb?=
 =?us-ascii?Q?pBwP00LWpIf0Qb1YKAFc9vv94xmz6z7fbr/vDJyRvV6u5CEGaZjvbcU82S/w?=
 =?us-ascii?Q?iaCAOWA/X+jidRYgBPLF6Ke+oA+3bTu0yu229TcxGASDN4mQOGKGUfOknsje?=
 =?us-ascii?Q?2NgIH80psb5aM3ZT2hxCXjic8KRdb529Qz/Cq6ga0OMP7YWex71DoJmIMRdx?=
 =?us-ascii?Q?R6KRNOgIGyspKE3lWeCkk8thvTb8Bda1T/3x28LuihHQoFbDnP1DvHvims0s?=
 =?us-ascii?Q?dxylXSnrBffZQpTatoH+/pGOmIOxi8aNkykMraVUav96s4UOXrONfxePm4Jj?=
 =?us-ascii?Q?10A5TRcTgwhN7pM9sLT/mJ7GY9UwrMFhEZUY4+GE0csIe/Weenxdi7YvYHx7?=
 =?us-ascii?Q?CIV4y/cdeC5Dvsy+PMCL1bD6leqlWa9CIAe7nZTJ3Ic4oZUVgwOVD8W4TWHw?=
 =?us-ascii?Q?OKG4+5vsjVNpI2xV2pi71MpabshaDR7XqJa4CdtzXC7GUBAc+4gg/SrYHDzi?=
 =?us-ascii?Q?OtGvlJ39+xBzuqCjPbf+XeEaaAcrN9B2zxg/SISRE93oUKGyoipPvJ+IaO7d?=
 =?us-ascii?Q?ECXYKlgnya5Tors+ZYVMe47f7ulS3ZRtv29j85IxZxV9dBBS9A5nFQPhSiyZ?=
 =?us-ascii?Q?8Ftt28U=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(8096899003)(38070700018);DIR:OUT;SFP:1101;
Content-Type: multipart/alternative;
	boundary="_000_FE6C9D2CEC6D4A52B321C2B5F9F59D7Darmcom_"
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11182
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF0001E9C6.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	52d9e1f7-1bdd-4409-1bbb-08dd0240b981
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|35042699022|36860700013|14060799003|8096899003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RG1CdDlDdDRnUnF6UkxiaVlGd2Vxd2hLbzliOVk0bkUzb1dqand4eGk4aTdi?=
 =?utf-8?B?d1RoZVpXRHZoVUFpYjNrZkx1TTNranNyV2tpajhNbmZzRHRPS3dETTVHTlRk?=
 =?utf-8?B?RjdGbC84cFMwUnMxbW5GUmhKN2Q5aEVFelkrY3BSdkhxZW0vb1Rhek5aaEhO?=
 =?utf-8?B?L3FkUzhwQXpqSCtwSk1rcjR1ZzV0TXZxV2JLeGg4clcyNVBISmtpckxXNHZE?=
 =?utf-8?B?d0hSQlNNRzVlSnUva1hnQ215dU1ybUpnTnVqVHkwM2RVVGpMbjBmUERGN1hZ?=
 =?utf-8?B?N3B6YSs5bG9qbzJtWVduMlhyenorQW1YTFdIMlBCRlRWRFhyZDR1bWlPa0tN?=
 =?utf-8?B?c1dCM1hvelpJSmxlQUtKZjZwajJPc01WOUFZYnBuMkF5U0owcDdYUUwrNkhO?=
 =?utf-8?B?bEVVNUxycVg0RHNwbVZnVzdPV3hIM0pFUnZEMTkrTkVua2tLdi9COGdjbHk1?=
 =?utf-8?B?YWx3TGNuc3ZxSU9xNER5M1RadEthWGh0NDZVRXZMUW5WWHVqUEp6SGZ5bVpQ?=
 =?utf-8?B?ZmxseVROKzVGUjlKRWgvV3lnOUJPamwrNkVMRnBXRFljZTNIRCs4WlVpZ2R1?=
 =?utf-8?B?SCtyNWRCOUJTc0UyOTFFdFhEYWFic0ZlZlAvdmVJWlM1SHVBUVM4d21scnAr?=
 =?utf-8?B?cW9ySU1tRkgzc2w3QVZqcktIQW44MmpRbXZkazMxaSt5MXBaTDRzbmtEemwz?=
 =?utf-8?B?MGRiY3lEWWhtbUVEWmE4WXhEYklqOU45Zzk2T0NHN2ZOWHVtM2RGK0h5Nldt?=
 =?utf-8?B?LzVCSFJSVW5ib04wem1TU3dYSGgzUlR5bDZ0NFRxbDZhdVJubGdjc3RBUGNE?=
 =?utf-8?B?cEhYMHluSTlYYnM4SC9IT3k3cFd1Z2NOcFMxNDZRWnlJd1VTTXpPelZqRzA2?=
 =?utf-8?B?eTEvSUV2dFlsbjByOEVLWnd2MWV3S21hT0orYk01VG9uSUNMOVNBQUhudFQ0?=
 =?utf-8?B?Rmd4d2NlUFhsUkoveWlXQUtzb0ZVRmlkdmhQVTZzTEl2cHhOdTgzNnh0SHVE?=
 =?utf-8?B?dnJ1TEc2d1hCcnVpdm1rbi8wTk9ic3FlNUppNFBzcWlTV1R0TVJ1TnJBVE9T?=
 =?utf-8?B?OVZVOUw1bXFMUUhJMmtTclJ1bnJBTHMwYW9NbmhoQjRWMDFIV3I3dVFWaXg5?=
 =?utf-8?B?dVZNUnJXbzZJMFdBekRsNFFUc1U1bkNCanJCYW10V3NobGVya2p5VUlQem93?=
 =?utf-8?B?K1BHWHJjczY1OGtGVnFHQm9FaU8zTUxVcmhEZUVGVXViekNBdm5ZMlRFaFIw?=
 =?utf-8?B?a0ExbXpPTlE5Q0IyaTFXZG9kdW5VdklCZGE5czlPT3ZhQkFxTmJqN21sMTZK?=
 =?utf-8?B?dFMvMHRUNk9aVVoyaHluTlRtY2hMeG9vMjFMVW9ZSC9kUEdFaE9GbDVzSERZ?=
 =?utf-8?B?WDlBT2dZYVE5dUd4Vnp6bWRwdnc4aGtTVVJwVnZRQS9ISUxLTEJJVXFwT3JE?=
 =?utf-8?B?cHJialk5am5sQWRQdy9nR0hqbTNQKzIzd0ZYdFBTbmM0TWtGWXZkbkFJK3Q0?=
 =?utf-8?B?N2VOU3p1bEVGL3BCczhlZzNPWnhyS0d4U00zYndndWZ1R3BvaG1aQjNKWjky?=
 =?utf-8?B?U1NCOVJEcnV2alVQQWxMTjJ4RWMwR3duTWhhYVJkdXMxeHkzcTY5VHBZTmdQ?=
 =?utf-8?B?K3gxdUhsdEN6Q2F6UzIzSGx0NnFmMy9qTUhoKzhMUzF5c0xWTFkyWmxkUzJr?=
 =?utf-8?B?aFcreEI2S1NCWFNWemNjeDA1ZWgxQUQ0NitnOHUwYlVVaVVOajYrZ25vOW00?=
 =?utf-8?B?Q1pSS0o0TXREd1ZLU3lVR0QyQXcrZ0pHMHZESDU4eWZsUGNkYmdPRWVTcVJL?=
 =?utf-8?B?MTNTMmYzbjNaOEZjZjhSVWVsTk1yelROQmVRSEloT3ZJRzRVbWVxUmw5cUJV?=
 =?utf-8?B?NWlWZ1pTSmtNWC9rNDU2dm5YSTVTaUhHeXdVOGRPSllmd3c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(35042699022)(36860700013)(14060799003)(8096899003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 11:05:31.0501
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ab7af407-e3ba-453e-7a19-08dd0240c1e7
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF0001E9C6.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8996

--_000_FE6C9D2CEC6D4A52B321C2B5F9F59D7Darmcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQXlhbiwNCg0KT24gNyBOb3YgMjAyNCwgYXQgMTU6MDMsIEF5YW4gS3VtYXIgSGFsZGVyIDxh
eWFuLmt1bWFyLmhhbGRlckBhbWQuY29tPiB3cm90ZToNCg0KRGVmaW5lIGVuYWJsZV9ib290X2Nw
dV9tbSgpIGZvciB0aGUgQXJtdjgtUiBBQXJjaDY0Lg0KDQpMaWtlIGJvb3QtdGltZSBwYWdlIHRh
YmxlIGluIE1NVSBzeXN0ZW0sIHdlIG5lZWQgYSBib290LXRpbWUgTVBVIHByb3RlY3Rpb24NCnJl
Z2lvbiBjb25maWd1cmF0aW9uIGluIE1QVSBzeXN0ZW0gc28gWGVuIGNhbiBmZXRjaCBjb2RlIGFu
ZCBkYXRhIGZyb20gbm9ybWFsDQptZW1vcnkuDQoNClRvIGRvIHRoaXMsIFhlbiBtYXBzIHRoZSBm
b2xsb3dpbmcgc2VjdGlvbnMgb2YgdGhlIGJpbmFyeSBhcyBzZXBhcmF0ZSByZWdpb25zDQood2l0
aCBwZXJtaXNzaW9ucykgOi0NCjEuIFRleHQgKFJlYWQgb25seSBhdCBFTDIsIGV4ZWN1dGlvbiBp
cyBwZXJtaXR0ZWQpDQoyLiBSTyBkYXRhIChSZWFkIG9ubHkgYXQgRUwyKQ0KMy4gUk8gYWZ0ZXIg
aW5pdCBkYXRhIGFuZCBSVyBkYXRhIChSZWFkL1dyaXRlIGF0IEVMMikNCjQuIEluaXQgVGV4dCAo
UmVhZCBvbmx5IGF0IEVMMiwgZXhlY3V0aW9uIGlzIHBlcm1pdHRlZCkNCjUuIEluaXQgZGF0YSBh
bmQgQlNTIChSZWFkL1dyaXRlIGF0IEVMMikNCg0KQmVmb3JlIGNyZWF0aW5nIGEgcmVnaW9uLCB3
ZSBjaGVjayBpZiB0aGUgY291bnQgZXhjZWVkcyB0aGUgbnVtYmVyIGRlZmluZWQgaW4NCk1QVUlS
X0VMMi4gSWYgc28sIHRoZW4gdGhlIGJvb3QgZmFpbHMuDQoNCkFsc28gd2UgY2hlY2sgaWYgdGhl
IHJlZ2lvbiBpcyBlbXB0eSBvciBub3QuIElPVywgaWYgdGhlIHN0YXJ0IGFuZCBlbmQgYWRkcmVz
cw0KYXJlIHNhbWUsIHdlIHNraXAgbWFwcGluZyB0aGUgcmVnaW9uLg0KDQpUbyBtYXAgYSByZWdp
b24sIFhlbiB1c2VzIHRoZSBQUkJBUl9FTDIsIFBSTEFSX0VMMiBhbmQgUFJTRUxSX0VMMiByZWdp
c3RlcnMuDQpPbmUgY2FuIHJlZmVyIHRvIEFSTSBEREkgMDYwMEIuYSBJRDA2MjkyMiBHMS4zICAi
R2VuZXJhbCBTeXN0ZW0gQ29udHJvbA0KUmVnaXN0ZXJzIiwgdG8gZ2V0IHRoZSBkZWZpbml0aW9u
cyBvZiB0aGVzZSByZWdpc3RlcnMuIEFsc28sIHJlZmVyIHRvIEcxLjINCiJBY2Nlc3NpbmcgTVBV
IG1lbW9yeSByZWdpb24gcmVnaXN0ZXJzIiwgdGhlIGZvbGxvd2luZw0KDQpgYGANClRoZSBNUFUg
cHJvdmlkZXMgdHdvIHJlZ2lzdGVyIGludGVyZmFjZXMgdG8gcHJvZ3JhbSB0aGUgTVBVIHJlZ2lv
bnM6DQotIEFjY2VzcyB0byBhbnkgb2YgdGhlIE1QVSByZWdpb25zIHZpYSBQUlNFTFJfRUx4LCBQ
UkJBUjxuPl9FTHgsIGFuZA0KUFJMQVI8bj5fRUx4Lg0KYGBgDQoNCldlIHVzZSB0aGUgYWJvdmUg
bWVjaGFuaXNtIHRvIGNyZWF0ZSB0aGUgTVBVIG1lbW9yeSByZWdpb25zLg0KDQpBbHNvLCB0aGUg
Y29tcGlsZXIgbmVlZHMgdGhlIGZsYWcgKCItbWFyY2g9YXJtdjgtciIpIGluIG9yZGVyIHRvIGJ1
aWxkIFhlbiBmb3INCkFybXY4LVIgQUFyY2g2NCBNUFUgYmFzZWQgc3lzdGVtcy4gVGhlcmUgd2ls
bCBiZSBubyBuZWVkIGZvciB1cyB0byBleHBsaWNpdGx5DQpkZWZpbmUgTVBVIHNwZWNpZmljIHJl
Z2lzdGVycy4NCg0KU2lnbmVkLW9mZi1ieTogQXlhbiBLdW1hciBIYWxkZXIgPGF5YW4ua3VtYXIu
aGFsZGVyQGFtZC5jb20+DQotLS0NCg0KQ2hhbmdlcyBsb29rcyBvayB0byBtZSBhbmQgSeKAmXZl
IGFsc28gYnVpbHQgYW5kIHRlc3RlZCwgbWF5YmUgb25lIE5JVCBiZWxvdw0KDQoNCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbW0uaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9tbS5oDQppbmRleCA1YWJkNGIwZDFjLi41OWI3NzRiN2I4IDEwMDY0NA0KLS0tIGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tLmgNCisrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9tbS5oDQpAQCAtMTYsNyArMTYsNyBAQA0KDQojaWYgZGVmaW5lZChDT05GSUdfTU1VKQ0KIyBp
bmNsdWRlIDxhc20vbW11L21tLmg+DQotI2Vsc2UNCisjZWxpZiAhZGVmaW5lZChDT05GSUdfTVBV
KQ0KIyBlcnJvciAiVW5rbm93biBtZW1vcnkgbWFuYWdlbWVudCBsYXlvdXQiDQojZW5kaWYNCg0K
DQpe4oCUIG1heWJlIHRoaXMgY2hhbmdlIGlzIG5vdCBuZWVkZWQgYXQgdGhpcyBzdGFnZSwgaXQg
d2lsbCBiZSBzb29uIHRob3VnaA0KDQpBbnl3YXk6DQoNClJldmlld2VkLWJ5OiBMdWNhIEZhbmNl
bGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb208bWFpbHRvOmZhbmNlbGx1QGFybS5jb20+Pg0KDQpD
aGVlcnMsDQpMdWNhDQoNCg==

--_000_FE6C9D2CEC6D4A52B321C2B5F9F59D7Darmcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <CD215413DDF2E2439DB67496424E9DF4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJvdmVyZmxv
dy13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IGxpbmUtYnJlYWs6
IGFmdGVyLXdoaXRlLXNwYWNlOyI+DQpIaSBBeWFuLDxiciBpZD0ibGluZUJyZWFrQXRCZWdpbm5p
bmdPZk1lc3NhZ2UiPg0KPGRpdj48YnI+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4NCjxkaXY+
T24gNyBOb3YgMjAyNCwgYXQgMTU6MDMsIEF5YW4gS3VtYXIgSGFsZGVyICZsdDtheWFuLmt1bWFy
LmhhbGRlckBhbWQuY29tJmd0OyB3cm90ZTo8L2Rpdj4NCjxiciBjbGFzcz0iQXBwbGUtaW50ZXJj
aGFuZ2UtbmV3bGluZSI+DQo8ZGl2Pg0KPGRpdj5EZWZpbmUgZW5hYmxlX2Jvb3RfY3B1X21tKCkg
Zm9yIHRoZSBBcm12OC1SIEFBcmNoNjQuPGJyPg0KPGJyPg0KTGlrZSBib290LXRpbWUgcGFnZSB0
YWJsZSBpbiBNTVUgc3lzdGVtLCB3ZSBuZWVkIGEgYm9vdC10aW1lIE1QVSBwcm90ZWN0aW9uPGJy
Pg0KcmVnaW9uIGNvbmZpZ3VyYXRpb24gaW4gTVBVIHN5c3RlbSBzbyBYZW4gY2FuIGZldGNoIGNv
ZGUgYW5kIGRhdGEgZnJvbSBub3JtYWw8YnI+DQptZW1vcnkuPGJyPg0KPGJyPg0KVG8gZG8gdGhp
cywgWGVuIG1hcHMgdGhlIGZvbGxvd2luZyBzZWN0aW9ucyBvZiB0aGUgYmluYXJ5IGFzIHNlcGFy
YXRlIHJlZ2lvbnM8YnI+DQood2l0aCBwZXJtaXNzaW9ucykgOi08YnI+DQoxLiBUZXh0IChSZWFk
IG9ubHkgYXQgRUwyLCBleGVjdXRpb24gaXMgcGVybWl0dGVkKTxicj4NCjIuIFJPIGRhdGEgKFJl
YWQgb25seSBhdCBFTDIpPGJyPg0KMy4gUk8gYWZ0ZXIgaW5pdCBkYXRhIGFuZCBSVyBkYXRhIChS
ZWFkL1dyaXRlIGF0IEVMMik8YnI+DQo0LiBJbml0IFRleHQgKFJlYWQgb25seSBhdCBFTDIsIGV4
ZWN1dGlvbiBpcyBwZXJtaXR0ZWQpPGJyPg0KNS4gSW5pdCBkYXRhIGFuZCBCU1MgKFJlYWQvV3Jp
dGUgYXQgRUwyKTxicj4NCjxicj4NCkJlZm9yZSBjcmVhdGluZyBhIHJlZ2lvbiwgd2UgY2hlY2sg
aWYgdGhlIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBkZWZpbmVkIGluPGJyPg0KTVBVSVJfRUwy
LiBJZiBzbywgdGhlbiB0aGUgYm9vdCBmYWlscy48YnI+DQo8YnI+DQpBbHNvIHdlIGNoZWNrIGlm
IHRoZSByZWdpb24gaXMgZW1wdHkgb3Igbm90LiBJT1csIGlmIHRoZSBzdGFydCBhbmQgZW5kIGFk
ZHJlc3M8YnI+DQphcmUgc2FtZSwgd2Ugc2tpcCBtYXBwaW5nIHRoZSByZWdpb24uPGJyPg0KPGJy
Pg0KVG8gbWFwIGEgcmVnaW9uLCBYZW4gdXNlcyB0aGUgUFJCQVJfRUwyLCBQUkxBUl9FTDIgYW5k
IFBSU0VMUl9FTDIgcmVnaXN0ZXJzLjxicj4NCk9uZSBjYW4gcmVmZXIgdG8gQVJNIERESSAwNjAw
Qi5hIElEMDYyOTIyIEcxLjMgJm5ic3A7JnF1b3Q7R2VuZXJhbCBTeXN0ZW0gQ29udHJvbDxicj4N
ClJlZ2lzdGVycyZxdW90OywgdG8gZ2V0IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSByZWdpc3Rl
cnMuIEFsc28sIHJlZmVyIHRvIEcxLjI8YnI+DQomcXVvdDtBY2Nlc3NpbmcgTVBVIG1lbW9yeSBy
ZWdpb24gcmVnaXN0ZXJzJnF1b3Q7LCB0aGUgZm9sbG93aW5nPGJyPg0KPGJyPg0KYGBgPGJyPg0K
VGhlIE1QVSBwcm92aWRlcyB0d28gcmVnaXN0ZXIgaW50ZXJmYWNlcyB0byBwcm9ncmFtIHRoZSBN
UFUgcmVnaW9uczo8YnI+DQotIEFjY2VzcyB0byBhbnkgb2YgdGhlIE1QVSByZWdpb25zIHZpYSBQ
UlNFTFJfRUx4LCBQUkJBUiZsdDtuJmd0O19FTHgsIGFuZDxicj4NClBSTEFSJmx0O24mZ3Q7X0VM
eC48YnI+DQpgYGA8YnI+DQo8YnI+DQpXZSB1c2UgdGhlIGFib3ZlIG1lY2hhbmlzbSB0byBjcmVh
dGUgdGhlIE1QVSBtZW1vcnkgcmVnaW9ucy48YnI+DQo8YnI+DQpBbHNvLCB0aGUgY29tcGlsZXIg
bmVlZHMgdGhlIGZsYWcgKCZxdW90Oy1tYXJjaD1hcm12OC1yJnF1b3Q7KSBpbiBvcmRlciB0byBi
dWlsZCBYZW4gZm9yPGJyPg0KQXJtdjgtUiBBQXJjaDY0IE1QVSBiYXNlZCBzeXN0ZW1zLiBUaGVy
ZSB3aWxsIGJlIG5vIG5lZWQgZm9yIHVzIHRvIGV4cGxpY2l0bHk8YnI+DQpkZWZpbmUgTVBVIHNw
ZWNpZmljIHJlZ2lzdGVycy48YnI+DQo8YnI+DQpTaWduZWQtb2ZmLWJ5OiBBeWFuIEt1bWFyIEhh
bGRlciAmbHQ7YXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSZndDs8YnI+DQotLS08YnI+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+Q2hhbmdl
cyBsb29rcyBvayB0byBtZSBhbmQgSeKAmXZlIGFsc28gYnVpbHQgYW5kIHRlc3RlZCwgbWF5YmUg
b25lIE5JVCBiZWxvdzwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9
ImNpdGUiPg0KPGRpdj4NCjxkaXY+PGJyPg0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9tbS5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tLmg8YnI+DQppbmRleCA1
YWJkNGIwZDFjLi41OWI3NzRiN2I4IDEwMDY0NDxicj4NCi0tLSBhL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9tbS5oPGJyPg0KKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tLmg8YnI+
DQpAQCAtMTYsNyArMTYsNyBAQDxicj4NCjxicj4NCiNpZiBkZWZpbmVkKENPTkZJR19NTVUpPGJy
Pg0KIyBpbmNsdWRlICZsdDthc20vbW11L21tLmgmZ3Q7PGJyPg0KLSNlbHNlPGJyPg0KKyNlbGlm
ICFkZWZpbmVkKENPTkZJR19NUFUpPGJyPg0KIyBlcnJvciAmcXVvdDtVbmtub3duIG1lbW9yeSBt
YW5hZ2VtZW50IGxheW91dCZxdW90Ozxicj4NCiNlbmRpZjxicj4NCjxicj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPC9kaXY+DQpe4oCUIG1heWJl
IHRoaXMgY2hhbmdlIGlzIG5vdCBuZWVkZWQgYXQgdGhpcyBzdGFnZSwgaXQgd2lsbCBiZSBzb29u
IHRob3VnaA0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+QW55d2F5OjwvZGl2Pg0KPGRpdj48YnI+
DQo8L2Rpdj4NCjxkaXY+UmV2aWV3ZWQtYnk6IEx1Y2EgRmFuY2VsbHUgJmx0O2x1Y2EuPGEgaHJl
Zj0ibWFpbHRvOmZhbmNlbGx1QGFybS5jb20iPmZhbmNlbGx1QGFybS5jb208L2E+Jmd0OzwvZGl2
Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+Q2hlZXJzLDwvZGl2Pg0KPGRpdj5MdWNhPC9kaXY+
DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_FE6C9D2CEC6D4A52B321C2B5F9F59D7Darmcom_--


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:08:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:08:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833545.1248705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASHa-0001Yh-W6; Mon, 11 Nov 2024 11:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833545.1248705; Mon, 11 Nov 2024 11:08: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 1tASHa-0001Ya-TJ; Mon, 11 Nov 2024 11:08:34 +0000
Received: by outflank-mailman (input) for mailman id 833545;
 Mon, 11 Nov 2024 11:08: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=kNBq=SG=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tASHZ-0001YU-TM
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:08:34 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on20614.outbound.protection.outlook.com
 [2a01:111:f403:260e::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48c58cac-a01d-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:08:31 +0100 (CET)
Received: from DUZP191CA0043.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::26)
 by DB9PR08MB8411.eurprd08.prod.outlook.com (2603:10a6:10:3d5::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 11:08:26 +0000
Received: from DB5PEPF00014B8C.eurprd02.prod.outlook.com
 (2603:10a6:10:4f8:cafe::60) by DUZP191CA0043.outlook.office365.com
 (2603:10a6:10:4f8::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Mon, 11 Nov 2024 11:08:26 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) 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.8158.14
 via Frontend Transport; Mon, 11 Nov 2024 11:08:25 +0000
Received: ("Tessian outbound 6d1cdc6e2d10:v490");
 Mon, 11 Nov 2024 11:08:25 +0000
Received: from L182c17bf9037.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 161A6DDB-81C3-46EC-AAE4-B9C6A7A986D8.1; 
 Mon, 11 Nov 2024 11:08:14 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L182c17bf9037.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 11 Nov 2024 11:08:14 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by AM9PR08MB6145.eurprd08.prod.outlook.com (2603:10a6:20b:2dd::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 11:08:12 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%4]) with mapi id 15.20.8137.027; Mon, 11 Nov 2024
 11:08: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: 48c58cac-a01d-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwZTo6NjE0IiwiaGVsbyI6IkVVUjAzLUFNNy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ4YzU4Y2FjLWEwMWQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzIzMzExLjAyNzAzNCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=MNzWoeocQawAf9XSx6zyylD1bdQtmCglk3ya8mQoFrFIEEPHw5Fn/cwGQHTIyfsJbFcZlfTifwZ9VrZJD1R+4dw9AbstUsnOE4cYhE1/fwybwtnuiVQx4tSDbyr4ozFoIMj1aGc8Xcp+I7kcmIhMEyqION3FedtLabYcguvSYqTv79/KAv2iMFkxgYansk6aMrDLzdqtbQCQ59T4zgiI9QdK8AtonobfzHU1FcMNYh9NxMQAvDiwaiftPTAkJZeRMj9zCp7ozsuAoiuzbNmXOQQRJBSTomcVQ3gsTKkv31NISvNpGrXZWErOQcXim/leNz1sCNnqZJMi8X3axT27pA==
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=QJu23F4CbP+5sLQcykVHR5QsV+ro2NkEXqOFbU+LagM=;
 b=ELKtsI1Z+jTgMN88f0ojna31Eo9UC+sII8uhswRge4alPWBs9nl6rz4k1V4bMKj03MvQTnUg0dXLrQZH+AZ4MPCR3JqdspcuSpIuCIG3VXZvZ3KKWnk4mVhqyTw/DSSuIPhNLQlRnkNn0Rwnhda/SW2Ye8BPvttXUyU244Dgqh4vPpYDzht52SpLEyV1FVfmBezWaLm0yO9mzw9xwRRi1C6+nYcssUM17CvtVRNaCpDIGX4FXOKYrqzFYZXUblcIU6bvabsWZJpWiVU8hK4l1lQhS68sohM/zeexOufN/7b2D9jQ6wobxJ/7XX3AjUoQxdAakeRHn1XRZ5rMMmvaRg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=QJu23F4CbP+5sLQcykVHR5QsV+ro2NkEXqOFbU+LagM=;
 b=CNnv14OG1jNJs9oZDfmiwqm3xrJU1NAyWTLWflN4CKDHZfjKAzZHHIx79w/bNjNVrB2Ekz+oeWFVlRu3zv1m5fOMadYXhgiFpIvXJ84MU+3H5mDgbBFn0pB2U/BSeUMs6ZVbqVxueGwRMXc45Q5/K+h7wmTQeCz4bwu9w3ZeQec=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: f5008daba368e848
X-TessianGatewayMetadata: iPBNn9lVF6dTHrinc3vDEK2LNMTagSZhAJVUh/BKFJ8pdzcf6Qfat8cA0FDIHhlKHOxOqf371hu0hoVSDPo8U8m/d3I9tazHzWoO2sRECmND6O4Cngmf8WNAmPHGw1glXS/GD8U2wgOFj8vy0LyTMU9YCn4xRFdagUG0sCu7Tl8=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A9yXSicMABe+SR1P0sZ9ClZfZOp+wcOCHDH1MzpEv9cqeecuLcGl1qJfib57nZoek/XpmpNqnlxIOpmmR6CYt3CJy97wzjRHkHVZtU2VhqR6lq6+5pDDI4vNxa2e4VC96Cn6hDp3dAK6aPxDyOz4G2oFR63RqjwOGIySkmGWfvWevljqFt3GocNuJYi1DZCqD7snwKiswHbfjH47hkAPWrt7kt+0dlvBFg9/E0/XJlIKEIX8cP+cKyATnJo5/n7AJjJulcXX8qp5yKVYzeMFq5KyRdP2ayPMRXhi4lGuODwh+PPrfOdBrCxPtal2ClReAqyW0ubmD8DXmuYQu4by8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QJu23F4CbP+5sLQcykVHR5QsV+ro2NkEXqOFbU+LagM=;
 b=E2t7JnfoLcyxQyIDiA0l+j52xwvo3ydQBHAvnMuhYDuFTo1orPBvFQYSb5tEbWGIOlmMlARNtIxEcdK2oe12hxdcIU7mF0TRYmBF8sjNLS8vFQi6VFGPLHXvySkz/hz+EONSaT9mWpio++4sE9jnp7GYBL6U94POCSe/90kX5A/k/0DbaFDPaXT/um+9QENxwTciZVU3VvtcoxjVJBLXPG49+xJXp8rA6UNP5w7+8aN2zyRykPMPZ+5srhq/wnvXv95kzP0ypkcTdHtzdfsaZqdVwh2lS7HpkyjnM3TxHnfDpeSoExN4IGQUfGoIa2mibn8/tPlNuJcBi205N5cRCA==
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=QJu23F4CbP+5sLQcykVHR5QsV+ro2NkEXqOFbU+LagM=;
 b=CNnv14OG1jNJs9oZDfmiwqm3xrJU1NAyWTLWflN4CKDHZfjKAzZHHIx79w/bNjNVrB2Ekz+oeWFVlRu3zv1m5fOMadYXhgiFpIvXJ84MU+3H5mDgbBFn0pB2U/BSeUMs6ZVbqVxueGwRMXc45Q5/K+h7wmTQeCz4bwu9w3ZeQec=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v1 1/2] xen/mpu: Map early uart when earlyprintk on
Thread-Topic: [PATCH v1 1/2] xen/mpu: Map early uart when earlyprintk on
Thread-Index: AQHbMhjv52dbbNhpnEiehVgzpuNQ9rKx78AA
Date: Mon, 11 Nov 2024 11:08:12 +0000
Message-ID: <60DF5024-0726-4B0F-939D-B3724C21CEAC@arm.com>
References: <20241108200024.857766-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20241108200024.857766-1-ayan.kumar.halder@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|AM9PR08MB6145:EE_|DB5PEPF00014B8C:EE_|DB9PR08MB8411:EE_
X-MS-Office365-Filtering-Correlation-Id: 9a7b4c8e-fd79-40a7-1244-08dd02412a09
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?aGw0aGlvcGV1aUJTUTJIUWNYTFBpTGVLSUZxQ1lONm9ZanJsZDRucEczRDNC?=
 =?utf-8?B?SGNvRjhlaUkxZDk2N1N0QStDVkFWb09xZlhlMXR2cFJ6NVppV3lUZzlEUEJI?=
 =?utf-8?B?Tk92VlBMdExSOEQ2R01VNDBzT0VnK3M0UDRsbkdmZnY4R1ArWTNMdkMxbnV6?=
 =?utf-8?B?bmh5dXBETHhsVXNNNEFvd3NwRFdhK244TGFJUFp0bnk0cEl0aUFzWFZvbVAx?=
 =?utf-8?B?MTZLVkZPVi9idDV5RGJzMm9jaFR2L2FjUndoeWdQNnNjWmxzMG02TTlqR1FJ?=
 =?utf-8?B?RTRDK24vME9UUzR2c1BCNXdZMGRxNG0vcWp4WG1UbHNNN2FhVGNxeGh1eC9x?=
 =?utf-8?B?MmpUTFpRU1o3Y2ZxN2RLZTRpcCtsa1JaS09HcGorcHBYSHBGem4zNTR5ZENC?=
 =?utf-8?B?SEtMd3hUSHRHOWtFNjdUVFhNRWZqK25DM29YV29BM1ZtRGtGODJTTmZVdkpk?=
 =?utf-8?B?YTcwSm1BR0x2dk9xclJYY1FrYmp0dndQRXYyZW5vSVUwUVAzb0RnTGtDV0No?=
 =?utf-8?B?UUdlaEJCaUpnblUyMC9QdlZLeWVTUGRienVLSjRDbGx6aEUvYmkwbDd4UXJT?=
 =?utf-8?B?VGluYSs0bjBoRFpmZzY5WUtISThaSVdobTZtdEd2RWppMm8rdmlmb1JOWVVX?=
 =?utf-8?B?aWkydlgvYmdPQUZHVUpzdzNYbENPM0hkd1ovY0lBb0FOcnRZNVFmUWh3Y292?=
 =?utf-8?B?NXRydUZGdmxKUE1SYm01b0pneTdzbC9BZVpJMWQxY1VsM29nZ3hwUTJGYWtj?=
 =?utf-8?B?Q2xMZi9sRERrVlZzSkcyd0dnNjRFdzQ1bWkxSHhueWlpbXhZeEt6Zi9YY2N1?=
 =?utf-8?B?cWZXUFVMWkUvUUliWWpuSkhEd3M2ZG8wVnRlYWFJc2w1Sy9VcUczSnU5QkRN?=
 =?utf-8?B?NmthOXFsc1E1ZjNaMWFCb1pWRURIbkRwWWRXQ2lzR0FMT2xEeDYrcDJrRnhH?=
 =?utf-8?B?eDYvbStQc0hmWlBiS0krRjRQN3g4TmRpeFByWTdtMGZCcEcvTGNkNmoveFdo?=
 =?utf-8?B?Rm1EV25CQWJvWEpHNWY1azc3eG90ZEZUM2h0S1g1MTZ2WlRSZzh0Vlo2dXFx?=
 =?utf-8?B?a25sZFdaWjM5cWJMbGhrVURlc2ptK2VYanFsdmpKanJWeHlmdTh5SHJ1WjR5?=
 =?utf-8?B?UHNQMDVhbmdodlVXd3B6U0VmbWVsMXZmSjhaNFNkTVJWMmJWU2ZCa1M1aUdK?=
 =?utf-8?B?T0UxU3N4Yi9XK2kza3pKdjhNN2dqVHpyS3NGNnhzeFVVcHdzdW1zZ2tuMEJu?=
 =?utf-8?B?MkJBbFdYWlpVNmYzdkd6L1Azc093TGlnbDBQWWdMRWNtWDdXYmorVU1Jd2NF?=
 =?utf-8?B?RE9wWGNpdk5qRmQxbzFHdEtiT0hQZ1dtbEdoUi9NcG5DYUdhd3kvSklxQ21M?=
 =?utf-8?B?ODlwWGFkTnBZTU5JRGozeU53bTh3V3BjR01yRW1HZ2FWaFYyOVZXenhWVnB6?=
 =?utf-8?B?b3dwTkFoTDFxMU1sUzJvTXlnMVJTMHdzZmt2b3p0ZnoyOGI1Y1dDMmh3SXRv?=
 =?utf-8?B?cEluTkxLa3o4dHYyZ2ZNM2JPRmpjU2ZHTng2Vmc3MlRuUnM3dUZ0V1VqYVNC?=
 =?utf-8?B?V1dwcTVCRjJJVTQzY09oYUkvbGE4VG4zSWorZUhGRWJaRisvTGhYZHdueWJz?=
 =?utf-8?B?ejdjaGZhZTZBZ3JCUDNvVnkySTFabkx5NmRsTzFrYVFaRjE5UXVkMnRUVk5i?=
 =?utf-8?B?d3A2akdLbEE2Z21JVzVPQWlDd1ZQU3o5N3lvbXY1Yitia0N0RjRmY2V4clBG?=
 =?utf-8?B?VW16Zmw4cXltRWFWWE1lQnc5NFBKYjBvUFJJSld1NUowUTl6SkwyVlZPZ0py?=
 =?utf-8?Q?UqNi2jnKkgOgEj1Th/CLuRu4WcIucxh6pnRiU=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <98AAF2F92F546349BC347AD9472A0C22@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6145
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4a94b3ca-0aee-4034-cc7c-08dd0241224a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|35042699022|36860700013|376014|82310400026|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bnN5YXljTXpKSkZkVUFlaFM2T1hGTElra3VNRlJ5c1pTWHAxUUNqMVcrYUV6?=
 =?utf-8?B?WElpeUIzYmttSU1IcTdCbEFWbW9vMlBZY3B1Ulg5S0x2RUgwekpFWFI2QlBX?=
 =?utf-8?B?cWo5OFovMkErZVVNMWVjOFduVGZUbkh4OFN6RkxxZTJBL25zUmRjY3EwWkFm?=
 =?utf-8?B?dklqTXViRWlmSndFNXJNcTg4NXU2VTlXS0NQY00rQ3NwR2FFaUgzVDVJc3dx?=
 =?utf-8?B?Rkp6allUZ0tHaXNBZnpBVmRudTdrcjkzZDkvVHdPREw3dFNWdDhLQzFnRUdn?=
 =?utf-8?B?bXNzYjQwNllHTFEyNWtuZHh6UVY0K0xnK1VVdHhqN0xVR0JPRFVhM2IzUDRF?=
 =?utf-8?B?QWZiaUNtZCtFQUpGb0krNCtSQnJBRFJmSDJ3M3c3UzRjSi9EcHJWNTVmTGFz?=
 =?utf-8?B?SGdhbm9sS21ZdXFPRUttSjN6NEQ1N1BTZFZuK011dzBsN3ZUdURuU2xTbVA3?=
 =?utf-8?B?R0p3U3JFY3JuUDh5K0JJN2hNNFhIZnZsYmRwNkVpK3FaTG5IWEwva21TVjEy?=
 =?utf-8?B?ZEJpNUs4Sk4yYUp1REEveGtIZHhCdW5BOHppY1Q0Mjljb1cvalBNYmF4bGpi?=
 =?utf-8?B?VDNJcUVRSWJwS3JqNDdkc1VqMlA3elZpclBveEJoTjR6UkZWTnN2VXhtRUth?=
 =?utf-8?B?enVEdytLV0paQ3MxaHdiYVd2MzVRN3ljUlpTRWd3amVpWE1tYlgwSVYzU3JP?=
 =?utf-8?B?TlJnWmJLUVJtUjlvR1ZsNjJRbVNCV0JkdmwzMEFGdHhLV21aMSt3d28rMDZD?=
 =?utf-8?B?SldyWEIxVGNEdGswYkVpR2JFUDl0TndKRmtTNmpqeGZmYlQ5Y3h1cjM5SktE?=
 =?utf-8?B?QUdBU0psdjlUWURDNXJyR2g5SDlrMWhtR0ZReFBOTmRxVGl6YUY0RVR5b2lM?=
 =?utf-8?B?bHJQazd2ajB6VEZySWN1WWlReEVkS0xYVm1lUklJUEtjcmJZKzAyU25rN3ND?=
 =?utf-8?B?QkR5eG1MaHk1dG14TVpCbjJuUXNBVEp3WU9uVk9kQ1dST3JSK3BWZndVYnMr?=
 =?utf-8?B?clM0d1FaYm9KNng0dFl5MTFwYm9Zay8xOGlmcElYUEhScWlHSnBheE1GT0dn?=
 =?utf-8?B?QWJWL3ExYU9zVkMzdlZwbkZkT2RxeE5SYmMxV2sxMThRbTdjbWgvcy81Lys5?=
 =?utf-8?B?TjV6Q3NWbTh6Z1VuNXoxaDJmQjRaVyswUnlQUHJJRUIyVzNrREpBVXFWSnZO?=
 =?utf-8?B?YWR2SGZOSkVSL2QvdE9HOVgvWG5JU2IvUUR4Rmk4MlY0WEdVdHpuV0Q3SVZR?=
 =?utf-8?B?bWt1cVI4d2Vsb0JpdTVFdVpFYjNQamFTL05SdkNtZXExeWV0RTB5N2RuNUth?=
 =?utf-8?B?SFRCYUxkMk92bGpnR3JGUkRsam5ZS3NTV2l5UnRNQzNCQjN2YUwwNERXc3VB?=
 =?utf-8?B?SWI0WUNiWEhaS0RFMVVlQ0pObU5Fa21jeVVnOEFSNUFMblY0VFFKaTFlOHEy?=
 =?utf-8?B?dkovemZOZGtUdDMxOGhobFlaVExnOXpFQXcxSSt4TU54eStYZjVXVzR2UVpW?=
 =?utf-8?B?VmpRdjF0RUxaUGsxeHZpd2Q4d05CU2FWbFBxRjFXR290NTBRamNhQi9CRlVn?=
 =?utf-8?B?M0ozUm16TnVEdWkrVlZSbHp3Sm1UbXgxc3NscUlnYVJOazdpYlZqbkxoMzMz?=
 =?utf-8?B?cVc1eXdVcjF4bEk1Q3h2ci80TFlNYkh3eks1S29FaWZyZXk2VlFZZ3hrSWhE?=
 =?utf-8?B?aUNEY01iZlBzcUI0cEFnZUlzTUVwUmFiZnI3M2djc1RVdXBrRzcxZFo1YlYr?=
 =?utf-8?B?QmxMWEgxUU5qVkhYTklwRmQ5dTJuWmhhaG5YY0NQN2Z4WUtEZzE4TVNwakp0?=
 =?utf-8?B?KzZWeWlJMVU5S1FrK1ZFUzdVSmN0RUh6c1k1czJqYzk3VVJQcEhoQ0VqTmtR?=
 =?utf-8?B?eEZ0ZzhOMElwUVVNZzJGUTZQVVlHMWxjWTZNeGVZeXZVUlE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(1800799024)(35042699022)(36860700013)(376014)(82310400026)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 11:08:25.6595
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a7b4c8e-fd79-40a7-1244-08dd02412a09
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.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: DB9PR08MB8411

DQoNCj4gT24gOCBOb3YgMjAyNCwgYXQgMjA6MDAsIEF5YW4gS3VtYXIgSGFsZGVyIDxheWFuLmt1
bWFyLmhhbGRlckBhbWQuY29tPiB3cm90ZToNCj4gDQo+IENPTkZJR19FQVJMWV9VQVJUX1NJWkUg
aXMgaW50cm9kdWNlZCB0byBsZXQgdXNlciBwcm92aWRlIHBoeXNpY2FsIHNpemUgb2YNCj4gZWFy
bHkgVUFSVC4gVW5saWtlIE1NVSB3aGVyZSB3ZSBtYXAgYSBwYWdlIGluIHRoZSB2aXJ0dWFsIGFk
ZHJlc3Mgc3BhY2UsDQo+IGhlcmUgd2UgbmVlZCB0byBrbm93IHRoZSBleGFjdCBwaHlzaWNhbCBz
aXplIHRvIGJlIG1hcHBlZC4NCj4gQXMgVkEgPT0gUEEgaW4gY2FzZSBvZiBNUFUsIHRoZSBtZW1v
cnkgbGF5b3V0IGZvbGxvd3MgZXhhY3RseSB0aGUgaGFyZHdhcmUNCj4gY29uZmlndXJhdGlvbi4g
QXMgYSBjb25zZXF1ZW5jZSwgd2Ugc2V0ICBFQVJMWV9VQVJUX1ZJUlRVQUxfQUREUkVTUyBhcyBw
aHlzaWNhbA0KPiBhZGRyZXNzLg0KPiANCj4gRnVydGhlciwgd2UgY2hlY2sgd2hldGhlciB1c2Vy
LWRlZmluZWQgRUFSTFlfVUFSVF9TSVpFIGlzIGFsaWduZWQgdG8gUEFHRV9TSVpFDQo+ICg0S0Ip
LiBUaGlzIGlzIHBhcnRseSBiZWNhdXNlIHdlIGludGVuZCB0byBtYXAgYSBtaW5pbXVtIG9mIDEg
cGFnZShpZSA0S0IpIGFuZA0KPiB0aGUgbGltaXQgYWRkcmVzcyBpcyBzZXQgYXMgIkVBUkxZX1VB
UlRfU0laRS0xIi4gVGhlIGxpbWl0IGFkZHJlc3MgbmVlZHMgdG8gZW5kDQo+IHdpdGggMHgzZiAo
YXMgcmVxdWlyZWQgYnkgUFJMQVIgcmVnaXN0ZXIpLg0KPiANCj4gVUFSVCBpcyBtYXBwZWQgYXMg
bkduUkUgcmVnaW9uIChhcyBzcGVjaWZpZWQgYnkgQVRUUj0xMDAgLCByZWZlciBHMS4zLjEzLA0K
PiBNQUlSX0VMMiwgIi0tLTAxMDAgRGV2aWNlIG1lbW9yeSBuR25SRSIpIGFuZCBEb2MgSUQgLSAx
MDI2NzBfMDEwMV8wMl9lbg0KPiBUYWJsZSA0LTMsIEFybXY4IGFyY2hpdGVjdHVyZSBtZW1vcnkg
dHlwZXMgKG5HblJFIC0gQ29ycmVzcG9uZHMgdG8gRGV2aWNlIGluDQo+IEFybXY3IGFyY2hpdGVj
dHVyZSkuIEFsc28sIGl0IGlzIG1hcHBlZCBhcyBvdXRlciBzaGFyZWFibGUsIFJXIGF0IEVMMiBv
bmx5DQo+IGFuZCBleGVjdXRpb24gb2YgaW5zdHJ1Y3Rpb25zIGZyb20gdGhlIHJlZ2lvbiBpcyBu
b3QgcGVybWl0dGVkLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQXlhbiBLdW1hciBIYWxkZXIgPGF5
YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+DQo+IOKAlA0KDQpUaGlzIGxvb2tzIG9rIHRvIG1lDQoN
ClJldmlld2VkLWJ5OiBMdWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQoNCg0K
DQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:09:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:09:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833550.1248716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASI1-0001z6-8c; Mon, 11 Nov 2024 11:09:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833550.1248716; Mon, 11 Nov 2024 11:09: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 1tASI1-0001yz-4W; Mon, 11 Nov 2024 11:09:01 +0000
Received: by outflank-mailman (input) for mailman id 833550;
 Mon, 11 Nov 2024 11:08: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=kNBq=SG=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tASHz-0001ya-FG
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:08:59 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20602.outbound.protection.outlook.com
 [2a01:111:f403:2612::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 57d4b853-a01d-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 12:08:56 +0100 (CET)
Received: from AS9PR06CA0584.eurprd06.prod.outlook.com (2603:10a6:20b:486::9)
 by DU4PR08MB11173.eurprd08.prod.outlook.com (2603:10a6:10:576::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.27; Mon, 11 Nov
 2024 11:08:53 +0000
Received: from AM4PEPF00027A6B.eurprd04.prod.outlook.com
 (2603:10a6:20b:486:cafe::7) by AS9PR06CA0584.outlook.office365.com
 (2603:10a6:20b:486::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Mon, 11 Nov 2024 11:08:53 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A6B.mail.protection.outlook.com (10.167.16.89) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Mon, 11 Nov 2024 11:08:52 +0000
Received: ("Tessian outbound c60e9fd8cfde:v490");
 Mon, 11 Nov 2024 11:08:52 +0000
Received: from L5463eda49388.3
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 0A80FDAE-340E-412E-AAD1-3583A08F881B.1; 
 Mon, 11 Nov 2024 11:08:42 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L5463eda49388.3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 11 Nov 2024 11:08:42 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by AM9PR08MB6145.eurprd08.prod.outlook.com (2603:10a6:20b:2dd::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 11:08:39 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%4]) with mapi id 15.20.8137.027; Mon, 11 Nov 2024
 11:08: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: 57d4b853-a01d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjAyIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU3ZDRiODUzLWEwMWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzIzMzM2LjMxNzUzLCJzZW5kZXIiOiJsdWNhLmZhbmNlbGx1QGFybS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Lrs+vbSY7i47m2lo0Id5B6bN3b9QCgcl0pGhurL4hfpyKEVrvdgoHwvQgC4r+JhXYlX2VJT5dbcwDdyEVaJ7aiY0DCnQvalijVQ8+nzqMD8Rm/P+aTHkPEzjhwsuiI/Aen8/zRWB1wC8AxGL+mWOSuudcF4Ay8aIO1xVK9tw7m/OWV4Xizn1TB0BC42RDpQ4iIOL+Hgxef1BvjjO1VFei+U3DbJE/QcYj8M/EVTpWKoWe0WjWgKYIk7AahVtMKhITLaxxzHEhBf4CTInW7pZTtAcOGHbPecgIHE+V3YsanoI4HXz50eFXCQdSEkWSsXDdoEmF9PFCmP7zGqUAb+u8A==
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=9tvJ3wZCu57GuE7FjFF0+jw/N6saqEDFrCd7BXEPxRQ=;
 b=mrK5QKg2eFk1fYqrYKdRW6GkcRRmG7lye4Qx43ClKkiGfi+mAinSd1zQ5+xNm6EG5OfGPLQWYZQkUnjOoHiO5tNv7eNEVPC2jIa18t9FrEQ597FBs58mSrupwEHb0Ga+aw4bZHOH/wcMUtVoPIKWNjCv1Ah9DZ6YlQxxZ69EmGi+YRGH8XXyyghw/GJbEKYWgCiBt0xvlavCdzdudTTJdVI4irGVaoiCWMXiRIMOhRrOONTbdIdgKT+4bokClHUVNl5zAUrzJ/QCuMqRXmJydGTX+yXHFR1yuTcbWtzncHU+lbytCNsCp5T6zxY6gCwN+l22jEwfA1QlQYzMXE0sBA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=9tvJ3wZCu57GuE7FjFF0+jw/N6saqEDFrCd7BXEPxRQ=;
 b=TdnaPG2EV2AnXLJB1549GeS9JUgNgssNxcaindNFMU5XiOQRqnlhFv5r95Q5oZF9n5AIeyE8VDECW6xGfEBxypip0QoNudJAOMDBR3BgRUbkWKZN9lEFNchfOHXfvB9Pj6/FgfiLZWVgI/V96oKQd87GYF3dfUVR1e/+6zDI8IE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: c25bb76f7e868e7b
X-TessianGatewayMetadata: uGXOuZaS+snHEYL05eupWMaFuhx5DVTS3cj8J3wcw0jBOZ0cniWqQ3lmARmT6mbmB0HejcALqtpCP9ZQuuhHX5MbVFvJR3QyzlkcNEq7oFb/6He/adiTO3MrV5KPOIC2bCYvu1xO4JXfgDuhnfqqi9Izd3WRVpBbkw1iyTdUnhc=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KYvU4LmJPG6SDzhL+yMreOQ4hECAe52M7cjDBW/pxmKvjJuvUsNC4/OaFbPAHat9pzm34XmAnX6PVDEGFSOMWidn98ItGdie3X0uXxbcy5AmzsyzoGoUpgIVQ8BbbxB2nzOUeA5MrTN/95pI7EMamwKnwfHC1hwIe7t0PC18Mbm5qcfk+7QGwVss0LhaCICCXMemkarYMCCiU8b8JZGS3qBKDBnzvPfR77kFFcOcjITUjCLsMs5QZIClDDTNx3bQXnNzdD770+VehJlfdhVJlcpGZBmI1tOn9mJSsVK561+nyQxUbsUwn3KiK2AB2F5VXeDD4yKsuzqA33W7mp1gcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9tvJ3wZCu57GuE7FjFF0+jw/N6saqEDFrCd7BXEPxRQ=;
 b=tz+CqX+MeEt/xwuS0MoeMpwfiInqubvoyCL8vCzCDx4ITZ6qWyDn8L8J/gt/Cn21M7jD3/QFdFxRGUE9PWrQNdl03uHkvtdzvTN7weYATq54gBJVGFqmrDut9mtN62T7t1jPB3BeKIN0LRbh46x0J8Ryi5SCjahgDQHdKJqmZgGqUjmIQfs3uguNb/Or9VR+LvSqA21zfiGwiEdi+vUeNXpsUYG3qxEc218c+p2sm/6I+rb6cGjDLwJLDQuQ2epyiQkGDmvdI9ZTivayOWjniCa5yd1dZ29rR+Y/ZXA4jdKSt7t9TiEex4pmSRYhtzUzpNK6Gbx1XP7hkmlx6zSN9A==
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=9tvJ3wZCu57GuE7FjFF0+jw/N6saqEDFrCd7BXEPxRQ=;
 b=TdnaPG2EV2AnXLJB1549GeS9JUgNgssNxcaindNFMU5XiOQRqnlhFv5r95Q5oZF9n5AIeyE8VDECW6xGfEBxypip0QoNudJAOMDBR3BgRUbkWKZN9lEFNchfOHXfvB9Pj6/FgfiLZWVgI/V96oKQd87GYF3dfUVR1e/+6zDI8IE=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
CC: "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>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Rahul Singh
	<Rahul.Singh@arm.com>
Subject: Re: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Thread-Topic: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Thread-Index: AQHbMhnBgSbSnEnP3kCeg3Nc76pTWrKx794A
Date: Mon, 11 Nov 2024 11:08:39 +0000
Message-ID: <64D316F1-F28A-4469-9E61-16699296615E@arm.com>
References: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20241108195918.856412-1-ayan.kumar.halder@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|AM9PR08MB6145:EE_|AM4PEPF00027A6B:EE_|DU4PR08MB11173:EE_
X-MS-Office365-Filtering-Correlation-Id: 54f95025-2a20-4b55-307b-08dd02413a15
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?QXlhQVJSTGNhb2dMT1IyWkNSSFMzdGNSVFlsbnJTU0ZvRm5Xa2YrcXhhN3Fn?=
 =?utf-8?B?bUJVZC90S2NscTVUQ0kzUXlkM3cva3BqMTRCaFBoNjg1akNaQks0VDZjZVRz?=
 =?utf-8?B?THFEVDlRWnZFcjV1QzJxSWxENHhFOWNiZzFlNVl0R0YyR0ZNR2g1SFB0bWpx?=
 =?utf-8?B?aGlvMGhUNy9hNUV5Z2dSU29xTEhQc2pCamdqZFl3YWd3RGxYcFpBWXBQOU1K?=
 =?utf-8?B?bG8yOVhpaW5MQlEzblRreWg0TjdTblVDZnBCT2pwWEwzSEpWdDlNZm1sRDZ3?=
 =?utf-8?B?NmRUQjEyWnh1RCtGYk1XaVdjeHF1RVdacjBjdGluR3hqTGFmaWhnd3FmVEc4?=
 =?utf-8?B?dkFjT0lxTUQ1Nm95bXFYRFlZWmR5SFo2Rm1zQlRUaG5JanVDWUlWUVg3WFFr?=
 =?utf-8?B?WWY3bUJNbmt6UU5oR1djZU5NTjVZZGhjZVdGNUFDd3hJU0d1bllHdFBLK1gw?=
 =?utf-8?B?QWIyamd2U2NCOHRvL0U3UjE3RU5EWEhlTWsyTkljTDNrMGMxRjR5a2RJRlQy?=
 =?utf-8?B?RWE2TVlFUXJhQWFYOTlSbGVVTGxmZjJpZVpnUVc0OU8vYmVvSUtoSG05Um11?=
 =?utf-8?B?Q1ZhWWdjMDFITHU5bzJmLzNQZFNEZTl4NmtaUURqZ2RrVlZFZUlVWC9jSXNL?=
 =?utf-8?B?U09Yc052Q2llL05kNEVaTmJoYUNSVVIwT29BNi9vc1B3dmR3VUtVSzJwUGx1?=
 =?utf-8?B?Z0NlUE5uaTJCUWxNR21YWUpmZUdyaVZxL2QyV1YybXFWdEZtbkdPNGhUY3Bp?=
 =?utf-8?B?S3VHcVJ5bkU3ZHY1N2lxbmROMWw2aVdVQ3VyMXZBTWVYNVlGM0hSU1IwbkR6?=
 =?utf-8?B?MGFtSitCZytRK21leDdiZ3pGcWFoeEtvSHMwOTNiRHYwajBBS2VlWTFJc2pG?=
 =?utf-8?B?WHRPMnRlNFhWa3lOZ0REQm9iamc4RGRSeEFZUk5OSlhXbE9YVVYvczlPS3Zw?=
 =?utf-8?B?emJTdUJCNFZCaFNybVV6WmFGalZYSDlBU0JzY1Z1dkl6VE02STk1QkRScVZm?=
 =?utf-8?B?V1lxcUVSQmhYWXRCRnM4YjhiUUMxazgySTdYMGJ4VFJyR1MraVMrVHhDSHNm?=
 =?utf-8?B?V3Z5NjlNdzV2SWZwV2hVNmRUMkFTYU9zRUt0UXhRQXk4L3V3b2hpTUdNMmV2?=
 =?utf-8?B?MHcycVpjcVBMY3hVT0lBWHZaRnRLMzBnMjZzckQxdXF5SHBURlAvbVUxL0V5?=
 =?utf-8?B?ekp2Um5MSjIxNk43Ny9KZ1c4WGdZS1NiYjBWK3VaZSt3WWwxKzZXR1ExcU9l?=
 =?utf-8?B?TzNDRnFXaGtaVG1UZnpKQ3NCZ1k5YytOZlRCSFg0cmpVQTRiVzFSU1JYTEJn?=
 =?utf-8?B?WmoycnBsSXV2Y2VGSUpzWVRKSlRtMVV0alJTNzhlZ3kxUzRzbkFFT0N1a3RO?=
 =?utf-8?B?MHplcklQakszQk4zL0ErUG93WEhJV3FGYXZ3SUhzY3hwZ3Z1UWNqTnlETmps?=
 =?utf-8?B?RDA4RityOWNERUdYYVZMUEVMWXVIdGcwdzJadmdYUUEyTlVCM0tmUkpzSnE0?=
 =?utf-8?B?eUcxb3Z5amJRNDJibHprL3FSbitONFcyUkJZYUJOM2NRVFJBZm1SZXIyZnJv?=
 =?utf-8?B?TzYvZmdpL3FWUlZHcHBLQ2lNUzkzVWVNelA3TUNrd2VPekQ3eWpiaW9zZXE3?=
 =?utf-8?B?N0NINGJxNjVrY3c1cGlUbTZIaTdlNHYvbW9uTklQSzRBS2pCZjl3bFY5OUhq?=
 =?utf-8?B?K1dUK1NOS1lOVlRzVEwyWTVISFAwR0hJbUxjOSs5bVZ0ZVV4YitQL2M3R3lh?=
 =?utf-8?B?UFRQNnpTVVR3YWpSVGtQQTZKVGNnUGdaS1hjUUk1blZ4Q2pSUGdjeFZueGFi?=
 =?utf-8?Q?kQ4RV+cbIcD3k/3JEX6zQNgtvGyM4xBaITaUc=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <126CCCE84F345049BC1C2760C7C80FEA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6145
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A6B.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6a6349cc-3656-4b9f-88ec-08dd02413216
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|35042699022|36860700013|376014|82310400026|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dTBlZzlESGoySVV1dG5YN1FBMXoySWh2VkNDenJMc3lZL2VrZzQyTlhqZU9l?=
 =?utf-8?B?SkVGcVNkUU8wMkxRQnJYMGowTC8yRFNpWDlhTFREUksvUlA0ZVJWMW5pWVI5?=
 =?utf-8?B?b0h3cW5wT1RuQ25NMVJ3MDA0b2JWQU5aZCtiemkvOTRmdFZZdDh2SHRxckRw?=
 =?utf-8?B?OHZCSk80aTZxb2NUM1ljNUJtQTlIVVhVV3F4L1JXaXRGS1ppSzZmRVFpUXMr?=
 =?utf-8?B?Z3BJSnVYTFBLZlp6UjNDT3BNN2tlRjhYd2ROY0NsTlF1aS8vT2RJV0tFcU1z?=
 =?utf-8?B?eEpiQWRpeVZqU0ZNVzVVQzdvZ2djL0NUNmczeDZndGpoSFhIRzVKUndYUVhD?=
 =?utf-8?B?bmhPNHhPV2RsNzBRWUNsMmtwY3NTSEE3eEZwTHNlemt0SCtDWUR5N25pRDB5?=
 =?utf-8?B?TTJRbERNNzJJTkhPTXgzaDQ0WnFqTUpCMis4cVBFVXpENVBQWUdRWDh1aEU1?=
 =?utf-8?B?UlU1UDdha1RLZWgwbE1tR3RjcnpEazN5N2NNSFdxVFFSaktzNjFHTHJYcG5h?=
 =?utf-8?B?bG1mYWt5S1VrR3hzZWFnQ1hoaWJxekJ1V3VINzFsdDYrc2lHbSsyamZKSEE1?=
 =?utf-8?B?d0lhTnl0QUIwQ1ZCbGpOaFZMenMwZ2tPUVQvbU5BQ0RKaTVWWG9pR0VBM25k?=
 =?utf-8?B?SkFFdUNib3ZSUXI1MXFBZ1d1QWlBTmQweEJYWmh5OWx3cGpJNExHakZ3ZXRp?=
 =?utf-8?B?SENPbVVmcWNrcWI4eXJZWHEwMnZiZ1V6TXR4YmZ3NWdqOTlIV0xjVkJpeXBy?=
 =?utf-8?B?S3QzMDB5WXJLSVYyTTh1b3ZoQU1oSjA4U2ZRbUdqRmJxSDlnbURGakEzOGov?=
 =?utf-8?B?WmU4c3JNSzR0RnZaZHRkOHRkb2d1T0c5allVZDkwM29LUzUzVHVYNTIvNExQ?=
 =?utf-8?B?R1hVMit4UGRDVFVnYUxHOG4wOXAwbkpOL2xwLzllM1FvRXVlK3pOZjc5QVZ5?=
 =?utf-8?B?dThvaTMxUXNKQ0MwY2ViTzhSalh3LzJrNDBuNkpGdTR1Z1M4S0VyMm5hbzE5?=
 =?utf-8?B?MERFQlZDd2lCbTdxdnZ5NEpqcmVwQzg3S2hXNC8zR0ZaLzQrc0ovVXhRWFdB?=
 =?utf-8?B?cFM3R3RZcUllblBUNmh5eWxsbHNlZkZBeXkwcUNoRGtHT3VRdVY5bmJYRzh0?=
 =?utf-8?B?ZUR3MjVjTzc5aVlPL1p3Wmhhc0RDbUIrMzZwNlEvcGkrRkRxNUNyNDZ2T2tB?=
 =?utf-8?B?cWxaM00xODFVSWdUbmdONlVESStzWHBaM05UaXQzcW4waVNWSVUxZkcvZFBt?=
 =?utf-8?B?aHNEN3lQVkNKTGR3QmViUVNFZ2Y5TVNsc2pJOE05bkRRVXI3Z3ZVbGZ6ZzJu?=
 =?utf-8?B?TzBSbmZuT0E5ay9EaFJvTFdOTzB1dHh4ODRWclIySUtWUllrZG1BOHUyUnU5?=
 =?utf-8?B?MHhwcWpFaE9TdGFYaWQrZHZUS3ZFWnBLcDE1TXA5TDhxNDhGN0FCNExKUTR0?=
 =?utf-8?B?QTRNdkFQRCtNMGNmdHdTYTY5WHRuTjNWMTRIaEhlNHd4QUUyWURCWUs5OXlh?=
 =?utf-8?B?MU5BTTdVWnRmanJCSUl4elJwdFRYZXlFZFh3eUE5NEZBRHc5VEh3U2pzZEI5?=
 =?utf-8?B?REpLVjEwY0ZpRm5rbTNlRWg3QlVjQk1WbEFWOUVSYnVxYTh5MWhKWGZ3WDR0?=
 =?utf-8?B?alZxbkFoR2Fza3RRZEFrd2hUSTJlU0lzVkxUNnlFbHlCVG5GVXJVbmRta1BJ?=
 =?utf-8?B?RHpMLy9ROVRXeGZZK0ViQWh4cDVjRE1EclBFeFZZZEUzWGdvRWZvTWY5anNs?=
 =?utf-8?B?NjZXNStoQ2ZROGZTTzZwb0g0THNXMVZ1bXBBMUNhQ1g1NUp6ejBneVgzM0Jp?=
 =?utf-8?B?SkxJTkF4UUhiSFA5QkhQR0J3QnFBUEFaVlNSKzRMRlpZR3FzQkI2TVVDeHVa?=
 =?utf-8?B?RmxpTi8vaE52QzdydEhlQmpJMUFyKzJDVGdSemxVUE1xTEE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(1800799024)(35042699022)(36860700013)(376014)(82310400026)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 11:08:52.6606
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54f95025-2a20-4b55-307b-08dd02413a15
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A6B.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR08MB11173

DQoNCj4gT24gOCBOb3YgMjAyNCwgYXQgMTk6NTksIEF5YW4gS3VtYXIgSGFsZGVyIDxheWFuLmt1
bWFyLmhhbGRlckBhbWQuY29tPiB3cm90ZToNCj4gDQo+IEZyb206IFBlbm55IFpoZW5nIDxQZW5u
eS5aaGVuZ0Bhcm0uY29tPg0KPiANCj4gSW4gWGVuLCBTTU1VIHN1YnN5c3RlbSBpcyBzdXBwb3J0
ZWQgZm9yIE1NVSBzeXN0ZW0gb25seS4gVGhlIHJlYXNvbiBiZWluZyBTTU1VDQo+IGRyaXZlciB1
c2VzIHRoZSBzYW1lIHBhZ2UgdGFibGVzIGFzIE1NVS4NCj4gVGh1cywgd2UgbWFrZSBpdCBkZXBl
bmRlbnQgb24gQ09ORklHX01NVS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFBlbm55IFpoZW5nIDxQ
ZW5ueS5aaGVuZ0Bhcm0uY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBBeWFuIEt1bWFyIEhhbGRlciA8
YXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbT4NCj4g4oCUDQoNClJldmlld2VkLWJ5OiBMdWNhIEZh
bmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQoNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:12:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833560.1248726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASLT-0004Fs-P3; Mon, 11 Nov 2024 11:12:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833560.1248726; Mon, 11 Nov 2024 11:12: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 1tASLT-0004Fl-MU; Mon, 11 Nov 2024 11:12:35 +0000
Received: by outflank-mailman (input) for mailman id 833560;
 Mon, 11 Nov 2024 11:12:34 +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 1tASLS-0004Ff-Jz
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:12:34 +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 1tASLS-00022T-0O;
 Mon, 11 Nov 2024 11:12:34 +0000
Received: from [2a02:8012:3a1:0:440f:f547:9226:a08e]
 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 1tASLS-0004w6-0V;
 Mon, 11 Nov 2024 11:12: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>
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=M28LHIIbvRESAmeI83QiMECTY2zkGwXqxpqo8VVTdeQ=; b=O2JigXHd77de7uC/2uCSIbOaEX
	Q5/rLEn2sPXsDRQsdpP0Z80REmHwSpDgdYim5hLbjJtSY3mLG4pbyh2TEuebkI6FircJJlnor33Xk
	bvXhNGSA0hcsdJlRdEy4icw/Sm5RxHiaGao8c3tsb7IcblW3YTJSf5bTqh7jRmr2f5dg=;
Message-ID: <80ac1e78-5259-43d2-8b18-d5bd3abdca1b@xen.org>
Date: Mon, 11 Nov 2024 11:12:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Rahul Singh <rahul.singh@arm.com>
References: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 08/11/2024 19:59, Ayan Kumar Halder wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> In Xen, SMMU subsystem is supported for MMU system only. The reason being SMMU
> driver uses the same page tables as MMU.
> Thus, we make it dependent on CONFIG_MMU.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@arm.com>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
>   xen/arch/arm/Kconfig            | 2 +-
>   xen/drivers/passthrough/Kconfig | 3 ++-
>   2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 15b2e4a227..3699e148e9 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -16,7 +16,7 @@ config ARM
>   	select HAS_DEVICE_TREE
>   	select HAS_PASSTHROUGH
>   	select HAS_UBSAN
> -	select IOMMU_FORCE_PT_SHARE
> +	select IOMMU_FORCE_PT_SHARE if MMU

Realistically, everything under drivers/passthrough is MMU specific. So 
does it actually make any sense to select HAS_PASSTHROUGH right now?

>   
>   config ARCH_DEFCONFIG
>   	string
> diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kconfig
> index 78edd80536..75ad403dd3 100644
> --- a/xen/drivers/passthrough/Kconfig
> +++ b/xen/drivers/passthrough/Kconfig
> @@ -5,6 +5,7 @@ config HAS_PASSTHROUGH
>   if ARM
>   config ARM_SMMU
>   	bool "ARM SMMUv1 and v2 driver"
> +	depends on MMU
>   	default y
>   	help
>   	  Support for implementations of the ARM System MMU architecture
> @@ -15,7 +16,7 @@ config ARM_SMMU
>   
>   config ARM_SMMU_V3
>   	bool "ARM Ltd. System MMU Version 3 (SMMUv3) Support" if EXPERT
> -	depends on ARM_64 && (!ACPI || BROKEN)
> +	depends on ARM_64 && (!ACPI || BROKEN) && MMU
>   	help
>   	 Support for implementations of the ARM System MMU architecture
>   	 version 3. Driver is in experimental stage and should not be used in

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:15:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:15:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833567.1248737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASO8-0004o1-9e; Mon, 11 Nov 2024 11:15:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833567.1248737; Mon, 11 Nov 2024 11: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 1tASO8-0004nu-4J; Mon, 11 Nov 2024 11:15:20 +0000
Received: by outflank-mailman (input) for mailman id 833567;
 Mon, 11 Nov 2024 11:15: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=dX8x=SG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tASO6-0004no-1j
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:15:18 +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 39bdb10a-a01e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:15:15 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so5750507a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 03:15:15 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03c9b9b9sm5019318a12.89.2024.11.11.03.15.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 03:15: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: 39bdb10a-a01e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM5YmRiMTBhLWEwMWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzIzNzE1LjI1NzE4Niwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731323715; x=1731928515; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=DsavfJtuSvVD7nAFjOoR0x05eM0KCRZ6QYZ5iqOH+qo=;
        b=g4CIDkieYFBM4LD0am4hTJyvlZx+eMZ5UmZ45+fGADyWwUkO6UH7RBetP3j2txffR8
         tpf13z+VzFbXYhAoHu/YmWQtF4Nl351ZErBwCfR+CFHNR/c8hJdt1sRj/jTvKoZ+EDE7
         o7enJ1NbmzXJGNF4NnPnsjQvNWHWRWK7nVbQZfW8sxih6esFb9HmIJOhXvHFHxal6z5Q
         pktjOU7LnIrIGrobFPy/tlsePXiGlFx6wmoFnFSTcTUZoHZUTFA9Ct7BphxdOA4Fw/XM
         qEZvpktp2T+f/ePJXCwxNPDXmqJ6SlxiKi4lKSNpy2zh1Cbrwp+CsLTq8RTbCS4+IRLr
         XR8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731323715; x=1731928515;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=DsavfJtuSvVD7nAFjOoR0x05eM0KCRZ6QYZ5iqOH+qo=;
        b=Ng9N04tfiBFcdGzBI/UL85eQDYB2wxeICY5Jb02f7iNHS6+hUzbYMgYzSjGzhpdR33
         N30c5V2AO1C3Ub7E2eTKa1gJlkyji70OAmajoMJzkDEekipbXLPoN3SpOh77petQ9yx2
         sP9Vbk6kSPquXxjW6ixkhjefCIzh3lUz1soggmcrIwApLLuRt0d6R9ncSI1q3rGwhnfL
         tEGvfqn5h9tKTtHhKvYbiapXXXoQaLUzADqa91s/98KIpceVG3FVdNMyuwRQa93OfKrl
         9PUe9bOMp3JPI/3SRoBX6aZfpWOBfPXrpBJQt7SSQxn1vuM0WpeKYeiciw6FzLPK11zY
         bDvA==
X-Forwarded-Encrypted: i=1; AJvYcCVe/VqWzRcvl2a8IT7zIy3+Sv2hPareZzLizBDzYBNLfW9nb0bXRk4QTXCwAjQ3f3mi30NePRAhNXg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMJlV94RcesL+SVVVCQyeA7HFt19tMEyvYo6FfYgotU5mOq203
	Up1cyJfo/viLQtEYsS2ExMNrLsYQ0e29pqk2cADB2GHnADumxAgz
X-Google-Smtp-Source: AGHT+IEA6SIRTW3viUyNwSU4+pavEIqlMuP/hjim8bVUc7/YKyey2VuYz9+Q7hJb7nWPj1isbm5Ycg==
X-Received: by 2002:a05:6402:2692:b0:5c8:9f81:43e4 with SMTP id 4fb4d7f45d1cf-5cf0a2faeb2mr10778891a12.7.1731323714339;
        Mon, 11 Nov 2024 03:15:14 -0800 (PST)
Message-ID: <0b9d8841733cd5450daeb55eb0339264c601e4c5.camel@gmail.com>
Subject: Re: [PATCH v1] drivers/char: move dt_uart_init() to dt-uart.c
From: oleksii.kurochko@gmail.com
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,  Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel	 <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Date: Mon, 11 Nov 2024 12:15:13 +0100
In-Reply-To: <96d8d5c0-015a-4dd5-8ef1-6d9cd6948cab@xen.org>
References: 
	<8e1036a7e6c884702d46e377c1c5b723570c819e.1731077742.git.oleksii.kurochko@gmail.com>
	 <96d8d5c0-015a-4dd5-8ef1-6d9cd6948cab@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

Hi Julien,

On Mon, 2024-11-11 at 10:24 +0000, Julien Grall wrote:
> Hi Oleksii,
>=20
> On 08/11/2024 14:56, Oleksii Kurochko wrote:
> > The `dt_uart_init()` functions is relocated to a new file `dt-
> > uart.c` to allow
> > for reuse across architectures that utilize the device tree to
> > describe hardware
> > components.
> >=20
> > RISC-V is going to follow the same approach to UART initialization,
> > which
> > includes checking for the presence of `dtuart` in the console
> > string or verifying
> > the `stdout-path` property in the `/chosen` node, followed by
> > searching for the UART
> > node and calling `device_init()` for UART setup.
> >=20
> > Add `xen/drivers/char/dt-uart.c` to the ARM ARCHITECTURE section in
> > the MAINTAINERS
> > file, as ARM maintainers are best suited to maintain this code.
> >=20
> > No functional change.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > =C2=A0 MAINTAINERS=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 1 +
> > =C2=A0 xen/drivers/char/Makefile=C2=A0=C2=A0 |=C2=A0 1 +
> > =C2=A0 xen/drivers/char/arm-uart.c | 80 -------------------------------
>=20
> The only thing left in arm-uart.c is the ACPI initialize. I guess at
> the=20
> some point this will be needed for other architectures. I think it
> would=20
> be more suitable if the file is renamed, maybe uart-init.c?
It seems like you are right and it would be better just to rename the
file. ( I checked Linux kernel source code and RISC-V there also is
using SPCR table to store the configuration of console.

I will send a new patch version.


Thanks!

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:18:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:18:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833578.1248746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASRJ-0005Os-L9; Mon, 11 Nov 2024 11:18:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833578.1248746; Mon, 11 Nov 2024 11:18: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 1tASRJ-0005Ol-Ib; Mon, 11 Nov 2024 11:18:37 +0000
Received: by outflank-mailman (input) for mailman id 833578;
 Mon, 11 Nov 2024 11:18: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=pNnr=SG=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tASRJ-0005Of-7l
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:18:37 +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 afd16837-a01e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:18:33 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4315e9e9642so35731185e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 03:18:33 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed97ce1bsm12579278f8f.36.2024.11.11.03.18.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 03:18: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: afd16837-a01e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC13bTEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFmZDE2ODM3LWEwMWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzIzOTEzLjg3NzU5Miwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731323912; x=1731928712; 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=BLkMCXmXyEs9hz0TjHnBnUDUJ2xbUt1SbWWsZK49qTo=;
        b=Hs3grXHGlyfK9xzVLazE+qJI/FdX9RpHmEC81wwfKQqh/AdkhOrf6RmZ23KeyhesIa
         8yH8ucb/vldbWxJhn3nT/JOiuDAwmZxB0d+ve7JyhKN/DNZ/j6RYPi6YpYo1zbgVq0Vr
         kBhlKkv8u9iUih02yXd2jXr4XXaC5n3MvZOIk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731323912; x=1731928712;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BLkMCXmXyEs9hz0TjHnBnUDUJ2xbUt1SbWWsZK49qTo=;
        b=pFWtlrKpxbuWXWJQIiXjlAqN6DSArus0bsDKHwHbXJoZLdJ+fnQi+947cSNDnYMvnU
         FfVlHYtbyJiQGJJelaBsr4oPkPG6g7UMlqRQkWq/6Bjw6LD8pqeKxNEuzmaetfZE4DiE
         3POmJNV4h71adzu7H5wBwUB1PUuUAXKnv0jVa1sZ5voFAKv6wxAOicrfzPHJq8WLOFnZ
         PYF1z14oi+ZlPRthtJVnUsl+d12KWtC/NR4Sn6rTmu6ermh6tHLDe1lTvpfkaAaZ4kJA
         DnMFRQ2sbZrtvJRfjTCswGPu5u4K0FE6BW1i3M4QMLpkJJD+4PyCQlnFkCVcwzCrPtdp
         Q2rQ==
X-Gm-Message-State: AOJu0YwHdWmJR3A23V6SUj1y+f6QODST5l3eJyNHEz4QEUp4KKmxpkf1
	BG/kKYJSKjaFU/HB7/kpznLuWHcVSaMqxtorkANjPBbTq8vpeIuWdsjH/qgbv/PnZbKgvblUpdK
	ADrU=
X-Google-Smtp-Source: AGHT+IHSlWtPp6ppWNhmOXcm+RZcgkKDmTEoJd3zcsNiiUqNfLGxbc/bN+YI6XLnK+kLNYxNnndeDQ==
X-Received: by 2002:a05:600c:3b9a:b0:432:b38e:a048 with SMTP id 5b1f17b1804b1-432b75029c2mr105230715e9.12.1731323912438;
        Mon, 11 Nov 2024 03:18:32 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2] x86/boot: Setup correctly fs segment for bogus_real_magic
Date: Mon, 11 Nov 2024 11:18:22 +0000
Message-Id: <20241111111822.6795-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

bogus_real_magic code uses fs segment so it should be initialised.

Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- added "Fixes" comment;
- add initialisation, do not remove old one.
---
 xen/arch/x86/boot/wakeup.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
index 08447e1934..99ac8594b8 100644
--- a/xen/arch/x86/boot/wakeup.S
+++ b/xen/arch/x86/boot/wakeup.S
@@ -20,6 +20,8 @@ ENTRY(wakeup_start)
         movw    %ax, %ds
         movw    %ax, %ss        # A stack required for BIOS call
         movw    $wakesym(wakeup_stack), %sp
+        movw    $0xb800, %ax
+        movw    %ax, %fs
 
         pushl   $0              # Kill dangerous flag early
         popfl
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:20:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:20:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833585.1248755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASTI-00071Z-VZ; Mon, 11 Nov 2024 11:20:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833585.1248755; Mon, 11 Nov 2024 11: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 1tASTI-00071S-T7; Mon, 11 Nov 2024 11:20:40 +0000
Received: by outflank-mailman (input) for mailman id 833585;
 Mon, 11 Nov 2024 11: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=bt5q=SG=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tASTH-0006zz-Mh
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:20:39 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f409e7a8-a01e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:20:27 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-539f84907caso4826521e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 03:20:27 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432aa6b3069sm205544935e9.14.2024.11.11.03.20.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 03:20: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: f409e7a8-a01e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzMiLCJoZWxvIjoibWFpbC1sZjEteDEzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY0MDllN2E4LWEwMWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI0MDI3LjcwNzczMiwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731324027; x=1731928827; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7cLCnNZS6Bpxyv+irrui2Z+UG4rtfjjtYcD7+pZnjUk=;
        b=RQhzy+nzkuSgwLNk9QJJ75xCjjaVz45QnZrwI0yWZ2qRSvd/HaigcnkCGrarRtqYwB
         d5XxFV8prCGce+KvIrOiXgYYUrE11AyTosToFX8/lM51/YUY2DtALo9LfNF38lv1eKTT
         crV00YL5VEsZgqv6Hw//a4zF1t05/CthJGSlM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731324027; x=1731928827;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=7cLCnNZS6Bpxyv+irrui2Z+UG4rtfjjtYcD7+pZnjUk=;
        b=QgpeLXlx+SPPZm+q/SeijSkLPJwlO4CqTNS9/qcl8qzFmuwqHhbBEhuG6Xc+40fiJo
         UYPeqYf2u5s2eXrU/2zXSiXMTCw4mHsXqosSnmA0yI77aPZiBm3Cjbp2bUEN7xL13K9q
         HC3bF4vAxRTDF2j4xfKRfBqnijq6eVQTaRCXodRarGnmpvx6AURVhMEPAGCcZdPFHfco
         EOtaWdvsCptEDlP6FDJsTyzqnOYFY66vwOLQR8Q/ZME+vqg6KZhhfTnmq62vTq3f1Cri
         X7xTSYPx/CyDztmoqUn0E2Ma7/+XtBoQIlRXG61YqbczKfcLbuJFJbPNM7U2z5t9weQG
         76DA==
X-Forwarded-Encrypted: i=1; AJvYcCUHSxX7vF3+FUs6BuYpII6davFUfwt8hygkQz5xz+RNG/WA1k96mAmEwxGgn1oSpm9X9P6FFH1PEB0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxlzQ5uEj5wxYwfWFA5V4Gt90kyju3AJsb37icNEvlR7M1ldpnb
	C/Enm6D4ros7KnREaJDs3ORDE4sRpjWoh9vxdyCY3zazqPwUvj/Vyz1mieKYXog=
X-Google-Smtp-Source: AGHT+IGm5PlLX5ER66zzzG927PptR0yPJG3wMkLpZPQBPiEE3dVaO+E0m2RIC6jjvULgaxUqEBasgQ==
X-Received: by 2002:a05:6512:1386:b0:53b:1526:3a48 with SMTP id 2adb3069b0e04-53d862c57cdmr4548188e87.14.1731324027043;
        Mon, 11 Nov 2024 03:20:27 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 11 Nov 2024 11:20:24 +0000
Message-Id: <D5JB58LVN4T6.1IUNQ15AHO1RV@cloud.com>
Cc: "Jan Beulich" <jbeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Subject: Re: [PATCH v7 04/10] tools/hvmloader: Retrieve (x2)APIC IDs from
 the APs themselves
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241021154600.11745-1-alejandro.vallejo@cloud.com>
 <20241021154600.11745-5-alejandro.vallejo@cloud.com>
 <e8e2385d-b575-4483-ba54-f80c669af9c3@citrix.com>
In-Reply-To: <e8e2385d-b575-4483-ba54-f80c669af9c3@citrix.com>

On Wed Oct 30, 2024 at 11:31 AM GMT, Andrew Cooper wrote:
> On 21/10/2024 4:45 pm, Alejandro Vallejo wrote:
> > diff --git a/tools/firmware/hvmloader/config.h b/tools/firmware/hvmload=
er/config.h
> > index cd716bf39245..04cab1e59f08 100644
> > --- a/tools/firmware/hvmloader/config.h
> > +++ b/tools/firmware/hvmloader/config.h
> > @@ -4,6 +4,8 @@
> >  #include <stdint.h>
> >  #include <stdbool.h>
> > =20
> > +#include <xen/hvm/hvm_info_table.h>
> > +
> >  enum virtual_vga { VGA_none, VGA_std, VGA_cirrus, VGA_pt };
> >  extern enum virtual_vga virtual_vga;
> > =20
> > @@ -48,8 +50,9 @@ extern uint8_t ioapic_version;
> > =20
> >  #define IOAPIC_ID           0x01
> > =20
> > +extern uint32_t cpu_to_x2apicid[HVM_MAX_VCPUS];
>
> Just cpu_to_apic_id[] please.=C2=A0=C2=A0 The distinction between x or x2=
 isn't
> interesting here.

I disagree.

While "x" says nothing of interest "x2" does state the width. cpu_to_apic_i=
d is
ambiguous and I've seen no shortage of code in which it's impossible to ass=
ess
its correctness without going to check what the original author meant; and
guesswork is bad for robustness. cpu_to_x2apicid has an unambiguous width a=
t
the meager cost of 2 chars. If you have very strong feelings about it I can
change it, but my preference is to keep it as-is.

>
> HVM_MAX_VCPUS is a constant that should never have existed in the first
> place, *and* its the limit we're looking to finally break when this
> series is accepted.
>
> This array needs to be hvm_info->nr_vcpus entries long, and will want to
> be more than 128 entries very soon.=C2=A0 Just scratch_alloc() the array.=
=C2=A0
> Then you can avoid the include.

That's a major PITA in the libxl side. I'll have a go to see how long it ta=
kes
me before I weep :_)

>
> > diff --git a/tools/firmware/hvmloader/mp_tables.c b/tools/firmware/hvml=
oader/mp_tables.c
> > index 77d3010406d0..539260365e1e 100644
> > --- a/tools/firmware/hvmloader/mp_tables.c
> > +++ b/tools/firmware/hvmloader/mp_tables.c
> > @@ -198,8 +198,10 @@ static void fill_mp_config_table(struct mp_config_=
table *mpct, int length)
> >  /* fills in an MP processor entry for VCPU 'vcpu_id' */
> >  static void fill_mp_proc_entry(struct mp_proc_entry *mppe, int vcpu_id=
)
> >  {
> > +    ASSERT(cpu_to_x2apicid[vcpu_id] < 0xFF );
>
> This is just going to break when we hit 256 vCPUs in a VM.
>
> What do real systems do?
>
> They'll either wrap around 255 like the CPUID xAPIC_ID does, or they'll
> not write out MP tables at all.

Definitely not wrapping around, that makes no sense.

It could also show the first 255 APs only. The reality is that if we're
exposing 1000 vCPUs is because we expect the guest to use them. While it's
likely we want to avoid writing the MP tables, that's not a puddle I want t=
o
play with ATM.

Note that this is not a new breakage. It was already broken if we were to h=
it
such an APIC ID (which we can't because HVM_MAX_VCPUS is lower). I just mad=
e
sure we never write out corrupted tables.

>
> > diff --git a/tools/firmware/hvmloader/smp.c b/tools/firmware/hvmloader/=
smp.c
> > index 1b940cefd071..d63536f14f00 100644
> > --- a/tools/firmware/hvmloader/smp.c
> > +++ b/tools/firmware/hvmloader/smp.c
> > @@ -90,10 +120,11 @@ static void boot_cpu(unsigned int cpu)
> >          BUG();
> > =20
> >      /*
> > -     * Wait for the secondary processor to complete initialisation.
> > +     * Wait for the secondary processor to complete initialisation,
> > +     * which is signaled by its x2APIC ID being written to the LUT.
>
> Technically all arrays are a lookup table, but I'm not sure LUT is a

No. A look-up table is a very specific implementation of a relation (in the
mathematical sense) between an unsigned integer and some other type,
implemented by means of an array indexed by said integer.

> common enough term to be used unqualified like this.

Happy to change the name if it's uncommon enough in this codebase, but it i=
s
fairly common outside of it, and it's common enough to have its own wikiped=
ia
page with that very acronym.

  https://en.wikipedia.org/wiki/Lookup_table

>
> Just say "... signalled by writing its APIC_ID out."=C2=A0 The where is v=
ery
> apparent by the code.
>
> > @@ -104,6 +135,12 @@ static void boot_cpu(unsigned int cpu)
> >  void smp_initialise(void)
> >  {
> >      unsigned int i, nr_cpus =3D hvm_info->nr_vcpus;
> > +    uint32_t ecx;
> > +
> > +    cpuid(1, NULL, NULL, &ecx, NULL);
> > +    has_x2apic =3D (ecx >> 21) & 1;
> > +    if ( has_x2apic )
> > +        printf("x2APIC supported\n");
>
> You need to check max_leaf >=3D 0xb too.=C2=A0 Remember Xen might not giv=
e you
> leave 0xb yet, and then you'll hit the assert for finding 0.

True.

>
> And has_x2apic wants to be a simple boolean.=C2=A0 Nothing good can come =
from
> confusing -1 with "x2apic available".

Sure

>
>
> I recommend splitting this patch into three.=C2=A0 Several aspects are qu=
ite
> subtle.
>
> 1) Collect the APIC_IDs on APs
> 2) Change how callin is signalled.
> 3) Replace LAPIC_ID() with the collected apic_id.
>
> but AFAICT, it can be done as a standalone series, independently of the
> other Xen/toolstack work.

Ack

>
> ~Andrew

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:22:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:22:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833593.1248770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASUl-000824-AP; Mon, 11 Nov 2024 11:22:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833593.1248770; Mon, 11 Nov 2024 11:22: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 1tASUl-00081x-7t; Mon, 11 Nov 2024 11:22:11 +0000
Received: by outflank-mailman (input) for mailman id 833593;
 Mon, 11 Nov 2024 11: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=pNnr=SG=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tASUk-00081p-Er
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:22:10 +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 2e50d4d6-a01f-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 12:22:06 +0100 (CET)
Received: by mail-oo1-xc2d.google.com with SMTP id
 006d021491bc7-5ebc0dbc65dso2126156eaf.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 03: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: 2e50d4d6-a01f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMmQiLCJoZWxvIjoibWFpbC1vbzEteGMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJlNTBkNGQ2LWEwMWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzI0MTI2Ljg4NzI5MSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731324125; x=1731928925; 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=HZVJGjRydN2DLENj02s9jTif2zAXBMwENRaV6Cm60gk=;
        b=Mu43kv1IrQ26jgsK8+eUwr9jKtOXDAGaRSklysHkyIvSOiaxUwjbEbaFp2pvjcfI56
         +utMz35vd7rqB4sgV/natm/KLXz4GXo8o0IbOyo4HohweyXVCk3tPUqBKLQcGf6zZovX
         U9cR//Ei35CYfMbvYBQrkXDvKZlLrlZEpIV0Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731324125; x=1731928925;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HZVJGjRydN2DLENj02s9jTif2zAXBMwENRaV6Cm60gk=;
        b=OLU6t+BgRAvg+r7DWKX9oSBqN2s5zaiuj1XKzhum0vbgn6YsKhO3d2jiqYA/VugOBQ
         1XCiBba63LZWocLax02tFfqt4fLcfEwmJOHqHnUXcM6BvGBtfLAJLGBsFFWqJwtDyw51
         L6nPt6BLkF9mnWClAFmKEs/9fn58W/bQA6+UvAooZFmmXw2rhn7QqwpjNyTtnwdJl6hh
         aKpQwZp0VyQi7AmPaJ1WCA/ZkFVwKymBKaDPKnU7O96bdmUIFwwxx8isDy3Gp07Jc/BG
         A8dX9iM4WU68X8TfzNDnC0NzAYkLoG5g1W5kpVj8zBXrFqufnE/i/aW8xb6hmbqJ9lCS
         Dr+g==
X-Gm-Message-State: AOJu0Yz+lKnt0r74vY1asI59aHdYV5qVLlw3nJPQbTt8J9c9NljRy2Au
	zfNc2JCzNRKenr+gDLTg6axXB9Wjsaurp5HB0rWMsxF8WgcTLb2C2d35p32vHCfRoqRNFa6/N8v
	R4Uyxfkj8imsG863hwBKv+wgUPDSs6azIl+d9PA==
X-Google-Smtp-Source: AGHT+IGgPOLDYKsNpnewujfp4+Tl1B4HceuEfh1n6WIqGwQz3oG4hqgq7gKZ4CSGqHfXD3cW1APQC/w+cAb8IeLW2aY=
X-Received: by 2002:a05:6820:8c8:b0:5eb:75a9:3aac with SMTP id
 006d021491bc7-5ee57c61091mr7048602eaf.6.1731324124753; Mon, 11 Nov 2024
 03:22:04 -0800 (PST)
MIME-Version: 1.0
References: <20241109003654.884288-1-andrew.cooper3@citrix.com>
 <CACHz=ZjBiEkXCGayGSdFUUc0eCFqSvGGSyFDMmRc76Nz_aP9QA@mail.gmail.com> <1ace53f6-dd00-4277-9e91-4f3117facd38@citrix.com>
In-Reply-To: <1ace53f6-dd00-4277-9e91-4f3117facd38@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Mon, 11 Nov 2024 11:21:54 +0000
Message-ID: <CACHz=ZgjpZ5TkwwDrbCZkOG1XnjAV7uGxDqZGYu_StTMAPKD0w@mail.gmail.com>
Subject: Re: [PATCH] x86/wakeup: Fix code generation for bogus_saved_magic
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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 11, 2024 at 11:05=E2=80=AFAM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> On 09/11/2024 5:29 pm, Frediano Ziglio wrote:
> > On Sat, Nov 9, 2024 at 12:37=E2=80=AFAM Andrew Cooper <andrew.cooper3@c=
itrix.com> wrote:
> >> bogus_saved_magic() is in a .code64 section but invokved in 32bit mode=
.  This
> > Typo: invoked
> >
> >> causes a real encoding difference.
> >>
> >> Before:
> >>   66 c7 04 25 14 80 0b 00 53 0e    movw   $0xe53,0xb8014(,%eiz,1)
> >>
> >> After:
> >>   66 c7 05 14 80 0b 00 53 0e       movw   $0xe53,0xb8014
> >>
> >> The differnce happens to be benign, but move the logic back into a .co=
de32 for
> > Typo: difference
>
> Thanks.  I'd noticed and fixed up locally.
>
> >
> >> sanity sake.  Annotate it with ELF metadata while doing so.
> >>
> >> Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
> >> 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>
> >>
> >> This issue dates back to the very introduction of S3 support in Xen, i=
n 2007.
> >> ---
> >>  xen/arch/x86/boot/wakeup.S | 9 +++++----
> >>  1 file changed, 5 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
> >> index 08447e193496..c929fe921823 100644
> >> --- a/xen/arch/x86/boot/wakeup.S
> >> +++ b/xen/arch/x86/boot/wakeup.S
> >> @@ -153,15 +153,16 @@ wakeup_32:
> >>          /* Now in compatibility mode. Long-jump to 64-bit mode */
> >>          ljmp    $BOOT_CS64, $bootsym_rel(wakeup_64,6)
> >>
> >> +FUNC_LOCAL(bogus_saved_magic, 0)
> >> +        movw    $0x0e00 + 'S', 0xb8014
> >> +        jmp     bogus_saved_magic
> >> +END(bogus_saved_magic)
> >> +
> >>          .code64
> >>  wakeup_64:
> >>          /* Jump to high mappings and the higher-level wakeup code. */
> >>          movabs  $s3_resume, %rbx
> >>          jmp     *%rbx
> >>
> >> -bogus_saved_magic:
> >> -        movw    $0x0e00 + 'S', 0xb8014
> >> -        jmp     bogus_saved_magic
> >> -
> >>  /* Stack for wakeup: rest of first trampoline page. */
> >>  ENTRY(wakeup_stack_start)
> > Hi,
> >    I agree with the code move, it's supposed to be 32 bit so it should
> > be in the 32 bit section.
> > Does the ELF annotation help with debug information? Maybe worth
> > adding to the comment.
>
> As said in the commit message, it's simply ELF metadata (symbol type and
> size).
>
> It doesn't interact with debug symbols, so far as I'm aware.
>
> It's mainly for livepatching (the ELF metadata is how changes are
> identified), but we're applying it uniformly to all assembly as a
> cleanup activity.
>

I don't think livepatching this code would be so easy. That code is
copied to low memory and discarded (.init section) later, so patching
the code in the current ELF code would corrupt Xen memory.

> > OT: If I understood correctly, the code is writing a character on
> > screen in a tight loop. Maybe an hlt instruction could be helpful?
>
> Yeah, it's not exactly great code, but it needs more adjustments than
> just a hlt.
>
> It ought to know about CONFIG_VIDEO, and ideally video=3Dnone.
>

In head.S we write messages in both VGA (if possible) and serial.
Anyway... out of scope here.


> > Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>
> Thanks.
>
> ~Andrew

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:24:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:24:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833604.1248780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASWo-0000FO-Ns; Mon, 11 Nov 2024 11:24:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833604.1248780; Mon, 11 Nov 2024 11:24: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 1tASWo-0000FH-L2; Mon, 11 Nov 2024 11:24:18 +0000
Received: by outflank-mailman (input) for mailman id 833604;
 Mon, 11 Nov 2024 11:24:17 +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 1tASWn-0000FB-Iz
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:24:17 +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 1tASWn-0002Gu-0F;
 Mon, 11 Nov 2024 11:24:17 +0000
Received: from [2a02:8012:3a1:0:440f:f547:9226:a08e]
 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 1tASWn-0005QH-0b;
 Mon, 11 Nov 2024 11:24: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=SfSep94OMPUpm5c7upx4eLB/ph+cXEZnEhWzR75ruTQ=; b=4Ll6y0RoxvV5ZKfGnn6Bqofaxo
	zZ8gpX65hMrBv6OHkqIePIXjdfO+QsldV10C4DgWcgdp3t71GYx+5rMF8fKkSjbnZw2KXwHSxWuEw
	yMpqfSzNvRBAz37KO3W0QY6l+Hg0jDEuJ/+uwDG7PYOygu5zbG3bR3DpYswfSP3wiDZ8=;
Message-ID: <a0cd6b4d-fc4a-4a6e-a2bf-7b0a83a2a6a6@xen.org>
Date: Mon, 11 Nov 2024 11:24:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/2] xen/mpu: Map early uart when earlyprintk on
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241108200024.857766-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241108200024.857766-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 08/11/2024 20:00, Ayan Kumar Halder wrote:
> CONFIG_EARLY_UART_SIZE is introduced to let user provide physical size of
> early UART. Unlike MMU where we map a page in the virtual address space,
> here we need to know the exact physical size to be mapped.
> As VA == PA in case of MPU, the memory layout follows exactly the hardware
> configuration. As a consequence, we set  EARLY_UART_VIRTUAL_ADDRESS as physical
> address.
> 
> Further, we check whether user-defined EARLY_UART_SIZE is aligned to PAGE_SIZE
> (4KB). This is partly because we intend to map a minimum of 1 page(ie 4KB) and
> the limit address is set as "EARLY_UART_SIZE-1". The limit address needs to end
> with 0x3f (as required by PRLAR register).

Looking at the code below, it is not clear why you need to have 
UART_SIZE 4KB-aligned. Furthermore...

> 
> UART is mapped as nGnRE region (as specified by ATTR=100 , refer G1.3.13,
> MAIR_EL2, "---0100 Device memory nGnRE") and Doc ID - 102670_0101_02_en
> Table 4-3, Armv8 architecture memory types (nGnRE - Corresponds to Device in
> Armv7 architecture). Also, it is mapped as outer shareable, RW at EL2 only
> and execution of instructions from the region is not permitted.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
>   xen/arch/arm/Kconfig.debug              |  7 +++++++
>   xen/arch/arm/arm64/mpu/head.S           |  9 +++++++++
>   xen/arch/arm/include/asm/early_printk.h | 19 +++++++++++++++++++
>   3 files changed, 35 insertions(+)
> 
> diff --git a/xen/arch/arm/Kconfig.debug b/xen/arch/arm/Kconfig.debug
> index 7660e599c0..84a0616102 100644
> --- a/xen/arch/arm/Kconfig.debug
> +++ b/xen/arch/arm/Kconfig.debug
> @@ -121,6 +121,13 @@ config EARLY_UART_BASE_ADDRESS
>   	hex "Early printk, physical base address of debug UART"
>   	range 0x0 0xffffffff if ARM_32
>   
> +config EARLY_UART_SIZE
> +       depends on EARLY_PRINTK
> +       depends on MPU
> +       hex "Early printk, physical size of debug UART"
> +       range 0x0 0xffffffff if ARM_32
> +       default 0x1000
> +
>   config EARLY_UART_PL011_BAUD_RATE
>   	depends on EARLY_UART_PL011
>   	int "Early printk UART baud rate for pl011"
> diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
> index 731698aa3b..98422d7ed3 100644
> --- a/xen/arch/arm/arm64/mpu/head.S
> +++ b/xen/arch/arm/arm64/mpu/head.S
> @@ -11,8 +11,10 @@
>   #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 */
> +#define REGION_DEVICE_PRBAR     0x22    /* SH=10 AP=00 XN=10 */
>   
>   #define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
> +#define REGION_DEVICE_PRLAR     0x09    /* NS=0 ATTR=100 EN=1 */
>   
>   /*
>    * Macro to prepare and set a EL2 MPU memory region.
> @@ -137,6 +139,13 @@ FUNC(enable_boot_cpu_mm)
>       ldr   x2, =__bss_end
>       prepare_xen_region x0, x1, x2, x3, x4, x5
>   
> +#ifdef CONFIG_EARLY_PRINTK
> +    /* Xen early UART section. */
> +    ldr   x1, =CONFIG_EARLY_UART_BASE_ADDRESS
> +    ldr   x2, =(CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
> +    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR


... the documentation of prepare_xen_region suggests that the base UART 
should be page-aligned. However, there are systems (although not sure 
about MPU ones) where the base UART address is not page-aligned (this is 
because multiple UARTs share the same page).

But I don't see any need to require page alignment here. I think the 
alignment/size should be based on the minumum supported by the MPU. This 
means the documentation in prepare_xen_region likely needs to be updated.


> +#endif
> +
>       b    enable_mpu
>       ret
>   END(enable_boot_cpu_mm)
> diff --git a/xen/arch/arm/include/asm/early_printk.h b/xen/arch/arm/include/asm/early_printk.h
> index 46a5e562dd..98fd52c4db 100644
> --- a/xen/arch/arm/include/asm/early_printk.h
> +++ b/xen/arch/arm/include/asm/early_printk.h
> @@ -15,6 +15,24 @@
>   
>   #ifdef CONFIG_EARLY_PRINTK
>   
> +#ifndef CONFIG_MMU

Shouldn't this be #ifdef CONFIG_MPU followed by...

> +
> +/*
> + * For MPU systems, there is no VMSA support in EL2, so we use VA == PA
> + * for EARLY_UART_VIRTUAL_ADDRESS.
> + */
> +#define EARLY_UART_VIRTUAL_ADDRESS CONFIG_EARLY_UART_BASE_ADDRESS
> +
> +/*
> + * User-defined EARLY_UART_SIZE must be aligned to a PAGE_SIZE, or
> + * we may map more than necessary in MPU system.
> + */
> +#if (EARLY_UART_SIZE % PAGE_SIZE) != 0
> +#error "EARLY_UART_SIZE must be aligned to PAGE_SIZE"
> +#endif
> +
> +#else

#elif CONFIG_MMU

> +
>   /* need to add the uart address offset in page to the fixmap address */
>   #define EARLY_UART_VIRTUAL_ADDRESS \
>       (FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
> @@ -22,6 +40,7 @@
>   #define TEMPORARY_EARLY_UART_VIRTUAL_ADDRESS \
>       (TEMPORARY_FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
>   
> +#endif /* CONFIG_MMU */

And finally

#else
# error ...
#endif

>   #endif /* !CONFIG_EARLY_PRINTK */
 >   >   #endif

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:24:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:24:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833605.1248790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tASX1-0000a1-UP; Mon, 11 Nov 2024 11:24:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833605.1248790; Mon, 11 Nov 2024 11: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 1tASX1-0000Zr-Rr; Mon, 11 Nov 2024 11:24:31 +0000
Received: by outflank-mailman (input) for mailman id 833605;
 Mon, 11 Nov 2024 11:24: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tASX0-0000YB-Br
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:24:30 +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 81dfb765-a01f-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:24:25 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a99f646ff1bso677441266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 03:24:25 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a48b09sm593487766b.63.2024.11.11.03.24.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 03:24: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: 81dfb765-a01f-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgxZGZiNzY1LWEwMWYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI0MjY1LjY3NDIxNiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731324265; x=1731929065; 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=8ZirE86CmZIF82CLAq1pAf7NstTP1WYRPmWMtWbTwsU=;
        b=MANkKntBfJyZ+ALb31FBLRqUPTWir/Mg/9dSt5TnSekpAHqCyeuWGyDyR770hKumVh
         eYF9qFKrPvh1zZZcijDj/ikcP4+nF0OzzXSm4sD6iIbMLSQSzwtE4OwtY4r5bjXR772w
         iYPQt+SJpluTKWfGtsxffVuDbgmac32LhzRnA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731324265; x=1731929065;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8ZirE86CmZIF82CLAq1pAf7NstTP1WYRPmWMtWbTwsU=;
        b=Wy8q2vnq9VTAnEaiTWOk5y3nL6ibiqmuEHGCuZiqzUksyt1ug46doIo2nehHOUYMUk
         qGiQt8iZPtNzmuXCPpxd+gb3KqZ8JthNLax2TctD1T72jOjxUOuJt39socg59jZDp58c
         2UTMhyurJGvnV0V9E49TkDYhxGcNblHSTFN5A58oVYkKRqs2yjNTYersc8BANGH2cwsf
         iG1sfxI+kAWwYRdY+igwovjVDKd8e4D+UAOH7PCFzZQL7yk0hzzY2Dan0tF7aIaFkchl
         woc7QLd5fwzGbs2lDoS41D4ORMAFkwt3zj0/csyBCyGwO6tdQ2ZDkshHSWh2XrfNcHVg
         uFTA==
X-Gm-Message-State: AOJu0YzI4BkfTeKgZba6syhJE+OpSpmfsyCDJSom+HMx/U8Kf6z2bDwz
	As639RklbE197K9w9NHNkmG/aITjh7NGlLXhfV7yJgfS4HZXQh+Yto3IbEAh3mw=
X-Google-Smtp-Source: AGHT+IF6HFa4Ne3yXwFvzBBTqv6W01yNFO2ZsUm+n8mHbMNWEKILK1iEABN0J2LfrMayMy83AplXlg==
X-Received: by 2002:a17:907:7fa9:b0:a9a:6284:91ef with SMTP id a640c23a62f3a-a9eefebd0f4mr1218362366b.2.1731324265087;
        Mon, 11 Nov 2024 03:24:25 -0800 (PST)
Message-ID: <e56c7264-4bd5-459b-9da9-7ac1506fca5b@citrix.com>
Date: Mon, 11 Nov 2024 11:24:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/wakeup: Fix code generation for bogus_saved_magic
To: Frediano Ziglio <frediano.ziglio@cloud.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>
References: <20241109003654.884288-1-andrew.cooper3@citrix.com>
 <CACHz=ZjBiEkXCGayGSdFUUc0eCFqSvGGSyFDMmRc76Nz_aP9QA@mail.gmail.com>
 <1ace53f6-dd00-4277-9e91-4f3117facd38@citrix.com>
 <CACHz=ZgjpZ5TkwwDrbCZkOG1XnjAV7uGxDqZGYu_StTMAPKD0w@mail.gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <CACHz=ZgjpZ5TkwwDrbCZkOG1XnjAV7uGxDqZGYu_StTMAPKD0w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2024 11:21 am, Frediano Ziglio wrote:
>>>> sanity sake.  Annotate it with ELF metadata while doing so.
>>>>
>>>> Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>
>>>> This issue dates back to the very introduction of S3 support in Xen, in 2007.
>>>> ---
>>>>  xen/arch/x86/boot/wakeup.S | 9 +++++----
>>>>  1 file changed, 5 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
>>>> index 08447e193496..c929fe921823 100644
>>>> --- a/xen/arch/x86/boot/wakeup.S
>>>> +++ b/xen/arch/x86/boot/wakeup.S
>>>> @@ -153,15 +153,16 @@ wakeup_32:
>>>>          /* Now in compatibility mode. Long-jump to 64-bit mode */
>>>>          ljmp    $BOOT_CS64, $bootsym_rel(wakeup_64,6)
>>>>
>>>> +FUNC_LOCAL(bogus_saved_magic, 0)
>>>> +        movw    $0x0e00 + 'S', 0xb8014
>>>> +        jmp     bogus_saved_magic
>>>> +END(bogus_saved_magic)
>>>> +
>>>>          .code64
>>>>  wakeup_64:
>>>>          /* Jump to high mappings and the higher-level wakeup code. */
>>>>          movabs  $s3_resume, %rbx
>>>>          jmp     *%rbx
>>>>
>>>> -bogus_saved_magic:
>>>> -        movw    $0x0e00 + 'S', 0xb8014
>>>> -        jmp     bogus_saved_magic
>>>> -
>>>>  /* Stack for wakeup: rest of first trampoline page. */
>>>>  ENTRY(wakeup_stack_start)
>>> Hi,
>>>    I agree with the code move, it's supposed to be 32 bit so it should
>>> be in the 32 bit section.
>>> Does the ELF annotation help with debug information? Maybe worth
>>> adding to the comment.
>> As said in the commit message, it's simply ELF metadata (symbol type and
>> size).
>>
>> It doesn't interact with debug symbols, so far as I'm aware.
>>
>> It's mainly for livepatching (the ELF metadata is how changes are
>> identified), but we're applying it uniformly to all assembly as a
>> cleanup activity.
>>
> I don't think livepatching this code would be so easy. That code is
> copied to low memory and discarded (.init section) later, so patching
> the code in the current ELF code would corrupt Xen memory.

Indeed.Â  This specific code is out of scope for livepatching.

But, we are (slowly) cleaning up all assembly code to use proper ELF
metadata.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 11:57:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 11:57:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833626.1248800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAT2c-00068h-B5; Mon, 11 Nov 2024 11:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833626.1248800; Mon, 11 Nov 2024 11:57: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 1tAT2c-00068a-77; Mon, 11 Nov 2024 11:57:10 +0000
Received: by outflank-mailman (input) for mailman id 833626;
 Mon, 11 Nov 2024 11:57: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAT2b-00068U-Lc
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 11:57:09 +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 0ff5ed8a-a024-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 12:57:02 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5c9693dc739so6525205a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 03:57:02 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7f0f9sm5067106a12.27.2024.11.11.03.57.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 03:57: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: 0ff5ed8a-a024-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBmZjVlZDhhLWEwMjQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI2MjIyLjEwNzg0OSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731326221; x=1731931021; 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=e1hwumH4XvsSOFed5nuM2KmwymIIeNNj8efL7i247R0=;
        b=lNWkDIr5jEJw6LXCyrvJKlNFrjmsck4T6L4vxtqAYDmMJEjyVM10Iz466ttWS8Zqn5
         vxgoRtmKHLEsLXJCn6Uk+0Uhv9P2uA3Q16d8wX1rxI44u4hnhyuyeQ3xFmYKEiP5Vle9
         I/znXBybDamey+HNtAGm8r3/XQawAHfH3A5Nw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731326221; x=1731931021;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e1hwumH4XvsSOFed5nuM2KmwymIIeNNj8efL7i247R0=;
        b=fa6MaGLRFVnWcymnKygtYbxJO3FPIX9HMrJQHaGP/dxOwFakLfvotU4s4Cli5SuVWb
         ezSN7xt11OoBEWTlffwZhAWWX85l3UO8YpgIUXc1Jrca4wpphxJE64cMJg4lbyHsUI6U
         03ksnHiJcRl7WkKuEj6EFJ3gBms1J+d55wKajGFgOI3OIDd2zxElMzeNlHilhvNjBEG/
         VTklXga3c/CGJQKrOZWpUY0mMuNz1OY4B8rC4dxgiMn4n3cv6QtMsVSfXNaDopNVAuWy
         +MIiyu6XYSGjdS7Lex/29wmiEG8qTVmGRlyXVQGBiMVV7fHQ4lM76e9yZkPqjJ92Mg7T
         qaeQ==
X-Forwarded-Encrypted: i=1; AJvYcCV1Wuxn7MDtaNi1HStIE/u+zB4HMZaPcmadEi/rktsppXKEjNRo3RKiPrG/pyLnn/9ynv36BUgnOjQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQl7rfGvi8776yBRhwDBITXS4r/8Kv/JzxPTbMty+xlNcyI3Ht
	8EB/OX9rmrkS40T8mV6AJXjH4z/VEluwTOK7jYF9e1Xx4KWGSpsxA64VtCtq5dOEmXEiDIsYnK1
	f
X-Google-Smtp-Source: AGHT+IEkxm6SQSC/eaHL33Bd/pWoriVeGypDXqDUnwWjlW+2Csp+nP3XqREZbLfI8RTT/fYcBxgC5A==
X-Received: by 2002:a50:8ac9:0:b0:5cf:9f6:1bbd with SMTP id 4fb4d7f45d1cf-5cf0a45ca4bmr6228695a12.29.1731326221464;
        Mon, 11 Nov 2024 03:57:01 -0800 (PST)
Message-ID: <be9a3ac5-c144-47ad-8e9b-6e1d17526680@citrix.com>
Date: Mon, 11 Nov 2024 11:56:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/10] x86: Delete mach_apic.h
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241108195820.789716-1-andrew.cooper3@citrix.com>
 <20241108195820.789716-11-andrew.cooper3@citrix.com>
 <aab4e7e6-1dce-4f6d-a135-f79dc5a3f2b9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <aab4e7e6-1dce-4f6d-a135-f79dc5a3f2b9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2024 9:13 am, Jan Beulich wrote:
> On 08.11.2024 20:58, Andrew Cooper wrote:
>> All useful content has been moved elsewhere.
>>
>> Clean up the dregs, and remove the entire mach-generic include path.
> What's "dregs" here?

Oh.Â  "The leftovers".

Surprisingly (to me at least), it's not slang.Â  It is most common used
to refer to what remains in the cup when you've drunk a coffee/tea/etc.

>
>> --- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
>> +++ /dev/null
>> @@ -1,24 +0,0 @@
>> -#ifndef __ASM_MACH_APIC_H
>> -#define __ASM_MACH_APIC_H
>> -
>> -#include <asm/apic.h>
>> -#include <asm/io_apic.h>
>> -#include <asm/genapic.h>
>> -#include <asm/smp.h>
>> -
>> -static inline void enable_apic_mode(void)
>> -{
>> -	/* Not needed for modern ES7000 which boot in Virtual Wire mode. */
>> -	/*es7000_sw_apic();*/
>> -}
>> -
>> -#define apicid_to_node(apicid) ((int)apicid_to_node[(u32)apicid])
>> -
>> -extern u32 bios_cpu_apicid[];
> For these two, isn't there some Misra aspect? They're both unused, and Misra
> generally dislikes unused stuff.

Eclair won't complain about either, I don't think.

The macro will just disappear after preprocessing, whereas we've
explicitly deviated Rule 8.6 because of how we use dead-code-elimination
to reduce ifdefary.

>  Whereas ...
>
>> -static inline int multi_timer_check(int apic, int irq)
>> -{
>> -	return 0;
>> -}
> ... this and the other inline function further up clearly have their sole
> users removed here, so are fine without any further text in the description.
>
> Preferably with the description amended / clarified:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Lemme have another go.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:05:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:05:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833636.1248809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATAr-000889-69; Mon, 11 Nov 2024 12:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833636.1248809; Mon, 11 Nov 2024 12:05: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 1tATAr-000882-3R; Mon, 11 Nov 2024 12:05:41 +0000
Received: by outflank-mailman (input) for mailman id 833636;
 Mon, 11 Nov 2024 12:05: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tATAp-00087w-Iz
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:05:39 +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 42232d75-a025-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 13:05:35 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4315839a7c9so42039005e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:05: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-432aa74abb9sm215336815e9.42.2024.11.11.04.05.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04:05: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: 42232d75-a025-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQyMjMyZDc1LWEwMjUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzI2NzM1Ljc4MTQ4Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731326735; x=1731931535; 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=mvlFj8XUFtk4gPbPkVFrS5U7SLM4iaso9MInD1oBQEc=;
        b=RJjN5/Rlzd4VQhAn55WAYzVRsndOjJppAAItzB+5C4tPcU6Yl5yS2+XFsLjMuMIhxa
         qyVywzUEbaaCJtdGSz8r7f+BlrAFvTEXgBNcg+q+VW60bV30oC75LhPVPOeiEpULgfgu
         FFaBuuqsSI4uT3Uvy2DgqJJtWD5HUhJBLKktQ9gvtVyg/1dTfOSRaiM/uDL2SJHlkop+
         YPcl34naVuye1Z2y7qRNfYYzpDhAUDobHyjfxQ5i7crx2JGsjhM7YXTkiILollsxWGF/
         zCHfWJn4SC8gdgLvxZVXNNrfgAKPm3riXMLqs0GG0zmMJeQjqKw5T6uWTUDIwKdB7z7l
         QQZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731326735; x=1731931535;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mvlFj8XUFtk4gPbPkVFrS5U7SLM4iaso9MInD1oBQEc=;
        b=Fp3bMgpIBy9aB/w2ljKQ3YadjBHJgei5kLrhXoQgmQcbQXLLhunhrsYbCqlUb5TBYD
         DMRJgQ8i1scKUR9E9S2ZIcrOmwd/lWRvCUlfsSRwl59s1UAfPiniJg4LBlS3yICUbPNx
         jOstXd9xh6Lc1MGZjlC4avCvXBXoHPIL/FWr+InKu+omVMjcjX1BJMnU5P064VIW3vLG
         eZ8WG/240Ipk5YlkQ6f0pxu1YohvhlWONBRS5Ez/N1jZEfjzBTds3YRPUA1EAkgMf2MI
         Z1e/+HHzPueCUMAcFqv8a9CpdtzBPcRNV8KQIShR3z2Fe5uRMS3jniPZNb/XMtb4e1ll
         C14g==
X-Forwarded-Encrypted: i=1; AJvYcCXVifJn7c+tIzELQeTlw9NcmaO9gqpVlUrrfk6Vw6aRdgWe1iamHXN4v3YNlnRlnF09hepVFVfk69U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyynIYj4l+7k+hbfI5RdcRDIlHxP7FkRh3z6o1tUHDf/pO+PVQY
	3Uq5wRLp2YSvU1T9RG9WKNP15LbWV9GwSpvp5eqU/iB/OzmHflnwidj9GCZk0Q==
X-Google-Smtp-Source: AGHT+IGobLZNgMYCD3IyI54jajPhfbFpJcCZuv3GjIzvHwLoCUn0tYatQ5i7ahER6+EsCjqwlvhkCg==
X-Received: by 2002:a05:600c:3d14:b0:431:12a8:7f1a with SMTP id 5b1f17b1804b1-432b7507c50mr106727485e9.16.1731326735034;
        Mon, 11 Nov 2024 04:05:35 -0800 (PST)
Message-ID: <c565ae31-26a3-405a-b4a3-191be95b38ce@suse.com>
Date: Mon, 11 Nov 2024 13:05:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM
 timer
To: Sergiy Kibrik <sergiy_kibrik@epam.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>, xen-devel@lists.xenproject.org
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
 <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
 <34a2d071-59a8-46eb-a9fd-516cce801343@suse.com>
 <505e0790-10b9-4468-994b-1a3890eaef46@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: <505e0790-10b9-4468-994b-1a3890eaef46@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.11.2024 12:01, Sergiy Kibrik wrote:
> 11.11.24 11:51, Jan Beulich:
>> On 06.11.2024 11:14, Sergiy Kibrik wrote:
>>> Introduce config option X86_HVM_PMTIMER and make pmtimer emulation driver
>>> configurable and possible to disable on systems that don't need it.
>>> Option X86_X86_HVM_PMTIMER depends on HVM option, because this driver is part
>>> of HVM support code.
>>>
>>> Introduced additional check of domain's emulation flags, to cover the case
>>> when user explicitly states the requirement of emulated devices that are
>>> disabled in the build. HVM always require these devices to be present so domains
>>> of this type can't be created when pmtimer or any other emulated device are
>>> disabled.
>>>
>>> Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> What exactly was it that Roger suggested? I don't think it was what the patch
>> does overall, but just _how_ it is being done? That makes quite a bit of a
>> difference, as the former could be read as kind of an implicit ack to what is
>> being done here (and also in the other patch). Issue is: I remain unconvinced
>> that this conditionalizing is actually something we really want/need.
> 
> about a half of this patch is what Roger suggested. These changes were 
> in a separate patch, which Roger suggested to be merged into other 
> patches. What tag should be put in this case then?

The tag itself is fine, but could do with clarifying by way of attaching
"# <brief>", like we also permit for R-b and A-b. Alternatively a post-
commit-message remark would help during review (but notably not once the
change would have been committed, e.g. for archaeologists).

>>> --- a/xen/arch/x86/Kconfig
>>> +++ b/xen/arch/x86/Kconfig
>>> @@ -144,6 +144,19 @@ config INTEL_VMX
>>>   	  If your system includes a processor with Intel VT-x support, say Y.
>>>   	  If in doubt, say Y.
>>>   
>>> +menu "Emulated HVM devices support"
>>> +       visible if EXPERT
>>> +       depends on HVM
>>> +
>>> +config X86_HVM_PMTIMER
>>> +	bool "ACPI PM timer emulation support"
>>> +	default y
>>> +	help
>>> +	  Build pmtimer driver that emulates ACPI PM timer for HVM/PVH guests.
>>
>> Does this really affect PVH guests? Isn't the whole point of the change
>> that in a PVH-only environment this wouldn't be needed in Xen?
> 
> PVH guest may (depending on its configuration) still use PM timer, so 
> I'd say the point is in a PVH-only environment this driver becomes optional.

Hmm, the way I look at emulation_flags_ok() it doesn't look to permit this
as optional. The PVH case is "emflags == X86_EMU_LAPIC".

>>> --- a/xen/arch/x86/domain.c
>>> +++ b/xen/arch/x86/domain.c
>>> @@ -742,11 +742,16 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>>   
>>>   static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>>>   {
>>> -#ifdef CONFIG_HVM
>>> +    const uint32_t disabled_emu_mask = X86_EMU_PM;
>>> +
>>> +#if defined(CONFIG_X86_HVM_PMTIMER)
>>>       /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
>>>       BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
>>>   #endif
>>>   
>>> +    if ( emflags & disabled_emu_mask )
>>> +        return false;
>>> +
>>>       if ( is_hvm_domain(d) )
>>>       {
>>>           if ( is_hardware_domain(d) &&
>>
>> While you commented on this hunk, it didn't become clear what exactly the
>> resulting new hunk would be. I question in particular the change to the
>> #ifdef: If that's changed and the BUILD_BUG_ON() kept as is, the comment
>> also needs adjusting. Yet it would perhaps be better of the BUILD_BUG_ON()
>> was split accordingly.
>>
> 
> This #ifdef definitely wants nicer change. How would you suggest 
> BUILD_BUG_ON() be split?

#ifdef CONFIG_HVM
       BUILD_BUG_ON(X86_EMU_ALL & ~X86_EMU_PM !=
                    XEN_X86_EMU_ALL & ~XEN_X86_EMU_PM);
#endif
#ifdef CONFIG_X86_HVM_PMTIMER
       BUILD_BUG_ON(X86_EMU_PM != XEN_X86_EMU_PM);
#endif

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:06:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:06:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833639.1248820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATBC-00006U-Ct; Mon, 11 Nov 2024 12:06:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833639.1248820; Mon, 11 Nov 2024 12:06: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 1tATBC-00006N-AA; Mon, 11 Nov 2024 12:06:02 +0000
Received: by outflank-mailman (input) for mailman id 833639;
 Mon, 11 Nov 2024 12:06: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tATBB-0008V8-1v
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:06:01 +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 4df9003b-a025-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:05:55 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5c9404c0d50so5450999a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:05:55 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4b5cesm590845866b.72.2024.11.11.04.05.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 04:05: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: 4df9003b-a025-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkZjkwMDNiLWEwMjUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI2NzU1LjYwMDE1OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731326755; x=1731931555; 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=QzFyCeyD/r7MrnVyp/XD6eBAQ7GNqthgR2gAZDuS6Is=;
        b=bMFfFEeK5GkHpvSRRVklReSso9jAy0ZOK+U6MWG4GMVHNKnGmFxQHAZ0wskTV5tLng
         dC5h9woJynG0EmEOYZ/WPXBfBkz6Lz8geV5DVSFmcd1xzk6FcxNmPmO7EwkJjvyTiM5g
         7WA+QS9/e6HK+Jb2qSYBbuDdG3NwXGav5Hc6c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731326755; x=1731931555;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QzFyCeyD/r7MrnVyp/XD6eBAQ7GNqthgR2gAZDuS6Is=;
        b=AwLpUrXgZ4bwkrgbf9d8RTIoan8VD4AqclHcwi6gLzLcMrCsXVTZ8h9MeYaY6/Zek8
         y+ZR5Hm3s+ZqbTo/JKjNazvq7cw6urzKjU7NorneYTH0jifixYpXsRMMYTyyrNQO+D0L
         f3yMsXYIP9eHTPGJLPDW6XwaKHQv479Mm9LuvDkiaGOEiREdNwVmgYd7j2jdpJ3Lw7y3
         OvN0ZzoISnVQzdVK2uEBT4UYNjdWgVLK964t+41zjDlFyvQsA9xIQUFzuqYObp0TMJsK
         0ABEE8U3eFY/dvAK1XZoAe4hF749B7pTKn7NvBIlNuuXR3zQP75reRU1shvIYmcZpXcJ
         DDVQ==
X-Gm-Message-State: AOJu0Yx0+LhbynlLm7m/5G5OQ+1OqMHxZIOlpBh8DKILrLjGQp/oG4jf
	RhTCyj9kTwDXrvCQ80xqohp8nklJL+Q4DRAXgVAiDb+xztYQJkhLuUhP3f8SPxqolcT2pWk8Q+T
	C
X-Google-Smtp-Source: AGHT+IGZfZrK6ZbDTfB+qBhhZOLi8p78U/ZKEjGpuuN5ib0YwiYwEUH0kiO3JfX3UQVMI0/T75Xfiw==
X-Received: by 2002:a17:907:844:b0:a9a:a96a:e280 with SMTP id a640c23a62f3a-a9eeff0ea22mr1247352966b.20.1731326754641;
        Mon, 11 Nov 2024 04:05:54 -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 10/10] x86: Delete mach_apic.h
Date: Mon, 11 Nov 2024 12:05:51 +0000
Message-Id: <20241111120551.987090-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241108195820.789716-11-andrew.cooper3@citrix.com>
References: <20241108195820.789716-11-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All useful content has been moved elsewhere.

enable_apic_mode() and multi_timer_check() are empty stubs.  Remove their sole
callers and drop them.

apicid_to_node() and bios_cpu_apicid[] are entirely unused.

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

v2:
 * Adjust commit message.
---
 xen/arch/x86/apic.c                           |  4 ++--
 xen/arch/x86/arch.mk                          |  1 -
 .../x86/include/asm/mach-generic/mach_apic.h  | 24 -------------------
 xen/arch/x86/io_apic.c                        | 15 +++++-------
 4 files changed, 8 insertions(+), 36 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/mach-generic/mach_apic.h

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 9f3a374e9581..8f192f80b852 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -35,7 +35,8 @@
 #include <asm/hardirq.h>
 #include <asm/apic.h>
 #include <asm/io_apic.h>
-#include <mach_apic.h>
+#include <asm/genapic.h>
+
 #include <io_ports.h>
 #include <irq_vectors.h>
 #include <xen/kexec.h>
@@ -230,7 +231,6 @@ void __init connect_bsp_APIC(void)
     }
 
     printk("Enabling APIC mode.  Using %d I/O APICs\n", nr_ioapics);
-    enable_apic_mode();
 }
 
 void disconnect_bsp_APIC(int virt_wire_setup)
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 1460ecf30b9a..8f8aeda679d8 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -3,7 +3,6 @@
 
 export XEN_IMG_OFFSET := 0x200000
 
-CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-generic
 CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-default
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 
diff --git a/xen/arch/x86/include/asm/mach-generic/mach_apic.h b/xen/arch/x86/include/asm/mach-generic/mach_apic.h
deleted file mode 100644
index 3e17c271d9ac..000000000000
--- a/xen/arch/x86/include/asm/mach-generic/mach_apic.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __ASM_MACH_APIC_H
-#define __ASM_MACH_APIC_H
-
-#include <asm/apic.h>
-#include <asm/io_apic.h>
-#include <asm/genapic.h>
-#include <asm/smp.h>
-
-static inline void enable_apic_mode(void)
-{
-	/* Not needed for modern ES7000 which boot in Virtual Wire mode. */
-	/*es7000_sw_apic();*/
-}
-
-#define apicid_to_node(apicid) ((int)apicid_to_node[(u32)apicid])
-
-extern u32 bios_cpu_apicid[];
-
-static inline int multi_timer_check(int apic, int irq)
-{
-	return 0;
-}
-
-#endif /* __ASM_MACH_APIC_H */
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 2774cd45c091..13daebc10a97 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -31,13 +31,16 @@
 #include <xen/softirq.h>
 #include <xen/xvmalloc.h>
 
+#include <asm/apic.h>
+#include <asm/genapic.h>
 #include <asm/hpet.h>
+#include <asm/io_apic.h>
 #include <asm/mc146818rtc.h>
 #include <asm/smp.h>
 #include <asm/desc.h>
 #include <asm/msi.h>
 #include <asm/setup.h>
-#include <mach_apic.h>
+
 #include <io_ports.h>
 #include <irq_vectors.h>
 #include <public/physdev.h>
@@ -1104,14 +1107,8 @@ static void __init setup_IO_APIC_irqs(void)
             }
 
             irq = pin_2_irq(idx, apic, pin);
-            /*
-             * skip adding the timer int on secondary nodes, which causes
-             * a small but painful rift in the time-space continuum
-             */
-            if (multi_timer_check(apic, irq))
-                continue;
-            else
-                add_pin_to_irq(irq, apic, pin);
+
+            add_pin_to_irq(irq, apic, pin);
 
             if (!IO_APIC_IRQ(irq))
                 continue;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:08:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:08:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833653.1248829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATDA-0000me-OE; Mon, 11 Nov 2024 12:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833653.1248829; Mon, 11 Nov 2024 12: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 1tATDA-0000mX-LP; Mon, 11 Nov 2024 12:08:04 +0000
Received: by outflank-mailman (input) for mailman id 833653;
 Mon, 11 Nov 2024 12:08: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tATD9-0000mL-68
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:08: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 97978eab-a025-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 13:07:59 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4315eac969aso24935225e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:07: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-432aa6b3505sm207043065e9.15.2024.11.11.04.07.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04:07: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: 97978eab-a025-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk3OTc4ZWFiLWEwMjUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzI2ODc5LjE0NzAwNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731326878; x=1731931678; 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=fm3UrvHXJhhf3Iwukz8xDV/O3XfFgWPgNEaLsVIAo9g=;
        b=UlpX/QoFS8OBQbsHgMGWmeGSwfWGOaCMRmqjVTVkyc6iqBhxLWrH4NAElyELMR42Ap
         z6pDSE26/H0W5j402jHz9BstgkFwgQ07p5X4vMkp5jtkJ/q8tXDZGXvFvLbZxuaKBS9b
         IJER1u9LbZ6VLNa60i4KypPQmWQFr4HVBQXVfkNBqqrKV+auVCFwoUVCEFSpF+JX1nCZ
         9lAkqBk61jBM9eHRks7PmcxMN0yvAlhlF4cl85GDP0YXuKwbXXOGeMWsVo9CkguZ1/r1
         6h+QUuUpZViIjwrhfICHSGGBU1n1gk9+zOG78ioZLGewD/1CJn+dKvubjLfkTHdS4dDH
         5pQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731326878; x=1731931678;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fm3UrvHXJhhf3Iwukz8xDV/O3XfFgWPgNEaLsVIAo9g=;
        b=vfWU3dqUYJY1HUiNw0My/qYqVC7U5KJAAIXUqMSYrZjOma1lBg9Vom6ZMAV12g1mhW
         H3v99TppkrHvnAX+yDYYSvFANksUaCDnIrUe/fdcO0M60Ij+Ei3eVXt/bC+pVugxk7J6
         NzwKiN5IFESKwQiHiRAgg4vLzIppXvfRgwGVjxo7Ra1O8DBwKY7rCYScURRVKbceaE79
         xTNPdVTus8gYpk4HLZQuMEC5C9/nZ/aUmAVyo3/vj32J1Ow9RYtTmoVC77sZpqatQZDt
         mZmwyTJr8pWhmntSifDKbJkd2BVtAOraWDLtbCyk+iFwmUgwTlCq0Ym5wudJw9JOg/4l
         XA5g==
X-Forwarded-Encrypted: i=1; AJvYcCWfpoJPnaHzh//kSDWP1yDUq5XpyZpqXHN84Q9l1eT7rqbcrnFnmxvXOkPrHLFRDcdxEY/oc36l9is=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5+KqHFB04JZKQrAISJV1yvhydl8aM+noMuQcZ+8eMx0CZBzyI
	uJbE5583SZXDAVuxB8ZoeVLTaS56ojX5T5tO2iLUafpywcLS8BGo9B22NzI8rA==
X-Google-Smtp-Source: AGHT+IF8bIEHWgFvQ0EIJgidtFiMWs4+H9Zby/7Hv3q/7Tcyf6UGP85pgLNk/k0WufzRtcp+1qv5vw==
X-Received: by 2002:a05:600c:3ba9:b0:431:47e7:9f45 with SMTP id 5b1f17b1804b1-432b686ec45mr112823215e9.11.1731326878575;
        Mon, 11 Nov 2024 04:07:58 -0800 (PST)
Message-ID: <ac35c128-6b65-4202-853f-b2db9e1a59e1@suse.com>
Date: Mon, 11 Nov 2024 13:07:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 04/10] tools/hvmloader: Retrieve (x2)APIC IDs from the
 APs themselves
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241021154600.11745-1-alejandro.vallejo@cloud.com>
 <20241021154600.11745-5-alejandro.vallejo@cloud.com>
 <e8e2385d-b575-4483-ba54-f80c669af9c3@citrix.com>
 <D5JB58LVN4T6.1IUNQ15AHO1RV@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: <D5JB58LVN4T6.1IUNQ15AHO1RV@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.11.2024 12:20, Alejandro Vallejo wrote:
> On Wed Oct 30, 2024 at 11:31 AM GMT, Andrew Cooper wrote:
>> On 21/10/2024 4:45 pm, Alejandro Vallejo wrote:
>>> diff --git a/tools/firmware/hvmloader/config.h b/tools/firmware/hvmloader/config.h
>>> index cd716bf39245..04cab1e59f08 100644
>>> --- a/tools/firmware/hvmloader/config.h
>>> +++ b/tools/firmware/hvmloader/config.h
>>> @@ -4,6 +4,8 @@
>>>  #include <stdint.h>
>>>  #include <stdbool.h>
>>>  
>>> +#include <xen/hvm/hvm_info_table.h>
>>> +
>>>  enum virtual_vga { VGA_none, VGA_std, VGA_cirrus, VGA_pt };
>>>  extern enum virtual_vga virtual_vga;
>>>  
>>> @@ -48,8 +50,9 @@ extern uint8_t ioapic_version;
>>>  
>>>  #define IOAPIC_ID           0x01
>>>  
>>> +extern uint32_t cpu_to_x2apicid[HVM_MAX_VCPUS];
>>
>> Just cpu_to_apic_id[] please.Â Â  The distinction between x or x2 isn't
>> interesting here.
> 
> I disagree.
> 
> While "x" says nothing of interest "x2" does state the width. cpu_to_apic_id is
> ambiguous and I've seen no shortage of code in which it's impossible to assess
> its correctness without going to check what the original author meant; and
> guesswork is bad for robustness. cpu_to_x2apicid has an unambiguous width at
> the meager cost of 2 chars. If you have very strong feelings about it I can
> change it, but my preference is to keep it as-is.

Just to mention it: I'm with Andrew here, and iirc I even had commented to this
effect on an earlier version as well.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:11:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:11:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833660.1248840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATGH-0002jH-5d; Mon, 11 Nov 2024 12:11:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833660.1248840; Mon, 11 Nov 2024 12:11: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 1tATGH-0002jA-2U; Mon, 11 Nov 2024 12:11:17 +0000
Received: by outflank-mailman (input) for mailman id 833660;
 Mon, 11 Nov 2024 12:11: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tATGF-0002j1-Mp
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:11:15 +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 0b28ed7c-a026-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:11:13 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-37d41894a32so2525360f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:11: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-432b0530599sm177370415e9.1.2024.11.11.04.11.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04:11: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: 0b28ed7c-a026-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBiMjhlZDdjLWEwMjYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI3MDczLjA0MTc0Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731327072; x=1731931872; 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=93IDoFpNJkX5Olo6ww+EkNzhD5qJ6XcWxZlQMsJPw8g=;
        b=NpWE6Ebge6Dcllecb6Nz7eOmsoDK59j+iDvf5LY/S+ZhbD1ba+ecmF84XiQqYC7b9B
         LSIDU3au695b87h4EMizcxSuxUa/Wv0rPqaOIINf0TaGDbaUjKPIa70qTj+VwqXX+/Lx
         qeehE3ztlbRx7n3qhkP5m0HdZfy7jMxYEvuhEiiFXdCwpaMFqwq5g8E/+NCOw3zWs3Dt
         SxgYPlB8m0dHRLTlIx8KUPrC1I1F+Dc9iSH+pI4AYJW/I2G1G4QMDnBA0fgiNaFJHQaJ
         KwRpav+VhYS1IBAgdM9s4z3Fy/kzeLdIFE+eppoKGOKRq9llk5nFOuAlj8t/yoiQ0OYv
         TIGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731327072; x=1731931872;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=93IDoFpNJkX5Olo6ww+EkNzhD5qJ6XcWxZlQMsJPw8g=;
        b=XuElrQ+yh+aSpZdv21by2PWV4C+sNaKxwNTt9m227LxGphJAnGTlStI5u2uN7Bo23C
         jyg7VlfRugnx9zVGvxFpYD5eGrBLdt1E5P9RGTvAbORZUnRNA1AbRYRCI4wxHPIEzxoE
         WYix+2I2FEi+HmfJesbv24TKyVEQPAhegsl1JapOGM09jBrUoB3pB49wFBt+DfOVv8zI
         wDMvlOzoUjuHRpkZkdKcQJgDNMY5oc6HpiZv5EgK9oJCVLv7jmRvJlo6wBkh2Pr/dBIl
         KKveMTsSgxfpxFR1lXxm+/ajKnROlr6SOS55L7RK7cm0pg2Y9QHrvo+wbEbNdIaR/jsE
         viIQ==
X-Forwarded-Encrypted: i=1; AJvYcCVBXyv8GOzA92jR1BfhIHr2B4b+QIMRyeys9EfsapFSpxkiGfG+eGFm5fQB2uDkPwLNP2HB/j7HZU8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzsVFgK3mGhYSNOlVTgM/DiWcHnBr9oa9UkgknD4OcJTxydg9Am
	6bjT9sllZzTfGRr8E6n7dlC3sUQ+MvNgPa+lIQ3G0lsHAAC9yjEykK1lQ6dhug==
X-Google-Smtp-Source: AGHT+IFyAv+/QBjsGShCgjYEabtabr4/3tcumlgOVSI43vVys/lvEkjZ4YoyIFTY6mP9rW/BKBs1Sw==
X-Received: by 2002:a05:6000:4107:b0:381:f587:1c2c with SMTP id ffacd0b85a97d-381f5871d05mr8273542f8f.20.1731327072437;
        Mon, 11 Nov 2024 04:11:12 -0800 (PST)
Message-ID: <e0e38922-dd4a-4bbd-aa58-ab00821fa8d0@suse.com>
Date: Mon, 11 Nov 2024 13:11:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/boot: Setup correctly fs segment for
 bogus_real_magic
To: Frediano Ziglio <frediano.ziglio@cloud.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: <20241111111822.6795-1-frediano.ziglio@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: <20241111111822.6795-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 12:18, Frediano Ziglio wrote:
> --- a/xen/arch/x86/boot/wakeup.S
> +++ b/xen/arch/x86/boot/wakeup.S
> @@ -20,6 +20,8 @@ ENTRY(wakeup_start)
>          movw    %ax, %ds
>          movw    %ax, %ss        # A stack required for BIOS call
>          movw    $wakesym(wakeup_stack), %sp
> +        movw    $0xb800, %ax
> +        movw    %ax, %fs
>  
>          pushl   $0              # Kill dangerous flag early
>          popfl

If put here, I think it needs to be accompanied by a comment, to avoid
it (wrongly) being deemed redundant again. Personally I would prefer if
it was put where it's needed, at bogus_real_magic itself (at which
point no commentary would be needed).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:12:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:12:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833669.1248850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATHI-0003It-Ht; Mon, 11 Nov 2024 12:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833669.1248850; Mon, 11 Nov 2024 12:12: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 1tATHI-0003Im-Ec; Mon, 11 Nov 2024 12:12:20 +0000
Received: by outflank-mailman (input) for mailman id 833669;
 Mon, 11 Nov 2024 12:12: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tATHH-0003Ia-Rs
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:12:19 +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 30852ced-a026-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:12:15 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-37d8901cb98so3131917f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:12: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-432b053ff08sm177046635e9.10.2024.11.11.04.12.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04:12: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: 30852ced-a026-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzUiLCJoZWxvIjoibWFpbC13cjEteDQzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwODUyY2VkLWEwMjYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI3MTM1LjcxODI2NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731327135; x=1731931935; 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=3oMaOn2JZZi/iEhm1P2NdKkF6Ub7BkbtadullinisAI=;
        b=G0SYsFtPzaCEsKeSXbEewjfXYdgGkYOkYjRHtL4dqBHDXWP52XFxJSNKiIFrunpB8O
         +DhgPxN/vq5bdSG+xohzk5jsZU6RVQigtNiUoojn9ICqWULwn+qvZECfaVsnYoiiMlhF
         U/57S/SyWuMagPAiZ9DNDtTJ6jvbDeLSvOQappRf0ckwEci7XXRo1acfCNBWVpYcGjzV
         DBm+ReJdHcy8m+5Tz2Kiy367a0lNVXprbF3V2fE6Dv6TDJW4uIgUAvhRz3+icZnNGQrc
         VVrtzD8sR48Jnv9BEx0BDZ/KqNggZDiUaHdbxRUekS/yXdl9tjYoF9L0g1SviJFYvOh4
         lefw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731327135; x=1731931935;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3oMaOn2JZZi/iEhm1P2NdKkF6Ub7BkbtadullinisAI=;
        b=PW/V057utnPzgbb9wbBjGLGBeG4l0HcReL8TnUcF7u8wRUHq1gZ2imlrrWg0Fh0258
         ZiADlTPhzb8cRJOheAHnCwnXBUJCpF7rJFzgtLOaw65uDdYq0s65OU3idowdvEIVOIxk
         g09QT450BEkezfpcyfms5zzBDOjlDXZ9pbDrXy/nxG4Ay6GNTZxtcuhn9ffU8NFU6QBn
         c85UfEf79NfePNSmpj0dA1PoJzEwvzbkfwh9/lSUh6lFCeO7/K3+Ti2EBiiFXeYbHiku
         1By7hrKgAe/eFKVWdjT/ax363d2ucyL4qg8yXRKVk9RDWSdlBCDlTDjGVaLX4MTKKkKB
         52Pw==
X-Forwarded-Encrypted: i=1; AJvYcCUTkljV13Kra7CbeSyDMBD0qGQMPsGqVF1f9G5rCdv45ReLjtGpOn51GwY8Y9x5d23Y/CPWixU3VXM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrYwC1CUuMQCADaBeFslBq0fR/jjG91XvqVI8+nQ/1wHghyTqO
	io+f7nrTbhGpU7nEwK4Z1Vqb8edOThqUkwmw7zeXtL27ngWszG9i4aVRgpeKAA==
X-Google-Smtp-Source: AGHT+IFW7AMjKr10IoC5ZwVlKPFa8SIqYfqsdR1y7hcIENw0M3k9dVc04oovR129hcTOBObguX9BXA==
X-Received: by 2002:a05:6000:4107:b0:381:f587:1c2c with SMTP id ffacd0b85a97d-381f5871d05mr8276592f8f.20.1731327135111;
        Mon, 11 Nov 2024 04:12:15 -0800 (PST)
Message-ID: <89d6aedb-1ccd-4bc1-a75d-065e830ffec1@suse.com>
Date: Mon, 11 Nov 2024 13:12:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/10] x86: Delete mach_apic.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: <20241108195820.789716-11-andrew.cooper3@citrix.com>
 <20241111120551.987090-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: <20241111120551.987090-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 13:05, Andrew Cooper wrote:
> All useful content has been moved elsewhere.
> 
> enable_apic_mode() and multi_timer_check() are empty stubs.  Remove their sole
> callers and drop them.
> 
> apicid_to_node() and bios_cpu_apicid[] are entirely unused.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:14:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:14:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833676.1248860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATJO-0003s7-Uj; Mon, 11 Nov 2024 12:14:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833676.1248860; Mon, 11 Nov 2024 12:14: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 1tATJO-0003s0-Qh; Mon, 11 Nov 2024 12:14:30 +0000
Received: by outflank-mailman (input) for mailman id 833676;
 Mon, 11 Nov 2024 12:14: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tATJO-0003ru-8N
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:14:30 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f45cc4d-a026-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:14:27 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-37d447de11dso3360001f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:14: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-381ed9ea6b5sm12922430f8f.84.2024.11.11.04.14.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04:14: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: 7f45cc4d-a026-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdmNDVjYzRkLWEwMjYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI3MjY3LjgyNDg3NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731327267; x=1731932067; 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=6RCqVszOuC4gGwkt3ZvqqSukGVwmrwfAbKpDhDbKyOo=;
        b=EYbick+ar1CzA8Mq6PLyDQ0hLPDrmLuRHLnAXqsjbLk4vy3ONV5PFadlLAW3AcuLh2
         m1byGOEuHUmsqrhlqJtseNX9CDbEKjncH6V9GR2BLbsnKlmY7tQTKaTkfGSo5TCjmkP6
         0LwVnc3KIiF1PqC1u2XZD512IRz/N8N5wi4v6k705m6zw7hCaTygB+9eQ957hbuuLO3R
         97LTsGXHE1Sy3USY9r0QhUWiN6+G39NdTlcGwSjUXU5FAws9WmALo0yNJ8N9B2eq/8MP
         Vi9T3fS47zfGM0NtfvN8kOopLdvcGaSrCyBajECXHME0Xo9eYrIbyMofNYKzy/wM7E3S
         hqtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731327267; x=1731932067;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6RCqVszOuC4gGwkt3ZvqqSukGVwmrwfAbKpDhDbKyOo=;
        b=dVPf46LYiBZtamrFv6sVwOtGbSDL4QGGRQk6hoXkPpfuQIWARrBvYVjM11by46mXiH
         LPm9PmZZU7sJv23WRFu8bowlf2+zJk9+iAjbsUUE8Tb6WkNbch1PgawJmbOxQJNwpMj8
         dKbSNc6HTf71F5fgzzGHla2syHGbepk8qczDYWSJa9j/z44cZb8pcge3YNZmoE+3/tEA
         k8YfCaOlQZ2e8FBmnjDdrwonNYN8NEJ9H6VBrVioZto2nJUccAqWV4vI0BThZm0Wv//r
         OhTzzdyy4PYDI8nkSbXfIS+DyxRlalwYWbO5Vn29rbmZ7Wg1eP3lIhEWLBfKX7Qz+c4K
         TbAA==
X-Forwarded-Encrypted: i=1; AJvYcCVCSg3Qep4NeTPCoeLlccmw6In4P0BkNLKRca18De0gI5xRxIJUNQK5v2J+S08Dl3cdcpCIrq21rnI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzug5XTZbETHkD7HNgWpPxl4Iw1Y6H0HQuhS4hh2I59RS7bJGEq
	cKgW/48pbXYDV0NGFLi0sbhnjTnFZGcUkJAyIH0CuP/uRiBAdsSQUjXXq6H8qofQoefQZXZ9wms
	=
X-Google-Smtp-Source: AGHT+IELRPqzt+KBurlSrrJGCWAVMERhQ3I0fRpWBpsfUOUqtZ60caKXtkayg9GUcC2TTbbRDoOjOw==
X-Received: by 2002:a05:6000:21c7:b0:381:f443:21df with SMTP id ffacd0b85a97d-381f4432553mr6230115f8f.1.1731327267224;
        Mon, 11 Nov 2024 04:14:27 -0800 (PST)
Message-ID: <a6a51e09-6c1d-472c-8bd1-0fad956e8be4@suse.com>
Date: Mon, 11 Nov 2024 13:14:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/trampoline: Change type of trampoline_phys to
 uint32_t
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241111104902.985611-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: <20241111104902.985611-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 11:49, Andrew Cooper wrote:
> As now documented, this variable holds a page aligned value less than 1M.
> 
> However, head.S fills it using 4-byte stores, and reloc_trampoline() is
> compiled for both 32bit and 64bit, where unsigned long is a different size.
> 
> This happens to work because of the range of the value, but switch to uint32_t
> to make it explicit.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- a/xen/arch/x86/boot/reloc-trampoline.c
> +++ b/xen/arch/x86/boot/reloc-trampoline.c
> @@ -15,7 +15,7 @@ void reloc_trampoline64(void)
>  #error Unknown architecture
>  #endif
>  {
> -    unsigned long phys = trampoline_phys;
> +    uint32_t phys = trampoline_phys;
>      const int32_t *trampoline_ptr;

... this change shouldn't really be needed (but is okay-ish to have).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:21:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833686.1248869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATQJ-0005mN-ES; Mon, 11 Nov 2024 12:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833686.1248869; Mon, 11 Nov 2024 12: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 1tATQJ-0005mG-Bq; Mon, 11 Nov 2024 12:21:39 +0000
Received: by outflank-mailman (input) for mailman id 833686;
 Mon, 11 Nov 2024 12: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=MjDS=SG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1tATQI-0005kw-Dx
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:21:38 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20616.outbound.protection.outlook.com
 [2a01:111:f403:2613::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7df29a84-a027-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:21:35 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB9143.eurprd03.prod.outlook.com
 (2603:10a6:20b:5b2::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 12:21:32 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%6]) with mapi id 15.20.8137.022; Mon, 11 Nov 2024
 12:21: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: 7df29a84-a027-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjE2IiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdkZjI5YTg0LWEwMjctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI3Njk1LjMxMTMyNSwic2VuZGVyIjoibXlreXRhX3BvdHVyYWlAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B2o8hIv5NurcgJ4n94VgSV/JsdqY2hioKVk9/CQq5SVwsjX/5NwNocIJ7FjmjtrEJ8Tj6MFXwPAYpjR6nDJCb+u02sfgs51DvDMB/GiuisIXG/ZECqytUXZbc/KYP+UZpGmi+0hhiq/Qgcmz+bikFttCNP/bas/rXaH0zX/KpCkDz7HZbyyhLyCUSZdr1onne31lp8u5MG+Ip0j/WQAKMmYfmB4zTUPLXMnmYbWvjQON3fqehmzcM/1d7s+axEONrNuK010B9PVbLegxDgI1uM5V2LcStaUHP6DygJ9/50n/2sFgND5W/N1jDvA6gKaphqOhmHixlqAYzKI+35g6Hw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xr+91tTKpUbVd+SK71h0guGfK6SqdYIMAO319HNtcK8=;
 b=nBitSAihMJOHDAGeqesdDnQm8cBZfrHntS1D1WlAcILKFSvOEqV54MHVNW0yyjz4flVzxwrXLCK4NN8YFMS9duNx6Qi7tJ9Zmzrj743jra2fcLSPym7PUL1phFnF6i0K75Xgps4sq24TQWxiTcP/tzAdnIFP+vgi4K6oz/uQT8gUukFu3g6SzUwpI0kuCZF8QrDqHcRJH0qjOuBkrWPGvvRIazMvAZ2GhYpOTblmUnyBeJRYZJgp4XHo7OWw2kTT2xj2h/ZM3hGLxXcR/ofE4vrNVax1F86PnozQqlNE+LUMDt5JYY4KafLWYt7qMCaChsVGn0kTtIHcsRc1jNLD3w==
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=Xr+91tTKpUbVd+SK71h0guGfK6SqdYIMAO319HNtcK8=;
 b=TWOWeLa7rRVKHFXr2q96Jf1/LKyWQvAXPlC4KGVE+qV2uQHKdgkzIW5cYm/1KRKhZyzz4ldV03kTZxKu9jFDTiLbKIr1l1KZQl2Qf80kS6hN+2+hcgXgtrE7or5+XSXnERSRFTTyAu228y1fH0gSrTfmMe4js63HnPuAhd7PsUmvbOvFuZ6uvKsGc+PrXIP57d7Bjn/W0BYNG+EkrJHFxBt9jEB+ThhAIbi1JuVotUkxD8+pc2ZxnMGLMAdlocGZAI4U1baOq5fxDq6gZi5ouwTQlkl33QwfVvdJTeG+OO6rEqJw38f5nh2kZWa2neLoAe8mqQRYW/UuJIKcRQfrsg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Topic: [XEN PATCH] xen/vpci: Fix UB in mask_write
Thread-Index:
 AQHbMCKf4QVge+H9k02dX4ZlwzpGqLKp9EiAgAACIoCAAChLAIAAD1kAgAAEXgCAAB6ggIAABvkAgAewKgA=
Date: Mon, 11 Nov 2024 12:21:32 +0000
Message-ID: <f5d8396b-26a7-476d-9871-63f603b983bd@epam.com>
References:
 <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook> <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
 <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com> <ZytkOP_7nmeSVEYH@macbook>
 <7c57371b-803a-418b-97cb-55e79516eed4@epam.com> <ZyuDwnYj5-uCWrMy@macbook>
In-Reply-To: <ZyuDwnYj5-uCWrMy@macbook>
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: PAVPR03MB10102:EE_|AS8PR03MB9143:EE_
x-ms-office365-filtering-correlation-id: 10fd638a-7915-4035-ca9a-08dd024b60bd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SGFsRXVGcTdzUkU5WW9GT3A1eFIrTEFzbktBTTNic0R5WEs0UVNJVTNJV3hE?=
 =?utf-8?B?QWh4bnRENmJVT1kvOVd5ZXhKbzk5Y2hyY3IwU0lRN1BiY3NQZkRxVzg3a3Qw?=
 =?utf-8?B?NmZsbG4vOG9mTndIeE9SRWdOZitWZjI4cjFLVnNiSWVRaXYwQXJjazFjV2xW?=
 =?utf-8?B?VVppMVRGaXVJWE5FSnBGRVdrcW0zN0UyK0ZhR01FQkVjN2ZtL3pzTFVJTzlX?=
 =?utf-8?B?cjVLY1lSRzZVakUyN0czTUgrbmlMQXlUTVB2Mkpta29ZMUIvMFBZMEZHZlJu?=
 =?utf-8?B?cFpON2ZRRFA3NDErMHN3Y2lUekhILzZmYW5IdWwwMnZ6bU5aeUhXVUtlck5x?=
 =?utf-8?B?MmIxRUZXTWY5QmxzbkFmZTI3MlVxSUhmeGdYdldaWS9PS3d2RHppZkRPL0hD?=
 =?utf-8?B?TXkxOTF5WjI1OG9TY3huL2xld04zb0crSlNyaHQ2VlBWb1o0MU5iMTg4cFVS?=
 =?utf-8?B?dktlNXk0MXBNbFlUZmtwcUs5V0o5WXd5NFJDc1JGK2JiQjhVVnpMU29ZL1hT?=
 =?utf-8?B?a1pnQnNQcXJOTngxVC9weDNPREdDRit0QWpBZVV6d3pvM2VmaWVqOFNVWjFY?=
 =?utf-8?B?YTJoODJ2cUtUR2VZQ1Q0QVlZWHAyQkJ6Sm9LVHpQWjZVSFNsOHV2bkc5REV0?=
 =?utf-8?B?dEpoNDN1T0F0eHdSNWM3V3ZSVUlZLzVBM1dtNnVGOGx5YnpVZ0cvbDZPRlVQ?=
 =?utf-8?B?RmVaNERiYlJwakpJNVRQdld6WExVWGMwa1Bob0R4UCtmQ0NyTjk4cGpoci9W?=
 =?utf-8?B?alI3NlNpc1FxV0ltRlNCRTVWQjFQeUxoL1N0Tm5rVjhSNXpYWFNTaDBUdnVs?=
 =?utf-8?B?S2dkT0ppNElVVzRyMEVHK3I0TVczaGxuWlhuY0F6bVZ2bFA2ZDBuR29pRFBB?=
 =?utf-8?B?dU41akxoY25lL0tKSlZ6MXhaNHBTQ3Mza1FJVm9IOSt1U0FmSUMxc0Rrb010?=
 =?utf-8?B?QkZ3U052QUVodE1XOHRmQjBSYm1YYm91NEQrcWV0TW4ya3hoNFFiUVYyaFN5?=
 =?utf-8?B?MHAwZW53SGV6OGo1YjFGbmcvYWdEK3Fxc3RQYjk4S2JmOWJYT3BYWjdZcnlm?=
 =?utf-8?B?b1A5Z3ZscUx6VURTV2NPbzZpQmVzc2JWMXdTeG5hNlhuOUp6bUZmTWZ2V3Ri?=
 =?utf-8?B?NzdKcGc0NmR5SWpSRXdsbFQ4RGZrUWFEQzBZK0FMWmhXL2hWRUVMS0VsYVdx?=
 =?utf-8?B?QzFPRlJLbDZTY0xHcFJXbGZaQUplWUczYjNhYzZCWUc5VFVDVU9qbHNnSVFy?=
 =?utf-8?B?ZkFXa0tUdzR2N2p3VEZQMmhqbTFOVm9SZWJnalJhdE0zUkw3ak5WdUdQSWlv?=
 =?utf-8?B?dENEdlptWjZubkRVWGRENC9RaGFzN3hSQTFLdFViTGtvanlIdlp4MGJvUU5W?=
 =?utf-8?B?Tld0S3EvZlZXQ2EzNk01RWxYRC9TNnJ6b1BLZndBTE9BL1BNNlJjWmVEUGpi?=
 =?utf-8?B?c21icEhHWHNNSjIwc2x5YTZZMDdaMlUzRVQ4aHZPVCtqeVlPT2tET2Z5aURu?=
 =?utf-8?B?a0pQSFZxSVNzR1J3Q0VjcFVTYk4venhvWnp4Y0ZnZkFVMldXVVd3K1FyR1d4?=
 =?utf-8?B?dGgzejF1SXAyU2FiSDhoYjNFdzNpMzl5RlpzelgvYkZ3VUNTZlZzeWRqK1Vw?=
 =?utf-8?B?b0JhZDJ5NnpRY29LTURxWWY5SnhRVmVvTmhuNkg4RkRJUVRwWjByLzZudVZW?=
 =?utf-8?B?cy9YM0V5bkZkYlpjZStoK1ozNXE5aEoyQkJhQzdTR2t2Zi84Qk9hcml5eGRz?=
 =?utf-8?B?VFM5OS9Ea3c3SmlOb1dFd2lsRkkrVnZCSDJvLzc3WjBBcFViaUR4S0lTMkY0?=
 =?utf-8?Q?SydI0G8p0niffq3eiuS7m1w1qMYpS5rBlT0z0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?S1FLbFBrWkxsdG9abzg0Nyt4ZmhYdllqTWJlTVVUWThQZkhQMk0vN01oNEkx?=
 =?utf-8?B?MGZDV2h1VDFXWHBpQnd0TGZ1dVV3MWpRMEYxN1pKeWovRDFqV2JNSnhhQmsv?=
 =?utf-8?B?RnBWdGEwcFJ3NEZad1N5c2ZJLy9VK1FQeFdXcHcycUgrUWdDOGZaM2N0ekEw?=
 =?utf-8?B?WmJzd0tBMVJvWDBEOGU4dk1OczB0bVJ1YXcwZXo0eXhIbXJpSzY2ZzR4eUwx?=
 =?utf-8?B?UCs5ZS9sbjhRcUNEckJSR3l1dm9FaDRzN09xRXdQbWkwZEJ2U0Z6TkxHR0Rn?=
 =?utf-8?B?YzlvaFA5NDhPNGJBVm5Ja0FIL2RuQ0NSSmh0UVhjaVNPMkNZWi9saWNjaVVx?=
 =?utf-8?B?bVVKUDhtbmdtdUd1UzFhU3pnb1lGSlZZTElhVkVFTzNrdDNSaGlxRElWZnFv?=
 =?utf-8?B?eGh3MGxUL1dKWVpjdk5XOElzNUY2b2Rmd2N3Vm5ybXNsem9wZVFaYTFXTysx?=
 =?utf-8?B?Z3B5emwwRS93QzZRRTErYnV0bEI4eWJraXUyaTkyMmZLV2Q3c29SZmt2bzkw?=
 =?utf-8?B?TnMwUU5BK2dockFSQzFoRWthbmtkMXlsbXVrVm51NlJlbDFqOEE1YmY0cnpj?=
 =?utf-8?B?bUgxNDdOWXpycWo4UFFwOWlJUXJSNjB1RW1FOER4aVNzODBVWVlSWGVwcVpW?=
 =?utf-8?B?MzVQMC85TUZWMXNQV3oyUVBLZkJMWFFoWk1qZ1FZVHB5UUswODk0dTRhcDNs?=
 =?utf-8?B?ZTBESml5QnYwV0JFV0IxUWtEelZ0Q3NsSmZrSVRhRDNzOVR5bHhHejVNbFV4?=
 =?utf-8?B?S1duMDFCV1F0aXFuanBjVzZCYW1vUVUzMXB1eE9yQlRISjA4Zk9YQ3hsc2NE?=
 =?utf-8?B?QXMyWXZxaUo1L3drcG1reEJxRG9EQUpNTlBGK0tmOVNvRVV5a0NzMFlNYk5B?=
 =?utf-8?B?blhHNXZzdDFQaUJySTFGak82aUo2ZmtDNmFPUTgvMkQ0NkVDL2lQWHlsR2NN?=
 =?utf-8?B?aURJTkkrVHRJWUxhTkdCaXhJd1p1RDJxUWFJTVl5N29oRkdndnVuQ2tuTjJj?=
 =?utf-8?B?cnZtbTdXa0pBYlNrMEVZeTNNWFFLTlU0LzZPQ0VTazg4RkI1Z2xJSW9SZW9V?=
 =?utf-8?B?YVJyaDlnNHQ3ZWxOemdSRzhkNU5tb1R4Wko5aFozVzlqS3VCbkhIMSs1OVpN?=
 =?utf-8?B?TkpNRTZXWFlnVWRQdHl2Y1l2RUw0bjVqRzg0a2hGM2ZaUitzNWZyaW05MGJD?=
 =?utf-8?B?NU1YL0FYZ2lTNHNER1dhamhEbzdUTUtzZlh5bnpMZWhCdWNKNnB5ZWM5YkZl?=
 =?utf-8?B?RjlWSTI0cDlocEpubWFnSG5YRFQ4VDZuclc3YkxPcUVZT0FseGcwTXE4Q3hU?=
 =?utf-8?B?b3ptd29qMkltWUFIbUxmU2tGNzBVTGlmMmdZNjhDdGtnRjJOeTBsOVBJODBW?=
 =?utf-8?B?R1czVysrZmZvQVF4V21pWVR2KzQwSkxsZkJsOHA2eUFvMDR3VmJRdXpLeC9q?=
 =?utf-8?B?WWZncURhc3lpWG1vYzhESnNMYVNuNStpNGxXZXRKWUhPcE5LYzVwelg5bEFo?=
 =?utf-8?B?TFlHRU9rcFEvd1JWT2VSWnZiUWdNV2RYRTZsZEt5b05qYWp3dWxIeFhJTnh4?=
 =?utf-8?B?eFpOWWc4Ync4andQbWpxYUlZekFJWnlMbXYyNHQ2QVNnSnlnNkZ3NkhSekls?=
 =?utf-8?B?UTlkSWM5OXlRSkJVd1h4Rm5UNzFvdXMxUVJZU3I5RzhtVmJaN3lkNEMxM3R0?=
 =?utf-8?B?YVNxaS81di9YUW9CNFI3a1o2aTRQOHBtNkdkalFxVEx0R2hjL0FNT1BGRkUv?=
 =?utf-8?B?VmxrZXZSK1o5UEw2ZUxhaXAvNG5tcS9WZk51TE9BeHRiUFIwc3FnK1I4ZUVC?=
 =?utf-8?B?ZTRyamN4cGJ1d2Y5U294TzVIVzJhYWdzTzZrK242VWd0N0tVcDBTait0MXpu?=
 =?utf-8?B?d2J1aThNVU42L1ByME5lUi9zTWxPRkRjUXo3NTN4bnVPdlZSQjM4VVRzS3E2?=
 =?utf-8?B?dDBQRVlBMWZ5OERrc21IMFdFT0EzOFIzZ3BxdkM5LzJoOFFMdzQya1craEls?=
 =?utf-8?B?Y0pONStFTU50WGxxdGVQVDZiSVROM29mSklHc2p5S1BtbXRoWjA4MTV0dXp2?=
 =?utf-8?B?bnJYMXFnNEkxZHM5cGRvaklPaXY1cXVDL0pqR3RQSnJQU3p5RFpjRHJzYUhN?=
 =?utf-8?B?d2dGRlBwV1FhRjhCR3MyOVlLMWkrNDA1M1ppNGZrQmZaZ0RQK3VrR0NSc1pa?=
 =?utf-8?B?bXc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3D6E2148129E73438A13EEE8EC69FA19@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: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10fd638a-7915-4035-ca9a-08dd024b60bd
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2024 12:21:32.5282
 (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: NlQVBMLwvklmICUESRwbgFXe38H8UHeK2omGoT//QkFz8PDNJIP2kZ+Vx5Q5phCpYFdNRI4zqec2KT7hZYcfrA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9143

T24gMDYuMTEuMjQgMTY6NTcsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IA0KPiBMZXQncyB0
cnkgdG8gZmlndXJlIG91dCB3aGF0IGNhdXNlcyBtc2lfbWF4dmVjIHRvIGJlIDAgaW4geW91ciBj
YXNlDQo+IGFuZCB0aGVuIHdlIGNhbiBzZWUgaG93IHRvIGJldHRlciBkZXRlY3QgdGhpcy4gIElm
IG1zaV9tYXh2ZWMgbmVlZHMgdG8NCj4gYmUgY2hlY2tlZCBpdCBzaG91bGQgbGlrZWx5IGJlIGRv
bmUgaW4gaW5pdF9tc2koKS4NCj4gDQo+IFJlZ2FyZHMsIFJvZ2VyLg0KDQpIaSBldmVyeW9uZSwN
ClNvIEkgaGF2ZSBkb25lIHNvbWUgbW9yZSBpbnZlc3RpZ2F0aW9ucywgYW5kIEkgdGhpbmsgaXQg
ZmluYWxseSBtYWtlcyANCnNlbnNlLiBUaGUgcmVhbCBjYXVzZSBvZiBteSBjcmFzaGVzIHdhcyBh
IGxvbmctc3RhbmRpbmcgYnVnIGluIHlldCB0byBiZSANCnVwc3RyZWFtZWQgdnBjaSBwYXRjaGVz
IHdoZXJlIHRoZSByZWdpc3RlciB2YWx1ZSBhbmQgb2Zmc2V0IHdlcmUgc3dhcHBlZCANCmJ5IG1p
c3Rha2UuIEFuZCB0aGlzIGJ1ZyB3YXMgaGlkZGVuIGZvciBhIGxvbmcgdGltZSBiZWNhdXNlIG1h
c2tfd3JpdGUgDQpza2lwcGVkIGFjdHVhbGx5IGRvaW5nIGFueXRoaW5nLCByZXNwZWN0aW5nIHZl
Y3RvcnMgPSAwLCBzbyBJIGZhaWxlZCB0byANCnNwb3QgaXQgZnJvbSB0aGUgZ2V0LWdvLg0KDQpS
ZWdhcmRpbmcgbXNpX21heHZlYyB0aGVyZSBzZWVtcyB0byBiZSBhbiBpbXBsaWNpdCBkZXBlbmRl
bmN5IGJldHdlZW4gDQpDT05GSUdfSEFTX1ZQQ0kgYW5kIENPTkZJR19IQVNfUENJX01TSS4gSWYg
SEFTX1BDSV9NU0k9biwgdGhlbiANCnBkZXZfbXNpX2luaXQgZ2V0cyByZXBsYWNlZCB3aXRoIGEg
c3R1YiBhbmQgbXNpX21heHZlYyByZW1haW5zIDAsIGJ1dCBpdCANCmlzIHN0aWxsIHVzZWQgaW4g
Y29udHJvbF93cml0ZSB1bmNvbmRpdGlvbmFsbHkuDQoNCkkgc2VlIHR3byBwb3NzaWJsZSBzb2x1
dGlvbnMgdG8gdGhpczogZWl0aGVyIGFkZGluZyBhbiBleHBsaWNpdCANCmRlcGVuZGVuY3kgb3Is
IGlmIG1zaV9tYXh2ZWMgY2FuJ3QgYmUgMCBhbnl3YXksIGFsd2F5cyBpbml0aWFsaXppbmcgaXQg
DQp0byAxLiBCdXQgSSBhbSBub3Qgc3VyZSB3aGljaCBvbmUgaXMgYmV0dGVyLg0KDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:51:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:51:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833696.1248888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATtV-0002cA-NN; Mon, 11 Nov 2024 12:51:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833696.1248888; Mon, 11 Nov 2024 12:51: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 1tATtV-0002c3-K4; Mon, 11 Nov 2024 12:51:49 +0000
Received: by outflank-mailman (input) for mailman id 833696;
 Mon, 11 Nov 2024 12:51: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=dX8x=SG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tATtU-0002bx-Jr
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:51:48 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b52ddb92-a02b-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:51:45 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2f7657f9f62so34817941fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:51:45 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff179d7ec8sm16933201fa.109.2024.11.11.04.51.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 04:51: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: b52ddb92-a02b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzEiLCJoZWxvIjoibWFpbC1sajEteDIzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI1MmRkYjkyLWEwMmItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI5NTA1LjYzMTY0Niwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731329505; x=1731934305; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=MI8OJUJG4eHDYLWxnT5Ae0wZm0qRX8ov5qqkOjKqy4Y=;
        b=DRzgGL3U4482eu4bvDbqWa0iq0QXv4kuISY+92S+QVi/e0bK2yuvRefKxeLXS2Lw27
         2a/PRRZFGEQAHFmF93pHpvB7yWqy9dNlj/BT4fN8SwJZQAbN/HUfrc7ZkypKdaE3rFC6
         mb3sbcjRxk4XoZ/U7TZ3QYi9MaFkv/nJlZ9oT4epTSz2Q/F2pafp526EynTKpPaOveZp
         pz4k8iqgW5iStYqy6Tv4A1L5S0pMCZKIdrMvmMEgyZSwV/x09rnR7pg7QUGZSzjVqXpk
         sJ7XyMqfSfIKNASiUi2GGez88mFGgZXzmuLYpK/bzAii7A8dRXM58+90JBjZxZpS3WGG
         9WNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731329505; x=1731934305;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=MI8OJUJG4eHDYLWxnT5Ae0wZm0qRX8ov5qqkOjKqy4Y=;
        b=b0BCTFgUKqoIuq+WPRggfWk2QQOkJDM76DiZP834ioghEWbbdbbaqgxG0srlsEe9/d
         OxtLYF5jT6GDMvjlkXTVVlXzTMn7k0z2sRsTTbRYeYSNSp9M/uXoDeGp4Jig/NOeYAzY
         w8kNHxR71DIQ4zJtvNxcTMzbUQ/gaea7CBl7vadlyLYSPtJelyXQNIN6HMG2ZUjfUmkK
         x17fkBx8qoOGMmA1jzKGaN+D8jY2OXCT2iwLzAqyiZG2idoC5UsMaRo8fmMlCY5/9JzP
         N2dt29dQfet2Yj9+3GUSX0V0fZ6kV6DGqxrzZzr2MmWZ6N6khejSUoN2qvGj+eOt2iUr
         ngOw==
X-Forwarded-Encrypted: i=1; AJvYcCWCDHHQFS3VxjyMkxcaVHISqbG05RIAIAv5O5L4WRPm94IUIshuyKCsphTyF+1SWD56fpMG5jbVu2A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBbJtuZ+1HoRTnJ5sRXfffBc//+Jv06PkPVXfxZpdwJHwG7CoZ
	z7m+HyoyKUXE1RocNI36/bAqEysosA4+HhiIX2Bb/TGxvZYZC5K//ji9wA==
X-Google-Smtp-Source: AGHT+IGcC5IxT04hUGYgeB0tVe2RNeOCu+t92deSs72a5ydTiwVAS3tQ0jHDt72cvd4I4KTeyoZuhg==
X-Received: by 2002:a05:651c:512:b0:2fb:4b0d:9092 with SMTP id 38308e7fff4ca-2ff201e6ddfmr44658131fa.1.1731329504553;
        Mon, 11 Nov 2024 04:51:44 -0800 (PST)
Message-ID: <8af72f722c96bae029ee8278c9164e3bc5474272.camel@gmail.com>
Subject: Re: [PATCH v4 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Mon, 11 Nov 2024 13:51:43 +0100
In-Reply-To: <9eeb11a3-df72-4a77-9235-6a872b365ecd@suse.com>
References: <cover.1731069334.git.oleksii.kurochko@gmail.com>
	 <2a9262165c71733792974f5e27795625013bc656.1731069334.git.oleksii.kurochko@gmail.com>
	 <9eeb11a3-df72-4a77-9235-6a872b365ecd@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Mon, 2024-11-11 at 11:29 +0100, Jan Beulich wrote:
> On 08.11.2024 13:51, Oleksii Kurochko wrote:
> > @@ -37,9 +42,9 @@ static inline void *maddr_to_virt(paddr_t ma)
> > =C2=A0 */
> > =C2=A0static inline unsigned long virt_to_maddr(unsigned long va)
> > =C2=A0{
> > -=C2=A0=C2=A0=C2=A0 if ((va >=3D DIRECTMAP_VIRT_START) &&
> > +=C2=A0=C2=A0=C2=A0 if ((va >=3D directmap_virt_start) &&
>=20
> Is this a valid / necessary change to make?
You are right, this not valid change, va value is DIRECTMAP_VIRT_START-
relative.

>  Right now there looks to be
> nothing immediately below the directmap, yet that would need
> guaranteeing
> (e.g. by some BUILD_BIG_ON() or whatever else) if code builds upon
> that.
It is not really clear how to check that nothing below the directmap is
present/used. But IIUC there is no need for this check if properly
correct the condition above.

>=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (va < (DIRECTMAP_VIRT_=
START + DIRECTMAP_SIZE)))
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return directmapoff_to_madd=
r(va - DIRECTMAP_VIRT_START);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return directmapoff_to_madd=
r(va - directmap_virt_start);
>=20
> FTAOD - no question about this part of the change.
>=20
> > @@ -423,3 +429,140 @@ void * __init early_fdt_map(paddr_t
> > fdt_paddr)
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 return fdt_virt;
> > =C2=A0}
> > +
> > +vaddr_t __ro_after_init directmap_virt_start =3D
> > DIRECTMAP_VIRT_START;
> > +
> > +struct page_info *__ro_after_init frametable_virt_start;
>=20
> As for directmap_virt_start - perhaps better with initializer?
Do you mean to initialized by NULL or frame_table?

If to initialize by frame_table then the if-condition won't work
properly in setup_frametable_mappings() ( but I think that this
condition could be dropped as setup_frametable_mappings() is supposed
to be called only once ?! ). And you mentioned about this condition
here ...

>=20
> > +#ifndef CONFIG_RISCV_32
> > +
> > +/* Map a frame table to cover physical addresses ps through pe */
> > +static void __init setup_frametable_mappings(paddr_t ps, paddr_t
> > pe)
> > +{
> > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0 unsigned long nr_mfns =3D PFN_DOWN(aligned_pe - ali=
gned_ps);
> > +=C2=A0=C2=A0=C2=A0 unsigned long frametable_size =3D nr_mfns *
> > sizeof(*frame_table);
> > +=C2=A0=C2=A0=C2=A0 mfn_t base_mfn;
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( !frametable_virt_start )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frametable_virt_start =3D f=
rame_table -
> > paddr_to_pfn(aligned_ps);
>=20
> If you make this conditional, then you need an "else" (or something
> that's
> effectively one) just like you have in setup_directmap_mappings().
> Like
> for the earlier assumption on ps being zero: Assumptions you make on
> how
> a function is used want to at least be self-consistent. I.e. here
> either
> you assume the function may be called more than once, or you don't.
...

Do we have in Xen something to be sure that the function is called only
once or I have to come up with static variable inside the function?

>=20
> > +static void __init setup_directmap_mappings(unsigned long
> > base_mfn,
> > +=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 unsigned long nr_mfns)
> > +{
> > +=C2=A0=C2=A0=C2=A0 static mfn_t __initdata directmap_mfn_start =3D
> > INVALID_MFN_INITIALIZER;
> > +
> > +=C2=A0=C2=A0=C2=A0 unsigned long base_addr =3D mfn_to_maddr(_mfn(base_=
mfn));
>=20
> Seeing this and ...
>=20
> > +=C2=A0=C2=A0=C2=A0 unsigned long high_bits_mask =3D
> > XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
> > +
> > +=C2=A0=C2=A0=C2=A0 /* First call sets the directmap physical and virtu=
al offset.
> > */
> > +=C2=A0=C2=A0=C2=A0 if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 directmap_mfn_start =3D _mf=
n(base_mfn);
>=20
> ... this (and more further down) - perhaps better to have the
> function take
> mfn_t right away?
Agree, it makes sense. I'll update correspondingly.

>=20
> > +=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 * The base address may not =
be aligned to the second level
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * size in case of Sv39 (e.g=
. 1GB when using 4KB pages).
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * This would prevent superp=
age mappings for all the
> > regions
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * because the virtual addre=
ss and machine address should
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * both be suitably aligned.
> > +=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 * Prevent that by offsettin=
g the start of the directmap
> > virtual
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * address.
> > +=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 directmap_virt_start -=3D
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (ba=
se_addr & high_bits_mask) + (base_addr &
> > ~high_bits_mask);
>=20
> Isn't this the same as
>=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 directmap_virt_start -=3D base=
_addr;
>=20
> i.e. no different from what you had a few revisions back? I continue
> to
> think that only the low bits matter for the offsetting.
IIUYC you mean that "(base_addr &
~high_bits_mask)" should be dropped then I agree. Thanks for noticing
that.

>=20
> > +=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( base_mfn < mfn_x(directmap_mfn_start) )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("can't add directmap =
mapping at %#lx below directmap
> > start %#lx\n",
> > +=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 base_mfn, mfn_x(directmap_mfn_start));
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn=
),
> > +=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 _mfn(base_mfn), nr_mfns,
> > +=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 PAGE_HYPERVISOR_RW) )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("Directmap mappings f=
or [%#"PRIpaddr", %#"PRIpaddr")
> > failed\n",
> > +=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 mfn_to_maddr(_mfn(base_mfn)),
> > +=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 mfn_to_maddr(_mfn(base_mfn + nr_mfns)));
>=20
> Maybe worth also logging the error code?
I am not really understand why do we need that as the use will see what
is the issue in the message inside panic().

>=20
> > +void __init setup_mm(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 const struct membanks *banks =3D bootinfo_get_mem()=
;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_start =3D INVALID_PADDR;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_end =3D 0;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_size =3D 0;
> > +=C2=A0=C2=A0=C2=A0 unsigned int i;
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * We need some memory to allocate the page-ta=
bles used for
> > the directmap
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * mappings. But some regions may contain memo=
ry already
> > allocated
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * for other uses (e.g. modules, reserved-memo=
ry...).
> > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * For simplicity, add all the free regions in=
 the boot
> > allocator.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 populate_boot_allocator();
> > +
> > +=C2=A0=C2=A0=C2=A0 for ( i =3D 0; i < banks->nr_banks; i++ )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 const struct membank *bank =
=3D &banks->bank[i];
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_start =3D ROUN=
DUP(bank->start, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_end =3D ROUNDD=
OWN(bank->start + bank->size,
> > PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned long bank_size =3D=
 bank_end - bank_start;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_size +=3D bank_size;
>=20
> As before - you maintain ram_size here, ...
>=20
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_start =3D min(ram_start=
, bank_start);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_end =3D max(ram_end, ba=
nk_end);
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 setup_directmap_mappings(PF=
N_DOWN(bank_start),
> > PFN_DOWN(bank_size));
> > +=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0 setup_frametable_mappings(ram_start, ram_end);
> > +=C2=A0=C2=A0=C2=A0 max_page =3D PFN_DOWN(ram_end);
> > +}
>=20
> ... without ever using the value. Why?
I started to use bank_end and bank_size in v2 and ram_size isn't really
needed anymore.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:53:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:53:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833706.1248898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tATvI-0003CT-55; Mon, 11 Nov 2024 12:53:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833706.1248898; Mon, 11 Nov 2024 12: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 1tATvI-0003CM-2P; Mon, 11 Nov 2024 12:53:40 +0000
Received: by outflank-mailman (input) for mailman id 833706;
 Mon, 11 Nov 2024 12: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tATvG-0003CE-FI
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:53:38 +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 f637e1cf-a02b-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 13:53:34 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-37d49a7207cso3096378f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:53: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-381ed997391sm12975712f8f.45.2024.11.11.04.53.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04:53: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: f637e1cf-a02b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY2MzdlMWNmLWEwMmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzI5NjE0Ljg3OTY2NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731329614; x=1731934414; 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=2K8ajky7VvKSbH7HaGTHDR3nI6ATcT1GssVFep9MCu8=;
        b=ZzFT1Z+IVQl6KSOKXP8CM8Ffa9XTUsIuf/6HcONqUnj/TOBkaJiWpPg2Kqs2jHkOoN
         6lLz2Nn00k5CN+XLTOsWr3NlnhpHbl4lj16lx1g0xeuv52jvzPffHLLJyRFK15FOatKg
         6gX9L1+bT0O5lnsGR2Lxer96u3HF6lM1fhp3nzQNLBwfPTEE3PGjb5KrnIDomEZ/8xt/
         3E77Bx1FxuDd5gxzg0XlIe7x8hrAlv93bDho6D4OxnOMGX/Af4DB+IpNa1wLG8ZnIEgi
         6mQu4ZYrNauoSXQYKlO252A0a4WfBGtk+CI3rY0AQWxS4tsFIZA0fLCgXKrCDH1CbdFV
         mUUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731329614; x=1731934414;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=2K8ajky7VvKSbH7HaGTHDR3nI6ATcT1GssVFep9MCu8=;
        b=h5aXu6eVgCkZ5Lk8GE7vCb5Oc1U9dGuiOak4ma6JF3ZLNo9RAICHN5Tho7IkTELXYp
         OZO5MQX7ceLOSCyeSA5JpBTlCG1DbpTcZOI6o5Z06uj9OxzD0xJUMC9fnomD7GNw6Ug6
         F7Vt66SJCSoJh0bF3HPbaweZdDceGc0v4wObUm9d3y/acC9kTxtzQx4lcwjQ9yxMxUpD
         3J/HGOIku7PK+6nyFk199Q46RFnjWXeTJywWzYb5MS48oysJXAEpxbCVSFleYqEXzZLl
         IBO0sUV7U0yVpcDY9QToiRGVMzowy1H0wzoKw/JRdaangvOfcUICfZw1S85xbHvFGaWF
         1oBw==
X-Gm-Message-State: AOJu0YxvcUN9kzElucSdE6gxVVvIuXlK8/1Xg0eHOC4wAOAiEUbiuXVd
	N9R+/R9z4+QdGc/zXwuCgwWyhL5Tn75crIkWBra4WnjQs0opzq2efLKoa53oYkQPN4Yo9o5E2Nc
	=
X-Google-Smtp-Source: AGHT+IGIZuBpffT5/xYfsCDMGfeLlC90dhRotiiwRJILSDmcus0w2W1BQM5ow8K2uyLlS5YNbBWRqg==
X-Received: by 2002:a05:6000:1a85:b0:37d:4fe9:b6a4 with SMTP id ffacd0b85a97d-381f1885e89mr11583137f8f.50.1731329614274;
        Mon, 11 Nov 2024 04:53:34 -0800 (PST)
Message-ID: <a62146c9-ca82-4024-b5fa-fd3129f308fd@suse.com>
Date: Mon, 11 Nov 2024 13:53: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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] mm: adjust _xvrealloc() declaration
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

... to match its definition parameter-name-wise, to please Misra C:2012
Rule 8.3.

Fixes: 9102fcd9579f ("mm: introduce xvmalloc() et al and use for grant table allocations")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
While this gets the decl out of sync with _xrealloc(), changing the
definition instead would be a more intrusive change to make: The
function already has a "ptr" local variable, which would then need
renaming first.

--- a/xen/include/xen/xvmalloc.h
+++ b/xen/include/xen/xvmalloc.h
@@ -52,7 +52,7 @@ void xvfree(void *va);
 /* Underlying functions */
 void *_xvmalloc(size_t size, unsigned int align);
 void *_xvzalloc(size_t size, unsigned int align);
-void *_xvrealloc(void *ptr, size_t size, unsigned int align);
+void *_xvrealloc(void *va, size_t size, unsigned int align);
 
 static inline void *_xvmalloc_array(
     size_t size, unsigned int align, unsigned long num)


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:58:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:58:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833714.1248908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAU05-0003nv-NP; Mon, 11 Nov 2024 12:58:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833714.1248908; Mon, 11 Nov 2024 12:58: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 1tAU05-0003no-Jt; Mon, 11 Nov 2024 12:58:37 +0000
Received: by outflank-mailman (input) for mailman id 833714;
 Mon, 11 Nov 2024 12:58: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAU03-0003ni-K0
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:58:35 +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 a5fc2049-a02c-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:58:29 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9eb3794a04so689888566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04:58:29 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4bfa1sm593284166b.74.2024.11.11.04.58.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04:58: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: a5fc2049-a02c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE1ZmMyMDQ5LWEwMmMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI5OTA5LjcxNjc5Mywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731329909; x=1731934709; 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=VgpYhCjED+Vzt4k1kJ0INwTxSmgdkSIWDO1hr82489M=;
        b=l2lV4CvYeEpzZpnlBBFffnCeLlckVIMNITK3aW3t29s1uMqTibS2JYc4pxqFDQTNNq
         wiAGVwHQ+jdX0i3mWh9EdE1lysQYp8286yXHWac7Np6fxqg8Dg4KoZMA3U8fI4sM0Jvi
         9kzGKZM2nP40h+uTUCf29xWiySgLjcNNr74Ig=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731329909; x=1731934709;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VgpYhCjED+Vzt4k1kJ0INwTxSmgdkSIWDO1hr82489M=;
        b=nbxedlQIAXUDH4tJxlQQZvptYpCeW/tlzMxpKDm00SgDkEpEYlxi7BkuRdEgerVN3V
         qsl3lbHff9nlhajJlhjNQhGEZX9khuqr0GzzCqGianeyLgLBsxB2S8Ubfnoi23/tXS92
         DdTPI5YTG+VPkoYX2E86lxlLx58VBIOUzlWacOnSlKSDvyLcb8QMkRu6NfJP+37EUqr5
         aSrTSXzsYjCDqxXVPPHirAyKXqcga9CyT+i8ZY2hPWKRSfKjHc/UCtUHsdZGmNUtDLa6
         8i1ias21r/8dnSrZt+OBWw3jxrtG3YDj8uz2FWDuVBj+IUjFCEVgnbWqcbEL5lbncHQh
         OXWA==
X-Forwarded-Encrypted: i=1; AJvYcCVw9LRbz88WE5VxXk0p+YFWAFTKmGGXcZ4Z20zcdljeCpz5096/Rhb9U4HyTsiSTwFo/S2MZy97vhg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxeUbatgvOqrjVxPWjzW1PMbKq769bCGhKVDQYNr2UPenzOqRKs
	wGyRksQd0bTngv1se2Lg9D8bIFHKHGZB1PiwKB6GTHkXaUY25I8OJN1n85HRMiM=
X-Google-Smtp-Source: AGHT+IG9PzMoWwqXpedOXpz1vV6K9MDK68vrHD7OVhUAsJ6CVChlg9VL9LOsqT2mecFB5eYRkWGbJg==
X-Received: by 2002:a17:906:db0b:b0:a99:f0f4:463d with SMTP id a640c23a62f3a-a9eeff3f3d3mr1185531566b.26.1731329909155;
        Mon, 11 Nov 2024 04:58:29 -0800 (PST)
Message-ID: <d32022b2-26cb-42e7-ad07-105ba2c0a03d@citrix.com>
Date: Mon, 11 Nov 2024 12:58:27 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] mm: adjust _xvrealloc() declaration
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>
References: <a62146c9-ca82-4024-b5fa-fd3129f308fd@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <a62146c9-ca82-4024-b5fa-fd3129f308fd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/11/2024 12:53 pm, Jan Beulich wrote:
> ... to match its definition parameter-name-wise, to please Misra C:2012
> Rule 8.3.
>
> Fixes: 9102fcd9579f ("mm: introduce xvmalloc() et al and use for grant table allocations")
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 12:59:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 12:59:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833720.1248918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAU0x-0004Ih-Ul; Mon, 11 Nov 2024 12:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833720.1248918; Mon, 11 Nov 2024 12: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 1tAU0x-0004Ia-Rs; Mon, 11 Nov 2024 12:59:31 +0000
Received: by outflank-mailman (input) for mailman id 833720;
 Mon, 11 Nov 2024 12: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAU0w-0004FH-Qd
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 12:59:30 +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 c91edede-a02c-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 13:59:28 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-37f52925fc8so2878311f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 04: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
 ffacd0b85a97d-381ed987d95sm12978597f8f.44.2024.11.11.04.59.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 04: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: c91edede-a02c-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5MWVkZWRlLWEwMmMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzI5OTY4LjcwMzMzNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731329968; x=1731934768; 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=ra9oo1maMdABnA7rzbPPxtDMMIJc282HIGrT0UpZ89o=;
        b=YMQ8FD4xMwn5EIJWd6dOP0yS+UF6twqOlF6X6LZLeCWffzABYLQnGGJMK4IiMgqa8N
         PXTGOf97d4Tc0qU1WiNF7Dmk0kUILBJ+TH2zZf2Thjw/zzSeNDgKniGK023Wdv75ifND
         /wCZKS3FEcSVcGAUnjgeNqXq90UWetIKW9wfqObDKsK6z4FuNFzfh4HGUL2sg3xpuBYP
         8ChSiKEz6IembP98Hx9e6a0IC3mekfEp1Hqp8Ac9hv5bXsvjzWMfCQNhb2atZUXkipeB
         9KZUOKjkvrT2MgUmdngh9ZHo6rwAUdXIkqeHXM+xczJnZ0kuBpqFmXjGY8BRPAftEsr9
         h/SA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731329968; x=1731934768;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ra9oo1maMdABnA7rzbPPxtDMMIJc282HIGrT0UpZ89o=;
        b=vK54AluzlKt7B9RTrnlGjuKxpRow+xJHeBtvG/CnxEB6lHDDbLce0PWCBBAFQ4pVy+
         AzaFwhVMsWlsv/7cP1WzZF3ioxyBOnRtiw5ix8DuhAGHML9XpGbgltCBjBSEwMlQhozm
         GS7POlx1efrliAK+Kdey/cMFj/A81cm59YPD9qfbQJpqgC16q4w7J76uHnxMkZzYoAog
         M0/V67QBjgrMwdnqqCpBl9iPFHCdBkeFoY/3yRtSwamDR27ZBsul7PB0ulz4/Ml3ao78
         TG/SocIMjeKN0rxMfjBuSHn1rdJXN07HNZLKJeFVpdhgpkSET2Wy4rN9fjO4bDtbi/uu
         QBlg==
X-Forwarded-Encrypted: i=1; AJvYcCVDL1je/O9lRRDde7QBYWLMJhSAacpeAdaXcrc6aRz2Rc8VNdumCG77sn88/sbBq0bPjapX7bqdmjw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzzcm34ZNJkUgT372RQqut0XeRR6anDTl7ChZAwMyBCKq3z5BYz
	FO5WQTyp08PN1qOu0Wgc51JaxODvo7nCjAU0nPNMkX97OTQAXrodmHRiX+yuNA==
X-Google-Smtp-Source: AGHT+IECv/UgFVUNsEjWIzU+tRl3tIOD6DzFE9RqF8sXzIcuTamsXQHEFZWBoNwJayC/mqEfsw3uDw==
X-Received: by 2002:a05:6000:78f:b0:382:51e:3f39 with SMTP id ffacd0b85a97d-382051e41f8mr847362f8f.37.1731329968013;
        Mon, 11 Nov 2024 04:59:28 -0800 (PST)
Message-ID: <58d33b2a-c486-4186-9181-1362da25c844@suse.com>
Date: Mon, 11 Nov 2024 13:59:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/riscv: introduce setup_mm()
To: 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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731069334.git.oleksii.kurochko@gmail.com>
 <2a9262165c71733792974f5e27795625013bc656.1731069334.git.oleksii.kurochko@gmail.com>
 <9eeb11a3-df72-4a77-9235-6a872b365ecd@suse.com>
 <8af72f722c96bae029ee8278c9164e3bc5474272.camel@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: <8af72f722c96bae029ee8278c9164e3bc5474272.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.11.2024 13:51, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-11-11 at 11:29 +0100, Jan Beulich wrote:
>> On 08.11.2024 13:51, Oleksii Kurochko wrote:
>>> @@ -37,9 +42,9 @@ static inline void *maddr_to_virt(paddr_t ma)
>>> Â  */
>>> Â static inline unsigned long virt_to_maddr(unsigned long va)
>>> Â {
>>> -Â Â Â  if ((va >= DIRECTMAP_VIRT_START) &&
>>> +Â Â Â  if ((va >= directmap_virt_start) &&
>>
>> Is this a valid / necessary change to make?
> You are right, this not valid change, va value is DIRECTMAP_VIRT_START-
> relative.
> 
>>  Right now there looks to be
>> nothing immediately below the directmap, yet that would need
>> guaranteeing
>> (e.g. by some BUILD_BIG_ON() or whatever else) if code builds upon
>> that.
> It is not really clear how to check that nothing below the directmap is
> present/used. But IIUC there is no need for this check if properly
> correct the condition above.

Right.

>>> Â Â Â Â Â Â Â Â  (va < (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)))
>>> -Â Â Â Â Â Â Â  return directmapoff_to_maddr(va - DIRECTMAP_VIRT_START);
>>> +Â Â Â Â Â Â Â  return directmapoff_to_maddr(va - directmap_virt_start);
>>
>> FTAOD - no question about this part of the change.
>>
>>> @@ -423,3 +429,140 @@ void * __init early_fdt_map(paddr_t
>>> fdt_paddr)
>>> Â 
>>> Â Â Â Â  return fdt_virt;
>>> Â }
>>> +
>>> +vaddr_t __ro_after_init directmap_virt_start =
>>> DIRECTMAP_VIRT_START;
>>> +
>>> +struct page_info *__ro_after_init frametable_virt_start;
>>
>> As for directmap_virt_start - perhaps better with initializer?
> Do you mean to initialized by NULL or frame_table?

The latter.

> If to initialize by frame_table then the if-condition won't work
> properly in setup_frametable_mappings() ( but I think that this
> condition could be dropped as setup_frametable_mappings() is supposed
> to be called only once ?! ). And you mentioned about this condition
> here ...
> 
>>
>>> +#ifndef CONFIG_RISCV_32
>>> +
>>> +/* Map a frame table to cover physical addresses ps through pe */
>>> +static void __init setup_frametable_mappings(paddr_t ps, paddr_t
>>> pe)
>>> +{
>>> +Â Â Â  paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>>> +Â Â Â  paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>>> +Â Â Â  unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
>>> +Â Â Â  unsigned long frametable_size = nr_mfns *
>>> sizeof(*frame_table);
>>> +Â Â Â  mfn_t base_mfn;
>>> +
>>> +Â Â Â  if ( !frametable_virt_start )
>>> +Â Â Â Â Â Â Â  frametable_virt_start = frame_table -
>>> paddr_to_pfn(aligned_ps);
>>
>> If you make this conditional, then you need an "else" (or something
>> that's
>> effectively one) just like you have in setup_directmap_mappings().
>> Like
>> for the earlier assumption on ps being zero: Assumptions you make on
>> how
>> a function is used want to at least be self-consistent. I.e. here
>> either
>> you assume the function may be called more than once, or you don't.
> ...
> 
> Do we have in Xen something to be sure that the function is called only
> once or I have to come up with static variable inside the function?

There's no checking needed. All I'm asking for is that the function
either be indeed callable multiple times, or that it not wrongly give
the impression that it can be called more than once when it really can't
be.

>>> +Â Â Â  if ( base_mfn < mfn_x(directmap_mfn_start) )
>>> +Â Â Â Â Â Â Â  panic("can't add directmap mapping at %#lx below directmap
>>> start %#lx\n",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â  base_mfn, mfn_x(directmap_mfn_start));
>>> +
>>> +Â Â Â  if ( map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn),
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  _mfn(base_mfn), nr_mfns,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  PAGE_HYPERVISOR_RW) )
>>> +Â Â Â Â Â Â Â  panic("Directmap mappings for [%#"PRIpaddr", %#"PRIpaddr")
>>> failed\n",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â  mfn_to_maddr(_mfn(base_mfn)),
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â  mfn_to_maddr(_mfn(base_mfn + nr_mfns)));
>>
>> Maybe worth also logging the error code?
> I am not really understand why do we need that as the use will see what
> is the issue in the message inside panic().

If the panic() triggers, the user will see that something went wrong with
the given range. The error code may give a hint at _what_ went wrong.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833731.1248948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDC-0008If-Fv; Mon, 11 Nov 2024 13:12:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833731.1248948; Mon, 11 Nov 2024 13:12: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 1tAUDC-0008IY-Cg; Mon, 11 Nov 2024 13:12:10 +0000
Received: by outflank-mailman (input) for mailman id 833731;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDB-0008Hn-Cv
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:09 +0000
Received: from smtp-fw-52002.amazon.com (smtp-fw-52002.amazon.com
 [52.119.213.150]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c45a329-a02e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 14:12:06 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.6])
 by smtp-border-fw-52002.iad7.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:03 +0000
Received: from EX19MTAUEC002.ant.amazon.com [10.0.44.209:54712]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.85.229:2525]
 with esmtp (Farcaster)
 id de6160ee-520b-4d69-b6a4-ec18ab5288c7; Mon, 11 Nov 2024 13:12:02 +0000 (UTC)
Received: from EX19D008UEA004.ant.amazon.com (10.252.134.191) by
 EX19MTAUEC002.ant.amazon.com (10.252.135.253) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:02 +0000
Received: from EX19MTAUWA002.ant.amazon.com (10.250.64.202) by
 EX19D008UEA004.ant.amazon.com (10.252.134.191) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:01 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.25.36.210) by mail-relay.amazon.com (10.250.64.203) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:01 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 293DA42116; Mon, 11 Nov 2024 13:12:00 +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: 8c45a329-a02e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjUyLjExOS4yMTMuMTUwIiwiaGVsbyI6InNtdHAtZnctNTIwMDIuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjhjNDVhMzI5LWEwMmUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzMwNzI2LjU4OTYyLCJzZW5kZXIiOiJwcnZzPTAzOGQyNmQwYz1lbGlhc2VseUBhbWF6b24uY28udWsiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330726; x=1762866726;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=0qBSENfwgqkU95D4y/S6zHGmXrylZ30lTrQ15I4hHT8=;
  b=Ja9giNNfVZ0R9geoVcyvCZtt6oK/GBnykRvhM15+qV1IDdgT7CQYGoln
   buJKEh5d8DeCNq/kswFRXYPmr6pBGCtMUUS0z36Q4mOQnTAj+aDk0SmYK
   bWuBBUgSybjeHw7SFklsNSU5U2WyFpZc42jZd7IwuTGL7BPapdIuTFEGA
   0=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="673030954"
X-Farcaster-Flow-ID: de6160ee-520b-4d69-b6a4-ec18ab5288c7
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Wei Liu
	<wei.liu2@citrix.com>, Wei Wang <wawei@amazon.de>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 04/15] x86: Initialize mapcache for PV, HVM, and idle domains
Date: Mon, 11 Nov 2024 13:11:37 +0000
Message-ID: <20241111131148.52568-5-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

From: Wei Liu <wei.liu2@citrix.com>

To support the transition away from the direct map, the mapcache will now
be used by HVM and idle domains as well. This patch lifts the `mapcache`
to the arch level and moves its initialization earlier in
`arch_domain_create()` to cover PV, HVM, and idle domains.

For the idle domain to utilize the mapcache, this patch also populates the
mapcache page tables within the `PERDOMAIN` region and adjusts the
initialization sequence.

With this change, mapcache initialization is now unified across all domain
typesâ€”PV, HVM, and idle.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Wei Wang <wawei@amazon.de>
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>

----

	Changes in V4:
        * Reword the commit message
        * Rebase it on top of staging
            * The logic for the creation of the domain has been reworked
              so introduced #ifdef CONFIG_X86 in the common code to
              initialise the mapcache

	Changes in V2:
        * Free resources if mapcache initialisation fails
        * Remove `is_idle_domain()` check from `create_perdomain_mappings()`

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 78a13e6812c9..38338f519dea 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -777,6 +777,10 @@ void __init arch_init_idle_domain(struct domain *d)
     };
 
     d->arch.ctxt_switch = &idle_csw;
+
+    /* Slot 260: Per-domain mappings. */
+    idle_pg_table[l4_table_offset(PERDOMAIN_VIRT_START)] =
+        l4e_from_page(d->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW);
 }
 
 int arch_domain_create(struct domain *d,
@@ -870,9 +874,6 @@ int arch_domain_create(struct domain *d,
     }
     else if ( is_pv_domain(d) )
     {
-        if ( (rc = mapcache_domain_init(d)) != 0 )
-            goto fail;
-
         if ( (rc = pv_domain_initialise(d)) != 0 )
             goto fail;
     }
@@ -909,7 +910,6 @@ int arch_domain_create(struct domain *d,
     XFREE(d->arch.cpu_policy);
     if ( paging_initialised )
         paging_final_teardown(d);
-    free_perdomain_mappings(d);
 
     return rc;
 }
diff --git a/xen/arch/x86/domain_page.c b/xen/arch/x86/domain_page.c
index eac5e3304fb8..55e337aaf703 100644
--- a/xen/arch/x86/domain_page.c
+++ b/xen/arch/x86/domain_page.c
@@ -82,11 +82,11 @@ void *map_domain_page(mfn_t mfn)
 #endif
 
     v = mapcache_current_vcpu();
-    if ( !v || !is_pv_vcpu(v) )
+    if ( !v )
         return mfn_to_virt(mfn_x(mfn));
 
-    dcache = &v->domain->arch.pv.mapcache;
-    vcache = &v->arch.pv.mapcache;
+    dcache = &v->domain->arch.mapcache;
+    vcache = &v->arch.mapcache;
     if ( !dcache->inuse )
         return mfn_to_virt(mfn_x(mfn));
 
@@ -187,14 +187,14 @@ void unmap_domain_page(const void *ptr)
     ASSERT(va >= MAPCACHE_VIRT_START && va < MAPCACHE_VIRT_END);
 
     v = mapcache_current_vcpu();
-    ASSERT(v && is_pv_vcpu(v));
+    ASSERT(v);
 
-    dcache = &v->domain->arch.pv.mapcache;
+    dcache = &v->domain->arch.mapcache;
     ASSERT(dcache->inuse);
 
     idx = PFN_DOWN(va - MAPCACHE_VIRT_START);
     mfn = l1e_get_pfn(MAPCACHE_L1ENT(idx));
-    hashent = &v->arch.pv.mapcache.hash[MAPHASH_HASHFN(mfn)];
+    hashent = &v->arch.mapcache.hash[MAPHASH_HASHFN(mfn)];
 
     local_irq_save(flags);
 
@@ -233,11 +233,9 @@ void unmap_domain_page(const void *ptr)
 
 int mapcache_domain_init(struct domain *d)
 {
-    struct mapcache_domain *dcache = &d->arch.pv.mapcache;
+    struct mapcache_domain *dcache = &d->arch.mapcache;
     unsigned int bitmap_pages;
 
-    ASSERT(is_pv_domain(d));
-
 #ifdef NDEBUG
     if ( !mem_hotplug && max_page <= PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) )
         return 0;
@@ -261,12 +259,12 @@ int mapcache_domain_init(struct domain *d)
 int mapcache_vcpu_init(struct vcpu *v)
 {
     struct domain *d = v->domain;
-    struct mapcache_domain *dcache = &d->arch.pv.mapcache;
+    struct mapcache_domain *dcache = &d->arch.mapcache;
     unsigned long i;
     unsigned int ents = d->max_vcpus * MAPCACHE_VCPU_ENTRIES;
     unsigned int nr = PFN_UP(BITS_TO_LONGS(ents) * sizeof(long));
 
-    if ( !is_pv_vcpu(v) || !dcache->inuse )
+    if ( !dcache->inuse )
         return 0;
 
     if ( ents > dcache->entries )
@@ -293,7 +291,7 @@ int mapcache_vcpu_init(struct vcpu *v)
     BUILD_BUG_ON(MAPHASHENT_NOTINUSE < MAPCACHE_ENTRIES);
     for ( i = 0; i < MAPHASH_ENTRIES; i++ )
     {
-        struct vcpu_maphash_entry *hashent = &v->arch.pv.mapcache.hash[i];
+        struct vcpu_maphash_entry *hashent = &v->arch.mapcache.hash[i];
 
         hashent->mfn = ~0UL; /* never valid to map */
         hashent->idx = MAPHASHENT_NOTINUSE;
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 478ce41ad8ca..b0fd477c62e7 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -285,9 +285,6 @@ struct pv_domain
     /* Mitigate L1TF with shadow/crashing? */
     bool check_l1tf;
 
-    /* map_domain_page() mapping cache. */
-    struct mapcache_domain mapcache;
-
     struct cpuidmasks *cpuidmasks;
 };
 
@@ -326,6 +323,9 @@ struct arch_domain
 
     uint8_t scf; /* See SCF_DOM_MASK */
 
+    /* map_domain_page() mapping cache. */
+    struct mapcache_domain mapcache;
+
     union {
         struct pv_domain pv;
         struct hvm_domain hvm;
@@ -516,9 +516,6 @@ struct arch_domain
 
 struct pv_vcpu
 {
-    /* map_domain_page() mapping cache. */
-    struct mapcache_vcpu mapcache;
-
     unsigned int vgc_flags;
 
     struct trap_info *trap_ctxt;
@@ -612,6 +609,9 @@ struct arch_vcpu
 #define async_exception_state(t) async_exception_state[(t)-1]
     uint8_t async_exception_mask;
 
+    /* map_domain_page() mapping cache. */
+    struct mapcache_vcpu mapcache;
+
     /* Virtual Machine Extensions */
     union {
         struct pv_vcpu pv;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 92263a4fbdc5..a7f4929b5893 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -738,6 +738,11 @@ struct domain *domain_create(domid_t domid,
 
     rangeset_domain_initialise(d);
 
+#ifdef CONFIG_X86
+    if ( (err = mapcache_domain_init(d)) != 0)
+        goto fail;
+#endif
+
     if ( is_idle_domain(d) )
         arch_init_idle_domain(d);
 
@@ -820,6 +825,10 @@ struct domain *domain_create(domid_t domid,
     ASSERT(err < 0);      /* Sanity check paths leading here. */
     err = err ?: -EILSEQ; /* Release build safety. */
 
+#ifdef CONFIG_X86
+    free_perdomain_mappings(d);
+#endif
+
     d->is_dying = DOMDYING_dead;
     if ( hardware_domain == d )
         hardware_domain = old_hwdom;
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833735.1248978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDF-0000Py-V1; Mon, 11 Nov 2024 13:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833735.1248978; Mon, 11 Nov 2024 13: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 1tAUDF-0000Oh-Il; Mon, 11 Nov 2024 13:12:13 +0000
Received: by outflank-mailman (input) for mailman id 833735;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDE-0007pD-96
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:12 +0000
Received: from smtp-fw-33001.amazon.com (smtp-fw-33001.amazon.com
 [207.171.190.10]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d1fe1ea-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:08 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-33001.sea14.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:00 +0000
Received: from EX19MTAUEA001.ant.amazon.com [10.0.44.209:4702]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.85.229:2525]
 with esmtp (Farcaster)
 id a64a81fb-2563-46ac-9016-d1f545eb7031; Mon, 11 Nov 2024 13:11:59 +0000 (UTC)
Received: from EX19D008UEA004.ant.amazon.com (10.252.134.191) by
 EX19MTAUEA001.ant.amazon.com (10.252.134.203) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:11:59 +0000
Received: from EX19MTAUEC002.ant.amazon.com (10.252.135.146) by
 EX19D008UEA004.ant.amazon.com (10.252.134.191) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:11:59 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.6) by mail-relay.amazon.com (10.252.135.146) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:11:59 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 665A142116; Mon, 11 Nov 2024 13:11:57 +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: 8d1fe1ea-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwNy4xNzEuMTkwLjEwIiwiaGVsbyI6InNtdHAtZnctMzMwMDEuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjhkMWZlMWVhLWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzI4LjY5MTMxNSwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330728; x=1762866728;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=9JuGWs6fDafa679IQLfBxMLC3PVcKWY9gwc068/7Y64=;
  b=I6D66n9ZaQPTQa1Le6dsW1DlKKnYkIkCvLf9rDHsMpfulgZ0G283DbU7
   Lor3mJjlpZGgwOVm0WCuVmJUklHIJHltgzDaNEVfqZdaQpttN/tDxOLLE
   7e/SE6Tf+TC+tEwAvy4Fm1sLc4wTtCVsfP0zdfD1FWzlc/RtT5Sp0zeZk
   A=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="384186337"
X-Farcaster-Flow-ID: a64a81fb-2563-46ac-9016-d1f545eb7031
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Wei Liu
	<wei.liu2@citrix.com>, Wei Wang <wawei@amazon.de>, Julien Grall
	<jgrall@amazon.com>, Elias El Yandouzi <eliasely@amazon.com>
Subject: [PATCH V4 02/15] x86/pv: Use copy_domain_page() to manage domheap pages during initrd relocation
Date: Mon, 11 Nov 2024 13:11:35 +0000
Message-ID: <20241111131148.52568-3-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Wei Liu <wei.liu2@citrix.com>

Replace the manual copying logic with a call to `copy_domain_page()`
while relocating intird which map and unmap pages accordingly.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Wei Wang <wawei@amazon.de>
Signed-off-by: Julien Grall <jgrall@amazon.com>
Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>

----
    Changes in V4:
        * Use the count of pages instead of calculating from order for nr_pages initialization

    Changes in V3:
        * Rename commit title
        * Rework the for loop copying the pages

    Changes in V2:
        * Get rid of mfn_to_virt
        * Don't open code copy_domain_page()

    Changes since Hongyan's version:
        * Add missing newline after the variable declaration

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index cc882bee61c3..18b7a3e4e025 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -618,18 +618,24 @@ static int __init dom0_construct(struct domain *d,
         if ( d->arch.physaddr_bitsize &&
              ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)) )
         {
+            unsigned int nr_pages = count;
+
             order = get_order_from_pages(count);
             page = alloc_domheap_pages(d, order, MEMF_no_scrub);
             if ( !page )
                 panic("Not enough RAM for domain 0 initrd\n");
+
             for ( count = -count; order--; )
                 if ( count & (1UL << order) )
                 {
                     free_domheap_pages(page, order);
                     page += 1UL << order;
+                    nr_pages -= 1UL << order;
                 }
-            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod_start),
-                   initrd_len);
+
+            for ( ; nr_pages-- ; page++, mfn++ )
+                copy_domain_page(page_to_mfn(page), _mfn(mfn));
+
             mpt_alloc = (paddr_t)initrd->mod_start << PAGE_SHIFT;
             init_domheap_pages(mpt_alloc,
                                mpt_alloc + PAGE_ALIGN(initrd_len));
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833736.1248993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDH-0000yU-27; Mon, 11 Nov 2024 13:12:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833736.1248993; Mon, 11 Nov 2024 13:12: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 1tAUDG-0000xX-Uj; Mon, 11 Nov 2024 13:12:14 +0000
Received: by outflank-mailman (input) for mailman id 833736;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDF-0007pD-9I
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:13 +0000
Received: from smtp-fw-52002.amazon.com (smtp-fw-52002.amazon.com
 [52.119.213.150]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8df78f85-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:09 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.6])
 by smtp-border-fw-52002.iad7.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:08 +0000
Received: from EX19MTAUEC002.ant.amazon.com [10.0.44.209:28838]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.85.229:2525]
 with esmtp (Farcaster)
 id 319c51b8-85f5-4ed2-8ac8-8e45a7ed2184; Mon, 11 Nov 2024 13:12:08 +0000 (UTC)
Received: from EX19D008UEC003.ant.amazon.com (10.252.135.194) by
 EX19MTAUEC002.ant.amazon.com (10.252.135.253) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:07 +0000
Received: from EX19MTAUEB002.ant.amazon.com (10.252.135.47) by
 EX19D008UEC003.ant.amazon.com (10.252.135.194) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:07 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.2) by mail-relay.amazon.com (10.252.135.97) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:06 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 6993D42116; Mon, 11 Nov 2024 13:12: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: 8df78f85-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjUyLjExOS4yMTMuMTUwIiwiaGVsbyI6InNtdHAtZnctNTIwMDIuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjhkZjc4Zjg1LWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzI5LjQ1NTMzNSwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330729; x=1762866729;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=rB2rRpiYmlYYuH1CdMTLnLcInkmyXxjNS6D+YHWGoNQ=;
  b=mU27vuLZTT6oQ6+MTdfN6xxUbq9qdH3bLzqIxHS93xgQPRzVgCl/JbxY
   dB1o73Svcc9fJTTUo+AcsBoTRLnFnPEd68zOVttGENsIBuUAE6czE2i4D
   ELWBE6z231wbj0guucwoaSwYQXZac4M7WG+JQERpjhJ2dRrBH5xCcI3Zh
   4=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="673030963"
X-Farcaster-Flow-ID: 319c51b8-85f5-4ed2-8ac8-8e45a7ed2184
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 08/15] xen/page_alloc: Add a path for xenheap when there is no direct map
Date: Mon, 11 Nov 2024 13:11:41 +0000
Message-ID: <20241111131148.52568-9-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Hongyan Xia <hongyxia@amazon.com>

When there is not an always-mapped direct map, xenheap allocations need
to be mapped and unmapped on-demand.

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>

----

    I have left the call to map_pages_to_xen() and destroy_xen_mappings()
    in the split heap for now. I am not entirely convinced this is necessary
    because in that setup only the xenheap would be always mapped and
    this doesn't contain any guest memory (aside the grant-table).
    So map/unmapping for every allocation seems unnecessary.

    Changes in v4:
        * Call printk instead of dprintk()

    Changes in v2:
        * Fix remaining wrong indentation in alloc_xenheap_pages()

    Changes since Hongyan's version:
        * Rebase
        * Fix indentation in alloc_xenheap_pages()
        * Fix build for arm32

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index b0be246780b7..2cef521ad85a 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2243,6 +2243,7 @@ void init_xenheap_pages(paddr_t ps, paddr_t pe)
 void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
 {
     struct page_info *pg;
+    void *virt_addr;
 
     ASSERT_ALLOC_CONTEXT();
 
@@ -2251,17 +2252,36 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
     if ( unlikely(pg == NULL) )
         return NULL;
 
-    return page_to_virt(pg);
+    virt_addr = page_to_virt(pg);
+
+    if ( !has_directmap() &&
+         map_pages_to_xen((unsigned long)virt_addr, page_to_mfn(pg), 1UL << order,
+                          PAGE_HYPERVISOR) )
+    {
+        /* Failed to map xenheap pages. */
+        free_heap_pages(pg, order, false);
+        return NULL;
+    }
+
+    return virt_addr;
 }
 
 
 void free_xenheap_pages(void *v, unsigned int order)
 {
+    unsigned long va = (unsigned long)v & PAGE_MASK;
+
     ASSERT_ALLOC_CONTEXT();
 
     if ( v == NULL )
         return;
 
+    if ( !has_directmap() &&
+         destroy_xen_mappings(va, va + (PAGE_SIZE << order)) )
+        printk(XENLOG_WARNING,
+                "Error while destroying xenheap mappings at %p, order %u\n",
+                v, order);
+
     free_heap_pages(virt_to_page(v), order, false);
 }
 
@@ -2285,6 +2305,7 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
 {
     struct page_info *pg;
     unsigned int i;
+    void *virt_addr;
 
     ASSERT_ALLOC_CONTEXT();
 
@@ -2297,16 +2318,28 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
     if ( unlikely(pg == NULL) )
         return NULL;
 
+    virt_addr = page_to_virt(pg);
+
+    if ( !has_directmap() &&
+         map_pages_to_xen((unsigned long)virt_addr, page_to_mfn(pg), 1UL << order,
+                          PAGE_HYPERVISOR) )
+    {
+        /* Failed to map xenheap pages. */
+        free_domheap_pages(pg, order);
+        return NULL;
+    }
+
     for ( i = 0; i < (1u << order); i++ )
         pg[i].count_info |= PGC_xen_heap;
 
-    return page_to_virt(pg);
+    return virt_addr;
 }
 
 void free_xenheap_pages(void *v, unsigned int order)
 {
     struct page_info *pg;
     unsigned int i;
+    unsigned long va = (unsigned long)v & PAGE_MASK;
 
     ASSERT_ALLOC_CONTEXT();
 
@@ -2318,6 +2351,12 @@ void free_xenheap_pages(void *v, unsigned int order)
     for ( i = 0; i < (1u << order); i++ )
         pg[i].count_info &= ~PGC_xen_heap;
 
+    if ( !has_directmap() &&
+         destroy_xen_mappings(va, va + (PAGE_SIZE << order)) )
+        printk(XENLOG_WARNING
+                "Error while destroying xenheap mappings at %p, order %u\n",
+                v, order);
+
     free_heap_pages(pg, order, true);
 }
 
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833732.1248958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDE-00007f-N4; Mon, 11 Nov 2024 13:12:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833732.1248958; Mon, 11 Nov 2024 13:12: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 1tAUDE-00007W-Ij; Mon, 11 Nov 2024 13:12:12 +0000
Received: by outflank-mailman (input) for mailman id 833732;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDD-0007pD-8y
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:11 +0000
Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8cff79c6-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:07 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.6])
 by smtp-border-fw-6002.iad6.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:04 +0000
Received: from EX19MTAUEB002.ant.amazon.com [10.0.0.204:33875]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.48.172:2525]
 with esmtp (Farcaster)
 id 8b24fb90-c20d-42da-9514-cb3d2facd874; Mon, 11 Nov 2024 13:12:04 +0000 (UTC)
Received: from EX19D008UEA004.ant.amazon.com (10.252.134.191) by
 EX19MTAUEB002.ant.amazon.com (10.252.135.47) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:03 +0000
Received: from EX19MTAUEA001.ant.amazon.com (10.252.134.203) by
 EX19D008UEA004.ant.amazon.com (10.252.134.191) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:03 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.2) by mail-relay.amazon.com (10.252.134.102) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:03 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id B071742133; Mon, 11 Nov 2024 13:12: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: 8cff79c6-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjUyLjk1LjQ5LjkwIiwiaGVsbyI6InNtdHAtZnctNjAwMi5hbWF6b24uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhjZmY3OWM2LWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzI3Ljc1MTMwNiwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330727; x=1762866727;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=NWIwGRJXlVDN14kBG5n0Ww+/BOM/U6VioMpFX1uyIRk=;
  b=D+wQ+XgGkxYROZyzWsoJ7s28Cb8xHF0j+4l6CSfk4NT5dCJO5h2UHF5C
   5ODMQl/Be6MqNgzR6n/fkXYM0r5MeBvA8zGdcFSC7+8wU8wh+4j9kXgi5
   tq3oKfDJGc47LrEW00IRB9cLm5AhhfbMjxq9SDxape8fX+jqKVDPO1fnu
   E=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="447823622"
X-Farcaster-Flow-ID: 8b24fb90-c20d-42da-9514-cb3d2facd874
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 05/15] x86: Add a boot option to enable and disable the direct map
Date: Mon, 11 Nov 2024 13:11:38 +0000
Message-ID: <20241111131148.52568-6-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Hongyan Xia <hongyxia@amazon.com>

This is added as a Kconfig option as well as a boot command line option.
While being generic, the Kconfig option is only usable for x86 at the moment.

Note that there remains some users of the directmap at this point. The option
is introduced now as it will be needed in follow-up patches.

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>

----
    Changes in V4:
        * Rename the Kconfig options
        * Set opt_directmap to true if CONFIG_HAS_ONDEMAND_DIRECTMAP is not enabled

    Changes in V2:
        * Introduce a Kconfig option
        * Reword the commit message
        * Make opt_directmap and helper generic

    Changes since Hongyan's version:
        * Reword the commit message
        * opt_directmap is only modified during boot so mark it as
          __ro_after_init

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 293dbc1a957b..10b0b2714661 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -799,6 +799,18 @@ that enabling this option cannot guarantee anything beyond what underlying
 hardware guarantees (with, where available and known to Xen, respective
 tweaks applied).
 
+### directmap (x86)
+> `= <boolean>`
+
+> Default: `true`
+
+Enable or disable fully populating the directmap region in Xen.
+
+By default, Xen creates the directmap region which maps all physical memory
+in that region. Disabling this option will sparsely populate the directmap,
+blocking exploits that leak secrets via speculative memory access in the
+directmap.
+
 ### dma_bits
 > `= <integer>`
 
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 9cdd04721afa..55f1e8702ab9 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -23,6 +23,7 @@ config X86
 	select HAS_IOPORTS
 	select HAS_KEXEC
 	select HAS_NS16550
+	select HAS_ONDEMAND_DIRECTMAP
 	select HAS_PASSTHROUGH
 	select HAS_PCI
 	select HAS_PCI_MSI
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 71a29b2cb3af..d3936bd173fa 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -620,11 +620,17 @@ void write_32bit_pse_identmap(uint32_t *l2);
 /*
  * x86 maps part of physical memory via the directmap region.
  * Return whether the range of MFN falls in the directmap region.
+ *
+ * When boot command line sets directmap=no, the directmap will mostly be empty
+ * so this will always return false.
  */
 static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 {
     unsigned long eva = min(DIRECTMAP_VIRT_END, HYPERVISOR_VIRT_END);
 
+    if ( !has_directmap() )
+        return false;
+
     return (mfn + nr) <= (virt_to_mfn(eva - 1) + 1);
 }
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 177f4024abca..a3c21ca05099 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1586,6 +1586,8 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( highmem_start )
         xenheap_max_mfn(PFN_DOWN(highmem_start - 1));
 
+    printk("Booting with directmap %s\n", has_directmap() ? "full" : "on demand");
+
     /*
      * Walk every RAM region and map it in its entirety (on x86/64, at least)
      * and notify it to the boot allocator.
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 90268d92499a..72094c491756 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -71,6 +71,9 @@ config HAS_IOPORTS
 config HAS_KEXEC
 	bool
 
+config HAS_ONDEMAND_DIRECTMAP
+	bool
+
 config HAS_PIRQ
 	bool
 
@@ -415,6 +418,20 @@ source "common/sched/Kconfig"
 config CRYPTO
 	bool
 
+config ONDEMAND_DIRECTMAP
+    bool "On-Demand Directmap"
+    depends on HAS_ONDEMAND_DIRECTMAP
+    help
+		The directmap contains mapping for most of the RAM, making domain
+		memory easily accessible. While this can improve performance, it also
+		increases the vulnerability to speculation attacks.
+
+		Enabling this feature allows the user to control whether the memory
+		is always mapped at boot or mapped only on demand (see the command line
+		option "directmap").
+
+		If unsure, say N.
+
 config LIVEPATCH
 	bool "Live patching support"
 	default X86
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 33c8c917d984..b0be246780b7 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -175,6 +175,11 @@ paddr_t __ro_after_init mem_hotplug;
 static char __initdata opt_badpage[100] = "";
 string_param("badpage", opt_badpage);
 
+#ifdef CONFIG_HAS_ONDEMAND_DIRECTMAP
+bool __ro_after_init opt_directmap = true;
+boolean_param("directmap", opt_directmap);
+#endif
+
 /*
  * no-bootscrub -> Free pages are not zeroed during boot.
  */
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 7561297a7553..9e3c9f3b6dfa 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -167,6 +167,17 @@ extern unsigned long max_page;
 extern unsigned long total_pages;
 extern paddr_t mem_hotplug;
 
+#ifdef CONFIG_HAS_ONDEMAND_DIRECTMAP
+    extern bool opt_directmap;
+#else
+    #define opt_directmap true
+#endif
+
+static inline bool has_directmap(void)
+{
+    return !IS_ENABLED(CONFIG_HAS_ONDEMAND_DIRECTMAP) || opt_directmap;
+}
+
 /*
  * Extra fault info types which are used to further describe
  * the source of an access violation.
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833733.1248964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDF-0000G5-6Y; Mon, 11 Nov 2024 13:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833733.1248964; Mon, 11 Nov 2024 13: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 1tAUDF-0000Ey-0i; Mon, 11 Nov 2024 13:12:13 +0000
Received: by outflank-mailman (input) for mailman id 833733;
 Mon, 11 Nov 2024 13: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDD-0008Hn-MF
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:11 +0000
Received: from smtp-fw-80007.amazon.com (smtp-fw-80007.amazon.com
 [99.78.197.218]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d64118a-a02e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 14:12:08 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-80007.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:05 +0000
Received: from EX19MTAUEA001.ant.amazon.com [10.0.44.209:15388]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.49.82:2525]
 with esmtp (Farcaster)
 id 70aaaccd-ef43-4a1b-a739-83266d2e097f; Mon, 11 Nov 2024 13:12:04 +0000 (UTC)
Received: from EX19D008UEC001.ant.amazon.com (10.252.135.232) by
 EX19MTAUEA001.ant.amazon.com (10.252.134.203) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:04 +0000
Received: from EX19MTAUWC001.ant.amazon.com (10.250.64.145) by
 EX19D008UEC001.ant.amazon.com (10.252.135.232) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:04 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.25.36.210) by mail-relay.amazon.com (10.250.64.145) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:04 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 092EE42116; Mon, 11 Nov 2024 13:12: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: 8d64118a-a02e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijk5Ljc4LjE5Ny4yMTgiLCJoZWxvIjoic210cC1mdy04MDAwNy5hbWF6b24uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhkNjQxMThhLWEwMmUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzMwNzI5LjIxMDAzOCwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330728; x=1762866728;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=rRDr0Ku/NT89j0Zb14EJxFG+AgV87TQZSexrBkDV4vs=;
  b=RP7cwyjYu8Vb7xaDjxDeS1ssPA48ONUWDTBMIS0rATwDTZ+bWg7uFFFU
   tzL5ZbwPGVXlZtM/XUm30y4PSVhL8QUOqkRsmuX/JffJr/kobzuErvzjw
   t8Xgw6q6CJIFB0AL+Bru7woRMUyUejZxkKhJPgDZpx3IlFN8MT/E5OGpN
   4=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="351236453"
X-Farcaster-Flow-ID: 70aaaccd-ef43-4a1b-a739-83266d2e097f
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Julien Grall
	<jgrall@amazon.com>, Elias El Yandouzi <eliasely@amazon.com>
Subject: [PATCH V4 06/15] xen/x86: Add support for the PMAP
Date: Mon, 11 Nov 2024 13:11:39 +0000
Message-ID: <20241111131148.52568-7-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Julien Grall <jgrall@amazon.com>

PMAP will be used in a follow-up patch to bootstrap map domain
page infrastructure -- we need some way to map pages to setup the
mapcache without a direct map.

The functions pmap_{map, unmap} open code {set, clear}_fixmap to break
the loop.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>

----

    The PMAP infrastructure was upstream separately for Arm since
    Hongyan sent the secret-free hypervisor series. So this is a new
    patch to plumb the feature on x86.

    Changes in v4:
        * Select PMAP KConfig option iff ONDEMAND_DIRECTMAP is used

    Changes in v2:
        * Declare PMAP entries earlier in fixed_addresses
        * Reword the commit message

diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
index 516ec3fa6c95..80b7b74fd816 100644
--- a/xen/arch/x86/include/asm/fixmap.h
+++ b/xen/arch/x86/include/asm/fixmap.h
@@ -21,6 +21,8 @@
 
 #include <xen/acpi.h>
 #include <xen/pfn.h>
+#include <xen/pmap.h>
+
 #include <asm/apicdef.h>
 #include <asm/msi.h>
 #include <acpi/apei.h>
@@ -53,6 +55,10 @@ enum fixed_addresses {
     FIX_PV_CONSOLE,
     FIX_XEN_SHARED_INFO,
 #endif /* CONFIG_XEN_GUEST */
+#ifdef CONFIG_HAS_PMAP
+    FIX_PMAP_BEGIN,
+    FIX_PMAP_END = FIX_PMAP_BEGIN + NUM_FIX_PMAP,
+#endif
     /* Everything else should go further down. */
     FIX_APIC_BASE,
     FIX_IO_APIC_BASE_0,
diff --git a/xen/arch/x86/include/asm/pmap.h b/xen/arch/x86/include/asm/pmap.h
new file mode 100644
index 000000000000..1b3b729b90b2
--- /dev/null
+++ b/xen/arch/x86/include/asm/pmap.h
@@ -0,0 +1,35 @@
+#ifndef __ASM_PMAP_H__
+#define __ASM_PMAP_H__
+
+#include <asm/fixmap.h>
+
+static inline void arch_pmap_map(unsigned int slot, mfn_t mfn)
+{
+    unsigned long linear = (unsigned long)fix_to_virt(slot);
+    l1_pgentry_t *pl1e = &l1_fixmap[l1_table_offset(linear)];
+
+    BUILD_BUG_ON(FIX_APIC_BASE - 1 > L1_PAGETABLE_ENTRIES - 1);
+    ASSERT(!(l1e_get_flags(*pl1e) & _PAGE_PRESENT));
+
+    l1e_write(pl1e, l1e_from_mfn(mfn, PAGE_HYPERVISOR));
+}
+
+static inline void arch_pmap_unmap(unsigned int slot)
+{
+    unsigned long linear = (unsigned long)fix_to_virt(slot);
+    l1_pgentry_t *pl1e = &l1_fixmap[l1_table_offset(linear)];
+
+    l1e_write(pl1e, l1e_empty());
+    flush_tlb_one_local(linear);
+}
+
+#endif /* __ASM_PMAP_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 72094c491756..2a6c33493927 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -421,6 +421,7 @@ config CRYPTO
 config ONDEMAND_DIRECTMAP
     bool "On-Demand Directmap"
     depends on HAS_ONDEMAND_DIRECTMAP
+    select HAS_PMAP
     help
 		The directmap contains mapping for most of the RAM, making domain
 		memory easily accessible. While this can improve performance, it also
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833734.1248968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDF-0000LJ-D5; Mon, 11 Nov 2024 13:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833734.1248968; Mon, 11 Nov 2024 13: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 1tAUDF-0000IQ-8Z; Mon, 11 Nov 2024 13:12:13 +0000
Received: by outflank-mailman (input) for mailman id 833734;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDE-0008Hn-3X
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:12 +0000
Received: from smtp-fw-52002.amazon.com (smtp-fw-52002.amazon.com
 [52.119.213.150]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e6e21ab-a02e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 14:12:09 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.6])
 by smtp-border-fw-52002.iad7.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:08 +0000
Received: from EX19MTAUEC002.ant.amazon.com [10.0.44.209:28838]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.85.229:2525]
 with esmtp (Farcaster)
 id b5db991d-c68a-4314-862b-724dabdd02bc; Mon, 11 Nov 2024 13:12:07 +0000 (UTC)
Received: from EX19D008UEA001.ant.amazon.com (10.252.134.62) by
 EX19MTAUEC002.ant.amazon.com (10.252.135.253) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:06 +0000
Received: from EX19MTAUEB001.ant.amazon.com (10.252.135.35) by
 EX19D008UEA001.ant.amazon.com (10.252.134.62) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:05 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.2) by mail-relay.amazon.com (10.252.135.35) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:05 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 3973642133; Mon, 11 Nov 2024 13:12: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: 8e6e21ab-a02e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjUyLjExOS4yMTMuMTUwIiwiaGVsbyI6InNtdHAtZnctNTIwMDIuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjhlNmUyMWFiLWEwMmUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzMwNzI5LjQ3ODI1NSwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330729; x=1762866729;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=WkU261d4pu53Tt8wU35o8tACxmmEX0Gg0p1NAEG+StY=;
  b=sc838DbwndjAUygWlYlRX0OHKnSiuh78/7iQ9QCvEP0Glv1UdgecazZi
   Np8s79vz/2PothxiM3edRxj3i5hbY35frQ4VBYG3cxbH3QpyDnk5Rhkz/
   2FF13E8J+FP5x3Rm0Xf/DYx+XWVXboD0JsDGyHZ3Hfv9seJudKhkEO5Et
   s=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="673030962"
X-Farcaster-Flow-ID: b5db991d-c68a-4314-862b-724dabdd02bc
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH V4 07/15] x86/domain_page: Remove the fast paths when mfn is not in the directmap
Date: Mon, 11 Nov 2024 13:11:40 +0000
Message-ID: <20241111131148.52568-8-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Hongyan Xia <hongyxia@amazon.com>

When mfn is not in direct map, never use mfn_to_virt for any mappings.

We replace mfn_x(mfn) <= PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) with
arch_mfns_in_direct_map(mfn, 1) because these two are equivalent. The
extra comparison in arch_mfns_in_direct_map() looks different but because
DIRECTMAP_VIRT_END is always higher, it does not make any difference.

Lastly, domain_page_map_to_mfn() needs to gain to a special case for
the PMAP.

Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
Signed-off-by: Julien Grall <jgrall@amazon.com>

----

    Changes in v4:
        * Introduce helper functions virt_is_fixmap and virt_in_fixmap_range

    Changes since Hongyan's version:
        * arch_mfn_in_direct_map() was renamed to arch_mfns_in_directmap()
        * add a special case for the PMAP in domain_page_map_to_mfn()

diff --git a/xen/arch/x86/domain_page.c b/xen/arch/x86/domain_page.c
index 55e337aaf703..df7d4750ef05 100644
--- a/xen/arch/x86/domain_page.c
+++ b/xen/arch/x86/domain_page.c
@@ -14,8 +14,10 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 #include <asm/current.h>
+#include <asm/fixmap.h>
 #include <asm/flushtlb.h>
 #include <asm/hardirq.h>
+#include <asm/pmap.h>
 #include <asm/setup.h>
 
 static DEFINE_PER_CPU(struct vcpu *, override);
@@ -24,6 +26,7 @@ static inline struct vcpu *mapcache_current_vcpu(void)
 {
     /* In the common case we use the mapcache of the running VCPU. */
     struct vcpu *v = this_cpu(override) ?: current;
+    struct vcpu *idle_v = idle_vcpu[smp_processor_id()];
 
     /*
      * When current isn't properly set up yet, this is equivalent to
@@ -35,10 +38,11 @@ static inline struct vcpu *mapcache_current_vcpu(void)
     /*
      * When using efi runtime page tables, we have the equivalent of the idle
      * domain's page tables but current may point at another domain's VCPU.
-     * Return NULL as though current is not properly set up yet.
+     * Return the idle domains's vcpu on that core because the efi per-domain
+     * region (where the mapcache is) is in-sync with the idle domain.
      */
     if ( efi_rs_using_pgtables() )
-        return NULL;
+        return idle_v;
 
     /*
      * If guest_table is NULL, and we are running a paravirtualised guest,
@@ -48,7 +52,7 @@ static inline struct vcpu *mapcache_current_vcpu(void)
     if ( unlikely(pagetable_is_null(v->arch.guest_table)) && is_pv_vcpu(v) )
     {
         /* If we really are idling, perform lazy context switch now. */
-        if ( (v = idle_vcpu[smp_processor_id()]) == current )
+        if ( (v = idle_v) == current )
             sync_local_execstate();
         /* We must now be running on the idle page table. */
         ASSERT(cr3_pa(read_cr3()) == __pa(idle_pg_table));
@@ -77,18 +81,24 @@ void *map_domain_page(mfn_t mfn)
     struct vcpu_maphash_entry *hashent;
 
 #ifdef NDEBUG
-    if ( mfn_x(mfn) <= PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) )
+    if ( arch_mfns_in_directmap(mfn_x(mfn), 1) )
         return mfn_to_virt(mfn_x(mfn));
 #endif
 
     v = mapcache_current_vcpu();
-    if ( !v )
-        return mfn_to_virt(mfn_x(mfn));
+    if ( !v || !v->domain->arch.mapcache.inuse )
+    {
+        if ( arch_mfns_in_directmap(mfn_x(mfn), 1) )
+            return mfn_to_virt(mfn_x(mfn));
+        else
+        {
+            BUG_ON(system_state >= SYS_STATE_smp_boot);
+            return pmap_map(mfn);
+        }
+    }
 
     dcache = &v->domain->arch.mapcache;
     vcache = &v->arch.mapcache;
-    if ( !dcache->inuse )
-        return mfn_to_virt(mfn_x(mfn));
 
     perfc_incr(map_domain_page_count);
 
@@ -184,6 +194,12 @@ void unmap_domain_page(const void *ptr)
     if ( !va || va >= DIRECTMAP_VIRT_START )
         return;
 
+    if ( virt_is_fixmap(va) )
+    {
+        pmap_unmap(ptr);
+        return;
+    }
+
     ASSERT(va >= MAPCACHE_VIRT_START && va < MAPCACHE_VIRT_END);
 
     v = mapcache_current_vcpu();
@@ -237,7 +253,7 @@ int mapcache_domain_init(struct domain *d)
     unsigned int bitmap_pages;
 
 #ifdef NDEBUG
-    if ( !mem_hotplug && max_page <= PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) )
+    if ( !mem_hotplug && arch_mfn_in_directmap(0, max_page) )
         return 0;
 #endif
 
@@ -308,7 +324,7 @@ void *map_domain_page_global(mfn_t mfn)
             local_irq_is_enabled()));
 
 #ifdef NDEBUG
-    if ( mfn_x(mfn) <= PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) )
+    if ( arch_mfn_in_directmap(mfn_x(mfn, 1)) )
         return mfn_to_virt(mfn_x(mfn));
 #endif
 
@@ -335,6 +351,22 @@ mfn_t domain_page_map_to_mfn(const void *ptr)
     if ( va >= DIRECTMAP_VIRT_START )
         return _mfn(virt_to_mfn(ptr));
 
+    /*
+     * The fixmap is stealing the top-end of the VMAP. So the check for
+     * the PMAP *must* happen first.
+     *
+     * Also, the fixmap translate a slot to an address backwards. The
+     * logic will rely on it to avoid any complexity. So check at
+     * compile time this will always hold.
+    */
+    BUILD_BUG_ON(fix_to_virt(FIX_PMAP_BEGIN) < fix_to_virt(FIX_PMAP_END));
+
+    if ( virt_in_fixmap_range(va, FIX_PMAP_BEGIN, FIX_PMAP_END) )
+    {
+        BUG_ON(system_state >= SYS_STATE_smp_boot);
+        return l1e_get_mfn(l1_fixmap[l1_table_offset(va)]);
+    }
+
     if ( va >= VMAP_VIRT_START && va < VMAP_VIRT_END )
         return vmap_to_mfn(va);
 
diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
index 80b7b74fd816..381c95a8b11f 100644
--- a/xen/arch/x86/include/asm/fixmap.h
+++ b/xen/arch/x86/include/asm/fixmap.h
@@ -101,6 +101,31 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
     return __virt_to_fix(vaddr);
 }
 
+static inline bool virt_is_fixmap(const unsigned long vaddr)
+{
+    return vaddr >= FIXADDR_START && vaddr < FIXADDR_TOP;
+}
+
+static inline bool virt_in_fixmap_range(
+    const unsigned long vaddr,
+    const unsigned int start_idx,
+    const unsigned int end_idx
+)
+{
+    unsigned long start_addr = (unsigned long)fix_to_virt(start_idx);
+    unsigned long end_addr = (unsigned long)fix_to_virt(end_idx);
+
+    /*
+     * The check ensures that the virtual address (vaddr) is within the
+     * fixmap range. The addresses are allocated backwards, meaning the
+     * start address is higher than the end address. As a result, the
+     * check ensures that the virtual address is greater than or equal to
+     * the end address, and less than or equal to the start address, which
+     * may appear counterintuitive due to the reverse allocation order.
+     */
+    return ((vaddr & PAGE_MASK) <= start_addr) && (vaddr >= end_addr);
+}
+
 enum fixed_addresses_x {
     /* Index 0 is reserved since fix_x_to_virt(0) == FIXADDR_X_TOP. */
     FIX_X_RESERVED,
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833729.1248928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUD8-0007pQ-VX; Mon, 11 Nov 2024 13:12:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833729.1248928; Mon, 11 Nov 2024 13:12: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 1tAUD8-0007pJ-Sf; Mon, 11 Nov 2024 13:12:06 +0000
Received: by outflank-mailman (input) for mailman id 833729;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUD8-0007pD-8i
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:06 +0000
Received: from smtp-fw-52005.amazon.com (smtp-fw-52005.amazon.com
 [52.119.213.156]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88f10774-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:01 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.6])
 by smtp-border-fw-52005.iad7.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:11:58 +0000
Received: from EX19MTAUEB002.ant.amazon.com [10.0.0.204:48770]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.13.234:2525]
 with esmtp (Farcaster)
 id 8605e4df-8454-4f66-9ec1-c086a3de2078; Mon, 11 Nov 2024 13:11:57 +0000 (UTC)
Received: from EX19D008UEC002.ant.amazon.com (10.252.135.242) by
 EX19MTAUEB002.ant.amazon.com (10.252.135.47) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:11:56 +0000
Received: from EX19MTAUWC002.ant.amazon.com (10.250.64.143) by
 EX19D008UEC002.ant.amazon.com (10.252.135.242) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:11:55 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.25.36.210) by mail-relay.amazon.com (10.250.64.149) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:11:55 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id DD88C42116; Mon, 11 Nov 2024 13:11:54 +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: 88f10774-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjUyLjExOS4yMTMuMTU2IiwiaGVsbyI6InNtdHAtZnctNTIwMDUuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijg4ZjEwNzc0LWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzIxLjg1MTU1MSwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330722; x=1762866722;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=yXXOHoIPHky88JTb9rF73LR/UCSBziQW9WWeOuavneQ=;
  b=uZ6dWlSBiAMIq3s+PsCHYLuemp8SHlWiMrB2dfgELPpLGJzZUe+sL6/H
   PkeESoi9Y4bcedJeWj4Mkpz4KpVunuG5l9jIj1qfLS2j/gZJgyrkXaUny
   3+SLVhkV01Mdi8TsPDvCyyzmyYF3y7VC1uExDfERzCi0OkYWGVpl5+bKV
   I=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="694473681"
X-Farcaster-Flow-ID: 8605e4df-8454-4f66-9ec1-c086a3de2078
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, "Elias El
 Yandouzi" <eliasely@amazon.com>
Subject: [PATCH V4 00/15] Remove the directmap 
Date: Mon, 11 Nov 2024 13:11:33 +0000
Message-ID: <20241111131148.52568-1-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

Hi all,

A few years ago, Wei Liu implemented a PoC to remove the directmap
from Xen. The last version was sent by Hongyan Xia [1].

I will start with thanking both Wei and Hongyan for the initial work
to upstream the feature. A lot of patches already went in and this is
the last few patches missing to effectively enable the feature.

=== What is the directmap? ===

At the moment, on both arm64 and x86, most of the RAM is mapped
in Xen address space. This means that domain memory is easily
accessible in Xen.

=== Why do we want to remove the directmap? ===

(Summarizing my understanding of the previous discussion)

Speculation attacks (like Spectre SP1) rely on loading piece of memory
in the cache. If the region is not mapped then it can't be loaded.

So removing reducing the amount of memory mapped in Xen will also
reduce the surface attack.

=== What's the performance impact? ===

As the guest memory is not always mapped, then the cost of mapping
will increase. I haven't done the numbers with this new version, but
some measurement were provided in the previous version for x86.

=== Improvement possible ===

The known area to improve on x86 are:
   * Mapcache: There was a patch sent by Hongyan:
     https://lore.kernel.org/xen-devel/4058e92ce21627731c49b588a95809dc0affd83a.1581015491.git.hongyxia@amazon.com/
   * EPT: At the moment an guest page-tabel walk requires about 20 map/unmap.
     This will have an very high impact on the performance. We need to decide
     whether keep the EPT always mapped is a problem

The original series didn't have support for Arm64. But as there were
some interest, I have provided a PoC.

There are more extra work for Arm64:
   * The mapcache is quite simple. We would investigate the performance
   * The mapcache should be made compliant to the Arm Arm (this is now
     more critical).
   * We will likely have the same problem as for the EPT.
   * We have no support for merging table to a superpage, neither
     free empty page-tables. (See more below)

=== Implementation ===

The subject is probably a misnomer. The directmap is still present but
the RAM is not mapped by default. Instead, the region will still be used
to map pages allocate via alloc_xenheap_pages().

The advantage is the solution is simple (so IHMO good enough for been
merged as a tech preview). The disadvantage is the page allocator is not
trying to keep all the xenheap pages together. So we may end up to have
an increase of page table usage.

In the longer term, we should consider to remove the direct map
completely and switch to vmap(). The main problem with this approach
is it is frequent to use mfn_to_virt() in the code. So we would need
to cache the mapping (maybe in the struct page_info).

=== Why arm32 is not covered? ===

On Arm32, the domheap and xenheap is always separated. So by design
the guest memory is not mapped by default.

At this stage, it seems unnecessary to have to map/unmap xenheap pages
every time they are allocated.

=== Why not using a separate domheap and xenheap? ===

While a separate xenheap/domheap reduce the page-table usage (all
xenheap pages are contiguous and could be always mapped), it is also
currently less scalable because the split is fixed at boot time (XXX:
Can this be dynamic?).

=== Future of secret-free hypervisor ===

There are some information in an e-mail from Andrew a few years ago:

https://lore.kernel.org/xen-devel/e3219697-0759-39fc-2486-715cdec1ca9e@citrix.com/

Cheers,

[1] https://lore.kernel.org/xen-devel/cover.1588278317.git.hongyxia@amazon.com/

*** BLURB HERE ***

Hongyan Xia (8):
  x86: Create per-domain mapping for guest_root_pt
  x86/pv: Rewrite how building PV dom0 handles domheap mappings
  x86: Add a boot option to enable and disable the direct map
  x86/domain_page: Remove the fast paths when mfn is not in the
    directmap
  xen/page_alloc: Add a path for xenheap when there is no direct map
  x86/setup: Leave early boot slightly earlier
  xen/page_alloc: vmap heap nodes when they are outside the direct map
  x86/setup: Do not create valid mappings when directmap=no

Julien Grall (5):
  xen/x86: Add support for the PMAP
  xen/arm32: mm: Rename 'first' to 'root' in init_secondary_pagetables()
  xen/arm64: mm: Use per-pCPU page-tables
  xen/arm64: Implement a mapcache for arm64
  xen/arm64: Allow the admin to enable/disable the directmap

Wei Liu (2):
  x86/pv: Use copy_domain_page() to manage domheap pages during initrd
    relocation
  x86: Initialize mapcache for PV, HVM, and idle domains

 docs/misc/xen-command-line.pandoc      | 12 ++++
 xen/arch/arm/Kconfig                   |  2 +-
 xen/arch/arm/arm64/mmu/mm.c            | 45 ++++++++++++-
 xen/arch/arm/include/asm/arm32/mm.h    |  8 ---
 xen/arch/arm/include/asm/arm64/mm.h    |  7 +-
 xen/arch/arm/include/asm/domain_page.h | 13 ++++
 xen/arch/arm/include/asm/mm.h          |  8 +++
 xen/arch/arm/include/asm/mmu/layout.h  | 13 +++-
 xen/arch/arm/include/asm/mmu/mm.h      |  2 +
 xen/arch/arm/mm.c                      |  1 +
 xen/arch/arm/mmu/domain_page.c         | 45 +++++++++++--
 xen/arch/arm/mmu/pt.c                  | 12 ++--
 xen/arch/arm/mmu/setup.c               | 28 +++-----
 xen/arch/arm/mmu/smpboot.c             | 32 +++------
 xen/arch/arm/setup.c                   |  2 +
 xen/arch/x86/Kconfig                   |  1 +
 xen/arch/x86/domain.c                  |  8 +--
 xen/arch/x86/domain_page.c             | 72 ++++++++++++++------
 xen/arch/x86/include/asm/config.h      | 10 ++-
 xen/arch/x86/include/asm/domain.h      | 13 ++--
 xen/arch/x86/include/asm/fixmap.h      | 31 +++++++++
 xen/arch/x86/include/asm/mm.h          |  6 ++
 xen/arch/x86/include/asm/pmap.h        | 35 ++++++++++
 xen/arch/x86/mm.c                      | 12 ++++
 xen/arch/x86/pv/dom0_build.c           | 70 +++++++++++++------
 xen/arch/x86/pv/domain.c               | 45 +++++++++++--
 xen/arch/x86/setup.c                   | 93 +++++++++++++++++++++++---
 xen/arch/x86/x86_64/asm-offsets.c      |  1 +
 xen/arch/x86/x86_64/entry.S            |  9 ++-
 xen/common/Kconfig                     | 18 +++++
 xen/common/domain.c                    |  9 +++
 xen/common/page_alloc.c                | 77 ++++++++++++++++++---
 xen/include/xen/mm.h                   | 11 +++
 33 files changed, 604 insertions(+), 147 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/domain_page.h
 create mode 100644 xen/arch/x86/include/asm/pmap.h

-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833730.1248938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDA-00083h-7T; Mon, 11 Nov 2024 13:12:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833730.1248938; Mon, 11 Nov 2024 13:12: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 1tAUDA-00083a-4q; Mon, 11 Nov 2024 13:12:08 +0000
Received: by outflank-mailman (input) for mailman id 833730;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUD9-0007pD-3C
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:07 +0000
Received: from smtp-fw-80009.amazon.com (smtp-fw-80009.amazon.com
 [99.78.197.220]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8978212a-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:02 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-80009.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:11:58 +0000
Received: from EX19MTAUEA002.ant.amazon.com [10.0.29.78:22725]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.48.172:2525]
 with esmtp (Farcaster)
 id 8f8c18e5-5ef7-40b5-8357-f7b9025a8ac1; Mon, 11 Nov 2024 13:11:58 +0000 (UTC)
Received: from EX19D008UEC001.ant.amazon.com (10.252.135.232) by
 EX19MTAUEA002.ant.amazon.com (10.252.134.9) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:11:58 +0000
Received: from EX19MTAUEA001.ant.amazon.com (10.252.134.203) by
 EX19D008UEC001.ant.amazon.com (10.252.135.232) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:11:57 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.2) by mail-relay.amazon.com (10.252.134.102) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:11:57 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id F080642133; Mon, 11 Nov 2024 13:11: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: 8978212a-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijk5Ljc4LjE5Ny4yMjAiLCJoZWxvIjoic210cC1mdy04MDAwOS5hbWF6b24uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg5NzgyMTJhLWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzIyLjc2MjY2NSwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330722; x=1762866722;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=601Gks7wh38jDiP8wRPfBulDLIgsNYKRD4iPPQ6CqSQ=;
  b=sw29fEW1Ke1Fj21mZOykfkfvBNuWvKCEBPWtqIXtXMD/4WkxnsYOBDRu
   4eUGHPpwhXVt5D5WL+oWlQai1af2P9MQQ8kNbL3DCyhLCIpA6rL11wttC
   5Nkq+UP4gYymnJ6NurIpYW/992+hKlf8KVIr97hU7THFRvgDt7wtYZaQb
   E=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="146255369"
X-Farcaster-Flow-ID: 8f8c18e5-5ef7-40b5-8357-f7b9025a8ac1
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 01/15] x86: Create per-domain mapping for guest_root_pt
Date: Mon, 11 Nov 2024 13:11:34 +0000
Message-ID: <20241111131148.52568-2-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Hongyan Xia <hongyxia@amazon.com>

This patch introduces a per-domain mapping for the `guest_root_pt` in PV
guests as part of the effort to remove the direct map in Xen.

For the time being, the `root_pgt` is not mapped or unmapped, as it remains
a Xenheap page. This will be addressed in subsequent patches.

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>

----
    Changes in V4:
        * Fix over-allocation issue
        * Update the mappings when switching from kernel to user-mode

    Changes in V3:
        * Rename SHADOW_ROOT
        * Haven't addressed the potentially over-allocation issue as I don't get it

    Changes in V2:
        * Rework the shadow perdomain mapping solution in the follow-up patches

    Changes since Hongyan's version:
        * Remove the final dot in the commit title

diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index f8a5a4913b07..bd360ec4141e 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -174,7 +174,7 @@
 /* Slot 260: per-domain mappings (including map cache). */
 #define PERDOMAIN_VIRT_START    (PML4_ADDR(260))
 #define PERDOMAIN_SLOT_MBYTES   (PML4_ENTRY_BYTES >> (20 + PAGETABLE_ORDER))
-#define PERDOMAIN_SLOTS         3
+#define PERDOMAIN_SLOTS         4
 #define PERDOMAIN_VIRT_SLOT(s)  (PERDOMAIN_VIRT_START + (s) * \
                                  (PERDOMAIN_SLOT_MBYTES << 20))
 /* Slot 4: mirror of per-domain mappings (for compat xlat area accesses). */
@@ -288,6 +288,14 @@ extern unsigned long xen_phys_start;
 #define ARG_XLAT_START(v)        \
     (ARG_XLAT_VIRT_START + ((v)->vcpu_id << ARG_XLAT_VA_SHIFT))
 
+/* pv_root_pt mapping area. The fourth per-domain-mapping sub-area */
+#define PV_ROOT_PT_MAPPING_VIRT_START   PERDOMAIN_VIRT_SLOT(3)
+#define PV_ROOT_PT_MAPPING_ENTRIES      MAX_VIRT_CPUS
+
+/* The address of a particular VCPU's PV_ROOT_PT */
+#define PV_ROOT_PT_MAPPING_VCPU_VIRT_START(v) \
+    (PV_ROOT_PT_MAPPING_VIRT_START + ((v)->vcpu_id * PAGE_SIZE))
+
 #define ELFSIZE 64
 
 #define ARCH_CRASH_SAVE_VMCOREINFO
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index b79d6badd71c..478ce41ad8ca 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -272,6 +272,7 @@ struct time_scale {
 struct pv_domain
 {
     l1_pgentry_t **gdt_ldt_l1tab;
+    l1_pgentry_t **root_pt_l1tab;
 
     atomic_t nr_l4_pages;
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index d537a799bced..a152e21bb086 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -516,6 +516,13 @@ void make_cr3(struct vcpu *v, mfn_t mfn)
         v->arch.cr3 |= get_pcid_bits(v, false);
 }
 
+#define pv_root_pt_idx(v) \
+    ((v)->vcpu_id >> PAGETABLE_ORDER)
+
+#define pv_root_pt_pte(v) \
+    ((v)->domain->arch.pv.root_pt_l1tab[pv_root_pt_idx(v)] + \
+     ((v)->vcpu_id & (L1_PAGETABLE_ENTRIES - 1)))
+
 void write_ptbase(struct vcpu *v)
 {
     const struct domain *d = v->domain;
@@ -527,11 +534,16 @@ void write_ptbase(struct vcpu *v)
 
     if ( is_pv_domain(d) && d->arch.pv.xpti )
     {
+        mfn_t guest_root_pt = _mfn(MASK_EXTR(v->arch.cr3, X86_CR3_ADDR_MASK));
+        l1_pgentry_t *pte = pv_root_pt_pte(v);
+
         cpu_info->root_pgt_changed = true;
         cpu_info->pv_cr3 = __pa(this_cpu(root_pgt));
         if ( new_cr4 & X86_CR4_PCIDE )
             cpu_info->pv_cr3 |= get_pcid_bits(v, true);
         switch_cr3_cr4(v->arch.cr3, new_cr4);
+
+        l1e_write(pte, l1e_from_mfn(guest_root_pt, __PAGE_HYPERVISOR_RO));
     }
     else
     {
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index d5a8564c1cbe..1a1c999743ac 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -289,6 +289,21 @@ static void pv_destroy_gdt_ldt_l1tab(struct vcpu *v)
                               1U << GDT_LDT_VCPU_SHIFT);
 }
 
+static int pv_create_root_pt_l1tab(const struct vcpu *v)
+{
+    return create_perdomain_mapping(v->domain,
+                                    PV_ROOT_PT_MAPPING_VCPU_VIRT_START(v),
+                                    1, v->domain->arch.pv.root_pt_l1tab,
+                                    NULL);
+}
+
+static void pv_destroy_root_pt_l1tab(const struct vcpu *v)
+
+{
+    destroy_perdomain_mapping(v->domain,
+                              PV_ROOT_PT_MAPPING_VCPU_VIRT_START(v), 1);
+}
+
 void pv_vcpu_destroy(struct vcpu *v)
 {
     if ( is_pv_32bit_vcpu(v) )
@@ -298,6 +313,7 @@ void pv_vcpu_destroy(struct vcpu *v)
     }
 
     pv_destroy_gdt_ldt_l1tab(v);
+    pv_destroy_root_pt_l1tab(v);
     XFREE(v->arch.pv.trap_ctxt);
 }
 
@@ -312,6 +328,13 @@ int pv_vcpu_initialise(struct vcpu *v)
     if ( rc )
         return rc;
 
+    if ( v->domain->arch.pv.xpti )
+    {
+        rc = pv_create_root_pt_l1tab(v);
+        if ( rc )
+            goto done;
+    }
+
     BUILD_BUG_ON(X86_NR_VECTORS * sizeof(*v->arch.pv.trap_ctxt) >
                  PAGE_SIZE);
     v->arch.pv.trap_ctxt = xzalloc_array(struct trap_info, X86_NR_VECTORS);
@@ -347,10 +370,12 @@ void pv_domain_destroy(struct domain *d)
 
     destroy_perdomain_mapping(d, GDT_LDT_VIRT_START,
                               GDT_LDT_MBYTES << (20 - PAGE_SHIFT));
+    destroy_perdomain_mapping(d, PV_ROOT_PT_MAPPING_VIRT_START, d->max_vcpus);
 
     XFREE(d->arch.pv.cpuidmasks);
 
     FREE_XENHEAP_PAGE(d->arch.pv.gdt_ldt_l1tab);
+    FREE_XENHEAP_PAGE(d->arch.pv.root_pt_l1tab);
 }
 
 void noreturn cf_check continue_pv_domain(void);
@@ -382,8 +407,22 @@ int pv_domain_initialise(struct domain *d)
     if ( rc )
         goto fail;
 
+    rc = create_perdomain_mapping(d, PV_ROOT_PT_MAPPING_VIRT_START,
+                                  d->max_vcpus, NULL, NULL);
+    if ( rc )
+        goto fail;
+
     d->arch.ctxt_switch = &pv_csw;
 
+    if ( d->arch.pv.xpti )
+    {
+        d->arch.pv.root_pt_l1tab =
+            xzalloc_array(l1_pgentry_t *,
+                          DIV_ROUND_UP(d->max_vcpus, L1_PAGETABLE_ENTRIES));
+        if ( !d->arch.pv.root_pt_l1tab )
+            goto fail;
+    }
+
     if ( !is_pv_32bit_domain(d) && use_invpcid && cpu_has_pcid )
         switch ( ACCESS_ONCE(opt_pcid) )
         {
@@ -457,7 +496,8 @@ static void _toggle_guest_pt(struct vcpu *v)
             guest_update = false;
         }
     }
-    write_cr3(cr3);
+
+    write_ptbase(v);
 
     if ( !pagetable_is_null(old_shadow) )
         shadow_put_top_level(v->domain, old_shadow);
@@ -497,9 +537,6 @@ void toggle_guest_mode(struct vcpu *v)
     {
         struct cpu_info *cpu_info = get_cpu_info();
 
-        cpu_info->root_pgt_changed = true;
-        cpu_info->pv_cr3 = __pa(this_cpu(root_pgt)) |
-                           (d->arch.pv.pcid ? get_pcid_bits(v, true) : 0);
         /*
          * As in _toggle_guest_pt() the XPTI CR3 write needs to be a TLB-
          * flushing one too for shadow mode guests.
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index 630bdc39451d..c1ae5013af96 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -80,6 +80,7 @@ void __dummy__(void)
 
 #undef OFFSET_EF
 
+    OFFSET(VCPU_id, struct vcpu, vcpu_id);
     OFFSET(VCPU_processor, struct vcpu, processor);
     OFFSET(VCPU_domain, struct vcpu, domain);
     OFFSET(VCPU_vcpu_info, struct vcpu, vcpu_info_area.map);
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index c5c723b5f4d4..91413b905768 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -170,9 +170,16 @@ FUNC_LOCAL(restore_all_guest)
         movabs $PADDR_MASK & PAGE_MASK, %rsi
         movabs $DIRECTMAP_VIRT_START, %rcx
         and   %rsi, %rdi
-        and   %r9, %rsi
         add   %rcx, %rdi
+
+        /*
+         * The address in the vCPU cr3 is always mapped in the per-domain
+         * pv_root_pt virt area.
+         */
+        imul  $PAGE_SIZE, VCPU_id(%rbx), %esi
+        movabs $PV_ROOT_PT_MAPPING_VIRT_START, %rcx
         add   %rcx, %rsi
+
         mov   $ROOT_PAGETABLE_FIRST_XEN_SLOT, %ecx
         mov   root_table_offset(SH_LINEAR_PT_VIRT_START)*8(%rsi), %r8
         mov   %r8, root_table_offset(SH_LINEAR_PT_VIRT_START)*8(%rdi)
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833737.1249007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDJ-0001UW-Ko; Mon, 11 Nov 2024 13:12:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833737.1249007; Mon, 11 Nov 2024 13:12: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 1tAUDJ-0001TF-Dw; Mon, 11 Nov 2024 13:12:17 +0000
Received: by outflank-mailman (input) for mailman id 833737;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDH-0007pD-Tf
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:15 +0000
Received: from smtp-fw-33001.amazon.com (smtp-fw-33001.amazon.com
 [207.171.190.10]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90309600-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:12 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-33001.sea14.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:01 +0000
Received: from EX19MTAUEA002.ant.amazon.com [10.0.29.78:8022]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.2.148:2525]
 with esmtp (Farcaster)
 id dff3dd00-8cd9-4bb9-b6ef-ebfce155ae6f; Mon, 11 Nov 2024 13:12:00 +0000 (UTC)
Received: from EX19D008UEC002.ant.amazon.com (10.252.135.242) by
 EX19MTAUEA002.ant.amazon.com (10.252.134.9) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:00 +0000
Received: from EX19MTAUWA002.ant.amazon.com (10.250.64.202) by
 EX19D008UEC002.ant.amazon.com (10.252.135.242) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:00 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.25.36.210) by mail-relay.amazon.com (10.250.64.203) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:11:59 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id D055E42133; Mon, 11 Nov 2024 13:11:58 +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: 90309600-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwNy4xNzEuMTkwLjEwIiwiaGVsbyI6InNtdHAtZnctMzMwMDEuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkwMzA5NjAwLWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzMyLjY1NDY0LCJzZW5kZXIiOiJwcnZzPTAzOGQyNmQwYz1lbGlhc2VseUBhbWF6b24uY28udWsiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330732; x=1762866732;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=/tLv/Mj9rM9rSMwdem6Juel9nD8vKLvFdLzTdroDEjo=;
  b=pwIeb0jmMmYs967RITA9UYTZS8YR5ZZzdtWgUSTsg2t3OTscoY497a5+
   QeAXpETKvR8+WBYG4H6R2NtBHG71pzofKyLk1z7/YY7JQTZx7lKmlIJPh
   jc6CDAJLn7gb9QMEBV7N19oT6LjSfBuvl1DLj99mF4CUYiKEfe6gukCqW
   M=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="384186349"
X-Farcaster-Flow-ID: dff3dd00-8cd9-4bb9-b6ef-ebfce155ae6f
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 03/15] x86/pv: Rewrite how building PV dom0 handles domheap mappings
Date: Mon, 11 Nov 2024 13:11:36 +0000
Message-ID: <20241111131148.52568-4-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Hongyan Xia <hongyxia@amazon.com>

Building a PV dom0 is allocating from the domheap but uses it like the
xenheap. Use the pages as they should be.

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>

----
    Changes in V4:
        * Reduce the scope of l{1,2,4}start_mfn variables
        * Make the macro `UNMAP_MAP_AND_ADVANCE` return the new virtual address

    Changes in V3:
        * Fold following patch 'x86/pv: Map L4 page table for shim domain'

    Changes in V2:
        * Clarify the commit message
        * Break the patch in two parts

    Changes since Hongyan's version:
        * Rebase
        * Remove spurious newline

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 18b7a3e4e025..b03df609cadb 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -382,6 +382,7 @@ static int __init dom0_construct(struct domain *d,
     l3_pgentry_t *l3tab = NULL, *l3start = NULL;
     l2_pgentry_t *l2tab = NULL, *l2start = NULL;
     l1_pgentry_t *l1tab = NULL, *l1start = NULL;
+    mfn_t l3start_mfn = INVALID_MFN;
 
     /*
      * This fully describes the memory layout of the initial domain. All
@@ -719,22 +720,34 @@ static int __init dom0_construct(struct domain *d,
         v->arch.pv.event_callback_cs    = FLAT_COMPAT_KERNEL_CS;
     }
 
+#define UNMAP_MAP_AND_ADVANCE(mfn_var, virt_var, maddr) ({  \
+    do {                                                    \
+        unmap_domain_page(virt_var);                        \
+        mfn_var = maddr_to_mfn(maddr);                      \
+        maddr += PAGE_SIZE;                                 \
+        virt_var = map_domain_page(mfn_var);                \
+    } while ( false );                                      \
+    virt_var;                                               \
+})
+
     if ( !compat )
     {
+        mfn_t l4start_mfn;
         maddr_to_page(mpt_alloc)->u.inuse.type_info = PGT_l4_page_table;
-        l4start = l4tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
+        l4tab = UNMAP_MAP_AND_ADVANCE(l4start_mfn, l4start, mpt_alloc);
         clear_page(l4tab);
-        init_xen_l4_slots(l4tab, _mfn(virt_to_mfn(l4start)),
-                          d, INVALID_MFN, true);
-        v->arch.guest_table = pagetable_from_paddr(__pa(l4start));
+        init_xen_l4_slots(l4tab, l4start_mfn, d, INVALID_MFN, true);
+        v->arch.guest_table = pagetable_from_mfn(l4start_mfn);
     }
     else
     {
         /* Monitor table already created by switch_compat(). */
-        l4start = l4tab = __va(pagetable_get_paddr(v->arch.guest_table));
+        mfn_t l4start_mfn = pagetable_get_mfn(v->arch.guest_table);
+        l4start = l4tab = map_domain_page(l4start_mfn);
         /* See public/xen.h on why the following is needed. */
         maddr_to_page(mpt_alloc)->u.inuse.type_info = PGT_l3_page_table;
         l3start = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
+        UNMAP_MAP_AND_ADVANCE(l3start_mfn, l3start, mpt_alloc);
     }
 
     l4tab += l4_table_offset(v_start);
@@ -743,15 +756,17 @@ static int __init dom0_construct(struct domain *d,
     {
         if ( !((unsigned long)l1tab & (PAGE_SIZE-1)) )
         {
+            mfn_t l1start_mfn;
             maddr_to_page(mpt_alloc)->u.inuse.type_info = PGT_l1_page_table;
-            l1start = l1tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
+            l1tab = UNMAP_MAP_AND_ADVANCE(l1start_mfn, l1start, mpt_alloc);
             clear_page(l1tab);
             if ( count == 0 )
                 l1tab += l1_table_offset(v_start);
             if ( !((unsigned long)l2tab & (PAGE_SIZE-1)) )
             {
+                mfn_t l2start_mfn;
                 maddr_to_page(mpt_alloc)->u.inuse.type_info = PGT_l2_page_table;
-                l2start = l2tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
+                l2tab = UNMAP_MAP_AND_ADVANCE(l2start_mfn, l2start, mpt_alloc);
                 clear_page(l2tab);
                 if ( count == 0 )
                     l2tab += l2_table_offset(v_start);
@@ -761,19 +776,19 @@ static int __init dom0_construct(struct domain *d,
                     {
                         maddr_to_page(mpt_alloc)->u.inuse.type_info =
                             PGT_l3_page_table;
-                        l3start = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
+                        UNMAP_MAP_AND_ADVANCE(l3start_mfn, l3start, mpt_alloc);
                     }
                     l3tab = l3start;
                     clear_page(l3tab);
                     if ( count == 0 )
                         l3tab += l3_table_offset(v_start);
-                    *l4tab = l4e_from_paddr(__pa(l3start), L4_PROT);
+                    *l4tab = l4e_from_mfn(l3start_mfn, L4_PROT);
                     l4tab++;
                 }
-                *l3tab = l3e_from_paddr(__pa(l2start), L3_PROT);
+                *l3tab = l3e_from_mfn(l2start_mfn, L3_PROT);
                 l3tab++;
             }
-            *l2tab = l2e_from_paddr(__pa(l1start), L2_PROT);
+            *l2tab = l2e_from_mfn(l1start_mfn, L2_PROT);
             l2tab++;
         }
         if ( count < initrd_pfn || count >= initrd_pfn + PFN_UP(initrd_len) )
@@ -792,27 +807,32 @@ static int __init dom0_construct(struct domain *d,
 
     if ( compat )
     {
-        l2_pgentry_t *l2t;
-
         /* Ensure the first four L3 entries are all populated. */
         for ( i = 0, l3tab = l3start; i < 4; ++i, ++l3tab )
         {
             if ( !l3e_get_intpte(*l3tab) )
             {
+                mfn_t l2start_mfn;
                 maddr_to_page(mpt_alloc)->u.inuse.type_info = PGT_l2_page_table;
-                l2tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
-                clear_page(l2tab);
-                *l3tab = l3e_from_paddr(__pa(l2tab), L3_PROT);
+                UNMAP_MAP_AND_ADVANCE(l2start_mfn, l2start, mpt_alloc);
+                clear_page(l2start);
+                *l3tab = l3e_from_mfn(l2start_mfn, L3_PROT);
             }
             if ( i == 3 )
                 l3e_get_page(*l3tab)->u.inuse.type_info |= PGT_pae_xen_l2;
         }
 
-        l2t = map_l2t_from_l3e(l3start[3]);
-        init_xen_pae_l2_slots(l2t, d);
-        unmap_domain_page(l2t);
+        UNMAP_DOMAIN_PAGE(l2start);
+        l2start = map_l2t_from_l3e(l3start[3]);
+        init_xen_pae_l2_slots(l2start, d);
     }
 
+#undef UNMAP_MAP_AND_ADVANCE
+
+    UNMAP_DOMAIN_PAGE(l1start);
+    UNMAP_DOMAIN_PAGE(l2start);
+    UNMAP_DOMAIN_PAGE(l3start);
+
     /* Pages that are part of page tables must be read only. */
     mark_pv_pt_pages_rdonly(d, l4start, vpt_start, nr_pt_pages, &flush_flags);
 
@@ -987,6 +1007,8 @@ static int __init dom0_construct(struct domain *d,
         pv_shim_setup_dom(d, l4start, v_start, vxenstore_start, vconsole_start,
                           vphysmap_start, si);
 
+    UNMAP_DOMAIN_PAGE(l4start);
+
 #ifdef CONFIG_COMPAT
     if ( compat )
         xlat_start_info(si, pv_shim ? XLAT_start_info_console_domU
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833738.1249013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDK-0001Wu-0y; Mon, 11 Nov 2024 13:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833738.1249013; Mon, 11 Nov 2024 13:12: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 1tAUDJ-0001Vs-PJ; Mon, 11 Nov 2024 13:12:17 +0000
Received: by outflank-mailman (input) for mailman id 833738;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDI-0007pD-EM
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:16 +0000
Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90d36f5a-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:13 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.6])
 by smtp-border-fw-6002.iad6.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:13 +0000
Received: from EX19MTAUEB001.ant.amazon.com [10.0.29.78:50931]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.13.234:2525]
 with esmtp (Farcaster)
 id a1ffee9a-7842-4772-85e8-fde919810a08; Mon, 11 Nov 2024 13:12:12 +0000 (UTC)
Received: from EX19D008UEA004.ant.amazon.com (10.252.134.191) by
 EX19MTAUEB001.ant.amazon.com (10.252.135.108) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:08 +0000
Received: from EX19MTAUEA001.ant.amazon.com (10.252.134.203) by
 EX19D008UEA004.ant.amazon.com (10.252.134.191) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:08 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.2) by mail-relay.amazon.com (10.252.134.102) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:08 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id B675042133; Mon, 11 Nov 2024 13:12: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: 90d36f5a-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjUyLjk1LjQ5LjkwIiwiaGVsbyI6InNtdHAtZnctNjAwMi5hbWF6b24uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkwZDM2ZjVhLWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzMzLjU3MTAzNywic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330733; x=1762866733;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=uTEyDEzhij10JykQYqF4bj3lestatykDkvzvvdqANyk=;
  b=OrywVCXLTmknfn/B7LAXu7uitHOtfn497TWX2pN+cYNtlhMvqMuaLgCy
   9w5p5TwHX6g+bWGmfev2GVoOwIyVoBPiHrQorNafGOIqQhtAWr6kefE3T
   wOMXawbn2VTvIPl+GM9TS9G0nqoPS3tpKOWbLphm99WgomK+Vyncp7dl7
   A=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="447823638"
X-Farcaster-Flow-ID: a1ffee9a-7842-4772-85e8-fde919810a08
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 09/15] x86/setup: Leave early boot slightly earlier
Date: Mon, 11 Nov 2024 13:11:42 +0000
Message-ID: <20241111131148.52568-10-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Hongyan Xia <hongyxia@amazon.com>

When we do not have a direct map, memory for metadata of heap nodes in
init_node_heap() is allocated from xenheap, which needs to be mapped and
unmapped on demand. However, we cannot just take memory from the boot
allocator to create the PTEs while we are passing memory to the heap
allocator.

To solve this race, we leave early boot slightly sooner so that Xen PTE
pages are allocated from the heap instead of the boot allocator. We can
do this because the metadata for the 1st node is statically allocated,
and by the time we need memory to create mappings for the 2nd node, we
already have enough memory in the heap allocator in the 1st node.

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>

----

    Changes in v4:
        * Fix indentation
        * Refactor the code to reduce code duplication

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index a3c21ca05099..4e258419ac34 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1822,6 +1822,22 @@ void asmlinkage __init noreturn __start_xen(void)
 
     numa_initmem_init(0, raw_max_page);
 
+    /*
+     * When we do not have a direct map, memory for metadata of heap nodes in
+     * init_node_heap() is allocated from xenheap, which needs to be mapped and
+     * unmapped on demand. However, we cannot just take memory from the boot
+     * allocator to create the PTEs while we are passing memory to the heap
+     * allocator during end_boot_allocator().
+     *
+     * To solve this race, we need to leave early boot before
+     * end_boot_allocator() so that Xen PTE pages are allocated from the heap
+     * instead of the boot allocator. We can do this because the metadata for
+     * the 1st node is statically allocated, and by the time we need memory to
+     * create mappings for the 2nd node, we already have enough memory in the
+     * heap allocator in the 1st node.
+     */
+    system_state = SYS_STATE_boot;
+
     if ( max_page - 1 > virt_to_mfn(HYPERVISOR_VIRT_END - 1) )
     {
         unsigned long lo = virt_to_mfn(HYPERVISOR_VIRT_END - 1);
@@ -1853,8 +1869,6 @@ void asmlinkage __init noreturn __start_xen(void)
     else
         end_boot_allocator();
 
-    system_state = SYS_STATE_boot;
-
     bsp_stack = cpu_alloc_stack(0);
     if ( !bsp_stack )
         panic("No memory for BSP stack\n");
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833742.1249028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDN-0002Cl-92; Mon, 11 Nov 2024 13:12:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833742.1249028; Mon, 11 Nov 2024 13:12: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 1tAUDN-0002CX-3Q; Mon, 11 Nov 2024 13:12:21 +0000
Received: by outflank-mailman (input) for mailman id 833742;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDL-0007pD-HN
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:19 +0000
Received: from smtp-fw-33001.amazon.com (smtp-fw-33001.amazon.com
 [207.171.190.10]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9288da4e-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:16 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-33001.sea14.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:15 +0000
Received: from EX19MTAUEA002.ant.amazon.com [10.0.29.78:36658]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.2.104:2525]
 with esmtp (Farcaster)
 id 175b2100-e97e-462f-a456-f6bcc4ede293; Mon, 11 Nov 2024 13:12:14 +0000 (UTC)
Received: from EX19D008UEA004.ant.amazon.com (10.252.134.191) by
 EX19MTAUEA002.ant.amazon.com (10.252.134.9) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:09 +0000
Received: from EX19MTAUEC001.ant.amazon.com (10.252.135.222) by
 EX19D008UEA004.ant.amazon.com (10.252.134.191) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:09 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.6) by mail-relay.amazon.com (10.252.135.200) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:09 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 0F33642135; Mon, 11 Nov 2024 13:12:07 +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: 9288da4e-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwNy4xNzEuMTkwLjEwIiwiaGVsbyI6InNtdHAtZnctMzMwMDEuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkyODhkYTRlLWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzM2LjU4MzE5Mywic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330736; x=1762866736;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=W0GanGvpA+3jTX9LxsfCUWpnROXG+vaTFolekFzAvck=;
  b=rPFgZDyOcO4DgzkQmMQ2VmrrXobUC6r48N+kWpfpOLPKBxDKa9iE4Wju
   r6FilQTS3QPZTZHTezii9AhfXozx9tuqYobIw/6K7zkdWMl9O9dOh+3zY
   mz5+Tq8GiKvOvOn2vELQsq+QF6mIlDYFaRNgupGO4xxH22KNhzmDIW/mi
   g=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="384186415"
X-Farcaster-Flow-ID: 175b2100-e97e-462f-a456-f6bcc4ede293
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 10/15] xen/page_alloc: vmap heap nodes when they are outside the direct map
Date: Mon, 11 Nov 2024 13:11:43 +0000
Message-ID: <20241111131148.52568-11-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Hongyan Xia <hongyxia@amazon.com>

When we do not have a direct map, archs_mfn_in_direct_map() will always
return false, thus init_node_heap() will allocate xenheap pages from an
existing node for the metadata of a new node. This means that the
metadata of a new node is in a different node, slowing down heap
allocation.

Since we now have early vmap, vmap the metadata locally in the new node.

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>

----

    Changes in v4:
        * Change type of the parameters to paddr_t
        * Use clear_domain_page() instead of open-coding it

    Changes in v2:
        * vmap_contig_pages() was renamed to vmap_contig()
        * Fix indentation and coding style

    Changes from Hongyan's version:
        * arch_mfn_in_direct_map() was renamed to
          arch_mfns_in_direct_map()
        * Use vmap_contig_pages() rather than __vmap(...).
        * Add missing include (xen/vmap.h) so it compiles on Arm

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 2cef521ad85a..62cdeb5013a3 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -137,6 +137,7 @@
 #include <xen/sections.h>
 #include <xen/softirq.h>
 #include <xen/spinlock.h>
+#include <xen/vmap.h>
 
 #include <asm/flushtlb.h>
 #include <asm/page.h>
@@ -606,22 +607,32 @@ static unsigned long init_node_heap(int node, unsigned long mfn,
         needed = 0;
     }
     else if ( *use_tail && nr >= needed &&
-              arch_mfns_in_directmap(mfn + nr - needed, needed) &&
               (!xenheap_bits ||
                !((mfn + nr - 1) >> (xenheap_bits - PAGE_SHIFT))) )
     {
-        _heap[node] = mfn_to_virt(mfn + nr - needed);
-        avail[node] = mfn_to_virt(mfn + nr - 1) +
-                      PAGE_SIZE - sizeof(**avail) * NR_ZONES;
+        if ( arch_mfns_in_directmap(mfn + nr - needed, needed) )
+            _heap[node] = mfn_to_virt(mfn + nr - needed);
+        else
+            _heap[node] = vmap_contig(_mfn(mfn + nr - needed), needed);
+
+        BUG_ON(!_heap[node]);
+        avail[node] = (void *)(_heap[node]) + (needed << PAGE_SHIFT) -
+                        sizeof(**avail) * NR_ZONES;
+
     }
     else if ( nr >= needed &&
-              arch_mfns_in_directmap(mfn, needed) &&
               (!xenheap_bits ||
-               !((mfn + needed - 1) >> (xenheap_bits - PAGE_SHIFT))) )
+              !((mfn + needed - 1) >> (xenheap_bits - PAGE_SHIFT))) )
     {
-        _heap[node] = mfn_to_virt(mfn);
-        avail[node] = mfn_to_virt(mfn + needed - 1) +
-                      PAGE_SIZE - sizeof(**avail) * NR_ZONES;
+        if ( arch_mfns_in_directmap(mfn + nr - needed, needed) )
+            _heap[node] = mfn_to_virt(mfn + nr - needed);
+        else
+            _heap[node] = vmap_contig(_mfn(mfn + nr - needed), needed);
+
+        BUG_ON(!_heap[node]);
+        avail[node] = (void *)(_heap[node]) + (needed << PAGE_SHIFT) -
+                        sizeof(**avail) * NR_ZONES;
+
         *use_tail = false;
     }
     else if ( get_order_from_bytes(sizeof(**_heap)) ==
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833744.1249034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDN-0002IC-TN; Mon, 11 Nov 2024 13:12:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833744.1249034; Mon, 11 Nov 2024 13:12: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 1tAUDN-0002HD-Kk; Mon, 11 Nov 2024 13:12:21 +0000
Received: by outflank-mailman (input) for mailman id 833744;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDM-0007pD-Ki
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:20 +0000
Received: from smtp-fw-80009.amazon.com (smtp-fw-80009.amazon.com
 [99.78.197.220]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 926adfa4-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:17 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-80009.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:14 +0000
Received: from EX19MTAUEA001.ant.amazon.com [10.0.44.209:9713]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.28.135:2525]
 with esmtp (Farcaster)
 id 48b4a276-1a66-4074-bd7b-085f57bc54d0; Mon, 11 Nov 2024 13:12:14 +0000 (UTC)
Received: from EX19D008UEA004.ant.amazon.com (10.252.134.191) by
 EX19MTAUEA001.ant.amazon.com (10.252.134.203) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:10 +0000
Received: from EX19MTAUWA001.ant.amazon.com (10.250.64.204) by
 EX19D008UEA004.ant.amazon.com (10.252.134.191) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:10 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.25.36.214) by mail-relay.amazon.com (10.250.64.204) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:10 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 5C20A42133; Mon, 11 Nov 2024 13:12: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: 926adfa4-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijk5Ljc4LjE5Ny4yMjAiLCJoZWxvIjoic210cC1mdy04MDAwOS5hbWF6b24uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkyNmFkZmE0LWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzM3LjU3NDgwMSwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330737; x=1762866737;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=NbnwLhZKUKoYnkTOzveP1+7G4/9UJh8Fxdfo/6vpj1s=;
  b=ovX13qpUSVTyHFLvS6DgQbqszCqxznh/8OmWV0I1x4M9ggK+s6glj5Uz
   jFFQKNGjQJTXseuHz61eTilBrTx2Lp9kG00VVTYZoDq+yxN07GE+sUStO
   B4cBqyE83v2KU5iqI+hXLcU6a3hb3Kjd1n+uneOA/7K+Edevp3gaGszEe
   c=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="146255449"
X-Farcaster-Flow-ID: 48b4a276-1a66-4074-bd7b-085f57bc54d0
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Hongyan Xia
	<hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>, Elias El Yandouzi
	<eliasely@amazon.com>
Subject: [PATCH V4 11/15] x86/setup: Do not create valid mappings when directmap=no
Date: Mon, 11 Nov 2024 13:11:44 +0000
Message-ID: <20241111131148.52568-12-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

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>

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 4e258419ac34..1633ed0302b1 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1022,6 +1022,56 @@ static struct domain *__init create_dom0(const module_t *image,
     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)];
+
+            if ( !(l4e_get_flags(*pl4e) & _PAGE_PRESENT) )
+            {
+                mfn_t mfn = alloc_boot_pages(1, 1);
+
+                clear_domain_page(mfn);
+                l4e_write(pl4e, l4e_from_mfn(mfn, __PAGE_HYPERVISOR));
+            }
+        }
+    }
+}
+
 /* How much of the directmap is prebuilt at compile time. */
 #define PREBUILT_MAP_LIMIT (1 << L2_PAGETABLE_SHIFT)
 
@@ -1670,8 +1720,17 @@ void asmlinkage __init noreturn __start_xen(void)
         map_e = min_t(uint64_t, e,
                       ARRAY_SIZE(l2_directmap) << L2_PAGETABLE_SHIFT);
 
-        /* Pass mapped memory to allocator /before/ creating new mappings. */
+        /*
+         * Pass mapped memory to allocator /before/ creating new mappings.
+         * The direct map for the bottom 4GiB has been populated in the first
+         * e820 pass. In the second pass, we make sure those existing mappings
+         * are destroyed when directmap=no.
+         */
         init_boot_pages(s, min(map_s, e));
+        if ( !has_directmap() )
+            destroy_xen_mappings((unsigned long)__va(s),
+                                 (unsigned long)__va(min(map_s, e)));
+
         s = map_s;
         if ( s < map_e )
         {
@@ -1679,6 +1738,9 @@ void asmlinkage __init noreturn __start_xen(void)
             map_s = (s + mask) & ~mask;
             map_e &= ~mask;
             init_boot_pages(map_s, map_e);
+            if ( !has_directmap() )
+                destroy_xen_mappings((unsigned long)__va(map_s),
+                                     (unsigned long)__va(map_e));
         }
 
         if ( map_s > map_e )
@@ -1692,8 +1754,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
             if ( map_e < end )
             {
-                map_pages_to_xen((unsigned long)__va(map_e), maddr_to_mfn(map_e),
-                                 PFN_DOWN(end - map_e), PAGE_HYPERVISOR);
+                populate_directmap(map_e, end, PAGE_HYPERVISOR);
                 init_boot_pages(map_e, end);
                 map_e = end;
             }
@@ -1702,13 +1763,11 @@ void asmlinkage __init noreturn __start_xen(void)
         {
             /* This range must not be passed to the boot allocator and
              * must also not be mapped with _PAGE_GLOBAL. */
-            map_pages_to_xen((unsigned long)__va(map_e), maddr_to_mfn(map_e),
-                             PFN_DOWN(e - map_e), __PAGE_HYPERVISOR_RW);
+            populate_directmap(map_e, e, __PAGE_HYPERVISOR_RW);
         }
         if ( s < map_s )
         {
-            map_pages_to_xen((unsigned long)__va(s), maddr_to_mfn(s),
-                             PFN_DOWN(map_s - s), PAGE_HYPERVISOR);
+            populate_directmap(s, map_s, PAGE_HYPERVISOR);
             init_boot_pages(s, map_s);
         }
     }
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833745.1249041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDO-0002Rc-K4; Mon, 11 Nov 2024 13:12:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833745.1249041; Mon, 11 Nov 2024 13:12: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 1tAUDO-0002QL-8b; Mon, 11 Nov 2024 13:12:22 +0000
Received: by outflank-mailman (input) for mailman id 833745;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDM-0008Hn-NC
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:20 +0000
Received: from smtp-fw-6001.amazon.com (smtp-fw-6001.amazon.com [52.95.48.154])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 932399e7-a02e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 14:12:17 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.2])
 by smtp-border-fw-6001.iad6.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:14 +0000
Received: from EX19MTAUEC001.ant.amazon.com [10.0.44.209:15977]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.2.148:2525]
 with esmtp (Farcaster)
 id 71b9e65c-e286-4e80-970a-17bc9d0d5a85; Mon, 11 Nov 2024 13:12:13 +0000 (UTC)
Received: from EX19D008UEA001.ant.amazon.com (10.252.134.62) by
 EX19MTAUEC001.ant.amazon.com (10.252.135.222) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:13 +0000
Received: from EX19MTAUWC002.ant.amazon.com (10.250.64.143) by
 EX19D008UEA001.ant.amazon.com (10.252.134.62) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:13 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.25.36.210) by mail-relay.amazon.com (10.250.64.149) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:12 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id D8E7542116; Mon, 11 Nov 2024 13:12:11 +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: 932399e7-a02e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjUyLjk1LjQ4LjE1NCIsImhlbG8iOiJzbXRwLWZ3LTYwMDEuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkzMjM5OWU3LWEwMmUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzMwNzM4LjA5Njk4Mywic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330738; x=1762866738;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=a3qHJmgpqMWwC9H8xuKHEpxdqP0+YnnyLyKfARA+G5s=;
  b=ZhqJMhk3dK5wlug/OY08MdEPt7iNVamZ6gfbPvlJZx0xSRs4zt9nG/I2
   ssBCgUP8JXrJDH5s7qFgeBnkyoTD31a9RygP5xeoywwA+A6PQgtvcba2R
   DuYeVSUNYlaGCPfp3WcJ1abvk4rvRpLKAPRnTti6JFHE/AZ8KawmB0UMw
   E=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="438680628"
X-Farcaster-Flow-ID: 71b9e65c-e286-4e80-970a-17bc9d0d5a85
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Julien Grall
	<jgrall@amazon.com>, Elias El Yandouzi <eliasely@amazon.com>
Subject: [PATCH V4 13/15] xen/arm64: mm: Use per-pCPU page-tables
Date: Mon, 11 Nov 2024 13:11:46 +0000
Message-ID: <20241111131148.52568-14-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Julien Grall <jgrall@amazon.com>

At the moment, on Arm64, every pCPU is sharing the same page-tables.

In a follow-up patch, we will allow the possibility to remove the
direct map and therefore it will be necessary to have a mapcache.

While we have plenty of spare virtual address space to reserve part
for each pCPU, it means that temporary mappings (e.g. guest memory)
could be accessible by every pCPU.

In order to increase our security posture, it would be better if
those mappings are only accessible by the pCPU doing the temporary
mapping.

In addition to that, a per-pCPU page-tables opens the way to have
per-domain mapping area.

Arm32 is already using per-pCPU page-tables so most of the code
can be re-used. Arm64 doesn't yet have support for the mapcache,
so a stub is provided (moved to its own header asm/domain_page.h).

Take the opportunity to fix a typo in a comment that is modified.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>

----

    Changelog since v1:
        * Rebase
        * Fix typoes

diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index 671eaadbc1d5..c1c6450ca2e3 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -76,6 +76,7 @@ static void __init prepare_runtime_identity_mapping(void)
     paddr_t id_addr = virt_to_maddr(_start);
     lpae_t pte;
     DECLARE_OFFSETS(id_offsets, id_addr);
+    lpae_t *root = this_cpu(xen_pgtable);
 
     if ( id_offsets[0] >= IDENTITY_MAPPING_AREA_NR_L0 )
         panic("Cannot handle ID mapping above %uTB\n",
@@ -86,7 +87,7 @@ static void __init prepare_runtime_identity_mapping(void)
     pte.pt.table = 1;
     pte.pt.xn = 0;
 
-    write_pte(&xen_pgtable[id_offsets[0]], pte);
+    write_pte(&root[id_offsets[0]], pte);
 
     /* Link second ID table */
     pte = pte_of_xenaddr((vaddr_t)xen_second_id);
diff --git a/xen/arch/arm/include/asm/arm32/mm.h b/xen/arch/arm/include/asm/arm32/mm.h
index 856f2dbec4ad..87a315db013d 100644
--- a/xen/arch/arm/include/asm/arm32/mm.h
+++ b/xen/arch/arm/include/asm/arm32/mm.h
@@ -1,12 +1,6 @@
 #ifndef __ARM_ARM32_MM_H__
 #define __ARM_ARM32_MM_H__
 
-#include <xen/percpu.h>
-
-#include <asm/lpae.h>
-
-DECLARE_PER_CPU(lpae_t *, xen_pgtable);
-
 /*
  * Only a limited amount of RAM, called xenheap, is always mapped on ARM32.
  * For convenience always return false.
@@ -16,8 +10,6 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
     return false;
 }
 
-bool init_domheap_mappings(unsigned int cpu);
-
 static inline void arch_setup_page_tables(void)
 {
 }
diff --git a/xen/arch/arm/include/asm/domain_page.h b/xen/arch/arm/include/asm/domain_page.h
new file mode 100644
index 000000000000..e9f52685e2ec
--- /dev/null
+++ b/xen/arch/arm/include/asm/domain_page.h
@@ -0,0 +1,13 @@
+#ifndef __ASM_ARM_DOMAIN_PAGE_H__
+#define __ASM_ARM_DOMAIN_PAGE_H__
+
+#ifdef CONFIG_ARCH_MAP_DOMAIN_PAGE
+bool init_domheap_mappings(unsigned int cpu);
+#else
+static inline bool init_domheap_mappings(unsigned int cpu)
+{
+    return true;
+}
+#endif
+
+#endif /* __ASM_ARM_DOMAIN_PAGE_H__ */
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 5abd4b0d1c73..cbfaeb2c4da1 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -2,6 +2,9 @@
 #define __ARCH_ARM_MM__
 
 #include <xen/kernel.h>
+#include <xen/percpu.h>
+
+#include <asm/lpae.h>
 #include <asm/page.h>
 #include <public/xen.h>
 #include <xen/pdx.h>
diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index c5e03a66bf9e..c03c3a51e46b 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -2,6 +2,8 @@
 #ifndef __ARM_MMU_MM_H__
 #define __ARM_MMU_MM_H__
 
+DECLARE_PER_CPU(lpae_t *, xen_pgtable);
+
 /* Non-boot CPUs use this to find the correct pagetables. */
 extern uint64_t init_ttbr;
 
diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
index da28d669e796..1ed1a53ab1f2 100644
--- a/xen/arch/arm/mmu/pt.c
+++ b/xen/arch/arm/mmu/pt.c
@@ -607,9 +607,9 @@ static int xen_pt_update(unsigned long virt,
     unsigned long left = nr_mfns;
 
     /*
-     * For arm32, page-tables are different on each CPUs. Yet, they share
-     * some common mappings. It is assumed that only common mappings
-     * will be modified with this function.
+     * Page-tables are different on each CPU. Yet, they share some common
+     * mappings. It is assumed that only common mappings will be modified
+     * with this function.
      *
      * XXX: Add a check.
      */
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 9664e85ee6c0..850a961ae5ef 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -30,17 +30,15 @@
  * PCPUs.
  */
 
-#ifdef CONFIG_ARM_64
-DEFINE_PAGE_TABLE(xen_pgtable);
-static DEFINE_PAGE_TABLE(xen_first);
-#define THIS_CPU_PGTABLE xen_pgtable
-#else
 /* Per-CPU pagetable pages */
 /* xen_pgtable == root of the trie (zeroeth level on 64-bit, first on 32-bit) */
 DEFINE_PER_CPU(lpae_t *, xen_pgtable);
 #define THIS_CPU_PGTABLE this_cpu(xen_pgtable)
 /* Root of the trie for cpu0, other CPU's PTs are dynamically allocated */
 static DEFINE_PAGE_TABLE(cpu0_pgtable);
+
+#ifdef CONFIG_ARM_64
+static DEFINE_PAGE_TABLE(xen_first);
 #endif
 
 /* Common pagetable leaves */
@@ -232,17 +230,20 @@ void __init setup_pagetables(void)
     lpae_t pte, *p;
     int i;
 
+    p = cpu0_pgtable;
+
+    /* arch_setup_page_tables() may need to access the root page-tables. */
+    per_cpu(xen_pgtable, 0) = cpu0_pgtable;
+
     arch_setup_page_tables();
 
 #ifdef CONFIG_ARM_64
     pte = pte_of_xenaddr((uintptr_t)xen_first);
     pte.pt.table = 1;
     pte.pt.xn = 0;
-    xen_pgtable[zeroeth_table_offset(XEN_VIRT_START)] = pte;
+    p[zeroeth_table_offset(XEN_VIRT_START)] = pte;
 
-    p = (void *) xen_first;
-#else
-    p = (void *) cpu0_pgtable;
+    p = xen_first;
 #endif
 
     /* Map xen second level page-table */
@@ -285,19 +286,12 @@ void __init setup_pagetables(void)
     pte.pt.table = 1;
     xen_second[second_table_offset(FIXMAP_ADDR(0))] = pte;
 
-#ifdef CONFIG_ARM_64
-    ttbr = virt_to_maddr(xen_pgtable);
-#else
     ttbr = virt_to_maddr(cpu0_pgtable);
-#endif
+
 
     switch_ttbr(ttbr);
 
     xen_pt_enforce_wnx();
-
-#ifdef CONFIG_ARM_32
-    per_cpu(xen_pgtable, 0) = cpu0_pgtable;
-#endif
 }
 
 void *__init arch_vmap_virt_end(void)
diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
index 37e91d72b785..e4bde31605bd 100644
--- a/xen/arch/arm/mmu/smpboot.c
+++ b/xen/arch/arm/mmu/smpboot.c
@@ -7,6 +7,7 @@
 
 #include <xen/domain_page.h>
 
+#include <asm/domain_page.h>
 #include <asm/setup.h>
 
 /* Override macros from asm/page.h to make them work with mfn_t */
@@ -93,20 +94,6 @@ static void set_init_ttbr(lpae_t *root)
     unmap_domain_page(ptr);
 }
 
-#ifdef CONFIG_ARM_64
-int prepare_secondary_mm(int cpu)
-{
-    clear_boot_pagetables();
-
-    /*
-     * Set init_ttbr for this CPU coming up. All CPUs share a single setof
-     * pagetables, but rewrite it each time for consistency with 32 bit.
-     */
-    set_init_ttbr(xen_pgtable);
-
-    return 0;
-}
-#else
 int prepare_secondary_mm(int cpu)
 {
     lpae_t *root = alloc_xenheap_page();
@@ -136,7 +123,6 @@ int prepare_secondary_mm(int cpu)
 
     return 0;
 }
-#endif
 
 /*
  * Local variables:
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca94..b33483b8eacf 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -42,6 +42,7 @@
 #include <asm/gic.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
+#include <asm/domain_page.h>
 #include <asm/platform.h>
 #include <asm/procinfo.h>
 #include <asm/setup.h>
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833746.1249055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDQ-0002v7-JD; Mon, 11 Nov 2024 13:12:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833746.1249055; Mon, 11 Nov 2024 13:12: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 1tAUDQ-0002tk-2s; Mon, 11 Nov 2024 13:12:24 +0000
Received: by outflank-mailman (input) for mailman id 833746;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDO-0007pD-NL
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:22 +0000
Received: from smtp-fw-80007.amazon.com (smtp-fw-80007.amazon.com
 [99.78.197.218]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 939511ca-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:19 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-80007.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:16 +0000
Received: from EX19MTAUEA001.ant.amazon.com [10.0.44.209:40485]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.25.25:2525]
 with esmtp (Farcaster)
 id 97ed0e1a-4327-40d7-bc26-7f3f8399d6bf; Mon, 11 Nov 2024 13:12:15 +0000 (UTC)
Received: from EX19D008UEC002.ant.amazon.com (10.252.135.242) by
 EX19MTAUEA001.ant.amazon.com (10.252.134.203) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:15 +0000
Received: from EX19MTAUWA002.ant.amazon.com (10.250.64.202) by
 EX19D008UEC002.ant.amazon.com (10.252.135.242) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:15 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.25.36.210) by mail-relay.amazon.com (10.250.64.203) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:15 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 447F942116; Mon, 11 Nov 2024 13:12: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: 939511ca-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijk5Ljc4LjE5Ny4yMTgiLCJoZWxvIjoic210cC1mdy04MDAwNy5hbWF6b24uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkzOTUxMWNhLWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzM5LjYyODcxMSwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330739; x=1762866739;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=mafc3TENeclkrMcyk4CrldzkIWqGpdnNkd3t+61vW/E=;
  b=GKnC4EPCipWpeBfG0JvFxOXfQAf0xaeRxkExpE5qzzP9LbV0R1BjU6kI
   MV9RJbuCPobmMSh2AyEtLRA23hit1G1OpwzOuNGvm0isUfxOB8RpuEsrB
   kXitmQYSIeiVs1ihl/PX+xUj7749CPcvEp2GY/iR0MqzRIwwi99x95CmC
   g=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="351236520"
X-Farcaster-Flow-ID: 97ed0e1a-4327-40d7-bc26-7f3f8399d6bf
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Julien Grall
	<jgrall@amazon.com>, Elias El Yandouzi <eliasely@amazon.com>
Subject: [PATCH V4 15/15] xen/arm64: Allow the admin to enable/disable the directmap
Date: Mon, 11 Nov 2024 13:11:48 +0000
Message-ID: <20241111131148.52568-16-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Julien Grall <jgrall@amazon.com>

Implement the same command line option as x86 to enable/disable the
directmap. By default this is kept enabled.

Also modify setup_directmap_mappings() to populate the L0 entries
related to the directmap area.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>

----

    Changes in v2:
        * Rely on the Kconfig option to enable Secret Hiding on Arm64
        * Use generic helper instead of arch_has_directmap()

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 10b0b2714661..c238b866061f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -799,7 +799,7 @@ that enabling this option cannot guarantee anything beyond what underlying
 hardware guarantees (with, where available and known to Xen, respective
 tweaks applied).
 
-### directmap (x86)
+### directmap (arm64, x86)
 > `= <boolean>`
 
 > Default: `true`
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index aa9e4c381c55..390fe3dd9ebf 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -7,6 +7,7 @@ config ARM_64
 	depends on !ARM_32
 	select 64BIT
 	select HAS_FAST_MULTIPLY
+	select HAS_SECRET_HIDING
 
 config ARM
 	def_bool y
diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index d7cb3ad2da80..320e9efde93e 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -170,16 +170,27 @@ void __init switch_ttbr(uint64_t ttbr)
     update_identity_mapping(false);
 }
 
-/* Map the region in the directmap area. */
+/*
+ * This either populate a valid fdirect map, or allocates empty L1 tables
+ * and creates the L0 entries for the given region in the direct map
+ * depending on has_directmap().
+ *
+ * When directmap=no, we still need to populate empty L1 tables in the
+ * directmap region. The reason is that the root page-table (i.e. L0)
+ * is per-CPU and secondary CPUs will initialize their root page-table
+ * based on the pCPU0 one. So L0 entries will be shared if they are
+ * pre-populated. We also rely on the fact that L1 tables are never
+ * freed.
+ */
 static void __init setup_directmap_mappings(unsigned long base_mfn,
                                             unsigned long nr_mfns)
 {
+    unsigned long mfn_gb = base_mfn & ~((FIRST_SIZE >> PAGE_SHIFT) - 1);
     int rc;
 
     /* First call sets the directmap physical and virtual offset. */
     if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
     {
-        unsigned long mfn_gb = base_mfn & ~((FIRST_SIZE >> PAGE_SHIFT) - 1);
 
         directmap_mfn_start = _mfn(base_mfn);
         directmap_base_pdx = mfn_to_pdx(_mfn(base_mfn));
@@ -200,6 +211,24 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
         panic("cannot add directmap mapping at %lx below heap start %lx\n",
               base_mfn, mfn_x(directmap_mfn_start));
 
+    if ( !has_directmap() )
+    {
+        vaddr_t vaddr = (vaddr_t)__mfn_to_virt(base_mfn);
+        lpae_t *root = this_cpu(xen_pgtable);
+        unsigned int i, slot;
+
+        slot = first_table_offset(vaddr);
+        nr_mfns += base_mfn - mfn_gb;
+        for ( i = 0; i < nr_mfns; i += BIT(XEN_PT_LEVEL_ORDER(0), UL), slot++ )
+        {
+            lpae_t *entry = &root[slot];
+
+            if ( !lpae_is_valid(*entry) && !create_xen_table(entry) )
+                panic("Unable to populate zeroeth slot %u\n", slot);
+        }
+        return;
+    }
+
     rc = map_pages_to_xen((vaddr_t)__mfn_to_virt(base_mfn),
                           _mfn(base_mfn), nr_mfns,
                           PAGE_HYPERVISOR_RW | _PAGE_BLOCK);
diff --git a/xen/arch/arm/include/asm/arm64/mm.h b/xen/arch/arm/include/asm/arm64/mm.h
index b4f7545d2c87..2b1140a6b994 100644
--- a/xen/arch/arm/include/asm/arm64/mm.h
+++ b/xen/arch/arm/include/asm/arm64/mm.h
@@ -3,13 +3,10 @@
 
 extern DEFINE_PAGE_TABLE(xen_pgtable);
 
-/*
- * On ARM64, all the RAM is currently direct mapped in Xen.
- * Hence return always true.
- */
+/* On Arm64, the user can chose whether all the RAM is directmap. */
 static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 {
-    return true;
+    return has_directmap();
 }
 
 void arch_setup_page_tables(void);
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index def939172cc5..0f3ffab6bab6 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -12,6 +12,7 @@
 #include <xen/grant_table.h>
 #include <xen/guest_access.h>
 #include <xen/mm.h>
+#include <xen/param.h>
 
 #include <xsm/xsm.h>
 
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index b33483b8eacf..2e0870dc8af6 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -328,6 +328,7 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
     cmdline_parse(cmdline);
 
     setup_mm();
+    printk("Booting with directmap %s\n", has_directmap() ? "on" : "off");
 
     vm_init();
 
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:12:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:12:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833748.1249063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUDS-0003Jc-39; Mon, 11 Nov 2024 13:12:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833748.1249063; Mon, 11 Nov 2024 13:12: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 1tAUDR-0003Ha-Oc; Mon, 11 Nov 2024 13:12:25 +0000
Received: by outflank-mailman (input) for mailman id 833748;
 Mon, 11 Nov 2024 13:12: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDQ-0008Hn-Md
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:24 +0000
Received: from smtp-fw-2101.amazon.com (smtp-fw-2101.amazon.com [72.21.196.25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95deb6a8-a02e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 14:12:22 +0100 (CET)
Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.124.125.6])
 by smtp-border-fw-2101.iad2.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:20 +0000
Received: from EX19MTAUEC001.ant.amazon.com [10.0.44.209:10517]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.48.172:2525]
 with esmtp (Farcaster)
 id 804aad27-cab7-4eac-9bdb-4779792ac1c9; Mon, 11 Nov 2024 13:12:19 +0000 (UTC)
Received: from EX19D008UEA004.ant.amazon.com (10.252.134.191) by
 EX19MTAUEC001.ant.amazon.com (10.252.135.222) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:12 +0000
Received: from EX19MTAUEB002.ant.amazon.com (10.252.135.47) by
 EX19D008UEA004.ant.amazon.com (10.252.134.191) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:12 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.2) by mail-relay.amazon.com (10.252.135.97) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:12 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id A8FE142135; Mon, 11 Nov 2024 13:12: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: 95deb6a8-a02e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjcyLjIxLjE5Ni4yNSIsImhlbG8iOiJzbXRwLWZ3LTIxMDEuYW1hem9uLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk1ZGViNmE4LWEwMmUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzMwNzQyLjY1NzIyNCwic2VuZGVyIjoicHJ2cz0wMzhkMjZkMGM9ZWxpYXNlbHlAYW1hem9uLmNvLnVrIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330743; x=1762866743;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=t/Di9+ifphdv1CaRTq5b3lwW03qipQ4WvhcCEQKzEXA=;
  b=TOVBV7MnznI4AaX8UADInVJln1hio2ycN2dwbSpHqXnW8RSGEVpTVGbb
   clSb/vlxqQwb8tqZzogHBfjl3DAKkAIPMSFmf/rHGPhaKuAm3tWUIBz9I
   uBrnCsIakZ5wbU2LZtFMH0UZ7XP3VRqjTmzOyB2AULFURGpwW6+y6x2E3
   Q=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="441710997"
X-Farcaster-Flow-ID: 804aad27-cab7-4eac-9bdb-4779792ac1c9
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Julien Grall
	<jgrall@amazon.com>, Elias El Yandouzi <eliasely@amazon.com>
Subject: [PATCH V4 12/15] xen/arm32: mm: Rename 'first' to 'root' in init_secondary_pagetables()
Date: Mon, 11 Nov 2024 13:11:45 +0000
Message-ID: <20241111131148.52568-13-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Julien Grall <jgrall@amazon.com>

The arm32 version of init_secondary_pagetables() will soon be re-used
for arm64 as well where the root table starts at level 0 rather than level 1.

So rename 'first' to 'root'.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>

----

    Changelog in v2:
        * Rebase
        * Fix typo

diff --git a/xen/arch/arm/mmu/smpboot.c b/xen/arch/arm/mmu/smpboot.c
index 4ffc8254a44b..37e91d72b785 100644
--- a/xen/arch/arm/mmu/smpboot.c
+++ b/xen/arch/arm/mmu/smpboot.c
@@ -109,32 +109,30 @@ int prepare_secondary_mm(int cpu)
 #else
 int prepare_secondary_mm(int cpu)
 {
-    lpae_t *first;
+    lpae_t *root = alloc_xenheap_page();
 
-    first = alloc_xenheap_page(); /* root == first level on 32-bit 3-level trie */
-
-    if ( !first )
+    if ( !root )
     {
-        printk("CPU%u: Unable to allocate the first page-table\n", cpu);
+        printk("CPU%u: Unable to allocate the root page-table\n", cpu);
         return -ENOMEM;
     }
 
     /* Initialise root pagetable from root of boot tables */
-    memcpy(first, per_cpu(xen_pgtable, 0), PAGE_SIZE);
-    per_cpu(xen_pgtable, cpu) = first;
+    memcpy(root, per_cpu(xen_pgtable, 0), PAGE_SIZE);
+    per_cpu(xen_pgtable, cpu) = root;
 
     if ( !init_domheap_mappings(cpu) )
     {
         printk("CPU%u: Unable to prepare the domheap page-tables\n", cpu);
         per_cpu(xen_pgtable, cpu) = NULL;
-        free_xenheap_page(first);
+        free_xenheap_page(root);
         return -ENOMEM;
     }
 
     clear_boot_pagetables();
 
     /* Set init_ttbr for this CPU coming up */
-    set_init_ttbr(first);
+    set_init_ttbr(root);
 
     return 0;
 }
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:22:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833851.1249089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUNP-0001hs-83; Mon, 11 Nov 2024 13:22:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833851.1249089; Mon, 11 Nov 2024 13: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 1tAUNP-0001hl-4r; Mon, 11 Nov 2024 13:22:43 +0000
Received: by outflank-mailman (input) for mailman id 833851;
 Mon, 11 Nov 2024 13: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=//j0=SG=amazon.co.uk=prvs=038d26d0c=eliasely@srs-se1.protection.inumbo.net>)
 id 1tAUDQ-0007pD-Gq
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:12:24 +0000
Received: from smtp-fw-80009.amazon.com (smtp-fw-80009.amazon.com
 [99.78.197.220]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 955af1a3-a02e-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 14:12:20 +0100 (CET)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-80009.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2024 13:12:15 +0000
Received: from EX19MTAUEA002.ant.amazon.com [10.0.29.78:36658]
 by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.2.104:2525]
 with esmtp (Farcaster)
 id ac223257-3a7f-4e86-a058-106d9f7abd51; Mon, 11 Nov 2024 13:12:15 +0000 (UTC)
Received: from EX19D008UEC004.ant.amazon.com (10.252.135.170) by
 EX19MTAUEA002.ant.amazon.com (10.252.134.9) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:14 +0000
Received: from EX19MTAUEC001.ant.amazon.com (10.252.135.222) by
 EX19D008UEC004.ant.amazon.com (10.252.135.170) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34;
 Mon, 11 Nov 2024 13:12:14 +0000
Received: from email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com
 (10.124.125.6) by mail-relay.amazon.com (10.252.135.200) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id
 15.2.1258.34 via Frontend Transport; Mon, 11 Nov 2024 13:12:14 +0000
Received: from dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com
 (dev-dsk-eliasely-1a-fd74790f.eu-west-1.amazon.com [10.253.91.118])
 by email-imr-corp-prod-pdx-all-2b-5ec155c2.us-west-2.amazon.com (Postfix) with
 ESMTPS id 14A6542135; Mon, 11 Nov 2024 13:12: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: 955af1a3-a02e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijk5Ljc4LjE5Ny4yMjAiLCJoZWxvIjoic210cC1mdy04MDAwOS5hbWF6b24uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk1NWFmMWEzLWEwMmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzMwNzQxLjMxOTgzLCJzZW5kZXIiOiJwcnZzPTAzOGQyNmQwYz1lbGlhc2VseUBhbWF6b24uY28udWsiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
  t=1731330741; x=1762866741;
  h=from:to:cc:subject:date:message-id:in-reply-to:
   references:mime-version:content-transfer-encoding;
  bh=qjrn75nWLXXpz9kjXUbh4mnxt9U6w2NevKsH5Mgv7b8=;
  b=R9Po9GNvVli4D9OXbDocvS9qiFmxE4LBwnC/IXoPUePkuG4+ErHxhqNQ
   2L4wmRfFIyAHduZLZcygRIPVTeP+0QYCa/K8z6zSQNah+E+6B/4jPN1aS
   VJJuX59uKaPN0GiDrEda3/wohySHvcOLdKEeYmCvxUkaXOQdvKYXv46Ux
   4=;
X-IronPort-AV: E=Sophos;i="6.12,145,1728950400"; 
   d="scan'208";a="146255457"
X-Farcaster-Flow-ID: ac223257-3a7f-4e86-a058-106d9f7abd51
From: Elias El Yandouzi <eliasely@amazon.com>
To: <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Julien Grall
	<jgrall@amazon.com>, Elias El Yandouzi <eliasely@amazon.com>
Subject: [PATCH V4 14/15] xen/arm64: Implement a mapcache for arm64
Date: Mon, 11 Nov 2024 13:11:47 +0000
Message-ID: <20241111131148.52568-15-eliasely@amazon.com>
X-Mailer: git-send-email 2.40.1
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

From: Julien Grall <jgrall@amazon.com>

At the moment, on arm64, map_domain_page() is implemented using
virt_to_mfn(). Therefore it is relying on the directmap.

In a follow-up patch, we will allow the admin to remove the directmap.
Therefore we want to implement a mapcache.

Thanksfully there is already one for arm32. So select ARCH_ARM_DOMAIN_PAGE
and add the necessary boiler plate to support 64-bit:
    - The page-table start at level 0, so we need to allocate the level
      1 page-table
    - map_domain_page() should check if the page is in the directmap. If
      yes, then use virt_to_mfn() to limit the performance impact
      when the directmap is still enabled (this will be selectable
      on the command line).

Take the opportunity to replace first_table_offset(...) with offsets[...].

Note that, so far, arch_mfns_in_directmap() always return true on
arm64. So the mapcache is not yet used. This will change in a
follow-up patch.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>

----

    There are a few TODOs:
        - It is becoming more critical to fix the mapcache
          implementation (this is not compliant with the Arm Arm)
        - Evaluate the performance

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 323c96736185..aa9e4c381c55 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -1,7 +1,6 @@
 config ARM_32
 	def_bool y
 	depends on "$(ARCH)" = "arm32"
-	select ARCH_MAP_DOMAIN_PAGE
 
 config ARM_64
 	def_bool y
diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index c1c6450ca2e3..d7cb3ad2da80 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -4,6 +4,7 @@
 #include <xen/mm.h>
 #include <xen/pfn.h>
 
+#include <asm/domain_page.h>
 #include <asm/setup.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
@@ -249,6 +250,14 @@ void __init setup_mm(void)
     setup_frametable_mappings(ram_start, ram_end);
     max_page = PFN_DOWN(ram_end);
 
+    /*
+     * The allocators may need to use map_domain_page() (such as for
+     * scrubbing pages). So we need to prepare the domheap area first.
+     */
+    if ( !init_domheap_mappings(smp_processor_id()) )
+        panic("CPU%u: Unable to prepare the domheap page-tables\n",
+              smp_processor_id());
+
     init_staticmem_pages();
     init_sharedmem_pages();
 }
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index cbfaeb2c4da1..6545aeda3b13 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -429,6 +429,11 @@ 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 );
 }
 
+/* Helpers to allocate, map and unmap a Xen page-table */
+int create_xen_table(lpae_t *entry);
+lpae_t *xen_map_table(mfn_t mfn);
+void xen_unmap_table(const lpae_t *table);
+
 #endif /*  __ARCH_ARM_MM__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/mmu/layout.h b/xen/arch/arm/include/asm/mmu/layout.h
index a3b546465b5a..c549420e8b25 100644
--- a/xen/arch/arm/include/asm/mmu/layout.h
+++ b/xen/arch/arm/include/asm/mmu/layout.h
@@ -35,9 +35,13 @@
  *
  *  32G -  64G   Frametable: 56 bytes per page for 2TB of RAM
  *
- * 0x00000a8000000000 - 0x00007fffffffffff (512GB+117TB, L0 slots [21..255])
+ * 0x00000a8000000000 - 0x00007f7fffffffff (117TB, L0 slots [21..254])
  *  Unused
  *
+ * 0x00007f8000000000 - 0x00007fffffffffff (512GB, L0 slot [255])
+ *  (Relative offsets)
+ *  0  -    2G    Domheap: on-demand-mapped
+ *
  * 0x0000800000000000 - 0x000084ffffffffff (5TB, L0 slots [256..265])
  *  1:1 mapping of RAM
  *
@@ -130,6 +134,13 @@
 #define FRAMETABLE_SIZE        GB(32)
 #define FRAMETABLE_NR          (FRAMETABLE_SIZE / sizeof(*frame_table))
 
+#define DOMHEAP_VIRT_START     SLOT0(255)
+#define DOMHEAP_VIRT_SIZE      GB(2)
+
+#define DOMHEAP_ENTRIES        1024 /* 1024 2MB mapping slots */
+/* Number of domheap pagetable pages required at the second level (2MB mappings) */
+#define DOMHEAP_SECOND_PAGES (DOMHEAP_VIRT_SIZE >> FIRST_SHIFT)
+
 #define DIRECTMAP_VIRT_START   SLOT0(256)
 #define DIRECTMAP_SIZE         (SLOT0_ENTRY_SIZE * (266 - 256))
 #define DIRECTMAP_VIRT_END     (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE - 1)
diff --git a/xen/arch/arm/mmu/domain_page.c b/xen/arch/arm/mmu/domain_page.c
index 3a43601623f0..72f200145d64 100644
--- a/xen/arch/arm/mmu/domain_page.c
+++ b/xen/arch/arm/mmu/domain_page.c
@@ -29,13 +29,30 @@ bool init_domheap_mappings(unsigned int cpu)
 {
     unsigned int order = get_order_from_pages(DOMHEAP_SECOND_PAGES);
     lpae_t *root = per_cpu(xen_pgtable, cpu);
+    lpae_t *first;
     unsigned int i, first_idx;
     lpae_t *domheap;
     mfn_t mfn;
 
+    /* Convenience aliases */
+    DECLARE_OFFSETS(offsets, DOMHEAP_VIRT_START);
+
     ASSERT(root);
     ASSERT(!per_cpu(xen_dommap, cpu));
 
+    /*
+     * On Arm64, the root is at level 0. Therefore we need an extra step
+     * to allocate the first level page-table.
+     */
+#ifdef CONFIG_ARM_64
+    if ( create_xen_table(&root[offsets[0]]) )
+        return false;
+
+    first = xen_map_table(lpae_get_mfn(root[offsets[0]]));
+#else
+    first = root;
+#endif
+
     /*
      * The domheap for cpu0 is initialized before the heap is initialized.
      * So we need to use pre-allocated pages.
@@ -56,16 +73,20 @@ bool init_domheap_mappings(unsigned int cpu)
      * domheap mapping pages.
      */
     mfn = virt_to_mfn(domheap);
-    first_idx = first_table_offset(DOMHEAP_VIRT_START);
+    first_idx = offsets[1];
     for ( i = 0; i < DOMHEAP_SECOND_PAGES; i++ )
     {
         lpae_t pte = mfn_to_xen_entry(mfn_add(mfn, i), MT_NORMAL);
         pte.pt.table = 1;
-        write_pte(&root[first_idx + i], pte);
+        write_pte(&first[first_idx + i], pte);
     }
 
     per_cpu(xen_dommap, cpu) = domheap;
 
+#ifdef CONFIG_ARM_64
+    xen_unmap_table(first);
+#endif
+
     return true;
 }
 
@@ -89,6 +110,10 @@ void *map_domain_page(mfn_t mfn)
     lpae_t pte;
     int i, slot;
 
+    /* Bypass the mapcache if the page is in the directmap */
+    if ( arch_mfns_in_directmap(mfn_x(mfn), 1) )
+        return mfn_to_virt(mfn);
+
     local_irq_save(flags);
 
     /* The map is laid out as an open-addressed hash table where each
@@ -151,13 +176,25 @@ void *map_domain_page(mfn_t mfn)
 /* Release a mapping taken with map_domain_page() */
 void unmap_domain_page(const void *ptr)
 {
+    unsigned long va = (unsigned long)ptr;
     unsigned long flags;
     lpae_t *map = this_cpu(xen_dommap);
-    int slot = ((unsigned long)ptr - DOMHEAP_VIRT_START) >> SECOND_SHIFT;
+    unsigned int slot;
+
+    /* Below we assume that the domheap area doesn't start at 0 */
+    BUILD_BUG_ON(DOMHEAP_VIRT_START == 0);
 
-    if ( !ptr )
+    /*
+     * map_domain_page() may not have mapped anything if the address
+     * is part of the directmap. So ignore anything outside of the
+     * domheap.
+     */
+    if ( (va < DOMHEAP_VIRT_START) ||
+         ((va - DOMHEAP_VIRT_START) >= DOMHEAP_VIRT_SIZE) )
         return;
 
+    slot = (va - DOMHEAP_VIRT_START) >> SECOND_SHIFT;
+
     local_irq_save(flags);
 
     ASSERT(slot >= 0 && slot < DOMHEAP_ENTRIES);
diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
index 1ed1a53ab1f2..da33c6c52e39 100644
--- a/xen/arch/arm/mmu/pt.c
+++ b/xen/arch/arm/mmu/pt.c
@@ -33,7 +33,7 @@ mm_printk(const char *fmt, ...) {}
 #define HYP_PT_ROOT_LEVEL 1
 #endif
 
-static lpae_t *xen_map_table(mfn_t mfn)
+lpae_t *xen_map_table(mfn_t mfn)
 {
     /*
      * During early boot, map_domain_page() may be unusable. Use the
@@ -45,7 +45,7 @@ static lpae_t *xen_map_table(mfn_t mfn)
     return map_domain_page(mfn);
 }
 
-static void xen_unmap_table(const lpae_t *table)
+void xen_unmap_table(const lpae_t *table)
 {
     /*
      * During early boot, xen_map_table() will not use map_domain_page()
@@ -228,7 +228,7 @@ void *ioremap(paddr_t pa, size_t len)
     return ioremap_attr(pa, len, PAGE_HYPERVISOR_NOCACHE);
 }
 
-static int create_xen_table(lpae_t *entry)
+int create_xen_table(lpae_t *entry)
 {
     mfn_t mfn;
     void *p;
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:24:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833874.1249100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUPN-0003Di-NY; Mon, 11 Nov 2024 13:24:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833874.1249100; Mon, 11 Nov 2024 13:24: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 1tAUPN-0003Db-KH; Mon, 11 Nov 2024 13:24:45 +0000
Received: by outflank-mailman (input) for mailman id 833874;
 Mon, 11 Nov 2024 13:24: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=eHe6=SG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tAUPM-0003DV-T2
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:24:45 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20600.outbound.protection.outlook.com
 [2a01:111:f403:2407::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e1ee07b-a030-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 14:24:41 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by CY5PR12MB6408.namprd12.prod.outlook.com (2603:10b6:930:3b::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 13:24:37 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8137.022; Mon, 11 Nov 2024
 13: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: 4e1ee07b-a030-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNzo6NjAwIiwiaGVsbyI6Ik5BTTAyLUJOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRlMWVlMDdiLWEwMzAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzMxNDgxLjE3MzEyNiwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YIz0rNWhHUuJm25H3avVuvEmPcnb383JNqSUunoh9xVmDolZ0RHrGYWQO0y3aSljNtd2b505FI8ecwW1tvS8w4kWxXQTsy0ydSdqhE0hxzzINX6Vh958tdPmYKzFOUVniDZiQuO24LQ8WMlDX74D18BKGBhygpRx5ICsRTC9d3h05Tm5ZD6lghvbtGEuQ4tNz0kZlLm0tR0JCMe/LllQcQZekJ/sSyBdUEpxtiRG4V4x//UDIw/pL5uWih37bpq9K1MFuBRWOrLqkknRPqqbRj6+0HLjcNUGH/IOKqAYnZZNzTA74Z1XMqqDVv/pAEpTeZ7dbqJLm7zCcfJCRFLUYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XXHNFALuEV2daFMczbBeHtKOYxvpnm6eXAZYP6+tHlQ=;
 b=Exx7QnBpgo3LWadjH200LV1B53+MLQhReV3WZndd1tq0NBUaMKkvcTZNs6bcD4ppKxPtoVnf6+XOhfRll5SCVmo/8K/EV5DZFgiRLf0hywqtzH9I3+9OhT0TFakmlHPODTOgdu7s3Df72lXIEvQgWg4McGk2FtyQDJRUXjihRVrDNKTgKjgNHHX+RrgNfriY9Xq85JKKXaILPutsVJrE2YA4+iMXx8X5pBhEO4HKQTGRrXwg6NuHlF0ytHfpZFP7p36hIAh+C+wi1K+DWLKumbQg3h5fTqpuHFceBdwDL1nI2RctJHrUTgdql022Yi3lW9uym6dfHLKyVxvPAjyt2w==
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=XXHNFALuEV2daFMczbBeHtKOYxvpnm6eXAZYP6+tHlQ=;
 b=hmU/gB4jIGQopXZEFrO/JapjTPw4ZjC6v7kvv9nENxwjYK6NFuo4Aq1VNAxLZwHHLOyWkiwiTXaVsKbt6qm5XziLI/Q9Ru1EVGhC7vS9SJok70R0+Kv362S8M69G+yWP39NA4YXpnAkF0c9RoqWX5XEV9KzueKC2sT8xWA1Mqno=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <2ca98e9c-1a4b-43a2-b707-097dc5093e39@amd.com>
Date: Mon, 11 Nov 2024 13:24:32 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Rahul Singh <rahul.singh@arm.com>
References: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
 <80ac1e78-5259-43d2-8b18-d5bd3abdca1b@xen.org>
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <80ac1e78-5259-43d2-8b18-d5bd3abdca1b@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: DUZP191CA0064.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:10:4fa::17) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|CY5PR12MB6408:EE_
X-MS-Office365-Filtering-Correlation-Id: 5a907f06-e529-42f9-c258-08dd02543088
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?SmpRNll4Y3dkR3V1a1I5NVF6bnphRWJSVUI3SURPNys3VzhiNU1yUkx0WktJ?=
 =?utf-8?B?WkgvdUYyQ1JWZFVlNXg2VkppNjVpeVFnOER3aVBieUh2QkFjU3F6TjhXQ01h?=
 =?utf-8?B?S243ZmtuNTNudmhvcm8xU1YvZllvOHVZay8xWFhndEx6ckpnMDhjcHJLbkhS?=
 =?utf-8?B?dTdUYzRHaEF6b3BGTEkwVDdBWDh6T2dGbm9pVWQwYzlVdWo3ZGZkSEtOU2NC?=
 =?utf-8?B?MFBYajFTVGFFRzVjOGVGd1diZ2xNbWVSS2FHUmZYWGRzdFVucDlUS0tpNFhy?=
 =?utf-8?B?dG5YTCtBRllpODNtMlFULzJmclRtQ0grdWVUTGtYZXlMVFhTQW1WQ1JlaFVK?=
 =?utf-8?B?UFp5K2ZrMytHd0RFdU82MGEvSm4rUlE3cEdFcXh1YTZ0Q1dsaXU4SEcrTjN6?=
 =?utf-8?B?SkJuWEM4ZTdnZ25HVGo3SDRZd3JjdzJJWFhsRFpHenBTSVR0ck01TjE3QmdP?=
 =?utf-8?B?c2FKOWEwSUtuL3U0ckRTUlNOd25aZlVGRkk1OFhXVmhzNUhaa1FERi9uamVT?=
 =?utf-8?B?dE9DNXV0MjhzQzZoR3R4cGRqNDA1d0UvRUtvdTVJSTFiMjJQMnNId1J0Q3Ba?=
 =?utf-8?B?cTZ2TWRkRXZWbHUrVUxRc1A2aTBwNUd5emNoZy9SYXcyclNEdlI1bUk2Q2pX?=
 =?utf-8?B?R2d3aWFmQlczREF4VVVnSVZSUnVDNDI5WFdNQ3dENWRwNXkzUC9wbGJTT1cx?=
 =?utf-8?B?MU1VNkZRb1laSURQK212Qmd6YUt4M0VNM1Z0VERzTklrc25rNHVHY0lKZjd0?=
 =?utf-8?B?V2VSYUd0MU01L2ZBamtKNy9sNUpTMXY3TEY0SEs1MDFCamFGMk1wRkk1dG1P?=
 =?utf-8?B?TER0VlMvRkZtRFdpSkJ4dTkyWWtFbVBLck5EbkpOU213VTVEMGFrOHFhVkZC?=
 =?utf-8?B?OFJxWWxzU2RRWmxyN0FrNHRMOEx2Rjg0R0MvRkhmZndzWWxUZ2wrcE5NNUc1?=
 =?utf-8?B?dFdRTmRzWnVFekF4d2lOTlc4emdMbEo2QlB3Q3BWWnhYS0QxNjdiaTZ3RWE0?=
 =?utf-8?B?T1dGaEwzc2lTTkU1N2V5dGdWVGduVDB1T3NFbFpQOUZQUmxnNTdabXFYVkNk?=
 =?utf-8?B?Nkp4ZDd3a1dXQ0R5VUx2L29XY1gySEw1N2xBby9CdEN5RjBKOWRhSWhOMGJL?=
 =?utf-8?B?RHJRYTRxWUxHOXNJaVRFWmZyeHZJN0JYZGtwalFtRzJWM09wZzlXZG8yVnE5?=
 =?utf-8?B?K3lyS2RhcFJXam1Jc3N4L1ZLRFVEeXppVEp1TlZPc3NEOWVuOU55Zk0vZVE0?=
 =?utf-8?B?YU1QZTF2Mklla0xxWm4xZ2ZlMmdOd2RTOU1naU9DdmVCOW4xeFp4UE0xZVgr?=
 =?utf-8?B?S3pYMitSaDhLWkJGeVg4Q0NtMnFJOHRVWm5UTlA1bHdYM2RwNWRTb25OK2gw?=
 =?utf-8?B?U1lxN1ZCWUR0amljRTE5SktKYm9BRlJlRnRsdFZuejBqYVhtSitQb2VLdXlD?=
 =?utf-8?B?c3g2TEZpSnRYc3l3ZldMZkVKRU9WQ2dIQ1dvbUFDRm1rQnprWkcrR2dWdWJk?=
 =?utf-8?B?K2dJck5wQ3cwU2tXcU9oQ0o3TjUrNm1OM3ZYNVR5eEdJUFVGeXI1U3E4RG5m?=
 =?utf-8?B?V0l5ck1wQ2w3QU4vUElSY25Xem5YdkRtYk5UVURpeEcvYXU0OW01YzhNYUJ4?=
 =?utf-8?B?cEJCNkhoak9teS9vRHlSOEdCbXdweElFdFZST3NzVW42RVZDV0RoWjNPSzBk?=
 =?utf-8?B?U0FvTi83ZkJ5TDA3UnFKaDllcHFSNGJzZ2lZU1Z2VTlJSFY4ZHRtL2RnVWdl?=
 =?utf-8?Q?/DSBfthkjR8ir7sNfw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.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?M2VDd2lWSFp1aVBRdFNXNkZpWVRJWGZJd2Q5K0t2V0M5SzlTbEFEaGVHN0V0?=
 =?utf-8?B?RU9rTDY1VjkzQXNVME1xRzlKbElrTnNOby9TSVJmL2g0NDM4VHhOdFVBMytY?=
 =?utf-8?B?VGpCVnozRGNJc0xEM25FOHVCbVhQN3Q3NXdHL0VMNUEvTFZ2ak5IY3Z1S0lo?=
 =?utf-8?B?VmRHaDh6NjUvTzk3WlBoaVF5NGNFc21sM0w2VnVreWNLcG82UDVlYlNuQlYx?=
 =?utf-8?B?RG5nWWtJM1c5TktiVlZ3WWRISGk3RjdOR1ZqMDUrL1ZTQXBuMlRxWWk1ZzV6?=
 =?utf-8?B?M3lrNlBxRUR6cHBLcnFPUEVpTkwvVTNMVldzY3RhN29wOHByQVpocWoxb2I4?=
 =?utf-8?B?ZFJZRTRpdnBFQ0F6WmtJTWhRQmZ0S0lScVoxRndnRkxCeEJpYTRlM1ppMkdi?=
 =?utf-8?B?OTE3bnFQUEcvUnFqeFhYVXNadEJIemRwUXRzQ2p1Q1NJQXYyVWhudGMvVVN5?=
 =?utf-8?B?MnhDZGRZTFN2K1N5K2dTZ2pvblRaSEhVWDNxYWlDUUlZWEJHUWNmcmF4Sk4x?=
 =?utf-8?B?dG0vUWx5eVFiRkZveXBLa2ZwLzcxTlhUWnB2ZVVQNmE1R0k3cWxQY21Pb043?=
 =?utf-8?B?SmpDRnhGQlU4WFhjalJIWjAzL1hVa2VzUTgvQmJLNU1iek53UEFvSUl4L2xn?=
 =?utf-8?B?TlREWFV1U0F2WWVJYWI4Lzd5dnR6ZHVVQkJ2Rm01UitvbVZKQnBmTWJCZE8x?=
 =?utf-8?B?SnVQWlJsU3k5WUtranQ1UFpGb0F6aEo1cjdneSt1bERpbzRtKytRc3pWb01K?=
 =?utf-8?B?TVlMWHpmSXNiNlYwRllnRnVnRXBZeTgvVy93VU9QY2creUoxZXhuRnZ3M3RW?=
 =?utf-8?B?WXJmQ3YybC9pbGFKOFVQbkMxQnpBNmhTei9sMmI1Q2hPNGZLNFRsYU5hSGFH?=
 =?utf-8?B?SUhtb2plRWZVaGxJRlZ3N2FqY0F0YVpBaDBrTmpBWGxGd0JhQ1Z6OWlqN3lK?=
 =?utf-8?B?NkhOZmMySEtOWGI4UDBRZmw4aFoyUER5NGo3REJKWmtldUV0OFZrZjNqTEww?=
 =?utf-8?B?MHpDdk9TTkxEZWlOK1hrcXBIcVNuaEZ3WlE4UUhCRXZIdi9zQmR1MUZDb3g4?=
 =?utf-8?B?SDltMTJyZ2VkU2hsb2pPTEtTSHR2L0ZQUWQ3a1Z1TnBMRE1Vd0dxc0VpZVd4?=
 =?utf-8?B?OFBnZ0ZmbmRValVhdTc3MFZSMEd6aEJGd1JqT3NEM280Y1ZvYzdnaVV2azg4?=
 =?utf-8?B?V3AwWEpiVzgwQnVvQksvYW5iQ2lJMG9DRXozdE5FTThubDRXYkovRVd0MWdN?=
 =?utf-8?B?dU44ajMrZWRjRDExTGh0MHFwdWdGWkdwN0hqOWx5c1BEUmZCd05iQnRwczV5?=
 =?utf-8?B?QUUwWG4yU2kvSVExdnVraVRkT01RVXJ6aURmM25ubFpYblJ2M1JaUE9Pakdj?=
 =?utf-8?B?cHpYbkJ3WmJrSWRrc3R5dnh1QnFZU2lEdVp1bDVhL1RCNXRFbWJxMTY2ZU9a?=
 =?utf-8?B?dGVWWUJXT21ySTVDcXlIMjV4cndEQlQweDNxZDNIc202M3drWktaSStxUjhE?=
 =?utf-8?B?cWNCNnZURkw1b1NFdUhrNTZZVUozVVo3WWpYaGlpU3JDcWE0OWJBZmIyQ2NW?=
 =?utf-8?B?cTBDeDVNcmozSDBFQkVhUk9yMnB5OGRDNzgrNzdOMHYxY0FETzJhQ0lCdk5H?=
 =?utf-8?B?clZPalNHS2o2bVloNGkyNzZ0d0ZoekdZb1lMTXQ2TzQ1SzUvT1hoKy9oUVUr?=
 =?utf-8?B?dnhBcXRJbW1hUVRUaW41NkEvRDgwUGdHQW5kTDZBWGdMMGM4K1FvQnBlNGdM?=
 =?utf-8?B?Wm5lUHNTc2pWTitLZlpEaG40c2FoYzB0aDFaaHlhQXh0Z0o4aTFHVFRFa0NY?=
 =?utf-8?B?WWs4Q2w4TTRZSkY3d0d2MjN6a0VxUVFoSmVsK1F1TnlSUWw4YjRKbjJjbkNW?=
 =?utf-8?B?RGQ3Zy9TWG5IRHJpNUhPU3lOSlNpeS9NMkI3anJkbUI3QWdZNzJ1eFgzeGpG?=
 =?utf-8?B?dE5qR2pCVW8zS1hUaGFxWHRBUTF0UEw0eEZFWkRwYXBnbWo3UUQrRW1FVzdR?=
 =?utf-8?B?WDBMS2o2RExqeXRIaFFYTjZqQzBFMEFmelFOZ2ovbCtDb3RuUlFwMkpqV042?=
 =?utf-8?B?aXJEM29KYzJ0RFVWMFBLeDZLQlZGV0h4dGZNRzQ1eFY3M3d5eGVYZWkyQmd1?=
 =?utf-8?Q?L1aS4tZZz5+NjwXRu4P/LqOz6?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a907f06-e529-42f9-c258-08dd02543088
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 13:24:37.2733
 (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: 8zu7ufQHEYC+wp455ViDaA00BViQdkxgLrkLG3hL5lNRNjzUCsiSTb1NoA9DrWTij9kuovyXSOeeC6445h5rDw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6408


On 11/11/2024 11:12, Julien Grall wrote:
> Hi,
Hi Julien,
>
> On 08/11/2024 19:59, Ayan Kumar Halder wrote:
>> From: Penny Zheng <Penny.Zheng@arm.com>
>>
>> In Xen, SMMU subsystem is supported for MMU system only. The reason 
>> being SMMU
>> driver uses the same page tables as MMU.
>> Thus, we make it dependent on CONFIG_MMU.
>>
>> Signed-off-by: Penny Zheng <Penny.Zheng@arm.com>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Â  xen/arch/arm/KconfigÂ Â Â Â Â Â Â Â Â Â Â  | 2 +-
>> Â  xen/drivers/passthrough/Kconfig | 3 ++-
>> Â  2 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>> index 15b2e4a227..3699e148e9 100644
>> --- a/xen/arch/arm/Kconfig
>> +++ b/xen/arch/arm/Kconfig
>> @@ -16,7 +16,7 @@ config ARM
>> Â Â Â Â Â  select HAS_DEVICE_TREE
>> Â Â Â Â Â  select HAS_PASSTHROUGH
>> Â Â Â Â Â  select HAS_UBSAN
>> -Â Â Â  select IOMMU_FORCE_PT_SHARE
>> +Â Â Â  select IOMMU_FORCE_PT_SHARE if MMU
>
> Realistically, everything under drivers/passthrough is MMU specific. 
> So does it actually make any sense to select HAS_PASSTHROUGH right now?

Actually we are able to assign devices to different DomUs (eg UART1 to 
domU1) as long as the device isn't behind an IOMMU. So in our case, the 
passthrough device tree has this node

 Â Â Â Â Â Â Â  uart@9c0b0000 {
 Â Â Â Â Â Â Â Â Â Â Â  compatible = "arm,pl011\0arm,primecell";
 Â Â Â Â Â Â Â Â Â Â Â  reg = <0x00 0x9c0b0000 0x00 0x10000>;
 Â Â Â Â Â Â Â Â Â Â Â  interrupt-parent = <0x01>;
 Â Â Â Â Â Â Â Â Â Â Â  interrupts = <0x00 0x07 0x04>;
 Â Â Â Â Â Â Â Â Â Â Â  clock-names = "uartclk\0apb_pclk";
 Â Â Â Â Â Â Â Â Â Â Â  clocks = <0x06 0x07>;
 Â Â Â Â Â Â Â Â Â Â Â  xen,path = "/uart@9c0b0000";
 Â Â Â Â Â Â Â Â Â Â Â  xen,reg = <0x00 0x9c0b0000 0x00 0x10000 0x00 0x9c0b0000>;
 Â Â Â Â Â Â Â Â Â Â Â  xen,force-assign-without-iommu;
 Â Â Â Â Â Â Â  };
So, should we still disable HAS_PASSTHROUGH for MPU ?

- Ayan

>
>> Â  Â  config ARCH_DEFCONFIG
>> Â Â Â Â Â  string
>> diff --git a/xen/drivers/passthrough/Kconfig 
>> b/xen/drivers/passthrough/Kconfig
>> index 78edd80536..75ad403dd3 100644
>> --- a/xen/drivers/passthrough/Kconfig
>> +++ b/xen/drivers/passthrough/Kconfig
>> @@ -5,6 +5,7 @@ config HAS_PASSTHROUGH
>> Â  if ARM
>> Â  config ARM_SMMU
>> Â Â Â Â Â  bool "ARM SMMUv1 and v2 driver"
>> +Â Â Â  depends on MMU
>> Â Â Â Â Â  default y
>> Â Â Â Â Â  help
>> Â Â Â Â Â Â Â  Support for implementations of the ARM System MMU architecture
>> @@ -15,7 +16,7 @@ config ARM_SMMU
>> Â  Â  config ARM_SMMU_V3
>> Â Â Â Â Â  bool "ARM Ltd. System MMU Version 3 (SMMUv3) Support" if EXPERT
>> -Â Â Â  depends on ARM_64 && (!ACPI || BROKEN)
>> +Â Â Â  depends on ARM_64 && (!ACPI || BROKEN) && MMU
>> Â Â Â Â Â  help
>> Â Â Â Â Â Â  Support for implementations of the ARM System MMU architecture
>> Â Â Â Â Â Â  version 3. Driver is in experimental stage and should not be 
>> used in
>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:28:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833883.1249109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUT8-0003of-5V; Mon, 11 Nov 2024 13:28:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833883.1249109; Mon, 11 Nov 2024 13:28: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 1tAUT8-0003oY-2y; Mon, 11 Nov 2024 13:28:38 +0000
Received: by outflank-mailman (input) for mailman id 833883;
 Mon, 11 Nov 2024 13:28: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=pNnr=SG=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tAUT6-0003oQ-JE
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:28:36 +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 d956adbb-a030-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 14:28:33 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43168d9c6c9so38594255e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 05:28:33 -0800 (PST)
Received: from fziglio-desktop.lan (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381eda04b52sm12749011f8f.101.2024.11.11.05.28.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 05:28: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: d956adbb-a030-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ5NTZhZGJiLWEwMzAtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzMxNzEzLjkwNzc0LCJzZW5kZXIiOiJmcmVkaWFuby56aWdsaW9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731331713; x=1731936513; 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=ClT/inDC6+ukbNDR8MP6Oma66i64giR5v9zKqN8GSmg=;
        b=PdwkvTii8qblwt+V4bPdJXrFGjplX5/XiPUW3/NDFust5IFRTlnt9aTLq3NEbEV5Ul
         CawzyMANOb7e39iBfoG72QgU8FzcNG+ZVPKdc2RmrKva7gyVxC5ZWjw3XNxqLT87Bg93
         Sp9qHXMRTx7gc9LCpx6Gn5W2SnZoOf4qzKUBY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731331713; x=1731936513;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ClT/inDC6+ukbNDR8MP6Oma66i64giR5v9zKqN8GSmg=;
        b=uNXFpot/EsFLKyQTTp8x79nNGu9iFB9j/fByqutwgYjRDTypvuAzDEy3dM3lV1naPQ
         oESP9A1fhwT6Hft9MldirGF7FBuUCojlXqX2u8YZEzCP8D7MHP0YdJdRgsjQBoWdsjwQ
         KlxNORz+HwQ6wLAbrWN5YkgoY3xNmY5xNiUd1RgBrhdZQTDE4oGknNEUM8B3vpb1kCad
         QGUtAkbUo1jbqwCFR/VvzRm+xFkBNEpcbM3qhir9mwuAvgvOOu3sFQ3bNh3tEN4iyws7
         9a3cTLN2+jBFMy/w7TncdrcDIxm2I93PuVlakIrVeM0G4+bGf7RSn3pfzJz7IXJGIje3
         xeww==
X-Gm-Message-State: AOJu0Yw5IKDH8FKJi6d6EMK2sj8oClRzxRiY7tu2dEN+IFTp134EoEvS
	QoBCoI59N57Bd7LGS3ENFs3D8Dv2E//Dd3gqIqHSjZemgZaaK/Y2q5IvKXZFGkqEVeJ+AFQRL18
	Ongc=
X-Google-Smtp-Source: AGHT+IGGePJnrlvzRs3p7hgTJ3+jMjj73ErjvCnF6hNYZzh/AG1ttGPC2gCfIelxpQomr3g3i763Dg==
X-Received: by 2002:a05:6000:703:b0:37d:4c4a:77b with SMTP id ffacd0b85a97d-381f188cb65mr9518415f8f.58.1731331712998;
        Mon, 11 Nov 2024 05:28:32 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v3] x86/boot: Setup correctly fs segment for bogus_real_magic
Date: Mon, 11 Nov 2024 13:28:23 +0000
Message-Id: <20241111132823.21658-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

bogus_real_magic code uses fs segment so it should be initialised.

Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- added "Fixes" comment;
- add initialisation, do not remove old one.

Changes since v2:
- move initialisation in bogus_real_magic.
---
 xen/arch/x86/boot/wakeup.S | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
index 08447e1934..ff138314f5 100644
--- a/xen/arch/x86/boot/wakeup.S
+++ b/xen/arch/x86/boot/wakeup.S
@@ -77,8 +77,11 @@ check_vesaw:
         ret
 
 bogus_real_magic:
+        movw    $0xb800, %ax
+        movw    %ax, %fs
+1:
         movw    $0x0e00 + 'B', %fs:(0x12)
-        jmp     bogus_real_magic
+        jmp     1b
 
         .align 4
 real_magic:     .long 0x12345678
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 13:45:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 13:45:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833893.1249127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAUjY-0002ji-If; Mon, 11 Nov 2024 13:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833893.1249127; Mon, 11 Nov 2024 13:45: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 1tAUjY-0002jb-GE; Mon, 11 Nov 2024 13:45:36 +0000
Received: by outflank-mailman (input) for mailman id 833893;
 Mon, 11 Nov 2024 13:45:35 +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 1tAUjX-0002jV-EE
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 13:45: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 1tAUjW-0004qX-2a;
 Mon, 11 Nov 2024 13:45:35 +0000
Received: from [2a02:8012:3a1:0:1d0e:424f:5402:6713]
 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 1tAUjW-000DRT-2c;
 Mon, 11 Nov 2024 13:45: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>
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=NkVYULasFeOSx6rhvEyfhS/dt1EpTQMJzqfS20eLfzA=; b=HEzNw6PTX9yhu9NxmlsqNnhpE9
	FjPOslGcpRI4yPnY26/Nj3G/9R1KNqFqiQSzwK5Q8bTRkRlJTB5cGaCUHE81oUr75ZON+XxTVxcMD
	nVJHxuVsjIZtkUsVZt2SXhrKtFvpkrVioBJkCRmCOqsfNpK1Z9S/QbwB8haCgJFnDESU=;
Message-ID: <6dc2ebd8-d206-479b-ac3a-83ed59c7109f@xen.org>
Date: Mon, 11 Nov 2024 13:45:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Content-Language: en-GB
To: Ayan Kumar Halder <ayankuma@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Rahul Singh <rahul.singh@arm.com>
References: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
 <80ac1e78-5259-43d2-8b18-d5bd3abdca1b@xen.org>
 <2ca98e9c-1a4b-43a2-b707-097dc5093e39@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2ca98e9c-1a4b-43a2-b707-097dc5093e39@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Ayan,

On 11/11/2024 13:24, Ayan Kumar Halder wrote:
> On 11/11/2024 11:12, Julien Grall wrote:
>> Hi,
> Hi Julien,
>>
>> On 08/11/2024 19:59, Ayan Kumar Halder wrote:
>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>
>>> In Xen, SMMU subsystem is supported for MMU system only. The reason 
>>> being SMMU
>>> driver uses the same page tables as MMU.
>>> Thus, we make it dependent on CONFIG_MMU.
>>>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@arm.com>
>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>> ---
>>> Â  xen/arch/arm/KconfigÂ Â Â Â Â Â Â Â Â Â Â  | 2 +-
>>> Â  xen/drivers/passthrough/Kconfig | 3 ++-
>>> Â  2 files changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>> index 15b2e4a227..3699e148e9 100644
>>> --- a/xen/arch/arm/Kconfig
>>> +++ b/xen/arch/arm/Kconfig
>>> @@ -16,7 +16,7 @@ config ARM
>>> Â Â Â Â Â  select HAS_DEVICE_TREE
>>> Â Â Â Â Â  select HAS_PASSTHROUGH
>>> Â Â Â Â Â  select HAS_UBSAN
>>> -Â Â Â  select IOMMU_FORCE_PT_SHARE
>>> +Â Â Â  select IOMMU_FORCE_PT_SHARE if MMU
>>
>> Realistically, everything under drivers/passthrough is MMU specific. 
>> So does it actually make any sense to select HAS_PASSTHROUGH right now?
> 
> Actually we are able to assign devices to different DomUs (eg UART1 to 
> domU1) as long as the device isn't behind an IOMMU. So in our case, the 
> passthrough device tree has this node
> 
>  Â Â Â Â Â Â Â  uart@9c0b0000 {
>  Â Â Â Â Â Â Â Â Â Â Â  compatible = "arm,pl011\0arm,primecell";
>  Â Â Â Â Â Â Â Â Â Â Â  reg = <0x00 0x9c0b0000 0x00 0x10000>;
>  Â Â Â Â Â Â Â Â Â Â Â  interrupt-parent = <0x01>;
>  Â Â Â Â Â Â Â Â Â Â Â  interrupts = <0x00 0x07 0x04>;
>  Â Â Â Â Â Â Â Â Â Â Â  clock-names = "uartclk\0apb_pclk";
>  Â Â Â Â Â Â Â Â Â Â Â  clocks = <0x06 0x07>;
>  Â Â Â Â Â Â Â Â Â Â Â  xen,path = "/uart@9c0b0000";
>  Â Â Â Â Â Â Â Â Â Â Â  xen,reg = <0x00 0x9c0b0000 0x00 0x10000 0x00 0x9c0b0000>;
>  Â Â Â Â Â Â Â Â Â Â Â  xen,force-assign-without-iommu;

So how devices will be protected on an MPU systems?

 >  Â Â Â Â Â Â Â  };> So, should we still disable HAS_PASSTHROUGH for MPU ?

While it may work, a lot of code in drivers/passthrough is IOMMU 
specific (see all the function named iommu_*). So I find really odd that 
you disable IOMMU_FORCE_PT_SHARE but all the rest is still present...

I think we need some consistency. If you are planning to do device 
passthrough without any protection, then I don't think you need any code 
within drivers/passthrough/ (at least for platform devices).

Overall, for this patch, I think it would be better to simply select 
HAS_PASSTHROUGH when MMU is enabled. We can revisit device passthrough 
once we have the patches on the ML.

BTW, I think it should be move under the Kconfig MMU rather than using 
"if MMU".

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 14:19:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 14:19:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833901.1249138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAVFw-0004vm-1S; Mon, 11 Nov 2024 14:19:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833901.1249138; Mon, 11 Nov 2024 14:19: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 1tAVFv-0004vf-Tp; Mon, 11 Nov 2024 14:19:03 +0000
Received: by outflank-mailman (input) for mailman id 833901;
 Mon, 11 Nov 2024 14:19: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAVFu-0004vX-3x
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 14:19:02 +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 e3f19796-a037-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 15:18:58 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-37d473c4bb6so4271937f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 06:18: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-381fc0f5f91sm4559536f8f.62.2024.11.11.06.18.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 06:18: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: e3f19796-a037-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUzZjE5Nzk2LWEwMzctMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzM0NzM4LjE1MTE3Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731334737; x=1731939537; 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=TNbSKNG8vBBGLpvt12IyyKtlyIul0Ev54JEbkiOTFyA=;
        b=XSH9yDWz2WDpArpiGcWK7LcaYyN6Weg2+ReDYogk0dNzR16iy6G1lJEeyGV27rzcUQ
         wG11C9syxnCTNLejuN1Gnd8f0kbtIItEIZWXtdk/emmuaH0fMEfav7ZIPHzbr+l+wLNE
         ejLFpesjSZ6IM7wENEKbKpcopVYZJXz+yrxkyS8ahGut/37M/VLgEINYn0KRi5juAaFn
         YhXccoVT6yrDonh7FvL7/WDQ846hkIEzpjohBUxws5kudZEsKDX5Z/Wny4bkHZGPFZ1G
         jUZ1lseYvfr8+ct2DPqRTCLy5sfB8VpPzQHUqpKcn5QPcbB8Ly4IiGbTYQnU325KMlbO
         yUTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731334737; x=1731939537;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TNbSKNG8vBBGLpvt12IyyKtlyIul0Ev54JEbkiOTFyA=;
        b=E9rr7UoqQr9fzt59EmehXwiNlC8VopiXLCgRosLaUENOjr4sx3V0pRGtvgzJErNk29
         +LIxsPVovtkWdFw+oZ1zohyxmXSHfHBdA6Cr4n9Pt4UUDHZERR2Bccx/9yj4vGLJPT2O
         v03MrNdHidnYhOlgQgVU9XGB68oxQof5gIAJKd4c4BO5qvRfzAJkqCM4TRJGJWZkWuy2
         jPe4Oe0xFzPa7c2R3u/W1guLnTd+FUO7KsqUbXXTJuH+GtZOAJRNMF9Ekcx+6F9Hygw0
         6N+Vsr3et+Gm5FMNBfvO/Rpv9WuoSSqoyqSNtM2TiruFrv8JZpEPQw+bwc9223Ft1vZA
         VFYA==
X-Forwarded-Encrypted: i=1; AJvYcCUz5uFldd5Y+9mjFnEd/EhZEXr/XEpLKxzovt0iCRzjgdOtTR1pSi+9K8UAvW89xl1C30rdXs67lkM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtyeNomdCRuTfm1pSjXO5p7oTXh+dGke+631fcOWJ9x3sS2wU/
	mAcFF9BkktVW2OrWh/cY25cxysA5aDfGi2/2wTFqgddJURfw0m2PjIhwmHJPBQ==
X-Google-Smtp-Source: AGHT+IGXZQ33vIPyU7NV2Pms5hCxVMc5igdwxNrb/QxK+EJtoldbxA3IbqIUfVU+/K3I4CKG23wG9g==
X-Received: by 2002:a05:6000:2d84:b0:381:f443:21d9 with SMTP id ffacd0b85a97d-381f44324b8mr8669899f8f.56.1731334737447;
        Mon, 11 Nov 2024 06:18:57 -0800 (PST)
Message-ID: <64cf2def-9f8f-4ba7-9050-b82c859a9aba@suse.com>
Date: Mon, 11 Nov 2024 15:18:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/boot: Setup correctly fs segment for
 bogus_real_magic
To: Frediano Ziglio <frediano.ziglio@cloud.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: <20241111132823.21658-1-frediano.ziglio@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: <20241111132823.21658-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 14:28, Frediano Ziglio wrote:
> bogus_real_magic code uses fs segment so it should be initialised.
> 
> Fixes: d8c8fef09054 ("Provide basic Xen PM infrastructure")
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Nov 11 14:31:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 14:31:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833911.1249148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAVRk-0001iu-5u; Mon, 11 Nov 2024 14:31:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833911.1249148; Mon, 11 Nov 2024 14:31: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 1tAVRk-0001in-1r; Mon, 11 Nov 2024 14:31:16 +0000
Received: by outflank-mailman (input) for mailman id 833911;
 Mon, 11 Nov 2024 14:31: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAVRj-0001ie-5I
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 14:31:15 +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 955f9c6b-a039-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 15:31:05 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso821995966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 06:31:05 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0deebabsm595311266b.153.2024.11.11.06.31.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 06:31: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: 955f9c6b-a039-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk1NWY5YzZiLWEwMzktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzM1NDY1LjI4ODA1OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731335464; x=1731940264; 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=4PSMcaBDV1dD7xHWLdr1RBsu12mcxhSTEQJHJQ1FYmY=;
        b=Jk/eqQu7KZjVdf3Omio80/uoy0IRexBE24SUMU65JA9AXMj1EkMhBcE0gd9SFzOdab
         Hkzb/BcgX9dl5VV818Aods5poa+w5HnU/k4R53Zxbn/sMynLh+Vd+zvooL5aMYD6xT/4
         gt9f1GidnRTpK+s5khAqpy+pJPVtCWV1ny3VA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731335464; x=1731940264;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4PSMcaBDV1dD7xHWLdr1RBsu12mcxhSTEQJHJQ1FYmY=;
        b=mHsC5AyiV433h3BIy2bWg9ogPc8P1Go/jmkdKLQhIQWfSFgjYWzIwt6ZwUO7SSO/8V
         f0FTR69Bs2TD1fHRZT4mrtj0cW+1u9vYOIMsxZO/1zECkJSo+/AaNdFrDMOx+p3nEoST
         jIFPqzEXFkKDEZg/Ku6hjy08sFmsbCFnvUxPGmbBFulMJu+idyXszkSn1FG93kzg5rhu
         4cbJFVEvXI18AzdO/6yrfjDG2rre2fpsGR5KZ7yyJJ+KOkYUacOX279nc32mQYD+TxNd
         Vs+HuT7c1hGMTsyTa9QbdAuXdZxa9/cDm+s26H5OiUZO+Roc0tadmoejD7Xrplxk2NnZ
         OlLg==
X-Gm-Message-State: AOJu0YwNp3Z7StOEv0f1RlTiID67EvDKDPjtffwJP8mm80akpgTXtbej
	hjFODDyavpuTaw7mhjtp+TQLbJe7F3mautvShZI1ztdE4QLqMTwqKcc4Eop3oJM2MtLWt/+R84M
	b
X-Google-Smtp-Source: AGHT+IHARdtWyLAttkk1YdFWiG60zvD/17Hohca9dsj1wbUtDZ3pR2uOkrvQcYxe3f5ZfEY5fhtNfg==
X-Received: by 2002:a17:907:7dab:b0:a9a:3cf:cdb8 with SMTP id a640c23a62f3a-a9eeff3adaamr1208661066b.36.1731335464024;
        Mon, 11 Nov 2024 06:31:04 -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>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH for-4.18] tools/libs/evtchn: Drop assert()s referencing MiniOS's main_thread
Date: Mon, 11 Nov 2024 14:31:01 +0000
Message-Id: <20241111143101.996733-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This breaks the build with debug active, as main_thread is not an exposed
symbol.

This is a minimal version of commit bc4fe94a69d4 ("tools/libs/evtchn: replace
assert()s in stubdom with proper locking").  It leaves MiniOS no worse off
with respect to thread safety.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Juergen Gross <jgross@suse.com>

Speculative fix.  Gitlab is a little busy right now:

  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536597753
---
 tools/libs/evtchn/minios.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/tools/libs/evtchn/minios.c b/tools/libs/evtchn/minios.c
index 28743cb05575..e33ddec7e7f0 100644
--- a/tools/libs/evtchn/minios.c
+++ b/tools/libs/evtchn/minios.c
@@ -195,7 +195,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle *xce,
     int ret;
     evtchn_port_t port;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
@@ -226,7 +225,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle *xce,
     evtchn_port_t local_port;
     int ret;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;
@@ -279,7 +277,6 @@ xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,
     struct port_info *port_info;
     evtchn_port_t port;
 
-    assert(get_current() == main_thread);
     port_info = port_alloc(xce);
     if ( port_info == NULL )
         return -1;

base-commit: 2b18f341cb5c66bbc3260a8e0dd9f42b2f58d78c
prerequisite-patch-id: 39749d67636f2c0377cd95d938cf0ae5da72403b
prerequisite-patch-id: 75378607486a1a3909481c243f3dfd163ae433dc
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 14:41:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 14:41:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833919.1249157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAVbT-0005Bj-1m; Mon, 11 Nov 2024 14:41:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833919.1249157; Mon, 11 Nov 2024 14:41: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 1tAVbS-0005Bc-V7; Mon, 11 Nov 2024 14:41:18 +0000
Received: by outflank-mailman (input) for mailman id 833919;
 Mon, 11 Nov 2024 14:41: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=/YTX=SG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAVbS-0005BW-Bk
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 14:41:18 +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 002488f5-a03b-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 15:41:13 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-431688d5127so35673815e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 06:41: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-381eda051c6sm12942515f8f.99.2024.11.11.06.41.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 06:41: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: 002488f5-a03b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAwMjQ4OGY1LWEwM2ItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzM2MDczLjk1NDM4OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731336073; x=1731940873; 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=f6hhewhKzutNZ7PC+fCbEjSisQ63N1MUTmQ+5u3Bvvk=;
        b=A8+oSRdOSdqgcUX59W/zJSFcGHTufLU44rmpPLXxdeUT9JVmaLGVeR1KK9bG/bzv0q
         9fo/c4/O6DtayJK/GjnWWgxRIDOwfYFv9BbZC6fK2mZaxwzSQOKiopgn9vxdG2UlJr2C
         fulwAlfx1ijTWuv646Fnj9CCxhSoLBZ8wHfQBKGAqvNXS5ULA0w2IXnCzOzw0gm72+XE
         6IbQfHYQq8u1HblS1h/dJKgC2UAmLjcDD1r8tz9VdZOdqqQRVk2QeRYknfxkGnpaAmYD
         KYGAlAC+jQ1q2n+j+X4mWKcvk53H2dUREsyF4O8yT8ZY8dvWjgayW98yxmmNMGfz4SSE
         Rshw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731336073; x=1731940873;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f6hhewhKzutNZ7PC+fCbEjSisQ63N1MUTmQ+5u3Bvvk=;
        b=MFJGmdfyihL0DIFJkDK0wkXDUnDSvhPBLul07m3VcK73q7yLZGxHbQxcti+mXFideD
         r6Z0IvK5CJ192miuVP63WkjgbJKVt+IlyHAIxH7PIWO+swFAnZpy+0rs+8iz9CwsCqFD
         Fy0++/9veGOqSTI83nOF29+Uf2FB89v1HE+ABwzJZY4BvnEn5UXHrx3uVmhz/EnM4SX0
         G070bcL9F14MG/L2FNJ3gr6081ahbcVf0rWkEub76BZIHirfp6k5kqNSxH88Evz1DtbG
         butRPGQ/BMXRA2lrs/W9nFp3F7z7pC4qQB47K38Qo4Ques+a9IuCp9sCzNqoQlXKzrhN
         Msvw==
X-Forwarded-Encrypted: i=1; AJvYcCWG0OBYW9zrWKimWlyzxmM2NUqjNzqIiJuA+44cy6pCOhv042IGcTPF0kUiCQSamu5rET/frhc1ySI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywucpld6RfaxI1W4q9HKhvkD7A4fiMUx1LKVFh0L1uJypV6wMrs
	o+o6FG5iEJfUm0YdTCJVwtG48Yu5EHxWJJ1q/sapFatRRaT7FuToB6uPruc95A==
X-Google-Smtp-Source: AGHT+IEwiKCXvRp/3gmP9Nan4oPG6Ix5KXuL+mIEptmrX0x3aGg1dXkwjohhT0UGVkEHsFCNvRXmYQ==
X-Received: by 2002:a5d:6c69:0:b0:37d:387c:7092 with SMTP id ffacd0b85a97d-381f186537fmr10669215f8f.7.1731336073181;
        Mon, 11 Nov 2024 06:41:13 -0800 (PST)
Message-ID: <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.com>
Date: Mon, 11 Nov 2024 15:41:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.18] tools/libs/evtchn: Drop assert()s referencing
 MiniOS's main_thread
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241111143101.996733-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: <20241111143101.996733-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 15:31, Andrew Cooper wrote:
> This breaks the build with debug active, as main_thread is not an exposed
> symbol.
> 
> This is a minimal version of commit bc4fe94a69d4 ("tools/libs/evtchn: replace
> assert()s in stubdom with proper locking").  It leaves MiniOS no worse off
> with respect to thread safety.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Juergen Gross <jgross@suse.com>
> 
> Speculative fix.  Gitlab is a little busy right now:
> 
>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536597753

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

Considering that 4.18 pre-dates the export restrictions, I'm a little puzzled
though. And indeed a400dd51706867565ed1382b23d3475bb30668c2 is a 4.19 commit;
the update of the main tree branch (3c81457aa338) should have used
ff13dabd3099687921145a5e3e960ba8337e7488 instead, if I'm not mistaken.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 14:47:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 14:47:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833927.1249169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAVhJ-0007ZN-Mr; Mon, 11 Nov 2024 14:47:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833927.1249169; Mon, 11 Nov 2024 14:47: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 1tAVhJ-0007ZG-Im; Mon, 11 Nov 2024 14:47:21 +0000
Received: by outflank-mailman (input) for mailman id 833927;
 Mon, 11 Nov 2024 14:47: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAVhI-0007XJ-4m
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 14:47:20 +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 d7cc6306-a03b-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 15:47:15 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5ced377447bso6631836a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 06:47:15 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b5d77csm4946196a12.5.2024.11.11.06.47.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 06: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: d7cc6306-a03b-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ3Y2M2MzA2LWEwM2ItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzM2NDM1Ljc0MjgzNiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731336435; x=1731941235; 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=VFuXBo/PSdwf8D14x7w/LF4D6CUlNi3JdvZ1ncc4+Wk=;
        b=MjPbwzdM77hrRsdH/+eYSBAivf3gg7os7bg5zXmjLnnvVKUuA/insiAUq6aNhzfD66
         KNtJUgmXKRfo3XFKzU9kxYMkxJgNSJyhqSPAIRPdSBJp+kjBFpDAlbl2cuVXSS35r/JL
         e/7KqlBhVkPCP3vKD4ErOTMYDNvFiKwKxluAw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731336435; x=1731941235;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VFuXBo/PSdwf8D14x7w/LF4D6CUlNi3JdvZ1ncc4+Wk=;
        b=mwYnpKbzDReu5bhZUiOO+6Gza52AJiXc2Pv0GT7eIGWTIgLwiuDPKANn/4LlzzT0AU
         t6u6K0mhwcYBJiKSlkuVoEDvc+z7CqOZKr72LRw1wd9NXv0K2mgW6Jxxe8DLcnQibc2E
         gwNs7m9/SCgMXQ4As4tiBdrS/ufo91ea2IRLrsMpmDNPb/cWmrV5E/BDGUh91DWc1JSU
         xj84lkDK3wxv+zzrRmvQZ7aeD6imQxDYE9ZKEDcVadNzFAa+bMiKstNAFmp0rZBlk2LS
         C4kQQ+mxrxGJ/ZZT+tsPKYFGEa6ejhSMIwfiutN65ZjltiToOHS6pwvEpnj2fR0NJnEH
         7DVA==
X-Forwarded-Encrypted: i=1; AJvYcCXYg0mzxoxs2UcEzpBLLyEbGBtezqWp/nndCe4YVSf3Psytzc3mY5WHfOfiipVzsa1rdI0KAPHkib4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygyLLIDA9FD7LmlPkhzpoyzcuO17JiAaeOxekaqvCnQPCdRhYY
	wVNVlLC/2xKkbP6pK0jLCFllRVRoeZMDYldHsanl5Ue6N6IuzcpWV3WyhNF8RjQ=
X-Google-Smtp-Source: AGHT+IFppS/DwzGgbq7P3KSQBBDEpkn9f9/+spug2Rf0GasSUvj6TKDWDz/e971zNb5uY2K+NPuSgg==
X-Received: by 2002:a05:6402:35cd:b0:5cb:7594:9ece with SMTP id 4fb4d7f45d1cf-5cf0a3261a4mr11205717a12.17.1731336435036;
        Mon, 11 Nov 2024 06:47:15 -0800 (PST)
Message-ID: <61ab6fe8-2200-4042-ba1c-e6ad0a000bfc@citrix.com>
Date: Mon, 11 Nov 2024 14:47:13 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.18] tools/libs/evtchn: Drop assert()s referencing
 MiniOS's main_thread
To: Jan Beulich <jbeulich@suse.com>
Cc: Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241111143101.996733-1-andrew.cooper3@citrix.com>
 <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2024 2:41 pm, Jan Beulich wrote:
> On 11.11.2024 15:31, Andrew Cooper wrote:
>> This breaks the build with debug active, as main_thread is not an exposed
>> symbol.
>>
>> This is a minimal version of commit bc4fe94a69d4 ("tools/libs/evtchn: replace
>> assert()s in stubdom with proper locking").  It leaves MiniOS no worse off
>> with respect to thread safety.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Juergen Gross <jgross@suse.com>
>>
>> Speculative fix.  Gitlab is a little busy right now:
>>
>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536597753
> Assuming it helps:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Testing is still going, but various ones have passed where previously
they failed, so yes, it is helping.

> Considering that 4.18 pre-dates the export restrictions, I'm a little puzzled
> though. And indeed a400dd51706867565ed1382b23d3475bb30668c2 is a 4.19 commit;
> the update of the main tree branch (3c81457aa338) should have used
> ff13dabd3099687921145a5e3e960ba8337e7488 instead, if I'm not mistaken.

Oh yes.Â  I've messed that up.

I'll try again with the correct revision.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 14:49:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 14:49:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833933.1249178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAVj5-00085s-0Z; Mon, 11 Nov 2024 14:49:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833933.1249178; Mon, 11 Nov 2024 14: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 1tAVj4-00085l-U3; Mon, 11 Nov 2024 14:49:10 +0000
Received: by outflank-mailman (input) for mailman id 833933;
 Mon, 11 Nov 2024 14: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=KwgS=SG=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tAVj3-00085f-3N
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 14:49:09 +0000
Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com
 [2a00:1450:4864:20::642])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 191ab6e2-a03c-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 15:49:05 +0100 (CET)
Received: by mail-ej1-x642.google.com with SMTP id
 a640c23a62f3a-a9eb3794a04so703697566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 06:49:05 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee06b9d62sm597895066b.0.2024.11.11.06.49.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 06:49: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: 191ab6e2-a03c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2NDIiLCJoZWxvIjoibWFpbC1lajEteDY0Mi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE5MWFiNmUyLWEwM2MtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzM2NTQ1LjMxOTU3NCwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731336545; x=1731941345; 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=o0vfGEVzVUOBN55zKhNxfxzr412mUBu1aXaIhJROpSo=;
        b=eOUDTpXQYpjdoYIeZuL8xv1UK3xUDrJLkes32trEsSx9jEuCBvQyWqjOP/T01gcyMX
         iCZxH0P9f1GkEZsaLsb3cQW9aZoCotivdcUgAU22JJdSFr/j8H72rD2NJYjC9tUayoPT
         92zrlMsUSm0DbgQb4VbTS+OX1IyzUuEjdtpkAZ6APD29YE/Nd2spe2Yp7GcWJeJ/Y37w
         jYnVidte2vzirp5VgdOagwZkVdREkcpxe+JOwuuhKnIOWnzQktofWLkmEQx8FGsCRAEn
         2wdCZbc0k/g52xe6KkaIGy5h+3Fn1gCDbNEMMq/b2u1VntbjG/gAQV3yW3u591WTiK82
         biCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731336545; x=1731941345;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=o0vfGEVzVUOBN55zKhNxfxzr412mUBu1aXaIhJROpSo=;
        b=C/C4EqMJhDNB9wHshMb0iO0ggPMVQQz3T0vdavtAexiiV87W0NVwmDlKdCaEDYTsbD
         PefeL/UWXpUB0/paxICeqZQ2wRFGIBq35oKFIKy+YK6rAPmZ3AqFh9W84KbNr2mpbHTS
         WxAuzars1l6UWCblwNGTX+8LRnedlTszQ0td/489SzQdbUBFb4zzqtPZMpdsCwXnmmeV
         ltJYcIn5qfD6pBtaFZaZ4DnIbX5RhMtPxy+bV7rwlTluawEV38A1uYAQCKhPk2YNb2OK
         5Qz52H4BMSOeRIgU5yM/zaHrCKJBgEvsg1rJ2OjUgYfQgAie0mj3mG1SyK4Et0LPLC0Q
         +8cA==
X-Gm-Message-State: AOJu0Yxh60SjKp9zmrEfHcEACSQpPFKS4uSHijhobzlK/gGRPoSIarzW
	K5QYoTacA8SmNNME+de8ceBUXjbgUM4kplki6nxYfLP9dNJ1HuUe77wxn28W38I=
X-Google-Smtp-Source: AGHT+IGxdlSv6rkXi22laSmfV6ypazA3bEeDiVsc+rH1tDExMUapUYBzK9FwBb9AkH1JzvAwtMqOBQ==
X-Received: by 2002:a17:907:368a:b0:a99:f605:7f1b with SMTP id a640c23a62f3a-a9ef002345dmr1177610066b.60.1731336544689;
        Mon, 11 Nov 2024 06:49:04 -0800 (PST)
Message-ID: <9e3938c5-e89c-4df8-9e09-0d5c1ccc65c7@suse.com>
Date: Mon, 11 Nov 2024 15:49:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.18] tools/libs/evtchn: Drop assert()s referencing
 MiniOS's main_thread
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <20241111143101.996733-1-andrew.cooper3@citrix.com>
 <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.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: <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------r6tgKdMfm9HboHS4IEfBghY5"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------r6tgKdMfm9HboHS4IEfBghY5
Content-Type: multipart/mixed; boundary="------------lj4fy0auZz6p8CnrletEKrtK";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <9e3938c5-e89c-4df8-9e09-0d5c1ccc65c7@suse.com>
Subject: Re: [PATCH for-4.18] tools/libs/evtchn: Drop assert()s referencing
 MiniOS's main_thread
References: <20241111143101.996733-1-andrew.cooper3@citrix.com>
 <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.com>
In-Reply-To: <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@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=

--------------lj4fy0auZz6p8CnrletEKrtK
Content-Type: multipart/mixed; boundary="------------byoCM5NfSo1VWYrZsQjJSi0j"

--------------byoCM5NfSo1VWYrZsQjJSi0j
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTEuMTEuMjQgMTU6NDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMS4xMS4yMDI0
IDE1OjMxLCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4gVGhpcyBicmVha3MgdGhlIGJ1aWxk
IHdpdGggZGVidWcgYWN0aXZlLCBhcyBtYWluX3RocmVhZCBpcyBub3QgYW4gZXhwb3NlZA0K
Pj4gc3ltYm9sLg0KPj4NCj4+IFRoaXMgaXMgYSBtaW5pbWFsIHZlcnNpb24gb2YgY29tbWl0
IGJjNGZlOTRhNjlkNCAoInRvb2xzL2xpYnMvZXZ0Y2huOiByZXBsYWNlDQo+PiBhc3NlcnQo
KXMgaW4gc3R1YmRvbSB3aXRoIHByb3BlciBsb2NraW5nIikuICBJdCBsZWF2ZXMgTWluaU9T
IG5vIHdvcnNlIG9mZg0KPj4gd2l0aCByZXNwZWN0IHRvIHRocmVhZCBzYWZldHkuDQo+Pg0K
Pj4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4
LmNvbT4NCj4+IC0tLQ0KPj4gQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4N
Cj4+IENDOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+Pg0KPj4gU3BlY3Vs
YXRpdmUgZml4LiAgR2l0bGFiIGlzIGEgbGl0dGxlIGJ1c3kgcmlnaHQgbm93Og0KPj4NCj4+
ICAgIGh0dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvYW5keWhocC94ZW4v
LS9waXBlbGluZXMvMTUzNjU5Nzc1Mw0KPiANCj4gQXNzdW1pbmcgaXQgaGVscHM6DQo+IEFj
a2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IA0KPiBDb25zaWRl
cmluZyB0aGF0IDQuMTggcHJlLWRhdGVzIHRoZSBleHBvcnQgcmVzdHJpY3Rpb25zLCBJJ20g
YSBsaXR0bGUgcHV6emxlZA0KPiB0aG91Z2guIEFuZCBpbmRlZWQgYTQwMGRkNTE3MDY4Njc1
NjVlZDEzODJiMjNkMzQ3NWJiMzA2NjhjMiBpcyBhIDQuMTkgY29tbWl0Ow0KPiB0aGUgdXBk
YXRlIG9mIHRoZSBtYWluIHRyZWUgYnJhbmNoICgzYzgxNDU3YWEzMzgpIHNob3VsZCBoYXZl
IHVzZWQNCj4gZmYxM2RhYmQzMDk5Njg3OTIxMTQ1YTVlM2U5NjBiYTgzMzdlNzQ4OCBpbnN0
ZWFkLCBpZiBJJ20gbm90IG1pc3Rha2VuLg0KDQpJIGFncmVlIHdpdGggdGhhdC4NCg0KDQpK
dWVyZ2VuDQo=
--------------byoCM5NfSo1VWYrZsQjJSi0j
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-----

--------------byoCM5NfSo1VWYrZsQjJSi0j--

--------------lj4fy0auZz6p8CnrletEKrtK--

--------------r6tgKdMfm9HboHS4IEfBghY5
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/Ey8FAmcyGV8FAwAAAAAACgkQsN6d1ii/Ey/8
vAf/abjgIqkOnUeTe4Gb13wSZw88sljvPBJYSXXGKGb3tneEntIi5rp9UVIpHGDG7j+Ql3G0XkBB
c0k3E4N4Ch3fc1st4DnO7XdcvMclaF1y++byKNl3Ht5USRPck1/Mr2CRR7c7tYLjWcHPiBKNCvZw
cHpoCwdiJKX0fSnJTBKNCxA+S064QQfYFxx0vJSVe9lWqzvG5w1A4qOKxux57JoP5W0+E9txsElR
TW/YJCdmZq6KfRLh9LzClIsak2o9+1l9etqE1wyQJxQgkcihBMj9G7KRzaLklTBkZZ1+pWt2HpIt
XOofXNj5c7xV/ziuz6YS4zBrYa4ewPu3WjGezRj5Aw==
=wC6O
-----END PGP SIGNATURE-----

--------------r6tgKdMfm9HboHS4IEfBghY5--


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 14:54:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 14:54:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833942.1249187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAVnn-0002GC-Iv; Mon, 11 Nov 2024 14:54:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833942.1249187; Mon, 11 Nov 2024 14:54: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 1tAVnn-0002G5-G1; Mon, 11 Nov 2024 14:54:03 +0000
Received: by outflank-mailman (input) for mailman id 833942;
 Mon, 11 Nov 2024 14:54: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAVnl-0002Ee-Kj
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 14:54:01 +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 c6986e29-a03c-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 15:53:56 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9a0c7abaa6so603409566b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 06:53:56 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0def47esm596582866b.160.2024.11.11.06.53.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 06: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: c6986e29-a03c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM2OTg2ZTI5LWEwM2MtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzM2ODM2LjM4MjM4OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731336836; x=1731941636; 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=62OePzVWiS+jVdHXAk+GnxVkdhYxIAP3y8CA54XAhCU=;
        b=FSxXN3tsNTLu4AH7VgI+TnPFh69bKMq5Ot43H5cz4tFd+9iznYVYtWCBDvP8QLzzoj
         AandLRc6D4BHX5Fa2sD8Pcm1ldpJLKhRrWSWh07RlJRf97BGLLhJ/usiHfBXo4DeEbUY
         /bzX7snKMrdFjuUWox1fc55a1BZ2TxEbOcoM8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731336836; x=1731941636;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=62OePzVWiS+jVdHXAk+GnxVkdhYxIAP3y8CA54XAhCU=;
        b=hlnLzC96hj9rSu6t6QelEiME1CDV3ysSNvFpedjMZS3RA9cKyq+430Mb55twjIPVTc
         ADcPG9wKdV7UwGHnucED2wEAQwRdWjAtDOnnfzj6DvcGG9yirLpgw9/btU1b9paopHl+
         flFmeqhlBpA4VXd9qwCi3tGG1fN8en1OcTmm4/CPe86NUsiqgBYrBTSyQWnZsYVt6zEu
         zeTgqeFI2zmKGjFEc14UwVszw4EZIdcjOgZvHGNWMzlo67yCNwN7a8TVlmW62jD8zdor
         E6GOeKtUbwihAabUS5Dv8u82YvTCvPOfJ0WTdjGMRAkKSm7kO7Mz03MF6xer3GVSd0dJ
         NnBg==
X-Forwarded-Encrypted: i=1; AJvYcCUIyBRyp2RrVcWvDFCJFvsh4KOD08+J73uP61YGZq+SH92gn3Ic9ehhcJpIPcrGZzMZlRECyFQ2LIc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywp6Y+Bfwn9Cv3YEW16rKXJyGeqh4DgfNPTeNPpnVfEDD9rqk1w
	5GMgl8tshAg6ctnilb01PageDkLnhPJb/h4uiqKWvRstHHsuYtJHkyCWSCPw0ng=
X-Google-Smtp-Source: AGHT+IEal3SEtM6gA0Gk4Ct+MyzVmPUATv0d497H+ZAhLZmJPnjLdXEgdILvSa8TMRG1+8q6/Ag6uA==
X-Received: by 2002:a17:907:6d24:b0:a9a:9df:5581 with SMTP id a640c23a62f3a-a9eeffeee58mr1286818366b.38.1731336835785;
        Mon, 11 Nov 2024 06:53:55 -0800 (PST)
Message-ID: <1fba70d8-d127-4c39-8bca-29a0b7a739a6@citrix.com>
Date: Mon, 11 Nov 2024 14:53:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.18] tools/libs/evtchn: Drop assert()s referencing
 MiniOS's main_thread
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241111143101.996733-1-andrew.cooper3@citrix.com>
 <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.com>
 <61ab6fe8-2200-4042-ba1c-e6ad0a000bfc@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <61ab6fe8-2200-4042-ba1c-e6ad0a000bfc@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2024 2:47 pm, Andrew Cooper wrote:
> On 11/11/2024 2:41 pm, Jan Beulich wrote:
>> On 11.11.2024 15:31, Andrew Cooper wrote:
>>> This breaks the build with debug active, as main_thread is not an exposed
>>> symbol.
>>>
>>> This is a minimal version of commit bc4fe94a69d4 ("tools/libs/evtchn: replace
>>> assert()s in stubdom with proper locking").  It leaves MiniOS no worse off
>>> with respect to thread safety.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Juergen Gross <jgross@suse.com>
>>>
>>> Speculative fix.  Gitlab is a little busy right now:
>>>
>>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536597753
>> Assuming it helps:
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> Testing is still going, but various ones have passed where previously
> they failed, so yes, it is helping.
>
>> Considering that 4.18 pre-dates the export restrictions, I'm a little puzzled
>> though. And indeed a400dd51706867565ed1382b23d3475bb30668c2 is a 4.19 commit;
>> the update of the main tree branch (3c81457aa338) should have used
>> ff13dabd3099687921145a5e3e960ba8337e7488 instead, if I'm not mistaken.
> Oh yes.Â  I've messed that up.
>
> I'll try again with the correct revision.

With the revision fixed:

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536629643

(Still busy though.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 15:24:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 15:24:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833973.1249258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAWGu-0004vJ-EM; Mon, 11 Nov 2024 15:24:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833973.1249258; Mon, 11 Nov 2024 15:24: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 1tAWGu-0004vC-Bk; Mon, 11 Nov 2024 15:24:08 +0000
Received: by outflank-mailman (input) for mailman id 833973;
 Mon, 11 Nov 2024 15:24: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAWGt-0004v6-DJ
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 15:24:07 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id faae7d31-a040-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 16:24:01 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-539e63c8678so5389575e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 07:24:01 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2e41bsm604807366b.191.2024.11.11.07.24.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 07: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: faae7d31-a040-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmQiLCJoZWxvIjoibWFpbC1sZjEteDEyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZhYWU3ZDMxLWEwNDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzM4NjQxLjcwODk2Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731338641; x=1731943441; 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=xcZw8svXYuzDJhHJXMV0p2ZzPIponrZJ6LGsvohw76U=;
        b=HdFa/YqpnK6O5eGmt8xDK1uG0Ph5eTPHLTEjuxxKVEOp8Axhfs99XiDYJJFlwsguFc
         cewiXfpRb6gPdksutgHCE1k1LX0bOS84VDBQqvr6KIv1iSjnYRXXitMIwUoCxRSuHJsl
         RIBEHZGuh4MuqbMFaAjQ4LiPGdanNKRIgNC9k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731338641; x=1731943441;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xcZw8svXYuzDJhHJXMV0p2ZzPIponrZJ6LGsvohw76U=;
        b=HwpA24EB7aal9xu59jusMeEVxrcs7PFCNMM2dOOMckf18J2zUtNV17ZN+4CYndJcRD
         L/znUBDc2qjuHLKKjaCIwWbInnaAv5dd4735xKmFrM7lrTh1YH2VG6WYdwYJb+SE9DM7
         UQMeYI/tazfFHotghOwrMVnb9ufYI6pjwotZOpTTBxYgXE9n5+v4r1oRmtrb0360aqum
         8yXTuVh2IpakKugUhbxOkl2p4kUtUKEc5LYzVjqAfpuFVziwPem22z9aC7xHZx0STfTG
         6SpY3YR8m7a8nT8E/VkIhM8yJzlObnHwmvdzn83am+T3Y33Ej3JFGq6ah8RG4nrYRTfH
         eHHQ==
X-Forwarded-Encrypted: i=1; AJvYcCX7YEDGV8fYqxESpK0aRVeQffaWRqcdtPvHulB/qwBDL1iu6Oo09lw9M9l17YUa5G2V/BQe8DDUK+g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyQxyPhC4Yo/YioimdX6YMCbCRgkPxQ6pyt0dmxnwWandK4XsCk
	zcf8AgDmUnw+Bs4xYrHLwDIzHv4QUGMFTTGs/opY3t/NVOT9Pytd8KVxI1u4Pa0=
X-Google-Smtp-Source: AGHT+IFK/amQgOyNI/QDmXzHOoQ3nuV29ctjQ+Qa4MDVWwpC7YBSF1TPkzskUZTX1zmxkiUeApRgbg==
X-Received: by 2002:a05:6512:b09:b0:536:a695:9429 with SMTP id 2adb3069b0e04-53d862cd111mr5105168e87.10.1731338641016;
        Mon, 11 Nov 2024 07:24:01 -0800 (PST)
Message-ID: <e6ed3068-cc4f-4b37-bef4-5318d2e9fc4c@citrix.com>
Date: Mon, 11 Nov 2024 15:23:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.18] tools/libs/evtchn: Drop assert()s referencing
 MiniOS's main_thread
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Juergen Gross <jgross@suse.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241111143101.996733-1-andrew.cooper3@citrix.com>
 <36b7aa89-c87d-40a1-b721-9fa21ff9c2cc@suse.com>
 <61ab6fe8-2200-4042-ba1c-e6ad0a000bfc@citrix.com>
 <1fba70d8-d127-4c39-8bca-29a0b7a739a6@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1fba70d8-d127-4c39-8bca-29a0b7a739a6@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2024 2:53 pm, Andrew Cooper wrote:
> On 11/11/2024 2:47 pm, Andrew Cooper wrote:
>> On 11/11/2024 2:41 pm, Jan Beulich wrote:
>>> On 11.11.2024 15:31, Andrew Cooper wrote:
>>>> This breaks the build with debug active, as main_thread is not an exposed
>>>> symbol.
>>>>
>>>> This is a minimal version of commit bc4fe94a69d4 ("tools/libs/evtchn: replace
>>>> assert()s in stubdom with proper locking").  It leaves MiniOS no worse off
>>>> with respect to thread safety.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>> CC: Juergen Gross <jgross@suse.com>
>>>>
>>>> Speculative fix.  Gitlab is a little busy right now:
>>>>
>>>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536597753
>>> Assuming it helps:
>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> Testing is still going, but various ones have passed where previously
>> they failed, so yes, it is helping.
>>
>>> Considering that 4.18 pre-dates the export restrictions, I'm a little puzzled
>>> though. And indeed a400dd51706867565ed1382b23d3475bb30668c2 is a 4.19 commit;
>>> the update of the main tree branch (3c81457aa338) should have used
>>> ff13dabd3099687921145a5e3e960ba8337e7488 instead, if I'm not mistaken.
>> Oh yes.Â  I've messed that up.
>>
>> I'll try again with the correct revision.
> With the revision fixed:
>
> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536629643

Yes, having the correct MiniOS revision does work too.Â  I'll fix that up.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 16:01:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 16:01:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.833999.1249340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAWqz-0000Pb-Ql; Mon, 11 Nov 2024 16:01:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 833999.1249340; Mon, 11 Nov 2024 16:01: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 1tAWqz-0000PU-NA; Mon, 11 Nov 2024 16:01:25 +0000
Received: by outflank-mailman (input) for mailman id 833999;
 Mon, 11 Nov 2024 16:01: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=eHe6=SG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tAWqy-0000PO-OJ
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 16:01:24 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20613.outbound.protection.outlook.com
 [2a01:111:f403:2412::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f288485-a046-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 17:01:18 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SA1PR12MB8119.namprd12.prod.outlook.com (2603:10b6:806:337::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29; Mon, 11 Nov
 2024 16:01:12 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8137.022; Mon, 11 Nov 2024
 16:01: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: 2f288485-a046-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjEzIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjJmMjg4NDg1LWEwNDYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzQwODc4LjgwNzA4Mywic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xmqale9EYP10343BV+Mq62eacDCoHWvhDjt0DznmU4OsDiVEdm35hvPLljq0yhtvmDj6Q3CHFon1AeG1HRFeLqdpoTgEJ/3AzAmcDYFYwcqhRzsJjFDv+0g1M0NVC8KjgtwWBU2PaIjGMN673KAi/BA91m1p/XBsuOKm+9TFgEAYCVBvqrDXqR14wUijK/AFEcnB3pLJsca1N96AX+xJ15kYlpSVOg2QdIsQsddLAJ59G6tXu56+PzWRTMD5VbW+sBS8PN3aPFQJNNiqfzZyfOaYGAmH30kOWiTYxdC4sqPT5SuIgmPqfLpP//IC0mUScP2+Cj//y0ZBEBlqJcUsJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=77dwYmiSAKS7gANXteFEPKiFGOY8ENhgnwTG/vsviX8=;
 b=oJ7ARS2SApfnDJpd0hpi9elTdoRWcfBrSqAIeP5tKbl/7UOZ+oiUjueV1WlFa4+zpIJehFc/eVwAyTIaSW4HN44IJ/cHH/f1wW53siMACx5VV4w9Dij2GLkHflomTvYJVHFof0PlYJf8sz++pyOg1qVBm8hq/ZeGr4Y4bFl6lMRafb9kryS7iZ8QbrFeEQquvjnpa564rwM0YxswcEb84h/1wmJpk2ds92i6mhTADUpkZ2iZjbv9AFoScNa929ESjjlrLA+kHp/4EXHbG6LkGdjtCA4Qy5B4DOVCE7KNg/4oBjZInRkBuHoXmm+KM3UwxXNJuU1yjzTNP5GWrIn6aw==
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=77dwYmiSAKS7gANXteFEPKiFGOY8ENhgnwTG/vsviX8=;
 b=JewtLnuGPdGxhR5ghUJs9oAVty/U7GJ8psUsUj33F8o5nDYGqMhpDbrlGfLOWyO/Xy5AQSpfXLBmkvJC2CvP1W7pxoyXTSMcSCJFdFIcXR5YrsLBGPcv+/D+FrpL56TM29Qmrjwp/pWq6RnluWlVfeNa/08AP0UuTDT7IB5c/bQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <86862f6e-caf3-4a5a-a650-b9bac74b83d3@amd.com>
Date: Mon, 11 Nov 2024 16:00:50 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Content-Language: en-GB
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Rahul Singh <rahul.singh@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
 <80ac1e78-5259-43d2-8b18-d5bd3abdca1b@xen.org>
 <2ca98e9c-1a4b-43a2-b707-097dc5093e39@amd.com>
 <6dc2ebd8-d206-479b-ac3a-83ed59c7109f@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <6dc2ebd8-d206-479b-ac3a-83ed59c7109f@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0469.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:3dc::18) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SA1PR12MB8119:EE_
X-MS-Office365-Filtering-Correlation-Id: 2b16a0f6-d8fc-4439-52a8-08dd026a1074
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QW1ST2FRSTd4RHdOTDlkQVFaejNtMkFhOW0rTTFxcTVuZjFydkpGcUhvd21x?=
 =?utf-8?B?ckhOSlJxYjQ1QktWM2k5RXFXYVFlNWh0WTRwYTFhdnErS2dRdE5mdlgvTEdx?=
 =?utf-8?B?R0dtSHpXd2hSODRwZGtwcVduSG8yajJPZlNpQXhlSDI0VkJ3YzJpZFpzZElI?=
 =?utf-8?B?ZzgxUHdUaUNpMThZWmdCdGhnTWF4UzNkcUZuck5BOWZjRlE4TWYrdWQ1clFi?=
 =?utf-8?B?Vk9pYkM1dlQvMitLc0d0S01pYnRUZ1JTYzhWU0RPTldDQ0hCaDBPYUhPZUdy?=
 =?utf-8?B?Y2lnY0pxaWhXenJxMmlMcStxS2YrU2JpMzdXZnB5UTROUXVSeURvYVJMMm5B?=
 =?utf-8?B?SHlGL0lPeHZJU2kvemlITnRwYUh4NGU0YUxUZVFhTVdRTGt6MndkNDhaWmRx?=
 =?utf-8?B?U2hodU1hNzYvSWVKeUQxVnJFNlZCcGZzOVMwMjlBNjdVSjJCK28xUVl1T2M0?=
 =?utf-8?B?bGRrRG1sNHhHR0pWMk53QTJ2d0VFVUVGMm5GWHJyNzg4dFBLNWErZ3d4M1hx?=
 =?utf-8?B?S0dZT1pWTzlLNThydXZCN1I5UlI4U0V1c3VaRGlmQXhENVN1a1JENS9sakdr?=
 =?utf-8?B?T0NOU0djby9RWDRZSFVzK3FGQXpIazBqc3M4R0tGRituQitFYlZxT2JqcUln?=
 =?utf-8?B?VGl3aWZmL0dOREFBVld1SHFwSUN4RzRMaW5sQUhyK0ZQQkdXVWt1cVJadjVu?=
 =?utf-8?B?cVF4TVVnbjF6eWY0dks2NVFoeFhyNkovNllvREJxUXNTMXQ1WUYySEpCR3Bu?=
 =?utf-8?B?QStpYnAvU2x1YkJjdzNjN0J2SDlPNzA0SUNKU3RQd1FaSUNJc1V6SUl1ekVV?=
 =?utf-8?B?S3hJTVFKb0R6S2p6T3pJV1gzN2twYUVQNXJHd3hJaTZiQldWTlNYdFdkN2xk?=
 =?utf-8?B?V2xzdDRBelNOdlBMY3laYm96a1ZONmRCVDFjUTNLOTdEYldSNFJ5dWg4VStl?=
 =?utf-8?B?T2tNcVFzTWZjOUxvazNPczBGbEZpMWN0cXRNVm9PL25lODdzVHEwYnB3T0F0?=
 =?utf-8?B?MlVoQU5lRWZiaS8vdFo3UHhPU0s0UlNJTVVLZGpGYlp0blovUkFJeTZsR2Ja?=
 =?utf-8?B?VFZtL3I1alkvV01WU2NJVFJBM20zU2tUaTg3OVdsQmtZQXgyZUw1WVhrc2gw?=
 =?utf-8?B?Y1ZFUXZndnNuOVc4bTR6TVhNQ0g1YVkyNEFzRzB5YlRlOFVnbzdIcFdpcDJM?=
 =?utf-8?B?dk00T1NzWmFIMEdWdTNpNFgvaHlpUVB0Rjd6TEhOWFk5YmZZZUl5aGhzZGtZ?=
 =?utf-8?B?MVlYeXBWcXBaRGZGaFM4RloyQm1VOUVIQmExYit2dmhnbTZSdXFpR01ZL1hD?=
 =?utf-8?B?UnJEMzJ1R2ZxTTFMb0hVaTZnZTVtZFFXN2VxVk9NbVR4VVh1TW1oUlNoMDNz?=
 =?utf-8?B?bnBzL1c1d1lyekhoRDJSZGFGelZJMFVBZFNKQmJIbXVyR0xUT3JMUlBIT0FV?=
 =?utf-8?B?RGpqc0c1RHYzTndGNG5aVFZxUFozcy96c1Uyc1NOUWdIZkh5Wkw2NUJPcVVn?=
 =?utf-8?B?c0ozTk1qR2N1NkdTcm0rNmR0L3ErazVEcEQyTmlqb3RlN1dkaFY1QWo0QXNy?=
 =?utf-8?B?NEc0aEhDRUVzVXBMaFU5djhHT3pkbnkxWk1adksyTk14YlJWQTNrWGpOUkJL?=
 =?utf-8?B?WE1OTTlXYnd6SStVZHF2RGQ0dGVEOSthWGxsUGxGMU1TeldDa2FXMkw1Rm8v?=
 =?utf-8?B?enp2czAzejZKMFY3c05VdW5YZ3NKSG1UMWpmM3R2NDVCVFloMGFyaFVmRHNY?=
 =?utf-8?Q?xJjuwxKD0KOhWBBeXtgR+yeVQvzhO4aSX+bdXBn?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Rmthc3FRdGNUTDBIblNLaTdDVWRsQVcxUW1MQnQyME16a01pK1RoaTVmUjJY?=
 =?utf-8?B?bS9GVUlIUGxISmw1S0M3NWFLcUloRVNVR3pTZ1pXTHQrdHJmd3ZhUVRDT1BG?=
 =?utf-8?B?UkNUaWtaVks5YkQxNjJzZHBSUklvZFhja3Nzam1Bak5HZTFZSWQxVnFjbmxi?=
 =?utf-8?B?YmFXYkJPbXVsajBRNXJEaThoa09FMnh6a0tIYjFKaU1zdCtrNGZQOTR2MUF2?=
 =?utf-8?B?bVcxZnExNkVKMFNQT3UxVnNaK1RUSnpBYVM2ZTZZdmZzYkZCMUlZZGpFVFpL?=
 =?utf-8?B?bkNQSGdpVnMyMnRYS09zamZ6ckZzUTMyMWMzYUJvSnZMNURCKzhWR2VBTHJS?=
 =?utf-8?B?bUVxME1kNXEvNUdGdFpIRm1Wb0s4NUZkaSs5SDFvUGozbmFZUVEwaVBYLzJC?=
 =?utf-8?B?THA2eXZlc2ovclh4MDhtdXhPZWR1NHVCb1JBOUQrZmFnTFd2b2lORWtXMkhy?=
 =?utf-8?B?TUdTczZhb3Q4eDUya0dPbXdjN1V3U2FCS0VFZHVsTnFibFJmaWd1am8yRkJh?=
 =?utf-8?B?TlFpUW9Ob3ZZYzZGb1k1Z2xaUnVmRVJXNFh4YTFTaXJ6TWF3N0s3NHIzejFu?=
 =?utf-8?B?TkNqR3NNaGpoTzhXYWFoRGd3Lzl5MDRwSytsMnNRVy94RENHUXlKZjMxNENM?=
 =?utf-8?B?ajZ4L0J4ZUsyN0EwUk52QTdjbDlGdmZKN3M3cmpzeCtIZ3BxSFd4dDhza3U5?=
 =?utf-8?B?MlhFZ2JJcHJsN2tveEw5Vmk4QTlPUHkwNjh6ZjBJc0F1aDFRN0VMQzZUSmVJ?=
 =?utf-8?B?cVBWQ0JQY3dLQUc0Qy9pVnF5NW11VUdBdUd2aGJ5K01EMzU2Wlgwc1gxbkNp?=
 =?utf-8?B?b3VVdEowOEpDdVdhRDBtSnFiR1h2MWpEYU1Wb0FaYnpsRFVHSTBIWGo1ZVRN?=
 =?utf-8?B?WVZJSUh2R3JWUTdvU2tqdEZ3Q3dlS0pBUHNSQmZ3dHdpdmFIVjhkK3lRMVdG?=
 =?utf-8?B?NU82OG92YjY2OWdlZERkSVBENEszK0dpZGxjdTVHaHNNRFlzNDZ2Snhidzhz?=
 =?utf-8?B?dEtSRmw1dmRYZ28rRlNBdS92dmNvQ0wxaERYMGNNL2xna21EcDMzOTJlZmtm?=
 =?utf-8?B?d2swbWpycFRiRWNGUWFyb0pkdnA0bTcvR0xvbVkvdnJPYWowZjlXdWxkOExu?=
 =?utf-8?B?UVB3VjlnOThSenovR0N3NWhrNkoxUDdiVGpBektXQzNIMExKVGtaMzBtMmps?=
 =?utf-8?B?bm9CTE1FanppV2lZNEREL2JuYjNWOFJjVDN6K01jQklDb3ZWb2drQXF2WDlz?=
 =?utf-8?B?MWVYU1NrYzgrRk1NZTQydDdUay82U294WDNMOE8zWExZYU80VDdXa24wc2o3?=
 =?utf-8?B?cG13aGg1dnRPdWJ3MWZoU2I4elBQKzBsbm5sbG11NzhxZTM3WnE2S295azdw?=
 =?utf-8?B?dXcvZGgwNEJsdHArOHlDY243bEZ5aDNOQm4yYkQzbmRDN1I4U3FGaGVEYkRS?=
 =?utf-8?B?WnkrM0VaemJoNjNUYm5wcnJrcGFuZ0R1SHA5aVloelkydXB6SFdzdytCNVgz?=
 =?utf-8?B?VlMvNHdsL3k2cnA5cHNZdXhPTy95N0RvVDF6dk1QSjMvNEpWMFFXSUc2QXkx?=
 =?utf-8?B?aVgwS25BMnZvQ3pHSEVUZk9UUzlUMlNiZ21YMzk4Zi9oYkJyOGQzL0ZJWEdh?=
 =?utf-8?B?c3ZTa1Z3bnVraVByOEVjd1k2OUJPZjVLZ0tuZmF1ZXUwUXV1ekVjL0JBdEZH?=
 =?utf-8?B?TjE5Qmx5dncyUnJ0TDhzK3RyZHd5QUhxZjZaVUNqNmZvS2x5Yi9ibHV0dEZ0?=
 =?utf-8?B?YmlwRURhbHRQR2RJQlRHN05XbGRlTXVNZUo3cnVPekpFWDQzMFEybEEySHI2?=
 =?utf-8?B?WDdPSWY0d09iVjRGOERWWVJFOFhicUxZUmxBUm1YSmpTcUdUaWRVMTFTTGNj?=
 =?utf-8?B?Qzl0ZXVvSTUvUGNiSVBYZUEyRVBHbDVjdVNrZzZsMFZtZElIMWJpMndIVS81?=
 =?utf-8?B?RnpLQVkzRnU2NHZVS1gvcVpVQ095bjRlQnU0WEhPeWszSkhGN2lDZFdnVmM2?=
 =?utf-8?B?ZlB3NXBSMkhQd1I5eUxVSGtNck1GSGFFOFV6c25ha0E4VTlIVkt3OHVOekQ4?=
 =?utf-8?B?YXdjQXlNT2hTVmg1bHNTeWFFL3B6aHk4dzltazczczF0TnV1NnhCa0xFUERp?=
 =?utf-8?Q?zStOf5FItvD/BLFJGf55DLWwm?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2b16a0f6-d8fc-4439-52a8-08dd026a1074
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 16:01:12.5288
 (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: emi4/dNOxtfGyTVMDu0K5bdGDDja4ItRSMDm/dQyttyP95+k+SqeWMcMiJ7WDN2SAWCuuBbm8iMuOKajVn32aA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8119


On 11/11/2024 13:45, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 11/11/2024 13:24, Ayan Kumar Halder wrote:
>> On 11/11/2024 11:12, Julien Grall wrote:
>>> Hi,
>> Hi Julien,
>>>
>>> On 08/11/2024 19:59, Ayan Kumar Halder wrote:
>>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>>
>>>> In Xen, SMMU subsystem is supported for MMU system only. The reason 
>>>> being SMMU
>>>> driver uses the same page tables as MMU.
>>>> Thus, we make it dependent on CONFIG_MMU.
>>>>
>>>> Signed-off-by: Penny Zheng <Penny.Zheng@arm.com>
>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>>> ---
>>>> Â  xen/arch/arm/KconfigÂ Â Â Â Â Â Â Â Â Â Â  | 2 +-
>>>> Â  xen/drivers/passthrough/Kconfig | 3 ++-
>>>> Â  2 files changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>>> index 15b2e4a227..3699e148e9 100644
>>>> --- a/xen/arch/arm/Kconfig
>>>> +++ b/xen/arch/arm/Kconfig
>>>> @@ -16,7 +16,7 @@ config ARM
>>>> Â Â Â Â Â  select HAS_DEVICE_TREE
>>>> Â Â Â Â Â  select HAS_PASSTHROUGH
>>>> Â Â Â Â Â  select HAS_UBSAN
>>>> -Â Â Â  select IOMMU_FORCE_PT_SHARE
>>>> +Â Â Â  select IOMMU_FORCE_PT_SHARE if MMU
>>>
>>> Realistically, everything under drivers/passthrough is MMU specific. 
>>> So does it actually make any sense to select HAS_PASSTHROUGH right now?
>>
>> Actually we are able to assign devices to different DomUs (eg UART1 
>> to domU1) as long as the device isn't behind an IOMMU. So in our 
>> case, the passthrough device tree has this node
>>
>> Â Â Â Â Â Â Â Â  uart@9c0b0000 {
>> Â Â Â Â Â Â Â Â Â Â Â Â  compatible = "arm,pl011\0arm,primecell";
>> Â Â Â Â Â Â Â Â Â Â Â Â  reg = <0x00 0x9c0b0000 0x00 0x10000>;
>> Â Â Â Â Â Â Â Â Â Â Â Â  interrupt-parent = <0x01>;
>> Â Â Â Â Â Â Â Â Â Â Â Â  interrupts = <0x00 0x07 0x04>;
>> Â Â Â Â Â Â Â Â Â Â Â Â  clock-names = "uartclk\0apb_pclk";
>> Â Â Â Â Â Â Â Â Â Â Â Â  clocks = <0x06 0x07>;
>> Â Â Â Â Â Â Â Â Â Â Â Â  xen,path = "/uart@9c0b0000";
>> Â Â Â Â Â Â Â Â Â Â Â Â  xen,reg = <0x00 0x9c0b0000 0x00 0x10000 0x00 0x9c0b0000>;
>> Â Â Â Â Â Â Â Â Â Â Â Â  xen,force-assign-without-iommu;
>
> So how devices will be protected on an MPU systems?
>
> >Â  Â Â Â Â Â Â Â  };> So, should we still disable HAS_PASSTHROUGH for MPU ?
>
> While it may work, a lot of code in drivers/passthrough is IOMMU 
> specific (see all the function named iommu_*). So I find really odd 
> that you disable IOMMU_FORCE_PT_SHARE but all the rest is still 
> present...
>
> I think we need some consistency. If you are planning to do device 
> passthrough without any protection, then I don't think you need any 
> code within drivers/passthrough/ (at least for platform devices).
>
> Overall, for this patch, I think it would be better to simply select 
> HAS_PASSTHROUGH when MMU is enabled. We can revisit device passthrough 
> once we have the patches on the ML.
Yes, this makes sense. I will wait for Luca to confirm as well.
>
> BTW, I think it should be move under the Kconfig MMU rather than using 
> "if MMU".

Yes. So for now this should be sufficient.

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..adebf8d5ca 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -14,9 +14,7 @@ config ARM
 Â Â Â Â Â Â Â  select FUNCTION_ALIGNMENT_4B
 Â Â Â Â Â Â Â  select HAS_ALTERNATIVE if HAS_VMAP
 Â Â Â Â Â Â Â  select HAS_DEVICE_TREE
-Â Â Â Â Â Â  select HAS_PASSTHROUGH
 Â Â Â Â Â Â Â  select HAS_UBSAN
-Â Â Â Â Â Â  select IOMMU_FORCE_PT_SHARE

 Â config ARCH_DEFCONFIG
 Â Â Â Â Â Â Â  string
@@ -78,6 +76,8 @@ config MMU
 Â Â Â Â Â Â Â  bool "MMU"
 Â Â Â Â Â Â Â  select HAS_PMAP
 Â Â Â Â Â Â Â  select HAS_VMAP
+Â Â Â Â Â Â  select HAS_PASSTHROUGH
+Â Â Â Â Â Â  select IOMMU_FORCE_PT_SHARE
 Â Â Â Â Â Â Â  help
 Â Â Â Â Â Â Â Â Â  Select it if you plan to run Xen on A-profile Armv7+

- Ayan


>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 16:34:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 16:34:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834016.1249370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAXMv-00010u-L5; Mon, 11 Nov 2024 16:34:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834016.1249370; Mon, 11 Nov 2024 16: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 1tAXMv-00010n-H4; Mon, 11 Nov 2024 16:34:25 +0000
Received: by outflank-mailman (input) for mailman id 834016;
 Mon, 11 Nov 2024 16: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=kNBq=SG=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tAXMt-00010h-Ha
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 16:34:23 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2613::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8d769f4-a04a-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 17:34:13 +0100 (CET)
Received: from AS9PR05CA0359.eurprd05.prod.outlook.com (2603:10a6:20b:490::20)
 by VI1PR08MB5535.eurprd08.prod.outlook.com (2603:10a6:803:13e::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 16:34:10 +0000
Received: from AMS1EPF00000040.eurprd04.prod.outlook.com
 (2603:10a6:20b:490:cafe::24) by AS9PR05CA0359.outlook.office365.com
 (2603:10a6:20b:490::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Mon, 11 Nov 2024 16:34:09 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS1EPF00000040.mail.protection.outlook.com (10.167.16.37) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Mon, 11 Nov 2024 16:34:08 +0000
Received: ("Tessian outbound 313a6fceb026:v490");
 Mon, 11 Nov 2024 16:34:08 +0000
Received: from Lb513c8eafc49.3
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 D65FF743-718E-4716-977D-4DA915DE71F6.1; 
 Mon, 11 Nov 2024 16:33:56 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lb513c8eafc49.3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 11 Nov 2024 16:33:56 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by AS8PR08MB10100.eurprd08.prod.outlook.com (2603:10a6:20b:63e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 16:33:50 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%4]) with mapi id 15.20.8137.027; Mon, 11 Nov 2024
 16:33: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: c8d769f4-a04a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjJmIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM4ZDc2OWY0LWEwNGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzQyODUzLjQ1NzE1OSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=iuOUrPJ2Yjs0Hc29eWdn0bK17t639kkvUOlodX0hO7RKvQpr/6Q8FAu+K/z0V+2d1vPfbAVQvjDQ3Gp/g6+GUcdSmUUOyeYPAS2mrc5Ngf0cjF1oo4coZ1+epzA0t+u/VNNXaj9Uv9XXSlyNhfTxH054qwMISeVWq6S/nt3fXpX5ZKHwvC6G+wDpo3ONEmPhlVQZTZu4E6hffK4boY3PbdVBSexc03OMtQV/9ZN0mg7xYA/2QDfJil2oecgSpFazbxo1pRr3PMy2UqHcnv7DBBnNzfLcsqn4A8nQU8aiJbAK11+ntRd+dbCu4fBpzey6XumZd+49DucZIuUfDPExdg==
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=I06zpplD+QkIuycA5LXZ1gNN6tZ7rIvGTvzyF+xJq0U=;
 b=u7GEiU4qwfsVZu0cazFEA2kP/1cneWJ71+j8L+T3Xi0O2ulWq5pJvzMqhhcwM/3qf06Wlx3zijT/VzIr7JWEjGIjuLRd8YPT5PSd0WYXs5EPNb8wyA+vwrNbs/ky7pQcSkIWFx0jMxpJyVkaq6SwwyFi4LC/xJEwVxr/Ov61BSSx5aGEocBAMd6bHKFn7YD/frDWGiqTANtXN13Z4xl+usqo1w9w25oXxAHN20YLhIC2UkaNbFBLHbveDrAxPC/ondgzfBT+SdahjEl9LWOEOs3tLt1UHjh13+GkJ56RxMxZoYIrhGXulwzps+IB1xEtOf9oUIWCmNQXA5vHyjTQvg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=I06zpplD+QkIuycA5LXZ1gNN6tZ7rIvGTvzyF+xJq0U=;
 b=XvJ7+4UbYH4q+KSRLLow3gZwCvoN4LYXP780t3+POGVhwhMmBVzwDm6I3AkN30gcIpbIYug+bW+bN0ocounmNsf/FU60Igluz5yuYykS97WIghwg71drie/2UXm1dJomqc78s0c3H8ena+P8cbvrvwk5yBdq17lzZI80YoSUo/4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 121fd2f81aa449cb
X-TessianGatewayMetadata: Ty+R8AO79xEl/tmnvZivLGj862XvL6XcMfbYx+Hmgld7br2LX7AKmryMIZx3ozuXMsenyob5d/6SvD3/hf82pcd+1E5lbxu6rQW5pYfMDpXHLFckat+Y0WG6g+McVnE6pi+ccGywj31HH1cJNiWh0yysYDOMhmLYTEKyv7rlB2Q=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B1xjHnEedT6HlxwDZM+e+WjundhHt87b7TE2RlnFWRfmuqsfTE+d6X14Qq6VSFC6VwyU84tabZask7LmxeCWmchHx1Cj8mwJxWlBtnMvnhN9+xHKQ3sNoP8m88sg9gJ23GYXfVFF1pzvLnzNmAsIH2gl4MgXANwije6KrQUWCqRoj16N9/i94U+ent1MpnteCcA+03pIO+P+LfLc+8ohknepC4Kchw570itnPjT93H2EPJe9G0488TDhC2Ksx8mEl/YOYMxDVKZws3Krl6kH8KtrJ/KL66Gc+b+K953NJ/MBhKLErDZ8fCDbH0oJQn5zB9D9ZOteuk5iERK+VUpsJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I06zpplD+QkIuycA5LXZ1gNN6tZ7rIvGTvzyF+xJq0U=;
 b=pcN5rx1RK5P1K9+Be5mBkx4xFLOWx+f3ABJWfDq/mMZTM3iTefnXwqz1B+Ch1X9F7WCU7gd8Jyc4hcBSOsoMDlyTzNn1RghR52t4xSG7Ff9epxBgTmKUyANfjDbU6lOIhGMKe4nuJrMIEI/EeMJXunrAQCA0pdrXhI9129B7DC6tm9blajkjUtIxLAaZgi85VZLuUqBMYbJe5bZurhmYfIUGHVmwBG9PAw5SSx5m7pI8pPnVmMEXn//SPUi0dd+3CU+Mma2af4t/A1wD2vkh7Dq03owu00AJsLumHImTLoskb8B1lqaZxzF6EQ5djQOV3e1VMriurCpfttWJgTQilQ==
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=I06zpplD+QkIuycA5LXZ1gNN6tZ7rIvGTvzyF+xJq0U=;
 b=XvJ7+4UbYH4q+KSRLLow3gZwCvoN4LYXP780t3+POGVhwhMmBVzwDm6I3AkN30gcIpbIYug+bW+bN0ocounmNsf/FU60Igluz5yuYykS97WIghwg71drie/2UXm1dJomqc78s0c3H8ena+P8cbvrvwk5yBdq17lzZI80YoSUo/4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@amd.com>
CC: Julien Grall <julien@xen.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Penny Zheng <Penny.Zheng@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Rahul Singh
	<Rahul.Singh@arm.com>
Subject: Re: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Thread-Topic: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Thread-Index: AQHbMhnBgSbSnEnP3kCeg3Nc76pTWrKx8P2AgAAk5QCAAAXeAIAAJc0AgAAJLIA=
Date: Mon, 11 Nov 2024 16:33:50 +0000
Message-ID: <9D3DF4D9-F88E-4419-A048-3B3EC534033B@arm.com>
References: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
 <80ac1e78-5259-43d2-8b18-d5bd3abdca1b@xen.org>
 <2ca98e9c-1a4b-43a2-b707-097dc5093e39@amd.com>
 <6dc2ebd8-d206-479b-ac3a-83ed59c7109f@xen.org>
 <86862f6e-caf3-4a5a-a650-b9bac74b83d3@amd.com>
In-Reply-To: <86862f6e-caf3-4a5a-a650-b9bac74b83d3@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|AS8PR08MB10100:EE_|AMS1EPF00000040:EE_|VI1PR08MB5535:EE_
X-MS-Office365-Filtering-Correlation-Id: 860177a2-2935-493b-3636-08dd026eaa58
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Tll6VWRKQ28xcjBZSHI4aVpiV09jTEgzNGxrK2wxQXpMcXF3cVh3WDZubzhD?=
 =?utf-8?B?bTdiSWJvb1ZzS3B2c1J3R3VpQWlnR256WFpjNjBudDFHSVU4K2swbk0yUzRC?=
 =?utf-8?B?WVQ5TEhPTExodWJBKzQrY2lLV09wdWhjNS9VR3R5MlRydzZxNWphZ1ZmMld0?=
 =?utf-8?B?cTFRTVZoQ0xIdEFTRmZ0NGVyYkhsNlkwaTIxRVZuaW9KazY5blhYYW1PQlZj?=
 =?utf-8?B?U2ZCTkZvVU5xM0dYeFFHSTVvTkFpb0ZtMDZ0VFFPanRSUm9oSm05N1FwMTQ2?=
 =?utf-8?B?aXlJN2pReDZ3dGtXSFowM0pJNGJ5LzQ2QkpOSUJSUUpMTCtqUXRyRWFObnE0?=
 =?utf-8?B?eWNPd3hkdE5kb3gvZnNxaVpKMUFMeW1TZ1ZZZVpRbjRQWlJ5STRjaVNhMHYw?=
 =?utf-8?B?T3JkZkVReko4WTdwekQ3bVBXMW5sQ3d2YmphajlDQ2tCd0JwWmJNNUdROVFJ?=
 =?utf-8?B?QVJLaVVURnVwUHVLTGdIMW5vaHlUd252Vjg3K2NVL0JudWd2OURMK3Z0RTdZ?=
 =?utf-8?B?SDBFUzR4dENkb3RZaEQ2Q0FvWkdmTUlPdXhqU3BHM21qN3Y1U05sSW0veU1w?=
 =?utf-8?B?S3A5OU4yUGx3MUticmlGaWp5UU9wSXhzdldqN0p2eUNOc2t3bHJLSGg3c09p?=
 =?utf-8?B?eXN0am1sU2JqR3VLTXpRbDl6NmNPcjRRb3VWdkp0ZVV4TDBYSXREb21UZUpa?=
 =?utf-8?B?anE4dzM1TFFCSUtFbkpESGdBR3cvSDNXYXh1SlVNdkVjdHhhdGdiNXpNZFFy?=
 =?utf-8?B?NWIxaHZMRTh1NGdQdWZaTThWTHlvdHN0aWJ5cXlqalBacUwxWU1jdlFmcGlU?=
 =?utf-8?B?Nk4vYlplYzdKc2luSWNHa1pVK2VJbURlSXRZUlE0MXB6TlpzTU9GczltN1E3?=
 =?utf-8?B?Y3k1bkVpQVlLTlg3YVQ4OWl4dlI3OGtScDBQQ2NlQkdkenFiSCtNU0J5Tzg2?=
 =?utf-8?B?MkpwdS95QlBrK1RpdnNvZ053aElIV3RIM0h0Y29FUEYwQ1VrbGZjM1FSZUlx?=
 =?utf-8?B?V1JKTVgwNjFzZnFhc0t2Y1lrZHZEL1AvaE16NW9NU2ZXd0VmTFJ5V3ZEaUh2?=
 =?utf-8?B?VjJPOFlpQzZ3RWZvb2FNQ1Nic05DdGlJMEd0dFA0YmxlNFE0WkovSFFNUEVa?=
 =?utf-8?B?d1hHbldiVlI3cUt2UFA2NFFrSHhuMUo0SkdoSEpYc0Q2YVV6cHVPSUxFc21u?=
 =?utf-8?B?L1REZkRzNHRsQkI0RkpSU2FNN1N3d3EvQVNHZUFNL0d0cDhBakliUWFja3VC?=
 =?utf-8?B?VkxmUmFPeWpKNjNTNTFDTWVoMlpHQU9yNU5xYXNqRUJxOFhlYzZaY2hFaFhk?=
 =?utf-8?B?cFlIQkthTUt4akdwZTVyN2NpVk1yZTkyN3BNWFN5WjdlMjAvSEMyZHZOZ3c0?=
 =?utf-8?B?OGhwTkQrUGFFVlkrMi93eTAxeFdXWEhRV3hBZ0R5OUtlcXc3bWNHOEhFWk5Z?=
 =?utf-8?B?d3VPYWtES1ErMG13bGlVaHNhVnlhVFYxTzBCK2M3UWtoZHZrQTR1SUtzdlk5?=
 =?utf-8?B?ZW9sMG9DMmZZaTRhRnlyb01GODllRDF0ZWJSU0F2dEp0U2x2UTNQN0VhNjFY?=
 =?utf-8?B?ZndUZ3F2NG5oVXRxcm9CaU96NlY3ZlJpOGhJWGtybTNEWW1lbWFWOTJFZS9q?=
 =?utf-8?B?eFQ0Um1xWGhEMjlsUFFldlVUOUphOUF1QUtXc3BwTks3SXhDek5DYVlIZ0R4?=
 =?utf-8?B?Vk9HcVp2bFJnc1ByN0NzNDdzTEJma00rTElrRVh4ekcvNjlSU1EwU08wdjFy?=
 =?utf-8?B?UEpvQ0p5dlVFOCtMY2U1SFFXa2tnMUxYUWwzSFFpMUFleHZrMkswQng0SnRm?=
 =?utf-8?Q?flVlRwoP+zzIyk1E1G72vEp0x03xIG7oJB1cY=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <1F6EF9FAB144044387BFFFBB75533B5E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB10100
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000040.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	36621653-6c72-4b52-fe28-08dd026e9f6b
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|1800799024|14060799003|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?L1VqKzNtbVpSV1hiMzhOdG1uZGxHeHVudTJvNGxJSVlVcEhRS0dPQVVXSjcy?=
 =?utf-8?B?MEhldkNsYlhPN2U0TnFNdjVDeXBKT2VtQTNkTklTUXFtVXJjc0NCM1I0ejJF?=
 =?utf-8?B?Rk9tZjdSR2gzcE5GMGJzWjBIZ3lBa2JERjZMcXFNNkV4SDVVS2JCMkxWYmFL?=
 =?utf-8?B?NjY0NkFHL3JiY1NxdENjZlluaDdNZTVXZ0oxVDZKdndoUzI2SE9WRXdnOEpa?=
 =?utf-8?B?eWdxUGdWWW5DQlM1NHZkODM2MkJ5OWwzQmtTb0xuRjVHU1ZCNXpCdlV3YTlW?=
 =?utf-8?B?ZzliazZYYVplSy9NWWQrSEg1Q0hjWVY2WmI0NW9ZcmMzMmg3MURZV1o1TC9T?=
 =?utf-8?B?Syt0UnBnQlBwNU42NWZFWmQ3V3VrMFROZlgvenl2TXhyRE41Y0lOdkhQb0Ey?=
 =?utf-8?B?ZGdOK2I1RXBYb05NaXZURnc0b2RhRnY2VVVCeGdiVXBiMVdCdmRLOXVwSStW?=
 =?utf-8?B?ekxPTTRZMnBMZ0JtenRycFVWeW5xU0xyT0hIUjNmZGlsYWNrSjQzMFVTakp0?=
 =?utf-8?B?Q2xPam16d2FlUmN0RE1JUGkvSzNrTnJrQi9NdXp4aWdvcEVnR3FkM0ppRE9T?=
 =?utf-8?B?QjN5S0ZQOTl0SmZHVERLUnl2N2ZtdWNCWks4MkYxZG9DOE5uRWhTck9ZWG9G?=
 =?utf-8?B?REIzM3dSKy9YR1BCS0o0anVuR0RYMHFxSnRCTXM5Q2xIY1BVUzV1Zk1uN0lM?=
 =?utf-8?B?SVNnWllZdmprNWNrcnA4bGNKVkd1ZWhWZkpQbDl5SEx5SnhtSG50K0QyZnVT?=
 =?utf-8?B?NDBKLzE3Rlp5T3pRRnhBdm9ESFRhWXhta01OYUJBSmV0WDhCc3YvblFBWVhu?=
 =?utf-8?B?TzQ4U0dqNU16WkdPUXBRZWphQVppSmQ0eHlxRlF1NmxXQTQwN09HOEdoOWFY?=
 =?utf-8?B?N3VieERYcGwwRWpGVVBQVzhCVWJJRVFGa3lEdkFzcWFsRVJZaWg1eUpkZ2s4?=
 =?utf-8?B?SjVXcVZKSkk2bU0rMVZpWGhQQVFZOE9oNm94NEQrV1dJU00zOGJ4dllXbXVq?=
 =?utf-8?B?dGRDRjkvRDd5UENOSnR0Zklua0JvYU1JR2hqUE9Hc1ZLSG1aMHF6YVdZZkl1?=
 =?utf-8?B?Q0YxS3VFTUJZeVdOVHQ0RE1lMTAwbUc5U0dOYURzRTZQVXp0SUpvY0RUVGFN?=
 =?utf-8?B?VDk3Unh6dXlXUmt3UXh2VmlCU0RGRzd2dFd1SEpCOWZ2TW96N09BUEFhMW0v?=
 =?utf-8?B?cCtRendXM3RQUzFuVjBXQk9IZkpVMDZiOHNWck9Mb0pjM28wOXFqMWtTckxl?=
 =?utf-8?B?cEZLdDZMZ0ZJZ21kU0JoUDFrUUNoRHVJRzFPL2toMzFlcVFyVGhiT0JHbVdV?=
 =?utf-8?B?WmpYRzRSWHE3SW9raWZpTTdpaE01NGtSUjF6UW1aQmg5YmxFTjRGS3hrcmJm?=
 =?utf-8?B?djB2dGU1RUJzZE83cWtUK3dQNjN1RjFkSzAyUWxzUW5iYXBTVjdnbFpZTlNm?=
 =?utf-8?B?K2dFaVFRREtINDZqdzh3TURSMk8zK0hTaUxGTjhKL0xpQjNGUGJSUCtNV24x?=
 =?utf-8?B?ZSs1QlMyS0x6czZGYjE4WWtjeGxzeDZDOTROMXBkaFlTR0NvVlVEYkhPeFcz?=
 =?utf-8?B?cHgycDI5Y1ZwOGFCcjlwYmRnbHNMWi8xL3ZGRnU5S3hra0JsbENqNWZCVjBI?=
 =?utf-8?B?R2U5UHlvTkszRDVnendaU2xad2FVamxHc0tuZUtaMG8rUjFPS3E4bGFVOGRL?=
 =?utf-8?B?TnRkRlRCY3ZUUUxjTDYwSWVrV3lPMU8rcDlEaGJLTDR4WGhaQU5UUVUyZnJ3?=
 =?utf-8?B?bHFFQlZPL3dweXc1WU5kWHJjTWMrY2l4K01xTlUyT1AvZjMxTkFPaXZEMHZ1?=
 =?utf-8?B?ZVB6QVpPOTZyeGgvT3Fhem5HM29qWXk1S1FxdlBGV1VIdkEyV0toSHVoRkgr?=
 =?utf-8?B?emQ3WmhMSjZISEFXZDNYTWtKbDVDaW15R1Q3L242dnM5WHc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230040)(35042699022)(1800799024)(14060799003)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 16:34:08.3419
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 860177a2-2935-493b-3636-08dd026eaa58
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000040.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5535

SGkgQXlhbiwNCg0KDQo+IE9uIDExIE5vdiAyMDI0LCBhdCAxNjowMCwgQXlhbiBLdW1hciBIYWxk
ZXIgPGF5YW5rdW1hQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IE9uIDExLzExLzIwMjQgMTM6
NDUsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+IEhpIEF5YW4sDQo+IEhpIEp1bGllbiwNCj4+IA0K
Pj4gT24gMTEvMTEvMjAyNCAxMzoyNCwgQXlhbiBLdW1hciBIYWxkZXIgd3JvdGU6DQo+Pj4gT24g
MTEvMTEvMjAyNCAxMToxMiwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+PiBIaSwNCj4+PiBIaSBK
dWxpZW4sDQo+Pj4+IA0KPj4+PiBPbiAwOC8xMS8yMDI0IDE5OjU5LCBBeWFuIEt1bWFyIEhhbGRl
ciB3cm90ZToNCj4+Pj4+IEZyb206IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVuZ0Bhcm0uY29tPg0K
Pj4+Pj4gDQo+Pj4+PiBJbiBYZW4sIFNNTVUgc3Vic3lzdGVtIGlzIHN1cHBvcnRlZCBmb3IgTU1V
IHN5c3RlbSBvbmx5LiBUaGUgcmVhc29uIGJlaW5nIFNNTVUNCj4+Pj4+IGRyaXZlciB1c2VzIHRo
ZSBzYW1lIHBhZ2UgdGFibGVzIGFzIE1NVS4NCj4+Pj4+IFRodXMsIHdlIG1ha2UgaXQgZGVwZW5k
ZW50IG9uIENPTkZJR19NTVUuDQo+Pj4+PiANCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFBlbm55IFpo
ZW5nIDxQZW5ueS5aaGVuZ0Bhcm0uY29tPg0KPj4+Pj4gU2lnbmVkLW9mZi1ieTogQXlhbiBLdW1h
ciBIYWxkZXIgPGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+DQo+Pj4+PiAtLS0NCj4+Pj4+ICAg
eGVuL2FyY2gvYXJtL0tjb25maWcgICAgICAgICAgICB8IDIgKy0NCj4+Pj4+ICAgeGVuL2RyaXZl
cnMvcGFzc3Rocm91Z2gvS2NvbmZpZyB8IDMgKystDQo+Pj4+PiAgIDIgZmlsZXMgY2hhbmdlZCwg
MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPj4+Pj4gDQo+Pj4+PiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL0tjb25maWcgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZw0KPj4+Pj4gaW5k
ZXggMTViMmU0YTIyNy4uMzY5OWUxNDhlOSAxMDA2NDQNCj4+Pj4+IC0tLSBhL3hlbi9hcmNoL2Fy
bS9LY29uZmlnDQo+Pj4+PiArKysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZw0KPj4+Pj4gQEAgLTE2
LDcgKzE2LDcgQEAgY29uZmlnIEFSTQ0KPj4+Pj4gICAgICAgc2VsZWN0IEhBU19ERVZJQ0VfVFJF
RQ0KPj4+Pj4gICAgICAgc2VsZWN0IEhBU19QQVNTVEhST1VHSA0KPj4+Pj4gICAgICAgc2VsZWN0
IEhBU19VQlNBTg0KPj4+Pj4gLSAgICBzZWxlY3QgSU9NTVVfRk9SQ0VfUFRfU0hBUkUNCj4+Pj4+
ICsgICAgc2VsZWN0IElPTU1VX0ZPUkNFX1BUX1NIQVJFIGlmIE1NVQ0KPj4+PiANCj4+Pj4gUmVh
bGlzdGljYWxseSwgZXZlcnl0aGluZyB1bmRlciBkcml2ZXJzL3Bhc3N0aHJvdWdoIGlzIE1NVSBz
cGVjaWZpYy4gU28gZG9lcyBpdCBhY3R1YWxseSBtYWtlIGFueSBzZW5zZSB0byBzZWxlY3QgSEFT
X1BBU1NUSFJPVUdIIHJpZ2h0IG5vdz8NCj4+PiANCj4+PiBBY3R1YWxseSB3ZSBhcmUgYWJsZSB0
byBhc3NpZ24gZGV2aWNlcyB0byBkaWZmZXJlbnQgRG9tVXMgKGVnIFVBUlQxIHRvIGRvbVUxKSBh
cyBsb25nIGFzIHRoZSBkZXZpY2UgaXNuJ3QgYmVoaW5kIGFuIElPTU1VLiBTbyBpbiBvdXIgY2Fz
ZSwgdGhlIHBhc3N0aHJvdWdoIGRldmljZSB0cmVlIGhhcyB0aGlzIG5vZGUNCj4+PiANCj4+PiAg
ICAgICAgICB1YXJ0QDljMGIwMDAwIHsNCj4+PiAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJh
cm0scGwwMTFcMGFybSxwcmltZWNlbGwiOw0KPj4+ICAgICAgICAgICAgICByZWcgPSA8MHgwMCAw
eDljMGIwMDAwIDB4MDAgMHgxMDAwMD47DQo+Pj4gICAgICAgICAgICAgIGludGVycnVwdC1wYXJl
bnQgPSA8MHgwMT47DQo+Pj4gICAgICAgICAgICAgIGludGVycnVwdHMgPSA8MHgwMCAweDA3IDB4
MDQ+Ow0KPj4+ICAgICAgICAgICAgICBjbG9jay1uYW1lcyA9ICJ1YXJ0Y2xrXDBhcGJfcGNsayI7
DQo+Pj4gICAgICAgICAgICAgIGNsb2NrcyA9IDwweDA2IDB4MDc+Ow0KPj4+ICAgICAgICAgICAg
ICB4ZW4scGF0aCA9ICIvdWFydEA5YzBiMDAwMCI7DQo+Pj4gICAgICAgICAgICAgIHhlbixyZWcg
PSA8MHgwMCAweDljMGIwMDAwIDB4MDAgMHgxMDAwMCAweDAwIDB4OWMwYjAwMDA+Ow0KPj4+ICAg
ICAgICAgICAgICB4ZW4sZm9yY2UtYXNzaWduLXdpdGhvdXQtaW9tbXU7DQo+PiANCj4+IFNvIGhv
dyBkZXZpY2VzIHdpbGwgYmUgcHJvdGVjdGVkIG9uIGFuIE1QVSBzeXN0ZW1zPw0KPj4gDQo+PiA+
ICAgICAgICAgIH07PiBTbywgc2hvdWxkIHdlIHN0aWxsIGRpc2FibGUgSEFTX1BBU1NUSFJPVUdI
IGZvciBNUFUgPw0KPj4gDQo+PiBXaGlsZSBpdCBtYXkgd29yaywgYSBsb3Qgb2YgY29kZSBpbiBk
cml2ZXJzL3Bhc3N0aHJvdWdoIGlzIElPTU1VIHNwZWNpZmljIChzZWUgYWxsIHRoZSBmdW5jdGlv
biBuYW1lZCBpb21tdV8qKS4gU28gSSBmaW5kIHJlYWxseSBvZGQgdGhhdCB5b3UgZGlzYWJsZSBJ
T01NVV9GT1JDRV9QVF9TSEFSRSBidXQgYWxsIHRoZSByZXN0IGlzIHN0aWxsIHByZXNlbnQuLi4N
Cj4+IA0KPj4gSSB0aGluayB3ZSBuZWVkIHNvbWUgY29uc2lzdGVuY3kuIElmIHlvdSBhcmUgcGxh
bm5pbmcgdG8gZG8gZGV2aWNlIHBhc3N0aHJvdWdoIHdpdGhvdXQgYW55IHByb3RlY3Rpb24sIHRo
ZW4gSSBkb24ndCB0aGluayB5b3UgbmVlZCBhbnkgY29kZSB3aXRoaW4gZHJpdmVycy9wYXNzdGhy
b3VnaC8gKGF0IGxlYXN0IGZvciBwbGF0Zm9ybSBkZXZpY2VzKS4NCj4+IA0KPj4gT3ZlcmFsbCwg
Zm9yIHRoaXMgcGF0Y2gsIEkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIHNpbXBseSBzZWxl
Y3QgSEFTX1BBU1NUSFJPVUdIIHdoZW4gTU1VIGlzIGVuYWJsZWQuIFdlIGNhbiByZXZpc2l0IGRl
dmljZSBwYXNzdGhyb3VnaCBvbmNlIHdlIGhhdmUgdGhlIHBhdGNoZXMgb24gdGhlIE1MLg0KPiBZ
ZXMsIHRoaXMgbWFrZXMgc2Vuc2UuIEkgd2lsbCB3YWl0IGZvciBMdWNhIHRvIGNvbmZpcm0gYXMg
d2VsbC4NCg0KSXQgbWFrZXMgc2Vuc2UgdG8gZG9u4oCZdCBjb21waWxlIGFsbCB0aGF0IHN0dWZm
LCBhbnl3YXkgd2UgYXJlIHVzaW5nIHNvbWUgZnVuY3Rpb25zIGZyb20gZHJpdmVycy9wYXNzdGhy
b3VnaC9kZXZpY2VfdHJlZS5jIHRvIHBhc3MgdGhlIHBsMDExIHRvIHRoZSBndWVzdHMsIHdlIHdp
bGwgdHJ5IHRvIGhhbmRsZSB0aGVtIGxhdGVyIGluIHRoZSBzZXJpZXMgdGhlbi4NCg0KQ2hlZXJz
LA0KTHVjYQ0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:07:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834071.1249560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAYoR-0004kQ-Hm; Mon, 11 Nov 2024 18:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834071.1249560; Mon, 11 Nov 2024 18:06: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 1tAYoR-0004kJ-EM; Mon, 11 Nov 2024 18:06:55 +0000
Received: by outflank-mailman (input) for mailman id 834071;
 Mon, 11 Nov 2024 18: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=eHe6=SG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tAYoQ-0004kD-7I
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:06:54 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2417::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6e6d901-a057-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 19:06:46 +0100 (CET)
Received: from BN1PR14CA0022.namprd14.prod.outlook.com (2603:10b6:408:e3::27)
 by SJ0PR12MB5663.namprd12.prod.outlook.com (2603:10b6:a03:42a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 18:06:42 +0000
Received: from BN1PEPF00004685.namprd03.prod.outlook.com
 (2603:10b6:408:e3:cafe::9f) by BN1PR14CA0022.outlook.office365.com
 (2603:10b6:408:e3::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Mon, 11 Nov 2024 18:06:42 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN1PEPF00004685.mail.protection.outlook.com (10.167.243.86) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 11 Nov 2024 18:06:41 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Mon, 11 Nov
 2024 12:06:41 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 11 Nov
 2024 12:06:41 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Mon, 11 Nov 2024 12: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: b6e6d901-a057-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjFmIiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImI2ZTZkOTAxLWEwNTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzQ4NDA2LjU2NTg0LCJzZW5kZXIiOiJheWFuLmt1bWFyLmhhbGRlckBhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jJZtfNNd1UdyKs1z9y8NawyD7rgVVnMK4vrS9HO24cJYsMKUr7B4aFkcugoWcXjVbk00ax9bBsPbfNwCDpwF9RTd4KWFxtuf6MWq7KnJ9U4XwOsr8wSE5vRWo7kFJIzHD08rfMCY/h/j2NdRmxgB47m1MVhm/ONLPt49jZCt350U30zdsORUH201GVD0UeOLhfsJdvXO3YBPNlqnaxduJyMdejwxivMnFXMQ+Dzunhqqv4NgoXlK1rHDDTozwHn4ekPgCnkxsgKoEpgf1K+UQk/xfea7ygMYkVnrTMAOfARcxKoj1mbiY0uXwao/A2qjS4P3DsTFnglUZTwXYjOYaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qw5Z636sXSB0JNWwb70Y7ZD3Tbbt5SfmO3r88nV8ySE=;
 b=fiNNSFruNIBVnAFwTTmTPoXHlqL0MqoJLFewsa66nKjNZiNWykPKHsPQutkxwoUGD3m3i68cMhp77wjmJ94j79sACWkXOkj9q0JSgpMZpO57DiMpnDYKU6W8xo0kp6ehhpoyDn+FijtgN/ZGYy9iDRq/k9tW4EQSZKWQTiFNPIjb6m7/36Ek4kNJcNSD+LQ8En8YjM4ihCytKpy6Y9QfljQZOHKgi1Vbl6poEJE+YErsc0FS/BP2djiZiPz4bliHZYexHi4hZU8AgHUIIgjiJDDsOBYTI1b5p7CznecMo5Yvb4LjbRmIEMi7jRtbub+/OAdjERdQOnbSp3nghCEc2Q==
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=Qw5Z636sXSB0JNWwb70Y7ZD3Tbbt5SfmO3r88nV8ySE=;
 b=rxhDh/sMb2zBk8v1o0VUG+39slznOF0ntTXNLM/sho2Bq7MeTIrlvdEqXlCO0t1d8F7CXL8234WAZ/eX5N0DDYgSrXWxvjyZYa9GjXGhBYXvuEpwA4hbF3y/V1YupvbcAwgie03RVmgnCB6jYRxk9rSczRe99H5JjFfsfQ30UGE=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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] xen/arm: Enclose all iommu related access within CONFIG_HAS_PASSTHROUGH
Date: Mon, 11 Nov 2024 18:06:35 +0000
Message-ID: <20241111180635.1198552-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004685:EE_|SJ0PR12MB5663:EE_
X-MS-Office365-Filtering-Correlation-Id: 3aa392ef-8467-43c6-25e3-08dd027b9889
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?2BDWjN9I7A/SldcriSSxtQfMaKglFL7RumHGM0XnyYqn9IGMvJG34JcZIP1V?=
 =?us-ascii?Q?11o/DehZwV/qy2LVj9Vj5Io8E+JkM9xN5gozM/XwYSb9ZHR5JPEuY/PQjG84?=
 =?us-ascii?Q?PlBlnuCbIPWlKXmvC6vH4MUt4mWEJa4wHaDJcNUanUTzTu+AuzIj5azBsWIs?=
 =?us-ascii?Q?ptGTg3SEKMVbnFtU0qZX78BHwnOtN6NPo3vkBIgmnI89XKQxHp0sK3DhM4w4?=
 =?us-ascii?Q?AoLIaonF2gNEpRMTfo96KafjK+H9HoW/p/Kgo9oXMicMdqoPrnwc90GgQb6w?=
 =?us-ascii?Q?wUL8eJuEPQAdY9kuVGVADE0EZrEHdN5QY8iT61iOl+GYLu+xGQn7R9dt8HsG?=
 =?us-ascii?Q?jpAXJAFD3NWkI0CJMiUtLzpRvuCC2It6UO3Bt0bz1vopnLmC/ymqK1lxkmNI?=
 =?us-ascii?Q?z346+Ph58B0HovcWvb1lvpW3zTDZn9wNN5IIyZXxIhe7IoqiXPki3buIWpiQ?=
 =?us-ascii?Q?/6C9EF6ry9rbQ1Qg/uuvn6WlP/rxRNnvlmf5EdE5RD1RdtO40y0EW+Fs1qV9?=
 =?us-ascii?Q?Q6o5ca2U1WD3D/Q9hveX8kwlxNAw44JJDXlhgn2Mh/KDa3iPcA9ZZLzMM2QZ?=
 =?us-ascii?Q?6lROim4GsmCe8LvtKw0fgq9JxnwB5HZTjTojB64LvnKXU7aRi+yzpRDu0j2+?=
 =?us-ascii?Q?gBANV9B2vZhzMAnl9JhfL+IoIsjKXP1wUcyp1noMR5CPpsT5GV4rrSbA56qd?=
 =?us-ascii?Q?zILhSgXSsvICZUzvBCDVGc1Y4pvColuyG0yf+Id1k1mbvoqF6ptENRrfsnN/?=
 =?us-ascii?Q?I4FKeg23q5ZxNdk9sPXfLIGrqrU3kZXGkAVShA3WDte0f8McV2HwFhLDrdZE?=
 =?us-ascii?Q?TPMnxVhypZXklhYK8Zbbrtd/942cH5+aV4eXNNEGs1rswAItgTYSTh7y2iw2?=
 =?us-ascii?Q?m+OUNcNIDg2hCyHmKeXxw4xXzjCQrmrVlmOLF5blEb9FVEWaK6HJlMNaT2bq?=
 =?us-ascii?Q?LNTz8bk+49q7LaULnrieksnbaCGzwUrPzX1jkGXCLhZuB3i3l/SqRrqI2/Dx?=
 =?us-ascii?Q?SP65TGnb5zAgqVSjpMEl+5NchlRp2CxMowpk7Fe2w03kWj1Hld9bQUhxpGwK?=
 =?us-ascii?Q?MJCZKJQiLUQU0/vjkQdygg+RdQLeHH48ZOPcQ1wOKutoLLlcGSMqCxMSKcQy?=
 =?us-ascii?Q?06bBvNIBk4eajDaY4s5eVYoAPrszasXdiaB7E7QdEuZ1DBzMOnMS2xcTUFS/?=
 =?us-ascii?Q?8DC5R3Dg9Q0/K+XvczJecmSr0UP8xt9mJEOiXCGBX16jCIpzJlvI7cL7die/?=
 =?us-ascii?Q?cZ6NpnVIixZBtiQNHtNvRmV4ybaXNP/4G9fXGojNy4xCy3fKxkktEPAnjPxL?=
 =?us-ascii?Q?1fKcRqeLUqZD3GbS2P2J5vpdFwqq6NRFaafL6TA0Kt/mEIsMBY4vmc0of76X?=
 =?us-ascii?Q?igU33qCz+HXWAk5c2zSvZTjJCqbz0ejUVEYCAPrsBzR4YpKSpw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 18:06:41.9055
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3aa392ef-8467-43c6-25e3-08dd027b9889
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004685.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5663

As CONFIG_HAS_PASSTHROUGH is enabled only for MMU, thus any common code
accessing iommu needs to be enclosed within CONFIG_HAS_PASSTHROUGH.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 xen/arch/arm/Kconfig          | 4 ++--
 xen/arch/arm/device.c         | 2 ++
 xen/arch/arm/dom0less-build.c | 6 ++++++
 xen/arch/arm/domain.c         | 6 ++++++
 xen/arch/arm/domain_build.c   | 2 ++
 xen/arch/arm/p2m.c            | 2 ++
 xen/arch/arm/setup.c          | 2 ++
 7 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 701b2aa76b..4833f12d2a 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -14,9 +14,7 @@ config ARM
 	select FUNCTION_ALIGNMENT_4B
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE
-	select HAS_PASSTHROUGH
 	select HAS_UBSAN
-	select IOMMU_FORCE_PT_SHARE if MMU
 
 config ARCH_DEFCONFIG
 	string
@@ -77,8 +75,10 @@ choice
 config MMU
 	bool "MMU"
 	select HAS_PAGING_MEMPOOL
+	select HAS_PASSTHROUGH
 	select HAS_PMAP
 	select HAS_VMAP
+	select IOMMU_FORCE_PT_SHARE
 	help
 	  Select it if you plan to run Xen on A-profile Armv7+
 
diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
index 5610cddcba..9805bc7742 100644
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -279,6 +279,7 @@ int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
     dt_dprintk("%s passthrough = %d naddr = %u\n",
                dt_node_full_name(dev), own_device, naddr);
 
+#ifdef CONFIG_HAS_PASSTHROUGH
     if ( own_device )
     {
         dt_dprintk("Check if %s is behind the IOMMU and add it\n",
@@ -304,6 +305,7 @@ int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
             }
         }
     }
+#endif
 
     res = map_device_irqs_to_domain(d, dev, own_device, irq_ranges);
     if ( res < 0 )
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 9575769b25..ecf81f5748 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -368,15 +368,21 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
     if ( res < 0 )
         return res;
 
+#ifdef CONFIG_HAS_PASSTHROUGH
     res = iommu_add_dt_device(node);
     if ( res < 0 )
         return res;
+#endif
 
     /* If xen_force, we allow assignment of devices without IOMMU protection. */
     if ( xen_force && !dt_device_is_protected(node) )
         return 0;
 
+#ifdef CONFIG_HAS_PASSTHROUGH
     return iommu_assign_dt_device(kinfo->d, node);
+#else
+    return res;
+#endif
 }
 
 static int __init handle_prop_pfdt(struct kernel_info *kinfo,
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 3ba959f866..2da8eaed01 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -710,9 +710,11 @@ int arch_domain_create(struct domain *d,
     ioreq_domain_init(d);
 #endif
 
+#ifdef CONFIG_HAS_PASSTHROUGH
     /* p2m_init relies on some value initialized by the IOMMU subsystem */
     if ( (rc = iommu_domain_init(d, config->iommu_opts)) != 0 )
         goto fail;
+#endif
 
     if ( (rc = p2m_init(d)) != 0 )
         goto fail;
@@ -841,7 +843,9 @@ void arch_domain_destroy(struct domain *d)
     /* IOMMU page table is shared with P2M, always call
      * iommu_domain_destroy() before p2m_final_teardown().
      */
+#ifdef CONFIG_HAS_PASSTHROUGH
     iommu_domain_destroy(d);
+#endif
     p2m_final_teardown(d);
     domain_vgic_free(d);
     domain_vuart_free(d);
@@ -1059,9 +1063,11 @@ int domain_relinquish_resources(struct domain *d)
     switch ( d->arch.rel_priv )
     {
     case 0:
+#ifdef CONFIG_HAS_PASSTHROUGH
         ret = iommu_release_dt_devices(d);
         if ( ret )
             return ret;
+#endif
 
         /*
          * Release the resources allocated for vpl011 which were
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2c30792de8..2b41a3c926 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2137,7 +2137,9 @@ static int __init construct_dom0(struct domain *d)
         dom0_mem = MB(512);
     }
 
+#ifdef CONFIG_HAS_PASSTHROUGH
     iommu_hwdom_init(d);
+#endif
 
     d->max_pages = dom0_mem >> PAGE_SHIFT;
 
diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index 65b70955e3..343d5b857c 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -434,6 +434,7 @@ void p2m_set_way_flush(struct vcpu *v, struct cpu_user_regs *regs,
     /* This function can only work with the current vCPU. */
     ASSERT(v == current);
 
+#ifdef CONFIG_HAS_PASSTHROUGH
     if ( iommu_use_hap_pt(current->domain) )
     {
         gprintk(XENLOG_ERR,
@@ -441,6 +442,7 @@ void p2m_set_way_flush(struct vcpu *v, struct cpu_user_regs *regs,
         inject_undef_exception(regs, hsr);
         return;
     }
+#endif
 
     if ( !(v->arch.hcr_el2 & HCR_TVM) )
     {
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 4b52fc314a..bdc0d810ee 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -419,6 +419,7 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
     /* This should be done in a vpmu driver but we do not have one yet. */
     vpmu_is_available = cpu_has_pmu;
 
+#ifdef CONFIG_HAS_PASSTHROUGH
     /*
      * The IOMMU subsystem must be initialized before P2M as we need
      * to gather requirements regarding the maximum IPA bits supported by
@@ -427,6 +428,7 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
     rc = iommu_setup();
     if ( !iommu_enabled && rc != -ENODEV )
         panic("Couldn't configure correctly all the IOMMUs.\n");
+#endif
 
     setup_virt_paging();
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:10:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:10:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834081.1249570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAYs2-0006SW-3I; Mon, 11 Nov 2024 18:10:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834081.1249570; Mon, 11 Nov 2024 18:10: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 1tAYs1-0006SP-Vm; Mon, 11 Nov 2024 18:10:37 +0000
Received: by outflank-mailman (input) for mailman id 834081;
 Mon, 11 Nov 2024 18:10: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=eHe6=SG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tAYs0-0006Ov-C1
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:10:36 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2413::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d05420b-a058-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 19:10:32 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by MN0PR12MB5737.namprd12.prod.outlook.com (2603:10b6:208:370::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.27; Mon, 11 Nov
 2024 18:10:28 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8137.022; Mon, 11 Nov 2024
 18: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: 3d05420b-a058-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjFlIiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjNkMDU0MjBiLWEwNTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzQ4NjMyLjU2OTkyOCwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UUi6NVmjzZkkFJSSZ6Vm6rWuZCSllXkES6/2f5ywYrmMdbLz0jdZIIVeZU4U9GSP2U7R+SCzWuXsQDKU4HV4Cv4SntBvPCT43sul2R5ZQrxLKYStfDXHeZdjOHh0p5YGTA37BvnC76KLISW2zb9EnrJixYtw2WQOBL1LzewcnBtv1BH0RGL5zltPsxgMnbKTG2WBrmAzQ74fgDFwYwk3dS8aJAOv9cv3mKiDnlB8iSSYKxkrJrrO9qU/ewFYqYjFy2x4En81rumjNkVf+wNlqtCf7q2YFDIRn1h7Qbckycd/HuaXADEwf9bHnEBTseRzmwb4T1E9GjlTx7mSh8URqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OtD2GnUK0+mfyB1eRGsmdswnzuPIbcl55K42OhSdq8Y=;
 b=DyYxly6ibQCSfqCpUOox9JL5WN9+sgrZ3wJ1s9EzD4N6EIFOATnLbTYGDImm44Puw4sOxYB1T1ASovB5mXYSI3iqAaVwGBIpHv7iAjWZwaDYKHBTQakCkkZBW5X02gI+ZDjOOMlNbIlgw/MOcPXTlTsU628gM/uWTfxxaNZwtsD/kH78nGrZg81Pvt+uFqkdzRwntf6EVB6B4Oh9+Qs24n/VYNie0E24/5Cy1+0DL9K329XlSe0gWM0eQgI6a8k94MqYF0g1c7jc2w6+B8OmXBSnRAfn3YW/Zgr+LvMDsNzzAiFoa9p4+io4cPZTuMlSrX8kYn7rszwZs9HuWI9Olg==
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=OtD2GnUK0+mfyB1eRGsmdswnzuPIbcl55K42OhSdq8Y=;
 b=XoxFpRprI99JBorgIHEd2TfYWidICf8aEy/QDNTjqPMkPQyDMk5JwJi57lkcAAhYK4WfVFL8P5kKvmpAHVu09xqz1mMeFaA9Mvk98364qIoVDIVQ7yjmTYUzYip70tmwPcPRQ9cw0X5dHa4XJaqB9SuQMqdoYX4ngEze7UO9sBE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <2e70b890-f755-4f37-a283-bd261ec3b8e0@amd.com>
Date: Mon, 11 Nov 2024 18:10:22 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>, Julien Grall <julien@xen.org>
Cc: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Penny Zheng <Penny.Zheng@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Rahul Singh <Rahul.Singh@arm.com>
References: <20241108195918.856412-1-ayan.kumar.halder@amd.com>
 <80ac1e78-5259-43d2-8b18-d5bd3abdca1b@xen.org>
 <2ca98e9c-1a4b-43a2-b707-097dc5093e39@amd.com>
 <6dc2ebd8-d206-479b-ac3a-83ed59c7109f@xen.org>
 <86862f6e-caf3-4a5a-a650-b9bac74b83d3@amd.com>
 <9D3DF4D9-F88E-4419-A048-3B3EC534033B@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <9D3DF4D9-F88E-4419-A048-3B3EC534033B@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0020.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:62::32) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|MN0PR12MB5737:EE_
X-MS-Office365-Filtering-Correlation-Id: a570b4fb-a4de-4919-1de9-08dd027c1f1c
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?cTRUVy9SN0JZcElBOVFNY0w1UnQwbGdORkxtODI3QU04OHN5WURZTTFXLzJm?=
 =?utf-8?B?YkNSQnppQW5kWWZwVDlaaC9wN2NWMHFxNzZNYzRSM2x0T0hFVTBabHJTYm11?=
 =?utf-8?B?Qi9jU016WDVYWDFUUWVZc29VWnRGaGdjbUhWL29hTTBSbGozc1NldFFJQncz?=
 =?utf-8?B?SEVCWlZUVURSNFJKY0J2VXdvRjdSV0toWm5jREEvYWJrUHc5NHRBelVIQlFP?=
 =?utf-8?B?bGRMbWlrRG9pb0srdnJoak04d21QYWNXdGNUd2NDVm1oUXpWM0gyRzFKZ2Ft?=
 =?utf-8?B?ZnJBZTJRaU9mSTR0OHRvMVF6RmFYRmJldFRlWVJ3TXhRUUtlU05YaU1ERzd6?=
 =?utf-8?B?MVIvVW42L0RCQjRxKys2c0pCM1NFQVNwU3cyRGJHWU8zVEhKOUM4UWwrY0x3?=
 =?utf-8?B?VGhoWjRMMTdWUlNGOFZPVE9MaU9kbnRvQzUzbEtQYjRaSWxia0Fqei8rRlNx?=
 =?utf-8?B?bnZDaHZyOHVFWUR5VnR5anVPYmh4NEdaUVA2enhpZ09mYS84QUdLUlNqZ1Vt?=
 =?utf-8?B?TFlQdGxOdnpKN2wwdXVnaEVJMzFMZnNqOXhkQnFMU1U1OFpqaVNUMVBubWVt?=
 =?utf-8?B?K0U2Z1I2RGlGR1p1MTBPTDdKbFdyUXZpUG56TFYxaUI2YysvcHBGcVo5Tm5F?=
 =?utf-8?B?R0RSSWIrU0dUcU02NTRpc3BpeG1ITkhNZU90bDRFTitTRithN1JiQ2lqVHVp?=
 =?utf-8?B?N3hleWFCSk5UWVpSRndGN3NMZGdyYnJjNWtod3h3R3BmZHRSOVVOck9BcGYx?=
 =?utf-8?B?UTdsQzdDWkpqR3FyUU1HRFVDMUE5VTRXREYvR05HS0RqbGt1VGtRS2NubnRa?=
 =?utf-8?B?YU9HSUdzM1Vzb3RJcFNIamdlR256cTVQR2dLaVlFbm9KV05vTnoyYVpYN3hH?=
 =?utf-8?B?SVNNSk9nMmtGOE9WWE91T0UzcXZzcG5laFZYYzFIOEhscS9QU2J5dENGenhQ?=
 =?utf-8?B?Y2hzRVlWcmNjOE9wUE1LNnZPNTdsVmlScGg2L29CcGhscFJrMitPcFZKWWx0?=
 =?utf-8?B?cFZoNzE5a2h4OG9aR2pTcnZUVGdpRVZxME5la0RTaVBubXBFUFJjSnVzM1cr?=
 =?utf-8?B?aUJqUzNmR21icUVCQU4vbm9QcStBRGRhRUpWUEFSRzhjQlVIamFIR0h5TkpT?=
 =?utf-8?B?aVFaQXhBRXJDZ09JL0ZaNXNacFNlaXJUaXY1clRLR1B3eUMvc0d5UVJ0WWQ4?=
 =?utf-8?B?cEExVVNzbDRsUDU3MGFhODJpVzJockRXNXhLeGZlcEdkdHhOVTBFOTd1UWRZ?=
 =?utf-8?B?MVlPemVFak5ycDBTQnZ1L1pFQ3FxeVR0a2VveEo5Mmp5YWFZK1Bkc2ZtLzQ4?=
 =?utf-8?B?ZlRUZXZmdkVRM1VOaWFZU081TjI4ZEFES2JxM2pDam1HUGtuelFJQmhObi95?=
 =?utf-8?B?bG1HSTRjRWFwVVVUMVREMlhHajJaZmQ1ZCtxYnhNbkJVOVhoc3Y5T2dtc21S?=
 =?utf-8?B?ZFkySEhGazV5b1FwVXNpWks1b3l5dmtBTFcvcllwKzZxNjRpQWx6M2NCQmRn?=
 =?utf-8?B?UzZTbEZtaVdLYnhkZy9kSFZ1UGo2NnFjVjFndXJEWEtOVllaV1F0TFNnejBz?=
 =?utf-8?B?NTB6UVNrS0ptcUg3b1o1SVh4MHNHd2dyank5cTh3RFgzUEFpRnIrMnh5VzZT?=
 =?utf-8?B?R1pLTThGZHJNdjh2SXJwNWxMMEUvamczbzdOTy9CSjQvRE5HaXgvNVZicFFR?=
 =?utf-8?B?SDZxVG92NG9NZ1VFUlhDYXBzMUhwd3NHMnA3cW05K1lhdDhFZ2pMcHVoVzFh?=
 =?utf-8?Q?jDAgPr/Gs373cy05MymnWSKdxyfrisAmcTkcoqZ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.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?UjB6NU5vRkl4alpuUDJoMFllRVFRRkU1eCtFdTI2SVh1QjZOdmpNd3BRMWx4?=
 =?utf-8?B?MkNxbXBobTRPMURhUHFlYUt0THg2M3JhZVN0MFpIRiswc095Tlh5QmZMUkI0?=
 =?utf-8?B?UFFLekJBTExNeWdNWnRsUlBMK2tOdnBxaVV2Tm5ERjhoNGNMWFp0S0ZKZHFK?=
 =?utf-8?B?UDBxSzlseHQ4SnRTMGdvaHppc0ZRZkpLWHMzNFo4Y003ZTlUSHROYnpTejJU?=
 =?utf-8?B?RjdsUSsxditYSTlneWNMSVJYbE56bG1nUE1xRElPQW5zV0xsSDArTHdtQ3dE?=
 =?utf-8?B?VHVPQUViYllYVjU2VjdGODZVZ09PSnIwWHREcHJ0RU5FRTRBMXlJRDNlcjRp?=
 =?utf-8?B?Um5nTUlqbEV6WHhhNGJHZGpEREdkemxIOEViaUxGY2E5d3VPSnFJRG5sMU9M?=
 =?utf-8?B?OHRMQW9nR3lzZWNUS1dsYVhtQ2ZZcVVMZEluSzVNWC9FYnoyY21ZVTlmdzM4?=
 =?utf-8?B?WFBXdjFTNURUeEU0RHliV0dyWkcyR29KczJtcm9lUWduZzhwK0VuR2M2SG9U?=
 =?utf-8?B?cGFiQ1NXWHBvOWl4akk5ODV5RUFwODQ0MzJrcmFUQUlFSzJqNnZxRmlsZDhV?=
 =?utf-8?B?Z2ZCYzNoZE1meGJZVitIaHRQdWpNNUFHUWJybUpQU2RIVHcwY1NXNGdReDhF?=
 =?utf-8?B?a3IyZkh0Q05xSHIyMmlVSHE2YS9ORi9ibFFqYXVxZkh2YlFIaGUwYVNGSlRP?=
 =?utf-8?B?c3lrNnc0WXBseGlXb3doSGtnZWgvclQ3cGxlekZ1em02V3NjbWhOZjUwOHF5?=
 =?utf-8?B?Wk1NN201WFVxUC82UG5VOENIaUhlZWExNWpZYnNZL1FtbFJTR1FWWDZlRGZS?=
 =?utf-8?B?RzdXaG9BTCtMUHdIdWRJek5SZXdKRnR1anpqTE5jMmJSSmVsZFd4b2tQdWh2?=
 =?utf-8?B?aDEzYU96V1dXRVE3dGlheTRJbWE1U2Jpc3RKZ05Ub3BGVmRidnBJSFFFNWlx?=
 =?utf-8?B?Mkh0UHlFUWhsaXpXN1oyTDFSN240R2xhVWtReVd1NGJ2VllNRmpaSGxFcmZ2?=
 =?utf-8?B?bEFsOXZNN08vMGJGZFpzZXJjbWlaMGtlWmE5MXB6M210Zy9QTXRGMU10VXdj?=
 =?utf-8?B?cUx2WXdUc21BbjI1a1FnaE5jWTdyeFBJMU5zelZrN0tLNE5FTDhYbCtUYUZW?=
 =?utf-8?B?UXhLYXhzb2dWcGVxaEdYdWhCSitCbGNsNHovQ0x1blVnd09HWXZXZTR4N1NY?=
 =?utf-8?B?aEhkUlpsR0ZsUXlhZTNjRjFWdTlCRDczNHhPdlE4YThNMGI4NW4rdTVMb2Rh?=
 =?utf-8?B?d1BJdGtZWWdJekdlaE1PSGsvWk9rVy9OdFRhWUxWZjVyY0g5QWQ4Q2gyMDBh?=
 =?utf-8?B?VVBqN2dDY2NyelVrdUdJTkxhSWFYdnJmQkg3RzhKWUgvcHhTTDA2eEpod0Vr?=
 =?utf-8?B?eloyTG0ramRHRVNnclIzcXJlZm56dWo0bFNZcG9TWnA4RU9hUEJNZFNEdVFj?=
 =?utf-8?B?ekptSUU5M3RnaTk2RVFXeFlTQlk3VXk0amZDUG85TGtVM21PR1dmWE5sckpo?=
 =?utf-8?B?UUc4SlQzcWpRcWlxLzl3VDd0TUpmVnZaREdBY3luMThOeityanZXT1RBTk40?=
 =?utf-8?B?NXM4VG83blVZRk14OVV6UU9hdkFjNzFxeWxQbGxQMC9XWWtVVTV1SXlOcmUy?=
 =?utf-8?B?aHBlb3phS0dBcnVRVEVNWmhpSzl1QWRmWlM1ekQxMFhEZDBPQUFueE4xUzdQ?=
 =?utf-8?B?MkswRG9OTzFxOXE5dDFFLzFYVURkSm5sbGRTOE0zdndDSjJlcnlBR2h0bENn?=
 =?utf-8?B?MU5pVFFGb1ZLZ3FmZXAvVG9LSmRhVW9iSmhTY2V4ZjI3OG5EbGtKRlpLVE0r?=
 =?utf-8?B?a1M3elU1Zm9WQWtVdllwWnBmdDVQMXpMbEZ1cUJlTmloVkxiSDF2RERWMjFm?=
 =?utf-8?B?bElGVk5NdHI2dW9uV1UvSEVFbkwvbTBnVkVTU2FtVVNSeTBuWWMwSWlkQUN0?=
 =?utf-8?B?SDhIZm94T1RJMlNkcDFqckpWNnNvZUZkejlzaE9qNlRrY0VUbGordFd6K25m?=
 =?utf-8?B?ZWoydHdEd1NuM3ptYlA4VTRHWVhGay93Uk5tcGoxZmVRcHJCanFGM3pOelJ4?=
 =?utf-8?B?RVZqQlF4REs3UlFnZlgwcnUvOTJKYU1Zc0hXM0ZKb0RGRFlLdXdqYlBGdmZv?=
 =?utf-8?Q?dIZLdHISNN+n213LUE9pzR07j?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a570b4fb-a4de-4919-1de9-08dd027c1f1c
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2024 18:10:27.9611
 (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: 67RRJuozKvmmCO0x1sByTqVKdvXINKjiDKIkrmUORzvVl54EUVvyFpvbi78tI/7KRYgvLxuEFrmgEbsAmpbDpg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5737

Hi Luca/Julien,

On 11/11/2024 16:33, Luca Fancellu wrote:
> Hi Ayan,
>
>
>> On 11 Nov 2024, at 16:00, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>>
>> On 11/11/2024 13:45, Julien Grall wrote:
>>> Hi Ayan,
>> Hi Julien,
>>> On 11/11/2024 13:24, Ayan Kumar Halder wrote:
>>>> On 11/11/2024 11:12, Julien Grall wrote:
>>>>> Hi,
>>>> Hi Julien,
>>>>> On 08/11/2024 19:59, Ayan Kumar Halder wrote:
>>>>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>>>>
>>>>>> In Xen, SMMU subsystem is supported for MMU system only. The reason being SMMU
>>>>>> driver uses the same page tables as MMU.
>>>>>> Thus, we make it dependent on CONFIG_MMU.
>>>>>>
>>>>>> Signed-off-by: Penny Zheng <Penny.Zheng@arm.com>
>>>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>>>>> ---
>>>>>>    xen/arch/arm/Kconfig            | 2 +-
>>>>>>    xen/drivers/passthrough/Kconfig | 3 ++-
>>>>>>    2 files changed, 3 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>>>>> index 15b2e4a227..3699e148e9 100644
>>>>>> --- a/xen/arch/arm/Kconfig
>>>>>> +++ b/xen/arch/arm/Kconfig
>>>>>> @@ -16,7 +16,7 @@ config ARM
>>>>>>        select HAS_DEVICE_TREE
>>>>>>        select HAS_PASSTHROUGH
>>>>>>        select HAS_UBSAN
>>>>>> -    select IOMMU_FORCE_PT_SHARE
>>>>>> +    select IOMMU_FORCE_PT_SHARE if MMU
>>>>> Realistically, everything under drivers/passthrough is MMU specific. So does it actually make any sense to select HAS_PASSTHROUGH right now?
>>>> Actually we are able to assign devices to different DomUs (eg UART1 to domU1) as long as the device isn't behind an IOMMU. So in our case, the passthrough device tree has this node
>>>>
>>>>           uart@9c0b0000 {
>>>>               compatible = "arm,pl011\0arm,primecell";
>>>>               reg = <0x00 0x9c0b0000 0x00 0x10000>;
>>>>               interrupt-parent = <0x01>;
>>>>               interrupts = <0x00 0x07 0x04>;
>>>>               clock-names = "uartclk\0apb_pclk";
>>>>               clocks = <0x06 0x07>;
>>>>               xen,path = "/uart@9c0b0000";
>>>>               xen,reg = <0x00 0x9c0b0000 0x00 0x10000 0x00 0x9c0b0000>;
>>>>               xen,force-assign-without-iommu;
>>> So how devices will be protected on an MPU systems?
>>>
>>>>           };> So, should we still disable HAS_PASSTHROUGH for MPU ?
>>> While it may work, a lot of code in drivers/passthrough is IOMMU specific (see all the function named iommu_*). So I find really odd that you disable IOMMU_FORCE_PT_SHARE but all the rest is still present...
>>>
>>> I think we need some consistency. If you are planning to do device passthrough without any protection, then I don't think you need any code within drivers/passthrough/ (at least for platform devices).
>>>
>>> Overall, for this patch, I think it would be better to simply select HAS_PASSTHROUGH when MMU is enabled. We can revisit device passthrough once we have the patches on the ML.
>> Yes, this makes sense. I will wait for Luca to confirm as well.
> It makes sense to donâ€™t compile all that stuff, anyway we are using some functions from drivers/passthrough/device_tree.c to pass the pl011 to the guests, we will try to handle them later in the series then.

Agreed.

Actually, MPU does not use much from drivers/passthrough. However, if 
you disable CONFIG_HAS_PASSTHROUGH for MPU, then we need to add a bunch 
of #if-def in the arm specific common code.

Please have a look at "xen/arm: Enclose all iommu related access within 
CONFIG_HAS_PASSTHROUGH" and let me know if you still prefer to disable it.

- Ayan



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:16:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834091.1249586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAYy9-0007rI-1j; Mon, 11 Nov 2024 18:16:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834091.1249586; Mon, 11 Nov 2024 18: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 1tAYy8-0007q0-RT; Mon, 11 Nov 2024 18:16:56 +0000
Received: by outflank-mailman (input) for mailman id 834091;
 Mon, 11 Nov 2024 18:16: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=dX8x=SG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tAYy6-0007mr-QE
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:16:54 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1faf75b5-a059-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 19:16:51 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-539fe76e802so5415184e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 10:16:51 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d82689a79sm1633691e87.109.2024.11.11.10.16.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 10:16: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: 1faf75b5-a059-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmYWY3NWI1LWEwNTktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzQ5MDExLjg2MzU5Niwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731349008; x=1731953808; 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=HrgdZldHTPwxBoD4F8ZUI8i9P980QNS7e9bw8bRPtPo=;
        b=LzFknscjPN4Mu2QZ65yw+IUHEGMxGPHkYB9wKG6pn1Xb8wRgAfSwA5dgpthOEB9jhl
         7ZWwrzNHANfCcRwoc6iI2oK9tPlWYPWldItHMSqubzZ0dhcHSsElP6gYxexa671pMIaW
         euC5JqyoTD0WuTySciq7GiADrKck6RbkbsEh2UxTqvHGI8LRBvByh6TnnaYWaEqDvJG3
         bb3E1zLbAjv73R8E41MEqKDWfqmTM6m5Oeer+n2Sm5CQiB5Gm2Q9YlMr+skf3ImMXAp1
         DWO+tFf1xnvT4KFPfDxdInZ4FXPCXI4hwOwVEZVuPYDbgxY+80HfXGqqATt7BaEFGAKA
         viZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731349008; x=1731953808;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HrgdZldHTPwxBoD4F8ZUI8i9P980QNS7e9bw8bRPtPo=;
        b=o+MOGo1SWCvskhAFeB9VEfg18dkbKqJi1JWfZ6Eq1HP7C6jpv/AlCqVRpCOq7eUFzC
         ff2T7G0ANqjkWDeSTQzeTTLoxPxfYU8ioThmBlivgBe+PHVE5MjgouG/JfKCingMdLrT
         YXISC/Tzn7FHlAuUvbeZUdDxEvfDgimR6Lna9aBCbKY1FSYoMc8Sl2bXKIbQhpqUrdJg
         fmv0laFyW8EaLQvguu6Sl4eVY9OkCqnOgBP3ixTCQlxfMgnwsBLFHD1c2clSMaRwoP9F
         oWE78VRMtkWBeB/V5eA8DLMj9CxeGIPRs0SEn72QxZAOVwJ7z9WBmfyeMNIxblHdbbRG
         ExhA==
X-Gm-Message-State: AOJu0Yy65Rma8+inGZRziOBj2NJCn4Np4LWIbw21VnU923jmrr+P1JUJ
	P2VM30meP4q+RP3IEez1dzabe+Odl6UeBzFcSWwheUoMPP85CUS8GRBK3Q==
X-Google-Smtp-Source: AGHT+IF6vAhr1NdGGtFoAYelpa9x4lis/rNpE2iGC9S6YcF1a6qaTGST4b7n6LWDMLOw+hlAbTIeoQ==
X-Received: by 2002:a05:6512:3f02:b0:539:964c:16d4 with SMTP id 2adb3069b0e04-53d862fdedcmr6311573e87.36.1731349008021;
        Mon, 11 Nov 2024 10:16: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
Date: Mon, 11 Nov 2024 19:16:42 +0100
Message-ID: <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731344883.git.oleksii.kurochko@gmail.com>
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the implementation of setup_mm(), which includes:
1. Adding all free regions to the boot allocator, as memory is needed
   to allocate page tables used for frame table mapping.
2. Calculating RAM size and the RAM end address.
3. Setting up direct map mappings from each RAM bank and initialize
   directmap_virt_start to keep simple VA <-> PA translation and if
   RAM_start isn't properly aligned then add an additional alignment
   to directmap_virt_start to be properly aligned with RAM
   start to use more superpages to reduce pressure on the TLB.
4. Setting up frame table mappings for range [ram_start, ram_end)
   and initialize properly frametable_virt_start to have simplified
   version of mfn_to_page() and page_to_mfn().
5. Setting up max_page.

Update virt_to_maddr() to use introduced directmap_virt_start.

Implement maddr_to_virt() function to convert a machine address
to a virtual address. This function is specifically designed to be used
only for the DIRECTMAP region, so a check has been added to ensure that
the address does not exceed DIRECTMAP_SIZE.

After the introduction of maddr_to_virt() the following linkage error starts
to occur and to avoid it share_xen_page_with_guest() stub is added:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

Despite the linkger fingering tasklet.c, it's trace.o which has the undefined
refenrece:
  $ find . -name \*.o | while read F; do nm $F | grep share_xen_page_with_guest &&
    echo $F; done
                     U share_xen_page_with_guest
    ./xen/common/built_in.o
                     U share_xen_page_with_guest
    ./xen/common/trace.o
                     U share_xen_page_with_guest
    ./xen/prelink.o

Looking at trace.i, there is call of share_xen_page_with_guest() but in case of
when maddr_to_virt() is defined as stub ("BUG_ON(); return NULL;") DCE happens and
the code is just eliminated.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5:
 - correct the if-condition in virt_to_maddr():
     directmap_virt_start -> DIRECTMAP_VIRT_START
   as `va` argument of virt_to_maddr() is DIRECTMAP_VIRT_START-relative.
 - add initializer to definition/declaration of frametable_virt_start.
 - setup_frametable_mappings() update:
   - add check that setup_frametable_mappings() is called once.
   - add staic variable frametable_mfn_start inside setup_frametable_mappings()
     to handle the case when setup_frametable_mappings() is called more then
     once.
 - setup_directmap_mappings():
   - Update initialization of directmap_virt_start when setup_directmap_mappings()
     is called for the first time.
   - Introduce local variable "mfn_t base_mfn_t = _mfn(base_mfn);" to have
     less mfn_x(...) in the code.
   - Add logging of error code of map_pages_to_xen().
 - Drop ram_size variable in setup_mm() as there is no users of it.
---
Change in V4:
 - s/heap/directmap in log message in setup_directmap_mappings().
 - drop local variable total_pages in setup_mm() as it is not used.
 - call setup_frametable_mappings() for [ram_start,ram_end) range.
 - setup_frametable_mappings(ps, pe):
   - update initialization ( validation/invalidation ) of frame table.
   - add and initialize frameframetable_virt_start variable to cover
     the case that ps ( RAM start ) could be not eqaul 0 so the proper
     calculations are needed in mfn_to_page() and page_to_mfn().
 - setup_directmap_mapping():
   - update the value of directmap_virt_start: add an alignment to the size
     of HYP_PT_ROOT_LEVEL to have proper alignment so more superpages will be
     used for mapping.
   - re-use indirectly directmap_virt_start ( by using mfn_to_virt(base_mfn) )
     during mapping of directmap region for RAM bank to not face an issue with
     possible mapping overlapping during the 2nd invocation of
     setup_directmap_mapping().
 - Update the commit message.
---
Changes in V3:
  - Update the comment the part where DCE should be mentioned and directmap-related
    things are touched.
  - Move ROUNDDOWN to <xen/macros.h>.
  - s/sizeof(struct page_info)/sizeof(*frame_table) in setup_frametable_mapping().
  - Updates in setup_frametable_mapping():
    - align phys_start (ps) up to a page boundary and align phys_end (pe) down
      to a page boundary.
    - Update panic message.
    - Add the comment about alignment of frametable_size and base_mfn.
    - invalidate all frame_table entries and then just init with 0 only valid ones.
  - Double blank lines removing.
  - Initialize directmap_virt_start with DIRECTMAP_VIRT_START.
  - Updates in setup_directmap_mapping():
    - Drop local variable rc as it is used only once.
    - Move directmap_mfn_start definition to setup_directmap_mapping() and
      change __ro_after_init to __initdata.
    - Update the commit message about alignment of directmap_virt_start.
    - Move down directmap_virt_start for (base_addr & ~XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to not waste a lot of directmap space.
    - Map DIRECTMAP_VIRT_START + (base_addr & XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to _mfn(base_mfn).
    - Add log of the range in case directmap mapping failure.
  - Drop XENHEAP_VIRT_START and use directmap_virt_start instead.
  - Update the comment above setup_mm().
  - Update the calculation of bank_start and bank_end in setup_mm() to cover
    the case when a bank doesn't cover full pages.
  - Move share_xen_page_with_guest() to riscv/mm.c instead of riscv/stub.c.
  - Drop inclusion of <xen/pdx.h> in riscv/mm.c as thery is nothing used
    anymore in riscv/mm.c.
  - Move variable directmap_virt_start and setup_mm() outside
    #ifndef CONFIG_RISCV_32 ... #endif as they are likely to be common.
---
 Changes in V2:
  - merge patch 2 ( xen/riscv: implement maddr_to_virt() ) to the current one
    as maddr_to_virt() started to use the thing which are introduced in the
    current patch.
  - merge with patch 1 ( xen/riscv: add stub for share_xen_page_with_guest() )
    as this linkage issue happens during introduction of maddr_to_virt().
  - use mathematical range expressions for log messages.
  - calculate properly amount of mfns in setup_frametable_mapping() taking into
    account that ps and pe can be not properly aligned.
  - drop full stop at the end of debug message.
  - use PFN_DOWN(framsetable_size) instead of frametable_size >> PAGE_SHIFT.
  - round down ram_size when it is being accumulated in setup_mm() to guarantee
    that banks can never have partial pages at their start/end.
  - call setup_directmap_mappings() only for ram bank regions instead of
    mapping [0, ram_end] region.
  - drop directmap_virt_end for now as it isn't used at the moment.
  - update the commit message.
---
 xen/arch/riscv/include/asm/mm.h    |  17 +++-
 xen/arch/riscv/include/asm/setup.h |   2 +
 xen/arch/riscv/mm.c                | 150 +++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c             |   3 +
 xen/include/xen/macros.h           |   1 +
 5 files changed, 168 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index ebb142502e..2b642dcc1f 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -12,6 +12,8 @@
 
 #include <asm/page-bits.h>
 
+extern vaddr_t directmap_virt_start;
+
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
 
@@ -25,8 +27,11 @@
 
 static inline void *maddr_to_virt(paddr_t ma)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    unsigned long va_offset = maddr_to_directmapoff(ma);
+
+    ASSERT(va_offset < DIRECTMAP_SIZE);
+
+    return (void *)(directmap_virt_start + va_offset);
 }
 
 /*
@@ -39,7 +44,7 @@ static inline unsigned long virt_to_maddr(unsigned long va)
 {
     if ((va >= DIRECTMAP_VIRT_START) &&
         (va < (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)))
-        return directmapoff_to_maddr(va - DIRECTMAP_VIRT_START);
+        return directmapoff_to_maddr(va - directmap_virt_start);
 
     BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
     ASSERT((va >> (PAGETABLE_ORDER + PAGE_SHIFT)) ==
@@ -127,11 +132,13 @@ struct page_info
     };
 };
 
+extern struct page_info *frametable_virt_start;
+
 #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 
 /* Convert between machine frame numbers and page-info structures. */
-#define mfn_to_page(mfn)    (frame_table + mfn_x(mfn))
-#define page_to_mfn(pg)     _mfn((pg) - frame_table)
+#define mfn_to_page(mfn)    (frametable_virt_start + mfn_x(mfn))
+#define page_to_mfn(pg)     _mfn((pg) - frametable_virt_start)
 
 static inline void *page_to_virt(const struct page_info *pg)
 {
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c0214a9bf2..844a2f0ef1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,8 @@
 
 #define max_init_domid (0)
 
+void setup_mm(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 27026d803b..0d2c352696 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -372,6 +372,12 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return -1;
 }
 
+void share_xen_page_with_guest(struct page_info *page, struct domain *d,
+                               enum XENSHARE_flags flags)
+{
+    BUG_ON("unimplemented");
+}
+
 void * __init early_fdt_map(paddr_t fdt_paddr)
 {
     /* We are using 2MB superpage for mapping the FDT */
@@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
 
     return fdt_virt;
 }
+
+vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
+
+struct page_info *__ro_after_init frametable_virt_start = frame_table;
+
+#ifndef CONFIG_RISCV_32
+
+/* Map a frame table to cover physical addresses ps through pe */
+static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    static mfn_t __initdata frametable_mfn_start = INVALID_MFN_INITIALIZER;
+
+    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
+    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
+    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
+    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
+    mfn_t base_mfn;
+
+    if ( mfn_eq(frametable_mfn_start, INVALID_MFN) )
+    {
+        frametable_mfn_start = maddr_to_mfn(aligned_ps);
+
+        frametable_virt_start -= paddr_to_pfn(aligned_ps);
+    }
+    else
+        panic("%s shouldn't be called twice\n", __func__);
+
+    if ( frametable_size > FRAMETABLE_SIZE )
+        panic("The frametable cannot cover [%#"PRIpaddr", %#"PRIpaddr")\n",
+              ps, pe);
+
+    /*
+     * align base_mfn and frametable_size to MB(2) to have superpage mapping
+     * in map_pages_to_xen()
+     */
+    frametable_size = ROUNDUP(frametable_size, MB(2));
+    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, PFN_DOWN(MB(2)));
+
+    if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
+                          PFN_DOWN(frametable_size),
+                          PAGE_HYPERVISOR_RW) )
+        panic("frametable mappings failed: %#lx -> %#lx\n",
+              FRAMETABLE_VIRT_START, mfn_x(base_mfn));
+
+    memset(&frame_table[0], 0, nr_mfns * sizeof(*frame_table));
+    memset(&frame_table[nr_mfns], -1,
+           frametable_size - (nr_mfns * sizeof(*frame_table)));
+}
+
+/* Map the region in the directmap area. */
+static void __init setup_directmap_mappings(unsigned long base_mfn,
+                                            unsigned long nr_mfns)
+{
+    static mfn_t __initdata directmap_mfn_start = INVALID_MFN_INITIALIZER;
+
+    mfn_t base_mfn_t = _mfn(base_mfn);
+    unsigned long base_addr = mfn_to_maddr(base_mfn_t);
+    unsigned long high_bits_mask = XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
+    int res;
+
+    /* First call sets the directmap physical and virtual offset. */
+    if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
+    {
+        directmap_mfn_start = base_mfn_t;
+
+       /*
+        * The base address may not be aligned to the second level
+        * size in case of Sv39 (e.g. 1GB when using 4KB pages).
+        * This would prevent superpage mappings for all the regions
+        * because the virtual address and machine address should
+        * both be suitably aligned.
+        *
+        * Prevent that by offsetting the start of the directmap virtual
+        * address.
+        */
+        directmap_virt_start -= (base_addr & high_bits_mask);
+    }
+
+    if ( base_mfn < mfn_x(directmap_mfn_start) )
+        panic("can't add directmap mapping at %#lx below directmap start %#lx\n",
+              base_mfn, mfn_x(directmap_mfn_start));
+
+    if ( (res = map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn),
+                          base_mfn_t, nr_mfns,
+                          PAGE_HYPERVISOR_RW)) )
+        panic("Directmap mappings for [%#"PRIpaddr", %#"PRIpaddr") failed: %d\n",
+              mfn_to_maddr(base_mfn_t),
+              mfn_to_maddr(mfn_add(base_mfn_t, nr_mfns)), res);
+}
+
+#else /* CONFIG_RISCV_32 */
+#error setup_{directmap,frametable}_mapping() should be implemented for RV_32
+#endif
+
+/*
+ * Setup memory management
+ *
+ * RISC-V 64 has a large virtual address space (the minimum supported
+ * MMU mode is Sv39, which provides GBs of VA space).
+ *
+ * The directmap_virt_start is shifted lower in the VA space to
+ * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
+ * wasting a large portion of the directmap space, this also allows for simple
+ * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
+ * (for Sv39; for other MMU mode boundaries will be bigger ) by masking the
+ * higher bits of the RAM start address to enable the use of superpages in
+ * map_pages_to_xen().
+ *
+ * The frametable is mapped starting from physical address 0, minimizing
+ * wasted VA space and simplifying page_to_mfn() and mfn_to_page()
+ * translations.
+ */
+void __init setup_mm(void)
+{
+    const struct membanks *banks = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR;
+    paddr_t ram_end = 0;
+    unsigned int i;
+
+    /*
+     * We need some memory to allocate the page-tables used for the directmap
+     * mappings. But some regions may contain memory already allocated
+     * for other uses (e.g. modules, reserved-memory...).
+     *
+     * For simplicity, add all the free regions in the boot allocator.
+     */
+    populate_boot_allocator();
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
+        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
+        unsigned long bank_size = bank_end - bank_start;
+
+        ram_start = min(ram_start, bank_start);
+        ram_end = max(ram_end, bank_end);
+
+        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
+    }
+
+    setup_frametable_mappings(ram_start, ram_end);
+    max_page = PFN_DOWN(ram_end);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e29bd75d7c..2887a18c0c 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 
 #include <asm/early_printk.h>
 #include <asm/sbi.h>
+#include <asm/setup.h>
 #include <asm/smp.h>
 #include <asm/traps.h>
 
@@ -59,6 +60,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
 
+    setup_mm();
+
     printk("All set up\n");
 
     machine_halt();
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index 19caaa8026..cd528fbdb1 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -2,6 +2,7 @@
 #define __MACROS_H__
 
 #define ROUNDUP(x, a) (((x) + (a) - 1) & ~((a) - 1))
+#define ROUNDDOWN(x, a) ((x) & ~((a) - 1))
 
 #define IS_ALIGNED(val, align) (!((val) & ((align) - 1)))
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:17:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834090.1249580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAYy8-0007nQ-N0; Mon, 11 Nov 2024 18:16:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834090.1249580; Mon, 11 Nov 2024 18: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 1tAYy8-0007nJ-KH; Mon, 11 Nov 2024 18:16:56 +0000
Received: by outflank-mailman (input) for mailman id 834090;
 Mon, 11 Nov 2024 18:16: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=dX8x=SG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tAYy6-0007n0-MG
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:16:54 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f70dfed-a059-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 19:16:51 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-53b13ea6b78so7428737e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 10:16:51 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d82689a79sm1633691e87.109.2024.11.11.10.16.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 10:16: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: 1f70dfed-a059-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzEiLCJoZWxvIjoibWFpbC1sZjEteDEzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmNzBkZmVkLWEwNTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzQ5MDExLjMwNzMxNywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731349008; x=1731953808; 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=btPxOZrx0cdYKhW9OuqDxy9dlyo3PeDwDv4OVN788/c=;
        b=EExvbt1Rx/Q+lWmFgX+V1wlBhys75MmMyb3e6TIGmJSfGH4pF8cIBkPPq9VNGtMWM4
         c/np+jkmjUw3yudDXyFO6UDCgK+o+a0AXLzmZPCFm2rbvu5P2rIIJdy+i22ZVgVqc1IN
         bg7nwdMB1qLkx0QewtAo8BsEYUp8G4n5USf5lUt+21cJLds0nLrPiVwlDcTVThO/vo42
         ecT5YJtM35i1sIyjZFcP58prHHqmL86Xwns+faEvnOS7QdTvfWEFiuQfT8A7306P9ZQT
         XZFUkLPtCs5TmqEERuOvPhjj+0CLX1TI/14bbqrmCAIY/TIb2lRey3kyOO9rsQvLdrzf
         XrRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731349008; x=1731953808;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=btPxOZrx0cdYKhW9OuqDxy9dlyo3PeDwDv4OVN788/c=;
        b=INn9eIFnAg0jCvBH3PO4MQj1uiedMcB0EbeD4+ea0/+cOcQ0d2xO9jr3eWMKp0urIi
         iRPj3SZI7v0GguJC4fGCFOzwZE1QHKoAjaq82CvyWOfTJTnrHWNWVcJmi0sLoJx9ST3n
         GjlT6nc7e3X5yCLCDG+A+mI69KkR16ign8GPFYNlhi/URPvpiggQk04r1aap2qCMbgjA
         2fd957A+BzbWdRhwZziHnEr1pwN4VoNVS9HG+i0QbnxvRsuIX8XyNyOJEf2YAIJxznMa
         k9Pf9u/VaEMpIUe5XfEhec3WNZ5sI9DpzuAtSqeUrG8Dk0Ms1MqoMAd7cfgxtOOtP9RS
         EyOA==
X-Gm-Message-State: AOJu0YyOClQYE0PjdNp18/zsx2+pUrP+X/gtf9j2wD34rXnzJSJy7L/m
	Sgd7P6sB5o+oT1vcYXWDU98NYS8MhIhh363KYZg7fulEtLd4fc3DuwzT+w==
X-Google-Smtp-Source: AGHT+IHDWx1nXYPdxLyfvkTfAyLKK7f6pOn+xoTOyBXB5KxyUrI5mB8DUMy+kNWSES6Y2damQYffMA==
X-Received: by 2002:a05:6512:1108:b0:539:89a8:600f with SMTP id 2adb3069b0e04-53d862c7292mr9440390e87.23.1731349007279;
        Mon, 11 Nov 2024 10:16: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 0/3] Setup memory management for RISC-V
Date: Mon, 11 Nov 2024 19:16:41 +0100
Message-ID: <cover.1731344883.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Finish initializing the memory subsystem by mapping the direct map and
frame table.

The frametable_virt_start variable is introduced with substracting
of an offest ( taking into account that RAM start could be not 0 ) to save
virtual address space of FRAMETABLE. Also it simplifies the
calculations and thereby improves performance for page_to_mfn(), mfn_to_page()
as there is no frametable_base_pdx or frametable_base_mfn ( if CONFIG_PDX_COMPRESSION=n);

The directmap_virt_start is introduced and shifted lower in the VA space to
(DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
wasting a large portion of the directmap space, this also allows for simple
VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
(for Sv39; for other MMU mode boundaries will be bigger ) by masking the
higher bits of the RAM start address to enable the use of superpages in
map_pages_to_xen().

In addition, initialize the VMAP_DEFAULT region, finalize the boot allocator,
and update the system state from early_boot to boot.

Introduce share_xen_page_with_guest() to deal with linkage error which occurs
because of DCE:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

The function maddr_to_virt() is introduced as part of this patch series.

virt_to_maddr() is updated as it is started to use direct_virt_start which is
introduced in this patch series.

---
Changes in V5:
 - Rebase on top of current staging.
 - Drop unnecessary local variables.
 - Fix issue with virt_to_maddr() ( used DIRECTMAP_VIRT_START in if-condition
   instead of direct_virt_start ).
 - Update setup_directmap_mappings() and setup_frametable_mappings() ( details
   look in patch 1).
---
Changes in V4:
 - Rebase on top of current staging.
 - Fix issues with setup_frametable_mappings() and setup_directmap_mappings().
 - Drop unnecessary local variables.
 - Minor log messsages fixes.
---
Changes in V3:
 - Update the cover letter message as DIRECTMAP connected things were changed.
 - Update setup_mm(), setup_{directmap,frametable}_mappings.
 - Introduce ROUNDDOWN in <xen/macros.h>
 - All other details please look at the specific patch.
---
Changes in V2:
 - update the cover letter message.
 - merge first 3 patches to "introduce setup_mm()" patch as after setup_mm()
   rework all the things in first two patches of v1 started to use changes
   introduced in "introduce setup_mm()" patch.
 - add Acked-by for some patch series.
 - All other details please look at the specific patch.
---

Oleksii Kurochko (3):
  xen/riscv: introduce setup_mm()
  xen/riscv: initialize the VMAP_DEFAULT virtual range
  xen/riscv: finalize boot allocator and transition to boot state

 xen/arch/riscv/include/asm/mm.h    |  17 ++-
 xen/arch/riscv/include/asm/setup.h |   2 +
 xen/arch/riscv/mm.c                | 161 +++++++++++++++++++++++++++--
 xen/arch/riscv/pt.c                |   6 ++
 xen/arch/riscv/setup.c             |  14 +++
 xen/include/xen/macros.h           |   1 +
 6 files changed, 190 insertions(+), 11 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:17:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834092.1249600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAYyA-0008GC-A2; Mon, 11 Nov 2024 18:16:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834092.1249600; Mon, 11 Nov 2024 18:16: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 1tAYyA-0008G5-7N; Mon, 11 Nov 2024 18:16:58 +0000
Received: by outflank-mailman (input) for mailman id 834092;
 Mon, 11 Nov 2024 18:16: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=dX8x=SG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tAYy8-0007n0-R1
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:16:56 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20f0707b-a059-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 19:16:53 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-539e59dadebso5719633e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 10:16:53 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d82689a79sm1633691e87.109.2024.11.11.10.16.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 10:16: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: 20f0707b-a059-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzMiLCJoZWxvIjoibWFpbC1sZjEteDEzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIwZjA3MDdiLWEwNTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzQ5MDEzLjgwODQ0LCJzZW5kZXIiOiJvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731349012; x=1731953812; 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=JgqORlcpg64ySYXh6FxRpfRVBS9KMCCLF2MUu2biZLA=;
        b=g9B9BTDwtIW+oDi2iVirFl0VFf6FEKogZ9vnA6flUFzrgilMvG4j4w123BHODdajsp
         VOGTWV+O2amo0gDUFEyEiPrn6mTb7OxRE2Bp7/eLbjVFxEJwLA+7lpv2AJnsiRp+Nq27
         U7taX9BvZjxRBhQeCmQvoqKbUjAC+G72of4o845dw8VPHmDgQDh1G3oXILndmT6ThQtG
         9C7HBWmnbnll6nPjwjNR5M7izWEnJEvm8FUhjoosmwLaqmAAoT9joiQeRSt1VF/1XzE6
         ObDBNH+jz8E0g6bvo8tnqjd9QakE7aFE2TLGGvLmyaTU4qFmgXRuvjGh0DXCK4kWbVss
         laqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731349012; x=1731953812;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JgqORlcpg64ySYXh6FxRpfRVBS9KMCCLF2MUu2biZLA=;
        b=VXIDK6dqnyIcx4rTOP4LvE8yIZkmV6UAmb8dqj4uD5PuYrAKZRVcykvLcfMwSIphG5
         YTP/9XG9fe95VXiW3jN+etIUASXwW++V40H+vf7bSl8/0h61f1UHca+BkD34WBNGF8Is
         7y32NX9N12Uiio0uMV6ZXONVYj5ix3i5mDoH7sn+s/MOpu9XCUMKafGI/WV2sbUW0yyw
         B88WxKA2vVrt9lgQfS82Ax/l0OQPQUn2YgmZ4MNTZm8hEnCVUYuU0sTC+KRuU25e11aa
         X3ndb367vnNb4z9xTQlcIeVGzWkhc3OTcAKNiXneNxqjBUtA8hUbzxsXzGPtBj+MNZ2D
         LDzQ==
X-Gm-Message-State: AOJu0YxGi4YSWkUepTWjJX/5QnvlLxa+POfnYWSnXtjEQYtXpJHXqOzK
	9spkt/12omJHfPE4XomKHRSHwF7TVE0fK+uGguGSMEZWO1ZvOYK8aUxRLg==
X-Google-Smtp-Source: AGHT+IG5zqhURoni7z1+5HRgpM1aVCVgRw5ZCUFcOdV/hT1nbctoAPkaSZoTdEIyYL5wI/wWZA+KkQ==
X-Received: by 2002:a05:6512:3084:b0:539:e110:4d72 with SMTP id 2adb3069b0e04-53d862f381dmr5959400e87.56.1731349011743;
        Mon, 11 Nov 2024 10:16: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 2/3] xen/riscv: initialize the VMAP_DEFAULT virtual range
Date: Mon, 11 Nov 2024 19:16:43 +0100
Message-ID: <efc4aaf6345678543cddfb1dcbd6e001c062a868.1731344883.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731344883.git.oleksii.kurochko@gmail.com>
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Call vm_init() to initialize the VMAP_DEFAULT virtual range.

To support this, introduce the populate_pt_range() and
arch_vmap_virt_end() functions, which are used by
vm_init()->vm_init_type().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V5:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/mm.c    | 11 +++++------
 xen/arch/riscv/pt.c    |  6 ++++++
 xen/arch/riscv/setup.c |  3 +++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 0d2c352696..a282b363a4 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -351,12 +351,6 @@ void arch_dump_shared_mem_info(void)
     BUG_ON("unimplemented");
 }
 
-int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
-{
-    BUG_ON("unimplemented");
-    return -1;
-}
-
 int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
                               union add_to_physmap_extra extra,
                               unsigned long idx, gfn_t gfn)
@@ -573,3 +567,8 @@ void __init setup_mm(void)
     setup_frametable_mappings(ram_start, ram_end);
     max_page = PFN_DOWN(ram_end);
 }
+
+void *__init arch_vmap_virt_end(void)
+{
+    return (void *)(VMAP_VIRT_START + VMAP_VIRT_SIZE);
+}
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index cc5e2d3266..d62aceb36c 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/domain_page.h>
 #include <xen/errno.h>
+#include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
@@ -419,3 +420,8 @@ int map_pages_to_xen(unsigned long virt,
 
     return pt_update(virt, mfn, nr_mfns, flags);
 }
+
+int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
+{
+    return pt_update(virt, INVALID_MFN, nr_mfns, PTE_POPULATE);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 2887a18c0c..3652cb056d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
+#include <xen/vmap.h>
 
 #include <public/version.h>
 
@@ -62,6 +63,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     setup_mm();
 
+    vm_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:17:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834093.1249610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAYyB-0008VM-Go; Mon, 11 Nov 2024 18:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834093.1249610; Mon, 11 Nov 2024 18:16: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 1tAYyB-0008V8-Dt; Mon, 11 Nov 2024 18:16:59 +0000
Received: by outflank-mailman (input) for mailman id 834093;
 Mon, 11 Nov 2024 18:16: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=dX8x=SG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tAYy9-0007mr-Jx
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:16:57 +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 220166b6-a059-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 19:16:55 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-539fbe22ac0so4722516e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 10:16:55 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d82689a79sm1633691e87.109.2024.11.11.10.16.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 10: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: 220166b6-a059-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIyMDE2NmI2LWEwNTktMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzQ5MDE1LjU3ODMxOSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731349014; x=1731953814; 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=Mz2MW4exBDctQDRSrNhCcwZhjMjXlWzvBMCOW4yqM7c=;
        b=lzEomCibVf8rTChGX4xaXzBg5CzowKCjR06kvS6DDIkKYf6v7ZkhEApAQUJCIHIkBl
         FEEnxQ2wsZNYIkroIkI+oUsogCwJYr6VAwTAxdLO9ngstQ/jLfhKy3aaykRK2rZ1A+HD
         +dBjnY1c7PiHWTWf1soAhMecGuY+WtTEfIHj9BMzBAr0wZPYEdaBNo9QdbdG+Ix3CtJU
         ocgj6DezJQ7h36M4mNfzl4TekQ4EtJvFgS+F9aO1XenDrnEElO39XptVsyXhgw73zZj2
         G9mDwOY4h5wXBSqGTdoTOFoNVmwltsbHwFVE2kCpa1QuvRXrJ1yJcNx3P4Kmr8WMvqZ8
         QOfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731349014; x=1731953814;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Mz2MW4exBDctQDRSrNhCcwZhjMjXlWzvBMCOW4yqM7c=;
        b=XfJw7cvvZDo9olX/7vKF71qKXdzSk93vwKYpMtSc3iOxO3fpmSWlggGD1iDc34I3xm
         QDevJlEyrrI6P0y1kz8XWsk6PDUPjjSoNy0SA9wTaIE3upLeZE+LxXnOT76TWfcjC07X
         5Jtn4DqdkD2nkBXVC/XHYSsx7HhFSwXwDsK8qo0TENjm/ViyZ4ojnARQAWuQ+Db6nRrD
         TKWNtNJ6+NV9Nf0U8g47HuWEAybAb+IJPHjLJ9gMZE70ABo8+qd5OlW2rBLHmRSQ/DFa
         h/oAN4dE9nKUCkB0/qsREPVTbPkztamOtIPfmAni+GhBlOlhLAHJ18lpW8fU96jqHQ16
         3NCQ==
X-Gm-Message-State: AOJu0YwUIscxTk0mxJbGk8x9gDofEvULCuojOjazrfQdE2fjCUhLEj6r
	eMnslkYaYQuFTDtcms0EkcAllch41aiNaqzsO6/Imt4t+rPWKNHPGPajLg==
X-Google-Smtp-Source: AGHT+IFDR0V/wPJFTzqQVaxuZu86z59oTmoUUJlLL6N0pYGV2RhQ8c1JSwnyhJENtaq9fPLx48NmjQ==
X-Received: by 2002:a05:6512:2207:b0:53b:20a1:1c4a with SMTP id 2adb3069b0e04-53d862eea05mr6128215e87.42.1731349013843;
        Mon, 11 Nov 2024 10:16: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 3/3] xen/riscv: finalize boot allocator and transition to boot state
Date: Mon, 11 Nov 2024 19:16:44 +0100
Message-ID: <ff7f4f652337c8188ee531dc7b978cbfdb378cea.1731344883.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731344883.git.oleksii.kurochko@gmail.com>
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a call to end_boot_allocator() in start_xen() to finalize the
boot memory allocator, moving free pages to the domain sub-allocator.

After initializing the memory subsystem, update `system_state` from
`SYS_STATE_early_boot` to `SYS_STATE_boot`, signifying the end of the
early boot phase.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V5:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/setup.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 3652cb056d..9680332fee 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -65,6 +65,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     vm_init();
 
+    end_boot_allocator();
+
+    /*
+     * The memory subsystem has been initialized, we can now switch from
+     * early_boot -> boot.
+     */
+    system_state = SYS_STATE_boot;
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:17:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834095.1249620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAYyG-0000Sa-QD; Mon, 11 Nov 2024 18:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834095.1249620; Mon, 11 Nov 2024 18:17: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 1tAYyG-0000SR-ME; Mon, 11 Nov 2024 18:17:04 +0000
Received: by outflank-mailman (input) for mailman id 834095;
 Mon, 11 Nov 2024 18:17: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=dX8x=SG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tAYyE-0007n0-Px
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:17:02 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23e1687d-a059-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 19:16:58 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-53a007743e7so5717912e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 10:16:58 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d826a9e5asm1652142e87.225.2024.11.11.10.16.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Nov 2024 10:16: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: 23e1687d-a059-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmMiLCJoZWxvIjoibWFpbC1sZjEteDEyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIzZTE2ODdkLWEwNTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzQ5MDE4Ljc2Njk0Mywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731349018; x=1731953818; 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=gA7CVgc9PyiQqojqpTJ+sLU0fBsNohR7rU5rgE2PiCE=;
        b=TztTidPZM5FlR/wfx+mgj55O1Y+qtdFYUzsq+tBf8WvPSAkIH5aovzPgLtPqa1Qpha
         gkdax4xNsFCye+ghyKY3q/ZQeHgOR5p0je3J5+idsZb03iGi60GjkePdb1rvUH2Jd866
         xYVDaZ/YJJWllJSQjBGsEV1R2PzxwZOprSP6gWjojY835vDHnfgIlvDxKj5SlMcDup0j
         rGvgm1kMWjeFjUSyBVRieVkyZ9JcFMRAf45PvOgTi8RVcIEAtT1MV1YMOLPNRz9H9yca
         CpRpIrPntlivUoQGWMW3arfKTob7kxPKYR09/AiVYnNkiQp2otevgUKMkaXBjCsG+DrB
         SdIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731349018; x=1731953818;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gA7CVgc9PyiQqojqpTJ+sLU0fBsNohR7rU5rgE2PiCE=;
        b=epIQeiVbEFmKaol+AoYs5ww9227jr4BDdHHMjo2yn7lJZmSWg/2UcSQXxvXt2l5Vc4
         /ZrSULYFqniyRVkV8cWq25k6axOtKB/Ma4INvfr1ydQhoIUSCkDmLrn3qYW/9A41aGXK
         wfnpqeZeyBznf6h7JuBbrJxUzBnVDYWJrpMAOpzBwIkJTyeG0II9G66cAA0RVANSyN7v
         clS2C2nf4oAY+U78qQo4d6vc3N/h+zbgmJ0ur99dZKXzAWuqbE67fFI4iswLWamrQMGx
         9N8h5dqYXep5dhBdSdIMGzVRVM+fYLO78WgnDdmyKTFkASyFdYrzEpT/jTmdU5Bh31qe
         bRPA==
X-Gm-Message-State: AOJu0Yza87FH3+9Or2hJJdDa4enYa6lninayPwXyGURY9uyZGA20NwG7
	iTHabKHOaVgIAzlJHQ7f7+18ZK2EnaRfnWqEEVnHI+DJFVrSVE6F3SXBUQ==
X-Google-Smtp-Source: AGHT+IEJOOz+DTK6JeCXzCWvIC53nK8llhm1dwI8BHLIzt4merBfPOIi6sW+xlBLRaBNtiCENUIJeQ==
X-Received: by 2002:a05:6512:1107:b0:530:ae4a:58d0 with SMTP id 2adb3069b0e04-53d86228046mr6073637e87.8.1731349017647;
        Mon, 11 Nov 2024 10:16:57 -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>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [PATCH v2] drivers/char: rename arm-uart.c to uart-init.c
Date: Mon, 11 Nov 2024 19:16:55 +0100
Message-ID: <11b3d91cc7ff2435bca8cb0b841faaac54c3e796.1731345930.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rename the file containing uart_init() to enable reuse across other
architectures that utilize device trees or SPCR tables to locate UART
information.
After locating UART data, {acpi}_device_init() is called to initialize
the UART.

arm_uart_init() is renamed to uart_init() to be reused by other
architectures.

A new configuration option, CONFIG_UART_INIT, is introduced, currently
available only for Arm. Enabling CONFIG_UART_INIT on additional
architectures will require additional functionality, such as device tree
mapping and unflattening, etc.

The MAINTAINERS file is updated to alphabetically sort files in the
"ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE" section following
the renaming of arm-uart.c.

Add `select UART_INIT` for CONFIG_ARM to be sure that randconfig won't
disable UART_INIT.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
NOTE:
 I am not insisiting on having separate CONFIG_UART_INIT. If it would be fine
 just to have in xen/drivers/char/Makefile:
   obj-$(CONFIG_ARM) += uart-init.c 
   obj-$(CONFIG_RISCV) += uart-init.c

 I will be happy to send another one patch series version.
---
Changes in v2:
 - Rename arm-uart.c to uart-init.c instead of moving only dt_uart_init() to
   separate file.
 - Introduce new CONFIG_UART_INIT.
 - Rename arm_uart_init() to uart_init().
 - Add 'select UART_INIT' for CONFIG_ARM to be sure that randconfig won't
   disable UART_INIT.
 - Update the commit message.
---
 MAINTAINERS                  |   2 +-
 xen/arch/arm/Kconfig         |   1 +
 xen/arch/arm/setup.c         |   2 +-
 xen/drivers/char/Kconfig     |  11 +++
 xen/drivers/char/Makefile    |   2 +-
 xen/drivers/char/arm-uart.c  | 145 -----------------------------------
 xen/drivers/char/uart-init.c | 145 +++++++++++++++++++++++++++++++++++
 xen/include/xen/serial.h     |   2 +-
 8 files changed, 161 insertions(+), 149 deletions(-)
 delete mode 100644 xen/drivers/char/arm-uart.c
 create mode 100644 xen/drivers/char/uart-init.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 17fc5f9eec..a237080074 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -245,7 +245,6 @@ S:	Supported
 L:	xen-devel@lists.xenproject.org
 F:	docs/misc/arm/
 F:	xen/arch/arm/
-F:	xen/drivers/char/arm-uart.c
 F:	xen/drivers/char/cadence-uart.c
 F:	xen/drivers/char/exynos4210-uart.c
 F:	xen/drivers/char/imx-lpuart.c
@@ -254,6 +253,7 @@ F:	xen/drivers/char/mvebu-uart.c
 F:	xen/drivers/char/omap-uart.c
 F:	xen/drivers/char/pl011.c
 F:	xen/drivers/char/scif-uart.c
+F:	xen/drivers/char/uart-init.c
 F:	xen/drivers/passthrough/arm/
 F:	xen/include/public/arch-arm/
 F:	xen/include/public/arch-arm.h
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..e068497361 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -17,6 +17,7 @@ config ARM
 	select HAS_PASSTHROUGH
 	select HAS_UBSAN
 	select IOMMU_FORCE_PT_SHARE
+	select UART_INIT
 
 config ARCH_DEFCONFIG
 	string
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca..2e27af4560 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -361,7 +361,7 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
 
     gic_preinit();
 
-    arm_uart_init();
+    uart_init();
     console_init_preirq();
     console_init_ring();
 
diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index e175d07c02..343165feb4 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -93,6 +93,17 @@ config SERIAL_TX_BUFSIZE
 
 	  Default value is 32768 (32KiB).
 
+
+config UART_INIT
+	bool "UART initialization for DT and ACPI"
+	depends on ARM
+	default y
+	help
+	  Provides a generic method for locating UART device tree node when
+	  device tree is used, or for finding UART information in SPCR
+	  table when using ACPI. Once UART information is located,
+	  {acpi}_device_init() is called for UART-specific initialization.
+
 config XHCI
 	bool "XHCI DbC UART driver"
 	depends on X86
diff --git a/xen/drivers/char/Makefile b/xen/drivers/char/Makefile
index d3b987da1d..74dcde7e57 100644
--- a/xen/drivers/char/Makefile
+++ b/xen/drivers/char/Makefile
@@ -11,7 +11,7 @@ obj-$(CONFIG_HAS_EHCI) += ehci-dbgp.o
 obj-$(CONFIG_XHCI) += xhci-dbc.o
 obj-$(CONFIG_HAS_IMX_LPUART) += imx-lpuart.o
 obj-$(CONFIG_HAS_LINFLEX) += linflex-uart.o
-obj-$(CONFIG_ARM) += arm-uart.o
+obj-$(CONFIG_UART_INIT) += uart-init.o
 obj-y += serial.o
 obj-$(CONFIG_XEN_GUEST) += xen_pv_console.o
 obj-$(CONFIG_PV_SHIM) += consoled.o
diff --git a/xen/drivers/char/arm-uart.c b/xen/drivers/char/arm-uart.c
deleted file mode 100644
index 91f13a4136..0000000000
--- a/xen/drivers/char/arm-uart.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * xen/drivers/char/arm-uart.c
- *
- * Generic uart retrieved via the device tree or ACPI
- *
- * Julien Grall <julien.grall@linaro.org>
- * Copyright (c) 2013 Linaro Limited.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <asm/device.h>
-
-#include <xen/console.h>
-#include <xen/device_tree.h>
-#include <xen/param.h>
-#include <xen/serial.h>
-#include <xen/errno.h>
-#include <xen/acpi.h>
-
-/*
- * Configure UART port with a string:
- * path:options
- *
- * @path: full path used in the device tree for the UART. If the path
- * doesn't start with '/', we assuming that it's an alias.
- * @options: UART speficic options (see in each UART driver)
- */
-static char __initdata opt_dtuart[256] = "";
-string_param("dtuart", opt_dtuart);
-
-static void __init dt_uart_init(void)
-{
-    struct dt_device_node *dev;
-    int ret;
-    const char *devpath = opt_dtuart;
-    const char *options;
-    char *split;
-
-    if ( !console_has("dtuart") )
-        return; /* Not for us */
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
-
-        if ( chosen )
-        {
-            const char *stdout;
-
-            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
-            if ( ret >= 0 )
-            {
-                printk("Taking dtuart configuration from /chosen/stdout-path\n");
-                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
-                     >= sizeof(opt_dtuart) )
-                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
-            }
-            else if ( ret != -EINVAL /* Not present */ )
-                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
-        }
-    }
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        printk("No dtuart path configured\n");
-        return;
-    }
-
-    split = strchr(opt_dtuart, ':');
-    if ( split )
-    {
-        split[0] = '\0';
-        options = split + 1;
-    }
-    else
-        options = "";
-
-    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
-    if ( *devpath == '/' )
-        dev = dt_find_node_by_path(devpath);
-    else
-        dev = dt_find_node_by_alias(devpath);
-
-    if ( !dev )
-    {
-        printk("Unable to find device \"%s\"\n", devpath);
-        return;
-    }
-
-    ret = device_init(dev, DEVICE_SERIAL, options);
-
-    if ( ret )
-        printk("Unable to initialize dtuart: %d\n", ret);
-}
-
-#ifdef CONFIG_ACPI
-static void __init acpi_uart_init(void)
-{
-    struct acpi_table_spcr *spcr = NULL;
-    int ret;
-
-    acpi_get_table(ACPI_SIG_SPCR, 0, (struct acpi_table_header **)&spcr);
-
-    if ( spcr == NULL )
-    {
-        printk("Unable to get spcr table\n");
-    }
-    else
-    {
-        ret = acpi_device_init(DEVICE_SERIAL, NULL, spcr->interface_type);
-
-        if ( ret )
-            printk("Unable to initialize acpi uart: %d\n", ret);
-    }
-}
-#else
-static void __init acpi_uart_init(void) { }
-#endif
-
-void __init arm_uart_init(void)
-{
-    if ( acpi_disabled )
-        dt_uart_init();
-    else
-        acpi_uart_init();
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/drivers/char/uart-init.c b/xen/drivers/char/uart-init.c
new file mode 100644
index 0000000000..7f3b385308
--- /dev/null
+++ b/xen/drivers/char/uart-init.c
@@ -0,0 +1,145 @@
+/*
+ * xen/drivers/char/arm-uart.c
+ *
+ * Generic uart retrieved via the device tree or ACPI
+ *
+ * Julien Grall <julien.grall@linaro.org>
+ * Copyright (c) 2013 Linaro Limited.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <asm/device.h>
+
+#include <xen/console.h>
+#include <xen/device_tree.h>
+#include <xen/param.h>
+#include <xen/serial.h>
+#include <xen/errno.h>
+#include <xen/acpi.h>
+
+/*
+ * Configure UART port with a string:
+ * path:options
+ *
+ * @path: full path used in the device tree for the UART. If the path
+ * doesn't start with '/', we assuming that it's an alias.
+ * @options: UART speficic options (see in each UART driver)
+ */
+static char __initdata opt_dtuart[256] = "";
+string_param("dtuart", opt_dtuart);
+
+static void __init dt_uart_init(void)
+{
+    struct dt_device_node *dev;
+    int ret;
+    const char *devpath = opt_dtuart;
+    const char *options;
+    char *split;
+
+    if ( !console_has("dtuart") )
+        return; /* Not for us */
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
+
+        if ( chosen )
+        {
+            const char *stdout;
+
+            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
+            if ( ret >= 0 )
+            {
+                printk("Taking dtuart configuration from /chosen/stdout-path\n");
+                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
+                     >= sizeof(opt_dtuart) )
+                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
+            }
+            else if ( ret != -EINVAL /* Not present */ )
+                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
+        }
+    }
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        printk("No dtuart path configured\n");
+        return;
+    }
+
+    split = strchr(opt_dtuart, ':');
+    if ( split )
+    {
+        split[0] = '\0';
+        options = split + 1;
+    }
+    else
+        options = "";
+
+    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
+    if ( *devpath == '/' )
+        dev = dt_find_node_by_path(devpath);
+    else
+        dev = dt_find_node_by_alias(devpath);
+
+    if ( !dev )
+    {
+        printk("Unable to find device \"%s\"\n", devpath);
+        return;
+    }
+
+    ret = device_init(dev, DEVICE_SERIAL, options);
+
+    if ( ret )
+        printk("Unable to initialize dtuart: %d\n", ret);
+}
+
+#ifdef CONFIG_ACPI
+static void __init acpi_uart_init(void)
+{
+    struct acpi_table_spcr *spcr = NULL;
+    int ret;
+
+    acpi_get_table(ACPI_SIG_SPCR, 0, (struct acpi_table_header **)&spcr);
+
+    if ( spcr == NULL )
+    {
+        printk("Unable to get spcr table\n");
+    }
+    else
+    {
+        ret = acpi_device_init(DEVICE_SERIAL, NULL, spcr->interface_type);
+
+        if ( ret )
+            printk("Unable to initialize acpi uart: %d\n", ret);
+    }
+}
+#else
+static void __init acpi_uart_init(void) { }
+#endif
+
+void __init uart_init(void)
+{
+    if ( acpi_disabled )
+        dt_uart_init();
+    else
+        acpi_uart_init();
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 3d21207a3d..63a82b032d 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -166,7 +166,7 @@ void xhci_dbc_uart_init(void);
 static void inline xhci_dbc_uart_init(void) {}
 #endif
 
-void arm_uart_init(void);
+void uart_init(void);
 
 struct physdev_dbgp_op;
 int dbgp_op(const struct physdev_dbgp_op *op);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:46:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834138.1249653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAZQY-0008GQ-7V; Mon, 11 Nov 2024 18:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834138.1249653; Mon, 11 Nov 2024 18:46: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 1tAZQY-0008GJ-4p; Mon, 11 Nov 2024 18:46:18 +0000
Received: by outflank-mailman (input) for mailman id 834138;
 Mon, 11 Nov 2024 18:46: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAZQX-0008GD-7H
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:46:17 +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 37226c7a-a05d-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 19:46:09 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a9ec86a67feso841384466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 10:46:09 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0defafasm625939066b.142.2024.11.11.10.46.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 10:46: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: 37226c7a-a05d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM3MjI2YzdhLWEwNWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzUwNzY5LjE0MTQ3MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731350768; x=1731955568; 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=8xCsbe2GYL7JEUT+LV4R6IXXlRnYNXvVPJhGFkecZyM=;
        b=OHh7SpOk3nyhrNGRafJj8ooE4ckMWkmC5xr4nbSe+Unh2GGltQqYrLOjKU1VmCf262
         YnUwu+yK9b8z64QAj0k4VMiRtgGihu7vwo6mvXBHpIEDcu6jHRtdQPXLkbkSx2mNxqqV
         zTnLSDIlzHugRR2QHXVotCBQCw6SBevG1foz4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731350768; x=1731955568;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8xCsbe2GYL7JEUT+LV4R6IXXlRnYNXvVPJhGFkecZyM=;
        b=XCfmcmuG0zaoNrrW8yMdUsA5YQ+oF1BPiFsw7BL7qiqQjeUsN3DYgCrjK59dN+HObo
         n2hJAR97RdO8Zcmqt6qc/X/WX3ltfb+A5U072bW7wemPtq2y0oNLUDcGuQXMS5bdbVnI
         0jXwQxgPdNSqQdwJUPdPpN9ddgelBRvsFB3+n1W8CPKBLvaEHfY1m7cxd+1R+cYEtlKy
         GjOyZSPxKtYctDRF5EkeEeLX0pGdPdLudFFVOFxMZfkKEbZzaW6Ep92LW9i4/rL5UJZm
         F04G9QNReCoHfdcUhM+4xVHyJ6t8+/bpxJbIXFGoVtwOcoJ6xMtp2ZsMWSmRYDcUURYT
         9FUQ==
X-Forwarded-Encrypted: i=1; AJvYcCWmslciFjhBPnlKDU9OKCuEJyQ0gdH51rgT9oV+AewXaTbpqthTVS3L6Y+GTyeO9Pms6jRu7ahMDIM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWdaVYAogqngHoliV+mYEENX8jPlY8tI5FgVJAgHmtYjlgZWFl
	x+IWShO/44Ih8gkdHC8VIY7dDispkUoMTJFbxU8qpcmd05S0GnLZaUrmU3olRIo=
X-Google-Smtp-Source: AGHT+IEPbhHNEvG79E1DsP7C7SM0qcWwS6vpckKgd/ojHrGprTXNv9twGh3yyU8WmjnPVUY/zSzPZA==
X-Received: by 2002:a17:907:1c20:b0:a9d:e01c:470c with SMTP id a640c23a62f3a-a9ef001b432mr1415256766b.39.1731350768455;
        Mon, 11 Nov 2024 10:46:08 -0800 (PST)
Message-ID: <b8932f69-e50a-460a-9aac-d16f0d8de083@citrix.com>
Date: Mon, 11 Nov 2024 18:46:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V4 04/15] x86: Initialize mapcache for PV, HVM, and idle
 domains
To: Elias El Yandouzi <eliasely@amazon.com>, xen-devel@lists.xenproject.org
Cc: julien@xen.org, pdurrant@amazon.com, dwmw@amazon.com,
 Wei Wang <wawei@amazon.de>, Hongyan Xia <hongyxia@amazon.com>,
 Julien Grall <jgrall@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
 <20241111131148.52568-5-eliasely@amazon.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241111131148.52568-5-eliasely@amazon.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2024 1:11 pm, Elias El Yandouzi wrote:
> From: Wei Liu <wei.liu2@citrix.com>
>
> To support the transition away from the direct map, the mapcache will now
> be used by HVM and idle domains as well. This patch lifts the `mapcache`
> to the arch level and moves its initialization earlier in
> `arch_domain_create()` to cover PV, HVM, and idle domains.

This part of the commit message is a correct description of how the
logic wants to end up, but ...


> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 92263a4fbdc5..a7f4929b5893 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -738,6 +738,11 @@ struct domain *domain_create(domid_t domid,
>  
>      rangeset_domain_initialise(d);
>  
> +#ifdef CONFIG_X86
> +    if ( (err = mapcache_domain_init(d)) != 0)
> +        goto fail;
> +#endif
> +
>      if ( is_idle_domain(d) )
>          arch_init_idle_domain(d);
>  
> @@ -820,6 +825,10 @@ struct domain *domain_create(domid_t domid,
>      ASSERT(err < 0);      /* Sanity check paths leading here. */
>      err = err ?: -EILSEQ; /* Release build safety. */
>  
> +#ifdef CONFIG_X86
> +    free_perdomain_mappings(d);
> +#endif
> +
>      d->is_dying = DOMDYING_dead;
>      if ( hardware_domain == d )
>          hardware_domain = old_hwdom;

... this is not what the commit message says.

These should be implemented as per the commit message. i.e. living in
arch_*() functions, not ifdef'd in common code.

If there are not arch functions in the right places, we can make the
appear.Â  It looks like arch_init_idle_domain() needs to grow a failure
case, but that seems to be the extent of the changes needed in order to
move these calls into arch-specific code.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 18:54:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 18:54:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834148.1249664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAZYE-0002B7-0e; Mon, 11 Nov 2024 18:54:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834148.1249664; Mon, 11 Nov 2024 18:54: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 1tAZYD-0002B0-Tf; Mon, 11 Nov 2024 18:54:13 +0000
Received: by outflank-mailman (input) for mailman id 834148;
 Mon, 11 Nov 2024 18:54: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=0YFU=SG=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tAZYC-0002Au-VH
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 18:54:13 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2009::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 52c9f761-a05e-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 19:54:06 +0100 (CET)
Received: from PH7PR03CA0026.namprd03.prod.outlook.com (2603:10b6:510:339::11)
 by MW4PR12MB7016.namprd12.prod.outlook.com (2603:10b6:303:218::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 18:54:00 +0000
Received: from SA2PEPF000015C8.namprd03.prod.outlook.com
 (2603:10b6:510:339:cafe::80) by PH7PR03CA0026.outlook.office365.com
 (2603:10b6:510:339::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29 via Frontend
 Transport; Mon, 11 Nov 2024 18:54:00 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 11 Nov 2024 18:54:00 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 11 Nov
 2024 12:53:59 -0600
Received: from [172.30.86.253] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 11 Nov 2024 12:53:58 -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: 52c9f761-a05e-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjBmIiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUyYzlmNzYxLWEwNWUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzUxMjQ2LjA5NTg2MSwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kD6vH3hJ4dMyf9Go6dJqRWxocqxdXIO/VBE8QaMk4O6JTV+HCzITsUaWY5bNHFsnKxnpsfenx+ArdAK5JSAoriJXJd4fZ9pfJnEMABxTgC8PQVTxqT4/yR7N0QNKROlyY+K5+1PnI89+8gAMMWMOVaspqdg4yJjtP///TKYp3mNCFiyJZuuUkDT7UxjJ/droql6Exd5w34iAFBd+KfLhADda1lmMU3wqKmcSfYQfE6JUe8t+fdWzPg1RdrUbGPdDrUgSV8QhQB8yoHzM5uXMlTDgRtj6tSgJMt5tgPi6rOq8yV6H9HVmMK9fRrN9SV1sMOeazKxIoAz8ggslyKRXpQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=40CTrPbLByU5cW5JIeCveCntVxwqRoVn2WY30irMCLM=;
 b=A0smZ5UISnrzJ7Rtw8mjKeelU/FaQxnNjY/Zs9Wi7MyP/dGq1YcwOM1BWjyzEI6wBMA630P9yuY8B8nCI/P8ccAMkXU4HatHm6U6IB8+jVslEMui/3qfc4pJCVbA6IKXcVw3G081GPDY0LwZtJrel99exMfYhZyUnrRnz3Qw1bGnnB9bYIHkFqWpjJfGw+67gLNMQQVEePJZ1oqh8VxpvKBULWss4O73eyNsW5Y7HR/DceKNUT/a3r5VWcQW3gRDc5hJxJZrP/cCHRpj/twV6l0VJpm5VchwV0A8CRy1f6n8OjCAP7sq+AnZNObvmhrOwJr8yw/JTjIZ0ch3pJ5Z5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.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=40CTrPbLByU5cW5JIeCveCntVxwqRoVn2WY30irMCLM=;
 b=nGgrVxEzLzQkIrsw4go8/1dA0nD8G6ULJEm1eWc8YaI5Ra3AU0+2uq6OmjJuaWIZh8oZEJ3ojaiHHkdNzhDrUapYGl2MuPqKHXbfFP1c9DNxQrc3ke40IBskLIpEOJSJqSWUTiXC08X2TCGE2eOWsQk1bNFlztP4aK4uuIt5OYM=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <567f142a-55d2-4d4a-999d-d8b63e4882e3@amd.com>
Date: Mon, 11 Nov 2024 13:53:53 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [QEMU PATCH v10] xen/passthrough: use gsi to map pirq when dom0
 is PVH
To: Jiqian Chen <Jiqian.Chen@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Paul
 Durrant" <paul@xen.org>, "Edgar E . Iglesias" <edgar.iglesias@gmail.com>
CC: <qemu-devel@nongnu.org>, <xen-devel@lists.xenproject.org>, Huang Rui
	<ray.huang@amd.com>
References: <20241106061418.3655304-1-Jiqian.Chen@amd.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20241106061418.3655304-1-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015C8:EE_|MW4PR12MB7016:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f6e1520-2835-4b68-965f-08dd02823454
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?S0VickcyNlk1ZWNWVi9kL3hpVzRlUFFYOU9aOG9SQW5wUmswd3IvZEphQTVC?=
 =?utf-8?B?QXFvcGRvczJrcHVNbndEMS9vd3dZTGpHVzZzSU8yY1dyQVJmWk9mSjZwbnl5?=
 =?utf-8?B?RVpkRkcxZ2o5YTJQb2JMYUloTURrdVd5MG84WUlZYjRTeWoyanV6R2M3QUZ1?=
 =?utf-8?B?cmUxQ0RBSStVaytmcTNkVjBqNGtSRTdVV0M4eWRJVW82NmQxL1UwZFN1M1hn?=
 =?utf-8?B?Rk9FZDdobXIxbWpNMXBnRDVoMFNiSDR2MmVNOVEwMDVGTUlnRmRyNldzY1VY?=
 =?utf-8?B?OHlBRkFwZE9PMXllK3JlWFh3U2VVN0dmYjdmSDBPQW5XdmplaHhuQmpOaSs2?=
 =?utf-8?B?cUFpSHpOQWdrZ1VLalppR1JDU0dDeHdQeWE1MmE1TWRRamREZkY2T0JPZTUr?=
 =?utf-8?B?Z1gwV1V1emZZTGQ5TVhWOHBMZWRyaFAxbDJzNVBZQkpuT3dndDBwTWdhVzF3?=
 =?utf-8?B?OE9JaGxCcFVwQUNzaXZtcVlRak9aRm5TQXhjdFBhSU1wa2dDRzE0Y3BMNEF1?=
 =?utf-8?B?Q21STXlHcklaeWpzMWVoZlNEWEVSZkNJakVJR3N4Q3JaUUhmeE9JTkRiN213?=
 =?utf-8?B?bEpDNTRMOW1WZys5ZE91dGJVR0dFeC93anZjQzl6R1I2aVEyUlc4MFZoSElm?=
 =?utf-8?B?dVM2c0FEY0g0TlJsSTFoU0FLcGNQTHNNaWZmZk15ckVGVDNtTHowVmxXT3U1?=
 =?utf-8?B?OUVPNXIxc2d3VERPYVhQcDFhUi9qMEk0a2Z5S3NCM2hZd3VHdTBXZnI2UzdP?=
 =?utf-8?B?Y3hQOFgxT2V6V211RzZpaktlRGZFNlRjdmJNQ1hyRGZYUkF4RmFsSlpYTEoy?=
 =?utf-8?B?NFEzQnFUUFdlczFKeGRHeTVhSHg3MjkrbU9UaDF1eW82c05CUVl4WVN3RHM3?=
 =?utf-8?B?NTJ1TCsyQ2dQSTArSTk1bFRuUGZXMlE2cXB0MStRc1pWMDJPTmpFR09NWGlV?=
 =?utf-8?B?V1RBdnlQSFdjNzYzdDNRZzFoRlVqVERHOVhGczVDVmxOSkI3UjRGbHJYQmp2?=
 =?utf-8?B?NEVXOHNCZEI1VXRyam81S1ZKZGE2S0p0QWZ4NzRKS1VaVHp3eXJnYW5hQURQ?=
 =?utf-8?B?cnExOThjbEJiL3A3WjNoQnp4c1FIUG5sOWtpWDBKbkxqcFdscjQ2bUJ0UG1v?=
 =?utf-8?B?T0g0R3R4bFJIM05CRzRuQVM3dTJYTWw3ZWNTMEhWV1RrZTlHQVdPUkxjYVpL?=
 =?utf-8?B?QWdVeXZIcFppMTBPZlhOQlZOM3F3N1hWelFpd3dQNGtRQWpXa1BpYm1qd2tk?=
 =?utf-8?B?cTZCak94dXJITnIvRVpxVWNndmtMRjdsWVNzK2hRWmlMdWFUOVpCeDdUOHJh?=
 =?utf-8?B?VDRteTZuUkF0N2hGejNHUTZyKzJIYVBrb0QrZ09TcEpBL21IQWlWeFNlM1B6?=
 =?utf-8?B?OUhUUXlzN3BXbFgvTlJiVGxnVEtXRThZYThGS3dlVG0xSUJ6d2RkaU1rNU5Z?=
 =?utf-8?B?dEtkbjE4bFVrOExxVDRPMkxzaElKNTMrRzhPNlpMVFpMN2p0UG56d2dpWUh5?=
 =?utf-8?B?by9uUzJHanI0djFDZEx3OUdlakN5VXZ2d25wUnpMMTNCNzk2NVFlODFKWitM?=
 =?utf-8?B?VEF0VUVZbFhRclhPaFUrQUlYcXVWNnA3cURpb1R1VkRxOWNqaHp1ZzZPbFRo?=
 =?utf-8?B?bDNWcEUvd2pheVFjRGpNVy8vNUR2YWRjaDAvSFZObTRxcjFhSkY5N01uZkRw?=
 =?utf-8?B?SExOVitBdENRelZubWNuak9jOEtaU3prdDlYb2t0V1pPc2Yyb3FFOGNZOW1j?=
 =?utf-8?B?V3BsS1VDUG1NZzg4eGlmZ3gwYWo3UVNob2dxcmkwY3NWT1B1V0Yxb0kyVU9S?=
 =?utf-8?B?dkhQSitiRjBIOENtMmFPbGJyQ25seS9tbGZJQlUxZnkyOW8vYVdaczBVNjk3?=
 =?utf-8?B?eDFCYWhGMjM4UlhzR1MyZmt0bG9MVThEQ1IvWStzbHRKZUE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 11 Nov 2024 18:54:00.2502
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f6e1520-2835-4b68-965f-08dd02823454
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=[SATLEXMB04.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: MW4PR12MB7016

On 11/6/24 01:14, Jiqian Chen wrote:
> In PVH dom0, when passthrough a device to domU, QEMU code
> xen_pt_realize->xc_physdev_map_pirq wants to use gsi, but in current codes
> the gsi number is got from file /sys/bus/pci/devices/<sbdf>/irq, that is
> wrong, because irq is not equal with gsi, they are in different spaces, so
> pirq mapping fails.
> 
> To solve above problem, use new interface of Xen, xc_pcidev_get_gsi to get
> gsi and use xc_physdev_map_pirq_gsi to map pirq when dom0 is PVH.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 19:03:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 19:03:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834175.1249749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAZh0-00059R-MV; Mon, 11 Nov 2024 19:03:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834175.1249749; Mon, 11 Nov 2024 19:03: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 1tAZh0-00059K-Jr; Mon, 11 Nov 2024 19:03:18 +0000
Received: by outflank-mailman (input) for mailman id 834175;
 Mon, 11 Nov 2024 19:03: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=mW2F=SG=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAZgz-00059E-82
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 19:03:17 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 989e473a-a05f-11ef-99a3-01e77a169b0f;
 Mon, 11 Nov 2024 20:03:11 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9aa8895facso913704266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Nov 2024 11:03:11 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a18872sm628446066b.11.2024.11.11.11.03.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Nov 2024 11:03: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: 989e473a-a05f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk4OWU0NzNhLWEwNWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzUxNzkxLjYzMDYwMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731351791; x=1731956591; 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=hcn3we831zpxplpf2/dfDCbDYk0zqZWM9RDxlTs+6NY=;
        b=GYHXdlHqHyCl8xR/DAbRSq3m4lkj29CYlwuPbFoZQ4WyBYEUDMBNPVPCR3rr5miE9m
         5xriKiBfYCW2baIIV+ZZUg9TSm5v4hBG5oHLl14Sr+94bTZnbc/uMcVJuAJ77y4tXC9+
         FIhQ7QQd53nIcVfno2hOCf3bXhKOgfcPgEUA8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731351791; x=1731956591;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hcn3we831zpxplpf2/dfDCbDYk0zqZWM9RDxlTs+6NY=;
        b=f55Wxb9r7NwXxohBLk94lE1Boo0ti0VgpvoqVUQcJuO3zmoNCmj9DptZTRDMGbeJNf
         +qtGWvOXl3ujjEE+VBSZ2AuBjJGCPmiZt2mDTxUCLW3ETYyq2tkCEUsJarlOwP5i7N6z
         arikuh3zsyU+GpmiKiPuTd49lJMxCo0gkajn/BzC3bfbTklwgUcQ65+mPtixTVbaHCN1
         x0AjJVNrgeP+dDxbynfDb9JOk9GLflC7CbulaG7rO8yblpG++x+xGLIMh6yomJTeGsJn
         X81J+quypXJKnNGJ3buv1Jg7mE/xKEyRfBXkkWU+0m9nu5nrn3V43y47ABbQ0/jmOe8m
         O0Lg==
X-Forwarded-Encrypted: i=1; AJvYcCUtiKc2xydhsoyId867U1K+vCzaYRLn7Ay6pr4PQ8aHiiFwISpPEXK2HUgix53EmOPfCUHkVISA2Nw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGoCM+iBS6YIW/wfu16utlVQzZOCv5DwFlPiz7ihczO1dqfSMF
	n0/hz/S5C7ZQdKrJocZ0bv09lAYaTlU3KY8YPen+SJHU8YvnU95duy2Vh9B+DmEDUmq2A2qWTbJ
	v
X-Google-Smtp-Source: AGHT+IGADKlunvxaruzte1NqTcWAMkL3OwHYfFPzJdJWtO0ssfGAd12Q47KDWvC18mkNj/lXMuszaw==
X-Received: by 2002:a17:907:ea7:b0:a9e:733f:eaf6 with SMTP id a640c23a62f3a-a9eefe9bbcfmr1368409266b.6.1731351791014;
        Mon, 11 Nov 2024 11:03:11 -0800 (PST)
Message-ID: <f6973275-0d7e-4db4-b949-f21e530e1dfc@citrix.com>
Date: Mon, 11 Nov 2024 19:03:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V4 00/15] Remove the directmap
To: Elias El Yandouzi <eliasely@amazon.com>, xen-devel@lists.xenproject.org
Cc: julien@xen.org, pdurrant@amazon.com, dwmw@amazon.com
References: <20241111131148.52568-1-eliasely@amazon.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241111131148.52568-1-eliasely@amazon.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/11/2024 1:11 pm, Elias El Yandouzi wrote:
> Hongyan Xia (8):
>   x86: Create per-domain mapping for guest_root_pt
>   x86/pv: Rewrite how building PV dom0 handles domheap mappings
>   x86: Add a boot option to enable and disable the direct map
>   x86/domain_page: Remove the fast paths when mfn is not in the
>     directmap
>   xen/page_alloc: Add a path for xenheap when there is no direct map
>   x86/setup: Leave early boot slightly earlier
>   xen/page_alloc: vmap heap nodes when they are outside the direct map
>   x86/setup: Do not create valid mappings when directmap=no
>
> Julien Grall (5):
>   xen/x86: Add support for the PMAP
>   xen/arm32: mm: Rename 'first' to 'root' in init_secondary_pagetables()
>   xen/arm64: mm: Use per-pCPU page-tables
>   xen/arm64: Implement a mapcache for arm64
>   xen/arm64: Allow the admin to enable/disable the directmap
>
> Wei Liu (2):
>   x86/pv: Use copy_domain_page() to manage domheap pages during initrd
>     relocation
>   x86: Initialize mapcache for PV, HVM, and idle domains

There are rather a lot of build failures somewhere in this series:

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1536969743

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 11 20:08:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Nov 2024 20:08:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834209.1249836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAahO-00076O-RX; Mon, 11 Nov 2024 20:07:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834209.1249836; Mon, 11 Nov 2024 20: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 1tAahO-00076H-O0; Mon, 11 Nov 2024 20:07:46 +0000
Received: by outflank-mailman (input) for mailman id 834209;
 Mon, 11 Nov 2024 20:07: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=0YFU=SG=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tAahM-00076A-Nc
 for xen-devel@lists.xenproject.org; Mon, 11 Nov 2024 20:07:44 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2413::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97b0d974-a068-11ef-a0c6-8be0dac302b0;
 Mon, 11 Nov 2024 21:07:36 +0100 (CET)
Received: from CH2PR03CA0010.namprd03.prod.outlook.com (2603:10b6:610:59::20)
 by SA1PR12MB6824.namprd12.prod.outlook.com (2603:10b6:806:25f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Mon, 11 Nov
 2024 20:07:30 +0000
Received: from CH2PEPF00000099.namprd02.prod.outlook.com
 (2603:10b6:610:59:cafe::c1) by CH2PR03CA0010.outlook.office365.com
 (2603:10b6:610:59::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Mon, 11 Nov 2024 20:07:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000099.mail.protection.outlook.com (10.167.244.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 11 Nov 2024 20:07:30 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 11 Nov
 2024 14:07:29 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 11 Nov
 2024 14:07:28 -0600
Received: from [172.30.86.253] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 11 Nov 2024 14:07:28 -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: 97b0d974-a068-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjJlIiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk3YjBkOTc0LWEwNjgtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxMzU1NjU2Ljk1NjAyNywic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lwxUNNhSpMZVJJe9zgS8fhjxwqov4YSvYOH6HPIyJjlfmSjNT7WqYDUlfbDDMaRXmYsQI8oG5YTLVBopG2mx4JiLR733wcbOUh3xuU5QlIdt5j8EF87VFR3/N52bIvo9ra+mysJIXjShi8sEYwAFtppJVSbuDO7R7Ib7RMFHafd7Ry70FaeFj1wqFeiPwBs2Tt3767hHbI0xCDibJwX544nuLzdaMNfZZ6X/1ZMUJFCb5STSC/Z/HPFS/pwzJf/n+rOAMP4+GVAe+kvP9m7DF9sDYgu7CF+RsrxrVX/rBsRSaljhVo6W9WOWbXqA2g0cRuJBWA4gsv8jnchsalcj6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GnJ9+w4Ov1p9IQ2w2FJK4S7TT8CcvFCcO9vMgt4Ceu4=;
 b=cYBNoVNIKsP2vEhO3RiPdaScl7O5Dyl7sV/tuUtg76uW7EjLDmLYGGIRzfQ7+iI+CdUu3vprnWDxMPtkbL91rthVOPkbDb7lkB8cKmgDsPMhAvGMotAHb4D25oVxTTkqKgne0HreOJNZITDvpPlaDEWIPlipwD7c3/DR0/8lPEsV0kPJv0zaSnwNsMZPbpnxt21PrNdo7jJtadpRv2c69wL3cSkWrIxV+Ys6qItyTcykWsex+5L02W0LziLtURmvWiLGG7GX9i0o6RQWbIvTUvD9ww6+a3vEiNsVUNMQJE80sFkc56MP62JWDQsNuv7GXbKsNl+hfJz19tEha2sJMA==
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=GnJ9+w4Ov1p9IQ2w2FJK4S7TT8CcvFCcO9vMgt4Ceu4=;
 b=zEtjiWlXyS8/jqYz9/3ePK4Svo+uEf+ei0IEQWuRvQ+FsdLUwWkerEI6HY+xnZjqknkeJYW7NAAap4DyRalLnSPhHyWKeIo29GLB3wxcz8tLYdMhVKG2wVlcR2g6PZGDzO1+b0LjmBRxB13RXaRhvsM6IB4uhbwjw/ytda5OPw4=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <b3f9a4a4-112b-4d58-afca-bc88ea2b1e11@amd.com>
Date: Mon, 11 Nov 2024 15:07:28 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <Zx_a57npsdRhLgYr@macbook>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <Zx_a57npsdRhLgYr@macbook>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF00000099:EE_|SA1PR12MB6824:EE_
X-MS-Office365-Filtering-Correlation-Id: af954720-0f1a-4072-5ab1-08dd028c7909
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?Q3NDTG9SOThvZEwvazhoK3gzN1dud3IyMk5JV2lzTHBmd21wL09BSUc2OWZj?=
 =?utf-8?B?Zjc5bStvb3h1akNsd2hoZkVlT0dnVzJURE5TWTFGNW04b3ZkQnZQTC9JODJL?=
 =?utf-8?B?b05tZTRaRFliZ3hqNzQ0bVhSS21HVThOSXJOcTY2ZjhLSFNvQUdjZWs0UTZs?=
 =?utf-8?B?ZklpNU9XdmhSOWxaZnFQYlUySzhGQ25DemxHV09ybXdSdzJkZ01rdmVab2F3?=
 =?utf-8?B?NCtTS3hPbVBMNDZEakl6aFBTdzYvUzBLNEpDSG9oNFN3ZXozbkNNdGxFTCtk?=
 =?utf-8?B?M1BxcE0rWWZjWlJvVG1DOGxScm9SV2NXUTcwdFRCcnVzVTNwdEVVMXNxVVdi?=
 =?utf-8?B?Zmc1R2ZaNVo5NkhpbTBpRzBqQnlreEtRLzlQTitmblRUeGo2MFF2cGVRT2RZ?=
 =?utf-8?B?cW5FU0FNcVJTUlFTMUtmN1FvWXFuaGRlYkpidHNJNzY3cDlKWmJTek9BOEJU?=
 =?utf-8?B?bU1KOFBpb3ZiajdjakpHVlhLaHkxbzlXUXIxQWkvRWxESUluNWZwTFpEKzh3?=
 =?utf-8?B?TVdmSFprbTJubkhLVHFYaFFMODdEMFpVbk1ud0xkM3JVUFQxWkY3NVNKRmVF?=
 =?utf-8?B?SStETXJ0SWZRRTM4MjFoMGZuMTJyZG5pMW1BcXIydHRYaWtBM2JydVdGbDEy?=
 =?utf-8?B?M2l6K3pmUmljN0g4ZFg2akxIWjlISXRtcCt2d2ZLYmFRTG5tWkVINWQ3Vmc2?=
 =?utf-8?B?N2xOWkJwNnpyOEdoMWN6RWhCcFMzWC9wc0JJMlkraE1qdW9vMlBJM3NxUFVk?=
 =?utf-8?B?aDU3bFhzN0htbFF0ODJzeW5CRzdEL0pORWcwWm1qL0s2b0FiZzBtSW1iWG0y?=
 =?utf-8?B?b25UVkdielZNdHRoSUhUbWJCM2NJdzJKRDhxRnhRNkF1KzVYOW5mMHl3Znlq?=
 =?utf-8?B?K0pVVGVWQno5RVFwU1FkUllhQnJORU1tZGlJOWFOTU14Qk9CNTNKY000YW5V?=
 =?utf-8?B?ZnhrWGVFakpJNURuNUJLVURqbG54cDBqblVGQTlxa3pjZjNEbGJ6OEVEeVF3?=
 =?utf-8?B?TCs1dDFEbHZzVnlZWGRWdWZrcHg3V3ZLdmJCSUdCdlV4NzdQTHlqZmJSb2o1?=
 =?utf-8?B?cjFYdVp1aFRHcFRPTHNxMVNtN0ZTb0pIK29KMnp2Y3dVTytiOTIzWmV5TjFG?=
 =?utf-8?B?M1hyakNDUExFZ3hLTmFCSkJqWXoyN2lzb3UyNFgzRlVacTQ2UjVSaXJkdklZ?=
 =?utf-8?B?TUEzREtIQ2Q3Ynp0WndjenBGVmhNanJqTnVsdDhraTc2OENHNXJZamE4QURY?=
 =?utf-8?B?RWJSdHllTmZFTlVDU0RCRVlRRDNiNmUvTDlJZXJLNXRCVWg0NDFJSDhWVGth?=
 =?utf-8?B?VllmMVExdDI1c2RCKzNHR043QkJjRjZPV3lmMDFFTVlMU1FGTy9XeHkrYlVT?=
 =?utf-8?B?cUcyWXpQS0RYQVFPRTh5ZWcxT3lIeFZTTnFQV2pUa2d2UnRnNEk3akdLYXNO?=
 =?utf-8?B?cUJlUUVtZzY3MlcxN0NLYVVMQmxiK2pZejZRWmw2WlRYK0pRVi9ZVEowbW55?=
 =?utf-8?B?NUZ1NmJQdXdId2lmeCtDR3VrViswUW83NXFWZVB0VUk0ejNkcEp6Tm5PN29G?=
 =?utf-8?B?L2JLMlhsalhCaHNVYmdFdUpTMVV4S3pWNnJRdndmK0d1cFZMS2NSV2lTWEtG?=
 =?utf-8?B?RkJuZ0duNkUwbCtmOEhDRWxwWUFCMGo3QUJBZEFINERjekNQY3NkMVdyeUpF?=
 =?utf-8?B?c09FRmpLVy8wOXIrbjdGSzl3Q0w3MmYvN2hxMEw2aXduRFRra0RwaEgrMFor?=
 =?utf-8?B?a0d4b3EydnZXczk0UVJaZ3UxOXl2bU9JY1Y0S2x5VVFsTnhTZXhDb1ZCVm5a?=
 =?utf-8?B?NHJtYmV1cGF6VGNHUDluUURBZFloQmxRSlNWWHlQbmR0WkRUbVhNRW9hdTA1?=
 =?utf-8?B?L1lkeFFzRnVSQWpldXh2dm45aVBWdEM3UXZmbyt2Wm9oRFE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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 Nov 2024 20:07:30.3624
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: af954720-0f1a-4072-5ab1-08dd028c7909
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF00000099.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6824

On 10/28/24 14:41, Roger Pau MonnÃ© wrote:
> On Fri, Oct 18, 2024 at 04:39:09PM -0400, Stewart Hildebrand wrote:
>> Add links between a VF's struct pci_dev and its associated PF struct
>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
>> dropping and re-acquiring the pcidevs_lock().
>>
>> During PF removal, unlink VF from PF and mark the VF broken. As before,
>> VFs may exist without a corresponding PF, although now only with
>> pdev->broken = true.
>>
>> The hardware domain is expected to remove the associated VFs before
>> removing the PF. Print a warning in case a PF is removed with associated
>> VFs still present.
>>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> ---
>> Candidate for backport to 4.19 (the next patch depends on this one)
>>
>> v5->v6:
>> * move printk() before ASSERT_UNREACHABLE()
>> * warn about PF removal with VFs still present
>> * clarify commit message
>>
>> v4->v5:
>> * new patch, split from ("x86/msi: fix locking for SR-IOV devices")
>> * move INIT_LIST_HEAD(&pdev->vf_list); earlier
>> * collapse struct list_head instances
>> * retain error code from pci_add_device()
>> * unlink (and mark broken) VFs instead of removing them
>> * const-ify VF->PF link
>> ---
>>  xen/drivers/passthrough/pci.c | 76 ++++++++++++++++++++++++++++-------
>>  xen/include/xen/pci.h         | 10 +++++
>>  2 files changed, 72 insertions(+), 14 deletions(-)
>>
>> diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
>> index 74d3895e1ef6..fe31255b1207 100644
>> --- a/xen/drivers/passthrough/pci.c
>> +++ b/xen/drivers/passthrough/pci.c
>> @@ -333,6 +333,8 @@ static struct pci_dev *alloc_pdev(struct pci_seg *pseg, u8 bus, u8 devfn)
>>      *((u8*) &pdev->devfn) = devfn;
>>      pdev->domain = NULL;
>>  
>> +    INIT_LIST_HEAD(&pdev->vf_list);
>> +
>>      arch_pci_init_pdev(pdev);
>>  
>>      rc = pdev_msi_init(pdev);
>> @@ -449,6 +451,10 @@ static void free_pdev(struct pci_seg *pseg, struct pci_dev *pdev)
>>  
>>      list_del(&pdev->alldevs_list);
>>      pdev_msi_deinit(pdev);
>> +
>> +    if ( pdev->info.is_virtfn && pdev->virtfn.pf_pdev )
> 
> Shouldn't having pdev->info.is_virtfn set already ensure that
> pdev->virtfn.pf_pdev != NULL?

In the current rev, the possibility exists, however unlikely, that a
*buggy* dom0 may remove the PF before removing the VFs. In this case a
VF would exist without a corresponding PF, and thus pdev->virtfn.pf_pdev
is NULL.

For the next rev, you're right, it'll be back to the situation where a
VF can only exist with an associated PF.

>> +        list_del(&pdev->vf_list);
>> +
>>      xfree(pdev);
>>  }
>>  
>> @@ -656,24 +662,11 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>>      unsigned int slot = PCI_SLOT(devfn), func = PCI_FUNC(devfn);
>>      const char *type;
>>      int ret;
>> -    bool pf_is_extfn = false;
>>  
>>      if ( !info )
>>          type = "device";
>>      else if ( info->is_virtfn )
>> -    {
>> -        pcidevs_lock();
>> -        pdev = pci_get_pdev(NULL,
>> -                            PCI_SBDF(seg, info->physfn.bus,
>> -                                     info->physfn.devfn));
>> -        if ( pdev )
>> -            pf_is_extfn = pdev->info.is_extfn;
>> -        pcidevs_unlock();
>> -        if ( !pdev )
>> -            pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
>> -                           NULL, node);
>>          type = "virtual function";
>> -    }
>>      else if ( info->is_extfn )
>>          type = "extended function";
>>      else
>> @@ -703,7 +696,44 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>>           * extended function.
>>           */
>>          if ( pdev->info.is_virtfn )
>> -            pdev->info.is_extfn = pf_is_extfn;
>> +        {
>> +            struct pci_dev *pf_pdev;
> 
> This could be const?

No, as we are doing this below:
    list_add(&pdev->vf_list, &pf_pdev->vf_list);

>> +
>> +            pf_pdev = pci_get_pdev(NULL,
>> +                                   PCI_SBDF(seg, info->physfn.bus,
>> +                                            info->physfn.devfn));
> 
> You can probably initialize at declaration?

OK

>> +
>> +            if ( !pf_pdev )
> 
> Is this even feasible during correct operation?

No, I don't think so.

> IOW: shouldn't the PF
> always be added first, so that SR-IOV can be enabled and the VFs added
> afterwards?

Yes, I think you're right.

> I see previous code also catered for VFs being added without the PF
> being present, so I assume there was some need for this.

This is exactly the source of the confusion on my part. In the removal
path, the consensus seems to be that removing a PF with VFs still
present indicates an error. Then shouldn't the opposite also be true?
Adding a VF without a PF should also indicate an error.

I see the PF-adding logic was added in 942a6f1376d8 ("x86/PCI-MSI:
properly determine VF BAR values"). Searching the mailing list archives
didn't reveal much about it [0].

[0] https://lore.kernel.org/xen-devel/4E3FC6E102000078000501CA@nat28.tlf.novell.com/

The only time I've observed this path being taken is by manually
calling PHYSDEVOP_pci_device_add. I've resorted to calling
PHYSDEVOP_pci_device_{remove,add} from userspace in order to test this,
because the Linux kernel doesn't behave this way.

I can't think of a good rationale for catering to VFs being added
without a PF, so I'll turn it into an error for the next rev.

>> +            {
>> +                ret = pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
>> +                                     NULL, node);
>> +                if ( ret )
>> +                {
>> +                    printk(XENLOG_WARNING "Failed to add SR-IOV device PF %pp for VF %pp\n",
> 
> Could you split this to make the line a bit shorter?
> 
>                        printk(XENLOG_WARNING
> 		              "Failed to add SR-IOV device PF %pp for VF %pp\n",
> 
> Same below.
> 
>> +                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
>> +                           &pdev->sbdf);
>> +                    free_pdev(pseg, pdev);
>> +                    goto out;
>> +                }
>> +                pf_pdev = pci_get_pdev(NULL,
>> +                                       PCI_SBDF(seg, info->physfn.bus,
>> +                                                info->physfn.devfn));
>> +                if ( !pf_pdev )
>> +                {
>> +                    printk(XENLOG_ERR "Failed to find SR-IOV device PF %pp for VF %pp\n",
>> +                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
>> +                           &pdev->sbdf);
> 
> If you want to add an error message here, I think it should mention
> the fact this state is not expected:
> 
> "Inconsistent PCI state: failed to find newly added PF %pp for VF %pp\n"
> 
>> +                    ASSERT_UNREACHABLE();
>> +                    free_pdev(pseg, pdev);
>> +                    ret = -EILSEQ;
>> +                    goto out;
>> +                }
>> +            }
>> +
>> +            pdev->info.is_extfn = pf_pdev->info.is_extfn;
>> +            pdev->virtfn.pf_pdev = pf_pdev;
>> +            list_add(&pdev->vf_list, &pf_pdev->vf_list);
>> +        }
>>      }
>>  
>>      if ( !pdev->info.is_virtfn && !pdev->vf_rlen[0] )
>> @@ -821,6 +851,24 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
>>      list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
>>          if ( pdev->bus == bus && pdev->devfn == devfn )
>>          {
>> +            if ( !pdev->info.is_virtfn )
> 
> Given we have no field to mark a device as a PF, we could check that
> pdev->vf_list is not empty, and by doing so the warn_stale_vfs
> variable could be dropped?
> 
> if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
> {
>     struct pci_dev *vf_pdev;
> 
>     while ( (vf_pdev = list_first_entry_or_null(&pdev->vf_list,
>                                                 struct pci_dev,
> 						vf_list)) != NULL )
>     {
>         list_del(&vf_pdev->vf_list);
>         vf_pdev->virtfn.pf_pdev = NULL;
>         vf_pdev->broken = true;
>     }
> 
>     printk(XENLOG_WARNING "PCI SR-IOV PF %pp removed with VFs still present\n",
>            &pdev->sbdf);
> }

Yeah. Given that the consensus is leaning toward keeping the PF and
returning an error, here's my suggestion:

    if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
    {
        struct pci_dev *vf_pdev;

        list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list)
            vf_pdev->broken = true;

        pdev->broken = true;

        printk(XENLOG_WARNING
               "Attempted to remove PCI SR-IOV PF %pp with VFs still present\n",
               &pdev->sbdf);

        ret = -EBUSY;
        break;
    }

>> +            {
>> +                struct pci_dev *vf_pdev, *tmp;
>> +                bool warn_stale_vfs = false;
>> +
>> +                list_for_each_entry_safe(vf_pdev, tmp, &pdev->vf_list, vf_list)
>> +                {
>> +                    list_del(&vf_pdev->vf_list);
>> +                    vf_pdev->virtfn.pf_pdev = NULL;
>> +                    vf_pdev->broken = true;
>> +                    warn_stale_vfs = true;
>> +                }
>> +
>> +                if ( warn_stale_vfs )
>> +                    printk(XENLOG_WARNING "PCI SR-IOV PF %pp removed with VFs still present\n",
>> +                           &pdev->sbdf);
>> +            }
>> +
>>              if ( pdev->domain )
>>              {
>>                  write_lock(&pdev->domain->pci_lock);
>> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
>> index ef56e80651d6..2ea168d5f914 100644
>> --- a/xen/include/xen/pci.h
>> +++ b/xen/include/xen/pci.h
>> @@ -153,7 +153,17 @@ struct pci_dev {
>>          unsigned int count;
>>  #define PT_FAULT_THRESHOLD 10
>>      } fault;
>> +
>> +    /*
>> +     * List head if info.is_virtfn == false
>> +     * List entry if info.is_virtfn == true
>> +     */
>> +    struct list_head vf_list;
>>      u64 vf_rlen[6];
>> +    struct {
>> +        /* Only populated for VFs (info.is_virtfn == true) */
> 
> All comments here (specially the first ones) would better use PF and
> VF consistently, rather than referring to other fields in the struct.
> Specially because the fields can change names and the comments would
> then become stale.

OK

>> +        const struct pci_dev *pf_pdev;        /* Link from VF to PF */
>> +    } virtfn;
> 
> I'm unsure you need an outer virtfn struct, as it's only one field in
> this patch?  Maybe more fields gets added by further patches?

Right. There are no more fields to be added, so there's no need. It was
leftover from a previous rev when vf_list was split.

> 
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 02:16:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 02:16:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834225.1249845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAgSL-0006zo-Re; Tue, 12 Nov 2024 02:16:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834225.1249845; Tue, 12 Nov 2024 02:16: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 1tAgSL-0006zh-PA; Tue, 12 Nov 2024 02:16:37 +0000
Received: by outflank-mailman (input) for mailman id 834225;
 Tue, 12 Nov 2024 02:16: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=xuV+=SH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tAgSK-0006zb-Fc
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 02:16:36 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20fd25ea-a09c-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 03:16:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id F3F8F5C4FF8;
 Tue, 12 Nov 2024 02:15:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C013C4CECF;
 Tue, 12 Nov 2024 02:16: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: 20fd25ea-a09c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjIwZmQyNWVhLWEwOWMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxMzc3NzkxLjQzMTI3OSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731377789;
	bh=oa1+xHpcMHV73zocEiwaawaRlGbG5b1JrM0uKndQVss=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=e8o9oCMRn2KDj9tkRXimJrap3nzbwg7q8ajdcLN4Lidn9iLmtWyiTXjK2OFPvUfA0
	 WvIamApK4pyH03OsN9EM+Qf5Lmui3DcYzadXBdLp+kkT5C6TPE/saUgm4K0QP9zyOR
	 d+JsTU7a9ontmdmSp/NBNlY8nk1D54CWjXrB63bqt6fnX8vdFHqmxHgz5vGK7KsO7p
	 bgxYoo2Pk5IreMVo3X1Lf8aCbYWOcIlwbHbyVjMKJmtkdlzDYX6+D1ebAEnnFh4Fkm
	 qZAA3OfCoGLCdGL4Xmy6OqCtdnQu9UJkbogTj41ub3jhT0FT+oWlnqhE6bkpWLaP8r
	 F397XV3+M7wUw==
Date: Mon, 11 Nov 2024 18:16: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: Stefano Stabellini <sstabellini@kernel.org>, 
    Federico Serafini <federico.serafini@bugseng.com>, consulting@bugseng.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 1/3] x86/emul: define pseudo keyword fallthrough
In-Reply-To: <57d407cf-3f3a-43f6-9aa4-05cac5b50c46@suse.com>
Message-ID: <alpine.DEB.2.22.394.2411111816210.14721@ubuntu-linux-20-04-desktop>
References: <cover.1730880832.git.federico.serafini@bugseng.com> <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@bugseng.com> <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com> <alpine.DEB.2.22.394.2411101820430.14721@ubuntu-linux-20-04-desktop>
 <57d407cf-3f3a-43f6-9aa4-05cac5b50c46@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 11 Nov 2024, Jan Beulich wrote:
> On 11.11.2024 03:24, Stefano Stabellini wrote:
> > On Wed, 6 Nov 2024, Jan Beulich wrote:
> >> On 06.11.2024 10:04, Federico Serafini wrote:
> >>> The pseudo keyword fallthrough shall be used to make explicit the
> >>> fallthrough intention at the end of a case statement (doing this
> >>> through comments is deprecated).
> >>>
> >>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> >>> ---
> >>>  xen/arch/x86/x86_emulate/x86_emulate.h | 10 ++++++++++
> >>>  1 file changed, 10 insertions(+)
> >>
> >> When you had asked my privately on Matrix, I specifically said: "Adding
> >> the pseudo-keyword to x86-emulate.h (not x86_emulate.h) is probably best,
> >> unless problems with that approach turn up." Even if identical re-
> >> definitions are deemed fine, I for one consider such bad practice. Yet
> >> by playing with this file (and outside of any relevant #ifdef) means
> >> there will be such a re-definition when building Xen itself.
> >>
> >> In fact the patch subject should also already clarify that the auxiliary
> >> definition is only needed for the test and fuzzing harnesses.
> > 
> > Hi Jan, I don't understand this comment.
> > 
> > You say "playing with this file (and outside of any relevant #ifdef)"
> > but actually the changes are within the #ifndef
> > __X86_EMULATE_H__/#endif. What do you mean?
> 
> "relevant" was specifically to exclude the guard #ifdef. And the remark
> was to avoid the #define to merely be moved into or framed by an
> "#ifndef __XEN__".
> 
> > You say "Adding the pseudo-keyword to x86-emulate.h (not x86_emulate.h)
> > is probably best". I am not very familiar with x86-isms but the only
> > x86-emulate.h I can find is ./tools/tests/x86_emulator/x86-emulate.h
> > which is not a header that would help define anything for the Xen build?
> 
> But that's the whole point: We _have_ "fallthrough" as a pseudo-keyword
> already for the Xen build. For it to be usable in the emulator files, it
> particularly needs to be made available for the test and fuzzing
> harnesses. And that without interfering with what the Xen build has.
> Hence why it wants to go into precisely that file, where all other build
> compatibility definitions also live.

OK. So if I get this right, we need the below instead of patch #1 in
this series?


diff --git a/tools/tests/x86_emulator/x86-emulate.h b/tools/tests/x86_emulator/x86-emulate.h
index 00abc829b0..380eb8abff 100644
--- a/tools/tests/x86_emulator/x86-emulate.h
+++ b/tools/tests/x86_emulator/x86-emulate.h
@@ -233,4 +233,14 @@ void emul_test_put_fpu(
     enum x86_emulate_fpu_type backout,
     const struct x86_emul_fpu_aux *aux);
 
+/*
+ * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
+ * the end of a case statement.
+ */
+#if (!defined(__clang__) && (__GNUC__ >= 7))
+# define fallthrough        __attribute__((__fallthrough__))
+#else
+# define fallthrough        do {} while (0)  /* fallthrough */
+#endif
+
 #endif /* X86_EMULATE_H */


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 09:02:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 09:02:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834243.1249856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAmnG-0000pO-63; Tue, 12 Nov 2024 09:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834243.1249856; Tue, 12 Nov 2024 09:02: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 1tAmnG-0000pH-2N; Tue, 12 Nov 2024 09:02:38 +0000
Received: by outflank-mailman (input) for mailman id 834243;
 Tue, 12 Nov 2024 09:02: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=yVpr=SH=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tAmnE-0000oo-OL
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 09:02:36 +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 da263b82-a0d4-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 10:02:32 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9a850270e2so985095966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 01:02:32 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2f731sm699363766b.189.2024.11.12.01.02.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 01:02: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: da263b82-a0d4-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRhMjYzYjgyLWEwZDQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDAyMTUyLjc0OTgzNywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731402152; x=1732006952; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Zfy5GCQpL7A1GMHosyPm4UUsKkMSgQopCUzLanqVz1Y=;
        b=fZM20EmtJNaePU0NVlCCiKm4RsOyLT2/1pKpdF8a2jzzr31NnEdYs3EATzwxC97f9k
         AjRo7Y/Z/2OzVg84H8VhmBSK84Kd9FzAYKW7vIuLTjU1eXG2Pea991YqoBOajLDpeI7U
         z0h19O7yIS/vUxTkas9Ar2ax7ahRXucmbpBBY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731402152; x=1732006952;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Zfy5GCQpL7A1GMHosyPm4UUsKkMSgQopCUzLanqVz1Y=;
        b=hJkc5xh4wat3Q1ZNSOsjT27hiT2gX1jIe31lB4wLtYsgE+AoVXdzeCQ8aAc4cbs5WX
         UVuG5OuMSboaFWOytfYQBEMM8e6G5NKjadxldNMBfESwkmytNE1C1QJPzpirJHXMr1+F
         YgNDsE3kgvOE509Nr8tMq/7/ahFAJxQAXfsVyzehXEzFQ1nyn8hsKxMv+7VfhNv8AGe0
         yYydAL9Us6SEVZCmzl7hnS+ok6cpHjuLeoe1cDL4WLCg6Ed3wbm9t5BBShy1ouIwdVWk
         aQy0maaen6ekyXVh07khGJDA35b8WhDCSkV8nohgED8oKNs8gjbcUB1BMI9jxUKcvaEG
         ZxRg==
X-Gm-Message-State: AOJu0YyJqACo6jdUB1Ip6Pjgjf2RsavlGuRgVwWM1BSuy/fYd3KMiZa8
	UWXGd3lkb0NDFhvlxa6OK6moU180FbfIzWDlCoMpLFNXQ60fvq7MP09CSafbzQI=
X-Google-Smtp-Source: AGHT+IGtps191cWNcNQ+rX8aWqRGISb5S18YbHN7DbmFwrmVXVLdPA/x5AX9s4x9Dwvn+IAayylTMw==
X-Received: by 2002:a17:907:961f:b0:a9a:82e2:e8ce with SMTP id a640c23a62f3a-a9eeffeda48mr1383691566b.40.1731402151978;
        Tue, 12 Nov 2024 01:02:31 -0800 (PST)
Date: Tue, 12 Nov 2024 10:02:30 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
Message-ID: <ZzMZpg3FCyc4SW4z@macbook>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <Zx_a57npsdRhLgYr@macbook>
 <b3f9a4a4-112b-4d58-afca-bc88ea2b1e11@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b3f9a4a4-112b-4d58-afca-bc88ea2b1e11@amd.com>

On Mon, Nov 11, 2024 at 03:07:28PM -0500, Stewart Hildebrand wrote:
> On 10/28/24 14:41, Roger Pau MonnÃ© wrote:
> > On Fri, Oct 18, 2024 at 04:39:09PM -0400, Stewart Hildebrand wrote:
> > IOW: shouldn't the PF
> > always be added first, so that SR-IOV can be enabled and the VFs added
> > afterwards?
> 
> Yes, I think you're right.
> 
> > I see previous code also catered for VFs being added without the PF
> > being present, so I assume there was some need for this.
> 
> This is exactly the source of the confusion on my part. In the removal
> path, the consensus seems to be that removing a PF with VFs still
> present indicates an error. Then shouldn't the opposite also be true?
> Adding a VF without a PF should also indicate an error.
> 
> I see the PF-adding logic was added in 942a6f1376d8 ("x86/PCI-MSI:
> properly determine VF BAR values"). Searching the mailing list archives
> didn't reveal much about it [0].
> 
> [0] https://lore.kernel.org/xen-devel/4E3FC6E102000078000501CA@nat28.tlf.novell.com/
> 
> The only time I've observed this path being taken is by manually
> calling PHYSDEVOP_pci_device_add. I've resorted to calling
> PHYSDEVOP_pci_device_{remove,add} from userspace in order to test this,
> because the Linux kernel doesn't behave this way.
> 
> I can't think of a good rationale for catering to VFs being added
> without a PF, so I'll turn it into an error for the next rev.

Maybe there's a case for a device to be discovered with SR-IOV already
enabled (ie: when booting in kexec like environments), but then I
would still expect the OS to first add the PF and afterwards the VFs.
Otherwise I'm not even sure whether the OS would be capable of
identifying the VFs as such.

> >> +                    ASSERT_UNREACHABLE();
> >> +                    free_pdev(pseg, pdev);
> >> +                    ret = -EILSEQ;
> >> +                    goto out;
> >> +                }
> >> +            }
> >> +
> >> +            pdev->info.is_extfn = pf_pdev->info.is_extfn;
> >> +            pdev->virtfn.pf_pdev = pf_pdev;
> >> +            list_add(&pdev->vf_list, &pf_pdev->vf_list);
> >> +        }
> >>      }
> >>  
> >>      if ( !pdev->info.is_virtfn && !pdev->vf_rlen[0] )
> >> @@ -821,6 +851,24 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
> >>      list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
> >>          if ( pdev->bus == bus && pdev->devfn == devfn )
> >>          {
> >> +            if ( !pdev->info.is_virtfn )
> > 
> > Given we have no field to mark a device as a PF, we could check that
> > pdev->vf_list is not empty, and by doing so the warn_stale_vfs
> > variable could be dropped?
> > 
> > if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
> > {
> >     struct pci_dev *vf_pdev;
> > 
> >     while ( (vf_pdev = list_first_entry_or_null(&pdev->vf_list,
> >                                                 struct pci_dev,
> > 						vf_list)) != NULL )
> >     {
> >         list_del(&vf_pdev->vf_list);
> >         vf_pdev->virtfn.pf_pdev = NULL;
> >         vf_pdev->broken = true;
> >     }
> > 
> >     printk(XENLOG_WARNING "PCI SR-IOV PF %pp removed with VFs still present\n",
> >            &pdev->sbdf);
> > }
> 
> Yeah. Given that the consensus is leaning toward keeping the PF and
> returning an error, here's my suggestion:
> 
>     if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
>     {
>         struct pci_dev *vf_pdev;
> 
>         list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list)
>             vf_pdev->broken = true;
> 
>         pdev->broken = true;

Do you need to mark the devices as broken?  My expectation would be
that returning -EBUSY here should prevent the device from being
removed, and hence there would be no breakage, just failure to fulfill
the (possible) hot-unplug request.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 09:05:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 09:05:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834252.1249865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAmq9-0001Np-I5; Tue, 12 Nov 2024 09:05:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834252.1249865; Tue, 12 Nov 2024 09:05: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 1tAmq9-0001Ni-FS; Tue, 12 Nov 2024 09:05:37 +0000
Received: by outflank-mailman (input) for mailman id 834252;
 Tue, 12 Nov 2024 09:05: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=yVpr=SH=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tAmq7-0001NK-Tq
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 09:05:35 +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 45127668-a0d5-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 10:05:32 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-aa1e51ce601so44914466b.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 01:05:32 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2eaa2sm691313066b.195.2024.11.12.01.05.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 01:05: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: 45127668-a0d5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ1MTI3NjY4LWEwZDUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDAyMzMyLjA3OTIwOSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731402331; x=1732007131; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=p2Oe+0oLPuzRuu8iJ/pJNcyNCi8OAncpgQMAKJPUyCI=;
        b=sWpxDuXPfo6LGZkCiVVWmGbCFr5dzTI6qLbnD57Xj2H7jP+IgtgHC3dE6riHBeynOi
         ZjKkv3DBidjIoKo1jhBKZLr7yEDQn9IAG7UYkCooBtZlb1kSUxz9UB7Oa5zSRLnEYHxi
         nSbM52dGnJsRQzdw0DqUaY84sr6NBK5zaGEiY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731402331; x=1732007131;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=p2Oe+0oLPuzRuu8iJ/pJNcyNCi8OAncpgQMAKJPUyCI=;
        b=HNiltq/lL7+5mm47xPpkM+6CJRRQgbub9HAf0wEh9+Nin3wbrgJL3c/IvjkVNNrigO
         LIapqjlfKJ4XM9jvfSBn3sT83uol7WOc0g4t90A1Msade2x51FXGRuf7Ya82WvmdKO/E
         kJ9Cqwi+6hCkrMPVi5df7fC/7HQt05UXvjnwIAjVe1uZWtZV/hgGtbXsKlLtl/bx69AZ
         gBivGHOXfO+sL8600qXZx1iMEz1vz3TwLLbOQDUHizrnsN8o9jj9m8P/v/G7v1dsosxJ
         mCAypfy4h1HMe91F9r9kKUtbOCYBNbKS1aYrrjC9oM8iynyaO9rcp6lY0RoLvyPJJu0h
         ZLxw==
X-Forwarded-Encrypted: i=1; AJvYcCXlqxKfvkHJ4Cu6ZLYstylMCZIh2CLb3lltFtZuuPlOZoaEcIKjOfxbPCALKg7jiQhTXuXM7qeW02k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YytIv9xRlVc5nEPGDbLGM2xUTbhPRdRakjOg+c9nUdY7KWjyGfz
	Jyj2HWdv0OhHxiWKX0z6NmSKzHPuLVN+NuiVGA6t4U8MzpTJSsxOVKkj6F8+5Sg=
X-Google-Smtp-Source: AGHT+IF02QkQ/fx+vl6b5WaTrlR2lMLPgTWw2RmcBwhOAxKnpN52ogaFMGG3lRDCtexsGMTuRtDM2g==
X-Received: by 2002:a17:907:c12:b0:a7a:9144:e23a with SMTP id a640c23a62f3a-a9eeffeeea6mr1746803566b.43.1731402331422;
        Tue, 12 Nov 2024 01:05:31 -0800 (PST)
Date: Tue, 12 Nov 2024 10:05:30 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
Message-ID: <ZzMaWlGYStnh1FM9@macbook>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <56b5a45b-871d-41a4-8e1d-74d72020054f@suse.com>
 <9ab19f1b-0dee-490e-b4f6-b07e6ae6223b@amd.com>
 <9625de28-f05b-4317-89cf-d1fe843a43a8@suse.com>
 <D5GT0NR29WEF.216KE5GCTH1TL@cloud.com>
 <39b2a334-1298-4e83-b7b7-393c79964539@suse.com>
 <Zy4sG915LicXNmIV@macbook>
 <ec9dd718-ef25-4a23-8080-8081ef2facb9@amd.com>
 <479d7430-ca30-4d72-b636-b47e5a2356f4@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <479d7430-ca30-4d72-b636-b47e5a2356f4@suse.com>

On Mon, Nov 11, 2024 at 07:40:14AM +0100, Jan Beulich wrote:
> On 08.11.2024 17:29, Stewart Hildebrand wrote:
> > On 11/8/24 10:19, Roger Pau MonnÃ© wrote:
> >> On Fri, Nov 08, 2024 at 02:17:40PM +0100, Jan Beulich wrote:
> >>> On 08.11.2024 13:42, Alejandro Vallejo wrote:
> >>>> On Mon Nov 4, 2024 at 7:44 AM GMT, Jan Beulich wrote:
> >>>>> On 01.11.2024 21:16, Stewart Hildebrand wrote:
> >>>>>> +Daniel (XSM mention)
> >>>>>>
> >>>>>> On 10/28/24 13:02, Jan Beulich wrote:
> >>>>>>> On 18.10.2024 22:39, Stewart Hildebrand wrote:
> >>>>>>>> Add links between a VF's struct pci_dev and its associated PF struct
> >>>>>>>> pci_dev. Move the calls to pci_get_pdev()/pci_add_device() down to avoid
> >>>>>>>> dropping and re-acquiring the pcidevs_lock().
> >>>>>>>>
> >>>>>>>> During PF removal, unlink VF from PF and mark the VF broken. As before,
> >>>>>>>> VFs may exist without a corresponding PF, although now only with
> >>>>>>>> pdev->broken = true.
> >>>>>>>>
> >>>>>>>> The hardware domain is expected to remove the associated VFs before
> >>>>>>>> removing the PF. Print a warning in case a PF is removed with associated
> >>>>>>>> VFs still present.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >>>>>>>> ---
> >>>>>>>> Candidate for backport to 4.19 (the next patch depends on this one)
> >>>>>>>>
> >>>>>>>> v5->v6:
> >>>>>>>> * move printk() before ASSERT_UNREACHABLE()
> >>>>>>>> * warn about PF removal with VFs still present
> >>>>>>>
> >>>>>>> Hmm, maybe I didn't make this clear enough when commenting on v5: I wasn't
> >>>>>>> just after an adjustment to the commit message. I'm instead actively
> >>>>>>> concerned of the resulting behavior. Question is whether we can reasonably
> >>>>>>> do something about that.
> >>>>>>
> >>>>>> Right. My suggestion then is to go back to roughly how it was done in
> >>>>>> v4 [0]:
> >>>>>>
> >>>>>> * Remove the VFs right away during PF removal, so that we don't end up
> >>>>>> with stale VFs. Regarding XSM, assume that a domain with permission to
> >>>>>> remove the PF is also allowed to remove the VFs. We should probably also
> >>>>>> return an error from pci_remove_device in the case of removing the PF
> >>>>>> with VFs still present (and still perform the removals despite returning
> >>>>>> an error). Subsequent attempts by a domain to remove the VFs would
> >>>>>> return an error (as they have already been removed), but that's expected
> >>>>>> since we've taken a stance that PF-then-VF removal order is invalid
> >>>>>> anyway.
> >>>>>
> >>>>> Imo going back is not an option.
> >>>>>
> >>>>>> While the above is what I prefer, I just want to mention other options I
> >>>>>> considered for the scenario of PF removal with VFs still present:
> >>>>>>
> >>>>>> * Increase the "scariness" of the warning message added in v6.
> >>>>>>
> >>>>>> * Return an error from pci_remove_device (while still removing only the
> >>>>>> PF). We would be left with stale VFs in Xen. At least this would
> >>>>>> concretely inform dom0 that Xen takes issue with the PF-then-VF removal
> >>>>>> order. Subsequent attempts by a domain to remove VFs, however
> >>>>>> (un)likely, would succeed.
> >>>>>
> >>>>> Returning an error in such a case is a possibility, but comes with the
> >>>>> risk of confusion. Seeing such an error, a caller may itself assume the
> >>>>> device still is there, and retry its (with or without having removed the
> >>>>> VFs) removal at a later point.
> >>>>>
> >>>>>> * Return an error from pci_remove_device and keep the PF and VFs. This
> >>>>>> is IMO the worst option because then we would have a stale PF in
> >>>>>> addition to stale VFs.
> >>
> >> I'm thinking probably this is the least bad option, and just force the
> >> owner of the PF to ensure there are no VFs left when removing the PF.
> >>
> >> What sense does it make anyway to allow removing a PF with VFs still
> >> present?  Not sure exactly what the owner of the PF will do before
> >> calling pci_remove_device(), but it would seem to me the device should
> >> be ready for unplug (so SR-IOV disabled).  Calling pci_remove_device()
> >> with VFs still active points to an error to do proper cleanup by the
> >> owner of the PF.
> > 
> > In normal, correct operation, right. The PF driver is indeed expected to
> > disable SR-IOV (i.e. remove VFs) during its removal, prior to calling
> > PHYSDEVOP_pci_device_remove for the PF.
> > 
> >> Returning error from pci_remove_device() and doing nothing would seem
> >> fine to me.  There should be no stale PF or VFs in that case, as the
> >> caller has been notified the device has failed to be removed, so
> >> should treat the device as still present.
> 
> Imo really that's another case that would best be addressed by proper
> ref-counting. Each VF would hold a ref to its PF, and hence the PF would
> go away when the last VF is removed, or when PF removal is (properly)
> last. Just that this likely is too complex a change to be warranted for
> the purpose here.
> 
> > But software has no way to guarantee there won't be a physical device
> > removal.
> > 
> > In test scenario #2 described in the first patch [1], the PF (the whole
> > device, actually) has already been physically unplugged, and dom0
> > invokes PHYSDEVOP_pci_device_remove to inform Xen about it.
> 
> I don't think that's how it's supposed to work. Physical removal should
> occur only after software has done all "soft removal". I'd view the
> notification to Xen as part of that.

That would be my expectation also, albeit IIRC we had other instances
where the calling of the removal hypercall was not done in a vetoing
manner by Linux, so it was mostly a notification that the device was
going away, rather than a request for permission to removal.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 09:35:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 09:35:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834263.1249876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAnJE-0005PL-Pb; Tue, 12 Nov 2024 09:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834263.1249876; Tue, 12 Nov 2024 09:35: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 1tAnJE-0005PE-MT; Tue, 12 Nov 2024 09:35:40 +0000
Received: by outflank-mailman (input) for mailman id 834263;
 Tue, 12 Nov 2024 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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAnJC-0005P8-I6
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 09:35:38 +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 775d3776-a0d9-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 10:35:34 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4315e9e9642so45177465e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 01:35: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-432b054ad23sm199944225e9.13.2024.11.12.01.35.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 01:35: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: 775d3776-a0d9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc3NWQzNzc2LWEwZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDA0MTM0LjQ3MjQ2MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731404134; x=1732008934; 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=WitM66RSknAhNK+Jov9TP6YQcF84j3HUyRaPkLrO9k8=;
        b=RNw/Wce6jcgrwlsdpfC+ifgupewjVcto4TMtsaoLpFRb7pnER5h67dl/CvXht0aVYm
         n4GnjYpPFEpX23rbKnj+DUrQOC0V9tpWJ/vstik+KIVTdpEEzBT82xQiB79PYHQDtpkJ
         aJOqUWYQtyn3PCsnvcMH4ej+qVAb+kyguAm5mLsQHcSnjyew9Z3AoQjoGmUObvzTl02K
         EuvYkz2pBxRmNJVy/mROw/bJPfHhUyUljKhSo9xu5YFNa+7x86x7YG805K3hAPY467du
         NYPpb62jg7qA1tmyUN2Qjs9LU4DeT+9n8QO5QDt1mbXEoFaxw6p3QQNPxz1RUbofwFwn
         i62Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731404134; x=1732008934;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WitM66RSknAhNK+Jov9TP6YQcF84j3HUyRaPkLrO9k8=;
        b=PkYKzSryk7//5KLrrutN0Q89BsWswEh95CdqO86yw2w96UHrRDYO7xkUhG8m0ytZ7n
         mke1Thf541+xMRr9RsZqcWXyRlo52h6ifWXJ+Bd13ow03AdMKm7cmF4OzH8hK2krRTKs
         9H+WGgjf50QetonWtlsMEkH11TCEkgRchgDwiHR6NEhUxuDN5n4STlj9zYoTmd34/uD0
         UxGVkz125AUdaZtewDmpw/fBRhgiG7zfjtsXhpBiB3hNwhK748x5A7fF5pzU9WVYDYun
         yfIlWTC0vhlf1EFVd9KJk7zef/AFSMIXMJKozLIbshMFIDmYgOSvsMQ7/zQRMXg0d0oK
         EJmg==
X-Forwarded-Encrypted: i=1; AJvYcCVAA8DTKAljl9Fnjh/KACwY9pRmcUoorJE8oc9uuNYh6r5Drnu64z3sx4OQRjZ7rQs4jWITPENAs7E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYo6v+ZgTnQwPCdGDmmyZphR3ZCPjc4722YQwePqXvOm9oP6g4
	wcUFCfuzXdu2mVjiDFGnMJEAIGxxk0ERUABVMUhoqQZvj9p6EM7ZizrGgZ6AeA==
X-Google-Smtp-Source: AGHT+IHo2c5hYtMNOGwCR2KuwKhy18v11sZtBwUchR7EZ59p2XC+rme5x67nTm3epACgH/TTHnSSUg==
X-Received: by 2002:a05:600c:154d:b0:42c:bae0:f05b with SMTP id 5b1f17b1804b1-432b74fd6f5mr132622455e9.1.1731404133844;
        Tue, 12 Nov 2024 01:35:33 -0800 (PST)
Message-ID: <7f28102d-c13f-4175-ad47-64e7495d22eb@suse.com>
Date: Tue, 12 Nov 2024 10:35:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/3] x86/emul: define pseudo keyword fallthrough
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Federico Serafini <federico.serafini@bugseng.com>,
 consulting@bugseng.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: <cover.1730880832.git.federico.serafini@bugseng.com>
 <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@bugseng.com>
 <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com>
 <alpine.DEB.2.22.394.2411101820430.14721@ubuntu-linux-20-04-desktop>
 <57d407cf-3f3a-43f6-9aa4-05cac5b50c46@suse.com>
 <alpine.DEB.2.22.394.2411111816210.14721@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.2411111816210.14721@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2024 03:16, Stefano Stabellini wrote:
> On Mon, 11 Nov 2024, Jan Beulich wrote:
>> On 11.11.2024 03:24, Stefano Stabellini wrote:
>>> On Wed, 6 Nov 2024, Jan Beulich wrote:
>>>> On 06.11.2024 10:04, Federico Serafini wrote:
>>>>> The pseudo keyword fallthrough shall be used to make explicit the
>>>>> fallthrough intention at the end of a case statement (doing this
>>>>> through comments is deprecated).
>>>>>
>>>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>>>> ---
>>>>>  xen/arch/x86/x86_emulate/x86_emulate.h | 10 ++++++++++
>>>>>  1 file changed, 10 insertions(+)
>>>>
>>>> When you had asked my privately on Matrix, I specifically said: "Adding
>>>> the pseudo-keyword to x86-emulate.h (not x86_emulate.h) is probably best,
>>>> unless problems with that approach turn up." Even if identical re-
>>>> definitions are deemed fine, I for one consider such bad practice. Yet
>>>> by playing with this file (and outside of any relevant #ifdef) means
>>>> there will be such a re-definition when building Xen itself.
>>>>
>>>> In fact the patch subject should also already clarify that the auxiliary
>>>> definition is only needed for the test and fuzzing harnesses.
>>>
>>> Hi Jan, I don't understand this comment.
>>>
>>> You say "playing with this file (and outside of any relevant #ifdef)"
>>> but actually the changes are within the #ifndef
>>> __X86_EMULATE_H__/#endif. What do you mean?
>>
>> "relevant" was specifically to exclude the guard #ifdef. And the remark
>> was to avoid the #define to merely be moved into or framed by an
>> "#ifndef __XEN__".
>>
>>> You say "Adding the pseudo-keyword to x86-emulate.h (not x86_emulate.h)
>>> is probably best". I am not very familiar with x86-isms but the only
>>> x86-emulate.h I can find is ./tools/tests/x86_emulator/x86-emulate.h
>>> which is not a header that would help define anything for the Xen build?
>>
>> But that's the whole point: We _have_ "fallthrough" as a pseudo-keyword
>> already for the Xen build. For it to be usable in the emulator files, it
>> particularly needs to be made available for the test and fuzzing
>> harnesses. And that without interfering with what the Xen build has.
>> Hence why it wants to go into precisely that file, where all other build
>> compatibility definitions also live.
> 
> OK. So if I get this right, we need the below instead of patch #1 in
> this series?

Yes, just with the addition not at the bottom of the file, but where the
other compatibility definitions are. Also (nit) perhaps "statement block",
matching terminology in xen/compiler.h.

Jan

> --- a/tools/tests/x86_emulator/x86-emulate.h
> +++ b/tools/tests/x86_emulator/x86-emulate.h
> @@ -233,4 +233,14 @@ void emul_test_put_fpu(
>      enum x86_emulate_fpu_type backout,
>      const struct x86_emul_fpu_aux *aux);
>  
> +/*
> + * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
> + * the end of a case statement.
> + */
> +#if (!defined(__clang__) && (__GNUC__ >= 7))
> +# define fallthrough        __attribute__((__fallthrough__))
> +#else
> +# define fallthrough        do {} while (0)  /* fallthrough */
> +#endif
> +
>  #endif /* X86_EMULATE_H */



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 09:39:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 09:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834274.1249886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAnN6-00061O-Be; Tue, 12 Nov 2024 09:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834274.1249886; Tue, 12 Nov 2024 09: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 1tAnN6-00061H-95; Tue, 12 Nov 2024 09:39:40 +0000
Received: by outflank-mailman (input) for mailman id 834274;
 Tue, 12 Nov 2024 09: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAnN4-00061B-T9
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 09:39:38 +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 06b2d678-a0da-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 10:39:34 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-431ac30d379so47058975e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 01:39: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-432b3de8710sm185670135e9.17.2024.11.12.01.39.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 01:39: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: 06b2d678-a0da-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA2YjJkNjc4LWEwZGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDA0Mzc0Ljk0NTI0LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731404374; x=1732009174; 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=w4Fo7aF93GrBAIT6BV8fr8v8WjQIXnPxU39naw4ai40=;
        b=EM3qlNOeD67SA/gGy49q+tl5x6SvPYIQlUESEPzxPpRC47eeHXu1Kgt1veOAdg+6th
         Li/+mWz1CmG21rClIjMbgOeC+pJLvoSO9VEzVjHoSVVD14XQ7aRo12v0dLjoSTULA2Z5
         FtoLjNSHajip+CUpJjzG6L5JfVczVhFLrsCymiDpXZjsU5BA7H870MKBUmBtCOwa2Als
         Q95t/3VSs6BufEBLUnlWCNHBqpghUneKudFEna9aVsG11chemXFRw6oEoWlcalbbyfT0
         z5xrKHenp2oOqgbwQoARqss1+HKtCsxd/nDvEMlctMpQuiOed0KTHczoJKEYu4NIY1R0
         pSMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731404374; x=1732009174;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w4Fo7aF93GrBAIT6BV8fr8v8WjQIXnPxU39naw4ai40=;
        b=Ttj9hswkk4RFJ93wWYFwmLypjWoTvI2W6oQ4eG6CD5uYwBuYogf46vOZbzQbjL+RAf
         0ow2caag/DsoHxKaVcdQjdiZJ0sB3kIO2tZs0mivtCUmoL6+IaZerIWStiZsaxTnHRHL
         0xBtys1PFRBv72AHJWaocsXXwcHuZ/AozPQT1jBC8smsjFKeSRgfMqRytdfQwaErxpH+
         MWG2L68Cl5jvyWW2G5PUJEViWIoO/TCk5dG9OJNpF4hDBNKoyvVGp2+w5To4sQVFCXLD
         9E7kh2CWGKUGxPEKNfh5qpLl4LCWQ4YLgFtrsWhWmvE95INTGTJaeEP5sbl7KfX7r7iO
         zljQ==
X-Gm-Message-State: AOJu0Yw9ub80+1JltdKoIWR5B2+WU2ApUh0tOaVG/CjaE32KNeefRWyk
	11U8pVo3rJSfSWdy7jtawqm7ZAoU0/FcNh+1xMq8Dlvy9CdmYtfjgS867KhwIQ==
X-Google-Smtp-Source: AGHT+IFx5pshVOHVBQA1zR3Ys6Lynk7I2htxKp5TbPqMHAMlc2lpYx+jcbya11lX1ZW8iVrrmDr+6A==
X-Received: by 2002:a05:600c:3582:b0:430:54a4:5ad7 with SMTP id 5b1f17b1804b1-432b74faabdmr135789545e9.1.1731404374289;
        Tue, 12 Nov 2024 01:39:34 -0800 (PST)
Message-ID: <f8bedb2a-1d32-4e99-885a-79a56c1bdd36@suse.com>
Date: Tue, 12 Nov 2024 10:39:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <Zx_a57npsdRhLgYr@macbook> <b3f9a4a4-112b-4d58-afca-bc88ea2b1e11@amd.com>
 <ZzMZpg3FCyc4SW4z@macbook>
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: <ZzMZpg3FCyc4SW4z@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2024 10:02, Roger Pau MonnÃ© wrote:
> On Mon, Nov 11, 2024 at 03:07:28PM -0500, Stewart Hildebrand wrote:
>> On 10/28/24 14:41, Roger Pau MonnÃ© wrote:
>>> if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
>>> {
>>>     struct pci_dev *vf_pdev;
>>>
>>>     while ( (vf_pdev = list_first_entry_or_null(&pdev->vf_list,
>>>                                                 struct pci_dev,
>>> 						vf_list)) != NULL )
>>>     {
>>>         list_del(&vf_pdev->vf_list);
>>>         vf_pdev->virtfn.pf_pdev = NULL;
>>>         vf_pdev->broken = true;
>>>     }
>>>
>>>     printk(XENLOG_WARNING "PCI SR-IOV PF %pp removed with VFs still present\n",
>>>            &pdev->sbdf);
>>> }
>>
>> Yeah. Given that the consensus is leaning toward keeping the PF and
>> returning an error, here's my suggestion:
>>
>>     if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
>>     {
>>         struct pci_dev *vf_pdev;
>>
>>         list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list)
>>             vf_pdev->broken = true;
>>
>>         pdev->broken = true;
> 
> Do you need to mark the devices as broken?  My expectation would be
> that returning -EBUSY here should prevent the device from being
> removed, and hence there would be no breakage, just failure to fulfill
> the (possible) hot-unplug request.

That very much depends on Dom0 kernels then actually respecting the error,
and not considering the underlying hypercall a mere notification.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 09:42:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 09:42:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834281.1249896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAnPy-0007gb-PW; Tue, 12 Nov 2024 09:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834281.1249896; Tue, 12 Nov 2024 09:42: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 1tAnPy-0007gU-MF; Tue, 12 Nov 2024 09:42:38 +0000
Received: by outflank-mailman (input) for mailman id 834281;
 Tue, 12 Nov 2024 09:42: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAnPx-0007g1-Bs
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 09:42:37 +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 719c6189-a0da-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 10:42:34 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4315c1c7392so47989315e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 01:42: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-381ed998d00sm14789650f8f.56.2024.11.12.01.42.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 01:42: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: 719c6189-a0da-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcxOWM2MTg5LWEwZGEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDA0NTU0Ljg2MjAzOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731404554; x=1732009354; 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=SwE98HEfayJQUm+fQjTUOB+1/vBIdpccAZV4vEwT/SU=;
        b=IdELc9O1IF4r6VZqMuknDviCoSt94l6L00ya5S2KmcUhygJBM2ZELMyRlsRCKtkl24
         TWyqDo4yGlytEMV/Z/4ANdMYWjQ3W6pQYSIi9Lt7n/QRm3e02HaUvy1H2yrYW+jBUFB3
         fUEYt9/0mGnA//M/Nzfhsh6g9V+pscf0r8/lBVX2XVbm3CVjdH+YDr9PLjSxjGi1c7Z2
         xLbTpaB2aorMKVblmCGa0DVYIwGLO5DF39u5J5OBTS+bz8D9PWDdHYWr4kkSs+UuNR/1
         Y+od9++4EPGEK/DMMm4lAwRDq6O/n15zhHS53Q5AMdKOMbDduGe450S/bSKo+qQhN4Nr
         +iYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731404554; x=1732009354;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SwE98HEfayJQUm+fQjTUOB+1/vBIdpccAZV4vEwT/SU=;
        b=heo2DOIwgYR+/xfa/dHhXRdVeAtqNQpX/3jDeRr5KN8ZQwncTXAPXIp39arR+ZfJaB
         aRXBybpXg8yrYF/xt8UZIj4AYKYKahdG++p8wnDd9YMX5+fnNLtqNB1C/GWLrDNR2CpB
         RR1XKH0TCHDOblBXAAByi4szILLurNIpKcpC7vl8Urigh5phFOhVh2Zsmh/EPewpev+e
         XPO5e26ROQJSGO8TDakBIjJnU8GXaUiWKfC4093EGuB4PnzGIKYUGdyElGnoPNfX+2xx
         +WaCD+T4ggHaiY14o6VOjfDuq3oK57N3O46h32Arh2LMC0OpuMHwww/T+YQrFIK41oLE
         fyUg==
X-Gm-Message-State: AOJu0Yx2jq3onxExN5XJfjD+VhhEQkfn5ZdCbzhf3GK9qLpucYO07Dqw
	tXZhiPBFsb8lqNSk4xsalBGdw5jMb+zUkSXVHRBnUY8VpvvSXceuSTJRWbFfbQ==
X-Google-Smtp-Source: AGHT+IFv+qGrBki61OI+TJrSzG5KsZRbShLTq6zGBY4XkxT+iKtFlbuILE98B0YKKxBNXR+dtJl3ZQ==
X-Received: by 2002:a05:600c:3b9a:b0:431:52f5:f497 with SMTP id 5b1f17b1804b1-432b7502771mr137747055e9.9.1731404553708;
        Tue, 12 Nov 2024 01:42:33 -0800 (PST)
Message-ID: <bb06125e-766a-4b8e-a60e-281fa2053112@suse.com>
Date: Tue, 12 Nov 2024 10:42:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <Zx_a57npsdRhLgYr@macbook> <b3f9a4a4-112b-4d58-afca-bc88ea2b1e11@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: <b3f9a4a4-112b-4d58-afca-bc88ea2b1e11@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.11.2024 21:07, Stewart Hildebrand wrote:
> On 10/28/24 14:41, Roger Pau MonnÃ© wrote:
>> I see previous code also catered for VFs being added without the PF
>> being present, so I assume there was some need for this.
> 
> This is exactly the source of the confusion on my part. In the removal
> path, the consensus seems to be that removing a PF with VFs still
> present indicates an error. Then shouldn't the opposite also be true?
> Adding a VF without a PF should also indicate an error.
> 
> I see the PF-adding logic was added in 942a6f1376d8 ("x86/PCI-MSI:
> properly determine VF BAR values"). Searching the mailing list archives
> didn't reveal much about it [0].
> 
> [0] https://lore.kernel.org/xen-devel/4E3FC6E102000078000501CA@nat28.tlf.novell.com/
> 
> The only time I've observed this path being taken is by manually
> calling PHYSDEVOP_pci_device_add. I've resorted to calling
> PHYSDEVOP_pci_device_{remove,add} from userspace in order to test this,
> because the Linux kernel doesn't behave this way.

The goal was to avoid returning an error when we don't strictly need to.
With the overall adjustment ...

> I can't think of a good rationale for catering to VFs being added
> without a PF, so I'll turn it into an error for the next rev.

... changing this may indeed result in better overall consistency.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 09:45:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 09:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834287.1249905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAnSu-0008FX-3N; Tue, 12 Nov 2024 09:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834287.1249905; Tue, 12 Nov 2024 09:45: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 1tAnSu-0008FP-0r; Tue, 12 Nov 2024 09:45:40 +0000
Received: by outflank-mailman (input) for mailman id 834287;
 Tue, 12 Nov 2024 09:45: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAnSt-0008FJ-44
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 09:45:39 +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 de4ee6e8-a0da-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 10:45:36 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-431481433bdso47733005e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 01:45: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-432aa6b35b3sm231930195e9.18.2024.11.12.01.45.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 01:45: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: de4ee6e8-a0da-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRlNGVlNmU4LWEwZGEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDA0NzM2LjY3NTI4NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731404736; x=1732009536; 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=iGU1PQ0zStrU0E8d0kvdc8f2CeFpLfahIaeDIoG6Ozc=;
        b=Q0F0aV1XnAUWuXYZNThpgZZX//vlxLVWO3DF+F9ET1k63OpnWCUwkKN9+0VDaV4/II
         CYmeFObSBoOjINM6v4U+uOFO8kJChvnFDB55T+a3c112BcvJj0SrIid7MhdlDly961rd
         6Lzp2ZUzXraBBtnLE7rVX6XwNz2YhYoAZsn+FwFOzctLZQp0gztYROaHcQNfJov/Ffcs
         0HxoecPZ0IdXwV16YtmRAvLYv2BPXbCWF9ACPagNNel9gPQfhqQpOUpBorw9Ei80nFsS
         KPZC/lXuVWYKAF0CrTVnADD7zvWjPp4uJLIrMqLyssQCGk/iybbIoG23tA27Y8HvKNao
         o2Ew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731404736; x=1732009536;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iGU1PQ0zStrU0E8d0kvdc8f2CeFpLfahIaeDIoG6Ozc=;
        b=nPpySeG+qV220HTyf8n0GsxVcXCjlYIHRjl7b99GQ0PcmAi3PjdlaGkAewMXyNu439
         TRWUh3rYk+b+dLQebLZ7n9uUVSbBcSjyrCK6U5bhGGqPFVtuquNLOtO/a4kqAGAd+FyG
         HZGz27ei8xWeVrSoVmeq2fAg1ynQ0ZNlcgdsu2D39dlk9UmOWZ/kv28v551uDIoPlZyF
         3wufSap+rrXoJssWAwPSiaroCs+YpL1b1rlEPB9Ru7a+B+UNVWQsqX4pNQu4o9i3UVUX
         jTI6Mg1VFpQNSGbTGHkjm/2vCYUahtA6KNmZJnRepDIrBJND9Ilxs4+xxPkRTYMTxzzU
         5poQ==
X-Forwarded-Encrypted: i=1; AJvYcCX5b4y+AnYbEyYxhP+SMolx8foRVnT2c6BrdNHNJJHoFtQARi7W4EOzXL6k7zw//b8lM2hZqBITejs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUTp+0S/Chp7NyOajM2Dwu/jN6oP8lZ5sCTy2BWngNDng/7pTp
	KruPCG4myYnptIBmUJ/JEfGvohp/zueRk50ED8wk5LsSpJqTKwEmNu6qGNCteQ==
X-Google-Smtp-Source: AGHT+IEd0N2LzHybZ6KspsEKYlKr9+1M0fetJfoccPvlXV5P1ohCyXbRxL6sEg9gFKEkGtHBxDxu5Q==
X-Received: by 2002:a05:600c:3544:b0:42c:b187:bde9 with SMTP id 5b1f17b1804b1-432b7522c3emr131199595e9.30.1731404736032;
        Tue, 12 Nov 2024 01:45:36 -0800 (PST)
Message-ID: <67fa8dc0-a58f-48d4-97df-25d7f8a0447d@suse.com>
Date: Tue, 12 Nov 2024 10:45:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Enclose all iommu related access within
 CONFIG_HAS_PASSTHROUGH
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20241111180635.1198552-1-ayan.kumar.halder@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: <20241111180635.1198552-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 19:06, Ayan Kumar Halder wrote:
> As CONFIG_HAS_PASSTHROUGH is enabled only for MMU, thus any common code
> accessing iommu needs to be enclosed within CONFIG_HAS_PASSTHROUGH.

I'm not an Arm maintainer, so my opinion may not count much, but that's
quite a bit of #ifdef-ary. In at least some of the cases using stubs instead
may result in better legibility ...

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 09:51:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 09:51:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834298.1249915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAnYv-0001de-Mh; Tue, 12 Nov 2024 09:51:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834298.1249915; Tue, 12 Nov 2024 09:51: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 1tAnYv-0001dX-Js; Tue, 12 Nov 2024 09:51:53 +0000
Received: by outflank-mailman (input) for mailman id 834298;
 Tue, 12 Nov 2024 09:51: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAnYu-0001dR-AR
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 09:51:52 +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 bcb45c89-a0db-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 10:51:49 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-37d41894a32so3138866f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 01:51: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-432aa73a2d8sm234711855e9.41.2024.11.12.01.51.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 01:51: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: bcb45c89-a0db-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJjYjQ1Yzg5LWEwZGItMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDA1MTA5LjgwMzUyMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731405109; x=1732009909; 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=4ct0+pX7Xic0nhtANT/nsC8XZ0pYls9L9UlNnC3/m5M=;
        b=HPDkGWiMSQMSgh354XzHdrKTr0ZD+qEyz4Dgsk/JqVcxOY9B3HkhG0pME/OMiUSwp6
         aRZXykevNrIskerImL72HiyJ7PuhJwP1YF1jtDSxJBe8hYYpA6ozpqGS51iDbI99TAOG
         3n462Fe2Tf0WYF/GCfZJQ3ePeE7yar8FVU3rGx9766psIni21dIcvwwm7ms0/fUn5pEK
         e5g0wLPWaknDj01crfD+p8go4tLuKw8Rfqw/T/7pQT9h/vms+HqAA5xN7Mx1IASkVMl8
         tIcfldgXZfNcCPDI5Dg5qAc5O6jwfBd103evl/AYWmtK2YKzAYHqR7lLmv+rLJ1XamX0
         6QNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731405109; x=1732009909;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4ct0+pX7Xic0nhtANT/nsC8XZ0pYls9L9UlNnC3/m5M=;
        b=KWMJ9mnVngfioYojnBiOEoQzO1MM9IUk7as/nBKcrHx3IBr930So732gQMlWet3Lkj
         rdKNBP1PGJMa5JJat4YkLwmKhiSdeG4vgZFY72Aeylzjdwbf83M5/BeeW/zNjoeE54/t
         yimA+CHRQ35VIyTgSSdbBgOjdTcwbuaKROXwbmM/DcAxJrDS7eIyV8ZhHngi8grIKjhr
         qqnbiGPMgYjrlyYJKhuZhyn58a1my7M9G0JWRYQiHtzKCZSX6k9g/JjHccl94JrxTc7g
         Bj3SvvJeraGcUqf3YkOUYsk9cMpFAmTm1D9kt1DRApU3DGr6SMQ5IrMW4VJBxkxwgupj
         iqLw==
X-Forwarded-Encrypted: i=1; AJvYcCVOeRxJ0NbuwJM9wx9IM2359qgYkZVCbPd6+xRp5mT6dw8kxZDMjZSjbW2wY+yTWtdhkv21HOZ6TM4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7MK0S1wVIjbiJVFYX+r+sr4PiK2Z016ZR4v1J5pFxb010Il43
	3/9n0aqUI80p8SwPOCVkYxh2jSaYrmL3ygeK1KHxnbe0f6XTjfrxEzwioAQk8Q==
X-Google-Smtp-Source: AGHT+IHmDtjuBWLakO663IiHcklZLslsSAh5i519Avc7ZxAuvbG64KPgDKZK/LDO9FAiiDEnDLZvOg==
X-Received: by 2002:a5d:47a8:0:b0:37c:bafd:5624 with SMTP id ffacd0b85a97d-381f0f85819mr13747896f8f.25.1731405109184;
        Tue, 12 Nov 2024 01:51:49 -0800 (PST)
Message-ID: <59338269-e2a3-4c0d-9298-2ec9e48a8605@suse.com>
Date: Tue, 12 Nov 2024 10:51:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] drivers/char: rename arm-uart.c to uart-init.c
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, 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>,
 xen-devel@lists.xenproject.org,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <11b3d91cc7ff2435bca8cb0b841faaac54c3e796.1731345930.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: <11b3d91cc7ff2435bca8cb0b841faaac54c3e796.1731345930.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 19:16, Oleksii Kurochko wrote:
> NOTE:
>  I am not insisiting on having separate CONFIG_UART_INIT. If it would be fine
>  just to have in xen/drivers/char/Makefile:
>    obj-$(CONFIG_ARM) += uart-init.c 
>    obj-$(CONFIG_RISCV) += uart-init.c

With PPC also using DT, a 3rd instance would likely occur down the road.
The latest at that point I'd deem the UART_INIT approach preferable.
Cc-ing Shawn for possible input.

> --- a/xen/drivers/char/Kconfig
> +++ b/xen/drivers/char/Kconfig
> @@ -93,6 +93,17 @@ config SERIAL_TX_BUFSIZE
>  
>  	  Default value is 32768 (32KiB).
>  
> +
> +config UART_INIT

Nit: No double blank lines please.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 10:34:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 10:34:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834311.1249926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAoE3-0007YD-SD; Tue, 12 Nov 2024 10:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834311.1249926; Tue, 12 Nov 2024 10:34: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 1tAoE3-0007Y6-Oh; Tue, 12 Nov 2024 10:34:23 +0000
Received: by outflank-mailman (input) for mailman id 834311;
 Tue, 12 Nov 2024 10:34: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAoE1-0007Y0-Nl
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 10:34:21 +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 ab8bd45a-a0e1-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 11:34:18 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43167ff0f91so48228005e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 02:34: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-432b0566544sm200244855e9.24.2024.11.12.02.34.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 02:34: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: ab8bd45a-a0e1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFiOGJkNDVhLWEwZTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDA3NjU4LjAxMDgzOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731407657; x=1732012457; 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=McpVfPYh7rYStkr/cetB2IgjE7dLSCUsaGei3tg+Ts0=;
        b=OSiDu5vqNNJMxl526lry+rX0iSr/6v4BI2jMl1BJWP7KanH/qY6FVG/f5QCYzO6Qgi
         jg3DzEgr3UhNFOoFzXohud+3Luuz9sFMvjxmpieEu+i9OOmSCWkz2xfVjYJp1fhs4aPO
         xfyKjY7i1Xdqgorbun2jQCsj4RHkIL970BnyFqpQmHokZ1dHnlyyB/QiCgBNri/5yxzw
         PZlsIyE4hpOAHYvB6BBMECDepCFQAKhECS6EORqIPYApJXwoMyUWpIaSqTFpajjD2kAT
         o1Q2qSDC8CJqpB2Pi5LnEIf4BJVcsHBeq+cedIcXjQNYPwODLr88KkvbX6HHfua2n14w
         px0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731407657; x=1732012457;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=McpVfPYh7rYStkr/cetB2IgjE7dLSCUsaGei3tg+Ts0=;
        b=fZERqP3nuY7aDsDA/9MbI/n2HGwTg2vuWrRePXulL/y0fVzeHTk2Fmyl8xYbjbqkHG
         c3wfqPGd9qpAGqzIp8ZIYPZcBiMxZKE1eLdvb2+Vwpps8c2xRn2ogZyeuq+f8s6CBKGP
         6UomPJ2J1wuZSTdTvZR5Z3sAEr1QqAIkpgierZuTegRAp1fuuMuHOSYR637y/tcVx3dN
         XRJil3d+Q+6ylhmNmBl8idgwyuSKtRO4O5zPMfEXvlo9cGrBbAyeqaFy9osbdu1xoGnw
         gK6e5CjqnqHe4+sRorha+1djHnPMaO0BOojBAFKrfceg5j2eVbpdzUNjwM1qozYvQUjC
         /ptg==
X-Forwarded-Encrypted: i=1; AJvYcCVrmgIflLhDi/+7A95eK5l0QUWeMmr7DV9VHDmpIpPEwt+DO4aq6J7gYizhglnrxjbP9EqS1+1Zens=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJwMEbJv5EdwBQzUfyg/4hqLcFfzCtvZIRUoKkHvMg2h1Y0mrJ
	6eWPQdnzg904SvxZim+i6h5Q6fB86UI1mYvl64ymWgBuM+jV6QWELSp31rmHVg==
X-Google-Smtp-Source: AGHT+IGbNodrhAwk2ew/3K/JNap7Yp4NVo7Wx3cCiWC/DMSS/qUBNUpHQVixgmutWFY19bAROLsuDw==
X-Received: by 2002:a05:600c:4f10:b0:42c:b220:4778 with SMTP id 5b1f17b1804b1-432b7522dd3mr133377755e9.33.1731407657345;
        Tue, 12 Nov 2024 02:34:17 -0800 (PST)
Message-ID: <d26cc705-7e84-497d-89e8-1398713a71e1@suse.com>
Date: Tue, 12 Nov 2024 11:34:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/ucode: Don't use microcode_update_cpu() in
 early_microcode_load()
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: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-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: <20241107122117.4073266-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.11.2024 13:21, Andrew Cooper wrote:
> There are two callers of microcode_update_cpu(), and because one passes NULL
> and one doesn't, there are effectively two disjoint pieces of logic wrapped in
> a single function.
> 
> early_microcode_load()'s use skips all the microcode_cache handling, and is
> just a simple patch application.
> 
> This skips a redundant collect_cpu_info() call (performed in
> early_microcode_init(), marginally earlier), and avoids holding
> microcode_mutex when we're not interacting with microcode_cache at all.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Personally I would have deemed it more logical (and Misra-compliant) to
remove the "if ( patch )" case from microcode_update_cpu() right here.
Surely (by its title) the next patch is going to have the same effect.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 10:36:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 10:36:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834320.1249935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAoGC-00089e-Ac; Tue, 12 Nov 2024 10:36:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834320.1249935; Tue, 12 Nov 2024 10:36: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 1tAoGC-00089X-84; Tue, 12 Nov 2024 10:36:36 +0000
Received: by outflank-mailman (input) for mailman id 834320;
 Tue, 12 Nov 2024 10:36: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAoGB-00089K-GR
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 10:36:35 +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 f9fb4ad4-a0e1-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 11:36:29 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2fb51e00c05so62488331fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 02:36:29 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a184f8sm696678566b.15.2024.11.12.02.36.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 02: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: f9fb4ad4-a0e1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzEiLCJoZWxvIjoibWFpbC1sajEteDIzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY5ZmI0YWQ0LWEwZTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDA3Nzg5LjUwMTY3Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731407788; x=1732012588; 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=5N6mUBfnjANcbqqKZi3hpTQhpUm/LDFiBxo4h1NI6SU=;
        b=QW+ZkDn4tZ+1l4/8QtSGX4Vf2PjsBxLbWbrryOogiqItMpzb6aZuMVmQLvzODeNxBu
         /h1O4R6SBWxOxY31A92SAt8kwFtRnsWI6FSFDaFKNT5sF547NgGahVV3EB4tpPk4/H1p
         c/hcYkypaxJcy9O5FixLC+ehyuNKFYlYbPVLo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731407788; x=1732012588;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5N6mUBfnjANcbqqKZi3hpTQhpUm/LDFiBxo4h1NI6SU=;
        b=RTE8hsOATFTP6Zf79PayzfZrpOtDdPCTTWF2VusTt5GBP5i9LS88gBbsQEc2pyjVW0
         xZXO91bAmeLnDRxafK0t81XjnaaZ1xrEhXeGFPv6Sat9lC8ppeQxbcAac126rpiTQ9zu
         clYbGE2x9AgWvjc46ABwOgReonC0wJdWgwsiHTBj8sLANlG/7BaPYNXcZt9ZxI85Eh4G
         /CRtKxTxDxpuMG3lts1xvcmiayUxoKQih7kwcd+4hEcuyqsuGmEdakx5fYVndpnoIH0s
         NYJz/o8sdW/m2RZ1xAA5sURFVYKa1GjcJ7UoRWmjRiEqDpz/NxgwYijPT7RyV0FmY8uX
         6MDA==
X-Gm-Message-State: AOJu0Yxwn6HfPEmh/DrVz/lp/PgSUX+8SrTG3+DGfOZOK0p747MNLlvs
	WPTh3LsJaTWgNYNR74zJEEMaLMS/mkfNrQVL+w7R26h6Vi6R6czqGM7ZSlx00gRFF51++zBDKcA
	V
X-Google-Smtp-Source: AGHT+IHUIp++kgaxv0hcJMmmRcWurIDhfOgc4Fx6tIZY6ldnHMJMkX4LQOHvyXo5A2JfdgMLVfK/Jw==
X-Received: by 2002:a05:651c:b20:b0:2f7:7be8:fd89 with SMTP id 38308e7fff4ca-2ff2016262fmr114694111fa.6.1731407788175;
        Tue, 12 Nov 2024 02:36:28 -0800 (PST)
Message-ID: <6d972a06-4acd-4b6c-b8e9-543a338d66ae@citrix.com>
Date: Tue, 12 Nov 2024 10:36:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: 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: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-4-andrew.cooper3@citrix.com>
 <5aa29b23-cf22-45a5-b7b6-7e307a2238d2@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <5aa29b23-cf22-45a5-b7b6-7e307a2238d2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/11/2024 9:58 pm, Andrew Cooper wrote:
> On 07/11/2024 12:21 pm, Andrew Cooper wrote:
>> With the tangle of logic starting to come under control, it is now plain to
>> see that parse_blob()'s side effect of re-gathering the signature/revision is
>> pointless.
>>
>> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
>> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().  For
>> good measure, the apply_microcode() hooks also keep the revision correct as
>> load attempts are made.
>>
>> This finally gets us down to a single call per CPU on boot / S3 resume, and no
>> calls during late-load hypercalls.
>>
>> 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>
>>
>> Slightly RFC.
>>
>> Just before posting, I've realised that cpu_request_microcode() does actually
>> use the current CPU revision, and it's buggy, and it's the cause of `xen-ucode
>> --force` not working as expected.
>>
>> I'm tempted to do another series cleaning that up in isolation, such that this
>> patch becomes true in this form.
> Actually no.Â  Having tried a bit, I think it's easier to do with patch 2
> already in place.
>
> So instead I'm tempted to edit the middle paragraph to note that it
> currently uses the revision but that's going to be fixed shortly.Â  The
> rest of the paragraph explains why it's still safe anyway.

So, after the latter series, this patch happens to be accurate.

cpu_request_microcode() does read the revision, but discards the result
of the calculation which used it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 10:45:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 10:45:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834328.1249945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAoOo-0001bJ-2E; Tue, 12 Nov 2024 10:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834328.1249945; Tue, 12 Nov 2024 10:45: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 1tAoOn-0001bC-VN; Tue, 12 Nov 2024 10:45:29 +0000
Received: by outflank-mailman (input) for mailman id 834328;
 Tue, 12 Nov 2024 10:45: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAoOm-0001b6-Af
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 10:45:28 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38e42c08-a0e3-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 11:45:24 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-539fe76e802so6112301e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 02:45: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-432b05e6042sm204460305e9.44.2024.11.12.02.45.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 02: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: 38e42c08-a0e3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM4ZTQyYzA4LWEwZTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDA4MzI0LjU1MDYyNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731408324; x=1732013124; 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=tZDqxD6FgZG4J4ac0tdrd9WcffNTwtmlRRr6/uq78KQ=;
        b=RnjvP0w4Im6L4rEW1YJb+T/96a5zt6E+AVSBNOPAH5+l5mwKP9moKA/DdkHY7CtJbK
         9xMCRGshn1ER4HtMHZYQDMnyevn0TIH6d83/GM4MdnPFN7g6e3LK/OtRw94n8h176ZVN
         LnRMa52/O4IYidsTsEuQyAtkQoVTGZBC/euh6qL76qorlH7LivfLIeXZeP+2Zcq9tc1q
         qGb5YJt/RBV9DxuvyUS/nKNFQemqD9Ab4Na+QuJZutcm1UAp6F9kHuJRfZzV2/Lx15rG
         6YNv2zTSuye60QGhMHkWHxFfsZUGsij0yAQRXyvhJcyMgkE8tnJcPqyjL4v/MO/60B2q
         acuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731408324; x=1732013124;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tZDqxD6FgZG4J4ac0tdrd9WcffNTwtmlRRr6/uq78KQ=;
        b=EOnKE3eFxb+fyUY+MPSOQeg8L10wFHTyVKyAJ8u2q7epvngFfp+nTgvuEA3hkAyQ1D
         Mk4K08sg6EQtaomJq9JSlga8ldk1uBmNtx8IZKH6DNegBZdxnutI6lK0xpfhZROZCm6o
         gXuHDu2nettnAUM0HB8TrQIccQD4DUGS+EocJdTZywqWPktSUYXvlj2hAJfUzWXxJMTh
         57BVesuMEmYdMwx3oerqiKD9stn25pYNOoma5VIPUYJh1bzqHZAmasvXJ4J+zUsAd/4h
         UXWlXesPNs198HDgN2HWouJc3ipx8Vw3C6tyLzYmaa2U1FfCVJU8TlRJ7NS3UI8W+bRh
         cRLw==
X-Forwarded-Encrypted: i=1; AJvYcCWAmAZcsehVxE6RyHgNO7WZY9486CQSp4UnXLp9++ZjcArfAWtH99FbmmABMrGS2KoS9HZ6nrTw7mw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxaEtZ3cFaEk1b4Wh4I0f7t5+o5/b/tqVdbYBQxK0oH3YIfVccZ
	+Qlsb0EkZAy/N33ZhXHzQAnhY1IYGIcXK1FIbwZb2vf6H0bXCXtWKg6IxIVLvrnOkmuhEb1jI/s
	=
X-Google-Smtp-Source: AGHT+IEsmScdVqLAKKr13esILa1jUqG7Oh/kkjak4KAMNQfBBBb14PK/+GBUkPwdvqvCzIoWoK55Cw==
X-Received: by 2002:a05:6512:3ba6:b0:539:8d2c:c01c with SMTP id 2adb3069b0e04-53d862fdf74mr7486924e87.41.1731408323826;
        Tue, 12 Nov 2024 02:45:23 -0800 (PST)
Message-ID: <3fa406d3-f714-41c2-984f-8478fab3e7b1@suse.com>
Date: Tue, 12 Nov 2024 11:45:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/ucode: Fold microcode_update_cpu() and fix error
 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: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-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: <20241107122117.4073266-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.11.2024 13:21, Andrew Cooper wrote:
> Fold microcode_update_cpu() into its single remaining caller and simplify the
> logic by removing the patch != NULL path with microcode_mutex held.
> 
> Explain why we bother grabbing the microcode revision even if we can't load
> microcode.
> 
> Furthermore, delete the -EIO path.  An error updating microcode on AP boot or
> S3 resume is certainly bad, but freeing the cache is about the worst possible
> action we can take in response; it prevents subsequent APs from taking an
> update they might have accepted.

I'm afraid I disagree here, but I also disagree with the present error handling.
-EIO indicates the patch didn't apply. Why would there be any hope that any
other CPU would accept it? We're assuming fully symmetric hardware, after all.
However, imo it's not -EIO that ought to be special cased, but success and
-EEXIST. In all other cases the same error will re-surface for other CPUs. Plus
by not cleaning the cache we prevent an older revision to be installed (without
forcing its installation).

Keeping what's cached might be an option, but then followed by cleaning the
cache unless at least one CPU actually accepted the ucode.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 10:49:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 10:49:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834337.1249957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAoSr-0002AK-Jc; Tue, 12 Nov 2024 10:49:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834337.1249957; Tue, 12 Nov 2024 10:49: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 1tAoSr-0002AD-F1; Tue, 12 Nov 2024 10:49:41 +0000
Received: by outflank-mailman (input) for mailman id 834337;
 Tue, 12 Nov 2024 10:49: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAoSp-0002A7-Kv
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 10:49:39 +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 cf6fb155-a0e3-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 11:49:37 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-539fbe22ac0so5339559e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 02:49:37 -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-432b054b34csm207583785e9.14.2024.11.12.02.49.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 02:49: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: cf6fb155-a0e3-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmYiLCJoZWxvIjoibWFpbC1sZjEteDEyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNmNmZiMTU1LWEwZTMtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDA4NTc3LjA4MjYzMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731408576; x=1732013376; 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=sjOCv5X9qN8gfb7l+B3AhdykFYsnNYId6bWtnDRlZDk=;
        b=Yuw/8EHqJYu77t5ZWLyW3vLlw5Z7aTIheV6nWtbCUxUwuHlzgsTc7G+UvAzaF5FXc7
         ogKDZO1paKgMsFaSS/ALpfyA6db8vlLFosXeD4zhcMJrDWU7i/LJMZfvEwLNUtfMekJI
         BGIkTH+dz9tc94Eod7/HDgp0ivXMpcKSefISwaqpQ82QU1czIq45VVHZEKUhmlnAKxBB
         PVH9sg0zzp0SZQdqFzU7vyVIhobPznRZ6UNyWOtMbJoh/Did02fu+Mb15vxZBvffLOxX
         AATBTbp9B/NbJyDf8E1+18pz5hXX0TENip+6Sh+vtHCqrHi8eR0ORsgtOnGMPexjc5xN
         qqQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731408576; x=1732013376;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sjOCv5X9qN8gfb7l+B3AhdykFYsnNYId6bWtnDRlZDk=;
        b=NcuUITLw4x7DrgJ30Wh/sstuZ8bRiDYiaK3yKh3k+W1cK4t11FQiJXRgCTjFTiT7Di
         u+s5PnK9mL0Jbj1kTBala2GF9UBcueii8Eq0iJVoISpf6ZpUpb2LriufDksCSHwt0dG5
         5z/mir0GpIzkBBuPcy9QlWe+t/zonbexxBirL3iUSDKvkd6sL0dHWGRLfdEw7EeVn9xq
         I1lbBINlqQeNgtSlvxI/Abq1qMujkDnAr1IfW9o07oDSCkDIJH7yZISAa3cxPhe9Ess8
         iDRBRo8Xg3dl7zAsjbCK9TQwaSWx66T5mHGWOKsLcjBoCy+02xnXBb9CsSz7PDZ5RYV/
         Kv6A==
X-Forwarded-Encrypted: i=1; AJvYcCUH3IlNUL8wrRxYXxv6LkLJ5OE7V+fsxZmW1i9xvxBSo7HKheoWWOvNZicjJMXGddcXgez/32JCd1o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxy45uN8ZfjujG6uIzuNAvQNemJk/gegOgQA6hrtMyMk8iwaPvB
	dABNSSGnoHDv5mBPQd+vC3bD3PcdDIPvMopRvrSSe08dv6TfocxTVVdycTfL3Q==
X-Google-Smtp-Source: AGHT+IE1JPxxH+ovQmg62ft6JapAPUprY7Ewp4hCZ2vI/JxhGG2pdNTsgASUqhBCuPNRHfEwrxP2pg==
X-Received: by 2002:a05:6512:3ca5:b0:539:8d9b:b61e with SMTP id 2adb3069b0e04-53d862ee08cmr8643956e87.44.1731408576487;
        Tue, 12 Nov 2024 02:49:36 -0800 (PST)
Message-ID: <3f0ad893-4a67-488d-a350-020fdef2ad1f@suse.com>
Date: Tue, 12 Nov 2024 11:49:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
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: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-4-andrew.cooper3@citrix.com>
 <5aa29b23-cf22-45a5-b7b6-7e307a2238d2@citrix.com>
 <6d972a06-4acd-4b6c-b8e9-543a338d66ae@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: <6d972a06-4acd-4b6c-b8e9-543a338d66ae@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2024 11:36, Andrew Cooper wrote:
> On 07/11/2024 9:58 pm, Andrew Cooper wrote:
>> On 07/11/2024 12:21 pm, Andrew Cooper wrote:
>>> With the tangle of logic starting to come under control, it is now plain to
>>> see that parse_blob()'s side effect of re-gathering the signature/revision is
>>> pointless.
>>>
>>> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
>>> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().  For
>>> good measure, the apply_microcode() hooks also keep the revision correct as
>>> load attempts are made.
>>>
>>> This finally gets us down to a single call per CPU on boot / S3 resume, and no
>>> calls during late-load hypercalls.
>>>
>>> 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>
>>>
>>> Slightly RFC.
>>>
>>> Just before posting, I've realised that cpu_request_microcode() does actually
>>> use the current CPU revision, and it's buggy, and it's the cause of `xen-ucode
>>> --force` not working as expected.
>>>
>>> I'm tempted to do another series cleaning that up in isolation, such that this
>>> patch becomes true in this form.
>> Actually no.Â  Having tried a bit, I think it's easier to do with patch 2
>> already in place.
>>
>> So instead I'm tempted to edit the middle paragraph to note that it
>> currently uses the revision but that's going to be fixed shortly.Â  The
>> rest of the paragraph explains why it's still safe anyway.
> 
> So, after the latter series, this patch happens to be accurate.
> 
> cpu_request_microcode() does read the revision, but discards the result
> of the calculation which used it.

What's the intended overall sequence of patches then? With two series that
(aiui) now have grown some sort of dependency, and with this series have
gained a 4/3 patch, having a clear picture would certainly help. Might it
be best if you merge both series and re-submit as a single one?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 10:53:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 10:53:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834344.1249966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAoWH-00043D-1I; Tue, 12 Nov 2024 10:53:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834344.1249966; Tue, 12 Nov 2024 10:53: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 1tAoWG-000436-Up; Tue, 12 Nov 2024 10:53:12 +0000
Received: by outflank-mailman (input) for mailman id 834344;
 Tue, 12 Nov 2024 10:53: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAoWF-000430-Do
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 10:53:11 +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 4d9dc191-a0e4-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 11:53:08 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4316f3d3c21so44600505e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 02:53: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-432aa6bf546sm244038035e9.21.2024.11.12.02.53.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 02:53: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: 4d9dc191-a0e4-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkOWRjMTkxLWEwZTQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDA4Nzg4Ljg5NjkyMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731408788; x=1732013588; 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=7qAlRosy1msISIEm2H4umvbsNeNDI/wvYZSgv7eFOPY=;
        b=Ym48TAg+UaQaIMZtCB0k2TtgI46V4ZqA4g0GqpYPJ2FrB8nWqZbkAmoJy7iULkcmAq
         OhRofzybPca5ah1wQ6MWqP+jsShIHu/jLzZpHyVlPcNVli7pp1Ow1P7wOXVPCqaU1Z5B
         7xlyqY+XVoNnXknfEDb7IxruBIHn3Eb9MxEE3gEF6z/fj4ZjHlJwBpNLUQkjZFSfC5EP
         zpqVXHIkbE8g/PMv0kt0OczcJNNHTdWdwVn4oGR9X38PgJcjuZUhCeVxuxzNlXs9eL6g
         g4vBRP26YXxes972HjSxG4vD/fxLJTjKEDPS9xXh9UAa2WkoBsUCL2fpyvTi56tPY3iJ
         Mw/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731408788; x=1732013588;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7qAlRosy1msISIEm2H4umvbsNeNDI/wvYZSgv7eFOPY=;
        b=JD+Hr9Jb5n3Vy5orlsaKl4ZgFVhcYeVya7buHPX0C8hpq06838G3vzAoR0KXarXDSb
         CLlvxJDdUfuGdV2xLnOFpGYCPndtW17aJJvsO/ZinYYIwBrpibV9SholHpZqAQ1GUFZR
         lQcGxbDIm7BQFR3tanfGhl1tm5mbEhGa5Mji04TpV+eyen/bk7HqktHZvQU9QPvHgvBl
         WaEjvtFXVzuj616Lu5mBd8kaSmAyzfNp9GvAsWd4B7J9L1D8jFSZUvMKo7iGc7+sn9rR
         TtBQdaOsSRhuroiXO3bX3r85+rqsUPldOI/pTrGqGXAEb8IyUYc/gICfM9ePPDU6+rHg
         hRWg==
X-Forwarded-Encrypted: i=1; AJvYcCX9nIhsT3zCWcm3BSMBkZ/XV3tggygzBl3wOHArWFNvD40PWmPJnJc1VAWIql4wLpJzAyFWpK/9D8M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+Cm1QDSxEa/Pi3iAPEte7VyFsf1+BwixFGTXNuaFm5MtrX056
	rPK7NhXU20R7K5pQgIQS0DxT2fXX+TemxWV9knEip0Blwio0QUTHF0Q2ajuVxQ==
X-Google-Smtp-Source: AGHT+IF/rM2L53/Pp2naoliALyCpbYsR6VvszVSY36LXvnnhb4KaNI6D8MsFiLxpIcUB6b2lCLtpXQ==
X-Received: by 2002:a05:600c:5125:b0:431:588a:4498 with SMTP id 5b1f17b1804b1-432cce7295cmr17873385e9.14.1731408788294;
        Tue, 12 Nov 2024 02:53:08 -0800 (PST)
Message-ID: <e855f74b-94a5-4154-9d29-47d8ec44d6f3@suse.com>
Date: Tue, 12 Nov 2024 11:53:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/ucode: Rework Intel's microcode_update_match()
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: <20241108144252.315604-1-andrew.cooper3@citrix.com>
 <20241108144252.315604-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: <20241108144252.315604-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 15:42, Andrew Cooper wrote:
> This function is overloaded, creating complexity; 3 of 4 callers already only
> want it for it's "applicable to this CPU or not" answer, and handle revision
> calculations separately.
> 
> Change it to be microcode_fits_cpu(), returning a simple boolean.
> 
> Notably, this removes a path where cpu_request_microcode() inspects
> currently-loaded microcode revision, just to discard the answer.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Nov 12 10:57:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 10:57:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834355.1249976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAoad-0004hQ-Nj; Tue, 12 Nov 2024 10:57:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834355.1249976; Tue, 12 Nov 2024 10:57: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 1tAoad-0004hJ-Je; Tue, 12 Nov 2024 10:57:43 +0000
Received: by outflank-mailman (input) for mailman id 834355;
 Tue, 12 Nov 2024 10:57: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAoac-0004hB-TH
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 10:57:42 +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 edc99eea-a0e4-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 11:57:37 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5cec8c4e2f6so6552112a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 02:57:37 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03bb7fcasm6093636a12.52.2024.11.12.02.57.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 02:57: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: edc99eea-a0e4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVkYzk5ZWVhLWEwZTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDA5MDU3LjYwMDY4OSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731409057; x=1732013857; 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=6UcTBSXAx3PKE0e/FmnBYsAf3qSMpifSzX92eXRQCAw=;
        b=SkAA2kqYEMkvuiwbgyiJPHH7TLA44CIykgNbqx1HB2plyGWiuY641SQ8gfGnsmB1xF
         f/QwP+s56+LaNsgCReVdcswx6BVTQGuPxoXfLFIIk1XRYXqykn/1N0/DUWiIs0b4EnJ3
         6jdwz8pqvDoS10eeuVkbY5S0lPL0r+qwNULUk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731409057; x=1732013857;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6UcTBSXAx3PKE0e/FmnBYsAf3qSMpifSzX92eXRQCAw=;
        b=EXRv3enrbEdwVkuxAJmby8kw8D/FCljQWshDorESL1yeFMaVJR2FgC5hLW57DFDhxh
         bNZDYP0cUq34UQRzqu14RFDlAfajO78pt3XtvqiL32EwXqrsE5P/a5L/wyV3a0HQYrl4
         jhpWpjdSVyc9w0XVF+03/5x+4sPkmLQhCW5mBFSijVgtjZyEwh11KIskljR3JcLOExaT
         AODYMeghd0U639Zhs+eK7ot25Bumwm3x4s8bL5xMsqp3sk/BuNen0IjuTrVjJoGL2xYp
         4+xZBSA9KjyHDVE+zGnyUMoj1F7Udvi32aSII3ghW/1P9kSbq9nYaWqdeen4yGYtPJph
         GwhA==
X-Forwarded-Encrypted: i=1; AJvYcCXpb0oUhWcM/qbvmL6tcwDDsR8KDaOzGWpjKnBNDZGH369IcoA5qnhZBNK4SbHWCr8umBdPHndPzQk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwffuUDoqK/NNPA6ePlTyDxjB3Yo4qUluvp2eiff29Yo1pWO7Ov
	TcnB7dm2XIH8z9o1m18cL/WU9FVA7qLyx2riN7kNyU3deYTKIbVJaK/b7wXpnLE=
X-Google-Smtp-Source: AGHT+IEwczYs7aBpaEpvQ2pEECZs66fYdWTHEsfED50h1Hq8TQZKZmaHi7CO9mdEztaBy4gHNRLoxQ==
X-Received: by 2002:a05:6402:5255:b0:5ce:de18:3fb7 with SMTP id 4fb4d7f45d1cf-5cf0a4475a7mr12238981a12.21.1731409056934;
        Tue, 12 Nov 2024 02:57:36 -0800 (PST)
Message-ID: <aae641b2-23e3-4631-98e6-454376ff3b9a@citrix.com>
Date: Tue, 12 Nov 2024 10:57:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-4-andrew.cooper3@citrix.com>
 <5aa29b23-cf22-45a5-b7b6-7e307a2238d2@citrix.com>
 <6d972a06-4acd-4b6c-b8e9-543a338d66ae@citrix.com>
 <3f0ad893-4a67-488d-a350-020fdef2ad1f@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3f0ad893-4a67-488d-a350-020fdef2ad1f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/11/2024 10:49 am, Jan Beulich wrote:
> On 12.11.2024 11:36, Andrew Cooper wrote:
>> On 07/11/2024 9:58 pm, Andrew Cooper wrote:
>>> On 07/11/2024 12:21 pm, Andrew Cooper wrote:
>>>> With the tangle of logic starting to come under control, it is now plain to
>>>> see that parse_blob()'s side effect of re-gathering the signature/revision is
>>>> pointless.
>>>>
>>>> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
>>>> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().  For
>>>> good measure, the apply_microcode() hooks also keep the revision correct as
>>>> load attempts are made.
>>>>
>>>> This finally gets us down to a single call per CPU on boot / S3 resume, and no
>>>> calls during late-load hypercalls.
>>>>
>>>> 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>
>>>>
>>>> Slightly RFC.
>>>>
>>>> Just before posting, I've realised that cpu_request_microcode() does actually
>>>> use the current CPU revision, and it's buggy, and it's the cause of `xen-ucode
>>>> --force` not working as expected.
>>>>
>>>> I'm tempted to do another series cleaning that up in isolation, such that this
>>>> patch becomes true in this form.
>>> Actually no.Â  Having tried a bit, I think it's easier to do with patch 2
>>> already in place.
>>>
>>> So instead I'm tempted to edit the middle paragraph to note that it
>>> currently uses the revision but that's going to be fixed shortly.Â  The
>>> rest of the paragraph explains why it's still safe anyway.
>> So, after the latter series, this patch happens to be accurate.
>>
>> cpu_request_microcode() does read the revision, but discards the result
>> of the calculation which used it.
> What's the intended overall sequence of patches then? With two series that
> (aiui) now have grown some sort of dependency, and with this series have
> gained a 4/3 patch, having a clear picture would certainly help. Might it
> be best if you merge both series and re-submit as a single one?

The order turns out to be as emailed out and threaded.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 10:58:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 10:58:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834361.1249985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAob1-00058D-U5; Tue, 12 Nov 2024 10:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834361.1249985; Tue, 12 Nov 2024 10:58: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 1tAob1-000586-Ra; Tue, 12 Nov 2024 10:58:07 +0000
Received: by outflank-mailman (input) for mailman id 834361;
 Tue, 12 Nov 2024 10:58: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAob0-00057o-Ni
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 10:58:06 +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 fd21792f-a0e4-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 11:58:03 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4316cce103dso69199435e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 02:58: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-432aa6bee9asm248081475e9.19.2024.11.12.02.58.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 02:58: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: fd21792f-a0e4-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZkMjE3OTJmLWEwZTQtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDA5MDgzLjM1MzI4Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731409083; x=1732013883; 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=RPuFwaL3me5rE1rrWrcYUqVhle61hcZ5cCjlmR55mtM=;
        b=dgv9M7IZZ/vS75j9xjH1y+gYwWQOTYyWcHVN/uM9TeOS/SRkVcbhsHrCZpux7xCLJ0
         S1goqsdxMWJ512FYZ37TUc0TgiEoXTPP/1sgVniDScPlikMPsTno2bhm4OZz/Thk+q5s
         ipcIZfS6dkZV4/oBse15M5SxZwYLRVSuIkSELA3KoO2KB0ZL9jHvJ/0herLogm94i5wX
         9CSJS4u8Y0T4/U0uXkl/PI+F9GE5dE1QTOW+S0QqltVZzfS1yzuyoc9AW8yRK2eSikks
         m7htHPh1l+ySGFUitXl2K2CQa8duowMAHaeY+knkqlBDt2UBgRCEdTDNrojeyc5+0Z71
         g3Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731409083; x=1732013883;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RPuFwaL3me5rE1rrWrcYUqVhle61hcZ5cCjlmR55mtM=;
        b=aUeU44GtFNRcU8MmZRLoWkpKnyuZQK7R+BBdB4Qh8ilP2RsSGVG8oCt2RTn4ThtH/P
         S//iOlSxsvLg/d+RLtK6qz9XRRi1yZw1WJpQL47pUABstQeJt/8yrYmHDIvesVOaFe/D
         Ziqb9QYvQ9UsQQF9f1AcaQX/MexQZKP4QW6W6bKoH3NFpsp58sC3qgXkd3KlBWqZmIQu
         KPNtvgVMdBv4TMuNM+sfvgzxjucNcU7Q/3zrBwTyqcBfysAXZjUHd4PiLNPGn9OxSzxc
         4wzoWd4swvwFbV46IgkuH0qcBTC0siRvWYJFUbCZEYEpojUmJMGTj8Z/uDbgcznU820S
         N1og==
X-Forwarded-Encrypted: i=1; AJvYcCWHQUBPsEAcFob9Iq+UCRxLAx9vtB6mvkEE2Nt8Dmeao4cZG79PiSrmKim7S+eCmshZ928fb0p7vlc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxiqiGaejXN1JisW8GHUgYjnZXr6jYM6/ZXfTgU7vBxbwrPtB8O
	bkT3dCYWzHR5lDBRTt7q90DFdmWbZsf82aWJloZI7ZL4ttSuh8/yznJNuWiLq38tbHy6TSM+4BA
	=
X-Google-Smtp-Source: AGHT+IHPasvj9xMOPTVMKwILgqKoXOexJdH+LG2I+tjFMPJ1SHhXL8Xi5dSRlrxyyNulCguP8o5ARw==
X-Received: by 2002:a05:600c:3b87:b0:431:5ba1:a520 with SMTP id 5b1f17b1804b1-432b74fec0bmr177737075e9.3.1731409082814;
        Tue, 12 Nov 2024 02:58:02 -0800 (PST)
Message-ID: <73bdda88-da57-475e-87dc-943d527b3e67@suse.com>
Date: Tue, 12 Nov 2024 11:58:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/ucode: Rework AMD's microcode_fits()
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: <20241108144252.315604-1-andrew.cooper3@citrix.com>
 <20241108144252.315604-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: <20241108144252.315604-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.11.2024 15:42, Andrew Cooper wrote:
> This function is overloaded, creating complexity; 3 of 4 callers already only
> want it for it's "applicable to this CPU or not" answer, and handle revision
> calculations separately.
> 
> Change it to be microcode_fits_cpu(), returning a simple boolean.  The
> checking of the equiv table can be simplified substantially too; A mapping
> will only be inserted if it's correct for the CPU, so any nonzero equiv.sig
> suffices to know that equiv.id is correct.
> 
> Drop compare_header() too, which is simiarly overloaded, and use
> compare_revisions() directly.
> 
> Notably, this removes a path where cpu_request_microcode() inspects
> currently-loaded microcode revision, just to discard the answer.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Nov 12 11:00:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 11:00:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834368.1249995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAocz-0006gH-8N; Tue, 12 Nov 2024 11:00:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834368.1249995; Tue, 12 Nov 2024 11:00: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 1tAocz-0006gA-5o; Tue, 12 Nov 2024 11:00:09 +0000
Received: by outflank-mailman (input) for mailman id 834368;
 Tue, 12 Nov 2024 11:00: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAocx-0006fw-E3
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 11:00:07 +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 455c76a8-a0e5-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 12:00:04 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4316a44d1bbso45710485e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 03:00: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
 5b1f17b1804b1-432b054aed6sm203008895e9.15.2024.11.12.03.00.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 03:00: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: 455c76a8-a0e5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ1NWM3NmE4LWEwZTUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDA5MjA0LjU0NjI1Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731409204; x=1732014004; 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=qPsdqIwA9UKL567W0fQtpntc+rItlAmX8h3hQ74XqYc=;
        b=cY6DSIaV3cR1PIVM6xtNaah4A//mgQDkidKdKpa1Tf+6NEEWMT4N59X8QTDB23N45u
         l8FvrqsrYTblcZIGAk1+Jklog/SIHQkT314D/OOuMRHlIXZdlyBGuQfsdGFiXQ1hMYhm
         Lw21tbn8PByHsZPjUK8nwAoiajrWKpQRzzRmlfsILVRiZ6qCfSC48L7Q6t0GowSwZWHT
         ygK5huwMYOKMV9kdtukheMbJdE3Q4XIzGtlLxeUxny0nnTm+eZzAA2xzGmH/YkViHo0Z
         ap9pBAWiLbX27vG0mCaAJQ4Sbrui4Yk0a3JJEl2aq5UdnDwlE2/+QGBMYKfkwmI7nVJu
         MsKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731409204; x=1732014004;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qPsdqIwA9UKL567W0fQtpntc+rItlAmX8h3hQ74XqYc=;
        b=Am8h3yZNTVvyyrpA4eqKN9Uwql+gFjGWXMP9q46xMSY3w3v9QKLds6iO/HwkQjEAFT
         WsFk9q0woJ1rlaxJrmOO3gegeqVIZ5Xsq1XAv/Cgf8Q03QTQtVImYR5quAzRRzDrOhl1
         mwq818rWYzoc7QRC1KCDiysl0pVlF3aANSVVo/PYLxw4tn/3iI13lRHTm4eIAeVW5+9F
         i9EUS6TAGlObXpZVX+yHT8YY7PuKhI7feG/cMTbsbkmFSqIA3KSs9KCUkicoXba+pHgR
         Jh8i0PO7Y9fFgiVJxDu5pxwCctCS6ueBOdSUaqhMxLbaDkxAfI94e300ZV2uSqs+qhPj
         /wnA==
X-Forwarded-Encrypted: i=1; AJvYcCVm4BpF+rysFq3DhBVdiJORSTZj0g9zrXMYzlCKa+CI6qLs9TGZ3q1D1t8XXeqvMui0CNujA0prC84=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9NvO+UTcUzE3Q3IbfMsJef0DAeG+YepvXhZcI3IGufbzsNl32
	f1FOvoqt0UGjEpuyczHT3WlstbglH9rqSnmBjDPaVCbRR90yINw/Cn8AoyQfVQ==
X-Google-Smtp-Source: AGHT+IFZpY4t4YA+aTYFRcAcumGVmHGRq5+bUYwAloTDLtXHEMRjdNmPpIaA8K/UQS3W7tlstlAlhg==
X-Received: by 2002:a05:600c:1c16:b0:431:4a83:2d80 with SMTP id 5b1f17b1804b1-432b749bc9bmr144731045e9.0.1731409203892;
        Tue, 12 Nov 2024 03:00:03 -0800 (PST)
Message-ID: <74cb0caa-6089-4bcc-9c9f-1d049d0553d7@suse.com>
Date: Tue, 12 Nov 2024 12:00:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
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: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-4-andrew.cooper3@citrix.com>
 <5aa29b23-cf22-45a5-b7b6-7e307a2238d2@citrix.com>
 <6d972a06-4acd-4b6c-b8e9-543a338d66ae@citrix.com>
 <3f0ad893-4a67-488d-a350-020fdef2ad1f@suse.com>
 <aae641b2-23e3-4631-98e6-454376ff3b9a@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: <aae641b2-23e3-4631-98e6-454376ff3b9a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2024 11:57, Andrew Cooper wrote:
> On 12/11/2024 10:49 am, Jan Beulich wrote:
>> On 12.11.2024 11:36, Andrew Cooper wrote:
>>> On 07/11/2024 9:58 pm, Andrew Cooper wrote:
>>>> On 07/11/2024 12:21 pm, Andrew Cooper wrote:
>>>>> With the tangle of logic starting to come under control, it is now plain to
>>>>> see that parse_blob()'s side effect of re-gathering the signature/revision is
>>>>> pointless.
>>>>>
>>>>> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
>>>>> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().  For
>>>>> good measure, the apply_microcode() hooks also keep the revision correct as
>>>>> load attempts are made.
>>>>>
>>>>> This finally gets us down to a single call per CPU on boot / S3 resume, and no
>>>>> calls during late-load hypercalls.
>>>>>
>>>>> 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>
>>>>>
>>>>> Slightly RFC.
>>>>>
>>>>> Just before posting, I've realised that cpu_request_microcode() does actually
>>>>> use the current CPU revision, and it's buggy, and it's the cause of `xen-ucode
>>>>> --force` not working as expected.
>>>>>
>>>>> I'm tempted to do another series cleaning that up in isolation, such that this
>>>>> patch becomes true in this form.
>>>> Actually no.Â  Having tried a bit, I think it's easier to do with patch 2
>>>> already in place.
>>>>
>>>> So instead I'm tempted to edit the middle paragraph to note that it
>>>> currently uses the revision but that's going to be fixed shortly.Â  The
>>>> rest of the paragraph explains why it's still safe anyway.
>>> So, after the latter series, this patch happens to be accurate.
>>>
>>> cpu_request_microcode() does read the revision, but discards the result
>>> of the calculation which used it.
>> What's the intended overall sequence of patches then? With two series that
>> (aiui) now have grown some sort of dependency, and with this series have
>> gained a 4/3 patch, having a clear picture would certainly help. Might it
>> be best if you merge both series and re-submit as a single one?
> 
> The order turns out to be as emailed out and threaded.

Yet above you said "after the latter series, this patch happens to be accurate."
Which suggest to me that at least part of the latter series needs to be in place
for the change here to be correct. IOW - I'm confused now.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 11:23:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 11:23:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834385.1250013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAoz8-0002O3-3l; Tue, 12 Nov 2024 11:23:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834385.1250013; Tue, 12 Nov 2024 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 1tAoz8-0002Nw-0v; Tue, 12 Nov 2024 11:23:02 +0000
Received: by outflank-mailman (input) for mailman id 834385;
 Tue, 12 Nov 2024 11:23: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAoz6-0002Nq-2r
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 11:23:00 +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 778fe981-a0e8-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 12:22:57 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-53b34ed38easo5458654e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 03:22: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-432b05c1f56sm204128805e9.34.2024.11.12.03.22.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 03:22: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: 778fe981-a0e8-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmMiLCJoZWxvIjoibWFpbC1sZjEteDEyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc3OGZlOTgxLWEwZTgtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDEwNTc3LjEyNjYzNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731410576; x=1732015376; 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=f0zn5qLNjMJBaxfWeCflJF/SguG8+s50GLDJxt7T8bs=;
        b=YlX5iI17Y+EtO6ysWPHqK7YyIVWOvX8mFFZ9nR6B6GRBxyEG0KerEhH68rOMBWrjv2
         VFtXqw4xx3fvjhj5jYrPcBYXRTMMKyyQ12f6kfiMrQcl3d6MWf8ZJ8SA6Z8L2y6FOGnQ
         iDGQnPApuNGjSMkTe57dgNSMmrSEPmin0p04KI80FRPyq7VKLQmYxqx6a5GI8lhsUkK9
         f0GlZCs5qT0EuSWPvVu71vIDjP3IOs0EfAW8H349yNjvrWBVVMPNzmMJYMQbVCY0c5PO
         B6L0yvByG0u0nv/KlIiV5sdjEv2rQwXoBnvpNFTgHh2CUV9iJQIPnF1L3AgAcUZPWkwD
         Qgjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731410576; x=1732015376;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f0zn5qLNjMJBaxfWeCflJF/SguG8+s50GLDJxt7T8bs=;
        b=lUMAX9HuZYwrLSGhx21PzGsBECwm/nOaWRimlqrRXQWztK/NEDEjJ+QyTx/QdSUoA/
         UiYThn1iQ68plE1h88EYnZVye9DBEDH9xcWbOuhHimQGJOQfSpetgxzz/PfdAaOjX7fL
         ODDs7AqrJFRH4+37gVYGyrBYUerBQJHpYQIi5xLVZn2qMjbwd1n9YTsrJLQAx3LR8OF8
         cLl1br5PuW9I847VlEpcduNnlawLAKTcXWejQ0WA29f3Vd1P5fH9drC9DeFohtnNlh6b
         6TY+fh9SzkFDb6pf3NYkaxmXdoa2o8lxIy43mu3sBonHfa0gjIA/Dk5/mrq+k1IZoQSo
         yRcQ==
X-Forwarded-Encrypted: i=1; AJvYcCV+wz+Vv2WOPRyDVN6nZCZHLORNR3tud3V0KJ5Q/bta16YjKbNsDj248SKHboH5inNK+/oyTu72Ck8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6M2rX3tG40DVsqAqY/C2xqxGROlt2BIcQcLWMhrCATh2AJSKU
	JUfVk7QJRN1DPjtJQ4G7OT/r5rci2mO8CzWTPF6I94r4Wgfr2OZ1lEsR9AYLUw==
X-Google-Smtp-Source: AGHT+IHv5tJZM/CZtZkzb35diPegJbA7tGqzJqnhO2m/FKOrZtxKnNeufvS4Z8dinQsWnVaJMt57mA==
X-Received: by 2002:a05:6512:238c:b0:52f:d0f0:e37e with SMTP id 2adb3069b0e04-53d862e4fc4mr7676419e87.42.1731410576549;
        Tue, 12 Nov 2024 03:22:56 -0800 (PST)
Message-ID: <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
Date: Tue, 12 Nov 2024 12:22:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
 <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.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: <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 19:16, Oleksii Kurochko wrote:
> @@ -25,8 +27,11 @@
>  
>  static inline void *maddr_to_virt(paddr_t ma)
>  {
> -    BUG_ON("unimplemented");
> -    return NULL;
> +    unsigned long va_offset = maddr_to_directmapoff(ma);
> +
> +    ASSERT(va_offset < DIRECTMAP_SIZE);

Much like with the consideration towards virt_to_maddr() that was
corrected from v4, I think this one also needs adjusting:

    ASSERT(va_offset < DIRECTMAP_SIZE + (DIRECTMAP_VIRT_START -
                                         directmap_virt_start));

This is because ...

> +    return (void *)(directmap_virt_start + va_offset);

... you're offsetting the VA here. It may then want accompanying
by

    ASSERT(va_offset >= DIRECTMAP_VIRT_START - directmap_virt_start);

(probably to go first).

> @@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
>  
>      return fdt_virt;
>  }
> +
> +vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
> +
> +struct page_info *__ro_after_init frametable_virt_start = frame_table;
> +
> +#ifndef CONFIG_RISCV_32
> +
> +/* Map a frame table to cover physical addresses ps through pe */
> +static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
> +{
> +    static mfn_t __initdata frametable_mfn_start = INVALID_MFN_INITIALIZER;
> +
> +    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
> +    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
> +    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
> +    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
> +    mfn_t base_mfn;
> +
> +    if ( mfn_eq(frametable_mfn_start, INVALID_MFN) )
> +    {
> +        frametable_mfn_start = maddr_to_mfn(aligned_ps);
> +
> +        frametable_virt_start -= paddr_to_pfn(aligned_ps);
> +    }
> +    else
> +        panic("%s shouldn't be called twice\n", __func__);

As said on the v4 thread - I don't think this is needed. Aiui Misra would
actually dislike it, as it's unreachable code. Just to re-iterate: My
complaint there wasn't about this missing check, but about the function
partly giving the impression of expecting to be called more than once.

> +    if ( frametable_size > FRAMETABLE_SIZE )
> +        panic("The frametable cannot cover [%#"PRIpaddr", %#"PRIpaddr")\n",
> +              ps, pe);
> +
> +    /*
> +     * align base_mfn and frametable_size to MB(2) to have superpage mapping
> +     * in map_pages_to_xen()
> +     */
> +    frametable_size = ROUNDUP(frametable_size, MB(2));
> +    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, PFN_DOWN(MB(2)));

As you already use PFN_DOWN() once, why do you open-code it for the other
argument? You also use it ...

> +    if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
> +                          PFN_DOWN(frametable_size),

... here, where the purpose of the argument is exactly the same.

> +void __init setup_mm(void)
> +{
> +    const struct membanks *banks = bootinfo_get_mem();
> +    paddr_t ram_start = INVALID_PADDR;
> +    paddr_t ram_end = 0;
> +    unsigned int i;
> +
> +    /*
> +     * We need some memory to allocate the page-tables used for the directmap
> +     * mappings. But some regions may contain memory already allocated
> +     * for other uses (e.g. modules, reserved-memory...).
> +     *
> +     * For simplicity, add all the free regions in the boot allocator.
> +     */
> +    populate_boot_allocator();
> +
> +    for ( i = 0; i < banks->nr_banks; i++ )
> +    {
> +        const struct membank *bank = &banks->bank[i];
> +        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
> +        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
> +        unsigned long bank_size = bank_end - bank_start;
> +
> +        ram_start = min(ram_start, bank_start);
> +        ram_end = max(ram_end, bank_end);
> +
> +        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
> +    }
> +
> +    setup_frametable_mappings(ram_start, ram_end);

Just to double check: There is a guarantee that ->nr_banks isn't going to
be zero? Else the setup_frametable_mappings() invocation here would badly
degenerate.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 11:26:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 11:26:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834398.1250023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAp2S-00031k-KP; Tue, 12 Nov 2024 11:26:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834398.1250023; Tue, 12 Nov 2024 11:26: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 1tAp2S-00031d-Ht; Tue, 12 Nov 2024 11:26:28 +0000
Received: by outflank-mailman (input) for mailman id 834398;
 Tue, 12 Nov 2024 11:26: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=yVpr=SH=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tAp2R-00031H-CH
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 11:26:27 +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 f24b5cef-a0e8-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 12:26:23 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9e8522c10bso857083666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 03:26:23 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0dee5e6sm704321466b.137.2024.11.12.03.26.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 03:26: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: f24b5cef-a0e8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYyNGI1Y2VmLWEwZTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDEwNzgzLjkwMDgwMSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731410782; x=1732015582; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=YDUeboFTqpfDpgTyvfpA/Swkz5Hj6r2NHKCdkbebt5A=;
        b=ZGfSVcJT4/oxKS6eE7BvVhd7zuSKf8SLiNOVrgIN8FEWuI7CmdvyRGhRHgLnGooNGp
         2tuExP875XJYO6fWoDuGykyA/yntTC34MpWI2IoRE3t+/gV6JG9iBkLYQwnFkPAPmbvD
         KYs7O3RHutA0eF9v1mApFXeTE0JRyEeska1Ew=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731410782; x=1732015582;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=YDUeboFTqpfDpgTyvfpA/Swkz5Hj6r2NHKCdkbebt5A=;
        b=Dm43JhM+KpWE10aTALIdSyul6CaMGa6k9dxxQgaK0SovlgrZ3QGwNQI4q98NXC1OlF
         RlWEZ7CV1mC4v5xQRXKavZ+nsSBKN4LTxgaabRl+s7LGoXzwKaEYmmOHaeGoT0n2mthV
         sWS76MxLSuWfc/ia9iHixoPJKavQ7NMw6CfMAOlovlRxFjM0c+H7N2cOLdMW1hDPIvPz
         zbXfOugBU5RyLZc8Eii0Mx2mLU8rOwYwRT6U6k9hz7aCzih7TY3LpZia2XAlcnPxAEkt
         MA3bymbCkkzjzRDPLYS8ehP/CY35Fmce04kMSLBsWecpu2zUVwTUruUpLDOsOkwSl4/B
         UBmA==
X-Forwarded-Encrypted: i=1; AJvYcCV7hK60LjNp9gteFmGdbWFBrrYihdn+TLYQ1FQJ8XB+vx68nRjA0t8RUDb7/VwH8ks7lFmYq0qSwfA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCrpgzF1DRVfqrt/YXwTiOUhH3YBFdJGrUpyvajgivF6las084
	YivKTYsKmqcFqBjYh8gykP8X4NcOWCqPn/Dt9vsdPckAzcJH1M2GTJQjiXHmldc=
X-Google-Smtp-Source: AGHT+IEAMyArMZN66COTvW23x62lBLsbglG8DuIZGTgVFUxR5UVU5ftDDQqof+PQqDbAA1fuqahPeQ==
X-Received: by 2002:a17:907:7b89:b0:a9a:5b84:ac81 with SMTP id a640c23a62f3a-a9eeffe9032mr1099774566b.31.1731410782507;
        Tue, 12 Nov 2024 03:26:22 -0800 (PST)
Date: Tue, 12 Nov 2024 12:26:21 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [XEN PATCH] xen/vpci: Fix UB in mask_write
Message-ID: <ZzM7XZmKfFxys819@macbook>
References: <559dfac91b8f097bc59c4de194fd2ae2b5b4144c.1730880005.git.mykyta_poturai@epam.com>
 <ZyswF4grJSNcVqY_@macbook>
 <Zysx4ZwCUv62uTBw@macbook>
 <6d3f322f-7047-4033-95b5-86751a58cc70@suse.com>
 <65d2043f-5e6f-4d84-8241-eb28dd94fc45@epam.com>
 <ZytkOP_7nmeSVEYH@macbook>
 <7c57371b-803a-418b-97cb-55e79516eed4@epam.com>
 <ZyuDwnYj5-uCWrMy@macbook>
 <f5d8396b-26a7-476d-9871-63f603b983bd@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f5d8396b-26a7-476d-9871-63f603b983bd@epam.com>

On Mon, Nov 11, 2024 at 12:21:32PM +0000, Mykyta Poturai wrote:
> On 06.11.24 16:57, Roger Pau MonnÃ© wrote:
> > 
> > Let's try to figure out what causes msi_maxvec to be 0 in your case
> > and then we can see how to better detect this.  If msi_maxvec needs to
> > be checked it should likely be done in init_msi().
> > 
> > Regards, Roger.
> 
> Hi everyone,
> So I have done some more investigations, and I think it finally makes 
> sense. The real cause of my crashes was a long-standing bug in yet to be 
> upstreamed vpci patches where the register value and offset were swapped 
> by mistake. And this bug was hidden for a long time because mask_write 
> skipped actually doing anything, respecting vectors = 0, so I failed to 
> spot it from the get-go.
> 
> Regarding msi_maxvec there seems to be an implicit dependency between 
> CONFIG_HAS_VPCI and CONFIG_HAS_PCI_MSI. If HAS_PCI_MSI=n, then 
> pdev_msi_init gets replaced with a stub and msi_maxvec remains 0, but it 
> is still used in control_write unconditionally.

Hello,

If HAS_PCI_MSI=n then vPCI shouldn't attempt to handle the MSI(-X)
capabilities in the first place.  However that can lead to incorrect
scenarios if vPCI is used for dom0, as vPCI not supporting MSI(-X)
grants dom0 unmediated access to the capability registers, which won't
result in a functional system at least on x86.

I think the more robust solution is for vPCI to require
HAS_PCI_MSI=y.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 12:06:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 12:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834424.1250093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tApen-0001bo-S1; Tue, 12 Nov 2024 12:06:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834424.1250093; Tue, 12 Nov 2024 12:06: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 1tApen-0001aU-LP; Tue, 12 Nov 2024 12:06:05 +0000
Received: by outflank-mailman (input) for mailman id 834424;
 Tue, 12 Nov 2024 12:06: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=3GC9=SH=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1tApem-0000xb-38
 for xen-devel@lists.xen.org; Tue, 12 Nov 2024 12:06:04 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7609268e-a0ee-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 13:05:52 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1tApeQ-001dvq-2D;
 Tue, 12 Nov 2024 12:05:42 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1tApeQ-001S1e-2f;
 Tue, 12 Nov 2024 12: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: 7609268e-a0ee-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwNC4xMzAuMjE1LjM3IiwiaGVsbyI6Im1haWwueGVucHJvamVjdC5vcmcifQ==
X-Custom-Transaction: eyJpZCI6Ijc2MDkyNjhlLWEwZWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDEzMTU3LjIyMDk1Nywic2VuZGVyIjoiYW5kcmV3Y29vcEB4ZW5iaXRzLnhlbi5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZyJ9
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 463 v2 (CVE-2024-45818) - Deadlock in x86
 HVM standard VGA handling
Message-Id: <E1tApeQ-001S1e-2f@xenbits.xenproject.org>
Date: Tue, 12 Nov 2024 12:05:42 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2024-45818 / XSA-463
                               version 2

               Deadlock in x86 HVM standard VGA handling

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

The hypervisor contains code to accelerate VGA memory accesses for HVM
guests, when the (virtual) VGA is in "standard" mode.  Locking involved
there has an unusual discipline, leaving a lock acquired past the
return from the function that acquired it.  This behavior results in a
problem when emulating an instruction with two memory accesses, both of
which touch VGA memory (plus some further constraints which aren't
relevant here).  When emulating the 2nd access, the lock that is already
being held would be attempted to be re-acquired, resulting in a
deadlock.

This deadlock was already found when the code was first introduced, but
was analysed incorrectly and the fix was incomplete.  Analysis in light
of the new finding cannot find a way to make the existing locking
discipline work.

In staging, this logic has all been removed because it was discovered
to be accidentally disabled since Xen 4.7.  Therefore, we are fixing the
locking problem by backporting the removal of most of the feature.  Note
that even with the feature disabled, the lock would still be acquired
for any accesses to the VGA MMIO region.

IMPACT
======

A (not necessarily malicious) HVM guest kernel can lock up the entire
host.

VULNERABLE SYSTEMS
==================

Xen versions 4.6 through 4.19 are vulnerable.  Staging (4.20 dev) is
not vulnerable; as noted above, the functionality was already removed
prior to the discovery of this issue.

Only x86 systems running HVM guests are vulnerable.  Architectures other
than x86 are not vulnerable.

Only HVM guests can leverage the vulnerability.  PVH and PV guests
cannot leverage the vulnerability.

MITIGATION
==========

Running only PV or PVH guests will avoid this vulnerability.

CREDITS
=======

This issue was discovered by Manuel Andreas of Technical University of
Munich.

RESOLUTION
==========

Applying the appropriate set of attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa463/xsa463-4.19-??.patch      Xen 4.19.x
xsa463/xsa463-4.18-??.patch      Xen 4.18.x
xsa463/xsa463-4.17-??.patch      Xen 4.17.x
xsa463/xsa463-4.16-??.patch      Xen 4.16.x

$ sha256sum xsa463*/*
405655548529a52ced40b42341a7e991945ff5f7851709b60d85a1d1a03a0f7f  xsa463/xsa463-4.16-01.patch
6bf659c0cec609f79101b237b6ac07274b4f08b20ac24d4b399732d6c3dbae3b  xsa463/xsa463-4.16-02.patch
2ae4413ac1781506353a34b6a3b5836bc426ceae789696e9c1fe6274d67e073d  xsa463/xsa463-4.16-03.patch
87d2515141f6900c2f20ed449cf86cc82928fcf2b0424c2faa9b8cfa49940447  xsa463/xsa463-4.16-04.patch
227bf1f048dfa389b04d8208f0003f77c006340d9258906ce21bf3f5fa226a67  xsa463/xsa463-4.16-05.patch
13d17ec4ce9c4844ddf33d2f034f354e9b9907425b98d242e0472021d3ae2c4a  xsa463/xsa463-4.16-06.patch
ad0c25dcf768dfe88084f34f15e9b9bc91f32f3c8c281b172da673aadc568b54  xsa463/xsa463-4.16-07.patch
065395ea7b4eb9ca26c48a110ea03ceac243a4c9390e25e044d134408ddc88e0  xsa463/xsa463-4.16-08.patch
6c4ad589e979e200dee6ec060832489a841b91751801e42f63d8e7aa2f7bc1f5  xsa463/xsa463-4.16-09.patch
3ce5056d796811c930b6b6453a18fd285d50e871135b22dacbed845b9e2e6fd7  xsa463/xsa463-4.16-10.patch
f6be5907e34c9bdceafd56b413b26b9dea44faae6db49ee15c0866056880a615  xsa463/xsa463-4.17-01.patch
1907bf226db3f67be539ae70c581969011ee77e4161993e8e68aef66625f62c9  xsa463/xsa463-4.17-02.patch
6c51a337b50cba01b5255c12276ed63ab771ddb12a104e468c436328fab27ca6  xsa463/xsa463-4.17-03.patch
efc532d8382d8d765e43cfd72edc3d0d4555a3a9faa019f77ef85979f241c265  xsa463/xsa463-4.17-04.patch
3b7cf5ff13e7a6080b16d56fe713369cc027928f00dc85508593b549f2195e09  xsa463/xsa463-4.17-05.patch
a2f1000352d3f426bb6a07ffb0e9fb942975b49da1c6dd1109bce167acd37778  xsa463/xsa463-4.17-06.patch
544d02f57b7f2c4101a3ccd3f4fc5a68e168bcf7806f19677c1675f96d16ce34  xsa463/xsa463-4.17-07.patch
93d422d0e143884ffd51ecebd0bad08a75002e61b0d5af4b38ac0d190b29039a  xsa463/xsa463-4.17-08.patch
759ea086c438f9fb7dedb0b60b5455b81d0452c693f88c270e3bd3911ea26a43  xsa463/xsa463-4.17-09.patch
94162a21fa97f041abf94a32b9999d98d16055b1f6e2e4230d123f4c8ef202fb  xsa463/xsa463-4.17-10.patch
a19b7675c633f5d33fc611a1a258c2a1f579e170245cf021662b056c144ce6b1  xsa463/xsa463-4.18-01.patch
61db94f3e856593c1a58e1c32863ce4228ee2bedeac5f56ddd527b7fd4dd91ee  xsa463/xsa463-4.18-02.patch
211df1a265f657d6a601fa56b592030b8db5856399531cf825f2e74f10e6f054  xsa463/xsa463-4.18-03.patch
f1be6433e2223acd67301b78978d24114adc5021a67ed0874e57d70e05c05fab  xsa463/xsa463-4.18-04.patch
79e050d6d9ed2cf5e3dbaff035d5cc00b727ccb5ddfcda0cf8e475f799f980bd  xsa463/xsa463-4.18-05.patch
823f7214aa1ad325b34da965fef48c6b3bf805ecf41532cdf0ccd283d1bf1708  xsa463/xsa463-4.18-06.patch
4cad1195998178c771f960d435d4d60c40dfc311a71e1d0a0be2bc651dd97076  xsa463/xsa463-4.18-07.patch
569e555814834c99b0316c1c664cf08d16807ef7d08520d7ed9c01c914dbe1dc  xsa463/xsa463-4.18-08.patch
8c28ba35b79648fde1290f307e34a6594ec091f38e8ec4d11f07377aeac82149  xsa463/xsa463-4.18-09.patch
82b4a135fe27bf581996c334a5d3306b5aecb1a5dbefcc5cd1f151bdf1237f22  xsa463/xsa463-4.19-01.patch
b158d65fe3775b84192c205adda5f461c82a76f6c58aa03e0d1958062023a4ad  xsa463/xsa463-4.19-02.patch
53135fc79a440a03141dab05f2d02e784dfed226d0faadc014b2b14fb1e6bbbe  xsa463/xsa463-4.19-03.patch
e54ea9cbf82881d21c2b5b407803eeae948b9f804e5c643431b95dc5430be345  xsa463/xsa463-4.19-04.patch
65195bc7a52aa3582fd94010b95fc39979f1aad5ac961fe625c89573276b4b40  xsa463/xsa463-4.19-05.patch
cf8e589067ee08c628fd65ee3726546a27f39dc3098283346126f6745cc2aa9a  xsa463/xsa463-4.19-06.patch
b13f01ea76a54dd6b2290afeaf6f6790892050588f128a276e408340afd6eb6a  xsa463/xsa463-4.19-07.patch
dfd48e8f925ff487c6b8c2aaeec58442a9b9bdef98461e59191cd20a2094bad9  xsa463/xsa463-4.19-08.patch
8c28ba35b79648fde1290f307e34a6594ec091f38e8ec4d11f07377aeac82149  xsa463/xsa463-4.19-09.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmczQ/UMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZA/oH/iNqbCCBE9lP+Wao3Zkzuo+krvVfd3f6am/jzp/J
DT39YZpRsZPLKGE3NKf12y88A0aFpVq2ZBE4efubx3tS1hJqf4AmQ2AOlHAAkFa4
d966jzX/8wFmuO0HnRgHI5Z3mADQEQL8TLeb8rAuPuqguusX7RoG4vvLNQmy/S9T
50CYU86AN9Of3jaUVZQp10N6O9fnV/D3X6rKWoBTOSGDMnYf4mh6FgPcntg9sKjQ
QGzlZXpEi3Bjs37vtaDi7cgQ8TDGJGVAsBC1d4IUufvlqYycjAgZN0ukOAmn9mMl
6/mDQdgGhRMJMvho57jGnaNQsjtovA7eBjtiU0tABeyh9og=
=KD+y
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-01.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJjYWNoZSIgc3RydWN0IG1lbWJl
cgoKU2luY2UgNjhlMTE4MzQxMWJlICgibGlieGM6IGludHJvZHVjZSBhIHhj
X2RvbV9hcmNoIGZvciBodm0tMy4wLXg4Nl8zMgpndWVzdHMiKSwgSFZNIGd1
ZXN0cyBhcmUgYnVpbHQgdXNpbmcgWEVOX0RPTUNUTF9zZXRodm1jb250ZXh0
LCB3aGljaAplbmRzIHVwIGRpc2FibGluZyBzdGR2Z2EgY2FjaGluZyBiZWNh
dXNlIG9mIGFyY2hfaHZtX2xvYWQoKSBiZWluZwppbnZvbHZlZCBpbiB0aGUg
cHJvY2Vzc2luZyBvZiB0aGUgcmVxdWVzdC4gV2l0aCB0aGF0IHRoZSBmaWVs
ZCBpcwp1c2VsZXNzLCBhbmQgY2FuIGJlIGRyb3BwZWQuIERyb3AgdGhlIGhl
bHBlciBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIC8KY2hlY2tpbmcgYXMgd2Vs
bCByaWdodCBhd2F5LCBidXQgbGVhdmUgdGhlIHVzZSBzaXRlcyBvZgpzdGR2
Z2FfY2FjaGVfaXNfZW5hYmxlZCgpIHdpdGggdGhlIGhhcmQtY29kZWQgcmVz
dWx0IHRoZSBmdW5jdGlvbiB3b3VsZApoYXZlIHByb2R1Y2VkLCB0byBhaWQg
dmFsaWRhdGlvbiBvZiBzdWJzZXF1ZW50IGRyb3BwaW5nIG9mIGZ1cnRoZXIg
Y29kZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZFLTIwMjQtNDU4
MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w
ZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDUz
YjcyNDZiZGZiM2MyODBhZGNkZjcxNDkxOGU0ZGVjYjdlMTA4ZjQpCgpkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMgYi94ZW4vYXJjaC94
ODYvaHZtL3NhdmUuYwppbmRleCA4NmM4MmNiZDc0NTYuLmFkMjU5NGY5NWIz
ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKKysrIGIv
eGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKQEAgLTc3LDkgKzc3LDYgQEAgaW50
IGFyY2hfaHZtX2xvYWQoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9z
YXZlX2hlYWRlciAqaGRyKQogICAgIC8qIFRpbWUgd2hlbiByZXN0b3JlIHN0
YXJ0ZWQgICovCiAgICAgZC0+YXJjaC5odm0uc3luY190c2MgPSByZHRzYygp
OwogCi0gICAgLyogVkdBIHN0YXRlIGlzIG5vdCBzYXZlZC9yZXN0b3JlZCwg
c28gd2Ugbm9iYmxlIHRoZSBjYWNoZS4gKi8KLSAgICBkLT5hcmNoLmh2bS5z
dGR2Z2EuY2FjaGUgPSBTVERWR0FfQ0FDSEVfRElTQUJMRUQ7Ci0KICAgICBy
ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9z
dGR2Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggYWI5
NzgxZDgyYTU1Li5iOWQ3YjVhNGQ5ZmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9odm0vc3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2
Z2EuYwpAQCAtMTAxLDM3ICsxMDEsNiBAQCBzdGF0aWMgdm9pZCB2cmFtX3B1
dChzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcywgdm9pZCAqcCkKICAgICB1bm1h
cF9kb21haW5fcGFnZShwKTsKIH0KIAotc3RhdGljIHZvaWQgc3RkdmdhX3Ry
eV9jYWNoZV9lbmFibGUoc3RydWN0IGh2bV9od19zdGR2Z2EgKnMpCi17Ci0g
ICAgLyoKLSAgICAgKiBDYWNoaW5nIG1vZGUgY2FuIG9ubHkgYmUgZW5hYmxl
ZCBpZiB0aGUgdGhlIGNhY2hlIGhhcwotICAgICAqIG5ldmVyIGJlZW4gdXNl
ZCBiZWZvcmUuIEFzIHNvb24gYXMgaXQgaXMgZGlzYWJsZWQsIGl0IHdpbGwK
LSAgICAgKiBiZWNvbWUgb3V0LW9mLXN5bmMgd2l0aCB0aGUgVkdBIGRldmlj
ZSBtb2RlbCBhbmQgc2luY2Ugbm8KLSAgICAgKiBtZWNoYW5pc20gZXhpc3Rz
IHRvIGFjcXVpcmUgY3VycmVudCBWUkFNIHN0YXRlIGZyb20gdGhlCi0gICAg
ICogZGV2aWNlIG1vZGVsLCByZS1lbmFibGluZyBpdCB3b3VsZCBsZWFkIHRv
IHN0YWxlIGRhdGEgYmVpbmcKLSAgICAgKiBzZWVuIGJ5IHRoZSBndWVzdC4K
LSAgICAgKi8KLSAgICBpZiAoIHMtPmNhY2hlICE9IFNURFZHQV9DQUNIRV9V
TklOSVRJQUxJWkVEICkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ2Rwcmlu
dGsoWEVOTE9HX0lORk8sICJlbnRlcmluZyBjYWNoaW5nIG1vZGVcbiIpOwot
ICAgIHMtPmNhY2hlID0gU1REVkdBX0NBQ0hFX0VOQUJMRUQ7Ci19Ci0KLXN0
YXRpYyB2b2lkIHN0ZHZnYV9jYWNoZV9kaXNhYmxlKHN0cnVjdCBodm1faHdf
c3RkdmdhICpzKQotewotICAgIGlmICggcy0+Y2FjaGUgIT0gU1REVkdBX0NB
Q0hFX0VOQUJMRUQgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnZHByaW50
ayhYRU5MT0dfSU5GTywgImxlYXZpbmcgY2FjaGluZyBtb2RlXG4iKTsKLSAg
ICBzLT5jYWNoZSA9IFNURFZHQV9DQUNIRV9ESVNBQkxFRDsKLX0KLQotc3Rh
dGljIGJvb2xfdCBzdGR2Z2FfY2FjaGVfaXNfZW5hYmxlZChjb25zdCBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcykKLXsKLSAgICByZXR1cm4gcy0+Y2FjaGUg
PT0gU1REVkdBX0NBQ0hFX0VOQUJMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgc3Rk
dmdhX291dGIodWludDY0X3QgYWRkciwgdWludDhfdCB2YWwpCiB7CiAgICAg
c3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5h
cmNoLmh2bS5zdGR2Z2E7CkBAIC0xNzEsNyArMTQwLDYgQEAgc3RhdGljIGlu
dCBzdGR2Z2Ffb3V0Yih1aW50NjRfdCBhZGRyLCB1aW50OF90IHZhbCkKICAg
ICBpZiAoICFwcmV2X3N0ZHZnYSAmJiBzLT5zdGR2Z2EgKQogICAgIHsKICAg
ICAgICAgZ2RwcmludGsoWEVOTE9HX0lORk8sICJlbnRlcmluZyBzdGR2Z2Eg
bW9kZVxuIik7Ci0gICAgICAgIHN0ZHZnYV90cnlfY2FjaGVfZW5hYmxlKHMp
OwogICAgIH0KICAgICBlbHNlIGlmICggcHJldl9zdGR2Z2EgJiYgIXMtPnN0
ZHZnYSApCiAgICAgewpAQCAtNDY4LDcgKzQzNiw3IEBAIHN0YXRpYyBpbnQg
c3RkdmdhX21lbV93cml0ZShjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIg
KmhhbmRsZXIsCiAgICAgfTsKICAgICBzdHJ1Y3QgaW9yZXFfc2VydmVyICpz
cnY7CiAKLSAgICBpZiAoICFzdGR2Z2FfY2FjaGVfaXNfZW5hYmxlZChzKSB8
fCAhcy0+c3RkdmdhICkKKyAgICBpZiAoIHRydWUgfHwgIXMtPnN0ZHZnYSAp
CiAgICAgICAgIGdvdG8gZG9uZTsKIAogICAgIC8qIEludGVyY2VwdCBtbWlv
IHdyaXRlICovCkBAIC01MzYsMTggKzUwNCwxMiBAQCBzdGF0aWMgYm9vbF90
IHN0ZHZnYV9tZW1fYWNjZXB0KGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxl
ciAqaGFuZGxlciwKICAgICAgICAgICogV2UgY2Fubm90IHJldHVybiBYODZF
TVVMX1VOSEFORExFQUJMRSBvbiBhbnl0aGluZyBvdGhlciB0aGVuIHRoZQog
ICAgICAgICAgKiBmaXJzdCBjeWNsZSBvZiBhbiBJL08uIFNvLCBzaW5jZSB3
ZSBjYW5ub3QgZ3VhcmFudGVlIHRvIGFsd2F5cyBiZQogICAgICAgICAgKiBh
YmxlIHRvIHNlbmQgYnVmZmVyZWQgd3JpdGVzLCB3ZSBoYXZlIHRvIHJlamVj
dCBhbnkgbXVsdGktY3ljbGUKLSAgICAgICAgICogSS9PIGFuZCwgc2luY2Ug
d2UgYXJlIHJlamVjdGluZyBhbiBJL08sIHdlIG11c3QgaW52YWxpZGF0ZSB0
aGUKLSAgICAgICAgICogY2FjaGUuCi0gICAgICAgICAqIFNpbmdsZS1jeWNs
ZSB3cml0ZSB0cmFuc2FjdGlvbnMgYXJlIGFjY2VwdGVkIGV2ZW4gaWYgdGhl
IGNhY2hlIGlzCi0gICAgICAgICAqIG5vdCBhY3RpdmUgc2luY2Ugd2UgY2Fu
IGFzc2VydCwgd2hlbiBpbiBzdGR2Z2EgbW9kZSwgdGhhdCB3cml0ZXMKLSAg
ICAgICAgICogdG8gVlJBTSBoYXZlIG5vIHNpZGUgZWZmZWN0IGFuZCB0aHVz
IHdlIGNhbiB0cnkgdG8gYnVmZmVyIHRoZW0uCisgICAgICAgICAqIEkvTy4K
ICAgICAgICAgICovCi0gICAgICAgIHN0ZHZnYV9jYWNoZV9kaXNhYmxlKHMp
OwotCiAgICAgICAgIGdvdG8gcmVqZWN0OwogICAgIH0KICAgICBlbHNlIGlm
ICggcC0+ZGlyID09IElPUkVRX1JFQUQgJiYKLSAgICAgICAgICAgICAgKCFz
dGR2Z2FfY2FjaGVfaXNfZW5hYmxlZChzKSB8fCAhcy0+c3RkdmdhKSApCisg
ICAgICAgICAgICAgICh0cnVlIHx8ICFzLT5zdGR2Z2EpICkKICAgICAgICAg
Z290byByZWplY3Q7CiAKICAgICAvKiBzLT5sb2NrIGludGVudGlvbmFsbHkg
aGVsZCAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v
aW8uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvLmgKaW5kZXggNTRl
MDE2MWI0OTJjLi5kOTJmODdmODNiYjcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs
dWRlL2FzbS14ODYvaHZtL2lvLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4
Ni9odm0vaW8uaApAQCAtMTIxLDE5ICsxMjEsMTIgQEAgc3RydWN0IHZwY2lf
YXJjaF9tc2l4X2VudHJ5IHsKICAgICBpbnQgcGlycTsKIH07CiAKLWVudW0g
c3RkdmdhX2NhY2hlX3N0YXRlIHsKLSAgICBTVERWR0FfQ0FDSEVfVU5JTklU
SUFMSVpFRCwKLSAgICBTVERWR0FfQ0FDSEVfRU5BQkxFRCwKLSAgICBTVERW
R0FfQ0FDSEVfRElTQUJMRUQKLX07Ci0KIHN0cnVjdCBodm1faHdfc3Rkdmdh
IHsKICAgICB1aW50OF90IHNyX2luZGV4OwogICAgIHVpbnQ4X3Qgc3JbOF07
CiAgICAgdWludDhfdCBncl9pbmRleDsKICAgICB1aW50OF90IGdyWzldOwog
ICAgIGJvb2xfdCBzdGR2Z2E7Ci0gICAgZW51bSBzdGR2Z2FfY2FjaGVfc3Rh
dGUgY2FjaGU7CiAgICAgdWludDMyX3QgbGF0Y2g7CiAgICAgc3RydWN0IHBh
Z2VfaW5mbyAqdnJhbV9wYWdlWzY0XTsgIC8qIHNoYWRvdyBvZiAweGEwMDAw
LTB4YWZmZmYgKi8KICAgICBzcGlubG9ja190IGxvY2s7Cgo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-02.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBwcm9wZXJseSByZWplY3QgImluZGlyZWN0IiBWUkFNIHdy
aXRlcwoKV2hpbGUgLT5jb3VudCB3aWxsIG9ubHkgYmUgZGlmZmVyZW50IGZy
b20gMSBmb3IgImluZGlyZWN0IiAoZGF0YSBpbgpndWVzdCBtZW1vcnkpIGFj
Y2Vzc2VzLCBpdCBiZWluZyAxIGRvZXMgbm90IGV4Y2x1ZGUgdGhlIHJlcXVl
c3QgYmVpbmcgYW4KImluZGlyZWN0IiBvbmUuIENoZWNrIGJvdGggdG8gYmUg
b24gdGhlIHNhZmUgc2lkZSwgYW5kIGJyaW5nIHRoZSAtPmNvdW50CnBhcnQg
YWxzbyBpbiBsaW5lIHdpdGggd2hhdCBpb3JlcV9zZW5kX2J1ZmZlcmVkKCkg
YWN0dWFsbHkgcmVmdXNlcyB0bwpoYW5kbGUuCgpUaGlzIGlzIHBhcnQgb2Yg
WFNBLTQ2MyAvIENWRS0yMDI0LTQ1ODE4CgpGaXhlczogM2JiYWFlYzA5YjFi
ICgieDg2L2h2bTogdW5pZnkgc3RkdmdhIG1taW8gaW50ZXJjZXB0IHdpdGgg
c3RhbmRhcmQgbW1pbyBpbnRlcmNlcHQiKQpTaWduZWQtb2ZmLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRy
ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5
IHBpY2tlZCBmcm9tIGNvbW1pdCBlYjdjZDA1OTNkODhjNGI5NjdhMjRiY2E4
YmQzMDU5MTk2NjY3NmNkKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o
dm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4
IGI5ZDdiNWE0ZDlmZi4uMTFmMmE5MmQxMmI5IDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKQEAgLTQ5OCwxMyArNDk4LDEzIEBAIHN0YXRpYyBib29sX3Qg
c3RkdmdhX21lbV9hY2NlcHQoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVy
ICpoYW5kbGVyLAogCiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKIAotICAg
IGlmICggcC0+ZGlyID09IElPUkVRX1dSSVRFICYmIHAtPmNvdW50ID4gMSAp
CisgICAgaWYgKCBwLT5kaXIgPT0gSU9SRVFfV1JJVEUgJiYgKHAtPmRhdGFf
aXNfcHRyIHx8IHAtPmNvdW50ICE9IDEpICkKICAgICB7CiAgICAgICAgIC8q
CiAgICAgICAgICAqIFdlIGNhbm5vdCByZXR1cm4gWDg2RU1VTF9VTkhBTkRM
RUFCTEUgb24gYW55dGhpbmcgb3RoZXIgdGhlbiB0aGUKICAgICAgICAgICog
Zmlyc3QgY3ljbGUgb2YgYW4gSS9PLiBTbywgc2luY2Ugd2UgY2Fubm90IGd1
YXJhbnRlZSB0byBhbHdheXMgYmUKICAgICAgICAgICogYWJsZSB0byBzZW5k
IGJ1ZmZlcmVkIHdyaXRlcywgd2UgaGF2ZSB0byByZWplY3QgYW55IG11bHRp
LWN5Y2xlCi0gICAgICAgICAqIEkvTy4KKyAgICAgICAgICogb3IgImluZGly
ZWN0IiBJL08uCiAgICAgICAgICAqLwogICAgICAgICBnb3RvIHJlamVjdDsK
ICAgICB9Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-03.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzdGR2Z2EiIHN0cnVjdCBtZW1i
ZXIKClR3byBvZiBpdHMgY29uc3VtZXJzIGFyZSBkZWFkIChpbiBjb21waWxl
LXRpbWUgY29uc3RhbnQgY29uZGl0aW9uYWxzKQphbmQgdGhlIG9ubHkgcmVt
YWluaW5nIG9uZXMgYXJlIG1lcmVseSBjb250cm9sbGluZyBkZWJ1ZyBsb2dn
aW5nLiBIZW5jZQp0aGUgZmllbGQgaXMgbm93IHBvaW50bGVzcyB0byBzZXQs
IHdoaWNoIGluIHBhcnRpY3VsYXIgYWxsb3dzIHRvIGdldCByaWQKb2YgdGhl
IHF1ZXN0aW9uYWJsZSBjb25kaXRpb25hbCBmcm9tIHdoaWNoIHRoZSBmaWVs
ZCdzIHZhbHVlIHdhcwplc3RhYmxpc2hlZCAoYWZhaWN0IDU1MWNlZWU5NzUx
MyBbIng4NiwgaHZtOiBzdGR2Z2EgY2FjaGUgYWx3YXlzIG9uIl0KaGFkIGRy
b3BwZWQgdG9vIG11Y2ggb2YgdGhlIGVhcmxpZXIgZXh0cmEgY2hlY2sgdGhh
dCB3YXMgdGhlcmUsIGFuZApxdWl0ZSBsaWtlbHkgZnVydGhlciBjaGVja3Mg
d2VyZSBtaXNzaW5nKS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZF
LTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1
bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IGI3NDBhOTM2OWU4MWJkZGE2NzVhOTc4MDEzMGNlMmI5ZTc1ZDRl
YzkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggMTFmMmE5MmQxMmI5
Li5hNWYxY2ZmMDE3ZWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
MTA0LDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIHZyYW1fcHV0KHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzLCB2b2lkICpwKQogc3RhdGljIGludCBzdGR2Z2Ff
b3V0Yih1aW50NjRfdCBhZGRyLCB1aW50OF90IHZhbCkKIHsKICAgICBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2gu
aHZtLnN0ZHZnYTsKLSAgICBpbnQgcmMgPSAxLCBwcmV2X3N0ZHZnYSA9IHMt
PnN0ZHZnYTsKKyAgICBpbnQgcmMgPSAxOwogCiAgICAgc3dpdGNoICggYWRk
ciApCiAgICAgewpAQCAtMTMzLDE5ICsxMzMsNiBAQCBzdGF0aWMgaW50IHN0
ZHZnYV9vdXRiKHVpbnQ2NF90IGFkZHIsIHVpbnQ4X3QgdmFsKQogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICAvKiBXaGVuIGluIHN0YW5kYXJkIHZn
YSBtb2RlLCBlbXVsYXRlIGhlcmUgYWxsIHdyaXRlcyB0byB0aGUgdnJhbSBi
dWZmZXIKLSAgICAgKiBzbyB3ZSBjYW4gaW1tZWRpYXRlbHkgc2F0aXNmeSBy
ZWFkcyB3aXRob3V0IHdhaXRpbmcgZm9yIHFlbXUuICovCi0gICAgcy0+c3Rk
dmdhID0gKHMtPnNyWzddID09IDB4MDApOwotCi0gICAgaWYgKCAhcHJldl9z
dGR2Z2EgJiYgcy0+c3RkdmdhICkKLSAgICB7Ci0gICAgICAgIGdkcHJpbnRr
KFhFTkxPR19JTkZPLCAiZW50ZXJpbmcgc3RkdmdhIG1vZGVcbiIpOwotICAg
IH0KLSAgICBlbHNlIGlmICggcHJldl9zdGR2Z2EgJiYgIXMtPnN0ZHZnYSAp
Ci0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgImxlYXZp
bmcgc3RkdmdhIG1vZGVcbiIpOwotICAgIH0KLQogICAgIHJldHVybiByYzsK
IH0KIApAQCAtNDI1LDcgKzQxMiw2IEBAIHN0YXRpYyBpbnQgc3RkdmdhX21l
bV93cml0ZShjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYWRkciwg
dWludDMyX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50NjRfdCBkYXRhKQogewotICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpz
ID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0uc3RkdmdhOwogICAgIGlv
cmVxX3QgcCA9IHsKICAgICAgICAgLnR5cGUgPSBJT1JFUV9UWVBFX0NPUFks
CiAgICAgICAgIC5hZGRyID0gYWRkciwKQEAgLTQzNiw4ICs0MjIsNyBAQCBz
dGF0aWMgaW50IHN0ZHZnYV9tZW1fd3JpdGUoY29uc3Qgc3RydWN0IGh2bV9p
b19oYW5kbGVyICpoYW5kbGVyLAogICAgIH07CiAgICAgc3RydWN0IGlvcmVx
X3NlcnZlciAqc3J2OwogCi0gICAgaWYgKCB0cnVlIHx8ICFzLT5zdGR2Z2Eg
KQotICAgICAgICBnb3RvIGRvbmU7CisgICAgZ290byBkb25lOwogCiAgICAg
LyogSW50ZXJjZXB0IG1taW8gd3JpdGUgKi8KICAgICBzd2l0Y2ggKCBzaXpl
ICkKQEAgLTQ5OCwxOSArNDgzLDE0IEBAIHN0YXRpYyBib29sX3Qgc3Rkdmdh
X21lbV9hY2NlcHQoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5k
bGVyLAogCiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKIAotICAgIGlmICgg
cC0+ZGlyID09IElPUkVRX1dSSVRFICYmIChwLT5kYXRhX2lzX3B0ciB8fCBw
LT5jb3VudCAhPSAxKSApCisgICAgaWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJ
VEUgfHwgcC0+ZGF0YV9pc19wdHIgfHwgcC0+Y291bnQgIT0gMSApCiAgICAg
ewogICAgICAgICAvKgotICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIFg4
NkVNVUxfVU5IQU5ETEVBQkxFIG9uIGFueXRoaW5nIG90aGVyIHRoZW4gdGhl
Ci0gICAgICAgICAqIGZpcnN0IGN5Y2xlIG9mIGFuIEkvTy4gU28sIHNpbmNl
IHdlIGNhbm5vdCBndWFyYW50ZWUgdG8gYWx3YXlzIGJlCi0gICAgICAgICAq
IGFibGUgdG8gc2VuZCBidWZmZXJlZCB3cml0ZXMsIHdlIGhhdmUgdG8gcmVq
ZWN0IGFueSBtdWx0aS1jeWNsZQotICAgICAgICAgKiBvciAiaW5kaXJlY3Qi
IEkvTy4KKyAgICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3
cml0ZXMsIGFzIHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KKyAgICAg
ICAgICogYWNjZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGlu
Zy4KICAgICAgICAgICovCiAgICAgICAgIGdvdG8gcmVqZWN0OwogICAgIH0K
LSAgICBlbHNlIGlmICggcC0+ZGlyID09IElPUkVRX1JFQUQgJiYKLSAgICAg
ICAgICAgICAgKHRydWUgfHwgIXMtPnN0ZHZnYSkgKQotICAgICAgICBnb3Rv
IHJlamVjdDsKIAogICAgIC8qIHMtPmxvY2sgaW50ZW50aW9uYWxseSBoZWxk
ICovCiAgICAgcmV0dXJuIDE7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h
c20teDg2L2h2bS9pby5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW8u
aAppbmRleCBkOTJmODdmODNiYjcuLmQ5NjRmOGVmZGZlMiAxMDA2NDQKLS0t
IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW8uaAorKysgYi94ZW4vaW5j
bHVkZS9hc20teDg2L2h2bS9pby5oCkBAIC0xMjYsNyArMTI2LDYgQEAgc3Ry
dWN0IGh2bV9od19zdGR2Z2EgewogICAgIHVpbnQ4X3Qgc3JbOF07CiAgICAg
dWludDhfdCBncl9pbmRleDsKICAgICB1aW50OF90IGdyWzldOwotICAgIGJv
b2xfdCBzdGR2Z2E7CiAgICAgdWludDMyX3QgbGF0Y2g7CiAgICAgc3RydWN0
IHBhZ2VfaW5mbyAqdnJhbV9wYWdlWzY0XTsgIC8qIHNoYWRvdyBvZiAweGEw
MDAwLTB4YWZmZmYgKi8KICAgICBzcGlubG9ja190IGxvY2s7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-04.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiByZW1vdmUgdW51c2VkIE1NSU8gaGFuZGxpbmcgY29kZQoK
QWxsIHJlYWQgYWNjZXNzZXMgYXJlIHJlamVjdGVkIGJ5IHRoZSAtPmFjY2Vw
dCBoYW5kbGVyLCB3aGlsZSB3cml0ZXMKYnlwYXNzIHRoZSBidWxrIG9mIHRo
ZSBmdW5jdGlvbiBib2R5LiBEcm9wIHRoZSBkZWFkIGNvZGUsIGxlYXZpbmcg
YW4KYXNzZXJ0aW9uIGluIHRoZSByZWFkIGhhbmRsZXIuCgpBIG51bWJlciBv
ZiBvdGhlciBzdGF0aWMgaXRlbXMgKGFuZCBhIG1hY3JvKSBhcmUgdGhlbiB1
bnJlZmVyZW5jZWQgYW5kCmhlbmNlIGFsc28gbmVlZCAod2FudCkgZHJvcHBp
bmcuIFRoZSBzYW1lIGFwcGxpZXMgdG8gdGhlICJsYXRjaCIgZmllbGQKb2Yg
dGhlIHN0YXRlIHN0cnVjdHVyZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYz
IC8gQ1ZFLTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29w
ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IDg5MTA4NTQ3YWYxZjIzMGI3Mjg5M2I0ODM1MWY5YzEx
MDYxODk2NDkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2
Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggYTVmMWNm
ZjAxN2VkLi4xMzhjZWQyMjlkMzggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9odm0vc3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2Eu
YwpAQCAtMzgsMjYgKzM4LDYgQEAKICNkZWZpbmUgVkdBX01FTV9CQVNFIDB4
YTAwMDAKICNkZWZpbmUgVkdBX01FTV9TSVpFIDB4MjAwMDAKIAotI2RlZmlu
ZSBQQVQoeCkgKHgpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgbWFzazE2WzE2
XSA9IHsKLSAgICBQQVQoMHgwMDAwMDAwMCksCi0gICAgUEFUKDB4MDAwMDAw
ZmYpLAotICAgIFBBVCgweDAwMDBmZjAwKSwKLSAgICBQQVQoMHgwMDAwZmZm
ZiksCi0gICAgUEFUKDB4MDBmZjAwMDApLAotICAgIFBBVCgweDAwZmYwMGZm
KSwKLSAgICBQQVQoMHgwMGZmZmYwMCksCi0gICAgUEFUKDB4MDBmZmZmZmYp
LAotICAgIFBBVCgweGZmMDAwMDAwKSwKLSAgICBQQVQoMHhmZjAwMDBmZiks
Ci0gICAgUEFUKDB4ZmYwMGZmMDApLAotICAgIFBBVCgweGZmMDBmZmZmKSwK
LSAgICBQQVQoMHhmZmZmMDAwMCksCi0gICAgUEFUKDB4ZmZmZjAwZmYpLAot
ICAgIFBBVCgweGZmZmZmZjAwKSwKLSAgICBQQVQoMHhmZmZmZmZmZiksCi19
OwotCiAvKiBmb3JjZSBzb21lIGJpdHMgdG8gemVybyAqLwogc3RhdGljIGNv
bnN0IHVpbnQ4X3Qgc3JfbWFza1s4XSA9IHsKICAgICAodWludDhfdCl+MHhm
YywKQEAgLTgyLDI1ICs2Miw2IEBAIHN0YXRpYyBjb25zdCB1aW50OF90IGdy
X21hc2tbOV0gPSB7CiAgICAgKHVpbnQ4X3QpfjB4MDAsIC8qIDB4MDggKi8K
IH07CiAKLXN0YXRpYyB1aW50OF90ICp2cmFtX2dldGIoc3RydWN0IGh2bV9o
d19zdGR2Z2EgKnMsIHVuc2lnbmVkIGludCBhKQotewotICAgIHN0cnVjdCBw
YWdlX2luZm8gKnBnID0gcy0+dnJhbV9wYWdlWyhhID4+IDEyKSAmIDB4M2Zd
OwotICAgIHVpbnQ4X3QgKnAgPSBfX21hcF9kb21haW5fcGFnZShwZyk7Ci0g
ICAgcmV0dXJuICZwW2EgJiAweGZmZl07Ci19Ci0KLXN0YXRpYyB1aW50MzJf
dCAqdnJhbV9nZXRsKHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB1bnNpZ25l
ZCBpbnQgYSkKLXsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IHMtPnZy
YW1fcGFnZVsoYSA+PiAxMCkgJiAweDNmXTsKLSAgICB1aW50MzJfdCAqcCA9
IF9fbWFwX2RvbWFpbl9wYWdlKHBnKTsKLSAgICByZXR1cm4gJnBbYSAmIDB4
M2ZmXTsKLX0KLQotc3RhdGljIHZvaWQgdnJhbV9wdXQoc3RydWN0IGh2bV9o
d19zdGR2Z2EgKnMsIHZvaWQgKnApCi17Ci0gICAgdW5tYXBfZG9tYWluX3Bh
Z2UocCk7Ci19Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3Qg
YWRkciwgdWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2
Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBA
IC0xNjksMjQzICsxMzAsMTIgQEAgc3RhdGljIGludCBzdGR2Z2FfaW50ZXJj
ZXB0X3BpbygKICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7IC8q
IHByb3BhZ2F0ZSB0byBleHRlcm5hbCBpb2VtdSAqLwogfQogCi1zdGF0aWMg
dW5zaWduZWQgaW50IHN0ZHZnYV9tZW1fb2Zmc2V0KAotICAgIHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzLCB1bnNpZ25lZCBpbnQgbW1pb19hZGRyKQotewot
ICAgIHVuc2lnbmVkIGludCBtZW1vcnlfbWFwX21vZGUgPSAocy0+Z3JbNl0g
Pj4gMikgJiAzOwotICAgIHVuc2lnbmVkIGludCBvZmZzZXQgPSBtbWlvX2Fk
ZHIgJiAweDFmZmZmOwotCi0gICAgc3dpdGNoICggbWVtb3J5X21hcF9tb2Rl
ICkKLSAgICB7Ci0gICAgY2FzZSAwOgotICAgICAgICBicmVhazsKLSAgICBj
YXNlIDE6Ci0gICAgICAgIGlmICggb2Zmc2V0ID49IDB4MTAwMDAgKQotICAg
ICAgICAgICAgZ290byBmYWlsOwotICAgICAgICBvZmZzZXQgKz0gMDsgLyog
YXNzdW1lIGJhbmtfb2Zmc2V0ID09IDA7ICovCi0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgMjoKLSAgICAgICAgb2Zmc2V0IC09IDB4MTAwMDA7Ci0gICAg
ICAgIGlmICggb2Zmc2V0ID49IDB4ODAwMCApCi0gICAgICAgICAgICBnb3Rv
IGZhaWw7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgY2Fz
ZSAzOgotICAgICAgICBvZmZzZXQgLT0gMHgxODAwMDsKLSAgICAgICAgaWYg
KCBvZmZzZXQgPj0gMHg4MDAwICkKLSAgICAgICAgICAgIGdvdG8gZmFpbDsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIG9mZnNldDsK
LQotIGZhaWw6Ci0gICAgcmV0dXJuIH4wdTsKLX0KLQotI2RlZmluZSBHRVRf
UExBTkUoZGF0YSwgcCkgKCgoZGF0YSkgPj4gKChwKSAqIDgpKSAmIDB4ZmYp
Ci0KLXN0YXRpYyB1aW50OF90IHN0ZHZnYV9tZW1fcmVhZGIodWludDY0X3Qg
YWRkcikKLXsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJy
ZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsKLSAgICBpbnQgcGxhbmU7
Ci0gICAgdWludDMyX3QgcmV0LCAqdnJhbV9sOwotICAgIHVpbnQ4X3QgKnZy
YW1fYjsKLQotICAgIGFkZHIgPSBzdGR2Z2FfbWVtX29mZnNldChzLCBhZGRy
KTsKLSAgICBpZiAoIGFkZHIgPT0gfjB1ICkKLSAgICAgICAgcmV0dXJuIDB4
ZmY7Ci0KLSAgICBpZiAoIHMtPnNyWzRdICYgMHgwOCApCi0gICAgewotICAg
ICAgICAvKiBjaGFpbiA0IG1vZGUgOiBzaW1wbGVzdCBhY2Nlc3MgKi8KLSAg
ICAgICAgdnJhbV9iID0gdnJhbV9nZXRiKHMsIGFkZHIpOwotICAgICAgICBy
ZXQgPSAqdnJhbV9iOwotICAgICAgICB2cmFtX3B1dChzLCB2cmFtX2IpOwot
ICAgIH0KLSAgICBlbHNlIGlmICggcy0+Z3JbNV0gJiAweDEwICkKLSAgICB7
Ci0gICAgICAgIC8qIG9kZC9ldmVuIG1vZGUgKGFrYSB0ZXh0IG1vZGUgbWFw
cGluZykgKi8KLSAgICAgICAgcGxhbmUgPSAocy0+Z3JbNF0gJiAyKSB8IChh
ZGRyICYgMSk7Ci0gICAgICAgIHZyYW1fYiA9IHZyYW1fZ2V0YihzLCAoKGFk
ZHIgJiB+MSkgPDwgMSkgfCBwbGFuZSk7Ci0gICAgICAgIHJldCA9ICp2cmFt
X2I7Ci0gICAgICAgIHZyYW1fcHV0KHMsIHZyYW1fYik7Ci0gICAgfQotICAg
IGVsc2UKLSAgICB7Ci0gICAgICAgIC8qIHN0YW5kYXJkIFZHQSBsYXRjaGVk
IGFjY2VzcyAqLwotICAgICAgICB2cmFtX2wgPSB2cmFtX2dldGwocywgYWRk
cik7Ci0gICAgICAgIHMtPmxhdGNoID0gKnZyYW1fbDsKLSAgICAgICAgdnJh
bV9wdXQocywgdnJhbV9sKTsKLQotICAgICAgICBpZiAoICEocy0+Z3JbNV0g
JiAweDA4KSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qIHJlYWQgbW9k
ZSAwICovCi0gICAgICAgICAgICBwbGFuZSA9IHMtPmdyWzRdOwotICAgICAg
ICAgICAgcmV0ID0gR0VUX1BMQU5FKHMtPmxhdGNoLCBwbGFuZSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICAv
KiByZWFkIG1vZGUgMSAqLwotICAgICAgICAgICAgcmV0ID0gKHMtPmxhdGNo
IF4gbWFzazE2W3MtPmdyWzJdXSkgJiBtYXNrMTZbcy0+Z3JbN11dOwotICAg
ICAgICAgICAgcmV0IHw9IHJldCA+PiAxNjsKLSAgICAgICAgICAgIHJldCB8
PSByZXQgPj4gODsKLSAgICAgICAgICAgIHJldCA9ICh+cmV0KSAmIDB4ZmY7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCiBz
dGF0aWMgaW50IHN0ZHZnYV9tZW1fcmVhZChjb25zdCBzdHJ1Y3QgaHZtX2lv
X2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBzaXplLCB1aW50NjRfdCAqcF9k
YXRhKQogewotICAgIHVpbnQ2NF90IGRhdGEgPSB+MHVsOwotCi0gICAgc3dp
dGNoICggc2l6ZSApCi0gICAgewotICAgIGNhc2UgMToKLSAgICAgICAgZGF0
YSA9IHN0ZHZnYV9tZW1fcmVhZGIoYWRkcik7Ci0gICAgICAgIGJyZWFrOwot
Ci0gICAgY2FzZSAyOgotICAgICAgICBkYXRhID0gc3RkdmdhX21lbV9yZWFk
YihhZGRyKTsKLSAgICAgICAgZGF0YSB8PSBzdGR2Z2FfbWVtX3JlYWRiKGFk
ZHIgKyAxKSA8PCA4OwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgNDoK
LSAgICAgICAgZGF0YSA9IHN0ZHZnYV9tZW1fcmVhZGIoYWRkcik7Ci0gICAg
ICAgIGRhdGEgfD0gc3RkdmdhX21lbV9yZWFkYihhZGRyICsgMSkgPDwgODsK
LSAgICAgICAgZGF0YSB8PSBzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyAyKSA8
PCAxNjsKLSAgICAgICAgZGF0YSB8PSAodWludDMyX3Qpc3RkdmdhX21lbV9y
ZWFkYihhZGRyICsgMykgPDwgMjQ7Ci0gICAgICAgIGJyZWFrOwotCi0gICAg
Y2FzZSA4OgotICAgICAgICBkYXRhID0gICh1aW50NjRfdCkoc3RkdmdhX21l
bV9yZWFkYihhZGRyKSk7Ci0gICAgICAgIGRhdGEgfD0gKHVpbnQ2NF90KShz
dGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyAxKSkgPDwgODsKLSAgICAgICAgZGF0
YSB8PSAodWludDY0X3QpKHN0ZHZnYV9tZW1fcmVhZGIoYWRkciArIDIpKSA8
PCAxNjsKLSAgICAgICAgZGF0YSB8PSAodWludDY0X3QpKHN0ZHZnYV9tZW1f
cmVhZGIoYWRkciArIDMpKSA8PCAyNDsKLSAgICAgICAgZGF0YSB8PSAodWlu
dDY0X3QpKHN0ZHZnYV9tZW1fcmVhZGIoYWRkciArIDQpKSA8PCAzMjsKLSAg
ICAgICAgZGF0YSB8PSAodWludDY0X3QpKHN0ZHZnYV9tZW1fcmVhZGIoYWRk
ciArIDUpKSA8PCA0MDsKLSAgICAgICAgZGF0YSB8PSAodWludDY0X3QpKHN0
ZHZnYV9tZW1fcmVhZGIoYWRkciArIDYpKSA8PCA0ODsKLSAgICAgICAgZGF0
YSB8PSAodWludDY0X3QpKHN0ZHZnYV9tZW1fcmVhZGIoYWRkciArIDcpKSA8
PCA1NjsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBkZWZhdWx0OgotICAgICAg
ICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgImludmFsaWQgaW8gc2l6ZTog
JXVcbiIsIHNpemUpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICAq
cF9kYXRhID0gZGF0YTsKLSAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwotfQot
Ci1zdGF0aWMgdm9pZCBzdGR2Z2FfbWVtX3dyaXRlYih1aW50NjRfdCBhZGRy
LCB1aW50MzJfdCB2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2Eg
KnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0gICAg
aW50IHBsYW5lLCB3cml0ZV9tb2RlLCBiLCBmdW5jX3NlbGVjdCwgbWFzazsK
LSAgICB1aW50MzJfdCB3cml0ZV9tYXNrLCBiaXRfbWFzaywgc2V0X21hc2ss
ICp2cmFtX2w7Ci0gICAgdWludDhfdCAqdnJhbV9iOwotCi0gICAgYWRkciA9
IHN0ZHZnYV9tZW1fb2Zmc2V0KHMsIGFkZHIpOwotICAgIGlmICggYWRkciA9
PSB+MHUgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIHMtPnNyWzRd
ICYgMHgwOCApCi0gICAgewotICAgICAgICAvKiBjaGFpbiA0IG1vZGUgOiBz
aW1wbGVzdCBhY2Nlc3MgKi8KLSAgICAgICAgcGxhbmUgPSBhZGRyICYgMzsK
LSAgICAgICAgbWFzayA9ICgxIDw8IHBsYW5lKTsKLSAgICAgICAgaWYgKCBz
LT5zclsyXSAmIG1hc2sgKQotICAgICAgICB7Ci0gICAgICAgICAgICB2cmFt
X2IgPSB2cmFtX2dldGIocywgYWRkcik7Ci0gICAgICAgICAgICAqdnJhbV9i
ID0gdmFsOwotICAgICAgICAgICAgdnJhbV9wdXQocywgdnJhbV9iKTsKLSAg
ICAgICAgfQotICAgIH0KLSAgICBlbHNlIGlmICggcy0+Z3JbNV0gJiAweDEw
ICkKLSAgICB7Ci0gICAgICAgIC8qIG9kZC9ldmVuIG1vZGUgKGFrYSB0ZXh0
IG1vZGUgbWFwcGluZykgKi8KLSAgICAgICAgcGxhbmUgPSAocy0+Z3JbNF0g
JiAyKSB8IChhZGRyICYgMSk7Ci0gICAgICAgIG1hc2sgPSAoMSA8PCBwbGFu
ZSk7Ci0gICAgICAgIGlmICggcy0+c3JbMl0gJiBtYXNrICkKLSAgICAgICAg
ewotICAgICAgICAgICAgYWRkciA9ICgoYWRkciAmIH4xKSA8PCAxKSB8IHBs
YW5lOwotICAgICAgICAgICAgdnJhbV9iID0gdnJhbV9nZXRiKHMsIGFkZHIp
OwotICAgICAgICAgICAgKnZyYW1fYiA9IHZhbDsKLSAgICAgICAgICAgIHZy
YW1fcHV0KHMsIHZyYW1fYik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZWxz
ZQotICAgIHsKLSAgICAgICAgd3JpdGVfbW9kZSA9IHMtPmdyWzVdICYgMzsK
LSAgICAgICAgc3dpdGNoICggd3JpdGVfbW9kZSApCi0gICAgICAgIHsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAg
Lyogcm90YXRlICovCi0gICAgICAgICAgICBiID0gcy0+Z3JbM10gJiA3Owot
ICAgICAgICAgICAgdmFsID0gKCh2YWwgPj4gYikgfCAodmFsIDw8ICg4IC0g
YikpKSAmIDB4ZmY7Ci0gICAgICAgICAgICB2YWwgfD0gdmFsIDw8IDg7Ci0g
ICAgICAgICAgICB2YWwgfD0gdmFsIDw8IDE2OwotCi0gICAgICAgICAgICAv
KiBhcHBseSBzZXQvcmVzZXQgbWFzayAqLwotICAgICAgICAgICAgc2V0X21h
c2sgPSBtYXNrMTZbcy0+Z3JbMV1dOwotICAgICAgICAgICAgdmFsID0gKHZh
bCAmIH5zZXRfbWFzaykgfCAobWFzazE2W3MtPmdyWzBdXSAmIHNldF9tYXNr
KTsKLSAgICAgICAgICAgIGJpdF9tYXNrID0gcy0+Z3JbOF07Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgdmFs
ID0gcy0+bGF0Y2g7Ci0gICAgICAgICAgICBnb3RvIGRvX3dyaXRlOwotICAg
ICAgICBjYXNlIDI6Ci0gICAgICAgICAgICB2YWwgPSBtYXNrMTZbdmFsICYg
MHgwZl07Ci0gICAgICAgICAgICBiaXRfbWFzayA9IHMtPmdyWzhdOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAg
IC8qIHJvdGF0ZSAqLwotICAgICAgICAgICAgYiA9IHMtPmdyWzNdICYgNzsK
LSAgICAgICAgICAgIHZhbCA9ICh2YWwgPj4gYikgfCAodmFsIDw8ICg4IC0g
YikpOwotCi0gICAgICAgICAgICBiaXRfbWFzayA9IHMtPmdyWzhdICYgdmFs
OwotICAgICAgICAgICAgdmFsID0gbWFzazE2W3MtPmdyWzBdXTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogYXBwbHkg
bG9naWNhbCBvcGVyYXRpb24gKi8KLSAgICAgICAgZnVuY19zZWxlY3QgPSBz
LT5nclszXSA+PiAzOwotICAgICAgICBzd2l0Y2ggKCBmdW5jX3NlbGVjdCAp
Ci0gICAgICAgIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgLyogbm90aGluZyB0byBkbyAqLwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIC8qIGFu
ZCAqLwotICAgICAgICAgICAgdmFsICY9IHMtPmxhdGNoOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIC8qIG9y
ICovCi0gICAgICAgICAgICB2YWwgfD0gcy0+bGF0Y2g7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgLyogeG9y
ICovCi0gICAgICAgICAgICB2YWwgXj0gcy0+bGF0Y2g7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIGFwcGx5IGJpdCBt
YXNrICovCi0gICAgICAgIGJpdF9tYXNrIHw9IGJpdF9tYXNrIDw8IDg7Ci0g
ICAgICAgIGJpdF9tYXNrIHw9IGJpdF9tYXNrIDw8IDE2OwotICAgICAgICB2
YWwgPSAodmFsICYgYml0X21hc2spIHwgKHMtPmxhdGNoICYgfmJpdF9tYXNr
KTsKLQotICAgIGRvX3dyaXRlOgotICAgICAgICAvKiBtYXNrIGRhdGEgYWNj
b3JkaW5nIHRvIHNyWzJdICovCi0gICAgICAgIG1hc2sgPSBzLT5zclsyXTsK
LSAgICAgICAgd3JpdGVfbWFzayA9IG1hc2sxNlttYXNrXTsKLSAgICAgICAg
dnJhbV9sID0gdnJhbV9nZXRsKHMsIGFkZHIpOwotICAgICAgICAqdnJhbV9s
ID0gKCp2cmFtX2wgJiB+d3JpdGVfbWFzaykgfCAodmFsICYgd3JpdGVfbWFz
ayk7Ci0gICAgICAgIHZyYW1fcHV0KHMsIHZyYW1fbCk7Ci0gICAgfQorICAg
IEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICpwX2RhdGEgPSB+MDsKKyAg
ICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CiB9CiAKIHN0YXRpYyBp
bnQgc3RkdmdhX21lbV93cml0ZShjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRs
ZXIgKmhhbmRsZXIsCkBAIC00MjAsNDcgKzE1MCw4IEBAIHN0YXRpYyBpbnQg
c3RkdmdhX21lbV93cml0ZShjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIg
KmhhbmRsZXIsCiAgICAgICAgIC5kaXIgPSBJT1JFUV9XUklURSwKICAgICAg
ICAgLmRhdGEgPSBkYXRhLAogICAgIH07Ci0gICAgc3RydWN0IGlvcmVxX3Nl
cnZlciAqc3J2OwotCi0gICAgZ290byBkb25lOwotCi0gICAgLyogSW50ZXJj
ZXB0IG1taW8gd3JpdGUgKi8KLSAgICBzd2l0Y2ggKCBzaXplICkKLSAgICB7
Ci0gICAgY2FzZSAxOgotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRy
LCAoZGF0YSA+PiAgMCkgJiAweGZmKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAg
ICBjYXNlIDI6Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFkZHIrMCwg
KGRhdGEgPj4gIDApICYgMHhmZik7Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3Jp
dGViKGFkZHIrMSwgKGRhdGEgPj4gIDgpICYgMHhmZik7Ci0gICAgICAgIGJy
ZWFrOwotCi0gICAgY2FzZSA0OgotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRl
YihhZGRyKzAsIChkYXRhID4+ICAwKSAmIDB4ZmYpOwotICAgICAgICBzdGR2
Z2FfbWVtX3dyaXRlYihhZGRyKzEsIChkYXRhID4+ICA4KSAmIDB4ZmYpOwot
ICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzIsIChkYXRhID4+IDE2
KSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzMs
IChkYXRhID4+IDI0KSAmIDB4ZmYpOwotICAgICAgICBicmVhazsKLQotICAg
IGNhc2UgODoKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkciswLCAo
ZGF0YSA+PiAgMCkgJiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0
ZWIoYWRkcisxLCAoZGF0YSA+PiAgOCkgJiAweGZmKTsKLSAgICAgICAgc3Rk
dmdhX21lbV93cml0ZWIoYWRkcisyLCAoZGF0YSA+PiAxNikgJiAweGZmKTsK
LSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkciszLCAoZGF0YSA+PiAy
NCkgJiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkcis0
LCAoZGF0YSA+PiAzMikgJiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93
cml0ZWIoYWRkcis1LCAoZGF0YSA+PiA0MCkgJiAweGZmKTsKLSAgICAgICAg
c3RkdmdhX21lbV93cml0ZWIoYWRkcis2LCAoZGF0YSA+PiA0OCkgJiAweGZm
KTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkcis3LCAoZGF0YSA+
PiA1NikgJiAweGZmKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBkZWZhdWx0
OgotICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgImludmFsaWQg
aW8gc2l6ZTogJXVcbiIsIHNpemUpOwotICAgICAgICBicmVhazsKLSAgICB9
CisgICAgc3RydWN0IGlvcmVxX3NlcnZlciAqc3J2ID0gaW9yZXFfc2VydmVy
X3NlbGVjdChjdXJyZW50LT5kb21haW4sICZwKTsKIAotIGRvbmU6Ci0gICAg
c3J2ID0gaW9yZXFfc2VydmVyX3NlbGVjdChjdXJyZW50LT5kb21haW4sICZw
KTsKICAgICBpZiAoICFzcnYgKQogICAgICAgICByZXR1cm4gWDg2RU1VTF9V
TkhBTkRMRUFCTEU7CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14
ODYvaHZtL2lvLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pby5oCmlu
ZGV4IGQ5NjRmOGVmZGZlMi4uN2JkMWZhMTEzZTM5IDEwMDY0NAotLS0gYS94
ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pby5oCisrKyBiL3hlbi9pbmNsdWRl
L2FzbS14ODYvaHZtL2lvLmgKQEAgLTEyNiw3ICsxMjYsNiBAQCBzdHJ1Y3Qg
aHZtX2h3X3N0ZHZnYSB7CiAgICAgdWludDhfdCBzcls4XTsKICAgICB1aW50
OF90IGdyX2luZGV4OwogICAgIHVpbnQ4X3QgZ3JbOV07Ci0gICAgdWludDMy
X3QgbGF0Y2g7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqdnJhbV9wYWdlWzY0
XTsgIC8qIHNoYWRvdyBvZiAweGEwMDAwLTB4YWZmZmYgKi8KICAgICBzcGlu
bG9ja190IGxvY2s7CiB9Owo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-05.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJncltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIGdyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgYjE2YzA5NjZhMTdmMTljMGU1NWVkMGI5YmFhMjgxOTFkMjU5
MDE3OCkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCAxMzhjZWQyMjlk
MzguLmVkY2M0NTZkMWY3NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC01MCwxOCArNTAsNiBAQCBzdGF0aWMgY29uc3QgdWludDhfdCBzcl9tYXNr
WzhdID0gewogICAgICh1aW50OF90KX4weDAwLAogfTsKIAotc3RhdGljIGNv
bnN0IHVpbnQ4X3QgZ3JfbWFza1s5XSA9IHsKLSAgICAodWludDhfdCl+MHhm
MCwgLyogMHgwMCAqLwotICAgICh1aW50OF90KX4weGYwLCAvKiAweDAxICov
Ci0gICAgKHVpbnQ4X3QpfjB4ZjAsIC8qIDB4MDIgKi8KLSAgICAodWludDhf
dCl+MHhlMCwgLyogMHgwMyAqLwotICAgICh1aW50OF90KX4weGZjLCAvKiAw
eDA0ICovCi0gICAgKHVpbnQ4X3QpfjB4ODQsIC8qIDB4MDUgKi8KLSAgICAo
dWludDhfdCl+MHhmMCwgLyogMHgwNiAqLwotICAgICh1aW50OF90KX4weGYw
LCAvKiAweDA3ICovCi0gICAgKHVpbnQ4X3QpfjB4MDAsIC8qIDB4MDggKi8K
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC04Mywx
MiArNzEsNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5ncl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2NmOiAgICAgICAgICAg
ICAgICAgLyogZ3JhcGhpY3MgZGF0YSByZWdpc3RlciAqLwotICAgICAgICBy
YyA9IChzLT5ncl9pbmRleCA8IHNpemVvZihzLT5ncikpOwotICAgICAgICBp
ZiAoIHJjICkKLSAgICAgICAgICAgIHMtPmdyW3MtPmdyX2luZGV4XSA9IHZh
bCAmIGdyX21hc2tbcy0+Z3JfaW5kZXhdOwotICAgICAgICBicmVhazsKLQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJjID0gMDsKICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pby5oIGIv
eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW8uaAppbmRleCA3YmQxZmExMTNl
MzkuLjM3NWMxMmE0NjZmMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt
LXg4Ni9odm0vaW8uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9p
by5oCkBAIC0xMjUsNyArMTI1LDYgQEAgc3RydWN0IGh2bV9od19zdGR2Z2Eg
ewogICAgIHVpbnQ4X3Qgc3JfaW5kZXg7CiAgICAgdWludDhfdCBzcls4XTsK
ICAgICB1aW50OF90IGdyX2luZGV4OwotICAgIHVpbnQ4X3QgZ3JbOV07CiAg
ICAgc3RydWN0IHBhZ2VfaW5mbyAqdnJhbV9wYWdlWzY0XTsgIC8qIHNoYWRv
dyBvZiAweGEwMDAwLTB4YWZmZmYgKi8KICAgICBzcGlubG9ja190IGxvY2s7
CiB9Owo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-06.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzcltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIHNyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgN2FiYTQ0YmRkNzhhZWRiOTc3MDM4MTE5NDhjM2I2OWNjZmY4
NTAzMikKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCBlZGNjNDU2ZDFm
NzYuLjcwZmFjZGJkOTYwMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC0zOCwxOCArMzgsNiBAQAogI2RlZmluZSBWR0FfTUVNX0JBU0UgMHhhMDAw
MAogI2RlZmluZSBWR0FfTUVNX1NJWkUgMHgyMDAwMAogCi0vKiBmb3JjZSBz
b21lIGJpdHMgdG8gemVybyAqLwotc3RhdGljIGNvbnN0IHVpbnQ4X3Qgc3Jf
bWFza1s4XSA9IHsKLSAgICAodWludDhfdCl+MHhmYywKLSAgICAodWludDhf
dCl+MHhjMiwKLSAgICAodWludDhfdCl+MHhmMCwKLSAgICAodWludDhfdCl+
MHhjMCwKLSAgICAodWludDhfdCl+MHhmMSwKLSAgICAodWludDhfdCl+MHhm
ZiwKLSAgICAodWludDhfdCl+MHhmZiwKLSAgICAodWludDhfdCl+MHgwMCwK
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC02MSwx
MiArNDksNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5zcl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2M1OiAgICAgICAgICAg
ICAgICAgLyogc2VxdWVuY2VyIGRhdGEgcmVnaXN0ZXIgKi8KLSAgICAgICAg
cmMgPSAocy0+c3JfaW5kZXggPCBzaXplb2Yocy0+c3IpKTsKLSAgICAgICAg
aWYgKCByYyApCi0gICAgICAgICAgICBzLT5zcltzLT5zcl9pbmRleF0gPSB2
YWwgJiBzcl9tYXNrW3MtPnNyX2luZGV4XSA7Ci0gICAgICAgIGJyZWFrOwot
CiAgICAgY2FzZSAweDNjZTogICAgICAgICAgICAgICAgIC8qIGdyYXBoaWNz
IGFkZHJlc3MgcmVnaXN0ZXIgKi8KICAgICAgICAgcy0+Z3JfaW5kZXggPSB2
YWw7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv
YXNtLXg4Ni9odm0vaW8uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lv
LmgKaW5kZXggMzc1YzEyYTQ2NmYyLi5kMTdjZjIwZmQ0ZTEgMTAwNjQ0Ci0t
LSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvLmgKKysrIGIveGVuL2lu
Y2x1ZGUvYXNtLXg4Ni9odm0vaW8uaApAQCAtMTIzLDcgKzEyMyw2IEBAIHN0
cnVjdCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiAKIHN0cnVjdCBodm1faHdf
c3RkdmdhIHsKICAgICB1aW50OF90IHNyX2luZGV4OwotICAgIHVpbnQ4X3Qg
c3JbOF07CiAgICAgdWludDhfdCBncl9pbmRleDsKICAgICBzdHJ1Y3QgcGFn
ZV9pbmZvICp2cmFtX3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAt
MHhhZmZmZiAqLwogICAgIHNwaW5sb2NrX3QgbG9jazsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-07.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ7ZyxzfXJfaW5kZXgiIHN0cnVj
dCBtZW1iZXJzCgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBw
cm9kdWNlciBhbmQgdGhlIGZpZWxkcyB0aGVtc2VsdmVzIGNhbgphbHNvIGdv
IGF3YXkuIHN0ZHZnYV9vdXRiKCkgaXMgdGhlbiB1c2VsZXNzLCByZW5kZXJp
bmcgc3RkdmdhX291dCgpCnVzZWxlc3MgYXMgd2VsbC4gSGVuY2UgdGhlIGVu
dGlyZSBJL08gcG9ydCBpbnRlcmNlcHQgY2FuIGdvIGF3YXkuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTQ2MyAvIENWRS0yMDI0LTQ1ODE4CgpTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
LWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t
PgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4NmMwMzM3MmUxMDdmNWMx
ODI2NmE2MjI4MTY2Mzg2MWIxMTQ0OTI5KQoKZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCmluZGV4IDcwZmFjZGJkOTYwMi4uYzM2MzY2OWI0YWFhIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3RkdmdhLmMKQEAgLTM4LDYyICszOCw2IEBACiAjZGVmaW5l
IFZHQV9NRU1fQkFTRSAweGEwMDAwCiAjZGVmaW5lIFZHQV9NRU1fU0laRSAw
eDIwMDAwCiAKLXN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRk
ciwgdWludDhfdCB2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2Eg
KnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0gICAg
aW50IHJjID0gMTsKLQotICAgIHN3aXRjaCAoIGFkZHIgKQotICAgIHsKLSAg
ICBjYXNlIDB4M2M0OiAgICAgICAgICAgICAgICAgLyogc2VxdWVuY2VyIGFk
ZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAgICAgcy0+c3JfaW5kZXggPSB2YWw7
Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSAweDNjZTogICAgICAgICAg
ICAgICAgIC8qIGdyYXBoaWNzIGFkZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAg
ICAgcy0+Z3JfaW5kZXggPSB2YWw7Ci0gICAgICAgIGJyZWFrOwotCi0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcmMgPSAwOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyB2b2lkIHN0ZHZn
YV9vdXQodWludDMyX3QgcG9ydCwgdWludDMyX3QgYnl0ZXMsIHVpbnQzMl90
IHZhbCkKLXsKLSAgICBzd2l0Y2ggKCBieXRlcyApCi0gICAgewotICAgIGNh
c2UgMToKLSAgICAgICAgc3RkdmdhX291dGIocG9ydCwgdmFsKTsKLSAgICAg
ICAgYnJlYWs7Ci0KLSAgICBjYXNlIDI6Ci0gICAgICAgIHN0ZHZnYV9vdXRi
KHBvcnQgKyAwLCB2YWwgPj4gMCk7Ci0gICAgICAgIHN0ZHZnYV9vdXRiKHBv
cnQgKyAxLCB2YWwgPj4gOCk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgZGVm
YXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMgaW50
IHN0ZHZnYV9pbnRlcmNlcHRfcGlvKAotICAgIGludCBkaXIsIHVuc2lnbmVk
IGludCBwb3J0LCB1bnNpZ25lZCBpbnQgYnl0ZXMsIHVpbnQzMl90ICp2YWwp
Ci17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+
ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0KLSAgICBpZiAoIGRpciA9PSBJ
T1JFUV9XUklURSApCi0gICAgewotICAgICAgICBzcGluX2xvY2soJnMtPmxv
Y2spOwotICAgICAgICBzdGR2Z2Ffb3V0KHBvcnQsIGJ5dGVzLCAqdmFsKTsK
LSAgICAgICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOwotICAgIH0KLQotICAg
IHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsgLyogcHJvcGFnYXRlIHRv
IGV4dGVybmFsIGlvZW11ICovCi19Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX21l
bV9yZWFkKGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFkZHIsIHVp
bnQzMl90IHNpemUsIHVpbnQ2NF90ICpwX2RhdGEpCiB7CkBAIC0xOTQsMTEg
KzEzOCw2IEBAIHZvaWQgc3RkdmdhX2luaXQoc3RydWN0IGRvbWFpbiAqZCkK
ICAgICB7CiAgICAgICAgIHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxl
cjsKIAotICAgICAgICAvKiBTZXF1ZW5jZXIgcmVnaXN0ZXJzLiAqLwotICAg
ICAgICByZWdpc3Rlcl9wb3J0aW9faGFuZGxlcihkLCAweDNjNCwgMiwgc3Rk
dmdhX2ludGVyY2VwdF9waW8pOwotICAgICAgICAvKiBHcmFwaGljcyByZWdp
c3RlcnMuICovCi0gICAgICAgIHJlZ2lzdGVyX3BvcnRpb19oYW5kbGVyKGQs
IDB4M2NlLCAyLCBzdGR2Z2FfaW50ZXJjZXB0X3Bpbyk7Ci0KICAgICAgICAg
LyogVkdBIG1lbW9yeSAqLwogICAgICAgICBoYW5kbGVyID0gaHZtX25leHRf
aW9faGFuZGxlcihkKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt
LXg4Ni9odm0vaW8uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvLmgK
aW5kZXggZDE3Y2YyMGZkNGUxLi4wM2E0MzdmYjhiZjQgMTAwNjQ0Ci0tLSBh
L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvLmgKKysrIGIveGVuL2luY2x1
ZGUvYXNtLXg4Ni9odm0vaW8uaApAQCAtMTIyLDggKzEyMiw2IEBAIHN0cnVj
dCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiB9OwogCiBzdHJ1Y3QgaHZtX2h3
X3N0ZHZnYSB7Ci0gICAgdWludDhfdCBzcl9pbmRleDsKLSAgICB1aW50OF90
IGdyX2luZGV4OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnZyYW1fcGFnZVs2
NF07ICAvKiBzaGFkb3cgb2YgMHhhMDAwMC0weGFmZmZmICovCiAgICAgc3Bp
bmxvY2tfdCBsb2NrOwogfTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-08.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ2cmFtX3BhZ2VbXSIgc3RydWN0
IG1lbWJlcgoKTm8gdXNlcyBhcmUgbGVmdCwgaGVuY2UgaXRzIHNldHVwLCB0
ZWFyZG93biwgYW5kIHRoZSBmaWVsZCBpdHNlbGYgY2FuCmFsc28gZ28gYXdh
eS4gc3RkdmdhX2RlaW5pdCgpIGlzIHRoZW4gZW1wdHkgYW5kIGNhbiBiZSBk
cm9wcGVkIGFzIHdlbGwuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTQ2MyAvIENW
RS0yMDI0LTQ1ODE4CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl
dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCAzYmViNGJhZjJhMGEyZWVmNDBkMzllYjdlNmVlY2JmZDM2ZGE1
ZDE0KQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94
ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDU0MmI2MGJjOTBlNC4uYTk5
OGFmZjFjZTUyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTcwOSw3ICs3MDks
NiBAQCBpbnQgaHZtX2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g
KmQpCiAgICAgcmV0dXJuIDA7CiAKICBmYWlsMjoKLSAgICBzdGR2Z2FfZGVp
bml0KGQpOwogICAgIHZpb2FwaWNfZGVpbml0KGQpOwogIGZhaWwxOgogICAg
IGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKQEAgLTc3Miw3ICs3NzEs
NiBAQCB2b2lkIGh2bV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpk
KQogICAgIGlmICggaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95ICkKICAgICAg
ICAgYWx0ZXJuYXRpdmVfdmNhbGwoaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95
LCBkKTsKIAotICAgIHN0ZHZnYV9kZWluaXQoZCk7CiAgICAgdmlvYXBpY19k
ZWluaXQoZCk7CiAKICAgICBYRlJFRShkLT5hcmNoLmh2bS5wbF90aW1lKTsK
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4IGMzNjM2NjliNGFhYS4uMzg5
MGQ2OWM4MmM3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKQEAgLTExNiw4
ICsxMTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19vcHMgc3Rk
dmdhX21lbV9vcHMgPSB7CiB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21h
aW4gKmQpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+
YXJjaC5odm0uc3RkdmdhOwotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwot
ICAgIHVuc2lnbmVkIGludCBpOworICAgIHN0cnVjdCBodm1faW9faGFuZGxl
ciAqaGFuZGxlcjsKIAogICAgIGlmICggIWhhc192dmdhKGQpICkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTI1LDQ3ICsxMjQsMTUgQEAgdm9pZCBzdGR2Z2Ff
aW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIG1lbXNldChzLCAwLCBzaXpl
b2YoKnMpKTsKICAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7CiAgICAg
Ci0gICAgZm9yICggaSA9IDA7IGkgIT0gQVJSQVlfU0laRShzLT52cmFtX3Bh
Z2UpOyBpKysgKQorICAgIC8qIFZHQSBtZW1vcnkgKi8KKyAgICBoYW5kbGVy
ID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKKyAgICBpZiAoIGhhbmRsZXIg
KQogICAgIHsKLSAgICAgICAgcGcgPSBhbGxvY19kb21oZWFwX3BhZ2UoZCwg
TUVNRl9ub19vd25lcik7Ci0gICAgICAgIGlmICggcGcgPT0gTlVMTCApCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgcy0+dnJhbV9wYWdlW2ldID0g
cGc7Ci0gICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBhZ2VfdG9fbWZuKHBn
KSk7Ci0gICAgfQotCi0gICAgaWYgKCBpID09IEFSUkFZX1NJWkUocy0+dnJh
bV9wYWdlKSApCi0gICAgewotICAgICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRs
ZXIgKmhhbmRsZXI7Ci0KLSAgICAgICAgLyogVkdBIG1lbW9yeSAqLwotICAg
ICAgICBoYW5kbGVyID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKLQotICAg
ICAgICBpZiAoIGhhbmRsZXIgPT0gTlVMTCApCi0gICAgICAgICAgICByZXR1
cm47Ci0KICAgICAgICAgaGFuZGxlci0+dHlwZSA9IElPUkVRX1RZUEVfQ09Q
WTsKICAgICAgICAgaGFuZGxlci0+b3BzID0gJnN0ZHZnYV9tZW1fb3BzOwog
ICAgIH0KIH0KIAotdm9pZCBzdGR2Z2FfZGVpbml0KHN0cnVjdCBkb21haW4g
KmQpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+YXJj
aC5odm0uc3RkdmdhOwotICAgIGludCBpOwotCi0gICAgaWYgKCAhaGFzX3Z2
Z2EoZCkgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKCBpID0gMDsg
aSAhPSBBUlJBWV9TSVpFKHMtPnZyYW1fcGFnZSk7IGkrKyApCi0gICAgewot
ICAgICAgICBpZiAoIHMtPnZyYW1fcGFnZVtpXSA9PSBOVUxMICkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShz
LT52cmFtX3BhZ2VbaV0pOwotICAgICAgICBzLT52cmFtX3BhZ2VbaV0gPSBO
VUxMOwotICAgIH0KLX0KLQogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAq
IG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt
L2lvLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pby5oCmluZGV4IDAz
YTQzN2ZiOGJmNC4uMmY1YmZlY2NhZTM5IDEwMDY0NAotLS0gYS94ZW4vaW5j
bHVkZS9hc20teDg2L2h2bS9pby5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14
ODYvaHZtL2lvLmgKQEAgLTEyMiwxMiArMTIyLDEwIEBAIHN0cnVjdCB2cGNp
X2FyY2hfbXNpeF9lbnRyeSB7CiB9OwogCiBzdHJ1Y3QgaHZtX2h3X3N0ZHZn
YSB7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAqdnJhbV9wYWdlWzY0XTsgIC8q
IHNoYWRvdyBvZiAweGEwMDAwLTB4YWZmZmYgKi8KICAgICBzcGlubG9ja190
IGxvY2s7CiB9OwogCiB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21haW4g
KmQpOwotdm9pZCBzdGR2Z2FfZGVpbml0KHN0cnVjdCBkb21haW4gKmQpOwog
CiBleHRlcm4gdm9pZCBodm1fZHBjaV9tc2lfZW9pKHN0cnVjdCBkb21haW4g
KmQsIGludCB2ZWN0b3IpOwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-09.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJsb2NrIiBzdHJ1Y3QgbWVtYmVy
CgpObyBzdGF0ZSBpcyBsZWZ0IHRvIHByb3RlY3QuIEl0IGJlaW5nIHRoZSBs
YXN0IGZpZWxkLCBkcm9wIHRoZSBzdHJ1Y3QKaXRzZWxmIGFzIHdlbGwuIFNp
bWlsYXJseSBmb3IgdGhlbiBlbmRpbmcgdXAgZW1wdHksIGRyb3AgdGhlIC5j
b21wbGV0ZQpoYW5kbGVyLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRy
ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5
IHBpY2tlZCBmcm9tIGNvbW1pdCBiMTgwYTUwMzI2YzhhMmMxNzFmMzdjMTk0
MGEwZmJiZGNhZDRiZTkwKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o
dm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4
IDM4OTBkNjljODJjNy4uM2M1MzQwYWQ5Mjc5IDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKQEAgLTY5LDYxICs2OSwzNSBAQCBzdGF0aWMgaW50IHN0ZHZn
YV9tZW1fd3JpdGUoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5k
bGVyLAogc3RhdGljIGJvb2xfdCBzdGR2Z2FfbWVtX2FjY2VwdChjb25zdCBz
dHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGlvcmVxX3QgKnApCiB7Ci0gICAg
c3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5h
cmNoLmh2bS5zdGR2Z2E7Ci0KLSAgICAvKgotICAgICAqIFRoZSByYW5nZSBj
aGVjayBtdXN0IGJlIGRvbmUgd2l0aG91dCB0YWtpbmcgdGhlIGxvY2ssIHRv
IGF2b2lkCi0gICAgICogZGVhZGxvY2sgd2hlbiBodm1fbW1pb19pbnRlcm5h
bCgpIGlzIGNhbGxlZCBmcm9tCi0gICAgICogaHZtX2NvcHlfdG8vZnJvbV9n
dWVzdF9waHlzKCkgaW4gaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0KCkuCi0g
ICAgICovCiAgICAgaWYgKCAoaW9yZXFfbW1pb19maXJzdF9ieXRlKHApIDwg
VkdBX01FTV9CQVNFKSB8fAogICAgICAgICAgKGlvcmVxX21taW9fbGFzdF9i
eXRlKHApID49IChWR0FfTUVNX0JBU0UgKyBWR0FfTUVNX1NJWkUpKSApCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsK
LQogICAgIGlmICggcC0+ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFf
aXNfcHRyIHx8IHAtPmNvdW50ICE9IDEgKQogICAgIHsKICAgICAgICAgLyoK
ICAgICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMs
IGFzIHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KICAgICAgICAgICog
YWNjZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KICAg
ICAgICAgICovCi0gICAgICAgIGdvdG8gcmVqZWN0OworICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0gICAgLyogcy0+bG9jayBpbnRlbnRpb25h
bGx5IGhlbGQgKi8KLSAgICByZXR1cm4gMTsKLQotIHJlamVjdDoKLSAgICBz
cGluX3VubG9jaygmcy0+bG9jayk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0
YXRpYyB2b2lkIHN0ZHZnYV9tZW1fY29tcGxldGUoY29uc3Qgc3RydWN0IGh2
bV9pb19oYW5kbGVyICpoYW5kbGVyKQotewotICAgIHN0cnVjdCBodm1faHdf
c3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0uc3Rkdmdh
OwotCi0gICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOworICAgIHJldHVybiB0
cnVlOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19vcHMgc3Rk
dmdhX21lbV9vcHMgPSB7CiAgICAgLmFjY2VwdCA9IHN0ZHZnYV9tZW1fYWNj
ZXB0LAogICAgIC5yZWFkID0gc3RkdmdhX21lbV9yZWFkLAogICAgIC53cml0
ZSA9IHN0ZHZnYV9tZW1fd3JpdGUsCi0gICAgLmNvbXBsZXRlID0gc3Rkdmdh
X21lbV9jb21wbGV0ZQogfTsKIAogdm9pZCBzdGR2Z2FfaW5pdChzdHJ1Y3Qg
ZG9tYWluICpkKQogewotICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0g
JmQtPmFyY2guaHZtLnN0ZHZnYTsKICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRs
ZXIgKmhhbmRsZXI7CiAKICAgICBpZiAoICFoYXNfdnZnYShkKSApCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1lbXNldChzLCAwLCBzaXplb2YoKnMpKTsK
LSAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7Ci0gICAgCiAgICAgLyog
VkdBIG1lbW9yeSAqLwogICAgIGhhbmRsZXIgPSBodm1fbmV4dF9pb19oYW5k
bGVyKGQpOwogICAgIGlmICggaGFuZGxlciApCmRpZmYgLS1naXQgYS94ZW4v
aW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2Fz
bS14ODYvaHZtL2RvbWFpbi5oCmluZGV4IDY5ODQ1NTQ0NGVhOC4uMWU1ZDdk
YjZlZDA5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9k
b21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4u
aApAQCAtODMsNyArODMsNiBAQCBzdHJ1Y3QgaHZtX2RvbWFpbiB7CiAgICAg
c3RydWN0IGh2bV9od192cGljICAgICB2cGljWzJdOyAvKiAwPW1hc3Rlcjsg
MT1zbGF2ZSAqLwogICAgIHN0cnVjdCBodm1fdmlvYXBpYyAgICAqKnZpb2Fw
aWM7CiAgICAgdW5zaWduZWQgaW50ICAgICAgICAgICBucl92aW9hcGljczsK
LSAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAgIHN0ZHZnYTsKIAogICAgIC8q
CiAgICAgICogaHZtX2h3X3BtdGltZXIgaXMgYSBwdWJsaWNseS12aXNpYmxl
IG5hbWUuIFdlIHdpbGwgZGVmZXIgcmVuYW1pbmcKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvLmggYi94ZW4vaW5jbHVkZS9hc20t
eDg2L2h2bS9pby5oCmluZGV4IDJmNWJmZWNjYWUzOS4uNzg0YmQwYzgzZjJm
IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pby5oCisr
KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvLmgKQEAgLTEyMSwxMCAr
MTIxLDYgQEAgc3RydWN0IHZwY2lfYXJjaF9tc2l4X2VudHJ5IHsKICAgICBp
bnQgcGlycTsKIH07CiAKLXN0cnVjdCBodm1faHdfc3RkdmdhIHsKLSAgICBz
cGlubG9ja190IGxvY2s7Ci19OwotCiB2b2lkIHN0ZHZnYV9pbml0KHN0cnVj
dCBkb21haW4gKmQpOwogCiBleHRlcm4gdm9pZCBodm1fZHBjaV9tc2lfZW9p
KHN0cnVjdCBkb21haW4gKmQsIGludCB2ZWN0b3IpOwo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.16-10.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.16-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L2h2bTogU2ltcGxpZnkgc3RkdmdhX21lbV9hY2Nl
cHQoKSBmdXJ0aGVyCgpzdGR2Z2FfbWVtX2FjY2VwdCgpIGlzIGNhbGxlZCBv
biBhbG1vc3QgYWxsIElPIGVtdWxhdGlvbnMsIGFuZCB0aGUKb3ZlcndoZWxt
aW5nIGxpa2VseSBhbnN3ZXIgaXMgdG8gcmVqZWN0IHRoZSBpb3JlcS4gIFNp
bXBseSByZWFycmFuZ2luZyB0aGUKZXhwcmVzc2lvbiB5aWVsZHMgYW4gaW1w
cm92ZW1lbnQ6CgogIGFkZC9yZW1vdmU6IDAvMCBncm93L3NocmluazogMC8x
IHVwL2Rvd246IDAvLTU3ICgtNTcpCiAgRnVuY3Rpb24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQog
IHN0ZHZnYV9tZW1fYWNjZXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEwOSAgICAgIDUyICAgICAtNTcKCndoaWNoIGlzIGJlc3QgZXhwbGFpbmVk
IGxvb2tpbmcgYXQgdGhlIGRpc2Fzc2VtYmx5OgoKICBCZWZvcmU6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFmdGVyOgogIGYzIDBmIDFlIGZhICAgICAgICAgICBlbmRicjY0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZjMgMGYgMWUgZmEgICAgICAgICAg
IGVuZGJyNjQKICAwZiBiNiA0ZSAxZSAgICAgICAgICAgbW92emJsIDB4MWUo
JXJzaSksJWVjeCAgICAgICAgICAgIHwgIDBmIGI2IDQ2IDFlICAgICAgICAg
ICBtb3Z6YmwgMHgxZSglcnNpKSwlZWF4CiAgNDggOGIgMTYgICAgICAgICAg
ICAgIG1vdiAgICAoJXJzaSksJXJkeCAgICAgICAgICAgICAgICB8ICAzMSBk
MiAgICAgICAgICAgICAgICAgeG9yICAgICVlZHgsJWVkeAogIGY2IGMxIDQw
ICAgICAgICAgICAgICB0ZXN0ICAgJDB4NDAsJWNsICAgICAgICAgICAgICAg
ICAgfCAgYTggMzAgICAgICAgICAgICAgICAgIHRlc3QgICAkMHgzMCwlYWwK
ICA3NSAzOCAgICAgICAgICAgICAgICAgam5lICAgIDxzdGR2Z2FfbWVtX2Fj
Y2VwdCsweDQ4PiAgIHwgIDc1IDIzICAgICAgICAgICAgICAgICBqbmUgICAg
PHN0ZHZnYV9tZW1fYWNjZXB0KzB4MzE+CiAgMzEgYzAgICAgICAgICAgICAg
ICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDgg
ODEgZmEgZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcmR4ICAgICAg
ICAgICAgICA8CiAgNzYgMjYgICAgICAgICAgICAgICAgIGpiZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgOGIgNDYgMTQgICAgICAgICAg
ICAgIG1vdiAgICAweDE0KCVyc2kpLCVlYXggICAgICAgICAgICA8CiAgOGIg
N2UgMTAgICAgICAgICAgICAgIG1vdiAgICAweDEwKCVyc2kpLCVlZGkgICAg
ICAgICAgICA8CiAgNDggMGYgYWYgYzcgICAgICAgICAgIGltdWwgICAlcmRp
LCVyYXggICAgICAgICAgICAgICAgICA8CiAgNDggOGQgNTQgMDIgZmYgICAg
ICAgIGxlYSAgICAtMHgxKCVyZHgsJXJheCwxKSwlcmR4ICAgICA8CiAgMzEg
YzAgICAgICAgICAgICAgICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAg
ICAgICAgICA8CiAgNDggODEgZmEgZmYgZmYgMGIgMDAgIGNtcCAgICAkMHhi
ZmZmZiwlcmR4ICAgICAgICAgICAgICA8CiAgNzcgMGMgICAgICAgICAgICAg
ICAgIGphICAgICA8c3RkdmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMg
ZTEgMzAgICAgICAgICAgICAgIGFuZCAgICAkMHgzMCwlZWN4ICAgICAgICAg
ICAgICAgICA8CiAgNzUgMDcgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMgN2UgMTAgMDEgICAgICAg
ICAgIGNtcGwgICAkMHgxLDB4MTAoJXJzaSkgICAgICAgICAgICAgICA4MyA3
ZSAxMCAwMSAgICAgICAgICAgY21wbCAgICQweDEsMHgxMCglcnNpKQogIDBm
IDk0IGMwICAgICAgICAgICAgICBzZXRlICAgJWFsICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgNzUgMWQgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHgzMT4KICBjMyAgICAgICAgICAgICAgICAgICAg
cmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4IDhiIDBl
ICAgICAgICAgICAgICBtb3YgICAgKCVyc2kpLCVyY3gKICA2NiAwZiAxZiA0
NCAwMCAwMCAgICAgbm9wdyAgIDB4MCglcmF4LCVyYXgsMSkgICAgICAgICAg
IHwgIDQ4IDgxIGY5IGZmIGZmIDA5IDAwICBjbXAgICAgJDB4OWZmZmYsJXJj
eAogIDhiIDQ2IDEwICAgICAgICAgICAgICBtb3YgICAgMHgxMCglcnNpKSwl
ZWF4ICAgICAgICAgICAgfCAgNzYgMTEgICAgICAgICAgICAgICAgIGpiZSAg
ICA8c3RkdmdhX21lbV9hY2NlcHQrMHgzMT4KICA4YiA3ZSAxNCAgICAgICAg
ICAgICAgbW92ICAgIDB4MTQoJXJzaSksJWVkaSAgICAgICAgICAgIHwgIDhi
IDQ2IDE0ICAgICAgICAgICAgICBtb3YgICAgMHgxNCglcnNpKSwlZWF4CiAg
NDkgODkgZDAgICAgICAgICAgICAgIG1vdiAgICAlcmR4LCVyOCAgICAgICAg
ICAgICAgICAgICB8ICA0OCA4ZCA0NCAwMSBmZiAgICAgICAgbGVhICAgIC0w
eDEoJXJjeCwlcmF4LDEpLCVyYXgKICA0OCA4MyBlOCAwMSAgICAgICAgICAg
c3ViICAgICQweDEsJXJheCAgICAgICAgICAgICAgICAgIHwgIDQ4IDNkIGZm
IGZmIDBiIDAwICAgICBjbXAgICAgJDB4YmZmZmYsJXJheAogIDQ4IDhkIDU0
IDNhIGZmICAgICAgICBsZWEgICAgLTB4MSglcmR4LCVyZGksMSksJXJkeCAg
ICAgfCAgMGYgOTYgYzIgICAgICAgICAgICAgIHNldGJlICAlZGwKICA0OCAw
ZiBhZiBjNyAgICAgICAgICAgaW11bCAgICVyZGksJXJheCAgICAgICAgICAg
ICAgICAgIHwgIDg5IGQwICAgICAgICAgICAgICAgICBtb3YgICAgJWVkeCwl
ZWF4CiAgNDkgMjkgYzAgICAgICAgICAgICAgIHN1YiAgICAlcmF4LCVyOCAg
ICAgICAgICAgICAgICAgICA8CiAgMzEgYzAgICAgICAgICAgICAgICAgIHhv
ciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDkgODEgZjgg
ZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcjggICAgICAgICAgICAg
ICA8CiAgNzcgYmUgICAgICAgICAgICAgICAgIGphICAgICA8c3RkdmdhX21l
bV9hY2NlcHQrMHgyYT4gICA8CiAgYzMgICAgICAgICAgICAgICAgICAgIHJl
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMyAgICAgICAg
ICAgICAgICAgICAgcmV0CgpCeSBtb3ZpbmcgdGhlICJwLT5jb3VudCAhPSAx
IiBjaGVjayBhaGVhZCBvZiB0aGUKaW9yZXFfbW1pb197Zmlyc3QsbGFzdH1f
Ynl0ZSgpIGNhbGxzLCBib3RoIG11bHRpcGxpZXMgZGlzYXBwZWFyIGFsb25n
IHdpdGggYQpsb3Qgb2Ygc3Vycm91bmRpbmcgbG9naWMuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IDA4ZmZkODcwNWQzNmM3YzQ0NWRmM2VjZWU4YWQ5YjhmOGQ2NWZi
ZTApCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggM2M1MzQwYWQ5Mjc5
Li5mZGI0MWVmMzA1ZWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
NjksMTggKzY5LDE0IEBAIHN0YXRpYyBpbnQgc3RkdmdhX21lbV93cml0ZShj
b25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsCiBzdGF0aWMg
Ym9vbF90IHN0ZHZnYV9tZW1fYWNjZXB0KGNvbnN0IHN0cnVjdCBodm1faW9f
aGFuZGxlciAqaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgaW9yZXFfdCAqcCkKIHsKLSAgICBpZiAoIChpb3JlcV9t
bWlvX2ZpcnN0X2J5dGUocCkgPCBWR0FfTUVNX0JBU0UpIHx8CisgICAgLyoK
KyAgICAgKiBPbmx5IGFjY2VwdCBzaW5nbGUgZGlyZWN0IHdyaXRlcywgYXMg
dGhhdCdzIHRoZSBvbmx5IHRoaW5nIHdlIGNhbgorICAgICAqIGFjY2VsZXJh
dGUgdXNpbmcgYnVmZmVyZWQgaW9yZXEgaGFuZGxpbmcuCisgICAgICovCisg
ICAgaWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJVEUgfHwgcC0+ZGF0YV9pc19w
dHIgfHwgcC0+Y291bnQgIT0gMSB8fAorICAgICAgICAgKGlvcmVxX21taW9f
Zmlyc3RfYnl0ZShwKSA8IFZHQV9NRU1fQkFTRSkgfHwKICAgICAgICAgIChp
b3JlcV9tbWlvX2xhc3RfYnl0ZShwKSA+PSAoVkdBX01FTV9CQVNFICsgVkdB
X01FTV9TSVpFKSkgKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICgg
cC0+ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFfaXNfcHRyIHx8IHAt
PmNvdW50ICE9IDEgKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICog
T25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMsIGFzIHRoYXQncyB0
aGUgb25seSB0aGluZyB3ZSBjYW4KLSAgICAgICAgICogYWNjZWxlcmF0ZSB1
c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KLSAgICAgICAgICovCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0K

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-01.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJjYWNoZSIgc3RydWN0IG1lbWJl
cgoKU2luY2UgNjhlMTE4MzQxMWJlICgibGlieGM6IGludHJvZHVjZSBhIHhj
X2RvbV9hcmNoIGZvciBodm0tMy4wLXg4Nl8zMgpndWVzdHMiKSwgSFZNIGd1
ZXN0cyBhcmUgYnVpbHQgdXNpbmcgWEVOX0RPTUNUTF9zZXRodm1jb250ZXh0
LCB3aGljaAplbmRzIHVwIGRpc2FibGluZyBzdGR2Z2EgY2FjaGluZyBiZWNh
dXNlIG9mIGFyY2hfaHZtX2xvYWQoKSBiZWluZwppbnZvbHZlZCBpbiB0aGUg
cHJvY2Vzc2luZyBvZiB0aGUgcmVxdWVzdC4gV2l0aCB0aGF0IHRoZSBmaWVs
ZCBpcwp1c2VsZXNzLCBhbmQgY2FuIGJlIGRyb3BwZWQuIERyb3AgdGhlIGhl
bHBlciBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIC8KY2hlY2tpbmcgYXMgd2Vs
bCByaWdodCBhd2F5LCBidXQgbGVhdmUgdGhlIHVzZSBzaXRlcyBvZgpzdGR2
Z2FfY2FjaGVfaXNfZW5hYmxlZCgpIHdpdGggdGhlIGhhcmQtY29kZWQgcmVz
dWx0IHRoZSBmdW5jdGlvbiB3b3VsZApoYXZlIHByb2R1Y2VkLCB0byBhaWQg
dmFsaWRhdGlvbiBvZiBzdWJzZXF1ZW50IGRyb3BwaW5nIG9mIGZ1cnRoZXIg
Y29kZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZFLTIwMjQtNDU4
MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w
ZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDUz
YjcyNDZiZGZiM2MyODBhZGNkZjcxNDkxOGU0ZGVjYjdlMTA4ZjQpCgpkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMgYi94ZW4vYXJjaC94
ODYvaHZtL3NhdmUuYwppbmRleCA4NmM4MmNiZDc0NTYuLmFkMjU5NGY5NWIz
ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKKysrIGIv
eGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKQEAgLTc3LDkgKzc3LDYgQEAgaW50
IGFyY2hfaHZtX2xvYWQoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9z
YXZlX2hlYWRlciAqaGRyKQogICAgIC8qIFRpbWUgd2hlbiByZXN0b3JlIHN0
YXJ0ZWQgICovCiAgICAgZC0+YXJjaC5odm0uc3luY190c2MgPSByZHRzYygp
OwogCi0gICAgLyogVkdBIHN0YXRlIGlzIG5vdCBzYXZlZC9yZXN0b3JlZCwg
c28gd2Ugbm9iYmxlIHRoZSBjYWNoZS4gKi8KLSAgICBkLT5hcmNoLmh2bS5z
dGR2Z2EuY2FjaGUgPSBTVERWR0FfQ0FDSEVfRElTQUJMRUQ7Ci0KICAgICBy
ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9z
dGR2Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggYmU4
MjAwYzhkMDcyLi5iZWQyNWUzY2ZmNjIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9odm0vc3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2
Z2EuYwpAQCAtMTAxLDM3ICsxMDEsNiBAQCBzdGF0aWMgdm9pZCB2cmFtX3B1
dChzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcywgdm9pZCAqcCkKICAgICB1bm1h
cF9kb21haW5fcGFnZShwKTsKIH0KIAotc3RhdGljIHZvaWQgc3RkdmdhX3Ry
eV9jYWNoZV9lbmFibGUoc3RydWN0IGh2bV9od19zdGR2Z2EgKnMpCi17Ci0g
ICAgLyoKLSAgICAgKiBDYWNoaW5nIG1vZGUgY2FuIG9ubHkgYmUgZW5hYmxl
ZCBpZiB0aGUgdGhlIGNhY2hlIGhhcwotICAgICAqIG5ldmVyIGJlZW4gdXNl
ZCBiZWZvcmUuIEFzIHNvb24gYXMgaXQgaXMgZGlzYWJsZWQsIGl0IHdpbGwK
LSAgICAgKiBiZWNvbWUgb3V0LW9mLXN5bmMgd2l0aCB0aGUgVkdBIGRldmlj
ZSBtb2RlbCBhbmQgc2luY2Ugbm8KLSAgICAgKiBtZWNoYW5pc20gZXhpc3Rz
IHRvIGFjcXVpcmUgY3VycmVudCBWUkFNIHN0YXRlIGZyb20gdGhlCi0gICAg
ICogZGV2aWNlIG1vZGVsLCByZS1lbmFibGluZyBpdCB3b3VsZCBsZWFkIHRv
IHN0YWxlIGRhdGEgYmVpbmcKLSAgICAgKiBzZWVuIGJ5IHRoZSBndWVzdC4K
LSAgICAgKi8KLSAgICBpZiAoIHMtPmNhY2hlICE9IFNURFZHQV9DQUNIRV9V
TklOSVRJQUxJWkVEICkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ2Rwcmlu
dGsoWEVOTE9HX0lORk8sICJlbnRlcmluZyBjYWNoaW5nIG1vZGVcbiIpOwot
ICAgIHMtPmNhY2hlID0gU1REVkdBX0NBQ0hFX0VOQUJMRUQ7Ci19Ci0KLXN0
YXRpYyB2b2lkIHN0ZHZnYV9jYWNoZV9kaXNhYmxlKHN0cnVjdCBodm1faHdf
c3RkdmdhICpzKQotewotICAgIGlmICggcy0+Y2FjaGUgIT0gU1REVkdBX0NB
Q0hFX0VOQUJMRUQgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnZHByaW50
ayhYRU5MT0dfSU5GTywgImxlYXZpbmcgY2FjaGluZyBtb2RlXG4iKTsKLSAg
ICBzLT5jYWNoZSA9IFNURFZHQV9DQUNIRV9ESVNBQkxFRDsKLX0KLQotc3Rh
dGljIGJvb2xfdCBzdGR2Z2FfY2FjaGVfaXNfZW5hYmxlZChjb25zdCBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcykKLXsKLSAgICByZXR1cm4gcy0+Y2FjaGUg
PT0gU1REVkdBX0NBQ0hFX0VOQUJMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgc3Rk
dmdhX291dGIodWludDY0X3QgYWRkciwgdWludDhfdCB2YWwpCiB7CiAgICAg
c3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5h
cmNoLmh2bS5zdGR2Z2E7CkBAIC0xNzEsNyArMTQwLDYgQEAgc3RhdGljIGlu
dCBzdGR2Z2Ffb3V0Yih1aW50NjRfdCBhZGRyLCB1aW50OF90IHZhbCkKICAg
ICBpZiAoICFwcmV2X3N0ZHZnYSAmJiBzLT5zdGR2Z2EgKQogICAgIHsKICAg
ICAgICAgZ2RwcmludGsoWEVOTE9HX0lORk8sICJlbnRlcmluZyBzdGR2Z2Eg
bW9kZVxuIik7Ci0gICAgICAgIHN0ZHZnYV90cnlfY2FjaGVfZW5hYmxlKHMp
OwogICAgIH0KICAgICBlbHNlIGlmICggcHJldl9zdGR2Z2EgJiYgIXMtPnN0
ZHZnYSApCiAgICAgewpAQCAtNDY5LDcgKzQzNyw3IEBAIHN0YXRpYyBpbnQg
Y2ZfY2hlY2sgc3RkdmdhX21lbV93cml0ZSgKICAgICB9OwogICAgIHN0cnVj
dCBpb3JlcV9zZXJ2ZXIgKnNydjsKIAotICAgIGlmICggIXN0ZHZnYV9jYWNo
ZV9pc19lbmFibGVkKHMpIHx8ICFzLT5zdGR2Z2EgKQorICAgIGlmICggdHJ1
ZSB8fCAhcy0+c3RkdmdhICkKICAgICAgICAgZ290byBkb25lOwogCiAgICAg
LyogSW50ZXJjZXB0IG1taW8gd3JpdGUgKi8KQEAgLTUzNywxOCArNTA1LDEy
IEBAIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNjZXB0KAog
ICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVB
QkxFIG9uIGFueXRoaW5nIG90aGVyIHRoZW4gdGhlCiAgICAgICAgICAqIGZp
cnN0IGN5Y2xlIG9mIGFuIEkvTy4gU28sIHNpbmNlIHdlIGNhbm5vdCBndWFy
YW50ZWUgdG8gYWx3YXlzIGJlCiAgICAgICAgICAqIGFibGUgdG8gc2VuZCBi
dWZmZXJlZCB3cml0ZXMsIHdlIGhhdmUgdG8gcmVqZWN0IGFueSBtdWx0aS1j
eWNsZQotICAgICAgICAgKiBJL08gYW5kLCBzaW5jZSB3ZSBhcmUgcmVqZWN0
aW5nIGFuIEkvTywgd2UgbXVzdCBpbnZhbGlkYXRlIHRoZQotICAgICAgICAg
KiBjYWNoZS4KLSAgICAgICAgICogU2luZ2xlLWN5Y2xlIHdyaXRlIHRyYW5z
YWN0aW9ucyBhcmUgYWNjZXB0ZWQgZXZlbiBpZiB0aGUgY2FjaGUgaXMKLSAg
ICAgICAgICogbm90IGFjdGl2ZSBzaW5jZSB3ZSBjYW4gYXNzZXJ0LCB3aGVu
IGluIHN0ZHZnYSBtb2RlLCB0aGF0IHdyaXRlcwotICAgICAgICAgKiB0byBW
UkFNIGhhdmUgbm8gc2lkZSBlZmZlY3QgYW5kIHRodXMgd2UgY2FuIHRyeSB0
byBidWZmZXIgdGhlbS4KKyAgICAgICAgICogSS9PLgogICAgICAgICAgKi8K
LSAgICAgICAgc3RkdmdhX2NhY2hlX2Rpc2FibGUocyk7Ci0KICAgICAgICAg
Z290byByZWplY3Q7CiAgICAgfQogICAgIGVsc2UgaWYgKCBwLT5kaXIgPT0g
SU9SRVFfUkVBRCAmJgotICAgICAgICAgICAgICAoIXN0ZHZnYV9jYWNoZV9p
c19lbmFibGVkKHMpIHx8ICFzLT5zdGR2Z2EpICkKKyAgICAgICAgICAgICAg
KHRydWUgfHwgIXMtPnN0ZHZnYSkgKQogICAgICAgICBnb3RvIHJlamVjdDsK
IAogICAgIC8qIHMtPmxvY2sgaW50ZW50aW9uYWxseSBoZWxkICovCmRpZmYg
LS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmggYi94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKaW5kZXggNTRlMDE2
MWI0OTJjLi5kOTJmODdmODNiYjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9odm0vaW8uaAorKysgYi94ZW4vYXJjaC94ODYvaW5j
bHVkZS9hc20vaHZtL2lvLmgKQEAgLTEyMSwxOSArMTIxLDEyIEBAIHN0cnVj
dCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiAgICAgaW50IHBpcnE7CiB9Owog
Ci1lbnVtIHN0ZHZnYV9jYWNoZV9zdGF0ZSB7Ci0gICAgU1REVkdBX0NBQ0hF
X1VOSU5JVElBTElaRUQsCi0gICAgU1REVkdBX0NBQ0hFX0VOQUJMRUQsCi0g
ICAgU1REVkdBX0NBQ0hFX0RJU0FCTEVECi19OwotCiBzdHJ1Y3QgaHZtX2h3
X3N0ZHZnYSB7CiAgICAgdWludDhfdCBzcl9pbmRleDsKICAgICB1aW50OF90
IHNyWzhdOwogICAgIHVpbnQ4X3QgZ3JfaW5kZXg7CiAgICAgdWludDhfdCBn
cls5XTsKICAgICBib29sX3Qgc3RkdmdhOwotICAgIGVudW0gc3RkdmdhX2Nh
Y2hlX3N0YXRlIGNhY2hlOwogICAgIHVpbnQzMl90IGxhdGNoOwogICAgIHN0
cnVjdCBwYWdlX2luZm8gKnZyYW1fcGFnZVs2NF07ICAvKiBzaGFkb3cgb2Yg
MHhhMDAwMC0weGFmZmZmICovCiAgICAgc3BpbmxvY2tfdCBsb2NrOwoK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-02.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBwcm9wZXJseSByZWplY3QgImluZGlyZWN0IiBWUkFNIHdy
aXRlcwoKV2hpbGUgLT5jb3VudCB3aWxsIG9ubHkgYmUgZGlmZmVyZW50IGZy
b20gMSBmb3IgImluZGlyZWN0IiAoZGF0YSBpbgpndWVzdCBtZW1vcnkpIGFj
Y2Vzc2VzLCBpdCBiZWluZyAxIGRvZXMgbm90IGV4Y2x1ZGUgdGhlIHJlcXVl
c3QgYmVpbmcgYW4KImluZGlyZWN0IiBvbmUuIENoZWNrIGJvdGggdG8gYmUg
b24gdGhlIHNhZmUgc2lkZSwgYW5kIGJyaW5nIHRoZSAtPmNvdW50CnBhcnQg
YWxzbyBpbiBsaW5lIHdpdGggd2hhdCBpb3JlcV9zZW5kX2J1ZmZlcmVkKCkg
YWN0dWFsbHkgcmVmdXNlcyB0bwpoYW5kbGUuCgpUaGlzIGlzIHBhcnQgb2Yg
WFNBLTQ2MyAvIENWRS0yMDI0LTQ1ODE4CgpGaXhlczogM2JiYWFlYzA5YjFi
ICgieDg2L2h2bTogdW5pZnkgc3RkdmdhIG1taW8gaW50ZXJjZXB0IHdpdGgg
c3RhbmRhcmQgbW1pbyBpbnRlcmNlcHQiKQpTaWduZWQtb2ZmLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRy
ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5
IHBpY2tlZCBmcm9tIGNvbW1pdCBlYjdjZDA1OTNkODhjNGI5NjdhMjRiY2E4
YmQzMDU5MTk2NjY3NmNkKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o
dm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4
IGJlZDI1ZTNjZmY2Mi4uZjVhNGIxY2ZlOWMyIDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKQEAgLTQ5OSwxMyArNDk5LDEzIEBAIHN0YXRpYyBib29sIGNm
X2NoZWNrIHN0ZHZnYV9tZW1fYWNjZXB0KAogCiAgICAgc3Bpbl9sb2NrKCZz
LT5sb2NrKTsKIAotICAgIGlmICggcC0+ZGlyID09IElPUkVRX1dSSVRFICYm
IHAtPmNvdW50ID4gMSApCisgICAgaWYgKCBwLT5kaXIgPT0gSU9SRVFfV1JJ
VEUgJiYgKHAtPmRhdGFfaXNfcHRyIHx8IHAtPmNvdW50ICE9IDEpICkKICAg
ICB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFdlIGNhbm5vdCByZXR1cm4g
WDg2RU1VTF9VTkhBTkRMRUFCTEUgb24gYW55dGhpbmcgb3RoZXIgdGhlbiB0
aGUKICAgICAgICAgICogZmlyc3QgY3ljbGUgb2YgYW4gSS9PLiBTbywgc2lu
Y2Ugd2UgY2Fubm90IGd1YXJhbnRlZSB0byBhbHdheXMgYmUKICAgICAgICAg
ICogYWJsZSB0byBzZW5kIGJ1ZmZlcmVkIHdyaXRlcywgd2UgaGF2ZSB0byBy
ZWplY3QgYW55IG11bHRpLWN5Y2xlCi0gICAgICAgICAqIEkvTy4KKyAgICAg
ICAgICogb3IgImluZGlyZWN0IiBJL08uCiAgICAgICAgICAqLwogICAgICAg
ICBnb3RvIHJlamVjdDsKICAgICB9Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-03.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzdGR2Z2EiIHN0cnVjdCBtZW1i
ZXIKClR3byBvZiBpdHMgY29uc3VtZXJzIGFyZSBkZWFkIChpbiBjb21waWxl
LXRpbWUgY29uc3RhbnQgY29uZGl0aW9uYWxzKQphbmQgdGhlIG9ubHkgcmVt
YWluaW5nIG9uZXMgYXJlIG1lcmVseSBjb250cm9sbGluZyBkZWJ1ZyBsb2dn
aW5nLiBIZW5jZQp0aGUgZmllbGQgaXMgbm93IHBvaW50bGVzcyB0byBzZXQs
IHdoaWNoIGluIHBhcnRpY3VsYXIgYWxsb3dzIHRvIGdldCByaWQKb2YgdGhl
IHF1ZXN0aW9uYWJsZSBjb25kaXRpb25hbCBmcm9tIHdoaWNoIHRoZSBmaWVs
ZCdzIHZhbHVlIHdhcwplc3RhYmxpc2hlZCAoYWZhaWN0IDU1MWNlZWU5NzUx
MyBbIng4NiwgaHZtOiBzdGR2Z2EgY2FjaGUgYWx3YXlzIG9uIl0KaGFkIGRy
b3BwZWQgdG9vIG11Y2ggb2YgdGhlIGVhcmxpZXIgZXh0cmEgY2hlY2sgdGhh
dCB3YXMgdGhlcmUsIGFuZApxdWl0ZSBsaWtlbHkgZnVydGhlciBjaGVja3Mg
d2VyZSBtaXNzaW5nKS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZF
LTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1
bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IGI3NDBhOTM2OWU4MWJkZGE2NzVhOTc4MDEzMGNlMmI5ZTc1ZDRl
YzkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggZjVhNGIxY2ZlOWMy
Li4zYTg0YTdjMzVlOWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
MTA0LDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIHZyYW1fcHV0KHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzLCB2b2lkICpwKQogc3RhdGljIGludCBzdGR2Z2Ff
b3V0Yih1aW50NjRfdCBhZGRyLCB1aW50OF90IHZhbCkKIHsKICAgICBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2gu
aHZtLnN0ZHZnYTsKLSAgICBpbnQgcmMgPSAxLCBwcmV2X3N0ZHZnYSA9IHMt
PnN0ZHZnYTsKKyAgICBpbnQgcmMgPSAxOwogCiAgICAgc3dpdGNoICggYWRk
ciApCiAgICAgewpAQCAtMTMzLDE5ICsxMzMsNiBAQCBzdGF0aWMgaW50IHN0
ZHZnYV9vdXRiKHVpbnQ2NF90IGFkZHIsIHVpbnQ4X3QgdmFsKQogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICAvKiBXaGVuIGluIHN0YW5kYXJkIHZn
YSBtb2RlLCBlbXVsYXRlIGhlcmUgYWxsIHdyaXRlcyB0byB0aGUgdnJhbSBi
dWZmZXIKLSAgICAgKiBzbyB3ZSBjYW4gaW1tZWRpYXRlbHkgc2F0aXNmeSBy
ZWFkcyB3aXRob3V0IHdhaXRpbmcgZm9yIHFlbXUuICovCi0gICAgcy0+c3Rk
dmdhID0gKHMtPnNyWzddID09IDB4MDApOwotCi0gICAgaWYgKCAhcHJldl9z
dGR2Z2EgJiYgcy0+c3RkdmdhICkKLSAgICB7Ci0gICAgICAgIGdkcHJpbnRr
KFhFTkxPR19JTkZPLCAiZW50ZXJpbmcgc3RkdmdhIG1vZGVcbiIpOwotICAg
IH0KLSAgICBlbHNlIGlmICggcHJldl9zdGR2Z2EgJiYgIXMtPnN0ZHZnYSAp
Ci0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgImxlYXZp
bmcgc3RkdmdhIG1vZGVcbiIpOwotICAgIH0KLQogICAgIHJldHVybiByYzsK
IH0KIApAQCAtNDI2LDcgKzQxMyw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sg
c3RkdmdhX21lbV93cml0ZSgKICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hh
bmRsZXIgKmhhbmRsZXIsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IHNpemUs
CiAgICAgdWludDY0X3QgZGF0YSkKIHsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0
ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsK
ICAgICBpb3JlcV90IHAgPSB7CiAgICAgICAgIC50eXBlID0gSU9SRVFfVFlQ
RV9DT1BZLAogICAgICAgICAuYWRkciA9IGFkZHIsCkBAIC00MzcsOCArNDIz
LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBzdGR2Z2FfbWVtX3dyaXRlKAog
ICAgIH07CiAgICAgc3RydWN0IGlvcmVxX3NlcnZlciAqc3J2OwogCi0gICAg
aWYgKCB0cnVlIHx8ICFzLT5zdGR2Z2EgKQotICAgICAgICBnb3RvIGRvbmU7
CisgICAgZ290byBkb25lOwogCiAgICAgLyogSW50ZXJjZXB0IG1taW8gd3Jp
dGUgKi8KICAgICBzd2l0Y2ggKCBzaXplICkKQEAgLTQ5OSwxOSArNDg0LDE0
IEBAIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNjZXB0KAog
CiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKIAotICAgIGlmICggcC0+ZGly
ID09IElPUkVRX1dSSVRFICYmIChwLT5kYXRhX2lzX3B0ciB8fCBwLT5jb3Vu
dCAhPSAxKSApCisgICAgaWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJVEUgfHwg
cC0+ZGF0YV9pc19wdHIgfHwgcC0+Y291bnQgIT0gMSApCiAgICAgewogICAg
ICAgICAvKgotICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIFg4NkVNVUxf
VU5IQU5ETEVBQkxFIG9uIGFueXRoaW5nIG90aGVyIHRoZW4gdGhlCi0gICAg
ICAgICAqIGZpcnN0IGN5Y2xlIG9mIGFuIEkvTy4gU28sIHNpbmNlIHdlIGNh
bm5vdCBndWFyYW50ZWUgdG8gYWx3YXlzIGJlCi0gICAgICAgICAqIGFibGUg
dG8gc2VuZCBidWZmZXJlZCB3cml0ZXMsIHdlIGhhdmUgdG8gcmVqZWN0IGFu
eSBtdWx0aS1jeWNsZQotICAgICAgICAgKiBvciAiaW5kaXJlY3QiIEkvTy4K
KyAgICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMs
IGFzIHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KKyAgICAgICAgICog
YWNjZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KICAg
ICAgICAgICovCiAgICAgICAgIGdvdG8gcmVqZWN0OwogICAgIH0KLSAgICBl
bHNlIGlmICggcC0+ZGlyID09IElPUkVRX1JFQUQgJiYKLSAgICAgICAgICAg
ICAgKHRydWUgfHwgIXMtPnN0ZHZnYSkgKQotICAgICAgICBnb3RvIHJlamVj
dDsKIAogICAgIC8qIHMtPmxvY2sgaW50ZW50aW9uYWxseSBoZWxkICovCiAg
ICAgcmV0dXJuIDE7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vaHZtL2lvLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZt
L2lvLmgKaW5kZXggZDkyZjg3ZjgzYmI3Li5kOTY0ZjhlZmRmZTIgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKQEAgLTEyNiw3
ICsxMjYsNiBAQCBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7CiAgICAgdWludDhf
dCBzcls4XTsKICAgICB1aW50OF90IGdyX2luZGV4OwogICAgIHVpbnQ4X3Qg
Z3JbOV07Ci0gICAgYm9vbF90IHN0ZHZnYTsKICAgICB1aW50MzJfdCBsYXRj
aDsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICp2cmFtX3BhZ2VbNjRdOyAgLyog
c2hhZG93IG9mIDB4YTAwMDAtMHhhZmZmZiAqLwogICAgIHNwaW5sb2NrX3Qg
bG9jazsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-04.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiByZW1vdmUgdW51c2VkIE1NSU8gaGFuZGxpbmcgY29kZQoK
QWxsIHJlYWQgYWNjZXNzZXMgYXJlIHJlamVjdGVkIGJ5IHRoZSAtPmFjY2Vw
dCBoYW5kbGVyLCB3aGlsZSB3cml0ZXMKYnlwYXNzIHRoZSBidWxrIG9mIHRo
ZSBmdW5jdGlvbiBib2R5LiBEcm9wIHRoZSBkZWFkIGNvZGUsIGxlYXZpbmcg
YW4KYXNzZXJ0aW9uIGluIHRoZSByZWFkIGhhbmRsZXIuCgpBIG51bWJlciBv
ZiBvdGhlciBzdGF0aWMgaXRlbXMgKGFuZCBhIG1hY3JvKSBhcmUgdGhlbiB1
bnJlZmVyZW5jZWQgYW5kCmhlbmNlIGFsc28gbmVlZCAod2FudCkgZHJvcHBp
bmcuIFRoZSBzYW1lIGFwcGxpZXMgdG8gdGhlICJsYXRjaCIgZmllbGQKb2Yg
dGhlIHN0YXRlIHN0cnVjdHVyZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYz
IC8gQ1ZFLTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29w
ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IDg5MTA4NTQ3YWYxZjIzMGI3Mjg5M2I0ODM1MWY5YzEx
MDYxODk2NDkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2
Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggM2E4NGE3
YzM1ZTllLi45MTVkZmM4MjMwNzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9odm0vc3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2Eu
YwpAQCAtMzgsMjYgKzM4LDYgQEAKICNkZWZpbmUgVkdBX01FTV9CQVNFIDB4
YTAwMDAKICNkZWZpbmUgVkdBX01FTV9TSVpFIDB4MjAwMDAKIAotI2RlZmlu
ZSBQQVQoeCkgKHgpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgbWFzazE2WzE2
XSA9IHsKLSAgICBQQVQoMHgwMDAwMDAwMCksCi0gICAgUEFUKDB4MDAwMDAw
ZmYpLAotICAgIFBBVCgweDAwMDBmZjAwKSwKLSAgICBQQVQoMHgwMDAwZmZm
ZiksCi0gICAgUEFUKDB4MDBmZjAwMDApLAotICAgIFBBVCgweDAwZmYwMGZm
KSwKLSAgICBQQVQoMHgwMGZmZmYwMCksCi0gICAgUEFUKDB4MDBmZmZmZmYp
LAotICAgIFBBVCgweGZmMDAwMDAwKSwKLSAgICBQQVQoMHhmZjAwMDBmZiks
Ci0gICAgUEFUKDB4ZmYwMGZmMDApLAotICAgIFBBVCgweGZmMDBmZmZmKSwK
LSAgICBQQVQoMHhmZmZmMDAwMCksCi0gICAgUEFUKDB4ZmZmZjAwZmYpLAot
ICAgIFBBVCgweGZmZmZmZjAwKSwKLSAgICBQQVQoMHhmZmZmZmZmZiksCi19
OwotCiAvKiBmb3JjZSBzb21lIGJpdHMgdG8gemVybyAqLwogc3RhdGljIGNv
bnN0IHVpbnQ4X3Qgc3JfbWFza1s4XSA9IHsKICAgICAodWludDhfdCl+MHhm
YywKQEAgLTgyLDI1ICs2Miw2IEBAIHN0YXRpYyBjb25zdCB1aW50OF90IGdy
X21hc2tbOV0gPSB7CiAgICAgKHVpbnQ4X3QpfjB4MDAsIC8qIDB4MDggKi8K
IH07CiAKLXN0YXRpYyB1aW50OF90ICp2cmFtX2dldGIoc3RydWN0IGh2bV9o
d19zdGR2Z2EgKnMsIHVuc2lnbmVkIGludCBhKQotewotICAgIHN0cnVjdCBw
YWdlX2luZm8gKnBnID0gcy0+dnJhbV9wYWdlWyhhID4+IDEyKSAmIDB4M2Zd
OwotICAgIHVpbnQ4X3QgKnAgPSBfX21hcF9kb21haW5fcGFnZShwZyk7Ci0g
ICAgcmV0dXJuICZwW2EgJiAweGZmZl07Ci19Ci0KLXN0YXRpYyB1aW50MzJf
dCAqdnJhbV9nZXRsKHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB1bnNpZ25l
ZCBpbnQgYSkKLXsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IHMtPnZy
YW1fcGFnZVsoYSA+PiAxMCkgJiAweDNmXTsKLSAgICB1aW50MzJfdCAqcCA9
IF9fbWFwX2RvbWFpbl9wYWdlKHBnKTsKLSAgICByZXR1cm4gJnBbYSAmIDB4
M2ZmXTsKLX0KLQotc3RhdGljIHZvaWQgdnJhbV9wdXQoc3RydWN0IGh2bV9o
d19zdGR2Z2EgKnMsIHZvaWQgKnApCi17Ci0gICAgdW5tYXBfZG9tYWluX3Bh
Z2UocCk7Ci19Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3Qg
YWRkciwgdWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2
Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBA
IC0xNjksMjQ0ICsxMzAsMTMgQEAgc3RhdGljIGludCBjZl9jaGVjayBzdGR2
Z2FfaW50ZXJjZXB0X3BpbygKICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRM
RUFCTEU7IC8qIHByb3BhZ2F0ZSB0byBleHRlcm5hbCBpb2VtdSAqLwogfQog
Ci1zdGF0aWMgdW5zaWduZWQgaW50IHN0ZHZnYV9tZW1fb2Zmc2V0KAotICAg
IHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB1bnNpZ25lZCBpbnQgbW1pb19h
ZGRyKQotewotICAgIHVuc2lnbmVkIGludCBtZW1vcnlfbWFwX21vZGUgPSAo
cy0+Z3JbNl0gPj4gMikgJiAzOwotICAgIHVuc2lnbmVkIGludCBvZmZzZXQg
PSBtbWlvX2FkZHIgJiAweDFmZmZmOwotCi0gICAgc3dpdGNoICggbWVtb3J5
X21hcF9tb2RlICkKLSAgICB7Ci0gICAgY2FzZSAwOgotICAgICAgICBicmVh
azsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGlmICggb2Zmc2V0ID49IDB4MTAw
MDAgKQotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICBvZmZzZXQg
Kz0gMDsgLyogYXNzdW1lIGJhbmtfb2Zmc2V0ID09IDA7ICovCi0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgMjoKLSAgICAgICAgb2Zmc2V0IC09IDB4MTAw
MDA7Ci0gICAgICAgIGlmICggb2Zmc2V0ID49IDB4ODAwMCApCi0gICAgICAg
ICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6
Ci0gICAgY2FzZSAzOgotICAgICAgICBvZmZzZXQgLT0gMHgxODAwMDsKLSAg
ICAgICAgaWYgKCBvZmZzZXQgPj0gMHg4MDAwICkKLSAgICAgICAgICAgIGdv
dG8gZmFpbDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJu
IG9mZnNldDsKLQotIGZhaWw6Ci0gICAgcmV0dXJuIH4wdTsKLX0KLQotI2Rl
ZmluZSBHRVRfUExBTkUoZGF0YSwgcCkgKCgoZGF0YSkgPj4gKChwKSAqIDgp
KSAmIDB4ZmYpCi0KLXN0YXRpYyB1aW50OF90IHN0ZHZnYV9tZW1fcmVhZGIo
dWludDY0X3QgYWRkcikKLXsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAq
cyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsKLSAgICBp
bnQgcGxhbmU7Ci0gICAgdWludDMyX3QgcmV0LCAqdnJhbV9sOwotICAgIHVp
bnQ4X3QgKnZyYW1fYjsKLQotICAgIGFkZHIgPSBzdGR2Z2FfbWVtX29mZnNl
dChzLCBhZGRyKTsKLSAgICBpZiAoIGFkZHIgPT0gfjB1ICkKLSAgICAgICAg
cmV0dXJuIDB4ZmY7Ci0KLSAgICBpZiAoIHMtPnNyWzRdICYgMHgwOCApCi0g
ICAgewotICAgICAgICAvKiBjaGFpbiA0IG1vZGUgOiBzaW1wbGVzdCBhY2Nl
c3MgKi8KLSAgICAgICAgdnJhbV9iID0gdnJhbV9nZXRiKHMsIGFkZHIpOwot
ICAgICAgICByZXQgPSAqdnJhbV9iOwotICAgICAgICB2cmFtX3B1dChzLCB2
cmFtX2IpOwotICAgIH0KLSAgICBlbHNlIGlmICggcy0+Z3JbNV0gJiAweDEw
ICkKLSAgICB7Ci0gICAgICAgIC8qIG9kZC9ldmVuIG1vZGUgKGFrYSB0ZXh0
IG1vZGUgbWFwcGluZykgKi8KLSAgICAgICAgcGxhbmUgPSAocy0+Z3JbNF0g
JiAyKSB8IChhZGRyICYgMSk7Ci0gICAgICAgIHZyYW1fYiA9IHZyYW1fZ2V0
YihzLCAoKGFkZHIgJiB+MSkgPDwgMSkgfCBwbGFuZSk7Ci0gICAgICAgIHJl
dCA9ICp2cmFtX2I7Ci0gICAgICAgIHZyYW1fcHV0KHMsIHZyYW1fYik7Ci0g
ICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIC8qIHN0YW5kYXJkIFZH
QSBsYXRjaGVkIGFjY2VzcyAqLwotICAgICAgICB2cmFtX2wgPSB2cmFtX2dl
dGwocywgYWRkcik7Ci0gICAgICAgIHMtPmxhdGNoID0gKnZyYW1fbDsKLSAg
ICAgICAgdnJhbV9wdXQocywgdnJhbV9sKTsKLQotICAgICAgICBpZiAoICEo
cy0+Z3JbNV0gJiAweDA4KSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8q
IHJlYWQgbW9kZSAwICovCi0gICAgICAgICAgICBwbGFuZSA9IHMtPmdyWzRd
OwotICAgICAgICAgICAgcmV0ID0gR0VUX1BMQU5FKHMtPmxhdGNoLCBwbGFu
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAg
ICAgICAgICAvKiByZWFkIG1vZGUgMSAqLwotICAgICAgICAgICAgcmV0ID0g
KHMtPmxhdGNoIF4gbWFzazE2W3MtPmdyWzJdXSkgJiBtYXNrMTZbcy0+Z3Jb
N11dOwotICAgICAgICAgICAgcmV0IHw9IHJldCA+PiAxNjsKLSAgICAgICAg
ICAgIHJldCB8PSByZXQgPj4gODsKLSAgICAgICAgICAgIHJldCA9ICh+cmV0
KSAmIDB4ZmY7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0
OwotfQotCiBzdGF0aWMgaW50IGNmX2NoZWNrIHN0ZHZnYV9tZW1fcmVhZCgK
ICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsIHVp
bnQ2NF90IGFkZHIsIHVpbnQzMl90IHNpemUsCiAgICAgdWludDY0X3QgKnBf
ZGF0YSkKIHsKLSAgICB1aW50NjRfdCBkYXRhID0gfjB1bDsKLQotICAgIHN3
aXRjaCAoIHNpemUgKQotICAgIHsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGRh
dGEgPSBzdGR2Z2FfbWVtX3JlYWRiKGFkZHIpOwotICAgICAgICBicmVhazsK
LQotICAgIGNhc2UgMjoKLSAgICAgICAgZGF0YSA9IHN0ZHZnYV9tZW1fcmVh
ZGIoYWRkcik7Ci0gICAgICAgIGRhdGEgfD0gc3RkdmdhX21lbV9yZWFkYihh
ZGRyICsgMSkgPDwgODsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIDQ6
Ci0gICAgICAgIGRhdGEgPSBzdGR2Z2FfbWVtX3JlYWRiKGFkZHIpOwotICAg
ICAgICBkYXRhIHw9IHN0ZHZnYV9tZW1fcmVhZGIoYWRkciArIDEpIDw8IDg7
Ci0gICAgICAgIGRhdGEgfD0gc3RkdmdhX21lbV9yZWFkYihhZGRyICsgMikg
PDwgMTY7Ci0gICAgICAgIGRhdGEgfD0gKHVpbnQzMl90KXN0ZHZnYV9tZW1f
cmVhZGIoYWRkciArIDMpIDw8IDI0OwotICAgICAgICBicmVhazsKLQotICAg
IGNhc2UgODoKLSAgICAgICAgZGF0YSA9ICAodWludDY0X3QpKHN0ZHZnYV9t
ZW1fcmVhZGIoYWRkcikpOwotICAgICAgICBkYXRhIHw9ICh1aW50NjRfdCko
c3RkdmdhX21lbV9yZWFkYihhZGRyICsgMSkpIDw8IDg7Ci0gICAgICAgIGRh
dGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyAyKSkg
PDwgMTY7Ci0gICAgICAgIGRhdGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVt
X3JlYWRiKGFkZHIgKyAzKSkgPDwgMjQ7Ci0gICAgICAgIGRhdGEgfD0gKHVp
bnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyA0KSkgPDwgMzI7Ci0g
ICAgICAgIGRhdGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFk
ZHIgKyA1KSkgPDwgNDA7Ci0gICAgICAgIGRhdGEgfD0gKHVpbnQ2NF90KShz
dGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyA2KSkgPDwgNDg7Ci0gICAgICAgIGRh
dGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyA3KSkg
PDwgNTY7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAg
ICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJpbnZhbGlkIGlvIHNpemU6
ICV1XG4iLCBzaXplKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAg
KnBfZGF0YSA9IGRhdGE7Ci0gICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKLX0K
LQotc3RhdGljIHZvaWQgc3RkdmdhX21lbV93cml0ZWIodWludDY0X3QgYWRk
ciwgdWludDMyX3QgdmFsKQotewotICAgIHN0cnVjdCBodm1faHdfc3Rkdmdh
ICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0uc3RkdmdhOwotICAg
IGludCBwbGFuZSwgd3JpdGVfbW9kZSwgYiwgZnVuY19zZWxlY3QsIG1hc2s7
Ci0gICAgdWludDMyX3Qgd3JpdGVfbWFzaywgYml0X21hc2ssIHNldF9tYXNr
LCAqdnJhbV9sOwotICAgIHVpbnQ4X3QgKnZyYW1fYjsKLQotICAgIGFkZHIg
PSBzdGR2Z2FfbWVtX29mZnNldChzLCBhZGRyKTsKLSAgICBpZiAoIGFkZHIg
PT0gfjB1ICkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCBzLT5zcls0
XSAmIDB4MDggKQotICAgIHsKLSAgICAgICAgLyogY2hhaW4gNCBtb2RlIDog
c2ltcGxlc3QgYWNjZXNzICovCi0gICAgICAgIHBsYW5lID0gYWRkciAmIDM7
Ci0gICAgICAgIG1hc2sgPSAoMSA8PCBwbGFuZSk7Ci0gICAgICAgIGlmICgg
cy0+c3JbMl0gJiBtYXNrICkKLSAgICAgICAgewotICAgICAgICAgICAgdnJh
bV9iID0gdnJhbV9nZXRiKHMsIGFkZHIpOwotICAgICAgICAgICAgKnZyYW1f
YiA9IHZhbDsKLSAgICAgICAgICAgIHZyYW1fcHV0KHMsIHZyYW1fYik7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgZWxzZSBpZiAoIHMtPmdyWzVdICYgMHgx
MCApCi0gICAgewotICAgICAgICAvKiBvZGQvZXZlbiBtb2RlIChha2EgdGV4
dCBtb2RlIG1hcHBpbmcpICovCi0gICAgICAgIHBsYW5lID0gKHMtPmdyWzRd
ICYgMikgfCAoYWRkciAmIDEpOwotICAgICAgICBtYXNrID0gKDEgPDwgcGxh
bmUpOwotICAgICAgICBpZiAoIHMtPnNyWzJdICYgbWFzayApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGFkZHIgPSAoKGFkZHIgJiB+MSkgPDwgMSkgfCBw
bGFuZTsKLSAgICAgICAgICAgIHZyYW1fYiA9IHZyYW1fZ2V0YihzLCBhZGRy
KTsKLSAgICAgICAgICAgICp2cmFtX2IgPSB2YWw7Ci0gICAgICAgICAgICB2
cmFtX3B1dChzLCB2cmFtX2IpOwotICAgICAgICB9Ci0gICAgfQotICAgIGVs
c2UKLSAgICB7Ci0gICAgICAgIHdyaXRlX21vZGUgPSBzLT5ncls1XSAmIDM7
Ci0gICAgICAgIHN3aXRjaCAoIHdyaXRlX21vZGUgKQotICAgICAgICB7Ci0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAg
IC8qIHJvdGF0ZSAqLwotICAgICAgICAgICAgYiA9IHMtPmdyWzNdICYgNzsK
LSAgICAgICAgICAgIHZhbCA9ICgodmFsID4+IGIpIHwgKHZhbCA8PCAoOCAt
IGIpKSkgJiAweGZmOwotICAgICAgICAgICAgdmFsIHw9IHZhbCA8PCA4Owot
ICAgICAgICAgICAgdmFsIHw9IHZhbCA8PCAxNjsKLQotICAgICAgICAgICAg
LyogYXBwbHkgc2V0L3Jlc2V0IG1hc2sgKi8KLSAgICAgICAgICAgIHNldF9t
YXNrID0gbWFzazE2W3MtPmdyWzFdXTsKLSAgICAgICAgICAgIHZhbCA9ICh2
YWwgJiB+c2V0X21hc2spIHwgKG1hc2sxNltzLT5nclswXV0gJiBzZXRfbWFz
ayk7Ci0gICAgICAgICAgICBiaXRfbWFzayA9IHMtPmdyWzhdOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHZh
bCA9IHMtPmxhdGNoOwotICAgICAgICAgICAgZ290byBkb193cml0ZTsKLSAg
ICAgICAgY2FzZSAyOgotICAgICAgICAgICAgdmFsID0gbWFzazE2W3ZhbCAm
IDB4MGZdOwotICAgICAgICAgICAgYml0X21hc2sgPSBzLT5ncls4XTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAg
ICAvKiByb3RhdGUgKi8KLSAgICAgICAgICAgIGIgPSBzLT5nclszXSAmIDc7
Ci0gICAgICAgICAgICB2YWwgPSAodmFsID4+IGIpIHwgKHZhbCA8PCAoOCAt
IGIpKTsKLQotICAgICAgICAgICAgYml0X21hc2sgPSBzLT5ncls4XSAmIHZh
bDsKLSAgICAgICAgICAgIHZhbCA9IG1hc2sxNltzLT5nclswXV07Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIGFwcGx5
IGxvZ2ljYWwgb3BlcmF0aW9uICovCi0gICAgICAgIGZ1bmNfc2VsZWN0ID0g
cy0+Z3JbM10gPj4gMzsKLSAgICAgICAgc3dpdGNoICggZnVuY19zZWxlY3Qg
KQotICAgICAgICB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIC8qIG5vdGhpbmcgdG8gZG8gKi8KLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAvKiBh
bmQgKi8KLSAgICAgICAgICAgIHZhbCAmPSBzLT5sYXRjaDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAvKiBv
ciAqLwotICAgICAgICAgICAgdmFsIHw9IHMtPmxhdGNoOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgIC8qIHhv
ciAqLwotICAgICAgICAgICAgdmFsIF49IHMtPmxhdGNoOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBhcHBseSBiaXQg
bWFzayAqLwotICAgICAgICBiaXRfbWFzayB8PSBiaXRfbWFzayA8PCA4Owot
ICAgICAgICBiaXRfbWFzayB8PSBiaXRfbWFzayA8PCAxNjsKLSAgICAgICAg
dmFsID0gKHZhbCAmIGJpdF9tYXNrKSB8IChzLT5sYXRjaCAmIH5iaXRfbWFz
ayk7Ci0KLSAgICBkb193cml0ZToKLSAgICAgICAgLyogbWFzayBkYXRhIGFj
Y29yZGluZyB0byBzclsyXSAqLwotICAgICAgICBtYXNrID0gcy0+c3JbMl07
Ci0gICAgICAgIHdyaXRlX21hc2sgPSBtYXNrMTZbbWFza107Ci0gICAgICAg
IHZyYW1fbCA9IHZyYW1fZ2V0bChzLCBhZGRyKTsKLSAgICAgICAgKnZyYW1f
bCA9ICgqdnJhbV9sICYgfndyaXRlX21hc2spIHwgKHZhbCAmIHdyaXRlX21h
c2spOwotICAgICAgICB2cmFtX3B1dChzLCB2cmFtX2wpOwotICAgIH0KKyAg
ICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAqcF9kYXRhID0gfjA7Cisg
ICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogfQogCiBzdGF0aWMg
aW50IGNmX2NoZWNrIHN0ZHZnYV9tZW1fd3JpdGUoCkBAIC00MjEsNDcgKzE1
MSw4IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgc3RkdmdhX21lbV93cml0ZSgK
ICAgICAgICAgLmRpciA9IElPUkVRX1dSSVRFLAogICAgICAgICAuZGF0YSA9
IGRhdGEsCiAgICAgfTsKLSAgICBzdHJ1Y3QgaW9yZXFfc2VydmVyICpzcnY7
Ci0KLSAgICBnb3RvIGRvbmU7Ci0KLSAgICAvKiBJbnRlcmNlcHQgbW1pbyB3
cml0ZSAqLwotICAgIHN3aXRjaCAoIHNpemUgKQotICAgIHsKLSAgICBjYXNl
IDE6Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFkZHIsIChkYXRhID4+
ICAwKSAmIDB4ZmYpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgMjoK
LSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkciswLCAoZGF0YSA+PiAg
MCkgJiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkcisx
LCAoZGF0YSA+PiAgOCkgJiAweGZmKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAg
ICBjYXNlIDQ6Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFkZHIrMCwg
KGRhdGEgPj4gIDApICYgMHhmZik7Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3Jp
dGViKGFkZHIrMSwgKGRhdGEgPj4gIDgpICYgMHhmZik7Ci0gICAgICAgIHN0
ZHZnYV9tZW1fd3JpdGViKGFkZHIrMiwgKGRhdGEgPj4gMTYpICYgMHhmZik7
Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFkZHIrMywgKGRhdGEgPj4g
MjQpICYgMHhmZik7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSA4Ogot
ICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzAsIChkYXRhID4+ICAw
KSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzEs
IChkYXRhID4+ICA4KSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dy
aXRlYihhZGRyKzIsIChkYXRhID4+IDE2KSAmIDB4ZmYpOwotICAgICAgICBz
dGR2Z2FfbWVtX3dyaXRlYihhZGRyKzMsIChkYXRhID4+IDI0KSAmIDB4ZmYp
OwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzQsIChkYXRhID4+
IDMyKSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRy
KzUsIChkYXRhID4+IDQwKSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVt
X3dyaXRlYihhZGRyKzYsIChkYXRhID4+IDQ4KSAmIDB4ZmYpOwotICAgICAg
ICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzcsIChkYXRhID4+IDU2KSAmIDB4
ZmYpOwotICAgICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiaW52YWxpZCBpbyBzaXplOiAl
dVxuIiwgc2l6ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBzdHJ1
Y3QgaW9yZXFfc2VydmVyICpzcnYgPSBpb3JlcV9zZXJ2ZXJfc2VsZWN0KGN1
cnJlbnQtPmRvbWFpbiwgJnApOwogCi0gZG9uZToKLSAgICBzcnYgPSBpb3Jl
cV9zZXJ2ZXJfc2VsZWN0KGN1cnJlbnQtPmRvbWFpbiwgJnApOwogICAgIGlm
ICggIXNydiApCiAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJM
RTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2
bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCmlu
ZGV4IGQ5NjRmOGVmZGZlMi4uN2JkMWZhMTEzZTM5IDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKKysrIGIveGVuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBAIC0xMjYsNyArMTI2LDYg
QEAgc3RydWN0IGh2bV9od19zdGR2Z2EgewogICAgIHVpbnQ4X3Qgc3JbOF07
CiAgICAgdWludDhfdCBncl9pbmRleDsKICAgICB1aW50OF90IGdyWzldOwot
ICAgIHVpbnQzMl90IGxhdGNoOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnZy
YW1fcGFnZVs2NF07ICAvKiBzaGFkb3cgb2YgMHhhMDAwMC0weGFmZmZmICov
CiAgICAgc3BpbmxvY2tfdCBsb2NrOwogfTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-05.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJncltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIGdyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgYjE2YzA5NjZhMTdmMTljMGU1NWVkMGI5YmFhMjgxOTFkMjU5
MDE3OCkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCA5MTVkZmM4MjMw
NzkuLjliNzQ1NWM1OGIzNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC01MCwxOCArNTAsNiBAQCBzdGF0aWMgY29uc3QgdWludDhfdCBzcl9tYXNr
WzhdID0gewogICAgICh1aW50OF90KX4weDAwLAogfTsKIAotc3RhdGljIGNv
bnN0IHVpbnQ4X3QgZ3JfbWFza1s5XSA9IHsKLSAgICAodWludDhfdCl+MHhm
MCwgLyogMHgwMCAqLwotICAgICh1aW50OF90KX4weGYwLCAvKiAweDAxICov
Ci0gICAgKHVpbnQ4X3QpfjB4ZjAsIC8qIDB4MDIgKi8KLSAgICAodWludDhf
dCl+MHhlMCwgLyogMHgwMyAqLwotICAgICh1aW50OF90KX4weGZjLCAvKiAw
eDA0ICovCi0gICAgKHVpbnQ4X3QpfjB4ODQsIC8qIDB4MDUgKi8KLSAgICAo
dWludDhfdCl+MHhmMCwgLyogMHgwNiAqLwotICAgICh1aW50OF90KX4weGYw
LCAvKiAweDA3ICovCi0gICAgKHVpbnQ4X3QpfjB4MDAsIC8qIDB4MDggKi8K
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC04Mywx
MiArNzEsNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5ncl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2NmOiAgICAgICAgICAg
ICAgICAgLyogZ3JhcGhpY3MgZGF0YSByZWdpc3RlciAqLwotICAgICAgICBy
YyA9IChzLT5ncl9pbmRleCA8IHNpemVvZihzLT5ncikpOwotICAgICAgICBp
ZiAoIHJjICkKLSAgICAgICAgICAgIHMtPmdyW3MtPmdyX2luZGV4XSA9IHZh
bCAmIGdyX21hc2tbcy0+Z3JfaW5kZXhdOwotICAgICAgICBicmVhazsKLQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJjID0gMDsKICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lv
LmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKaW5kZXgg
N2JkMWZhMTEzZTM5Li4zNzVjMTJhNDY2ZjIgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaAorKysgYi94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKQEAgLTEyNSw3ICsxMjUsNiBAQCBz
dHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7CiAgICAgdWludDhfdCBzcl9pbmRleDsK
ICAgICB1aW50OF90IHNyWzhdOwogICAgIHVpbnQ4X3QgZ3JfaW5kZXg7Ci0g
ICAgdWludDhfdCBncls5XTsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICp2cmFt
X3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAtMHhhZmZmZiAqLwog
ICAgIHNwaW5sb2NrX3QgbG9jazsKIH07Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-06.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzcltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIHNyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgN2FiYTQ0YmRkNzhhZWRiOTc3MDM4MTE5NDhjM2I2OWNjZmY4
NTAzMikKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCA5Yjc0NTVjNThi
MzYuLjgxOGRiYTY3ZDdiNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC0zOCwxOCArMzgsNiBAQAogI2RlZmluZSBWR0FfTUVNX0JBU0UgMHhhMDAw
MAogI2RlZmluZSBWR0FfTUVNX1NJWkUgMHgyMDAwMAogCi0vKiBmb3JjZSBz
b21lIGJpdHMgdG8gemVybyAqLwotc3RhdGljIGNvbnN0IHVpbnQ4X3Qgc3Jf
bWFza1s4XSA9IHsKLSAgICAodWludDhfdCl+MHhmYywKLSAgICAodWludDhf
dCl+MHhjMiwKLSAgICAodWludDhfdCl+MHhmMCwKLSAgICAodWludDhfdCl+
MHhjMCwKLSAgICAodWludDhfdCl+MHhmMSwKLSAgICAodWludDhfdCl+MHhm
ZiwKLSAgICAodWludDhfdCl+MHhmZiwKLSAgICAodWludDhfdCl+MHgwMCwK
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC02MSwx
MiArNDksNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5zcl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2M1OiAgICAgICAgICAg
ICAgICAgLyogc2VxdWVuY2VyIGRhdGEgcmVnaXN0ZXIgKi8KLSAgICAgICAg
cmMgPSAocy0+c3JfaW5kZXggPCBzaXplb2Yocy0+c3IpKTsKLSAgICAgICAg
aWYgKCByYyApCi0gICAgICAgICAgICBzLT5zcltzLT5zcl9pbmRleF0gPSB2
YWwgJiBzcl9tYXNrW3MtPnNyX2luZGV4XSA7Ci0gICAgICAgIGJyZWFrOwot
CiAgICAgY2FzZSAweDNjZTogICAgICAgICAgICAgICAgIC8qIGdyYXBoaWNz
IGFkZHJlc3MgcmVnaXN0ZXIgKi8KICAgICAgICAgcy0+Z3JfaW5kZXggPSB2
YWw7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2h2bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2h2bS9pby5oCmluZGV4IDM3NWMxMmE0NjZmMi4uZDE3Y2YyMGZkNGUx
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lv
LmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBA
IC0xMjMsNyArMTIzLDYgQEAgc3RydWN0IHZwY2lfYXJjaF9tc2l4X2VudHJ5
IHsKIAogc3RydWN0IGh2bV9od19zdGR2Z2EgewogICAgIHVpbnQ4X3Qgc3Jf
aW5kZXg7Ci0gICAgdWludDhfdCBzcls4XTsKICAgICB1aW50OF90IGdyX2lu
ZGV4OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnZyYW1fcGFnZVs2NF07ICAv
KiBzaGFkb3cgb2YgMHhhMDAwMC0weGFmZmZmICovCiAgICAgc3BpbmxvY2tf
dCBsb2NrOwo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-07.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ7ZyxzfXJfaW5kZXgiIHN0cnVj
dCBtZW1iZXJzCgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBw
cm9kdWNlciBhbmQgdGhlIGZpZWxkcyB0aGVtc2VsdmVzIGNhbgphbHNvIGdv
IGF3YXkuIHN0ZHZnYV9vdXRiKCkgaXMgdGhlbiB1c2VsZXNzLCByZW5kZXJp
bmcgc3RkdmdhX291dCgpCnVzZWxlc3MgYXMgd2VsbC4gSGVuY2UgdGhlIGVu
dGlyZSBJL08gcG9ydCBpbnRlcmNlcHQgY2FuIGdvIGF3YXkuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTQ2MyAvIENWRS0yMDI0LTQ1ODE4CgpTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
LWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t
PgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4NmMwMzM3MmUxMDdmNWMx
ODI2NmE2MjI4MTY2Mzg2MWIxMTQ0OTI5KQoKZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCmluZGV4IDgxOGRiYTY3ZDdiNy4uMDI5MzI4YjRiMWViIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3RkdmdhLmMKQEAgLTM4LDYyICszOCw2IEBACiAjZGVmaW5l
IFZHQV9NRU1fQkFTRSAweGEwMDAwCiAjZGVmaW5lIFZHQV9NRU1fU0laRSAw
eDIwMDAwCiAKLXN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRk
ciwgdWludDhfdCB2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2Eg
KnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0gICAg
aW50IHJjID0gMTsKLQotICAgIHN3aXRjaCAoIGFkZHIgKQotICAgIHsKLSAg
ICBjYXNlIDB4M2M0OiAgICAgICAgICAgICAgICAgLyogc2VxdWVuY2VyIGFk
ZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAgICAgcy0+c3JfaW5kZXggPSB2YWw7
Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSAweDNjZTogICAgICAgICAg
ICAgICAgIC8qIGdyYXBoaWNzIGFkZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAg
ICAgcy0+Z3JfaW5kZXggPSB2YWw7Ci0gICAgICAgIGJyZWFrOwotCi0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcmMgPSAwOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyB2b2lkIHN0ZHZn
YV9vdXQodWludDMyX3QgcG9ydCwgdWludDMyX3QgYnl0ZXMsIHVpbnQzMl90
IHZhbCkKLXsKLSAgICBzd2l0Y2ggKCBieXRlcyApCi0gICAgewotICAgIGNh
c2UgMToKLSAgICAgICAgc3RkdmdhX291dGIocG9ydCwgdmFsKTsKLSAgICAg
ICAgYnJlYWs7Ci0KLSAgICBjYXNlIDI6Ci0gICAgICAgIHN0ZHZnYV9vdXRi
KHBvcnQgKyAwLCB2YWwgPj4gMCk7Ci0gICAgICAgIHN0ZHZnYV9vdXRiKHBv
cnQgKyAxLCB2YWwgPj4gOCk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgZGVm
YXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMgaW50
IGNmX2NoZWNrIHN0ZHZnYV9pbnRlcmNlcHRfcGlvKAotICAgIGludCBkaXIs
IHVuc2lnbmVkIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgYnl0ZXMsIHVpbnQz
Ml90ICp2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAm
Y3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0KLSAgICBpZiAo
IGRpciA9PSBJT1JFUV9XUklURSApCi0gICAgewotICAgICAgICBzcGluX2xv
Y2soJnMtPmxvY2spOwotICAgICAgICBzdGR2Z2Ffb3V0KHBvcnQsIGJ5dGVz
LCAqdmFsKTsKLSAgICAgICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOwotICAg
IH0KLQotICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsgLyogcHJv
cGFnYXRlIHRvIGV4dGVybmFsIGlvZW11ICovCi19Ci0KIHN0YXRpYyBpbnQg
Y2ZfY2hlY2sgc3RkdmdhX21lbV9yZWFkKAogICAgIGNvbnN0IHN0cnVjdCBo
dm1faW9faGFuZGxlciAqaGFuZGxlciwgdWludDY0X3QgYWRkciwgdWludDMy
X3Qgc2l6ZSwKICAgICB1aW50NjRfdCAqcF9kYXRhKQpAQCAtMTk1LDExICsx
MzksNiBAQCB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAg
ICAgewogICAgICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXI7
CiAKLSAgICAgICAgLyogU2VxdWVuY2VyIHJlZ2lzdGVycy4gKi8KLSAgICAg
ICAgcmVnaXN0ZXJfcG9ydGlvX2hhbmRsZXIoZCwgMHgzYzQsIDIsIHN0ZHZn
YV9pbnRlcmNlcHRfcGlvKTsKLSAgICAgICAgLyogR3JhcGhpY3MgcmVnaXN0
ZXJzLiAqLwotICAgICAgICByZWdpc3Rlcl9wb3J0aW9faGFuZGxlcihkLCAw
eDNjZSwgMiwgc3RkdmdhX2ludGVyY2VwdF9waW8pOwotCiAgICAgICAgIC8q
IFZHQSBtZW1vcnkgKi8KICAgICAgICAgaGFuZGxlciA9IGh2bV9uZXh0X2lv
X2hhbmRsZXIoZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9odm0vaW8uaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9o
dm0vaW8uaAppbmRleCBkMTdjZjIwZmQ0ZTEuLjAzYTQzN2ZiOGJmNCAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaApAQCAtMTIy
LDggKzEyMiw2IEBAIHN0cnVjdCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiB9
OwogCiBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7Ci0gICAgdWludDhfdCBzcl9p
bmRleDsKLSAgICB1aW50OF90IGdyX2luZGV4OwogICAgIHN0cnVjdCBwYWdl
X2luZm8gKnZyYW1fcGFnZVs2NF07ICAvKiBzaGFkb3cgb2YgMHhhMDAwMC0w
eGFmZmZmICovCiAgICAgc3BpbmxvY2tfdCBsb2NrOwogfTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-08.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ2cmFtX3BhZ2VbXSIgc3RydWN0
IG1lbWJlcgoKTm8gdXNlcyBhcmUgbGVmdCwgaGVuY2UgaXRzIHNldHVwLCB0
ZWFyZG93biwgYW5kIHRoZSBmaWVsZCBpdHNlbGYgY2FuCmFsc28gZ28gYXdh
eS4gc3RkdmdhX2RlaW5pdCgpIGlzIHRoZW4gZW1wdHkgYW5kIGNhbiBiZSBk
cm9wcGVkIGFzIHdlbGwuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTQ2MyAvIENW
RS0yMDI0LTQ1ODE4CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl
dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCAzYmViNGJhZjJhMGEyZWVmNDBkMzllYjdlNmVlY2JmZDM2ZGE1
ZDE0KQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94
ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDZhZTE1ZTA0ZjM5MC4uNDQ1
NGIxNThiNjk4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTY3Nyw3ICs2Nzcs
NiBAQCBpbnQgaHZtX2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g
KmQsCiAgICAgcmV0dXJuIDA7CiAKICBmYWlsMjoKLSAgICBzdGR2Z2FfZGVp
bml0KGQpOwogICAgIHZpb2FwaWNfZGVpbml0KGQpOwogIGZhaWwxOgogICAg
IGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKQEAgLTc0MCw3ICs3Mzks
NiBAQCB2b2lkIGh2bV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpk
KQogICAgIGlmICggaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95ICkKICAgICAg
ICAgYWx0ZXJuYXRpdmVfdmNhbGwoaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95
LCBkKTsKIAotICAgIHN0ZHZnYV9kZWluaXQoZCk7CiAgICAgdmlvYXBpY19k
ZWluaXQoZCk7CiAKICAgICBYRlJFRShkLT5hcmNoLmh2bS5wbF90aW1lKTsK
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4IDAyOTMyOGI0YjFlYi4uMWQx
NzFjYjQyNzEyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKQEAgLTExNyw4
ICsxMTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19vcHMgc3Rk
dmdhX21lbV9vcHMgPSB7CiB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21h
aW4gKmQpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+
YXJjaC5odm0uc3RkdmdhOwotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwot
ICAgIHVuc2lnbmVkIGludCBpOworICAgIHN0cnVjdCBodm1faW9faGFuZGxl
ciAqaGFuZGxlcjsKIAogICAgIGlmICggIWhhc192dmdhKGQpICkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTI2LDQ3ICsxMjUsMTUgQEAgdm9pZCBzdGR2Z2Ff
aW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIG1lbXNldChzLCAwLCBzaXpl
b2YoKnMpKTsKICAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7CiAgICAg
Ci0gICAgZm9yICggaSA9IDA7IGkgIT0gQVJSQVlfU0laRShzLT52cmFtX3Bh
Z2UpOyBpKysgKQorICAgIC8qIFZHQSBtZW1vcnkgKi8KKyAgICBoYW5kbGVy
ID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKKyAgICBpZiAoIGhhbmRsZXIg
KQogICAgIHsKLSAgICAgICAgcGcgPSBhbGxvY19kb21oZWFwX3BhZ2UoZCwg
TUVNRl9ub19vd25lcik7Ci0gICAgICAgIGlmICggcGcgPT0gTlVMTCApCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgcy0+dnJhbV9wYWdlW2ldID0g
cGc7Ci0gICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBhZ2VfdG9fbWZuKHBn
KSk7Ci0gICAgfQotCi0gICAgaWYgKCBpID09IEFSUkFZX1NJWkUocy0+dnJh
bV9wYWdlKSApCi0gICAgewotICAgICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRs
ZXIgKmhhbmRsZXI7Ci0KLSAgICAgICAgLyogVkdBIG1lbW9yeSAqLwotICAg
ICAgICBoYW5kbGVyID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKLQotICAg
ICAgICBpZiAoIGhhbmRsZXIgPT0gTlVMTCApCi0gICAgICAgICAgICByZXR1
cm47Ci0KICAgICAgICAgaGFuZGxlci0+dHlwZSA9IElPUkVRX1RZUEVfQ09Q
WTsKICAgICAgICAgaGFuZGxlci0+b3BzID0gJnN0ZHZnYV9tZW1fb3BzOwog
ICAgIH0KIH0KIAotdm9pZCBzdGR2Z2FfZGVpbml0KHN0cnVjdCBkb21haW4g
KmQpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+YXJj
aC5odm0uc3RkdmdhOwotICAgIGludCBpOwotCi0gICAgaWYgKCAhaGFzX3Z2
Z2EoZCkgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKCBpID0gMDsg
aSAhPSBBUlJBWV9TSVpFKHMtPnZyYW1fcGFnZSk7IGkrKyApCi0gICAgewot
ICAgICAgICBpZiAoIHMtPnZyYW1fcGFnZVtpXSA9PSBOVUxMICkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShz
LT52cmFtX3BhZ2VbaV0pOwotICAgICAgICBzLT52cmFtX3BhZ2VbaV0gPSBO
VUxMOwotICAgIH0KLX0KLQogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAq
IG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9odm0vaW8uaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8u
aAppbmRleCAwM2E0MzdmYjhiZjQuLjJmNWJmZWNjYWUzOSAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCisrKyBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaApAQCAtMTIyLDEyICsx
MjIsMTAgQEAgc3RydWN0IHZwY2lfYXJjaF9tc2l4X2VudHJ5IHsKIH07CiAK
IHN0cnVjdCBodm1faHdfc3RkdmdhIHsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZv
ICp2cmFtX3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAtMHhhZmZm
ZiAqLwogICAgIHNwaW5sb2NrX3QgbG9jazsKIH07CiAKIHZvaWQgc3Rkdmdh
X2luaXQoc3RydWN0IGRvbWFpbiAqZCk7Ci12b2lkIHN0ZHZnYV9kZWluaXQo
c3RydWN0IGRvbWFpbiAqZCk7CiAKIGV4dGVybiB2b2lkIGh2bV9kcGNpX21z
aV9lb2koc3RydWN0IGRvbWFpbiAqZCwgaW50IHZlY3Rvcik7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-09.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJsb2NrIiBzdHJ1Y3QgbWVtYmVy
CgpObyBzdGF0ZSBpcyBsZWZ0IHRvIHByb3RlY3QuIEl0IGJlaW5nIHRoZSBs
YXN0IGZpZWxkLCBkcm9wIHRoZSBzdHJ1Y3QKaXRzZWxmIGFzIHdlbGwuIFNp
bWlsYXJseSBmb3IgdGhlbiBlbmRpbmcgdXAgZW1wdHksIGRyb3AgdGhlIC5j
b21wbGV0ZQpoYW5kbGVyLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRy
ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5
IHBpY2tlZCBmcm9tIGNvbW1pdCBiMTgwYTUwMzI2YzhhMmMxNzFmMzdjMTk0
MGEwZmJiZGNhZDRiZTkwKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o
dm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4
IDFkMTcxY2I0MjcxMi4uZmQzOGZiNDgwMDJjIDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKQEAgLTcwLDYxICs3MCwzNSBAQCBzdGF0aWMgaW50IGNmX2No
ZWNrIHN0ZHZnYV9tZW1fd3JpdGUoCiBzdGF0aWMgYm9vbCBjZl9jaGVjayBz
dGR2Z2FfbWVtX2FjY2VwdCgKICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hh
bmRsZXIgKmhhbmRsZXIsIGNvbnN0IGlvcmVxX3QgKnApCiB7Ci0gICAgc3Ry
dWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNo
Lmh2bS5zdGR2Z2E7Ci0KLSAgICAvKgotICAgICAqIFRoZSByYW5nZSBjaGVj
ayBtdXN0IGJlIGRvbmUgd2l0aG91dCB0YWtpbmcgdGhlIGxvY2ssIHRvIGF2
b2lkCi0gICAgICogZGVhZGxvY2sgd2hlbiBodm1fbW1pb19pbnRlcm5hbCgp
IGlzIGNhbGxlZCBmcm9tCi0gICAgICogaHZtX2NvcHlfdG8vZnJvbV9ndWVz
dF9waHlzKCkgaW4gaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0KCkuCi0gICAg
ICovCiAgICAgaWYgKCAoaW9yZXFfbW1pb19maXJzdF9ieXRlKHApIDwgVkdB
X01FTV9CQVNFKSB8fAogICAgICAgICAgKGlvcmVxX21taW9fbGFzdF9ieXRl
KHApID49IChWR0FfTUVNX0JBU0UgKyBWR0FfTUVNX1NJWkUpKSApCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKLQog
ICAgIGlmICggcC0+ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFfaXNf
cHRyIHx8IHAtPmNvdW50ICE9IDEgKQogICAgIHsKICAgICAgICAgLyoKICAg
ICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMsIGFz
IHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KICAgICAgICAgICogYWNj
ZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KICAgICAg
ICAgICovCi0gICAgICAgIGdvdG8gcmVqZWN0OworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgLyogcy0+bG9jayBpbnRlbnRpb25hbGx5
IGhlbGQgKi8KLSAgICByZXR1cm4gMTsKLQotIHJlamVjdDoKLSAgICBzcGlu
X3VubG9jaygmcy0+bG9jayk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRp
YyB2b2lkIGNmX2NoZWNrIHN0ZHZnYV9tZW1fY29tcGxldGUoY29uc3Qgc3Ry
dWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyKQotewotICAgIHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0u
c3RkdmdhOwotCi0gICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOworICAgIHJl
dHVybiB0cnVlOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19v
cHMgc3RkdmdhX21lbV9vcHMgPSB7CiAgICAgLmFjY2VwdCA9IHN0ZHZnYV9t
ZW1fYWNjZXB0LAogICAgIC5yZWFkID0gc3RkdmdhX21lbV9yZWFkLAogICAg
IC53cml0ZSA9IHN0ZHZnYV9tZW1fd3JpdGUsCi0gICAgLmNvbXBsZXRlID0g
c3RkdmdhX21lbV9jb21wbGV0ZQogfTsKIAogdm9pZCBzdGR2Z2FfaW5pdChz
dHJ1Y3QgZG9tYWluICpkKQogewotICAgIHN0cnVjdCBodm1faHdfc3Rkdmdh
ICpzID0gJmQtPmFyY2guaHZtLnN0ZHZnYTsKICAgICBzdHJ1Y3QgaHZtX2lv
X2hhbmRsZXIgKmhhbmRsZXI7CiAKICAgICBpZiAoICFoYXNfdnZnYShkKSAp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1lbXNldChzLCAwLCBzaXplb2Yo
KnMpKTsKLSAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7Ci0gICAgCiAg
ICAgLyogVkdBIG1lbW9yeSAqLwogICAgIGhhbmRsZXIgPSBodm1fbmV4dF9p
b19oYW5kbGVyKGQpOwogICAgIGlmICggaGFuZGxlciApCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAppbmRleCBlOGU1
OWE3MmJjY2MuLjBiODYzMjllYTM3OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAorKysgYi94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oCkBAIC04Myw3ICs4Myw2IEBA
IHN0cnVjdCBodm1fZG9tYWluIHsKICAgICBzdHJ1Y3QgaHZtX2h3X3ZwaWMg
ICAgIHZwaWNbMl07IC8qIDA9bWFzdGVyOyAxPXNsYXZlICovCiAgICAgc3Ry
dWN0IGh2bV92aW9hcGljICAgICoqdmlvYXBpYzsKICAgICB1bnNpZ25lZCBp
bnQgICAgICAgICAgIG5yX3Zpb2FwaWNzOwotICAgIHN0cnVjdCBodm1faHdf
c3RkdmdhICAgc3RkdmdhOwogCiAgICAgLyoKICAgICAgKiBodm1faHdfcG10
aW1lciBpcyBhIHB1YmxpY2x5LXZpc2libGUgbmFtZS4gV2Ugd2lsbCBkZWZl
ciByZW5hbWluZwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2h2bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9p
by5oCmluZGV4IDJmNWJmZWNjYWUzOS4uNzg0YmQwYzgzZjJmIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKKysrIGIv
eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBAIC0xMjEsMTAg
KzEyMSw2IEBAIHN0cnVjdCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiAgICAg
aW50IHBpcnE7CiB9OwogCi1zdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7Ci0gICAg
c3BpbmxvY2tfdCBsb2NrOwotfTsKLQogdm9pZCBzdGR2Z2FfaW5pdChzdHJ1
Y3QgZG9tYWluICpkKTsKIAogZXh0ZXJuIHZvaWQgaHZtX2RwY2lfbXNpX2Vv
aShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgdmVjdG9yKTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.17-10.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.17-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L2h2bTogU2ltcGxpZnkgc3RkdmdhX21lbV9hY2Nl
cHQoKSBmdXJ0aGVyCgpzdGR2Z2FfbWVtX2FjY2VwdCgpIGlzIGNhbGxlZCBv
biBhbG1vc3QgYWxsIElPIGVtdWxhdGlvbnMsIGFuZCB0aGUKb3ZlcndoZWxt
aW5nIGxpa2VseSBhbnN3ZXIgaXMgdG8gcmVqZWN0IHRoZSBpb3JlcS4gIFNp
bXBseSByZWFycmFuZ2luZyB0aGUKZXhwcmVzc2lvbiB5aWVsZHMgYW4gaW1w
cm92ZW1lbnQ6CgogIGFkZC9yZW1vdmU6IDAvMCBncm93L3NocmluazogMC8x
IHVwL2Rvd246IDAvLTU3ICgtNTcpCiAgRnVuY3Rpb24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQog
IHN0ZHZnYV9tZW1fYWNjZXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEwOSAgICAgIDUyICAgICAtNTcKCndoaWNoIGlzIGJlc3QgZXhwbGFpbmVk
IGxvb2tpbmcgYXQgdGhlIGRpc2Fzc2VtYmx5OgoKICBCZWZvcmU6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFmdGVyOgogIGYzIDBmIDFlIGZhICAgICAgICAgICBlbmRicjY0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZjMgMGYgMWUgZmEgICAgICAgICAg
IGVuZGJyNjQKICAwZiBiNiA0ZSAxZSAgICAgICAgICAgbW92emJsIDB4MWUo
JXJzaSksJWVjeCAgICAgICAgICAgIHwgIDBmIGI2IDQ2IDFlICAgICAgICAg
ICBtb3Z6YmwgMHgxZSglcnNpKSwlZWF4CiAgNDggOGIgMTYgICAgICAgICAg
ICAgIG1vdiAgICAoJXJzaSksJXJkeCAgICAgICAgICAgICAgICB8ICAzMSBk
MiAgICAgICAgICAgICAgICAgeG9yICAgICVlZHgsJWVkeAogIGY2IGMxIDQw
ICAgICAgICAgICAgICB0ZXN0ICAgJDB4NDAsJWNsICAgICAgICAgICAgICAg
ICAgfCAgYTggMzAgICAgICAgICAgICAgICAgIHRlc3QgICAkMHgzMCwlYWwK
ICA3NSAzOCAgICAgICAgICAgICAgICAgam5lICAgIDxzdGR2Z2FfbWVtX2Fj
Y2VwdCsweDQ4PiAgIHwgIDc1IDIzICAgICAgICAgICAgICAgICBqbmUgICAg
PHN0ZHZnYV9tZW1fYWNjZXB0KzB4MzE+CiAgMzEgYzAgICAgICAgICAgICAg
ICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDgg
ODEgZmEgZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcmR4ICAgICAg
ICAgICAgICA8CiAgNzYgMjYgICAgICAgICAgICAgICAgIGpiZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgOGIgNDYgMTQgICAgICAgICAg
ICAgIG1vdiAgICAweDE0KCVyc2kpLCVlYXggICAgICAgICAgICA8CiAgOGIg
N2UgMTAgICAgICAgICAgICAgIG1vdiAgICAweDEwKCVyc2kpLCVlZGkgICAg
ICAgICAgICA8CiAgNDggMGYgYWYgYzcgICAgICAgICAgIGltdWwgICAlcmRp
LCVyYXggICAgICAgICAgICAgICAgICA8CiAgNDggOGQgNTQgMDIgZmYgICAg
ICAgIGxlYSAgICAtMHgxKCVyZHgsJXJheCwxKSwlcmR4ICAgICA8CiAgMzEg
YzAgICAgICAgICAgICAgICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAg
ICAgICAgICA8CiAgNDggODEgZmEgZmYgZmYgMGIgMDAgIGNtcCAgICAkMHhi
ZmZmZiwlcmR4ICAgICAgICAgICAgICA8CiAgNzcgMGMgICAgICAgICAgICAg
ICAgIGphICAgICA8c3RkdmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMg
ZTEgMzAgICAgICAgICAgICAgIGFuZCAgICAkMHgzMCwlZWN4ICAgICAgICAg
ICAgICAgICA8CiAgNzUgMDcgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMgN2UgMTAgMDEgICAgICAg
ICAgIGNtcGwgICAkMHgxLDB4MTAoJXJzaSkgICAgICAgICAgICAgICA4MyA3
ZSAxMCAwMSAgICAgICAgICAgY21wbCAgICQweDEsMHgxMCglcnNpKQogIDBm
IDk0IGMwICAgICAgICAgICAgICBzZXRlICAgJWFsICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgNzUgMWQgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHgzMT4KICBjMyAgICAgICAgICAgICAgICAgICAg
cmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4IDhiIDBl
ICAgICAgICAgICAgICBtb3YgICAgKCVyc2kpLCVyY3gKICA2NiAwZiAxZiA0
NCAwMCAwMCAgICAgbm9wdyAgIDB4MCglcmF4LCVyYXgsMSkgICAgICAgICAg
IHwgIDQ4IDgxIGY5IGZmIGZmIDA5IDAwICBjbXAgICAgJDB4OWZmZmYsJXJj
eAogIDhiIDQ2IDEwICAgICAgICAgICAgICBtb3YgICAgMHgxMCglcnNpKSwl
ZWF4ICAgICAgICAgICAgfCAgNzYgMTEgICAgICAgICAgICAgICAgIGpiZSAg
ICA8c3RkdmdhX21lbV9hY2NlcHQrMHgzMT4KICA4YiA3ZSAxNCAgICAgICAg
ICAgICAgbW92ICAgIDB4MTQoJXJzaSksJWVkaSAgICAgICAgICAgIHwgIDhi
IDQ2IDE0ICAgICAgICAgICAgICBtb3YgICAgMHgxNCglcnNpKSwlZWF4CiAg
NDkgODkgZDAgICAgICAgICAgICAgIG1vdiAgICAlcmR4LCVyOCAgICAgICAg
ICAgICAgICAgICB8ICA0OCA4ZCA0NCAwMSBmZiAgICAgICAgbGVhICAgIC0w
eDEoJXJjeCwlcmF4LDEpLCVyYXgKICA0OCA4MyBlOCAwMSAgICAgICAgICAg
c3ViICAgICQweDEsJXJheCAgICAgICAgICAgICAgICAgIHwgIDQ4IDNkIGZm
IGZmIDBiIDAwICAgICBjbXAgICAgJDB4YmZmZmYsJXJheAogIDQ4IDhkIDU0
IDNhIGZmICAgICAgICBsZWEgICAgLTB4MSglcmR4LCVyZGksMSksJXJkeCAg
ICAgfCAgMGYgOTYgYzIgICAgICAgICAgICAgIHNldGJlICAlZGwKICA0OCAw
ZiBhZiBjNyAgICAgICAgICAgaW11bCAgICVyZGksJXJheCAgICAgICAgICAg
ICAgICAgIHwgIDg5IGQwICAgICAgICAgICAgICAgICBtb3YgICAgJWVkeCwl
ZWF4CiAgNDkgMjkgYzAgICAgICAgICAgICAgIHN1YiAgICAlcmF4LCVyOCAg
ICAgICAgICAgICAgICAgICA8CiAgMzEgYzAgICAgICAgICAgICAgICAgIHhv
ciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDkgODEgZjgg
ZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcjggICAgICAgICAgICAg
ICA8CiAgNzcgYmUgICAgICAgICAgICAgICAgIGphICAgICA8c3RkdmdhX21l
bV9hY2NlcHQrMHgyYT4gICA8CiAgYzMgICAgICAgICAgICAgICAgICAgIHJl
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMyAgICAgICAg
ICAgICAgICAgICAgcmV0CgpCeSBtb3ZpbmcgdGhlICJwLT5jb3VudCAhPSAx
IiBjaGVjayBhaGVhZCBvZiB0aGUKaW9yZXFfbW1pb197Zmlyc3QsbGFzdH1f
Ynl0ZSgpIGNhbGxzLCBib3RoIG11bHRpcGxpZXMgZGlzYXBwZWFyIGFsb25n
IHdpdGggYQpsb3Qgb2Ygc3Vycm91bmRpbmcgbG9naWMuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IDA4ZmZkODcwNWQzNmM3YzQ0NWRmM2VjZWU4YWQ5YjhmOGQ2NWZi
ZTApCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggZmQzOGZiNDgwMDJj
Li43NTU0ZmExMGNjOTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
NzAsMTggKzcwLDE0IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgc3RkdmdhX21l
bV93cml0ZSgKIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNj
ZXB0KAogICAgIGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxl
ciwgY29uc3QgaW9yZXFfdCAqcCkKIHsKLSAgICBpZiAoIChpb3JlcV9tbWlv
X2ZpcnN0X2J5dGUocCkgPCBWR0FfTUVNX0JBU0UpIHx8CisgICAgLyoKKyAg
ICAgKiBPbmx5IGFjY2VwdCBzaW5nbGUgZGlyZWN0IHdyaXRlcywgYXMgdGhh
dCdzIHRoZSBvbmx5IHRoaW5nIHdlIGNhbgorICAgICAqIGFjY2VsZXJhdGUg
dXNpbmcgYnVmZmVyZWQgaW9yZXEgaGFuZGxpbmcuCisgICAgICovCisgICAg
aWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJVEUgfHwgcC0+ZGF0YV9pc19wdHIg
fHwgcC0+Y291bnQgIT0gMSB8fAorICAgICAgICAgKGlvcmVxX21taW9fZmly
c3RfYnl0ZShwKSA8IFZHQV9NRU1fQkFTRSkgfHwKICAgICAgICAgIChpb3Jl
cV9tbWlvX2xhc3RfYnl0ZShwKSA+PSAoVkdBX01FTV9CQVNFICsgVkdBX01F
TV9TSVpFKSkgKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICggcC0+
ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFfaXNfcHRyIHx8IHAtPmNv
dW50ICE9IDEgKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogT25s
eSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMsIGFzIHRoYXQncyB0aGUg
b25seSB0aGluZyB3ZSBjYW4KLSAgICAgICAgICogYWNjZWxlcmF0ZSB1c2lu
ZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KLSAgICAgICAgICovCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0K

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-01.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJjYWNoZSIgc3RydWN0IG1lbWJl
cgoKU2luY2UgNjhlMTE4MzQxMWJlICgibGlieGM6IGludHJvZHVjZSBhIHhj
X2RvbV9hcmNoIGZvciBodm0tMy4wLXg4Nl8zMgpndWVzdHMiKSwgSFZNIGd1
ZXN0cyBhcmUgYnVpbHQgdXNpbmcgWEVOX0RPTUNUTF9zZXRodm1jb250ZXh0
LCB3aGljaAplbmRzIHVwIGRpc2FibGluZyBzdGR2Z2EgY2FjaGluZyBiZWNh
dXNlIG9mIGFyY2hfaHZtX2xvYWQoKSBiZWluZwppbnZvbHZlZCBpbiB0aGUg
cHJvY2Vzc2luZyBvZiB0aGUgcmVxdWVzdC4gV2l0aCB0aGF0IHRoZSBmaWVs
ZCBpcwp1c2VsZXNzLCBhbmQgY2FuIGJlIGRyb3BwZWQuIERyb3AgdGhlIGhl
bHBlciBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIC8KY2hlY2tpbmcgYXMgd2Vs
bCByaWdodCBhd2F5LCBidXQgbGVhdmUgdGhlIHVzZSBzaXRlcyBvZgpzdGR2
Z2FfY2FjaGVfaXNfZW5hYmxlZCgpIHdpdGggdGhlIGhhcmQtY29kZWQgcmVz
dWx0IHRoZSBmdW5jdGlvbiB3b3VsZApoYXZlIHByb2R1Y2VkLCB0byBhaWQg
dmFsaWRhdGlvbiBvZiBzdWJzZXF1ZW50IGRyb3BwaW5nIG9mIGZ1cnRoZXIg
Y29kZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZFLTIwMjQtNDU4
MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w
ZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDUz
YjcyNDZiZGZiM2MyODBhZGNkZjcxNDkxOGU0ZGVjYjdlMTA4ZjQpCgpkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMgYi94ZW4vYXJjaC94
ODYvaHZtL3NhdmUuYwppbmRleCA3OTcxM2NkNmNhZDAuLjgzMmExMGY2N2U4
ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKKysrIGIv
eGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKQEAgLTY0LDkgKzY0LDYgQEAgaW50
IGFyY2hfaHZtX2xvYWQoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9z
YXZlX2hlYWRlciAqaGRyKQogICAgIC8qIFRpbWUgd2hlbiByZXN0b3JlIHN0
YXJ0ZWQgICovCiAgICAgZC0+YXJjaC5odm0uc3luY190c2MgPSByZHRzYygp
OwogCi0gICAgLyogVkdBIHN0YXRlIGlzIG5vdCBzYXZlZC9yZXN0b3JlZCwg
c28gd2Ugbm9iYmxlIHRoZSBjYWNoZS4gKi8KLSAgICBkLT5hcmNoLmh2bS5z
dGR2Z2EuY2FjaGUgPSBTVERWR0FfQ0FDSEVfRElTQUJMRUQ7Ci0KICAgICBy
ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9z
dGR2Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggNjQx
OTIxMTI2NjFiLi5hYzcwNTZiMDBiYzcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9odm0vc3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2
Z2EuYwpAQCAtMTAwLDM3ICsxMDAsNiBAQCBzdGF0aWMgdm9pZCB2cmFtX3B1
dChzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcywgdm9pZCAqcCkKICAgICB1bm1h
cF9kb21haW5fcGFnZShwKTsKIH0KIAotc3RhdGljIHZvaWQgc3RkdmdhX3Ry
eV9jYWNoZV9lbmFibGUoc3RydWN0IGh2bV9od19zdGR2Z2EgKnMpCi17Ci0g
ICAgLyoKLSAgICAgKiBDYWNoaW5nIG1vZGUgY2FuIG9ubHkgYmUgZW5hYmxl
ZCBpZiB0aGUgdGhlIGNhY2hlIGhhcwotICAgICAqIG5ldmVyIGJlZW4gdXNl
ZCBiZWZvcmUuIEFzIHNvb24gYXMgaXQgaXMgZGlzYWJsZWQsIGl0IHdpbGwK
LSAgICAgKiBiZWNvbWUgb3V0LW9mLXN5bmMgd2l0aCB0aGUgVkdBIGRldmlj
ZSBtb2RlbCBhbmQgc2luY2Ugbm8KLSAgICAgKiBtZWNoYW5pc20gZXhpc3Rz
IHRvIGFjcXVpcmUgY3VycmVudCBWUkFNIHN0YXRlIGZyb20gdGhlCi0gICAg
ICogZGV2aWNlIG1vZGVsLCByZS1lbmFibGluZyBpdCB3b3VsZCBsZWFkIHRv
IHN0YWxlIGRhdGEgYmVpbmcKLSAgICAgKiBzZWVuIGJ5IHRoZSBndWVzdC4K
LSAgICAgKi8KLSAgICBpZiAoIHMtPmNhY2hlICE9IFNURFZHQV9DQUNIRV9V
TklOSVRJQUxJWkVEICkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ2Rwcmlu
dGsoWEVOTE9HX0lORk8sICJlbnRlcmluZyBjYWNoaW5nIG1vZGVcbiIpOwot
ICAgIHMtPmNhY2hlID0gU1REVkdBX0NBQ0hFX0VOQUJMRUQ7Ci19Ci0KLXN0
YXRpYyB2b2lkIHN0ZHZnYV9jYWNoZV9kaXNhYmxlKHN0cnVjdCBodm1faHdf
c3RkdmdhICpzKQotewotICAgIGlmICggcy0+Y2FjaGUgIT0gU1REVkdBX0NB
Q0hFX0VOQUJMRUQgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBnZHByaW50
ayhYRU5MT0dfSU5GTywgImxlYXZpbmcgY2FjaGluZyBtb2RlXG4iKTsKLSAg
ICBzLT5jYWNoZSA9IFNURFZHQV9DQUNIRV9ESVNBQkxFRDsKLX0KLQotc3Rh
dGljIGJvb2xfdCBzdGR2Z2FfY2FjaGVfaXNfZW5hYmxlZChjb25zdCBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcykKLXsKLSAgICByZXR1cm4gcy0+Y2FjaGUg
PT0gU1REVkdBX0NBQ0hFX0VOQUJMRUQ7Ci19Ci0KIHN0YXRpYyBpbnQgc3Rk
dmdhX291dGIodWludDY0X3QgYWRkciwgdWludDhfdCB2YWwpCiB7CiAgICAg
c3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5h
cmNoLmh2bS5zdGR2Z2E7CkBAIC0xNzAsNyArMTM5LDYgQEAgc3RhdGljIGlu
dCBzdGR2Z2Ffb3V0Yih1aW50NjRfdCBhZGRyLCB1aW50OF90IHZhbCkKICAg
ICBpZiAoICFwcmV2X3N0ZHZnYSAmJiBzLT5zdGR2Z2EgKQogICAgIHsKICAg
ICAgICAgZ2RwcmludGsoWEVOTE9HX0lORk8sICJlbnRlcmluZyBzdGR2Z2Eg
bW9kZVxuIik7Ci0gICAgICAgIHN0ZHZnYV90cnlfY2FjaGVfZW5hYmxlKHMp
OwogICAgIH0KICAgICBlbHNlIGlmICggcHJldl9zdGR2Z2EgJiYgIXMtPnN0
ZHZnYSApCiAgICAgewpAQCAtNDY4LDcgKzQzNiw3IEBAIHN0YXRpYyBpbnQg
Y2ZfY2hlY2sgc3RkdmdhX21lbV93cml0ZSgKICAgICB9OwogICAgIHN0cnVj
dCBpb3JlcV9zZXJ2ZXIgKnNydjsKIAotICAgIGlmICggIXN0ZHZnYV9jYWNo
ZV9pc19lbmFibGVkKHMpIHx8ICFzLT5zdGR2Z2EgKQorICAgIGlmICggdHJ1
ZSB8fCAhcy0+c3RkdmdhICkKICAgICAgICAgZ290byBkb25lOwogCiAgICAg
LyogSW50ZXJjZXB0IG1taW8gd3JpdGUgKi8KQEAgLTUzNiwxOCArNTA0LDEy
IEBAIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNjZXB0KAog
ICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVB
QkxFIG9uIGFueXRoaW5nIG90aGVyIHRoZW4gdGhlCiAgICAgICAgICAqIGZp
cnN0IGN5Y2xlIG9mIGFuIEkvTy4gU28sIHNpbmNlIHdlIGNhbm5vdCBndWFy
YW50ZWUgdG8gYWx3YXlzIGJlCiAgICAgICAgICAqIGFibGUgdG8gc2VuZCBi
dWZmZXJlZCB3cml0ZXMsIHdlIGhhdmUgdG8gcmVqZWN0IGFueSBtdWx0aS1j
eWNsZQotICAgICAgICAgKiBvciAiaW5kaXJlY3QiIEkvTyBhbmQsIHNpbmNl
IHdlIGFyZSByZWplY3RpbmcgYW4gSS9PLCB3ZSBtdXN0Ci0gICAgICAgICAq
IGludmFsaWRhdGUgdGhlIGNhY2hlLgotICAgICAgICAgKiBTaW5nbGUtY3lj
bGUgd3JpdGUgdHJhbnNhY3Rpb25zIGFyZSBhY2NlcHRlZCBldmVuIGlmIHRo
ZSBjYWNoZSBpcwotICAgICAgICAgKiBub3QgYWN0aXZlIHNpbmNlIHdlIGNh
biBhc3NlcnQsIHdoZW4gaW4gc3RkdmdhIG1vZGUsIHRoYXQgd3JpdGVzCi0g
ICAgICAgICAqIHRvIFZSQU0gaGF2ZSBubyBzaWRlIGVmZmVjdCBhbmQgdGh1
cyB3ZSBjYW4gdHJ5IHRvIGJ1ZmZlciB0aGVtLgorICAgICAgICAgKiBvciAi
aW5kaXJlY3QiIEkvTy4KICAgICAgICAgICovCi0gICAgICAgIHN0ZHZnYV9j
YWNoZV9kaXNhYmxlKHMpOwotCiAgICAgICAgIGdvdG8gcmVqZWN0OwogICAg
IH0KICAgICBlbHNlIGlmICggcC0+ZGlyID09IElPUkVRX1JFQUQgJiYKLSAg
ICAgICAgICAgICAgKCFzdGR2Z2FfY2FjaGVfaXNfZW5hYmxlZChzKSB8fCAh
cy0+c3RkdmdhKSApCisgICAgICAgICAgICAgICh0cnVlIHx8ICFzLT5zdGR2
Z2EpICkKICAgICAgICAgZ290byByZWplY3Q7CiAKICAgICAvKiBzLT5sb2Nr
IGludGVudGlvbmFsbHkgaGVsZCAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2h2bS9pby5oCmluZGV4IGU1MjI1ZTc1ZWYyNi4uMWFiZTFhYjY3
YmMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZt
L2lvLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5o
CkBAIC0xMTAsMTkgKzExMCwxMiBAQCBzdHJ1Y3QgdnBjaV9hcmNoX21zaXhf
ZW50cnkgewogICAgIGludCBwaXJxOwogfTsKIAotZW51bSBzdGR2Z2FfY2Fj
aGVfc3RhdGUgewotICAgIFNURFZHQV9DQUNIRV9VTklOSVRJQUxJWkVELAot
ICAgIFNURFZHQV9DQUNIRV9FTkFCTEVELAotICAgIFNURFZHQV9DQUNIRV9E
SVNBQkxFRAotfTsKLQogc3RydWN0IGh2bV9od19zdGR2Z2EgewogICAgIHVp
bnQ4X3Qgc3JfaW5kZXg7CiAgICAgdWludDhfdCBzcls4XTsKICAgICB1aW50
OF90IGdyX2luZGV4OwogICAgIHVpbnQ4X3QgZ3JbOV07CiAgICAgYm9vbF90
IHN0ZHZnYTsKLSAgICBlbnVtIHN0ZHZnYV9jYWNoZV9zdGF0ZSBjYWNoZTsK
ICAgICB1aW50MzJfdCBsYXRjaDsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICp2
cmFtX3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAtMHhhZmZmZiAq
LwogICAgIHNwaW5sb2NrX3QgbG9jazsKCg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-02.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzdGR2Z2EiIHN0cnVjdCBtZW1i
ZXIKClR3byBvZiBpdHMgY29uc3VtZXJzIGFyZSBkZWFkIChpbiBjb21waWxl
LXRpbWUgY29uc3RhbnQgY29uZGl0aW9uYWxzKQphbmQgdGhlIG9ubHkgcmVt
YWluaW5nIG9uZXMgYXJlIG1lcmVseSBjb250cm9sbGluZyBkZWJ1ZyBsb2dn
aW5nLiBIZW5jZQp0aGUgZmllbGQgaXMgbm93IHBvaW50bGVzcyB0byBzZXQs
IHdoaWNoIGluIHBhcnRpY3VsYXIgYWxsb3dzIHRvIGdldCByaWQKb2YgdGhl
IHF1ZXN0aW9uYWJsZSBjb25kaXRpb25hbCBmcm9tIHdoaWNoIHRoZSBmaWVs
ZCdzIHZhbHVlIHdhcwplc3RhYmxpc2hlZCAoYWZhaWN0IDU1MWNlZWU5NzUx
MyBbIng4NiwgaHZtOiBzdGR2Z2EgY2FjaGUgYWx3YXlzIG9uIl0KaGFkIGRy
b3BwZWQgdG9vIG11Y2ggb2YgdGhlIGVhcmxpZXIgZXh0cmEgY2hlY2sgdGhh
dCB3YXMgdGhlcmUsIGFuZApxdWl0ZSBsaWtlbHkgZnVydGhlciBjaGVja3Mg
d2VyZSBtaXNzaW5nKS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZF
LTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1
bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IGI3NDBhOTM2OWU4MWJkZGE2NzVhOTc4MDEzMGNlMmI5ZTc1ZDRl
YzkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggYWM3MDU2YjAwYmM3
Li43NmYwZDgzMjk3Y2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
MTAzLDcgKzEwMyw3IEBAIHN0YXRpYyB2b2lkIHZyYW1fcHV0KHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzLCB2b2lkICpwKQogc3RhdGljIGludCBzdGR2Z2Ff
b3V0Yih1aW50NjRfdCBhZGRyLCB1aW50OF90IHZhbCkKIHsKICAgICBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2gu
aHZtLnN0ZHZnYTsKLSAgICBpbnQgcmMgPSAxLCBwcmV2X3N0ZHZnYSA9IHMt
PnN0ZHZnYTsKKyAgICBpbnQgcmMgPSAxOwogCiAgICAgc3dpdGNoICggYWRk
ciApCiAgICAgewpAQCAtMTMyLDE5ICsxMzIsNiBAQCBzdGF0aWMgaW50IHN0
ZHZnYV9vdXRiKHVpbnQ2NF90IGFkZHIsIHVpbnQ4X3QgdmFsKQogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICAvKiBXaGVuIGluIHN0YW5kYXJkIHZn
YSBtb2RlLCBlbXVsYXRlIGhlcmUgYWxsIHdyaXRlcyB0byB0aGUgdnJhbSBi
dWZmZXIKLSAgICAgKiBzbyB3ZSBjYW4gaW1tZWRpYXRlbHkgc2F0aXNmeSBy
ZWFkcyB3aXRob3V0IHdhaXRpbmcgZm9yIHFlbXUuICovCi0gICAgcy0+c3Rk
dmdhID0gKHMtPnNyWzddID09IDB4MDApOwotCi0gICAgaWYgKCAhcHJldl9z
dGR2Z2EgJiYgcy0+c3RkdmdhICkKLSAgICB7Ci0gICAgICAgIGdkcHJpbnRr
KFhFTkxPR19JTkZPLCAiZW50ZXJpbmcgc3RkdmdhIG1vZGVcbiIpOwotICAg
IH0KLSAgICBlbHNlIGlmICggcHJldl9zdGR2Z2EgJiYgIXMtPnN0ZHZnYSAp
Ci0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgImxlYXZp
bmcgc3RkdmdhIG1vZGVcbiIpOwotICAgIH0KLQogICAgIHJldHVybiByYzsK
IH0KIApAQCAtNDI1LDcgKzQxMiw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sg
c3RkdmdhX21lbV93cml0ZSgKICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hh
bmRsZXIgKmhhbmRsZXIsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IHNpemUs
CiAgICAgdWludDY0X3QgZGF0YSkKIHsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0
ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsK
ICAgICBpb3JlcV90IHAgPSB7CiAgICAgICAgIC50eXBlID0gSU9SRVFfVFlQ
RV9DT1BZLAogICAgICAgICAuYWRkciA9IGFkZHIsCkBAIC00MzYsOCArNDIy
LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBzdGR2Z2FfbWVtX3dyaXRlKAog
ICAgIH07CiAgICAgc3RydWN0IGlvcmVxX3NlcnZlciAqc3J2OwogCi0gICAg
aWYgKCB0cnVlIHx8ICFzLT5zdGR2Z2EgKQotICAgICAgICBnb3RvIGRvbmU7
CisgICAgZ290byBkb25lOwogCiAgICAgLyogSW50ZXJjZXB0IG1taW8gd3Jp
dGUgKi8KICAgICBzd2l0Y2ggKCBzaXplICkKQEAgLTQ5OCwxOSArNDgzLDE0
IEBAIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNjZXB0KAog
CiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKIAotICAgIGlmICggcC0+ZGly
ID09IElPUkVRX1dSSVRFICYmIChwLT5kYXRhX2lzX3B0ciB8fCBwLT5jb3Vu
dCAhPSAxKSApCisgICAgaWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJVEUgfHwg
cC0+ZGF0YV9pc19wdHIgfHwgcC0+Y291bnQgIT0gMSApCiAgICAgewogICAg
ICAgICAvKgotICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIFg4NkVNVUxf
VU5IQU5ETEVBQkxFIG9uIGFueXRoaW5nIG90aGVyIHRoZW4gdGhlCi0gICAg
ICAgICAqIGZpcnN0IGN5Y2xlIG9mIGFuIEkvTy4gU28sIHNpbmNlIHdlIGNh
bm5vdCBndWFyYW50ZWUgdG8gYWx3YXlzIGJlCi0gICAgICAgICAqIGFibGUg
dG8gc2VuZCBidWZmZXJlZCB3cml0ZXMsIHdlIGhhdmUgdG8gcmVqZWN0IGFu
eSBtdWx0aS1jeWNsZQotICAgICAgICAgKiBvciAiaW5kaXJlY3QiIEkvTy4K
KyAgICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMs
IGFzIHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KKyAgICAgICAgICog
YWNjZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KICAg
ICAgICAgICovCiAgICAgICAgIGdvdG8gcmVqZWN0OwogICAgIH0KLSAgICBl
bHNlIGlmICggcC0+ZGlyID09IElPUkVRX1JFQUQgJiYKLSAgICAgICAgICAg
ICAgKHRydWUgfHwgIXMtPnN0ZHZnYSkgKQotICAgICAgICBnb3RvIHJlamVj
dDsKIAogICAgIC8qIHMtPmxvY2sgaW50ZW50aW9uYWxseSBoZWxkICovCiAg
ICAgcmV0dXJuIDE7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vaHZtL2lvLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZt
L2lvLmgKaW5kZXggMWFiZTFhYjY3YmMzLi4yOGRiYWYyZTFiYTYgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKQEAgLTExNSw3
ICsxMTUsNiBAQCBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7CiAgICAgdWludDhf
dCBzcls4XTsKICAgICB1aW50OF90IGdyX2luZGV4OwogICAgIHVpbnQ4X3Qg
Z3JbOV07Ci0gICAgYm9vbF90IHN0ZHZnYTsKICAgICB1aW50MzJfdCBsYXRj
aDsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICp2cmFtX3BhZ2VbNjRdOyAgLyog
c2hhZG93IG9mIDB4YTAwMDAtMHhhZmZmZiAqLwogICAgIHNwaW5sb2NrX3Qg
bG9jazsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-03.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiByZW1vdmUgdW51c2VkIE1NSU8gaGFuZGxpbmcgY29kZQoK
QWxsIHJlYWQgYWNjZXNzZXMgYXJlIHJlamVjdGVkIGJ5IHRoZSAtPmFjY2Vw
dCBoYW5kbGVyLCB3aGlsZSB3cml0ZXMKYnlwYXNzIHRoZSBidWxrIG9mIHRo
ZSBmdW5jdGlvbiBib2R5LiBEcm9wIHRoZSBkZWFkIGNvZGUsIGxlYXZpbmcg
YW4KYXNzZXJ0aW9uIGluIHRoZSByZWFkIGhhbmRsZXIuCgpBIG51bWJlciBv
ZiBvdGhlciBzdGF0aWMgaXRlbXMgKGFuZCBhIG1hY3JvKSBhcmUgdGhlbiB1
bnJlZmVyZW5jZWQgYW5kCmhlbmNlIGFsc28gbmVlZCAod2FudCkgZHJvcHBp
bmcuIFRoZSBzYW1lIGFwcGxpZXMgdG8gdGhlICJsYXRjaCIgZmllbGQKb2Yg
dGhlIHN0YXRlIHN0cnVjdHVyZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYz
IC8gQ1ZFLTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29w
ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IDg5MTA4NTQ3YWYxZjIzMGI3Mjg5M2I0ODM1MWY5YzEx
MDYxODk2NDkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2
Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggNzZmMGQ4
MzI5N2NmLi4wZjBiZDEwMDY4MWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9odm0vc3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2Eu
YwpAQCAtMzcsMjYgKzM3LDYgQEAKICNkZWZpbmUgVkdBX01FTV9CQVNFIDB4
YTAwMDAKICNkZWZpbmUgVkdBX01FTV9TSVpFIDB4MjAwMDAKIAotI2RlZmlu
ZSBQQVQoeCkgKHgpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgbWFzazE2WzE2
XSA9IHsKLSAgICBQQVQoMHgwMDAwMDAwMCksCi0gICAgUEFUKDB4MDAwMDAw
ZmYpLAotICAgIFBBVCgweDAwMDBmZjAwKSwKLSAgICBQQVQoMHgwMDAwZmZm
ZiksCi0gICAgUEFUKDB4MDBmZjAwMDApLAotICAgIFBBVCgweDAwZmYwMGZm
KSwKLSAgICBQQVQoMHgwMGZmZmYwMCksCi0gICAgUEFUKDB4MDBmZmZmZmYp
LAotICAgIFBBVCgweGZmMDAwMDAwKSwKLSAgICBQQVQoMHhmZjAwMDBmZiks
Ci0gICAgUEFUKDB4ZmYwMGZmMDApLAotICAgIFBBVCgweGZmMDBmZmZmKSwK
LSAgICBQQVQoMHhmZmZmMDAwMCksCi0gICAgUEFUKDB4ZmZmZjAwZmYpLAot
ICAgIFBBVCgweGZmZmZmZjAwKSwKLSAgICBQQVQoMHhmZmZmZmZmZiksCi19
OwotCiAvKiBmb3JjZSBzb21lIGJpdHMgdG8gemVybyAqLwogc3RhdGljIGNv
bnN0IHVpbnQ4X3Qgc3JfbWFza1s4XSA9IHsKICAgICAodWludDhfdCl+MHhm
YywKQEAgLTgxLDI1ICs2MSw2IEBAIHN0YXRpYyBjb25zdCB1aW50OF90IGdy
X21hc2tbOV0gPSB7CiAgICAgKHVpbnQ4X3QpfjB4MDAsIC8qIDB4MDggKi8K
IH07CiAKLXN0YXRpYyB1aW50OF90ICp2cmFtX2dldGIoc3RydWN0IGh2bV9o
d19zdGR2Z2EgKnMsIHVuc2lnbmVkIGludCBhKQotewotICAgIHN0cnVjdCBw
YWdlX2luZm8gKnBnID0gcy0+dnJhbV9wYWdlWyhhID4+IDEyKSAmIDB4M2Zd
OwotICAgIHVpbnQ4X3QgKnAgPSBfX21hcF9kb21haW5fcGFnZShwZyk7Ci0g
ICAgcmV0dXJuICZwW2EgJiAweGZmZl07Ci19Ci0KLXN0YXRpYyB1aW50MzJf
dCAqdnJhbV9nZXRsKHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB1bnNpZ25l
ZCBpbnQgYSkKLXsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IHMtPnZy
YW1fcGFnZVsoYSA+PiAxMCkgJiAweDNmXTsKLSAgICB1aW50MzJfdCAqcCA9
IF9fbWFwX2RvbWFpbl9wYWdlKHBnKTsKLSAgICByZXR1cm4gJnBbYSAmIDB4
M2ZmXTsKLX0KLQotc3RhdGljIHZvaWQgdnJhbV9wdXQoc3RydWN0IGh2bV9o
d19zdGR2Z2EgKnMsIHZvaWQgKnApCi17Ci0gICAgdW5tYXBfZG9tYWluX3Bh
Z2UocCk7Ci19Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3Qg
YWRkciwgdWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2
Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBA
IC0xNjgsMjQ0ICsxMjksMTMgQEAgc3RhdGljIGludCBjZl9jaGVjayBzdGR2
Z2FfaW50ZXJjZXB0X3BpbygKICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRM
RUFCTEU7IC8qIHByb3BhZ2F0ZSB0byBleHRlcm5hbCBpb2VtdSAqLwogfQog
Ci1zdGF0aWMgdW5zaWduZWQgaW50IHN0ZHZnYV9tZW1fb2Zmc2V0KAotICAg
IHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB1bnNpZ25lZCBpbnQgbW1pb19h
ZGRyKQotewotICAgIHVuc2lnbmVkIGludCBtZW1vcnlfbWFwX21vZGUgPSAo
cy0+Z3JbNl0gPj4gMikgJiAzOwotICAgIHVuc2lnbmVkIGludCBvZmZzZXQg
PSBtbWlvX2FkZHIgJiAweDFmZmZmOwotCi0gICAgc3dpdGNoICggbWVtb3J5
X21hcF9tb2RlICkKLSAgICB7Ci0gICAgY2FzZSAwOgotICAgICAgICBicmVh
azsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGlmICggb2Zmc2V0ID49IDB4MTAw
MDAgKQotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICBvZmZzZXQg
Kz0gMDsgLyogYXNzdW1lIGJhbmtfb2Zmc2V0ID09IDA7ICovCi0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgMjoKLSAgICAgICAgb2Zmc2V0IC09IDB4MTAw
MDA7Ci0gICAgICAgIGlmICggb2Zmc2V0ID49IDB4ODAwMCApCi0gICAgICAg
ICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6
Ci0gICAgY2FzZSAzOgotICAgICAgICBvZmZzZXQgLT0gMHgxODAwMDsKLSAg
ICAgICAgaWYgKCBvZmZzZXQgPj0gMHg4MDAwICkKLSAgICAgICAgICAgIGdv
dG8gZmFpbDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJu
IG9mZnNldDsKLQotIGZhaWw6Ci0gICAgcmV0dXJuIH4wdTsKLX0KLQotI2Rl
ZmluZSBHRVRfUExBTkUoZGF0YSwgcCkgKCgoZGF0YSkgPj4gKChwKSAqIDgp
KSAmIDB4ZmYpCi0KLXN0YXRpYyB1aW50OF90IHN0ZHZnYV9tZW1fcmVhZGIo
dWludDY0X3QgYWRkcikKLXsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAq
cyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsKLSAgICBp
bnQgcGxhbmU7Ci0gICAgdWludDMyX3QgcmV0LCAqdnJhbV9sOwotICAgIHVp
bnQ4X3QgKnZyYW1fYjsKLQotICAgIGFkZHIgPSBzdGR2Z2FfbWVtX29mZnNl
dChzLCBhZGRyKTsKLSAgICBpZiAoIGFkZHIgPT0gfjB1ICkKLSAgICAgICAg
cmV0dXJuIDB4ZmY7Ci0KLSAgICBpZiAoIHMtPnNyWzRdICYgMHgwOCApCi0g
ICAgewotICAgICAgICAvKiBjaGFpbiA0IG1vZGUgOiBzaW1wbGVzdCBhY2Nl
c3MgKi8KLSAgICAgICAgdnJhbV9iID0gdnJhbV9nZXRiKHMsIGFkZHIpOwot
ICAgICAgICByZXQgPSAqdnJhbV9iOwotICAgICAgICB2cmFtX3B1dChzLCB2
cmFtX2IpOwotICAgIH0KLSAgICBlbHNlIGlmICggcy0+Z3JbNV0gJiAweDEw
ICkKLSAgICB7Ci0gICAgICAgIC8qIG9kZC9ldmVuIG1vZGUgKGFrYSB0ZXh0
IG1vZGUgbWFwcGluZykgKi8KLSAgICAgICAgcGxhbmUgPSAocy0+Z3JbNF0g
JiAyKSB8IChhZGRyICYgMSk7Ci0gICAgICAgIHZyYW1fYiA9IHZyYW1fZ2V0
YihzLCAoKGFkZHIgJiB+MSkgPDwgMSkgfCBwbGFuZSk7Ci0gICAgICAgIHJl
dCA9ICp2cmFtX2I7Ci0gICAgICAgIHZyYW1fcHV0KHMsIHZyYW1fYik7Ci0g
ICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIC8qIHN0YW5kYXJkIFZH
QSBsYXRjaGVkIGFjY2VzcyAqLwotICAgICAgICB2cmFtX2wgPSB2cmFtX2dl
dGwocywgYWRkcik7Ci0gICAgICAgIHMtPmxhdGNoID0gKnZyYW1fbDsKLSAg
ICAgICAgdnJhbV9wdXQocywgdnJhbV9sKTsKLQotICAgICAgICBpZiAoICEo
cy0+Z3JbNV0gJiAweDA4KSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8q
IHJlYWQgbW9kZSAwICovCi0gICAgICAgICAgICBwbGFuZSA9IHMtPmdyWzRd
OwotICAgICAgICAgICAgcmV0ID0gR0VUX1BMQU5FKHMtPmxhdGNoLCBwbGFu
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAg
ICAgICAgICAvKiByZWFkIG1vZGUgMSAqLwotICAgICAgICAgICAgcmV0ID0g
KHMtPmxhdGNoIF4gbWFzazE2W3MtPmdyWzJdXSkgJiBtYXNrMTZbcy0+Z3Jb
N11dOwotICAgICAgICAgICAgcmV0IHw9IHJldCA+PiAxNjsKLSAgICAgICAg
ICAgIHJldCB8PSByZXQgPj4gODsKLSAgICAgICAgICAgIHJldCA9ICh+cmV0
KSAmIDB4ZmY7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0
OwotfQotCiBzdGF0aWMgaW50IGNmX2NoZWNrIHN0ZHZnYV9tZW1fcmVhZCgK
ICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsIHVp
bnQ2NF90IGFkZHIsIHVpbnQzMl90IHNpemUsCiAgICAgdWludDY0X3QgKnBf
ZGF0YSkKIHsKLSAgICB1aW50NjRfdCBkYXRhID0gfjBVTDsKLQotICAgIHN3
aXRjaCAoIHNpemUgKQotICAgIHsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGRh
dGEgPSBzdGR2Z2FfbWVtX3JlYWRiKGFkZHIpOwotICAgICAgICBicmVhazsK
LQotICAgIGNhc2UgMjoKLSAgICAgICAgZGF0YSA9IHN0ZHZnYV9tZW1fcmVh
ZGIoYWRkcik7Ci0gICAgICAgIGRhdGEgfD0gc3RkdmdhX21lbV9yZWFkYihh
ZGRyICsgMSkgPDwgODsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIDQ6
Ci0gICAgICAgIGRhdGEgPSBzdGR2Z2FfbWVtX3JlYWRiKGFkZHIpOwotICAg
ICAgICBkYXRhIHw9IHN0ZHZnYV9tZW1fcmVhZGIoYWRkciArIDEpIDw8IDg7
Ci0gICAgICAgIGRhdGEgfD0gc3RkdmdhX21lbV9yZWFkYihhZGRyICsgMikg
PDwgMTY7Ci0gICAgICAgIGRhdGEgfD0gKHVpbnQzMl90KXN0ZHZnYV9tZW1f
cmVhZGIoYWRkciArIDMpIDw8IDI0OwotICAgICAgICBicmVhazsKLQotICAg
IGNhc2UgODoKLSAgICAgICAgZGF0YSA9ICAodWludDY0X3QpKHN0ZHZnYV9t
ZW1fcmVhZGIoYWRkcikpOwotICAgICAgICBkYXRhIHw9ICh1aW50NjRfdCko
c3RkdmdhX21lbV9yZWFkYihhZGRyICsgMSkpIDw8IDg7Ci0gICAgICAgIGRh
dGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyAyKSkg
PDwgMTY7Ci0gICAgICAgIGRhdGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVt
X3JlYWRiKGFkZHIgKyAzKSkgPDwgMjQ7Ci0gICAgICAgIGRhdGEgfD0gKHVp
bnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyA0KSkgPDwgMzI7Ci0g
ICAgICAgIGRhdGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFk
ZHIgKyA1KSkgPDwgNDA7Ci0gICAgICAgIGRhdGEgfD0gKHVpbnQ2NF90KShz
dGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyA2KSkgPDwgNDg7Ci0gICAgICAgIGRh
dGEgfD0gKHVpbnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyA3KSkg
PDwgNTY7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAg
ICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJpbnZhbGlkIGlvIHNpemU6
ICV1XG4iLCBzaXplKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAg
KnBfZGF0YSA9IGRhdGE7Ci0gICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKLX0K
LQotc3RhdGljIHZvaWQgc3RkdmdhX21lbV93cml0ZWIodWludDY0X3QgYWRk
ciwgdWludDMyX3QgdmFsKQotewotICAgIHN0cnVjdCBodm1faHdfc3Rkdmdh
ICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0uc3RkdmdhOwotICAg
IGludCBwbGFuZSwgd3JpdGVfbW9kZSwgYiwgZnVuY19zZWxlY3QsIG1hc2s7
Ci0gICAgdWludDMyX3Qgd3JpdGVfbWFzaywgYml0X21hc2ssIHNldF9tYXNr
LCAqdnJhbV9sOwotICAgIHVpbnQ4X3QgKnZyYW1fYjsKLQotICAgIGFkZHIg
PSBzdGR2Z2FfbWVtX29mZnNldChzLCBhZGRyKTsKLSAgICBpZiAoIGFkZHIg
PT0gfjB1ICkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCBzLT5zcls0
XSAmIDB4MDggKQotICAgIHsKLSAgICAgICAgLyogY2hhaW4gNCBtb2RlIDog
c2ltcGxlc3QgYWNjZXNzICovCi0gICAgICAgIHBsYW5lID0gYWRkciAmIDM7
Ci0gICAgICAgIG1hc2sgPSAoMSA8PCBwbGFuZSk7Ci0gICAgICAgIGlmICgg
cy0+c3JbMl0gJiBtYXNrICkKLSAgICAgICAgewotICAgICAgICAgICAgdnJh
bV9iID0gdnJhbV9nZXRiKHMsIGFkZHIpOwotICAgICAgICAgICAgKnZyYW1f
YiA9IHZhbDsKLSAgICAgICAgICAgIHZyYW1fcHV0KHMsIHZyYW1fYik7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgZWxzZSBpZiAoIHMtPmdyWzVdICYgMHgx
MCApCi0gICAgewotICAgICAgICAvKiBvZGQvZXZlbiBtb2RlIChha2EgdGV4
dCBtb2RlIG1hcHBpbmcpICovCi0gICAgICAgIHBsYW5lID0gKHMtPmdyWzRd
ICYgMikgfCAoYWRkciAmIDEpOwotICAgICAgICBtYXNrID0gKDEgPDwgcGxh
bmUpOwotICAgICAgICBpZiAoIHMtPnNyWzJdICYgbWFzayApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGFkZHIgPSAoKGFkZHIgJiB+MSkgPDwgMSkgfCBw
bGFuZTsKLSAgICAgICAgICAgIHZyYW1fYiA9IHZyYW1fZ2V0YihzLCBhZGRy
KTsKLSAgICAgICAgICAgICp2cmFtX2IgPSB2YWw7Ci0gICAgICAgICAgICB2
cmFtX3B1dChzLCB2cmFtX2IpOwotICAgICAgICB9Ci0gICAgfQotICAgIGVs
c2UKLSAgICB7Ci0gICAgICAgIHdyaXRlX21vZGUgPSBzLT5ncls1XSAmIDM7
Ci0gICAgICAgIHN3aXRjaCAoIHdyaXRlX21vZGUgKQotICAgICAgICB7Ci0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAg
IC8qIHJvdGF0ZSAqLwotICAgICAgICAgICAgYiA9IHMtPmdyWzNdICYgNzsK
LSAgICAgICAgICAgIHZhbCA9ICgodmFsID4+IGIpIHwgKHZhbCA8PCAoOCAt
IGIpKSkgJiAweGZmOwotICAgICAgICAgICAgdmFsIHw9IHZhbCA8PCA4Owot
ICAgICAgICAgICAgdmFsIHw9IHZhbCA8PCAxNjsKLQotICAgICAgICAgICAg
LyogYXBwbHkgc2V0L3Jlc2V0IG1hc2sgKi8KLSAgICAgICAgICAgIHNldF9t
YXNrID0gbWFzazE2W3MtPmdyWzFdXTsKLSAgICAgICAgICAgIHZhbCA9ICh2
YWwgJiB+c2V0X21hc2spIHwgKG1hc2sxNltzLT5nclswXV0gJiBzZXRfbWFz
ayk7Ci0gICAgICAgICAgICBiaXRfbWFzayA9IHMtPmdyWzhdOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHZh
bCA9IHMtPmxhdGNoOwotICAgICAgICAgICAgZ290byBkb193cml0ZTsKLSAg
ICAgICAgY2FzZSAyOgotICAgICAgICAgICAgdmFsID0gbWFzazE2W3ZhbCAm
IDB4MGZdOwotICAgICAgICAgICAgYml0X21hc2sgPSBzLT5ncls4XTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAg
ICAvKiByb3RhdGUgKi8KLSAgICAgICAgICAgIGIgPSBzLT5nclszXSAmIDc7
Ci0gICAgICAgICAgICB2YWwgPSAodmFsID4+IGIpIHwgKHZhbCA8PCAoOCAt
IGIpKTsKLQotICAgICAgICAgICAgYml0X21hc2sgPSBzLT5ncls4XSAmIHZh
bDsKLSAgICAgICAgICAgIHZhbCA9IG1hc2sxNltzLT5nclswXV07Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIGFwcGx5
IGxvZ2ljYWwgb3BlcmF0aW9uICovCi0gICAgICAgIGZ1bmNfc2VsZWN0ID0g
cy0+Z3JbM10gPj4gMzsKLSAgICAgICAgc3dpdGNoICggZnVuY19zZWxlY3Qg
KQotICAgICAgICB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIC8qIG5vdGhpbmcgdG8gZG8gKi8KLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAvKiBh
bmQgKi8KLSAgICAgICAgICAgIHZhbCAmPSBzLT5sYXRjaDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAvKiBv
ciAqLwotICAgICAgICAgICAgdmFsIHw9IHMtPmxhdGNoOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgIC8qIHhv
ciAqLwotICAgICAgICAgICAgdmFsIF49IHMtPmxhdGNoOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBhcHBseSBiaXQg
bWFzayAqLwotICAgICAgICBiaXRfbWFzayB8PSBiaXRfbWFzayA8PCA4Owot
ICAgICAgICBiaXRfbWFzayB8PSBiaXRfbWFzayA8PCAxNjsKLSAgICAgICAg
dmFsID0gKHZhbCAmIGJpdF9tYXNrKSB8IChzLT5sYXRjaCAmIH5iaXRfbWFz
ayk7Ci0KLSAgICBkb193cml0ZToKLSAgICAgICAgLyogbWFzayBkYXRhIGFj
Y29yZGluZyB0byBzclsyXSAqLwotICAgICAgICBtYXNrID0gcy0+c3JbMl07
Ci0gICAgICAgIHdyaXRlX21hc2sgPSBtYXNrMTZbbWFza107Ci0gICAgICAg
IHZyYW1fbCA9IHZyYW1fZ2V0bChzLCBhZGRyKTsKLSAgICAgICAgKnZyYW1f
bCA9ICgqdnJhbV9sICYgfndyaXRlX21hc2spIHwgKHZhbCAmIHdyaXRlX21h
c2spOwotICAgICAgICB2cmFtX3B1dChzLCB2cmFtX2wpOwotICAgIH0KKyAg
ICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAqcF9kYXRhID0gfjA7Cisg
ICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogfQogCiBzdGF0aWMg
aW50IGNmX2NoZWNrIHN0ZHZnYV9tZW1fd3JpdGUoCkBAIC00MjAsNDcgKzE1
MCw4IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgc3RkdmdhX21lbV93cml0ZSgK
ICAgICAgICAgLmRpciA9IElPUkVRX1dSSVRFLAogICAgICAgICAuZGF0YSA9
IGRhdGEsCiAgICAgfTsKLSAgICBzdHJ1Y3QgaW9yZXFfc2VydmVyICpzcnY7
Ci0KLSAgICBnb3RvIGRvbmU7Ci0KLSAgICAvKiBJbnRlcmNlcHQgbW1pbyB3
cml0ZSAqLwotICAgIHN3aXRjaCAoIHNpemUgKQotICAgIHsKLSAgICBjYXNl
IDE6Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFkZHIsIChkYXRhID4+
ICAwKSAmIDB4ZmYpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgMjoK
LSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkciswLCAoZGF0YSA+PiAg
MCkgJiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkcisx
LCAoZGF0YSA+PiAgOCkgJiAweGZmKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAg
ICBjYXNlIDQ6Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFkZHIrMCwg
KGRhdGEgPj4gIDApICYgMHhmZik7Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3Jp
dGViKGFkZHIrMSwgKGRhdGEgPj4gIDgpICYgMHhmZik7Ci0gICAgICAgIHN0
ZHZnYV9tZW1fd3JpdGViKGFkZHIrMiwgKGRhdGEgPj4gMTYpICYgMHhmZik7
Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFkZHIrMywgKGRhdGEgPj4g
MjQpICYgMHhmZik7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSA4Ogot
ICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzAsIChkYXRhID4+ICAw
KSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzEs
IChkYXRhID4+ICA4KSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dy
aXRlYihhZGRyKzIsIChkYXRhID4+IDE2KSAmIDB4ZmYpOwotICAgICAgICBz
dGR2Z2FfbWVtX3dyaXRlYihhZGRyKzMsIChkYXRhID4+IDI0KSAmIDB4ZmYp
OwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzQsIChkYXRhID4+
IDMyKSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRy
KzUsIChkYXRhID4+IDQwKSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVt
X3dyaXRlYihhZGRyKzYsIChkYXRhID4+IDQ4KSAmIDB4ZmYpOwotICAgICAg
ICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzcsIChkYXRhID4+IDU2KSAmIDB4
ZmYpOwotICAgICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiaW52YWxpZCBpbyBzaXplOiAl
dVxuIiwgc2l6ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBzdHJ1
Y3QgaW9yZXFfc2VydmVyICpzcnYgPSBpb3JlcV9zZXJ2ZXJfc2VsZWN0KGN1
cnJlbnQtPmRvbWFpbiwgJnApOwogCi0gZG9uZToKLSAgICBzcnYgPSBpb3Jl
cV9zZXJ2ZXJfc2VsZWN0KGN1cnJlbnQtPmRvbWFpbiwgJnApOwogICAgIGlm
ICggIXNydiApCiAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJM
RTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2
bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCmlu
ZGV4IDI4ZGJhZjJlMWJhNi4uMTllY2Y0ZmQ3OGUzIDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKKysrIGIveGVuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBAIC0xMTUsNyArMTE1LDYg
QEAgc3RydWN0IGh2bV9od19zdGR2Z2EgewogICAgIHVpbnQ4X3Qgc3JbOF07
CiAgICAgdWludDhfdCBncl9pbmRleDsKICAgICB1aW50OF90IGdyWzldOwot
ICAgIHVpbnQzMl90IGxhdGNoOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnZy
YW1fcGFnZVs2NF07ICAvKiBzaGFkb3cgb2YgMHhhMDAwMC0weGFmZmZmICov
CiAgICAgc3BpbmxvY2tfdCBsb2NrOwogfTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-04.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJncltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIGdyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgYjE2YzA5NjZhMTdmMTljMGU1NWVkMGI5YmFhMjgxOTFkMjU5
MDE3OCkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCAwZjBiZDEwMDY4
MWIuLmZhMjU4MzNjYWE1MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC00OSwxOCArNDksNiBAQCBzdGF0aWMgY29uc3QgdWludDhfdCBzcl9tYXNr
WzhdID0gewogICAgICh1aW50OF90KX4weDAwLAogfTsKIAotc3RhdGljIGNv
bnN0IHVpbnQ4X3QgZ3JfbWFza1s5XSA9IHsKLSAgICAodWludDhfdCl+MHhm
MCwgLyogMHgwMCAqLwotICAgICh1aW50OF90KX4weGYwLCAvKiAweDAxICov
Ci0gICAgKHVpbnQ4X3QpfjB4ZjAsIC8qIDB4MDIgKi8KLSAgICAodWludDhf
dCl+MHhlMCwgLyogMHgwMyAqLwotICAgICh1aW50OF90KX4weGZjLCAvKiAw
eDA0ICovCi0gICAgKHVpbnQ4X3QpfjB4ODQsIC8qIDB4MDUgKi8KLSAgICAo
dWludDhfdCl+MHhmMCwgLyogMHgwNiAqLwotICAgICh1aW50OF90KX4weGYw
LCAvKiAweDA3ICovCi0gICAgKHVpbnQ4X3QpfjB4MDAsIC8qIDB4MDggKi8K
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC04Miwx
MiArNzAsNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5ncl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2NmOiAgICAgICAgICAg
ICAgICAgLyogZ3JhcGhpY3MgZGF0YSByZWdpc3RlciAqLwotICAgICAgICBy
YyA9IChzLT5ncl9pbmRleCA8IHNpemVvZihzLT5ncikpOwotICAgICAgICBp
ZiAoIHJjICkKLSAgICAgICAgICAgIHMtPmdyW3MtPmdyX2luZGV4XSA9IHZh
bCAmIGdyX21hc2tbcy0+Z3JfaW5kZXhdOwotICAgICAgICBicmVhazsKLQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJjID0gMDsKICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lv
LmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKaW5kZXgg
MTllY2Y0ZmQ3OGUzLi42YTM0ZWE4MmY0MDIgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaAorKysgYi94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKQEAgLTExNCw3ICsxMTQsNiBAQCBz
dHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7CiAgICAgdWludDhfdCBzcl9pbmRleDsK
ICAgICB1aW50OF90IHNyWzhdOwogICAgIHVpbnQ4X3QgZ3JfaW5kZXg7Ci0g
ICAgdWludDhfdCBncls5XTsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICp2cmFt
X3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAtMHhhZmZmZiAqLwog
ICAgIHNwaW5sb2NrX3QgbG9jazsKIH07Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-05.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzcltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIHNyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgN2FiYTQ0YmRkNzhhZWRiOTc3MDM4MTE5NDhjM2I2OWNjZmY4
NTAzMikKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCBmYTI1ODMzY2Fh
NTAuLjU1MjNhNDQxZGQ4ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC0zNywxOCArMzcsNiBAQAogI2RlZmluZSBWR0FfTUVNX0JBU0UgMHhhMDAw
MAogI2RlZmluZSBWR0FfTUVNX1NJWkUgMHgyMDAwMAogCi0vKiBmb3JjZSBz
b21lIGJpdHMgdG8gemVybyAqLwotc3RhdGljIGNvbnN0IHVpbnQ4X3Qgc3Jf
bWFza1s4XSA9IHsKLSAgICAodWludDhfdCl+MHhmYywKLSAgICAodWludDhf
dCl+MHhjMiwKLSAgICAodWludDhfdCl+MHhmMCwKLSAgICAodWludDhfdCl+
MHhjMCwKLSAgICAodWludDhfdCl+MHhmMSwKLSAgICAodWludDhfdCl+MHhm
ZiwKLSAgICAodWludDhfdCl+MHhmZiwKLSAgICAodWludDhfdCl+MHgwMCwK
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC02MCwx
MiArNDgsNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5zcl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2M1OiAgICAgICAgICAg
ICAgICAgLyogc2VxdWVuY2VyIGRhdGEgcmVnaXN0ZXIgKi8KLSAgICAgICAg
cmMgPSAocy0+c3JfaW5kZXggPCBzaXplb2Yocy0+c3IpKTsKLSAgICAgICAg
aWYgKCByYyApCi0gICAgICAgICAgICBzLT5zcltzLT5zcl9pbmRleF0gPSB2
YWwgJiBzcl9tYXNrW3MtPnNyX2luZGV4XSA7Ci0gICAgICAgIGJyZWFrOwot
CiAgICAgY2FzZSAweDNjZTogICAgICAgICAgICAgICAgIC8qIGdyYXBoaWNz
IGFkZHJlc3MgcmVnaXN0ZXIgKi8KICAgICAgICAgcy0+Z3JfaW5kZXggPSB2
YWw7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2h2bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2h2bS9pby5oCmluZGV4IDZhMzRlYTgyZjQwMi4uZDgzMTBmMGZlNDky
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lv
LmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBA
IC0xMTIsNyArMTEyLDYgQEAgc3RydWN0IHZwY2lfYXJjaF9tc2l4X2VudHJ5
IHsKIAogc3RydWN0IGh2bV9od19zdGR2Z2EgewogICAgIHVpbnQ4X3Qgc3Jf
aW5kZXg7Ci0gICAgdWludDhfdCBzcls4XTsKICAgICB1aW50OF90IGdyX2lu
ZGV4OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnZyYW1fcGFnZVs2NF07ICAv
KiBzaGFkb3cgb2YgMHhhMDAwMC0weGFmZmZmICovCiAgICAgc3BpbmxvY2tf
dCBsb2NrOwo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-06.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ7ZyxzfXJfaW5kZXgiIHN0cnVj
dCBtZW1iZXJzCgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBw
cm9kdWNlciBhbmQgdGhlIGZpZWxkcyB0aGVtc2VsdmVzIGNhbgphbHNvIGdv
IGF3YXkuIHN0ZHZnYV9vdXRiKCkgaXMgdGhlbiB1c2VsZXNzLCByZW5kZXJp
bmcgc3RkdmdhX291dCgpCnVzZWxlc3MgYXMgd2VsbC4gSGVuY2UgdGhlIGVu
dGlyZSBJL08gcG9ydCBpbnRlcmNlcHQgY2FuIGdvIGF3YXkuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTQ2MyAvIENWRS0yMDI0LTQ1ODE4CgpTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
LWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t
PgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4NmMwMzM3MmUxMDdmNWMx
ODI2NmE2MjI4MTY2Mzg2MWIxMTQ0OTI5KQoKZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCmluZGV4IDU1MjNhNDQxZGQ4Zi4uMTU1YTY3YTQzOGQ4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3RkdmdhLmMKQEAgLTM3LDYyICszNyw2IEBACiAjZGVmaW5l
IFZHQV9NRU1fQkFTRSAweGEwMDAwCiAjZGVmaW5lIFZHQV9NRU1fU0laRSAw
eDIwMDAwCiAKLXN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRk
ciwgdWludDhfdCB2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2Eg
KnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0gICAg
aW50IHJjID0gMTsKLQotICAgIHN3aXRjaCAoIGFkZHIgKQotICAgIHsKLSAg
ICBjYXNlIDB4M2M0OiAgICAgICAgICAgICAgICAgLyogc2VxdWVuY2VyIGFk
ZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAgICAgcy0+c3JfaW5kZXggPSB2YWw7
Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSAweDNjZTogICAgICAgICAg
ICAgICAgIC8qIGdyYXBoaWNzIGFkZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAg
ICAgcy0+Z3JfaW5kZXggPSB2YWw7Ci0gICAgICAgIGJyZWFrOwotCi0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcmMgPSAwOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyB2b2lkIHN0ZHZn
YV9vdXQodWludDMyX3QgcG9ydCwgdWludDMyX3QgYnl0ZXMsIHVpbnQzMl90
IHZhbCkKLXsKLSAgICBzd2l0Y2ggKCBieXRlcyApCi0gICAgewotICAgIGNh
c2UgMToKLSAgICAgICAgc3RkdmdhX291dGIocG9ydCwgdmFsKTsKLSAgICAg
ICAgYnJlYWs7Ci0KLSAgICBjYXNlIDI6Ci0gICAgICAgIHN0ZHZnYV9vdXRi
KHBvcnQgKyAwLCB2YWwgPj4gMCk7Ci0gICAgICAgIHN0ZHZnYV9vdXRiKHBv
cnQgKyAxLCB2YWwgPj4gOCk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgZGVm
YXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMgaW50
IGNmX2NoZWNrIHN0ZHZnYV9pbnRlcmNlcHRfcGlvKAotICAgIGludCBkaXIs
IHVuc2lnbmVkIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgYnl0ZXMsIHVpbnQz
Ml90ICp2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAm
Y3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0KLSAgICBpZiAo
IGRpciA9PSBJT1JFUV9XUklURSApCi0gICAgewotICAgICAgICBzcGluX2xv
Y2soJnMtPmxvY2spOwotICAgICAgICBzdGR2Z2Ffb3V0KHBvcnQsIGJ5dGVz
LCAqdmFsKTsKLSAgICAgICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOwotICAg
IH0KLQotICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsgLyogcHJv
cGFnYXRlIHRvIGV4dGVybmFsIGlvZW11ICovCi19Ci0KIHN0YXRpYyBpbnQg
Y2ZfY2hlY2sgc3RkdmdhX21lbV9yZWFkKAogICAgIGNvbnN0IHN0cnVjdCBo
dm1faW9faGFuZGxlciAqaGFuZGxlciwgdWludDY0X3QgYWRkciwgdWludDMy
X3Qgc2l6ZSwKICAgICB1aW50NjRfdCAqcF9kYXRhKQpAQCAtMTk0LDExICsx
MzgsNiBAQCB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAg
ICAgewogICAgICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXI7
CiAKLSAgICAgICAgLyogU2VxdWVuY2VyIHJlZ2lzdGVycy4gKi8KLSAgICAg
ICAgcmVnaXN0ZXJfcG9ydGlvX2hhbmRsZXIoZCwgMHgzYzQsIDIsIHN0ZHZn
YV9pbnRlcmNlcHRfcGlvKTsKLSAgICAgICAgLyogR3JhcGhpY3MgcmVnaXN0
ZXJzLiAqLwotICAgICAgICByZWdpc3Rlcl9wb3J0aW9faGFuZGxlcihkLCAw
eDNjZSwgMiwgc3RkdmdhX2ludGVyY2VwdF9waW8pOwotCiAgICAgICAgIC8q
IFZHQSBtZW1vcnkgKi8KICAgICAgICAgaGFuZGxlciA9IGh2bV9uZXh0X2lv
X2hhbmRsZXIoZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9odm0vaW8uaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9o
dm0vaW8uaAppbmRleCBkODMxMGYwZmU0OTIuLmVjNTVjOTNkMmYyZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaApAQCAtMTEx
LDggKzExMSw2IEBAIHN0cnVjdCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiB9
OwogCiBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7Ci0gICAgdWludDhfdCBzcl9p
bmRleDsKLSAgICB1aW50OF90IGdyX2luZGV4OwogICAgIHN0cnVjdCBwYWdl
X2luZm8gKnZyYW1fcGFnZVs2NF07ICAvKiBzaGFkb3cgb2YgMHhhMDAwMC0w
eGFmZmZmICovCiAgICAgc3BpbmxvY2tfdCBsb2NrOwogfTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-07.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ2cmFtX3BhZ2VbXSIgc3RydWN0
IG1lbWJlcgoKTm8gdXNlcyBhcmUgbGVmdCwgaGVuY2UgaXRzIHNldHVwLCB0
ZWFyZG93biwgYW5kIHRoZSBmaWVsZCBpdHNlbGYgY2FuCmFsc28gZ28gYXdh
eS4gc3RkdmdhX2RlaW5pdCgpIGlzIHRoZW4gZW1wdHkgYW5kIGNhbiBiZSBk
cm9wcGVkIGFzIHdlbGwuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTQ2MyAvIENW
RS0yMDI0LTQ1ODE4CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl
dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCAzYmViNGJhZjJhMGEyZWVmNDBkMzllYjdlNmVlY2JmZDM2ZGE1
ZDE0KQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94
ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDhmMjkzZjRmZWI2NS4uMzY2
MmUyM2NiNjA0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTY4NSw3ICs2ODUs
NiBAQCBpbnQgaHZtX2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g
KmQsCiAgICAgcmV0dXJuIDA7CiAKICBmYWlsMjoKLSAgICBzdGR2Z2FfZGVp
bml0KGQpOwogICAgIHZpb2FwaWNfZGVpbml0KGQpOwogIGZhaWwxOgogICAg
IGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKQEAgLTc0OCw3ICs3NDcs
NiBAQCB2b2lkIGh2bV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpk
KQogICAgIGlmICggaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95ICkKICAgICAg
ICAgYWx0ZXJuYXRpdmVfdmNhbGwoaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95
LCBkKTsKIAotICAgIHN0ZHZnYV9kZWluaXQoZCk7CiAgICAgdmlvYXBpY19k
ZWluaXQoZCk7CiAKICAgICBYRlJFRShkLT5hcmNoLmh2bS5wbF90aW1lKTsK
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4IDE1NWE2N2E0MzhkOC4uOWYz
MDhmYzg5Njc5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKQEAgLTExNiw4
ICsxMTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19vcHMgc3Rk
dmdhX21lbV9vcHMgPSB7CiB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21h
aW4gKmQpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+
YXJjaC5odm0uc3RkdmdhOwotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwot
ICAgIHVuc2lnbmVkIGludCBpOworICAgIHN0cnVjdCBodm1faW9faGFuZGxl
ciAqaGFuZGxlcjsKIAogICAgIGlmICggIWhhc192dmdhKGQpICkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTI1LDQ3ICsxMjQsMTUgQEAgdm9pZCBzdGR2Z2Ff
aW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIG1lbXNldChzLCAwLCBzaXpl
b2YoKnMpKTsKICAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7CiAgICAg
Ci0gICAgZm9yICggaSA9IDA7IGkgIT0gQVJSQVlfU0laRShzLT52cmFtX3Bh
Z2UpOyBpKysgKQorICAgIC8qIFZHQSBtZW1vcnkgKi8KKyAgICBoYW5kbGVy
ID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKKyAgICBpZiAoIGhhbmRsZXIg
KQogICAgIHsKLSAgICAgICAgcGcgPSBhbGxvY19kb21oZWFwX3BhZ2UoZCwg
TUVNRl9ub19vd25lcik7Ci0gICAgICAgIGlmICggcGcgPT0gTlVMTCApCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgcy0+dnJhbV9wYWdlW2ldID0g
cGc7Ci0gICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBhZ2VfdG9fbWZuKHBn
KSk7Ci0gICAgfQotCi0gICAgaWYgKCBpID09IEFSUkFZX1NJWkUocy0+dnJh
bV9wYWdlKSApCi0gICAgewotICAgICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRs
ZXIgKmhhbmRsZXI7Ci0KLSAgICAgICAgLyogVkdBIG1lbW9yeSAqLwotICAg
ICAgICBoYW5kbGVyID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKLQotICAg
ICAgICBpZiAoIGhhbmRsZXIgPT0gTlVMTCApCi0gICAgICAgICAgICByZXR1
cm47Ci0KICAgICAgICAgaGFuZGxlci0+dHlwZSA9IElPUkVRX1RZUEVfQ09Q
WTsKICAgICAgICAgaGFuZGxlci0+b3BzID0gJnN0ZHZnYV9tZW1fb3BzOwog
ICAgIH0KIH0KIAotdm9pZCBzdGR2Z2FfZGVpbml0KHN0cnVjdCBkb21haW4g
KmQpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+YXJj
aC5odm0uc3RkdmdhOwotICAgIGludCBpOwotCi0gICAgaWYgKCAhaGFzX3Z2
Z2EoZCkgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKCBpID0gMDsg
aSAhPSBBUlJBWV9TSVpFKHMtPnZyYW1fcGFnZSk7IGkrKyApCi0gICAgewot
ICAgICAgICBpZiAoIHMtPnZyYW1fcGFnZVtpXSA9PSBOVUxMICkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShz
LT52cmFtX3BhZ2VbaV0pOwotICAgICAgICBzLT52cmFtX3BhZ2VbaV0gPSBO
VUxMOwotICAgIH0KLX0KLQogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAq
IG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9odm0vaW8uaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8u
aAppbmRleCBlYzU1YzkzZDJmMmUuLjk1ODA3N2RlODFiZCAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCisrKyBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaApAQCAtMTExLDEyICsx
MTEsMTAgQEAgc3RydWN0IHZwY2lfYXJjaF9tc2l4X2VudHJ5IHsKIH07CiAK
IHN0cnVjdCBodm1faHdfc3RkdmdhIHsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZv
ICp2cmFtX3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAtMHhhZmZm
ZiAqLwogICAgIHNwaW5sb2NrX3QgbG9jazsKIH07CiAKIHZvaWQgc3Rkdmdh
X2luaXQoc3RydWN0IGRvbWFpbiAqZCk7Ci12b2lkIHN0ZHZnYV9kZWluaXQo
c3RydWN0IGRvbWFpbiAqZCk7CiAKIGV4dGVybiB2b2lkIGh2bV9kcGNpX21z
aV9lb2koc3RydWN0IGRvbWFpbiAqZCwgaW50IHZlY3Rvcik7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-08.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJsb2NrIiBzdHJ1Y3QgbWVtYmVy
CgpObyBzdGF0ZSBpcyBsZWZ0IHRvIHByb3RlY3QuIEl0IGJlaW5nIHRoZSBs
YXN0IGZpZWxkLCBkcm9wIHRoZSBzdHJ1Y3QKaXRzZWxmIGFzIHdlbGwuIFNp
bWlsYXJseSBmb3IgdGhlbiBlbmRpbmcgdXAgZW1wdHksIGRyb3AgdGhlIC5j
b21wbGV0ZQpoYW5kbGVyLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRy
ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5
IHBpY2tlZCBmcm9tIGNvbW1pdCBiMTgwYTUwMzI2YzhhMmMxNzFmMzdjMTk0
MGEwZmJiZGNhZDRiZTkwKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o
dm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4
IDlmMzA4ZmM4OTY3OS4uZDM4ZDMwYWZmYmZmIDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKQEAgLTY5LDYxICs2OSwzNSBAQCBzdGF0aWMgaW50IGNmX2No
ZWNrIHN0ZHZnYV9tZW1fd3JpdGUoCiBzdGF0aWMgYm9vbCBjZl9jaGVjayBz
dGR2Z2FfbWVtX2FjY2VwdCgKICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hh
bmRsZXIgKmhhbmRsZXIsIGNvbnN0IGlvcmVxX3QgKnApCiB7Ci0gICAgc3Ry
dWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNo
Lmh2bS5zdGR2Z2E7Ci0KLSAgICAvKgotICAgICAqIFRoZSByYW5nZSBjaGVj
ayBtdXN0IGJlIGRvbmUgd2l0aG91dCB0YWtpbmcgdGhlIGxvY2ssIHRvIGF2
b2lkCi0gICAgICogZGVhZGxvY2sgd2hlbiBodm1fbW1pb19pbnRlcm5hbCgp
IGlzIGNhbGxlZCBmcm9tCi0gICAgICogaHZtX2NvcHlfdG8vZnJvbV9ndWVz
dF9waHlzKCkgaW4gaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0KCkuCi0gICAg
ICovCiAgICAgaWYgKCAoaW9yZXFfbW1pb19maXJzdF9ieXRlKHApIDwgVkdB
X01FTV9CQVNFKSB8fAogICAgICAgICAgKGlvcmVxX21taW9fbGFzdF9ieXRl
KHApID49IChWR0FfTUVNX0JBU0UgKyBWR0FfTUVNX1NJWkUpKSApCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKLQog
ICAgIGlmICggcC0+ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFfaXNf
cHRyIHx8IHAtPmNvdW50ICE9IDEgKQogICAgIHsKICAgICAgICAgLyoKICAg
ICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMsIGFz
IHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KICAgICAgICAgICogYWNj
ZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KICAgICAg
ICAgICovCi0gICAgICAgIGdvdG8gcmVqZWN0OworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgLyogcy0+bG9jayBpbnRlbnRpb25hbGx5
IGhlbGQgKi8KLSAgICByZXR1cm4gMTsKLQotIHJlamVjdDoKLSAgICBzcGlu
X3VubG9jaygmcy0+bG9jayk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRp
YyB2b2lkIGNmX2NoZWNrIHN0ZHZnYV9tZW1fY29tcGxldGUoY29uc3Qgc3Ry
dWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyKQotewotICAgIHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0u
c3RkdmdhOwotCi0gICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOworICAgIHJl
dHVybiB0cnVlOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19v
cHMgc3RkdmdhX21lbV9vcHMgPSB7CiAgICAgLmFjY2VwdCA9IHN0ZHZnYV9t
ZW1fYWNjZXB0LAogICAgIC5yZWFkID0gc3RkdmdhX21lbV9yZWFkLAogICAg
IC53cml0ZSA9IHN0ZHZnYV9tZW1fd3JpdGUsCi0gICAgLmNvbXBsZXRlID0g
c3RkdmdhX21lbV9jb21wbGV0ZQogfTsKIAogdm9pZCBzdGR2Z2FfaW5pdChz
dHJ1Y3QgZG9tYWluICpkKQogewotICAgIHN0cnVjdCBodm1faHdfc3Rkdmdh
ICpzID0gJmQtPmFyY2guaHZtLnN0ZHZnYTsKICAgICBzdHJ1Y3QgaHZtX2lv
X2hhbmRsZXIgKmhhbmRsZXI7CiAKICAgICBpZiAoICFoYXNfdnZnYShkKSAp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1lbXNldChzLCAwLCBzaXplb2Yo
KnMpKTsKLSAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7Ci0gICAgCiAg
ICAgLyogVkdBIG1lbW9yeSAqLwogICAgIGhhbmRsZXIgPSBodm1fbmV4dF9p
b19oYW5kbGVyKGQpOwogICAgIGlmICggaGFuZGxlciApCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAppbmRleCBkZDlk
ODM3ZTg0MzEuLjMzMzUwMWQ1ZjJhYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAorKysgYi94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oCkBAIC03Miw3ICs3Miw2IEBA
IHN0cnVjdCBodm1fZG9tYWluIHsKICAgICBzdHJ1Y3QgaHZtX2h3X3ZwaWMg
ICAgIHZwaWNbMl07IC8qIDA9bWFzdGVyOyAxPXNsYXZlICovCiAgICAgc3Ry
dWN0IGh2bV92aW9hcGljICAgICoqdmlvYXBpYzsKICAgICB1bnNpZ25lZCBp
bnQgICAgICAgICAgIG5yX3Zpb2FwaWNzOwotICAgIHN0cnVjdCBodm1faHdf
c3RkdmdhICAgc3RkdmdhOwogCiAgICAgLyoKICAgICAgKiBodm1faHdfcG10
aW1lciBpcyBhIHB1YmxpY2x5LXZpc2libGUgbmFtZS4gV2Ugd2lsbCBkZWZl
ciByZW5hbWluZwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2h2bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9p
by5oCmluZGV4IDk1ODA3N2RlODFiZC4uZDEyM2U3YzllZGQ4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKKysrIGIv
eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBAIC0xMTAsMTAg
KzExMCw2IEBAIHN0cnVjdCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiAgICAg
aW50IHBpcnE7CiB9OwogCi1zdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7Ci0gICAg
c3BpbmxvY2tfdCBsb2NrOwotfTsKLQogdm9pZCBzdGR2Z2FfaW5pdChzdHJ1
Y3QgZG9tYWluICpkKTsKIAogZXh0ZXJuIHZvaWQgaHZtX2RwY2lfbXNpX2Vv
aShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgdmVjdG9yKTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.18-09.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.18-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L2h2bTogU2ltcGxpZnkgc3RkdmdhX21lbV9hY2Nl
cHQoKSBmdXJ0aGVyCgpzdGR2Z2FfbWVtX2FjY2VwdCgpIGlzIGNhbGxlZCBv
biBhbG1vc3QgYWxsIElPIGVtdWxhdGlvbnMsIGFuZCB0aGUKb3ZlcndoZWxt
aW5nIGxpa2VseSBhbnN3ZXIgaXMgdG8gcmVqZWN0IHRoZSBpb3JlcS4gIFNp
bXBseSByZWFycmFuZ2luZyB0aGUKZXhwcmVzc2lvbiB5aWVsZHMgYW4gaW1w
cm92ZW1lbnQ6CgogIGFkZC9yZW1vdmU6IDAvMCBncm93L3NocmluazogMC8x
IHVwL2Rvd246IDAvLTU3ICgtNTcpCiAgRnVuY3Rpb24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQog
IHN0ZHZnYV9tZW1fYWNjZXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEwOSAgICAgIDUyICAgICAtNTcKCndoaWNoIGlzIGJlc3QgZXhwbGFpbmVk
IGxvb2tpbmcgYXQgdGhlIGRpc2Fzc2VtYmx5OgoKICBCZWZvcmU6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFmdGVyOgogIGYzIDBmIDFlIGZhICAgICAgICAgICBlbmRicjY0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZjMgMGYgMWUgZmEgICAgICAgICAg
IGVuZGJyNjQKICAwZiBiNiA0ZSAxZSAgICAgICAgICAgbW92emJsIDB4MWUo
JXJzaSksJWVjeCAgICAgICAgICAgIHwgIDBmIGI2IDQ2IDFlICAgICAgICAg
ICBtb3Z6YmwgMHgxZSglcnNpKSwlZWF4CiAgNDggOGIgMTYgICAgICAgICAg
ICAgIG1vdiAgICAoJXJzaSksJXJkeCAgICAgICAgICAgICAgICB8ICAzMSBk
MiAgICAgICAgICAgICAgICAgeG9yICAgICVlZHgsJWVkeAogIGY2IGMxIDQw
ICAgICAgICAgICAgICB0ZXN0ICAgJDB4NDAsJWNsICAgICAgICAgICAgICAg
ICAgfCAgYTggMzAgICAgICAgICAgICAgICAgIHRlc3QgICAkMHgzMCwlYWwK
ICA3NSAzOCAgICAgICAgICAgICAgICAgam5lICAgIDxzdGR2Z2FfbWVtX2Fj
Y2VwdCsweDQ4PiAgIHwgIDc1IDIzICAgICAgICAgICAgICAgICBqbmUgICAg
PHN0ZHZnYV9tZW1fYWNjZXB0KzB4MzE+CiAgMzEgYzAgICAgICAgICAgICAg
ICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDgg
ODEgZmEgZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcmR4ICAgICAg
ICAgICAgICA8CiAgNzYgMjYgICAgICAgICAgICAgICAgIGpiZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgOGIgNDYgMTQgICAgICAgICAg
ICAgIG1vdiAgICAweDE0KCVyc2kpLCVlYXggICAgICAgICAgICA8CiAgOGIg
N2UgMTAgICAgICAgICAgICAgIG1vdiAgICAweDEwKCVyc2kpLCVlZGkgICAg
ICAgICAgICA8CiAgNDggMGYgYWYgYzcgICAgICAgICAgIGltdWwgICAlcmRp
LCVyYXggICAgICAgICAgICAgICAgICA8CiAgNDggOGQgNTQgMDIgZmYgICAg
ICAgIGxlYSAgICAtMHgxKCVyZHgsJXJheCwxKSwlcmR4ICAgICA8CiAgMzEg
YzAgICAgICAgICAgICAgICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAg
ICAgICAgICA8CiAgNDggODEgZmEgZmYgZmYgMGIgMDAgIGNtcCAgICAkMHhi
ZmZmZiwlcmR4ICAgICAgICAgICAgICA8CiAgNzcgMGMgICAgICAgICAgICAg
ICAgIGphICAgICA8c3RkdmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMg
ZTEgMzAgICAgICAgICAgICAgIGFuZCAgICAkMHgzMCwlZWN4ICAgICAgICAg
ICAgICAgICA8CiAgNzUgMDcgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMgN2UgMTAgMDEgICAgICAg
ICAgIGNtcGwgICAkMHgxLDB4MTAoJXJzaSkgICAgICAgICAgICAgICA4MyA3
ZSAxMCAwMSAgICAgICAgICAgY21wbCAgICQweDEsMHgxMCglcnNpKQogIDBm
IDk0IGMwICAgICAgICAgICAgICBzZXRlICAgJWFsICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgNzUgMWQgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHgzMT4KICBjMyAgICAgICAgICAgICAgICAgICAg
cmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4IDhiIDBl
ICAgICAgICAgICAgICBtb3YgICAgKCVyc2kpLCVyY3gKICA2NiAwZiAxZiA0
NCAwMCAwMCAgICAgbm9wdyAgIDB4MCglcmF4LCVyYXgsMSkgICAgICAgICAg
IHwgIDQ4IDgxIGY5IGZmIGZmIDA5IDAwICBjbXAgICAgJDB4OWZmZmYsJXJj
eAogIDhiIDQ2IDEwICAgICAgICAgICAgICBtb3YgICAgMHgxMCglcnNpKSwl
ZWF4ICAgICAgICAgICAgfCAgNzYgMTEgICAgICAgICAgICAgICAgIGpiZSAg
ICA8c3RkdmdhX21lbV9hY2NlcHQrMHgzMT4KICA4YiA3ZSAxNCAgICAgICAg
ICAgICAgbW92ICAgIDB4MTQoJXJzaSksJWVkaSAgICAgICAgICAgIHwgIDhi
IDQ2IDE0ICAgICAgICAgICAgICBtb3YgICAgMHgxNCglcnNpKSwlZWF4CiAg
NDkgODkgZDAgICAgICAgICAgICAgIG1vdiAgICAlcmR4LCVyOCAgICAgICAg
ICAgICAgICAgICB8ICA0OCA4ZCA0NCAwMSBmZiAgICAgICAgbGVhICAgIC0w
eDEoJXJjeCwlcmF4LDEpLCVyYXgKICA0OCA4MyBlOCAwMSAgICAgICAgICAg
c3ViICAgICQweDEsJXJheCAgICAgICAgICAgICAgICAgIHwgIDQ4IDNkIGZm
IGZmIDBiIDAwICAgICBjbXAgICAgJDB4YmZmZmYsJXJheAogIDQ4IDhkIDU0
IDNhIGZmICAgICAgICBsZWEgICAgLTB4MSglcmR4LCVyZGksMSksJXJkeCAg
ICAgfCAgMGYgOTYgYzIgICAgICAgICAgICAgIHNldGJlICAlZGwKICA0OCAw
ZiBhZiBjNyAgICAgICAgICAgaW11bCAgICVyZGksJXJheCAgICAgICAgICAg
ICAgICAgIHwgIDg5IGQwICAgICAgICAgICAgICAgICBtb3YgICAgJWVkeCwl
ZWF4CiAgNDkgMjkgYzAgICAgICAgICAgICAgIHN1YiAgICAlcmF4LCVyOCAg
ICAgICAgICAgICAgICAgICA8CiAgMzEgYzAgICAgICAgICAgICAgICAgIHhv
ciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDkgODEgZjgg
ZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcjggICAgICAgICAgICAg
ICA8CiAgNzcgYmUgICAgICAgICAgICAgICAgIGphICAgICA8c3RkdmdhX21l
bV9hY2NlcHQrMHgyYT4gICA8CiAgYzMgICAgICAgICAgICAgICAgICAgIHJl
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMyAgICAgICAg
ICAgICAgICAgICAgcmV0CgpCeSBtb3ZpbmcgdGhlICJwLT5jb3VudCAhPSAx
IiBjaGVjayBhaGVhZCBvZiB0aGUKaW9yZXFfbW1pb197Zmlyc3QsbGFzdH1f
Ynl0ZSgpIGNhbGxzLCBib3RoIG11bHRpcGxpZXMgZGlzYXBwZWFyIGFsb25n
IHdpdGggYQpsb3Qgb2Ygc3Vycm91bmRpbmcgbG9naWMuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IDA4ZmZkODcwNWQzNmM3YzQ0NWRmM2VjZWU4YWQ5YjhmOGQ2NWZi
ZTApCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggZDM4ZDMwYWZmYmZm
Li5jM2M0M2Y1OWVlYWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
NjksMTggKzY5LDE0IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgc3RkdmdhX21l
bV93cml0ZSgKIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNj
ZXB0KAogICAgIGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxl
ciwgY29uc3QgaW9yZXFfdCAqcCkKIHsKLSAgICBpZiAoIChpb3JlcV9tbWlv
X2ZpcnN0X2J5dGUocCkgPCBWR0FfTUVNX0JBU0UpIHx8CisgICAgLyoKKyAg
ICAgKiBPbmx5IGFjY2VwdCBzaW5nbGUgZGlyZWN0IHdyaXRlcywgYXMgdGhh
dCdzIHRoZSBvbmx5IHRoaW5nIHdlIGNhbgorICAgICAqIGFjY2VsZXJhdGUg
dXNpbmcgYnVmZmVyZWQgaW9yZXEgaGFuZGxpbmcuCisgICAgICovCisgICAg
aWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJVEUgfHwgcC0+ZGF0YV9pc19wdHIg
fHwgcC0+Y291bnQgIT0gMSB8fAorICAgICAgICAgKGlvcmVxX21taW9fZmly
c3RfYnl0ZShwKSA8IFZHQV9NRU1fQkFTRSkgfHwKICAgICAgICAgIChpb3Jl
cV9tbWlvX2xhc3RfYnl0ZShwKSA+PSAoVkdBX01FTV9CQVNFICsgVkdBX01F
TV9TSVpFKSkgKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICggcC0+
ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFfaXNfcHRyIHx8IHAtPmNv
dW50ICE9IDEgKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogT25s
eSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMsIGFzIHRoYXQncyB0aGUg
b25seSB0aGluZyB3ZSBjYW4KLSAgICAgICAgICogYWNjZWxlcmF0ZSB1c2lu
ZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KLSAgICAgICAgICovCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0K

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-01.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJjYWNoZSIgc3RydWN0IG1lbWJl
cgoKU2luY2UgNjhlMTE4MzQxMWJlICgibGlieGM6IGludHJvZHVjZSBhIHhj
X2RvbV9hcmNoIGZvciBodm0tMy4wLXg4Nl8zMgpndWVzdHMiKSwgSFZNIGd1
ZXN0cyBhcmUgYnVpbHQgdXNpbmcgWEVOX0RPTUNUTF9zZXRodm1jb250ZXh0
LCB3aGljaAplbmRzIHVwIGRpc2FibGluZyBzdGR2Z2EgY2FjaGluZyBiZWNh
dXNlIG9mIGFyY2hfaHZtX2xvYWQoKSBiZWluZwppbnZvbHZlZCBpbiB0aGUg
cHJvY2Vzc2luZyBvZiB0aGUgcmVxdWVzdC4gV2l0aCB0aGF0IHRoZSBmaWVs
ZCBpcwp1c2VsZXNzLCBhbmQgY2FuIGJlIGRyb3BwZWQuIERyb3AgdGhlIGhl
bHBlciBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIC8KY2hlY2tpbmcgYXMgd2Vs
bCByaWdodCBhd2F5LCBidXQgbGVhdmUgdGhlIHVzZSBzaXRlcyBvZgpzdGR2
Z2FfY2FjaGVfaXNfZW5hYmxlZCgpIHdpdGggdGhlIGhhcmQtY29kZWQgcmVz
dWx0IHRoZSBmdW5jdGlvbiB3b3VsZApoYXZlIHByb2R1Y2VkLCB0byBhaWQg
dmFsaWRhdGlvbiBvZiBzdWJzZXF1ZW50IGRyb3BwaW5nIG9mIGZ1cnRoZXIg
Y29kZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZFLTIwMjQtNDU4
MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w
ZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDUz
YjcyNDZiZGZiM2MyODBhZGNkZjcxNDkxOGU0ZGVjYjdlMTA4ZjQpCgpkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMgYi94ZW4vYXJjaC94
ODYvaHZtL3NhdmUuYwppbmRleCA5OWFhZjNmYzMzNWIuLjhhYjY0MDU3MDY0
ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKKysrIGIv
eGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKQEAgLTY5LDkgKzY5LDYgQEAgc3Rh
dGljIHZvaWQgYXJjaF9odm1fbG9hZChzdHJ1Y3QgZG9tYWluICpkLCBjb25z
dCBzdHJ1Y3QgaHZtX3NhdmVfaGVhZGVyICpoZHIpCiAKICAgICAvKiBUaW1l
IHdoZW4gcmVzdG9yZSBzdGFydGVkICAqLwogICAgIGQtPmFyY2guaHZtLnN5
bmNfdHNjID0gcmR0c2MoKTsKLQotICAgIC8qIFZHQSBzdGF0ZSBpcyBub3Qg
c2F2ZWQvcmVzdG9yZWQsIHNvIHdlIG5vYmJsZSB0aGUgY2FjaGUuICovCi0g
ICAgZC0+YXJjaC5odm0uc3RkdmdhLmNhY2hlID0gU1REVkdBX0NBQ0hFX0RJ
U0FCTEVEOwogfQogCiAvKiBMaXN0IG9mIGhhbmRsZXJzIGZvciB2YXJpb3Vz
IEhWTSBzYXZlIGFuZCByZXN0b3JlIHR5cGVzICovCmRpZmYgLS1naXQgYS94
ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jIGIveGVuL2FyY2gveDg2L2h2bS9z
dGR2Z2EuYwppbmRleCA1ZjAyZDg4NjE1M2QuLjI1MjBkMGRkMDE4NCAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYworKysgYi94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBAIC0xMDAsMzcgKzEwMCw2IEBAIHN0
YXRpYyB2b2lkIHZyYW1fcHV0KHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB2
b2lkICpwKQogICAgIHVubWFwX2RvbWFpbl9wYWdlKHApOwogfQogCi1zdGF0
aWMgdm9pZCBzdGR2Z2FfdHJ5X2NhY2hlX2VuYWJsZShzdHJ1Y3QgaHZtX2h3
X3N0ZHZnYSAqcykKLXsKLSAgICAvKgotICAgICAqIENhY2hpbmcgbW9kZSBj
YW4gb25seSBiZSBlbmFibGVkIGlmIHRoZSB0aGUgY2FjaGUgaGFzCi0gICAg
ICogbmV2ZXIgYmVlbiB1c2VkIGJlZm9yZS4gQXMgc29vbiBhcyBpdCBpcyBk
aXNhYmxlZCwgaXQgd2lsbAotICAgICAqIGJlY29tZSBvdXQtb2Ytc3luYyB3
aXRoIHRoZSBWR0EgZGV2aWNlIG1vZGVsIGFuZCBzaW5jZSBubwotICAgICAq
IG1lY2hhbmlzbSBleGlzdHMgdG8gYWNxdWlyZSBjdXJyZW50IFZSQU0gc3Rh
dGUgZnJvbSB0aGUKLSAgICAgKiBkZXZpY2UgbW9kZWwsIHJlLWVuYWJsaW5n
IGl0IHdvdWxkIGxlYWQgdG8gc3RhbGUgZGF0YSBiZWluZwotICAgICAqIHNl
ZW4gYnkgdGhlIGd1ZXN0LgotICAgICAqLwotICAgIGlmICggcy0+Y2FjaGUg
IT0gU1REVkdBX0NBQ0hFX1VOSU5JVElBTElaRUQgKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgImVudGVyaW5nIGNh
Y2hpbmcgbW9kZVxuIik7Ci0gICAgcy0+Y2FjaGUgPSBTVERWR0FfQ0FDSEVf
RU5BQkxFRDsKLX0KLQotc3RhdGljIHZvaWQgc3RkdmdhX2NhY2hlX2Rpc2Fi
bGUoc3RydWN0IGh2bV9od19zdGR2Z2EgKnMpCi17Ci0gICAgaWYgKCBzLT5j
YWNoZSAhPSBTVERWR0FfQ0FDSEVfRU5BQkxFRCApCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGdkcHJpbnRrKFhFTkxPR19JTkZPLCAibGVhdmluZyBjYWNo
aW5nIG1vZGVcbiIpOwotICAgIHMtPmNhY2hlID0gU1REVkdBX0NBQ0hFX0RJ
U0FCTEVEOwotfQotCi1zdGF0aWMgYm9vbCBzdGR2Z2FfY2FjaGVfaXNfZW5h
YmxlZChjb25zdCBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcykKLXsKLSAgICBy
ZXR1cm4gcy0+Y2FjaGUgPT0gU1REVkdBX0NBQ0hFX0VOQUJMRUQ7Ci19Ci0K
IHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwgdWludDhf
dCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3Vy
cmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC0xNzAsNyArMTM5
LDYgQEAgc3RhdGljIGludCBzdGR2Z2Ffb3V0Yih1aW50NjRfdCBhZGRyLCB1
aW50OF90IHZhbCkKICAgICBpZiAoICFwcmV2X3N0ZHZnYSAmJiBzLT5zdGR2
Z2EgKQogICAgIHsKICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0lORk8sICJl
bnRlcmluZyBzdGR2Z2EgbW9kZVxuIik7Ci0gICAgICAgIHN0ZHZnYV90cnlf
Y2FjaGVfZW5hYmxlKHMpOwogICAgIH0KICAgICBlbHNlIGlmICggcHJldl9z
dGR2Z2EgJiYgIXMtPnN0ZHZnYSApCiAgICAgewpAQCAtNDY4LDcgKzQzNiw3
IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgc3RkdmdhX21lbV93cml0ZSgKICAg
ICB9OwogICAgIHN0cnVjdCBpb3JlcV9zZXJ2ZXIgKnNydjsKIAotICAgIGlm
ICggIXN0ZHZnYV9jYWNoZV9pc19lbmFibGVkKHMpIHx8ICFzLT5zdGR2Z2Eg
KQorICAgIGlmICggdHJ1ZSB8fCAhcy0+c3RkdmdhICkKICAgICAgICAgZ290
byBkb25lOwogCiAgICAgLyogSW50ZXJjZXB0IG1taW8gd3JpdGUgKi8KQEAg
LTUzNiwxOCArNTA0LDEyIEBAIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZn
YV9tZW1fYWNjZXB0KAogICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIFg4
NkVNVUxfVU5IQU5ETEVBQkxFIG9uIGFueXRoaW5nIG90aGVyIHRoZW4gdGhl
CiAgICAgICAgICAqIGZpcnN0IGN5Y2xlIG9mIGFuIEkvTy4gU28sIHNpbmNl
IHdlIGNhbm5vdCBndWFyYW50ZWUgdG8gYWx3YXlzIGJlCiAgICAgICAgICAq
IGFibGUgdG8gc2VuZCBidWZmZXJlZCB3cml0ZXMsIHdlIGhhdmUgdG8gcmVq
ZWN0IGFueSBtdWx0aS1jeWNsZQotICAgICAgICAgKiBvciAiaW5kaXJlY3Qi
IEkvTyBhbmQsIHNpbmNlIHdlIGFyZSByZWplY3RpbmcgYW4gSS9PLCB3ZSBt
dXN0Ci0gICAgICAgICAqIGludmFsaWRhdGUgdGhlIGNhY2hlLgotICAgICAg
ICAgKiBTaW5nbGUtY3ljbGUgd3JpdGUgdHJhbnNhY3Rpb25zIGFyZSBhY2Nl
cHRlZCBldmVuIGlmIHRoZSBjYWNoZSBpcwotICAgICAgICAgKiBub3QgYWN0
aXZlIHNpbmNlIHdlIGNhbiBhc3NlcnQsIHdoZW4gaW4gc3RkdmdhIG1vZGUs
IHRoYXQgd3JpdGVzCi0gICAgICAgICAqIHRvIFZSQU0gaGF2ZSBubyBzaWRl
IGVmZmVjdCBhbmQgdGh1cyB3ZSBjYW4gdHJ5IHRvIGJ1ZmZlciB0aGVtLgor
ICAgICAgICAgKiBvciAiaW5kaXJlY3QiIEkvTy4KICAgICAgICAgICovCi0g
ICAgICAgIHN0ZHZnYV9jYWNoZV9kaXNhYmxlKHMpOwotCiAgICAgICAgIGdv
dG8gcmVqZWN0OwogICAgIH0KICAgICBlbHNlIGlmICggcC0+ZGlyID09IElP
UkVRX1JFQUQgJiYKLSAgICAgICAgICAgICAgKCFzdGR2Z2FfY2FjaGVfaXNf
ZW5hYmxlZChzKSB8fCAhcy0+c3RkdmdhKSApCisgICAgICAgICAgICAgICh0
cnVlIHx8ICFzLT5zdGR2Z2EpICkKICAgICAgICAgZ290byByZWplY3Q7CiAK
ICAgICAvKiBzLT5sb2NrIGludGVudGlvbmFsbHkgaGVsZCAqLwpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCmluZGV4IDI0ZDFiNjEz
NGYwMi4uY2UxNzFlYWNhNDkxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vaHZtL2lvLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2h2bS9pby5oCkBAIC0xMTAsMTkgKzExMCwxMiBAQCBzdHJ1Y3Qg
dnBjaV9hcmNoX21zaXhfZW50cnkgewogICAgIGludCBwaXJxOwogfTsKIAot
ZW51bSBzdGR2Z2FfY2FjaGVfc3RhdGUgewotICAgIFNURFZHQV9DQUNIRV9V
TklOSVRJQUxJWkVELAotICAgIFNURFZHQV9DQUNIRV9FTkFCTEVELAotICAg
IFNURFZHQV9DQUNIRV9ESVNBQkxFRAotfTsKLQogc3RydWN0IGh2bV9od19z
dGR2Z2EgewogICAgIHVpbnQ4X3Qgc3JfaW5kZXg7CiAgICAgdWludDhfdCBz
cls4XTsKICAgICB1aW50OF90IGdyX2luZGV4OwogICAgIHVpbnQ4X3QgZ3Jb
OV07CiAgICAgYm9vbCBzdGR2Z2E7Ci0gICAgZW51bSBzdGR2Z2FfY2FjaGVf
c3RhdGUgY2FjaGU7CiAgICAgdWludDMyX3QgbGF0Y2g7CiAgICAgc3RydWN0
IHBhZ2VfaW5mbyAqdnJhbV9wYWdlWzY0XTsgIC8qIHNoYWRvdyBvZiAweGEw
MDAwLTB4YWZmZmYgKi8KICAgICBzcGlubG9ja190IGxvY2s7Cgo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-02.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzdGR2Z2EiIHN0cnVjdCBtZW1i
ZXIKClR3byBvZiBpdHMgY29uc3VtZXJzIGFyZSBkZWFkIChpbiBjb21waWxl
LXRpbWUgY29uc3RhbnQgY29uZGl0aW9uYWxzKQphbmQgdGhlIG9ubHkgcmVt
YWluaW5nIG9uZXMgYXJlIG1lcmVseSBjb250cm9sbGluZyBkZWJ1ZyBsb2dn
aW5nLiBIZW5jZQp0aGUgZmllbGQgaXMgbm93IHBvaW50bGVzcyB0byBzZXQs
IHdoaWNoIGluIHBhcnRpY3VsYXIgYWxsb3dzIHRvIGdldCByaWQKb2YgdGhl
IHF1ZXN0aW9uYWJsZSBjb25kaXRpb25hbCBmcm9tIHdoaWNoIHRoZSBmaWVs
ZCdzIHZhbHVlIHdhcwplc3RhYmxpc2hlZCAoYWZhaWN0IDU1MWNlZWU5NzUx
MyBbIng4NiwgaHZtOiBzdGR2Z2EgY2FjaGUgYWx3YXlzIG9uIl0KaGFkIGRy
b3BwZWQgdG9vIG11Y2ggb2YgdGhlIGVhcmxpZXIgZXh0cmEgY2hlY2sgdGhh
dCB3YXMgdGhlcmUsIGFuZApxdWl0ZSBsaWtlbHkgZnVydGhlciBjaGVja3Mg
d2VyZSBtaXNzaW5nKS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYzIC8gQ1ZF
LTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1
bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IGI3NDBhOTM2OWU4MWJkZGE2NzVhOTc4MDEzMGNlMmI5ZTc1ZDRl
YzkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggMjUyMGQwZGQwMTg0
Li44YTljZTA1MzQ2NTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
MTAzLDcgKzEwMyw3IEBAIHN0YXRpYyB2b2lkIHZyYW1fcHV0KHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzLCB2b2lkICpwKQogc3RhdGljIGludCBzdGR2Z2Ff
b3V0Yih1aW50NjRfdCBhZGRyLCB1aW50OF90IHZhbCkKIHsKICAgICBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2gu
aHZtLnN0ZHZnYTsKLSAgICBpbnQgcmMgPSAxLCBwcmV2X3N0ZHZnYSA9IHMt
PnN0ZHZnYTsKKyAgICBpbnQgcmMgPSAxOwogCiAgICAgc3dpdGNoICggYWRk
ciApCiAgICAgewpAQCAtMTMyLDE5ICsxMzIsNiBAQCBzdGF0aWMgaW50IHN0
ZHZnYV9vdXRiKHVpbnQ2NF90IGFkZHIsIHVpbnQ4X3QgdmFsKQogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICAvKiBXaGVuIGluIHN0YW5kYXJkIHZn
YSBtb2RlLCBlbXVsYXRlIGhlcmUgYWxsIHdyaXRlcyB0byB0aGUgdnJhbSBi
dWZmZXIKLSAgICAgKiBzbyB3ZSBjYW4gaW1tZWRpYXRlbHkgc2F0aXNmeSBy
ZWFkcyB3aXRob3V0IHdhaXRpbmcgZm9yIHFlbXUuICovCi0gICAgcy0+c3Rk
dmdhID0gKHMtPnNyWzddID09IDB4MDApOwotCi0gICAgaWYgKCAhcHJldl9z
dGR2Z2EgJiYgcy0+c3RkdmdhICkKLSAgICB7Ci0gICAgICAgIGdkcHJpbnRr
KFhFTkxPR19JTkZPLCAiZW50ZXJpbmcgc3RkdmdhIG1vZGVcbiIpOwotICAg
IH0KLSAgICBlbHNlIGlmICggcHJldl9zdGR2Z2EgJiYgIXMtPnN0ZHZnYSAp
Ci0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgImxlYXZp
bmcgc3RkdmdhIG1vZGVcbiIpOwotICAgIH0KLQogICAgIHJldHVybiByYzsK
IH0KIApAQCAtNDI1LDcgKzQxMiw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sg
c3RkdmdhX21lbV93cml0ZSgKICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hh
bmRsZXIgKmhhbmRsZXIsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IHNpemUs
CiAgICAgdWludDY0X3QgZGF0YSkKIHsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0
ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsK
ICAgICBpb3JlcV90IHAgPSB7CiAgICAgICAgIC50eXBlID0gSU9SRVFfVFlQ
RV9DT1BZLAogICAgICAgICAuYWRkciA9IGFkZHIsCkBAIC00MzYsOCArNDIy
LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBzdGR2Z2FfbWVtX3dyaXRlKAog
ICAgIH07CiAgICAgc3RydWN0IGlvcmVxX3NlcnZlciAqc3J2OwogCi0gICAg
aWYgKCB0cnVlIHx8ICFzLT5zdGR2Z2EgKQotICAgICAgICBnb3RvIGRvbmU7
CisgICAgZ290byBkb25lOwogCiAgICAgLyogSW50ZXJjZXB0IG1taW8gd3Jp
dGUgKi8KICAgICBzd2l0Y2ggKCBzaXplICkKQEAgLTQ5OCwxOSArNDgzLDE0
IEBAIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNjZXB0KAog
CiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKIAotICAgIGlmICggcC0+ZGly
ID09IElPUkVRX1dSSVRFICYmIChwLT5kYXRhX2lzX3B0ciB8fCBwLT5jb3Vu
dCAhPSAxKSApCisgICAgaWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJVEUgfHwg
cC0+ZGF0YV9pc19wdHIgfHwgcC0+Y291bnQgIT0gMSApCiAgICAgewogICAg
ICAgICAvKgotICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIFg4NkVNVUxf
VU5IQU5ETEVBQkxFIG9uIGFueXRoaW5nIG90aGVyIHRoZW4gdGhlCi0gICAg
ICAgICAqIGZpcnN0IGN5Y2xlIG9mIGFuIEkvTy4gU28sIHNpbmNlIHdlIGNh
bm5vdCBndWFyYW50ZWUgdG8gYWx3YXlzIGJlCi0gICAgICAgICAqIGFibGUg
dG8gc2VuZCBidWZmZXJlZCB3cml0ZXMsIHdlIGhhdmUgdG8gcmVqZWN0IGFu
eSBtdWx0aS1jeWNsZQotICAgICAgICAgKiBvciAiaW5kaXJlY3QiIEkvTy4K
KyAgICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMs
IGFzIHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KKyAgICAgICAgICog
YWNjZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KICAg
ICAgICAgICovCiAgICAgICAgIGdvdG8gcmVqZWN0OwogICAgIH0KLSAgICBl
bHNlIGlmICggcC0+ZGlyID09IElPUkVRX1JFQUQgJiYKLSAgICAgICAgICAg
ICAgKHRydWUgfHwgIXMtPnN0ZHZnYSkgKQotICAgICAgICBnb3RvIHJlamVj
dDsKIAogICAgIC8qIHMtPmxvY2sgaW50ZW50aW9uYWxseSBoZWxkICovCiAg
ICAgcmV0dXJuIDE7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vaHZtL2lvLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZt
L2lvLmgKaW5kZXggY2UxNzFlYWNhNDkxLi42N2Y0ZDAzM2E3ZjEgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKQEAgLTExNSw3
ICsxMTUsNiBAQCBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7CiAgICAgdWludDhf
dCBzcls4XTsKICAgICB1aW50OF90IGdyX2luZGV4OwogICAgIHVpbnQ4X3Qg
Z3JbOV07Ci0gICAgYm9vbCBzdGR2Z2E7CiAgICAgdWludDMyX3QgbGF0Y2g7
CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqdnJhbV9wYWdlWzY0XTsgIC8qIHNo
YWRvdyBvZiAweGEwMDAwLTB4YWZmZmYgKi8KICAgICBzcGlubG9ja190IGxv
Y2s7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-03.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiByZW1vdmUgdW51c2VkIE1NSU8gaGFuZGxpbmcgY29kZQoK
QWxsIHJlYWQgYWNjZXNzZXMgYXJlIHJlamVjdGVkIGJ5IHRoZSAtPmFjY2Vw
dCBoYW5kbGVyLCB3aGlsZSB3cml0ZXMKYnlwYXNzIHRoZSBidWxrIG9mIHRo
ZSBmdW5jdGlvbiBib2R5LiBEcm9wIHRoZSBkZWFkIGNvZGUsIGxlYXZpbmcg
YW4KYXNzZXJ0aW9uIGluIHRoZSByZWFkIGhhbmRsZXIuCgpBIG51bWJlciBv
ZiBvdGhlciBzdGF0aWMgaXRlbXMgKGFuZCBhIG1hY3JvKSBhcmUgdGhlbiB1
bnJlZmVyZW5jZWQgYW5kCmhlbmNlIGFsc28gbmVlZCAod2FudCkgZHJvcHBp
bmcuIFRoZSBzYW1lIGFwcGxpZXMgdG8gdGhlICJsYXRjaCIgZmllbGQKb2Yg
dGhlIHN0YXRlIHN0cnVjdHVyZS4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDYz
IC8gQ1ZFLTIwMjQtNDU4MTgKClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29w
ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IDg5MTA4NTQ3YWYxZjIzMGI3Mjg5M2I0ODM1MWY5YzEx
MDYxODk2NDkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2
Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggOGE5Y2Uw
NTM0NjU4Li4wZjBiZDEwMDY4MWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9odm0vc3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2Eu
YwpAQCAtMzcsMjYgKzM3LDYgQEAKICNkZWZpbmUgVkdBX01FTV9CQVNFIDB4
YTAwMDAKICNkZWZpbmUgVkdBX01FTV9TSVpFIDB4MjAwMDAKIAotI2RlZmlu
ZSBQQVQoeCkgKHgpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgbWFzazE2WzE2
XSA9IHsKLSAgICBQQVQoMHgwMDAwMDAwMFUpLAotICAgIFBBVCgweDAwMDAw
MGZmVSksCi0gICAgUEFUKDB4MDAwMGZmMDBVKSwKLSAgICBQQVQoMHgwMDAw
ZmZmZlUpLAotICAgIFBBVCgweDAwZmYwMDAwVSksCi0gICAgUEFUKDB4MDBm
ZjAwZmZVKSwKLSAgICBQQVQoMHgwMGZmZmYwMFUpLAotICAgIFBBVCgweDAw
ZmZmZmZmVSksCi0gICAgUEFUKDB4ZmYwMDAwMDBVKSwKLSAgICBQQVQoMHhm
ZjAwMDBmZlUpLAotICAgIFBBVCgweGZmMDBmZjAwVSksCi0gICAgUEFUKDB4
ZmYwMGZmZmZVKSwKLSAgICBQQVQoMHhmZmZmMDAwMFUpLAotICAgIFBBVCgw
eGZmZmYwMGZmVSksCi0gICAgUEFUKDB4ZmZmZmZmMDBVKSwKLSAgICBQQVQo
MHhmZmZmZmZmZlUpLAotfTsKLQogLyogZm9yY2Ugc29tZSBiaXRzIHRvIHpl
cm8gKi8KIHN0YXRpYyBjb25zdCB1aW50OF90IHNyX21hc2tbOF0gPSB7CiAg
ICAgKHVpbnQ4X3QpfjB4ZmMsCkBAIC04MSwyNSArNjEsNiBAQCBzdGF0aWMg
Y29uc3QgdWludDhfdCBncl9tYXNrWzldID0gewogICAgICh1aW50OF90KX4w
eDAwLCAvKiAweDA4ICovCiB9OwogCi1zdGF0aWMgdWludDhfdCAqdnJhbV9n
ZXRiKHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB1bnNpZ25lZCBpbnQgYSkK
LXsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IHMtPnZyYW1fcGFnZVso
YSA+PiAxMikgJiAweDNmXTsKLSAgICB1aW50OF90ICpwID0gX19tYXBfZG9t
YWluX3BhZ2UocGcpOwotICAgIHJldHVybiAmcFthICYgMHhmZmZdOwotfQot
Ci1zdGF0aWMgdWludDMyX3QgKnZyYW1fZ2V0bChzdHJ1Y3QgaHZtX2h3X3N0
ZHZnYSAqcywgdW5zaWduZWQgaW50IGEpCi17Ci0gICAgc3RydWN0IHBhZ2Vf
aW5mbyAqcGcgPSBzLT52cmFtX3BhZ2VbKGEgPj4gMTApICYgMHgzZl07Ci0g
ICAgdWludDMyX3QgKnAgPSBfX21hcF9kb21haW5fcGFnZShwZyk7Ci0gICAg
cmV0dXJuICZwW2EgJiAweDNmZl07Ci19Ci0KLXN0YXRpYyB2b2lkIHZyYW1f
cHV0KHN0cnVjdCBodm1faHdfc3RkdmdhICpzLCB2b2lkICpwKQotewotICAg
IHVubWFwX2RvbWFpbl9wYWdlKHApOwotfQotCiBzdGF0aWMgaW50IHN0ZHZn
YV9vdXRiKHVpbnQ2NF90IGFkZHIsIHVpbnQ4X3QgdmFsKQogewogICAgIHN0
cnVjdCBodm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJj
aC5odm0uc3RkdmdhOwpAQCAtMTY4LDI0NCArMTI5LDEzIEBAIHN0YXRpYyBp
bnQgY2ZfY2hlY2sgc3RkdmdhX2ludGVyY2VwdF9waW8oCiAgICAgcmV0dXJu
IFg4NkVNVUxfVU5IQU5ETEVBQkxFOyAvKiBwcm9wYWdhdGUgdG8gZXh0ZXJu
YWwgaW9lbXUgKi8KIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBzdGR2Z2Ff
bWVtX29mZnNldCgKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcywgdW5z
aWduZWQgaW50IG1taW9fYWRkcikKLXsKLSAgICB1bnNpZ25lZCBpbnQgbWVt
b3J5X21hcF9tb2RlID0gKHMtPmdyWzZdID4+IDIpICYgMzsKLSAgICB1bnNp
Z25lZCBpbnQgb2Zmc2V0ID0gbW1pb19hZGRyICYgMHgxZmZmZjsKLQotICAg
IHN3aXRjaCAoIG1lbW9yeV9tYXBfbW9kZSApCi0gICAgewotICAgIGNhc2Ug
MDoKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICBpZiAo
IG9mZnNldCA+PSAweDEwMDAwICkKLSAgICAgICAgICAgIGdvdG8gZmFpbDsK
LSAgICAgICAgb2Zmc2V0ICs9IDA7IC8qIGFzc3VtZSBiYW5rX29mZnNldCA9
PSAwOyAqLwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDI6Ci0gICAgICAg
IG9mZnNldCAtPSAweDEwMDAwOwotICAgICAgICBpZiAoIG9mZnNldCA+PSAw
eDgwMDAgKQotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICBicmVh
azsKLSAgICBkZWZhdWx0OgotICAgIGNhc2UgMzoKLSAgICAgICAgb2Zmc2V0
IC09IDB4MTgwMDA7Ci0gICAgICAgIGlmICggb2Zmc2V0ID49IDB4ODAwMCAp
Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KLQotICAgIHJldHVybiBvZmZzZXQ7Ci0KLSBmYWlsOgotICAgIHJldHVy
biB+MHU7Ci19Ci0KLSNkZWZpbmUgR0VUX1BMQU5FKGRhdGEsIHApICgoKGRh
dGEpID4+ICgocCkgKiA4KSkgJiAweGZmKQotCi1zdGF0aWMgdWludDhfdCBz
dGR2Z2FfbWVtX3JlYWRiKHVpbnQ2NF90IGFkZHIpCi17Ci0gICAgc3RydWN0
IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2
bS5zdGR2Z2E7Ci0gICAgaW50IHBsYW5lOwotICAgIHVpbnQzMl90IHJldCwg
KnZyYW1fbDsKLSAgICB1aW50OF90ICp2cmFtX2I7Ci0KLSAgICBhZGRyID0g
c3RkdmdhX21lbV9vZmZzZXQocywgYWRkcik7Ci0gICAgaWYgKCBhZGRyID09
IH4wdSApCi0gICAgICAgIHJldHVybiAweGZmOwotCi0gICAgaWYgKCBzLT5z
cls0XSAmIDB4MDggKQotICAgIHsKLSAgICAgICAgLyogY2hhaW4gNCBtb2Rl
IDogc2ltcGxlc3QgYWNjZXNzICovCi0gICAgICAgIHZyYW1fYiA9IHZyYW1f
Z2V0YihzLCBhZGRyKTsKLSAgICAgICAgcmV0ID0gKnZyYW1fYjsKLSAgICAg
ICAgdnJhbV9wdXQocywgdnJhbV9iKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAo
IHMtPmdyWzVdICYgMHgxMCApCi0gICAgewotICAgICAgICAvKiBvZGQvZXZl
biBtb2RlIChha2EgdGV4dCBtb2RlIG1hcHBpbmcpICovCi0gICAgICAgIHBs
YW5lID0gKHMtPmdyWzRdICYgMikgfCAoYWRkciAmIDEpOwotICAgICAgICB2
cmFtX2IgPSB2cmFtX2dldGIocywgKChhZGRyICYgfjEpIDw8IDEpIHwgcGxh
bmUpOwotICAgICAgICByZXQgPSAqdnJhbV9iOwotICAgICAgICB2cmFtX3B1
dChzLCB2cmFtX2IpOwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAg
ICAvKiBzdGFuZGFyZCBWR0EgbGF0Y2hlZCBhY2Nlc3MgKi8KLSAgICAgICAg
dnJhbV9sID0gdnJhbV9nZXRsKHMsIGFkZHIpOwotICAgICAgICBzLT5sYXRj
aCA9ICp2cmFtX2w7Ci0gICAgICAgIHZyYW1fcHV0KHMsIHZyYW1fbCk7Ci0K
LSAgICAgICAgaWYgKCAhKHMtPmdyWzVdICYgMHgwOCkgKQotICAgICAgICB7
Ci0gICAgICAgICAgICAvKiByZWFkIG1vZGUgMCAqLwotICAgICAgICAgICAg
cGxhbmUgPSBzLT5ncls0XTsKLSAgICAgICAgICAgIHJldCA9IEdFVF9QTEFO
RShzLT5sYXRjaCwgcGxhbmUpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgewotICAgICAgICAgICAgLyogcmVhZCBtb2RlIDEgKi8KLSAg
ICAgICAgICAgIHJldCA9IChzLT5sYXRjaCBeIG1hc2sxNltzLT5nclsyXV0p
ICYgbWFzazE2W3MtPmdyWzddXTsKLSAgICAgICAgICAgIHJldCB8PSByZXQg
Pj4gMTY7Ci0gICAgICAgICAgICByZXQgfD0gcmV0ID4+IDg7Ci0gICAgICAg
ICAgICByZXQgPSAofnJldCkgJiAweGZmOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHJldDsKLX0KLQogc3RhdGljIGludCBjZl9jaGVjayBz
dGR2Z2FfbWVtX3JlYWQoCiAgICAgY29uc3Qgc3RydWN0IGh2bV9pb19oYW5k
bGVyICpoYW5kbGVyLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBzaXplLAog
ICAgIHVpbnQ2NF90ICpwX2RhdGEpCiB7Ci0gICAgdWludDY0X3QgZGF0YSA9
IH4wVUw7Ci0KLSAgICBzd2l0Y2ggKCBzaXplICkKLSAgICB7Ci0gICAgY2Fz
ZSAxOgotICAgICAgICBkYXRhID0gc3RkdmdhX21lbV9yZWFkYihhZGRyKTsK
LSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIDI6Ci0gICAgICAgIGRhdGEg
PSBzdGR2Z2FfbWVtX3JlYWRiKGFkZHIpOwotICAgICAgICBkYXRhIHw9IHN0
ZHZnYV9tZW1fcmVhZGIoYWRkciArIDEpIDw8IDg7Ci0gICAgICAgIGJyZWFr
OwotCi0gICAgY2FzZSA0OgotICAgICAgICBkYXRhID0gc3RkdmdhX21lbV9y
ZWFkYihhZGRyKTsKLSAgICAgICAgZGF0YSB8PSBzdGR2Z2FfbWVtX3JlYWRi
KGFkZHIgKyAxKSA8PCA4OwotICAgICAgICBkYXRhIHw9IHN0ZHZnYV9tZW1f
cmVhZGIoYWRkciArIDIpIDw8IDE2OwotICAgICAgICBkYXRhIHw9ICh1aW50
MzJfdClzdGR2Z2FfbWVtX3JlYWRiKGFkZHIgKyAzKSA8PCAyNDsKLSAgICAg
ICAgYnJlYWs7Ci0KLSAgICBjYXNlIDg6Ci0gICAgICAgIGRhdGEgPSAgKHVp
bnQ2NF90KShzdGR2Z2FfbWVtX3JlYWRiKGFkZHIpKTsKLSAgICAgICAgZGF0
YSB8PSAodWludDY0X3QpKHN0ZHZnYV9tZW1fcmVhZGIoYWRkciArIDEpKSA8
PCA4OwotICAgICAgICBkYXRhIHw9ICh1aW50NjRfdCkoc3RkdmdhX21lbV9y
ZWFkYihhZGRyICsgMikpIDw8IDE2OwotICAgICAgICBkYXRhIHw9ICh1aW50
NjRfdCkoc3RkdmdhX21lbV9yZWFkYihhZGRyICsgMykpIDw8IDI0OwotICAg
ICAgICBkYXRhIHw9ICh1aW50NjRfdCkoc3RkdmdhX21lbV9yZWFkYihhZGRy
ICsgNCkpIDw8IDMyOwotICAgICAgICBkYXRhIHw9ICh1aW50NjRfdCkoc3Rk
dmdhX21lbV9yZWFkYihhZGRyICsgNSkpIDw8IDQwOwotICAgICAgICBkYXRh
IHw9ICh1aW50NjRfdCkoc3RkdmdhX21lbV9yZWFkYihhZGRyICsgNikpIDw8
IDQ4OwotICAgICAgICBkYXRhIHw9ICh1aW50NjRfdCkoc3RkdmdhX21lbV9y
ZWFkYihhZGRyICsgNykpIDw8IDU2OwotICAgICAgICBicmVhazsKLQotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAi
aW52YWxpZCBpbyBzaXplOiAldVxuIiwgc2l6ZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLQotICAgICpwX2RhdGEgPSBkYXRhOwotICAgIHJldHVybiBY
ODZFTVVMX09LQVk7Ci19Ci0KLXN0YXRpYyB2b2lkIHN0ZHZnYV9tZW1fd3Jp
dGViKHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IHZhbCkKLXsKLSAgICBzdHJ1
Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2gu
aHZtLnN0ZHZnYTsKLSAgICBpbnQgcGxhbmUsIHdyaXRlX21vZGUsIGIsIGZ1
bmNfc2VsZWN0LCBtYXNrOwotICAgIHVpbnQzMl90IHdyaXRlX21hc2ssIGJp
dF9tYXNrLCBzZXRfbWFzaywgKnZyYW1fbDsKLSAgICB1aW50OF90ICp2cmFt
X2I7Ci0KLSAgICBhZGRyID0gc3RkdmdhX21lbV9vZmZzZXQocywgYWRkcik7
Ci0gICAgaWYgKCBhZGRyID09IH4wdSApCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmICggcy0+c3JbNF0gJiAweDA4ICkKLSAgICB7Ci0gICAgICAgIC8q
IGNoYWluIDQgbW9kZSA6IHNpbXBsZXN0IGFjY2VzcyAqLwotICAgICAgICBw
bGFuZSA9IGFkZHIgJiAzOwotICAgICAgICBtYXNrID0gKDEgPDwgcGxhbmUp
OwotICAgICAgICBpZiAoIHMtPnNyWzJdICYgbWFzayApCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZyYW1fYiA9IHZyYW1fZ2V0YihzLCBhZGRyKTsKLSAg
ICAgICAgICAgICp2cmFtX2IgPSB2YWw7Ci0gICAgICAgICAgICB2cmFtX3B1
dChzLCB2cmFtX2IpOwotICAgICAgICB9Ci0gICAgfQotICAgIGVsc2UgaWYg
KCBzLT5ncls1XSAmIDB4MTAgKQotICAgIHsKLSAgICAgICAgLyogb2RkL2V2
ZW4gbW9kZSAoYWthIHRleHQgbW9kZSBtYXBwaW5nKSAqLwotICAgICAgICBw
bGFuZSA9IChzLT5ncls0XSAmIDIpIHwgKGFkZHIgJiAxKTsKLSAgICAgICAg
bWFzayA9ICgxIDw8IHBsYW5lKTsKLSAgICAgICAgaWYgKCBzLT5zclsyXSAm
IG1hc2sgKQotICAgICAgICB7Ci0gICAgICAgICAgICBhZGRyID0gKChhZGRy
ICYgfjEpIDw8IDEpIHwgcGxhbmU7Ci0gICAgICAgICAgICB2cmFtX2IgPSB2
cmFtX2dldGIocywgYWRkcik7Ci0gICAgICAgICAgICAqdnJhbV9iID0gdmFs
OwotICAgICAgICAgICAgdnJhbV9wdXQocywgdnJhbV9iKTsKLSAgICAgICAg
fQotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgICB3cml0ZV9tb2Rl
ID0gcy0+Z3JbNV0gJiAzOwotICAgICAgICBzd2l0Y2ggKCB3cml0ZV9tb2Rl
ICkKLSAgICAgICAgewotICAgICAgICBkZWZhdWx0OgotICAgICAgICBjYXNl
IDA6Ci0gICAgICAgICAgICAvKiByb3RhdGUgKi8KLSAgICAgICAgICAgIGIg
PSBzLT5nclszXSAmIDc7Ci0gICAgICAgICAgICB2YWwgPSAoKHZhbCA+PiBi
KSB8ICh2YWwgPDwgKDggLSBiKSkpICYgMHhmZjsKLSAgICAgICAgICAgIHZh
bCB8PSB2YWwgPDwgODsKLSAgICAgICAgICAgIHZhbCB8PSB2YWwgPDwgMTY7
Ci0KLSAgICAgICAgICAgIC8qIGFwcGx5IHNldC9yZXNldCBtYXNrICovCi0g
ICAgICAgICAgICBzZXRfbWFzayA9IG1hc2sxNltzLT5nclsxXV07Ci0gICAg
ICAgICAgICB2YWwgPSAodmFsICYgfnNldF9tYXNrKSB8IChtYXNrMTZbcy0+
Z3JbMF1dICYgc2V0X21hc2spOwotICAgICAgICAgICAgYml0X21hc2sgPSBz
LT5ncls4XTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6
Ci0gICAgICAgICAgICB2YWwgPSBzLT5sYXRjaDsKLSAgICAgICAgICAgIGdv
dG8gZG9fd3JpdGU7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIHZh
bCA9IG1hc2sxNlt2YWwgJiAweDBmXTsKLSAgICAgICAgICAgIGJpdF9tYXNr
ID0gcy0+Z3JbOF07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSAzOgotICAgICAgICAgICAgLyogcm90YXRlICovCi0gICAgICAgICAgICBi
ID0gcy0+Z3JbM10gJiA3OwotICAgICAgICAgICAgdmFsID0gKHZhbCA+PiBi
KSB8ICh2YWwgPDwgKDggLSBiKSk7Ci0KLSAgICAgICAgICAgIGJpdF9tYXNr
ID0gcy0+Z3JbOF0gJiB2YWw7Ci0gICAgICAgICAgICB2YWwgPSBtYXNrMTZb
cy0+Z3JbMF1dOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvKiBhcHBseSBsb2dpY2FsIG9wZXJhdGlvbiAqLwotICAgICAg
ICBmdW5jX3NlbGVjdCA9IHMtPmdyWzNdID4+IDM7Ci0gICAgICAgIHN3aXRj
aCAoIGZ1bmNfc2VsZWN0ICkKLSAgICAgICAgewotICAgICAgICBjYXNlIDA6
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAvKiBub3RoaW5nIHRv
IGRvICovCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAgLyogYW5kICovCi0gICAgICAgICAgICB2YWwgJj0gcy0+
bGF0Y2g7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgot
ICAgICAgICAgICAgLyogb3IgKi8KLSAgICAgICAgICAgIHZhbCB8PSBzLT5s
YXRjaDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDM6Ci0g
ICAgICAgICAgICAvKiB4b3IgKi8KLSAgICAgICAgICAgIHZhbCBePSBzLT5s
YXRjaDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAg
ICAgLyogYXBwbHkgYml0IG1hc2sgKi8KLSAgICAgICAgYml0X21hc2sgfD0g
Yml0X21hc2sgPDwgODsKLSAgICAgICAgYml0X21hc2sgfD0gYml0X21hc2sg
PDwgMTY7Ci0gICAgICAgIHZhbCA9ICh2YWwgJiBiaXRfbWFzaykgfCAocy0+
bGF0Y2ggJiB+Yml0X21hc2spOwotCi0gICAgZG9fd3JpdGU6Ci0gICAgICAg
IC8qIG1hc2sgZGF0YSBhY2NvcmRpbmcgdG8gc3JbMl0gKi8KLSAgICAgICAg
bWFzayA9IHMtPnNyWzJdOwotICAgICAgICB3cml0ZV9tYXNrID0gbWFzazE2
W21hc2tdOwotICAgICAgICB2cmFtX2wgPSB2cmFtX2dldGwocywgYWRkcik7
Ci0gICAgICAgICp2cmFtX2wgPSAoKnZyYW1fbCAmIH53cml0ZV9tYXNrKSB8
ICh2YWwgJiB3cml0ZV9tYXNrKTsKLSAgICAgICAgdnJhbV9wdXQocywgdnJh
bV9sKTsKLSAgICB9CisgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAg
KnBfZGF0YSA9IH4wOworICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJM
RTsKIH0KIAogc3RhdGljIGludCBjZl9jaGVjayBzdGR2Z2FfbWVtX3dyaXRl
KApAQCAtNDIwLDQ3ICsxNTAsOCBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIHN0
ZHZnYV9tZW1fd3JpdGUoCiAgICAgICAgIC5kaXIgPSBJT1JFUV9XUklURSwK
ICAgICAgICAgLmRhdGEgPSBkYXRhLAogICAgIH07Ci0gICAgc3RydWN0IGlv
cmVxX3NlcnZlciAqc3J2OwotCi0gICAgZ290byBkb25lOwotCi0gICAgLyog
SW50ZXJjZXB0IG1taW8gd3JpdGUgKi8KLSAgICBzd2l0Y2ggKCBzaXplICkK
LSAgICB7Ci0gICAgY2FzZSAxOgotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRl
YihhZGRyLCAoZGF0YSA+PiAgMCkgJiAweGZmKTsKLSAgICAgICAgYnJlYWs7
Ci0KLSAgICBjYXNlIDI6Ci0gICAgICAgIHN0ZHZnYV9tZW1fd3JpdGViKGFk
ZHIrMCwgKGRhdGEgPj4gIDApICYgMHhmZik7Ci0gICAgICAgIHN0ZHZnYV9t
ZW1fd3JpdGViKGFkZHIrMSwgKGRhdGEgPj4gIDgpICYgMHhmZik7Ci0gICAg
ICAgIGJyZWFrOwotCi0gICAgY2FzZSA0OgotICAgICAgICBzdGR2Z2FfbWVt
X3dyaXRlYihhZGRyKzAsIChkYXRhID4+ICAwKSAmIDB4ZmYpOwotICAgICAg
ICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzEsIChkYXRhID4+ICA4KSAmIDB4
ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihhZGRyKzIsIChkYXRh
ID4+IDE2KSAmIDB4ZmYpOwotICAgICAgICBzdGR2Z2FfbWVtX3dyaXRlYihh
ZGRyKzMsIChkYXRhID4+IDI0KSAmIDB4ZmYpOwotICAgICAgICBicmVhazsK
LQotICAgIGNhc2UgODoKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRk
ciswLCAoZGF0YSA+PiAgMCkgJiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21l
bV93cml0ZWIoYWRkcisxLCAoZGF0YSA+PiAgOCkgJiAweGZmKTsKLSAgICAg
ICAgc3RkdmdhX21lbV93cml0ZWIoYWRkcisyLCAoZGF0YSA+PiAxNikgJiAw
eGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkciszLCAoZGF0
YSA+PiAyNCkgJiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIo
YWRkcis0LCAoZGF0YSA+PiAzMikgJiAweGZmKTsKLSAgICAgICAgc3Rkdmdh
X21lbV93cml0ZWIoYWRkcis1LCAoZGF0YSA+PiA0MCkgJiAweGZmKTsKLSAg
ICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkcis2LCAoZGF0YSA+PiA0OCkg
JiAweGZmKTsKLSAgICAgICAgc3RkdmdhX21lbV93cml0ZWIoYWRkcis3LCAo
ZGF0YSA+PiA1NikgJiAweGZmKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBk
ZWZhdWx0OgotICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgImlu
dmFsaWQgaW8gc2l6ZTogJXVcbiIsIHNpemUpOwotICAgICAgICBicmVhazsK
LSAgICB9CisgICAgc3RydWN0IGlvcmVxX3NlcnZlciAqc3J2ID0gaW9yZXFf
c2VydmVyX3NlbGVjdChjdXJyZW50LT5kb21haW4sICZwKTsKIAotIGRvbmU6
Ci0gICAgc3J2ID0gaW9yZXFfc2VydmVyX3NlbGVjdChjdXJyZW50LT5kb21h
aW4sICZwKTsKICAgICBpZiAoICFzcnYgKQogICAgICAgICByZXR1cm4gWDg2
RU1VTF9VTkhBTkRMRUFCTEU7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9odm0vaW8uaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9odm0vaW8uaAppbmRleCA2N2Y0ZDAzM2E3ZjEuLjkxNzE0ZjM2MTQw
ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9p
by5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaApA
QCAtMTE1LDcgKzExNSw2IEBAIHN0cnVjdCBodm1faHdfc3RkdmdhIHsKICAg
ICB1aW50OF90IHNyWzhdOwogICAgIHVpbnQ4X3QgZ3JfaW5kZXg7CiAgICAg
dWludDhfdCBncls5XTsKLSAgICB1aW50MzJfdCBsYXRjaDsKICAgICBzdHJ1
Y3QgcGFnZV9pbmZvICp2cmFtX3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4
YTAwMDAtMHhhZmZmZiAqLwogICAgIHNwaW5sb2NrX3QgbG9jazsKIH07Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-04.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJncltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIGdyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgYjE2YzA5NjZhMTdmMTljMGU1NWVkMGI5YmFhMjgxOTFkMjU5
MDE3OCkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCAwZjBiZDEwMDY4
MWIuLmZhMjU4MzNjYWE1MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC00OSwxOCArNDksNiBAQCBzdGF0aWMgY29uc3QgdWludDhfdCBzcl9tYXNr
WzhdID0gewogICAgICh1aW50OF90KX4weDAwLAogfTsKIAotc3RhdGljIGNv
bnN0IHVpbnQ4X3QgZ3JfbWFza1s5XSA9IHsKLSAgICAodWludDhfdCl+MHhm
MCwgLyogMHgwMCAqLwotICAgICh1aW50OF90KX4weGYwLCAvKiAweDAxICov
Ci0gICAgKHVpbnQ4X3QpfjB4ZjAsIC8qIDB4MDIgKi8KLSAgICAodWludDhf
dCl+MHhlMCwgLyogMHgwMyAqLwotICAgICh1aW50OF90KX4weGZjLCAvKiAw
eDA0ICovCi0gICAgKHVpbnQ4X3QpfjB4ODQsIC8qIDB4MDUgKi8KLSAgICAo
dWludDhfdCl+MHhmMCwgLyogMHgwNiAqLwotICAgICh1aW50OF90KX4weGYw
LCAvKiAweDA3ICovCi0gICAgKHVpbnQ4X3QpfjB4MDAsIC8qIDB4MDggKi8K
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC04Miwx
MiArNzAsNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5ncl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2NmOiAgICAgICAgICAg
ICAgICAgLyogZ3JhcGhpY3MgZGF0YSByZWdpc3RlciAqLwotICAgICAgICBy
YyA9IChzLT5ncl9pbmRleCA8IHNpemVvZihzLT5ncikpOwotICAgICAgICBp
ZiAoIHJjICkKLSAgICAgICAgICAgIHMtPmdyW3MtPmdyX2luZGV4XSA9IHZh
bCAmIGdyX21hc2tbcy0+Z3JfaW5kZXhdOwotICAgICAgICBicmVhazsKLQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJjID0gMDsKICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lv
LmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKaW5kZXgg
OTE3MTRmMzYxNDBlLi4xMjY2MjJlNTNjM2UgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaAorKysgYi94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKQEAgLTExNCw3ICsxMTQsNiBAQCBz
dHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7CiAgICAgdWludDhfdCBzcl9pbmRleDsK
ICAgICB1aW50OF90IHNyWzhdOwogICAgIHVpbnQ4X3QgZ3JfaW5kZXg7Ci0g
ICAgdWludDhfdCBncls5XTsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICp2cmFt
X3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAtMHhhZmZmZiAqLwog
ICAgIHNwaW5sb2NrX3QgbG9jazsKIH07Cg==

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-05.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJzcltdIiBzdHJ1Y3QgbWVtYmVy
CgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBwcm9kdWNlciBh
bmQgdGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbwpnbyBhd2F5LiBUaGUgc3Rh
dGljIHNyX21hc2tbXSBpcyB0aGVuIG9ycGhhbmVkIGFuZCBoZW5jZSBuZWVk
cyBkcm9wcGluZywKdG9vLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJv
bSBjb21taXQgN2FiYTQ0YmRkNzhhZWRiOTc3MDM4MTE5NDhjM2I2OWNjZmY4
NTAzMikKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5j
IGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwppbmRleCBmYTI1ODMzY2Fh
NTAuLjU1MjNhNDQxZGQ4ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2
bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBA
IC0zNywxOCArMzcsNiBAQAogI2RlZmluZSBWR0FfTUVNX0JBU0UgMHhhMDAw
MAogI2RlZmluZSBWR0FfTUVNX1NJWkUgMHgyMDAwMAogCi0vKiBmb3JjZSBz
b21lIGJpdHMgdG8gemVybyAqLwotc3RhdGljIGNvbnN0IHVpbnQ4X3Qgc3Jf
bWFza1s4XSA9IHsKLSAgICAodWludDhfdCl+MHhmYywKLSAgICAodWludDhf
dCl+MHhjMiwKLSAgICAodWludDhfdCl+MHhmMCwKLSAgICAodWludDhfdCl+
MHhjMCwKLSAgICAodWludDhfdCl+MHhmMSwKLSAgICAodWludDhfdCl+MHhm
ZiwKLSAgICAodWludDhfdCl+MHhmZiwKLSAgICAodWludDhfdCl+MHgwMCwK
LX07Ci0KIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwg
dWludDhfdCB2YWwpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMg
PSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CkBAIC02MCwx
MiArNDgsNiBAQCBzdGF0aWMgaW50IHN0ZHZnYV9vdXRiKHVpbnQ2NF90IGFk
ZHIsIHVpbnQ4X3QgdmFsKQogICAgICAgICBzLT5zcl9pbmRleCA9IHZhbDsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4M2M1OiAgICAgICAgICAg
ICAgICAgLyogc2VxdWVuY2VyIGRhdGEgcmVnaXN0ZXIgKi8KLSAgICAgICAg
cmMgPSAocy0+c3JfaW5kZXggPCBzaXplb2Yocy0+c3IpKTsKLSAgICAgICAg
aWYgKCByYyApCi0gICAgICAgICAgICBzLT5zcltzLT5zcl9pbmRleF0gPSB2
YWwgJiBzcl9tYXNrW3MtPnNyX2luZGV4XSA7Ci0gICAgICAgIGJyZWFrOwot
CiAgICAgY2FzZSAweDNjZTogICAgICAgICAgICAgICAgIC8qIGdyYXBoaWNz
IGFkZHJlc3MgcmVnaXN0ZXIgKi8KICAgICAgICAgcy0+Z3JfaW5kZXggPSB2
YWw7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2h2bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2h2bS9pby5oCmluZGV4IDEyNjYyMmU1M2MzZS4uM2U5MDc5ZWFiNjJj
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lv
LmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBA
IC0xMTIsNyArMTEyLDYgQEAgc3RydWN0IHZwY2lfYXJjaF9tc2l4X2VudHJ5
IHsKIAogc3RydWN0IGh2bV9od19zdGR2Z2EgewogICAgIHVpbnQ4X3Qgc3Jf
aW5kZXg7Ci0gICAgdWludDhfdCBzcls4XTsKICAgICB1aW50OF90IGdyX2lu
ZGV4OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnZyYW1fcGFnZVs2NF07ICAv
KiBzaGFkb3cgb2YgMHhhMDAwMC0weGFmZmZmICovCiAgICAgc3BpbmxvY2tf
dCBsb2NrOwo=

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-06.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ7ZyxzfXJfaW5kZXgiIHN0cnVj
dCBtZW1iZXJzCgpObyBjb25zdW1lcnMgYXJlIGxlZnQsIGhlbmNlIHRoZSBw
cm9kdWNlciBhbmQgdGhlIGZpZWxkcyB0aGVtc2VsdmVzIGNhbgphbHNvIGdv
IGF3YXkuIHN0ZHZnYV9vdXRiKCkgaXMgdGhlbiB1c2VsZXNzLCByZW5kZXJp
bmcgc3RkdmdhX291dCgpCnVzZWxlc3MgYXMgd2VsbC4gSGVuY2UgdGhlIGVu
dGlyZSBJL08gcG9ydCBpbnRlcmNlcHQgY2FuIGdvIGF3YXkuCgpUaGlzIGlz
IHBhcnQgb2YgWFNBLTQ2MyAvIENWRS0yMDI0LTQ1ODE4CgpTaWduZWQtb2Zm
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
LWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t
PgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4NmMwMzM3MmUxMDdmNWMx
ODI2NmE2MjI4MTY2Mzg2MWIxMTQ0OTI5KQoKZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCmluZGV4IDU1MjNhNDQxZGQ4Zi4uMTU1YTY3YTQzOGQ4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3RkdmdhLmMKQEAgLTM3LDYyICszNyw2IEBACiAjZGVmaW5l
IFZHQV9NRU1fQkFTRSAweGEwMDAwCiAjZGVmaW5lIFZHQV9NRU1fU0laRSAw
eDIwMDAwCiAKLXN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRk
ciwgdWludDhfdCB2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2Eg
KnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0gICAg
aW50IHJjID0gMTsKLQotICAgIHN3aXRjaCAoIGFkZHIgKQotICAgIHsKLSAg
ICBjYXNlIDB4M2M0OiAgICAgICAgICAgICAgICAgLyogc2VxdWVuY2VyIGFk
ZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAgICAgcy0+c3JfaW5kZXggPSB2YWw7
Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSAweDNjZTogICAgICAgICAg
ICAgICAgIC8qIGdyYXBoaWNzIGFkZHJlc3MgcmVnaXN0ZXIgKi8KLSAgICAg
ICAgcy0+Z3JfaW5kZXggPSB2YWw7Ci0gICAgICAgIGJyZWFrOwotCi0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcmMgPSAwOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyB2b2lkIHN0ZHZn
YV9vdXQodWludDMyX3QgcG9ydCwgdWludDMyX3QgYnl0ZXMsIHVpbnQzMl90
IHZhbCkKLXsKLSAgICBzd2l0Y2ggKCBieXRlcyApCi0gICAgewotICAgIGNh
c2UgMToKLSAgICAgICAgc3RkdmdhX291dGIocG9ydCwgdmFsKTsKLSAgICAg
ICAgYnJlYWs7Ci0KLSAgICBjYXNlIDI6Ci0gICAgICAgIHN0ZHZnYV9vdXRi
KHBvcnQgKyAwLCB2YWwgPj4gMCk7Ci0gICAgICAgIHN0ZHZnYV9vdXRiKHBv
cnQgKyAxLCB2YWwgPj4gOCk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgZGVm
YXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMgaW50
IGNmX2NoZWNrIHN0ZHZnYV9pbnRlcmNlcHRfcGlvKAotICAgIGludCBkaXIs
IHVuc2lnbmVkIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgYnl0ZXMsIHVpbnQz
Ml90ICp2YWwpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAm
Y3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7Ci0KLSAgICBpZiAo
IGRpciA9PSBJT1JFUV9XUklURSApCi0gICAgewotICAgICAgICBzcGluX2xv
Y2soJnMtPmxvY2spOwotICAgICAgICBzdGR2Z2Ffb3V0KHBvcnQsIGJ5dGVz
LCAqdmFsKTsKLSAgICAgICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOwotICAg
IH0KLQotICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsgLyogcHJv
cGFnYXRlIHRvIGV4dGVybmFsIGlvZW11ICovCi19Ci0KIHN0YXRpYyBpbnQg
Y2ZfY2hlY2sgc3RkdmdhX21lbV9yZWFkKAogICAgIGNvbnN0IHN0cnVjdCBo
dm1faW9faGFuZGxlciAqaGFuZGxlciwgdWludDY0X3QgYWRkciwgdWludDMy
X3Qgc2l6ZSwKICAgICB1aW50NjRfdCAqcF9kYXRhKQpAQCAtMTk0LDExICsx
MzgsNiBAQCB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAg
ICAgewogICAgICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXI7
CiAKLSAgICAgICAgLyogU2VxdWVuY2VyIHJlZ2lzdGVycy4gKi8KLSAgICAg
ICAgcmVnaXN0ZXJfcG9ydGlvX2hhbmRsZXIoZCwgMHgzYzQsIDIsIHN0ZHZn
YV9pbnRlcmNlcHRfcGlvKTsKLSAgICAgICAgLyogR3JhcGhpY3MgcmVnaXN0
ZXJzLiAqLwotICAgICAgICByZWdpc3Rlcl9wb3J0aW9faGFuZGxlcihkLCAw
eDNjZSwgMiwgc3RkdmdhX2ludGVyY2VwdF9waW8pOwotCiAgICAgICAgIC8q
IFZHQSBtZW1vcnkgKi8KICAgICAgICAgaGFuZGxlciA9IGh2bV9uZXh0X2lv
X2hhbmRsZXIoZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9odm0vaW8uaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9o
dm0vaW8uaAppbmRleCAzZTkwNzllYWI2MmMuLmJmOWRkZmM3MGUxZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaApAQCAtMTEx
LDggKzExMSw2IEBAIHN0cnVjdCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiB9
OwogCiBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7Ci0gICAgdWludDhfdCBzcl9p
bmRleDsKLSAgICB1aW50OF90IGdyX2luZGV4OwogICAgIHN0cnVjdCBwYWdl
X2luZm8gKnZyYW1fcGFnZVs2NF07ICAvKiBzaGFkb3cgb2YgMHhhMDAwMC0w
eGFmZmZmICovCiAgICAgc3BpbmxvY2tfdCBsb2NrOwogfTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-07.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJ2cmFtX3BhZ2VbXSIgc3RydWN0
IG1lbWJlcgoKTm8gdXNlcyBhcmUgbGVmdCwgaGVuY2UgaXRzIHNldHVwLCB0
ZWFyZG93biwgYW5kIHRoZSBmaWVsZCBpdHNlbGYgY2FuCmFsc28gZ28gYXdh
eS4gc3RkdmdhX2RlaW5pdCgpIGlzIHRoZW4gZW1wdHkgYW5kIGNhbiBiZSBk
cm9wcGVkIGFzIHdlbGwuCgpUaGlzIGlzIHBhcnQgb2YgWFNBLTQ2MyAvIENW
RS0yMDI0LTQ1ODE4CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl
dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCAzYmViNGJhZjJhMGEyZWVmNDBkMzllYjdlNmVlY2JmZDM2ZGE1
ZDE0KQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94
ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDBmZTJiODViMTY1My4uZmJj
YTdlNDk0OTVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTcwMCw3ICs3MDAs
NiBAQCBpbnQgaHZtX2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g
KmQsCiAgICAgcmV0dXJuIDA7CiAKICBmYWlsMjoKLSAgICBzdGR2Z2FfZGVp
bml0KGQpOwogICAgIHZpb2FwaWNfZGVpbml0KGQpOwogIGZhaWwxOgogICAg
IGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKQEAgLTc2Myw3ICs3NjIs
NiBAQCB2b2lkIGh2bV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpk
KQogICAgIGlmICggaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95ICkKICAgICAg
ICAgYWx0ZXJuYXRpdmVfdmNhbGwoaHZtX2Z1bmNzLmRvbWFpbl9kZXN0cm95
LCBkKTsKIAotICAgIHN0ZHZnYV9kZWluaXQoZCk7CiAgICAgdmlvYXBpY19k
ZWluaXQoZCk7CiAKICAgICBYRlJFRShkLT5hcmNoLmh2bS5wbF90aW1lKTsK
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4IDE1NWE2N2E0MzhkOC4uOWYz
MDhmYzg5Njc5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N0ZHZn
YS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKQEAgLTExNiw4
ICsxMTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19vcHMgc3Rk
dmdhX21lbV9vcHMgPSB7CiB2b2lkIHN0ZHZnYV9pbml0KHN0cnVjdCBkb21h
aW4gKmQpCiB7CiAgICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+
YXJjaC5odm0uc3RkdmdhOwotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwot
ICAgIHVuc2lnbmVkIGludCBpOworICAgIHN0cnVjdCBodm1faW9faGFuZGxl
ciAqaGFuZGxlcjsKIAogICAgIGlmICggIWhhc192dmdhKGQpICkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTI1LDQ3ICsxMjQsMTUgQEAgdm9pZCBzdGR2Z2Ff
aW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIG1lbXNldChzLCAwLCBzaXpl
b2YoKnMpKTsKICAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7CiAgICAg
Ci0gICAgZm9yICggaSA9IDA7IGkgIT0gQVJSQVlfU0laRShzLT52cmFtX3Bh
Z2UpOyBpKysgKQorICAgIC8qIFZHQSBtZW1vcnkgKi8KKyAgICBoYW5kbGVy
ID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKKyAgICBpZiAoIGhhbmRsZXIg
KQogICAgIHsKLSAgICAgICAgcGcgPSBhbGxvY19kb21oZWFwX3BhZ2UoZCwg
TUVNRl9ub19vd25lcik7Ci0gICAgICAgIGlmICggcGcgPT0gTlVMTCApCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgcy0+dnJhbV9wYWdlW2ldID0g
cGc7Ci0gICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBhZ2VfdG9fbWZuKHBn
KSk7Ci0gICAgfQotCi0gICAgaWYgKCBpID09IEFSUkFZX1NJWkUocy0+dnJh
bV9wYWdlKSApCi0gICAgewotICAgICAgICBzdHJ1Y3QgaHZtX2lvX2hhbmRs
ZXIgKmhhbmRsZXI7Ci0KLSAgICAgICAgLyogVkdBIG1lbW9yeSAqLwotICAg
ICAgICBoYW5kbGVyID0gaHZtX25leHRfaW9faGFuZGxlcihkKTsKLQotICAg
ICAgICBpZiAoIGhhbmRsZXIgPT0gTlVMTCApCi0gICAgICAgICAgICByZXR1
cm47Ci0KICAgICAgICAgaGFuZGxlci0+dHlwZSA9IElPUkVRX1RZUEVfQ09Q
WTsKICAgICAgICAgaGFuZGxlci0+b3BzID0gJnN0ZHZnYV9tZW1fb3BzOwog
ICAgIH0KIH0KIAotdm9pZCBzdGR2Z2FfZGVpbml0KHN0cnVjdCBkb21haW4g
KmQpCi17Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+YXJj
aC5odm0uc3RkdmdhOwotICAgIGludCBpOwotCi0gICAgaWYgKCAhaGFzX3Z2
Z2EoZCkgKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKCBpID0gMDsg
aSAhPSBBUlJBWV9TSVpFKHMtPnZyYW1fcGFnZSk7IGkrKyApCi0gICAgewot
ICAgICAgICBpZiAoIHMtPnZyYW1fcGFnZVtpXSA9PSBOVUxMICkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShz
LT52cmFtX3BhZ2VbaV0pOwotICAgICAgICBzLT52cmFtX3BhZ2VbaV0gPSBO
VUxMOwotICAgIH0KLX0KLQogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAq
IG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9odm0vaW8uaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8u
aAppbmRleCBiZjlkZGZjNzBlMWUuLmQ0OWY2ZDZmOGMwNiAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCisrKyBiL3hl
bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0vaW8uaApAQCAtMTExLDEyICsx
MTEsMTAgQEAgc3RydWN0IHZwY2lfYXJjaF9tc2l4X2VudHJ5IHsKIH07CiAK
IHN0cnVjdCBodm1faHdfc3RkdmdhIHsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZv
ICp2cmFtX3BhZ2VbNjRdOyAgLyogc2hhZG93IG9mIDB4YTAwMDAtMHhhZmZm
ZiAqLwogICAgIHNwaW5sb2NrX3QgbG9jazsKIH07CiAKIHZvaWQgc3Rkdmdh
X2luaXQoc3RydWN0IGRvbWFpbiAqZCk7Ci12b2lkIHN0ZHZnYV9kZWluaXQo
c3RydWN0IGRvbWFpbiAqZCk7CiAKIGV4dGVybiB2b2lkIGh2bV9kcGNpX21z
aV9lb2koc3RydWN0IGRvbWFpbiAqZCwgaW50IHZlY3Rvcik7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-08.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiB4ODYvSFZNOiBkcm9wIHN0ZHZnYSdzICJsb2NrIiBzdHJ1Y3QgbWVtYmVy
CgpObyBzdGF0ZSBpcyBsZWZ0IHRvIHByb3RlY3QuIEl0IGJlaW5nIHRoZSBs
YXN0IGZpZWxkLCBkcm9wIHRoZSBzdHJ1Y3QKaXRzZWxmIGFzIHdlbGwuIFNp
bWlsYXJseSBmb3IgdGhlbiBlbmRpbmcgdXAgZW1wdHksIGRyb3AgdGhlIC5j
b21wbGV0ZQpoYW5kbGVyLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NjMgLyBD
VkUtMjAyNC00NTgxOAoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRy
ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgooY2hlcnJ5
IHBpY2tlZCBmcm9tIGNvbW1pdCBiMTgwYTUwMzI2YzhhMmMxNzFmMzdjMTk0
MGEwZmJiZGNhZDRiZTkwKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o
dm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4
IDlmMzA4ZmM4OTY3OS4uZDM4ZDMwYWZmYmZmIDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvaHZtL3N0ZHZnYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKQEAgLTY5LDYxICs2OSwzNSBAQCBzdGF0aWMgaW50IGNmX2No
ZWNrIHN0ZHZnYV9tZW1fd3JpdGUoCiBzdGF0aWMgYm9vbCBjZl9jaGVjayBz
dGR2Z2FfbWVtX2FjY2VwdCgKICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hh
bmRsZXIgKmhhbmRsZXIsIGNvbnN0IGlvcmVxX3QgKnApCiB7Ci0gICAgc3Ry
dWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNo
Lmh2bS5zdGR2Z2E7Ci0KLSAgICAvKgotICAgICAqIFRoZSByYW5nZSBjaGVj
ayBtdXN0IGJlIGRvbmUgd2l0aG91dCB0YWtpbmcgdGhlIGxvY2ssIHRvIGF2
b2lkCi0gICAgICogZGVhZGxvY2sgd2hlbiBodm1fbW1pb19pbnRlcm5hbCgp
IGlzIGNhbGxlZCBmcm9tCi0gICAgICogaHZtX2NvcHlfdG8vZnJvbV9ndWVz
dF9waHlzKCkgaW4gaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0KCkuCi0gICAg
ICovCiAgICAgaWYgKCAoaW9yZXFfbW1pb19maXJzdF9ieXRlKHApIDwgVkdB
X01FTV9CQVNFKSB8fAogICAgICAgICAgKGlvcmVxX21taW9fbGFzdF9ieXRl
KHApID49IChWR0FfTUVNX0JBU0UgKyBWR0FfTUVNX1NJWkUpKSApCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKLQog
ICAgIGlmICggcC0+ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFfaXNf
cHRyIHx8IHAtPmNvdW50ICE9IDEgKQogICAgIHsKICAgICAgICAgLyoKICAg
ICAgICAgICogT25seSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMsIGFz
IHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBjYW4KICAgICAgICAgICogYWNj
ZWxlcmF0ZSB1c2luZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KICAgICAg
ICAgICovCi0gICAgICAgIGdvdG8gcmVqZWN0OworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgLyogcy0+bG9jayBpbnRlbnRpb25hbGx5
IGhlbGQgKi8KLSAgICByZXR1cm4gMTsKLQotIHJlamVjdDoKLSAgICBzcGlu
X3VubG9jaygmcy0+bG9jayk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRp
YyB2b2lkIGNmX2NoZWNrIHN0ZHZnYV9tZW1fY29tcGxldGUoY29uc3Qgc3Ry
dWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyKQotewotICAgIHN0cnVjdCBo
dm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0u
c3RkdmdhOwotCi0gICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOworICAgIHJl
dHVybiB0cnVlOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9pb19v
cHMgc3RkdmdhX21lbV9vcHMgPSB7CiAgICAgLmFjY2VwdCA9IHN0ZHZnYV9t
ZW1fYWNjZXB0LAogICAgIC5yZWFkID0gc3RkdmdhX21lbV9yZWFkLAogICAg
IC53cml0ZSA9IHN0ZHZnYV9tZW1fd3JpdGUsCi0gICAgLmNvbXBsZXRlID0g
c3RkdmdhX21lbV9jb21wbGV0ZQogfTsKIAogdm9pZCBzdGR2Z2FfaW5pdChz
dHJ1Y3QgZG9tYWluICpkKQogewotICAgIHN0cnVjdCBodm1faHdfc3Rkdmdh
ICpzID0gJmQtPmFyY2guaHZtLnN0ZHZnYTsKICAgICBzdHJ1Y3QgaHZtX2lv
X2hhbmRsZXIgKmhhbmRsZXI7CiAKICAgICBpZiAoICFoYXNfdnZnYShkKSAp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1lbXNldChzLCAwLCBzaXplb2Yo
KnMpKTsKLSAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7Ci0gICAgCiAg
ICAgLyogVkdBIG1lbW9yeSAqLwogICAgIGhhbmRsZXIgPSBodm1fbmV4dF9p
b19oYW5kbGVyKGQpOwogICAgIGlmICggaGFuZGxlciApCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAppbmRleCBkZDlk
ODM3ZTg0MzEuLjMzMzUwMWQ1ZjJhYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAorKysgYi94ZW4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oCkBAIC03Miw3ICs3Miw2IEBA
IHN0cnVjdCBodm1fZG9tYWluIHsKICAgICBzdHJ1Y3QgaHZtX2h3X3ZwaWMg
ICAgIHZwaWNbMl07IC8qIDA9bWFzdGVyOyAxPXNsYXZlICovCiAgICAgc3Ry
dWN0IGh2bV92aW9hcGljICAgICoqdmlvYXBpYzsKICAgICB1bnNpZ25lZCBp
bnQgICAgICAgICAgIG5yX3Zpb2FwaWNzOwotICAgIHN0cnVjdCBodm1faHdf
c3RkdmdhICAgc3RkdmdhOwogCiAgICAgLyoKICAgICAgKiBodm1faHdfcG10
aW1lciBpcyBhIHB1YmxpY2x5LXZpc2libGUgbmFtZS4gV2Ugd2lsbCBkZWZl
ciByZW5hbWluZwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2h2bS9pby5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9p
by5oCmluZGV4IGQ0OWY2ZDZmOGMwNi4uZDcyYjI5ZjczZmEyIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2lvLmgKKysrIGIv
eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9pby5oCkBAIC0xMTAsMTAg
KzExMCw2IEBAIHN0cnVjdCB2cGNpX2FyY2hfbXNpeF9lbnRyeSB7CiAgICAg
aW50IHBpcnE7CiB9OwogCi1zdHJ1Y3QgaHZtX2h3X3N0ZHZnYSB7Ci0gICAg
c3BpbmxvY2tfdCBsb2NrOwotfTsKLQogdm9pZCBzdGR2Z2FfaW5pdChzdHJ1
Y3QgZG9tYWluICpkKTsKIAogZXh0ZXJuIHZvaWQgaHZtX2RwY2lfbXNpX2Vv
aShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgdmVjdG9yKTsK

--=separator
Content-Type: application/octet-stream; name="xsa463/xsa463-4.19-09.patch"
Content-Disposition: attachment; filename="xsa463/xsa463-4.19-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KU3ViamVjdDogeDg2L2h2bTogU2ltcGxpZnkgc3RkdmdhX21lbV9hY2Nl
cHQoKSBmdXJ0aGVyCgpzdGR2Z2FfbWVtX2FjY2VwdCgpIGlzIGNhbGxlZCBv
biBhbG1vc3QgYWxsIElPIGVtdWxhdGlvbnMsIGFuZCB0aGUKb3ZlcndoZWxt
aW5nIGxpa2VseSBhbnN3ZXIgaXMgdG8gcmVqZWN0IHRoZSBpb3JlcS4gIFNp
bXBseSByZWFycmFuZ2luZyB0aGUKZXhwcmVzc2lvbiB5aWVsZHMgYW4gaW1w
cm92ZW1lbnQ6CgogIGFkZC9yZW1vdmU6IDAvMCBncm93L3NocmluazogMC8x
IHVwL2Rvd246IDAvLTU3ICgtNTcpCiAgRnVuY3Rpb24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQog
IHN0ZHZnYV9tZW1fYWNjZXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEwOSAgICAgIDUyICAgICAtNTcKCndoaWNoIGlzIGJlc3QgZXhwbGFpbmVk
IGxvb2tpbmcgYXQgdGhlIGRpc2Fzc2VtYmx5OgoKICBCZWZvcmU6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFmdGVyOgogIGYzIDBmIDFlIGZhICAgICAgICAgICBlbmRicjY0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZjMgMGYgMWUgZmEgICAgICAgICAg
IGVuZGJyNjQKICAwZiBiNiA0ZSAxZSAgICAgICAgICAgbW92emJsIDB4MWUo
JXJzaSksJWVjeCAgICAgICAgICAgIHwgIDBmIGI2IDQ2IDFlICAgICAgICAg
ICBtb3Z6YmwgMHgxZSglcnNpKSwlZWF4CiAgNDggOGIgMTYgICAgICAgICAg
ICAgIG1vdiAgICAoJXJzaSksJXJkeCAgICAgICAgICAgICAgICB8ICAzMSBk
MiAgICAgICAgICAgICAgICAgeG9yICAgICVlZHgsJWVkeAogIGY2IGMxIDQw
ICAgICAgICAgICAgICB0ZXN0ICAgJDB4NDAsJWNsICAgICAgICAgICAgICAg
ICAgfCAgYTggMzAgICAgICAgICAgICAgICAgIHRlc3QgICAkMHgzMCwlYWwK
ICA3NSAzOCAgICAgICAgICAgICAgICAgam5lICAgIDxzdGR2Z2FfbWVtX2Fj
Y2VwdCsweDQ4PiAgIHwgIDc1IDIzICAgICAgICAgICAgICAgICBqbmUgICAg
PHN0ZHZnYV9tZW1fYWNjZXB0KzB4MzE+CiAgMzEgYzAgICAgICAgICAgICAg
ICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDgg
ODEgZmEgZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcmR4ICAgICAg
ICAgICAgICA8CiAgNzYgMjYgICAgICAgICAgICAgICAgIGpiZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgOGIgNDYgMTQgICAgICAgICAg
ICAgIG1vdiAgICAweDE0KCVyc2kpLCVlYXggICAgICAgICAgICA8CiAgOGIg
N2UgMTAgICAgICAgICAgICAgIG1vdiAgICAweDEwKCVyc2kpLCVlZGkgICAg
ICAgICAgICA8CiAgNDggMGYgYWYgYzcgICAgICAgICAgIGltdWwgICAlcmRp
LCVyYXggICAgICAgICAgICAgICAgICA8CiAgNDggOGQgNTQgMDIgZmYgICAg
ICAgIGxlYSAgICAtMHgxKCVyZHgsJXJheCwxKSwlcmR4ICAgICA8CiAgMzEg
YzAgICAgICAgICAgICAgICAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAg
ICAgICAgICA8CiAgNDggODEgZmEgZmYgZmYgMGIgMDAgIGNtcCAgICAkMHhi
ZmZmZiwlcmR4ICAgICAgICAgICAgICA8CiAgNzcgMGMgICAgICAgICAgICAg
ICAgIGphICAgICA8c3RkdmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMg
ZTEgMzAgICAgICAgICAgICAgIGFuZCAgICAkMHgzMCwlZWN4ICAgICAgICAg
ICAgICAgICA8CiAgNzUgMDcgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHg0MT4gICA8CiAgODMgN2UgMTAgMDEgICAgICAg
ICAgIGNtcGwgICAkMHgxLDB4MTAoJXJzaSkgICAgICAgICAgICAgICA4MyA3
ZSAxMCAwMSAgICAgICAgICAgY21wbCAgICQweDEsMHgxMCglcnNpKQogIDBm
IDk0IGMwICAgICAgICAgICAgICBzZXRlICAgJWFsICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgNzUgMWQgICAgICAgICAgICAgICAgIGpuZSAgICA8c3Rk
dmdhX21lbV9hY2NlcHQrMHgzMT4KICBjMyAgICAgICAgICAgICAgICAgICAg
cmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4IDhiIDBl
ICAgICAgICAgICAgICBtb3YgICAgKCVyc2kpLCVyY3gKICA2NiAwZiAxZiA0
NCAwMCAwMCAgICAgbm9wdyAgIDB4MCglcmF4LCVyYXgsMSkgICAgICAgICAg
IHwgIDQ4IDgxIGY5IGZmIGZmIDA5IDAwICBjbXAgICAgJDB4OWZmZmYsJXJj
eAogIDhiIDQ2IDEwICAgICAgICAgICAgICBtb3YgICAgMHgxMCglcnNpKSwl
ZWF4ICAgICAgICAgICAgfCAgNzYgMTEgICAgICAgICAgICAgICAgIGpiZSAg
ICA8c3RkdmdhX21lbV9hY2NlcHQrMHgzMT4KICA4YiA3ZSAxNCAgICAgICAg
ICAgICAgbW92ICAgIDB4MTQoJXJzaSksJWVkaSAgICAgICAgICAgIHwgIDhi
IDQ2IDE0ICAgICAgICAgICAgICBtb3YgICAgMHgxNCglcnNpKSwlZWF4CiAg
NDkgODkgZDAgICAgICAgICAgICAgIG1vdiAgICAlcmR4LCVyOCAgICAgICAg
ICAgICAgICAgICB8ICA0OCA4ZCA0NCAwMSBmZiAgICAgICAgbGVhICAgIC0w
eDEoJXJjeCwlcmF4LDEpLCVyYXgKICA0OCA4MyBlOCAwMSAgICAgICAgICAg
c3ViICAgICQweDEsJXJheCAgICAgICAgICAgICAgICAgIHwgIDQ4IDNkIGZm
IGZmIDBiIDAwICAgICBjbXAgICAgJDB4YmZmZmYsJXJheAogIDQ4IDhkIDU0
IDNhIGZmICAgICAgICBsZWEgICAgLTB4MSglcmR4LCVyZGksMSksJXJkeCAg
ICAgfCAgMGYgOTYgYzIgICAgICAgICAgICAgIHNldGJlICAlZGwKICA0OCAw
ZiBhZiBjNyAgICAgICAgICAgaW11bCAgICVyZGksJXJheCAgICAgICAgICAg
ICAgICAgIHwgIDg5IGQwICAgICAgICAgICAgICAgICBtb3YgICAgJWVkeCwl
ZWF4CiAgNDkgMjkgYzAgICAgICAgICAgICAgIHN1YiAgICAlcmF4LCVyOCAg
ICAgICAgICAgICAgICAgICA8CiAgMzEgYzAgICAgICAgICAgICAgICAgIHhv
ciAgICAlZWF4LCVlYXggICAgICAgICAgICAgICAgICA8CiAgNDkgODEgZjgg
ZmYgZmYgMDkgMDAgIGNtcCAgICAkMHg5ZmZmZiwlcjggICAgICAgICAgICAg
ICA8CiAgNzcgYmUgICAgICAgICAgICAgICAgIGphICAgICA8c3RkdmdhX21l
bV9hY2NlcHQrMHgyYT4gICA8CiAgYzMgICAgICAgICAgICAgICAgICAgIHJl
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMyAgICAgICAg
ICAgICAgICAgICAgcmV0CgpCeSBtb3ZpbmcgdGhlICJwLT5jb3VudCAhPSAx
IiBjaGVjayBhaGVhZCBvZiB0aGUKaW9yZXFfbW1pb197Zmlyc3QsbGFzdH1f
Ynl0ZSgpIGNhbGxzLCBib3RoIG11bHRpcGxpZXMgZGlzYXBwZWFyIGFsb25n
IHdpdGggYQpsb3Qgb2Ygc3Vycm91bmRpbmcgbG9naWMuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IDA4ZmZkODcwNWQzNmM3YzQ0NWRmM2VjZWU4YWQ5YjhmOGQ2NWZi
ZTApCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBi
L3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggZDM4ZDMwYWZmYmZm
Li5jM2M0M2Y1OWVlYWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v
c3RkdmdhLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAt
NjksMTggKzY5LDE0IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgc3RkdmdhX21l
bV93cml0ZSgKIHN0YXRpYyBib29sIGNmX2NoZWNrIHN0ZHZnYV9tZW1fYWNj
ZXB0KAogICAgIGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxl
ciwgY29uc3QgaW9yZXFfdCAqcCkKIHsKLSAgICBpZiAoIChpb3JlcV9tbWlv
X2ZpcnN0X2J5dGUocCkgPCBWR0FfTUVNX0JBU0UpIHx8CisgICAgLyoKKyAg
ICAgKiBPbmx5IGFjY2VwdCBzaW5nbGUgZGlyZWN0IHdyaXRlcywgYXMgdGhh
dCdzIHRoZSBvbmx5IHRoaW5nIHdlIGNhbgorICAgICAqIGFjY2VsZXJhdGUg
dXNpbmcgYnVmZmVyZWQgaW9yZXEgaGFuZGxpbmcuCisgICAgICovCisgICAg
aWYgKCBwLT5kaXIgIT0gSU9SRVFfV1JJVEUgfHwgcC0+ZGF0YV9pc19wdHIg
fHwgcC0+Y291bnQgIT0gMSB8fAorICAgICAgICAgKGlvcmVxX21taW9fZmly
c3RfYnl0ZShwKSA8IFZHQV9NRU1fQkFTRSkgfHwKICAgICAgICAgIChpb3Jl
cV9tbWlvX2xhc3RfYnl0ZShwKSA+PSAoVkdBX01FTV9CQVNFICsgVkdBX01F
TV9TSVpFKSkgKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICggcC0+
ZGlyICE9IElPUkVRX1dSSVRFIHx8IHAtPmRhdGFfaXNfcHRyIHx8IHAtPmNv
dW50ICE9IDEgKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogT25s
eSBhY2NlcHQgc2luZ2xlIGRpcmVjdCB3cml0ZXMsIGFzIHRoYXQncyB0aGUg
b25seSB0aGluZyB3ZSBjYW4KLSAgICAgICAgICogYWNjZWxlcmF0ZSB1c2lu
ZyBidWZmZXJlZCBpb3JlcSBoYW5kbGluZy4KLSAgICAgICAgICovCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0K

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 12:06:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 12:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834422.1250075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tApem-0001Hi-3f; Tue, 12 Nov 2024 12:06:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834422.1250075; Tue, 12 Nov 2024 12:06: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 1tApem-0001Hb-0u; Tue, 12 Nov 2024 12:06:04 +0000
Received: by outflank-mailman (input) for mailman id 834422;
 Tue, 12 Nov 2024 12: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=3GC9=SH=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1tApek-0000xb-32
 for xen-devel@lists.xen.org; Tue, 12 Nov 2024 12:06:02 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 75de791e-a0ee-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 13:05:52 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1tApeV-001dw3-1W;
 Tue, 12 Nov 2024 12:05:47 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1tApeV-001S2c-2H;
 Tue, 12 Nov 2024 12:05: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: 75de791e-a0ee-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEwNC4xMzAuMjE1LjM3IiwiaGVsbyI6Im1haWwueGVucHJvamVjdC5vcmcifQ==
X-Custom-Transaction: eyJpZCI6Ijc1ZGU3OTFlLWEwZWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDEzMTU1LjkyMzQ4MSwic2VuZGVyIjoiYW5kcmV3Y29vcEB4ZW5iaXRzLnhlbi5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZyJ9
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 464 v2 (CVE-2024-45819) - libxl leaks data
 to PVH guests via ACPI tables
Message-Id: <E1tApeV-001S2c-2H@xenbits.xenproject.org>
Date: Tue, 12 Nov 2024 12:05:47 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2024-45819 / XSA-464
                               version 2

            libxl leaks data to PVH guests via ACPI tables

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

PVH guests have their ACPI tables constructed by the toolstack.  The
construction involves building the tables in local memory, which are
then copied into guest memory.  While actually used parts of the local
memory are filled in correctly, excess space that is being allocated is
left with its prior contents.

IMPACT
======

An unprivileged guest may be able to access sensitive information
pertaining to the host, control domain, or other guests.

VULNERABLE SYSTEMS
==================

Xen versions 4.8 and onwards are vulnerable.  Xen 4.7 and older are not
vulnerable.

Only x86 systems running PVH guests are vulnerable.  Architectures other
than x86 are not vulnerable.

Only PVH guests can leverage the vulnerability.  HVM and PV guests
cannot leverage the vulnerability.  Note that PV guests when run inside
the (PVH) shim can't leverage the vulnerability.

MITIGATION
==========

Running only PV or HVM guests will avoid this vulnerability.

CREDITS
=======

This issue was discovered by Jason Andryuk of AMD.

RESOLUTION
==========

Applying the appropriate attached patch resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa464.patch           xen-unstable - Xen 4.16.x

$ sha256sum xsa464*
16bca39d6136141e030276f588f1e77f634fce8301b42fb0848ddf2b611d835a  xsa464.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmczRE4MHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZTG8H+wV+jRjwQcgPa2OQBuedO8V0Lpu1DqQnANU//oZK
4p5ntCeMJ9MnMlWGZhdOAwSQNgwYf17G2DezNK0XvRacfvB0/pUTH94EmKmyRkVl
vGgs302HkNb0Il84JN/HA9TtK5+g2kSa5J5prV9tu+nGvRZ1zZPnBEFohXvXdjr7
/KGSrbHbi5+6DdBZmmEUu65PLvQAochHvQLEHpoRp0MCVE8g0FQPFikmST39TLpJ
6SFfVZjdmYfOUN1BYcH6AYCuCXZfbUOlqm9y1Z2EX6N0chQXsBDbOFx7/0ey23fw
Wy9l49G//xaTR4X4uXTRiiXC7qxpclD0VKGlHKz1AUyUw6c=
=lRfn
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa464.patch"
Content-Disposition: attachment; filename="xsa464.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFzb24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPgpT
dWJqZWN0OiBsaWJ4bDogVXNlIHplcm8tZWQgbWVtb3J5IGZvciBQVkggYWNw
aSB0YWJsZXMKCnhsL2xpYnhsIG1lbW9yeSBpcyBsZWFraW5nIGludG8gYSBQ
VkggZ3Vlc3QgdGhyb3VnaCB1bmluaXRpYWxpemVkCnBvcnRpb25zIG9mIHRo
ZSBBQ1BJIHRhYmxlcy4KClVzZSBsaWJ4bF96YWxsb2MoKSB0byBvYnRhaW4g
emVyby1lZCBtZW1vcnkgdG8gYXZvaWQgdGhpcyBpc3N1ZS4KClRoaXMgaXMg
WFNBLTQ2NCAvIENWRS0yMDI0LTQ1ODE5LgoKU2lnbmVkLW9mZi1ieTogSmFz
b24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPgpGaXhlczogMTRj
MGQzMjhkYTJiICgibGlieGwvYWNwaTogQnVpbGQgQUNQSSB0YWJsZXMgZm9y
IEhWTWxpdGUgZ3Vlc3RzIikKUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxq
YmV1bGljaEBzdXNlLmNvbT4KCi0tLSBhL3Rvb2xzL2xpYnMvbGlnaHQvbGli
eGxfeDg2X2FjcGkuYworKysgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX3g4
Nl9hY3BpLmMKQEAgLTE3NiwxMCArMTc2LDExIEBAIGludCBsaWJ4bF9fZG9t
X2xvYWRfYWNwaShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBnb3RvIG91dDsK
ICAgICB9CiAKLSAgICBjb25maWcucnNkcCA9ICh1bnNpZ25lZCBsb25nKWxp
YnhsX19tYWxsb2MoZ2MsIGxpYnhsX2N0eHQucGFnZV9zaXplKTsKLSAgICBj
b25maWcuaW5mb3AgPSAodW5zaWduZWQgbG9uZylsaWJ4bF9fbWFsbG9jKGdj
LCBsaWJ4bF9jdHh0LnBhZ2Vfc2l6ZSk7CisgICAgLyogVGhlc2UgYXJlIGFs
bCBjb3BpZWQgaW50byBndWVzdCBtZW1vcnksIHNvIHVzZSB6ZXJvLWVkIG1l
bW9yeS4gKi8KKyAgICBjb25maWcucnNkcCA9ICh1bnNpZ25lZCBsb25nKWxp
YnhsX196YWxsb2MoZ2MsIGxpYnhsX2N0eHQucGFnZV9zaXplKTsKKyAgICBj
b25maWcuaW5mb3AgPSAodW5zaWduZWQgbG9uZylsaWJ4bF9femFsbG9jKGdj
LCBsaWJ4bF9jdHh0LnBhZ2Vfc2l6ZSk7CiAgICAgLyogUGFnZXMgdG8gaG9s
ZCBBQ1BJIHRhYmxlcyAqLwotICAgIGxpYnhsX2N0eHQuYnVmID0gbGlieGxf
X21hbGxvYyhnYywgTlVNX0FDUElfUEFHRVMgKgorICAgIGxpYnhsX2N0eHQu
YnVmID0gbGlieGxfX3phbGxvYyhnYywgTlVNX0FDUElfUEFHRVMgKgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9jdHh0LnBh
Z2Vfc2l6ZSk7CiAKICAgICAvKgo=

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 12:34:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 12:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834579.1250139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAq6C-0000rO-Oy; Tue, 12 Nov 2024 12:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834579.1250139; Tue, 12 Nov 2024 12:34: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 1tAq6C-0000rH-MS; Tue, 12 Nov 2024 12:34:24 +0000
Received: by outflank-mailman (input) for mailman id 834579;
 Tue, 12 Nov 2024 12:34: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=PmjB=SH=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1tAq6B-0000rB-Je
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 12:34:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fd4b8f6-a0f2-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 13:34:19 +0100 (CET)
Received: from [192.168.1.113] (93-36-216-241.ip62.fastwebnet.it
 [93.36.216.241])
 by support.bugseng.com (Postfix) with ESMTPSA id 126F74EE0739;
 Tue, 12 Nov 2024 13:34:18 +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: 6fd4b8f6-a0f2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZmZDRiOGY2LWEwZjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDE0ODU5LjM3MTk0LCJzZW5kZXIiOiJmZWRlcmljby5zZXJhZmluaUBidWdzZW5nLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731414858; bh=DawTrb/8OYdqQ/+dNLYfJmQu9TjbBAey82rAQ7mO5KQ=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=mU+GUOGETkwGg0ki+AQBj6dZQUGktm5bGT89QGYDX1ScZvmf3zTnMmpffSH+a2Z8M
	 nq54WhyJ9fsgeQsxVFc8tU+WPVisdsniGJrv39OUBndSnu4ZeAbyq+nZ5w8JHHYCfX
	 TulALPoNTJfxKOYWLaQFg2vXowGy1pRmPT/eKhydyDkw51IJNyJdHx1hc/F+auhiAH
	 N04psZoffyQCtYIM2sP6URksxB4FjSevEXOn+BlOhukkMZdySOIEsIUvPOZQhbWdiq
	 IHwz326zLabqsqsOlnqe9F1211XtBEaFwVNAwtCcZpe0h3zLDvgRYjubDIm+ZKoL12
	 Yt+f7pq3+webg==
Message-ID: <c80ba929-3af4-4e72-b698-5f185a4ae708@bugseng.com>
Date: Tue, 12 Nov 2024 13:34:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/3] x86/emul: define pseudo keyword fallthrough
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1730880832.git.federico.serafini@bugseng.com>
 <a0341b50ece1ba1b5b346b54db7d2abdc150cb95.1730880832.git.federico.serafini@bugseng.com>
 <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <be21f3cf-e7a8-469a-99a6-4098032a4df4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 06/11/24 12:22, Jan Beulich wrote:
> On 06.11.2024 10:04, Federico Serafini wrote:
>> The pseudo keyword fallthrough shall be used to make explicit the
>> fallthrough intention at the end of a case statement (doing this
>> through comments is deprecated).
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>> ---
>>   xen/arch/x86/x86_emulate/x86_emulate.h | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
> 
> When you had asked my privately on Matrix, I specifically said: "Adding
> the pseudo-keyword to x86-emulate.h (not x86_emulate.h) is probably best,
> unless problems with that approach turn up." Even if identical re-
> definitions are deemed fine, I for one consider such bad practice. Yet
> by playing with this file (and outside of any relevant #ifdef) means
> there will be such a re-definition when building Xen itself.

Sorry Jan, I misinterpreted your message.
I tested the definition in the x86-emulate.h and there are no problems.
I will send a V2.


> In fact the patch subject should also already clarify that the auxiliary
> definition is only needed for the test and fuzzing harnesses.

Ok.


>> --- a/xen/arch/x86/x86_emulate/x86_emulate.h
>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.h
>> @@ -23,6 +23,16 @@
>>   # error Unknown compilation width
>>   #endif
>>   
>> +/*
>> + * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
>> + * the end of a case statement.
>> + */
>> +#if (!defined(__clang__) && (__GNUC__ >= 7))
> 
> I realize xen/compiler.h has it like that, but may I ask that you omit
> the meaningless outer pair of parentheses?

Ok.

-- 
Federico Serafini, M.Sc.

Software Engineer, BUGSENG
Ph.D. Student, Ca' Foscari University of Venice



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 12:55:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 12:55:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834603.1250210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAqQX-0004NX-Vu; Tue, 12 Nov 2024 12:55:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834603.1250210; Tue, 12 Nov 2024 12:55: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 1tAqQX-0004NQ-TD; Tue, 12 Nov 2024 12:55:25 +0000
Received: by outflank-mailman (input) for mailman id 834603;
 Tue, 12 Nov 2024 12:55: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAqQW-0004NI-2t
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 12:55:24 +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 5ec7aa7f-a0f5-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 13:55:19 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9aa8895facso1041625366b.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 04:55:19 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0df28f3sm714126466b.169.2024.11.12.04.55.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 04:55: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: 5ec7aa7f-a0f5-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVlYzdhYTdmLWEwZjUtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDE2MTE5LjEyNTM3MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731416118; x=1732020918; 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=kbLwGaH1oupBlHWBsG9iUuZn2Rqlrj26Wo8LZDhdMIs=;
        b=mJsZ7gHnyLM41panEvyBoA30Xy1hnaOCexGymHooKOBx9bAHLWrLsdYOn+SBJz7OlO
         bO6iPDm+2Pvpi87gKiOcq+8W+19vBJOM4lnwjIt//IIk569GIwgRGvDnTcXjtzY87cMl
         8Zm8tZv602/0YkVrF/CbYNpTPbbd2Hlb21UKE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731416118; x=1732020918;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kbLwGaH1oupBlHWBsG9iUuZn2Rqlrj26Wo8LZDhdMIs=;
        b=sa9yYaR1s3v+OoynaPJEHkrQW4/IWN+4qBCXbowtI4AapPe/7RsI7qnowB426MDW3A
         jSWkxBuMHEusNyrlECcc2gTBFNbwRnM0c71BaGo18RIyeffJj1LwNVPfVhz6iMYIpzk9
         E18WoSPWXhJrgeex4uKHiQcsmnaeZv063dp6aLNyv/y0O4wYdswGgAP2HCyftAkfmqTi
         TZNcEYIUCCeMXFxM9SmtDs3CS8l5AP23qR1QXgbHtAG17zggW+43RWUCNaydpv9d/Xpd
         gihbbFFWl6PsEhRHRKhkZv/TG0g1kXE9xWmu5oinFs6HQhvvRloO1rMvoTlbeiS0LX3o
         BG9w==
X-Forwarded-Encrypted: i=1; AJvYcCXHiyNp9EV8l5DO/maIrpGsNazzmUPYCvCTfGITT8ZVutKP42pjVOLFRTwglUyFVEgsUNv0+JndFyg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzpng42hrGIyn4tEYhtbJgs1cX51vIDxHO4wPZQ7PNA+9P45Xht
	nhz8WCFUDiyyu3HmpZT7BMo5HGXorPafv2DFY/xaqRGMnkYCALi1KettBkv8e/E=
X-Google-Smtp-Source: AGHT+IGaGjwGzgpTyLCHSx5mrBqjY/owIDNDwTZja8jH0A2JWJ5ETA4sdJ4X45xCFRgJTE6VsUlJcQ==
X-Received: by 2002:a17:907:2d0b:b0:a9e:b0a7:3ab7 with SMTP id a640c23a62f3a-a9eeffd896dmr1717936766b.41.1731416118452;
        Tue, 12 Nov 2024 04:55:18 -0800 (PST)
Message-ID: <1eca11a5-a42d-4b22-8271-453e5317edfb@citrix.com>
Date: Tue, 12 Nov 2024 12:55:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/ucode: Fold microcode_update_cpu() and fix error
 handling
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-3-andrew.cooper3@citrix.com>
 <3fa406d3-f714-41c2-984f-8478fab3e7b1@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3fa406d3-f714-41c2-984f-8478fab3e7b1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/11/2024 10:45 am, Jan Beulich wrote:
> On 07.11.2024 13:21, Andrew Cooper wrote:
>> Fold microcode_update_cpu() into its single remaining caller and simplify the
>> logic by removing the patch != NULL path with microcode_mutex held.
>>
>> Explain why we bother grabbing the microcode revision even if we can't load
>> microcode.
>>
>> Furthermore, delete the -EIO path.  An error updating microcode on AP boot or
>> S3 resume is certainly bad, but freeing the cache is about the worst possible
>> action we can take in response; it prevents subsequent APs from taking an
>> update they might have accepted.
> I'm afraid I disagree here, but I also disagree with the present error handling.
> -EIO indicates the patch didn't apply. Why would there be any hope that any
> other CPU would accept it?

-EIO is "something went wrong".

On modern systems this can include "checksum didn't match because
there's a bad SRAM cell".Â  This is literally one of the failures leading
to the introduction of In-Field-Scan.

Individual cores really can fail in a way which won't be the same
elsewhere in the system.

> Keeping what's cached might be an option, but then followed by cleaning the
> cache unless at least one CPU actually accepted the ucode.

We already have that behaviour.


We cache speculatively on boot, even if the BSP doesn't need to load,
because APs might need to.Â  This really is the best we can do.

The only other time the cache gets modified is after a late-load attempt
which reported success.Â  There are still a lot of partial-failure error
cases to handle less badly, but that needs yet more untangling before it
can be addressed adequately.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 13:00:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 13:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834616.1250240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAqVm-00069y-Ow; Tue, 12 Nov 2024 13:00:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834616.1250240; Tue, 12 Nov 2024 13: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 1tAqVm-00069r-ML; Tue, 12 Nov 2024 13:00:50 +0000
Received: by outflank-mailman (input) for mailman id 834616;
 Tue, 12 Nov 2024 13:00: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAqVm-00069d-9I
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 13:00:50 +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 21ec7ce8-a0f6-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 14:00:46 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4314c452180so37496465e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 05:00: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
 5b1f17b1804b1-432aa70a226sm250772395e9.28.2024.11.12.05.00.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 05:00: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: 21ec7ce8-a0f6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIxZWM3Y2U4LWEwZjYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDE2NDQ2LjU0ODU2LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731416446; x=1732021246; 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=K1zeAmAx5HIq9zm/0VfPfddci7gmumWHqQoGlY32Y48=;
        b=ef1blegd3WFsDo7CjGlAWlrtmIpmBzGo2IOHFdNdZznGmNM3X43AVmS6a+18Bu7NuE
         vkX+rbRS0yp41a1X33FVlzXqbW0WRKMRvw+fstUqfmSP4b5eSYGAOscfm6HrxD5zms8v
         6f9x+TElVUb/OZE3flT1AnMaTW8+54ouS+lbta8RwWBsgLMSY95ee2/Q3Q6UI/lxzvh6
         5/XVsaSs/nneMZooXr2wFMCo9occHlDqHkv1OOprrvtitZFRjo4aVFexWJMsoMgIopgr
         8sH4B89hqZlg7d0D8rRuMONksyIItAhlv5Hhty77Na/K56ZelP6dLDmjBbbbpLwy/DB6
         2gdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731416446; x=1732021246;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=K1zeAmAx5HIq9zm/0VfPfddci7gmumWHqQoGlY32Y48=;
        b=oRBfySis952ZEH5NIF3Q5j7YCnmda37ra3BXbh5mONxRnB6hsNEiJi5xYawz+qN1Fp
         exmqvyJI4EOa46soCnzqoyip09lKY6QQyH26VmkyHr0d33DNUr97W/mCCvHVXR7a7k+s
         /iAJphfnpk+33KST+25NdQ/ME4ivCeJpsLEyNQBXVIClglUboFqBkmf/4XLyeqzW/0Jn
         utAW4z2nggUd7RbIARrluqK/i65p5p6P8mEPHZTOM1/+G1ORctVW0wkYLZNTGajiWdco
         osyy/iuhzRNdwi6mZtEkGoN7uJZdOMhvL5uh7+kgs8y+i37HzTWMR4SPofqMU/+3FodP
         C8IQ==
X-Gm-Message-State: AOJu0YybfRQ7OPWidR42mONGOASP5Y7+7RGpfWHOaTe2CjnzP0VFQLeU
	yn16Q3X/7k5backkM9QdaMO1HGgUzGZIFn7yqJxBJjf9vpETkYx7Rjh2LKwj0cRs1ftktW1/N8A
	=
X-Google-Smtp-Source: AGHT+IGoJ+nXxrc4xn4OLCyFZoneJLsZ5RDVTEQBHNHzaHJDleLnpGYlePwjSMlxXtr81hwFXstrew==
X-Received: by 2002:a5d:5e0b:0:b0:37d:3b31:7a9d with SMTP id ffacd0b85a97d-381f0f7f221mr10928590f8f.23.1731416444365;
        Tue, 12 Nov 2024 05:00:44 -0800 (PST)
Message-ID: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
Date: Tue, 12 Nov 2024 14:00:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: preparations for 4.19.1
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>
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,

the release is due by the end of the month. Please point out backports you find
missing from the respective staging branch, but which you consider relevant.

Advance notice: 4.18.4 ought to follow about two weeks later.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 14:24:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 14:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834672.1250405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAroX-0000X3-9T; Tue, 12 Nov 2024 14:24:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834672.1250405; Tue, 12 Nov 2024 14:24: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 1tAroX-0000Ww-70; Tue, 12 Nov 2024 14:24:17 +0000
Received: by outflank-mailman (input) for mailman id 834672;
 Tue, 12 Nov 2024 14:24: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAroV-0000Wq-Ij
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 14:24:15 +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 c9fcd637-a101-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 15:24:12 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4314f38d274so72145555e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 06:24: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-432aa6c1205sm252096195e9.26.2024.11.12.06.24.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 06:24: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: c9fcd637-a101-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5ZmNkNjM3LWExMDEtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDIxNDUyLjk1MTc2LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731421452; x=1732026252; 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=ddk0i47wJTYJ7rPqPH9++Z8Fcs+S8NSCZLUXO6O3H80=;
        b=B3DPsVX5V5BQWP/NqTNuLchAbEWqWYJO1gLJI0MCK2NAzk4e3a6uoyl8dachkzp6QG
         aP0vYkL37+wTGxBRDdvdLzWt0KNrfU0XTVHMdAbaiaTSmOci7rBimXHYQY4I3GkCW34r
         QyRpTQvSQiz7NyyJEdU5d+YlcxJYA6F5EMVWO5fMOoSnK+TgPrzb6jd8fxSZfhgDdVsI
         tIH0EkOgsiBt0odMD7sOnz3CsdGzlPJAzz/oaObWpBi7zrD1CeWWYTstZC+ZMeh8sXHW
         ghVpPnfzr2g/6XxZ044fp/M0XXsp5WYjOIP96o573ZxAKAxbrYOPJykoJS1FsaBeyDMZ
         cIlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731421452; x=1732026252;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ddk0i47wJTYJ7rPqPH9++Z8Fcs+S8NSCZLUXO6O3H80=;
        b=vA0pjA+kzVvyJtGQTsfmM/HgVPj/NEEYRuyM6OX/GY3pUQSn8KXRBMAkkJFmW51bhC
         EEbuCYr6UuSg/JzX2neqvEfN8LilPuQZEIIx8ZkZgn/3jBHLi5DclMLOcZtOWuvuvdeO
         AJcPgefEPVeCjGHHUOXp/aggQOqcxMH5hoCmmW104/WkhnxyeItWXjfVXUS9YELPffsr
         Y9iim+N+iKs7FjKZ1ZresgvETblF2vFA/y35xe8fHRTkT5TmrDd5FG+DC1a5KaiLV0zd
         diFAq4OLTlkA4vDBuhafePEOqGmkIMyUzJ8bRouBtXFey/mVEiBv5ZC/2pZX7M0gS1/j
         f5ow==
X-Forwarded-Encrypted: i=1; AJvYcCWGERYSP7/3U2CjvFndfT4PIr4VT/L5zhWQKs4QJba4h9PSAH7zqWIwi4GAdQEh1Q7mCrCMQlgCHP8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxn2dAJ8xVN1BBH2HVIXHpSbZVmrDosxR2z+YffcJ7mLNRZoJqk
	B0TvIwCzVLpn/Ad8kG2zRcSC9ybl/06Q1F2JX9is59TyD08fczlNpXgV8rDVyg==
X-Google-Smtp-Source: AGHT+IGk/uDHqwnYJ2mi8IV63Bknn0KcsAgBRr2tQP7NaNsUhZLR8XGfhU5Jboso7JbgVKYEXkathQ==
X-Received: by 2002:a05:600c:3b29:b0:431:542d:2599 with SMTP id 5b1f17b1804b1-432b7518d17mr181735495e9.22.1731421452359;
        Tue, 12 Nov 2024 06:24:12 -0800 (PST)
Message-ID: <5a28eef7-7ca5-497c-ae43-1b8477e2bb78@suse.com>
Date: Tue, 12 Nov 2024 15:24:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/ucode: Fold microcode_update_cpu() and fix error
 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: <20241107122117.4073266-1-andrew.cooper3@citrix.com>
 <20241107122117.4073266-3-andrew.cooper3@citrix.com>
 <3fa406d3-f714-41c2-984f-8478fab3e7b1@suse.com>
 <1eca11a5-a42d-4b22-8271-453e5317edfb@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: <1eca11a5-a42d-4b22-8271-453e5317edfb@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2024 13:55, Andrew Cooper wrote:
> On 12/11/2024 10:45 am, Jan Beulich wrote:
>> On 07.11.2024 13:21, Andrew Cooper wrote:
>>> Fold microcode_update_cpu() into its single remaining caller and simplify the
>>> logic by removing the patch != NULL path with microcode_mutex held.
>>>
>>> Explain why we bother grabbing the microcode revision even if we can't load
>>> microcode.
>>>
>>> Furthermore, delete the -EIO path.  An error updating microcode on AP boot or
>>> S3 resume is certainly bad, but freeing the cache is about the worst possible
>>> action we can take in response; it prevents subsequent APs from taking an
>>> update they might have accepted.
>> I'm afraid I disagree here, but I also disagree with the present error handling.
>> -EIO indicates the patch didn't apply. Why would there be any hope that any
>> other CPU would accept it?
> 
> -EIO is "something went wrong".
> 
> On modern systems this can include "checksum didn't match because
> there's a bad SRAM cell".Â  This is literally one of the failures leading
> to the introduction of In-Field-Scan.
> 
> Individual cores really can fail in a way which won't be the same
> elsewhere in the system.

Hmm, well, slightly hesitantly
Acked-by: Jan Beulich <jbeulich@suse.com>

Ideally with a remark added to the description that there is known room
for further improvement.

>> Keeping what's cached might be an option, but then followed by cleaning the
>> cache unless at least one CPU actually accepted the ucode.
> 
> We already have that behaviour.
> 
> 
> We cache speculatively on boot, even if the BSP doesn't need to load,
> because APs might need to.Â  This really is the best we can do.

That's a different scenario. If we ended up with ucode which no single
CPU accepts, there's hardly much point in caching that ucode. This
specifically is meant not to include the case where simply all CPUs are
already up-to-date. The one largely theoretical case where caching may
still make sense is for CPU hotplug, where the hot-plugged CPU(s) may
accept what all boot-time CPUs refused.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 14:58:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 14:58:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834690.1250456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAsLR-0004pB-2k; Tue, 12 Nov 2024 14:58:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834690.1250456; Tue, 12 Nov 2024 14:58: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 1tAsLQ-0004p4-VT; Tue, 12 Nov 2024 14:58:16 +0000
Received: by outflank-mailman (input) for mailman id 834690;
 Tue, 12 Nov 2024 14:58: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAsLQ-0004oy-In
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 14:58:16 +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 89c605ca-a106-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 15:58:12 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43162cf1eaaso72818535e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 06:58: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-432cf1216d6sm14782455e9.0.2024.11.12.06.58.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 06:58: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: 89c605ca-a106-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg5YzYwNWNhLWExMDYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDIzNDkyLjc0MTM0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731423492; x=1732028292; 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=tYnJ0Z23EK3KdgOFbAQW0JAC7iVmAR8R31UNuC1Nv3g=;
        b=c831cBp7/UZSH2svai1xCibYee8P4oVJqDDXD49E//sa92FXeEVb8eSCplKZ7HvglV
         LJ1kpd4/1IxtUQutEmyqyHbMrncQ1ftJTSfZvNevSc0W3OoRN+HIngq76crA4Lho41GC
         AxvqCIk0I31KyP0SnNYyi0Ik27cMC2hS8suC5irdHesfNJ52lphPTjoBsuh3RmeVkWVX
         C9pE2OubViZFPiQhHgVWtAMjIwf9S3LpaB3r/qe7AYFZHdw+dwnh4XHBpmafCLICgOpI
         wZjMlZpRq93q0bLBEJPXI2tT6iHoEUV1syA7XwjrltSuRTkyc9HkXbi5KRhYkmQ26klM
         lhVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731423492; x=1732028292;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=tYnJ0Z23EK3KdgOFbAQW0JAC7iVmAR8R31UNuC1Nv3g=;
        b=ZMVm0HV3l/cWpy1mUh2A49sQOmbCgBh970G5QmliEEeEEaHFLt4P2wn5+UJbGd4U1C
         LyqE5rnF8Ff8ICEebhgowDX3eqfmBrCNUEauwbwMNj8W4H0J+CBzaVEvsnPl4+KJJErC
         J8XBaeFGuzfGlIfMNcEZ+FoScD3eD39q74SG7whutkyyg2io0Zb2HlDKZQdD0l0kF+xs
         1iIMZpCkbGLSuTVVfETVM40o1NOONuye9bOd5k8bJi0/TUr/jkZuFT/tUTGalH8uzAGW
         ObIlgVZ9m/hM0oofolIxQpea6wW2d7vX+KJZnMk/3bHKVY5sVmDOiu5WFDO3krRzzQfv
         CGGA==
X-Gm-Message-State: AOJu0YzpZJi5Keo4tLRmAe+ycs87LD7B4CuOwFb6qp0m2TH88HHzWcp+
	I0v6dgEbnzyAlGpq5bN+aa9X1Vo5pnfl7Tk7E93/PYwqB8k+un4jUOgeGWGuLZHDbbH0Vi2VBiA
	=
X-Google-Smtp-Source: AGHT+IEdI4wZt9apfuYgh9CikjFnuP044xTpgAoc8WdhI+RZ5bxwVYq3uzBSS0/jKLFQLL/E4FqhPQ==
X-Received: by 2002:a05:600c:1e89:b0:431:557e:b40c with SMTP id 5b1f17b1804b1-432b751e250mr174065805e9.27.1731423492127;
        Tue, 12 Nov 2024 06:58:12 -0800 (PST)
Message-ID: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
Date: Tue, 12 Nov 2024 15:58:10 +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] x86emul: BMI{1,2} corrections
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: correct EFLAGS testing for BMI1/BMI2
2: ignore VEX.W for BMI{1,2} insns in 32-bit mode

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 14:59:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 14:59:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834699.1250466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAsN2-0005PI-G2; Tue, 12 Nov 2024 14:59:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834699.1250466; Tue, 12 Nov 2024 14:59: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 1tAsN2-0005PB-CD; Tue, 12 Nov 2024 14:59:56 +0000
Received: by outflank-mailman (input) for mailman id 834699;
 Tue, 12 Nov 2024 14:59: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAsN1-0005Nh-7W
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 14:59:55 +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 c56060c3-a106-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 15:59:52 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4315e62afe0so55034315e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 06:59: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-432b0562ccdsm209284065e9.23.2024.11.12.06.59.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 06:59: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: c56060c3-a106-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM1NjA2MGMzLWExMDYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDIzNTkyLjc1NTgyNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731423592; x=1732028392; 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=TU8Ns9FIXoCBKIxNf+AQYBkQRkjWvvKPbMIsXHaW3nQ=;
        b=RHMTeInJeFww+COdbN4sIQatkwOf5TK1AjkQist2f1Opo7HdDu27ib7gsNOogGzNwu
         FRYHunSG/HUNC/ovOlyQX+sb86q5iMW2Raoa3CH6SHBYesXpdZ3wFhC277JpX6XxDUT5
         UPjniOX4hlEkebJRclH85hcPRlnsKTZXvFShEUaDpEiv5MFgv/6XgPN3eScvgHZ/hPR+
         6SuDiA0Hp46mJ8k4ibN6ddGA23lHCqNvcr4w4TEn9zzR01JmrZWzFKpAhRW4qCi5/8Pe
         B6Hz/NVcI9pMnUmCjN1O5QP2Lz7Cck9CDYEKqk8pXBhmHKM7Nky8duKOxF/0QfMuov0y
         8aAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731423592; x=1732028392;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=TU8Ns9FIXoCBKIxNf+AQYBkQRkjWvvKPbMIsXHaW3nQ=;
        b=GkPWv8TLciKDqYMLaOu95aufvelmVTWRCBPyB/gizlCK4ATQHWYosT1fZ+Gq/jQ45b
         Rul4NSnrDDcVZBSUF9/Dc6CD5/ARdNSwHRDhieWVzfEbJyBqGUzeIYmlZz4QYR34NEJs
         GYionE+yNoQ0CYRdbrvQKyZQa5VccmSVqh2xtZrFc+fTz6z4Uujh3rAEvybwfaI3Oh3d
         dKiXW+smG1bXFXiB7XfkSWz0ir8n+E5PoO4+hJ6XHE9Lg6zSZbd40sYTk9gqerIGe+xP
         kbGccp+zUs5nLF9ndobh3BeWNNgiSbVfAYXBN2AlFNaT/ENXlqRVXGEUtG0rLTWuEkHh
         /Sgw==
X-Gm-Message-State: AOJu0Yw6JiqFZJIzwRZ3ObjyOIFqkQdmY2zPQx0lFqQlvd0DbCvL/EhY
	C3HLShZBlD3E2yH7SQk13Ln9/dyghZSE+vrVpoygy11yqJoTO4/ffgMlTwHTrzsc/qbFk4X9z3A
	=
X-Google-Smtp-Source: AGHT+IGPRdaxe7Q9uLR9F0FYCVIfsEcUEh9OBbxEqWXCREADQFk8YDkkhh+tm8UtO7r/KKQW1a8xEg==
X-Received: by 2002:a05:600c:5488:b0:431:9397:9ac9 with SMTP id 5b1f17b1804b1-432b7507c16mr127253125e9.15.1731423592021;
        Tue, 12 Nov 2024 06:59:52 -0800 (PST)
Message-ID: <04602af0-9a03-4d43-beb3-28b76e2cad33@suse.com>
Date: Tue, 12 Nov 2024 15:59:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86emul: correct EFLAGS testing for BMI1/BMI2
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: <367ba117-f376-433b-bd70-586d7519d94c@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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Apparently I blindly copied the constants from the BEXTR case, where SF
indeed wants leaving out. For BLSI, BLSMSK, BLSR, and BZHI SF is
defined, and hence wants checking. This is noticable in particular for
BLSR, where with the input we use SF will be set in the result (and
hence is being switched to be clear on input).

Convert to using named constants we have available, while omitting DF,
TF, as well as the MBZ bits 3 and 5 from the masking values in the
checks of the produced output. For BZHI also set SF on input, expecting
it to transition to clear.

Fixes: 771daacd197a ("x86emul: support BMI1 insns")
Fixes: 8e20924de13d ("x86emul: support BMI2 insns")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1969,10 +1969,13 @@ int main(int argc, char **argv)
 
         *res        = 0xfedcba98;
         regs.edx    = (unsigned long)res;
-        regs.eflags = 0xac2;
+        regs.eflags = EFLAGS_ALWAYS_SET | X86_EFLAGS_OF | X86_EFLAGS_SF | \
+                      X86_EFLAGS_ZF;
         rc = x86_emulate(&ctxt, &emulops);
         if ( (rc != X86EMUL_OKAY) || regs.ecx != 8 || *res != 0xfedcba98 ||
-             (regs.eflags & 0xf6b) != 0x203 || !check_eip(blsi) )
+             (regs.eflags & (EFLAGS_MASK & ~(X86_EFLAGS_AF | X86_EFLAGS_PF))) !=
+              (EFLAGS_ALWAYS_SET | X86_EFLAGS_CF) ||
+             !check_eip(blsi) )
             goto fail;
         printf("okay\n");
     }
@@ -1988,10 +1991,13 @@ int main(int argc, char **argv)
                        :: "d" (NULL) );
         set_insn(blsmsk);
 
-        regs.eflags = 0xac3;
+        regs.eflags = EFLAGS_ALWAYS_SET | X86_EFLAGS_OF | X86_EFLAGS_SF | \
+                      X86_EFLAGS_ZF | X86_EFLAGS_CF;
         rc = x86_emulate(&ctxt, &emulops);
         if ( (rc != X86EMUL_OKAY) || regs.ecx != 0xf || *res != 0xfedcba98 ||
-             (regs.eflags & 0xf6b) != 0x202 || !check_eip(blsmsk) )
+             (regs.eflags & (EFLAGS_MASK & ~(X86_EFLAGS_AF | X86_EFLAGS_PF))) !=
+              EFLAGS_ALWAYS_SET ||
+             !check_eip(blsmsk) )
             goto fail;
         printf("okay\n");
     }
@@ -2007,10 +2013,13 @@ int main(int argc, char **argv)
                        :: "d" (NULL) );
         set_insn(blsr);
 
-        regs.eflags = 0xac3;
+        regs.eflags = EFLAGS_ALWAYS_SET | X86_EFLAGS_OF | X86_EFLAGS_ZF | \
+                      X86_EFLAGS_CF;
         rc = x86_emulate(&ctxt, &emulops);
         if ( (rc != X86EMUL_OKAY) || regs.ecx != 0xfedcba90 ||
-             (regs.eflags & 0xf6b) != 0x202 || !check_eip(blsr) )
+             (regs.eflags & (EFLAGS_MASK & ~(X86_EFLAGS_AF | X86_EFLAGS_PF))) !=
+              (EFLAGS_ALWAYS_SET | X86_EFLAGS_SF) ||
+             !check_eip(blsr) )
             goto fail;
         printf("okay\n");
     }
@@ -2028,11 +2037,14 @@ int main(int argc, char **argv)
 
         regs.ecx    = (unsigned long)res;
         regs.edx    = 0xff13;
-        regs.eflags = 0xa43;
+        regs.eflags = EFLAGS_ALWAYS_SET | X86_EFLAGS_OF | X86_EFLAGS_SF | \
+                      X86_EFLAGS_ZF | X86_EFLAGS_CF;
         rc = x86_emulate(&ctxt, &emulops);
         if ( (rc != X86EMUL_OKAY) || regs.ebx != (*res & 0x7ffff) ||
              regs.edx != 0xff13 || *res != 0xfedcba98 ||
-             (regs.eflags & 0xf6b) != 0x202 || !check_eip(bzhi) )
+             (regs.eflags & (EFLAGS_MASK & ~(X86_EFLAGS_AF | X86_EFLAGS_PF))) !=
+              EFLAGS_ALWAYS_SET ||
+             !check_eip(bzhi) )
             goto fail;
         printf("okay\n");
     }



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 15:00:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 15:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834706.1250484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAsNP-0006pb-Ql; Tue, 12 Nov 2024 15:00:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834706.1250484; Tue, 12 Nov 2024 15:00: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 1tAsNP-0006pU-O2; Tue, 12 Nov 2024 15:00:19 +0000
Received: by outflank-mailman (input) for mailman id 834706;
 Tue, 12 Nov 2024 15:00: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=KiBs=SH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tAsNO-0005Nh-Fm
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 15:00:18 +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 d2bd0d6c-a106-11ef-a0c6-8be0dac302b0;
 Tue, 12 Nov 2024 16:00:15 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4315839a7c9so54933045e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 07:00: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-381ed970d4fsm15943613f8f.5.2024.11.12.07.00.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 07: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: d2bd0d6c-a106-11ef-a0c6-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC13bTEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQyYmQwZDZjLWExMDYtMTFlZi1hMGM2LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDIzNjE1LjExNTIzMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731423614; x=1732028414; 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=2e73lNpqWAQaerd/QqjxQ4QTEF6fQc4PS73hY19V+HU=;
        b=O3et9FqtEJNDsiAPMa8csFZDpmlfRSWNngaH9fMs65bUTcZtAWUJPpNyKmTVnQCRrr
         ub78j4f4M4ddkKLJTebqQBXPwoSaL8XrAkPr7NjtBOBnZCEaScgV2lLUeKcuCfbBg+mf
         gxd/puXol131YaVaAigCcBpRt2CpVpjMn0PpYDqB4SCQKjX0jr5otSVUqctS7Po5d1nM
         xDBoDXMPQlrEei3ayvqK44hOMuRBdH0eDTqUDFoe23WcIW1cNnZ9pzppX93scid0Mmkz
         b4r3vEY+YD6Qzw0nNvDaTd7pKqmctaiPG4ZdpZVWRWMngs/SFSMYsqdW9d/Gu3h9iudO
         nVpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731423614; x=1732028414;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2e73lNpqWAQaerd/QqjxQ4QTEF6fQc4PS73hY19V+HU=;
        b=XmCutP59hqrUAJbYMv2PST3W5u/mpiqF8Xq9CE2g4Vy101I5lI3di5Z8EsqzMAkqQj
         dX8oDUr+zvABqK1oFSe7kTtJ52dJQ53P+AcmmJwslqXfsA5Z0i1BCn1bzn0g8a8G5h+Q
         zJnSiVSKhGRu7WYMxl0ylf2CtvsMlY4KT+gB+mSxs7I4ZsjeYKLRVW2KDRm4nYRRjA13
         cimODBpAcE833qQjJg7WcPrfMwva4FdLZvCAtSlx+uNUEbX4L0qQc/gNOuSOaFUshi8e
         GItG0JfaNQvyya3pjyRGeJYNXFyRCYgp5pqMDByralof5/LmZJKsXOdjxSSpv3nL5wdh
         b8gg==
X-Gm-Message-State: AOJu0Yx0/HbW/AAOHZhSP/WGUGSMlnDheojOOOrIHM9Wn8icDUks9G1t
	YOwZ/5rTcyCjc2RoIwL0G5m06sE+8Z3PIhZkaHnAvCXotbUCR9ssAEOVHN9HU6yUywpz5N17MSk
	=
X-Google-Smtp-Source: AGHT+IF67DGfviVwmtxPkZ3i+sojSiv+/cZPnownk4sLN26pXgCUrSd3iPqqJI6f11YwAxrBj2WyfQ==
X-Received: by 2002:a05:6000:480b:b0:37d:45f0:dd08 with SMTP id ffacd0b85a97d-381f186731amr14552355f8f.11.1731423614413;
        Tue, 12 Nov 2024 07:00:14 -0800 (PST)
Message-ID: <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
Date: Tue, 12 Nov 2024 16:00:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] x86emul: ignore VEX.W for BMI{1,2} insns in 32-bit mode
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: <367ba117-f376-433b-bd70-586d7519d94c@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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While result values and other status flags are unaffected as long as we
can ignore the case of registers having their upper 32 bits non-zero
outside of 64-bit mode, EFLAGS.SF may obtain a wrong value when we
mistakenly re-execute the original insn with VEX.W set.

Note that the memory access, if any, is correctly carried out as 32-bit
regardless of VEX.W. Internal state also isn't leaked, as the field the
memory value is read into (which is then wrongly accessed as a 64-bit
quantity when executing the stub) is pre-initialized to zero.

Fixes: 771daacd197a ("x86emul: support BMI1 insns")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -2021,6 +2021,30 @@ int main(int argc, char **argv)
               (EFLAGS_ALWAYS_SET | X86_EFLAGS_SF) ||
              !check_eip(blsr) )
             goto fail;
+
+#ifdef __x86_64__
+        /* Re-test with VEX.W set while emulating 32-bit mode. */
+        ctxt.lma       = 0;
+        ctxt.addr_size = 32;
+        ctxt.sp_size   = 32;
+
+        memcpy(instr, blsr, blsr_end - blsr);
+        instr[2] |= 0x80;
+        regs.rip = (unsigned long)&instr[0];
+        regs.eflags = EFLAGS_ALWAYS_SET | X86_EFLAGS_OF | X86_EFLAGS_ZF | \
+                      X86_EFLAGS_CF;
+        rc = x86_emulate(&ctxt, &emulops);
+        if ( (rc != X86EMUL_OKAY) || regs.ecx != 0xfedcba90 ||
+             (regs.eflags & (EFLAGS_MASK & ~(X86_EFLAGS_AF | X86_EFLAGS_PF))) !=
+              (EFLAGS_ALWAYS_SET | X86_EFLAGS_SF) ||
+             (regs.rip != (unsigned long)&instr[blsr_end - blsr]) )
+            goto fail;
+
+        ctxt.lma       = 1;
+        ctxt.addr_size = 64;
+        ctxt.sp_size   = 64;
+#endif
+
         printf("okay\n");
     }
     else
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -6896,6 +6896,8 @@ x86_emulate(
         *pvex = vex;
         pvex->b = 1;
         pvex->r = 1;
+        if ( !mode_64bit() )
+            pvex->w = 0;
         pvex->reg = 0xf; /* rAX */
         buf[3] = b;
         buf[4] = 0x09; /* reg=rCX r/m=(%rCX) */
@@ -6930,6 +6932,8 @@ x86_emulate(
         *pvex = vex;
         pvex->b = 1;
         pvex->r = 1;
+        if ( !mode_64bit() )
+            pvex->w = 0;
         pvex->reg = 0xf; /* rAX */
         buf[3] = b;
         buf[4] = (modrm & 0x38) | 0x01; /* r/m=(%rCX) */



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 15:03:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 15:03:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834730.1250538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAsQ7-00089y-Nt; Tue, 12 Nov 2024 15:03:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834730.1250538; Tue, 12 Nov 2024 15: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 1tAsQ7-00089r-K5; Tue, 12 Nov 2024 15:03:07 +0000
Received: by outflank-mailman (input) for mailman id 834730;
 Tue, 12 Nov 2024 15:03: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=T01z=SH=epam.com=Artem_Mygaiev@srs-se1.protection.inumbo.net>)
 id 1tAsQ7-00089l-2Y
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 15:03:07 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20626.outbound.protection.outlook.com
 [2a01:111:f403:2612::626])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36fe88b3-a107-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 16:03:03 +0100 (CET)
Received: from AM9PR03MB7680.eurprd03.prod.outlook.com (2603:10a6:20b:41d::24)
 by PAVPR03MB9703.eurprd03.prod.outlook.com (2603:10a6:102:313::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.26; Tue, 12 Nov
 2024 15:03:00 +0000
Received: from AM9PR03MB7680.eurprd03.prod.outlook.com
 ([fe80::5d8b:ec56:b7cf:8c4c]) by AM9PR03MB7680.eurprd03.prod.outlook.com
 ([fe80::5d8b:ec56:b7cf:8c4c%7]) with mapi id 15.20.8137.027; Tue, 12 Nov 2024
 15:02: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: 36fe88b3-a107-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjI2IiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjM2ZmU4OGIzLWExMDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDIzNzgzLjQ1NTg2Mywic2VuZGVyIjoiYXJ0ZW1fbXlnYWlldkBlcGFtLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pyD+H6b+S0l0fdVaOo53RTKvuj68qROg6XH/P3uP9FzyJJ8G+48ut7qUaP7yRHDA6WfsFBEXjB0yyUHZkkwIn/ru9Cv/BmAq47fIqUtra+au9wdOkAOxG2tLQvrVQkU/tuvzgCZy4wCxfx9o6lgwEWuxKVNvdWKDSF46FSS1hd4WGXilenyExlmow+rDmK+fIRBKTrTvu9OVb3hx5hEiX7BzvzjFwGFz99O8QXgzoI3ThB68s8FbKWPzV4aRc4wwAjb16D1dekay/+DAUG03qeJ85NniwgM33CGKKyxwVDukbwrRtQNQVZfzLhZzCF74MtNUXhepz7gDiGkja4e3Bg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kCZmdN1i/YEHMfL2b6q9+uX/kJnQenauO/NLQtZd970=;
 b=qzrzH19ZHPbqxEvgg5Jo92htyiQXN+zuCcs40u9yldO6WckOYEXzAZ2Ovs7tI/TDZXmkR+kv5JMWyK9kBvn1UAAEFK6oVV0sJ1T1GmKYGmG9gvhkWGlLVCu7pFU4IcEBciGPNHtihvWYbTTtEKqMFVy1b4P4MreLQi0YD2uPGCyS7kgLyz/glYCFgOrO3Z2rPuIY1wgW2XiwJUhFUQ2IV7leyba51SgkNINnN28ErbIcJqbRJBNPxfnYX26pJICTXBLh/dNV9UdK3u5evH9lh1s5AEkbPezG3RFVnHiZOB6DU7JIhh/z19YbIYPM9hbDzVGetGdB1KQr1hAkmB9sRg==
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=kCZmdN1i/YEHMfL2b6q9+uX/kJnQenauO/NLQtZd970=;
 b=nTD8j+7brvVrIXlju7YhJXNTTRcr8NYF1BPWL1nC/HbQUUQ3f41ElC9AnL/3qp1pKZk+NXzy06Nh4afepdnUbpKOhERw/etzzpD59gx5xsp7Q8vMHp55lPs4KS+2sJG8wa/00jCXwBX2uJxh4QntsljR1+siP9D+WyFBpa8SlKee/yZb1pVezpohnTmoGU1Ury+KQFNEnQPznmAV6fJLpu4nWEdlwEyFf72cmgdXL31xOowDYj8TbEBaYAlksFlXnxlEygiHa/5afRFHwXqv/lp+tIJnQOOigQGvs//wZ2F2OWg04O/fzP5MFFzMbH6kPgpC+2SP9shEL+PuH6AztQ==
From: Artem Mygaiev <Artem_Mygaiev@epam.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Munakata Hisao <hisao.munakata.vt@renesas.com>
Subject: Re: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
Thread-Topic: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
Thread-Index: AQHbIXWuASycxuwjpUOJwZCeCRQus7Kz4w//
Date: Tue, 12 Nov 2024 15:02:59 +0000
Message-ID:
 <AM9PR03MB7680CB5714FDB6DDDB4B551BF4592@AM9PR03MB7680.eurprd03.prod.outlook.com>
References: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
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: AM9PR03MB7680:EE_|PAVPR03MB9703:EE_
x-ms-office365-filtering-correlation-id: 2b351cf3-2a03-45b4-a70c-08dd032b194c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?m36bPD5nwxgV1yvtV8Rda1lieEVfx3jYy5hA9maTaEhoxnySHSyQIsepfP?=
 =?iso-8859-1?Q?lppxtAYSi/QgffiF91AIiJmSa4Qge4wxwFPsM4swY8OvJs/3FvUiDCVhUP?=
 =?iso-8859-1?Q?OqVwLE3lXZJFN+4w26UXHBn5V8pAi6y9iSlkLyrOeAUMUOKt8uiTtAkjW9?=
 =?iso-8859-1?Q?X7+CsYXDl+Bf6ZoFXhTXAbTGZ+Z+OridmA22GDlW4QMqZg2co7IMj2TI4m?=
 =?iso-8859-1?Q?/MUUgQsR83YPPPqsQHJjW6TSa5tY1+kTlAAhnj8TEHCg8rVx6KbjWTuA4u?=
 =?iso-8859-1?Q?ue/300vGfZklWztJktzGhSXoD1v1YZ5cfoNxLoFfR4tMAe7HNy5SwWasKs?=
 =?iso-8859-1?Q?kLUunTmT/317yAUVp6Vpk9xS+8L0vF83+bSqCoGRykoow0lTACGw1buwlF?=
 =?iso-8859-1?Q?qEIHdosew6e6hjFBeq1OY0zV3huEbFbLHtuFfJxP4vdGkJaL75kXuOMFcY?=
 =?iso-8859-1?Q?W1N7nrH4/8gh6nUVDJWGzjrUUfaVIF+X3Mww2wMr9f83WQ9XE9+dTjZk/C?=
 =?iso-8859-1?Q?jLFkr8a9gRrI6Xjr8/IMPaPkMivKgAntG25HD2qWSs2tv7PlM3RHHSWlre?=
 =?iso-8859-1?Q?SUUksGgrybqutGiueTDepg2ZbdS8+Rd89/xurUff7KiuUwxyl3YnuA4RIu?=
 =?iso-8859-1?Q?5qr6ErTrpUzcDufUiwQHOtrlFF81uioC+HDvF1AT+MGTiiwXUlBQaSHZje?=
 =?iso-8859-1?Q?PM0kodQ5M7aqTwEuY5+6O6XQI+Grh5wTCACI5F2hXEgOKDZJF6QmA7spn/?=
 =?iso-8859-1?Q?Oe8FmpUX9WvxgO5jxhJEm58GZpCbaQT6redG7Rmzt/C72mZ0F8dcI1Twod?=
 =?iso-8859-1?Q?RbZRdrYmyzihJhIIxD/QMcQtV77PkH1hLONPFeYx9CbAysw4x4Okoqnwrk?=
 =?iso-8859-1?Q?BOrp66AZ9AvYFv5iHv1uAjXiBoz8hcANPSOgbSGpl4a5g0rG/TNbulge5a?=
 =?iso-8859-1?Q?wVlvRKWZZ9BviZnIeNgFaGlVDoxShuPeHRc1TTo2GlAFHwT0uqBGO0Y55H?=
 =?iso-8859-1?Q?7x6NvQVz5IVO2OiGkTisJR9A9cS7/oEkhlY3sE72pWiFRNNoBKb7D3eLTB?=
 =?iso-8859-1?Q?zfibyQCLdaYFAPhQ/4f0roM9btBN2gqHAg8VBUvkvZUybr6kwK1cG8dkOq?=
 =?iso-8859-1?Q?icz/5iln94c/mymxin956ylVnJe99ehnjh3G8MBairH5mGYpg8Z2SeAVq4?=
 =?iso-8859-1?Q?PgVXDyHNnTSw2eNV+uMCMxstcg79VLjbcktkOYw1vq6WmMYJ7Ne1GqZnC5?=
 =?iso-8859-1?Q?Vo+D16S7PiEXuMKZwYND4TOagxQO47t4cppqLZqzMJ915stEyzNO/Yr7he?=
 =?iso-8859-1?Q?O3WlZKDkWUUaDPQ9y+bSMAgyAGwCka8wAnACdxdj/imdAb3xhh13g1dlx9?=
 =?iso-8859-1?Q?9dyKl7siycsho46LzOGNHOvV5xpYGfBAHz/EPU/f8GXIKzpdYIV8U=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7680.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?0FOizYHLRj6iqvXFe//9kgcP0m7oo8StVNh8rDumuE8dVDiphU+UYdK54b?=
 =?iso-8859-1?Q?1tTSYKMaiLyWgWx2EFsIlOzGLhZ5jBYJ2bzMyeCYEh9L1M/GhxeShnUEG5?=
 =?iso-8859-1?Q?aQy1KujEoXq3ZsTEourvCDVhkbUvLwkVLwfi+VX2wuHy2yYOMXPayQywtI?=
 =?iso-8859-1?Q?XxcDMoTSS+kG+D2bfT9Z8WonAIUIbBIpM7oR1ZCehEHZB+um/k06DSAXDq?=
 =?iso-8859-1?Q?qWtlY2E1MzhI1EylDhZDn9o6AFPzCuSiz3p3Nn7IS4oma7bHdpIgFzFgPH?=
 =?iso-8859-1?Q?EiH34ARZxRdGHMFcLpxDyu7+/mK6laLU7o0Yjc3Iey6mB20PLrbao0R5hU?=
 =?iso-8859-1?Q?pIPF5aQ7ekif4nIaZqMNktxqwQ8VJ7KZTULkjFfASyRMqPPkDIMGkmXaFO?=
 =?iso-8859-1?Q?9VOOwZr2nKuiA7D04bk2RFRwsa/p9Et2LFG/Pc54w4cBA4BJCWF9ilSs+g?=
 =?iso-8859-1?Q?vNf6hH95OqmDXRP44P7drXB7obyLWR6plh8SM60TJP16QWqdiDenAEYzhl?=
 =?iso-8859-1?Q?fJYvk46pHcUYvR2TfB3TVLjhCQTNb05t2W0CTzl3GW+Bhja4vsYGWJKtMJ?=
 =?iso-8859-1?Q?H+KXjOXo+FyfQvRTYPmZHRvUO5rK/fVdInPOzeHPPSXHuxMrvJWf1r/9j4?=
 =?iso-8859-1?Q?PFWay/5hc8PRNzZEag5f/l9hA66cyAv4l2iTXkNE/H7mM3DUTcv64OPOiM?=
 =?iso-8859-1?Q?4EbmaemA1xKVOTnKGEfv0e6EI0fLSe2LEALphU6A+Tz0ZVFYSkbwXXHK+J?=
 =?iso-8859-1?Q?JpwvFb/ulv2nfRRZfNG7hTphTErnIPleTOGlsN/vISbUHG7upfsZqQUXCx?=
 =?iso-8859-1?Q?mlZRPWtNUYY5FWTwJpdkwS3aCemSvL6CFAngh0haR7ByVDogHGuEnKljZ2?=
 =?iso-8859-1?Q?tdOcJqeS9XPlQ6MDUWN2iJyUDcmFvGQfx8+0tYiEaFk0bUcpRyLp88NpQY?=
 =?iso-8859-1?Q?bzGyXC5f7MDs3x3q5eUbf/OBIq0WZC9BDvd4RDA3MVBCyMg1jXzYoYP776?=
 =?iso-8859-1?Q?Sg0dAsZBD4y3IzQ4wPSwufDXUIyRrr/Ho0c9tVhIW/D4X52LtRfeoBWZkN?=
 =?iso-8859-1?Q?y42GQ60bbZkdYEe34bSLrqG8Cg8y1Ic5WWe54kDADWeR/aObdhoAHyV29P?=
 =?iso-8859-1?Q?36TOlmB06i0R7S8BE084JAkCpPuThP8pPddD6NiMUC0PQb9bpPqSSz2Rks?=
 =?iso-8859-1?Q?djEi9g2v4JykTG03Kh8quTFIH4kFOum8h6jzTQwAUHrxMVyc/mMSC+aBo7?=
 =?iso-8859-1?Q?01M41YDszZOBOLx+TzM1RuEscEFZyXNAGRFNeVCiV5RM6U+iFHihKWrmjg?=
 =?iso-8859-1?Q?5XBBpvbIbPMaCrD2YZgA8QR2oWAVFcvb3NhxpTHH1H/3g2dHTjRaLOIyGB?=
 =?iso-8859-1?Q?wGvlKAd9MOydt7sZDm2hVPe6TiXM/tNjKkNo1ITA5BRTgM3txszPtBuktp?=
 =?iso-8859-1?Q?KsC0pOVVLC5RD2SFMrdHWfgCi2VWDQBWp1/dHr81bujsPu/nkPJNytox8s?=
 =?iso-8859-1?Q?6nmtP+yBQL6zFMd4bf7cc2yZQeZoE87fgWEblPMCItDmjg3OiTk3yiy1vE?=
 =?iso-8859-1?Q?d33WYetZL7zlIVbu5SKVY6I0MG6pQLGpD+YMaJJbztzGi34xBinE8a8vhS?=
 =?iso-8859-1?Q?SGfzayHSzHzS4JNpwU7fVULiSdPcNTLYOO?=
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: AM9PR03MB7680.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2b351cf3-2a03-45b4-a70c-08dd032b194c
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2024 15:02:59.9224
 (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: Z0drahElqAdkbDnroIgGDxEyKbQgAaKvhobkuwQISUfZzigEksRFrLCyvp1koxvp5RJCLXwF//miok/XJCrcPg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9703

On October 18, 2024 Ayan Kumar Halder <ayan.kumar.halder@amd.com> wrote:=0A=
=0A=
> From: Michal Orzel <michal.orzel@amd.com>=0A=
>=0A=
> Add requirements for dom0less domain creation.=0A=
>=0A=
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>=0A=
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>=0A=
> ---=0A=
=0A=
Reviewed-by: Artem Mygaiev <artem_mygaiev@epam.com>=0A=
=0A=
Minor: in lines like=0A=
 - Xen shall assign multiple vCPUs to a domain=0A=
 - Xen shall assign a CPU pool scheduler to a domain=0A=
is it better with 'specified'? E.g. "specified number of vCPUs" and so on.=
=0A=
=0A=
 -- Artem=


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 16:01:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 16:01:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834767.1250595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAtKO-0008Tz-BQ; Tue, 12 Nov 2024 16:01:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834767.1250595; Tue, 12 Nov 2024 16: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 1tAtKO-0008Ts-8T; Tue, 12 Nov 2024 16:01:16 +0000
Received: by outflank-mailman (input) for mailman id 834767;
 Tue, 12 Nov 2024 16: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=6R0y=SH=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tAtKM-0008Th-Q3
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 16:01:15 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20604.outbound.protection.outlook.com
 [2a01:111:f403:2414::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 519f8017-a10f-11ef-a0c7-8be0dac302b0;
 Tue, 12 Nov 2024 17:01:04 +0100 (CET)
Received: from BN0PR04CA0173.namprd04.prod.outlook.com (2603:10b6:408:eb::28)
 by DM6PR12MB4121.namprd12.prod.outlook.com (2603:10b6:5:220::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29; Tue, 12 Nov
 2024 16:01:01 +0000
Received: from BL6PEPF0001AB71.namprd02.prod.outlook.com
 (2603:10b6:408:eb:cafe::de) by BN0PR04CA0173.outlook.office365.com
 (2603:10b6:408:eb::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.27 via Frontend
 Transport; Tue, 12 Nov 2024 16:01:00 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 12 Nov 2024 16:01:00 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 12 Nov
 2024 10:01:00 -0600
Received: from [172.30.86.253] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Nov 2024 10:00:59 -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: 519f8017-a10f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjA0IiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUxOWY4MDE3LWExMGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDI3MjY0LjkwNzA3LCJzZW5kZXIiOiJzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w1B4aNqD++eRWkPQjPyac+6m6fvrVNusrFdFdvCSbvFNd/TGvd/qViSE6HT9vXU+0r1j7sINIBPWQWfOtC0ZJr3cE0pf10qLZWqX+Dt9WVycQOs7wpuKxaE70WN0T/FG32renFahBD6A+IC5yx1rHhidNgG1UYf1LXNBDLmQGNlGvfoKETYeX8JslCBLWtt1fsOEoDV6MxvGlQRuMFe6cB0E/8ukns1DDpgCuRmLpBRJcXqlMVaWR+XfMpQeZ9NPROCDbm6xrAlfv7I8imDYG59LILXpx/AVeN/CoinW26w0pon9h7iGT16f18XqmW2m0IeakABmbpTgwd/xs7p/ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PTZLk1iieylWAST39twh0thxYLbnNl8fkf/YLFcoGEg=;
 b=qddeETldBE0o8Ckj4eoaL4dBUolJ6/Bxpd92Wgr7he7Z0lD3NG4VyxeOwVpYn9HkaXDB/z67DM7mmr0OMnNsComsw4YTRaMWCAMAHWJMISG5ul3om25K/V/dlR2AImUjhXFgpPg7QYqn5bFH0Y5+vIxVt9lu8KnT/xMfPslFFo784yF11l5tKajxrtVx+vh0eliz45PoVJp6CMto5SK42Huf6aKvM5FyWgOdKQSFFDb47rW5LUNZyNB9erVXy4EsaJaK7ac8kfbkC+XkQ49FNbc0dp9qJk/NEYHi/avhqD7wGa0HpDVVoMHwQ/TO6eQq89FyvRkhhifNw2NumZUEOQ==
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=PTZLk1iieylWAST39twh0thxYLbnNl8fkf/YLFcoGEg=;
 b=G2r2Op50BsSP/YBo3UftrPBYzQLm3t/MJl/bcSSrPXOMG5NfZ5Kr23WwJ7dWg44jeC9TjRKGyzyY4EFYWXCvesmoGYDvE5Jn3zzV/fE7bLnlQgT6EOTqFooh6Wjj2NQHbd+xMrGcRCxt8ZAVmi3OMgpNogpZmSEORqnaoUJ2GjY=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <4aa24b39-5734-4b0a-8969-dc3eb4942975@amd.com>
Date: Tue, 12 Nov 2024 11:00:58 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>, Anthony PERARD
	<anthony.perard@vates.tech>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB71:EE_|DM6PR12MB4121:EE_
X-MS-Office365-Filtering-Correlation-Id: dbf168d0-fa4a-4689-1e70-08dd03333423
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b3NQVU9wUm94VlcxVlhmZ0xnNERSZ1dTdDR2TWs5bXJBSjZ1QzQ0OVNqMmJt?=
 =?utf-8?B?VWt1ZDBiWitlakFrb0lPOW5WaVBLQVFqRDhmNmFNTXFPQ3ZiNmNuVG0wdjRy?=
 =?utf-8?B?aXh6Zk16UGJTRUsyVHNhNVZGc2VZMnJ3cXZWck5Lak9RM0xHL2d4RWQ5WnJC?=
 =?utf-8?B?UEtsN0VtTHJKYm84MUh4QnEwNExtR3o4S2tSL3liUU9LS1ZsOXlWYzlWSXZY?=
 =?utf-8?B?cDEzNjQ4TUVrczZuWlg1RGtQa21IUW8vTGl1elRoU3lJTVRjODhnRlVqVEJn?=
 =?utf-8?B?ZmNMYnZ1anpWZnI0QWlwVzZxUC9oS3JUV05PeFpIVThTNGFSR3BLWWtXbEJk?=
 =?utf-8?B?bEVGRlJOVkZ5NzlCRnd0Q3pQYkFpd3d4dzRtcUtRUWtkdjJGZDBxNjR1MTZt?=
 =?utf-8?B?SU4va1ZtQk1yYk9zVGVMOVR3ZURDeHlxeXJaMzJhdmlrM0lKTDU0UTFyWGth?=
 =?utf-8?B?YjZvNVlsWDBzRFVJdUEwNkltYzZxSVpDaFNwSTgrV25XOC9VSUNoc0xzSFVC?=
 =?utf-8?B?eFU1RjByMkZyN2tmUW9BRGRDdm54a1hMbmpMV1BaZHhuR2wvdkJnQko5MUtL?=
 =?utf-8?B?eEZCaTlNdWFaRDhkRjAzZVQ0N1BHbVBjQjVRb2grUlk3dnVQS2dpQXBGV0pl?=
 =?utf-8?B?cjQyTWo4OUVnUzlMMncxL1VISklXc3AzWUNYVElOK0RHTGxITE1BNDAyWVNj?=
 =?utf-8?B?UUFMOTcrRjhCZWhPOXUrR3UzaUszRDVKa1RDcmVqTkQ2SHZSWmxKa2xwY3N5?=
 =?utf-8?B?aFp1a28wUjlrTE5xRUdXd1RjQzVIcFJTZVhmVU0xYzJtbXduRTJyMWVCOWxN?=
 =?utf-8?B?VGptdDhEMjVGd3BpcHRLTFhDZGRKRlFuTTcxekZXUGkzeDZ6MzhydG9zUmx2?=
 =?utf-8?B?VGk1Q1FZanZ3UWtTUmEwWEhJSXBHay9zYXozT2VROTBweDJqb0VjUlZ3NUtL?=
 =?utf-8?B?QlZ5N2hQdVk0NVpiUEtiS1BpV1FPbDVkazBGblZtQ3ZLNWxVUUhTRWZGMmUv?=
 =?utf-8?B?V3pwRzA0Q3BWNTR0Mm01VWhsYStvT2tpVjZVRTlwa1h5dmFERzI0RCtzRWtO?=
 =?utf-8?B?eGlSMjF5MitlVVNVUEJBTzc0MEg0MlY2SHpoMm1FRnV0eGExbjFzWVlGWUxL?=
 =?utf-8?B?RlFuQXlVSE5jYlN3bFNmc2lESm05QUhSLzhQUjBwR1VzeTJiT2ZlRUoyQlR2?=
 =?utf-8?B?UUtIMS9hWUlhaVc3UnBlaHNyYXZuQ25XbktEaWVXd3oveGs4aE5CQlVGVHNL?=
 =?utf-8?B?Sm1sRXNXK09uU0NCT3JqdFdzREM5dFNUVnJFelIxeGFhcTRTSCtrdlo3VFJR?=
 =?utf-8?B?SUpycGY3L0xFdGhmOWNFSHdHdG0wRmxVVXZMOGpZb2FzVUJsS3B2cUxGR05K?=
 =?utf-8?B?akQ3V2NjZC94YkUzcWN5bEp5USt0ZkVkbkMrVlVST0l2bGdtQzNZTnpSeGNt?=
 =?utf-8?B?M2s3S05RaFZqYVFHRDRWMjVyb1hZdFNxeWdtS0pobktZQjN3N1RPR1Z6c1U5?=
 =?utf-8?B?UWZSUlFXWGtUMWdpamJPZW1PVm1QeXg0azNqWlhDYlowTzcyLzdqSUk1NnRD?=
 =?utf-8?B?Vml1KzRJaUJBbDJkQUhra3Z4bnhFTElFUk90MzFzc1lWenJ3QzhXdnFSOVdD?=
 =?utf-8?B?SFJaWnZFZzJIVVQrVkU4NFQxU1BZeHFxZXY3MUhkWTJGT2ZaSFljSU00eTJK?=
 =?utf-8?B?Q1FoM2pCL1NFemhUWlgrWWpGUUNLUkh3YTVTUzFYY1Z3YmxnUEVLSnVTQldj?=
 =?utf-8?B?MVdGR1c5RHVPd3g1ajF6aEpLYUZ5Wms2RmtGdy9TeGtjR2wvcGdRSW5iYy9a?=
 =?utf-8?B?S1pteDJhNmUzZ0thdmo4UG5OUHFnY1BvUGhKYW1SUm5GRlRwcmtLNEN5SEZC?=
 =?utf-8?B?V2M4MVpmODZwMmJwNS9HdTUzbDRKTnlJZ040a2x0TitwTGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2024 16:01:00.8629
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dbf168d0-fa4a-4689-1e70-08dd03333423
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=[SATLEXMB04.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: DM6PR12MB4121

On 11/12/24 08:00, Jan Beulich wrote:
> All,
> 
> the release is due by the end of the month. Please point out backports you find
> missing from the respective staging branch, but which you consider relevant.
> 
> Advance notice: 4.18.4 ought to follow about two weeks later.
> 
> Jan
> 

Looking for Julien's input on this one:

35c64c3dce01 ("xen/arm64: entry: Actually skip do_trap_*() when an SError is triggered")

As mentioned in the post-commit notes [0] it's a candidate for backport.

[0] https://lore.kernel.org/xen-devel/20240806124815.53492-1-julien@xen.org/


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 16:11:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 16:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834776.1250606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAtUI-0001nB-Cg; Tue, 12 Nov 2024 16:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834776.1250606; Tue, 12 Nov 2024 16: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 1tAtUI-0001n4-93; Tue, 12 Nov 2024 16:11:30 +0000
Received: by outflank-mailman (input) for mailman id 834776;
 Tue, 12 Nov 2024 16:11: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 1tAtUH-0001my-Qj
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 16:11: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 1tAtUH-001jJ4-0v;
 Tue, 12 Nov 2024 16:11:29 +0000
Received: from [15.248.2.232] (helo=[10.24.67.20])
 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 1tAtUH-001kJf-0r;
 Tue, 12 Nov 2024 16:11: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>
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=AZ8OqXc6YwUQaN5MGr8PdPIryfPI/9W6Ei845rikZew=; b=A81r5ai0Wg2yk7VzsaFjtBYZb0
	KnO++epEr2dd9A2VP6A6Id1dWztvWMpglrQUzltAKJZfRd9fsrfTre6FXIYD2FJmDpCLJm1ONUEqx
	GFd0pPbAxNg0gQrFSlGuPbBBMUTbwhnkbZoUhS+n3+q24VTgZcM4ajidtAX8O0hAg4Qg=;
Message-ID: <718c2a9c-15b0-4f21-941a-5094c06787c7@xen.org>
Date: Tue, 12 Nov 2024 16:11:27 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [ARM] Re: preparations for 4.19.1
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Kelly Choi <kelly.choi@cloud.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <4aa24b39-5734-4b0a-8969-dc3eb4942975@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4aa24b39-5734-4b0a-8969-dc3eb4942975@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/11/2024 16:00, Stewart Hildebrand wrote:
> On 11/12/24 08:00, Jan Beulich wrote:
>> All,
>>
>> the release is due by the end of the month. Please point out backports you find
>> missing from the respective staging branch, but which you consider relevant.
>>
>> Advance notice: 4.18.4 ought to follow about two weeks later.
>>
>> Jan
>>
> 
> Looking for Julien's input on this one:
> 
> 35c64c3dce01 ("xen/arm64: entry: Actually skip do_trap_*() when an SError is triggered")
> 
> As mentioned in the post-commit notes [0] it's a candidate for backport.

In the past, Stefano handled backports for Arm. I am not sure if this is 
still case. Stefano?

> 
> [0] https://lore.kernel.org/xen-devel/20240806124815.53492-1-julien@xen.org/

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 16:17:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 16:17:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834784.1250615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAtZf-0002OW-U6; Tue, 12 Nov 2024 16:17:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834784.1250615; Tue, 12 Nov 2024 16: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 1tAtZf-0002OP-RH; Tue, 12 Nov 2024 16:17:03 +0000
Received: by outflank-mailman (input) for mailman id 834784;
 Tue, 12 Nov 2024 16:17: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=wkFt=SH=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tAtZe-0002O9-Ss
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 16:17:03 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b6adebf-a111-11ef-a0c7-8be0dac302b0;
 Tue, 12 Nov 2024 17:16:59 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2fb3c3d5513so52388451fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 08:16: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: 8b6adebf-a111-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmUiLCJoZWxvIjoibWFpbC1sajEteDIyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhiNmFkZWJmLWExMTEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDI4MjE5LjgzNjA3Mywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731428219; x=1732033019; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=BFyKybdgHjLq0U2sDrNggPuZnV0JhhGBzsJ1QhvXXwM=;
        b=iidahvOBXixSNMrOrGe8LDNToCi2i/fb+n++nqzyZvMgxVh897xXJFeenNT08uUveH
         hmufmDmxY6dS2/ZKcaBThzLqB1iexyOFRViJMOPkAOHvdUJ3BTCh8vxik1hFshbKLqfH
         7IxKozS8y6V1UWT7TobJAmVhD44g8aP7X1PifheR8Ai1nzZHC+kNU3/pgahaOWX/f9Pr
         siOu6HzgihAxeACgYZ4HSQoRnXGH5CsIcPqwOqHZyZXIg99V4RktMuok7Ul0AnGHcfGP
         TySxkDi/3mpw3xD2EpFabeThrvfLlm2WGdZN1eZypZH7cHgOnL7Eu4O1W9KU9kVjalXK
         t+EA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731428219; x=1732033019;
        h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=BFyKybdgHjLq0U2sDrNggPuZnV0JhhGBzsJ1QhvXXwM=;
        b=VVhAsaKDPhiJL0B0faXTxfmedbe/a7V6xiLPVlNNwaHgMAHB0xBvGk0DXI1IPEZXu7
         5KEO8/IJQtJ3TWSMC2vQdhaU/tWleA8sGU+mX6Dh6ci+TSK0DDt3wF3Mjy3KUkNvi/iP
         iHepJK3X9t5c61zHpGyOuZYmVggnRapeqQkiJlw1u4oQWn3E/Vi7GCiT07JksI9jTYbC
         gMuJs477e+J9aeFOGRh8Cf0vEd5TxoAStRytCpHLEQSMiTVYPKmiO84MgVBPPxLfxoXw
         /PsgTDpkgqPQbb0F2lQySEBGYRDG04n0zPm96oaE9szHDotbVje7W9/HJjz5ac7QwyPr
         KYlw==
X-Gm-Message-State: AOJu0Yy/NCr38a6m6b5F/TEQ+NdZbGQpTxgjpzRaSyjWFJugd3u5awLm
	S7q5qaeB0EPxpIqPyqsTdyT+YlKLJi8RtYtXT+BMOm7bMZzbxAuWGhGF2TR40p/iyl2b6af1tMQ
	z0tI7k1SgZhevo6H5aAKuaCsuH1aHFsO7K1U=
X-Google-Smtp-Source: AGHT+IFbh4aZ0T0Q7oW7VD7laoFL3Qj+T/l6hYJpD7/rVlPyzpsI0GVxhSiHAnIFAZDSFlPy+Dt27yHOVVgKnNo8bYk=
X-Received: by 2002:a05:651c:544:b0:2f6:6074:db71 with SMTP id
 38308e7fff4ca-2ff2016d2a1mr61590561fa.17.1731428217725; Tue, 12 Nov 2024
 08:16:57 -0800 (PST)
MIME-Version: 1.0
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Date: Tue, 12 Nov 2024 17:16:21 +0100
Message-ID: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
Subject: Xen 4.20 Development Update [August-October]
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Kelly Choi <kelly.choi@cloud.com>
Content-Type: multipart/alternative; boundary="000000000000df32d70626b98bca"

--000000000000df32d70626b98bca
Content-Type: text/plain; charset="UTF-8"

Hello everyone,

This email only tracks big items for xen.git tree. Please reply for items
you
would like to see in 4.20 so that people have an idea what is going on and
prioritise accordingly.

You're welcome to provide description and use cases of the feature you're
working on.

= Timeline =

---> We are here
* Last posting date: Nov 29, 2024
* Feature freeze date: Dec 20, 2024
* Hard code freeze: Jan 17, 2025
* RC1: TBD
* Release: Feb 21, 2025
( current release schedule:
https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes )

All patches that wish to go into 4.20 must be posted no later than the last
posting
date. All patches posted after that date will be automatically queued
into next release.

RCs will be arranged immediately after freeze.

= Projects =

== Hypervisor ==

*  Remove the directmap (v4)
  -  Elias El Yandouzi
  -
https://lore.kernel.org/xen-devel/f6973275-0d7e-4db4-b949-f21e530e1dfc@citrix.com/T/#m9733aa717edf032db0cf8f8f6763537b4f30c1f8

*  remove libxenctrl usage from xenstored (v1)
  -  Juergen Gross
  -
https://lore.kernel.org/xen-devel/20241023131005.32144-1-jgross@suse.com/T/#md016c48a0889740d1822aa68f7f33d4ad48f4805

*  automation: Refresh the remaining Debian containers (v2)
  -  Javi Merino
  -
https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@cloud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e

*  Move gic_preinit() to common code (v2)
  -  Oleksii Kurochko
  -
https://lore.kernel.org/xen-devel/2fe01b5a-aebb-4141-9cdd-887b5984d6b8@suse.com/T/#m8144a030ef64a479068482c864c9258a5cb43a87

*  stubdom: reduce xenstore library dependencies (v1)
  -  Juergen Gross
  -
https://lore.kernel.org/xen-devel/20241010155459.22389-1-jgross@suse.com/T/#m8b5af386e2d288961bb6e8f7839650e0cab96a83

*  xen: address violations of MISRA C Rule 13.6 (v2)
  -  Federico Serafini
  -
https://lore.kernel.org/xen-devel/cover.1727690180.git.federico.serafini@bugseng.com/T/#mbec702db211240305e0d35649e65627d9fa75a29

=== x86 ===

*  Expose consistent topology to guests (v7)
  -  Alejandro Vallejo
  -
https://lore.kernel.org/xen-devel/20241021154600.11745-1-alejandro.vallejo@cloud.com/T/#m6033f95c660675039d7789d3af1ba2f292a3a69b

*  Boot modules for Hyperlaunch (v8)
  -  Daniel P. Smith
  -
https://lore.kernel.org/xen-devel/20241102172551.17233-1-dpsmith@apertussolutions.com/T/#m94a2f6b9d410c6d624aaebd7c2bf85584c74383e

*  x86/mm: miscellaneous fixes (v2)
  -  Roger Pau Monne
  -
https://lore.kernel.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m2df34239b793501c6246c85c4b00e52f9c439ac0

*  x86/ucode: Simplify/fix loading paths further (v1)
  -  Andrew Cooper
  -
https://lore.kernel.org/xen-devel/20241107122117.4073266-1-andrew.cooper3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625d1

*  Address Space Isolation FPU preparations (v2)
  -  Alejandro Vallejo
  -
https://lore.kernel.org/xen-devel/20241105143310.28301-1-alejandro.vallejo@cloud.com/T/#mbca5192d7e5636ef5ea005a083e5ff28ebe6317d

*  Fix module-handling use-after-free's (v2)
  -  Andrew Cooper
  -
https://lore.kernel.org/xen-devel/20241106003938.3453243-1-andrew.cooper3@citrix.com/T/#mdf923bdf63b034a6493bf62beeead280b92a38ed

*  Reuse 32 bit C code more safely (v4)
  -  Frediano Ziglio
  -
https://lore.kernel.org/xen-devel/20241014085332.3254546-1-frediano.ziglio@cloud.com/T/#m53e36815ddec2511ddd1fa8d1a7ed9a27c0cd0f7

*  x86/alternatives: Adjust all insn-relative fields (v2)
  -  Andrew Cooper
  -
https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129

*  x86: address violations of MISRA C Rule 16.3 (v1)
  -  Federico Serafini
  -
https://lore.kernel.org/xen-devel/cover.1725958416.git.federico.serafini@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be01ab6

*  Support device passthrough when dom0 is PVH on Xen (v16)
  -  Jiqian Chen
  -
https://lore.kernel.org/xen-devel/20240930034250.2682265-1-Jiqian.Chen@amd.com/T/#m5d557d76f290ff5b5550c1443cab5774d397e526

*  x86emul: misc additions (v5)
  -  Jan Beulich
  -
https://lore.kernel.org/xen-devel/0b9a0ae8-a39c-49d8-b4e7-f2a463128058@suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe780e

*  x86/HVM: drop stdvga caching mode (v2)
  -  Jan Beulich
  -
https://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6-8fbc-67a177a1e171@suse.com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117

*  x86/HVM: emulation (MMIO) improvements (v1)
  -  Jan Beulich
  -
https://lore.kernel.org/xen-devel/31906cba-8646-4cf9-ab31-1d23654df8d1@suse.com/T/#mdae2f21b929170d60a8640e82857700c940e65c7

=== ARM ===

*  Enable early bootup of AArch64 MPU systems (v5)
  -  Ayan Kumar Halder
  -
https://lore.kernel.org/xen-devel/20241107150330.181143-1-ayan.kumar.halder@amd.com/T/#m9cfd8bed109cc703b6ae8b8b6faaa116c08598ee

*  Add support for S32CC platforms and LINFlexD UART (v2)
  -  Andrei Cherechesu
  -
https://lore.kernel.org/xen-devel/20240930114715.642978-1-andrei.cherechesu@oss.nxp.com/T/#m8452ac342fdcf989fc1e498c097812b50157f2cc

*  Arm cache coloring (v9)
  -  Carlo Nonato
  -
https://lore.kernel.org/xen-devel/20241025095014.42376-1-carlo.nonato@minervasys.tech/T/#md18fb02842c4ad2cd61b456be89020affcc452a3

*  ffa: Improvements and fixes (v2)
  -  Bertrand Marquis
  -
https://lore.kernel.org/xen-devel/cover.1729066788.git.bertrand.marquis@arm.com/T/#mb0c8aab97d46f9c9e933b3b9b0eef7e717e1f2e5

*  Add Virtio-PCI for dom0less on ARM (v1)
  -  Edgar E. Iglesias
  -
https://lore.kernel.org/xen-devel/20240924162359.1390487-1-edgar.iglesias@gmail.com/T/#mfa148991b9408f223a079d4cef610244d5b04c2b

=== RISCV ===

*  Setup memory management (v5)
  -  Oleksii Kurochko
  -
https://lore.kernel.org/xen-devel/cover.1731344883.git.oleksii.kurochko@gmail.com/T/#m9f76f1b685896ea603a2b153e05104c7405a7d28

=== PPC ===

*  Early Boot Allocation on Power (v5)
  -  Shawn Anastasio
  -
https://lore.kernel.org/xen-devel/cover.1727388925.git.sanastasio@raptorengineering.com/T/#m8cac91a93b56a359fa2d5f08596c4be61dca290d

== Completed ==

=== Hypervisor ===

*  libxl: Implement QEMU command line probe (v1)
  -  Anthony PERARD
  -
https://lore.kernel.org/xen-devel/20240827100328.23216-1-anthony.perard@vates.tech/T/#mdef23cefc2532ab0c9d7460290cef26780cf97cb

*  xen/bitops: hweight() cleanup/improvements (v3)
  -  Andrew Cooper
  -
https://lore.kernel.org/xen-devel/20240904225530.3888315-1-andrew.cooper3@citrix.com/T/#me22e08f7477be725122dd9b97d29d272e3b586c4

*  Move percpu code to common (v2)
  -  Oleksii Kurochko
  -
https://lore.kernel.org/xen-devel/cover.1727185495.git.oleksii.kurochko@gmail.com/T/#mf93394c46f15cbdcfc873de2d52d862a8b70da7f

*  xen/livepatch: improvements to loading (v3)
  -  Roger Pau Monne
  -
https://lore.kernel.org/xen-devel/20240926101431.97444-1-roger.pau@citrix.com/T/#ma3f65948b065dc443aea2192873a3b3dfa52a2d7

*  Move {acpi_}device_init() and device_get_class() to common code (v5)
  -  Oleksii Kurochko
  -
https://lore.kernel.org/xen-devel/17c7d988e45d7c82448b81fe66b01a5ceca0c15e.camel@gmail.com/T/#m68bd00d4f8b3724e83ba13024e94b15b58a28829

*  blkif: reconcile protocol specification with in-use implementations (v1)
  -  Roger Pau Monne
  -
https://lore.kernel.org/xen-devel/20240903141923.72241-1-roger.pau@citrix.com/

=== x86 ===

*  Drop Xeon Phi support (v1)
  -  Jan Beulich
  -
https://lore.kernel.org/xen-devel/44147507-65a4-4f21-aada-fa647f53ffd0@suse.com/

*  Utilize ucode_force and remove opt_ucode_allow_same (v7)
  -  Fouad Hilly
  -
https://lore.kernel.org/xen-devel/20240822130426.492931-4-fouad.hilly@cloud.com/

*  Switch flat driver to use phys dst for ext ints (v2)
  -  Matthew Barnes
  -
https://lore.kernel.org/xen-devel/0db68e62ffc428f553a30397df1e79068d26bb5f.1728311378.git.matthew.barnes@cloud.com/

*  x86/shutdown: change default reboot method preference (v1)
  -  Roger Pau Monne
  -
https://lore.kernel.org/xen-devel/20240802105613.99197-1-roger.pau@citrix.com/

=== ARM ===

*  iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H) support (v1)
  -  Grygorii Strashko
  -
https://lore.kernel.org/xen-devel/6ab4ad29-404d-4f5c-8582-5d2f492fd549@xen.org/T/#t

*  xen/arm: dt overlay fixes (v2)
  -  Michal Orzel
  -
https://lore.kernel.org/xen-devel/20241004122220.234817-1-michal.orzel@amd.com/T/#md51a060b93fe72f17637d6d72e3d4e2296cb4078

=== RISC-V ===

*  initialize bootinfo from dtb (v2)
  -  Oleksii Kurochko
  -
https://lore.kernel.org/xen-devel/cover.1728481578.git.oleksii.kurochko@gmail.com/T/#m543bf84d47f0ea738938a9a442cd144bb34f7316

*  Register Xen's load address as a boot module (v3)
  -  Oleksii Kurochko
  -
https://lore.kernel.org/xen-devel/cover.1728472163.git.oleksii.kurochko@gmail.com/T/#t

*  device tree mapping (v9)
  -  Oleksii Kurochko
  -
https://lore.kernel.org/xen-devel/cover.1727781468.git.oleksii.kurochko@gmail.com/T/#t

--000000000000df32d70626b98bca
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hello everyone,</div><div><br></div>This email only t=
racks big items for xen.git tree. Please reply for items you<br>would like =
to see in 4.20 so that people have an idea what is going on and<br>prioriti=
se accordingly.<br><br>You&#39;re welcome to provide description and use ca=
ses of the feature you&#39;re<br>working on.<br><br>=3D Timeline =3D<br><br=
>---&gt; We are here<br>* Last posting date: Nov 29, 2024<br>* Feature free=
ze date: Dec 20, 2024<br>* Hard code freeze: Jan 17, 2025<br>* RC1: TBD<br>=
* Release: Feb 21, 2025<br>( current release schedule: <a href=3D"https://w=
iki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes">https://wiki.xenpro=
ject.org/wiki/Xen_Project_X.YY_Release_Notes</a> )<br><br>All patches that =
wish to go into 4.20 must be posted no later than the last posting<br>date.=
 All patches posted after that date will be automatically queued<br>into ne=
xt release.<br><br>RCs will be arranged immediately after freeze.<br><br>=
=3D Projects =3D<br><br>=3D=3D Hypervisor =3D=3D <br><br>* =C2=A0Remove the=
 directmap (v4)<br>=C2=A0 - =C2=A0Elias El Yandouzi<br>=C2=A0 - =C2=A0<a hr=
ef=3D"https://lore.kernel.org/xen-devel/f6973275-0d7e-4db4-b949-f21e530e1df=
c@citrix.com/T/#m9733aa717edf032db0cf8f8f6763537b4f30c1f8">https://lore.ker=
nel.org/xen-devel/f6973275-0d7e-4db4-b949-f21e530e1dfc@citrix.com/T/#m9733a=
a717edf032db0cf8f8f6763537b4f30c1f8</a><br><br>* =C2=A0remove libxenctrl us=
age from xenstored (v1)<br>=C2=A0 - =C2=A0Juergen Gross<br>=C2=A0 - =C2=A0<=
a href=3D"https://lore.kernel.org/xen-devel/20241023131005.32144-1-jgross@s=
use.com/T/#md016c48a0889740d1822aa68f7f33d4ad48f4805">https://lore.kernel.o=
rg/xen-devel/20241023131005.32144-1-jgross@suse.com/T/#md016c48a0889740d182=
2aa68f7f33d4ad48f4805</a><br><br>* =C2=A0automation: Refresh the remaining =
Debian containers (v2)<br>=C2=A0 - =C2=A0Javi Merino<br>=C2=A0 - =C2=A0<a h=
ref=3D"https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@c=
loud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e">https://lore.kernel.=
org/xen-devel/cover.1730743077.git.javi.merino@cloud.com/T/#m5d9acb7cf5db3c=
2be3d6527de14b69b07812314e</a><br><br>* =C2=A0Move gic_preinit() to common =
code (v2)<br>=C2=A0 - =C2=A0Oleksii Kurochko<br>=C2=A0 - =C2=A0<a href=3D"h=
ttps://lore.kernel.org/xen-devel/2fe01b5a-aebb-4141-9cdd-887b5984d6b8@suse.=
com/T/#m8144a030ef64a479068482c864c9258a5cb43a87">https://lore.kernel.org/x=
en-devel/2fe01b5a-aebb-4141-9cdd-887b5984d6b8@suse.com/T/#m8144a030ef64a479=
068482c864c9258a5cb43a87</a><br><br>* =C2=A0stubdom: reduce xenstore librar=
y dependencies (v1)<br>=C2=A0 - =C2=A0Juergen Gross<br>=C2=A0 - =C2=A0<a hr=
ef=3D"https://lore.kernel.org/xen-devel/20241010155459.22389-1-jgross@suse.=
com/T/#m8b5af386e2d288961bb6e8f7839650e0cab96a83">https://lore.kernel.org/x=
en-devel/20241010155459.22389-1-jgross@suse.com/T/#m8b5af386e2d288961bb6e8f=
7839650e0cab96a83</a><br><br>* =C2=A0xen: address violations of MISRA C Rul=
e 13.6 (v2)<br>=C2=A0 - =C2=A0Federico Serafini<br>=C2=A0 - =C2=A0<a href=
=3D"https://lore.kernel.org/xen-devel/cover.1727690180.git.federico.serafin=
i@bugseng.com/T/#mbec702db211240305e0d35649e65627d9fa75a29">https://lore.ke=
rnel.org/xen-devel/cover.1727690180.git.federico.serafini@bugseng.com/T/#mb=
ec702db211240305e0d35649e65627d9fa75a29</a><br><br>=3D=3D=3D x86 =3D=3D=3D =
<br><br>* =C2=A0Expose consistent topology to guests (v7)<br>=C2=A0 - =C2=
=A0Alejandro Vallejo<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/x=
en-devel/20241021154600.11745-1-alejandro.vallejo@cloud.com/T/#m6033f95c660=
675039d7789d3af1ba2f292a3a69b">https://lore.kernel.org/xen-devel/2024102115=
4600.11745-1-alejandro.vallejo@cloud.com/T/#m6033f95c660675039d7789d3af1ba2=
f292a3a69b</a><br><br>* =C2=A0Boot modules for Hyperlaunch (v8)<br>=C2=A0 -=
 =C2=A0Daniel P. Smith<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org=
/xen-devel/20241102172551.17233-1-dpsmith@apertussolutions.com/T/#m94a2f6b9=
d410c6d624aaebd7c2bf85584c74383e">https://lore.kernel.org/xen-devel/2024110=
2172551.17233-1-dpsmith@apertussolutions.com/T/#m94a2f6b9d410c6d624aaebd7c2=
bf85584c74383e</a><br><br>* =C2=A0x86/mm: miscellaneous fixes (v2)<br>=C2=
=A0 - =C2=A0Roger Pau Monne<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kerne=
l.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m2df34239b793501c6246c85c4b00e5=
2f9c439ac0">https://lore.kernel.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m=
2df34239b793501c6246c85c4b00e52f9c439ac0</a><br><br>* =C2=A0x86/ucode: Simp=
lify/fix loading paths further (v1)<br>=C2=A0 - =C2=A0Andrew Cooper <br>=C2=
=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/20241107122117.407=
3266-1-andrew.cooper3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625=
d1">https://lore.kernel.org/xen-devel/20241107122117.4073266-1-andrew.coope=
r3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625d1</a><br><br>* =C2=
=A0Address Space Isolation FPU preparations (v2)<br>=C2=A0 - =C2=A0Alejandr=
o Vallejo<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/20=
241105143310.28301-1-alejandro.vallejo@cloud.com/T/#mbca5192d7e5636ef5ea005=
a083e5ff28ebe6317d">https://lore.kernel.org/xen-devel/20241105143310.28301-=
1-alejandro.vallejo@cloud.com/T/#mbca5192d7e5636ef5ea005a083e5ff28ebe6317d<=
/a><br><br>* =C2=A0Fix module-handling use-after-free&#39;s (v2)<br>=C2=A0 =
- =C2=A0Andrew Cooper <br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org=
/xen-devel/20241106003938.3453243-1-andrew.cooper3@citrix.com/T/#mdf923bdf6=
3b034a6493bf62beeead280b92a38ed">https://lore.kernel.org/xen-devel/20241106=
003938.3453243-1-andrew.cooper3@citrix.com/T/#mdf923bdf63b034a6493bf62beeea=
d280b92a38ed</a><br><br>* =C2=A0Reuse 32 bit C code more safely (v4)<br>=C2=
=A0 - =C2=A0Frediano Ziglio<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kerne=
l.org/xen-devel/20241014085332.3254546-1-frediano.ziglio@cloud.com/T/#m53e3=
6815ddec2511ddd1fa8d1a7ed9a27c0cd0f7">https://lore.kernel.org/xen-devel/202=
41014085332.3254546-1-frediano.ziglio@cloud.com/T/#m53e36815ddec2511ddd1fa8=
d1a7ed9a27c0cd0f7</a><br><br>* =C2=A0x86/alternatives: Adjust all insn-rela=
tive fields (v2)<br>=C2=A0 - =C2=A0Andrew Cooper <br>=C2=A0 - =C2=A0<a href=
=3D"https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.coope=
r3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129">https://lore.ke=
rnel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#ma=
c2deaea7e02a343210d61887486433d946ad129</a><br><br>* =C2=A0x86: address vio=
lations of MISRA C Rule 16.3 (v1)<br>=C2=A0 - =C2=A0Federico Serafini<br>=
=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/cover.172595841=
6.git.federico.serafini@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be=
01ab6">https://lore.kernel.org/xen-devel/cover.1725958416.git.federico.sera=
fini@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be01ab6</a><br><br>* =
=C2=A0Support device passthrough when dom0 is PVH on Xen (v16)<br>=C2=A0 - =
=C2=A0Jiqian Chen<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-=
devel/20240930034250.2682265-1-Jiqian.Chen@amd.com/T/#m5d557d76f290ff5b5550=
c1443cab5774d397e526">https://lore.kernel.org/xen-devel/20240930034250.2682=
265-1-Jiqian.Chen@amd.com/T/#m5d557d76f290ff5b5550c1443cab5774d397e526</a><=
br><br>* =C2=A0x86emul: misc additions (v5)<br>=C2=A0 - =C2=A0Jan Beulich<b=
r>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/0b9a0ae8-a39c=
-49d8-b4e7-f2a463128058@suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe78=
0e">https://lore.kernel.org/xen-devel/0b9a0ae8-a39c-49d8-b4e7-f2a463128058@=
suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe780e</a><br><br>* =C2=A0x8=
6/HVM: drop stdvga caching mode (v2)<br>=C2=A0 - =C2=A0Jan Beulich<br>=C2=
=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6=
-8fbc-67a177a1e171@suse.com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117">h=
ttps://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6-8fbc-67a177a1e171@suse.=
com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117</a><br><br>* =C2=A0x86/HVM=
: emulation (MMIO) improvements (v1)<br>=C2=A0 - =C2=A0Jan Beulich<br>=C2=
=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/31906cba-8646-4cf9=
-ab31-1d23654df8d1@suse.com/T/#mdae2f21b929170d60a8640e82857700c940e65c7">h=
ttps://lore.kernel.org/xen-devel/31906cba-8646-4cf9-ab31-1d23654df8d1@suse.=
com/T/#mdae2f21b929170d60a8640e82857700c940e65c7</a><br><br>=3D=3D=3D ARM =
=3D=3D=3D <br><br>* =C2=A0Enable early bootup of AArch64 MPU systems (v5)<b=
r>=C2=A0 - =C2=A0Ayan Kumar Halder<br>=C2=A0 - =C2=A0<a href=3D"https://lor=
e.kernel.org/xen-devel/20241107150330.181143-1-ayan.kumar.halder@amd.com/T/=
#m9cfd8bed109cc703b6ae8b8b6faaa116c08598ee">https://lore.kernel.org/xen-dev=
el/20241107150330.181143-1-ayan.kumar.halder@amd.com/T/#m9cfd8bed109cc703b6=
ae8b8b6faaa116c08598ee</a><br><br>* =C2=A0Add support for S32CC platforms a=
nd LINFlexD UART (v2)<br>=C2=A0 - =C2=A0Andrei Cherechesu <br>=C2=A0 - =C2=
=A0<a href=3D"https://lore.kernel.org/xen-devel/20240930114715.642978-1-and=
rei.cherechesu@oss.nxp.com/T/#m8452ac342fdcf989fc1e498c097812b50157f2cc">ht=
tps://lore.kernel.org/xen-devel/20240930114715.642978-1-andrei.cherechesu@o=
ss.nxp.com/T/#m8452ac342fdcf989fc1e498c097812b50157f2cc</a><br><br>* =C2=A0=
Arm cache coloring (v9)<br>=C2=A0 - =C2=A0Carlo Nonato<br>=C2=A0 - =C2=A0<a=
 href=3D"https://lore.kernel.org/xen-devel/20241025095014.42376-1-carlo.non=
ato@minervasys.tech/T/#md18fb02842c4ad2cd61b456be89020affcc452a3">https://l=
ore.kernel.org/xen-devel/20241025095014.42376-1-carlo.nonato@minervasys.tec=
h/T/#md18fb02842c4ad2cd61b456be89020affcc452a3</a><br><br>* =C2=A0ffa: Impr=
ovements and fixes (v2)<br>=C2=A0 - =C2=A0Bertrand Marquis<br>=C2=A0 - =C2=
=A0<a href=3D"https://lore.kernel.org/xen-devel/cover.1729066788.git.bertra=
nd.marquis@arm.com/T/#mb0c8aab97d46f9c9e933b3b9b0eef7e717e1f2e5">https://lo=
re.kernel.org/xen-devel/cover.1729066788.git.bertrand.marquis@arm.com/T/#mb=
0c8aab97d46f9c9e933b3b9b0eef7e717e1f2e5</a><br><br>* =C2=A0Add Virtio-PCI f=
or dom0less on ARM (v1)<br>=C2=A0 - =C2=A0Edgar E. Iglesias<br>=C2=A0 - =C2=
=A0<a href=3D"https://lore.kernel.org/xen-devel/20240924162359.1390487-1-ed=
gar.iglesias@gmail.com/T/#mfa148991b9408f223a079d4cef610244d5b04c2b">https:=
//lore.kernel.org/xen-devel/20240924162359.1390487-1-edgar.iglesias@gmail.c=
om/T/#mfa148991b9408f223a079d4cef610244d5b04c2b</a><br><br>=3D=3D=3D RISCV =
=3D=3D=3D <br><br>* =C2=A0Setup memory management (v5)<br>=C2=A0 - =C2=A0Ol=
eksii Kurochko<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-dev=
el/cover.1731344883.git.oleksii.kurochko@gmail.com/T/#m9f76f1b685896ea603a2=
b153e05104c7405a7d28">https://lore.kernel.org/xen-devel/cover.1731344883.gi=
t.oleksii.kurochko@gmail.com/T/#m9f76f1b685896ea603a2b153e05104c7405a7d28</=
a><br><br>=3D=3D=3D PPC =3D=3D=3D <br><br>* =C2=A0Early Boot Allocation on =
Power (v5)<br>=C2=A0 - =C2=A0Shawn Anastasio<br>=C2=A0 - =C2=A0<a href=3D"h=
ttps://lore.kernel.org/xen-devel/cover.1727388925.git.sanastasio@raptorengi=
neering.com/T/#m8cac91a93b56a359fa2d5f08596c4be61dca290d">https://lore.kern=
el.org/xen-devel/cover.1727388925.git.sanastasio@raptorengineering.com/T/#m=
8cac91a93b56a359fa2d5f08596c4be61dca290d</a><br><br>=3D=3D Completed =3D=3D=
 <br><br>=3D=3D=3D Hypervisor =3D=3D=3D <br><br>* =C2=A0libxl: Implement QE=
MU command line probe (v1)<br>=C2=A0 - =C2=A0Anthony PERARD<br>=C2=A0 - =C2=
=A0<a href=3D"https://lore.kernel.org/xen-devel/20240827100328.23216-1-anth=
ony.perard@vates.tech/T/#mdef23cefc2532ab0c9d7460290cef26780cf97cb">https:/=
/lore.kernel.org/xen-devel/20240827100328.23216-1-anthony.perard@vates.tech=
/T/#mdef23cefc2532ab0c9d7460290cef26780cf97cb</a><br><br>* =C2=A0xen/bitops=
: hweight() cleanup/improvements (v3)<br>=C2=A0 - =C2=A0Andrew Cooper <br>=
=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/20240904225530.=
3888315-1-andrew.cooper3@citrix.com/T/#me22e08f7477be725122dd9b97d29d272e3b=
586c4">https://lore.kernel.org/xen-devel/20240904225530.3888315-1-andrew.co=
oper3@citrix.com/T/#me22e08f7477be725122dd9b97d29d272e3b586c4</a><br><br>* =
=C2=A0Move percpu code to common (v2)<br>=C2=A0 - =C2=A0Oleksii Kurochko<br=
>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/cover.17271854=
95.git.oleksii.kurochko@gmail.com/T/#mf93394c46f15cbdcfc873de2d52d862a8b70d=
a7f">https://lore.kernel.org/xen-devel/cover.1727185495.git.oleksii.kurochk=
o@gmail.com/T/#mf93394c46f15cbdcfc873de2d52d862a8b70da7f</a><br><br>* =C2=
=A0xen/livepatch: improvements to loading (v3)<br>=C2=A0 - =C2=A0Roger Pau =
Monne<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/202409=
26101431.97444-1-roger.pau@citrix.com/T/#ma3f65948b065dc443aea2192873a3b3df=
a52a2d7">https://lore.kernel.org/xen-devel/20240926101431.97444-1-roger.pau=
@citrix.com/T/#ma3f65948b065dc443aea2192873a3b3dfa52a2d7</a><br><br>* =C2=
=A0Move {acpi_}device_init() and device_get_class() to common code (v5)<br>=
=C2=A0 - =C2=A0Oleksii Kurochko<br>=C2=A0 - =C2=A0<a href=3D"https://lore.k=
ernel.org/xen-devel/17c7d988e45d7c82448b81fe66b01a5ceca0c15e.camel@gmail.co=
m/T/#m68bd00d4f8b3724e83ba13024e94b15b58a28829">https://lore.kernel.org/xen=
-devel/17c7d988e45d7c82448b81fe66b01a5ceca0c15e.camel@gmail.com/T/#m68bd00d=
4f8b3724e83ba13024e94b15b58a28829</a><br><br>* =C2=A0blkif: reconcile proto=
col specification with in-use implementations (v1)<br>=C2=A0 - =C2=A0Roger =
Pau Monne<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/20=
240903141923.72241-1-roger.pau@citrix.com/">https://lore.kernel.org/xen-dev=
el/20240903141923.72241-1-roger.pau@citrix.com/</a><br><br>=3D=3D=3D x86 =
=3D=3D=3D <br><br>* =C2=A0Drop Xeon Phi support (v1)<br>=C2=A0 - =C2=A0Jan =
Beulich<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/4414=
7507-65a4-4f21-aada-fa647f53ffd0@suse.com/">https://lore.kernel.org/xen-dev=
el/44147507-65a4-4f21-aada-fa647f53ffd0@suse.com/</a><br><br>* =C2=A0Utiliz=
e ucode_force and remove opt_ucode_allow_same (v7)<br>=C2=A0 - =C2=A0Fouad =
Hilly<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/202408=
22130426.492931-4-fouad.hilly@cloud.com/">https://lore.kernel.org/xen-devel=
/20240822130426.492931-4-fouad.hilly@cloud.com/</a><br><br>* =C2=A0Switch f=
lat driver to use phys dst for ext ints (v2)<br>=C2=A0 - =C2=A0Matthew Barn=
es<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/0db68e62f=
fc428f553a30397df1e79068d26bb5f.1728311378.git.matthew.barnes@cloud.com/">h=
ttps://lore.kernel.org/xen-devel/0db68e62ffc428f553a30397df1e79068d26bb5f.1=
728311378.git.matthew.barnes@cloud.com/</a><br><br>* =C2=A0x86/shutdown: ch=
ange default reboot method preference (v1)<br>=C2=A0 - =C2=A0Roger Pau Monn=
e<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xen-devel/2024080210=
5613.99197-1-roger.pau@citrix.com/">https://lore.kernel.org/xen-devel/20240=
802105613.99197-1-roger.pau@citrix.com/</a><br><br>=3D=3D=3D ARM =3D=3D=3D =
<br><br>* =C2=A0iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H) support =
(v1)<br>=C2=A0 - =C2=A0Grygorii Strashko<br>=C2=A0 - =C2=A0<a href=3D"https=
://lore.kernel.org/xen-devel/6ab4ad29-404d-4f5c-8582-5d2f492fd549@xen.org/T=
/#t">https://lore.kernel.org/xen-devel/6ab4ad29-404d-4f5c-8582-5d2f492fd549=
@xen.org/T/#t</a><br><br>* =C2=A0xen/arm: dt overlay fixes (v2)<br>=C2=A0 -=
 =C2=A0Michal Orzel<br>=C2=A0 - =C2=A0<a href=3D"https://lore.kernel.org/xe=
n-devel/20241004122220.234817-1-michal.orzel@amd.com/T/#md51a060b93fe72f176=
37d6d72e3d4e2296cb4078">https://lore.kernel.org/xen-devel/20241004122220.23=
4817-1-michal.orzel@amd.com/T/#md51a060b93fe72f17637d6d72e3d4e2296cb4078</a=
><br><br>=3D=3D=3D RISC-V =3D=3D=3D <br><br>* =C2=A0initialize bootinfo fro=
m dtb (v2)<br>=C2=A0 - =C2=A0Oleksii Kurochko<br>=C2=A0 - =C2=A0<a href=3D"=
https://lore.kernel.org/xen-devel/cover.1728481578.git.oleksii.kurochko@gma=
il.com/T/#m543bf84d47f0ea738938a9a442cd144bb34f7316">https://lore.kernel.or=
g/xen-devel/cover.1728481578.git.oleksii.kurochko@gmail.com/T/#m543bf84d47f=
0ea738938a9a442cd144bb34f7316</a><br><br>* =C2=A0Register Xen&#39;s load ad=
dress as a boot module (v3)<br>=C2=A0 - =C2=A0Oleksii Kurochko<br>=C2=A0 - =
=C2=A0<a href=3D"https://lore.kernel.org/xen-devel/cover.1728472163.git.ole=
ksii.kurochko@gmail.com/T/#t">https://lore.kernel.org/xen-devel/cover.17284=
72163.git.oleksii.kurochko@gmail.com/T/#t</a><br><br>* =C2=A0device tree ma=
pping (v9)<br>=C2=A0 - =C2=A0Oleksii Kurochko<br>=C2=A0 - =C2=A0<a href=3D"=
https://lore.kernel.org/xen-devel/cover.1727781468.git.oleksii.kurochko@gma=
il.com/T/#t">https://lore.kernel.org/xen-devel/cover.1727781468.git.oleksii=
.kurochko@gmail.com/T/#t</a></div>

--000000000000df32d70626b98bca--


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 17:18:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 17:18:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834802.1250626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAuWg-0001cd-F4; Tue, 12 Nov 2024 17:18:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834802.1250626; Tue, 12 Nov 2024 17:18: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 1tAuWg-0001cW-Aq; Tue, 12 Nov 2024 17:18:02 +0000
Received: by outflank-mailman (input) for mailman id 834802;
 Tue, 12 Nov 2024 17:18: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=TvMk=SH=invisiblethingslab.com=demi@srs-se1.protection.inumbo.net>)
 id 1tAuWf-0001cL-9E
 for xen-devel@lists.xen.org; Tue, 12 Nov 2024 17:18:01 +0000
Received: from fout-b8-smtp.messagingengine.com
 (fout-b8-smtp.messagingengine.com [202.12.124.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a341f7b-a11a-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 18:17:49 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.phl.internal
 [10.202.2.46])
 by mailfout.stl.internal (Postfix) with ESMTP id D93B01140158;
 Tue, 12 Nov 2024 12:17:47 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Tue, 12 Nov 2024 12:17:48 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 12 Nov 2024 12:17:46 -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: 0a341f7b-a11a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTUxIiwiaGVsbyI6ImZvdXQtYjgtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBhMzQxZjdiLWExMWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDMxODc1Ljg3NjM1Mywic2VuZGVyIjoiZGVtaUBpbnZpc2libGV0aGluZ3NsYWIuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbi5vcmcifQ==
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=1731431867;
	 x=1731518267; bh=ijnLtDgvmWOar4/me3j4PwWALwrWFCx/YAIFNwDgOBw=; b=
	lS+Fn4zYVlZXHHy+GfYpm/GzyedEGFcQHnVIZlu9zNgjMGUHl6XkWtqxutBuBMD0
	JWMy6u+dboC5tq1FbfOgiqzrU+lIm7rfI5QjhH6VldPD7a6HO7TYzZI+ZInPG3q6
	2fgBU+WsaBuUdO+H7OJhHyBM8Kf/8PJVhng6AOUbSpapTPBZdpsgEIBWOtLagXai
	aCNeCv/9XJsm9hM6S9oteY8HSIhdQdHjhdncf6gb7bbnXxuAXr+m9CYXlSwQb7O/
	n9P5vE4DT+5qwILyBeRzG+MlhUFcVkDW2QDjaUmVtwKEcrVJR+bcgmxJwf6v4gUy
	xoS30AbiuUlOUErXRXKTsQ==
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=fm3; t=
	1731431867; x=1731518267; bh=ijnLtDgvmWOar4/me3j4PwWALwrWFCx/YAI
	FNwDgOBw=; b=kPskJuplgj0NZxMxMWgPy410eOS/88O0doZx2uri4jNyd1Hr+kQ
	d+hch0Y3U7WKRFt/y5I9/fuvQG24+EVLjTcjEkgufFeVAfCnZ5fyf2uyd+D/Q+wm
	qB8YAeI2I/c5yZ6Wn9RW62RLg2iyOBQ22fN0b5hjhzL9DBkMLaeiwG7sPC25fuLc
	a35TdwcJVfqc3aTOSqScr1m//c2ohXYYhggqStVL7eAk5I5kyAmzHoIi1VJtMqqY
	VQY9NMY5i7GepezFf0c+84OmzXJHs1I3CDYJGMbLze+9lU4hNAKijILvLvqj8igy
	WgIhdo+ir0hJAuSJ5oVcn0rVLDfGPpINg7Q==
X-ME-Sender: <xms:u40zZ7Rx02M1_2f6Bgx1-R7cLUQQqmzspx4yrAzuliQ1d2KQo-J91A>
    <xme:u40zZ8w9FavlOqOON5rqXruL7P5cnMK60jmb-Dr1FTeQPL_hkXwlURkhQOnQe62Pa
    SOr-DmlfSjEKkQ>
X-ME-Received: <xmr:u40zZw3wAMX71O-kTKaIsDr2XyAR1L9OY3v44jpWctvEw7Wy9qi0Ho5Bf2EZk1YdS6eozQbJm3ygGC7p9-KctwPG66ZWNkyRLk4RTr9pHGZg2UH5>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrudeggdelhecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr
    tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth
    hsucdlqddutddtmdenucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttddvnecu
    hfhrohhmpeffvghmihcuofgrrhhivgcuqfgsvghnohhurhcuoeguvghmihesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeduieelfeeu
    tedvleehueetffejgeejgeffkeelveeuleeukeejjeduffetjeekteenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpeguvghmihesihhnvhhishhi
    sghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepsh
    hmthhpohhuthdprhgtphhtthhopehoshhsqdhsvggtuhhrihhthieslhhishhtshdrohhp
    vghnfigrlhhlrdgtohhmpdhrtghpthhtohepgigvnhdqrghnnhhouhhntggvsehlihhsth
    hsrdigvghnrdhorhhgpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigv
    nhdrohhrghdprhgtphhtthhopeigvghnqdhushgvrhhssehlihhsthhsrdigvghnrdhorh
    hgpdhrtghpthhtohepshgvtghurhhithihqdhtvggrmhdqmhgvmhgsvghrshesgigvnhdr
    ohhrgh
X-ME-Proxy: <xmx:u40zZ7BP8Y9x5dbJFapL0dHJOItfObf9Zv2RypGXR1F5z9w9JycH9Q>
    <xmx:u40zZ0jS2mlypibJLGqdReyo0kREI8cWJSe2Rv-7Op18NIOHwYUtZw>
    <xmx:u40zZ_rUXnY2Q4DAgLwzaMQXbPhRai3aMcvoWedDMJRIBIKZTOAH0g>
    <xmx:u40zZ_jbzi78V9kDhB31SeBie1useTaol-G3oKh9H2g8C_RA3KAAZg>
    <xmx:u40zZ8fxEqtbaIIiEkkRym-hjm-q_J1YFGm6IqvbgCPbYX-i6R4jR-kS>
Feedback-ID: iac594737:Fastmail
Date: Tue, 12 Nov 2024 12:17:32 -0500
From: Demi Marie Obenour <demi@invisiblethingslab.com>
To: oss-security@lists.openwall.com, xen-announce@lists.xen.org,
	xen-devel@lists.xen.org, xen-users@lists.xen.org
Cc: "Xen.org security team" <security-team-members@xen.org>
Subject: Re: [oss-security] Xen Security Advisory 464 v2 (CVE-2024-45819) -
 libxl leaks data to PVH guests via ACPI tables
Message-ID: <ZzONuZFo1-AXNOFd@itl-email>
References: <E1tApeV-001S2c-2H@xenbits.xenproject.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="7Jj9SHbtbfH3XlO5"
Content-Disposition: inline
In-Reply-To: <E1tApeV-001S2c-2H@xenbits.xenproject.org>


--7Jj9SHbtbfH3XlO5
Content-Type: text/plain; protected-headers=v1; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 12 Nov 2024 12:17:32 -0500
From: Demi Marie Obenour <demi@invisiblethingslab.com>
To: oss-security@lists.openwall.com, xen-announce@lists.xen.org,
	xen-devel@lists.xen.org, xen-users@lists.xen.org
Cc: "Xen.org security team" <security-team-members@xen.org>
Subject: Re: [oss-security] Xen Security Advisory 464 v2 (CVE-2024-45819) -
 libxl leaks data to PVH guests via ACPI tables

On Tue, Nov 12, 2024 at 12:05:47PM +0000, Xen Security wrote:
> Only PVH guests can leverage the vulnerability.  HVM and PV guests
> cannot leverage the vulnerability.  Note that PV guests when run inside
> the (PVH) shim can't leverage the vulnerability.

Is this unconditional (perhaps because the relevant data gets zeroed out
by the shim), or does it only apply when the PV guest can't extract data
=66rom the shim's memory?  For instance, 32-bit PV guests aren't security
supported anymore, but the PV shim isn't supposed to rely on the
security of the shim itself, only of the rest of the system.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
Invisible Things Lab

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

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

iQIzBAEBCAAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmczjbQACgkQszaHOrMp
8lNKRQ//fncRGpQS3i56xefRQVPTv0stbt6+FFFlM//dfnsbm3VBG6UNGKvU0wx3
mLCt6zBq1GvcApEyWPaoDUKAp8d+GKlBzMITEvsA7udAp48dAPcMel0/SE03faxW
P4g9MuLmiQuXDbjlhA+mwVNSxqrV+R9fDp0IstFy2XgnpWC1pjImtaUYITS2E1NK
QlSUWNVmnqrlKdbxxSGmJUYE2MDJ5C7QVsdra4jcCIjpkcQrpmyxNx6HM3EJRc7V
0PUd+XP8PYnpU4SSFgOmYXEhVDJGTISE1XIGDnhF8zzLVU5IPZLLNGu2kZyz1T2x
vxgsDb8FSsqleGIZXNZeNYLHzCKcEWrhxJCuH0El221MnIb0QP6iSKP1EQfNQShX
lUcJFNng63latxvebGUNpZ4GSkG21gpIF/0be2KZNCt1a8cUQM+A1/YCAf0e+idP
SX37fovtsg2wP+Z4R0vUCkacgj37PaCp40Fe7nRxcSan1wsCF40hnfJ2qENuWp8N
skEFG3u4yZ7onaayoQYi/LIAe1tj9oa8FnXbB2YwWwySS9W5YPZAGg7HlCtZapNN
PAPcou8vGFseKRVHbU5ojY33g3Ok72nd8Ge2djJopeQNDF4RkH7NauxFbxP3UDs+
RZ9jhJDHijOQHU20kmUEUudro7gZAMkkKzuNkTVt+BcZA0h/9Xs=
=72sK
-----END PGP SIGNATURE-----

--7Jj9SHbtbfH3XlO5--


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 17:23:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 17:23:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834813.1250636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAube-0003Dj-3Q; Tue, 12 Nov 2024 17:23:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834813.1250636; Tue, 12 Nov 2024 17:23: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 1tAube-0003Dc-0Z; Tue, 12 Nov 2024 17:23:10 +0000
Received: by outflank-mailman (input) for mailman id 834813;
 Tue, 12 Nov 2024 17:23: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAubc-0003DF-5k
 for xen-devel@lists.xen.org; Tue, 12 Nov 2024 17:23:08 +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 c4cd5d8e-a11a-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 18:23:01 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2feeb1e8edfso76595801fa.1
 for <xen-devel@lists.xen.org>; Tue, 12 Nov 2024 09:23:01 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e0fabesm737290766b.174.2024.11.12.09.23.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 09:23: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: c4cd5d8e-a11a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzAiLCJoZWxvIjoibWFpbC1sajEteDIzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM0Y2Q1ZDhlLWExMWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDMyMTgxLjYxODM2LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731432181; x=1732036981; darn=lists.xen.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=kC3kqnz5pyZ4ovBVhPpdQ+XzgGFZj1wbcVPXG8NTjCE=;
        b=U9omqO33oubLvDxHCj4f2O41Uobsiahd+TfXGsBtyYb1n3y4Pr50suFto+KLynMbx0
         mo9G4e3oH/FdUcSEJ0a0MWxdFnIPCn6C2pI15tXC0qlppVGY2e80IZVJ+yjsHwxBQuZs
         RD0WrulsH7beXB0gj2+YeaLBQrIYT7EIuprw0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731432181; x=1732036981;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kC3kqnz5pyZ4ovBVhPpdQ+XzgGFZj1wbcVPXG8NTjCE=;
        b=pzo9jNOsOVcJNoqssn6Y43o1mt/N6OGn5H7dliBhj32SDRR6r42QQUabj09ot3/SYy
         Wk8DpT+8kI9pw+v19GM6/ml4OnOH5F8crnTFpFi5cu4cR/EpVJvPrFr9aK0zHej/Ut4j
         UI//sPA51wGEwBgJv5oqrUXxiR6Jt7gQoLtu0W3UtmrlR04BJtIpyWN3UGAy/dsCoSOK
         3zair4vAU8FjIewrQwk5O9n69xzxZVjs2Ss21EDSeC/rxicy/flIu7eVeYzrugLvjkaf
         EMKhRVLIWIu0upUugjC+5Ov5fXHVs7YS/RtDyd/L+XMsKHxGTzZi8k3RaOfEMw+op8eu
         cr2Q==
X-Forwarded-Encrypted: i=1; AJvYcCUiHa9rLBcwp7xmCLN7TRCgKtd/kRAeJRP857pvSimFtPzXJx2ahucYHeW12dtH2kDvGUZjYan2yI4=@lists.xen.org
X-Gm-Message-State: AOJu0YxnCAQZOrZ/hGuurmYdlGPIf4aOvCc3WW+3N3ld3wHHb+vaM95c
	tqRiDOksEA8VJQKCgYICgeGBrj0i1iX1RQVadkwZEjcRcGwFjcz4njtKjJbvhLtHUzzlC38wGbz
	p
X-Google-Smtp-Source: AGHT+IFdjkS3HTCUEPK1CAQOMow7yeDSkQ8IPYKv8WIp+bnsZ94F2hDM1JuIBSD2DHdx6jqKJsw4Kw==
X-Received: by 2002:a2e:a995:0:b0:2fb:5206:1675 with SMTP id 38308e7fff4ca-2ff2028a9a5mr124919711fa.27.1731432180930;
        Tue, 12 Nov 2024 09:23:00 -0800 (PST)
Message-ID: <08301b10-4a1b-447c-9537-aabadf380570@citrix.com>
Date: Tue, 12 Nov 2024 17:22:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [oss-security] Xen Security Advisory 464 v2 (CVE-2024-45819) -
 libxl leaks data to PVH guests via ACPI tables
To: Demi Marie Obenour <demi@invisiblethingslab.com>,
 oss-security@lists.openwall.com, xen-announce@lists.xen.org,
 xen-devel@lists.xen.org, xen-users@lists.xen.org
Cc: "Xen.org security team" <security-team-members@xen.org>
References: <E1tApeV-001S2c-2H@xenbits.xenproject.org>
 <ZzONuZFo1-AXNOFd@itl-email>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ZzONuZFo1-AXNOFd@itl-email>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12/11/2024 5:17 pm, Demi Marie Obenour wrote:
> On Tue, Nov 12, 2024 at 12:05:47PM +0000, Xen Security wrote:
>> Only PVH guests can leverage the vulnerability.  HVM and PV guests
>> cannot leverage the vulnerability.  Note that PV guests when run inside
>> the (PVH) shim can't leverage the vulnerability.
> Is this unconditional (perhaps because the relevant data gets zeroed out
> by the shim), or does it only apply when the PV guest can't extract data
> from the shim's memory?  For instance, 32-bit PV guests aren't security
> supported anymore, but the PV shim isn't supposed to rely on the
> security of the shim itself, only of the rest of the system.

Data are leaked into the PVShim guest, but it is the shim Xen
(exclusively) which has access to the ACPI tables.

The guest which has been shim'd can't architecturally access the leaked
data.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 17:36:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 17:36:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834865.1250662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAuoo-000659-Jr; Tue, 12 Nov 2024 17:36:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834865.1250662; Tue, 12 Nov 2024 17: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 1tAuoo-000652-HF; Tue, 12 Nov 2024 17:36:46 +0000
Received: by outflank-mailman (input) for mailman id 834865;
 Tue, 12 Nov 2024 17:36: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=mdiu=SH=cloud.com=matthew.barnes@srs-se1.protection.inumbo.net>)
 id 1tAuon-00064w-ET
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 17:36:45 +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 ac8109b6-a11c-11ef-a0c7-8be0dac302b0;
 Tue, 12 Nov 2024 18:36:39 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9a628b68a7so1055396166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 09:36:40 -0800 (PST)
Received: from mbarnes-x-u.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0deef3esm746325966b.141.2024.11.12.09.36.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 09: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: ac8109b6-a11c-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFjODEwOWI2LWExMWMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDMyOTk5Ljg2NzQyNiwic2VuZGVyIjoibWF0dGhldy5iYXJuZXNAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731432999; x=1732037799; 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=4dHtb4C0WC3jTkiClRLTbwiGLDfIKgOfntISQe9iTE8=;
        b=S+Q8GX+7T4fIQLdJVVDqG5VN3mfU/aITZTiczya1/JU96j3D+qZ7STSaY/eu2pLPc0
         2Nn+gox0uOjq49DtP+s+OXquEEd73zd5zOTszBfVG5l96mw7I1CAafoL8dl0s7IZgTuy
         FgzKg2bUocGzLUb3WHHxzMgFzUnM5aNA2QWxc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731432999; x=1732037799;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4dHtb4C0WC3jTkiClRLTbwiGLDfIKgOfntISQe9iTE8=;
        b=VincPFrJjjYfl4EaTCO6gpdExgtv2+Zh3lmRZ5oo1KB4ZsVggMaj5eEDq9QxOdAv8z
         5IcT7c7JAa+4Oy2k39ZFKWGBX1dWBqAuwbIV0niucqqetqJ0V4eo2ufiQoUfNw9tSg5P
         Q4pLIk9os8CqgnHZdIVEVfDMrrssvvrJKcZXNPHVaajrAZZWpFAqaCsT9JL+ywlREjgG
         m+DXukNaLf42pDBmGYu4yPOuRGQzCuDilNsHfCOAP7uHZgTyl2gJBJpGuVrwPQQva/O/
         zUsRBi80VSUJVtQiN958JYS6ShDVL7TAczRj7I6Bv8IB3D1XGUb1dC/cCtDdSsi6alcg
         5iMw==
X-Gm-Message-State: AOJu0YxXAxUSk2hMh66XQ3Gv+9xppy4hotNuexT+1UJizxXV2wx4dW8S
	tjcR5Vf2qyN0q5C+o+0P9NMli9F6sJVjP3ft0hoM2ILr9BvLNFIV+hRcpXMCtnqVKVkee5fd0E/
	4
X-Google-Smtp-Source: AGHT+IF0UOvRLGygklKcZJ+srfbdfCdYMlXr8+i6cu93V0/IYVMXEHgrVOpu64PJntugmVoOZKs7rg==
X-Received: by 2002:a17:906:6a20:b0:a99:61d1:348f with SMTP id a640c23a62f3a-a9ef0016c58mr1634215166b.52.1731432999128;
        Tue, 12 Nov 2024 09:36:39 -0800 (PST)
From: Matthew Barnes <matthew.barnes@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Matthew Barnes <matthew.barnes@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XTF PATCH] Misaligned I/O Breakpoints
Date: Tue, 12 Nov 2024 17:22:46 +0000
Message-Id: <bb3e94bf31387725fdc0dca6ab2154c2d24d2bc0.1731427668.git.matthew.barnes@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Bcc: Matthew Barnes <matthew.barnes@cloud.com>
Content-Transfer-Encoding: 8bit

This xtf test tests a bug to hardware IO port breakpoints fixed by
08aacc392d86 ("x86/emul: Fix misaligned IO breakpoint behaviour in PV guests")

Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com>
---
 docs/all-tests.dox                       |   2 +
 tests/misaligned-io-breakpoints/Makefile |   9 +
 tests/misaligned-io-breakpoints/main.c   | 283 +++++++++++++++++++++++
 3 files changed, 294 insertions(+)
 create mode 100644 tests/misaligned-io-breakpoints/Makefile
 create mode 100644 tests/misaligned-io-breakpoints/main.c

diff --git a/docs/all-tests.dox b/docs/all-tests.dox
index 0a8b9130cfe8..66e35babe4d7 100644
--- a/docs/all-tests.dox
+++ b/docs/all-tests.dox
@@ -41,6 +41,8 @@ Coveres XSA-106 and XSA-156.
 
 @subpage test-umip - Guest User-Mode Instruction Prevention support.
 
+@subpage test-misaligned-io-breakpoints - Misaligned I/O port hardware breakpoint test.
+
 
 @section index-xsa XSA Proof-of-Concept tests
 
diff --git a/tests/misaligned-io-breakpoints/Makefile b/tests/misaligned-io-breakpoints/Makefile
new file mode 100644
index 000000000000..9e4cd3eef761
--- /dev/null
+++ b/tests/misaligned-io-breakpoints/Makefile
@@ -0,0 +1,9 @@
+include $(ROOT)/build/common.mk
+
+NAME      := misaligned-io-breakpoints
+CATEGORY  := utility
+TEST-ENVS := pv64
+
+obj-perenv += main.o
+
+include $(ROOT)/build/gen.mk
diff --git a/tests/misaligned-io-breakpoints/main.c b/tests/misaligned-io-breakpoints/main.c
new file mode 100644
index 000000000000..d91222b29288
--- /dev/null
+++ b/tests/misaligned-io-breakpoints/main.c
@@ -0,0 +1,283 @@
+/**
+ * @file tests/misaligned-io-breakpoints/main.c
+ * @ref test-misaligned-io-breakpoints - Misaligned I/O port hardware breakpoint test.
+ *
+ * @page test-misaligned-io-breakpoints Misaligned I/O Breakpoints
+ *
+ * When hardware breakpoints are configured on misaligned IO ports, the
+ * hardware will mask the addresses based on the breakpoint width during
+ * comparison.
+ *
+ * This test checks that the emulated behaviour of misaligned IO breakpoints
+ * in PV guests match that of real hardware.
+ *
+ * @see tests/io-breakpoint-bug/main.c
+ */
+#include <xtf.h>
+
+enum width { _16, _32 };
+
+const char test_title[] = "Misaligned I/O Breakpoints";
+
+static const struct test {
+    unsigned long breakpoint_port;
+    enum width breakpoint_size;
+    uint16_t io_op_port;
+    enum width io_op_len;
+    bool expect_breakpoint_trigger;
+} tests[] = {
+    /* 16-bit breakpoint, 16-bit I/O operation */
+    { 0x09, _16, 0x06, _16, false },
+    { 0x09, _16, 0x07, _16, true  },
+    { 0x09, _16, 0x08, _16, true  },
+    { 0x09, _16, 0x09, _16, true  },
+    { 0x09, _16, 0x0a, _16, false },
+
+    { 0x0b, _16, 0x08, _16, false },
+    { 0x0b, _16, 0x09, _16, true  },
+    { 0x0b, _16, 0x0a, _16, true  },
+    { 0x0b, _16, 0x0b, _16, true  },
+    { 0x0b, _16, 0x0c, _16, false },
+
+    /* 16-bit breakpoint, 32-bit I/O operation */
+    { 0x09, _16, 0x04, _32, false },
+    { 0x09, _16, 0x05, _32, true  },
+    { 0x09, _16, 0x06, _32, true  },
+    { 0x09, _16, 0x07, _32, true  },
+    { 0x09, _16, 0x08, _32, true  },
+    { 0x09, _16, 0x09, _32, true  },
+    { 0x09, _16, 0x0a, _32, false },
+
+    { 0x0b, _16, 0x06, _32, false },
+    { 0x0b, _16, 0x07, _32, true  },
+    { 0x0b, _16, 0x08, _32, true  },
+    { 0x0b, _16, 0x09, _32, true  },
+    { 0x0b, _16, 0x0a, _32, true  },
+    { 0x0b, _16, 0x0b, _32, true  },
+    { 0x0b, _16, 0x0c, _32, false },
+
+    /* 32-bit breakpoint, 16-bit I/O operation */
+    { 0x09, _32, 0x06, _16, false },
+    { 0x09, _32, 0x07, _16, true  },
+    { 0x09, _32, 0x08, _16, true  },
+    { 0x09, _32, 0x09, _16, true  },
+    { 0x09, _32, 0x0a, _16, true  },
+    { 0x09, _32, 0x0b, _16, true  },
+    { 0x09, _32, 0x0c, _16, false },
+
+    { 0x0a, _32, 0x06, _16, false },
+    { 0x0a, _32, 0x07, _16, true  },
+    { 0x0a, _32, 0x08, _16, true  },
+    { 0x0a, _32, 0x09, _16, true  },
+    { 0x0a, _32, 0x0a, _16, true  },
+    { 0x0a, _32, 0x0b, _16, true  },
+    { 0x0a, _32, 0x0c, _16, false },
+
+    { 0x0b, _32, 0x06, _16, false },
+    { 0x0b, _32, 0x07, _16, true  },
+    { 0x0b, _32, 0x08, _16, true  },
+    { 0x0b, _32, 0x09, _16, true  },
+    { 0x0b, _32, 0x0a, _16, true  },
+    { 0x0b, _32, 0x0b, _16, true  },
+    { 0x0b, _32, 0x0c, _16, false },
+
+    { 0x0d, _32, 0x0a, _16, false },
+    { 0x0d, _32, 0x0b, _16, true  },
+    { 0x0d, _32, 0x0c, _16, true  },
+    { 0x0d, _32, 0x0d, _16, true  },
+    { 0x0d, _32, 0x0e, _16, true  },
+    { 0x0d, _32, 0x0f, _16, true  },
+    { 0x0d, _32, 0x10, _16, false },
+
+    { 0x0e, _32, 0x0a, _16, false },
+    { 0x0e, _32, 0x0b, _16, true  },
+    { 0x0e, _32, 0x0c, _16, true  },
+    { 0x0e, _32, 0x0d, _16, true  },
+    { 0x0e, _32, 0x0e, _16, true  },
+    { 0x0e, _32, 0x0f, _16, true  },
+    { 0x0e, _32, 0x10, _16, false },
+
+    { 0x0f, _32, 0x0a, _16, false },
+    { 0x0f, _32, 0x0b, _16, true  },
+    { 0x0f, _32, 0x0c, _16, true  },
+    { 0x0f, _32, 0x0d, _16, true  },
+    { 0x0f, _32, 0x0e, _16, true  },
+    { 0x0f, _32, 0x0f, _16, true  },
+    { 0x0f, _32, 0x10, _16, false },
+
+    /* 32-bit breakpoint, 32-bit I/O operation */
+    { 0x09, _32, 0x04, _32, false },
+    { 0x09, _32, 0x05, _32, true  },
+    { 0x09, _32, 0x06, _32, true  },
+    { 0x09, _32, 0x07, _32, true  },
+    { 0x09, _32, 0x08, _32, true  },
+    { 0x09, _32, 0x09, _32, true  },
+    { 0x09, _32, 0x0a, _32, true  },
+    { 0x09, _32, 0x0b, _32, true  },
+    { 0x09, _32, 0x0c, _32, false },
+
+    { 0x0a, _32, 0x04, _32, false },
+    { 0x0a, _32, 0x05, _32, true  },
+    { 0x0a, _32, 0x06, _32, true  },
+    { 0x0a, _32, 0x07, _32, true  },
+    { 0x0a, _32, 0x08, _32, true  },
+    { 0x0a, _32, 0x09, _32, true  },
+    { 0x0a, _32, 0x0a, _32, true  },
+    { 0x0a, _32, 0x0b, _32, true  },
+    { 0x0a, _32, 0x0c, _32, false },
+
+    { 0x0b, _32, 0x04, _32, false },
+    { 0x0b, _32, 0x05, _32, true  },
+    { 0x0b, _32, 0x06, _32, true  },
+    { 0x0b, _32, 0x07, _32, true  },
+    { 0x0b, _32, 0x08, _32, true  },
+    { 0x0b, _32, 0x09, _32, true  },
+    { 0x0b, _32, 0x0a, _32, true  },
+    { 0x0b, _32, 0x0b, _32, true  },
+    { 0x0b, _32, 0x0c, _32, false },
+
+    { 0x0d, _32, 0x08, _32, false },
+    { 0x0d, _32, 0x09, _32, true  },
+    { 0x0d, _32, 0x0a, _32, true  },
+    { 0x0d, _32, 0x0b, _32, true  },
+    { 0x0d, _32, 0x0c, _32, true  },
+    { 0x0d, _32, 0x0d, _32, true  },
+    { 0x0d, _32, 0x0e, _32, true  },
+    { 0x0d, _32, 0x0f, _32, true  },
+    { 0x0d, _32, 0x10, _32, false },
+
+    { 0x0e, _32, 0x08, _32, false },
+    { 0x0e, _32, 0x09, _32, true  },
+    { 0x0e, _32, 0x0a, _32, true  },
+    { 0x0e, _32, 0x0b, _32, true  },
+    { 0x0e, _32, 0x0c, _32, true  },
+    { 0x0e, _32, 0x0d, _32, true  },
+    { 0x0e, _32, 0x0e, _32, true  },
+    { 0x0e, _32, 0x0f, _32, true  },
+    { 0x0e, _32, 0x10, _32, false },
+
+    { 0x0f, _32, 0x08, _32, false },
+    { 0x0f, _32, 0x09, _32, true  },
+    { 0x0f, _32, 0x0a, _32, true  },
+    { 0x0f, _32, 0x0b, _32, true  },
+    { 0x0f, _32, 0x0c, _32, true  },
+    { 0x0f, _32, 0x0d, _32, true  },
+    { 0x0f, _32, 0x0e, _32, true  },
+    { 0x0f, _32, 0x0f, _32, true  },
+    { 0x0f, _32, 0x10, _32, false },
+};
+
+static void enable_debug_extensions(void)
+{
+    unsigned long cr4 = read_cr4();
+
+    if ( !(cr4 & X86_CR4_DE) )
+        write_cr4(cr4 | X86_CR4_DE);
+}
+
+static void init_breakpoint(enum width width)
+{
+    unsigned long io0, dr7;
+
+    switch (width)
+    {
+    case _16:
+        io0 = DR7_SYM(0, G, IO, 16) | X86_DR7_GE | X86_DR7_DEFAULT;
+        break;
+    case _32:
+        io0 = DR7_SYM(0, G, IO, 32) | X86_DR7_GE | X86_DR7_DEFAULT;
+        break;
+    default:
+        xtf_failure("  Fail: Unknown width %d\n", width);
+        return;
+    }
+
+    write_dr7(io0);
+
+    if ( (dr7 = read_dr7()) != io0 )
+        xtf_failure("  Fail: dr7 %#lx != io0 %#lx\n", dr7, io0);
+}
+
+static void set_breakpoint(unsigned long io_port)
+{
+    unsigned long dr0;
+
+    write_dr0(io_port);
+
+    if ( (dr0 = read_dr0()) != io_port )
+        xtf_failure("  Fail: dr0 %#lx != %#lx\n", dr0, io_port);
+}
+
+/* Set vCPU IOPL to 1 to allow IO calls in kernel space */
+static void set_iopl(void)
+{
+    unsigned int iopl = 1;
+
+    hypercall_physdev_op(PHYSDEVOP_set_iopl, &iopl);
+}
+
+static exinfo_t io_op(uint16_t io_port, enum width io_op_len)
+{
+    exinfo_t fault = 0;
+
+    switch (io_op_len)
+    {
+    case _16:
+        asm volatile ("outw %w0, %w1; 1:"
+                      _ASM_EXTABLE_HANDLER(1b, 1b, %P[rec])
+                      : "+a" (fault)
+                      : "Nd" (io_port),
+                        [rec] "p" (ex_record_fault_eax));
+        break;
+    case _32:
+        asm volatile ("outl %k0, %w1; 1:"
+                      _ASM_EXTABLE_HANDLER(1b, 1b, %P[rec])
+                      : "+a" (fault)
+                      : "Nd" (io_port),
+                        [rec] "p" (ex_record_fault_eax));
+        break;
+    default:
+        xtf_failure("  Fail: Unknown width %d\n", io_op_len);
+        break;
+    }
+
+    return fault;
+}
+
+void test_main(void)
+{
+    unsigned int i;
+
+    enable_debug_extensions();
+    set_iopl();
+
+    for ( i = 0; i < ARRAY_SIZE(tests); ++i )
+    {
+        const struct test *t = &tests[i];
+
+        /* arrange */
+        init_breakpoint(t->breakpoint_size);
+        set_breakpoint(t->breakpoint_port);
+
+        /* act */
+        exinfo_t ex = io_op(t->io_op_port, t->io_op_len);
+
+        /* assert */
+        if ( t->expect_breakpoint_trigger && ex != EXINFO_SYM(DB, 0) )
+            xtf_failure("Fail: Expected trigger with breakpoint port 0x%02lx and io port 0x%02x, but got no trigger.\n", t->breakpoint_port, t->io_op_port);
+        if ( !t->expect_breakpoint_trigger && ex == EXINFO_SYM(DB, 0) )
+            xtf_failure("Fail: Expected no trigger with breakpoint port 0x%02lx and io port 0x%02x, but got trigger.\n", t->breakpoint_port, t->io_op_port);
+    }
+
+    xtf_success(NULL);
+}
+
+/*
+ * 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 Tue Nov 12 17:41:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 17:41:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834875.1250672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAutE-0007rY-7a; Tue, 12 Nov 2024 17:41:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834875.1250672; Tue, 12 Nov 2024 17:41: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 1tAutE-0007rR-4c; Tue, 12 Nov 2024 17:41:20 +0000
Received: by outflank-mailman (input) for mailman id 834875;
 Tue, 12 Nov 2024 17:41: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=6R0y=SH=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tAutC-0007rL-OS
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 17:41:18 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2414::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4edb7c7c-a11d-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 18:41:15 +0100 (CET)
Received: from BYAPR21CA0022.namprd21.prod.outlook.com (2603:10b6:a03:114::32)
 by MW6PR12MB8708.namprd12.prod.outlook.com (2603:10b6:303:242::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Tue, 12 Nov
 2024 17:41:08 +0000
Received: from SJ1PEPF00001CE1.namprd05.prod.outlook.com
 (2603:10b6:a03:114:cafe::b4) by BYAPR21CA0022.outlook.office365.com
 (2603:10b6:a03:114::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Tue, 12 Nov 2024 17:41:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CE1.mail.protection.outlook.com (10.167.242.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 12 Nov 2024 17:41:07 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 12 Nov
 2024 11:41:06 -0600
Received: from [172.30.86.253] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Nov 2024 11:41:05 -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: 4edb7c7c-a11d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjFkIiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRlZGI3YzdjLWExMWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDMzMjc1LjE2MTQxNSwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NddPkhpq3xAIcLREO44zdM46nHoKzQdAleidL7jTO/AORscc+2F5iw92YQwZKjJq3tE6WLFi492mGxpMdU6WdkD9137xGDyhR8wdfRQOhrCCDhVIH7yYZvfgYIIJWwkE0fS1IxAKaXTqYOIlVWQ36wtTdXUNFobwrneXz4b8T/J0AF0v/Z10liQ3r+dpU6oj9bs/8X6UbefdgHkF55CKuvEt7bhFh7ClqPStObCFzdlif+btETUi8ofsC3J7oYgScrLqxZOd7HwFnaoB2hoestGLHe7DaA70WHDqSbnAL01RwGBJhqKqfDcbwgdS09cVZxh1/EX9ieH5gN8cZ5GJAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WJQvci0kCIKXPwYB4n0Chs115xklp9BM0XmPSlGqaZE=;
 b=FMJjSQ900OnjvdXbk5EdkZ9T2e0qaUM1qP0uKP4jNnmPOjqEWtBA2fj2mit/OYjgMezCi4DHjArAa7VhfOetAjmXr6fhSJFjdtjtbp/XnlLn/sa2DH0ddhqY9mSTHj/YsOKLfsoZdYi8zgxncuJVAxl9zb5d4P41/LKg/dtqF8zmnOipck09maYNKUwz9ivXISgCAgmrSwl9TRslq6+5MX0U+OTjJ+njLiWyUas7fD2CJBQf2Qc7EgGpgGyIU0Boh0uweIsBEVoLjCxz4fn0KxTLqUNU8FjzHCMSwlXzYXxKF+huxd5C3rwnybpfmw1y7eMzKlcel5AEMZSzYO0t6A==
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=WJQvci0kCIKXPwYB4n0Chs115xklp9BM0XmPSlGqaZE=;
 b=tqOgTY1k3+pryUuNqVCm7lermyE4be63pWfjRBtbPRRHaYIkWvN2UeAIC9X5C464NY6NnRSmE9FPy41c+t6Kb/RN8626E+HJ2Zpb1FewiIiD5DF7ViX5ab0kuqVOgsbK1Ebk0aptPsvQZhTjMN8ywm79wfpmH80NdaoHV1muRr8=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <94b6224c-c285-4d4b-9b66-117125211438@amd.com>
Date: Tue, 12 Nov 2024 12:41:04 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/pci: introduce PF<->VF links
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>
References: <20241018203913.1162962-1-stewart.hildebrand@amd.com>
 <20241018203913.1162962-3-stewart.hildebrand@amd.com>
 <Zx_a57npsdRhLgYr@macbook> <b3f9a4a4-112b-4d58-afca-bc88ea2b1e11@amd.com>
 <ZzMZpg3FCyc4SW4z@macbook> <f8bedb2a-1d32-4e99-885a-79a56c1bdd36@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <f8bedb2a-1d32-4e99-885a-79a56c1bdd36@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE1:EE_|MW6PR12MB8708:EE_
X-MS-Office365-Filtering-Correlation-Id: f570544f-184a-40b1-80a1-08dd034130c0
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?UFJndkl3UCtGbnZEcjNlajdXd3dIM0dXYkw4TU50cTRHamNHSk5DS0FTUmlj?=
 =?utf-8?B?dnRicktSZmJPZm1jRmM2aTduUFBZb2xkR2FMeGcwekU5UWdSRFZuMEh4VHp4?=
 =?utf-8?B?RmVRaXQxU0lpSWNJVXNQMUM4QzB3TXFYNWZpdXJ6SGw1c3dWVU1qK1B1MG5n?=
 =?utf-8?B?QjIvelNaKzdaQUJKN3YzVkRiYUh5aFkwMXFHYWFYVy9JaDdROWcwQS9QSURv?=
 =?utf-8?B?WFFGSjltVTNJaStJQ3ROaVNYS1pqRVNjZG05dFkzQ0pqVDRhOG95ZDZvckgx?=
 =?utf-8?B?S3plcXBHSFlQbzZJeUduQjVESU94cFl5dmZEVm5MYjJXSDhES0FDcWpOT1dS?=
 =?utf-8?B?bnJGMDNhK3IvL3ZSN05iKzhtdDBQQlBWQm1uSi9PY1VTa0dnbGlMWVU3NTg3?=
 =?utf-8?B?VnhLdGZWYzZKbWpyNytiQU9PN1BWbi9wK0tTN2ptTXVkbXpOVjU5YTRuVDh0?=
 =?utf-8?B?VTZicVBJOFMwVVBQaU5SY2lIaFk3a1FVNktoZEhaTEVFTURobnNidXp5c2Np?=
 =?utf-8?B?VlV5Y2lyWTBMK3RYSVNkbzJlVGc1MnNUeDZSbVhuemxyYzRWTXpNc3lNbUpO?=
 =?utf-8?B?Yi8yblAzUlFIYmxvc2I3Q0ljdlJaV0pvN2dxZ0FPSENOajRsOTArUkcyaEli?=
 =?utf-8?B?Uy8raUZEZTQyNlpaVlJDL05TT2FSRmJPNmR2RXk2RkJWNTNVdkVZQzFERk9U?=
 =?utf-8?B?TzVQVEFoakk5SjNuRkVlaFMrZFk0bXpNbk4wcHByUDRVZzVNSVk3T3FJb0tR?=
 =?utf-8?B?UHZmUWltVUN4NUhrZndOTXhMcCt3UUtlTGpYcVhCNGVacnhER1Q4YXVvZE5U?=
 =?utf-8?B?YTQxWkF4TU5WTGd6bnRGR0IyTmY4U3BBdGxCcWZDU2lBOUVoTFBESWZKVnNN?=
 =?utf-8?B?Yk90ZkxhakRlYUowV04xTC9TR1prZjB4Umc5Q2hYWHJoSkpCNVVlOE1ocVpY?=
 =?utf-8?B?MHlBNU5pd2tqTVJjdFplUlcrU1lKeGtBeVU2TlgzL014TStYSzAxb0hBSStJ?=
 =?utf-8?B?ZUJxM2lRU0FxbFRlMjFxSzVoem5lNFV2SUdlVy9PeVFLTTlWdUtidnFhUnNp?=
 =?utf-8?B?UVRmT1FQSDR1eXZpMHZ4Q1MvenZKcG1pcks5L2xVSmh0djY0UlFNSHJySXFS?=
 =?utf-8?B?OW90cml2T1VEZXp2azR3MDZJUHM5UFVRNjdkTXZkdXZYL3J2MHYySUgrdEVE?=
 =?utf-8?B?Zi80MkowLzMxRDhsYTIwalp4ci9ucEkrYnhkWEpTQ3pQR3NkRHpXNUJkRmhj?=
 =?utf-8?B?VlgwTWZVZ0dRemNqME1oV2xoY1R0aDZRNnA2cUtyYkdQZ01ncjJGSUNIUXNU?=
 =?utf-8?B?TVlHUDIrNkhBV0Jrb2VxUUdxNTJUR294dkVSZU5KTGhQUHNLK3AwV21Gcnl2?=
 =?utf-8?B?VkgyQVdWTHd4bmhQSmVET1ZZbld2YmJ0TzY5cmdZdnA1YitMWGVMT2ptcWk4?=
 =?utf-8?B?SEFTYlUzaTJrTXIzRExTMkdpcGgyaGpJbmMzQkxzOGhtRGRIRVlkQ3VnTldG?=
 =?utf-8?B?eHdaSVBGYVBLeU9FQmVOMW1wSWllTWRCQTIyVHRNMHB6cnVVL05nejVlc0pF?=
 =?utf-8?B?MHk2UWdTaUw0Q08zNVNWSFArb0JCa3d2dVpCcjMwdjRxK2g4QlR0NDFJejYw?=
 =?utf-8?B?V2czQXpBMnhEQ1RPUjdLejA1M0RwNGtVUnRwMGF6TkcybUFmem9ObE5WRXZD?=
 =?utf-8?B?Q1RHRmtFM2JVWnZ5SDFCQm94bGlZUjBMbVJWSU83STFjWUJLeTM5bjQ0YnFz?=
 =?utf-8?B?dEZLVWhDcHBQUFNrR3A1ajNtOFpjNzlCalJpYmV2VVFrNHdMcEVxdFdtdzdi?=
 =?utf-8?B?ZWUyMHVRakpVdmp4aG54dGR3eXhEQUpyVyttU2l1ZERUb1lqSXlPMTdUYWNv?=
 =?utf-8?B?R3N3NmQ4eVZRUFZyUElrOGVBd3NWVjBlSHR2dmV2SE8zcUE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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 Nov 2024 17:41:07.9970
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f570544f-184a-40b1-80a1-08dd034130c0
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8708

On 11/12/24 04:39, Jan Beulich wrote:
> On 12.11.2024 10:02, Roger Pau MonnÃ© wrote:
>> On Mon, Nov 11, 2024 at 03:07:28PM -0500, Stewart Hildebrand wrote:
>>> On 10/28/24 14:41, Roger Pau MonnÃ© wrote:
>>>> if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
>>>> {
>>>>     struct pci_dev *vf_pdev;
>>>>
>>>>     while ( (vf_pdev = list_first_entry_or_null(&pdev->vf_list,
>>>>                                                 struct pci_dev,
>>>> 						vf_list)) != NULL )
>>>>     {
>>>>         list_del(&vf_pdev->vf_list);
>>>>         vf_pdev->virtfn.pf_pdev = NULL;
>>>>         vf_pdev->broken = true;
>>>>     }
>>>>
>>>>     printk(XENLOG_WARNING "PCI SR-IOV PF %pp removed with VFs still present\n",
>>>>            &pdev->sbdf);
>>>> }
>>>
>>> Yeah. Given that the consensus is leaning toward keeping the PF and
>>> returning an error, here's my suggestion:
>>>
>>>     if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
>>>     {
>>>         struct pci_dev *vf_pdev;
>>>
>>>         list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list)
>>>             vf_pdev->broken = true;
>>>
>>>         pdev->broken = true;
>>
>> Do you need to mark the devices as broken?  My expectation would be
>> that returning -EBUSY here should prevent the device from being
>> removed, and hence there would be no breakage, just failure to fulfill
>> the (possible) hot-unplug request.
> 
> That very much depends on Dom0 kernels then actually respecting the error,
> and not considering the underlying hypercall a mere notification.

All dom0 Linux does is print a warning:

# echo 1 > /sys/bus/pci/devices/0000\:01\:00.0/sriov_numvfs
# echo 1 > /sys/bus/pci/devices/0000\:01\:00.0/remove
[   56.738750]  0000:01:00.0: driver left SR-IOV enabled after remove
(XEN) Attempted to remove PCI SR-IOV PF 0000:01:00.0 with VFs still present
[   56.749904] pci 0000:01:00.0: Failed to delete - passthrough or MSI/MSI-X might fail!
# echo $?
0

Subsequently, lspci reveals no entry for 0000:01:00.0. I think it's
appropriate to mark them broken.


From xen-devel-bounces@lists.xenproject.org Tue Nov 12 20:53:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 20:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834913.1250727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAxtW-00076O-9A; Tue, 12 Nov 2024 20:53:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834913.1250727; Tue, 12 Nov 2024 20:53: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 1tAxtW-00076F-4U; Tue, 12 Nov 2024 20:53:50 +0000
Received: by outflank-mailman (input) for mailman id 834913;
 Tue, 12 Nov 2024 20: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=6R0y=SH=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tAxtU-0006YG-AQ
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 20:53:48 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2415::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 347bcc0d-a138-11ef-a0c7-8be0dac302b0;
 Tue, 12 Nov 2024 21:53:45 +0100 (CET)
Received: from BL1PR13CA0019.namprd13.prod.outlook.com (2603:10b6:208:256::24)
 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.8158.17; Tue, 12 Nov
 2024 20:53:40 +0000
Received: from BN1PEPF00005FFE.namprd05.prod.outlook.com
 (2603:10b6:208:256:cafe::7f) by BL1PR13CA0019.outlook.office365.com
 (2603:10b6:208:256::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Tue, 12 Nov 2024 20:53:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00005FFE.mail.protection.outlook.com (10.167.243.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 12 Nov 2024 20:53:39 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 12 Nov
 2024 14:53:37 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Nov 2024 14:53: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: 347bcc0d-a138-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjE5IiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjM0N2JjYzBkLWExMzgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDQ0ODI1LjU0MTI2OCwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FaQ/MgtYQNjpSwmecoOVcUT+Irr3S3GThy5V10vqXsdDKDqPlIDd8zG9sKWVeyNRnz8D4Pdko+iIfImvt5uYz++0a04+QW+Q/tE2+litX6fd2lO+/pFyOMjh1qjNyhVbYPwaH2elhsoEHayYCPAER8ySAIzafZA3wCOR9RlpYdAh0bE3T6IZ2RxfYqBsRL8QEDAMZfB4aCrEFxkNp/i/JqnDvoeY4ifVBlcMUN3RnzeyvU56+Rt1+qKS3xniMdy9qB1mVyWRDaueHARpRvaE9p9VEgbQwqV22RmCdll4p7o6R87q2cKBxr1F3/BhjzKVuZXUWb6Y9L5EpgZOEzfCvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fvfdk7zwQONqaq/3Edn44Ev2SS3iqmtHkUeBX4CZLoU=;
 b=jA95A5ClNtbAYlYXDGGiD2eB8JgDoRPl1/Akzgrw/WisPXXtfon2tQjJZZ2Z3hbhcARfwlnVgBrCRqXrTjTKUczQj2stcQ0atWoYyBOwdWehMmBIPr7V7rFGbB5Q4LH+n2K1DcI0za6MTQGMTZ0YVTMEjehkQD696Y4rTeVlTxIo2nj4l71tuNIwP4j5sM4LBlxg08L03nZDMYOT0/dLq9ELL1tijY+7HMlLsiM+XtyhjGA0L35+AXCyJeG5Di5xE3bZTJ4/3A8a3Zg+IYtt77+BPSt/Te6U3po/wisQEILdHN5ZVbnGBKhHi9q5/VBaHyfGBOxkZY8xMzJJklkpgQ==
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=fvfdk7zwQONqaq/3Edn44Ev2SS3iqmtHkUeBX4CZLoU=;
 b=0H72bbDtiEOuyWNx7PkGVuf46lNjhAeOXnKYoVFtRz27R0VIIHrLr/B4p0hzfCIiVRZ7t/cnMg422gKVLCE+Bv9TztTWIPag9FNQN9JHEW88Nr1Mzq7drEWJyTnVnrF4db7jJu+gr+tehBaCxRvS/XwdxplJnQJwlyVUqPiSAsY=
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=SATLEXMB04.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@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>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH v7 2/2] x86/msi: fix locking for SR-IOV devices
Date: Tue, 12 Nov 2024 15:53:20 -0500
Message-ID: <20241112205321.186622-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241112205321.186622-1-stewart.hildebrand@amd.com>
References: <20241112205321.186622-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00005FFE:EE_|DS7PR12MB6191:EE_
X-MS-Office365-Filtering-Correlation-Id: e3ed892f-1733-41b5-0301-08dd035c15d8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?oe9XZV7Yp7pHVumzi7PUVFspyoHwi23OLO7xe10KXzKUvGLgj4sj1Toegeaq?=
 =?us-ascii?Q?jyo+22GkMqK+ZmaQRpejrlbX1enAu/RlSxQhW1ScUqk1YZ1uMIr8Ra1Wu6MI?=
 =?us-ascii?Q?SUZ+jkYXCHK2d01O2mOHvLY3ZNrFEfwDL9fEAy0zDiWnIYqSyOE6JRiLo556?=
 =?us-ascii?Q?D0E9R7yc0ex7/BKHmXbUgqLRTkqNI66lNkBPyD3B8dugHb6w1kN2Bc9HXU8Q?=
 =?us-ascii?Q?B/0DsIPzb0sOXJb421BlujFXpkkLDSYM0rR8CxRjKxSbs8Kh85KAQmeczadC?=
 =?us-ascii?Q?FMoFVWXDD1ArP7rxCc9FmuurOAGe8nfPa5+MgcqPgKaiziPnKbOuxJuV2JXo?=
 =?us-ascii?Q?vGZWXhexqSW6+Kgl9DoqIRLU0ckWzjNJRcXwc9qGdv0/cZOsZPrNncQW3XML?=
 =?us-ascii?Q?wy7XA9/b2+N78Wf555HwLzebcCXqKeD5G5OWqh7BEAGFAj/desd3p5tdIDNf?=
 =?us-ascii?Q?dW0WnGI7deW9TAkhAnwZ81fVfnY9IejLP0qYMbhRURTzJgKzuO1u4ejd/JVi?=
 =?us-ascii?Q?H5yHYgJiccsqiIw+Ykgi4uK6q4iK9x9Wx0X92C0P5+StlBBwAPf4ynLc7V9v?=
 =?us-ascii?Q?/UW2FH5bXwjvT72ms5Te/AD74G1YyxPCHVEyvDkUDEdXSCoEJK4goJrSFQ5h?=
 =?us-ascii?Q?bRPo1wtBJNbfKGPEJl9L2OY8yMmhLjB93B9EOH62EL7itDJKmQQ1JkRMZNBK?=
 =?us-ascii?Q?aFj2QoUOd6oWv2IwAB/GTPOXUyK2kBMNOX36BxE043MYPFKt72IEEkXE70Gj?=
 =?us-ascii?Q?jUoZclLs+9LZJHkVswvBmCaUiPtAWqUMBm6/XcXQ3VP9rJmQn1LhcXbET0aJ?=
 =?us-ascii?Q?7wxTtX7LvAXLYEB8sqxaA6quZPYmWOlmWcuk7PpLF/4eFn+1UJHCIJtjpufF?=
 =?us-ascii?Q?ab3vC4EDvLvb3XiFjWkEz56NIIhuEFqUbXxSXytdMYVQpZTzO31b4h0dph95?=
 =?us-ascii?Q?f9Z+qvGtRJ0W9Wjjt1pjXGsq6mQteuOWp7VK8e5ojA6thkWHAl2hwpelQMN9?=
 =?us-ascii?Q?zo0C4MgDkW8lwdFUo8HdhYvg/oI/UQ+mIIL/lXjJJtQW3wOBM/qb1t4EHd76?=
 =?us-ascii?Q?9jFTtMlGlyGDXxQSN1lmQEkyZboqqchC3IZcNbIgD6okSEUqRmg6nNOWq4ZU?=
 =?us-ascii?Q?DPZKdQZKafY8+JSs8EQmkCqm9APsvMePl2PFIhoRCBqJ7Qj3zyg+YWgkBj39?=
 =?us-ascii?Q?F6VC92PwibzK8yNnv5bTc1QE5Au11fHs/ztJMvMIA+RwVHL2GkJhAttb+6Oa?=
 =?us-ascii?Q?CrW/BugXGCXCmK6eLWh8XTjCMhsxGdSUQEitYkff5axopnKh6FFCE7Itsm3q?=
 =?us-ascii?Q?18J6W2u4YKOuh+hXZ84p/fkvjl3GKt4svGnnmIRtMdHJnvuj477H2FlXJudZ?=
 =?us-ascii?Q?DUVPpsv4ts/cUH+LHCb6muqZraYoadqYHc1xbcPrUbCDW9Rd1w=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2024 20:53:39.4206
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e3ed892f-1733-41b5-0301-08dd035c15d8
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00005FFE.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6191

In commit 4f78438b45e2 ("vpci: use per-domain PCI lock to protect vpci
structure") a lock was moved from allocate_and_map_msi_pirq() to the
caller and changed from pcidevs_lock() to read_lock(&d->pci_lock).
However, one call path wasn't updated to reflect the change, leading to
a failed assertion observed under the following conditions:

* PV dom0
* Debug build (CONFIG_DEBUG=y) of Xen
* There is an SR-IOV device in the system with one or more VFs enabled
* Dom0 has loaded the driver for the VF and enabled MSI-X

(XEN) Assertion 'd || pcidevs_locked()' failed at drivers/passthrough/pci.c:535
(XEN) ----[ Xen-4.20-unstable  x86_64  debug=y  Not tainted ]----
...
(XEN) Xen call trace:
(XEN)    [<ffff82d040284da8>] R pci_get_pdev+0x4c/0xab
(XEN)    [<ffff82d040344f5c>] F arch/x86/msi.c#read_pci_mem_bar+0x58/0x272
(XEN)    [<ffff82d04034530e>] F arch/x86/msi.c#msix_capability_init+0x198/0x755
(XEN)    [<ffff82d040345dad>] F arch/x86/msi.c#__pci_enable_msix+0x82/0xe8
(XEN)    [<ffff82d0403463e5>] F pci_enable_msi+0x3f/0x78
(XEN)    [<ffff82d04034be2b>] F map_domain_pirq+0x2a4/0x6dc
(XEN)    [<ffff82d04034d4d5>] F allocate_and_map_msi_pirq+0x103/0x262
(XEN)    [<ffff82d04035da5d>] F physdev_map_pirq+0x210/0x259
(XEN)    [<ffff82d04035e798>] F do_physdev_op+0x9c3/0x1454
(XEN)    [<ffff82d040329475>] F pv_hypercall+0x5ac/0x6af
(XEN)    [<ffff82d0402012d3>] F lstar_enter+0x143/0x150

In read_pci_mem_bar(), the VF obtains the struct pci_dev pointer for its
associated PF to access the vf_rlen array. This array is initialized in
pci_add_device() and is only populated in the associated PF's struct
pci_dev.

Access the vf_rlen array via the link to the PF, and remove the
troublesome call to pci_get_pdev().

Fixes: 4f78438b45e2 ("vpci: use per-domain PCI lock to protect vpci structure")
Reported-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Candidate for backport to 4.19
Patch #1 ("xen/pci: introduce PF<->VF links") is pre-requisite

v6->v7:
* turn NULL-check into ASSERT
* adjust commentary in struct pf_info

v5->v6:
* add Jan's R-b

v4->v5:
* split the PF<->VF links to a pre-requisite patch
* pass pci_sbdf_t to read_pci_mem_bar()
* use stdint.h types on changed lines
* re-add NULL check for pf_info in read_pci_mem_bar(), as pf_info could
  be NULL

v3->v4:
* handle case when PF is removed with VFs enabled, then re-added with
  VFs disabled

v2->v3:
* link from VF to PF's struct pci_dev *

v1->v2:
* remove call to pci_get_pdev()
---
 xen/arch/x86/msi.c            | 36 ++++++++++++++++++++---------------
 xen/drivers/passthrough/pci.c |  8 +++++---
 xen/include/xen/pci.h         | 11 ++++++++---
 3 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index fa724911928e..e2360579deda 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -663,34 +663,34 @@ static int msi_capability_init(struct pci_dev *dev,
     return 0;
 }
 
-static u64 read_pci_mem_bar(u16 seg, u8 bus, u8 slot, u8 func, u8 bir, int vf)
+static uint64_t read_pci_mem_bar(pci_sbdf_t sbdf, uint8_t bir, int vf,
+                                 const struct pf_info *pf_info)
 {
+    uint16_t seg = sbdf.seg;
+    uint8_t bus = sbdf.bus, slot = sbdf.dev, func = sbdf.fn;
     u8 limit;
     u32 addr, base = PCI_BASE_ADDRESS_0;
     u64 disp = 0;
 
     if ( vf >= 0 )
     {
-        struct pci_dev *pdev = pci_get_pdev(NULL,
-                                            PCI_SBDF(seg, bus, slot, func));
         unsigned int pos;
         uint16_t ctrl, num_vf, offset, stride;
 
-        if ( !pdev )
-            return 0;
+        ASSERT(pf_info);
 
-        pos = pci_find_ext_capability(pdev->sbdf, PCI_EXT_CAP_ID_SRIOV);
-        ctrl = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_CTRL);
-        num_vf = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_NUM_VF);
-        offset = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_VF_OFFSET);
-        stride = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_VF_STRIDE);
+        pos = pci_find_ext_capability(sbdf, PCI_EXT_CAP_ID_SRIOV);
+        ctrl = pci_conf_read16(sbdf, pos + PCI_SRIOV_CTRL);
+        num_vf = pci_conf_read16(sbdf, pos + PCI_SRIOV_NUM_VF);
+        offset = pci_conf_read16(sbdf, pos + PCI_SRIOV_VF_OFFSET);
+        stride = pci_conf_read16(sbdf, pos + PCI_SRIOV_VF_STRIDE);
 
         if ( !pos ||
              !(ctrl & PCI_SRIOV_CTRL_VFE) ||
              !(ctrl & PCI_SRIOV_CTRL_MSE) ||
              !num_vf || !offset || (num_vf > 1 && !stride) ||
              bir >= PCI_SRIOV_NUM_BARS ||
-             !pdev->vf_rlen[bir] )
+             !pf_info->vf_rlen[bir] )
             return 0;
         base = pos + PCI_SRIOV_BAR;
         vf -= PCI_BDF(bus, slot, func) + offset;
@@ -704,8 +704,8 @@ static u64 read_pci_mem_bar(u16 seg, u8 bus, u8 slot, u8 func, u8 bir, int vf)
         }
         if ( vf >= num_vf )
             return 0;
-        BUILD_BUG_ON(ARRAY_SIZE(pdev->vf_rlen) != PCI_SRIOV_NUM_BARS);
-        disp = vf * pdev->vf_rlen[bir];
+        BUILD_BUG_ON(ARRAY_SIZE(pf_info->vf_rlen) != PCI_SRIOV_NUM_BARS);
+        disp = vf * pf_info->vf_rlen[bir];
         limit = PCI_SRIOV_NUM_BARS;
     }
     else switch ( pci_conf_read8(PCI_SBDF(seg, bus, slot, func),
@@ -814,6 +814,7 @@ static int msix_capability_init(struct pci_dev *dev,
         int vf;
         paddr_t pba_paddr;
         unsigned int pba_offset;
+        const struct pf_info *pf_info;
 
         if ( !dev->info.is_virtfn )
         {
@@ -821,6 +822,7 @@ static int msix_capability_init(struct pci_dev *dev,
             pslot = slot;
             pfunc = func;
             vf = -1;
+            pf_info = NULL;
         }
         else
         {
@@ -828,9 +830,12 @@ static int msix_capability_init(struct pci_dev *dev,
             pslot = PCI_SLOT(dev->info.physfn.devfn);
             pfunc = PCI_FUNC(dev->info.physfn.devfn);
             vf = dev->sbdf.bdf;
+            ASSERT(dev->pf_pdev);
+            pf_info = &dev->pf_pdev->physfn;
         }
 
-        table_paddr = read_pci_mem_bar(seg, pbus, pslot, pfunc, bir, vf);
+        table_paddr = read_pci_mem_bar(PCI_SBDF(seg, pbus, pslot, pfunc), bir,
+                                       vf, pf_info);
         WARN_ON(msi && msi->table_base != table_paddr);
         if ( !table_paddr )
         {
@@ -853,7 +858,8 @@ static int msix_capability_init(struct pci_dev *dev,
 
         pba_offset = pci_conf_read32(dev->sbdf, msix_pba_offset_reg(pos));
         bir = (u8)(pba_offset & PCI_MSIX_BIRMASK);
-        pba_paddr = read_pci_mem_bar(seg, pbus, pslot, pfunc, bir, vf);
+        pba_paddr = read_pci_mem_bar(PCI_SBDF(seg, pbus, pslot, pfunc), bir, vf,
+                                     pf_info);
         WARN_ON(!pba_paddr);
         pba_paddr += pba_offset & ~PCI_MSIX_BIRMASK;
 
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index d4167cea09c0..2cd595f75ebf 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -730,7 +730,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         }
     }
 
-    if ( !pdev->info.is_virtfn && !pdev->vf_rlen[0] )
+    if ( !pdev->info.is_virtfn && !pdev->physfn.vf_rlen[0] )
     {
         unsigned int pos = pci_find_ext_capability(pdev->sbdf,
                                                    PCI_EXT_CAP_ID_SRIOV);
@@ -742,7 +742,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         {
             unsigned int i;
 
-            BUILD_BUG_ON(ARRAY_SIZE(pdev->vf_rlen) != PCI_SRIOV_NUM_BARS);
+            BUILD_BUG_ON(ARRAY_SIZE(pdev->physfn.vf_rlen) !=
+                                    PCI_SRIOV_NUM_BARS);
+
             for ( i = 0; i < PCI_SRIOV_NUM_BARS; )
             {
                 unsigned int idx = pos + PCI_SRIOV_BAR + i * 4;
@@ -757,7 +759,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
                     continue;
                 }
                 ret = pci_size_mem_bar(pdev->sbdf, idx, NULL,
-                                       &pdev->vf_rlen[i],
+                                       &pdev->physfn.vf_rlen[i],
                                        PCI_BAR_VF |
                                        ((i == PCI_SRIOV_NUM_BARS - 1) ?
                                         PCI_BAR_LAST : 0));
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 977c0d08f78a..f784e9116059 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -159,9 +159,14 @@ struct pci_dev {
      * List entry if VF.
      */
     struct list_head vf_list;
-    u64 vf_rlen[6];
-    /* Link from VF to PF. Only populated for VFs. */
-    const struct pci_dev *pf_pdev;
+    union {
+        struct pf_info {
+            /* Only populated for PFs. */
+            uint64_t vf_rlen[PCI_SRIOV_NUM_BARS];
+        } physfn;
+        /* Link from VF to PF. Only populated for VFs. */
+        const struct pci_dev *pf_pdev;
+    };
 
     /* Data for vPCI. */
     struct vpci *vpci;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 20:53:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 20:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834911.1250716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAxtN-0006mg-T6; Tue, 12 Nov 2024 20:53:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834911.1250716; Tue, 12 Nov 2024 20:53: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 1tAxtN-0006mZ-QU; Tue, 12 Nov 2024 20:53:41 +0000
Received: by outflank-mailman (input) for mailman id 834911;
 Tue, 12 Nov 2024 20:53: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=6R0y=SH=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tAxtM-0006YG-42
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 20:53:40 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20625.outbound.protection.outlook.com
 [2a01:111:f403:200a::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f938939-a138-11ef-a0c7-8be0dac302b0;
 Tue, 12 Nov 2024 21:53:37 +0100 (CET)
Received: from BLAPR05CA0001.namprd05.prod.outlook.com (2603:10b6:208:36e::6)
 by SJ2PR12MB8783.namprd12.prod.outlook.com (2603:10b6:a03:4d0::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Tue, 12 Nov
 2024 20:53:32 +0000
Received: from MN1PEPF0000ECDA.namprd02.prod.outlook.com
 (2603:10b6:208:36e:cafe::77) by BLAPR05CA0001.outlook.office365.com
 (2603:10b6:208:36e::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.15 via Frontend
 Transport; Tue, 12 Nov 2024 20:53:31 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MN1PEPF0000ECDA.mail.protection.outlook.com (10.167.242.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 12 Nov 2024 20:53:31 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 12 Nov
 2024 14:53:30 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Nov 2024 14:53: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: 2f938939-a138-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjI1IiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjJmOTM4OTM5LWExMzgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDQ0ODE3LjU0NDkzMywic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iS2jnoy4aJW7ve7HO5rr2EixV40FBpLlH1/uuGV3BgnvP74lHO100pKqCQSjaUukLax2lTF1RT1M+DbPsmoLh7m6aJO4x9GKmJVWqHkyVVdBt/Vyq69s94DCd2sRdULvNpOOX900UriWbGesT7VCcBoCm8dQ+TcODmzaweoM41HuxtxaRDRxaoQ9UagLLXfP28xJnIYbu9iPz25Ll7/4Yc0EYTctD6sIpLu2tNG8ssuyhYs2H5ScxkyuQ9cvCe7I9Or6yekEoDV4WO/pPCl1ZzCPrj0Aj2nL3JDPezinTHpoeS0ptO17I/cGPgWh8X3/g/IjcMsTxNwxlg65tsychg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ky8HxzXjH0qC2Vc4vqFd2aklwcMHHpdbS4ww5q29aEk=;
 b=Nh1KXwM8WXWSyTgNML782YduUNDSLrngq2NnZy+YdEJAXf9x6xXMxtD/P7SJ3Xe0lHZTE7xsi6YguyPf8g8nhkHCIM0WotH2D3mRQrqFwMHMoU1cI0JiE4AyNAaBCN80IM7Bl/YfSLsHWErDjXa0xs5Xu0Fvc9S+qNlE/hLXp9d7ZQ/dbQJiHbt20kiuIsUsx3R+e91W3U+ARWduLJY22ZFvT5jvXv7GiFMjLC6ulPkdBHKKFs40499DhQqv6Xu1bYyjtKTZI+oHJJyt3KhuLwFO4cz43XYdenYdK9m+ToM/4tE+VTTst7eV2PBjePGogYaz8uskrL+5IrDFoKbXBg==
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=ky8HxzXjH0qC2Vc4vqFd2aklwcMHHpdbS4ww5q29aEk=;
 b=QOV+7rQ5CPwiln+/q2LJzxoFX9bCo6vSq72G64A43iADQXuHM/FGKDWzxSgfP2QNKOzhCVNC1VNx2AAxixtWpOSUzgnFaqI/uuyKahnDJRlnFXmL0zdaoeGRWuKQbnjEqLBYL0TPLmYuF2lR1uchyhL9i13l0qwEVOeWROj6RSE=
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=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 1/2] xen/pci: introduce PF<->VF links
Date: Tue, 12 Nov 2024 15:53:19 -0500
Message-ID: <20241112205321.186622-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241112205321.186622-1-stewart.hildebrand@amd.com>
References: <20241112205321.186622-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDA:EE_|SJ2PR12MB8783:EE_
X-MS-Office365-Filtering-Correlation-Id: 40ff51b7-ef80-4318-5713-08dd035c1118
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?By4rK9PtHmnwASVBJRBz5fplmo85mXM61Ss8N9qZGbRvGlAtqi0o1hg5e4ix?=
 =?us-ascii?Q?DlWQXzzpReO4qeMmof33TNW/i+cMygboxO3YDeYNet5l4jA1/3V8I5YzbPO2?=
 =?us-ascii?Q?xxp/iRuNC9ggpSpE662GT+9W5QBUPChJoafTy35PZo1ARq6DuBMmcaLOGxyr?=
 =?us-ascii?Q?zhfm7Mh3cJSMIkYjik5znSMzWn0f6G/CwmCwyE1W/4J4jI7pF+XDbhFWKCNw?=
 =?us-ascii?Q?5tdg0g7L4Q5c/5z9Pl9yUAwPzkYJ33kxDZyVXcB8U2vT7GTD2y52sf5TL90K?=
 =?us-ascii?Q?iBqEJBqzZHZtFqjeBsCm0earU48jl2wwqcN5y6i7jdJ3ld2V4py74jbSs0Xf?=
 =?us-ascii?Q?AybdydyfdxZJyZ4ziWStSIwMOUTRHil4NWsPt1xMJ/c013j9yyHJ68eNSorH?=
 =?us-ascii?Q?HToKwHLSD8O+WcU09X+0/1KdpUHtyxga4QCzfc6M4rNuQU+ZUGhrXQ4SDDCE?=
 =?us-ascii?Q?xByhhODwlgjr+OXleSGZMypyLJ7lLXzK+VP6ZmB+kSIcGkzzKV+PwG5wTgS+?=
 =?us-ascii?Q?KEsFlP+/Es8KNT+SBEqS5uAzwEfn9E4kIP2nR0yU1yvCBMBoBDHO23qFv9wm?=
 =?us-ascii?Q?2E4q1mCGSVa+Nrjdt/cDzhTGjFHgILXk5ST15LAxG0Hqc21alLqpQOQQq5nH?=
 =?us-ascii?Q?1RSbiEtCtaWi51t/ADg7y91bI9QMAluoU2hL0S46MdiwMRU8+TfYYEHrWkWf?=
 =?us-ascii?Q?EP96w3WJH4+yO9Rro7iWtVe/IP80nSrI2tiQ75d/n9grjeIM+KBCuySwjz/b?=
 =?us-ascii?Q?DDf0eUSIQ6bI1XsDREaa9v3On/t77ZBga6B0ztFZGsVNzAybJdX4zrcxcx/K?=
 =?us-ascii?Q?lbwHoANQqWVLmUtnMeRTIRIpRe983p2kY/lrLpZB4cBblLX9+IXUEJMr2cVN?=
 =?us-ascii?Q?+1dWHc44gNeXOIVfWRK8tr7KHjq4QglzxMzUUTforbYaLVybS8nWtbYVzoQj?=
 =?us-ascii?Q?L2czr/Hbx61NdFobrAYmKk0jEjE0MFyfYKguO7u+zXKM/7RYfIWGYiqUyOXh?=
 =?us-ascii?Q?lcCAav7ISaw7TDctY7PfdAsW/8z4yYj2XsDlVf3ByVSm2JKAe70fqipX/fz8?=
 =?us-ascii?Q?eMLKYvR1Dp2duiCa4kAYnSWnaDuMK0U3ArD3jE71hlMF8gG/gz4eOH9iLK+T?=
 =?us-ascii?Q?GcQ00Eb+YkPoPKijTQrHKRg1fYDYgJ8b6uJHQ4Ss5+X54CGEu97wOpBOKm6Z?=
 =?us-ascii?Q?PIBERTct+gs7KmkAQXku87mpZMTXYM12dNaqq19uKvFA1xSk9kZgJfr43+7L?=
 =?us-ascii?Q?R+v1g4xDz7A4HmDuuRPWNf+QeWERo5eUkrPcup+Eq4wkXiDT1SHCsuC6pr69?=
 =?us-ascii?Q?g04H1T0HnD6VPE2XoSl1vgN2NvWlO0szSzv/6UGfFOHRBcG8GPhWT9S/jfI3?=
 =?us-ascii?Q?qF4ZKFcgvWVrEsawsn9K8XkAYKdLyyJs44u0o9lVfhrV5fwh8g=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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 Nov 2024 20:53:31.4379
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 40ff51b7-ef80-4318-5713-08dd035c1118
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8783

Add links between a VF's struct pci_dev and its associated PF struct
pci_dev.

The hardware domain is expected to add a PF first before adding
associated VFs. Similarly, the hardware domain is expected to remove the
associated VFs before removing the PF. If adding/removing happens out of
order, print a warning and return an error. This means that VFs can only
exist with an associated PF.

Additionally, if the hardware domain attempts to remove a PF with VFs
still present, mark the PF and VFs broken, because Linux Dom0 has been
observed to not respect the error returned.

Move the call to pci_get_pdev() down to avoid dropping and re-acquiring
the pcidevs_lock(). Drop the call to pci_add_device() as it is invalid
to add a VF without an existing PF.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
Candidate for backport to 4.19 (the next patch depends on this one)

v6->v7:
* cope with multiple invocations of pci_add_device for VFs
* get rid of enclosing struct for single member
* during PF removal attempt with VFs still present:
    * keep PF
    * mark broken
    * don't unlink
    * return error
* during VF add:
    * initialize pf_pdev in declaration
    * remove logic catering to adding VFs without PF

v5->v6:
* move printk() before ASSERT_UNREACHABLE()
* warn about PF removal with VFs still present
* clarify commit message

v4->v5:
* new patch, split from ("x86/msi: fix locking for SR-IOV devices")
* move INIT_LIST_HEAD(&pdev->vf_list); earlier
* collapse struct list_head instances
* retain error code from pci_add_device()
* unlink (and mark broken) VFs instead of removing them
* const-ify VF->PF link
---
 xen/drivers/passthrough/pci.c | 74 ++++++++++++++++++++++++++++-------
 xen/include/xen/pci.h         |  8 ++++
 2 files changed, 68 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 74d3895e1ef6..d4167cea09c0 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -333,6 +333,8 @@ static struct pci_dev *alloc_pdev(struct pci_seg *pseg, u8 bus, u8 devfn)
     *((u8*) &pdev->devfn) = devfn;
     pdev->domain = NULL;
 
+    INIT_LIST_HEAD(&pdev->vf_list);
+
     arch_pci_init_pdev(pdev);
 
     rc = pdev_msi_init(pdev);
@@ -449,6 +451,10 @@ static void free_pdev(struct pci_seg *pseg, struct pci_dev *pdev)
 
     list_del(&pdev->alldevs_list);
     pdev_msi_deinit(pdev);
+
+    if ( pdev->info.is_virtfn )
+        list_del(&pdev->vf_list);
+
     xfree(pdev);
 }
 
@@ -656,24 +662,11 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     unsigned int slot = PCI_SLOT(devfn), func = PCI_FUNC(devfn);
     const char *type;
     int ret;
-    bool pf_is_extfn = false;
 
     if ( !info )
         type = "device";
     else if ( info->is_virtfn )
-    {
-        pcidevs_lock();
-        pdev = pci_get_pdev(NULL,
-                            PCI_SBDF(seg, info->physfn.bus,
-                                     info->physfn.devfn));
-        if ( pdev )
-            pf_is_extfn = pdev->info.is_extfn;
-        pcidevs_unlock();
-        if ( !pdev )
-            pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
-                           NULL, node);
         type = "virtual function";
-    }
     else if ( info->is_extfn )
         type = "extended function";
     else
@@ -703,7 +696,38 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
          * extended function.
          */
         if ( pdev->info.is_virtfn )
-            pdev->info.is_extfn = pf_is_extfn;
+        {
+            struct pci_dev *pf_pdev = pci_get_pdev(NULL,
+                                                   PCI_SBDF(seg,
+                                                           info->physfn.bus,
+                                                           info->physfn.devfn));
+            struct pci_dev *vf_pdev;
+            bool already_added = false;
+
+            if ( !pf_pdev )
+            {
+                printk(XENLOG_WARNING
+                       "Attempted to add SR-IOV device VF %pp without PF %pp\n",
+                       &pdev->sbdf,
+                       &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn));
+                free_pdev(pseg, pdev);
+                ret = -ENODEV;
+                goto out;
+            }
+
+            pdev->info.is_extfn = pf_pdev->info.is_extfn;
+            pdev->pf_pdev = pf_pdev;
+            list_for_each_entry(vf_pdev, &pf_pdev->vf_list, vf_list)
+            {
+                if ( vf_pdev == pdev )
+                {
+                    already_added = true;
+                    break;
+                }
+            }
+            if ( !already_added )
+                list_add(&pdev->vf_list, &pf_pdev->vf_list);
+        }
     }
 
     if ( !pdev->info.is_virtfn && !pdev->vf_rlen[0] )
@@ -821,6 +845,28 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
     list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
         if ( pdev->bus == bus && pdev->devfn == devfn )
         {
+            if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
+            {
+                struct pci_dev *vf_pdev;
+
+                /*
+                 * Linux Dom0 has been observed to not respect an error code
+                 * returned from PHYSDEVOP_pci_device_remove. Mark VFs and PF
+                 * broken.
+                 */
+                list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list)
+                    vf_pdev->broken = true;
+
+                pdev->broken = true;
+
+                printk(XENLOG_WARNING
+                       "Attempted to remove PCI SR-IOV PF %pp with VFs still present\n",
+                       &pdev->sbdf);
+
+                ret = -EBUSY;
+                break;
+            }
+
             if ( pdev->domain )
             {
                 write_lock(&pdev->domain->pci_lock);
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 1e4fe68c60fb..977c0d08f78a 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -153,7 +153,15 @@ struct pci_dev {
         unsigned int count;
 #define PT_FAULT_THRESHOLD 10
     } fault;
+
+    /*
+     * List head if PF.
+     * List entry if VF.
+     */
+    struct list_head vf_list;
     u64 vf_rlen[6];
+    /* Link from VF to PF. Only populated for VFs. */
+    const struct pci_dev *pf_pdev;
 
     /* Data for vPCI. */
     struct vpci *vpci;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 20:53:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 20:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834910.1250706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAxtL-0006YT-LG; Tue, 12 Nov 2024 20:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834910.1250706; Tue, 12 Nov 2024 20: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 1tAxtL-0006YM-IP; Tue, 12 Nov 2024 20:53:39 +0000
Received: by outflank-mailman (input) for mailman id 834910;
 Tue, 12 Nov 2024 20:53: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=6R0y=SH=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tAxtJ-0006YG-VU
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 20:53:38 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20620.outbound.protection.outlook.com
 [2a01:111:f403:2412::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b9e2061-a138-11ef-a0c7-8be0dac302b0;
 Tue, 12 Nov 2024 21:53:33 +0100 (CET)
Received: from BL1PR13CA0107.namprd13.prod.outlook.com (2603:10b6:208:2b9::22)
 by DS0PR12MB7704.namprd12.prod.outlook.com (2603:10b6:8:138::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Tue, 12 Nov
 2024 20:53:24 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2603:10b6:208:2b9:cafe::94) by BL1PR13CA0107.outlook.office365.com
 (2603:10b6:208:2b9::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.14 via Frontend
 Transport; Tue, 12 Nov 2024 20:53:24 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MN1PEPF0000ECDB.mail.protection.outlook.com (10.167.242.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 12 Nov 2024 20:53:24 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 12 Nov
 2024 14:53:23 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 12 Nov
 2024 14:53:23 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Nov 2024 14:53:22 -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: 2b9e2061-a138-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjIwIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjJiOWUyMDYxLWExMzgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDQ0ODEzLjMyMDUxMywic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ybN83OVu3NECRKTklXs4GVlLlcGDrwS2voTvkExbdLLuQys4H/cMNXccwObGo6aaMCqSCdm8Pyoboj7+zSQgs+bMdswn8Tm/6D1s4/HFKDP4yY9qjudThRjWcsuws/QMOQ0+Ko94CBocbnPf4kLrmCHIGcVXXR1XekCj14gmp+i5Xw6OuPAYtK29GXGwt3jdTrArrIEbwnc7ZR3s5REZB4Z5y+9ObfHMcxNIEha8cOMMJEUaVvuLleTjztlfqtLqNdfoT7tNte47aLXpd0LMGFOVXx093jtEpel3odTach9Bj9qkT9sQGCk6xCw0bFLqBvemOc4x5iq0YinIA9KoTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TznUirNIgng++pgaNb4AFp4lxySJRj7XVEi88zW4vFA=;
 b=sCGGkkUosXhNzyendSNHMi/6YyOz5nFS3YcSVp2MBZ2QpDMPcN6lWO7dsr7L2VfxRyB05E0hdlGhBDS29j+7Nd9ILsFhhme3HRFKkvIuPGfZZLTkMFOanMQol7QrC8+Tf9npoS7cAxw52Ov3kLMJatKpyjEetLZLBXHf9hRkeev9s/J5gyxGCVxJsHh+/p1c5Wyv/x0ZsgLPJIR5tWLA2m+HVv9u5+rWrsuzDMKMMaO+5/UqF0Fxjp2MTyQVBvdzgu1PsFw3l9vUfBiH6DdoWObtx2kvfH5sMTYVNpbGxCQYU3F6zw2hxqXzJtoEl/KUjY6LMTIUoWXgXi1oPesj4w==
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=TznUirNIgng++pgaNb4AFp4lxySJRj7XVEi88zW4vFA=;
 b=We7QIC9UjFXNnbTIcd7ysEzXnEuE3fR4vLHvC3+wp1w56hRZ/OrxyUhoM6KHtJBPZFaLADdgojdFAFTMArKlodPwklS2WCO25+B4h1RWVuFDNtHTbGpp00DBsqwojUGHhNgNCpPH52SGPDZFj/+HMbp0B72BAOjzle5HS8twZPE=
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=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Teddy
 Astie" <teddy.astie@vates.tech>
Subject: [PATCH v7 0/2] xen: SR-IOV fixes
Date: Tue, 12 Nov 2024 15:53:18 -0500
Message-ID: <20241112205321.186622-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDB:EE_|DS0PR12MB7704:EE_
X-MS-Office365-Filtering-Correlation-Id: 8536dcc5-edda-4dc6-7263-08dd035c0cbe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?B0DqtXgGnNZi9zf4gDsibbspakhpcbStCl+Jed4P8x5PcsVORIj2Aa3qGLoM?=
 =?us-ascii?Q?367cgPupxfbzryBq1XAR/vowVl9jSlsFBiQUX1CXBBzPdBx8qwben9+H6avc?=
 =?us-ascii?Q?ZiagyteOR3z536Lfd+bnATqgU5Ifm19emoJi/ftsTI3HqW91lRhWkUY0LRLM?=
 =?us-ascii?Q?F3k91oL0hfKVrmQEb31tA+Wf7PEjxdxhpYLl02n0/xg1SR1YCCXL3vIlyakf?=
 =?us-ascii?Q?H9R6SmoyjlN3TLC5qhHsWktDujoe0ew107Tf1BwFV0FzblO/ulwdnPZGfiYi?=
 =?us-ascii?Q?1aOeuoRBdl08eJeRHFfmaceHa1VU/ggwu3QZawRzt1QysTuX1Vhcv58oDpfx?=
 =?us-ascii?Q?nrmiQQELhD5MYv27kYazh9X9cRmn38lTHKiZyyes/9p2tppihubik/MIfgnG?=
 =?us-ascii?Q?2GUJlJxGmxYsisQPK1u5E3srwGzUd++hqO8uM+OUATGdkIxCseLwqwdG+doO?=
 =?us-ascii?Q?l48ZntH0is7fI27wF1kAPf55CLktoaAsgr1DowYd6r0rCLHQfvqPxBDgwoMy?=
 =?us-ascii?Q?Upq9ZsNJznAEPJX+mIWYPyjVPAk5eKZ+U/IozBfGa9lw8D6jwCXRKedaemg4?=
 =?us-ascii?Q?Bj/TY+GNuz1Ej1+IelD/wM4uDgyuWGLS/HfsW84BL31q6uHpnuncwTQsBa2X?=
 =?us-ascii?Q?t5AN1Is7r8d4VDJ6ZkHOkME3uawS3duZmD7CZUqiLHmc6yDELAEPWS4KJTct?=
 =?us-ascii?Q?EVyrSWZsa7kdFrSXfPgAAxSLV7BbVYjA6WxsRYw68eWdasVV5zKWwVivek5h?=
 =?us-ascii?Q?IvdWFbdYgr34OoRtdXgeXBxAoia1Lj/zqfrWUhunKk3bCEOb/1VRcMxKlUky?=
 =?us-ascii?Q?1QlXQC29jhuRYaXsJJEnuvb4pz9ak5QvsZ+Udzw8WX1kvLeF3POHdDEgtL39?=
 =?us-ascii?Q?yKTeJoAyR6z8j6qT+JmT55xn1y/ExP/oyImOiYI1Jlg/oUi+GmjMq3GiBGlT?=
 =?us-ascii?Q?H/dFH5y16dRXWU76zQNCSc8K/zWYU+De2CavF92Cp4XfdFaj92OQQQACIPPx?=
 =?us-ascii?Q?SQ+TWOSZvJfscpoGMTXtakCFjXQRzKoilKU57fwcpDc6+CriGfcKkjjssjWv?=
 =?us-ascii?Q?nF2dExjFySM8eYTn2GNDERDPkqW6toqJhRZV4uubaMBkFa4QrCodQTe/NICW?=
 =?us-ascii?Q?FYGhcL5lz/dvPKHSxeU0fEHPfVeFHSm2eZV5oNUgUAfskCDyM1Hr9Fl4XdYV?=
 =?us-ascii?Q?xthh2C3iEeIPneyJ9KxrThgIO7gH6giCEJ+CrIh09lfI9Vusplk1ZgpFxWEH?=
 =?us-ascii?Q?W0063JG7VZgW4TaMV/tZY5MVthzWiA49OSIrWcyypUQN2e6yr/gW2uQ7IyUF?=
 =?us-ascii?Q?NtvEX+hxBVY1xHlgpQTVb683fz9UB+8TF53+Y2U8wJwbovwFQgRLQbv/LpL2?=
 =?us-ascii?Q?ix/V5rvKv5ZI1jIhNBeZn3GfzZvyrc497uKUngDFFNrgoaF7PQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2024 20:53:24.1535
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8536dcc5-edda-4dc6-7263-08dd035c0cbe
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7704

Introduce PV<->VF links and fix a regressiong related to a locking
change.

Stewart Hildebrand (2):
  xen/pci: introduce PF<->VF links
  x86/msi: fix locking for SR-IOV devices

 xen/arch/x86/msi.c            | 36 ++++++++-------
 xen/drivers/passthrough/pci.c | 82 +++++++++++++++++++++++++++--------
 xen/include/xen/pci.h         | 15 ++++++-
 3 files changed, 100 insertions(+), 33 deletions(-)


base-commit: 64d2290cf96bbf84bb8606f9bc784166ac610b1c
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 21:19:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 21:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834936.1250736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAyIK-0002Gk-7l; Tue, 12 Nov 2024 21:19:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834936.1250736; Tue, 12 Nov 2024 21:19: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 1tAyIK-0002Gd-4T; Tue, 12 Nov 2024 21:19:28 +0000
Received: by outflank-mailman (input) for mailman id 834936;
 Tue, 12 Nov 2024 21:19: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAyII-0002GE-Jy
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 21:19:26 +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 c8326aed-a13b-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 22:19:20 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-aa1e51ce601so174359166b.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 13:19:20 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0defaefsm762049066b.164.2024.11.12.13.19.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 13:19: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: c8326aed-a13b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM4MzI2YWVkLWExM2ItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDQ2MzYwLjcyMTg0LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731446360; x=1732051160; 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=jsa12gmbMNZ4JYTlfQsRQq4C/O5aUYd1O0nPblfp3iE=;
        b=Im5nBlCwWip2eFlaCHX4aY+OqjPY8wk+qhyyrWvQXO+6TmNsw2gi9fu1HVUqF3Xjq6
         Q6hs/eVpxVv+2H5CWv/vhCq3hxyOejrlWypwa3s9+nXJXlHdrlf7A5UcdBhIE9GGohIY
         xr4mY112BRi5Tko4fII7SrbQlS244r4meTUHU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731446360; x=1732051160;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jsa12gmbMNZ4JYTlfQsRQq4C/O5aUYd1O0nPblfp3iE=;
        b=BhYYcSDcTzj6y36KLV5MH/lVUDOTSPrSs0302jYi4/17e+qMCmKD7g3jCB8UBnDmDn
         5ispBdSP8vf2Q/CjNFi8L6brluJtt4tXlnxPo+fT2a8PIgNMGT74F2FjRlYu2Y03yPY5
         7cnWUb7T2dgOSxviQryccr0G6/eKzqguUekq/jPTqBsPNxhpAu0XebZ4XQXnRa4KI3i5
         K9jQqMo8wpq/QUnnQ2BfFPmwevxCbyx+Xsl1VcSFBcavFfCx8GVJwtsV3oapI5aWpraw
         mvJnduRy4kJ2NVMFiW/tSMVT6LqJdOVX13STehJx90wRabBeCU73Lq9HKH+j+p5Fg7ZJ
         lf5A==
X-Gm-Message-State: AOJu0YyjTFQBabnQxdmPPg8QM2srJRiZ4F9F+Gm7YOjJTdnZOFCNTlYL
	GUygjCl+Vm8r41zAOGbQDFxlKxFZJDTdl0VrrsXPvtkyUMpYbIrt2cOHM1B7QahVxeu5ygZMycb
	T
X-Google-Smtp-Source: AGHT+IEI+uILRhB7vfT10ROk8wzxcMHa3aAYpcdopfiCXVqktNFi+WzYOeKEVsFBdreGQMhTBDC9fA==
X-Received: by 2002:a17:907:9486:b0:a99:4f40:3e82 with SMTP id a640c23a62f3a-a9eefeb2bacmr1612502366b.7.1731446359564;
        Tue, 12 Nov 2024 13:19:19 -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 1/3] x86/ucode: Remove the collect_cpu_info() call from parse_blob()
Date: Tue, 12 Nov 2024 21:19:13 +0000
Message-Id: <20241112211915.1473121-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the tangle of logic starting to come under control, it is now plain to
see that parse_blob()'s side effect of re-gathering the signature/revision is
pointless.

The cpu_request_microcode() hooks need the signature only.  The BSP gathers
this in early_microcode_init(), the APs and S3 in microcode_update_cpu().  For
good measure, the apply_microcode() hooks also keep the revision correct as
load attempts are made.

This finally gets us down to a single call per CPU on boot / S3 resume, and no
calls during late-load hypercalls.

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/microcode/core.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index fd4b08b45388..5897ec54032a 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -189,8 +189,6 @@ static struct patch_with_flags nmi_patch =
  */
 static struct microcode_patch *parse_blob(const char *buf, size_t len)
 {
-    alternative_vcall(ucode_ops.collect_cpu_info);
-
     return alternative_call(ucode_ops.cpu_request_microcode, buf, len, true);
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 21:19:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 21:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834939.1250756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAyIL-0002cZ-7c; Tue, 12 Nov 2024 21:19:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834939.1250756; Tue, 12 Nov 2024 21:19: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 1tAyIL-0002aE-2e; Tue, 12 Nov 2024 21:19:29 +0000
Received: by outflank-mailman (input) for mailman id 834939;
 Tue, 12 Nov 2024 21:19: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAyIJ-0002GE-OU
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 21:19:27 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c90b5a56-a13b-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 22:19:22 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a99f646ff1bso922054666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 13:19:22 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0defaefsm762049066b.164.2024.11.12.13.19.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 13:19: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: c90b5a56-a13b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5MGI1YTU2LWExM2ItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDQ2MzYyLjE1MzI3Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731446361; x=1732051161; 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=bXeqEdvAbZY1hWBgh5PB6EHEOkfnXP4Z7DiK6RDTCRc=;
        b=Y6eo8II4Sft87xefMFJ5TAX4WO5E7olFZJqfqbEh9+EhcIGtX9UJdH6nPGTuyKJ4jS
         n+Emac6sgclu57N2Bz/TMrg44yfbyn+cfTcpbpyBLS4vFSX011hXASBG4xwJQKndFnKP
         CELceyCN3WoyuJspyOjnaf1UnX0ZcHGnjgUxE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731446361; x=1732051161;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=bXeqEdvAbZY1hWBgh5PB6EHEOkfnXP4Z7DiK6RDTCRc=;
        b=aD2Zlm6SaN1oNHvZopxa+X19UkR6mfOZdKMoFHnQl4Ze566pLjhqxTeT82nhj8AoJ5
         PYw6bWlD1kBHre1e+RatGJa3bam0Yg3i9IKcTNUET6ZmhzOkEwi//JPHc/ONvdKVAkOv
         pefygGdB7LYuVO8HTQlGoolD/BAcPksFcjXfs0XERtFEvuaHTvoqYTDElNSVbu3hYth7
         ywD8BWQtuNE3dRLsMfPHxyWWIpPVSVZwSfdrXDU/TCb2/fwCq6Bn+tOMwDKglWO/gY5c
         hHuZQhxPLpKxFjRR26/XJ6/w20tOFcWFlhq3YDbu6wgjnXRhs+ahSU3zI7O+x2ERG+wJ
         Udgw==
X-Gm-Message-State: AOJu0Yx7I9qt/Uzp2alfkog29x24aohe8RVRtcnfiBKPPwDtSxfTh6MU
	owCt/+QapeSyimFeI2+/8Qynth5UIpMT21MwOaEbPn3T7QBqz8F3VjtE2DQH3A8TnOJUCTqy0Pz
	l
X-Google-Smtp-Source: AGHT+IFjrmJwiNSREOn7qFXBleK0HcSvHQ14DMXgAqdWjXwH2NYh+4Itd++JTpf1sV0e8HYJTjMHjw==
X-Received: by 2002:a17:907:1b0e:b0:a9a:1792:f05 with SMTP id a640c23a62f3a-aa1b10a45a5mr450483466b.31.1731446361142;
        Tue, 12 Nov 2024 13:19: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>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/3] x86/ucode: Fix cache handling in microcode_update_helper()
Date: Tue, 12 Nov 2024 21:19:14 +0000
Message-Id: <20241112211915.1473121-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

microcode_update_cache() now has a single caller, but inlining it shows how
unnecessarily complicated the logic really is.

Outside of error paths, there is always one microcode patch to free.  Its
either result of parse_blob(), or it's the old cached value.

In order to fix this, have a local patch pointer (mostly to avoid the
unnecessary verbosity of patch_with_flags.patch), and always free it at the
end.  The only error path needing care is the IS_ERR(patch) path, which is
easy enough to handle.

Also, widen the scope of result.  We only need to call compare_patch() once,
and the answer is still good later when updating the cache.  In order to
update the cache, simply SWAP() the patch and the cache pointers, allowing the
singular xfree() at the end to cover both cases.

This also removes all callers microcode_free_patch() which fixes the need to
cast away const to allow it to compile.  This also removed several violations
of MISRA Rule 11.8 which disallows casting away const.

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>
---
 xen/arch/x86/cpu/microcode/core.c | 66 +++++++++++--------------------
 1 file changed, 24 insertions(+), 42 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 5897ec54032a..0cc5daa251e2 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -86,7 +86,7 @@ struct patch_with_flags {
 static bool ucode_in_nmi = true;
 
 /* Protected by microcode_mutex */
-static const struct microcode_patch *microcode_cache;
+static struct microcode_patch *microcode_cache;
 
 /*
  * opt_mod_idx and opt_scan have subtle semantics.
@@ -192,33 +192,6 @@ static struct microcode_patch *parse_blob(const char *buf, size_t len)
     return alternative_call(ucode_ops.cpu_request_microcode, buf, len, true);
 }
 
-static void microcode_free_patch(const struct microcode_patch *patch)
-{
-    xfree((struct microcode_patch *)patch);
-}
-
-/* Return true if cache gets updated. Otherwise, return false */
-static bool microcode_update_cache(const struct microcode_patch *patch)
-{
-    ASSERT(spin_is_locked(&microcode_mutex));
-
-    if ( !microcode_cache )
-        microcode_cache = patch;
-    else if ( alternative_call(ucode_ops.compare_patch,
-                               patch, microcode_cache) == NEW_UCODE )
-    {
-        microcode_free_patch(microcode_cache);
-        microcode_cache = patch;
-    }
-    else
-    {
-        microcode_free_patch(patch);
-        return false;
-    }
-
-    return true;
-}
-
 /* Returns true if ucode should be loaded on a given cpu */
 static bool is_cpu_primary(unsigned int cpu)
 {
@@ -496,6 +469,8 @@ struct ucode_buf {
 
 static long cf_check microcode_update_helper(void *data)
 {
+    struct microcode_patch *patch = NULL;
+    enum microcode_match_result result;
     int ret;
     struct ucode_buf *buffer = data;
     unsigned int cpu, updated;
@@ -524,17 +499,20 @@ static long cf_check microcode_update_helper(void *data)
         goto put;
     }
 
-    patch_with_flags.patch = parse_blob(buffer->buffer, buffer->len);
+    patch = parse_blob(buffer->buffer, buffer->len);
     patch_with_flags.flags = buffer->flags;
+
     xfree(buffer);
-    if ( IS_ERR(patch_with_flags.patch) )
+
+    if ( IS_ERR(patch) )
     {
-        ret = PTR_ERR(patch_with_flags.patch);
+        ret = PTR_ERR(patch);
+        patch = NULL;
         printk(XENLOG_WARNING "Parsing microcode blob error %d\n", ret);
         goto put;
     }
 
-    if ( !patch_with_flags.patch )
+    if ( !patch )
     {
         printk(XENLOG_WARNING "microcode: couldn't find any matching ucode in "
                               "the provided blob!\n");
@@ -549,10 +527,7 @@ static long cf_check microcode_update_helper(void *data)
     spin_lock(&microcode_mutex);
     if ( microcode_cache )
     {
-        enum microcode_match_result result;
-
-        result = alternative_call(ucode_ops.compare_patch,
-                                  patch_with_flags.patch, microcode_cache);
+        result = alternative_call(ucode_ops.compare_patch, patch, microcode_cache);
 
         if ( result != NEW_UCODE &&
              !(ucode_force && (result == OLD_UCODE || result == SAME_UCODE)) )
@@ -561,12 +536,13 @@ static long cf_check microcode_update_helper(void *data)
             printk(XENLOG_WARNING
                    "microcode: couldn't find any newer%s revision in the provided blob!\n",
                    ucode_force ? " (or a valid)" : "");
-            microcode_free_patch(patch_with_flags.patch);
             ret = -EEXIST;
 
             goto put;
         }
     }
+    else
+        result = NEW_UCODE;
     spin_unlock(&microcode_mutex);
 
     cpumask_clear(&cpu_callin_map);
@@ -593,14 +569,18 @@ static long cf_check microcode_update_helper(void *data)
      *   this requirement can be relaxed in the future. Right now, this is
      *   conservative and good.
      */
+    patch_with_flags.patch = patch;
     ret = stop_machine_run(do_microcode_update, &patch_with_flags, NR_CPUS);
 
     updated = atomic_read(&cpu_updated);
     if ( updated > 0 )
     {
-        spin_lock(&microcode_mutex);
-        microcode_update_cache(patch_with_flags.patch);
-        spin_unlock(&microcode_mutex);
+        if ( result == NEW_UCODE )
+        {
+            spin_lock(&microcode_mutex);
+            SWAP(patch, microcode_cache);
+            spin_unlock(&microcode_mutex);
+        }
 
         /*
          * Refresh the raw CPU policy, in case the features have changed.
@@ -615,8 +595,6 @@ static long cf_check microcode_update_helper(void *data)
         if ( ctxt_switch_masking )
             alternative_vcall(ctxt_switch_masking, current);
     }
-    else
-        microcode_free_patch(patch_with_flags.patch);
 
     if ( updated && updated != nr_cores )
         printk(XENLOG_ERR "ERROR: Updating microcode succeeded on %u cores and failed\n"
@@ -627,6 +605,10 @@ static long cf_check microcode_update_helper(void *data)
 
  put:
     put_cpu_maps();
+
+    /* The parsed blob or old cached value, whichever we're not keeping. */
+    xfree(patch);
+
     return ret;
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 21:19:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 21:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834937.1250740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAyIK-0002Jw-G9; Tue, 12 Nov 2024 21:19:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834937.1250740; Tue, 12 Nov 2024 21:19: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 1tAyIK-0002Im-Bf; Tue, 12 Nov 2024 21:19:28 +0000
Received: by outflank-mailman (input) for mailman id 834937;
 Tue, 12 Nov 2024 21:19: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAyII-0002GE-Rp
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 21:19:26 +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 c7e99b87-a13b-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 22:19:20 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9a0ef5179dso1040860666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 13:19:20 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0defaefsm762049066b.164.2024.11.12.13.19.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 13:19: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: c7e99b87-a13b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM3ZTk5Yjg3LWExM2ItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDQ2MzYwLjI5OTUyMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731446359; x=1732051159; 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=OBwK/QF+1NquGOFu0ZZixkKntqOFUa8H6vDkVuqNnKY=;
        b=Iyn9SLBn4TbDiQJNLmQSXm23oBuDLMb/HGWIXlQq08dS7CogYBQ+ZDWWyutk0kXJLl
         tHWVT2bqRkL/xLF38Mipw9RPvfVqjHwrDP60hPCxR5JCExTtx1FCxDCXZ9UPqLJoTukt
         5j0gUD0qLbBV8rAj6vaD/l7wKb6TSWOxV7J0I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731446359; x=1732051159;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=OBwK/QF+1NquGOFu0ZZixkKntqOFUa8H6vDkVuqNnKY=;
        b=lmHOCQ4u6zF3gqKVTxymM7B0XcadSOBn4rFgrMrocMz9w01kKpREVNRimzVCCEu3dK
         SpdojyZyXzrSiV+CQnyaDoDGjuThfjxXZ0wW3mXTM8PfL3mLh5vfjshzTlYKCIB9ZFXL
         hvP9bAzG0fOjBQtORgCjxnDYShPv9Mpy+8tdZGQwpKnWr0BajyrlU26noAiE5nGWgF97
         OxhALVLT6Hz4grRKDj6WjB7KtjuxRPjayLl5WKaLmAGq5wXNrRY9sZqW6b1NWw2L4gqI
         bbCKzg3hYcO3etebXXNvB5sst7yQsRUMXrJfEnzEChf0kOBc3KLyBuqRzyugjj6LxKpG
         lIaQ==
X-Gm-Message-State: AOJu0YwxoxqR9OkmbKiwGsmkMDOnZdmU6MCHeIkH57bBPM0Ymi4xy5Sv
	UhBJh+4FH511/YIwZE5JlOVSPiiIhmItOFB5CHK7MT2VJ/bX4Q3psSk24d2vpML/zTK5T1dwYFh
	q
X-Google-Smtp-Source: AGHT+IEpFFEisXH2SHYcEAxyhBO8zO2SQ+lwYiBs8HX53xYapTrKVjADdsDKECfiGw/sjnRqZPhr7A==
X-Received: by 2002:a17:907:5c7:b0:a9a:17f5:79a8 with SMTP id a640c23a62f3a-a9eeff09bc5mr1749193666b.13.1731446358860;
        Tue, 12 Nov 2024 13:19:18 -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 0/3] x86/ucode: Simplify/fix loading paths further
Date: Tue, 12 Nov 2024 21:19:12 +0000
Message-Id: <20241112211915.1473121-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

Remains of the previous patches, posted as a single series.

Andrew Cooper (3):
  x86/ucode: Remove the collect_cpu_info() call from parse_blob()
  x86/ucode: Fix cache handling in microcode_update_helper()
  x86/ucode: Drop MIS_UCODE and microcode_match_result

 xen/arch/x86/cpu/microcode/amd.c     | 10 ++--
 xen/arch/x86/cpu/microcode/core.c    | 69 ++++++++++------------------
 xen/arch/x86/cpu/microcode/intel.c   |  9 ++--
 xen/arch/x86/cpu/microcode/private.h | 21 ++++-----
 4 files changed, 42 insertions(+), 67 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 21:19:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 21:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834938.1250748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAyIK-0002Og-P8; Tue, 12 Nov 2024 21:19:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834938.1250748; Tue, 12 Nov 2024 21:19: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 1tAyIK-0002OC-Jx; Tue, 12 Nov 2024 21:19:28 +0000
Received: by outflank-mailman (input) for mailman id 834938;
 Tue, 12 Nov 2024 21:19: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAyIJ-0002GG-9a
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 21:19:27 +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 c9e406e4-a13b-11ef-a0c7-8be0dac302b0;
 Tue, 12 Nov 2024 22:19:23 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cedea84d77so8066428a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 13:19:23 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0defaefsm762049066b.164.2024.11.12.13.19.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 13:19: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: c9e406e4-a13b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5ZTQwNmU0LWExM2ItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDQ2MzYzLjYzNzQwOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731446362; x=1732051162; 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=eAYyhUk3NiNBRpvH7yor3qXtJxAbrlhbvjZAvpbioVA=;
        b=gNtcUJaes2Hvh6MPO+Ge8IqrX7nXE0lO/X3RNjH7gAHJp60TfTuEnwHJfHA6r/uv0/
         aAHXag6UlxcGn5MbZyneXfSIBWa79tfY5uzhgROizesTFnGe/f1vpUwFB8j0s2kkYlp4
         p3GVCpwdY8TZJMMnh+TFhzXhA6vzEp/F3aZ1s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731446362; x=1732051162;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=eAYyhUk3NiNBRpvH7yor3qXtJxAbrlhbvjZAvpbioVA=;
        b=OMHY1uhbI1z6U665eI4hEyFYJ30+tMGmu4UFL8wmWFxImnsb9PdsTIHavuXDtRlRsl
         rp4SyCX/UwOyme2G3mgYw4DLQbsew7w8KCTkCpsmRuRdycuXs+kOQsmuHCPeHOMZCaNy
         RGDzaXrZQYcTZFrBRA/sQnPdHF73FIfFFc65qZ/cQ9fJ/elTmlA1HL+fwl2IjMEGmFpp
         yv6CMdvGLqGoEytaBtndqxkg+LeEbCY0bdXQu+RKdXqm/mH6qsswU6MjOk9InSj1y8PP
         Z0v9Oe8Q7jIBHOjYOn1SEM8RKcxGCGMPe2+AFd0O0DRpCAbCGksETU4GyZN46AvSS5ko
         bORQ==
X-Gm-Message-State: AOJu0YxRDRwUGK7//CKeuBUFRnT2xNSqa/9z0J6MrSbQdqY8fApOH87r
	lGOv7KGE9Qom76Zdr9AXF4SDdtOfZBXj0mxX78whRvg7fsVFEhm32QXIDAGKzXUI/gHuhRmfOgk
	Q
X-Google-Smtp-Source: AGHT+IH1SJMQqG4ZDRMaVvXg/u4VtZfUdJ5zz7Ex1zwQLqVw/ITZH7FI+RC1MgIh6+bk2m9pwjGAww==
X-Received: by 2002:a17:907:31c2:b0:a99:fb56:39cc with SMTP id a640c23a62f3a-aa1f810644amr37088166b.38.1731446362440;
        Tue, 12 Nov 2024 13:19: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 v2 3/3] x86/ucode: Drop MIS_UCODE and microcode_match_result
Date: Tue, 12 Nov 2024 21:19:15 +0000
Message-Id: <20241112211915.1473121-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All uses of MIS_UCODE, have been removed, leaving only a simple ordering
relation, and microcode_match_result being a stale name.

Drop the enum entirely, and use a simple int -1/0/1 scheme like other standard
ordering primitives in C.

Swap the order or parameters to compare_patch(), to reduce cognitive
complexity; all other logic operates the other way around.

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>

I don't particular like keeping "result" as a variable name, but nothing
better comes to mind.
---
 xen/arch/x86/cpu/microcode/amd.c     | 10 ++++------
 xen/arch/x86/cpu/microcode/core.c    |  5 ++---
 xen/arch/x86/cpu/microcode/intel.c   |  9 ++++-----
 xen/arch/x86/cpu/microcode/private.h | 21 ++++++++++-----------
 4 files changed, 20 insertions(+), 25 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 3861fec6565a..366c8c59e93a 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -170,8 +170,7 @@ static bool check_final_patch_levels(const struct cpu_signature *sig)
     return false;
 }
 
-static enum microcode_match_result compare_revisions(
-    uint32_t old_rev, uint32_t new_rev)
+static int compare_revisions(uint32_t old_rev, uint32_t new_rev)
 {
     if ( new_rev > old_rev )
         return NEW_UCODE;
@@ -199,8 +198,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *patch)
     return equiv.id == patch->processor_rev_id;
 }
 
-static enum microcode_match_result cf_check compare_patch(
-    const struct microcode_patch *new, const struct microcode_patch *old)
+static int cf_check compare_patch(
+    const struct microcode_patch *old, const struct microcode_patch *new)
 {
     /* Both patches to compare are supposed to be applicable to local CPU. */
     ASSERT(microcode_fits_cpu(new));
@@ -212,11 +211,10 @@ static enum microcode_match_result cf_check compare_patch(
 static int cf_check apply_microcode(const struct microcode_patch *patch,
                                     unsigned int flags)
 {
-    int hw_err;
+    int hw_err, result;
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &per_cpu(cpu_sig, cpu);
     uint32_t rev, old_rev = sig->rev;
-    enum microcode_match_result result;
     bool ucode_force = flags & XENPF_UCODE_FORCE;
 
     if ( !microcode_fits_cpu(patch) )
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 0cc5daa251e2..05d0d68d8158 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -470,8 +470,7 @@ struct ucode_buf {
 static long cf_check microcode_update_helper(void *data)
 {
     struct microcode_patch *patch = NULL;
-    enum microcode_match_result result;
-    int ret;
+    int ret, result;
     struct ucode_buf *buffer = data;
     unsigned int cpu, updated;
     struct patch_with_flags patch_with_flags;
@@ -527,7 +526,7 @@ static long cf_check microcode_update_helper(void *data)
     spin_lock(&microcode_mutex);
     if ( microcode_cache )
     {
-        result = alternative_call(ucode_ops.compare_patch, patch, microcode_cache);
+        result = alternative_call(ucode_ops.compare_patch, microcode_cache, patch);
 
         if ( result != NEW_UCODE &&
              !(ucode_force && (result == OLD_UCODE || result == SAME_UCODE)) )
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index 3f37792ab4b5..9616a5e9db4b 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -229,8 +229,7 @@ static int microcode_sanity_check(const struct microcode_patch *patch)
  * Production microcode has a positive revision.  Pre-production microcode has
  * a negative revision.
  */
-static enum microcode_match_result compare_revisions(
-    int32_t old_rev, int32_t new_rev)
+static int compare_revisions(int32_t old_rev, int32_t new_rev)
 {
     if ( new_rev > old_rev )
         return NEW_UCODE;
@@ -270,8 +269,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *mc)
     return false;
 }
 
-static enum microcode_match_result cf_check compare_patch(
-    const struct microcode_patch *new, const struct microcode_patch *old)
+static int cf_check compare_patch(
+    const struct microcode_patch *old, const struct microcode_patch *new)
 {
     /*
      * Both patches to compare are supposed to be applicable to local CPU.
@@ -290,7 +289,7 @@ static int cf_check apply_microcode(const struct microcode_patch *patch,
     unsigned int cpu = smp_processor_id();
     struct cpu_signature *sig = &this_cpu(cpu_sig);
     uint32_t rev, old_rev = sig->rev;
-    enum microcode_match_result result;
+    int result;
     bool ucode_force = flags & XENPF_UCODE_FORCE;
 
     if ( !microcode_fits_cpu(patch) )
diff --git a/xen/arch/x86/cpu/microcode/private.h b/xen/arch/x86/cpu/microcode/private.h
index c9dd8ba066f9..957d4d4293d0 100644
--- a/xen/arch/x86/cpu/microcode/private.h
+++ b/xen/arch/x86/cpu/microcode/private.h
@@ -5,13 +5,6 @@
 
 #include <asm/microcode.h>
 
-enum microcode_match_result {
-    OLD_UCODE, /* signature matched, but revision id is older */
-    SAME_UCODE, /* signature matched, but revision id is the same */
-    NEW_UCODE, /* signature matched, but revision id is newer */
-    MIS_UCODE, /* signature mismatched */
-};
-
 /* Opaque.  Internals are vendor-specific. */
 struct microcode_patch;
 
@@ -54,11 +47,17 @@ struct microcode_ops {
                            unsigned int flags);
 
     /*
-     * Given two patches, are they both applicable to the current CPU, and is
-     * new a higher revision than old?
+     * Given a current patch, and a proposed new patch, order them based on revision.
+     *
+     * This operation is not necessarily symmetrical.  In some cases, a debug
+     * "new" patch will always considered to be newer, on the expectation that
+     * whomever is using debug patches knows exactly what they're doing.
      */
-    enum microcode_match_result (*compare_patch)(
-        const struct microcode_patch *new, const struct microcode_patch *old);
+#define OLD_UCODE  -1
+#define SAME_UCODE  0
+#define NEW_UCODE   1
+    int (*compare_patch)(const struct microcode_patch *old,
+                         const struct microcode_patch *new);
 
     /*
      * For Linux inird microcode compatibliity.
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 21:33:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 21:33:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834976.1250799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAyW3-0007Vk-KK; Tue, 12 Nov 2024 21:33:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834976.1250799; Tue, 12 Nov 2024 21:33: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 1tAyW3-0007Vd-Hi; Tue, 12 Nov 2024 21:33:39 +0000
Received: by outflank-mailman (input) for mailman id 834976;
 Tue, 12 Nov 2024 21:33: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAyW2-0007VX-EB
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 21:33:38 +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 c3f0b783-a13d-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 22:33:32 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so1056798366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 13:33:32 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e0fb98sm759907766b.176.2024.11.12.13.33.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 13:33: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: c3f0b783-a13d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMzZjBiNzgzLWExM2QtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDQ3MjEyLjYwMzM0OSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731447210; x=1732052010; 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=KK73VGCcmlY58RQWioRCWj7eHOazl+wEL6m61+SHsoc=;
        b=iqmQhuwJf0xXdZl9XpoUzYOHgkWgy4IG3GnmxdNWz6wJJoQvlqHcerVSSdDRxaQbCQ
         H7Hy+kmp3AHH6GCdOtsfz7QFD1m2Y6ytOmF6ozhYEYBQ2kUFN4etAaVDv7721JXfPLbC
         paKnBf5lWiE/U+YhE7ds82iFG1wCqMC34ugrI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731447210; x=1732052010;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KK73VGCcmlY58RQWioRCWj7eHOazl+wEL6m61+SHsoc=;
        b=afA9abo8DnLvTGSuL1SASpYu7/cBAlHk2Sq8exS6bp1+8L3+7UAl9jJjNSDtFvToO9
         +D9zugGkZv2v1QWr3GPoKGFbU+gJDFxZAwk95KKadiB9/PnVHXMMb6X1t2vaYIVv5yf9
         hyc8gvOfj6oXBR2mX95KzWKRuz9HKEPxHEC/HUkpMpy2+vSWcpBlBDtCiT0LqogzsPDs
         DXmyPdhdQYxM8Kbf87Lc/s8cMEKlrXuXaHuNY+FtpIkMWsUgxDWTdf7M1AK3FAYwhoPj
         +tb476pSbe+xoLjGNzQ3UI944UfOMBbUbi0ZS5ZLsQznz06EJ7qMDAwxbRYq7MBrFx3V
         04WQ==
X-Gm-Message-State: AOJu0YzbULJ7+3qVFLmdbQz+qwGy54nWXhQOmaZcaUADhWqnkOl07q+k
	Zp6n910pjxZy8kW7F3m9kmUoaYUZZFln2vp7Lug/rVWBVMXcPArtvep8k8IBuOYyt/zroeA8Ix9
	2
X-Google-Smtp-Source: AGHT+IGAnRcEIkA4BIwt3BEty2U/KMuK1asgE3ULsVYSSZHp0A+wMqMK2732YMnWyA+E9TVyKiX47g==
X-Received: by 2002:a17:907:26c2:b0:a9e:c442:2c15 with SMTP id a640c23a62f3a-a9eefff1869mr1843926766b.38.1731447209938;
        Tue, 12 Nov 2024 13:33:29 -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>,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	"consulting @ bugseng . com" <consulting@bugseng.com>
Subject: [PATCH] x86/e820: Fix parameter names of reserve_e820_ram()/e820_change_range_type()
Date: Tue, 12 Nov 2024 21:33:27 +0000
Message-Id: <20241112213327.1474541-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 work to address Rule 5.3 introduced violations of Rule 8.3 by failing to
rename the parameters in the declaration.

Fixes: b5fd405aa381 ("x86/e820 address violations of MISRA C:2012 Rule 5.3")
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: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
CC: consulting@bugseng.com <consulting@bugseng.com>
---
 xen/arch/x86/include/asm/e820.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/e820.h b/xen/arch/x86/include/asm/e820.h
index af90085d65d1..8e7644f8870b 100644
--- a/xen/arch/x86/include/asm/e820.h
+++ b/xen/arch/x86/include/asm/e820.h
@@ -25,9 +25,9 @@ struct e820map {
 
 extern int sanitize_e820_map(struct e820entry *biosmap, unsigned int *pnr_map);
 extern int e820_all_mapped(u64 start, u64 end, unsigned type);
-extern int reserve_e820_ram(struct e820map *e820, uint64_t s, uint64_t e);
+extern int reserve_e820_ram(struct e820map *map, uint64_t s, uint64_t e);
 extern int e820_change_range_type(
-    struct e820map *e820, uint64_t s, uint64_t e,
+    struct e820map *map, uint64_t s, uint64_t e,
     uint32_t orig_type, uint32_t new_type);
 extern int e820_add_range(uint64_t s, uint64_t e, uint32_t type);
 extern unsigned long init_e820(const char *str, struct e820map *raw);

base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 21:51:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 21:51:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834986.1250811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tAync-0002Qm-4w; Tue, 12 Nov 2024 21:51:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834986.1250811; Tue, 12 Nov 2024 21: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 1tAync-0002Qf-0j; Tue, 12 Nov 2024 21:51:48 +0000
Received: by outflank-mailman (input) for mailman id 834986;
 Tue, 12 Nov 2024 21:51: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tAyna-0002QZ-Rg
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 21:51:46 +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 4cb7ad05-a140-11ef-99a3-01e77a169b0f;
 Tue, 12 Nov 2024 22:51:41 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-53da061c488so95758e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 13:51:41 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2eb28sm767459366b.197.2024.11.12.13.51.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Nov 2024 13:51: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: 4cb7ad05-a140-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRjYjdhZDA1LWExNDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDQ4MzAxLjA1MTA5Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731448295; x=1732053095; 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=srG+OAIFyZxWlC/7KQkToiWJ7QuJWId8xByLJJCBHPk=;
        b=DWLGkQP87dkrdAPJzwM4RrlFQZ2TsucJ1kyRVqPQ8xy9DNxtB5TwDmSbrbygT3l6d1
         AND8OzN/eYZGdd+kpXIi29JHu3TKQkpCDE5D1v2XlqAq0HQ0lMUR+YVPadsdXtgDcZwp
         yt+De1rP2Z4tIQHGJgvjOaylbDkfmzOL7m2OQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731448295; x=1732053095;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=srG+OAIFyZxWlC/7KQkToiWJ7QuJWId8xByLJJCBHPk=;
        b=Xwa2za1M67pzuQoix/jfO4GkM9mU71fxnyBDXWEE5ez2AU7i1f3kxnReNLf1uMrTQH
         oXRg3frzvL/jXuVV7g4JEeahkfEZyuTTJvS+3N1PVhrrxJZeP8rzA4zCAU27Gkr008TP
         cYrZRljpEyVCG8QxnDrkJwjWCgndvduMUM3eaoypKORmdHbyhQbW0WMuBSRzAa6FPQ8x
         9nv/olf2MRk2Nw3a3L2IrsiVw/pxIj0egjKQBUP7Kr8nQMIBtHJVeTjHL8pCJXd8GAFh
         ts6+e07ylN8NvvuQ98+b8i027FDP6GR+wcO/dlDe2gYIDXU5V47SFKyOgekhbcHlYgbo
         RW8w==
X-Gm-Message-State: AOJu0YyGv3mhfejfxPSjND2q9bskxashzPhNS+GDcyIdQ45LcLGGutKH
	dMbLK5JolFZXv9zJQGX3sVmc3YgjpXXMnVzhqmcyFoMOQR6/Yn8OZaJkAFDSCm7iS/w+49KedWy
	9
X-Google-Smtp-Source: AGHT+IFdDykA2K16EGhO51GcO8LpTbKvJzfMxrcS3IW5w9rJqt75gKs00dVtgOkIFZ0PE26JiL/1Zw==
X-Received: by 2002:a05:6512:3087:b0:539:fc45:a292 with SMTP id 2adb3069b0e04-53d9fed1070mr258562e87.43.1731448295394;
        Tue, 12 Nov 2024 13:51: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>
Subject: [PATCH] x86/apic: Include genapic.h in delivery.c
Date: Tue, 12 Nov 2024 21:51:32 +0000
Message-Id: <20241112215132.1482848-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 resolves 4 Misra violations of Rule 8.4 caused by the function
definitions not being able to see their declarations.

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>
---
 xen/arch/x86/genapic/delivery.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/genapic/delivery.c b/xen/arch/x86/genapic/delivery.c
index 7bb7bd658650..15100439be05 100644
--- a/xen/arch/x86/genapic/delivery.c
+++ b/xen/arch/x86/genapic/delivery.c
@@ -3,8 +3,9 @@
 
 #include <asm/apic.h>
 #include <asm/current.h>
-#include <asm/smp.h>
+#include <asm/genapic.h>
 #include <asm/hardirq.h>
+#include <asm/smp.h>
 
 /*
  * LOGICAL FLAT DELIVERY MODE (multicast via bitmask to <= 8 logical APIC IDs).

base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 12 23:46:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Nov 2024 23:46:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.834997.1250820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB0aO-0007dV-5c; Tue, 12 Nov 2024 23:46:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 834997.1250820; Tue, 12 Nov 2024 23:46: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 1tB0aO-0007dO-2Y; Tue, 12 Nov 2024 23:46:16 +0000
Received: by outflank-mailman (input) for mailman id 834997;
 Tue, 12 Nov 2024 23:46: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=qpNK=SH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tB0aM-0007dD-PO
 for xen-devel@lists.xenproject.org; Tue, 12 Nov 2024 23:46:14 +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 4a7756da-a150-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 00:46:09 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4315839a7c9so59690595e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 15:46:09 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432d54f80afsm3303475e9.10.2024.11.12.15.46.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 15:46: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: 4a7756da-a150-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRhNzc1NmRhLWExNTAtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDU1MTY5LjM0MzQzOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731455168; x=1732059968; 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=9vEL4FdqPkq5A8Q5DVD1tTlmAXK1QOAh8DBAZiZx87I=;
        b=JIU2ZhzqFypFR/DhV471MK72VTkd+mUFulY7w4TVEnmYLdBUj1tzFO1eK7DLvkDj4F
         CuvXEfmk5EGcOCMxPPN9LkJ8TVgB/ukO8L1BPU7qSh4x74yH9CwiQYxUHQEqyYlw20A4
         5MDwx6tWvCg2g+mle93rmA2UXRrGCAiGfS/3c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731455168; x=1732059968;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9vEL4FdqPkq5A8Q5DVD1tTlmAXK1QOAh8DBAZiZx87I=;
        b=vsWzfnKMAOFPqdZ4n4TOeH1pQz7ncHPkipXZZ32HJo+9m5nXGQcam2JBUvaTQYHSlG
         pOORFeS4LTNZxKxo6au43dliRfTrbxtZ5I5JTfU8GT2PW6DX0apffegSXLbJDgTFE46/
         NWQCTKShc0UQ9doNFHxwOWp0Biakd7lM/jDyD5Mo8qfIdpSb6XAJUakpL3ddIMnvCkLu
         mgpOHOxtPDtLsjUla90DWLhDLD9TJPreaLX7lsZTxHNJO4oUj80U1ykm/mjTh1x/qG6d
         UEv1kWK5oXK7WB/ggPKCZAnh+p9FUAzcMzirhSijG/m3rtL5e77j1OVfDfH5dWNm+NCT
         VXrg==
X-Forwarded-Encrypted: i=1; AJvYcCUql8Jy2giD2Y9nZf2n58zZ6186g77oHW4Ul2d1U3ygtsnfSMJwSbpWdxjM3Qc7m1uKc5hJbHI/2xg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXs1lp4O3rBtxQ7jt26lMxViy6EEQmVt4HaQz7/Id7mvIyXjcR
	wEztGFxStZRqDauUU44su9lOvFThNvcV3RhfGmVcqyMDwKSR4LxLMwwX6ZGY5Dg=
X-Google-Smtp-Source: AGHT+IEv9tVfP1eFFj5CthtQSJlG3335oizZne61jG44N/Nsi6G8jNQkWTERtLjaQLlOnRUYpJLuUQ==
X-Received: by 2002:a05:600c:510c:b0:426:647b:1bfc with SMTP id 5b1f17b1804b1-432b751cb7cmr161240865e9.30.1731455168629;
        Tue, 12 Nov 2024 15:46:08 -0800 (PST)
Message-ID: <af2715ab-987c-4e90-a3a0-c136f2e8d8d7@citrix.com>
Date: Tue, 12 Nov 2024 23:46:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86emul: correct EFLAGS testing for BMI1/BMI2
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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <04602af0-9a03-4d43-beb3-28b76e2cad33@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <04602af0-9a03-4d43-beb3-28b76e2cad33@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/11/2024 2:59 pm, Jan Beulich wrote:
> Apparently I blindly copied the constants from the BEXTR case, where SF
> indeed wants leaving out. For BLSI, BLSMSK, BLSR, and BZHI SF is
> defined, and hence wants checking. This is noticable in particular for
> BLSR, where with the input we use SF will be set in the result (and
> hence is being switched to be clear on input).
>
> Convert to using named constants we have available, while omitting DF,
> TF, as well as the MBZ bits 3 and 5 from the masking values in the
> checks of the produced output. For BZHI also set SF on input, expecting
> it to transition to clear.
>
> Fixes: 771daacd197a ("x86emul: support BMI1 insns")
> Fixes: 8e20924de13d ("x86emul: support BMI2 insns")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

That's horribly subtle, but I think I've been staring at the manuals
long enough.

However, there's a related bug elsewhere.Â  I recently learnt that the
rotate instructions are different between vendors.Â  AMD leaves CF/OF
well defined, others preserved, while Intel has CF well defined, and
others undefined (seemingly zero in practice, but clearly there's a very
old processor which wasn't).

We test RCL and happen to fall into a common subset between vendors.Â  At
least the emulator itself dispatches to real instructions, so guests
ought to see the behaviour correct for the CPU.

>
> --- a/tools/tests/x86_emulator/test_x86_emulator.c
> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
> @@ -1969,10 +1969,13 @@ int main(int argc, char **argv)
>  
>          *res        = 0xfedcba98;
>          regs.edx    = (unsigned long)res;
> -        regs.eflags = 0xac2;
> +        regs.eflags = EFLAGS_ALWAYS_SET | X86_EFLAGS_OF | X86_EFLAGS_SF | \
> +                      X86_EFLAGS_ZF;
>          rc = x86_emulate(&ctxt, &emulops);
>          if ( (rc != X86EMUL_OKAY) || regs.ecx != 8 || *res != 0xfedcba98 ||
> -             (regs.eflags & 0xf6b) != 0x203 || !check_eip(blsi) )
> +             (regs.eflags & (EFLAGS_MASK & ~(X86_EFLAGS_AF | X86_EFLAGS_PF))) !=
> +              (EFLAGS_ALWAYS_SET | X86_EFLAGS_CF) ||

As an observation, this is really wanting for an EFL_SYM() helper like
the others I have in XTFÂ  (I haven't needed one for flags specifically).

The verbosity definitely interferes with the clarity.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 00:24:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 00:24:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835009.1250829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB1B5-0004jb-2V; Wed, 13 Nov 2024 00:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835009.1250829; Wed, 13 Nov 2024 00: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 1tB1B5-0004jU-00; Wed, 13 Nov 2024 00:24:11 +0000
Received: by outflank-mailman (input) for mailman id 835009;
 Wed, 13 Nov 2024 00:24: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tB1B4-0004jO-1g
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 00:24:10 +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 97670fbe-a155-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 01:24:05 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso496907966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 16:24:06 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4c3f5sm791146566b.76.2024.11.12.16.24.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 16:24: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: 97670fbe-a155-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk3NjcwZmJlLWExNTUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDU3NDQ1Ljg5MDE4Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731457445; x=1732062245; 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=cxC+y9BnGyXQ+go5szruMNp1rUJYsgFLG1wWVkYufHA=;
        b=uIMooQLLneKW48Jc2YdbDlSBZPwHh2shzBS27C81YZVIDTotFR7w7cwYgQnP/5iQrn
         wm60lDmsVZw7kszyuFsbU4nnbyaO4oaiux9FOWYrhV9jYZtrkbNS6N+hBsD0XGIQIMNw
         IOcLgMcTBT7yW9XWgPab+jH0WJ95Yx0OYGtUw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731457445; x=1732062245;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cxC+y9BnGyXQ+go5szruMNp1rUJYsgFLG1wWVkYufHA=;
        b=HI8Z9qgqdOPkE4D6uN91oePllq5FPlOC6aoypcKpCVZiKV6C5A7MrPnQPKTXoBqUZm
         YBsOimaMjmKNH36IctbiDWv++vmLaQ7Pr6uofvPFhnpK9EkzsNNGXfUQXTI8Pdu82rjh
         3Y0PFXKOMTQm/k8IZD2sMGlZb6AnjUfUb74EEIMASIwhmQPA01YX7lbriHUW9iYRXe01
         y0jeBeP/aobvwKiHiXLkSKuavEdDWaN9jhP0pSzmMVz71DdWMBUs++/9eZJac5DqaqMM
         tt/XIgMV5fgdf5oTK/PT6M2/M7m1UEK5tJpttGcBmcyXyiduF1bTKXRTctnZCBiKCAUS
         Fv0w==
X-Forwarded-Encrypted: i=1; AJvYcCV7ja8Vm9hocPdW6R1QctHh4N73tUboAEUKCRP9O9XBHGzWKrpP0cJG+s1na4BtsyLtURDIplZzyFI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqT/eHVmWYxNRWJ53R8U2w3lGY3L6Lg21NxFO1OpEP8y2bAIoY
	6KL1utuvIKofe9p1lBlAkI9PbfsBjonicT8VHm76+wm2+kgiAJ5UNgId6t1GirU=
X-Google-Smtp-Source: AGHT+IHq9M02pMPUmpwppS2FBesR93q9R5RWGQvYu+xDwQr7qV3R6mOPyYgqgDnsSzJYBt5brlcspw==
X-Received: by 2002:a17:907:7216:b0:a9a:1253:4d81 with SMTP id a640c23a62f3a-aa1f8106386mr74040466b.47.1731457445418;
        Tue, 12 Nov 2024 16:24:05 -0800 (PST)
Message-ID: <6442a109-de9a-4b81-a283-2d72bbc3d284@citrix.com>
Date: Wed, 13 Nov 2024 00:24:04 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86emul: ignore VEX.W for BMI{1,2} insns in 32-bit
 mode
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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12/11/2024 3:00 pm, Jan Beulich wrote:
> While result values and other status flags are unaffected as long as we
> can ignore the case of registers having their upper 32 bits non-zero
> outside of 64-bit mode, EFLAGS.SF may obtain a wrong value when we
> mistakenly re-execute the original insn with VEX.W set.
>
> Note that the memory access, if any, is correctly carried out as 32-bit
> regardless of VEX.W.

I don't understand why this is true.

If we write out a VEX.W=1 form of BEXTR/etc and emulate while in 64bit
mode, it will have an operand size of 64.

I can believe that ...

>  Internal state also isn't leaked, as the field the
> memory value is read into (which is then wrongly accessed as a 64-bit
> quantity when executing the stub) is pre-initialized to zero.

... everything else treats the memory operand as 32bit, and uses the
bottom half of the internal buffer, and generally does the right thing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 02:59:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 02:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835022.1250840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB3b2-00049V-AC; Wed, 13 Nov 2024 02:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835022.1250840; Wed, 13 Nov 2024 02:59: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 1tB3b2-00049O-6D; Wed, 13 Nov 2024 02:59:08 +0000
Received: by outflank-mailman (input) for mailman id 835022;
 Wed, 13 Nov 2024 02:59: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=4ZXe=SI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tB3b0-00049I-Sj
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 02:59:06 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c7397d5-a16b-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 03:59:03 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id EB4035C5A9D;
 Wed, 13 Nov 2024 02:58:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37B16C4CED4;
 Wed, 13 Nov 2024 02:59:00 +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: 3c7397d5-a16b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNjNzM5N2Q1LWExNmItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDY2NzQzLjIzNDMxOSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731466741;
	bh=a+FPuQHxz4c4cKLt+ho1fHHy42wtwgSopYNNfni4ORQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=eYpJufNVVeiOjZDEVAqGxQH5LWuOWP/RDhHMN71qiqp/1ULZCVgdDYuVSSK7N3S9n
	 cELPRkwZ7wiZLP+NZpyUCVafu8jSSH5T+53hQGofoFqcBIxGI0PAYpjkghxhFRUmii
	 42qW31UECXx4IzUZlHrw1NwhlLC69Z4dZHrjWIbzuIX4FxzLqThBzZLpx+pwz/g1XZ
	 tG4q0TSLa5wu5KXexgksqLNFVQYLc5l8ljA0rLdKjvIiz4RUfgKW70+QCTJZzR6FoJ
	 QYQPHESGUR1/d7c36BjzcRQML1zAMxo5Oo/0d3ZcQyI+FXCiFcV/MWNREfgY3RR0+o
	 u2snm+bBZqw4g==
Date: Tue, 12 Nov 2024 18:58:56 -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>
Subject: Re: [PATCH] x86/apic: Include genapic.h in delivery.c
In-Reply-To: <20241112215132.1482848-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411121858360.222505@ubuntu-linux-20-04-desktop>
References: <20241112215132.1482848-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-3431377-1731466741=:222505"

  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-3431377-1731466741=:222505
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 11 Nov 2024, Andrew Cooper wrote:
> This resolves 4 Misra violations of Rule 8.4 caused by the function
> definitions not being able to see their declarations.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> 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>
> ---
>  xen/arch/x86/genapic/delivery.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/genapic/delivery.c b/xen/arch/x86/genapic/delivery.c
> index 7bb7bd658650..15100439be05 100644
> --- a/xen/arch/x86/genapic/delivery.c
> +++ b/xen/arch/x86/genapic/delivery.c
> @@ -3,8 +3,9 @@
>  
>  #include <asm/apic.h>
>  #include <asm/current.h>
> -#include <asm/smp.h>
> +#include <asm/genapic.h>
>  #include <asm/hardirq.h>
> +#include <asm/smp.h>
>  
>  /*
>   * LOGICAL FLAT DELIVERY MODE (multicast via bitmask to <= 8 logical APIC IDs).
> 
> base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca
> -- 
> 2.39.5
> 
--8323329-3431377-1731466741=:222505--


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 03:00:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 03:00:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835029.1250850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB3bs-0004ct-Ik; Wed, 13 Nov 2024 03:00:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835029.1250850; Wed, 13 Nov 2024 03: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 1tB3bs-0004cm-Es; Wed, 13 Nov 2024 03:00:00 +0000
Received: by outflank-mailman (input) for mailman id 835029;
 Wed, 13 Nov 2024 03:00: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=4ZXe=SI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tB3bs-0004XF-0Y
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 03:00:00 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5cb3bb11-a16b-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 03:59:56 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 3D8F9A41D4C;
 Wed, 13 Nov 2024 02:58:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A519C4CED6;
 Wed, 13 Nov 2024 02:59: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: 5cb3bb11-a16b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjVjYjNiYjExLWExNmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDY2Nzk2LjgzMDg1NSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731466795;
	bh=Vcotr9kZdaFf2oJR6OM8t1tUgvtOPVAdDEw0Ijrao9k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pMNM9e0d7goliKWJC9HJvbjwBaBSSWpYJnkC/tvTPaXeIgJuSVSsZFzhbztkNVN86
	 HuTtzinCiaZhLcmXlMB/RaqXFcC2z6TW7T5cytyj0RylEl5L6YJDvBdEm6G9NHPcUP
	 NZSJcpFeHx8nZShGFAVCzV1f856zbZ00cYQo5pb4+CFVEhlPtcZ5YZm/FK0NAa89aG
	 Ew3gj6/11Ao3nVT3El/Mt9+dpADdpF1ANeAw2f/gqHgbXc0WUWq9nyvwk50adJYC7Z
	 wqAlFvSksIehShTEroRtGI6RvXKo40kKGTjKocgivYQc6r1Y18w/96DQ8vm6uurBfK
	 8T5X8puT381QA==
Date: Tue, 12 Nov 2024 18:59:52 -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>, 
    Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH] x86/e820: Fix parameter names of
 reserve_e820_ram()/e820_change_range_type()
In-Reply-To: <20241112213327.1474541-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411121859460.222505@ubuntu-linux-20-04-desktop>
References: <20241112213327.1474541-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-1095287594-1731466795=:222505"

  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-1095287594-1731466795=:222505
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 12 Nov 2024, Andrew Cooper wrote:
> The work to address Rule 5.3 introduced violations of Rule 8.3 by failing to
> rename the parameters in the declaration.
> 
> Fixes: b5fd405aa381 ("x86/e820 address violations of MISRA C:2012 Rule 5.3")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> ---
>  xen/arch/x86/include/asm/e820.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/e820.h b/xen/arch/x86/include/asm/e820.h
> index af90085d65d1..8e7644f8870b 100644
> --- a/xen/arch/x86/include/asm/e820.h
> +++ b/xen/arch/x86/include/asm/e820.h
> @@ -25,9 +25,9 @@ struct e820map {
>  
>  extern int sanitize_e820_map(struct e820entry *biosmap, unsigned int *pnr_map);
>  extern int e820_all_mapped(u64 start, u64 end, unsigned type);
> -extern int reserve_e820_ram(struct e820map *e820, uint64_t s, uint64_t e);
> +extern int reserve_e820_ram(struct e820map *map, uint64_t s, uint64_t e);
>  extern int e820_change_range_type(
> -    struct e820map *e820, uint64_t s, uint64_t e,
> +    struct e820map *map, uint64_t s, uint64_t e,
>      uint32_t orig_type, uint32_t new_type);
>  extern int e820_add_range(uint64_t s, uint64_t e, uint32_t type);
>  extern unsigned long init_e820(const char *str, struct e820map *raw);
> 
> base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca
> -- 
> 2.39.5
> 
--8323329-1095287594-1731466795=:222505--


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 03:07:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 03:07:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835038.1250860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB3ik-0006Md-71; Wed, 13 Nov 2024 03:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835038.1250860; Wed, 13 Nov 2024 03:07: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 1tB3ik-0006MW-4J; Wed, 13 Nov 2024 03:07:06 +0000
Received: by outflank-mailman (input) for mailman id 835038;
 Wed, 13 Nov 2024 03:07: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=4ZXe=SI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tB3ij-0006MQ-Fy
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 03:07:05 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a165569-a16c-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 04:07:01 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 94629A42649;
 Wed, 13 Nov 2024 03:05:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A056C4CECD;
 Wed, 13 Nov 2024 03:06:59 +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: 5a165569-a16c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NWQxOmVjMDA6OjMiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjVhMTY1NTY5LWExNmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDY3MjIyLjA3NTM4NCwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731467220;
	bh=dNoCWoA0tHuqgAc9AxELrFWRvptNmrWxyQdAkzjNrTk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JEzrssWleDe2YYBoHGS+SZPTtmDDU2hqkfFvaUBtqEIGr43dO+4j7qMZQdByLMyp6
	 ZmrRXgp/6XthVStyUpwtQpfyrfoquJ9hY2tIRcKA6NzCp9Sspejp+WPrFVLgVOiEy9
	 8J1/l8YSuN+aYWwr7HiyHXHRE9UOcKVjCriEDf12Fz5NhHAkSwgmmJC5xCxUXMF/rv
	 QdIG2HGTF9w21zJyz+VuYEnRIv6S+h1obthfVoIgnl/LGVTWS4hCWqu8uKByQHd2c8
	 3mWlpNohxA2RjcjE5q/W9pghd5OwKdpnX5XGVAWcALANOJWq3OV+PbeUNn1r2+y8Rr
	 9OG34nKc4ZZdQ==
Date: Tue, 12 Nov 2024 19:06:58 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Kelly Choi <kelly.choi@cloud.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [ARM] Re: preparations for 4.19.1
In-Reply-To: <718c2a9c-15b0-4f21-941a-5094c06787c7@xen.org>
Message-ID: <alpine.DEB.2.22.394.2411121906520.222505@ubuntu-linux-20-04-desktop>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com> <4aa24b39-5734-4b0a-8969-dc3eb4942975@amd.com> <718c2a9c-15b0-4f21-941a-5094c06787c7@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 12 Nov 2024, Julien Grall wrote:
> Hi,
> 
> On 12/11/2024 16:00, Stewart Hildebrand wrote:
> > On 11/12/24 08:00, Jan Beulich wrote:
> > > All,
> > > 
> > > the release is due by the end of the month. Please point out backports you
> > > find
> > > missing from the respective staging branch, but which you consider
> > > relevant.
> > > 
> > > Advance notice: 4.18.4 ought to follow about two weeks later.
> > > 
> > > Jan
> > > 
> > 
> > Looking for Julien's input on this one:
> > 
> > 35c64c3dce01 ("xen/arm64: entry: Actually skip do_trap_*() when an SError is
> > triggered")
> > 
> > As mentioned in the post-commit notes [0] it's a candidate for backport.
> 
> In the past, Stefano handled backports for Arm. I am not sure if this is still
> case. Stefano?

Done


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 03:15:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 03:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835045.1250874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB3r0-00087V-2E; Wed, 13 Nov 2024 03:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835045.1250874; Wed, 13 Nov 2024 03: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 1tB3qz-00087O-Uj; Wed, 13 Nov 2024 03:15:37 +0000
Received: by outflank-mailman (input) for mailman id 835045;
 Wed, 13 Nov 2024 03:15: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=4ZXe=SI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tB3qy-00087I-9X
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 03:15:36 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a1e7df2-a16d-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 04:15:32 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4845E5C5ABE;
 Wed, 13 Nov 2024 03:14:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06BCBC4CECD;
 Wed, 13 Nov 2024 03:15:28 +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: 8a1e7df2-a16d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjhhMWU3ZGYyLWExNmQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDY3NzMyLjUxODY1OSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731467730;
	bh=sePCaGzEb4L9S+L6uMDS8P0WotGTwl9tc0aTKLM94J4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JKAXLjOGGykMY8bcBHYeXTz2ZkCFNBZrgyHnXe7iBM1SpJIObIW7p1EU6yy1j9J7k
	 cgVXt2HY1Sgbx+gKQ5RFEaTW6x7I9cPG1VTTbLelNY7ViLubg5gSmaIYoa9Tz7C9uI
	 zqQU9aUQiugv5SHeshflCBsxtQW3i7LHVPgpa8HAu7ceJboUnveo4TQjntdvfa86DR
	 9dBkIzcQsL62D5iuFzhJEOGUFiYEcbiTFyC9CgWtpeBWHuWHcMSHBLJT/7NRiehhKr
	 rf04m7aUQJ7PWivDuqP/Cmm8dsHfVchACDniUQDpY5SQ8EqY1D1237Eje3KDNuaK7l
	 VFnD+Upj+kyuQ==
Date: Tue, 12 Nov 2024 19:15:27 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    George Dunlap <George.Dunlap@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Roberto Bagnara <roberto.bagnara@bugseng.com>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] xen/multicall: Change nr_calls to uniformly be
 unsigned long
In-Reply-To: <660fc551-c6bc-456f-8e9e-80b3e592fece@suse.com>
Message-ID: <alpine.DEB.2.22.394.2411121912400.222505@ubuntu-linux-20-04-desktop>
References: <20240621205800.329230-1-andrew.cooper3@citrix.com> <20240621205800.329230-3-andrew.cooper3@citrix.com> <660fc551-c6bc-456f-8e9e-80b3e592fece@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Hi Jan,

It is challenging to create a solution that satisfies everyone for this
patch. However, we should add R8.3 to the clean list as soon as possible
to enable rule blocking in GitLab-CI. Failing to do so risks introducing
regressions, as recently occurred, undoing the significant efforts made
by Bugseng and the community over the past year.

Unless there is a specific counterproposal, let us proceed with
committing this patch.

Cheers,
Stefano

On Mon, 24 Jun 2024, Jan Beulich wrote:
> On 21.06.2024 22:58, Andrew Cooper wrote:
> > Right now, the non-compat declaration and definition of do_multicall()
> > differing types for the nr_calls parameter.
> > 
> > This is a MISRA rule 8.3 violation, but it's also time-bomb waiting for the
> > first 128bit architecture (RISC-V looks as if it might get there first).
> > 
> > Worse, the type chosen here has a side effect of truncating the guest
> > parameter, because Xen still doesn't have a clean hypercall ABI definition.
> > 
> > Switch uniformly to using unsigned long.
> 
> And re-raising all the same question again: Why not uniformly unsigned int?
> Or uint32_t?
> 
> > This addresses the MISRA violation, and while it is a guest-visible ABI
> > change, it's only in the corner case where the guest kernel passed a
> > bogus-but-correct-when-truncated value.  I can't find any any users of
> > mutilcall which pass a bad size to begin with, so this should have no
> > practical effect on guests.
> > 
> > In fact, this brings the behaviour of multicalls more in line with the header
> > description of how it behaves.
> 
> Which description? If you mean ...
> 
> > --- a/xen/include/public/xen.h
> > +++ b/xen/include/public/xen.h
> > @@ -623,7 +623,7 @@ DEFINE_XEN_GUEST_HANDLE(mmu_update_t);
> >  /*
> >   * ` enum neg_errnoval
> >   * ` HYPERVISOR_multicall(multicall_entry_t call_list[],
> > - * `                      uint32_t nr_calls);
> > + * `                      unsigned long nr_calls);
> >   *
> >   * NB. The fields are logically the natural register size for this
> >   * architecture. In cases where xen_ulong_t is larger than this then
> 
> ... this comment here, note how is says "fields", i.e. talks about the
> subsequent struct.
> 
> What you're doing is effectively an ABI change: All of the sudden the
> upper bits of the incoming argument would be respected. Yes, it is
> overwhelmingly likely that no-one would ever pass such a value. Yet
> iirc on other similar hypercall handler adjustments in the past you
> did raise a similar concern.
> 
> Jan
> 


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 07:51:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 07:51:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835058.1250888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB89R-0005jv-VO; Wed, 13 Nov 2024 07:50:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835058.1250888; Wed, 13 Nov 2024 07:50: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 1tB89R-0005jo-Sn; Wed, 13 Nov 2024 07:50:57 +0000
Received: by outflank-mailman (input) for mailman id 835058;
 Wed, 13 Nov 2024 07:50: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tB89Q-0005ji-J8
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 07:50:56 +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 0129767d-a194-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 08:50:52 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3807dd08cfcso6166864f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Nov 2024 23:50: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-381eda0604bsm17320786f8f.105.2024.11.12.23.50.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Nov 2024 23:50: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: 0129767d-a194-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAxMjk3NjdkLWExOTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDg0MjUyLjA4NjQ5NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731484251; x=1732089051; 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=UIbP/9MobanleR79icVKxOm8vUi6azNRSBcH1shk9Z8=;
        b=OUXRT481DOEi2SedMGFwfqq8WlurLMc9PyXp6JBNMzsIAVn8mBHJP/EgRk9Uo9DMQH
         Su80j+sG6o/kGSbGNRDsleaH43Nzj1RrNvULbLVZRuUg69Jx/RY35HZdOFonZjobkjwR
         tGnKGSr9rwHYVhKTCKqDPdSt+XCB+8fOOak1ZgAvfNvQCQavlQjuunXRKVj1twH9yCfa
         NKRAsw0q86eGwUj4W+YtM2ZRrDmmz63Q4Dz4a0AOAqekg/Oul6uiBytx5x+S2G62ez5T
         rzVtBuVzFXf96TqNBezKbZgAHs9F11HtzrK6yJrvm0iuRRK9QrWSYDUiAoQdfSbJvovK
         ruug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731484251; x=1732089051;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UIbP/9MobanleR79icVKxOm8vUi6azNRSBcH1shk9Z8=;
        b=C/zpCOxDFq3jDIVXZ20rXrUb0Nxr0NXqS1SIn6CvIPjvRQI/zOGFjXq/zPRf3q46Vb
         IY/rw1wBF77lV9Cf0u+FtYHQiisX0+Z8PQPwSGzDPkOdgIg79pIKJ+GQqj83ZI2TP52y
         BmGIF6/fr7eTe3QbXMJEjc/QsMfeYT0LM7LyHbNQH26tn6WX3JnNi0qjzsU2tc3+nL2l
         CgYdGXOScjEc/OvaG5zzXNBQ4WhEXFqKciIldeZ5su7fEeF9yIZgAX228Vfk2DuUjeT7
         6Ju0fVoJLm63pnA3HZv4VYd1u44qQnem7ZpIOTziq9ax5j1C2PPLJH/pr+2VQ06/LLAP
         Mxrg==
X-Forwarded-Encrypted: i=1; AJvYcCVXRcxMuJUUNx0InBIdAn4w0q74WWmhr8s0dEhezqoxvNZucOHvlBGSezG3ToxnyWETPrsscUJsT1U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVPfgkbyfM+anD8owYb/mCEKdOW04ecrUZSSLKnthi4c3cvKWA
	I99AfoF3qA+wJKQRmpFQgrceH36eX5N6MVfXtZwGvZxxS2YVrKLYamlrXD2S1g==
X-Google-Smtp-Source: AGHT+IGHDamkgx0DHas7RrjCGr098w5J0A7DKEfkyXe1hT0qjVitIKPaZQGzDadBHRTbvPujlrNQbg==
X-Received: by 2002:a05:6000:2a1:b0:374:c658:706e with SMTP id ffacd0b85a97d-381f1884860mr21215146f8f.39.1731484251416;
        Tue, 12 Nov 2024 23:50:51 -0800 (PST)
Message-ID: <3b80f30e-9fb4-4db7-9f11-e0e01d516eef@suse.com>
Date: Wed, 13 Nov 2024 08:50:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86emul: correct EFLAGS testing for BMI1/BMI2
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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <04602af0-9a03-4d43-beb3-28b76e2cad33@suse.com>
 <af2715ab-987c-4e90-a3a0-c136f2e8d8d7@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: <af2715ab-987c-4e90-a3a0-c136f2e8d8d7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 00:46, Andrew Cooper wrote:
> On 12/11/2024 2:59 pm, Jan Beulich wrote:
>> Apparently I blindly copied the constants from the BEXTR case, where SF
>> indeed wants leaving out. For BLSI, BLSMSK, BLSR, and BZHI SF is
>> defined, and hence wants checking. This is noticable in particular for
>> BLSR, where with the input we use SF will be set in the result (and
>> hence is being switched to be clear on input).
>>
>> Convert to using named constants we have available, while omitting DF,
>> TF, as well as the MBZ bits 3 and 5 from the masking values in the
>> checks of the produced output. For BZHI also set SF on input, expecting
>> it to transition to clear.
>>
>> Fixes: 771daacd197a ("x86emul: support BMI1 insns")
>> Fixes: 8e20924de13d ("x86emul: support BMI2 insns")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

> However, there's a related bug elsewhere.Â  I recently learnt that the
> rotate instructions are different between vendors.Â  AMD leaves CF/OF
> well defined, others preserved, while Intel has CF well defined, and
> others undefined (seemingly zero in practice, but clearly there's a very
> old processor which wasn't).

Quoting from the PM's RCL page:

"For 1-bit rotates, the instruction sets the OF flag to the logical xor
 of the CF bit (after the rotate) and the most significant bit of the
 result. When the rotate count is greater than 1, the OF flag is undefined.
 When the rotate count is 0, no flags are affected."

That's the same as Intel behavior. If we were to test anything beyond what
the SDM says, we'd at least need a reference to where that behavior is
specified / described.

Further, considering ...

> We test RCL and happen to fall into a common subset between vendors.Â  At
> least the emulator itself dispatches to real instructions, so guests
> ought to see the behaviour correct for the CPU.

... this behavior, I'm not even sure I see where there would be a bug. We
could in principle tighten the test for the AMD case, or we could add a
comment. Yet neither would really look like a bugfix to me.

>> --- a/tools/tests/x86_emulator/test_x86_emulator.c
>> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
>> @@ -1969,10 +1969,13 @@ int main(int argc, char **argv)
>>  
>>          *res        = 0xfedcba98;
>>          regs.edx    = (unsigned long)res;
>> -        regs.eflags = 0xac2;
>> +        regs.eflags = EFLAGS_ALWAYS_SET | X86_EFLAGS_OF | X86_EFLAGS_SF | \
>> +                      X86_EFLAGS_ZF;
>>          rc = x86_emulate(&ctxt, &emulops);
>>          if ( (rc != X86EMUL_OKAY) || regs.ecx != 8 || *res != 0xfedcba98 ||
>> -             (regs.eflags & 0xf6b) != 0x203 || !check_eip(blsi) )
>> +             (regs.eflags & (EFLAGS_MASK & ~(X86_EFLAGS_AF | X86_EFLAGS_PF))) !=
>> +              (EFLAGS_ALWAYS_SET | X86_EFLAGS_CF) ||
> 
> As an observation, this is really wanting for an EFL_SYM() helper like
> the others I have in XTFÂ  (I haven't needed one for flags specifically).
> 
> The verbosity definitely interferes with the clarity.

Hmm, yes - added to the TODO list.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:01:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:01:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835072.1250897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8J7-00081p-3M; Wed, 13 Nov 2024 08:00:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835072.1250897; Wed, 13 Nov 2024 08:00: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 1tB8J7-00081i-0q; Wed, 13 Nov 2024 08:00:57 +0000
Received: by outflank-mailman (input) for mailman id 835072;
 Wed, 13 Nov 2024 08:00: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=OMWt=SI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tB8J5-00081c-4C
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:00:55 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20612.outbound.protection.outlook.com
 [2a01:111:f403:200a::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65862662-a195-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 09:00:51 +0100 (CET)
Received: from DS7P222CA0022.NAMP222.PROD.OUTLOOK.COM (2603:10b6:8:2e::25) by
 CH2PR12MB4150.namprd12.prod.outlook.com (2603:10b6:610:a6::24) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8158.17; Wed, 13 Nov 2024 08:00:46 +0000
Received: from DS1PEPF00017094.namprd03.prod.outlook.com
 (2603:10b6:8:2e:cafe::fc) by DS7P222CA0022.outlook.office365.com
 (2603:10b6:8:2e::25) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Wed, 13 Nov 2024 08:00:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF00017094.mail.protection.outlook.com (10.167.17.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Wed, 13 Nov 2024 08:00:45 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) 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, 13 Nov
 2024 02:00: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: 65862662-a195-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjEyIiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjY1ODYyNjYyLWExOTUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDg0ODUxLjQ2MzUwNCwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZYjRW8xBwtd/YnJJVyE2fdAI/VbRq7mwulujevDzsutOEBQqxp8uRZlOpNkpW+pCbUYvqcyrx3RwoiQyFPF55sgUWkaCHhIAc6gLi3yAk0XluqkUnJERuww9v03/Kf3POzLcHo9HwZD7eRxnhAwTPFK17l1ti2lA9di7z10QmHTx3Sg8awErwVAGgxMGhVHD8+3VFs2eLZET2Et3GnUYyygb4zqOgssKAynmsJkXn2SDQwus05d17xosQVIsOgcF5AZ1lFzEH9mIN8XhWzkYP20isYu8GY82/AVAWbLzRnFs/seiGm4ET0Mig8zk2ffH6NdZ0B4gQJIzMJZ96PB55Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HgwJac2tMLssnJK13pRahOyl1hepDj7lLpIUFWcLIco=;
 b=lkGKRWobTKpgMgb4/LgZAdWiPj31xVcD7Ka2iRadPlOr+GGHK0/TzCBY5PSuCC/bYHQJYVS0sVWnegPis8ZziNxMADzpEBFvZNweRVxAB55zdeXyoLNd491Bs+dXGgsZh7SmGnZhG2O3fbv0IsBiJG+xRWLZ+j0hyi00Wk4VKa1bSyoeUcYzHT34fXNO0ej+OpnNSStzyqVpYV0wpPVp50aUOgo5AF3VJr5kRpNEtPqS5GprvYr6zTf+bdOuMMaeoUr8pXrQoCP5jzVmJjWnKLaQMoFLA12k9ptw4Vur4MqsUWKwFgX96+oINVZPfOoRB3L9deW7rbMq1flDztmZpw==
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=HgwJac2tMLssnJK13pRahOyl1hepDj7lLpIUFWcLIco=;
 b=GHp+eoo/mnxzn3poZgGSt6EQIl00R94RIIiHwDjqgjchsUZj5dXPUYA98PzJVijgqoE6Io7HZHA0xIfh6GzLoaXydrlrUw5+4Wq1oTzpV0XkvjK89LYA6RKYhOc19TnF7Zu7SgZiDYhyrajwSx88yc2niYyO3UAyXcmvxVF6+Js=
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=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jiqian Chen
	<Jiqian.Chen@amd.com>
Subject: [PATCH] vpci: Add resizable bar support
Date: Wed, 13 Nov 2024 16:00:27 +0800
Message-ID: <20241113080027.244240-1-Jiqian.Chen@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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017094:EE_|CH2PR12MB4150:EE_
X-MS-Office365-Filtering-Correlation-Id: 25aa07aa-50a0-43f1-d29a-08dd03b94746
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?TW61qwBAvglZ+e+UXbj12XVDjh117I7rzlwH70jW0fh/2/ptst0/5LsPlDGa?=
 =?us-ascii?Q?KvY4jRbqfHkVKD6zIXtVjUIJBIcDfvVVBWPumEyTBqwI5vge+cmNdoCVKm+t?=
 =?us-ascii?Q?b/0e70RZPHn3ZxZOut4u9Dd7gw6RDnUf6UNG0KBBVk9b+dnc1upNnq7KWFH0?=
 =?us-ascii?Q?vfiM6FF3FrwaOhTCjAzjxEmI2H2TkwkD3JwUNl0dChew3f4gZhfQgm7VuInV?=
 =?us-ascii?Q?6GiN7xb2LwDZWPNWYAFvBkSMiphdY7ymH0LX07ML807kVUa1QfZaGjYi0WFF?=
 =?us-ascii?Q?i52aLGplohqs1Ikcf/Rt0dYaZ2ZG02nUJWj7LqtqhgEkCHovVNOUkGXetS/N?=
 =?us-ascii?Q?KU51iqEGZ6Oyul/P+bx/Bh2DyBTzUtiHS8tmo/6P24dW0yzo1h5+tkK7fR5T?=
 =?us-ascii?Q?lwjHxtZH0vxWLAh39348b3hkuSmdZwLgqTrDkcvMR9B/HBprQK+i601xRE2d?=
 =?us-ascii?Q?mMQ6pnBjDDWZ9XvViiMIBimd282/vg+n96cMvL9fWO77UTIHkMriQnA4PFso?=
 =?us-ascii?Q?jPbrntLTSrv1qJBjh1rfLYtG3vOEp56VKwXC+SUq7MPxSEELAy+ynxjOn9Oh?=
 =?us-ascii?Q?hVLVZhTsZlIVp+tT0rUG8IYRWR2iGHs4XaStnpPx5buGOuOOKU+t/U4AIPkR?=
 =?us-ascii?Q?pPyrIGktNiLE+MafDWb5WRFggJPojBxU+JyWzf/r18NxDZv7cuxJghvr+aTM?=
 =?us-ascii?Q?sLm1asp5Gz3L/tHxY/9J78Z88myvzW8xkoSTlSa2OAq51/kWEWIVP8HwQhhy?=
 =?us-ascii?Q?SQYmmspCgcveSEm+nTG4XcgXMML9o0FXHwKaoDqZWdAEwZF3zHrzxxS++kqJ?=
 =?us-ascii?Q?h3CUsmRKs341lmQ/tW+Yjxa6waxDOt4XfmBANExAIhsAp3TAST9bJQ+/yZgx?=
 =?us-ascii?Q?LCmMv9Eq68tfHYyyuhrwgHfISl2bG2LX9usfg0qa+v3QlAR/oCmFcjQT+ReV?=
 =?us-ascii?Q?hPImZnOqZQ2vX9eIDrFe7V/raco7agw+wmnVNicmX+/r5EbVPAaJJng9IP/r?=
 =?us-ascii?Q?Xo8cTrYE4jwpcBqTN+7FCJgCrx9QrqJM9DrgWsdBKFsOt1KHHYknwrXpDNjD?=
 =?us-ascii?Q?aSZ8XUCGVDOSxaMcZ9KzUIP0wy/rA70+ScpgrwXbTBeaHeC8wfKqv89e4ctS?=
 =?us-ascii?Q?HQIu+CI24QorFhoKqlsEx3vr+PctYOkICJHsoYEaJR90y5hFxLTDQVBBuYn9?=
 =?us-ascii?Q?PqPIR77qbpYLSFrO+/bZRanN0jxyFel/4hC5Ax+3qo/VJtAKeg+ge1dXZFyg?=
 =?us-ascii?Q?T4cjYriJ6dB+QefBL8rPRQM3yF2M8f03Z4s0bCi7WVeZRgRVvNxqRJr2b1Nr?=
 =?us-ascii?Q?C1Io0xH51fhnXBk3qjNYaw53Zc7gwuBoIIwhF5ozmXEUY6CSSL4x2jcet8zT?=
 =?us-ascii?Q?99LqquaWcH1A1dkA4BjJXx3Bi+KOBm5F/+nOgl3Rwq23daAhjg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 13 Nov 2024 08:00:45.3635
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 25aa07aa-50a0-43f1-d29a-08dd03b94746
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017094.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4150

Some devices, like discrete GPU of amd, support resizable bar capability,
but vpci of Xen doesn't support this feature, so they fail to resize bars
and then cause probing failure.

According to PCIe spec, each bar that support resizing has two registers,
PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
corresponding handler into vpci.

PCI_REBAR_CAP is RO, only provide reading.

PCI_REBAR_CTRL only has bar size is RW, so add write function to support
setting the new size.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
 xen/drivers/vpci/Makefile  |  2 +-
 xen/drivers/vpci/rebar.c   | 89 ++++++++++++++++++++++++++++++++++++++
 xen/include/xen/pci_regs.h | 11 +++++
 3 files changed, 101 insertions(+), 1 deletion(-)
 create mode 100644 xen/drivers/vpci/rebar.c

diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile
index 1a1413b93e76..a7c8a30a8956 100644
--- a/xen/drivers/vpci/Makefile
+++ b/xen/drivers/vpci/Makefile
@@ -1,2 +1,2 @@
-obj-y += vpci.o header.o
+obj-y += vpci.o header.o rebar.o
 obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
new file mode 100644
index 000000000000..84dbd84b0745
--- /dev/null
+++ b/xen/drivers/vpci/rebar.c
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2024 Advanced Micro Devices, Inc. All Rights Reserved.
+ *
+ * Author: Jiqian Chen <Jiqian.Chen@amd.com>
+ */
+
+#include <xen/hypercall.h>
+#include <xen/vpci.h>
+
+/*
+ * The number value of the BAR Size in PCI_REBAR_CTRL register reprent:
+ * 0    1 MB (2^20 bytes)
+ * 1    2 MB (2^21 bytes)
+ * 2    4 MB (2^22 bytes)
+ *  ...
+ * 43   8 EB (2^63 bytes)
+ */
+#define PCI_REBAR_CTRL_BAR_UNIT (1ULL << 20)
+
+static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
+                                      unsigned int reg,
+                                      uint32_t val,
+                                      void *data)
+{
+    uint32_t ctrl, index;
+    struct vpci_bar *bars = pdev->vpci->header.bars;
+
+    ctrl = pci_conf_read32(pdev->sbdf, reg);
+    if ( ctrl == val )
+        return;
+
+    ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
+    if ( ctrl != ( val & ~PCI_REBAR_CTRL_BAR_SIZE ) )
+        return;
+
+    index = ctrl & PCI_REBAR_CTRL_BAR_IDX;
+    bars[index].size = (1 << ((val & PCI_REBAR_CTRL_BAR_SIZE) >>
+                              PCI_REBAR_CTRL_BAR_SHIFT)) *
+                       PCI_REBAR_CTRL_BAR_UNIT;
+
+    pci_conf_write32(pdev->sbdf, reg, val);
+}
+
+static int cf_check init_rebar(struct pci_dev *pdev)
+{
+    unsigned int rebar_offset;
+    uint32_t ctrl, nbars;
+    int rc = 0;
+
+    rebar_offset = pci_find_ext_capability(pdev->sbdf, PCI_EXT_CAP_ID_REBAR);
+
+    if ( !rebar_offset )
+        return rc;
+
+    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL);
+    nbars = (ctrl & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;
+
+    for ( int i = 0; i < nbars; i++, rebar_offset += 8 ) {
+        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, NULL,
+                               rebar_offset + PCI_REBAR_CAP, 4, NULL);
+        if ( rc ) {
+            printk("%s: %pp: add register for PCI_REBAR_CAP failed (rc=%d)\n",
+                   __func__, &pdev->sbdf, rc);
+            break;
+        }
+
+        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rebar_ctrl_write,
+                               rebar_offset + PCI_REBAR_CTRL, 4, NULL);
+        if ( rc ) {
+            printk("%s: %pp: add register for PCI_REBAR_CTRL failed (rc=%d)\n",
+                   __func__, &pdev->sbdf, rc);
+            break;
+        }
+    }
+
+    return rc;
+}
+REGISTER_VPCI_INIT(init_rebar, VPCI_PRIORITY_LOW);
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 250ba106dbd3..5d2aa130916e 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -459,6 +459,7 @@
 #define PCI_EXT_CAP_ID_ARI	14
 #define PCI_EXT_CAP_ID_ATS	15
 #define PCI_EXT_CAP_ID_SRIOV	16
+#define PCI_EXT_CAP_ID_REBAR	21	/* Resizable BAR */
 
 /* Advanced Error Reporting */
 #define PCI_ERR_UNCOR_STATUS	4	/* Uncorrectable Error Status */
@@ -541,6 +542,16 @@
 #define  PCI_VNDR_HEADER_REV(x)	(((x) >> 16) & 0xf)
 #define  PCI_VNDR_HEADER_LEN(x)	(((x) >> 20) & 0xfff)
 
+/* Resizable BARs */
+#define PCI_REBAR_CAP		4	/* capability register */
+#define  PCI_REBAR_CAP_SIZES		0x00FFFFF0  /* supported BAR sizes */
+#define PCI_REBAR_CTRL		8	/* control register */
+#define  PCI_REBAR_CTRL_BAR_IDX		0x00000007  /* BAR index */
+#define  PCI_REBAR_CTRL_NBAR_MASK	0x000000E0  /* # of resizable BARs */
+#define  PCI_REBAR_CTRL_NBAR_SHIFT	5	    /* shift for # of BARs */
+#define  PCI_REBAR_CTRL_BAR_SIZE	0x00001F00  /* BAR size */
+#define  PCI_REBAR_CTRL_BAR_SHIFT	8	    /* shift for BAR size */
+
 /*
  * Hypertransport sub capability types
  *
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:01:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:01:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835079.1250908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8K6-00005R-Co; Wed, 13 Nov 2024 08:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835079.1250908; Wed, 13 Nov 2024 08:01: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 1tB8K6-00005K-9y; Wed, 13 Nov 2024 08:01:58 +0000
Received: by outflank-mailman (input) for mailman id 835079;
 Wed, 13 Nov 2024 08:01: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tB8K4-00004w-Iv
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:01:56 +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 8b239d10-a195-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 09:01:53 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43193678216so62862235e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 00:01: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-381ed9973e8sm17735874f8f.48.2024.11.13.00.01.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 00:01: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: 8b239d10-a195-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhiMjM5ZDEwLWExOTUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDg0OTEzLjAyNjQ5NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731484912; x=1732089712; 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=rNGnoSaBajSY/448NxC4SQnS4VAkrt0UA59g8cZ4TE0=;
        b=gO0CUhtUTAyL+DUStEAU1PxseBWMinSPm+0h92j89r0zs1TDdowoLIK4X+yCCq86MS
         HiAoekY5YQ24Ir97rItyS+owWBlDfMImLTYw5LVl3VAuN2qgE+yy1taXT82HscT2wAo8
         D+va8w9Elr533EMzdHo+D/yNFKEPZ1OyjjoOa68cwSrVbUZyw/kyd62JJv9xNcQGNeWz
         uv+uGS8kQuuNzKaqBr6wGXV3io7nGxpfUnnOlkiz0sRTDJKwi2HqRJXtFlSg39cUdVTe
         G4UvfOsj1QgaUWb8YAM/RFWqNlWK/tQ/52funush7cF+doBf/9F7imrBaJqe+du/nBtP
         TkJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731484912; x=1732089712;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rNGnoSaBajSY/448NxC4SQnS4VAkrt0UA59g8cZ4TE0=;
        b=PRstXQrrVy6g1lHLF6pHlROo3VgIt6hcYL7GhljTnU1tVoP031SrIq+f145P5TrajM
         2iUl+3moF4ELgnbXAk6qTqBxtUqca1s8sYYi030tgLCC0MXooimSwFUOGKjk9G5NdkKK
         BOGfzxinPnNm2tT9IUb0mraVntstes6Gz9cqKeZe77RbjssKwO9nZjfEYhraP4Zj98fi
         1hPlrH2VIJbULpic4guaN6Cf7dPhmWbR9+zskUVTyFxVWPXa09zPfveoUMhqZ1n7jdhG
         8XwMKCTptcqjEcpfWG7k+7COxyFONcPjPEibj6K3G8szwWyXrZIbTnT5KuS1x/w9k/BA
         FD6Q==
X-Forwarded-Encrypted: i=1; AJvYcCViujaZZfSY/iHGIpMzNM+gE+9AHZAFjVHtb/V0yTyuR8E2d987Zd6WKuJMuUzb5x6up5e7TacSLwk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgnY+fbotOTIbf4rfgR3reWso9uIb6mVurJQJnyMv8HU9BacDJ
	2KhiVX4P4KdV2d2k2z5wxiRHO+hFH+bj8769WPmY7K5DMcaxzhxxbKJzkQepwg==
X-Google-Smtp-Source: AGHT+IGTcFmrowtUM4RxdJ6OXoPjddiogF5QHZi15nRgPn2SqErbOEhoMrs+MKflVjPqqdG6ELGrew==
X-Received: by 2002:a05:600c:4ecc:b0:42c:c28c:e477 with SMTP id 5b1f17b1804b1-432b751688bmr160993705e9.23.1731484912520;
        Wed, 13 Nov 2024 00:01:52 -0800 (PST)
Message-ID: <3788f564-7f02-4e2e-ac4c-b29214206e0d@suse.com>
Date: Wed, 13 Nov 2024 09:01:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86emul: ignore VEX.W for BMI{1,2} insns in 32-bit
 mode
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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
 <6442a109-de9a-4b81-a283-2d72bbc3d284@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: <6442a109-de9a-4b81-a283-2d72bbc3d284@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 01:24, Andrew Cooper wrote:
> On 12/11/2024 3:00 pm, Jan Beulich wrote:
>> While result values and other status flags are unaffected as long as we
>> can ignore the case of registers having their upper 32 bits non-zero
>> outside of 64-bit mode, EFLAGS.SF may obtain a wrong value when we
>> mistakenly re-execute the original insn with VEX.W set.
>>
>> Note that the memory access, if any, is correctly carried out as 32-bit
>> regardless of VEX.W.
> 
> I don't understand why this is true.

This talks about the access to guest memory, which is op_bytes based.
And op_bytes determination handles VEX.W correctly afaics. I've added
"guest" near the start of the sentence for clarification.

> If we write out a VEX.W=1 form of BEXTR/etc and emulate while in 64bit
> mode, it will have an operand size of 64.
> 
> I can believe that ...
> 
>>  Internal state also isn't leaked, as the field the
>> memory value is read into (which is then wrongly accessed as a 64-bit
>> quantity when executing the stub) is pre-initialized to zero.
> 
> ... everything else treats the memory operand as 32bit, and uses the
> bottom half of the internal buffer, and generally does the right thing.

No, if I'm getting right what you say it was the other way around:
Right now we
- read guest memory (ahead of the big switch()); that's always a 32-bit
  access for VEX-encoded GPR insns in 32-bit code (the value is read
  into an internal field which is pre-set to zero, i.e. when used as a
  64-bit quantity, it's effectively the zero-extended value that was
  read from guest memory),
- emit a VEX-encoded insn into the stub with VEX.W set,
- execute that insn, resulting in a 64-bit memory access to the internal
  field, where as per above the upper half is zero.
It's only this way that it can be explained why the new testcase added
would previously have failed (wrongly set EFLAGS.SF).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:19:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835090.1250938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8an-0002XO-4e; Wed, 13 Nov 2024 08:19:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835090.1250938; Wed, 13 Nov 2024 08: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 1tB8an-0002XH-1v; Wed, 13 Nov 2024 08:19:13 +0000
Received: by outflank-mailman (input) for mailman id 835090;
 Wed, 13 Nov 2024 08: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=ZFwE=SI=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1tB8al-00024i-7w
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:19:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f30f5970-a197-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 09:19:06 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [37.161.56.90])
 by support.bugseng.com (Postfix) with ESMTPSA id 71BCC4EE0745;
 Wed, 13 Nov 2024 09:19: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: f30f5970-a197-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImYzMGY1OTcwLWExOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDg1OTQ2LjM5NDQzOSwic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731485946; bh=oa8iDxsjooS/dRqIrMyxI6lLIJn2LA0m/dddYZG8toI=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=RB0u3r6kzo5LIe57aVX4bTyj8GBJ5PgAsfoKMbuO+jRFFvsyqHD5Dny8qHXnWDxt5
	 QhWEIHg6A6hv8U1ahvvhqta+IOssIW+I5neanW3yWGfPO50+6IlEOiZZ5ufOAIRdT+
	 TUMI+bm9eO7RzK5+9ceLjfeAIj9T83lPslxVg2SL1U90i/9qOjRAem2rXfaCCIuIND
	 72kol/eBr8svobwXnfAkzv7Z6I4cyUxDwGfvMmvDavicY9bpcZTiRpDNK1jyV0nvH1
	 JaTiBmSdIv5aK2msv0K1Ju+3UjYAVn7CR/zuX3ROYzgYy6oWYjDuIEptHPgZCKRdiR
	 3RzKCVD5Gte/g==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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: [XEN PATCH v2 2/3] x86/emul: use pseudo keyword fallthrough
Date: Wed, 13 Nov 2024 09:17:27 +0100
Message-ID: <b8bf155274a31459cbaab9a435db105fc6372e4a.1731485149.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1731485149.git.federico.serafini@bugseng.com>
References: <cover.1731485149.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Make explicit the fallthrough intention by adding the pseudo keyword
where missing and replace fallthrough comments not following the
agreed syntax.

This satisfies the requirements to deviate violations of
MISRA C:2012 Rule 16.3 "An unconditional break statement shall
terminate every switch-clause".

No functional change.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
No changes from v1.
---
 xen/arch/x86/x86_emulate/decode.c      | 6 ++++--
 xen/arch/x86/x86_emulate/x86_emulate.c | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/decode.c b/xen/arch/x86/x86_emulate/decode.c
index 32b9276dc5..0a0751f2ed 100644
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -1356,7 +1356,8 @@ int x86emul_decode(struct x86_emulate_state *s,
                         --disp8scale;
                     break;
                 }
-                /* vcvt{,t}s{s,d}2usi need special casing: fall through */
+                /* vcvt{,t}s{s,d}2usi need special casing. */
+                fallthrough;
             case 0x2c: /* vcvtts{s,d}2si need special casing */
             case 0x2d: /* vcvts{s,d}2si need special casing */
                 if ( evex_encoded() )
@@ -1530,7 +1531,8 @@ int x86emul_decode(struct x86_emulate_state *s,
                         disp8scale -= 1 + (s->evex.pfx == vex_66);
                     break;
                 }
-                /* vcvt{,t}sh2usi needs special casing: fall through */
+                /* vcvt{,t}sh2usi needs special casing. */
+                fallthrough;
             case 0x2c: case 0x2d: /* vcvt{,t}sh2si need special casing */
                 disp8scale = 1;
                 break;
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 30674ec301..c38984b201 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -1460,6 +1460,7 @@ x86_emulate(
 
         d = (d & ~DstMask) | DstMem;
         /* Becomes a normal DstMem operation from here on. */
+        fallthrough;
     case DstMem:
         generate_exception_if(ea.type == OP_MEM && evex.z, X86_EXC_UD);
         if ( state->simd_size != simd_none )
@@ -1942,6 +1943,7 @@ x86_emulate(
             break;
         }
         generate_exception_if((modrm_reg & 7) != 0, X86_EXC_UD);
+        fallthrough;
     case 0x88 ... 0x8b: /* mov */
     case 0xa0 ... 0xa1: /* mov mem.offs,{%al,%ax,%eax,%rax} */
     case 0xa2 ... 0xa3: /* mov {%al,%ax,%eax,%rax},mem.offs */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:19:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835089.1250927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8al-0002J6-UE; Wed, 13 Nov 2024 08:19:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835089.1250927; Wed, 13 Nov 2024 08: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 1tB8al-0002Iz-RO; Wed, 13 Nov 2024 08:19:11 +0000
Received: by outflank-mailman (input) for mailman id 835089;
 Wed, 13 Nov 2024 08: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=ZFwE=SI=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1tB8ak-00024i-7o
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:19:10 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f27d9fcb-a197-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 09:19:05 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [37.161.56.90])
 by support.bugseng.com (Postfix) with ESMTPSA id 1A0774EE073E;
 Wed, 13 Nov 2024 09:19:02 +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: f27d9fcb-a197-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImYyN2Q5ZmNiLWExOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDg1OTQ1LjU4NjgyMiwic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731485944; bh=EvP0HNiBNaVaG33JJDInJkP1K7JRcCSVMBcL1T7SDQ4=;
	h=From:To:Cc:Subject:Date:From;
	b=S/LwYspHN7TKNvs+kHR7g5M9dLlwPy+Su6K3hAZxG5tsgEkWKj/Q65CAyPKjajlGo
	 kUbukpwVxrItf/BbV3cvKcVTIvlD76Y+v8aZWHTjcWHe1XpxcDcY+6fY8ADelJQ+7b
	 ZFfuzFn/IE3MGqrK+z3WyfeIsjIw+dxQ2teXxBuOfQmX/L2F0wfyT1h+HtTXxoLSIA
	 01XM2ak8mG1s+7pWVD1IN6ryf1QtRJ6KOpCSAGBuhHHppo7IKfS1TvGtifyiGiJl4I
	 Hp2nbSSTMtTotz0kWpg08rmBCHbWyuwN86Cr3w/OXGG3OZxWlZaBjohpGpFTLGcHDj
	 QbPtHyNCZAaQQ==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 0/3] x86: address violations of MISRA C Rule 16.3
Date: Wed, 13 Nov 2024 09:17:25 +0100
Message-ID: <cover.1731485149.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Define pseudo keyword fallthrough for the x86 emulator,
use it and tag the rule as clean.

Federico Serafini (3):
  x86/emul: auxiliary definition of pseudo keyword fallthrough
  x86/emul: use pseudo keyword fallthrough
  automation/eclair: tag Rule 16.3 as clean

 automation/eclair_analysis/ECLAIR/tagging.ecl |  3 ++-
 tools/tests/x86_emulator/x86-emulate.h        | 10 ++++++++++
 xen/arch/x86/x86_emulate/decode.c             |  6 ++++--
 xen/arch/x86/x86_emulate/x86_emulate.c        |  2 ++
 4 files changed, 18 insertions(+), 3 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:19:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835091.1250942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8an-0002aI-Fm; Wed, 13 Nov 2024 08:19:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835091.1250942; Wed, 13 Nov 2024 08: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 1tB8an-0002Zs-9D; Wed, 13 Nov 2024 08:19:13 +0000
Received: by outflank-mailman (input) for mailman id 835091;
 Wed, 13 Nov 2024 08: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=ZFwE=SI=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1tB8am-00024i-84
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:19:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3888d89-a197-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 09:19:07 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [37.161.56.90])
 by support.bugseng.com (Postfix) with ESMTPSA id 4CDF14EE0747;
 Wed, 13 Nov 2024 09:19: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: f3888d89-a197-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImYzODg4ZDg5LWExOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDg1OTQ3LjE4OTQ2OSwic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731485946; bh=k7eaQdpk1quR4T74tRcSKPFjVx4wAgBnMSptn9zpm7Q=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=wsV/Q8EzqCGFyfSU4Eui3NDZtpd746iB0+3JRtZ/o6cBi44pxAt9UqD7ZGxgixGwA
	 dxX9xp+UxzxqmDT0XmqcKIkjbvrtdkP/tTSNy19wLzwZfwnRizekCNdJMYCuXujJg+
	 iAVED9MxqraAHslOsF3S+9ISofS8ZDMMtEZbvbNqR5EPNCwHPwHXxv6JqQVtI8iuIv
	 c9tAVqWewFUHsOsjMGl0x213cGQR1iGJQEbpjQAOdBS0UOfVzsxBozd721X6yXykNc
	 VSMy6ueAAW3zdCqPESfXT3xnWzdAs3zSHKJH2DG7o4PYPL5JipYjtG3WNqFNAq7+Ck
	 FnnZgxSYgjorg==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 3/3] automation/eclair: tag Rule 16.3 as clean
Date: Wed, 13 Nov 2024 09:17:28 +0100
Message-ID: <30ebf4ab10923dde132f0df60bc7445dc892affe.1731485149.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1731485149.git.federico.serafini@bugseng.com>
References: <cover.1731485149.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Tag MISRA C:2012 Rule 16.3 as clean for both architectures:
new violations will cause a failure of the CI/CD pipeline.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
No changes from v1.
---
 automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index e1d4ed012a..cb7d5743d2 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -64,6 +64,7 @@ MC3R1.R14.1||
 MC3R1.R14.3||
 MC3R1.R14.4||
 MC3R1.R16.2||
+MC3R1.R16.3||
 MC3R1.R16.7||
 MC3R1.R17.1||
 MC3R1.R17.3||
@@ -112,7 +113,7 @@ if(string_equal(target,"x86_64"),
 )
 
 if(string_equal(target,"arm64"),
-    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.3||MC3R1.R16.6||MC3R1.R20.7"})
+    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
 )
 
 -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:19:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835088.1250918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8ak-000250-OU; Wed, 13 Nov 2024 08:19:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835088.1250918; Wed, 13 Nov 2024 08:19: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 1tB8ak-00024t-LV; Wed, 13 Nov 2024 08:19:10 +0000
Received: by outflank-mailman (input) for mailman id 835088;
 Wed, 13 Nov 2024 08:19: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=ZFwE=SI=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1tB8aj-00024i-Id
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:19:09 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2930e0d-a197-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 09:19:05 +0100 (CET)
Received: from truciolo.bugseng.com (unknown [37.161.56.90])
 by support.bugseng.com (Postfix) with ESMTPSA id 876DC4EE0746;
 Wed, 13 Nov 2024 09:19:04 +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: f2930e0d-a197-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImYyOTMwZTBkLWExOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDg1OTQ1LjU4NjkxMiwic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731485945; bh=gikYKJ/kKxTgJ648RNOba3OHb2s582EVNyvg3y+74eE=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=kUi3m3kPFCKpdZrB2EGiobIJPCCz5E0Qso4WtZeihNtFXPs6xpyMK1vf1hCGRkxML
	 gU/tkH5XJL4cmrev3ECmID24zmPBc+HFXX7ZkxQzArGKpi3pNfdcFAC1PBSOB+gj9N
	 zPRMYnjEXjzbjaKwYYKljofnl4SHebnL9vsLHLiEeCNhdXP8l/H2HDTP49LXkorjlD
	 6hCuqxYPZaKKSuLESO4VzkOVwrP3aeaU/URNR/K/nNNXefdkwt0rUKm/6TY+DPVi8M
	 P7wv4G/6+I+ml+LGfQPqWvrPdR5H9sAgPZSs9SbQBLOcljiAE7BwupIaW6tgsnfY5H
	 OV7GxWBOXf9aw==
From: Federico Serafini <federico.serafini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Federico Serafini <federico.serafini@bugseng.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>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v2 1/3] x86/emul: auxiliary definition of pseudo keyword fallthrough
Date: Wed, 13 Nov 2024 09:17:26 +0100
Message-ID: <f1dc3c1e70cfa9f7ce505e10624d0771f7697013.1731485149.git.federico.serafini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1731485149.git.federico.serafini@bugseng.com>
References: <cover.1731485149.git.federico.serafini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The pseudo keyword fallthrough shall be used to make explicit the
fallthrough intention at the end of a case statement (doing this
using comments is deprecated).

A definition of such pseudo keyword is already present in the
Xen build. This auxiliary definition makes it available also for
for test and fuzzing harness without iterfearing with the one
that the Xen build has.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
---
Changes from v1:
- moved definition in the right file;
- remove useless parenthesis;
- description improved.
---
 tools/tests/x86_emulator/x86-emulate.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tools/tests/x86_emulator/x86-emulate.h b/tools/tests/x86_emulator/x86-emulate.h
index 00abc829b0..b01bb0cdce 100644
--- a/tools/tests/x86_emulator/x86-emulate.h
+++ b/tools/tests/x86_emulator/x86-emulate.h
@@ -70,6 +70,16 @@
 extern uint32_t mxcsr_mask;
 extern struct cpu_policy cpu_policy;
 
+/*
+ * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
+ * the end of a case statement block.
+ */
+#if !defined(__clang__) && (__GNUC__ >= 7)
+# define fallthrough        __attribute__((__fallthrough__))
+#else
+# define fallthrough        do {} while (0)  /* fallthrough */
+#endif
+
 #define MMAP_SZ 16384
 bool emul_test_init(void);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:26:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:26:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835118.1250959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8hL-0005gY-AM; Wed, 13 Nov 2024 08:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835118.1250959; Wed, 13 Nov 2024 08:25: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 1tB8hL-0005gR-5M; Wed, 13 Nov 2024 08:25:59 +0000
Received: by outflank-mailman (input) for mailman id 835118;
 Wed, 13 Nov 2024 08:25: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tB8hK-0005gK-M0
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:25:58 +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 e3c0794d-a198-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 09:25:50 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4316f3d3c21so53857335e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 00: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
 ffacd0b85a97d-381ed997313sm17556924f8f.53.2024.11.13.00.25.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 00: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: e3c0794d-a198-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUzYzA3OTRkLWExOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDg2MzUwLjE5MzA5Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731486349; x=1732091149; 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=9ZL0qshxlWsaXovFlitVepSEwKiZv5vxK1dNxdLmwq8=;
        b=DpRPjthPGTWVQAt0ls/e2N6q3E7z2Ol1Vwm9xDr5K6jBIJEhZkbw3E7NrenE4VU+WL
         j8+EqsDu3baYOBu6bLZujw9emLoMfiQaEqFUWoRj6Ev1OnP0r1z7SFhQRgo3Z0gJvItI
         H63lGE2rbmEF/yUBm5GLdbzO445LjjUrTtUzheAnzhTcsZhpNutN7rGUzxo7OCFaSWD5
         6wmyLsyRZoYmnGyfWhH7GrIGP1onhuFrZS5VRdwJRAh4934K0gboYu7YDgFkEivfMz/c
         ND/T+h9LZAwhG/cZWbGdHedu4E8BF77D79h3RlENapwXQSHqcCDjE+mLL4Leo05i6FtE
         Z0yQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731486349; x=1732091149;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9ZL0qshxlWsaXovFlitVepSEwKiZv5vxK1dNxdLmwq8=;
        b=EIlzv7fFHVHg97CdOTIUPFztDfDgQ9x2o01hF/HP/gkgmB+y5iqVeiR6cSNFPoYRDJ
         fl2li/TVnCH3HNzi4ko4Gis4DPduhvy+X0s+0h/Iy/EZANFOrQv5FrIyDgAnAJEVNryc
         o9gjuPOAIsC9w2R+QMmKj1svscdGJvmwWwgIWTM5kooQlt5Fvp3Xa11pBCZF8+gHocXF
         71T7KxyewaSiCjXESatz0H802NUr/gndzAevjCBycGy3Eh/CZx3+Fu2AqmiFxAt3SYBr
         KRKHBlWxZqfew90ilpcy0py9WCev2MXjeVxFTHSGPQ0C7KK1YIwPH3csjCjyRJfnNlUR
         T0Fw==
X-Forwarded-Encrypted: i=1; AJvYcCUJHEw8V2JQcJvxgO1G3HCDusggxscIyMM1MFDsWTnzjwGRVQBKRnsiylgGTYQFp36rLnKTw0AfeNs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx42IfJmLkC+nIZfXrDRQxsZ1LlMsFIQoTiJ83KEvH/w9HTBciE
	5YHux3feo0qr/tgsBifRDJABubaH11WMc2YQurtcHyoPeFa+7y/nR2k1MoM2DQ==
X-Google-Smtp-Source: AGHT+IEBumYpQKePT2lORKRPWoZZwuwiXsSTA45yfAjXJGSIW1QlzB++uLl1wEeC0Og8R3yMbd5PRg==
X-Received: by 2002:a5d:5d89:0:b0:374:c84d:1cfe with SMTP id ffacd0b85a97d-3820811105bmr4242482f8f.21.1731486349553;
        Wed, 13 Nov 2024 00:25:49 -0800 (PST)
Message-ID: <35b585a0-7d19-4b02-8ad6-90c7df3ae6ac@suse.com>
Date: Wed, 13 Nov 2024 09:25:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/multicall: Change nr_calls to uniformly be
 unsigned long
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240621205800.329230-1-andrew.cooper3@citrix.com>
 <20240621205800.329230-3-andrew.cooper3@citrix.com>
 <660fc551-c6bc-456f-8e9e-80b3e592fece@suse.com>
 <alpine.DEB.2.22.394.2411121912400.222505@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.2411121912400.222505@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 04:15, Stefano Stabellini wrote:
> It is challenging to create a solution that satisfies everyone for this
> patch. However, we should add R8.3 to the clean list as soon as possible
> to enable rule blocking in GitLab-CI. Failing to do so risks introducing
> regressions, as recently occurred, undoing the significant efforts made
> by Bugseng and the community over the past year.
> 
> Unless there is a specific counterproposal, let us proceed with
> committing this patch.

Well, I find this odd. We leave things sit in limbo for months and then
want to go ahead with a controversial solution? Rather than actually
(and finally) sorting out the underlying disagreement (of which there
are actually two sufficiently separate parts)? Plus ...

> On Mon, 24 Jun 2024, Jan Beulich wrote:
>> On 21.06.2024 22:58, Andrew Cooper wrote:
>>> Right now, the non-compat declaration and definition of do_multicall()
>>> differing types for the nr_calls parameter.
>>>
>>> This is a MISRA rule 8.3 violation, but it's also time-bomb waiting for the
>>> first 128bit architecture (RISC-V looks as if it might get there first).
>>>
>>> Worse, the type chosen here has a side effect of truncating the guest
>>> parameter, because Xen still doesn't have a clean hypercall ABI definition.
>>>
>>> Switch uniformly to using unsigned long.
>>
>> And re-raising all the same question again: Why not uniformly unsigned int?
>> Or uint32_t?

... this question of mine effectively represents a concrete alternative
proposal (or even two, if you like).

The two parts where there appears to be disagreement are:
1) When to (not) use fixed width types, as presently outlined in
   ./CODING_STYLE.
2) How to type C function parameters called solely from assembly code (of
   which the hypercall handlers are a subset).

And maybe
2b) How to best express such function parameters when they're (sometimes)
    shared between native and compat handlers.

Of course 2) is affected by, as Andrew validly says, there not being a
formally clean ABI definition.

My fear is that if this gets committed as is, it'll be used as a handle to
force in further similarly questionable / controversial changes to other
hypercall handlers. Which is why I think the controversy needs sorting out
first (which admittedly is hard when the ABI is fuzzy).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 08:41:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 08:41:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835130.1250969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB8wa-0000HY-K7; Wed, 13 Nov 2024 08:41:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835130.1250969; Wed, 13 Nov 2024 08:41: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 1tB8wa-0000HR-Ez; Wed, 13 Nov 2024 08:41:44 +0000
Received: by outflank-mailman (input) for mailman id 835130;
 Wed, 13 Nov 2024 08:41: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=LXmd=SI=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1tB8wZ-0000HK-7G
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 08:41:43 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a25ab4f-a19b-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 09:41:40 +0100 (CET)
Received: from delta.homenet.telecomitalia.it
 (host-82-59-161-229.retail.telecomitalia.it [82.59.161.229])
 by support.bugseng.com (Postfix) with ESMTPSA id AF1A24EE073E;
 Wed, 13 Nov 2024 09:41:38 +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: 1a25ab4f-a19b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFhMjVhYjRmLWExOWItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDg3MzAwLjY0OTQzMywic2VuZGVyIjoiYWxlc3NhbmRyby56dWNjaGVsbGlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731487299; bh=Auwitcc81tqmJQ/dEGLefdDXa7T3qBP/amuAto1B4FE=;
	h=From:To:Cc:Subject:Date:From;
	b=yPky5YYQ/qe64DYl8gdaYfrhPxYFaGwmbcGrpscNagPUqmJ27b/vt2IEgueQz9LtN
	 V6XFITLCAVuPHsKwN/jQFoJFNe8lFXUB6ttfNJl1L7iqZ1M8tX7B3BVAT0Z8Qy7rKy
	 XdqGJMmOry/zn+zv4N0oFirQelOVlESBYrrV+WmYkNNQOpswSOQczLmiJzUARDrCxP
	 iBu1UQOVfEYE8/ed3KgF4lGhgaHJc5kiOYS4V4cW2IqQjw0s2FHrlnnGINvVYHzRfm
	 xgzvBnKIw30gke8ez284ck2F+ZOTIVYo/dFSqzOKK1yYueElyMqZ0etHjCGgGI6uiy
	 byDEFIgEimLeQ==
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] xen:add deviations for MISRA C 2012 Rule R5.2
Date: Wed, 13 Nov 2024 09:41:26 +0100
Message-ID: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This addresses violations of MISRA C:2012 Rule 5.2 which states as
following: Identifiers declared in the same scope and name space shall
be distinct.

This deviation addresses violations of Rule 5.2 arising from
identifiers generated through token pasting macros CHECK_NAME_ and
DEFINE_COMPAT_HANDLE.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 4 ++++
 docs/misra/deviations.rst                        | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index c5663eed2b..ee1ac3b602 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -88,6 +88,10 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
 # Series 5.
 #
 
+-doc_begin="Identifiers generated through the following token pasting macros are excluded from compliance to this rule"
+-config=MC3R1.R5.2,reports+={safe, "any_area(any_loc(any_exp(macro(^CHECK_NAME_$))&&any_exp(macro(^DEFINE_COMPAT_HANDLE$))))"}
+-doc_end
+
 -doc_begin="The project adopted the rule with an exception listed in
 'docs/misra/rules.rst'"
 -config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^READ_SYSREG$))&&any_exp(macro(^WRITE_SYSREG$))))"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 15a993d050..aa98acc45f 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -97,6 +97,13 @@ Deviations related to MISRA C:2012 Rules:
        are not instances of commented-out code.
      - Tagged as `safe` for ECLAIR.
 
+   * - R5.2
+     - Macros CHECK_NAME_ and DEFINE_COMPAT_HANDLE through token pasting
+       generate non-compliant identifiers. Such identifiers are allowed.
+     - Tagged as `safe` for ECLAIR. So far, the following macros are deviated:
+         - CHECK_NAME_
+         - DEFINE_COMPAT_HANDLE
+
    * - R5.3
      - As specified in rules.rst, shadowing due to macros being used as macro
        arguments is allowed, as it's deemed not at risk of causing developer
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:30:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:30:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835146.1250977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9hf-0007Yf-8N; Wed, 13 Nov 2024 09:30:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835146.1250977; Wed, 13 Nov 2024 09: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 1tB9hf-0007YY-5Y; Wed, 13 Nov 2024 09:30:23 +0000
Received: by outflank-mailman (input) for mailman id 835146;
 Wed, 13 Nov 2024 09:30: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=KbMU=SI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tB9he-0007YE-55
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:30: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 e5a7c88e-a1a1-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 10:30:18 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-431688d5127so53644245e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:30:18 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432d55520adsm17410275e9.42.2024.11.13.01.30.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 01:30: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: e5a7c88e-a1a1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU1YTdjODhlLWExYTEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkwMjE4Ljg3MDIwNSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731490218; x=1732095018; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=pn1PcnvvtFA1beRUOHXw8tzQdDHoe+NbaF1T2kd4Q1c=;
        b=iYJLXhhb9CsvokX3nPyWyoJ08Pn7F3amad3QUfu1B4Ty44qGG6N68zcD3KYrVktIX7
         GLwCfrvzXGzlDKhWpCAk72/9pqOw49YrIxUL0l1aOH9WiVFD2UvTUYNipFWnG+UE8Y2r
         iJ5f+7Fpw782VFJA82GThFBPchG24hzAtBagI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731490218; x=1732095018;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pn1PcnvvtFA1beRUOHXw8tzQdDHoe+NbaF1T2kd4Q1c=;
        b=CwtQ7kJ4OLJIZXBFjXqkDf2bUt58KRTIaUiHsAXNPDfmRATRWxoVG6PbK9AlnPsTZp
         4lYWoFw73QUq3KczreeayJ6fwJiqRYChAxtZYjRxv+2mYWUwC14rRWXHvWCEq1SpcPPM
         k9Apig46FogYZidgHibg+LuvaoY7cw/15OR1v6wfbBH/ZdrZaPuUlFLWjyCq7SnpbLP7
         +eT1VqvHJqClbejmwoc5wPCKLnWhyIEv5K0crTxWXIG3ysB5oRL9GQCFsknSkm+zCOq4
         1VqzwDg5JSBndIFnT3ffDlw9WsgBHAQhwiD6RaHw9Lu//IDbamLbdz19R5AGWOJIRi7x
         q2pw==
X-Gm-Message-State: AOJu0Yx9GVEFwyfiOn1WqzzsQrXacaSliDH2ACAAmtxyNTuXwopQl6Ve
	1uc2ieDn+c3a2HDSxNllczbkM8iwpgptl8Vks+skUNNWomy0Zo5+kXjso/kMTII=
X-Google-Smtp-Source: AGHT+IH7x4/lmZJxD2Oa5Ih+4k4z8eEFkEJuZHvRm+H/rNjXDHdEkYsIMuISnTKUe1iN5H8nDatVAQ==
X-Received: by 2002:a05:600c:3b09:b0:431:3bf9:3ebb with SMTP id 5b1f17b1804b1-432b7518365mr163791215e9.24.1731490218126;
        Wed, 13 Nov 2024 01:30:18 -0800 (PST)
Date: Wed, 13 Nov 2024 10:30:16 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzRxqO3_GEgs7W1I@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20241113080027.244240-1-Jiqian.Chen@amd.com>

On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> Some devices, like discrete GPU of amd, support resizable bar capability,
> but vpci of Xen doesn't support this feature, so they fail to resize bars
> and then cause probing failure.
> 
> According to PCIe spec, each bar that support resizing has two registers,
> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> corresponding handler into vpci.
> 
> PCI_REBAR_CAP is RO, only provide reading.
> 
> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> setting the new size.

I think the logic to handle resizable BAR could be much simpler.  Some
time ago I've made a patch to add support for it, but due to lack of
hardware on my side to test it I've never submitted it.

My approach would be to detect the presence of the
PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
capability is present force the sizing of BARs each time they are
mapped in modify_bars().  I don't think we need to trap accesses to
the capability itself, as resizing can only happen when memory
decoding is not enabled for the device.  It's enough to fetch the size
of the BARs ahead of each enabling of memory decoding.

Note that memory decoding implies mapping the BARs into the p2m, which
is already an expensive operation, the extra sizing is unlikely to
make much of a difference performance wise.

I've found the following on my git tree and rebased on top of staging:

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ef6c965c081c..045aa4bdadc8 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -356,6 +356,30 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
 
         ASSERT(rangeset_is_empty(bar->mem));
 
+        if ( bar->type != VPCI_BAR_ROM && header->bars_resizable &&
+             (cmd & PCI_COMMAND_MEMORY) )
+        {
+            uint64_t addr, size;
+
+            pci_size_mem_bar(pdev->sbdf, PCI_BASE_ADDRESS_0 + i * 4,
+                             &addr, &size, 0);
+
+            if ( bar->addr != addr )
+                printk(XENLOG_G_ERR
+                       "%pp: BAR#%u address mismatch %#lx vs %#lx\n",
+                       &pdev->sbdf, i, bar->addr, addr);
+
+            if ( bar->size != size )
+            {
+                printk(XENLOG_G_DEBUG
+                       "%pp: detected BAR#%u size change (%#lx -> %#lx)\n",
+                       &pdev->sbdf, i, bar->size, size);
+                bar->size = size;
+                end = PFN_DOWN(bar->addr + size - 1);
+                end_guest = PFN_DOWN(bar->guest_addr + size - 1);
+            }
+        }
+
         /*
          * Make sure that the guest set address has the same page offset
          * as the physical address on the host or otherwise things won't work as
@@ -870,6 +894,9 @@ static int cf_check init_header(struct pci_dev *pdev)
     if ( pdev->ignore_bars )
         return 0;
 
+    header->bars_resizable = pci_find_ext_capability(pdev->sbdf,
+                                                     PCI_EXT_CAP_ID_REBAR);
+
     cmd = pci_conf_read16(pdev->sbdf, PCI_COMMAND);
 
     /*
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 250ba106dbd3..c543a2b86778 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -459,6 +459,7 @@
 #define PCI_EXT_CAP_ID_ARI	14
 #define PCI_EXT_CAP_ID_ATS	15
 #define PCI_EXT_CAP_ID_SRIOV	16
+#define PCI_EXT_CAP_ID_REBAR	21
 
 /* Advanced Error Reporting */
 #define PCI_ERR_UNCOR_STATUS	4	/* Uncorrectable Error Status */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 41e7c3bc2791..45ebc1bb3356 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -129,6 +129,8 @@ struct vpci {
          * upon to know whether BARs are mapped into the guest p2m.
          */
         bool bars_mapped      : 1;
+        /* Device has the Resizable BARs capability. */
+        bool bars_resizable   : 1;
         /* FIXME: currently there's no support for SR-IOV. */
     } header;
 


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:31:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:31:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835152.1250988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9iO-0008AS-Gi; Wed, 13 Nov 2024 09:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835152.1250988; Wed, 13 Nov 2024 09:31: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 1tB9iO-0008AL-Da; Wed, 13 Nov 2024 09:31:08 +0000
Received: by outflank-mailman (input) for mailman id 835152;
 Wed, 13 Nov 2024 09:31: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tB9iM-0007YE-9p
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:31:06 +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 006b0a28-a1a2-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 10:31:03 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9aa8895facso1222392366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:31:03 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03bb7530sm6929630a12.43.2024.11.13.01.31.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 01:31: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: 006b0a28-a1a2-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAwNmIwYTI4LWExYTItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkwMjYzLjcyMjMxMywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731490263; x=1732095063; 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=zs7n1P5X7Jke+I4bmzjJ2iKQwDiqHhXQ1kiL+k6H1ts=;
        b=hnIKhJA9/EYKcsWU7HD0b2ZPs4dAp2vOi/1L8KgZToZ3dDMmrU2mIEIjCusPnFmo+Z
         w0PO4PWyvahpmY3pwB/UQfTO7Wdpq4OGAVikMZhY3pvhamKfz0/8MEBbr/mse3jWXyCw
         FV596PZayhvMvfyyRXAePHO5snWFDWIjTFw+A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731490263; x=1732095063;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zs7n1P5X7Jke+I4bmzjJ2iKQwDiqHhXQ1kiL+k6H1ts=;
        b=hAhivLCkRiWDVe+wKJ3EDCNrNNVkfoOHGL9atw9/B26yI9y6VOPGy1sL3axbChTUzK
         B3Y6woKxwqaVJXeVwWsE0h9m85jFxi4v7kgjeKJN3Up5rdCgGf0lTYoywat+tH2qbAhw
         sihvfUYg4q+hbcruIpzqHAbnPv41cKdC2MvTnPHsbVPqs+GG8HO34/y47wB8Nnu+XZUO
         WlfN9Ic+qxtTrrUozQT9Lf1eVMiv7HZsysXSEkGM4TW8EqlEYnzs0kVsSxK87GuWEBgq
         uJktAsmzYyRd/my3LS+t1SPLuWVrTVIBWexkAyHueBnonPBD8BsETv2QtnQFgYX1Kbg8
         eQsQ==
X-Gm-Message-State: AOJu0YySM+SHRcwMPnxjSo6e3JghzIKgk0WLuJ6BvlCt4tWmBPNhesJv
	60HtkXoMRTHm41RcZbP0eASGykV42YzNrrxwm+HszzcJ4Rp89ZIdlzqSU1yrcDC+L44nsuk7Cji
	/
X-Google-Smtp-Source: AGHT+IGF8u7M6B5/UBHjGhmB4aekj0WVqm3/KJd6Nrn1prSwc8n5Tj1nm9shu46HJCAPnxDeM9Rocw==
X-Received: by 2002:a17:907:7f1f:b0:a99:f4be:7a6a with SMTP id a640c23a62f3a-a9eeffdc630mr2031668866b.47.1731490262648;
        Wed, 13 Nov 2024 01:31:02 -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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH 1/2] x86/trampoline: Document how the trampoline is laid out
Date: Wed, 13 Nov 2024 09:30:57 +0000
Message-Id: <20241113093058.1562447-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is, to the best of my knowledge, accurate.  I am providing no comment on
how sane I believe it to be.

At the time of writing, the sizes of the regions are:

          offset  size
  AP:     0x0000  0x00b0
  S3:     0x00b0  0x0140
  Boot:   0x01f0  0x1780
  Heap:   0x1970  0xe690
  Stack:  0xf000  0x1000

and wakeup_stack overlays boot_edd_info.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/arch/x86/include/asm/trampoline.h | 55 ++++++++++++++++++++++++++-
 1 file changed, 53 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
index 8c1e0b48c2c9..d801bea400dc 100644
--- a/xen/arch/x86/include/asm/trampoline.h
+++ b/xen/arch/x86/include/asm/trampoline.h
@@ -37,12 +37,63 @@
  * manually as part of placement.
  */
 
+/*
+ * Layout of the trampoline.  Logical areas, in ascending order:
+ *
+ * 1) AP boot:
+ *
+ *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
+ *    mapping (which must be executable) can at least be Read Only.
+ *
+ * 2) S3 resume:
+ *
+ *    The S3 wakeup logic may need to interact with the BIOS, so needs a
+ *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
+ *    undefined part of the the boot trampoline.  The stack is only used with
+ *    paging disabled.
+ *
+ * 3) Boot trampoline:
+ *
+ *    This region houses various data used by the AP/S3 paths too.  The boot
+ *    trampoline collects data from the BIOS (E820/EDD/EDID/etc), so needs a
+ *    stack.  The stack pointer is set to trampoline_phys + 64k and has 4k
+ *    space reserved.
+ *
+ * 4) Heap space:
+ *
+ *    The first 1k of heap space is statically allocated for VESA information.
+ *
+ *    The remainder of the heap is used by reloc(), logic which is otherwise
+ *    outside of the trampoline, to collect the bootloader metadata (cmdline,
+ *    module list, etc).  It does so with a bump allocator starting from the
+ *    end of the heap and allocating backwards.
+ *
+ * 5) Boot stack:
+ *
+ *    4k of space is reserved for the boot stack, at trampoline_phys + 64k.
+ *
+ * Therefore, when placed, it looks somewhat like this:
+ *
+ *    +--- trampoline_phys
+ *    v
+ *    |<-------------------------------64K------------------------------->|
+ *    |<-----4K----->|                                         |<---4K--->|
+ *    +----+----+----+-+---------------------------------------+----------+
+ *    | AP | S3 | Boot | Heap                                  |    Stack |
+ *    +----+----+------+---------------------------------------+----------+
+ *    ^           <~~^ ^                                    <~~^       <~~^
+ *    |              | +- trampoline_end[]                     |          |
+ *    |              +--- S3 Stack          reloc() allocator -+          |
+ *    +------------------ trampoline_start[]       Boot Stack ------------+
+ */
+
 #include <xen/compiler.h>
 #include <xen/types.h>
 
 /*
- * Start and end of the trampoline section, as linked into Xen.  It is within
- * the .init section and reclaimed after boot.
+ * Start and end of the trampoline section, as linked into Xen.  This covers
+ * the AP, S3 and Boot regions, but not the heap or stack.  It is within the
+ * .init section and reclaimed after boot.
  */
 /* SAF-0-safe */
 extern char trampoline_start[], trampoline_end[];

base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:31:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:31:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835154.1250993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9iO-0008F6-Sv; Wed, 13 Nov 2024 09:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835154.1250993; Wed, 13 Nov 2024 09:31: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 1tB9iO-0008EP-Pz; Wed, 13 Nov 2024 09:31:08 +0000
Received: by outflank-mailman (input) for mailman id 835154;
 Wed, 13 Nov 2024 09:31: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tB9iN-0007YE-BZ
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:31:07 +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 013e22a6-a1a2-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 10:31:05 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a99fa009adcso441029266b.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:31:05 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03bb7530sm6929630a12.43.2024.11.13.01.31.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 01:31: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: 013e22a6-a1a2-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAxM2UyMmE2LWExYTItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkwMjY1LjA5NzkzNSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731490264; x=1732095064; 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=a9O53tsUH9KI5NmtcGog/gKO969NUIAyapBgZEp49gQ=;
        b=f6K3wvzeg1Bp9OpNbZbz3bgsxrlb9ZvNgRV1/u6FlDPhUGysEfFgxgyDaxZnmYOg4T
         Y0ae5uEqkZDy43OIDXnJ5KLJfN4GAgbt7UIn64ffijkhIF7kj6llkvody2vPswPBuiYh
         KOhPThBK4TdBStoZ5f+wkF+g9WVKcTiR+UKMI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731490264; x=1732095064;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=a9O53tsUH9KI5NmtcGog/gKO969NUIAyapBgZEp49gQ=;
        b=i0Pp58PMznHMAaG2EfzKCUULBDytF/6mVG52xSD3Qag/eEv89q2oSV+4f6tP58Dl/s
         Gw03trzdWyzd806hiYYUSCklmHJb/MMd4bL+LQ87u8PBFjPG7RUtlMRf9obGyUfUH//I
         MReOacN4wzvmQanmde9CpMEawAQ9c3kGhypnKsWrkMoik9iP5D4iTGyBLB8FLVDfIYEk
         VhVzKpX19VmlB0SBzIAxqJi0i2O2L4v2e+sl1j5FAT6iF70dQeEYvN8veXXmE44yNXT/
         5lmlbbEJPKF21O22qTfV4TuHq0LDgHC4qIynA5kGMiPYPHkeqA5RphgNrdx+iM0f3FHK
         0mWw==
X-Gm-Message-State: AOJu0Yyt7XxQyLpYv2ENVl8Mxz1NVZpUxNOjftSTGni/zJ+vJ3bI7Zeb
	qHDzySMa73zGRKTqjpq1Etu1mvHm2Z6yClLHBIgqurd97f+99nHHUUcA9JIRXy1cOWGTxR3O/K0
	V
X-Google-Smtp-Source: AGHT+IHuBv0pvJp20rHG2r+QXP/gVZ5tZwxn4lKkF4ZW6jyudMS8KM2jb1ZYyNxOOBF1egs+drrIog==
X-Received: by 2002:a05:6402:510f:b0:5c9:44bc:f9b3 with SMTP id 4fb4d7f45d1cf-5cf0a31116amr23492905a12.11.1731490264093;
        Wed, 13 Nov 2024 01:31:04 -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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe the size
Date: Wed, 13 Nov 2024 09:30:58 +0000
Message-Id: <20241113093058.1562447-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The logic is far more sane to follow with a total size, and the position of
the end of the heap.  Remove or fix the the remaining descriptions of how the
trampoline is laid out.

No functional change.  The compiled binary is identical.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/arch/x86/boot/head.S          | 21 ++-------------------
 xen/arch/x86/boot/reloc.c         |  5 ++---
 xen/arch/x86/efi/efi-boot.h       |  2 +-
 xen/arch/x86/include/asm/config.h |  5 +++--
 xen/arch/x86/xen.lds.S            |  2 +-
 5 files changed, 9 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index dcda91cfda49..b31cf83758c1 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -494,7 +494,7 @@ trampoline_bios_setup:
 
 2:
         /* Reserve memory for the trampoline and the low-memory stack. */
-        sub     $((TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE)>>4),%ecx
+        sub     $TRAMPOLINE_SIZE >> 4, %ecx
 
         /* From arch/x86/smpboot.c: start_eip had better be page-aligned! */
         xor     %cl, %cl
@@ -525,23 +525,6 @@ trampoline_setup:
         mov     %eax, sym_esi(multiboot_ptr)
 2:
 
-        /*
-         * Now trampoline_phys points to the following structure (lowest address
-         * is at the bottom):
-         *
-         * +------------------------+
-         * | TRAMPOLINE_STACK_SPACE |
-         * +------------------------+
-         * |     Data (MBI / PVH)   |
-         * +- - - - - - - - - - - - +
-         * |    TRAMPOLINE_SPACE    |
-         * +------------------------+
-         *
-         * Data grows downwards from the highest address of TRAMPOLINE_SPACE
-         * region to the end of the trampoline. The rest of TRAMPOLINE_SPACE is
-         * reserved for trampoline code and data.
-         */
-
         /* Interrogate CPU extended features via CPUID. */
         mov     $1, %eax
         cpuid
@@ -713,7 +696,7 @@ trampoline_setup:
 1:
         /* Switch to low-memory stack which lives at the end of trampoline region. */
         mov     sym_esi(trampoline_phys), %edi
-        lea     TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE(%edi),%esp
+        lea     TRAMPOLINE_SIZE(%edi), %esp
         lea     trampoline_boot_cpu_entry-trampoline_start(%edi),%eax
         pushl   $BOOT_CS32
         push    %eax
diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index e50e161b2740..1f47e10f7fa6 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -65,7 +65,7 @@ typedef struct memctx {
     /*
      * Simple bump allocator.
      *
-     * It starts from the base of the trampoline and allocates downwards.
+     * It starts from end of of the trampoline heap and allocates downwards.
      */
     uint32_t ptr;
 } memctx;
@@ -349,8 +349,7 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, memctx *ctx)
 /* SAF-1-safe */
 void *reloc(uint32_t magic, uint32_t in)
 {
-    /* Get bottom-most low-memory stack address. */
-    memctx ctx = { trampoline_phys + TRAMPOLINE_SPACE };
+    memctx ctx = { trampoline_phys + TRAMPOLINE_HEAP_END };
 
     switch ( magic )
     {
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 7930b7c73892..9d3f2b71447e 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -633,7 +633,7 @@ static void __init efi_arch_memory_setup(void)
     if ( efi_enabled(EFI_LOADER) )
         cfg.size = trampoline_end - trampoline_start;
     else
-        cfg.size = TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
+        cfg.size = TRAMPOLINE_SIZE;
 
     status = efi_bs->AllocatePages(AllocateMaxAddress, EfiLoaderData,
                                    PFN_UP(cfg.size), &cfg.addr);
diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index f8a5a4913b07..20141ede31a1 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -51,8 +51,9 @@
 
 #define IST_SHSTK_SIZE 1024
 
-#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
-#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
+/* See asm/trampoline.h */
+#define TRAMPOLINE_SIZE         KB(64)
+#define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
 #define WAKEUP_STACK_MIN        3072
 
 #define MBI_SPACE_MIN           (2 * PAGE_SIZE)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 35693f6e3380..e7d93d1f4ac3 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -410,7 +410,7 @@ ASSERT(!SIZEOF(.plt),      ".plt non-empty")
 ASSERT(!SIZEOF(.rela),     "leftover relocations")
 #endif
 
-ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_SPACE - MBI_SPACE_MIN,
+ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_HEAP_END - MBI_SPACE_MIN,
     "not enough room for trampoline and mbi data")
 ASSERT((wakeup_stack - wakeup_stack_start) >= WAKEUP_STACK_MIN,
     "wakeup stack too small")
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:31:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835155.1250998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9iP-0008K8-68; Wed, 13 Nov 2024 09:31:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835155.1250998; Wed, 13 Nov 2024 09:31: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 1tB9iP-0008Ip-0W; Wed, 13 Nov 2024 09:31:09 +0000
Received: by outflank-mailman (input) for mailman id 835155;
 Wed, 13 Nov 2024 09:31: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tB9iN-00089l-IG
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:31:07 +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 ff85a9c4-a1a1-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 10:31:02 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5c9404c0d50so7911532a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:31:02 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03bb7530sm6929630a12.43.2024.11.13.01.31.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 01:31: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: ff85a9c4-a1a1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZmODVhOWM0LWExYTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkwMjYyLjIyMTEyNiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731490261; x=1732095061; 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=V45cRxalXAMwikIF0CGAp2DsYKYu9U1aXYD5gxcRrBE=;
        b=XVXBj9Hv8CVTD2yfCX+PD1Mj8zpu0xP7fNjwwiMmaLMCT+DBqJBgGAxZPmeyKSqrvU
         NKmlzsnHvpYH1r7EVpoHKWKe6XSLUXDSpCxW9gQe+cMoDz60IwRFXff2UJcUs777KirR
         Rc5m9bNsRNJnRG/+wsFdbP97vaWMqI3mzaVFM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731490261; x=1732095061;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=V45cRxalXAMwikIF0CGAp2DsYKYu9U1aXYD5gxcRrBE=;
        b=uisetVhjyB5Wk6f/5y+EHxVGXTfKnWj//TJpn2t1wZbWHljpS9zG+YUbaJb+d8adPr
         Trz/FDIMXpqgoA610CJ921PygUEu5Onoa57R1Gyt9sBcUuL6YKCeqcHWQvcl96XILmHG
         UGhdeKeW8GWl4D31pSuEXY+x0aaKYwI66I528iHd/qrqv1VZcmzVWHE9vLG+fzzm8/Tr
         B+nEEyrdveOXcc6T/JhDUZ/7BD37HazU6MjkEOhI/6Sh1rnYYUPZXQm3kLJlv/T2cJoY
         VX1ue45+4p2zKfjLS6oCBV94fGl1GVy4V5djougHHkFEQdWRH6dd9M67pb+krJCocekG
         Wz8Q==
X-Gm-Message-State: AOJu0YwNyfVIbwBbweey/2VXuy2UjbUw7Trszb+T8oQzrx5FbSmVAj+Q
	8dWmiC0DvRWZxneZ7Z1+7sUK2TS8LyzooUUYJwhxqAPTEZimG7xK/Xgx/o/UHA9713pJzfCKJOa
	g
X-Google-Smtp-Source: AGHT+IFbxmZML3aeWKdPy4HmXwfgZpUVIaGBcAQ001zrAxCj2PwJE3M8z3nIa4RSko11y+ZEiV1v2A==
X-Received: by 2002:a05:6402:2550:b0:5cf:466f:d474 with SMTP id 4fb4d7f45d1cf-5cf4670c998mr7462379a12.16.1731490261216;
        Wed, 13 Nov 2024 01:31:01 -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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH 0/2] x86/trampoline: Layout description improvements.
Date: Wed, 13 Nov 2024 09:30:56 +0000
Message-Id: <20241113093058.1562447-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 (2):
  x86/trampoline: Document how the trampoline is laid out
  x86/trampoline: Rationalise the constants to describe the size

 xen/arch/x86/boot/head.S              | 21 +---------
 xen/arch/x86/boot/reloc.c             |  5 +--
 xen/arch/x86/efi/efi-boot.h           |  2 +-
 xen/arch/x86/include/asm/config.h     |  5 ++-
 xen/arch/x86/include/asm/trampoline.h | 55 ++++++++++++++++++++++++++-
 xen/arch/x86/xen.lds.S                |  2 +-
 6 files changed, 62 insertions(+), 28 deletions(-)


base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:31:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835156.1251018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9iR-0000UM-Ao; Wed, 13 Nov 2024 09:31:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835156.1251018; Wed, 13 Nov 2024 09:31: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 1tB9iR-0000U9-7E; Wed, 13 Nov 2024 09:31:11 +0000
Received: by outflank-mailman (input) for mailman id 835156;
 Wed, 13 Nov 2024 09:31:09 +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 1tB9iP-00009N-Nu
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:31:09 +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 1tB9iP-003Bam-00;
 Wed, 13 Nov 2024 09:31:09 +0000
Received: from [2a02:8012:3a1:0:2c06:4644:c8a3:2b5e]
 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 1tB9iO-002qt2-2m;
 Wed, 13 Nov 2024 09:31: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>
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=mQwr+T2baO7ZV9EdrJzGP44jU2Z1hpyt5kXf8y68Ijc=; b=nIMo6vu7MrpN+AxrEDW68MDXGF
	dfG8eEcPLA0i1lXKbiPGRyIg0bi7BRCJ0DT26YmfwbPuj3BqG/mfPfW6dNlQYJIyddF83HGaD3Wme
	OdU5M7F06sYA//DPlwLE6/1JHN1l+wgTqdWFJDt43acoizR1m5lpBUbgmMEOkNo9q8Fo=;
Message-ID: <4dbf2c4d-f7bd-4032-b52f-29c24e3ec055@xen.org>
Date: Wed, 13 Nov 2024 09:31:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Artem Mygaiev <artem_mygaiev@epam.com>,
 Munakata Hisao <hisao.munakata.vt@renesas.com>
References: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 18/10/2024 16:51, Ayan Kumar Halder wrote:
> From: Michal Orzel <michal.orzel@amd.com>
> 
> Add requirements for dom0less domain creation.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
>   .../arm64/dom0less_domain_config.rst          | 267 ++++++++++++++++++
>   docs/fusa/reqs/market-reqs/reqs.rst           |  15 +
>   docs/fusa/reqs/product-reqs/arm64/reqs.rst    |  20 ++
>   3 files changed, 302 insertions(+)
>   create mode 100644 docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst
> 
> diff --git a/docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst b/docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst
> new file mode 100644
> index 0000000000..17b5f8962c
> --- /dev/null
> +++ b/docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst
> @@ -0,0 +1,267 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +Dom0less Domain configuration requirements
> +==========================================
> +
> +The following are the requirements related to dom0less domain configuration for
> +Arm64 domains.
> +
> +Specify Arm64 Linux kernel image
> +----------------------------------
> +
> +`XenSwdgn~arm64_specify_kernel_linux_image~1`
> +
> +Description:
> +Xen shall create a domain with a Arm64 Linux kernel image.

A link to the specification would be useful when you are referring to an 
external format.

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify Arm64 Gzip Linux kernel image
> +---------------------------------------
> +
> +`XenSwdgn~arm64_specify_kernel_gzip_image~1`
> +
> +Description:
> +Xen shall create a domain with a Arm64 Gzip compressed Linux kernel image.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify kernel with uImage header
> +---------------------------------
> +
> +`XenSwdgn~arm64_specify_kernel_uimage~1`
> +
> +Description:
> +Xen shall create a domain with a kernel containing uImage header.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify Gzip kernel with uImage header
> +--------------------------------------
> +
> +`XenSwdgn~arm64_specify_gzip_kernel_uimage~1`
> +
> +Description:
> +Xen shall create a domain with a Gzip compressed kernel containing uImage
> +header.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify passthrough device tree
> +-------------------------------
> +
> +`XenSwdgn~arm64_specify_passthrough_dt~1`
> +
> +Description:
> +Xen shall support direct assignment of devices to a domain.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify kernel command line arguments
> +-------------------------------------
> +
> +`XenSwdgn~arm64_specify_kernel_cmd_line_args~1`
> +
> +Description:
> +Xen shall pass kernel command line arguments to a domain.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify initial ramdisk
> +-----------------------
> +
> +`XenSwdgn~arm64_specify_initial_ramdisk~1`
> +
> +Description:
> +Xen shall provide initial ramdisk to a domain.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify amount of memory
> +------------------------
> +
> +`XenSwdgn~arm64_specify_memory~1`
> +
> +Description:
> +Xen shall create a domain with specified amount of memory.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Assign a single vCPU
> +--------------------
> +
> +`XenSwdgn~arm64_assign_single_vcpu~1`
> +
> +Description:
> +Xen shall assign a single vCPU to a domain.

This wording is a bit ambiguous. You don't assign a vCPU to a domain. 
You create a domain with "N vCPUs". It is also not clear why we are 
making the distinction between one and ...

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Assign multiple vCPUs
> +---------------------
> +
> +`XenSwdgn~arm64_assign_multiple_vcpus~1`
> +
> +Description:
> +Xen shall assign multiple vCPUs to a domain.

... multiple one. From Xen PoV there is no differences.

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Assign vCPUs from CPU pool
> +--------------------------
> +
> +`XenSwdgn~arm64_assign_vcpus_cpu_pool~1`
> +
> +Description:
> +Xen shall assign vCPUs to a domain from a CPU pool.

Same remark about the wording. You create a domain with N vCPUs and 
*assign* a CPU pool to a domain. You also assign pCPU to a CPU pool.

But I am not sure about if this requirement is actually necessary given ...

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify CPU pool scheduler
> +--------------------------
> +
> +`XenSwdgn~arm64_specify_cpu_pool_scheduler~1`
> +
> +Description:
> +Xen shall assign a CPU pool scheduler to a domain.

... you have th is one.

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Assign virtual UART
> +-------------------
> +
> +`XenSwdgn~arm64_assign_virtual_uart~1`
> +
> +Description:
> +Xen shall assign a virtual UART to a domain.

Are we talking about the virtual PL011 or the fake emulation of the real 
UART we do?

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify number of SPIs
> +----------------------
> +
> +`XenSwdgn~arm64_specify_num_spis~1`
> +
> +Description:
> +Xen shall allocate a specified number of shared peripheral interrupts for a
> +domain.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify grant table version for a domain
> +----------------------------------------
> +
> +`XenSwdgn~arm64_specify_grant_table_version~1`
> +
> +Description:
> +Xen shall create a domain with a specified version of grant table structure

Realistically grant table v2 is not supported for Arm and I am not 
convinced it makes any sense for x86 in embedded system. It is mainly 
useful when you have a guest with a large amount of address space (IIRC 
 > 4TB).

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify number of grant table frames for a domain
> +-------------------------------------------------
> +
> +`XenSwdgn~arm64_specify_num_grant_table_frames~1`
> +
> +Description:
> +Xen shall create a domain with a specified number of grant table frames.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +Specify number of grant maptrack frames for a domain
> +----------------------------------------------------
> +
> +`XenSwdgn~arm64_specify_num_grant_maptrack_frames~1`
> +
> +Description:
> +Xen shall create a domain with a specified number of grant maptrack frames.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~static_domains_configuration~1`
> +
> +| [1] https://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/device-tree/booting.txt
> +| [2] https://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/device-tree/cpupools.txt
> diff --git a/docs/fusa/reqs/market-reqs/reqs.rst b/docs/fusa/reqs/market-reqs/reqs.rst
> index f456788d96..ca020f9a33 100644
> --- a/docs/fusa/reqs/market-reqs/reqs.rst
> +++ b/docs/fusa/reqs/market-reqs/reqs.rst
> @@ -47,3 +47,18 @@ Comments:
>   
>   Needs:
>    - XenProd
> +
> +Static VM definition
> +--------------------
> +
> +`XenMkt~static_vm_definition~1`
> +
> +Description:
> +Xen shall support specifying resources for a domain.

Compare to the other requirements, this is quite a vague. Should we list 
the resources?

> +
> +Rationale:
> +
> +Comments:
> +
> +Needs:
> + - XenProd
> \ No newline at end of file
> diff --git a/docs/fusa/reqs/product-reqs/arm64/reqs.rst b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
> index db91c47a02..0453dbb862 100644
> --- a/docs/fusa/reqs/product-reqs/arm64/reqs.rst
> +++ b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
> @@ -40,3 +40,23 @@ Covers:
>   
>   Needs:
>    - XenSwdgn
> +
> +Configure static domains
> +------------------------
> +
> +`XenProd~static_domains_configuration~1`
> +
> +Description:
> +Xen shall support specifying the resources required for a domain.
> +
> +Rationale:
> +
> +Comments:
> +
> +Rationale:
> +
> +Covers:
> + - `XenMkt~static_vm_definition~1`
> +
> +Needs:
> + - XenSwdgn
> \ No newline at end of file

Missing a newline.

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:39:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:39:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835188.1251028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9q3-00024b-3D; Wed, 13 Nov 2024 09:39:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835188.1251028; Wed, 13 Nov 2024 09:39: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 1tB9q3-00024U-0L; Wed, 13 Nov 2024 09:39:03 +0000
Received: by outflank-mailman (input) for mailman id 835188;
 Wed, 13 Nov 2024 09:39: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=LXmd=SI=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1tB9q0-00024O-Sq
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:39:01 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1adcfead-a1a3-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 10:38:57 +0100 (CET)
Received: from delta.homenet.telecomitalia.it
 (host-82-59-161-229.retail.telecomitalia.it [82.59.161.229])
 by support.bugseng.com (Postfix) with ESMTPSA id 5D0D84EE073E;
 Wed, 13 Nov 2024 10:38: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: 1adcfead-a1a3-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFhZGNmZWFkLWExYTMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkwNzM3Ljc0MzgzNywic2VuZGVyIjoiYWxlc3NhbmRyby56dWNjaGVsbGlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731490736; bh=qWowrHwog5vYWGg7Rukld6FcJCxVgYyaADYK76z8eGg=;
	h=From:To:Cc:Subject:Date:From;
	b=VPDY7iFh3OKajXOLtt9bqsJPlhY65DUW3wRWN5y4//Ky9/al2/NMoKwh1AMAvZts2
	 /k7e9guwPbgV32YNHx/rcG/Cl7AtpsJD8/XFcbvXijfbVXgcPvMg92w+qAfhpnqhrr
	 4IzLoqlHgtriFlwVQQbd1kOmL24CSR4LOG+IEzm6XTUsP1v2gDKr26XAvMEzsmCJT3
	 2W1aAhnPHgjS/rDbTb2Y1AXWUm1j5BFBC86sk2ViDVqzRmRSJy21xt6+2SwEqyWwht
	 K2PWj5UzJ1yAosiU/qV+2elsFM3fKEXbDCAxJcVBVtDiMUAI0QCDHJfjksTXhnOxmY
	 m45Rh2V59h2kw==
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] xen: add deviations for MISRA C 2012 Rule R5.4
Date: Wed, 13 Nov 2024 10:38:45 +0100
Message-ID: <255ae80cc8b95f33daa7534c9552c571391cf689.1731490650.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This addresses violations of MISRA C:2012 Rule 5.4 which states as
following: Macro identifiers shall be distinct.

This deviation aims to address violations of Rule 5.4 regarding
identifiers XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list and
XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list, and identifiers
declared in header file include/asm/guest/hyperv-tlfs.h.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 9 +++++++++
 docs/misra/deviations.rst                        | 8 ++++++++
 2 files changed, 17 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 2f58f29203..9e780e4465 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -98,6 +98,15 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
 -config=MC3R1.R5.3,reports+={safe, "any_area(any_loc(any_exp(macro(^read_debugreg$))&&any_exp(macro(^write_debugreg$))))"}
 -doc_end
 
+-doc_begin="Identifiers declared in the following header file should not be changed, therefore they are excluded from compliance with this rule."
+-config=MC3R1.R5.4,reports+={safe, "any_area(any_loc(file(^xen/arch/x86/include/asm/guest/hyperv-tlfs\\.h$)))"}
+-doc_end
+
+-doc_begin="The following macro identifiers should not be changed, therefore they are excluded from compliance with this rule."
+-config=MC3R1.R5.4,ignored_macros+=^XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list$
+-config=MC3R1.R5.4,ignored_macros+=^XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list$
+-doc_end
+
 -doc_begin="Macros expanding to their own identifier (e.g., \"#define x x\") are deliberate."
 -config=MC3R1.R5.5,reports+={deliberate, "all_area(macro(same_id_body())||!macro(!same_id_body()))"}
 -doc_end
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 15a993d050..2ce1c8e58a 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -109,6 +109,14 @@ Deviations related to MISRA C:2012 Rules:
          - __emulate_2op and __emulate_2op_nobyte
          - read_debugreg and write_debugreg
 
+   * - R5.4
+     - Macros XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list and
+       XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list should not be
+       changed, and are therefore ignored by the ECLAIR.
+       Identifiers in header file xen/arch/x86/include/asm/guest/hyperv-tlfs.halder
+       shall not be changed.
+     - Tagged as `safe` for ECLAIR.
+
    * - R5.5
      - Macros expanding to their own name are allowed.
      - Tagged as `deliberate` for ECLAIR.
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:43:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:43:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835199.1251037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9ua-00044W-MU; Wed, 13 Nov 2024 09:43:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835199.1251037; Wed, 13 Nov 2024 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 1tB9ua-00044P-Jo; Wed, 13 Nov 2024 09:43:44 +0000
Received: by outflank-mailman (input) for mailman id 835199;
 Wed, 13 Nov 2024 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=LXmd=SI=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1tB9uZ-00044J-Iv
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:43:43 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c33df437-a1a3-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 10:43:40 +0100 (CET)
Received: from delta.homenet.telecomitalia.it
 (host-82-59-161-229.retail.telecomitalia.it [82.59.161.229])
 by support.bugseng.com (Postfix) with ESMTPSA id B92A04EE073E;
 Wed, 13 Nov 2024 10:43:37 +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: c33df437-a1a3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMzM2RmNDM3LWExYTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkxMDIwLjEyNzU3Miwic2VuZGVyIjoiYWxlc3NhbmRyby56dWNjaGVsbGlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731491019; bh=D2lUjQA6Cci/787OyZWCf2orNu5BvQkS25p3Ut2CAOY=;
	h=From:To:Cc:Subject:Date:From;
	b=AbV+23zpq6AWRvwC5LpvoiGZb/MiDQuiCdtXOeFfYM5OQgWfo8jmV5Hhvtto+nhxk
	 0y+UTgyYhy1lJ3sIrngvbyJ8S1arLfQztpfyp/syTDkJ3KWB6TQkyK6efJKYWtzCLM
	 mf95bZao7I4LwJv7k1R/k4dPeGQoxYomnwXARFRq/eK9+Iv+/Jky7n7/Z7CoINR9FJ
	 tYkhF7ggkWla2ARUDiqdY/OLqXYW5U0FwmxJMAUDjgdIa9aoxhGQ7wj0DVO4NiT+4M
	 /7FtJJLkOqE0iwweYOY4m+/gNo1R3WoMAWyFEER5S8s8HejxxtVqosHTVUUWYyu/7C
	 tmmArL8WlA8ng==
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com,
	Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] docs/misra: specify behaviour of checker for Directive 4.10
Date: Wed, 13 Nov 2024 10:43:29 +0100
Message-ID: <5939b15ad764674b7d8cece654f891e880086d54.1731490924.git.alessandro.zucchelli@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MISRA C:2012 Directive 4.10 states as following: Precautions shall be
taken in order to prevent the contents of a header file being included
more than once.

This commit updates the documentation to describe the behavior defined
for the checker.

No functional change.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
---
 docs/misra/rules.rst | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 80e5e972ad..f5858b00bb 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -68,6 +68,8 @@ maintainers if you want to suggest a change.
        header file being included more than once
      - Files that are intended to be included more than once do not need to
        conform to the directive
+     - A guard identifier is reported if the same guard identifier is redefined
+       or undefined anywhere in the project
 
    * - `Dir 4.11 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_11.c>`_
      - Required
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:48:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:48:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835209.1251048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tB9z9-0004fK-6p; Wed, 13 Nov 2024 09:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835209.1251048; Wed, 13 Nov 2024 09:48: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 1tB9z9-0004fD-2i; Wed, 13 Nov 2024 09:48:27 +0000
Received: by outflank-mailman (input) for mailman id 835209;
 Wed, 13 Nov 2024 09:48: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tB9z8-0004f7-9u
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:48:26 +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 6c31ae2e-a1a4-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 10:48:23 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-37ed7eb07a4so4438416f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:48: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-381ed99790csm18008641f8f.46.2024.11.13.01.48.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 01:48: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: 6c31ae2e-a1a4-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmYiLCJoZWxvIjoibWFpbC13cjEteDQyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZjMzFhZTJlLWExYTQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkxMzAzLjYyNDY5NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731491303; x=1732096103; 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=0y3CFETTl41FaY0WfsIq+6Ad3iVxYujuidi3KjQN4oQ=;
        b=EMtaOeA/yOG+G0fk36cb0uTMmQRYFCTWRKChPMdpS0coAeztdBIXFMIMEeVs+kJhCJ
         tL68RHZbsznNh9XJchJSaVuREw0/dlAuYzXziNfrybqDo5X6wP4PKvlm+B30icAAG05T
         6uK1AfiP2kDm1WXnYDOI3e4kzu25l6ydJUSm2a+GArC8qMIS18wZOS0+xmZ6gTPfRzW0
         QakmAU64NB8FJOLTGEBk4P/txtVxxGrvtcOXRrRVY7IClHaPinv1ulJXDus2xkZ08TzP
         I58OB9Ga9EAGKKqmhj3fGrjUjEFNS61tiMTWRlvE9Jg3POlwX2ZH7OE0hFsWfTDV0V6y
         wXBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731491303; x=1732096103;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0y3CFETTl41FaY0WfsIq+6Ad3iVxYujuidi3KjQN4oQ=;
        b=QrRYKhHD6XTHH0IkX+rTCwr8Yi/6UwCgUK63SWKaMOE/Lt597z2MmqzVbYICo72Yyc
         en12c8vkRIzrYsmmQTEJN9Jh6j3xneZ4Y4fQ9cNTmjlmwCWq1Fks7oOdi1F65wmztnnt
         1MerB0QySa0aAyTRFaOD5BuJVhCFjvA1lhNJaw7XEv1OlGDctu8GwEV/QsGzDqnAfupn
         jbDICeptnjsqXLXFJa9Mj5FbKC6SURDu5nszX8VRG/fogFwzocZeplxdzkoAJ+JMDtRl
         9tCbxNIzqgoq/7EhT8ljyCUQvKE/3dTAXQm649pGm72/EeyPtXPqcmHDqQSvytdPOIor
         skmA==
X-Forwarded-Encrypted: i=1; AJvYcCUS1zqh4sLPJVjeBsdAtFfPp3lztm71nl0e4hEEVcHk7uuZ1IiADEIqI6x55TF9gbV/HtJb/kwXh/E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDyc1F6xMjULgobjQfJ3hZfClgeTzLVAicV0WrRONumeY38+WS
	ytToSISvDXRne6VkXRjSLPP0MFpPz0RbKAy1JPyvHGKB7OdvXQgG8aYk5jow9g==
X-Google-Smtp-Source: AGHT+IELV4KJC7QGrObSBB7sc8eQFKYD7AvJKHiAwygI7KSuU9vTjL2afv0BjGOzp821noycZMsc/A==
X-Received: by 2002:a5d:6daf:0:b0:381:f0e2:8406 with SMTP id ffacd0b85a97d-3820df5bd05mr1730724f8f.12.1731491302858;
        Wed, 13 Nov 2024 01:48:22 -0800 (PST)
Message-ID: <14df2192-9736-4c1c-8aac-2853467ea330@suse.com>
Date: Wed, 13 Nov 2024 10:48:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.20 Development Update [August-October]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Kelly Choi <kelly.choi@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@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: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2024 17:16, Oleksii Kurochko wrote:
> === x86 ===
> 
> *  Expose consistent topology to guests (v7)
>   -  Alejandro Vallejo
>   -
> https://lore.kernel.org/xen-devel/20241021154600.11745-1-alejandro.vallejo@cloud.com/T/#m6033f95c660675039d7789d3af1ba2f292a3a69b
> 
> *  Boot modules for Hyperlaunch (v8)
>   -  Daniel P. Smith
>   -
> https://lore.kernel.org/xen-devel/20241102172551.17233-1-dpsmith@apertussolutions.com/T/#m94a2f6b9d410c6d624aaebd7c2bf85584c74383e
> 
> *  x86/mm: miscellaneous fixes (v2)
>   -  Roger Pau Monne
>   -
> https://lore.kernel.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m2df34239b793501c6246c85c4b00e52f9c439ac0
> 
> *  x86/ucode: Simplify/fix loading paths further (v1)
>   -  Andrew Cooper
>   -
> https://lore.kernel.org/xen-devel/20241107122117.4073266-1-andrew.cooper3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625d1
> 
> *  Address Space Isolation FPU preparations (v2)
>   -  Alejandro Vallejo
>   -
> https://lore.kernel.org/xen-devel/20241105143310.28301-1-alejandro.vallejo@cloud.com/T/#mbca5192d7e5636ef5ea005a083e5ff28ebe6317d
> 
> *  Fix module-handling use-after-free's (v2)
>   -  Andrew Cooper

Wasn't this committed already?

> https://lore.kernel.org/xen-devel/20241106003938.3453243-1-andrew.cooper3@citrix.com/T/#mdf923bdf63b034a6493bf62beeead280b92a38ed
> 
> *  Reuse 32 bit C code more safely (v4)
>   -  Frediano Ziglio

Same question here.

> https://lore.kernel.org/xen-devel/20241014085332.3254546-1-frediano.ziglio@cloud.com/T/#m53e36815ddec2511ddd1fa8d1a7ed9a27c0cd0f7
> 
> *  x86/alternatives: Adjust all insn-relative fields (v2)
>   -  Andrew Cooper
>   -
> https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
> 
> *  x86: address violations of MISRA C Rule 16.3 (v1)
>   -  Federico Serafini
>   -
> https://lore.kernel.org/xen-devel/cover.1725958416.git.federico.serafini@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be01ab6
> 
> *  Support device passthrough when dom0 is PVH on Xen (v16)
>   -  Jiqian Chen
>   -
> https://lore.kernel.org/xen-devel/20240930034250.2682265-1-Jiqian.Chen@amd.com/T/#m5d557d76f290ff5b5550c1443cab5774d397e526
> 
> *  x86emul: misc additions (v5)
>   -  Jan Beulich
>   -
> https://lore.kernel.org/xen-devel/0b9a0ae8-a39c-49d8-b4e7-f2a463128058@suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe780e
> 
> *  x86/HVM: drop stdvga caching mode (v2)
>   -  Jan Beulich

This, after having been committed, even became the subject of an XSA that
was published earlier this week.

> https://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6-8fbc-67a177a1e171@suse.com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117
> 
> *  x86/HVM: emulation (MMIO) improvements (v1)
>   -  Jan Beulich
>   -
> https://lore.kernel.org/xen-devel/31906cba-8646-4cf9-ab31-1d23654df8d1@suse.com/T/#mdae2f21b929170d60a8640e82857700c940e65c7

More stuff missing that was already intended for 4.19: AMX, AVX10, and
use of ERMS in Xen, to name just a few.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:52:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835216.1251058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBA3J-0006PO-Lv; Wed, 13 Nov 2024 09:52:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835216.1251058; Wed, 13 Nov 2024 09:52: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 1tBA3J-0006PH-JA; Wed, 13 Nov 2024 09:52:45 +0000
Received: by outflank-mailman (input) for mailman id 835216;
 Wed, 13 Nov 2024 09:52: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBA3I-0006PB-Cy
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:52:44 +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 0562b8c4-a1a5-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 10:52:40 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-381ee2e10dfso3994666f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:52: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-381ed9ea647sm17598965f8f.68.2024.11.13.01.52.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 01:52: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: 0562b8c4-a1a5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA1NjJiOGM0LWExYTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkxNTYwLjU4Mzk3Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731491560; x=1732096360; 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=EZbnl9tMxe9ACTXlgS1uBrqvvXpBhN76Giy+I+7pOd8=;
        b=TjQJYJzosfS5It+wC+jg53XYC3VL1Y3CA5R+MHxJKJQA2qAv3unsuPITEwuzr2peSR
         UsT5kQNBG0d1/yA/J4yZjs42gJ+c0dEGGaPMafBY/PIntXb3CvOpU7k+pgGPwoRpM4Es
         fFmM3QlNRIfgyN+dPKvSfnVkOC3FDbpa0nlV++XCG9w97kjBsOV5hj55e4w4laZZi6EF
         927p2VIYYvWvUFPnreCZDD6KjdsmoYlXGgJOT5506sm2n88UhY54xNo/2kcfg0+uUGk5
         tkd37fw9ZTTzsM2TcXBBaFnpqyOuRu87Kf4T/J3ZIuaekYj/hHOndzee1y1JXushfQ3F
         4UqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731491560; x=1732096360;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EZbnl9tMxe9ACTXlgS1uBrqvvXpBhN76Giy+I+7pOd8=;
        b=HVqNx7XxWtUV57LTsHbu0zoK65VXnRL0o1xLUme01btAzZQx2ITnpjtcSIHQxcGgPm
         KS1fbZeQzB3p6j0I9otnBRzV9CFgN+tp8xBWHGBJlcETpGua0UV2l3+tvjT+mpCVOE9k
         5ZWSSEfpoHzri3zuLlTEEHF3NlyEXP73CLSwSP7WKA58izT5ss3DwmsUyz7JLbcUyAo+
         +WKqgs5kq0mKZs2XokA4gUpyACKCC74cg1KAQRZY6ITEvfMjgTafpI+wkIlRaKiyN7Z9
         4qh5gt/LHQyf2QrR5O6ro1hg7bVdz9c0/UlcTrsRP87h4uSO0YkE5PDC4wLwbubUnV56
         3HuQ==
X-Forwarded-Encrypted: i=1; AJvYcCWIkFzoc3NbnnsIUBjKYkrqT4DRRDs/+AzL92ivSPUKFPmH+a8RUQ0XvMmaqoSFcGQGDjHpWGsc3g0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFVxnfKbhYvrI09OQ+NGIwxFXOqMmJbv4LGpi0PWOsjZ3jxWVo
	niojrIL8QJZNLoypiDDumY6hA9ExrlXzB4vlgpTNJrK95N0r1ALBbItjjXbVt74MxX5GmqXJoiA
	=
X-Google-Smtp-Source: AGHT+IGYa2G/kZ4giRxWGsZPU+sdAuAFflFSSNJUUWYcs/1UFYgJ/z4nb26DZImvG2amV/eQtj4SSQ==
X-Received: by 2002:a5d:5f42:0:b0:37d:4436:4505 with SMTP id ffacd0b85a97d-381f186ccdemr16814371f8f.32.1731491559978;
        Wed, 13 Nov 2024 01:52:39 -0800 (PST)
Message-ID: <70ad2dc3-325d-4d24-97cb-6ef5b8a42c18@suse.com>
Date: Wed, 13 Nov 2024 10:52:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/3] x86/emul: auxiliary definition of pseudo
 keyword fallthrough
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1731485149.git.federico.serafini@bugseng.com>
 <f1dc3c1e70cfa9f7ce505e10624d0771f7697013.1731485149.git.federico.serafini@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: <f1dc3c1e70cfa9f7ce505e10624d0771f7697013.1731485149.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 09:17, Federico Serafini wrote:
> --- a/tools/tests/x86_emulator/x86-emulate.h
> +++ b/tools/tests/x86_emulator/x86-emulate.h
> @@ -70,6 +70,16 @@
>  extern uint32_t mxcsr_mask;
>  extern struct cpu_policy cpu_policy;
>  
> +/*
> + * Pseudo keyword 'fallthrough' to make explicit the fallthrough intention at
> + * the end of a case statement block.
> + */
> +#if !defined(__clang__) && (__GNUC__ >= 7)
> +# define fallthrough        __attribute__((__fallthrough__))
> +#else
> +# define fallthrough        do {} while (0)  /* fallthrough */
> +#endif
> +
>  #define MMAP_SZ 16384
>  bool emul_test_init(void);
>  

I'm sure you saw my reply to Stefano where I said "Yes, just with the
addition not at the bottom of the file, but where the other compatibility
definitions are." Yes, you fulfilled the first half, but then you still
put it in the middle of testing-specific definitions / declarations. In
the interest of saving yet another round trip and to avoid yet further
misunderstanding, I'll take care of the further movement while committing.
Then
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:56:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:56:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835223.1251067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBA6b-0007Eo-36; Wed, 13 Nov 2024 09:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835223.1251067; Wed, 13 Nov 2024 09:56: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 1tBA6b-0007Eh-0Y; Wed, 13 Nov 2024 09:56:09 +0000
Received: by outflank-mailman (input) for mailman id 835223;
 Wed, 13 Nov 2024 09:56: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBA6Z-0007Ea-PN
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:56:07 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e840a4a-a1a5-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 10:56:03 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2fb599aac99so64189421fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:56: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-432d54e2e0esm19177055e9.2.2024.11.13.01.56.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 01:56: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: 7e840a4a-a1a5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1sajEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdlODQwYTRhLWExYTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkxNzYzLjczMDQ4NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731491763; x=1732096563; 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=EX0c2+xqC1iW6QJJH7fEnNgF0lQVxbc+7EOohWX/qto=;
        b=TVEDm/KCa49RvreHS6NBOu1cU8EOayBOANiixprO9sy6Ky0SMJIbK/AHfDKMESs7Gk
         OY6+sDf86nskgapWvNjhbea31RXeHXXSMkX8OxaElr/qbJKOes6hrfSj8qYvICPySQe+
         FM9q02BFJtPkOzr7Skt2/dI25sJfqAUI++GW5B6WgPjyw3/8Grh8U6EllW66pDKPgrNq
         K+DqBIVXOt6ue94WwFAfYdSP6E2EPjcZnKz02R94OgSheGXTanrxmB4oJ7vI14fG9DIX
         5A/tZ764nQkL63r1uLi46yEewF9DAqwgpTHeEUvnHYH8EWEvPv6BJoZ016Z/JOF4Y5qR
         GFpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731491763; x=1732096563;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EX0c2+xqC1iW6QJJH7fEnNgF0lQVxbc+7EOohWX/qto=;
        b=M4E4RFlO08qZSlGsvLNHl20eyd/dZKX55ZDZblqyLl5ZMllSonZqIfYKcEaWzDoW9n
         o1OCNn78MRflc7x0W/9WCbo/spBn0KRvswjiDlG2axtyMSTzdq8R0qsyuEKLkBw8NXGJ
         Yz+LLKy/sMq2B/8y86nfMA3Pm6IYy6/b/dijXJKsX8uJ0ZNQpVRImsyVdvk8qMC/4eK/
         KRDZ1s3QiCIoS45Akt2C1i0uKAJx3i9Gor3eMdG+82kAJk9rqRKFFsmClqaNaKWEnJhY
         y1UZLM2yqBazpnaxREzlUTebLciUxTAqxV6wfhTiRdfxLPpoD+HUgPNdnl+bmZVhrJco
         1NzA==
X-Forwarded-Encrypted: i=1; AJvYcCUjMm1nVhyxg/Szg7RLBcaDdkGK4CZtQ28rJdnYQ8Cj0sviUGR6XjEQmJFlHWL56/dv0k6V9GFyCUA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSAdFjdEP4+xpXbSuswftvrcboGS1KsyRLA7mOs1Af17XWRFjk
	mQDDJjlXsoJ1exnkpT10Wm4+4HHxa975L1esgEqI+1BkstvnQZC1dSZuRjgXWg==
X-Google-Smtp-Source: AGHT+IHy0Wncpu7VDlCotQpcnXPBiVGAD7idllyWaWV/03pSPrT29i9YYDjBCnNVQKtZCnRD37gWDQ==
X-Received: by 2002:a2e:be10:0:b0:2fb:5da7:47a7 with SMTP id 38308e7fff4ca-2ff20222f4cmr106004901fa.25.1731491763106;
        Wed, 13 Nov 2024 01:56:03 -0800 (PST)
Message-ID: <1076fcfa-3004-4cc1-94ef-a84b0da4bfef@suse.com>
Date: Wed, 13 Nov 2024 10:56:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 2/3] x86/emul: use pseudo keyword fallthrough
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1731485149.git.federico.serafini@bugseng.com>
 <b8bf155274a31459cbaab9a435db105fc6372e4a.1731485149.git.federico.serafini@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: <b8bf155274a31459cbaab9a435db105fc6372e4a.1731485149.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 09:17, Federico Serafini wrote:
> Make explicit the fallthrough intention by adding the pseudo keyword
> where missing and replace fallthrough comments not following the
> agreed syntax.
> 
> This satisfies the requirements to deviate violations of
> MISRA C:2012 Rule 16.3 "An unconditional break statement shall
> terminate every switch-clause".
> 
> No functional change.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>

Repeating my v1 comment:

"We can certainly take this as is, as a tiny first step. Personally I'm
 not overly happy though to see a mix of comment- and pseudo-keyword-
 style annotations in individual files. After all going forward we'll
 want to use the latter, now that this becomes possible. Yet for that I
 view it a more than just helpful if bad precedents didn't exist
 anymore. Being the one to touch the emulator files most, I can say
 that here more than perhaps anywhere else new code is very often added
 by copy-and-paste-then-edit.

 Therefore question in particular to the other x86 maintainers: Won't
 we be better off if we fully convert to pseudo-keyword-style right
 away?"

I'm afraid I don't like this "don't care" behavior, yet once again in
the interest of making progress:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 09:57:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 09:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835232.1251078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBA7w-0007kw-DT; Wed, 13 Nov 2024 09:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835232.1251078; Wed, 13 Nov 2024 09: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 1tBA7w-0007kp-Ao; Wed, 13 Nov 2024 09:57:32 +0000
Received: by outflank-mailman (input) for mailman id 835232;
 Wed, 13 Nov 2024 09: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBA7v-0007kh-ES
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 09:57: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 b117ffe5-a1a5-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 10:57:28 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-431548bd1b4so57293735e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 01:57: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
 ffacd0b85a97d-381edc1104asm18189442f8f.88.2024.11.13.01.57.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 01:57: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: b117ffe5-a1a5-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIxMTdmZmU1LWExYTUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkxODQ4LjcxNTE0NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731491848; x=1732096648; 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=B4yA3WAckbrae0zRpCXLMgdsh5evfosnQnPssYVwpOM=;
        b=A6lap5NE4ZUFywpBWt/zfkJLhvaRWMm5mD4871hJ0iksnMh4+BvNIywFbKfY6C3mjn
         94q8MszladW2mU3ppO6c2fdQ8Rdnu1pkgpRRlyELYOuEfuK1VAGyZlBEQpWVZ9hGgvJi
         jnLgCYxrQ84SkrgCDzrsm6mvPoYp3IjnwnBpj/u2VDFVU/hmrGAKO1c6Sb6UwPk86FSO
         T6/C6hS7zsC2ZJcJny4fF8vmbGnaGYjofWnozykfewA9rpqpci0TXRHqdY/ZvVs3ljW5
         +KJr3dfDJhTVMU2+TVh9J74TF064AgBrigUo9m41yag8YnSzm5dX3pPpxcC2Xq7be/+7
         eTbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731491848; x=1732096648;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B4yA3WAckbrae0zRpCXLMgdsh5evfosnQnPssYVwpOM=;
        b=PvVs4neuM2LwtPjmLv3p8imB/qKznn7UEyrcVarHK7Vs4y6Ng+9qjfEXiPOuTyudyH
         TS0JfOW3te8vPVnLPv5P0abM8+t1pJjHZ8LpvI9KeML5TiIaZaniMFuvWha7ndUjgDEK
         0N0xAJBYV9PW0BtwfT2SU85z7XRsqP6Its+C+Fk8R5asY5pfVBGWf0P93dkhzziHS4sL
         Tq+EI2RuQKvYz8nCiJ7NhDn1qFE6pSYWDG+VzBCqs0F1Fd4ebyPRb1hFQ8kTd9Wrw7dr
         LYPh9CB2CNN20jGjcygiWHY85a4Nx/L5czkgEAUe11XZNAt9FqegYhhIz3q5ZnF3gijy
         jHjQ==
X-Forwarded-Encrypted: i=1; AJvYcCUCDdHjzAReQX8cF1QYfUaM7HdVpEdR61LnhAm2h0WYyDb86cubp3DYwv25VsXQ5bo2lU/83ug7i2I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywqj2RWGP5vA/HDMk0n+smSE1Dc5kjXqHCi5J8heEsIOKuTJVSe
	Llq2+uh6kurt1q7tH0Haxlu/K/PDzfsPCKMeqcG1Dv97KMJ3P05o5bfn3CbRJw==
X-Google-Smtp-Source: AGHT+IF7r7vkBJAb/wezQn3Pw5t8y1v5s2mwFCfejGGzKHfIq2T9GeJq6SqtaSkt4EZNkeh8vM9MfQ==
X-Received: by 2002:a05:6000:1f8c:b0:37d:2edd:b731 with SMTP id ffacd0b85a97d-381f186cce9mr15481375f8f.30.1731491847941;
        Wed, 13 Nov 2024 01:57:27 -0800 (PST)
Message-ID: <016ab4be-b6b5-4bee-be80-11579f3d8146@suse.com>
Date: Wed, 13 Nov 2024 10:57:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 3/3] automation/eclair: tag Rule 16.3 as clean
To: Federico Serafini <federico.serafini@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1731485149.git.federico.serafini@bugseng.com>
 <30ebf4ab10923dde132f0df60bc7445dc892affe.1731485149.git.federico.serafini@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: <30ebf4ab10923dde132f0df60bc7445dc892affe.1731485149.git.federico.serafini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 09:17, Federico Serafini wrote:
> Tag MISRA C:2012 Rule 16.3 as clean for both architectures:
> new violations will cause a failure of the CI/CD pipeline.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> ---
> No changes from v1.
> ---
>  automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Where did Stefano's (conditional) ack go?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:00:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:00:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835241.1251088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAB3-00013x-0H; Wed, 13 Nov 2024 10:00:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835241.1251088; Wed, 13 Nov 2024 10: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 1tBAB2-00013q-SG; Wed, 13 Nov 2024 10:00:44 +0000
Received: by outflank-mailman (input) for mailman id 835241;
 Wed, 13 Nov 2024 10:00: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=OMWt=SI=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tBAB0-00013j-KM
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:00:42 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20623.outbound.protection.outlook.com
 [2a01:111:f403:2417::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2176467e-a1a6-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:00:38 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by LV8PR12MB9408.namprd12.prod.outlook.com (2603:10b6:408:208::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.21; Wed, 13 Nov
 2024 10:00:33 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.013; Wed, 13 Nov 2024
 10:00: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: 2176467e-a1a6-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjIzIiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjIxNzY0NjdlLWExYTYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkyMDM4LjMxNzAxLCJzZW5kZXIiOiJqaXFpYW4uY2hlbkBhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L7mbphoorEFe6PMGyRHLPatrekP5jFhgRf3Dr02QPhsV4AvQXpAJADz+aE/SRx9QhZ24dxzPmG49VpVoKsNDNjdr4JTgTVDWvEDfPFHwTQsXbQ7fcS5InAvoRPLv1G8p6v7oo5D+rwkuHFKrp9qUsn9jF0Jjh/GE1I43ZnKL+FowrHNo/GBvVWEddxPUJoJ2zzSk3b0gUEzl59zftmONXaAeDmDnY3z7ep7f70cj7lnmreyy3KNFb9y/SfUTJehMeCxkc5TuhToAJyjFbOXdfYiEu0wdt92hj1NuTS1lxHEi+KkxhbJow8/GqVCetYVORynAFN+tQ+rV+oV62EEy0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=269Nh1SaZ7Hi3b97J6t00X4i0g2AaAf4pK9M7MzUBJ4=;
 b=DzdtXmIXn3taE3JaGWSgEkyffsrjLXDjattfIyqv8JzfafaqF6iH1W5TjXWlkem4/ciQAAMrL4HqpvCsNEOu9l7HcuWJVBwVCDnLJRg6j0eorBuDaBIIci/U68FMfHnn/PtSZsBYC2RZJULnXucQIxdZtS4egFlDpVsIYtOYkDKkNKweiFdppRTNFoajTY3GlX/YwAQRY3TcXy1qTlXE6oJ6/eYrzi7PCLFLDYYw/Nb0sajEPfwnOfNhFEzmP1XXLl5EQlXxWoPQSNDXB9r0qmKsrVi4qGbW2oVk7wHS0uHxoP/rYcnVnarRIWytUydhUkONC1eXjpe60Ng9KWlbaQ==
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=269Nh1SaZ7Hi3b97J6t00X4i0g2AaAf4pK9M7MzUBJ4=;
 b=ACJG6vHOkHIrbNovF94H40KvR0apXB57LqieIdWd8lU1saaufHNC9lw5eGrf/DIMh5YZE86ClNrjBcQb9icbdJCe5xaOEIdZFXkhIlgDWznoVKsNP3ZYDlv38i18fFUhWAWNSuzzpK01YaWpeoi4GwbqLnuOpmQHaDOBVsBiQLk=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index: AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwA=
Date: Wed, 13 Nov 2024 10:00:33 +0000
Message-ID:
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
In-Reply-To: <ZzRxqO3_GEgs7W1I@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.013)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|LV8PR12MB9408:EE_
x-ms-office365-filtering-correlation-id: ac6d911f-80a7-472a-1142-08dd03ca0385
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?aGxFa2NROTFBVzNLd3JLNEgzZzlPRW5DZVlMaWU5NzdxNlJKcnNmOENTUk1G?=
 =?utf-8?B?M1JPSncxdUhXLzdYa2NQVEJQWk95RUVGYVVQdWVYaVUwSXJwc29OSmF0VTRh?=
 =?utf-8?B?enpEdjFUN1Rlck1tV3pzeko5cmE5Z3dTL3VQdWFMb2QwQ0hDUStWNjJTUDNZ?=
 =?utf-8?B?bVpsc09PVlQ1NE5pQTh5RGtNRVRia3dtRzQzUzVSVHFlZmNva3pnMnYxQ1Rv?=
 =?utf-8?B?VzhibkpTd2JocU1OWTROSHlpdlNVMWlEbUFUY094TExxQ3JTZjRTd0dyaEo0?=
 =?utf-8?B?Y0liZFU0ejVrUnpBNGhsR1dtTnJVZEZGdVVkaW90aFY5eGx0bHVJL0lKaHNo?=
 =?utf-8?B?WW9zbDlmT3JGaksxZjU2c2pFMmVpU241K1ZPMFlvWkdXUXBJRmpCZ09wMVhy?=
 =?utf-8?B?ckFqNDY1Rlg5R3FZcTc5emZpTWRFbUdZMTl3OHVkSnRqc0JoWS92V0dDTXZj?=
 =?utf-8?B?SEFTR1hVNU9qNCtxZ25PcEQ0TkMyT2x3emF2bVRtSVBKd2k2NmVXeUtoRnJK?=
 =?utf-8?B?VkViTjllR0JCTlR1QnRnOFJ4NGRRanl0TTNpU1o3clZncnZ4L0tTbWVwQUpl?=
 =?utf-8?B?WG5DbHRHUThGZkZFQmszMEVWOGx2eHd6ejFYR0ZTQThZRGpBTHp1TjBFSFJ0?=
 =?utf-8?B?bjlUY3l6MGpESTdmSHJkQkE4c21LQXVEZG9iUWs1a1duaHJESlFXNHUwNHZQ?=
 =?utf-8?B?OHllamJYSUlGWk5QRVpCWHZld3pOZTgxSHRXdnA4d25uRURPYkp1cDZobnVG?=
 =?utf-8?B?WDI1d2U3N0wrcnZxVU1jc2xpTGVIQjFWK1d3MSttUXB0R1ZScUdxN3RGaG9a?=
 =?utf-8?B?Uk5PRXE1Q1p2Y0Irc1pDeXR4dlkrZm8zNW9HcktDcHBDUGNqaEJ2dnZpVWw0?=
 =?utf-8?B?Sy9Yd1FFK1QrdlMweldReEM4dzhCcjhqbjhTTStWVnBERDRybmpsOUtTcjVt?=
 =?utf-8?B?dVJxNE0zYUJQbjlFOUZZbHI4aGxXamNWNXlYUGJoMWJ4WExLY3pRNGswSEpZ?=
 =?utf-8?B?ZEo1dXViNlQxVGFLaTdjcFo1eE9pSStQNDdVVHJqL3BraFVSQ0pSbDBOeXBx?=
 =?utf-8?B?NXAybUUwK2VDdk5wcmlXVGpPUHpSdC8vQzMvc2xGTFFJRkl0SU5uL29HQlRF?=
 =?utf-8?B?Qjl1bkhZRS9FSXlmTVExYmYwSkRsQU84MGdpWWRQYlZJbEIvZklNZUVCcDVF?=
 =?utf-8?B?bkh4VVRIRHZFUCt2elNuRlprUFVJZy9oZG1pZzZSeEVxZjRXVUpvRVZ5WWYz?=
 =?utf-8?B?dW9vWlVYU05MQnBtRXRlZUl2NlUwT3Q4TUJFSGtyalVLeXZ6UHRSdDUrZVJN?=
 =?utf-8?B?RUxkYlo2NmdNN1VjSU4vc1hFUzRXZGZkNVBqU0RZelM4dzhDY2lWWnNjc2N5?=
 =?utf-8?B?eVkzQlJDUVNWMUd1bStFOHNIeVBLQmpob3BVOGxMVmdhMmJoQW5aSnVUbGFL?=
 =?utf-8?B?SzN4R0VoYzVhZlgyUm83UXFpUTVrL2xrUFdPeU0yU09iSExjWlpzTDVDVjZC?=
 =?utf-8?B?b0F4WmNrYmIzTVcrZkZKUjdVRFFweHFVUHZMSFI1anhmaTh2aXR2UUZUN0VG?=
 =?utf-8?B?RXArbjY1QWpOYXl0ckJXOW5EdUJFaDgzTkd3ZWgveWpHeENERFdRc3NKbkZ3?=
 =?utf-8?B?dXluVFF3S2dhTFhGMDdyNnF0Y25FdHE3aExQWXFOUDRoOG5YandweUxBZHBx?=
 =?utf-8?B?aUEwREFUT1pNeC9icENhbnpmZjUvb0V2NU4rMHpURHdKUDRFczBjNTFMeWpX?=
 =?utf-8?B?czVOU2I1a05nSzRxaERlR3V3M2NLalAyZktlYk12WmZnVm9HbTd0QlZDZkhO?=
 =?utf-8?Q?m9B+XZGpyJAMxTQQUmtPk/8dYpQbRo0UWnBmM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RCtHeXpSYU1pL1YvdURTK3pkWnZEWU9yMGVDZVFaQXU3S1JrdXZwdEY4blFB?=
 =?utf-8?B?UWszazJPbFd4WlRaYnloUDFPVjRHZEoxWUN0eHJXY21vWGhoS3RzUFE1d3hT?=
 =?utf-8?B?MjBpbVNVdHVwUElGSUcraXhrRVVqRExrZ2RRMHlRVndIdDlFejlCcHFqcVpn?=
 =?utf-8?B?MmNaeHdEMFhHdUpvZXhYUlhTNXdNK1VvUEIxZjgwcUlVUmlBU3V1czFJUGJj?=
 =?utf-8?B?SU5iUTZJVnpoZHNkZ0dSMGZMTGlvU0FxSi9uWkZ6ZDdNbDgxS1grT0Q4T1Q2?=
 =?utf-8?B?VDRZY056QUZTaG1ETzJiS0prWDBVK0NVOGwveFFXOCtUa2N3NFYyTWhWR21V?=
 =?utf-8?B?dm1TTmh1R2N5amY5c3J4MGxPQy9sWmdjdHlvQXpBcmVPaURSTXE3SlZ2ekZS?=
 =?utf-8?B?ZUZKSnFmMkFXOThieVhhSElUczdON1Z6OHh0ZGJSSUtqZ3MrOTZ4S2ZpUWx0?=
 =?utf-8?B?dXM3S1JzcHdJem9LQUNEVVFPRTdqcndValgxUVBTc1JuOHJmNG0wM2JCdlBa?=
 =?utf-8?B?SlhpTjhqcXU3OTJFTEo2M2RlOVpWNDRNd2JOWk4ybkFscWtqWS8yeGZwZGp2?=
 =?utf-8?B?QjlxVHc3WFJWV29jaXVHYWZybnh0b1RCbmNFdFRtZjZwaWRVZlREYzFPVDRv?=
 =?utf-8?B?N2l1ZDJUcG01Rm1uUkFHeTBVUUNSTmo5dFZOT3lYUjBZMitNR0QyT0RzNzhI?=
 =?utf-8?B?MUh2ODQ2cTlWSWVzRTVCSTd6TTlQYjhxc0NwWVNsZUdYTnRFQlQzWVBwZHpJ?=
 =?utf-8?B?UXUzZFNOM2l0L1ZzWm4reXlVMC9iRTNqNTFQaCt2ZHRza09lRDBZRFp3OWpB?=
 =?utf-8?B?ekQvSDVROWl0dHFOaE5DeHBwYURzYnppQ2lSemx0SUpxQWsyalJGV3BoanVU?=
 =?utf-8?B?dnB5cWhoSnNzbDBGOHg3c1ljaFRwUndscXJHWlIwWkRQdTdIWlpXV2N2Nm9Z?=
 =?utf-8?B?enZtMFh5aXVHTy9WTFBXa0ZwOWFlQnR0R2lNaXdPYkRHVjZsbGRXSnVpbzJu?=
 =?utf-8?B?RHhuM2hDRUNScURBQzFsRlRkMXFpLzg5T1VSWmpWMDR2ZmRjdEdjN1JQVGJ5?=
 =?utf-8?B?NnNRUDBHcTI4eUFSbloyd2hSejU5UWdSUzA1OENtbXVhV2I0cCtWRkY5clVt?=
 =?utf-8?B?WlF3SVRqWHRqYkc0VW9BRjk2L0ZveHJldmt1S2tBWTBuZkFkVkNrWGRiWUZR?=
 =?utf-8?B?aTRKKytjT2p5ZjBhblFQa1BCTFZCelVaSXRhTlY5bnRaamtDVDdkN2FnWWZX?=
 =?utf-8?B?MzNqMmExOVAwcnJhb2dPR2gzekxQeHlPQlplbHFUK0J1STg5anA2L2V3cXdy?=
 =?utf-8?B?UHBBZU1PSXYxN2lPZURZSElRV1kzL0FDTE01Rm5RVlQ2RmxYUjZKRFlXd0pF?=
 =?utf-8?B?c2tzMUR1a3N6eXdNOXZKeXlCSTVPTVdlU2dlWE44MHJQeG5rSFBxZTU3cmFN?=
 =?utf-8?B?TEg3T3NWbkc4aFdUVXNuSlVkOTJvT1lxRTRxeEp1alpDcXdrZVVLNFVQUUEy?=
 =?utf-8?B?c0RBUUlJQnlxTzloMStTQzFjeDZ1anliL3Jsc252dEdmV0lRNUlhRHFUUTB1?=
 =?utf-8?B?NzZETFpBWUw5UXRuUDhuamlwa09BQmNrakNzK2w4dk9WdkJycW1XZm1Na24w?=
 =?utf-8?B?S3VOQU85ZWJXYlM3Q20wYURCS1lySUJ1MmVaazJSSWl3S1ljVnpGMGQ2NE9T?=
 =?utf-8?B?RVhIOS9jTkg0aDJTM1owb2ZqcXdvQ2hlb1A5cUROeVNsZ1BxVldWeU9ObkVX?=
 =?utf-8?B?OE5PSzE1Q3VSajVCS3B1RU5taXFLQU5uLzQ1VjJVcWZzdGhUdkx2TStxVnA1?=
 =?utf-8?B?em9jMUtEQTRqY1VmUnlDTm9rKytwcnFydHVFZW9oeEx0ZURzdGU1OVRwaWl2?=
 =?utf-8?B?OE43emQ3UDRRSjN2dHhXcnRiVWpMU1JqR3NmT0JsSkFiL0J2VkJySkd0citF?=
 =?utf-8?B?UXI3K3M0ckhmZDV0cWlnYmo0dkcxYmhsUnNvdkJwamZ0S3diQjg1TFcrTDlu?=
 =?utf-8?B?cHlTaEVyNTFSUUpyODlySDc3UVg1ZXRDVmpRRDJEcjROczRkYXJhSnRvaGJu?=
 =?utf-8?B?L0lyVXg1aWZwcHlzajRrTm0ra3d5cDFlanZlZS81UkJpWlhnYytBWUR3M2pX?=
 =?utf-8?Q?4aI4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <54A4D84A0FC45A46BB300BFF649C3B9D@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ac6d911f-80a7-472a-1142-08dd03ca0385
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2024 10:00:33.3789
 (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: ChWx8aHOTggqDzA/tIYHYsXCYoMyDFH1KqXkenJjRxG3yKTgIGoqX0jKtbMyPARFaqAtxOBrGYcOS2eQ/vpCCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9408

T24gMjAyNC8xMS8xMyAxNzozMCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBO
b3YgMTMsIDIwMjQgYXQgMDQ6MDA6MjdQTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBT
b21lIGRldmljZXMsIGxpa2UgZGlzY3JldGUgR1BVIG9mIGFtZCwgc3VwcG9ydCByZXNpemFibGUg
YmFyIGNhcGFiaWxpdHksDQo+PiBidXQgdnBjaSBvZiBYZW4gZG9lc24ndCBzdXBwb3J0IHRoaXMg
ZmVhdHVyZSwgc28gdGhleSBmYWlsIHRvIHJlc2l6ZSBiYXJzDQo+PiBhbmQgdGhlbiBjYXVzZSBw
cm9iaW5nIGZhaWx1cmUuDQo+Pg0KPj4gQWNjb3JkaW5nIHRvIFBDSWUgc3BlYywgZWFjaCBiYXIg
dGhhdCBzdXBwb3J0IHJlc2l6aW5nIGhhcyB0d28gcmVnaXN0ZXJzLA0KPj4gUENJX1JFQkFSX0NB
UCBhbmQgUENJX1JFQkFSX0NUUkwsIHNvIGFkZCB0aGVzZSB0d28gcmVnaXN0ZXJzIGFuZCB0aGVp
cg0KPj4gY29ycmVzcG9uZGluZyBoYW5kbGVyIGludG8gdnBjaS4NCj4+DQo+PiBQQ0lfUkVCQVJf
Q0FQIGlzIFJPLCBvbmx5IHByb3ZpZGUgcmVhZGluZy4NCj4+DQo+PiBQQ0lfUkVCQVJfQ1RSTCBv
bmx5IGhhcyBiYXIgc2l6ZSBpcyBSVywgc28gYWRkIHdyaXRlIGZ1bmN0aW9uIHRvIHN1cHBvcnQN
Cj4+IHNldHRpbmcgdGhlIG5ldyBzaXplLg0KPiANCj4gSSB0aGluayB0aGUgbG9naWMgdG8gaGFu
ZGxlIHJlc2l6YWJsZSBCQVIgY291bGQgYmUgbXVjaCBzaW1wbGVyLiAgU29tZQ0KPiB0aW1lIGFn
byBJJ3ZlIG1hZGUgYSBwYXRjaCB0byBhZGQgc3VwcG9ydCBmb3IgaXQsIGJ1dCBkdWUgdG8gbGFj
ayBvZg0KPiBoYXJkd2FyZSBvbiBteSBzaWRlIHRvIHRlc3QgaXQgSSd2ZSBuZXZlciBzdWJtaXR0
ZWQgaXQuDQo+IA0KPiBNeSBhcHByb2FjaCB3b3VsZCBiZSB0byBkZXRlY3QgdGhlIHByZXNlbmNl
IG9mIHRoZQ0KPiBQQ0lfRVhUX0NBUF9JRF9SRUJBUiBjYXBhYmlsaXR5IGluIGluaXRfaGVhZGVy
KCksIGFuZCBpZiB0aGUNCj4gY2FwYWJpbGl0eSBpcyBwcmVzZW50IGZvcmNlIHRoZSBzaXppbmcg
b2YgQkFScyBlYWNoIHRpbWUgdGhleSBhcmUNCj4gbWFwcGVkIGluIG1vZGlmeV9iYXJzKCkuICBJ
IGRvbid0IHRoaW5rIHdlIG5lZWQgdG8gdHJhcCBhY2Nlc3NlcyB0bw0KPiB0aGUgY2FwYWJpbGl0
eSBpdHNlbGYsIGFzIHJlc2l6aW5nIGNhbiBvbmx5IGhhcHBlbiB3aGVuIG1lbW9yeQ0KPiBkZWNv
ZGluZyBpcyBub3QgZW5hYmxlZCBmb3IgdGhlIGRldmljZS4gIEl0J3MgZW5vdWdoIHRvIGZldGNo
IHRoZSBzaXplDQo+IG9mIHRoZSBCQVJzIGFoZWFkIG9mIGVhY2ggZW5hYmxpbmcgb2YgbWVtb3J5
IGRlY29kaW5nLg0KPiANCj4gTm90ZSB0aGF0IG1lbW9yeSBkZWNvZGluZyBpbXBsaWVzIG1hcHBp
bmcgdGhlIEJBUnMgaW50byB0aGUgcDJtLCB3aGljaA0KPiBpcyBhbHJlYWR5IGFuIGV4cGVuc2l2
ZSBvcGVyYXRpb24sIHRoZSBleHRyYSBzaXppbmcgaXMgdW5saWtlbHkgdG8NCj4gbWFrZSBtdWNo
IG9mIGEgZGlmZmVyZW5jZSBwZXJmb3JtYW5jZSB3aXNlLg0KPiANCj4gSSd2ZSBmb3VuZCB0aGUg
Zm9sbG93aW5nIG9uIG15IGdpdCB0cmVlIGFuZCByZWJhc2VkIG9uIHRvcCBvZiBzdGFnaW5nOg0K
T0suDQpEbyB5b3UgbmVlZCBtZSB0byB2YWxpZGF0ZSB5b3VyIHBhdGNoIGluIG15IGVudmlyb25t
ZW50Pw0KQW5kIEkgaGF2ZSBvbmUgcXVlc3Rpb246IHdoZXJlIGRvZXMgeW91ciBwYXRjaCBkbyB3
cml0aW5nIHRoZSByZXNpemluZyBzaXplIGludG8gaGFyZHdhcmU/DQoNCj4gDQo+IGRpZmYgLS1n
aXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIu
Yw0KPiBpbmRleCBlZjZjOTY1YzA4MWMuLjA0NWFhNGJkYWRjOCAxMDA2NDQNCj4gLS0tIGEveGVu
L2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5j
DQo+IEBAIC0zNTYsNiArMzU2LDMwIEBAIHN0YXRpYyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3Ry
dWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90IGNtZCwgYm9vbCByb21fb25seSkNCj4gIA0KPiAg
ICAgICAgICBBU1NFUlQocmFuZ2VzZXRfaXNfZW1wdHkoYmFyLT5tZW0pKTsNCj4gIA0KPiArICAg
ICAgICBpZiAoIGJhci0+dHlwZSAhPSBWUENJX0JBUl9ST00gJiYgaGVhZGVyLT5iYXJzX3Jlc2l6
YWJsZSAmJg0KPiArICAgICAgICAgICAgIChjbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkpICkNCj4g
KyAgICAgICAgew0KPiArICAgICAgICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsNCj4gKw0KPiAr
ICAgICAgICAgICAgcGNpX3NpemVfbWVtX2JhcihwZGV2LT5zYmRmLCBQQ0lfQkFTRV9BRERSRVNT
XzAgKyBpICogNCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZHIsICZzaXpl
LCAwKTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKCBiYXItPmFkZHIgIT0gYWRkciApDQo+ICsg
ICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUg0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAiJXBwOiBCQVIjJXUgYWRkcmVzcyBtaXNtYXRjaCAlI2x4IHZzICUjbHhcbiIsDQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBpLCBiYXItPmFkZHIsIGFkZHIpOw0K
PiArDQo+ICsgICAgICAgICAgICBpZiAoIGJhci0+c2l6ZSAhPSBzaXplICkNCj4gKyAgICAgICAg
ICAgIHsNCj4gKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgIiVwcDogZGV0ZWN0ZWQgQkFSIyV1IHNpemUgY2hhbmdlICglI2x4
IC0+ICUjbHgpXG4iLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgaSwg
YmFyLT5zaXplLCBzaXplKTsNCj4gKyAgICAgICAgICAgICAgICBiYXItPnNpemUgPSBzaXplOw0K
PiArICAgICAgICAgICAgICAgIGVuZCA9IFBGTl9ET1dOKGJhci0+YWRkciArIHNpemUgLSAxKTsN
Cj4gKyAgICAgICAgICAgICAgICBlbmRfZ3Vlc3QgPSBQRk5fRE9XTihiYXItPmd1ZXN0X2FkZHIg
KyBzaXplIC0gMSk7DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgIH0NCj4gKw0KPiAgICAg
ICAgICAvKg0KPiAgICAgICAgICAgKiBNYWtlIHN1cmUgdGhhdCB0aGUgZ3Vlc3Qgc2V0IGFkZHJl
c3MgaGFzIHRoZSBzYW1lIHBhZ2Ugb2Zmc2V0DQo+ICAgICAgICAgICAqIGFzIHRoZSBwaHlzaWNh
bCBhZGRyZXNzIG9uIHRoZSBob3N0IG9yIG90aGVyd2lzZSB0aGluZ3Mgd29uJ3Qgd29yayBhcw0K
PiBAQCAtODcwLDYgKzg5NCw5IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9oZWFkZXIoc3Ry
dWN0IHBjaV9kZXYgKnBkZXYpDQo+ICAgICAgaWYgKCBwZGV2LT5pZ25vcmVfYmFycyApDQo+ICAg
ICAgICAgIHJldHVybiAwOw0KPiAgDQo+ICsgICAgaGVhZGVyLT5iYXJzX3Jlc2l6YWJsZSA9IHBj
aV9maW5kX2V4dF9jYXBhYmlsaXR5KHBkZXYtPnNiZGYsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9FWFRfQ0FQX0lEX1JFQkFSKTsN
Cj4gKw0KPiAgICAgIGNtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfQ09NTUFO
RCk7DQo+ICANCj4gICAgICAvKg0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3BjaV9y
ZWdzLmggYi94ZW4vaW5jbHVkZS94ZW4vcGNpX3JlZ3MuaA0KPiBpbmRleCAyNTBiYTEwNmRiZDMu
LmM1NDNhMmI4Njc3OCAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmgN
Cj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmgNCj4gQEAgLTQ1OSw2ICs0NTksNyBA
QA0KPiAgI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9BUkkJMTQNCj4gICNkZWZpbmUgUENJX0VYVF9D
QVBfSURfQVRTCTE1DQo+ICAjZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX1NSSU9WCTE2DQo+ICsjZGVm
aW5lIFBDSV9FWFRfQ0FQX0lEX1JFQkFSCTIxDQo+ICANCj4gIC8qIEFkdmFuY2VkIEVycm9yIFJl
cG9ydGluZyAqLw0KPiAgI2RlZmluZSBQQ0lfRVJSX1VOQ09SX1NUQVRVUwk0CS8qIFVuY29ycmVj
dGFibGUgRXJyb3IgU3RhdHVzICovDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vdnBj
aS5oIGIveGVuL2luY2x1ZGUveGVuL3ZwY2kuaA0KPiBpbmRleCA0MWU3YzNiYzI3OTEuLjQ1ZWJj
MWJiMzM1NiAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaA0KPiArKysgYi94
ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQo+IEBAIC0xMjksNiArMTI5LDggQEAgc3RydWN0IHZwY2kg
ew0KPiAgICAgICAgICAgKiB1cG9uIHRvIGtub3cgd2hldGhlciBCQVJzIGFyZSBtYXBwZWQgaW50
byB0aGUgZ3Vlc3QgcDJtLg0KPiAgICAgICAgICAgKi8NCj4gICAgICAgICAgYm9vbCBiYXJzX21h
cHBlZCAgICAgIDogMTsNCj4gKyAgICAgICAgLyogRGV2aWNlIGhhcyB0aGUgUmVzaXphYmxlIEJB
UnMgY2FwYWJpbGl0eS4gKi8NCj4gKyAgICAgICAgYm9vbCBiYXJzX3Jlc2l6YWJsZSAgIDogMTsN
Cj4gICAgICAgICAgLyogRklYTUU6IGN1cnJlbnRseSB0aGVyZSdzIG5vIHN1cHBvcnQgZm9yIFNS
LUlPVi4gKi8NCj4gICAgICB9IGhlYWRlcjsNCj4gIA0KDQotLSANCkJlc3QgcmVnYXJkcywNCkpp
cWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:06:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:06:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835250.1251099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAGW-0002Ec-Jn; Wed, 13 Nov 2024 10:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835250.1251099; Wed, 13 Nov 2024 10: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 1tBAGW-0002EV-FC; Wed, 13 Nov 2024 10:06:24 +0000
Received: by outflank-mailman (input) for mailman id 835250;
 Wed, 13 Nov 2024 10:06: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=J1S2=SI=bugseng.com=simone.ballarin@srs-se1.protection.inumbo.net>)
 id 1tBAGV-0002EK-DE
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:06:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ede9b2e1-a1a6-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 11:06:20 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 179A04EE073E;
 Wed, 13 Nov 2024 11:06: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: ede9b2e1-a1a6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImVkZTliMmUxLWExYTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkyMzgwLjIxNTEzNywic2VuZGVyIjoic2ltb25lLmJhbGxhcmluQGJ1Z3NlbmcuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731492379; bh=4w3bymbj2uzWTW8o86tZ2iAyUxs6jDF0t7Vn7aPn+z8=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=IwUzvQf2C7LDkd/5JPcRDchhyTngj9NS6ZFM3RsBl51yibqemBQ3vIM4ChUWr+1Oi
	 sOhyw2YvhawLKLgOXVBUmvB0590PiOr4P6D+VfvZpU3FJyiNAtO4lDjOlAFTqIqR5I
	 NclDmf2W4B28UUpe7i115UnUnz+Doai/6aNJvRp2cr2M27CdH1Nz70o58dXyVvGKa+
	 GeSNHCYL1XyVSOsVibAYW0sebGBk+AwVabsCMmECPuO1JNuAHxddEoc7u1vL5YsZP6
	 wJf/cMPdOajChc3hC5O+ccY6YDmpLoz+IGCEWhkpjf81wrNSv3wgOXvQwF5pKCDoED
	 RMU7/v+ta898Q==
MIME-Version: 1.0
Date: Wed, 13 Nov 2024 11:06:19 +0100
From: Simone Ballarin <simone.ballarin@bugseng.com>
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Doug Goldstein
 <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>
Subject: Re: [PATCH] xen: add deviations for MISRA C 2012 Rule R5.4
In-Reply-To: <255ae80cc8b95f33daa7534c9552c571391cf689.1731490650.git.alessandro.zucchelli@bugseng.com>
References: <255ae80cc8b95f33daa7534c9552c571391cf689.1731490650.git.alessandro.zucchelli@bugseng.com>
Message-ID: <7d71921015db07f690f3e6fd76c4d2c8@bugseng.com>
X-Sender: simone.ballarin@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-11-13 10:38, Alessandro Zucchelli wrote:
> This addresses violations of MISRA C:2012 Rule 5.4 which states as
> following: Macro identifiers shall be distinct.
> 
> This deviation aims to address violations of Rule 5.4 regarding
> identifiers XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list and
> XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list, and identifiers
> declared in header file include/asm/guest/hyperv-tlfs.h.
> 
> No functional change.
> 
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 9 +++++++++
>  docs/misra/deviations.rst                        | 8 ++++++++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
> b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 2f58f29203..9e780e4465 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -98,6 +98,15 @@ it defines would (in the common case) be already 
> defined. Peer reviewed by the c
>  -config=MC3R1.R5.3,reports+={safe, 
> "any_area(any_loc(any_exp(macro(^read_debugreg$))&&any_exp(macro(^write_debugreg$))))"}
>  -doc_end
> 
> +-doc_begin="Identifiers declared in the following header file should 
> not be changed, therefore they are excluded from compliance with this 
> rule."
> +-config=MC3R1.R5.4,reports+={safe, 
> "any_area(any_loc(file(^xen/arch/x86/include/asm/guest/hyperv-tlfs\\.h$)))"}
> +-doc_end
> +
> +-doc_begin="The following macro identifiers should not be changed, 
> therefore they are excluded from compliance with this rule."
> +-config=MC3R1.R5.4,ignored_macros+=^XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list$
> +-config=MC3R1.R5.4,ignored_macros+=^XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list$
> +-doc_end
> +
>  -doc_begin="Macros expanding to their own identifier (e.g., \"#define 
> x x\") are deliberate."
>  -config=MC3R1.R5.5,reports+={deliberate, 
> "all_area(macro(same_id_body())||!macro(!same_id_body()))"}
>  -doc_end
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 15a993d050..2ce1c8e58a 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -109,6 +109,14 @@ Deviations related to MISRA C:2012 Rules:
>           - __emulate_2op and __emulate_2op_nobyte
>           - read_debugreg and write_debugreg
> 
> +   * - R5.4
> +     - Macros XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list and
> +       XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list should 
> not be
> +       changed, and are therefore ignored by the ECLAIR.
> +       Identifiers in header file 
> xen/arch/x86/include/asm/guest/hyperv-tlfs.halder
                                                                          
        ^ typo here
I think it is preferable to cite the actual source of those constants, 
but on the other hand, there is a link at the top of the cited header.

> +       shall not be changed.
> +     - Tagged as `safe` for ECLAIR.
> +
>     * - R5.5
>       - Macros expanding to their own name are allowed.
>       - Tagged as `deliberate` for ECLAIR.


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:15:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:15:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835258.1251108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAP8-0004Nw-CF; Wed, 13 Nov 2024 10:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835258.1251108; Wed, 13 Nov 2024 10:15: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 1tBAP8-0004Np-98; Wed, 13 Nov 2024 10:15:18 +0000
Received: by outflank-mailman (input) for mailman id 835258;
 Wed, 13 Nov 2024 10:15: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=DKyd=SI=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBAP6-0004Nj-Fw
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:15:16 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20626.outbound.protection.outlook.com
 [2a01:111:f403:2606::626])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a768e5d-a1a8-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 11:15:11 +0100 (CET)
Received: from AM6P194CA0095.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::36)
 by AM7PR08MB5365.eurprd08.prod.outlook.com (2603:10a6:20b:109::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Wed, 13 Nov
 2024 10:15:07 +0000
Received: from AM4PEPF00025F96.EURPRD83.prod.outlook.com
 (2603:10a6:209:8f:cafe::90) by AM6P194CA0095.outlook.office365.com
 (2603:10a6:209:8f::36) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17 via Frontend
 Transport; Wed, 13 Nov 2024 10:15:07 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00025F96.mail.protection.outlook.com (10.167.16.5) with
 Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.1 via
 Frontend Transport; Wed, 13 Nov 2024 10:15:07 +0000
Received: ("Tessian outbound 860cf2c1e826:v490");
 Wed, 13 Nov 2024 10:15:06 +0000
Received: from L5984f6c60f3e.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 447CC59F-6DD1-4B17-ADC5-F75D4BACB537.1; 
 Wed, 13 Nov 2024 10:14:58 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L5984f6c60f3e.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 Nov 2024 10:14:58 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by AS2PR08MB10321.eurprd08.prod.outlook.com (2603:10a6:20b:5e4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Wed, 13 Nov
 2024 10:14:52 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.013; Wed, 13 Nov 2024
 10:14: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: 2a768e5d-a1a8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwNjo6NjI2IiwiaGVsbyI6IkVVUjAyLUFNMC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjJhNzY4ZTVkLWExYTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkyOTExLjM1NjE1Niwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=YR7fAcKAGkNV/TjplHdM//lRAmp7cnlTsEC94EuLzKbJevfplgrA4GaHPhfXlbXu/GO+XfaCaLPM2U84ZfuzfySEIAH2azEuLy1sgzSo0vHuqyrinaZClIycpC/t32Mkd69BWkgKJ+TXVzTmEFvqFunPcIr+CBPEgD19BEq+mytfWJZlqIJK+TJIlShrIBMhq5geQAXIGYnxJHbmy8K5rWuENENJxYEnCWJ8X1YiAlhpOQzQh9qEKjcbtichSHQIRouBMDnCxNNkY27uhr0YH1AoysxMglaUnLdEYC+1xFsUveXYGmuWN/Au2MgfpUQnhKMy8hkDAjadms1EEUunFw==
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=xx12dp2gMou03yYYP/XFki/VVIVbniq2YRuI9Mj5z94=;
 b=qt7l57lp5FwF4z398qREII9m2NadteXVIcj5qsktYUsMJKUM8MNa5MJ35hJHF3GhQQFKeIFrKpxFsY2OPoDSqKGT8Qa4bPuxKF/yuGmdUBL74w4n9x75XkMXy10gEdTpxYlliMQmEzRzFw3sMIwIcOKZwPshuijj33Rn1G4byBXBOCUr+DQYNWMblXam289kWa/sDcmngnWc8/xdBOkkBkFKfoLxxmgHVs9W6tRQ4Lh2uPLuofmVPHamXrCR3y1lH9KLIQoYlKUHMEfuKwZfSvI9Mu+XB3XfKDz6RToxzDafrzM1MgbYgMNjwNLKKihJsr/O06P1v8w9teayjNhwcQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=xx12dp2gMou03yYYP/XFki/VVIVbniq2YRuI9Mj5z94=;
 b=ZUJwADUUXzEXlgDrj5xMOmhXTON+lNhEQWktn4SyDqQhVVcnvDNzIfBSpNqbx7YBHeUiOFZsDLj9YNrpApT9TDKi11tqJpY0+OQpoyX8AQlsVtSbzCwHd6hVWZhSqn3CWKjTos2LIaM/5o0FEWwLs35Szo2DkjDLjqarbGXHZGU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 6d4ace07f8bcf593
X-TessianGatewayMetadata: ueMb9BKhHoCziVE6DvsEwTl5v+O/Fq1oFbSrTjDVE9wUvCXK7rX4XGWso0V9Tzx+CY1IMxmTOwmbfA30+qp0f//93Wh5CpmydKMSHjsbV20ZlWIxXKYsN8n11ufJBmGw4NcH8te0TfVPkiQt4tzv68nyW5GwV6T/u6eKW/lJXt0=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WEfrNTNLpYdgdFxB1u6FVLLK0X+r7mw14jVHbvrermgJwsP4CI5LgSKyu0ua3NaTeG36f/qw59WnYGhthekv+f1L1xqMO0FN6BjsJLcOEulxI6Ifux+dJLZJAAsZNYeyOcw6Adl0XFkb7LhiIEx/eHSLNxU8EhepPH+UrcT44bIv2YKI7RO8dv1oc0zg6v3yJzKhXcCRyTln5OhLMcEHoDqPUzSkFN3vIFU1PO9UztotoIf+OSNu9k8LD5RsWtQTdF77U3gJIoPblAxFGBmr6jZHulCMbLTW7CghZubfeSQ7NlrMm7M+NSE3NkNIB2UhLRdbdaGj/qN47TGFnNeBig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xx12dp2gMou03yYYP/XFki/VVIVbniq2YRuI9Mj5z94=;
 b=fY7+9opyivRWH5Rif0UWAIDNKvI14Gk41dY+bPBsq/z6qbQSYWXcb9ERKt5T11MriKELohA9kU/F6v3QAJfE/W7eP3gthxT2jw6cZDe/z1FcNy0eXkfqpIesJ9mnN4ZixDqGbgzqDkUoBCEzDbWDdiPzp7OCW29+Lq+a7w5FcCnYmhwuExrWsljFQxvYxnJXiqTDPIWSUPklu2sGd9W9KxFk33c/Go98ODZ2mXMdx1KlVAzu1w2neRUoFE+4XXvbBId9/mnQ/LbedMb+VhWsGq1U3Il1hy3CdKdlMwMZBv+FBwxPhH/LOrwzcXjrPyElExUEF1s0Rlq1LCcJhloVgg==
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=xx12dp2gMou03yYYP/XFki/VVIVbniq2YRuI9Mj5z94=;
 b=ZUJwADUUXzEXlgDrj5xMOmhXTON+lNhEQWktn4SyDqQhVVcnvDNzIfBSpNqbx7YBHeUiOFZsDLj9YNrpApT9TDKi11tqJpY0+OQpoyX8AQlsVtSbzCwHd6hVWZhSqn3CWKjTos2LIaM/5o0FEWwLs35Szo2DkjDLjqarbGXHZGU=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Kelly Choi <kelly.choi@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [ARM] preparations for 4.19.1
Thread-Topic: [ARM] preparations for 4.19.1
Thread-Index: AQHbNbTgNRvdpigHGEmv1MoPEjZo0A==
Date: Wed, 13 Nov 2024 10:14:51 +0000
Message-ID: <FD24D223-1EDF-414F-BA41-112A72F894CD@arm.com>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <4aa24b39-5734-4b0a-8969-dc3eb4942975@amd.com>
 <718c2a9c-15b0-4f21-941a-5094c06787c7@xen.org>
In-Reply-To: <718c2a9c-15b0-4f21-941a-5094c06787c7@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|AS2PR08MB10321:EE_|AM4PEPF00025F96:EE_|AM7PR08MB5365:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c17e963-52fd-4d6b-d014-08dd03cc0c47
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|8096899003|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?aRhq08Gjg1smiOa6zMl3IVOxiVUYqdl3bvNVsaFS3KilWKMNha5GxQqAjOGP?=
 =?us-ascii?Q?k3+22XXaFr2EtXZdob+btJli9XQjCLH+Le/+pVSXwTc80RvjyputuWemocyG?=
 =?us-ascii?Q?4fsWDX0TzU1wDKJbosVdzWhmb974VAPYokLClEDIBYk6LQpmLAZymrOOhTL0?=
 =?us-ascii?Q?U+3q9vc6b8a8KzUykwpRu+AKlUUINESmRVgumXI44Dbc2WlPPdMDfoMliYnY?=
 =?us-ascii?Q?TXxo57NMI/woOuFDi34zAaWF0u+8i+QqgiDPCKibmxZK9z39O+OM7lo1w2jM?=
 =?us-ascii?Q?moiHTFcP1D+/vP5xKqsDL0K/yMp10HdLiePHyo6q1+xCtq1+cnNlS7mKxdDJ?=
 =?us-ascii?Q?5RI5WR8lbl0glpOHDJ+mUCOJNqMUD61k2wm5tIx2FIgW2HN+vnmEeTscoeYH?=
 =?us-ascii?Q?Q6y+re57P9QyNAavNeN4ABfe0Ssqy4SdUmbtnR6zTnGZf/Q/4CrDTSWVoBXg?=
 =?us-ascii?Q?710YuafkJIm3jkU8XpHn9P+dXSrYqD/k2pLLzkMIaf8bgMbimVBdW8PmqeX5?=
 =?us-ascii?Q?uxD4eLnfyuKHJ7YjdYfnTay/I76lp4k+T05nwvMX/A0C6SOigBJBRW8aKEfI?=
 =?us-ascii?Q?EL7OGE0EYqrKft9O2YBFbumT1kgrByVqiAhy5eS5xFYzxcpL9eZGgkufDz/g?=
 =?us-ascii?Q?jbMV5wapGBDVuE9fKaUZyJkcBNjpyaf5eoiOowXMCcnWLUFEh9YL1hgCE/or?=
 =?us-ascii?Q?3Lc1a0afagwZXd2hvj3f+7KqNtBM+26E1tZJNBsCSGcigSeyIWu70EDAKVRa?=
 =?us-ascii?Q?P7NJVH3FNB0dq3qSWNaD2R4ZKWVKjTy5W1w9UUmioj9scSXkGjKXc4FiPJO6?=
 =?us-ascii?Q?H6PPKW9eSaBCA8ynYZvP/71tnU9d6SGIOWWrTRE2iTWuAUQI7zOEIMrS9kQJ?=
 =?us-ascii?Q?0A4hiTVvLnVvygHZx6BB97kj/2QFsPCgWZMo8dCktLvRx/wz7Kq+8DelmlNj?=
 =?us-ascii?Q?aL9WeIGHgxdZqfCN54CpySzoEPaHtE7rQ4MPGMIdSid77rIgU2N0jEyhJbSf?=
 =?us-ascii?Q?j6ibBU5G/FEBfXnUXtOZz0i88oJYLTXOKvwv6yXV2CKPRDA0ri5OyqtEjMqx?=
 =?us-ascii?Q?RH+8mUOBHRfzeyE6FQR1kXTtPNJ8nmzxzGuoiuGVDHPygmwHFK9AKcCWe4aw?=
 =?us-ascii?Q?7V1vHVP2JTYAa4oyHtwmhAkF4khEeW+iFFwFOWgA/jqIjyDDwFXZivV9zboN?=
 =?us-ascii?Q?20YU/E9+w6LxwWA8KeV+wDdbr3WJ/7jel04rK0cRrpo3ZckXhENteuGh4tjw?=
 =?us-ascii?Q?NZraeR09LHhzbXicSChp49yHqtpAVRtS5QA8THBpQtKWinceIAjB0C5U5a9y?=
 =?us-ascii?Q?5y1fs+643+9NwAHOeFoQlkPtatJHeMC2uZoLMIcRMEsbhjEy8TkDJbLHbeIX?=
 =?us-ascii?Q?4NTUNPKLJ4xq1NS3jBsQr7hrZF+O?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(8096899003)(38070700018);DIR:OUT;SFP:1101;
Content-Type: multipart/alternative;
	boundary="_000_FD24D2231EDF414FBA41112A72F894CDarmcom_"
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10321
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F96.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9ddaf0c5-a481-44c0-1208-08dd03cc02d1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|1800799024|376014|35042699022|4076899003|8096899003;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?nbBrDG2Wg0EkaqigcUOaPZh6Ht0U6SRg8jODWnGRw7ecnabIkdAzHb8c/hBH?=
 =?us-ascii?Q?r0uXU51lxKGEj/B2X6fxFqMTsbRNSPFO6zw4dp+2ugoVnFoif0iR8s6xa37R?=
 =?us-ascii?Q?bRYtLk72k7JxnNZjT2s/JGx8UFdZDmt1dIP4r5S5VJ/wOSSpa8kVu8lT3YZI?=
 =?us-ascii?Q?NvKyMbBUG+MoSNZV7QfLfrcQiNFvDvzQyUG/7eM2PUkoMwVll1D6F3VH9fIP?=
 =?us-ascii?Q?QMzRbHHp+w6t/Pyb6ZQgWqhOTcZoslU/ISSqvk4LtR5+R8drd/K9aIK2eCYl?=
 =?us-ascii?Q?jJUEJlr8cnU84RCoGbudrPebONqzzPSZxtzzmJhCAyfUDUzb8pOJORwba8Hs?=
 =?us-ascii?Q?EUZps+69sBoGOsZh6fvmAcF+6OjzS8cZfzpqgccsge7lph1+Cli0wEn6ukbB?=
 =?us-ascii?Q?bITIM67/J+1VjWIC3rhQuUIBBJ/O0axY78Elq6lwNfkykjhXOld/jPZ88tOO?=
 =?us-ascii?Q?lW42nqUdqB9BBdQ6+5ugylZx7Ci60jQWkaLCp0HaryN7uYPPZgNLXnvQZUjK?=
 =?us-ascii?Q?KnVHomyPYayfZuYDtbxj7zqzDfDK1DGXNt9YkbFqumVXiII5Fk4WjAcpr4hz?=
 =?us-ascii?Q?dV/lGMSEPOGIIuRf2d0w6n6dRNnte1wEY70WC1xT++Rv2bw87Ln7R6jDIB4a?=
 =?us-ascii?Q?tx7AyRo2E7mfPTbvaDaNq045XNMyoHP0Azu0kIyi5IEFAYtodzch3o17xSVE?=
 =?us-ascii?Q?6Afjia9flSWFrQMaA7BnolHNVnhyobAOvgn2YKG8QY0mTFGUNSl68/y1AXtY?=
 =?us-ascii?Q?PjZX4MM9bWpja4lTQUldfRKcctOoH1W7Vti2l/PxHuj0Bq1+hQybyVBGYCNp?=
 =?us-ascii?Q?n7yRgbt+Pi22kwKLR9hALbU2qQS2S/9BnPqztAxayiUT3TKzOePoczP/WzWI?=
 =?us-ascii?Q?WGD/j6mnW4c5B0fmr9Eo1tIxD4l5D39Ho34q6un+dCrhhhCEi6OG/eJ5fjNZ?=
 =?us-ascii?Q?kHuS3+NGUwBPY+cIEGRXt11CFPfXRuo90gW4+SHW35RHdhqMuPz+cDv+9g/C?=
 =?us-ascii?Q?zMfxsKj5DWgYY+w41JsWARFpMvsh94r57BeOueKpxdwx7WOQTC8i+9VwgL6c?=
 =?us-ascii?Q?Bo47YowWIYW2AVG37lcEF3MX+G1PdDumyKApNAZUhyF0ckIs/RoZGnHkaDlG?=
 =?us-ascii?Q?gB+XX2BEAZ2y3HaEAznXCGc9hL2hktGV5w8M/gQ6KGn8LnV+G6f0cFxw8IPz?=
 =?us-ascii?Q?P4tKmST75x/I2P73imoGr5sFNbnTsPuILeYLVwwu7oQG0b118WTe6EN7qvMa?=
 =?us-ascii?Q?ydiF4LXx6fCVVF3kJ910QBNQOMIy1O4qlXjC0AnQHtznXQLib1YgvJfgSdFG?=
 =?us-ascii?Q?r8DGnNQM/zj/zcdv7fp+vl5upNb9vmGBjGqVHNJAaKPVShskRl5f94qAqtlI?=
 =?us-ascii?Q?MeObfucNfj14ylfZVSOTBe1c7IH2liSA4c016YzPnVsYKff74f01Bo7fv5zB?=
 =?us-ascii?Q?kzdMrL7fL0E=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(36860700013)(14060799003)(82310400026)(1800799024)(376014)(35042699022)(4076899003)(8096899003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2024 10:15:07.0098
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c17e963-52fd-4d6b-d014-08dd03cc0c47
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F96.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5365

--_000_FD24D2231EDF414FBA41112A72F894CDarmcom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

On 12 Nov 2024, at 16:11, Julien Grall <julien@xen.org> wrote:

Hi,

On 12/11/2024 16:00, Stewart Hildebrand wrote:
On 11/12/24 08:00, Jan Beulich wrote:
All,

the release is due by the end of the month. Please point out backports you =
find
missing from the respective staging branch, but which you consider relevant=
.

Advance notice: 4.18.4 ought to follow about two weeks later.

Jan

Looking for Julien's input on this one:
35c64c3dce01 ("xen/arm64: entry: Actually skip do_trap_*() when an SError i=
s triggered")
As mentioned in the post-commit notes [0] it's a candidate for backport.

In the past, Stefano handled backports for Arm. I am not sure if this is st=
ill case. Stefano?

[0] https://lore.kernel.org/xen-devel/20240806124815.53492-1-julien@xen.org=
/

Cheers,

--
Julien Grall



Regarding back porting to the 4.19, there is a regression for Arm discussed=
 in the ML and on Matrix, do we want to address it now?

<https://patchwork.kernel.org/project/xen-devel/patch/302647e409d91ea7ed39e=
568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com/>
[v5,1/3] xen/device-tree: Let DT reserve map entries overlap reserved-memor=
y - Patchwork<https://patchwork.kernel.org/project/xen-devel/patch/302647e4=
09d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineerin=
g.com/>
patchwork.kernel.org<https://patchwork.kernel.org/project/xen-devel/patch/3=
02647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptoreng=
ineering.com/>
[X]<https://patchwork.kernel.org/project/xen-devel/patch/302647e409d91ea7ed=
39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com/>


<https://patchwork.kernel.org/project/xen-devel/patch/20241106134132.218549=
2-1-luca.fancellu@arm.com/>
xen/device-tree: Allow exact match for overlapping regions - Patchwork<http=
s://patchwork.kernel.org/project/xen-devel/patch/20241106134132.2185492-1-l=
uca.fancellu@arm.com/>
patchwork.kernel.org<https://patchwork.kernel.org/project/xen-devel/patch/2=
0241106134132.2185492-1-luca.fancellu@arm.com/>
[X]<https://patchwork.kernel.org/project/xen-devel/patch/20241106134132.218=
5492-1-luca.fancellu@arm.com/>


Cheers,
Luca

--_000_FD24D2231EDF414FBA41112A72F894CDarmcom_
Content-Type: text/html; charset="us-ascii"
Content-ID: <8AC5EBD7DAC1554097B4C4AF44826FC2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
</head>
<body style=3D"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-br=
eak: after-white-space;">
Hi all,<br id=3D"lineBreakAtBeginningOfMessage">
<div><br>
<blockquote type=3D"cite">
<div>On 12 Nov 2024, at 16:11, Julien Grall &lt;julien@xen.org&gt; wrote:</=
div>
<br class=3D"Apple-interchange-newline">
<div>
<div>Hi,<br>
<br>
On 12/11/2024 16:00, Stewart Hildebrand wrote:<br>
<blockquote type=3D"cite">On 11/12/24 08:00, Jan Beulich wrote:<br>
<blockquote type=3D"cite">All,<br>
<br>
the release is due by the end of the month. Please point out backports you =
find<br>
missing from the respective staging branch, but which you consider relevant=
.<br>
<br>
Advance notice: 4.18.4 ought to follow about two weeks later.<br>
<br>
Jan<br>
<br>
</blockquote>
Looking for Julien's input on this one:<br>
35c64c3dce01 (&quot;xen/arm64: entry: Actually skip do_trap_*() when an SEr=
ror is triggered&quot;)<br>
As mentioned in the post-commit notes [0] it's a candidate for backport.<br=
>
</blockquote>
<br>
In the past, Stefano handled backports for Arm. I am not sure if this is st=
ill case. Stefano?<br>
<br>
<blockquote type=3D"cite">[0] https://lore.kernel.org/xen-devel/20240806124=
815.53492-1-julien@xen.org/<br>
</blockquote>
<br>
Cheers,<br>
<br>
-- <br>
Julien Grall<br>
<br>
<br>
</div>
</div>
</blockquote>
</div>
<br>
<div>Regarding back porting to the 4.19, there is a regression for Arm disc=
ussed in the ML and on Matrix, do we want to address it now?</div>
<div><br>
</div>
<div>
<div style=3D"display: block;">
<div style=3D"-webkit-user-select: all; -webkit-user-drag: element; display=
: inline-block;" class=3D"apple-rich-link" draggable=3D"true" role=3D"link"=
 data-url=3D"https://patchwork.kernel.org/project/xen-devel/patch/302647e40=
9d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering=
.com/">
<a style=3D"border-radius:10px;font-family:-apple-system, Helvetica, Arial,=
 sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:=
none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;te=
xt-decoration:none;" class=3D"lp-rich-link" rel=3D"nofollow" href=3D"https:=
//patchwork.kernel.org/project/xen-devel/patch/302647e409d91ea7ed39e568dade=
edc572976c3b.1727388925.git.sanastasio@raptorengineering.com/" dir=3D"ltr" =
role=3D"button" draggable=3D"false" width=3D"300">
<table style=3D"table-layout:fixed;border-collapse:collapse;width:300px;bac=
kground-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, sans-ser=
if;" class=3D"lp-rich-link-emailBaseTable" cellpadding=3D"0" cellspacing=3D=
"0" border=3D"0" width=3D"300">
<tbody>
<tr>
<td vertical-align=3D"center">
<table bgcolor=3D"#E5E6E9" cellpadding=3D"0" cellspacing=3D"0" width=3D"300=
" style=3D"table-layout:fixed;font-family:-apple-system, Helvetica, Arial, =
sans-serif;background-color:rgba(229, 230, 233, 1);" class=3D"lp-rich-link-=
captionBar">
<tbody>
<tr>
<td style=3D"padding:8px 0px 8px 0px;" class=3D"lp-rich-link-captionBar-tex=
tStackItem">
<div style=3D"max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" cla=
ss=3D"lp-rich-link-captionBar-textStack">
<div style=3D"word-wrap:break-word;font-weight:500;font-size:12px;overflow:=
hidden;text-overflow:ellipsis;text-align:left;" class=3D"lp-rich-link-capti=
onBar-textStack-topCaption-leading">
<a rel=3D"nofollow" href=3D"https://patchwork.kernel.org/project/xen-devel/=
patch/302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@ra=
ptorengineering.com/" style=3D"text-decoration: none" draggable=3D"false"><=
font color=3D"#272727" style=3D"color: rgba(0, 0, 0, 0.847059);">[v5,1/3]
 xen/device-tree: Let DT reserve map entries overlap reserved-memory - Patc=
hwork</font></a></div>
<div style=3D"word-wrap:break-word;font-weight:400;font-size:11px;overflow:=
hidden;text-overflow:ellipsis;text-align:left;" class=3D"lp-rich-link-capti=
onBar-textStack-bottomCaption-leading">
<a rel=3D"nofollow" href=3D"https://patchwork.kernel.org/project/xen-devel/=
patch/302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@ra=
ptorengineering.com/" style=3D"text-decoration: none" draggable=3D"false"><=
font color=3D"#808080" style=3D"color: rgba(0, 0, 0, 0.498039);">patchwork.=
kernel.org</font></a></div>
</div>
</td>
<td style=3D"padding:0px 12px 0px 0px;" class=3D"lp-rich-link-captionBar-ri=
ghtIconItem" width=3D"30">
<a rel=3D"nofollow" href=3D"https://patchwork.kernel.org/project/xen-devel/=
patch/302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@ra=
ptorengineering.com/" draggable=3D"false"><img src=3D"data:image/png;base64=
,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAQAAAD/5HvMAAANBGlDQ1BrQ0dDb2xvclNwYWNlR2=
VuZXJpY0dyYXlHYW1tYTJfMgAAWIWlVwdck9cWv9/IAJKwp4ywkWVAgQAyIjOA7CG4iEkggRBiB=
gLiQooVrFscOCoqilpcFYE6UYtW6satD2qpoNRiLS6svpsEEKvte+/3vvzud//fPefcc8495557=
A4DuRo5EIkIBAHliuTQikZU+KT2DTroHyMAYaAN3oM3hyiSs+PgYyALE+WI++OR5cQMgyv6am3K=
uT+n/+BB4fBkX9idhK+LJuHkAIOMBIJtxJVI5ABqT4LjtLLlEiUsgNshNTgyBeDnkoQzKKh+rCL=
6YLxVy6RFSThE9gpOXx6F7unvS46X5WULRZ6z+f588kWJYN2wUWW5SNOzdof1lPE6oEvtBfJDLC=
UuCmAlxb4EwNRbiYABQO4l8QiLEURDzFLkpLIhdIa7PkoanQBwI8R2BIlKJxwGAmRQLktMgNoM4=
Jjc/WilrA3GWeEZsnFoX9iVXFpIBsRPELQI+WxkzO4gfS/MTlTzOAOA0Hj80DGJoB84UytnJg7h=
cVpAUprYTv14sCIlV6yJQcjhR8RA7QOzAF0UkquchxEjk8co54TehQCyKjVH7RTjHl6n8hd9Esl=
yQHAmxJ8TJcmlyotoeYnmWMJwNcTjEuwXSyES1v8Q+iUiVZ3BNSO4caViEek1IhVJFYoraR9J2v=
jhFOT/MEdIDkIpwAB/kgxnwzQVi0AnoQAaEoECFsgEH5MFGhxa4whYBucSwSSGHDOSqOKSga5g+=
JKGUcQMSSMsHWZBXBCWHxumAB2dQSypnyYdN+aWcuVs1xh3U6A5biOUOoIBfAtAL6QKIJoIO1Ug=
htDAP9iFwVAFp2RCP1KKWj1dZq7aBPmh/z6CWfJUtnGG5D7aFQLoYFMMR2ZBvuDHOwMfC5o/H4A=
E4QyUlhRxFwE01Pl41NqT1g+dK33qGtc6Eto70fuSKDa3iKSglh98i6KF4cH1k0Jq3UCZ3UPovf=
i43UzhJJFVLE9jTatUjpdLpQu6lZX2tJUdNAP3GkpPnAX2vTtO5YRvp7XjjlGuU1pJ/iOqntn0c=
1biReaPKJN4neQN1Ea4SLhMeEK4DOux/JrQTuiG6S7gHf7eH7fkQA/XaDOWE2i4ugg3bwIKaRSp=
qHmxCFY9sOB4KiOXwnaWSdvtLLCI+8WgkPX9YezZs+X+1YTBj+Cr9nM+uz/+yQ0asZJZ4uZlEMq=
22ZIAvUa+HMnb8RbEvYkGpK2M/o5exnbGX8Zzx4EP8GDcZvzLaGVsh5Qm2CjuMHcOasGasDdDhV=
zN2CmtSob3YUfg78Dc7IvszO0KZYdzBHaCkygdzcOReGekza0Q0lPxDa5jzN/k9MoeUa/nfWTRy=
no8rCP/DLqXZ0jxoJJozzYvGoiE0a/jzpAVDZEuzocXQjCE1kuZIC6WNGpF36oiJBjNI+FE9UFu=
cDqlDmSZWVSMO5FRycAb9/auP9I+8VHomHJkbCBXmhnBEDflc7aJ/tNdSoKwQzFLJy1TVQaySk3=
yU3zJV1YIjyGRVDD9jG9GP6EgMIzp+0EMMJUYSw2HvoRwnjiFGQeyr5MItcQ+cDatbHKDjLNwLD=
x7E6oo3VPNUUcWDIDUQD8WZyhr50U7g/kdPR+5CeNeQ8wvlyotBSL6kSCrMFsjpLHgz4tPZYq67=
K92T4QFPROU9S319eJ6guj8hRm1chbRAPYYrXwSgCe9gBsAUWAJbeKq7QV0+wB+es2HwjIwDyTC=
y06B1AmiNFK5tCVgAykElWA7WgA1gC9gO6kA9OAiOgKOwKn8PLoDLoB3chSdQF3gC+sALMIAgCA=
mhIvqIKWKF2CMuiCfCRAKRMCQGSUTSkUwkGxEjCqQEWYhUIiuRDchWpA45gDQhp5DzyBXkNtKJ9=
CC/I29QDKWgBqgF6oCOQZkoC41Gk9GpaDY6Ey1Gy9Cl6Dq0Bt2LNqCn0AtoO9qBPkH7MYBpYUaY=
NeaGMbEQLA7LwLIwKTYXq8CqsBqsHlaBVuwa1oH1Yq9xIq6P03E3GJtIPAXn4jPxufgSfAO+C2/=
Az+DX8E68D39HoBLMCS4EPwKbMImQTZhFKCdUEWoJhwlnYdXuIrwgEolGMC98YL6kE3OIs4lLiJ=
uI+4gniVeID4n9JBLJlORCCiDFkTgkOamctJ60l3SCdJXURXpF1iJbkT3J4eQMsphcSq4i7yYfJ=
18lPyIPaOho2Gv4acRp8DSKNJZpbNdo1rik0aUxoKmr6agZoJmsmaO5QHOdZr3mWc17ms+1tLRs=
tHy1ErSEWvO11mnt1zqn1an1mqJHcaaEUKZQFJSllJ2Uk5TblOdUKtWBGkzNoMqpS6l11NPUB9R=
XNH2aO41N49Hm0appDbSrtKfaGtr22iztadrF2lXah7QvaffqaOg46ITocHTm6lTrNOnc1OnX1d=
f10I3TzdNdortb97xutx5Jz0EvTI+nV6a3Te+03kN9TN9WP0Sfq79Qf7v+Wf0uA6KBowHbIMeg0=
uAbg4sGfYZ6huMMUw0LDasNjxl2GGFGDkZsI5HRMqODRjeM3hhbGLOM+caLjeuNrxq/NBllEmzC=
N6kw2WfSbvLGlG4aZpprusL0iOl9M9zM2SzBbJbZZrOzZr2jDEb5j+KOqhh1cNQdc9Tc2TzRfLb=
5NvM2834LS4sIC4nFeovTFr2WRpbBljmWqy2PW/ZY6VsFWgmtVludsHpMN6Sz6CL6OvoZep+1uX=
WktcJ6q/VF6wEbR5sUm1KbfTb3bTVtmbZZtqttW2z77KzsJtqV2O2xu2OvYc+0F9ivtW+1f+ng6=
JDmsMjhiEO3o4kj27HYcY/jPSeqU5DTTKcap+ujiaOZo3NHbxp92Rl19nIWOFc7X3JBXbxdhC6b=
XK64Elx9XcWuNa433ShuLLcCtz1une5G7jHupe5H3J+OsRuTMWbFmNYx7xheDBE83+566HlEeZR=
6NHv87unsyfWs9rw+ljo2fOy8sY1jn41zGccft3ncLS99r4lei7xavP709vGWetd79/jY+WT6bP=
S5yTRgxjOXMM/5Enwn+M7zPer72s/bT+530O83fzf/XP/d/t3jHcfzx28f/zDAJoATsDWgI5Aem=
Bn4dWBHkHUQJ6gm6Kdg22BecG3wI9ZoVg5rL+vpBMYE6YTDE16G+IXMCTkZioVGhFaEXgzTC0sJ=
2xD2INwmPDt8T3hfhFfE7IiTkYTI6MgVkTfZFmwuu47dF+UTNSfqTDQlOil6Q/RPMc4x0pjmiej=
EqImrJt6LtY8Vxx6JA3HsuFVx9+Md42fGf5dATIhPqE74JdEjsSSxNUk/aXrS7qQXyROSlyXfTX=
FKUaS0pGqnTkmtS32ZFpq2Mq1j0phJcyZdSDdLF6Y3ZpAyUjNqM/onh01eM7lriteU8ik3pjpOL=
Zx6fprZNNG0Y9O1p3OmH8okZKZl7s58y4nj1HD6Z7BnbJzRxw3hruU+4QXzVvN6+AH8lfxHWQFZ=
K7O6swOyV2X3CIIEVYJeYYhwg/BZTmTOlpyXuXG5O3Pfi9JE+/LIeZl5TWI9ca74TL5lfmH+FYm=
LpFzSMdNv5pqZfdJoaa0MkU2VNcoN4J/SNoWT4gtFZ0FgQXXBq1mpsw4V6haKC9uKnIsWFz0qDi=
/eMRufzZ3dUmJdsqCkcw5rzta5yNwZc1vm2c4rm9c1P2L+rgWaC3IX/FjKKF1Z+sfCtIXNZRZl8=
8sefhHxxZ5yWrm0/OYi/0VbvsS/FH55cfHYxesXv6vgVfxQyaisqny7hLvkh688vlr31fulWUsv=
LvNetnk5cbl4+Y0VQSt2rdRdWbzy4aqJqxpW01dXrP5jzfQ156vGVW1Zq7lWsbZjXcy6xvV265e=
vf7tBsKG9ekL1vo3mGxdvfLmJt+nq5uDN9VsstlRuefO18OtbWyO2NtQ41FRtI24r2PbL9tTtrT=
uYO+pqzWora//cKd7ZsStx15k6n7q63ea7l+1B9yj29OydsvfyN6HfNNa71W/dZ7Svcj/Yr9j/+=
EDmgRsHow+2HGIeqv/W/tuNh/UPVzQgDUUNfUcERzoa0xuvNEU1tTT7Nx/+zv27nUetj1YfMzy2=
7Ljm8bLj708Un+g/KTnZeyr71MOW6S13T086ff1MwpmLZ6PPnvs+/PvTrazWE+cCzh0973e+6Qf=
mD0cueF9oaPNqO/yj14+HL3pfbLjkc6nxsu/l5ivjrxy/GnT11LXQa99fZ1+/0B7bfuVGyo1bN6=
fc7LjFu9V9W3T72Z2COwN358OLfcV9nftVD8wf1Pxr9L/2dXh3HOsM7Wz7Kemnuw+5D5/8LPv5b=
VfZL9Rfqh5ZParr9uw+2hPec/nx5MddTyRPBnrLf9X9deNTp6ff/hb8W1vfpL6uZ9Jn739f8tz0=
+c4/xv3R0h/f/+BF3ouBlxWvTF/tes183fom7c2jgVlvSW/X/Tn6z+Z30e/uvc97//7fCQ/4Yk7=
kYoUAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAAEigAwAEAA=
AAAQAAAEgAAAAAs/lk1QAAB7NJREFUaAXtWd+LVVUU/ubeuTNNWmKRoD45gpEZlKCixNRQEmkiT=
CEKvuT0BxQSvUQp9BYlvfWQCQWNNgSZoGMq/gqhlwgM0R4SXxQtxhwdx2l+nL5vrbPnnHvvuXfu=
j/Ht7sM95+x91v72t9dee6299wVaqaWBlgZaGmhpoEgDbUW5RjJt8AuI4qsRlJk6jRNqQzvypDD=
FK4rx2liSJ8EpTM6UzTT1MF/a0UU61dLsEhVq16+hdhQwZmgFPM2rG4uxAPNYMoo7uIG/cIXXhE=
l08TlZoeUKxfUS6orJbMAmvIiVeCoD929cwi84igsxKaefIdhsUTs6DaIPR3AvNuAJ6mWUJP3S+=
0T85R6l+ky+c5bhbZCXk1nPnvtsGsVI/BZmV/IcITHPHcX6mFSNzdY6ZD5Un2A3HiHyXXSYtu7i=
N/xBq7lFAqAdLaJFrcJqPMbcOP6z5wN8hg+ZD4PN1+bTo4R4Eies1/fj3p9EP1aQWGnqYGk/Tpr=
sKO7b8wRrA0KZkySg5Zw5GoS7dh/Cy8ilsNuYy9H/JClHiaFUjStEmCNKXQRajmsEnzLdDGP7TL=
tyg3mj4t46Z/n8zPftGGa9UXOd14yS0JpKMuUncJmwk5xJEc5hieHJJ6c1UtxI8nUJzrLWmHnuy=
0RCPFOL5WvOuTc+Tsgpo3PQamqAKpNJwKUvpYNGSQHmuOWr+3gTqXSTfvYQSGqPMGBi1TSTxtFQ=
IqY0ECNERGtCRxrvNUZFpnyGudCAvVa5ycSVFszInCGCUEaJKBfQQHJ1HyGIpu4/jFi10JFxe1q=
L7+mJvmRGQ7SYCI50xD4nhu/SNdzViy2Ytl5F2MZcdcsJqyJBr8dPrKdr2Byp9LUtRpomagM6cs=
M7TJA7/B1VK/Ew2GvJLW3mPTjGGhG7ongnDbk1wYKO0A5bbW+hBKhyVvpZZ9HqASF6mEsGo7hWM=
sWBjfiZ0nIR4+Z7Ii5PvCMayB5+EdoIkevUURvXPMBeVtbsOpGaLywuSskwborDxQQb1UCr6f2U=
dWvRPWfBR4h7mSvMWFsRYHZGdAo4zaqK6LtMKBhruobPpQK2mmxEIx4zMhowkVpFYZfx2rtixNP=
WYbVSY1JEfxY3WV2UVjCXNSu8qT4uxiQXgq7e5ZsjfMN6STeEsMI6GHF1IKpqpcYkh9hHSC22zl=
hELyfkdPZRQs1LH9Ox3civK/88UYoJdRDNUd/kN7VSlhy2uFi7BnBlAw4BcNHuxRJqSDuNrXiXp=
MfYV+U116ZNcJzvA/i9tBKRLrJMqMv4m6JUWapMyIMocNXqhI1OAMiRQI50QEJdGMRmvIEfmBOl=
yPr+OXNO2+s4gqPBQnQmIRcuvvvw7CewfPROAy7ui7uAzfw6zp/HOGEMMjdtM3PQINO1vM5OSgh=
V8y/TMrM1JGFtbJS0OE0Dq8x7/h7fCiTwNZ8LeQEH2JT8ErCPv7R+mDUUoSnNt3spLguzCJmsVf=
e30rs3tBGv0HraYqsJblP5TgaOC6yU0VwpVHk+i5CP9r1YWJoqtSDld1t5xND5Nt+GecHeNCFK7=
YdFTKoV9O7opbgUyIooUrtimEMssqeMOJ168BoDRBf1kccOfjjA3zt4iwM8j7HsLHM5m6tJHdel=
o8HQS4fUZLMJ5dnYjRhrmT0T9TvMByydZHfypJQjpW3sRM7ouH6CA4hB+HAERwOusyRfQjmRLXu=
TD63kGAW8gfqaJBX3yu4Gp+M960eGVm4KMnV3jDoZ0Z420zFa7bLbbKHjR0IqOPilia5QGnHz/K=
phldPxKR5Cx00GprpCR3Fw7bdGXOVqai2bDvqZolfR8l2rnJdMLnvmeu1+yilc1x1cdRiVLD9Om=
nNwdylCcn/SiHYiPmyD8Q5eZLK04/rJ2QKloeWHL5+SBVovaaiPIrWaVLS48FWP/LSWW0rppZqX=
hLt7qd64Iw0s0II7CEvYIUP23n9H2HAYM0B6ntKL2EAjebrWhliz4SWs6yhZ5MvXSD/zLRLJZr6=
1NY0aDV5a71nJv+9gHQ1Xg4t8bx6cNz6fbmMp25JlfYF/8RWesZbVlJtrFpFQpo4sxe0YqeFtkO=
so2SiejymE6VrJfAON8BQd4DzpNLlRFIxc18eEcmUfUpFpKWxsrKDKzSM/cChGiIhWl0MsxfbAo=
n2WHzY4pdp0k5i56IyZtzpmDThqaVs15qWjhTxVDccx582Wqk1xAScOYKkNlh/HXLI1Ux0BI5uj=
tozdqQOr2xbdXXa2A6sdZsrhwKqblYTWdNKRXrdpKTnS6y3yyBqeZMuoBnPoLTrSu2Sbhjk9ZVw=
Y79nHzJtEOFXh0LPTDj1PcZA1FTwEH7PBqonO7F7EFeyHunvwvp2ljnD+yRayjoWfwwvxsfA4Hq=
fMfXyKPXzO6bEw8eLVyxq6Sg+otRycT1NaB1Shtr3O3S38tbCFSw0tInRNUAM6jdZfC3ob5cLEv=
4xQSidBIlPHRK91yEK3guLX4XWuf1by7L483eIEOMfToF/tU6hRLpdZUi8hxbgOakOpQPPV31NL=
Un9PXbe/p/6k5pS6uG3WLuShJ/09V/0wpUCJOgYqYVy/hkJd/4tTew8tYT3JQzf5F2fjhBJiYRH=
ixhzIhe+tZ0sDLQ20NNDSQHMa+B/RZ9GmHnkbIQAAAABJRU5ErkJggg=3D=3D" draggable=3D=
"false" style=3D"pointer-events:none !important;display:inline-block;width:=
30px;height:30px;" class=3D"lp-rich-link-captionBar-rightIcon" width=3D"30"=
 height=3D"30"></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</a></div>
</div>
<br>
</div>
<div><br>
</div>
<div>
<div style=3D"display: block;">
<div style=3D"-webkit-user-select: all; -webkit-user-drag: element; display=
: inline-block;" class=3D"apple-rich-link" draggable=3D"true" role=3D"link"=
 data-url=3D"https://patchwork.kernel.org/project/xen-devel/patch/202411061=
34132.2185492-1-luca.fancellu@arm.com/">
<a style=3D"border-radius:10px;font-family:-apple-system, Helvetica, Arial,=
 sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:=
none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;te=
xt-decoration:none;" class=3D"lp-rich-link" rel=3D"nofollow" href=3D"https:=
//patchwork.kernel.org/project/xen-devel/patch/20241106134132.2185492-1-luc=
a.fancellu@arm.com/" dir=3D"ltr" role=3D"button" draggable=3D"false" width=
=3D"300">
<table style=3D"table-layout:fixed;border-collapse:collapse;width:300px;bac=
kground-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, sans-ser=
if;" class=3D"lp-rich-link-emailBaseTable" cellpadding=3D"0" cellspacing=3D=
"0" border=3D"0" width=3D"300">
<tbody>
<tr>
<td vertical-align=3D"center">
<table bgcolor=3D"#E5E6E9" cellpadding=3D"0" cellspacing=3D"0" width=3D"300=
" style=3D"table-layout:fixed;font-family:-apple-system, Helvetica, Arial, =
sans-serif;background-color:rgba(229, 230, 233, 1);" class=3D"lp-rich-link-=
captionBar">
<tbody>
<tr>
<td style=3D"padding:8px 0px 8px 0px;" class=3D"lp-rich-link-captionBar-tex=
tStackItem">
<div style=3D"max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" cla=
ss=3D"lp-rich-link-captionBar-textStack">
<div style=3D"word-wrap:break-word;font-weight:500;font-size:12px;overflow:=
hidden;text-overflow:ellipsis;text-align:left;" class=3D"lp-rich-link-capti=
onBar-textStack-topCaption-leading">
<a rel=3D"nofollow" href=3D"https://patchwork.kernel.org/project/xen-devel/=
patch/20241106134132.2185492-1-luca.fancellu@arm.com/" style=3D"text-decora=
tion: none" draggable=3D"false"><font color=3D"#272727" style=3D"color: rgb=
a(0, 0, 0, 0.847059);">xen/device-tree: Allow
 exact match for overlapping regions - Patchwork</font></a></div>
<div style=3D"word-wrap:break-word;font-weight:400;font-size:11px;overflow:=
hidden;text-overflow:ellipsis;text-align:left;" class=3D"lp-rich-link-capti=
onBar-textStack-bottomCaption-leading">
<a rel=3D"nofollow" href=3D"https://patchwork.kernel.org/project/xen-devel/=
patch/20241106134132.2185492-1-luca.fancellu@arm.com/" style=3D"text-decora=
tion: none" draggable=3D"false"><font color=3D"#808080" style=3D"color: rgb=
a(0, 0, 0, 0.498039);">patchwork.kernel.org</font></a></div>
</div>
</td>
<td style=3D"padding:0px 12px 0px 0px;" class=3D"lp-rich-link-captionBar-ri=
ghtIconItem" width=3D"30">
<a rel=3D"nofollow" href=3D"https://patchwork.kernel.org/project/xen-devel/=
patch/20241106134132.2185492-1-luca.fancellu@arm.com/" draggable=3D"false">=
<img src=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAQAAAD/5=
HvMAAANBGlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY0dyYXlHYW1tYTJfMgAAWIWlVwdck9cWv9/I=
AJKwp4ywkWVAgQAyIjOA7CG4iEkggRBiBgLiQooVrFscOCoqilpcFYE6UYtW6satD2qpoNRiLS6=
svpsEEKvte+/3vvzud//fPefcc8495557A4DuRo5EIkIBAHliuTQikZU+KT2DTroHyMAYaAN3oM=
3hyiSs+PgYyALE+WI++OR5cQMgyv6am3KuT+n/+BB4fBkX9idhK+LJuHkAIOMBIJtxJVI5ABqT4=
LjtLLlEiUsgNshNTgyBeDnkoQzKKh+rCL6YLxVy6RFSThE9gpOXx6F7unvS46X5WULRZ6z+f588=
kWJYN2wUWW5SNOzdof1lPE6oEvtBfJDLCUuCmAlxb4EwNRbiYABQO4l8QiLEURDzFLkpLIhdIa7=
PkoanQBwI8R2BIlKJxwGAmRQLktMgNoM4Jjc/WilrA3GWeEZsnFoX9iVXFpIBsRPELQI+WxkzO4=
gfS/MTlTzOAOA0Hj80DGJoB84UytnJg7hcVpAUprYTv14sCIlV6yJQcjhR8RA7QOzAF0Ukquchx=
Ejk8co54TehQCyKjVH7RTjHl6n8hd9EslyQHAmxJ8TJcmlyotoeYnmWMJwNcTjEuwXSyES1v8Q+=
iUiVZ3BNSO4caViEek1IhVJFYoraR9J2vjhFOT/MEdIDkIpwAB/kgxnwzQVi0AnoQAaEoECFsgE=
H5MFGhxa4whYBucSwSSGHDOSqOKSga5g+JKGUcQMSSMsHWZBXBCWHxumAB2dQSypnyYdN+aWcuV=
s1xh3U6A5biOUOoIBfAtAL6QKIJoIO1UghtDAP9iFwVAFp2RCP1KKWj1dZq7aBPmh/z6CWfJUtn=
GG5D7aFQLoYFMMR2ZBvuDHOwMfC5o/H4AE4QyUlhRxFwE01Pl41NqT1g+dK33qGtc6Eto70fuSK=
Da3iKSglh98i6KF4cH1k0Jq3UCZ3UPovfi43UzhJJFVLE9jTatUjpdLpQu6lZX2tJUdNAP3GkpP=
nAX2vTtO5YRvp7XjjlGuU1pJ/iOqntn0c1biReaPKJN4neQN1Ea4SLhMeEK4DOux/JrQTuiG6S7=
gHf7eH7fkQA/XaDOWE2i4ugg3bwIKaRSpqHmxCFY9sOB4KiOXwnaWSdvtLLCI+8WgkPX9YezZs+=
X+1YTBj+Cr9nM+uz/+yQ0asZJZ4uZlEMq22ZIAvUa+HMnb8RbEvYkGpK2M/o5exnbGX8Zzx4EP8=
GDcZvzLaGVsh5Qm2CjuMHcOasGasDdDhVzN2CmtSob3YUfg78Dc7IvszO0KZYdzBHaCkygdzcOR=
eGekza0Q0lPxDa5jzN/k9MoeUa/nfWTRyno8rCP/DLqXZ0jxoJJozzYvGoiE0a/jzpAVDZEuzoc=
XQjCE1kuZIC6WNGpF36oiJBjNI+FE9UFucDqlDmSZWVSMO5FRycAb9/auP9I+8VHomHJkbCBXmh=
nBEDflc7aJ/tNdSoKwQzFLJy1TVQaySk3yU3zJV1YIjyGRVDD9jG9GP6EgMIzp+0EMMJUYSw2Hv=
oRwnjiFGQeyr5MItcQ+cDatbHKDjLNwLDx7E6oo3VPNUUcWDIDUQD8WZyhr50U7g/kdPR+5CeNe=
Q8wvlyotBSL6kSCrMFsjpLHgz4tPZYq67K92T4QFPROU9S319eJ6guj8hRm1chbRAPYYrXwSgCe=
9gBsAUWAJbeKq7QV0+wB+es2HwjIwDyTCy06B1AmiNFK5tCVgAykElWA7WgA1gC9gO6kA9OAiOg=
KOwKn8PLoDLoB3chSdQF3gC+sALMIAgCAmhIvqIKWKF2CMuiCfCRAKRMCQGSUTSkUwkGxEjCqQE=
WYhUIiuRDchWpA45gDQhp5DzyBXkNtKJ9CC/I29QDKWgBqgF6oCOQZkoC41Gk9GpaDY6Ey1Gy9C=
l6Dq0Bt2LNqCn0AtoO9qBPkH7MYBpYUaYNeaGMbEQLA7LwLIwKTYXq8CqsBqsHlaBVuwa1oH1Yq=
9xIq6P03E3GJtIPAXn4jPxufgSfAO+C2/Az+DX8E68D39HoBLMCS4EPwKbMImQTZhFKCdUEWoJh=
wlnYdXuIrwgEolGMC98YL6kE3OIs4lLiJuI+4gniVeID4n9JBLJlORCCiDFkTgkOamctJ60l3SC=
dJXURXpF1iJbkT3J4eQMsphcSq4i7yYfJ18lPyIPaOho2Gv4acRp8DSKNJZpbNdo1rik0aUxoKm=
r6agZoJmsmaO5QHOdZr3mWc17ms+1tLRstHy1ErSEWvO11mnt1zqn1an1mqJHcaaEUKZQFJSllJ=
2Uk5TblOdUKtWBGkzNoMqpS6l11NPUB9RXNH2aO41N49Hm0appDbSrtKfaGtr22iztadrF2lXah=
7QvaffqaOg46ITocHTm6lTrNOnc1OnX1df10I3TzdNdortb97xutx5Jz0EvTI+nV6a3Te+03kN9=
TN9WP0Sfq79Qf7v+Wf0uA6KBowHbIMeg0uAbg4sGfYZ6huMMUw0LDasNjxl2GGFGDkZsI5HRMqO=
DRjeM3hhbGLOM+caLjeuNrxq/NBllEmzCN6kw2WfSbvLGlG4aZpprusL0iOl9M9zM2SzBbJbZZr=
OzZr2jDEb5j+KOqhh1cNQdc9Tc2TzRfLb5NvM2834LS4sIC4nFeovTFr2WRpbBljmWqy2PW/ZY6=
VsFWgmtVludsHpMN6Sz6CL6OvoZep+1uXWktcJ6q/VF6wEbR5sUm1KbfTb3bTVtmbZZtqttW2z7=
7KzsJtqV2O2xu2OvYc+0F9ivtW+1f+ng6JDmsMjhiEO3o4kj27HYcY/jPSeqU5DTTKcap+ujiaO=
Zo3NHbxp92Rl19nIWOFc7X3JBXbxdhC6bXK64Elx9XcWuNa433ShuLLcCtz1une5G7jHupe5H3J=
+OsRuTMWbFmNYx7xheDBE83+566HlEeZR6NHv87unsyfWs9rw+ljo2fOy8sY1jn41zGccft3ncL=
S99r4lei7xavP709vGWetd79/jY+WT6bPS5yTRgxjOXMM/5Enwn+M7zPer72s/bT+530O83fzf/=
XP/d/t3jHcfzx28f/zDAJoATsDWgI5AemBn4dWBHkHUQJ6gm6Kdg22BecG3wI9ZoVg5rL+vpBMY=
E6YTDE16G+IXMCTkZioVGhFaEXgzTC0sJ2xD2INwmPDt8T3hfhFfE7IiTkYTI6MgVkTfZFmwuu4=
7dF+UTNSfqTDQlOil6Q/RPMc4x0pjmiejEqImrJt6LtY8Vxx6JA3HsuFVx9+Md42fGf5dATIhPq=
E74JdEjsSSxNUk/aXrS7qQXyROSlyXfTXFKUaS0pGqnTkmtS32ZFpq2Mq1j0phJcyZdSDdLF6Y3=
ZpAyUjNqM/onh01eM7lriteU8ik3pjpOLZx6fprZNNG0Y9O1p3OmH8okZKZl7s58y4nj1HD6Z7B=
nbJzRxw3hruU+4QXzVvN6+AH8lfxHWQFZK7O6swOyV2X3CIIEVYJeYYhwg/BZTmTOlpyXuXG5O3=
Pfi9JE+/LIeZl5TWI9ca74TL5lfmH+FYmLpFzSMdNv5pqZfdJoaa0MkU2VNcoN4J/SNoWT4gtFZ=
0FgQXXBq1mpsw4V6haKC9uKnIsWFz0qDi/eMRufzZ3dUmJdsqCkcw5rzta5yNwZc1vm2c4rm9c1=
P2L+rgWaC3IX/FjKKF1Z+sfCtIXNZRZl88sefhHxxZ5yWrm0/OYi/0VbvsS/FH55cfHYxesXv6v=
gVfxQyaisqny7hLvkh688vlr31fulWUsvLvNetnk5cbl4+Y0VQSt2rdRdWbzy4aqJqxpW01dXrP=
5jzfQ156vGVW1Zq7lWsbZjXcy6xvV265evf7tBsKG9ekL1vo3mGxdvfLmJt+nq5uDN9VsstlRue=
fO18OtbWyO2NtQ41FRtI24r2PbL9tTtrTuYO+pqzWora//cKd7ZsStx15k6n7q63ea7l+1B9yj2=
9OydsvfyN6HfNNa71W/dZ7Svcj/Yr9j/+EDmgRsHow+2HGIeqv/W/tuNh/UPVzQgDUUNfUcERzo=
a0xuvNEU1tTT7Nx/+zv27nUetj1YfMzy27Ljm8bLj708Un+g/KTnZeyr71MOW6S13T086ff1Mwp=
mLZ6PPnvs+/PvTrazWE+cCzh0973e+6QfmD0cueF9oaPNqO/yj14+HL3pfbLjkc6nxsu/l5ivjr=
xy/GnT11LXQa99fZ1+/0B7bfuVGyo1bN6fc7LjFu9V9W3T72Z2COwN358OLfcV9nftVD8wf1Pxr=
9L/2dXh3HOsM7Wz7Kemnuw+5D5/8LPv5bVfZL9Rfqh5ZParr9uw+2hPec/nx5MddTyRPBnrLf9X=
9deNTp6ff/hb8W1vfpL6uZ9Jn739f8tz0+c4/xv3R0h/f/+BF3ouBlxWvTF/tes183fom7c2jgV=
lvSW/X/Tn6z+Z30e/uvc97//7fCQ/4Yk7kYoUAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAA=
BoAAAAAAAKgAgAEAAAAAQAAAEigAwAEAAAAAQAAAEgAAAAAs/lk1QAAB7NJREFUaAXtWd+LVVUU=
/ubeuTNNWmKRoD45gpEZlKCixNRQEmkiTCEKvuT0BxQSvUQp9BYlvfWQCQWNNgSZoGMq/gqhlwg=
M0R4SXxQtxhwdx2l+nL5vrbPnnHvvuXfuj/Ht7sM95+x91v72t9dee6299wVaqaWBlgZaGmhpoE=
gDbUW5RjJt8AuI4qsRlJk6jRNqQzvypDDFK4rx2liSJ8EpTM6UzTT1MF/a0UU61dLsEhVq16+hd=
hQwZmgFPM2rG4uxAPNYMoo7uIG/cIXXhEl08TlZoeUKxfUS6orJbMAmvIiVeCoD929cwi84igsx=
KaefIdhsUTs6DaIPR3AvNuAJ6mWUJP3S+0T85R6l+ky+c5bhbZCXk1nPnvtsGsVI/BZmV/IcITH=
PHcX6mFSNzdY6ZD5Un2A3HiHyXXSYtu7iN/xBq7lFAqAdLaJFrcJqPMbcOP6z5wN8hg+ZD4PN1+=
bTo4R4Eies1/fj3p9EP1aQWGnqYGk/TprsKO7b8wRrA0KZkySg5Zw5GoS7dh/Cy8ilsNuYy9H/J=
ClHiaFUjStEmCNKXQRajmsEnzLdDGP7TLtyg3mj4t46Z/n8zPftGGa9UXOd14yS0JpKMuUncJmw=
k5xJEc5hieHJJ6c1UtxI8nUJzrLWmHnuy0RCPFOL5WvOuTc+Tsgpo3PQamqAKpNJwKUvpYNGSQH=
muOWr+3gTqXSTfvYQSGqPMGBi1TSTxtFQIqY0ECNERGtCRxrvNUZFpnyGudCAvVa5ycSVFszInC=
GCUEaJKBfQQHJ1HyGIpu4/jFi10JFxe1qL7+mJvmRGQ7SYCI50xD4nhu/SNdzViy2Ytl5F2MZcd=
csJqyJBr8dPrKdr2Byp9LUtRpomagM6csM7TJA7/B1VK/Ew2GvJLW3mPTjGGhG7ongnDbk1wYKO=
0A5bbW+hBKhyVvpZZ9HqASF6mEsGo7hWMsWBjfiZ0nIR4+Z7Ii5PvCMayB5+EdoIkevUURvXPMB=
eVtbsOpGaLywuSskwborDxQQb1UCr6f2UdWvRPWfBR4h7mSvMWFsRYHZGdAo4zaqK6LtMKBhruo=
bPpQK2mmxEIx4zMhowkVpFYZfx2rtixNPWYbVSY1JEfxY3WV2UVjCXNSu8qT4uxiQXgq7e5Zsjf=
MN6STeEsMI6GHF1IKpqpcYkh9hHSC22zlhELyfkdPZRQs1LH9Ox3civK/88UYoJdRDNUd/kN7VS=
lhy2uFi7BnBlAw4BcNHuxRJqSDuNrXiXpMfYV+U116ZNcJzvA/i9tBKRLrJMqMv4m6JUWapMyIM=
ocNXqhI1OAMiRQI50QEJdGMRmvIEfmBOlyPr+OXNO2+s4gqPBQnQmIRcuvvvw7CewfPROAy7ui7=
uAzfw6zp/HOGEMMjdtM3PQINO1vM5OSghV8y/TMrM1JGFtbJS0OE0Dq8x7/h7fCiTwNZ8LeQEH2=
JT8ErCPv7R+mDUUoSnNt3spLguzCJmsVfe30rs3tBGv0HraYqsJblP5TgaOC6yU0VwpVHk+i5CP=
9r1YWJoqtSDld1t5xND5Nt+GecHeNCFK7YdFTKoV9O7opbgUyIooUrtimEMssqeMOJ168BoDRBf=
1kccOfjjA3zt4iwM8j7HsLHM5m6tJHdelo8HQS4fUZLMJ5dnYjRhrmT0T9TvMByydZHfypJQjpW=
3sRM7ouH6CA4hB+HAERwOusyRfQjmRLXuTD63kGAW8gfqaJBX3yu4Gp+M960eGVm4KMnV3jDoZ0=
Z420zFa7bLbbKHjR0IqOPilia5QGnHz/KphldPxKR5Cx00GprpCR3Fw7bdGXOVqai2bDvqZolfR=
8l2rnJdMLnvmeu1+yilc1x1cdRiVLD9OmnNwdylCcn/SiHYiPmyD8Q5eZLK04/rJ2QKloeWHL5+=
SBVovaaiPIrWaVLS48FWP/LSWW0rppZqXhLt7qd64Iw0s0II7CEvYIUP23n9H2HAYM0B6ntKL2E=
AjebrWhliz4SWs6yhZ5MvXSD/zLRLJZr61NY0aDV5a71nJv+9gHQ1Xg4t8bx6cNz6fbmMp25Jlf=
YF/8RWesZbVlJtrFpFQpo4sxe0YqeFtkOso2SiejymE6VrJfAON8BQd4DzpNLlRFIxc18eEcmUf=
UpFpKWxsrKDKzSM/cChGiIhWl0MsxfbAon2WHzY4pdp0k5i56IyZtzpmDThqaVs15qWjhTxVDcc=
x582Wqk1xAScOYKkNlh/HXLI1Ux0BI5ujtozdqQOr2xbdXXa2A6sdZsrhwKqblYTWdNKRXrdpKT=
nS6y3yyBqeZMuoBnPoLTrSu2Sbhjk9ZVwY79nHzJtEOFXh0LPTDj1PcZA1FTwEH7PBqonO7F7EF=
eyHunvwvp2ljnD+yRayjoWfwwvxsfA4HqfMfXyKPXzO6bEw8eLVyxq6Sg+otRycT1NaB1Shtr3O=
3S38tbCFSw0tInRNUAM6jdZfC3ob5cLEv4xQSidBIlPHRK91yEK3guLX4XWuf1by7L483eIEOMf=
ToF/tU6hRLpdZUi8hxbgOakOpQPPV31NLUn9PXbe/p/6k5pS6uG3WLuShJ/09V/0wpUCJOgYqYV=
y/hkJd/4tTew8tYT3JQzf5F2fjhBJiYRHixhzIhe+tZ0sDLQ20NNDSQHMa+B/RZ9GmHnkbIQAAA=
ABJRU5ErkJggg=3D=3D" draggable=3D"false" style=3D"pointer-events:none !impo=
rtant;display:inline-block;width:30px;height:30px;" class=3D"lp-rich-link-c=
aptionBar-rightIcon" width=3D"30" height=3D"30"></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</a></div>
</div>
<br>
</div>
<div><br>
</div>
<div>Cheers,</div>
<div>Luca</div>
</body>
</html>

--_000_FD24D2231EDF414FBA41112A72F894CDarmcom_--


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:19:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:19:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835270.1251117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBASt-000523-U6; Wed, 13 Nov 2024 10:19:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835270.1251117; Wed, 13 Nov 2024 10: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 1tBASt-00051w-RJ; Wed, 13 Nov 2024 10:19:11 +0000
Received: by outflank-mailman (input) for mailman id 835270;
 Wed, 13 Nov 2024 10: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=1B9J=SI=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBASs-00051q-7i
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:19:10 +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 b61ace65-a1a8-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 11:19:06 +0100 (CET)
Received: by mail-oo1-xc2a.google.com with SMTP id
 006d021491bc7-5eba976beecso260838eaf.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:19: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: b61ace65-a1a8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMmEiLCJoZWxvIjoibWFpbC1vbzEteGMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI2MWFjZTY1LWExYTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkzMTQ2LjE5NTg5OSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731493145; x=1732097945; 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=knZ+r7FW1fRdQOwcj0H70gtW+sdrfYJ9S1JJrvE2DOw=;
        b=NvJLjJPOhW6OJXaCbKDNdc8Ru/WA03jp6vovkU9A8IIlrS6n2i/11tqXFR5I22c2a5
         G5kXTxswlb5A4KgF8416MU4+IF01XrbNryOAt7wZMV+yf06THfcmBwHr/zUZYizIuJuZ
         LhE4s7DEAfgLnw1xVauDfjhbuPzbqycFoUY/k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731493145; x=1732097945;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=knZ+r7FW1fRdQOwcj0H70gtW+sdrfYJ9S1JJrvE2DOw=;
        b=ubTwv4VYx+L3pCG1WReiAZEok9X/pGrsEKW+lHEB8iWgHplMt7qV56TGcT2X7HBjes
         XVDNtw1miqX9ML2DGa+cd3SMgsHJ94l55yaX8qztZFITVbRnlB1yg5b/ShVtw6/7eiEI
         Vw9Un6geXcwp9KOdqiv3E82ytOGgTz53HHK7MeOX+8Fo5+AbNNfm17RktAHZb8GUAQyu
         nc+p9Ou7Mlf3ATNsF19UTGqtqXN1EKvklz6Qn36dgaflFReGzg98/rXR8mz2lt110pvf
         3lvYcfxMTEjyMMfbPdeUZbOx17egZr+JdPBY5LLH/0+ceF0S0W2o7iUrjUxoCEhQ3uTA
         CnpA==
X-Gm-Message-State: AOJu0YzyDCb0ziqbFMw0zBI42TbRWJBWigQ3rrdCEPnd+TKs9fOgo+Ww
	xVBYcb5l36Gztjs2PHAZPDBAkuEduR2+40u5ddeJt0iR6DdBKq8CiuH8sTs7/V605IulLjpmOVa
	E4Mz2eRviahNkSj8SliqcIyctqis+u9H6qNDOZQ==
X-Google-Smtp-Source: AGHT+IFC3zZxJd41InJtRkHvNzLn9MKWgGVrcfW0zkwy68r/ECEtcGC0eQc+ty1eesaS2nlR/ORnCQUk+GgdKT+sm5g=
X-Received: by 2002:a05:6820:2d07:b0:5eb:6b3e:ce7f with SMTP id
 006d021491bc7-5ee585a9e78mr11196698eaf.0.1731493144747; Wed, 13 Nov 2024
 02:19:04 -0800 (PST)
MIME-Version: 1.0
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com> <20241113093058.1562447-3-andrew.cooper3@citrix.com>
In-Reply-To: <20241113093058.1562447-3-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 13 Nov 2024 10:18:53 +0000
Message-ID: <CACHz=ZjO64JZTj4sXZirLpZFDjbd6RE+HGX38Y6u_RN=Jtw9mA@mail.gmail.com>
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
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>, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, 
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 13, 2024 at 9:31=E2=80=AFAM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> The logic is far more sane to follow with a total size, and the position =
of
> the end of the heap.  Remove or fix the the remaining descriptions of how=
 the

typo: the the

> trampoline is laid out.
>
> No functional change.  The compiled binary is identical.
>
> 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>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
>  xen/arch/x86/boot/head.S          | 21 ++-------------------
>  xen/arch/x86/boot/reloc.c         |  5 ++---
>  xen/arch/x86/efi/efi-boot.h       |  2 +-
>  xen/arch/x86/include/asm/config.h |  5 +++--
>  xen/arch/x86/xen.lds.S            |  2 +-
>  5 files changed, 9 insertions(+), 26 deletions(-)
>
> diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
> index dcda91cfda49..b31cf83758c1 100644
> --- a/xen/arch/x86/boot/head.S
> +++ b/xen/arch/x86/boot/head.S
> @@ -494,7 +494,7 @@ trampoline_bios_setup:
>
>  2:
>          /* Reserve memory for the trampoline and the low-memory stack. *=
/
> -        sub     $((TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE)>>4),%ecx
> +        sub     $TRAMPOLINE_SIZE >> 4, %ecx
>
>          /* From arch/x86/smpboot.c: start_eip had better be page-aligned=
! */
>          xor     %cl, %cl
> @@ -525,23 +525,6 @@ trampoline_setup:
>          mov     %eax, sym_esi(multiboot_ptr)
>  2:
>
> -        /*
> -         * Now trampoline_phys points to the following structure (lowest=
 address
> -         * is at the bottom):
> -         *
> -         * +------------------------+
> -         * | TRAMPOLINE_STACK_SPACE |
> -         * +------------------------+
> -         * |     Data (MBI / PVH)   |
> -         * +- - - - - - - - - - - - +
> -         * |    TRAMPOLINE_SPACE    |
> -         * +------------------------+
> -         *
> -         * Data grows downwards from the highest address of TRAMPOLINE_S=
PACE
> -         * region to the end of the trampoline. The rest of TRAMPOLINE_S=
PACE is
> -         * reserved for trampoline code and data.
> -         */
> -

I fail to see a similar description somewhere now.

>          /* Interrogate CPU extended features via CPUID. */
>          mov     $1, %eax
>          cpuid
> @@ -713,7 +696,7 @@ trampoline_setup:
>  1:
>          /* Switch to low-memory stack which lives at the end of trampoli=
ne region. */
>          mov     sym_esi(trampoline_phys), %edi
> -        lea     TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE(%edi),%esp
> +        lea     TRAMPOLINE_SIZE(%edi), %esp
>          lea     trampoline_boot_cpu_entry-trampoline_start(%edi),%eax
>          pushl   $BOOT_CS32
>          push    %eax
> diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
> index e50e161b2740..1f47e10f7fa6 100644
> --- a/xen/arch/x86/boot/reloc.c
> +++ b/xen/arch/x86/boot/reloc.c
> @@ -65,7 +65,7 @@ typedef struct memctx {
>      /*
>       * Simple bump allocator.
>       *
> -     * It starts from the base of the trampoline and allocates downwards=
.
> +     * It starts from end of of the trampoline heap and allocates downwa=
rds.

Nice !
Minor typo "It starts from the end of the trampoline heap and
allocates downwards."

>       */
>      uint32_t ptr;
>  } memctx;
> @@ -349,8 +349,7 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, =
memctx *ctx)
>  /* SAF-1-safe */
>  void *reloc(uint32_t magic, uint32_t in)
>  {
> -    /* Get bottom-most low-memory stack address. */
> -    memctx ctx =3D { trampoline_phys + TRAMPOLINE_SPACE };
> +    memctx ctx =3D { trampoline_phys + TRAMPOLINE_HEAP_END };
>
>      switch ( magic )
>      {
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 7930b7c73892..9d3f2b71447e 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -633,7 +633,7 @@ static void __init efi_arch_memory_setup(void)
>      if ( efi_enabled(EFI_LOADER) )
>          cfg.size =3D trampoline_end - trampoline_start;
>      else
> -        cfg.size =3D TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
> +        cfg.size =3D TRAMPOLINE_SIZE;
>
>      status =3D efi_bs->AllocatePages(AllocateMaxAddress, EfiLoaderData,
>                                     PFN_UP(cfg.size), &cfg.addr);
> diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm=
/config.h
> index f8a5a4913b07..20141ede31a1 100644
> --- a/xen/arch/x86/include/asm/config.h
> +++ b/xen/arch/x86/include/asm/config.h
> @@ -51,8 +51,9 @@
>
>  #define IST_SHSTK_SIZE 1024
>
> -#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
> -#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
> +/* See asm/trampoline.h */

I fail to see any description and need for a heap or why the size is 64kb.
There is a description about trampoline code and wakeup code but not
the fact we copy MBI data and so we need a heap.
Stack could be just due to the need of it, so implicit, heap a bit less.

> +#define TRAMPOLINE_SIZE         KB(64)
> +#define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
>  #define WAKEUP_STACK_MIN        3072
>
>  #define MBI_SPACE_MIN           (2 * PAGE_SIZE)
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 35693f6e3380..e7d93d1f4ac3 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -410,7 +410,7 @@ ASSERT(!SIZEOF(.plt),      ".plt non-empty")
>  ASSERT(!SIZEOF(.rela),     "leftover relocations")
>  #endif
>
> -ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_SPACE - MBI_SPAC=
E_MIN,
> +ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_HEAP_END - MBI_S=
PACE_MIN,
>      "not enough room for trampoline and mbi data")
>  ASSERT((wakeup_stack - wakeup_stack_start) >=3D WAKEUP_STACK_MIN,
>      "wakeup stack too small")

Code is nice, just that documentation is stated but missing in my opinion.

Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:20:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835277.1251127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBATv-0006R1-5m; Wed, 13 Nov 2024 10:20:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835277.1251127; Wed, 13 Nov 2024 10:20: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 1tBATv-0006Qt-3E; Wed, 13 Nov 2024 10:20:15 +0000
Received: by outflank-mailman (input) for mailman id 835277;
 Wed, 13 Nov 2024 10:20: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBATt-00051q-Cx
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:20:13 +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 dc4be819-a1a8-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 11:20:09 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43193678216so63916155e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:20: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-432d54f7105sm19238865e9.13.2024.11.13.02.20.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 02:20: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: dc4be819-a1a8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRjNGJlODE5LWExYTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkzMjA5LjYzMjA0Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731493209; x=1732098009; 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=TD5npga+YVniGyfpUiI0Tvj73sA8fJ+KJi16pH5mACE=;
        b=OxwjG/4hakHBs+dpyj8dklvZMpkB/2Hiih3Yy0jVKhJdjLRYG0gzsdbp5TgKnTcgpR
         iDmhNWvf+v7fDognixYCpuq4G6t+qJosVlQV56sRRCR8l2eFyAhbwEd4vaNSHDugElQH
         6L24RXdd/alMRvNmPyPryI0DB2xAsvSHhs1v9aALugWlskZfQzU7D1dofsc4viA+Q2l8
         lPVxh0xQ/DswW6Bt8csqhcHkgha8ELXcpJJHoV7NmoDfxN6MsG5/a1xBeD8fX5Igk1z7
         2B2h7c3qGz95K/QuNuI2JFSTKBLro3KfldhFqk8SXw6s84ey8DNitbbYFwToVkZhG/tU
         kdig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731493209; x=1732098009;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TD5npga+YVniGyfpUiI0Tvj73sA8fJ+KJi16pH5mACE=;
        b=uBzgqb4JyBGLbSGpPOb2pLtGJ8PAPgVYWZHqCOTF3f14DljVKFTv8VyQvNNeZzhs8s
         XZMFM4YgitnuTzqnXbpetCdKmJOTdqXPSX9yP6YOtycd9ezHVA4mV9XFGgfgMpg0sIg+
         vmzPm7DW008AjYAedzkbG2U8pR5h5xtoXddgmBpWGvXV2Bgn9vKKznLFA7hxxkdOJdop
         xw/vps0gTpyqPjyi4lh7wtmuGCdUXMiUokBw3qac3logbw17MQcjPh0eKOM6bvPSwqUv
         RktVDjY3HOpWD9xNaCA6Bem7eSSzTaGpOijADDNBbAaXunaOgNwMCL/o0ApjdCmujNtA
         E0sA==
X-Forwarded-Encrypted: i=1; AJvYcCWJAdG2g7vPbRJShPeqLm8/oxzXpwbgvvBxYd3dX4FBtyoWb3Xd4WAp0uBMZyeuChELiTvDIzbq1ZI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuucE+bGIQeXK9FcdrqW5XInOSVnl1XbUvsshrKeviValt0hUU
	7YBIaVCcSkZa21U/nEHI5XI/ZWB9XrNMpJml/fdA7AaAvETLnR6AvD8KgYvJOw==
X-Google-Smtp-Source: AGHT+IEd7Nu3wG+gEyNktKpQRY/QD/DJFQRsQkF/hWieQJL0eX2d0XaWXx7dD4xg+90VtKU6NlNv5A==
X-Received: by 2002:a05:600c:3b9e:b0:431:3927:d1bc with SMTP id 5b1f17b1804b1-432b74fcb02mr171490155e9.2.1731493209023;
        Wed, 13 Nov 2024 02:20:09 -0800 (PST)
Message-ID: <5f58dda2-1619-4416-b711-c600367d6f47@suse.com>
Date: Wed, 13 Nov 2024 11:20:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/trampoline: Document how the trampoline is laid
 out
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-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: <20241113093058.1562447-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 10:30, Andrew Cooper wrote:
> This is, to the best of my knowledge, accurate.  I am providing no comment on
> how sane I believe it to be.
> 
> At the time of writing, the sizes of the regions are:
> 
>           offset  size
>   AP:     0x0000  0x00b0
>   S3:     0x00b0  0x0140
>   Boot:   0x01f0  0x1780
>   Heap:   0x1970  0xe690
>   Stack:  0xf000  0x1000
> 
> and wakeup_stack overlays boot_edd_info.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
>  xen/arch/x86/include/asm/trampoline.h | 55 ++++++++++++++++++++++++++-
>  1 file changed, 53 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
> index 8c1e0b48c2c9..d801bea400dc 100644
> --- a/xen/arch/x86/include/asm/trampoline.h
> +++ b/xen/arch/x86/include/asm/trampoline.h
> @@ -37,12 +37,63 @@
>   * manually as part of placement.
>   */
>  
> +/*
> + * Layout of the trampoline.  Logical areas, in ascending order:
> + *
> + * 1) AP boot:
> + *
> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
> + *    mapping (which must be executable) can at least be Read Only.
> + *
> + * 2) S3 resume:
> + *
> + *    The S3 wakeup logic may need to interact with the BIOS, so needs a
> + *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
> + *    undefined part of the the boot trampoline.  The stack is only used with
> + *    paging disabled.
> + *
> + * 3) Boot trampoline:
> + *
> + *    This region houses various data used by the AP/S3 paths too.

This is confusing to have here - isn't the boot part (that isn't in the
same page as the tail of the AP/S3 region) being boot-time only, and hence
unavailable for S3 and post-boot AP bringup? Both here and with the numbers
in the description - what position did you use as separator between 2) and
3)?

Then again it may be just me who is confused: Didn't we, at some point, limit
the resident trampoline to just one page? Was that only a plan, or a patch
that never was committed?

>  The boot
> + *    trampoline collects data from the BIOS (E820/EDD/EDID/etc), so needs a
> + *    stack.  The stack pointer is set to trampoline_phys + 64k and has 4k
> + *    space reserved.
> + *
> + * 4) Heap space:
> + *
> + *    The first 1k of heap space is statically allocated for VESA information.
> + *
> + *    The remainder of the heap is used by reloc(), logic which is otherwise
> + *    outside of the trampoline, to collect the bootloader metadata (cmdline,
> + *    module list, etc).  It does so with a bump allocator starting from the
> + *    end of the heap and allocating backwards.
> + *
> + * 5) Boot stack:
> + *
> + *    4k of space is reserved for the boot stack, at trampoline_phys + 64k.

Perhaps add "ending" to clarify it doesn't go beyond +64k? It's being expressed
...

> + * Therefore, when placed, it looks somewhat like this:
> + *
> + *    +--- trampoline_phys
> + *    v
> + *    |<-------------------------------64K------------------------------->|
> + *    |<-----4K----->|                                         |<---4K--->|
> + *    +----+----+----+-+---------------------------------------+----------+
> + *    | AP | S3 | Boot | Heap                                  |    Stack |
> + *    +----+----+------+---------------------------------------+----------+
> + *    ^           <~~^ ^                                    <~~^       <~~^
> + *    |              | +- trampoline_end[]                     |          |
> + *    |              +--- S3 Stack          reloc() allocator -+          |
> + *    +------------------ trampoline_start[]       Boot Stack ------------+
> + */

... by this scheme, but could still do with being made explicit, just to avoid
ambiguity or suspicion of things have gone stale again.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:23:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835284.1251138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAWx-0007lN-Jl; Wed, 13 Nov 2024 10:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835284.1251138; Wed, 13 Nov 2024 10:23: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 1tBAWx-0007lG-Fy; Wed, 13 Nov 2024 10:23:23 +0000
Received: by outflank-mailman (input) for mailman id 835284;
 Wed, 13 Nov 2024 10:23: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBAWv-0007lA-MG
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:23:21 +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 4d4df859-a1a9-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:23:19 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4316cce103dso83613855e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:23: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-381ed9ec272sm18269236f8f.85.2024.11.13.02.23.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 02:23: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: 4d4df859-a1a9-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkNGRmODU5LWExYTktMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkzMzk5LjMyNjIxNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731493398; x=1732098198; 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=YsEMDJh8WfyISDZbNRaepSxbVtvn7UW6OLscEb723qc=;
        b=FbeKBqhwmlJwmPe6ksr+Y71baBkT+2lxLEEH+d4oEgIDdcP3t/aHdweSYlijxrO1OR
         i8AuF3oMcxOt1DAGOBFaWqC8X3kdyg6OekJ3Vgz4g5WfKKIUtMNw42VdtEwRwKfy2R5e
         jaeYlQTiXxgTwKB2Mp7KOznnbMjE51zWrxgB/BkQorpUAYxgP8SPbzuyd6aYOv1XGpb2
         X+SrFWi9YjSmEhnoEZPVkkEPs0NsI27JoSlp7wJGHRsLclbIyuyIirD6wIJ3CQctT6jv
         2Jp7hQ8k3Fg6C+b0iyqpoqF2Qo3SP7PUnzt/LcFKCoQtumDUvP5NqvGMskp3LhnkmaEZ
         nejg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731493398; x=1732098198;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YsEMDJh8WfyISDZbNRaepSxbVtvn7UW6OLscEb723qc=;
        b=lfQhQAUBOOchURyMKtvsYIi0Mcyf46sOH1wJnLOvEFJDBfz9XIp/uvhVlVoRQQiXrO
         9qd01maPiFD+QTrmngk/e5vDjO2z09oRpc42x+008qSxrre+aCRbedJS/LKexmFlVtH/
         LQMlmooOY8nRhu9nal0vonUISnKbm7tzJxmKdDIkr2e9LSvY2E0wbwpLMU2cXZkvgjYm
         cch6pLUj0adRx6VU2aT1fL+U5xhgLUMPrxurEMVMSAnqgqn00j415R+ZZMvCuLY5legr
         jZvsS2aMLRGW1WuWmL7TjCndpzDf57lX0rBEyTfoeLJ2RzJvQ9LX7OgbPBwZJ5hAoLZB
         IOUQ==
X-Forwarded-Encrypted: i=1; AJvYcCXkD7362iFyCoD68nluchpgT1Y/lhAYOwTp7KHJ0d0w7Tt7sHRWDMQcdZ/XWWFGUEUBAHhtWJ1+2+U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxDfjAMqSXKk0Df25mYFPM0rs2Ae9gYASlIbuMup2+2KE10Ygu
	monOV/+Yg2HroxQv5EmqwbuGwprFZpjT09PlLu3hBNDma9ZvX8HdNvoQEW6V2A==
X-Google-Smtp-Source: AGHT+IH7Um8yN+m7abMFbn4FCIvDst2d7ojBMIF/2RJgkk89/uAf0XgBWRrCoqjKedtJj6ZqNVu9SQ==
X-Received: by 2002:a05:600c:3c99:b0:42c:ba83:3f00 with SMTP id 5b1f17b1804b1-432b74febf4mr210737545e9.1.1731493398609;
        Wed, 13 Nov 2024 02:23:18 -0800 (PST)
Message-ID: <5961777b-2d38-4edd-b2e0-2da89862655c@suse.com>
Date: Wed, 13 Nov 2024 11:23:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-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: <20241113093058.1562447-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 10:30, Andrew Cooper wrote:
> --- a/xen/arch/x86/include/asm/config.h
> +++ b/xen/arch/x86/include/asm/config.h
> @@ -51,8 +51,9 @@
>  
>  #define IST_SHSTK_SIZE 1024
>  
> -#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
> -#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
> +/* See asm/trampoline.h */
> +#define TRAMPOLINE_SIZE         KB(64)
> +#define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)

Is there actually a reason these can't move to trampoline.h?

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:30:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835293.1251147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAdt-0000to-9S; Wed, 13 Nov 2024 10:30:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835293.1251147; Wed, 13 Nov 2024 10:30: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 1tBAdt-0000th-6g; Wed, 13 Nov 2024 10:30:33 +0000
Received: by outflank-mailman (input) for mailman id 835293;
 Wed, 13 Nov 2024 10:30: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=KbMU=SI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBAds-0000tb-6C
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:30:32 +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 4d5a756e-a1aa-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:30:28 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9a0ec0a94fso1068462866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:30:28 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4e1desm835437166b.81.2024.11.13.02.30.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 02: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: 4d5a756e-a1aa-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkNWE3NTZlLWExYWEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkzODI4Ljc0OTM3Niwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731493828; x=1732098628; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=AijoLL8z2s13Q9NAAw4biLzHfg/TjccnSDT1lrR4Pl8=;
        b=B8xvVLkOQchDZqDbBiklHm5vgQE4I7O+db98bjyuAwAOJPdO05IGjQxhUxwzENCmNe
         ef/xGMoZlPHbp1cGxCr3JgynqnQkPGwGhk6C4g2pe3n+V4OOW18clCOVzwBh0HzaaXYH
         9hKl+9LDY9plLlXk4JFaD9ZwHaezmE8g9gh0Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731493828; x=1732098628;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=AijoLL8z2s13Q9NAAw4biLzHfg/TjccnSDT1lrR4Pl8=;
        b=mxWwo9+UZj4Qs8F5r8shX83MOD6I1I0NtgdyiwkEFRcIWuBwIfxoDjEZa2PDRb/7+F
         n8rKGfT5GwnPH2Qinou4WRAZwQxKRy6hmQmr/qjpTy7wAk0p/l3BV6Pj0+S/Q90j9S8V
         tC7ESIlSRo70t+kp2xjKWt5L/1/1N9oMVtFTZXCF/6W18ZlXo1xJAKBFRY3j0AmjpdHM
         ls6CQkStO1O8Fm/f0JRg5nATOTUfDXOHNrASaqmG77Uz/rrctd1MQRkoHLBxduu4H0JW
         aAVJQpGFYXYeDEhioJ4KyvYk6bDsCZjJmPmEj8En1UUwZC9RsKs1u4CKRa6UbTUTQqIQ
         Xbug==
X-Gm-Message-State: AOJu0YwQSzOYMLPD65iVZ/V/aFTUDMJ+QGOHa9SNaL/e4hhL5TmGUqIL
	lt1sCckwmLBxfGTqfJO2OYuJrVyFQgBEZZhW2WsWOzkxejaOUIRmnq3lYZsb37g=
X-Google-Smtp-Source: AGHT+IEivFLBq/eVtE//vJBY65WZ8R0bFnHdGZMztknKEWWLi1zG0RDTDexC5ckS81KCGZmTW3eo4Q==
X-Received: by 2002:a17:907:7f1f:b0:a99:f4be:7a6a with SMTP id a640c23a62f3a-a9eeffdc630mr2049560866b.47.1731493828033;
        Wed, 13 Nov 2024 02:30:28 -0800 (PST)
Date: Wed, 13 Nov 2024 11:30:26 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzR_wlY0wXjqec8T@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >> Some devices, like discrete GPU of amd, support resizable bar capability,
> >> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >> and then cause probing failure.
> >>
> >> According to PCIe spec, each bar that support resizing has two registers,
> >> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >> corresponding handler into vpci.
> >>
> >> PCI_REBAR_CAP is RO, only provide reading.
> >>
> >> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >> setting the new size.
> > 
> > I think the logic to handle resizable BAR could be much simpler.  Some
> > time ago I've made a patch to add support for it, but due to lack of
> > hardware on my side to test it I've never submitted it.
> > 
> > My approach would be to detect the presence of the
> > PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> > capability is present force the sizing of BARs each time they are
> > mapped in modify_bars().  I don't think we need to trap accesses to
> > the capability itself, as resizing can only happen when memory
> > decoding is not enabled for the device.  It's enough to fetch the size
> > of the BARs ahead of each enabling of memory decoding.
> > 
> > Note that memory decoding implies mapping the BARs into the p2m, which
> > is already an expensive operation, the extra sizing is unlikely to
> > make much of a difference performance wise.
> > 
> > I've found the following on my git tree and rebased on top of staging:
> OK.
> Do you need me to validate your patch in my environment?

Yes please, I have no way to test it.  Let's see what others think
about the different approaches.

> And I have one question: where does your patch do writing the resizing size into hardware?

dom0 has unrestricted access to the resize capability, so the value
written by dom0 is propagated to the hardware without modification.

I would be wary of exposing the resize capability to untrusted
domains, as allowing a domU to change the size of BARs can lead to
overlapping if the hardware domain hasn't accounted for the increase
in BAR size.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:31:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835301.1251157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAeU-0001WK-KE; Wed, 13 Nov 2024 10:31:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835301.1251157; Wed, 13 Nov 2024 10:31: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 1tBAeU-0001WD-Hj; Wed, 13 Nov 2024 10:31:10 +0000
Received: by outflank-mailman (input) for mailman id 835301;
 Wed, 13 Nov 2024 10:31: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBAeT-0001Vq-RX
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:31:09 +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 6192939d-a1aa-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 11:31:02 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-53d9ff8ef3aso741097e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:31: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-432d54f82cdsm19972585e9.14.2024.11.13.02.31.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 02:31: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: 6192939d-a1aa-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYxOTI5MzlkLWExYWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDkzODYyLjY1MDI0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731493862; x=1732098662; 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=WWdzEkvn5bsPzgRswN/a2CQn0oCqya+wlbrzBUrPSX0=;
        b=cp0vqrHXdFN6fR+TmQSh6u4SpR1BlRf+eEAaDWarRdNXxh6Yvr7ie+VT5a1/4SntOM
         I8oGnkTYOA33+VptFlQkT3SFk6ZRCKoEWhjHTg8fmS1PTIjdvOT72RT9bC4OPO9PuaIj
         f7Q1JxZo7Z4cNzHT0zgt546eqCoPBDsQngLcJnzUaQeNeWxwTJdgO4zt0sTXm3G9ueKe
         WxaG7kCDxWizhhT1rX7Rr3wdnCwws9a4LAHHIVHLeH7C2oMM0pT5q65rc9uajBLYIGX7
         Cyy1M5ygKyCkmbvrnxZu57QweC3uO76WX77yxN9wDjoBV67Qvp/7Ab1h3mubGsFYf5aB
         NkLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731493862; x=1732098662;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WWdzEkvn5bsPzgRswN/a2CQn0oCqya+wlbrzBUrPSX0=;
        b=L6xJQ0e5i0ZEEoDF0lIq8YXwidPCBFPl7HGcPDaSyQvegD+smKGR430pU9AOdBtPjL
         24SRv0gt6k6kJBcTzgKgHVyjsVFNRj7Fkdid4a6gnC0HnnuY59NooZwWs8llXYiCp5fd
         Z95HhsD506z01VFvzdFFAxzSh5H/NITFgcjkd8S/Vutgs0AifYWA1ysdW+e4ok2n/rEA
         +lM4Fewbm+ThSoHpfA2HP5YOtQl3nS8Y1QoR/QT/3/uNcNACEmeeOkl+EgIrixghHFtH
         Omvqv7dudFV1uZ62pe++g79wOLSYEE9dTKdI0SyfxLcM4ojHI/dy5P/LiT90nb2959lf
         Q5PQ==
X-Forwarded-Encrypted: i=1; AJvYcCXPrHIZ93chelbkVieX7/fhRo53SQwgNC23u0Jywdi77TtFrwJYah2y9pj3cQCpHKwQa5/iowa/7d8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPL/a4kExLBCG2fWmSCeLvtvTNcbXGsYfJrrK6im3UEInD3xPP
	tMFe7R+362fz5k3kjpCM9K1NY020RH/mIEdfN90mUuGvIGRKFKxrI9kqJ2+Avg==
X-Google-Smtp-Source: AGHT+IFXeJ2ayOIYqqoU45kBzrUbkje/gMh1HSfplqsPPQBEgwPVbnBHXtMbsznIBPPfaaVqAK7zpA==
X-Received: by 2002:ac2:4986:0:b0:53d:9ff8:edcb with SMTP id 2adb3069b0e04-53d9ff8f081mr992501e87.43.1731493862037;
        Wed, 13 Nov 2024 02:31:02 -0800 (PST)
Message-ID: <39168f90-7c80-451d-9c20-50da0de4af78@suse.com>
Date: Wed, 13 Nov 2024 11:31:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen:add deviations for MISRA C 2012 Rule R5.2
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>
References: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@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: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 09:41, Alessandro Zucchelli wrote:
> This addresses violations of MISRA C:2012 Rule 5.2 which states as
> following: Identifiers declared in the same scope and name space shall
> be distinct.
> 
> This deviation addresses violations of Rule 5.2 arising from
> identifiers generated through token pasting macros CHECK_NAME_ and
> DEFINE_COMPAT_HANDLE.

For each of the two, can you provide an example of where collisions
result? At least for the latter I can't even see how that would
work without the compiler complaining (i.e. the build breaking).

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:31:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:31:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835307.1251169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAep-0001zP-TL; Wed, 13 Nov 2024 10:31:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835307.1251169; Wed, 13 Nov 2024 10:31: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 1tBAep-0001zE-Or; Wed, 13 Nov 2024 10:31:31 +0000
Received: by outflank-mailman (input) for mailman id 835307;
 Wed, 13 Nov 2024 10:31: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=PyI9=SI=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1tBAeo-0000tb-PZ
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:31:30 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2614::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6fc0e36a-a1aa-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:31:27 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7265.eurprd03.prod.outlook.com (2603:10a6:20b:266::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Wed, 13 Nov
 2024 10:31:24 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8137.027; Wed, 13 Nov 2024
 10:31: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>
X-Inumbo-ID: 6fc0e36a-a1aa-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjJiIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZmYzBlMzZhLWExYWEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDkzODg3LjUwMzUzOCwic2VuZGVyIjoiZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HA6cdt432cFgpK/U3ma9oKvolc4UefjTIQojaqr3Mv/urnGC0PJjUlXi1kiNdqPA6bftMhNmEwLykue45R6xKHV7JSrRm8sPd11tuXqx+NAlGfXQU8tHbBH/4iLNkyU/DNZSUCX9KF5m9sqy9eAF3QzdjmNPAZAvZtkzdFFrR/H+R+svGoZOus61n6bHuIWljtnpewMckfYNxPbhS9HDEPOLf+qj/p2H1cm6ciHz/OaPv9WmbBRdQQG61XfTqC6a59FdI+uLgH2tk3noLzO+Azl4zVeqsA6BLyy5enFkp837XLXRXVMx3Dx1OBCsMbH1QUxcVMDEfZW/CEuN+Zejcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ol3n3IPB8oiHzITVz5sjVJWYTXUqdNgKay4oswSQWPs=;
 b=TaqBjfh0Uor2wK0qcIV5q/6dnmEIQQwFVIDCE8ycnllf+T+CSx4nErIXtCmcOhMfUsP51yxEwPEbztq0Rb1Yy+ayRirTqfAQhBDhvLk9JNf575WUXlQw8csnq6TRsVfsfGOh2W4CEN54q4DrjmNIs+bQ5AuBOIShI/tcLo1MGyNxFjMOsrMKxeDa1k2HHSvP8H5uPssrvIpp3caC7QqsWsBY9yM1DFgICpYeY5Ky+RRHthxEti7ngXJ7077IUBrrwO0RWqpopAX1wj/QWh3bU2ViIOcAN1CTWHimEq5e0QCOa8PX/CIeSmGdxOa4M5uFf+QV7UFIinPPdkeqbO8oVA==
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=Ol3n3IPB8oiHzITVz5sjVJWYTXUqdNgKay4oswSQWPs=;
 b=XZclcQdle/e3ESKkMJo2i2RLFTvZ7aLEvp63um7W6EQqaHjIpIakstp+muIX6p32X++0LQksLLrn69TnmAw8goRWoXqlIuh5G/rj5z4GptCrd1Em+ZGvm86oFnWfODF+1bEf487adwh+Zbxyz+ypVU2kO2i2Ya6MxBuourIESfZhsRCEekseH/c8sAf24gHUSxwWIiXFbdv0DhXjdaGZ1jH9TqnVsuH861XxCGaeOZKTw8JNmKpnkwc40jucy4NH2bLIZ13+BTcTsob6eOLfJnQO4jLKnVy4c+cuznesot5SyrConV2zMq3HRDepHNDG68Y6IA+9EXoQbRZoZeRK4A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <bf174c22-cb2b-468a-b4df-1ea9ab5be198@epam.com>
Date: Wed, 13 Nov 2024 12:31:21 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Luca Fancellu <Luca.Fancellu@arm.com>, Michal Orzel <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>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <FA4FF581-69EA-46C0-A0D4-D327B167A4D6@arm.com>
 <e6bfae0a-4d8d-4d41-9046-30400da45cc0@epam.com>
Content-Language: en-US
In-Reply-To: <e6bfae0a-4d8d-4d41-9046-30400da45cc0@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0298.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e7::7) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AM9PR03MB7265:EE_
X-MS-Office365-Filtering-Correlation-Id: 0e5d141b-0139-44d7-f486-08dd03ce5250
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?dWx6UTlLUlArbEpPeWhmNHhmMExra1RTWHk4UUJwbXFZWUJzNnVuQzlMYmda?=
 =?utf-8?B?VDZuMTZGNFJ1dVE4WjljR2RNM2xkT2k2UEpMblhHSmNwdDQ0MjN4bE9WdGdJ?=
 =?utf-8?B?d01saWlsRTBBSDRMSldzR0prVkJpUEphTUlHTFlpdS82N1Vxbm8xTFU5MXlQ?=
 =?utf-8?B?NlN3WHVCOTBDSHlDdVIwRGN6eDVVZ1RWc2VmcE92dUpWTmJrMk9KbFYzblBx?=
 =?utf-8?B?cU83cVUvN01PWG1EUGI1czBkb1Rta3pudmw2K1I3T3BNRjkwVllSbjZ5bXpP?=
 =?utf-8?B?VXdWaDkzUlFlT1k2M3hWeFF5czdqTWNNU0tLY2xhZWlwNGUrZ1cyMTBHNm5q?=
 =?utf-8?B?a0NQVTJ0WEVlaGZ3Qjd5dXdUMVNNVUNra01UUG5ZQVE3T1RHOCt0dUMvV3lo?=
 =?utf-8?B?em1jSjlFYlRVeXdSdVFwZCtOSE8vakJQaVNzeHFaNC9sZDE3NllTWTJxMGJW?=
 =?utf-8?B?YWkrbVFJVEdNNTJtSWNZbEFEUUZYbGQ0NzNEQ2ZEaTdlTUgzOVBsbk9UNG1u?=
 =?utf-8?B?WU1HVXFabTRLeUE0VWVGcFcyWEFmSVF0bkU4ejNjUlFZUFVsRUtYamlwQU5h?=
 =?utf-8?B?NXZSOU1EZFE5K2tUSXV6RDRhRjBlWW5LbzBPNjg3UjE4S3VPVW10TitKSXIr?=
 =?utf-8?B?bzh6d2dMdkVrOGpDaEdsUlRoMDdZaGlhOWdZYUVEOWF1ZS9iUzQvbmo3VDlP?=
 =?utf-8?B?QnhNMXlFQlRNVjdaS0hHWXhPODNWQVFrNlU4U2U0RDJRdzJraHdmTEc1Q1Br?=
 =?utf-8?B?akRzVUJ0Nnc0WFlIY2pHKzJqRHBmUFdGaEsyU3JYbmNVcnlSMlJQa2EvSkZR?=
 =?utf-8?B?Y3pTUWxEL29BRnQyN1c2NUVQREFsYmhkQ1NjMDhzTFZJZ0YwdDFsSWs5OFoy?=
 =?utf-8?B?dzJxRkFqRXRNNjNFTXV6TmVYenNGd0tjQnBXcHZpblNCVW9ReEI1UXdZZytU?=
 =?utf-8?B?MHJkdHJaS3A2ZnNFV3ZkbFJucUFRRnBWTGVHd3NYTzROdlRPM2lGckExeEtP?=
 =?utf-8?B?U0JTcVJkWDhsN1IrZmx0T1Z4SGFPN0NtUklvUklyK25rQzF4TFBHS2lvWDNB?=
 =?utf-8?B?bDRYRHQrZnovdDZEN1BwZTJObkNuYTAvaXdyR3ppRGp4SGM4czVuaTN4M2pq?=
 =?utf-8?B?V0R4S3hmQ1NKZWpjNUZGeVhFdHRvM2sxQXlaM2tSWDdWbU1DTUdNOW5zeTNH?=
 =?utf-8?B?L2d6am1mYmNVU1J2Qk9EaDdJZTJEUmZvOFlCQVd5dnFkS0pTSm1SczJzNitL?=
 =?utf-8?B?QjhlajNDYmIveG9jN0JuOTFQNkFRL3Znd0xEd3ZhMStDVlV2MUpwNzNoZitM?=
 =?utf-8?B?NWNZQ0ZCV284NzVFRDA0R21QUU1oUlhYb1FPR1E0SzB2SnkzdXUvWjFhTEpV?=
 =?utf-8?B?QnJhMnFsN3ZDTlVqWG1HVVBMODJPSkZUNVBQNVg2eG9GOHlPd0dkVHp0eG5w?=
 =?utf-8?B?U1NVaFhxbWIvNTNTMFl1R215UUg2KzVZT1NXby8wUWoydG5SRFRpWmNyaFUw?=
 =?utf-8?B?TTYyVDNrZ2xtbFlYUDdxRkVld2FRN2o1UVNDcXdyWldaWC9yMGp3U2xUVENx?=
 =?utf-8?B?YjVZLzU1NkE2TGtUWkhsL3I4UDd3MWFZQVRRRGlrNlFUZDM5aWVyUmhaaEVj?=
 =?utf-8?B?blpVQncrTnprR1pOVGFucWJ4UkM1Z0ZwN3kyUWlPVTFDeitDRloveWhaN0hi?=
 =?utf-8?B?N0VIeFVqQWkvcStZUnJPOGRyWjFDOGFwS3gzSHBwNHRmR01zSDRDcWZkVDls?=
 =?utf-8?Q?GqomZSkpzOqIR81MHdHZddgGix/0l60sR5Tra6R?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?NHBYWG5HMlpsaXdkRWwvN2w4QWFNRXQvbWp1Y1VMdnFIZXRGRzdqMUVKZFdP?=
 =?utf-8?B?NVdZSVBaUzRteUtoMnlLTis4K2ZQQzJxL1dEbG9lZkhjSjQvQzF4M2FMY25L?=
 =?utf-8?B?dnFiMW9MSVcwVXNHVHBFcHFFb3pta1AzUGE5ci9GcTlxK3VuSUNKOU1rR2Zy?=
 =?utf-8?B?NTU5RkhkR21wZk5rRVhLYWc0KzNobWdtSzdpZ0ZaNVBqRzMwWGZKNjBSN1g0?=
 =?utf-8?B?MjFnZkluSi9DRWVOaWlCYW10R2VoUEJOZFczVHgyb2x1Y3JkZnJxZFdRM0Yy?=
 =?utf-8?B?bVM4RVNnOXhucGtPY0pEcHVRM0dlODhTTXVPRDh0aHkwZXNBME9zdmpUUGo1?=
 =?utf-8?B?WWc4N2RWa0hTQ09PeUlCU3VHaWJxT2hoRUdPS3dqZVFseUc5NmpUQVZHYnVI?=
 =?utf-8?B?bFJzVldvK1IwQmtBZC82NWxma0Jwa0pWME15MU5EbXhTMXB4TTF0N0pnYVIv?=
 =?utf-8?B?RXFUeTRQNy9LV1NQRE91M3NYL0dxUEhWdXlGZlQ1bHBub2NPdXpIazNnenFs?=
 =?utf-8?B?SllYRFZ1SkRNbXN5MERGaGUxMERpeGtvVlo3TEpWUEEreHNjZGNrNklJeGxr?=
 =?utf-8?B?WVFPZzNpeU9LMG90ZGhyU1FMU0s4U2Q0V2phQnNjakxLeTc5ZlNNTmtPajJB?=
 =?utf-8?B?M3JDUE9uUHZ4S1hwNURFZFdKK1pNTVdYNGdBTUhCQXR1QWxGL21jcjA3eUc5?=
 =?utf-8?B?Z1dyZGNBS0NkM2MzUllDaHRUS1hYRkZvTlNJeFdBY1FJNlhVd2pQQ0FhdHZH?=
 =?utf-8?B?U1A2S0pPV0V3bUQ2aDFtOFE3amxkWGRkREloa3BMRTNQNVllUE1hM0RYbHZB?=
 =?utf-8?B?SDFxYXAyNWl2Vk04WlptRW5wTGpKK2tkL3d6a1JzSWFibEpRamkxMVY0WElq?=
 =?utf-8?B?VHRpTlNVK1c1M3BLMWtpR0hpN3ZUYU1QVTc5ZE1ya1l2U0Q2L1hSK0ZPamZr?=
 =?utf-8?B?OEFoL1ZlbTZtOUt6ekxpRURXV0hjNWpjVW1iM3ZYanZ2VkhEZU5mVkVEOVlp?=
 =?utf-8?B?ZzAxSWI4L21BMEZrYXBjMm91c0UvT3dnOVFtN2pPV3E3dTZaQkRtb1ZhL0pC?=
 =?utf-8?B?b25UcVhJVkhuemxmK3MrTnpKV1doVE1Nd2NWVjk1RDBBZm0zeEthZ3UzVVBh?=
 =?utf-8?B?c0Y0ajR6eGFMUkRVYjF5VHBvOWFQbDR2ZTUrU3JGWHMydmhpV0tPUGhzV0px?=
 =?utf-8?B?ek5YckMwQk54Y2V3VnNqWGcxMnoxSFFxbzYzQXFRZ1R1OEUvTWx1MWlhMU9F?=
 =?utf-8?B?WHRVUmYxY25vQmQ3Znp4dTdYUnRXSzc2NkVsVVA0cUs1VE9obGtLL1dWdGJV?=
 =?utf-8?B?QndTVXZ3THNSWHI1ZlowaC9nSHdUNTYzb0J1VElQeWsxUXVWZVhYZkFML056?=
 =?utf-8?B?WGhwOVlJZm9aVkt5dE03WGlWVy9sNWRia000S3VGNkNyL0lBWklQL0QzODZV?=
 =?utf-8?B?WFhXUEJ4WTJTbk9ialRtSHd2YmIxMmRPWTNTdFJzaXAyV1FvNGVrUW05amVm?=
 =?utf-8?B?VlZHZVEveGVPMUVXMWtSQ2x0NkxEQ2cwWTNQdUVOVm1HRkw3SHcrSmtDdFVX?=
 =?utf-8?B?Y3J2a2E2LzA3YzUyM3NBMUVEcE92S0N0RVl1RE5kakNNd3hnWmVKcGJSbVRh?=
 =?utf-8?B?V05RS20wV2swdkRmUGl2eXp3Ky9WR2ZFMWZXVkVSbjJsQlRFQlJQYjdYZzJk?=
 =?utf-8?B?VE9DU0hUN0VrclF6L0tnMGVYeFVrZFJRV3ExTzR1aGNrdWlzcDRZU0RSRnVU?=
 =?utf-8?B?WXordFZiUXlwb3RjTmdKcDN4UUVqNHpqM3FQZ1JkcDJ0RFVSOEFBYTk3T2Nk?=
 =?utf-8?B?N2FhWFR1NmtnYk1SWjZpdFZmckV3Snk3QnZaMlM4U0d5NG4vaUZuMldzR01i?=
 =?utf-8?B?c2FrOUFYbHkxb2ZteVUyLzFVMEZlWm42MEpQMU84aWZveGdLSkdmMGRobnpJ?=
 =?utf-8?B?M2lXSXROZHpkZ1Z5Y1ZIczNLcU9nZ1hXT040ZmMyMVdtWXNvOTVuS01pTXBt?=
 =?utf-8?B?K2I1YjVxT0t1QmZGbEwyYWNMcldIRUk0MEowVlVWeGlPbURwNlFocjNycVFE?=
 =?utf-8?B?V0lkSUlKdjNlVWwyeTFBaWU0eHBiRmllZFRJaTBhek5tWnFVc2I3NlhpblNM?=
 =?utf-8?B?alg2cnlHSjhGaWIwNHNMbEllRUxETlZYeENDQ3JtM0JDN3dmTVIzc24vR2dx?=
 =?utf-8?B?VHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e5d141b-0139-44d7-f486-08dd03ce5250
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2024 10:31:23.7718
 (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: 1+ZotIiWVH1wWOp5mO4G8GpAHclWWneqSrFCVamlQDGq3ijOntrpHJnTPhmhpCmSqKjSaDKsuBhPTfRGJlLHQO9bVKxN+JtuKltErS5rvVM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7265


Hi All,

On 07.11.24 11:42, Grygorii Strashko wrote:
> 
> 
> On 06.11.24 17:16, Luca Fancellu wrote:
>> Hi Michal,
>>
>>> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
>>> and the changes below look a bit too much for me, given that for boot modules we can only have
>>> /memreserve/ matching initrd.
>>>
>>> Shawn patch fixes the first issue. AFAICT the second issue can be fixed by below simple patch:
>>> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
>>> index 927f59c64b0d..d8bd8c44bd35 100644
>>> --- a/xen/common/device-tree/bootfdt.c
>>> +++ b/xen/common/device-tree/bootfdt.c
>>> @@ -586,6 +586,10 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>>
>>> Â Â Â Â  add_boot_module(BOOTMOD_FDT, paddr, fdt_totalsize(fdt), false);
>>>
>>> +Â Â Â  ret = device_tree_for_each_node(fdt, 0, early_scan_node, NULL);
>>> +Â Â Â  if ( ret )
>>> +Â Â Â Â Â Â Â  panic("Early FDT parsing failed (%d)\n", ret);
>>> +
>>> Â Â Â Â  nr_rsvd = fdt_num_mem_rsv(fdt);
>>> Â Â Â Â  if ( nr_rsvd < 0 )
>>> Â Â Â Â Â Â Â Â  panic("Parsing FDT memory reserve map failed (%d)\n", nr_rsvd);
>>> @@ -594,10 +598,14 @@ size_t __init boot_fdt_info(const void *fdt, paddr_t paddr)
>>> Â Â Â Â  {
>>> Â Â Â Â Â Â Â Â  struct membank *bank;
>>> Â Â Â Â Â Â Â Â  paddr_t s, sz;
>>> +Â Â Â Â Â Â Â  const struct bootmodule *mod = boot_module_find_by_kind(BOOTMOD_RAMDISK);
>>>
>>> Â Â Â Â Â Â Â Â  if ( fdt_get_mem_rsv_paddr(device_tree_flattened, i, &s, &sz) < 0 )
>>> Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>>>
>>> +Â Â Â Â Â Â Â  if ( mod && (mod->start == s) && (mod->size == sz) )
>>> +Â Â Â Â Â Â Â Â Â Â Â  continue;
>>
>> Ok I see, we skip the /memreserve/ entry if it matches the ramdisk, fair enough, I donâ€™t have
>> a strong opinion on how we do that, the important thing is just to unblock the users experiencing
>> this issue.
> 
> Don't know if my opinion would matter here, but Luca's patch looks more generic and logically solid for me.
> While handling only "ramdisk" somewhere in the middleÂ  - looks more like a hack.
> 
> Any way, it's up to you.


Sorry, that I'm disturbing you, but is there going to be any conclusion regarding this patch?


Best regards,
-Grygorii




From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:37:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835319.1251178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAk2-0003GZ-Dz; Wed, 13 Nov 2024 10:36:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835319.1251178; Wed, 13 Nov 2024 10:36: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 1tBAk2-0003GS-B7; Wed, 13 Nov 2024 10:36:54 +0000
Received: by outflank-mailman (input) for mailman id 835319;
 Wed, 13 Nov 2024 10:36: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBAk0-0003Fq-NU
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:36:52 +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 2fdabf8e-a1ab-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 11:36:48 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4315baa51d8so59056695e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:36: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-432d54f70d8sm20507065e9.16.2024.11.13.02.36.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 02:36: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: 2fdabf8e-a1ab-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJmZGFiZjhlLWExYWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk0MjA4Ljg0NjM2Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731494208; x=1732099008; 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=LCYAdFuWzpq0cgJ2060IAI4lDjgoUMZ2jvyb5EylhMc=;
        b=D6KNcK2OtaWUldLCkwpKWcInh1NZSqdGfcquLaS2gZrEuRKVl2hUon3GW3VDE2o+ql
         rY5PhAo/SyYf1euCnW9qtAWaBCKvKZuUCGI+ccW9sHEbMfwe9g2hwcyb4HUxCUiax0EL
         TDeUSxQcr3k1PrThENsoRdAOp/i94axaV+VvGqdG8TDqOZ8MBte6U4pFHSvD2XgMx99q
         h3fJpqJVQy5eOyQBdW33qeU77IwH8PtegRQQPmNuSIDUP26YVMbuFwUcn4bIZmErJZef
         KseVwAlDEzWnv8ZdhU+RHG54gfkhp0GcEzY+RNGdEDOEXDXLoa3JhmTgpOSy2lI5J4Dw
         o72w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731494208; x=1732099008;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LCYAdFuWzpq0cgJ2060IAI4lDjgoUMZ2jvyb5EylhMc=;
        b=uktDQ7YRUWZkxbo/cO4lal/6wUVn9BHEu1cz2THh7ogXIaTDT+KXBZbSxrR5CaLjR2
         22SHukZnrM/x8oJ9tUSYcCBKIlXFrs42k1gKiiF/cXc2g/04SX8IVkaMA2m0rRHUiKhc
         KCHD2PgxOLzWtup1nL+0KClYdLoCa9LXByXCNItLcBH9FqqbEt51/C5o963ux7GPSqtr
         3kUPHylwx7Dn84Q5i/E+AFk5hIyzHz5fl7/ToM8v/3tirboIGyUl0KLjQV8t4N5DUpmb
         Cf7aH9dgvpkNSkeGeQH8o/baV/1XjJ2W7YAgKKZNb6K2E/A2NTrl4MIRIFf9RyJ66+mc
         dA4A==
X-Gm-Message-State: AOJu0YzVnPsv1ysdkJK/wqyHPEv1Ufsi1n/2kRoIKuacWrtGPT5vm/lj
	5gsESEhQghBdnJhAnnneW4vg3t1FIUAKfQO+EqHgSmrGybeAhUlELnqjiFTA3w==
X-Google-Smtp-Source: AGHT+IFL0sfxRvpTW2gLziEyosfj2iunR+eONe9glYMmSk+iqueOI/46P1CqhV4tqzmIZS3qflgchw==
X-Received: by 2002:a05:600c:474c:b0:432:9fdb:1490 with SMTP id 5b1f17b1804b1-432d4aa9b17mr21351505e9.7.1731494208203;
        Wed, 13 Nov 2024 02:36:48 -0800 (PST)
Message-ID: <6adc29fc-c6a6-460b-b034-62400e8c193b@suse.com>
Date: Wed, 13 Nov 2024 11:36:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vpci: Add resizable bar support
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
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: <ZzR_wlY0wXjqec8T@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 11:30, Roger Pau MonnÃ© wrote:
> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
>>>> and then cause probing failure.
>>>>
>>>> According to PCIe spec, each bar that support resizing has two registers,
>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
>>>> corresponding handler into vpci.
>>>>
>>>> PCI_REBAR_CAP is RO, only provide reading.
>>>>
>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
>>>> setting the new size.
>>>
>>> I think the logic to handle resizable BAR could be much simpler.  Some
>>> time ago I've made a patch to add support for it, but due to lack of
>>> hardware on my side to test it I've never submitted it.
>>>
>>> My approach would be to detect the presence of the
>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
>>> capability is present force the sizing of BARs each time they are
>>> mapped in modify_bars().  I don't think we need to trap accesses to
>>> the capability itself, as resizing can only happen when memory
>>> decoding is not enabled for the device.  It's enough to fetch the size
>>> of the BARs ahead of each enabling of memory decoding.
>>>
>>> Note that memory decoding implies mapping the BARs into the p2m, which
>>> is already an expensive operation, the extra sizing is unlikely to
>>> make much of a difference performance wise.
>>>
>>> I've found the following on my git tree and rebased on top of staging:
>> OK.
>> Do you need me to validate your patch in my environment?
> 
> Yes please, I have no way to test it.  Let's see what others think
> about the different approaches.

I'd certainly prefer your simpler form, if it's safe and fits the needs.

>> And I have one question: where does your patch do writing the resizing size into hardware?
> 
> dom0 has unrestricted access to the resize capability, so the value
> written by dom0 is propagated to the hardware without modification.
> 
> I would be wary of exposing the resize capability to untrusted
> domains, as allowing a domU to change the size of BARs can lead to
> overlapping if the hardware domain hasn't accounted for the increase
> in BAR size.

Question is how the feature is used in practice: If it was a driver to
request the re-size, I'd have a hard time seeing how we could make that
work without intercepting accesses to the capability for DomU-s (implying
to expose it in the first place, of course).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:44:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:44:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835327.1251188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBArI-0005Zn-4v; Wed, 13 Nov 2024 10:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835327.1251188; Wed, 13 Nov 2024 10:44: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 1tBArI-0005Zg-1Q; Wed, 13 Nov 2024 10:44:24 +0000
Received: by outflank-mailman (input) for mailman id 835327;
 Wed, 13 Nov 2024 10:44: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBArG-0005Za-Dq
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:44:22 +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 3c6d4add-a1ac-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:44:19 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2fb51f39394so58874191fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:44: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-432d54f5235sm19974535e9.10.2024.11.13.02.44.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 02: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: 3c6d4add-a1ac-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1sajEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNjNmQ0YWRkLWExYWMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk0NjU5LjQ3NjI2NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731494659; x=1732099459; 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=xybZc8YA9sDO8JN7cLkx/LFPepApPRZxKT6ttuqW1A0=;
        b=FY5LvWjNy8Ra/xZIhJr7ZrBVvGo6e44GtJ3M7bSB8/d+KERkTCFdgeH6hV1mERAxzi
         11ZHdukAQotlq1dd/3xyQbNIX/twL05vrjIohYX9MPrWvLytK7Maz+LtBrWRAntCwdov
         TsV4HZajKuLFA31RVcpleRjGWmEP/aS8pqLxSc0IMQ619x+VRTHCRNri0yQqb2ZiZPYI
         Odatl4GFbEmGQIRmhk1m0K1DdQb3l7Me6ATVAeFdpibq8ExJawidtrNaoVDEqQaddaPl
         6v1Mzyu+tPH30vvj9zKyLMbX0e+u8uKoOdhdlgpdKv7dInDpRHD09SJil+Ws1m9dNrFS
         kFqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731494659; x=1732099459;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xybZc8YA9sDO8JN7cLkx/LFPepApPRZxKT6ttuqW1A0=;
        b=IY8FS68aHdDzM0lBo9xseted04O5xft8IBlKIwV6zFVf/+uC11fI096iZHTLBeBS/V
         g1jB940dGh89quwwJaTMOFZge8xraNY7e3xl9BAwLZko5w8RA84BoKep8RZDjvswGGnF
         oFnXJk87PtXjq0RA/vDR3JxXBcDmY7XnkWJbyMJmQ0MI4YHngIOkQWdGOURP1Y0b2Q/r
         4BvEsScKkWzgKUyXC3oJMsPiJXTJ+Ga55gGzp7xjFlH2dLQmRur3Be7lda50rhAYXmTj
         iDDkK2mA4EpwfAquhmgl/YPJoxR9/awTF3VIqlu1NGGMX/6ZgGtklKYU2ju5gDr+jE5r
         s6+Q==
X-Forwarded-Encrypted: i=1; AJvYcCVb3JH+sT718el6h+UimPjQJcrDtURoQY6sfbgCA38Khx2j7U/8woGSi6DkkPJugHJmVqi7xH8MwCI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiGWU/s25Mhs6BRZoacW6V6k6V7du5RzjCp6ouj7eg40KhxjJh
	bGAUi0wXecf6qsVFWAfRfCcW1tkwLLwhY09PctoHkahbljYN5UYz4e2M4o0rNQ==
X-Google-Smtp-Source: AGHT+IFrxrxRFG8lwlgvI2DfpQZGVM2frPfQ17vMiVvm5MJqD0TFcH9z2P7zcZpNIQ0RyJoIfBYdHQ==
X-Received: by 2002:a05:651c:554:b0:2fb:527a:815b with SMTP id 38308e7fff4ca-2ff202e1263mr107775941fa.28.1731494658608;
        Wed, 13 Nov 2024 02:44:18 -0800 (PST)
Message-ID: <7ba6e67a-1470-4734-a065-4d4045f8422a@suse.com>
Date: Wed, 13 Nov 2024 11:44:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: add deviations for MISRA C 2012 Rule R5.4
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <255ae80cc8b95f33daa7534c9552c571391cf689.1731490650.git.alessandro.zucchelli@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: <255ae80cc8b95f33daa7534c9552c571391cf689.1731490650.git.alessandro.zucchelli@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 10:38, Alessandro Zucchelli wrote:
> This addresses violations of MISRA C:2012 Rule 5.4 which states as
> following: Macro identifiers shall be distinct.
> 
> This deviation aims to address violations of Rule 5.4 regarding
> identifiers XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list and
> XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list, and identifiers
> declared in header file include/asm/guest/hyperv-tlfs.h.

Please can you provide enough context? The two identifiers are quite
obviously distinct. Just not in the first 40 characters. A limit I had
to actually go look up, because it's entirely arbitrary.

Plus - what are we going to do if further such identifiers appear?
Exclude them one by one? That wouldn't really scale. Can we perhaps
make a wider exception, e.g. at least for all XLAT_*_HDNL_* ones? Then
again part of the problem here is that hvm_altp2m_set_mem_access_multi
is already excessively long, alone taking up 31 characters.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:48:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835339.1251199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBAvA-0006Ej-PZ; Wed, 13 Nov 2024 10:48:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835339.1251199; Wed, 13 Nov 2024 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 1tBAvA-0006Ec-LD; Wed, 13 Nov 2024 10:48:24 +0000
Received: by outflank-mailman (input) for mailman id 835339;
 Wed, 13 Nov 2024 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=LXmd=SI=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1tBAv9-0006EW-9w
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:48:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cade1663-a1ac-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:48:18 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 463034EE073E;
 Wed, 13 Nov 2024 11:48:17 +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: cade1663-a1ac-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNhZGUxNjYzLWExYWMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk0ODk4LjQyMzI0LCJzZW5kZXIiOiJhbGVzc2FuZHJvLnp1Y2NoZWxsaUBidWdzZW5nLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731494897; bh=4xRF34YDWpBwJXXJq775mkZUgaV+16BSQdBnSairluc=;
	h=Date:From:To:Cc:Subject:Reply-To:In-Reply-To:References:From;
	b=ke453FUHHE4+MUxI4hRHlmpJG0S1jq1fpnmbP6EaTvr1icIofmhB/jU2Xd5AsrX0N
	 /QOoBNTrPpT8BTS1x3CygnByMEdR7ckB4MlgTzi7VQJaU2rFIUU/T5+VXyu1uTzySZ
	 JorIpaOdhmgDqoTIwThNvMkdAOYYtQke8rj1SbjnorXh4SMfiHH+hRQu5HV9S73uSI
	 xEjkel9/6/akWds5yrSOZZvndp4L28q+65Ff6VSrI8XJXMZjchJ8BL5V/XFnx6XiI6
	 gWFdrLKjaCDHuwtf505JVXuyhhJtWry6B6hM4+/6zA8OuF4TLN4xlDRuRyN0moPE3t
	 VZXLM4uqQrfTg==
MIME-Version: 1.0
Date: Wed, 13 Nov 2024 11:48:17 +0100
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH] xen:add deviations for MISRA C 2012 Rule R5.2
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <39168f90-7c80-451d-9c20-50da0de4af78@suse.com>
References: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@bugseng.com>
 <39168f90-7c80-451d-9c20-50da0de4af78@suse.com>
Message-ID: <3789df92285b2c08b855369f46f3a229@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,
At this link you can see all the violations of Rule 5.2:

https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/40_characters/X86_64/8143097084/PROJECT.ecd;/by_service/MC3R1.R5.2.html

By deviating the two macros CHECK_NAME_ and DEFINE_COMPAT_HANDLE all the 
violations are addressed.

On 2024-11-13 11:31, Jan Beulich wrote:
> On 13.11.2024 09:41, Alessandro Zucchelli wrote:
>> This addresses violations of MISRA C:2012 Rule 5.2 which states as
>> following: Identifiers declared in the same scope and name space shall
>> be distinct.
>> 
>> This deviation addresses violations of Rule 5.2 arising from
>> identifiers generated through token pasting macros CHECK_NAME_ and
>> DEFINE_COMPAT_HANDLE.
> 
> For each of the two, can you provide an example of where collisions
> result? At least for the latter I can't even see how that would
> work without the compiler complaining (i.e. the build breaking).
> 
> Jan

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:54:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:54:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835345.1251207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBB1A-0008U8-CC; Wed, 13 Nov 2024 10:54:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835345.1251207; Wed, 13 Nov 2024 10: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 1tBB1A-0008U1-9D; Wed, 13 Nov 2024 10:54:36 +0000
Received: by outflank-mailman (input) for mailman id 835345;
 Wed, 13 Nov 2024 10: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBB19-0008Tq-En
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10: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 aa07f7ba-a1ad-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:54:32 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-37d49ffaba6so4486758f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:54: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-381ed970f68sm18155185f8f.11.2024.11.13.02.54.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 02: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: aa07f7ba-a1ad-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFhMDdmN2JhLWExYWQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk1MjcyLjc3ODE3Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731495272; x=1732100072; 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=gMUdrl/ikxQXEaRyQ+omi2QYW+VFLqeHwJSweOViyCc=;
        b=eoVkpvX+flHpN688I4LOnS6RCiryfPLAWuYF/EIAUXAd3t0dHaqWzdk2+0dUZcr1+H
         fVp49TgcX13ki8j/CER6r7S3a4RET69nE2xz1z4Y2s0syRazANsD8BJAkDwNPz15l/dq
         XzVPKcKnMvjoxXLqJfonqrlCQdLjYF+epD14vRKhqFjxTsp90qwraWppbZrJ14GPd3f0
         J2ITB4wcNPt01stFjHdx/53/wERWw3TFr1E1/nb3Z6TM+xuoCk3duZS9HZPDuVe5laE7
         3KoPuao1/0z0oZIN5GPE28X8YyrbyHlNQznfU4kkOHXOlJaT0aJo9YS4E74lR7AFztWf
         Ydyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731495272; x=1732100072;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gMUdrl/ikxQXEaRyQ+omi2QYW+VFLqeHwJSweOViyCc=;
        b=mJCzglaig5NVerM9nidi2w2n0r3Xse09rF9vLZa2XQodpw3PEDLpNu8cdUb9Ac0Asl
         F+KtGzW1ROGw2BxEglF/mVzNpbw2na8e+YYuDtK11VrpwMJGL7Ma6sxaKiHVFc6lZozs
         FVwK6KE6dZgggvbohbMATz56+ty+pTlfISDoLKtv3N63Rxa7R9VHmhLAGPZvJHe8qG1t
         5CSlKoaEOjuQBnc9ohspTigV1GaRU0F9KRF/2IFCcCkdRF3fgqPYZ/YS2ULM49i6hNCw
         IOCnmy644qVqjX+H/k548foB6KM9yKKPqzpS8AG3FVtKNbNcg2wBGCAr/C6k/nxaDIpW
         Avfw==
X-Forwarded-Encrypted: i=1; AJvYcCUtw57PWQMrUSo2GFDulHuieALtOZbx1wwIhJwIpnxuLiDqa8FYWWn2/RkVB9QwtVqO54gkGYvP8Hc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuQBg64ZiVCnqOS6AdWwwR6+YM36KhGubUc0Y4x+Wg15CwPB9x
	tdS8v7SEPzSFl34BSX7PHJRzLHRa3c8c0RVtPLkZlQDg4tZpE6mHcpuwABYeUg==
X-Google-Smtp-Source: AGHT+IGByTq6uDX60JH8qzYC4m47f9OcMHM5I2eg3Aw4g0kcYluiiGrEXPIXynbeOzhJqiwiH/HrHA==
X-Received: by 2002:a5d:5d89:0:b0:374:c84d:1cfe with SMTP id ffacd0b85a97d-3820811105bmr4615681f8f.21.1731495272033;
        Wed, 13 Nov 2024 02:54:32 -0800 (PST)
Message-ID: <24b117ed-dd5a-47a7-8c5d-ddddd7407ac9@suse.com>
Date: Wed, 13 Nov 2024 11:54:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen:add deviations for MISRA C 2012 Rule R5.2
To: alessandro.zucchelli@bugseng.com
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>
References: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@bugseng.com>
 <39168f90-7c80-451d-9c20-50da0de4af78@suse.com>
 <3789df92285b2c08b855369f46f3a229@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: <3789df92285b2c08b855369f46f3a229@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 11:48, Alessandro Zucchelli wrote:
> At this link you can see all the violations of Rule 5.2:
> 
> https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/40_characters/X86_64/8143097084/PROJECT.ecd;/by_service/MC3R1.R5.2.html

Thank you. From a cursory look these all appear to be a result of the 40
chars limit we put in place (quite arbitrarily). That's not mentioned at
all ...

> By deviating the two macros CHECK_NAME_ and DEFINE_COMPAT_HANDLE all the 
> violations are addressed.
> 
> On 2024-11-13 11:31, Jan Beulich wrote:
>> On 13.11.2024 09:41, Alessandro Zucchelli wrote:
>>> This addresses violations of MISRA C:2012 Rule 5.2 which states as
>>> following: Identifiers declared in the same scope and name space shall
>>> be distinct.
>>>
>>> This deviation addresses violations of Rule 5.2 arising from
>>> identifiers generated through token pasting macros CHECK_NAME_ and
>>> DEFINE_COMPAT_HANDLE.

... in the description.

Together with the 5.4 patch having the same lack of context, I wonder
whether we shouldn't simply up that limit. Or else, as suggested there,
to instead exclude such derived identifiers. After all the derived ones
will be distinct as long as what they're derived from is distinct.

Finally - please don't top-post.

Jan

>> For each of the two, can you provide an example of where collisions
>> result? At least for the latter I can't even see how that would
>> work without the compiler complaining (i.e. the build breaking).
>>
>> Jan
> 



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:56:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:56:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835354.1251217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBB3C-0000d4-My; Wed, 13 Nov 2024 10:56:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835354.1251217; Wed, 13 Nov 2024 10:56: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 1tBB3C-0000cx-KR; Wed, 13 Nov 2024 10:56:42 +0000
Received: by outflank-mailman (input) for mailman id 835354;
 Wed, 13 Nov 2024 10:56: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=KbMU=SI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBB3B-0000bU-8d
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:56:41 +0000
Received: from mail-yb1-xb2a.google.com (mail-yb1-xb2a.google.com
 [2607:f8b0:4864:20::b2a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f4e3e008-a1ad-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 11:56:38 +0100 (CET)
Received: by mail-yb1-xb2a.google.com with SMTP id
 3f1490d57ef6-e2bd7d8aaf8so6753526276.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:56:38 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-462ff41b8fcsm86562781cf.32.2024.11.13.02.56.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 02:56: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: f4e3e008-a1ad-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpiMmEiLCJoZWxvIjoibWFpbC15YjEteGIyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY0ZTNlMDA4LWExYWQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk1Mzk4LjkyNTcyMiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731495397; x=1732100197; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=+34MSF7eawbg2sXn0MebRKRymDiWF/kEQszYgHe7G6c=;
        b=JyuSuj9dm0ILbStplOS5ci14HA6Q1OGPCzgSyHIFJCT4XVq0mR3SN4SuQmX0b0I2NS
         oBcCr26x14oP/4AfVcwnCbqL0081bI64wfFFxN+Br+jdPFAh9XbSh/1x7WK3rC86baZs
         F8eZDhPJD4n/g5I8N8LkV/r1rVh1kXljp4CQM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731495397; x=1732100197;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=+34MSF7eawbg2sXn0MebRKRymDiWF/kEQszYgHe7G6c=;
        b=eOIpeAYnlKqSPCCKJjSCbrdwCvbmCIMhsCM7BDf+KGg4C16biHY60VByOyMcBMKA/Q
         ZvnroUT1PkGtiS8+a85QY4uuHzbEKOqE/kE1W0L/ZpcUjojw3mTTu0xRRRio/iDvYzs4
         jad6lNJMMeYRhHN975gH7LjZLkBNAr1W5ZDSp1qRemBV4iGjOme3Tzt9Ei5B52P1yGtG
         dlosz8AuneUUhP/W01u6PvO6t0f8M/Gg6b0Gp6i9woRYEfIKixOLWc3AF8OlHyrimziR
         5wA1A7o0E94Xlc+d8gkSfzGW9Dprp6aEcaAivq+sbA//cnO+wFmfWFc68AZL82FSR0zx
         n5ng==
X-Forwarded-Encrypted: i=1; AJvYcCV4NEseVDTezoWOwBGDWsPl3/hivR03dVBg3LpP5IoqSZQxaFO98JIh+YcTlfwza4OhqAy8oGezBzY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxpKm8nXQipunhDKCQbIHw+wmGLRCUX1UicQGxLh1r5stJTBwjo
	aUW1w2lYOKbIK6Km4yOfV41GnORaynWbsQRpxDpyhBY1hwNlg47lNHzC4LLoEJsGlFDs4Gm40i4
	w
X-Google-Smtp-Source: AGHT+IHQF1AQZf6NhJxqq2HjEQZTpBLVmd8tUpZ6yasgZuq8gJes3nm3iarMuhZaGW52PEt/9ZA25A==
X-Received: by 2002:a05:690c:620e:b0:6e0:447:f257 with SMTP id 00721157ae682-6ecb32ee40cmr26536947b3.22.1731495397571;
        Wed, 13 Nov 2024 02:56:37 -0800 (PST)
Date: Wed, 13 Nov 2024 11:56:33 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzSF4es4NJnd3-JP@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <6adc29fc-c6a6-460b-b034-62400e8c193b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6adc29fc-c6a6-460b-b034-62400e8c193b@suse.com>

On Wed, Nov 13, 2024 at 11:36:46AM +0100, Jan Beulich wrote:
> On 13.11.2024 11:30, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>> and then cause probing failure.
> >>>>
> >>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>> corresponding handler into vpci.
> >>>>
> >>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>
> >>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>> setting the new size.
> >>>
> >>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>> time ago I've made a patch to add support for it, but due to lack of
> >>> hardware on my side to test it I've never submitted it.
> >>>
> >>> My approach would be to detect the presence of the
> >>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>> capability is present force the sizing of BARs each time they are
> >>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>> the capability itself, as resizing can only happen when memory
> >>> decoding is not enabled for the device.  It's enough to fetch the size
> >>> of the BARs ahead of each enabling of memory decoding.
> >>>
> >>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>> is already an expensive operation, the extra sizing is unlikely to
> >>> make much of a difference performance wise.
> >>>
> >>> I've found the following on my git tree and rebased on top of staging:
> >> OK.
> >> Do you need me to validate your patch in my environment?
> > 
> > Yes please, I have no way to test it.  Let's see what others think
> > about the different approaches.
> 
> I'd certainly prefer your simpler form, if it's safe and fits the needs.
> 
> >> And I have one question: where does your patch do writing the resizing size into hardware?
> > 
> > dom0 has unrestricted access to the resize capability, so the value
> > written by dom0 is propagated to the hardware without modification.
> > 
> > I would be wary of exposing the resize capability to untrusted
> > domains, as allowing a domU to change the size of BARs can lead to
> > overlapping if the hardware domain hasn't accounted for the increase
> > in BAR size.
> 
> Question is how the feature is used in practice: If it was a driver to
> request the re-size, I'd have a hard time seeing how we could make that
> work without intercepting accesses to the capability for DomU-s (implying
> to expose it in the first place, of course).

Question is also whether the capability is required for guests, as in
OS drivers requesting it to be present for proper operation.

I haven't given much thought about how to expose to domUs.  The
current patch doesn't attempt to expose to domUs either, as the
capability is not added to the 'supported_caps' array.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 10:58:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 10:58:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835361.1251227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBB56-0001BG-1m; Wed, 13 Nov 2024 10:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835361.1251227; Wed, 13 Nov 2024 10:58: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 1tBB55-0001B9-VL; Wed, 13 Nov 2024 10:58:39 +0000
Received: by outflank-mailman (input) for mailman id 835361;
 Wed, 13 Nov 2024 10:58: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=1B9J=SI=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBB54-0001B3-Dj
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 10:58:38 +0000
Received: from mail-oo1-xc31.google.com (mail-oo1-xc31.google.com
 [2607:f8b0:4864:20::c31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39868a86-a1ae-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 11:58:34 +0100 (CET)
Received: by mail-oo1-xc31.google.com with SMTP id
 006d021491bc7-5ee53b30470so2649231eaf.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 02:58: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: 39868a86-a1ae-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMzEiLCJoZWxvIjoibWFpbC1vbzEteGMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM5ODY4YTg2LWExYWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk1NTE0LjE4NjU2Mywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731495513; x=1732100313; 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=tyGWgqc4ibN5N7aw3VjeRozCnjQ/b0STP9Xy3TONgAE=;
        b=cZj64KXq6O1QjJn1m6oBDN/KqvLwSyOw2JDnsPrSl565Q8th1tcYq2uMGE/+bOsEuP
         Eo7eUJ0s/zaZE7Q7J5LRiRKHg7JVMnPJ5NGvsFTzD+M2NCF3JqZW132dKWzBQbexnpFE
         Z0HlrE1PuI9WuP6dahYzHN9qVJHygBn5PzksU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731495513; x=1732100313;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tyGWgqc4ibN5N7aw3VjeRozCnjQ/b0STP9Xy3TONgAE=;
        b=Ncv5FSOARPKi8jyPsP0IjrGFpEyoJ4UMQrlf0wBsiIeI0RvTuFiUQDhKKbz4qtI9dM
         t85AiSDKKOzIybBd2+dlGZhE5MCk2tX0hCFrDxnJchW5/0wATP/4i6jpPu2+Hs4k9klI
         KTqxIQG1EUyBAp6ws5KQKgp+8ol6jaqExcEn0iA7GiXxS5RiYF8JB7om2NChJA4mlXVX
         K/wPTQepx72xCMzOK7Jq3hfLyQlAj9TDjb59KrEMgxEbQlRJycsQJt1XGdf0tlk0OnLH
         3f05uPLZc87vRmi/jKqqIrTQ+iUDPRYYIw5oXpcsSLJyikzsSZwrzy8OFhGbQi67sY2M
         vDmg==
X-Gm-Message-State: AOJu0YxVmhfMBQ5mHwHCGH5rmXcLegE8sSAxgkl+aenLOQnOEMYgClLQ
	RS6ki2edq5XLgb6Pd0c+Yv1Otmx989E+vKRiBiHLx2W2z7k3dub7X4U/NclJUH8IaBgRrn2lYwf
	U1QALCyJVFaMNtxLGUIOHX+/e9gySMb+s+DUisQ==
X-Google-Smtp-Source: AGHT+IGrsiU9GB6w9wgt3PfjjSY63f4/51cCHIRVsxCcOZGxmI55kuJeuPStXbHx8hXL4sIaPlvv8hhi2McG2P9m00o=
X-Received: by 2002:a05:6820:200f:b0:5e5:c073:9ea5 with SMTP id
 006d021491bc7-5ee86a3f3f0mr4146198eaf.6.1731495512792; Wed, 13 Nov 2024
 02:58:32 -0800 (PST)
MIME-Version: 1.0
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-3-andrew.cooper3@citrix.com> <CACHz=ZjO64JZTj4sXZirLpZFDjbd6RE+HGX38Y6u_RN=Jtw9mA@mail.gmail.com>
In-Reply-To: <CACHz=ZjO64JZTj4sXZirLpZFDjbd6RE+HGX38Y6u_RN=Jtw9mA@mail.gmail.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 13 Nov 2024 10:58:22 +0000
Message-ID: <CACHz=ZiF9za7_y-6m5msZUt=tV56AbLDJ85smk+OntGC4Wa=ow@mail.gmail.com>
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
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>, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, 
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 13, 2024 at 10:18=E2=80=AFAM Frediano Ziglio
<frediano.ziglio@cloud.com> wrote:
>
> On Wed, Nov 13, 2024 at 9:31=E2=80=AFAM Andrew Cooper <andrew.cooper3@cit=
rix.com> wrote:
> >
> > The logic is far more sane to follow with a total size, and the positio=
n of
> > the end of the heap.  Remove or fix the the remaining descriptions of h=
ow the
>
> typo: the the
>
> > trampoline is laid out.
> >
> > No functional change.  The compiled binary is identical.
> >
> > 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>
> > CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> > CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> > CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > ---
> >  xen/arch/x86/boot/head.S          | 21 ++-------------------
> >  xen/arch/x86/boot/reloc.c         |  5 ++---
> >  xen/arch/x86/efi/efi-boot.h       |  2 +-
> >  xen/arch/x86/include/asm/config.h |  5 +++--
> >  xen/arch/x86/xen.lds.S            |  2 +-
> >  5 files changed, 9 insertions(+), 26 deletions(-)
> >
> > diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
> > index dcda91cfda49..b31cf83758c1 100644
> > --- a/xen/arch/x86/boot/head.S
> > +++ b/xen/arch/x86/boot/head.S
> > @@ -494,7 +494,7 @@ trampoline_bios_setup:
> >
> >  2:
> >          /* Reserve memory for the trampoline and the low-memory stack.=
 */
> > -        sub     $((TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE)>>4),%ecx
> > +        sub     $TRAMPOLINE_SIZE >> 4, %ecx
> >
> >          /* From arch/x86/smpboot.c: start_eip had better be page-align=
ed! */
> >          xor     %cl, %cl
> > @@ -525,23 +525,6 @@ trampoline_setup:
> >          mov     %eax, sym_esi(multiboot_ptr)
> >  2:
> >
> > -        /*
> > -         * Now trampoline_phys points to the following structure (lowe=
st address
> > -         * is at the bottom):
> > -         *
> > -         * +------------------------+
> > -         * | TRAMPOLINE_STACK_SPACE |
> > -         * +------------------------+
> > -         * |     Data (MBI / PVH)   |
> > -         * +- - - - - - - - - - - - +
> > -         * |    TRAMPOLINE_SPACE    |
> > -         * +------------------------+
> > -         *
> > -         * Data grows downwards from the highest address of TRAMPOLINE=
_SPACE
> > -         * region to the end of the trampoline. The rest of TRAMPOLINE=
_SPACE is
> > -         * reserved for trampoline code and data.
> > -         */
> > -
>
> I fail to see a similar description somewhere now.
>
> >          /* Interrogate CPU extended features via CPUID. */
> >          mov     $1, %eax
> >          cpuid
> > @@ -713,7 +696,7 @@ trampoline_setup:
> >  1:
> >          /* Switch to low-memory stack which lives at the end of trampo=
line region. */
> >          mov     sym_esi(trampoline_phys), %edi
> > -        lea     TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE(%edi),%esp
> > +        lea     TRAMPOLINE_SIZE(%edi), %esp
> >          lea     trampoline_boot_cpu_entry-trampoline_start(%edi),%eax
> >          pushl   $BOOT_CS32
> >          push    %eax
> > diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
> > index e50e161b2740..1f47e10f7fa6 100644
> > --- a/xen/arch/x86/boot/reloc.c
> > +++ b/xen/arch/x86/boot/reloc.c
> > @@ -65,7 +65,7 @@ typedef struct memctx {
> >      /*
> >       * Simple bump allocator.
> >       *
> > -     * It starts from the base of the trampoline and allocates downwar=
ds.
> > +     * It starts from end of of the trampoline heap and allocates down=
wards.
>
> Nice !
> Minor typo "It starts from the end of the trampoline heap and
> allocates downwards."
>
> >       */
> >      uint32_t ptr;
> >  } memctx;
> > @@ -349,8 +349,7 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in=
, memctx *ctx)
> >  /* SAF-1-safe */
> >  void *reloc(uint32_t magic, uint32_t in)
> >  {
> > -    /* Get bottom-most low-memory stack address. */
> > -    memctx ctx =3D { trampoline_phys + TRAMPOLINE_SPACE };
> > +    memctx ctx =3D { trampoline_phys + TRAMPOLINE_HEAP_END };
> >
> >      switch ( magic )
> >      {
> > diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> > index 7930b7c73892..9d3f2b71447e 100644
> > --- a/xen/arch/x86/efi/efi-boot.h
> > +++ b/xen/arch/x86/efi/efi-boot.h
> > @@ -633,7 +633,7 @@ static void __init efi_arch_memory_setup(void)
> >      if ( efi_enabled(EFI_LOADER) )
> >          cfg.size =3D trampoline_end - trampoline_start;
> >      else
> > -        cfg.size =3D TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
> > +        cfg.size =3D TRAMPOLINE_SIZE;
> >
> >      status =3D efi_bs->AllocatePages(AllocateMaxAddress, EfiLoaderData=
,
> >                                     PFN_UP(cfg.size), &cfg.addr);
> > diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/a=
sm/config.h
> > index f8a5a4913b07..20141ede31a1 100644
> > --- a/xen/arch/x86/include/asm/config.h
> > +++ b/xen/arch/x86/include/asm/config.h
> > @@ -51,8 +51,9 @@
> >
> >  #define IST_SHSTK_SIZE 1024
> >
> > -#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
> > -#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
> > +/* See asm/trampoline.h */
>
> I fail to see any description and need for a heap or why the size is 64kb=
.
> There is a description about trampoline code and wakeup code but not
> the fact we copy MBI data and so we need a heap.
> Stack could be just due to the need of it, so implicit, heap a bit less.
>
> > +#define TRAMPOLINE_SIZE         KB(64)
> > +#define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
> >  #define WAKEUP_STACK_MIN        3072
> >
> >  #define MBI_SPACE_MIN           (2 * PAGE_SIZE)
> > diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> > index 35693f6e3380..e7d93d1f4ac3 100644
> > --- a/xen/arch/x86/xen.lds.S
> > +++ b/xen/arch/x86/xen.lds.S
> > @@ -410,7 +410,7 @@ ASSERT(!SIZEOF(.plt),      ".plt non-empty")
> >  ASSERT(!SIZEOF(.rela),     "leftover relocations")
> >  #endif
> >
> > -ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_SPACE - MBI_SP=
ACE_MIN,
> > +ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_HEAP_END - MBI=
_SPACE_MIN,
> >      "not enough room for trampoline and mbi data")
> >  ASSERT((wakeup_stack - wakeup_stack_start) >=3D WAKEUP_STACK_MIN,
> >      "wakeup stack too small")
>
> Code is nice, just that documentation is stated but missing in my opinion=
.
>

Hi,
  I realized I messed the first patch of the series, so with that,
beside the small typos

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:01:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835371.1251238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBB7q-00030N-GF; Wed, 13 Nov 2024 11:01:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835371.1251238; Wed, 13 Nov 2024 11:01: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 1tBB7q-00030G-DP; Wed, 13 Nov 2024 11:01:30 +0000
Received: by outflank-mailman (input) for mailman id 835371;
 Wed, 13 Nov 2024 11:01: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBB7p-00030A-CS
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:01:29 +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 a029ee57-a1ae-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:01:25 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4315f24a6bbso54274005e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:01: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-432d55520e5sm19903565e9.41.2024.11.13.03.01.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03: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: a029ee57-a1ae-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImEwMjllZTU3LWExYWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk1Njg1Ljc1NDg3NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731495685; x=1732100485; 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=dRbd4eXvQP48G1pPg8jShRt7iIY6oHooE/oOpgJl688=;
        b=CZwi0AOCsaz7jfvXsOUM8AoPaWZ0jM+U7a8RtJkvBvGjukIY7iCSpuPmHBgjUf1gjm
         4Zy5dKYFb2lh43Bzpv0g/39EXMB/d3iJ4pxa8UZJ6HapzBqbikaazlxzlJncLRPjbnJb
         N6jUUxo38RLpk/KUe4CEMYbZscTEoqMlnq1rXCidzhkgTZkAQAk6WPpshEXzPQe/i9YT
         1as3JaqzzcilAqcHwFpeU6BJjzOubU13hFnKv1t0tB5RiazUFvNlBuK/bbLVagyOI07Q
         6EHt9e3USaDEXjm2Lb6kHPLvqUYbShPIUBA6S4hf8DvYEHzj3Wb69PJhNMH2RTzwRXu6
         stcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731495685; x=1732100485;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dRbd4eXvQP48G1pPg8jShRt7iIY6oHooE/oOpgJl688=;
        b=b7uSuW0NEN2/V+8N3gZB1+GSKGLAV2Ywat7rA4AwbtXP/jcNfYXYLufC6BoZo5y4FC
         F4P0m+YPrb/wfAv69PLfex0yd2KmpmH90nK46WYHUwzXgRec5x2G1f7YyivLBUmdWDvh
         j70uXQVtuvRSEH56iiGtB2dYy9cs/0W+NBgqO7XQu7TNWwlHXAOQnSpA3zkq4L9GOeja
         DMJZ47pvOLrCSOgazRdB1YB3dyzc424es8UpU5nPZBLz7ExC7SQymmbaYEYiaItyCUOU
         hzahmaiv2+A+jq3qRR7GEJgisSGslG5xf3hoFVYii+hbi/P1Fml3mBy6r8TYX07UpLuh
         Ktzg==
X-Forwarded-Encrypted: i=1; AJvYcCWu5fTtjycx2M8iJ1Z18rk8USM4xF+iFEbSJ5+9eYOTF3fOZo4Ir1odvBn2JBw+j1ViF1iyk0z/8fU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKRuTO2KdlxZgr1IJjXE0te/iNa7Zq81MUZpklXPK8vCYKCE0o
	/H7/lZsmHJqwiR84MqeEayJyY+pVvrErsf7hiAG02Q+OhrOvqDjeLQGMPdOcOg==
X-Google-Smtp-Source: AGHT+IFqodXqTHKLBRwu2wMNAVtrXCzwf/hzFOSzaN0TGfFbwNuQgSqmr9w7qq1IWzHeRo9UI46+qw==
X-Received: by 2002:a05:600c:8608:b0:431:4c14:abf4 with SMTP id 5b1f17b1804b1-432b7887154mr171756885e9.14.1731495685117;
        Wed, 13 Nov 2024 03:01:25 -0800 (PST)
Message-ID: <38aa85ae-b398-4d23-82bb-6586457126f2@suse.com>
Date: Wed, 13 Nov 2024 12:01:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vpci: Add resizable bar support
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook> <6adc29fc-c6a6-460b-b034-62400e8c193b@suse.com>
 <ZzSF4es4NJnd3-JP@macbook>
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: <ZzSF4es4NJnd3-JP@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 11:56, Roger Pau MonnÃ© wrote:
> On Wed, Nov 13, 2024 at 11:36:46AM +0100, Jan Beulich wrote:
>> On 13.11.2024 11:30, Roger Pau MonnÃ© wrote:
>>> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
>>>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
>>>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
>>>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
>>>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
>>>>>> and then cause probing failure.
>>>>>>
>>>>>> According to PCIe spec, each bar that support resizing has two registers,
>>>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
>>>>>> corresponding handler into vpci.
>>>>>>
>>>>>> PCI_REBAR_CAP is RO, only provide reading.
>>>>>>
>>>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
>>>>>> setting the new size.
>>>>>
>>>>> I think the logic to handle resizable BAR could be much simpler.  Some
>>>>> time ago I've made a patch to add support for it, but due to lack of
>>>>> hardware on my side to test it I've never submitted it.
>>>>>
>>>>> My approach would be to detect the presence of the
>>>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
>>>>> capability is present force the sizing of BARs each time they are
>>>>> mapped in modify_bars().  I don't think we need to trap accesses to
>>>>> the capability itself, as resizing can only happen when memory
>>>>> decoding is not enabled for the device.  It's enough to fetch the size
>>>>> of the BARs ahead of each enabling of memory decoding.
>>>>>
>>>>> Note that memory decoding implies mapping the BARs into the p2m, which
>>>>> is already an expensive operation, the extra sizing is unlikely to
>>>>> make much of a difference performance wise.
>>>>>
>>>>> I've found the following on my git tree and rebased on top of staging:
>>>> OK.
>>>> Do you need me to validate your patch in my environment?
>>>
>>> Yes please, I have no way to test it.  Let's see what others think
>>> about the different approaches.
>>
>> I'd certainly prefer your simpler form, if it's safe and fits the needs.
>>
>>>> And I have one question: where does your patch do writing the resizing size into hardware?
>>>
>>> dom0 has unrestricted access to the resize capability, so the value
>>> written by dom0 is propagated to the hardware without modification.
>>>
>>> I would be wary of exposing the resize capability to untrusted
>>> domains, as allowing a domU to change the size of BARs can lead to
>>> overlapping if the hardware domain hasn't accounted for the increase
>>> in BAR size.
>>
>> Question is how the feature is used in practice: If it was a driver to
>> request the re-size, I'd have a hard time seeing how we could make that
>> work without intercepting accesses to the capability for DomU-s (implying
>> to expose it in the first place, of course).
> 
> Question is also whether the capability is required for guests, as in
> OS drivers requesting it to be present for proper operation.
> 
> I haven't given much thought about how to expose to domUs.  The
> current patch doesn't attempt to expose to domUs either, as the
> capability is not added to the 'supported_caps' array.

Hmm, I see. Yet then adding support to vPCI, but limited to Dom0, ends up
odd in two ways: Another aspect that'll need dealing with for DomU-s, and
the same functionality remaining unavailable (or at least not properly
available, with all possible side effects) to PV Dom0.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:03:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:03:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835381.1251247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBB9q-0003vP-RK; Wed, 13 Nov 2024 11:03:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835381.1251247; Wed, 13 Nov 2024 11:03: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 1tBB9q-0003vI-Od; Wed, 13 Nov 2024 11:03:34 +0000
Received: by outflank-mailman (input) for mailman id 835381;
 Wed, 13 Nov 2024 11:03: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=ZFwE=SI=bugseng.com=federico.serafini@srs-se1.protection.inumbo.net>)
 id 1tBB9p-0003vC-St
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:03:33 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea42c155-a1ae-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:03:30 +0100 (CET)
Received: from [192.168.1.113] (93-36-216-241.ip62.fastwebnet.it
 [93.36.216.241])
 by support.bugseng.com (Postfix) with ESMTPSA id 31E934EE073E;
 Wed, 13 Nov 2024 12:03:29 +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: ea42c155-a1ae-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImVhNDJjMTU1LWExYWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk1ODEwLjEyNTMyMiwic2VuZGVyIjoiZmVkZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731495809; bh=mMNm0qgI8mqfe7FAQY2Z8Nys2gA2oyNfp4n2WhDSpOI=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=wtMcPZa7VmZzt7UJC6dGXai2UBuKu68ntwytoRHObnGLpv2k5PjEhH3yQi3C2eye/
	 1bSa29/fnIHe7LoM8drw7capx5anL5vBsCf4sigd2OQM3vilDX+Xvk+viLCtkoBhf3
	 uoU+dFL+pei55EbYN0Sm9/wUZapME99GglY+dtrIbIhl9VGQEosaHFKFuS6AgDb1Wx
	 +t50igu7lvMvhzGO6vMj4BWE8M1YFfGJWbefjEssrz+OpwdNuEU/lM5Uy3mQ9c4PSN
	 TVp1abmnn+E5F1dn2AUQA3OUbFed0bgamaHx2sGtyVIM6Fi011Cjuyxa7bRaGtxZlv
	 U7aU4NJCvyU2w==
Message-ID: <4d9d499e-c797-49c1-87a9-abe9a1fbd92d@bugseng.com>
Date: Wed, 13 Nov 2024 12:03:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 3/3] automation/eclair: tag Rule 16.3 as clean
To: Jan Beulich <jbeulich@suse.com>
Cc: consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1731485149.git.federico.serafini@bugseng.com>
 <30ebf4ab10923dde132f0df60bc7445dc892affe.1731485149.git.federico.serafini@bugseng.com>
 <016ab4be-b6b5-4bee-be80-11579f3d8146@suse.com>
Content-Language: en-US, it
From: Federico Serafini <federico.serafini@bugseng.com>
Organization: BUGSENG
In-Reply-To: <016ab4be-b6b5-4bee-be80-11579f3d8146@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/11/24 10:57, Jan Beulich wrote:
> On 13.11.2024 09:17, Federico Serafini wrote:
>> Tag MISRA C:2012 Rule 16.3 as clean for both architectures:
>> new violations will cause a failure of the CI/CD pipeline.
>>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>> ---
>> No changes from v1.
>> ---
>>   automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Where did Stefano's (conditional) ack go?

I missed it, sorry.

-- 
Federico Serafini, M.Sc.

Software Engineer, BUGSENG
Ph.D. Student, Ca' Foscari University of Venice



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:19:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835393.1251257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBPQ-0006bB-4u; Wed, 13 Nov 2024 11:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835393.1251257; Wed, 13 Nov 2024 11:19: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 1tBBPQ-0006b4-2G; Wed, 13 Nov 2024 11:19:40 +0000
Received: by outflank-mailman (input) for mailman id 835393;
 Wed, 13 Nov 2024 11:19: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBBPO-0006ay-IU
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:19:38 +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 27afe738-a1b1-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:19:32 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5cf6f7ee970so436625a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:19:32 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0def7ecsm848240266b.158.2024.11.13.03.19.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03:19: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: 27afe738-a1b1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3YWZlNzM4LWExYjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk2NzcyLjQ0MDYwOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731496771; x=1732101571; 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=vW4oNeHQKl5BwHakEplRGXg6msXn+kdcD1qtCew+gns=;
        b=HM/551UHNfDVHcarzi9YLiAKf3Z3RYv6PXjcoGsZIycAjA2X1igwBCi7EC45v62wgh
         CR8D7pEFOLEIs2iKbk3GbccaR4RaqH/HQLwfE45ShwTcjOljh9l9336fuLsj5h0fJwxo
         qyZ1cWzAWH6wv+IX+QjQ9M6U4zfuGPmZWq1cI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731496771; x=1732101571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vW4oNeHQKl5BwHakEplRGXg6msXn+kdcD1qtCew+gns=;
        b=pwPmWcyyCudLEQDif2vAqvXJtdRWdTAJwutUwQT0QYdusg4zooosjwME+yyVxTXfGq
         1ubMDAZX17tKQ6NP0y2w06sxUbgpMe3A86NTUR0mHIBtxDtwkloTjwCI29IkGnFqGz2Y
         agvlRNpk31cA/CkdjmczzzXquKJLVmiYgPCChj+lanQNA3cUNFjxeP4wHxe3niL5HxnT
         4Ov/KurHkFcR9JuRGAhQC0wUSRMvopS3Gsm+hBIBi+GdkLX2w+bE9Ge9eEZJ+LoH4UVR
         iX3i0wptxQ8HVr5hvsfub8ESURuH655Xet9zvAhMjtPE1a4hPnxfgTkAhd+zL4peGA2z
         Pihw==
X-Forwarded-Encrypted: i=1; AJvYcCXpWNH5IBkm5j5v9wQcMcXPbE+y2eR6zT8cNMB46GHId4CE9C6wMVUbV/nFNnAgUEeNxGFVV4UwG5k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxNQ+z7CKHYRU+pfbKegp4Eu7rgK0WZz0VfU9qMqnxqUPzY6GoQ
	SEwbOfK+vlQj6ynI+Uzx9anKVMCEmRgjNZgQWBe+GMuE9uPEiKXP1D74MORI4Ko=
X-Google-Smtp-Source: AGHT+IEezGIXRZqzThDP4WYtFQwarXymw5Gc5COEIalsqyb5M3JFQk08PKcAlH9/sb6ve2vSf33Z2A==
X-Received: by 2002:a17:906:ee81:b0:a9a:646e:d2f7 with SMTP id a640c23a62f3a-aa1c5824da2mr494766466b.61.1731496771416;
        Wed, 13 Nov 2024 03:19:31 -0800 (PST)
Message-ID: <db7d200d-a13c-4cb4-9860-5a40cc039db7@citrix.com>
Date: Wed, 13 Nov 2024 11:19:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/trampoline: Document how the trampoline is laid
 out
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-2-andrew.cooper3@citrix.com>
 <5f58dda2-1619-4416-b711-c600367d6f47@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <5f58dda2-1619-4416-b711-c600367d6f47@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13/11/2024 10:20 am, Jan Beulich wrote:
> On 13.11.2024 10:30, Andrew Cooper wrote:
>> This is, to the best of my knowledge, accurate.  I am providing no comment on
>> how sane I believe it to be.
>>
>> At the time of writing, the sizes of the regions are:
>>
>>           offset  size
>>   AP:     0x0000  0x00b0
>>   S3:     0x00b0  0x0140
>>   Boot:   0x01f0  0x1780
>>   Heap:   0x1970  0xe690
>>   Stack:  0xf000  0x1000
>>
>> and wakeup_stack overlays boot_edd_info.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
>> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
>> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
>> ---
>>  xen/arch/x86/include/asm/trampoline.h | 55 ++++++++++++++++++++++++++-
>>  1 file changed, 53 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
>> index 8c1e0b48c2c9..d801bea400dc 100644
>> --- a/xen/arch/x86/include/asm/trampoline.h
>> +++ b/xen/arch/x86/include/asm/trampoline.h
>> @@ -37,12 +37,63 @@
>>   * manually as part of placement.
>>   */
>>  
>> +/*
>> + * Layout of the trampoline.  Logical areas, in ascending order:
>> + *
>> + * 1) AP boot:
>> + *
>> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
>> + *    mapping (which must be executable) can at least be Read Only.
>> + *
>> + * 2) S3 resume:
>> + *
>> + *    The S3 wakeup logic may need to interact with the BIOS, so needs a
>> + *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
>> + *    undefined part of the the boot trampoline.  The stack is only used with
>> + *    paging disabled.
>> + *
>> + * 3) Boot trampoline:
>> + *
>> + *    This region houses various data used by the AP/S3 paths too.
> This is confusing to have here - isn't the boot part (that isn't in the
> same page as the tail of the AP/S3 region) being boot-time only, and hence
> unavailable for S3 and post-boot AP bringup? Both here and with the numbers
> in the description - what position did you use as separator between 2) and
> 3)?
>
> Then again it may be just me who is confused: Didn't we, at some point, limit
> the resident trampoline to just one page? Was that only a plan, or a patch
> that never was committed?

The positioning of various things is rather complicated.

Only a single 4k page is mapped into idle_pg_table[].

But, the AP/S3 path use:
Â  trampoline_cpu_started
Â  idt_48
Â  gdt_48
Â  trampoline_xen_phys_start
Â  trampoline_misc_enable_off
Â  trampoline_efer

Which is beyond the content of wakeup.S.Â  The GDT in particular needs to
stay valid with paging enabled, to load __HYPERVISOR_CS.

We have /* From here on early boot only. */ in trampoline.S but that
seems to be the extent of checking.Â  Everything needed for AP/S3 is in
the first 0x229.

I'm open to suggestions for how to describe this better, although the
left hand side of the diagram is already very busy.

I suppose I could do AP+S3 as a single section, along their combined data?

>
>>  The boot
>> + *    trampoline collects data from the BIOS (E820/EDD/EDID/etc), so needs a
>> + *    stack.  The stack pointer is set to trampoline_phys + 64k and has 4k
>> + *    space reserved.
>> + *
>> + * 4) Heap space:
>> + *
>> + *    The first 1k of heap space is statically allocated for VESA information.
>> + *
>> + *    The remainder of the heap is used by reloc(), logic which is otherwise
>> + *    outside of the trampoline, to collect the bootloader metadata (cmdline,
>> + *    module list, etc).  It does so with a bump allocator starting from the
>> + *    end of the heap and allocating backwards.
>> + *
>> + * 5) Boot stack:
>> + *
>> + *    4k of space is reserved for the boot stack, at trampoline_phys + 64k.
> Perhaps add "ending" to clarify it doesn't go beyond +64k? It's being expressed
> ...

Ah yes.Â  That ended up less clear than I was intending.Â  I'll adjust.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:21:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835400.1251269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBRB-0008LX-GV; Wed, 13 Nov 2024 11:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835400.1251269; Wed, 13 Nov 2024 11:21: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 1tBBRB-0008LQ-C3; Wed, 13 Nov 2024 11:21:29 +0000
Received: by outflank-mailman (input) for mailman id 835400;
 Wed, 13 Nov 2024 11:21: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBBRA-0008K3-F1
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:21:28 +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 6a0faefe-a1b1-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 12:21:23 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3807dd08cfcso6356970f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:21: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-381eda03e42sm18418731f8f.89.2024.11.13.03.21.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03:21: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: 6a0faefe-a1b1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhMGZhZWZlLWExYjEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk2ODgzLjUzOTg2NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731496883; x=1732101683; 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=WgyamnwBW/NroMdOkv1kV3RRKC/pIbtp4FG9e+3AD4o=;
        b=ZTVgiyqixMDdmsPWhiVmltIl16UqbixYif+OdajgEKOEgtUFV+PPn66/pBLewsNQxP
         X5qZ1Xf7quc1/aikvqIR+hmgfX5ZLcxt/YnwT9AuntUX2PSIaeWi9jR9vyh3H+6ozD4X
         iUOrH+COnkeMzBEAXs3c38O2tbZ0rGp/VmBzHv3Z6xBbhaNnR9b7/D54ojIRwi0ge1BS
         M8loPlnQsk6WQi0hEr1kvt1XqPXivZI3rL/Zen3VMue2zuVw2hz3fqDrJD18m1Hr11+y
         u7xGfrKAoe26so4Js/VX8/lODJoCtK757mk8wKgqVnX3MHdjIbBS14RiNIRjanfLL0Yc
         SbYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731496883; x=1732101683;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=WgyamnwBW/NroMdOkv1kV3RRKC/pIbtp4FG9e+3AD4o=;
        b=tmqtqlcQSUk8/KFcB7xW19/EnKmGwjXKDuV1hkOF23t6wNLgbT8JtFTsmPk4mm7jKx
         rjsDETjw6YFfymthmf3kIy0ooUhNvjCUBRlwT4/v3yJU8NKnGCaGTpogf75kZzaXyHzU
         d+Nz9kSb4r3aTH/CNK6XY1nAWDbWTH/YMvW323KcFRkAMlgwUS9NpYdGyhQOLDVkGEnv
         FEIMkRKe5An51ncdlzSBftyyZcF3Wp25kV/82hA5n/wegkOU+YrDjsRqdIm3PJMfbh9D
         1sW3FM5BwX1Ohnsk/XFXh5r2F0SBxjk/KiyhEnDDnGBcTsD9C4Y0xDezLgQ791QjHHcj
         Da5Q==
X-Gm-Message-State: AOJu0Yzbp1yjD3Ik0c/5kf6fov/uVrs9gGdeHyBeFxowlsGPS2HIV5J5
	4zYeobLrqBBJRj0+/KxX0uwEa26evSV+6iZ5y+NWpDn5vlAujKhIIUaUP2bg+ga62dcAG6LmaLw
	=
X-Google-Smtp-Source: AGHT+IFiSoCIBYQDdZUd/KBebnUsbAuy+2LUQzy+YpExvSsDZSZuEBb/uHUPrm18fYs381cYCGKSRQ==
X-Received: by 2002:a05:6000:480d:b0:381:ebf5:8180 with SMTP id ffacd0b85a97d-381f1889d5bmr22802272f8f.50.1731496882768;
        Wed, 13 Nov 2024 03:21:22 -0800 (PST)
Message-ID: <655bd278-b3b4-4c7c-876c-ff5af335b4f1@suse.com>
Date: Wed, 13 Nov 2024 12:21:21 +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] x86emul: avoid double memory read for RORX
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

Originally only twobyte_table[0x3a] determined what part of generic
operand fetching (near the top of x86_emulate()) comes into play. When
ext0f3a_table[] was added, ->desc was updated to properly describe the
ModR/M byte's function. With that generic source operand fetching came
into play for RORX, rendering the explicit fetching in the respective
case block redundant (and wrong at the very least when MMIO with side
effects is accessed).

While there also make a purely cosmetic / documentary adjustment to
ext0f3a_table[]: RORX really is a 2-operand insn, MOV-like in that it
only writes its destination register.

Fixes: 9f7f5f6bc95b ("x86emul: add tables for 0f38 and 0f3a extension space")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -521,7 +521,7 @@ static const struct ext0f3a_table {
     [0xce ... 0xcf] = { .simd_size = simd_packed_int, .d8s = d8s_vl },
     [0xde] = { .simd_size = simd_other },
     [0xdf] = { .simd_size = simd_packed_int, .two_op = 1 },
-    [0xf0] = {},
+    [0xf0] = { .two_op = 1 /* Mov */ },
 };
 
 static const opcode_desc_t xop_table[] = {
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -7693,11 +7693,6 @@ x86_emulate(
     case X86EMUL_OPC_VEX_F2(0x0f3a, 0xf0): /* rorx imm,r/m,r */
         vcpu_must_have(bmi2);
         generate_exception_if(vex.l || vex.reg != 0xf, X86_EXC_UD);
-        if ( ea.type == OP_REG )
-            src.val = *ea.reg;
-        else if ( (rc = read_ulong(ea.mem.seg, ea.mem.off, &src.val, op_bytes,
-                                   ctxt, ops)) != X86EMUL_OKAY )
-            goto done;
         if ( mode_64bit() && vex.w )
             asm ( "rorq %b1,%0" : "=g" (dst.val) : "c" (imm1), "0" (src.val) );
         else


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:23:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835410.1251278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBTZ-0000sv-U1; Wed, 13 Nov 2024 11:23:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835410.1251278; Wed, 13 Nov 2024 11:23: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 1tBBTZ-0000so-R4; Wed, 13 Nov 2024 11:23:57 +0000
Received: by outflank-mailman (input) for mailman id 835410;
 Wed, 13 Nov 2024 11:23: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=1B9J=SI=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBBTY-0000sg-Fm
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:23:56 +0000
Received: from mail-oi1-x231.google.com (mail-oi1-x231.google.com
 [2607:f8b0:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c32a42f8-a1b1-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 12:23:53 +0100 (CET)
Received: by mail-oi1-x231.google.com with SMTP id
 5614622812f47-3e5fa17a79dso4140442b6e.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:23: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: c32a42f8-a1b1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoyMzEiLCJoZWxvIjoibWFpbC1vaTEteDIzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMzMmE0MmY4LWExYjEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk3MDMzLjU4Nzg2Mywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731497032; x=1732101832; 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=YPHFE5kCwXx4Pl6Fmdy987797wTPP1/zVY1hpu4sE5I=;
        b=dJmGnmn4zG7JQzz/24Gq1fpSWhudgSKQeVJyn+9hTOY8Y3dd756ZB3oiDPGbfc3V3Q
         Aaq4Ztu5qlb4jTqzAvU8QuPeKa+sODbD6g0gtfdTKx6MCmoRV80f46jBQVttFxAJv4az
         pXp13XVyt3h/PZzKNwGXmvzxtcu6G75X7Z5lk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731497032; x=1732101832;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YPHFE5kCwXx4Pl6Fmdy987797wTPP1/zVY1hpu4sE5I=;
        b=oTxQq/zXy2xU1h733omaimWZEvWWFhEf7wDLk+H5alr22uSJURnCxdczJyxo9bUoeO
         lM7QaSscCfBdKzyzhyXcV3fBFHVxdTPWwmZtTE8l3QA4VB2HaJLAjccbjsCFvdf7ghOg
         o6+Tlir/PPodwKlLp5oz5x/sfy9a9U1Qv4jVbrXbEHs9SwnvxnWrEZatdy9vq/ovOg5C
         BUHlA/pAT6HFQVzklwD+qspdTPcvBbx/OyyMiDTFp8BMaxbMYfEuYUjzWBYJVjMzrrf0
         0typVddbNPnos3G8dgAc8p15FgDPhU7rmkGg2SBlwJwBHaFLM0ZFXGJfOI6ME96M8APm
         cFjQ==
X-Forwarded-Encrypted: i=1; AJvYcCWgEJAqa+FLbiHxKeK5qmSWhdByNcxlopvfFGA8yb8dKyJZv1GQR5+CKjld57W7Hcp1J/EijHH5VRs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxnPunuDUVHfwZA79WosdYO/XhODHqc3tunyNDZ2s4hLB9WNUoi
	uDxH7cVtKecm+A9NIco8vjZ3vjfeTxE5fkHpKlCm84Mc/DDE9zAJmlSuPq7Job4XNX1kPOdZ9UA
	rbWbMlx/w/mFbjMHxgxs3IUP202jd2nRCrf1h0Q==
X-Google-Smtp-Source: AGHT+IH3p8Kyl/HLUSPOvrrobOriQE2J3rXyddnItnpg3bvmyUiR8Fz4CBMDZnLVDfeOGKiJjww52c3MjaCeO5FiO2w=
X-Received: by 2002:a05:6808:3ca:b0:3e7:ab12:b55 with SMTP id
 5614622812f47-3e7ab120c29mr5369605b6e.4.1731497032125; Wed, 13 Nov 2024
 03:23:52 -0800 (PST)
MIME-Version: 1.0
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-2-andrew.cooper3@citrix.com> <5f58dda2-1619-4416-b711-c600367d6f47@suse.com>
 <db7d200d-a13c-4cb4-9860-5a40cc039db7@citrix.com>
In-Reply-To: <db7d200d-a13c-4cb4-9860-5a40cc039db7@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 13 Nov 2024 11:23:41 +0000
Message-ID: <CACHz=ZjAbzFrws-PTTYs8DnffHQ24TaDCAY4bm_oihJJaUyTSA@mail.gmail.com>
Subject: Re: [PATCH 1/2] x86/trampoline: Document how the trampoline is laid out
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, 
	Alejandro Vallejo <alejandro.vallejo@cloud.com>, Xen-devel <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 13, 2024 at 11:19=E2=80=AFAM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> On 13/11/2024 10:20 am, Jan Beulich wrote:
> > On 13.11.2024 10:30, Andrew Cooper wrote:
> >> This is, to the best of my knowledge, accurate.  I am providing no com=
ment on
> >> how sane I believe it to be.
> >>
> >> At the time of writing, the sizes of the regions are:
> >>
> >>           offset  size
> >>   AP:     0x0000  0x00b0
> >>   S3:     0x00b0  0x0140
> >>   Boot:   0x01f0  0x1780
> >>   Heap:   0x1970  0xe690
> >>   Stack:  0xf000  0x1000
> >>
> >> and wakeup_stack overlays boot_edd_info.
> >>
> >> 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>
> >> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> >> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> >> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> >> ---
> >>  xen/arch/x86/include/asm/trampoline.h | 55 ++++++++++++++++++++++++++=
-
> >>  1 file changed, 53 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/incl=
ude/asm/trampoline.h
> >> index 8c1e0b48c2c9..d801bea400dc 100644
> >> --- a/xen/arch/x86/include/asm/trampoline.h
> >> +++ b/xen/arch/x86/include/asm/trampoline.h
> >> @@ -37,12 +37,63 @@
> >>   * manually as part of placement.
> >>   */
> >>
> >> +/*
> >> + * Layout of the trampoline.  Logical areas, in ascending order:
> >> + *
> >> + * 1) AP boot:
> >> + *
> >> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the=
 identity
> >> + *    mapping (which must be executable) can at least be Read Only.
> >> + *
> >> + * 2) S3 resume:
> >> + *
> >> + *    The S3 wakeup logic may need to interact with the BIOS, so need=
s a
> >> + *    stack.  The stack pointer is set to trampoline_phys + 4k and cl=
obbers an
> >> + *    undefined part of the the boot trampoline.  The stack is only u=
sed with
> >> + *    paging disabled.
> >> + *
> >> + * 3) Boot trampoline:
> >> + *
> >> + *    This region houses various data used by the AP/S3 paths too.
> > This is confusing to have here - isn't the boot part (that isn't in the
> > same page as the tail of the AP/S3 region) being boot-time only, and he=
nce
> > unavailable for S3 and post-boot AP bringup? Both here and with the num=
bers
> > in the description - what position did you use as separator between 2) =
and
> > 3)?
> >
> > Then again it may be just me who is confused: Didn't we, at some point,=
 limit
> > the resident trampoline to just one page? Was that only a plan, or a pa=
tch
> > that never was committed?
>
> The positioning of various things is rather complicated.
>
> Only a single 4k page is mapped into idle_pg_table[].
>
> But, the AP/S3 path use:
>   trampoline_cpu_started
>   idt_48
>   gdt_48
>   trampoline_xen_phys_start
>   trampoline_misc_enable_off
>   trampoline_efer
>
> Which is beyond the content of wakeup.S.  The GDT in particular needs to
> stay valid with paging enabled, to load __HYPERVISOR_CS.
>
> We have /* From here on early boot only. */ in trampoline.S but that
> seems to be the extent of checking.  Everything needed for AP/S3 is in
> the first 0x229.
>
> I'm open to suggestions for how to describe this better, although the
> left hand side of the diagram is already very busy.
>
> I suppose I could do AP+S3 as a single section, along their combined data=
?
>
> >
> >>  The boot
> >> + *    trampoline collects data from the BIOS (E820/EDD/EDID/etc), so =
needs a
> >> + *    stack.  The stack pointer is set to trampoline_phys + 64k and h=
as 4k
> >> + *    space reserved.
> >> + *
> >> + * 4) Heap space:
> >> + *
> >> + *    The first 1k of heap space is statically allocated for VESA inf=
ormation.
> >> + *
> >> + *    The remainder of the heap is used by reloc(), logic which is ot=
herwise
> >> + *    outside of the trampoline, to collect the bootloader metadata (=
cmdline,
> >> + *    module list, etc).  It does so with a bump allocator starting f=
rom the
> >> + *    end of the heap and allocating backwards.
> >> + *
> >> + * 5) Boot stack:
> >> + *
> >> + *    4k of space is reserved for the boot stack, at trampoline_phys =
+ 64k.
> > Perhaps add "ending" to clarify it doesn't go beyond +64k? It's being e=
xpressed
> > ...
>
> Ah yes.  That ended up less clear than I was intending.  I'll adjust.
>

With that

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:24:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:24:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835414.1251288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBTu-0001JP-5s; Wed, 13 Nov 2024 11:24:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835414.1251288; Wed, 13 Nov 2024 11:24: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 1tBBTu-0001JI-1k; Wed, 13 Nov 2024 11:24:18 +0000
Received: by outflank-mailman (input) for mailman id 835414;
 Wed, 13 Nov 2024 11:24: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBBTs-0000sg-6u
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:24:16 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cfa05c81-a1b1-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 12:24:13 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-37d70df0b1aso4317261f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:24: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-381ed99790csm18250325f8f.46.2024.11.13.03.24.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03:24: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: cfa05c81-a1b1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNmYTA1YzgxLWExYjEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk3MDUzLjg1MzM4Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731497053; x=1732101853; 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=CUEMOdNO3pDHYjHZvL7Na3rFQHXALDVHjrXZIk91uEg=;
        b=HJTFp/zxqerWBAK2fvEMuXPRzg/NtHvDGwGUQvdVvnHuVHEm2PR2JvEYB0vawGZXhX
         Rc8ycY9SzvhHcInDe3SlozsZKEo2lQrqS4IYXUgtHOX+0VOqsX8TrzbmpJpzAVPGMYVw
         oOE2p+m/7LlJQUwLLLyW1qaJWMN31km6W+yqdrtoETefO+SRZEiWcDWV3Tfrrm/zhZnZ
         O8TIWKNrqv24JOZkVh+WX+pNKICz2/3PaycSHP3zWn3vnHp1QrZosHY5oLISGZmEBZu1
         mSslIVfQSD6/q6aZurMCtZxoDcNmM37xMCPOzN3gQAVyCFizHk0t+k7ldpZrqFRgMIm2
         L6Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731497053; x=1732101853;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CUEMOdNO3pDHYjHZvL7Na3rFQHXALDVHjrXZIk91uEg=;
        b=axJFp00He55FKhmv0U6QVO/D8Cdv1GYCs5Q/Awp5+Kwf7hHwmPlGeIWc2BPumo3TI+
         tVv8IF8XVfDCoG+s8eXHXUXhGfCrhHfPM+sUwdv4VB6lWQh/y+pwK+dzKBzz6U5SSD5T
         AnuodinIyfy/dlJORJvlViiJA+uSRubzOtFKDZo+FboSMcz9QZuSNBiJ9JwECzCyaxwp
         prsYDFxsD8ffhJhZyfvJ4r8jDIqzngBxK+m4cdHkMTQYFKcwmlpVoS456O2IVrQoX6Fn
         ZLLKFv3sDyCWnpUFbtnxFZ2ZeBoo63TR8mrBTeJGM34kBVd0Rd8BWhgqmXlEqY6OGP81
         Eu7g==
X-Forwarded-Encrypted: i=1; AJvYcCW+lYxj/sZoULTPKzLJTV9NbSNQxkmlAPKU39FefIGASbtn9qLHtFJQOgCRwWjikCPEPicPqjT/fU8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1UTF3zBhM0ejJ9ASLSDBh84gc1twVvv9MgogPLSoi6yFwvJlB
	scsjaExcshZgoVtZAhte3TJFe6tDKktSId0Cb9zhc6MvGxchJNLmwlUfl74GCA==
X-Google-Smtp-Source: AGHT+IGGn+zVUSrJ+CGKWxd1a6Nh7AZ9b9QJ94a5hjEIxS3gZw9aMSngoLDJdxMvAwSEmpdGXjCcPQ==
X-Received: by 2002:a5d:5f93:0:b0:37d:493c:f7b8 with SMTP id ffacd0b85a97d-381f1867129mr16831314f8f.2.1731497053160;
        Wed, 13 Nov 2024 03:24:13 -0800 (PST)
Message-ID: <4fca3f1d-2b5f-4353-86bd-64488e12ca72@suse.com>
Date: Wed, 13 Nov 2024 12:24:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/trampoline: Document how the trampoline is laid
 out
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-2-andrew.cooper3@citrix.com>
 <5f58dda2-1619-4416-b711-c600367d6f47@suse.com>
 <db7d200d-a13c-4cb4-9860-5a40cc039db7@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: <db7d200d-a13c-4cb4-9860-5a40cc039db7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 12:19, Andrew Cooper wrote:
> On 13/11/2024 10:20 am, Jan Beulich wrote:
>> On 13.11.2024 10:30, Andrew Cooper wrote:
>>> This is, to the best of my knowledge, accurate.  I am providing no comment on
>>> how sane I believe it to be.
>>>
>>> At the time of writing, the sizes of the regions are:
>>>
>>>           offset  size
>>>   AP:     0x0000  0x00b0
>>>   S3:     0x00b0  0x0140
>>>   Boot:   0x01f0  0x1780
>>>   Heap:   0x1970  0xe690
>>>   Stack:  0xf000  0x1000
>>>
>>> and wakeup_stack overlays boot_edd_info.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
>>> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
>>> ---
>>>  xen/arch/x86/include/asm/trampoline.h | 55 ++++++++++++++++++++++++++-
>>>  1 file changed, 53 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
>>> index 8c1e0b48c2c9..d801bea400dc 100644
>>> --- a/xen/arch/x86/include/asm/trampoline.h
>>> +++ b/xen/arch/x86/include/asm/trampoline.h
>>> @@ -37,12 +37,63 @@
>>>   * manually as part of placement.
>>>   */
>>>  
>>> +/*
>>> + * Layout of the trampoline.  Logical areas, in ascending order:
>>> + *
>>> + * 1) AP boot:
>>> + *
>>> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
>>> + *    mapping (which must be executable) can at least be Read Only.
>>> + *
>>> + * 2) S3 resume:
>>> + *
>>> + *    The S3 wakeup logic may need to interact with the BIOS, so needs a
>>> + *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
>>> + *    undefined part of the the boot trampoline.  The stack is only used with
>>> + *    paging disabled.
>>> + *
>>> + * 3) Boot trampoline:
>>> + *
>>> + *    This region houses various data used by the AP/S3 paths too.
>> This is confusing to have here - isn't the boot part (that isn't in the
>> same page as the tail of the AP/S3 region) being boot-time only, and hence
>> unavailable for S3 and post-boot AP bringup? Both here and with the numbers
>> in the description - what position did you use as separator between 2) and
>> 3)?
>>
>> Then again it may be just me who is confused: Didn't we, at some point, limit
>> the resident trampoline to just one page? Was that only a plan, or a patch
>> that never was committed?
> 
> The positioning of various things is rather complicated.
> 
> Only a single 4k page is mapped into idle_pg_table[].
> 
> But, the AP/S3 path use:
> Â  trampoline_cpu_started
> Â  idt_48
> Â  gdt_48
> Â  trampoline_xen_phys_start
> Â  trampoline_misc_enable_off
> Â  trampoline_efer
> 
> Which is beyond the content of wakeup.S.Â  The GDT in particular needs to
> stay valid with paging enabled, to load __HYPERVISOR_CS.
> 
> We have /* From here on early boot only. */ in trampoline.S but that
> seems to be the extent of checking.Â  Everything needed for AP/S3 is in
> the first 0x229.
> 
> I'm open to suggestions for how to describe this better, although the
> left hand side of the diagram is already very busy.
> 
> I suppose I could do AP+S3 as a single section, along their combined data?

If by this you mean to then also cover what the first sentence of 3) said,
then yes, that might be preferable.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:24:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:24:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835424.1251297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBUQ-0001sY-Dd; Wed, 13 Nov 2024 11:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835424.1251297; Wed, 13 Nov 2024 11: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 1tBBUQ-0001sR-Ak; Wed, 13 Nov 2024 11:24:50 +0000
Received: by outflank-mailman (input) for mailman id 835424;
 Wed, 13 Nov 2024 11:24: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=KbMU=SI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBBUP-0001ng-7b
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:24:49 +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 e2784155-a1b1-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:24:45 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-aa15ede48e0so325617866b.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:24:45 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17662sm868606366b.28.2024.11.13.03.24.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 03:24: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: e2784155-a1b1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUyNzg0MTU1LWExYjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk3MDg1LjQ0ODg3OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731497085; x=1732101885; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Q4mVCizlOvPBQZQ6cozrvVSBPNztSfaUP7HZPM2pLdk=;
        b=HbdfmgE6VV+Z1HkEQqQNVs/0trW2VQL/2VXq+b90gJyhSJO6SS2vGvcV0auLmAGLRP
         ls+cWDmcIQQZlwQaBNBhvtn/NdbbTJsFqeWHzq8CPG7+qmi8NGyeqw8NblIbbW6iRb7n
         +axUTxes4newnTAsE4i5Tmpd1JD40iRjBLGrM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731497085; x=1732101885;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Q4mVCizlOvPBQZQ6cozrvVSBPNztSfaUP7HZPM2pLdk=;
        b=Tdue/+ZeddLuuXCJmIPbDMMaxV+94QJ3yYOZ1Nhwjuv3bdiAmGbqmYGrr5giw9o2Sy
         JArgGspLbXPuChUgrqPGVMEcDPTUYmc6byBe7zqHQ1BdDOzSvKtsstTxtl/WYWZm5I8D
         bsnQyIVpTOfZf6xaAzn1r0x+aQGMfvGaEzJaR1Fr7e0iqrb8sdPn8j1eGQhl8Wu3/cpo
         t+N/GD7Oz7dmjUV1J2H5M2MNtay1OFrMmsr5QndtZbrZUMW1dTwj84uFzBmEAlpTrUec
         G7LeR+ZSG37hzob6OSEOvsOkbroeZXhHe1YDVXCEUweseEs6xIsindZ707relxO/Qgk0
         +8Ng==
X-Forwarded-Encrypted: i=1; AJvYcCXrG65npH5UklHBidA1GpmF+40kyS7uRT+zfhJxoVGKhHIOHasPcCHtiJXChzLnisuQ+cSo62uxScI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRyG2EWBeziJr1jFB7DXPkQhPlo267OFYovTp6ZuVHV/RKq1jM
	cRf8N8E/GPSOzdN9jWol2SVTcqMqIxeS5S5fM1V+1wHPwr85VGZ4T9XonjX8Ezk=
X-Google-Smtp-Source: AGHT+IFo9svr7Xv+7BrNayS5Wn5bHCOmElxghz+Txo5MNEvafGkVNjVXSzClhvNbgNIIDdpV9MxICQ==
X-Received: by 2002:a17:906:d54a:b0:a9a:345a:6873 with SMTP id a640c23a62f3a-aa1f805eeb9mr251541866b.24.1731497084822;
        Wed, 13 Nov 2024 03:24:44 -0800 (PST)
Date: Wed, 13 Nov 2024 12:24:42 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzSMemXEhJu21Id3@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <6adc29fc-c6a6-460b-b034-62400e8c193b@suse.com>
 <ZzSF4es4NJnd3-JP@macbook>
 <38aa85ae-b398-4d23-82bb-6586457126f2@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <38aa85ae-b398-4d23-82bb-6586457126f2@suse.com>

On Wed, Nov 13, 2024 at 12:01:23PM +0100, Jan Beulich wrote:
> On 13.11.2024 11:56, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 13, 2024 at 11:36:46AM +0100, Jan Beulich wrote:
> >> On 13.11.2024 11:30, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >>>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>>>> and then cause probing failure.
> >>>>>>
> >>>>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>>>> corresponding handler into vpci.
> >>>>>>
> >>>>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>>>
> >>>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>>>> setting the new size.
> >>>>>
> >>>>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>>>> time ago I've made a patch to add support for it, but due to lack of
> >>>>> hardware on my side to test it I've never submitted it.
> >>>>>
> >>>>> My approach would be to detect the presence of the
> >>>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>>>> capability is present force the sizing of BARs each time they are
> >>>>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>>>> the capability itself, as resizing can only happen when memory
> >>>>> decoding is not enabled for the device.  It's enough to fetch the size
> >>>>> of the BARs ahead of each enabling of memory decoding.
> >>>>>
> >>>>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>>>> is already an expensive operation, the extra sizing is unlikely to
> >>>>> make much of a difference performance wise.
> >>>>>
> >>>>> I've found the following on my git tree and rebased on top of staging:
> >>>> OK.
> >>>> Do you need me to validate your patch in my environment?
> >>>
> >>> Yes please, I have no way to test it.  Let's see what others think
> >>> about the different approaches.
> >>
> >> I'd certainly prefer your simpler form, if it's safe and fits the needs.
> >>
> >>>> And I have one question: where does your patch do writing the resizing size into hardware?
> >>>
> >>> dom0 has unrestricted access to the resize capability, so the value
> >>> written by dom0 is propagated to the hardware without modification.
> >>>
> >>> I would be wary of exposing the resize capability to untrusted
> >>> domains, as allowing a domU to change the size of BARs can lead to
> >>> overlapping if the hardware domain hasn't accounted for the increase
> >>> in BAR size.
> >>
> >> Question is how the feature is used in practice: If it was a driver to
> >> request the re-size, I'd have a hard time seeing how we could make that
> >> work without intercepting accesses to the capability for DomU-s (implying
> >> to expose it in the first place, of course).
> > 
> > Question is also whether the capability is required for guests, as in
> > OS drivers requesting it to be present for proper operation.
> > 
> > I haven't given much thought about how to expose to domUs.  The
> > current patch doesn't attempt to expose to domUs either, as the
> > capability is not added to the 'supported_caps' array.
> 
> Hmm, I see. Yet then adding support to vPCI, but limited to Dom0, ends up
> odd in two ways: Another aspect that'll need dealing with for DomU-s, and
> the same functionality remaining unavailable (or at least not properly
> available, with all possible side effects) to PV Dom0.

I think resizable BARs should just work for PV dom0, as Xen allows PV
dom0 to map almost all physical memory.  Xen doesn't require knowing
the BAR positions and sizes like it does for PVH dom0.

Note that resizable BAR capability is not exposed to domUs now either
when using QEMU based pci-passthrough.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:26:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:26:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835437.1251308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBWE-0002Vt-Ok; Wed, 13 Nov 2024 11:26:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835437.1251308; Wed, 13 Nov 2024 11:26: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 1tBBWE-0002Vm-Lf; Wed, 13 Nov 2024 11:26:42 +0000
Received: by outflank-mailman (input) for mailman id 835437;
 Wed, 13 Nov 2024 11:26: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBBWD-0002Uf-SC
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:26:41 +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 25790984-a1b2-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:26:38 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4314f38d274so84441935e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:26:37 -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-381ed97cfaesm17956726f8f.38.2024.11.13.03.26.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03:26: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: 25790984-a1b2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI1NzkwOTg0LWExYjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk3MTk4LjYwNjIxNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731497197; x=1732101997; 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=IO5Dm4l2vjnYAXNyoasecd1nP/TIKA7uAKnBLcXxhuE=;
        b=FLH1eyWagehEMOt/vuErTwAmvRfpeaeuFIL8O1kZ0A1ZL1gAyNFrBY14FRGEQ001ao
         6QoffDzupKQfJCzjPYVp3KtD8r0jCCPqXhnJHhxCTBM/fqBCJbjfhoD/MKbo1BoT3DGi
         xGjmdZKt27aO0fmcQkRUBLx6Skv+3Ts3hnX1IgM0v9yngq5sGKh062UzNHS5lKws9SrC
         kFddmTyJnapyMSBGZ0R77UrrgbZYzHsOhi7QcgzQRxTfpQHQXj41xBt9ZP3O59sgd5rw
         m6GCUiQj/zgSJrehFxQtuXeHZjSQPrnORznLVRncAODLYmSAt/cWcOX2X8AnPwQ6/ksc
         NHmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731497197; x=1732101997;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IO5Dm4l2vjnYAXNyoasecd1nP/TIKA7uAKnBLcXxhuE=;
        b=B0awNCwXiOBMQsnh0cVWwu4nzhQiluKIXa/JywUONsgshO2h0ozjbaVOnJy/aN5YUV
         WxcXgX3sjmhlBrL6/uz5f/f2MPCG6dE6CVwsqa6IoAaYLipHj3Y7VcpP3V8723F6qs7B
         iMzaIsAHv1tzrtNN2or4LWkIwBUba9HcBFu04u4YsotDB86liKucEoBes0QcAzlTEjlg
         eOM3kDz/gNe7hrKe2Gn1qzGwCXq4TcjxKxnmMIdpIqmtRobqBzJ5ge36niDE6BQu+HHE
         5kfCmAuDod0fnDOJqoTKoQ/4A34i6wvgxq6bd6CJ+U281eKVu1h1RIoahvo7l5RvjMhS
         4qAg==
X-Forwarded-Encrypted: i=1; AJvYcCWAHrhafkWWuQEeTBskblSlOCr9OV5RWe07y1OHAcUxOpmgqRXNskRO3kY6KIXj5kNRTiWxjGXzceA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzg6WEFXwSUj4ERchDIThJiYTTnkqj1CLsIseAC5PXzLJvz69Rg
	ZD4AlA+jepwR9lQLkT0ihqiLra51aHSHqTdWuHvB8Uc59AWiywd9fEUWUZvqDQ==
X-Google-Smtp-Source: AGHT+IHpNf+9BI0ovxR/Cu79inL59ZWr/U7cyFuDpqI5EgKBZ5DEe/iF6wjC2CFnDvjHzYzvY1aZlg==
X-Received: by 2002:a05:6000:782:b0:37d:612c:5e43 with SMTP id ffacd0b85a97d-381f1838df9mr21478719f8f.0.1731497197210;
        Wed, 13 Nov 2024 03:26:37 -0800 (PST)
Message-ID: <61572855-095d-419f-bccf-a51fb5fd537b@suse.com>
Date: Wed, 13 Nov 2024 12:26:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/trampoline: Document how the trampoline is laid
 out
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-2-andrew.cooper3@citrix.com>
 <5f58dda2-1619-4416-b711-c600367d6f47@suse.com>
 <db7d200d-a13c-4cb4-9860-5a40cc039db7@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: <db7d200d-a13c-4cb4-9860-5a40cc039db7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 12:19, Andrew Cooper wrote:
> On 13/11/2024 10:20 am, Jan Beulich wrote:
>> On 13.11.2024 10:30, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/include/asm/trampoline.h
>>> +++ b/xen/arch/x86/include/asm/trampoline.h
>>> @@ -37,12 +37,63 @@
>>>   * manually as part of placement.
>>>   */
>>>  
>>> +/*
>>> + * Layout of the trampoline.  Logical areas, in ascending order:
>>> + *
>>> + * 1) AP boot:
>>> + *
>>> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
>>> + *    mapping (which must be executable) can at least be Read Only.
>>> + *
>>> + * 2) S3 resume:
>>> + *
>>> + *    The S3 wakeup logic may need to interact with the BIOS, so needs a
>>> + *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
>>> + *    undefined part of the the boot trampoline.  The stack is only used with
>>> + *    paging disabled.
>>> + *
>>> + * 3) Boot trampoline:
>>> + *
>>> + *    This region houses various data used by the AP/S3 paths too.
>> This is confusing to have here - isn't the boot part (that isn't in the
>> same page as the tail of the AP/S3 region) being boot-time only, and hence
>> unavailable for S3 and post-boot AP bringup? Both here and with the numbers
>> in the description - what position did you use as separator between 2) and
>> 3)?
>>
>> Then again it may be just me who is confused: Didn't we, at some point, limit
>> the resident trampoline to just one page? Was that only a plan, or a patch
>> that never was committed?
> 
> The positioning of various things is rather complicated.
> 
> Only a single 4k page is mapped into idle_pg_table[].
> 
> But, the AP/S3 path use:
> Â  trampoline_cpu_started
> Â  idt_48
> Â  gdt_48
> Â  trampoline_xen_phys_start
> Â  trampoline_misc_enable_off
> Â  trampoline_efer
> 
> Which is beyond the content of wakeup.S.Â  The GDT in particular needs to
> stay valid with paging enabled, to load __HYPERVISOR_CS.
> 
> We have /* From here on early boot only. */ in trampoline.S but that
> seems to be the extent of checking.Â  Everything needed for AP/S3 is in
> the first 0x229.

I was fearing it might be as weak. We probably want to gain a symbol there,
for use in another linker script assertion.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:29:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835447.1251317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBYk-00037x-7m; Wed, 13 Nov 2024 11:29:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835447.1251317; Wed, 13 Nov 2024 11:29: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 1tBBYk-00037q-57; Wed, 13 Nov 2024 11:29:18 +0000
Received: by outflank-mailman (input) for mailman id 835447;
 Wed, 13 Nov 2024 11:29: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBBYi-00037k-Sr
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:29:16 +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 821a0d6f-a1b2-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:29:13 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-432d86a3085so1167625e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:29: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-432d552ea45sm21192935e9.44.2024.11.13.03.29.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03:29: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: 821a0d6f-a1b2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzYiLCJoZWxvIjoibWFpbC13bTEteDMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgyMWEwZDZmLWExYjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk3MzUzLjI3NDYwNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731497353; x=1732102153; 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=orbMKzBD7FhsHtlhVVfwtzvmTEiApwEUwrrXOLf68C8=;
        b=f0rZH8Dh2Owwqk4bkgiwoyhtmT2W58Gbtszp+vYV143rI6R+aIdNaCLI7e6btIURvk
         EEDuecuTQDqMMAAz29PT8/tFocX7vwoevveSlMoCeEZm8yKguqR4rswN7MgoEwSQk0gW
         JOZH6eFHPPhGqVtmVBHcOSm7DU7VhhSxrhroFXvM0zN5qOkdbfiiEtRPOYBx+7l3C/GW
         M6PnWPAeKrw/9R9f0eT+/J+TUzUUKScsEqpWoYsG9jKTk3iUzaRkLXt47KWCnRG2o8Ia
         0Pa+ckbvABLpt9jlD/PQqcIxBS4wtqtk1T9zkh/OoCo9sy/R870aJ1OdPg3dpB4gIc2u
         6Emg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731497353; x=1732102153;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=orbMKzBD7FhsHtlhVVfwtzvmTEiApwEUwrrXOLf68C8=;
        b=bMzf45GyQaOVyvYSCQNbXjwIXT5ZdUZ1Y9X8tALIBiw7ch4desz3TS0N/JDFmoKfYg
         ihlLTvGR2wnpADF5YSkxSsRMlJlfa2HM8x4AjLkPEpSLNhLbCUl92Emz26yR2wmAKwVO
         GEcVAlVM4SO4RHshZF4PkHf6SeewS/y6tB/evyYU+Bag2dsAHxxpffqxqZAzizxR6NHG
         NaIZBpAGefP0kqskH50ubs3uvtwJLx1dg4S2tNDeF0R5dd0EqidOTAtp8tDmavBafUO3
         DWPlS6EV5stO/gh30J5Lafa8oksBctpy8JNOaTNdUdzUGidocdyHGqH35pBcm9Jw/nJj
         1UZw==
X-Forwarded-Encrypted: i=1; AJvYcCVt43dIBgBu0fb1FUL60kkAbQDkvZgK0l10ILqtaPu9pZ2ELpBPs4NWYbqlJD+3maRPS/8+/hl91RU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8hZbyQ72ASW/BYfFJzymRkTJn7UCIodanbMBeX+C5PeAcjWzR
	YxiE0hiq/5qsGD0v1R1xXdEoMaOIEsDmxQA3eTbb2t/4dktfJ0XuZGsDNPGDDzz7VRSgj8Is4Rk
	=
X-Google-Smtp-Source: AGHT+IHe9eZkxeucb5cZ8khgP6X5k5NhmkwVKHVx1xZWpBPk6sUmXSpAs07Z0ToQkSgtWOhGlYf+8w==
X-Received: by 2002:a05:600c:a04:b0:428:1b0d:8657 with SMTP id 5b1f17b1804b1-432b7517a5cmr169816645e9.22.1731497352619;
        Wed, 13 Nov 2024 03:29:12 -0800 (PST)
Message-ID: <4f75dc1d-a9f9-4ef9-b26a-77668dd6d3f2@suse.com>
Date: Wed, 13 Nov 2024 12:29:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vpci: Add resizable bar support
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook> <6adc29fc-c6a6-460b-b034-62400e8c193b@suse.com>
 <ZzSF4es4NJnd3-JP@macbook> <38aa85ae-b398-4d23-82bb-6586457126f2@suse.com>
 <ZzSMemXEhJu21Id3@macbook>
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: <ZzSMemXEhJu21Id3@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 12:24, Roger Pau MonnÃ© wrote:
> On Wed, Nov 13, 2024 at 12:01:23PM +0100, Jan Beulich wrote:
>> On 13.11.2024 11:56, Roger Pau MonnÃ© wrote:
>>> On Wed, Nov 13, 2024 at 11:36:46AM +0100, Jan Beulich wrote:
>>>> On 13.11.2024 11:30, Roger Pau MonnÃ© wrote:
>>>>> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
>>>>>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
>>>>>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
>>>>>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
>>>>>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
>>>>>>>> and then cause probing failure.
>>>>>>>>
>>>>>>>> According to PCIe spec, each bar that support resizing has two registers,
>>>>>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
>>>>>>>> corresponding handler into vpci.
>>>>>>>>
>>>>>>>> PCI_REBAR_CAP is RO, only provide reading.
>>>>>>>>
>>>>>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
>>>>>>>> setting the new size.
>>>>>>>
>>>>>>> I think the logic to handle resizable BAR could be much simpler.  Some
>>>>>>> time ago I've made a patch to add support for it, but due to lack of
>>>>>>> hardware on my side to test it I've never submitted it.
>>>>>>>
>>>>>>> My approach would be to detect the presence of the
>>>>>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
>>>>>>> capability is present force the sizing of BARs each time they are
>>>>>>> mapped in modify_bars().  I don't think we need to trap accesses to
>>>>>>> the capability itself, as resizing can only happen when memory
>>>>>>> decoding is not enabled for the device.  It's enough to fetch the size
>>>>>>> of the BARs ahead of each enabling of memory decoding.
>>>>>>>
>>>>>>> Note that memory decoding implies mapping the BARs into the p2m, which
>>>>>>> is already an expensive operation, the extra sizing is unlikely to
>>>>>>> make much of a difference performance wise.
>>>>>>>
>>>>>>> I've found the following on my git tree and rebased on top of staging:
>>>>>> OK.
>>>>>> Do you need me to validate your patch in my environment?
>>>>>
>>>>> Yes please, I have no way to test it.  Let's see what others think
>>>>> about the different approaches.
>>>>
>>>> I'd certainly prefer your simpler form, if it's safe and fits the needs.
>>>>
>>>>>> And I have one question: where does your patch do writing the resizing size into hardware?
>>>>>
>>>>> dom0 has unrestricted access to the resize capability, so the value
>>>>> written by dom0 is propagated to the hardware without modification.
>>>>>
>>>>> I would be wary of exposing the resize capability to untrusted
>>>>> domains, as allowing a domU to change the size of BARs can lead to
>>>>> overlapping if the hardware domain hasn't accounted for the increase
>>>>> in BAR size.
>>>>
>>>> Question is how the feature is used in practice: If it was a driver to
>>>> request the re-size, I'd have a hard time seeing how we could make that
>>>> work without intercepting accesses to the capability for DomU-s (implying
>>>> to expose it in the first place, of course).
>>>
>>> Question is also whether the capability is required for guests, as in
>>> OS drivers requesting it to be present for proper operation.
>>>
>>> I haven't given much thought about how to expose to domUs.  The
>>> current patch doesn't attempt to expose to domUs either, as the
>>> capability is not added to the 'supported_caps' array.
>>
>> Hmm, I see. Yet then adding support to vPCI, but limited to Dom0, ends up
>> odd in two ways: Another aspect that'll need dealing with for DomU-s, and
>> the same functionality remaining unavailable (or at least not properly
>> available, with all possible side effects) to PV Dom0.
> 
> I think resizable BARs should just work for PV dom0, as Xen allows PV
> dom0 to map almost all physical memory.  Xen doesn't require knowing
> the BAR positions and sizes like it does for PVH dom0.

Does it really not need to know in any (corner) case? Are there guarantees
that e.g. MSI-X table or PBA can't move when the size of the BAR covering
them changes?

> Note that resizable BAR capability is not exposed to domUs now either
> when using QEMU based pci-passthrough.

Of course.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:37:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:37:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835456.1251328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBgI-0005V6-0t; Wed, 13 Nov 2024 11:37:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835456.1251328; Wed, 13 Nov 2024 11: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 1tBBgH-0005Uz-Tr; Wed, 13 Nov 2024 11:37:05 +0000
Received: by outflank-mailman (input) for mailman id 835456;
 Wed, 13 Nov 2024 11: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBBgG-0005Ut-LU
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:37:04 +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 96fac2f6-a1b3-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 12:36:57 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9eb3794a04so966473766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:36:57 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2f096sm842252666b.200.2024.11.13.03.36.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03:36: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: 96fac2f6-a1b3-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2ZmFjMmY2LWExYjMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk3ODE3LjgxMzQ3Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731497816; x=1732102616; 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=F2v+hO3MKHWq28tChXO5dwf+CrVY/pi6q/4zMaK31uY=;
        b=eXU9djsV/h5yutVPte7MidMv277ICtxbK1b3kJ4XMzQ2bctBKlFVaDkg69GzjFyGGT
         1TQaABWk2nwCUucxuc0lfuu4OnrCD4yGHKMTLR4z/PcM7ALVsKoRd9n2kvAbZ3irsAx1
         JZwMIN1I6N1Ho/j9spW7TKDwEXPWv2V28z06U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731497816; x=1732102616;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F2v+hO3MKHWq28tChXO5dwf+CrVY/pi6q/4zMaK31uY=;
        b=HD5Z5n9mpgQ2t6dvhkVyCNhx3LhUfSy6aKfLExX3ueBAYx+WnJc2fg8fqNU5MZaCH7
         QL5qvk2lJMuoCRN5eVEJEvR/f7yiDirkh3dO1QG+i3+NfT9V8NPb3Ddx51Vv/vxQhP8D
         g1/3D7kOLi6Nk3UamsSTGtwsw0CI8Q9WkRIZxX/G0Vb5fMatjMqbXccV4yoz6sHy/UCZ
         fOGOaE7vS8tvNtpQbcNqjBxIOdUZZGQX3ncce4qKoxt8OFk0bkDdEV0hSlsLNOargLv9
         fh8tVl8FyuPBTb0UZ7rl9mOwkn24OiH9aADOo/ehYxo1TV/IzTHJthPvSnTgysmD4B1H
         ot5g==
X-Gm-Message-State: AOJu0Yz70vyJZYdxpOnXinh25WMapIeyUmPt+JnQnw+zAdovXrRhNcm2
	RGZmn4efE0RhTG6dZqBj7+stHWR8Rx+i+dDMU1zUBYRpo8jFKS8ZWt4Y9KtkbFRXaZbkl9O4SLS
	E
X-Google-Smtp-Source: AGHT+IHTM9+34rjfbfEaMr1VJ35C5eVVe0lIzBzVYLVvo98RvyhMBJJs6K9CxrcS9FJLZJZ3WfrSBQ==
X-Received: by 2002:a17:907:9707:b0:a9a:80cc:d7b0 with SMTP id a640c23a62f3a-aa1c57afccbmr641278966b.44.1731497816383;
        Wed, 13 Nov 2024 03:36:56 -0800 (PST)
Message-ID: <8217032f-c5ec-4f93-b69f-42ceeae06073@citrix.com>
Date: Wed, 13 Nov 2024 11:36:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
To: 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>, "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-3-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241113093058.1562447-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/11/2024 9:30 am, Andrew Cooper wrote:
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 7930b7c73892..9d3f2b71447e 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -633,7 +633,7 @@ static void __init efi_arch_memory_setup(void)
>      if ( efi_enabled(EFI_LOADER) )
>          cfg.size = trampoline_end - trampoline_start;
>      else
> -        cfg.size = TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
> +        cfg.size = TRAMPOLINE_SIZE;

Something I forgot to mention.

The EFI_LOADER side of this conditional means that the heap isn't valid.

This includes modelist, vesa_glob_info and vesa_mode_info from video.S,
but I can't find where they're used at all.

There's a separate struct vesa_mode_info in reloc.c but that is a
representation of the MB2 vbe_mode_info tag and not the same thing AFAICT.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:39:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:39:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835463.1251337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBib-000620-Dk; Wed, 13 Nov 2024 11:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835463.1251337; Wed, 13 Nov 2024 11:39: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 1tBBib-00061t-BC; Wed, 13 Nov 2024 11:39:29 +0000
Received: by outflank-mailman (input) for mailman id 835463;
 Wed, 13 Nov 2024 11:39: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=Lrmv=SI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBBia-00061n-Mo
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:39:28 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee92080d-a1b3-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:39:24 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-53d9ff92edaso910115e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:39:24 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53d8267848asm2174441e87.36.2024.11.13.03.39.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 03:39: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: ee92080d-a1b3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzIiLCJoZWxvIjoibWFpbC1sZjEteDEzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVlOTIwODBkLWExYjMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk3OTY0LjY4MjE0LCJzZW5kZXIiOiJvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731497964; x=1732102764; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=I1geJfzrddzBRm6Mhzzc16QDHOQMIQlXIFbM5ip5hlQ=;
        b=AgopBJOOz7FEpyzI+cnl6+NOD2QDknP8pr3Yj6gWbACz71ddqZLlZ4lwFDsJ8x5CjS
         97gZDWaxGVPHVCQ8Wd89syxaDdoVmpBFpqdExISM5d2jAnYJuoKjooGs8I+icXDNyBds
         MtY03J4nPOVevUc0DMpQg39qElMVfXf5nZQGLI3pVzUsWuFfcsWF9xw6RD2GH8OnJdAB
         oxPcWDARp5pK/+5S4kZN6OLmj5WgxJj9kwVQUyGE1aJ7nyqELmi5YslivjcmAyr6yKni
         XThm7FsYefhO7ec+ivuhCbRXcoHmOykHto62z+lSK3exTb7rsJKAi6ITmemMRmieVBKB
         GU9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731497964; x=1732102764;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=I1geJfzrddzBRm6Mhzzc16QDHOQMIQlXIFbM5ip5hlQ=;
        b=NLi+/PZtuGYVGWMJY7eL+2dysq++57jwrEuMxG8F9q6xfA2t+GidQ2h248ihkQL7ki
         gSvdSQ7rGjRziRXdc9hpG1ht1Tg7cCLRlfBRRBI1slbqxwItuWnNtQqdfpxhTARbl20M
         mHBRivkisIn3xHhZfSwsGSJMbMGC7OVBauk7r3l7wrMm7phyLB+oiu4gyUXWfn2DNG1o
         ZHXMHKLXAPpINvF1qhDIsX3qeALj9zdGOuc1hFI0TYWp36NMinxzzP7Sg2CSbbGKBg/+
         pYtxhFWah4o04kw2hqNTmxRHmTma4vT7AnSl8YQs6rz/FJqHFIelOgBAqI6CD816LTW/
         rUjQ==
X-Forwarded-Encrypted: i=1; AJvYcCX6NtAbzeecphYo4MniGcFFlL9r5kIUYYr/gVTzlYq4rAovD1YpYN9KHizKfYk+hJz8KfKbbxoquog=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxH5TtRx4vUdt3IrqVZASkLu/Pz19tEJ1YRSu6funZcXBG4Aa9
	HREu97BDDDpUtbM53+5+jy1fQEgR7lGS3m0aficxhsWsZogYMAWj
X-Google-Smtp-Source: AGHT+IHqXPbUoh57CKK73K6JG3JojskjcodadWTl8qefGyQWziUS/w9DE4Pu6C/a8q+ht/4mhZt+6Q==
X-Received: by 2002:a05:6512:b9c:b0:539:e3d8:fa33 with SMTP id 2adb3069b0e04-53d9a43cc8cmr3685497e87.54.1731497963629;
        Wed, 13 Nov 2024 03:39:23 -0800 (PST)
Message-ID: <aec35a326656a2b976b584ea5467f54cd87ca6d6.camel@gmail.com>
Subject: Re: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Wed, 13 Nov 2024 12:39:22 +0100
In-Reply-To: <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
	 <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
	 <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Tue, 2024-11-12 at 12:22 +0100, Jan Beulich wrote:
> On 11.11.2024 19:16, Oleksii Kurochko wrote:
> > @@ -25,8 +27,11 @@
> > =C2=A0
> > =C2=A0static inline void *maddr_to_virt(paddr_t ma)
> > =C2=A0{
> > -=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > -=C2=A0=C2=A0=C2=A0 return NULL;
> > +=C2=A0=C2=A0=C2=A0 unsigned long va_offset =3D maddr_to_directmapoff(m=
a);
> > +
> > +=C2=A0=C2=A0=C2=A0 ASSERT(va_offset < DIRECTMAP_SIZE);
>=20
> Much like with the consideration towards virt_to_maddr() that was
> corrected from v4, I think this one also needs adjusting:
>=20
> =C2=A0=C2=A0=C2=A0 ASSERT(va_offset < DIRECTMAP_SIZE + (DIRECTMAP_VIRT_ST=
ART -
> =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 directmap_virt_start));
>=20
> This is because ...
>=20
> > +=C2=A0=C2=A0=C2=A0 return (void *)(directmap_virt_start + va_offset);
>=20
> ... you're offsetting the VA here. It may then want accompanying
> by
>=20
> =C2=A0=C2=A0=C2=A0 ASSERT(va_offset >=3D DIRECTMAP_VIRT_START - directmap=
_virt_start);
>=20
> (probably to go first).
I might be misunderstanding something, but shouldn't the assertions be
as follows?
   DIRECTMAP_VIRT_START <=3D (directmap_virt_start + va_offset) <
   DIRECTMAP_VIRT_SIZE

So, va_offset should be in the range:
   DIRECTMAP_VIRT_START - direcmap_virt_start <=3D va_offset <
   DIRECTMAP_VIRT_SIZE - directmap_virt_start
  =20
This would make the assertions look like:
   ASSERT(va_offset < DIRECTMAP_VIRT_SIZE - directmap_virt_tart)
   ASSERT(va_offset >=3D DIRECTMAP_VIRT_START - directmap_virt_start)

So, we have different check for the first ASSERT. Could you please
clarify where my calculations are wrong?

>=20
> > @@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t
> > fdt_paddr)
> > =C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0 return fdt_virt;
> > =C2=A0}
> > +
> > +vaddr_t __ro_after_init directmap_virt_start =3D
> > DIRECTMAP_VIRT_START;
> > +
> > +struct page_info *__ro_after_init frametable_virt_start =3D
> > frame_table;
> > +
> > +#ifndef CONFIG_RISCV_32
> > +
> > +/* Map a frame table to cover physical addresses ps through pe */
> > +static void __init setup_frametable_mappings(paddr_t ps, paddr_t
> > pe)
> > +{
> > +=C2=A0=C2=A0=C2=A0 static mfn_t __initdata frametable_mfn_start =3D
> > INVALID_MFN_INITIALIZER;
> > +
> > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0 unsigned long nr_mfns =3D PFN_DOWN(aligned_pe - ali=
gned_ps);
> > +=C2=A0=C2=A0=C2=A0 unsigned long frametable_size =3D nr_mfns *
> > sizeof(*frame_table);
> > +=C2=A0=C2=A0=C2=A0 mfn_t base_mfn;
> > +
> > +=C2=A0=C2=A0=C2=A0 if ( mfn_eq(frametable_mfn_start, INVALID_MFN) )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frametable_mfn_start =3D ma=
ddr_to_mfn(aligned_ps);
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frametable_virt_start -=3D =
paddr_to_pfn(aligned_ps);
> > +=C2=A0=C2=A0=C2=A0 }
> > +=C2=A0=C2=A0=C2=A0 else
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("%s shouldn't be call=
ed twice\n", __func__);
>=20
> As said on the v4 thread - I don't think this is needed. Aiui Misra
> would
> actually dislike it, as it's unreachable code. Just to re-iterate: My
> complaint there wasn't about this missing check, but about the
> function
> partly giving the impression of expecting to be called more than
> once.
I=E2=80=99ll revert this check, then. Would it be better=E2=80=94and suffic=
ient=E2=80=94to add
a comment before setup_frametable_mappings() indicating that this
function should only be called once, to avoid any impression that it
might be expected to be called multiple times?

>=20
> > +=C2=A0=C2=A0=C2=A0 if ( frametable_size > FRAMETABLE_SIZE )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("The frametable canno=
t cover [%#"PRIpaddr",
> > %#"PRIpaddr")\n",
> > +=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 ps, pe);
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * align base_mfn and frametable_size to MB(2)=
 to have
> > superpage mapping
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * in map_pages_to_xen()
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 frametable_size =3D ROUNDUP(frametable_size, MB(2))=
;
> > +=C2=A0=C2=A0=C2=A0 base_mfn =3D alloc_boot_pages(frametable_size >> PA=
GE_SHIFT,
> > PFN_DOWN(MB(2)));
>=20
> As you already use PFN_DOWN() once, why do you open-code it for the
> other
> argument?
Just overlooked that PFN_DOWN() could be used here.

>  You also use it ...
>=20
> > +=C2=A0=C2=A0=C2=A0 if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_m=
fn,
> > +=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 PFN_DOWN(frametable_size),
>=20
> ... here, where the purpose of the argument is exactly the same.
>=20
> > +void __init setup_mm(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 const struct membanks *banks =3D bootinfo_get_mem()=
;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_start =3D INVALID_PADDR;
> > +=C2=A0=C2=A0=C2=A0 paddr_t ram_end =3D 0;
> > +=C2=A0=C2=A0=C2=A0 unsigned int i;
> > +
> > +=C2=A0=C2=A0=C2=A0 /*
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * We need some memory to allocate the page-ta=
bles used for
> > the directmap
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * mappings. But some regions may contain memo=
ry already
> > allocated
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * for other uses (e.g. modules, reserved-memo=
ry...).
> > +=C2=A0=C2=A0=C2=A0=C2=A0 *
> > +=C2=A0=C2=A0=C2=A0=C2=A0 * For simplicity, add all the free regions in=
 the boot
> > allocator.
> > +=C2=A0=C2=A0=C2=A0=C2=A0 */
> > +=C2=A0=C2=A0=C2=A0 populate_boot_allocator();
> > +
> > +=C2=A0=C2=A0=C2=A0 for ( i =3D 0; i < banks->nr_banks; i++ )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 const struct membank *bank =
=3D &banks->bank[i];
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_start =3D ROUN=
DUP(bank->start, PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t bank_end =3D ROUNDD=
OWN(bank->start + bank->size,
> > PAGE_SIZE);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned long bank_size =3D=
 bank_end - bank_start;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_start =3D min(ram_start=
, bank_start);
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_end =3D max(ram_end, ba=
nk_end);
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 setup_directmap_mappings(PF=
N_DOWN(bank_start),
> > PFN_DOWN(bank_size));
> > +=C2=A0=C2=A0=C2=A0 }
> > +
> > +=C2=A0=C2=A0=C2=A0 setup_frametable_mappings(ram_start, ram_end);
>=20
> Just to double check: There is a guarantee that ->nr_banks isn't
> going to
> be zero? Else the setup_frametable_mappings() invocation here would
> badly
> degenerate.
Based on the what is mentioned in the device tree spec I would say yes
but based on the code we have in Xen ( and if I am not confusing
something ) it is still a chance that ->nr_banks could be zero.

>From the device tree spec:
```
A memory device node is required for all devicetrees and describes the
physical memory layout for the system. If a system
has multiple ranges of memory, multiple memory nodes can be created, or
the ranges can be specified in the reg property
of a single memory node.

Property Name  Usage   Value Type           Definition
device_type     R      <string>             Value shall be =E2=80=9Cmemory=
=E2=80=9D
reg             R      <prop-encoded-array> ...

Usage legend: R=3DRequired, O=3DOptional, OR=3DOptional but Recommended,
SD=3DSee Definition
```

So the memory node should present in devicetree ( interesting that few
years ago I remember that I could build devicetree w/o memory node,
anyway, Xen cheking a reg property of memory node and panic if
something wrong ).

In the same time, based on the code of device_tree_get_meminfo() (
xen/common/device-tree/bootfdt.c:169 ):
       prop =3D fdt_get_property(fdt, node, prop_name, NULL);
       if ( !prop )
           return -ENOENT;
  =20
       cell =3D (const __be32 *)prop->data;
       banks =3D fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
  =20
       for ( i =3D 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
       {
           device_tree_get_reg(&cell, address_cells, size_cells,
   &start, &size);
           if ( mem =3D=3D bootinfo_get_reserved_mem() &&
                check_reserved_regions_overlap(start, size) )
               return -EINVAL;
           /* Some DT may describe empty bank, ignore them */
           if ( !size )
               continue;
           mem->bank[mem->nr_banks].start =3D start;
           mem->bank[mem->nr_banks].size =3D size;
           mem->bank[mem->nr_banks].type =3D type;
           mem->nr_banks++;
       }
  =20
It is possible that mem->nr_banks is equal to 0 ( when DT describe only
empty banks? ) but then it sounds to me like something wrong with DT.

Just to be sure that everything is okay with ->nr_banks I could suggest
to add BUG_ON(banks->nr_banks) in setup_mm() before the `for` cycle.
Does it make sense?

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:52:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:52:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835478.1251352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBud-0001f9-N7; Wed, 13 Nov 2024 11:51:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835478.1251352; Wed, 13 Nov 2024 11:51: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 1tBBud-0001f2-KH; Wed, 13 Nov 2024 11:51:55 +0000
Received: by outflank-mailman (input) for mailman id 835478;
 Wed, 13 Nov 2024 11:51: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=1B9J=SI=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBBuc-0001eg-0K
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:51:54 +0000
Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com
 [2607:f8b0:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa96de4d-a1b5-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 12:51:50 +0100 (CET)
Received: by mail-ot1-x331.google.com with SMTP id
 46e09a7af769-718066adb47so3985809a34.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:51: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: aa96de4d-a1b5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC1vdDEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFhOTZkZTRkLWExYjUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk4NzEwLjMzOTg0MSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731498709; x=1732103509; 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=Qu3IFfHQGHllMRCuqwncJai+I0EOdojfXwX97kR2jJQ=;
        b=jXUmsrt1iCKjeRa3AjMi1tNVHOh+5StSffbhWYnVsAcqzPh56oj+I+5sRQORqGGb7W
         kOBmAgiWMo7JODm37i5MG9ombp0PGXN5dVJ+F2l5Qn/tz8/KnLghXHkqq/eLrnTompZV
         acrUJDIhRg3HUjCwtVNuIAbi6JseSu4d6tTPU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731498709; x=1732103509;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Qu3IFfHQGHllMRCuqwncJai+I0EOdojfXwX97kR2jJQ=;
        b=G1tKi28Wb9yU2wulfpO+dOfeROXzfzOpkka9AWjsc7I1r/Hj9mQbs9boebu9JAMu7K
         mwD/h9FNHvOGX7wPMfeEOx/f/Tx2ouhI0d8ZITc+TvyPI/AVz8y5OQFUtJBa7SzUUELm
         MAFjRG0WXsYrheXcdHnMtN3jmDrLs7/pQopNZn5b1durR4u/9fWxlJZAlPDJWeehiHRH
         eKr1ek8+jcCGfTrF6e32w+jBU9Nq0gICP4YSRdAm1nMo55msb3Z3k6brs6X+ROX3TkAG
         ISfo35s+JQ0zp/4aUapCDOz5FwGGDLKFgqKbLNgsJUfPZ24iV2Q8yW4rQZ13B0PjeBiC
         Sd0Q==
X-Gm-Message-State: AOJu0YywpVCUgegaQhPlyMAnz+i7O7Qynfbo430ZdKVsB9Gy3mdz94hX
	2pLmLbzYG1jN/9JxoBlkdqla2JSAgk3fjbdS2nibNEgOgcZeyY4zZHykVCF3mfn+oWxW5EnEKX9
	oAC2GjhqUICQAVurodJFrQG2vrG3byOaWv4o73g==
X-Google-Smtp-Source: AGHT+IFB9NmCTwz2/7TzHHsv8iYl8WB8oiAvtN0ASD1COWAWLazn8NwwFb6bhvsk6SHsWPDZUJQEWhrfzmZ9C6vsfkk=
X-Received: by 2002:a05:6820:983:b0:5e5:c517:4d88 with SMTP id
 006d021491bc7-5ee57a23ddcmr13806986eaf.0.1731498708939; Wed, 13 Nov 2024
 03:51:48 -0800 (PST)
MIME-Version: 1.0
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-3-andrew.cooper3@citrix.com> <8217032f-c5ec-4f93-b69f-42ceeae06073@citrix.com>
In-Reply-To: <8217032f-c5ec-4f93-b69f-42ceeae06073@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 13 Nov 2024 11:51:38 +0000
Message-ID: <CACHz=ZhN+W6aLghG-PzguWnhbE2qBdf_chKS-nca1JnpT+dkNQ@mail.gmail.com>
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
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>, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, 
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 13, 2024 at 11:36=E2=80=AFAM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> On 13/11/2024 9:30 am, Andrew Cooper wrote:
> > diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> > index 7930b7c73892..9d3f2b71447e 100644
> > --- a/xen/arch/x86/efi/efi-boot.h
> > +++ b/xen/arch/x86/efi/efi-boot.h
> > @@ -633,7 +633,7 @@ static void __init efi_arch_memory_setup(void)
> >      if ( efi_enabled(EFI_LOADER) )
> >          cfg.size =3D trampoline_end - trampoline_start;
> >      else
> > -        cfg.size =3D TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
> > +        cfg.size =3D TRAMPOLINE_SIZE;
>
> Something I forgot to mention.
>
> The EFI_LOADER side of this conditional means that the heap isn't valid.
>
> This includes modelist, vesa_glob_info and vesa_mode_info from video.S,
> but I can't find where they're used at all.
>
> There's a separate struct vesa_mode_info in reloc.c but that is a
> representation of the MB2 vbe_mode_info tag and not the same thing AFAICT=
.
>

I think MBI data on EFI path is parsed in another path.

Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 11:52:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 11:52:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835481.1251363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBBv2-0002Aa-UP; Wed, 13 Nov 2024 11:52:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835481.1251363; Wed, 13 Nov 2024 11:52: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 1tBBv2-0002AT-Ri; Wed, 13 Nov 2024 11:52:20 +0000
Received: by outflank-mailman (input) for mailman id 835481;
 Wed, 13 Nov 2024 11:52: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBBv1-00028k-7k
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 11:52:19 +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 b937db8f-a1b5-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 12:52:14 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso1205537666b.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 03:52:14 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17684sm860608866b.34.2024.11.13.03.52.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 03:52: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: b937db8f-a1b5-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI5MzdkYjhmLWExYjUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk4NzM0LjI4NzY5NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731498733; x=1732103533; 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=v/1/USQJ8ac51X5S4v3yIZnEljmAoFJ+4VVzEijanPc=;
        b=SeM5M2hb2luD/tHLpeUUs99R2n4EeXYvvXAQaFJEflt7A+fqO9ZP0eIa29j9zSFFB+
         qi1vVXbdmVmbo3C+urJV8U9eFwL/qHdhKQ7tSM+DEPYAW1iVP+wzEmumviinsoeVrtcY
         pwZkzGgjU90y4wbnAtlycv0DLmUUvFnse28tc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731498733; x=1732103533;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v/1/USQJ8ac51X5S4v3yIZnEljmAoFJ+4VVzEijanPc=;
        b=lmho108rR0j6vpIX2A3zJSrdrrdu10CrLw4YDKhHiq+VCgSFcj3CdGdEKEB1WZk7CS
         0rVaCp22t5dBy4Aa3gAl4o8+ZwgFCOY09Eq6sVN+N75Y9GLexLd8FmHfUihdjwGvRxZH
         ygxSg2oGh1MhXqFQ3TnLgSibRE+85VS2/+BduLes3O339HXeWAbExG3DieXy4q7YMpWf
         LxsEz+Hfhl4BmHBB3GRAUo2d4THEyaeyWl7XSvPA9MUV+LYqVSxtG74o9HeeI0icc2k1
         6Ycfndiuxw0hMBVdB0TzQ4huAtYZxdjhjBik825GMLoHDjXo9LWpkoYyrvs/35vlMMTQ
         D72Q==
X-Forwarded-Encrypted: i=1; AJvYcCVDssgkHSuwhiSjgTYl7N+QSLAbhjoS51J/6tr7WjX63ZVuucc6QvyFrPXsaXNQQZOWUiwSAVe8xxc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAeAUj4EwetdjIPpYM52tTjx6cv92dH303I2SBNWYVgWiTeNLA
	eaYxZjIXALWURdZVdHUjsKUsgRNveJ16PkmVIUJiZI348GSn2b4sfDp8wgE4uAA=
X-Google-Smtp-Source: AGHT+IHL3sVBCmlPYdVD74mzwlSiufiS1OI4zpeUHFSAEf3+d748D9ohJfNKQ8JPII5EhOjX2V/r/g==
X-Received: by 2002:a17:907:c1c:b0:a9e:e1a9:8df0 with SMTP id a640c23a62f3a-aa1f8074ce1mr253016866b.29.1731498733395;
        Wed, 13 Nov 2024 03:52:13 -0800 (PST)
Message-ID: <49a1ba0d-b24c-46d2-a0a9-49183575aeaa@citrix.com>
Date: Wed, 13 Nov 2024 11:52:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-3-andrew.cooper3@citrix.com>
 <5961777b-2d38-4edd-b2e0-2da89862655c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <5961777b-2d38-4edd-b2e0-2da89862655c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13/11/2024 10:23 am, Jan Beulich wrote:
> On 13.11.2024 10:30, Andrew Cooper wrote:
>> --- a/xen/arch/x86/include/asm/config.h
>> +++ b/xen/arch/x86/include/asm/config.h
>> @@ -51,8 +51,9 @@
>>  
>>  #define IST_SHSTK_SIZE 1024
>>  
>> -#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
>> -#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
>> +/* See asm/trampoline.h */
>> +#define TRAMPOLINE_SIZE         KB(64)
>> +#define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
> Is there actually a reason these can't move to trampoline.h?

I considered that, and ruled it out, but I can't remember why exactly.

Right now, trampoline.h is C-only, but it can gain some __ASSEMBLY__
easily enough.


The two later constants, WAKEUP_STACK_MIN and MBI_SPACE_MIN are used
only in linker assertions, and of dubious value.Â  In particular, the
size of the VESA information in the heap is not accounted for in the
MBI_SPACE_MIN check.

I have an idea to remove all of this boot metadata shuffling when the
boot_info work is a bit better done, which is why I left the constants
alone.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:00:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:00:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835506.1251372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBC38-00042H-MA; Wed, 13 Nov 2024 12:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835506.1251372; Wed, 13 Nov 2024 12:00: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 1tBC38-00042A-JW; Wed, 13 Nov 2024 12:00:42 +0000
Received: by outflank-mailman (input) for mailman id 835506;
 Wed, 13 Nov 2024 12:00: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBC36-0002tw-Mu
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:00:40 +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 e55c4cfe-a1b6-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:00:37 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4314f38d274so84885425e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:00:37 -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-432d55054a4sm23257115e9.25.2024.11.13.04.00.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 04:00: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: e55c4cfe-a1b6-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU1NWM0Y2ZlLWExYjYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNDk5MjM3Ljc4NjI0LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731499237; x=1732104037; 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=kJf/gQA45CP4D/4Y6vOugYBGfudKZ43RGYtNiQjjtV8=;
        b=en2d51QLkOqjvxjXSXunUqrkUR5UqOuARSH5WrczXufb/kUirRlCd+0+AeD4KgnlZR
         nC0ZPvU9Esqm1zaGct8hGYqnQZ+E0DlvlJ/E9uEx6BTxxROK+8JrIUSS4FAM1yxGkvix
         VYiPwd0y4I97eIQgYPgrZr+H0A8BVlUuueQhwPerexlmfBowo0Wq5HDZEwhNoSWFQHF5
         KIKV0URGF950z1HybsEMc6hSZOSfGJdMmnBhAUO7wc+XrqSde5SqIv0qOuN9aO864Vly
         bj+X+Nv8ZM8PJatOA7c74Srx6co8/0NAZKclDpdnhhyPQS1CLvn9b4k1AQ+7FhvzEr1o
         7IdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731499237; x=1732104037;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kJf/gQA45CP4D/4Y6vOugYBGfudKZ43RGYtNiQjjtV8=;
        b=c+FYqM7wY/7b6k9MDzkH+H8waACujvC3VrztozMGEu4/3enIxlr024TT4qvTC54amO
         7a47ljI7q6GHbmU3iwV7f1bTdpra34v4vebcPc4rrFYsYGFltBBZNNvuJgPdBjjDJiQO
         g5qNkOKtanXMHyr/cqJ3BksvcpIq2aH8z+2L0WTc8UNIOfAy2UJNYBUVimsmfOyTaiTm
         cfO3rYE/RVpfIPLlIp/ezz2u6ALOgTDvks7xWDjvyVKB4WN9MJFdKOqVcnBefACEt4hN
         q9bFakXTu3T1Jd24uyz3dpviXzLLPF4y0dGCyZijOy3d3w3Kb395m0Vk7BkZV0ptikjY
         aWwQ==
X-Forwarded-Encrypted: i=1; AJvYcCUWWxcmRh1pt0u4f5aNEE3Xa3xzlw0RlwPoE1PSj+wN0qaVzPog+XUTkr+BDxkThJ3yZ+5IgBMO55k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxpFjpsUN02dRJOpsfzmRjBP8LJSHSLdn/I3ltJBH2bDNnVfbL
	M9h5kJCglH1ACeH9IL+/Zrm0bG3bQhWCpEoKaPgFZ0zv1a7NiwkQOEiaW/kUzg==
X-Google-Smtp-Source: AGHT+IFCcbPBPtLMFCrPlPYZAfacYD+3zWlL+ysbbXWx7LKzv298cB+QVcCiBnurLqLEP3tER3NKPA==
X-Received: by 2002:a05:600c:a04:b0:42c:a387:6a6f with SMTP id 5b1f17b1804b1-432b7518cd4mr196379825e9.20.1731499237052;
        Wed, 13 Nov 2024 04:00:37 -0800 (PST)
Message-ID: <8b3d42b6-3c22-4882-8df3-e3ce2bfd2dfb@suse.com>
Date: Wed, 13 Nov 2024 13:00:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-3-andrew.cooper3@citrix.com>
 <5961777b-2d38-4edd-b2e0-2da89862655c@suse.com>
 <49a1ba0d-b24c-46d2-a0a9-49183575aeaa@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: <49a1ba0d-b24c-46d2-a0a9-49183575aeaa@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 12:52, Andrew Cooper wrote:
> On 13/11/2024 10:23 am, Jan Beulich wrote:
>> On 13.11.2024 10:30, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/include/asm/config.h
>>> +++ b/xen/arch/x86/include/asm/config.h
>>> @@ -51,8 +51,9 @@
>>>  
>>>  #define IST_SHSTK_SIZE 1024
>>>  
>>> -#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
>>> -#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
>>> +/* See asm/trampoline.h */
>>> +#define TRAMPOLINE_SIZE         KB(64)
>>> +#define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
>> Is there actually a reason these can't move to trampoline.h?
> 
> I considered that, and ruled it out, but I can't remember why exactly.
> 
> Right now, trampoline.h is C-only, but it can gain some __ASSEMBLY__
> easily enough.
> 
> 
> The two later constants, WAKEUP_STACK_MIN and MBI_SPACE_MIN are used
> only in linker assertions, and of dubious value.Â  In particular, the
> size of the VESA information in the heap is not accounted for in the
> MBI_SPACE_MIN check.
> 
> I have an idea to remove all of this boot metadata shuffling when the
> boot_info work is a bit better done, which is why I left the constants
> alone.

Fair enough then.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:02:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:02:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835517.1251382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBC4w-00050N-2b; Wed, 13 Nov 2024 12:02:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835517.1251382; Wed, 13 Nov 2024 12:02: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 1tBC4v-00050G-Vy; Wed, 13 Nov 2024 12:02:33 +0000
Received: by outflank-mailman (input) for mailman id 835517;
 Wed, 13 Nov 2024 12: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=REvy=SI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBC4u-000506-Oa
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:02:32 +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 27c5546e-a1b7-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:02:29 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4319399a411so64719895e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:02: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-381ed970e23sm18103988f8f.18.2024.11.13.04.02.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 04:02: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: 27c5546e-a1b7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3YzU1NDZlLWExYjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNDk5MzQ5LjIxNjgwMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731499348; x=1732104148; 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=RRKzwpnMHSEqbegF5vRDNZdYVHu3zdqL2rj6cftfnB4=;
        b=BkpTrn89eQIN0UsdVr9NPI/hq0T/1RSzdRYQQL0rpCGQXJCUDKwFChcvUY0FY9Cxxv
         UYooPAkB6ZtIVj7unB576jN6B+aF4lQxIIpQ3Lk1eBub/QjfyaqvFAKDmlQx7Le4BN4O
         wy1YQoJHo1tuH53aoUo7yIkwvnDxQwoismjFtus/mRdfIvb8rCaEQezOcRNqBqSVIARf
         XQzjH36Q8coqjkX9ASCszMSMBQkK3B78TmS/S9OD9jKnj8XgnnZ75BAi3TF2Bhmvz/Ze
         fqrmqQZ5LGalPZPd9msIGaaHUFe4tQLnxzs3psi9CbqzVAwdvdc4HA4KjU2VYhCwATJC
         Fc8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731499348; x=1732104148;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RRKzwpnMHSEqbegF5vRDNZdYVHu3zdqL2rj6cftfnB4=;
        b=Q/ShAErhb+j4ehYpJdk9g/eO3flcGeZUXoann8wg05dz/ZJfxoc37CPW94huPp9666
         3IrBgttpdLTVRWOFqv+IpInn8/Ge3m/z8d9cjyGC1It/gZLuF6SL+FQ/rJQIk6d1bnzF
         N0rH/LLEMSjq9asz9s9jZHm4J6JdCA2UjWtrFlnBIJBaAHoUdUdVRdrTSbV/KxO4jMuy
         UtaN32Lmfj6gebaJN2t4ns/doa8HrE65G/1hnzk+f2NrBPgigD2WVdYk1up4sLbJC7kH
         +/vrzp9w2lpQXaNEvIZKQg/GGkRyVsMDqrzFOypuGi14imylBQLHsjDcKCM5YLrTOQA5
         L2mg==
X-Forwarded-Encrypted: i=1; AJvYcCXovr37/hxkbzqNe2AeZzHZd6lNltsgWJIjVzzxZeqnLtQyNgP/2C6eLSPvmgbfHlvA4uaeMRTuJzg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYi+rxhfkEBVvMgArxLXV8YWA5FNN9zNGAwPHXLFAvo42PRFJ1
	U1U/CGMXd/1mfoqXZ0RwSy6g5oGwZQotcQTcLsm0yU12kmRa/Gg1JfRRS5cnWg==
X-Google-Smtp-Source: AGHT+IG9+KdO//sEPb/jrmzg1URuwgNp8c1CxhA/syaADOSgExsqciDzOSOocfpzxQ8vvC8WrTzldQ==
X-Received: by 2002:a5d:6c6d:0:b0:37d:51f8:46fd with SMTP id ffacd0b85a97d-381f186dfcemr16326682f8f.22.1731499348593;
        Wed, 13 Nov 2024 04:02:28 -0800 (PST)
Message-ID: <f87a403a-0664-4383-8ce0-70d5a78bbefd@suse.com>
Date: Wed, 13 Nov 2024 13:02:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/trampoline: Rationalise the constants to describe
 the size
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241113093058.1562447-1-andrew.cooper3@citrix.com>
 <20241113093058.1562447-3-andrew.cooper3@citrix.com>
 <8217032f-c5ec-4f93-b69f-42ceeae06073@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: <8217032f-c5ec-4f93-b69f-42ceeae06073@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 12:36, Andrew Cooper wrote:
> On 13/11/2024 9:30 am, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
>> index 7930b7c73892..9d3f2b71447e 100644
>> --- a/xen/arch/x86/efi/efi-boot.h
>> +++ b/xen/arch/x86/efi/efi-boot.h
>> @@ -633,7 +633,7 @@ static void __init efi_arch_memory_setup(void)
>>      if ( efi_enabled(EFI_LOADER) )
>>          cfg.size = trampoline_end - trampoline_start;
>>      else
>> -        cfg.size = TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
>> +        cfg.size = TRAMPOLINE_SIZE;
> 
> Something I forgot to mention.
> 
> The EFI_LOADER side of this conditional means that the heap isn't valid.
> 
> This includes modelist, vesa_glob_info and vesa_mode_info from video.S,
> but I can't find where they're used at all.

If nothing else, then iirc to hand (whole struct) to Dom0 upon request.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:14:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:14:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835530.1251393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBCFy-00070q-Up; Wed, 13 Nov 2024 12:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835530.1251393; Wed, 13 Nov 2024 12:13: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 1tBCFy-00070j-Ri; Wed, 13 Nov 2024 12:13:58 +0000
Received: by outflank-mailman (input) for mailman id 835530;
 Wed, 13 Nov 2024 12:13: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=KbMU=SI=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBCFx-00070d-TK
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:13:57 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bfcad247-a1b8-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:13:53 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a99f3a5a44cso907539266b.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:13:53 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17b58sm876853466b.25.2024.11.13.04.13.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:13: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: bfcad247-a1b8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJmY2FkMjQ3LWExYjgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAwMDMzLjc0MDc1Niwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731500033; x=1732104833; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=yoZzzpWJuW5xRuOYsYFYc7B5hYqPt3S9jWDS7kvIiuU=;
        b=EHasWULBdraA5P4fPCsxTqQ0Fy1Ltl3cAmGTWgMFndyOGM9TlZEBzrNeckgmIz5aqq
         Vl7Hq1CfdIH1GQLRPmyMTVDUCcaekesud8mCD4NsxjlVeY7z8ObaBLttXreUB0jYtYvh
         LJ+lJbye9FyOYJHlDu8QaZPv3dKuK0aJ2ELaU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731500033; x=1732104833;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yoZzzpWJuW5xRuOYsYFYc7B5hYqPt3S9jWDS7kvIiuU=;
        b=i8HI1zpDz7VjaZrKUHWmqZIs1XuudhQQgKqJvrrXIZa8N07lDKP6y5oFJ6foJBfiiO
         oNWjx9cok3eTaDM2j49kLrvumh7rX5t0RiZknsDyQ07MA62Ty158EkvQXJlPGIUMp0hg
         SYcNiW7t9/0cA9iGC0aanQYo8FeKc/1dCPt0CVPGyGhS+HcI4FepKxoYQSzpv87GoSx3
         6Y5e5bNaR5gnwhdTR8noQaSTywv9P7bBsEy0SvBzjj8yhgZkv2ovU0xY0bJKdyDkL3nV
         UcLjjrOXE0IDcDvTK2dSgAMZoOww9T5DxYgyVc7TLHng8j+MOWg+GatGBiuxj/yeSGvq
         ObVA==
X-Forwarded-Encrypted: i=1; AJvYcCXVNrsv0hpqdihiZRaxIQRRPEUPe2+7BV+dSJbZ7SAlXJYDrNsrca9xB3lREd+t538V+B3vigHqxM0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVBdbeXKL/MjQ4LaWCMeRjd2rLcncHgRPpGVXObjxOheqJXgIy
	jr1fNhhbAaottuOS0Pi26il4RSayiXN2JG2t83VwII2HaJqIOPK+DPTxfG+ZY94=
X-Google-Smtp-Source: AGHT+IHQxfy3noawLZghs3yL5XZ6E1TzHGYVqHB7w9u3ius87uaAJsHIfk6fXQBlUuA60uQwB4HGag==
X-Received: by 2002:a17:907:3e16:b0:a9a:e9c:1d8d with SMTP id a640c23a62f3a-a9eefee4be8mr1871077466b.17.1731500033005;
        Wed, 13 Nov 2024 04:13:53 -0800 (PST)
Date: Wed, 13 Nov 2024 13:13:51 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzSX_1pdDYfu3OFH@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <6adc29fc-c6a6-460b-b034-62400e8c193b@suse.com>
 <ZzSF4es4NJnd3-JP@macbook>
 <38aa85ae-b398-4d23-82bb-6586457126f2@suse.com>
 <ZzSMemXEhJu21Id3@macbook>
 <4f75dc1d-a9f9-4ef9-b26a-77668dd6d3f2@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4f75dc1d-a9f9-4ef9-b26a-77668dd6d3f2@suse.com>

On Wed, Nov 13, 2024 at 12:29:11PM +0100, Jan Beulich wrote:
> On 13.11.2024 12:24, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 13, 2024 at 12:01:23PM +0100, Jan Beulich wrote:
> >> On 13.11.2024 11:56, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 13, 2024 at 11:36:46AM +0100, Jan Beulich wrote:
> >>>> On 13.11.2024 11:30, Roger Pau MonnÃ© wrote:
> >>>>> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >>>>>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>>>>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>>>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>>>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>>>>>> and then cause probing failure.
> >>>>>>>>
> >>>>>>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>>>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>>>>>> corresponding handler into vpci.
> >>>>>>>>
> >>>>>>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>>>>>
> >>>>>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>>>>>> setting the new size.
> >>>>>>>
> >>>>>>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>>>>>> time ago I've made a patch to add support for it, but due to lack of
> >>>>>>> hardware on my side to test it I've never submitted it.
> >>>>>>>
> >>>>>>> My approach would be to detect the presence of the
> >>>>>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>>>>>> capability is present force the sizing of BARs each time they are
> >>>>>>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>>>>>> the capability itself, as resizing can only happen when memory
> >>>>>>> decoding is not enabled for the device.  It's enough to fetch the size
> >>>>>>> of the BARs ahead of each enabling of memory decoding.
> >>>>>>>
> >>>>>>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>>>>>> is already an expensive operation, the extra sizing is unlikely to
> >>>>>>> make much of a difference performance wise.
> >>>>>>>
> >>>>>>> I've found the following on my git tree and rebased on top of staging:
> >>>>>> OK.
> >>>>>> Do you need me to validate your patch in my environment?
> >>>>>
> >>>>> Yes please, I have no way to test it.  Let's see what others think
> >>>>> about the different approaches.
> >>>>
> >>>> I'd certainly prefer your simpler form, if it's safe and fits the needs.
> >>>>
> >>>>>> And I have one question: where does your patch do writing the resizing size into hardware?
> >>>>>
> >>>>> dom0 has unrestricted access to the resize capability, so the value
> >>>>> written by dom0 is propagated to the hardware without modification.
> >>>>>
> >>>>> I would be wary of exposing the resize capability to untrusted
> >>>>> domains, as allowing a domU to change the size of BARs can lead to
> >>>>> overlapping if the hardware domain hasn't accounted for the increase
> >>>>> in BAR size.
> >>>>
> >>>> Question is how the feature is used in practice: If it was a driver to
> >>>> request the re-size, I'd have a hard time seeing how we could make that
> >>>> work without intercepting accesses to the capability for DomU-s (implying
> >>>> to expose it in the first place, of course).
> >>>
> >>> Question is also whether the capability is required for guests, as in
> >>> OS drivers requesting it to be present for proper operation.
> >>>
> >>> I haven't given much thought about how to expose to domUs.  The
> >>> current patch doesn't attempt to expose to domUs either, as the
> >>> capability is not added to the 'supported_caps' array.
> >>
> >> Hmm, I see. Yet then adding support to vPCI, but limited to Dom0, ends up
> >> odd in two ways: Another aspect that'll need dealing with for DomU-s, and
> >> the same functionality remaining unavailable (or at least not properly
> >> available, with all possible side effects) to PV Dom0.
> > 
> > I think resizable BARs should just work for PV dom0, as Xen allows PV
> > dom0 to map almost all physical memory.  Xen doesn't require knowing
> > the BAR positions and sizes like it does for PVH dom0.
> 
> Does it really not need to know in any (corner) case? Are there guarantees
> that e.g. MSI-X table or PBA can't move when the size of the BAR covering
> them changes?

Those are the same guarantees that Xen has from a PV dom0 not moving
the position of the BARs after having MSI-X enabled for example.  IOW:
dom0 should set the BAR size before enabling MSI-X, just like it does
for the BAR positions currently.

The specification doesn't mention anything about MSI-X table or PBA
explicitly not changing it's offset if the BAR where it resides is
resized, so I don't think we have any guarantees.  Albeit I would
think it's unexpected for the MSI-X BIR or offset to change as a
result of a BAR resize.

There's an implementation note in the PCI specification that the BAR
should be resized during resource allocation, prior to assigning the
base address to the BAR.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:19:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835539.1251403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBCLX-0007bn-H8; Wed, 13 Nov 2024 12:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835539.1251403; Wed, 13 Nov 2024 12:19: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 1tBCLX-0007bg-ES; Wed, 13 Nov 2024 12:19:43 +0000
Received: by outflank-mailman (input) for mailman id 835539;
 Wed, 13 Nov 2024 12:19: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBCLW-0007ba-Sh
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:19:42 +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 8c7e1b30-a1b9-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:19:37 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aaddeso8083545a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:19:37 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a194dasm853542166b.3.2024.11.13.04.19.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 04:19: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: 8c7e1b30-a1b9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhjN2UxYjMwLWExYjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAwMzc3LjE5MzQ5LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731500376; x=1732105176; 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=weItZhRknoTJndUCubjmFZddpjxkqH3+j+W1wp4tRKw=;
        b=MBchYVEoxKaOZ9yF0qU/bkJCbFhrRmGunwVrGXfVgoorX72OoTz2aNF9mxm+M55a5V
         f9uVhq+bRwrv3tUFidWNYQ7HX/qo27pG01tDp4sPQ1Q6qsS/wP72b93nwOu/Aw2sMs3+
         uXizO+pon3umL9P8sxkaX0+oPvRcyJInlDVAo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731500376; x=1732105176;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=weItZhRknoTJndUCubjmFZddpjxkqH3+j+W1wp4tRKw=;
        b=SzlTe9HUDtvpgnQyH4XOr4g/34NmKrhfJa6VZPkHTMnmI9fOQvop3Ufm4MEuU1wytV
         VLi0AvWsWspTMFUIHj/LPrEm+doWpn8g5QpR7aiZuBN3g6JPKaVAFPTGA0N3D283Eai4
         Nqi+SVkJqFrevB9tFZKCPpt4KwwCaoUnpolTU5B3sFmSqr09qAtkqCLaFfrTw1n/Kc42
         sd50gkvifZawNf+gIX0KIMyXTiVbM+ll63YKC5bKRh3QtaKT1X7rG0waR4ctzNyM4Hsi
         RfT6pYxWhZZxjYvj0rO+Qio8jzknqrW6Nnj2OuPJMpkbkwTzh6q75VdiuieCfmlpE9Kt
         qsug==
X-Forwarded-Encrypted: i=1; AJvYcCXstfmvkX1qrVACjAv7e2t4Zm+UmyPkGAlrqrpytDe5vKr2rtL7UeozByh4OZmwr1Ubd1b6ck86wg8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNQHn0kXwzLRBu4pffno0PDQrrl3DbkjQ4gPF3g6Aa5RKa0kwg
	hBQ7TSoRwVlA871FO/QVVUsl/upnKRs9M9urcR/b+NAr0Z1Rdu96+HNIXP40TQU=
X-Google-Smtp-Source: AGHT+IG+COHURLVf8T8IkcM7kh2PFLad+sCENpWa0gY972cILpUTITO7F1fQq1uRoDJlU7EzmkM1rQ==
X-Received: by 2002:a17:907:7f91:b0:a9e:b86f:c478 with SMTP id a640c23a62f3a-a9eeff44f3amr2063083566b.36.1731500376500;
        Wed, 13 Nov 2024 04:19:36 -0800 (PST)
Message-ID: <4bc2744b-81e5-4923-8321-ab9a95182b71@citrix.com>
Date: Wed, 13 Nov 2024 12:19:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ARM] preparations for 4.19.1
To: Luca Fancellu <Luca.Fancellu@arm.com>, Julien Grall <julien@xen.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Kelly Choi <kelly.choi@cloud.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <4aa24b39-5734-4b0a-8969-dc3eb4942975@amd.com>
 <718c2a9c-15b0-4f21-941a-5094c06787c7@xen.org>
 <FD24D223-1EDF-414F-BA41-112A72F894CD@arm.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <FD24D223-1EDF-414F-BA41-112A72F894CD@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/11/2024 10:14 am, Luca Fancellu wrote:
> Hi all,
>
>> On 12 Nov 2024, at 16:11, Julien Grall <julien@xen.org> wrote:
>>
>> Hi,
>>
>> On 12/11/2024 16:00, Stewart Hildebrand wrote:
>>> On 11/12/24 08:00, Jan Beulich wrote:
>>>> All,
>>>>
>>>> the release is due by the end of the month. Please point out
>>>> backports you find
>>>> missing from the respective staging branch, but which you consider
>>>> relevant.
>>>>
>>>> Advance notice: 4.18.4 ought to follow about two weeks later.
>>>>
>>>> Jan
>>>>
>>> Looking for Julien's input on this one:
>>> 35c64c3dce01 ("xen/arm64: entry: Actually skip do_trap_*() when an
>>> SError is triggered")
>>> As mentioned in the post-commit notes [0] it's a candidate for backport.
>>
>> In the past, Stefano handled backports for Arm. I am not sure if this
>> is still case. Stefano?
>>
>>> [0]
>>> https://lore.kernel.org/xen-devel/20240806124815.53492-1-julien@xen.org/
>>
>> Cheers,
>>
>> -- 
>> Julien Grall
>>
>>
>
> Regarding back porting to the 4.19, there is a regression for Arm
> discussed in the ML and on Matrix, do we want to address it now?
>
> [v5,1/3] xen/device-tree: Let DT reserve map entries overlap
> reserved-memory - Patchwork
> <https://patchwork.kernel.org/project/xen-devel/patch/302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com/>
> patchwork.kernel.org
> <https://patchwork.kernel.org/project/xen-devel/patch/302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com/>
> 	<https://patchwork.kernel.org/project/xen-devel/patch/302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com/>
>
> <https://patchwork.kernel.org/project/xen-devel/patch/302647e409d91ea7ed39e568dadeedc572976c3b.1727388925.git.sanastasio@raptorengineering.com/>
>
>
> xen/device-tree: Allow exact match for overlapping regions - Patchwork
> <https://patchwork.kernel.org/project/xen-devel/patch/20241106134132.2185492-1-luca.fancellu@arm.com/>
> patchwork.kernel.org
> <https://patchwork.kernel.org/project/xen-devel/patch/20241106134132.2185492-1-luca.fancellu@arm.com/>
> 	<https://patchwork.kernel.org/project/xen-devel/patch/20241106134132.2185492-1-luca.fancellu@arm.com/>
>
> <https://patchwork.kernel.org/project/xen-devel/patch/20241106134132.2185492-1-luca.fancellu@arm.com/>
>

That regression does want addressing ASAP, and wants to be included
within 4.19.1.

But first, the ARM maintainers need to agree on what the fix should look
like.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835557.1251468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChv-00053i-1Q; Wed, 13 Nov 2024 12:42:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835557.1251468; Wed, 13 Nov 2024 12:42: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 1tBChu-00052x-Ql; Wed, 13 Nov 2024 12:42:50 +0000
Received: by outflank-mailman (input) for mailman id 835557;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBCht-0003m4-Oq
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:49 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8db0bf5-a1bc-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:42:47 +0100 (CET)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-326-8nNvpUA1PfylntgdSn7_GQ-1; Wed, 13 Nov 2024 07:42:45 -0500
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-37d531a19a9so3827787f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:45 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04: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: c8db0bf5-a1bc-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM4ZGIwYmY1LWExYmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTAxNzY3LjgzNzg5LCJzZW5kZXIiOiJwc3Rhbm5lckByZWRoYXQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501766;
	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=op+AvZ1YCKZsOQFtb06qEXzMr+HQn8e2wB0EdtWp+RY=;
	b=eU82t0RqZDMnOwn8zuoklPbH5eNIt669KIz1LYTG3y3dOL7f7M0Rf/a8OC3SUXdDvqJa3Y
	oxKNiXzRpn5VnFFLOGMhX5ykY6VfuqRwR716IL/46BxM82Uq0zKYGfx12Mfmnx/7u3SRg4
	z3jKFbJoJVquwtik2bU/Txtq90LgApc=
X-MC-Unique: 8nNvpUA1PfylntgdSn7_GQ-1
X-Mimecast-MFC-AGG-ID: 8nNvpUA1PfylntgdSn7_GQ
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501764; x=1732106564;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=op+AvZ1YCKZsOQFtb06qEXzMr+HQn8e2wB0EdtWp+RY=;
        b=v41HIUlHC7jt6YtwR+/mj5PmeyA9s3W8jwxybao2jfAYibJxaOelH/QYnBW9YOhQbc
         elNST5iI0OR847Mi2gYTy1f21F5y/QOHx1fgwnJpNjdTMljLFFoJ8kIcCup2tyyEegsg
         ySk2hiZNdSQzBnyS3NcEdp63w0yY/PKHNXRaSGQ375SMPP73VJXfJM9cQ/2BAHPK1edP
         DLYQuOr3/sqGqTCPRONJY3+i7pL3xo+Mlw71eq6JHaebPkzZBOh1aUg8/ngqbkT8o873
         3Q69BKlaj7bVeUQfuySFpeeWXQNmLIp1zmuChjeIDLb4ewdk67H47qnX0I3myRlsZgUZ
         XVLw==
X-Forwarded-Encrypted: i=1; AJvYcCW0RIFI6Jt5UaXMjgedigCH30jV7JH6WlaM0SBxGYehbnkYkIoZ5HTGGD4i5ANP6gZcSdn69Pgvjuc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDKnmpgADyQWi3qaMRqr1MBO0QoGPyr/6MVIWjkKGAzs7KAp4o
	n+PnMR/mC6FVWJe6WQKjnlDLayFgUXGsfxWaS6WGERiyR15vJC9sU2mrTdfKc49k9rQTCL9h5sI
	2OEnLkEMdSUOVL5Ei4mifrinwLbVeLgK2+4XJboRX/gSm60qJx5YZZDIyKj1+zZOo
X-Received: by 2002:a05:6000:704:b0:382:d0a:fe4e with SMTP id ffacd0b85a97d-3820df7add5mr2320634f8f.40.1731501763943;
        Wed, 13 Nov 2024 04:42:43 -0800 (PST)
X-Google-Smtp-Source: AGHT+IFvKoYvBUp37kzzcOw/kNuKZIW7fG0pUujGd0dqmiteiiQa85bm4vAcxVjs1ubCq0XbXcf6/A==
X-Received: by 2002:a05:6000:704:b0:382:d0a:fe4e with SMTP id ffacd0b85a97d-3820df7add5mr2320584f8f.40.1731501763480;
        Wed, 13 Nov 2024 04:42:43 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 06/11] vfio/pci: Use never-managed version of pci_intx()
Date: Wed, 13 Nov 2024 13:41:54 +0100
Message-ID: <20241113124158.22863-8-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: Z8Jv4i57PwCRZ6MGd1yzOuDV9Da1z2OJmjdENl2CGWQ_1731501764
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

vfio enables its PCI-Device with pci_enable_device(). Thus, it
needs the never-managed version.

Replace pci_intx() with pci_intx_unmanaged().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
---
 drivers/vfio/pci/vfio_pci_core.c  |  2 +-
 drivers/vfio/pci/vfio_pci_intrs.c | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
index 1ab58da9f38a..90240c8d51aa 100644
--- a/drivers/vfio/pci/vfio_pci_core.c
+++ b/drivers/vfio/pci/vfio_pci_core.c
@@ -498,7 +498,7 @@ int vfio_pci_core_enable(struct vfio_pci_core_device *vdev)
 		if (vfio_pci_nointx(pdev)) {
 			pci_info(pdev, "Masking broken INTx support\n");
 			vdev->nointx = true;
-			pci_intx(pdev, 0);
+			pci_intx_unmanaged(pdev, 0);
 		} else
 			vdev->pci_2_3 = pci_intx_mask_supported(pdev);
 	}
diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c
index 8382c5834335..40abb0b937a2 100644
--- a/drivers/vfio/pci/vfio_pci_intrs.c
+++ b/drivers/vfio/pci/vfio_pci_intrs.c
@@ -118,7 +118,7 @@ static bool __vfio_pci_intx_mask(struct vfio_pci_core_device *vdev)
 	 */
 	if (unlikely(!is_intx(vdev))) {
 		if (vdev->pci_2_3)
-			pci_intx(pdev, 0);
+			pci_intx_unmanaged(pdev, 0);
 		goto out_unlock;
 	}
 
@@ -132,7 +132,7 @@ static bool __vfio_pci_intx_mask(struct vfio_pci_core_device *vdev)
 		 * mask, not just when something is pending.
 		 */
 		if (vdev->pci_2_3)
-			pci_intx(pdev, 0);
+			pci_intx_unmanaged(pdev, 0);
 		else
 			disable_irq_nosync(pdev->irq);
 
@@ -178,7 +178,7 @@ static int vfio_pci_intx_unmask_handler(void *opaque, void *data)
 	 */
 	if (unlikely(!is_intx(vdev))) {
 		if (vdev->pci_2_3)
-			pci_intx(pdev, 1);
+			pci_intx_unmanaged(pdev, 1);
 		goto out_unlock;
 	}
 
@@ -296,7 +296,7 @@ static int vfio_intx_enable(struct vfio_pci_core_device *vdev,
 	 */
 	ctx->masked = vdev->virq_disabled;
 	if (vdev->pci_2_3) {
-		pci_intx(pdev, !ctx->masked);
+		pci_intx_unmanaged(pdev, !ctx->masked);
 		irqflags = IRQF_SHARED;
 	} else {
 		irqflags = ctx->masked ? IRQF_NO_AUTOEN : 0;
@@ -569,7 +569,7 @@ static void vfio_msi_disable(struct vfio_pci_core_device *vdev, bool msix)
 	 * via their shutdown paths.  Restore for NoINTx devices.
 	 */
 	if (vdev->nointx)
-		pci_intx(pdev, 0);
+		pci_intx_unmanaged(pdev, 0);
 
 	vdev->irq_type = VFIO_PCI_NUM_IRQS;
 }
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835553.1251432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChq-0004Ef-Ro; Wed, 13 Nov 2024 12:42:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835553.1251432; Wed, 13 Nov 2024 12:42: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 1tBChq-0004EY-Op; Wed, 13 Nov 2024 12:42:46 +0000
Received: by outflank-mailman (input) for mailman id 835553;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBCho-0003m3-Qv
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:44 +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 c231f22e-a1bc-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:42:36 +0100 (CET)
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
 [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-186-sQjr1_DDNM6xdkxkxNLtww-1; Wed, 13 Nov 2024 07:42:34 -0500
Received: by mail-wr1-f70.google.com with SMTP id
 ffacd0b85a97d-37d5116f0a6so3762287f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:34 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: c231f22e-a1bc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMyMzFmMjJlLWExYmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAxNzU2Ljc2ODU5Mywic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501755;
	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=40yBQL1XcEoYGtru1ianOSHWnjsf7gEjQJGHFwcCtv4=;
	b=KnH/ty2V1r8OYgyV9i4Ts9sW4veswdNYR6HLUkcoipdcpD2fcaP5DiOBoslZ5E9+ZqTHGt
	PKiRBNipZk5iUwQmJPf47PGiQFH9FMQQQvLobT4QfZNPQcZN56eZ4/+IPzDobzUUBZOFJ3
	o3hNkxWbbHwMpCEDC/yog31LEwRTgyU=
X-MC-Unique: sQjr1_DDNM6xdkxkxNLtww-1
X-Mimecast-MFC-AGG-ID: sQjr1_DDNM6xdkxkxNLtww
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501753; x=1732106553;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=40yBQL1XcEoYGtru1ianOSHWnjsf7gEjQJGHFwcCtv4=;
        b=KB8B8IU34eX9bAKGNq63Gt7kPV/HpjM1+BeH8iwbPfodJ9CFbcbeSD2+zBQE2/DSl5
         HLqoVWldhZLjH97npvSzw4OY/wbmrSDmrpcutRUACpNv+Q/diHYag/I7mOGzuzpGIL+F
         MlsocFP5AzitGuH8HOyXt7vuU8iPUlRc+IH20Gr1VIaTowZ+tTLpcB4eSmd5a6UWEWmu
         c7Kv9kXLqqYB+2sbTah8HI/btIsc5ZL40vo6vrw79cbVAZVHduJH/aZlwJdQpbAXXZ1V
         Qmp4AtJGuhxqPtxRunCH7pKeynmEnFekHzcRtg2fOMDbwCZywE+6tw3/xH4bA85d/aPH
         NHUw==
X-Forwarded-Encrypted: i=1; AJvYcCVltqZrGpIdKnQpi0SPBmopeXIXGlAKIBARTQ7dRsCutRPmxMwNpx8J5R7byFlhWbyGiF1mnZHKnoI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbypjUTDLjyvjuXJRtNp8roUx13xfnNhDRuxwkNIs5R9ANuAVV
	KhdhxCTqqp7Hm/FavvtS+UTGG0sCV4lHaKAHreEDtu6eLpTQnAiAOOLN/K00AtScFjiOFxCtgaw
	AWD4EX2v2XEDKrsJXptO4jyTOOs0FMqYVdXmi7/W4LPxcc25ajfXjlDQGpD08LrBg
X-Received: by 2002:a05:6000:1566:b0:37d:501f:483f with SMTP id ffacd0b85a97d-381f187fa4fmr18333248f8f.44.1731501752910;
        Wed, 13 Nov 2024 04:42:32 -0800 (PST)
X-Google-Smtp-Source: AGHT+IG88cAt9vbjd+Fv+tUe500AG/cZtHBmig9dl5++H5KHNhJiR6Bbh9nCCmpa1PrZQ9oi5jDTmQ==
X-Received: by 2002:a05:6000:1566:b0:37d:501f:483f with SMTP id ffacd0b85a97d-381f187fa4fmr18333208f8f.44.1731501752404;
        Wed, 13 Nov 2024 04:42:32 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 01/11] PCI: Prepare removing devres from pci_intx()
Date: Wed, 13 Nov 2024 13:41:49 +0100
Message-ID: <20241113124158.22863-3-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: EgVaA5KNzTbs94exyXtDfbYSJA4t4C_5cB5Di5dN-X8_1731501753
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which sometimes performs devres
operations, depending on whether pcim_enable_device() has been used to
enable the pci_dev. This sometimes-managed nature of the function is
problematic. Notably, it causes the function to allocate under some
circumstances which makes it unusable from interrupt context.

To, ultimately, remove the hybrid nature from pci_intx(), it is first
necessary to provide an always-managed and a never-managed version
of that function. Then, all callers of pci_intx() can be ported to the
version they need, depending whether they use pci_enable_device() or
pcim_enable_device().

An always-managed function exists, namely pcim_intx(), for which
__pcim_intx(), a never-managed version of pci_intx() has been
implemented.

Make __pcim_intx() a public function under the name
pci_intx_unmanaged(). Make pcim_intx() a public function.

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
---
 drivers/pci/devres.c | 24 +++---------------------
 drivers/pci/pci.c    | 29 +++++++++++++++++++++++++++++
 include/linux/pci.h  |  2 ++
 3 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/drivers/pci/devres.c b/drivers/pci/devres.c
index b133967faef8..d32827a1f2f4 100644
--- a/drivers/pci/devres.c
+++ b/drivers/pci/devres.c
@@ -411,31 +411,12 @@ static inline bool mask_contains_bar(int mask, int bar)
 	return mask & BIT(bar);
 }
 
-/*
- * This is a copy of pci_intx() used to bypass the problem of recursive
- * function calls due to the hybrid nature of pci_intx().
- */
-static void __pcim_intx(struct pci_dev *pdev, int enable)
-{
-	u16 pci_command, new;
-
-	pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
-
-	if (enable)
-		new = pci_command & ~PCI_COMMAND_INTX_DISABLE;
-	else
-		new = pci_command | PCI_COMMAND_INTX_DISABLE;
-
-	if (new != pci_command)
-		pci_write_config_word(pdev, PCI_COMMAND, new);
-}
-
 static void pcim_intx_restore(struct device *dev, void *data)
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct pcim_intx_devres *res = data;
 
-	__pcim_intx(pdev, res->orig_intx);
+	pci_intx_unmanaged(pdev, res->orig_intx);
 }
 
 static struct pcim_intx_devres *get_or_create_intx_devres(struct device *dev)
@@ -472,10 +453,11 @@ int pcim_intx(struct pci_dev *pdev, int enable)
 		return -ENOMEM;
 
 	res->orig_intx = !enable;
-	__pcim_intx(pdev, enable);
+	pci_intx_unmanaged(pdev, enable);
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(pcim_intx);
 
 static void pcim_disable_device(void *pdev_raw)
 {
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 225a6cd2e9ca..c945811b207a 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -4480,6 +4480,35 @@ void pci_disable_parity(struct pci_dev *dev)
 	}
 }
 
+/**
+ * pci_intx_unmanaged - enables/disables PCI INTx for device dev,
+ * unmanaged version
+ * @pdev: the PCI device to operate on
+ * @enable: boolean: whether to enable or disable PCI INTx
+ *
+ * Enables/disables PCI INTx for device @pdev
+ *
+ * This function behavios identically to pci_intx(), but is never managed with
+ * devres.
+ */
+void pci_intx_unmanaged(struct pci_dev *pdev, int enable)
+{
+	u16 pci_command, new;
+
+	pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
+
+	if (enable)
+		new = pci_command & ~PCI_COMMAND_INTX_DISABLE;
+	else
+		new = pci_command | PCI_COMMAND_INTX_DISABLE;
+
+	if (new == pci_command)
+		return;
+
+	pci_write_config_word(pdev, PCI_COMMAND, new);
+}
+EXPORT_SYMBOL_GPL(pci_intx_unmanaged);
+
 /**
  * pci_intx - enables/disables PCI INTx for device dev
  * @pdev: the PCI device to operate on
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 573b4c4c2be6..6b8cde76d564 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1353,6 +1353,7 @@ int __must_check pcim_set_mwi(struct pci_dev *dev);
 int pci_try_set_mwi(struct pci_dev *dev);
 void pci_clear_mwi(struct pci_dev *dev);
 void pci_disable_parity(struct pci_dev *dev);
+void pci_intx_unmanaged(struct pci_dev *pdev, int enable);
 void pci_intx(struct pci_dev *dev, int enable);
 bool pci_check_and_mask_intx(struct pci_dev *dev);
 bool pci_check_and_unmask_intx(struct pci_dev *dev);
@@ -2293,6 +2294,7 @@ static inline void pci_fixup_device(enum pci_fixup_pass pass,
 				    struct pci_dev *dev) { }
 #endif
 
+int pcim_intx(struct pci_dev *pdev, int enabled);
 void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen);
 void __iomem *pcim_iomap_region(struct pci_dev *pdev, int bar,
 				const char *name);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835552.1251417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChp-0003p9-Lj; Wed, 13 Nov 2024 12:42:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835552.1251417; Wed, 13 Nov 2024 12:42: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 1tBChp-0003oV-GD; Wed, 13 Nov 2024 12:42:45 +0000
Received: by outflank-mailman (input) for mailman id 835552;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBCho-0003m4-Bg
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:44 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c22ee1d4-a1bc-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:42:36 +0100 (CET)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-617-uaqureCkMxGI3q2SgPXraQ-1; Wed, 13 Nov 2024 07:42:31 -0500
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-37d432f9f5eso3589154f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:31 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: c22ee1d4-a1bc-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMyMmVlMWQ0LWExYmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTAxNzU2LjY2MzE4LCJzZW5kZXIiOiJwc3Rhbm5lckByZWRoYXQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501755;
	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;
	bh=gi/nDuPOQh+kW8YCVePTGgMsqduTQsEMI/h4REBTyU8=;
	b=XPq3IzCJ1K/qL737veRrH5eMdIWbPVROD1Bv6J/fB/gVLEvbEmfG14bZW+a+n4zXKXSW8W
	eS+lJvMa4zecUG1VZTPo5czrUEB4PFCY1rYLxtEmu3NtsLTAYerFo3tzq25UM1W2dFFfJl
	jkEMZhjPdk0vdnT6UBWL7Q4TqJyeKLw=
X-MC-Unique: uaqureCkMxGI3q2SgPXraQ-1
X-Mimecast-MFC-AGG-ID: uaqureCkMxGI3q2SgPXraQ
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501751; x=1732106551;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gi/nDuPOQh+kW8YCVePTGgMsqduTQsEMI/h4REBTyU8=;
        b=rJBQaPvnnOy54a9zQ/F+PLDSylV7LyNcqYTwYAKZEiMqF6NSi2woDBo8j/ScwwZx9j
         AHigywLywZ3SXj7YvJ4FGow7se0acnI1wt6TvYLSbow7xvWp5m8aN75YZpITYakt0hUJ
         ihYlIIyLuoOHPOb5CcaQCTdK4ICisP3ATgZ87ZY13q0+8u6V8XUPmmpMwLuVoMxtinyf
         Gmt3W2Pf9F5jsItFUTYMxt/JX4wvczoMKYdRwi1R2YjU/0ufVmErQVuOOok0GliQyser
         SAx/un7cfjB2XMDRpH//3WIdJNbIE0jju4Mdn5imcG/D91a9TIIrv/2lBsCtkTHoZVjO
         pSVQ==
X-Forwarded-Encrypted: i=1; AJvYcCU9u/NlGiwNLtVsZUhtDnMVMSo44aKMYkWb7dS7SF0KhVOo/jMHIJj+f8j+aUt98Kc9yZVZ8PgwoEE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFZHRL0jnEIsx6Duxo9yBt805lkC/wO1Kz9yTiwOCIWz6lyk87
	XUi5U4DfF6y4NpDOnpdl3v9YIpFy6eWoz0ls8k4bE2TMrcAAJ2+oE9EzubKftzLJl6Ylwq749lO
	G4X40CufOfrvfpMBJ/64hDZzMX+4/o/0JK3rNT8o+uCL7AH7pfrRaqzd7enp3Bwu1
X-Received: by 2002:a5d:5f53:0:b0:381:f595:fd0a with SMTP id ffacd0b85a97d-3820810ffc0mr4675161f8f.16.1731501750632;
        Wed, 13 Nov 2024 04:42:30 -0800 (PST)
X-Google-Smtp-Source: AGHT+IEkW+KWr+FGBC4soAeZ9AbHODqoGfzXwj1GlUIlZwp3/7RfEbVzZfIvsQ3hNUEE9XJJckqbgQ==
X-Received: by 2002:a5d:5f53:0:b0:381:f595:fd0a with SMTP id ffacd0b85a97d-3820810ffc0mr4675138f8f.16.1731501750223;
        Wed, 13 Nov 2024 04:42:30 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 00/11] Remove implicit devres from pci_intx()
Date: Wed, 13 Nov 2024 13:41:48 +0100
Message-ID: <20241113124158.22863-2-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 7SqlCWKtB-P6JZC5A5Ro5qAxeTchc6wv-GOBC3X6vvw_1731501751
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

@Driver-Maintainers: Your driver might be touched by patch "Remove
devres from pci_intx()". You might want to take a look.

Changes in v2:
  - Drop pci_intx() deprecation patch.
  - ata: Add RB from Sergey and Niklas.
  - wifi: Add AB by Kalle.
  - Drop INTx deprecation patch
  - Drop ALSA / hda_intel patch because pci_intx() was removed from
    there in the meantime.

Changes since the RFC [1]:
  - Add a patch deprecating pci{m}_intx(). (Heiner, Andy, Me)
  - Add Acked-by's already given.
  - Export pcim_intx() as a GPL function. (Alex)
  - Drop patch for rts5280, since this driver will be removed quite
    soon. (Philipp Hortmann, Greg)
  - Use early-return in pci_intx_unmanaged() and pci_intx(). (Andy)

Hi all,

this series removes a problematic feature from pci_intx(). That function
sometimes implicitly uses devres for automatic cleanup. We should get
rid of this implicit behavior.

To do so, a pci_intx() version that is always-managed, and one that is
never-managed are provided. Then, all pci_intx() users are ported to the
version they need. Afterwards, pci_intx() can be cleaned up and the
users of the never-managed version be ported back to pci_intx().

This way we'd get this PCI API consistent again.

Patch "Remove devres from pci_intx()" obviously reverts the previous
patches that made drivers use pci_intx_unmanaged(). But this way it's
easier to review and approve. It also makes sure that each checked out
commit should provide correct behavior, not just the entire series as a
whole.

Merge plan for this is to enter through the PCI tree.

[1] https://lore.kernel.org/all/20241009083519.10088-1-pstanner@redhat.com/


Regards,
P.


Philipp Stanner (11):
  PCI: Prepare removing devres from pci_intx()
  drivers/xen: Use never-managed version of pci_intx()
  net/ethernet: Use never-managed version of pci_intx()
  net/ntb: Use never-managed version of pci_intx()
  misc: Use never-managed version of pci_intx()
  vfio/pci: Use never-managed version of pci_intx()
  PCI: MSI: Use never-managed version of pci_intx()
  ata: Use always-managed version of pci_intx()
  wifi: qtnfmac: use always-managed version of pcim_intx()
  HID: amd_sfh: Use always-managed version of pcim_intx()
  Remove devres from pci_intx()

 drivers/ata/ahci.c                            |  2 +-
 drivers/ata/ata_piix.c                        |  2 +-
 drivers/ata/pata_rdc.c                        |  2 +-
 drivers/ata/sata_sil24.c                      |  2 +-
 drivers/ata/sata_sis.c                        |  2 +-
 drivers/ata/sata_uli.c                        |  2 +-
 drivers/ata/sata_vsc.c                        |  2 +-
 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c        |  4 ++--
 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c |  2 +-
 .../wireless/quantenna/qtnfmac/pcie/pcie.c    |  2 +-
 drivers/pci/devres.c                          | 24 +++----------------
 drivers/pci/pci.c                             | 16 +++----------
 include/linux/pci.h                           |  1 +
 13 files changed, 18 insertions(+), 45 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835556.1251462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChu-00050a-MK; Wed, 13 Nov 2024 12:42:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835556.1251462; Wed, 13 Nov 2024 12:42: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 1tBChu-00050S-I6; Wed, 13 Nov 2024 12:42:50 +0000
Received: by outflank-mailman (input) for mailman id 835556;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBChs-0003m3-QY
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:48 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7aadf56-a1bc-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:42:45 +0100 (CET)
Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com
 [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-501-EBEbK7cDOuCv1PKPQ0mhYg-1; Wed, 13 Nov 2024 07:42:42 -0500
Received: by mail-wr1-f69.google.com with SMTP id
 ffacd0b85a97d-37d4a211177so3850957f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:42 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: c7aadf56-a1bc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM3YWFkZjU2LWExYmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAxNzY1Ljc5MTA5Niwic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501764;
	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=i/tiT1oHv++iZFY5S8iNVJ0nRwrLe5bjQFEltGuWg0g=;
	b=gLpgthrpaLnM8v45rl7nPH20azm9xJdi6yTCZzkhTbGbboX0E6M00KkIC82urkaLgsX+5w
	BT9x/Y7kKBFMu70GtPoN/vMvJN/XdD+BR1LQ+S6qLdQgQ3YvLhM6Yjvk4eSVksIPn/m99C
	5CpLqC3itcNDYT8Cf9dvVkLbjEdDLz4=
X-MC-Unique: EBEbK7cDOuCv1PKPQ0mhYg-1
X-Mimecast-MFC-AGG-ID: EBEbK7cDOuCv1PKPQ0mhYg
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501762; x=1732106562;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=i/tiT1oHv++iZFY5S8iNVJ0nRwrLe5bjQFEltGuWg0g=;
        b=cpr2rcP+ohmmm6ZUEAt0ZLbS+rlWFwO0e4eX2pqxaf58bZkY48NYBALjjpAq0/vSJj
         sPE9GY35nsRXVQJLGo9hadbJqzN9uVeVexieUb1io1v4pvbPoXQdHToAecNn5t+7PvPb
         xY8if97yKlWjRgZopQf8cBBT2rhyFDx5FBI7uzuFM0rHVnjdXWpJY82tQLHctU1PUGjP
         2qb+ewUu1SssOvQjeeXT0O3zyraVdAvPTEOiyeB6QcY+ZT3d0o6/WYhStgeHpQFgFzrs
         qB4ndVlUk1I0AKeUcd2RmSBemFC+9h0ZaTfpz6EJQhXjPGp2h1uEyhduANgF5vgP1Pat
         lOeA==
X-Forwarded-Encrypted: i=1; AJvYcCVusIPCg4HmscM9GobaDCcdgZi1JghtJLnOuvLwS6yCemP0nEcRTlXEK8zKcgoAF6wzMBoGZh3u4jY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3mjs76x6hDj+bhiWP6qaUuTvWwsPFePQyzkOsHwgRgaqjYy40
	ND/w91x4N/uJJV27IVKU/Z4V1ujLIj/oEqs6O6oFyDUhlmHq4QEZd+PO+NDuk4+EaRCQVM+7qhZ
	Wy1NZXjVywDhDFLSWsRM7Jn9tm1cMmwHFllZCe6kegNQ7caJmDFrvwxKLlOu6oMTh
X-Received: by 2002:a5d:5983:0:b0:381:bdeb:1799 with SMTP id ffacd0b85a97d-381f186cd09mr18144186f8f.16.1731501761737;
        Wed, 13 Nov 2024 04:42:41 -0800 (PST)
X-Google-Smtp-Source: AGHT+IE5699iopflHa4MIh1vN3HWtOXM+FnSWh5U2CqZjf/QXNdmzfM7vRlX36oxsyFaMlA1GtkJXQ==
X-Received: by 2002:a5d:5983:0:b0:381:bdeb:1799 with SMTP id ffacd0b85a97d-381f186cd09mr18144148f8f.16.1731501761273;
        Wed, 13 Nov 2024 04:42:41 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 05/11] misc: Use never-managed version of pci_intx()
Date: Wed, 13 Nov 2024 13:41:53 +0100
Message-ID: <20241113124158.22863-7-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: rIjwW8Iiz7XGz1yyXLFjCakN5YARBSf46l2aQ4eqJlw_1731501762
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

cardreader/rtsx_pcr.c and tifm_7xx1.c enable their PCI-Device with
pci_enable_device(). Thus, they need the never-managed version.

Replace pci_intx() with pci_intx_unmanaged().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
---
 drivers/misc/cardreader/rtsx_pcr.c | 2 +-
 drivers/misc/tifm_7xx1.c           | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/misc/cardreader/rtsx_pcr.c b/drivers/misc/cardreader/rtsx_pcr.c
index be3d4e0e50cc..e25e6d560dd7 100644
--- a/drivers/misc/cardreader/rtsx_pcr.c
+++ b/drivers/misc/cardreader/rtsx_pcr.c
@@ -1057,7 +1057,7 @@ static int rtsx_pci_acquire_irq(struct rtsx_pcr *pcr)
 	}
 
 	pcr->irq = pcr->pci->irq;
-	pci_intx(pcr->pci, !pcr->msi_en);
+	pci_intx_unmanaged(pcr->pci, !pcr->msi_en);
 
 	return 0;
 }
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c
index 1d54680d6ed2..5f9c7ccae8d2 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -327,7 +327,7 @@ static int tifm_7xx1_probe(struct pci_dev *dev,
 		goto err_out;
 	}
 
-	pci_intx(dev, 1);
+	pci_intx_unmanaged(dev, 1);
 
 	fm = tifm_alloc_adapter(dev->device == PCI_DEVICE_ID_TI_XX21_XX11_FM
 				? 4 : 2, &dev->dev);
@@ -368,7 +368,7 @@ static int tifm_7xx1_probe(struct pci_dev *dev,
 err_out_free:
 	tifm_free_adapter(fm);
 err_out_int:
-	pci_intx(dev, 0);
+	pci_intx_unmanaged(dev, 0);
 	pci_release_regions(dev);
 err_out:
 	if (!pci_dev_busy)
@@ -392,7 +392,7 @@ static void tifm_7xx1_remove(struct pci_dev *dev)
 		tifm_7xx1_sock_power_off(tifm_7xx1_sock_addr(fm->addr, cnt));
 
 	iounmap(fm->addr);
-	pci_intx(dev, 0);
+	pci_intx_unmanaged(dev, 0);
 	pci_release_regions(dev);
 
 	pci_disable_device(dev);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835551.1251412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChp-0003mY-Ct; Wed, 13 Nov 2024 12:42:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835551.1251412; Wed, 13 Nov 2024 12:42: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 1tBChp-0003mR-9l; Wed, 13 Nov 2024 12:42:45 +0000
Received: by outflank-mailman (input) for mailman id 835551;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBChn-0003m4-NK
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:43 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c38ff5b9-a1bc-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:42:38 +0100 (CET)
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-115-NU5M9BqyOWKA1ezNeTdULg-1; Wed, 13 Nov 2024 07:42:36 -0500
Received: by mail-wr1-f72.google.com with SMTP id
 ffacd0b85a97d-37d49887a2cso378732f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:36 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: c38ff5b9-a1bc-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMzOGZmNWI5LWExYmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTAxNzU4LjkzNTU0Miwic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501757;
	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=2UdUsG2Ce2FuhD+Vr0J1b3PhjfLKCU3S+xUJ9DfCqJQ=;
	b=ELpsqMTysSyQRHEvpusLFYcuTawBspYW34aV2LlbvzHdElDoMbe12lI/pfGCajQ+Lai1XU
	esBbGyUTKLdlu2XHrVTaxfrHTQWfdG+YCxxTE9mz44FtdFcDtbzN/sUCmp7YTXOytKQ0rm
	IfutlPiLYmYZZQN6J4VPUqiSku47wbI=
X-MC-Unique: NU5M9BqyOWKA1ezNeTdULg-1
X-Mimecast-MFC-AGG-ID: NU5M9BqyOWKA1ezNeTdULg
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501755; x=1732106555;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2UdUsG2Ce2FuhD+Vr0J1b3PhjfLKCU3S+xUJ9DfCqJQ=;
        b=f4h5zBf9xshAWeLgnQ9oE7YSLeKjxsvDz5hsZiS6hR3+RbHJC9axkQq0eYQAa8/Xyz
         5Bbv3nnl2Dbmdm4emCK2mfFgaPzIzlaAUuFGsBVInYAhmkygc0EYmTTXIsilWq6oWbor
         44pgXY4RV4ds+nsMJsdlRZMQmK1TIBeiBMLZucLlVU1xeKPtQdoqKbgnkhvJSHxoKiEq
         4IUbQW8lUfpPV4dMtiCjGpr0ZX7zDkLhkG/vGcXCyDKtfOjPfZR4QzM4N8UW6oHJUF43
         pIy1fGA+82DjjwRLI8oTT8XfcGKF1jnhUtMxHVuF4YQTgVJeTdi5vD6ZGlIgnKRT7j55
         DeLg==
X-Forwarded-Encrypted: i=1; AJvYcCVryq/p9pQCxp3LYzwJPFNjUCeWkLSxRDuUL6Vi2AE32FlJFYe94CEjSG00K70Qv+C3RBwvBdBuBSw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcPfqbiIAhm1aVInde8CDVzP6zKCeQxTq9ApkjTWo1p7gQT1ZC
	YxDCgJhd15jvxT8+1DWpTtgWXjDb4z9PZKAYN2AeH+sBvu7ni+ogJFYD6BYhLSF/NQEGdas9shd
	gEk4Vh/OI50e4yTyg1+iWMs4jEGhVp+mxNrk27lexXQmxRrbK4AT5dXZQyyp0GxXU
X-Received: by 2002:a05:6000:2d84:b0:381:f443:21c6 with SMTP id ffacd0b85a97d-381f44325dbmr11520840f8f.0.1731501755004;
        Wed, 13 Nov 2024 04:42:35 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGpGOsc1jx0uRyavECo6HCq0VfxiOW2oXCFxduoG1UVcDJiaH+xI1Ywem/WU8zILNl7MjLF9A==
X-Received: by 2002:a05:6000:2d84:b0:381:f443:21c6 with SMTP id ffacd0b85a97d-381f44325dbmr11520807f8f.0.1731501754619;
        Wed, 13 Nov 2024 04:42:34 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 02/11] drivers/xen: Use never-managed version of pci_intx()
Date: Wed, 13 Nov 2024 13:41:50 +0100
Message-ID: <20241113124158.22863-4-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: QYTgrl-dM6K43ReAJj4lpnHETycH_l85eVsFIZL7ZKM_1731501755
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

xen enables its PCI-Device with pci_enable_device(). Thus, it
needs the never-managed version.

Replace pci_intx() with pci_intx_unmanaged().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Acked-by: Juergen Gross <jgross@suse.com>
---
 drivers/xen/xen-pciback/conf_space_header.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/xen-pciback/conf_space_header.c b/drivers/xen/xen-pciback/conf_space_header.c
index fc0332645966..8d26d64232e8 100644
--- a/drivers/xen/xen-pciback/conf_space_header.c
+++ b/drivers/xen/xen-pciback/conf_space_header.c
@@ -106,7 +106,7 @@ static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
 
 	if (dev_data && dev_data->allow_interrupt_control &&
 	    ((cmd->val ^ value) & PCI_COMMAND_INTX_DISABLE))
-		pci_intx(dev, !(value & PCI_COMMAND_INTX_DISABLE));
+		pci_intx_unmanaged(dev, !(value & PCI_COMMAND_INTX_DISABLE));
 
 	cmd->val = value;
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835554.1251437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChr-0004Hz-4n; Wed, 13 Nov 2024 12:42:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835554.1251437; Wed, 13 Nov 2024 12:42: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 1tBChq-0004Hb-W9; Wed, 13 Nov 2024 12:42:46 +0000
Received: by outflank-mailman (input) for mailman id 835554;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBChp-0003m3-1b
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:45 +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 c4d38622-a1bc-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:42:40 +0100 (CET)
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-480-3BCbHDDqMlao8Pn8R6KQhQ-1; Wed, 13 Nov 2024 07:42:38 -0500
Received: by mail-wr1-f72.google.com with SMTP id
 ffacd0b85a97d-37d5016d21eso3774653f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:38 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: c4d38622-a1bc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM0ZDM4NjIyLWExYmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAxNzYxLjA1NzE2NSwic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501759;
	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=SZ3Ct+htOyFcNtVrHcgotVRsHQNuDZcXgRKY/qB2q+Y=;
	b=LLJSW8/TsF59ayCs+4FUovu+q8opXvmmiJymkQ1jvh4kdijeh6+0FQmsk6A46B9gUjrVHx
	bKWD1lwwxf76ieRTR+OathgivVeeXb/wrMv+58kV1GSRwtJv5AGo7BOu0vjSw7GsozCVmy
	XBJAr5hnTV1+VEt41e/zQlH4P6oPIeg=
X-MC-Unique: 3BCbHDDqMlao8Pn8R6KQhQ-1
X-Mimecast-MFC-AGG-ID: 3BCbHDDqMlao8Pn8R6KQhQ
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501757; x=1732106557;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=SZ3Ct+htOyFcNtVrHcgotVRsHQNuDZcXgRKY/qB2q+Y=;
        b=FJV33PFy6idQGEvV+cFxAN/VRr6qtd7MqPToFLqnxM2Rj1fDpv4iXo7wmKMe4CX7cP
         T2lNRcQyZO6vUJKQcU9lL1KTfGR7nccPQpdONB79op8ZEFKnjOP+g+Ts6qcp2Vzm1/El
         hxbEeLHdimD2Q6mIUeSLnLstM9c97l1PwqByvDZ/pjHMydEH/4HjYsS8VbO5uEn/j8ne
         gNaeVeKbu0punyJQ9DTwpjJrdrWgPqzTzil25As5ymiROg3Xe2BHpr0Tm9fXDGun1dTs
         5BOMw8EHoRYRplSuhHzyL5iQPYMR548UawKFmLNjNWnKXqaJH5HCgBcHtHI6cBi7Mbtd
         IRYA==
X-Forwarded-Encrypted: i=1; AJvYcCXXfnrtOE7bKpFb/wRQa8IYX2shpOh2eqjrcbVOPjCET5jhXVrFABrexB7c2xLi5lLwfZyyQZX9Akg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzr7n2wif0GTJTBPhye7/rtEXuibmoT1to3QZwwcnpo1d2VXprJ
	l8vbvHVA7s67pSqyLP5bmn9w+hGkwMXFZl3qCoxSvNz9WPi5KThq/CeHDjJFsSvb0SZgWBucpem
	QIz82Bg3J19VZpmzOE66ly5qIYIJ+5jCYh+AN8Pv0KUY359fGlrBGoyqzxfKSA8Xl
X-Received: by 2002:a5d:64c5:0:b0:37d:52e3:e3f0 with SMTP id ffacd0b85a97d-381f1883da1mr17924873f8f.44.1731501757355;
        Wed, 13 Nov 2024 04:42:37 -0800 (PST)
X-Google-Smtp-Source: AGHT+IHe7Ekl12tv+ThW/wGcJN/HoeLWpkbF0cAp2d3sxxoUKqIzhIJ/U/mQj+3PQSguFn+Xr9yXfw==
X-Received: by 2002:a5d:64c5:0:b0:37d:52e3:e3f0 with SMTP id ffacd0b85a97d-381f1883da1mr17924840f8f.44.1731501756841;
        Wed, 13 Nov 2024 04:42:36 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 03/11] net/ethernet: Use never-managed version of pci_intx()
Date: Wed, 13 Nov 2024 13:41:51 +0100
Message-ID: <20241113124158.22863-5-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: LWvknYj0YjYJnQlVOxigGsYHG8QIwmj2Py_yYlVIvL4_1731501757
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

broadcom/bnx2x and brocade/bna enable their PCI-Device with
pci_enable_device(). Thus, they need the never-managed version.

Replace pci_intx() with pci_intx_unmanaged().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +-
 drivers/net/ethernet/brocade/bna/bnad.c          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 678829646cec..2ae63d6e6792 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -1669,7 +1669,7 @@ static void bnx2x_igu_int_enable(struct bnx2x *bp)
 	REG_WR(bp, IGU_REG_PF_CONFIGURATION, val);
 
 	if (val & IGU_PF_CONF_INT_LINE_EN)
-		pci_intx(bp->pdev, true);
+		pci_intx_unmanaged(bp->pdev, true);
 
 	barrier();
 
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
index ece6f3b48327..2b37462d406e 100644
--- a/drivers/net/ethernet/brocade/bna/bnad.c
+++ b/drivers/net/ethernet/brocade/bna/bnad.c
@@ -2669,7 +2669,7 @@ bnad_enable_msix(struct bnad *bnad)
 		}
 	}
 
-	pci_intx(bnad->pcidev, 0);
+	pci_intx_unmanaged(bnad->pcidev, 0);
 
 	return;
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835559.1251483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChy-0005aA-7Y; Wed, 13 Nov 2024 12:42:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835559.1251483; Wed, 13 Nov 2024 12: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 1tBChy-0005Zv-38; Wed, 13 Nov 2024 12:42:54 +0000
Received: by outflank-mailman (input) for mailman id 835559;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBChv-0003m4-RJ
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:51 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca0d8b05-a1bc-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:42:49 +0100 (CET)
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-510-Znl_OwPCOsGvl-aZhJUwyA-1; Wed, 13 Nov 2024 07:42:47 -0500
Received: by mail-wm1-f72.google.com with SMTP id
 5b1f17b1804b1-4314a22ed8bso48055185e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:47 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: ca0d8b05-a1bc-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNhMGQ4YjA1LWExYmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTAxNzcwLjA1MTM5Mywic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501768;
	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=NsJKOkpA+QoYlzqeYDbY0Dl9xjdlxWNvzFNzd4dMwhk=;
	b=MFK04fSO1v4A8gg0Q4b7u1tPHBYnvQhE36O67GxgPRlhWI/kyTLgxwmsbVYu8YV7XmJv80
	nugar1/I4YYnUgaVRe/7nzUVsWqDl9li8nffyoeBCI/0qN/4cMhtVwnMf1miCpPMWeMr4p
	aUg3NbNnuAJtkB8Y8eHXSLjjVYH6M6g=
X-MC-Unique: Znl_OwPCOsGvl-aZhJUwyA-1
X-Mimecast-MFC-AGG-ID: Znl_OwPCOsGvl-aZhJUwyA
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501766; x=1732106566;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=NsJKOkpA+QoYlzqeYDbY0Dl9xjdlxWNvzFNzd4dMwhk=;
        b=aAbxIYZEr6T4v8WFmToDPtFqT0hSqwKD7GTSp+shpdLMWQ+riJ/VD59T2f3M9r/Laa
         cpuQzVektd2LsMf3fItP97F2uixGJKOZfuRmGIlcdxeqlYLE7fwi9d4NKRkFLrQ+YsQ5
         Xns65Q1uBfoASImLT1wMYOcIajXWy514wJBI85jQYGMUDV4QVdSoRhTr8YsSM2boA6bi
         f2DNZL307YYFO8P9iMfT/uTwweu80L4rWX6XavrZcgwUXxMWEbZ8BwVswecChJLobtEZ
         6ceEZHGiyoZXxhV7GkpwIiJpBFUQuAuprUBFirK2ARBbx5Zs2tDKkhLI7UFPooL6zEdP
         Xzbw==
X-Forwarded-Encrypted: i=1; AJvYcCUHCT63qyIt3bV+h5ltn1wP3fXhoJhm74L/0Te0fNb5WNDMNJnPnIJNYDINluw6/3taUQhIbrKW7R0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgtfNQzWzWf7cqgtcpMPoHLUDAFu5/sOu3bBHgE+R/9IliFG7k
	WOkPA0C9J2h/8eFrtMb2TlV24A+/Oo5AALRteulAkLAz5MaPwZAMOf19mSXmP0RAdIlTRyRNx72
	T3fYTtp1sMFLn2uLfgNyW9cffYN1Bi/5jx5Uq22+1mGiMM6hR+NGY4ef0ACNUzOD/
X-Received: by 2002:a5d:47ac:0:b0:37d:5282:1339 with SMTP id ffacd0b85a97d-3820df6136cmr2369033f8f.22.1731501766128;
        Wed, 13 Nov 2024 04:42:46 -0800 (PST)
X-Google-Smtp-Source: AGHT+IFpjkcG3JEnob3xzqfsNCARyMkng1y9gR5mdhMcNm6Gi1JEJjom42U2s4Q7CInAPcp8pAzepA==
X-Received: by 2002:a5d:47ac:0:b0:37d:5282:1339 with SMTP id ffacd0b85a97d-3820df6136cmr2368992f8f.22.1731501765706;
        Wed, 13 Nov 2024 04:42:45 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 07/11] PCI: MSI: Use never-managed version of pci_intx()
Date: Wed, 13 Nov 2024 13:41:55 +0100
Message-ID: <20241113124158.22863-9-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: ONzCFdd622infrRSa4EIP7GLsp2bCmZ2icVg8xy3jQI_1731501766
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

MSI sets up its own separate devres callback implicitly in
pcim_setup_msi_release(). This callback ultimately uses pci_intx(),
which is problematic since the callback of course runs on driver-detach.

That problem has last been described here:
https://lore.kernel.org/all/ee44ea7ac760e73edad3f20b30b4d2fff66c1a85.camel@redhat.com/

Replace the call to pci_intx() with one to the never-managed version
pci_intx_unmanaged().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
---
 drivers/pci/msi/api.c | 2 +-
 drivers/pci/msi/msi.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/msi/api.c b/drivers/pci/msi/api.c
index b956ce591f96..c95e2e7dc9ab 100644
--- a/drivers/pci/msi/api.c
+++ b/drivers/pci/msi/api.c
@@ -289,7 +289,7 @@ int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
 			 */
 			if (affd)
 				irq_create_affinity_masks(1, affd);
-			pci_intx(dev, 1);
+			pci_intx_unmanaged(dev, 1);
 			return 1;
 		}
 	}
diff --git a/drivers/pci/msi/msi.c b/drivers/pci/msi/msi.c
index 3a45879d85db..53f13b09db50 100644
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -268,7 +268,7 @@ EXPORT_SYMBOL_GPL(pci_write_msi_msg);
 static void pci_intx_for_msi(struct pci_dev *dev, int enable)
 {
 	if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
-		pci_intx(dev, enable);
+		pci_intx_unmanaged(dev, enable);
 }
 
 static void pci_msi_set_enable(struct pci_dev *dev, int enable)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835555.1251453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChs-0004i9-F7; Wed, 13 Nov 2024 12:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835555.1251453; Wed, 13 Nov 2024 12: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 1tBChs-0004hy-Bx; Wed, 13 Nov 2024 12:42:48 +0000
Received: by outflank-mailman (input) for mailman id 835555;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBChr-0003m4-A2
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:47 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c766b23a-a1bc-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:42:45 +0100 (CET)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-389-LLXNvxtiPoymLi2ZbYooGQ-1; Wed, 13 Nov 2024 07:42:40 -0500
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-381d07c377cso5245809f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:40 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04: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: c766b23a-a1bc-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM3NjZiMjNhLWExYmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTAxNzY1LjQ5MDE5Mywic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501764;
	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=gh5xBESPiuO8YtWqrs+YzUNc8fkB81YlCR9KwN+kONI=;
	b=b4On77mXEGVG+7RQHGY1GwvLAdLGNeCi69RzXatZk/gvFL1r6VqSOMw2pmjqINIgyBxKLW
	JbHJXa/JA17bPgXwXjhrG+KpMmPdBq24eCDA3/OmJxehIxxFS/IRRaVz9mgN9Evel8av+Q
	yLO/whn2uRGXVve+NHf9Lzpd/6sSnYg=
X-MC-Unique: LLXNvxtiPoymLi2ZbYooGQ-1
X-Mimecast-MFC-AGG-ID: LLXNvxtiPoymLi2ZbYooGQ
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501759; x=1732106559;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gh5xBESPiuO8YtWqrs+YzUNc8fkB81YlCR9KwN+kONI=;
        b=Obqxg8/g/vYDxlO8SMId3I3dOW5ROYiXxkzlYvw++2WV6jmffgBunuVElvZmUju0dU
         /+ivNY195hE7qf+gUGGgpNNCWtRaQN5CxJdMIrbouMEVbI4JSPT/aznPftt3OoTT6LcH
         jU1IwFNLFqOf5U3UtnCWHCAb20z3Xt3yNb8XJiTyhx5ENftJjGZ0iyQuy7db8BJvP1l8
         wCO/d3/cxa87PZ9aGY3j3J4TYAWkrjxRFjZ3MiZHAMgPQAtg43NBhn5HaY4HgS892z26
         4v5druY6cPW/9d5vvcId0FFB5DguEki1mtkwSFgOg5M6tzhOWDaiD+JfvtM+l+uk5NNO
         B5dg==
X-Forwarded-Encrypted: i=1; AJvYcCWjrklDnqPwznyN5TPlsGSmACFq5yQckZtyWy9XpWZsxVFRC4nLSBWHWXy3cleOWxvXOGel5bGegMM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygH1KvKPgrguBl29Jmut+F9NV2KC9Azj8BxxXKoZCN7lZ6ZrUd
	NfKoPs20ns114VyqGdyGkSezXgQoGYvY++Mdvt20WGkp7dDk5GIpidWTAioTy//7qBjuM0mAtBM
	9v/qjvEbwiE2e/N6guJUh6TuNMya0xWNBdkyIdW8fxxYiZv7N5NpTV0Eq3FK9Xx37
X-Received: by 2002:a05:6000:1868:b0:37c:d1ea:f1ce with SMTP id ffacd0b85a97d-381f1871ae1mr21127488f8f.25.1731501759568;
        Wed, 13 Nov 2024 04:42:39 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGjSkicOa2vHaglKeMl2d4NOiMMxDq6ITRAVtvhVhWcLJvAFiM/FAEZ/6qNVryGFEz3sYUTmQ==
X-Received: by 2002:a05:6000:1868:b0:37c:d1ea:f1ce with SMTP id ffacd0b85a97d-381f1871ae1mr21127442f8f.25.1731501759149;
        Wed, 13 Nov 2024 04:42:39 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 04/11] net/ntb: Use never-managed version of pci_intx()
Date: Wed, 13 Nov 2024 13:41:52 +0100
Message-ID: <20241113124158.22863-6-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: Q0LDnnmtXghAbUhAyw0mptgXnpWnLxST-BlJeS-COp0_1731501760
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

hw/amd and how/intel enable their PCI-Device with pci_enable_device().
Thus, they need the never-managed version.

Replace pci_intx() with pci_intx_unmanaged().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> #for ntb_hw_amd.c
---
 drivers/ntb/hw/amd/ntb_hw_amd.c    | 4 ++--
 drivers/ntb/hw/intel/ntb_hw_gen1.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c
index d687e8c2cc78..b146f170e839 100644
--- a/drivers/ntb/hw/amd/ntb_hw_amd.c
+++ b/drivers/ntb/hw/amd/ntb_hw_amd.c
@@ -791,7 +791,7 @@ static int ndev_init_isr(struct amd_ntb_dev *ndev,
 err_msi_enable:
 
 	/* Try to set up intx irq */
-	pci_intx(pdev, 1);
+	pci_intx_unmanaged(pdev, 1);
 
 	rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED,
 			 "ndev_irq_isr", ndev);
@@ -831,7 +831,7 @@ static void ndev_deinit_isr(struct amd_ntb_dev *ndev)
 		if (pci_dev_msi_enabled(pdev))
 			pci_disable_msi(pdev);
 		else
-			pci_intx(pdev, 0);
+			pci_intx_unmanaged(pdev, 0);
 	}
 }
 
diff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.c b/drivers/ntb/hw/intel/ntb_hw_gen1.c
index 079b8cd79785..9ad9d7fe227e 100644
--- a/drivers/ntb/hw/intel/ntb_hw_gen1.c
+++ b/drivers/ntb/hw/intel/ntb_hw_gen1.c
@@ -445,7 +445,7 @@ int ndev_init_isr(struct intel_ntb_dev *ndev,
 
 	/* Try to set up intx irq */
 
-	pci_intx(pdev, 1);
+	pci_intx_unmanaged(pdev, 1);
 
 	rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED,
 			 "ndev_irq_isr", ndev);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835560.1251492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBChz-0005tb-N0; Wed, 13 Nov 2024 12:42:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835560.1251492; Wed, 13 Nov 2024 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 1tBChz-0005tA-J5; Wed, 13 Nov 2024 12:42:55 +0000
Received: by outflank-mailman (input) for mailman id 835560;
 Wed, 13 Nov 2024 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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBChy-0003m4-6A
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:54 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb89cb70-a1bc-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:42:52 +0100 (CET)
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
 [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-673-_9DR3NmbNaaPO_lSaKszdA-1; Wed, 13 Nov 2024 07:42:49 -0500
Received: by mail-wr1-f70.google.com with SMTP id
 ffacd0b85a97d-37d4af408dcso3517868f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:49 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: cb89cb70-a1bc-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNiODljYjcwLWExYmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTAxNzcyLjMxNjA3Niwic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501771;
	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=b5TnIcD2VuI/o8JjOCySaF7mhNl7bXEt7dRvprez4ds=;
	b=IxThrRBEMefeWLVRZYIPEW9VqeNgXxlFlf6xB+uWoWB647soLStZNks+4G9icwITpvLiHz
	XrIJjibz1Kwi8KPcWjHip3R+qXI6/fZun6J2udlZf5strAXojJ/M8hX18B7NTvayjE9Yem
	FO/CPIHYUrTyUUPGOhJyMe4oS9zDi8s=
X-MC-Unique: _9DR3NmbNaaPO_lSaKszdA-1
X-Mimecast-MFC-AGG-ID: _9DR3NmbNaaPO_lSaKszdA
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501768; x=1732106568;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=b5TnIcD2VuI/o8JjOCySaF7mhNl7bXEt7dRvprez4ds=;
        b=sxk+j4wAt6igQpE2DCwperQl3xiDhH1Q/jWSb+XNFCgYlXdKDBTxaRskB+JDzmPEuk
         C8LxMxZq7sfJuP3yo103TW3MNAGq6+Gru9OIjnz9X0oNVbaiEe4BqcIJpel/PKVLM4b9
         kXdEPrLOcTeEvdX51MW6ZPZr1hYDateOGcLXBNI7E1pBIcy3vk210a94j62n+QQqCjZ6
         0RGfUetj1ezu2YKZRIlGjg2s3dLAPoZeqCERU1jb3aXlJTWdmknH9OHck41rtubkgE8+
         Y00jg+xQ7LylAIkT1BSFGu9sxCxyKga3F+ZOeFjiu8+aufLTBcE+5SX7s7CfxByD2HEQ
         DJog==
X-Forwarded-Encrypted: i=1; AJvYcCXB6YLVUye2TCqDzQhlYTPoOfm92hVJhLVeTCb6+Xr2SWUND25BMT34XVqLJScv9yj7s7DicAo1Kjw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1c0c5LS8aKua+ODFYJqc/C5Rk0SjGB42mAFyETUQax/rtz+Qw
	65d1ap8OJPhGKYLXnsRlGwbp9Cm0e7rANns+hmokebAz52vGwbhgLyiF+3bwkqYyp92Pao+m/rx
	ceGfUsI+IrNP1iq4S45RuxYaKxbpcrFYozXOWqbamAFnPddRe8kWsBlOxpBBSUiac
X-Received: by 2002:a05:6000:1849:b0:37d:4fab:c198 with SMTP id ffacd0b85a97d-381f1872412mr16049025f8f.26.1731501768605;
        Wed, 13 Nov 2024 04:42:48 -0800 (PST)
X-Google-Smtp-Source: AGHT+IENWR7lbl0r7wQqB6gDJ8hrTMl+DYmwC3EqYiDIUkKDx+oOeWHz/jLeLc4U+c0kMvjHX7biQA==
X-Received: by 2002:a05:6000:1849:b0:37d:4fab:c198 with SMTP id ffacd0b85a97d-381f1872412mr16048957f8f.26.1731501768174;
        Wed, 13 Nov 2024 04:42:48 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Sergey Shtylyov <s.shtylyov@omp.ru>
Subject: [PATCH v2 08/11] ata: Use always-managed version of pci_intx()
Date: Wed, 13 Nov 2024 13:41:56 +0100
Message-ID: <20241113124158.22863-10-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: QCpu1Pq8RXh9A7YgYQr4igbVyWSWsLsKQ4CgH2Al0gg_1731501769
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

All users in ata enable their PCI-Device with pcim_enable_device(). Thus,
they need the always-managed version.

Replace pci_intx() with pcim_intx().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Acked-by: Niklas Cassel <cassel@kernel.org>
---
 drivers/ata/ahci.c       | 2 +-
 drivers/ata/ata_piix.c   | 2 +-
 drivers/ata/pata_rdc.c   | 2 +-
 drivers/ata/sata_sil24.c | 2 +-
 drivers/ata/sata_sis.c   | 2 +-
 drivers/ata/sata_uli.c   | 2 +-
 drivers/ata/sata_vsc.c   | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 45f63b09828a..9273ff3d4732 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1985,7 +1985,7 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 	if (ahci_init_msi(pdev, n_ports, hpriv) < 0) {
 		/* legacy intx interrupts */
-		pci_intx(pdev, 1);
+		pcim_intx(pdev, 1);
 	}
 	hpriv->irq = pci_irq_vector(pdev, 0);
 
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 093b940bc953..d441246fa357 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1725,7 +1725,7 @@ static int piix_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	 * message-signalled interrupts currently).
 	 */
 	if (port_flags & PIIX_FLAG_CHECKINTR)
-		pci_intx(pdev, 1);
+		pcim_intx(pdev, 1);
 
 	if (piix_check_450nx_errata(pdev)) {
 		/* This writes into the master table but it does not
diff --git a/drivers/ata/pata_rdc.c b/drivers/ata/pata_rdc.c
index 0a9689862f71..09792aac7f9d 100644
--- a/drivers/ata/pata_rdc.c
+++ b/drivers/ata/pata_rdc.c
@@ -340,7 +340,7 @@ static int rdc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 		return rc;
 	host->private_data = hpriv;
 
-	pci_intx(pdev, 1);
+	pcim_intx(pdev, 1);
 
 	host->flags |= ATA_HOST_PARALLEL_SCAN;
 
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index 72c03cbdaff4..b771ebd41252 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -1317,7 +1317,7 @@ static int sil24_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 	if (sata_sil24_msi && !pci_enable_msi(pdev)) {
 		dev_info(&pdev->dev, "Using MSI\n");
-		pci_intx(pdev, 0);
+		pcim_intx(pdev, 0);
 	}
 
 	pci_set_master(pdev);
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c
index ef8724986de3..b8b6d9eff3b8 100644
--- a/drivers/ata/sata_sis.c
+++ b/drivers/ata/sata_sis.c
@@ -290,7 +290,7 @@ static int sis_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	pci_set_master(pdev);
-	pci_intx(pdev, 1);
+	pcim_intx(pdev, 1);
 	return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt,
 				 IRQF_SHARED, &sis_sht);
 }
diff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c
index 60ea45926cd1..52894ff49dcb 100644
--- a/drivers/ata/sata_uli.c
+++ b/drivers/ata/sata_uli.c
@@ -221,7 +221,7 @@ static int uli_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	pci_set_master(pdev);
-	pci_intx(pdev, 1);
+	pcim_intx(pdev, 1);
 	return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt,
 				 IRQF_SHARED, &uli_sht);
 }
diff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c
index d39b87537168..a53a2dfc1e17 100644
--- a/drivers/ata/sata_vsc.c
+++ b/drivers/ata/sata_vsc.c
@@ -384,7 +384,7 @@ static int vsc_sata_init_one(struct pci_dev *pdev,
 		pci_write_config_byte(pdev, PCI_CACHE_LINE_SIZE, 0x80);
 
 	if (pci_enable_msi(pdev) == 0)
-		pci_intx(pdev, 0);
+		pcim_intx(pdev, 0);
 
 	/*
 	 * Config offset 0x98 is "Extended Control and Status Register 0"
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:42:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:42:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835562.1251503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBCi2-0006F7-19; Wed, 13 Nov 2024 12:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835562.1251503; Wed, 13 Nov 2024 12:42: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 1tBCi1-0006El-T9; Wed, 13 Nov 2024 12:42:57 +0000
Received: by outflank-mailman (input) for mailman id 835562;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBCi0-0003m4-DB
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:56 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd02e11e-a1bc-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 13:42:54 +0100 (CET)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-347-KbC74Q0JMf2uSR2TDDuicg-1; Wed, 13 Nov 2024 07:42:52 -0500
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-37d5116f0a6so3762440f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:51 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: cd02e11e-a1bc-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNkMDJlMTFlLWExYmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTAxNzc0LjY5ODI2Nywic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501773;
	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=OYummHyMeO18Vto9q2ZMMfeLT6TZU1cjZPgJKtQfrDY=;
	b=fpeeRsbyV1zIGiRmNTfvJnrpSGDsCWjgvz1vve+mZefikvHDbCA1GUhnRW5NkGunl2gtA6
	kfPj3frfrluokIHNuj4udIZyknt6dJVGDIq1XtMZo6JNcJiyvgiU4lNMBTmiYBLL6FbzqS
	XlL8u2kWDQIuYcBt2beHPT7vvlqBZD0=
X-MC-Unique: KbC74Q0JMf2uSR2TDDuicg-1
X-Mimecast-MFC-AGG-ID: KbC74Q0JMf2uSR2TDDuicg
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501771; x=1732106571;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OYummHyMeO18Vto9q2ZMMfeLT6TZU1cjZPgJKtQfrDY=;
        b=M4Mva4/vhbNcOf3JegR2m9N3t4bAz62HfM1QJb352vC7DTgySe39uR4WMeO0lxdwHL
         tK/U9Nle/Z0MAVYmSzkH77hLWr3NisR366C4gjCisZl1jMS8h46CIAikm31hWVNEnhV+
         JVlvz7psd6aUELtHykNJceNugwNKF7Oelmue/yjXAkQbDXlnFffv1gLLMCKr58pRxvzE
         jGMt2Rha1HeyZQMGwcBMMeFNeOEqXQzS9yM/OsjyV0H656JU353YpAQLtDiIfN60opMj
         95vvjoO/KMXe8dZzxIO+yZmRjb64ChXhumQeqfdy7nZ/JCbHNn48BnWZAqbn+zuUp5C2
         hm4Q==
X-Forwarded-Encrypted: i=1; AJvYcCWJxczL6QqEq6lq4vawNTwoPggODbpGcf/fvmiukXLzVTd22DpR88U8JjDktHOhrwjY9nZTCoKVvLQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDKukSyRJBT6mOiLBk1G8rVF0Go5R1N7QcsPddhTPNdht60IP7
	+MfVDF2Ci+oa44UA3m9z0NLqiqpV467GYCrV+WDtuswMyv43mTO3SDHmB9oQCmGEU1omqNfAkPO
	Ex4HqXYTeONs/7QXdV4yBEkZT0QVTRSQznlMYn3J5YqOOEjkTNjNJgaWr3TjOr4Jg
X-Received: by 2002:a05:6000:18af:b0:36c:ff0c:36d7 with SMTP id ffacd0b85a97d-381f1863104mr17590044f8f.2.1731501770837;
        Wed, 13 Nov 2024 04:42:50 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGaBVI43qrL6OFk13wQNBZS22ld2QbZy7MjquOncWveKQvBM2tKSYuVKq3Lye0eFRQdag4y9Q==
X-Received: by 2002:a05:6000:18af:b0:36c:ff0c:36d7 with SMTP id ffacd0b85a97d-381f1863104mr17589974f8f.2.1731501770406;
        Wed, 13 Nov 2024 04:42:50 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 09/11] wifi: qtnfmac: use always-managed version of pcim_intx()
Date: Wed, 13 Nov 2024 13:41:57 +0100
Message-ID: <20241113124158.22863-11-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: Mls-cUVR_X-Y_-Wqzqum2EXtcNgO8eEsXqC9RBJMVio_1731501771
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

qtnfmac enables its PCI-Device with pcim_enable_device(). Thus, it needs
the always-managed version.

Replace pci_intx() with pcim_intx().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Acked-by: Kalle Valo <kvalo@kernel.org>
---
 drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c
index f66eb43094d4..3adcfac2886f 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c
@@ -204,7 +204,7 @@ static void qtnf_pcie_init_irq(struct qtnf_pcie_bus_priv *priv, bool use_msi)
 
 	if (!priv->msi_enabled) {
 		pr_warn("legacy PCIE interrupts enabled\n");
-		pci_intx(pdev, 1);
+		pcim_intx(pdev, 1);
 	}
 }
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:43:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835564.1251513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBCi5-0006iK-9U; Wed, 13 Nov 2024 12:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835564.1251513; Wed, 13 Nov 2024 12: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 1tBCi5-0006hz-5Y; Wed, 13 Nov 2024 12:43:01 +0000
Received: by outflank-mailman (input) for mailman id 835564;
 Wed, 13 Nov 2024 12:42: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBCi3-0003m3-N0
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:42:59 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce11afda-a1bc-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:42:56 +0100 (CET)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-199-Nxp8-2wxPyW2cGqJLFsy2Q-1; Wed, 13 Nov 2024 07:42:54 -0500
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-432d8843783so999535e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:54 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 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: ce11afda-a1bc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNlMTFhZmRhLWExYmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAxNzc2LjUzMzIxLCJzZW5kZXIiOiJwc3Rhbm5lckByZWRoYXQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501775;
	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=nkAJx4kdHqc1uo2Ugvp3a9JlaC6teLxc6IU39omygl8=;
	b=e4Hvp2NEdNb2hpVr7xapE1wumKdjI2DK7VfUxgtHRCrQCNun8eo0enjap2Q9qjT/jj8Qk+
	bhtkPgmqrDEllv9eCzA/jgeluU5xQ7lKns4mYZjtoB/C/D6q01dAGYb0mgsgf7/hIzyBOI
	sdOe9z7uxKu2utzPtoxOf8Zd8oqJGkE=
X-MC-Unique: Nxp8-2wxPyW2cGqJLFsy2Q-1
X-Mimecast-MFC-AGG-ID: Nxp8-2wxPyW2cGqJLFsy2Q
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501773; x=1732106573;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nkAJx4kdHqc1uo2Ugvp3a9JlaC6teLxc6IU39omygl8=;
        b=qUXPcehiNGoSUmsI70bEVKdHHD4Osqg9N6T7njBrstxSVrsndaObuOS5JFlsgs61ss
         lF1pUraJL9sHUWCURGoWMiavANqEh5rPds9dio+fGbgVhWHdgZUFHJVdnPqyu1/E95DA
         XEWyT62aqFOeS/NilpcM0CIYXRUGRBLIQOkTjgBN5gWRsR5Z5TFkWkeF05P4y8bvIBr8
         DchUzWoY0k2y8PS4LFXAEFp6bxUM9P6EOg43DIuouZofkX3F53LKhbvIcQGdGW1HFTAf
         DS3hhsbRMw0mARKRnm0XHVHrKKTx7xmaBMqvInOP5Dwe1KVnn1X31qo4QZcsBorRhHmn
         +P7A==
X-Forwarded-Encrypted: i=1; AJvYcCWxzdTOmklzLhMMxvdujvWssWh0fOKb4jdvH77S0P7chr/hHbnriCaqOw9dBlXqPI7p5vgRx364blQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxiZDOQon519PP/9T5ak9YHrTeq8gUs8Dcxm86h8dqOs3iJ0r1P
	CP+2rcfhOs+7UYB+QFynDf4egybgzf+FuMGCRH/srFx8OXP47wuyyUBiU3IMxGyBcNPqmgR+5ZL
	mmcbC6R6fbD6wErz0krFT8nEKKs4bKeMU/zvcTLIFIS5xF3/Ar5dOtccvcIXaz44T
X-Received: by 2002:a05:6000:154d:b0:37d:45f0:dd0a with SMTP id ffacd0b85a97d-381f18672b7mr16331827f8f.1.1731501773095;
        Wed, 13 Nov 2024 04:42:53 -0800 (PST)
X-Google-Smtp-Source: AGHT+IEPqy3tZYPqlqBkgyQss8AcuM2Gl+gY1MhPytnhmt1YoQ9bjJfa0GqSVyef5YXet7H2WA4PfQ==
X-Received: by 2002:a05:6000:154d:b0:37d:45f0:dd0a with SMTP id ffacd0b85a97d-381f18672b7mr16331752f8f.1.1731501772675;
        Wed, 13 Nov 2024 04:42:52 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Subject: [PATCH v2 10/11] HID: amd_sfh: Use always-managed version of pcim_intx()
Date: Wed, 13 Nov 2024 13:41:58 +0100
Message-ID: <20241113124158.22863-12-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: yJilbqdeUt5ZRqzJXzJCAGxYtbg7o2-03GJkvmG6zIs_1731501773
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. To remove this hybrid nature from pci_intx(), it is necessary to
port users to either an always-managed or a never-managed version.

All users of amd_mp2_pci_remove(), where pci_intx() is used, call
pcim_enable_device(), which is why the driver needs the always-managed
version.

Replace pci_intx() with pcim_intx().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
---
 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c        | 4 ++--
 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
index 0c28ca349bcd..48cfd0c58241 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
@@ -122,7 +122,7 @@ int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata)
 {
 	int rc;
 
-	pci_intx(privdata->pdev, true);
+	pcim_intx(privdata->pdev, true);
 
 	rc = devm_request_irq(&privdata->pdev->dev, privdata->pdev->irq,
 			      amd_sfh_irq_handler, 0, DRIVER_NAME, privdata);
@@ -248,7 +248,7 @@ static void amd_mp2_pci_remove(void *privdata)
 	struct amd_mp2_dev *mp2 = privdata;
 	amd_sfh_hid_client_deinit(privdata);
 	mp2->mp2_ops->stop_all(mp2);
-	pci_intx(mp2->pdev, false);
+	pcim_intx(mp2->pdev, false);
 	amd_sfh_clear_intr(mp2);
 }
 
diff --git a/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c b/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
index db36d87d5634..ec9feb8e023b 100644
--- a/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
+++ b/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
@@ -289,7 +289,7 @@ static void amd_mp2_pci_remove(void *privdata)
 	sfh_deinit_emp2();
 	amd_sfh_hid_client_deinit(privdata);
 	mp2->mp2_ops->stop_all(mp2);
-	pci_intx(mp2->pdev, false);
+	pcim_intx(mp2->pdev, false);
 	amd_sfh_clear_intr(mp2);
 }
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 12:43:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 12:43:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835577.1251522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBCiA-0007dT-JI; Wed, 13 Nov 2024 12:43:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835577.1251522; Wed, 13 Nov 2024 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 1tBCiA-0007dD-DB; Wed, 13 Nov 2024 12:43:06 +0000
Received: by outflank-mailman (input) for mailman id 835577;
 Wed, 13 Nov 2024 12:43: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBCi9-0003m3-BX
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 12:43:05 +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 d0e98c0b-a1bc-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 13:43:01 +0100 (CET)
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
 [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-670-W7S-9fT1P8C_hQvNTEoPRg-1; Wed, 13 Nov 2024 07:42:57 -0500
Received: by mail-wr1-f70.google.com with SMTP id
 ffacd0b85a97d-37d458087c0so439282f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 04:42:56 -0800 (PST)
Received: from eisenberg.redhat.com (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed99aa18sm18023528f8f.61.2024.11.13.04.42.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 04:42: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: d0e98c0b-a1bc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQwZTk4YzBiLWExYmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAxNzgxLjYxNzk3Miwic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731501780;
	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=Vd9hh7PH7g9r1RCJwCwuck8xpSTmXt7A/cY6nKWhVMY=;
	b=EJxpeATm08d2G3bcByiollLZFRNmMBVlRHSA3tkni5cTFXnrdeNAyp7I1AMZF8sWK8e6LT
	cbvMmLCjJWXDTqqfMNKOwN8OOIpODi/gFWUGKKmJl2EuS351O5LGlzI8jFkm9f5YN7SN5m
	/gayFFFQEJKtCGed3O622Tz+7TkiA4Y=
X-MC-Unique: W7S-9fT1P8C_hQvNTEoPRg-1
X-Mimecast-MFC-AGG-ID: W7S-9fT1P8C_hQvNTEoPRg
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731501776; x=1732106576;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Vd9hh7PH7g9r1RCJwCwuck8xpSTmXt7A/cY6nKWhVMY=;
        b=iidSyjCs7qML8pzwy9169MTGTz+OvAfFt9JENuaD4X2lPRO7iF0g1EK2ixo820vd9I
         uKMxu4F9HvMQa5cFbZLUeIawVxl03ld/fjnOgy7scpAG7bydB+WgHgU3lTRfHhy/+8Ne
         6EokSwEaQLtTU4l4+aqv3nDsL/RIqH1Ji2/BPjM5TnKGqGJuGUvMJf7MNonhvbE5OrsW
         0LXgGL5/SL6dEnY+/E1kW1+d/0XIft5NFmtrVH2IxHaPZOaejxNDlmr+P57r9Hvoq66g
         JwOe/f1iAsobXHgA9FK7vSfFVFXAYWM+te96VeXWOXi/gkikHoimAYz0vfTT7gMZpqbS
         gkYQ==
X-Forwarded-Encrypted: i=1; AJvYcCWNekWxUh5qcVmqDx4J5G2T/gRbPXLMotQoMhyZ5pV7BccalXifoQ/8CiSl2Q5Rbxsqstack+IVuak=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSIbeVBp7+W2+VHisUGNV3ziZ6O0H2AFp3Ns8egiNO/DU4v0CL
	Fk7AODSzjmZK57zveJYJkMD1GcLbaQQRDOxdbyjbFrNOSiB3fMeUjXyAYtyqgPd1cGz5J8w/Ysy
	nRIydAtm8sCK8wSg9egePJmeY0R0IGoJxe5lX0QxfA7eoDeHndKfRpsE4n33DxUiV
X-Received: by 2002:a5d:59a9:0:b0:37d:3780:31d2 with SMTP id ffacd0b85a97d-381f0f5e2c0mr15195896f8f.15.1731501775529;
        Wed, 13 Nov 2024 04:42:55 -0800 (PST)
X-Google-Smtp-Source: AGHT+IH7pOukOPMDH1wuk1i6Jiz8xlWOF0F0DNhl9nXwctJdSW8HPrAiyNLBY18f7vZ+XBFDhbQ0GA==
X-Received: by 2002:a5d:59a9:0:b0:37d:3780:31d2 with SMTP id ffacd0b85a97d-381f0f5e2c0mr15195814f8f.15.1731501774995;
        Wed, 13 Nov 2024 04:42:54 -0800 (PST)
From: Philipp Stanner <pstanner@redhat.com>
To: Damien Le Moal <dlemoal@kernel.org>,
	Niklas Cassel <cassel@kernel.org>,
	Basavaraj Natikar <basavaraj.natikar@amd.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <bentiss@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alex Dubov <oakad@yahoo.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	Manish Chopra <manishc@marvell.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Rasesh Mody <rmody@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	Igor Mitsyanko <imitsyanko@quantenna.com>,
	Sergey Matyukevich <geomatsi@gmail.com>,
	Kalle Valo <kvalo@kernel.org>,
	Sanjay R Mehta <sanju.mehta@amd.com>,
	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>,
	Jon Mason <jdmason@kudzu.us>,
	Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Philipp Stanner <pstanner@redhat.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Chen Ni <nichen@iscas.ac.cn>,
	Ricky Wu <ricky_wu@realtek.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Breno Leitao <leitao@debian.org>,
	Kevin Tian <kevin.tian@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mostafa Saleh <smostafa@google.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Yi Liu <yi.l.liu@intel.com>,
	Kunwu Chan <chentao@kylinos.cn>,
	Ankit Agrawal <ankita@nvidia.com>,
	Christian Brauner <brauner@kernel.org>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Eric Auger <eric.auger@redhat.com>,
	Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org,
	ntb@lists.linux.dev,
	linux-pci@vger.kernel.org,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 11/11] Remove devres from pci_intx()
Date: Wed, 13 Nov 2024 13:41:59 +0100
Message-ID: <20241113124158.22863-13-pstanner@redhat.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241113124158.22863-2-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: jfHtcp3omqJ1YNMo-0gzlri9KKqohgU0BCEYt_0hjKA_1731501776
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="US-ASCII"; x-default=true

pci_intx() is a hybrid function which can sometimes be managed through
devres. This hybrid nature is undesirable.

Since all users of pci_intx() have by now been ported either to
always-managed pcim_intx() or never-managed pci_intx_unmanaged(), the
devres functionality can be removed from pci_intx().

Consequently, pci_intx_unmanaged() is now redundant, because pci_intx()
itself is now unmanaged.

Remove the devres functionality from pci_intx(). Have all users of
pci_intx_unmanaged() call pci_intx(). Remove pci_intx_unmanaged().

Signed-off-by: Philipp Stanner <pstanner@redhat.com>
---
 drivers/misc/cardreader/rtsx_pcr.c            |  2 +-
 drivers/misc/tifm_7xx1.c                      |  6 +--
 .../net/ethernet/broadcom/bnx2x/bnx2x_main.c  |  2 +-
 drivers/net/ethernet/brocade/bna/bnad.c       |  2 +-
 drivers/ntb/hw/amd/ntb_hw_amd.c               |  4 +-
 drivers/ntb/hw/intel/ntb_hw_gen1.c            |  2 +-
 drivers/pci/devres.c                          |  4 +-
 drivers/pci/msi/api.c                         |  2 +-
 drivers/pci/msi/msi.c                         |  2 +-
 drivers/pci/pci.c                             | 43 +------------------
 drivers/vfio/pci/vfio_pci_core.c              |  2 +-
 drivers/vfio/pci/vfio_pci_intrs.c             | 10 ++---
 drivers/xen/xen-pciback/conf_space_header.c   |  2 +-
 include/linux/pci.h                           |  1 -
 14 files changed, 22 insertions(+), 62 deletions(-)

diff --git a/drivers/misc/cardreader/rtsx_pcr.c b/drivers/misc/cardreader/rtsx_pcr.c
index e25e6d560dd7..be3d4e0e50cc 100644
--- a/drivers/misc/cardreader/rtsx_pcr.c
+++ b/drivers/misc/cardreader/rtsx_pcr.c
@@ -1057,7 +1057,7 @@ static int rtsx_pci_acquire_irq(struct rtsx_pcr *pcr)
 	}
 
 	pcr->irq = pcr->pci->irq;
-	pci_intx_unmanaged(pcr->pci, !pcr->msi_en);
+	pci_intx(pcr->pci, !pcr->msi_en);
 
 	return 0;
 }
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c
index 5f9c7ccae8d2..1d54680d6ed2 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -327,7 +327,7 @@ static int tifm_7xx1_probe(struct pci_dev *dev,
 		goto err_out;
 	}
 
-	pci_intx_unmanaged(dev, 1);
+	pci_intx(dev, 1);
 
 	fm = tifm_alloc_adapter(dev->device == PCI_DEVICE_ID_TI_XX21_XX11_FM
 				? 4 : 2, &dev->dev);
@@ -368,7 +368,7 @@ static int tifm_7xx1_probe(struct pci_dev *dev,
 err_out_free:
 	tifm_free_adapter(fm);
 err_out_int:
-	pci_intx_unmanaged(dev, 0);
+	pci_intx(dev, 0);
 	pci_release_regions(dev);
 err_out:
 	if (!pci_dev_busy)
@@ -392,7 +392,7 @@ static void tifm_7xx1_remove(struct pci_dev *dev)
 		tifm_7xx1_sock_power_off(tifm_7xx1_sock_addr(fm->addr, cnt));
 
 	iounmap(fm->addr);
-	pci_intx_unmanaged(dev, 0);
+	pci_intx(dev, 0);
 	pci_release_regions(dev);
 
 	pci_disable_device(dev);
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 2ae63d6e6792..678829646cec 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -1669,7 +1669,7 @@ static void bnx2x_igu_int_enable(struct bnx2x *bp)
 	REG_WR(bp, IGU_REG_PF_CONFIGURATION, val);
 
 	if (val & IGU_PF_CONF_INT_LINE_EN)
-		pci_intx_unmanaged(bp->pdev, true);
+		pci_intx(bp->pdev, true);
 
 	barrier();
 
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
index 2b37462d406e..ece6f3b48327 100644
--- a/drivers/net/ethernet/brocade/bna/bnad.c
+++ b/drivers/net/ethernet/brocade/bna/bnad.c
@@ -2669,7 +2669,7 @@ bnad_enable_msix(struct bnad *bnad)
 		}
 	}
 
-	pci_intx_unmanaged(bnad->pcidev, 0);
+	pci_intx(bnad->pcidev, 0);
 
 	return;
 
diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c
index b146f170e839..d687e8c2cc78 100644
--- a/drivers/ntb/hw/amd/ntb_hw_amd.c
+++ b/drivers/ntb/hw/amd/ntb_hw_amd.c
@@ -791,7 +791,7 @@ static int ndev_init_isr(struct amd_ntb_dev *ndev,
 err_msi_enable:
 
 	/* Try to set up intx irq */
-	pci_intx_unmanaged(pdev, 1);
+	pci_intx(pdev, 1);
 
 	rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED,
 			 "ndev_irq_isr", ndev);
@@ -831,7 +831,7 @@ static void ndev_deinit_isr(struct amd_ntb_dev *ndev)
 		if (pci_dev_msi_enabled(pdev))
 			pci_disable_msi(pdev);
 		else
-			pci_intx_unmanaged(pdev, 0);
+			pci_intx(pdev, 0);
 	}
 }
 
diff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.c b/drivers/ntb/hw/intel/ntb_hw_gen1.c
index 9ad9d7fe227e..079b8cd79785 100644
--- a/drivers/ntb/hw/intel/ntb_hw_gen1.c
+++ b/drivers/ntb/hw/intel/ntb_hw_gen1.c
@@ -445,7 +445,7 @@ int ndev_init_isr(struct intel_ntb_dev *ndev,
 
 	/* Try to set up intx irq */
 
-	pci_intx_unmanaged(pdev, 1);
+	pci_intx(pdev, 1);
 
 	rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED,
 			 "ndev_irq_isr", ndev);
diff --git a/drivers/pci/devres.c b/drivers/pci/devres.c
index d32827a1f2f4..6f8f712fe34e 100644
--- a/drivers/pci/devres.c
+++ b/drivers/pci/devres.c
@@ -416,7 +416,7 @@ static void pcim_intx_restore(struct device *dev, void *data)
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct pcim_intx_devres *res = data;
 
-	pci_intx_unmanaged(pdev, res->orig_intx);
+	pci_intx(pdev, res->orig_intx);
 }
 
 static struct pcim_intx_devres *get_or_create_intx_devres(struct device *dev)
@@ -453,7 +453,7 @@ int pcim_intx(struct pci_dev *pdev, int enable)
 		return -ENOMEM;
 
 	res->orig_intx = !enable;
-	pci_intx_unmanaged(pdev, enable);
+	pci_intx(pdev, enable);
 
 	return 0;
 }
diff --git a/drivers/pci/msi/api.c b/drivers/pci/msi/api.c
index c95e2e7dc9ab..b956ce591f96 100644
--- a/drivers/pci/msi/api.c
+++ b/drivers/pci/msi/api.c
@@ -289,7 +289,7 @@ int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
 			 */
 			if (affd)
 				irq_create_affinity_masks(1, affd);
-			pci_intx_unmanaged(dev, 1);
+			pci_intx(dev, 1);
 			return 1;
 		}
 	}
diff --git a/drivers/pci/msi/msi.c b/drivers/pci/msi/msi.c
index 53f13b09db50..3a45879d85db 100644
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -268,7 +268,7 @@ EXPORT_SYMBOL_GPL(pci_write_msi_msg);
 static void pci_intx_for_msi(struct pci_dev *dev, int enable)
 {
 	if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
-		pci_intx_unmanaged(dev, enable);
+		pci_intx(dev, enable);
 }
 
 static void pci_msi_set_enable(struct pci_dev *dev, int enable)
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index c945811b207a..df537c6f383d 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -4481,17 +4481,13 @@ void pci_disable_parity(struct pci_dev *dev)
 }
 
 /**
- * pci_intx_unmanaged - enables/disables PCI INTx for device dev,
- * unmanaged version
+ * pci_intx - enables/disables PCI INTx for device dev
  * @pdev: the PCI device to operate on
  * @enable: boolean: whether to enable or disable PCI INTx
  *
  * Enables/disables PCI INTx for device @pdev
- *
- * This function behavios identically to pci_intx(), but is never managed with
- * devres.
  */
-void pci_intx_unmanaged(struct pci_dev *pdev, int enable)
+void pci_intx(struct pci_dev *pdev, int enable)
 {
 	u16 pci_command, new;
 
@@ -4507,41 +4503,6 @@ void pci_intx_unmanaged(struct pci_dev *pdev, int enable)
 
 	pci_write_config_word(pdev, PCI_COMMAND, new);
 }
-EXPORT_SYMBOL_GPL(pci_intx_unmanaged);
-
-/**
- * pci_intx - enables/disables PCI INTx for device dev
- * @pdev: the PCI device to operate on
- * @enable: boolean: whether to enable or disable PCI INTx
- *
- * Enables/disables PCI INTx for device @pdev
- *
- * NOTE:
- * This is a "hybrid" function: It's normally unmanaged, but becomes managed
- * when pcim_enable_device() has been called in advance. This hybrid feature is
- * DEPRECATED! If you want managed cleanup, use pcim_intx() instead.
- */
-void pci_intx(struct pci_dev *pdev, int enable)
-{
-	u16 pci_command, new;
-
-	pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
-
-	if (enable)
-		new = pci_command & ~PCI_COMMAND_INTX_DISABLE;
-	else
-		new = pci_command | PCI_COMMAND_INTX_DISABLE;
-
-	if (new != pci_command) {
-		/* Preserve the "hybrid" behavior for backwards compatibility */
-		if (pci_is_managed(pdev)) {
-			WARN_ON_ONCE(pcim_intx(pdev, enable) != 0);
-			return;
-		}
-
-		pci_write_config_word(pdev, PCI_COMMAND, new);
-	}
-}
 EXPORT_SYMBOL_GPL(pci_intx);
 
 /**
diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
index 90240c8d51aa..1ab58da9f38a 100644
--- a/drivers/vfio/pci/vfio_pci_core.c
+++ b/drivers/vfio/pci/vfio_pci_core.c
@@ -498,7 +498,7 @@ int vfio_pci_core_enable(struct vfio_pci_core_device *vdev)
 		if (vfio_pci_nointx(pdev)) {
 			pci_info(pdev, "Masking broken INTx support\n");
 			vdev->nointx = true;
-			pci_intx_unmanaged(pdev, 0);
+			pci_intx(pdev, 0);
 		} else
 			vdev->pci_2_3 = pci_intx_mask_supported(pdev);
 	}
diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c
index 40abb0b937a2..8382c5834335 100644
--- a/drivers/vfio/pci/vfio_pci_intrs.c
+++ b/drivers/vfio/pci/vfio_pci_intrs.c
@@ -118,7 +118,7 @@ static bool __vfio_pci_intx_mask(struct vfio_pci_core_device *vdev)
 	 */
 	if (unlikely(!is_intx(vdev))) {
 		if (vdev->pci_2_3)
-			pci_intx_unmanaged(pdev, 0);
+			pci_intx(pdev, 0);
 		goto out_unlock;
 	}
 
@@ -132,7 +132,7 @@ static bool __vfio_pci_intx_mask(struct vfio_pci_core_device *vdev)
 		 * mask, not just when something is pending.
 		 */
 		if (vdev->pci_2_3)
-			pci_intx_unmanaged(pdev, 0);
+			pci_intx(pdev, 0);
 		else
 			disable_irq_nosync(pdev->irq);
 
@@ -178,7 +178,7 @@ static int vfio_pci_intx_unmask_handler(void *opaque, void *data)
 	 */
 	if (unlikely(!is_intx(vdev))) {
 		if (vdev->pci_2_3)
-			pci_intx_unmanaged(pdev, 1);
+			pci_intx(pdev, 1);
 		goto out_unlock;
 	}
 
@@ -296,7 +296,7 @@ static int vfio_intx_enable(struct vfio_pci_core_device *vdev,
 	 */
 	ctx->masked = vdev->virq_disabled;
 	if (vdev->pci_2_3) {
-		pci_intx_unmanaged(pdev, !ctx->masked);
+		pci_intx(pdev, !ctx->masked);
 		irqflags = IRQF_SHARED;
 	} else {
 		irqflags = ctx->masked ? IRQF_NO_AUTOEN : 0;
@@ -569,7 +569,7 @@ static void vfio_msi_disable(struct vfio_pci_core_device *vdev, bool msix)
 	 * via their shutdown paths.  Restore for NoINTx devices.
 	 */
 	if (vdev->nointx)
-		pci_intx_unmanaged(pdev, 0);
+		pci_intx(pdev, 0);
 
 	vdev->irq_type = VFIO_PCI_NUM_IRQS;
 }
diff --git a/drivers/xen/xen-pciback/conf_space_header.c b/drivers/xen/xen-pciback/conf_space_header.c
index 8d26d64232e8..fc0332645966 100644
--- a/drivers/xen/xen-pciback/conf_space_header.c
+++ b/drivers/xen/xen-pciback/conf_space_header.c
@@ -106,7 +106,7 @@ static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
 
 	if (dev_data && dev_data->allow_interrupt_control &&
 	    ((cmd->val ^ value) & PCI_COMMAND_INTX_DISABLE))
-		pci_intx_unmanaged(dev, !(value & PCI_COMMAND_INTX_DISABLE));
+		pci_intx(dev, !(value & PCI_COMMAND_INTX_DISABLE));
 
 	cmd->val = value;
 
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 6b8cde76d564..1b2a6dd1dfed 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1353,7 +1353,6 @@ int __must_check pcim_set_mwi(struct pci_dev *dev);
 int pci_try_set_mwi(struct pci_dev *dev);
 void pci_clear_mwi(struct pci_dev *dev);
 void pci_disable_parity(struct pci_dev *dev);
-void pci_intx_unmanaged(struct pci_dev *pdev, int enable);
 void pci_intx(struct pci_dev *dev, int enable);
 bool pci_check_and_mask_intx(struct pci_dev *dev);
 bool pci_check_and_unmask_intx(struct pci_dev *dev);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 13:05:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 13:05:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835668.1251533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBD3J-0005Oh-Id; Wed, 13 Nov 2024 13:04:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835668.1251533; Wed, 13 Nov 2024 13:04: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 1tBD3J-0005Oa-En; Wed, 13 Nov 2024 13:04:57 +0000
Received: by outflank-mailman (input) for mailman id 835668;
 Wed, 13 Nov 2024 13: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=90UW=SI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tBD3I-0005OU-3w
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 13:04:56 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20616.outbound.protection.outlook.com
 [2a01:111:f403:2613::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcc4783a-a1bf-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 14:04:49 +0100 (CET)
Received: from AM9P250CA0011.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:21c::16)
 by AS2PR08MB8286.eurprd08.prod.outlook.com (2603:10a6:20b:555::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Wed, 13 Nov
 2024 13:04:39 +0000
Received: from AMS0EPF00000192.eurprd05.prod.outlook.com
 (2603:10a6:20b:21c:cafe::f4) by AM9P250CA0011.outlook.office365.com
 (2603:10a6:20b:21c::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Wed, 13 Nov 2024 13:04:39 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF00000192.mail.protection.outlook.com (10.167.16.218) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Wed, 13 Nov 2024 13:04:38 +0000
Received: ("Tessian outbound 1ec1574b55f7:v490");
 Wed, 13 Nov 2024 13:04:37 +0000
Received: from L64b64417803a.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 6F712FBC-9F8E-42D1-9B4A-BFC1D5966042.1; 
 Wed, 13 Nov 2024 13:02:59 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L64b64417803a.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 Nov 2024 13:02:59 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by AS8PR08MB6231.eurprd08.prod.outlook.com (2603:10a6:20b:298::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Wed, 13 Nov
 2024 13:02:56 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%5]) with mapi id 15.20.8158.013; Wed, 13 Nov 2024
 13:02: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: dcc4783a-a1bf-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjE2IiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRjYzQ3ODNhLWExYmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTAzMDg5Ljc5NDE2OCwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=aGBu5v7uEHMFvK0OnTzFO9zH39cY7cHfJql8CCwNCuXNP6IBJgl6k9OPTzaE4K2Szk5dZOfr4YJTkE3pg4Dc/5l+U6lxb5jSuAXfNm7bMAPM75P++WZEvAqHIq4ibtuZ8xTfgbTkMYZ5Cv7CPrhCOw2PwJrRL8CZx3f+BQJmkbwjCrtByw2C82nQSyzKOkS6PH6q5yRzASXo18TJQEoqQJzVoZfnHGNPfL2kV2RwruzTlaFAlMZ+JJrWgbg68Nxs27sxoX1nP+wFR/es1lLi4yP1Blk8f43FfTUgyzlly5n5t4KuK5FwoXgHSxYuFGUedEoT/jdVd4yv2S+Mk+o5yQ==
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=NtXakdXxxQX8VgK6AEqrXJ97WbccNMtcvZpttwVTUqo=;
 b=QG91gNLN9/HsWJNxrudNjHsrxtrXPk4NDsl4CntT/hXAZLGuWPjd9uU6ahvVq8FQTcdpIQIRRCm5087yNOuU3G8DEocmi2hjGpVkB5SAIpKZt/n6o5on9f6RByv40IUvDn0uT2Q+zEuzHcqUisuVFF3/mo/6aad7OlVwPiX8QFBacPM3gvYFQA0UqXY/uA3LvdYfZebWUrSHhSn08qKwANx4l9bXzQQ4OpPmomBtsZfheYv4adi2oNVuyHmsF+w1MAEHRuw0F8kbEy5V6jDwsDK1qhCZJvvBV424Deb1VfDbV5DL7MbHNw7+W20ea0Bzw36YhHq6zQQ81PspvViFqA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=NtXakdXxxQX8VgK6AEqrXJ97WbccNMtcvZpttwVTUqo=;
 b=J6M/lguJXNnh3wJXgp52hNwUHvcP9aCG6WsHz5mU20O08TKMvxOLQuP7nUFtkRUBq2FezBI3WJw9joICqy9X3IvBFHddvWnlUWJTVGEj1g2XNOkhI/iCqVEPdAJUSZFwD7OHyUG9Q8Jvq5C/nEZUOLiTlW13nPGpcesd6I9W/xs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 2f8801c05a0cce91
X-TessianGatewayMetadata: dL8lJIQ/6m1MP2Zvp+9VTievChKI4C+e8B+WddXeN1k/NRnZtotwOFVvr7mMXNiPIc913xnmm+DcZPcohQL2PsazkeoSPxSNtD/iPUsTukH05JcmABW9mcSW1rPit9oFOBznGm+k5V+LGHLG+z80eVaB2aYN61do0Dqxcd1tvm8=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rVeTek2jLxQcRbpjy+2SIh+z+6KCZxBwEybmAphvvsuvr0LkgyI3B94oUmu82j8Esr1CiXyOd0id1oeVyIx2rONdQrwqKO4WjzHGKgKhxWpxi4h0dYYR6nefXDIlixh8S3h75O31NmomVeEyFVQrd2ezEhWSPl0yT4gXo5y0c4JJ0gG/vvUoBXuNFAPNOYHl4xpmwsyj2jxK1knWnJZx3HnwZOjjwaffn7vAoYpIU1GYNTptsINBBPAmeekx6HW3ocBK46DmOJbgJpfAZjaFi8vswImBqyL20zBwl6UcdtV5qTcb9TXwT8z9hdy0r89oxXszV/psx1KAq2Fr5oiEYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NtXakdXxxQX8VgK6AEqrXJ97WbccNMtcvZpttwVTUqo=;
 b=KIHY17wUvuWNdhZpJ+1t8feX2su+RUGvwAnGdSSzuE6CTeiuxuHmhno4fkVF79VOrHqwrrDKkBqcPcX6kXi+c5uUhkNhb6Qev7yXmTJunnCDiCHaQY2ruE6m0FKavrY6A2TNOsCGAcX1p1ZMlbb//JD2eauOsK1YsQ1WS3Z8BqHcLLpcGrKwQvmGVBe9ANamS5czM3HsIDq5pwjmhdQT/QpEsLLvAehy31CJyxmDdc4a+B9x2Doh+pF89HRxbimyin1gOV8uP7XpIEsK2++e0h1+SCUeQXILNKUKwbaWaycxdMjsGK91R3d4Enost619Yai7Pm/MEVMvFBajg9TDnw==
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=NtXakdXxxQX8VgK6AEqrXJ97WbccNMtcvZpttwVTUqo=;
 b=J6M/lguJXNnh3wJXgp52hNwUHvcP9aCG6WsHz5mU20O08TKMvxOLQuP7nUFtkRUBq2FezBI3WJw9joICqy9X3IvBFHddvWnlUWJTVGEj1g2XNOkhI/iCqVEPdAJUSZFwD7OHyUG9Q8Jvq5C/nEZUOLiTlW13nPGpcesd6I9W/xs=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Kelly Choi
	<kelly.choi@cloud.com>
Subject: Re: Xen 4.20 Development Update [August-October]
Thread-Topic: Xen 4.20 Development Update [August-October]
Thread-Index: AQHbNR5PhCaakyOetU2B1BUXrcTlIrK1LmyA
Date: Wed, 13 Nov 2024 13:02:56 +0000
Message-ID: <51B2EC23-B47D-4782-ADD8-C2201B380C12@arm.com>
References:
 <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
In-Reply-To:
 <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@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.3776.700.51)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|AS8PR08MB6231:EE_|AMS0EPF00000192:EE_|AS2PR08MB8286:EE_
X-MS-Office365-Filtering-Correlation-Id: b4f09180-7de9-4bf6-dfb0-08dd03e3bac8
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?I/zdJywoKWxgymnXtX/KYLbzNlCQAuHw5+gZr/XOnZfScVnl+nqYfXryBkp+?=
 =?us-ascii?Q?j/0PqziLl+9rNJImptoVP4dG1BYn19QGvIYGWgHmUKd+nexYNbXp8WKNneH6?=
 =?us-ascii?Q?IR/Le3ptUMA72bEY24XZSqLbl/aPDC0LsMN6cLE0EqZr3+3Xw5LRGSAjLAgx?=
 =?us-ascii?Q?xqFas2x2yP7/Kkje3ji1LsmbgR/7nnAwvS8X7QUjteJ/hNAoYmpZy7+QDdM6?=
 =?us-ascii?Q?ZyzIBkpb+x+fxKo/fWQaIAGPBUXpna3hRCbYWipezC0hGOECnK6RoF7NKPJI?=
 =?us-ascii?Q?1MpnwGQ7IwZEtiycOB4tEqDzEYDFPQ8bWVpgsP6O1Fn2aGFfMRm5KgvG+/nz?=
 =?us-ascii?Q?jDLPlIUlercjuZmFLaYk1M3R/NWUoOzkv+pTcmWdz0QWkiptPEfLfRIXbcPw?=
 =?us-ascii?Q?imqH4jj3gk7L6lfD6Rt0xABQRPWao5//GZ4VC2UjgauaY7VSNKZG5XSzXc04?=
 =?us-ascii?Q?c89w5CjIaggXTj7FLdYwCUx2OE28YUzoD5z0kUWXLVTVoIg9ns3gb9GHPDyQ?=
 =?us-ascii?Q?NSlvTG/fog5BV719POvwTrXQv5p7QvZOHta/zVUwzAwfbXhGeTMEFOZtyLuY?=
 =?us-ascii?Q?Lm+S5O9haI7AS/fXSv2wurVl6zJnp0Du9Ba+ZqVE9wfc8kKwIACY5rrX3hbJ?=
 =?us-ascii?Q?q/+x01YXczY2UHBJ2p2vkONLRvAxpu3ASGhTW28gL7+jPyW901JMcEMjRiYu?=
 =?us-ascii?Q?O16HHjR0znN/4qyrYC+5uA5BIJ0WwcDdwzPuJIv5NR9PUXIf4H4VSx6gqP1A?=
 =?us-ascii?Q?Cf72bJ/Wnp3L6oi89BMU8g4ecw7sFWlMJCKGPfBZlc5hY/BAmZ3JlgRuMbaf?=
 =?us-ascii?Q?7WVenSy3BCWCFEm6Ovbchn248A8lksEIwuAd5a6FTviaJxbJZn+vu2rQPFQv?=
 =?us-ascii?Q?rQ9ZaSSp5R9b/njt3bNmqp86uvdrTyoC6qjNpIaxqOWDXZRz42nP5rVZNQls?=
 =?us-ascii?Q?THoZ8VqbZi0vcAm40VbLASu5237UaFWkq/DuBLUupmlp8mVv+y8JHwqdoFgb?=
 =?us-ascii?Q?cmTxS2kiik4ItBjWhSy7zjmdscJlqxNIIll86o1iZgccjwBt8++7R4Wn7H1V?=
 =?us-ascii?Q?zl2G9UWdTbKu5CHRyEjFtiENuy6ayahppo16Kh/z/uY7eFk4E3j6rRql9q66?=
 =?us-ascii?Q?38wd/8xj4qFMHaDXId5f7hOTeeasmwFKV7DwC17NcUuEpKlBdn4pcLmWqudH?=
 =?us-ascii?Q?N7iCqYzjh+5Uy+XuccCH4EXPUv7K8dC73n0Iz9LbGJaWObL45/rGZW/5q2im?=
 =?us-ascii?Q?Bn6xU49ScoQRPYReX1GrOucuoykyZxvP6MVE5CMf2+yjcZDZVWJtDF5tOa4Y?=
 =?us-ascii?Q?MsecU4kOjQxV+Gsmci4Hvamp?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <7493988B2D95124FBA61A2B3C2D7C8FC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6231
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:25a::24];domain=DB9PR08MB6588.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000192.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	62f61fcd-5f0f-4114-09e2-08dd03e37dfa
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|35042699022|14060799003|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?kfPrTe98imFkwndIA2kn8xMJ+3jCny5/+ru/oVfpjh3RJZ/nhcT1kyv4OCwD?=
 =?us-ascii?Q?2ZL1Ub+4rfAxnILmdbFq8izvCcx9rqdVmUesMiViShrzqXM67pHDNOM9H0zI?=
 =?us-ascii?Q?+0hNm07MEmJuHpeX+bs/l1AXlhv2kkR01vRKxl9FGbp3VkU2h803iCOuFj+N?=
 =?us-ascii?Q?dWdEt40qVFJWHADwuQfiQC91yJNaBe4NAulYpExGCOqglICzyckKQcm7Tq0W?=
 =?us-ascii?Q?OREwL/ZH15SS1jsft1sbxjAGkxRiwaU45LGcFeTP9qey4b0NfynT3dlt0m2J?=
 =?us-ascii?Q?v1WQUsJeENYhRJCrCKrkYKQphEzdOZzJI9mKqZ/iBasWmOdg4u3WxJueDOBK?=
 =?us-ascii?Q?PY2IcojzrDD//laIPEiM4sy5H17aiwQpiD1Ge9Kw/dD4X+vTpxAaIzjsLtZH?=
 =?us-ascii?Q?5Q0a0vwrHGNAuef31MB/unMXD7pZh/pYE6miWLPsesSCafalLsMu5PT3OuDV?=
 =?us-ascii?Q?qiJIiL0lFt8acI8eT2pEPQuVhxV9wVvRG+zRDdNpSRNIYngHJw3gt4spkA5b?=
 =?us-ascii?Q?rFxEI4UmV+fJGeSlh2r53DX3LI0zQGgkJ9NG5oCms/cijlOpNp5IryX5JBqv?=
 =?us-ascii?Q?6LdshACLugvK0O0r7SITml6qTM5rAjlmsDWUDZHSp8kdW9bCO1Cjzv6892nQ?=
 =?us-ascii?Q?4q2VTvvaXVvEUNCCT4bTsePp//P3bq5V2GC1QbJCr1Q/siRhankAiZBQH5uO?=
 =?us-ascii?Q?xn3J/HXlM+8H4JNGlrab3tnc/UGwijl/jDOVpHbvSEvQPlw6QUYtn7A4XQHS?=
 =?us-ascii?Q?vdweg0tt38M/IHc4f1/6/yLmF7fIrOO/YHzJmcolvK5RXy09WHm2e5SZUOLW?=
 =?us-ascii?Q?cqsqujQZz3Ht0SO6hA1GRUEidTmjPx9hL1AssSsrlOwvItZK0kKkm9H//zy/?=
 =?us-ascii?Q?bfE/Foa4nxcMMgkAFOn1XzQV4A7JuBbRJRN/MQgcOdsCUH/ipkv0FqEOqq0f?=
 =?us-ascii?Q?K2cOWh+yihn1cLd+jEcUAtBIn0L1fiuO+zTvH1YfuuYRswSh8fsPu4UXDe76?=
 =?us-ascii?Q?IIe4uWnQaecoGQl/7HyWQuFMXl4XubWojCQF8zyCOipMw5KD6J6hGxnvfrSG?=
 =?us-ascii?Q?cyQLTqfb08uLY8VGzSoAQdtROLPr2v5EulnEInxt8CVPiWRZN+CEwEHCrWbc?=
 =?us-ascii?Q?3J4L396qajpMo1Mem8Vz3g3EmZOWKLHEuY/pU0scXXwS8iX9FvmI4fn9bOwb?=
 =?us-ascii?Q?Gx3gg8mUY0zcw6mFjU3sHI/KiXVoZrnW+tF5dcMmJ3jCu1eTCQ8kSherAepY?=
 =?us-ascii?Q?NvNrx0ewitLuwvLKKfE1a1ZnkPvUZ5Yde8TFi2asYQQr1M8kG5WZhGo4VCsv?=
 =?us-ascii?Q?eykKFyssNGuX1pfB7LfHfL21I8hgAvDOJPoUrSQ2t1SJAK1mZamhtOHLxpIN?=
 =?us-ascii?Q?Wsp8e1k=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(35042699022)(14060799003)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2024 13:04:38.2039
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b4f09180-7de9-4bf6-dfb0-08dd03e3bac8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000192.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8286

Hi Oleksii,

> On 12 Nov 2024, at 16:16, Oleksii Kurochko <oleksii.kurochko@gmail.com> w=
rote:
>=20
> Hello everyone,
>=20
> This email only tracks big items for xen.git tree. Please reply for items=
 you
> would like to see in 4.20 so that people have an idea what is going on an=
d
> prioritise accordingly.
>=20
> You're welcome to provide description and use cases of the feature you're
> working on.
>=20
> =3D Timeline =3D
>=20
> ---> We are here
> * Last posting date: Nov 29, 2024
> * Feature freeze date: Dec 20, 2024
> * Hard code freeze: Jan 17, 2025
> * RC1: TBD
> * Release: Feb 21, 2025
> ( current release schedule: https://wiki.xenproject.org/wiki/Xen_Project_=
X.YY_Release_Notes )
>=20
> All patches that wish to go into 4.20 must be posted no later than the la=
st posting
> date. All patches posted after that date will be automatically queued
> into next release.
>=20
> RCs will be arranged immediately after freeze.
>=20
> =3D Projects =3D
>=20
> =3D=3D Hypervisor =3D=3D=20
>=20
> *  Remove the directmap (v4)
>   -  Elias El Yandouzi
>   -  https://lore.kernel.org/xen-devel/f6973275-0d7e-4db4-b949-f21e530e1d=
fc@citrix.com/T/#m9733aa717edf032db0cf8f8f6763537b4f30c1f8
>=20
> *  remove libxenctrl usage from xenstored (v1)
>   -  Juergen Gross
>   -  https://lore.kernel.org/xen-devel/20241023131005.32144-1-jgross@suse=
.com/T/#md016c48a0889740d1822aa68f7f33d4ad48f4805
>=20
> *  automation: Refresh the remaining Debian containers (v2)
>   -  Javi Merino
>   -  https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@c=
loud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e
>=20
> *  Move gic_preinit() to common code (v2)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/2fe01b5a-aebb-4141-9cdd-887b5984d6=
b8@suse.com/T/#m8144a030ef64a479068482c864c9258a5cb43a87
>=20
> *  stubdom: reduce xenstore library dependencies (v1)
>   -  Juergen Gross
>   -  https://lore.kernel.org/xen-devel/20241010155459.22389-1-jgross@suse=
.com/T/#m8b5af386e2d288961bb6e8f7839650e0cab96a83
>=20
> *  xen: address violations of MISRA C Rule 13.6 (v2)
>   -  Federico Serafini
>   -  https://lore.kernel.org/xen-devel/cover.1727690180.git.federico.sera=
fini@bugseng.com/T/#mbec702db211240305e0d35649e65627d9fa75a29
>=20
> =3D=3D=3D x86 =3D=3D=3D=20
>=20
> *  Expose consistent topology to guests (v7)
>   -  Alejandro Vallejo
>   -  https://lore.kernel.org/xen-devel/20241021154600.11745-1-alejandro.v=
allejo@cloud.com/T/#m6033f95c660675039d7789d3af1ba2f292a3a69b
>=20
> *  Boot modules for Hyperlaunch (v8)
>   -  Daniel P. Smith
>   -  https://lore.kernel.org/xen-devel/20241102172551.17233-1-dpsmith@ape=
rtussolutions.com/T/#m94a2f6b9d410c6d624aaebd7c2bf85584c74383e
>=20
> *  x86/mm: miscellaneous fixes (v2)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m2df34=
239b793501c6246c85c4b00e52f9c439ac0
>=20
> *  x86/ucode: Simplify/fix loading paths further (v1)
>   -  Andrew Cooper=20
>   -  https://lore.kernel.org/xen-devel/20241107122117.4073266-1-andrew.co=
oper3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625d1
>=20
> *  Address Space Isolation FPU preparations (v2)
>   -  Alejandro Vallejo
>   -  https://lore.kernel.org/xen-devel/20241105143310.28301-1-alejandro.v=
allejo@cloud.com/T/#mbca5192d7e5636ef5ea005a083e5ff28ebe6317d
>=20
> *  Fix module-handling use-after-free's (v2)
>   -  Andrew Cooper=20
>   -  https://lore.kernel.org/xen-devel/20241106003938.3453243-1-andrew.co=
oper3@citrix.com/T/#mdf923bdf63b034a6493bf62beeead280b92a38ed
>=20
> *  Reuse 32 bit C code more safely (v4)
>   -  Frediano Ziglio
>   -  https://lore.kernel.org/xen-devel/20241014085332.3254546-1-frediano.=
ziglio@cloud.com/T/#m53e36815ddec2511ddd1fa8d1a7ed9a27c0cd0f7
>=20
> *  x86/alternatives: Adjust all insn-relative fields (v2)
>   -  Andrew Cooper=20
>   -  https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.co=
oper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
>=20
> *  x86: address violations of MISRA C Rule 16.3 (v1)
>   -  Federico Serafini
>   -  https://lore.kernel.org/xen-devel/cover.1725958416.git.federico.sera=
fini@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be01ab6
>=20
> *  Support device passthrough when dom0 is PVH on Xen (v16)
>   -  Jiqian Chen
>   -  https://lore.kernel.org/xen-devel/20240930034250.2682265-1-Jiqian.Ch=
en@amd.com/T/#m5d557d76f290ff5b5550c1443cab5774d397e526
>=20
> *  x86emul: misc additions (v5)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/0b9a0ae8-a39c-49d8-b4e7-f2a4631280=
58@suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe780e
>=20
> *  x86/HVM: drop stdvga caching mode (v2)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6-8fbc-67a177a1e1=
71@suse.com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117
>=20
> *  x86/HVM: emulation (MMIO) improvements (v1)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/31906cba-8646-4cf9-ab31-1d23654df8=
d1@suse.com/T/#mdae2f21b929170d60a8640e82857700c940e65c7
>=20
> =3D=3D=3D ARM =3D=3D=3D=20
>=20
> *  Enable early bootup of AArch64 MPU systems (v5)
>   -  Ayan Kumar Halder
>   -  https://lore.kernel.org/xen-devel/20241107150330.181143-1-ayan.kumar=
.halder@amd.com/T/#m9cfd8bed109cc703b6ae8b8b6faaa116c08598ee
>=20
> *  Add support for S32CC platforms and LINFlexD UART (v2)
>   -  Andrei Cherechesu=20
>   -  https://lore.kernel.org/xen-devel/20240930114715.642978-1-andrei.che=
rechesu@oss.nxp.com/T/#m8452ac342fdcf989fc1e498c097812b50157f2cc
>=20
> *  Arm cache coloring (v9)
>   -  Carlo Nonato
>   -  https://lore.kernel.org/xen-devel/20241025095014.42376-1-carlo.nonat=
o@minervasys.tech/T/#md18fb02842c4ad2cd61b456be89020affcc452a3
>=20
> *  ffa: Improvements and fixes (v2)
>   -  Bertrand Marquis
>   -  https://lore.kernel.org/xen-devel/cover.1729066788.git.bertrand.marq=
uis@arm.com/T/#mb0c8aab97d46f9c9e933b3b9b0eef7e717e1f2e5

I would like to have this for next release and i plan to post the v3 next w=
eek.

Cheers

>=20
> *  Add Virtio-PCI for dom0less on ARM (v1)
>   -  Edgar E. Iglesias
>   -  https://lore.kernel.org/xen-devel/20240924162359.1390487-1-edgar.igl=
esias@gmail.com/T/#mfa148991b9408f223a079d4cef610244d5b04c2b
>=20
> =3D=3D=3D RISCV =3D=3D=3D=20
>=20
> *  Setup memory management (v5)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1731344883.git.oleksii.kuroc=
hko@gmail.com/T/#m9f76f1b685896ea603a2b153e05104c7405a7d28
>=20
> =3D=3D=3D PPC =3D=3D=3D=20
>=20
> *  Early Boot Allocation on Power (v5)
>   -  Shawn Anastasio
>   -  https://lore.kernel.org/xen-devel/cover.1727388925.git.sanastasio@ra=
ptorengineering.com/T/#m8cac91a93b56a359fa2d5f08596c4be61dca290d
>=20
> =3D=3D Completed =3D=3D=20
>=20
> =3D=3D=3D Hypervisor =3D=3D=3D=20
>=20
> *  libxl: Implement QEMU command line probe (v1)
>   -  Anthony PERARD
>   -  https://lore.kernel.org/xen-devel/20240827100328.23216-1-anthony.per=
ard@vates.tech/T/#mdef23cefc2532ab0c9d7460290cef26780cf97cb
>=20
> *  xen/bitops: hweight() cleanup/improvements (v3)
>   -  Andrew Cooper=20
>   -  https://lore.kernel.org/xen-devel/20240904225530.3888315-1-andrew.co=
oper3@citrix.com/T/#me22e08f7477be725122dd9b97d29d272e3b586c4
>=20
> *  Move percpu code to common (v2)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1727185495.git.oleksii.kuroc=
hko@gmail.com/T/#mf93394c46f15cbdcfc873de2d52d862a8b70da7f
>=20
> *  xen/livepatch: improvements to loading (v3)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/20240926101431.97444-1-roger.pau@c=
itrix.com/T/#ma3f65948b065dc443aea2192873a3b3dfa52a2d7
>=20
> *  Move {acpi_}device_init() and device_get_class() to common code (v5)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/17c7d988e45d7c82448b81fe66b01a5cec=
a0c15e.camel@gmail.com/T/#m68bd00d4f8b3724e83ba13024e94b15b58a28829
>=20
> *  blkif: reconcile protocol specification with in-use implementations (v=
1)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/20240903141923.72241-1-roger.pau@c=
itrix.com/
>=20
> =3D=3D=3D x86 =3D=3D=3D=20
>=20
> *  Drop Xeon Phi support (v1)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/44147507-65a4-4f21-aada-fa647f53ff=
d0@suse.com/
>=20
> *  Utilize ucode_force and remove opt_ucode_allow_same (v7)
>   -  Fouad Hilly
>   -  https://lore.kernel.org/xen-devel/20240822130426.492931-4-fouad.hill=
y@cloud.com/
>=20
> *  Switch flat driver to use phys dst for ext ints (v2)
>   -  Matthew Barnes
>   -  https://lore.kernel.org/xen-devel/0db68e62ffc428f553a30397df1e79068d=
26bb5f.1728311378.git.matthew.barnes@cloud.com/
>=20
> *  x86/shutdown: change default reboot method preference (v1)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/20240802105613.99197-1-roger.pau@c=
itrix.com/
>=20
> =3D=3D=3D ARM =3D=3D=3D=20
>=20
> *  iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H) support (v1)
>   -  Grygorii Strashko
>   -  https://lore.kernel.org/xen-devel/6ab4ad29-404d-4f5c-8582-5d2f492fd5=
49@xen.org/T/#t
>=20
> *  xen/arm: dt overlay fixes (v2)
>   -  Michal Orzel
>   -  https://lore.kernel.org/xen-devel/20241004122220.234817-1-michal.orz=
el@amd.com/T/#md51a060b93fe72f17637d6d72e3d4e2296cb4078
>=20
> =3D=3D=3D RISC-V =3D=3D=3D=20
>=20
> *  initialize bootinfo from dtb (v2)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1728481578.git.oleksii.kuroc=
hko@gmail.com/T/#m543bf84d47f0ea738938a9a442cd144bb34f7316
>=20
> *  Register Xen's load address as a boot module (v3)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1728472163.git.oleksii.kuroc=
hko@gmail.com/T/#t
>=20
> *  device tree mapping (v9)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1727781468.git.oleksii.kuroc=
hko@gmail.com/T/#t



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 13:25:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 13:25:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835682.1251543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBDN1-0001F6-4K; Wed, 13 Nov 2024 13:25:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835682.1251543; Wed, 13 Nov 2024 13:25: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 1tBDN1-0001Ez-1i; Wed, 13 Nov 2024 13:25:19 +0000
Received: by outflank-mailman (input) for mailman id 835682;
 Wed, 13 Nov 2024 13:25: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=K+ao=SI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tBDMz-0001Et-2d
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 13:25:17 +0000
Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com
 [2a00:1450:4864:20::342])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b65c99ac-a1c2-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 14:25:12 +0100 (CET)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-431481433bdso60247865e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 05:25:12 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432d54fcabcsm24685335e9.18.2024.11.13.05.25.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 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: b65c99ac-a1c2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozNDIiLCJoZWxvIjoibWFpbC13bTEteDM0Mi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI2NWM5OWFjLWExYzItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTA0MzEyLjk1MDIzNywic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731504312; x=1732109112; 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=tI7vWtg8gJ6RWwGIsoNlg/Cyo/tnqNM3pVUJsmGzCok=;
        b=ZwWo+KUfIfXz1ow56X7uagD8vkFsv47skpWIJHsTEUdkEU8u0wU4w/Dwcjcs0eca0G
         0n50PxjHyF3jzesPnCJ+DR2kKdXXEuM6SJ0m9lw8J5wwto8IV+AaaRJ7KzjXhg87Mqpi
         54PSSluWnPXA6ZTG+q7gO15hoU/4bhvaT5i9FKOt7cvO7YvK0EY91qgR2qg9PrlB91vj
         eO1LqpHPpMhSAODl8vfx21ERO7XPUoTGPhQn9C9y8byMbuXZJtQeTT8MCbuMtatK9fE7
         U8Bm80G2yqdcJ7zk4CrET4l1LBJxI5Nd1R+3MOt4q4vXVT4oLw6RMUPesbUV3aK03OSn
         buig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731504312; x=1732109112;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=tI7vWtg8gJ6RWwGIsoNlg/Cyo/tnqNM3pVUJsmGzCok=;
        b=KZHD23On8LHlR+6+6jtpreJNJGBWc3j3okxmoXWIVmTaA0vTRFGSylGTBekRtv+y6A
         T4O5epLMxnvYJelhLzd/3n7JvQIO0dMUQdOK+ktrAdo7v+mTJPAPx29/UGKwvcXEFQYT
         L/kP5ARrbb0KDSmiyQG0TSLKfVSffVIjR+5if2aCzEdtQdsWSIb6qTgheHg4hwS1VrDc
         3QC4eHmLpzpc+U0zko7qTmdyPalMdFd8oZ/fimJVdRiu5Efg1CLbte99gMLmD2CgPTZX
         hBef3JyWBz5UuQGlm4BnS1L1Pak+eQ1GoQlbDWCQGV3gU0fBHfQzDky8MrBlSpHdyPRs
         oa0Q==
X-Forwarded-Encrypted: i=1; AJvYcCXw27mrnJ2pSgkQWqOjJxo9kvYVotPl18Z/x4+j7Bd3Hav5e1psEL0JwLbA+vVtBUHopzMJmhBgWlQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxhYgxydqeD7Q5EotV4U/Gx8hgU6FLhwoxnhw2d1oamq7uPHFII
	PCWRAfYH0M39GI3viEsW2w5ZTDiyuKi5aPVSMn8P8h7GgV1DRbH9wE7ZpZnwm1Q=
X-Google-Smtp-Source: AGHT+IFF08y36fv/zXwMx6fU8k54Ine7T8C6PmMOMDCZCk8Es9Reve0grx+VFsQk3Vhg7T3eFpr2mQ==
X-Received: by 2002:a05:600c:3c97:b0:431:4f5e:1f61 with SMTP id 5b1f17b1804b1-432d4ab1840mr28275635e9.14.1731504312215;
        Wed, 13 Nov 2024 05:25:12 -0800 (PST)
Message-ID: <8205ea71-858c-4552-819f-2b9753457034@suse.com>
Date: Wed, 13 Nov 2024 14:25:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.20 Development Update [August-October]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Kelly Choi <kelly.choi@cloud.com>
References: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.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: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------jJrHLxQ9gIASRZbaESDR2c4c"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------jJrHLxQ9gIASRZbaESDR2c4c
Content-Type: multipart/mixed; boundary="------------my9VWqJD0FktgDpR9tDcFBnU";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Kelly Choi <kelly.choi@cloud.com>
Message-ID: <8205ea71-858c-4552-819f-2b9753457034@suse.com>
Subject: Re: Xen 4.20 Development Update [August-October]
References: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
In-Reply-To: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>

--------------my9VWqJD0FktgDpR9tDcFBnU
Content-Type: multipart/mixed; boundary="------------soa2blsgTPuWnfjdJImBcngz"

--------------soa2blsgTPuWnfjdJImBcngz
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTIuMTEuMjQgMTc6MTYsIE9sZWtzaWkgS3Vyb2Noa28gd3JvdGU6DQo+IEhlbGxvIGV2
ZXJ5b25lLA0KPiANCj4gVGhpcyBlbWFpbCBvbmx5IHRyYWNrcyBiaWcgaXRlbXMgZm9yIHhl
bi5naXQgdHJlZS4gUGxlYXNlIHJlcGx5IGZvciBpdGVtcyB5b3UNCj4gd291bGQgbGlrZSB0
byBzZWUgaW4gNC4yMCBzbyB0aGF0IHBlb3BsZSBoYXZlIGFuIGlkZWEgd2hhdCBpcyBnb2lu
ZyBvbiBhbmQNCj4gcHJpb3JpdGlzZSBhY2NvcmRpbmdseS4NCj4gDQo+IFlvdSdyZSB3ZWxj
b21lIHRvIHByb3ZpZGUgZGVzY3JpcHRpb24gYW5kIHVzZSBjYXNlcyBvZiB0aGUgZmVhdHVy
ZSB5b3UncmUNCj4gd29ya2luZyBvbi4NCj4gDQo+ID0gVGltZWxpbmUgPQ0KPiANCj4gLS0t
PiBXZSBhcmUgaGVyZQ0KPiAqIExhc3QgcG9zdGluZyBkYXRlOiBOb3YgMjksIDIwMjQNCj4g
KiBGZWF0dXJlIGZyZWV6ZSBkYXRlOiBEZWMgMjAsIDIwMjQNCj4gKiBIYXJkIGNvZGUgZnJl
ZXplOiBKYW4gMTcsIDIwMjUNCj4gKiBSQzE6IFRCRA0KPiAqIFJlbGVhc2U6IEZlYiAyMSwg
MjAyNQ0KPiAoIGN1cnJlbnQgcmVsZWFzZSBzY2hlZHVsZTogaHR0cHM6Ly93aWtpLnhlbnBy
b2plY3Qub3JnL3dpa2kvIA0KPiBYZW5fUHJvamVjdF9YLllZX1JlbGVhc2VfTm90ZXMgPGh0
dHBzOi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpLyANCj4gWGVuX1Byb2plY3RfWC5ZWV9S
ZWxlYXNlX05vdGVzPiApDQo+IA0KPiBBbGwgcGF0Y2hlcyB0aGF0IHdpc2ggdG8gZ28gaW50
byA0LjIwIG11c3QgYmUgcG9zdGVkIG5vIGxhdGVyIHRoYW4gdGhlIGxhc3QgcG9zdGluZw0K
PiBkYXRlLiBBbGwgcGF0Y2hlcyBwb3N0ZWQgYWZ0ZXIgdGhhdCBkYXRlIHdpbGwgYmUgYXV0
b21hdGljYWxseSBxdWV1ZWQNCj4gaW50byBuZXh0IHJlbGVhc2UuDQo+IA0KPiBSQ3Mgd2ls
bCBiZSBhcnJhbmdlZCBpbW1lZGlhdGVseSBhZnRlciBmcmVlemUuDQo+IA0KPiA9IFByb2pl
Y3RzID0NCj4gDQo+ID09IEh5cGVydmlzb3IgPT0NCj4gKiDCoHN0dWJkb206IHJlZHVjZSB4
ZW5zdG9yZSBsaWJyYXJ5IGRlcGVuZGVuY2llcyAodjEpDQo+ICDCoCAtIMKgSnVlcmdlbiBH
cm9zcw0KPiAgwqAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDEw
MTAxNTU0NTkuMjIzODktMS1qZ3Jvc3NAc3VzZS5jb20vVC8gDQo+ICNtOGI1YWYzODZlMmQy
ODg5NjFiYjZlOGY3ODM5NjUwZTBjYWI5NmE4MyA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv
eGVuLSANCj4gZGV2ZWwvMjAyNDEwMTAxNTU0NTkuMjIzODktMS1qZ3Jvc3NAc3VzZS5jb20v
VC8gDQo+ICNtOGI1YWYzODZlMmQyODg5NjFiYjZlOGY3ODM5NjUwZTBjYWI5NmE4Mz4NCg0K
VGhpcyBvbmUgaGFzIGJlZW4gYXBwbGllZCBhbHJlYWR5Lg0KDQoNCkp1ZXJnZW4NCg==
--------------soa2blsgTPuWnfjdJImBcngz
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-----

--------------soa2blsgTPuWnfjdJImBcngz--

--------------my9VWqJD0FktgDpR9tDcFBnU--

--------------jJrHLxQ9gIASRZbaESDR2c4c
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/Ey8FAmc0qLcFAwAAAAAACgkQsN6d1ii/Ey9t
fwgAhRY4HeaASuMLN2PqMmPSX5tfNvuCZu5MFwz+jKD7LZhIWrHVec+Eddxi5NQyexC63W4g44sp
XzuNZeOF6cRREFyP1zMLIM867/wqWYj/ib/05GuvAS2kN7wg9pg7ac+Qch7GjaLWXAAcUbRYrxWk
pl9AV3Cu3zRTzRfLFicwoUnK6by83rx9ydH67kdRNTjX8uYonptlTIMji+PrhLk47Ug+9DvHQvHB
s1+hmOLXDuCMJM0e6iWAhb1OYgU8KqH1cQN0vxdNhjCxH6YH8rCvsm6DCV34hZkGURCMRrG1tC/2
lESb9yU9dEbiLWs4JHxXbdKhHwfizTeNcx/bfzrhYQ==
=QEVY
-----END PGP SIGNATURE-----

--------------jJrHLxQ9gIASRZbaESDR2c4c--


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 13:31:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 13:31:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835696.1251553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBDSn-0002ye-RE; Wed, 13 Nov 2024 13:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835696.1251553; Wed, 13 Nov 2024 13:31: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 1tBDSn-0002yX-OL; Wed, 13 Nov 2024 13:31:17 +0000
Received: by outflank-mailman (input) for mailman id 835696;
 Wed, 13 Nov 2024 13:31: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBDSm-0002yR-SV
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 13:31:16 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8bdf0d8b-a1c3-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 14:31:11 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2fb388e64b0so9734041fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 05:31:11 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7f2b8sm7197342a12.32.2024.11.13.05.31.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 05:31: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: 8bdf0d8b-a1c3-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmEiLCJoZWxvIjoibWFpbC1sajEteDIyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhiZGYwZDhiLWExYzMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTA0NjcxLjA4OTQ3MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731504670; x=1732109470; 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=znqsvYnmZXuxbS1+kig6vcMbmZAmN6n4lE22vnllifE=;
        b=AuPolQKLLkNFy9J1nA6eCqDth7q0HGhvI8r/rzm8eAqUWltv6bIrqY3AxpkRg8lDht
         uEcTNp4Myo4DbC2OdotnEcH3Kzn953Dzjeo+sPJRub2WqMgfg4ws3Blb5rvFwfXxDzMi
         WbZqFGk8WT6nqII6NnNr+5BgWUcFhhLfHu+vg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731504670; x=1732109470;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=znqsvYnmZXuxbS1+kig6vcMbmZAmN6n4lE22vnllifE=;
        b=wIZUG/mQa191HGc3bYbJqoBpjToefFqBUBKiiKKHO26dlMs0CvxJowPBTKerp2o0fX
         nYIpKVdoNh/ARfVYIvAiF73QP2nSLpvQEXQ917bbamXS21uZUJrp3IO6njt1+8UYJcv1
         UddjiNr5IlL/fTQmwTPYqvfR11v3aqTvEewM3yloSkVsKXmZsitHcXGXwiojFd9c2e/4
         FeKME9QLT2kHtxZDEt09NZaCPocohw2bm1VJOM5ZgkBlo+QPsYVkd2QuUhy5QoEbMDfk
         QFIWHl4ND+lQGgXbejkO/rqZ9Qajf65ivUNfFSEraFTyyaWqmR1xyl8cs4pdr4Qh36OX
         tKKQ==
X-Forwarded-Encrypted: i=1; AJvYcCVHDTpntuu3vFbO/G47RY63fh3uTh1M7kdu3cBp2F8GqGhwxDBMjzKqyTCL8zfLckoc6litV2dsunk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxrnSfDHfyEofaFbCKHYkbZu/cyztZ/OWj7UckURdYFbIV7TKyF
	6eH2stt558NB/e3GIoUlmmOMgNy5L3rhanlYSbym0rR7KpZbTGrL8+fVP4TQUSk=
X-Google-Smtp-Source: AGHT+IF4whJ0B6qflyUzSkeDhGEfH/7cxaWJMpk726BRk7y4je476YrUXci9mh+tqtDwJNtXkFBXSA==
X-Received: by 2002:a2e:bd02:0:b0:2ef:20ae:d113 with SMTP id 38308e7fff4ca-2ff4271fec1mr36518441fa.40.1731504670243;
        Wed, 13 Nov 2024 05:31:10 -0800 (PST)
Message-ID: <876f727c-8929-4149-af72-c3344db06e31@citrix.com>
Date: Wed, 13 Nov 2024 13:31:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86emul: ignore VEX.W for BMI{1,2} insns in 32-bit
 mode
To: 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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
 <6442a109-de9a-4b81-a283-2d72bbc3d284@citrix.com>
 <3788f564-7f02-4e2e-ac4c-b29214206e0d@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3788f564-7f02-4e2e-ac4c-b29214206e0d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/11/2024 8:01 am, Jan Beulich wrote:
> On 13.11.2024 01:24, Andrew Cooper wrote:
>> On 12/11/2024 3:00 pm, Jan Beulich wrote:
>>> While result values and other status flags are unaffected as long as we
>>> can ignore the case of registers having their upper 32 bits non-zero
>>> outside of 64-bit mode, EFLAGS.SF may obtain a wrong value when we
>>> mistakenly re-execute the original insn with VEX.W set.
>>>
>>> Note that the memory access, if any, is correctly carried out as 32-bit
>>> regardless of VEX.W.
>> I don't understand why this is true.
> This talks about the access to guest memory, which is op_bytes based.
> And op_bytes determination handles VEX.W correctly afaics. I've added
> "guest" near the start of the sentence for clarification.

Ah - that makes things much clearer.

I had neglected to consider the access to guest memory.

In addition to a "guest" earlier, I'd suggest having a new paragraph at
this point, and ...

>
>> If we write out a VEX.W=1 form of BEXTR/etc and emulate while in 64bit
>> mode, it will have an operand size of 64.
>>
>> I can believe that ...
>>
>>>  Internal state also isn't leaked, as the field the
>>> memory value is read into (which is then wrongly accessed as a 64-bit
>>> quantity when executing the stub) is pre-initialized to zero.

... this reading:

"The emulator-local memory operand will be accessed as a 64-bit
quantity, but it is pre-initialised to zero so no internal state an leak"

or similar.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 13:32:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 13:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835702.1251562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBDTk-0003fT-3V; Wed, 13 Nov 2024 13:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835702.1251562; Wed, 13 Nov 2024 13: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 1tBDTk-0003fM-0t; Wed, 13 Nov 2024 13:32:16 +0000
Received: by outflank-mailman (input) for mailman id 835702;
 Wed, 13 Nov 2024 13:32: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBDTi-0003Q8-SL
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 13:32:14 +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 afd12ff0-a1c3-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 14:32:11 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cf7298c7ccso170827a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 05:32:11 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03b7f2cesm7228414a12.34.2024.11.13.05.32.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 05: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: afd12ff0-a1c3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFmZDEyZmYwLWExYzMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTA0NzMxLjQwOTA0Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731504731; x=1732109531; 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=iW8L1xI2SnNjKv/eNls4jhkxMpt33foZJcBqaCgMcik=;
        b=VgktYsvaB4JRmcxnoRTHdZCrQGVuiKw2/6dn5wm30SNe85NfzmgajALSbAQuX22i+x
         oXY12OaIDeaHLvac3frHzdDLnPwEgKIhqKRUcWZoMehF+wpEOUVsBuLuu7qlr84OlpSk
         dtP/4nUVen5fjWkT07VI9tG7vGOqVVTnxuJEQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731504731; x=1732109531;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=iW8L1xI2SnNjKv/eNls4jhkxMpt33foZJcBqaCgMcik=;
        b=JMWOiTDHBt4HE0FpJbv43avuzoTLE40oiG8mmSl6Q81apCd7gZVh4igvKADJ1IWCuT
         gUdWiAUWJgGGR9qxFxBX8S/a6WsY/hHR9lnFULDJ9w1Ouok7jGSAMkURV91UW10vBRo1
         ABIYEgEgwYMzYN5Zel/sfd9/WxdstVfcKRk+k1zWhVIb7MIkP3aVoqsZBRy5L0gFX0PI
         sxG4/u+299Vx+6Rgei7cKGXSHHOBaytFO0Bq1EHMK/R7TYpD4IR9q1uqT6t/Es371luo
         LxsQDyUXQjgFzLwuksTpljuqPtSUxyCLuVUqc12rQPcqQrx/Wx/5p/Q1dij54X1iKhOU
         OxgQ==
X-Forwarded-Encrypted: i=1; AJvYcCWYvcjp7D53c71XGkCNBOEz3GPfPPh5ywePRIu4VH0JokwKnVUgDPeWOE1t0ZgFMhlLX9qRMa/8kOs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCMg9twLmghhlVMPz5Ox/ml4dI5V2jFsPugswv+kvWdAdp2NHe
	+38UpORIbO4+ZQ03IaXeB2ymzJO0zl/gpWndIqKD9IrI6xjIC1QwZ1XHkFVm6Tc=
X-Google-Smtp-Source: AGHT+IGw56X44QNnUSS1J6OkG3NA8LZZvnTUo2nvNEgNiBevx5SOqZNwo4KezrYeJOBNIX3frOGp7Q==
X-Received: by 2002:a05:6402:50cc:b0:5cf:707f:a101 with SMTP id 4fb4d7f45d1cf-5cf707fa2efmr811538a12.8.1731504730772;
        Wed, 13 Nov 2024 05:32:10 -0800 (PST)
Message-ID: <935442f7-4821-4215-a053-eeb1347282bb@citrix.com>
Date: Wed, 13 Nov 2024 13:32:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86emul: ignore VEX.W for BMI{1,2} insns in 32-bit
 mode
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: 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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
 <6442a109-de9a-4b81-a283-2d72bbc3d284@citrix.com>
 <3788f564-7f02-4e2e-ac4c-b29214206e0d@suse.com>
 <876f727c-8929-4149-af72-c3344db06e31@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <876f727c-8929-4149-af72-c3344db06e31@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/11/2024 1:31 pm, Andrew Cooper wrote:
> On 13/11/2024 8:01 am, Jan Beulich wrote:
>> On 13.11.2024 01:24, Andrew Cooper wrote:
>>> On 12/11/2024 3:00 pm, Jan Beulich wrote:
>>>> While result values and other status flags are unaffected as long as we
>>>> can ignore the case of registers having their upper 32 bits non-zero
>>>> outside of 64-bit mode, EFLAGS.SF may obtain a wrong value when we
>>>> mistakenly re-execute the original insn with VEX.W set.
>>>>
>>>> Note that the memory access, if any, is correctly carried out as 32-bit
>>>> regardless of VEX.W.
>>> I don't understand why this is true.
>> This talks about the access to guest memory, which is op_bytes based.
>> And op_bytes determination handles VEX.W correctly afaics. I've added
>> "guest" near the start of the sentence for clarification.
> Ah - that makes things much clearer.
>
> I had neglected to consider the access to guest memory.
>
> In addition to a "guest" earlier, I'd suggest having a new paragraph at
> this point, and ...
>
>>> If we write out a VEX.W=1 form of BEXTR/etc and emulate while in 64bit
>>> mode, it will have an operand size of 64.
>>>
>>> I can believe that ...
>>>
>>>>  Internal state also isn't leaked, as the field the
>>>> memory value is read into (which is then wrongly accessed as a 64-bit
>>>> quantity when executing the stub) is pre-initialized to zero.
> ... this reading:
>
> "The emulator-local memory operand will be accessed as a 64-bit
> quantity, but it is pre-initialised to zero so no internal state an leak"
>
> or similar.

Oh, and Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 13:51:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 13:51:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835716.1251572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBDlk-0007MX-Hs; Wed, 13 Nov 2024 13:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835716.1251572; Wed, 13 Nov 2024 13: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 1tBDlk-0007MQ-FO; Wed, 13 Nov 2024 13:50:52 +0000
Received: by outflank-mailman (input) for mailman id 835716;
 Wed, 13 Nov 2024 13:50:51 +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 1tBDlj-0007MK-OX
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 13:50:51 +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 1tBDli-003Gm5-2n;
 Wed, 13 Nov 2024 13:50:51 +0000
Received: from [2a02:8012:3a1:0:2c06:4644:c8a3:2b5e]
 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 1tBDli-0034Az-2n;
 Wed, 13 Nov 2024 13:50: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>
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=IQAVUvrh2YQE0i+DiHpj2FU65Arjztm/S7Sd8vIbTcM=; b=yCm7dFfyang/J7x1qQsGXisd3f
	nN7svL9VwS78U3fxWYFIGLKBWByIKT3JCdLAYVz91E8Ja5YPcDbVrkfVcXYTtZE1APmj8u5Nib6WX
	j8UG6gD+IPCwPqQ6iJC0rRpZg716lgUPVv0EBS8QGpAVQAjdZojxSiGZaf6M7TLb7J28=;
Message-ID: <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
Date: Wed, 13 Nov 2024 13:50:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Luca Fancellu
 <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 06/11/2024 15:07, Michal Orzel wrote:
> 
> 
> On 06/11/2024 14:41, Luca Fancellu wrote:
>>
>>
>> There are some cases where the device tree exposes a memory range
>> in both /memreserve/ and reserved-memory node, in this case the
>> current code will stop Xen to boot since it will find that the
>> latter range is clashing with the already recorded /memreserve/
>> ranges.
>>
>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>> in the /memreserve/ part and even in this case this will prevent
>> Xen to boot since it will see that the module memory range that
>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>> range.
>>
>> When Xen populate the data structure that tracks the memory ranges,
>> it also adds a memory type described in 'enum membank_type', so
>> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
>> function to check for exact memory range match given a specific memory
>> type; allowing reserved-memory node ranges and boot modules to have an
>> exact match with ranges from /memreserve/.
>>
>> While there, set a type for the memory recorded during ACPI boot.
>>
>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>> ---
>> I tested this patch adding the same range in a /memreserve/ entry and
>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>> I've also tested that a configuration running static shared memory still works
>> fine.
>> ---
> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
> and the changes below look a bit too much for me, given that for boot modules we can only have
> /memreserve/ matching initrd.

How so? Is this an observation or part of a specification?

Cheers,


-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 13:57:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 13:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835724.1251582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBDre-00006N-5b; Wed, 13 Nov 2024 13:56:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835724.1251582; Wed, 13 Nov 2024 13:56: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 1tBDre-00006G-2j; Wed, 13 Nov 2024 13:56:58 +0000
Received: by outflank-mailman (input) for mailman id 835724;
 Wed, 13 Nov 2024 13:56: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBDrd-00005d-3W
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 13:56:57 +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 224c80f4-a1c7-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 14:56:51 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so959481366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 05:56:51 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0e2eb33sm882613966b.186.2024.11.13.05.56.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 05:56: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: 224c80f4-a1c7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIyNGM4MGY0LWExYzctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTA2MjExLjk0NzIyOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731506211; x=1732111011; 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=CkMksHRHUDS7fxvNUwEysWZTb/Obs7BtWJoYnIcAhlA=;
        b=q0nozoAuJppaBaBhE2WuJCqtbRy5IMRXTDltUYGBciV58SjpxpKSZGPcBsKWVoMO2n
         WOGINRUnqcT4Tev7BDPEzbi9cIL1Z0YfO5ATfs2bU4xCqIvSso4tfE7FBsrB1GEA2jcE
         cNIAqFR9/BfPXYH6nwDclAhOQcyvwSnyfn0YU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731506211; x=1732111011;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CkMksHRHUDS7fxvNUwEysWZTb/Obs7BtWJoYnIcAhlA=;
        b=q2vvBGJ7wWp9YlJAKpttyyd8Kvgtjt/L70x9kDH614u2RlQfrrtY7VSgpiA2A5e4uH
         czkDqKLKLi1B82VhURNnRDABWIACuvoeNBrKQKjzEimCjnzbBJGsFKeDdx28DZbFs03F
         UPCqan8F51Jz9GppqkzBebZF4+qTAojv7kJeNlpePgBxkXoVyz//GRS0Ps9t1J4OaUy+
         ldaveujw+N5zt1b0CPAsaAO64sH7uI6ImiFZ34awdNIw6RJeKKnxTtDWJWx1zrWwztjv
         9nDoERwr2hkx410/766tEnQ6SUt0sSr4DVESSikmA8K+OJx8RMVgNCWqCk2kkzPKMaBz
         P8AQ==
X-Forwarded-Encrypted: i=1; AJvYcCXyfU64uKro2sPhzy//ci9DmrMLOIE1pAcP0+Zy+kix6dS7ZYpeo6/6DeYV+BFx6RFT0OWkOS1ZwX8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2DxpRbmJ2FJVVl/WjP9ZhhatstsilBDMB8FRsKKaDZNYqAQTu
	7WENlpy3Sbgb6vjeMtgXq8nFgcS9SF2e6NRfkiPfGRDVqFZpYAz1IQtclO5xwsY=
X-Google-Smtp-Source: AGHT+IF/RDN2iia2bg+X8k9+T+nEH0Hb0Jjzbkp94qlwy3b64o/OKrduiOzk1ekgTECdlfuI00ybeA==
X-Received: by 2002:a17:907:d8e:b0:a99:c075:6592 with SMTP id a640c23a62f3a-aa1f813b80amr188492366b.56.1731506210663;
        Wed, 13 Nov 2024 05:56:50 -0800 (PST)
Message-ID: <c70cee00-d5d3-40cb-a1a3-e581f0db4d10@citrix.com>
Date: Wed, 13 Nov 2024 13:56:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: avoid double memory read for RORX
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: <655bd278-b3b4-4c7c-876c-ff5af335b4f1@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <655bd278-b3b4-4c7c-876c-ff5af335b4f1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/11/2024 11:21 am, Jan Beulich wrote:
> Originally only twobyte_table[0x3a] determined what part of generic
> operand fetching (near the top of x86_emulate()) comes into play. When
> ext0f3a_table[] was added, ->desc was updated to properly describe the
> ModR/M byte's function. With that generic source operand fetching came
> into play for RORX, rendering the explicit fetching in the respective
> case block redundant (and wrong at the very least when MMIO with side
> effects is accessed).
>
> While there also make a purely cosmetic / documentary adjustment to
> ext0f3a_table[]: RORX really is a 2-operand insn, MOV-like in that it
> only writes its destination register.
>
> Fixes: 9f7f5f6bc95b ("x86emul: add tables for 0f38 and 0f3a extension space")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

>
> --- a/xen/arch/x86/x86_emulate/decode.c
> +++ b/xen/arch/x86/x86_emulate/decode.c
> @@ -521,7 +521,7 @@ static const struct ext0f3a_table {
>      [0xce ... 0xcf] = { .simd_size = simd_packed_int, .d8s = d8s_vl },
>      [0xde] = { .simd_size = simd_other },
>      [0xdf] = { .simd_size = simd_packed_int, .two_op = 1 },
> -    [0xf0] = {},
> +    [0xf0] = { .two_op = 1 /* Mov */ },

Obviously not for this patch, but "Mov" is an especially poor
description for this behaviour.

DstSt (vs DstRMW) would be closer to our existing terminology, and
clearer IMO.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 14:01:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 14:01:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835735.1251593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBDvd-0001tg-PT; Wed, 13 Nov 2024 14:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835735.1251593; Wed, 13 Nov 2024 14: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 1tBDvd-0001tZ-MD; Wed, 13 Nov 2024 14:01:05 +0000
Received: by outflank-mailman (input) for mailman id 835735;
 Wed, 13 Nov 2024 14:01:04 +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 1tBDvc-0001tT-Ac
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 14:01:04 +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 1tBDvb-003H46-1j;
 Wed, 13 Nov 2024 14:01:03 +0000
Received: from [2a02:8012:3a1:0:2c06:4644:c8a3:2b5e]
 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 1tBDvb-00351H-1X;
 Wed, 13 Nov 2024 14:01: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=wd/Y+awqDcvOOp5XhmSlvSQU4bLSNwz/OAGtcupPKtg=; b=VkCrQ+/CLhiCFDtcqh//PElS9J
	fgWSe10I5vUFPCTkuDJnhHi4DwfY6uzupasqgJ6ZXF9hNbeZdcC2nXBOXX3vbUZTzGMBhHTBHaa4d
	DVtTO7ZeVA9XposHyLD4V/k7lgksMtR2kg/ZTkzouQitgSCnpbyhkq/VCsN7yUtnlxK8=;
Message-ID: <f0928350-0031-4f74-a61a-778e68a9f67b@xen.org>
Date: Wed, 13 Nov 2024 14:01:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Luca Fancellu <luca.fancellu@arm.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241106134132.2185492-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 06/11/2024 13:41, Luca Fancellu wrote:
> There are some cases where the device tree exposes a memory range
> in both /memreserve/ and reserved-memory node, in this case the
> current code will stop Xen to boot since it will find that the
> latter range is clashing with the already recorded /memreserve/
> ranges.
> 
> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
> in the /memreserve/ part and even in this case this will prevent
> Xen to boot since it will see that the module memory range that
> it is going to add in 'add_boot_module' clashes with a /memreserve/
> range.
> 
> When Xen populate the data structure that tracks the memory ranges,
> it also adds a memory type described in 'enum membank_type', so
> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
> function to check for exact memory range match given a specific memory
> type; allowing reserved-memory node ranges and boot modules to have an
> exact match with ranges from /memreserve/.
> 
> While there, set a type for the memory recorded during ACPI boot.

I am a bit confused which you mention only ACPI boot. Isn't the path 
also used when booting using Device-Tree?

> 
> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> I tested this patch adding the same range in a /memreserve/ entry and
> /reserved-memory node, and by letting u-boot pass a ramdisk.
> I've also tested that a configuration running static shared memory still works
> fine.
> ---
>   xen/arch/arm/efi/efi-boot.h       |  3 +-
>   xen/arch/arm/static-shmem.c       |  2 +-
>   xen/common/device-tree/bootfdt.c  |  9 +++++-
>   xen/common/device-tree/bootinfo.c | 48 ++++++++++++++++++++++++-------
>   xen/include/xen/bootfdt.h         |  9 +++++-
>   5 files changed, 57 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index 199f5260229d..d35c991c856f 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -167,13 +167,14 @@ static bool __init meminfo_add_bank(struct membanks *mem,
>       if ( mem->nr_banks >= mem->max_banks )
>           return false;
>   #ifdef CONFIG_ACPI
> -    if ( check_reserved_regions_overlap(start, size) )
> +    if ( check_reserved_regions_overlap(start, size, MEMBANK_NONE) )
>           return false;
>   #endif
>   
>       bank = &mem->bank[mem->nr_banks];
>       bank->start = start;
>       bank->size = size;
> +    bank->type = MEMBANK_DEFAULT;
>   
>       mem->nr_banks++;
>   
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index aa80756c3ca5..149ed4b0a5ba 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -696,7 +696,7 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
>           if (i < mem->max_banks)
>           {
>               if ( (paddr != INVALID_PADDR) &&
> -                 check_reserved_regions_overlap(paddr, size) )
> +                 check_reserved_regions_overlap(paddr, size, MEMBANK_NONE) )
>                   return -EINVAL;
>   
>               /* Static shared memory shall be reserved from any other use. */
> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
> index 927f59c64b0d..fb3a6ab95a22 100644
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -176,8 +176,15 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
>       for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
>       {
>           device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
> +        /*
> +         * Some valid device trees, such as those generated by OpenPOWER
> +         * skiboot firmware, expose all reserved memory regions in the
> +         * FDT memory reservation block AND in the reserved-memory node which
> +         * has already been parsed. Thus, any matching overlaps in the
> +         * reserved_mem banks should be ignored.
> +         */
>           if ( mem == bootinfo_get_reserved_mem() &&
> -             check_reserved_regions_overlap(start, size) )
> +             check_reserved_regions_overlap(start, size, MEMBANK_FDT_RESVMEM) )
>               return -EINVAL;
>           /* Some DT may describe empty bank, ignore them */
>           if ( !size )
> diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
> index f2e6a1145b7c..05038075e835 100644
> --- a/xen/common/device-tree/bootinfo.c
> +++ b/xen/common/device-tree/bootinfo.c
> @@ -99,7 +99,8 @@ static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
>    */
>   static bool __init meminfo_overlap_check(const struct membanks *mem,
>                                            paddr_t region_start,
> -                                         paddr_t region_size)
> +                                         paddr_t region_size,
> +                                         enum membank_type allow_match_type)

Looking at the callers, you only seem to pass MEMBANK_FDT_RESVMEM or 
MEMBANK_NONE. So I wonder whether it actually make sense to introduce 
MEMBANK_NONE. Wouldn't it be better to have a boolean indicating whether 
we are looking for FDT_RESVMEM?

>   {
>       paddr_t bank_start = INVALID_PADDR, bank_end = 0;
>       paddr_t region_end = region_start + region_size;
> @@ -113,12 +114,16 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
>           if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
>                region_start >= bank_end )
>               continue;
> -        else
> -        {
> -            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
> -                   region_start, region_end, i, bank_start, bank_end);
> -            return true;
> -        }
> +
> +        if ( (allow_match_type != MEMBANK_NONE) &&
> +             (region_start == bank_start) && (region_end == bank_end) &&

Why is this only an exact match?

> +             (allow_match_type == mem->bank[i].type) )
> +            continue;
> +
> +        printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
> +                region_start, region_end, i, bank_start, bank_end);
> +        return true;
> +
>       }
>   
>       return false;
> @@ -169,9 +174,14 @@ void __init fw_unreserved_regions(paddr_t s, paddr_t e,
>    * with the existing reserved memory regions defined in bootinfo.
>    * Return true if the input physical address range is overlapping with any
>    * existing reserved memory regions, otherwise false.
> + * The 'allow_match_type' parameter can be used to allow exact match of a
> + * region with another memory region already recorded, but it needs to be used
> + * only on memory regions that allows a type (reserved_mem, acpi). For all the
> + * other cases, passing 'MEMBANK_NONE' will disable the exact match.
>    */
>   bool __init check_reserved_regions_overlap(paddr_t region_start,
> -                                           paddr_t region_size)
> +                                           paddr_t region_size,
> +                                           enum membank_type allow_match_type)
>   {
>       const struct membanks *mem_banks[] = {
>           bootinfo_get_reserved_mem(),
> @@ -190,8 +200,21 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
>        * shared memory banks (when static shared memory feature is enabled)
>        */
>       for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
> -        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
> +    {
> +        enum membank_type type = allow_match_type;
> +
> +#ifdef CONFIG_STATIC_SHM
> +        /*
> +         * Static shared memory banks don't have a type, so for them disable
> +         * the exact match check.
> +         */

This feels a bit of a hack. Why can't we had a default type like you did 
in meminfo_add_bank()?

> +        if (mem_banks[i] == bootinfo_get_shmem())
> +            type = MEMBANK_NONE;
> +#endif
> +        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size,
> +                                   type) )
>               return true;
> +    }
>   
>       /* Check if input region is overlapping with bootmodules */
>       if ( bootmodules_overlap_check(&bootinfo.modules,
> @@ -216,7 +239,12 @@ struct bootmodule __init *add_boot_module(bootmodule_kind kind,
>           return NULL;
>       }
>   
> -    if ( check_reserved_regions_overlap(start, size) )
> +    /*
> +     * u-boot adds boot module such as ramdisk to the /memreserve/, since these
> +     * ranges are saved in reserved_mem at this stage, allow an eventual exact
> +     * match with MEMBANK_FDT_RESVMEM banks.
> +     */
> +    if ( check_reserved_regions_overlap(start, size, MEMBANK_FDT_RESVMEM) )
>           return NULL;
>   
>       for ( i = 0 ; i < mods->nr_mods ; i++ )
> diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
> index 16fa05f38f38..8f8a7ad882a4 100644
> --- a/xen/include/xen/bootfdt.h
> +++ b/xen/include/xen/bootfdt.h
> @@ -23,6 +23,12 @@ typedef enum {
>   }  bootmodule_kind;
>   
>   enum membank_type {
> +    /*
> +     * The MEMBANK_NONE type is a special placeholder that should not be applied
> +     * to a memory bank, it is used as a special value in some function in order
> +     * to disable some feature.
> +     */
> +    MEMBANK_NONE = -1,
>       /*
>        * The MEMBANK_DEFAULT type refers to either reserved memory for the
>        * device/firmware (when the bank is in 'reserved_mem') or any RAM (when
> @@ -158,7 +164,8 @@ struct bootinfo {
>   extern struct bootinfo bootinfo;
>   
>   bool check_reserved_regions_overlap(paddr_t region_start,
> -                                    paddr_t region_size);
> +                                    paddr_t region_size,
> +                                    enum membank_type allow_match_type);
>   
>   struct bootmodule *add_boot_module(bootmodule_kind kind,
>                                      paddr_t start, paddr_t size, bool domU);

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 14:19:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 14:19:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835749.1251602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBEDZ-0004cA-2B; Wed, 13 Nov 2024 14:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835749.1251602; Wed, 13 Nov 2024 14:19: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 1tBEDY-0004c3-Vt; Wed, 13 Nov 2024 14:19:36 +0000
Received: by outflank-mailman (input) for mailman id 835749;
 Wed, 13 Nov 2024 14:19: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=IlJA=SI=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tBEDX-0004bs-8J
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 14:19:35 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20621.outbound.protection.outlook.com
 [2a01:111:f403:2406::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4861fb43-a1ca-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 15:19:25 +0100 (CET)
Received: from DS7PR05CA0032.namprd05.prod.outlook.com (2603:10b6:8:2f::31) by
 MW5PR12MB5622.namprd12.prod.outlook.com (2603:10b6:303:198::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Wed, 13 Nov
 2024 14:19:20 +0000
Received: from CY4PEPF0000EE33.namprd05.prod.outlook.com
 (2603:10b6:8:2f:cafe::d0) by DS7PR05CA0032.outlook.office365.com
 (2603:10b6:8:2f::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Wed, 13 Nov 2024 14:19:19 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EE33.mail.protection.outlook.com (10.167.242.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Wed, 13 Nov 2024 14:19:19 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 13 Nov
 2024 08:19:18 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 13 Nov
 2024 08:19:18 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 13 Nov 2024 08:19: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: 4861fb43-a1ca-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNjo6NjIxIiwiaGVsbyI6Ik5BTTAyLVNOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ4NjFmYjQzLWExY2EtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTA3NTY1LjQyODE2Niwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kjysmUE9YCGNONQ51p2RiSM9sgPVpjNySdmz+mcqCBp5mA5MF4nvU5LaeFMo5jK3bDMk20L3hpPQlRxTmBjzAWK1guc3chLW4vAY50oWpfKu4BzcddnaAdTV+fdRzG4hveN4ZReoulFwSmlNEJ3jA1isiHexOCf+wv9XGPSa3s0hqOMerSB26ZKZwJkJBPn5Sv4NdpZg3fa2WqhT/JJE1LGzeEXSvRqpmWd8hSrlu6Y2lNAmPqj6d+slnSS/ZAGxW+zoZfoBevm7uQIjZwC8eSOCOhMgLs5zIGdH9DYCC1298JnRReaRz7iUrJV8j/f+KLGLXGNL1kOnKHfZvUqwrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PJKqeXrAls+ee3wBlGOtBpvFHik+dM3ypnTBD2/+KGM=;
 b=Nbk0qxqvRLYPdpDuZKPfYVek2dj2hVihTDC5Q90m+m11ZzA1k6jlo4dTxuBNP+DnprbQdbBLlYbfOCvAIqbJ/0jkZ4JBxl47WdPhJeDPwHtatKSJZ43pz2C43bGCHDHjiIyFauuTpyfR5PLreKSZO8iiRr24/IDb51nzW9kDb5Xu7M9qZAdpyQV/Ff52IJkpiqvAaGJYcLCrq7a4PmlEJqteZlBM2cVuz1THVEFDeF2hjrIHFkdA+E/oSamJI4/amqwwes1gBbcmlSfvWuuH9goj1HQ6pKDzAr58uJTQMm2vHYHt7P/KScwGZAj6OQaa2BPZAEzgQ4+26LGODM8PvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=PJKqeXrAls+ee3wBlGOtBpvFHik+dM3ypnTBD2/+KGM=;
 b=Ic0dXlnQumMF0FrjEwHwh115LOeZrGRFVoXO+YXpCXPC0Yxt55Y40WUToNRQ64Ows4EZOq77FGW+rWN+yHIOqDCfQWoYQzG6PkWMTWeIqBv2r+vKO6RUsv3BTfA0mLSlYQ/hwqtkOj21Tj+/vE11xzK0/hZAUHCHqXKbPJS2d3Y=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
Date: Wed, 13 Nov 2024 15:19:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Julien Grall <julien@xen.org>, Luca Fancellu <luca.fancellu@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE33:EE_|MW5PR12MB5622:EE_
X-MS-Office365-Filtering-Correlation-Id: 41bc6f8a-ccaf-4926-18d2-08dd03ee299f
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?cktCcjkyZm84NmhmYnNVVW1mMzBvVUtzMkpSMTBZNk1xUUJaVUhpUk1PTS90?=
 =?utf-8?B?TFVwZzMwNG55V3MrUUFERmdPeVZ5a1E1QkxWN296SlF5a2pvTk82UzNFN0Nj?=
 =?utf-8?B?c2tudU1WM0dJS1BkbTVKM3Q0U2F5NlpVOWIzTnVjWDBkSC9DbGMvdDFmSnBm?=
 =?utf-8?B?NWZ6NGN2OXpSWVBYVlBzNVBOV01BazNseDhGaGVMTTRvd1liNTkyUmxXYVkz?=
 =?utf-8?B?UExTbG12SGIzSVJlZWE3amo0WGlvck5PL1k5MjVZUVFZT29vUGE4WmdyYjh1?=
 =?utf-8?B?M1l6UlQwRTNEY3ZBby9rWmxKODQ3S1FlMnIxZVppcStHeWQ4UlpETUFXSThz?=
 =?utf-8?B?RSt4UHUvSEVmNE1nRzV5NThsemszZmVPY3NNNWhIL01qN29mWTIweHFzSkZX?=
 =?utf-8?B?ZWphUUdvNkhLTEk4NWtIQmdGMEhFV3ZxRS8xeTdJQmplWUp3Z0N1Rmt4UEZB?=
 =?utf-8?B?MHk3VVVlUUpuUmZrdWNJSHUyV2Jtc2hxS0FDQStGWDNobFROei9RVTNLOVBp?=
 =?utf-8?B?VTNUZ1k4YTdmOGtLRlZjMnpWdEt4djhtSXkzSll2NGlvTVdLaVJ0UnBGUUJI?=
 =?utf-8?B?R1pqSVNWQ01zVktQMk5YSWk1YXBNdVJETi9hZTFmWjVCYnlSc3NmNlJOaWhk?=
 =?utf-8?B?MjhHTVduM2RsbXFTdDFGVHRuMURUTFZRWVhQamkyKzF3SkVsc2R2cXhwS0V1?=
 =?utf-8?B?ZS9JZkhMRTMwV1BGclJaSm8vN21Pd0doVm5OWGJxM2doNFZPdGlld2V2eUtR?=
 =?utf-8?B?QW1iZGc5dEtJZEtPTWc0K3RsWG9WVndxWDMvVHg3dWlNbC9ZTnhWbTVYSjk0?=
 =?utf-8?B?TnBSeC80K2xaR0hRdnE1elkrQzhjT1JueFViUjROUE5jMEJ4blhQOGhCcUdp?=
 =?utf-8?B?alhEKzY4MW5UdlNqRjNiUkhiZ3ZDdS8rWXV5dnZUelBNa3ZpemRxWjJDQytB?=
 =?utf-8?B?TzZxREF5Q2dMZGpmaW9FS3R2b1FJRjRnRkgwZlBmVGZhN3JBSmtyM3orVEZC?=
 =?utf-8?B?Tm03ekl5NWk3b3FyZUo5R0d2c1JSY3grMkRnRlRnMEpoWmgyM3dDbG1JOTF0?=
 =?utf-8?B?SERzS09XQTNtYlVUaEJrZVdtQmI3TkYwOVhYN3hvYzlQaS9nTzB4OWl0MTU3?=
 =?utf-8?B?WXJSK1V5cDhSVE5IUHp6a3pwa1NUZVRucHNONmlaQXhuNzRxTDhoU1JQdFlp?=
 =?utf-8?B?UlQxbkZBSm8xRWROd0pPeEp6Y0JhckRNOWU2OVZPY3dXTm5FZGx6S3djenNF?=
 =?utf-8?B?ZzNhdkdES1A0SHdpdlBIV1Rra2t3Q0pCUDZyNFI0ckdwS2FOZzBUM2g0cm4r?=
 =?utf-8?B?QVF2dVozL2tuenhpckkyVmREdU4rOTd5WmVLV2ZpeWFrdEJadU9EYXVkeHEx?=
 =?utf-8?B?czFJVDNVdGxXOHJVaE9EZExRWkYvcEFYTGpxY243Z1AxT1JCbVV6QVVNRXdP?=
 =?utf-8?B?T2orM1kvME1CZElLc0JTYktPVURqK1pmRk1WUjVnaTFiNGxJVXN1Uk5BMzNj?=
 =?utf-8?B?dHVPZ3BRWVBTS0JEclFtN21SbitFMVRRTzlxcmU5UEFMYXNIWTZLTFljYlVL?=
 =?utf-8?B?aENETjdlZnByVUZ6NzBBL3dIQmhLRlM5TXNDUzVoL3U5WUtYVmxWNW9XVXN3?=
 =?utf-8?B?OVE1LzVmdG9uRHZXdmlnMXFmWVpCczJsd2JrcER3Kzc3Q2lBUWZtRGhYSlFm?=
 =?utf-8?B?SXF2bXplUE5Vc3RObVFXejc4OW5hODU3UE9aMFc1cWFobzlidzkrL3JJWG9n?=
 =?utf-8?B?NWFPSENjVjk5VEtDSkxPSkN2OVpvYXJWMFZZMURYUkthRDlvUUd5enI0eHNI?=
 =?utf-8?B?NTZSdW5zRXA2bUtDaDdKeGQ3Q1VKTi9INloyRTZnaFNpZDhWQXM1V1QydFJo?=
 =?utf-8?B?MVI4UGM3Y014emYrY0pRS2UveW9ZYUNPR3A1VkFnTDdMMUE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 13 Nov 2024 14:19:19.0152
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 41bc6f8a-ccaf-4926-18d2-08dd03ee299f
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE33.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5622



On 13/11/2024 14:50, Julien Grall wrote:
> 
> 
> Hi Michal,
> 
> On 06/11/2024 15:07, Michal Orzel wrote:
>>
>>
>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>
>>>
>>> There are some cases where the device tree exposes a memory range
>>> in both /memreserve/ and reserved-memory node, in this case the
>>> current code will stop Xen to boot since it will find that the
>>> latter range is clashing with the already recorded /memreserve/
>>> ranges.
>>>
>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>> in the /memreserve/ part and even in this case this will prevent
>>> Xen to boot since it will see that the module memory range that
>>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>>> range.
>>>
>>> When Xen populate the data structure that tracks the memory ranges,
>>> it also adds a memory type described in 'enum membank_type', so
>>> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
>>> function to check for exact memory range match given a specific memory
>>> type; allowing reserved-memory node ranges and boot modules to have an
>>> exact match with ranges from /memreserve/.
>>>
>>> While there, set a type for the memory recorded during ACPI boot.
>>>
>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>> I tested this patch adding the same range in a /memreserve/ entry and
>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>> I've also tested that a configuration running static shared memory still works
>>> fine.
>>> ---
>> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
>> and the changes below look a bit too much for me, given that for boot modules we can only have
>> /memreserve/ matching initrd.
> 
> How so? Is this an observation or part of a specification?
Not sure what specification you would want to see. It's all part of U-Boot and Linux behavior that is not documented (except for code comments).
My statement is based on the U-Boot and Linux behavior. U-Boot part only present for initrd:
https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249

For things that Xen can be interested in, only region for ramdisk for dom0 can match the /memreserve/ region.
Providing a generic solution (like Luca did) would want providing an example of sth else that can match which I'm not aware of.

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 14:34:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 14:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835757.1251613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBERj-0007zP-8l; Wed, 13 Nov 2024 14:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835757.1251613; Wed, 13 Nov 2024 14:34: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 1tBERj-0007zI-5x; Wed, 13 Nov 2024 14:34:15 +0000
Received: by outflank-mailman (input) for mailman id 835757;
 Wed, 13 Nov 2024 14:34: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=DKyd=SI=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBERi-0007zC-53
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 14:34:14 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20616.outbound.protection.outlook.com
 [2a01:111:f403:260c::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56b95f65-a1cc-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 15:34:07 +0100 (CET)
Received: from DU7P251CA0002.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:551::26)
 by AS4PR08MB7856.eurprd08.prod.outlook.com (2603:10a6:20b:51f::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Wed, 13 Nov
 2024 14:34:04 +0000
Received: from DB5PEPF00014B8C.eurprd02.prod.outlook.com
 (2603:10a6:10:551:cafe::b1) by DU7P251CA0002.outlook.office365.com
 (2603:10a6:10:551::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29 via Frontend
 Transport; Wed, 13 Nov 2024 14:34:04 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) 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.8158.14
 via Frontend Transport; Wed, 13 Nov 2024 14:34:03 +0000
Received: ("Tessian outbound e21d07e234f4:v490");
 Wed, 13 Nov 2024 14:34:03 +0000
Received: from L1ecb04b1ffcb.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 90A0B982-C2E3-4579-B024-6EDA73FDB8A1.1; 
 Wed, 13 Nov 2024 14:33:56 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L1ecb04b1ffcb.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 Nov 2024 14:33:56 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DU0PR08MB7541.eurprd08.prod.outlook.com (2603:10a6:10:312::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29; Wed, 13 Nov
 2024 14:33:53 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.013; Wed, 13 Nov 2024
 14: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: 56b95f65-a1cc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwYzo6NjE2IiwiaGVsbyI6IkVVUjAzLVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU2Yjk1ZjY1LWExY2MtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTA4NDQ3LjYxOTY5Mywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=uezLU80t3/9tNXR6q7nyNCue99w4bBTM728eT/+iw6Kh/6ADhmmQ3TmJ3WJL5uAb6rULi+Qi75t6hs5YT9IGXMu79XMBbhtL7ZScHPUa6zXRRf/1rBLQOL3G2bcWOcW66HN7Rj0CvUIWwnNdVzzbaKzj39sFHNf6lgsX+fZCE4SaBcRHyiSINxoi/j/fkQc3lY6PseGUqkhMZGRsAreIKt+x75QRhqFu8T0ZboRIZmRz26u06kmqD7xkt70LFCgr5dJA0l/e03236GS1hXXUUS2SEFWqHH50DYDKev8sydNwiGUdkBZQCvXL6s8OBZDNkbWjff5FPzIL8QfsJP9fhA==
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=p59MGlsfjfPY47MfXr6614MlMjhJ6jAXW3whboewMcc=;
 b=J+Tefuox3oNmrphR3Q+T5wvzwhcHyTN4upjWVbjDnTf/QLRKyGoWGaBT67PfgWbBE9r9JxOv33uuZ0WKHkBJOIQrpcRNV1XUdMRW00PtTmT3995if82N6QzzU4LOKa8c0CBG5Jx/soJFU8hjlgIDNKGFPTLA9nmgqXYWwKOEyn11LXfferuZFUQeNaZcUJF6JF+D15JiAnGWXB+hOqGbcNpfaTwrtpeQY0wR9In3C/cKScwRJPfx7G9ufUpl7qIH9kVDn5mVKgQifQ2sUhCnPcbD2D5ltonQy4IcWnSBqk5NaYwHbquEeDTWs4/4SZL3kflwwZdvZYnVXfJYCfAdEw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=p59MGlsfjfPY47MfXr6614MlMjhJ6jAXW3whboewMcc=;
 b=E2lEJ4lCw7e2aLPYzsJXlj9SbTCEV0YEo9WGVeVYysA0r6YlkF2CsQ/MHFSNCU5yFxQF9qX1k8Vfevu4M5ri4Labzj+KcivCP/8Pz9AjljZgOBfmWjJxwaXs4g/fxrM8QBGQ8BcoC4BDnzlSkXW1sfSfG4BrsYZR21GlaKMLH4o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: d5f38b5904aab99d
X-TessianGatewayMetadata: C/34q7OwCzkZ6JxpkQ8Scj/yvt4BKPTKQfNZuUf5Kd8GDcOUYmv33vhAEEEhCZ18tuMTZek6ZO9H7WQAi9b1cgBJLF/1jE6Cu5KSTaOUoAHQ0MWSfwWTMhd7oYTRiEUu6EEO9SIpKzXXx5oDumhTTj60OPjVqR8/KVXHVf3q+OM=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V6TOAI0oZNCZAD67WKpMoP45FsUx8CMIAar6/OxUTAVTsPLSIDKYgEXS/xLxPafdajs9VAekO3ZkEJa7c3hc3aGE1jefR6rg3x3N/PpRzI5/+YW1IAmFVZvemFKrQedRwrDyicJWdy2NlPeiyye1Nc2NnOcIFCRNl1OW+WweGVlr73HNVno1fBkqFrzOGTZmq72Ohys72ExUZ4zKNV4WtlALdN92sfZ9+2NHyjKQiL8nhyvyJ3nmEJBzwXn8w2kk6TMvYT8DPYTwl0R6yD9evdiPb2C4WkQf6a1juK38nNt3/DLPR2BIT8aW0ZfSFn8m7tcBAriIHZDGgTn2dNFhLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p59MGlsfjfPY47MfXr6614MlMjhJ6jAXW3whboewMcc=;
 b=xM6u50rlP2v3VcJtCyVgqs24fcUXzjpU4J9CDhvsMI3tzCa3rwAY1ehRRDKY9PqaYz3d1kIwITkSZvypaeRcLdOYXLSQGk82vx8I+RGI50qsgZXmIL6RCMs7FH/KNpYT3wzXst80G10K4aMkjlrlbi93B3Gk3ZfHQKG4sJjzS/S3IrSoBx78PVVEil+A3RfMCJu4OVWpkNh4OacKzwA19MO/T4ys98C7FALmqi7bTSXDqJ/mgyKNO//EKlSufEK1OanJ2gmiQSQxH9Qck7Te1e2EBFo6ZjawQztFOywxWH/46uMtlqY0a3PLt7Pv4sUyHBftT2Na+1JqikoioUFDoQ==
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=p59MGlsfjfPY47MfXr6614MlMjhJ6jAXW3whboewMcc=;
 b=E2lEJ4lCw7e2aLPYzsJXlj9SbTCEV0YEo9WGVeVYysA0r6YlkF2CsQ/MHFSNCU5yFxQF9qX1k8Vfevu4M5ri4Labzj+KcivCP/8Pz9AjljZgOBfmWjJxwaXs4g/fxrM8QBGQ8BcoC4BDnzlSkXW1sfSfG4BrsYZR21GlaKMLH4o=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: "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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Thread-Topic: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Thread-Index: AQHbNdR4b2V2aTQ740yGxnKF6IdbXLK1RlIA
Date: Wed, 13 Nov 2024 14:33:52 +0000
Message-ID: <FA425FB4-7B3D-4FF0-9C94-2E5D8ECA1502@arm.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <f0928350-0031-4f74-a61a-778e68a9f67b@xen.org>
In-Reply-To: <f0928350-0031-4f74-a61a-778e68a9f67b@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DU0PR08MB7541:EE_|DB5PEPF00014B8C:EE_|AS4PR08MB7856:EE_
X-MS-Office365-Filtering-Correlation-Id: 2bfdb526-601d-4a9c-ba79-08dd03f038eb
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|1800799024|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?N0VSRERUcjlldmVDOGFiWDRVK3FXNDFOSXRaSm9leC9BRUpLRlZiZHM5dDEz?=
 =?utf-8?B?OE92eHhSMnJzditpOTFtc1FRaEEyeVBPNWxIWDFuVC9rMVQ4NXQ0b2pNSFZ6?=
 =?utf-8?B?czNYd29QOGxzVGYwWHhBUVc3NUlWRk5qRHh5TC9pSk52Uk5DQjRWZGR1bVZE?=
 =?utf-8?B?cHhDNCsrem0xSWpROUJTL29RMkpTMXd0eEhVcXdadFJrL0pLOVR6NVZnNC8x?=
 =?utf-8?B?SkRhYTVHQkxRZmxBVlkxRWU1QWh3Qmd2ZWRMNTcxSUZUcWN5Zmo5UlFhcnV5?=
 =?utf-8?B?NVJnZ085dE5CZ21kVGFjMjh0M05sbXlUZ0hhU3BBWUppSmk2R296WXovN25o?=
 =?utf-8?B?RjRQM0pSMGc1QTBjMGRtWDAweVR0VktyUjF0NHJaNWoxS29aOFVYbGZ4Wmty?=
 =?utf-8?B?MllySGN5Sk5ybi9QMlJhZi94Zm8ycEc3UkZ1YmpLSWVJUWRMS2taYUg2cEoz?=
 =?utf-8?B?VlZHd1J3c3pwTS9ibldwSmJvOEJZVGhnKzNJbGJHQXZpa0RaUmkyOW8yQnlZ?=
 =?utf-8?B?b0ZaNDEwM2x3ek9odkFWTTE5NnRjOXZGRjgzNzdYVElUMUExRXBDYmNuODEx?=
 =?utf-8?B?UkpLaEoyc3pCejFjR3hINTZodXdjMk5ZRlJhTGtNZ1B6dnY4d0RoOWR1c1Iv?=
 =?utf-8?B?UXd1R2g0a3pncTd3K1hQdS9abUxBK0xwd29OU3JZTnRFbmVjTzRtTWl3eGhO?=
 =?utf-8?B?V1ZOR0lEWFk5emt2dU9NdjdTcytMSEU1U25LSXk1SlV0R0pyTjFDTjhFQ0V4?=
 =?utf-8?B?aFlVa0plamFmUE1Zb1NycCtmaWVTTGR5bmIxaStmdDFGTEVMbWtmbWFRRUhY?=
 =?utf-8?B?RnFZUXE3SVo3Z1kwMCtyS0xZN2hRU3JlRWU5UDZ4Rkp0a1F2MHlrcEpWb1Az?=
 =?utf-8?B?NCtIeEg1VEtmUkhRSWdQMkRPS25vbWlqdkJIbkRHMlRnMWowd2FUZzlHY2lJ?=
 =?utf-8?B?bmd5V3hybGhHV1JSdldEeFVDZXY1K1JyVEN1TG5yRTFjdlVvL2hxcU10K0tu?=
 =?utf-8?B?OVhqLzZQSEF2MU85V21MZ1ErejRQeEUxREh3MUFIMk9ONyt1d0FjQmZZZGo2?=
 =?utf-8?B?c3RrL0Rta3g0bHQ1YktzeThMYjhvcDlJbTJTQmdFOWZSMGp0dG1jL05YaHVr?=
 =?utf-8?B?RDR4WEsybE95VW1ZUGFTM2hTU29ycXJGbmE5bWJKT3hUVVNPNG9FZ2xqSTRF?=
 =?utf-8?B?UUVJdW53cFdIUGFqTGQydFM0SllFT2IzYStDYlFSbmk0OXhqNVJwejhFK2gv?=
 =?utf-8?B?UjNkVEVpOXJBTStxL2pPbGN1dkdIR0xFdENGVU9LcUN0cHJVZUxqWEV3eFBz?=
 =?utf-8?B?UjNEQW9CaklLR3RxWVhCa1A2Z3FhbURVMGxaQjNRcGlic3NmQnUwd1RubVBx?=
 =?utf-8?B?aUtaRyt3bnpSdnRCVEhIKzBhZThuOGNPS213K2k5dXUzNElwYVZlbWhrbnky?=
 =?utf-8?B?RW10d0lkWUZPaTZWdmhMSjhIZlVvVC9Va0FQSmhERTQvSXh1dUpuWjRKekhp?=
 =?utf-8?B?bVkxUXp4N3VjRGxzS1BlQ3Jtd3JaNHNwdmVvVVJ3a3NUSFp5NC9lV2Q1aENQ?=
 =?utf-8?B?aUJmUGlYREFtN1RYSUtoY0I1K0FDM0dkN0xFcm1ETkxiaTFFZnZOV21uUDdN?=
 =?utf-8?B?dVpKOFgxWmozQjJybnVNVVd3V2VnVGJHVVRFeUUxR0ZSSzIvOWsydXdEMCtr?=
 =?utf-8?B?NlQ2NTFvVzZkaDJ0b1RyckVsUm9EZGR1dlY3dDZPVVhXdUoyWEZjTVZNdGxk?=
 =?utf-8?B?cnNzbHBYNkF0RGJnMlBqbm1KcXUxc0Rkckd0K2JhY1VmUUJOYWVMeHJjWjFj?=
 =?utf-8?Q?TiVK0aqgcCMkJrADItAY96FKilx2Z3m15aaFg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <AA11FB70E105224D9BB7AE465AC92124@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7541
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b8cc5f78-51de-4aed-e1f9-08dd03f03266
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|14060799003|1800799024|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Qlo2bE54R2dJNkZrZGJlV1gyUFcrTnNlbGFiazdFWnFpaktJd082S1JKakw3?=
 =?utf-8?B?TDliRDJ1Q3lBRnhkQ1JqQVBFWHVLcWtCK1U3S3BVWHcwZk04NHBDdXFsZlln?=
 =?utf-8?B?eC9yN0JiOU90ZGNrMGllRVdrQ29aMkxRZUhsNmhlR2Y3NnVIaERPNmRQNVVH?=
 =?utf-8?B?TjNuRXZQTGdhS1FqL0x4cjVqc3FnbnNtbTU3cnQ4TGV2OE5RT0daSm0yVzU4?=
 =?utf-8?B?VldsNzM5UDdBWmJ6WkFuNDltbzYwZ2NHQmduMzd3VkN5cmYydDJ2NVBlZXFm?=
 =?utf-8?B?cEpBemZhclIzZmRoVkVFbDFHR3lCV1E0MDRUc250S1RFUFZaY2hYejBGY25u?=
 =?utf-8?B?WklHaXZpMzJBYTJRVFM4OFo5bFlTd3BDR05IaWxpZ0JNT3o4a0dCMXlMdW1n?=
 =?utf-8?B?RTRieTBueU9MZkVkeDhya1VMWlpJVHB4U3k3b3VKdmxtZFhwZzFpTG9SWXYw?=
 =?utf-8?B?UE5pSjVqWlFTa3lsNDRTcU1NaW50R3JWMU54c3NUeExobGN1U2pWRERIUWZF?=
 =?utf-8?B?R2g1VW1wVEpOTi8vRi92VWx5SDFKV3V2THhhVVU4TUtvYzBnMVFPMXpBTHNF?=
 =?utf-8?B?WlVBN2RudU5UcE1EcDYvVXhDSzBOZU5RRDJqRzV3SXJSQU5zT1hodnhtT1RL?=
 =?utf-8?B?dmNWOFlXTkt2c3p5M25Ea2N4UVVLbEdYOWhzbHdJMTEyL0FCSkVsR1hRMmI2?=
 =?utf-8?B?dGF3a1liRkExMW8vMHJrUnNnNlRGLy9uVTFWQzJEdzJuSzY2ZkVMVFZmMFFo?=
 =?utf-8?B?ZHNjcVMveHp2emdiKzI0OVdlZUNrdDFaK0lnbDF0bk9jV3F2WXhCUmF3MTlW?=
 =?utf-8?B?ZUdOaE85Vzkyc0V2TFA0R0pILzdxSWtwTEpOWlRObkd2QmVOU0F4VHlVNW1F?=
 =?utf-8?B?UDV3ME1KRERaSU5SNE9pOEh4L2FjYmZ2dlhCUWNlalMyRUxPbGNONW82ZG1T?=
 =?utf-8?B?YVFrSkh2eTB4K1ZWeVdDaSt6S2xvRGdpaVMvUVUwemV4ZUxkdmZNQVIzdHhh?=
 =?utf-8?B?d1N3VkNEbnp5VTdjeHhac2RXa25qVHlLYUtNb3BVSmxLVkRrYVNsWW0wNk5S?=
 =?utf-8?B?dUw3bTF3R0ZtREFLcGt5dlFURE9kaEpaVk5LWjVpeXlwc1RsTkU1TDQ4M0Mr?=
 =?utf-8?B?NVBtN3hVUkdrU0E4RU5JbDFuTml1QUswaSs4ZlJuQjBNVkl2VDFrbnptQ1k0?=
 =?utf-8?B?WGdRbDhnWTJFWHA4R3ZzL0RTcmZteVhhVWQ0VjBITVR5VXJtQ1doRndOVEsx?=
 =?utf-8?B?SEh5QXRaNmRydWVFRGNuNmIxaDdSdHNqMDJQOFF3RXkyUDJOS0p4RktWRWdk?=
 =?utf-8?B?R3hVRjBHR0pOVDQ2V3RJYTNDV2JUL2IzQjBBUExiT3lscnNCWnJxMTNKWGx6?=
 =?utf-8?B?M3hwc0dvT3RYU3BDemhSR3IySVV2U1Q2UGJldE1WNkh2WFRjRmZDcFl3cE5K?=
 =?utf-8?B?NDNYZ0ZsOGZDVkdZZy92K3FxS0g3dklabWF2c0FlK3hTZ1J5eHFWVlZKcTZZ?=
 =?utf-8?B?b2NtZXNiUkY1QzZZd1lxZ1hBSVBuMXB1RUl1dk1vL04xN0dzaXgrU3lBdis5?=
 =?utf-8?B?cTlFWHFPWk9KUFh0UER2Sk5LOHFHcGZwK1ZxYVdCZURSb2pwV1hhb1pnWEM4?=
 =?utf-8?B?dzdyM0hhV0tySERwZFlKTTNyZWJSQTVPU1JFdENHNHdqNWg1MFNRSzREQ25Y?=
 =?utf-8?B?UmIxN01sSStEU2F6dCtLQ0xuWE8vbkFjVzRnZTNYbFByL1hDVHZCYUh0V1JU?=
 =?utf-8?B?TzlqN2xXeE9TYVZKZ3BPQW5WMHA2V3dlb3Uzb1FvMDJWRjZUMVFRTnFEdUQy?=
 =?utf-8?B?ZHA5N3RpZUR1Mk51bmNUWUtoZVJ5RDRXYnFsRjRMMS9XMWdrUURsODY1R0dS?=
 =?utf-8?B?MVFPZ3BPZllDTG9jZlFSdnFHYTlxRk1KODNjUzNMcUJtUGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(14060799003)(1800799024)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2024 14:34:03.8016
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2bfdb526-601d-4a9c-ba79-08dd03f038eb
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.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: AS4PR08MB7856

SGkgSnVsaWVuLA0KDQo+IE9uIDEzIE5vdiAyMDI0LCBhdCAxNDowMSwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMDYvMTEvMjAy
NCAxMzo0MSwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IFRoZXJlIGFyZSBzb21lIGNhc2VzIHdo
ZXJlIHRoZSBkZXZpY2UgdHJlZSBleHBvc2VzIGEgbWVtb3J5IHJhbmdlDQo+PiBpbiBib3RoIC9t
ZW1yZXNlcnZlLyBhbmQgcmVzZXJ2ZWQtbWVtb3J5IG5vZGUsIGluIHRoaXMgY2FzZSB0aGUNCj4+
IGN1cnJlbnQgY29kZSB3aWxsIHN0b3AgWGVuIHRvIGJvb3Qgc2luY2UgaXQgd2lsbCBmaW5kIHRo
YXQgdGhlDQo+PiBsYXR0ZXIgcmFuZ2UgaXMgY2xhc2hpbmcgd2l0aCB0aGUgYWxyZWFkeSByZWNv
cmRlZCAvbWVtcmVzZXJ2ZS8NCj4+IHJhbmdlcy4NCj4+IEZ1cnRoZXJtb3JlLCB1LWJvb3QgbGlz
dHMgYm9vdCBtb2R1bGVzIHJhbmdlcywgc3VjaCBhcyByYW1kaXNrLA0KPj4gaW4gdGhlIC9tZW1y
ZXNlcnZlLyBwYXJ0IGFuZCBldmVuIGluIHRoaXMgY2FzZSB0aGlzIHdpbGwgcHJldmVudA0KPj4g
WGVuIHRvIGJvb3Qgc2luY2UgaXQgd2lsbCBzZWUgdGhhdCB0aGUgbW9kdWxlIG1lbW9yeSByYW5n
ZSB0aGF0DQo+PiBpdCBpcyBnb2luZyB0byBhZGQgaW4gJ2FkZF9ib290X21vZHVsZScgY2xhc2hl
cyB3aXRoIGEgL21lbXJlc2VydmUvDQo+PiByYW5nZS4NCj4+IFdoZW4gWGVuIHBvcHVsYXRlIHRo
ZSBkYXRhIHN0cnVjdHVyZSB0aGF0IHRyYWNrcyB0aGUgbWVtb3J5IHJhbmdlcywNCj4+IGl0IGFs
c28gYWRkcyBhIG1lbW9yeSB0eXBlIGRlc2NyaWJlZCBpbiAnZW51bSBtZW1iYW5rX3R5cGUnLCBz
bw0KPj4gaW4gb3JkZXIgdG8gZml4IHRoaXMgYmVoYXZpb3IsIGFsbG93IHRoZSAnY2hlY2tfcmVz
ZXJ2ZWRfcmVnaW9uc19vdmVybGFwJw0KPj4gZnVuY3Rpb24gdG8gY2hlY2sgZm9yIGV4YWN0IG1l
bW9yeSByYW5nZSBtYXRjaCBnaXZlbiBhIHNwZWNpZmljIG1lbW9yeQ0KPj4gdHlwZTsgYWxsb3dp
bmcgcmVzZXJ2ZWQtbWVtb3J5IG5vZGUgcmFuZ2VzIGFuZCBib290IG1vZHVsZXMgdG8gaGF2ZSBh
bg0KPj4gZXhhY3QgbWF0Y2ggd2l0aCByYW5nZXMgZnJvbSAvbWVtcmVzZXJ2ZS8uDQo+PiBXaGls
ZSB0aGVyZSwgc2V0IGEgdHlwZSBmb3IgdGhlIG1lbW9yeSByZWNvcmRlZCBkdXJpbmcgQUNQSSBi
b290Lg0KPiANCj4gSSBhbSBhIGJpdCBjb25mdXNlZCB3aGljaCB5b3UgbWVudGlvbiBvbmx5IEFD
UEkgYm9vdC4gSXNuJ3QgdGhlIHBhdGggYWxzbyB1c2VkIHdoZW4gYm9vdGluZyB1c2luZyBEZXZp
Y2UtVHJlZT8NCg0KcmlnaHQsIG1heWJlIHRoaXMgc2hvdWxkIGJlOg0KDQrigJxXaGlsZSB0aGVy
ZSwgc2V0IGEgdHlwZSBmb3IgdGhlIG1lbW9yeSByZWNvcmRlZCB1c2luZyBtZW1pbmZvX2FkZF9i
YW5rKCkgZnJvbSBlZnQtYm9vdC5oLiINCg0KPj4gDQo+PiAgc3RhdGljIGJvb2wgX19pbml0IG1l
bWluZm9fb3ZlcmxhcF9jaGVjayhjb25zdCBzdHJ1Y3QgbWVtYmFua3MgKm1lbSwNCj4+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgcmVnaW9uX3N0YXJ0
LA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBy
ZWdpb25fc2l6ZSkNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhZGRyX3QgcmVnaW9uX3NpemUsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbnVtIG1lbWJhbmtfdHlwZSBhbGxvd19tYXRjaF90eXBlKQ0KPiANCj4gTG9v
a2luZyBhdCB0aGUgY2FsbGVycywgeW91IG9ubHkgc2VlbSB0byBwYXNzIE1FTUJBTktfRkRUX1JF
U1ZNRU0gb3IgTUVNQkFOS19OT05FLiBTbyBJIHdvbmRlciB3aGV0aGVyIGl0IGFjdHVhbGx5IG1h
a2Ugc2Vuc2UgdG8gaW50cm9kdWNlIE1FTUJBTktfTk9ORS4gV291bGRuJ3QgaXQgYmUgYmV0dGVy
IHRvIGhhdmUgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB3ZSBhcmUgbG9va2luZyBmb3Ig
RkRUX1JFU1ZNRU0/DQoNCkkgd2FudGVkIHRvIGdpdmUgYSBtb3JlIGdlbmVyaWMgYXBwcm9hY2gs
IGJ1dCB5b3UgYXJlIHJpZ2h0LCB3ZSBjb3VsZCBoYXZlIGEgYm9vbGVhbiBsaWtlIGFsbG93X21h
dGNoX21lbXJlc2VydmUuDQoNCg0KPiANCj4+ICB7DQo+PiAgICAgIHBhZGRyX3QgYmFua19zdGFy
dCA9IElOVkFMSURfUEFERFIsIGJhbmtfZW5kID0gMDsNCj4+ICAgICAgcGFkZHJfdCByZWdpb25f
ZW5kID0gcmVnaW9uX3N0YXJ0ICsgcmVnaW9uX3NpemU7DQo+PiBAQCAtMTEzLDEyICsxMTQsMTYg
QEAgc3RhdGljIGJvb2wgX19pbml0IG1lbWluZm9fb3ZlcmxhcF9jaGVjayhjb25zdCBzdHJ1Y3Qg
bWVtYmFua3MgKm1lbSwNCj4+ICAgICAgICAgIGlmICggSU5WQUxJRF9QQUREUiA9PSBiYW5rX3N0
YXJ0IHx8IHJlZ2lvbl9lbmQgPD0gYmFua19zdGFydCB8fA0KPj4gICAgICAgICAgICAgICByZWdp
b25fc3RhcnQgPj0gYmFua19lbmQgKQ0KPj4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gLSAg
ICAgICAgZWxzZQ0KPj4gLSAgICAgICAgew0KPj4gLSAgICAgICAgICAgIHByaW50aygiUmVnaW9u
OiBbJSMiUFJJcGFkZHIiLCAlIyJQUklwYWRkciIpIG92ZXJsYXBwaW5nIHdpdGggYmFua1sldV06
IFslIyJQUklwYWRkciIsICUjIlBSSXBhZGRyIilcbiIsDQo+PiAtICAgICAgICAgICAgICAgICAg
IHJlZ2lvbl9zdGFydCwgcmVnaW9uX2VuZCwgaSwgYmFua19zdGFydCwgYmFua19lbmQpOw0KPj4g
LSAgICAgICAgICAgIHJldHVybiB0cnVlOw0KPj4gLSAgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAg
ICAgaWYgKCAoYWxsb3dfbWF0Y2hfdHlwZSAhPSBNRU1CQU5LX05PTkUpICYmDQo+PiArICAgICAg
ICAgICAgIChyZWdpb25fc3RhcnQgPT0gYmFua19zdGFydCkgJiYgKHJlZ2lvbl9lbmQgPT0gYmFu
a19lbmQpICYmDQo+IA0KPiBXaHkgaXMgdGhpcyBvbmx5IGFuIGV4YWN0IG1hdGNoPw0KDQpBcHBh
cmVudGx5IHdoYXQgd2UgYXJlIGZpeGluZyBpcyBvbmx5IGEgY2FzZSB3aGVyZSBtZW1yZXNlcnZl
IHJlZ2lvbnMgbWF0Y2hlcyBleGFjdGx5IG1vZHVsZXMgb3IgcmVzZXJ2ZWRfbWVtIG5vZGVzLg0K
DQo+IA0KPj4gKyAgICAgICAgICAgICAoYWxsb3dfbWF0Y2hfdHlwZSA9PSBtZW0tPmJhbmtbaV0u
dHlwZSkgKQ0KPj4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gKw0KPj4gKyAgICAgICAgcHJp
bnRrKCJSZWdpb246IFslIyJQUklwYWRkciIsICUjIlBSSXBhZGRyIikgb3ZlcmxhcHBpbmcgd2l0
aCBiYW5rWyV1XTogWyUjIlBSSXBhZGRyIiwgJSMiUFJJcGFkZHIiKVxuIiwNCj4+ICsgICAgICAg
ICAgICAgICAgcmVnaW9uX3N0YXJ0LCByZWdpb25fZW5kLCBpLCBiYW5rX3N0YXJ0LCBiYW5rX2Vu
ZCk7DQo+PiArICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+ICsNCj4+ICAgICAgfQ0KPj4gICAgICAg
IHJldHVybiBmYWxzZTsNCj4+IEBAIC0xNjksOSArMTc0LDE0IEBAIHZvaWQgX19pbml0IGZ3X3Vu
cmVzZXJ2ZWRfcmVnaW9ucyhwYWRkcl90IHMsIHBhZGRyX3QgZSwNCj4+ICAgKiB3aXRoIHRoZSBl
eGlzdGluZyByZXNlcnZlZCBtZW1vcnkgcmVnaW9ucyBkZWZpbmVkIGluIGJvb3RpbmZvLg0KPj4g
ICAqIFJldHVybiB0cnVlIGlmIHRoZSBpbnB1dCBwaHlzaWNhbCBhZGRyZXNzIHJhbmdlIGlzIG92
ZXJsYXBwaW5nIHdpdGggYW55DQo+PiAgICogZXhpc3RpbmcgcmVzZXJ2ZWQgbWVtb3J5IHJlZ2lv
bnMsIG90aGVyd2lzZSBmYWxzZS4NCj4+ICsgKiBUaGUgJ2FsbG93X21hdGNoX3R5cGUnIHBhcmFt
ZXRlciBjYW4gYmUgdXNlZCB0byBhbGxvdyBleGFjdCBtYXRjaCBvZiBhDQo+PiArICogcmVnaW9u
IHdpdGggYW5vdGhlciBtZW1vcnkgcmVnaW9uIGFscmVhZHkgcmVjb3JkZWQsIGJ1dCBpdCBuZWVk
cyB0byBiZSB1c2VkDQo+PiArICogb25seSBvbiBtZW1vcnkgcmVnaW9ucyB0aGF0IGFsbG93cyBh
IHR5cGUgKHJlc2VydmVkX21lbSwgYWNwaSkuIEZvciBhbGwgdGhlDQo+PiArICogb3RoZXIgY2Fz
ZXMsIHBhc3NpbmcgJ01FTUJBTktfTk9ORScgd2lsbCBkaXNhYmxlIHRoZSBleGFjdCBtYXRjaC4N
Cj4+ICAgKi8NCj4+ICBib29sIF9faW5pdCBjaGVja19yZXNlcnZlZF9yZWdpb25zX292ZXJsYXAo
cGFkZHJfdCByZWdpb25fc3RhcnQsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhZGRyX3QgcmVnaW9uX3NpemUpDQo+PiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgcmVnaW9uX3NpemUsDQo+PiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gbWVtYmFua190eXBlIGFs
bG93X21hdGNoX3R5cGUpDQo+PiAgew0KPj4gICAgICBjb25zdCBzdHJ1Y3QgbWVtYmFua3MgKm1l
bV9iYW5rc1tdID0gew0KPj4gICAgICAgICAgYm9vdGluZm9fZ2V0X3Jlc2VydmVkX21lbSgpLA0K
Pj4gQEAgLTE5MCw4ICsyMDAsMjEgQEAgYm9vbCBfX2luaXQgY2hlY2tfcmVzZXJ2ZWRfcmVnaW9u
c19vdmVybGFwKHBhZGRyX3QgcmVnaW9uX3N0YXJ0LA0KPj4gICAgICAgKiBzaGFyZWQgbWVtb3J5
IGJhbmtzICh3aGVuIHN0YXRpYyBzaGFyZWQgbWVtb3J5IGZlYXR1cmUgaXMgZW5hYmxlZCkNCj4+
ICAgICAgICovDQo+PiAgICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRShtZW1fYmFua3Mp
OyBpKysgKQ0KPj4gLSAgICAgICAgaWYgKCBtZW1pbmZvX292ZXJsYXBfY2hlY2sobWVtX2Jhbmtz
W2ldLCByZWdpb25fc3RhcnQsIHJlZ2lvbl9zaXplKSApDQo+PiArICAgIHsNCj4+ICsgICAgICAg
IGVudW0gbWVtYmFua190eXBlIHR5cGUgPSBhbGxvd19tYXRjaF90eXBlOw0KPj4gKw0KPj4gKyNp
ZmRlZiBDT05GSUdfU1RBVElDX1NITQ0KPj4gKyAgICAgICAgLyoNCj4+ICsgICAgICAgICAqIFN0
YXRpYyBzaGFyZWQgbWVtb3J5IGJhbmtzIGRvbid0IGhhdmUgYSB0eXBlLCBzbyBmb3IgdGhlbSBk
aXNhYmxlDQo+PiArICAgICAgICAgKiB0aGUgZXhhY3QgbWF0Y2ggY2hlY2suDQo+PiArICAgICAg
ICAgKi8NCj4gDQo+IFRoaXMgZmVlbHMgYSBiaXQgb2YgYSBoYWNrLiBXaHkgY2FuJ3Qgd2UgaGFk
IGEgZGVmYXVsdCB0eXBlIGxpa2UgeW91IGRpZCBpbiBtZW1pbmZvX2FkZF9iYW5rKCk/DQoNClRo
aXMgaXMgdGhlIHN0cnVjdHVyZToNCg0Kc3RydWN0IG1lbWJhbmsgew0KICAgIHBhZGRyX3Qgc3Rh
cnQ7DQogICAgcGFkZHJfdCBzaXplOw0KICAgIHVuaW9uIHsNCiAgICAgICAgZW51bSBtZW1iYW5r
X3R5cGUgdHlwZTsNCiNpZmRlZiBDT05GSUdfU1RBVElDX1NITQ0KICAgICAgICBzdHJ1Y3Qgc2ht
ZW1fbWVtYmFua19leHRyYSAqc2htZW1fZXh0cmE7DQojZW5kaWYNCiAgICB9Ow0KfTsNCg0Kd2Ug
ZGlkIHRoYXQgaW4gb3JkZXIgdG8gc2F2ZSBzcGFjZSB3aGVuIHN0YXRpYyBzaGFyZWQgbWVtb3J5
IGlzIG5vdCBlbmFibGVkLCBzbyB3ZSBjYW7igJl0IGhhdmUgdGhlDQp0eXBlIGZvciB0aGVzZSBi
YW5rcyBiZWNhdXNlIHdlIGFyZSBhbHJlYWR5IHdyaXRpbmcgc2htZW1fZXh0cmEuDQoNCldlIGNv
dWxkIHJlbW92ZSB0aGUgdW5pb24gYnV0IGluIHRoYXQgY2FzZSB3ZSB3b3VsZCB3YXN0ZSBzcGFj
ZSB3aGVuIHN0YXRpYyBzaGFyZWQgbWVtb3J5IGlzDQplbmFibGVkLg0KDQpDaGVlcnMsDQpMdWNh
DQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 14:40:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 14:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835772.1251622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBEXY-00018B-Se; Wed, 13 Nov 2024 14:40:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835772.1251622; Wed, 13 Nov 2024 14:40: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 1tBEXY-000184-Q8; Wed, 13 Nov 2024 14:40:16 +0000
Received: by outflank-mailman (input) for mailman id 835772;
 Wed, 13 Nov 2024 14:40:15 +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 1tBEXX-00017y-GV
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 14:40:15 +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 1tBEXW-003Hol-2r;
 Wed, 13 Nov 2024 14:40:15 +0000
Received: from [2a02:8012:3a1:0:2c06:4644:c8a3:2b5e]
 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 1tBEXW-00373N-2o;
 Wed, 13 Nov 2024 14:40: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=PLR4zoU55fn0X90PYwPCmHLO/lWCzCpN21zjbKzRi94=; b=tgQfN2/hwnfadSlt1vQVoRtb3v
	f4FpWW5pAzwX++u3GGDvNx8eqLkmz5MaoGWAyj5rRCHSDFDd+tBG16hjzl9iTmdu45uby08fiZVMI
	0s+07A+eI2cdfSAfga4eXUpsNwtl9ayWGahiS2OjQ39qHC8gS1ZogzbyfJIEkaXCG6+g=;
Message-ID: <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
Date: Wed, 13 Nov 2024 14:40:13 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Luca Fancellu
 <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 13/11/2024 14:19, Michal Orzel wrote:
> 
> 
> On 13/11/2024 14:50, Julien Grall wrote:
>>
>>
>> Hi Michal,
>>
>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>
>>>
>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>
>>>>
>>>> There are some cases where the device tree exposes a memory range
>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>> current code will stop Xen to boot since it will find that the
>>>> latter range is clashing with the already recorded /memreserve/
>>>> ranges.
>>>>
>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>> in the /memreserve/ part and even in this case this will prevent
>>>> Xen to boot since it will see that the module memory range that
>>>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>>>> range.
>>>>
>>>> When Xen populate the data structure that tracks the memory ranges,
>>>> it also adds a memory type described in 'enum membank_type', so
>>>> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
>>>> function to check for exact memory range match given a specific memory
>>>> type; allowing reserved-memory node ranges and boot modules to have an
>>>> exact match with ranges from /memreserve/.
>>>>
>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>
>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>> ---
>>>> I tested this patch adding the same range in a /memreserve/ entry and
>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>> I've also tested that a configuration running static shared memory still works
>>>> fine.
>>>> ---
>>> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
>>> and the changes below look a bit too much for me, given that for boot modules we can only have
>>> /memreserve/ matching initrd.
>>
>> How so? Is this an observation or part of a specification?
> Not sure what specification you would want to see.

Anything that you bake your observation. My concern with observation is ...

  It's all part of U-Boot and Linux behavior that is not documented 
(except for code comments).
> My statement is based on the U-Boot and Linux behavior. U-Boot part only present for initrd:
> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249

... a user is not forced to use U-boot. So this is not a good reason to 
rely on it. If Linux starts to rely on it, then it is probably a better 
argument, but first I would need to see the code. Can you paste a link?

> 
> For things that Xen can be interested in, only region for ramdisk for dom0 can match the /memreserve/ region.
> Providing a generic solution (like Luca did) would want providing an example of sth else that can match which I'm not aware of.

I would argue this is the other way around. If we are not certain that 
/memreserve/ will not be used for any other boot module, then we should 
have a generic solution. Otherwise, we will end up with similar weird 
issue in the future.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 14:44:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 14:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835779.1251634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBEbG-00028F-EU; Wed, 13 Nov 2024 14:44:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835779.1251634; Wed, 13 Nov 2024 14:44: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 1tBEbG-000288-9r; Wed, 13 Nov 2024 14:44:06 +0000
Received: by outflank-mailman (input) for mailman id 835779;
 Wed, 13 Nov 2024 14:44: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=Lrmv=SI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBEbF-000280-CO
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 14:44:05 +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 b8defdd4-a1cd-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 15:44:01 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9ed49ec0f1so1171245566b.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 06:44:01 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a4c3f5sm879865266b.76.2024.11.13.06.44.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 06:44: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: b8defdd4-a1cd-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI4ZGVmZGQ0LWExY2QtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTA5MDQxLjU2MTg4Niwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731509041; x=1732113841; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=jLUSd68AIhBf7PmjokCFVD+jf3f3kIvlqj1vTs3kmV8=;
        b=ZDEGhn6pVNRBC8mrMGxm4tKwG+cuBzRllzXQvdded3p9IjG7ea1aEwrPOXm1VgIFWl
         PvG96NcRVl+VpZO5OofiapX/iX8NO5c9pS7kTqACC98Q0pXFs/QACBnp07fFjfTUeP/e
         5AWRV61oK9eo4IOe5kZS7dBcOLoR8fL/X8pbCY5mamp0fMRq6QXP4t0H1bXtcKZCugow
         rFYQ8WMRC4kaPFqM3obE8zkpQcHhIjboBoZdDkqyWFVpVIKaUPTRnumGoq6zPUDx6kwy
         izuOvrmkLn4L8UyP3CaWtH6qnQYeAOyBsKZJrVm8HQvCviQufp5GhZm2zewJl0D4qYtD
         4diw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731509041; x=1732113841;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=jLUSd68AIhBf7PmjokCFVD+jf3f3kIvlqj1vTs3kmV8=;
        b=imhA7IEoEyJ5/olmw+K+Z4ln3JYsN5p+ctlFahjxWUA4gIt6IxWy+bkdUwvE+dQWgH
         fceBjc5qofw6HkQ2kwqqkwa4QQEQzHIJXXbP44mlUl+QWMVj98Z3nykLt8Jb54+1pvKO
         8JVv9nDt82NvsIeu/B/wrDNJlUvVLULoAv1UwAD+XG+qrJPvAxJNEH7gQzPW7MQj5d0+
         qo73ZeWahhCL2INjrfsXEc/37HUkmYBcRzxej/paFr9hVUr6lkxNThaAsQCVojoZeOH5
         6SKH+U1gFRWZv8/0rbJgtgQer5KBEcZGgm1voL9xo318UurACb/hyJwtJ58/iED10Z1t
         Boqw==
X-Forwarded-Encrypted: i=1; AJvYcCUUw063MgYZ9VFFD5SOiyFCeX5q7hVf9RPUNN3QXkLd7HTUEvjN4QoPR6QD0dFlUN4URydMuWov0sw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyiC3dB9NStC3EFjWFcGzQ6oOOKT8lfXzuN9cmsdfSw8SrgqsHK
	AiDuGR6I3c9i81YBLhqQzXtm4CV6vVEiVXkFqfQm+QteAXbte0lv
X-Google-Smtp-Source: AGHT+IE6s5/YNnZT43pmJ8hGF/CG6UPUChcd77pSvfeb7PqnrO5xw1Q/SakPsVGifrTa6gn35MsxWQ==
X-Received: by 2002:a17:907:36c5:b0:a9e:441c:f729 with SMTP id a640c23a62f3a-aa1afd3ed3cmr761609566b.0.1731509040622;
        Wed, 13 Nov 2024 06:44:00 -0800 (PST)
Message-ID: <814c2168603cd48e32fde6fff0cad2ca58fc2c9d.camel@gmail.com>
Subject: Re: Xen 4.20 Development Update [August-October]
From: oleksii.kurochko@gmail.com
To: Jan Beulich <jbeulich@suse.com>
Cc: Kelly Choi <kelly.choi@cloud.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Date: Wed, 13 Nov 2024 15:43:59 +0100
In-Reply-To: <14df2192-9736-4c1c-8aac-2853467ea330@suse.com>
References: 
	<CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
	 <14df2192-9736-4c1c-8aac-2853467ea330@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Wed, 2024-11-13 at 10:48 +0100, Jan Beulich wrote:
> On 12.11.2024 17:16, Oleksii Kurochko wrote:
> > =3D=3D=3D x86 =3D=3D=3D
> >=20
> > *=C2=A0 Expose consistent topology to guests (v7)
> > =C2=A0 -=C2=A0 Alejandro Vallejo
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/20241021154600.11745-1-alejandro.vall=
ejo@cloud.com/T/#m6033f95c660675039d7789d3af1ba2f292a3a69b
> >=20
> > *=C2=A0 Boot modules for Hyperlaunch (v8)
> > =C2=A0 -=C2=A0 Daniel P. Smith
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/20241102172551.17233-1-dpsmith@apertu=
ssolutions.com/T/#m94a2f6b9d410c6d624aaebd7c2bf85584c74383e
> >=20
> > *=C2=A0 x86/mm: miscellaneous fixes (v2)
> > =C2=A0 -=C2=A0 Roger Pau Monne
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m2df34239=
b793501c6246c85c4b00e52f9c439ac0
> >=20
> > *=C2=A0 x86/ucode: Simplify/fix loading paths further (v1)
> > =C2=A0 -=C2=A0 Andrew Cooper
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/20241107122117.4073266-1-andrew.coope=
r3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625d1
> >=20
> > *=C2=A0 Address Space Isolation FPU preparations (v2)
> > =C2=A0 -=C2=A0 Alejandro Vallejo
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/20241105143310.28301-1-alejandro.vall=
ejo@cloud.com/T/#mbca5192d7e5636ef5ea005a083e5ff28ebe6317d
> >=20
> > *=C2=A0 Fix module-handling use-after-free's (v2)
> > =C2=A0 -=C2=A0 Andrew Cooper
>=20
> Wasn't this committed already?
Double-checked, it has been committed, thanks. I will move it to
completed section.

>=20
> > https://lore.kernel.org/xen-devel/20241106003938.3453243-1-andrew.coope=
r3@citrix.com/T/#mdf923bdf63b034a6493bf62beeead280b92a38ed
> >=20
> > *=C2=A0 Reuse 32 bit C code more safely (v4)
> > =C2=A0 -=C2=A0 Frediano Ziglio
>=20
> Same question here.
For this patch series my script found to patches which are not in
staging:
$ git log --grep=3D"x86/boot: create a C bundle for 32 bit boot code and
use it"
$ git log --grep=3D"x86/boot: Clarify comment"

>=20
> > https://lore.kernel.org/xen-devel/20241014085332.3254546-1-frediano.zig=
lio@cloud.com/T/#m53e36815ddec2511ddd1fa8d1a7ed9a27c0cd0f7
> >=20
> > *=C2=A0 x86/alternatives: Adjust all insn-relative fields (v2)
> > =C2=A0 -=C2=A0 Andrew Cooper
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.coope=
r3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
> >=20
> > *=C2=A0 x86: address violations of MISRA C Rule 16.3 (v1)
> > =C2=A0 -=C2=A0 Federico Serafini
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/cover.1725958416.git.federico.serafin=
i@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be01ab6
> >=20
> > *=C2=A0 Support device passthrough when dom0 is PVH on Xen (v16)
> > =C2=A0 -=C2=A0 Jiqian Chen
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/20240930034250.2682265-1-Jiqian.Chen@=
amd.com/T/#m5d557d76f290ff5b5550c1443cab5774d397e526
> >=20
> > *=C2=A0 x86emul: misc additions (v5)
> > =C2=A0 -=C2=A0 Jan Beulich
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/0b9a0ae8-a39c-49d8-b4e7-f2a463128058@=
suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe780e
> >=20
> > *=C2=A0 x86/HVM: drop stdvga caching mode (v2)
> > =C2=A0 -=C2=A0 Jan Beulich
>=20
> This, after having been committed, even became the subject of an XSA
> that
> was published earlier this week.
I saw XSA but thought that this patch series wassn't fully commited as
my  script told that some patches aren't in staging but the real reason
is that it has an issue with quotes ( now it is fixed, thanks ) for
cases like:
```
$ git log --grep=3D"drop stdvga's "gr[]" struct member"
fatal: command line, 'drop stdvga's gr[] struct member': Unmatched [,
[^, [:, [., or [=3D
```

I will put it to completed.


>=20
> > https://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6-8fbc-67a177a1e171@=
suse.com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117
> >=20
> > *=C2=A0 x86/HVM: emulation (MMIO) improvements (v1)
> > =C2=A0 -=C2=A0 Jan Beulich
> > =C2=A0 -
> > https://lore.kernel.org/xen-devel/31906cba-8646-4cf9-ab31-1d23654df8d1@=
suse.com/T/#mdae2f21b929170d60a8640e82857700c940e65c7
>=20
> More stuff missing that was already intended for 4.19: AMX, AVX10,
> and
> use of ERMS in Xen, to name just a few.
I will add it back. ( for the case someone would like to look at it
now:
https://lore.kernel.org/xen-devel/32e2d9dddfaa80e8edfaa5a7207c4e7fb7862a45.=
camel@gmail.com/
)

Thanks!

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 14:51:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 14:51:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835788.1251644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBEi6-0003vw-4D; Wed, 13 Nov 2024 14:51:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835788.1251644; Wed, 13 Nov 2024 14:51: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 1tBEi5-0003vp-Vt; Wed, 13 Nov 2024 14:51:09 +0000
Received: by outflank-mailman (input) for mailman id 835788;
 Wed, 13 Nov 2024 14:51: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=Lrmv=SI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBEi4-0003vj-60
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 14:51:08 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b42af7ef-a1ce-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 15:51:03 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2fb559b0b00so58287141fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 06:51:03 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff4d2d3788sm2734311fa.81.2024.11.13.06.51.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 06:51: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: b42af7ef-a1ce-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzQiLCJoZWxvIjoibWFpbC1sajEteDIzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI0MmFmN2VmLWExY2UtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTA5NDYzLjYzMzAwMSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731509462; x=1732114262; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=hxnNMdCCzmIkJZzArvasiBQS8HZj6aDo8doSkAViJ6A=;
        b=OjySWGrHEYawA13ZrpTUeN45sofFuR5v4TH7O3iESmSE5jI8Yyou1BKMis/ppSYNxd
         5//Zy6/Gd2So3Dr0+2wRDkqQAdD4qEkcuHMDPvKnm6sB1DEv318qj/bDr6kpA5mEStlO
         7bq35e/TjzLX87bziwSJe5grKTPYght+z78Uo8fenIvr3g/62pv+Wmw+CIAbR7iPHUz7
         VebfJ6s/c+c8KnPlQ2oXuj6dth8F7Ijc4ZLlFM9WtLzmLupQsgru3ltn2+dtCReQU+Kt
         kuJpjRTU/Tu0ffQBIt+J9FDGqHxFYB7s0J+CYDmxSgHAhmODG7feifT8zNnoWdCknQi5
         D+cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731509462; x=1732114262;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hxnNMdCCzmIkJZzArvasiBQS8HZj6aDo8doSkAViJ6A=;
        b=Rz7UDPubHNeeE+xRxaYrScsYCGMkSaeSZJSqzHte27um10CYl1/UCiasK4vZ/nH2vU
         otJzS6za7i5eEz2cR2MIQlY0fyEA+lXBQcSm8n1nkFqqyDJlVrV8rrBNSCTRhgCiXPf0
         WmKeC4bJp96e3zLd9AYdkZ+0VaKZYt5/OJRseg77oN39NPDtSWCSDDWEO5Nsa4OyRpg7
         T86FTHMHl08S2d9gzyH65z6A5vhP8JbrVK1F9M39c9XrNF7DeXCo+AlG4G+HhAz3Bqtf
         PKawPzFA/S0+Ftp4uwDWzNe8jIbinXM1oEKYTm0T88s5+LA7yAeEPWFv8c63zCRFZUC/
         dMpg==
X-Gm-Message-State: AOJu0YyAti1PXC75VpU1j8ulKS9xl3nHtxFoaUOIfC3SHNPsXGA8tloM
	ogoUp5C2e7kh5/k5vCSAB0MzDA0RD6e3uRCUFgHyWhEVKLDbdEaN3FtnKA==
X-Google-Smtp-Source: AGHT+IFjDx9C3aIUhKhMoOoiYzRbnjL1q3PIsyM62hd2xp3CfBKSCY+JpUa7PJ/oCLhTT+Z257bUoQ==
X-Received: by 2002:a05:651c:991:b0:2fa:c4d4:ec44 with SMTP id 38308e7fff4ca-2ff202230e0mr115138251fa.28.1731509462036;
        Wed, 13 Nov 2024 06:51:02 -0800 (PST)
Message-ID: <15719907f015f7315131dc8725dcda18dbc2dfa6.camel@gmail.com>
Subject: Re: Xen 4.20 Development Update [August-October]
From: oleksii.kurochko@gmail.com
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Kelly Choi
	 <kelly.choi@cloud.com>
Date: Wed, 13 Nov 2024 15:51:01 +0100
In-Reply-To: <51B2EC23-B47D-4782-ADD8-C2201B380C12@arm.com>
References: 
	<CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
	 <51B2EC23-B47D-4782-ADD8-C2201B380C12@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

Hi Bertrand,

On Wed, 2024-11-13 at 13:02 +0000, Bertrand Marquis wrote:
> Hi Oleksii,
>=20
> > On 12 Nov 2024, at 16:16, Oleksii Kurochko
> > <oleksii.kurochko@gmail.com> wrote:
> >=20
> > Hello everyone,
> >=20
> > This email only tracks big items for xen.git tree. Please reply for
> > items you
> > would like to see in 4.20 so that people have an idea what is going
> > on and
> > prioritise accordingly.
> >=20
> > You're welcome to provide description and use cases of the feature
> > you're
> > working on.
> >=20
> > =3D Timeline =3D
> >=20
> > ---> We are here
> > * Last posting date: Nov 29, 2024
> > * Feature freeze date: Dec 20, 2024
> > * Hard code freeze: Jan 17, 2025
> > * RC1: TBD
> > * Release: Feb 21, 2025
> > ( current release schedule:
> > https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes=C2=A0)
> >=20
> > All patches that wish to go into 4.20 must be posted no later than
> > the last posting
> > date. All patches posted after that date will be automatically
> > queued
> > into next release.
> >=20
> > RCs will be arranged immediately after freeze.
> >=20
> > =3D Projects =3D
> >=20
> > =3D=3D Hypervisor =3D=3D=20
> >=20
> > *=C2=A0 Remove the directmap (v4)
> > =C2=A0 -=C2=A0 Elias El Yandouzi
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/f6973275-0d7e-4db4-b949-f21e530e1dfc@=
citrix.com/T/#m9733aa717edf032db0cf8f8f6763537b4f30c1f8
> >=20
> > *=C2=A0 remove libxenctrl usage from xenstored (v1)
> > =C2=A0 -=C2=A0 Juergen Gross
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241023131005.32144-1-jgross@suse.co=
m/T/#md016c48a0889740d1822aa68f7f33d4ad48f4805
> >=20
> > *=C2=A0 automation: Refresh the remaining Debian containers (v2)
> > =C2=A0 -=C2=A0 Javi Merino
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@clou=
d.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e
> >=20
> > *=C2=A0 Move gic_preinit() to common code (v2)
> > =C2=A0 -=C2=A0 Oleksii Kurochko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/2fe01b5a-aebb-4141-9cdd-887b5984d6b8@=
suse.com/T/#m8144a030ef64a479068482c864c9258a5cb43a87
> >=20
> > *=C2=A0 stubdom: reduce xenstore library dependencies (v1)
> > =C2=A0 -=C2=A0 Juergen Gross
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241010155459.22389-1-jgross@suse.co=
m/T/#m8b5af386e2d288961bb6e8f7839650e0cab96a83
> >=20
> > *=C2=A0 xen: address violations of MISRA C Rule 13.6 (v2)
> > =C2=A0 -=C2=A0 Federico Serafini
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1727690180.git.federico.serafin=
i@bugseng.com/T/#mbec702db211240305e0d35649e65627d9fa75a29
> >=20
> > =3D=3D=3D x86 =3D=3D=3D=20
> >=20
> > *=C2=A0 Expose consistent topology to guests (v7)
> > =C2=A0 -=C2=A0 Alejandro Vallejo
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241021154600.11745-1-alejandro.vall=
ejo@cloud.com/T/#m6033f95c660675039d7789d3af1ba2f292a3a69b
> >=20
> > *=C2=A0 Boot modules for Hyperlaunch (v8)
> > =C2=A0 -=C2=A0 Daniel P. Smith
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241102172551.17233-1-dpsmith@apertu=
ssolutions.com/T/#m94a2f6b9d410c6d624aaebd7c2bf85584c74383e
> >=20
> > *=C2=A0 x86/mm: miscellaneous fixes (v2)
> > =C2=A0 -=C2=A0 Roger Pau Monne
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m2df34239=
b793501c6246c85c4b00e52f9c439ac0
> >=20
> > *=C2=A0 x86/ucode: Simplify/fix loading paths further (v1)
> > =C2=A0 -=C2=A0 Andrew Cooper=20
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241107122117.4073266-1-andrew.coope=
r3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625d1
> >=20
> > *=C2=A0 Address Space Isolation FPU preparations (v2)
> > =C2=A0 -=C2=A0 Alejandro Vallejo
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241105143310.28301-1-alejandro.vall=
ejo@cloud.com/T/#mbca5192d7e5636ef5ea005a083e5ff28ebe6317d
> >=20
> > *=C2=A0 Fix module-handling use-after-free's (v2)
> > =C2=A0 -=C2=A0 Andrew Cooper=20
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241106003938.3453243-1-andrew.coope=
r3@citrix.com/T/#mdf923bdf63b034a6493bf62beeead280b92a38ed
> >=20
> > *=C2=A0 Reuse 32 bit C code more safely (v4)
> > =C2=A0 -=C2=A0 Frediano Ziglio
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241014085332.3254546-1-frediano.zig=
lio@cloud.com/T/#m53e36815ddec2511ddd1fa8d1a7ed9a27c0cd0f7
> >=20
> > *=C2=A0 x86/alternatives: Adjust all insn-relative fields (v2)
> > =C2=A0 -=C2=A0 Andrew Cooper=20
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.coope=
r3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
> >=20
> > *=C2=A0 x86: address violations of MISRA C Rule 16.3 (v1)
> > =C2=A0 -=C2=A0 Federico Serafini
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1725958416.git.federico.serafin=
i@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be01ab6
> >=20
> > *=C2=A0 Support device passthrough when dom0 is PVH on Xen (v16)
> > =C2=A0 -=C2=A0 Jiqian Chen
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240930034250.2682265-1-Jiqian.Chen@=
amd.com/T/#m5d557d76f290ff5b5550c1443cab5774d397e526
> >=20
> > *=C2=A0 x86emul: misc additions (v5)
> > =C2=A0 -=C2=A0 Jan Beulich
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/0b9a0ae8-a39c-49d8-b4e7-f2a463128058@=
suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe780e
> >=20
> > *=C2=A0 x86/HVM: drop stdvga caching mode (v2)
> > =C2=A0 -=C2=A0 Jan Beulich
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6-8fbc-67a177a1e171@=
suse.com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117
> >=20
> > *=C2=A0 x86/HVM: emulation (MMIO) improvements (v1)
> > =C2=A0 -=C2=A0 Jan Beulich
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/31906cba-8646-4cf9-ab31-1d23654df8d1@=
suse.com/T/#mdae2f21b929170d60a8640e82857700c940e65c7
> >=20
> > =3D=3D=3D ARM =3D=3D=3D=20
> >=20
> > *=C2=A0 Enable early bootup of AArch64 MPU systems (v5)
> > =C2=A0 -=C2=A0 Ayan Kumar Halder
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241107150330.181143-1-ayan.kumar.ha=
lder@amd.com/T/#m9cfd8bed109cc703b6ae8b8b6faaa116c08598ee
> >=20
> > *=C2=A0 Add support for S32CC platforms and LINFlexD UART (v2)
> > =C2=A0 -=C2=A0 Andrei Cherechesu=20
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240930114715.642978-1-andrei.cherec=
hesu@oss.nxp.com/T/#m8452ac342fdcf989fc1e498c097812b50157f2cc
> >=20
> > *=C2=A0 Arm cache coloring (v9)
> > =C2=A0 -=C2=A0 Carlo Nonato
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241025095014.42376-1-carlo.nonato@m=
inervasys.tech/T/#md18fb02842c4ad2cd61b456be89020affcc452a3
> >=20
> > *=C2=A0 ffa: Improvements and fixes (v2)
> > =C2=A0 -=C2=A0 Bertrand Marquis
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1729066788.git.bertrand.marquis=
@arm.com/T/#mb0c8aab97d46f9c9e933b3b9b0eef7e717e1f2e5
>=20
> I would like to have this for next release and i plan to post the v3
> next week.
Certainly, it would be great to include this in the release, and we
still have some time to get it merged before the end of the feature
freeze. Ideally, though, it would be best to have it merged before the
last posting date. Do you think that=E2=80=99s achievable?

~ Oleksii
> >=20
> > *=C2=A0 Add Virtio-PCI for dom0less on ARM (v1)
> > =C2=A0 -=C2=A0 Edgar E. Iglesias
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240924162359.1390487-1-edgar.iglesi=
as@gmail.com/T/#mfa148991b9408f223a079d4cef610244d5b04c2b
> >=20
> > =3D=3D=3D RISCV =3D=3D=3D=20
> >=20
> > *=C2=A0 Setup memory management (v5)
> > =C2=A0 -=C2=A0 Oleksii Kurochko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1731344883.git.oleksii.kurochko=
@gmail.com/T/#m9f76f1b685896ea603a2b153e05104c7405a7d28
> >=20
> > =3D=3D=3D PPC =3D=3D=3D=20
> >=20
> > *=C2=A0 Early Boot Allocation on Power (v5)
> > =C2=A0 -=C2=A0 Shawn Anastasio
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1727388925.git.sanastasio@rapto=
rengineering.com/T/#m8cac91a93b56a359fa2d5f08596c4be61dca290d
> >=20
> > =3D=3D Completed =3D=3D=20
> >=20
> > =3D=3D=3D Hypervisor =3D=3D=3D=20
> >=20
> > *=C2=A0 libxl: Implement QEMU command line probe (v1)
> > =C2=A0 -=C2=A0 Anthony PERARD
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240827100328.23216-1-anthony.perard=
@vates.tech/T/#mdef23cefc2532ab0c9d7460290cef26780cf97cb
> >=20
> > *=C2=A0 xen/bitops: hweight() cleanup/improvements (v3)
> > =C2=A0 -=C2=A0 Andrew Cooper=20
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240904225530.3888315-1-andrew.coope=
r3@citrix.com/T/#me22e08f7477be725122dd9b97d29d272e3b586c4
> >=20
> > *=C2=A0 Move percpu code to common (v2)
> > =C2=A0 -=C2=A0 Oleksii Kurochko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1727185495.git.oleksii.kurochko=
@gmail.com/T/#mf93394c46f15cbdcfc873de2d52d862a8b70da7f
> >=20
> > *=C2=A0 xen/livepatch: improvements to loading (v3)
> > =C2=A0 -=C2=A0 Roger Pau Monne
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240926101431.97444-1-roger.pau@citr=
ix.com/T/#ma3f65948b065dc443aea2192873a3b3dfa52a2d7
> >=20
> > *=C2=A0 Move {acpi_}device_init() and device_get_class() to common code
> > (v5)
> > =C2=A0 -=C2=A0 Oleksii Kurochko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/17c7d988e45d7c82448b81fe66b01a5ceca0c=
15e.camel@gmail.com/T/#m68bd00d4f8b3724e83ba13024e94b15b58a28829
> >=20
> > *=C2=A0 blkif: reconcile protocol specification with in-use
> > implementations (v1)
> > =C2=A0 -=C2=A0 Roger Pau Monne
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240903141923.72241-1-roger.pau@citr=
ix.com/
> >=20
> > =3D=3D=3D x86 =3D=3D=3D=20
> >=20
> > *=C2=A0 Drop Xeon Phi support (v1)
> > =C2=A0 -=C2=A0 Jan Beulich
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/44147507-65a4-4f21-aada-fa647f53ffd0@=
suse.com/
> >=20
> > *=C2=A0 Utilize ucode_force and remove opt_ucode_allow_same (v7)
> > =C2=A0 -=C2=A0 Fouad Hilly
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240822130426.492931-4-fouad.hilly@c=
loud.com/
> >=20
> > *=C2=A0 Switch flat driver to use phys dst for ext ints (v2)
> > =C2=A0 -=C2=A0 Matthew Barnes
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/0db68e62ffc428f553a30397df1e79068d26b=
b5f.1728311378.git.matthew.barnes@cloud.com/
> >=20
> > *=C2=A0 x86/shutdown: change default reboot method preference (v1)
> > =C2=A0 -=C2=A0 Roger Pau Monne
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20240802105613.99197-1-roger.pau@citr=
ix.com/
> >=20
> > =3D=3D=3D ARM =3D=3D=3D=20
> >=20
> > *=C2=A0 iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H) support (v1)
> > =C2=A0 -=C2=A0 Grygorii Strashko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/6ab4ad29-404d-4f5c-8582-5d2f492fd549@=
xen.org/T/#t
> >=20
> > *=C2=A0 xen/arm: dt overlay fixes (v2)
> > =C2=A0 -=C2=A0 Michal Orzel
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/20241004122220.234817-1-michal.orzel@=
amd.com/T/#md51a060b93fe72f17637d6d72e3d4e2296cb4078
> >=20
> > =3D=3D=3D RISC-V =3D=3D=3D=20
> >=20
> > *=C2=A0 initialize bootinfo from dtb (v2)
> > =C2=A0 -=C2=A0 Oleksii Kurochko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1728481578.git.oleksii.kurochko=
@gmail.com/T/#m543bf84d47f0ea738938a9a442cd144bb34f7316
> >=20
> > *=C2=A0 Register Xen's load address as a boot module (v3)
> > =C2=A0 -=C2=A0 Oleksii Kurochko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1728472163.git.oleksii.kurochko=
@gmail.com/T/#t
> >=20
> > *=C2=A0 device tree mapping (v9)
> > =C2=A0 -=C2=A0 Oleksii Kurochko
> > =C2=A0 -=C2=A0
> > https://lore.kernel.org/xen-devel/cover.1727781468.git.oleksii.kurochko=
@gmail.com/T/#t
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 14:53:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 14:53:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835798.1251653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBEjz-0004er-HY; Wed, 13 Nov 2024 14:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835798.1251653; Wed, 13 Nov 2024 14:53: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 1tBEjz-0004ek-Dl; Wed, 13 Nov 2024 14:53:07 +0000
Received: by outflank-mailman (input) for mailman id 835798;
 Wed, 13 Nov 2024 14:53: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=Lrmv=SI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBEjx-0004ea-MA
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 14:53:05 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb3a4461-a1ce-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 15:53:02 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2fb56cb61baso52789281fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 06:53:02 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff178f3ca9sm24111981fa.41.2024.11.13.06.53.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 06:53: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: fb3a4461-a1ce-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzQiLCJoZWxvIjoibWFpbC1sajEteDIzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZiM2E0NDYxLWExY2UtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTA5NTgyLjMxNDc1Nywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731509582; x=1732114382; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=L51Zyjy/dO/0R9bMg+bmqTswn/SVfcUyqvgNffwRYEs=;
        b=jmJJkDMalrRlff0jLq3OFVh8dvf7sOM6S9gRtbdSeS5xlem5+mfkmUxI1LM/n+7/+H
         3wC5xwE7Zhl8ANVyQNhq0NYq98x/5314+bPxc8PUbfRj8Vxc+9jVkkAr7MICZnPWlCMg
         13Yc//VlNS73vFtV+gN6aJLbmOyNFLaTYtGO13jHNIfi1KP8pmgnQZ/55s805e4+oZq8
         hWzg4xieAn4XWC9XD5AyKjTL6srMj/qlcxI4lQCdpqJHU+5iLG/HMcPPFS1LRwyEKjwi
         xImRqiG5LTvFltlKFkcDt8zGYILGUfR6Pta6sA+77UQJ/cVEL5V9iD3KMp0bPbYyaDYw
         /2oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731509582; x=1732114382;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=L51Zyjy/dO/0R9bMg+bmqTswn/SVfcUyqvgNffwRYEs=;
        b=uzhYA7jBluRwGky6CN51KVGWz1iz+TBakTm1ft7DuhQtknb0qS8MotGPtFnaztJcoT
         0zQdajs58N/wsqJWqGNX0//pe9yKjZX4WfRcIii3i2fQ4KKdWIWz7z9qQJ5UAIYq9KeL
         vaNbOMXqZdGumve1HQGiV34rPfzxH8kAnAr0jc94xHGhIImCub3Jf0neAb+rQ86kcQOb
         GIrodLL2RCxh6JU2pVewG0ZK6ZV4AaseyWV6QDgh2qhKyzuK2gqKh6YmYFR8de6sUUVc
         zjpSwIN8RdJjAJQIe43QWni2mg8oCCXn+qQ0/HNUC2vnvfQ4q1KvydMrV+y4u6v3BwyD
         swRQ==
X-Forwarded-Encrypted: i=1; AJvYcCUduFjapTUsXWjkbW3nCnLkpK0WH30Ev+HLGeLzqOWRWrkrGNjvonkBZyxnZZbUSbjhINouQ/rcay8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUXnXkik0nJb52dYy5NxUwI+PgSPqpMPeLaPtg2x3m2ru889kV
	fPIMtLlTVm+5Qp5sRKqvh1xGF2jh/Le2fbIpT9MraTtOxUMMqNvL
X-Google-Smtp-Source: AGHT+IH8lyWhXQdhJHGEgAZMUuI3FoUVoduphY4ROvxdLHWLgOXcW15gWYUaFW0JEMrORPZ0jczTUQ==
X-Received: by 2002:a2e:b8c6:0:b0:2fb:4bee:47ec with SMTP id 38308e7fff4ca-2ff4c6332a5mr23006151fa.33.1731509581594;
        Wed, 13 Nov 2024 06:53:01 -0800 (PST)
Message-ID: <0ac663fc22d0b3dc28abdc31b1e020f7a72ec034.camel@gmail.com>
Subject: Re: Xen 4.20 Development Update [August-October]
From: oleksii.kurochko@gmail.com
To: =?ISO-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>, Xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Kelly Choi <kelly.choi@cloud.com>
Date: Wed, 13 Nov 2024 15:53:00 +0100
In-Reply-To: <8205ea71-858c-4552-819f-2b9753457034@suse.com>
References: 
	<CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
	 <8205ea71-858c-4552-819f-2b9753457034@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Wed, 2024-11-13 at 14:25 +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 12.11.24 17:16, Oleksii Kurochko wrote:
> > Hello everyone,
> >=20
> > This email only tracks big items for xen.git tree. Please reply for
> > items you
> > would like to see in 4.20 so that people have an idea what is going
> > on and
> > prioritise accordingly.
> >=20
> > You're welcome to provide description and use cases of the feature
> > you're
> > working on.
> >=20
> > =3D Timeline =3D
> >=20
> > ---> We are here
> > * Last posting date: Nov 29, 2024
> > * Feature freeze date: Dec 20, 2024
> > * Hard code freeze: Jan 17, 2025
> > * RC1: TBD
> > * Release: Feb 21, 2025
> > ( current release schedule: https://wiki.xenproject.org/wiki/=C2=A0
> > Xen_Project_X.YY_Release_Notes <https://wiki.xenproject.org/wiki/=C2=A0
> > Xen_Project_X.YY_Release_Notes> )
> >=20
> > All patches that wish to go into 4.20 must be posted no later than
> > the last posting
> > date. All patches posted after that date will be automatically
> > queued
> > into next release.
> >=20
> > RCs will be arranged immediately after freeze.
> >=20
> > =3D Projects =3D
> >=20
> > =3D=3D Hypervisor =3D=3D
> > * =C2=A0stubdom: reduce xenstore library dependencies (v1)
> > =C2=A0=C2=A0 - =C2=A0Juergen Gross
> > =C2=A0=C2=A0 -
> > https://lore.kernel.org/xen-devel/20241010155459.22389-1-jgross@suse.co=
m/T/
> > =C2=A0
> > #m8b5af386e2d288961bb6e8f7839650e0cab96a83
> > <https://lore.kernel.org/xen-=20
> > devel/20241010155459.22389-1-jgross@suse.com/T/=20
> > #m8b5af386e2d288961bb6e8f7839650e0cab96a83>
>=20
> This one has been applied already.
Thanks for notifying, I will move it to completed section.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 15:14:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 15:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835812.1251662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBF4r-0007zS-5j; Wed, 13 Nov 2024 15:14:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835812.1251662; Wed, 13 Nov 2024 15: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 1tBF4r-0007zL-3A; Wed, 13 Nov 2024 15:14:41 +0000
Received: by outflank-mailman (input) for mailman id 835812;
 Wed, 13 Nov 2024 15:14: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 1tBF4p-0007zE-P4
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 15:14: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 1tBF4p-003ISK-0b;
 Wed, 13 Nov 2024 15:14:39 +0000
Received: from [2a02:8012:3a1:0:2c06:4644:c8a3:2b5e]
 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 1tBF4p-0039aN-0Q;
 Wed, 13 Nov 2024 15:14: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=zn9lsV5UU1QuhWU2/07ayJVrSh3OXaaIFcqLKMhUkIU=; b=3r5iIR/PkP/Exv2jzKqJSXW1ds
	VQCX27zPbWJSffEhlbM4I4b9+g7Rw/bu9nXHgI4NGMQMExgA/vcajXe15UaMqB8qkDCVcLFhQgznd
	8UgPWC5uBQoeJfv2rKAhmF3X8AIWNeeDZsDjoItZ54WbSXiR7j2PxNy/7biieeYNbNgQ=;
Message-ID: <c7f818b8-5dc7-4b16-a5ca-050af6c36be4@xen.org>
Date: Wed, 13 Nov 2024 15:14:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <f0928350-0031-4f74-a61a-778e68a9f67b@xen.org>
 <FA425FB4-7B3D-4FF0-9C94-2E5D8ECA1502@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <FA425FB4-7B3D-4FF0-9C94-2E5D8ECA1502@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 13/11/2024 14:33, Luca Fancellu wrote:
> Hi Julien,

Hi,

>> On 13 Nov 2024, at 14:01, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Luca,
>>
>> On 06/11/2024 13:41, Luca Fancellu wrote:
>>> There are some cases where the device tree exposes a memory range
>>> in both /memreserve/ and reserved-memory node, in this case the
>>> current code will stop Xen to boot since it will find that the
>>> latter range is clashing with the already recorded /memreserve/
>>> ranges.
>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>> in the /memreserve/ part and even in this case this will prevent
>>> Xen to boot since it will see that the module memory range that
>>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>>> range.
>>> When Xen populate the data structure that tracks the memory ranges,
>>> it also adds a memory type described in 'enum membank_type', so
>>> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
>>> function to check for exact memory range match given a specific memory
>>> type; allowing reserved-memory node ranges and boot modules to have an
>>> exact match with ranges from /memreserve/.
>>> While there, set a type for the memory recorded during ACPI boot.
>>
>> I am a bit confused which you mention only ACPI boot. Isn't the path also used when booting using Device-Tree?
> 
> right, maybe this should be:
> 
> â€œWhile there, set a type for the memory recorded using meminfo_add_bank() from eft-boot.h."
> 
>>>
>>>   static bool __init meminfo_overlap_check(const struct membanks *mem,
>>>                                            paddr_t region_start,
>>> -                                         paddr_t region_size)
>>> +                                         paddr_t region_size,
>>> +                                         enum membank_type allow_match_type)
>>
>> Looking at the callers, you only seem to pass MEMBANK_FDT_RESVMEM or MEMBANK_NONE. So I wonder whether it actually make sense to introduce MEMBANK_NONE. Wouldn't it be better to have a boolean indicating whether we are looking for FDT_RESVMEM?
> 
> I wanted to give a more generic approach, but you are right, we could have a boolean like allow_match_memreserve.
> 
> 
>>
>>>   {
>>>       paddr_t bank_start = INVALID_PADDR, bank_end = 0;
>>>       paddr_t region_end = region_start + region_size;
>>> @@ -113,12 +114,16 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
>>>           if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
>>>                region_start >= bank_end )
>>>               continue;
>>> -        else
>>> -        {
>>> -            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
>>> -                   region_start, region_end, i, bank_start, bank_end);
>>> -            return true;
>>> -        }
>>> +
>>> +        if ( (allow_match_type != MEMBANK_NONE) &&
>>> +             (region_start == bank_start) && (region_end == bank_end) &&
>>
>> Why is this only an exact match?
> 
> Apparently what we are fixing is only a case where memreserve regions matches exactly modules or reserved_mem nodes.

TBH, as I replied to Michal, I don't understand why we are just focusing 
on just one issue. It would be good to provide some rationale.

> 
>>
>>> +             (allow_match_type == mem->bank[i].type) )
>>> +            continue;
>>> +
>>> +        printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
>>> +                region_start, region_end, i, bank_start, bank_end);
>>> +        return true;
>>> +
>>>       }
>>>         return false;
>>> @@ -169,9 +174,14 @@ void __init fw_unreserved_regions(paddr_t s, paddr_t e,
>>>    * with the existing reserved memory regions defined in bootinfo.
>>>    * Return true if the input physical address range is overlapping with any
>>>    * existing reserved memory regions, otherwise false.
>>> + * The 'allow_match_type' parameter can be used to allow exact match of a
>>> + * region with another memory region already recorded, but it needs to be used
>>> + * only on memory regions that allows a type (reserved_mem, acpi). For all the
>>> + * other cases, passing 'MEMBANK_NONE' will disable the exact match.
>>>    */
>>>   bool __init check_reserved_regions_overlap(paddr_t region_start,
>>> -                                           paddr_t region_size)
>>> +                                           paddr_t region_size,
>>> +                                           enum membank_type allow_match_type)
>>>   {
>>>       const struct membanks *mem_banks[] = {
>>>           bootinfo_get_reserved_mem(),
>>> @@ -190,8 +200,21 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
>>>        * shared memory banks (when static shared memory feature is enabled)
>>>        */
>>>       for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
>>> -        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
>>> +    {
>>> +        enum membank_type type = allow_match_type;
>>> +
>>> +#ifdef CONFIG_STATIC_SHM
>>> +        /*
>>> +         * Static shared memory banks don't have a type, so for them disable
>>> +         * the exact match check.
>>> +         */
>>
>> This feels a bit of a hack. Why can't we had a default type like you did in meminfo_add_bank()?
> 
> This is the structure:
> 
> struct membank {
>      paddr_t start;
>      paddr_t size;
>      union {
>          enum membank_type type;
> #ifdef CONFIG_STATIC_SHM
>          struct shmem_membank_extra *shmem_extra;
> #endif
>      };
> };

Anonymous union are really annoying... So effectively in 
check_reserved_regions_overlap() we are hoping that the caller will not 
set allow_match_type to another value than MEMBANK_NONE for static 
memory. This is extremely fragile.

I can't think of another solution right now, but I am definitely not 
happy with this approach.

> 
> we did that in order to save space when static shared memory is not enabled, so we canâ€™t have the
> type for these banks because we are already writing shmem_extra.
> 
> We could remove the union but in that case we would waste space when static shared memory is
> enabled.

Can you remind me how much memory this is going to save?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 15:20:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 15:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835820.1251672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFAV-00016d-Nh; Wed, 13 Nov 2024 15:20:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835820.1251672; Wed, 13 Nov 2024 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 1tBFAV-00016W-L9; Wed, 13 Nov 2024 15:20:31 +0000
Received: by outflank-mailman (input) for mailman id 835820;
 Wed, 13 Nov 2024 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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBFAU-000158-Di
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 15:20:30 +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 cd9b614e-a1d2-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 16:20:23 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9ec86a67feso1223940866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 07:20:23 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0a17635sm875703466b.17.2024.11.13.07.20.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 07:20: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: cd9b614e-a1d2-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNkOWI2MTRlLWExZDItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTExMjIzLjgxMjAxMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731511223; x=1732116023; 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=k8CNA90Q7I99YasGB+LdI1N5NvD0C301cHI5yI+RCac=;
        b=Q8difbekgClrSRjKdSVJNn11x/2xlEYxcotdnv58pXT3YTgAxLRG5hGYifo3qq+mWY
         Nm5qFbb0n/IrJCKQP/l3OYyirKdR5N6Hb0DSeWT8JGDNvT8iSac9ZD8+HAvnDvX8fCaF
         tfXbDwB3oyAgcZtDL04TSXrMOCV9qk6RR6tjw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731511223; x=1732116023;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k8CNA90Q7I99YasGB+LdI1N5NvD0C301cHI5yI+RCac=;
        b=rgGs1OacQOmLBTqiCtlkzIoTxSC0m4M0Mz2bCQsfyLgTMIExj/NwKK/bm2b7a8Yt7S
         Vok/2u4FnwPKk/CxmnhcbSz0Ap5JOf+BpzPdqR/NXoy9OREZZV7rJ3BcxMXg18uRTygo
         CsHecffQPVm+b9xU4p6DeBcwpc75peM91jIGmaIRTpBMHif6zJYt9jScTN4T7ZDQY/3a
         A5k4gvywgPCTajhTdS4xvNDZOdweilmXzXGIX5qij8mquFuiD6CQljoXt3/kiiX1GfGy
         t7LotcMgyQVe++wltbHAMtqSucKnHZPK/ygFfbmIRBwO8RVz+BAiNCYcU4DjeRkdwIzq
         5WmQ==
X-Forwarded-Encrypted: i=1; AJvYcCUnr63UtGKtsGZHcptUzFczFOWBMP8g2jgZJODABCoPxnZAFaa+6S2mZ19jn9BQLdH95BAAnmQVujk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZD2v4Rk3PccmJm+xnwz09cVd20LyDsgOibRrszgXXf3BVzkHj
	/R739chEOA7h6m0iW/QIb06pi3Vg5Zxq4TvvISIj/3GhLhjaYTA6qr2p2TECMT0=
X-Google-Smtp-Source: AGHT+IHOrSZHhh0t9SF2YQNGaY8jraJZca/oOt547l4bl9EBzN5SjSDfI1Sw9izErW78las/3pRCXw==
X-Received: by 2002:a17:907:6ea4:b0:a9a:515:1904 with SMTP id a640c23a62f3a-a9eeff0dc1bmr2079498066b.15.1731511222955;
        Wed, 13 Nov 2024 07:20:22 -0800 (PST)
Message-ID: <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
Date: Wed, 13 Nov 2024 15:20:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/11/2024 1:00 pm, Jan Beulich wrote:
> All,
>
> the release is due by the end of the month. Please point out backports you find
> missing from the respective staging branch, but which you consider relevant.

Looking over the XenServer patchqueue:

These are all bugfixes, some that came from customer bugs:

e42e4d8c3e2c: tools/misc: xen-hvmcrash: Inject #DF instead of
overwriting RIP
42db2deb5e76: tools/libxs: Fix length check in xs_talkv()
ba709d514aac: x86/viridian: Clarify some viridian logging strings
d81dd3130351: x86/shutdown: change default reboot method preference
0d69635d27cb: tools/ocaml: Remove '-cc $(CC)' from OCAMLOPTFLAGS
8ffcf184affb: tools/ocaml: Fix OCaml libs rules
126293eae648: tools/ocaml: Drop the OCAMLOPTFLAG_G invocation
1965e9a93074: tools/ocaml: Fix the version embedded in META files
e58a2858d588: x86/boot: Preserve the value clobbered by the load-base
calculation

This is a diagnostic improvement, also from a customer bug:

2f413e22fa5e: x86/msr: add log messages to MSR state load error paths

These are a SIGPIPE bugfix which happen to also have a perf
improvement.Â  I cant remember if we discussed backporting them before.Â 
(Juergen/Anthony?)

42db2deb5e76: tools/libxs: Fix length check in xs_talkv()
e2a93bed8b9e: tools/libxs: Rework xs_talkv() to take xsd_sockmsg within
the iovec
f050c03ce2ad: tools/libxs: Rationalise the definition of struct xs_handle
046efe529e82: tools/libxs: Track whether we're using a socket or file
ebaeb0c64a6d: tools/libxs: Use writev()/sendmsg() instead of write()
a17b6db9b007: tools/libxs: Stop playing with SIGPIPE

These are from a livepatching snafu:

3a28da8f4daf: xen/livepatch: remove useless check for duplicated sections
8c81423038f1: xen/livepatch: drop load_addr Elf section field
86d09d16dd74: xen/livepatch: simplify and unify logic in prepare_payload()
fa49f4be413c: xen/livepatch: do Xen build-id check earlier
aa5a06d5d6ed: x86/alternatives: do not BUG during apply

where the buildid check is much too late.


And from looking at staging:

fa2d8318033e: x86/cpu-policy: Extend the guest max policy max leaf/subleaves

This fixes a real issue on older AMD systems.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 15:24:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 15:24:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835827.1251684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFEZ-0001tp-9x; Wed, 13 Nov 2024 15:24:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835827.1251684; Wed, 13 Nov 2024 15:24: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 1tBFEZ-0001ti-5N; Wed, 13 Nov 2024 15:24:43 +0000
Received: by outflank-mailman (input) for mailman id 835827;
 Wed, 13 Nov 2024 15:24: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=l7vR=SI=intel.com=dave.jiang@srs-se1.protection.inumbo.net>)
 id 1tBFEX-0001ta-Ky
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 15:24:41 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63188b79-a1d3-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 16:24:36 +0100 (CET)
Received: from fmviesa002.fm.intel.com ([10.60.135.142])
 by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 13 Nov 2024 07:24:33 -0800
Received: from spandruv-desk1.amr.corp.intel.com (HELO [10.125.111.237])
 ([10.125.111.237])
 by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 13 Nov 2024 07:24: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: 63188b79-a1d3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5Mi4xOTguMTYzLjExIiwiaGVsbyI6Im1nYW1haWwuaW50ZWwuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYzMTg4Yjc5LWExZDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTExNDc2LjczNjExMywic2VuZGVyIjoiZGF2ZS5qaWFuZ0BpbnRlbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1731511476; x=1763047476;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=/Qs+Z4ETO6HBDD0/r4vq50xWIIZZXaOFQHJesHfkTbA=;
  b=lez+1czYEh4IsGdAKFu4AqBLb6GlTOsWzsnghDShYc61+vTh66hFndZO
   f7A3LZsLZ9tstTtI6gz5kDtDCHoCpZv/e75BYPymhfWCkCgOrWELAa8LN
   y0gls4BaNLwPtofitzjj0xx+2CKAX7j5EWRuv4FzExw8tDyAI0Bt6vQ61
   egkqXlBZ8Z6EJTxbPOgC4u2wzC/aNBQ8+VTJkJW9xH7MHoni9JfNPTOEx
   UTxO2RLuwVSVugWSwYR2m2PKSeVsvOuF/OGC7joTNZjMbtNHVo4LrE7P/
   qfaNn+qJmHs6F12usZGQk1vrjFm45vOOH0WsOFCdvKhKP2tBRDG+mky3k
   w==;
X-CSE-ConnectionGUID: DHbbedNLQlejMxVqEgeWNg==
X-CSE-MsgGUID: erdx9nabQ+G1q3+RNyY69w==
X-IronPort-AV: E=McAfee;i="6700,10204,11254"; a="42038090"
X-IronPort-AV: E=Sophos;i="6.12,151,1728975600"; 
   d="scan'208";a="42038090"
X-CSE-ConnectionGUID: Eu78RBWmRsK0vvilN+bwhQ==
X-CSE-MsgGUID: u7LspSQgTTqwqS7xt+wrPQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.12,151,1728975600"; 
   d="scan'208";a="111214069"
Message-ID: <decf5296-1c9b-49ab-8556-55a199e214ed@intel.com>
Date: Wed, 13 Nov 2024 08:24:27 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/11] net/ntb: Use never-managed version of pci_intx()
To: Philipp Stanner <pstanner@redhat.com>, Damien Le Moal
 <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>,
 Basavaraj Natikar <basavaraj.natikar@amd.com>, Jiri Kosina
 <jikos@kernel.org>, Benjamin Tissoires <bentiss@kernel.org>,
 Arnd Bergmann <arnd@arndb.de>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov
 <oakad@yahoo.com>, Sudarsana Kalluru <skalluru@marvell.com>,
 Manish Chopra <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Rasesh Mody <rmody@marvell.com>, GR-Linux-NIC-Dev@marvell.com,
 Igor Mitsyanko <imitsyanko@quantenna.com>,
 Sergey Matyukevich <geomatsi@gmail.com>, Kalle Valo <kvalo@kernel.org>,
 Sanjay R Mehta <sanju.mehta@amd.com>,
 Shyam Sundar S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>,
 Allen Hubbe <allenbh@gmail.com>, Bjorn Helgaas <bhelgaas@google.com>,
 Alex Williamson <alex.williamson@redhat.com>, Juergen Gross
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Mario Limonciello <mario.limonciello@amd.com>, Chen Ni <nichen@iscas.ac.cn>,
 Ricky Wu <ricky_wu@realtek.com>, Al Viro <viro@zeniv.linux.org.uk>,
 Breno Leitao <leitao@debian.org>, Kevin Tian <kevin.tian@intel.com>,
 Thomas Gleixner <tglx@linutronix.de>, Mostafa Saleh <smostafa@google.com>,
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Jason Gunthorpe <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>,
 Kunwu Chan <chentao@kylinos.cn>, Ankit Agrawal <ankita@nvidia.com>,
 Christian Brauner <brauner@kernel.org>,
 Reinette Chatre <reinette.chatre@intel.com>,
 Eric Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-input@vger.kernel.org, netdev@vger.kernel.org,
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20241113124158.22863-2-pstanner@redhat.com>
 <20241113124158.22863-6-pstanner@redhat.com>
Content-Language: en-US
From: Dave Jiang <dave.jiang@intel.com>
In-Reply-To: <20241113124158.22863-6-pstanner@redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 11/13/24 5:41 AM, Philipp Stanner wrote:
> pci_intx() is a hybrid function which can sometimes be managed through
> devres. To remove this hybrid nature from pci_intx(), it is necessary to
> port users to either an always-managed or a never-managed version.
> 
> hw/amd and how/intel enable their PCI-Device with pci_enable_device().
> Thus, they need the never-managed version.
> 
> Replace pci_intx() with pci_intx_unmanaged().
> 
> Signed-off-by: Philipp Stanner <pstanner@redhat.com>
> Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> #for ntb_hw_amd.c

Acked-by: Dave Jiang <dave.jiang@intel.com> # for ntb_hw_gen1.c
> ---
>  drivers/ntb/hw/amd/ntb_hw_amd.c    | 4 ++--
>  drivers/ntb/hw/intel/ntb_hw_gen1.c | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c
> index d687e8c2cc78..b146f170e839 100644
> --- a/drivers/ntb/hw/amd/ntb_hw_amd.c
> +++ b/drivers/ntb/hw/amd/ntb_hw_amd.c
> @@ -791,7 +791,7 @@ static int ndev_init_isr(struct amd_ntb_dev *ndev,
>  err_msi_enable:
>  
>  	/* Try to set up intx irq */
> -	pci_intx(pdev, 1);
> +	pci_intx_unmanaged(pdev, 1);
>  
>  	rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED,
>  			 "ndev_irq_isr", ndev);
> @@ -831,7 +831,7 @@ static void ndev_deinit_isr(struct amd_ntb_dev *ndev)
>  		if (pci_dev_msi_enabled(pdev))
>  			pci_disable_msi(pdev);
>  		else
> -			pci_intx(pdev, 0);
> +			pci_intx_unmanaged(pdev, 0);
>  	}
>  }
>  
> diff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.c b/drivers/ntb/hw/intel/ntb_hw_gen1.c
> index 079b8cd79785..9ad9d7fe227e 100644
> --- a/drivers/ntb/hw/intel/ntb_hw_gen1.c
> +++ b/drivers/ntb/hw/intel/ntb_hw_gen1.c
> @@ -445,7 +445,7 @@ int ndev_init_isr(struct intel_ntb_dev *ndev,
>  
>  	/* Try to set up intx irq */
>  
> -	pci_intx(pdev, 1);
> +	pci_intx_unmanaged(pdev, 1);
>  
>  	rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED,
>  			 "ndev_irq_isr", ndev);



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 15:25:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 15:25:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835836.1251693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFFT-0002UY-MA; Wed, 13 Nov 2024 15:25:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835836.1251693; Wed, 13 Nov 2024 15:25: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 1tBFFT-0002UM-ID; Wed, 13 Nov 2024 15:25:39 +0000
Received: by outflank-mailman (input) for mailman id 835836;
 Wed, 13 Nov 2024 15:25: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=90UW=SI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tBFFR-0002UA-RZ
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 15:25:37 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2612::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 848288c6-a1d3-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 16:25:30 +0100 (CET)
Received: from AS8PR04CA0089.eurprd04.prod.outlook.com (2603:10a6:20b:313::34)
 by DU0PR08MB8044.eurprd08.prod.outlook.com (2603:10a6:10:3e8::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Wed, 13 Nov
 2024 15:25:27 +0000
Received: from AMS0EPF00000197.eurprd05.prod.outlook.com
 (2603:10a6:20b:313:cafe::5d) by AS8PR04CA0089.outlook.office365.com
 (2603:10a6:20b:313::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Wed, 13 Nov 2024 15:25:27 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) 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.8158.14
 via Frontend Transport; Wed, 13 Nov 2024 15:25:26 +0000
Received: ("Tessian outbound 05494c577252:v490");
 Wed, 13 Nov 2024 15:25:26 +0000
Received: from La99b3ecbcf90.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 AB837402-3D53-4653-B97F-A13EF665A8FE.1; 
 Wed, 13 Nov 2024 15:23:18 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 La99b3ecbcf90.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 Nov 2024 15:23:18 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by AS2PR08MB10082.eurprd08.prod.outlook.com (2603:10a6:20b:62f::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Wed, 13 Nov
 2024 15:23:11 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%5]) with mapi id 15.20.8158.013; Wed, 13 Nov 2024
 15:23: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: 848288c6-a1d3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjJlIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijg0ODI4OGM2LWExZDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTExNTMwLjg2NDQyNSwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=A14jSgyVlG8tGeVUoCwVEV6+eYah8dRHyXrjsAf8wV0wFhETZgKPn2BCjjckrDos7ryGGmTsCy17QqavIpOS9CYQ+hSxXVdvZlsLcF0x6bAMADQrFBbcWY2NCJSsnURVSrLZnJ9XmqDy7IMNfwDtpT+WXhaHpsfNMLm6hMURPymDhowT8EnVXua09/KfrN3O2zw1LjsagkjfLmB3TsXWcaRXFkxRfSzjgygv9HJCupg5ILiBvVvgArvVPz7cX+XMWarAf0pgrwL2ROYsbc98CHiIxczsnWli6GtsVTWeKKe7+gFZikiwhO1LAmxrHuzRQWXvjzab807RR0Q/L7bDsg==
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=piX8dTRax2KCFBGw4p6kThzeyCkVwOLt3rVD2EGS5lM=;
 b=bAdpOlO2BAH7m0/yYynkRAFsibp+zuuKMtSvEbXYfE1GKeXVB9nfRwkDY9lLDEkQcPnt7qqbiRRGaIBhJQaiu1d6ZA9ItasnkH2lRm29/rsaGIsYfKr+Zz3x3kYuktVDTVHuXi8Uuld10Juh8RDvvUHxmHOKMgyIS20J0W59VFjb7RxzMMEycTuzh0ZSIzYuwVifjL3PeUZ5UtR0U5ohus+NKonoidBd0WQdqqWDvwm1Bgfh2qN+yVjh7+YcK24d6gwrIveFBwxupyBAmlYlUj0Z4QrGmbcNt45Vk2f5jSn+reNPMJYTFCK6oz5jsoBp1wSslljoh5zecNSMFr2fdA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=piX8dTRax2KCFBGw4p6kThzeyCkVwOLt3rVD2EGS5lM=;
 b=N+badYRjYyF5ecfPzJa5gEhKRzc92AAUCOeT4no9dLa2tz8Y54lXKWaMHSaNhu4ScBy8rmTHJoUZtwrKymLP8EVmPUOFrwMHEKjtv3jHjoDigldBGinkinkkX84PUefFE3Z4rbhnyCy4/iubThJN+SQptAugjX1jTE8aGiBQ+0o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 064d4a4672b12934
X-TessianGatewayMetadata: NGp2OkZ1PelHMr6PBGxpqPF4JhXFJdRCfKpSgeR9NEHwHCd4Uc+Ir/P+LJt56ieq5IFxB8mcA/OHu8GTtv/TQYaZmS6BfWdh3ozScKRi9yDnLVx0WA/4eGO0av+hK7MVvkhiKhtDA1FzwYPHpV0q4YcUZlHbUlOD96iXnjPDu/w=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bVRYkXVW5PghQ44QGOlItxSQnZYe21b/alp9T6GS0aBd0Jices6mUcOFx1zgzsvQ6vdq/2tVMboQZoFkx2ngOUFK9GelpC4NKFpTnLOdpSP/EE3VMPRmRa+sGYuwc4z9yQPJevJ7IUgz7WyaunmhYJjkwSf5r1itXors7orm47HwwaD0hzYPmZV3qeFCst5p8q4WyInqpOa8iFe7cR36V2LSQEXM/t7n3l10+gVN0wlTe4Ps96YsJ6fziZg67pEGV0x5mm/wrO94ihlXSykqOF1nCPSMfpGUCB9RHlnmFHfyT5YD5gw03D8xjlx44ejCO1MhNy9KoW0q+lvOtWamJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=piX8dTRax2KCFBGw4p6kThzeyCkVwOLt3rVD2EGS5lM=;
 b=LNljOWIEkXGbk5vNtWZnb1Rk86KLq8Df0QzHqsVY6mcYqH7rYq6ruJa1uLV3ROn7L10YvJ7mfYHh2an7WuH0oxUi0Eit6c3cm4JxZJZLtXD8fiO8BsZiuVQa2ZhwvUkC1ifPYpVI2Y1YmwQHIzYA5yandxmdYGb7Q8GueLt5ymukxWs3UMn/3o3r4P8VqWBNsX/sDkrcPbrYNpRRBYI610oF/HzcocjzT3Y2xXobJXKaOCm0Bt+GP4FazM8rZYawNR3ERxDCcTCjYJPSS/8thDszpfRjtiKbjqid22+3DSjAXEvlqo/A50ClP4+tTqvWiY563ykOsBXSoz6eyW02bA==
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=piX8dTRax2KCFBGw4p6kThzeyCkVwOLt3rVD2EGS5lM=;
 b=N+badYRjYyF5ecfPzJa5gEhKRzc92AAUCOeT4no9dLa2tz8Y54lXKWaMHSaNhu4ScBy8rmTHJoUZtwrKymLP8EVmPUOFrwMHEKjtv3jHjoDigldBGinkinkkX84PUefFE3Z4rbhnyCy4/iubThJN+SQptAugjX1jTE8aGiBQ+0o=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Kelly Choi
	<kelly.choi@cloud.com>
Subject: Re: Xen 4.20 Development Update [August-October]
Thread-Topic: Xen 4.20 Development Update [August-October]
Thread-Index: AQHbNR5PhCaakyOetU2B1BUXrcTlIrK1LmyAgAAeQICAAAjwAA==
Date: Wed, 13 Nov 2024 15:23:11 +0000
Message-ID: <80059223-13D4-4652-B80A-53AF75D8EF66@arm.com>
References:
 <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
 <51B2EC23-B47D-4782-ADD8-C2201B380C12@arm.com>
 <15719907f015f7315131dc8725dcda18dbc2dfa6.camel@gmail.com>
In-Reply-To: <15719907f015f7315131dc8725dcda18dbc2dfa6.camel@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.3776.700.51)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|AS2PR08MB10082:EE_|AMS0EPF00000197:EE_|DU0PR08MB8044:EE_
X-MS-Office365-Filtering-Correlation-Id: 91b3e138-86ad-4c3c-8e8c-08dd03f76679
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?clJvSVFHREVqYzN1dS9makNVZm50YmVyT0RLdFNVTVZobjYwL0xweks5SEJX?=
 =?utf-8?B?R2dUWmxZMlppRGp1S0NQSi84ajJRSFdwYmpzN2VxSnBibEJwdW5mWDdFSWtC?=
 =?utf-8?B?ZkNINlNxdjA1bDBqQW9aUHgxMWh5MC9mMk1UeGRWWm9GY3c1RytvZWcxNXRV?=
 =?utf-8?B?aVlKVWF5SzZRbkEwNGI0bHplN1RFOWwvazhsOVhaMGhMN2hWeEsyZVRaMWYr?=
 =?utf-8?B?R0puRlNRNEcreStVRnZzczFwUHpNd2thWmxhSDRNWElqUU04TFFla24zS1hy?=
 =?utf-8?B?WTlMYUpURFhqblNlRWVhMjFrZGdhWjNEcU9PNGRGelRaVmNqNTBLYy9Td1pO?=
 =?utf-8?B?c29rbWVuc1I2MEZhNDE3c1dSVXhFanVrNUtRT2huaHRyZ3A1K3loUE1UMVRW?=
 =?utf-8?B?clBOckpwOWc3d2sweittMFh1WHdTODdBMW16N3ZqTGFJTnFFVDF3ZTdQdEp5?=
 =?utf-8?B?VVAzY1Jsd2dkZm02UEV5QUR1dFYrQ2c5WlgzaytJNzUwWml1NHoxU2NueS91?=
 =?utf-8?B?U1VkbElYK09lQXhQeVVSR3BOdW9UczBqdXJuS3lxYlk3RCtuMHUzZ0ZXaGJz?=
 =?utf-8?B?aHVOaytSUWJSUkp0d3BoczRERFBzNWJTcDZPVkk5VEpzanJPY0duZm1SSGFu?=
 =?utf-8?B?eXZ5R2J6T1NCV3JGSE1XTmF2QUZCcExOVWZqNUE4UXNsUTFPTFBvcmlJbld5?=
 =?utf-8?B?QTZqanBLUlJUb1h3MllGSE9TOHlGM002S09kVStJMmR0SkRZNCtrSEtCOHlp?=
 =?utf-8?B?a2dNdmpNK2VSTm94ZU1IK1h5b2RScldSKzZ2MmlKV0pXaGpyWUJodlJIZGhS?=
 =?utf-8?B?RWxVZ0hmNVYvNDVGYnNmcE04Yk5hRzNEdW52dmZ5NGNVVTI5QVZ5bXgraldt?=
 =?utf-8?B?aWdKZUFsdVZuZVEwVERZdHVFemwxMnArQWw1c0lEREQ5U2Y3dGpDNy94QVpv?=
 =?utf-8?B?YWNwTU16NFNRK3F2WTNQaDJEWUR0Z2RPczQzZERJWlVQdmlzZlp5TGhXamZB?=
 =?utf-8?B?a29ZMlhzRnRyYUU2OGdvYVNSSnhGWHlLcW1BSnhTTk53Qzg4TzZrbWlxTFBQ?=
 =?utf-8?B?RExZSk1ONno5dG5CSUxnU3IzaTNsLzVMUmRWNzFLK0plOUdDWURhWnRWcHFJ?=
 =?utf-8?B?TitxdHNDN3RDT3dIRWFxNVVXNjFGVmIyVC8rWmkvYTBva1N2WkhvRkszQzIr?=
 =?utf-8?B?ZjBxOEhiSTJrbXZ6a2s0Ty9VTENoTytvZU1Nb3BBRXNBU3RhaXRDSjNNaGll?=
 =?utf-8?B?Wi9kY05zZFRhYndsa0NjUGRvSTI4ek1TL0dxV25HM1FqeDNabVJtTktjMkNz?=
 =?utf-8?B?b2s3ZUNXd3hjbUEwWDVjTFd6L3FUb1Y4OStxV01tM1l0L05tR2hPbDU1QU5M?=
 =?utf-8?B?dHY1T05NSWMrci83RTRFRnZBWEl0dWxaMnB1WGtkdzJJdlFrWXRRWm9pQmlH?=
 =?utf-8?B?alU3RE1mMjRFekxObGNGazhOaTV1SkJsV1BpQzFFa1VYTlZ4Yk11ZzFzRngx?=
 =?utf-8?B?clVhYVN6YlRHZGt2bTdIK09BRG55aWdmQk5UVTE0Um1LNVU4TnB4cWtGTE55?=
 =?utf-8?B?eGorSTEvNGtGUEt6UWdvRTNBTnA4UWhkeno2M0Myd3Y2L2lOQklvYlN1dXg0?=
 =?utf-8?B?aFlVV291RXpVb0Nmc3lVU01oaloraUkzYit4TWtxcW1sUHBGUFRMR2lwZ293?=
 =?utf-8?B?TGRpSy9ORWxRQkk5TElSeGhZajVIYm45aHZvOHVVQjZWemxEU1JPNXdFZm1U?=
 =?utf-8?Q?Ru5JsN6r8Dy6iwKTLvCSKY5W6G7eqqygzr/lq2T?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3D987AB443EA7746BABC172BF7EEA8F7@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10082
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:25a::24];domain=DB9PR08MB6588.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000197.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	abc68cb4-7f09-4812-e640-08dd03f715cc
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|35042699022|14060799003|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T1pvLy9JcmM4OHcxVVY1M2VkQnpIOGVSY3NLRjl1UytiOTJxZUtsenAyWkg1?=
 =?utf-8?B?SUt4YWJhTjJ2SUg4NkVtQmFWN051VTdFeWluaUwxakRhSlE5aVBSUFpHNnpW?=
 =?utf-8?B?OStrTWdQNFFReXJWZTNaWmdsd1JxbFNHZURNNlRpVVNWZmVGSy9CNDh3UERm?=
 =?utf-8?B?ZDloY3ViYy9TMWRhR2lNb3UvM2FmNWMzVXBoMVBlMi9qRmdpQnhnRDZpTDRw?=
 =?utf-8?B?SG9tdjl2c3FRY213Tit3bUZSZklGNVNIY3gycmhZbThJVmkvVnZxMEM3Zmdn?=
 =?utf-8?B?RkUzcFpNZHRsZzBmMTlXRGRyNG1iRkF0MFlrbSttdUNIREVGZE85NGRvaDZn?=
 =?utf-8?B?ZHBEYzRPQ3BOMitIM3JLOHJ4VC9LSHM0ak9jL0tVM3E4Q05VTEFoZ2oxb2g2?=
 =?utf-8?B?Y2xabFo1dmU4eVdIcVB0VkxpR2JxaEZBbjJLNThXS25sWGcvVkJmWEtObVNw?=
 =?utf-8?B?eXdBYVVsQk1zVjhRQm5lbWtNbFpoRytSUnJ5QnJhM2V4TElSQmNJTnhOTVlo?=
 =?utf-8?B?WWtEbHRwdmJXZjg5K0VFU0ZPMldtVGduZkY5VlA0QmZ0SEUwSlV2L3BWVmJT?=
 =?utf-8?B?eUJOOTFqbWVncEExNEZuaUtFSjFjQTBrTjd5VXh1NjNrZHF3R0dmN1ora05D?=
 =?utf-8?B?Mm5DWk8zZHJFNXEzUjY3RWZ1OWRxemFLS21PSjZCTDFRUk1tVFEyNjY4T3E4?=
 =?utf-8?B?azliY282N0xtMUdKRmJ0V0tqTFdvd3FHSGNmd0JsWGV4a0JPNnA3SS91bC9E?=
 =?utf-8?B?aEZsS0ZKSU1wUURiL3NpQXRLYUNCSXZYVXpEdk5WV0k4YzRyVlkzQSt6a1Jk?=
 =?utf-8?B?TkFZQjhiMlhRcjJ2NjR4UlFKNkdNTTlXa1BoWldyelRBVWRScmxSOVIwbVRk?=
 =?utf-8?B?a2hockNlNklIY0VveHdKdDRRK1BDN1V4L2dzOTg1YW5pU3VZQ1RmMjBiSmlJ?=
 =?utf-8?B?dEhGM2FvTG5zY3RRS2YvSUdRV1cvd2l3T3FGR2FzSm9XRThmOHdnVlhjT1o2?=
 =?utf-8?B?aTIrbW56dmxUU2F6aXhvVGxHNDByQVZScW41ZnhlL3QzblJ2SkRqZWwwTG5k?=
 =?utf-8?B?Z0lGbWFpNmRJdS9FNU05TStqend3NWpVTzlyenNuUjZWZDU4YmFmK1pseTFV?=
 =?utf-8?B?R1Q0M0N1Vmx2YjkvKzFIMW8vWDVIYkhNczRiTDVpcnh6dzdlcnY2QWFodUdG?=
 =?utf-8?B?L3lEaXhmSTZWZWlsMk1UK2RsbjAxWGk2dnk4dXI0Wk9iT1E3MzVOSzk3QXU1?=
 =?utf-8?B?eFluOFFlb25GTWdSSGtFekpkVi8wdXV5MERqZGkyYmpBeWpoVy9nZHlBSnNG?=
 =?utf-8?B?M3VWdnRGL2VoSmJEamphcnVoREZDRW5QNUdQaVhaSmdoNXp3SXpFSzFGQnlo?=
 =?utf-8?B?bzR3VmZwTzJIN0crUkdYbjN0dTdGRTNnTzdoRGozeUxrejNqOC90b1RDQ0pV?=
 =?utf-8?B?WXNPSzZXYkJiYUpFQjRCZWs2dGNmeEVUcW5IbXZFenQ5aWNQWC9IaGpqb21l?=
 =?utf-8?B?Q1l5eFdwSXVFd3d3b0NPbDE5L1E0bXFVQm9rRDhrU3ZqaC9Qa2c1bHM3bTkv?=
 =?utf-8?B?V0llN0VhbEhUTHZoaU9LaWIwRElZRm5vOFMrYVVMNU1mNHA1K2Jlb2FkU1cx?=
 =?utf-8?B?OU1hd21DSllIdXdNaG56U0ZnZ1lxTnVUVHdlN2ZJOTRJRlJzTG83Sk5iL3dU?=
 =?utf-8?B?eHhXQ01rN1ZpTzRaNk05ejZTd0FQYzdTeUozRHd5SXk3ek9JcCt3UG9JZHhm?=
 =?utf-8?B?emwxYXdva1lMMHlZSG1HNWVqZ3F6OHJTYkthN0F2cllhY2ROZnhkK1VScTh6?=
 =?utf-8?Q?JYJJ1tVARdn3QsZ8GQH37jG8/xGHWnAHcSZ04=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(35042699022)(14060799003)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2024 15:25:26.6901
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 91b3e138-86ad-4c3c-8e8c-08dd03f76679
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.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: DU0PR08MB8044

SGksDQoNCj4gT24gMTMgTm92IDIwMjQsIGF0IDE0OjUxLCBvbGVrc2lpLmt1cm9jaGtvQGdtYWls
LmNvbSB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiANCj4gT24gV2VkLCAyMDI0LTExLTEz
IGF0IDEzOjAyICswMDAwLCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4gSGkgT2xla3NpaSwN
Cj4+IA0KPj4+IE9uIDEyIE5vdiAyMDI0LCBhdCAxNjoxNiwgT2xla3NpaSBLdXJvY2hrbw0KPj4+
IDxvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gSGVsbG8gZXZl
cnlvbmUsDQo+Pj4gDQo+Pj4gVGhpcyBlbWFpbCBvbmx5IHRyYWNrcyBiaWcgaXRlbXMgZm9yIHhl
bi5naXQgdHJlZS4gUGxlYXNlIHJlcGx5IGZvcg0KPj4+IGl0ZW1zIHlvdQ0KPj4+IHdvdWxkIGxp
a2UgdG8gc2VlIGluIDQuMjAgc28gdGhhdCBwZW9wbGUgaGF2ZSBhbiBpZGVhIHdoYXQgaXMgZ29p
bmcNCj4+PiBvbiBhbmQNCj4+PiBwcmlvcml0aXNlIGFjY29yZGluZ2x5Lg0KPj4+IA0KPj4+IFlv
dSdyZSB3ZWxjb21lIHRvIHByb3ZpZGUgZGVzY3JpcHRpb24gYW5kIHVzZSBjYXNlcyBvZiB0aGUg
ZmVhdHVyZQ0KPj4+IHlvdSdyZQ0KPj4+IHdvcmtpbmcgb24uDQo+Pj4gDQo+Pj4gPSBUaW1lbGlu
ZSA9DQo+Pj4gDQo+Pj4gLS0tPiBXZSBhcmUgaGVyZQ0KPj4+ICogTGFzdCBwb3N0aW5nIGRhdGU6
IE5vdiAyOSwgMjAyNA0KPj4+ICogRmVhdHVyZSBmcmVlemUgZGF0ZTogRGVjIDIwLCAyMDI0DQo+
Pj4gKiBIYXJkIGNvZGUgZnJlZXplOiBKYW4gMTcsIDIwMjUNCj4+PiAqIFJDMTogVEJEDQo+Pj4g
KiBSZWxlYXNlOiBGZWIgMjEsIDIwMjUNCj4+PiAoIGN1cnJlbnQgcmVsZWFzZSBzY2hlZHVsZToN
Cj4+PiBodHRwczovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9YZW5fUHJvamVjdF9YLllZX1Jl
bGVhc2VfTm90ZXMgKQ0KPj4+IA0KPj4+IEFsbCBwYXRjaGVzIHRoYXQgd2lzaCB0byBnbyBpbnRv
IDQuMjAgbXVzdCBiZSBwb3N0ZWQgbm8gbGF0ZXIgdGhhbg0KPj4+IHRoZSBsYXN0IHBvc3RpbmcN
Cj4+PiBkYXRlLiBBbGwgcGF0Y2hlcyBwb3N0ZWQgYWZ0ZXIgdGhhdCBkYXRlIHdpbGwgYmUgYXV0
b21hdGljYWxseQ0KPj4+IHF1ZXVlZA0KPj4+IGludG8gbmV4dCByZWxlYXNlLg0KPj4+IA0KPj4+
IFJDcyB3aWxsIGJlIGFycmFuZ2VkIGltbWVkaWF0ZWx5IGFmdGVyIGZyZWV6ZS4NCj4+PiANCj4+
PiA9IFByb2plY3RzID0NCj4+PiANCj4+PiA9PSBIeXBlcnZpc29yID09IA0KPj4+IA0KPj4+ICog
IFJlbW92ZSB0aGUgZGlyZWN0bWFwICh2NCkNCj4+PiAgIC0gIEVsaWFzIEVsIFlhbmRvdXppDQo+
Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9mNjk3MzI3NS0w
ZDdlLTRkYjQtYjk0OS1mMjFlNTMwZTFkZmNAY2l0cml4LmNvbS9ULyNtOTczM2FhNzE3ZWRmMDMy
ZGIwY2Y4ZjhmNjc2MzUzN2I0ZjMwYzFmOA0KPj4+IA0KPj4+ICogIHJlbW92ZSBsaWJ4ZW5jdHJs
IHVzYWdlIGZyb20geGVuc3RvcmVkICh2MSkNCj4+PiAgIC0gIEp1ZXJnZW4gR3Jvc3MNCj4+PiAg
IC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjQxMDIzMTMxMDA1
LjMyMTQ0LTEtamdyb3NzQHN1c2UuY29tL1QvI21kMDE2YzQ4YTA4ODk3NDBkMTgyMmFhNjhmN2Yz
M2Q0YWQ0OGY0ODA1DQo+Pj4gDQo+Pj4gKiAgYXV0b21hdGlvbjogUmVmcmVzaCB0aGUgcmVtYWlu
aW5nIERlYmlhbiBjb250YWluZXJzICh2MikNCj4+PiAgIC0gIEphdmkgTWVyaW5vDQo+Pj4gICAt
IA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzMwNzQzMDc3
LmdpdC5qYXZpLm1lcmlub0BjbG91ZC5jb20vVC8jbTVkOWFjYjdjZjVkYjNjMmJlM2Q2NTI3ZGUx
NGI2OWIwNzgxMjMxNGUNCj4+PiANCj4+PiAqICBNb3ZlIGdpY19wcmVpbml0KCkgdG8gY29tbW9u
IGNvZGUgKHYyKQ0KPj4+ICAgLSAgT2xla3NpaSBLdXJvY2hrbw0KPj4+ICAgLSANCj4+PiBodHRw
czovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMmZlMDFiNWEtYWViYi00MTQxLTljZGQtODg3
YjU5ODRkNmI4QHN1c2UuY29tL1QvI204MTQ0YTAzMGVmNjRhNDc5MDY4NDgyYzg2NGM5MjU4YTVj
YjQzYTg3DQo+Pj4gDQo+Pj4gKiAgc3R1YmRvbTogcmVkdWNlIHhlbnN0b3JlIGxpYnJhcnkgZGVw
ZW5kZW5jaWVzICh2MSkNCj4+PiAgIC0gIEp1ZXJnZW4gR3Jvc3MNCj4+PiAgIC0gDQo+Pj4gaHR0
cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjQxMDEwMTU1NDU5LjIyMzg5LTEtamdy
b3NzQHN1c2UuY29tL1QvI204YjVhZjM4NmUyZDI4ODk2MWJiNmU4Zjc4Mzk2NTBlMGNhYjk2YTgz
DQo+Pj4gDQo+Pj4gKiAgeGVuOiBhZGRyZXNzIHZpb2xhdGlvbnMgb2YgTUlTUkEgQyBSdWxlIDEz
LjYgKHYyKQ0KPj4+ICAgLSAgRmVkZXJpY28gU2VyYWZpbmkNCj4+PiAgIC0gDQo+Pj4gaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsL2NvdmVyLjE3Mjc2OTAxODAuZ2l0LmZlZGVyaWNv
LnNlcmFmaW5pQGJ1Z3NlbmcuY29tL1QvI21iZWM3MDJkYjIxMTI0MDMwNWUwZDM1NjQ5ZTY1NjI3
ZDlmYTc1YTI5DQo+Pj4gDQo+Pj4gPT09IHg4NiA9PT0gDQo+Pj4gDQo+Pj4gKiAgRXhwb3NlIGNv
bnNpc3RlbnQgdG9wb2xvZ3kgdG8gZ3Vlc3RzICh2NykNCj4+PiAgIC0gIEFsZWphbmRybyBWYWxs
ZWpvDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI0
MTAyMTE1NDYwMC4xMTc0NS0xLWFsZWphbmRyby52YWxsZWpvQGNsb3VkLmNvbS9ULyNtNjAzM2Y5
NWM2NjA2NzUwMzlkNzc4OWQzYWYxYmEyZjI5MmEzYTY5Yg0KPj4+IA0KPj4+ICogIEJvb3QgbW9k
dWxlcyBmb3IgSHlwZXJsYXVuY2ggKHY4KQ0KPj4+ICAgLSAgRGFuaWVsIFAuIFNtaXRoDQo+Pj4g
ICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI0MTEwMjE3MjU1
MS4xNzIzMy0xLWRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20vVC8jbTk0YTJmNmI5ZDQxMGM2
ZDYyNGFhZWJkN2MyYmY4NTU4NGM3NDM4M2UNCj4+PiANCj4+PiAqICB4ODYvbW06IG1pc2NlbGxh
bmVvdXMgZml4ZXMgKHYyKQ0KPj4+ICAgLSAgUm9nZXIgUGF1IE1vbm5lDQo+Pj4gICAtIA0KPj4+
IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9aeXlvOHFNb2JxUVQtckE1QG1hY2Jv
b2svVC8jbTJkZjM0MjM5Yjc5MzUwMWM2MjQ2Yzg1YzRiMDBlNTJmOWM0MzlhYzANCj4+PiANCj4+
PiAqICB4ODYvdWNvZGU6IFNpbXBsaWZ5L2ZpeCBsb2FkaW5nIHBhdGhzIGZ1cnRoZXIgKHYxKQ0K
Pj4+ICAgLSAgQW5kcmV3IENvb3BlciANCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5l
bC5vcmcveGVuLWRldmVsLzIwMjQxMTA3MTIyMTE3LjQwNzMyNjYtMS1hbmRyZXcuY29vcGVyM0Bj
aXRyaXguY29tL1QvI203NjMwNDMzNDA4MWU2YjRiMDk3NmM2YzQ3NGYxZjA3NzJlMDYyNWQxDQo+
Pj4gDQo+Pj4gKiAgQWRkcmVzcyBTcGFjZSBJc29sYXRpb24gRlBVIHByZXBhcmF0aW9ucyAodjIp
DQo+Pj4gICAtICBBbGVqYW5kcm8gVmFsbGVqbw0KPj4+ICAgLSANCj4+PiBodHRwczovL2xvcmUu
a2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDExMDUxNDMzMTAuMjgzMDEtMS1hbGVqYW5kcm8udmFs
bGVqb0BjbG91ZC5jb20vVC8jbWJjYTUxOTJkN2U1NjM2ZWY1ZWEwMDVhMDgzZTVmZjI4ZWJlNjMx
N2QNCj4+PiANCj4+PiAqICBGaXggbW9kdWxlLWhhbmRsaW5nIHVzZS1hZnRlci1mcmVlJ3MgKHYy
KQ0KPj4+ICAgLSAgQW5kcmV3IENvb3BlciANCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtl
cm5lbC5vcmcveGVuLWRldmVsLzIwMjQxMTA2MDAzOTM4LjM0NTMyNDMtMS1hbmRyZXcuY29vcGVy
M0BjaXRyaXguY29tL1QvI21kZjkyM2JkZjYzYjAzNGE2NDkzYmY2MmJlZWVhZDI4MGI5MmEzOGVk
DQo+Pj4gDQo+Pj4gKiAgUmV1c2UgMzIgYml0IEMgY29kZSBtb3JlIHNhZmVseSAodjQpDQo+Pj4g
ICAtICBGcmVkaWFubyBaaWdsaW8NCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5v
cmcveGVuLWRldmVsLzIwMjQxMDE0MDg1MzMyLjMyNTQ1NDYtMS1mcmVkaWFuby56aWdsaW9AY2xv
dWQuY29tL1QvI201M2UzNjgxNWRkZWMyNTExZGRkMWZhOGQxYTdlZDlhMjdjMGNkMGY3DQo+Pj4g
DQo+Pj4gKiAgeDg2L2FsdGVybmF0aXZlczogQWRqdXN0IGFsbCBpbnNuLXJlbGF0aXZlIGZpZWxk
cyAodjIpDQo+Pj4gICAtICBBbmRyZXcgQ29vcGVyIA0KPj4+ICAgLSANCj4+PiBodHRwczovL2xv
cmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDEwMDIxNTI3MjUuMTg0MTU3NS0xLWFuZHJldy5j
b29wZXIzQGNpdHJpeC5jb20vVC8jbWFjMmRlYWVhN2UwMmEzNDMyMTBkNjE4ODc0ODY0MzNkOTQ2
YWQxMjkNCj4+PiANCj4+PiAqICB4ODY6IGFkZHJlc3MgdmlvbGF0aW9ucyBvZiBNSVNSQSBDIFJ1
bGUgMTYuMyAodjEpDQo+Pj4gICAtICBGZWRlcmljbyBTZXJhZmluaQ0KPj4+ICAgLSANCj4+PiBo
dHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvY292ZXIuMTcyNTk1ODQxNi5naXQuZmVk
ZXJpY28uc2VyYWZpbmlAYnVnc2VuZy5jb20vVC8jbTQ2Yzk5MWVkN2VhN2E2ZmU1MDUwNTZmYWNk
ZGZjYzY4NGJlMDFhYjYNCj4+PiANCj4+PiAqICBTdXBwb3J0IGRldmljZSBwYXNzdGhyb3VnaCB3
aGVuIGRvbTAgaXMgUFZIIG9uIFhlbiAodjE2KQ0KPj4+ICAgLSAgSmlxaWFuIENoZW4NCj4+PiAg
IC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjQwOTMwMDM0MjUw
LjI2ODIyNjUtMS1KaXFpYW4uQ2hlbkBhbWQuY29tL1QvI201ZDU1N2Q3NmYyOTBmZjViNTU1MGMx
NDQzY2FiNTc3NGQzOTdlNTI2DQo+Pj4gDQo+Pj4gKiAgeDg2ZW11bDogbWlzYyBhZGRpdGlvbnMg
KHY1KQ0KPj4+ICAgLSAgSmFuIEJldWxpY2gNCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtl
cm5lbC5vcmcveGVuLWRldmVsLzBiOWEwYWU4LWEzOWMtNDlkOC1iNGU3LWYyYTQ2MzEyODA1OEBz
dXNlLmNvbS9ULyNtNWFhZTEwNDVlYjA3ZDg1ZmIwMjliZGVmMTJhNzhjZGI2YmZlNzgwZQ0KPj4+
IA0KPj4+ICogIHg4Ni9IVk06IGRyb3Agc3RkdmdhIGNhY2hpbmcgbW9kZSAodjIpDQo+Pj4gICAt
ICBKYW4gQmV1bGljaA0KPj4+ICAgLSANCj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4t
ZGV2ZWwvZGMzZmFmN2QtMDY5MC00NmU2LThmYmMtNjdhMTc3YTFlMTcxQHN1c2UuY29tL1QvI21j
OGNhNTFjZGJmYjZiYTI2ZWE2YjQ2MjQwNTlkNDBlYTA3NWMyMTE3DQo+Pj4gDQo+Pj4gKiAgeDg2
L0hWTTogZW11bGF0aW9uIChNTUlPKSBpbXByb3ZlbWVudHMgKHYxKQ0KPj4+ICAgLSAgSmFuIEJl
dWxpY2gNCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzMx
OTA2Y2JhLTg2NDYtNGNmOS1hYjMxLTFkMjM2NTRkZjhkMUBzdXNlLmNvbS9ULyNtZGFlMmYyMWI5
MjkxNzBkNjBhODY0MGU4Mjg1NzcwMGM5NDBlNjVjNw0KPj4+IA0KPj4+ID09PSBBUk0gPT09IA0K
Pj4+IA0KPj4+ICogIEVuYWJsZSBlYXJseSBib290dXAgb2YgQUFyY2g2NCBNUFUgc3lzdGVtcyAo
djUpDQo+Pj4gICAtICBBeWFuIEt1bWFyIEhhbGRlcg0KPj4+ICAgLSANCj4+PiBodHRwczovL2xv
cmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDExMDcxNTAzMzAuMTgxMTQzLTEtYXlhbi5rdW1h
ci5oYWxkZXJAYW1kLmNvbS9ULyNtOWNmZDhiZWQxMDljYzcwM2I2YWU4YjhiNmZhYWExMTZjMDg1
OThlZQ0KPj4+IA0KPj4+ICogIEFkZCBzdXBwb3J0IGZvciBTMzJDQyBwbGF0Zm9ybXMgYW5kIExJ
TkZsZXhEIFVBUlQgKHYyKQ0KPj4+ICAgLSAgQW5kcmVpIENoZXJlY2hlc3UgDQo+Pj4gICAtIA0K
Pj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI0MDkzMDExNDcxNS42NDI5
NzgtMS1hbmRyZWkuY2hlcmVjaGVzdUBvc3MubnhwLmNvbS9ULyNtODQ1MmFjMzQyZmRjZjk4OWZj
MWU0OThjMDk3ODEyYjUwMTU3ZjJjYw0KPj4+IA0KPj4+ICogIEFybSBjYWNoZSBjb2xvcmluZyAo
djkpDQo+Pj4gICAtICBDYXJsbyBOb25hdG8NCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtl
cm5lbC5vcmcveGVuLWRldmVsLzIwMjQxMDI1MDk1MDE0LjQyMzc2LTEtY2FybG8ubm9uYXRvQG1p
bmVydmFzeXMudGVjaC9ULyNtZDE4ZmIwMjg0MmM0YWQyY2Q2MWI0NTZiZTg5MDIwYWZmY2M0NTJh
Mw0KPj4+IA0KPj4+ICogIGZmYTogSW1wcm92ZW1lbnRzIGFuZCBmaXhlcyAodjIpDQo+Pj4gICAt
ICBCZXJ0cmFuZCBNYXJxdWlzDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn
L3hlbi1kZXZlbC9jb3Zlci4xNzI5MDY2Nzg4LmdpdC5iZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20v
VC8jbWIwYzhhYWI5N2Q0NmY5YzllOTMzYjNiOWIwZWVmN2U3MTdlMWYyZTUNCj4+IA0KPj4gSSB3
b3VsZCBsaWtlIHRvIGhhdmUgdGhpcyBmb3IgbmV4dCByZWxlYXNlIGFuZCBpIHBsYW4gdG8gcG9z
dCB0aGUgdjMNCj4+IG5leHQgd2Vlay4NCj4gQ2VydGFpbmx5LCBpdCB3b3VsZCBiZSBncmVhdCB0
byBpbmNsdWRlIHRoaXMgaW4gdGhlIHJlbGVhc2UsIGFuZCB3ZQ0KPiBzdGlsbCBoYXZlIHNvbWUg
dGltZSB0byBnZXQgaXQgbWVyZ2VkIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBmZWF0dXJlDQo+IGZy
ZWV6ZS4gSWRlYWxseSwgdGhvdWdoLCBpdCB3b3VsZCBiZSBiZXN0IHRvIGhhdmUgaXQgbWVyZ2Vk
IGJlZm9yZSB0aGUNCj4gbGFzdCBwb3N0aW5nIGRhdGUuIERvIHlvdSB0aGluayB0aGF04oCZcyBh
Y2hpZXZhYmxlPw0KDQpZZXMgSSB0aGluayBpdCBpcy4NCkkgaGF2ZSBiZWVuIG9uIGxlYXZlIGFu
ZCB0cmF2ZWxpbmcgdW50aWwgdGhlIGVuZCBvZiB0aGlzIHdlZWsgc28gdGhpbmdzDQpzaG91bGQg
Z28gZmFzdGVyIGZyb20gbmV4dCB3ZWVrIChUTSkuDQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiAN
Cj4gfiBPbGVrc2lpDQo+Pj4gDQo+Pj4gKiAgQWRkIFZpcnRpby1QQ0kgZm9yIGRvbTBsZXNzIG9u
IEFSTSAodjEpDQo+Pj4gICAtICBFZGdhciBFLiBJZ2xlc2lhcw0KPj4+ICAgLSANCj4+PiBodHRw
czovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDA5MjQxNjIzNTkuMTM5MDQ4Ny0xLWVk
Z2FyLmlnbGVzaWFzQGdtYWlsLmNvbS9ULyNtZmExNDg5OTFiOTQwOGYyMjNhMDc5ZDRjZWY2MTAy
NDRkNWIwNGMyYg0KPj4+IA0KPj4+ID09PSBSSVNDViA9PT0gDQo+Pj4gDQo+Pj4gKiAgU2V0dXAg
bWVtb3J5IG1hbmFnZW1lbnQgKHY1KQ0KPj4+ICAgLSAgT2xla3NpaSBLdXJvY2hrbw0KPj4+ICAg
LSANCj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvY292ZXIuMTczMTM0NDg4
My5naXQub2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20vVC8jbTlmNzZmMWI2ODU4OTZlYTYwM2Ey
YjE1M2UwNTEwNGM3NDA1YTdkMjgNCj4+PiANCj4+PiA9PT0gUFBDID09PSANCj4+PiANCj4+PiAq
ICBFYXJseSBCb290IEFsbG9jYXRpb24gb24gUG93ZXIgKHY1KQ0KPj4+ICAgLSAgU2hhd24gQW5h
c3Rhc2lvDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9j
b3Zlci4xNzI3Mzg4OTI1LmdpdC5zYW5hc3Rhc2lvQHJhcHRvcmVuZ2luZWVyaW5nLmNvbS9ULyNt
OGNhYzkxYTkzYjU2YTM1OWZhMmQ1ZjA4NTk2YzRiZTYxZGNhMjkwZA0KPj4+IA0KPj4+ID09IENv
bXBsZXRlZCA9PSANCj4+PiANCj4+PiA9PT0gSHlwZXJ2aXNvciA9PT0gDQo+Pj4gDQo+Pj4gKiAg
bGlieGw6IEltcGxlbWVudCBRRU1VIGNvbW1hbmQgbGluZSBwcm9iZSAodjEpDQo+Pj4gICAtICBB
bnRob255IFBFUkFSRA0KPj4+ICAgLSANCj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4t
ZGV2ZWwvMjAyNDA4MjcxMDAzMjguMjMyMTYtMS1hbnRob255LnBlcmFyZEB2YXRlcy50ZWNoL1Qv
I21kZWYyM2NlZmMyNTMyYWIwYzlkNzQ2MDI5MGNlZjI2NzgwY2Y5N2NiDQo+Pj4gDQo+Pj4gKiAg
eGVuL2JpdG9wczogaHdlaWdodCgpIGNsZWFudXAvaW1wcm92ZW1lbnRzICh2MykNCj4+PiAgIC0g
IEFuZHJldyBDb29wZXIgDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hl
bi1kZXZlbC8yMDI0MDkwNDIyNTUzMC4zODg4MzE1LTEtYW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bS9ULyNtZTIyZTA4Zjc0NzdiZTcyNTEyMmRkOWI5N2QyOWQyNzJlM2I1ODZjNA0KPj4+IA0KPj4+
ICogIE1vdmUgcGVyY3B1IGNvZGUgdG8gY29tbW9uICh2MikNCj4+PiAgIC0gIE9sZWtzaWkgS3Vy
b2Noa28NCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsL2Nv
dmVyLjE3MjcxODU0OTUuZ2l0Lm9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tL1QvI21mOTMzOTRj
NDZmMTVjYmRjZmM4NzNkZTJkNTJkODYyYThiNzBkYTdmDQo+Pj4gDQo+Pj4gKiAgeGVuL2xpdmVw
YXRjaDogaW1wcm92ZW1lbnRzIHRvIGxvYWRpbmcgKHYzKQ0KPj4+ICAgLSAgUm9nZXIgUGF1IE1v
bm5lDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI0
MDkyNjEwMTQzMS45NzQ0NC0xLXJvZ2VyLnBhdUBjaXRyaXguY29tL1QvI21hM2Y2NTk0OGIwNjVk
YzQ0M2FlYTIxOTI4NzNhM2IzZGZhNTJhMmQ3DQo+Pj4gDQo+Pj4gKiAgTW92ZSB7YWNwaV99ZGV2
aWNlX2luaXQoKSBhbmQgZGV2aWNlX2dldF9jbGFzcygpIHRvIGNvbW1vbiBjb2RlDQo+Pj4gKHY1
KQ0KPj4+ICAgLSAgT2xla3NpaSBLdXJvY2hrbw0KPj4+ICAgLSANCj4+PiBodHRwczovL2xvcmUu
a2VybmVsLm9yZy94ZW4tZGV2ZWwvMTdjN2Q5ODhlNDVkN2M4MjQ0OGI4MWZlNjZiMDFhNWNlY2Ew
YzE1ZS5jYW1lbEBnbWFpbC5jb20vVC8jbTY4YmQwMGQ0ZjhiMzcyNGU4M2JhMTMwMjRlOTRiMTVi
NThhMjg4MjkNCj4+PiANCj4+PiAqICBibGtpZjogcmVjb25jaWxlIHByb3RvY29sIHNwZWNpZmlj
YXRpb24gd2l0aCBpbi11c2UNCj4+PiBpbXBsZW1lbnRhdGlvbnMgKHYxKQ0KPj4+ICAgLSAgUm9n
ZXIgUGF1IE1vbm5lDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1k
ZXZlbC8yMDI0MDkwMzE0MTkyMy43MjI0MS0xLXJvZ2VyLnBhdUBjaXRyaXguY29tLw0KPj4+IA0K
Pj4+ID09PSB4ODYgPT09IA0KPj4+IA0KPj4+ICogIERyb3AgWGVvbiBQaGkgc3VwcG9ydCAodjEp
DQo+Pj4gICAtICBKYW4gQmV1bGljaA0KPj4+ICAgLSANCj4+PiBodHRwczovL2xvcmUua2VybmVs
Lm9yZy94ZW4tZGV2ZWwvNDQxNDc1MDctNjVhNC00ZjIxLWFhZGEtZmE2NDdmNTNmZmQwQHN1c2Uu
Y29tLw0KPj4+IA0KPj4+ICogIFV0aWxpemUgdWNvZGVfZm9yY2UgYW5kIHJlbW92ZSBvcHRfdWNv
ZGVfYWxsb3dfc2FtZSAodjcpDQo+Pj4gICAtICBGb3VhZCBIaWxseQ0KPj4+ICAgLSANCj4+PiBo
dHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDA4MjIxMzA0MjYuNDkyOTMxLTQt
Zm91YWQuaGlsbHlAY2xvdWQuY29tLw0KPj4+IA0KPj4+ICogIFN3aXRjaCBmbGF0IGRyaXZlciB0
byB1c2UgcGh5cyBkc3QgZm9yIGV4dCBpbnRzICh2MikNCj4+PiAgIC0gIE1hdHRoZXcgQmFybmVz
DQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8wZGI2OGU2
MmZmYzQyOGY1NTNhMzAzOTdkZjFlNzkwNjhkMjZiYjVmLjE3MjgzMTEzNzguZ2l0Lm1hdHRoZXcu
YmFybmVzQGNsb3VkLmNvbS8NCj4+PiANCj4+PiAqICB4ODYvc2h1dGRvd246IGNoYW5nZSBkZWZh
dWx0IHJlYm9vdCBtZXRob2QgcHJlZmVyZW5jZSAodjEpDQo+Pj4gICAtICBSb2dlciBQYXUgTW9u
bmUNCj4+PiAgIC0gDQo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjQw
ODAyMTA1NjEzLjk5MTk3LTEtcm9nZXIucGF1QGNpdHJpeC5jb20vDQo+Pj4gDQo+Pj4gPT09IEFS
TSA9PT0gDQo+Pj4gDQo+Pj4gKiAgaW9tbXUvaXBtbXUtdm1zYTogQWRkIFJlbmVzYXMgUjhBNzc5
RzAgKFItQ2FyIFY0SCkgc3VwcG9ydCAodjEpDQo+Pj4gICAtICBHcnlnb3JpaSBTdHJhc2hrbw0K
Pj4+ICAgLSANCj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvNmFiNGFkMjkt
NDA0ZC00ZjVjLTg1ODItNWQyZjQ5MmZkNTQ5QHhlbi5vcmcvVC8jdA0KPj4+IA0KPj4+ICogIHhl
bi9hcm06IGR0IG92ZXJsYXkgZml4ZXMgKHYyKQ0KPj4+ICAgLSAgTWljaGFsIE9yemVsDQo+Pj4g
ICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI0MTAwNDEyMjIy
MC4yMzQ4MTctMS1taWNoYWwub3J6ZWxAYW1kLmNvbS9ULyNtZDUxYTA2MGI5M2ZlNzJmMTc2Mzdk
NmQ3MmUzZDRlMjI5NmNiNDA3OA0KPj4+IA0KPj4+ID09PSBSSVNDLVYgPT09IA0KPj4+IA0KPj4+
ICogIGluaXRpYWxpemUgYm9vdGluZm8gZnJvbSBkdGIgKHYyKQ0KPj4+ICAgLSAgT2xla3NpaSBL
dXJvY2hrbw0KPj4+ICAgLSANCj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwv
Y292ZXIuMTcyODQ4MTU3OC5naXQub2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20vVC8jbTU0M2Jm
ODRkNDdmMGVhNzM4OTM4YTlhNDQyY2QxNDRiYjM0ZjczMTYNCj4+PiANCj4+PiAqICBSZWdpc3Rl
ciBYZW4ncyBsb2FkIGFkZHJlc3MgYXMgYSBib290IG1vZHVsZSAodjMpDQo+Pj4gICAtICBPbGVr
c2lpIEt1cm9jaGtvDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1k
ZXZlbC9jb3Zlci4xNzI4NDcyMTYzLmdpdC5vbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbS9ULyN0
DQo+Pj4gDQo+Pj4gKiAgZGV2aWNlIHRyZWUgbWFwcGluZyAodjkpDQo+Pj4gICAtICBPbGVrc2lp
IEt1cm9jaGtvDQo+Pj4gICAtIA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZl
bC9jb3Zlci4xNzI3NzgxNDY4LmdpdC5vbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbS9ULyN0DQoN
Cg0K


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 15:29:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 15:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835849.1251703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFJ4-000358-5c; Wed, 13 Nov 2024 15:29:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835849.1251703; Wed, 13 Nov 2024 15:29: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 1tBFJ4-000351-1c; Wed, 13 Nov 2024 15:29:22 +0000
Received: by outflank-mailman (input) for mailman id 835849;
 Wed, 13 Nov 2024 15: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=K+ao=SI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tBFJ3-00034v-Al
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 15:29:21 +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 0b622d0b-a1d4-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 16:29:17 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-37d5aedd177so4070823f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 07:29:16 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed97fe6csm18497604f8f.31.2024.11.13.07.29.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 07: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: 0b622d0b-a1d4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmMiLCJoZWxvIjoibWFpbC13cjEteDQyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBiNjIyZDBiLWExZDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTExNzU3LjAxNTMwOSwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731511756; x=1732116556; 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=mSVQJH1yt7q9LFPVAtdVQL8MTIPW9HMJ7CorM3tokrE=;
        b=GKoKqSBQWjNRlUNGTS/QYEzogaXvMYPbMhOfpqLBZivKdY3CHzMicPgiQHfCiOMqC2
         hZ33BBarxIZqwKq50dufjYlEEIPYxtpwcRZE/TdJ3Jn86g2ZR5VNlXuCJz1DCqE3F9BJ
         CXACZdE/XKcF93jXrZC3CJbsm2SxCiPatLPdy8fb1z3gohR899RV00vEPvYWE3A0ldDI
         ajCBdq+oSHTE30V9hieSA8KLFtauxqIbziRPJGgoiDhbzMS2LEJJwNeD6v6RyStEUFrt
         4c0uLAC7hMiLjJzcWMhkvFpu1OwrxniKdLuFCIZmI5vLQ/pKa2/Cn2GPWE8DB5ZhUdvc
         d2cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731511756; x=1732116556;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=mSVQJH1yt7q9LFPVAtdVQL8MTIPW9HMJ7CorM3tokrE=;
        b=VlL7X2s+6o7EgiKTF51ywSsSl1EAGavQYglqbERSi7D/BMwKfQqtbiyWnXmxJwbbSo
         6wy/y2iTr6dYTlKH/mA+xuDjU8MuYKG9JwoUuh+STdLseXP9dneTVu/cJPFmmc1cNkLU
         6dDNbKpcGSW+r6Ptb4dpY1Ip0uuZtfvsruwOMq17v0AwdXi75Z9Wo8eHJGt/OObc/Nly
         PpSB0vXrsF/rszBAxrGP8n8Mr+TKhWnePnVTXoQdaxxvqerb6yRbG3M3nbh/XDoDXPqM
         Ww7sKjeiAUtPCFH+YmnTl5HeRg3tpF2ZwTI7BfBIdTeA7QvSrJj2FfjwrMGiyGVg7Grv
         vnkg==
X-Forwarded-Encrypted: i=1; AJvYcCX95ox4yrmDX4HPtoLmeSt4JdGVr1gEN6AkrajmuMrHHOmCytQdCvaCNSX68MP2HLfzijOvgcZfPr0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyh0IJmFTRI0vsBBqSBJqxpA8EFUKNadUlBAnVYKzmgSfrV0Zzw
	TRcjaFRel0swRsQDXPvI/wvQiutSoD3k6u7M7eWLvaFgLxi2vTA1wwcCVrsjr9w=
X-Google-Smtp-Source: AGHT+IGY7lOy0hVBRZR7OZlkbyZzx2TynSXgCPTQjFeySh8U1Hv+71MWq3cG2aTJkM6CxcgeVF+ALQ==
X-Received: by 2002:a05:6000:154e:b0:37d:395a:bb7 with SMTP id ffacd0b85a97d-3820df673f1mr2832850f8f.31.1731511756218;
        Wed, 13 Nov 2024 07:29:16 -0800 (PST)
Message-ID: <103dd682-cfb6-4f61-bced-f4e742813232@suse.com>
Date: Wed, 13 Nov 2024 16:29:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.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: <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------nWf2o558Yn5fD9NIhJLq4TWR"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------nWf2o558Yn5fD9NIhJLq4TWR
Content-Type: multipart/mixed; boundary="------------90vIA0flD9xtYM0eTkg02hbr";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
Message-ID: <103dd682-cfb6-4f61-bced-f4e742813232@suse.com>
Subject: Re: preparations for 4.19.1
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
In-Reply-To: <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.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=

--------------90vIA0flD9xtYM0eTkg02hbr
Content-Type: multipart/mixed; boundary="------------cRT0fGeinvyo8sdM9uQ1ykkV"

--------------cRT0fGeinvyo8sdM9uQ1ykkV
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTMuMTEuMjQgMTY6MjAsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEyLzExLzIw
MjQgMTowMCBwbSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+PiBBbGwsDQo+Pg0KPj4gdGhlIHJl
bGVhc2UgaXMgZHVlIGJ5IHRoZSBlbmQgb2YgdGhlIG1vbnRoLiBQbGVhc2UgcG9pbnQgb3V0
IGJhY2twb3J0cyB5b3UgZmluZA0KPj4gbWlzc2luZyBmcm9tIHRoZSByZXNwZWN0aXZlIHN0
YWdpbmcgYnJhbmNoLCBidXQgd2hpY2ggeW91IGNvbnNpZGVyIHJlbGV2YW50Lg0KPiANCj4g
TG9va2luZyBvdmVyIHRoZSBYZW5TZXJ2ZXIgcGF0Y2hxdWV1ZToNCg0KLi4uDQoNCj4gVGhl
c2UgYXJlIGEgU0lHUElQRSBidWdmaXggd2hpY2ggaGFwcGVuIHRvIGFsc28gaGF2ZSBhIHBl
cmYNCj4gaW1wcm92ZW1lbnQuwqAgSSBjYW50IHJlbWVtYmVyIGlmIHdlIGRpc2N1c3NlZCBi
YWNrcG9ydGluZyB0aGVtIGJlZm9yZS4NCj4gKEp1ZXJnZW4vQW50aG9ueT8pDQo+IA0KPiA0
MmRiMmRlYjVlNzY6IHRvb2xzL2xpYnhzOiBGaXggbGVuZ3RoIGNoZWNrIGluIHhzX3RhbGt2
KCkNCj4gZTJhOTNiZWQ4YjllOiB0b29scy9saWJ4czogUmV3b3JrIHhzX3RhbGt2KCkgdG8g
dGFrZSB4c2Rfc29ja21zZyB3aXRoaW4NCj4gdGhlIGlvdmVjDQo+IGYwNTBjMDNjZTJhZDog
dG9vbHMvbGlieHM6IFJhdGlvbmFsaXNlIHRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdCB4c19o
YW5kbGUNCj4gMDQ2ZWZlNTI5ZTgyOiB0b29scy9saWJ4czogVHJhY2sgd2hldGhlciB3ZSdy
ZSB1c2luZyBhIHNvY2tldCBvciBmaWxlDQo+IGViYWViMGM2NGE2ZDogdG9vbHMvbGlieHM6
IFVzZSB3cml0ZXYoKS9zZW5kbXNnKCkgaW5zdGVhZCBvZiB3cml0ZSgpDQo+IGExN2I2ZGI5
YjAwNzogdG9vbHMvbGlieHM6IFN0b3AgcGxheWluZyB3aXRoIFNJR1BJUEUNCg0KSSdkIHRh
a2UgdGhlc2UsIGFzIHBsYXlpbmcgd2l0aCBzaWduYWxzIGJlaGluZCB0aGUgYmFjayBvZiBh
IGxpYnJhcnkgdXNlcg0KaXMgc29tZXRoaW5nIHdoaWNoIHNob3VsZCBiZSBmaXhlZC4NCg0K
DQpKdWVyZ2VuDQo=
--------------cRT0fGeinvyo8sdM9uQ1ykkV
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-----

--------------cRT0fGeinvyo8sdM9uQ1ykkV--

--------------90vIA0flD9xtYM0eTkg02hbr--

--------------nWf2o558Yn5fD9NIhJLq4TWR
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

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

wsB4BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmc0xcsFAwAAAAAACgkQsN6d1ii/Ey+y
Ygf3W75WQ2TKg7JqZOOs6EPWZlpPqbBZvwnsVOGzysPCBf558lMM4/5gpz+nuOUhY47ENttsSmUl
l4uZmjYp0awBjNMU3GXw42ZJF+VIHGnH6UZq5B3jP35RPIlaGTIi6+n9/R51OLlAKEco7QNZmF/6
uPDruIwrDJi3yG0CvS/szfElaXQGQYl3MoN8shJFF3VZZD97mBr5h9pcYp6dPepgx1cWC1lCw2tN
z4ni9Ey3bYd8K99EIZ/zUlbnZK8aHfOIsHqgsDBtECyJVeITnl2js42AGzKHsUuID58A1l8tI+jE
GWX0xfrL+ndtvL7S8imD4e0+ZQdmTL9K1upi+S3P
=PNly
-----END PGP SIGNATURE-----

--------------nWf2o558Yn5fD9NIhJLq4TWR--


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 15:40:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 15:40:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835859.1251713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFTw-0006DU-6c; Wed, 13 Nov 2024 15:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835859.1251713; Wed, 13 Nov 2024 15:40: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 1tBFTw-0006DN-39; Wed, 13 Nov 2024 15:40:36 +0000
Received: by outflank-mailman (input) for mailman id 835859;
 Wed, 13 Nov 2024 15:40: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=IlJA=SI=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tBFTu-0006DH-UC
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 15:40:34 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20614.outbound.protection.outlook.com
 [2a01:111:f403:2414::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a37431b-a1d5-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 16:40:27 +0100 (CET)
Received: from BN9PR03CA0925.namprd03.prod.outlook.com (2603:10b6:408:107::30)
 by PH0PR12MB7469.namprd12.prod.outlook.com (2603:10b6:510:1e9::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29; Wed, 13 Nov
 2024 15:40:22 +0000
Received: from BL6PEPF00020E65.namprd04.prod.outlook.com
 (2603:10b6:408:107:cafe::aa) by BN9PR03CA0925.outlook.office365.com
 (2603:10b6:408:107::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Wed, 13 Nov 2024 15:40:22 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E65.mail.protection.outlook.com (10.167.249.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Wed, 13 Nov 2024 15:40:21 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 13 Nov
 2024 09:40:18 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 13 Nov 2024 09:40: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: 9a37431b-a1d5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjE0IiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjlhMzc0MzFiLWExZDUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTEyNDI3LjMwNzI4OCwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P3UWN4v8ZKkMFlAELIeLmVjSfLExmOjjVSCSft0L1zfKOdoK5jqF5Zwc4hyb62jzFF2dJVdJ/L1rry1O32AsdWRYPBFQTNu6gZCUE02OvdeglGOmw3nyE2LfFuPBQWP96GRzBuUR6SwVMioX+UV+1Z8Yp3iyxZWy9/lQZR2RdIi2vQFRwuKN6q/WG/KjEz9FFHC2jW6TYe7v2ibTnEa17h0xaAwdXu5bFfN0amO14+adq48i93iGUnFYq/WkkB6Yyv0aCJ+YJRVaj1y0x5HgY/4otFY+b56DsuhjhB5HEZpyPfFfhUM5T5DwfKrM/9NjAr+pCjL3HQA6yE2yB26EVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F/FDKCnQOZF5yrtWxNQrp1Ut7BCPbxzOL104qhAtDwM=;
 b=iV9zx/xk30m2ESA22SGh+VDyUMNrkuni7sROdBI/ZhlRzD1rzQGV5z3UoxMz1xqesk6LE8L0ltmpTCL0sTHT9Tsa+dWv71h93I/UISI87oo2wv0+aIBezkIr/g31Ldu/XLxiaU0TvdNqBFs5XSUhPDe+v/lweS8ZuD5GoQuAzzkZbXyMmJLEGCcCWH8Pf8zEVVD6U/ky4m5Qh7DgseeQn+JYViEetcAn+zJa0/521ZANS9YOy3IhzobR0y6LiLWa5H1czNKbNvct6uKyxURHR3gbxD57/xHsAzOjeojPbaRd/W2fIMSMiBFJeMqLPFpFBgW/q7my6NKhMgmROaT6bQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=F/FDKCnQOZF5yrtWxNQrp1Ut7BCPbxzOL104qhAtDwM=;
 b=mvydIBU9vC10Ec9ZAodSghD4wiBaRsi8FMnrez+3//HmFmJOLtmmzxxoPRsQXaid3sF7Y56PoHuRVLWIwDVDPI8ZxzXI+83YMh5bho/i/UToFSwS7S6bFcLYSdN6q5NthjwpmGr8+eAXs1UKknTs1UEZbUvusCNqw3sy2v98zNU=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
Date: Wed, 13 Nov 2024 16:40:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Julien Grall <julien@xen.org>, Luca Fancellu <luca.fancellu@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E65:EE_|PH0PR12MB7469:EE_
X-MS-Office365-Filtering-Correlation-Id: d1390922-895a-496c-5e7a-08dd03f97b8b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MHNxZkNEV1FMU0pGMDhDVXgvOS96UTl1eXN4M3ZRZDZ4N2NQL28yNWJqa0l3?=
 =?utf-8?B?Qm1VdlNPakpleVFwYXVrSnU3OWFxRUM3UHRqRzYvcnFQRnZzVUJlMmQ0NHND?=
 =?utf-8?B?bW5CVkV0czRWVVJISDd6dlB2TThvK0U5UWxsY3gvVGlIN2lCVFgxS2g1aWo4?=
 =?utf-8?B?Z3NETmtBN3hxMXV1elVRZXhRekZ6dGk0aDI1dWlrNU1mamVuWDFqZGhscVRX?=
 =?utf-8?B?UGU1YWlwYnBZdkpaWE1XZXdRaGdJcDZEYVdrSjhnK1dJUG1LdHNnNTNaNmdE?=
 =?utf-8?B?czBGbzBOK3JPUzZwdmt2MHl1cm4wYVpPZDJCYUZkQWlXU2FKZnJQdXpyNjJI?=
 =?utf-8?B?a1gwZ3o0MGtuRUhMRmFBTWVhcFpLSVlEQjBlNVo1cnNWa0YvR2ZpU2ZXOWl3?=
 =?utf-8?B?ZHBIcnF1a0xES2pYbUU3cDAyOWQrKzF4RTEwbXRNVUg1RFQ3cnRkSVpmZ2ZL?=
 =?utf-8?B?a3ZuMXRIbFJCTmc2MU8rTFZuUWtzVFRQSG5wckdqYm9IYlBqZ3lnb0E0MGNt?=
 =?utf-8?B?cE4wMXJpdEQxcTNkWjNwenVYQ2tva3RUaUtnbXhueEdSeHZMSEdPZ3FwemdD?=
 =?utf-8?B?Um5Fcy9vczB6RkQ3QUwzcnhTZVI0UHBxN2tYSHN2djJncFJ2Y3pnUlZqZVFj?=
 =?utf-8?B?cFJyWFhRSTBGeFZTRXhIejUwa0Q5RXZid2xmZml1bjhaUGFybmtBMk42Y1hl?=
 =?utf-8?B?TWNZS2Z2N0VjZkdtMXN6SGdCUDVEVk1jRlFLbVhzcDFuWTZKOVdsaVJKa2VG?=
 =?utf-8?B?cGNsU3NkMzBVREtJWjVRYWVIUW1YVjJMNlBmdTNBMzNwcVNNVmRuRk8yNTVZ?=
 =?utf-8?B?U08vczNNTU13YkV6WWlhQWtReE10LzJWQUdTTzdOMnducjE1V013T3ZsRnhV?=
 =?utf-8?B?SktyUmF6QVpEbDFZUXh2NnJDRDBDWmVxZlI4SExQRzhpa2pHc3RzazBISlhX?=
 =?utf-8?B?L05lMzVxYXlHVHE1Y0VZTHE3YWlzTTZpWmxlVmI3TElCQSsvaTlHL1JiNlF1?=
 =?utf-8?B?OVprWG91UWRaUWxqS2UxN3ZSVDNqQWRRNVdZWHBwK1dnTk9VWmF0bzMyTUc3?=
 =?utf-8?B?U3VaQUFqclhDdDU4SXdzdXRmZXowcEJ2VTJ0YVYvVHN5VURTb1lKUW1DZHZt?=
 =?utf-8?B?QUxZRk9xbWd3VWs3K0t6UWZ4bFFDeHB5bTFvK1pFMmdoRlNRVjU1RXhGbUY4?=
 =?utf-8?B?SU1NKzJKdUFCZ2N6cGkrcHhhSDljYktDQ1BhTHdaSHVFVTd5aWVFYXI4eVFY?=
 =?utf-8?B?cFlmMHloUjVJTTQ4N3BWcmpjci81UlBxa2ZEYWhwVGE2S1ZKYTRmajRYS01N?=
 =?utf-8?B?N1hQNWRhaUtCaitKK2RlMVZsczBEMVQ0b0RIUUVjS3MxdjZmZHNVYVhLRUNQ?=
 =?utf-8?B?N2FBUWZsaXNnUlk3bHQ0UDVoQjdIczFIRkRIRGJZNjNwSTNBbFlrckFLcE9l?=
 =?utf-8?B?cFlpd0Z6NXRFRjZPUmcwU3dRN29UOHN3ODFzakhvNzhhSHlMZXBRZlY2dE9y?=
 =?utf-8?B?cHZ0MkNaQU9BdlhTN2NGRVFDcVIzOUd1dVVWVEtWbVRyZUdUN1hTY2lBZVQ4?=
 =?utf-8?B?NmZmRTJTMUhFNC82MUszVmFqblV6N2NTQUREOFNhYVlwS0tWK3JhQWFkb210?=
 =?utf-8?B?YWE3eTc5Z1VLZ0IxS3JsVzhTUTVJRlRFUkszTlJ6Vnl1My9BYXlmQlpydkJP?=
 =?utf-8?B?bjc4NGtpYTN6TUtmVTZTSTBkZWVPTXRROG1JckduVzZ1NUdwZ3VuV0pGVWRa?=
 =?utf-8?B?UFVZNkU4UVoyOWlKU0NqMTVDK2pFejkzSURxVUVYbDVkbmk0ZTZSN25xVmNI?=
 =?utf-8?B?N1pzTHppNkY5TDRScjdhY2R5L044WFQvTW9JY3NkUUMxTGl2YXh4R0VQN1dm?=
 =?utf-8?B?QVF5MXhqSFBFRkM2MU9xaVlmMjA3NDUzY1ZjNlcwajZDN252UjlZUDdlWkJn?=
 =?utf-8?Q?0+ci5xjID00=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2024 15:40:21.0168
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d1390922-895a-496c-5e7a-08dd03f97b8b
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E65.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7469



On 13/11/2024 15:40, Julien Grall wrote:
> 
> 
> Hi,
> 
> On 13/11/2024 14:19, Michal Orzel wrote:
>>
>>
>> On 13/11/2024 14:50, Julien Grall wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>>
>>>>
>>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>>
>>>>>
>>>>> There are some cases where the device tree exposes a memory range
>>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>>> current code will stop Xen to boot since it will find that the
>>>>> latter range is clashing with the already recorded /memreserve/
>>>>> ranges.
>>>>>
>>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>>> in the /memreserve/ part and even in this case this will prevent
>>>>> Xen to boot since it will see that the module memory range that
>>>>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>>>>> range.
>>>>>
>>>>> When Xen populate the data structure that tracks the memory ranges,
>>>>> it also adds a memory type described in 'enum membank_type', so
>>>>> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
>>>>> function to check for exact memory range match given a specific memory
>>>>> type; allowing reserved-memory node ranges and boot modules to have an
>>>>> exact match with ranges from /memreserve/.
>>>>>
>>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>>
>>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>> ---
>>>>> I tested this patch adding the same range in a /memreserve/ entry and
>>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>>> I've also tested that a configuration running static shared memory still works
>>>>> fine.
>>>>> ---
>>>> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
>>>> and the changes below look a bit too much for me, given that for boot modules we can only have
>>>> /memreserve/ matching initrd.
>>>
>>> How so? Is this an observation or part of a specification?
>> Not sure what specification you would want to see.
> 
> Anything that you bake your observation. My concern with observation is ...
> 
>   It's all part of U-Boot and Linux behavior that is not documented
> (except for code comments).
>> My statement is based on the U-Boot and Linux behavior. U-Boot part only present for initrd:
>> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
> 
> ... a user is not forced to use U-boot. So this is not a good reason to
I thought that this behavior is solely down to u-boot playing tricks with memreserve.

> rely on it. If Linux starts to rely on it, then it is probably a better
> argument, but first I would need to see the code. Can you paste a link?
Not sure how I would do that given that it is all scattered. But if it means sth, here is kexec code
to create fdt. It is clear they do the same trick as u-boot.
https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355

> 
>>
>> For things that Xen can be interested in, only region for ramdisk for dom0 can match the /memreserve/ region.
>> Providing a generic solution (like Luca did) would want providing an example of sth else that can match which I'm not aware of.
> 
> I would argue this is the other way around. If we are not certain that
> /memreserve/ will not be used for any other boot module, then we should
> have a generic solution. Otherwise, we will end up with similar weird
> issue in the future.
We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and ramdisk. The first 2 are not described in DT so I'm not sure
what are your examples of bootmodules for which you want kernel know about memory reservation other than ramdisk.

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 15:47:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 15:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835866.1251722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFaj-0007Ca-SY; Wed, 13 Nov 2024 15:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835866.1251722; Wed, 13 Nov 2024 15: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 1tBFaj-0007CT-Pu; Wed, 13 Nov 2024 15:47:37 +0000
Received: by outflank-mailman (input) for mailman id 835866;
 Wed, 13 Nov 2024 15:47: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBFai-0007CL-Dy
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 15:47:36 +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 976ab2da-a1d6-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 16:47:30 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-aa1e51ce601so335783566b.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 07:47:30 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-a9ee0abf305sm875194166b.86.2024.11.13.07.47.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 07:47: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: 976ab2da-a1d6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk3NmFiMmRhLWExZDYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTEyODUwLjkwNjk3Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731512850; x=1732117650; 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=CT3OrSIXV96I6ybBWz0Wf1RD7IzBkgoIW5Cm+Og5S/k=;
        b=tU/6fGD9F/ow/Bp8XQagm684L5pw5SMFE4xllbgh0eWksUnoo1HsYjT3lp7HfGKQ7V
         cllUePlxc6rR34iZVgrzzQalBCy5U/9kELVv9sPb2lSdsrkN96QQ9KmiTsCXeJ/B4+uj
         8BbPVayq3VlHX0nuXxep77c0ek07HXeyDVBC4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731512850; x=1732117650;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CT3OrSIXV96I6ybBWz0Wf1RD7IzBkgoIW5Cm+Og5S/k=;
        b=C0PLX95VGaNuj6Cq5jqxEg4rfl/NSSqYTwh7XHJmDyBW8Jp5oSWzJXE66VnGY0aNnC
         BpugLjNFHywiwCVa7si2iCGeH42rNzBJQG/8kdlGAHaIcc2L8RvTVcvkd5QP8oXcPmnE
         Vrs+J3H8yU+Fkvo1LMJZoFqjr6AsXhbnnOaf9JIbwYK61Lg9+UhJ89Z4A+MGCpoxkQ6J
         cTadmEq/XebrcgxfuDnr60nj29S8P3NCwyw5W9KMClkOxXa4Gi+Tnsd3fyapI18B7ouf
         Ra8V+gRT95kbOGya7F755yGihzCb8DSlgfp2uKbxDIhiIyETi84JOlcIGwfNnP94nxD8
         0iAg==
X-Forwarded-Encrypted: i=1; AJvYcCULA8ZLwaRaSvtGo7m36ZekEpphcFhU/GV1BV8XoPfpVefQvFAacNQiH/fqm3fkZe2qmdOMkOvvPyo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6olj3C9xT2Ukr1nOxnxRxkB7G+ghABryD3bicexSAReA4UFma
	M4Ibc7sOjfj47K2NwyJYwaCkPledUYtWvCOsTyi3JWMn5GGxFsJR7X+Hz2y3sPE=
X-Google-Smtp-Source: AGHT+IENwQcEYm2E5HoFeL4Ds3AQCjxGmsYOTN3hSbDWgzy9WyRjMrZ6G3ZsCkSacr6gRlwsbF68cA==
X-Received: by 2002:a17:906:dc89:b0:a9e:d539:86c4 with SMTP id a640c23a62f3a-a9eefeb2bb7mr1779937066b.9.1731512834135;
        Wed, 13 Nov 2024 07:47:14 -0800 (PST)
Message-ID: <f91fe1b0-5f35-4cbf-afc1-4c1989dbf2d7@citrix.com>
Date: Wed, 13 Nov 2024 15:47:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.20 Development Update [August-October]
To: oleksii.kurochko@gmail.com, Jan Beulich <jbeulich@suse.com>
Cc: Kelly Choi <kelly.choi@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
 <14df2192-9736-4c1c-8aac-2853467ea330@suse.com>
 <814c2168603cd48e32fde6fff0cad2ca58fc2c9d.camel@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <814c2168603cd48e32fde6fff0cad2ca58fc2c9d.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13/11/2024 2:43 pm, oleksii.kurochko@gmail.com wrote:
> On Wed, 2024-11-13 at 10:48 +0100, Jan Beulich wrote:
>> On 12.11.2024 17:16, Oleksii Kurochko wrote:
>>> https://lore.kernel.org/xen-devel/20241106003938.3453243-1-andrew.cooper3@citrix.com/T/#mdf923bdf63b034a6493bf62beeead280b92a38ed
>>>
>>> *Â  Reuse 32 bit C code more safely (v4)
>>> Â  -Â  Frediano Ziglio
>> Same question here.
> For this patch series my script found to patches which are not in
> staging:
> $ git log --grep="x86/boot: create a C bundle for 32 bit boot code and

This is aa9045e77130

> use it"
> $ git log --grep="x86/boot: Clarify comment"

This is the one remaining patch of the series, but it's superseded by
https://lore.kernel.org/xen-devel/20241113093058.1562447-1-andrew.cooper3@citrix.com/T/#u

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 16:04:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 16:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835874.1251733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFqY-0002kl-6z; Wed, 13 Nov 2024 16:03:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835874.1251733; Wed, 13 Nov 2024 16:03: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 1tBFqY-0002ke-3h; Wed, 13 Nov 2024 16:03:58 +0000
Received: by outflank-mailman (input) for mailman id 835874;
 Wed, 13 Nov 2024 16:03: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=yEOK=SI=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1tBFqW-0002kI-Tr
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 16:03:57 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dec40929-a1d8-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 17:03:49 +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: dec40929-a1d8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5My4xNDIuNDMuNTUiLCJoZWxvIjoiZ2Fsb2lzLmxpbnV0cm9uaXguZGUifQ==
X-Custom-Transaction: eyJpZCI6ImRlYzQwOTI5LWExZDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTEzODI5LjgxOTYzLCJzZW5kZXIiOiJ0Z2x4QGxpbnV0cm9uaXguZGUiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1731513828;
	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=mtC6I/wVh3bb76vb3t0LUdhFECXQ4KT3wwkegPBL5lI=;
	b=ULaUpO5DuZ2pMJ9QlEii8n5VH6LQrYmON5UKYjXr0uXw+BUKWIg3fJdbqxb7NYrD27WKbP
	MxbAa92xpSgi5CzUkOgozoczZ7yU3XwWuzeDxuX/evohe/FFAGHe4xC3fZza0Gwnx+RFdk
	r3zRuOySUPvmBBd8Nwz5eOvEW61/VGQlgm4svSukGmofp5FPDxCdXC5h22VbV6mxNSkHV/
	m23pCYVsbhhkRw7VJUH8Fcw4fSz3FJZzpDU5hwbyaB7IEGc7yd49G99fyDPYTLNeklt0g/
	2GqGG/XpRctO4FYQIGmbqt6TlNZN4ZgL+uLI8ZghI3jUtQKhCtWaG5SjTgvJvQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1731513828;
	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=mtC6I/wVh3bb76vb3t0LUdhFECXQ4KT3wwkegPBL5lI=;
	b=1bikosKoqAqJ9LV5ympvkJTzAxL5PJTgiwLFysyriYVLswkkIvCB4AFn7UaMhQltW9CflT
	PspCYbjP3/ELnqDQ==
To: Philipp Stanner <pstanner@redhat.com>, Damien Le Moal
 <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>, Basavaraj Natikar
 <basavaraj.natikar@amd.com>, Jiri Kosina <jikos@kernel.org>, Benjamin
 Tissoires <bentiss@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Greg
 Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov <oakad@yahoo.com>,
 Sudarsana Kalluru <skalluru@marvell.com>, Manish Chopra
 <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>, GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>, Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam
 Sundar S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave
 Jiang <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn
 Helgaas <bhelgaas@google.com>, Alex Williamson
 <alex.williamson@redhat.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Philipp Stanner <pstanner@redhat.com>,
 Mario Limonciello <mario.limonciello@amd.com>, Chen Ni
 <nichen@iscas.ac.cn>, Ricky Wu <ricky_wu@realtek.com>, Al Viro
 <viro@zeniv.linux.org.uk>, Breno Leitao <leitao@debian.org>, Kevin Tian
 <kevin.tian@intel.com>, Mostafa Saleh <smostafa@google.com>, Andy
 Shevchenko <andriy.shevchenko@linux.intel.com>, Jason Gunthorpe
 <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>, Kunwu Chan
 <chentao@kylinos.cn>, Ankit Agrawal <ankita@nvidia.com>, Christian Brauner
 <brauner@kernel.org>, Reinette Chatre <reinette.chatre@intel.com>, Eric
 Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-input@vger.kernel.org, netdev@vger.kernel.org,
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 01/11] PCI: Prepare removing devres from pci_intx()
In-Reply-To: <20241113124158.22863-3-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
 <20241113124158.22863-3-pstanner@redhat.com>
Date: Wed, 13 Nov 2024 17:04:00 +0100
Message-ID: <87plmzktn3.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Wed, Nov 13 2024 at 13:41, Philipp Stanner wrote:
> +/**
> + * pci_intx_unmanaged - enables/disables PCI INTx for device dev,
> + * unmanaged version
> + * @pdev: the PCI device to operate on
> + * @enable: boolean: whether to enable or disable PCI INTx

Except that the argument is of type int, which really should be type bool.

> + * Enables/disables PCI INTx for device @pdev
> + *
> + * This function behavios identically to pci_intx(), but is never managed with
> + * devres.

behavios?

> + */
> +void pci_intx_unmanaged(struct pci_dev *pdev, int enable)

I find this function name mildy confusing. This _unmanaged suffix is not
really telling me anything. And the reference that this behaves
identically to pci_intx() makes it even worse.

This function is about controlling the PCI INTX_DISABLE bit in the
PCI_COMMAND config word, right?

So naming it pci_intx_control() would make it entirely clear what this
is about, no?

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 16:11:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 16:11:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835883.1251742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBFyE-0004iE-Tw; Wed, 13 Nov 2024 16:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835883.1251742; Wed, 13 Nov 2024 16:11: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 1tBFyE-0004i7-RP; Wed, 13 Nov 2024 16:11:54 +0000
Received: by outflank-mailman (input) for mailman id 835883;
 Wed, 13 Nov 2024 16:11: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=RFXx=SI=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBFyD-0004i1-OJ
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 16:11:53 +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 f8f82996-a1d9-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 17:11:43 +0100 (CET)
Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com
 [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-294-oQwWsjVIP4iL5qnFuOHiDw-1; Wed, 13 Nov 2024 11:11:41 -0500
Received: by mail-qv1-f70.google.com with SMTP id
 6a1803df08f44-6cdeeb785c8so116375416d6.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 08:11:41 -0800 (PST)
Received: from [10.200.68.91] (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6d3966303e6sm86017386d6.99.2024.11.13.08.11.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 08:11: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: f8f82996-a1d9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImY4ZjgyOTk2LWExZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTE0MzAzLjk3NjU1Nywic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731514302;
	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=8JShsxBODe/ZYse/45GbByklsWCzNPukdA1ZXffLLLQ=;
	b=Ha4c389wJisbKWLdI0cfSAwezPF67AWSmaGWnVhMD0f5X/eiqjFEFbA6RyIDJ18neI+z71
	gpBUA2c2O8uhKvc0AyIGDwMMjNKWXCrhOKqvD83pTQ8I/e2me0OxlfvFwJTVppm7M8oJ0R
	AHQsGuRbRLStD/2Pt/+LiRZSFI1G9ms=
X-MC-Unique: oQwWsjVIP4iL5qnFuOHiDw-1
X-Mimecast-MFC-AGG-ID: oQwWsjVIP4iL5qnFuOHiDw
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731514301; x=1732119101;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=8JShsxBODe/ZYse/45GbByklsWCzNPukdA1ZXffLLLQ=;
        b=qAxdihr+FvIU9zj/D5MEeuhUowyyQIzChqS/eal6t7K+akUNbvHiaXYY992O4quY6N
         YqDG9DQ15PgU8/Ui4wBYMqe6+g1r7p/+otmmLelVm9n4vlHrhziHix8eIx5uwB3x6tnH
         JqanpqRHjnY+plSnp3UJKNVvSCSVpt7cm3bbHlgq4CFno32pw0WLweqafNnPuRfxtMfv
         VyLEou3hSxsHlKw8hA8dmqk8hwPYUiVUpZfXjeqbaLkHXBgKtww1Fu69S1n//a1BtYzK
         shtEtBf9zYOcw3ztfWnZS572uvSvdlzNH3v9O/s47KL21VpnCMxfEPyU9tx0WRzy4UIZ
         0XtA==
X-Forwarded-Encrypted: i=1; AJvYcCXzrb7VGAZ88vYbEfO84i4xLrqe4AdzYVhc0WECISqyquHAQd76j3EzdpiuzQyhNStFv2C6MMerrk0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQaikbcMPI7qgyxORiPorDNdT5//RhofwW0bagOcbfMy8mY341
	ebRqosf7RKNFyO+1xg7Tfa7/A33KBh2GwBWnnv3BTLMzAvczv1y9uXHqlFT+G0v1ve6VghzU7/n
	bkp5eHCDbpOJJmbK/iERPOS5p/FViOBarv/HLFluU5nZy7XvUcfPPW6mrDj8OKBuy
X-Received: by 2002:a05:6214:5987:b0:6d3:68df:f62d with SMTP id 6a1803df08f44-6d39e10946emr297208076d6.2.1731514300883;
        Wed, 13 Nov 2024 08:11:40 -0800 (PST)
X-Google-Smtp-Source: AGHT+IHnbeg7ogUgcEGRAzWAPJHQLp75DRK8IjefSxWG9p6JZ9o7VJOC4JF6vdJYqufewnJd395bRA==
X-Received: by 2002:a05:6214:5987:b0:6d3:68df:f62d with SMTP id 6a1803df08f44-6d39e10946emr297207096d6.2.1731514300322;
        Wed, 13 Nov 2024 08:11:40 -0800 (PST)
Message-ID: <2f94dd0f0bfef8d51f1ced78a9b5db8e2ce48429.camel@redhat.com>
Subject: Re: [PATCH v2 01/11] PCI: Prepare removing devres from pci_intx()
From: Philipp Stanner <pstanner@redhat.com>
To: Thomas Gleixner <tglx@linutronix.de>, Damien Le Moal
 <dlemoal@kernel.org>,  Niklas Cassel <cassel@kernel.org>, Basavaraj Natikar
 <basavaraj.natikar@amd.com>, Jiri Kosina <jikos@kernel.org>,  Benjamin
 Tissoires <bentiss@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Greg
 Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov <oakad@yahoo.com>,
 Sudarsana Kalluru <skalluru@marvell.com>, Manish Chopra
 <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>,  GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>,  Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam Sundar
 S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave Jiang
 <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn Helgaas
 <bhelgaas@google.com>, Alex Williamson <alex.williamson@redhat.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Mario Limonciello
 <mario.limonciello@amd.com>, Chen Ni <nichen@iscas.ac.cn>, Ricky Wu
 <ricky_wu@realtek.com>,  Al Viro <viro@zeniv.linux.org.uk>, Breno Leitao
 <leitao@debian.org>, Kevin Tian <kevin.tian@intel.com>, Mostafa Saleh
 <smostafa@google.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Jason Gunthorpe <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>, Kunwu Chan
 <chentao@kylinos.cn>, Ankit Agrawal <ankita@nvidia.com>, Christian Brauner
 <brauner@kernel.org>, Reinette Chatre <reinette.chatre@intel.com>, Eric
 Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-input@vger.kernel.org, netdev@vger.kernel.org, 
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org,  kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Date: Wed, 13 Nov 2024 17:11:29 +0100
In-Reply-To: <87plmzktn3.ffs@tglx>
References: <20241113124158.22863-2-pstanner@redhat.com>
	 <20241113124158.22863-3-pstanner@redhat.com> <87plmzktn3.ffs@tglx>
User-Agent: Evolution 3.52.4 (3.52.4-2.fc40)
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: sXtRbcH0YpcqHH_Rtc71nslTPoWWALj1CaAjeHwLnHA_1731514301
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 2024-11-13 at 17:04 +0100, Thomas Gleixner wrote:
> On Wed, Nov 13 2024 at 13:41, Philipp Stanner wrote:
> > +/**
> > + * pci_intx_unmanaged - enables/disables PCI INTx for device dev,
> > + * unmanaged version
> > + * @pdev: the PCI device to operate on
> > + * @enable: boolean: whether to enable or disable PCI INTx
>=20
> Except that the argument is of type int, which really should be type
> bool.

True, but this is a *temporary* copy of pci_intx(), a ~16 year old
function. Older C programmers had the habit of for some reason using
32-bit integers for a true/false boolean all the time.

We _could_ think of changing pci_intx()'s parameter to a boolean, but I
think it wouldn't really improve things very much

see also below

>=20
> > + * Enables/disables PCI INTx for device @pdev
> > + *
> > + * This function behavios identically to pci_intx(), but is never
> > managed with
> > + * devres.
>=20
> behavios?

-> behaves. Will fix.

>=20
> > + */
> > +void pci_intx_unmanaged(struct pci_dev *pdev, int enable)
>=20
> I find this function name mildy confusing. This _unmanaged suffix is
> not
> really telling me anything. And the reference that this behaves
> identically to pci_intx() makes it even worse.
>=20
> This function is about controlling the PCI INTX_DISABLE bit in the
> PCI_COMMAND config word, right?
>=20
> So naming it pci_intx_control() would make it entirely clear what
> this
> is about, no?

We had this conversation last week. I answered on that already, maybe
you have overlooked it:

https://lore.kernel.org/all/a8d9f32f60f55c58d79943c4409b8b94535ff853.camel@=
redhat.com/


Please also take a look at patch 11, then you'll see the full picture

Danke,
Philipp

>=20
> Thanks,
>=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tglx
>=20



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 16:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 16:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835895.1251753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBG8q-0006jD-Uv; Wed, 13 Nov 2024 16:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835895.1251753; Wed, 13 Nov 2024 16:22: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 1tBG8q-0006j6-S1; Wed, 13 Nov 2024 16:22:52 +0000
Received: by outflank-mailman (input) for mailman id 835895;
 Wed, 13 Nov 2024 16:22: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=yEOK=SI=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1tBG8p-0006j0-Ji
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 16:22:51 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8593f02b-a1db-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 17:22:48 +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: 8593f02b-a1db-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5My4xNDIuNDMuNTUiLCJoZWxvIjoiZ2Fsb2lzLmxpbnV0cm9uaXguZGUifQ==
X-Custom-Transaction: eyJpZCI6Ijg1OTNmMDJiLWExZGItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTE0OTY4LjczNTQxLCJzZW5kZXIiOiJ0Z2x4QGxpbnV0cm9uaXguZGUiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1731514966;
	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=3k8+NXf0XqcxSDVGHG1zcPA7gqnuYQaT+ExzotBYqus=;
	b=2p1i5424l/Mw2o1go3eZuRlhLFfLu7r8KKASlGO/YPpkQZDBas2eHSNplLNLapYA8yDFgN
	WCGwOvmnq1Y70YHVSNHcUfBoLXYw7St3krtFkCIvDFofEHsEFJI/tUmpthMj5822ePeIjp
	ifMBL3OrlRi7yqyJVRpmbh0L7A1joJRZ4KnuDr5zlN46fN8Dou/rizXBUid26Zy+obL29T
	Cyh07HAwKRIA8BddfyqNCGPoDLMe7kZNM3/4oUePcYUpjpZZSqveBKZGaoen8IK4gL1hrB
	cLsa/ZQU5GMMglVK24fX2nMABPE7beIyU3V/10IGN6wc7T/52pLz94BPzzuPww==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1731514966;
	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=3k8+NXf0XqcxSDVGHG1zcPA7gqnuYQaT+ExzotBYqus=;
	b=2/sBlyjXN5KrpH5yo+sPPoE1Vj7RMOF2OIGTxhk0XidvUTXq9URTcJn7IcLDz/JowTbjmq
	2LOMU1e9sNdrRBDg==
To: Philipp Stanner <pstanner@redhat.com>, Damien Le Moal
 <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>, Basavaraj Natikar
 <basavaraj.natikar@amd.com>, Jiri Kosina <jikos@kernel.org>, Benjamin
 Tissoires <bentiss@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Greg
 Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov <oakad@yahoo.com>,
 Sudarsana Kalluru <skalluru@marvell.com>, Manish Chopra
 <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>, GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>, Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam
 Sundar S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave
 Jiang <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn
 Helgaas <bhelgaas@google.com>, Alex Williamson
 <alex.williamson@redhat.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Philipp Stanner <pstanner@redhat.com>,
 Mario Limonciello <mario.limonciello@amd.com>, Chen Ni
 <nichen@iscas.ac.cn>, Ricky Wu <ricky_wu@realtek.com>, Al Viro
 <viro@zeniv.linux.org.uk>, Breno Leitao <leitao@debian.org>, Kevin Tian
 <kevin.tian@intel.com>, Mostafa Saleh <smostafa@google.com>, Andy
 Shevchenko <andriy.shevchenko@linux.intel.com>, Jason Gunthorpe
 <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>, Kunwu Chan
 <chentao@kylinos.cn>, Ankit Agrawal <ankita@nvidia.com>, Christian Brauner
 <brauner@kernel.org>, Reinette Chatre <reinette.chatre@intel.com>, Eric
 Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-input@vger.kernel.org, netdev@vger.kernel.org,
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 11/11] Remove devres from pci_intx()
In-Reply-To: <20241113124158.22863-13-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
 <20241113124158.22863-13-pstanner@redhat.com>
Date: Wed, 13 Nov 2024 17:22:45 +0100
Message-ID: <87msi3ksru.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Wed, Nov 13 2024 at 13:41, Philipp Stanner wrote:
> pci_intx() is a hybrid function which can sometimes be managed through
> devres. This hybrid nature is undesirable.
>
> Since all users of pci_intx() have by now been ported either to
> always-managed pcim_intx() or never-managed pci_intx_unmanaged(), the
> devres functionality can be removed from pci_intx().
>
> Consequently, pci_intx_unmanaged() is now redundant, because pci_intx()
> itself is now unmanaged.
>
> Remove the devres functionality from pci_intx(). Have all users of
> pci_intx_unmanaged() call pci_intx(). Remove pci_intx_unmanaged().
>
> Signed-off-by: Philipp Stanner <pstanner@redhat.com>
> ---
>  drivers/misc/cardreader/rtsx_pcr.c            |  2 +-
>  drivers/misc/tifm_7xx1.c                      |  6 +--
>  .../net/ethernet/broadcom/bnx2x/bnx2x_main.c  |  2 +-
>  drivers/net/ethernet/brocade/bna/bnad.c       |  2 +-
>  drivers/ntb/hw/amd/ntb_hw_amd.c               |  4 +-
>  drivers/ntb/hw/intel/ntb_hw_gen1.c            |  2 +-
>  drivers/pci/devres.c                          |  4 +-
>  drivers/pci/msi/api.c                         |  2 +-
>  drivers/pci/msi/msi.c                         |  2 +-
>  drivers/pci/pci.c                             | 43 +------------------
>  drivers/vfio/pci/vfio_pci_core.c              |  2 +-
>  drivers/vfio/pci/vfio_pci_intrs.c             | 10 ++---
>  drivers/xen/xen-pciback/conf_space_header.c   |  2 +-
>  include/linux/pci.h                           |  1 -
>  14 files changed, 22 insertions(+), 62 deletions(-)

Now I'm utterly confused. This undoes the pci_intx_unmanaged() churn
which you carefully split into several patches first.

So the net change is that:

   1) pci_intx() is now always unmanaged

   2) a couple of drivers use pcim_intx() now instead of pci_intx()

The obvious ordering is:

   1) Convert the drivers which need the managed version to use
      pcim_intx()

   2) Remove the managed warning in pci_intx() and clean up the comment

   3) Remove __pcim_intx() and invoke pci_intx() in the devres code.

No?

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 16:41:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 16:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835903.1251762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBGQx-0001Ql-99; Wed, 13 Nov 2024 16:41:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835903.1251762; Wed, 13 Nov 2024 16: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 1tBGQx-0001Qe-6g; Wed, 13 Nov 2024 16:41:35 +0000
Received: by outflank-mailman (input) for mailman id 835903;
 Wed, 13 Nov 2024 16:41:34 +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 1tBGQw-0001QY-2O
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 16:41:34 +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 1tBGQv-003KVi-1r;
 Wed, 13 Nov 2024 16:41:33 +0000
Received: from [2a02:8012:3a1:0:2c06:4644:c8a3:2b5e]
 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 1tBGQv-003DhA-1u;
 Wed, 13 Nov 2024 16:41: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=HVA+R/o9AVUPyxfpGCcndmOSCziqn/HkDXaPvd8693w=; b=4wThfSQyEd1R1E571iqxZP0JFx
	BNSCbiV4IPDZGRE4lKilMEnUjMnTFi6pJGDf/AeavtzZhJJgQIwt0ugKQVOTnGFeez0i4NqvUzW5k
	LGssyB4Q8JQFJQCgaJOLSewGtIQspbHCF2VSvVa/JDhcRq2t9lLkcYVDGCKIGh8yMQ5Y=;
Message-ID: <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
Date: Wed, 13 Nov 2024 16:41:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Luca Fancellu
 <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 13/11/2024 15:40, Michal Orzel wrote:
> 
> 
> On 13/11/2024 15:40, Julien Grall wrote:
>>
>>
>> Hi,
>>
>> On 13/11/2024 14:19, Michal Orzel wrote:
>>>
>>>
>>> On 13/11/2024 14:50, Julien Grall wrote:
>>>>
>>>>
>>>> Hi Michal,
>>>>
>>>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>>>
>>>>>
>>>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>>>
>>>>>>
>>>>>> There are some cases where the device tree exposes a memory range
>>>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>>>> current code will stop Xen to boot since it will find that the
>>>>>> latter range is clashing with the already recorded /memreserve/
>>>>>> ranges.
>>>>>>
>>>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>>>> in the /memreserve/ part and even in this case this will prevent
>>>>>> Xen to boot since it will see that the module memory range that
>>>>>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>>>>>> range.
>>>>>>
>>>>>> When Xen populate the data structure that tracks the memory ranges,
>>>>>> it also adds a memory type described in 'enum membank_type', so
>>>>>> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
>>>>>> function to check for exact memory range match given a specific memory
>>>>>> type; allowing reserved-memory node ranges and boot modules to have an
>>>>>> exact match with ranges from /memreserve/.
>>>>>>
>>>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>>>
>>>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>>> ---
>>>>>> I tested this patch adding the same range in a /memreserve/ entry and
>>>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>>>> I've also tested that a configuration running static shared memory still works
>>>>>> fine.
>>>>>> ---
>>>>> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
>>>>> and the changes below look a bit too much for me, given that for boot modules we can only have
>>>>> /memreserve/ matching initrd.
>>>>
>>>> How so? Is this an observation or part of a specification?
>>> Not sure what specification you would want to see.
>>
>> Anything that you bake your observation. My concern with observation is ...
>>
>>    It's all part of U-Boot and Linux behavior that is not documented
>> (except for code comments).
>>> My statement is based on the U-Boot and Linux behavior. U-Boot part only present for initrd:
>>> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
>>
>> ... a user is not forced to use U-boot. So this is not a good reason to
> I thought that this behavior is solely down to u-boot playing tricks with memreserve.

Sure we noticed that U-boot is doing some we didn't expect. But this 
really doesn't mean there are not other interesting behavior happening.

> 
>> rely on it. If Linux starts to rely on it, then it is probably a better
>> argument, but first I would need to see the code. Can you paste a link?
> Not sure how I would do that given that it is all scattered. 

There are no requirements to be all scattered.

 > But if it means sth, here is kexec code> to create fdt. It is clear 
they do the same trick as u-boot.
> https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355

Yet this doesn't provide any information why this only has to be an 
exact region... It only tells me the current behavior.

> 
>>
>>>
>>> For things that Xen can be interested in, only region for ramdisk for dom0 can match the /memreserve/ region.
>>> Providing a generic solution (like Luca did) would want providing an example of sth else that can match which I'm not aware of.
>>
>> I would argue this is the other way around. If we are not certain that
>> /memreserve/ will not be used for any other boot module, then we should
>> have a generic solution. Otherwise, we will end up with similar weird
>> issue in the future.
> We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and ramdisk. The first 2 are not described in DT so I'm not sure
> what are your examples of bootmodules for which you want kernel know about memory reservation other than ramdisk.

The DTB is not described but the kernel is. We also have XSM modules. 
All of which could in theory be in memreserve if for some reasons the 
bootloader wanted to preserve the modules for future use (think 
Live-Update)...

Anyway, to be honest, I don't understand why you are pushing back at a 
more generic solution... Yes this may be what we just notice today, but 
I haven't seen any evidence that it never happen.

So I would rather go with the generic solution.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 16:49:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 16:49:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835912.1251773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBGY4-00023q-1T; Wed, 13 Nov 2024 16:48:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835912.1251773; Wed, 13 Nov 2024 16:48: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 1tBGY3-00023j-UV; Wed, 13 Nov 2024 16:48:55 +0000
Received: by outflank-mailman (input) for mailman id 835912;
 Wed, 13 Nov 2024 16:48: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBGY3-00023d-Dt
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 16:48:55 +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 2778a27b-a1df-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 17:48:48 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2fb559b0b00so59408601fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 08:48:48 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf03c4ed68sm7313356a12.63.2024.11.13.08.48.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 08: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: 2778a27b-a1df-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1sajEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3NzhhMjdiLWExZGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTE2NTI4LjQ2Nzc4MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731516527; x=1732121327; 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=lJxztg/IUyf+ySyFYSIlKltpJMPo9wreBLNBghQKgU8=;
        b=Z5Nt3Q64LpDDaR3MsFHyhR9v3/rJgoI76YgZDUiqaGGIDoZ+8du5oYQ0YZnM9eP8/U
         117cNnx7ikTjedak0VtBnsRpLCI0zzg+xpwzLJQaP0V3JjGOWOzzJYIqEIApM9Ox8jGc
         l9CeB9ELI9imGWp/GMopRqfokL17eVcVy3vz8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731516527; x=1732121327;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lJxztg/IUyf+ySyFYSIlKltpJMPo9wreBLNBghQKgU8=;
        b=Pb1ySttdIf2DJ7cZMAKp61XkPtYid8nUpPB+fvUEAFFZseR9vUp3Agsj8m48c6xTjT
         BlZnOvleDt2gfduLzhKZQ7T6Xhcb2ZR8lHkCXzd1huaNeofcietXOmxR9ooesf67c9Fb
         SacE1Wrn6uHpKAlBE0JbijnAKzasEzpXJbcAVKU8WIxEzYqlleK/QQKM9ec75f4/rKUV
         JCwt16+eWqH3WCNUdJfLz5j4w8eCivTG8rGtk4Z7FlLhzag/zTjV9Vuj5b02GMAj8QfV
         24W0fg7NiBARLeDpI4owFEpCz4qNXi8P6YB6v3k0/WfktashBG9Rtm0vHl3YeAQIIqJ2
         vFyw==
X-Gm-Message-State: AOJu0YwD9r2zAGsRH8SivjX7mfso45wL/zsJRFLrOvGtp+S7TyPoRihU
	a88GtLDLv9uqlv9JpcytvDYVwX8ZNZrooBqBEMdox2dIWA8YfyGrtTWgL63Q7T5CETsepAo+23I
	0
X-Google-Smtp-Source: AGHT+IEEU3DpsazBccMx+e7d+EQKOcPwZQ+TB8ld0u5hlq1wNNEzHYXVcZJ5D2dNtevSYVgxJ3GRFA==
X-Received: by 2002:a05:651c:884:b0:2fb:59ab:a0ed with SMTP id 38308e7fff4ca-2ff20112336mr95076161fa.3.1731516527420;
        Wed, 13 Nov 2024 08:48:47 -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] xen/earlycpio: Fix header to be standalone
Date: Wed, 13 Nov 2024 16:48:44 +0000
Message-Id: <20241113164844.1750237-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 yet-more microcode cleanup work.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/include/xen/earlycpio.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/include/xen/earlycpio.h b/xen/include/xen/earlycpio.h
index d4992035982d..b1dafc3b0b75 100644
--- a/xen/include/xen/earlycpio.h
+++ b/xen/include/xen/earlycpio.h
@@ -1,6 +1,8 @@
 #ifndef _EARLYCPIO_H
 #define _EARLYCPIO_H
 
+#include <xen/types.h>
+
 #define MAX_CPIO_FILE_NAME 18
 
 struct cpio_data {

base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 16:53:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 16:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835918.1251783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBGcC-0003qe-GQ; Wed, 13 Nov 2024 16:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835918.1251783; Wed, 13 Nov 2024 16:53: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 1tBGcC-0003qX-Df; Wed, 13 Nov 2024 16:53:12 +0000
Received: by outflank-mailman (input) for mailman id 835918;
 Wed, 13 Nov 2024 16:53: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=DKyd=SI=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBGcA-0003qP-SR
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 16:53:11 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20629.outbound.protection.outlook.com
 [2a01:111:f403:2613::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0c7376c-a1df-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 17:53:06 +0100 (CET)
Received: from DB3PR06CA0009.eurprd06.prod.outlook.com (2603:10a6:8:1::22) by
 PAWPR08MB9065.eurprd08.prod.outlook.com (2603:10a6:102:332::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Wed, 13 Nov
 2024 16:53:02 +0000
Received: from DU2PEPF00028D06.eurprd03.prod.outlook.com
 (2603:10a6:8:1:cafe::2f) by DB3PR06CA0009.outlook.office365.com
 (2603:10a6:8:1::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17 via Frontend
 Transport; Wed, 13 Nov 2024 16:53:02 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU2PEPF00028D06.mail.protection.outlook.com (10.167.242.166) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Wed, 13 Nov 2024 16:53:01 +0000
Received: ("Tessian outbound d013e61db77e:v490");
 Wed, 13 Nov 2024 16:53:00 +0000
Received: from Lf84c943f5a08.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 F4CB0635-D124-47AC-84D2-4AA1A6C39379.1; 
 Wed, 13 Nov 2024 16:52:54 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lf84c943f5a08.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 13 Nov 2024 16:52:54 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by AM9PR08MB6003.eurprd08.prod.outlook.com (2603:10a6:20b:2d4::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Wed, 13 Nov
 2024 16:52:51 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.013; Wed, 13 Nov 2024
 16:52: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: c0c7376c-a1df-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjI5IiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMwYzczNzZjLWExZGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTE2Nzg2LjAxOTEyNCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=B4MvkENbA8QZoRxjA8muN+8lcNCp0P4rnTTsS6dJt2u9JfvD1TeANjQx6rRc6knfU63U7BWyn3twMiAE103QWZSBr/NWDWOj4o4ekb6vmgdSAGUMOuMTkJXcKEJuoRi0Fn22DHDrS0b++2/tPV+4nJKJtJOUTkMNpCpyD6/5JpxMXgEgbC4biaRu2Tog/zDbiykArH03c9Hdsb02BuSw9CA46tfup8JZ8JZc7tOxqN6Jwlq52YCGpS9iHmyUraa2r8ItTC1iMiNdbjAN9mZIEkyEaEf7s6m1qRe0p6B9RY/Z66F9HqSKHqTlKppMrZLGzBbToSsyllys3z9trNnfpg==
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=1sQFyZQFtnGoRqBplKJRTT9kx/TP/CUgJLrPAUz1Iq8=;
 b=RYcmRMy20HZ8XXcdhlFUv/N3d9ttSvUV87wQDKyY+8X5B4k1Re8OWUa6ZZHNCsxH3H8Nx6QLMn2PuaA0930BZqOwTNPt7FVYuEyTnOH5EYBjKsPxfBrWEOvy220CmzjeDMFaitJNey3wl+Y3/bETNDorl2TXDyCw8QS1OHSAqUMhYDxgFT+oWJ3hjMOnfkkdmjL0k5zOKnt1wvJCA6MD7lx/XUN0zw4i5GuvnyOoGXMfE1ZJm/9LfkQZvWBOAjregIxj3ieDnReohbhdY0WR+KI8Q+zkgVRR8N/9m22pSpbWi5Da5CKUcwwobXbMy8bpq8RNLPngtQbZtK6MVtesaA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=1sQFyZQFtnGoRqBplKJRTT9kx/TP/CUgJLrPAUz1Iq8=;
 b=BYr043O3iH0Fi/d+cRAZzqigu2vEdJXxZtBMyUJyQLOEKlKaZVmiug7h+760OC9eX0FK9cE4t8FRr7pv57BML2D+Kyc2Ui4uQL57kMPdBWjtWynO7bLcrEoNskex04OWvxgebOQFOtn9byg4Jm8hhkTNiMGltylZa6vbP4jMnJ0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: a5e3603321b439f3
X-TessianGatewayMetadata: rY4GOckzRln9qmwxMaQ4tNMvOMoc6zcORCq5zH6gUaHiZ1zjSqMNBXTPkvNk/Qga997tEFZTwAtf2p213dhprZRZl0DUee8YGRSSV0Vz3M7sbxOQ+8gNLWG4o8MVlm8isfY6jZx3WeMmsk3HDF4vAHpXy6HTis3vzram4xghG8E=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V4aa8YtVDB5EZ0wVczMztNYHyDZsa5d6C6CTx/uqHzcHyQ7+af2ghznlKPulJwi+F1cJKapc8W9uEoVbNhN7bgsNi2Xvz0Sm/ApcsA/CBY86rtgh52JL0L5qSBf7oSMnwRQUbQpDkHotFal96NpdBMGNlJ5R7Zx/yN35/bJtAlN0diNkmeGWFJdcSTxFHmFZByr0eGBII2RfCE9WeLDXx4V+hytNSPFXG1rfmkgPvCaQNOF8huq0uC40c8wLIfiu4nKCXVbH2t1gHfvQTFe4cHjCKxPxZeo9hhHSms1EV+BNoP2D/dewZQdTA4Tq9V4LZFJNGZXICU7zR1mFy+WH9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1sQFyZQFtnGoRqBplKJRTT9kx/TP/CUgJLrPAUz1Iq8=;
 b=hNgBzbh0MgGlSAHPdG6hSEALJ89m8dbcYt5v8U85hyGjAaWaoPIKcUZQA7bJwvx8ETvEV/1tRHA4FPHYpUPKFEz0WFbupdtnrHuACS25ZdrpHbsKgf4dXAw4uVDVXg8TCtSaYe3J1KYegrnFpi2x2bnndzs/7ckig6wrPlVcqsx6c0fdLMI8opWZHnlqTH4WLt6RDBQXbF6WBD8BuFYwt6PWw7Bvzohi5oSlybE8bZievoEzfc9kUsRxRr9gKCtQerpS1jrs9EcPv+WFq0Mb1lAZ/0hKDN9Ws34ulPsOVAYvJJDTXCMNsopw/XIj9Pu3QG6QalexGNRrPZkl0jCfFQ==
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=1sQFyZQFtnGoRqBplKJRTT9kx/TP/CUgJLrPAUz1Iq8=;
 b=BYr043O3iH0Fi/d+cRAZzqigu2vEdJXxZtBMyUJyQLOEKlKaZVmiug7h+760OC9eX0FK9cE4t8FRr7pv57BML2D+Kyc2Ui4uQL57kMPdBWjtWynO7bLcrEoNskex04OWvxgebOQFOtn9byg4Jm8hhkTNiMGltylZa6vbP4jMnJ0=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: "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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Thread-Topic: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Thread-Index: AQHbNdR4b2V2aTQ740yGxnKF6IdbXLK1RlIAgAALhoCAABtMgA==
Date: Wed, 13 Nov 2024 16:52:51 +0000
Message-ID: <CB0DED68-C1CE-441E-9688-D5377C01BF91@arm.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <f0928350-0031-4f74-a61a-778e68a9f67b@xen.org>
 <FA425FB4-7B3D-4FF0-9C94-2E5D8ECA1502@arm.com>
 <c7f818b8-5dc7-4b16-a5ca-050af6c36be4@xen.org>
In-Reply-To: <c7f818b8-5dc7-4b16-a5ca-050af6c36be4@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|AM9PR08MB6003:EE_|DU2PEPF00028D06:EE_|PAWPR08MB9065:EE_
X-MS-Office365-Filtering-Correlation-Id: 91725cdb-452d-4f37-754a-08dd0403a29b
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ZTFlcVVLQ3ZrODJDRlpEMmlUdTZwVzd1S1cySFVjbE40eG5hNVZvekVscWtD?=
 =?utf-8?B?Vm5IUnFJR3pJTCtMUkNMeFkzbWNxYjdjQzVRSmNET3RaVlJ0RnV6OUpZNHIr?=
 =?utf-8?B?dVdkcVlCWi9oSDdhZWlVOW5Id1NuRVFBQlZWL2R6RWNqazg2ME11L2xCd0dj?=
 =?utf-8?B?YmRBcHBIY2RwYmJMaHBRaG16LzkzL2RkaHFZUFFpK0EvR1oreStHSjNJZVZh?=
 =?utf-8?B?VElzNkhxeDlKRkpucmJLR2ZCVmcwZFRGL0VNb0h3b3NhdllEUGtoMlo5ZlVk?=
 =?utf-8?B?WlE2WWhDM0NhREVzNllBMTY0bWJXR290VklhTlRDcHJGU0tmTU9mOHdNeklN?=
 =?utf-8?B?NmxoZWtrWGkxMXV0SE92Rm8wbnJkTysyMGNvSW9DMXZnZHBqWnVUOENBSm80?=
 =?utf-8?B?dHVqWEFaTmJHUjhFQ3JxeTFzQXhSN2lmaUtaOWRyYWl6cUE0Qkt6UytKRnZZ?=
 =?utf-8?B?SGxRQlZQbHk5SmlSTXdFcmVNRlh2czZlR2NaaTNwRWg5U0oreXQwRDRhaEE4?=
 =?utf-8?B?cjFWTWNGeGtmSDVzeWRGUkpmaFh1QTBwSnBNbDF6QkU4RGNIaFh0TUtTbStu?=
 =?utf-8?B?Qm9FZ20wL0Y1YkRGRE8xcHZWOUFpYko0OFpjb3lBNXQ1STkxa1JLeFdCaEIr?=
 =?utf-8?B?eGswY2NQTVdVbEk1b2Q5Y2krc08xdW5va21rS0pja016dWhqZy9vVnJLYkRi?=
 =?utf-8?B?VlpNL09ETDBwc1A0eUdzK2NHQTlhdkc1cUdZc3FjWUFscWhSUGNoQ1A4UmZS?=
 =?utf-8?B?SmVZU3prSk1CZ0NVOUw0SGdkYmw3UU5xNTN5TmRFQURWMHBLQWEyWDBKVXpF?=
 =?utf-8?B?NXIxZkxkYllXOXVXMlRSZnFJS1ZwRncveWpxbnlJWDJ1enIraDVqWlcxNWJn?=
 =?utf-8?B?bWdsWVZ1eDJsL3NNUUNvd2hsZ2pIbnpDaFpDcGNqUlE4QkxGd0t6b0lDQWZw?=
 =?utf-8?B?OUhGRWprU2VIejFQV0E3cFlyenNnU0N3VmJhamNlVXF2VHZFUHZtSkFwTUZa?=
 =?utf-8?B?dlJYR0ZkQVVhQjF4SjBjVDBCQXJqRXlRbXpGTHowUWhNVjAyOHJndEgzYVZR?=
 =?utf-8?B?YjB6aVd6TlJIRTRjR2JPOU9zMzdTbngzejRkRTFwM01oMUxkeS9LMVBKMG1Q?=
 =?utf-8?B?SDB0ODdKaVZIZG5HOTJlOVEzZ2pSZUlvYUpON1BoZUsxUmRBZWhrWlhHendx?=
 =?utf-8?B?NjlZWThFR3JTbGx3S3RtY1ZjNlM5R29BQjhDeUxNNWpsWm9pWXQwd3ROVkFu?=
 =?utf-8?B?UzlJdUo2RWNzOHBIMVNBS1p1ZnY5cHdZaEJEb3JNMzF2cVdlTWlKMXc3cXFw?=
 =?utf-8?B?UXFVY0RKZVo4TzNIUi93Nnh5UVhFUk8wU2QrN2NURVk4cVZxS2I1K0svNlF0?=
 =?utf-8?B?SXR6NG93a09NUDdTZTZMRkxIU1MrMWhRK3pkaUQ1ZU04b3ViMXpwN0JhQXAx?=
 =?utf-8?B?WWovTVdtL2d4cERuR3J2b2F2STBPTWVHUERHTERBZ09uNDJMWFUvVjN4ckJN?=
 =?utf-8?B?SkNuamRKZFFJVDViaC9LS1dudkQ3SnBlcFB6ZHM4UVp0Z2lPNEhmcGlsQ2pT?=
 =?utf-8?B?amRnQnVWUkludWE4UDZLM09KMFIyZmFQUEhJRnNaSXFZa2lxbTVOSmVVejBO?=
 =?utf-8?B?eWZCbnFkSGI5dHJxYWZxNnQyM2pka0tLMHE3NHA1L0F2OGJ3M1VaZXFBeU9L?=
 =?utf-8?B?TkZLY1A4UHhzVFBoRGZ4a0c3Q285OTJnc25sVk05SUNMNzB2Q3BUVzJBMGR4?=
 =?utf-8?B?TlkrZVVZOURIUERWRERqS0t6Z3VKNERubjU2QzNBOXNCS3c4QTFoU01ZTUwv?=
 =?utf-8?Q?48pjSM4fGyul0jY1yJ7BMMlM+3D8nE/Kgpsno=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <5704048172585D4D9AEF6DD98AB30B92@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6003
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D06.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f73e0c20-d7e4-49f0-3060-08dd04039ca6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|14060799003|1800799024|82310400026|36860700013|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dUh0a1ZwTzdyMEVWNTBLTEJML1BwQnlLQi9RdEp0R1RuNzJVeXJETVAxKzNG?=
 =?utf-8?B?cm5EZURnVWJ6VkRiQkVldTBsUGVlc2ZyRWRaQjgvOThmNTJ3c01kYUJXQ2dG?=
 =?utf-8?B?czYvK29maWR3c0h3RERmSjhLUnB3MFVkcUJCdHFOYWo1YjFCc3RkOGhJejhv?=
 =?utf-8?B?U1FjRmJIbjQ0UFpuOXVXUDhvUWxxRDljbkE0aEg5Mkl6YkxXVW5GbmZrVnZ6?=
 =?utf-8?B?dkNHK1p1eHZweVhpL0VhVk5xajNpbTdRR1lhenNibHdlM1VFM1UyMVpoeVlK?=
 =?utf-8?B?Z1cyM1lDYnd2Z2pIZTFWcnRtMm5YNzVIRnJLbm9vRFdRZ3V4NmFvSi9ZSGVW?=
 =?utf-8?B?K0xDeGR3K1BmdDkrNVVhZjJqTUlNRkNreGliTnk3cVNEdWNoekV0VDVwRlhl?=
 =?utf-8?B?T3hGYWROem5yQ2F1d1l1eGNpK3lYMGsxSW0vNmU0Y1pFK0pyN05RVnp0UDBB?=
 =?utf-8?B?bWM1SmVTNEYwN0ZPOW4vRWZIMU9IRHo2eDh4MTFzd0RPNGN3WGxXOG9SWVV4?=
 =?utf-8?B?SzhQRlQvL2lpQ0dCRkVXdW5XSWpVV2JsVXNCa2VqR1doSGpNN1NwNUp4QS94?=
 =?utf-8?B?RjEzUHNYWEJ3VHN4VDFtQU1mcXEyeGR1VnZWNUY4aGE3OU9sVVNadFREQnRR?=
 =?utf-8?B?bmExWlpRSDlBQ3g4aEVZMEhGMWtHZUxZellYUlp1Z082L2Y5YUJrdzZlekNQ?=
 =?utf-8?B?bFdOeE0rZ1I2SG1zbHU1YWF2S1RtM0k2Q1lxSWlwSEd6d2NpN2krV0JKQVFC?=
 =?utf-8?B?YUE4N0dtUm1VbUJ3T0l6N0hEM21xZEIyNjc5alh2aDFrWmtDVEhURXFOZXNx?=
 =?utf-8?B?aVpISDFDcWZuWjNNSmhMZmlLaWhNTXkxaFVOZG5tSklYQnMrOGlWVzEwTm91?=
 =?utf-8?B?dHRNQnoyRHF1ZFNJUkFiZHZYaEE0Q2w4aGdIT3lsQWJTZHQwUnpKQURVaEJI?=
 =?utf-8?B?aEQwMThjSFVpMG1zZm9tVkZ5RGFjdGdBWXh1TmlZdjlrTFVTK0ZPWXgxOTNz?=
 =?utf-8?B?cXd2SzF5eWF0NHZ2Sjh3ZUZLZmxtRHBkTGRzOWxGS05RMVBXTmFvdUdHdERt?=
 =?utf-8?B?SWh1T2VPWTBxc1czL3lnY2I5Tkw3YUJUYzZnMWg5ZHNFdldMZjV4eVNINllX?=
 =?utf-8?B?RjNlN2lBWEFzeDE4VlFCL2dvNmRVZEJjekhMejlpVXZWdXNMWHlvYnUvWG9k?=
 =?utf-8?B?WkhFZVNnSnRnS0pTUWdMTlYyYU4zTGdxTkhHT3hXcjZIVFBOaXh4ODMxZHlF?=
 =?utf-8?B?RFBPZUg2ajVnUmEvc2RFdVlJc1RBZUo2WGE2dC9FMTRTbUFGUk5HS2JndTRp?=
 =?utf-8?B?TytXa2hWSEMrdnFkVnIySjVSMkFWL3A0TU5WU29ldDM0RmQrc0lIaXd6U1JR?=
 =?utf-8?B?VkFOYWVLT205OUZOOHhZV2pnSXBtTUVJczg2c3VwTm96WU5GOXloZU14dUll?=
 =?utf-8?B?SzZEaHNyaUlZMnI4RStyOFlmc1lEaExrWW9iZ3NZTmFub050TmVsdnZuSFgz?=
 =?utf-8?B?MUxqQkdHV3Y3OXFENGJOTm42MW9CS0ZNNmFZeUcyM3g5TkZGUkNPUEs5QUdB?=
 =?utf-8?B?bjJaQXVDYWcwQ1NSZG1EUWZRRkw0cXBMRnl2QS9GUWgya1pkWkRsM01BWC9G?=
 =?utf-8?B?d2wzWnd2RW91ZHdaTmkwNjF6Tkk5Ly9wclFmSVowREVKRWt4KzhMLzI5Q0xB?=
 =?utf-8?B?NUZEY2ozU2MxSHFaaDVUQ09naVRlck8rbENCUHo2K2pnMFh5S2FNUmlrYUhM?=
 =?utf-8?B?ZnJLN0VISEVGTFNsNmlYSjFTcW5DeTdyTksvaUZzM0dvZVpsSWtBbDVEY1Nw?=
 =?utf-8?B?RzRHWmdvK0NjZ3VMWDVOR3I2dzFxOWVHODcycVFqekVSNzc4aFdnSjFCaHZ0?=
 =?utf-8?B?SWd5anAvaTNKMDNDekVYVm8zdys2TUdSd0hHSDFRT2FGUkE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(14060799003)(1800799024)(82310400026)(36860700013)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2024 16:53:01.5519
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 91725cdb-452d-4f37-754a-08dd0403a29b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D06.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9065

SGkgSnVsaWVuLA0KDQoNCj4+Pj4gLSAgICAgICAgfQ0KPj4+PiArDQo+Pj4+ICsgICAgICAgIGlm
ICggKGFsbG93X21hdGNoX3R5cGUgIT0gTUVNQkFOS19OT05FKSAmJg0KPj4+PiArICAgICAgICAg
ICAgIChyZWdpb25fc3RhcnQgPT0gYmFua19zdGFydCkgJiYgKHJlZ2lvbl9lbmQgPT0gYmFua19l
bmQpICYmDQo+Pj4gDQo+Pj4gV2h5IGlzIHRoaXMgb25seSBhbiBleGFjdCBtYXRjaD8NCj4+IEFw
cGFyZW50bHkgd2hhdCB3ZSBhcmUgZml4aW5nIGlzIG9ubHkgYSBjYXNlIHdoZXJlIG1lbXJlc2Vy
dmUgcmVnaW9ucyBtYXRjaGVzIGV4YWN0bHkgbW9kdWxlcyBvciByZXNlcnZlZF9tZW0gbm9kZXMu
DQo+IA0KPiBUQkgsIGFzIEkgcmVwbGllZCB0byBNaWNoYWwsIEkgZG9uJ3QgdW5kZXJzdGFuZCB3
aHkgd2UgYXJlIGp1c3QgZm9jdXNpbmcgb24ganVzdCBvbmUgaXNzdWUuIEl0IHdvdWxkIGJlIGdv
b2QgdG8gcHJvdmlkZSBzb21lIHJhdGlvbmFsZS4NCg0KSeKAmW0gbm90IHN1cmUgd2h5IHNvbWUg
RFQgb3V0IHRoZXJlIGFyZSBwcm92aWRpbmcgbWVtb3J5IHJhbmdlcyByZXNlcnZlZCBpbiBib3Ro
IHJlc3ZtZW0gYW5kIHJlc2VydmVkX21lbW9yeSBub2RlLCBjb3VsZCBpdCBiZQ0KdGhhdCBpdCB3
YXMgbmVlZGVkIGJlY2F1c2Ugc29tZSBmaXJtd2FyZSB3YXMgcmVhZGluZyBvbmx5IG9uZSBvZiB0
aGUgdHdvIGJlZm9yZSBzdGFydGluZyBsaW51eD8gSeKAmW0ganVzdCB0aGlua2luZyBvdXQgbG91
ZC4NCg0KSXMgeW91ciBwb2ludCB0aGF0IHdlIHNob3VsZCBhbGxvdyBpbnN0ZWFkIG5vdCBvbmx5
IGV4YWN0IG1hdGNoaW5nIGJ1dCBhbHNvIHBhcnRpYWwgbWF0Y2hpbmc/DQoNCj4+Pj4gDQo+Pj4+
ICsNCj4+Pj4gKyNpZmRlZiBDT05GSUdfU1RBVElDX1NITQ0KPj4+PiArICAgICAgICAvKg0KPj4+
PiArICAgICAgICAgKiBTdGF0aWMgc2hhcmVkIG1lbW9yeSBiYW5rcyBkb24ndCBoYXZlIGEgdHlw
ZSwgc28gZm9yIHRoZW0gZGlzYWJsZQ0KPj4+PiArICAgICAgICAgKiB0aGUgZXhhY3QgbWF0Y2gg
Y2hlY2suDQo+Pj4+ICsgICAgICAgICAqLw0KPj4+IA0KPj4+IFRoaXMgZmVlbHMgYSBiaXQgb2Yg
YSBoYWNrLiBXaHkgY2FuJ3Qgd2UgaGFkIGEgZGVmYXVsdCB0eXBlIGxpa2UgeW91IGRpZCBpbiBt
ZW1pbmZvX2FkZF9iYW5rKCk/DQo+PiBUaGlzIGlzIHRoZSBzdHJ1Y3R1cmU6DQo+PiBzdHJ1Y3Qg
bWVtYmFuayB7DQo+PiAgICAgcGFkZHJfdCBzdGFydDsNCj4+ICAgICBwYWRkcl90IHNpemU7DQo+
PiAgICAgdW5pb24gew0KPj4gICAgICAgICBlbnVtIG1lbWJhbmtfdHlwZSB0eXBlOw0KPj4gI2lm
ZGVmIENPTkZJR19TVEFUSUNfU0hNDQo+PiAgICAgICAgIHN0cnVjdCBzaG1lbV9tZW1iYW5rX2V4
dHJhICpzaG1lbV9leHRyYTsNCj4+ICNlbmRpZg0KPj4gICAgIH07DQo+PiB9Ow0KPiANCj4gQW5v
bnltb3VzIHVuaW9uIGFyZSByZWFsbHkgYW5ub3lpbmcuLi4gU28gZWZmZWN0aXZlbHkgaW4gY2hl
Y2tfcmVzZXJ2ZWRfcmVnaW9uc19vdmVybGFwKCkgd2UgYXJlIGhvcGluZyB0aGF0IHRoZSBjYWxs
ZXIgd2lsbCBub3Qgc2V0IGFsbG93X21hdGNoX3R5cGUgdG8gYW5vdGhlciB2YWx1ZSB0aGFuIE1F
TUJBTktfTk9ORSBmb3Igc3RhdGljIG1lbW9yeS4gVGhpcyBpcyBleHRyZW1lbHkgZnJhZ2lsZS4N
Cj4gDQo+IEkgY2FuJ3QgdGhpbmsgb2YgYW5vdGhlciBzb2x1dGlvbiByaWdodCBub3csIGJ1dCBJ
IGFtIGRlZmluaXRlbHkgbm90IGhhcHB5IHdpdGggdGhpcyBhcHByb2FjaC4NCg0KSSBhZ3JlZSBp
dOKAmXMgbm90IG5pY2UsIGJ1dCB0aGUgaXNzdWUgaXMgbm90IGluIGNoZWNrX3Jlc2VydmVkX3Jl
Z2lvbnNfb3ZlcmxhcCgpLCBpdCBpcyBpbiBtZW1pbmZvX292ZXJsYXBfY2hlY2soKSB3aGljaCBp
cyBzdGF0aWMgYW5kIHNvIGNvbmZpbmVkIHRvIHRoYXQgbW9kdWxlLg0KDQpBbnl3YXkgSeKAmW0g
dHJ5aW5nIHRvIHRoaW5rIGFib3V0IGFub3RoZXIgc29sdXRpb24uDQoNCj4gDQo+PiB3ZSBkaWQg
dGhhdCBpbiBvcmRlciB0byBzYXZlIHNwYWNlIHdoZW4gc3RhdGljIHNoYXJlZCBtZW1vcnkgaXMg
bm90IGVuYWJsZWQsIHNvIHdlIGNhbuKAmXQgaGF2ZSB0aGUNCj4+IHR5cGUgZm9yIHRoZXNlIGJh
bmtzIGJlY2F1c2Ugd2UgYXJlIGFscmVhZHkgd3JpdGluZyBzaG1lbV9leHRyYS4NCj4+IFdlIGNv
dWxkIHJlbW92ZSB0aGUgdW5pb24gYnV0IGluIHRoYXQgY2FzZSB3ZSB3b3VsZCB3YXN0ZSBzcGFj
ZSB3aGVuIHN0YXRpYyBzaGFyZWQgbWVtb3J5IGlzDQo+PiBlbmFibGVkLg0KPiANCj4gQ2FuIHlv
dSByZW1pbmQgbWUgaG93IG11Y2ggbWVtb3J5IHRoaXMgaXMgZ29pbmcgdG8gc2F2ZT8NCg0KVGhl
IHNwYWNlIGlzc3VlIGNvbWVzIGZyb206DQoNCiNkZWZpbmUgTlJfTUVNX0JBTktTIDI1Ng0KDQpb
4oCmXQ0KDQpzdHJ1Y3QgbWVtaW5mbyB7DQogICAgc3RydWN0IG1lbWJhbmtzX2hkciBjb21tb247
DQogICAgc3RydWN0IG1lbWJhbmsgYmFua1tOUl9NRU1fQkFOS1NdOw0KfTsNCg0Kc3RydWN0IGJv
b3RpbmZvIHsNCiAgICBzdHJ1Y3QgbWVtaW5mbyBtZW07DQogICAgLyogVGhlIHJlc2VydmVkIHJl
Z2lvbnMgYXJlIG9ubHkgdXNlZCB3aGVuIGJvb3RpbmcgdXNpbmcgRGV2aWNlLVRyZWUgKi8NCiAg
ICBzdHJ1Y3QgbWVtaW5mbyByZXNlcnZlZF9tZW07DQoNCiAgICBb4oCmXQ0KDQojaWZkZWYgQ09O
RklHX0FDUEkNCiAgICBzdHJ1Y3QgbWVtaW5mbyBhY3BpOw0KI2VuZGlmDQogICAgW+KApl0NCn07
DQoNClNvIGluIGNhc2Ugd2UgcmVtb3ZlIHRoZSB1bmlvbiBhbmQgQ09ORklHX1NUQVRJQ19TSE09
eSBhbmQgc28gd2UgYWxsb3cgdHlwZSBhbmQgKnNobWVtX2V4dHJhIHRvIGNvZXhpc3QsIHdlIGhh
dmUgMjU2ICogMiAqIHNpemVvZihwb2ludGVyKSBieXRlLg0KQWRkaXRpb25hbHkgaWYgQ09ORklH
X0FDUEk9eSwgd2UgaGF2ZSAyNTYgKiBzaXplb2YocG9pbnRlcikgYnl0ZSBtb3JlIG5vdCB1c2Vk
IHNwYWNlLg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 16:56:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 16:56:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835930.1251793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBGfa-0004Tz-3W; Wed, 13 Nov 2024 16:56:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835930.1251793; Wed, 13 Nov 2024 16:56: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 1tBGfa-0004Ts-0M; Wed, 13 Nov 2024 16:56:42 +0000
Received: by outflank-mailman (input) for mailman id 835930;
 Wed, 13 Nov 2024 16:56: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=IlJA=SI=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tBGfY-0004Tj-BH
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 16:56:40 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20605.outbound.protection.outlook.com
 [2a01:111:f403:2009::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39e0b514-a1e0-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 17:56:30 +0100 (CET)
Received: from MW4PR04CA0253.namprd04.prod.outlook.com (2603:10b6:303:88::18)
 by CH3PR12MB8903.namprd12.prod.outlook.com (2603:10b6:610:17a::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29; Wed, 13 Nov
 2024 16:56:23 +0000
Received: from SJ5PEPF000001CE.namprd05.prod.outlook.com
 (2603:10b6:303:88:cafe::72) by MW4PR04CA0253.outlook.office365.com
 (2603:10b6:303:88::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17 via Frontend
 Transport; Wed, 13 Nov 2024 16:56:22 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Wed, 13 Nov 2024 16:56:22 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 13 Nov
 2024 10:56:19 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 13 Nov
 2024 10:56:19 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 13 Nov 2024 10:56: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: 39e0b514-a1e0-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjA1IiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjM5ZTBiNTE0LWExZTAtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTE2OTkwLjI2MTM3Miwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hjf9/3eAVc/G0Z39vGpRaT6RtcbW+jNDTnc0f1i/Cy7C74hhAnyUZa1qBCt3s0o2KW2Dj5Gd/ZMQVAwxBgi+8fhde1LT3fTuV7MOi6rJwcpxRuiz1Wfnxn5vtDt413kJ35l6FWHuBLGMPue6jviMzEdcgnBhbWcKoUpb9KYbebOgDju2A1eeeKk7ee66Vre6Skip3Th1kCevxBKUIk2Ou0DXr7GF3MIqcvB6tDc3n3mE+yswd7m8oLugCyMhUV5SPAIglJog5X3Y50KPRgOTLjPVN5IG8vJs5BCEgVjNFjUTeIg5RMsWotpIFM0qPhY4uXYW7evZU25rSFaGqNxRvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jzwFEEcm+JKqaqUNoLGC42+3zmQ28sPUCt15psim9BQ=;
 b=fOY5VMnwERC5oTnVhJ147M4hxY0tynSyYEwn184ohhXerJtk91naeqhnh48hWi7tyQ+S9EFDsZOgBlHdwJQAu+9L5klF7aAPsgBNABfwLYozdnmAXQ5mTNmB8JFXrJiIDpt1KjS8FJt2OEUWqQVeEyzuC0M7CtyMLDwc+u/PR6XMfnn4MeTksjRyOfpBxxZFgtk7qV3Rj9dEjyjhnQH2A3noFsKB/HdGueUGpxq6zCSqVdMLLmq65+iQzjQ2R+be4YHS0TfE++APW78yG0edcu6Ak3Td5hmEzk14PPh8VYgfKN9jcLfSo3sY3PWdbBDQMY+oNmwC6N2W9S0Qes0e2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=jzwFEEcm+JKqaqUNoLGC42+3zmQ28sPUCt15psim9BQ=;
 b=FSC7q3DxEqvsdsX4pbnllW/fg2ICtBzB8ksyUFrRPzU7gf0ZFjr55UYgnM8vH49VHsAN4XAOrLGFN5pvSXZcGw08ZogxzI/vIjE3BjjsLwUTu8VEzHVx3p1UADmoIwyYSmwxBLIM3frKM6Yc+/vqpeZH63jAfL5B0fFoKQx9t3U=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <3cef1b1a-d17c-498c-a482-6ef01d781392@amd.com>
Date: Wed, 13 Nov 2024 17:56:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Julien Grall <julien@xen.org>, Luca Fancellu <luca.fancellu@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CE:EE_|CH3PR12MB8903:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c377ebe-3ba3-45f6-9b29-08dd04041a5e
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?RC9TTmJwR2g0bEl1SjRwS1hGNnp0YlBmZm1iRkExK1hick1MWGVWeWpaUlBK?=
 =?utf-8?B?ODVsYmtvdTlTc0IwSXZya0c0a0FkN0plSmx3b1hWZERNeHQvSk5yRXZuR2dH?=
 =?utf-8?B?VDZUcmYzUkQxc1ladmJGZFNiVFBEcVYyaFJyaVNiV3dFR01JZTJsODV6a1lu?=
 =?utf-8?B?S0FPREN3WHBIbmRHM3VmMGVDYW0zUkh2QXc1aXFBRkZiaU5PRm9hWDc0VGdX?=
 =?utf-8?B?d3hxVk5ubGhPRkp3OXhJeGlCeU1wOWpuTXZkOXdBZENJZnRsQW9JeDJWZHVL?=
 =?utf-8?B?S2lTSlM4ZmpuSWd5UUZURXpXcml5SmIzVjlyS2wvVHFsaGE3bXgrMkcreVRq?=
 =?utf-8?B?a3AvY1FRYnQzUzVQcHNsRG5xZ3I1eDdJNWdSWHArMXNacXl6UDFOSjlwTVRo?=
 =?utf-8?B?NXpqSGZlWjQ3cTR0ZmQxYzFONyt2SEZUbk4xbGRmUG56V2EyRUNjWHNMOTdK?=
 =?utf-8?B?V2ZCdndMclQ4TkxnRGRmKzJqWld5Y0lKYVkrSGN5ZDVva1RnU0laNG9VMm1U?=
 =?utf-8?B?NWhzRytQK1h5dWhORmpIdEtzRFk1Zy9hSkI1VTViSHJDM0NYWkpqUmFBUnJq?=
 =?utf-8?B?eTU2LzFjYVVMNm5HVlFQL3o3d0JzMm5xR2ZhTW5lU29uZkFhQkdmTWJkU2xN?=
 =?utf-8?B?TzRxYUVTeVN5cGdGdkcrZW5YblJKbHFPWVlxOG5TeTBORmdDckFIamxQcGYw?=
 =?utf-8?B?ZnRCZXZLbFdaYnQrZ3ZQdzhja3pFYjV6bGRidFlFTlFCOWI2Q0VoRmI0S0Ry?=
 =?utf-8?B?T1kzRmhodDlUV3ZHQjB3cGlNU2dFK09aMFhMMFJSdVN2K3Jud1FjTDFFK3My?=
 =?utf-8?B?VHEvVmhveW1aUGdYalRtdHRzWUNMQlNBVXFTRkhPTHBUNXlOT3RpUFc1V1dX?=
 =?utf-8?B?bVpsTHRMWGgzaXptcjZsYi90VVl2Ui92ZzFVOThOeHcyZStLeEdrRmh4RCty?=
 =?utf-8?B?VlRxMEZONEg0UXVrVml2MFV5WkRmUDBYeDRjMTczSlZTMXJZRnd6RjdkVHZt?=
 =?utf-8?B?RmF2b1Q4WUY5TU5YenlXSGZNMjBXUGNhN1B2NlZ1cFRSL2MwREhQQ1l2YWJ3?=
 =?utf-8?B?b3YreG5reHF4VEhnMm44VG9Xb1I0dEZKNnBsUnA1dDNQclR2eUN3SVJCMVZL?=
 =?utf-8?B?ZmJJaTQ1OHM5bTFjbW9oZERVNWJWTjFvVGdqVkxEcGJVRGdoWk1GN01iaGJm?=
 =?utf-8?B?eXllOCtSeHEreDZhejVvVG1xUW1tSnQ4UzR2V0NYYUNQdzFKdnRxVUF0cFRG?=
 =?utf-8?B?QytzcUR6ei9tVnExRjVIdXVnYjIrQlBKcFQyQmlLVU5NREo3ZnhDOE9BYjJS?=
 =?utf-8?B?ZkRsOTE1UlRzT21GazlSSnhYbXhadEk4TVFSNDlZbWZlQWhxb2tiTUViNXAw?=
 =?utf-8?B?YWY1aWVSVzhjYnY0MHdxVCtLaU85ejlsbldaS2s5VXJRM2ZRa3FZazlDandv?=
 =?utf-8?B?T2MvLzBjOEtLL1FENnVsUGQ1d29BNUN4VCs0UzEwL2J6MjYxNzlUMlRGQVVW?=
 =?utf-8?B?VjIvS285dzZGQkdwZ01xZlJLdG5xRlBmckRGeWRKNG5weHN6eHkxRkovclNI?=
 =?utf-8?B?R0hnOWtLMFBNOHZTam9HaGpid3FTTFhzR0h0c2pSQmFjTGhoZ3VxN2hLOUYz?=
 =?utf-8?B?djl4RG1STEtGMkduajhCNzQxMmtLS1l6NkwzOGUvYnY5SzNQSWNXZ3Q0RUpq?=
 =?utf-8?B?NHM4bG45bFBjOGFiSzQ0LzVZRVdpcVk0dWhOc01LdkVJMUNGc3N5ZVZLY0Z5?=
 =?utf-8?B?dHQ4clVvUDZGN2F5cFBhOGMxem1zOTFrWDluQmRzV0h1TkxTU1RCVm1Ibm9D?=
 =?utf-8?B?ZnY3Qk5vVjlpdThqbTJ1dHVFK0RXOFFSbUtTS3ZqdUZ4WTJEQXZQKzM1cUpP?=
 =?utf-8?B?N0Vyc1NLZG1BU3NSQTdxMlBPaHM2VEhwTW10aERIV1hudWtJRnVJZTVZSnln?=
 =?utf-8?Q?MpBugm88UrA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 13 Nov 2024 16:56:22.3547
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c377ebe-3ba3-45f6-9b29-08dd04041a5e
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=[SATLEXMB04.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: CH3PR12MB8903



On 13/11/2024 17:41, Julien Grall wrote:
> 
> 
> Hi,
> 
> On 13/11/2024 15:40, Michal Orzel wrote:
>>
>>
>> On 13/11/2024 15:40, Julien Grall wrote:
>>>
>>>
>>> Hi,
>>>
>>> On 13/11/2024 14:19, Michal Orzel wrote:
>>>>
>>>>
>>>> On 13/11/2024 14:50, Julien Grall wrote:
>>>>>
>>>>>
>>>>> Hi Michal,
>>>>>
>>>>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>>>>
>>>>>>
>>>>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>>>>
>>>>>>>
>>>>>>> There are some cases where the device tree exposes a memory range
>>>>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>>>>> current code will stop Xen to boot since it will find that the
>>>>>>> latter range is clashing with the already recorded /memreserve/
>>>>>>> ranges.
>>>>>>>
>>>>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>>>>> in the /memreserve/ part and even in this case this will prevent
>>>>>>> Xen to boot since it will see that the module memory range that
>>>>>>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>>>>>>> range.
>>>>>>>
>>>>>>> When Xen populate the data structure that tracks the memory ranges,
>>>>>>> it also adds a memory type described in 'enum membank_type', so
>>>>>>> in order to fix this behavior, allow the 'check_reserved_regions_overlap'
>>>>>>> function to check for exact memory range match given a specific memory
>>>>>>> type; allowing reserved-memory node ranges and boot modules to have an
>>>>>>> exact match with ranges from /memreserve/.
>>>>>>>
>>>>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>>>>
>>>>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
>>>>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>>>> ---
>>>>>>> I tested this patch adding the same range in a /memreserve/ entry and
>>>>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>>>>> I've also tested that a configuration running static shared memory still works
>>>>>>> fine.
>>>>>>> ---
>>>>>> So we have 2 separate issues. I don't particularly like the concept of introducing MEMBANK_NONE
>>>>>> and the changes below look a bit too much for me, given that for boot modules we can only have
>>>>>> /memreserve/ matching initrd.
>>>>>
>>>>> How so? Is this an observation or part of a specification?
>>>> Not sure what specification you would want to see.
>>>
>>> Anything that you bake your observation. My concern with observation is ...
>>>
>>>    It's all part of U-Boot and Linux behavior that is not documented
>>> (except for code comments).
>>>> My statement is based on the U-Boot and Linux behavior. U-Boot part only present for initrd:
>>>> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
>>>
>>> ... a user is not forced to use U-boot. So this is not a good reason to
>> I thought that this behavior is solely down to u-boot playing tricks with memreserve.
> 
> Sure we noticed that U-boot is doing some we didn't expect. But this
> really doesn't mean there are not other interesting behavior happening.
> 
>>
>>> rely on it. If Linux starts to rely on it, then it is probably a better
>>> argument, but first I would need to see the code. Can you paste a link?
>> Not sure how I would do that given that it is all scattered.
> 
> There are no requirements to be all scattered.
> 
>  > But if it means sth, here is kexec code> to create fdt. It is clear
> they do the same trick as u-boot.
>> https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355
> 
> Yet this doesn't provide any information why this only has to be an
> exact region... It only tells me the current behavior.
> 
>>
>>>
>>>>
>>>> For things that Xen can be interested in, only region for ramdisk for dom0 can match the /memreserve/ region.
>>>> Providing a generic solution (like Luca did) would want providing an example of sth else that can match which I'm not aware of.
>>>
>>> I would argue this is the other way around. If we are not certain that
>>> /memreserve/ will not be used for any other boot module, then we should
>>> have a generic solution. Otherwise, we will end up with similar weird
>>> issue in the future.
>> We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and ramdisk. The first 2 are not described in DT so I'm not sure
>> what are your examples of bootmodules for which you want kernel know about memory reservation other than ramdisk.
> 
> The DTB is not described but the kernel is. We also have XSM modules.
> All of which could in theory be in memreserve if for some reasons the
> bootloader wanted to preserve the modules for future use (think
> Live-Update)...
> 
> Anyway, to be honest, I don't understand why you are pushing back at a
> more generic solution... Yes this may be what we just notice today, but
> I haven't seen any evidence that it never happen.
> 
> So I would rather go with the generic solution.
My reluctance comes from the fact that it's difficult for me to later justify (if someone asks) a code like that
in the port we maintain because I can't answer the question about the rationale of other modules.
All you wrote is just a theory. Neither you nor anyone seen a code where a bootloader sets up /memreserve/
for sth else than initrd. That's it. I understand that generic solution solves the possible future problems
(the current u-boot behavior dates back to 2014 and nothing new happened since that time) but at least I find
it more difficult to reason about. I can see you might not see it the same way I do, therefore I am fine with
the generic solution.

~Michal


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 17:25:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 17:25:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835938.1251802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBH6r-0000fo-76; Wed, 13 Nov 2024 17:24:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835938.1251802; Wed, 13 Nov 2024 17:24: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 1tBH6r-0000fh-4O; Wed, 13 Nov 2024 17:24:53 +0000
Received: by outflank-mailman (input) for mailman id 835938;
 Wed, 13 Nov 2024 17:24:51 +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 1tBH6p-0000fb-Gr
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 17:24:51 +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 1tBH6o-003LIc-2V;
 Wed, 13 Nov 2024 17:24:51 +0000
Received: from [2a02:8012:3a1:0:2c06:4644:c8a3:2b5e]
 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 1tBH6o-003LNd-2a;
 Wed, 13 Nov 2024 17:24: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>
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=9AftGS72GNn16imIorFWBxhHYSjQ0uCLlM1fbSrZPCk=; b=O3S1/6nL5jw8IUsFEa22lyoZuv
	aChhd6/pn0DIa1AwxB70Dddu5SD3P4TQ86eq99NdjLyyLFnCVxP9iOLyk2kPGGW04LTe6Db81aeeJ
	XVuTqimLeQ1L9df1szsKcE65p1GbEcVkYiQ2O6+CW7NbsezicvOiRRDh/UHg49WfPR2E=;
Message-ID: <5ea6430a-cd9c-4c5f-83e8-b0a71d333847@xen.org>
Date: Wed, 13 Nov 2024 17:24:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, Luca Fancellu
 <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <3cef1b1a-d17c-498c-a482-6ef01d781392@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3cef1b1a-d17c-498c-a482-6ef01d781392@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 13/11/2024 16:56, Michal Orzel wrote:
>>>>> For things that Xen can be interested in, only region for ramdisk for dom0 can match the /memreserve/ region.
>>>>> Providing a generic solution (like Luca did) would want providing an example of sth else that can match which I'm not aware of.
>>>>
>>>> I would argue this is the other way around. If we are not certain that
>>>> /memreserve/ will not be used for any other boot module, then we should
>>>> have a generic solution. Otherwise, we will end up with similar weird
>>>> issue in the future.
>>> We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and ramdisk. The first 2 are not described in DT so I'm not sure
>>> what are your examples of bootmodules for which you want kernel know about memory reservation other than ramdisk.
>>
>> The DTB is not described but the kernel is. We also have XSM modules.
>> All of which could in theory be in memreserve if for some reasons the
>> bootloader wanted to preserve the modules for future use (think
>> Live-Update)...
>>
>> Anyway, to be honest, I don't understand why you are pushing back at a
>> more generic solution... Yes this may be what we just notice today, but
>> I haven't seen any evidence that it never happen.
>>
>> So I would rather go with the generic solution.
> My reluctance comes from the fact that it's difficult for me to later justify (if someone asks) a code like that
> in the port we maintain because I can't answer the question about the rationale of other modules.

You also can't answer why it can't happen. So between the choice of 
trying to be future-proof or handling in an emergency, I would chose the 
former.Â If you want to handle differently in the AMD port, so be it.

 > All you wrote is just a theory.

Hu, seriously? You are basing your decision on observation on a few 
platforms and then you tell me I theorized?

The main source of truth is the specification. This is ...

> Neither you nor anyone seen a code where a bootloader sets up /memreserve/
> for sth else than initrd. That's it.

the only way we can confirm something doesn't happen is based on the 
specification. If it is not written anywhere then it can happen.

I will Nack any patch/approach that is not attempting to look at the 
specification (if any) unless obviously this will break the guest OSes. 
At which point I will weight the pros and cons.

I don't believe this is the case here. So there is no excuses to try to 
take short cut...

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 17:25:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 17:25:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835945.1251813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBH7Z-0001Ab-Gn; Wed, 13 Nov 2024 17:25:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835945.1251813; Wed, 13 Nov 2024 17:25: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 1tBH7Z-0001AU-Da; Wed, 13 Nov 2024 17:25:37 +0000
Received: by outflank-mailman (input) for mailman id 835945;
 Wed, 13 Nov 2024 17:25: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=QAIE=SI=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1tBH7Z-00015K-16
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 17:25:37 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4734b2ba-a1e4-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 18:25:30 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 4ADHPJ48038375
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Wed, 13 Nov 2024 12:25:25 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 4ADHPIlf038374;
 Wed, 13 Nov 2024 09:25:18 -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: 4734b2ba-a1e4-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijc0LjEwNC4xODguNCIsImhlbG8iOiJtYWlsaG9zdC5tNXAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ3MzRiMmJhLWExZTQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTE4NzMwLjkyNjczNSwic2VuZGVyIjoiZWhlbUBtNXAuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
Date: Wed, 13 Nov 2024 09:25:18 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Andrei Semenov <andrei.semenov@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        jgross@suse.com
Subject: Re: AMD EPYC virtual network performances
Message-ID: <ZzTg_p-8E0_jrkii@mattapan.m5p.com>
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
X-Spam-Status: No, score=0.3 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

On Tue, Jul 09, 2024 at 08:36:18AM +0000, Andrei Semenov wrote:
> 
> After some investigations we notices a huge performances drop (perfs divided
> by
> factor of 5) starting from 5.10.88 Linux kernel version on the AMD EPYC
> platforms. The patch introduced in this kernel version that allows to
> pinpoint
> the buggy behavior is :
> 
> Â â€œxen/netfront: harden netfront against event channel stormsâ€
> d31b3379179d64724d3bbfa87bd4ada94e3237de
> 
> The patch basically binds the network frontend to the `xen_lateeoi_chip`
> irq_chip (insead of `xen_dynamic_chip`) which allows to its clients to
> inform
> the chip if spurious interrupts are detected and so the delay in interrupt
> treatment is introduced by the chip.

I worry I'm being knave here.

For the heck of it, I took a glance at b27d47950e48.  If my understanding
is correct, b27d47950e48 is making a very basic (and wrong) assumption
about timing/latency.

In particular any time either side receive an event, it will handle
X # of incoming payloads and Y # of acknowledged outgoing payloads.  As
such if X + Y > 1, then up to X + Y - 1 spurious events may be detected.
The issue is there is no synchronization between the event channel and
the work queues.

In particular the network back end could legitimately generate:

work0	signal0	work1	signal1	work2	signal2	work3	signal3

Whereas the network front end may handle this as:

event0	work0	work1	work2	work3	event1	event2	event3

Where b27d47950e48 would interpret events 1-3 as spurious, even though
they're perfectly legitimate.  The same phenomenon could occur in both
directions and also with the Xen block devices.

Ultimately how is the network portion of XSA-391 any different from any
other network DoS?  If an interrupt is generated for every single packet
of a series of runt frames, there will be heavy processor use for little
network traffic.

AMD systems may fair worse than Intel systems due to differing cache
coherence behavior/latency.  Perhaps AMD's NUMA implementation adds
some latency.  (huh, suddenly the RAID1 issue comes to mind)


Hopefully I'm not making knave speculation here.  Might this be the
simplest of issues, just it was missed due to being too obvious?


-- 
(\___(\___(\______          --=> 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 Wed Nov 13 18:51:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 18:51:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835956.1251823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBISh-0003hT-Jq; Wed, 13 Nov 2024 18:51:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835956.1251823; Wed, 13 Nov 2024 18:51: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 1tBISh-0003hM-H1; Wed, 13 Nov 2024 18:51:31 +0000
Received: by outflank-mailman (input) for mailman id 835956;
 Wed, 13 Nov 2024 18:51: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=Gr6F=SI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBISg-0003hE-I3
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 18:51:30 +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 4818fb4f-a1f0-11ef-99a3-01e77a169b0f;
 Wed, 13 Nov 2024 19:51:24 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-53da44cde85so296285e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 10:51:24 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf6926ad39sm824375a12.60.2024.11.13.10.51.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Nov 2024 10:51: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: 4818fb4f-a1f0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ4MThmYjRmLWExZjAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTIzODg0LjY3MTQyLCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731523884; x=1732128684; 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=u5uloU3joHwtlfTIoEBmfSn3q1TAQ0Bsnn0GnBxe190=;
        b=fORqs9AvDHFlEa8SATupMAcfOSJVL7Dx+Hm/YKyxj5D5e4r6Pfc7wS6oqeD/bKdOfi
         D4jL344V88xgIn/4C+4najbkR/JEgzPUj7RgDQ4EMB6dOlfYLoyS2ByW7NJdJ65WynK8
         oCpgRlVcnXLga9zlLaYlxJpPLSVrlKM0LOKD0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731523884; x=1732128684;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=u5uloU3joHwtlfTIoEBmfSn3q1TAQ0Bsnn0GnBxe190=;
        b=Rr/6JKsdugGqKxYZk4LJ52iF1CfCA/0q091BAr5Sxq3ToXxQmduRr3vd1L3rhzi6Qv
         zhYmSZrUiIEGybxSQud9ID8/vMzYJyCPfT8Mzo83WTXxuvC78WuyVj/mGhLD1V2RR3w7
         LthI2goPYPQrEcyABpIHkhZ1ylL6qWQiU3cTQBd6+hpo94xHPjTGxFjnIGpIiIUxY5hg
         q/+CNCaA8bHnUS2NS8X07HArK3h9a2CzQ2pt3tAnB6dIzIgvHqVsbzgq/S15xllbE7Mq
         4yZY705FWku4UqeFO0stkp5ox/kg3GqeOwkDLjTIO61c4WliYxVgqsyCIRNo4D74aYXx
         1vQw==
X-Gm-Message-State: AOJu0YwPfdJEH16UAFIHo3JqpOMn6Blhi6RGx5/TfCSXOJekEyyiqOMn
	Aa0Mzbd5T79dqeDWFY9XX2STavHM/BylbrioqamLi0i/5XM8rhq8ljHRE/IixgZ/1UW/N7L+P/h
	R
X-Google-Smtp-Source: AGHT+IFX0/VRLxyOaGhZ9TwP3fLLvLdgpwSvMTFdCwb2akeUfwsbvQByp+ZFLb4zY3Xzi1engmLvfw==
X-Received: by 2002:a05:6512:138b:b0:535:68ab:7fdd with SMTP id 2adb3069b0e04-53d862bbc3bmr10764927e87.19.1731523882874;
        Wed, 13 Nov 2024 10:51: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] xen/multiboot: Make headers be standalone
Date: Wed, 13 Nov 2024 18:51:18 +0000
Message-Id: <20241113185118.1786703-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

Both require xen/types.h.

Change multiboot.h to include const.h by it's more normal path, and swap u32
for uint32_t.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/include/xen/multiboot.h  | 68 +++++++++++++++++++-----------------
 xen/include/xen/multiboot2.h |  3 ++
 2 files changed, 38 insertions(+), 33 deletions(-)

diff --git a/xen/include/xen/multiboot.h b/xen/include/xen/multiboot.h
index 80a1761d9ee7..7ba86aab73d8 100644
--- a/xen/include/xen/multiboot.h
+++ b/xen/include/xen/multiboot.h
@@ -17,7 +17,7 @@
 #ifndef __MULTIBOOT_H__
 #define __MULTIBOOT_H__
 
-#include "const.h"
+#include <xen/const.h>
 
 /*
  * Multiboot header structure.
@@ -45,41 +45,43 @@
 
 #ifndef __ASSEMBLY__
 
+#include <xen/types.h>
+
 /* The symbol table for a.out.  */
 struct aout_symbol_table {
-    u32 tabsize;
-    u32 strsize;
-    u32 addr;
-    u32 reserved;
+    uint32_t tabsize;
+    uint32_t strsize;
+    uint32_t addr;
+    uint32_t reserved;
 };
 typedef struct aout_symbol_table aout_symbol_table_t;
 
 /* The section header table for ELF.  */
 struct elf_section_header_table {
-    u32 num;
-    u32 size;
-    u32 addr;
-    u32 shndx;
+    uint32_t num;
+    uint32_t size;
+    uint32_t addr;
+    uint32_t shndx;
 };
 typedef struct elf_section_header_table elf_section_header_table_t;
 
 /* The Multiboot information.  */
 struct multiboot_info {
-    u32 flags;
+    uint32_t flags;
 
     /* Valid if flags sets MBI_MEMLIMITS */
-    u32 mem_lower;
-    u32 mem_upper;
+    uint32_t mem_lower;
+    uint32_t mem_upper;
 
     /* Valid if flags sets MBI_BOOTDEV */
-    u32 boot_device;
+    uint32_t boot_device;
 
     /* Valid if flags sets MBI_CMDLINE */
-    u32 cmdline;
+    uint32_t cmdline;
 
     /* Valid if flags sets MBI_MODULES */
-    u32 mods_count;
-    u32 mods_addr;
+    uint32_t mods_count;
+    uint32_t mods_addr;
 
     /* Valid if flags sets ... */
     union {
@@ -88,42 +90,42 @@ struct multiboot_info {
     } u;
 
     /* Valid if flags sets MBI_MEMMAP */
-    u32 mmap_length;
-    u32 mmap_addr;
+    uint32_t mmap_length;
+    uint32_t mmap_addr;
 
     /* Valid if flags sets MBI_DRIVES */
-    u32 drives_length;
-    u32 drives_addr;
+    uint32_t drives_length;
+    uint32_t drives_addr;
 
     /* Valid if flags sets MBI_BIOSCONFIG */
-    u32 config_table;
+    uint32_t config_table;
 
     /* Valid if flags sets MBI_LOADERNAME */
-    u32 boot_loader_name;
+    uint32_t boot_loader_name;
 
     /* Valid if flags sets MBI_APM */
-    u32 apm_table;
+    uint32_t apm_table;
 };
 typedef struct multiboot_info multiboot_info_t;
 
 /* The module structure.  */
 struct module {
-    u32 mod_start;
-    u32 mod_end;
-    u32 string;
-    u32 reserved;
+    uint32_t mod_start;
+    uint32_t mod_end;
+    uint32_t string;
+    uint32_t reserved;
 };
 typedef struct module module_t;
 
 /* The memory map. Be careful that the offset 0 is base_addr_low
    but no size.  */
 struct memory_map {
-    u32 size;
-    u32 base_addr_low;
-    u32 base_addr_high;
-    u32 length_low;
-    u32 length_high;
-    u32 type;
+    uint32_t size;
+    uint32_t base_addr_low;
+    uint32_t base_addr_high;
+    uint32_t length_low;
+    uint32_t length_high;
+    uint32_t type;
 };
 typedef struct memory_map memory_map_t;
 
diff --git a/xen/include/xen/multiboot2.h b/xen/include/xen/multiboot2.h
index 7cda620eec8a..f96f5d4c3169 100644
--- a/xen/include/xen/multiboot2.h
+++ b/xen/include/xen/multiboot2.h
@@ -114,6 +114,9 @@
 #define MULTIBOOT2_FRAMEBUFFER_TYPE_EGA_TEXT            2
 
 #ifndef __ASSEMBLY__
+
+#include <xen/types.h>
+
 typedef struct {
     uint32_t total_size;
     uint32_t reserved;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 13 19:20:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 19:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835967.1251833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBIuQ-0007Xi-UK; Wed, 13 Nov 2024 19:20:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835967.1251833; Wed, 13 Nov 2024 19: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 1tBIuQ-0007Xb-RG; Wed, 13 Nov 2024 19:20:10 +0000
Received: by outflank-mailman (input) for mailman id 835967;
 Wed, 13 Nov 2024 19:20: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=K+ao=SI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tBIuP-0007XT-E4
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 19:20:09 +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 4981f0fa-a1f4-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 20:20:05 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-37d49a7207cso4912369f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Nov 2024 11:20:05 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-381ed97db25sm19273804f8f.41.2024.11.13.11.20.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Nov 2024 11:20: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: 4981f0fa-a1f4-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmYiLCJoZWxvIjoibWFpbC13cjEteDQyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ5ODFmMGZhLWExZjQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTI1NjA1LjQ1MzA5Mywic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731525604; x=1732130404; 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=nmSLvxmLytBjWuqGiWZ/bkUqbzKzE7ZkPEypTc3W0t0=;
        b=NaVJCP+7OK+1wDOcpWPyOyjYtW++kNsX+RzS7/57UFGWypdnQ+vT9MREPTXIs+nJqi
         athYt+flejzAjJnCiD+1kNXie74tbU+ZVzjj2Tekf6BAez5hcsXYzreiVUOZG4TTb28O
         7odJA/k0Hi3dZXT/Rd3WN3biTrBp9YUijhYAVoJSNI/8/9A0LgBA9x4AKi+hL5RsBeQa
         aGmpDuJcExkX2lHThW3gHMvVC4lNsBTlr1QANf0ZXXbX8fLZBORKYUKThH9c4HwiZgpR
         Ei8fKaoXf1a0KgVl0qYOoP7Zo7/xRmpgRNJnPbX3Uqr/0DjrL1kP6DiSTtpI48/LaFti
         MGNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731525604; x=1732130404;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=nmSLvxmLytBjWuqGiWZ/bkUqbzKzE7ZkPEypTc3W0t0=;
        b=qkcFkFhMTNoSNxEUryDkBcXTcztf2U+tm+AeqlDh0Mb04mR1ONOapUeGo5l5kzwrt+
         ClSwZ6lUDiwjd48TVXfVjwKfz0fSGeljTvQVWS9cZ34l9X3Q96ZHMEw4fSW+qzD805au
         ZbsCAv7RWXw47bfsXhWDyHdm3YnqPx98ECnzOOoIX+OHSaSDUE7dCN66ogesvQID+6U/
         twfxO9VlU/R2i5f9skaTABveHhXML1qPadMWg1K/Dw58e0nqL8XQQqH2fwgSqfKjnVLM
         +NMxG2efQPW1TDg+B20Ui3XA2j2KoXns2crzg/5bdmkYygeFkia7TOsRXxNrk+IVeTeA
         58ng==
X-Gm-Message-State: AOJu0YzmPOHi3uosqt5Ut8rfQyxDZv8IKQKLJuU7byRcUa+MZnqx4UvH
	z2sNrS9p1sUaMPfK9jfsyDXzDvHyrxa4t6DMUt/Gh1y8flP2ZzJ99+KM1f4kU98=
X-Google-Smtp-Source: AGHT+IEfR2kuP5PdnNdi0UKfGRBkhebWy0zSukb2PJQYK7lBbr+3G1axlCv9asltUzth6k2ylO91lA==
X-Received: by 2002:a05:6000:2101:b0:381:f5c2:df24 with SMTP id ffacd0b85a97d-381f5c2e053mr12817165f8f.57.1731525604298;
        Wed, 13 Nov 2024 11:20:04 -0800 (PST)
Message-ID: <467e46ad-d0d0-4217-9b70-b48e3c7a1fb5@suse.com>
Date: Wed, 13 Nov 2024 20:20:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: AMD EPYC virtual network performances
To: Elliott Mitchell <ehem+xen@m5p.com>,
 Andrei Semenov <andrei.semenov@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
 <ZzTg_p-8E0_jrkii@mattapan.m5p.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: <ZzTg_p-8E0_jrkii@mattapan.m5p.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------45bLG0jRJSS1Wr0O7Djthukn"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------45bLG0jRJSS1Wr0O7Djthukn
Content-Type: multipart/mixed; boundary="------------MkHn5e0KFWkzcdtAAxVrSGga";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Elliott Mitchell <ehem+xen@m5p.com>,
 Andrei Semenov <andrei.semenov@vates.tech>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Message-ID: <467e46ad-d0d0-4217-9b70-b48e3c7a1fb5@suse.com>
Subject: Re: AMD EPYC virtual network performances
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
 <ZzTg_p-8E0_jrkii@mattapan.m5p.com>
In-Reply-To: <ZzTg_p-8E0_jrkii@mattapan.m5p.com>

--------------MkHn5e0KFWkzcdtAAxVrSGga
Content-Type: multipart/mixed; boundary="------------exRa9szFtKEZHQvSh26YNrsP"

--------------exRa9szFtKEZHQvSh26YNrsP
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTMuMTEuMjQgMTg6MjUsIEVsbGlvdHQgTWl0Y2hlbGwgd3JvdGU6DQo+IE9uIFR1ZSwg
SnVsIDA5LCAyMDI0IGF0IDA4OjM2OjE4QU0gKzAwMDAsIEFuZHJlaSBTZW1lbm92IHdyb3Rl
Og0KPj4NCj4+IEFmdGVyIHNvbWUgaW52ZXN0aWdhdGlvbnMgd2Ugbm90aWNlcyBhIGh1Z2Ug
cGVyZm9ybWFuY2VzIGRyb3AgKHBlcmZzIGRpdmlkZWQNCj4+IGJ5DQo+PiBmYWN0b3Igb2Yg
NSkgc3RhcnRpbmcgZnJvbSA1LjEwLjg4IExpbnV4IGtlcm5lbCB2ZXJzaW9uIG9uIHRoZSBB
TUQgRVBZQw0KPj4gcGxhdGZvcm1zLiBUaGUgcGF0Y2ggaW50cm9kdWNlZCBpbiB0aGlzIGtl
cm5lbCB2ZXJzaW9uIHRoYXQgYWxsb3dzIHRvDQo+PiBwaW5wb2ludA0KPj4gdGhlIGJ1Z2d5
IGJlaGF2aW9yIGlzIDoNCj4+DQo+PiAgwqDigJx4ZW4vbmV0ZnJvbnQ6IGhhcmRlbiBuZXRm
cm9udCBhZ2FpbnN0IGV2ZW50IGNoYW5uZWwgc3Rvcm1z4oCdDQo+PiBkMzFiMzM3OTE3OWQ2
NDcyNGQzYmJmYTg3YmQ0YWRhOTRlMzIzN2RlDQo+Pg0KPj4gVGhlIHBhdGNoIGJhc2ljYWxs
eSBiaW5kcyB0aGUgbmV0d29yayBmcm9udGVuZCB0byB0aGUgYHhlbl9sYXRlZW9pX2NoaXBg
DQo+PiBpcnFfY2hpcCAoaW5zZWFkIG9mIGB4ZW5fZHluYW1pY19jaGlwYCkgd2hpY2ggYWxs
b3dzIHRvIGl0cyBjbGllbnRzIHRvDQo+PiBpbmZvcm0NCj4+IHRoZSBjaGlwIGlmIHNwdXJp
b3VzIGludGVycnVwdHMgYXJlIGRldGVjdGVkIGFuZCBzbyB0aGUgZGVsYXkgaW4gaW50ZXJy
dXB0DQo+PiB0cmVhdG1lbnQgaXMgaW50cm9kdWNlZCBieSB0aGUgY2hpcC4NCj4gDQo+IEkg
d29ycnkgSSdtIGJlaW5nIGtuYXZlIGhlcmUuDQo+IA0KPiBGb3IgdGhlIGhlY2sgb2YgaXQs
IEkgdG9vayBhIGdsYW5jZSBhdCBiMjdkNDc5NTBlNDguICBJZiBteSB1bmRlcnN0YW5kaW5n
DQo+IGlzIGNvcnJlY3QsIGIyN2Q0Nzk1MGU0OCBpcyBtYWtpbmcgYSB2ZXJ5IGJhc2ljIChh
bmQgd3JvbmcpIGFzc3VtcHRpb24NCj4gYWJvdXQgdGltaW5nL2xhdGVuY3kuDQo+IA0KPiBJ
biBwYXJ0aWN1bGFyIGFueSB0aW1lIGVpdGhlciBzaWRlIHJlY2VpdmUgYW4gZXZlbnQsIGl0
IHdpbGwgaGFuZGxlDQo+IFggIyBvZiBpbmNvbWluZyBwYXlsb2FkcyBhbmQgWSAjIG9mIGFj
a25vd2xlZGdlZCBvdXRnb2luZyBwYXlsb2Fkcy4gIEFzDQo+IHN1Y2ggaWYgWCArIFkgPiAx
LCB0aGVuIHVwIHRvIFggKyBZIC0gMSBzcHVyaW91cyBldmVudHMgbWF5IGJlIGRldGVjdGVk
Lg0KPiBUaGUgaXNzdWUgaXMgdGhlcmUgaXMgbm8gc3luY2hyb25pemF0aW9uIGJldHdlZW4g
dGhlIGV2ZW50IGNoYW5uZWwgYW5kDQo+IHRoZSB3b3JrIHF1ZXVlcy4NCj4gDQo+IEluIHBh
cnRpY3VsYXIgdGhlIG5ldHdvcmsgYmFjayBlbmQgY291bGQgbGVnaXRpbWF0ZWx5IGdlbmVy
YXRlOg0KPiANCj4gd29yazAJc2lnbmFsMAl3b3JrMQlzaWduYWwxCXdvcmsyCXNpZ25hbDIJ
d29yazMJc2lnbmFsMw0KPiANCj4gV2hlcmVhcyB0aGUgbmV0d29yayBmcm9udCBlbmQgbWF5
IGhhbmRsZSB0aGlzIGFzOg0KPiANCj4gZXZlbnQwCXdvcmswCXdvcmsxCXdvcmsyCXdvcmsz
CWV2ZW50MQlldmVudDIJZXZlbnQzDQo+IA0KPiBXaGVyZSBiMjdkNDc5NTBlNDggd291bGQg
aW50ZXJwcmV0IGV2ZW50cyAxLTMgYXMgc3B1cmlvdXMsIGV2ZW4gdGhvdWdoDQo+IHRoZXkn
cmUgcGVyZmVjdGx5IGxlZ2l0aW1hdGUuICBUaGUgc2FtZSBwaGVub21lbm9uIGNvdWxkIG9j
Y3VyIGluIGJvdGgNCj4gZGlyZWN0aW9ucyBhbmQgYWxzbyB3aXRoIHRoZSBYZW4gYmxvY2sg
ZGV2aWNlcy4NCg0KTm8uDQoNCkZvciBvbmUsIGFzIGxvbmcgYXMgZXZlbnQwIGlzbid0IEVP
SSdkLCB0aGUgb3RoZXIgZXZlbnRzIHdvdWxkIGp1c3QgYmUNCm1lcmdlZCBpbnRvIGEgc2lu
Z2xlIG9uZS4NCg0KQWRkaXRpb25hbGx5LCBhcyBsb25nIGFzIHdvcmswIGlzbid0IGFja25v
d2xlZGdlZCBieSBpbmNyZW1lbnRpbmcgdGhlDQpjb25zdW1lciBpbmRleCwgYWRkaXRpb25h
bCBxdWV1ZWQgd29yayBpdGVtcyBzaG91bGQgTk9UIHJlc3VsdCBpbg0KYWRkaXRpb25hbCBl
dmVudHMgYmVpbmcgc2VudC4gQW4gZXZlbnQgaXMgb25seSBzZW50IGlmIGEgd29yayBpdGVt
IGlzDQpxdWV1ZWQgdG8gYSByaW5nIGJ1ZmZlciB3aXRoIGNvbnN1bWVyID09IHByb2R1Y2Vy
Lg0KDQo+IFVsdGltYXRlbHkgaG93IGlzIHRoZSBuZXR3b3JrIHBvcnRpb24gb2YgWFNBLTM5
MSBhbnkgZGlmZmVyZW50IGZyb20gYW55DQo+IG90aGVyIG5ldHdvcmsgRG9TPyAgSWYgYW4g
aW50ZXJydXB0IGlzIGdlbmVyYXRlZCBmb3IgZXZlcnkgc2luZ2xlIHBhY2tldA0KPiBvZiBh
IHNlcmllcyBvZiBydW50IGZyYW1lcywgdGhlcmUgd2lsbCBiZSBoZWF2eSBwcm9jZXNzb3Ig
dXNlIGZvciBsaXR0bGUNCj4gbmV0d29yayB0cmFmZmljLg0KDQpUaGUgcHJvYmxlbSBpcyB0
aGF0IGEgc3RlYWR5IHN0cmVhbSBvZiBldmVudHMgY291bGQga2VlcCB0aGUgb3RoZXIgc2lk
ZQ0KaW4gSVJRIGhhbmRsaW5nIGZvciBhcmJpdHJhcnkgYW1vdW50IG9mIHRpbWVzLCBsZWFk
aW5nIHRvIGhhbmd1cHMuDQoNCj4gQU1EIHN5c3RlbXMgbWF5IGZhaXIgd29yc2UgdGhhbiBJ
bnRlbCBzeXN0ZW1zIGR1ZSB0byBkaWZmZXJpbmcgY2FjaGUNCj4gY29oZXJlbmNlIGJlaGF2
aW9yL2xhdGVuY3kuICBQZXJoYXBzIEFNRCdzIE5VTUEgaW1wbGVtZW50YXRpb24gYWRkcw0K
PiBzb21lIGxhdGVuY3kuICAoaHVoLCBzdWRkZW5seSB0aGUgUkFJRDEgaXNzdWUgY29tZXMg
dG8gbWluZCkNCj4gDQo+IA0KPiBIb3BlZnVsbHkgSSdtIG5vdCBtYWtpbmcga25hdmUgc3Bl
Y3VsYXRpb24gaGVyZS4gIE1pZ2h0IHRoaXMgYmUgdGhlDQo+IHNpbXBsZXN0IG9mIGlzc3Vl
cywganVzdCBpdCB3YXMgbWlzc2VkIGR1ZSB0byBiZWluZyB0b28gb2J2aW91cz8NCg0KSSBk
b24ndCBhZ3JlZSB3aXRoIHlvdXIgYW5hbHlzaXMsIHNlZSBhYm92ZS4NCg0KDQpKdWVyZ2Vu
DQo=
--------------exRa9szFtKEZHQvSh26YNrsP
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-----

--------------exRa9szFtKEZHQvSh26YNrsP--

--------------MkHn5e0KFWkzcdtAAxVrSGga--

--------------45bLG0jRJSS1Wr0O7Djthukn
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/Ey8FAmc0++MFAwAAAAAACgkQsN6d1ii/Ey9p
OAf+NSZX4ihdQeLq2114hYJpjKankg/SWQN5YKaVkeDPNlyWFLRKStCstbsUF4JT1No17eR45tEz
sbEUP2IbwxiGZnLhDRxrWTF3i+GgHqqYwXb/ZSvCDmYIITmr3lI/CU7hvmMyamYLUZPZFdjy+NO9
VzL8Kq7gUQXZgXMjpJebcZrBFflrWw/+n34jxZEj5PznTRbxAYjCLeWhqTmslpNcqEIQ3GHjQ8zW
FvTkfgBsv2t4ec3jIS/pGH26xBZA2vAig0QTc4dDsRwjoq7wshJTsJNTX5pOn0ZKEX1ATen3/lFv
QNvhq8eF6WlS+IShHA9in8Llglrq31oDPn2etqAiuQ==
=WTQU
-----END PGP SIGNATURE-----

--------------45bLG0jRJSS1Wr0O7Djthukn--


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 22:42:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 22:42:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835985.1251860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBM3o-0004Eq-7c; Wed, 13 Nov 2024 22:42:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835985.1251860; Wed, 13 Nov 2024 22:42: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 1tBM3o-0004Ej-37; Wed, 13 Nov 2024 22:42:04 +0000
Received: by outflank-mailman (input) for mailman id 835985;
 Wed, 13 Nov 2024 22:42: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=4ZXe=SI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tBM3m-0004Ed-PO
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 22:42:02 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d1a2c86-a210-11ef-a0c7-8be0dac302b0;
 Wed, 13 Nov 2024 23:41:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 8063A5C596B;
 Wed, 13 Nov 2024 22:41:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 583EFC4CEC3;
 Wed, 13 Nov 2024 22:41: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: 7d1a2c86-a210-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjdkMWEyYzg2LWEyMTAtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTM3NzE4LjcwNTYzNiwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731537716;
	bh=zjYC+z3o5mXPHmk6pnlhdmGr8OD46koxrvTOfx7ihdQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ieWpQHBcrSNX/4x4QK8DfnPUTS2oK2cdEADKgWRIFIB8wQYiKBlr4V4ozFc9vaIsT
	 SicwS9DJAKtOpw99GuuVgnvL61btfiAqis5Hio7qSiFxn7hsNXzKY8U5pj4OdLTzR3
	 h7cCXemqPx1GgsYMuwjhBDLQfBCU6KqWnS6BVRJ+cBwDlsfuU23UHWzqgNbsnytwAm
	 f0JB2FHUEwdS7OJRYhuuWNk0lsLXdqqxraomaAvuz0ngu5up/1451bTgYUDDbAH5C0
	 qm2iLnzae1WhXrAcNNVy3/krP7QL6PpbDjrv08ZWjGIiNqmf7a1wmxR8A8sK725Bd4
	 jreCM6EtDIh1A==
Date: Wed, 13 Nov 2024 14:41:54 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Michal Orzel <michal.orzel@amd.com>, Luca Fancellu <luca.fancellu@arm.com>, 
    xen-devel@lists.xenproject.org, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
In-Reply-To: <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
Message-ID: <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
References: <20241106134132.2185492-1-luca.fancellu@arm.com> <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com> <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org> <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com> <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com> <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 13 Nov 2024, Julien Grall wrote:
> On 13/11/2024 15:40, Michal Orzel wrote:
> > On 13/11/2024 15:40, Julien Grall wrote:
> > > On 13/11/2024 14:19, Michal Orzel wrote:
> > > > On 13/11/2024 14:50, Julien Grall wrote:
> > > > > On 06/11/2024 15:07, Michal Orzel wrote:
> > > > > > On 06/11/2024 14:41, Luca Fancellu wrote:
> > > > > > > There are some cases where the device tree exposes a memory range
> > > > > > > in both /memreserve/ and reserved-memory node, in this case the
> > > > > > > current code will stop Xen to boot since it will find that the
> > > > > > > latter range is clashing with the already recorded /memreserve/
> > > > > > > ranges.
> > > > > > > 
> > > > > > > Furthermore, u-boot lists boot modules ranges, such as ramdisk,
> > > > > > > in the /memreserve/ part and even in this case this will prevent
> > > > > > > Xen to boot since it will see that the module memory range that
> > > > > > > it is going to add in 'add_boot_module' clashes with a
> > > > > > > /memreserve/
> > > > > > > range.
> > > > > > > 
> > > > > > > When Xen populate the data structure that tracks the memory
> > > > > > > ranges,
> > > > > > > it also adds a memory type described in 'enum membank_type', so
> > > > > > > in order to fix this behavior, allow the
> > > > > > > 'check_reserved_regions_overlap'
> > > > > > > function to check for exact memory range match given a specific
> > > > > > > memory
> > > > > > > type; allowing reserved-memory node ranges and boot modules to
> > > > > > > have an
> > > > > > > exact match with ranges from /memreserve/.
> > > > > > > 
> > > > > > > While there, set a type for the memory recorded during ACPI boot.
> > > > > > > 
> > > > > > > Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to
> > > > > > > bootinfo.reserved_mem")
> > > > > > > Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> > > > > > > Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
> > > > > > > Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> > > > > > > ---
> > > > > > > I tested this patch adding the same range in a /memreserve/ entry
> > > > > > > and
> > > > > > > /reserved-memory node, and by letting u-boot pass a ramdisk.
> > > > > > > I've also tested that a configuration running static shared memory
> > > > > > > still works
> > > > > > > fine.
> > > > > > > ---
> > > > > > So we have 2 separate issues. I don't particularly like the concept
> > > > > > of introducing MEMBANK_NONE
> > > > > > and the changes below look a bit too much for me, given that for
> > > > > > boot modules we can only have
> > > > > > /memreserve/ matching initrd.
> > > > > 
> > > > > How so? Is this an observation or part of a specification?
> > > > Not sure what specification you would want to see.
> > > 
> > > Anything that you bake your observation. My concern with observation is
> > > ...
> > > 
> > >    It's all part of U-Boot and Linux behavior that is not documented
> > > (except for code comments).
> > > > My statement is based on the U-Boot and Linux behavior. U-Boot part only
> > > > present for initrd:
> > > > https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
> > > 
> > > ... a user is not forced to use U-boot. So this is not a good reason to
> > I thought that this behavior is solely down to u-boot playing tricks with
> > memreserve.
> 
> Sure we noticed that U-boot is doing some we didn't expect. But this really
> doesn't mean there are not other interesting behavior happening.
> 
> > 
> > > rely on it. If Linux starts to rely on it, then it is probably a better
> > > argument, but first I would need to see the code. Can you paste a link?
> > Not sure how I would do that given that it is all scattered. 
> 
> There are no requirements to be all scattered.
> 
> > But if it means sth, here is kexec code> to create fdt. It is clear they do
> the same trick as u-boot.
> > https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355
> 
> Yet this doesn't provide any information why this only has to be an exact
> region... It only tells me the current behavior.
> 
> > 
> > > 
> > > > 
> > > > For things that Xen can be interested in, only region for ramdisk for
> > > > dom0 can match the /memreserve/ region.
> > > > Providing a generic solution (like Luca did) would want providing an
> > > > example of sth else that can match which I'm not aware of.
> > > 
> > > I would argue this is the other way around. If we are not certain that
> > > /memreserve/ will not be used for any other boot module, then we should
> > > have a generic solution. Otherwise, we will end up with similar weird
> > > issue in the future.
> > We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and
> > ramdisk. The first 2 are not described in DT so I'm not sure
> > what are your examples of bootmodules for which you want kernel know about
> > memory reservation other than ramdisk.
> 
> The DTB is not described but the kernel is. We also have XSM modules. All of
> which could in theory be in memreserve if for some reasons the bootloader
> wanted to preserve the modules for future use (think Live-Update)...
> 
> Anyway, to be honest, I don't understand why you are pushing back at a more
> generic solution... Yes this may be what we just notice today, but I haven't
> seen any evidence that it never happen.
> 
> So I would rather go with the generic solution.

I looked into the question: "Is this an observation or part of a
specification?"

Looking at the device tree specification
source/chapter5-flattened-format.rst:"Memory Reservation Block"

It says:

"It is used to protect vital data structures from being overwritten by
the client program." [...] "More specifically, a client program shall
not access memory in a reserved region unless other information provided
by the boot program explicitly indicates that it shall do so."


I think it is better to stay on the safe side and implement in Xen a
more generic behavior to support /memreserve/. It is possible that in a
future board more information could be residing in a /memreserve/
region. For instance, I could imagine EFI runtime services residing in a
/memreserve/ region.

I am a bit confused by ranges that are both in /memreserve/ and
/reserved-memory. Ranges under /memreserve/ should not be accessed at
all (unless otherwise specified), ranges under /reserved-memory are
reserved for specific drivers.

I guess ranges that are both in /memreserve/ and /reserved-memory are
exactly the type of ranges that fall under this statement in the spec:
"unless other information provided by the boot program explicitly
indicates that it shall do so".

The way I see it from the device tree spec, I think Xen should not map
/memreserve/ ranges to Dom0, and it should avoid accessing them itself.
But if a range is both in /memreserve/ and also in /reserved-memory,
then basically /reserved-memory takes precedence, so Xen should map it
to Dom0.

Please have a look at the spec, and let me know if you come to the same
conclusion.


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 23:24:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 23:24:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.835993.1251869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBMij-0000tx-7S; Wed, 13 Nov 2024 23:24:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 835993.1251869; Wed, 13 Nov 2024 23:24: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 1tBMij-0000tq-4q; Wed, 13 Nov 2024 23:24:21 +0000
Received: by outflank-mailman (input) for mailman id 835993;
 Wed, 13 Nov 2024 23:24: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=GKVH=SI=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tBMih-0000tk-Q5
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 23:24:19 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2414::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 635cecba-a216-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 00:24:12 +0100 (CET)
Received: from DS7P220CA0063.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:224::10) by
 DM6PR12MB4265.namprd12.prod.outlook.com (2603:10b6:5:211::14) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8158.17; Wed, 13 Nov 2024 23:24:07 +0000
Received: from DS3PEPF000099D5.namprd04.prod.outlook.com
 (2603:10b6:8:224:cafe::94) by DS7P220CA0063.outlook.office365.com
 (2603:10b6:8:224::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Wed, 13 Nov 2024 23:24:07 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099D5.mail.protection.outlook.com (10.167.17.6) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Wed, 13 Nov 2024 23:24:06 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 13 Nov
 2024 17:24:05 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 13 Nov 2024 17:24: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: 635cecba-a216-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjAxIiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjYzNWNlY2JhLWEyMTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTQwMjUyLjQxMjgwNSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I9W8P2VkpcWqO6lch6a0qpMXgM29w9AY31EjFGsrs04JEkOpE6zGDUvsn9YO+szFYF+1UQuy69RUZ67kwx+rWxP5r6PKLnOygmFMTWAMhYRsKT3su7FvE91+A4NgHU1TUZZdUIH1QlY2PjRKbu1jcsUjP1e3+DR+tOTrouFWtVsts59/SBQW0WUVLnVkBuH1kAl9AObxdEaZ3E+aX22VWIV1dSfMQievdpCbiY8/yqecFxOntmsgsUgVXhk0ICQ8V+41aRempfFNM7KXMoyI2Dm6f5WZtZi9tmLWJ7/kjFR9KpzJTk/UzsdhABvI50W/Y8A+t5KfNleH5+3azGbLDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bbk56jpjMmBTLsMVmSo+qlp3vQ1+KGT4CwyZKhI1+hQ=;
 b=S9tOzwOEDmRsEek/d8SZKlrVVeGKC0/6+EggnJZ5WCnlM8IrdqPAicn37H3WccZGh6r5kOLRzze2FGetLldw30oHBRh6M73z6VxpSpPInmW95JsAy4tqYcmgVffIKbc/6Y+DHMl19UOUkJPBIAOu1x0aVXOwtn4LHBPKpTtnblnjlHwFlgEVrX78WbRlKE/lBqr5q5hJBOWAUVZwdWfL4Gz3WfPnMOxJ33sH+LWvXc8VYyyD4/WoeBhxZyN2W7XG5mnC7hRXxZTDtBEJe81OPDiA+N32y9J/3NeKgDYZUaJx4FGGMROCbmvdmlogBQ0XQ38hS94ydIePsXECoB9c9A==
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=bbk56jpjMmBTLsMVmSo+qlp3vQ1+KGT4CwyZKhI1+hQ=;
 b=AU4GohdkpBgOj8su/Y0ymUbRUEFX9PRC8ECRIodMd7qiW96XBX0yHLhmwvXlqDXNZT1sjvmsCeNpssa2R7aKI6q0tn+C0YSDEo4x94f2PLJ6OlJsrgrMUw/+Ofrd45vB+i/jrvdtXZlQ0uW15n6VprYocQz4bN3oU9uMx9WPzZE=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <777b5cca-2d74-4526-ba25-b9ece75901c5@amd.com>
Date: Wed, 13 Nov 2024 18:24:04 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/earlycpio: Fix header to be standalone
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: <20241113164844.1750237-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241113164844.1750237-1-andrew.cooper3@citrix.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: DS3PEPF000099D5:EE_|DM6PR12MB4265:EE_
X-MS-Office365-Filtering-Correlation-Id: 17d2f9c0-d763-4df7-9d12-08dd043a452f
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?dEkyeitrREg3TGpydVRuY1FUdTdkdGdiT2pseVpqREV4NFRZQTN5S0M3WVpJ?=
 =?utf-8?B?dHIvTlA1WHJSaXVzT2RIcERQZTdCampDdWxTdkVvbUsvVUhtWWk1elVaM0dN?=
 =?utf-8?B?cG1teXdkMkswc0pmb2F6Vm9JTEhINW1aYXNVZzJWZmpGZlM1WmxWOHJXZWNa?=
 =?utf-8?B?RmMwSzJ2UG9JcTl1T1VrYllvNHJFQkdKdS9EQlcvbTJ6TWJhQUVPbngxRk9R?=
 =?utf-8?B?S2t5RUNnRjltZ1JYMkR3NW1iOEFHVDBPNjBEc2RtZklPODlpR1c2bFBSd0ox?=
 =?utf-8?B?a3NGS1pzNVYwY1pnQVRPYVFlbk5aU2haYjVmMGlDUGtEcUIzUVdsNkc4alg2?=
 =?utf-8?B?T3VwamNmT1g1UW82Q3JwOUtNbDZiYTR4TE96MjFqRUFvVTNMUW8vS3lpMlB1?=
 =?utf-8?B?ZUJ1bXFMYSs5Sy83VCtyN2JFZGJoSHBzazFaaEc5QmRDR0lPTVJ2azgzMzY1?=
 =?utf-8?B?NzR3b0FpbXBuRDdIM1Q2cVZ2SjhBNUZQRXllVkZNTDl1RnFudEF1RnNTQ2xC?=
 =?utf-8?B?dnVvODByV2NFZlg3dk9ISFd1NU9EZnM5cVA5MnF2TmN2WlYzanpPM1ZCbXlQ?=
 =?utf-8?B?enpxV09NRGNDTmZwcW1nMEVLOXlMaTZRM1BjQWE4QVBkeHo5eXdZZDVMZ1lz?=
 =?utf-8?B?TFJDT0VKVFdDSXhuaE56L21TK0lQTjQ5eWVsc0xtNkNLN2YrZFhiS05uSThL?=
 =?utf-8?B?SDZQV09wZ0tTNEp3YXhPL2Q5Tkw1dnJ0bGhtMWl1TXp1eittR1NGWVB6bUMx?=
 =?utf-8?B?N2V1U3BaaU01Mjl0ZWY4d3ZYVDZ2SDFOVEZxSi9hZmMrRFc0MGtUd2lQamRL?=
 =?utf-8?B?ZDRHWnFpMWxib0ExZlg4NUZHcHFJN1IzVVlGTlozVDRZaGZwdE1BRXBlays0?=
 =?utf-8?B?S2VjU2xkS2svOHM1L1JVZExWOFFCRmMzenJ6bDJDWlJWOTlOMktFblZPaDhH?=
 =?utf-8?B?d2FGaVI4UmFRcUdpQkY0SFdYRFl2dVRwbGp1amZNcHdJcTJsendBYzcxRnU2?=
 =?utf-8?B?SHdJS0pyNzhwMThnRFhJV3c2RjNrN20wTkFSZ05OT01RazFHTHFIelNwQzl2?=
 =?utf-8?B?VWlKQnFML2FZbGNpRmZFN3UyS1BXaU15Sk5iZTJoUVAveTV5aFhjU0EvUGt5?=
 =?utf-8?B?ZGtTSTdLTkZuTDFTMzE4UmtyVHMyd1JIeXN4cE9Fb1crS3JZSmdWM2lxbHky?=
 =?utf-8?B?YjYwSS9tUFZWYUF4SGdWd095UmlQb1hJTGVxVDJVNEV1ZTNTYW5pYlVrQzhz?=
 =?utf-8?B?enVvb1UycCtuT2UyMFpTaDBObE5BMndaeVZiTVpqOG5wV1hDaWt0N2xKUzZt?=
 =?utf-8?B?TDhxNDVBZ3lTb09ud05tb1B5TmVZbkxMMXBIUEpvOWROei9NMjJkVSt2bmFO?=
 =?utf-8?B?S056OWx4ZmdMSVRKK1BOdDh0clFpbWxxZTV5Kzd4bXRIMXJMdFl3Q0ZxYldY?=
 =?utf-8?B?Y3AvNVRjc0hWSFlDdjFnWkI0V01US2xMNS9jS2R6RDIxU0gxbko2NWp0VnBJ?=
 =?utf-8?B?eXBZdmZvRWtNVDVkRUFielBEQmx1YXRxTmNOS1FUZlhicU9JUk93aTFraEtB?=
 =?utf-8?B?d0FLVUFyS0J3eDNyT3pqQytVSVNoMTk3eGZUSXdMT2lHK3lUeXNhcHIyd1Zl?=
 =?utf-8?B?MWpQVWJ6dTB0UDBLQURRNlFRQ2VoNWc3VWtpR2gvVm84RzE1Mis0QUhtZDMy?=
 =?utf-8?B?K3dhQnB3SjZkRmVrRUlwWHhhNjJ5bUxONzc4OWxLSi83NStOaWkvZ1FXSDhE?=
 =?utf-8?B?ZHoxY2g2K3BnNTMrKzUvaHBxT3JzSSswU25hekJrRHVFUmtRa21lZnRaSVN5?=
 =?utf-8?B?andoVkF2MTd0ZjVZcmRubEU5RzZrMGMzSFlTVXJpY1o2QndHTExzS3dRMTNq?=
 =?utf-8?B?T2dVN1JZWnJqcTM3S1FISnZEM2dscmd2eVRRL3QvOHVPOGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 13 Nov 2024 23:24:06.8716
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 17d2f9c0-d763-4df7-9d12-08dd043a452f
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099D5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4265

On 2024-11-13 11:48, Andrew Cooper wrote:
> Split out of yet-more microcode cleanup work.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Nov 13 23:26:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Nov 2024 23:26:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836002.1251878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBMks-0001Vw-MX; Wed, 13 Nov 2024 23:26:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836002.1251878; Wed, 13 Nov 2024 23:26: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 1tBMks-0001Vp-Js; Wed, 13 Nov 2024 23:26:34 +0000
Received: by outflank-mailman (input) for mailman id 836002;
 Wed, 13 Nov 2024 23:26: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=GKVH=SI=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tBMkr-0001Vj-Kd
 for xen-devel@lists.xenproject.org; Wed, 13 Nov 2024 23:26:33 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20629.outbound.protection.outlook.com
 [2a01:111:f403:2417::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b58b0447-a216-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 00:26:30 +0100 (CET)
Received: from PH8PR07CA0024.namprd07.prod.outlook.com (2603:10b6:510:2cd::8)
 by DM4PR12MB5964.namprd12.prod.outlook.com (2603:10b6:8:6b::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8137.29; Wed, 13 Nov 2024 23:26:26 +0000
Received: from CY4PEPF0000FCC0.namprd03.prod.outlook.com
 (2603:10b6:510:2cd:cafe::35) by PH8PR07CA0024.outlook.office365.com
 (2603:10b6:510:2cd::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.27 via Frontend
 Transport; Wed, 13 Nov 2024 23:26:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000FCC0.mail.protection.outlook.com (10.167.242.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Wed, 13 Nov 2024 23:26:24 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 13 Nov
 2024 17:26:23 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 13 Nov
 2024 17:26:23 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 13 Nov 2024 17:26:22 -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: b58b0447-a216-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjI5IiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImI1OGIwNDQ3LWEyMTYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTQwMzkwLjI3NzE3OCwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rODCbbFs4mZtHIg+BFoYImQPeeyTUvlfW4gHyQ/jfWjvdY9m+R/OmU8JokDrG6B6sTvHrQm7CDnuZUENMgp1WRV4zVWPRexS6o4+yNH1Y+FmL5dcGS3Pe05Y24rdpTPBcCu1u0w1nWoC3Pf4cCCApIgVf2xsIhs9SINDIdD4NRks9LdVfcT1rpUH7R8wt4/pSC9IyHVLIo69on76ed8z4oIIaqAtOW+URdE3pTFPj44A08GJtxUP3BSQPNYQxG51mGz06vTmsG5auPcNBAZRdOTHMD78M3OybBP1LxhZZ2NYXN+dCPdgJJQlBUD+3ByvsoyCZGH3+3MtMfIurIRciQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5d21rHYg7E/Icz6+TA9Ifx9+NlcM6BtYysVcmtRmQq0=;
 b=NZgjJGYwJJbfJyRGLFY3ECNSRFZpeSFoEKxrlEE6NYcjmsm/Ai0YNToy9jp41pM/paz53ioYnjls/SzzFt2qwzYyzzck7lQ19QK8MUXtv9l5yMEbfFLiFFSv5QrFy6kj6AmGUf3fYVK9lFh+bHlkNHJAVLkcKCCaPXo6fyVPOpCpPc+SECSuf8HUXI5ODX3s54rIpCF3CRpcIcXhkCy1LLE0M8/RK6pfgEw0omCIgBGCorF82HH4mMsGg4nSlP0qMntDD+dB8pTbjniNeKU0Wlb4RF3PgeFooKEkm4k50AENGIN3P44mSaeJ5TghcFv5BCfML/n3dQBI1q6PR+4XUw==
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=5d21rHYg7E/Icz6+TA9Ifx9+NlcM6BtYysVcmtRmQq0=;
 b=IMANg+R8f+9B2ny9ua9vgZA4YS1AkczSSSJEKeBauUF+yYyrro1apuZYtmrgK34p1shpaaHVcAaJqMcUFVlM5IUIR1tY2fHw/3dlpx0v8FAgws866XDd4A1fFzD2QYPcsSWsTfqiueahnaB/c3ReiniKvzaQkd2f8A7XBUPD/do=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <45596908-061f-4123-9612-23bc7acd5d25@amd.com>
Date: Wed, 13 Nov 2024 18:26:22 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/multiboot: Make headers be standalone
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: <20241113185118.1786703-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241113185118.1786703-1-andrew.cooper3@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: CY4PEPF0000FCC0:EE_|DM4PR12MB5964:EE_
X-MS-Office365-Filtering-Correlation-Id: 4a0f5047-5419-4d54-d130-08dd043a976e
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?YnhNZ1RSdXU5UDBWMmVaVzBLMXJ1S0R1cG8yaGpOellLWGVLRnNEQU10aFhM?=
 =?utf-8?B?K0dOSDFITlROb2I2SDJwOU1JOVd3aGI1RE5PZDR2a1FkelUrUEp6RlhNQjh5?=
 =?utf-8?B?eHpUT3NTbmd5VWFwY1YvL1JKVU1TZ0YydEJkWXE4Rk9hQmRGTjlMa1E0eDIx?=
 =?utf-8?B?a1owUmJxK25vZnhUOXVQVWlDTWlEQVVLWnJDQWxsdCtZNzFmMVBJNFBuMWRO?=
 =?utf-8?B?a3MxWmpNK3pLN2hWODFXS3ppUHlsUGY5N3ZsTGFRTWFLVmw2LzRIKzlKay9Y?=
 =?utf-8?B?UytTUzU1MWkzbEJjeHkzVXBPakloQkhQMkl1SnBuZER6cFZ1NEV1azFtWjZ6?=
 =?utf-8?B?bUpXSGhQbCsrS01tM0loZTRwckJsWDNTRUpZWkVxRG0vbmxVRTRoeE5LM1Fy?=
 =?utf-8?B?S01EWHI3RlNKK1RJR1RaZUtjeFczOWU3Rytkank2UThZbG93Q1FqZ2kwREpN?=
 =?utf-8?B?Y1hMUTN2U3Zybk8ycXpEUjQ2TFVNc1VGSkc1c28zM2ZvWkRuMVJSc1M4WE42?=
 =?utf-8?B?c1VTUUUvRnU1NGorckk2bUY3Z3VUeWtHMklQOERDcXhBcDUwTkhWbjNuRFQ0?=
 =?utf-8?B?VzdCd1JuNnhnWEE1R0lRbDN2Z255RTB6enlVZHNIVnRLUlpaK3RzeEpOUG1U?=
 =?utf-8?B?eGwzOHlzSVJNdlp3OEdqZFUwRGpRT1FDK0ZhSktKNmtrYTI1cTV5aExxUjVn?=
 =?utf-8?B?TEtxWVJLdTdzRWc4ODloYit3MjZVME02SU1zT3haZS9PR2hqVjZZaldSYm5t?=
 =?utf-8?B?TjNBaTQybENCQlREWlV6dFFPekNHd0tRTHhvQnVtMFA3cEZ2c1pmUlNYTCs3?=
 =?utf-8?B?YTc2L2RKZ1FFelplaGNJcDFjdlZKeUhXaTVPdGlYaHdzR2paWVRscEE4bzBT?=
 =?utf-8?B?eFlNMFhiRk16MVhYYzZvSDNLSnBqSmZqb3pjcVMxK0ppTkJSem4zY0lMcmRE?=
 =?utf-8?B?VHJ3dXd2Z09FQS9KZFhFWG9uSlpoZHJESW03bGFWeXoyU3c3T04xZEhWZHlo?=
 =?utf-8?B?ZFFwalUzZFlUNWx1TVprNlgvMlNXRDVadm45SGpyMldkWDcyekNsZlM0S1ho?=
 =?utf-8?B?Y1Z5ZkUveWVQeHY5cFArVmI4OVZXS0FHbE5MMHExbGU2cE5HYU5nQVRpeHky?=
 =?utf-8?B?V3J3WmhibTBDRWsxVjdyY3R5aTllRS9TSSswc3FqSXNHZzRFNG1TcGZGVVpX?=
 =?utf-8?B?Y3VYYm9JMU9Md2FPdkEwSmR5UGtxMGNVWHpYMEFxa1ZuczR0YnV1dEhLNkRu?=
 =?utf-8?B?NisvdzZjZjl5NXFtWUtPb28rZWlmeThaWW1GdjRLampib2M1ZTJkZ1YrRG1p?=
 =?utf-8?B?S1V1WWVMNVB2dDdvaVlFY0FFQmg1c3RJbjd3eHNtWnVCTkxwZld5K1M0WEZX?=
 =?utf-8?B?R05jOTZQcUxCRVpUV09jRE5GeUN0cUlWbGJqSlB6NUQvZC84eVpZSGhQalFP?=
 =?utf-8?B?WENCVTdqV01CTkNkV1VQNEpaakVSWEh6MFpvSjd5bnRMZ2luQm5IeTV5NEdp?=
 =?utf-8?B?NDE4UTA1cXFnVWpMMzV5eXdEQVIxMnBpMXJDZ3h2RG5VY1NqZEdOeG5xbHhV?=
 =?utf-8?B?ejFuUHFUWEJoRys4d0xtaXNESHpNelRQK2J6eEVMS0RGcU5IVEVrd0JRSDht?=
 =?utf-8?B?Kzd4VVV2dDZ0cHdRdVJRTW5JV3Z4WXJiTVA3WDRuMGI0dWNUajZVWFhyRFFB?=
 =?utf-8?B?R01BRm51ZmhsRjc5L0pLL09jcW1VUXp0WFZXL0xFb3N2TVprZlpvR25RWjlo?=
 =?utf-8?B?VEpwallPdmJkV2NCSWdDRS91b0NPV3ZpWDVKL0UxMDRmOFFId0FJT2FWTC9a?=
 =?utf-8?B?dXNRbmF5VlR2QkppdW9zQ2tkZUVyNkZuc25EVkFFL1FiNnlscDNkZ2RMSkJK?=
 =?utf-8?B?ZHdUbjc4YXBJd0puYmVFc2RqUk04WElGWjRlWjVEV0l6QXc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 13 Nov 2024 23:26:24.8902
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a0f5047-5419-4d54-d130-08dd043a976e
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCC0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5964

On 2024-11-13 13:51, Andrew Cooper wrote:
> Both require xen/types.h.
> 
> Change multiboot.h to include const.h by it's more normal path, and swap u32
> for uint32_t.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 02:10:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 02:10:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836011.1251888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBPIl-0002sz-Br; Thu, 14 Nov 2024 02:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836011.1251888; Thu, 14 Nov 2024 02: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 1tBPIl-0002ss-9H; Thu, 14 Nov 2024 02:09:43 +0000
Received: by outflank-mailman (input) for mailman id 836011;
 Thu, 14 Nov 2024 02:09: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=npsv=SJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tBPIk-0002sm-6d
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 02:09:42 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f5e3f79-a22d-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 03:09:37 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id EDFE3A41924;
 Thu, 14 Nov 2024 02:07:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD557C4CEC3;
 Thu, 14 Nov 2024 02:09:34 +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: 7f5e3f79-a22d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NWQxOmVjMDA6OjMiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjdmNWUzZjc5LWEyMmQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTUwMTc3LjU4ODc2Miwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731550175;
	bh=CjCuNaCAQV1P9ZcHdoxS2vmdSFWI+pACjjYcZzKB3x4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=IUbmfvP+cUx+mLSUMvNxj4Qbiyi4XPgCN3BkpY5uUtWIbCKM8O52PAlzRu40rZlv+
	 hldgGDQkxHZMV6YrVnYGKwnl3fLzUAXZ72Yh7GN6en6qzGC2CKb+Jl/+mp544MNMAW
	 bmewz3q4mNbWtsVFY/HXc+xeUDgZQH0FdTiabjkoAf63bz4PSXgRpO/Mry5m5z7+QO
	 KF7U92AMzZhaGlwOkJ7x+baQSq+HGt+NtNV7HGQcF42vDHYMUwST+eQJdTQ4tQd1DS
	 iqJiFZNK+MQliLGiGPQH9HlQ8cEthk36UBnc0zidIkrs07YWVItfm4YGWvGkpk3xgL
	 mVtvFYB65suYA==
Date: Wed, 13 Nov 2024 18:09:33 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] docs/misra: specify behaviour of checker for Directive
 4.10
In-Reply-To: <5939b15ad764674b7d8cece654f891e880086d54.1731490924.git.alessandro.zucchelli@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2411131809240.222505@ubuntu-linux-20-04-desktop>
References: <5939b15ad764674b7d8cece654f891e880086d54.1731490924.git.alessandro.zucchelli@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, 12 Nov 2024, Alessandro Zucchelli wrote:
> MISRA C:2012 Directive 4.10 states as following: Precautions shall be
> taken in order to prevent the contents of a header file being included
> more than once.
> 
> This commit updates the documentation to describe the behavior defined
> for the checker.
> 
> No functional change.
> 
> Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
> ---
>  docs/misra/rules.rst | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 80e5e972ad..f5858b00bb 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -68,6 +68,8 @@ maintainers if you want to suggest a change.
>         header file being included more than once
>       - Files that are intended to be included more than once do not need to
>         conform to the directive
> +     - A guard identifier is reported if the same guard identifier is redefined
> +       or undefined anywhere in the project

It cannot be another - because it would break the table. I'll fix it on
commit.

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


>     * - `Dir 4.11 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_11.c>`_
>       - Required
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 02:22:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 02:22:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836021.1251899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBPUs-0005Uz-ET; Thu, 14 Nov 2024 02:22:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836021.1251899; Thu, 14 Nov 2024 02:22: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 1tBPUs-0005Us-Ai; Thu, 14 Nov 2024 02:22:14 +0000
Received: by outflank-mailman (input) for mailman id 836021;
 Thu, 14 Nov 2024 02:22: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=npsv=SJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tBPUr-0005Um-EX
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 02:22:13 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f917e93-a22f-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 03:22:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A19BC5C5C35;
 Thu, 14 Nov 2024 02:21:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 75504C4CED5;
 Thu, 14 Nov 2024 02:22: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: 3f917e93-a22f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmOTE3ZTkzLWEyMmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTUwOTI5LjY3NjY4Niwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731550927;
	bh=C53hPqifI5xadHt07QRXodayfWfbo8znzBVDFVRekBI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=hNt1JgbMtUdqeNRc2bpIqBvfESY2yuubrH/ZYtwpOVv2t/xvVN5HMMgu00WVqcvcd
	 OUS4IC3erhqXc7XNs118mA0sPZqtHt6ZrhH8+ad9+KQ4s5DhfO7bdmR20Z6pKQBFI9
	 gaOSLH9TyJ4R6qlrJMtjyWDrETcvZUdMGxw1vH1tAuGs1eZrV0WuyLjazeOpTzf6YC
	 GTk1abfrTbrEuin6MN+J6ayCfNf9m+5SWku/M3reatsSgaKE9OGgFOdrEzeGE09/KT
	 9tGAJOtiBpdOx51jfx7xKIUgpqyUhohAq/xMoJvQElAEypiSYK8uhcz/YyqNMmMyVh
	 C4hHecjMMfICA==
Date: Wed, 13 Nov 2024 18:22:05 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>, 
    consulting@bugseng.com, Simone Ballarin <simone.ballarin@bugseng.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen: add deviations for MISRA C 2012 Rule R5.4
In-Reply-To: <7ba6e67a-1470-4734-a065-4d4045f8422a@suse.com>
Message-ID: <alpine.DEB.2.22.394.2411131812410.222505@ubuntu-linux-20-04-desktop>
References: <255ae80cc8b95f33daa7534c9552c571391cf689.1731490650.git.alessandro.zucchelli@bugseng.com> <7ba6e67a-1470-4734-a065-4d4045f8422a@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 13 Nov 2024, Jan Beulich wrote:
> On 13.11.2024 10:38, Alessandro Zucchelli wrote:
> > This addresses violations of MISRA C:2012 Rule 5.4 which states as
> > following: Macro identifiers shall be distinct.
> > 
> > This deviation aims to address violations of Rule 5.4 regarding
> > identifiers XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list and
> > XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list, and identifiers
> > declared in header file include/asm/guest/hyperv-tlfs.h.
> 
> Please can you provide enough context? The two identifiers are quite
> obviously distinct. Just not in the first 40 characters. A limit I had
> to actually go look up, because it's entirely arbitrary.
> 
> Plus - what are we going to do if further such identifiers appear?
> Exclude them one by one? That wouldn't really scale. Can we perhaps
> make a wider exception, e.g. at least for all XLAT_*_HDNL_* ones? Then
> again part of the problem here is that hvm_altp2m_set_mem_access_multi
> is already excessively long, alone taking up 31 characters.

If the reason for the deviation is solely the length of the identifiers,
I believe we should increase the limit from 40 to 64 characters. If we
make this change, would it resolve the issue?  After that, can we mark
Rule 5.4 as clean?

Regardless, the recent MISRA regressions have demonstrated the need to
act quickly in marking as many rules as clean as possible to prevent
further regressions (new MISRA violations) from entering the codebase.
There are a few pending patches on the list to address only one or two
violations left so that we can mark a rule as clean. I believe we should
accept these patches even if they are not perfect, as the cost of
delaying action would be far greater for everyone involved. Andrew had
to spent a full day this week just to catch up on recent violations that
we would have easily caught if we had marked rules as clean.

Based on that, I think we should take this patch changing the deviation
to cover all XLAT_*_HDNL_*. The change can be made on commit.

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 02:24:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 02:24:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836028.1251908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBPWh-00062P-Nm; Thu, 14 Nov 2024 02:24:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836028.1251908; Thu, 14 Nov 2024 02: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 1tBPWh-00062I-LD; Thu, 14 Nov 2024 02:24:07 +0000
Received: by outflank-mailman (input) for mailman id 836028;
 Thu, 14 Nov 2024 02: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=npsv=SJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tBPWg-00062C-Jw
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 02:24:06 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83251571-a22f-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 03:24:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 558615C59FA;
 Thu, 14 Nov 2024 02:23:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D02FC4CEC3;
 Thu, 14 Nov 2024 02:23:59 +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: 83251571-a22f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjgzMjUxNTcxLWEyMmYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTUxMDQ0LjQxMDE2Miwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731551041;
	bh=L5HFsfr+BApkigXVeX/+BvlJX2/g+/I04iWxXLqn8vY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lm7TT4HmtqeRD5VFP1plxzSHey12ZqXBAe6K6YPyJ6kz2wMd0PpN09nwkPaFxWdqq
	 uN2ckS+7SF0jZ0/vgQ5VGVA5qnbw4PFVXvVyLXxFuQiICbN0XB+YbsBrXR2wPbTDhD
	 XhDjFKmWX5jwss/EYKFzS7XUpMkp+ZKbBHj2hzQKhLJvIOA61JadN8pL+Jdiuwn+VD
	 LaVWO51qrH7noCegMLSMorRYxJxMf3Z/hI2As6p+KXt2t6CtJ8cNmCt/xvnZSWfNRK
	 PDNQ5xnEuBD9h/WKAJd3ccOLp5FxmiQkF5Qt62WeNqqdA13Z5q+0fVOcs5GKtLRUWl
	 aRRSK8cndNkVg==
Date: Wed, 13 Nov 2024 18:23:58 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: alessandro.zucchelli@bugseng.com, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH] xen:add deviations for MISRA C 2012 Rule R5.2
In-Reply-To: <24b117ed-dd5a-47a7-8c5d-ddddd7407ac9@suse.com>
Message-ID: <alpine.DEB.2.22.394.2411131822260.222505@ubuntu-linux-20-04-desktop>
References: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@bugseng.com> <39168f90-7c80-451d-9c20-50da0de4af78@suse.com> <3789df92285b2c08b855369f46f3a229@bugseng.com> <24b117ed-dd5a-47a7-8c5d-ddddd7407ac9@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 13 Nov 2024, Jan Beulich wrote:
> On 13.11.2024 11:48, Alessandro Zucchelli wrote:
> > At this link you can see all the violations of Rule 5.2:
> > 
> > https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/40_characters/X86_64/8143097084/PROJECT.ecd;/by_service/MC3R1.R5.2.html
> 
> Thank you. From a cursory look these all appear to be a result of the 40
> chars limit we put in place (quite arbitrarily). That's not mentioned at
> all ...
> 
> > By deviating the two macros CHECK_NAME_ and DEFINE_COMPAT_HANDLE all the 
> > violations are addressed.
> > 
> > On 2024-11-13 11:31, Jan Beulich wrote:
> >> On 13.11.2024 09:41, Alessandro Zucchelli wrote:
> >>> This addresses violations of MISRA C:2012 Rule 5.2 which states as
> >>> following: Identifiers declared in the same scope and name space shall
> >>> be distinct.
> >>>
> >>> This deviation addresses violations of Rule 5.2 arising from
> >>> identifiers generated through token pasting macros CHECK_NAME_ and
> >>> DEFINE_COMPAT_HANDLE.
> 
> ... in the description.
> 
> Together with the 5.4 patch having the same lack of context, I wonder
> whether we shouldn't simply up that limit.

Yes: if we up to the limit to 64 (another arbitrary number), can be mark
both 5.4 and 5.1 as clean? If so, I think we should do it right away.


> Or else, as suggested there,
> to instead exclude such derived identifiers. After all the derived ones
> will be distinct as long as what they're derived from is distinct.
> 
> Finally - please don't top-post.
> 
> Jan
> 
> >> For each of the two, can you provide an example of where collisions
> >> result? At least for the latter I can't even see how that would
> >> work without the compiler complaining (i.e. the build breaking).


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 02:34:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 02:34:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836038.1251919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBPgt-0007nf-KZ; Thu, 14 Nov 2024 02:34:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836038.1251919; Thu, 14 Nov 2024 02:34: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 1tBPgt-0007nY-HY; Thu, 14 Nov 2024 02:34:39 +0000
Received: by outflank-mailman (input) for mailman id 836038;
 Thu, 14 Nov 2024 02:34: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=npsv=SJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tBPgr-0007nS-SJ
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 02:34:37 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb68e609-a230-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 03:34:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id A2BE3A41965;
 Thu, 14 Nov 2024 02:32:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32CC0C4CEC3;
 Thu, 14 Nov 2024 02:34:31 +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: fb68e609-a230-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImZiNjhlNjA5LWEyMzAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTUxNjczLjk0MzA2Miwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731551672;
	bh=R/eOljDsXpcN1CyRR38tTGRGbLC9OOVEnU1V9Iju3Vk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=A2mK6l1P5R3FI36R4QXbIa/RWaLv5rpuHid2CYKWZe4gt2dUGcy9g/L9O6B7qGGo/
	 xv1Ndg8Uet4ZWS4R/gz+nKzmVckNPchn6J/oV5dKSJoSVUDy3K7qGrrjKPbH4QT9Du
	 RG/y0PDC3m6CJygB57ZD7ohJpqwfJP7FOTFQq9UwkP4HYK38LUoMFHYYMn/r5/tEDE
	 T7dm+ompZeIhJPG4V9M5hayLf9k8a1jgGwM95PpPBLthB6Vi3n1FDFOt/ktFxsUsSg
	 WNU6Bo63PYCRI/64jY1Z/EQcZYV/ioJG0wPQw0MhJiEeRoJ8RRVj3JxOjiUGynvpRR
	 msN3NyuK/U18w==
Date: Wed, 13 Nov 2024 18:34:29 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Roberto Bagnara <roberto.bagnara@bugseng.com>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] xen/multicall: Change nr_calls to uniformly be
 unsigned long
In-Reply-To: <35b585a0-7d19-4b02-8ad6-90c7df3ae6ac@suse.com>
Message-ID: <alpine.DEB.2.22.394.2411131825400.222505@ubuntu-linux-20-04-desktop>
References: <20240621205800.329230-1-andrew.cooper3@citrix.com> <20240621205800.329230-3-andrew.cooper3@citrix.com> <660fc551-c6bc-456f-8e9e-80b3e592fece@suse.com> <alpine.DEB.2.22.394.2411121912400.222505@ubuntu-linux-20-04-desktop>
 <35b585a0-7d19-4b02-8ad6-90c7df3ae6ac@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 13 Nov 2024, Jan Beulich wrote:
> On 13.11.2024 04:15, Stefano Stabellini wrote:
> > It is challenging to create a solution that satisfies everyone for this
> > patch. However, we should add R8.3 to the clean list as soon as possible
> > to enable rule blocking in GitLab-CI. Failing to do so risks introducing
> > regressions, as recently occurred, undoing the significant efforts made
> > by Bugseng and the community over the past year.
> > 
> > Unless there is a specific counterproposal, let us proceed with
> > committing this patch.
> 
> Well, I find this odd. We leave things sit in limbo for months and then
> want to go ahead with a controversial solution? Rather than actually
> (and finally) sorting out the underlying disagreement (of which there
> are actually two sufficiently separate parts)? Plus ...

The reason is that several MISRA regressions were recently introduced.
These regressions could have been easily detected by GitLab CI if we had
marked the rules as clean. I believe we should expedite accepting the
fixes and marking the rules as clean. We can always adjust the fixes or
deviations later to better suit our preferences. In my opinion, we
should prioritize marking the rules as clean.


> > On Mon, 24 Jun 2024, Jan Beulich wrote:
> >> On 21.06.2024 22:58, Andrew Cooper wrote:
> >>> Right now, the non-compat declaration and definition of do_multicall()
> >>> differing types for the nr_calls parameter.
> >>>
> >>> This is a MISRA rule 8.3 violation, but it's also time-bomb waiting for the
> >>> first 128bit architecture (RISC-V looks as if it might get there first).
> >>>
> >>> Worse, the type chosen here has a side effect of truncating the guest
> >>> parameter, because Xen still doesn't have a clean hypercall ABI definition.
> >>>
> >>> Switch uniformly to using unsigned long.
> >>
> >> And re-raising all the same question again: Why not uniformly unsigned int?
> >> Or uint32_t?
> 
> ... this question of mine effectively represents a concrete alternative
> proposal (or even two, if you like).
> 
> The two parts where there appears to be disagreement are:
> 1) When to (not) use fixed width types, as presently outlined in
>    ./CODING_STYLE.
> 2) How to type C function parameters called solely from assembly code (of
>    which the hypercall handlers are a subset).
> 
> And maybe
> 2b) How to best express such function parameters when they're (sometimes)
>     shared between native and compat handlers.
> 
> Of course 2) is affected by, as Andrew validly says, there not being a
> formally clean ABI definition.
> 
> My fear is that if this gets committed as is, it'll be used as a handle to
> force in further similarly questionable / controversial changes to other
> hypercall handlers. Which is why I think the controversy needs sorting out
> first (which admittedly is hard when the ABI is fuzzy).

While I appreciate your concern, as you know, aligning on the topics
above takes time. I do not believe it is in the interest of the
community, both contributors and reviewers, to delay marking this rule
as clean. Honestly, I do not mind how it gets marked as clean, as long
as we do it soon.

Additionally, please keep in mind that the Xen Project tends to have a
long memory. As a result, there is usually little risk of the so-called
"slippery slope" problem.

If you prefer a deviation I am OK with that too. I just want 8.3 as
clean :-) 


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 06:38:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 06:38:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836053.1251929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBTUb-00016M-Sr; Thu, 14 Nov 2024 06:38:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836053.1251929; Thu, 14 Nov 2024 06:38: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 1tBTUb-00016F-OH; Thu, 14 Nov 2024 06:38:13 +0000
Received: by outflank-mailman (input) for mailman id 836053;
 Thu, 14 Nov 2024 06: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=wE52=SJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tBT5D-0007MF-RJ
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 06:12:01 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2412::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5794aee4-a24f-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 07:11:54 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH8PR12MB7207.namprd12.prod.outlook.com (2603:10b6:510:225::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29; Thu, 14 Nov
 2024 06:11:46 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.013; Thu, 14 Nov 2024
 06:11: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: 5794aee4-a24f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjBiIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU3OTRhZWU0LWEyNGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTY0NzE1LjIyODE0NSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BrSPrl/+I3TlZL5zyCs7qhHbmgYgZ49lrQ7MQcosbYKafWAxy3ynNFqGa6XwzP90YDqmitDugfc9Uh44nkjGXvDyYuvdfehesCZZ6oGGKHKG94ufRQR4V1mtyXeTPuG79HPFhoyr/cELVyKzmJKkMCFxkaqz66CVYprw31MbR3ukNclGxLTuoMLKL0KdVRb4umuXBiED7C+MvwsKrNUOlTKg1iYTF4CO9APGMcIGS/fkNRM3iLHW+lhHfomXULrULjPsoDEezEf/+SZLcjbgBW/jyCQCpvBF7OEtKuTOMVS9o7mu2mhXs3Xk9decU2twvwHuZH1dnQ5KcX/RZ1DhpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qy9KGIi16Y9s0+/TRX7NJbfwwz0moK+UBsPjcYRPuTA=;
 b=HqMX8ebmCZ1yaIBWQMZzF0mIim+IneKnxA4gtqOv8svWvpEj8w5LIPmc2N3B/mQ0s17ZJtHaLQ7alA2EyNb++SRlj0SV1+YS2VED2SaLhx2XtXswyD7T6wcF6LFRpzEf0gNrAIvjE2qGDGq0bM6vCqNt4329rsP3ajywKuSRPuMJOuJ3YgcAN4eW7Fan2WY5jW90saXvm+zWsBJ/vKhM5P2Le4qN3PbRhiOsBsZ97BEW2/SUnwEM/xgGEBDPR/4P7tZqONzYv4ANbQ/kPdCCHxzGBa5wCD9vlGF5xYcbNZVOoCd6buhaWrBOpDTSe+LE5Oh6L77zlYnavlI31hb26Q==
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=qy9KGIi16Y9s0+/TRX7NJbfwwz0moK+UBsPjcYRPuTA=;
 b=VMVMJ4Va3TizUqzA+DgYyd1lZHIccf8tayg2ETDFUqOEm81p4PbKQWu1Zhe5LDmc6ASwgwTuaC3o50jn2gjPLyknNfqVrfdSMdfHKhcXHkK6aI9M8gV92jF/4VKFSNtvEhMR+qP9jETzGWHf82mcDjAQ3jdsMr+c3wDTo4jH5Ow=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index: AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcA
Date: Thu, 14 Nov 2024 06:11:46 +0000
Message-ID:
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
In-Reply-To: <ZzR_wlY0wXjqec8T@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.013)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|PH8PR12MB7207:EE_
x-ms-office365-filtering-correlation-id: 82cb5602-dbe8-4e88-4285-08dd0473380b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SGZNVFZhTStYa1NvWC9GY1JuQUlYV0VCS3pjbVlUTkxTU3pTaUluOW1wRmhJ?=
 =?utf-8?B?bnNkZ0hsdkt1SjFzZ2s4bGQ1Q0M3dkt0Qm5UMU5sc3pCNGdTN005UFNEWFhD?=
 =?utf-8?B?a3lxRGE3OTNLMmh3MWEvZWJHR2psdmNPYVhqRUZRTm9XcXJwWC9CYzNTa2Rh?=
 =?utf-8?B?NjdxelRlcW1GOU80NVdGNkNGcGNpU3d1VkFIbzhDUG5IcTFidkk1QlJ5ZjRo?=
 =?utf-8?B?NEJVbWdvdEJJaUpxaVVlbzFHMkNZcGhzOTUrNlpJMW5qWDFUb3ZRdlFpV3Ja?=
 =?utf-8?B?TUdST2Q3NDZZSFVmSE9Fd1E1YU9saGNDSDFpd2lhNkFoTVorYnBCVzM4SzJk?=
 =?utf-8?B?VVhkeXFXSHBMN1lCZ2ZLYjRCaUZYQkQwbE0zSjBtN1ZtZEhsc1c1WGt2dS9H?=
 =?utf-8?B?ZzFDcGVxVXVEdE9jM1U0ai9MTXBLdDRpRGI2RXFoQU82UXM3SEpJZW5VZnFr?=
 =?utf-8?B?TXNncFlKWVJUSUw1ZTJzT1NaN2dLTnpYWmp2NXZ3MG9WL0E5REtaQkpwZEgx?=
 =?utf-8?B?UFpHRFpzQkpUc0tMNFR2aUFoeCtjTzJRTHA4bUVaRE1ncWxSMzh6YnE5cERV?=
 =?utf-8?B?ZEhYSVRWZG5VU0t4RjUvTjBZUlF2cG0vM1lPRzZwZms2SDBGZHBnUmh1YlFj?=
 =?utf-8?B?QlFCSDNSbDBSQW93c2hIWWZsa0V5NFJlTjEyR2ZIV3Fhd1JHbUZSaU5iZ0t2?=
 =?utf-8?B?TkdScGlDTklLaVV3QkpvOHJvS1NEbzNmcjcvRkFvWmxpNm1nRllVc1NiNDZW?=
 =?utf-8?B?aUxTWkZUaU81c1o3OGRETDZUYlpPNElPMUE4Y3RhZy9wTks5SjQrbStVQ0FZ?=
 =?utf-8?B?S2JaK0l5cmtkT3U1QW1DTW0wVk9LMC80WWY3cjZaTldCK3ZZRVh3QmpXZW5F?=
 =?utf-8?B?eUlGc2poVUF6dmVSQWdSbkc2MHNVa291NnF0Um5JZzdtUVVaT0lDMW96VEo4?=
 =?utf-8?B?Y0tWa2lrbFJhdEJ3eVhFdjExalAzOTlIU1VRSGJVdERRenhuMWVDYlE4QTgz?=
 =?utf-8?B?cFkxNENKbitiOFZHSjNFZHVOM0trdC9VaE4ydk04c0gwT2owSkh0NXd1Tjkv?=
 =?utf-8?B?Q3QzUmEyTkR0VmNNSFJ0cEliVU1UaTk2dnhJd0tsQ0xYaThLRm1yeHltcXhz?=
 =?utf-8?B?UDlPUjRsRHM0UjcrT25yamZtTTA2Wkd3ZkpVNHhkK0tlRUl4b1lOZ1c4d0VI?=
 =?utf-8?B?eGVHd25iV08rZVBQUkV5T1VJcHU0bTBibXdUbW5vUjNadXphcW9rUkp2TG9x?=
 =?utf-8?B?MGVmblZ4SDBGMEtaRGptVzNBRnRQNDFxVGhTbUFrU2E5ZnpYaEhLTHNmNDhZ?=
 =?utf-8?B?TlN6MW9qQ3VmUlpqZ2loenhmeWtNblQ3NDY3dnllTHNUOE5neWVWbkZZSFFl?=
 =?utf-8?B?R2F2cWJ6V1kwUG9aOHhReHk4SWkrYlZ1YXJYclJ2bUFvNEhsUVU2MWRnYnh3?=
 =?utf-8?B?MVl2bTkySkFwc3VicWFBMmM2T1VhRXpaMVIrMmhDTC9FL2QvSHNpQm5ubXMv?=
 =?utf-8?B?RVJ5QU5YeXdrRUUzVTFiUEdBMm81cE1VRWUrbjZ2L1A2RVNHbmthc3JBYW1w?=
 =?utf-8?B?RGZ1S0lsSEFrdHV5WmRuaitrU3BlcEtwMW1TVFduVnArQVFUSi9RVzQwTDl4?=
 =?utf-8?B?Nnk2b0pKakpFdG16RU9WTmpONTE5eDNPNUpMN2FCNGJjU01Uc1hBYytKcllN?=
 =?utf-8?B?YlptcGdsTkN6RGxERUdtSlpUbFhhalZlVDVSVDZxOEpDc1VVZGY0dDZSdHQx?=
 =?utf-8?B?WlF4ZjRLelpYM0JzYzRJWGxjQUtWcG5qMEIyUDBrOW95YVN1cUhlYTEwVGRw?=
 =?utf-8?B?VHJYbkk4YVNESlpVcmVURnRpMzZ1UUt0ODU3WkxhQVI1cllPdi8wSW5oQ0Fz?=
 =?utf-8?Q?Sgfaks7ykoXD8?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VjdhdWxIU0U2eGw0Y1RPL291ZGFWcjhrTzkwNzRxMGxqOGJRTTFPN2FMSzZi?=
 =?utf-8?B?a1grZEQ1RFdsMk84akFZQTF4cC9udXdpdW5oNHZlWmdTT0NuQUE4MzBZUmgw?=
 =?utf-8?B?V050RlJwN0xrK21oZ0J1L1ROT3R6bE5YTy9WVy9xenBQVjBLcVFsRzZzNU9r?=
 =?utf-8?B?L1pJVXU3bmFnUmo2UjdnYVRaSmtCeTBQQkY0TkNhVjZLNktDbTlUZi85dzkz?=
 =?utf-8?B?eUtCYnJCZStqTUUxa1JzQkc4Mkdlb1g1ZHpJL2hHQW5XMXl3NVF4cXpBOG50?=
 =?utf-8?B?Q20rRS9icU5pZ3ZBazRSV1NnZ0cwdzhKc2FCanVpOEJab0R5c1B2eEFkWE1M?=
 =?utf-8?B?c0IzazU3VEx5MWxnbzR6UzdqNkp0akVCa1hKaFltdnhoRUN2WTUvcHZXbWlm?=
 =?utf-8?B?OGFJTFMyaWVGMnVPUTRyamZKajFIMmFtR2FUazZ5UGd1WXJnRkJDT3Zmb1hz?=
 =?utf-8?B?cVJadkdtVVZXYW1LOG02NDBtdnVXalg5ejBOaWNZWHEyTHQrek1jdnE1K1pm?=
 =?utf-8?B?UUF5RWNaVlB4QW5aN2VzYWdZL2kySXhTOVR2d0dzTTdaMzczL3Y0dUFrelFD?=
 =?utf-8?B?MjV0cmVZT0ZUelI5RTNuK0dUTlNreVJmOFE3RDJjS21HMEkxdVBBam8rQ3Ft?=
 =?utf-8?B?SlZ1b3ZRUGlnb2R3K2M2ZnY2NFBxS2c5OUJUVHh0akZncmN4b2hkc1BFTlc1?=
 =?utf-8?B?Y1JnWHhSeUJVKzZDejdwcnNhNGlFY1JITFpjcGp4RVYrR3VBNXRuTURGWFVh?=
 =?utf-8?B?QTJPY2VaZk5OYlR0Q05qcTNRSks2OUw1eHNiUlhzNHcrbVJVNWhWSXJldkhk?=
 =?utf-8?B?OGxGdEEyTEdYNXlDVzZlOTJCU3ZTV3FYdnQ3L0ZLTlN0VEF5YVdyRWRUbHRF?=
 =?utf-8?B?ZzllZUMyelNzWFZtV2sxeDdsb2xMeXZSbjJVTWJiSHNEeE1DZitUUjZ2eVVL?=
 =?utf-8?B?Y292YTV3K1g2dkRuenBrckJBemNXdmZpQ04zQ2hmUG5kTHhFMk04UVdzSkpx?=
 =?utf-8?B?b1NsYnAxTFlDRTFjZ3hhanBRMEE4bTZYYnpQTjBzY2VYdGlVTm9qd3dCdjNS?=
 =?utf-8?B?ZlFTbFVKNXNHWlVPQVZEYzNZdWk0Yml2bytqSjgrbmN5cStQQWc3b1V2UDNU?=
 =?utf-8?B?cGpGbmFsVzE0anorbElVK0p6WGVYYy9wR3ExUWZSQSswYXdSMS8wL0owVFpv?=
 =?utf-8?B?NGszSEJIYm1mYmp0RU5ReHdnK2FvbXg1bkVIT1JuNGR5a0tyaDVSK3p5WjFF?=
 =?utf-8?B?SnQ2dkxvVnhoWlFyZTJRRm90U2pMN0V5L2hHWEp1OWJJbnVidWdjMlN1M0lt?=
 =?utf-8?B?RHFqeE84L1NuRmkzajR0MURUUzVxdi9RRmEySE4xUDBmdG92a245ZG5SejQx?=
 =?utf-8?B?M3JrclgvVDJsVlJkL3F2SERoRjJBdndONWZRbmU0UFAyNk8reWRGbGdxRjZi?=
 =?utf-8?B?WmVVK3B3Zm5PajJLaDhkcU1DMGtiM3YxbTh1N0VXMzZLVitXL3hsa0M0bnFu?=
 =?utf-8?B?QzNPclJSTFdaWnIwOGErTEJCMGllYmkrVGhoRURsb0pmcHRLT3Z6K0NTN2k3?=
 =?utf-8?B?WS9jM1U3Y2V4QXV6TU0vL3YxUDhhOFRPUnBxUklsM0RDYTNzZ1pRcFJPK0Qx?=
 =?utf-8?B?a1lZOTFFTzRXOS9aN0RsYmY5WVhtbUwzKzgzYmhWMEJlS29RUjZBeUxQQW1x?=
 =?utf-8?B?TVNTZTl6SmJDT3BiZXF0MWtqY2lQZXh4d0Z0NGthbGVtc0VMQlR6dUc3RTgr?=
 =?utf-8?B?UWJ0VDhTUnIrWTZ5S0RTeDRONFIyTHJWUzNIZ1M3bHJVRFBUTTlmb0xTNWsx?=
 =?utf-8?B?OVR6TnJaU1F4bEFEM042T1M1Mk1ndktJNWVobzNmNFVVTUU1UWU5dkN4Y1Av?=
 =?utf-8?B?NHRnVys4N0w3OWFJSUd2YlFMNVNvKzM3UC9oUkUvK3U5TGJyRkJOeU9ucU5v?=
 =?utf-8?B?NzZXalhJZ3VsK0lPRWdyMkhYTjRvNVBkNDgyalJ5bkZKRE9vWVkwM3FrNHo1?=
 =?utf-8?B?aituOHlkZmx4Q2hNY0NjQ1JwMnRhUDB2WnlOd2h2dmN2ZWo4VkV2Y2hUYVhX?=
 =?utf-8?B?L3lTbGVPQWFmYXpSTHp3RkVXYjgrR3RJYXJ3ZUs1citDMWoxUVRGak43cGpp?=
 =?utf-8?Q?r6Vg=3D?=
Content-Type: multipart/mixed;
	boundary="_003_BL1PR12MB5849F0606930076AC8CC66ADE75B2BL1PR12MB5849namp_"
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82cb5602-dbe8-4e88-4285-08dd0473380b
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2024 06:11:46.4088
 (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: eWfSySQHzMR+pWSRKxruxjvig3HkbzsnZ2WmlA2lEfHsxeG+YlaVQ1NadWiknFVkvp55FcT0ZsC+Kk3MnM9IQA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7207

--_003_BL1PR12MB5849F0606930076AC8CC66ADE75B2BL1PR12MB5849namp_
Content-Type: text/plain; charset="utf-8"
Content-ID: <CD7E1C7380344748B8014EEBFF5B5ECD@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64

T24gMjAyNC8xMS8xMyAxODozMCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBO
b3YgMTMsIDIwMjQgYXQgMTA6MDA6MzNBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyNC8xMS8xMyAxNzozMCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBXZWQs
IE5vdiAxMywgMjAyNCBhdCAwNDowMDoyN1BNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+
Pj4gU29tZSBkZXZpY2VzLCBsaWtlIGRpc2NyZXRlIEdQVSBvZiBhbWQsIHN1cHBvcnQgcmVzaXph
YmxlIGJhciBjYXBhYmlsaXR5LA0KPj4+PiBidXQgdnBjaSBvZiBYZW4gZG9lc24ndCBzdXBwb3J0
IHRoaXMgZmVhdHVyZSwgc28gdGhleSBmYWlsIHRvIHJlc2l6ZSBiYXJzDQo+Pj4+IGFuZCB0aGVu
IGNhdXNlIHByb2JpbmcgZmFpbHVyZS4NCj4+Pj4NCj4+Pj4gQWNjb3JkaW5nIHRvIFBDSWUgc3Bl
YywgZWFjaCBiYXIgdGhhdCBzdXBwb3J0IHJlc2l6aW5nIGhhcyB0d28gcmVnaXN0ZXJzLA0KPj4+
PiBQQ0lfUkVCQVJfQ0FQIGFuZCBQQ0lfUkVCQVJfQ1RSTCwgc28gYWRkIHRoZXNlIHR3byByZWdp
c3RlcnMgYW5kIHRoZWlyDQo+Pj4+IGNvcnJlc3BvbmRpbmcgaGFuZGxlciBpbnRvIHZwY2kuDQo+
Pj4+DQo+Pj4+IFBDSV9SRUJBUl9DQVAgaXMgUk8sIG9ubHkgcHJvdmlkZSByZWFkaW5nLg0KPj4+
Pg0KPj4+PiBQQ0lfUkVCQVJfQ1RSTCBvbmx5IGhhcyBiYXIgc2l6ZSBpcyBSVywgc28gYWRkIHdy
aXRlIGZ1bmN0aW9uIHRvIHN1cHBvcnQNCj4+Pj4gc2V0dGluZyB0aGUgbmV3IHNpemUuDQo+Pj4N
Cj4+PiBJIHRoaW5rIHRoZSBsb2dpYyB0byBoYW5kbGUgcmVzaXphYmxlIEJBUiBjb3VsZCBiZSBt
dWNoIHNpbXBsZXIuICBTb21lDQo+Pj4gdGltZSBhZ28gSSd2ZSBtYWRlIGEgcGF0Y2ggdG8gYWRk
IHN1cHBvcnQgZm9yIGl0LCBidXQgZHVlIHRvIGxhY2sgb2YNCj4+PiBoYXJkd2FyZSBvbiBteSBz
aWRlIHRvIHRlc3QgaXQgSSd2ZSBuZXZlciBzdWJtaXR0ZWQgaXQuDQo+Pj4NCj4+PiBNeSBhcHBy
b2FjaCB3b3VsZCBiZSB0byBkZXRlY3QgdGhlIHByZXNlbmNlIG9mIHRoZQ0KPj4+IFBDSV9FWFRf
Q0FQX0lEX1JFQkFSIGNhcGFiaWxpdHkgaW4gaW5pdF9oZWFkZXIoKSwgYW5kIGlmIHRoZQ0KPj4+
IGNhcGFiaWxpdHkgaXMgcHJlc2VudCBmb3JjZSB0aGUgc2l6aW5nIG9mIEJBUnMgZWFjaCB0aW1l
IHRoZXkgYXJlDQo+Pj4gbWFwcGVkIGluIG1vZGlmeV9iYXJzKCkuICBJIGRvbid0IHRoaW5rIHdl
IG5lZWQgdG8gdHJhcCBhY2Nlc3NlcyB0bw0KPj4+IHRoZSBjYXBhYmlsaXR5IGl0c2VsZiwgYXMg
cmVzaXppbmcgY2FuIG9ubHkgaGFwcGVuIHdoZW4gbWVtb3J5DQo+Pj4gZGVjb2RpbmcgaXMgbm90
IGVuYWJsZWQgZm9yIHRoZSBkZXZpY2UuICBJdCdzIGVub3VnaCB0byBmZXRjaCB0aGUgc2l6ZQ0K
Pj4+IG9mIHRoZSBCQVJzIGFoZWFkIG9mIGVhY2ggZW5hYmxpbmcgb2YgbWVtb3J5IGRlY29kaW5n
Lg0KPj4+DQo+Pj4gTm90ZSB0aGF0IG1lbW9yeSBkZWNvZGluZyBpbXBsaWVzIG1hcHBpbmcgdGhl
IEJBUnMgaW50byB0aGUgcDJtLCB3aGljaA0KPj4+IGlzIGFscmVhZHkgYW4gZXhwZW5zaXZlIG9w
ZXJhdGlvbiwgdGhlIGV4dHJhIHNpemluZyBpcyB1bmxpa2VseSB0bw0KPj4+IG1ha2UgbXVjaCBv
ZiBhIGRpZmZlcmVuY2UgcGVyZm9ybWFuY2Ugd2lzZS4NCj4+Pg0KPj4+IEkndmUgZm91bmQgdGhl
IGZvbGxvd2luZyBvbiBteSBnaXQgdHJlZSBhbmQgcmViYXNlZCBvbiB0b3Agb2Ygc3RhZ2luZzoN
Cj4+IE9LLg0KPj4gRG8geW91IG5lZWQgbWUgdG8gdmFsaWRhdGUgeW91ciBwYXRjaCBpbiBteSBl
bnZpcm9ubWVudD8NCj4gDQo+IFllcyBwbGVhc2UsIEkgaGF2ZSBubyB3YXkgdG8gdGVzdCBpdC4g
IExldCdzIHNlZSB3aGF0IG90aGVycyB0aGluaw0KPiBhYm91dCB0aGUgZGlmZmVyZW50IGFwcHJv
YWNoZXMuDQpUaGVyZSBhcmUgc29tZSBlcnJvcnMgd2l0aCB5b3VyIG1ldGhvZC4NCkkgYXR0YWNo
ZWQgdGhlIGRtZXNnIGFuZCB4bCBkbWVzZyBsb2dzLg0KRnJvbSB0aGUgZG1lc2cgbG9ncywgaXQg
c2VlbXMgdGhhdCAwMDAwOjAzOjAwLjAgaGFzIGFkZHJlc3NlIG92ZXJsYXAgd2l0aCAwMDAwOjAz
OjAwLjENCg0KDQpJIHRoaW5rIHRoZXJlIGlzIGEgcGxhY2UgdGhhdCBuZWVkcyB0byBiZSBtb2Rp
ZmllZCByZWdhcmRpbmcgeW91ciBtZXRob2QsDQphbHRob3VnaCB0aGlzIG1vZGlmaWNhdGlvbiBk
b2VzIG5vdCBoZWxwIHdpdGggdGhlIGFib3ZlLW1lbnRpb25lZCBlcnJvcnMsDQppdCBpcyB0aGF0
IHdoZXRoZXIgdG8gc3VwcG9ydCByZXNpemluZyBpcyBzcGVjaWZpYyB0byB3aGljaCBiYXIsIHJh
dGhlciB0aGFuIGp1c3QgZGV0ZXJtaW5pbmcgd2hldGhlciB0aGVyZSBpcyBhIFJlYmFyIGNhcGFi
aWxpdHkuDQpTbywgYmFzZWQgb24geW91ciBtZXRob2QsIEkgaGF2ZSBiZWxvdyBjaGFuZ2VzOg0K
ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNp
L2hlYWRlci5jDQppbmRleCAwNDVhYTRiZGFkYzguLjUwZjE5YjE4YTIzMiAxMDA2NDQNCi0tLSBh
L3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVy
LmMNCkBAIC0zNTYsNyArMzU2LDcgQEAgc3RhdGljIGludCBtb2RpZnlfYmFycyhjb25zdCBzdHJ1
Y3QgcGNpX2RldiAqcGRldiwgdWludDE2X3QgY21kLCBib29sIHJvbV9vbmx5KQ0KDQogICAgICAg
ICBBU1NFUlQocmFuZ2VzZXRfaXNfZW1wdHkoYmFyLT5tZW0pKTsNCg0KLSAgICAgICAgaWYgKCBi
YXItPnR5cGUgIT0gVlBDSV9CQVJfUk9NICYmIGhlYWRlci0+YmFyc19yZXNpemFibGUgJiYNCisg
ICAgICAgIGlmICggYmFyLT50eXBlICE9IFZQQ0lfQkFSX1JPTSAmJiBiYXItPnJlc2l6YWJsZSAm
Jg0KICAgICAgICAgICAgICAoY21kICYgUENJX0NPTU1BTkRfTUVNT1JZKSApDQogICAgICAgICB7
DQogICAgICAgICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsNCkBAIC03NzksNiArNzc5LDggQEAg
c3RhdGljIGludCBjZl9jaGVjayBpbml0X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiAg
ICAgaW50IHJjOw0KICAgICBib29sIG1hc2tfY2FwX2xpc3QgPSBmYWxzZTsNCiAgICAgYm9vbCBp
c19od2RvbSA9IGlzX2hhcmR3YXJlX2RvbWFpbihwZGV2LT5kb21haW4pOw0KKyAgICB1bnNpZ25l
ZCBpbnQgcmViYXJfb2Zmc2V0Ow0KKyAgICB1aW50MzJfdCBjdHJsLCBjdHJsX25iYXJzOw0KDQog
ICAgIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQoJnBkZXYtPmRvbWFpbi0+cGNpX2xvY2spKTsN
Cg0KQEAgLTg5NCw4ICs4OTYsMTUgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbml0X2hlYWRlcihz
dHJ1Y3QgcGNpX2RldiAqcGRldikNCiAgICAgaWYgKCBwZGV2LT5pZ25vcmVfYmFycyApDQogICAg
ICAgICByZXR1cm4gMDsNCg0KLSAgICBoZWFkZXItPmJhcnNfcmVzaXphYmxlID0gcGNpX2ZpbmRf
ZXh0X2NhcGFiaWxpdHkocGRldi0+c2JkZiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9FWFRfQ0FQX0lEX1JFQkFSKTsNCisgICAgcmVi
YXJfb2Zmc2V0ID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGRldi0+c2JkZiwgUENJX0VYVF9D
QVBfSURfUkVCQVIpOw0KKyAgICBpZiAoIHJlYmFyX29mZnNldCApIHsNCisgICAgICAgIGN0cmwg
PSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgcmViYXJfb2Zmc2V0ICsgUENJX1JFQkFSX0NU
UkwpOw0KKyAgICAgICAgY3RybF9uYmFycyA9IChjdHJsICYgUENJX1JFQkFSX0NUUkxfTkJBUl9N
QVNLKSA+PiBQQ0lfUkVCQVJfQ1RSTF9OQkFSX1NISUZUOw0KKyAgICAgICAgZm9yICggaW50IGkg
PSAwOyBpIDwgY3RybF9uYmFyczsgaSsrLCByZWJhcl9vZmZzZXQgKz0gOCApIHsNCisgICAgICAg
ICAgICBjdHJsID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIHJlYmFyX29mZnNldCArIFBD
SV9SRUJBUl9DVFJMKTsNCisgICAgICAgICAgICBiYXJzW2N0cmwgJiBQQ0lfUkVCQVJfQ1RSTF9C
QVJfSURYXS5yZXNpemFibGUgPSB0cnVlOw0KKyAgICAgICAgfQ0KKyAgICB9DQoNCiAgICAgY21k
ID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9DT01NQU5EKTsNCg0KZGlmZiAtLWdp
dCBhL3hlbi9pbmNsdWRlL3hlbi9wY2lfcmVncy5oIGIveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdz
LmgNCmluZGV4IGM1NDNhMmI4Njc3OC4uN2NlMzYwYjhhYzY5IDEwMDY0NA0KLS0tIGEveGVuL2lu
Y2x1ZGUveGVuL3BjaV9yZWdzLmgNCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wY2lfcmVncy5oDQpA
QCAtNjE3LDQgKzYxNywxMCBAQA0KICNkZWZpbmUgIFBDSV9TUklPVl9WRk1fTU8gICAgICAweDIg
ICAgIC8qIEFjdGl2ZS5NaWdyYXRlT3V0ICovDQogI2RlZmluZSAgUENJX1NSSU9WX1ZGTV9BViAg
ICAgIDB4MyAgICAgLyogQWN0aXZlLkF2YWlsYWJsZSAqLw0KDQorLyogUmVzaXphYmxlIEJBUnMg
Q1RSTCAqLw0KKyNkZWZpbmUgUENJX1JFQkFSX0NUUkwgICAgICAgICA4ICAgICAgIC8qIGNvbnRy
b2wgcmVnaXN0ZXIgKi8NCisjZGVmaW5lICBQQ0lfUkVCQVJfQ1RSTF9CQVJfSURYICAgICAgICAg
ICAgICAgIDB4MDAwMDAwMDcgIC8qIEJBUiBpbmRleCAqLw0KKyNkZWZpbmUgIFBDSV9SRUJBUl9D
VFJMX05CQVJfTUFTSyAgICAgIDB4MDAwMDAwRTAgIC8qICMgb2YgcmVzaXphYmxlIEJBUnMgKi8N
CisjZGVmaW5lICBQQ0lfUkVCQVJfQ1RSTF9OQkFSX1NISUZUICAgICA1ICAgICAgICAgICAvKiBz
aGlmdCBmb3IgIyBvZiBCQVJzICovDQorDQogI2VuZGlmIC8qIExJTlVYX1BDSV9SRUdTX0ggKi8N
CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oIGIveGVuL2luY2x1ZGUveGVuL3Zw
Y2kuaA0KaW5kZXggNDVlYmMxYmIzMzU2Li5kMWQ2ZTE4MmRhNzUgMTAwNjQ0DQotLS0gYS94ZW4v
aW5jbHVkZS94ZW4vdnBjaS5oDQorKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQpAQCAtMTEy
LDYgKzExMiw4IEBAIHN0cnVjdCB2cGNpIHsNCiAgICAgICAgICAgICBib29sIHByZWZldGNoYWJs
ZSA6IDE7DQogICAgICAgICAgICAgLyogU3RvcmUgd2hldGhlciB0aGUgQkFSIGlzIG1hcHBlZCBp
bnRvIGd1ZXN0IHAybS4gKi8NCiAgICAgICAgICAgICBib29sIGVuYWJsZWQgICAgICA6IDE7DQor
ICAgICAgICAgICAgLyogQmFyIFJlc2l6YWJsZS4gKi8NCisgICAgICAgICAgICBib29sIHJlc2l6
YWJsZSAgICA6IDE7DQogICAgICAgICB9IGJhcnNbUENJX0hFQURFUl9OT1JNQUxfTlJfQkFSUyAr
IDFdOw0KICAgICAgICAgLyogQXQgbW9zdCA2IEJBUlMgKyAxIGV4cGFuc2lvbiBST00gQkFSLiAq
Lw0KDQpAQCAtMTI5LDggKzEzMSw2IEBAIHN0cnVjdCB2cGNpIHsNCiAgICAgICAgICAqIHVwb24g
dG8ga25vdyB3aGV0aGVyIEJBUnMgYXJlIG1hcHBlZCBpbnRvIHRoZSBndWVzdCBwMm0uDQogICAg
ICAgICAgKi8NCiAgICAgICAgIGJvb2wgYmFyc19tYXBwZWQgICAgICA6IDE7DQotICAgICAgICAv
KiBEZXZpY2UgaGFzIHRoZSBSZXNpemFibGUgQkFScyBjYXBhYmlsaXR5LiAqLw0KLSAgICAgICAg
Ym9vbCBiYXJzX3Jlc2l6YWJsZSAgIDogMTsNCiAgICAgICAgIC8qIEZJWE1FOiBjdXJyZW50bHkg
dGhlcmUncyBubyBzdXBwb3J0IGZvciBTUi1JT1YuICovDQogICAgIH0gaGVhZGVyOw0KDQoNCj4g
DQo+PiBBbmQgSSBoYXZlIG9uZSBxdWVzdGlvbjogd2hlcmUgZG9lcyB5b3VyIHBhdGNoIGRvIHdy
aXRpbmcgdGhlIHJlc2l6aW5nIHNpemUgaW50byBoYXJkd2FyZT8NCj4gDQo+IGRvbTAgaGFzIHVu
cmVzdHJpY3RlZCBhY2Nlc3MgdG8gdGhlIHJlc2l6ZSBjYXBhYmlsaXR5LCBzbyB0aGUgdmFsdWUN
Cj4gd3JpdHRlbiBieSBkb20wIGlzIHByb3BhZ2F0ZWQgdG8gdGhlIGhhcmR3YXJlIHdpdGhvdXQg
bW9kaWZpY2F0aW9uLg0KPiANCj4gSSB3b3VsZCBiZSB3YXJ5IG9mIGV4cG9zaW5nIHRoZSByZXNp
emUgY2FwYWJpbGl0eSB0byB1bnRydXN0ZWQNCj4gZG9tYWlucywgYXMgYWxsb3dpbmcgYSBkb21V
IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiBCQVJzIGNhbiBsZWFkIHRvDQo+IG92ZXJsYXBwaW5nIGlm
IHRoZSBoYXJkd2FyZSBkb21haW4gaGFzbid0IGFjY291bnRlZCBmb3IgdGhlIGluY3JlYXNlDQo+
IGluIEJBUiBzaXplLg0KPiANCj4gVGhhbmtzLCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMs
DQpKaXFpYW4gQ2hlbi4NCg==

--_003_BL1PR12MB5849F0606930076AC8CC66ADE75B2BL1PR12MB5849namp_
Content-Type: text/plain; name="rebar_dmesg.txt"
Content-Description: rebar_dmesg.txt
Content-Disposition: attachment; filename="rebar_dmesg.txt"; size=534026;
	creation-date="Thu, 14 Nov 2024 03:18:55 GMT";
	modification-date="Thu, 14 Nov 2024 06:11:45 GMT"
Content-Transfer-Encoding: base64

WyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiA2LjEyLjAtcmM1LWc1YzY4MDhkMWE5ZGQgKGNq
cUBjanEtZGVza3RvcCkgKGdjYyAoVWJ1bnR1IDExLjQuMC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4w
LCBHTlUgbGQgKEdOVSBCaW51dGlscyBmb3IgVWJ1bnR1KSAyLjM4KSAjMiBTTVAgUFJFRU1QVF9E
WU5BTUlDIFR1ZSBOb3YgMTIgMTc6MjQ6MjQgQ1NUIDIwMjQKWyAgICAwLjAwMDAwMF0gQ29tbWFu
ZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVVSUQ9YTQ5ZmU0MjEtOTQwZC00MmJkLWIzNDMtNjY1
ZmVhMGQ4OGEyIHJvIHF1aWV0IHNwbGFzaCBpb21tdS5wYXNzdGhyb3VnaD0xClsgICAgMC4wMDAw
MDBdIEtFUk5FTCBzdXBwb3J0ZWQgY3B1czoKWyAgICAwLjAwMDAwMF0gICBJbnRlbCBHZW51aW5l
SW50ZWwKWyAgICAwLjAwMDAwMF0gICBBTUQgQXV0aGVudGljQU1EClsgICAgMC4wMDAwMDBdICAg
SHlnb24gSHlnb25HZW51aW5lClsgICAgMC4wMDAwMDBdICAgQ2VudGF1ciBDZW50YXVySGF1bHMK
WyAgICAwLjAwMDAwMF0gICB6aGFveGluICAgU2hhbmdoYWkgIApbICAgIDAuMDAwMDAwXSBbRmly
bXdhcmUgQnVnXTogVFNDIGRvZXNuJ3QgY291bnQgd2l0aCBQMCBmcmVxdWVuY3khClsgICAgMC4w
MDAwMDBdIEJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKWyAgICAwLjAwMDAwMF0gQklP
Uy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwOWVmZmZdIHVzYWJs
ZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMDlmMDAwLTB4MDAw
MDAwMDAwMDBmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDAwMDEwMDAwMC0weDAwMDAwMDAwMDlhZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAw
XSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDA5YjAwMDAwLTB4MDAwMDAwMDAwOWRmZmZmZl0g
cmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAw
MC0weDAwMDAwMDAwMDllZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt
ZW0gMHgwMDAwMDAwMDA5ZjAwMDAwLTB4MDAwMDAwMDAwOWYwZmZmZl0gQUNQSSBOVlMKWyAgICAw
LjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWYxMDAwMC0weDAwMDAwMDAwYmI0
NjVmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGJi
NDY2MDAwLTB4MDAwMDAwMDBiYzU2NWZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1l
ODIwOiBbbWVtIDB4MDAwMDAwMDBiYzU2NjAwMC0weDAwMDAwMDAwYzg3N2VmZmZdIHVzYWJsZQpb
ICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGM4NzdmMDAwLTB4MDAwMDAw
MDBjYWY3ZWZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAw
MDAwMDBjYWY3ZjAwMC0weDAwMDAwMDAwY2NmN2VmZmZdIEFDUEkgTlZTClsgICAgMC4wMDAwMDBd
IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2NmN2YwMDAtMHgwMDAwMDAwMGNjZmZlZmZmXSBB
Q1BJIGRhdGEKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjY2ZmZjAw
MC0weDAwMDAwMDAwY2NmZmZkZDddIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt
ZW0gMHgwMDAwMDAwMGNjZmZmZGQ4LTB4MDAwMDAwMDBjY2ZmZmVlZl0gQUNQSSBkYXRhClsgICAg
MC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2QwMDAwMDAtMHgwMDAwMDAwMGNk
ZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAw
MGYwMDAwMDAwLTB4MDAwMDAwMDBmN2ZmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklP
Uy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZGUwMDAwMC0weDAwMDAwMDAwZmRlZmZmZmZdIHJlc2Vy
dmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwZmVjMDAwMDAtMHgw
MDAwMDAwMGZlYzAxZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0g
MHgwMDAwMDAwMGZlYzEwMDAwLTB4MDAwMDAwMDBmZWMxMGZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAw
MDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZWMyMDAwMC0weDAwMDAwMDAwZmVjMjBm
ZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwZmVk
ODAwMDAtMHgwMDAwMDAwMGZlZDgxZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4
MjA6IFttZW0gMHgwMDAwMDAwMGZlZGMwMDAwLTB4MDAwMDAwMDBmZWRkZmZmZl0gcmVzZXJ2ZWQK
WyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZWUwMDAwMC0weDAwMDAw
MDAwZmVlMDBmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAw
MDAwMDAwZmYwMDAwMDAtMHgwMDAwMDAwMGZmZjFmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAw
XSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMTAwMDAwMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0g
dXNhYmxlClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDA4MGYzNDAwMDAt
MHgwMDAwMDAwODJmZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBOWCAoRXhlY3V0ZSBE
aXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUKWyAgICAwLjAwMDAwMF0gQVBJQzogU3RhdGljIGNh
bGxzIGluaXRpYWxpemVkClsgICAgMC4wMDAwMDBdIGVmaTogRUZJIHYyLjcgYnkgSU5TWURFIENv
cnAuClsgICAgMC4wMDAwMDBdIGVmaTogQUNQST0weGNjZmZlMDAwIEFDUEkgMi4wPTB4Y2NmZmUw
MTQgVFBNRmluYWxMb2c9MHhjY2Y2MDAwMCBTTUJJT1M9MHhjOTY4YjAwMCBTTUJJT1MgMy4wPTB4
Yzk2ODkwMDAgRVNSVD0weGM5ODJhMjE4IChNRU1BVFRSPTB4YzMyYWYwMTggdW51c2FibGUpIE1P
S3Zhcj0weGM5ODUzMDAwIApbICAgIDAuMDAwMDAwXSBTTUJJT1MgMy4xLjEgcHJlc2VudC4KWyAg
ICAwLjAwMDAwMF0gRE1JOiBBTUQgQ2VsYWRvbi1STi9DZWxhZG9uLVJOLCBCSU9TIFRDUjAwODBC
IDAzLzEwLzIwMjMKWyAgICAwLjAwMDAwMF0gRE1JOiBNZW1vcnkgc2xvdHMgcG9wdWxhdGVkOiAy
LzIKWyAgICAwLjAwMDAwMF0gSHlwZXJ2aXNvciBkZXRlY3RlZDogWGVuIEhWTQpbICAgIDAuMDAw
MDAwXSBYZW4gdmVyc2lvbiA0LjIwLgpbICAgIDAuMDAwMDEyXSBIVk1PUF9wYWdldGFibGVfZHlp
bmcgbm90IHN1cHBvcnRlZApbICAgIDAuMTYxODY5XSB0c2M6IEZhc3QgVFNDIGNhbGlicmF0aW9u
IGZhaWxlZApbICAgIDAuMTYxODc1XSB0c2M6IERldGVjdGVkIDI5OTQuMzg0IE1IeiBwcm9jZXNz
b3IKWyAgICAwLjE2MTk2N10gZTgyMDogdXBkYXRlIFttZW0gMHgwMDAwMDAwMC0weDAwMDAwZmZm
XSB1c2FibGUgPT0+IHJlc2VydmVkClsgICAgMC4xNjE5NzNdIGU4MjA6IHJlbW92ZSBbbWVtIDB4
MDAwYTAwMDAtMHgwMDBmZmZmZl0gdXNhYmxlClsgICAgMC4xNjE5ODRdIGxhc3RfcGZuID0gMHg4
MGYzNDAgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAwLjE2MjE1MF0gTVRSUiBtYXA6
IDUgZW50cmllcyAoNCBmaXhlZCArIDEgdmFyaWFibGU7IG1heCAyMSksIGJ1aWx0IGZyb20gOSB2
YXJpYWJsZSBNVFJScwpbICAgIDAuMTYyMTU0XSB4ODYvUEFUOiBDb25maWd1cmF0aW9uIFswLTdd
OiBXQiAgV0MgIFVDLSBVQyAgV0IgIFdQICBVQy0gV1QgIApbICAgIDAuMTYyODYzXSBDUFUgTVRS
UnMgYWxsIGJsYW5rIC0gdmlydHVhbGl6ZWQgc3lzdGVtLgpbICAgIDAuMTYyODcyXSBsYXN0X3Bm
biA9IDB4Y2NmZmYgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAwLjE2ODc2Nl0gZXNy
dDogUmVzZXJ2aW5nIEVTUlQgc3BhY2UgZnJvbSAweDAwMDAwMDAwYzk4MmEyMTggdG8gMHgwMDAw
MDAwMGM5ODJhMjUwLgpbICAgIDAuMTY4Nzg0XSBVc2luZyBHQiBwYWdlcyBmb3IgZGlyZWN0IG1h
cHBpbmcKWyAgICAwLjE3MDUzMl0gU2VjdXJlIGJvb3QgZGlzYWJsZWQKWyAgICAwLjE3MDUzNl0g
UkFNRElTSzogW21lbSAweDA0ODAwMDAwLTB4MDgxMGJmZmZdClsgICAgMC4xNzA1NDVdIEFDUEk6
IEVhcmx5IHRhYmxlIGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBkaXNhYmxlZApbICAgIDAuMTcwNTUy
XSBBQ1BJOiBSU0RQIDB4MDAwMDAwMDBDQ0ZGRkREOCAwMDAwMjQgKHYwMiBBTUQgICApClsgICAg
MC4xNzA1NThdIEFDUEk6IFhTRFQgMHgwMDAwMDAwMENDRkZGREZDIDAwMDBFQyAodjAxIEFNRCAg
ICBDZWxhZG9uICAwMDAwMDAwMiAgICAgIDAxMDAwMDEzKQpbICAgIDAuMTcwNTY2XSBBQ1BJOiBB
UElDIDB4MDAwMDAwMDBDQ0ZGRkVFOCAwMDAxMTggKHYwNCBBTUQgICAgQ2VsYWRvbiAgMDAwMDAw
MDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MDU3Ml0gQUNQSTogRkFDUCAweDAwMDAwMDAwQ0NG
RTYwMDAgMDAwMTE0ICh2MDYgQU1EICAgIENlbGFkb24gIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDAp
ClsgICAgMC4xNzA2NDZdIEFDUEk6IERTRFQgMHgwMDAwMDAwMENDRkQ0MDAwIDAwOTBCRiAodjAx
IEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTcwNjUxXSBB
Q1BJOiBGQUNTIDB4MDAwMDAwMDBDQ0VGMTAwMCAwMDAwNDAKWyAgICAwLjE3MDY1N10gQUNQSTog
U1NEVCAweDAwMDAwMDAwQ0NGRjUwMDAgMDA3MjNDICh2MDIgQU1EICAgIENlbGFkb24gIDAwMDAw
MDAyIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzA2NjNdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMEND
RkYwMDAwIDAwMzc0QSAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAw
KQpbICAgIDAuMTcwNjY4XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQ0ZFRjAwMCAwMDAyMjggKHYw
MSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MDY3NF0g
QUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRUIwMDAgMDAwNDZEICh2MDEgQU1EICAgIENlbGFkb24g
IDAwMDAxMDAwIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzA2NzldIEFDUEk6IE1DRkcgMHgwMDAw
MDAwMENDRkUzMDAwIDAwMDAzQyAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAw
MDQwMDAwKQpbICAgIDAuMTcwNjg0XSBBQ1BJOiBTTElDIDB4MDAwMDAwMDBDQ0ZFMjAwMCAwMDAx
NzYgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3
MDY5MF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRkQwMDAgMDAwMDgwICh2MDEgQU1EICAgIENl
bGFkb24gIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzA2OTVdIEFDUEk6IFNTRFQg
MHgwMDAwMDAwMENDRkM1MDAwIDAwMDE2NCAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMTAwMCBB
Q1BJIDAwMDQwMDAwKQpbICAgIDAuMTcwNzAxXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQ0ZDMjAw
MCAwMDJCODAgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAg
ICAwLjE3MDcwN10gQUNQSTogVkZDVCAweDAwMDAwMDAwQ0NGQTcwMDAgMDE4Q0EwICh2MDEgQU1E
ICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzA3MTJdIEFDUEk6
IFNTRFQgMHgwMDAwMDAwMENDRkQzMDAwIDAwMDEzOSAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAw
MDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTcwNzE3XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBD
Q0ZFRDAwMCAwMDAyOEQgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAw
MCkKWyAgICAwLjE3MDcyMl0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRDIwMDAgMDAwRDM3ICh2
MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzA3Mjdd
IEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRkQwMDAwIDAwMTBBQiAodjAxIEFNRCAgICBDZWxhZG9u
ICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTcwNzMzXSBBQ1BJOiBTU0RUIDB4MDAw
MDAwMDBDQ0ZDRjAwMCAwMDAxNzkgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAw
MDA0MDAwMCkKWyAgICAwLjE3MDczOF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGQ0QwMDAgMDAx
NTRGICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4x
NzA3NDNdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRkNCMDAwIDAwMTBCMyAodjAxIEFNRCAgICBD
ZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTcwNzQ5XSBBQ1BJOiBTU0RU
IDB4MDAwMDAwMDBDQ0ZDQTAwMCAwMDAxQzAgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEg
QUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MDc1NF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGQzYw
MDAgMDAzMEM4ICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsg
ICAgMC4xNzA3NjBdIEFDUEk6IEZQRFQgMHgwMDAwMDAwMENDRjk1MDAwIDAwMDA0NCAodjAxIEFN
RCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTcwNzY1XSBBQ1BJ
OiBTU0RUIDB4MDAwMDAwMDBDQ0ZFMTAwMCAwMDAwN0QgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAw
MDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MDc3MF0gQUNQSTogU1NEVCAweDAwMDAwMDAw
Q0NGRTAwMDAgMDAwRjk2ICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAw
MDApClsgICAgMC4xNzA3NzVdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRjkzMDAwIDAwMDUxNyAo
djAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTcwNzc4
XSBBQ1BJOiBSZXNlcnZpbmcgQVBJQyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmZmZWU4LTB4
Y2NmZmZmZmZdClsgICAgMC4xNzA3ODBdIEFDUEk6IFJlc2VydmluZyBGQUNQIHRhYmxlIG1lbW9y
eSBhdCBbbWVtIDB4Y2NmZTYwMDAtMHhjY2ZlNjExM10KWyAgICAwLjE3MDc4MV0gQUNQSTogUmVz
ZXJ2aW5nIERTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkNDAwMC0weGNjZmRkMGJlXQpb
ICAgIDAuMTcwNzgyXSBBQ1BJOiBSZXNlcnZpbmcgRkFDUyB0YWJsZSBtZW1vcnkgYXQgW21lbSAw
eGNjZWYxMDAwLTB4Y2NlZjEwM2ZdClsgICAgMC4xNzA3ODNdIEFDUEk6IFJlc2VydmluZyBTU0RU
IHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZjUwMDAtMHhjY2ZmYzIzYl0KWyAgICAwLjE3MDc4
NF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZmMDAwMC0w
eGNjZmYzNzQ5XQpbICAgIDAuMTcwNzg1XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1v
cnkgYXQgW21lbSAweGNjZmVmMDAwLTB4Y2NmZWYyMjddClsgICAgMC4xNzA3ODZdIEFDUEk6IFJl
c2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZWIwMDAtMHhjY2ZlYjQ2Y10K
WyAgICAwLjE3MDc4N10gQUNQSTogUmVzZXJ2aW5nIE1DRkcgdGFibGUgbWVtb3J5IGF0IFttZW0g
MHhjY2ZlMzAwMC0weGNjZmUzMDNiXQpbICAgIDAuMTcwNzg4XSBBQ1BJOiBSZXNlcnZpbmcgU0xJ
QyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmUyMDAwLTB4Y2NmZTIxNzVdClsgICAgMC4xNzA3
ODldIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZmQwMDAt
MHhjY2ZmZDA3Zl0KWyAgICAwLjE3MDc5MF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVt
b3J5IGF0IFttZW0gMHhjY2ZjNTAwMC0weGNjZmM1MTYzXQpbICAgIDAuMTcwNzkxXSBBQ1BJOiBS
ZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmMyMDAwLTB4Y2NmYzRiN2Zd
ClsgICAgMC4xNzA3OTJdIEFDUEk6IFJlc2VydmluZyBWRkNUIHRhYmxlIG1lbW9yeSBhdCBbbWVt
IDB4Y2NmYTcwMDAtMHhjY2ZiZmM5Zl0KWyAgICAwLjE3MDc5M10gQUNQSTogUmVzZXJ2aW5nIFNT
RFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkMzAwMC0weGNjZmQzMTM4XQpbICAgIDAuMTcw
Nzk0XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmVkMDAw
LTB4Y2NmZWQyOGNdClsgICAgMC4xNzA3OTVdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1l
bW9yeSBhdCBbbWVtIDB4Y2NmZDIwMDAtMHhjY2ZkMmQzNl0KWyAgICAwLjE3MDc5Nl0gQUNQSTog
UmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkMDAwMC0weGNjZmQxMGFh
XQpbICAgIDAuMTcwNzk3XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21l
bSAweGNjZmNmMDAwLTB4Y2NmY2YxNzhdClsgICAgMC4xNzA3OThdIEFDUEk6IFJlc2VydmluZyBT
U0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmY2QwMDAtMHhjY2ZjZTU0ZV0KWyAgICAwLjE3
MDc5OF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZjYjAw
MC0weGNjZmNjMGIyXQpbICAgIDAuMTcwNzk5XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBt
ZW1vcnkgYXQgW21lbSAweGNjZmNhMDAwLTB4Y2NmY2ExYmZdClsgICAgMC4xNzA4MDBdIEFDUEk6
IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmYzYwMDAtMHhjY2ZjOTBj
N10KWyAgICAwLjE3MDgwMV0gQUNQSTogUmVzZXJ2aW5nIEZQRFQgdGFibGUgbWVtb3J5IGF0IFtt
ZW0gMHhjY2Y5NTAwMC0weGNjZjk1MDQzXQpbICAgIDAuMTcwODAyXSBBQ1BJOiBSZXNlcnZpbmcg
U1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmUxMDAwLTB4Y2NmZTEwN2NdClsgICAgMC4x
NzA4MDNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZTAw
MDAtMHhjY2ZlMGY5NV0KWyAgICAwLjE3MDgwNF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHhjY2Y5MzAwMC0weGNjZjkzNTE2XQpbICAgIDAuMTcxMDg4XSBObyBO
VU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKWyAgICAwLjE3MTA4OV0gRmFraW5nIGEgbm9kZSBhdCBb
bWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZdClsgICAgMC4xNzExMDNd
IE5PREVfREFUQSgwKSBhbGxvY2F0ZWQgW21lbSAweDFiOGNjNWEwMC0weDFiOGNlZmZmZl0KWyAg
ICAwLjE3MTM4M10gWm9uZSByYW5nZXM6ClsgICAgMC4xNzEzODRdICAgRE1BICAgICAgW21lbSAw
eDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAwZmZmZmZmXQpbICAgIDAuMTcxMzg3XSAgIERN
QTMyICAgIFttZW0gMHgwMDAwMDAwMDAxMDAwMDAwLTB4MDAwMDAwMDBmZmZmZmZmZl0KWyAgICAw
LjE3MTM4OV0gICBOb3JtYWwgICBbbWVtIDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDA4MGYz
M2ZmZmZdClsgICAgMC4xNzEzOTBdICAgRGV2aWNlICAgZW1wdHkKWyAgICAwLjE3MTM5MV0gTW92
YWJsZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKWyAgICAwLjE3MTM5NF0gRWFybHkgbWVtb3J5
IG5vZGUgcmFuZ2VzClsgICAgMC4xNzEzOTVdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDAw
MDAxMDAwLTB4MDAwMDAwMDAwMDA5ZWZmZl0KWyAgICAwLjE3MTM5N10gICBub2RlICAgMDogW21l
bSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAwMDA5YWZmZmZmXQpbICAgIDAuMTcxMzk4XSAg
IG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAwMC0weDAwMDAwMDAwMDllZmZmZmZdClsg
ICAgMC4xNzEzOTldICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDA5ZjEwMDAwLTB4MDAwMDAw
MDBiYjQ2NWZmZl0KWyAgICAwLjE3MTQwMF0gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwYmM1
NjYwMDAtMHgwMDAwMDAwMGM4NzdlZmZmXQpbICAgIDAuMTcxNDAxXSAgIG5vZGUgICAwOiBbbWVt
IDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZdClsgICAgMC4xNzE0MDZdIElu
aXRtZW0gc2V0dXAgbm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDgwZjMz
ZmZmZl0KWyAgICAwLjE3MTQxM10gT24gbm9kZSAwLCB6b25lIERNQTogMSBwYWdlcyBpbiB1bmF2
YWlsYWJsZSByYW5nZXMKWyAgICAwLjE3MTQ1OV0gT24gbm9kZSAwLCB6b25lIERNQTogOTcgcGFn
ZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC4xNzE5MjNdIE9uIG5vZGUgMCwgem9uZSBE
TUEzMjogNzY4IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMTgwMjQ0XSBPbiBu
b2RlIDAsIHpvbmUgRE1BMzI6IDE2IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAu
MTgwODk2XSBPbiBub2RlIDAsIHpvbmUgRE1BMzI6IDQzNTIgcGFnZXMgaW4gdW5hdmFpbGFibGUg
cmFuZ2VzClsgICAgMC4yNjUyMDldIE9uIG5vZGUgMCwgem9uZSBOb3JtYWw6IDMwODQ5IHBhZ2Vz
IGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMjY1MjczXSBPbiBub2RlIDAsIHpvbmUgTm9y
bWFsOiAzMjY0IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMjY2NzI3XSBBQ1BJ
OiBQTS1UaW1lciBJTyBQb3J0OiAweDQwOApbICAgIDAuMjY2ODQ1XSBJT0FQSUNbMF06IGFwaWNf
aWQgMzMsIHZlcnNpb24gMTcsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMKWyAgICAwLjI2
NjkwOV0gSU9BUElDWzFdOiBhcGljX2lkIDM0LCB2ZXJzaW9uIDE3LCBhZGRyZXNzIDB4ZmVjMDEw
MDAsIEdTSSAyNC01NQpbICAgIDAuMjY2OTEzXSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVz
X2lycSAwIGdsb2JhbF9pcnEgMiBkZmwgZGZsKQpbICAgIDAuMjY2OTE2XSBBQ1BJOiBJTlRfU1JD
X09WUiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpClsgICAgMC4yNjY5
MjFdIEFDUEk6IFVzaW5nIEFDUEkgKE1BRFQpIGZvciBTTVAgY29uZmlndXJhdGlvbiBpbmZvcm1h
dGlvbgpbICAgIDAuMjY2OTI5XSBDUFUgdG9wbzogTWF4LiBsb2dpY2FsIHBhY2thZ2VzOiAgIDEK
WyAgICAwLjI2NjkzMV0gQ1BVIHRvcG86IE1heC4gbG9naWNhbCBkaWVzOiAgICAgICAxClsgICAg
MC4yNjY5MzFdIENQVSB0b3BvOiBNYXguIGRpZXMgcGVyIHBhY2thZ2U6ICAgMQpbICAgIDAuMjY2
OTM3XSBDUFUgdG9wbzogTWF4LiB0aHJlYWRzIHBlciBjb3JlOiAgIDEKWyAgICAwLjI2NjkzOV0g
Q1BVIHRvcG86IE51bS4gY29yZXMgcGVyIHBhY2thZ2U6ICAgIDEyClsgICAgMC4yNjY5NDBdIENQ
VSB0b3BvOiBOdW0uIHRocmVhZHMgcGVyIHBhY2thZ2U6ICAxMgpbICAgIDAuMjY2OTQxXSBDUFUg
dG9wbzogQWxsb3dpbmcgMTIgcHJlc2VudCBDUFVzIHBsdXMgMCBob3RwbHVnIENQVXMKWyAgICAw
LjI2Njk4M10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0g
MHgwMDAwMDAwMC0weDAwMDAwZmZmXQpbICAgIDAuMjY2OTg2XSBQTTogaGliZXJuYXRpb246IFJl
Z2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDAwMDlmMDAwLTB4MDAwZmZmZmZdClsgICAg
MC4yNjY5ODhdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVt
IDB4MDliMDAwMDAtMHgwOWRmZmZmZl0KWyAgICAwLjI2Njk5MV0gUE06IGhpYmVybmF0aW9uOiBS
ZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHgwOWYwMDAwMC0weDA5ZjBmZmZmXQpbICAg
IDAuMjY2OTkzXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21l
bSAweGJiNDY2MDAwLTB4YmM1NjVmZmZdClsgICAgMC4yNjY5OTVdIFBNOiBoaWJlcm5hdGlvbjog
UmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Yzg3N2YwMDAtMHhjYWY3ZWZmZl0KWyAg
ICAwLjI2Njk5Nl0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFtt
ZW0gMHhjYWY3ZjAwMC0weGNjZjdlZmZmXQpbICAgIDAuMjY2OTk3XSBQTTogaGliZXJuYXRpb246
IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjZjdmMDAwLTB4Y2NmZmVmZmZdClsg
ICAgMC4yNjY5OTddIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBb
bWVtIDB4Y2NmZmYwMDAtMHhjY2ZmZmZmZl0KWyAgICAwLjI2NzAwMF0gUE06IGhpYmVybmF0aW9u
OiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhjY2ZmZjAwMC0weGNjZmZmZmZmXQpb
ICAgIDAuMjY3MDAwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTog
W21lbSAweGNkMDAwMDAwLTB4Y2RmZmZmZmZdClsgICAgMC4yNjcwMDFdIFBNOiBoaWJlcm5hdGlv
bjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Y2UwMDAwMDAtMHhlZmZmZmZmZl0K
WyAgICAwLjI2NzAwMl0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6
IFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXQpbICAgIDAuMjY3MDAzXSBQTTogaGliZXJuYXRp
b246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGY4MDAwMDAwLTB4ZmRkZmZmZmZd
ClsgICAgMC4yNjcwMDRdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5
OiBbbWVtIDB4ZmRlMDAwMDAtMHhmZGVmZmZmZl0KWyAgICAwLjI2NzAwNF0gUE06IGhpYmVybmF0
aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZGYwMDAwMC0weGZlYmZmZmZm
XQpbICAgIDAuMjY3MDA1XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9y
eTogW21lbSAweGZlYzAwMDAwLTB4ZmVjMDFmZmZdClsgICAgMC4yNjcwMDZdIFBNOiBoaWJlcm5h
dGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmVjMDIwMDAtMHhmZWMwZmZm
Zl0KWyAgICAwLjI2NzAwN10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1v
cnk6IFttZW0gMHhmZWMxMDAwMC0weGZlYzEwZmZmXQpbICAgIDAuMjY3MDA3XSBQTTogaGliZXJu
YXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZlYzExMDAwLTB4ZmVjMWZm
ZmZdClsgICAgMC4yNjcwMDhdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVt
b3J5OiBbbWVtIDB4ZmVjMjAwMDAtMHhmZWMyMGZmZl0KWyAgICAwLjI2NzAwOV0gUE06IGhpYmVy
bmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWMyMTAwMC0weGZlZDdm
ZmZmXQpbICAgIDAuMjY3MDEwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1l
bW9yeTogW21lbSAweGZlZDgwMDAwLTB4ZmVkODFmZmZdClsgICAgMC4yNjcwMTFdIFBNOiBoaWJl
cm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmVkODIwMDAtMHhmZWRi
ZmZmZl0KWyAgICAwLjI2NzAxMV0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBt
ZW1vcnk6IFttZW0gMHhmZWRjMDAwMC0weGZlZGRmZmZmXQpbICAgIDAuMjY3MDEyXSBQTTogaGli
ZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZlZGUwMDAwLTB4ZmVk
ZmZmZmZdClsgICAgMC4yNjcwMTNdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUg
bWVtb3J5OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0KWyAgICAwLjI2NzAxNF0gUE06IGhp
YmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWUwMTAwMC0weGZl
ZmZmZmZmXQpbICAgIDAuMjY3MDE1XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZl
IG1lbW9yeTogW21lbSAweGZmMDAwMDAwLTB4ZmZmMWZmZmZdClsgICAgMC4yNjcwMTVdIFBNOiBo
aWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmZmMjAwMDAtMHhm
ZmZmZmZmZl0KWyAgICAwLjI2NzAxOF0gW21lbSAweGNlMDAwMDAwLTB4ZWZmZmZmZmZdIGF2YWls
YWJsZSBmb3IgUENJIGRldmljZXMKWyAgICAwLjI2NzAzNF0gQm9vdGluZyBrZXJuZWwgb24gWGVu
IFBWSApbICAgIDAuMjY3MDM2XSBYZW4gdmVyc2lvbjogNC4yMC11bnN0YWJsZQpbICAgIDAuMjY3
MDQwXSBjbG9ja3NvdXJjZTogcmVmaW5lZC1qaWZmaWVzOiBtYXNrOiAweGZmZmZmZmZmIG1heF9j
eWNsZXM6IDB4ZmZmZmZmZmYsIG1heF9pZGxlX25zOiA3NjQ1NTE5NjAwMjExNTY4IG5zClsgICAg
MC4yNjcwNjJdIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo4MTkyIG5yX2NwdW1hc2tfYml0czoxMiBu
cl9jcHVfaWRzOjEyIG5yX25vZGVfaWRzOjEKWyAgICAwLjI2ODc0Ml0gcGVyY3B1OiBFbWJlZGRl
ZCA2NiBwYWdlcy9jcHUgczIzMzQ3MiByODE5MiBkMjg2NzIgdTUyNDI4OApbICAgIDAuMjY4NzU4
XSBwY3B1LWFsbG9jOiBzMjMzNDcyIHI4MTkyIGQyODY3MiB1NTI0Mjg4IGFsbG9jPTEqMjA5NzE1
MgpbICAgIDAuMjY4NzYyXSBwY3B1LWFsbG9jOiBbMF0gMDAgMDEgMDIgMDMgWzBdIDA0IDA1IDA2
IDA3IApbICAgIDAuMjY4NzY4XSBwY3B1LWFsbG9jOiBbMF0gMDggMDkgMTAgMTEgClsgICAgMC4y
Njg4NDddIHhlbjogUFYgc3BpbmxvY2tzIGVuYWJsZWQKWyAgICAwLjI2ODg1Ml0gUFYgcXNwaW5s
b2NrIGhhc2ggdGFibGUgZW50cmllczogMjU2IChvcmRlcjogMCwgNDA5NiBieXRlcywgbGluZWFy
KQpbICAgIDAuMjY4ODU0XSBLZXJuZWwgY29tbWFuZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVV
SUQ9YTQ5ZmU0MjEtOTQwZC00MmJkLWIzNDMtNjY1ZmVhMGQ4OGEyIHJvIHF1aWV0IHNwbGFzaCBp
b21tdS5wYXNzdGhyb3VnaD0xClsgICAgMC4yNjg5ODVdIFVua25vd24ga2VybmVsIGNvbW1hbmQg
bGluZSBwYXJhbWV0ZXJzICJwbGFjZWhvbGRlciBzcGxhc2giLCB3aWxsIGJlIHBhc3NlZCB0byB1
c2VyIHNwYWNlLgpbICAgIDAuMjY5MDEwXSByYW5kb206IGNybmcgaW5pdCBkb25lClsgICAgMC4y
NzA1NjVdIERlbnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDEwNDg1NzYgKG9yZGVyOiAx
MSwgODM4ODYwOCBieXRlcywgbGluZWFyKQpbICAgIDAuMjcxMzA3XSBJbm9kZS1jYWNoZSBoYXNo
IHRhYmxlIGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDEwLCA0MTk0MzA0IGJ5dGVzLCBsaW5lYXIp
ClsgICAgMC4yNzE0MzFdIEZhbGxiYWNrIG9yZGVyIGZvciBOb2RlIDA6IDAgClsgICAgMC4yNzE0
MzldIEJ1aWx0IDEgem9uZWxpc3RzLCBtb2JpbGl0eSBncm91cGluZyBvbi4gIFRvdGFsIHBhZ2Vz
OiA4MjE4MTg5ClsgICAgMC4yNzE0NDFdIFBvbGljeSB6b25lOiBOb3JtYWwKWyAgICAwLjI3MTQ1
NV0gbWVtIGF1dG8taW5pdDogc3RhY2s6b2ZmLCBoZWFwIGFsbG9jOm9uLCBoZWFwIGZyZWU6b2Zm
ClsgICAgMC4yNzE0NTddIHN0YWNrZGVwb3Q6IGFsbG9jYXRpbmcgaGFzaCB0YWJsZSB2aWEgYWxs
b2NfbGFyZ2Vfc3lzdGVtX2hhc2gKWyAgICAwLjI3MTQ2MV0gc3RhY2tkZXBvdCBoYXNoIHRhYmxl
IGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDExLCA4Mzg4NjA4IGJ5dGVzLCBsaW5lYXIpClsgICAg
MC4yNzI5NjFdIHNvZnR3YXJlIElPIFRMQjogYXJlYSBudW0gMTYuClsgICAgMC41MDk3MjVdIFNM
VUI6IEhXYWxpZ249NjQsIE9yZGVyPTAtMywgTWluT2JqZWN0cz0wLCBDUFVzPTEyLCBOb2Rlcz0x
ClsgICAgMC41MDk4NTRdIGZ0cmFjZTogYWxsb2NhdGluZyA1Mjc5MSBlbnRyaWVzIGluIDIwNyBw
YWdlcwpbICAgIDAuNTI0Mjg5XSBmdHJhY2U6IGFsbG9jYXRlZCAyMDcgcGFnZXMgd2l0aCA2IGdy
b3VwcwpbICAgIDAuNTI1Njk2XSBEeW5hbWljIFByZWVtcHQ6IHZvbHVudGFyeQpbICAgIDAuNTI2
MTUzXSByY3U6IFByZWVtcHRpYmxlIGhpZXJhcmNoaWNhbCBSQ1UgaW1wbGVtZW50YXRpb24uClsg
ICAgMC41MjYxNTRdIHJjdTogCVJDVSByZXN0cmljdGluZyBDUFVzIGZyb20gTlJfQ1BVUz04MTky
IHRvIG5yX2NwdV9pZHM9MTIuClsgICAgMC41MjYxNTZdIAlUcmFtcG9saW5lIHZhcmlhbnQgb2Yg
VGFza3MgUkNVIGVuYWJsZWQuClsgICAgMC41MjYxNTddIAlSdWRlIHZhcmlhbnQgb2YgVGFza3Mg
UkNVIGVuYWJsZWQuClsgICAgMC41MjYxNTddIAlUcmFjaW5nIHZhcmlhbnQgb2YgVGFza3MgUkNV
IGVuYWJsZWQuClsgICAgMC41MjYxNThdIHJjdTogUkNVIGNhbGN1bGF0ZWQgdmFsdWUgb2Ygc2No
ZWR1bGVyLWVubGlzdG1lbnQgZGVsYXkgaXMgMjUgamlmZmllcy4KWyAgICAwLjUyNjE2MF0gcmN1
OiBBZGp1c3RpbmcgZ2VvbWV0cnkgZm9yIHJjdV9mYW5vdXRfbGVhZj0xNiwgbnJfY3B1X2lkcz0x
MgpbICAgIDAuNTI2MjA3XSBSQ1UgVGFza3M6IFNldHRpbmcgc2hpZnQgdG8gNCBhbmQgbGltIHRv
IDEgcmN1X3Rhc2tfY2JfYWRqdXN0PTEgcmN1X3Rhc2tfY3B1X2lkcz0xMi4KWyAgICAwLjUyNjIx
MV0gUkNVIFRhc2tzIFJ1ZGU6IFNldHRpbmcgc2hpZnQgdG8gNCBhbmQgbGltIHRvIDEgcmN1X3Rh
c2tfY2JfYWRqdXN0PTEgcmN1X3Rhc2tfY3B1X2lkcz0xMi4KWyAgICAwLjUyNjIxNV0gUkNVIFRh
c2tzIFRyYWNlOiBTZXR0aW5nIHNoaWZ0IHRvIDQgYW5kIGxpbSB0byAxIHJjdV90YXNrX2NiX2Fk
anVzdD0xIHJjdV90YXNrX2NwdV9pZHM9MTIuClsgICAgMC41MzY1OTNdIFVzaW5nIE5VTEwgbGVn
YWN5IFBJQwpbICAgIDAuNTM2NTk3XSBOUl9JUlFTOiA1MjQ1NDQsIG5yX2lycXM6IDEwNjQsIHBy
ZWFsbG9jYXRlZCBpcnFzOiAwClsgICAgMC41MzY3MDddIHhlbjpldmVudHM6IFVzaW5nIEZJRk8t
YmFzZWQgQUJJClsgICAgMC41MzY3NDBdIHhlbjpldmVudHM6IFhlbiBIVk0gY2FsbGJhY2sgdmVj
dG9yIGZvciBldmVudCBkZWxpdmVyeSBpcyBlbmFibGVkClsgICAgMC41MzY4MzRdIHJjdTogc3Jj
dV9pbml0OiBTZXR0aW5nIHNyY3Vfc3RydWN0IHNpemVzIGJhc2VkIG9uIGNvbnRlbnRpb24uClsg
ICAgMC41MzcwMDFdIENvbnNvbGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MjUKWyAgICAwLjUz
NzAwNV0gcHJpbnRrOiBsZWdhY3kgY29uc29sZSBbdHR5MF0gZW5hYmxlZApbICAgIDAuNTM3MDM0
XSBwcmludGs6IGxlZ2FjeSBjb25zb2xlIFtodmMwXSBlbmFibGVkClsgICAgMC41MzcxMzJdIEFD
UEk6IENvcmUgcmV2aXNpb24gMjAyNDA4MjcKWyAgICAwLjU4NzIyMl0gRmFpbGVkIHRvIHJlZ2lz
dGVyIGxlZ2FjeSB0aW1lciBpbnRlcnJ1cHQKWyAgICAwLjU4NzIyNV0gQVBJQzogU3dpdGNoIHRv
IHN5bW1ldHJpYyBJL08gbW9kZSBzZXR1cApbICAgIDAuNTg4MjQ4XSB4MmFwaWMgZW5hYmxlZApb
ICAgIDAuNTg5NDM1XSBBUElDOiBTd2l0Y2hlZCBBUElDIHJvdXRpbmcgdG86IHBoeXNpY2FsIHgy
YXBpYwpbICAgIDAuNTg5ODMxXSBjbG9ja3NvdXJjZTogdHNjLWVhcmx5OiBtYXNrOiAweGZmZmZm
ZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgyYjI5OGMxNzViMiwgbWF4X2lkbGVfbnM6IDQ0MDc5
NTI1NjI3OSBucwpbICAgIDAuNTg5ODQ1XSBDYWxpYnJhdGluZyBkZWxheSBsb29wIChza2lwcGVk
KSwgdmFsdWUgY2FsY3VsYXRlZCB1c2luZyB0aW1lciBmcmVxdWVuY3kuLiA1OTg4Ljc2IEJvZ29N
SVBTIChscGo9MTE5Nzc1MzYpClsgICAgMC41ODk5OTldIHg4Ni9jcHU6IFVzZXIgTW9kZSBJbnN0
cnVjdGlvbiBQcmV2ZW50aW9uIChVTUlQKSBhY3RpdmF0ZWQKWyAgICAwLjU5MDA4OF0gTGFzdCBs
ZXZlbCBpVExCIGVudHJpZXM6IDRLQiAxMDI0LCAyTUIgMTAyNCwgNE1CIDUxMgpbICAgIDAuNTkw
MDg5XSBMYXN0IGxldmVsIGRUTEIgZW50cmllczogNEtCIDIwNDgsIDJNQiAyMDQ4LCA0TUIgMTAy
NCwgMUdCIDAKWyAgICAwLjU5MDA5N10gU3BlY3RyZSBWMSA6IE1pdGlnYXRpb246IHVzZXJjb3B5
L3N3YXBncyBiYXJyaWVycyBhbmQgX191c2VyIHBvaW50ZXIgc2FuaXRpemF0aW9uClsgICAgMC41
OTAxMDBdIFNwZWN0cmUgVjIgOiBNaXRpZ2F0aW9uOiBSZXRwb2xpbmVzClsgICAgMC41OTAxMDJd
IFNwZWN0cmUgVjIgOiBTcGVjdHJlIHYyIC8gU3BlY3RyZVJTQiBtaXRpZ2F0aW9uOiBGaWxsaW5n
IFJTQiBvbiBjb250ZXh0IHN3aXRjaApbICAgIDAuNTkwMTAzXSBTcGVjdHJlIFYyIDogU3BlY3Ry
ZSB2MiAvIFNwZWN0cmVSU0IgOiBGaWxsaW5nIFJTQiBvbiBWTUVYSVQKWyAgICAwLjU5MDEwNF0g
U3BlY3RyZSBWMiA6IEVuYWJsaW5nIFNwZWN1bGF0aW9uIEJhcnJpZXIgZm9yIGZpcm13YXJlIGNh
bGxzClsgICAgMC41OTAxMDZdIFJFVEJsZWVkOiBNaXRpZ2F0aW9uOiB1bnRyYWluZWQgcmV0dXJu
IHRodW5rClsgICAgMC41OTAxMDhdIFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBj
b25kaXRpb25hbCBJbmRpcmVjdCBCcmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyClsgICAgMC41OTAx
MTBdIFNwZWN1bGF0aXZlIFN0b3JlIEJ5cGFzczogTWl0aWdhdGlvbjogU3BlY3VsYXRpdmUgU3Rv
cmUgQnlwYXNzIGRpc2FibGVkIHZpYSBwcmN0bApbICAgIDAuNTkwMTM4XSB4ODYvZnB1OiBTdXBw
b3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDE6ICd4ODcgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJz
JwpbICAgIDAuNTkwMTQwXSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDI6
ICdTU0UgcmVnaXN0ZXJzJwpbICAgIDAuNTkwMTQxXSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZF
IGZlYXR1cmUgMHgwMDQ6ICdBVlggcmVnaXN0ZXJzJwpbICAgIDAuNTkwMTQzXSB4ODYvZnB1OiB4
c3RhdGVfb2Zmc2V0WzJdOiAgNTc2LCB4c3RhdGVfc2l6ZXNbMl06ICAyNTYKWyAgICAwLjU5MDE0
NV0geDg2L2ZwdTogRW5hYmxlZCB4c3RhdGUgZmVhdHVyZXMgMHg3LCBjb250ZXh0IHNpemUgaXMg
ODMyIGJ5dGVzLCB1c2luZyAnY29tcGFjdGVkJyBmb3JtYXQuClsgICAgMC41OTM4MzhdIEZyZWVp
bmcgU01QIGFsdGVybmF0aXZlcyBtZW1vcnk6IDQ0SwpbICAgIDAuNTkzODM4XSBwaWRfbWF4OiBk
ZWZhdWx0OiAzMjc2OCBtaW5pbXVtOiAzMDEKWyAgICAwLjU5MzgzOF0gTFNNOiBpbml0aWFsaXpp
bmcgbHNtPWxvY2tkb3duLGNhcGFiaWxpdHkseWFtYSxhcHBhcm1vcixpbWEsZXZtClsgICAgMC41
OTM4MzhdIFlhbWE6IGJlY29taW5nIG1pbmRmdWwuClsgICAgMC41OTM4MzhdIEFwcEFybW9yOiBB
cHBBcm1vciBpbml0aWFsaXplZApbICAgIDAuNTkzODM4XSBNb3VudC1jYWNoZSBoYXNoIHRhYmxl
IGVudHJpZXM6IDE2Mzg0IChvcmRlcjogNSwgMTMxMDcyIGJ5dGVzLCBsaW5lYXIpClsgICAgMC41
OTM4MzhdIE1vdW50cG9pbnQtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAxNjM4NCAob3JkZXI6
IDUsIDEzMTA3MiBieXRlcywgbGluZWFyKQpbICAgIDAuNTkzODM4XSBjbG9ja3NvdXJjZTogeGVu
OiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgxY2Q0MmU0ZGZmYiwgbWF4
X2lkbGVfbnM6IDg4MTU5MDU5MTQ4MyBucwpbICAgIDAuNTkzODM4XSBYZW46IHVzaW5nIHZjcHVv
cCB0aW1lciBpbnRlcmZhY2UKWyAgICAwLjU5MzgzOF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9y
IENQVSAwClsgICAgMC41OTM4MzhdIHNtcGJvb3Q6IENQVTA6IEFNRCBFbmcgU2FtcGxlOiAxMDAt
MDAwMDAxMDA3LTQwXzMxLzMwX1kgKGZhbWlseTogMHgxNywgbW9kZWw6IDB4NjAsIHN0ZXBwaW5n
OiAweDEpClsgICAgMC41OTM4MzhdIGNwdSAwIHNwaW5sb2NrIGV2ZW50IGlycSAyOApbICAgIDAu
NTkzODM4XSBQZXJmb3JtYW5jZSBFdmVudHM6IFBNVSBub3QgYXZhaWxhYmxlIGR1ZSB0byB2aXJ0
dWFsaXphdGlvbiwgdXNpbmcgc29mdHdhcmUgZXZlbnRzIG9ubHkuClsgICAgMC41OTM4MzhdIHNp
Z25hbDogbWF4IHNpZ2ZyYW1lIHNpemU6IDE3NzYKWyAgICAwLjU5MzgzOF0gcmN1OiBIaWVyYXJj
aGljYWwgU1JDVSBpbXBsZW1lbnRhdGlvbi4KWyAgICAwLjU5MzgzOF0gcmN1OiAJTWF4IHBoYXNl
IG5vLWRlbGF5IGluc3RhbmNlcyBpcyAxMDAwLgpbICAgIDAuNTkzODM4XSBUaW1lciBtaWdyYXRp
b246IDIgaGllcmFyY2h5IGxldmVsczsgOCBjaGlsZHJlbiBwZXIgZ3JvdXA7IDIgY3Jvc3Nub2Rl
IGxldmVsClsgICAgMC42OTc5MThdIE5NSSB3YXRjaGRvZzogUGVyZiBOTUkgd2F0Y2hkb2cgcGVy
bWFuZW50bHkgZGlzYWJsZWQKWyAgICAwLjY5ODcyOV0gc21wOiBCcmluZ2luZyB1cCBzZWNvbmRh
cnkgQ1BVcyAuLi4KWyAgICAwLjcwOTk1MF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAx
ClsgICAgMC43MTAzNTNdIHNtcGJvb3Q6IHg4NjogQm9vdGluZyBTTVAgY29uZmlndXJhdGlvbjoK
WyAgICAwLjcxMDM1N10gLi4uLiBub2RlICAjMCwgQ1BVczogICAgICAgICMxClsgICAgMC43MTE5
NzhdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMgpbICAgIDAuNzEyMzk1XSAgICMyClsg
ICAgMC43MTM0MTVdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMwpbICAgIDAuNzEzNjM2
XSAgICMzClsgICAgMC43MTQ2ODRdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgNApbICAg
IDAuNzE1MDA2XSAgICM0ClsgICAgMC43MTU3NDZdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBD
UFUgNQpbICAgIDAuNzE1OTY5XSAgICM1ClsgICAgMC43MTY3OTZdIGluc3RhbGxpbmcgWGVuIHRp
bWVyIGZvciBDUFUgNgpbICAgIDAuNzE3MDM1XSAgICM2ClsgICAgMC43MjU5OTZdIGluc3RhbGxp
bmcgWGVuIHRpbWVyIGZvciBDUFUgNwpbICAgIDAuNzI2MjQzXSAgICM3ClsgICAgMC43MjcwMTBd
IGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgOApbICAgIDAuNzI3MjMzXSAgICM4ClsgICAg
MC43MjgwNTldIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgOQpbICAgIDAuNzI4MjkyXSAg
ICM5ClsgICAgMC43MjkwNzhdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMTAKWyAgICAw
LjcyOTMzM10gICMxMApbICAgIDAuNzQxOTk4XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BV
IDExClsgICAgMC43NDIyNTFdICAjMTEKWyAgICAwLjc0Mzg1MF0gY3B1IDEgc3BpbmxvY2sgZXZl
bnQgaXJxIDczClsgICAgMC43NDYwNzBdIGNwdSAyIHNwaW5sb2NrIGV2ZW50IGlycSA3NApbICAg
IDAuNzQ3ODUwXSBjcHUgMyBzcGlubG9jayBldmVudCBpcnEgNzUKWyAgICAwLjc0OTk3Nl0gY3B1
IDQgc3BpbmxvY2sgZXZlbnQgaXJxIDc2ClsgICAgMC43NTE4NDddIGNwdSA1IHNwaW5sb2NrIGV2
ZW50IGlycSA3NwpbICAgIDAuNzUzOTc5XSBjcHUgNiBzcGlubG9jayBldmVudCBpcnEgNzgKWyAg
ICAwLjc1NTg0NV0gY3B1IDcgc3BpbmxvY2sgZXZlbnQgaXJxIDc5ClsgICAgMC43NTc5MzldIGNw
dSA4IHNwaW5sb2NrIGV2ZW50IGlycSA4MApbICAgIDAuNzU5ODQ0XSBjcHUgOSBzcGlubG9jayBl
dmVudCBpcnEgODEKWyAgICAwLjc2MjAzNl0gY3B1IDEwIHNwaW5sb2NrIGV2ZW50IGlycSA4Mgpb
ICAgIDAuNzYzODQzXSBjcHUgMTEgc3BpbmxvY2sgZXZlbnQgaXJxIDgzClsgICAgMC43NjM4NDNd
IHNtcDogQnJvdWdodCB1cCAxIG5vZGUsIDEyIENQVXMKWyAgICAwLjc2Mzg0M10gc21wYm9vdDog
VG90YWwgb2YgMTIgcHJvY2Vzc29ycyBhY3RpdmF0ZWQgKDcxODY1LjIxIEJvZ29NSVBTKQpbICAg
IDAuNzY2NTQ1XSBNZW1vcnk6IDU1NTY3ODRLLzMyODcyNzU2SyBhdmFpbGFibGUgKDE4NDMySyBr
ZXJuZWwgY29kZSwgOTUyNksgcndkYXRhLCA3NTUySyByb2RhdGEsIDQ2ODRLIGluaXQsIDEwMTg0
SyBic3MsIDI3Mjk3ODY0SyByZXNlcnZlZCwgMEsgY21hLXJlc2VydmVkKQpbICAgIDAuNzY5NDU2
XSBkZXZ0bXBmczogaW5pdGlhbGl6ZWQKWyAgICAwLjc2OTg4NV0geDg2L21tOiBNZW1vcnkgYmxv
Y2sgc2l6ZTogMTI4TUIKWyAgICAwLjc4NjA4MV0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFDUEkg
TlZTIHJlZ2lvbiBbbWVtIDB4MDlmMDAwMDAtMHgwOWYwZmZmZl0gKDY1NTM2IGJ5dGVzKQpbICAg
IDAuNzg2MDgxXSBBQ1BJOiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBOVlMgcmVnaW9uIFttZW0gMHhj
YWY3ZjAwMC0weGNjZjdlZmZmXSAoMzM1NTQ0MzIgYnl0ZXMpClsgICAgMC43OTQ2ODNdIGNsb2Nr
c291cmNlOiBqaWZmaWVzOiBtYXNrOiAweGZmZmZmZmZmIG1heF9jeWNsZXM6IDB4ZmZmZmZmZmYs
IG1heF9pZGxlX25zOiA3NjQ1MDQxNzg1MTAwMDAwIG5zClsgICAgMC43OTQ3MzBdIGZ1dGV4IGhh
c2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDYsIDI2MjE0NCBieXRlcywgbGluZWFyKQpb
ICAgIDAuNzk0OTYyXSBwaW5jdHJsIGNvcmU6IGluaXRpYWxpemVkIHBpbmN0cmwgc3Vic3lzdGVt
ClsgICAgMC43OTUyODBdIFBNOiBSVEMgdGltZTogMDM6MTY6MDAsIGRhdGU6IDIwMjQtMTEtMTQK
WyAgICAwLjc5NzAxNF0gTkVUOiBSZWdpc3RlcmVkIFBGX05FVExJTksvUEZfUk9VVEUgcHJvdG9j
b2wgZmFtaWx5ClsgICAgMC43OTcxMjNdIHhlbjpncmFudF90YWJsZTogR3JhbnQgdGFibGVzIHVz
aW5nIHZlcnNpb24gMSBsYXlvdXQKWyAgICAwLjc5NzE3MF0gR3JhbnQgdGFibGUgaW5pdGlhbGl6
ZWQKWyAgICAwLjc5ODczMl0gRE1BOiBwcmVhbGxvY2F0ZWQgMTAyNCBLaUIgR0ZQX0tFUk5FTCBw
b29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjc5ODg5N10gRE1BOiBwcmVhbGxvY2F0
ZWQgMTAyNCBLaUIgR0ZQX0tFUk5FTHxHRlBfRE1BIHBvb2wgZm9yIGF0b21pYyBhbGxvY2F0aW9u
cwpbICAgIDAuNzk5MDU5XSBETUE6IHByZWFsbG9jYXRlZCAxMDI0IEtpQiBHRlBfS0VSTkVMfEdG
UF9ETUEzMiBwb29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjc5OTExMl0gYXVkaXQ6
IGluaXRpYWxpemluZyBuZXRsaW5rIHN1YnN5cyAoZGlzYWJsZWQpClsgICAgMC43OTkxNjVdIGF1
ZGl0OiB0eXBlPTIwMDAgYXVkaXQoMTczMTU1NDE1OS43MDk6MSk6IHN0YXRlPWluaXRpYWxpemVk
IGF1ZGl0X2VuYWJsZWQ9MCByZXM9MQpbICAgIDAuNzk5MTY1XSB0aGVybWFsX3N5czogUmVnaXN0
ZXJlZCB0aGVybWFsIGdvdmVybm9yICdmYWlyX3NoYXJlJwpbICAgIDAuNzk5MTY1XSB0aGVybWFs
X3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICdiYW5nX2JhbmcnClsgICAgMC43OTkx
NjVdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3N0ZXBfd2lzZScK
WyAgICAwLjc5OTE2NV0gdGhlcm1hbF9zeXM6IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zlcm5vciAn
dXNlcl9zcGFjZScKWyAgICAwLjc5OTE2NV0gRUlTQSBidXMgcmVnaXN0ZXJlZApbICAgIDAuNzk5
MTY1XSBjcHVpZGxlOiB1c2luZyBnb3Zlcm5vciBsYWRkZXIKWyAgICAwLjc5OTE2NV0gY3B1aWRs
ZTogdXNpbmcgZ292ZXJub3IgbWVudQpbICAgIDAuNzk5MTY1XSBhY3BpcGhwOiBBQ1BJIEhvdCBQ
bHVnIFBDSSBDb250cm9sbGVyIERyaXZlciB2ZXJzaW9uOiAwLjUKWyAgICAwLjgwMjQzOF0gUENJ
OiBFQ0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSAoYmFzZSAweGYwMDAwMDAwKSBmb3Ig
ZG9tYWluIDAwMDAgW2J1cyAwMC03Zl0KWyAgICAwLjgwMjQ3NV0gUENJOiBVc2luZyBjb25maWd1
cmF0aW9uIHR5cGUgMSBmb3IgYmFzZSBhY2Nlc3MKWyAgICAwLjgwMjY0Nl0ga3Byb2Jlczoga3By
b2JlIGp1bXAtb3B0aW1pemF0aW9uIGlzIGVuYWJsZWQuIEFsbCBrcHJvYmVzIGFyZSBvcHRpbWl6
ZWQgaWYgcG9zc2libGUuClsgICAgMC44MDI2NDZdIEh1Z2VUTEI6IHJlZ2lzdGVyZWQgMS4wMCBH
aUIgcGFnZSBzaXplLCBwcmUtYWxsb2NhdGVkIDAgcGFnZXMKWyAgICAwLjgwMjY0Nl0gSHVnZVRM
QjogMTYzODAgS2lCIHZtZW1tYXAgY2FuIGJlIGZyZWVkIGZvciBhIDEuMDAgR2lCIHBhZ2UKWyAg
ICAwLjgwMjY0Nl0gSHVnZVRMQjogcmVnaXN0ZXJlZCAyLjAwIE1pQiBwYWdlIHNpemUsIHByZS1h
bGxvY2F0ZWQgMCBwYWdlcwpbICAgIDAuODAyNjQ2XSBIdWdlVExCOiAyOCBLaUIgdm1lbW1hcCBj
YW4gYmUgZnJlZWQgZm9yIGEgMi4wMCBNaUIgcGFnZQpbICAgIDAuODA2MjY5XSBBQ1BJOiBBZGRl
ZCBfT1NJKE1vZHVsZSBEZXZpY2UpClsgICAgMC44MDYyNzJdIEFDUEk6IEFkZGVkIF9PU0koUHJv
Y2Vzc29yIERldmljZSkKWyAgICAwLjgwNjI3M10gQUNQSTogQWRkZWQgX09TSSgzLjAgX1NDUCBF
eHRlbnNpb25zKQpbICAgIDAuODA2Mjc0XSBBQ1BJOiBBZGRlZCBfT1NJKFByb2Nlc3NvciBBZ2dy
ZWdhdG9yIERldmljZSkKWyAgICAwLjkxOTQ1OV0gQUNQSSBCSU9TIEVycm9yIChidWcpOiBGYWls
dXJlIGNyZWF0aW5nIG5hbWVkIG9iamVjdCBbXF9TQi5NQUNPXSwgQUVfQUxSRUFEWV9FWElTVFMg
KDIwMjQwODI3L2Rzd2xvYWQyLTMyNikKWyAgICAwLjkxOTQ4M10gZmJjb246IFRha2luZyBvdmVy
IGNvbnNvbGUKWyAgICAwLjkxOTUzNF0gQUNQSSBFcnJvcjogQUVfQUxSRUFEWV9FWElTVFMsIER1
cmluZyBuYW1lIGxvb2t1cC9jYXRhbG9nICgyMDI0MDgyNy9wc29iamVjdC0yMjApClsgICAgMC45
Mjk0ODVdIEFDUEk6IDIwIEFDUEkgQU1MIHRhYmxlcyBzdWNjZXNzZnVsbHkgYWNxdWlyZWQgYW5k
IGxvYWRlZApbICAgIDAuOTM4NzY3XSBBQ1BJOiBbRmlybXdhcmUgQnVnXTogQklPUyBfT1NJKExp
bnV4KSBxdWVyeSBpZ25vcmVkClsgICAgMC45NTYwNDFdIEFDUEk6IEVDOiBFQyBzdGFydGVkClsg
ICAgMC45NTYwNDRdIEFDUEk6IEVDOiBpbnRlcnJ1cHQgYmxvY2tlZApbICAgIDAuOTYwNjU5XSBB
Q1BJOiBFQzogRUNfQ01EL0VDX1NDPTB4NjY2LCBFQ19EQVRBPTB4NjYyClsgICAgMC45NjA2NjVd
IEFDUEk6IFxfU0JfLlBDSTAuTFBDMC5FQzBfOiBCb290IERTRFQgRUMgdXNlZCB0byBoYW5kbGUg
dHJhbnNhY3Rpb25zClsgICAgMC45NjA2NjddIEFDUEk6IEludGVycHJldGVyIGVuYWJsZWQKWyAg
ICAwLjk2MDcxMV0gQUNQSTogUE06IChzdXBwb3J0cyBTMCBTMyBTNCBTNSkKWyAgICAwLjk2MDcx
NF0gQUNQSTogVXNpbmcgSU9BUElDIGZvciBpbnRlcnJ1cHQgcm91dGluZwpbICAgIDAuOTYxNjQx
XSBQQ0k6IFVzaW5nIGhvc3QgYnJpZGdlIHdpbmRvd3MgZnJvbSBBQ1BJOyBpZiBuZWNlc3Nhcnks
IHVzZSAicGNpPW5vY3JzIiBhbmQgcmVwb3J0IGEgYnVnClsgICAgMC45NjE2NDRdIFBDSTogSWdu
b3JpbmcgRTgyMCByZXNlcnZhdGlvbnMgZm9yIGhvc3QgYnJpZGdlIHdpbmRvd3MKWyAgICAwLjk2
NDgyNV0gQUNQSTogRW5hYmxlZCA2IEdQRXMgaW4gYmxvY2sgMDAgdG8gMUYKWyAgICAwLjk3MTkx
N10gQUNQSTogXF9TQl8uUENJMC5HUFAwLk0yMzc6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAu
OTcyNjgyXSBBQ1BJOiBcX1NCXy5QQ0kwLkdQUDAuU1dVUy5NMjM3OiBOZXcgcG93ZXIgcmVzb3Vy
Y2UKWyAgICAwLjk3MzI2MF0gQUNQSTogXF9TQl8uUENJMC5HUFAwLlNXVVMuU1dEUy5NMjM3OiBO
ZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjk3NzcwOV0gQUNQSTogXF9TQl8uUENJMC5HUFA2LlAw
TlY6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAuOTg0MDY5XSBBQ1BJOiBcX1NCXy5QMFMwOiBO
ZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjk4NDIxOV0gQUNQSTogXF9TQl8uUDNTMDogTmV3IHBv
d2VyIHJlc291cmNlClsgICAgMC45ODQ4MjZdIEFDUEk6IFxfU0JfLlAwUzE6IE5ldyBwb3dlciBy
ZXNvdXJjZQpbICAgIDAuOTg0OTc0XSBBQ1BJOiBcX1NCXy5QM1MxOiBOZXcgcG93ZXIgcmVzb3Vy
Y2UKWyAgICAxLjA0NjYyMF0gQUNQSTogUENJIFJvb3QgQnJpZGdlIFtQQ0kwXSAoZG9tYWluIDAw
MDAgW2J1cyAwMC1mZl0pClsgICAgMS4wNDY2NDJdIGFjcGkgUE5QMEEwODowMDogX09TQzogT1Mg
c3VwcG9ydHMgW0V4dGVuZGVkQ29uZmlnIEFTUE0gQ2xvY2tQTSBTZWdtZW50cyBNU0kgSFBYLVR5
cGUzXQpbICAgIDEuMDQ3MjY5XSBhY3BpIFBOUDBBMDg6MDA6IF9PU0M6IHBsYXRmb3JtIGRvZXMg
bm90IHN1cHBvcnQgW1NIUENIb3RwbHVnIExUUl0KWyAgICAxLjA0ODQwNF0gYWNwaSBQTlAwQTA4
OjAwOiBfT1NDOiBPUyBub3cgY29udHJvbHMgW1BDSWVIb3RwbHVnIFBNRSBBRVIgUENJZUNhcGFi
aWxpdHldClsgICAgMS4wNDg0NTldIGFjcGkgUE5QMEEwODowMDogW0Zpcm13YXJlIEluZm9dOiBF
Q0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSBmb3IgZG9tYWluIDAwMDAgW2J1cyAwMC03
Zl0gb25seSBwYXJ0aWFsbHkgY292ZXJzIHRoaXMgYnJpZGdlClsgICAgMS4wNTA1MjBdIFBDSSBo
b3N0IGJyaWRnZSB0byBidXMgMDAwMDowMApbICAgIDEuMDUwNTQ2XSBwY2lfYnVzIDAwMDA6MDA6
IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwMDAwLTB4MGNmNyB3aW5kb3ddClsgICAgMS4wNTA1
NTJdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvICAweDBkMDAtMHhmZmZm
IHdpbmRvd10KWyAgICAxLjA1MDU1Nl0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJj
ZSBbbWVtIDB4MDAwYTAwMDAtMHgwMDBiZmZmZiB3aW5kb3ddClsgICAgMS4wNTA1NjhdIHBjaV9i
dXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweDAwMGMwMDAwLTB4MDAwY2ZmZmYg
d2luZG93XQpbICAgIDEuMDUwNTc0XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNl
IFttZW0gMHgwMDBkMDAwMC0weDAwMGVmZmZmIHdpbmRvd10KWyAgICAxLjA1MDU3N10gcGNpX2J1
cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ZDAwMDAwMDAtMHhlZmZmZmZmZiB3
aW5kb3ddClsgICAgMS4wNTA1ODFdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2Ug
W21lbSAweGY4MDAwMDAwLTB4ZmVhZmZmZmYgd2luZG93XQpbICAgIDEuMDUwNTg0XSBwY2lfYnVz
IDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHhmZWQ0NTAwMC0weGZlZDgxMWZmIHdp
bmRvd10KWyAgICAxLjA1MDU4N10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBb
bWVtIDB4ZmVkODE5MDAtMHhmZWQ4MWZmZiB3aW5kb3ddClsgICAgMS4wNTA1OTBdIHBjaV9idXMg
MDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweGZlZGMwMDAwLTB4ZmVkYzBmZmYgd2lu
ZG93XQpbICAgIDEuMDUwNTkzXSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtt
ZW0gMHhmZWRjNjAwMC0weGZlZGM2ZmZmIHdpbmRvd10KWyAgICAxLjA1MDU5N10gcGNpX2J1cyAw
MDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ODUwMjAwMDAwLTB4ZmNhZmZmZmZmZiB3
aW5kb3ddClsgICAgMS4wNTA2MDBdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2Ug
W2J1cyAwMC1mZl0KWyAgICAxLjA1MDY3Ml0gcGNpIDAwMDA6MDA6MDAuMDogWzEwMjI6MTYzMF0g
dHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50ClsgICAgMS4w
NTEyMjJdIHBjaSAwMDAwOjAwOjAwLjI6IFsxMDIyOjE2MzFdIHR5cGUgMDAgY2xhc3MgMHgwODA2
MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDUxNTM0XSBwY2kgMDAwMDowMDow
MS4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kg
ZW5kcG9pbnQKWyAgICAxLjA1MjAyMl0gcGNpIDAwMDA6MDA6MDEuMTogWzEwMjI6MTYzM10gdHlw
ZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJvb3QgUG9ydApbICAgIDEuMDUyMTA3XSBwY2kgMDAw
MDowMDowMS4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEtMDNdClsgICAgMS4wNTIxMTldIHBjaSAw
MDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4w
NTIxMjRdIHBjaSAwMDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAt
MHhkMDhmZmZmZl0KWyAgICAxLjA1MjE0M10gcGNpIDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2lu
ZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMDUy
NDMzXSBwY2kgMDAwMDowMDowMS4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29s
ZApbICAgIDEuMDUzMzY1XSBwY2kgMDAwMDowMDowMi4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNs
YXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA1MzgzNV0gcGNp
IDAwMDA6MDA6MDIuNDogWzEwMjI6MTYzNF0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJv
b3QgUG9ydApbICAgIDEuMDUzOTIxXSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFti
dXMgMDRdClsgICAgMS4wNTM5MzhdIHBjaSAwMDAwOjAwOjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBb
bWVtIDB4ZDA1MDAwMDAtMHhkMDVmZmZmZl0KWyAgICAxLjA1NDI2Nl0gcGNpIDAwMDA6MDA6MDIu
NDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjA1NzY2NV0gcGNp
IDAwMDA6MDA6MDguMDogWzEwMjI6MTYzMl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50
aW9uYWwgUENJIGVuZHBvaW50ClsgICAgMS4wNTgxMjddIHBjaSAwMDAwOjAwOjA4LjE6IFsxMDIy
OjE2MzVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBvcnQKWyAgICAxLjA1ODIw
M10gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVzIDA1XQpbICAgIDEuMDU4MjE0
XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDEwMDAtMHgxZmZmXQpb
ICAgIDEuMDU4MjE5XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQw
MTAwMDAwLTB4ZDA0ZmZmZmZdClsgICAgMS4wNTgyMzddIHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJp
ZGdlIHdpbmRvdyBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjODAxZmZmZmYgNjRiaXQgcHJlZl0KWyAg
ICAxLjA1ODI1N10gcGNpIDAwMDA6MDA6MDguMTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAg
IDEuMDU4NDgzXSBwY2kgMDAwMDowMDowOC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90
IEQzY29sZApbICAgIDEuMDU5MjYwXSBwY2kgMDAwMDowMDowOC4yOiBbMTAyMjoxNjM1XSB0eXBl
IDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgUm9vdCBQb3J0ClsgICAgMS4wNTkzMzldIHBjaSAwMDAw
OjAwOjA4LjI6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNl0KWyAgICAxLjA1OTM1NF0gcGNpIDAwMDA6
MDA6MDguMjogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDAwMDAwMC0weGQwMGZmZmZmXQpbICAg
IDEuMDU5Mzg5XSBwY2kgMDAwMDowMDowOC4yOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAg
MS4wNTk2MjFdIHBjaSAwMDAwOjAwOjA4LjI6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3Qg
RDNjb2xkClsgICAgMS4wNjYwNDRdIHBjaSAwMDAwOjAwOjE0LjA6IFsxMDIyOjc5MGJdIHR5cGUg
MDAgY2xhc3MgMHgwYzA1MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDY2Nzg3
XSBwY2kgMDAwMDowMDoxNC4zOiBbMTAyMjo3OTBlXSB0eXBlIDAwIGNsYXNzIDB4MDYwMTAwIGNv
bnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA2ODkzNl0gcGNpIDAwMDA6MDA6MTguMDog
WzEwMjI6MTQ0OF0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBv
aW50ClsgICAgMS4wNjkzNjBdIHBjaSAwMDAwOjAwOjE4LjE6IFsxMDIyOjE0NDldIHR5cGUgMDAg
Y2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDY5Nzg0XSBw
Y2kgMDAwMDowMDoxOC4yOiBbMTAyMjoxNDRhXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZl
bnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA3MDIwOF0gcGNpIDAwMDA6MDA6MTguMzogWzEw
MjI6MTQ0Yl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50
ClsgICAgMS4wNzA2MzFdIHBjaSAwMDAwOjAwOjE4LjQ6IFsxMDIyOjE0NGNdIHR5cGUgMDAgY2xh
c3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDcxMDcwXSBwY2kg
MDAwMDowMDoxOC41OiBbMTAyMjoxNDRkXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRp
b25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA3MTQ4NF0gcGNpIDAwMDA6MDA6MTguNjogWzEwMjI6
MTQ0ZV0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50Clsg
ICAgMS4wNzE4OTNdIHBjaSAwMDAwOjAwOjE4Ljc6IFsxMDIyOjE0NGZdIHR5cGUgMDAgY2xhc3Mg
MHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDc2MTIwXSBwY2kgMDAw
MDowMTowMC4wOiBbMTAwMjoxNDc4XSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgU3dpdGNo
IFVwc3RyZWFtIFBvcnQKWyAgICAxLjA3NjI4M10gcGNpIDAwMDA6MDE6MDAuMDogQkFSIDAgW21l
bSAweGQwODAwMDAwLTB4ZDA4MDNmZmZdClsgICAgMS4wNzY1MTddIHBjaSAwMDAwOjAxOjAwLjA6
IFBDSSBicmlkZ2UgdG8gW2J1cyAwMi0wM10KWyAgICAxLjA3NjUzOF0gcGNpIDAwMDA6MDE6MDAu
MDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgICAxLjA3NjU0Nl0gcGNp
IDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDYwMDAwMC0weGQwN2ZmZmZm
XQpbICAgIDEuMDc2NTcyXSBwY2kgMDAwMDowMTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAw
eGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4wNzY5ODNdIHBjaSAw
MDAwOjAxOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS4w
Nzc0MDFdIHBjaSAwMDAwOjAxOjAwLjA6IDYzLjAwOCBHYi9zIGF2YWlsYWJsZSBQQ0llIGJhbmR3
aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHg4IGxpbmsgYXQgMDAwMDowMDowMS4xIChj
YXBhYmxlIG9mIDEyNi4wMjQgR2IvcyB3aXRoIDE2LjAgR1QvcyBQQ0llIHg4IGxpbmspClsgICAg
MS4wNzg0MDJdIHBjaSAwMDAwOjAwOjAxLjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMS0wM10KWyAg
ICAxLjA3ODc2MV0gcGNpIDAwMDA6MDI6MDAuMDogWzEwMDI6MTQ3OV0gdHlwZSAwMSBjbGFzcyAw
eDA2MDQwMCBQQ0llIFN3aXRjaCBEb3duc3RyZWFtIFBvcnQKWyAgICAxLjA3ODg4OV0gcGNpIDAw
MDA6MDI6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQpbICAgIDEuMDc4OTEzXSBwY2kgMDAw
MDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDIwMDAtMHgyZmZmXQpbICAgIDEuMDc4
OTIyXSBwY2kgMDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4
ZDA3ZmZmZmZdClsgICAgMS4wNzg5NTFdIHBjaSAwMDAwOjAyOjAwLjA6ICAgYnJpZGdlIHdpbmRv
dyBbbWVtIDB4ZmM5MDAwMDAwMC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjA3OTM4
Nl0gcGNpIDAwMDA6MDI6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQK
WyAgICAxLjEwMTAxNV0gcGNpIDAwMDA6MDE6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAyLTAz
XQpbICAgIDEuMTAxNTIyXSBwY2kgMDAwMDowMzowMC4wOiBbMTAwMjo3M2ZmXSB0eXBlIDAwIGNs
YXNzIDB4MDMwMDAwIFBDSWUgTGVnYWN5IEVuZHBvaW50ClsgICAgMS4xMDI0MTZdIHBjaSAwMDAw
OjAzOjAwLjA6IEJBUiAwIFttZW0gMHhmYzkwMDAwMDAwLTB4ZmM5ZmZmZmZmZiA2NGJpdCBwcmVm
XQpbICAgIDEuMTA1NTkyXSBwY2kgMDAwMDowMzowMC4wOiBCQVIgMiBbbWVtIDB4ZmNhMDAwMDAw
MC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjEwNjY2NV0gcGNpIDAwMDA6MDM6MDAu
MDogQkFSIDQgW2lvICAweDIwMDAtMHgyMGZmXQpbICAgIDEuMTA5ODU4XSBwY2kgMDAwMDowMzow
MC4wOiBCQVIgNSBbbWVtIDB4ZDA2MDAwMDAtMHhkMDZmZmZmZl0KWyAgICAxLjExMjk2Ml0gcGNp
IDAwMDA6MDM6MDAuMDogUk9NIFttZW0gMHhmZmZlMDAwMC0weGZmZmZmZmZmIHByZWZdClsgICAg
MS4xMTM1NDNdIHBjaSAwMDAwOjAzOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDEgRDIgRDNo
b3QgRDNjb2xkClsgICAgMS4xMTQwMzFdIHBjaSAwMDAwOjAzOjAwLjA6IDYzLjAwOCBHYi9zIGF2
YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHg4IGxpbmsg
YXQgMDAwMDowMDowMS4xIChjYXBhYmxlIG9mIDI1Mi4wNDggR2IvcyB3aXRoIDE2LjAgR1QvcyBQ
Q0llIHgxNiBsaW5rKQpbICAgIDEuMTE1MDc0XSBwY2kgMDAwMDowMzowMC4xOiBbMTAwMjphYjI4
XSB0eXBlIDAwIGNsYXNzIDB4MDQwMzAwIFBDSWUgTGVnYWN5IEVuZHBvaW50ClsgICAgMS4xMTUy
MDddIHBjaSAwMDAwOjAzOjAwLjE6IEJBUiAwIFttZW0gMHhkMDcwMDAwMC0weGQwNzAzZmZmXQpb
ICAgIDEuMTE1OTYyXSBwY2kgMDAwMDowMzowMC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQxIEQy
IEQzaG90IEQzY29sZApbICAgIDEuMTE3MTMzXSBwY2kgMDAwMDowMjowMC4wOiBQQ0kgYnJpZGdl
IHRvIFtidXMgMDNdClsgICAgMS4xMTc2MTldIHBjaSAwMDAwOjA0OjAwLjA6IFsxNWI3OjUwMWFd
IHR5cGUgMDAgY2xhc3MgMHgwMTA4MDIgUENJZSBFbmRwb2ludApbICAgIDEuMTE3NzQ3XSBwY2kg
MDAwMDowNDowMC4wOiBCQVIgMCBbbWVtIDB4ZDA1MDAwMDAtMHhkMDUwM2ZmZiA2NGJpdF0KWyAg
ICAxLjExNzk2MV0gcGNpIDAwMDA6MDQ6MDAuMDogQkFSIDQgW21lbSAweGQwNTA0MDAwLTB4ZDA1
MDQwZmYgNjRiaXRdClsgICAgMS4xMTk3OTJdIHBjaSAwMDAwOjAwOjAyLjQ6IFBDSSBicmlkZ2Ug
dG8gW2J1cyAwNF0KWyAgICAxLjEyMDM0Nl0gcGNpIDAwMDA6MDU6MDAuMDogWzEwMDI6MTYzNl0g
dHlwZSAwMCBjbGFzcyAweDAzMDAwMCBQQ0llIExlZ2FjeSBFbmRwb2ludApbICAgIDEuMTIyMzg3
XSBwY2kgMDAwMDowNTowMC4wOiBCQVIgMCBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjN2ZmZmZmZmYg
NjRiaXQgcHJlZl0KWyAgICAxLjEyNDA0NF0gcGNpIDAwMDA6MDU6MDAuMDogQkFSIDIgW21lbSAw
eGZjODAwMDAwMDAtMHhmYzgwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4xMjU2MTldIHBjaSAw
MDAwOjA1OjAwLjA6IEJBUiA0IFtpbyAgMHgxMDAwLTB4MTBmZl0KWyAgICAxLjEyNjEyOF0gcGNp
IDAwMDA6MDU6MDAuMDogQkFSIDUgW21lbSAweGQwNDAwMDAwLTB4ZDA0N2ZmZmZdClsgICAgMS4x
Mjc4MjhdIHBjaSAwMDAwOjA1OjAwLjA6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjEy
ODIzMF0gcGNpIDAwMDA6MDU6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMSBEMiBEM2hvdCBE
M2NvbGQKWyAgICAxLjEyODUwNl0gcGNpIDAwMDA6MDU6MDAuMDogMTI2LjAxNiBHYi9zIGF2YWls
YWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHgxNiBsaW5rIGF0
IDAwMDA6MDA6MDguMSAoY2FwYWJsZSBvZiAyNTIuMDQ4IEdiL3Mgd2l0aCAxNi4wIEdUL3MgUENJ
ZSB4MTYgbGluaykKWyAgICAxLjEyOTM4MF0gcGNpIDAwMDA6MDU6MDAuMTogWzEwMDI6MTYzN10g
dHlwZSAwMCBjbGFzcyAweDA0MDMwMCBQQ0llIExlZ2FjeSBFbmRwb2ludApbICAgIDEuMTI5NDcx
XSBwY2kgMDAwMDowNTowMC4xOiBCQVIgMCBbbWVtIDB4ZDA0YzgwMDAtMHhkMDRjYmZmZl0KWyAg
ICAxLjEyOTgzOF0gcGNpIDAwMDA6MDU6MDAuMTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAg
IDEuMTMwMDA5XSBwY2kgMDAwMDowNTowMC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQxIEQyIEQz
aG90IEQzY29sZApbICAgIDEuMTMwNzI0XSBwY2kgMDAwMDowNTowMC4yOiBbMTAyMjoxNWRmXSB0
eXBlIDAwIGNsYXNzIDB4MTA4MDAwIFBDSWUgRW5kcG9pbnQKWyAgICAxLjEzNTgxNV0gcGNpIDAw
MDA6MDU6MDAuMjogQkFSIDIgW21lbSAweGQwMzAwMDAwLTB4ZDAzZmZmZmZdClsgICAgMS4xMzk5
NzddIHBjaSAwMDAwOjA1OjAwLjI6IEJBUiA1IFttZW0gMHhkMDRjYzAwMC0weGQwNGNkZmZmXQpb
ICAgIDEuMTQxNjk3XSBwY2kgMDAwMDowNTowMC4yOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsg
ICAgMS4xNDI2MTNdIHBjaSAwMDAwOjA1OjAwLjM6IFsxMDIyOjE2MzldIHR5cGUgMDAgY2xhc3Mg
MHgwYzAzMzAgUENJZSBFbmRwb2ludApbICAgIDEuMTQ0NjQzXSBwY2kgMDAwMDowNTowMC4zOiBC
QVIgMCBbbWVtIDB4ZDAyMDAwMDAtMHhkMDJmZmZmZiA2NGJpdF0KWyAgICAxLjE1MjI4OV0gcGNp
IDAwMDA6MDU6MDAuMzogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDEuMTUyNDk5XSBwY2kg
MDAwMDowNTowMC4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEu
MTUzMjU3XSBwY2kgMDAwMDowNTowMC40OiBbMTAyMjoxNjM5XSB0eXBlIDAwIGNsYXNzIDB4MGMw
MzMwIFBDSWUgRW5kcG9pbnQKWyAgICAxLjE1NDE5OF0gcGNpIDAwMDA6MDU6MDAuNDogQkFSIDAg
W21lbSAweGQwMTAwMDAwLTB4ZDAxZmZmZmYgNjRiaXRdClsgICAgMS4xNjE2MjRdIHBjaSAwMDAw
OjA1OjAwLjQ6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE2MTgxOF0gcGNpIDAwMDA6
MDU6MDAuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjE2MjU2
M10gcGNpIDAwMDA6MDU6MDAuNTogWzEwMjI6MTVlMl0gdHlwZSAwMCBjbGFzcyAweDA0ODAwMCBQ
Q0llIEVuZHBvaW50ClsgICAgMS4xNjMwMzddIHBjaSAwMDAwOjA1OjAwLjU6IEJBUiAwIFttZW0g
MHhkMDQ4MDAwMC0weGQwNGJmZmZmXQpbICAgIDEuMTY1OTQyXSBwY2kgMDAwMDowNTowMC41OiBl
bmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAgMS4xNjYxMDldIHBjaSAwMDAwOjA1OjAwLjU6IFBN
RSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS4xNjY4MThdIHBjaSAwMDAw
OjA1OjAwLjY6IFsxMDIyOjE1ZTNdIHR5cGUgMDAgY2xhc3MgMHgwNDAzMDAgUENJZSBFbmRwb2lu
dApbICAgIDEuMTY2OTI3XSBwY2kgMDAwMDowNTowMC42OiBCQVIgMCBbbWVtIDB4ZDA0YzAwMDAt
MHhkMDRjN2ZmZl0KWyAgICAxLjE2NzQ1OV0gcGNpIDAwMDA6MDU6MDAuNjogZW5hYmxpbmcgRXh0
ZW5kZWQgVGFncwpbICAgIDEuMTY3NjIwXSBwY2kgMDAwMDowNTowMC42OiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuMTY4NDM0XSBwY2kgMDAwMDowMDowOC4xOiBQ
Q0kgYnJpZGdlIHRvIFtidXMgMDVdClsgICAgMS4xNjg3MDddIHBjaSAwMDAwOjA2OjAwLjA6IFsx
MDIyOjc5MDFdIHR5cGUgMDAgY2xhc3MgMHgwMTA2MDEgUENJZSBFbmRwb2ludApbICAgIDEuMTY4
OTY3XSBwY2kgMDAwMDowNjowMC4wOiBCQVIgNSBbbWVtIDB4ZDAwODUwMDAtMHhkMDA4NTdmZl0K
WyAgICAxLjE2OTAyNV0gcGNpIDAwMDA6MDY6MDAuMDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpb
ICAgIDEuMTY5NTA3XSBwY2kgMDAwMDowNjowMC4wOiAxMjYuMDE2IEdiL3MgYXZhaWxhYmxlIFBD
SWUgYmFuZHdpZHRoLCBsaW1pdGVkIGJ5IDguMCBHVC9zIFBDSWUgeDE2IGxpbmsgYXQgMDAwMDow
MDowOC4yIChjYXBhYmxlIG9mIDI1Mi4wNDggR2IvcyB3aXRoIDE2LjAgR1QvcyBQQ0llIHgxNiBs
aW5rKQpbICAgIDEuMTcwMjEyXSBwY2kgMDAwMDowNjowMC4xOiBbMTAyMjo3OTAxXSB0eXBlIDAw
IGNsYXNzIDB4MDEwNjAxIFBDSWUgRW5kcG9pbnQKWyAgICAxLjE3MDQ3OF0gcGNpIDAwMDA6MDY6
MDAuMTogQkFSIDUgW21lbSAweGQwMDg0MDAwLTB4ZDAwODQ3ZmZdClsgICAgMS4xNzA1MzNdIHBj
aSAwMDAwOjA2OjAwLjE6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE3MTM3OV0gcGNp
IDAwMDA6MDY6MDAuMjogWzEwMjI6MTY0MV0gdHlwZSAwMCBjbGFzcyAweDAyMDAwMCBQQ0llIEVu
ZHBvaW50ClsgICAgMS4xNzE5NDddIHBjaSAwMDAwOjA2OjAwLjI6IEJBUiAwIFttZW0gMHhkMDA2
MDAwMC0weGQwMDdmZmZmXQpbICAgIDEuMTcyNTc0XSBwY2kgMDAwMDowNjowMC4yOiBCQVIgMSBb
bWVtIDB4ZDAwNDAwMDAtMHhkMDA1ZmZmZl0KWyAgICAxLjE3MzE1M10gcGNpIDAwMDA6MDY6MDAu
MjogQkFSIDIgW21lbSAweGQwMDgyMDAwLTB4ZDAwODNmZmYgNjRiaXRdClsgICAgMS4xNzQzODFd
IHBjaSAwMDAwOjA2OjAwLjI6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE3NTA2N10g
cGNpIDAwMDA6MDY6MDAuMzogWzEwMjI6MTY0MV0gdHlwZSAwMCBjbGFzcyAweDAyMDAwMCBQQ0ll
IEVuZHBvaW50ClsgICAgMS4xNzU1MzFdIHBjaSAwMDAwOjA2OjAwLjM6IEJBUiAwIFttZW0gMHhk
MDAyMDAwMC0weGQwMDNmZmZmXQpbICAgIDEuMTc2MDA5XSBwY2kgMDAwMDowNjowMC4zOiBCQVIg
MSBbbWVtIDB4ZDAwMDAwMDAtMHhkMDAxZmZmZl0KWyAgICAxLjE3NjU3Ml0gcGNpIDAwMDA6MDY6
MDAuMzogQkFSIDIgW21lbSAweGQwMDgwMDAwLTB4ZDAwODFmZmYgNjRiaXRdClsgICAgMS4xNzc5
NDNdIHBjaSAwMDAwOjA2OjAwLjM6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE3ODY4
OV0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA2XQpbICAgIDEuMTgyODMy
XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0EgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAg
ICAxLjE4MjgzOV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktBIGRpc2FibGVkClsgICAg
MS4xODMyMzRdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LQiBjb25maWd1cmVkIGZvciBJ
UlEgMApbICAgIDEuMTgzMjM1XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0IgZGlzYWJs
ZWQKWyAgICAxLjE4MzUyNl0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktDIGNvbmZpZ3Vy
ZWQgZm9yIElSUSAwClsgICAgMS4xODM1MjddIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5L
QyBkaXNhYmxlZApbICAgIDEuMTgzODc3XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0Qg
Y29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAxLjE4Mzg3OV0gQUNQSTogUENJOiBJbnRlcnJ1cHQg
bGluayBMTktEIGRpc2FibGVkClsgICAgMS4xODQyMTldIEFDUEk6IFBDSTogSW50ZXJydXB0IGxp
bmsgTE5LRSBjb25maWd1cmVkIGZvciBJUlEgMApbICAgIDEuMTg0MjIxXSBBQ1BJOiBQQ0k6IElu
dGVycnVwdCBsaW5rIExOS0UgZGlzYWJsZWQKWyAgICAxLjE4NDQ4NV0gQUNQSTogUENJOiBJbnRl
cnJ1cHQgbGluayBMTktGIGNvbmZpZ3VyZWQgZm9yIElSUSAwClsgICAgMS4xODQ0ODddIEFDUEk6
IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRiBkaXNhYmxlZApbICAgIDEuMTg0NzUxXSBBQ1BJOiBQ
Q0k6IEludGVycnVwdCBsaW5rIExOS0cgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAxLjE4NDc1
M10gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktHIGRpc2FibGVkClsgICAgMS4xODUwMThd
IEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LSCBjb25maWd1cmVkIGZvciBJUlEgMApbICAg
IDEuMTg1MDIwXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0ggZGlzYWJsZWQKWyAgICAx
LjE5NjE5NV0gQUNQSTogRUM6IGludGVycnVwdCB1bmJsb2NrZWQKWyAgICAxLjE5NjIwMF0gQUNQ
STogRUM6IGV2ZW50IHVuYmxvY2tlZApbICAgIDEuMTk2MjA2XSBBQ1BJOiBFQzogRUNfQ01EL0VD
X1NDPTB4NjY2LCBFQ19EQVRBPTB4NjYyClsgICAgMS4xOTYyMDhdIEFDUEk6IEVDOiBHUEU9MHgz
ClsgICAgMS4xOTYyMTJdIEFDUEk6IFxfU0JfLlBDSTAuTFBDMC5FQzBfOiBCb290IERTRFQgRUMg
aW5pdGlhbGl6YXRpb24gY29tcGxldGUKWyAgICAxLjE5NjIxNl0gQUNQSTogXF9TQl8uUENJMC5M
UEMwLkVDMF86IEVDOiBVc2VkIHRvIGhhbmRsZSB0cmFuc2FjdGlvbnMgYW5kIGV2ZW50cwpbICAg
IDEuMTk2Mzc5XSB4ZW46YmFsbG9vbjogSW5pdGlhbGlzaW5nIGJhbGxvb24gZHJpdmVyClsgICAg
MS4xOTgxMTddIGlvbW11OiBEZWZhdWx0IGRvbWFpbiB0eXBlOiBQYXNzdGhyb3VnaCAoc2V0IHZp
YSBrZXJuZWwgY29tbWFuZCBsaW5lKQpbICAgIDEuMTk4NzUxXSBTQ1NJIHN1YnN5c3RlbSBpbml0
aWFsaXplZApbICAgIDEuMTk4ODE0XSBsaWJhdGEgdmVyc2lvbiAzLjAwIGxvYWRlZC4KWyAgICAx
LjE5ODgxNF0gQUNQSTogYnVzIHR5cGUgVVNCIHJlZ2lzdGVyZWQKWyAgICAxLjE5ODgxNF0gdXNi
Y29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2JmcwpbICAgIDEuMTk4ODE0
XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGh1YgpbICAgIDEuMTk4
ODE0XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBkZXZpY2UgZHJpdmVyIHVzYgpbICAgIDEuMTk4
ODE0XSBwcHNfY29yZTogTGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkClsgICAgMS4xOTg4
MTRdIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUtMjAwNyBS
b2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KWyAgICAxLjE5ODgxNF0gUFRQIGNs
b2NrIHN1cHBvcnQgcmVnaXN0ZXJlZApbICAgIDEuMTk4ODE0XSBFREFDIE1DOiBWZXI6IDMuMC4w
ClsgICAgMS4xOTg4MTRdIGVmaXZhcnM6IFJlZ2lzdGVyZWQgZWZpdmFycyBvcGVyYXRpb25zClsg
ICAgMS4yMDQ4MTZdIE5ldExhYmVsOiBJbml0aWFsaXppbmcKWyAgICAxLjIwNDgyM10gTmV0TGFi
ZWw6ICBkb21haW4gaGFzaCBzaXplID0gMTI4ClsgICAgMS4yMDQ4MjRdIE5ldExhYmVsOiAgcHJv
dG9jb2xzID0gVU5MQUJFTEVEIENJUFNPdjQgQ0FMSVBTTwpbICAgIDEuMjA0ODgwXSBOZXRMYWJl
bDogIHVubGFiZWxlZCB0cmFmZmljIGFsbG93ZWQgYnkgZGVmYXVsdApbICAgIDEuMjA0OTczXSBQ
Q0k6IFVzaW5nIEFDUEkgZm9yIElSUSByb3V0aW5nClsgICAgMS4yODE4MTZdIFBDSTogcGNpX2Nh
Y2hlX2xpbmVfc2l6ZSBzZXQgdG8gNjQgYnl0ZXMKWyAgICAxLjI4MjA1M10gcmVzb3VyY2U6IEV4
cGFuZGVkIHJlc291cmNlIFJlc2VydmVkIGR1ZSB0byBjb25mbGljdCB3aXRoIFBDSSBCdXMgMDAw
MDowMApbICAgIDEuMjgyMDU2XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDAwMDlm
MDAwLTB4MDAwOWZmZmZdClsgICAgMS4yODIwNzJdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBb
bWVtIDB4MDliMDAwMDAtMHgwYmZmZmZmZl0KWyAgICAxLjI4MjA3NV0gZTgyMDogcmVzZXJ2ZSBS
QU0gYnVmZmVyIFttZW0gMHgwOWYwMDAwMC0weDBiZmZmZmZmXQpbICAgIDEuMjgyMDc4XSBlODIw
OiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweGJiNDY2MDAwLTB4YmJmZmZmZmZdClsgICAgMS4y
ODIwODBdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4Yzg3N2YwMDAtMHhjYmZmZmZm
Zl0KWyAgICAxLjI4MjA4M10gZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHhjY2ZmZmRk
OC0weGNmZmZmZmZmXQpbICAgIDEuMjgyMDg5XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21l
bSAweDgwZjM0MDAwMC0weDgwZmZmZmZmZl0KWyAgICAxLjI4MjIwMl0gcGNpIDAwMDA6MDM6MDAu
MDogdmdhYXJiOiBzZXR0aW5nIGFzIGJvb3QgVkdBIGRldmljZQpbICAgIDEuMjgyMjAyXSBwY2kg
MDAwMDowMzowMC4wOiB2Z2FhcmI6IGJyaWRnZSBjb250cm9sIHBvc3NpYmxlClsgICAgMS4yODIy
MDJdIHBjaSAwMDAwOjAzOjAwLjA6IHZnYWFyYjogVkdBIGRldmljZSBhZGRlZDogZGVjb2Rlcz1p
byttZW0sb3ducz1ub25lLGxvY2tzPW5vbmUKWyAgICAxLjI4MjIwMl0gcGNpIDAwMDA6MDU6MDAu
MDogdmdhYXJiOiBzZXR0aW5nIGFzIGJvb3QgVkdBIGRldmljZSAob3ZlcnJpZGluZyBwcmV2aW91
cykKWyAgICAxLjI4MjIwMl0gcGNpIDAwMDA6MDU6MDAuMDogdmdhYXJiOiBicmlkZ2UgY29udHJv
bCBwb3NzaWJsZQpbICAgIDEuMjgyMjAyXSBwY2kgMDAwMDowNTowMC4wOiB2Z2FhcmI6IFZHQSBk
ZXZpY2UgYWRkZWQ6IGRlY29kZXM9aW8rbWVtLG93bnM9bm9uZSxsb2Nrcz1ub25lClsgICAgMS4y
ODIyMDJdIHZnYWFyYjogbG9hZGVkClsgICAgMS4yODIyMTJdIGNsb2Nrc291cmNlOiBTd2l0Y2hl
ZCB0byBjbG9ja3NvdXJjZSB0c2MtZWFybHkKWyAgICAxLjI4NzM5M10gVkZTOiBEaXNrIHF1b3Rh
cyBkcXVvdF82LjYuMApbICAgIDEuMjg3NDI2XSBWRlM6IERxdW90LWNhY2hlIGhhc2ggdGFibGUg
ZW50cmllczogNTEyIChvcmRlciAwLCA0MDk2IGJ5dGVzKQpbICAgIDEuMjg4MTgwXSBBcHBBcm1v
cjogQXBwQXJtb3IgRmlsZXN5c3RlbSBFbmFibGVkClsgICAgMS4yODgyNTFdIHBucDogUG5QIEFD
UEkgaW5pdApbICAgIDEuMjg4NzcyXSBzeXN0ZW0gMDA6MDA6IFttZW0gMHhmZWMwMDAwMC0weGZl
YzAxZmZmXSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjI4ODc3Ml0gc3lzdGVtIDAwOjAw
OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjI4
ODc3Ml0gc3lzdGVtIDAwOjAwOiBbbWVtIDB4ZmRlMDAwMDAtMHhmZGVmZmZmZl0gaGFzIGJlZW4g
cmVzZXJ2ZWQKWyAgICAxLjI5MDE5OV0gc3lzdGVtIDAwOjAzOiBbaW8gIDB4MDQwMC0weDA0Y2Zd
IGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS4yOTAyMDVdIHN5c3RlbSAwMDowMzogW2lvICAweDA0
ZDAtMHgwNGQxXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuMjkwMjEwXSBzeXN0ZW0gMDA6MDM6
IFtpbyAgMHgwNGQ2XSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuMjkwMjE1XSBzeXN0ZW0gMDA6
MDM6IFtpbyAgMHgwYzAwLTB4MGMwMV0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjI5MDIxOV0g
c3lzdGVtIDAwOjAzOiBbaW8gIDB4MGMxNF0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjI5MDIy
M10gc3lzdGVtIDAwOjAzOiBbaW8gIDB4MGM1MC0weDBjNTJdIGhhcyBiZWVuIHJlc2VydmVkClsg
ICAgMS4yOTAyMjldIHN5c3RlbSAwMDowMzogW2lvICAweDBjNmNdIGhhcyBiZWVuIHJlc2VydmVk
ClsgICAgMS4yOTAyMzNdIHN5c3RlbSAwMDowMzogW2lvICAweDBjNmZdIGhhcyBiZWVuIHJlc2Vy
dmVkClsgICAgMS4yOTAyMzhdIHN5c3RlbSAwMDowMzogW2lvICAweDBjZDAtMHgwY2RiXSBoYXMg
YmVlbiByZXNlcnZlZApbICAgIDEuMjkwNDk1XSB1bmNoZWNrZWQgTVNSIGFjY2VzcyBlcnJvcjog
UkRNU1IgZnJvbSAweGMwMDEwMDU4IGF0IHJJUDogMHhmZmZmZmZmZjgxMGE1NWQ4IChuYXRpdmVf
cmVhZF9tc3IrMHg4LzB4NDApClsgICAgMS4yOTA1MDVdIENhbGwgVHJhY2U6ClsgICAgMS4yOTA1
MDddICA8VEFTSz4KWyAgICAxLjI5MDUxMF0gID8gc2hvd19zdGFja19yZWdzKzB4MjIvMHgzMApb
ICAgIDEuMjkwNTE1XSAgPyBleF9oYW5kbGVyX21zcisweDEzYS8weDE2MApbICAgIDEuMjkwNTIw
XSAgPyBmaXh1cF9leGNlcHRpb24rMHhiZC8weDMzMApbICAgIDEuMjkwNTIzXSAgPyBleGNfZ2Vu
ZXJhbF9wcm90ZWN0aW9uKzB4MTRiLzB4NDYwClsgICAgMS4yOTA1MjldICA/IGttZW1sZWFrX2Fs
bG9jKzB4NGIvMHg4MApbICAgIDEuMjkwNTM0XSAgPyBhc21fZXhjX2dlbmVyYWxfcHJvdGVjdGlv
bisweDI3LzB4MzAKWyAgICAxLjI5MDU0MF0gID8gbmF0aXZlX3JlYWRfbXNyKzB4OC8weDQwClsg
ICAgMS4yOTA1NDNdICBhbWRfZ2V0X21tY29uZmlnX3JhbmdlKzB4MmYvMHg4MApbICAgIDEuMjkw
NTQ3XSAgcXVpcmtfYW1kX21tY29uZmlnX2FyZWErMHgyZC8weDEwMApbICAgIDEuMjkwNTUzXSAg
PyBxdWlya19zeXN0ZW1fcGNpX3Jlc291cmNlcysweDM0LzB4MTUwClsgICAgMS4yOTA1NTZdICBw
bnBfZml4dXBfZGV2aWNlKzB4M2YvMHg2MApbICAgIDEuMjkwNTU5XSAgX19wbnBfYWRkX2Rldmlj
ZSsweDI2LzB4MWMwClsgICAgMS4yOTA1NjNdICBwbnBfYWRkX2RldmljZSsweDNlLzB4MTEwClsg
ICAgMS4yOTA1NjVdICA/IF9fcGZ4X3BucGFjcGlfYWxsb2NhdGVkX3Jlc291cmNlKzB4MTAvMHgx
MApbICAgIDEuMjkwNTY4XSAgPyBfX3BmeF9wbnBhY3BpX2FsbG9jYXRlZF9yZXNvdXJjZSsweDEw
LzB4MTAKWyAgICAxLjI5MDU3MV0gID8gYWNwaV93YWxrX3Jlc291cmNlcysweGYwLzB4MTcwClsg
ICAgMS4yOTA1NzVdICBwbnBhY3BpX2FkZF9kZXZpY2VfaGFuZGxlcisweDI1Yy8weDNhMApbICAg
IDEuMjkwNTgyXSAgYWNwaV9uc19nZXRfZGV2aWNlX2NhbGxiYWNrKzB4MTBlLzB4MWMwClsgICAg
MS4yOTA1ODddICA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDI3LzB4NTAKWyAgICAx
LjI5MDU5Ml0gIGFjcGlfbnNfd2Fsa19uYW1lc3BhY2UrMHgxNzYvMHgzMzAKWyAgICAxLjI5MDU5
NF0gID8gX19wZnhfYWNwaV9uc19nZXRfZGV2aWNlX2NhbGxiYWNrKzB4MTAvMHgxMApbICAgIDEu
MjkwNTk3XSAgYWNwaV9nZXRfZGV2aWNlcysweDllLzB4MTUwClsgICAgMS4yOTA2MDBdICA/IF9f
cGZ4X3BucGFjcGlfYWRkX2RldmljZV9oYW5kbGVyKzB4MTAvMHgxMApbICAgIDEuMjkwNjAzXSAg
PyBfX3BmeF9wbnBhY3BpX2luaXQrMHgxMC8weDEwClsgICAgMS4yOTA2MDZdICBwbnBhY3BpX2lu
aXQrMHg1NS8weDgwClsgICAgMS4yOTA2MDhdICBkb19vbmVfaW5pdGNhbGwrMHg0OS8weDMyMApb
ICAgIDEuMjkwNjE0XSAga2VybmVsX2luaXRfZnJlZWFibGUrMHgzMDEvMHg0NDAKWyAgICAxLjI5
MDYxOV0gID8gX19wZnhfa2VybmVsX2luaXQrMHgxMC8weDEwClsgICAgMS4yOTA2MjFdICBrZXJu
ZWxfaW5pdCsweDFhLzB4MWQwClsgICAgMS4yOTA2MjNdICByZXRfZnJvbV9mb3JrKzB4M2MvMHg2
MApbICAgIDEuMjkwNjI3XSAgPyBfX3BmeF9rZXJuZWxfaW5pdCsweDEwLzB4MTAKWyAgICAxLjI5
MDYyOF0gIHJldF9mcm9tX2ZvcmtfYXNtKzB4MWEvMHgzMApbICAgIDEuMjkwNjMzXSAgPC9UQVNL
PgpbICAgIDEuMjkwNzE1XSBzeXN0ZW0gMDA6MDQ6IFttZW0gMHgwMDBlMDAwMC0weDAwMGZmZmZm
XSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjI5MDcyMl0gc3lzdGVtIDAwOjA0OiBbbWVt
IDB4ZmYwMDAwMDAtMHhmZmZmZmZmZl0gY291bGQgbm90IGJlIHJlc2VydmVkClsgICAgMS4yOTUz
NzldIHBucDogUG5QIEFDUEk6IGZvdW5kIDUgZGV2aWNlcwpbICAgIDEuMzEwMTgyXSBQTS1UaW1l
ciBmYWlsZWQgY29uc2lzdGVuY3kgY2hlY2sgICgweGZmZmZmZikgLSBhYm9ydGluZy4KWyAgICAx
LjMxMDUxM10gTkVUOiBSZWdpc3RlcmVkIFBGX0lORVQgcHJvdG9jb2wgZmFtaWx5ClsgICAgMS4z
MTA3OTJdIElQIGlkZW50cyBoYXNoIHRhYmxlIGVudHJpZXM6IDEzMTA3MiAob3JkZXI6IDgsIDEw
NDg1NzYgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjMxMjg3NV0gdGNwX2xpc3Rlbl9wb3J0YWRkcl9o
YXNoIGhhc2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5l
YXIpClsgICAgMS4zMTI5NDBdIFRhYmxlLXBlcnR1cmIgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUz
NiAob3JkZXI6IDYsIDI2MjE0NCBieXRlcywgbGluZWFyKQpbICAgIDEuMzEzMDMxXSBUQ1AgZXN0
YWJsaXNoZWQgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUzNiAob3JkZXI6IDcsIDUyNDI4OCBieXRl
cywgbGluZWFyKQpbICAgIDEuMzEzNDI2XSBUQ1AgYmluZCBoYXNoIHRhYmxlIGVudHJpZXM6IDY1
NTM2IChvcmRlcjogOSwgMjA5NzE1MiBieXRlcywgbGluZWFyKQpbICAgIDEuMzEzNjMyXSBUQ1A6
IEhhc2ggdGFibGVzIGNvbmZpZ3VyZWQgKGVzdGFibGlzaGVkIDY1NTM2IGJpbmQgNjU1MzYpClsg
ICAgMS4zMTQwMDldIFVEUCBoYXNoIHRhYmxlIGVudHJpZXM6IDQwOTYgKG9yZGVyOiA1LCAxMzEw
NzIgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjMxNDA1N10gVURQLUxpdGUgaGFzaCB0YWJsZSBlbnRy
aWVzOiA0MDk2IChvcmRlcjogNSwgMTMxMDcyIGJ5dGVzLCBsaW5lYXIpClsgICAgMS4zMTQzOTNd
IE5FVDogUmVnaXN0ZXJlZCBQRl9VTklYL1BGX0xPQ0FMIHByb3RvY29sIGZhbWlseQpbICAgIDEu
MzE0NDIzXSBORVQ6IFJlZ2lzdGVyZWQgUEZfWERQIHByb3RvY29sIGZhbWlseQpbICAgIDEuMzE0
NDMzXSBwY2kgMDAwMDowMzowMC4wOiBST00gW21lbSAweGZmZmUwMDAwLTB4ZmZmZmZmZmYgcHJl
Zl06IGNhbid0IGNsYWltOyBubyBjb21wYXRpYmxlIGJyaWRnZSB3aW5kb3cKWyAgICAxLjMxNDQ3
M10gcGNpIDAwMDA6MDM6MDAuMDogUk9NIFttZW0gMHhkMDcyMDAwMC0weGQwNzNmZmZmIHByZWZd
OiBhc3NpZ25lZApbICAgIDEuMzE0NDc4XSBwY2kgMDAwMDowMjowMC4wOiBQQ0kgYnJpZGdlIHRv
IFtidXMgMDNdClsgICAgMS4zMTQ0OTldIHBjaSAwMDAwOjAyOjAwLjA6ICAgYnJpZGdlIHdpbmRv
dyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4zMTQ1MTBdIHBjaSAwMDAwOjAyOjAwLjA6ICAg
YnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdmZmZmZl0KWyAgICAxLjMxNDUxOF0g
cGNpIDAwMDA6MDI6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNh
MDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzE0NTMwXSBwY2kgMDAwMDowMTowMC4wOiBQQ0kg
YnJpZGdlIHRvIFtidXMgMDItMDNdClsgICAgMS4zMTQ1MzZdIHBjaSAwMDAwOjAxOjAwLjA6ICAg
YnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4zMTQ1NDVdIHBjaSAwMDAw
OjAxOjAwLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdmZmZmZl0KWyAg
ICAxLjMxNDU1Ml0gcGNpIDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmYzkw
MDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzE0NTY1XSBwY2kgMDAwMDow
MDowMS4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEtMDNdClsgICAgMS4zMTQ1NzJdIHBjaSAwMDAw
OjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4zMTQ1
ODBdIHBjaSAwMDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhk
MDhmZmZmZl0KWyAgICAxLjMxNDU4N10gcGNpIDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2luZG93
IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzE0NTk4
XSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDRdClsgICAgMS4zMTQ2MDhd
IHBjaSAwMDAwOjAwOjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA1MDAwMDAtMHhkMDVm
ZmZmZl0KWyAgICAxLjMxNDYyOF0gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVz
IDA1XQpbICAgIDEuMzE0NjMzXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lv
ICAweDEwMDAtMHgxZmZmXQpbICAgIDEuMzE0NjQxXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRn
ZSB3aW5kb3cgW21lbSAweGQwMTAwMDAwLTB4ZDA0ZmZmZmZdClsgICAgMS4zMTQ2NDddIHBjaSAw
MDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjODAxZmZm
ZmYgNjRiaXQgcHJlZl0KWyAgICAxLjMxNDY1OV0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRn
ZSB0byBbYnVzIDA2XQpbICAgIDEuMzE0NjY4XSBwY2kgMDAwMDowMDowOC4yOiAgIGJyaWRnZSB3
aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZDAwZmZmZmZdClsgICAgMS4zMTQ2ODZdIHBjaV9idXMg
MDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAwMC0weDBjZjcgd2luZG93XQpbICAgIDEuMzE0
Njg5XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDUgW2lvICAweDBkMDAtMHhmZmZmIHdpbmRv
d10KWyAgICAxLjMxNDY5MV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA2IFttZW0gMHgwMDBh
MDAwMC0weDAwMGJmZmZmIHdpbmRvd10KWyAgICAxLjMxNDY5M10gcGNpX2J1cyAwMDAwOjAwOiBy
ZXNvdXJjZSA3IFttZW0gMHgwMDBjMDAwMC0weDAwMGNmZmZmIHdpbmRvd10KWyAgICAxLjMxNDY5
NV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4IFttZW0gMHgwMDBkMDAwMC0weDAwMGVmZmZm
IHdpbmRvd10KWyAgICAxLjMxNDY5N10gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA5IFttZW0g
MHhkMDAwMDAwMC0weGVmZmZmZmZmIHdpbmRvd10KWyAgICAxLjMxNDY5OV0gcGNpX2J1cyAwMDAw
OjAwOiByZXNvdXJjZSAxMCBbbWVtIDB4ZjgwMDAwMDAtMHhmZWFmZmZmZiB3aW5kb3ddClsgICAg
MS4zMTQ3MDJdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTEgW21lbSAweGZlZDQ1MDAwLTB4
ZmVkODExZmYgd2luZG93XQpbICAgIDEuMzE0NzA0XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNl
IDEyIFttZW0gMHhmZWQ4MTkwMC0weGZlZDgxZmZmIHdpbmRvd10KWyAgICAxLjMxNDcwNl0gcGNp
X2J1cyAwMDAwOjAwOiByZXNvdXJjZSAxMyBbbWVtIDB4ZmVkYzAwMDAtMHhmZWRjMGZmZiB3aW5k
b3ddClsgICAgMS4zMTQ3MDhdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTQgW21lbSAweGZl
ZGM2MDAwLTB4ZmVkYzZmZmYgd2luZG93XQpbICAgIDEuMzE0NzEwXSBwY2lfYnVzIDAwMDA6MDA6
IHJlc291cmNlIDE1IFttZW0gMHg4NTAyMDAwMDAtMHhmY2FmZmZmZmZmIHdpbmRvd10KWyAgICAx
LjMxNDcxMl0gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAwIFtpbyAgMHgyMDAwLTB4MmZmZl0K
WyAgICAxLjMxNDcxNF0gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAxIFttZW0gMHhkMDYwMDAw
MC0weGQwOGZmZmZmXQpbICAgIDEuMzE0NzE2XSBwY2lfYnVzIDAwMDA6MDE6IHJlc291cmNlIDIg
W21lbSAweGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4zMTQ3MTld
IHBjaV9idXMgMDAwMDowMjogcmVzb3VyY2UgMCBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4z
MTQ3MjBdIHBjaV9idXMgMDAwMDowMjogcmVzb3VyY2UgMSBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdm
ZmZmZl0KWyAgICAxLjMxNDcyMl0gcGNpX2J1cyAwMDAwOjAyOiByZXNvdXJjZSAyIFttZW0gMHhm
YzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzE0NzI0XSBwY2lfYnVz
IDAwMDA6MDM6IHJlc291cmNlIDAgW2lvICAweDIwMDAtMHgyZmZmXQpbICAgIDEuMzE0NzI2XSBw
Y2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDEgW21lbSAweGQwNjAwMDAwLTB4ZDA3ZmZmZmZdClsg
ICAgMS4zMTQ3MjhdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMiBbbWVtIDB4ZmM5MDAwMDAw
MC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjMxNDczMF0gcGNpX2J1cyAwMDAwOjA0
OiByZXNvdXJjZSAxIFttZW0gMHhkMDUwMDAwMC0weGQwNWZmZmZmXQpbICAgIDEuMzE0NzMzXSBw
Y2lfYnVzIDAwMDA6MDU6IHJlc291cmNlIDAgW2lvICAweDEwMDAtMHgxZmZmXQpbICAgIDEuMzE0
NzM0XSBwY2lfYnVzIDAwMDA6MDU6IHJlc291cmNlIDEgW21lbSAweGQwMTAwMDAwLTB4ZDA0ZmZm
ZmZdClsgICAgMS4zMTQ3MzZdIHBjaV9idXMgMDAwMDowNTogcmVzb3VyY2UgMiBbbWVtIDB4ZmM3
MDAwMDAwMC0weGZjODAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjMxNDczOV0gcGNpX2J1cyAw
MDAwOjA2OiByZXNvdXJjZSAxIFttZW0gMHhkMDAwMDAwMC0weGQwMGZmZmZmXQpbICAgIDEuMzE1
MTI4XSBwY2kgMDAwMDowMTowMC4wOiBDTFMgbWlzbWF0Y2ggKDY0ICE9IDQ4NCksIHVzaW5nIDY0
IGJ5dGVzClsgICAgMS4zMTUyODRdIHBjaSAwMDAwOjAzOjAwLjE6IEQwIHBvd2VyIHN0YXRlIGRl
cGVuZHMgb24gMDAwMDowMzowMC4wClsgICAgMS4zMTU1NjRdIHBjaSAwMDAwOjA1OjAwLjE6IEQw
IHBvd2VyIHN0YXRlIGRlcGVuZHMgb24gMDAwMDowNTowMC4wClsgICAgMS4zMTU1NzNdIHBjaSAw
MDAwOjA1OjAwLjM6IGV4dGVuZGluZyBkZWxheSBhZnRlciBwb3dlci1vbiBmcm9tIEQzaG90IHRv
IDIwIG1zZWMKWyAgICAxLjM2NDg4OV0gcGNpIDAwMDA6MDU6MDAuMzogcXVpcmtfdXNiX2Vhcmx5
X2hhbmRvZmYrMHgwLzB4NzUwIHRvb2sgNDgxNTMgdXNlY3MKWyAgICAxLjM2NDkxMF0gcGNpIDAw
MDA6MDU6MDAuNDogZXh0ZW5kaW5nIGRlbGF5IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8g
MjAgbXNlYwpbICAgIDEuNDA5OTAxXSBwY2kgMDAwMDowNTowMC40OiBxdWlya191c2JfZWFybHlf
aGFuZG9mZisweDAvMHg3NTAgdG9vayA0MzkzMiB1c2VjcwpbICAgIDEuNDA5OTc3XSBQQ0ktRE1B
OiBVc2luZyBzb2Z0d2FyZSBib3VuY2UgYnVmZmVyaW5nIGZvciBJTyAoU1dJT1RMQikKWyAgICAx
LjQwOTk3OV0gc29mdHdhcmUgSU8gVExCOiBtYXBwZWQgW21lbSAweDAwMDAwMDAwYzQ3N2YwMDAt
MHgwMDAwMDAwMGM4NzdmMDAwXSAoNjRNQikKWyAgICAxLjQxMDA4OF0gY2xvY2tzb3VyY2U6IHRz
YzogbWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MmIyOThjMTc1YjIsIG1h
eF9pZGxlX25zOiA0NDA3OTUyNTYyNzkgbnMKWyAgICAxLjQxMDI1N10gVHJ5aW5nIHRvIHVucGFj
ayByb290ZnMgaW1hZ2UgYXMgaW5pdHJhbWZzLi4uClsgICAgMS40MTAzOTZdIGNsb2Nrc291cmNl
OiBTd2l0Y2hlZCB0byBjbG9ja3NvdXJjZSB0c2MKWyAgICAxLjQxMjMyNF0gSW5pdGlhbGlzZSBz
eXN0ZW0gdHJ1c3RlZCBrZXlyaW5ncwpbICAgIDEuNDEyMzYxXSBLZXkgdHlwZSBibGFja2xpc3Qg
cmVnaXN0ZXJlZApbICAgIDEuNDEyNzQ3XSB3b3JraW5nc2V0OiB0aW1lc3RhbXBfYml0cz0zNiBt
YXhfb3JkZXI9MjEgYnVja2V0X29yZGVyPTAKWyAgICAxLjQxMjc5Ml0gemJ1ZDogbG9hZGVkClsg
ICAgMS40MTQyNDNdIHNxdWFzaGZzOiB2ZXJzaW9uIDQuMCAoMjAwOS8wMS8zMSkgUGhpbGxpcCBM
b3VnaGVyClsgICAgMS40MTQ5NDddIGZ1c2U6IGluaXQgKEFQSSB2ZXJzaW9uIDcuNDEpClsgICAg
MS40MTU4ODNdIGludGVncml0eTogUGxhdGZvcm0gS2V5cmluZyBpbml0aWFsaXplZApbICAgIDEu
NDI5NDgzXSBLZXkgdHlwZSBhc3ltbWV0cmljIHJlZ2lzdGVyZWQKWyAgICAxLjQyOTQ5Ml0gQXN5
bW1ldHJpYyBrZXkgcGFyc2VyICd4NTA5JyByZWdpc3RlcmVkClsgICAgMS40Mjk2NTldIEJsb2Nr
IGxheWVyIFNDU0kgZ2VuZXJpYyAoYnNnKSBkcml2ZXIgdmVyc2lvbiAwLjQgbG9hZGVkIChtYWpv
ciAyNDUpClsgICAgMS40Mjk5NTddIGlvIHNjaGVkdWxlciBtcS1kZWFkbGluZSByZWdpc3RlcmVk
ClsgICAgMS40MzQzMDJdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBlcnJvciAtRUlOVkFMOiBJUlEg
aW5kZXggMCBub3QgZm91bmQKWyAgICAxLjQzNDQxMl0gYW1kX2dwaW8gQU1ESTAwMzA6MDA6IHBy
b2JlIHdpdGggZHJpdmVyIGFtZF9ncGlvIGZhaWxlZCB3aXRoIGVycm9yIC0yMgpbICAgIDEuNDM1
NDgyXSBsZWR0cmlnLWNwdTogcmVnaXN0ZXJlZCB0byBpbmRpY2F0ZSBhY3Rpdml0eSBvbiBDUFVz
ClsgICAgMS40MzYyMTNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogUE1FOiBTaWduYWxpbmcgd2l0
aCBJUlEgODcKWyAgICAxLjQzNjYzNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IGVuYWJs
ZWQgd2l0aCBJUlEgODcKWyAgICAxLjQzNjc0NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBwY2ll
aHA6IFNsb3QgIzAgQXR0bkJ0bi0gUHdyQ3RybC0gTVJMLSBBdHRuSW5kLSBQd3JJbmQtIEhvdFBs
dWcrIFN1cnByaXNlKyBJbnRlcmxvY2stIE5vQ29tcGwrIEliUHJlc0Rpcy0gTExBY3RSZXArClsg
ICAgMS40MzgwMDFdIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogUE1FOiBTaWduYWxpbmcgd2l0aCBJ
UlEgODgKWyAgICAxLjQzODU0OV0gcGNpZXBvcnQgMDAwMDowMDowMi40OiBBRVI6IGVuYWJsZWQg
d2l0aCBJUlEgODgKWyAgICAxLjQzOTQ3N10gcGNpZXBvcnQgMDAwMDowMDowOC4xOiBQTUU6IFNp
Z25hbGluZyB3aXRoIElSUSA4OQpbICAgIDEuNDQwNzAwXSBwY2llcG9ydCAwMDAwOjAwOjA4LjI6
IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDkwClsgICAgMS40NDMxMjJdIHNocGNocDogU3RhbmRh
cmQgSG90IFBsdWcgUENJIENvbnRyb2xsZXIgRHJpdmVyIHZlcnNpb246IDAuNApbICAgIDEuNDQ3
NjEzXSBBQ1BJOiBBQzogQUMgQWRhcHRlciBbQUNBRF0gKG9uLWxpbmUpClsgICAgMS40NDc4OTNd
IGlucHV0OiBQb3dlciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAv
UE5QMEMwQzowMC9pbnB1dC9pbnB1dDAKWyAgICAxLjQ0ODAxMl0gQUNQSTogYnV0dG9uOiBQb3dl
ciBCdXR0b24gW1BXUkJdClsgICAgMS40NDgyMjVdIGlucHV0OiBMaWQgU3dpdGNoIGFzIC9kZXZp
Y2VzL0xOWFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBDMEQ6MDAvaW5wdXQvaW5wdXQxClsgICAg
MS40NDgzMThdIEFDUEk6IGJ1dHRvbjogTGlkIFN3aXRjaCBbTElEXQpbICAgIDEuNDQ4NTEyXSBp
bnB1dDogUG93ZXIgQnV0dG9uIGFzIC9kZXZpY2VzL0xOWFNZU1RNOjAwL0xOWFBXUkJOOjAwL2lu
cHV0L2lucHV0MgpbICAgIDEuNDQ4NjQ0XSBBQ1BJOiBidXR0b246IFBvd2VyIEJ1dHRvbiBbUFdS
Rl0KWyAgICAxLjQ0OTM2N10gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAg
bm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEuNDQ5ODIwXSBbRmlybXdhcmUgQnVnXTog
QUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApClsgICAgMS40
NTAyNTJdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0
ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjQ1MDk3MF0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQg
Qy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEuNDUxNjExXSBbRmly
bXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgw
eDApClsgICAgMS40NTIyOTJdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgw
IG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjQ1MjkyMF0gW0Zpcm13YXJlIEJ1Z106
IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEu
NDUzNDc2XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9y
dGVkIGJ5IEhXICgweDApClsgICAgMS40NTQwNjBdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlU
IEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjQ1NDQ2MF0gW0Zp
cm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAo
MHgwKQpbICAgIDEuNDU0ODg1XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4
MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApClsgICAgMS40NTU0MDJdIFtGaXJtd2FyZSBCdWdd
OiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAx
LjQ1ODM1OF0gdGhlcm1hbCBMTlhUSEVSTTowMDogcmVnaXN0ZXJlZCBhcyB0aGVybWFsX3pvbmUw
ClsgICAgMS40NTgzNjJdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBbVFowMV0gKDQ3IEMp
ClsgICAgMS40NTk1ODJdIEFDUEk6IGJhdHRlcnk6IFNsb3QgW0JBVFRdIChiYXR0ZXJ5IGFic2Vu
dCkKWyAgICAxLjQ1OTkyOF0geGVuX21jZWxvZzogRmFpbGVkIHRvIGdldCBDUFUgbnVtYmVycwpb
ICAgIDEuNDYxNzQ1XSB4ZW5fYWNwaV9wcm9jZXNzb3I6IFVwbG9hZGluZyBYZW4gcHJvY2Vzc29y
IFBNIGluZm8KWyAgICAxLjQ2ODIzOV0gU2VyaWFsOiA4MjUwLzE2NTUwIGRyaXZlciwgMzIgcG9y
dHMsIElSUSBzaGFyaW5nIGVuYWJsZWQKWyAgICAxLjQ3NzgzNV0gaHBldF9hY3BpX2FkZDogbm8g
YWRkcmVzcyBvciBpcnFzIGluIF9DUlMKWyAgICAxLjQ3Nzg3OV0gTGludXggYWdwZ2FydCBpbnRl
cmZhY2UgdjAuMTAzClsgICAgMS40Nzk4MTZdIHRwbV90aXMgTVNGVDAxMDE6MDA6IFtGaXJtd2Fy
ZSBCdWddOiBmYWlsZWQgdG8gZ2V0IFRQTTIgQUNQSSB0YWJsZQpbICAgIDEuNDc5OTk1XSB0cG1f
dGlzIE1TRlQwMTAxOjAwOiBwcm9iZSB3aXRoIGRyaXZlciB0cG1fdGlzIGZhaWxlZCB3aXRoIGVy
cm9yIC0yMgpbICAgIDEuNDgwMTI3XSB0cG1fY3JiIE1TRlQwMTAxOjAwOiBbRmlybXdhcmUgQnVn
XTogZmFpbGVkIHRvIGdldCBUUE0yIEFDUEkgdGFibGUKWyAgICAxLjQ4MDE1M10gdHBtX2NyYiBN
U0ZUMDEwMTowMDogcHJvYmUgd2l0aCBkcml2ZXIgdHBtX2NyYiBmYWlsZWQgd2l0aCBlcnJvciAt
MjIKWyAgICAxLjQ5MTc5N10gbG9vcDogbW9kdWxlIGxvYWRlZApbICAgIDEuNDkyNjY2XSB0dW46
IFVuaXZlcnNhbCBUVU4vVEFQIGRldmljZSBkcml2ZXIsIDEuNgpbICAgIDEuNDkyODE4XSBQUFAg
Z2VuZXJpYyBkcml2ZXIgdmVyc2lvbiAyLjQuMgpbICAgIDEuNDkyOTUwXSB4ZW5fbmV0ZnJvbnQ6
IEluaXRpYWxpc2luZyBYZW4gdmlydHVhbCBldGhlcm5ldCBkcml2ZXIKWyAgICAxLjQ5MzUzOV0g
VkZJTyAtIFVzZXIgTGV2ZWwgbWV0YS1kcml2ZXIgdmVyc2lvbjogMC4zClsgICAgMS40OTQwODBd
IHhoY2lfaGNkIDAwMDA6MDU6MDAuMzogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjQ5NDA5
NV0geGhjaV9oY2QgMDAwMDowNTowMC4zOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25l
ZCBidXMgbnVtYmVyIDEKWyAgICAxLjQ5NDIyNF0geGhjaV9oY2QgMDAwMDowNTowMC4zOiBoY2Mg
cGFyYW1zIDB4MDI2OGZmZTUgaGNpIHZlcnNpb24gMHgxMTAgcXVpcmtzIDB4MDAwMDAyMDAwMDAw
MDAxMApbICAgIDEuNDk1Mjk3XSB4aGNpX2hjZCAwMDAwOjA1OjAwLjM6IHhIQ0kgSG9zdCBDb250
cm9sbGVyClsgICAgMS40OTUzMDZdIHhoY2lfaGNkIDAwMDA6MDU6MDAuMzogbmV3IFVTQiBidXMg
cmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAyClsgICAgMS40OTUzMTJdIHhoY2lfaGNk
IDAwMDA6MDU6MDAuMzogSG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVuaGFuY2VkIFN1cGVyU3BlZWQK
WyAgICAxLjQ5NTQzNl0gdXNiIHVzYjE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0x
ZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjEyClsgICAgMS40OTU0MzldIHVzYiB1
c2IxOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1i
ZXI9MQpbICAgIDEuNDk1NDQwXSB1c2IgdXNiMTogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xs
ZXIKWyAgICAxLjQ5NTQ0Ml0gdXNiIHVzYjE6IE1hbnVmYWN0dXJlcjogTGludXggNi4xMi4wLXJj
NS1nNWM2ODA4ZDFhOWRkIHhoY2ktaGNkClsgICAgMS40OTU0NDNdIHVzYiB1c2IxOiBTZXJpYWxO
dW1iZXI6IDAwMDA6MDU6MDAuMwpbICAgIDEuNDk1ODI3XSBodWIgMS0wOjEuMDogVVNCIGh1YiBm
b3VuZApbICAgIDEuNDk1ODUxXSBodWIgMS0wOjEuMDogNCBwb3J0cyBkZXRlY3RlZApbICAgIDEu
NDk2ODc1XSB1c2IgdXNiMjogV2UgZG9uJ3Qga25vdyB0aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZv
ciB0aGlzIGhvc3QsIGRpc2FibGluZyBMUE0uClsgICAgMS40OTY5NDldIHVzYiB1c2IyOiBOZXcg
VVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmlj
ZT0gNi4xMgpbICAgIDEuNDk2OTUxXSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczog
TWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICAxLjQ5Njk1M10gdXNiIHVzYjI6
IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMS40OTY5NTRdIHVzYiB1c2IyOiBN
YW51ZmFjdHVyZXI6IExpbnV4IDYuMTIuMC1yYzUtZzVjNjgwOGQxYTlkZCB4aGNpLWhjZApbICAg
IDEuNDk2OTU2XSB1c2IgdXNiMjogU2VyaWFsTnVtYmVyOiAwMDAwOjA1OjAwLjMKWyAgICAxLjQ5
NzM0M10gaHViIDItMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAxLjQ5NzM2M10gaHViIDItMDox
LjA6IDIgcG9ydHMgZGV0ZWN0ZWQKWyAgICAxLjQ5ODE4N10geGhjaV9oY2QgMDAwMDowNTowMC40
OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDEuNDk4MTk4XSB4aGNpX2hjZCAwMDAwOjA1OjAw
LjQ6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMwpbICAgIDEu
NDk4MzE1XSB4aGNpX2hjZCAwMDAwOjA1OjAwLjQ6IGhjYyBwYXJhbXMgMHgwMjY4ZmZlNSBoY2kg
dmVyc2lvbiAweDExMCBxdWlya3MgMHgwMDAwMDIwMDAwMDAwMDEwClsgICAgMS40OTkzNzFdIHho
Y2lfaGNkIDAwMDA6MDU6MDAuNDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjQ5OTM3OV0g
eGhjaV9oY2QgMDAwMDowNTowMC40OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBi
dXMgbnVtYmVyIDQKWyAgICAxLjQ5OTM4NV0geGhjaV9oY2QgMDAwMDowNTowMC40OiBIb3N0IHN1
cHBvcnRzIFVTQiAzLjEgRW5oYW5jZWQgU3VwZXJTcGVlZApbICAgIDEuNDk5NDc2XSB1c2IgdXNi
MzogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBi
Y2REZXZpY2U9IDYuMTIKWyAgICAxLjQ5OTQ3OF0gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIHN0
cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAgMS40OTk0ODBdIHVz
YiB1c2IzOiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDEuNDk5NDgxXSB1c2Ig
dXNiMzogTWFudWZhY3R1cmVyOiBMaW51eCA2LjEyLjAtcmM1LWc1YzY4MDhkMWE5ZGQgeGhjaS1o
Y2QKWyAgICAxLjQ5OTQ4Ml0gdXNiIHVzYjM6IFNlcmlhbE51bWJlcjogMDAwMDowNTowMC40Clsg
ICAgMS40OTk4MjldIGh1YiAzLTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMS40OTk4NDhdIGh1
YiAzLTA6MS4wOiA0IHBvcnRzIGRldGVjdGVkClsgICAgMS41MDA4MzZdIHVzYiB1c2I0OiBXZSBk
b24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZvciBMUE0gZm9yIHRoaXMgaG9zdCwgZGlzYWJsaW5n
IExQTS4KWyAgICAxLjUwMDkxNF0gdXNiIHVzYjQ6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl
bmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMywgYmNkRGV2aWNlPSA2LjEyClsgICAgMS41MDA5MTdd
IHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJp
YWxOdW1iZXI9MQpbICAgIDEuNTAwOTE4XSB1c2IgdXNiNDogUHJvZHVjdDogeEhDSSBIb3N0IENv
bnRyb2xsZXIKWyAgICAxLjUwMDkyMF0gdXNiIHVzYjQ6IE1hbnVmYWN0dXJlcjogTGludXggNi4x
Mi4wLXJjNS1nNWM2ODA4ZDFhOWRkIHhoY2ktaGNkClsgICAgMS41MDA5MjFdIHVzYiB1c2I0OiBT
ZXJpYWxOdW1iZXI6IDAwMDA6MDU6MDAuNApbICAgIDEuNTAxNDcxXSBodWIgNC0wOjEuMDogVVNC
IGh1YiBmb3VuZApbICAgIDEuNTAxNDkzXSBodWIgNC0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZApb
ICAgIDEuNTAyMTg4XSBpODA0MjogUE5QOiBQUy8yIENvbnRyb2xsZXIgW1BOUDAzMDM6S0JDMF0g
YXQgMHg2MCwweDY0IGlycSAxClsgICAgMS41MDIxOTFdIGk4MDQyOiBQTlA6IFBTLzIgYXBwZWFy
cyB0byBoYXZlIEFVWCBwb3J0IGRpc2FibGVkLCBpZiB0aGlzIGlzIGluY29ycmVjdCBwbGVhc2Ug
Ym9vdCB3aXRoIGk4MDQyLm5vcG5wClsgICAgMS41MDI1NDddIGk4MDQyOiBXYXJuaW5nOiBLZXls
b2NrIGFjdGl2ZQpbICAgIDEuNTAyODEyXSBzZXJpbzogaTgwNDIgS0JEIHBvcnQgYXQgMHg2MCww
eDY0IGlycSAxClsgICAgMS41MDMxNjNdIG1vdXNlZGV2OiBQUy8yIG1vdXNlIGRldmljZSBjb21t
b24gZm9yIGFsbCBtaWNlClsgICAgMS41MDM3MjVdIHJ0Y19jbW9zIDAwOjAxOiBSVEMgY2FuIHdh
a2UgZnJvbSBTNApbICAgIDEuNTA0MDE4XSBydGNfY21vcyAwMDowMTogcmVnaXN0ZXJlZCBhcyBy
dGMwClsgICAgMS41MDQwNzZdIHJ0Y19jbW9zIDAwOjAxOiBzZXR0aW5nIHN5c3RlbSBjbG9jayB0
byAyMDI0LTExLTE0VDAzOjE2OjAxIFVUQyAoMTczMTU1NDE2MSkKWyAgICAxLjUwNDE1Ml0gcnRj
X2Ntb3MgMDA6MDE6IG5vIGFsYXJtcywgMTE0IGJ5dGVzIG52cmFtClsgICAgMS41MDQxNzNdIGky
Y19kZXY6IGkyYyAvZGV2IGVudHJpZXMgZHJpdmVyClsgICAgMS41MDQyMTRdIGRldmljZS1tYXBw
ZXI6IGNvcmU6IENPTkZJR19JTUFfRElTQUJMRV9IVEFCTEUgaXMgZGlzYWJsZWQuIER1cGxpY2F0
ZSBJTUEgbWVhc3VyZW1lbnRzIHdpbGwgbm90IGJlIHJlY29yZGVkIGluIHRoZSBJTUEgbG9nLgpb
ICAgIDEuNTA0MjM3XSBkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4wLjMKWyAgICAx
LjUwNDQ2OF0gZGV2aWNlLW1hcHBlcjogaW9jdGw6IDQuNDguMC1pb2N0bCAoMjAyMy0wMy0wMSkg
aW5pdGlhbGlzZWQ6IGRtLWRldmVsQGxpc3RzLmxpbnV4LmRldgpbICAgIDEuNTA0NTM0XSBwbGF0
Zm9ybSBlaXNhLjA6IFByb2JpbmcgRUlTQSBidXMgMApbICAgIDEuNTA0NTM4XSBwbGF0Zm9ybSBl
aXNhLjA6IEVJU0E6IENhbm5vdCBhbGxvY2F0ZSByZXNvdXJjZSBmb3IgbWFpbmJvYXJkClsgICAg
MS41MDQ1NDFdIHBsYXRmb3JtIGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBF
SVNBIHNsb3QgMQpbICAgIDEuNTA0NTQ0XSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0
ZSByZXNvdXJjZSBmb3IgRUlTQSBzbG90IDIKWyAgICAxLjUwNDU0Nl0gcGxhdGZvcm0gZWlzYS4w
OiBDYW5ub3QgYWxsb2NhdGUgcmVzb3VyY2UgZm9yIEVJU0Egc2xvdCAzClsgICAgMS41MDQ1NDhd
IHBsYXRmb3JtIGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBFSVNBIHNsb3Qg
NApbICAgIDEuNTA0NTUxXSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0ZSByZXNvdXJj
ZSBmb3IgRUlTQSBzbG90IDUKWyAgICAxLjUwNDU1M10gcGxhdGZvcm0gZWlzYS4wOiBDYW5ub3Qg
YWxsb2NhdGUgcmVzb3VyY2UgZm9yIEVJU0Egc2xvdCA2ClsgICAgMS41MDQ1NTVdIHBsYXRmb3Jt
IGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBFSVNBIHNsb3QgNwpbICAgIDEu
NTA0NTU4XSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0ZSByZXNvdXJjZSBmb3IgRUlT
QSBzbG90IDgKWyAgICAxLjUwNDU1OV0gcGxhdGZvcm0gZWlzYS4wOiBFSVNBOiBEZXRlY3RlZCAw
IGNhcmRzClsgICAgMS41MDQ1NjFdIGFtZF9wc3RhdGU6IFRoZSBDUFBDIGZlYXR1cmUgaXMgc3Vw
cG9ydGVkIGJ1dCBjdXJyZW50bHkgZGlzYWJsZWQgYnkgdGhlIEJJT1MuCiAgICAgICAgICAgICAg
IFBsZWFzZSBlbmFibGUgaXQgaWYgeW91ciBCSU9TIGhhcyB0aGUgQ1BQQyBvcHRpb24uClsgICAg
MS41MDQ1NjJdIGFtZF9wc3RhdGU6IHRoZSBfQ1BDIG9iamVjdCBpcyBub3QgcHJlc2VudCBpbiBT
QklPUyBvciBBQ1BJIGRpc2FibGVkClsgICAgMS41MDQ2NDRdIGVmaWZiOiBwcm9iaW5nIGZvciBl
ZmlmYgpbICAgIDEuNTA0NjY5XSBlZmlmYjogTm8gQkdSVCwgbm90IHNob3dpbmcgYm9vdCBncmFw
aGljcwpbICAgIDEuNTA0NjcwXSBlZmlmYjogZnJhbWVidWZmZXIgYXQgMHhmYzcwMDAwMDAwLCB1
c2luZyAxNDQwMGssIHRvdGFsIDE0NDAwawpbICAgIDEuNTA0NjcyXSBlZmlmYjogbW9kZSBpcyAy
NTYweDE0NDB4MzIsIGxpbmVsZW5ndGg9MTAyNDAsIHBhZ2VzPTEKWyAgICAxLjUwNDY3M10gZWZp
ZmI6IHNjcm9sbGluZzogcmVkcmF3ClsgICAgMS41MDQ2NzRdIGVmaWZiOiBUcnVlY29sb3I6IHNp
emU9ODo4Ojg6OCwgc2hpZnQ9MjQ6MTY6ODowClsgICAgMS41MDUwNzldIENvbnNvbGU6IHN3aXRj
aGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmljZSAxNjB4NDUKWyAgICAxLjUwODAyNl0g
aW5wdXQ6IEFUIFRyYW5zbGF0ZWQgU2V0IDIga2V5Ym9hcmQgYXMgL2RldmljZXMvcGxhdGZvcm0v
aTgwNDIvc2VyaW8wL2lucHV0L2lucHV0MwpbICAgIDEuNTA4MDkyXSBmYjA6IEVGSSBWR0EgZnJh
bWUgYnVmZmVyIGRldmljZQpbICAgIDEuNTA4MjY1XSBkcm9wX21vbml0b3I6IEluaXRpYWxpemlu
ZyBuZXR3b3JrIGRyb3AgbW9uaXRvciBzZXJ2aWNlClsgICAgMS41MDg0MjBdIE5FVDogUmVnaXN0
ZXJlZCBQRl9JTkVUNiBwcm90b2NvbCBmYW1pbHkKWyAgICAxLjc0MTM2Ml0gdXNiIDEtNDogbmV3
IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMiB1c2luZyB4aGNpX2hjZApbICAgIDEuNzQ1
NDAyXSB1c2IgMy0zOiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAyIHVzaW5nIHho
Y2lfaGNkClsgICAgMS43NDk4MjRdIEZyZWVpbmcgaW5pdHJkIG1lbW9yeTogNTg0MTZLClsgICAg
MS43NjE4MTZdIFNlZ21lbnQgUm91dGluZyB3aXRoIElQdjYKWyAgICAxLjc2MTg5Nl0gSW4tc2l0
dSBPQU0gKElPQU0pIHdpdGggSVB2NgpbICAgIDEuNzYxOTg3XSBORVQ6IFJlZ2lzdGVyZWQgUEZf
UEFDS0VUIHByb3RvY29sIGZhbWlseQpbICAgIDEuNzYyNDEyXSBLZXkgdHlwZSBkbnNfcmVzb2x2
ZXIgcmVnaXN0ZXJlZApbICAgIDEuNzY1MTAzXSBJUEkgc2hvcnRoYW5kIGJyb2FkY2FzdDogZW5h
YmxlZApbICAgIDEuNzcxODAyXSBzY2hlZF9jbG9jazogTWFya2luZyBzdGFibGUgKDE3MTYwMTMw
MTksIDUyOTk5NzI1KS0+KDE4MzYyMTkxMTIsIC02NzIwNjM2OCkKWyAgICAxLjc3MjU3OV0gcmVn
aXN0ZXJlZCB0YXNrc3RhdHMgdmVyc2lvbiAxClsgICAgMS43NzQxODNdIExvYWRpbmcgY29tcGls
ZWQtaW4gWC41MDkgY2VydGlmaWNhdGVzClsgICAgMS43NzUxNDBdIExvYWRlZCBYLjUwOSBjZXJ0
ICdCdWlsZCB0aW1lIGF1dG9nZW5lcmF0ZWQga2VybmVsIGtleTogZDY2MGMxNDE4YWEwODNmZDkx
MDhkMTgwMzJhNDRiMTliYzE2ZmJkMicKWyAgICAxLjc4NTYzNF0gRGVtb3Rpb24gdGFyZ2V0cyBm
b3IgTm9kZSAwOiBudWxsClsgICAgMS43ODU5MDJdIGttZW1sZWFrOiBLZXJuZWwgbWVtb3J5IGxl
YWsgZGV0ZWN0b3IgaW5pdGlhbGl6ZWQgKG1lbSBwb29sIGF2YWlsYWJsZTogMTU2OTIpClsgICAg
MS43ODU5MTNdIGttZW1sZWFrOiBBdXRvbWF0aWMgbWVtb3J5IHNjYW5uaW5nIHRocmVhZCBzdGFy
dGVkClsgICAgMS43ODYzMTBdIEtleSB0eXBlIC5mc2NyeXB0IHJlZ2lzdGVyZWQKWyAgICAxLjc4
NjMxM10gS2V5IHR5cGUgZnNjcnlwdC1wcm92aXNpb25pbmcgcmVnaXN0ZXJlZApbICAgIDEuODEx
MzQzXSBLZXkgdHlwZSBlbmNyeXB0ZWQgcmVnaXN0ZXJlZApbICAgIDEuODExMzU4XSBBcHBBcm1v
cjogQXBwQXJtb3Igc2hhMjU2IHBvbGljeSBoYXNoaW5nIGVuYWJsZWQKWyAgICAxLjgxMTgwOF0g
aW1hOiBObyBUUE0gY2hpcCBmb3VuZCwgYWN0aXZhdGluZyBUUE0tYnlwYXNzIQpbICAgIDEuODEx
ODI3XSBMb2FkaW5nIGNvbXBpbGVkLWluIG1vZHVsZSBYLjUwOSBjZXJ0aWZpY2F0ZXMKWyAgICAx
LjgxMjY4OV0gTG9hZGVkIFguNTA5IGNlcnQgJ0J1aWxkIHRpbWUgYXV0b2dlbmVyYXRlZCBrZXJu
ZWwga2V5OiBkNjYwYzE0MThhYTA4M2ZkOTEwOGQxODAzMmE0NGIxOWJjMTZmYmQyJwpbICAgIDEu
ODEyNjkzXSBpbWE6IEFsbG9jYXRlZCBoYXNoIGFsZ29yaXRobTogc2hhMQpbICAgIDEuODEyNzE1
XSBpbWE6IE5vIGFyY2hpdGVjdHVyZSBwb2xpY2llcyBmb3VuZApbICAgIDEuODEyNzkzXSBldm06
IEluaXRpYWxpc2luZyBFVk0gZXh0ZW5kZWQgYXR0cmlidXRlczoKWyAgICAxLjgxMjc5NF0gZXZt
OiBzZWN1cml0eS5zZWxpbnV4ClsgICAgMS44MTI3OTVdIGV2bTogc2VjdXJpdHkuU01BQ0s2NApb
ICAgIDEuODEyNzk2XSBldm06IHNlY3VyaXR5LlNNQUNLNjRFWEVDClsgICAgMS44MTI3OTddIGV2
bTogc2VjdXJpdHkuU01BQ0s2NFRSQU5TTVVURQpbICAgIDEuODEyNzk3XSBldm06IHNlY3VyaXR5
LlNNQUNLNjRNTUFQClsgICAgMS44MTI3OThdIGV2bTogc2VjdXJpdHkuYXBwYXJtb3IKWyAgICAx
LjgxMjc5OV0gZXZtOiBzZWN1cml0eS5pbWEKWyAgICAxLjgxMjgwMF0gZXZtOiBzZWN1cml0eS5j
YXBhYmlsaXR5ClsgICAgMS44MTI4MDFdIGV2bTogSE1BQyBhdHRyczogMHgxClsgICAgMS44MTQz
OTZdIFBNOiAgIE1hZ2ljIG51bWJlcjogMDoxMTk6MjYwClsgICAgMS44MTQ1MDBdIG1lbW9yeSBt
ZW1vcnkxMzA6IGhhc2ggbWF0Y2hlcwpbICAgIDEuODE1MzI0XSBSQVM6IENvcnJlY3RhYmxlIEVy
cm9ycyBjb2xsZWN0b3IgaW5pdGlhbGl6ZWQuClsgICAgMS44MTU0MTVdIGNsazogRGlzYWJsaW5n
IHVudXNlZCBjbG9ja3MKWyAgICAxLjgxNTQxN10gUE06IGdlbnBkOiBEaXNhYmxpbmcgdW51c2Vk
IHBvd2VyIGRvbWFpbnMKWyAgICAxLjgyMDA3OV0gRnJlZWluZyB1bnVzZWQgZGVjcnlwdGVkIG1l
bW9yeTogMjAyOEsKWyAgICAxLjgyMDkwNF0gRnJlZWluZyB1bnVzZWQga2VybmVsIGltYWdlIChp
bml0bWVtKSBtZW1vcnk6IDQ2ODRLClsgICAgMS44MjA5MzJdIFdyaXRlIHByb3RlY3RpbmcgdGhl
IGtlcm5lbCByZWFkLW9ubHkgZGF0YTogMjY2MjRrClsgICAgMS44MjE4MjddIEZyZWVpbmcgdW51
c2VkIGtlcm5lbCBpbWFnZSAocm9kYXRhL2RhdGEgZ2FwKSBtZW1vcnk6IDY0MEsKWyAgICAxLjg2
MDk4OV0geDg2L21tOiBDaGVja2VkIFcrWCBtYXBwaW5nczogcGFzc2VkLCBubyBXK1ggcGFnZXMg
Zm91bmQuClsgICAgMS44NjExODRdIFJ1biAvaW5pdCBhcyBpbml0IHByb2Nlc3MKWyAgICAxLjg2
MTE5NF0gICB3aXRoIGFyZ3VtZW50czoKWyAgICAxLjg2MTE5N10gICAgIC9pbml0ClsgICAgMS44
NjEyMDBdICAgICBwbGFjZWhvbGRlcgpbICAgIDEuODYxMjAzXSAgICAgc3BsYXNoClsgICAgMS44
NjEyMDVdICAgd2l0aCBlbnZpcm9ubWVudDoKWyAgICAxLjg2MTIwN10gICAgIEhPTUU9LwpbICAg
IDEuODYxMjEwXSAgICAgVEVSTT1saW51eApbICAgIDEuODg1NTY5XSB1c2IgMS00OiBOZXcgVVNC
IGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MjEwOSwgaWRQcm9kdWN0PTI4MTcsIGJjZERldmljZT0g
Mi4xNApbICAgIDEuODg1NTc1XSB1c2IgMS00OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9
MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MApbICAgIDEuODg1NTc3XSB1c2IgMS00OiBQcm9k
dWN0OiBVU0IyLjAgSHViICAgICAgICAgICAgIApbICAgIDEuODg1NTc5XSB1c2IgMS00OiBNYW51
ZmFjdHVyZXI6IFZJQSBMYWJzLCBJbmMuICAgICAgICAgClsgICAgMS45NDQxNzFdIGh1YiAxLTQ6
MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMS45NDQ1MjRdIGh1YiAxLTQ6MS4wOiA0IHBvcnRzIGRl
dGVjdGVkClsgICAgMi4wMzA2OThdIHVzYiAzLTM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl
bmRvcj0wNTdlLCBpZFByb2R1Y3Q9MjAwYywgYmNkRGV2aWNlPSAxLjg0ClsgICAgMi4wMzA3MDRd
IHVzYiAzLTM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlh
bE51bWJlcj0zClsgICAgMi4wMzA3MDZdIHVzYiAzLTM6IFByb2R1Y3Q6IENSRC0wMDEgVVNCMi4w
ClsgICAgMi4wMzA3MDhdIHVzYiAzLTM6IE1hbnVmYWN0dXJlcjogTmludGVuZG8KWyAgICAyLjAz
MDcwOV0gdXNiIDMtMzogU2VyaWFsTnVtYmVyOiBGVzEwMDAKWyAgICAyLjA3NzE1NF0gaHViIDMt
MzoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAyLjA3NzQ0MF0gaHViIDMtMzoxLjA6IDQgcG9ydHMg
ZGV0ZWN0ZWQKWyAgICAyLjExNDgwMl0gQUNQSTogdmlkZW86IFZpZGVvIERldmljZSBbVkdBXSAo
bXVsdGktaGVhZDogeWVzICByb206IG5vICBwb3N0OiBubykKWyAgICAyLjExNTQ2NV0gaW5wdXQ6
IFZpZGVvIEJ1cyBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAw
L2RldmljZToxMy9MTlhWSURFTzowMC9pbnB1dC9pbnB1dDQKWyAgICAyLjEzNzg3OF0gYWhjaSAw
MDAwOjA2OjAwLjA6IHZlcnNpb24gMy4wClsgICAgMi4xMzg0NTZdIHBpaXg0X3NtYnVzIDAwMDA6
MDA6MTQuMDogU01CdXMgSG9zdCBDb250cm9sbGVyIGF0IDB4YjAwLCByZXZpc2lvbiAwClsgICAg
Mi4xMzg0NjNdIHBpaXg0X3NtYnVzIDAwMDA6MDA6MTQuMDogVXNpbmcgcmVnaXN0ZXIgMHgwMiBm
b3IgU01CdXMgcG9ydCBzZWxlY3Rpb24KWyAgICAyLjEzOTMxMF0gYWhjaSAwMDAwOjA2OjAwLjA6
IEFIQ0kgdmVycyAwMDAxLjAzMDEsIDMyIGNvbW1hbmQgc2xvdHMsIDYgR2JwcywgU0FUQSBtb2Rl
ClsgICAgMi4xMzkzMTddIGFoY2kgMDAwMDowNjowMC4wOiAxLzEgcG9ydHMgaW1wbGVtZW50ZWQg
KHBvcnQgbWFzayAweDEpClsgICAgMi4xMzkzMTldIGFoY2kgMDAwMDowNjowMC4wOiBmbGFnczog
NjRiaXQgbmNxIHNudGYgaWxjayBwbSBsZWQgY2xvIG9ubHkgcG1wIGZicyBwaW8gc2x1bSBwYXJ0
IApbICAgIDIuMTQ3Nzk2XSBwaWl4NF9zbWJ1cyAwMDAwOjAwOjE0LjA6IEF1eGlsaWFyeSBTTUJ1
cyBIb3N0IENvbnRyb2xsZXIgYXQgMHhiMjAKWyAgICAyLjE0ODYyN10gc2NzaSBob3N0MDogYWhj
aQpbICAgIDIuMTQ5NTkyXSBudm1lIG52bWUwOiBwY2kgZnVuY3Rpb24gMDAwMDowNDowMC4wClsg
ICAgMi4xNTM2MzZdIGF0YTE6IFNBVEEgbWF4IFVETUEvMTMzIGFiYXIgbTIwNDhAMHhkMDA4NTAw
MCBwb3J0IDB4ZDAwODUxMDAgaXJxIDExMyBscG0tcG9sIDMKWyAgICAyLjE1MzkwOV0gaTJjIGky
Yy0yOiBTdWNjZXNzZnVsbHkgaW5zdGFudGlhdGVkIFNQRCBhdCAweDUwClsgICAgMi4xNTQ2Mzdd
IGkyYyBpMmMtMjogU3VjY2Vzc2Z1bGx5IGluc3RhbnRpYXRlZCBTUEQgYXQgMHg1MQpbICAgIDIu
MTU0NjQyXSBhaGNpIDAwMDA6MDY6MDAuMTogQUhDSSB2ZXJzIDAwMDEuMDMwMSwgMzIgY29tbWFu
ZCBzbG90cywgNiBHYnBzLCBTQVRBIG1vZGUKWyAgICAyLjE1NDY0OF0gYWhjaSAwMDAwOjA2OjAw
LjE6IDEvMSBwb3J0cyBpbXBsZW1lbnRlZCAocG9ydCBtYXNrIDB4MSkKWyAgICAyLjE1NDY1MV0g
YWhjaSAwMDAwOjA2OjAwLjE6IGZsYWdzOiA2NGJpdCBuY3Egc250ZiBpbGNrIHBtIGxlZCBjbG8g
b25seSBwbXAgZmJzIHBpbyBzbHVtIHBhcnQgClsgICAgMi4xNTU3NDNdIHNjc2kgaG9zdDE6IGFo
Y2kKWyAgICAyLjE1NjA1Nl0gYXRhMjogU0FUQSBtYXggVURNQS8xMzMgYWJhciBtMjA0OEAweGQw
MDg0MDAwIHBvcnQgMHhkMDA4NDEwMCBpcnEgMTE3IGxwbS1wb2wgMwpbICAgIDIuMTYyODQwXSBu
dm1lIG52bWUwOiBhbGxvY2F0ZWQgMzIgTWlCIGhvc3QgbWVtb3J5IGJ1ZmZlci4KWyAgICAyLjE3
MTI1OV0gbnZtZSBudm1lMDogMTIvMC8wIGRlZmF1bHQvcmVhZC9wb2xsIHF1ZXVlcwpbICAgIDIu
MTc5NTA0XSAgbnZtZTBuMTogcDEgcDIKWyAgICAyLjQ2MTMyOV0gYXRhMTogU0FUQSBsaW5rIGRv
d24gKFNTdGF0dXMgMCBTQ29udHJvbCAzMDApClsgICAgMi40NjkxNDNdIGF0YTI6IFNBVEEgbGlu
ayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQpbICAgIDIuNzQxMDc1XSB1c2IgMS00LjM6
IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgeGhjaV9oY2QKWyAgICAy
Ljg5NjAxNF0gRVhUNC1mcyAobnZtZTBuMXAyKTogbW91bnRlZCBmaWxlc3lzdGVtIGE0OWZlNDIx
LTk0MGQtNDJiZC1iMzQzLTY2NWZlYTBkODhhMiBybyB3aXRoIG9yZGVyZWQgZGF0YSBtb2RlLiBR
dW90YSBtb2RlOiBub25lLgpbICAgIDMuMDEzMjE0XSBzeXN0ZW1kWzFdOiBJbnNlcnRlZCBtb2R1
bGUgJ2F1dG9mczQnClsgICAgMy4wNTYyNDhdIHN5c3RlbWRbMV06IHN5c3RlbWQgMjQ5LjExLTB1
YnVudHUzLjExIHJ1bm5pbmcgaW4gc3lzdGVtIG1vZGUgKCtQQU0gK0FVRElUICtTRUxJTlVYICtB
UFBBUk1PUiArSU1BICtTTUFDSyArU0VDQ09NUCArR0NSWVBUICtHTlVUTFMgK09QRU5TU0wgK0FD
TCArQkxLSUQgK0NVUkwgK0VMRlVUSUxTICtGSURPMiArSUROMiAtSUROICtJUFRDICtLTU9EICtM
SUJDUllQVFNFVFVQICtMSUJGRElTSyArUENSRTIgLVBXUVVBTElUWSAtUDExS0lUIC1RUkVOQ09E
RSArQlpJUDIgK0xaNCArWFogK1pMSUIgK1pTVEQgLVhLQkNPTU1PTiArVVRNUCArU1lTVklOSVQg
ZGVmYXVsdC1oaWVyYXJjaHk9dW5pZmllZCkKWyAgICAzLjA1NjQ4NV0gc3lzdGVtZFsxXTogRGV0
ZWN0ZWQgYXJjaGl0ZWN0dXJlIHg4Ni02NC4KWyAgICAzLjA1NjkwN10gc3lzdGVtZFsxXTogSG9z
dG5hbWUgc2V0IHRvIDxjanEtbG9jYWw+LgpbICAgIDMuMTE2MTYyXSB1c2IgMS00LjM6IE5ldyBV
U0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0wYjk1LCBpZFByb2R1Y3Q9MTc5MCwgYmNkRGV2aWNl
PSAyLjAwClsgICAgMy4xMTYxNzFdIHVzYiAxLTQuMzogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczog
TWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTMKWyAgICAzLjExNjE3NF0gdXNiIDEtNC4z
OiBQcm9kdWN0OiBBWDg4MTc5QQpbICAgIDMuMTE2MTc2XSB1c2IgMS00LjM6IE1hbnVmYWN0dXJl
cjogQVNJWApbICAgIDMuMTE2MTc4XSB1c2IgMS00LjM6IFNlcmlhbE51bWJlcjogMDBDREIzNzYK
WyAgICAzLjEzMzM0N10gYmxvY2sgbnZtZTBuMTogdGhlIGNhcGFiaWxpdHkgYXR0cmlidXRlIGhh
cyBiZWVuIGRlcHJlY2F0ZWQuClsgICAgMy4yMDA1MTRdIHN5c3RlbWRbMV06IENvbmZpZ3VyYXRp
b24gZmlsZSAvcnVuL3N5c3RlbWQvc3lzdGVtL25ldHBsYW4tb3ZzLWNsZWFudXAuc2VydmljZSBp
cyBtYXJrZWQgd29ybGQtaW5hY2Nlc3NpYmxlLiBUaGlzIGhhcyBubyBlZmZlY3QgYXMgY29uZmln
dXJhdGlvbiBkYXRhIGlzIGFjY2Vzc2libGUgdmlhIEFQSXMgd2l0aG91dCByZXN0cmljdGlvbnMu
IFByb2NlZWRpbmcgYW55d2F5LgpbICAgIDMuMjgyMzg0XSBzeXN0ZW1kWzFdOiBRdWV1ZWQgc3Rh
cnQgam9iIGZvciBkZWZhdWx0IHRhcmdldCBNdWx0aS1Vc2VyIFN5c3RlbS4KWyAgICAzLjMwNzM4
MF0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBTbGljZSAvc3lzdGVtL21vZHByb2JlLgpbICAg
IDMuMzA4MjMzXSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIFNsaWNlIC9zeXN0ZW0vc2VyaWFs
LWdldHR5LgpbICAgIDMuMzA4ODE4XSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIFNsaWNlIC9z
eXN0ZW0vc3lzdGVtZC1mc2NrLgpbICAgIDMuMzA5NDA2XSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNs
aWNlIFVzZXIgYW5kIFNlc3Npb24gU2xpY2UuClsgICAgMy4zMDk1MjVdIHN5c3RlbWRbMV06IFN0
YXJ0ZWQgRm9yd2FyZCBQYXNzd29yZCBSZXF1ZXN0cyB0byBXYWxsIERpcmVjdG9yeSBXYXRjaC4K
WyAgICAzLjMwOTg5MF0gc3lzdGVtZFsxXTogU2V0IHVwIGF1dG9tb3VudCBBcmJpdHJhcnkgRXhl
Y3V0YWJsZSBGaWxlIEZvcm1hdHMgRmlsZSBTeXN0ZW0gQXV0b21vdW50IFBvaW50LgpbICAgIDMu
MzA5OTc0XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBSZW1vdGUgRmlsZSBTeXN0ZW1zLgpb
ICAgIDMuMzA5OTkwXSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBTbGljZSBVbml0cy4KWyAg
ICAzLjMxMDAxMF0gc3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgTW91bnRpbmcgc25hcHMuClsg
ICAgMy4zMTAwMzldIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IExvY2FsIFZlcml0eSBQcm90
ZWN0ZWQgVm9sdW1lcy4KWyAgICAzLjMxMDI4OV0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIFN5
c2xvZyBTb2NrZXQuClsgICAgMy4zMTE2ODNdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBQcm9j
ZXNzIENvcmUgRHVtcCBTb2NrZXQuClsgICAgMy4zMTE4NTRdIHN5c3RlbWRbMV06IExpc3Rlbmlu
ZyBvbiBmc2NrIHRvIGZzY2tkIGNvbW11bmljYXRpb24gU29ja2V0LgpbICAgIDMuMzExOTc1XSBz
eXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gaW5pdGN0bCBDb21wYXRpYmlsaXR5IE5hbWVkIFBpcGUu
ClsgICAgMy4zMTIyNTNdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBKb3VybmFsIEF1ZGl0IFNv
Y2tldC4KWyAgICAzLjMxMjQxMF0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIEpvdXJuYWwgU29j
a2V0ICgvZGV2L2xvZykuClsgICAgMy4zMTI2MTJdIHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBK
b3VybmFsIFNvY2tldC4KWyAgICAzLjMxMzAzOV0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIHVk
ZXYgQ29udHJvbCBTb2NrZXQuClsgICAgMy4zMTMyMDZdIHN5c3RlbWRbMV06IExpc3RlbmluZyBv
biB1ZGV2IEtlcm5lbCBTb2NrZXQuClsgICAgMy4zMTUyNzRdIHN5c3RlbWRbMV06IE1vdW50aW5n
IEh1Z2UgUGFnZXMgRmlsZSBTeXN0ZW0uLi4KWyAgICAzLjMxNzM1N10gc3lzdGVtZFsxXTogTW91
bnRpbmcgUE9TSVggTWVzc2FnZSBRdWV1ZSBGaWxlIFN5c3RlbS4uLgpbICAgIDMuMzE5NDI5XSBz
eXN0ZW1kWzFdOiBNb3VudGluZyBNb3VudCAvcHJvYy94ZW4gZmlsZXMuLi4KWyAgICAzLjMyMTg4
MV0gc3lzdGVtZFsxXTogTW91bnRpbmcgS2VybmVsIERlYnVnIEZpbGUgU3lzdGVtLi4uClsgICAg
My4zMjQwNDZdIHN5c3RlbWRbMV06IE1vdW50aW5nIEtlcm5lbCBUcmFjZSBGaWxlIFN5c3RlbS4u
LgpbICAgIDMuMzI5MjI0XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBKb3VybmFsIFNlcnZpY2UuLi4K
WyAgICAzLjMzMTg5MF0gc3lzdGVtZFsxXTogU3RhcnRpbmcgU2V0IHRoZSBjb25zb2xlIGtleWJv
YXJkIGxheW91dC4uLgpbICAgIDMuMzM0MzM0XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBDcmVhdGUg
TGlzdCBvZiBTdGF0aWMgRGV2aWNlIE5vZGVzLi4uClsgICAgMy4zMzY3OTFdIHN5c3RlbWRbMV06
IFN0YXJ0aW5nIExvYWQgS2VybmVsIE1vZHVsZSBjb25maWdmcy4uLgpbICAgIDMuMzM5NDU5XSBz
eXN0ZW1kWzFdOiBTdGFydGluZyBMb2FkIEtlcm5lbCBNb2R1bGUgZHJtLi4uClsgICAgMy4zNDIy
NjRdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIExvYWQgS2VybmVsIE1vZHVsZSBlZmlfcHN0b3JlLi4u
ClsgICAgMy4zNDQ5NzhdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIExvYWQgS2VybmVsIE1vZHVsZSBm
dXNlLi4uClsgICAgMy4zNDU2MTddIHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVjayByZXN1bHRl
ZCBpbiBGaWxlIFN5c3RlbSBDaGVjayBvbiBSb290IERldmljZSBiZWluZyBza2lwcGVkLgpbICAg
IDMuMzQ5Mzk5XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBMb2FkIEtlcm5lbCBNb2R1bGVzLi4uClsg
ICAgMy4zNDk1MjRdIHBzdG9yZTogVXNpbmcgY3Jhc2ggZHVtcCBjb21wcmVzc2lvbjogZGVmbGF0
ZQpbICAgIDMuMzUxODI0XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBSZW1vdW50IFJvb3QgYW5kIEtl
cm5lbCBGaWxlIFN5c3RlbXMuLi4KWyAgICAzLjM1NDcxNl0gc3lzdGVtZFsxXTogU3RhcnRpbmcg
Q29sZHBsdWcgQWxsIHVkZXYgRGV2aWNlcy4uLgpbICAgIDMuMzU0Nzg4XSBwc3RvcmU6IFJlZ2lz
dGVyZWQgZWZpX3BzdG9yZSBhcyBwZXJzaXN0ZW50IHN0b3JlIGJhY2tlbmQKWyAgICAzLjM1ODA0
OF0gc3lzdGVtZFsxXTogTW91bnRlZCBIdWdlIFBhZ2VzIEZpbGUgU3lzdGVtLgpbICAgIDMuMzU4
MjY4XSBzeXN0ZW1kWzFdOiBNb3VudGVkIFBPU0lYIE1lc3NhZ2UgUXVldWUgRmlsZSBTeXN0ZW0u
ClsgICAgMy4zNTg0MzNdIHN5c3RlbWRbMV06IE1vdW50ZWQgTW91bnQgL3Byb2MveGVuIGZpbGVz
LgpbICAgIDMuMzU4NjE1XSBzeXN0ZW1kWzFdOiBNb3VudGVkIEtlcm5lbCBEZWJ1ZyBGaWxlIFN5
c3RlbS4KWyAgICAzLjM1ODc3Ml0gc3lzdGVtZFsxXTogTW91bnRlZCBLZXJuZWwgVHJhY2UgRmls
ZSBTeXN0ZW0uClsgICAgMy4zNTk0ODFdIHN5c3RlbWRbMV06IEZpbmlzaGVkIENyZWF0ZSBMaXN0
IG9mIFN0YXRpYyBEZXZpY2UgTm9kZXMuClsgICAgMy4zNjAwNzVdIHN5c3RlbWRbMV06IG1vZHBy
b2JlQGNvbmZpZ2ZzLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KWyAgICAzLjM2
MDY2OV0gc3lzdGVtZFsxXTogRmluaXNoZWQgTG9hZCBLZXJuZWwgTW9kdWxlIGNvbmZpZ2ZzLgpb
ICAgIDMuMzYxMjc2XSBzeXN0ZW1kWzFdOiBtb2Rwcm9iZUBlZmlfcHN0b3JlLnNlcnZpY2U6IERl
YWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KWyAgICAzLjM2MTk1MF0gc3lzdGVtZFsxXTogRmluaXNo
ZWQgTG9hZCBLZXJuZWwgTW9kdWxlIGVmaV9wc3RvcmUuClsgICAgMy4zNjI1NzFdIHN5c3RlbWRb
MV06IG1vZHByb2JlQGZ1c2Uuc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgpbICAg
IDMuMzYzMTk5XSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBMb2FkIEtlcm5lbCBNb2R1bGUgZnVzZS4K
WyAgICAzLjM2NjIwMV0gc3lzdGVtZFsxXTogTW91bnRpbmcgRlVTRSBDb250cm9sIEZpbGUgU3lz
dGVtLi4uClsgICAgMy4zNjk3OTddIHN5c3RlbWRbMV06IE1vdW50aW5nIEtlcm5lbCBDb25maWd1
cmF0aW9uIEZpbGUgU3lzdGVtLi4uClsgICAgMy4zNzE0ODhdIHN5c3RlbWRbMV06IE1vdW50ZWQg
RlVTRSBDb250cm9sIEZpbGUgU3lzdGVtLgpbICAgIDMuMzczNzAzXSBBQ1BJOiBidXMgdHlwZSBk
cm1fY29ubmVjdG9yIHJlZ2lzdGVyZWQKWyAgICAzLjM3NDQ4NF0gc3lzdGVtZFsxXTogTW91bnRl
ZCBLZXJuZWwgQ29uZmlndXJhdGlvbiBGaWxlIFN5c3RlbS4KWyAgICAzLjM3NjA1Nl0gc3lzdGVt
ZFsxXTogbW9kcHJvYmVAZHJtLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KWyAg
ICAzLjM3NjY3OF0gc3lzdGVtZFsxXTogRmluaXNoZWQgTG9hZCBLZXJuZWwgTW9kdWxlIGRybS4K
WyAgICAzLjM3OTU4Ml0gbHA6IGRyaXZlciBsb2FkZWQgYnV0IG5vIGRldmljZXMgZm91bmQKWyAg
ICAzLjM4NTQxOF0gcHBkZXY6IHVzZXItc3BhY2UgcGFyYWxsZWwgcG9ydCBkcml2ZXIKWyAgICAz
LjQxMDIyNV0geGVuOnhlbl9ldnRjaG46IEV2ZW50LWNoYW5uZWwgZGV2aWNlIGluc3RhbGxlZApb
ICAgIDMuNDI1Nzc1XSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBTZXQgdGhlIGNvbnNvbGUga2V5Ym9h
cmQgbGF5b3V0LgpbICAgIDMuNDMyNzc1XSB4ZW5fcGNpYmFjazogYmFja2VuZCBpcyB2cGNpClsg
ICAgMy40MzgyMjddIEVYVDQtZnMgKG52bWUwbjFwMik6IHJlLW1vdW50ZWQgYTQ5ZmU0MjEtOTQw
ZC00MmJkLWIzNDMtNjY1ZmVhMGQ4OGEyIHIvdy4gUXVvdGEgbW9kZTogbm9uZS4KWyAgICAzLjQ0
MTEwMV0gc3lzdGVtZFsxXTogRmluaXNoZWQgTG9hZCBLZXJuZWwgTW9kdWxlcy4KWyAgICAzLjQ0
MTgzM10gc3lzdGVtZFsxXTogRmluaXNoZWQgUmVtb3VudCBSb290IGFuZCBLZXJuZWwgRmlsZSBT
eXN0ZW1zLgpbICAgIDMuNDQ0MDMyXSBzeXN0ZW1kWzFdOiBBY3RpdmF0aW5nIHN3YXAgL3N3YXBm
aWxlLi4uClsgICAgMy40NDQxMzldIHN5c3RlbWRbMV06IENvbmRpdGlvbiBjaGVjayByZXN1bHRl
ZCBpbiBQbGF0Zm9ybSBQZXJzaXN0ZW50IFN0b3JhZ2UgQXJjaGl2YWwgYmVpbmcgc2tpcHBlZC4K
WyAgICAzLjQ0NjcxNl0gc3lzdGVtZFsxXTogU3RhcnRpbmcgTG9hZC9TYXZlIFJhbmRvbSBTZWVk
Li4uClsgICAgMy40NDk2MzBdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIEFwcGx5IEtlcm5lbCBWYXJp
YWJsZXMuLi4KWyAgICAzLjQ1MDQ3MF0gQWRkaW5nIDIwOTcxNDhrIHN3YXAgb24gL3N3YXBmaWxl
LiAgUHJpb3JpdHk6LTIgZXh0ZW50czo2IGFjcm9zczoyMjYwOTg4ayBTUwpbICAgIDMuNDUzNDMz
XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBDcmVhdGUgU3lzdGVtIFVzZXJzLi4uClsgICAgMy40NTM2
MjJdIHN5c3RlbWRbMV06IEFjdGl2YXRlZCBzd2FwIC9zd2FwZmlsZS4KWyAgICAzLjQ1Mzk4N10g
c3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgU3dhcHMuClsgICAgMy40NTc5NzJdIHN5c3RlbWRb
MV06IFN0YXJ0ZWQgSm91cm5hbCBTZXJ2aWNlLgpbICAgIDMuNDcyNzc4XSBzeXN0ZW1kLWpvdXJu
YWxkWzMxN106IFJlY2VpdmVkIGNsaWVudCByZXF1ZXN0IHRvIGZsdXNoIHJ1bnRpbWUgam91cm5h
bC4KWyAgICAzLjQ3NjA4MF0gc3lzdGVtZC1qb3VybmFsZFszMTddOiBGaWxlIC92YXIvbG9nL2pv
dXJuYWwvNmMyMDgzNjFhMjg0NDhlNmE2NDcyNGMzMzdiZGU1NTIvc3lzdGVtLmpvdXJuYWwgY29y
cnVwdGVkIG9yIHVuY2xlYW5seSBzaHV0IGRvd24sIHJlbmFtaW5nIGFuZCByZXBsYWNpbmcuClsg
ICAgMy40OTkxOTFdIGxvb3AwOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDgK
WyAgICAzLjUwMTE4NV0gbG9vcDE6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8g
MTMxMDE2ClsgICAgMy41MDU4MjZdIGxvb3AyOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJv
bSAwIHRvIDEzMDQ0OApbICAgIDMuNTExMDczXSBsb29wMzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hh
bmdlIGZyb20gMCB0byAxNTIwNTYKWyAgICAzLjUxNjAzOF0gbG9vcDQ6IGRldGVjdGVkIGNhcGFj
aXR5IGNoYW5nZSBmcm9tIDAgdG8gMTUxMjk2ClsgICAgMy41MjI2OTVdIGxvb3A1OiBkZXRlY3Rl
ZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDU2MDMyMApbICAgIDMuNTI0NDUwXSBsb29wNjog
ZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA1NTkwNTYKWyAgICAzLjUzMDcxM10g
bG9vcDc6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gNzE2MTY4ClsgICAgMy41
MzU3NDRdIGxvb3A4OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDcxNjE3Ngpb
ICAgIDMuNTM5OTcwXSBsb29wOTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAx
MDMyNTA0ClsgICAgMy41NDU3NDFdIGxvb3AxMDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZy
b20gMCB0byAxMDM0NDI0ClsgICAgMy41NTE5MTRdIGxvb3AxMTogZGV0ZWN0ZWQgY2FwYWNpdHkg
Y2hhbmdlIGZyb20gMCB0byAxNjY0MjQKWyAgICAzLjU1NDY1Nl0gbG9vcDEyOiBkZXRlY3RlZCBj
YXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDE4Nzc3NgpbICAgIDMuNTYwNjk1XSBsb29wMTM6IGRl
dGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMjY0NzIKWyAgICAzLjU2NDg5Nl0gbG9v
cDE0OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDI0OTg0ClsgICAgMy41Njc2
NThdIGxvb3AxNTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA3OTUyMApbICAg
IDMuNTcxMTQxXSBsb29wMTY6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gOTAz
OTIKWyAgICAzLjU3NTYzMV0gbG9vcDE3OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAw
IHRvIDExMjgKWyAgICAzLjU3OTI0MF0gbG9vcDE4OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2Ug
ZnJvbSAwIHRvIDExMzYKWyAgICAzLjkwMzY0Ml0gY2NwIDAwMDA6MDU6MDAuMjogY2NwOiB1bmFi
bGUgdG8gYWNjZXNzIHRoZSBkZXZpY2U6IHlvdSBtaWdodCBiZSBydW5uaW5nIGEgYnJva2VuIEJJ
T1MuClsgICAgMy45MDYzNDddIGNjcCAwMDAwOjA1OjAwLjI6IHRlZTogcmluZyBpbml0IGNvbW1h
bmQgZmFpbGVkICgweDAwMDAwMDA2KQpbICAgIDMuOTA2NDU1XSBjY3AgMDAwMDowNTowMC4yOiB0
ZWU6IGZhaWxlZCB0byBpbml0IHJpbmcgYnVmZmVyClsgICAgMy45MDY1NThdIGNjcCAwMDAwOjA1
OjAwLjI6IHRlZSBpbml0aWFsaXphdGlvbiBmYWlsZWQKWyAgICAzLjkwNjY2NV0gY2NwIDAwMDA6
MDU6MDAuMjogcHNwIGluaXRpYWxpemF0aW9uIGZhaWxlZApbICAgIDMuOTI4OTMxXSBzcDUxMDBf
dGNvOiBTUDUxMDAvU0I4MDAgVENPIFdhdGNoRG9nIFRpbWVyIERyaXZlcgpbICAgIDMuOTQ0ODE0
XSBzcDUxMDAtdGNvIHNwNTEwMC10Y286IFVzaW5nIDB4ZmViMDAwMDAgZm9yIHdhdGNoZG9nIE1N
SU8gYWRkcmVzcwpbICAgIDMuOTQ0ODQ2XSBzcDUxMDAtdGNvIHNwNTEwMC10Y286IFdhdGNoZG9n
IGhhcmR3YXJlIGlzIGRpc2FibGVkClsgICAgNC4xMDk2MjBdIGVlMTAwNCAyLTAwNTA6IDUxMiBi
eXRlIEVFMTAwNC1jb21wbGlhbnQgU1BEIEVFUFJPTSwgcmVhZC1vbmx5ClsgICAgNC4xMjA5Mjld
IGVlMTAwNCAyLTAwNTE6IDUxMiBieXRlIEVFMTAwNC1jb21wbGlhbnQgU1BEIEVFUFJPTSwgcmVh
ZC1vbmx5ClsgICAgNC4xNDQ4OThdIGNyeXB0ZDogbWF4X2NwdV9xbGVuIHNldCB0byAxMDAwClsg
ICAgNC4xODQzOTJdIEFFUyBDVFIgbW9kZSBieTggb3B0aW1pemF0aW9uIGVuYWJsZWQKWyAgICA0
LjI2NDU3Ml0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBjZGNfZXRo
ZXIKWyAgICA0LjI3MjUzOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEhhbmRsZSB2Z2Ff
c3dpdGNoZXJvbyBhdWRpbyBjbGllbnQKWyAgICA0LjI3MjU1N10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEZvcmNlIHRvIG5vbi1zbm9vcCBtb2RlClsgICAgNC4yNzk4MTBdIHNuZF9oZGFf
aW50ZWwgMDAwMDowNTowMC4xOiBIYW5kbGUgdmdhX3N3aXRjaGVyb28gYXVkaW8gY2xpZW50Clsg
ICAgNC40MjkxNDRdIGlucHV0OiBIRC1BdWRpbyBHZW5lcmljIEhETUkvRFAscGNtPTMgYXMgL2Rl
dmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNTowMC4xL3NvdW5kL2NhcmQxL2lu
cHV0MTAKWyAgICA0LjQ0MTE3OV0gaW5wdXQ6IEhEQSBBVEkgSERNSSBIRE1JL0RQLHBjbT0zIGFz
IC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMS4xLzAwMDA6MDE6MDAuMC8wMDAwOjAyOjAw
LjAvMDAwMDowMzowMC4xL3NvdW5kL2NhcmQwL2lucHV0NQpbICAgIDQuNDQxNDU1XSBpbnB1dDog
SERBIEFUSSBIRE1JIEhETUkvRFAscGNtPTcgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAw
OjAxLjEvMDAwMDowMTowMC4wLzAwMDA6MDI6MDAuMC8wMDAwOjAzOjAwLjEvc291bmQvY2FyZDAv
aW5wdXQ2ClsgICAgNC40NDE2OThdIGlucHV0OiBIREEgQVRJIEhETUkgSERNSS9EUCxwY209OCBh
cyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDEuMS8wMDAwOjAxOjAwLjAvMDAwMDowMjow
MC4wLzAwMDA6MDM6MDAuMS9zb3VuZC9jYXJkMC9pbnB1dDcKWyAgICA0LjQ0MTk1M10gaW5wdXQ6
IEhEQSBBVEkgSERNSSBIRE1JL0RQLHBjbT05IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDow
MDowMS4xLzAwMDA6MDE6MDAuMC8wMDAwOjAyOjAwLjAvMDAwMDowMzowMC4xL3NvdW5kL2NhcmQw
L2lucHV0OApbICAgIDQuNDQyMTgyXSBpbnB1dDogSERBIEFUSSBIRE1JIEhETUkvRFAscGNtPTEw
IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMS4xLzAwMDA6MDE6MDAuMC8wMDAwOjAy
OjAwLjAvMDAwMDowMzowMC4xL3NvdW5kL2NhcmQwL2lucHV0OQpbICAgIDQuNDU1NjE0XSBpbnB1
dDogSEQtQXVkaW8gR2VuZXJpYyBIRE1JL0RQLHBjbT03IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAv
MDAwMDowMDowOC4xLzAwMDA6MDU6MDAuMS9zb3VuZC9jYXJkMS9pbnB1dDExClsgICAgNC40NzE3
ODddIGNkY19uY20gMS00LjM6Mi4wOiBNQUMtQWRkcmVzczogZjg6ZTQ6M2I6Y2Q6YjM6NzYKWyAg
ICA0LjQ3MTc5NV0gY2RjX25jbSAxLTQuMzoyLjA6IHNldHRpbmcgcnhfbWF4ID0gMTYzODQKWyAg
ICA0LjQ4NDIwOV0gY2RjX25jbSAxLTQuMzoyLjA6IHNldHRpbmcgdHhfbWF4ID0gMTYzODQKWyAg
ICA0LjQ5MDQ5NV0gaW5wdXQ6IEhELUF1ZGlvIEdlbmVyaWMgSERNSS9EUCxwY209OCBhcyAvZGV2
aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjEvc291bmQvY2FyZDEvaW5w
dXQxMgpbICAgIDQuNTA2MTE4XSBpbnB1dDogSEQtQXVkaW8gR2VuZXJpYyBIRE1JL0RQLHBjbT05
IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuMS9zb3VuZC9j
YXJkMS9pbnB1dDEzClsgICAgNC41MTAwMjhdIGFtZF9hdGw6IEFNRCBBZGRyZXNzIFRyYW5zbGF0
aW9uIExpYnJhcnkgaW5pdGlhbGl6ZWQKWyAgICA0LjUxODUwN10gYXVkaXQ6IHR5cGU9MTQwMCBh
dWRpdCgxNzMxNTU0MTY0LjUxMjoyKTogYXBwYXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9m
aWxlX2xvYWQiIHByb2ZpbGU9InVuY29uZmluZWQiIG5hbWU9ImxzYl9yZWxlYXNlIiBwaWQ9NTA5
IGNvbW09ImFwcGFybW9yX3BhcnNlciIKWyAgICA0LjUxODgwM10gYXVkaXQ6IHR5cGU9MTQwMCBh
dWRpdCgxNzMxNTU0MTY0LjUxMjozKTogYXBwYXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9m
aWxlX2xvYWQiIHByb2ZpbGU9InVuY29uZmluZWQiIG5hbWU9Im52aWRpYV9tb2Rwcm9iZSIgcGlk
PTUxMCBjb21tPSJhcHBhcm1vcl9wYXJzZXIiClsgICAgNC41MTg4MjRdIGF1ZGl0OiB0eXBlPTE0
MDAgYXVkaXQoMTczMTU1NDE2NC41MTI6NCk6IGFwcGFybW9yPSJTVEFUVVMiIG9wZXJhdGlvbj0i
cHJvZmlsZV9sb2FkIiBwcm9maWxlPSJ1bmNvbmZpbmVkIiBuYW1lPSJudmlkaWFfbW9kcHJvYmUv
L2ttb2QiIHBpZD01MTAgY29tbT0iYXBwYXJtb3JfcGFyc2VyIgpbICAgIDQuNTIyNDQ1XSBhdWRp
dDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE1NTQxNjQuNTE2OjUpOiBhcHBhcm1vcj0iU1RBVFVTIiBv
cGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5jb25maW5lZCIgbmFtZT0iL3Vzci9i
aW4vbWFuIiBwaWQ9NTE0IGNvbW09ImFwcGFybW9yX3BhcnNlciIKWyAgICA0LjUyMjQ3Ml0gYXVk
aXQ6IHR5cGU9MTQwMCBhdWRpdCgxNzMxNTU0MTY0LjUxNjo2KTogYXBwYXJtb3I9IlNUQVRVUyIg
b3BlcmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVuY29uZmluZWQiIG5hbWU9Im1hbl9m
aWx0ZXIiIHBpZD01MTQgY29tbT0iYXBwYXJtb3JfcGFyc2VyIgpbICAgIDQuNTIyNDkxXSBhdWRp
dDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE1NTQxNjQuNTE2OjcpOiBhcHBhcm1vcj0iU1RBVFVTIiBv
cGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5jb25maW5lZCIgbmFtZT0ibWFuX2dy
b2ZmIiBwaWQ9NTE0IGNvbW09ImFwcGFybW9yX3BhcnNlciIKWyAgICA0LjUyNjcxNF0gYXVkaXQ6
IHR5cGU9MTQwMCBhdWRpdCgxNzMxNTU0MTY0LjUyMDo4KTogYXBwYXJtb3I9IlNUQVRVUyIgb3Bl
cmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVuY29uZmluZWQiIG5hbWU9Ii91c3IvbGli
L05ldHdvcmtNYW5hZ2VyL25tLWRoY3AtY2xpZW50LmFjdGlvbiIgcGlkPTUxMSBjb21tPSJhcHBh
cm1vcl9wYXJzZXIiClsgICAgNC41MjY3NjldIGF1ZGl0OiB0eXBlPTE0MDAgYXVkaXQoMTczMTU1
NDE2NC41MjA6OSk6IGFwcGFybW9yPSJTVEFUVVMiIG9wZXJhdGlvbj0icHJvZmlsZV9sb2FkIiBw
cm9maWxlPSJ1bmNvbmZpbmVkIiBuYW1lPSIvdXNyL2xpYi9OZXR3b3JrTWFuYWdlci9ubS1kaGNw
LWhlbHBlciIgcGlkPTUxMSBjb21tPSJhcHBhcm1vcl9wYXJzZXIiClsgICAgNC41MjY4MTBdIGF1
ZGl0OiB0eXBlPTE0MDAgYXVkaXQoMTczMTU1NDE2NC41MjA6MTApOiBhcHBhcm1vcj0iU1RBVFVT
IiBvcGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5jb25maW5lZCIgbmFtZT0iL3Vz
ci9saWIvY29ubm1hbi9zY3JpcHRzL2RoY2xpZW50LXNjcmlwdCIgcGlkPTUxMSBjb21tPSJhcHBh
cm1vcl9wYXJzZXIiClsgICAgNC41NDkzNjJdIHNuZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlv
QzJEMDogYXV0b2NvbmZpZyBmb3IgQUxDNzAxOiBsaW5lX291dHM9MSAoMHgxNC8weDAvMHgwLzB4
MC8weDApIHR5cGU6c3BlYWtlcgpbICAgIDQuNTQ5MzcyXSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsg
aGRhdWRpb0MyRDA6ICAgIHNwZWFrZXJfb3V0cz0wICgweDAvMHgwLzB4MC8weDAvMHgwKQpbICAg
IDQuNTQ5Mzc2XSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgaGRhdWRpb0MyRDA6ICAgIGhwX291dHM9
MSAoMHgyMS8weDAvMHgwLzB4MC8weDApClsgICAgNC41NDkzNzhdIHNuZF9oZGFfY29kZWNfcmVh
bHRlayBoZGF1ZGlvQzJEMDogICAgbW9ubzogbW9ub19vdXQ9MHgwClsgICAgNC41NDkzODBdIHNu
ZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlvQzJEMDogICAgZGlnLW91dD0weDFlLzB4MApbICAg
IDQuNTQ5MzgyXSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgaGRhdWRpb0MyRDA6ICAgIGlucHV0czoK
WyAgICA0LjU0OTM4NF0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhkYXVkaW9DMkQwOiAgICAgIE1p
Yz0weDFiClsgICAgNC41NDkzODZdIHNuZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlvQzJEMDog
ICAgICBJbnRlcm5hbCBNaWM9MHgxMgpbICAgIDQuNTY5MzAyXSBjZGNfbmNtIDEtNC4zOjIuMCBl
dGgwOiByZWdpc3RlciAnY2RjX25jbScgYXQgdXNiLTAwMDA6MDU6MDAuMy00LjMsIENEQyBOQ00g
KE5PIFpMUCksIGY4OmU0OjNiOmNkOmIzOjc2ClsgICAgNC41NzI3MzRdIHVzYmNvcmU6IHJlZ2lz
dGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgY2RjX25jbQpbICAgIDQuNTg1MDY2XSB1c2IgMy0z
LjI6IG5ldyBmdWxsLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgeGhjaV9oY2QKWyAg
ICA0LjYwMzgzNF0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBjZGNf
d2RtClsgICAgNC42MDY4MDJdIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogQUVSOiBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMDowMi40ClsgICAgNC42MDY4Mjhd
IHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPURhdGEgTGluayBMYXllciwgKFJlY2VpdmVyIElEKQpbICAgIDQuNjA2ODMxXSBw
Y2llcG9ydCAwMDAwOjAwOjAyLjQ6ICAgZGV2aWNlIFsxMDIyOjE2MzRdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAwMDQwLzAwMDAwMDAwClsgICAgNC42MDY4MzNdIHBjaWVwb3J0IDAwMDA6MDA6MDIu
NDogICAgWyA2XSBCYWRUTFAgICAgICAgICAgICAgICAgClsgICAgNC42MDg0NDRdIHVzYmNvcmU6
IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgY2RjX21iaW0KWyAgICA0LjYxODc0Nl0g
Y2RjX25jbSAxLTQuMzoyLjAgZW54ZjhlNDNiY2RiMzc2OiByZW5hbWVkIGZyb20gZXRoMApbICAg
IDQuNjk0NDk4XSB1c2IgMy0zLjI6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0yNzE3
LCBpZFByb2R1Y3Q9NTAxMCwgYmNkRGV2aWNlPSAxLjAzClsgICAgNC42OTQ1MDddIHVzYiAzLTMu
MjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVy
PTAKWyAgICA0LjY5NDUxMF0gdXNiIDMtMy4yOiBQcm9kdWN0OiBNaSBXaXJlbGVzcyBDb21ibwpb
ICAgIDQuNjk0NTEyXSB1c2IgMy0zLjI6IE1hbnVmYWN0dXJlcjogTU9TQVJUIFNlbWkuClsgICAg
NC43ODQ1NDFdIGhpZDogcmF3IEhJRCBldmVudHMgZHJpdmVyIChDKSBKaXJpIEtvc2luYQpbICAg
IDQuNzk5Mjg4XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmhp
ZApbICAgIDQuNzk5MjkzXSB1c2JoaWQ6IFVTQiBISUQgY29yZSBkcml2ZXIKWyAgICA0LjgxNjUz
OV0gaW5wdXQ6IE1PU0FSVCBTZW1pLiBNaSBXaXJlbGVzcyBDb21ibyBhcyAvZGV2aWNlcy9wY2kw
MDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjQvdXNiMy8zLTMvMy0zLjIvMy0zLjI6MS4w
LzAwMDM6MjcxNzo1MDEwLjAwMDEvaW5wdXQvaW5wdXQxNApbICAgIDQuOTIyNjgxXSBwY2llcG9y
dCAwMDAwOjAwOjAyLjQ6IEFFUjogQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDA6MDIuNApbICAgIDQuOTIyNzE2XSBwY2llcG9ydCAwMDAwOjAwOjAyLjQ6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1EYXRhIExpbmsgTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgICA0LjkyMjcyMF0gcGNpZXBvcnQgMDAwMDowMDowMi40OiAgIGRl
dmljZSBbMTAyMjoxNjM0XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMDA0MC8wMDAwMDAwMApbICAg
IDQuOTIyNzIzXSBwY2llcG9ydCAwMDAwOjAwOjAyLjQ6ICAgIFsgNl0gQmFkVExQICAgICAgICAg
ICAgICAgIApbICAgIDQuOTYxNTUxXSBoaWQtZ2VuZXJpYyAwMDAzOjI3MTc6NTAxMC4wMDAxOiBp
bnB1dCxoaWRyYXcwOiBVU0IgSElEIHYxLjEwIEtleWJvYXJkIFtNT1NBUlQgU2VtaS4gTWkgV2ly
ZWxlc3MgQ29tYm9dIG9uIHVzYi0wMDAwOjA1OjAwLjQtMy4yL2lucHV0MApbICAgIDQuOTYyNTI4
XSBpbnB1dDogTU9TQVJUIFNlbWkuIE1pIFdpcmVsZXNzIENvbWJvIE1vdXNlIGFzIC9kZXZpY2Vz
L3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuNC91c2IzLzMtMy8zLTMuMi8zLTMu
MjoxLjEvMDAwMzoyNzE3OjUwMTAuMDAwMi9pbnB1dC9pbnB1dDE1ClsgICAgNS4wMTg1NDRdIGlu
cHV0OiBNT1NBUlQgU2VtaS4gTWkgV2lyZWxlc3MgQ29tYm8gQ29uc3VtZXIgQ29udHJvbCBhcyAv
ZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjQvdXNiMy8zLTMvMy0z
LjIvMy0zLjI6MS4xLzAwMDM6MjcxNzo1MDEwLjAwMDIvaW5wdXQvaW5wdXQxNgpbICAgIDUuMDE5
Mjg2XSBpbnB1dDogTU9TQVJUIFNlbWkuIE1pIFdpcmVsZXNzIENvbWJvIFN5c3RlbSBDb250cm9s
IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuNC91c2IzLzMt
My8zLTMuMi8zLTMuMjoxLjEvMDAwMzoyNzE3OjUwMTAuMDAwMi9pbnB1dC9pbnB1dDE3ClsgICAg
NS4wMjAwMjhdIGlucHV0OiBNT1NBUlQgU2VtaS4gTWkgV2lyZWxlc3MgQ29tYm8gYXMgL2Rldmlj
ZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNTowMC40L3VzYjMvMy0zLzMtMy4yLzMt
My4yOjEuMS8wMDAzOjI3MTc6NTAxMC4wMDAyL2lucHV0L2lucHV0MTgKWyAgICA1LjAyMDY5N10g
aW5wdXQ6IE1PU0FSVCBTZW1pLiBNaSBXaXJlbGVzcyBDb21ibyBhcyAvZGV2aWNlcy9wY2kwMDAw
OjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjQvdXNiMy8zLTMvMy0zLjIvMy0zLjI6MS4xLzAw
MDM6MjcxNzo1MDEwLjAwMDIvaW5wdXQvaW5wdXQxOQpbICAgIDUuMDIyNjMwXSBoaWQtZ2VuZXJp
YyAwMDAzOjI3MTc6NTAxMC4wMDAyOiBpbnB1dCxoaWRkZXYwLGhpZHJhdzE6IFVTQiBISUQgdjEu
MTAgTW91c2UgW01PU0FSVCBTZW1pLiBNaSBXaXJlbGVzcyBDb21ib10gb24gdXNiLTAwMDA6MDU6
MDAuNC0zLjIvaW5wdXQxClsgICAgNS4xODY4ODldIGxvb3AxOTogZGV0ZWN0ZWQgY2FwYWNpdHkg
Y2hhbmdlIGZyb20gMCB0byA4ClsgICAgNS4yMjgzNDJdIG9wZW52c3dpdGNoOiBPcGVuIHZTd2l0
Y2ggc3dpdGNoaW5nIGRhdGFwYXRoClsgICAgNS4yNjkxMTRdIG92cy1zeXN0ZW06IGVudGVyZWQg
cHJvbWlzY3VvdXMgbW9kZQpbICAgIDUuMjcyNTA4XSBUaW1lb3V0IHBvbGljeSBiYXNlIGlzIGVt
cHR5ClsgICAgNS4zNDM4MzJdIGlucHV0OiBIRC1BdWRpbyBHZW5lcmljIE1pYyBhcyAvZGV2aWNl
cy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjYvc291bmQvY2FyZDIvaW5wdXQy
MApbICAgIDUuMzQ0MjAwXSBpbnB1dDogSEQtQXVkaW8gR2VuZXJpYyBIZWFkcGhvbmUgYXMgL2Rl
dmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNTowMC42L3NvdW5kL2NhcmQyL2lu
cHV0MjEKWyAgICA1LjM0ODk5OF0gb3ZzYnIwOiBlbnRlcmVkIHByb21pc2N1b3VzIG1vZGUKWyAg
ICA1LjM1MTgyM10gdmlmIHZpZi0xIGV0aDA6IGVudGVyZWQgcHJvbWlzY3VvdXMgbW9kZQpbICAg
IDUuMzU0MjE2XSBjZGNfbmNtIDEtNC4zOjIuMCBlbnhmOGU0M2JjZGIzNzY6IGVudGVyZWQgcHJv
bWlzY3VvdXMgbW9kZQpbICAgIDUuMzY0Njc1XSBuZXQgZXRoMDogSWxsZWdhbCBudW1iZXIgb2Yg
cmVzcG9uc2VzIDQyOTQ5NjcyOTUKWyAgIDIzLjI4OTUxNF0gcGNpZXBvcnQgMDAwMDowMDowOC4x
OiBQTUU6IFNwdXJpb3VzIG5hdGl2ZSBpbnRlcnJ1cHQhClsgICA2Ny4zMjMwNzZdIHBjaWVwb3J0
IDAwMDA6MDA6MDIuNDogQUVSOiBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMDowMi40ClsgICA2Ny4zMjMxMDRdIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPURhdGEgTGluayBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAgNjcuMzIzMTA3XSBwY2llcG9ydCAwMDAwOjAwOjAyLjQ6ICAgZGV2
aWNlIFsxMDIyOjE2MzRdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAwMDQwLzAwMDAwMDAwClsgICA2
Ny4zMjMxMDldIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogICAgWyA2XSBCYWRUTFAgICAgICAgICAg
ICAgICAgClsgIDEwNi4yNTQ3NDldIHN5c3RlbWQtam91cm5hbGRbMzE3XTogRmlsZSAvdmFyL2xv
Zy9qb3VybmFsLzZjMjA4MzYxYTI4NDQ4ZTZhNjQ3MjRjMzM3YmRlNTUyL3VzZXItMTAwMC5qb3Vy
bmFsIGNvcnJ1cHRlZCBvciB1bmNsZWFubHkgc2h1dCBkb3duLCByZW5hbWluZyBhbmQgcmVwbGFj
aW5nLgpbICAxMTkuOTI2OTQzXSBbZHJtXSBhbWRncHUga2VybmVsIG1vZGVzZXR0aW5nIGVuYWJs
ZWQuClsgIDExOS45MjY5NzRdIGFtZGdwdTogdmdhX3N3aXRjaGVyb286IGRldGVjdGVkIHN3aXRj
aGluZyBtZXRob2QgXF9TQl8uUENJMC5HUDE3LlZHQV8uQVRQWCBoYW5kbGUKWyAgMTE5LjkyOTEy
OV0gYW1kZ3B1OiBBVFBYIHZlcnNpb24gMSwgZnVuY3Rpb25zIDB4MDAwMDAwMDEKWyAgMTE5Ljky
OTQzMV0gYW1kZ3B1OiBBVFBYIEh5YnJpZCBHcmFwaGljcwpbICAxMTkuOTgzODUyXSBhbWRncHU6
IFZpcnR1YWwgQ1JBVCB0YWJsZSBjcmVhdGVkIGZvciBDUFUKWyAgMTE5Ljk4NDAwNF0gYW1kZ3B1
OiBUb3BvbG9neTogQWRkIENQVSBub2RlClsgIDExOS45ODQ4OTZdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IGVuYWJsaW5nIGRldmljZSAoMDAwNiAtPiAwMDA3KQpbICAxMTkuOTg1MTQzXSBbZHJtXSBp
bml0aWFsaXppbmcga2VybmVsIG1vZGVzZXR0aW5nIChESU1HUkVZX0NBVkVGSVNIIDB4MTAwMjow
eDczRkYgMHgxMDAyOjB4MDEyNCAweEM3KS4KWyAgMTE5Ljk4NjgxOV0gW2RybV0gcmVnaXN0ZXIg
bW1pbyBiYXNlOiAweEQwNjAwMDAwClsgIDExOS45ODY4MjJdIFtkcm1dIHJlZ2lzdGVyIG1taW8g
c2l6ZTogMTA0ODU3NgpbICAxMTkuOTkzMTI4XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDAg
PG52X2NvbW1vbj4KWyAgMTE5Ljk5MzEzMl0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciAxIDxn
bWNfdjEwXzA+ClsgIDExOS45OTMxMzRdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgMiA8bmF2
aTEwX2loPgpbICAxMTkuOTkzMTM2XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDMgPHBzcD4K
WyAgMTE5Ljk5MzEzN10gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciA0IDxzbXU+ClsgIDExOS45
OTMxMzldIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNSA8ZG0+ClsgIDExOS45OTMxNDFdIFtk
cm1dIGFkZCBpcCBibG9jayBudW1iZXIgNiA8Z2Z4X3YxMF8wPgpbICAxMTkuOTkzMTQyXSBbZHJt
XSBhZGQgaXAgYmxvY2sgbnVtYmVyIDcgPHNkbWFfdjVfMj4KWyAgMTE5Ljk5MzE0NF0gW2RybV0g
YWRkIGlwIGJsb2NrIG51bWJlciA4IDx2Y25fdjNfMD4KWyAgMTE5Ljk5MzE0NV0gW2RybV0gYWRk
IGlwIGJsb2NrIG51bWJlciA5IDxqcGVnX3YzXzA+ClsgIDEyMC4wMjQyMDBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IGFtZGdwdTogRmV0Y2hlZCBWQklPUyBmcm9tIEFUUk0KWyAgMTIwLjAyNDIxOV0g
YW1kZ3B1OiBBVE9NIEJJT1M6IDExMy1ENTM0MDEwMC0xMDIKWyAgMTIwLjA0NjQxM10gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBUcnVzdGVkIE1lbW9yeSBab25lIChUTVopIGZlYXR1cmUg
ZGlzYWJsZWQgYXMgZXhwZXJpbWVudGFsIChkZWZhdWx0KQpbICAxMjAuMDQ2NjQ1XSBbZHJtXSB2
bSBzaXplIGlzIDI2MjE0NCBHQiwgNCBsZXZlbHMsIGJsb2NrIHNpemUgaXMgOS1iaXQsIGZyYWdt
ZW50IHNpemUgaXMgOS1iaXQKWyAgMTIwLjA0OTY3OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogQkFS
IDIgW21lbSAweGZjYTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHByZWZdOiByZWxlYXNpbmcK
WyAgMTIwLjA0OTY4Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogQkFSIDAgW21lbSAweGZjOTAwMDAw
MDAtMHhmYzlmZmZmZmZmIDY0Yml0IHByZWZdOiByZWxlYXNpbmcKWyAgMTIwLjA0OTc4MV0gcGNp
ZXBvcnQgMDAwMDowMjowMC4wOiBicmlkZ2Ugd2luZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNh
MDFmZmZmZiA2NGJpdCBwcmVmXTogcmVsZWFzaW5nClsgIDEyMC4wNDk3ODZdIHBjaWVwb3J0IDAw
MDA6MDE6MDAuMDogYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmM5MDAwMDAwMC0weGZjYTAxZmZmZmYg
NjRiaXQgcHJlZl06IHJlbGVhc2luZwpbICAxMjAuMDQ5NzkwXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IGJyaWRnZSB3aW5kb3cgW21lbSAweGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHBy
ZWZdOiByZWxlYXNpbmcKWyAgMTIwLjA0OTgwMV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBicmlk
Z2Ugd2luZG93IFttZW0gMHg5MDAwMDAwMDAtMHhiZmZmZmZmZmYgNjRiaXQgcHJlZl06IGFzc2ln
bmVkClsgIDEyMC4wNDk4MDVdIHBjaWVwb3J0IDAwMDA6MDE6MDAuMDogYnJpZGdlIHdpbmRvdyBb
bWVtIDB4OTAwMDAwMDAwLTB4YmZmZmZmZmZmIDY0Yml0IHByZWZdOiBhc3NpZ25lZApbICAxMjAu
MDQ5ODEwXSBwY2llcG9ydCAwMDAwOjAyOjAwLjA6IGJyaWRnZSB3aW5kb3cgW21lbSAweDkwMDAw
MDAwMC0weGJmZmZmZmZmZiA2NGJpdCBwcmVmXTogYXNzaWduZWQKWyAgMTIwLjA0OTgxNV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogQkFSIDAgW21lbSAweGEwMDAwMDAwMC0weGJmZmZmZmZmZiA2NGJp
dCBwcmVmXTogYXNzaWduZWQKWyAgMTIwLjA0OTgzM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogQkFS
IDIgW21lbSAweDkwMDAwMDAwMC0weDkwMDFmZmZmZiA2NGJpdCBwcmVmXTogYXNzaWduZWQKWyAg
MTIwLjA0OTg1Ml0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEt
MDNdClsgIDEyMC4wNDk4NTZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2luZG93
IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgMTIwLjA0OTg2M10gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4ZDA4ZmZmZmZdClsgIDEyMC4wNDk4
NjldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2luZG93IFttZW0gMHg5MDAwMDAw
MDAtMHhiZmZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgMTIwLjA0OTg3OF0gcGNpZXBvcnQgMDAwMDow
MTowMC4wOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDItMDNdClsgIDEyMC4wNDk4ODFdIHBjaWVwb3J0
IDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgMTIw
LjA0OTg5MF0gcGNpZXBvcnQgMDAwMDowMTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQw
NjAwMDAwLTB4ZDA3ZmZmZmZdClsgIDEyMC4wNDk4OTZdIHBjaWVwb3J0IDAwMDA6MDE6MDAuMDog
ICBicmlkZ2Ugd2luZG93IFttZW0gMHg5MDAwMDAwMDAtMHhiZmZmZmZmZmYgNjRiaXQgcHJlZl0K
WyAgMTIwLjA0OTkwNl0gcGNpZXBvcnQgMDAwMDowMjowMC4wOiBQQ0kgYnJpZGdlIHRvIFtidXMg
MDNdClsgIDEyMC4wNDk5MDldIHBjaWVwb3J0IDAwMDA6MDI6MDAuMDogICBicmlkZ2Ugd2luZG93
IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgMTIwLjA0OTkxN10gcGNpZXBvcnQgMDAwMDowMjowMC4w
OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4ZDA3ZmZmZmZdClsgIDEyMC4wNDk5
MjNdIHBjaWVwb3J0IDAwMDA6MDI6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHg5MDAwMDAw
MDAtMHhiZmZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgMTIwLjA1NzAzNl0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogYW1kZ3B1OiBWUkFNOiA4MTc2TSAweDAwMDAwMDgwMDAwMDAwMDAgLSAweDAwMDAwMDgx
RkVGRkZGRkYgKDgxNzZNIHVzZWQpClsgIDEyMC4wNTcwNDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IGFtZGdwdTogR0FSVDogNTEyTSAweDAwMDAwMDAwMDAwMDAwMDAgLSAweDAwMDAwMDAwMUZGRkZG
RkYKWyAgMTIwLjA1NzA4MF0gW2RybV0gRGV0ZWN0ZWQgVlJBTSBSQU09ODE3Nk0sIEJBUj04MTky
TQpbICAxMjAuMDU3MDg0XSBbZHJtXSBSQU0gd2lkdGggMTI4Yml0cyBHRERSNgpbICAxMjAuMDU4
MDQ4XSBbZHJtXSBhbWRncHU6IDgxNzZNIG9mIFZSQU0gbWVtb3J5IHJlYWR5ClsgIDEyMC4wNTgw
NTFdIFtkcm1dIGFtZGdwdTogMjc1NE0gb2YgR1RUIG1lbW9yeSByZWFkeS4KWyAgMTIwLjA1ODEz
MF0gW2RybV0gR0FSVDogbnVtIGNwdSBwYWdlcyAxMzEwNzIsIG51bSBncHUgcGFnZXMgMTMxMDcy
ClsgIDEyMC4wNTgyNzVdIFtkcm1dIFBDSUUgR0FSVCBvZiA1MTJNIGVuYWJsZWQgKHRhYmxlIGF0
IDB4MDAwMDAwODAwMEYwMDAwMCkuClsgIDEyMS42OTg5MDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IGFtZGdwdTogU1RCIGluaXRpYWxpemVkIHRvIDIwNDggZW50cmllcwpbICAxMjEuNzAwMDcwXSBb
ZHJtXSBMb2FkaW5nIERNVUIgZmlybXdhcmUgdmlhIFBTUDogdmVyc2lvbj0weDAyMDIwMDEzClsg
IDEyMS43MDEyMzddIFtkcm1dIHVzZV9kb29yYmVsbCBiZWluZyBzZXQgdG86IFt0cnVlXQpbICAx
MjEuNzAxMjgwXSBbZHJtXSB1c2VfZG9vcmJlbGwgYmVpbmcgc2V0IHRvOiBbdHJ1ZV0KWyAgMTIx
LjcwMTMyOF0gW2RybV0gRm91bmQgVkNOIGZpcm13YXJlIFZlcnNpb24gRU5DOiAxLjMwIERFQzog
MyBWRVA6IDAgUmV2aXNpb246IDgKWyAgMTIxLjc3MjY0MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
YW1kZ3B1OiByZXNlcnZlIDB4YTAwMDAwIGZyb20gMHg4MWZkMDAwMDAwIGZvciBQU1AgVE1SClsg
IDEyMS44NzE4NjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogUkFTOiBvcHRpb25hbCBy
YXMgdGEgdWNvZGUgaXMgbm90IGF2YWlsYWJsZQpbICAxMjEuODg5OTUyXSBhbWRncHUgMDAwMDow
MzowMC4wOiBhbWRncHU6IFNFQ1VSRURJU1BMQVk6IHNlY3VyZWRpc3BsYXkgdGEgdWNvZGUgaXMg
bm90IGF2YWlsYWJsZQpbICAxMjEuODg5OTc2XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6
IHNtdSBkcml2ZXIgaWYgdmVyc2lvbiA9IDB4MDAwMDAwMGYsIHNtdSBmdyBpZiB2ZXJzaW9uID0g
MHgwMDAwMDAxMywgc211IGZ3IHByb2dyYW0gPSAwLCB2ZXJzaW9uID0gMHgwMDNiMjkwMCAoNTku
NDEuMCkKWyAgMTIxLjg4OTk4MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTTVUgZHJp
dmVyIGlmIHZlcnNpb24gbm90IG1hdGNoZWQKWyAgMTIxLjg5MDAxOF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogYW1kZ3B1OiB1c2UgdmJpb3MgcHJvdmlkZWQgcHB0YWJsZQpbICAxMjEuOTM3NzU0XSBh
bWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IFNNVSBpcyBpbml0aWFsaXplZCBzdWNjZXNzZnVs
bHkhClsgIDEyMS45Mzg5NDNdIFtkcm1dIERpc3BsYXkgQ29yZSB2My4yLjMwMSBpbml0aWFsaXpl
ZCBvbiBEQ04gMy4wLjIKWyAgMTIxLjkzODk0OV0gW2RybV0gRFAtSERNSSBGUkwgUENPTiBzdXBw
b3J0ZWQKWyAgMTIxLjk0MDM0Nl0gW2RybV0gRE1VQiBoYXJkd2FyZSBpbml0aWFsaXplZDogdmVy
c2lvbj0weDAyMDIwMDEzClsgIDEyMS45NDYxMDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBib3VuZCAwMDAwOjAzOjAwLjAgKG9wcyBhbWRncHVfZG1fYXVkaW9fY29tcG9uZW50X2JpbmRf
b3BzIFthbWRncHVdKQpbICAxMjIuMTc0Mzc2XSBbZHJtXSBraXEgcmluZyBtZWMgMiBwaXBlIDEg
cSAwClsgIDEyMi4yNTUzMjldIGFtZGdwdTogSE1NIHJlZ2lzdGVyZWQgODE3Nk1CIGRldmljZSBt
ZW1vcnkKWyAgMTIyLjI1NzcwMV0ga2ZkIGtmZDogYW1kZ3B1OiBBbGxvY2F0ZWQgMzk2OTA1NiBi
eXRlcyBvbiBnYXJ0ClsgIDEyMi4yNTc3NTRdIGtmZCBrZmQ6IGFtZGdwdTogVG90YWwgbnVtYmVy
IG9mIEtGRCBub2RlcyB0byBiZSBjcmVhdGVkOiAxClsgIDEyMi4yNTg0MDJdIGFtZGdwdTogVmly
dHVhbCBDUkFUIHRhYmxlIGNyZWF0ZWQgZm9yIEdQVQpbICAxMjIuMjU5NzcyXSBhbWRncHU6IFRv
cG9sb2d5OiBBZGQgZEdQVSBub2RlIFsweDczZmY6MHgxMDAyXQpbICAxMjIuMjU5Nzc1XSBrZmQg
a2ZkOiBhbWRncHU6IGFkZGVkIGRldmljZSAxMDAyOjczZmYKWyAgMTIyLjI1OTc5OF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTRSAyLCBTSCBwZXIgU0UgMiwgQ1UgcGVyIFNIIDgsIGFj
dGl2ZV9jdV9udW1iZXIgMjgKWyAgMTIyLjI1OTgwNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1k
Z3B1OiByaW5nIGdmeF8wLjAuMCB1c2VzIFZNIGludiBlbmcgMCBvbiBodWIgMApbICAxMjIuMjU5
ODA2XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcgZ2Z4XzAuMS4wIHVzZXMgVk0g
aW52IGVuZyAxIG9uIGh1YiAwClsgIDEyMi4yNTk4MDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFt
ZGdwdTogcmluZyBjb21wXzEuMC4wIHVzZXMgVk0gaW52IGVuZyA0IG9uIGh1YiAwClsgIDEyMi4y
NTk4MDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMS4wIHVzZXMg
Vk0gaW52IGVuZyA1IG9uIGh1YiAwClsgIDEyMi4yNTk4MTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IGFtZGdwdTogcmluZyBjb21wXzEuMi4wIHVzZXMgVk0gaW52IGVuZyA2IG9uIGh1YiAwClsgIDEy
Mi4yNTk4MTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMy4wIHVz
ZXMgVk0gaW52IGVuZyA3IG9uIGh1YiAwClsgIDEyMi4yNTk4MTNdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IGFtZGdwdTogcmluZyBjb21wXzEuMC4xIHVzZXMgVk0gaW52IGVuZyA4IG9uIGh1YiAwClsg
IDEyMi4yNTk4MTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMS4x
IHVzZXMgVk0gaW52IGVuZyA5IG9uIGh1YiAwClsgIDEyMi4yNTk4MTVdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMi4xIHVzZXMgVk0gaW52IGVuZyAxMCBvbiBodWIg
MApbICAxMjIuMjU5ODE3XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcgY29tcF8x
LjMuMSB1c2VzIFZNIGludiBlbmcgMTEgb24gaHViIDAKWyAgMTIyLjI1OTgxOF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIGtpcV8wLjIuMS4wIHVzZXMgVk0gaW52IGVuZyAxMiBv
biBodWIgMApbICAxMjIuMjU5ODIwXSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcg
c2RtYTAgdXNlcyBWTSBpbnYgZW5nIDEzIG9uIGh1YiAwClsgIDEyMi4yNTk4MjFdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBzZG1hMSB1c2VzIFZNIGludiBlbmcgMTQgb24gaHVi
IDAKWyAgMTIyLjI1OTgyMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIHZjbl9k
ZWNfMCB1c2VzIFZNIGludiBlbmcgMCBvbiBodWIgOApbICAxMjIuMjU5ODI0XSBhbWRncHUgMDAw
MDowMzowMC4wOiBhbWRncHU6IHJpbmcgdmNuX2VuY18wLjAgdXNlcyBWTSBpbnYgZW5nIDEgb24g
aHViIDgKWyAgMTIyLjI1OTgyNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIHZj
bl9lbmNfMC4xIHVzZXMgVk0gaW52IGVuZyA0IG9uIGh1YiA4ClsgIDEyMi4yNTk4MjZdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBqcGVnX2RlYyB1c2VzIFZNIGludiBlbmcgNSBv
biBodWIgOApbICAxMjIuMjg0MzQxXSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IFNNVTog
cmVzcG9uc2U6MHhGRkZGRkZGRiBmb3IgaW5kZXg6MTMgcGFyYW06MHgwMDAwMDAwMCBtZXNzYWdl
OkdldEVuYWJsZWRTbXVGZWF0dXJlc0hpZ2g/ClsgIDEyMi4yODQ0MjRdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IGFtZGdwdTogRmFpbGVkIHRvIHJldHJpZXZlIGVuYWJsZWQgcHBmZWF0dXJlcyEKWyAg
MTIyLjI4NDQ2MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBVc2luZyBCT0NPIGZvciBy
dW50aW1lIHBtClsgIDEyMi4yODQ1MzFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMi4y
ODQ1NzJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIyLjI4NDU3N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMi4yODQ1ODJdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIyLjI5MTMyNV0gW2RybV0gSW5pdGlhbGl6ZWQgYW1kZ3B1IDMuNTkuMCBmb3IgMDAwMDow
MzowMC4wIG9uIG1pbm9yIDAKWyAgMTIyLjM2MjYzOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1k
Z3B1OiBTTVU6IHJlc3BvbnNlOjB4RkZGRkZGRkYgZm9yIGluZGV4OjQwIHBhcmFtOjB4MDAwMDAw
MDAgbWVzc2FnZTpBbGxvd0dmeE9mZj8KWyAgMTIyLjM2Mjc4NF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogYW1kZ3B1OiBGYWlsZWQgdG8gZW5hYmxlIGdmeG9mZiEKWyAgMTIyLjM2Mjg1MV0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIyLjM2Mjg5OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjIuMzYyOTA0XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIyLjM2MjkxMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMTg3MjE1XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMTg3ODc5XSBwY2llcG9ydCAwMDAwOjAxOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMTg3OTA5XSBwY2llcG9ydCAwMDAwOjAxOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjE0NzhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy4xODc5MzhdIHBjaWVwb3J0IDAwMDA6MDE6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy4xODgwMzBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuMTg4MDYwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMTg4MDg5
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjE4ODE4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuMTg4MjExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjE4ODI0
MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuMTg4MjY5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjE4ODkyMV0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjE4OTM2OV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4xODkzOTRdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy4xODk0MjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuMTg5NTUyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4xODk2MDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuMTg5NjUwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4xODk2OTldIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuMTkwMTMwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMTkwNzM0
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjE5MDc2MF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjE5MDc4Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4xOTA5NDFdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjE5MDk2N10gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4xOTA5OTVdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjE5MTA0M10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy4xOTE0NzVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy4xOTE4OTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuMTkxOTUwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMTkxOTk5XSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjE5
MjE3M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuMTkyMTk4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjE5MjIyNF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuMTkyMjczXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjE5MjczMl0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjE5MzI2MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4xOTMzMDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy4xOTMzNTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuMTkzNTExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy4xOTM1NTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuMTkzNjA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy4xOTM2NTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMTk0
MjgwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMTk0Nzk1XSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjE5NDg3MV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjE5NDg5N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4xOTUwNzNdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjE5NTEyMl0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy4xOTUxNzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjE5NTE5Nl0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy4xOTU2OTldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy4xOTYyNDNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuMTk2MzQwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMTk2NDEzXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjE5NjU2OF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMTk2
NTk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjE5NjY0Nl0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
MTk2NzIwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjE5NzE5N10gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjE5Nzc2NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy4xOTc4MTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4x
OTc4ODZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuMTk3OTY2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy4xOTgwMTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
MTk4MDQzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy4xOTgwOTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMTk4NzcwXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMTk5MjkyXSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjE5OTM0Ml0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjE5OTM5M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy4xOTk0OTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjE5OTUyMl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy4xOTk1NzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjE5OTY0Nl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy4yMDAwOThdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4y
MDA2OTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjAw
NzQxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjAwNzY3XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIwMDg5NF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjAwOTE5XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIwMDk2OF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjAxMDE3
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjIwMTUyMV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjIwMjA3NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy4yMDIxMjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMDIxNzRd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuMjAyNDY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy4yMDI1NDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjAyNTY3
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy4yMDI2MTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjAzMDUzXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjAzNTc0XSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIwMzYyM10gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjIwMzY3Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy4yMDM3NzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIwMzgwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy4yMDM4MjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIwMzg3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My4yMDQzMjhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yMDQ4MDFd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjA0ODk4XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjA0OTQ3XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIwNTA3M10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjA1MDk4XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIwNTEyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjA1MTczXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjIwNTczMF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjIwNjIwM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy4yMDYyNTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMDY0NTddIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjA2
NTg5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My4yMDY2MzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjA2NjY0XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy4yMDY3MTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjA3MjEzXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjA3NzA4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIwNzczNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjIwNzc1OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy4yMDc4NjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjIwNzg4OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy4yMDc5MzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjIwNzk2M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yMDg0
NjRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yMDg5MThdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjA4OTQzXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuMjA4OTY5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIwOTE0M10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjA5MTkzXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIwOTIxOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjA5MjY3XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjIwOTgzOV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjIxMDUyNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My4yMTA1NzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMTA2MjVdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjEwNzU0XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMTA4
MDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjEwODUyXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4y
MTA5MDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjExNDA0XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuMjExOTIyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjIxMTk0N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIx
MjAxOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy4yMTIxMjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjIxMjE0OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4y
MTIxOTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjIxMjI0Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yMTI3MjddIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yMTMyMTBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjEzMjU5XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuMjEzMzMxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIxMzQ4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjEzNTMxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjIxMzYwNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjEzNjU1XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTIzLjIxNDE3N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjIx
NDkyMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMTUw
MTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMTUwNDVdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjE1MTczXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMTUyOTVdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjE1MzIxXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMTUzOTRd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjE1Nzc2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuMjE2MjczXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjIxNjI5OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIxNjMyNF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My4yMTY0MjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjIxNjQ1M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMTY1NTRd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjIxNjYyN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yMTcxMDJdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yMTc1OTldIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjE3NjQ5XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuMjE3NzQ3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjIxNzg1Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjE3OTAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjIxNzk3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjE4MDQ3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIz
LjIxODY5M10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjIxOTE5Ml0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMTkyNjddIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMTkzMTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjE5NDQzXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMTk0OTRdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjE5NTIyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMTk1OTRdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMjMuMjIwMDI0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuMjIwNTQ0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjIyMDU5M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIyMDY2Nl0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMjA3
NzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjIyMDg2OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMjA4OTVdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjIyMDkyMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yMjEzNzZdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yMjE4MDRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjIxODg3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuMjIxOTM3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjIyMjA2Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuMjIyMTY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjIyMjIzN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuMjIyNTAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjIyMjkz
N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjIyMzQxM10gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMjM0MzldIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy4yMjM0NjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjIzNTkyXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMjM2NDFdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuMjIzNjkxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMjM3MTZdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMjMuMjI0MTY3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuMjI0NzQxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjIyNDc5MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIyNDg0MF0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMjQ5NjldIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIyNDk5
NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMjUwMjBdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIy
NTA3MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yMjU1NDhdIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEyMy4yMjYxMjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuMjI2MTk0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjI2
MjY3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjIyNjU2OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuMjI2NTk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIy
NjYyMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuMjI2NjkzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjIyNzE0OF0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjIyNzY5NV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMjc3NDRdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy4yMjc3OTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuMjI3OTI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMjc5NzldIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuMjI4MDI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMjgxMjVdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMjMuMjI4NjAyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjI5
MTQ2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIyOTE5
NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIyOTI0NV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMjkzOTZdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIyOTUxOF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMjk1NDRdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIyOTYxN10g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yMzAwNDRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEyMy4yMzA2NDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuMjMwNjkxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjMwNzE3XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjIzMDg2OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuMjMwODk1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIzMTAxNl0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuMjMxMDY1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjIzMTU0MF0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjIzMjA4Nl0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMzIxMzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy4yMzIyMDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuMjMyMzE0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMzIzNjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuMjMyNDE2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMzI0NDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMu
MjMyOTI0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjMzNDcxXSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIzMzU0NF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIzMzYxN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMzM3NDZdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIzMzgxOV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yMzM5MThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIzMzk2N10gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEyMy4yMzQ1NDNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEyMy4yMzUwNjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuMjM1MTg0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjM1MjM0XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIzNTM2
Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
MjM1NDM1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIzNTQ4NF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuMjM1NTgyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjIzNjAzOV0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjIzNjQ5MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yMzY1NDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My4yMzY1NjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuMjM2Njk1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy4yMzY3MTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuMjM2NzQ1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy4yMzY3OTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjM3MzAw
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjM3OTE5XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIzNzk0NF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjIzODAxN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yMzgwOThdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjIzODE0N10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy4yMzgxOTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIzODI0Nl0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy4yMzg4MTFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My4yMzkzNzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
MjM5NDI4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjM5NDc3XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjIzOTYwNV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjM5NjU0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjIzOTcwM10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjM5
Nzc2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI0MDIyN10gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjI0MDcyNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy4yNDA3NzhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNDA4
MjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuMjQwOTc5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy4yNDEwMjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjQx
MDU0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy4yNDExMjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjQxNTU1XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjQxOTk1XSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI0MjA2OF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjI0MjE0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy4yNDIyOTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI0MjU0MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy4yNDI1OTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI0MjY0MV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy4yNDMxNDddIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yNDM2
OTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjQzNzQ1
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjQzNzcwXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI0Mzk2OV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjQzOTk0XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI0NDAyMF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjQ0MDY5XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI0NDUyNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjI0NTAyMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy4yNDUwNzBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNDUxMjBdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
MjQ1MjQ4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy4yNDUyNzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjQ1MzcxXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy4yNDU0NDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjQ2MTU4XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjQ2NzQyXSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI0Njc5Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjI0Njg0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy4yNDY5MjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjI0Njk0OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy4yNDY5NzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI0NzA0OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4y
NDc1MDVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yNDgxMDBdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjQ4MTQ5XSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjQ4MTk4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI0ODMyNl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjQ4Mzc1XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI0ODQyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjQ4NDUxXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjI0ODk0Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjI0OTUzOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy4yNDk2MTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNDk2NDBdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjQ5NzQ0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4y
NDk4MTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjQ5ODkyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My4yNTAwMzZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjUwNzA3XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjUxMjA0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjI1MTIzMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjI1MTI1Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy4yNTEzMzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjI1MTQwOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My4yNTE0NThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjI1MTQ4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yNTIwODJd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yNTI2MjldIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjUyNzAyXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuMjUyNzUyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI1Mjg2MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjUyOTEyXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjI1MjkzOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjUyOTg2XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjI1MzU1OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjI1NDE3N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4y
NTQyMjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNTQyOThdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjU0NTE2XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNTQ1NjVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjU0NTkxXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNTQ2
NjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjU1MTM3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuMjU1NjgyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjI1NTc1NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI1NTgw
M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy4yNTU4ODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjI1NTkwOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNTU5
NTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjI1NTk4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yNTY1MjhdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yNTcwNDZdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjU3MDk3XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuMjU3MTQ3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjI1NzI1MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjU3NDE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjI1NzQ0MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjU3NTM3XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjI1ODA0MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjI1ODc3
Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNTg4NDld
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNTg4NzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjU4OTU3XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNTkwMDVdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjU5MDMxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNTkwODBdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuMjU5NDgzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuMjYwMDA0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjI2MDAyOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI2MDA1NV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4y
NjAxODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjI2MDIzMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNjAyNThdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjI2MDMwNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yNjA3NTldIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yNjEzMjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjYxMzUzXSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuMjYxMzc5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjI2MTQ1OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuMjYxNDg0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjI2MTUxMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuMjYxNTgzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI2
MjE2NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjI2MzAyMF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNjMwNDddIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNjMwNzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjYzMTgwXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNjMyNTRdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjYzMjgwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNjMzMjldIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuMjYzODMwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuMjY0MzAyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjI2NDM1MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI2NDQwMV0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNjQ1MDVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI2
NDUyOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNjQ1NzldIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjI2NDYwNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yNjUwNTldIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy4yNjU1MzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuMjY1NjMxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
MjY1NjU3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjI2NTc4NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuMjY1ODEyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjI2NTgzN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuMjY1OTM0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI2NjU0OV0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjI2NzA5Ml0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNjcxNjVdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy4yNjcyMTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjY3MzY1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNjc0MTRdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuMjY3NTExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNjc1ODRdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuMjY4MDYxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
MjY4NjUxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI2
ODc0N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI2ODc5Nl0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNjg4NzddIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI2ODkwMV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNjg5NzZdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI2OTA0
OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yNjk1MjddIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy4yNzAxOTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuMjcwMjkwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjcwNTIz
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjI3MDY1NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuMjcwNjgyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI3MDY4
NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuMjcwNjg1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI3MTIzNV0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjI3MTc4Ml0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNzE5MDJdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy4yNzE5MjhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuMjcyMTA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNzIxNThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuMjcyMTg0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNzIyMzNdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuMjcyNzM3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjczMjE2
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI3MzI0MV0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI3MzI2Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNzMzOTZdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI3MzQ0NV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNzM0NzJdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI3MzUyMl0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy4yNzQwNTFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy4yNzQ2NjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuMjc0NzE1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjc0NzQxXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI3
NDgyMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuMjc0ODcwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI3NDkyMF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuMjc0OTY5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI3NTQyMl0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjI3NTkyMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yNzU5NjldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy4yNzYwMThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuMjc2MTY5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy4yNzYxOTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuMjc2MjQzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy4yNzYzMTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjc2
Njc0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjc3MDk5XSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI3NzEyNF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI3NzE1MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yNzcyMzBdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI3NzI4MF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yNzczMDZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI3NzM3OV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy4yNzc5MDldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy4yNzg2NDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuMjc4NjcyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjc4Njk4XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI3ODgyNl0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjc4
ODc1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI3ODkyNF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
Mjc4OTk4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI3OTU0Nl0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjI3OTk5NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy4yODAwMTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4y
ODAwNDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuMjgwMTczXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy4yODAyMjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
MjgwMjQ5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy4yODAyOTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjgwNjgwXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjgxMTU2XSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI4MTE4MV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjI4MTIwN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yODEzMzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI4MTM1OV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy4yODE0MDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI4MTQzM10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy4yODE5MjBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4y
ODI1NzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjgy
NjI5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjgyNjc5XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI4MjgwNl0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjgyODYxXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI4Mjg4OV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjgyOTE1
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjI4MzQzNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjI4MzkzMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy4yODM5NzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yODQwMjld
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuMjg0MTU5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy4yODQyMDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjg0MjM0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy4yODQyODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjg0Njg4XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjg1MTEzXSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI4NTEzOV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjI4NTE2NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy4yODUyOTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI4NTM0MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy4yODU0MTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI4NTQ2M10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My4yODU5NDFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yODY2MjZd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjg2NzAwXSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjg2NzQ5XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI4Njg1OF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjg2ODg0XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI4NjkxMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjg2OTU4XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjI4NzQwOV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjI4NzkwOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy4yODc5MzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yODc5NjFdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjg4
MDg5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My4yODgxMzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjg4MTg3XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy4yODgyMTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjg4NjY4XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMjg5MDcxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjI4OTA5N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjI4OTE0Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy4yODkyNzRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjI4OTI5OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy4yODkzMjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjI4OTM1Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yODk4
NzZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yOTA2MTZdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjkwNjY2XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuMjkwNjkyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI5MDc5N10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjkwODQ2XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI5MDg3Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjkwOTIxXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjI5MTQ0OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjI5MTkwM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My4yOTE5MzBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yOTE5NTVdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjkyMDYwXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yOTIx
MDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjkyMTM1XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4y
OTIxODRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjkyNzQxXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuMjkzMjAwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjI5MzIyN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI5
MzI1Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy4yOTMzNTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjI5MzQwNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4y
OTM0NTVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjI5MzUwNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yOTQwMzBdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yOTQ3NTldIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjk0ODMzXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuMjk0ODgyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjI5NTAxMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjk1MDU5XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjI5NTExMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjk1MTM2XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTIzLjI5NTYxM10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjI5
NjE4M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yOTYy
MDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yOTYyMzRdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjk2MzE1XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4yOTYzNjRdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMjk2NDE0XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4yOTY0NjJd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMjMuMjk2OTQxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuMjk3MzkyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjI5NzQ4OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjI5NzUzN10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My4yOTc2NDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjI5NzY5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4yOTc3NDRd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjI5Nzc5M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4yOTg0ODZdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4yOTg5ODVdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjk5MDU4XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuMjk5MDg0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjI5OTE4OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMjk5MjM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjI5OTI2M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMjk5MzEyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIz
LjI5OTc2N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjMwMDMzNl0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMDAzNjJdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMDAzODhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzAwNTkyXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMDA2NDFdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzAwNjY4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMDA3MTldIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMjMuMzAxMTI1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuMzAxNjI2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjMwMTY3NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMwMTcyNl0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMDE4
MzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjMwMTg2NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMDE4OTNdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjMwMTk2OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zMDI2MDJdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zMDMwODldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzAzMTM4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuMzAzMTg3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjMwMzI5MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuMzAzMzQwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjMwMzM5MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuMzAzNDE1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjMwMzg2
OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjMwNDMxOV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMDQzNjhdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy4zMDQ0NDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzA0NTcwXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMDQ1OTVdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuMzA0NjIxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMDQ2NzBdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMjMuMzA1MzQ5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuMzA1ODcxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjMwNTkyMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMwNTk3MF0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMDYwNzVdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMwNjE0
OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMDYxOTddIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMw
NjI5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zMDcyMDhdIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEyMy4zMDc2NDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuMzA3NjkzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzA3
NzE5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjMwNzg0OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuMzA3ODczXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMw
NzkyMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuMzA3OTcxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjMwODY2N10gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjMwOTI1OV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMDkzMDhdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy4zMDk0MzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuMzA5NTM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMDk1ODZdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuMzA5NjM1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMDk2ODVdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMjMuMzEwNDYwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzEw
OTYzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMxMTAx
M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMxMTAzOV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMTExNjddIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMxMTE5Ml0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMTEyMTddIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMxMTI5MV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zMTE5MTRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEyMy4zMTI0MjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuMzEyNDcxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzEyNDk3XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjMxMjYyNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuMzEyNjc0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMxMjcwMF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuMzEyNzQ5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjMxMzM0Nl0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjMxMzg1MV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMTM5MDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy4zMTM5NzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuMzE0MDc3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMTQxNzRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuMzE0MjAwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMTQyNzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMu
MzE1MDQ0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzE1NTcwXSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMxNTYxOV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMxNTY2OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMTU3NzNdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMxNTgyMl0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMTU4OTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMxNTk0NF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEyMy4zMTY1MjBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEyMy4zMTY5MjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuMzE2OTUwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzE2OTc2XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMxNzEw
Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
MzE3MTU1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMxNzIyOF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuMzE3Mjc3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjMxNzg3NF0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjMxODU1OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMTg2MDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My4zMTg2NTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuMzE4NzM5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy4zMTg3OTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuMzE4ODM5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy4zMTg4ODhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzE5NDg4
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzE5OTg2XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMyMDAxMl0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjMyMDAzOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMjAyMzldIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMyMDI4OF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy4zMjAzMzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMyMDM4OF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy4zMjEwNTZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My4zMjE2MzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
MzIxNjU3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzIxNjgzXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMyMTc2NF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzIxODE1
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMyMTg3M10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzIx
OTI2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjMyMjY1OV0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjMyMzE5M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy4zMjMyNDJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMjMy
NjhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuMzIzMzQ5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy4zMjMzNzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzIz
NDAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy4zMjM0MjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzIzOTc5XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzI0NDc4XSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMyNDUyN10gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjMyNDU1M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy4zMjQ2NTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMyNDY4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy4zMjQ3MzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMyNDc2NV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy4zMjU0MTBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zMjU4
MzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzI1ODg4
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzI1OTYxXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMyNjA5MF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzI2MTM5XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMyNjE2NV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzI2MjM4XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjMyNzA0Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjMyNzU0NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy4zMjc2MTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMjc2NjddIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
MzI3NzQ2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy4zMjc3NzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzI3ODIxXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy4zMjc5MTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzI4NTczXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzI5MTIxXSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjMyOTE0Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjMyOTE3MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy4zMjkyOTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjMyOTM3MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy4zMjk0MjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMyOTQ5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4z
MzAxNTNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zMzA3NDFdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzMwNzkxXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzMwODQwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMzMDkyMV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzMwOTQ3XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMzMDk5N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzMxMDQ2XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjMzMTU5NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjMzMjA0Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy4zMzIwOTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMzIxMjFdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzMyMjUy
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4z
MzIzMDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzMyNDAxXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My4zMzI0NTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzMzMDI4XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzMzNTI3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjMzMzU3N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjMzMzYyNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy4zMzM3MDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjMzMzc1N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My4zMzM4MzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjMzMzg4MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zMzQ2MjVd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zMzUxMDFdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzM1MTk5XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuMzM1MjQ5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjMzNTM3N10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzM1NDI2XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjMzNTQ3Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzM1NTQ5XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjMzNjE0OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjMzNjY2OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4z
MzY3MThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMzY3NjhdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzM2OTE5XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zMzY5NDVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzM2OTcxXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zMzY5
OTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzM3Njk0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuMzM4NDQwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjMzODQ0M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjMzODUx
N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy4zMzg2NDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjMzODY5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zMzg3
NDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjMzODc5M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zMzkzNzBdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zMzk4MTldIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzM5ODY4XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuMzM5ODk0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjM0MDA0Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzQwMDcyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjM0MDEyMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzQwMTcxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjM0MDc5OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjM0MTIy
Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNDEyNTJd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNDEzMDRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzQxMzg0XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNDE0MTBdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzQxNDU5XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNDE1MzJdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuMzQyMTYyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuMzQyODUxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjM0MjkyNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM0Mjk5OF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4z
NDMxNTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjM0MzE3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNDMyMjRdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjM0MzI1MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zNDM4NDZdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zNDQzOTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzQ0NDQyXSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuMzQ0NDY4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjM0NDU5Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuMzQ0NjQ1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjM0NDY3MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuMzQ0Njk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM0
NTM2OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjM0NTg0OF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNDU4OTddIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNDU5NDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzQ2MDc2XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNDYxMDFdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzQ2MTI3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNDYyMDBdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuMzQ2OTQ5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuMzQ3MzgwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjM0NzQwNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM0NzQ1N10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNDc1Mzdd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM0
NzU2M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNDc1ODhdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjM0NzYzN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zNDgyMTFdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy4zNDg3NTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuMzQ4ODA4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
MzQ4ODgxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjM0ODk2Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuMzQ5MDExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjM0OTA2MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuMzQ5MDg1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM0OTcwOF0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjM1MDQwN10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNTA0MTJdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy4zNTA0OTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzUwNjI3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNTA2NzZdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuMzUwNzAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNTA3NTNdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuMzUxMzU1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
MzUxODU0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM1
MTkwM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM1MTk1Ml0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNTIwNTddIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM1MjA4M10g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNTIxMzJdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM1MjIw
NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zNTI3ODVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy4zNTMxNjRdIFtkcm1dIFJlZ2lzdGVyKDApIFttbVVWRF9QR0ZTTV9T
VEFUVVNdIGZhaWxlZCB0byByZWFjaCB2YWx1ZSAweDAwODAwMDAwICE9IDB4MDBjMDAwMDBuClsg
IDEyMy4zNTMxOTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuMzUzMjAxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzUzMjAzXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM1MzIxNF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzUz
MjE1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM1MzIxN10gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
MzUzMjE4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM1MzE3MF0gW2RybTpqcGVnX3YzXzBfc2V0
X3Bvd2VyZ2F0aW5nX3N0YXRlIFthbWRncHVdXSAqRVJST1IqIGFtZGdwdTogSlBFRyBlbmFibGUg
cG93ZXIgZ2F0aW5nIGZhaWxlZApbICAxMjMuMzUzNDYzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuMzUzNTI3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuMzUzNTkzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
MzUzODUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzUzNzYwXSBb
ZHJtOmFtZGdwdV9kZXZpY2VfaXBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlIFthbWRncHVdXSAqRVJS
T1IqIHNldF9wb3dlcmdhdGluZ19zdGF0ZSBvZiBJUCBibG9jayA8anBlZ192M18wPiBmYWlsZWQg
LTExMApbICAxMjMuMzUzOTEzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuMzUzOTc3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzU0MDQ0
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzU0ODA2XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM1NDg1Nl0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjM1NDkwNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNTUwMTBdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM1NTA1OV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy4zNTUxMDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM1NTE4M10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy4zNTU4MTZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My4zNTYzMzZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
MzU2MzYyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzU2Mzg4XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM1NjUxNV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzU2NTg3
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM1NjYzN10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzU2
NjYyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM1NzI3MF0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjM1NzgxN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy4zNTc4NjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNTc4
OTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuMzU4MDIwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy4zNTgwNjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzU4
MTQyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy4zNTgxNjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzU5MDU5XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzU5NjI4XSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM1OTcwMV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjM1OTcyN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy4zNTk4ODBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM1OTkwNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy4zNjAwMDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM2MDA5Nl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy4zNjA3NzBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zNjEz
ODRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzYxNDA5
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzYxNDM1XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM2MTU2Nl0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzYxNTkxXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM2MTYxN10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzYxNjY2XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM2MjU3Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjM2MzA5MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy4zNjMwOTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNjMwOTRdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
MzYzMjI0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy4zNjMyNzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzYzMzA0XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy4zNjMzMzJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzY0MDExXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzY0NTA5XSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM2NDU1OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjM2NDU4M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy4zNjQ2ODhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjM2NDczN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy4zNjQ3ODldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM2NDg2Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4z
NjU2MzNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zNjYxMDldIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzY2MTgyXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzY2MjU2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM2NjYxNl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzY2Njg5XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM2Njc2M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzY2ODE1XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjM2NzQ5OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjM2ODA5MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy4zNjgxNjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNjgyNjBdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzY4MzQx
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4z
NjgzNjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzY4NDM5XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My4zNjg0ODhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzY5MzA3XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzY5ODQwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjM2OTkzNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjM2OTk4NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy4zNzAxMTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjM3MDE5MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My4zNzAyMzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjM3MDUyOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zNzEyMjld
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zNzE3NzNdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzcxODQ2XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuMzcxOTIyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM3MjA1MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzcyMDc1XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjM3MjE0OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzcyMTc0XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjM3Mjg2OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjM3MzM1NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4z
NzM0MDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNzM0NTZdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzczNTM4XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNzM1NjVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzczNTkxXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNzM2
OTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuMzc0NTkzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuMzc1MjIxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjM3NTI1MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM3NTI3
OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy4zNzU0MTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjM3NTQ0M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNzU3
NzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjM3NTk3OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zNzY2NDhdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zNzcxMjhdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzc3MTc3XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuMzc3MjI2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjM3NzM3OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzc3NjM5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjM3NzY4OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzc3ODExXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjM3ODczNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjM3OTI1
OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNzkzNTRd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zNzk0NzZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzc5NjA1XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zNzk2NTVdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzc5NzA0XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zNzk4MDBdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuMzgwMzgzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuMzgwODU5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjM4MDkwOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM4MTAwNl0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4z
ODExODBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjM4MTI3N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zODEzMjddIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjM4MTM1M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zODIwNDJdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy4zODI3ODZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuMzgyODY4XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuMzgyOTg4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjM4MzA5M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuMzgzMTg4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjM4MzIzOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuMzgzMjg3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM4
Mzk2N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjM4NDQ2NF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zODQ1NjFdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zODQ2MzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzg0NzQxXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zODQ3NjddIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzg0ODE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zODQ5MzldIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuMzg1NzYxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuMzg2NDUyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjM4NjUwNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM4NjU3OF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zODY2ODJd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM4
NjcwN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zODY3NTZdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjM4NjgzMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zODc0NjBdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy4zODc4OTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuMzg3OTkxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
Mzg4MDQwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjM4ODE2OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuMzg4MjE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjM4ODI5MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuMzg4MzM5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM4ODk5Nl0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjM4OTU2NV0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zODk3MzRdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy4zODk4NTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuMzkwMDA4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zOTAwNTZdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuMzkwMDgyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zOTAyOTZdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuMzkxMTQzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
MzkxNjQxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM5
MTcxM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM5MTc2NV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zOTE4NjldIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM5MTk0Ml0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zOTIwMTVdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM5MjA4
Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy4zOTI3MjFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy4zOTMyNTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuMzkzMzI5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzkzNDQ5
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjM5MzY3MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuMzkzODM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM5Mzk4
Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuMzk0MDA4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM5NDkxNF0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjM5NTMxNl0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zOTUzNDFdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy4zOTUzOTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuMzk1NTQyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy4zOTU1OTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuMzk1NjQwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zOTU2OTBdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuMzk2MzE4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuMzk2NzQ1
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM5Njg0Ml0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM5Njg2OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy4zOTY5NzFdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjM5NzA0NV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy4zOTcwOTRdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM5NzE0M10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy4zOTc4NDhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy4zOTg1ODFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuMzk4Njc5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuMzk4NzI3XSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjM5
ODg1NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuMzk4OTA0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjM5ODk1M10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuMzk5MDI2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjM5OTcwMV0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQwMDE1MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MDAyNDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy40MDAzMjBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNDAwNDk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy40MDA1OTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNDAwNjg2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy40MDA3MzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDAx
Mzg4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDAxOTAwXSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQwMjA0N10gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQwMjA5Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40MDI1NDJdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQwMjY0M10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MDI3MTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQwMjgxM10gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy40MDM1MDJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy40MDM5NzZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNDA0MDc0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDA0MTQ4XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQwNDI1Ml0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDA0
MzI0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQwNDM3NF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NDA0NDQ3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQwNTA3OV0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQwNTc5NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy40MDU4NjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40
MDYwODJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNDA2MjU3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy40MDYzNDVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NDA2NDk2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy40MDY1MjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDA3MTc1XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDA3NjcyXSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQwNzc0Nl0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjQwNzc5NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy40MDc4OTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQwNzk0OF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy40MDc5OThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQwODA0Nl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy40MDg2NzRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40
MDkxODJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDA5
MjA4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDA5MjU4XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQwOTM0MV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDA5NDM5XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQwOTQ5MF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDA5NDkx
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQxMDEwN10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjQxMDY1OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy40MTA3NjBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MTA4MTJd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNDEwOTQyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy40MTA5OTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDExMDYz
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy40MTExMTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDExODc0XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDEyMzE5XSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQxMjM3NV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjQxMjQwMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy40MTI1MTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQxMjU2M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy40MTI2MTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQxMjcxNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My40MTM0OTBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40MTM5NjJd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDEzOTg4XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDE0MjQ1XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQxNDU0Nl0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDE0NTQ5XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQxNDU1MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDE0NjU0XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjQxNTI2NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjQxNTczOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy40MTU3NDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MTU3NDNdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDE1
ODA0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My40MTU5MDVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDE1OTgwXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy40MTYxNjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDE4MTU4XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDE4ODA1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQxODgwOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjQxODkxMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy40MTg5NzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjQxOTAyNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy40MTkzNTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjQxOTU5Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40MjAy
MzJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40MjA4NDJdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDIwODkyXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNDIwOTQzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQyMTAyOF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDIxMDMwXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQyMTA4MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDIxMTMwXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjQyMTg0Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjQyMjU1MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My40MjI2MjhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MjI2NTddIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDIyNzQwXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MjI3
ODldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDIyODQ5XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40
MjI4NTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDIzNTM0XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuNDI0MDYyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjQyNDExM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQy
NDE0MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy40MjQyMjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjQyNDI1NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40
MjQyODJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjQyNDI4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40MjQ4MzddIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40MjUyMzddIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDI1MjYzXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNDI1Mjg5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQyNTM5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDI1NDc1XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjQyNTUyNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDI1NTUyXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTIzLjQyNjI2M10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQy
Njg2MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MjY5
MTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MjY5NjZdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDI3MTIxXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MjcyMDFdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDI3MjI4XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40MjczMDRd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDI4NTE0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuNDI4OTcwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjQyOTAyNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQyOTIwMF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My40MjkzMTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjQyOTMxNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MjkzMThd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjQyOTMxOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40Mjk5MDNdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40MzA0NTldIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDMwNTE3XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuNDMwNTE5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjQzMDU4MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDMwNTgxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjQzMDU4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDMwNjExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIz
LjQzMTMzNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQzMTc4N10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MzE4ODZdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MzE5MTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDMyMDAzXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MzIwNzhdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDMyMDgwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40MzIwODJdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMjMuNDMyNzE1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuNDMzMTU0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjQzMzE4MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQzMzIwNl0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40MzMz
MTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjQzMzMzNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40MzM0MTBdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjQzMzUwN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40MzQyMzNdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40MzQ3OTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDM0ODQxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNDM0OTM5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjQzNTA2N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuNDM1MTQxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjQzNTE2Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuNDM1MjQwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQzNTg0
N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQzNjQ2NV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MzY1MTRdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy40MzY1ODddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDM2NjkxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40MzY3MTddIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNDM2NzQzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40MzY3OTJdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMjMuNDM3NDk1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuNDM4MDI1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjQzODA5OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQzODE0OF0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40Mzg1MTldIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQzODU5
N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40Mzg2NDZdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQz
ODY3M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40MzkzNTVdIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEyMy40Mzk4MDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuNDM5ODU1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDM5
ODgwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjQ0MDAxMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNDQwMDM2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ0
MDA2Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNDQwMTM1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ0MDc2M10gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ0MTMwOV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NDEzMzVdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy40NDEzNjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNDQxNDkxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NDE1NjVdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNDQxNjM4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40NDE2ODddIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMjMuNDQyNDE5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDQy
OTM1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ0Mjk2
MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ0MzAxMF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40NDMxMTZdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ0MzE2NF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NDMyMTRdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ0MzI2Ml0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40NDM5NDFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEyMy40NDQ0MTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNDQ0NDY2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDQ0NTE1XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjQ0NDY2Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNDQ0NzE1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ0NDc4OV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNDQ0ODYyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ0NTUzNl0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ0NjAxNF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NDYwNjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy40NDYxMzddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNDQ2MjE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NDYyOTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuNDQ2NDM2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy40NDY0ODldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMu
NDQ3MDk1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDQ3NjkwXSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ0Nzc2NF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ0Nzc5MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40NDc4OTRdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ0Nzk0NF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NDc5NzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ0ODAxOV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEyMy40NDg2OTVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEyMy40NDkyNDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNDQ5Mjk2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDQ5MzQ2XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ0OTQ5
OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
NDQ5NTk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ0OTY3Ml0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNDQ5NzY4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ1MDU2MV0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ1MTE3OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NTEyNTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My40NTEyODBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNDUxNDMyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy40NTE0ODFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNDUxNTU0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy40NTE2MDNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDUyMzc0
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDUyODU1XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ1MjkzMF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjQ1MzAwM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40NTMxMzBdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ1MzE1NV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy40NTMyMDZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ1MzIzMF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy40NTM5ODNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My40NTQ2MDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
NDU0NjgwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDU0NzMwXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ1NDg4MV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDU0OTU2
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ1NTAwNV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDU1
MDU0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ1NTc0OF0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjQ1NjIyM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy40NTYyNzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NTYz
MjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNDU2NDUxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy40NTY1MjRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDU2
NTUwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy40NTY2MDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDU3MjYyXSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDU3NjkxXSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ1Nzc2NF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjQ1NzgzN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy40NTc5NjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ1Nzk5Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy40NTgwMThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ1ODA5MV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy40NTg3ODNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40NTky
ODNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDU5MzMy
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDU5MzU5XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ1OTQzOV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDU5NTEzXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ1OTU2Ml0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDU5NjEyXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ2MDM4NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjQ2MDk1Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy40NjEwMjVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NjEwNzRdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NDYxMTc5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy40NjEyMjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDYxMjU0XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy40NjEzMjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDYyMDY1XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDYyNjY5XSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ2Mjc0NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjQ2MjgxN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy40NjI5MzJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjQ2Mjk4MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy40NjMwMDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ2MzAzMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40
NjM2NzNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40NjQyMDBdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDY0MjczXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDY0MzIyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ2NDQwM10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDY0NDUyXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ2NDUwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDY0NTUzXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjQ2NTEzNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjQ2NTcyNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy40NjU3NzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NjU4NDhdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDY1OTc3
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40
NjYwNzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDY2MTQ2XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My40NjYyMTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDY2OTc5XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDY3NDMxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjQ2NzQ4MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjQ2NzUzMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy40Njc2MTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjQ2NzY1OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My40Njc3MDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjQ2NzczNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40NjgzOTld
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40Njg5MjFdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDY4OTQ3XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNDY4OTczXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ2OTE3NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDY5MjcyXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjQ2OTMyM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDY5MzQ4XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjQ3MDE3OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjQ3MDc4MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40
NzA4MzFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NzA4ODBdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDcwOTg1XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NzEwNTdd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDcxMDgzXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40NzEx
MzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDcxODg1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuNDcyNDYyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjQ3MjUxMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ3MjUz
OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy40NzI2NDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjQ3MjY5M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NzI3
MTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjQ3Mjc0M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40NzMzMzFdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40NzM5NTZdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDc0MDI5XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNDc0MTA0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjQ3NDE4NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDc0MzY1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjQ3NDM5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDc0NDIyXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjQ3NTA1MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ3NTU3
NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NzU2MjRd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40NzU2NTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDc1ODAxXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40NzU4NTBdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDc1OTAxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40NzU5NTBdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuNDc2NjUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuNDc3MTcwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjQ3NzI0NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ3NzI3MF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40
Nzc0MjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjQ3NzQ5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40Nzc1NDVdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjQ3NzU2OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40Nzg0NDVdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy40Nzg5MDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDc4OTc0XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNDc5MDAwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjQ3OTE1Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNDc5MjAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjQ3OTIyN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNDc5Mjc2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ3
OTkwNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ4MDQ1Ml0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40ODA0NzhdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy40ODA1MDRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDgwNjMyXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40ODA2NTddIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDgwNjgzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40ODA3MzJdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuNDgxNDA4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuNDgxOTg4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjQ4MjAzN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ4MjA4N10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40ODIxOTFd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ4
MjI4N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40ODI0NzhdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjQ4MjUyN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40ODMyMzJdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy40ODM4MDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNDgzODU1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NDgzODgxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjQ4Mzk4Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNDg0MDM1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjQ4NDA2MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNDg0MTA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ4NDgxM10g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ4NTMzNV0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40ODU0MDldIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy40ODU0ODRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNDg1NjExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40ODU2NjJdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNDg1NzM2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40ODU3ODVdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuNDg2NjMxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
NDg3MTUzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ4
NzIwM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ4NzIyOF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40ODczODFdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ4NzQzMV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40ODc0NTddIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ4NzUy
OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy40ODgxNjBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy40ODg3MDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNDg4NzU1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDg4ODI5
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjQ4ODkzNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNDg4OTU5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ4ODk4
NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNDg5MDM2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ4OTcxNV0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ5MDE5MV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40OTAyNjRdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy40OTA0NThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuNDkwNTQxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40OTA1NjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNDkwNTk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40OTA2NDNdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuNDkxMjc0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDkxODQy
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ5MTkxNV0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ5MjAxM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40OTIxMTddIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ5MjE2Nl0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy40OTIxOTJdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ5MjI0MV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy40OTI5NzNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy40OTM1MjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNDkzNTk3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDkzNjcwXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ5
Mzc3NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNDkzODI0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ5Mzg1MF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNDkzODk5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ5NDcxOV0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjQ5NTMzNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy40OTUzODRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy40OTU0MTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNDk1NTM5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy40OTU1ODhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNDk1NjM4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy40OTU2NjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNDk2
MzY1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNDk2OTgzXSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ5NzAzMl0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ5NzA4MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy40OTcxODZdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjQ5NzIzNV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy40OTcyNjBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ5NzMzM10gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy40OTgwMzhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy40OTg3MTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNDk4NzYwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNDk4ODA5XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjQ5ODk2Ml0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNDk5
MDM0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjQ5OTA2MF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NDk5MTA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjQ5OTc4M10gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjUwMDI4Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy41MDAzNTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41
MDA0MjldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNTAwNTU5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy41MDA2MDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NTAwNjU3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy41MDA2ODJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTAxNDEzXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTAxOTcwXSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUwMjA0M10gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjUwMjExNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy41MDIxOTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUwMjI3MF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy41MDI0NDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUwMjQ0Ml0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy41MDMwNzBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41
MDM1NzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTAz
NjI0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTAzNjUwXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUwMzc1NV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTAzODI4XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUwMzg3N10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTAzOTAy
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjUwNDY1N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjUwNTE3OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy41MDUyMjhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41MDUyNTRd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNTA1MzU4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy41MDU0MzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTA1NDgy
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy41MDU1MzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTA2MTgzXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTA2ODI1XSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUwNjg3N10gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjUwNjkwM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy41MDcwMzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUwNzA4MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy41MDcxMDZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUwNzE3OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My41MDg0OTFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41MDkyNDNd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTA5MjkzXSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTA5MzIwXSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUwOTQwMV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTA5NDUyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUwOTQ3OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTA5NTUwXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjUxMDI2OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjUxMDk5Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy41MTEwNDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41MTEwNzJdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTEx
MjAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My41MTEyNTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTExMjc2XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy41MTEzMjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTEyMDE4XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTEyNTY2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUxMjY0MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjUxMjY4OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy41MTI3NzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjUxMjc5NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy41MTI4MjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjUxMjg4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41MTM0
NjJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41MTQxMDJdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTE0MTc1XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNTE0MjAxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUxNDQ4Ml0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTE0NTM1XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUxNDU4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTE0NjMzXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjUxNTQwM10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjUxNTk0N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My41MTYwMjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41MTYwNDddIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTE2MTc1XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MTYy
NDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTE2Mjk3XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41
MTYzNzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTE3MTEyXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuNTE3Nzc2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjUxNzgyNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUx
Nzg3Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy41MTc5NTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjUxODA1M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41
MTgxMDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjUxODE3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41MTg4MzJdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41MTkzNzhdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTE5NDI3XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNTE5NDc3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUxOTYwNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTE5NjU2XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjUxOTY4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTE5NzMxXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTIzLjUyMDQ2MV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjUy
MDk1N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MjEw
NjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41MjEwODldIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTIxMjE2XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MjEyNDFdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTIxMjY3XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41MjEzNjRd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTIxNzUxXSBbZHJtXSBSZWdpc3RlcigwKSBbbW1VVkRf
UE9XRVJfU1RBVFVTXSBmYWlsZWQgdG8gcmVhY2ggdmFsdWUgMHgwMDAwMDAwMSAhPSAweDAwMDAw
MDAzbgpbICAxMjMuNTIxOTgyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuNTIyNjk2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjUyMjgwMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUyMjg1NV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41MjI5MzddIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUyMzAx
MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41MjMwNTldIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUy
MzA4NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41MjM3NTldIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEyMy41MjQzNjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuNTI0Mzg4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTI0
NDE0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjUyNDU2NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNTI0NjE0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUy
NDY2M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNTI0Njg4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjUyNTMzNV0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjUyNTkzMV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MjU5ODJdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy41MjYwMzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNTI2MTQxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MjYxNjZdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNTI2NDIzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41MjY0MjZdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMjMuNTI3MDk0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTI3
NjE5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUyNzY5
Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUyNzcxN10gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41Mjc4OTRdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUyNzkyMF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41Mjc5NzBdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUyODAxOV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41Mjg2NzFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEyMy41MjkyODldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNTI5MzM5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTI5Mzg5XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjUyOTQ5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNTI5NTQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUyOTYxOF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNTI5NjQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjUzMDUwNl0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjUzMDkzNl0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MzEwMDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy41MzEwMzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNTMxMTYyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MzEyMTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuNTMxMjg0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy41MzEzMzRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMu
NTMyMDQ3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTMyNzM4XSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUzMjc4OF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUzMjgzN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41MzI5NDldIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUzMjk3NV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41MzMwMjRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUzMzA5N10gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEyMy41MzM4NDZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEyMy41MzQ0NDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNTM0NDQzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTM0NDkyXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUzNDYy
NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
NTM0Njk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUzNDcyM10gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNTM0NzcyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjUzNTU4NF0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjUzNjE3OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41MzYyNTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My41MzYzMDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNTM2NDI5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy41MzY0NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNTM2NTA0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy41MzY1NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTM3MjUx
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTM3NzI2XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUzNzgyM10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjUzNzg3M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41MzgwNDldIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjUzODE0NV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy41MzgxOTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUzODQzM10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy41MzkwNzhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My41Mzk2NDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
NTM5Njc0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTM5NzI0XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjUzOTgwNV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTM5ODc4
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjUzOTkyOF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTM5
OTU0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU0MDY0Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjU0MTE5NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy41NDEyNjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NDEy
OTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNTQxMzk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy41NDE0NDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTQx
NDczXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy41NDE1MjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTQyMjk2XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTQyODA1XSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU0Mjg2MV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjU0MjkxMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy41NDMwMzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU0MzEzNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy41NDMxODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU0MzIzM10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy41NDM5NTZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41NDQ1
MDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTQ0NTUx
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTQ0NjAwXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU0NDcwNF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTQ0ODAxXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU0NDg1MF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTQ0ODk5XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU0NTUxOV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjU0NjE2NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy41NDYyMTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NDYyMzldIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NTQ2NDQ2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy41NDY1MjBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTQ2NTQ5XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy41NDY2MDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTQ3MzQxXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTQ3ODg1XSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU0Nzk4Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjU0ODAzMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy41NDgxMzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjU0ODE4NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy41NDgyNThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU0ODI4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41
NDg5MjZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41NDk1MjBdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTQ5NTkzXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTQ5NjY2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU0OTc5Nl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTQ5ODkzXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU0OTk2Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTUwMDQwXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjU1MDgyNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjU1MTQ2Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy41NTE1NjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NTE2MTJdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTUxNjk0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41
NTE3NDNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTUxNzY5XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My41NTE4MThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTUyNDg4XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTUyOTI1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjU1Mjk5OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjU1MzAyNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy41NTMxMjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjU1MzIyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My41NTMyNzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjU1MzMyNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41NTM5ODJd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41NTQ2MDRdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTU0NjMxXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNTU0NzUyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU1NDkwNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTU0OTMwXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjU1NDk1NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTU1MDA0XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjU1NTY3OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjU1NjIyM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41
NTYyNzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NTYyOThdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTU2NDI2XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NTY0NTFd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTU2NTAxXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41NTY1
NTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTU3MTc1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuNTU3ODM5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjU1Nzk4NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU1ODAx
MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy41NTgxMzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjU1ODIxMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NTgy
NjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjU1ODQ4N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41NTkxMzFdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41NTk2MDVdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTU5Njc4XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNTU5NzUxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjU1OTg3OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTU5OTI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjU1OTk3N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTYwMDI2XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjU2MDYyNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjU2MTE3
NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NjEyMjNd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NjEzNDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTYxNDI1XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NjE0NTFdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTYxNDc3XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41NjE1MjZdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuNTYyMjMyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuNTYyODk2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjU2Mjk0Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU2Mjk5Nl0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41
NjMwNzZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjU2MzE0OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NjMyMjNdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjU2MzI3M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41NjM5MDRdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41NjQ1MDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTY0NTU5XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNTY0NTg1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjU2NDY5Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNTY0NzY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjU2NDgxNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNTY0ODM5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU2
NTQ1M10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjU2NTkyOF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NjYwMDFdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NjYwMjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTY2MTMyXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NjYyMjhdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTY2MjU1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41NjYyNzldIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuNTY3MDA4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuNTY3NTc3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjU2NzY3NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU2NzcyNV0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41Njc4NTJd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU2
NzkwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41Njc5NTFdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjU2ODAwMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41Njg1NjBdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy41NjkwODFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNTY5MTMwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NTY5MTgwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjU2OTI4NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNTY5MzgxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjU2OTQwN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNTY5NDU2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU3MDI1OV0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjU3MDkwMV0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NzA5NTBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy41NzEwMDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTcxMTAzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NzExNTJdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNTcxMjAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41NzEyMjZdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuNTcxODc0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
NTcyMzc1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU3
MjQ0N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU3MjUyMF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41NzI2MjRdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU3MjY3NF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41NzI2OTldIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU3Mjc3
Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41NzM1MjZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy41NzQwOTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNTc0MTQ2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTc0MTk2
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjU3NDM2NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNTc0MzY4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU3NDM5
NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNTc0Mzk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU3NTA2NF0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjU3NTU4Nl0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NzU2MTJdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy41NzU2NjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuNTc1ODM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41NzU4ODZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNTc1OTEyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41NzU5NjFdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuNTc2NjI4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTc3MjE5
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU3NzI5M10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU3NzM2Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41Nzc0OTRdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU3NzU5MF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41Nzc2NDBdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU3NzcxNV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy41Nzg0NjFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy41Nzg5NjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNTc5MDEyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTc5MDM4XSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU3
OTE2Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNTc5MjM4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU3OTMzNF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNTc5NDA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU4MDA3NV0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjU4MDQ3OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy41ODA1MjhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy41ODA2MjVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNTgwNzI5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy41ODA3NzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNTgwODI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy41ODA4NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTgx
NjIxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTgyMjI3XSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU4MjM2NF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU4MjQxOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy41ODI1MDNdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU4MjUyOV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy41ODI2MDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU4MjY1MV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy41ODMyNTddIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy41ODM3MzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNTgzNzY1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTgzODE1XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU4MzkyMF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTg0
MDE4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU4NDA2N10gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NTg0MTE2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU4NDc4Nl0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjU4NTM1NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy41ODU0MjldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41
ODU1MjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNTg1NzAzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy41ODU3NTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NTg1ODI2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy41ODU4NTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTg2NjI0XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTg3MjE1XSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU4NzI4OF0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjU4NzM4NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy41ODc0OTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU4NzU4OF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy41ODc2MTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU4NzY4Nl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy41ODgzMzRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41
ODg4MzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTg4
OTA2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTg4OTU1XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU4OTA5MF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTg5MTM5XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU4OTE2NV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTg5MjE0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjU4OTg4NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjU5MDQ3Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy41OTA1NTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41OTA1Nzld
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNTkwNzA3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy41OTA4MDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTkwODc3
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy41OTA5MjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTkxNTQ2XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTkyMDE5XSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU5MjA5Ml0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjU5MjE0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy41OTIyNzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU5MjM0M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy41OTIzOTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU5MjQ0MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My41OTMwOTRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41OTM1NTNd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTkzNjI3XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTkzNzI0XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU5Mzg1M10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTkzOTAyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU5MzkyOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTk0MDI2XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjU5NDYzMl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjU5NTE3N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy41OTUyNTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy41OTUzMjRdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTk1
NDA0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My41OTU0NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNTk1NTI4XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy41OTU1NzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNTk2MTk5XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNTk2NzY3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjU5Njg0MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjU5Njg5MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy41OTcwNDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjU5NzExNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy41OTcxODhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjU5NzIzN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy41OTc5
MzVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy41OTg2NTJdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTk4NzUwXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNTk4ODAwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjU5ODk1Ml0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNTk5MDI2XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjU5OTA3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNTk5MTI0XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjU5OTcyM10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjYwMDI2OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My42MDAyOTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MDAzMjBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjAwNDczXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MDA1
MjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjAwNTQ4XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42
MDA2MjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjAxMjQxXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuNjAxNzQxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjYwMTc5MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYw
MTg3M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy42MDIwMDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjYwMjEwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42
MDIxMjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjYwMjQxNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42MDMxMzhdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42MDM2NDVdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjAzNjcxXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNjAzNzQ0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYwMzg3Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjAzOTIxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjYwMzk3MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjA0MDQzXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTIzLjYwNDczNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjYw
NTMwOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MDUz
NTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MDUzODNdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjA1NDY0XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MDU1NjFdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjA1NjM1XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MDU3MTVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjA2NTA1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuNjA3MTAzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjYwNzE1Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYwNzE3OF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My42MDczMzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjYwNzM3OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MDc0Mjhd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjYwNzQ3OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42MDgxNTFdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42MDg3NDNdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjA4NzkyXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuNjA4ODE4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjYwODk0N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjA4OTczXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjYwODk5OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjA5MDk1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIz
LjYwOTc4Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjYxMDM3Nl0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MTAzNzhdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MTA0MzBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjEwNTE0XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MTA1NDZdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjEwNjIwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MTA2NzFdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMjMuNjExMzE4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuNjExODE4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjYxMTg2N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYxMTkxN10gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MTIw
MjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjYxMjA0N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MTIwNzNdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjYxMjEyMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42MTI3NDNdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42MTMzMjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjEzMzgwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNjEzNDMwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjYxMzU4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuNjEzNjc4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjYxMzc3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuNjEzODcxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjYxNDg2
Ml0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjYxNTQzMV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MTU1MDRdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy42MTU1NTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjE1NjU5XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MTU2ODRdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNjE1NzEwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MTU4MDhdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMjMuNjE2NDU3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuNjE3MDAzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
LjYxNzAyOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYxNzA1NV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MTcxNTldIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYxNzI3
OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MTczMDVdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYx
NzMzMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42MTgwMjddIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEyMy42MTg2NDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuNjE4Njk1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjE4
NzQ2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjYxODkyMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNjE5MDE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYx
OTA5MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNjE5MTE1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjYxOTc0NF0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjYyMDMxNV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MjAzNjRdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy42MjA0MTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNjIwNTE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MjA1NjZdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNjIwNjE1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MjA2NjVdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMjMuNjIxMzYyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjIx
ODE3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYyMTg3
Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYyMTkyNl0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MjIwMDddIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYyMjA1N10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MjIxMzBdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYyMjE3OV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42MjI4NjldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEyMy42MjM0NzFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNjIzNTIxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjIzNTcwXSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjYyMzY5N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNjIzODE4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYyMzg5MV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNjIzOTQwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjYyNDUyM10gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjYyNDk5Nl0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MjUwNDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy42MjUwOTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNjI1MTc3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MjUyMDNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuNjI1MjUzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MjUyNzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMu
NjI1OTM4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjI2NDU3XSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYyNjQ4NV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYyNjUxNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MjY1OTZdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYyNjY0NV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MjY2OTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYyNjc0M10gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEyMy42MjczOTBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEyMy42Mjc5MTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNjI3OTY0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjI3OTkwXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYyODA3
MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
NjI4MTQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYyODE5NF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNjI4MjE5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjYyODg0Ml0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjYyOTI3M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42MjkzNDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My42MjkzOTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNjI5NTQ5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy42Mjk1OTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNjI5NjQ4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy42Mjk2OTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjMwNDQ1
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjMwOTczXSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYzMDk5OF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjYzMTAyNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42MzExMjhdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYzMTE3N10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy42MzEyNTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYzMTI3Nl0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy42MzE5NDVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My42MzI0NDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
NjMyNDcyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjMyNDk4XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYzMjYwM10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjMyNjUz
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYzMjY4MF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjMy
NzA2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjYzMzM4OF0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjYzMzg0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy42MzM5MTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42MzM5
NjVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNjM0MDQ2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy42MzQwOTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjM0
MTkzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy42MzQyNDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjM0OTg3XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjM1NTMwXSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYzNTU1Nl0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjYzNTYwNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy42MzU3MDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjYzNTczNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy42MzU3ODRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYzNTgzM10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy42MzY1MzBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42MzY5
ODBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjM3MDA1
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjM3MDMxXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjYzNzEzNV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjM3MTg1XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjYzNzIxMV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjM3MjM2XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjYzNzkzMl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjYzODU0Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy42Mzg1OTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42Mzg2NDVdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NjM4NzI2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy42Mzg3NzZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjM4ODI2XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy42Mzg4NzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjM5NDk0XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjM5OTQ0XSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY0MDAxNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjY0MDA2N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy42NDAxNzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjY0MDE5Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy42NDAyNDZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY0MDI5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42
NDA4OTNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42NDEzNjhdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjQxMzk0XSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjQxNDQzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY0MTU0OF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjQxNTk3XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY0MTYyM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjQxNjQ4XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjY0MjM4OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjY0Mjg1NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy42NDI5MzFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NDI5ODBdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjQzMTA5
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42
NDMxODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjQzMjMyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My42NDMyNThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjQzOTA2XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjQ0Mzg1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjY0NDQ1OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjY0NDUzMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy42NDQ2MzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjY0NDY4NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My42NDQ3MzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjY0NDc4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42NDU0Mjhd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42NDU5NTJdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjQ2MDI1XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNjQ2MDUyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY0NjEzMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjQ2MTgyXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjY0NjIwN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjQ2MzYzXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjY0NzAzNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjY0NzQ4N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42
NDc1MTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NDc1NjJdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjQ3NjQzXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NDc2OTNd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjQ3NzQyXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NDc3
OTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjQ4MzkxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuNjQ4ODQyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjY0ODg5Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY0ODkx
OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy42NDkwMjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjY0OTA3MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NDkw
OTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjY0OTE3MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42NDk4MTddIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42NTA0MzhdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjUwNDg4XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNjUwNTQyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjY1MDYyM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjUwNjk2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjY1MDc0NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjUwNzk0XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjY1MTQxN10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjY1MTg0
NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NTE4OTRd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NTE5NDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjUyMDI2XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NTIwNTFdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjUyMTAwXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NTIxNDldIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuNjUyNzcwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuNjUzMzI2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjY1MzQxMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY1MzQzNl0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42
NTM1NjRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjY1MzYxM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NTM2ODZdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjY1MzczNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42NTQ0NzNdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42NTUwMDJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjU1MTQ2XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNjU1MTk1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjY1NTI3Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNjU1MzI1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjY1NTM1MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNjU1NDI0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY1
NjAwNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjY1NjQ4MV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NTY1MzFdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NTY1NTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjU2NjYxXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NTY2ODZdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjU2NzEyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NTY3ODZdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuNjU3NDA3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuNjU4MDI2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjY1ODEwMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY1ODE1MF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NTgyNzld
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY1
ODQxOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NTg0MjBdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjY1ODQ0Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42NTkwOTJdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy42NTk2NjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNjU5NzM1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NjU5NzYyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjY1OTg0Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNjU5OTE2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjY1OTk2NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNjU5OTkxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY2MDY1OV0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjY2MTE2MF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NjEyMTBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy42NjEyMzZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjYxMzY2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NjE0MTZdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNjYxNDQyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NjE0NjhdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuNjYyMTk4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
NjYyNzQ4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY2
Mjc3NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY2MjgwMF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NjI5NTddIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY2Mjk4Ml0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NjMwMzJdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY2MzA1
OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42NjM2NThdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy42NjQxMzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNjY0MTgyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjY0MjEy
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjY2NDMxN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNjY0MzQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY2NDM3
MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNjY0Mzk4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY2NTAyNV0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjY2NTUwMF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NjU1NzNdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy42NjU2MDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuNjY1NzAzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NjU4MDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNjY1ODI2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NjU4OThdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuNjY2NTg5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjY3MDY2
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY2NzExNV0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY2NzE2NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NjcyNDZdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY2NzI3MV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NjczMjBdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY2NzM0NV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy42Njc5OTBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy42Njg1MTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNjY4NTYxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjY4NjEwXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY2
ODc2Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNjY4ODEyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY2ODgzOF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNjY4ODY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY2OTUzNF0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjY3MDAzNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42NzAxMDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy42NzAxNTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNjcwMjM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy42NzAyODZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNjcwNDI2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy42NzA0NTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjcx
MTY2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjcxNjE2XSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY3MTY2Nl0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY3MTY5M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NzE4MjJdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY3MTg0OF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NzE4NzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY3MTkyMl0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy42NzI1NDhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy42NzMwMDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNjczMDU3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjczMTA3XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY3MzIxMl0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjcz
MjM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY3MzI2M10gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NjczMzE0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY3Mzk2M10gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjY3NDUzNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy42NzQ1NjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42
NzQ2MTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNjc0NzY3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy42NzQ4MTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
Njc0ODQzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy42NzQ4OTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjc1NDkyXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjc1OTY0XSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY3NjAxM10gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjY3NjA2M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy42NzYxOTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY3NjIxNV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy42NzYyNDFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY3NjI5MF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy42NzY5MTVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42
NzczOTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjc3
NDY1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjc3NDkxXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY3NzU5Nl0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjc3NjkyXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY3Nzc2NV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjc3ODE0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY3ODU2Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjY3OTExOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy42NzkxNjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42NzkyNDBd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNjc5MzQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy42NzkzOTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjc5NDQ0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy42Nzk0NjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjgwMTEyXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjgwNjExXSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY4MDY2MV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjY4MDcxMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy42ODA4MTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY4MDg2NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy42ODA5MTVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY4MDk0MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My42ODE1MzldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42ODIwMjZd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjgyMDc1XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjgyMTI2XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY4MjIzMF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjgyMjgwXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY4MjQxNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjgyNDQyXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjY4Mjk5OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjY4MzQ3N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy42ODM1MjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42ODM2MDBdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjgz
NzUyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My42ODM3NzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjgzODI3XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy42ODM4NzZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjg0NTcxXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjg0OTk3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY4NTAyM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjY4NTA5NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy42ODUxNzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjY4NTIyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy42ODUyOThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjY4NTM0N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy42ODU5
NzJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42ODY1NTBdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjg2NjAwXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNjg2NjQ5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY4Njc1M10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjg2Nzc5XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY4NjgwNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjg2ODMwXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjY4NzUwMF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjY4Nzg3MF0gW2RybV0gUmVnaXN0ZXIoMCkgW21tVVZEX1JCQ19SQl9SUFRSXSBmYWlsZWQg
dG8gcmVhY2ggdmFsdWUgMHg3ZmZmZmZmZiAhPSAweGZmZmZmZmZmbgpbICAxMjMuNjg3OTc1XSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY4ODAyNF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY4ODA1MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42ODgxNTVdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY4ODE3OV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42ODgyMjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY4ODI1NF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEyMy42ODg4NTVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEyMy42ODk0NTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNjg5NTAzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjg5NTc2XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY4OTY4
MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
Njg5NzMwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY4OTc4MF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNjg5ODUzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY5MDYxNl0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjY5MTA5Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy42OTExNDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My42OTExOTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNjkxMzE4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy42OTEzNjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNjkxMzkzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy42OTE0NjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjkyMTE0
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjkyNjM2XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY5MjY4OF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjY5MjcxNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy42OTI3OTVdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY5MjgyMF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy42OTI4NTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY5Mjg1N10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy42OTM1MzJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My42OTQwMDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
Njk0MDgyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjk0MTMxXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY5NDIzNl0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjk0Mjg1
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY5NDM3OF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjk0
NDA1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY5NTA1Ml0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjY5NTU3NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy42OTU2MjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy42OTU2
NzRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNjk1ODAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy42OTU4NTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjk1
ODc3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy42OTU5MjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNjk2NjQ0XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNjk3MTIwXSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY5NzE0NV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjY5NzE3MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy42OTcyNzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjY5NzMyNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy42OTczOThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY5NzQ3MV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy42OTgwNDddIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy42OTg2
NjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjk4NzEz
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNjk4NzM5XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjY5ODgyMF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNjk4ODcwXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjY5ODg5Nl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNjk4OTY4XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjY5OTYxNl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjcwMDA2OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy43MDAxMThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MDAxNjhdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NzAwMjcyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy43MDAzMjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzAwMzk0XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy43MDA0NDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzAxMDE4XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzAxNDk3XSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjcwMTU0N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjcwMTU3M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy43MDE2NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjcwMTcyN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy43MDE3NTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjcwMTgwM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43
MDI2MDNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43MDMwODNdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzAzMTA5XSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzAzMTM1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjcwMzI2M10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzAzMjg5XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjcwMzMxNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzAzNDE3XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjcwNDA2MV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjcwNDU2NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy43MDQ1OTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MDQ2MTZdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzA0NzIx
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43
MDQ3NzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzA0ODIwXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My43MDQ4NjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzA1NTM3XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzA2MDYyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjcwNjExMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjcwNjEzOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy43MDYyNDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjcwNjI2OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My43MDY0NDVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjcwNjQ0N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43MDcwNDJd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43MDc1NjRdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzA3NjEzXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNzA3NjM5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjcwNzc2N10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzA3ODQwXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjcwNzg4OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzA3OTE1XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjcwODYwOV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjcwOTExMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43
MDkxNjBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MDkxODZdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzA5MzE0XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MDkzODdd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzA5NTA5XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MDk1
NThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzEwMTgxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuNzEwODAzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjcxMDgyOV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjcxMDg1
NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy43MTEwMDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjcxMTA4MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MTEx
NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjcxMTIwM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43MTE4NTFdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43MTIzNTNdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzEyMzc4XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNzEyNDI4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjcxMjU1N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzEyNjA4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjcxMjYzNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzEyNjgzXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjcxMzMxMV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjcxNDAw
NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MTQwNzdd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MTQxMDNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzE0MjgxXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MTQ0MTddIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzE0NTY0XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MTQ2MTNdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuNzE1MTkyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuNzE1NjkyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjcxNTc0M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjcxNTc2OV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43
MTU4NzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjcxNTkyMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MTU5NzJdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjcxNjAyMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43MTY2MTldIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43MTcxNDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzE3MjE0XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNzE3MjQwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjcxNzM0NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNzE3Mzk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjcxNzQyMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNzE3NDkzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjcx
ODE0MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjcxODgxMV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MTg4NjFdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MTg4ODddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzE5MDE0XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MTkwNDFdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzE5MDY3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MTkxMTZdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuNzE5NjkzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuNzIwMTk0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjcyMDI0NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjcyMDI5M10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MjA0MjFd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjcy
MDQ3MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MjA1MjFdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjcyMDU3MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43MjEyMTVdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy43MjE2NjldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuNzIxNjk0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NzIxNzIwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjcyMTgwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNzIxODI3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjcyMTkzNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNzIyMDA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjcyMjczMF0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjcyMzIzN10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MjMzMDldIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy43MjMzNjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzIzNDQ2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MjM0NzFdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNzIzNDk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MjM1NDldIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuNzI0MTQ2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
NzI0Njk0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjcy
NDc0NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjcyNDc3MF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MjQ4NzRdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjcyNDkyM10g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MjQ5OTZdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjcyNTA0
NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43MjU2MThdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy43MjYxOTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuNzI2MzkwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzI2NTE5
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjcyNjY3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNzI2NzI0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjcyNjgy
M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNzI2ODQ4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjcyNzQ5NV0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjcyODA0Ml0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MjgwNjddIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy43MjgwOTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuNzI4MTk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MjgyMjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuNzI4MjQ5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MjgyOThdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuNzI4OTIxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzI5NDQ0
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjcyOTU0MV0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjcyOTU2N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43Mjk2NDldIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjcyOTcyMl0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43Mjk3OTVdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjcyOTkxN10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy43MzA2MzldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy43MzExMTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuNzMxMTY0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzMxMTkwXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjcz
MTI5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNzMxMzQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjczMTM5M10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNzMxNDQzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjczMjA5MF0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjczMjU0MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43MzI1NjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy43MzI1OTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNzMyNjk4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy43MzI3MjRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuNzMyNzUxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy43MzI4MDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzMz
NTA3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzM0MDU2XSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjczNDEyOV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjczNDE3OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43MzQ0NDVdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjczNDQ5NV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy43MzQ1NDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjczNDU3NF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy43MzUxOThdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy43MzU3MThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuNzM1NzQ1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzM1NzcxXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjczNTg3Nl0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzM1
OTI1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjczNTk3NV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NzM2MDAwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjczNjU1Ml0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjczNzA1MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy43MzcxMDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43
MzcxMjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNzM3MjU1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy43MzcyODFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
NzM3MzA3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy43MzczNzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzM4MDA5XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzM4NTg2XSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjczODYxM10gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjczODY2Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy43Mzg3NDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjczODc2N10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy43Mzg3OTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjczODg0NF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy43Mzk1MzldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43
Mzk5OTFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzQw
MDY1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzQwMDkxXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc0MDE5Nl0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzQwMjQ2XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc0MDI5Nl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzQwMzQ1
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjc0MDk0NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjc0MTM5Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy43NDE0NDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NDE0OTVd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNzQxNjQ4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy43NDE2NzRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzQxNzAx
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy43NDE3NTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzQyNTAxXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzQzMTAzXSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc0MzE1Ml0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjc0MzE3OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy43NDMzMDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc0MzMzMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy43NDMzODhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc0MzQzN10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My43NDQwMzZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43NDQ1MTFd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzQ0NTM2XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzQ0NTYyXSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc0NDY0M10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzQ0NjY4XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc0NDcxOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzQ0NzkyXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjc0NTQxNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjc0NjAzNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy43NDYxMzFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NDYxODFdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzQ2
Mzk3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My43NDY0NzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzQ2NTI3XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy43NDY1NTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzQ3MjIwXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzQ3Njk1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc0Nzc0NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjc0Nzc5NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy43NDc5NDVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjc0ODA0NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy43NDgwOTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjc0ODE0M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43NDg3
NjZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43NDkyNDFdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzQ5MzE0XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNzQ5MzY0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc0OTQ0Nl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzQ5NTY3XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc0OTY0MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzQ5NzEzXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjc1MDQwMl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjc1MDg4MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My43NTA5MDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NTA5MzNdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzUxMDg2XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NTEx
NTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzUxMjU2XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43
NTEyODJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzUyMDIwXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuNzUyNTQwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjc1MjY2Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc1
MjcxMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy43NTI3OTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjc1Mjg3M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43
NTI5MjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjc1Mjk3Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43NTM2OTRdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43NTQyMjBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzU0Mjk0XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNzU0NDY1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc1NDYyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzU0NjczXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjc1NDY5OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzU0Nzk3XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTIzLjc1NTQ2NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjc1
NjAzN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NTYx
MTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NTYxMzZdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzU2MzEyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NTYzNjFdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzU2NDYwXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NTY1MzJd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzU3MTk3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuNzU3NjI3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjc1NzY3N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc1Nzc1MF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My43NTc5MDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjc1Nzk1MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NTgwMDFd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjc1ODA5OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43NTg3OTVdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43NTkzNjVdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzU5NDM4XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuNzU5NDY0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjc1OTU5Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzU5NjQxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjc1OTY5MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzU5NzQwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIz
Ljc2MDUwM10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjc2MDk3N10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NjEwMjZdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NjEwNTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzYxMTMzXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NjExODJdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzYxMjA4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NjEyODFdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMjMuNzYxOTE3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuNzYyNDk0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjc2MjU5Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc2MjY2NV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NjI3
NjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
Ljc2MjgxOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NjI4NzddIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjc2MjkyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43NjM2MDBdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43NjQxNDRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzY0MTkzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNzY0MjQzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjc2NDM3MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuNzY0NDE5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjc2NDQ2OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuNzY0NTE4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjc2NTEx
OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjc2NTU5Ml0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NjU2NjZdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy43NjU3MzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzY1ODIwXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NjU5NDFdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuNzY1OTY3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NjYwNDBdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMjMuNzY2ODM1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuNzY3MzU3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIz
Ljc2NzQ3N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc2NzUyNl0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43Njc2MDhdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc2NzY4
MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43Njc3NTNdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc2
NzgyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43Njg1MTldIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEyMy43Njg5OTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuNzY5MDY2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzY5
MTE1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjc2OTIyMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNzY5MjkzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc2
OTM0M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuNzY5NDE2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjc3MDEzNV0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjc3MDcxNl0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NzA3OTBdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy43NzA4NDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuNzcwOTIxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NzA5NzFdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuNzcwOTk2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NzEwNDVdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMjMuNzcxNjg5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzcy
MTg3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc3MjIz
Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc3MjMwOV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NzIzODldIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc3MjQzOF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43NzI0NjRdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc3MjUzN10g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43NzMyMzVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEyMy43NzM2OTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMjMuNzczNzY3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzczNzkzXSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
Ljc3Mzk0NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNzc0MDE4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc3NDA5MV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuNzc0MTY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjc3NDg2MV0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjc3NTUwMF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NzU1NTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy43NzU2MDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuNzc1NzA0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43NzU4MDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuNzc1ODUwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NzU5MjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMu
Nzc2NTA5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzc3MDc4XSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc3NzEyN10gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc3NzE3Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43NzczMjhdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc3NzQwMV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43Nzc0NzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc3NzU0OF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEyMy43NzgyMjhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEyMy43Nzg5NjldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMjMuNzc4OTk1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzc5MDIxXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc3OTEy
N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
Nzc5MTc2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc3OTIwMl0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuNzc5Mjc0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjc3OTk0OF0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjc4MDQyMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43ODA0NzFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My43ODA0OTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuNzgwNjUwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy43ODA2OTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MjMuNzgwNzI1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy43ODA3NTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzgxMzc0
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzgxOTc5XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc4MjAzMF0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjc4MjA1Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy43ODIxMzddIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc4MjIzNF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEyMy43ODIzNzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc4MjM3NV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEyMy43ODMwMjldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEy
My43ODM1MTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMu
NzgzNTY1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzgzNjE0XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc4Mzc0M10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzgzNzY4
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc4Mzc5M10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzgz
ODY2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjc4NDUzNV0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjc4NTAzM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEyMy43ODUwODJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43ODUx
MzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuNzg1MjEzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy43ODUyNjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzg1
Mjg4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy43ODU0ODJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzg2NDIzXSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzg2OTk4XSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc4NzAyNF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjc4NzA5Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy43ODcyNzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc4NzM0OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEyMy43ODczNzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc4NzQ0Nl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEyMy43ODgxMThdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43ODg2
MTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzg4NzYy
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzg4ODExXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc4ODk0MF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzg4OTg5XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc4OTA2Ml0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzg5MTExXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjc4OTgwN10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjc5MDU1M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy43OTA2MDNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43OTA2MjldIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
NzkwNzEwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy43OTA3NjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzkwODA5XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy43OTA4NThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzkxNTc2XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzkyMTQ3XSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjc5MjIyMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjc5MjMxNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy43OTI0MjBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjc5MjUxN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEyMy43OTI1NDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc5MjU2OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43
OTMzMTddIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43OTM4MDFdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzkzOTIyXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzkzOTQ4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc5NDA3N10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzk0MTQ5XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjc5NDIyM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzk0Mjc0XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTIzLjc5NTA0NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjc5NTQ5Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEyMy43OTU1NDVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy43OTU1NzFdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzk1Njc2
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy43
OTU3MjVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuNzk1Nzk4XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My43OTU4NDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuNzk2NTY1XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuNzk3MDYzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTIzLjc5NzEzNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
Ljc5NzIzMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy43OTczMzZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjc5NzM4Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEy
My43OTc0MTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjc5NzQ4NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy43OTgxODJd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy43OTg3NzZdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzk4ODUwXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuNzk4ODc2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjc5OTAwNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuNzk5MTAyXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTIzLjc5OTE1MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuNzk5MjAwXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTIzLjc5OTg0M10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
LjgwMDM2NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44
MDA0MTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MDA0ODddIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODAwNjE2XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MDA2NjVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODAwNzM5XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MDA4
MTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuODAxNDM0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuODAxOTY5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTIzLjgwMjA0NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgwMjA2
OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy44MDIxNDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjgwMjE5OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MDIy
MjRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTIzLjgwMjI5N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44MDMxMDFdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44MDM2MDVdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODAzNjMxXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuODAzNjU2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjgwMzgwN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODAzODU2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTIzLjgwMzg4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODAzOTMzXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTIzLjgwNDU1NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjgwNTEy
Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MDUxNTJd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MDUyMDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODA1MjgyXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MDUzMDhdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODA1MzU4XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MDU0MDhdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMjMuODA2MDc4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuODA2NzM5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTIzLjgwNjgxM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgwNjgzOV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44
MDY5NjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjgwNzAxNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MDcxMTVdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTIzLjgwNzE0MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44MDc3NjRdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44MDgzMzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODA4MzgyXSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuODA4NDU1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjgwODU2MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuODA4NjA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTIzLjgwODYzNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMjMuODA4NzMyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjgw
OTMwN10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjgwOTgzNV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MDk4ODRdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MDk5MTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODEwMDY0XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MTAxMzhdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODEwMTY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MTAyMTNdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMjMuODEwOTU1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuODExNDk5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTIzLjgxMTU5NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgxMTY5Ml0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MTE4NDVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgx
MTkxOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MTE5OTJdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIz
LjgxMjA2NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44MTI2ODZdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEyMy44MTMzMzRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMjMuODEzMzg4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
ODEzNDYxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjgxMzYxNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuODEzNjY1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIz
LjgxMzY5MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMjMuODEzNzY1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjgxNDQ4N10g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjgxNTA4Ml0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MTUxMDddIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy44MTUxNTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODE1Mjg1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MTUzMzRdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMjMuODE1MzgzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MTU0NTddIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMjMuODE2MjAwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
ODE2NzY4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgx
NjgxN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgxNjg2Nl0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MTY5NzBdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgxNjk5Nl0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MTcwMjFdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgxNzE0
MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44MTc3ODhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEyMy44MTg0MzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMjMuODE4NDU5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODE4NDg0
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTIzLjgxODU5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuODE4NjE5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgxODY0
NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMjMuODE4Njk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjgxOTMzOV0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjgxOTg1OV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MTk5MzZdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy44MjAwMDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjMuODIwMTEzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MjAxODZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMjMuODIwMjEyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MjAyNjFdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MjMuODIwODg0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODIxMzYw
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgyMTM4N10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgyMTQxMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MjE0OTNdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgyMTYxNV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MjE2NDJdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgyMTY5MV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEyMy44MjI0NDVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEyMy44MjI5NzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMjMuODIzMDQ4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODIzMTIyXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgy
MzIyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuODIzMzAwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgyMzMyNl0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuODIzMzU5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjgyNDA1MV0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjgyNDUyNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44MjQ1OTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy44MjQ2MjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMjMuODI0NzAzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy44MjQ3NTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMjMuODI0ODAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEyMy44MjQ4NzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuODI1
NDQ4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODI1ODc4XSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgyNTkyN10gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgyNTk1NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MjYwODJdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgyNjE1Nl0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MjYxODFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgyNjI1M10gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEyMy44MjcwMDNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEyMy44Mjc1MDNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MjMuODI3NTc2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODI3NjUwXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgyNzc1NF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODI3
NzgwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgyNzg1NF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMu
ODI3OTI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjgyODU1N10gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjgyOTA1Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEyMy44MjkxMjldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44
MjkxNzhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMjMuODI5MjU5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy44MjkzMDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMu
ODI5MzU3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEyMy44MjkzODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuODMwMDg2XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODMwNjU4XSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgzMDc1Nl0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjgzMDc4M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEyMy44MzA5MTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgzMDk2MV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy44MzA5ODZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgzMTA1OV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEyMy44MzE3MjldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44
MzIyMDJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODMy
MjUzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODMyMjc5XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgzMjM1OV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODMyNDA4XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgzMjQzNV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODMyNDg0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIzLjgzMzE2M10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjgzMzY0OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEyMy44MzM3MjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44MzM3NDhd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MjMuODMzODc2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy44MzM5NDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODM0MDIy
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEyMy44MzQwNzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuODM0NzkxXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODM1Mjg5XSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgzNTMzOV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjgzNTM2NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEyMy44MzU0OTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjgzNTU0Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEyMy44MzU1NjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgzNTY2NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEy
My44MzYyODVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44MzY4MDVd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODM2ODU3XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODM2OTA2XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjgzNzA4MV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODM3MTU0XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjgzNzIwM10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODM3MjMwXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTIzLjgzNzkwNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjgzODYwMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEyMy44Mzg2MjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44Mzg2NTVdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODM4
NzgzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My44Mzg4NTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODM4OTI5XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEyMy44Mzg5NzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuODM5NjI3XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODQwMTI1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjg0MDIyMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjg0MDI3Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy44NDAzNTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjg0MDQyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEyMy44NDA0OTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTIzLjg0MDU0OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44NDEy
MTldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44NDE2MjNdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODQxNjk3XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMjMuODQxNzIzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjg0MTg2MF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODQxOTM1XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTIzLjg0MTk2MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODQxOTg3XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTIzLjg0Mjc3N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjg0MzE4OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEy
My44NDMyMzhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44NDMyNjRdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODQzMzk4XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44NDM0
NDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODQzNDczXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44
NDM0OTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuODQ0MTIzXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuODQ0NjAwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTIzLjg0NDYyNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjg0
NDY1Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEyMy44NDQ3NTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjg0NDgwNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44
NDQ4NTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTIzLjg0NDg4MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44NDU0ODBdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44NDU5ODJdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODQ2MDMyXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMjMuODQ2MDYwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTIzLjg0NjE0MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODQ2MTg5XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTIzLjg0NjIzOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODQ2Mjg4XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTIzLjg0NzI3MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg0
NzY5OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44NDc3
MjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44NDc3OTddIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODQ3OTAxXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44NDc5NzRdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODQ4MDIzXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44NDgwNDld
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMjMuODQ4NzcyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuODQ5MjkyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTIzLjg0OTM0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjg0OTM2OF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEy
My44NDk0NzJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjg0OTQ5OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44NDk1MjRd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTIzLjg0OTU5N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44NTAzODRdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44NTA4NzBdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODUwOTIwXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMjMuODUwOTQ2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTIzLjg1MTA0OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMjMuODUxMDk4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTIzLjg1MTE5Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODUxMjY5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTIz
Ljg1MTg2OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg1MjM5NF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44NTI0NDNdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44NTI1MTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMjMuODUyNjQ1XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEyMy44NTI2OTRdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODUyNzIwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44NTI3OTNdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMjMuODUzNDUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuODUzNTQ0XSBbZHJtXSBSZWdpc3RlcigwKSBbbW1VVkRfUE9XRVJfU1RBVFVTXSBm
YWlsZWQgdG8gcmVhY2ggdmFsdWUgMHgwMDAwMDAwMSAhPSAweDAwMDAwMDAzbgpbICAxMjMuODUz
NjAwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjg1MzYw
Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTIzLjg1MzYwNF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEyMy44NTM2MTVdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjg1MzYxNl0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44NTM2MThdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjg1MzYxOV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEyMy44NTM1NjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFtkcm06
YW1kZ3B1X2liX3JpbmdfdGVzdHMgW2FtZGdwdV1dICpFUlJPUiogSUIgdGVzdCBmYWlsZWQgb24g
Z2Z4XzAuMC4wICgtMTEwKS4KWyAgMTIzLjg1Mzg2NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjg1MzkyOV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjg1NDIwNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg1
NDExMF0gW2RybTphbWRncHVfZGV2aWNlX2RlbGF5ZWRfaW5pdF93b3JrX2hhbmRsZXIgW2FtZGdw
dV1dICpFUlJPUiogaWIgcmluZyB0ZXN0IGZhaWxlZCAoLTExMCkuClsgIDEyMy44NTQyNjhdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44NTQzNjZdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEyMy44NTQ2MzRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IGFtZGdwdTogU01VOiByZXNwb25zZToweEZGRkZGRkZGIGZvciBpbmRleDoxMyBwYXJhbToweDAw
MDAwMDAwIG1lc3NhZ2U6R2V0RW5hYmxlZFNtdUZlYXR1cmVzSGlnaD8KWyAgMTIzLjg1NDY3N10g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg1NDg1M10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogYW1kZ3B1OiBGYWlsZWQgdG8gcmV0cmlldmUgZW5hYmxlZCBwcGZlYXR1cmVz
IQpbICAxMjMuODU0OTQ0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTIzLjg1NTEwOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTTVU6IHJlc3BvbnNl
OjB4RkZGRkZGRkYgZm9yIGluZGV4OjM0IHBhcmFtOjB4MDAwMDAwMDIgbWVzc2FnZTpTZXRXb3Jr
bG9hZE1hc2s/ClsgIDEyMy44NTUxNThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEyMy44NTUz
NjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogW3NpZW5uYV9jaWNobGlkX3NldF9wb3dl
cl9wcm9maWxlX21vZGVdIEZhaWxlZCB0byBzZXQgd29yayBsb2FkIG1hc2shClsgIDEyMy44NTUz
OTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMjMuODU1NjczXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEyMy44NTU2NzVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMjMuODU1
Njc2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEyMy44NTU2NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMjMuODU1OTg2XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2MDQ5XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2MTEzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuODU2MTc2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuODU2MjM5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
ODU2MzAzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2MzY2XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2NDI5XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2NDkyXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuODU2NTU1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuODU2NjE4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuODU2NjgxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2NzQ1
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2ODA3XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2ODcwXSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU2OTMzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuODU2OTk3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuODU3MDYwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3
MTI0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3MTg3XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3MjUwXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3MzEzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuODU3Mzc1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuODU3NDM4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
ODU3NTAxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3NTY0XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3NjI2XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3Njg5XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuODU3NzUxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuODU3ODE0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuODU3ODc2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU3OTQw
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4MDAyXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4MDY0XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4MTI3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuODU4MTkwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuODU4MjU1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4
MzY3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4NDM1XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4NTAwXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4NTY1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuODU4NjI4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuODU4NjkyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
ODU4NzU4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4ODIxXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4ODg0XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU4OTQ3XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuODU5MDA5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuODU5MDcyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuODU5MTM1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5MTk4
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5MjYwXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5MzIzXSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5Mzg2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMjMuODU5NDQ5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMjMuODU5NTExXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5
NTc0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5NjM3XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5NzAwXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODU5NzYzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuODU5ODI2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMjMuODU5ODg5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMu
ODU5OTUyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODYwMDE1XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODYwMDc4XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODYwMTQxXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMjMuODYwMjA0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMjMuODYwMjY3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MjMuODYwMzMyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODYwMzk3
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODYwNDYyXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMjMuODYwNTA1XSBhbWRncHUgMDAwMDowMzow
MC4wOiBbZHJtXSBmYjE6IGFtZGdwdWRybWZiIGZyYW1lIGJ1ZmZlciBkZXZpY2UKWyAgMTIzLjg2
MDUzMF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MDU5M10gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MDY1Nl0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MDcxOV0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjg2MDc4MV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjg2MDg0N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
Ljg2MDkxNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MDk3OF0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTA0MV0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTEwNF0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTE2N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjg2MTIzMF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjg2MTI5NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTM1
N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTQyMF0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTQ4M10gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTU0Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjg2MTYxMF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjg2MTY3M10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2
MTczNl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTc5OV0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTg3Ml0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MTkzN10gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjg2MjAwMF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjg2MjA2NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
Ljg2MjEyN10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MjE5MV0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MjI1NF0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MjM1M10gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MjQyMl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjg2MjQ4OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjg2MjU1NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MjYy
M10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MjY4OF0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2Mjc1M10gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MjgxNl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjg2Mjg4OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTIzLjg2Mjk1NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2
MzAxOF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzA4Ml0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzE0N10gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzIxNl0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTIzLjg2MzI5OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTIzLjg2MzM3Ml0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIz
Ljg2MzQzN10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzUwNF0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzU2OF0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzYzMl0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzY5Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjg2Mzc2MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTIzLjg2MzgyNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2Mzg4
OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTIzLjg2MzkwOV0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTIzLjg4NDA0Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTTVU6
IHJlc3BvbnNlOjB4RkZGRkZGRkYgZm9yIGluZGV4OjEzIHBhcmFtOjB4MDAwMDAwMDAgbWVzc2Fn
ZTpHZXRFbmFibGVkU211RmVhdHVyZXNIaWdoPwpbICAxMjMuODg0MjA5XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMjMuODg0MzIxXSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IEZh
aWxlZCB0byByZXRyaWV2ZSBlbmFibGVkIHBwZmVhdHVyZXMhClsgIDEyMy44ODQ4NTFdIFtkcm1d
IGluaXRpYWxpemluZyBrZXJuZWwgbW9kZXNldHRpbmcgKFJFTk9JUiAweDEwMDI6MHgxNjM2IDB4
MTAwMjoweDAxMjQgMHg4NCkuClsgIDEyMy44ODQ5NzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTIzLjg4NDk4Nl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEyMy44ODQ5ODldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTIzLjg4Njg3Ml0gW2RybV0gcmVnaXN0ZXIg
bW1pbyBiYXNlOiAweEQwNDAwMDAwClsgIDEyMy44ODY4NzddIFtkcm1dIHJlZ2lzdGVyIG1taW8g
c2l6ZTogNTI0Mjg4ClsgIDEyMy45MDc5NzFdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgMCA8
c29jMTVfY29tbW9uPgpbICAxMjMuOTA3OTc3XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDEg
PGdtY192OV8wPgpbICAxMjMuOTA3OTgwXSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDIgPHZl
Z2ExMF9paD4KWyAgMTIzLjkwNzk4Ml0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciAzIDxwc3A+
ClsgIDEyMy45MDc5ODNdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNCA8c211PgpbICAxMjMu
OTA3OTg2XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDUgPGRtPgpbICAxMjMuOTA3OTg3XSBb
ZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDYgPGdmeF92OV8wPgpbICAxMjMuOTA3OTg5XSBbZHJt
XSBhZGQgaXAgYmxvY2sgbnVtYmVyIDcgPHNkbWFfdjRfMD4KWyAgMTIzLjkwNzk5MV0gW2RybV0g
YWRkIGlwIGJsb2NrIG51bWJlciA4IDx2Y25fdjJfMD4KWyAgMTIzLjkwNzk5M10gW2RybV0gYWRk
IGlwIGJsb2NrIG51bWJlciA5IDxqcGVnX3YyXzA+ClsgIDEyMy45MDg5NzRdIGFtZGdwdSAwMDAw
OjA1OjAwLjA6IGFtZGdwdTogRmV0Y2hlZCBWQklPUyBmcm9tIFZGQ1QKWyAgMTIzLjkwOTAwNF0g
YW1kZ3B1OiBBVE9NIEJJT1M6IDExMy1SRU5PSVItMDM3ClsgIDEyMy45MjcxNzhdIENvbnNvbGU6
IHN3aXRjaGluZyB0byBjb2xvdXIgZHVtbXkgZGV2aWNlIDgweDI1ClsgIDEyMy45MjcyNjZdIGFt
ZGdwdSAwMDAwOjA1OjAwLjA6IHZnYWFyYjogZGVhY3RpdmF0ZSB2Z2EgY29uc29sZQpbICAxMjMu
OTI3MjY5XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IFRydXN0ZWQgTWVtb3J5IFpvbmUg
KFRNWikgZmVhdHVyZSBlbmFibGVkClsgIDEyMy45MjcyNzJdIGFtZGdwdSAwMDAwOjA1OjAwLjA6
IGFtZGdwdTogTU9ERTIgcmVzZXQKWyAgMTIzLjkyNzUxM10gW2RybV0gdm0gc2l6ZSBpcyAyNjIx
NDQgR0IsIDQgbGV2ZWxzLCBibG9jayBzaXplIGlzIDktYml0LCBmcmFnbWVudCBzaXplIGlzIDkt
Yml0ClsgIDEyMy45Mjc1MzNdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogVlJBTTogNTEy
TSAweDAwMDAwMEY0MDAwMDAwMDAgLSAweDAwMDAwMEY0MUZGRkZGRkYgKDUxMk0gdXNlZCkKWyAg
MTIzLjkyNzUzNl0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBHQVJUOiAxMDI0TSAweDAw
MDAwMDAwMDAwMDAwMDAgLSAweDAwMDAwMDAwM0ZGRkZGRkYKWyAgMTIzLjkyNzU0Nl0gW2RybV0g
RGV0ZWN0ZWQgVlJBTSBSQU09NTEyTSwgQkFSPTUxMk0KWyAgMTIzLjkyNzU0OF0gW2RybV0gUkFN
IHdpZHRoIDEyOGJpdHMgTFBERFI0ClsgIDEyMy45MjgxNzldIFtkcm1dIGFtZGdwdTogNTEyTSBv
ZiBWUkFNIG1lbW9yeSByZWFkeQpbICAxMjMuOTI4MTgzXSBbZHJtXSBhbWRncHU6IDI3NTRNIG9m
IEdUVCBtZW1vcnkgcmVhZHkuClsgIDEyMy45MjgyNThdIFtkcm1dIEdBUlQ6IG51bSBjcHUgcGFn
ZXMgMjYyMTQ0LCBudW0gZ3B1IHBhZ2VzIDI2MjE0NApbICAxMjMuOTI4NDMyXSBbZHJtXSBQQ0lF
IEdBUlQgb2YgMTAyNE0gZW5hYmxlZC4KWyAgMTIzLjkyODQzNF0gW2RybV0gUFRCIGxvY2F0ZWQg
YXQgMHgwMDAwMDBGNDFGQzAwMDAwClsgIDEyMy45Mjk1MDBdIFtkcm1dIExvYWRpbmcgRE1VQiBm
aXJtd2FyZSB2aWEgUFNQOiB2ZXJzaW9uPTB4MDEwMTAwMUYKWyAgMTIzLjkzMDk4NV0gW2RybV0g
Rm91bmQgVkNOIGZpcm13YXJlIFZlcnNpb24gRU5DOiAxLjIxIERFQzogNyBWRVA6IDAgUmV2aXNp
b246IDMKWyAgMTIzLjk2MjM5N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTTVU6IHJl
c3BvbnNlOjB4RkZGRkZGRkYgZm9yIGluZGV4OjQwIHBhcmFtOjB4MDAwMDAwMDAgbWVzc2FnZTpB
bGxvd0dmeE9mZj8KWyAgMTIzLjk2MjQ1N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBG
YWlsZWQgdG8gZW5hYmxlIGdmeG9mZiEKWyAgMTIzLjk2MjUwNl0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTIzLjk2MjU0MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMjMuOTYyNTQ1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTIzLjk2MjU1MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMjQuNTQ5NjMwXSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6
IHJlc2VydmUgMHg0MDAwMDAgZnJvbSAweGY0MWY4MDAwMDAgZm9yIFBTUCBUTVIKWyAgMTI0LjYz
MzUyNl0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBSQVM6IG9wdGlvbmFsIHJhcyB0YSB1
Y29kZSBpcyBub3QgYXZhaWxhYmxlClsgIDEyNC42NDQ3MDhdIGFtZGdwdSAwMDAwOjA1OjAwLjA6
IGFtZGdwdTogUkFQOiBvcHRpb25hbCByYXAgdGEgdWNvZGUgaXMgbm90IGF2YWlsYWJsZQpbICAx
MjQuNjQ0NzEyXSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IFNFQ1VSRURJU1BMQVk6IHNl
Y3VyZWRpc3BsYXkgdGEgdWNvZGUgaXMgbm90IGF2YWlsYWJsZQpbICAxMjQuNjQ3NDY2XSBhbWRn
cHUgMDAwMDowNTowMC4wOiBhbWRncHU6IFNNVSBpcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkh
ClsgIDEyNC42NDg4NDJdIFtkcm1dIERpc3BsYXkgQ29yZSB2My4yLjMwMSBpbml0aWFsaXplZCBv
biBEQ04gMi4xClsgIDEyNC42NDg4NDZdIFtkcm1dIERQLUhETUkgRlJMIFBDT04gc3VwcG9ydGVk
ClsgIDEyNC42NDkzOTldIFtkcm1dIERNVUIgaGFyZHdhcmUgaW5pdGlhbGl6ZWQ6IHZlcnNpb249
MHgwMTAxMDAxRgpbICAxMjQuNjc1MjMyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDU6MDAuMTogYm91
bmQgMDAwMDowNTowMC4wIChvcHMgYW1kZ3B1X2RtX2F1ZGlvX2NvbXBvbmVudF9iaW5kX29wcyBb
YW1kZ3B1XSkKWyAgMTI0Ljg3NDQ5OV0gW2RybV0ga2lxIHJpbmcgbWVjIDIgcGlwZSAxIHEgMApb
ICAxMjQuODgwNzQyXSBrZmQga2ZkOiBhbWRncHU6IEFsbG9jYXRlZCAzOTY5MDU2IGJ5dGVzIG9u
IGdhcnQKWyAgMTI0Ljg4MDc5M10ga2ZkIGtmZDogYW1kZ3B1OiBUb3RhbCBudW1iZXIgb2YgS0ZE
IG5vZGVzIHRvIGJlIGNyZWF0ZWQ6IDEKWyAgMTI0Ljg4MTUyMV0gYW1kZ3B1OiBWaXJ0dWFsIENS
QVQgdGFibGUgY3JlYXRlZCBmb3IgR1BVClsgIDEyNC44ODMyNTBdIGFtZGdwdTogVG9wb2xvZ3k6
IEFkZCBkR1BVIG5vZGUgWzB4MTYzNjoweDEwMDJdClsgIDEyNC44ODMyNTVdIGtmZCBrZmQ6IGFt
ZGdwdTogYWRkZWQgZGV2aWNlIDEwMDI6MTYzNgpbICAxMjQuODgzMzQ5XSBhbWRncHUgMDAwMDow
NTowMC4wOiBhbWRncHU6IFNFIDEsIFNIIHBlciBTRSAxLCBDVSBwZXIgU0ggOCwgYWN0aXZlX2N1
X251bWJlciA3ClsgIDEyNC44ODMzNTVdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmlu
ZyBnZnggdXNlcyBWTSBpbnYgZW5nIDAgb24gaHViIDAKWyAgMTI0Ljg4MzM1N10gYW1kZ3B1IDAw
MDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4wLjAgdXNlcyBWTSBpbnYgZW5nIDEgb24g
aHViIDAKWyAgMTI0Ljg4MzM1OV0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNv
bXBfMS4xLjAgdXNlcyBWTSBpbnYgZW5nIDQgb24gaHViIDAKWyAgMTI0Ljg4MzM2MF0gYW1kZ3B1
IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4yLjAgdXNlcyBWTSBpbnYgZW5nIDUg
b24gaHViIDAKWyAgMTI0Ljg4MzM2Ml0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5n
IGNvbXBfMS4zLjAgdXNlcyBWTSBpbnYgZW5nIDYgb24gaHViIDAKWyAgMTI0Ljg4MzM2M10gYW1k
Z3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4wLjEgdXNlcyBWTSBpbnYgZW5n
IDcgb24gaHViIDAKWyAgMTI0Ljg4MzM2NF0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBy
aW5nIGNvbXBfMS4xLjEgdXNlcyBWTSBpbnYgZW5nIDggb24gaHViIDAKWyAgMTI0Ljg4MzM2Nl0g
YW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4yLjEgdXNlcyBWTSBpbnYg
ZW5nIDkgb24gaHViIDAKWyAgMTI0Ljg4MzM2N10gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1
OiByaW5nIGNvbXBfMS4zLjEgdXNlcyBWTSBpbnYgZW5nIDEwIG9uIGh1YiAwClsgIDEyNC44ODMz
NjhdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyBraXFfMC4yLjEuMCB1c2VzIFZN
IGludiBlbmcgMTEgb24gaHViIDAKWyAgMTI0Ljg4MzM3MF0gYW1kZ3B1IDAwMDA6MDU6MDAuMDog
YW1kZ3B1OiByaW5nIHNkbWEwIHVzZXMgVk0gaW52IGVuZyAwIG9uIGh1YiA4ClsgIDEyNC44ODMz
NzFdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyB2Y25fZGVjIHVzZXMgVk0gaW52
IGVuZyAxIG9uIGh1YiA4ClsgIDEyNC44ODMzNzNdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdw
dTogcmluZyB2Y25fZW5jMCB1c2VzIFZNIGludiBlbmcgNCBvbiBodWIgOApbICAxMjQuODgzMzc0
XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IHJpbmcgdmNuX2VuYzEgdXNlcyBWTSBpbnYg
ZW5nIDUgb24gaHViIDgKWyAgMTI0Ljg4MzM3Nl0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1
OiByaW5nIGpwZWdfZGVjIHVzZXMgVk0gaW52IGVuZyA2IG9uIGh1YiA4ClsgIDEyNC44ODc4Mjhd
IGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogUnVudGltZSBQTSBub3QgYXZhaWxhYmxlClsg
IDEyNC44OTEzMzRdIFtkcm1dIEluaXRpYWxpemVkIGFtZGdwdSAzLjU5LjAgZm9yIDAwMDA6MDU6
MDAuMCBvbiBtaW5vciAxClsgIDEyNC45MDE2MzJdIGZiY29uOiBhbWRncHVkcm1mYiAoZmIwKSBp
cyBwcmltYXJ5IGRldmljZQpbICAxMjQuOTAyMTIwXSBbZHJtXSBwcmVfdmFsaWRhdGVfZHNjOjE1
NzggTVNUX0RTQyBkc2MgcHJlY29tcHV0ZSBpcyBub3QgbmVlZGVkClsgIDEyNS4wMjU4NDhdIENv
bnNvbGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmljZSAxNjB4NDUKWyAg
MTI1LjA2NDYwMF0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogW2RybV0gZmIwOiBhbWRncHVkcm1mYiBm
cmFtZSBidWZmZXIgZGV2aWNlClsgIDEzMy45NjY2MDRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFt
ZGdwdTogRHVtcGluZyBJUCBTdGF0ZQpbICAxMzMuOTY2OTg5XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMzMuOTY3MzU4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTMzLjk2NzM4Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk2
NzM4OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEzMy45Njc0MjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTMzLjk2NzQyOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45
Njc0MzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTMzLjk2NzQzMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzMy45Njc2NzldIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzMy45Njc3NDddIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IGFtZGdwdTogRHVtcGluZyBJUCBTdGF0ZSBDb21wbGV0ZWQKWyAgMTMzLjk2Nzgx
MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45Njc4MTFd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45Njc4MTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTY3ODIzXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45Njc4MjVdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTY3ODI2XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45Njc4MjhdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMzMuOTY3OTE3XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6
IHJpbmcgc2RtYTEgdGltZW91dCwgc2lnbmFsZWQgc2VxPTAsIGVtaXR0ZWQgc2VxPTIKWyAgMTMz
Ljk2NzkzNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTMzLjk2Nzk4MF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBHUFUgcmVzZXQgYmVnaW4hClsgIDEzMy45Njgw
NjVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzMy45NjgxNzRdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTY4MTc2XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMzMuOTY4MjAzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk2ODIxNF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTY4MjQwXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk2ODI0MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTY4MjQzXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTMzLjk2ODQ2Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTMzLjk2ODY0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEz
My45Njg2NDRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45Njg2NDZdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTY4NjgyXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45Njg2
ODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTY4Njg1XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45
Njg2ODZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzMuOTY4OTEwXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMzMuOTY5MDkwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTMzLjk2OTA5Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk2
OTA5NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEzMy45NjkxMjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTMzLjk2OTEzMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45
NjkxMzJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTMzLjk2OTEzNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzMy45Njk1NjBdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzMy45Njk5ODFdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTcwMDYzXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMzMuOTcwMTE2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk3MDIyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTcwMjc5XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTMzLjk3MDM0N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTcwMzQ4XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTMzLjk3MDk3Ml0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTMzLjk3
MTQ2M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45NzE0
OTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45NzE1MTddIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTcxNjAyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45NzE2MjldIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTcxNjU3XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45NzE2NThd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMzMuOTcyMTAwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMzMuOTcyNTE1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTMzLjk3MjU0MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk3MjU2N10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEz
My45NzI2NDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTMzLjk3MjY3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45NzI3MDFd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTMzLjk3MjcyN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzMy45NzMxNDZdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzMy45NzM1NzFdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTczNjIyXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMzMuOTczNjUwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTMzLjk3MzczM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTczNzYwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTMzLjk3Mzc4Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTczNzg4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTMz
Ljk3NDIxOF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTMzLjk3NDc4MF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45NzQ4MDhdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45NzQ4MzZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTc0OTIwXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45NzQ5MjFdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTc0OTQ4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45NzQ5NzRdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMzMuOTc1NDAzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMzMuOTc1ODA0XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTMzLjk3NTgzMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk3NTg2MF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45NzU5
NDNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMz
Ljk3NTk3MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45NzYwMjNdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTMzLjk3NjAyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzMy45NzY0NTddIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEzMy45NzY4NzhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTc2OTA1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MzMuOTc2OTMyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTMzLjk3NzAxNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMzMuOTc3MDQxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTMzLjk3NzA0M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMzMuOTc3MDcxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTMzLjk3NzQ5
NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTMzLjk3NzkxN10gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45Nzc5NDRdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEzMy45Nzc5NzBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTc4MDI5XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45NzgwNTZdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMzMuOTc4MDg0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45NzgxMTBdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMzMuOTc4Nzg1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MzMuOTc5MjA3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMz
Ljk3OTIzNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk3OTI2MF0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45NzkzNDVdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk3OTM3
MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45NzkzOThdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk3
OTQyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzMy45Nzk4MjZdIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEzMy45ODAyNTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMzMuOTgwMjc5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTgw
MzA2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTMzLjk4MDM4OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMzMuOTgwNDQyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk4
MDQ2OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMzMuOTgwNDk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTMzLjk4MDg5MV0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTMzLjk4MTMzM10gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45ODEzNTldIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEzMy45ODEzODVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMzMuOTgxNDY5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45ODE0OTVdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMzMuOTgxNTIxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45ODE1NDddIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMzMuOTgxOTczXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzMuOTgy
NTU4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk4MjYx
MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk4MjYzOF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45ODI3MjFdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk4Mjc3M10gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45ODI3OTldIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk4MjgyNV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEzMy45ODMyNTZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEzMy45ODM2ODVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMzMuOTgzNzM3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTgzNzYzXSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMz
Ljk4Mzg0N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMzMuOTgzODc0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk4MzkwMF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMzMuOTgzOTAyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTMzLjk4NDM1MF0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTMzLjk4NDc3Ml0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45ODQ3OTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEzMy45ODQ4MjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMzMuOTg0OTA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45ODQ5MzZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMzMuOTg0OTYzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEzMy45ODQ5OTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzMu
OTg1NDE1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzMuOTg1ODM4XSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk4NTg4OV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk4NTg5Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45ODU5NzVdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk4NjAwMV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45ODYwMjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk4NjA1NF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEzMy45ODczNTRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEzMy45ODc4MDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMzMuOTg3ODI3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTg3ODU0XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk4Nzkz
OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMu
OTg3OTY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk4Nzk5MV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MzMuOTg4MDE4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTMzLjk4OTE1OV0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTMzLjk4OTYwNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEzMy45ODk2MzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEz
My45ODk2NThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMzMuOTg5NzE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEzMy45ODk3NDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MzMuOTg5Nzk1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEzMy45ODk3OTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzMuOTkwOTg2
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzMuOTkxNDEwXSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk5MTQzN10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTMzLjk5MTQ4OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEzMy45OTE1NzJdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk5MTU3NF0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEzMy45OTE2MDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk5MTYyOV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEzMy45OTI3MjVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEz
My45OTMxNDddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMu
OTkzMTc1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTkzMjAyXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk5MzI4NF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTkzMzEx
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk5MzMzN10gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTkz
Mzk2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTMzLjk5NDYzNV0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTMzLjk5NTA4OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEzMy45OTUxMTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzMy45OTUx
NDJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMzMuOTk1MjI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEzMy45OTUyODBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTk1
MzA3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEzMy45OTUzNThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzMuOTk2NDU4XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzMuOTk2ODgxXSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk5NjkwOF0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTMzLjk5Njk1OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEzMy45OTcwNDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTMzLjk5NzA3Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEzMy45OTcxMDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk5NzEyN10gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEzMy45OTgxODVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzMy45OTg3
NzZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTk4ODA0
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzMuOTk4ODMxXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTMzLjk5ODk0MV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzMuOTk4OTY3XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTMzLjk5ODk5NF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzMuOTk5MDIwXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjAwMDIwNl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTM0LjAwMDY2MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEzNC4wMDA3MTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMDA3MzZdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQu
MDAwODIwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEzNC4wMDA4MjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDAwODQ4XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEzNC4wMDA4NDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDAxOTMzXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDAyNDgwXSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAwMjYzMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTM0LjAwMjY2MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEzNC4wMDI3NDJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTM0LjAwMjc2OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEzNC4wMDI3NzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAwMjc5OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4w
MDM5OTFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wMDQ0MTVdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDA0NDQyXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDA0NDk0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAwNDYwM10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDA0NjMwXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAwNDY1Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDA0NjgyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTM0LjAwNTc3Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTM0LjAwNjIwMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEzNC4wMDYyMjhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMDYyNzldIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDA2NDAz
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4w
MDY1ODBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDA2NjM0XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEz
NC4wMDY2ODZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDA3ODM3XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDA4Mjg4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTM0LjAwODMxNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0
LjAwODM0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEzNC4wMDg0NTBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTM0LjAwODQ3N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEz
NC4wMDg1MDRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTM0LjAwODUzMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wMDk1MTBd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wMDk5MzFdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDEwMDA4XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMzQuMDEwMDEwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAxMDA5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDEwMTIwXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTM0LjAxMDE0Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDEwMTcyXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTM0LjAxMTI2OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0
LjAxMTc2Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4w
MTE4MThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMTE4NDRdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDExOTI3XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMTE5NTNd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDExOTgwXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMTIw
MDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDEzMDE2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMzQuMDEzNDkwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTM0LjAxMzUxOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAxMzU0
NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEzNC4wMTM2MjldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTM0LjAxMzYzMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMTM2
NTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTM0LjAxMzY4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wMTQ2OTldIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wMTUxNDVdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDE1MTczXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMzQuMDE1MTk5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTM0LjAxNTI4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDE1MzEwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTM0LjAxNTMzNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDE1MzYyXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTM0LjAxNjI2OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjAxNjcx
N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMTY3NDRd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMTY3OTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDE2ODgwXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMTY5MDldIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDE2OTYxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMTY5ODhdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMzQuMDE3ODc0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMzQuMDE4MzkzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTM0LjAxODQyMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAxODQyM10gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4w
MTg2MTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTM0LjAxODYzOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMTg2NjddIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTM0LjAxODY5M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wMTk2MTldIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wMjAwNDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDIwMDk0XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMzQuMDIwMTIwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTM0LjAyMDE4MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMzQuMDIwMjA2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTM0LjAyMDIzMl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMzQuMDIwMjU4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjAy
MTAyMF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjAyMTQzNl0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMjE0ODhdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMjE1NDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDIxNjI0XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMjE2NTJdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDIxNjc4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMjE3MzFdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMzQuMDIyNjk3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMzQuMDIzMTM2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTM0LjAyMzE4OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAyMzIxNV0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMjMzMjNd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAy
MzM4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMjM0MTFdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0
LjAyMzQzOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wMjQyMzldIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEzNC4wMjQ2NjBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMzQuMDI0Njg3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQu
MDI0Njg5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTM0LjAyNDc3M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMzQuMDI0Nzk5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0
LjAyNDgwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMzQuMDI0ODI3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjAyNTU0NF0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjAyNTk5M10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMjYwMjBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEzNC4wMjYwNzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDI2MTU4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMjYxODVdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMzQuMDI2MjEyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMjYyMzhdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMzQuMDI3MDUzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQu
MDI3NTAyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAy
NzU1NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAyNzU4MV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMjc2NjVdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAyNzY5MV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMjc3MjBdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAyNzc5
Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wMjg0NzJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEzNC4wMjg4OTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMzQuMDI4OTIzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDI4OTUw
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTM0LjAyOTAzM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMzQuMDI5MDYwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAyOTA4
N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMzQuMDI5MDg5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjAyOTc4Nl0gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjAzMDIxMV0gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMzAyMzldIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEzNC4wMzAyNjVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMzQuMDMwNDExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMzA0MzldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMzQuMDMwNjM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMzA2OTFdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MzQuMDMxMzQ5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDMxNzcz
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAzMTgwMF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAzMTgyNl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMzE5MTBdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAzMTkzN10gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMzE5NjNdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAzMTk4OV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEzNC4wMzI1MzZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEzNC4wMzI5NTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMzQuMDMzMDA0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDMzMDU2XSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAz
MzExNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MzQuMDMzMTQwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAzMzE2Nl0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMzQuMDMzMTkyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjAzMzc2NV0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjAzNDE4Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wMzQyMTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEzNC4wMzQyMzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMzQuMDM0Mjk4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEzNC4wMzQzODddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMzQuMDM0MzkwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEzNC4wMzQ0MTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDM1
MDA2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDM1NDI4XSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAzNTQ1NF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAzNTUwNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMzU1ODldIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAzNTY0MV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wMzU2NjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAzNTY2OV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEzNC4wMzYzMTNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEzNC4wMzY3MzRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MzQuMDM2ODEwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDM2ODEyXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAzNjg5OF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDM2
ODk5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjAzNjkyN10gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQu
MDM2OTU3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjAzNzU0OV0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTM0LjAzNzk3MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEzNC4wMzgwMjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4w
MzgwNDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMzQuMDM4MTA4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEzNC4wMzgxMzRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQu
MDM4MTYxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEzNC4wMzgxODldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDM4ODQzXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDM5MjY4XSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAzOTI5NV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTM0LjAzOTMyMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wMzk0MDVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjAzOTQzMl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEzNC4wMzk0NTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjAzOTQ4N10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEzNC4wNDAxMjVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4w
NDA1NzhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDQw
NjA0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDQwNjMxXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA0MDc0MV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDQwNzk0XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA0MDgyMV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDQwODQ3
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjA0MTM4NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTM0LjA0MTgwNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEzNC4wNDE4ODddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNDE5Mzld
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MzQuMDQxOTk5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEzNC4wNDIwNTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDQyMDc5
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEzNC4wNDIxMDVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDQyNzM3XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDQzMTMzXSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA0MzE1OV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTM0LjA0MzE4Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEzNC4wNDMyOTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA0MzMyMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEzNC4wNDMzNTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA0MzM1NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEz
NC4wNDM5NzZdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wNDQ0MDJd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDQ0NDI4XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDQ0NDU1XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA0NDU0MF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDQ0NTY2XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA0NDU5M10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDQ0NjE5XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTM0LjA0NTE2N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTM0LjA0NTU5MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEzNC4wNDU2MTddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNDU2NDNdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDQ1
NzI3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEz
NC4wNDU3NTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDQ1NzgwXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEzNC4wNDU4MDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDQ2NTEwXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDQ3MDA1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA0NzAzMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTM0LjA0NzA4NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEzNC4wNDcxNDNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTM0LjA0NzE5OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEzNC4wNDcyMjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTM0LjA0NzI1Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wNDc4
NjJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wNDgyODldIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDQ4MzE1XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMzQuMDQ4MzQyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA0ODQyNl0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDQ4NDU0XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA0ODQ4MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDQ4NTMxXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTM0LjA0OTEyNl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTM0LjA0OTU0OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEz
NC4wNDk1OTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNDk2MjVdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDQ5NzEwXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNDk3
MTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDQ5NzM4XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4w
NDk3NDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDUwMzU3XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMzQuMDUwODg1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTM0LjA1MDkxM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA1
MDk0MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEzNC4wNTEwMjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTM0LjA1MTA1M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4w
NTEwODBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTM0LjA1MTEwNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wNTE2OTFdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wNTIxMDRdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDUyMTMwXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMzQuMDUyMTU2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA1MjIzOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDUyMjY0XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTM0LjA1MjI5MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDUyMzE2XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTM0LjA1MzM0OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjA1
NDA4N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNTQx
MTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNTQxNDFdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDU0MjQ2XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNTQzOTBdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDU0NDIxXSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNTQ0NDdd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDU1MjI5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMzQuMDU1NjYxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTM0LjA1NTY4N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA1NTczN10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEz
NC4wNTU4MThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTM0LjA1NTg5MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNTU5NDFd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTM0LjA1NTk5MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wNTY2NTZdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wNTcwOTVdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDU3MTY4XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMzQuMDU3MTk0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTM0LjA1NzMyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDU3NDQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTM0LjA1NzUxN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDU3NTcxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0
LjA1ODU5Nl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjA1OTk2M10g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNjAwNDRdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNjAwNDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDYwMTA5XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNjAxMTBdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDYwMTQxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNjAxNjhdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMzQuMDYwODY0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMzQuMDYxMzE5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTM0LjA2MTM0NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA2MTM3Ml0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNjE0
NTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0
LjA2MTUwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNjE1MjddIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTM0LjA2MTU3Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wNjIzNzJdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wNjI4ODBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDYyOTA3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MzQuMDYyOTU3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTM0LjA2MzA2Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMzQuMDYzMTExXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTM0LjA2MzEzN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMzQuMDYzMTYyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjA2Mzgw
NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjA2NDIzNF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNjQyODZdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEzNC4wNjQzMTJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDY0NDE3XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNjQ0NDJdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMzQuMDY0NDQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNjQ0NjldIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMzQuMDY1MDQzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MzQuMDY1NDk2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0
LjA2NTU0NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA2NTYxOV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNjU2NzZdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA2NTcw
MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNjU3MjddIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA2
NTc1Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wNjY0ODBdIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEzNC4wNjY5NjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMzQuMDY3MDE2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDY3
MDY3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTM0LjA2NzE0OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMzQuMDY3MTk4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA2
NzIyNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMzQuMDY3MjQ5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjA2NzkwMF0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjA2ODMwN10gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNjgzNThdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEzNC4wNjgzODRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMzQuMDY4NDg5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNjg1NjJdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMzQuMDY4NTg4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNjg2MTNdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMzQuMDY5MTkxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDY5
NjQ2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA2OTcx
OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA2OTc0NF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNjk4NDldIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA2OTg1MV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNjk4NzddIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA2OTkwM10g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wNzA2MTBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEzNC4wNzEwNDJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMzQuMDcxMDY4XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDcxMDk0XSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0
LjA3MTE3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMzQuMDcxMjAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA3MTIzMF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMzQuMDcxMjc5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjA3MTkwOV0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjA3MjMzN10gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNzIzNjRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEzNC4wNzIzOTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMzQuMDcyNDk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNzI1MjBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMzQuMDcyNTcwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNzI1OTVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQu
MDczMTc1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDczNjE3XSBh
bWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA3MzY5MF0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA3Mzc4N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNzM4OTJdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA3Mzk0MV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wNzQwNDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA3NDA5MV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9y
dGVkIGZpcnN0ClsgIDEzNC4wNzQ4MzhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0
aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4x
ClsgIDEzNC4wNzUyNzJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMzQuMDc1Mjk5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDc1MzQ4XSBhbWRncHUg
MDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA3NTQ1
M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQu
MDc1NTI5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA3NTU1NV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MzQuMDc1NjI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRo
aXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjA3NjIzOV0gcGNpZXBvcnQgMDAwMDow
MDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQg
ZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjA3Njc0MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wNzY3NjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2
aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEz
NC4wNzY3OTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMzQuMDc2OTAzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEzNC4wNzY5NTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRl
dmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MzQuMDc3MDAyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEzNC4wNzcwMjhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBB
RVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDc3NjQ0
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDc4MTY3XSBhbWRncHUg
MDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9
VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA3ODIxNl0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTM0LjA3ODI0Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wNzg0MTVdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA3ODQ0MV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEzNC4wNzg2ODRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA3ODcxMV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZp
cnN0ClsgIDEzNC4wNzkzMDldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEz
NC4wNzk3MzhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1D
b3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQu
MDc5NzY0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDc5NzkwXSBhbWRncHUgMDAwMDow
MzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA3OTg5NF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDc5OTY5
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA3OTk5NV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDgw
MDY5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdl
bnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjA4MDYyNV0gcGNpZXBvcnQgMDAwMDowMDowMS4x
OiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAw
MDAwOjAzOjAwLjEKWyAgMTM0LjA4MTA1Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMg
RXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVj
ZWl2ZXIgSUQpClsgIDEzNC4wODEwNTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsx
MDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wODEw
NzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMzQuMDgxMTgzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEzNC4wODEyMzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBb
MTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDgx
MjU4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEzNC4wODEzMDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAg
RXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDgxOTAxXSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDgyNTk2XSBhbWRncHUgMDAwMDow
MzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNh
Y3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA4MjY0N10gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTM0LjA4MjY5N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEzNC4wODI4MjVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA4Mjg1MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEzNC4wODI4ODFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA4MjkzMV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Clsg
IDEzNC4wODM2MDFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wODQw
NzhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0
YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDg0MTA0
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDg0MTUzXSBhbWRncHUgMDAwMDowMzowMC4w
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA4NDIzNF0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDg0MjU5XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA4NDI4NV0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDg0MzExXSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMg
cmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjA4NDg2OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6
IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAz
OjAwLjEKWyAgMTM0LjA4NTI3Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6
IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIg
SUQpClsgIDEzNC4wODUzMDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjcz
ZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wODUzMDJdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQu
MDg1MzgyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEzNC4wODU0MzJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjph
YjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDg1NDU4XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEzNC4wODU1MzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Ig
b2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDg2MTQyXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDg2Nzc0XSBhbWRncHUgMDAwMDowMzowMC4w
OiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24g
TGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjA4NjgwMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTM0LjA4Njg1MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEzNC4wODY5NTRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTM0LjA4NzAwNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEzNC4wODcwMzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA4NzA1NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4w
ODc2NzddIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBl
cnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wODgwODRdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwg
dHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDg4MTEwXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDg4MTM2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA4ODI0MV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDg4MjcwXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9
MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA4ODMyMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDg4MzQ3XSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0
ZWQgZmlyc3QKWyAgMTM0LjA4ODk1MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRp
cGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEK
WyAgMTM0LjA4OTM3OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVy
aXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsg
IDEzNC4wODk0NTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wODk1MjldIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDg5NjU3
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4w
ODk2ODNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBl
cnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDg5NzMyXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEz
NC4wODk3NThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhp
cyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDkwNDM3XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMDkwOTQ2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTM0LjA5MDk5Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0
LjA5MTAyMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEzNC4wOTExMjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTM0LjA5MTE1Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEz
NC4wOTExNzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTM0LjA5MTIwNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wOTE3OTld
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wOTIyMDZdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDkyMjU2XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMzQuMDkyMzA2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjA5MjM4N10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDkyMzg4XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTM0LjA5MjQzOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDkyNDg3XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTM0LjA5MzA4OF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0
LjA5MzUwNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNv
cnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4w
OTM1NTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wOTM1ODFdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDkzNzEwXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wOTM3MzZd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBz
dGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDkzNzg1XSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wOTM4
MzRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2Vu
dCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMDk0NjAwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxMzQuMDk1MDUzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTM0LjA5NTA4MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEw
MDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA5NTEw
Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEzNC4wOTUxODldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTM0LjA5NTIxNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsx
MDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wOTUy
MThdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTM0LjA5NTI0NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBF
cnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4wOTU5MjVdIHBjaWVw
b3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4wOTYzNDNdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDk2MzkzXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMzQuMDk2NDQzXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTM0LjA5NjUyNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMDk2NTI3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTM0LjA5NjU1NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDk2NjUyXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTM0LjA5NzI3OV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjA5Nzcz
M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wOTc3NTld
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wOTc3NjBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMDk3ODQzXSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4wOTc4OTJdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMDk3OTY1XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4wOTgwMTVdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxMzQuMDk4ODczXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxMzQuMDk5MzA1XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTM0LjA5OTM1Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjA5OTM4Ml0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4w
OTk0NjNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTM0LjA5OTUxM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFi
MjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4wOTk1NjNdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTM0LjA5OTU2NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBv
ZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xMDAyMzJdIHBjaWVwb3J0IDAw
MDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4xMDA2ODddIGFtZGdwdSAwMDAwOjAzOjAwLjA6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTAwNzM4XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
IGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMzQuMTAwNzY3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTM0LjEwMDkyMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMzQuMTAwOTY5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAK
WyAgMTM0LjEwMDk5NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMzQuMTAxMDQ1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjEw
MTY5MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVy
cm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjEwMjE1NV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMDIyMjhdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMDIyNzZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTAyNDM3XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMDI0NjNdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0w
MDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTAyNTUzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMDI2NjhdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRl
ZCBmaXJzdApbICAxMzQuMTAzMzMyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxMzQuMTAzNzQ3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJp
dHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAg
MTM0LjEwMzc5N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjEwMzg0N10gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMDM5Mjhd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEw
Mzk3OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVy
cm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMDQwMDRdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0
LjEwNDA1M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlz
IEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xMDQ3MDFdIHBjaWVwb3J0IDAwMDA6MDA6
MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZy
b20gMDAwMDowMzowMC4xClsgIDEzNC4xMDUxNTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUg
QnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwg
KFJlY2VpdmVyIElEKQpbICAxMzQuMTA1MTgxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmlj
ZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQu
MTA1MjMxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTM0LjEwNTMzNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMzQuMTA1NDA5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZp
Y2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0
LjEwNTQ4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMzQuMTA1NTc5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVS
OiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjEwNjM3Nl0g
cGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1l
c3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjEwNjg0OV0gYW1kZ3B1IDAw
MDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRy
YW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMDY4OTldIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEzNC4xMDY5NDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTA3MDMwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMDcwNzldIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxMzQuMTA3MTI5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMDcxNTRdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJz
dApbICAxMzQuMTA3ODI1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQu
MTA4MzI3XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29y
cmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEw
ODM1M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjEwODQwM10gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMDg0ODRdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEwODUzNF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMDg1NTldIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEwODU4
NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xMDkyNzhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDEzNC4xMDk4NzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxMzQuMTA5OTI1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTA5OTUx
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTM0LjExMDA1Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMzQuMTEwMDgxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjExMDEw
N10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxMzQuMTEwMTM0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjExMDg1M10gcGNpZXBv
cnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2Ug
cmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjExMTI4N10gYW1kZ3B1IDAwMDA6MDM6
MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0
aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMTEzMzZdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEzNC4xMTEzODVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMzQuMTExNDY3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMTE1MTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxMzQuMTExNTQyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBO
b25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMTE1OTFdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAx
MzQuMTEyMjA3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMTEyNjIz
XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjExMjY0OV0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjExMjY3NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMTI3NTVdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjExMjc4MV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMTI4MDddIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjExMjg1NV0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJl
cG9ydGVkIGZpcnN0ClsgIDEzNC4xMTM0NDNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDEzNC4xMTQxMDhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxMzQuMTE0MTgxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTE0MjMxXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEx
NDQwNl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MzQuMTE0NTIwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjExNDU2MF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxMzQuMTE0NjEwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjExNTI3MV0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjExNTY3N10gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
UENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExh
eWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMTU3MjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
ZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEzNC4xMTU3NTNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMzQuMTE1ODU4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEzNC4xMTU4ODRdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAg
IGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApb
ICAxMzQuMTE1OTEwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRh
bEVyciAgICAgICAgICAgClsgIDEzNC4xMTU5NjBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMTE2
NTAxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMTE3MDAyXSBhbWRn
cHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5
cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjExNzAyN10gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTM0LjExNzA1M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMTcxMzRdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjExNzE1OV0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMTcyMDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjExNzIzNV0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVk
IGZpcnN0ClsgIDEzNC4xMTc4NDVdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBs
ZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsg
IDEzNC4xMTgzODhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
MzQuMTE4NDE1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTE4NDQzXSBhbWRncHUgMDAw
MDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjExODY5OV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTE4
NzQ5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJy
b3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjExODc3Nl0gc25kX2hkYV9p
bnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQu
MTE4ODI1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMg
QWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjExOTQ1NF0gcGNpZXBvcnQgMDAwMDowMDow
MS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJv
bSAwMDAwOjAzOjAwLjEKWyAgMTM0LjExOTg4M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBC
dXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAo
UmVjZWl2ZXIgSUQpClsgIDEzNC4xMTk5MzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNl
IFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4x
MTk5ODNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMzQuMTIwMDY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEzNC4xMjAxMTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmlj
ZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQu
MTIwMTYzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAg
ICAgICAgICAgClsgIDEzNC4xMjAyMTJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6
ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMTIwNzk3XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMTIxMjI1XSBhbWRncHUgMDAw
MDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJh
bnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEyMTI1MV0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTM0LjEyMTMwMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMjEzODJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEyMTQwOF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAw
LzAwMDAwMDAwClsgIDEzNC4xMjE0NTddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBb
MTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEyMTQ4M10gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0
ClsgIDEzNC4xMjIxMTFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3Jy
ZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4x
MjI3NjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3Jy
ZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTIy
ODM3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTIyODYzXSBhbWRncHUgMDAwMDowMzow
MC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEyMjk0NV0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTIyOTc1XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjEyMzAwMl0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTIzMDI4
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQg
aXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjEyMzY4MV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBB
RVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAw
OjAzOjAwLjEKWyAgMTM0LjEyNDExNF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDEzNC4xMjQxNDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMjQxNjZd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
MzQuMTI0Mjk0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEzNC4xMjQzMjBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTI0MzIx
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDEzNC4xMjQzNDddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMTI0OTc0XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMTI1Mzk4XSBhbWRncHUgMDAwMDowMzow
MC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rp
b24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEyNTQ0OF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTM0LjEyNTQ3M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVy
ciAgICAgICAgICAgClsgIDEzNC4xMjU1NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEyNTYwNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAw
MDAwClsgIDEzNC4xMjU2MzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEyNTcwM10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEz
NC4xMjY1MTddIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4xMjcxMDZd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTI3MTMyXSBh
bWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTI3MTU4XSBhbWRncHUgMDAwMDowMzowMC4wOiAg
ICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEyNzI2NF0gc25kX2hkYV9pbnRl
bCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTI3MjkwXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21h
c2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjEyNzMxN10gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTI3MzY2XSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVw
b3J0ZWQgZmlyc3QKWyAgMTM0LjEyODAxNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11
bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAw
LjEKWyAgMTM0LjEyODQ3Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDEzNC4xMjg1MjJdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMjg1NDhdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTI4
NjMwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEz
NC4xMjg2NTVdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTI4NjgyXSBzbmRf
aGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsg
IDEzNC4xMjg3MzFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2Yg
dGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMTI5MzQ2XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMTI5ODY5XSBhbWRncHUgMDAwMDowMzowMC4wOiBQ
Q0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5
ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjEyOTk2OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBk
ZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTM0LjEzMDAxOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAg
ICAgICAgClsgIDEzNC4xMzAxNzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTM0LjEzMDIyN10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
ZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsg
IDEzNC4xMzAyNzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTM0LjEzMDQyNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xMzEx
ODFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJv
ciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4xMzE2NTldIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTMxNzEzXSBhbWRncHUg
MDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMzQuMTMxNzM5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNd
IE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEzMTg0NF0gc25kX2hkYV9pbnRlbCAwMDAw
OjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTMxODcwXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAw
MDIwMDAvMDAwMDAwMDAKWyAgMTM0LjEzMTg5Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTMxOTI0XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQg
Zmlyc3QKWyAgMTM0LjEzMjQ5NF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxl
IENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAg
MTM0LjEzMzAwMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5
PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEz
NC4xMzMwNTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMzMwNzZdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTMzMTM1XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMzMx
NjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJv
ciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTMzMTg3XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4x
MzMyMzddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBB
Z2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxMzQuMTMzODkzXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxMzQuMTM0Mjk4XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTM0LjEzNDQyMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjEz
NDQ3M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDEzNC4xMzQ2MzJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTM0LjEzNDY4Ml0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4x
MzQ3MDhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTM0LjEzNDczNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xMzUzNjNdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4xMzU3NzBdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFu
c2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTM1ODE5XSBhbWRncHUgMDAwMDow
MzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMzQuMTM1ODY5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTM0LjEzNTk1MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAw
LjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTM1OTc3XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAv
MDAwMDAwMDAKWyAgMTM0LjEzNjAwM10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsx
M10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTM2MDI5XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QK
WyAgMTM0LjEzNjYxNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJl
Y3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjEz
NjkwOF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJl
Y3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMzY5
MTBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMzY5MTJdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTM2OTIzXSBzbmRfaGRh
X2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xMzY5MjRdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0
dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTM2OTI2XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xMzY5Mjhd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBp
cyByZXBvcnRlZCBmaXJzdApbICAxMzQuMTM3NTYwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxMzQuMTM4MDM2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTM0LjEzODA4NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6
NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjEzODEzNV0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEz
NC4xMzgyNDBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTM0LjEzODM4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xMzg0MTBd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTM0LjEzODQ2MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xMzkyNjhdIHBjaWVwb3J0
IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJl
Y2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4xMzk2OTldIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlv
biBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTM5NzI1XSBhbWRncHUgMDAwMDowMzowMC4w
OiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMzQuMTM5NzUyXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTM0LjEzOTg1Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTM5ODgyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAw
MDAKWyAgMTM0LjEzOTkwOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9u
RmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTM5OTU3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0
LjE0MDUxNF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxl
IGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjE0MDk0NF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxl
LCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNDA5NzBdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNr
PTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xNDEwMjBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTQxMTAxXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNDExMjddIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFz
az0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTQxMTUzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xNDExODBdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBv
cnRlZCBmaXJzdApbICAxMzQuMTQxNzQ3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxMzQuMTQyMjEwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTM0LjE0MjI2MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0g
ZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjE0MjY1NF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xNDI3
NjBdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0
LjE0Mjc4Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhd
IGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xNDI4MTJdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTM0LjE0MjgzOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0
aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xNDM1MzRdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDEzNC4xNDM5OTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBD
SWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXll
ciwgKFJlY2VpdmVyIElEKQpbICAxMzQuMTQ0MDcxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRl
dmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAx
MzQuMTQ0MTQ0XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAg
ICAgICAKWyAgMTM0LjE0NDI1MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMzQuMTQ0Mjc1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBk
ZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAg
MTM0LjE0NDMwMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxF
cnIgICAgICAgICAgIApbICAxMzQuMTQ0MzI3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
QUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjE0NDky
MV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjE0NTM3NV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBl
PVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNDU0MjVdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAy
MDAwLzAwMDAwMDAwClsgIDEzNC4xNDU0OThdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxMzQuMTQ1NjAzXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNDU2MDVdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAw
MjAwMC8wMDAwMDAwMApbICAxMzQuMTQ1NjMxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTog
ICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xNDU2ODJdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBm
aXJzdApbICAxMzQuMTQ2MjczXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
MzQuMTQ2ODMxXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9
Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0
LjE0Njg4MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Ig
c3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjE0NjkwOF0gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xNDcwMTRdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjE0NzA0
MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9y
IHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xNDcwNjZdIHNuZF9oZGFfaW50
ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjE0
NzExNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFn
ZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xNDc3MjNdIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20g
MDAwMDowMzowMC4xClsgIDEzNC4xNDgxNzVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVz
IEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJl
Y2VpdmVyIElEKQpbICAxMzQuMTQ4MjQ5XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBb
MTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTQ4
Mjc1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAK
WyAgMTM0LjE0ODMzMV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMzQuMTQ4MzU3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2Ug
WzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjE0
ODM4M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAg
ICAgICAgIApbICAxMzQuMTQ4NDMyXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAg
IEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjE0ODk5MV0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3Nh
Z2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjE0OTQ0N10gYW1kZ3B1IDAwMDA6
MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5z
YWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNDk1MjBdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAw
MDAwMDAwClsgIDEzNC4xNDk1NDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0
YWxFcnIgICAgICAgICAgIApbICAxMzQuMTQ5NjUxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAu
MTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNDk3MDJdIHNuZF9oZGFfaW50ZWwgMDAwMDow
MzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8w
MDAwMDAwMApbICAxMzQuMTQ5NzI4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEz
XSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xNDk3NzhdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApb
ICAxMzQuMTUwNjU3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxMzQuMTUx
MTEyXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVj
dGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjE1MTEz
OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVz
L21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjE1MTIxNF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xNTEzMThdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUs
IHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTM0LjE1MTM0NF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1
cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDEzNC4xNTEzNzFdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0LjE1MTQyMF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlz
IHJlcG9ydGVkIGZpcnN0ClsgIDEzNC4xNTIwNDldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVS
OiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDow
MzowMC4xClsgIDEzNC4xNTI1MzFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9y
OiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVy
IElEKQpbICAxMzQuMTUyNTgxXSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3
M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxMzQuMTUyNjMzXSBh
bWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTM0
LjE1MjcxNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxMzQuMTUyNzY0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTM0LjE1MjgxNF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxMzQuMTUyODY1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9y
IG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTM0LjE1MzQ4N10gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVj
ZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTM0LjE1MzkzOV0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9u
IExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNTM5ODhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDEzNC4xNTQwMzddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIg
ICAgICAgICAgIApbICAxMzQuMTU0MTY1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJ
ZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVy
LCAoUmVjZWl2ZXIgSUQpClsgIDEzNC4xNTQxOTFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAw
MApbICAxMzQuMTU0MjE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25G
YXRhbEVyciAgICAgICAgICAgClsgIDEzNC4xNTQyNjZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzow
MC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdAo=

--_003_BL1PR12MB5849F0606930076AC8CC66ADE75B2BL1PR12MB5849namp_
Content-Type: text/plain; name="rebar_xl_dmesg.txt"
Content-Description: rebar_xl_dmesg.txt
Content-Disposition: attachment; filename="rebar_xl_dmesg.txt"; size=21279;
	creation-date="Thu, 14 Nov 2024 03:18:55 GMT";
	modification-date="Thu, 14 Nov 2024 06:11:45 GMT"
Content-Transfer-Encoding: base64

IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgIF9fXyAgICAgICAgICAgICAgICAgICAg
IF8gICAgICAgIF8gICAgIF8KIFwgXC8gL19fXyBfIF9fICAgfCB8fCB8ICB8X19fIFwgLyBfIFwg
ICAgXyAgIF8gXyBfXyAgX19ffCB8XyBfXyBffCB8X18gfCB8IF9fXwogIFwgIC8vIF8gXCAnXyBc
ICB8IHx8IHxfICAgX18pIHwgfCB8IHxfX3wgfCB8IHwgJ18gXC8gX198IF9fLyBfYCB8ICdfIFx8
IHwvIF8gXAogIC8gIFwgIF9fLyB8IHwgfCB8X18gICBffCAvIF9fL3wgfF98IHxfX3wgfF98IHwg
fCB8IFxfXyBcIHx8IChffCB8IHxfKSB8IHwgIF9fLwogL18vXF9cX19ffF98IHxffCAgICB8X3wo
XylfX19fX3xcX19fLyAgICBcX18sX3xffCB8X3xfX18vXF9fXF9fLF98Xy5fXy98X3xcX19ffAoK
KFhFTikgWGVuIHZlcnNpb24gNC4yMC11bnN0YWJsZSAoY2pxQCkgKGdjYyAoVWJ1bnR1IDExLjQu
MC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4wKSBkZWJ1Zz15IFRodSBOb3YgMTQgMTA6NTg6MjMgQ1NU
IDIwMjQKKFhFTikgTGF0ZXN0IENoYW5nZVNldDogVGh1IE5vdiAxNCAxMDo1MjoyMSAyMDI0ICsw
ODAwIGdpdDo0OWUwOTdkOTMzCihYRU4pIGJ1aWxkLWlkOiAwYzRmMmM3MTVkOTE4MDdiZjUxYjk1
Mzc5Mzk1MWFlMzgzYjM4MWUwCihYRU4pIEJvb3Rsb2FkZXI6IEdSVUIgMi4wNi0ydWJ1bnR1MTQu
NAooWEVOKSBDb21tYW5kIGxpbmU6IHBsYWNlaG9sZGVyIGRvbTA9cHZoIGRvbTBfbWVtPTZHIGxv
Z2x2bD1hbGwgbm8tcmVhbC1tb2RlIGVkZD1vZmYKKFhFTikgWGVuIGltYWdlIGxvYWQgYmFzZSBh
ZGRyZXNzOiAweGM2YzAwMDAwCihYRU4pIFZpZGVvIGluZm9ybWF0aW9uOgooWEVOKSAgVkdBIGlz
IGdyYXBoaWNzIG1vZGUgMjU2MHgxNDQwLCAzMiBicHAKKFhFTikgRGlzYyBpbmZvcm1hdGlvbjoK
KFhFTikgIEZvdW5kIDAgTUJSIHNpZ25hdHVyZXMKKFhFTikgIEZvdW5kIDEgRUREIGluZm9ybWF0
aW9uIHN0cnVjdHVyZXMKKFhFTikgQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkgMjMgKDB4MTcpLCBN
b2RlbCA5NiAoMHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkKKFhFTikgRUZJIFJBTSBt
YXA6CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAwMDA5ZWZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwMDAwMDlmMDAwLCAwMDAwMDAwMDAwMGJmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAwMDAwMDAwOWFmZmZmZl0gKHVzYWJsZSkKKFhFTikg
IFswMDAwMDAwMDA5YjAwMDAwLCAwMDAwMDAwMDA5ZGZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBb
MDAwMDAwMDAwOWUwMDAwMCwgMDAwMDAwMDAwOWVmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAw
MDAwMDA5ZjAwMDAwLCAwMDAwMDAwMDA5ZjBmZmZmXSAoQUNQSSBOVlMpCihYRU4pICBbMDAwMDAw
MDAwOWYxMDAwMCwgMDAwMDAwMDBiYjQ2NWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGJi
NDY2MDAwLCAwMDAwMDAwMGJjNTY1ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBiYzU2
NjAwMCwgMDAwMDAwMDBjODc3ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGM4NzdmMDAw
LCAwMDAwMDAwMGNhZjdlZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBjYWY3ZjAwMCwg
MDAwMDAwMDBjY2Y3ZWZmZl0gKEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwY2NmN2YwMDAsIDAw
MDAwMDAwY2NmZmVmZmZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAwMDAwMDBjY2ZmZjAwMCwgMDAw
MDAwMDBjY2ZmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGNkMDAwMDAwLCAwMDAwMDAw
MGNkZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBm
N2ZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmRlMDAwMDAsIDAwMDAwMDAwZmRl
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAx
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZm
Zl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVjMjAwMDAsIDAwMDAwMDAwZmVjMjBmZmZd
IChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDgwMDAwLCAwMDAwMDAwMGZlZDgxZmZmXSAo
cmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWRjMDAwMCwgMDAwMDAwMDBmZWRkZmZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVlMDAwMDAsIDAwMDAwMDAwZmVlMDBmZmZdIChyZXNl
cnZlZCkKKFhFTikgIFswMDAwMDAwMGZmMDAwMDAwLCAwMDAwMDAwMGZmZjFmZmZmXSAocmVzZXJ2
ZWQpCihYRU4pICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAwMDAwMDgwZjMzZmZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwODBmMzQwMDAwLCAwMDAwMDAwODJmZmZmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pIEJTUCBtaWNyb2NvZGUgcmV2aXNpb246IDB4MDg2MDAxMDkKKFhFTikgQUNQSTogUlNEUCBD
Q0ZGRTAxNCwgMDAyNCAocjIgQU1EICAgKQooWEVOKSBBQ1BJOiBYU0RUIENDRkRFMTg4LCAwMTU0
IChyMSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDIgICAgICAgMTAwMDAxMykKKFhFTikgQUNQSTog
RkFDUCBDQ0ZFNjAwMCwgMDExNCAocjYgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAg
NDAwMDApCihYRU4pIEFDUEk6IERTRFQgQ0NGRDQwMDAsIDkwQkYgKHIxIEFNRCAgICBDZWxhZG9u
ICAgICAgICAgMiBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBGQUNTIENDRUYxMDAwLCAwMDQw
CihYRU4pIEFDUEk6IFVFRkkgQ0NGN0UwMDAsIDAyMzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkY1MDAwLCA3MjNDIChyMiBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogSVZSUyBD
Q0ZGNDAwMCwgMDFBNCAocjIgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IFNTRFQgQ0NGRjAwMDAsIDM3NEEgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVGMDAwLCAwMjI4IChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQkVSVCBD
Q0ZFRTAwMCwgMDAzMCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEVJTkogQ0NGRUMwMDAsIDAxNTAgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVCMDAwLCAwNDZEIChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogVFBNMiBD
Q0ZFQTAwMCwgMDAzNCAocjQgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEFTRiEgQ0NGRTgwMDAsIDAwQTUgKHIzMiBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQk9PVCBDQ0ZFNzAwMCwgMDAyOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IEhQRVQg
Q0NGRTUwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBBUElDIENDRkU0MDAwLCAwMTM4IChyNCBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogTUNGRyBDQ0ZFMzAwMCwgMDAzQyAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNMSUMg
Q0NGRTIwMDAsIDAxNzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBXU01UIENDRkRGMDAwLCAwMDI4IChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCBDQ0ZGRDAwMCwgMDA4MCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQg
Q0NGQzUwMDAsIDAxNjQgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgMTAwMCBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBTU0RUIENDRkMyMDAwLCAyQjgwIChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQ1JBVCBDQ0ZDMTAwMCwgMEJBOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IENESVQg
Q0NGQzAwMDAsIDAwMjkgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBWRkNUIENDRkE3MDAwLCAxOENBMCAocjEgQU1EICAgIENlbGFkb24gICAg
ICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRDMwMDAsIDAxMzkgKHIx
IEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBIRVNU
IENDRjk2MDAwLCAxMDg3NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRUQwMDAsIDAyOEQgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkQyMDAwLCAwRDM3IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZEMDAwMCwgMTBBQiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0YwMDAsIDAxNzkgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkNEMDAwLCAxNTRGIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZDQjAwMCwgMTBCMyAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0EwMDAsIDAxQzAgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkM2MDAwLCAzMEM4IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogRlBE
VCBDQ0Y5NTAwMCwgMDA0NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IEJHUlQgQ0NGOTQwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkUxMDAwLCAwMDdEIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZFMDAwMCwgMEY5NiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGOTMwMDAsIDA1MTcgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBTeXN0ZW0gUkFNOiAzMjEwMk1CICgzMjg3Mjc2
NGtCKQooWEVOKSBObyBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKKFhFTikgRmFraW5nIGEgbm9k
ZSBhdCAwMDAwMDAwMDAwMDAwMDAwLTAwMDAwMDA4MGYzNDAwMDAKKFhFTikgRG9tYWluIGhlYXAg
aW5pdGlhbGlzZWQKKFhFTikgdmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDAwMDAwMGZjNzAwMDAw
MDAsIG1hcHBlZCB0byAweGZmZmY4MmMwMDAyMDMwMDAsIHVzaW5nIDE0NDAwaywgdG90YWwgMTQ0
MDBrCihYRU4pIHZlc2FmYjogbW9kZSBpcyAyNTYweDE0NDB4MzIsIGxpbmVsZW5ndGg9MTAyNDAs
IGZvbnQgOHgxNgooWEVOKSB2ZXNhZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0y
NDoxNjo4OjAKKFhFTikgU01CSU9TIDMuMSBwcmVzZW50LgooWEVOKSBVc2luZyBBUElDIGRyaXZl
ciBkZWZhdWx0CihYRU4pIEFDUEk6IFBNLVRpbWVyIElPIFBvcnQ6IDB4NDA4ICgzMiBiaXRzKQoo
WEVOKSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6MF0sIHN0YXR1c1swOjBdCihYRU4p
IEFDUEk6IFNMRUVQIElORk86IHBtMXhfY250WzE6NDA0LDE6MF0sIHBtMXhfZXZ0WzE6NDAwLDE6
MF0KKFhFTikgQUNQSTogMzIvNjRYIEZBQ1MgYWRkcmVzcyBtaXNtYXRjaCBpbiBGQURUIC0gY2Nl
ZjEwMDAvMDAwMDAwMDAwMDAwMDAwMCwgdXNpbmcgMzIKKFhFTikgQUNQSTogICAgICAgICAgICAg
d2FrZXVwX3ZlY1tjY2VmMTAwY10sIHZlY19zaXplWzIwXQooWEVOKSBBQ1BJOiBMb2NhbCBBUElD
IGFkZHJlc3MgMHhmZWUwMDAwMAooWEVOKSBPdmVycmlkaW5nIEFQSUMgZHJpdmVyIHdpdGggYmln
c21wCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBnc2lf
YmFzZVswXSkKKFhFTikgSU9BUElDWzBdOiBhcGljX2lkIDMzLCB2ZXJzaW9uIDMzLCBhZGRyZXNz
IDB4ZmVjMDAwMDAsIEdTSSAwLTIzCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMl0gYWRkcmVz
c1sweGZlYzAxMDAwXSBnc2lfYmFzZVsyNF0pCihYRU4pIElPQVBJQ1sxXTogYXBpY19pZCAzNCwg
dmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUKKFhFTikgQUNQSTogSU5U
X1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMCBnbG9iYWxfaXJxIDIgZGZsIGRmbCkKKFhFTikgQUNQ
STogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgOSBnbG9iYWxfaXJxIDkgbG93IGxldmVsKQoo
WEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTIgdXNlZCBi
eSBvdmVycmlkZS4KKFhFTikgQUNQSTogSVJROSB1c2VkIGJ5IG92ZXJyaWRlLgooWEVOKSBBQ1BJ
OiBIUEVUIGlkOiAweDEwMjI4MjEwIGJhc2U6IDB4ZmVkMDAwMDAKKFhFTikgUENJOiBNQ0ZHIGNv
bmZpZ3VyYXRpb24gMDogYmFzZSBmMDAwMDAwMCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSA3Zgoo
WEVOKSBQQ0k6IE1DRkcgYXJlYSBhdCBmMDAwMDAwMCByZXNlcnZlZCBpbiBFODIwCihYRU4pIFBD
STogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03ZgooWEVOKSBIRVNUOiBUYWJs
ZSBwYXJzaW5nIGhhcyBiZWVuIGluaXRpYWxpemVkCihYRU4pIEFDUEk6IEJHUlQ6IGludmFsaWRh
dGluZyB2MSBpbWFnZSBhdCAweGMzMmIwMDAwCihYRU4pIFVzaW5nIEFDUEkgKE1BRFQpIGZvciBT
TVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgooWEVOKSBTTVA6IEFsbG93aW5nIDE2IENQVXMg
KDQgaG90cGx1ZyBDUFVzKQooWEVOKSBJUlEgbGltaXRzOiA1NiBHU0ksIDI0NDAgTVNJL01TSS1Y
CihYRU4pIFplbmJsZWVkIG1pdGlnYXRpb24gLSB1c2luZyBjaGlja2VuYml0CihYRU4pIENQVTA6
IDE0MDAgLi4uIDMwMDAgTUh6CihYRU4pIHhzdGF0ZTogc2l6ZTogMHgzODAgYW5kIHN0YXRlczog
MHgyMDcKKFhFTikgQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFi
bGVkCihYRU4pIFNwZWN1bGF0aXZlIG1pdGlnYXRpb24gZmFjaWxpdGllczoKKFhFTikgICBIYXJk
d2FyZSBoaW50czogSUJSU19GQVNUIElCUlNfU0FNRV9NT0RFCihYRU4pICAgSGFyZHdhcmUgZmVh
dHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JECihYRU4pICAgQ29tcGlsZWQtaW4gc3VwcG9ydDog
SU5ESVJFQ1RfVEhVTksgU0hBRE9XX1BBR0lORyBIQVJERU5fQVJSQVkgSEFSREVOX0JSQU5DSCBI
QVJERU5fR1VFU1RfQUNDRVNTIEhBUkRFTl9MT0NLCihYRU4pICAgWGVuIHNldHRpbmdzOiBCVEkt
VGh1bms6IFJFVFBPTElORSwgU1BFQ19DVFJMOiBJQlJTLSBTVElCUCsgU1NCRC0sIE90aGVyOiBC
UkFOQ0hfSEFSREVOCihYRU4pICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNSX1NQRUNfQ1RSTCBN
U1JfVklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkKKFhFTikgICBTdXBwb3J0IGZvciBQViBW
TXM6IElCUEItZW50cnkKKFhFTikgICBYUFRJICg2NC1iaXQgUFYgb25seSk6IERvbTAgZGlzYWJs
ZWQsIERvbVUgZGlzYWJsZWQgKHdpdGhvdXQgUENJRCkKKFhFTikgICBQViBMMVRGIHNoYWRvd2lu
ZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZAooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNN
UCBDcmVkaXQgU2NoZWR1bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIEluaXRpYWxpemluZyBDcmVk
aXQyIHNjaGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2Fk
X3dpbmRvd19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAoo
WEVOKSAgb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJy
YW5nZW1lbnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1z
CihYRU4pIGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIFBs
YXRmb3JtIHRpbWVyIGlzIDE0LjMxOE1IeiBIUEVUCihYRU4pIERldGVjdGVkIDI5OTQuMzg0IE1I
eiBwcm9jZXNzb3IuCihYRU4pIEZyZWVkIDEwMjBrQiB1bnVzZWQgQlNTIG1lbW9yeQooWEVOKSBF
RkkgbWVtb3J5IG1hcDoKKFhFTikgIDAwMDAwMDAwMDAwMDAtMDAwMDAwMDAwM2ZmZiB0eXBlPTIg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAwMDA0MDAwLTAwMDAwMDAwOGVmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwMDA4ZjAwMC0wMDAwMDAw
MDllZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDAwOWYwMDAt
MDAwMDAwMDA5ZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAw
MTAwMDAwLTAwMDAwMDRhYzZmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDAwNGFjNzAwMC0wMDAwMDA5YWZmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwMDliMDAwMDAtMDAwMDAwOWRmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMDA5ZTAwMDAwLTAwMDAwMDllZmZmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwOWYwMDAwMC0wMDAwMDA5ZjBmZmZmIHR5cGU9MTAg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDA5ZjEwMDAwLTAwMDAwNzhhMzdmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA3OGEzODAwMC0wMDAwMDdm
ZmZlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwN2ZmZmYwMDAt
MDAwMDBiNmU4OGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI2
ZTg5MDAwLTAwMDAwYjcxMDNmZmYgdHlwZT0xIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDBiNzEwNDAwMC0wMDAwMGI3MzdlZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwYjczN2YwMDAtMDAwMDBiNzM5ZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMGI3MzlmMDAwLTAwMDAwYjczZjdmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiNzNmODAwMC0wMDAwMGI3NjE5ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYjc2MWEwMDAtMDAwMDBiNzY2N2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI3NjY4MDAwLTAwMDAwYmFm
ODZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYWY4NzAwMC0w
MDAwMGJhZmE1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmFm
YTYwMDAtMDAwMDBiYWZmN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAw
MDAwMGJhZmY4MDAwLTAwMDAwYmIwNWRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgoo
WEVOKSAgMDAwMDBiYjA1ZTAwMC0wMDAwMGJiNDY1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYKKFhFTikgIDAwMDAwYmI0NjYwMDAtMDAwMDBiYzU2NWZmZiB0eXBlPTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTY2MDAwLTAwMDAwYmM1NmZmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzU3MDAwMC0wMDAwMGJjNTc5ZmZmIHR5
cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmM1N2EwMDAtMDAwMDBiYzU3
Y2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTdkMDAwLTAw
MDAwYmM2YThmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzZh
OTAwMC0wMDAwMGJjNzdlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAw
MDAwYmM3N2YwMDAtMDAwMDBjMzE2MGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihY
RU4pICAwMDAwMGMzMTYxMDAwLTAwMDAwYzMyYTFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZgooWEVOKSAgMDAwMDBjMzJhMjAwMC0wMDAwMGMzMmFiZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzMyYWMwMDAtMDAwMDBjMzJhY2ZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGMzMmFkMDAwLTAwMDAwYzMyYWRmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjMzJhZTAwMC0wMDAwMGM2Nzdl
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzY3N2YwMDAtMDAw
MDBjNmRmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGM2ZTAw
MDAwLTAwMDAwYzcxZjdmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDBjNzFmODAwMC0wMDAwMGM3MzdhZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwYzczN2IwMDAtMDAwMDBjODc3ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmCihYRU4pICAwMDAwMGM4NzdmMDAwLTAwMDAwYzhmN2VmZmYgdHlwZT01IGF0dHI9ODAwMDAw
MDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjOGY3ZjAwMC0wMDAwMGM5ZjdlZmZmIHR5cGU9NiBhdHRy
PTgwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzlmN2YwMDAtMDAwMDBjYWY3ZWZmZiB0eXBl
PTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNhZjdmMDAwLTAwMDAwY2NmN2Vm
ZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwY2NmN2YwMDAtMDAw
MDBjY2ZmZWZmZiB0eXBlPTkgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNjZmZm
MDAwLTAwMDAwY2NmZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDEwMDAwMDAwMC0wMDAwODBmMzNmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwMDAwYTAwMDAtMDAwMDAwMDBiZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAw
MDAwCihYRU4pICAwMDAwMGNkMDAwMDAwLTAwMDAwY2RmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAw
MDAwMDAwMDAwMAooWEVOKSAgMDAwMDBmMDAwMDAwMC0wMDAwMGY3ZmZmZmZmIHR5cGU9MTEgYXR0
cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZkZTAwMDAwLTAwMDAwZmRlZmZmZmYgdHlw
ZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmVjMDAwMDAtMDAwMDBmZWMw
MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDBmZWMxMDAwMC0w
MDAwMGZlYzEwZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZl
YzIwMDAwLTAwMDAwZmVjMjBmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikg
IDAwMDAwZmVkODAwMDAtMDAwMDBmZWQ4MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAw
MQooWEVOKSAgMDAwMDBmZWRjMDAwMC0wMDAwMGZlZGRmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAw
MDAwMDAwMDAxCihYRU4pICAwMDAwMGZlZTAwMDAwLTAwMDAwZmVlMDBmZmYgdHlwZT0xMSBhdHRy
PTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmYwMDAwMDAtMDAwMDBmZmYxZmZmZiB0eXBl
PTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDgwZjM0MDAwMC0wMDAwODJmZmZm
ZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMDAKKFhFTikgYWx0IHRhYmxlIGZmZmY4MmQw
NDA0OWMxYjggLT4gZmZmZjgyZDA0MDRhZWNhNAooWEVOKSBBTUQtVmk6IElPTU1VIEV4dGVuZGVk
IEZlYXR1cmVzOgooWEVOKSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVlc3QKKFhFTikg
LSB4MkFQSUMKKFhFTikgLSBOWCBiaXQKKFhFTikgLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kCihY
RU4pIC0gR3Vlc3QgQVBJQwooWEVOKSAtIFBlcmZvcm1hbmNlIENvdW50ZXJzCihYRU4pIC0gSG9z
dCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNpemU6IDB4MgooWEVOKSAtIEd1ZXN0IEFkZHJlc3MgVHJh
bnNsYXRpb24gU2l6ZTogMAooWEVOKSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAweDEK
KFhFTikgLSBNYXhpbXVtIFBBU0lEOiAweGYKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyOiAw
eDEKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAweDEKKFhFTikgLSBHdWVzdCBW
aXJ0dWFsIEFQSUMgTW9kZXM6IDB4MQooWEVOKSAtIER1YWwgUFBSIExvZzogMHgyCihYRU4pIC0g
RHVhbCBFdmVudCBMb2c6IDB4MgooWEVOKSAtIFVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVj
dGlvbgooWEVOKSAtIERldmljZSBUYWJsZSBTZWdtZW50YXRpb246IDB4MwooWEVOKSAtIFBQUiBM
b2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZwooWEVOKSAtIFBQUiBBdXRvbWF0aWMgUmVzcG9uc2UK
KFhFTikgLSBNZW1vcnkgQWNjZXNzIFJvdXRpbmcgYW5kIENvbnRyb2w6IDAKKFhFTikgLSBCbG9j
ayBTdG9wTWFyayBNZXNzYWdlCihYRU4pIC0gUGVyZm9ybWFuY2UgT3B0aW1pemF0aW9uCihYRU4p
IC0gTVNJIENhcGFiaWxpdHkgTU1JTyBBY2Nlc3MKKFhFTikgLSBHdWVzdCBJL08gUHJvdGVjdGlv
bgooWEVOKSAtIEVuaGFuY2VkIFBQUiBIYW5kbGluZwooWEVOKSAtIEF0dHJpYnV0ZSBGb3J3YXJk
CihYRU4pIC0gSW52YWxpZGF0ZSBJT1RMQiBUeXBlCihYRU4pIC0gVk0gVGFibGUgU2l6ZTogMAoo
WEVOKSAtIEd1ZXN0IEFjY2VzcyBCaXQgVXBkYXRlIERpc2FibGUKKFhFTikgQU1ELVZpOiBEaXNh
YmxlZCBIQVAgbWVtb3J5IG1hcCBzaGFyaW5nIHdpdGggSU9NTVUKKFhFTikgQU1ELVZpOiBJT01N
VSAwIEVuYWJsZWQuCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4pICAtIERv
bTAgbW9kZTogUmVsYXhlZAooWEVOKSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQKKFhFTikg
bnJfc29ja2V0czogMgooWEVOKSBFbmFibGluZyBBUElDIG1vZGUuICBVc2luZyAyIEkvTyBBUElD
cwooWEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMKKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
aG9kCihYRU4pIC4uVElNRVI6IHZlY3Rvcj0weEYwIGFwaWMxPTAgcGluMT0yIGFwaWMyPS0xIHBp
bjI9LTEKKFhFTikgV2FsbGNsb2NrIHNvdXJjZTogRUZJCihYRU4pIEFsbG9jYXRlZCBjb25zb2xl
IHJpbmcgb2YgMTI4IEtpQi4KKFhFTikgbXdhaXQtaWRsZTogZG9lcyBub3QgcnVuIG9uIGZhbWls
eSAyMyBtb2RlbCA5NgooWEVOKSBIVk06IEFTSURzIGVuYWJsZWQuCihYRU4pIFNWTTogU3VwcG9y
dGVkIGFkdmFuY2VkIGZlYXR1cmVzOgooWEVOKSAgLSBOZXN0ZWQgUGFnZSBUYWJsZXMgKE5QVCkK
KFhFTikgIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uCihYRU4pICAt
IE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQKKFhFTikgIC0gVk1DQiBDbGVhbiBCaXRzCihYRU4p
ICAtIFRMQiBmbHVzaCBieSBBU0lECihYRU4pICAtIERlY29kZUFzc2lzdHMKKFhFTikgIC0gVmly
dHVhbCBWTUxPQUQvVk1TQVZFCihYRU4pICAtIFZpcnR1YWwgR0lGCihYRU4pICAtIFBhdXNlLUlu
dGVyY2VwdCBGaWx0ZXIKKFhFTikgIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlciBUaHJlc2hvbGQK
KFhFTikgIC0gVFNDIFJhdGUgTVNSCihYRU4pICAtIE1TUl9TUEVDX0NUUkwgdmlydHVhbGlzYXRp
b24KKFhFTikgSFZNOiBTVk0gZW5hYmxlZAooWEVOKSBIVk06IEhhcmR3YXJlIEFzc2lzdGVkIFBh
Z2luZyAoSEFQKSBkZXRlY3RlZAooWEVOKSBIVk06IEhBUCBwYWdlIHNpemVzOiA0a0IsIDJNQiwg
MUdCCihYRU4pIGFsdCB0YWJsZSBmZmZmODJkMDQwNDljMWI4IC0+IGZmZmY4MmQwNDA0YWVjYTQK
KFhFTikgQnJvdWdodCB1cCAxMiBDUFVzCihYRU4pIFNjaGVkdWxpbmcgZ3JhbnVsYXJpdHk6IGNw
dSwgMSBDUFUgcGVyIHNjaGVkLXJlc291cmNlCihYRU4pIEluaXRpYWxpemluZyBDcmVkaXQyIHNj
aGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2FkX3dpbmRv
d19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAooWEVOKSAg
b3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJyYW5nZW1l
bnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1zCihYRU4p
IGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIEFkZGluZyBj
cHUgMCB0byBydW5xdWV1ZSAwCihYRU4pICBGaXJzdCBjcHUgb24gcnVucXVldWUsIGFjdGl2YXRp
bmcKKFhFTikgQWRkaW5nIGNwdSAxIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAyIHRv
IHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAzIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5n
IGNwdSA0IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA1IHRvIHJ1bnF1ZXVlIDAKKFhF
TikgQWRkaW5nIGNwdSA2IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA3IHRvIHJ1bnF1
ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA4IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA5
IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAxMCB0byBydW5xdWV1ZSAwCihYRU4pIEFk
ZGluZyBjcHUgMTEgdG8gcnVucXVldWUgMAooWEVOKSBtY2hlY2tfcG9sbDogTWFjaGluZSBjaGVj
ayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuCihYRU4pIFJ1bm5pbmcgc3R1YiByZWNvdmVyeSBzZWxm
dGVzdHMuLi4KKFhFTikgRml4dXAgI1VEWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJk
MDdmZmZlMDQ0XSAtPiBmZmZmODJkMDQwMzhjYzhjCihYRU4pIEZpeHVwICNHUFswMDAwXTogZmZm
ZjgyZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgyZDA0MDM4Y2M4YwooWEVO
KSBGaXh1cCAjU1NbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDQgW2ZmZmY4MmQwN2ZmZmUwNDRdIC0+
IGZmZmY4MmQwNDAzOGNjOGMKKFhFTikgRml4dXAgI0JQWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ1
IFtmZmZmODJkMDdmZmZlMDQ1XSAtPiBmZmZmODJkMDQwMzhjYzhjCihYRU4pIE5YIChFeGVjdXRl
IERpc2FibGUpIHByb3RlY3Rpb24gYWN0aXZlCihYRU4pICoqKiBCdWlsZGluZyBhIFBWSCBEb20w
ICoqKgooWEVOKSBEb20wIG1lbW9yeSBhbGxvY2F0aW9uIHN0YXRzOgooWEVOKSBvcmRlciAgMCBh
bGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgMSBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAg
MiBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRlciAgMyBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRl
ciAgNCBhbGxvY2F0aW9uczogNQooWEVOKSBvcmRlciAgNSBhbGxvY2F0aW9uczogNAooWEVOKSBv
cmRlciAgNiBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgNyBhbGxvY2F0aW9uczogNAooWEVO
KSBvcmRlciAgOCBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgOSBhbGxvY2F0aW9uczogNAoo
WEVOKSBvcmRlciAxMCBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAxMSBhbGxvY2F0aW9uczog
NAooWEVOKSBvcmRlciAxMiBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAxMyBhbGxvY2F0aW9u
czogNAooWEVOKSBvcmRlciAxNCBhbGxvY2F0aW9uczogMgooWEVOKSBvcmRlciAxNSBhbGxvY2F0
aW9uczogMwooWEVOKSBvcmRlciAxNiBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRlciAxNyBhbGxv
Y2F0aW9uczogMwooWEVOKSBvcmRlciAxOCBhbGxvY2F0aW9uczogMwooWEVOKSBFTEY6IHBoZHI6
IHBhZGRyPTB4MTAwMDAwMCBtZW1zej0weDE5NWY2MjgKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0w
eDJhMDAwMDAgbWVtc3o9MHg5NmYwMDAKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0weDMzNmYwMDAg
bWVtc3o9MHgzOTAwMAooWEVOKSBFTEY6IHBoZHI6IHBhZGRyPTB4MzNhODAwMCBtZW1zej0weDE0
NTgwMDAKKFhFTikgRUxGOiBtZW1vcnk6IDB4MTAwMDAwMCAtPiAweDQ4MDAwMDAKKFhFTikgRUxG
OiBub3RlOiBQSFlTMzJfUkVMT0MgYWxpZ246IDB4MjAwMDAwIG1pbjogMHgxMDAwMDAwIG1heDog
MHgzZmZmZmZmZgooWEVOKSBFTEY6IG5vdGU6IFBIWVMzMl9FTlRSWSA9IDB4MTAwMGEyMAooWEVO
KSBFTEY6IG5vdGU6IEdVRVNUX09TID0gImxpbnV4IgooWEVOKSBFTEY6IG5vdGU6IEdVRVNUX1ZF
UlNJT04gPSAiMi42IgooWEVOKSBFTEY6IG5vdGU6IFhFTl9WRVJTSU9OID0gInhlbi0zLjAiCihY
RU4pIEVMRjogbm90ZTogVklSVF9CQVNFID0gMHhmZmZmZmZmZjgwMDAwMDAwCihYRU4pIEVMRjog
bm90ZTogSU5JVF9QMk0gPSAweDgwMDAwMDAwMDAKKFhFTikgRUxGOiBub3RlOiBFTlRSWSA9IDB4
ZmZmZmZmZmY4MzNiYzYyMAooWEVOKSBFTEY6IG5vdGU6IEZFQVRVUkVTID0gIiF3cml0YWJsZV9w
YWdlX3RhYmxlcyIKKFhFTikgRUxGOiBub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiCihYRU4pIEVMRjog
bm90ZTogTDFfTUZOX1ZBTElECihYRU4pIEVMRjogbm90ZTogTU9EX1NUQVJUX1BGTiA9IDB4MQoo
WEVOKSBFTEY6IG5vdGU6IFBBRERSX09GRlNFVCA9IDAKKFhFTikgRUxGOiBub3RlOiBIWVBFUkNB
TExfUEFHRSA9IDB4ZmZmZmZmZmY4MWYzYTAwMAooWEVOKSBFTEY6IG5vdGU6IFNVUFBPUlRFRF9G
RUFUVVJFUyA9IDB4ODgwMQooWEVOKSBFTEY6IG5vdGU6IExPQURFUiA9ICJnZW5lcmljIgooWEVO
KSBFTEY6IG5vdGU6IFNVU1BFTkRfQ0FOQ0VMID0gMHgxCihYRU4pIEVMRjogRm91bmQgUFZIIGlt
YWdlCihYRU4pIEVMRjogYWRkcmVzc2VzOgooWEVOKSAgICAgdmlydF9iYXNlICAgICAgICA9IDB4
MAooWEVOKSAgICAgZWxmX3BhZGRyX29mZnNldCA9IDB4MAooWEVOKSAgICAgdmlydF9vZmZzZXQg
ICAgICA9IDB4MAooWEVOKSAgICAgdmlydF9rc3RhcnQgICAgICA9IDB4MTAwMDAwMAooWEVOKSAg
ICAgdmlydF9rZW5kICAgICAgICA9IDB4NDgwMDAwMAooWEVOKSAgICAgdmlydF9lbnRyeSAgICAg
ICA9IDB4MTAwMGEyMAooWEVOKSAgICAgcDJtX2Jhc2UgICAgICAgICA9IDB4ODAwMDAwMDAwMAoo
WEVOKSBFTEY6IHBoZHIgMCBhdCAweDEwMDAwMDAgLT4gMHgyOTVmNjI4CihYRU4pIEVMRjogcGhk
ciAxIGF0IDB4MmEwMDAwMCAtPiAweDMzNmYwMDAKKFhFTikgRUxGOiBwaGRyIDIgYXQgMHgzMzZm
MDAwIC0+IDB4MzNhODAwMAooWEVOKSBFTEY6IHBoZHIgMyBhdCAweDMzYTgwMDAgLT4gMHg0ODAw
MDAwCihYRU4pIERvbTAgbWVtb3J5IG1hcDoKKFhFTikgIFswMDAwMDAwMDAwMDAwMDAwLCAwMDAw
MDAwMDAwMDllZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDAwOWYwMDAsIDAwMDAwMDAw
MDAwYmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDAwMTAwMDAwLCAwMDAwMDAwMDA5
YWZmZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDliMDAwMDAsIDAwMDAwMDAwMDlkZmZm
ZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDA5ZTAwMDAwLCAwMDAwMDAwMDA5ZWZmZmZm
XSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDlmMDAwMDAsIDAwMDAwMDAwMDlmMGZmZmZdIChB
Q1BJIE5WUykKKFhFTikgIFswMDAwMDAwMDA5ZjEwMDAwLCAwMDAwMDAwMGJiNDY1ZmZmXSAodXNh
YmxlKQooWEVOKSAgWzAwMDAwMDAwYmI0NjYwMDAsIDAwMDAwMDAwYmM1NjVmZmZdIChyZXNlcnZl
ZCkKKFhFTikgIFswMDAwMDAwMGJjNTY2MDAwLCAwMDAwMDAwMGM4NzdlZmZmXSAodXNhYmxlKQoo
WEVOKSAgWzAwMDAwMDAwYzg3N2YwMDAsIDAwMDAwMDAwY2FmN2VmZmZdIChyZXNlcnZlZCkKKFhF
TikgIFswMDAwMDAwMGNhZjdmMDAwLCAwMDAwMDAwMGNjZjdlZmZmXSAoQUNQSSBOVlMpCihYRU4p
ICBbMDAwMDAwMDBjY2Y3ZjAwMCwgMDAwMDAwMDBjY2ZmZWZmZl0gKEFDUEkgZGF0YSkKKFhFTikg
IFswMDAwMDAwMGNjZmZmMDAwLCAwMDAwMDAwMGNjZmZmZGQ3XSAodXNhYmxlKQooWEVOKSAgWzAw
MDAwMDAwY2NmZmZkZDgsIDAwMDAwMDAwY2NmZmZlZWZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAw
MDAwMDBjZDAwMDAwMCwgMDAwMDAwMDBjZGZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAw
MDAwZjAwMDAwMDAsIDAwMDAwMDAwZjdmZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAw
MGZkZTAwMDAwLCAwMDAwMDAwMGZkZWZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBm
ZWMwMDAwMCwgMDAwMDAwMDBmZWMwMWZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVj
MTAwMDAsIDAwMDAwMDAwZmVjMTBmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzIw
MDAwLCAwMDAwMDAwMGZlYzIwZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWQ4MDAw
MCwgMDAwMDAwMDBmZWQ4MWZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVkYzAwMDAs
IDAwMDAwMDAwZmVkZGZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZTAwMDAwLCAw
MDAwMDAwMGZlZTAwZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZjAwMDAwMCwgMDAw
MDAwMDBmZmYxZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAxMDAwMDAwMDAsIDAwMDAw
MDAxYjhjZjBmZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDFiOGNmMTAwMCwgMDAwMDAwMDgw
ZjMzZmZmZl0gKHVudXNhYmxlKQooWEVOKSAgWzAwMDAwMDA4MGYzNDAwMDAsIDAwMDAwMDA4MmZm
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgSW5pdGlhbCBsb3cgbWVtb3J5IHZpcnEgdGhyZXNob2xk
IHNldCBhdCAweDQwMDAgcGFnZXMuCihYRU4pIFNjcnViYmluZyBGcmVlIFJBTSBpbiBiYWNrZ3Jv
dW5kCihYRU4pIFN0ZC4gTG9nbGV2ZWw6IEFsbAooWEVOKSBHdWVzdCBMb2dsZXZlbDogQWxsCihY
RU4pIFhlbiBpcyByZWxpbnF1aXNoaW5nIFZHQSBjb25zb2xlLgooWEVOKSAqKiogU2VyaWFsIGlu
cHV0IHRvIERPTTAgKHR5cGUgJ0NUUkwtYScgdGhyZWUgdGltZXMgdG8gc3dpdGNoIGlucHV0KQoo
WEVOKSBGcmVlZCA2NTZrQiBpbml0IG1lbW9yeQooWEVOKSBkMHYwOiB1cGNhbGwgdmVjdG9yIGYz
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDAuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAw
MDAwOjAwOjAwLjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMS4wCihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6MDA6MDEuMQooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjAK
KFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi40CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDA6MDguMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA4LjEKKFhFTikgUENJIGFk
ZCBkZXZpY2UgMDAwMDowMDowOC4yCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTQuMAoo
WEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjMKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAw
MDowMDoxOC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguMQooWEVOKSBQQ0kgYWRk
IGRldmljZSAwMDAwOjAwOjE4LjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4zCihY
RU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguNAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAw
OjAwOjE4LjUKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC42CihYRU4pIFBDSSBhZGQg
ZGV2aWNlIDAwMDA6MDA6MTguNwooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAxOjAwLjAKKFhF
TikgUENJIGFkZCBkZXZpY2UgMDAwMDowMjowMC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6
MDM6MDAuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAzOjAwLjEKKFhFTikgUENJIGFkZCBk
ZXZpY2UgMDAwMDowNDowMC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuMAooWEVO
KSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjEKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDow
NTowMC4yCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuMwooWEVOKSBQQ0kgYWRkIGRl
dmljZSAwMDAwOjA1OjAwLjQKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNTowMC41CihYRU4p
IFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuNgooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2
OjAwLjAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNjowMC4xCihYRU4pIFBDSSBhZGQgZGV2
aWNlIDAwMDA6MDY6MDAuMgooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjMKKFhFTikg
YXJjaC94ODYvaHZtL3N2bS9zdm0uYzoxODg5OmQwdjAgUkRNU1IgMHhjMDAxMDA1OCB1bmltcGxl
bWVudGVkCihYRU4pIGFyY2gveDg2L2h2bS9zdm0vc3ZtLmM6MTg4OTpkMHYwIFJETVNSIDB4YzAw
MTAyOWIgdW5pbXBsZW1lbnRlZAooWEVOKSBhcmNoL3g4Ni9odm0vc3ZtL3N2bS5jOjE4ODk6ZDB2
MCBSRE1TUiAweGMwMDEwMjlhIHVuaW1wbGVtZW50ZWQKKFhFTikgY29tbW9uL2dyYW50X3RhYmxl
LmM6MTkwOTpkMHY0IEV4cGFuZGluZyBkMCBncmFudCB0YWJsZSBmcm9tIDEgdG8gMiBmcmFtZXMK
KFhFTikgMDAwMDowMzowMC4wOiBkZXRlY3RlZCBCQVIjMCBzaXplIGNoYW5nZSAoMHgxMDAwMDAw
MCAtPiAweDIwMDAwMDAwMCkK

--_003_BL1PR12MB5849F0606930076AC8CC66ADE75B2BL1PR12MB5849namp_--


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 07:19:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 07:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836066.1251939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBU81-00066S-9K; Thu, 14 Nov 2024 07:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836066.1251939; Thu, 14 Nov 2024 07:18: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 1tBU81-00066L-50; Thu, 14 Nov 2024 07:18:57 +0000
Received: by outflank-mailman (input) for mailman id 836066;
 Thu, 14 Nov 2024 07:18: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=wQsW=SJ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tBU80-00066F-Bt
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 07:18:56 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20625.outbound.protection.outlook.com
 [2a01:111:f403:2418::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b023edba-a258-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 08:18:47 +0100 (CET)
Received: from DM6PR12CA0003.namprd12.prod.outlook.com (2603:10b6:5:1c0::16)
 by PH0PR12MB8799.namprd12.prod.outlook.com (2603:10b6:510:28e::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Thu, 14 Nov
 2024 07:18:41 +0000
Received: from DS1PEPF00017090.namprd03.prod.outlook.com
 (2603:10b6:5:1c0:cafe::63) by DM6PR12CA0003.outlook.office365.com
 (2603:10b6:5:1c0::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Thu, 14 Nov 2024 07:18:41 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS1PEPF00017090.mail.protection.outlook.com (10.167.17.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Thu, 14 Nov 2024 07:18:41 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 14 Nov
 2024 01:18:40 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 14 Nov 2024 01:18:39 -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: b023edba-a258-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjI1IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImIwMjNlZGJhLWEyNTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTY4NzI3Ljk3ODA3Miwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rPO8ZbuGB9IcT+Gb+VqNPNZPZTqK25+HK48JLZqrCZe0OwI80e2njUMWGey6RzyxQ2akB67wXIAyi4r8YqDq904eNCN7b4cbfw8jAQHwW2keCHuEa5bS/PGuo0O7pP3UO4zKpYdognS6e69T1ntflAlCDGhFUQFH5DOYOuy822qN2HK79otvKkiM/HyueQy8y6gDFsuGjNd4udMQB4XtNTol0Ov3QqO3tFl4xtTRCTgbWZoTRYyKnxNv+RtrggxdXWz2nCZmCxCxdz1fzRkJ979gT/i+UTLA3Kkx001CC1VkLetXT2wjFnnZEyyDU52FEkvYHVn046i8jtXX2dDc9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fxEjBEtDvnMuSrN/OdQYW1BjvI8R1sO7TEaxd2sPYq0=;
 b=U1g9xZa09EqbKo8pu8h/BvWEHGAJjAlqmCV1BCxTVuZllr0BodPlK4Q1EW/FdYAKXWDiYTGUrcMVJvD+38jsMIo2lp3+5a7kJoXiGD9g4Sr9cMJLdfa2qOWib0Mf7FrjI8zrs+AR8exjGuQgKDFHA+IDNOEy1byfAf5dFRLoi6R41rEH0Jgz3/Sl61fMq69vXO22jbR90Q29verco14Lecm7MMv+901F6/MTWjBCZtVl1Hlp7s6keIUgLC6ML5R/D5bs4n8M1bWj7ShNLOhgSrKKRNgqxlzjvN1xL98U+CDSyyOQYsqkIxdWgioLk9SPSyfUWhghE+G5ccpnROW8XQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.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=fxEjBEtDvnMuSrN/OdQYW1BjvI8R1sO7TEaxd2sPYq0=;
 b=o57Gp+TuN/851eG+o6hRwfyT79NJTn/AfJyq6wbByUa5h6yke96+dB5Jz1ZtqMwDKMZ3+zuxRmmN4/FzAU/Ztihj7nZrqy8B+4/E5LNCV56bqOqY/zu4VT8Djp5HwQ8hPle8rbOMoDVAzzmcTKNAFogwox6NwJOPjXfSpvRu86Y=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <3d8ccf17-e140-47fc-a887-7df808d46716@amd.com>
Date: Thu, 14 Nov 2024 08:18:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017090:EE_|PH0PR12MB8799:EE_
X-MS-Office365-Filtering-Correlation-Id: ea148583-b192-4199-2b82-08dd047c9149
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RHF4M214Q2dwR3o3MkNxUjdzYUM1MTVweElnN2NBNW5zVXJKUk9FdzZGckdp?=
 =?utf-8?B?WWZVQnFqZXZyZmpOUXFyV3Awa015bXg1Q3JuNU4wSTZvVjdvNmphWEpTMFZh?=
 =?utf-8?B?U0hTWGl0NXBGNjMyVC9iMk5tMElvYUt4SzFEMEplU3d5UUNKb0hVS0IxamVM?=
 =?utf-8?B?QXFYRDVQc3ZHNFJ5d1B6emYwYkFOaHNsQ1phcnkwUHRsWTIzNkJYYWhxQ3Y4?=
 =?utf-8?B?eDVmcGNMZG00UzZVL2UzMkxHZHlWWGdQK0FQYkZWclNWZkdDdS85ODJMZ05a?=
 =?utf-8?B?OUxxekcyamxmTWZoeXFqMTNwNHpEWHlrZi9DUUFwTHRSNFpoQXFhZEZaV1VF?=
 =?utf-8?B?SDhFbURHcHBDcllLNko4RDQrMmxlSmgzTEE0S0hHeXQ5amd5WHFucVpwL1R6?=
 =?utf-8?B?YnNCSkZrSjc1dllYOGZjRDFSbnh3T0J0bUpCOGVVei9EaUJZNzg5UnpzaVdl?=
 =?utf-8?B?ZVZtdG1icUtPNWFsWlJyTTR5cDA1eHNjZFdIbDM5RUdQYUw1Kzc0a3prb3p5?=
 =?utf-8?B?R1ZvcmZta04rbFRZSHgvZkcyNE9wbFNCMU5aYUgrTkh1Y2IzOGFJNDUyaEZD?=
 =?utf-8?B?bVlLdEhIekNGZlhlZ2g2Q21kUFljQ1BHSFQyQkVmYy9WYXd4c21LMFdPRCts?=
 =?utf-8?B?WThvb0FvbTYvZnBpdEY2bVptOWxSMzl4YjhVRE0zSGdDVGV2RVpaaCsrbENC?=
 =?utf-8?B?K1U3MnpaN2RhZ1B3SWVkNS8xN1Z4Qjk5eCtCLzBsbGYxdGpUVVJhdC80RGJ5?=
 =?utf-8?B?R0xVeEF5NUlHNVhFcmRYYkEyS2xXbmhlUnpOckUxcU94SVdqa1pLRUcwM25v?=
 =?utf-8?B?OURMZk9IR2lOa216S3JDWjJab3IxclFlUlRHYmtDZzF0Q1huQkVwVUQyN2tC?=
 =?utf-8?B?d0JXcWUyc0h0UWd0L3NzcnpGMGtkRVZ2dXNQcTlMSkpqdlVNcGhYMC9pVVpa?=
 =?utf-8?B?djB0T3BhQ0FVWlV2Wnp5V3lKQlk1dHJ4WDRORU9rakFFRlUrRGRwUGVnQmNr?=
 =?utf-8?B?RjY5eDNzbkxtbVp4R0VWd2dpYld1VFFOWkNMWFhHNVB6TGhSb09sNGdGVEkv?=
 =?utf-8?B?N1d4STI3RmtLbTBQN1hTSHJrYS9vbGkwR3RHWkcyN0IweHFFekR2VVdtWEdm?=
 =?utf-8?B?WWgwUG9reDV0UDcwWjN2ZExGbXJLK21vYitWUXRDQk1rM25Ob3VHQitxZktU?=
 =?utf-8?B?UEhLY0IzZk04TjMwTmFYcU8xWUpvT09mdTdicjBqWXhxa2U4bVlRaTNlUXls?=
 =?utf-8?B?NCtobHVndy84OFZka3VNcnpJQzMvUlM4VFFERWp2anhvZE5JaFBzVWFtdVhp?=
 =?utf-8?B?L2I5MmxnZGczK0hUMVpRTFlBckZjKzVBb3F0elNUbTI3TnJqbEFocStqVTdz?=
 =?utf-8?B?RFVkNHpCenR1ckZIZ21tdm9UVWlUdWFMU2FzWS9CQ2ZVUXkzNnB1KytGZHVQ?=
 =?utf-8?B?RHE3a0NBTWljeVhWY1hidUxDbWV6eVlzNHhWazlEMnJEV2Q3N245aTV1Yysr?=
 =?utf-8?B?aGxMT1RuWCt1ZW9WSHFxUktObExrQmo2MUNIR2UrSjV5TmxEWDA2MHFTSjVk?=
 =?utf-8?B?bWVzdytTVk4wRkpIMHlLUTRsWjRWUDVJUU9DZU4vSUxxSVQxSWRBQ0hRZ09u?=
 =?utf-8?B?TkhHcndjWXNBZHVkbWtHSVVuM0ZTOWtMSGM1UWNuMTFkMHh3Y293SE9nc0c0?=
 =?utf-8?B?OEV3QTZ0THUySnBLUVFIY2RoaGxTZ2xSOFBBNWpDRGxKTnFGWVlvTVR0T25C?=
 =?utf-8?B?TmpxekFnWHBGLzhxbFFwbUovMmNpWDVjODErSjBuMFk2aVZYbjFqeE9TbHpt?=
 =?utf-8?B?Zzc2S3hQV3FvS1JoRExhR3VybkE1T3JJbHg3c3FsMFVndDVpbDB1djRTTEo1?=
 =?utf-8?B?WFVtNDQ4YVkzK1JIQ3hjU3hJbTV1Ukp4czVnbVFEcEU1TkhmWUlDUkFxSmZn?=
 =?utf-8?Q?QxmzySSBO9Y=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2024 07:18:41.5332
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea148583-b192-4199-2b82-08dd047c9149
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017090.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8799



On 13/11/2024 23:41, Stefano Stabellini wrote:
> 
> 
> On Wed, 13 Nov 2024, Julien Grall wrote:
>> On 13/11/2024 15:40, Michal Orzel wrote:
>>> On 13/11/2024 15:40, Julien Grall wrote:
>>>> On 13/11/2024 14:19, Michal Orzel wrote:
>>>>> On 13/11/2024 14:50, Julien Grall wrote:
>>>>>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>>>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>>>>> There are some cases where the device tree exposes a memory range
>>>>>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>>>>>> current code will stop Xen to boot since it will find that the
>>>>>>>> latter range is clashing with the already recorded /memreserve/
>>>>>>>> ranges.
>>>>>>>>
>>>>>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>>>>>> in the /memreserve/ part and even in this case this will prevent
>>>>>>>> Xen to boot since it will see that the module memory range that
>>>>>>>> it is going to add in 'add_boot_module' clashes with a
>>>>>>>> /memreserve/
>>>>>>>> range.
>>>>>>>>
>>>>>>>> When Xen populate the data structure that tracks the memory
>>>>>>>> ranges,
>>>>>>>> it also adds a memory type described in 'enum membank_type', so
>>>>>>>> in order to fix this behavior, allow the
>>>>>>>> 'check_reserved_regions_overlap'
>>>>>>>> function to check for exact memory range match given a specific
>>>>>>>> memory
>>>>>>>> type; allowing reserved-memory node ranges and boot modules to
>>>>>>>> have an
>>>>>>>> exact match with ranges from /memreserve/.
>>>>>>>>
>>>>>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>>>>>
>>>>>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>>>>>>>> bootinfo.reserved_mem")
>>>>>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>>>>> ---
>>>>>>>> I tested this patch adding the same range in a /memreserve/ entry
>>>>>>>> and
>>>>>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>>>>>> I've also tested that a configuration running static shared memory
>>>>>>>> still works
>>>>>>>> fine.
>>>>>>>> ---
>>>>>>> So we have 2 separate issues. I don't particularly like the concept
>>>>>>> of introducing MEMBANK_NONE
>>>>>>> and the changes below look a bit too much for me, given that for
>>>>>>> boot modules we can only have
>>>>>>> /memreserve/ matching initrd.
>>>>>>
>>>>>> How so? Is this an observation or part of a specification?
>>>>> Not sure what specification you would want to see.
>>>>
>>>> Anything that you bake your observation. My concern with observation is
>>>> ...
>>>>
>>>>    It's all part of U-Boot and Linux behavior that is not documented
>>>> (except for code comments).
>>>>> My statement is based on the U-Boot and Linux behavior. U-Boot part only
>>>>> present for initrd:
>>>>> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
>>>>
>>>> ... a user is not forced to use U-boot. So this is not a good reason to
>>> I thought that this behavior is solely down to u-boot playing tricks with
>>> memreserve.
>>
>> Sure we noticed that U-boot is doing some we didn't expect. But this really
>> doesn't mean there are not other interesting behavior happening.
>>
>>>
>>>> rely on it. If Linux starts to rely on it, then it is probably a better
>>>> argument, but first I would need to see the code. Can you paste a link?
>>> Not sure how I would do that given that it is all scattered.
>>
>> There are no requirements to be all scattered.
>>
>>> But if it means sth, here is kexec code> to create fdt. It is clear they do
>> the same trick as u-boot.
>>> https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355
>>
>> Yet this doesn't provide any information why this only has to be an exact
>> region... It only tells me the current behavior.
>>
>>>
>>>>
>>>>>
>>>>> For things that Xen can be interested in, only region for ramdisk for
>>>>> dom0 can match the /memreserve/ region.
>>>>> Providing a generic solution (like Luca did) would want providing an
>>>>> example of sth else that can match which I'm not aware of.
>>>>
>>>> I would argue this is the other way around. If we are not certain that
>>>> /memreserve/ will not be used for any other boot module, then we should
>>>> have a generic solution. Otherwise, we will end up with similar weird
>>>> issue in the future.
>>> We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and
>>> ramdisk. The first 2 are not described in DT so I'm not sure
>>> what are your examples of bootmodules for which you want kernel know about
>>> memory reservation other than ramdisk.
>>
>> The DTB is not described but the kernel is. We also have XSM modules. All of
>> which could in theory be in memreserve if for some reasons the bootloader
>> wanted to preserve the modules for future use (think Live-Update)...
>>
>> Anyway, to be honest, I don't understand why you are pushing back at a more
>> generic solution... Yes this may be what we just notice today, but I haven't
>> seen any evidence that it never happen.
>>
>> So I would rather go with the generic solution.
> 
> I looked into the question: "Is this an observation or part of a
> specification?"
> 
> Looking at the device tree specification
> source/chapter5-flattened-format.rst:"Memory Reservation Block"
> 
> It says:
> 
> "It is used to protect vital data structures from being overwritten by
> the client program." [...] "More specifically, a client program shall
> not access memory in a reserved region unless other information provided
> by the boot program explicitly indicates that it shall do so."
> 
> 
> I think it is better to stay on the safe side and implement in Xen a
> more generic behavior to support /memreserve/. It is possible that in a
> future board more information could be residing in a /memreserve/
> region. For instance, I could imagine EFI runtime services residing in a
> /memreserve/ region.
> 
> I am a bit confused by ranges that are both in /memreserve/ and
> /reserved-memory. Ranges under /memreserve/ should not be accessed at
> all (unless otherwise specified), ranges under /reserved-memory are
> reserved for specific drivers.
> 
> I guess ranges that are both in /memreserve/ and /reserved-memory are
> exactly the type of ranges that fall under this statement in the spec:
> "unless other information provided by the boot program explicitly
> indicates that it shall do so".
> 
> The way I see it from the device tree spec, I think Xen should not map
> /memreserve/ ranges to Dom0, and it should avoid accessing them itself.
> But if a range is both in /memreserve/ and also in /reserved-memory,
> then basically /reserved-memory takes precedence, so Xen should map it
> to Dom0.
> 
> Please have a look at the spec, and let me know if you come to the same
> conclusion.
If we are going to follow the spec here (which I agree to do), then taking into
consideration the following part:

"*shall not* access memory in a reserved region *unless other information* provided
by the boot program explicitly indicates that it shall do so."

the initrd case fits into the exception (otherwise we would not be able to provide initrd to dom0).
Yes, it is described by U-Boot as /memreserve/ but also follows Linux dt binding for "linux,initrd-{start,end}" which can be perceived
as *other information provided by the boot program* and therefore can be used as ramdisk for dom0.

However, I'm not aware of any other official DT binding related to dom0/Linux boot modules other than
initrd, where this *other information* would be present and indicate the possibility of use by client program
i.e. Xen/dom0. This was my only concern, but I decided not to stand in the way.

~Michal




From xen-devel-bounces@lists.xenproject.org Thu Nov 14 08:52:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 08:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836081.1251949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVaX-00010r-0F; Thu, 14 Nov 2024 08:52:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836081.1251949; Thu, 14 Nov 2024 08:52: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 1tBVaW-00010k-ST; Thu, 14 Nov 2024 08:52:28 +0000
Received: by outflank-mailman (input) for mailman id 836081;
 Thu, 14 Nov 2024 08:52: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBVaU-00010e-VE
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 08:52:27 +0000
Received: from mail-ot1-x329.google.com (mail-ot1-x329.google.com
 [2607:f8b0:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c38af9db-a265-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 09:52:23 +0100 (CET)
Received: by mail-ot1-x329.google.com with SMTP id
 46e09a7af769-718065d6364so174862a34.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 00:52: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: c38af9db-a265-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC1vdDEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMzOGFmOWRiLWEyNjUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTc0MzQzLjc1NzI4OSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731574342; x=1732179142; 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=FY5vudhcS/wmwWrySd0bdenvV2M8hGnY9coczwzn4CQ=;
        b=ZGruRqRULN2cs8FbhJZ+5Yt0TVKaqagp0NyBW0pSiWq92XLEf64Fdt08AjJLLAy36U
         wF65BzNTICU2tTjBkHF9R6yDCTClqBsvGhRfWU/GvF21gF75JuC7eEWlSQgWNP2H3Eil
         072C7Q4wb/6GVSD2xisRgNXdxe3nrXjODfEzM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731574342; x=1732179142;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FY5vudhcS/wmwWrySd0bdenvV2M8hGnY9coczwzn4CQ=;
        b=FMb3gvS+OZ2hVzc9KFg73NP7BVzFHuSiwF3891Bk81Ne9gMuE+HvN+g16/rGQzqEPx
         xx69aDK9WwHKCUsflTr1+eFTArE2WifDXHfA1l/xudKVL0TcEgr7JaS5I7J6+sHBvher
         Vmh3tOJ5B/QBxzqg3UNkeJTsDwywadF85sehTXpzww8I/nzJ3iRfi5hxQkmS2OMI+fxW
         iwueD5Ww3SR8dHrQBu2JGKLOOazwJUMb89MCYx/HoHHplFq8hGpm2jed4IKGAADBeXt3
         Rk94Q4jvpLdhd1rg56wesl2XvO6N8a8fbMY5bGGU+JYYsWymvwm1ddh8zkjqPJCGvU8D
         W96g==
X-Gm-Message-State: AOJu0Yxu7mJcRYwUJjmfDncRqb7lbIAq7RLrieCA0ImXkven9Bn4nzHx
	r0w7eCX3mWwyIuCwyI5CASBi8fSAPf0+ufykQ1q0QRoGkrZ88z9QC41nwQZYcP6F8PKaGxe1syy
	v0QNSJbLCWbQvz7Ndi55dcGRLlGjYH7SRr3vNfw==
X-Google-Smtp-Source: AGHT+IHAaZji3fNHi8vzgB6Gfv/SihFTsSgrCNz3wrMpEHT8shDvA6KMR+x5PjJQvEvNJ9gE/hTctSv6ObNiYHOIAkA=
X-Received: by 2002:a05:6830:600b:b0:715:10d4:b06e with SMTP id
 46e09a7af769-71a6e44964cmr1604056a34.9.1731574342266; Thu, 14 Nov 2024
 00:52:22 -0800 (PST)
MIME-Version: 1.0
References: <20241113164844.1750237-1-andrew.cooper3@citrix.com>
In-Reply-To: <20241113164844.1750237-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Thu, 14 Nov 2024 08:52:11 +0000
Message-ID: <CACHz=Zjxx-TvLiDWXqzwO3Amr69KYzfQU3e5GXVZXEZyiKBN7g@mail.gmail.com>
Subject: Re: [PATCH] xen/earlycpio: Fix header to be standalone
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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 13, 2024 at 4:49=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> Split out of yet-more microcode cleanup work.
>
> 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/include/xen/earlycpio.h | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xen/include/xen/earlycpio.h b/xen/include/xen/earlycpio.h
> index d4992035982d..b1dafc3b0b75 100644
> --- a/xen/include/xen/earlycpio.h
> +++ b/xen/include/xen/earlycpio.h
> @@ -1,6 +1,8 @@
>  #ifndef _EARLYCPIO_H
>  #define _EARLYCPIO_H
>
> +#include <xen/types.h>
> +
>  #define MAX_CPIO_FILE_NAME 18
>
>  struct cpio_data {
>
> base-commit: 38febce5b35a7a4391906499b2046f01ec0129ca

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 08:53:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 08:53:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836087.1251958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVbi-0001V3-8i; Thu, 14 Nov 2024 08:53:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836087.1251958; Thu, 14 Nov 2024 08:53: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 1tBVbi-0001Uw-6A; Thu, 14 Nov 2024 08:53:42 +0000
Received: by outflank-mailman (input) for mailman id 836087;
 Thu, 14 Nov 2024 08:53: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBVbh-0001Um-Kt
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 08:53:41 +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 f05bf705-a265-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 09:53:38 +0100 (CET)
Received: by mail-ot1-x331.google.com with SMTP id
 46e09a7af769-718078c7f53so144502a34.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 00:53: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: f05bf705-a265-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC1vdDEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYwNWJmNzA1LWEyNjUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTc0NDE4LjgyMTc5NCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731574417; x=1732179217; 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=9zXyvrAQAAMPEylwu5zr8e1VGZBnx70oFNdJ3TYfH98=;
        b=ZRb8UTPvJclDEYKg4RTwnIZT6BQQ8yBQZDUYugLWJz+hFDXSkljCCRc1FOGNRF2uHm
         hGEXjk6UmRcz20bZG5EJJUgUBnG2ztai3eWZDQCb91tJD25oLbdH6ZEOLuEEUgV3XwcD
         NbUR5omul01i/hxixbS+feUt7z3+rLZsDE6LU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731574417; x=1732179217;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9zXyvrAQAAMPEylwu5zr8e1VGZBnx70oFNdJ3TYfH98=;
        b=DnxCfBC2qJf5RqwaBGRYN3SLqqqMWbeL58+ihEY5reL4VX8CxoQ136/r5cUS0xIkbb
         Gw25zu3lFXrdIR3BtfEBa7N+cnpT/Cx+oiCwDnSH9tos8R7LWjvwDmuz2dUgS8dT0Tdw
         M+dkFYU3ow78jJSjSpHYvZHbMqJ6xz/3BZL1UoMWaifAdVEgE+ha9+sJh/lVSqiSKbZj
         xMObVka7x8Wp6bi2O2djie8vICrhhoN8Kzr4F+zxsYGu2PCOPQoS1+rKsFvxu2hGBzEA
         VoAOd9FiXx6gXdy0l9QBbQrztOCYUeebMJIRnIwd1xLhacEnTqLTk8rTMIXpHtSQ7yRB
         smIA==
X-Gm-Message-State: AOJu0YwxA1H+yWxGf8zaylqMaNyv15ceL3YaZv991E/ut4IwacO89FTe
	n8L803cDhHis/b3fZgmG6Oun2ZiZrqeZxiL0YoZIeHcGtprFhABO59MOT7gTEnuOnPtkoBHiEam
	otvpV4hkE+Oq/ImXsKi87NdJ/rE3elYys82I7VQ==
X-Google-Smtp-Source: AGHT+IGz+4f4KCsDL0Zchbq6KKm8CMMkjUyObB7rY1NmLW4bZUlHR5PrCshlnlXboaZCHWsrr9THY+3Ea5+nrkZqRjM=
X-Received: by 2002:a05:6830:6f41:b0:717:fbfe:52bc with SMTP id
 46e09a7af769-71a6aeb3310mr1452003a34.12.1731574417408; Thu, 14 Nov 2024
 00:53:37 -0800 (PST)
MIME-Version: 1.0
References: <20241113185118.1786703-1-andrew.cooper3@citrix.com>
In-Reply-To: <20241113185118.1786703-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Thu, 14 Nov 2024 08:53:26 +0000
Message-ID: <CACHz=ZgnikqJwEiw95BWtdua6YrHgaMuUZqP-PMkhHPH3q6j4g@mail.gmail.com>
Subject: Re: [PATCH] xen/multiboot: Make headers be standalone
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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 13, 2024 at 6:51=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> Both require xen/types.h.
>
> Change multiboot.h to include const.h by it's more normal path, and swap =
u32
> for uint32_t.
>
> 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/include/xen/multiboot.h  | 68 +++++++++++++++++++-----------------
>  xen/include/xen/multiboot2.h |  3 ++
>  2 files changed, 38 insertions(+), 33 deletions(-)
>
> diff --git a/xen/include/xen/multiboot.h b/xen/include/xen/multiboot.h
> index 80a1761d9ee7..7ba86aab73d8 100644
> --- a/xen/include/xen/multiboot.h
> +++ b/xen/include/xen/multiboot.h
> @@ -17,7 +17,7 @@
>  #ifndef __MULTIBOOT_H__
>  #define __MULTIBOOT_H__
>
> -#include "const.h"
> +#include <xen/const.h>
>
>  /*
>   * Multiboot header structure.
> @@ -45,41 +45,43 @@
>
>  #ifndef __ASSEMBLY__
>
> +#include <xen/types.h>
> +
>  /* The symbol table for a.out.  */
>  struct aout_symbol_table {
> -    u32 tabsize;
> -    u32 strsize;
> -    u32 addr;
> -    u32 reserved;
> +    uint32_t tabsize;
> +    uint32_t strsize;
> +    uint32_t addr;
> +    uint32_t reserved;
>  };
>  typedef struct aout_symbol_table aout_symbol_table_t;
>
>  /* The section header table for ELF.  */
>  struct elf_section_header_table {
> -    u32 num;
> -    u32 size;
> -    u32 addr;
> -    u32 shndx;
> +    uint32_t num;
> +    uint32_t size;
> +    uint32_t addr;
> +    uint32_t shndx;
>  };
>  typedef struct elf_section_header_table elf_section_header_table_t;
>
>  /* The Multiboot information.  */
>  struct multiboot_info {
> -    u32 flags;
> +    uint32_t flags;
>
>      /* Valid if flags sets MBI_MEMLIMITS */
> -    u32 mem_lower;
> -    u32 mem_upper;
> +    uint32_t mem_lower;
> +    uint32_t mem_upper;
>
>      /* Valid if flags sets MBI_BOOTDEV */
> -    u32 boot_device;
> +    uint32_t boot_device;
>
>      /* Valid if flags sets MBI_CMDLINE */
> -    u32 cmdline;
> +    uint32_t cmdline;
>
>      /* Valid if flags sets MBI_MODULES */
> -    u32 mods_count;
> -    u32 mods_addr;
> +    uint32_t mods_count;
> +    uint32_t mods_addr;
>
>      /* Valid if flags sets ... */
>      union {
> @@ -88,42 +90,42 @@ struct multiboot_info {
>      } u;
>
>      /* Valid if flags sets MBI_MEMMAP */
> -    u32 mmap_length;
> -    u32 mmap_addr;
> +    uint32_t mmap_length;
> +    uint32_t mmap_addr;
>
>      /* Valid if flags sets MBI_DRIVES */
> -    u32 drives_length;
> -    u32 drives_addr;
> +    uint32_t drives_length;
> +    uint32_t drives_addr;
>
>      /* Valid if flags sets MBI_BIOSCONFIG */
> -    u32 config_table;
> +    uint32_t config_table;
>
>      /* Valid if flags sets MBI_LOADERNAME */
> -    u32 boot_loader_name;
> +    uint32_t boot_loader_name;
>
>      /* Valid if flags sets MBI_APM */
> -    u32 apm_table;
> +    uint32_t apm_table;
>  };
>  typedef struct multiboot_info multiboot_info_t;
>
>  /* The module structure.  */
>  struct module {
> -    u32 mod_start;
> -    u32 mod_end;
> -    u32 string;
> -    u32 reserved;
> +    uint32_t mod_start;
> +    uint32_t mod_end;
> +    uint32_t string;
> +    uint32_t reserved;
>  };
>  typedef struct module module_t;
>
>  /* The memory map. Be careful that the offset 0 is base_addr_low
>     but no size.  */
>  struct memory_map {
> -    u32 size;
> -    u32 base_addr_low;
> -    u32 base_addr_high;
> -    u32 length_low;
> -    u32 length_high;
> -    u32 type;
> +    uint32_t size;
> +    uint32_t base_addr_low;
> +    uint32_t base_addr_high;
> +    uint32_t length_low;
> +    uint32_t length_high;
> +    uint32_t type;
>  };
>  typedef struct memory_map memory_map_t;
>
> diff --git a/xen/include/xen/multiboot2.h b/xen/include/xen/multiboot2.h
> index 7cda620eec8a..f96f5d4c3169 100644
> --- a/xen/include/xen/multiboot2.h
> +++ b/xen/include/xen/multiboot2.h
> @@ -114,6 +114,9 @@
>  #define MULTIBOOT2_FRAMEBUFFER_TYPE_EGA_TEXT            2
>
>  #ifndef __ASSEMBLY__
> +
> +#include <xen/types.h>
> +
>  typedef struct {
>      uint32_t total_size;
>      uint32_t reserved;

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:05:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:05:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836101.1251969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVn7-0003MB-Hi; Thu, 14 Nov 2024 09:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836101.1251969; Thu, 14 Nov 2024 09: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 1tBVn7-0003M4-DS; Thu, 14 Nov 2024 09:05:29 +0000
Received: by outflank-mailman (input) for mailman id 836101;
 Thu, 14 Nov 2024 09: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=/i0B=SJ=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBVn6-0003Ly-9E
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:05:28 +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 928667d7-a267-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 10:05:20 +0100 (CET)
Received: from mail-lf1-f71.google.com (mail-lf1-f71.google.com
 [209.85.167.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-408-EpdrKsGPPOq9VAjB3_UR3Q-1; Thu, 14 Nov 2024 04:05:17 -0500
Received: by mail-lf1-f71.google.com with SMTP id
 2adb3069b0e04-53da203141bso281615e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:05:16 -0800 (PST)
Received: from ?IPv6:2001:16b8:3dc0:7e00:9ea7:2841:8d4a:6aac?
 ([2001:16b8:3dc0:7e00:9ea7:2841:8d4a:6aac])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432dab788e1sm13078295e9.15.2024.11.14.01.05.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 01: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: 928667d7-a267-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMzMuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkyODY2N2Q3LWEyNjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc1MTIwLjY3MzA4OSwic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731575119;
	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=kF95GC+iUY1Dm9Qv60S9X5a5C7Gjugcat/GIm+/tUc4=;
	b=GsiOO7ifx1YCaMFAgQm31YEU0WUwTtW6TGcA8d6VFV+DBqip5wofcMl/rKT8i31+xi47fa
	fLAO0thBoPn4PGJZQ8cDOl52EIPRCXiyaZT23uPDHflLaZ2AaG80SWtC9bTJExmIUPSfDH
	c38pj3dgyzwT9jZPmDT2CjnqI+CR3y4=
X-MC-Unique: EpdrKsGPPOq9VAjB3_UR3Q-1
X-Mimecast-MFC-AGG-ID: EpdrKsGPPOq9VAjB3_UR3Q
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731575115; x=1732179915;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=kF95GC+iUY1Dm9Qv60S9X5a5C7Gjugcat/GIm+/tUc4=;
        b=SuLdqOysIxQU0KAWCq0kkVNpMetEu7ZT4/TafjLnDUmQU8W+B63IVxBXpw6CJ6gira
         KdqiIpg+ekKIHtMnNd/33EurrCZvXLSHuI7uPBqDUVX26CNFg30Oh9DfQ9e73EoNzbHZ
         wrSS11wiqQi8k+UBqIusvmoywPj3jnqT5fWQP9tpd0LrXMYfcaWIwwzGj8mfv+e0q348
         iHpgLDqRy1ZEgXV2y1ZALHIUD2kiHQ6Z9uUwqZvzPtra8ZuzFg7chLtGxmfLTx8XVX6f
         NEwHKNuhFBnky19bDm1ASlug5f5nQZZNCMHi1sVkI0W59wX2vOB5ba6pk19Q9kv+f8n7
         V7yA==
X-Forwarded-Encrypted: i=1; AJvYcCVpnNqCimj3BMKcXg2tioX7cBlV2FE1ow/TE3tt5b1g29Xo2KM9MCvn97u5v+1DL4acQVvpMTAEb8Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRD4vamzmcH4IiusP7GHkRF8hNjLf8yJpV2OTegemDNVO0Jjiv
	DkkqxBjptnNYo6oC7CNcMIe2IEnk68MwgYVoG0J7fHEL+hkf2NeHWDJHoMh2adbKbR7OSXJuOqY
	UfZYLTLmjAXlZazYigWRgzBmUOi/j3m3X2sQUaGgHlb5k2KwbjORy2mB4KqKuGZgm
X-Received: by 2002:a05:6512:1191:b0:539:f67b:b849 with SMTP id 2adb3069b0e04-53d862f33b4mr10003041e87.49.1731575115345;
        Thu, 14 Nov 2024 01:05:15 -0800 (PST)
X-Google-Smtp-Source: AGHT+IHN0Hy6qiNEuUsypmH2/i/ZX6h1LZFagvmv3lYpze64dRxm0m4HLn6U0lfPme4RmJ7ieJ/jJA==
X-Received: by 2002:a05:6512:1191:b0:539:f67b:b849 with SMTP id 2adb3069b0e04-53d862f33b4mr10002974e87.49.1731575114801;
        Thu, 14 Nov 2024 01:05:14 -0800 (PST)
Message-ID: <49bb6fc9ebff3cae844da0465ceadeef8d3217c7.camel@redhat.com>
Subject: Re: [PATCH v2 11/11] Remove devres from pci_intx()
From: Philipp Stanner <pstanner@redhat.com>
To: Thomas Gleixner <tglx@linutronix.de>, Damien Le Moal
 <dlemoal@kernel.org>,  Niklas Cassel <cassel@kernel.org>, Basavaraj Natikar
 <basavaraj.natikar@amd.com>, Jiri Kosina <jikos@kernel.org>,  Benjamin
 Tissoires <bentiss@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Greg
 Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov <oakad@yahoo.com>,
 Sudarsana Kalluru <skalluru@marvell.com>, Manish Chopra
 <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>,  GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>,  Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam Sundar
 S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave Jiang
 <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn Helgaas
 <bhelgaas@google.com>, Alex Williamson <alex.williamson@redhat.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Mario Limonciello
 <mario.limonciello@amd.com>, Chen Ni <nichen@iscas.ac.cn>, Ricky Wu
 <ricky_wu@realtek.com>,  Al Viro <viro@zeniv.linux.org.uk>, Breno Leitao
 <leitao@debian.org>, Kevin Tian <kevin.tian@intel.com>, Mostafa Saleh
 <smostafa@google.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Jason Gunthorpe <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>, Kunwu Chan
 <chentao@kylinos.cn>, Ankit Agrawal <ankita@nvidia.com>, Christian Brauner
 <brauner@kernel.org>, Reinette Chatre <reinette.chatre@intel.com>, Eric
 Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-input@vger.kernel.org, netdev@vger.kernel.org, 
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org,  kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Date: Thu, 14 Nov 2024 10:05:12 +0100
In-Reply-To: <87msi3ksru.ffs@tglx>
References: <20241113124158.22863-2-pstanner@redhat.com>
	 <20241113124158.22863-13-pstanner@redhat.com> <87msi3ksru.ffs@tglx>
User-Agent: Evolution 3.52.4 (3.52.4-2.fc40)
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 7O4NZwr53TI6qDHlas2a0-JI9hQcjbFUsQqhoQvlF3g_1731575115
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

T24gV2VkLCAyMDI0LTExLTEzIGF0IDE3OjIyICswMTAwLCBUaG9tYXMgR2xlaXhuZXIgd3JvdGU6
Cj4gT24gV2VkLCBOb3YgMTMgMjAyNCBhdCAxMzo0MSwgUGhpbGlwcCBTdGFubmVyIHdyb3RlOgo+
ID4gcGNpX2ludHgoKSBpcyBhIGh5YnJpZCBmdW5jdGlvbiB3aGljaCBjYW4gc29tZXRpbWVzIGJl
IG1hbmFnZWQKPiA+IHRocm91Z2gKPiA+IGRldnJlcy4gVGhpcyBoeWJyaWQgbmF0dXJlIGlzIHVu
ZGVzaXJhYmxlLgo+ID4gCj4gPiBTaW5jZSBhbGwgdXNlcnMgb2YgcGNpX2ludHgoKSBoYXZlIGJ5
IG5vdyBiZWVuIHBvcnRlZCBlaXRoZXIgdG8KPiA+IGFsd2F5cy1tYW5hZ2VkIHBjaW1faW50eCgp
IG9yIG5ldmVyLW1hbmFnZWQgcGNpX2ludHhfdW5tYW5hZ2VkKCksCj4gPiB0aGUKPiA+IGRldnJl
cyBmdW5jdGlvbmFsaXR5IGNhbiBiZSByZW1vdmVkIGZyb20gcGNpX2ludHgoKS4KPiA+IAo+ID4g
Q29uc2VxdWVudGx5LCBwY2lfaW50eF91bm1hbmFnZWQoKSBpcyBub3cgcmVkdW5kYW50LCBiZWNh
dXNlCj4gPiBwY2lfaW50eCgpCj4gPiBpdHNlbGYgaXMgbm93IHVubWFuYWdlZC4KPiA+IAo+ID4g
UmVtb3ZlIHRoZSBkZXZyZXMgZnVuY3Rpb25hbGl0eSBmcm9tIHBjaV9pbnR4KCkuIEhhdmUgYWxs
IHVzZXJzIG9mCj4gPiBwY2lfaW50eF91bm1hbmFnZWQoKSBjYWxsIHBjaV9pbnR4KCkuIFJlbW92
ZSBwY2lfaW50eF91bm1hbmFnZWQoKS4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogUGhpbGlwcCBT
dGFubmVyIDxwc3Rhbm5lckByZWRoYXQuY29tPgo+ID4gLS0tCj4gPiDCoGRyaXZlcnMvbWlzYy9j
YXJkcmVhZGVyL3J0c3hfcGNyLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyICstCj4gPiDC
oGRyaXZlcnMvbWlzYy90aWZtXzd4eDEuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCB8wqAgNiArLS0KPiA+IMKgLi4uL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngy
eC9ibngyeF9tYWluLmPCoCB8wqAgMiArLQo+ID4gwqBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9j
YWRlL2JuYS9ibmFkLmPCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPiA+IMKgZHJpdmVycy9udGIvaHcv
YW1kL250Yl9od19hbWQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKy0KPiA+
IMKgZHJpdmVycy9udGIvaHcvaW50ZWwvbnRiX2h3X2dlbjEuY8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfMKgIDIgKy0KPiA+IMKgZHJpdmVycy9wY2kvZGV2cmVzLmPCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArLQo+ID4gwqBkcml2ZXJzL3Bj
aS9tc2kvYXBpLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfMKgIDIgKy0KPiA+IMKgZHJpdmVycy9wY2kvbXNpL21zaS5jwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyICstCj4gPiDCoGRyaXZlcnMvcGNp
L3BjaS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgfCA0MyArLS0tLS0tLS0tLS0tLS0KPiA+IC0tLS0KPiA+IMKgZHJpdmVycy92ZmlvL3Bj
aS92ZmlvX3BjaV9jb3JlLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQo+ID4g
wqBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2ludHJzLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfCAxMCArKy0tLQo+ID4gwqBkcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9jb25mX3NwYWNlX2hl
YWRlci5jwqDCoCB8wqAgMiArLQo+ID4gwqBpbmNsdWRlL2xpbnV4L3BjaS5owqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMSAtCj4gPiDCoDE0
IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQo+IAo+IE5v
dyBJJ20gdXR0ZXJseSBjb25mdXNlZC4gVGhpcyB1bmRvZXMgdGhlIHBjaV9pbnR4X3VubWFuYWdl
ZCgpIGNodXJuCj4gd2hpY2ggeW91IGNhcmVmdWxseSBzcGxpdCBpbnRvIHNldmVyYWwgcGF0Y2hl
cyBmaXJzdC4KCkhhdmUgeW91IHJlYWQgdGhlIGVtYWlsIEkgaGF2ZSBsaW5rZWQ/CgpUaGVyZSBp
cyBhbHNvIHRoZSBjb3Zlci1sZXR0ZXIgKGRvZXMgYW55b25lIGluIHRoZSBjb21tdW5pdHkgZXZl
ciByZWFkCnRob3NlPykgd2hpY2ggZXhwbGljaXRseSBzdGF0ZXM6CgoiUGF0Y2ggIlJlbW92ZSBk
ZXZyZXMgZnJvbSBwY2lfaW50eCgpIiBvYnZpb3VzbHkgcmV2ZXJ0cyB0aGUgcHJldmlvdXMKcGF0
Y2hlcyB0aGF0IG1hZGUgZHJpdmVycyB1c2UgcGNpX2ludHhfdW5tYW5hZ2VkKCkuIEJ1dCB0aGlz
IHdheSBpdCdzCmVhc2llciB0byByZXZpZXcgYW5kIGFwcHJvdmUuIEl0IGFsc28gbWFrZXMgc3Vy
ZSB0aGF0IGVhY2ggY2hlY2tlZCBvdXQKY29tbWl0IHNob3VsZCBwcm92aWRlIGNvcnJlY3QgYmVo
YXZpb3IsIG5vdCBqdXN0IHRoZSBlbnRpcmUgc2VyaWVzIGFzIGEKd2hvbGUuIgpQLgoKCgo+IAo+
IFNvIHRoZSBuZXQgY2hhbmdlIGlzIHRoYXQ6Cj4gCj4gwqDCoCAxKSBwY2lfaW50eCgpIGlzIG5v
dyBhbHdheXMgdW5tYW5hZ2VkCj4gCj4gwqDCoCAyKSBhIGNvdXBsZSBvZiBkcml2ZXJzIHVzZSBw
Y2ltX2ludHgoKSBub3cgaW5zdGVhZCBvZiBwY2lfaW50eCgpCj4gCj4gVGhlIG9idmlvdXMgb3Jk
ZXJpbmcgaXM6Cj4gCj4gwqDCoCAxKSBDb252ZXJ0IHRoZSBkcml2ZXJzIHdoaWNoIG5lZWQgdGhl
IG1hbmFnZWQgdmVyc2lvbiB0byB1c2UKPiDCoMKgwqDCoMKgIHBjaW1faW50eCgpCj4gCj4gwqDC
oCAyKSBSZW1vdmUgdGhlIG1hbmFnZWQgd2FybmluZyBpbiBwY2lfaW50eCgpIGFuZCBjbGVhbiB1
cCB0aGUKPiBjb21tZW50Cj4gCj4gwqDCoCAzKSBSZW1vdmUgX19wY2ltX2ludHgoKSBhbmQgaW52
b2tlIHBjaV9pbnR4KCkgaW4gdGhlIGRldnJlcyBjb2RlLgo+IAo+IE5vPwo+IAo+IFRoYW5rcywK
PiAKPiDCoMKgwqDCoMKgwqDCoCB0Z2x4Cj4gCgoK



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:08:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:08:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836111.1251992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVpu-00044t-IG; Thu, 14 Nov 2024 09:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836111.1251992; Thu, 14 Nov 2024 09: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 1tBVpu-00044V-Cn; Thu, 14 Nov 2024 09:08:22 +0000
Received: by outflank-mailman (input) for mailman id 836111;
 Thu, 14 Nov 2024 09: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBVpt-0003tk-Pf
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:08:21 +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 fc9d80ba-a267-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 10:08:17 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5ceca7df7f0so468790a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:08:17 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046ea8sm38491166b.169.2024.11.14.01.08.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 01:08: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: fc9d80ba-a267-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZjOWQ4MGJhLWEyNjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc1Mjk3LjcxNjc2Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731575296; x=1732180096; 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=SPcMAabrjMxXLzNlIxXI3pmZoQh/gJoevsrq3c7pfN4=;
        b=jHCUyN4x8yhMoVTsJWOWiP9jfcijEywN6/dVMzPrWL0L2BrQzlI0YZC6C5t1nxiL4C
         R+7W2Ii2YtXYED3UezeNnU2xyeg2dDqymxmTqYS68u+7uoTjlJdYdEK5n8uFHZRHGUY6
         /uuenoYoFp9UGBiFrzLW/C936TOWyj+n3sunE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731575296; x=1732180096;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=SPcMAabrjMxXLzNlIxXI3pmZoQh/gJoevsrq3c7pfN4=;
        b=QSqgjBKkylqe2zCVOooBfhQkHczhqIItbWmEU1DoK0PltWJLJdw30UybQnU65CLwRc
         VUoQFR0reVzJs7Kj43saZcUHfHlcDiNvffs+u5VAh/hqR/cX+9S+dIzHMeoreAx9xU+h
         2tRSgwwTHUP2MGj8WLHirbpKsKgtPcNzo3C+mJBB5uBpqX6WpUC6XyeRJ+cwFRuU6Nqn
         NA/QjuT/z78yFJPDzbJywg1005tWUOegoTxGj02kNoPtYD6jRwNV+rgI43pspWRzHVt3
         KmkEvH6djhYAFr1nxb3gTWdCHFC7E58p3qnicXci4Hy/i9Smttd917dBBNfuDEpL+2rm
         JxZQ==
X-Gm-Message-State: AOJu0YzHgx/U8SomRoxd5v/MiSNyYbMrKLf1iITMqwn56G6Eo+hlfoWO
	3UvxzM6ZupFg0yq0t9x+TB3mQt1ccRYcblVq6l2n7IxM7TBkJnj418Nxkz0GGSkXn9PhNPi7jlB
	y
X-Google-Smtp-Source: AGHT+IGL1hgngSJhiaGN7kLlQHVTA0tzCERHg8yCMTy5XByqaeol0QpunyKjkA32e1rU3DGdydI5rA==
X-Received: by 2002:a17:907:97cd:b0:a77:c95e:9b1c with SMTP id a640c23a62f3a-aa20cd3be2amr113412166b.27.1731575296237;
        Thu, 14 Nov 2024 01:08: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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v2 2/4] x86/trampoline: Simplify the wakeup_stack checks
Date: Thu, 14 Nov 2024 09:08:08 +0000
Message-Id: <20241114090810.1961175-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

By checking that the permanent trampoline fits within 1k (at the time of
writing, it's 0x229 bytes), we can simplify the wakeup_stack handling.

Move the setup into wakeup.S, because it's rather out of place in
trampoline.S, and change it to a local symbol.

Drop wakeup_stack_start and WAKEUP_STACK_MIN entirely.

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: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>

v2:
 * New
---
 xen/arch/x86/boot/trampoline.S    | 5 -----
 xen/arch/x86/boot/wakeup.S        | 8 +++++---
 xen/arch/x86/include/asm/config.h | 2 --
 xen/arch/x86/xen.lds.S            | 7 ++++---
 4 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 55e4a3e402f7..924bda37c1b7 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -156,11 +156,6 @@ GLOBAL(trampoline_xen_phys_start)
 GLOBAL(trampoline_cpu_started)
         .byte   0
 
-/* The first page of trampoline is permanent, the rest boot-time only. */
-/* Reuse the boot trampoline on the 1st trampoline page as stack for wakeup. */
-        .equ    wakeup_stack, trampoline_start + PAGE_SIZE
-        .global wakeup_stack
-
 LABEL(trampoline_perm_end, 0)
 
 /* From here on early boot only. */
diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
index df5ea2445739..d53f92b02463 100644
--- a/xen/arch/x86/boot/wakeup.S
+++ b/xen/arch/x86/boot/wakeup.S
@@ -1,5 +1,10 @@
         .code16
 
+/* The first page of trampoline is permanent, the rest boot-time only. */
+/* Reuse the boot logic on the first trampoline page as stack for wakeup. */
+        .equ    wakeup_stack, trampoline_start + PAGE_SIZE
+        .local  wakeup_stack
+
 #define wakesym(sym) (sym - wakeup_start)
 
 /*
@@ -166,6 +171,3 @@ wakeup_64:
         /* Jump to high mappings and the higher-level wakeup code. */
         movabs  $s3_resume, %rbx
         jmp     *%rbx
-
-/* Stack for wakeup: rest of first trampoline page. */
-ENTRY(wakeup_stack_start)
diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index f8a5a4913b07..84696e0a7db5 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -53,8 +53,6 @@
 
 #define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
 #define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
-#define WAKEUP_STACK_MIN        3072
-
 #define MBI_SPACE_MIN           (2 * PAGE_SIZE)
 
 /* Primary stack is restricted to 8kB by guard pages. */
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 221fc2ef3f35..224b46771d0c 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -413,11 +413,12 @@ ASSERT(!SIZEOF(.rela),     "leftover relocations")
 /*
  * The permanent trampoline resides in a single 4k page.  Placement logic
  * takes care to ensure that trampoline_phys is page aligned.
+ *
+ * The wakeup stack wants to reside in the same page and wants to be at least
+ * 3k in size, so make sure the text/data fits in 1k.
  */
-ASSERT((trampoline_perm_end - trampoline_start) <= PAGE_SIZE,
+ASSERT((trampoline_perm_end - trampoline_start) <= 1024,
        "Permentant trampoline too large")
 
 ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_SPACE - MBI_SPACE_MIN,
     "not enough room for trampoline and mbi data")
-ASSERT((wakeup_stack - wakeup_stack_start) >= WAKEUP_STACK_MIN,
-    "wakeup stack too small")
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:08:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:08:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836110.1251983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVpu-0003x6-5o; Thu, 14 Nov 2024 09:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836110.1251983; Thu, 14 Nov 2024 09: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 1tBVpu-0003vr-24; Thu, 14 Nov 2024 09:08:22 +0000
Received: by outflank-mailman (input) for mailman id 836110;
 Thu, 14 Nov 2024 09: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBVps-0003tk-PZ
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:08:20 +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 fb92da40-a267-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 10:08:15 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so61997966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:08:15 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046ea8sm38491166b.169.2024.11.14.01.08.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 01:08: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: fb92da40-a267-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZiOTJkYTQwLWEyNjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc1Mjk1Ljk0NDMzOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731575295; x=1732180095; 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=YfpsIkdC3S7Mxflt2zA8gCdCUNbi3Zq3guME8F7/d90=;
        b=RUEQ1V1ABQ11VsQMihhsRit0snTzuSDOaeDSjdacXCCUkQA4oxi/EFJNDM4g3+fSwA
         9s4i9J/TCFnypX/nFf35jhaldAG30c9IjpdKsmJ2yMh9u9LyDzyT2VMKED+de2aXg/p5
         10VU9NSuvLc3kuS4wWj+fqfeGBj2AgVjMUH3I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731575295; x=1732180095;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YfpsIkdC3S7Mxflt2zA8gCdCUNbi3Zq3guME8F7/d90=;
        b=jV+NLnnyY+AfYLihsP5iH7+SHrRIevHGTDURxqgJ5QFg4/fvS5ErvwH3E21fPz2LPV
         SrNykSWra3nifDZ4ZIfnzzN9xxeweD2g2NQbUp9153WH+h9xMe8JXcaV8urhycmrnRQO
         DEaH0v+IxgH85OhPMewhkwflTfeqIUkbc2HHtbs0CJmkXLxjHTTnUE4aVChmV+Z0WO4s
         UZevXTfGJJL3pmA2RA/i91qGesBuNzolMVtrBMt1leVdRzqL2Ih76NKjz62BAndJpmAD
         WUO6qPNMjJTEspV2wcxui2IdQqTC9AH1Ekj+G0qMpwmvRk/H6DgVuIakr3WSLKwu91Xz
         XoIQ==
X-Gm-Message-State: AOJu0Yy+Kzw6wconjMwnpHjonQdQn5v0Ry2ELyo3zcxgvYFJ30JOMgEX
	6ew5lIbCpvLZm+cJdugh2lfQ4FPAPw11jax/FAyTirYJJTX55IV6VXySBWbRvGtJUZply05v5/E
	p
X-Google-Smtp-Source: AGHT+IEcMV+usM6DD7OzaUcJ3UTsg023QCtvKHrHbKhHJyEa5pTLHcXjte/ND5KIDKEKQb8TGmE1bA==
X-Received: by 2002:a17:907:3e02:b0:a99:4261:e9f7 with SMTP id a640c23a62f3a-a9eefff12ddmr2107816666b.39.1731575294863;
        Thu, 14 Nov 2024 01:08: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v2 1/4] x86/trampoline: Check the size permanent trampoline at link time
Date: Thu, 14 Nov 2024 09:08:07 +0000
Message-Id: <20241114090810.1961175-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is a little safer than leaving it to hope.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>

v2:
 * New.
---
 xen/arch/x86/boot/trampoline.S | 2 ++
 xen/arch/x86/xen.lds.S         | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index b8ab0ffdcbb0..55e4a3e402f7 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -161,6 +161,8 @@ GLOBAL(trampoline_cpu_started)
         .equ    wakeup_stack, trampoline_start + PAGE_SIZE
         .global wakeup_stack
 
+LABEL(trampoline_perm_end, 0)
+
 /* From here on early boot only. */
 
         .code32
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 35693f6e3380..221fc2ef3f35 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -410,6 +410,13 @@ ASSERT(!SIZEOF(.plt),      ".plt non-empty")
 ASSERT(!SIZEOF(.rela),     "leftover relocations")
 #endif
 
+/*
+ * The permanent trampoline resides in a single 4k page.  Placement logic
+ * takes care to ensure that trampoline_phys is page aligned.
+ */
+ASSERT((trampoline_perm_end - trampoline_start) <= PAGE_SIZE,
+       "Permentant trampoline too large")
+
 ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_SPACE - MBI_SPACE_MIN,
     "not enough room for trampoline and mbi data")
 ASSERT((wakeup_stack - wakeup_stack_start) >= WAKEUP_STACK_MIN,
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:08:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836109.1251979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVpt-0003u6-Vq; Thu, 14 Nov 2024 09:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836109.1251979; Thu, 14 Nov 2024 09: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 1tBVpt-0003tz-RO; Thu, 14 Nov 2024 09:08:21 +0000
Received: by outflank-mailman (input) for mailman id 836109;
 Thu, 14 Nov 2024 09: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBVps-0003tk-3C
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:08:20 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fadcbc01-a267-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 10:08:14 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2feeb1e8edfso5098251fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:08:14 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046ea8sm38491166b.169.2024.11.14.01.08.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 01:08: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: fadcbc01-a267-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMjkiLCJoZWxvIjoibWFpbC1sajEteDIyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZhZGNiYzAxLWEyNjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc1Mjk0LjcwNjc1OSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731575293; x=1732180093; 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=xg3eV6uJILkADE5DXTSpz+DPEuz4PXNYB35N4fo4Fi0=;
        b=aAyx5GpbYUWWKjJiSfh7vuKJoAz+lOcmKhMMGWQp7Jur8o38CEBK3cC5tkpgTHyTqP
         Rd1dm4czB2UGLxSEhOTanFdZThUKADDM+h0m7E4QOX+CiCVTLUXTnWz9c8boSjrl0lEA
         dyC0gMZeFHMFOdEqe0QMbwohcOLd16ngcz8kM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731575293; x=1732180093;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xg3eV6uJILkADE5DXTSpz+DPEuz4PXNYB35N4fo4Fi0=;
        b=NF1jKPEpWe0vbp22BjiffVzlMe+oMFaia0HB51yyD53qW5KyzQL7oZbb4tFgqt3vyj
         sRdCdRkOXHh9Es3rw9ncJ7x/tBGdmcCOgHNN+a0qKxE7t+Nu5oBiqPsQsS8QK856MLgF
         e9eOU7c44d3d0dKwmCoASFTu0mWDBaXRaqNP4KYgGEEuSgi7OZ4b1/CTeL3wvnEwZj/R
         T5Me6oXHE8D1ihOC/xlYZZjWj0m9hJcgdrslfWlM8Qz31l7DrXea9sxKLvJLfpAO/swi
         21ofDRQ5JugEYmb2LeSI1SlLhcvhC3K6e3UsEhoRBj9i5dKLDZ51uMLxEfg3U+w5OHBV
         gEsg==
X-Gm-Message-State: AOJu0YwlwJOpPuXkPIw2sOmzsvOPwxe0l8OexUuaaT4VCAIFN5S4ZI7y
	omz8Ibu56CoLsc5OAS/xXY07feLZKuiuAMHFUMbO7Ge7+a1txULY0KzWdq/2mYmUZ7peG2Njjd/
	u
X-Google-Smtp-Source: AGHT+IFLQdFCkbuz45UNPeZ1l1awh3bt0/W/mWZ/Wq3QA9BWaewXHsF1JqHAfC+gCPpvygFlKrkpUw==
X-Received: by 2002:a05:6512:ea4:b0:539:8f68:e036 with SMTP id 2adb3069b0e04-53da5c4d19fmr1204067e87.34.1731575293362;
        Thu, 14 Nov 2024 01:08:13 -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?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v2 0/4] x86/trampoline: Layout description improvements.
Date: Thu, 14 Nov 2024 09:08:06 +0000
Message-Id: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0Cc: Jan Beulich <JBeulich@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Extended somewhat from v1.  See patches for differences.

Andrew Cooper (4):
  x86/trampoline: Check the size permanent trampoline at link time
  x86/trampoline: Simplify the wakeup_stack checks
  x86/trampoline: Document how the trampoline is laid out
  x86/trampoline: Rationalise the constants to describe the size

 xen/arch/x86/boot/head.S              | 23 ++--------
 xen/arch/x86/boot/reloc.c             |  5 +--
 xen/arch/x86/boot/trampoline.S        |  5 +--
 xen/arch/x86/boot/wakeup.S            |  8 ++--
 xen/arch/x86/efi/efi-boot.h           |  2 +-
 xen/arch/x86/include/asm/config.h     |  6 ---
 xen/arch/x86/include/asm/trampoline.h | 65 ++++++++++++++++++++++++++-
 xen/arch/x86/xen.lds.S                | 15 +++++--
 8 files changed, 88 insertions(+), 41 deletions(-)


base-commit: 380b32a476e714275c53e51f6482b3b650aff6f8
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:08:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836112.1252009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVpv-0004cF-TF; Thu, 14 Nov 2024 09:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836112.1252009; Thu, 14 Nov 2024 09: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 1tBVpv-0004bu-P9; Thu, 14 Nov 2024 09:08:23 +0000
Received: by outflank-mailman (input) for mailman id 836112;
 Thu, 14 Nov 2024 09:08: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBVpu-0003tk-Sv
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:08:22 +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 fdcb9904-a267-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 10:08:19 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-aa20c733e92so46059066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:08:19 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046ea8sm38491166b.169.2024.11.14.01.08.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 01:08: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: fdcb9904-a267-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZkY2I5OTA0LWEyNjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc1Mjk5LjY3NTcyOCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731575298; x=1732180098; 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=vgFck1QSX+DGBvLH2KMed7bPHmM2CfMPurcUyYk6r4Y=;
        b=vzvinA1wTTdh3j9arAF0+e6rU0/x8kIFIdcyT6X63ZF2fhWcBVLnHgv/+zOpc0/Iam
         bBfGAit6WratVlmW1MiwZll8qTXcfwgiTfbVIS0D/Uj3MNg6kN3lAJGxQAoRTagXIaZp
         LTKsAgLsAeM2KMcEZp4yIbDGDHi2ikranLwR0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731575298; x=1732180098;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=vgFck1QSX+DGBvLH2KMed7bPHmM2CfMPurcUyYk6r4Y=;
        b=e6j+XqcH1IJqSOmCzT65IQqlJgnhyiEmLdCFnoXFg+FTLySIKmbP+DMGmZto4VwDev
         oxVoBFWWN05xaKTLmjG+OAtO8dT0fP0UVn1Z+HPFpvLfBTjkMi0J7Sbt6+o6QsSc7qRp
         wY2PnZZgAsagfhHWqYTAto+m+bg4NvHPNQbi0Tq4G5ZezuL/WeYUqQq3uaUgr+WohAxR
         u1soxUGAV5wX/pm4ATH6PeBE+OIPQQMAAZMY4KmIO/LzPjcPN65pQqxjrVUIGBjWiuMG
         b6aRnN4GD+ZGpXn7QHZ9H5O3Hc2YZmFTyCUOuvJnURbDADoYfD6peCnqOHi7mAcV4tWm
         h0Bw==
X-Gm-Message-State: AOJu0YweVkJo+dVKd1tMgQJu2NJRC3Mvre45wlfEnTLacBobRoB08rDr
	SvQLtndBBQByJk+WAr/5UeoBauHmSy2xMc7+xkgLIaMXchZ5uNON5IgvNloKcnlrU94RflPa3nl
	H
X-Google-Smtp-Source: AGHT+IGZHkJEdE1B32ImTc9NSeQumCnYUCr+A7iFP2bccfMOo0dXV25Wp/aOvAqzwA8rvVDqrOeMIQ==
X-Received: by 2002:a17:907:a44:b0:a9a:a5c:e23b with SMTP id a640c23a62f3a-aa1f813e608mr578789166b.58.1731575297951;
        Thu, 14 Nov 2024 01:08: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>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v2 3/4] x86/trampoline: Document how the trampoline is laid out
Date: Thu, 14 Nov 2024 09:08:09 +0000
Message-Id: <20241114090810.1961175-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is, to the best of my knowledge, accurate.  I am providing no comment on
how sane I believe it to be.

At the time of writing, the sizes of the regions are:

          offset  size
  AP:     0x0000  0x00b0
  S3:     0x00b0  0x0229
  Boot:   0x02d9  0x1697
  Heap:   0x1970  0xe690
  Stack:  0xf000  0x1000

and wakeup_stack overlays boot_edd_info.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>

v2:
 * Rebase over the introduction of trampoline_perm_end
 * Fix the description of the boot stack position
---
 xen/arch/x86/include/asm/trampoline.h | 57 ++++++++++++++++++++++++++-
 1 file changed, 55 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
index 8c1e0b48c2c9..559111d2ccfc 100644
--- a/xen/arch/x86/include/asm/trampoline.h
+++ b/xen/arch/x86/include/asm/trampoline.h
@@ -37,12 +37,65 @@
  * manually as part of placement.
  */
 
+/*
+ * Layout of the trampoline.  Logical areas, in ascending order:
+ *
+ * 1) AP boot:
+ *
+ *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
+ *    mapping (which must be executable) can at least be Read Only.
+ *
+ * 2) S3 resume:
+ *
+ *    The S3 wakeup logic may need to interact with the BIOS, so needs a
+ *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
+ *    arbitrary part of the the boot trampoline.  The stack is only used with
+ *    paging disabled.
+ *
+ * 3) Boot trampoline:
+ *
+ *    The boot trampoline collects data from the BIOS (E820/EDD/EDID/etc), so
+ *    needs a stack.  The stack pointer is set to trampoline_phys + 64k, is 4k
+ *    in size, and only used with paging disabled.
+ *
+ * 4) Heap space:
+ *
+ *    The first 1k of heap space is statically allocated scratch space for
+ *    VESA information.
+ *
+ *    The remainder of the heap is used by reloc(), logic which is otherwise
+ *    outside of the trampoline, to collect the bootloader metadata (cmdline,
+ *    module list, etc).  It does so with a bump allocator starting from the
+ *    end of the heap and allocating backwards.
+ *
+ * 5) Boot stack:
+ *
+ *    The boot stack is 4k in size at the end of the trampoline, taking the
+ *    total trampoline size to 64k.
+ *
+ * Therefore, when placed, it looks somewhat like this:
+ *
+ *    +--- trampoline_phys
+ *    v
+ *    |<-------------------------------64K------------------------------->|
+ *    |<-----4K----->|                                         |<---4K--->|
+ *    +-------+------+-+---------------------------------------+----------+
+ *    | AP+S3 |  Boot  | Heap                                  |    Stack |
+ *    +-------+------+-+---------------------------------------+----------+
+ *    ^       ^   <~~^ ^                                    <~~^       <~~^
+ *    |       |      | +- trampoline_end[]                     |          |
+ *    |       |      +--- wakeup_stack      reloc() allocator -+          |
+ *    |       +---------- trampoline_perm_end      Boot Stack ------------+
+ *    +------------------ trampoline_start[]
+ */
+
 #include <xen/compiler.h>
 #include <xen/types.h>
 
 /*
- * Start and end of the trampoline section, as linked into Xen.  It is within
- * the .init section and reclaimed after boot.
+ * Start and end of the trampoline section, as linked into Xen.  This covers
+ * the AP, S3 and Boot regions, but not the heap or stack.  It is within the
+ * .init section and reclaimed after boot.
  */
 /* SAF-0-safe */
 extern char trampoline_start[], trampoline_end[];
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:08:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:08:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836113.1252019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBVpz-0004vY-4U; Thu, 14 Nov 2024 09:08:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836113.1252019; Thu, 14 Nov 2024 09:08: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 1tBVpy-0004vP-WB; Thu, 14 Nov 2024 09:08:26 +0000
Received: by outflank-mailman (input) for mailman id 836113;
 Thu, 14 Nov 2024 09:08: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBVpy-0003tk-4l
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:08:26 +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 ff9d46c9-a267-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 10:08:22 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9ed7d8c86cso67320066b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:08:22 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046ea8sm38491166b.169.2024.11.14.01.08.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 01:08: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: ff9d46c9-a267-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZmOWQ0NmM5LWEyNjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc1MzAyLjcyOTE2LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731575300; x=1732180100; 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=AzhC3CskSAYSceEJrXwog7riTboPPINw/IB+Rl7oKhQ=;
        b=u3HBvDtSLa60U0ewO92D+YXUtdDWk/aYPv2INQ7VVoTVNnmET0NcGn2Yn8GtdyEv9m
         XqlJM4aJ5OQ+LO7Ecp9Lcrzh9QlUjC7pKbdwU5krkM7awmtA262AS6x1xBi0NUhbU97r
         wLw355rHKcysRqQQ6kpV2dOwL6AQFyaLGKZkU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731575300; x=1732180100;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AzhC3CskSAYSceEJrXwog7riTboPPINw/IB+Rl7oKhQ=;
        b=o/hQDOWivXO1CxaF8Vfkw1DJ3xufGamJYDTfcOYABV9VjeaPCsWHeK6G1d68uvY0c9
         CBm7YMU3nrNfCmF3wU+F/8oalWQWbVYYVfGKwnqAwuVLP4HUm8dWxKGHifBrDJ8AqhAa
         lkAPPL0ADdDQ36oQ0ezq+zAoZzvn/gFd2MGzFU4JW1B7C+Xr9KRyweu/+RhutI/MykNv
         nI8Uf30zZUSBmFTokHEPwTQiNcY6pKqTnXLByB+6lX9c7w1HIcDASFjvg0wPSf4q+mf9
         LmnCAUk0r1KZjAeXhifbrw4YlKqYRU3d46GXHUfmYs/4pH542wSi+OCBktu/mRgET79F
         fnjQ==
X-Gm-Message-State: AOJu0YzB1X+GgUiR15neXECUG0Brdm64N9asFIgwgNg4k/cWevQeZApq
	/6kxn7wTQVVIc7kaB5wXdH2d3DEO8IpHVJ/i5HbOgrjFW5PRpr+iCKPflpHtDZnsgeC2GEJFQGC
	6
X-Google-Smtp-Source: AGHT+IGy4EuJZwRq5bc/7ApZUcEBGKmle0oLQ/NfTck0CKaeiRQyx/m9zDmYBW9ih+vPq0IMEKeLmg==
X-Received: by 2002:a17:906:99c4:b0:a99:caf5:c897 with SMTP id a640c23a62f3a-aa1f805886emr570186566b.20.1731575299947;
        Thu, 14 Nov 2024 01:08:19 -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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v2 4/4] x86/trampoline: Rationalise the constants to describe the size
Date: Thu, 14 Nov 2024 09:08:10 +0000
Message-Id: <20241114090810.1961175-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The logic is far more sane to follow with a total size, and the position of
the end of the heap.  Remove or fix the remaining descriptions of how the
trampoline is laid out.

Move the relevant constants into trampoline.h, which requires making the
header safe to include in assembly files.

No functional change.  The compiled binary is identical.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>

v2:
 * Fix typos
 * Rebase over removal of WAKEUP_STACK_MIN
 * Move constants into trampoline.h
---
 xen/arch/x86/boot/head.S              | 23 ++++-------------------
 xen/arch/x86/boot/reloc.c             |  5 ++---
 xen/arch/x86/efi/efi-boot.h           |  2 +-
 xen/arch/x86/include/asm/config.h     |  4 ----
 xen/arch/x86/include/asm/trampoline.h |  8 ++++++++
 xen/arch/x86/xen.lds.S                |  3 ++-
 6 files changed, 17 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index dcda91cfda49..1b3bd16fe575 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -8,6 +8,8 @@
 #include <asm/processor.h>
 #include <asm/msr-index.h>
 #include <asm/cpufeature.h>
+#include <asm/trampoline.h>
+
 #include <public/elfnote.h>
 
 #define ENTRY(name)                             \
@@ -494,7 +496,7 @@ trampoline_bios_setup:
 
 2:
         /* Reserve memory for the trampoline and the low-memory stack. */
-        sub     $((TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE)>>4),%ecx
+        sub     $TRAMPOLINE_SIZE >> 4, %ecx
 
         /* From arch/x86/smpboot.c: start_eip had better be page-aligned! */
         xor     %cl, %cl
@@ -525,23 +527,6 @@ trampoline_setup:
         mov     %eax, sym_esi(multiboot_ptr)
 2:
 
-        /*
-         * Now trampoline_phys points to the following structure (lowest address
-         * is at the bottom):
-         *
-         * +------------------------+
-         * | TRAMPOLINE_STACK_SPACE |
-         * +------------------------+
-         * |     Data (MBI / PVH)   |
-         * +- - - - - - - - - - - - +
-         * |    TRAMPOLINE_SPACE    |
-         * +------------------------+
-         *
-         * Data grows downwards from the highest address of TRAMPOLINE_SPACE
-         * region to the end of the trampoline. The rest of TRAMPOLINE_SPACE is
-         * reserved for trampoline code and data.
-         */
-
         /* Interrogate CPU extended features via CPUID. */
         mov     $1, %eax
         cpuid
@@ -713,7 +698,7 @@ trampoline_setup:
 1:
         /* Switch to low-memory stack which lives at the end of trampoline region. */
         mov     sym_esi(trampoline_phys), %edi
-        lea     TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE(%edi),%esp
+        lea     TRAMPOLINE_SIZE(%edi), %esp
         lea     trampoline_boot_cpu_entry-trampoline_start(%edi),%eax
         pushl   $BOOT_CS32
         push    %eax
diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index e50e161b2740..7a375ad41c1c 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -65,7 +65,7 @@ typedef struct memctx {
     /*
      * Simple bump allocator.
      *
-     * It starts from the base of the trampoline and allocates downwards.
+     * It starts from end of the trampoline heap and allocates downwards.
      */
     uint32_t ptr;
 } memctx;
@@ -349,8 +349,7 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, memctx *ctx)
 /* SAF-1-safe */
 void *reloc(uint32_t magic, uint32_t in)
 {
-    /* Get bottom-most low-memory stack address. */
-    memctx ctx = { trampoline_phys + TRAMPOLINE_SPACE };
+    memctx ctx = { trampoline_phys + TRAMPOLINE_HEAP_END };
 
     switch ( magic )
     {
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 7930b7c73892..9d3f2b71447e 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -633,7 +633,7 @@ static void __init efi_arch_memory_setup(void)
     if ( efi_enabled(EFI_LOADER) )
         cfg.size = trampoline_end - trampoline_start;
     else
-        cfg.size = TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
+        cfg.size = TRAMPOLINE_SIZE;
 
     status = efi_bs->AllocatePages(AllocateMaxAddress, EfiLoaderData,
                                    PFN_UP(cfg.size), &cfg.addr);
diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index 84696e0a7db5..19746f956ec3 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -51,10 +51,6 @@
 
 #define IST_SHSTK_SIZE 1024
 
-#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
-#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
-#define MBI_SPACE_MIN           (2 * PAGE_SIZE)
-
 /* Primary stack is restricted to 8kB by guard pages. */
 #define PRIMARY_STACK_SIZE 8192
 
diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
index 559111d2ccfc..cb3e3d06c7bc 100644
--- a/xen/arch/x86/include/asm/trampoline.h
+++ b/xen/arch/x86/include/asm/trampoline.h
@@ -90,6 +90,13 @@
  */
 
 #include <xen/compiler.h>
+
+#define TRAMPOLINE_SIZE         KB(64)
+#define TRAMPOLINE_HEAP_END     (TRAMPOLINE_SIZE - PAGE_SIZE)
+#define MBI_SPACE_MIN           (2 * PAGE_SIZE)
+
+#ifndef __ASSEMBLY__
+
 #include <xen/types.h>
 
 /*
@@ -160,4 +167,5 @@ extern uint8_t kbd_shift_flags;
 extern uint16_t boot_edid_caps;
 extern uint8_t boot_edid_info[128];
 
+#endif /* !__ASSEMBLY__ */
 #endif /* X86_ASM_TRAMPOLINE_H */
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 224b46771d0c..42217eaf2485 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -9,6 +9,7 @@
 #endif
 #include <xen/xen.lds.h>
 #include <asm/page.h>
+#include <asm/trampoline.h>
 
 #ifdef EFI
 
@@ -420,5 +421,5 @@ ASSERT(!SIZEOF(.rela),     "leftover relocations")
 ASSERT((trampoline_perm_end - trampoline_start) <= 1024,
        "Permentant trampoline too large")
 
-ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_SPACE - MBI_SPACE_MIN,
+ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_HEAP_END - MBI_SPACE_MIN,
     "not enough room for trampoline and mbi data")
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:33:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:33:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836155.1252029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWDe-0002Q7-Un; Thu, 14 Nov 2024 09:32:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836155.1252029; Thu, 14 Nov 2024 09: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 1tBWDe-0002Q0-RG; Thu, 14 Nov 2024 09:32:54 +0000
Received: by outflank-mailman (input) for mailman id 836155;
 Thu, 14 Nov 2024 09: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWDc-0002Ps-Rg
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:32:52 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 68eb9ebe-a26b-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 10:32:47 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2fb5fa911aaso6041171fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:32: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-432da244924sm17233795e9.7.2024.11.14.01.32.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 01:32: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: 68eb9ebe-a26b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzMiLCJoZWxvIjoibWFpbC1sajEteDIzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY4ZWI5ZWJlLWEyNmItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTc2NzY3Ljg3MzM5NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731576767; x=1732181567; 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=CzXrmpKY1AwjTX7JjIVttAni6DzCxl8k37LNhWVE4xI=;
        b=Z9HKLu3fTx8W5tnV1rOpCaWKq9Sg6mc8UIIEwzmaEOnu0PxjOt6f6f4Ej6th4ZwF9u
         YmowEL3k+QbcIKy4BYs9BMeIhTQLiU4uAkC7lz2Y1olFrem3MwFuskqt2ji77XP7HEnl
         LHW1UYE1gPtbWvsV+CoBWFLuhH9x2ub0INKGDJC/NNfcfRpGqRJNaMMAZWU358aECgnV
         jstrplap7SSnThW/E5SvJ0aYDsg+b/cdk1PM8GfjP2bu5otl0fe4Te//9UIISyw3U3Cs
         rZmBvqwXpmagQEdg3VBhQdGFm5mUv7em/LCPOt47Zv/0aJl8DHOQItE8TswYKIinOWVy
         K6Cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731576767; x=1732181567;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CzXrmpKY1AwjTX7JjIVttAni6DzCxl8k37LNhWVE4xI=;
        b=iXPy3l5H96+kchGWPeoyoLBmaLa60r1LnDkrPIGGyvvP6GGEiRCjS6HZ/1dv2dgIm9
         UIsccNKy5NunUbS/eVoqTQLWaw9hNanmRc4Pb/ak9MdDxjAJvQMORmIM8DTMnufQH3R1
         ke1a8kcmjlT90IEpzu63gU3BVDTOQomopZaS+SC+B8sUIV1oU4dyikf/WfxrcSg6VFOa
         CVkHbVIowUzX1BBSPLX2tLdKIvwTYtV99Ax42/TkoFP9wBFpYGBj3Ta9mqPUkcTmRCCm
         cTGqOEV6gK+mTS3OnIwqaObKwqa2ZeUX3kx/PKQcR8db3dnSEy6rvWKU32DRaBCXA+Mg
         y+7w==
X-Forwarded-Encrypted: i=1; AJvYcCUD6bWdgdLyCdR8kYJ9eU8NeFhf/cIgzAiMrcOj8ib0AXwQsv0q1JOOzYZDjvNZ5Z6nH1N6E2exVQ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYhGdvGl69vBbC5V1J4GaTzEhTEthbj03austMr9A7dcmEOmp5
	yKTYWbrBiTyX8dGfdk1tIwJkPNWCl8r0iHsjmED8yqRu0TYGIzprmiR5Ft5j5g==
X-Google-Smtp-Source: AGHT+IHE7fDkyB35uuCrBW4Nz99ABm/O5HwOliuZXdahrOdib1s1d71HXmngT11EV4b4HDMRPzn/Rg==
X-Received: by 2002:a2e:b896:0:b0:2ff:559e:c877 with SMTP id 38308e7fff4ca-2ff5909e884mr11336211fa.33.1731576767119;
        Thu, 14 Nov 2024 01:32:47 -0800 (PST)
Message-ID: <318c3af2-6233-4778-9fe9-2f9397025039@suse.com>
Date: Thu, 14 Nov 2024 10:32:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/multicall: Change nr_calls to uniformly be
 unsigned long
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20240621205800.329230-1-andrew.cooper3@citrix.com>
 <20240621205800.329230-3-andrew.cooper3@citrix.com>
 <660fc551-c6bc-456f-8e9e-80b3e592fece@suse.com>
 <alpine.DEB.2.22.394.2411121912400.222505@ubuntu-linux-20-04-desktop>
 <35b585a0-7d19-4b02-8ad6-90c7df3ae6ac@suse.com>
 <alpine.DEB.2.22.394.2411131825400.222505@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.2411131825400.222505@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 03:34, Stefano Stabellini wrote:
> On Wed, 13 Nov 2024, Jan Beulich wrote:
>> On 13.11.2024 04:15, Stefano Stabellini wrote:
>>> It is challenging to create a solution that satisfies everyone for this
>>> patch. However, we should add R8.3 to the clean list as soon as possible
>>> to enable rule blocking in GitLab-CI. Failing to do so risks introducing
>>> regressions, as recently occurred, undoing the significant efforts made
>>> by Bugseng and the community over the past year.
>>>
>>> Unless there is a specific counterproposal, let us proceed with
>>> committing this patch.
>>
>> Well, I find this odd. We leave things sit in limbo for months and then
>> want to go ahead with a controversial solution? Rather than actually
>> (and finally) sorting out the underlying disagreement (of which there
>> are actually two sufficiently separate parts)? Plus ...
> 
> The reason is that several MISRA regressions were recently introduced.
> These regressions could have been easily detected by GitLab CI if we had
> marked the rules as clean. I believe we should expedite accepting the
> fixes and marking the rules as clean. We can always adjust the fixes or
> deviations later to better suit our preferences. In my opinion, we
> should prioritize marking the rules as clean.
> 
> 
>>> On Mon, 24 Jun 2024, Jan Beulich wrote:
>>>> On 21.06.2024 22:58, Andrew Cooper wrote:
>>>>> Right now, the non-compat declaration and definition of do_multicall()
>>>>> differing types for the nr_calls parameter.
>>>>>
>>>>> This is a MISRA rule 8.3 violation, but it's also time-bomb waiting for the
>>>>> first 128bit architecture (RISC-V looks as if it might get there first).
>>>>>
>>>>> Worse, the type chosen here has a side effect of truncating the guest
>>>>> parameter, because Xen still doesn't have a clean hypercall ABI definition.
>>>>>
>>>>> Switch uniformly to using unsigned long.
>>>>
>>>> And re-raising all the same question again: Why not uniformly unsigned int?
>>>> Or uint32_t?
>>
>> ... this question of mine effectively represents a concrete alternative
>> proposal (or even two, if you like).
>>
>> The two parts where there appears to be disagreement are:
>> 1) When to (not) use fixed width types, as presently outlined in
>>    ./CODING_STYLE.
>> 2) How to type C function parameters called solely from assembly code (of
>>    which the hypercall handlers are a subset).
>>
>> And maybe
>> 2b) How to best express such function parameters when they're (sometimes)
>>     shared between native and compat handlers.
>>
>> Of course 2) is affected by, as Andrew validly says, there not being a
>> formally clean ABI definition.
>>
>> My fear is that if this gets committed as is, it'll be used as a handle to
>> force in further similarly questionable / controversial changes to other
>> hypercall handlers. Which is why I think the controversy needs sorting out
>> first (which admittedly is hard when the ABI is fuzzy).
> 
> While I appreciate your concern, as you know, aligning on the topics
> above takes time. I do not believe it is in the interest of the
> community, both contributors and reviewers, to delay marking this rule
> as clean. Honestly, I do not mind how it gets marked as clean, as long
> as we do it soon.
> 
> Additionally, please keep in mind that the Xen Project tends to have a
> long memory. As a result, there is usually little risk of the so-called
> "slippery slope" problem.
> 
> If you prefer a deviation I am OK with that too. I just want 8.3 as
> clean :-) 

No, please no deviations when we can avoid them. Since it feels like it's
always (going to be?) me to give in when there is such disagreement, why
don't I do so here as well: Go ahead.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:39:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836165.1252039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWK7-00037D-JF; Thu, 14 Nov 2024 09:39:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836165.1252039; Thu, 14 Nov 2024 09:39: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 1tBWK7-000376-GJ; Thu, 14 Nov 2024 09:39:35 +0000
Received: by outflank-mailman (input) for mailman id 836165;
 Thu, 14 Nov 2024 09:39: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWK5-000370-B4
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:39:33 +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 58ff5287-a26c-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 10:39:30 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-37d49ffaba6so294922f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:39: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
 ffacd0b85a97d-3821adad3dcsm953492f8f.31.2024.11.14.01.39.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 01:39: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: 58ff5287-a26c-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU4ZmY1Mjg3LWEyNmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTc3MTcwLjcwNzYzNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731577170; x=1732181970; 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=RTeIcfRu8RRFkWV4gv7PBAqKjvdu0cbqiaNz4sH7gAY=;
        b=O8kjVKkrJyYEgfW6m4xdCx+SUUa9goQOyy2EWwx31uDWxCJGu5vX4NuXdHnjmZkY1O
         sbrhQHp+FsjQmi5pbM6CBikihl7WovyPXPq0vs65T33OFQ56Qt6Qwuq5nU7MSbwSQc6O
         eafNboKAU0ak8Ms3XieeLb55mppHol5/bWg503SR+Goo6maT3f4U1kbLUPlUXRMaXoc5
         GvOeabMQb7vtTM1n0lwaLda+pYjGFu77Aut4NCjH7XFoiVxlxEevrO1sMdNeLS0vkhm2
         ytx5gMiNr1uBIIleRNI04GH2bHJ7YF4JfExzTtaX3DtVcohHkJow6yshhpbICoPM394s
         lwjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731577170; x=1732181970;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RTeIcfRu8RRFkWV4gv7PBAqKjvdu0cbqiaNz4sH7gAY=;
        b=aKHLE/LDAXmz0sFXktkUZd5ONkRLuJDdPmJKD4fYU0vWi7hdYe8kKmpCTr4M60GFBS
         W2Z4e2dzKUOgQFjAZ/Cq9hZqtFB9zhvmrmee6Wpk507jYH9cNJsc0Vv5kC1h/jly+kSB
         ZAL/32afD3fbE7uYR+PKtkNHMqLv7Fjn4JEdmmXNNEY/jcu9slWBha5xkDtyOjnvB9V5
         55zi6/8JNASZo8UTSPmFtK9I+lsee7xj72P9GrXtQgN+u1rjw49e7BG78Qj4/YWsg9zF
         PIJuRvXqbn57kr2lt2k559trVbWb212KogA7ZzVsWS2lI0KGdxsXipqb4wJToU1iB4CE
         R3ew==
X-Forwarded-Encrypted: i=1; AJvYcCX/KJlW0kWVUtWlWLM287u6+0Mn08F1965rqwC580Uh2UjBd/e05+oAFp+It7NN+Ibu0hZINbhtHRE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyzP8rh6c2DYSAXyQz+Fn8w2QB1qsVYpiCQ0WY9dndHEVb1Afk
	rz1v/2bl/bklrK27sQGcSW4IjMANXTMZfqw3o7ORYdtqGCT9tsRq/V2nnrJgOw==
X-Google-Smtp-Source: AGHT+IGHphfRvmW722/TdJAZkp3QG9AaByMTNR+qbPHkvngQpqNgSwW1sNaqjUijvyXGt7Eqo+LYTw==
X-Received: by 2002:a5d:5d88:0:b0:37d:4332:e91d with SMTP id ffacd0b85a97d-38208349f38mr8373766f8f.52.1731577169973;
        Thu, 14 Nov 2024 01:39:29 -0800 (PST)
Message-ID: <9815fb42-9205-4740-97b4-0b915de0c71b@suse.com>
Date: Thu, 14 Nov 2024 10:39:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86emul: ignore VEX.W for BMI{1,2} insns in 32-bit
 mode
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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
 <6442a109-de9a-4b81-a283-2d72bbc3d284@citrix.com>
 <3788f564-7f02-4e2e-ac4c-b29214206e0d@suse.com>
 <876f727c-8929-4149-af72-c3344db06e31@citrix.com>
 <935442f7-4821-4215-a053-eeb1347282bb@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: <935442f7-4821-4215-a053-eeb1347282bb@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 14:32, Andrew Cooper wrote:
> On 13/11/2024 1:31 pm, Andrew Cooper wrote:
>> On 13/11/2024 8:01 am, Jan Beulich wrote:
>>> On 13.11.2024 01:24, Andrew Cooper wrote:
>>>> On 12/11/2024 3:00 pm, Jan Beulich wrote:
>>>>> While result values and other status flags are unaffected as long as we
>>>>> can ignore the case of registers having their upper 32 bits non-zero
>>>>> outside of 64-bit mode, EFLAGS.SF may obtain a wrong value when we
>>>>> mistakenly re-execute the original insn with VEX.W set.
>>>>>
>>>>> Note that the memory access, if any, is correctly carried out as 32-bit
>>>>> regardless of VEX.W.
>>>> I don't understand why this is true.
>>> This talks about the access to guest memory, which is op_bytes based.
>>> And op_bytes determination handles VEX.W correctly afaics. I've added
>>> "guest" near the start of the sentence for clarification.
>> Ah - that makes things much clearer.
>>
>> I had neglected to consider the access to guest memory.
>>
>> In addition to a "guest" earlier, I'd suggest having a new paragraph at
>> this point, and ...
>>
>>>> If we write out a VEX.W=1 form of BEXTR/etc and emulate while in 64bit
>>>> mode, it will have an operand size of 64.
>>>>
>>>> I can believe that ...
>>>>
>>>>>  Internal state also isn't leaked, as the field the
>>>>> memory value is read into (which is then wrongly accessed as a 64-bit
>>>>> quantity when executing the stub) is pre-initialized to zero.
>> ... this reading:
>>
>> "The emulator-local memory operand will be accessed as a 64-bit
>> quantity, but it is pre-initialised to zero so no internal state an leak"
>>
>> or similar.

That's to _replace_ the "Internal state ..." sentence then, rather than an
added separate sentence / paragraph? It says exactly the same, after all.

> Oh, and Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks, but I'll wait some for clarification above.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 09:49:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 09:49:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836176.1252048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWTS-00056L-Hi; Thu, 14 Nov 2024 09:49:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836176.1252048; Thu, 14 Nov 2024 09:49: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 1tBWTS-00056E-Ex; Thu, 14 Nov 2024 09:49:14 +0000
Received: by outflank-mailman (input) for mailman id 836176;
 Thu, 14 Nov 2024 09:49: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWTR-000568-PM
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 09:49:13 +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 b229a5f5-a26d-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 10:49:09 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4314b316495so3848925e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 01:49: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-432da28ce85sm17457885e9.33.2024.11.14.01.49.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 01:49: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: b229a5f5-a26d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIyMjlhNWY1LWEyNmQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc3NzQ5LjgwMDY1Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731577749; x=1732182549; 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=Up+iFaJHYPNUOeLjA3/ZsmFjnxYtZ+EvrYGxpcojQXs=;
        b=VXRyIZ6eJikagW88lX8IEWgutZVsigglGzIZC/8/A4IFWr/fr+n4WQo4BatHqPvrvZ
         4I7cPo91RDNZ6HJmcqB5D9IdHHtAJspWq0UbGAZmjx6Q4qaJOzwc4A8ui4rLNfiLw1xV
         gGFZZb0d7IazBHWx80V714/ZSNCLgDfIB+dvIWaWMkRStGMFfxuj40enD3d79jqtLhaw
         IJjY8LHzQF+8Vu0oHrlshfNVn/Iu4CPX44X9AVC6fuGWJV7X/DTaEZpNaOODadonuv3F
         ffFeK7n1LOxw3nHUSXouffnhGwTnK5G6K/VIdYozj5Sn7WW7iX39GloMh36h/4V80fnR
         xfcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731577749; x=1732182549;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Up+iFaJHYPNUOeLjA3/ZsmFjnxYtZ+EvrYGxpcojQXs=;
        b=aGrCvAQTBEcPFBeCBz2toAkiGqNJfLtkXYEpKjTrlazAS5L7Z62G6u7QA24K1XXrrs
         CzNCwy5ie9UE3qms+xfNgcct6dId3knrX48c7EiBWl1DIQ4ohufSlFEual6L8ZvElyBf
         FBLKkSMjLH9uYbZhczWmwcgMhRUgVUXBp75aNaUCGPhhO8qln2wij3+teIX3jdCVjebR
         dYRVHzfZPLefVA/Coj82OgQi9zYGeOfYXh41cb4S6y0CkYHsqTSbavD5DisWhhabY4ix
         XV2byhE+bXwPsyWlFdE0phSmrds7EDBdw6mfRjU+SIMuAQHOBfsV1tEfTOXK3S5tI4w9
         +aFA==
X-Forwarded-Encrypted: i=1; AJvYcCUHoMonFq+k/GP4D2aYJ0taOVdluxFhgm/w/gi8Gb5I6VdVEHaXXmYDxetihIyOmPQXhhz/AO1NyZs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxO+9ZhuZ7drQRKBA4qE1Iq9W9Hz1BA9NZoyOO5UorOwXJwISy
	EhGvlw34sr9ZwViKbnI3fXIYAWRuVSZABHZnJmTOZcZVEMCdNwcVjjKrdyTNCQ==
X-Google-Smtp-Source: AGHT+IGkkZ+Q6WWDX3l5mOvUQWIrWEawfCd4LtQs7KAq32DRAxLdszj1JV10PxynGEO0Aby8SRP8Pg==
X-Received: by 2002:a05:600c:46c8:b0:431:51e5:22fb with SMTP id 5b1f17b1804b1-432d4aaf30fmr58843345e9.14.1731577749021;
        Thu, 14 Nov 2024 01:49:09 -0800 (PST)
Message-ID: <7aaa8eea-247f-43f5-9777-2a3431e0c1a0@suse.com>
Date: Thu, 14 Nov 2024 10:49:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
To: 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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
 <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
 <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
 <aec35a326656a2b976b584ea5467f54cd87ca6d6.camel@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: <aec35a326656a2b976b584ea5467f54cd87ca6d6.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 12:39, oleksii.kurochko@gmail.com wrote:
> On Tue, 2024-11-12 at 12:22 +0100, Jan Beulich wrote:
>> On 11.11.2024 19:16, Oleksii Kurochko wrote:
>>> @@ -25,8 +27,11 @@
>>> Â 
>>> Â static inline void *maddr_to_virt(paddr_t ma)
>>> Â {
>>> -Â Â Â  BUG_ON("unimplemented");
>>> -Â Â Â  return NULL;
>>> +Â Â Â  unsigned long va_offset = maddr_to_directmapoff(ma);
>>> +
>>> +Â Â Â  ASSERT(va_offset < DIRECTMAP_SIZE);
>>
>> Much like with the consideration towards virt_to_maddr() that was
>> corrected from v4, I think this one also needs adjusting:
>>
>> Â Â Â  ASSERT(va_offset < DIRECTMAP_SIZE + (DIRECTMAP_VIRT_START -
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  directmap_virt_start));
>>
>> This is because ...
>>
>>> +Â Â Â  return (void *)(directmap_virt_start + va_offset);
>>
>> ... you're offsetting the VA here. It may then want accompanying
>> by
>>
>> Â Â Â  ASSERT(va_offset >= DIRECTMAP_VIRT_START - directmap_virt_start);
>>
>> (probably to go first).
> I might be misunderstanding something, but shouldn't the assertions be
> as follows?
>    DIRECTMAP_VIRT_START <= (directmap_virt_start + va_offset) <
>    DIRECTMAP_VIRT_SIZE
> 
> So, va_offset should be in the range:
>    DIRECTMAP_VIRT_START - direcmap_virt_start <= va_offset <
>    DIRECTMAP_VIRT_SIZE - directmap_virt_start
>    
> This would make the assertions look like:
>    ASSERT(va_offset < DIRECTMAP_VIRT_SIZE - directmap_virt_tart)
>    ASSERT(va_offset >= DIRECTMAP_VIRT_START - directmap_virt_start)
> 
> So, we have different check for the first ASSERT. Could you please
> clarify where my calculations are wrong?

First and foremost - you can't compare an address (offset or not) against
a size. You can only ever compare it against start / end (again with
possible offsets applied).

>>> @@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t
>>> fdt_paddr)
>>> Â 
>>> Â Â Â Â  return fdt_virt;
>>> Â }
>>> +
>>> +vaddr_t __ro_after_init directmap_virt_start =
>>> DIRECTMAP_VIRT_START;
>>> +
>>> +struct page_info *__ro_after_init frametable_virt_start =
>>> frame_table;
>>> +
>>> +#ifndef CONFIG_RISCV_32
>>> +
>>> +/* Map a frame table to cover physical addresses ps through pe */
>>> +static void __init setup_frametable_mappings(paddr_t ps, paddr_t
>>> pe)
>>> +{
>>> +Â Â Â  static mfn_t __initdata frametable_mfn_start =
>>> INVALID_MFN_INITIALIZER;
>>> +
>>> +Â Â Â  paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>>> +Â Â Â  paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>>> +Â Â Â  unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
>>> +Â Â Â  unsigned long frametable_size = nr_mfns *
>>> sizeof(*frame_table);
>>> +Â Â Â  mfn_t base_mfn;
>>> +
>>> +Â Â Â  if ( mfn_eq(frametable_mfn_start, INVALID_MFN) )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  frametable_mfn_start = maddr_to_mfn(aligned_ps);
>>> +
>>> +Â Â Â Â Â Â Â  frametable_virt_start -= paddr_to_pfn(aligned_ps);
>>> +Â Â Â  }
>>> +Â Â Â  else
>>> +Â Â Â Â Â Â Â  panic("%s shouldn't be called twice\n", __func__);
>>
>> As said on the v4 thread - I don't think this is needed. Aiui Misra
>> would
>> actually dislike it, as it's unreachable code. Just to re-iterate: My
>> complaint there wasn't about this missing check, but about the
>> function
>> partly giving the impression of expecting to be called more than
>> once.
> Iâ€™ll revert this check, then. Would it be betterâ€”and sufficientâ€”to add
> a comment before setup_frametable_mappings() indicating that this
> function should only be called once, to avoid any impression that it
> might be expected to be called multiple times?

You can add such a comment if you like, we we have many functions of this
kind. The important aspect - as said before - is that the function should
not - nowhere - give the impression of possibly expecting to be called
more than once.

>>> +void __init setup_mm(void)
>>> +{
>>> +Â Â Â  const struct membanks *banks = bootinfo_get_mem();
>>> +Â Â Â  paddr_t ram_start = INVALID_PADDR;
>>> +Â Â Â  paddr_t ram_end = 0;
>>> +Â Â Â  unsigned int i;
>>> +
>>> +Â Â Â  /*
>>> +Â Â Â Â  * We need some memory to allocate the page-tables used for
>>> the directmap
>>> +Â Â Â Â  * mappings. But some regions may contain memory already
>>> allocated
>>> +Â Â Â Â  * for other uses (e.g. modules, reserved-memory...).
>>> +Â Â Â Â  *
>>> +Â Â Â Â  * For simplicity, add all the free regions in the boot
>>> allocator.
>>> +Â Â Â Â  */
>>> +Â Â Â  populate_boot_allocator();
>>> +
>>> +Â Â Â  for ( i = 0; i < banks->nr_banks; i++ )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  const struct membank *bank = &banks->bank[i];
>>> +Â Â Â Â Â Â Â  paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
>>> +Â Â Â Â Â Â Â  paddr_t bank_end = ROUNDDOWN(bank->start + bank->size,
>>> PAGE_SIZE);
>>> +Â Â Â Â Â Â Â  unsigned long bank_size = bank_end - bank_start;
>>> +
>>> +Â Â Â Â Â Â Â  ram_start = min(ram_start, bank_start);
>>> +Â Â Â Â Â Â Â  ram_end = max(ram_end, bank_end);
>>> +
>>> +Â Â Â Â Â Â Â  setup_directmap_mappings(PFN_DOWN(bank_start),
>>> PFN_DOWN(bank_size));
>>> +Â Â Â  }
>>> +
>>> +Â Â Â  setup_frametable_mappings(ram_start, ram_end);
>>
>> Just to double check: There is a guarantee that ->nr_banks isn't
>> going to
>> be zero? Else the setup_frametable_mappings() invocation here would
>> badly
>> degenerate.
> Based on the what is mentioned in the device tree spec I would say yes
> but based on the code we have in Xen ( and if I am not confusing
> something ) it is still a chance that ->nr_banks could be zero.
> 
> From the device tree spec:
> ```
> A memory device node is required for all devicetrees and describes the
> physical memory layout for the system. If a system
> has multiple ranges of memory, multiple memory nodes can be created, or
> the ranges can be specified in the reg property
> of a single memory node.
> 
> Property Name  Usage   Value Type           Definition
> device_type     R      <string>             Value shall be â€œmemoryâ€
> reg             R      <prop-encoded-array> ...
> 
> Usage legend: R=Required, O=Optional, OR=Optional but Recommended,
> SD=See Definition
> ```
> 
> So the memory node should present in devicetree ( interesting that few
> years ago I remember that I could build devicetree w/o memory node,
> anyway, Xen cheking a reg property of memory node and panic if
> something wrong ).
> 
> In the same time, based on the code of device_tree_get_meminfo() (
> xen/common/device-tree/bootfdt.c:169 ):
>        prop = fdt_get_property(fdt, node, prop_name, NULL);
>        if ( !prop )
>            return -ENOENT;
>    
>        cell = (const __be32 *)prop->data;
>        banks = fdt32_to_cpu(prop->len) / (reg_cells * sizeof (u32));
>    
>        for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
>        {
>            device_tree_get_reg(&cell, address_cells, size_cells,
>    &start, &size);
>            if ( mem == bootinfo_get_reserved_mem() &&
>                 check_reserved_regions_overlap(start, size) )
>                return -EINVAL;
>            /* Some DT may describe empty bank, ignore them */
>            if ( !size )
>                continue;
>            mem->bank[mem->nr_banks].start = start;
>            mem->bank[mem->nr_banks].size = size;
>            mem->bank[mem->nr_banks].type = type;
>            mem->nr_banks++;
>        }
>    
> It is possible that mem->nr_banks is equal to 0 ( when DT describe only
> empty banks? ) but then it sounds to me like something wrong with DT.
> 
> Just to be sure that everything is okay with ->nr_banks I could suggest
> to add BUG_ON(banks->nr_banks) in setup_mm() before the `for` cycle.
> Does it make sense?

As you likely mean BUG_ON(!banks->nr_banks) - yes. Still this is again a
case where I think panic() is preferable over BUG_ON().

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:06:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:06:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836187.1252058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWjv-0008Qu-TC; Thu, 14 Nov 2024 10:06:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836187.1252058; Thu, 14 Nov 2024 10:06: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 1tBWjv-0008Qn-Qa; Thu, 14 Nov 2024 10:06:15 +0000
Received: by outflank-mailman (input) for mailman id 836187;
 Thu, 14 Nov 2024 10:06: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWju-0008Qe-9v
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:06: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 1292af3c-a270-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 11:06:10 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4315f24a6bbso3892005e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 02:06: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-432dab72159sm14946955e9.5.2024.11.14.02.06.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 02:06: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: 1292af3c-a270-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEyOTJhZjNjLWEyNzAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc4NzcwLjUzNDg3Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731578770; x=1732183570; 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=OjiG5FfzCvUoQmSwAVK3D9jVJJTn3Tm55wP16uDKKg0=;
        b=eakQQh8+EYZGlH1nv5yh/Qhgf0B+JVha05168s2kBldMnhIYv/0DlLFq8Gp2LhEFro
         UDSTrYorg6meuT0PV43Ue7q6tR83Rj3/Eg9+SvHTiZUObqCJrIK9WVUC/hZRaRcF0rSi
         vtoeyiMA0+el5/MEc/BiRhZiZocyslIhgZbBtW6GdWg1xlt6PZGH0sylrn+NCM2Y1EqD
         +40QoHiPvMbO7DCnUNzRqAN0tDbSFMVclhLNzX5S1RtD7zDibuxFpr9TZ40ty8xfSqF6
         VcAi6E5UTNUFfKZnr/A145BEe6I2qHqVFYrfOIto74TObd73EadWr1LKkga5UnQsoOaS
         vUQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731578770; x=1732183570;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OjiG5FfzCvUoQmSwAVK3D9jVJJTn3Tm55wP16uDKKg0=;
        b=s3fLvPoYTKuIEj7AMwnB3aiS62D2QSHERsV0M5p5b8Rr4Gu4YCcdbjMTHQSZUXLCjW
         Fseyb111C7nhJX+GIVVLR4E48ydo8n7k9fi7Hmn5o7bIaInsKbp/u/3R/yQUmK/c3G/2
         Ehh84Ogk7A0133tqjUXkujJof53YYKYmJQKfOuloV6hnyQTfCSJtUlbfUHh+KOF08orL
         x+FrLuRY3rPUc7E7vgQDcV5U32WbSSCKeuzR4LeI0IigHYc0lfXgkR0QgYYj1Os0GGGY
         uFu9es0RwgWZFStifWGpzJvOoOTCnNCi6LtR+QjDvgP1bxdmOk9aiIsG7wNe8Mf8cejH
         fPXQ==
X-Forwarded-Encrypted: i=1; AJvYcCVLVn371ZXMlT0nGzMNo6DL3dug+boxjW1eBuBHX8G4STum5kLztu1k72ROs/aWbqHqAbdAx08erMA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjeQps3V4GXawjzdPgFHtkj1w3SPAaF5nh9vBKegcRu0GXeFpa
	tNyl4HlqR+j5+K1vbPOWi0ae0ry5h2XoGQ6JXC397Oa+FiGFPIeXWfYG08DRVA==
X-Google-Smtp-Source: AGHT+IFP/ZY8/EQ5VQfvxHPCD29G228P470JJ4Rt3JFMLswrI7Q4Zmuzi9ccHf84uVhxKBNBXsN7Og==
X-Received: by 2002:a05:600c:8608:b0:431:4c14:abf4 with SMTP id 5b1f17b1804b1-432b7887154mr206140385e9.14.1731578769889;
        Thu, 14 Nov 2024 02:06:09 -0800 (PST)
Message-ID: <bfa96484-9539-405e-b589-fe478d0c62e5@suse.com>
Date: Thu, 14 Nov 2024 11:06:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/multiboot: Make headers be standalone
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: <20241113185118.1786703-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: <20241113185118.1786703-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2024 19:51, Andrew Cooper wrote:
> --- a/xen/include/xen/multiboot.h
> +++ b/xen/include/xen/multiboot.h
> @@ -17,7 +17,7 @@
>  #ifndef __MULTIBOOT_H__
>  #define __MULTIBOOT_H__
>  
> -#include "const.h"
> +#include <xen/const.h>
>  
>  /*
>   * Multiboot header structure.
> @@ -45,41 +45,43 @@
>  
>  #ifndef __ASSEMBLY__
>  
> +#include <xen/types.h>

Isn't xen/stdint.h sufficient to include both here and ...

> --- a/xen/include/xen/multiboot2.h
> +++ b/xen/include/xen/multiboot2.h
> @@ -114,6 +114,9 @@
>  #define MULTIBOOT2_FRAMEBUFFER_TYPE_EGA_TEXT            2
>  
>  #ifndef __ASSEMBLY__
> +
> +#include <xen/types.h>
> +
>  typedef struct {
>      uint32_t total_size;
>      uint32_t reserved;

... here?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:07:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836193.1252069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWlC-0000VH-5w; Thu, 14 Nov 2024 10:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836193.1252069; Thu, 14 Nov 2024 10:07: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 1tBWlC-0000VA-3I; Thu, 14 Nov 2024 10:07:34 +0000
Received: by outflank-mailman (input) for mailman id 836193;
 Thu, 14 Nov 2024 10:07: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWlB-0000V1-8j
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:07:33 +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 424cf16e-a270-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 11:07:30 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4314f38d274so5410815e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 02:07: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-432dab80869sm14787605e9.22.2024.11.14.02.07.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 02:07: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: 424cf16e-a270-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQyNGNmMTZlLWEyNzAtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTc4ODUwLjc4ODcwOCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731578850; x=1732183650; 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=h35C8okQB3vNG4nYnR3qa6Ma0o9RA/+n/DAO/zZDwzY=;
        b=Guxe0J+fbZQb0rTPaL5MaJ3l2oNdOkFhu50DP+bbF4xbhbla/HXMBjTkewvrvwZtoJ
         mIkSh2JHwJUKRI7wbiPppncMA3tJVCycMvkppbXu51Q2B5DekbZ9Urh3Ws65L4VqF4T5
         EZzmkOpbP5vSzuRJguZWJ2ttLvmj2aQnIlfctNGYBGrFFpUrAM/D1xhCgojTOm6p0PIb
         Ue4E695choF9H8dodtMVHqnOX6AKJoP2pTU4whOZcGhlQDBEcifi1eKci7OyVLS7bCHi
         ilfreoJwkHqcsyyZhANXSPFi6h6mW1fOW/Wp1cmAdmCiWQ66YY7nbF3DEO/+f63L/jEf
         ExvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731578850; x=1732183650;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h35C8okQB3vNG4nYnR3qa6Ma0o9RA/+n/DAO/zZDwzY=;
        b=vPpp88rwohAWBod4Ne1waXxXRdCqfFqZXZZwLorDajKLAk/MXeUkqAieMjlO0cGe8h
         ekXa/SvtwfTMsL7yK/JaCkU3MoZK6oSZvfRRNDApQIM+RfKjW+78r9m/ynTrdkBrh9kj
         oUIkEy51skMpMEawZmc/uxOW3JO2S8AkH7k7IqNsRiw3BQPz5vPL1tkOTA+IqdTA6EvR
         sKLtx0d32SwzQrPmBuUV6b6StKxNKABa74Prg2mNdOoNR9z5MD1g/43X6Oy++E+SCqqm
         iHIcZh23FPjpKdp+7w2uS9v6ugRMc1fqu/wl3k6huDMh3jXjo8SC+IVDGyq0MkDZlxjo
         ko+w==
X-Forwarded-Encrypted: i=1; AJvYcCVVjmOd4wcXZxQrF+bgknvV4dMmy8NBwBWPlfmc3Q0P6VptETCicDtJGBVsI+kWauoA5iJTKCfPBFo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxzbWOn4If2/KBJYcSnigJY4s6hsm358y8myfFBHmiUS+AZWDG
	If4MnYx6FROU0w3NAj+HaUOGBZFdeFxLuMwDOEBup8eatABU1m1MgIubsE19VA==
X-Google-Smtp-Source: AGHT+IFv+mi/8TtfDSFXoiFf+r7veAvvmt6Alm4tF7Jef+vjQ8x65PxZWcWFJjkuJ+W7QVD5CxHBbw==
X-Received: by 2002:a05:600c:314c:b0:431:9a26:3cf6 with SMTP id 5b1f17b1804b1-432da7a050fmr17177635e9.4.1731578849976;
        Thu, 14 Nov 2024 02:07:29 -0800 (PST)
Message-ID: <f9142dfb-8403-46d6-a4a9-3d09966cefb2@suse.com>
Date: Thu, 14 Nov 2024 11:07:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/trampoline: Check the size permanent
 trampoline at link time
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-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: <20241114090810.1961175-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 10:08, Andrew Cooper wrote:
> This is a little safer than leaving it to hope.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:10:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836200.1252078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWnx-000200-Jn; Thu, 14 Nov 2024 10:10:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836200.1252078; Thu, 14 Nov 2024 10: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 1tBWnx-0001zt-HJ; Thu, 14 Nov 2024 10:10:25 +0000
Received: by outflank-mailman (input) for mailman id 836200;
 Thu, 14 Nov 2024 10: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWnv-0001zn-TK
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:10:23 +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 a69bf387-a270-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 11:10:18 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43168d9c6c9so4069475e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 02: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
 5b1f17b1804b1-432dac21b24sm14685735e9.40.2024.11.14.02.10.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 02: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: a69bf387-a270-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE2OWJmMzg3LWEyNzAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc5MDE4LjkwMDI0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731579018; x=1732183818; 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=8dfSkGZICL1J8WfSRv2JnimtXyU3rdrWxDcbKCG938Y=;
        b=UScoZ5GLd0qHYzxyRIZn7C8GQ4wXmdsNISnNavIOGlP+8aUuc/ShyOJGPOJGMLbnCI
         M9h67QQ1RUqTDCmTy9J6hx2RgPXF1Z7lco0BNip1pZfNGYVvA5Mj0gjBFu+U74/M7dV2
         02sZO8nZB9rGKN76xEi/6nmZ5QLpoaVnV6nAjY8rAq4JSe/aw9G2JN1to96OcLuzwyMF
         ubdsvdfUSslaQR2iLlg2B1OI//SXl0IVJKGfvGf8hAAgcBIOp0hYuIsdcDbJaQLEulfC
         ETeFJKho8Fnv4T97BEht3SewfUKQH2UyTnBZEQ5QyNXuxnxcqaNj5b2KJ5PfyFDtf6Wu
         9LHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731579018; x=1732183818;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8dfSkGZICL1J8WfSRv2JnimtXyU3rdrWxDcbKCG938Y=;
        b=qUqLpkMmvVI8iDCkRfYUzlQKYCnJg4dkzXiOt390yaybCtQTcx8/DtTgJDM3hosVOh
         F77POP6nb6L5Vb7nOXxjnlx0AmcM8lgOM3zu2a/2OZWCwt4BGJEpllNK9IIN2neTHKMY
         L2S/o5gn3FrsQ9alestkso46HtyPwx2N2tI79Cp5/AWZgvNFyvE7aAa2GxvXmSiLnxyt
         0/nqxVmzlGdK5cMJXmaTQvmEJFQ2JZVM8vHnsUCGCaAQ09S0w26M55otdDeqG34tSZhI
         QPJBa69bYCrTZkfKUShhElGSOK34uG4QS34txrtRzDOHhLcGGrnkSRzzr08gY1YanG4V
         evcw==
X-Forwarded-Encrypted: i=1; AJvYcCUwKLo5eTGlZj0QIKSkJpzXjvSu+HhKOzpJSh42I2GIuM/kmSnw6cwmnyuL45n4MtmRLm7s6hux1vM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywt4vZY+BgcwAssHxrp7XKd0KegsC587d6P7Qqi9vWc9CHUDt1r
	a/Cr3VqIEposOL1Uo6auhGCHNnHcZ956Z8sy+QkWt+xDVKKoRPCOyvFfsHvQWA==
X-Google-Smtp-Source: AGHT+IE+TVu3RelUzAu+3Cuj+He5kgdqiH7lNzJbcGLhnFlFMpsycsQrkFNPQtuk/9PC9qXgTWBe0g==
X-Received: by 2002:a05:600c:138a:b0:431:59ab:15cf with SMTP id 5b1f17b1804b1-432b75061c3mr207278925e9.19.1731579018227;
        Thu, 14 Nov 2024 02:10:18 -0800 (PST)
Message-ID: <3dd6042c-139c-406b-bdde-aa2c3115f73b@suse.com>
Date: Thu, 14 Nov 2024 11:10:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] x86/trampoline: Simplify the wakeup_stack checks
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-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: <20241114090810.1961175-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 10:08, Andrew Cooper wrote:
> By checking that the permanent trampoline fits within 1k (at the time of
> writing, it's 0x229 bytes), we can simplify the wakeup_stack handling.
> 
> Move the setup into wakeup.S, because it's rather out of place in
> trampoline.S, and change it to a local symbol.
> 
> Drop wakeup_stack_start and WAKEUP_STACK_MIN entirely.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- a/xen/arch/x86/boot/trampoline.S
> +++ b/xen/arch/x86/boot/trampoline.S
> @@ -156,11 +156,6 @@ GLOBAL(trampoline_xen_phys_start)
>  GLOBAL(trampoline_cpu_started)
>          .byte   0
>  
> -/* The first page of trampoline is permanent, the rest boot-time only. */
> -/* Reuse the boot trampoline on the 1st trampoline page as stack for wakeup. */
> -        .equ    wakeup_stack, trampoline_start + PAGE_SIZE
> -        .global wakeup_stack
> -
>  LABEL(trampoline_perm_end, 0)
>  
>  /* From here on early boot only. */
> diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
> index df5ea2445739..d53f92b02463 100644
> --- a/xen/arch/x86/boot/wakeup.S
> +++ b/xen/arch/x86/boot/wakeup.S
> @@ -1,5 +1,10 @@
>          .code16
>  
> +/* The first page of trampoline is permanent, the rest boot-time only. */
> +/* Reuse the boot logic on the first trampoline page as stack for wakeup. */
> +        .equ    wakeup_stack, trampoline_start + PAGE_SIZE
> +        .local  wakeup_stack
> +
>  #define wakesym(sym) (sym - wakeup_start)

As you move it, it would be nice for the commentary to become a single
multi-line comment rather than two single-line ones.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:10:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:10:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836206.1252089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWoJ-0002lN-V1; Thu, 14 Nov 2024 10:10:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836206.1252089; Thu, 14 Nov 2024 10: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 1tBWoJ-0002lG-SR; Thu, 14 Nov 2024 10:10:47 +0000
Received: by outflank-mailman (input) for mailman id 836206;
 Thu, 14 Nov 2024 10:10:46 +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 1tBWoI-0002jU-OP
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:10:46 +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 1tBWoG-004nQA-2E;
 Thu, 14 Nov 2024 10:10:44 +0000
Received: from [15.248.3.93] (helo=[10.24.67.25])
 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 1tBWoG-004AM6-1z;
 Thu, 14 Nov 2024 10:10: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>
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=wM2kd5MLtkMZQBzn4kF0I0BDViNzPOrazaZBwUkVA/4=; b=vzpgjE4xdYhWJp4U0qU4UeQRrm
	wIwj+7sey1JqV3ocR4jxHRLPsnnp9xlYTuA2Y9evytZJWDUkYGtfwUDXmwU2st+41n3ZSskO2VXfM
	TQlK2T5dX6LSyAFk7ALooUBrLtiB48K3lnY4fVY61atSGcvRPQLXfQb0hi/0kMo1HJ8k=;
Message-ID: <be6e61e8-6418-471e-b399-b218938a8fd3@xen.org>
Date: Thu, 14 Nov 2024 10:10:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
 <3d8ccf17-e140-47fc-a887-7df808d46716@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3d8ccf17-e140-47fc-a887-7df808d46716@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 14/11/2024 07:18, Michal Orzel wrote:
> 
> 
> On 13/11/2024 23:41, Stefano Stabellini wrote:
>>
>>
>> On Wed, 13 Nov 2024, Julien Grall wrote:
>>> On 13/11/2024 15:40, Michal Orzel wrote:
>>>> On 13/11/2024 15:40, Julien Grall wrote:
>>>>> On 13/11/2024 14:19, Michal Orzel wrote:
>>>>>> On 13/11/2024 14:50, Julien Grall wrote:
>>>>>>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>>>>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>>>>>> There are some cases where the device tree exposes a memory range
>>>>>>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>>>>>>> current code will stop Xen to boot since it will find that the
>>>>>>>>> latter range is clashing with the already recorded /memreserve/
>>>>>>>>> ranges.
>>>>>>>>>
>>>>>>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>>>>>>> in the /memreserve/ part and even in this case this will prevent
>>>>>>>>> Xen to boot since it will see that the module memory range that
>>>>>>>>> it is going to add in 'add_boot_module' clashes with a
>>>>>>>>> /memreserve/
>>>>>>>>> range.
>>>>>>>>>
>>>>>>>>> When Xen populate the data structure that tracks the memory
>>>>>>>>> ranges,
>>>>>>>>> it also adds a memory type described in 'enum membank_type', so
>>>>>>>>> in order to fix this behavior, allow the
>>>>>>>>> 'check_reserved_regions_overlap'
>>>>>>>>> function to check for exact memory range match given a specific
>>>>>>>>> memory
>>>>>>>>> type; allowing reserved-memory node ranges and boot modules to
>>>>>>>>> have an
>>>>>>>>> exact match with ranges from /memreserve/.
>>>>>>>>>
>>>>>>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>>>>>>
>>>>>>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>>>>>>>>> bootinfo.reserved_mem")
>>>>>>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>>>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>>>>>> ---
>>>>>>>>> I tested this patch adding the same range in a /memreserve/ entry
>>>>>>>>> and
>>>>>>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>>>>>>> I've also tested that a configuration running static shared memory
>>>>>>>>> still works
>>>>>>>>> fine.
>>>>>>>>> ---
>>>>>>>> So we have 2 separate issues. I don't particularly like the concept
>>>>>>>> of introducing MEMBANK_NONE
>>>>>>>> and the changes below look a bit too much for me, given that for
>>>>>>>> boot modules we can only have
>>>>>>>> /memreserve/ matching initrd.
>>>>>>>
>>>>>>> How so? Is this an observation or part of a specification?
>>>>>> Not sure what specification you would want to see.
>>>>>
>>>>> Anything that you bake your observation. My concern with observation is
>>>>> ...
>>>>>
>>>>>     It's all part of U-Boot and Linux behavior that is not documented
>>>>> (except for code comments).
>>>>>> My statement is based on the U-Boot and Linux behavior. U-Boot part only
>>>>>> present for initrd:
>>>>>> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
>>>>>
>>>>> ... a user is not forced to use U-boot. So this is not a good reason to
>>>> I thought that this behavior is solely down to u-boot playing tricks with
>>>> memreserve.
>>>
>>> Sure we noticed that U-boot is doing some we didn't expect. But this really
>>> doesn't mean there are not other interesting behavior happening.
>>>
>>>>
>>>>> rely on it. If Linux starts to rely on it, then it is probably a better
>>>>> argument, but first I would need to see the code. Can you paste a link?
>>>> Not sure how I would do that given that it is all scattered.
>>>
>>> There are no requirements to be all scattered.
>>>
>>>> But if it means sth, here is kexec code> to create fdt. It is clear they do
>>> the same trick as u-boot.
>>>> https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355
>>>
>>> Yet this doesn't provide any information why this only has to be an exact
>>> region... It only tells me the current behavior.
>>>
>>>>
>>>>>
>>>>>>
>>>>>> For things that Xen can be interested in, only region for ramdisk for
>>>>>> dom0 can match the /memreserve/ region.
>>>>>> Providing a generic solution (like Luca did) would want providing an
>>>>>> example of sth else that can match which I'm not aware of.
>>>>>
>>>>> I would argue this is the other way around. If we are not certain that
>>>>> /memreserve/ will not be used for any other boot module, then we should
>>>>> have a generic solution. Otherwise, we will end up with similar weird
>>>>> issue in the future.
>>>> We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and
>>>> ramdisk. The first 2 are not described in DT so I'm not sure
>>>> what are your examples of bootmodules for which you want kernel know about
>>>> memory reservation other than ramdisk.
>>>
>>> The DTB is not described but the kernel is. We also have XSM modules. All of
>>> which could in theory be in memreserve if for some reasons the bootloader
>>> wanted to preserve the modules for future use (think Live-Update)...
>>>
>>> Anyway, to be honest, I don't understand why you are pushing back at a more
>>> generic solution... Yes this may be what we just notice today, but I haven't
>>> seen any evidence that it never happen.
>>>
>>> So I would rather go with the generic solution.
>>
>> I looked into the question: "Is this an observation or part of a
>> specification?"
>>
>> Looking at the device tree specification
>> source/chapter5-flattened-format.rst:"Memory Reservation Block"
>>
>> It says:
>>
>> "It is used to protect vital data structures from being overwritten by
>> the client program." [...] "More specifically, a client program shall
>> not access memory in a reserved region unless other information provided
>> by the boot program explicitly indicates that it shall do so."
>>
>>
>> I think it is better to stay on the safe side and implement in Xen a
>> more generic behavior to support /memreserve/. It is possible that in a
>> future board more information could be residing in a /memreserve/
>> region. For instance, I could imagine EFI runtime services residing in a
>> /memreserve/ region.
>>
>> I am a bit confused by ranges that are both in /memreserve/ and
>> /reserved-memory. Ranges under /memreserve/ should not be accessed at
>> all (unless otherwise specified), ranges under /reserved-memory are
>> reserved for specific drivers.
>>
>> I guess ranges that are both in /memreserve/ and /reserved-memory are
>> exactly the type of ranges that fall under this statement in the spec:
>> "unless other information provided by the boot program explicitly
>> indicates that it shall do so".
>>
>> The way I see it from the device tree spec, I think Xen should not map
>> /memreserve/ ranges to Dom0, and it should avoid accessing them itself.
>> But if a range is both in /memreserve/ and also in /reserved-memory,
>> then basically /reserved-memory takes precedence, so Xen should map it
>> to Dom0.
>>
>> Please have a look at the spec, and let me know if you come to the same
>> conclusion.
> If we are going to follow the spec here (which I agree to do), then taking into
> consideration the following part:
> 
> "*shall not* access memory in a reserved region *unless other information* provided
> by the boot program explicitly indicates that it shall do so."

This tells me that an OS should not access the region unless there is a 
Device-Tree binding *and* the OS/hypervisor can interpret it. I think we 
agree on that. The part we disagree is...

> 
> the initrd case fits into the exception (otherwise we would not be able to provide initrd to dom0).
> Yes, it is described by U-Boot as /memreserve/ but also follows Linux dt binding for "linux,initrd-{start,end}" which can be perceived
> as *other information provided by the boot program* and therefore can be used as ramdisk for dom0.
> 
> However, I'm not aware of any other official DT binding related to dom0/Linux boot modules other than
> initrd, where this *other information* would be present and indicate the possibility of use by client program
> i.e. Xen/dom0. 

... this one. I don't see why you would not consider the Xen bindings as 
not official. Yes they are not described in Documents/devicetree/ but 
there are bootloader out (e.g. Grub, and to some extend QEMU) that are 
using our bindings. At which point I don't see why they can't decide to 
add the modules in /memreserve/ and why we would forbid it.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:12:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:12:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836217.1252099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWpb-0003QI-8T; Thu, 14 Nov 2024 10:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836217.1252099; Thu, 14 Nov 2024 10: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 1tBWpb-0003QB-5W; Thu, 14 Nov 2024 10:12:07 +0000
Received: by outflank-mailman (input) for mailman id 836217;
 Thu, 14 Nov 2024 10:12: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWpZ-0003Pw-O5
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:12:05 +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 e45a15ad-a270-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 11:12:02 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4314f38d274so5455305e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 02:12: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-432dab807d4sm14875855e9.21.2024.11.14.02.12.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 02:12: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: e45a15ad-a270-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU0NWExNWFkLWEyNzAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc5MTIyLjQ4OTM0Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731579122; x=1732183922; 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=vcsSmPvMdJ0uNmijo/pn3QQ0CCgWXmm1K16ND34RdR8=;
        b=LryFk7xIW14l2+5ZI+jCZ/U+/P8sMyHIzP8r0ROb/D/uhOhULcCxH8tjjb3doNF+yF
         0didq3memkSIEeyPswpolS+KnhGyk/tKkadlnnIKsEQ6sJ8tNbZ1hin6AcHv9p3Bnhcw
         tkgfBfX7ICdVezMAECi8/T/rl179esrz8kj6VGZRMOXCEZHF0pNC8wVEP9QVlw3j0ezD
         CgIfqZ7d6ZePA0pFjm70p6Kd3fyVG7a+Gpi3X6+tTGlbsLFgOAYQ0tscI2fTx1hs4998
         HFT3779RjrZTbtq+4pbhdLk0eTBdVzVn9pBBHgtEB3I8lJgpT7DhnE8SMMV3a3N/BMLO
         ghcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731579122; x=1732183922;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vcsSmPvMdJ0uNmijo/pn3QQ0CCgWXmm1K16ND34RdR8=;
        b=fiHrAbqu5wmhxOeuhOt9BOKifHgvP4ysnRPeYpo+JgsQA/9J1U6NGxC7ZrMRma6haS
         wr8S1KHjhOCkmTUebtBLVCPv0dNGIScNDiUA6zoerQTyfKgduzbTLbEisbASL3J0p/sD
         3q5cFKvZ/1eNY4EA1dAjtMZWB0DVU5ZiCViqmdjctXzHCWxhpPUm+6VJHCZRq7hdB3GS
         /lTvcB5Zgp8mC09WSBjGuDfegxDBzaPBCcGByk+RPCYC/qXR7z9ea/U4VpEsXPTzqDXF
         MQQUOM+K1ULJRWY9jnUggS+6PndmkqzBEmHc/X9zEKv1gg0AKqGGnCYtLhkkKgi5Aseh
         aYCA==
X-Forwarded-Encrypted: i=1; AJvYcCUqsV5G7k3ic/WCbWuxMXmH7HGiKcnTr/4yrtWHIN0LddrAr3kIb4jO+NWTg72T6MRWr8M3Q/dQTDI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxa5hFacGTfRWcl7rN2uQ4WbpOBTA8HYPQflxAhzaZgNJ0mlpYC
	AYAUataElhVdB4zWno4AG1jjMPCNX7XZIxBEV8EIiWxqvZuLSkucrrxUjQNd5Q==
X-Google-Smtp-Source: AGHT+IHpgRHLZsQFh7tm55wZaqbbE3TD++RaRWhuaNTRZ9qRcZsmV1ZWH56PFueGuVkXv+7m+bGazg==
X-Received: by 2002:a05:600c:1e18:b0:431:6083:cd30 with SMTP id 5b1f17b1804b1-432da76ec60mr16613755e9.6.1731579121896;
        Thu, 14 Nov 2024 02:12:01 -0800 (PST)
Message-ID: <e758bdd6-57b4-4a73-b2fc-e6c506d75e1b@suse.com>
Date: Thu, 14 Nov 2024 11:12:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] x86/trampoline: Document how the trampoline is
 laid out
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-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: <20241114090810.1961175-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 10:08, Andrew Cooper wrote:
> This is, to the best of my knowledge, accurate.  I am providing no comment on
> how sane I believe it to be.
> 
> At the time of writing, the sizes of the regions are:
> 
>           offset  size
>   AP:     0x0000  0x00b0
>   S3:     0x00b0  0x0229
>   Boot:   0x02d9  0x1697
>   Heap:   0x1970  0xe690
>   Stack:  0xf000  0x1000
> 
> and wakeup_stack overlays boot_edd_info.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:13:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:13:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836223.1252109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBWrA-0003yi-Jc; Thu, 14 Nov 2024 10:13:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836223.1252109; Thu, 14 Nov 2024 10:13: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 1tBWrA-0003yb-GZ; Thu, 14 Nov 2024 10:13:44 +0000
Received: by outflank-mailman (input) for mailman id 836223;
 Thu, 14 Nov 2024 10:13: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBWr9-0003yV-5m
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:13:43 +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 1d5868e0-a271-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 11:13:38 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4319399a411so4314105e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 02:13: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-432dac0ae04sm14787975e9.33.2024.11.14.02.13.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 02:13: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: 1d5868e0-a271-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFkNTg2OGUwLWEyNzEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTc5MjE4LjEwMzI3OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731579217; x=1732184017; 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=8UlSKAaX/FPkMXejU5xZ7R3GnHc25IaXZrbC34ZZFAE=;
        b=dK0x6K+vvIRzKn7YqllpUfkGuPmqt2T8EbPqTaj8ocjk24mpa2SntadwF5N7oUPXxP
         N1wqt8mYVPSnaMZLp9WvCXJlYBBVq5TeG7WHzOSKTJMpCPRwhb7l+N0vZ9+JbDNZnC36
         h8aat4+L3D415arC9t+jw2wA5D1JXhNQIdZyQpXb/6amdMsF4g+ZmBx/JBl2EgAEb8FL
         gTeexOES9C2jdD1BDB44wZnrajN3uR8tStD7Tmg5mO8Btk3FclTIVh6HfTlxHRzLGY0w
         hB3zHPBGb3/+w+7B9ftu3hDgVBFOmmbOMcNW9Fc+Oi6qaz3ni4w2OPUjftzAA4a0xnJK
         RXrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731579217; x=1732184017;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8UlSKAaX/FPkMXejU5xZ7R3GnHc25IaXZrbC34ZZFAE=;
        b=S6iJU5G3Ys4GrdWRnyKNvr57x6MMrBpzIpNvT9KPT5N7g/RCRVJnYugizBHiirbM71
         2+pmLvGQ9wtMPy9tevY/Lw3sDCK7n2g4L59pFmLpp5hgUJ3ea43xdSX8sfd0IGVSUWkY
         titUK6caXm/qA23Ac97H+QwL6MghXK74LkhplUOds/7jvWKaGFugdm0FEB4aiUUr7sRe
         qm26+RlJg/B3kkH9z5PqDRFLTNa4x9O8qvGzmHwHm95VPbQLMN4qp0livnHfV3UGX+0M
         1pm/rdCVjitqr4wHR8/vSYLTniHSDQ38cP/qh6WzCW1peOAN2Jc3WRbVaxRoOdHjOlNU
         i8SQ==
X-Forwarded-Encrypted: i=1; AJvYcCXz2VWW13z8XIw4ZxFRfn3gLJ/2XwEzPtxvInoNZdC7HU+3IRfsVqoCsai8wJWqQ1NaEMI3EhTySg0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAi0D+GhkrxQsKcDK9OjeAb/+HJsjjmyFVCqfme5ozNMmVcimC
	Yg31Q5A8dQCNF8Ig8l2tcD6JXW8Z1QoZkue91TNnszpLNhcS3npqKRq4EFHJMg==
X-Google-Smtp-Source: AGHT+IHMbJBpEqDHgjyMxNe28OI4bAtUci3UoAR3WAVnPhvLm2jlXvv6mrryImOP3kXIFzXBfv0u8g==
X-Received: by 2002:a05:600c:8715:b0:431:93d8:e1a1 with SMTP id 5b1f17b1804b1-432b751bcc2mr198535125e9.27.1731579217513;
        Thu, 14 Nov 2024 02:13:37 -0800 (PST)
Message-ID: <c04dd574-97ab-4337-ae50-4e85de029315@suse.com>
Date: Thu, 14 Nov 2024 11:13:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] x86/trampoline: Rationalise the constants to
 describe the size
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-5-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: <20241114090810.1961175-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 10:08, Andrew Cooper wrote:
> The logic is far more sane to follow with a total size, and the position of
> the end of the heap.  Remove or fix the remaining descriptions of how the
> trampoline is laid out.
> 
> Move the relevant constants into trampoline.h, which requires making the
> header safe to include in assembly files.
> 
> No functional change.  The compiled binary is identical.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:28:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836238.1252118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBX5H-00068I-Pm; Thu, 14 Nov 2024 10:28:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836238.1252118; Thu, 14 Nov 2024 10:28: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 1tBX5H-00068B-NE; Thu, 14 Nov 2024 10:28:19 +0000
Received: by outflank-mailman (input) for mailman id 836238;
 Thu, 14 Nov 2024 10:28: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=vGyf=SJ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tBX5G-000685-1d
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:28:18 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2704c49c-a273-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 11:28: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 A85EC1480;
 Thu, 14 Nov 2024 02:28:42 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A7F063F6A8;
 Thu, 14 Nov 2024 02:28: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: 2704c49c-a273-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjI3MDRjNDljLWEyNzMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTgwMDkzLjc5MzkxNCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [PATCH v2] xen/device-tree: Allow region overlapping with /memreserve/ ranges
Date: Thu, 14 Nov 2024 10:28:02 +0000
Message-Id: <20241114102802.54512-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There are some cases where the device tree exposes a memory range
in both /memreserve/ and reserved-memory node, in this case the
current code will stop Xen to boot since it will find that the
latter range is clashing with the already recorded /memreserve/
ranges.

Furthermore, u-boot lists boot modules ranges, such as ramdisk,
in the /memreserve/ part and even in this case this will prevent
Xen to boot since it will see that the module memory range that
it is going to add in 'add_boot_module' clashes with a /memreserve/
range.

When Xen populate the data structure that tracks the memory ranges,
it also adds a memory type described in 'enum membank_type', so
in order to fix this behavior, allow overlapping with the /memreserve/
ranges in the 'check_reserved_regions_overlap' function when a flag
is set.

In order to implement this solution, there is a distinction between
the 'struct membanks *' handled by meminfo_overlap_check(...) that
needs to be done, because the static shared memory banks doesn't have
a usable bank[].type field and so it can't be accessed, hence now
the 'struct membanks_hdr' have a 'enum region_type type' field in order
to be able to identify static shared memory banks in meminfo_overlap_check(...).

While there, set a type for the memory recorded using meminfo_add_bank()
from efi-boot.h.

Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from v1:
 - fixed commit message
 - used boolean to allow /memreserve/ overlap or not
 - now 'struct membanks *' have a type, while it might seem a waste of space,
   it might be used in the future to consolidate also the 'struct bootmodules'
   and 'struct bootcmdlines' to use the same 'struct membanks *' interface.
   Also the added space is limited to 3/4 enum size.
 - The change above allowed this version to remove the "hack" when dealing with
   static shared memory banks, that doesn't have a type.

I tested this patch adding the same range in a /memreserve/ entry and
/reserved-memory node, and by letting u-boot pass a ramdisk.
I've also tested that a configuration running static shared memory still works
fine.
---
---
 xen/arch/arm/efi/efi-boot.h       |  3 ++-
 xen/arch/arm/static-shmem.c       |  2 +-
 xen/common/device-tree/bootfdt.c  |  9 ++++++-
 xen/common/device-tree/bootinfo.c | 39 +++++++++++++++++++++++--------
 xen/include/xen/bootfdt.h         | 20 +++++++++++++---
 5 files changed, 57 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index 199f5260229d..a80a5a7ab326 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -167,13 +167,14 @@ static bool __init meminfo_add_bank(struct membanks *mem,
     if ( mem->nr_banks >= mem->max_banks )
         return false;
 #ifdef CONFIG_ACPI
-    if ( check_reserved_regions_overlap(start, size) )
+    if ( check_reserved_regions_overlap(start, size, false) )
         return false;
 #endif
 
     bank = &mem->bank[mem->nr_banks];
     bank->start = start;
     bank->size = size;
+    bank->type = MEMBANK_DEFAULT;
 
     mem->nr_banks++;
 
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index aa80756c3ca5..66088a426785 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -696,7 +696,7 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells,
         if (i < mem->max_banks)
         {
             if ( (paddr != INVALID_PADDR) &&
-                 check_reserved_regions_overlap(paddr, size) )
+                 check_reserved_regions_overlap(paddr, size, false) )
                 return -EINVAL;
 
             /* Static shared memory shall be reserved from any other use. */
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 927f59c64b0d..241810212c02 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -176,8 +176,15 @@ static int __init device_tree_get_meminfo(const void *fdt, int node,
     for ( i = 0; i < banks && mem->nr_banks < mem->max_banks; i++ )
     {
         device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
+        /*
+         * Some valid device trees, such as those generated by OpenPOWER
+         * skiboot firmware, expose all reserved memory regions in the
+         * FDT memory reservation block AND in the reserved-memory node which
+         * has already been parsed. Thus, any matching overlaps in the
+         * reserved_mem banks should be ignored.
+         */
         if ( mem == bootinfo_get_reserved_mem() &&
-             check_reserved_regions_overlap(start, size) )
+             check_reserved_regions_overlap(start, size, true) )
             return -EINVAL;
         /* Some DT may describe empty bank, ignore them */
         if ( !size )
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
index f2e6a1145b7c..b36b05fd9224 100644
--- a/xen/common/device-tree/bootinfo.c
+++ b/xen/common/device-tree/bootinfo.c
@@ -99,7 +99,8 @@ static void __init dt_unreserved_regions(paddr_t s, paddr_t e,
  */
 static bool __init meminfo_overlap_check(const struct membanks *mem,
                                          paddr_t region_start,
-                                         paddr_t region_size)
+                                         paddr_t region_size,
+                                         bool allow_memreserve_overlap)
 {
     paddr_t bank_start = INVALID_PADDR, bank_end = 0;
     paddr_t region_end = region_start + region_size;
@@ -113,12 +114,23 @@ static bool __init meminfo_overlap_check(const struct membanks *mem,
         if ( INVALID_PADDR == bank_start || region_end <= bank_start ||
              region_start >= bank_end )
             continue;
-        else
-        {
-            printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
-                   region_start, region_end, i, bank_start, bank_end);
-            return true;
-        }
+
+        /*
+         * If allow_memreserve_overlap is set, this check allows a region to be
+         * included in a MEMBANK_FDT_RESVMEM bank, but struct membanks *mem of
+         * type STATIC_SHARED_MEMORY don't set the bank[].type field because
+         * that is declared in a union with a field that is instead used,
+         * in any case this restriction is ok since STATIC_SHARED_MEMORY banks
+         * are not meant to clash with FDT /memreserve/ ranges.
+         */
+        if ( allow_memreserve_overlap && mem->type != STATIC_SHARED_MEMORY &&
+             region_start >= bank_start && region_end <= bank_end &&
+             mem->bank[i].type == MEMBANK_FDT_RESVMEM )
+            continue;
+
+        printk("Region: [%#"PRIpaddr", %#"PRIpaddr") overlapping with bank[%u]: [%#"PRIpaddr", %#"PRIpaddr")\n",
+                region_start, region_end, i, bank_start, bank_end);
+        return true;
     }
 
     return false;
@@ -171,7 +183,8 @@ void __init fw_unreserved_regions(paddr_t s, paddr_t e,
  * existing reserved memory regions, otherwise false.
  */
 bool __init check_reserved_regions_overlap(paddr_t region_start,
-                                           paddr_t region_size)
+                                           paddr_t region_size,
+                                           bool allow_memreserve_overlap)
 {
     const struct membanks *mem_banks[] = {
         bootinfo_get_reserved_mem(),
@@ -190,7 +203,8 @@ bool __init check_reserved_regions_overlap(paddr_t region_start,
      * shared memory banks (when static shared memory feature is enabled)
      */
     for ( i = 0; i < ARRAY_SIZE(mem_banks); i++ )
-        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size) )
+        if ( meminfo_overlap_check(mem_banks[i], region_start, region_size,
+                                   allow_memreserve_overlap) )
             return true;
 
     /* Check if input region is overlapping with bootmodules */
@@ -216,7 +230,12 @@ struct bootmodule __init *add_boot_module(bootmodule_kind kind,
         return NULL;
     }
 
-    if ( check_reserved_regions_overlap(start, size) )
+    /*
+     * u-boot adds boot module such as ramdisk to the /memreserve/, since these
+     * ranges are saved in reserved_mem at this stage, allow an eventual exact
+     * match with MEMBANK_FDT_RESVMEM banks.
+     */
+    if ( check_reserved_regions_overlap(start, size, true) )
         return NULL;
 
     for ( i = 0 ; i < mods->nr_mods ; i++ )
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 16fa05f38f38..cea40ee11706 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -48,6 +48,12 @@ enum membank_type {
     MEMBANK_FDT_RESVMEM,
 };
 
+enum region_type {
+    MEMORY,
+    RESERVED_MEMORY,
+    STATIC_SHARED_MEMORY
+};
+
 /* Indicates the maximum number of characters(\0 included) for shm_id */
 #define MAX_SHM_ID_LENGTH 16
 
@@ -71,6 +77,7 @@ struct membanks {
     __struct_group(membanks_hdr, common, ,
         unsigned int nr_banks;
         unsigned int max_banks;
+        enum region_type type;
     );
     struct membank bank[];
 };
@@ -136,13 +143,17 @@ struct bootinfo {
 };
 
 #ifdef CONFIG_ACPI
-#define BOOTINFO_ACPI_INIT .acpi.common.max_banks = NR_MEM_BANKS,
+#define BOOTINFO_ACPI_INIT                          \
+    .acpi.common.max_banks = NR_MEM_BANKS,          \
+    .acpi.common.type = MEMORY
 #else
 #define BOOTINFO_ACPI_INIT
 #endif
 
 #ifdef CONFIG_STATIC_SHM
-#define BOOTINFO_SHMEM_INIT .shmem.common.max_banks = NR_SHMEM_BANKS,
+#define BOOTINFO_SHMEM_INIT                         \
+    .shmem.common.max_banks = NR_SHMEM_BANKS,       \
+    .shmem.common.type = STATIC_SHARED_MEMORY
 #else
 #define BOOTINFO_SHMEM_INIT
 #endif
@@ -150,7 +161,9 @@ struct bootinfo {
 #define BOOTINFO_INIT                               \
 {                                                   \
     .mem.common.max_banks = NR_MEM_BANKS,           \
+    .mem.common.type = MEMORY,                      \
     .reserved_mem.common.max_banks = NR_MEM_BANKS,  \
+    .reserved_mem.common.type = RESERVED_MEMORY,    \
     BOOTINFO_ACPI_INIT                              \
     BOOTINFO_SHMEM_INIT                             \
 }
@@ -158,7 +171,8 @@ struct bootinfo {
 extern struct bootinfo bootinfo;
 
 bool check_reserved_regions_overlap(paddr_t region_start,
-                                    paddr_t region_size);
+                                    paddr_t region_size,
+                                    bool allow_memreserve_overlap);
 
 struct bootmodule *add_boot_module(bootmodule_kind kind,
                                    paddr_t start, paddr_t size, bool domU);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:31:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:31:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836248.1252129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBX87-0007uS-AS; Thu, 14 Nov 2024 10:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836248.1252129; Thu, 14 Nov 2024 10:31: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 1tBX87-0007uL-74; Thu, 14 Nov 2024 10:31:15 +0000
Received: by outflank-mailman (input) for mailman id 836248;
 Thu, 14 Nov 2024 10:31: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 1tBX85-0007uF-Te
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:31: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 1tBX83-004nnl-2a;
 Thu, 14 Nov 2024 10:31:12 +0000
Received: from [15.248.3.93] (helo=[10.24.67.25])
 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 1tBX83-004BO4-2t;
 Thu, 14 Nov 2024 10:31: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=hGhMyGpbShgMMhAFFtpH4iZ6aQ/Ud7JtKzmpyWI7aAI=; b=NqIN1GeNkwjv881FewSb4YbkV/
	mOqEBOeC9gCZcGwt98my8uK3b4PYvqSZlROnh9WPpAgfuSvVn9+N2RYkgSIMw90dF3E5atYTEauHm
	Y1JiINF9a+iryjtEJzs5bCCAXvNTP24pw9W99B4nkYY1i8nvM5D3HvPk/eboGxSb3V+4=;
Message-ID: <92564de9-24f7-4259-bc45-a95680101693@xen.org>
Date: Thu, 14 Nov 2024 10:31:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Michal Orzel <michal.orzel@amd.com>, Luca Fancellu
 <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 13/11/2024 22:41, Stefano Stabellini wrote:
> On Wed, 13 Nov 2024, Julien Grall wrote:
>> On 13/11/2024 15:40, Michal Orzel wrote:
>>> On 13/11/2024 15:40, Julien Grall wrote:
>>>> On 13/11/2024 14:19, Michal Orzel wrote:
>>>>> On 13/11/2024 14:50, Julien Grall wrote:
>>>>>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>>>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>>>>> There are some cases where the device tree exposes a memory range
>>>>>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>>>>>> current code will stop Xen to boot since it will find that the
>>>>>>>> latter range is clashing with the already recorded /memreserve/
>>>>>>>> ranges.
>>>>>>>>
>>>>>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>>>>>> in the /memreserve/ part and even in this case this will prevent
>>>>>>>> Xen to boot since it will see that the module memory range that
>>>>>>>> it is going to add in 'add_boot_module' clashes with a
>>>>>>>> /memreserve/
>>>>>>>> range.
>>>>>>>>
>>>>>>>> When Xen populate the data structure that tracks the memory
>>>>>>>> ranges,
>>>>>>>> it also adds a memory type described in 'enum membank_type', so
>>>>>>>> in order to fix this behavior, allow the
>>>>>>>> 'check_reserved_regions_overlap'
>>>>>>>> function to check for exact memory range match given a specific
>>>>>>>> memory
>>>>>>>> type; allowing reserved-memory node ranges and boot modules to
>>>>>>>> have an
>>>>>>>> exact match with ranges from /memreserve/.
>>>>>>>>
>>>>>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>>>>>
>>>>>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>>>>>>>> bootinfo.reserved_mem")
>>>>>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>>>>> ---
>>>>>>>> I tested this patch adding the same range in a /memreserve/ entry
>>>>>>>> and
>>>>>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>>>>>> I've also tested that a configuration running static shared memory
>>>>>>>> still works
>>>>>>>> fine.
>>>>>>>> ---
>>>>>>> So we have 2 separate issues. I don't particularly like the concept
>>>>>>> of introducing MEMBANK_NONE
>>>>>>> and the changes below look a bit too much for me, given that for
>>>>>>> boot modules we can only have
>>>>>>> /memreserve/ matching initrd.
>>>>>>
>>>>>> How so? Is this an observation or part of a specification?
>>>>> Not sure what specification you would want to see.
>>>>
>>>> Anything that you bake your observation. My concern with observation is
>>>> ...
>>>>
>>>>     It's all part of U-Boot and Linux behavior that is not documented
>>>> (except for code comments).
>>>>> My statement is based on the U-Boot and Linux behavior. U-Boot part only
>>>>> present for initrd:
>>>>> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
>>>>
>>>> ... a user is not forced to use U-boot. So this is not a good reason to
>>> I thought that this behavior is solely down to u-boot playing tricks with
>>> memreserve.
>>
>> Sure we noticed that U-boot is doing some we didn't expect. But this really
>> doesn't mean there are not other interesting behavior happening.
>>
>>>
>>>> rely on it. If Linux starts to rely on it, then it is probably a better
>>>> argument, but first I would need to see the code. Can you paste a link?
>>> Not sure how I would do that given that it is all scattered.
>>
>> There are no requirements to be all scattered.
>>
>>> But if it means sth, here is kexec code> to create fdt. It is clear they do
>> the same trick as u-boot.
>>> https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355
>>
>> Yet this doesn't provide any information why this only has to be an exact
>> region... It only tells me the current behavior.
>>
>>>
>>>>
>>>>>
>>>>> For things that Xen can be interested in, only region for ramdisk for
>>>>> dom0 can match the /memreserve/ region.
>>>>> Providing a generic solution (like Luca did) would want providing an
>>>>> example of sth else that can match which I'm not aware of.
>>>>
>>>> I would argue this is the other way around. If we are not certain that
>>>> /memreserve/ will not be used for any other boot module, then we should
>>>> have a generic solution. Otherwise, we will end up with similar weird
>>>> issue in the future.
>>> We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and
>>> ramdisk. The first 2 are not described in DT so I'm not sure
>>> what are your examples of bootmodules for which you want kernel know about
>>> memory reservation other than ramdisk.
>>
>> The DTB is not described but the kernel is. We also have XSM modules. All of
>> which could in theory be in memreserve if for some reasons the bootloader
>> wanted to preserve the modules for future use (think Live-Update)...
>>
>> Anyway, to be honest, I don't understand why you are pushing back at a more
>> generic solution... Yes this may be what we just notice today, but I haven't
>> seen any evidence that it never happen.
>>
>> So I would rather go with the generic solution.
> 
> I looked into the question: "Is this an observation or part of a
> specification?"
> 
> Looking at the device tree specification
> source/chapter5-flattened-format.rst:"Memory Reservation Block"
> 
> It says:
> 
> "It is used to protect vital data structures from being overwritten by
> the client program." [...] "More specifically, a client program shall
> not access memory in a reserved region unless other information provided
> by the boot program explicitly indicates that it shall do so."
> 
> 
> I think it is better to stay on the safe side and implement in Xen a
> more generic behavior to support /memreserve/. It is possible that in a
> future board more information could be residing in a /memreserve/
> region. For instance, I could imagine EFI runtime services residing in a
> /memreserve/ region.

I am not 100% sure about this one. The specification implies that if a 
region is reserved, then it would need to be marked as 
EfiReservedMemoryType in the EFI memory map. But for EFI runtime 
services, they should be using EfiRuntimeServicesCode or 
EfiRuntimeServicesData.

> 
> I am a bit confused by ranges that are both in /memreserve/ and
> /reserved-memory. Ranges under /memreserve/ should not be accessed at
> all (unless otherwise specified), ranges under /reserved-memory are
> reserved for specific drivers.

IIUC /memreserve/ is the legacy approach for describing reserved regions.

> I guess ranges that are both in /memreserve/ and /reserved-memory are
> exactly the type of ranges that fall under this statement in the spec:
> "unless other information provided by the boot program explicitly
> indicates that it shall do so".

Yes. The OS would be able to use the range based what /reserved-memory 
says. Note that you can also the describe a region from /memreserve/ 
outside or /reserved-memory (such as the CPU spin table).

> 
> The way I see it from the device tree spec, I think Xen should not map
> /memreserve/ ranges to Dom0, and it should avoid accessing them itself.

See above, Xen should be able to access the regions in /memreserve/. But 
it should map them in the directmap.

> But if a range is both in /memreserve/ and also in /reserved-memory,
> then basically /reserved-memory takes precedence, so Xen should map it
> to Dom0.

Unless Xen needs to use some of them. At which point this will need to 
be excluded from Dom0.

Looking at the code, I think /memreserve/ and /reserved-memory are not 
mapped in Xen and everything in /reserved-memory is mapped to dom0.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:34:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:34:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836256.1252138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBXBM-00007j-NY; Thu, 14 Nov 2024 10:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836256.1252138; Thu, 14 Nov 2024 10: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 1tBXBM-00007a-Kl; Thu, 14 Nov 2024 10:34:36 +0000
Received: by outflank-mailman (input) for mailman id 836256;
 Thu, 14 Nov 2024 10:34: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBXBL-00007P-J2
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:34:35 +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 08481603-a274-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 11:34:31 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4315baa51d8so4159315e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 02:34: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-3821ae3128bsm1070522f8f.102.2024.11.14.02.34.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 02:34: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: 08481603-a274-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzYiLCJoZWxvIjoibWFpbC13bTEteDMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA4NDgxNjAzLWEyNzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTgwNDcxLjI2NDI3Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731580470; x=1732185270; 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=mQcqdhWUVH4y/IRc/KGcURjU4F3lshCy5VAppvhlgc8=;
        b=f3GpG/liXNYN4zpOxSPocc2mvmvx8RoDT5x1Nw8f33IQlTGTz6jmk9ypdGJOv4NudG
         XvNL2k2oqfxWWZQsYIsPaDs/TJHrBiaHfJ9a+y9XWpJzpn3u29+T4B1s5SbCHlzhC9Y/
         pXvYMjsuw8Te1TqMjLilEHAQBJnm5G0ecQnLjn1kWRcuxM1wRTUgNnYZsbAcPq3CZ9aR
         QSQcNisQq96TfvOZqj4GxCsS78L7SIwfVtri+TWayy/+7uonS0HMxhEnihksXpuqPdhh
         HQr19z064d0Vx9hflTIcFjTXMX5mXjRycvV0w2Wp8G7CN1ppA08uzU5D0K0Oz7KOmzpW
         KLtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731580470; x=1732185270;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mQcqdhWUVH4y/IRc/KGcURjU4F3lshCy5VAppvhlgc8=;
        b=EkzdiBRZpspPZQelPATov7DARj3roB8jiAKZb+Dp2UWSuDalUNSAUdTRAfEeGrvEAZ
         E05ZhzSLYDy1DcZezbkLDL/vyfgn69N82GTKcwW5SJhnsVd4ZgDoh2TR2LkisJNEVvdy
         pX7SfICYJdicwctdKoW/MERGHV+pd8g3/72QsvHYHmYBvsYbm2vwv3iV48ax1LD5bTcz
         zsmql3TeR9ZrL5R1o9w5CRHG1UEM1EaLFad7l+izVp6ipmSwrSxBZlSOd7BYkoX5u2xN
         0E1Ewobj5gLcFCq237CrGUQ4mwCkSxq9uUB8j/l1S0Q5wuQBm45dqIk4e9nYiqptC5Ir
         /ZRA==
X-Forwarded-Encrypted: i=1; AJvYcCUSYYoL53p7RU0xFkUjCj+miQVYLcJu/EzrKL9R2i1QUtp/Jx5q7Gwsm/3ISY5BkecTNv9kMD7mReA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxna/tlzOn9gAVnqtw3Cj2B0dh3JdcOA5uDLadLey0B7CVNsO9C
	BNaq7dPkLfpJlIvleArwAPno9Yf4lNr99FW0Tfv/qjoxIzE8Fp6FRspFhV2G/A==
X-Google-Smtp-Source: AGHT+IF46UPiGjtZH3ucI3OYn/Olvn5KtsAAG2g5V9JwjlqNL6pGvseM0S0ebrG8fj3616p+7eRv6A==
X-Received: by 2002:a05:6000:1f89:b0:37d:4e03:635c with SMTP id ffacd0b85a97d-3820df71d80mr4659361f8f.21.1731580470594;
        Thu, 14 Nov 2024 02:34:30 -0800 (PST)
Message-ID: <975e3dbd-40e8-49c6-8aab-7e7bde1a233f@suse.com>
Date: Thu, 14 Nov 2024 11:34:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/2] xen/pci: introduce PF<->VF links
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241112205321.186622-1-stewart.hildebrand@amd.com>
 <20241112205321.186622-2-stewart.hildebrand@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: <20241112205321.186622-2-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2024 21:53, Stewart Hildebrand wrote:
> Add links between a VF's struct pci_dev and its associated PF struct
> pci_dev.
> 
> The hardware domain is expected to add a PF first before adding
> associated VFs. Similarly, the hardware domain is expected to remove the
> associated VFs before removing the PF. If adding/removing happens out of
> order, print a warning and return an error. This means that VFs can only
> exist with an associated PF.
> 
> Additionally, if the hardware domain attempts to remove a PF with VFs
> still present, mark the PF and VFs broken, because Linux Dom0 has been
> observed to not respect the error returned.
> 
> Move the call to pci_get_pdev() down to avoid dropping and re-acquiring
> the pcidevs_lock(). Drop the call to pci_add_device() as it is invalid
> to add a VF without an existing PF.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

I'm okay with this, so in principle
Reviewed-by: Jan Beulich <jbeulich@suse.com>

A few comments nevertheless, which may result in there wanting to be
another revision.

> ---
> Candidate for backport to 4.19 (the next patch depends on this one)

With this dependency (we definitely want to backport the other patch) ...

> v6->v7:
> * cope with multiple invocations of pci_add_device for VFs
> * get rid of enclosing struct for single member
> * during PF removal attempt with VFs still present:
>     * keep PF
>     * mark broken
>     * don't unlink
>     * return error
> * during VF add:
>     * initialize pf_pdev in declaration
>     * remove logic catering to adding VFs without PF

... I'd like to point out that this change has an at least theoretical
risk of causing regressions. I therefore wonder whether that wouldn't
better be a separate change, not to be backported.

> @@ -703,7 +696,38 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>           * extended function.
>           */
>          if ( pdev->info.is_virtfn )
> -            pdev->info.is_extfn = pf_is_extfn;
> +        {
> +            struct pci_dev *pf_pdev = pci_get_pdev(NULL,
> +                                                   PCI_SBDF(seg,
> +                                                           info->physfn.bus,
> +                                                           info->physfn.devfn));
> +            struct pci_dev *vf_pdev;

const?

> +            bool already_added = false;
> +
> +            if ( !pf_pdev )
> +            {
> +                printk(XENLOG_WARNING
> +                       "Attempted to add SR-IOV device VF %pp without PF %pp\n",

I'd omit "device" here.

(These changes alone I'd be happy to do while committing.)

> +                       &pdev->sbdf,
> +                       &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn));
> +                free_pdev(pseg, pdev);
> +                ret = -ENODEV;
> +                goto out;
> +            }
> +
> +            pdev->info.is_extfn = pf_pdev->info.is_extfn;

There's a comment related to this, partly visible in patch context above.
That comment imo needs moving here. And correcting while moving (it's
inverted imo, or at least worded ambiguously).

> +            pdev->pf_pdev = pf_pdev;
> +            list_for_each_entry(vf_pdev, &pf_pdev->vf_list, vf_list)
> +            {
> +                if ( vf_pdev == pdev )
> +                {
> +                    already_added = true;
> +                    break;
> +                }
> +            }
> +            if ( !already_added )
> +                list_add(&pdev->vf_list, &pf_pdev->vf_list);
> +        }
>      }

Personally, as I have a dislike for excess variables, I'd have gotten away
without "already_added". Instead of setting it to true, vf_pdev could be
set to NULL. Others may, however, consider this "obfuscation" or alike.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 10:49:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 10:49:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836266.1252148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBXPH-00029P-Qw; Thu, 14 Nov 2024 10:48:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836266.1252148; Thu, 14 Nov 2024 10:48: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 1tBXPH-00029I-OH; Thu, 14 Nov 2024 10:48:59 +0000
Received: by outflank-mailman (input) for mailman id 836266;
 Thu, 14 Nov 2024 10:48: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=sDQH=SJ=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBXPG-00029C-H4
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 10:48:58 +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 0a7da574-a276-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 11:48:53 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9e8522c10bso60089266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 02:48:53 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dfffc9fsm48812566b.130.2024.11.14.02.48.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 02:48: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: 0a7da574-a276-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBhN2RhNTc0LWEyNzYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTgxMzMzLjkyOTg5LCJzZW5kZXIiOiJhbGVqYW5kcm8udmFsbGVqb0BjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731581333; x=1732186133; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cxeuXMin9fRBYhlmMqAoXCnTcwOMVe8DzeeVa5Qh8x4=;
        b=TSlgp6l97CG9iG2nQ1jqJ7jOCJuDXN6UzCuj63LXKDnj3HzUsxMHOeMGxCJH8PtFpm
         yIdCJVshiMNnRtih33vlSWLAaObQIO8UBs9e+cNdIYz4/S2FYi0WJ6UBGufM18IvxGKx
         9HmQ5ANfe5R+Oq4lZfkIRU9auJhFHn0FO74uk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731581333; x=1732186133;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=cxeuXMin9fRBYhlmMqAoXCnTcwOMVe8DzeeVa5Qh8x4=;
        b=ZgyAlPSiaMgug1t7gb5G2SoqBOthkaX0jLxUDsA/5g4csTQ08UcBLgZx3wUC6iysZl
         VBEt6d39bdHT5L77C/3vo8lLFx8DpLmDb6V/JB4oiiO5z/6i091hLNvCxCr5FXrG7m1C
         38gKFFnWK5GuEZqIj9W8upKospqcXFI+ANfvcsPZAcC8xSGA79s+VtA+gopRG1vi/fRz
         tUvpL1Cfm36qXv+6YbkrtFxOl2wiHaC+sKQds20Lxj7VrhJwS/+uOLp0+B8FeMG9a++y
         QwprHzOekd8Nb5vRlFUO3K4TJJfMZ/TQxL59XQM/uj839wnNRd98V1RnGjzTUX6rPYio
         OhjA==
X-Forwarded-Encrypted: i=1; AJvYcCU0Al1zh6eDoyl7r2EqRSJlCJPL7ir0eu1KT0Vw/mVrkySnJMtkg1T7wYiw0cagvNatRY1svUz5nYg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz2iSuKnQDSp4zFwtA9lRsqBU8WM6makFls11SfPNvTGzYxhPQN
	IHaIeNsAinYP/hsJaygoRGGEGsNjbqmBDH2aSkPzBwdhv6kzHkZ7MpRz3YAYJfU=
X-Google-Smtp-Source: AGHT+IECHSJCUekqZwIhlbIq/6PKX+T7MbDra6HTbgOhAupc1dEWEjceQ0jA5jI7EhGYNUrgA7MIng==
X-Received: by 2002:a17:906:730f:b0:aa3:a79d:49cc with SMTP id a640c23a62f3a-aa3a79d4ed9mr120948166b.13.1731581333250;
        Thu, 14 Nov 2024 02:48:53 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 14 Nov 2024 10:48:52 +0000
Message-Id: <D5LUCQ9MH2C2.1L6CFH028NYPS@cloud.com>
Cc: "Frediano Ziglio" <frediano.ziglio@cloud.com>, "Jan Beulich"
 <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 3/4] x86/trampoline: Document how the trampoline is
 laid out
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-4-andrew.cooper3@citrix.com>
In-Reply-To: <20241114090810.1961175-4-andrew.cooper3@citrix.com>

On Thu Nov 14, 2024 at 9:08 AM GMT, Andrew Cooper wrote:
> This is, to the best of my knowledge, accurate.  I am providing no commen=
t on
> how sane I believe it to be.
>
> At the time of writing, the sizes of the regions are:
>
>           offset  size
>   AP:     0x0000  0x00b0
>   S3:     0x00b0  0x0229
>   Boot:   0x02d9  0x1697
>   Heap:   0x1970  0xe690
>   Stack:  0xf000  0x1000
>
> and wakeup_stack overlays boot_edd_info.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
>
> v2:
>  * Rebase over the introduction of trampoline_perm_end
>  * Fix the description of the boot stack position
> ---
>  xen/arch/x86/include/asm/trampoline.h | 57 ++++++++++++++++++++++++++-
>  1 file changed, 55 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include=
/asm/trampoline.h
> index 8c1e0b48c2c9..559111d2ccfc 100644
> --- a/xen/arch/x86/include/asm/trampoline.h
> +++ b/xen/arch/x86/include/asm/trampoline.h
> @@ -37,12 +37,65 @@
>   * manually as part of placement.
>   */
> =20
> +/*
> + * Layout of the trampoline.  Logical areas, in ascending order:
> + *
> + * 1) AP boot:
> + *
> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the id=
entity
> + *    mapping (which must be executable) can at least be Read Only.
> + *
> + * 2) S3 resume:
> + *
> + *    The S3 wakeup logic may need to interact with the BIOS, so needs a
> + *    stack.  The stack pointer is set to trampoline_phys + 4k and clobb=
ers an
> + *    arbitrary part of the the boot trampoline.  The stack is only used=
 with
> + *    paging disabled.
> + *
> + * 3) Boot trampoline:
> + *
> + *    The boot trampoline collects data from the BIOS (E820/EDD/EDID/etc=
), so
> + *    needs a stack.  The stack pointer is set to trampoline_phys + 64k,=
 is 4k
> + *    in size, and only used with paging disabled.
> + *
> + * 4) Heap space:
> + *
> + *    The first 1k of heap space is statically allocated scratch space f=
or
> + *    VESA information.
> + *
> + *    The remainder of the heap is used by reloc(), logic which is other=
wise
> + *    outside of the trampoline, to collect the bootloader metadata (cmd=
line,
Wh> + *    module list, etc).  It does so with a bump allocator starting fr=
om the
> + *    end of the heap and allocating backwards.
> + *
> + * 5) Boot stack:
> + *
> + *    The boot stack is 4k in size at the end of the trampoline, taking =
the
> + *    total trampoline size to 64k.
> + *
> + * Therefore, when placed, it looks somewhat like this:
> + *
> + *    +--- trampoline_phys
> + *    v
> + *    |<-------------------------------64K------------------------------=
->|
> + *    |<-----4K----->|                                         |<---4K--=
->|
> + *    +-------+------+-+---------------------------------------+--------=
--+
> + *    | AP+S3 |  Boot  | Heap                                  |    Stac=
k |
> + *    +-------+------+-+---------------------------------------+--------=
--+
> + *    ^       ^   <~~^ ^                                    <~~^       <=
~~^
> + *    |       |      | +- trampoline_end[]                     |        =
  |
> + *    |       |      +--- wakeup_stack      reloc() allocator -+        =
  |
> + *    |       +---------- trampoline_perm_end      Boot Stack ----------=
--+
> + *    +------------------ trampoline_start[]
> + */

Neat. Nothing like a pretty picture to properly explain things.

> +
>  #include <xen/compiler.h>
>  #include <xen/types.h>
> =20
>  /*
> - * Start and end of the trampoline section, as linked into Xen.  It is w=
ithin
> - * the .init section and reclaimed after boot.
> + * Start and end of the trampoline section, as linked into Xen.  This co=
vers
> + * the AP, S3 and Boot regions, but not the heap or stack.  It is within=
 the
> + * .init section and reclaimed after boot.

How can it be reclaimed after boot if it's used for S3 wakeups? I assume yo=
u
meant that the heap and stack are reclaimed after boot, but from that wordi=
ng
it sounds like the other way around.

>   */
>  /* SAF-0-safe */
>  extern char trampoline_start[], trampoline_end[];

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 11:09:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 11:09:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836277.1252158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBXiO-0005Rh-Ca; Thu, 14 Nov 2024 11:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836277.1252158; Thu, 14 Nov 2024 11:08: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 1tBXiO-0005Ra-9E; Thu, 14 Nov 2024 11:08:44 +0000
Received: by outflank-mailman (input) for mailman id 836277;
 Thu, 14 Nov 2024 11:08: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=RpK4=SJ=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1tBXiN-0005RU-F0
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 11:08:43 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20621.outbound.protection.outlook.com
 [2a01:111:f403:2614::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cdba43dc-a278-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 12:08:40 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PAXPR03MB7634.eurprd03.prod.outlook.com (2603:10a6:102:1dc::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Thu, 14 Nov
 2024 11:08:37 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8137.027; Thu, 14 Nov 2024
 11:08: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: cdba43dc-a278-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjIxIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNkYmE0M2RjLWEyNzgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTgyNTIwLjY5OTQzNCwic2VuZGVyIjoiZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EbXVHJR3HHY6X83bS1fzhU+TF/mv4W7WMj37m1GCiqROG/422tDasLjkppEdCWe0IzVHpkszgkAtXPrG6Ka6qpgXZF1xZ6oSrhcCGFvQJIUEkEPFGBrDyXqhwT2c1WnOX4fIrsjBAhpJv+Hf3qojVeNwsTiqKQ/LKbVOPnS7zdzTQrKzq8TeV00hEbZpfWcdHbZ1sQchZ/6YeFNVHk1k6OTMisJLCl+XmG2UZIBfgbz3Xj55+MEKx271t1wQVJjFM4A7Xlu4DDEJl/YwUpv6atAuGRtOXYdYB/6txzF214Ea7SnXud0cApiEAVMfTi0wP9r4P/n7/uYYc6hhMzI+Qg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PWjwJdgEjAg0pVlHjrnvoQQVUCrIB47RZjxSVRvZYe4=;
 b=t+LqM/VRoA3GhdDScAeNs9igctRdyyOdNykAfwzjcfwtEVHBv11b3dua/+BT5PDS0wuqRxLEIj+pOzG1BytTRdPxI4MCA9SU+a+fqGMajAwZS0B6gcyJsP83zdyfGZ8qr/qU/xR5TQ4VMRGlNKdqPDtIzzQkwoKottc46OEQVB7UBbNgxMbXR8FrklsTYzRM8/ztR2XQDMZN9Jhc5RF/vLj/CEhGAmgN8jQs2RJYRwOLHyrJNZsUd35jv+l5DUrkvV7xij+Dl+Ln2HEx+4xeYIQknL059FRssmOXfIlE2sxUf3zhT2ckeENaKYUz1rL0XI+nnokBHgKT3gJ6f7CCMg==
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=PWjwJdgEjAg0pVlHjrnvoQQVUCrIB47RZjxSVRvZYe4=;
 b=oJtpLY9oXfNR0qWNszrTlxymibpnxELlJ01mQX91mayggyYP/OZVVEmYlthzd5WRO5oa0G/1sEpvCjcikEpXv2jDwDa86zoO24jms4+bx71Atz3+JRWNUIjuX2xjysK7FUA4ogRgBugiurgvz98fWJCy11cpD/nU9OxRtex/AXwRmYopU4/+izG/pUrXqrvTsRtKm1Yr+xhCs/3UlhxwCJB6yViDR8d3d1HdPvt6uGqwtkXP7uAT/KWW+d0qvRIwonrGbL6+K8gz6jp1N941IDl00c0YwE1j+jk68BeRwdIJVxqMGRCFSUUO4RCjI1KhZjK58aCt/+0XKqZalicL/w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <690f9613-b50f-4bae-9580-7acdf21c6336@epam.com>
Date: Thu, 14 Nov 2024 13:08:35 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/device-tree: Allow region overlapping with
 /memreserve/ ranges
To: Luca Fancellu <luca.fancellu@arm.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20241114102802.54512-1-luca.fancellu@arm.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20241114102802.54512-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0099.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a9::17) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PAXPR03MB7634:EE_
X-MS-Office365-Filtering-Correlation-Id: 682df1f7-a4ca-4101-0289-08dd049cb047
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?R2xFTVlUUXRTTExzZnJxVHBOY2JwM3hXTHZxNzl6UVY5U1ZiYk9oeUlrck5I?=
 =?utf-8?B?MTMzNTVpdndpSzJUcXVDUmVURm0zS0g3U1A4MkNPakRLbU1qQ0RJTU9aRUhM?=
 =?utf-8?B?NmpueGZuRVJNMDliZWJrM3dETm13ZlRrOTJzWVN4ajczeVdLSVNUWWcwR1Vt?=
 =?utf-8?B?bkdoVnpiMFAyNWZxM2p0V0JrQ2dOemVxUWZXUkdLYWpHU1p4M09wcHFzaldR?=
 =?utf-8?B?cDA4WGowMnV2eW12RnhLRXg2QWtYblczYURtak90OXlxR1JpQm9PU0tFY0VG?=
 =?utf-8?B?L21WbWZEcExab013R3V1SmJEYkxESTFKamp4aXgwOG5BTU1zUmhxZzVpZDM4?=
 =?utf-8?B?Q3oxTUZHK2prTFpkNUZGNVVGdUNRTlJMZVRNbGkxL3hISEQ0dFVRMzFNYmFI?=
 =?utf-8?B?VlB3ejFhbEN3VVRXWHJ0VEtaT0hRSmxMV1hKUEh0Smx5ZW9jRy9CQzFkTWpq?=
 =?utf-8?B?OGpPbjRyV0gwR0VEay9jQ2xhTWp1ZDd0S0w4amxFbE1aZFVhUSs0M3RtQkxV?=
 =?utf-8?B?U295NVUvVzBDQ3Y1SGdyMUFQdkV5VDg1ckJmcHhvbTVLRW9sK2tFRERFVWc1?=
 =?utf-8?B?eXJoZjcyN3hkc1J3clJqelZOeHprT3ZxV3dXU1ZYaXNPZnFMRStySzZ2LzAz?=
 =?utf-8?B?QVE1cmxJeStFclU1OUhpcGJmMzdwTFlTbGFVTEtkMEd1c3EwN00zcllRSHBN?=
 =?utf-8?B?ZnJZUzZMckJLbFNOblIzVCtONUhhWS9zOFJMcU5YcEpyREVNdXpqVzJqQWli?=
 =?utf-8?B?R2FObWVYZ0hPbmlmdnhVMlJ5eU5SdFA3dk04aE9zMUVsNVJyNjZxeTM5bVhE?=
 =?utf-8?B?U2JlOUVHTGJhMVltVFJ1YkQ1b3pmUjJKam9sOGI1U1BVdk9yV3dkNkhPMDVR?=
 =?utf-8?B?SWIva1RmbHVpT3JhVVd2N3dDcjhCMGduU2ZJQUpYeTFCemd6eW82OU45a1A5?=
 =?utf-8?B?TTNVeTc0TXozcUhWSTgxVXJrK2tpSDhkNGJRSFR2OXJ0Y1VNNGR0V3dHQitR?=
 =?utf-8?B?T3BXUE9vQlUvSkluRVRZZGRNK2w3S0J1Vk1LSDBJVExydXk1L21YNnowL2ox?=
 =?utf-8?B?d2h2ajR4S0VkaDFjQm9KclVxMm1BNVlQY1Z1UDJnUHVKSW52b3F5VnVFNDFC?=
 =?utf-8?B?MkVJVFlrV3dMOWpjc0VWWDMvd045Q1R1dml3d2drMU43VWh5ZEUxeHNGN25V?=
 =?utf-8?B?RjhqK3VOOXY0UjJaUzlLVFZoeThGSWFDeHlUYjJFYTNQNHkvdDd1VjQ1c1hS?=
 =?utf-8?B?SGlsdFNqRE04d2gwVGk3cXZoRGxMVWpUYjVBOUZXalJwekNQUjl2NW1Fclkx?=
 =?utf-8?B?b1M4L0FYYVQ1c2dyU0FoSTNMdnRNRVBORTN0Tm5HQ3UxWXl3OEVEVVpQVDB1?=
 =?utf-8?B?VFMrTDRVMWpjZHR0TUJXeSs5ZWlSUi9UYVQ4NDlocTFURlBnZ1FTUkZNa0xx?=
 =?utf-8?B?ZnduNWYxM0V1UUhsUDBXNkZ3bkF3bU50Q0RIVWtObkVjQ09lY2RqS29DQ1NM?=
 =?utf-8?B?SGhpZHBPcmNFdm1ibG9sV05hcjRHOFNmWWhvM0Rzb2gwenYvWjhCSGlWeUZH?=
 =?utf-8?B?SXIwMG4vZTUybkVFQXVIOG5wN1lvQlZTa1dQVTNYTTA3OHhEWkdIMGhhNjlt?=
 =?utf-8?B?a2dYalFGcGNBdUlpR2g1MlNqUHdzMVp5NFhkV3RMSjNDRU1GOXNYS0xkWDBp?=
 =?utf-8?B?aHQwbFNMbWw3Z2RQeFU2Nm90ZVEzenIyNk9tT2ZpR2JvUTJLK2FTeld2SUhS?=
 =?utf-8?Q?iHND19E3R+0jVrcVffuDITZmmy04ohP4aut7VGL?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?a2daREd0YUp5UUlGY0RsNjBRbDgrakZheGV3S3RlcTVCWW8zUWJGL2tmYzN4?=
 =?utf-8?B?VWlCN2pPcWRUQTBIZndHS0x1OXdrc042b2YrSVRYSzNuWW5acEllUy9RMzZB?=
 =?utf-8?B?ZHFRclkybmk0VnR1dmo0bGRBNy9NRjRUaCtuQ0FLSlVLZDZqRW1WM1lCMHBF?=
 =?utf-8?B?OWhJRDhuYlA0U0ErSGFFQkZBUkYzUnY2a3ZJZ21EZ2l5c2JWQWhZc1FONGxH?=
 =?utf-8?B?MDZrK2t2b2cwelNMMEVlamNaSDdTTkgvb29WRis5UnpoTlhjZ0oyNzNVYUJs?=
 =?utf-8?B?aHpnUTVSSXB2Zm9VWXkzdFJQMDRmb2o2djlsTThhalJNV2JMS2pNeEZKa2Fy?=
 =?utf-8?B?VnpDVldpZGxTV01wYVdIbWI1OXJzcHExVjNjOVBod2dhSmtZaTVJZ0dHbzJi?=
 =?utf-8?B?SUVnNVArbkYxL0FnQXVob2FhK09MZllWQXRmVWtvcitrWGRkaU55b2lJemtm?=
 =?utf-8?B?TE1KZHRwR1UvQjVqUm9ML0hVNnMxWEVtVVJFY1RkT3FzWWJucGhrZmY1bHQ5?=
 =?utf-8?B?RXU3K2Y4ZTZGOGRqMWYrdStEYmVUZXJLcCtBa2NHMlc5SGk4ZW9ZSjd5eUtS?=
 =?utf-8?B?SXJmcTVqcTdSWlhNL3V0U2liUWxTYkF5U3VWSDdVUkN1cVFmYTh6U05sNmtK?=
 =?utf-8?B?OHZFQ2RDN1RpNHhqU3VBSnZ4SVUwdVNkZU9YR1YyY3RXdWVYbHloaTFSWEtn?=
 =?utf-8?B?eGl6RjVZU1RTbUU3ZXlOTlNZejVIcnBpQWNicFBiQ001MTl4N3VuTW15ZjM3?=
 =?utf-8?B?UkR1Y0Q5TnIydFVNaHZGR0hHSFJuUENXL2lDU3dqcnord3ZLalJXUnJER1Ez?=
 =?utf-8?B?OXRycHRlYzUrMzZBVDZ4TWhNYUlNMVRZZzE1OENoSkJhay9HREJCMHQ5UVEz?=
 =?utf-8?B?Uk54dlY1ditSbEJNTHVEajAxbzQ5Q2NhdXFHbjRydS9LM2dpcUJZRmQ5cEJh?=
 =?utf-8?B?MnhjSklEQ2lSUkVKVldLOGVwYW94a05Bcm90VFBYcGovY0s0VTJ3TVI0dHpZ?=
 =?utf-8?B?akRaT1U3VHlJUEpHWkdOYWM1RTJBQ3VVcktWSE9XN3VQMGJqRDNrNVFFa3dI?=
 =?utf-8?B?RUNEWTJIaE5kZERPaUx3S1BadDl4V0lqV2dVUk5EcVlZaUlJQ3hyVU0vYk5O?=
 =?utf-8?B?SzU4elJEZ0trSlpZN0JPNG90R0pXVXdvZEE0ajhnSko2dXZZU3Q4RVg2YjBS?=
 =?utf-8?B?Sm5PV204aXdiN0paMy9URERaM3E0Mk9IWldCdnRzTlNka3ZCOUQ4dVM4SFFU?=
 =?utf-8?B?WkVWREQ5dlVsb3dMRUgzUEN6NFhHZHd1U2x6MGlwcjdQbzF3VDdGbnNsbkVM?=
 =?utf-8?B?UE9jbUxSZ0NwN21ya3doaHdnUEtuVXpBTzNhUEpaVmQ3SC9hK2hYUjlOQzRT?=
 =?utf-8?B?L2ZucEZDM0xQdVNGTVJ6ODNRUloxNVZIVnQ0cU1LcUdWR3E2NGpFYnU2MWdw?=
 =?utf-8?B?TG5qcEpOcFBxMk9VR0YvWWwxN0JpaG1uSFFKUlcycFdwQVZWTWo0djdGWUpw?=
 =?utf-8?B?YXJmVXRIclNzdHlicGhkbUpvUEE0cnIzZ1hJZG1ac0l0dHozY0h6VExrL0dZ?=
 =?utf-8?B?eFFvNGlYb3hrdUMxd3h1anlqdTdQWXdCRk9rZ2E1RGc0cFU0VUtCektLaDV4?=
 =?utf-8?B?WHY3L3FvS0d0NE5PSEhzeWZSbzY5QVVlbkxGeVJpZk5XQzNHRGV2VTd0d1ND?=
 =?utf-8?B?UEJVb1I4RFJtalphSTNBSzJpRVM5aGZndU5IZmNPVC90RU1IMnAzM3hweTNm?=
 =?utf-8?B?U3BwREdIQ3RLaUJ4R0RGYmk5dHY0dXEvZTZqWUp4b1RkRU5wRlZFeU9NSWxx?=
 =?utf-8?B?OVNkWGRvNExHNS9yenlheUpRNWoxWmU1bWRiZnZYSnJjVlEyU1dIWE5uMjJh?=
 =?utf-8?B?dHNLRzZvQ0tCU0huM0VqTGVERWFpb3lxdTByMWdhaHZ0M3dKUEZHaWRCK2Y1?=
 =?utf-8?B?ZU9oaWVDUkZNTno2bk9xMjFaQ2NybFJ5MjFydytpY2ZlYkFHUHJicmk1OXNo?=
 =?utf-8?B?NFdxTTBNR0xudkFCZm9BM0ordHVFNmhrY2NmQ2pzcDNuTjRNVFNOdkoyY0hv?=
 =?utf-8?B?ZjBBOHFYWlY4dlRoeDNsYktPTEdMNXg1aTloMXNKUE9VTFpVLzFMSFZtS1dP?=
 =?utf-8?B?cCs1UmErRUtOYzJ2N2pWdHRISVFMRTgyaTlJbXRBTndvcHFLNTczcVc5VUN0?=
 =?utf-8?B?Vnc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 682df1f7-a4ca-4101-0289-08dd049cb047
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2024 11:08:37.7131
 (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: eDHc/vptZ/6w/bX28VhQs1G2jJ9HNzW0PnhbYgF6/dcdzjJqJYRQWDc1F7AJ5Isb5auTg+AL7KSTt3bXsdGv2htTPW5EBH5hNa2jOYVcP/Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7634



On 14.11.24 12:28, Luca Fancellu wrote:
> There are some cases where the device tree exposes a memory range
> in both /memreserve/ and reserved-memory node, in this case the
> current code will stop Xen to boot since it will find that the
> latter range is clashing with the already recorded /memreserve/
> ranges.
> 
> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
> in the /memreserve/ part and even in this case this will prevent
> Xen to boot since it will see that the module memory range that
> it is going to add in 'add_boot_module' clashes with a /memreserve/
> range.
> 
> When Xen populate the data structure that tracks the memory ranges,
> it also adds a memory type described in 'enum membank_type', so
> in order to fix this behavior, allow overlapping with the /memreserve/
> ranges in the 'check_reserved_regions_overlap' function when a flag
> is set.
> 
> In order to implement this solution, there is a distinction between
> the 'struct membanks *' handled by meminfo_overlap_check(...) that
> needs to be done, because the static shared memory banks doesn't have
> a usable bank[].type field and so it can't be accessed, hence now
> the 'struct membanks_hdr' have a 'enum region_type type' field in order
> to be able to identify static shared memory banks in meminfo_overlap_check(...).
> 
> While there, set a type for the memory recorded using meminfo_add_bank()
> from efi-boot.h.
> 
> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> Changes from v1:
>   - fixed commit message
>   - used boolean to allow /memreserve/ overlap or not
>   - now 'struct membanks *' have a type, while it might seem a waste of space,
>     it might be used in the future to consolidate also the 'struct bootmodules'
>     and 'struct bootcmdlines' to use the same 'struct membanks *' interface.
>     Also the added space is limited to 3/4 enum size.
>   - The change above allowed this version to remove the "hack" when dealing with
>     static shared memory banks, that doesn't have a type.
> 
> I tested this patch adding the same range in a /memreserve/ entry and
> /reserved-memory node, and by letting u-boot pass a ramdisk.
> I've also tested that a configuration running static shared memory still works
> fine.
> ---
> ---
>   xen/arch/arm/efi/efi-boot.h       |  3 ++-
>   xen/arch/arm/static-shmem.c       |  2 +-
>   xen/common/device-tree/bootfdt.c  |  9 ++++++-
>   xen/common/device-tree/bootinfo.c | 39 +++++++++++++++++++++++--------
>   xen/include/xen/bootfdt.h         | 20 +++++++++++++---
>   5 files changed, 57 insertions(+), 16 deletions(-)
> 

[...]

Dom0 started successfully with Initrd.

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

Meminfo from boot log is below:

(XEN) Checking for initrd in /chosen
(XEN) Initrd 0000000084000040-0000000087bc5831
(XEN) RAM: 0000000048000000 - 00000000bfffffff
(XEN) RAM: 0000000480000000 - 00000004ffffffff
(XEN) RAM: 0000000600000000 - 00000006ffffffff
(XEN)
(XEN) MODULE[0]: 0000000048080000 - 00000000481ec000 Xen
(XEN) MODULE[1]: 0000000048000000 - 000000004801e080 Device Tree
(XEN) MODULE[2]: 0000000084000040 - 0000000087bc5831 Ramdisk
(XEN) MODULE[3]: 0000000048300000 - 000000004a300000 Kernel
(XEN) MODULE[4]: 0000000048070000 - 0000000048080000 XSM
(XEN)  RESVD[0]: 0000000084000040 - 0000000087bc5830
(XEN)  RESVD[1]: 0000000060000000 - 000000007fffffff
(XEN)  RESVD[2]: 00000000b0000000 - 00000000bfffffff
(XEN)  RESVD[3]: 00000000a0000000 - 00000000afffffff

Thank you,
-grygorii


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 11:11:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 11:11:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836288.1252169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBXkq-0007GK-Tu; Thu, 14 Nov 2024 11:11:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836288.1252169; Thu, 14 Nov 2024 11:11: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 1tBXkq-0007GD-QP; Thu, 14 Nov 2024 11:11:16 +0000
Received: by outflank-mailman (input) for mailman id 836288;
 Thu, 14 Nov 2024 11:11: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBXkp-0007G4-6C
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 11:11:15 +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 27abf034-a279-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 12:11:11 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43162cf1eaaso6154765e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 03:11: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-432dac21a15sm16616085e9.38.2024.11.14.03.11.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 03:11: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: 27abf034-a279-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3YWJmMDM0LWEyNzktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTgyNjcxLjQwNzg5LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731582671; x=1732187471; 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=ZBaIyazJjJMr4oD9NzgbY3iHT93rvlmS402mcAKCBDY=;
        b=YGx6SCEnBdMZ4S9NWTm1LblxmXT5Gx3iqGGZX2TskNOEhLTK7i2rURBsAMYFZIeAdN
         O7oQjqSFf60zDvOQA/u6S+AAOiWNlzYKE9OCLHHJA8MNb5+ktAoQieQXV8et5oDo51Bm
         255yJPaDXVDFfeWd8HHOxevBCRy+TYjM23gX4ohFXxqbeS+VocgcIIz1E7AaEjTli0Gt
         beEpvmds98WluCKs8TTJiP5PWbggC4Fdc9SZbkYx/AWYURaHr7FoBjXdnMy/Sq7cvgs2
         yz6m0fnCQ+s47fo6mXetuxnHSRBgspcuWZpakQQFXaux8kvydpA0XZTYka4dVMgO7csV
         XDGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731582671; x=1732187471;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZBaIyazJjJMr4oD9NzgbY3iHT93rvlmS402mcAKCBDY=;
        b=ATX9I8imbiUVCXepKU0PubBHppHaUMk1UMbgKJ5LpVtIA3DD/MCAd04epggYDsxXF7
         luRyTObWtQHDxwIa9ooNesyj3dvy/UPAlcc9CepckN2ZUGcqN2VmVp0hD0eBfedtXrRs
         /Km+Xg9dOjWGA+BO83Hnf28ASiB5RWnt4jy6cYexDJOKbEcsU2NVLl3h4opeo9AFJMxg
         8xvlWb2nzTKfKESoyNOnB2g4FuEWDRGzObcv+bHMLNPkPuwbJw4ArL1kGQzWGI+pDPDH
         3u5z9gn25LBcGXNYLUP/uMn5S0jAQxx3xd1WvH2pZAoXSD3FNGo3iBRtKbfPeqCvbO4X
         /2VQ==
X-Forwarded-Encrypted: i=1; AJvYcCXzFl3RZVFh09IQe+JrX5inWuBvE+efNtWmgbNvTsUXh+7zp8hdOoxyd0RTITVBuBR7AhIP5f5E8AY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHUlAnLox5jcn9V3D33sCx/PcbtbIqKfaDp+bZ5fkCBeG5p+50
	hfeD2zIHlp87Uxqn3xkDUq2yOXwPosATbqUIRqzXkxsc9aOB/0aUBAzUQ5wYjw==
X-Google-Smtp-Source: AGHT+IHqDPRLkrFtfmKFzwgm+oJLPS40eFOB5dWMD7VHvGhGdqBaRh8v9jxpC71Y4eMRSL6pDWrKjA==
X-Received: by 2002:a05:600c:3b93:b0:431:562a:54be with SMTP id 5b1f17b1804b1-432da77c15amr18800125e9.9.1731582670742;
        Thu, 14 Nov 2024 03:11:10 -0800 (PST)
Message-ID: <f0072d5d-8626-4708-91a8-503a33e99ec5@suse.com>
Date: Thu, 14 Nov 2024 12:11:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
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: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-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: <20241112211915.1473121-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2024 22:19, Andrew Cooper wrote:
> With the tangle of logic starting to come under control, it is now plain to
> see that parse_blob()'s side effect of re-gathering the signature/revision is
> pointless.
> 
> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().

That's microcode_update_one() after 502478bc1d9d if I'm not mistaken. In the
course of determining that I'm afraid I also found the first sentence of this
paragraph rather misleading than helpful: While it is true what is being said,
in both cases it is collect_cpu_info() that is being invoked, retrieving both
signature and revision. IOW logic needing the signature only doesn't really
matter here (and the sentence made me hunt for cases where we would read just
the signature, aiming at verifying that leaving the revision field unset
would indeed not be a problem).

>  For
> good measure, the apply_microcode() hooks also keep the revision correct as
> load attempts are made.
> 
> This finally gets us down to a single call per CPU on boot / S3 resume, and no
> calls during late-load hypercalls.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Preferably with the problematic sentence dropped or clarified:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 11:18:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 11:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836298.1252178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBXrJ-0007uW-Hu; Thu, 14 Nov 2024 11:17:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836298.1252178; Thu, 14 Nov 2024 11:17: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 1tBXrJ-0007uP-FR; Thu, 14 Nov 2024 11:17:57 +0000
Received: by outflank-mailman (input) for mailman id 836298;
 Thu, 14 Nov 2024 11:17: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBXrH-0007uJ-Fd
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 11:17:55 +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 156bef87-a27a-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 12:17:50 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-aa1f73966a5so92137566b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 03:17:50 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dfffc9fsm51538966b.130.2024.11.14.03.17.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 03:17: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: 156bef87-a27a-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE1NmJlZjg3LWEyN2EtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTgzMDcwLjI0ODI1OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731583070; x=1732187870; 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=PO+SNGYEl5hRA4Mi9c3K6NGG3KnKdCxA3qXbCfjCsZU=;
        b=hvAIIwZn+PbIR6nDkv++Tqqdw1mg1GKwL+1SczVzQhAde7mTOrKc8qmNLVJNMV+Umq
         nhFjFy4re5wwue0AM0qgzeyX/71f1KZiajIhHFXBPlGgCwK/l+/3ooouZJsI01/bjCo8
         XihDd466XXTE+ya/eK48RNE1YZfvoqTAVYHEk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731583070; x=1732187870;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PO+SNGYEl5hRA4Mi9c3K6NGG3KnKdCxA3qXbCfjCsZU=;
        b=o8TolUM1kNQjVT+kP/y3aSFVwrUaK+pfrgxciIp4YKtluLs/3j2H7SWqu6h7vjavuh
         aWuV+QMIYWh55cnuZf9W/v86Beq5fqQOxxo42uR9OX/PcpIk4kQ5ZQl2gRA4A15PNHYR
         IAOVrjA0ZHJ9GY/cZxnkbOILlnRZFOF2/vGRjQqUJzKaAZBjsMgVmAwyy4UUJ4sJXq5Y
         YzYJ/RKdY4c7RMF2tmw7PgRIEiVwP4qhUGJuTeOnp4otDFevqzHTlsgCQrBCirjekVq6
         BdKqXhpJYHhshJ+lj3vJKw32vf/NEc7mu8IGXGQGLasOR73pCPfhdM3mdA+vuSkFNDHq
         kPKw==
X-Forwarded-Encrypted: i=1; AJvYcCVHjsK2NvyuSBR9e7zk+BDBwSjLtmtfYLQUUpa/+Q2DrcL7lq07DeAphDERVQkuole59/IIUvHkiU0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjOLm21utIP6tEOiBSSYMZlHOCy28BlLzQXzawfSsB57p21nbG
	jSairC9fvRSJoT9bxJyig1TZbWDdKOv//EuuX7sQ/axhZ6digsuexjGTXZ/803FVvXtW/5mlh9V
	1
X-Google-Smtp-Source: AGHT+IHKtSo4G7a/17Y1iUaUZteyC+324dhPhqpUY0dNS+YujGJyuyWqIOMNUpdmEUKVZ03Z5bf/Qw==
X-Received: by 2002:a17:907:26c4:b0:a9a:3da9:6a02 with SMTP id a640c23a62f3a-aa20cdfb74cmr167791266b.60.1731583069557;
        Thu, 14 Nov 2024 03:17:49 -0800 (PST)
Message-ID: <a2a65e08-84d8-4181-9a98-f4811eac6767@citrix.com>
Date: Thu, 14 Nov 2024 11:17:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] x86/trampoline: Document how the trampoline is
 laid out
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-4-andrew.cooper3@citrix.com>
 <D5LUCQ9MH2C2.1L6CFH028NYPS@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <D5LUCQ9MH2C2.1L6CFH028NYPS@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/11/2024 10:48 am, Alejandro Vallejo wrote:
> On Thu Nov 14, 2024 at 9:08 AM GMT, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
>> index 8c1e0b48c2c9..559111d2ccfc 100644
>> --- a/xen/arch/x86/include/asm/trampoline.h
>> +++ b/xen/arch/x86/include/asm/trampoline.h
>> @@ -37,12 +37,65 @@
>>   * manually as part of placement.
>>   */
>>  
>> +/*
>> + * Layout of the trampoline.  Logical areas, in ascending order:
>> + *
>> + * 1) AP boot:
>> + *
>> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
>> + *    mapping (which must be executable) can at least be Read Only.
>> + *
>> + * 2) S3 resume:
>> + *
>> + *    The S3 wakeup logic may need to interact with the BIOS, so needs a
>> + *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
>> + *    arbitrary part of the the boot trampoline.  The stack is only used with
>> + *    paging disabled.
>> + *
>> + * 3) Boot trampoline:
>> + *
>> + *    The boot trampoline collects data from the BIOS (E820/EDD/EDID/etc), so
>> + *    needs a stack.  The stack pointer is set to trampoline_phys + 64k, is 4k
>> + *    in size, and only used with paging disabled.
>> + *
>> + * 4) Heap space:
>> + *
>> + *    The first 1k of heap space is statically allocated scratch space for
>> + *    VESA information.
>> + *
>> + *    The remainder of the heap is used by reloc(), logic which is otherwise
>> + *    outside of the trampoline, to collect the bootloader metadata (cmdline,
> Wh> + *    module list, etc).  It does so with a bump allocator starting from the
>> + *    end of the heap and allocating backwards.

Was this a typo replying to the email?


>> + *
>> + * 5) Boot stack:
>> + *
>> + *    The boot stack is 4k in size at the end of the trampoline, taking the
>> + *    total trampoline size to 64k.
>> + *
>> + * Therefore, when placed, it looks somewhat like this:
>> + *
>> + *    +--- trampoline_phys
>> + *    v
>> + *    |<-------------------------------64K------------------------------->|
>> + *    |<-----4K----->|                                         |<---4K--->|
>> + *    +-------+------+-+---------------------------------------+----------+
>> + *    | AP+S3 |  Boot  | Heap                                  |    Stack |
>> + *    +-------+------+-+---------------------------------------+----------+
>> + *    ^       ^   <~~^ ^                                    <~~^       <~~^
>> + *    |       |      | +- trampoline_end[]                     |          |
>> + *    |       |      +--- wakeup_stack      reloc() allocator -+          |
>> + *    |       +---------- trampoline_perm_end      Boot Stack ------------+
>> + *    +------------------ trampoline_start[]
>> + */
> Neat. Nothing like a pretty picture to properly explain things.
>
>> +
>>  #include <xen/compiler.h>
>>  #include <xen/types.h>
>>  
>>  /*
>> - * Start and end of the trampoline section, as linked into Xen.  It is within
>> - * the .init section and reclaimed after boot.
>> + * Start and end of the trampoline section, as linked into Xen.  This covers
>> + * the AP, S3 and Boot regions, but not the heap or stack.  It is within the
>> + * .init section and reclaimed after boot.
> How can it be reclaimed after boot if it's used for S3 wakeups? I assume you
> meant that the heap and stack are reclaimed after boot, but from that wording
> it sounds like the other way around.

This is the one bit that is slightly problematic to represent.

trampoline_{start,end}[] describe the AP/S3/Boot text/data *in the Xen
image*, which is in the .init section.

trampoline_phys is where trampoline_start[] ends up when placed.

Maybe I should have "Note: trampoline_start[] and trampoline_end[]
represent the shown boundaries as linked in Xen" at the bottom of the
diagram?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 11:26:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 11:26:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836311.1252189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBXzD-0001Xq-C8; Thu, 14 Nov 2024 11:26:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836311.1252189; Thu, 14 Nov 2024 11:26: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 1tBXzD-0001Xh-8N; Thu, 14 Nov 2024 11:26:07 +0000
Received: by outflank-mailman (input) for mailman id 836311;
 Thu, 14 Nov 2024 11:26: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBXzC-0001Xb-6m
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 11:26:06 +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 3b69db8b-a27b-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 12:26:03 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-37d6a2aa748so316128f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 03:26: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-3821ada2d35sm1217706f8f.18.2024.11.14.03.26.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 03:26: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: 3b69db8b-a27b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNiNjlkYjhiLWEyN2ItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTgzNTYzLjUyNDk5NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731583563; x=1732188363; 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=r5d34F7KUc1m0vzt31kFemyCLBA/1UsPI6/PPXrUlls=;
        b=GaLoMmsxUSpJklrAxynlhbihQJAqRYDaGQN6EWd+t7TzfV87zOjcyfGm2Dhr4p5BE6
         lBDt5Wwz0F5UcAvefJVNGNhE3GxeDQ4bcZFb4uVnZy3osbR3VMyHV8+2qmLrGDawP7lh
         Z7s7DHl4vxsrp5OEA6WA2AxNWP7yOoD4bEkf6T7LaiINMXht+XS+iJJKwZFbKsCa+5r8
         E4lNmvrsOz+DDPkWkUYsqtwAyuy7AVmu3uGNoDNcFrYd75XIZqjZiEmxB7go5ap0hgX+
         brBKEBAcE1z4dI2UexCuIAFsO5gpZm3hV+k3/Fx4Os/u5zA8nVrCDH8v8F4M8FrOV2Cj
         VaYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731583563; x=1732188363;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r5d34F7KUc1m0vzt31kFemyCLBA/1UsPI6/PPXrUlls=;
        b=VCb4eud1tEd+9QkCBqe0Jx+cvtuyRgKVFM+zTGDiAMlVqhAQHWsKvdXmZWm7bWO+Jr
         xBk+3Bga0f0cuZuvox5KtlBk3JqKk3wnV6pU7xsSPSt8/PjXPnd71tDbLmnD5y1mQlWY
         NkXA9r7mdyX79bTcd86D6GSEhNTFQ0NFA2pzZP74rJksiIvS6MtbFXhrP7X1TXv6jAc8
         gHYGSf3AecvYJGavVuj9V/YXWtG9hPFDFrL5QC575PRnJf8iRmAjGdYa4nPHzzPshYmD
         GjVqeOmYHJSAOnnUa5+F/W3EAcME0xaJJs4ud0jQ+mS6e/B7HEb9cP56hCzJXoOx4BqT
         vYbA==
X-Forwarded-Encrypted: i=1; AJvYcCXmuJiaNnf2DYHEoUomAs495fQrFI/mwgkyL8Te0gNXHN8JdUOEbAuUDyYuz6XHwga6vqDGIGe0VKc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRDhCe1aCsweUAPVbXWgqA2/W1qBOwISynSTYRgdJLzhiWKvnY
	LkioruaQIpnGhBCuUNq6MyAd/OZ0i89zfmlB0UDi30VxRU+yR5tqm8ZBxQ+PNA==
X-Google-Smtp-Source: AGHT+IEg0eavXiTdgvVjkcyUm7odtxVwkPgjUj5e/Eipbiwm4KF9m3YgSSTYP0hHJT8B2BAilpDp6g==
X-Received: by 2002:a05:6000:18af:b0:37d:3985:8871 with SMTP id ffacd0b85a97d-382185392fbmr1419344f8f.39.1731583562862;
        Thu, 14 Nov 2024 03:26:02 -0800 (PST)
Message-ID: <c25b7a62-fc47-440f-9521-f11b65e2cb8b@suse.com>
Date: Thu, 14 Nov 2024 12:26:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] x86/ucode: Fix cache handling in
 microcode_update_helper()
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-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: <20241112211915.1473121-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2024 22:19, Andrew Cooper wrote:
> microcode_update_cache() now has a single caller, but inlining it shows how
> unnecessarily complicated the logic really is.
> 
> Outside of error paths, there is always one microcode patch to free.  Its
> either result of parse_blob(), or it's the old cached value.
> 
> In order to fix this, have a local patch pointer (mostly to avoid the
> unnecessary verbosity of patch_with_flags.patch), and always free it at the
> end.  The only error path needing care is the IS_ERR(patch) path, which is
> easy enough to handle.
> 
> Also, widen the scope of result.  We only need to call compare_patch() once,
> and the answer is still good later when updating the cache.  In order to
> update the cache, simply SWAP() the patch and the cache pointers, allowing the
> singular xfree() at the end to cover both cases.
> 
> This also removes all callers microcode_free_patch() which fixes the need to
> cast away const to allow it to compile.

I'm sure you're well aware that this in turn is just because of your opposition
to xfree() and alike taking const void *. Pointers needing to be to non-const
just because of eventual freeing is precisely the scenario why freeing (and
unmapping) functions better wouldn't take mutable pointers. Then ...

> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -86,7 +86,7 @@ struct patch_with_flags {
>  static bool ucode_in_nmi = true;
>  
>  /* Protected by microcode_mutex */
> -static const struct microcode_patch *microcode_cache;
> +static struct microcode_patch *microcode_cache;

... this imo pretty undesirable change also wouldn't be needed.

Nevertheless, in the interest of not blocking this change over a long-standing
disagreement we have,
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 11:42:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 11:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836324.1252198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBYEf-0004rt-Lh; Thu, 14 Nov 2024 11:42:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836324.1252198; Thu, 14 Nov 2024 11:42: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 1tBYEf-0004rm-Ig; Thu, 14 Nov 2024 11:42:05 +0000
Received: by outflank-mailman (input) for mailman id 836324;
 Thu, 14 Nov 2024 11:42: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBYEe-0004rg-JP
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 11:42:04 +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 765eee62-a27d-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 12:42:01 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43163667f0eso4710955e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 03:42: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-432da27ffafsm20880675e9.22.2024.11.14.03.42.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 03:42: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: 765eee62-a27d-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc2NWVlZTYyLWEyN2QtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTg0NTIxLjQyMzE2Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731584521; x=1732189321; 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=vjPNGdQGo25oHcJOvSGhX3nl6JKxsDZiGpRGUM+/mnw=;
        b=S7wMEz7wK2+ywWt3GozLqSDUhVljdB3zgVL6z5uNNYjCtESBwVM0oIbFq/5WcZtZuN
         z9PC2uaZTjcTbE48Cs7R1JyRyYHdo/iz0h9QTH2uKeOmrwJb77J1vdPm3qB5quY9kTUU
         XqLpsDUoOzEhNzmh4D0LZ8otzHSY2NI0dM0mwTdXVwKEjx6uEHabN7EoKuf548kTENGJ
         fopocEWcawQGuitlfwb0zw3qvFGlNrQdtxgGPLnKGApWBWuPZfWjjdLCmbryiKUT5PHQ
         eRCiLBEiDXjNJQJe2jwZKemkNSmbrr1x8yieTuKbRRU31nKrzTk0YrEN/3OiuMXcKFEu
         gHKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731584521; x=1732189321;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vjPNGdQGo25oHcJOvSGhX3nl6JKxsDZiGpRGUM+/mnw=;
        b=TsBdWdLSR3+DrSNTRu1TNjD5FmrSSkg3IiA5bpzdX/P+pfKBDMR3sU6vSp1w6JC+e8
         qgWPXD/xPIcou8HgGJK9/jzNPsUycbI/sxRd/zygf5Se1nSGuBmPcl0qeGQHQlXuhu4R
         pmqRhlbon1Pc5qVJOXhS9OzENmTTK7q3YkflkujtSePt9W/Zu9Q4femGEVBwupKDViPC
         7rMPpSISCOhirdYDEeZBNPzf9R6y8g+gbK4CfXItZP5RI2VcLmOhpA/SN2u5bnLYuUw4
         KJAg/zPhfZVjXToA/Adk7BgnTnLCV2QU0Dhhcy/UGfP/h5gcd/JqoRDmsILI9nQH4rqG
         YzXQ==
X-Forwarded-Encrypted: i=1; AJvYcCUkI2T2u/grpeWPyLo3Xek+nXdPnfZQa/Ip07kTdUAgJ8AIYPPwTVdchPG3hfXRppWnqNa8zKoxaBM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxrI8Ho6fL20gqhMWsZQOau38I+l9lDyw/LyQxMZ6dVM9GYiOj
	c+LAnfklGCTgJj5luVv6hHRPOKNnXOWStNfDTr+PKBzumCoxaiiIqCm+m4aagw==
X-Google-Smtp-Source: AGHT+IEpEas25+lJXbB6zpvxH+5WeDRGgLx5IjJePN42cRvkOS38/CVshQxDZFSMW55xNWsq1MPECg==
X-Received: by 2002:a05:600c:548b:b0:426:64a2:5362 with SMTP id 5b1f17b1804b1-432da7a051amr16541365e9.8.1731584520788;
        Thu, 14 Nov 2024 03:42:00 -0800 (PST)
Message-ID: <aee06ffe-fb3d-41ab-a715-0bb057d4ca52@suse.com>
Date: Thu, 14 Nov 2024 12:41:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] x86/ucode: Drop MIS_UCODE and
 microcode_match_result
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: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-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: <20241112211915.1473121-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2024 22:19, Andrew Cooper wrote:
> @@ -199,8 +198,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *patch)
>      return equiv.id == patch->processor_rev_id;
>  }
>  
> -static enum microcode_match_result cf_check compare_patch(
> -    const struct microcode_patch *new, const struct microcode_patch *old)
> +static int cf_check compare_patch(
> +    const struct microcode_patch *old, const struct microcode_patch *new)
>  {

Let's hope we won't screw up a backport because of this swapping. I'd
like to ask to at least consider renaming at least the functions,
perhaps also the hook pointer, perhaps simply by switching from singular
to plural. This would then also avoid reviewers like me to go hunt for
all uses of the function/hook, in an attempt to make sure none was left
out when converting.

> @@ -54,11 +47,17 @@ struct microcode_ops {
>                             unsigned int flags);
>  
>      /*
> -     * Given two patches, are they both applicable to the current CPU, and is
> -     * new a higher revision than old?
> +     * Given a current patch, and a proposed new patch, order them based on revision.
> +     *
> +     * This operation is not necessarily symmetrical.  In some cases, a debug
> +     * "new" patch will always considered to be newer, on the expectation that
> +     * whomever is using debug patches knows exactly what they're doing.
>       */
> -    enum microcode_match_result (*compare_patch)(
> -        const struct microcode_patch *new, const struct microcode_patch *old);
> +#define OLD_UCODE  -1

Nit: I'm pretty sure Misra wants parentheses here.

Preferably with both (mechanical) adjustments:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 11:45:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 11:45:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836332.1252208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBYHg-0005V9-7B; Thu, 14 Nov 2024 11:45:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836332.1252208; Thu, 14 Nov 2024 11:45: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 1tBYHg-0005V2-3a; Thu, 14 Nov 2024 11:45:12 +0000
Received: by outflank-mailman (input) for mailman id 836332;
 Thu, 14 Nov 2024 11:45: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBYHe-0005Uu-NI
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 11:45:10 +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 e405ee17-a27d-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 12:45:05 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so685166a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 03:45:05 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79b89b78sm489123a12.14.2024.11.14.03.45.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 03:45: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: e405ee17-a27d-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzEiLCJoZWxvIjoibWFpbC1lZDEteDUzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU0MDVlZTE3LWEyN2QtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTg0NzA1LjM3MTUyOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731584705; x=1732189505; 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=ex8GpRSqTxFHga8D7ZgTHkOrTwevkNjZ8GqEOSrkUzc=;
        b=a+nP7jdUmbBGBaxFValzBWSECT3TT5IgY6VFvJOlzFfHX/8vo65X1tJspYgiTzvkBj
         bojGgeZUhXlUtKffQZe4QKz8ayU7c0vPPG8XU9D5UyehYpE/Q77PSTMQSC70DkkCa/SY
         QAQgwEnfh/fVh4TzKDuMO2qzZh6+k66qqmLCk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731584705; x=1732189505;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ex8GpRSqTxFHga8D7ZgTHkOrTwevkNjZ8GqEOSrkUzc=;
        b=AbYrFwkPxqaaxSoy0yyEKIaR9vB0wqd2D5sYv3A0DSTtCF+B6VsBT+madN/H//SoGl
         cA9J7hPS9c0mE+YdCa8klQZ8TkB2uaMb+FSmdjiW8nfTQ6UdpR+I/CAnXeVnRILv7IYo
         WTAr0Krnp5LQSKmdGtdfCS/qkdjcu8tu1faY9m4ffF5i2+OmYr1GIRmWgPzoOb4R6VGj
         LGiyZoXMC59IW7hftBFRdoEq+zekE3KDSVv+KTkMK3G1ualKhQ8OhVpeJYLZq9X3qd2c
         4+j329vH9ocapg+HTOsKQEbqFIruK9jDeowjZySKw+AR3QNQ4vX4dZI4VBbHpgCwU5Lr
         IIbQ==
X-Forwarded-Encrypted: i=1; AJvYcCUEbyq1WDaYHTJ3/2xbieemWGc8WmBrVV8Eq+M+nlBVV+PK5YfXFM7XIE8pL60zj+67u9M+3YHEktg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5NYwd40kQGTaeGIpmGvKXthXZQnywhd47l1gwmtPV+u9IZ/Ik
	+oDD4ZI4w9DvoemkcrhBowdxAxB1YxZjfM0Q4zyNa+YXvjjU9eHrODnarmxMYUI=
X-Google-Smtp-Source: AGHT+IGlAwn8fzbPiSQJNKta3JZnyGsvLZBwbjOJPpI8KeM2M4tFSUUYAY+P6d36NZB/VLvw1h+E8g==
X-Received: by 2002:a05:6402:2786:b0:5cf:3dc3:7a3f with SMTP id 4fb4d7f45d1cf-5cf3dc37aa2mr13186160a12.5.1731584704726;
        Thu, 14 Nov 2024 03:45:04 -0800 (PST)
Message-ID: <a3a0b4b9-19e6-4d49-86ed-92ded7bd10da@citrix.com>
Date: Thu, 14 Nov 2024 11:45:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86emul: ignore VEX.W for BMI{1,2} insns in 32-bit
 mode
To: 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: <367ba117-f376-433b-bd70-586d7519d94c@suse.com>
 <39de64e1-c615-4ec3-ad05-ff99f27a8e30@suse.com>
 <6442a109-de9a-4b81-a283-2d72bbc3d284@citrix.com>
 <3788f564-7f02-4e2e-ac4c-b29214206e0d@suse.com>
 <876f727c-8929-4149-af72-c3344db06e31@citrix.com>
 <935442f7-4821-4215-a053-eeb1347282bb@citrix.com>
 <9815fb42-9205-4740-97b4-0b915de0c71b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <9815fb42-9205-4740-97b4-0b915de0c71b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/11/2024 9:39 am, Jan Beulich wrote:
> On 13.11.2024 14:32, Andrew Cooper wrote:
>> On 13/11/2024 1:31 pm, Andrew Cooper wrote:
>>> On 13/11/2024 8:01 am, Jan Beulich wrote:
>>>> On 13.11.2024 01:24, Andrew Cooper wrote:
>>>>> On 12/11/2024 3:00 pm, Jan Beulich wrote:
>>>>>> While result values and other status flags are unaffected as long as we
>>>>>> can ignore the case of registers having their upper 32 bits non-zero
>>>>>> outside of 64-bit mode, EFLAGS.SF may obtain a wrong value when we
>>>>>> mistakenly re-execute the original insn with VEX.W set.
>>>>>>
>>>>>> Note that the memory access, if any, is correctly carried out as 32-bit
>>>>>> regardless of VEX.W.
>>>>> I don't understand why this is true.
>>>> This talks about the access to guest memory, which is op_bytes based.
>>>> And op_bytes determination handles VEX.W correctly afaics. I've added
>>>> "guest" near the start of the sentence for clarification.
>>> Ah - that makes things much clearer.
>>>
>>> I had neglected to consider the access to guest memory.
>>>
>>> In addition to a "guest" earlier, I'd suggest having a new paragraph at
>>> this point, and ...
>>>
>>>>> If we write out a VEX.W=1 form of BEXTR/etc and emulate while in 64bit
>>>>> mode, it will have an operand size of 64.
>>>>>
>>>>> I can believe that ...
>>>>>
>>>>>>  Internal state also isn't leaked, as the field the
>>>>>> memory value is read into (which is then wrongly accessed as a 64-bit
>>>>>> quantity when executing the stub) is pre-initialized to zero.
>>> ... this reading:
>>>
>>> "The emulator-local memory operand will be accessed as a 64-bit
>>> quantity, but it is pre-initialised to zero so no internal state an leak"
>>>
>>> or similar.
> That's to _replace_ the "Internal state ..." sentence then, rather than an
> added separate sentence / paragraph? It says exactly the same, after all.

Ideally, yes.Â  I think it's clearer this way around.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 11:49:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 11:49:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836342.1252219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBYLQ-000658-MA; Thu, 14 Nov 2024 11:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836342.1252219; Thu, 14 Nov 2024 11:49: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 1tBYLQ-000651-IM; Thu, 14 Nov 2024 11:49:04 +0000
Received: by outflank-mailman (input) for mailman id 836342;
 Thu, 14 Nov 2024 11:49: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=wQsW=SJ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tBYLO-00064v-Nr
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 11:49:03 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2417::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c3cc7f5-a27e-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 12:48:55 +0100 (CET)
Received: from DM6PR08CA0043.namprd08.prod.outlook.com (2603:10b6:5:1e0::17)
 by MN2PR12MB4127.namprd12.prod.outlook.com (2603:10b6:208:1d1::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Thu, 14 Nov
 2024 11:48:50 +0000
Received: from DS1PEPF0001709D.namprd05.prod.outlook.com
 (2603:10b6:5:1e0:cafe::2c) by DM6PR08CA0043.outlook.office365.com
 (2603:10b6:5:1e0::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Thu, 14 Nov 2024 11:48:50 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS1PEPF0001709D.mail.protection.outlook.com (10.167.18.107) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Thu, 14 Nov 2024 11:48:49 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 14 Nov
 2024 05:48:48 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 14 Nov 2024 05:48:47 -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: 6c3cc7f5-a27e-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjFkIiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZjM2NjN2Y1LWEyN2UtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTg0OTM1LjIyMDc1OCwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l7/sL1jOYVbiPxqroIcmduOUwv3Bfm4ye3IR6Ct32IGRchZvTnydt78g0NjOkAd3oBNmcB+kWNsxMZKF/9PyFYjFZUlemIh5vajvEdkioNXB63bNXQEJo3WVVvo2Y5PvD9gbcRjLLyvTtneT8HvrY7Bk3xcDTRORQgeQs030hb5RIDenIY/w/rnUJHGFBGL8yu8RMfNCPd3rAii3S4yo2DlL2Q2NOCkb5Zwlpy0GX6GAyF0VxvGfSqX3boe/h3XYfHU4yOILqWuc/rG4sKw4Gnkw2kuEEBuu3sSHg5nd7glsl1u9JB+O8Qn5p8S0m0oVLguLRndEC7/Jx+rhUhb7sg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=d7y0tbRpT4CRrKq9gn0uSBgTBByyKppoMoANKhFUVoo=;
 b=L85HknJHRyz0JFuVaWOQAZD/Zpemuj4O/YkzvWccwL31OCjKKWyzvEiSWvnYTyB2qheK0jN5Q60Gr/737GcDPJN3c38ZxNIkUg7JRXvgfO58bR2k+zC5o+94F/b7+azTXDmC0hIIXGFvUzFyhZwBNZYMMBxmizOJNBeV4UZmvGfkef0G3+9hM7K2G4ArN8OgJoooyWlQq1qgRphTI0VGKXl9Xq+10T1CxNrMu3Zl69O8B69FsL5W3vT17ECXnfhC387duh6iGJRyN8X9lMhohsAZOeXsqiZF4xUg3PFdA/GSypEVcw4kUBU2yW0e+Xv0cW+JlrbPd2u5I3PbymbRSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=d7y0tbRpT4CRrKq9gn0uSBgTBByyKppoMoANKhFUVoo=;
 b=odMsrPPDuYVaFv8opK0uLDrzBLZI3VNExrHg4VJKyntrDWAfZTME9l+zAObb4Lgo5kG+5IkPgrvcasJ86h473gk6kMFvE2Evvmalp09Qm9HNv4k30P6dy4kaqmw2OcC7SOEQO2k3yddb0CEtMSGTXPHo6ztRuiml81QDBWrIGOM=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <e023a861-a1d6-415e-9be8-688664bf5680@amd.com>
Date: Thu, 14 Nov 2024 12:48:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
 <92564de9-24f7-4259-bc45-a95680101693@xen.org>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <92564de9-24f7-4259-bc45-a95680101693@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF0001709D:EE_|MN2PR12MB4127:EE_
X-MS-Office365-Filtering-Correlation-Id: be44bd32-8183-461c-d4f8-08dd04a24e35
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?dzFPRHg3dDd0NVF6YWJCbER3Vnl2Q2RCZWpZSk5zS3F3YTdVdFVWZGd4dFhq?=
 =?utf-8?B?WlBiK2ZoMWhiOTljNnpCbUJqWVJESjRoOER5TFhoeE9GZnRNOGxvc2ZWK3E1?=
 =?utf-8?B?bWtZNWFwNGdJNEpuTGRIeEVhaStCdENhMjYxai80MGdLS0FRQTJWOWZHakxr?=
 =?utf-8?B?TUZxK1A0SDRHT3ZVT3dTN2xBVkRocVZBckRhSzlHMDFNYzRHVU9GNzVjUjRO?=
 =?utf-8?B?a3RwdFJicndzdWdjS2VyOGNqdy9hNE12a0lCRTRMVEYveTR1TXRNTFdYc1JU?=
 =?utf-8?B?cGhPQ3p3VVFnZjVhOEVXWTlkUlAvVFM1QTNLd2txUTlRVlFJS09JNXB5bGRk?=
 =?utf-8?B?TER4Ry9tR2JkbnlLS1ozSE9BcDVxbVo2RHVXRHYvTVFBUzl6SkRVZHBlZS9C?=
 =?utf-8?B?SDBPajBVcEFtUC85dExwd2VxWWRZUHRlbFVpbWxHLzRwWllOUlFPcGoxMkxk?=
 =?utf-8?B?Zk9xNVBLNmRRTUI5NlR3UllvazhRREdkRmd4Snd1N0p1RHlJS1lGUGZXQWN1?=
 =?utf-8?B?Vms2Q1pibmhwMG95THJ5dUhTeXNIbWJXRjhRbWNHQ3dWTE4wcFJKb2FrRnRJ?=
 =?utf-8?B?QUltSExkYjNIRzlicUl5K2FMVE43RkFLVzZLdjVsN0JVMlZCcnYzTFhZQWJF?=
 =?utf-8?B?RTd2MGIvU1VldlpRNUlST3hrdnhPNzRYWEI4aEsvVCt6dnYzSEtLVm54M3Ns?=
 =?utf-8?B?cS8xZWY5UFhnN0YzU29HUjFOTStMeE56NnFVa0hZdDhtZC9DOW5QSEJvTkdI?=
 =?utf-8?B?RFd2SUdRNC9iMy84UmxabVFKMzFzY05BbkVqR1Zpa1k0cWxUdHgzdlpoTjY0?=
 =?utf-8?B?WjBSaHpXRGJ4MlpPWlp3VDdwTGxHazlmUno2bC9INFpzUDRKeW1USXhEcEUy?=
 =?utf-8?B?K2xNcjEzYy91Uk5HRXRCM0JGY1hHY0ZiUDh0a3UzRDVRK3paVE1UQmtjeW1G?=
 =?utf-8?B?aXBTMGNHMGpHTFdaRHF3ZUxWdUl4NjZoTTd4MjNEMm00Vnd4QklsYVJpVm1D?=
 =?utf-8?B?cHIwbVVDT3pyOGdERk41emczczlmb2Y2K2VCaGpHNXMzeW1XOXREZHJMNW5h?=
 =?utf-8?B?RUFGcFVEeHlxaGZqRUh2SU5zRktXZU5CbmpnSVdFcTJlZUp1QzNMeUpUaDJC?=
 =?utf-8?B?MWNadUx6UGF6UzFBVkNrWkNoTzhxbjRieVMydEFiV09DRno3bXhyaVU3RW82?=
 =?utf-8?B?azl5WENnK3U1TXdZT25NQ1Q1UmRJTk5XWnhrNGt1OW9Pb2pLRlBrd2FqOHgx?=
 =?utf-8?B?Y0xDeS9UK2NsS2w4YmEzWkI3SjljNUlodDVSYkUwYjV5Sm5HRDRhTUhMa3FD?=
 =?utf-8?B?ZVRad2F2UEtVQmwrNS9KM3JYaG90ZCszT1p4QWNvNHpoa3hLc2pXUEQyR0Ur?=
 =?utf-8?B?QWNrK0xJQWROVlF1UDlBc3FqZHhnSkdhWXJuYis3LzBlTWRoUlFzZ3E1bS9S?=
 =?utf-8?B?ZktJUHVURWEyaTVYb2k0ZHhvT2NNeUUwaXJxODQvZ045NXk3eElUR3RIOW9B?=
 =?utf-8?B?dWRBbGVUTFNBVGtaL20vWTl6dDBzOHluNkttb0hZcDlxbWVaOVlQc2VkbERL?=
 =?utf-8?B?V3hsbjhLSDFMSjNEZGc3OHUrVTkrc2ZRTWtwdlFLbHg4ajIxWEg3eStWbS9I?=
 =?utf-8?B?ckVkbDVmSDlTaTZrMlREWTFxbFc0eHZ4WURnMVd3OWtqTXlyRktBZWc2RjVu?=
 =?utf-8?B?VDJwN1RKUmYwWWtOUHY0WEtvVHFndVdOZWt0Z01mUWdJWUJ4Z3pjUmNhRFhN?=
 =?utf-8?B?clJ4N3hxWTZCaUpraGJiY0xDOUVucS8vMmRSQi8xS3M1THIyYW5zQncxRHhC?=
 =?utf-8?B?Z0JZRjJmSVRWVm9xRGdHcm04STQ0WEJ0a3B5RCtLSUY5WkFKUGhKTnNDdHRH?=
 =?utf-8?B?Q3l1ZGZ5SG1yYkxKbzR1Y3o5aG1QRG1ic21lLzZBano2L29tS0d1Y3V2OWVs?=
 =?utf-8?Q?M/YfepxNhuc=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 14 Nov 2024 11:48:49.8748
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: be44bd32-8183-461c-d4f8-08dd04a24e35
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF0001709D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4127



On 14/11/2024 11:31, Julien Grall wrote:
> 
> 
> Hi Stefano,
> 
> On 13/11/2024 22:41, Stefano Stabellini wrote:
>> On Wed, 13 Nov 2024, Julien Grall wrote:
>>> On 13/11/2024 15:40, Michal Orzel wrote:
>>>> On 13/11/2024 15:40, Julien Grall wrote:
>>>>> On 13/11/2024 14:19, Michal Orzel wrote:
>>>>>> On 13/11/2024 14:50, Julien Grall wrote:
>>>>>>> On 06/11/2024 15:07, Michal Orzel wrote:
>>>>>>>> On 06/11/2024 14:41, Luca Fancellu wrote:
>>>>>>>>> There are some cases where the device tree exposes a memory range
>>>>>>>>> in both /memreserve/ and reserved-memory node, in this case the
>>>>>>>>> current code will stop Xen to boot since it will find that the
>>>>>>>>> latter range is clashing with the already recorded /memreserve/
>>>>>>>>> ranges.
>>>>>>>>>
>>>>>>>>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>>>>>>>>> in the /memreserve/ part and even in this case this will prevent
>>>>>>>>> Xen to boot since it will see that the module memory range that
>>>>>>>>> it is going to add in 'add_boot_module' clashes with a
>>>>>>>>> /memreserve/
>>>>>>>>> range.
>>>>>>>>>
>>>>>>>>> When Xen populate the data structure that tracks the memory
>>>>>>>>> ranges,
>>>>>>>>> it also adds a memory type described in 'enum membank_type', so
>>>>>>>>> in order to fix this behavior, allow the
>>>>>>>>> 'check_reserved_regions_overlap'
>>>>>>>>> function to check for exact memory range match given a specific
>>>>>>>>> memory
>>>>>>>>> type; allowing reserved-memory node ranges and boot modules to
>>>>>>>>> have an
>>>>>>>>> exact match with ranges from /memreserve/.
>>>>>>>>>
>>>>>>>>> While there, set a type for the memory recorded during ACPI boot.
>>>>>>>>>
>>>>>>>>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to
>>>>>>>>> bootinfo.reserved_mem")
>>>>>>>>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>>>>>>>>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>>>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>>>>>>>> ---
>>>>>>>>> I tested this patch adding the same range in a /memreserve/ entry
>>>>>>>>> and
>>>>>>>>> /reserved-memory node, and by letting u-boot pass a ramdisk.
>>>>>>>>> I've also tested that a configuration running static shared memory
>>>>>>>>> still works
>>>>>>>>> fine.
>>>>>>>>> ---
>>>>>>>> So we have 2 separate issues. I don't particularly like the concept
>>>>>>>> of introducing MEMBANK_NONE
>>>>>>>> and the changes below look a bit too much for me, given that for
>>>>>>>> boot modules we can only have
>>>>>>>> /memreserve/ matching initrd.
>>>>>>>
>>>>>>> How so? Is this an observation or part of a specification?
>>>>>> Not sure what specification you would want to see.
>>>>>
>>>>> Anything that you bake your observation. My concern with observation is
>>>>> ...
>>>>>
>>>>>     It's all part of U-Boot and Linux behavior that is not documented
>>>>> (except for code comments).
>>>>>> My statement is based on the U-Boot and Linux behavior. U-Boot part only
>>>>>> present for initrd:
>>>>>> https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L249
>>>>>
>>>>> ... a user is not forced to use U-boot. So this is not a good reason to
>>>> I thought that this behavior is solely down to u-boot playing tricks with
>>>> memreserve.
>>>
>>> Sure we noticed that U-boot is doing some we didn't expect. But this really
>>> doesn't mean there are not other interesting behavior happening.
>>>
>>>>
>>>>> rely on it. If Linux starts to rely on it, then it is probably a better
>>>>> argument, but first I would need to see the code. Can you paste a link?
>>>> Not sure how I would do that given that it is all scattered.
>>>
>>> There are no requirements to be all scattered.
>>>
>>>> But if it means sth, here is kexec code> to create fdt. It is clear they do
>>> the same trick as u-boot.
>>>> https://github.com/torvalds/linux/blob/master/drivers/of/kexec.c#L355
>>>
>>> Yet this doesn't provide any information why this only has to be an exact
>>> region... It only tells me the current behavior.
>>>
>>>>
>>>>>
>>>>>>
>>>>>> For things that Xen can be interested in, only region for ramdisk for
>>>>>> dom0 can match the /memreserve/ region.
>>>>>> Providing a generic solution (like Luca did) would want providing an
>>>>>> example of sth else that can match which I'm not aware of.
>>>>>
>>>>> I would argue this is the other way around. If we are not certain that
>>>>> /memreserve/ will not be used for any other boot module, then we should
>>>>> have a generic solution. Otherwise, we will end up with similar weird
>>>>> issue in the future.
>>>> We have 3 possible modules for bootloader->kernel workflow: kernel, dtb and
>>>> ramdisk. The first 2 are not described in DT so I'm not sure
>>>> what are your examples of bootmodules for which you want kernel know about
>>>> memory reservation other than ramdisk.
>>>
>>> The DTB is not described but the kernel is. We also have XSM modules. All of
>>> which could in theory be in memreserve if for some reasons the bootloader
>>> wanted to preserve the modules for future use (think Live-Update)...
>>>
>>> Anyway, to be honest, I don't understand why you are pushing back at a more
>>> generic solution... Yes this may be what we just notice today, but I haven't
>>> seen any evidence that it never happen.
>>>
>>> So I would rather go with the generic solution.
>>
>> I looked into the question: "Is this an observation or part of a
>> specification?"
>>
>> Looking at the device tree specification
>> source/chapter5-flattened-format.rst:"Memory Reservation Block"
>>
>> It says:
>>
>> "It is used to protect vital data structures from being overwritten by
>> the client program." [...] "More specifically, a client program shall
>> not access memory in a reserved region unless other information provided
>> by the boot program explicitly indicates that it shall do so."
>>
>>
>> I think it is better to stay on the safe side and implement in Xen a
>> more generic behavior to support /memreserve/. It is possible that in a
>> future board more information could be residing in a /memreserve/
>> region. For instance, I could imagine EFI runtime services residing in a
>> /memreserve/ region.
> 
> I am not 100% sure about this one. The specification implies that if a
> region is reserved, then it would need to be marked as
> EfiReservedMemoryType in the EFI memory map. But for EFI runtime
> services, they should be using EfiRuntimeServicesCode or
> EfiRuntimeServicesData.
> 
>>
>> I am a bit confused by ranges that are both in /memreserve/ and
>> /reserved-memory. Ranges under /memreserve/ should not be accessed at
>> all (unless otherwise specified), ranges under /reserved-memory are
>> reserved for specific drivers.
> 
> IIUC /memreserve/ is the legacy approach for describing reserved regions.
> 
>> I guess ranges that are both in /memreserve/ and /reserved-memory are
>> exactly the type of ranges that fall under this statement in the spec:
>> "unless other information provided by the boot program explicitly
>> indicates that it shall do so".
> 
> Yes. The OS would be able to use the range based what /reserved-memory
> says. Note that you can also the describe a region from /memreserve/
> outside or /reserved-memory (such as the CPU spin table).
> 
>>
>> The way I see it from the device tree spec, I think Xen should not map
>> /memreserve/ ranges to Dom0, and it should avoid accessing them itself.
> 
> See above, Xen should be able to access the regions in /memreserve/. But
> it should map them in the directmap.
> 
>> But if a range is both in /memreserve/ and also in /reserved-memory,
>> then basically /reserved-memory takes precedence, so Xen should map it
>> to Dom0.
> 
> Unless Xen needs to use some of them. At which point this will need to
> be excluded from Dom0.
> 
> Looking at the code, I think /memreserve/ and /reserved-memory are not
> mapped in Xen and everything in /reserved-memory is mapped to dom0.
Why do we forward /reserved-memory to dom0 fdt but /memreserve/ not? From the discussion
we're having it seems like we should treat them equally. Also, looking at Luca patch,
we seem to special case /memreserve/ and only allow for overlap /memresrve/ with boot modules
and not /reserved-memory/ with boot modules. If we are going to claim that all the boot modules
can be marked as reserved by the bootloader, then I think we should treat them equally providing
the same experience to dom0.

Last thing I wanted to ask (for my clarity) is that if bootloader loads initrd at region A and marks
it as reserved (either in /memreserve/ or /reserved-memory/), and later on Xen copies initrd from region
A to B, shouldn't the reserved memory region be updated to cover new region for initrd?

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:05:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:05:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836355.1252228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBYat-00015S-2j; Thu, 14 Nov 2024 12:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836355.1252228; Thu, 14 Nov 2024 12:05: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 1tBYat-00015L-05; Thu, 14 Nov 2024 12:05:03 +0000
Received: by outflank-mailman (input) for mailman id 836355;
 Thu, 14 Nov 2024 12:05: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 1tBYas-00015F-8P
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:05: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 1tBYap-004pYP-1e;
 Thu, 14 Nov 2024 12:04:59 +0000
Received: from [15.248.3.93] (helo=[10.24.67.25])
 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 1tBYao-004Gid-2R;
 Thu, 14 Nov 2024 12:04: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>
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=FP9v43NDpOxTfi1whLij228pxlcxSdo5+0NGXttSYD8=; b=BGZrZrOXOlQdsfkyb82Z6EVkic
	G+9Irqdykdx0OVQFCXRJSKkt64wJ5OIQwFH4Eec/YbiHIrfBVjEcZL1UR6JpP3l9YTjwTMGlA+Lxy
	iQMnbU1GAb3LeB88cDRO49lE+S0hh9yHcu08Jey6CKBoKjdxvhCE60ABkXuxn5hSmlSg=;
Message-ID: <8e467912-a71a-4c10-91dc-46706ed7aa1e@xen.org>
Date: Thu, 14 Nov 2024 12:04:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
 <92564de9-24f7-4259-bc45-a95680101693@xen.org>
 <e023a861-a1d6-415e-9be8-688664bf5680@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e023a861-a1d6-415e-9be8-688664bf5680@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 14/11/2024 11:48, Michal Orzel wrote:
> 
> 
> On 14/11/2024 11:31, Julien Grall wrote:
>> Looking at the code, I think /memreserve/ and /reserved-memory are not
>> mapped in Xen and everything in /reserved-memory is mapped to dom0.
> Why do we forward /reserved-memory to dom0 fdt but /memreserve/ not?

I was wondering the same. The main issue I can think of with 
/memreserve/ is some of the regions will likely be for Xen own usage. So 
we would need to have a way to exclude them from dom0.

 >  From the discussion> we're having it seems like we should treat them 
equally. Also, looking at Luca patch,
> we seem to special case /memreserve/ and only allow for overlap /memresrve/ with boot modules
> and not /reserved-memory/ with boot modules. If we are going to claim that all the boot modules
> can be marked as reserved by the bootloader, then I think we should treat them equally providing
> the same experience to dom0.

In my mind, /memreserved/ and /reserved-memory/ are different. The 
former doesn't say what the region is for, but the latter will indicate it.

So I am not 100% sure how the bootmodule could end up in 
/reserved-memory/ because they are described as part of the multiboot 
modules. Do you have a scenario?

Regardless that, if we decide to allow boot modules in /reserved-memory/ 
then we would need need to rework how the reserved-regions are mapped 
because we don't want the boot modules to be exposed to dom0.

> 
> Last thing I wanted to ask (for my clarity) is that if bootloader loads initrd at region A and marks
> it as reserved (either in /memreserve/ or /reserved-memory/), and later on Xen copies initrd from region
> A to B, shouldn't the reserved memory region be updated to cover new region for initrd?

If we mark the region has a reserved, then we are telling the OS it 
can't use the region. But I am not sure why it would be needed as Xen 
doesn't care how the regions is going to be used by the domain. From a 
domain side, do you see any reason why we would want to mark again the 
region as reserved?

If we didn't copy the initrd, then I would have directly agreed that 
they should be marked as /memreserve/.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:22:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:22:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836373.1252262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBYro-0004VM-Lo; Thu, 14 Nov 2024 12:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836373.1252262; Thu, 14 Nov 2024 12: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 1tBYro-0004VF-JD; Thu, 14 Nov 2024 12:22:32 +0000
Received: by outflank-mailman (input) for mailman id 836373;
 Thu, 14 Nov 2024 12:22: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=wQsW=SJ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tBYrm-0004V9-RP
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:22:30 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2415::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1845d248-a283-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 13:22:21 +0100 (CET)
Received: from BL0PR0102CA0060.prod.exchangelabs.com (2603:10b6:208:25::37) by
 SN7PR12MB7107.namprd12.prod.outlook.com (2603:10b6:806:2a2::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Thu, 14 Nov
 2024 12:22:17 +0000
Received: from BL02EPF0001A108.namprd05.prod.outlook.com
 (2603:10b6:208:25:cafe::19) by BL0PR0102CA0060.outlook.office365.com
 (2603:10b6:208:25::37) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Thu, 14 Nov 2024 12:22:17 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A108.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Thu, 14 Nov 2024 12:22:16 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 14 Nov
 2024 06:22:16 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 Nov
 2024 06:22:16 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 14 Nov 2024 06:22:14 -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: 1845d248-a283-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjFmIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjE4NDVkMjQ4LWEyODMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTg2OTQxLjcwNTczNywic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a81FQWniLP2Wfo75gdsACZQAtrcRaIcYQ5eF4tZUmEjjpiaPW3zg8uC4Vd0t65r9QldplyiCQxTKqPCkGNZkMrVFCkY2dHFiRdm98ibnT/cRbiwgkMKYQKU0nj36MfSBpW5RHycOM91EyBHp+iUCvgVq6RULRKPOUJpy80NdYrKuTPm3HIjkh68VEL4OY8MnODLxTO+HnifEO2sLJDqkBy8C56gb38BB6zKfbo1d2uEFbcknnEeYHzF/XPBuR/lX+5OZiPH12tqQd42DOgvW2hCWa2XUFk/MfBDi/T8YpaLXbOYfEn5xMBKKZ69jcOe1L2PYg+rNNzGIMzgMReqNoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1r/naXYjspsWIe/YnUgVuCi6lSY47rT0QRfmq5xpr4o=;
 b=dTaK3rPd8EQQsHyyBZQwd33Sxi+tdih16cJYWvAa/+Lbs4pyXPykHpCrf0iRTeILXMdQZ7FadaYXOlUqNGab3sxzSgfJ8HX//MLXgVeS1MT7ZqeSeglQgfSqBxIh8V+GO9EAQDpmNws7PSBsQPBttHgke/ocg99qbZ2jpVV//XBSTT1StLqDlWgbBesEcWQ/RCBHZNc7MmfxvvkuZkP1vcTwZuwecBljS/bq8NKeBBH7xXUX0UtddWYF6B95sy55TLfPNyx18r91eoORRl/aMMGqrga8g7UV1DJ+M7nP6dW15fE/XvLE27GomxM3yFWhwTf92SR+e/JZdZZ3rMEQkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=1r/naXYjspsWIe/YnUgVuCi6lSY47rT0QRfmq5xpr4o=;
 b=v0LZ/vqltmLXqWNrTxELqdXk09zQU/IjqcIXt02OMeWeuskQ0XuYHuHHS9F4ROtu25bpUJ4yaIb2k3YSzIObhvjs+ypHWPsU2nIdf+BvPXMyx6yCjKcRb0Iazg13HQnN+EplNv733IGzMcz4jcd/UM0JxvkiKj+KQd33W9OASj8=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <7ba02037-05ec-491a-92c6-de7195d298ed@amd.com>
Date: Thu, 14 Nov 2024 13:22:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, <xen-devel@lists.xenproject.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
 <92564de9-24f7-4259-bc45-a95680101693@xen.org>
 <e023a861-a1d6-415e-9be8-688664bf5680@amd.com>
 <8e467912-a71a-4c10-91dc-46706ed7aa1e@xen.org>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <8e467912-a71a-4c10-91dc-46706ed7aa1e@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A108:EE_|SN7PR12MB7107:EE_
X-MS-Office365-Filtering-Correlation-Id: fc144c4a-d66f-4dff-3339-08dd04a6fa6b
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:
	=?utf-8?B?UkhLcC93R2c4SC80ZHNWY2xxMVZqWldpWHB2SW1sWDUwem13OFlUWkVQZlMv?=
 =?utf-8?B?ZlgrbExzME5pOWZrMzZ0UGxSTHZDMWgwSmFLV1ZhMytRTmdFY1JmWEJ2ZHdx?=
 =?utf-8?B?NFVRbGxiRTVZWVpiTGFTSFpza2RLbkJleFYzNk8zT0VaZTJub2xYVjhldXE0?=
 =?utf-8?B?bmJqYnNmVGVlbjNWQUc1QnZ0WFFmYVFjeklnQ2FIOUVWRmllc0g4dEZtSUNQ?=
 =?utf-8?B?cFdnSjhkUjhXOHY1VkZuSk9XdmFJMG03VTF5T2NtaUc1bStWNnlzRzkyMmpH?=
 =?utf-8?B?QVV0aGZuTTZHalAzajR6NytTZm9OWlJ5dVNJZmNBZitIeW9YeWZob05ReWtS?=
 =?utf-8?B?V1hJVjVkNkViR1dMaStRaExHb3JFQkJVUkZnT081WDlVVHVBK2dPNDQyOVF4?=
 =?utf-8?B?SnpmS0ZsZVBCcHpYZXdZL2ZMY0NWU1pwT243ZXV3SGhmOVA4MWxNZGlRY013?=
 =?utf-8?B?c0NSU1hpaHI3czBYcldsK25QTGp4aFY0UG1jRUtQL2xzWXFUNzE5ejNzblJw?=
 =?utf-8?B?QmNJY01aQWl6RUZaUE5JMEdLY3Ztd0RUOEpOTmpWcGVaeEdpaGlFdzJKb2Rx?=
 =?utf-8?B?S3EzSVI5K3QrSGlabTdtY1RNZTI4c3FyaXhLUE56aG9wS0dOaVNjcVNFektq?=
 =?utf-8?B?L1ozTGtpVXozTWRkcE83TWdpM0krMGxyMHpERjRYcjl3RlVKY2xkSUJzMUZO?=
 =?utf-8?B?UU1wZUR6MmpRNG5mWkt0c0x6cnBETnZmUitLUmk5RVJoOS84V3BCZjRIQ1hK?=
 =?utf-8?B?RmxwOGJ1aW9VMk5LM0puNjZGb3F3dExzWHhPV1pHNUExbjZrOXRRQk9TNEFO?=
 =?utf-8?B?VkNaSnZkdE91cVJzbnUxcStldmJtVmRpbm5CQ0ZCd0pJbFhCS05uQVhHY3Zm?=
 =?utf-8?B?VUluY0lMN2M2YUlReXg0WTZETkQ2dzhzQko0S2FjS1BpanJrSGZFMmhoR0c2?=
 =?utf-8?B?cFJuTFhDUjJ0UjhjYVY0b0dNeXBESmloVFFXdzdnbnRxbmhVNEdUSXo3QlJQ?=
 =?utf-8?B?dVlocWFuYXB5UzBFa2FEWi9kblQyNUpwcUxOMGZaZ3ZSZ2pKK1VHc09TdEQ0?=
 =?utf-8?B?Yll6eXdBYlM0dDUwYTdOUEdTTFhLNmYyQkpTZlJ3WWorVGo2R0l3VzhqbnNl?=
 =?utf-8?B?aHEzbWt0UThlTUF1b2FaRC9NTWZSQWFIUWZPQktRemlWRVlpRlBoMjI3RVZM?=
 =?utf-8?B?OW80SmFXQ1pGQmhPNTJmRVllZEpYVmEzWVF6cm9ZYmEvMllsVFRNcFNNaG5B?=
 =?utf-8?B?eHFRSUlrNWhibGxSeW9ScEtPbXBoNWhPQ1EwUXVSMVNpS1IyQmRrWkxCZWFO?=
 =?utf-8?B?c1ZUbzhiSkVXRGRrWnlVV2lEOXhnSkdCSzdjdkN4OVkrOXFCaWVLaXV4LzRU?=
 =?utf-8?B?SGxjOFp6alg4OENLam1iMldMeU5taGNGaTJVeU9TcHVxaWt4N1QzRzRoNmNs?=
 =?utf-8?B?M1VBbXcvSGNEaDQ4ckwvOUdjTE50T0dpNkxPV3ZCWkw5QnNMMHhUa04raUpq?=
 =?utf-8?B?MHltcHFuc3JuOUxxZ3Q2YUVJUnIrZVhjTytTekVSSEpRdUNyL1l4UGdyZUJZ?=
 =?utf-8?B?cWxyb200T1lKWjg4aTBwaVVkeWtZOTVGUzFuRlV0Zll0K0pLb3pINXhOcWpy?=
 =?utf-8?B?TFA0aCs1NG1IMUFzMFlOaWpCdTEvZTZoSWsrc29SYzg5NHlVWnI1d052SmZx?=
 =?utf-8?B?bTBhQk8rRmp5T1pvcDhzYjdWUVdBdHhRVlJ5TzN5ZVBWOUkxWkM2a0ZzOGlS?=
 =?utf-8?B?YVlSOERWN0VtZHZwYndzeUFsdy91NjBmNnFTckxWVHpxSGlVWHcrZ0F4RkNZ?=
 =?utf-8?B?VlN5SkMvU2ZNNnhtY01acENVeG40N091SFVqbGpYM2pTbHR3WjF0OG91SFZj?=
 =?utf-8?B?RGJLV2VZQzAxaXhCdlVBNHNseW50YWxaNTB2UDAyWXRRbkE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 14 Nov 2024 12:22:16.8108
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fc144c4a-d66f-4dff-3339-08dd04a6fa6b
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A108.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7107



On 14/11/2024 13:04, Julien Grall wrote:
> 
> 
> Hi Michal,
> 
> On 14/11/2024 11:48, Michal Orzel wrote:
>>
>>
>> On 14/11/2024 11:31, Julien Grall wrote:
>>> Looking at the code, I think /memreserve/ and /reserved-memory are not
>>> mapped in Xen and everything in /reserved-memory is mapped to dom0.
>> Why do we forward /reserved-memory to dom0 fdt but /memreserve/ not?
> 
> I was wondering the same. The main issue I can think of with
> /memreserve/ is some of the regions will likely be for Xen own usage. So
Can you give example of regions defined as reserved for Xen usage (other than static-mem)?

> we would need to have a way to exclude them from dom0.
> 
>  >  From the discussion> we're having it seems like we should treat them
> equally. Also, looking at Luca patch,
>> we seem to special case /memreserve/ and only allow for overlap /memresrve/ with boot modules
>> and not /reserved-memory/ with boot modules. If we are going to claim that all the boot modules
>> can be marked as reserved by the bootloader, then I think we should treat them equally providing
>> the same experience to dom0.
> 
> In my mind, /memreserved/ and /reserved-memory/ are different. The
> former doesn't say what the region is for, but the latter will indicate it.
In the context of this patch, I don't agree. We're discussing overlap, and if a region A
from /memreserve/ overlaps fully with a module A, we know what is the purpose of it.
Today it's initrd, but as you say we cannot rule out other modules as well.

> 
> So I am not 100% sure how the bootmodule could end up in
> /reserved-memory/ because they are described as part of the multiboot
> modules. Do you have a scenario?
I don't same as I don't have scenario for /memreserve/ overlapping with sth else than initrd.
All of these comes from my validation of u-boot, grub, barebox code. I have a feeling that due to
U-Boot trick that is not present in any other *known* bootloader, we are trying to over-engineer the problem :)
But as Stefano and you wrote, we should follow the spec and for me we should therefore treat them equally.

> 
> Regardless that, if we decide to allow boot modules in /reserved-memory/
> then we would need need to rework how the reserved-regions are mapped
> because we don't want the boot modules to be exposed to dom0.
+1

> 
>>
>> Last thing I wanted to ask (for my clarity) is that if bootloader loads initrd at region A and marks
>> it as reserved (either in /memreserve/ or /reserved-memory/), and later on Xen copies initrd from region
>> A to B, shouldn't the reserved memory region be updated to cover new region for initrd?
> 
> If we mark the region has a reserved, then we are telling the OS it
> can't use the region. But I am not sure why it would be needed as Xen
Well, in the context of initrd, kernel uses it even though it is reserved. This is because
of the second part of the spec where other bindings come into play.

> doesn't care how the regions is going to be used by the domain. From a
> domain side, do you see any reason why we would want to mark again the
> region as reserved?
TBH I don't same as I still don't know why U-Boot does that trick. It comes from a very
old code and my initial understanding is that it is done purely for U-boot bookkeeping.

> 
> If we didn't copy the initrd, then I would have directly agreed that
> they should be marked as /memreserve/.
> 
> Cheers,
> 
> --
> Julien Grall
> 

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:26:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:26:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836384.1252272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBYvw-00056B-5W; Thu, 14 Nov 2024 12:26:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836384.1252272; Thu, 14 Nov 2024 12:26: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 1tBYvw-000564-2h; Thu, 14 Nov 2024 12:26:48 +0000
Received: by outflank-mailman (input) for mailman id 836384;
 Thu, 14 Nov 2024 12: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBYvu-00055m-92
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:26:46 +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 b4860285-a283-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 13:26:42 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-539e8607c2aso543402e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04: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-432da2800absm22147425e9.25.2024.11.14.04.26.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 04: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: b4860285-a283-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI0ODYwMjg1LWEyODMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTg3MjAyLjYwNDIzMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731587202; x=1732192002; 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=FcE999/2te3VNnABXtvaSDhTIx8pnu2+4cAjn+yCADU=;
        b=O56GrJwvRm/OUe0IyjZ9FlNqBsLJh4EyWMXYdxd9zirEAU6YRvgEhQoD9zmfI7sztn
         MveskugaynADFEHNcNEhm35Cv576Css0o0RkNhvwdKttnNlzt/VgowPJD79OEaL+Iuiy
         Ssdhd1BPOxgSqpCt6BzTYwWq2VUxOazj8DJx269AN31WvrZm6GurIGxS5utKpdczgsR/
         DOMiPw6+W/QN6jSLKr7lz48tmROUb9f2wU68yLnlFvL0n+mpuFdBm01t9c1EB3pxyo7C
         Nw4Qk6h3+ffR0/MsXTh0v8pc9wumMRby2hPwiKIAGeJ211IgcWyxou6FLfmNwxZDdwmR
         RKsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731587202; x=1732192002;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FcE999/2te3VNnABXtvaSDhTIx8pnu2+4cAjn+yCADU=;
        b=BivFOlCmVsBHf86wg3puFIKFMjXx4oVOUChEHORRupmelkLTYWgP/IYo3iIEzlgNjW
         resfJGGawSJBxyNyhgBdFdzEPot5tR/2YXZA2KP1vXkKolSKekJKW/uUq7auqh8eJKaP
         bl3AR4mwjehTXzHRSy3AJDSwTTKVb7I+BTj4GUEl/0b3IUr4F0Je6s4AWEn8d9b4jP29
         0w8eIMhOEu70RKVfoClcmG526bCBl6QXCeJhM4Usmk2SDZ44+GegdoYozXnBIVsxx47K
         q1tBaGAy5bPMdVjiHjHZyacfqJGHOsssGtW+EAp6tYSsJ6VB3n97Np0yFCM5r5DZhXqy
         GZvg==
X-Forwarded-Encrypted: i=1; AJvYcCVXR5+yAo8FLwUeKaqMpu2AdanSJTH+yEQYCBFBiiiz4Etl6KS2hlcKe3h/t0JMdwEXgzx6WlKuutw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9QxL6B/ClyCU51auv0PC0IA8Uf33gVhIjFTILko+qIbAFQR46
	cWvLMOiIKVifmSQmwbQ6hsNvZgR6JRB+ojZBc1XCJd/Vv7db32l7f3Nlc08u6w==
X-Google-Smtp-Source: AGHT+IHmjCHBP9HrKjGL1wqLPoVjRpXfgeq05lJyYOin+hBVkscXOtqJKdWmJRljigTjilAz6lDy2g==
X-Received: by 2002:a05:6512:128a:b0:53d:a273:7da6 with SMTP id 2adb3069b0e04-53da2737e4bmr2422804e87.57.1731587201959;
        Thu, 14 Nov 2024 04:26:41 -0800 (PST)
Message-ID: <9d97a479-f5e4-4bd4-b47e-8503b3fdc806@suse.com>
Date: Thu, 14 Nov 2024 13:26:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
 <103dd682-cfb6-4f61-bced-f4e742813232@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: <103dd682-cfb6-4f61-bced-f4e742813232@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 16:29, JÃ¼rgen GroÃŸ wrote:
> On 13.11.24 16:20, Andrew Cooper wrote:
>> Looking over the XenServer patchqueue:
> 
> ...
> 
>> These are a SIGPIPE bugfix which happen to also have a perf
>> improvement.Â  I cant remember if we discussed backporting them before.
>> (Juergen/Anthony?)
>>
>> 42db2deb5e76: tools/libxs: Fix length check in xs_talkv()
>> e2a93bed8b9e: tools/libxs: Rework xs_talkv() to take xsd_sockmsg within
>> the iovec
>> f050c03ce2ad: tools/libxs: Rationalise the definition of struct xs_handle
>> 046efe529e82: tools/libxs: Track whether we're using a socket or file
>> ebaeb0c64a6d: tools/libxs: Use writev()/sendmsg() instead of write()
>> a17b6db9b007: tools/libxs: Stop playing with SIGPIPE
> 
> I'd take these, as playing with signals behind the back of a library user
> is something which should be fixed.

No question about the first and last one. Are all the intermediate ones
necessary, though?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:30:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836390.1252283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBYzJ-0006bS-LO; Thu, 14 Nov 2024 12:30:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836390.1252283; Thu, 14 Nov 2024 12:30: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 1tBYzJ-0006bL-IJ; Thu, 14 Nov 2024 12:30:17 +0000
Received: by outflank-mailman (input) for mailman id 836390;
 Thu, 14 Nov 2024 12:30: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=kOwd=SJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tBYzH-0006al-NZ
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:30:15 +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 304b6dd2-a284-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 13:30:10 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cec9609303so660055a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04:30:10 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df26d42sm58532866b.33.2024.11.14.04.30.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 04:30: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: 304b6dd2-a284-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwNGI2ZGQyLWEyODQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTg3NDEwLjMxMjcyNCwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731587410; x=1732192210; 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=+oSrtRME/QTPGCTebegGcqYCK85OYp2SbofomWmL+80=;
        b=P2w/XohWNNittKlP9FBUxdCzZDqVQF2+juojqkwE5OPaQDs2/Y+VTnxwqYtjeVpjjj
         ynoizC1ed2Jk5OrcWQp+TrpoZwwuMmM0Fa5U+U8wrUBrW0G8nhMPx9gDfU1fzLRJHjKN
         Z0IVgrhbM/5fYZLn7c0C7jFWTrDnmqWY/elL+CjlYZlC+KD71U7u2/6nZs7JNS57uiTE
         3rwTHfmPRqzsH02D3mj1qh/WK/6Sk9YfNYxXZCvnko+b5P9ejmjGhj81PTZiEYTu76Yf
         qv9j7ykUfNel5suzqlr/NdsH0sOlGfKMtuA01IuZYGHVOzokVM4sjMn5WWo3XfoCiZDH
         fBfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731587410; x=1732192210;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+oSrtRME/QTPGCTebegGcqYCK85OYp2SbofomWmL+80=;
        b=PsgcqxtvPXoWk48JwSC3XEu6XkJ/UQqWrXotWha/nX0kxxuVEnpZOZiIyCf0lePyeg
         pxXs5x+FcWGXhlHZLAZwD7cDkxxQRnN3T8pSD5M9TKQiMruSpGZF8JOqQ1Xdo/l/tA+g
         WRaKV3Yaa74yqWFYieciCUNMWRZKxPjldscx6Iqrxi7vHMlOGWKjRS7RE0zFoRKiPXOQ
         3xlbOzZ2ZBh9cMypZt84xHzjpy6sjcU7AcPRj4OPZfegCJWsqBO2QI9f/BydbYqFzdAM
         KJeaBR4t7usHpNKLYA7lBQ6GG2e6gqOmSsVS8hzAGElKPdxPo9t+aWnWEBOcrhwVVZ/b
         RPYw==
X-Forwarded-Encrypted: i=1; AJvYcCV2DZCBSecPikOgW4UnqjOgPGpju1mNr5ciLlxcD/Kb9gX3ialG9t8+hRJxk7HCsCGNxsxVBaQk38c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxxevyf7P1q39eI6iPDXCqaaztDdbtGDdp+E6Vi1D/NUpzr4Qi3
	+ApVnvO7kvMPfQDM06l1f0SbJlkz6+5C3Z3z0BaI/SLnUIpl6ZF84zWDrP0GsVQ=
X-Google-Smtp-Source: AGHT+IGk9Ic9S+UAJMJ1fx9eeIi0u4HFUB/MA7iIkIvd45YN94l+sA0W9RWKM98TT+6BLY0BR98tmQ==
X-Received: by 2002:a17:907:daa:b0:a9a:2afc:e4cd with SMTP id a640c23a62f3a-a9eefff1798mr2213481666b.44.1731587409627;
        Thu, 14 Nov 2024 04:30:09 -0800 (PST)
Message-ID: <639c17b4-0fe8-435d-9ea2-220ec9176e95@suse.com>
Date: Thu, 14 Nov 2024 13:30:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
 <103dd682-cfb6-4f61-bced-f4e742813232@suse.com>
 <9d97a479-f5e4-4bd4-b47e-8503b3fdc806@suse.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: <9d97a479-f5e4-4bd4-b47e-8503b3fdc806@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Axw5fFAdAN0932N0SBg6uCwT"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Axw5fFAdAN0932N0SBg6uCwT
Content-Type: multipart/mixed; boundary="------------rk002xTbf0fGyf75Jc86ELTd";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <639c17b4-0fe8-435d-9ea2-220ec9176e95@suse.com>
Subject: Re: preparations for 4.19.1
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
 <103dd682-cfb6-4f61-bced-f4e742813232@suse.com>
 <9d97a479-f5e4-4bd4-b47e-8503b3fdc806@suse.com>
In-Reply-To: <9d97a479-f5e4-4bd4-b47e-8503b3fdc806@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=

--------------rk002xTbf0fGyf75Jc86ELTd
Content-Type: multipart/mixed; boundary="------------asRBJhG6epZyPtiSDlM6KrF6"

--------------asRBJhG6epZyPtiSDlM6KrF6
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTQuMTEuMjQgMTM6MjYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMy4xMS4yMDI0
IDE2OjI5LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMTMuMTEuMjQgMTY6MjAsIEFu
ZHJldyBDb29wZXIgd3JvdGU6DQo+Pj4gTG9va2luZyBvdmVyIHRoZSBYZW5TZXJ2ZXIgcGF0
Y2hxdWV1ZToNCj4+DQo+PiAuLi4NCj4+DQo+Pj4gVGhlc2UgYXJlIGEgU0lHUElQRSBidWdm
aXggd2hpY2ggaGFwcGVuIHRvIGFsc28gaGF2ZSBhIHBlcmYNCj4+PiBpbXByb3ZlbWVudC7C
oCBJIGNhbnQgcmVtZW1iZXIgaWYgd2UgZGlzY3Vzc2VkIGJhY2twb3J0aW5nIHRoZW0gYmVm
b3JlLg0KPj4+IChKdWVyZ2VuL0FudGhvbnk/KQ0KPj4+DQo+Pj4gNDJkYjJkZWI1ZTc2OiB0
b29scy9saWJ4czogRml4IGxlbmd0aCBjaGVjayBpbiB4c190YWxrdigpDQo+Pj4gZTJhOTNi
ZWQ4YjllOiB0b29scy9saWJ4czogUmV3b3JrIHhzX3RhbGt2KCkgdG8gdGFrZSB4c2Rfc29j
a21zZyB3aXRoaW4NCj4+PiB0aGUgaW92ZWMNCj4+PiBmMDUwYzAzY2UyYWQ6IHRvb2xzL2xp
YnhzOiBSYXRpb25hbGlzZSB0aGUgZGVmaW5pdGlvbiBvZiBzdHJ1Y3QgeHNfaGFuZGxlDQo+
Pj4gMDQ2ZWZlNTI5ZTgyOiB0b29scy9saWJ4czogVHJhY2sgd2hldGhlciB3ZSdyZSB1c2lu
ZyBhIHNvY2tldCBvciBmaWxlDQo+Pj4gZWJhZWIwYzY0YTZkOiB0b29scy9saWJ4czogVXNl
IHdyaXRldigpL3NlbmRtc2coKSBpbnN0ZWFkIG9mIHdyaXRlKCkNCj4+PiBhMTdiNmRiOWIw
MDc6IHRvb2xzL2xpYnhzOiBTdG9wIHBsYXlpbmcgd2l0aCBTSUdQSVBFDQo+Pg0KPj4gSSdk
IHRha2UgdGhlc2UsIGFzIHBsYXlpbmcgd2l0aCBzaWduYWxzIGJlaGluZCB0aGUgYmFjayBv
ZiBhIGxpYnJhcnkgdXNlcg0KPj4gaXMgc29tZXRoaW5nIHdoaWNoIHNob3VsZCBiZSBmaXhl
ZC4NCj4gDQo+IE5vIHF1ZXN0aW9uIGFib3V0IHRoZSBmaXJzdCBhbmQgbGFzdCBvbmUuIEFy
ZSBhbGwgdGhlIGludGVybWVkaWF0ZSBvbmVzDQo+IG5lY2Vzc2FyeSwgdGhvdWdoPw0KDQpJ
IHRoaW5rIHRob3NlIGFyZSBuZWVkZWQgZm9yIHRoZSBsYXN0IG9uZSB0byBhcHBseS4NCg0K
DQpKdWVyZ2VuDQo=
--------------asRBJhG6epZyPtiSDlM6KrF6
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-----

--------------asRBJhG6epZyPtiSDlM6KrF6--

--------------rk002xTbf0fGyf75Jc86ELTd--

--------------Axw5fFAdAN0932N0SBg6uCwT
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/Ey8FAmc17VAFAwAAAAAACgkQsN6d1ii/Ey95
GAgAk4ebxsTRc6FDZJzXSffwkjSVukopvZj5MP5ad7M7GarOHy75+pQQOAkov+v9ZW04bxfjPs9J
vLXgKWgvdvNsV/mRoEmEZixYN8MeTlfqMtZMwjyUJsaH2zO2WuOakiBxwHOS11kXNNmTND4Z48Wk
Pst37zWCIW8gP2WgsCnFwXpgAAYeXbdso3Xvsko90SmUwROj6Ki/IPSdN4GDSgExn2J0R7lsMWKb
lJLJwBtdy6H4JIGGjF+buK2vcSvi0E8gHXohyEFU4hJU6q7/tkb6IrKWEw10xeEdHv9fXkEctCb4
plO8/8t7EwWtOqmlKiLXpVv3/nrVHcHDsnqAa4d+AA==
=zNBy
-----END PGP SIGNATURE-----

--------------Axw5fFAdAN0932N0SBg6uCwT--


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:46:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:46:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836405.1252292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZEq-0000mJ-1f; Thu, 14 Nov 2024 12:46:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836405.1252292; Thu, 14 Nov 2024 12:46: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 1tBZEp-0000mC-VR; Thu, 14 Nov 2024 12:46:19 +0000
Received: by outflank-mailman (input) for mailman id 836405;
 Thu, 14 Nov 2024 12:46: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBZEp-0000lC-3S
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:46:19 +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 6f631ca3-a286-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 13:46:15 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4315e62afe0so5622995e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04:46: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-432da29989asm22290475e9.42.2024.11.14.04.46.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 04:46: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: 6f631ca3-a286-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzYiLCJoZWxvIjoibWFpbC13bTEteDMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZmNjMxY2EzLWEyODYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTg4Mzc1LjE4NzUxMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731588374; x=1732193174; 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=Cb13/s7jsd3nTX890pFjBRBjg8rCCDRlSlqAPYqgeW8=;
        b=SESqtHYyWZ4kldinsUEmqD2INspgBO6w1CV1wNStPZLgLePLLuljGSTLldilVxnE6f
         0av1D0M6BSP/urvvAtFfO5o9WQ9E7M6KbsEQDhjVTVTlBp1fusSX0H2DuuDTEgEpctud
         8YikH+I8W0omGHk7qYQEGpLLBo6vbR4bOgKyzwVhv14NeWUB3tboVmCEwQrUsNBaN9x8
         D02JdrmBYUWY3guG5f4u/o2qFZTHJFKPvOomheyOqvDMZ5TeP0FkRG+9xCecfhKfj/ga
         rtvq9/X+bRZ+kY4S0uhWRcXpI4cva6xSjQQwKHQSUUUhcUFvpicPIIHw7CZz6amr0rJn
         7KTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731588374; x=1732193174;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Cb13/s7jsd3nTX890pFjBRBjg8rCCDRlSlqAPYqgeW8=;
        b=SKXfsxr9pvef56WgQBzQwHZt00Eoq87rLk0D2WanNVHR6jbTRd060aQ0u0C8osxq8K
         tcxnAbg3Xt0SyQAqWsEl6nn4ZOi1cZVwxFy1z4LoIk6llgD06m633BLH6wT3pqNUvAmJ
         fFB2n5735Nh/pzPt5yIibej7kKfOi7u/UOgH+NreQhO2aPo8bMvU4kwWXE3jbI0mOrVP
         L7jgwG7ziJHtQ9Jr+budbqFDhFYXZDLbrIcJWSGdPOCni12oiIsrWpgBUHGv2V5rx8OK
         yeVhQM1gHNDaJOZt6A8o0ge25YTF9LcWfKEfg1JdRHrr4lISu1+638DRzBQtP9uoDCEj
         kouw==
X-Forwarded-Encrypted: i=1; AJvYcCUdrYcnqVvMIsG32mD6Dzuze0wUvm6BS/meG0k81trTsDol3kxILLDftpeYzllA2U3m4hoxh/1V1yE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNFau5JGTe7zRL+3nti+CFEXJ/jsKQmPu3ZubOT4yQQe9c0bRV
	5XBlbwBiNO732ku27fjsmnkEBdRoRMWuAxzgmCXM9xaOj3bXhP53hInbw3hG8g==
X-Google-Smtp-Source: AGHT+IEal/M61rKdS/hnQOyF1gq+r7U8ifnpDJ45I7F2DR6ZLt/ZCkhgNhRmC7WB9yapZEhGETlWbQ==
X-Received: by 2002:a05:600c:3d14:b0:431:12a8:7f1a with SMTP id 5b1f17b1804b1-432b7507c50mr225311765e9.16.1731588374403;
        Thu, 14 Nov 2024 04:46:14 -0800 (PST)
Message-ID: <9482f40c-4913-4114-a951-6f92d95d4995@suse.com>
Date: Thu, 14 Nov 2024 13:46:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@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: <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2024 16:20, Andrew Cooper wrote:
> On 12/11/2024 1:00 pm, Jan Beulich wrote:
>> the release is due by the end of the month. Please point out backports you find
>> missing from the respective staging branch, but which you consider relevant.
> 
> Looking over the XenServer patchqueue:

First, overall - that's quite a few. Most not even having a Fixes: tag. Or
in one case having even two of them alongside saying "no functional change".
Plus it would be really nice if someone else could take care of tool stack
backports again.

In more detail:

> These are all bugfixes, some that came from customer bugs:
> 
> e42e4d8c3e2c: tools/misc: xen-hvmcrash: Inject #DF instead of
> overwriting RIP

I'm on the edge here, but since you're asking for it, I'll include it.

> ba709d514aac: x86/viridian: Clarify some viridian logging strings

Not really a backporting candidate imo.

> d81dd3130351: x86/shutdown: change default reboot method preference

I'll include that, despite the different perspective I'm taking.

> 0d69635d27cb: tools/ocaml: Remove '-cc $(CC)' from OCAMLOPTFLAGS
> 8ffcf184affb: tools/ocaml: Fix OCaml libs rules
> 126293eae648: tools/ocaml: Drop the OCAMLOPTFLAG_G invocation
> 1965e9a93074: tools/ocaml: Fix the version embedded in META files

Provided these apply as-is, I'll blindly take these.

> e58a2858d588: x86/boot: Preserve the value clobbered by the load-base
> calculation

Based on its Fixes: tags I probably should have included this one already.

> This is a diagnostic improvement, also from a customer bug:
> 
> 2f413e22fa5e: x86/msr: add log messages to MSR state load error paths

Again - not really a backporting candidate imo.

> These are a SIGPIPE bugfix which happen to also have a perf
> improvement.Â  I cant remember if we discussed backporting them before.Â 
> (Juergen/Anthony?)
> 
> 42db2deb5e76: tools/libxs: Fix length check in xs_talkv()
> e2a93bed8b9e: tools/libxs: Rework xs_talkv() to take xsd_sockmsg within
> the iovec
> f050c03ce2ad: tools/libxs: Rationalise the definition of struct xs_handle
> 046efe529e82: tools/libxs: Track whether we're using a socket or file
> ebaeb0c64a6d: tools/libxs: Use writev()/sendmsg() instead of write()
> a17b6db9b007: tools/libxs: Stop playing with SIGPIPE

See the earlier reply to both JÃ¼rgen and you.

> These are from a livepatching snafu:
> 
> 3a28da8f4daf: xen/livepatch: remove useless check for duplicated sections
> 8c81423038f1: xen/livepatch: drop load_addr Elf section field
> 86d09d16dd74: xen/livepatch: simplify and unify logic in prepare_payload()
> fa49f4be413c: xen/livepatch: do Xen build-id check earlier
> aa5a06d5d6ed: x86/alternatives: do not BUG during apply
> 
> where the buildid check is much too late.

I certainly agree with taking the last two. The first three though are all
"no functional change", which generally I'd prefer to omit unless they're
strictly prereqs, or diverging from master is deemed to be a severe issue.

> And from looking at staging:
> 
> fa2d8318033e: x86/cpu-policy: Extend the guest max policy max leaf/subleaves
> 
> This fixes a real issue on older AMD systems.

Will include it.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:50:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836418.1252313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZIV-0002UD-PW; Thu, 14 Nov 2024 12:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836418.1252313; Thu, 14 Nov 2024 12: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 1tBZIV-0002U6-MY; Thu, 14 Nov 2024 12:50:07 +0000
Received: by outflank-mailman (input) for mailman id 836418;
 Thu, 14 Nov 2024 12: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBZIU-0002Aa-RZ
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:50:06 +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 f7e7212d-a286-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 13:50:04 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4316a44d1bbso5307855e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04:50:04 -0800 (PST)
Received: from localhost.localdomain (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3821ae1685csm1416809f8f.83.2024.11.14.04.50.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 04: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: f7e7212d-a286-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY3ZTcyMTJkLWEyODYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTg4NjA0LjIyNDQxNywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731588601; x=1732193401; 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=y0Aj5W+j63+NuGcn0ZB3t9CEq3oH9AJf5/KiiQiC1a0=;
        b=RrB1vT7fbhH01hlcJ3A4CN5AfsCC6B8Nv+lxQ1Y5EC9OSL2jB5BemV+iEw95iVQ2WD
         s1XrGPhYUyZPyqoRlLXC7nMZZ65UxEy4E0J6Ux9/Po7o4xYUPgfbgbjna4xefggzxtu8
         XaV0DkFb5Uu4lkZH61zNpZ6b2DOSsL17LulpQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731588601; x=1732193401;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=y0Aj5W+j63+NuGcn0ZB3t9CEq3oH9AJf5/KiiQiC1a0=;
        b=vh6fFgWEQMUqAFUfJ8RS3hyEblpjfe3zYszuMctCnC24imXNJ3cBFomdCjOlgdDWid
         gs2uzvYItAngBZIgYNcBnoOFeCyzWAkxNwwo1/+EMPuxERzRe4KFyKcO20+ONyAvV2U8
         mGaFhH5L3JAWga+FfKOL26x7h72U9KEYQtIDjv6Muc1M6LjwUhoZQoqVSLIoRfR9QI1J
         FX5FwHUxkMG0fdgE4udVR4Z/aF8tk1xl2MUb9guy6UrEVVWpb4Ah/MOknsL68rSh9PqR
         wf/44R+d8au4eTcHJNMcNlWkzyxCQJwjztmSbXyJDmPRjg86Rme8k+iknNHh+vGQdWr7
         7mrQ==
X-Gm-Message-State: AOJu0Yy9pCOX8WGZDKZow2HtrNRmB2nklho7jgHzDuQw9YMkaXr8kfTJ
	32hB3SOXKCwB1xXKRiGTz3wNR99K12oxCN4ADVEX1s8L39CVj9hledauMli5sW7+m3dxQB+qRqr
	X9/I=
X-Google-Smtp-Source: AGHT+IFZBqsZYRBCdwtL6NGshW6oAswZeo2hdZ9/qUiRqDf0+E43eek1nE9y+vm8SVGhne25OJnxhQ==
X-Received: by 2002:a05:600c:4f8a:b0:431:5863:4240 with SMTP id 5b1f17b1804b1-432d4ad340bmr57400045e9.24.1731588601023;
        Thu, 14 Nov 2024 04:50:01 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 1/4] Use an include/boot directory to override headers for boot code
Date: Thu, 14 Nov 2024 12:49:47 +0000
Message-Id: <20241114124950.24808-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241114124950.24808-1-frediano.ziglio@cloud.com>
References: <20241114124950.24808-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Not all headers can be used by 32 bit boot code.
Allows to override some headers, we don't want to mess up with
main headers as most of the code is only 64 bit so the easy stuff should
be done for 64 bit declarations.
Boot headers should be 64 bit compatibles to avoid having multiple
declarations.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index d457876659..13d4583173 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -18,7 +18,7 @@ CFLAGS_x86_32 := $(subst -m64,-m32 -march=i686,$(XEN_TREEWIDE_CFLAGS))
 $(call cc-options-add,CFLAGS_x86_32,CC,$(EMBEDDED_EXTRA_CFLAGS))
 CFLAGS_x86_32 += -Werror -fno-builtin -g0 -msoft-float -mregparm=3
 CFLAGS_x86_32 += -nostdinc -include $(filter %/include/xen/config.h,$(XEN_CFLAGS))
-CFLAGS_x86_32 += $(filter -I% -O%,$(XEN_CFLAGS)) -D__XEN__
+CFLAGS_x86_32 += -I$(srctree)/arch/x86/include/boot $(filter -I% -O%,$(XEN_CFLAGS)) -D__XEN__
 
 # override for 32bit binaries
 $(obj32): CFLAGS_stack_boundary :=
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:50:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836417.1252303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZIU-0002AX-KJ; Thu, 14 Nov 2024 12:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836417.1252303; Thu, 14 Nov 2024 12: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 1tBZIU-0002AQ-FS; Thu, 14 Nov 2024 12:50:06 +0000
Received: by outflank-mailman (input) for mailman id 836417;
 Thu, 14 Nov 2024 12: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBZIT-0001tD-1A
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:50:05 +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 f613d5d9-a286-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 13:50:01 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-53b34ed38easo551920e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04:50:01 -0800 (PST)
Received: from localhost.localdomain (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3821ae1685csm1416809f8f.83.2024.11.14.04.49.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 04: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: f613d5d9-a286-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY2MTNkNWQ5LWEyODYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTg4NjAxLjA4MTAyLCJzZW5kZXIiOiJmcmVkaWFuby56aWdsaW9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731588600; x=1732193400; 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=4yrJsZaI8Gx3PHwfNrL2D8jf+fI1lhP6Sb43yRpqP2A=;
        b=OOKy8vZNLfS3LcPFyUvcQ8ohGFhdp+EHthzEccX8hdfj5WHsVzPT0Zx3iKsae1iMuE
         4JhOJvh+xidRa0xuonEACkYhG3CdWjUtbLav0kSoIZ4N/+Z698MUuVzLRCY2oRsBNdne
         326sITTIBlCeXInwnmKQUmnTXle4inIGZvOAY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731588600; x=1732193400;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=4yrJsZaI8Gx3PHwfNrL2D8jf+fI1lhP6Sb43yRpqP2A=;
        b=t1jGEm+hYwWfOivVinOof3UPAgOtyLuvzZFFAn1olJ954wgnjaAgzGoDVo3RUKhXni
         Rroza9hLt+jzXtJA8B9LKj5/Xtf+9YzkT8B/KKIzJ0Bqf+Z7YVNTtkQxP3FIFOrJvPly
         54xqMxxubfepSG1N50BWf48ysQ3qBPY3jtpAjLkMJ13RV4MIcpSTkhW1XEjfPNkELkhc
         uJKXWbYhIMeUDgoWXCeKz51GeiRpoBAwUNPJKgpnWeBvMQ+q3PGRyKr2GEOO3NTyQupD
         d2gOZzUaLiiVNVD17Gb/veTcyh7uJ0N+BtL+L3DT0uz48OzCtEHqvaK09gVdxem4Kbrn
         W4HQ==
X-Gm-Message-State: AOJu0YzG3AzHXUhdj9LNphp1d/dEPmVy+Quq4746NajUsbo5cou+kJh3
	hgD9LPbmOui1pd18bwPrdl0pfmTZm1TBdTj6Iz+3nnHxKeM2quRbWsHj+4jeXmfTUMybSUAak1Y
	emNY=
X-Google-Smtp-Source: AGHT+IFpBMYXPzhu+Vo3nkDVd7E2hesXTd+g/hTwK/pbzYrVf1s3QBmJQQY8D/xtn/PpPo6/X39zwA==
X-Received: by 2002:a05:6512:3a87:b0:52c:9383:4c16 with SMTP id 2adb3069b0e04-53d862bd8b4mr10370088e87.22.1731588600220;
        Thu, 14 Nov 2024 04:50:00 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 0/4] Move some boot code from assembly to C
Date: Thu, 14 Nov 2024 12:49:46 +0000
Message-Id: <20241114124950.24808-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As a continuation of this series start sorting out the issue of headers
not compatible with 32 bit.
Instead of having to change headers which are almost only used for 64 bit
allows to override headers or move reusable definitions to new shared
headers.
This results in less changes.

Frediano Ziglio (4):
  Use an include/boot directory to override headers for boot code
  x86/boot: Use header to allows inclusion of public xen.h header
  x86/boot: Move some settings to C
  x86/boot: Use external symbols from cmdline_parse_early

 xen/arch/x86/boot/Makefile                |  2 +-
 xen/arch/x86/boot/build32.lds.S           |  4 ++++
 xen/arch/x86/boot/cmdline.c               | 14 ++++++++++--
 xen/arch/x86/boot/head.S                  | 19 +--------------
 xen/arch/x86/boot/reloc.c                 | 28 ++++++++++++++++++-----
 xen/arch/x86/boot/trampoline.S            |  2 +-
 xen/arch/x86/include/asm/guest/pvh-boot.h |  1 +
 xen/arch/x86/include/asm/setup.h          |  2 ++
 xen/arch/x86/include/boot/public/xen.h    | 28 +++++++++++++++++++++++
 xen/arch/x86/include/boot/xen/cpumask.h   |  1 +
 xen/arch/x86/include/boot/xen/string.h    | 10 ++++++++
 11 files changed, 83 insertions(+), 28 deletions(-)
 create mode 100644 xen/arch/x86/include/boot/public/xen.h
 create mode 100644 xen/arch/x86/include/boot/xen/cpumask.h
 create mode 100644 xen/arch/x86/include/boot/xen/string.h

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:50:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836419.1252323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZIW-0002jP-WB; Thu, 14 Nov 2024 12:50:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836419.1252323; Thu, 14 Nov 2024 12:50: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 1tBZIW-0002jI-Td; Thu, 14 Nov 2024 12:50:08 +0000
Received: by outflank-mailman (input) for mailman id 836419;
 Thu, 14 Nov 2024 12: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBZIV-0002Aa-Gz
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:50:07 +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 f857c341-a286-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 13:50:04 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-432d9b8558aso4427795e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04:50:04 -0800 (PST)
Received: from localhost.localdomain (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3821ae1685csm1416809f8f.83.2024.11.14.04.50.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 04: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: f857c341-a286-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY4NTdjMzQxLWEyODYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTg4NjA0Ljk0MDM0OSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731588604; x=1732193404; 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=2manZp1AIdPBh7iI0RBUSq4id6SrxSe85LAkzhSm0W8=;
        b=PAY+pbIwGDlp9zrIjhP7DMuLmHLsbMb7wRmxUV96GugReJo79/r2AIJwPb06+6X5/Q
         aZlkxmFYWxUL3BxvCQX/LSStoeRhBOe2p1rdVJHzCPyxASlNvEn8Vh0PxtlVFG8fH3wy
         TcWYcPKm7rFmO5I9zwsxSDn9ZiSH9PoDPKafI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731588604; x=1732193404;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2manZp1AIdPBh7iI0RBUSq4id6SrxSe85LAkzhSm0W8=;
        b=ZlGqTIz4iH6XApw5/9bb0i5CmMtcdtWKOfL68icp/ryMc7kxkrZMRDmB7xSnfKJt3r
         025RpYFfq5vyCESGKkH/XLqQapRnrqAZeHeiNyr/75l2K9sZaeIKndZ7S0D7ZUTP0ICU
         b2IQMNaZEMuvA+rxX3zegw4Ti+c6l37Arix7owfmDcVWqiYLtcUPsxka2PqUOrX0vZ+e
         QUla5HrUAKTLZQ+Z5a0VqVW4yKId2zOTiUDB63Hvej9OS3yItKa7fsP8C2kM/8MP3+V9
         d/ynbmg88Z7Aew7JbUGGJrons5LgNf6zi+a6hGJx/NJ1K/Ke50l3p7jyXyjyfJftf8Lf
         rsbg==
X-Gm-Message-State: AOJu0YzfvHkOh2bdEs8EzWFSAGli6r/9UVVjQg+E/ZW8u9YL8yl/dW/c
	3i8Ck0zkyZWBO/WkAx/hR/HTxhtt9j87p5R4hkF69ads7dEiyM+rZIy7UG3PTEtwSII91DcT5yu
	NAPY=
X-Google-Smtp-Source: AGHT+IHLGbOvOAaIXdjY4KfHj/39O0tKCjcFUmS9HRx7rBg1TvHHiskK2fLnljDucY2pR3fwLCE3Fw==
X-Received: by 2002:a05:600c:4e47:b0:431:57cf:f13d with SMTP id 5b1f17b1804b1-432d973e2e1mr31221715e9.3.1731588604127;
        Thu, 14 Nov 2024 04:50:04 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 2/4] x86/boot: Use header to allows inclusion of public xen.h header
Date: Thu, 14 Nov 2024 12:49:48 +0000
Message-Id: <20241114124950.24808-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241114124950.24808-1-frediano.ziglio@cloud.com>
References: <20241114124950.24808-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This allows to include other headers and avoid duplicated declarations.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/include/boot/public/xen.h | 28 ++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 xen/arch/x86/include/boot/public/xen.h

diff --git a/xen/arch/x86/include/boot/public/xen.h b/xen/arch/x86/include/boot/public/xen.h
new file mode 100644
index 0000000000..399b86b5e5
--- /dev/null
+++ b/xen/arch/x86/include/boot/public/xen.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+/* This header allows the inclusion of public xen.h */
+
+#ifndef BOOT__PUBLIC__XEN_H
+#define BOOT__PUBLIC__XEN_H
+
+#if !defined(__XEN__) || defined(__XEN_TOOLS__) || __XEN__ != 1
+#error Unexpected defines
+#endif
+
+#include <xen/types.h>
+
+#ifdef __i386__
+
+# define __XEN_TOOLS__ 1
+# undef __XEN__
+# include <public/arch-x86/xen.h>
+# define __XEN__ 1
+# undef __XEN_TOOLS__
+
+#else
+
+# include <public/arch-x86/xen.h>
+
+#endif
+
+#endif /* BOOT__PUBLIC__XEN_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:50:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:50:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836420.1252333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZIZ-00030w-8E; Thu, 14 Nov 2024 12:50:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836420.1252333; Thu, 14 Nov 2024 12:50: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 1tBZIZ-00030n-4b; Thu, 14 Nov 2024 12:50:11 +0000
Received: by outflank-mailman (input) for mailman id 836420;
 Thu, 14 Nov 2024 12:50: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBZIX-0001tD-01
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:50:09 +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 f8ec2a90-a286-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 13:50:05 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43193678216so5727155e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04:50:05 -0800 (PST)
Received: from localhost.localdomain (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3821ae1685csm1416809f8f.83.2024.11.14.04.50.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 04:50: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: f8ec2a90-a286-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY4ZWMyYTkwLWEyODYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTg4NjA1Ljk0NjE1OSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731588605; x=1732193405; 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=rLYetKdXRISWvqivl/6DtEP61NuYrlAS1Q0ZpWaKKIQ=;
        b=Ssgn7d9UqR1xEJJh/b3ncDlU3qIim6TdFrvCWC6UuZALmLub3YINTh7zpTJBYyMFlw
         tzdy4828xzikW2bkJLPu3VauvyhVP59eS3AX7dkmBWNYfItzKKAjFFYEFMvuLESUMHtc
         TwkraGvQpUBKAIPq5d0nq8PTLFWU9JIGYLE44=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731588605; x=1732193405;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rLYetKdXRISWvqivl/6DtEP61NuYrlAS1Q0ZpWaKKIQ=;
        b=Hsx5pWuPZuHJ8ySOIXmXxCYEE/3BQ9e7xW1JEfoqhLKD5LCibgJNqOhCGiNitdjfhi
         aRkWPJiSq85mq1LN8u5dD6kAfd6oYgrE0hsJMFR8ufE87X5PAbMST1xaOzwswS5hO55J
         Tmh0MFHLoGxwMZv2s6nGYtnN30f0UOoNiAu3rgM38NFuq30JC4zFpHW24u8sCzWVZCbq
         LBs2Sq0vZ42WnOqAsbz9vDOxy9RXOgcdLL8riFRhi5XF1B2HjUv0OOIvpwa7Uc69eKzO
         kJnGYrpb8ItusPlUgzci5CXq1G03AovWLHPIEJC3Fe19UpCQki2RMbmQa3VXoOqwILCL
         EtcQ==
X-Gm-Message-State: AOJu0Yx2sH7hF/iESqORPakNp43N0+48xwlvtol524zgB6hVr4/tQ8hL
	YRE0pOmbHohD2JeRx4Ngbv/pU++R6NDo1efDJ4Ui3geaBP3h42aq8bi0Sd0YNCf6xBbTPoY8Q0U
	HVwU=
X-Google-Smtp-Source: AGHT+IEE2eQuQ0ylILh+xi7FBs+sI5MZ06cbiMMpngQuOUiHGfLx6c4+jyT/W6NLqTTOGlE7g9i65w==
X-Received: by 2002:a05:600c:35d3:b0:42c:b1ee:4b04 with SMTP id 5b1f17b1804b1-432b751c264mr188593465e9.28.1731588604848;
        Thu, 14 Nov 2024 04:50:04 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 3/4] x86/boot: Move some settings to C
Date: Thu, 14 Nov 2024 12:49:49 +0000
Message-Id: <20241114124950.24808-4-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241114124950.24808-1-frediano.ziglio@cloud.com>
References: <20241114124950.24808-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Initialise multiboot_ptr and pvh_start_info_pa from C code.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S           |  3 +++
 xen/arch/x86/boot/head.S                  | 10 --------
 xen/arch/x86/boot/reloc.c                 | 28 ++++++++++++++++++-----
 xen/arch/x86/include/asm/guest/pvh-boot.h |  1 +
 4 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index 1e59732edd..1726c17c88 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -51,6 +51,9 @@ SECTIONS
         DECLARE_IMPORT(__trampoline_seg_stop);
         DECLARE_IMPORT(trampoline_phys);
         DECLARE_IMPORT(boot_vid_info);
+        DECLARE_IMPORT(multiboot_ptr);
+        DECLARE_IMPORT(pvh_boot);
+        DECLARE_IMPORT(pvh_start_info_pa);
         . = . + GAP;
         *(.text)
         *(.text.*)
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index dcda91cfda..f86910294f 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -515,16 +515,6 @@ trampoline_setup:
         /*      reloc(magic/eax, info/edx) using fastcall. */
         call    reloc
 
-#ifdef CONFIG_PVH_GUEST
-        cmpb    $0, sym_esi(pvh_boot)
-        je      1f
-        mov     %eax, sym_esi(pvh_start_info_pa)
-        jmp     2f
-#endif
-1:
-        mov     %eax, sym_esi(multiboot_ptr)
-2:
-
         /*
          * Now trampoline_phys points to the following structure (lowest address
          * is at the bottom):
diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index e50e161b27..a03ef71a4c 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -17,13 +17,15 @@
 #include <xen/types.h>
 
 #include <xen/kconfig.h>
-#include <xen/multiboot.h>
 #include <xen/multiboot2.h>
 #include <xen/page-size.h>
+#include <xen/bug.h>
 
 #include <asm/trampoline.h>
+#include <asm/setup.h>
 
 #include <public/arch-x86/hvm/start_info.h>
+#include <asm/guest/pvh-boot.h>
 
 #ifdef CONFIG_VIDEO
 # include "video.h"
@@ -347,28 +349,42 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, memctx *ctx)
 }
 
 /* SAF-1-safe */
-void *reloc(uint32_t magic, uint32_t in)
+void reloc(uint32_t magic, uint32_t in)
 {
     /* Get bottom-most low-memory stack address. */
     memctx ctx = { trampoline_phys + TRAMPOLINE_SPACE };
 
+    void *res;
+
     switch ( magic )
     {
     case MULTIBOOT_BOOTLOADER_MAGIC:
-        return mbi_reloc(in, &ctx);
+        res = mbi_reloc(in, &ctx);
+        break;
 
     case MULTIBOOT2_BOOTLOADER_MAGIC:
-        return mbi2_reloc(in, &ctx);
+        res = mbi2_reloc(in, &ctx);
+        break;
 
     case XEN_HVM_START_MAGIC_VALUE:
         if ( IS_ENABLED(CONFIG_PVH_GUEST) )
-            return pvh_info_reloc(in, &ctx);
+        {
+            res = pvh_info_reloc(in, &ctx);
+            break;
+        }
         /* Fallthrough */
 
     default:
         /* Nothing we can do */
-        return NULL;
+        res = NULL;
     }
+
+#ifdef CONFIG_PVH_GUEST
+    if ( pvh_boot )
+        pvh_start_info_pa = (unsigned long)res;
+#endif
+
+    multiboot_ptr = (unsigned long)res;
 }
 
 /*
diff --git a/xen/arch/x86/include/asm/guest/pvh-boot.h b/xen/arch/x86/include/asm/guest/pvh-boot.h
index 247ba6899e..b5ad2b11a4 100644
--- a/xen/arch/x86/include/asm/guest/pvh-boot.h
+++ b/xen/arch/x86/include/asm/guest/pvh-boot.h
@@ -13,6 +13,7 @@
 #ifdef CONFIG_PVH_GUEST
 
 extern bool pvh_boot;
+extern uint32_t pvh_start_info_pa;
 
 void pvh_init(multiboot_info_t **mbi, module_t **mod);
 void pvh_print_info(void);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 12:50:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 12:50:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836421.1252339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZIZ-00039b-P9; Thu, 14 Nov 2024 12:50:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836421.1252339; Thu, 14 Nov 2024 12:50: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 1tBZIZ-00036y-KY; Thu, 14 Nov 2024 12:50:11 +0000
Received: by outflank-mailman (input) for mailman id 836421;
 Thu, 14 Nov 2024 12:50: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBZIY-0002Aa-RW
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 12:50:10 +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 f96736f3-a286-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 13:50:06 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3821c81f165so390514f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 04:50:06 -0800 (PST)
Received: from localhost.localdomain (99.149.115.87.dyn.plus.net.
 [87.115.149.99]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3821ae1685csm1416809f8f.83.2024.11.14.04.50.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 04: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: f96736f3-a286-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY5NjczNmYzLWEyODYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTg4NjA2LjgzNjIyNSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731588606; x=1732193406; 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=HpeDYZanm22C28MNfmY1IgLVgt+E9w0szXnSSi/YSPs=;
        b=IjVGysZ03izP5QUc7ibPZ1xDttsFXGbL4+qWrnLJv6FOUi89nYSPBc/V0oxsYU7epn
         ZBrPdYsmt8yGR4DSsUJeXJcqOIBNH5Qe5HpvA/WPJgiYmDkbz++bINCe6zS06oPOASk+
         BcbywZU6gWAASevuBDLyrYs5+O9Hfoy6GTTiU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731588606; x=1732193406;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HpeDYZanm22C28MNfmY1IgLVgt+E9w0szXnSSi/YSPs=;
        b=MGmDqpJXRpSdoB5MBdY/wDvez51qvdC5/OPOYh2MuseA39tcISoB0ybHIwH/KiEA6f
         QY4i5IPzrjDrR4bYit955XoZP1JSN47cpORk9PWWiturZXAh6AakTnjWDsqFgV3W+Fey
         4jlAxciHsFfO+NYvTc3B/Ou4TIqW+i3RWnVWHZuEj6cgunt1Y+LNc0hwSqWBTv04/EP1
         cmZKbD63cpNHbhYXkFZkojPpbKYxrf+Fw0ZAb1p6kLborBp0+ELPOp0wW2brQwtkP2zs
         leNuRKHcK2Ibr4kfrS1l2tl93IjxvS/BTGFEhCV5FB4nJDks9OnWRvie8hNlWtkP0MUH
         HbHQ==
X-Gm-Message-State: AOJu0YxjAmubRPwHZBKHUoHxud5c1PSXoto/7TDe8ctrU52wT9JLujTp
	IXE9wNRHomHUoxJ5rNjGKjtyY309UPToRg9ZWltHMp1ntwFx8JCx+62cbfPFotLjdBZ2zXsF4FD
	l6nc=
X-Google-Smtp-Source: AGHT+IEO6TDY+IHrzXffukz7o50BXQ7iLKQ4LBnhl/8VwjJ3U/BMEfKgmOERURTyEowf+asOk80+FA==
X-Received: by 2002:a05:6000:1ac5:b0:37c:cfdc:19ba with SMTP id ffacd0b85a97d-3821851d1femr1885630f8f.28.1731588605856;
        Thu, 14 Nov 2024 04:50:05 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 4/4] x86/boot: Use external symbols from cmdline_parse_early
Date: Thu, 14 Nov 2024 12:49:50 +0000
Message-Id: <20241114124950.24808-5-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241114124950.24808-1-frediano.ziglio@cloud.com>
References: <20241114124950.24808-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move some assembly code to C.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S         |  1 +
 xen/arch/x86/boot/cmdline.c             | 14 ++++++++++++--
 xen/arch/x86/boot/head.S                |  9 +--------
 xen/arch/x86/boot/trampoline.S          |  2 +-
 xen/arch/x86/include/asm/setup.h        |  2 ++
 xen/arch/x86/include/boot/xen/cpumask.h |  1 +
 xen/arch/x86/include/boot/xen/string.h  | 10 ++++++++++
 7 files changed, 28 insertions(+), 11 deletions(-)
 create mode 100644 xen/arch/x86/include/boot/xen/cpumask.h
 create mode 100644 xen/arch/x86/include/boot/xen/string.h

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index 1726c17c88..652f951e52 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -54,6 +54,7 @@ SECTIONS
         DECLARE_IMPORT(multiboot_ptr);
         DECLARE_IMPORT(pvh_boot);
         DECLARE_IMPORT(pvh_start_info_pa);
+        DECLARE_IMPORT(early_boot_opts);
         . = . + GAP;
         *(.text)
         *(.text.*)
diff --git a/xen/arch/x86/boot/cmdline.c b/xen/arch/x86/boot/cmdline.c
index 196c580e91..7a8a3ed97f 100644
--- a/xen/arch/x86/boot/cmdline.c
+++ b/xen/arch/x86/boot/cmdline.c
@@ -22,6 +22,9 @@
 #include <xen/kconfig.h>
 #include <xen/macros.h>
 #include <xen/types.h>
+#include <xen/multiboot.h>
+
+#include <asm/setup.h>
 
 #include "video.h"
 
@@ -39,6 +42,8 @@ typedef struct __packed {
 #endif
 } early_boot_opts_t;
 
+extern early_boot_opts_t early_boot_opts;
+
 /* Avoid pulling in all of ctypes.h for this. */
 #define tolower(c)	((c) | 0x20)
 
@@ -335,10 +340,15 @@ static void vga_parse(const char *cmdline, early_boot_opts_t *ebo)
 #endif
 
 /* SAF-1-safe */
-void cmdline_parse_early(const char *cmdline, early_boot_opts_t *ebo)
+void cmdline_parse_early(void)
 {
-    if ( !cmdline )
+    early_boot_opts_t *ebo = &early_boot_opts;
+    struct multiboot_info *mbi = (void *)multiboot_ptr;
+    const char *cmdline;
+
+    if ( !(mbi->flags & MBI_CMDLINE) || !mbi->cmdline )
         return;
+    cmdline = (void *)mbi->cmdline;
 
     ebo->skip_realmode = skip_realmode(cmdline);
     ebo->opt_edd = edd_parse(cmdline);
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index f86910294f..b79d4884df 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -690,14 +690,7 @@ trampoline_setup:
         cmpb    $0, sym_esi(efi_platform)
         jnz     1f
 
-        /* Bail if there is no command line to parse. */
-        mov     sym_esi(multiboot_ptr), %ebx
-        testl   $MBI_CMDLINE,MB_flags(%ebx)
-        jz      1f
-
-        lea     sym_esi(early_boot_opts), %edx
-        mov     MB_cmdline(%ebx), %eax
-        /*      cmdline_parse_early(cmdline/eax, opts/edx) using fastcall. */
+        /*      cmdline_parse_early using fastcall. */
         call    cmdline_parse_early
 
 1:
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index b8ab0ffdcb..f2fa7ca07d 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -258,7 +258,7 @@ trampoline_boot_cpu_entry:
 
         .align  2
 /* Keep in sync with cmdline.c:early_boot_opts_t type! */
-early_boot_opts:
+GLOBAL(early_boot_opts)
 skip_realmode:
         .byte   0
 opt_edd:
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 25c15ef914..a5ca007722 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -16,6 +16,8 @@ extern uint64_t boot_tsc_stamp;
 extern void *stack_start;
 extern unsigned int multiboot_ptr;
 
+struct domain;
+
 void early_cpu_init(bool verbose);
 void early_time_init(void);
 
diff --git a/xen/arch/x86/include/boot/xen/cpumask.h b/xen/arch/x86/include/boot/xen/cpumask.h
new file mode 100644
index 0000000000..046b862b78
--- /dev/null
+++ b/xen/arch/x86/include/boot/xen/cpumask.h
@@ -0,0 +1 @@
+/* Empty. */
diff --git a/xen/arch/x86/include/boot/xen/string.h b/xen/arch/x86/include/boot/xen/string.h
new file mode 100644
index 0000000000..6556d3b4af
--- /dev/null
+++ b/xen/arch/x86/include/boot/xen/string.h
@@ -0,0 +1,10 @@
+#ifndef BOOT__XEN__STRING_H
+#define BOOT__XEN__STRING_H
+
+#include <xen/types.h>	/* for size_t */
+
+void *memset(void *s, int c, size_t n);
+void *memcpy(void *dest, const void *src, size_t n);
+void *memmove(void *dest, const void *src, size_t n);
+
+#endif /* BOOT__XEN__STRING_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 13:10:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 13:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836470.1252378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZbl-0007kT-NF; Thu, 14 Nov 2024 13:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836470.1252378; Thu, 14 Nov 2024 13: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 1tBZbl-0007jt-I6; Thu, 14 Nov 2024 13:10:01 +0000
Received: by outflank-mailman (input) for mailman id 836470;
 Thu, 14 Nov 2024 13:09:59 +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 1tBZbj-0007g1-Hl
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 13:09:59 +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 1tBZbh-004r5a-07;
 Thu, 14 Nov 2024 13:09:57 +0000
Received: from [15.248.3.93] (helo=[10.24.67.25])
 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 1tBZbh-004KLu-0E;
 Thu, 14 Nov 2024 13:09: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=CX7VjtXyC2w/+pGJmhfRYtRlN0a7EYxqtx2ifFC/mnI=; b=wiLg4l0s9U8HZiTu4L9TzcSC0T
	VxAGQ3EyzC7zG7MYTJ3gkNOHG0NqWmydeqeurNUURPrWUoEoH6ASYmK3nJeBn0I2NvHnB9gYuRxug
	zBkuOTmtWmn4/wwcFSNa7QYD+pGhnjH/5PuCuSCLDQjZj5DavdFAcBhXzeWnuQ8K8/to=;
Message-ID: <7eef8e7a-e2a1-41bd-8805-b00a2bc0ae1a@xen.org>
Date: Thu, 14 Nov 2024 13:09:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
 <92564de9-24f7-4259-bc45-a95680101693@xen.org>
 <e023a861-a1d6-415e-9be8-688664bf5680@amd.com>
 <8e467912-a71a-4c10-91dc-46706ed7aa1e@xen.org>
 <7ba02037-05ec-491a-92c6-de7195d298ed@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7ba02037-05ec-491a-92c6-de7195d298ed@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 14/11/2024 12:22, Michal Orzel wrote:
> 
> 
> On 14/11/2024 13:04, Julien Grall wrote:
>>
>>
>> Hi Michal,
>>
>> On 14/11/2024 11:48, Michal Orzel wrote:
>>>
>>>
>>> On 14/11/2024 11:31, Julien Grall wrote:
>>>> Looking at the code, I think /memreserve/ and /reserved-memory are not
>>>> mapped in Xen and everything in /reserved-memory is mapped to dom0.
>>> Why do we forward /reserved-memory to dom0 fdt but /memreserve/ not?
>>
>> I was wondering the same. The main issue I can think of with
>> /memreserve/ is some of the regions will likely be for Xen own usage. So
> Can you give example of regions defined as reserved for Xen usage (other than static-mem)?

The spin table to bring-up CPUs.

> 
>> we would need to have a way to exclude them from dom0.
>>
>>   >  From the discussion> we're having it seems like we should treat them
>> equally. Also, looking at Luca patch,
>>> we seem to special case /memreserve/ and only allow for overlap /memresrve/ with boot modules
>>> and not /reserved-memory/ with boot modules. If we are going to claim that all the boot modules
>>> can be marked as reserved by the bootloader, then I think we should treat them equally providing
>>> the same experience to dom0.
>>
>> In my mind, /memreserved/ and /reserved-memory/ are different. The
>> former doesn't say what the region is for, but the latter will indicate it.
> In the context of this patch, I don't agree. We're discussing overlap, and if a region A
> from /memreserve/ overlaps fully with a module A, we know what is the purpose of it.
 > Today it's initrd, but as you say we cannot rule out other modules as 
well.

To give a concrete example, the /reserved-region/ can be used to reserve 
space for the VGA buffer. It would be odd that someone would put the 
boot module in the middle of the VGA buffer... If Xen ends up to use the 
VGA buffer (not the case today), then it would be a problem. Xen would 
need to be reworked to move all boot modules outside of the memory 
because it can access the VGA (or any other reserved regions).

The problem is slightly different for /memreserve/ because we don't 
exactly know what the regions are for until we parse the rest of the DT. 
Yes technically, a user could put the initrd in the wrong place. So the 
problem is the same. But this is a relexation I am more willing to 
accept over /reserved-region/ right now.

>> So I am not 100% sure how the bootmodule could end up in
>> /reserved-memory/ because they are described as part of the multiboot
>> modules. Do you have a scenario?
> I don't same as I don't have scenario for /memreserve/ overlapping with sth else than initrd.
> All of these comes from my validation of u-boot, grub, barebox code. I have a feeling that due to
> U-Boot trick that is not present in any other *known* bootloader, we are trying to over-engineer the problem :)
> But as Stefano and you wrote, we should follow the spec and for me we should therefore treat them equally.

See above why I don't think we should treat them equally today. We might 
be able in the future if we can categorize all the regions in /memreserve/.

[...]

>>> Last thing I wanted to ask (for my clarity) is that if bootloader loads initrd at region A and marks
>>> it as reserved (either in /memreserve/ or /reserved-memory/), and later on Xen copies initrd from region
>>> A to B, shouldn't the reserved memory region be updated to cover new region for initrd?
>>
>> If we mark the region has a reserved, then we are telling the OS it
>> can't use the region. But I am not sure why it would be needed as Xen
> Well, in the context of initrd, kernel uses it even though it is reserved. This is because
> of the second part of the spec where other bindings come into play.
> 
>> doesn't care how the regions is going to be used by the domain. From a
>> domain side, do you see any reason why we would want to mark again the
>> region as reserved?
> TBH I don't same as I still don't know why U-Boot does that trick. It comes from a very
> old code and my initial understanding is that it is done purely for U-boot bookkeeping.

/memreserve/ (and now) /reserved-regions/ are an easy way to find the 
regions that should be excluded from the RAM. Without that, you will 
need to have special case (such as for initrd, and the various xen boot 
moudles). I suspect that Linux have a special case and hence why it 
hasn't been a problem that Xen doesn't reserve the region.

Also, AFAIU, the Image protocol doesn't seem require the region to be 
reserved. It just says:

"""
If an initrd/initramfs is passed to the kernel at boot, it must reside
entirely within a 1 GB aligned physical memory window of up to 32 GB in
size that fully covers the kernel Image as well.

Any memory described to the kernel (even that below the start of the
image) which is not marked as reserved from the kernel (e.g., with a
memreserve region in the device tree) will be considered as available to
the kernel.
"""

Regarding the idea to mark the initird as reserved. My main concern is 
you now double the amount of memory that will be unusuable (AFAIU 
neither Xen nor Linux will be able to use the memory for allocations). I 
feel this is quite a steep price. A potential solution would to be map 
the initrd region rather than copying. Not sure how much code it will 
result, so someone will need to evaluate whether it is worth it.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 13:28:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 13:28:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836484.1252386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBZtK-0002sO-5h; Thu, 14 Nov 2024 13:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836484.1252386; Thu, 14 Nov 2024 13: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 1tBZtK-0002sH-2m; Thu, 14 Nov 2024 13:28:10 +0000
Received: by outflank-mailman (input) for mailman id 836484;
 Thu, 14 Nov 2024 13:28: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBZtI-0002sB-Tw
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 13:28:08 +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 46383166-a28c-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 14:28:03 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so815192a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 05:28:03 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79b9f84dsm599144a12.31.2024.11.14.05.28.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 05:28: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: 46383166-a28c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ2MzgzMTY2LWEyOGMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTkwODgzLjA4MDM0LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731590882; x=1732195682; 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=3KuiN+0RuE/LoltSeOB5wQw6VNCyO0/pFR8I/yeq4SA=;
        b=CELHLvMtfffhYD2dINejJffj2fRLEAgWxcXdBf9mhSYUXZsNWO1j41FGZxgPbEcQMs
         Pp/MiGqnBMEeeChmJ4QIsRODARmx7cwyG50Asay8MSB+2FGwQe1h5JbK0a0UutcO9RKB
         oqY7fRfEPDtEXge0yNPb8zrHXtjGSc1pajjbg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731590882; x=1732195682;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3KuiN+0RuE/LoltSeOB5wQw6VNCyO0/pFR8I/yeq4SA=;
        b=pM5ve5A5f297rUyqErugrUtLd54SbQUr8Ru3zlbROr3CPgUdABpzVqhYYy5dKxPg0y
         ANGg1FclYTJFdF4SRgh8QZMPnu00kf2XRLj7e50i5qFWlwg4o/c0MKcVkveMdYN7nOR8
         5HsmNmFk+pj7sEXZZwjaJS2OcbS/8VrraDyQSdqKPN8+M2aShCI9ozxVynf9ph1RZ7Gw
         3v9r5IoPaluA5ljMCUE/amD9HsIYdgMvEhocBaZ++WZ0qjoAh8SfaRSdWMj2WMklxgUP
         HOd805Wbqx48xAP/E/pVo/A3hbzOSADVNoUJhUtYCo6BPkJ/r1p9ZD7rD20n8/uhEGux
         +vPg==
X-Forwarded-Encrypted: i=1; AJvYcCXcmk5iRibCaSLN40anm69T/I2P5AQdFCFSS3txTVkglMFu3uQrJhfLUO5jxY9cU2JLGwrTOx4UHEU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwybRpWvf3CUbV2aI/Ccu4uOAQQgYB4aMZmDCVt3Lwc8K+YsIHj
	tFQ1GvsnsffnK4CDLE63HfFc/U45CEXx85Prehr3y0N1wNSITJSxcsJts8bg76s=
X-Google-Smtp-Source: AGHT+IHyGFp5FqBsC07J49RS93ns2lqSOD5YYJfOaB2/dmtu+sLeluU5pQxYizU9XDbMBnPmSByIzQ==
X-Received: by 2002:a05:6402:2712:b0:5cf:88f6:d91c with SMTP id 4fb4d7f45d1cf-5cf88f6db97mr57600a12.33.1731590882393;
        Thu, 14 Nov 2024 05:28:02 -0800 (PST)
Message-ID: <134de5b8-1070-4a85-badb-e44097a36e60@citrix.com>
Date: Thu, 14 Nov 2024 13:27:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
 <103dd682-cfb6-4f61-bced-f4e742813232@suse.com>
 <9d97a479-f5e4-4bd4-b47e-8503b3fdc806@suse.com>
 <639c17b4-0fe8-435d-9ea2-220ec9176e95@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <639c17b4-0fe8-435d-9ea2-220ec9176e95@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/11/2024 12:30 pm, JÃ¼rgen GroÃŸ wrote:
> On 14.11.24 13:26, Jan Beulich wrote:
>> On 13.11.2024 16:29, JÃ¼rgen GroÃŸ wrote:
>>> On 13.11.24 16:20, Andrew Cooper wrote:
>>>> Looking over the XenServer patchqueue:
>>>
>>> ...
>>>
>>>> These are a SIGPIPE bugfix which happen to also have a perf
>>>> improvement.Â  I cant remember if we discussed backporting them before.
>>>> (Juergen/Anthony?)
>>>>
>>>> 42db2deb5e76: tools/libxs: Fix length check in xs_talkv()
>>>> e2a93bed8b9e: tools/libxs: Rework xs_talkv() to take xsd_sockmsg
>>>> within
>>>> the iovec
>>>> f050c03ce2ad: tools/libxs: Rationalise the definition of struct
>>>> xs_handle
>>>> 046efe529e82: tools/libxs: Track whether we're using a socket or file
>>>> ebaeb0c64a6d: tools/libxs: Use writev()/sendmsg() instead of write()
>>>> a17b6db9b007: tools/libxs: Stop playing with SIGPIPE
>>>
>>> I'd take these, as playing with signals behind the back of a library
>>> user
>>> is something which should be fixed.
>>
>> No question about the first and last one. Are all the intermediate ones
>> necessary, though?
>
> I think those are needed for the last one to apply.

Yes they are needed.

To avoid playing with SIGPIPE, you need to use sendmsg(, MSG_NOSIGNAL)
to transmit the data, which needs to distinguish sockets and files
(can't sendmsg() to a file, and must not write() to a socket (no ability
to pass flags)), which in turn involves having xsd_sockmsg in iov[0].

The only one that isn't strictly necessary is "Rationalise the
definition of struct xs_handle" but you'd need to edit "Track whether
we're using a socket or file" to add the field to both struct
xs_handles, but I included it after breaking the build by not realising
there was a second definition.Â  I suggest keeping the patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 14:03:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 14:03:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836495.1252396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBaRB-0008Un-L2; Thu, 14 Nov 2024 14:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836495.1252396; Thu, 14 Nov 2024 14:03: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 1tBaRB-0008Ug-ID; Thu, 14 Nov 2024 14:03:09 +0000
Received: by outflank-mailman (input) for mailman id 836495;
 Thu, 14 Nov 2024 14:03: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=Deeb=SJ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBaRA-0008Ua-UY
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 14:03:09 +0000
Received: from mail-oo1-xc2e.google.com (mail-oo1-xc2e.google.com
 [2607:f8b0:4864:20::c2e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a7c44c6-a291-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 15:03:04 +0100 (CET)
Received: by mail-oo1-xc2e.google.com with SMTP id
 006d021491bc7-5ee645cf74fso300011eaf.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 06:03: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: 2a7c44c6-a291-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMmUiLCJoZWxvIjoibWFpbC1vbzEteGMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJhN2M0NGM2LWEyOTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTkyOTg0LjY4NjM2Nywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731592983; x=1732197783; 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=u52eQULRCKeN4kT/0W/hZOD1tJzfVFW14FTOZD1sjbg=;
        b=U2Pro9+TaTq14kVXaF8OH6ZPgQZp6OOVW4QkqkxY1kIsIAki7ccquypfwc8J9AwRMp
         QrLXH8aEH36m1yk0Cu4GUiHPG0gHBxXhwjB1N4O0AX/wuRFJUM5/1S/GNH1ChikED3t+
         r9Y+1U8iunJ7fdK6nSrl4XZTLWRMLxe1jMM8w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731592983; x=1732197783;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=u52eQULRCKeN4kT/0W/hZOD1tJzfVFW14FTOZD1sjbg=;
        b=fFMQq8iKhCWVmmhiahAybe+dGUmMqqpjQe8qd4KYa/ajUMJKsV+nt/YVQ78/+z1SJC
         twi/DdYXMOxHTqPgsm7mIgi0eR4wp1jVF2nb1dHy9W9EiegGqfvA4lNb5karuHX9FCTU
         2DXTSXTdSHCNArQ4ezAROdXiT2V+t2p4gkQTOBWBZrXEhVsirob5JQgOj7oM6hq4QKqf
         rX2cXKl97tM7zOFd2FnpOqMLgSwNsVx3bh4GsWiEOywJ+l+btPj9JsZIgHRDR43DFddO
         FuPixuYxqb98pqAuGx0GqaoPu+J/1+iyvS7ks7DlonMA/Mv+5Dsdta0vgMqq7rvrYsJF
         32kg==
X-Forwarded-Encrypted: i=1; AJvYcCWg4qbGgRhxHQ0efjHVaaXax/wSmnWr9C82VfwcHBOuQTSSsYM/VzdkaYjjUNFJ9Iga9ZCOajvCKFI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/V6xYWVyhEvFYkkYXaTZrPTMXpXsYBTdGCNoVCCpBpSDMLCX3
	jvvMrMwm/A8nFupiQZk7NpWYcKL/DPbIlFCgTdL6vIct2ShKmyIdTiYlMOB0Mui8qrzJvVKYGqF
	/vdJKDxAtiVLNZZfZ+bRaeE9/culH1ilZTQPYdQ==
X-Google-Smtp-Source: AGHT+IH5l6OvRefJKpK432Np93xzXvoBHfI+hdoSIgd+zwfpTL/f/h8ralNt+gmOxEQAPV+UPsTIkIIQg0BOklGqKfs=
X-Received: by 2002:a05:6830:40c1:b0:70c:9c66:af53 with SMTP id
 46e09a7af769-71a6023bc72mr7517367a34.25.1731592983106; Thu, 14 Nov 2024
 06:03:03 -0800 (PST)
MIME-Version: 1.0
References: <20240819142953.415817-1-frediano.ziglio@cloud.com> <c55fdc20-2a58-4978-bd78-4cba90a7a8e4@suse.com>
In-Reply-To: <c55fdc20-2a58-4978-bd78-4cba90a7a8e4@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Thu, 14 Nov 2024 14:02:52 +0000
Message-ID: <CACHz=ZhGsE1fvhEi2k2X9ae2rx=ik3ZzZR4RN4Uajt_qvs2J=w@mail.gmail.com>
Subject: Re: [PATCH v4] Avoid crash calling PrintErrMesg from efi_multiboot2
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	"Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 5, 2024 at 2:52=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 19.08.2024 16:29, Frediano Ziglio wrote:
> > --- a/xen/common/efi/boot.c
> > +++ b/xen/common/efi/boot.c
> > @@ -287,19 +287,36 @@ static bool __init match_guid(const EFI_GUID *gui=
d1, const EFI_GUID *guid2)
> >  /* generic routine for printing error messages */
> >  static void __init PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode=
)
> >  {
> > -    static const CHAR16* const ErrCodeToStr[] __initconstrel =3D {
> > -        [~EFI_ERROR_MASK & EFI_NOT_FOUND]           =3D L"Not found",
> > -        [~EFI_ERROR_MASK & EFI_NO_MEDIA]            =3D L"The device h=
as no media",
> > -        [~EFI_ERROR_MASK & EFI_MEDIA_CHANGED]       =3D L"Media change=
d",
> > -        [~EFI_ERROR_MASK & EFI_DEVICE_ERROR]        =3D L"Device error=
",
> > -        [~EFI_ERROR_MASK & EFI_VOLUME_CORRUPTED]    =3D L"Volume corru=
pted",
> > -        [~EFI_ERROR_MASK & EFI_ACCESS_DENIED]       =3D L"Access denie=
d",
> > -        [~EFI_ERROR_MASK & EFI_OUT_OF_RESOURCES]    =3D L"Out of resou=
rces",
> > -        [~EFI_ERROR_MASK & EFI_VOLUME_FULL]         =3D L"Volume is fu=
ll",
> > -        [~EFI_ERROR_MASK & EFI_SECURITY_VIOLATION]  =3D L"Security vio=
lation",
> > -        [~EFI_ERROR_MASK & EFI_CRC_ERROR]           =3D L"CRC error",
> > -        [~EFI_ERROR_MASK & EFI_COMPROMISED_DATA]    =3D L"Compromised =
data",
> > -        [~EFI_ERROR_MASK & EFI_BUFFER_TOO_SMALL]    =3D L"Buffer too s=
mall",
> > +#define ERROR_MESSAGE_LIST \
> > +    ERROR_MESSAGE(EFI_NOT_FOUND, "Not found") \
> > +    ERROR_MESSAGE(EFI_NO_MEDIA, "The device has no media") \
> > +    ERROR_MESSAGE(EFI_MEDIA_CHANGED, "Media changed") \
> > +    ERROR_MESSAGE(EFI_DEVICE_ERROR, "Device error") \
> > +    ERROR_MESSAGE(EFI_VOLUME_CORRUPTED, "Volume corrupted") \
> > +    ERROR_MESSAGE(EFI_ACCESS_DENIED, "Access denied") \
> > +    ERROR_MESSAGE(EFI_OUT_OF_RESOURCES, "Out of resources") \
> > +    ERROR_MESSAGE(EFI_VOLUME_FULL, "Volume is full") \
> > +    ERROR_MESSAGE(EFI_SECURITY_VIOLATION, "Security violation") \
> > +    ERROR_MESSAGE(EFI_CRC_ERROR, "CRC error") \
> > +    ERROR_MESSAGE(EFI_COMPROMISED_DATA, "Compromised data") \
> > +    ERROR_MESSAGE(EFI_BUFFER_TOO_SMALL, "Buffer too small")
> > +
> > +    static const struct ErrorStrings {
> > +        CHAR16 start;
> > +#undef ERROR_MESSAGE
> > +#define ERROR_MESSAGE(code, str) CHAR16 msg_ ## code[sizeof(str)];
> > +        ERROR_MESSAGE_LIST
> > +    } ErrorStrings __initconst =3D {
> > +        0
> > +#undef ERROR_MESSAGE
> > +#define ERROR_MESSAGE(code, str) , L ## str
> > +        ERROR_MESSAGE_LIST
> > +    };
> > +    static const uint16_t ErrCodeToStr[] __initconst =3D {
> > +#undef ERROR_MESSAGE
> > +#define ERROR_MESSAGE(code, str) \
> > +        [~EFI_ERROR_MASK & code] =3D offsetof(struct ErrorStrings, msg=
_ ## code),
> > +        ERROR_MESSAGE_LIST
> >      };
> >      EFI_STATUS ErrIdx =3D ErrCode & ~EFI_ERROR_MASK;
> >
>
> A while ago Andrew and I discussed this, and I was apparently wrongly exp=
ecting
> him to come back here, as (iirc; no record of this that I could find in t=
he mail
> archives, so I'm sorry if my recollection is wrong) he was the one to obj=
ect. We
> concluded that it wants at least considering to undo the respective part =
of
> 00d5d5ce23e6, finding a different solution to the Clang issue there.
>
> Jan

I thought this patch was already applied.
I didn't remember any clang issue.
As far as I know, this was delayed by an issue that turned out to be differ=
ent.
So, any reason why not to merge the original patch?

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 14:20:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 14:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836508.1252407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBahx-0002yE-UA; Thu, 14 Nov 2024 14:20:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836508.1252407; Thu, 14 Nov 2024 14: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 1tBahx-0002y7-Qu; Thu, 14 Nov 2024 14:20:29 +0000
Received: by outflank-mailman (input) for mailman id 836508;
 Thu, 14 Nov 2024 14:20: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBahw-0002y1-Qb
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 14:20:28 +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 96899994-a293-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 15:20:24 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so116267966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 06:20:24 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e047cb4sm67793066b.166.2024.11.14.06.20.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 06:20: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: 96899994-a293-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2ODk5OTk0LWEyOTMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTk0MDI0LjI3NzY0Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731594024; x=1732198824; 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=cJnXthI6RT1kM32h4bRBg6KgzEy+vWKReKKP+zyw52A=;
        b=u0Flerj4bMpIFOXykOMVPf/DoQjUo0Eolk8SrqFek/bdg2/drbPBbBwz6YUDkRjEQA
         w6aJySrSem5XTwY0F6DILozauK9Pda+zJW/czuZqeIuK6w3PbEf2zqQZNm8dqm20FvHC
         Pb/uG+YdWNFM+siHvc9UteOSn8hRK3jn+NNgI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731594024; x=1732198824;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cJnXthI6RT1kM32h4bRBg6KgzEy+vWKReKKP+zyw52A=;
        b=SXend49FLNMY+SCCEX/D4ookZmyu5UyNt8C74z0qsGs39mA+sYumUznS7Wyzmoi6BJ
         E+ukVHYeSNYxwClvYEheiuz8Hg7gRpuAVyNL/GtrxftHeq51ptmrzzfn35r9isT3w0Ge
         2a+eCrVZoKNSdlVwJ/Jn+ej+7KVejTb+UTuy4GpI3m1tCz080NpIgiha81hS5CnRnxR9
         KVAg27JAcrA5hOgMPTOT7Vme4PbvVE0wLl+MthcyFCdOjbakY4WEyqaJzIvHxyMMhD9b
         ZYJMAfw1othWLKPs1lnSlJIdPGKJcYTaN12HGtpXCQ5hyQFjYMsFQa0AKovomXlZAvSL
         MwQQ==
X-Forwarded-Encrypted: i=1; AJvYcCXwtodE78W7ZC1twrRKndwymbCLga6E5Z+QE0ZfHuB2dxzvPyXQo1XxBuN0nPu5sixVc6x++XrAKbI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yygt3Sx2i2VjpFonHHeaNBnsbLsYU5xcZBK5whagmMKccpdxlUY
	iXABYHNRV9CrqcloTr3IQLA/B24PQEE1Y+ehORqUxHbJbNiR4GzGMP9hZawz1dA=
X-Google-Smtp-Source: AGHT+IH1gPTSm3us+pUTO6hVPnkNcMCLk0dYKhK/B3nfzh/GBCIBjBrdb/0Uc5vDeLmTwwcUuIvipA==
X-Received: by 2002:a17:907:7f1f:b0:a9a:9ab:6233 with SMTP id a640c23a62f3a-a9eeff44cfcmr2664018866b.34.1731594023668;
        Thu, 14 Nov 2024 06:20:23 -0800 (PST)
Message-ID: <f380a78a-306e-4561-bed6-1f07db1bf744@citrix.com>
Date: Thu, 14 Nov 2024 14:20:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.19.1
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Kelly Choi <kelly.choi@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ddc41c9d-9754-4fde-bac0-6389511a7f7c@suse.com>
 <686facb6-0a6a-471c-a91c-b593cee7831a@citrix.com>
 <9482f40c-4913-4114-a951-6f92d95d4995@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <9482f40c-4913-4114-a951-6f92d95d4995@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/11/2024 12:46 pm, Jan Beulich wrote:
> On 13.11.2024 16:20, Andrew Cooper wrote:
>> On 12/11/2024 1:00 pm, Jan Beulich wrote:
>>> the release is due by the end of the month. Please point out backports you find
>>> missing from the respective staging branch, but which you consider relevant.
>> Looking over the XenServer patchqueue:
> First, overall - that's quite a few.

As chance would have it, we've just started efforts to move forward from
4.17.


>> ba709d514aac: x86/viridian: Clarify some viridian logging strings
> Not really a backporting candidate imo.
>> This is a diagnostic improvement, also from a customer bug:
>>
>> 2f413e22fa5e: x86/msr: add log messages to MSR state load error paths
> Again - not really a backporting candidate imo.

There have been a steady stream of requests for help on list and on
matrix, with people asking the wrong question because the Viridian error
message is plain wrong for anyone who isn't an expert in the TLFS spec.

What is even worse is that I've been trying to fix this damn error
message for 5 years
https://lore.kernel.org/xen-devel/20190913160404.495-1-andrew.cooper3@citrix.com/T/#u
because it had already been causing confusion for years prior.


Good (or better) error messages are worth their weight in gold, for ease
of investigating bug reports if nothing else.They really should be
considered in the same category as bugfixes, IMO.
>> These are from a livepatching snafu:
>>
>> 3a28da8f4daf: xen/livepatch: remove useless check for duplicated sections
>> 8c81423038f1: xen/livepatch: drop load_addr Elf section field
>> 86d09d16dd74: xen/livepatch: simplify and unify logic in prepare_payload()
>> fa49f4be413c: xen/livepatch: do Xen build-id check earlier
>> aa5a06d5d6ed: x86/alternatives: do not BUG during apply
>>
>> where the buildid check is much too late.
> I certainly agree with taking the last two. The first three though are all
> "no functional change", which generally I'd prefer to omit unless they're
> strictly prereqs, or diverging from master is deemed to be a severe issue.

Patch 1 might be able to be excluded without too much trouble.

Patch 2 and 3 are both prerequisites; the first to get a usable pointer
early enough to do the check, and the second to get a suitable helper to
perform the check with.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 14:58:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 14:58:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836524.1252416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBbIY-0007KU-MO; Thu, 14 Nov 2024 14:58:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836524.1252416; Thu, 14 Nov 2024 14:58: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 1tBbIY-0007KN-Jo; Thu, 14 Nov 2024 14:58:18 +0000
Received: by outflank-mailman (input) for mailman id 836524;
 Thu, 14 Nov 2024 14:58: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBbIX-0007K6-0z
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 14:58:17 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id deaf943d-a298-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 15:58:12 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9aa8895facso131186466b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 06:58:12 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e04676csm71508766b.157.2024.11.14.06.58.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 06:58: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: deaf943d-a298-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRlYWY5NDNkLWEyOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTk2MjkyLjgzMzQ1Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731596292; x=1732201092; 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=QCwomx5oWlO9wzXtDz6ZAqMPkfB4MOVjmOfc5ylfA5w=;
        b=cP/lkVHoUVliE9szsfk2lW7eOv23P50p3A6Gw4Oxwl+emXBvJC1LJ2DPvB1xeSAyCJ
         5qazQtW12HzNA7gHm3x/VTr3G5YszJ4ubnumFmPdeWjcF9zzKj+G/71aSs2oVT3Jw0AG
         1G8YAUVXiIQoYepe/UoKRHhbdg3hFkzIc1PFc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731596292; x=1732201092;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QCwomx5oWlO9wzXtDz6ZAqMPkfB4MOVjmOfc5ylfA5w=;
        b=P8D9oFbdLr/wyZg2ie5Tp0oXKhEv4c/QhLJ4en5BPedn1FXbGG1KJOt8ZHv2XY8XDf
         3LKbYMgPwxtIo0IM/JRNZgP4d0qJqP0DaEYTccr16shWXHWU57uCPjqBgNe2o42fMbo4
         /cnQuuOjqS9eGfpkGJdWJgccVnTChC0jltcT6Zzx0jv+6fNvWmRb6LFOaA3l8utbUXp2
         7uArjrqJl/r/J52UFVXrOVMklqXSM+GyK+SQe7NbaHly3wOLl94GcXg37T8O2Yv56gGq
         MuxiElSL0OTJL2AJEn15+J5xSlceFIUiSS2DicUfFPHQ6o61Xkky3tI6sBrbYpBHUuh2
         3vcQ==
X-Gm-Message-State: AOJu0YylpOxZw3/aB1VL7O1h8PJMKU2yHeDoEpQrYcktYEODhb13AVsC
	YwhG+IavjaPG3zBf8W7IW/KjQGO+48gF2LBSRWNy3K4/pDeA8RipRXaIrs8dRG9YjsMB/OZFN/s
	K
X-Google-Smtp-Source: AGHT+IG5kd+2M59kuF5D4Q+iisSIKim4XR0z0mBjGlBgQowljIJ4vjkj6a2zuc0j1WQTclCGlNc9Bg==
X-Received: by 2002:a17:907:3e9e:b0:a9a:8674:1739 with SMTP id a640c23a62f3a-a9ef0008cf0mr2359333466b.53.1731596291895;
        Thu, 14 Nov 2024 06:58:11 -0800 (PST)
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 v3 0/4] x86/mm: miscellaneous fixes
Date: Thu, 14 Nov 2024 15:57:11 +0100
Message-ID: <20241114145715.59777-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The attempt to fix destroy_xen_mappings() so that L2 tables are
consistently freed uncovered some errors in the memory management code.
The following series attempts to fix them.

All patches except for 4/4 are new in v2, and 4/4 has no change from v1,
hence kept Jan's Reviewed-by tag in 4/4.

Thanks, Roger.

Roger Pau Monne (4):
  x86/mm: introduce helpers to detect super page alignment
  x86/mm: skip super-page alignment checks for non-present entries
  x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
  x86/mm: ensure L2 is always freed if empty

 xen/arch/x86/mm.c    | 33 ++++++++++++++++++++++-----------
 xen/arch/x86/setup.c |  4 +++-
 2 files changed, 25 insertions(+), 12 deletions(-)

-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 14:58:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 14:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836525.1252421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBbIY-0007Ng-U0; Thu, 14 Nov 2024 14:58:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836525.1252421; Thu, 14 Nov 2024 14:58: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 1tBbIY-0007NU-QE; Thu, 14 Nov 2024 14:58:18 +0000
Received: by outflank-mailman (input) for mailman id 836525;
 Thu, 14 Nov 2024 14:58: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBbIX-0007K7-3l
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 14:58:17 +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 dfa8dea0-a298-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 15:58:14 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cf872ecce7so259578a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 06:58:14 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08128csm70554166b.175.2024.11.14.06.58.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 06:58: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: dfa8dea0-a298-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRmYThkZWEwLWEyOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTk2Mjk0LjQ1MjI3MSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731596293; x=1732201093; 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=wfQMcfiQzj+ufcVDBKz5TVkZtEEiPvugKRbHnXB/lrQ=;
        b=FzGlNjucZDjpw0AijRclFEIT7DSg7BRDzJ/BochpDLQVK7W08SNHm+9rmOnfbGqssm
         hg0og/CvK9ew/TevL/mVK/ffmttwP4Sp3bhbpwo3FR8/1KiHNLg+YxQiRjlhlzhV7VBd
         dQEKE28UM4lzkxMuF6EQVZuIGlZwNuEj9yCnA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731596293; x=1732201093;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=wfQMcfiQzj+ufcVDBKz5TVkZtEEiPvugKRbHnXB/lrQ=;
        b=cksGIP6DfYYo49iOtnYd6afpzUoIR7IyIApaaJsHyw46B/a0rwdEZNDyR1EFEeXbze
         uEhNluAsNUK88eDZ7ELI1PPyQsU/kiknlgMDuJ+ezpv8w078egGQj9dAw/j+QiPrOx1P
         ZGkW/En8Yp0qbpZ/7/GyStxCJT6Xu1ttk1el32w5jD85LTVt0vi8+MSdsBoWVFn/y2jf
         vg3DEC9NAEskLq4Mlb0piv7gzjmjE/4v4aoqkXOWs1tIXcatv9ysVUX1WofkQ3xxFm5x
         u4IRsLUwhGLf6GYlAoUvOhlzSDRtvChq0eAxjklluidxWEU/WBjlMBVQ30gIrsHN4WD9
         SyPg==
X-Gm-Message-State: AOJu0YzzMIX2xD3waLRIoQVo6wc0olT/PdbrKnqzHloqd8EP7kb+YNqw
	v5kNzh8UnZ/ovRXN7/wDS3eNsrMRvQdUeXC0ZvJZKrYTtTaUkPSeN2xbiw8ySbM/LbXV2qTKomy
	1
X-Google-Smtp-Source: AGHT+IE0ZQ6RvAcMJ6lX5tXnowlkxGMbF/MoZJdwPsvl+DQl93dO5jjfxqCZnfnU6zmcnaQjskVLqg==
X-Received: by 2002:a17:907:72c8:b0:a9a:1739:91e9 with SMTP id a640c23a62f3a-a9eefeebe72mr2495033866b.24.1731596293067;
        Thu, 14 Nov 2024 06:58:13 -0800 (PST)
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 v3 1/4] x86/mm: introduce helpers to detect super page alignment
Date: Thu, 14 Nov 2024 15:57:12 +0100
Message-ID: <20241114145715.59777-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241114145715.59777-1-roger.pau@citrix.com>
References: <20241114145715.59777-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Split the code that detects whether the physical and linear address of a
mapping request are suitable to be used in an L3 or L2 slot.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v2:
 - Fix parenthesization of macro parameter.
 - Add another usage of IS_L2E_ALIGNED().

Changes since v1:
 - Make the macros local to map_pages_to_xen().
 - Some adjustments to macro logic.
---
 xen/arch/x86/mm.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 11933321a3d5..ebb50a7836ac 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5493,6 +5493,13 @@ int map_pages_to_xen(
     }                                          \
 } while (0)
 
+/* Check if a (virt, mfn) tuple is aligned for a given slot level. */
+#define IS_LnE_ALIGNED(v, m, n)                                 \
+    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m),                          \
+               (1UL << (PAGETABLE_ORDER * ((n) - 1))) - 1)
+#define IS_L2E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 2)
+#define IS_L3E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 3)
+
     L3T_INIT(current_l3page);
 
     while ( nr_mfns != 0 )
@@ -5510,9 +5517,7 @@ int map_pages_to_xen(
         L3T_LOCK(current_l3page);
         ol3e = *pl3e;
 
-        if ( cpu_has_page1gb &&
-             !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-               ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1)) &&
+        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
         {
@@ -5631,8 +5636,7 @@ int map_pages_to_xen(
         if ( !pl2e )
             goto out;
 
-        if ( ((((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-               ((1u << PAGETABLE_ORDER) - 1)) == 0) &&
+        if ( IS_L2E_ALIGNED(virt, mfn) &&
              (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
              !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
         {
@@ -5749,9 +5753,7 @@ int map_pages_to_xen(
             nr_mfns -= 1UL;
 
             if ( (flags == PAGE_HYPERVISOR) &&
-                 ((nr_mfns == 0) ||
-                  ((((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-                    ((1u << PAGETABLE_ORDER) - 1)) == 0)) )
+                 ((nr_mfns == 0) || IS_L2E_ALIGNED(virt, mfn)) )
             {
                 unsigned long base_mfn;
                 const l1_pgentry_t *l1t;
@@ -5802,9 +5804,7 @@ int map_pages_to_xen(
  check_l3:
         if ( cpu_has_page1gb &&
              (flags == PAGE_HYPERVISOR) &&
-             ((nr_mfns == 0) ||
-              !(((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
-                ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1))) )
+             ((nr_mfns == 0) || IS_L3E_ALIGNED(virt, mfn)) )
         {
             unsigned long base_mfn;
             const l2_pgentry_t *l2t;
@@ -5848,6 +5848,9 @@ int map_pages_to_xen(
         }
     }
 
+#undef IS_L3E_ALIGNED
+#undef IS_L2E_ALIGNED
+#undef IS_LnE_ALIGNED
 #undef flush_flags
 
     rc = 0;
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 14:58:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 14:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836527.1252447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBbIa-00080w-G0; Thu, 14 Nov 2024 14:58:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836527.1252447; Thu, 14 Nov 2024 14:58: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 1tBbIa-00080i-Ap; Thu, 14 Nov 2024 14:58:20 +0000
Received: by outflank-mailman (input) for mailman id 836527;
 Thu, 14 Nov 2024 14:58: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBbIZ-0007K7-PK
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 14:58:19 +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 e0ecac41-a298-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 15:58:16 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-aa20944ce8cso158622466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 06:58:16 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08617esm71581366b.182.2024.11.14.06.58.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 06:58: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: e0ecac41-a298-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUwZWNhYzQxLWEyOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTk2Mjk2LjU5ODI0Niwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731596296; x=1732201096; 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=tXR4cctauxXAgvzXe72aJg/wf4uD+JeIO0+1UeL6XbI=;
        b=uF09amAJXlqVYrgoAWLuUBYzKfcIc45iT0ezUuDADzGua0wyqEdMZkOKb/ABIUl8kc
         jAJmMVOTHB+fJk/urct8yo9tEcxNamIwXYBXTcHSECNeNB89KfbdhuNHnqnRrJGOdxci
         Mgvf0381fXjpVvVjvX6GMWCSNLK7cMciAcZAY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731596296; x=1732201096;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tXR4cctauxXAgvzXe72aJg/wf4uD+JeIO0+1UeL6XbI=;
        b=tBsijn9hFeZraqfDFQf9GpjZlyzR6Yiy21YqHsOpJ7eVsFmIiweeBvufXucr8dknth
         TrD4Svsg5n7YTJPHjRFtLB3/OH9d5jNH0NL+I5EipUs81whdEnJ0DGJ7N/nYZcjQxLLO
         oImT/wY7nz0vqp0UFBuDPRWnLMcT812/os/SxsuLN1OEfISE4Sbh4zN/yMvVFrpQbDdj
         N/sh3nQQOkorjXgQana4AB34Ekou0kZgS42Szw5FRU2zl1c7QctpvtsxK2v0jKiYPmjY
         iKyfbl+CT0HXJOnsM37I9J7E0lp3ybOTglpMGhYDmzrNAhQQhKkGPN6oSp24Af1fgR26
         PWKQ==
X-Gm-Message-State: AOJu0YyhhazsqtuHJLngsDLpwAMAJDeQGWFSRqwxo6sVvCEKbB3Fz0VE
	V9doXqQ5kU8nc6FQ3Rr87I7rvkkxBp5aHaBxw3BbRsDQ+iPF37cjk9t0bOtZfTK/p3iCtobW288
	0
X-Google-Smtp-Source: AGHT+IELVxnRGrnCdIZBOFpbty878I4Sr+GUKmoDscJGaVSHTdvBbe+YWejESTrHfW/xUoW/c+B2XA==
X-Received: by 2002:a17:907:1ca2:b0:a9a:cea7:1294 with SMTP id a640c23a62f3a-aa2077daa13mr300791866b.21.1731596295726;
        Thu, 14 Nov 2024 06:58:15 -0800 (PST)
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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@ctrix.com>
Subject: [PATCH v3 3/4] x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
Date: Thu, 14 Nov 2024 15:57:14 +0100
Message-ID: <20241114145715.59777-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241114145715.59777-1-roger.pau@citrix.com>
References: <20241114145715.59777-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bootstrap_map_addr() needs to be careful to not remove existing page-table
structures when tearing down mappings, as such pagetable structures might be
needed to fulfill subsequent mappings requests.  The comment ahead of the
function already notes that pagetable memory shouldn't be allocated.

Fix this by using map_pages_to_xen(), which does zap the page-table entries,
but does not free page-table structures even when empty.

Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@ctrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v1:
 - Adjust commit message.
---
 xen/arch/x86/setup.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 4feef9f2e05a..5da1c6a34519 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -462,7 +462,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
 
     if ( !end )
     {
-        destroy_xen_mappings(BOOTSTRAP_MAP_BASE, BOOTSTRAP_MAP_LIMIT);
+        map_pages_to_xen(BOOTSTRAP_MAP_BASE, INVALID_MFN,
+                         PFN_DOWN(map_cur - BOOTSTRAP_MAP_BASE),
+                         _PAGE_NONE);
         map_cur = BOOTSTRAP_MAP_BASE;
         return NULL;
     }
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 14:58:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 14:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836526.1252428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBbIZ-0007Ue-9J; Thu, 14 Nov 2024 14:58:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836526.1252428; Thu, 14 Nov 2024 14:58: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 1tBbIZ-0007T6-2I; Thu, 14 Nov 2024 14:58:19 +0000
Received: by outflank-mailman (input) for mailman id 836526;
 Thu, 14 Nov 2024 14:58: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBbIX-0007K7-P5
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 14:58:17 +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 e034466f-a298-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 15:58:15 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso114203266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 06:58:15 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e043b84sm70827666b.137.2024.11.14.06.58.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 06:58: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: e034466f-a298-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUwMzQ0NjZmLWEyOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTk2Mjk1LjM2Mzg3LCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731596294; x=1732201094; 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=s0to/rSIeQG19u7kDm67YYj3X5UuL0xhfI5HLy/Vz4M=;
        b=TMuMJdOdC24ZHi+Zeo0nuMzuMGbJ+69aD1o8CQJm5a2J0IcGUjO4piZC8vR5d2VYAN
         Tc5HT1XWBTSGzey876OnJenpp493/yNnR9hqoswQfFPkUsRlVxwE6oXCcREpE8trIPH0
         JQ22f0oTT5sVPFORlAp7/EVxN8d8ZG9XtJsZo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731596294; x=1732201094;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=s0to/rSIeQG19u7kDm67YYj3X5UuL0xhfI5HLy/Vz4M=;
        b=U9+ThsGfCBM89s0a50q720IQf7B4aPmkLRk/paLEC/WG++vAFBGowb+t79XbK8CZVp
         PPM+ym/msWM2u2jOiTJ7VHXnPRAbResGVFvamxVBoWtAQ6O4K/umVNCCebojHn01MOSg
         blte40vi2KS/wW0yLBnLzh19y+HfVWIBGoPGfaUg//XTIjjU7e87wEyqPxCr6xXQHWzi
         C++vZtH/VLAgeo2l2UmpcyrxzKKq2uPR0yyr4t9CkkqrZfwyCoE3LZR9wAQhkuKZ0uU3
         MDRO2kN3K7fdFzHYRL6ttEwguc/b/9v7nW2OpCSefFKCVx5O9KRwVpmx0xlIi7fHmCEW
         Dn9g==
X-Gm-Message-State: AOJu0Yw+r3v6AcRCLVY7pVX21fL8/bPiLjhDLMeDeDnc7st2I3QhLtML
	/k5m4fHXWkN9WW5uaTzGtXTspUK9F3AAsSFsrZBGQY4VflO1f7+lRt+89xlbRk1Fw55BQNARf3c
	3
X-Google-Smtp-Source: AGHT+IGKKQHAG7a56T4kdnuzwe2XbLvwv4+S+QVF2rSjaUcvZ4lKxDXe7Zjdq7m8cVYXZqj3UQW8Jw==
X-Received: by 2002:a17:907:3e99:b0:a9a:e6:a031 with SMTP id a640c23a62f3a-aa1f813e6edmr719623766b.59.1731596294423;
        Thu, 14 Nov 2024 06:58:14 -0800 (PST)
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 v3 2/4] x86/mm: skip super-page alignment checks for non-present entries
Date: Thu, 14 Nov 2024 15:57:13 +0100
Message-ID: <20241114145715.59777-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241114145715.59777-1-roger.pau@citrix.com>
References: <20241114145715.59777-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

INVALID_MFN is ~0, so by it having all bits as 1s it doesn't fulfill the
super-page address alignment checks for L3 and L2 entries.  Skip the alignment
checks if the new entry is a non-present one.

This fixes a regression introduced by 0b6b51a69f4d, where the switch from 0 to
INVALID_MFN caused all super-pages to be shattered when attempting to remove
mappings by passing INVALID_MFN instead of 0.

Fixes: 0b6b51a69f4d ('xen/mm: Switch map_pages_to_xen to use MFN typesafe')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changees since v2:
 - Remove unneeded page present check.

Changes since v1:
 - Detect non-present entries from the flags contents rather than checking the
   mfn parameter.
---
 xen/arch/x86/mm.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index ebb50a7836ac..b9a2234b53e1 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5493,10 +5493,17 @@ int map_pages_to_xen(
     }                                          \
 } while (0)
 
-/* Check if a (virt, mfn) tuple is aligned for a given slot level. */
-#define IS_LnE_ALIGNED(v, m, n)                                 \
-    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m),                          \
-               (1UL << (PAGETABLE_ORDER * ((n) - 1))) - 1)
+/*
+ * Check if a (virt, mfn) tuple is aligned for a given slot level. m must not
+ * be INVALID_MFN, since alignment is only relevant for present entries.
+ */
+#define IS_LnE_ALIGNED(v, m, n) ({                              \
+    mfn_t m_ = m;                                               \
+                                                                \
+    ASSERT(!mfn_eq(m_, INVALID_MFN));                           \
+    IS_ALIGNED(PFN_DOWN(v) | mfn_x(m_),                         \
+               (1UL << (PAGETABLE_ORDER * ((n) - 1))) - 1);     \
+})
 #define IS_L2E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 2)
 #define IS_L3E_ALIGNED(v, m) IS_LnE_ALIGNED(v, m, 3)
 
@@ -5517,7 +5524,8 @@ int map_pages_to_xen(
         L3T_LOCK(current_l3page);
         ol3e = *pl3e;
 
-        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
+        if ( cpu_has_page1gb &&
+             (!(flags & _PAGE_PRESENT) || IS_L3E_ALIGNED(virt, mfn)) &&
              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
         {
@@ -5636,7 +5644,7 @@ int map_pages_to_xen(
         if ( !pl2e )
             goto out;
 
-        if ( IS_L2E_ALIGNED(virt, mfn) &&
+        if ( (!(flags & _PAGE_PRESENT) || IS_L2E_ALIGNED(virt, mfn)) &&
              (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
              !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
         {
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 14:58:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 14:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836528.1252457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBbId-0008Is-Qd; Thu, 14 Nov 2024 14:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836528.1252457; Thu, 14 Nov 2024 14:58: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 1tBbId-0008Il-NN; Thu, 14 Nov 2024 14:58:23 +0000
Received: by outflank-mailman (input) for mailman id 836528;
 Thu, 14 Nov 2024 14:58: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBbIc-0007K6-K6
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 14:58:22 +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 e1c922a2-a298-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 15:58:18 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5ceb75f9631so930257a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 06:58:18 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79b89d47sm644059a12.16.2024.11.14.06.58.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 06:58: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: e1c922a2-a298-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUxYzkyMmEyLWEyOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTk2Mjk4LjAzNTMxNywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731596297; x=1732201097; 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=cfpsHIVO6Ujko5JTUzFKmfq4KuJWIJOR8vcz6fn/jLQ=;
        b=cnqcxds1qtP2pyFMnL1MG8tLPF3qWU7iJ6g/gj8AM6qVeLZKvBKDUDIkOlUI9uL1G6
         2Aq//huKlP3fogmcHWI7btFlFAyCShbYS1EsV7lEnspOeVes3zx1/Ja34qlQOuHif9N6
         jTQfoFZnCEPgFwTFDPKiu3px3EicagwuFqs4g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731596297; x=1732201097;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cfpsHIVO6Ujko5JTUzFKmfq4KuJWIJOR8vcz6fn/jLQ=;
        b=vNvvkyTYGwp3Kl+7QLv3BN24UCNpmiwnvMhTUz/JzF2feHdI6V1CPrp2a5yiJ15sap
         vXTaME7IkFit7CPvFyO+8RhPBN+kTO/KWEWHHgXpYYZRyv0HsTjePgOjvHomRF8/Jsag
         IlpSg6spAmB3vCjfs3eVu65y8yVrW9hF7MkCdRFzBud4wrdM/7k0aBGNMgYNLzP0z7LU
         UfNOcbD5N0Q1exxt8XR7P+wfbm5Cox7KlEocjyRYmhfU/JmHvnJd2GHhVEYCDuDLNBhK
         ODbWd4Bgpn8aXRQi6bHs8uFdPVSTgAco1i18ZnFcFvKizumIO5tnNJV4uh2aDQEZx7SF
         VRYw==
X-Gm-Message-State: AOJu0Yzc2gpNAHdymXc/gkOhwL5GnWQ6s5tqcnlJ/jqJlt+T3s4rlwK0
	SWQ9uiwqG5PDZYDEqAQC7QMMQTCfq819xB9q5pfbO+z3EazcP7nFkIg4mg1lPUJb68AtSk4A4zJ
	4
X-Google-Smtp-Source: AGHT+IGAixFOlUsgApJqtZWaUF0eQhjY3/QjMY1cv8HYc0dJtkEutXuf3diur3jYqzlxSNZQxau3Bw==
X-Received: by 2002:a05:6402:2794:b0:5ce:dc4e:57ff with SMTP id 4fb4d7f45d1cf-5cf0a43ee61mr19861825a12.24.1731596297164;
        Thu, 14 Nov 2024 06:58:17 -0800 (PST)
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 v3 4/4] x86/mm: ensure L2 is always freed if empty
Date: Thu, 14 Nov 2024 15:57:15 +0100
Message-ID: <20241114145715.59777-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241114145715.59777-1-roger.pau@citrix.com>
References: <20241114145715.59777-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic in modify_xen_mappings() allows for fully empty L2 tables to
not be freed and unhooked from the parent L3 if the last L2 slot is not
populated.

Ensure that even when an L2 slot is empty the logic to check whether the whole
L2 can be removed is not skipped.

Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/mm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index b9a2234b53e1..5d7e8d78718c 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5989,7 +5989,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
 
             v += 1UL << L2_PAGETABLE_SHIFT;
             v &= ~((1UL << L2_PAGETABLE_SHIFT) - 1);
-            continue;
+            goto check_l3;
         }
 
         if ( l2e_get_flags(*pl2e) & _PAGE_PSE )
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 15:04:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 15:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836561.1252467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBbOB-00039d-Er; Thu, 14 Nov 2024 15:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836561.1252467; Thu, 14 Nov 2024 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 1tBbOB-00039W-BO; Thu, 14 Nov 2024 15:04:07 +0000
Received: by outflank-mailman (input) for mailman id 836561;
 Thu, 14 Nov 2024 15:04: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBbO9-00038k-H7
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 15:04:05 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae9ed242-a299-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 16:04:01 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-53a097aa3daso690387e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 07:04: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-432dac0aea8sm22860965e9.31.2024.11.14.07.03.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 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: ae9ed242-a299-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzUiLCJoZWxvIjoibWFpbC1sZjEteDEzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFlOWVkMjQyLWEyOTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNTk2NjQxLjY1MzM5Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731596641; x=1732201441; 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=v35p9yEv9hOk2K6U2mAHAUIYQZuSvDHdY3VmEkeMV9U=;
        b=XLUOg7hE3Pl3e2z8LnR3cjrXYBC3kiP/JL9axhvhWgbcXFblSQQkw494uicPf70qFB
         bLTze5NQ/O/WPibNmj+KPdQfpnuUYMEVp/SlXj134Xzpzm8HemSnXsVFaPvUyWZbYG4w
         Rs9SgmrX6ODpgJ5GKDS1qk1cqfAgYX97N2HbtBI+4vCQxuWEgG7pOJe75cPXKS3oWPWJ
         sup9YtmTIdXXsS2kb8qwVBgaHifjHpfPzjtmQDsPMpKYr6vfyFKuN2SnVh6HcPqnE5xe
         tzTdWdZ89bsmqVYjDz4k6ulvYOgqis2A9ShuvlOACPpLsDJct4TNlnGa4itCULHNbyoP
         lvzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731596641; x=1732201441;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v35p9yEv9hOk2K6U2mAHAUIYQZuSvDHdY3VmEkeMV9U=;
        b=GAPIw4SvCyAo+6XV1MzWdUpdSO21Qx+XJHVW6tVKphDypbJuRoXIlIDEMYWonZZfRQ
         9WVWmhzedlXSyLf2NIC+jOu7DXwtmtqBRLD5Grr2HRoH+/5UrdY0Lct9jGUe8HgJD3EQ
         bjdZBXzPWenyGVk32R9JwT3/3iIKneNH0+gEVIxebNvtC0WzG9KtB6dUHgkP7TXWRvmr
         G30+W+I2tn2loJjBs+jNn9gZK1q/StUVZIOxI/cBQwncA6zY3PNOHTFS7rfYQDDnQ6vO
         6/9G7LufyG8BQrUyx8jbHqboInHJkCoxDztixicitGJcH24d5f/yz5ab+Y4shtqxvHyB
         h7vg==
X-Forwarded-Encrypted: i=1; AJvYcCUGxLsXylcd1G7K/cBUn1aTY5vI0I8UJz6P6VDNCwIayNihVs+/oIR4NWa18U4d0OF4hjEyKuBCn44=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXkHLhwCUAGGTbEHl9vcUoUGG+8f/8onhLv2UsJYgCFsqrEfEt
	U9ClX91ZloaRmSJ34ej7bHZNRAHgKJCcsY1X5tM7M49r6JysZPLGBrqktg+alwTRHLTZ6rXpNGs
	=
X-Google-Smtp-Source: AGHT+IFwDFwUN46tgjsK/Trm7u1LBrjyslwSQte6Ybo7GbfH6b4I+MQfwg4DiZzSj4rOPtwjEEbZjQ==
X-Received: by 2002:a05:6512:b0e:b0:53d:a23d:37e6 with SMTP id 2adb3069b0e04-53da5c829e5mr1444778e87.57.1731596640604;
        Thu, 14 Nov 2024 07:04:00 -0800 (PST)
Message-ID: <edc4f604-d8e2-4227-abc9-9c5de5933417@suse.com>
Date: Thu, 14 Nov 2024 16:03:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] Avoid crash calling PrintErrMesg from efi_multiboot2
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20240819142953.415817-1-frediano.ziglio@cloud.com>
 <c55fdc20-2a58-4978-bd78-4cba90a7a8e4@suse.com>
 <CACHz=ZhGsE1fvhEi2k2X9ae2rx=ik3ZzZR4RN4Uajt_qvs2J=w@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: <CACHz=ZhGsE1fvhEi2k2X9ae2rx=ik3ZzZR4RN4Uajt_qvs2J=w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2024 15:02, Frediano Ziglio wrote:
> On Tue, Nov 5, 2024 at 2:52â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 19.08.2024 16:29, Frediano Ziglio wrote:
>>> --- a/xen/common/efi/boot.c
>>> +++ b/xen/common/efi/boot.c
>>> @@ -287,19 +287,36 @@ static bool __init match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2)
>>>  /* generic routine for printing error messages */
>>>  static void __init PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode)
>>>  {
>>> -    static const CHAR16* const ErrCodeToStr[] __initconstrel = {
>>> -        [~EFI_ERROR_MASK & EFI_NOT_FOUND]           = L"Not found",
>>> -        [~EFI_ERROR_MASK & EFI_NO_MEDIA]            = L"The device has no media",
>>> -        [~EFI_ERROR_MASK & EFI_MEDIA_CHANGED]       = L"Media changed",
>>> -        [~EFI_ERROR_MASK & EFI_DEVICE_ERROR]        = L"Device error",
>>> -        [~EFI_ERROR_MASK & EFI_VOLUME_CORRUPTED]    = L"Volume corrupted",
>>> -        [~EFI_ERROR_MASK & EFI_ACCESS_DENIED]       = L"Access denied",
>>> -        [~EFI_ERROR_MASK & EFI_OUT_OF_RESOURCES]    = L"Out of resources",
>>> -        [~EFI_ERROR_MASK & EFI_VOLUME_FULL]         = L"Volume is full",
>>> -        [~EFI_ERROR_MASK & EFI_SECURITY_VIOLATION]  = L"Security violation",
>>> -        [~EFI_ERROR_MASK & EFI_CRC_ERROR]           = L"CRC error",
>>> -        [~EFI_ERROR_MASK & EFI_COMPROMISED_DATA]    = L"Compromised data",
>>> -        [~EFI_ERROR_MASK & EFI_BUFFER_TOO_SMALL]    = L"Buffer too small",
>>> +#define ERROR_MESSAGE_LIST \
>>> +    ERROR_MESSAGE(EFI_NOT_FOUND, "Not found") \
>>> +    ERROR_MESSAGE(EFI_NO_MEDIA, "The device has no media") \
>>> +    ERROR_MESSAGE(EFI_MEDIA_CHANGED, "Media changed") \
>>> +    ERROR_MESSAGE(EFI_DEVICE_ERROR, "Device error") \
>>> +    ERROR_MESSAGE(EFI_VOLUME_CORRUPTED, "Volume corrupted") \
>>> +    ERROR_MESSAGE(EFI_ACCESS_DENIED, "Access denied") \
>>> +    ERROR_MESSAGE(EFI_OUT_OF_RESOURCES, "Out of resources") \
>>> +    ERROR_MESSAGE(EFI_VOLUME_FULL, "Volume is full") \
>>> +    ERROR_MESSAGE(EFI_SECURITY_VIOLATION, "Security violation") \
>>> +    ERROR_MESSAGE(EFI_CRC_ERROR, "CRC error") \
>>> +    ERROR_MESSAGE(EFI_COMPROMISED_DATA, "Compromised data") \
>>> +    ERROR_MESSAGE(EFI_BUFFER_TOO_SMALL, "Buffer too small")
>>> +
>>> +    static const struct ErrorStrings {
>>> +        CHAR16 start;
>>> +#undef ERROR_MESSAGE
>>> +#define ERROR_MESSAGE(code, str) CHAR16 msg_ ## code[sizeof(str)];
>>> +        ERROR_MESSAGE_LIST
>>> +    } ErrorStrings __initconst = {
>>> +        0
>>> +#undef ERROR_MESSAGE
>>> +#define ERROR_MESSAGE(code, str) , L ## str
>>> +        ERROR_MESSAGE_LIST
>>> +    };
>>> +    static const uint16_t ErrCodeToStr[] __initconst = {
>>> +#undef ERROR_MESSAGE
>>> +#define ERROR_MESSAGE(code, str) \
>>> +        [~EFI_ERROR_MASK & code] = offsetof(struct ErrorStrings, msg_ ## code),
>>> +        ERROR_MESSAGE_LIST
>>>      };
>>>      EFI_STATUS ErrIdx = ErrCode & ~EFI_ERROR_MASK;
>>>
>>
>> A while ago Andrew and I discussed this, and I was apparently wrongly expecting
>> him to come back here, as (iirc; no record of this that I could find in the mail
>> archives, so I'm sorry if my recollection is wrong) he was the one to object. We
>> concluded that it wants at least considering to undo the respective part of
>> 00d5d5ce23e6, finding a different solution to the Clang issue there.
> 
> I thought this patch was already applied.
> I didn't remember any clang issue.
> As far as I know, this was delayed by an issue that turned out to be different.
> So, any reason why not to merge the original patch?

Afaict the alternative would result in tidier code, and hence might indeed be
preferable. But since the reason I didn't long commit the patch is Andrew
wanting it to not be committed, it'll need to be him to chime in here. Even
if only to indicate that I'm misremembering.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 15:52:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 15:52:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836599.1252496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBc8u-0002eS-Ac; Thu, 14 Nov 2024 15:52:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836599.1252496; Thu, 14 Nov 2024 15:52: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 1tBc8u-0002eL-7S; Thu, 14 Nov 2024 15:52:24 +0000
Received: by outflank-mailman (input) for mailman id 836599;
 Thu, 14 Nov 2024 15:52: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBc8t-0002eF-8M
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 15:52:23 +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 6e3a7dfa-a2a0-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 16:52:20 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5c9693dc739so1228913a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 07:52:20 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df56b31sm76736566b.72.2024.11.14.07.52.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 07:52: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: 6e3a7dfa-a2a0-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZlM2E3ZGZhLWEyYTAtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTk5NTQwLjExNTg2Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731599539; x=1732204339; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ZxBLUxl+174iJ9f2SFbtnZCadTkEjvNoBFgtFSSUkMw=;
        b=wSgqoE3ZQAfx98RAboDy5SmQcPV6VUxetf6KO/owCItW1B8aHEfE1S4Q/GykTwwWHB
         ePAjpa5tXD83X+WJb3cXolDBcyWkeU+TcscGTqcg7P4URAr3wN61Y7h+2U6nV2QTdTjU
         N5zWEk5ti/URaK9wDCivQ0UdH/NrKuPIyBgY8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731599539; x=1732204339;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ZxBLUxl+174iJ9f2SFbtnZCadTkEjvNoBFgtFSSUkMw=;
        b=KVxfUSni2+0qIPuLLEXQdnV6lJS/vHyPs5dEgWed3JsSQsfikyaNVrwuLQ1i7BdkuB
         41Gwx3lU5uJG1P/3CjcmOKQKFOnk3Foxe6wyiliQTJI3rXBtPP2irlUBqUcv0QLEJWkA
         RREuwlT9tw4zyRnl3edepn6QmhRWU3pmxBq7amZHIx8gew++hB/E3ElZ2SGNOwepTfIB
         TwLzb4IeBb2RhS2Lqf2aZXrirDlfncXwAAmT9TghJ/6ax8wFSL/6a5qwKIz2nyFWeWNR
         TXYrUOuO2gSg8T2b7ye4TZLO8sjwYCcy7z4aSwgTvfKyCet9wgbqwmSmwMDdtEsN8R7d
         dtnA==
X-Gm-Message-State: AOJu0Ywp6KY2vAWs5vvDX8aYsscI6dtA/3xVtR8SI6J0Zs4eN45nCvas
	B7+5inTTldFrHp/JYlTx7IFhzbFWb5QRmsJPTOrmP5p4V8j8knlc4HQDoYMtNx8=
X-Google-Smtp-Source: AGHT+IHtgRAJI/GIP0V/Fl3JKbprGzeKUnoT1v5X9vxsmERRm5QW+ImneZ1OkUBN+0mHWZvvMyhsSg==
X-Received: by 2002:a17:906:478f:b0:a9e:c263:29a7 with SMTP id a640c23a62f3a-aa20cd12f11mr241170566b.23.1731599539450;
        Thu, 14 Nov 2024 07:52:19 -0800 (PST)
Date: Thu, 14 Nov 2024 16:52:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzYcskZ-GZ8HsXfU@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>

On Thu, Nov 14, 2024 at 06:11:46AM +0000, Chen, Jiqian wrote:
> On 2024/11/13 18:30, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>> and then cause probing failure.
> >>>>
> >>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>> corresponding handler into vpci.
> >>>>
> >>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>
> >>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>> setting the new size.
> >>>
> >>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>> time ago I've made a patch to add support for it, but due to lack of
> >>> hardware on my side to test it I've never submitted it.
> >>>
> >>> My approach would be to detect the presence of the
> >>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>> capability is present force the sizing of BARs each time they are
> >>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>> the capability itself, as resizing can only happen when memory
> >>> decoding is not enabled for the device.  It's enough to fetch the size
> >>> of the BARs ahead of each enabling of memory decoding.
> >>>
> >>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>> is already an expensive operation, the extra sizing is unlikely to
> >>> make much of a difference performance wise.
> >>>
> >>> I've found the following on my git tree and rebased on top of staging:
> >> OK.
> >> Do you need me to validate your patch in my environment?
> > 
> > Yes please, I have no way to test it.  Let's see what others think
> > about the different approaches.
> There are some errors with your method.
> I attached the dmesg and xl dmesg logs.
> From the dmesg logs, it seems that 0000:03:00.0 has addresse overlap with 0000:03:00.1

Do you have the output of lspci with the BAR sizes/positions before
and after the resizing?

> 
> I think there is a place that needs to be modified regarding your method,
> although this modification does not help with the above-mentioned errors,
> it is that whether to support resizing is specific to which bar, rather than just determining whether there is a Rebar capability.

Do we really need such fine-grained information?  It should be
harmless (even if not strictly necessary) to size all BARs on the
device before enabling memory decoding, even if some of them do not
support resizing.

I might have to provide a patch with additional messages to see what's
going on.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 16:00:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 16:00:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836607.1252505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBcG4-0003JN-0m; Thu, 14 Nov 2024 15:59:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836607.1252505; Thu, 14 Nov 2024 15:59: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 1tBcG3-0003JG-UB; Thu, 14 Nov 2024 15:59:47 +0000
Received: by outflank-mailman (input) for mailman id 836607;
 Thu, 14 Nov 2024 15:59: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBcG2-0003JA-PN
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 15:59:46 +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 749c65d0-a2a1-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 16:59:40 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5cf7aadc8b7so780180a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 07:59:40 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79c1df6bsm678033a12.83.2024.11.14.07.59.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 07:59: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: 749c65d0-a2a1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc0OWM2NWQwLWEyYTEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNTk5OTgwLjMxMzE0Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731599980; x=1732204780; 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=sAY4U0UvVCbnGzt7jDMkzZyyPWjNab+ZCpfAPvAY/LI=;
        b=TCzsj8o4iZY/0LDesF5JACZx3+ukKpWO/52cfrciufZMXOFOq++OAeVCAaMi2ueXv1
         oHJ2XRSYuzOC7Q65WkNQrc4Wef9Mc2A4LnYrD688+/iRcSjJUzcBOo2drCBZS079p2pL
         73/flNT+Zn4MqFSbwElZJi6rb3L4DYxwYXAr4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731599980; x=1732204780;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sAY4U0UvVCbnGzt7jDMkzZyyPWjNab+ZCpfAPvAY/LI=;
        b=r5msyGbhjr2jn8LArgICNbFf4ZSzbpz/GOSCG1vGy9jsADXxtq/LL6LRKOzTb1TOeo
         BR/XTk96BTyUGwxTrilmlcA8WfLK7Zr/a4OFRdoTYKWDszMMH3797vFyFduUvpW3IAGr
         AG3B3Tb+yoBtQqDXGsfMwRO6aBKTo65WaTvyHIvN2M3qMPmI0Lr6mtONBbBvvM+90uSC
         DNjpgnGtYS9XRUD+Pnb4mOVYj9YRBdBr9sm4ggBIsNf7plFwNb8hikpGEdQWD4yNzQeN
         BlV+BX7GKhMEayOx+cTShCf17Zr5wmmDtBV83GNXC+rGNEuqv7iBXdHsWofUg7w3YOEW
         TNFA==
X-Forwarded-Encrypted: i=1; AJvYcCUm8mJ84z9iIcx9q9B2Qsp9qjJdaFhIrP+uUeypFtW/jLMP11xvMQJv7mxOM1h4a3PQdDcSQ7c0pNE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyON8YQ3oO5nxxdKWs3k2jedx+pVIJZWGAUU6pf2xqW6HXmt1hF
	R+NL+hJ0e+AtgsJtkRXQQMB8UYb+l5CrTsXyq5w5xPe57K6JdNInZjEUh1KgTvg=
X-Google-Smtp-Source: AGHT+IFuRXEgMJQyVgTkpVCiWPpSP5c6mjCPRc5aUvuNKyB9X04IRHQcuYb1JFKMLEnEn/FBjNg1mw==
X-Received: by 2002:a05:6402:34c6:b0:5cf:77e4:75c0 with SMTP id 4fb4d7f45d1cf-5cf77e47630mr2384164a12.30.1731599979513;
        Thu, 14 Nov 2024 07:59:39 -0800 (PST)
Message-ID: <c9a24b52-6498-41e9-aa20-a3cc5c2b1027@citrix.com>
Date: Thu, 14 Nov 2024 15:59:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-2-andrew.cooper3@citrix.com>
 <f0072d5d-8626-4708-91a8-503a33e99ec5@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <f0072d5d-8626-4708-91a8-503a33e99ec5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/11/2024 11:11 am, Jan Beulich wrote:
> On 12.11.2024 22:19, Andrew Cooper wrote:
>> With the tangle of logic starting to come under control, it is now plain to
>> see that parse_blob()'s side effect of re-gathering the signature/revision is
>> pointless.
>>
>> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
>> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().
> That's microcode_update_one() after 502478bc1d9d if I'm not mistaken.

I wouldn't necessarily say "after".

microcode_update_cpu() has been the way the APs and S3 get this
information for ages, whether its in the function directly, or in an
immediate callee.

>  In the
> course of determining that I'm afraid I also found the first sentence of this
> paragraph rather misleading than helpful:

Do you mean "The cpu_request_microcode() hooks need the signature only" ?


> While it is true what is being said,
> in both cases it is collect_cpu_info() that is being invoked, retrieving both
> signature and revision. IOW logic needing the signature only doesn't really
> matter here (and the sentence made me hunt for cases where we would read just
> the signature, aiming at verifying that leaving the revision field unset
> would indeed not be a problem).

It probably doesn't come as a surprise that I'm intending to rework
collect_cpu_info() entirely.Â  It's a mess.

The signature and platform flags are invariants for a CPU.Â  (In fact,
Platform Flags had better be the same for an entire system).Â  The
revision does change with type, but apply_microcode() keeps it up to date.

Yet we had logic which was throwing the details away and re-gathering
(which is quite expensive) for basically every microcode operation.


What I'm trying to express is "this information is collected once at the
start of day, and kept up to date, so collect_cpu_info() should not be
called under any other circumstance".

Perhaps I should just say that directly?



>>  For
>> good measure, the apply_microcode() hooks also keep the revision correct as
>> load attempts are made.
>>
>> This finally gets us down to a single call per CPU on boot / S3 resume, and no
>> calls during late-load hypercalls.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Preferably with the problematic sentence dropped or clarified:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 16:15:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 16:15:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836622.1252531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBcVU-0007B9-ID; Thu, 14 Nov 2024 16:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836622.1252531; Thu, 14 Nov 2024 16: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 1tBcVU-0007B2-Fa; Thu, 14 Nov 2024 16:15:44 +0000
Received: by outflank-mailman (input) for mailman id 836622;
 Thu, 14 Nov 2024 16:15: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBcVT-0007Aw-0Y
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 16:15:43 +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 afc81213-a2a3-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 17:15:38 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-431ac30d379so7336815e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 08:15: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-432dab807d4sm25107555e9.21.2024.11.14.08.15.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 08:15: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: afc81213-a2a3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFmYzgxMjEzLWEyYTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjAwOTM4LjY1MDA4NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731600938; x=1732205738; 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=wmyF5U87SHwLdOOyi3+53FThNvK1KH77EV+z6r5it2A=;
        b=Pb5AC5UMSYiTw8iK3owrifP2azA50yfDMkzWGHQfMlYQQjlt/CVY8Q2v3Hy0jMILmp
         iC2YYBX0Ab0hO3kU/Xs2YVaLwgyiiRdkN9UfG9YbVtbXhdNu0AqzeKWzwOJ8xiNwL1oO
         mfUmgC+6hMTetOMRYQQQBmMmK9KIsS4FPRAWMX6xegxaq9S1fYMRJJFyEak2JRAHCK7q
         MjX65veHpMd7JBJq2dwS+6Gg/98TRpAKZ4XB4UcfA9bCn6pla10G8iaIQmBYfKGZvLB6
         vFnl6Q6aEfbnNUyYRQdwrGcEVM9kKIHlfhoNWTVZtryXnjj9KjfVY3FgVU47sBBYylM+
         TtgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731600938; x=1732205738;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wmyF5U87SHwLdOOyi3+53FThNvK1KH77EV+z6r5it2A=;
        b=jbcd8jFCxKN1p2Acsp01005Uqo4orK1AnR7rQl6WV94fUWa5AgdAp2LNbj+GMLB0df
         Tnb4i2K3NSHuh8hgJ3+hXAYPnWHkzDVnDqCCf+qLsmXZTpEPEWwtrTYlsBEYkegt3Kmv
         TYk4uHQGQgjnpyosTOThtisPK/wrn9OzFUeVIY2CrOqbP3M0jOIh4D9WowMTH5AxmU4X
         haIEeKPH/l/jCIGIqegKZlZzt0eBrijW1fOC7qaoTlEMDJGxjL6uIgyAIaytxf5JNkBk
         mFIZYVNplwpvzGG4u26KmSBfe46R4j2wn0GO1HvxCCa1187pePqxutWCdx1F+Uw7woYN
         gRWQ==
X-Forwarded-Encrypted: i=1; AJvYcCWJ9gRFj/cP0wnGRKnVAYnubpgGtfySfhN/IRu5laNnSgNM9uMO1LeSzQvLh037vt9wJjA4nRm1lfM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzodImuGScB1+4P+C9atRLMymqSD4mowDj9s4jejEvdBJUKlRxs
	e/YgDDlDIEfn9C4qjynA5tQLdGcrLrYHdzlp3G9ZkvhqX2743XC2UVOinxAz3A==
X-Google-Smtp-Source: AGHT+IE18pzf0cvC8Qnh3NvD8/SSwEVF8MZsC7sNcgSh/Kd8VkgW2U3wPYwdFpusPXtbwpVzo0xQSg==
X-Received: by 2002:a05:600c:a4c:b0:431:5df7:b310 with SMTP id 5b1f17b1804b1-432b74ff9b1mr218663445e9.8.1731600920711;
        Thu, 14 Nov 2024 08:15:20 -0800 (PST)
Message-ID: <1faff790-3909-4de4-9283-af001238c7d5@suse.com>
Date: Thu, 14 Nov 2024 17:15:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
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: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-2-andrew.cooper3@citrix.com>
 <f0072d5d-8626-4708-91a8-503a33e99ec5@suse.com>
 <c9a24b52-6498-41e9-aa20-a3cc5c2b1027@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: <c9a24b52-6498-41e9-aa20-a3cc5c2b1027@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2024 16:59, Andrew Cooper wrote:
> On 14/11/2024 11:11 am, Jan Beulich wrote:
>> On 12.11.2024 22:19, Andrew Cooper wrote:
>>> With the tangle of logic starting to come under control, it is now plain to
>>> see that parse_blob()'s side effect of re-gathering the signature/revision is
>>> pointless.
>>>
>>> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
>>> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().
>> That's microcode_update_one() after 502478bc1d9d if I'm not mistaken.
> 
> I wouldn't necessarily say "after".

My point was merely that there's no microcode_update_cpu() anymore, as of
that commit.

> microcode_update_cpu() has been the way the APs and S3 get this
> information for ages, whether its in the function directly, or in an
> immediate callee.
> 
>>  In the
>> course of determining that I'm afraid I also found the first sentence of this
>> paragraph rather misleading than helpful:
> 
> Do you mean "The cpu_request_microcode() hooks need the signature only" ?

Yes.

>> While it is true what is being said,
>> in both cases it is collect_cpu_info() that is being invoked, retrieving both
>> signature and revision. IOW logic needing the signature only doesn't really
>> matter here (and the sentence made me hunt for cases where we would read just
>> the signature, aiming at verifying that leaving the revision field unset
>> would indeed not be a problem).
> 
> It probably doesn't come as a surprise that I'm intending to rework
> collect_cpu_info() entirely.Â  It's a mess.
> 
> The signature and platform flags are invariants for a CPU.Â  (In fact,
> Platform Flags had better be the same for an entire system).Â  The
> revision does change with type, but apply_microcode() keeps it up to date.
> 
> Yet we had logic which was throwing the details away and re-gathering
> (which is quite expensive) for basically every microcode operation.
> 
> 
> What I'm trying to express is "this information is collected once at the
> start of day, and kept up to date, so collect_cpu_info() should not be
> called under any other circumstance".
> 
> Perhaps I should just say that directly?

That may be a good thing, yes. The main point still being though that the
way that 1st sentence in the paragraph was written, it ended up confusing.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 16:30:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 16:30:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836633.1252542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBcjy-0001ft-OU; Thu, 14 Nov 2024 16:30:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836633.1252542; Thu, 14 Nov 2024 16: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 1tBcjy-0001fm-M0; Thu, 14 Nov 2024 16:30:42 +0000
Received: by outflank-mailman (input) for mailman id 836633;
 Thu, 14 Nov 2024 16:30: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=mvJx=SJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBcjw-0001eP-HK
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 16:30:40 +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 c6db341f-a2a5-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 17:30:36 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so1079847a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 08:30:36 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df50041sm79485766b.43.2024.11.14.08.30.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 08:30: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: c6db341f-a2a5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM2ZGIzNDFmLWEyYTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjAxODM2LjMzOTA4Nywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731601836; x=1732206636; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=+RDqCwT/5xDjxt4YaAMNal3TIe2cseSvdisq3H/R+dc=;
        b=RA7wHeXfBkXyGBS0smfbe3rNlTwFPXl+MhSwHuKoVxSTnUkdtspxG10A9aTLTdZLmc
         i4RKWdejA7hfxrVvroMmt2zcoGSSJF4NGgb+GuoMSuvNcXkO9seg6znQnUKfLYfQV+L0
         c9Q9vU0Ib1FKHUzUhhMTN0/Is/ZzvYaMJYBOJPQZkGNkx/8yHY4OFxrddpTQPC9TkYSd
         zN/ndoo9b+vhG/iAi7qM60hJTpnpy/+fK8P4+ZhLXqjAndGOo7fk5ehxdY5ODDgz4UMt
         owBXjaTP8kRH7MOMut7O8iJHjj3S9cfLrS9jfFdS3Kp8gND9c19cOWemMdZ98Yw21xOo
         1urQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731601836; x=1732206636;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+RDqCwT/5xDjxt4YaAMNal3TIe2cseSvdisq3H/R+dc=;
        b=W2LA5WTR4ikkAEhGk/kGvgOao6oJOU7Yc/lQDpm7f0QEeT7l1kI/ciEzsXLlV/aOPb
         xpbar+GBt2NlQ7SoKv/ct8u2Tf96Jl9yLonh3zEHwJrWePO/vULmJrau6eEUjZN0QSzR
         tDmevD0ITIC0Q7Qd0WqmfouVjgNhlIPjG8G/+GCJDzslbVZXviLHPyWAutskHLZ2EswO
         f3CmrZun3F23es3VkL9tiGgGvDr6sHt1WXz5YsxcY2x2Lt6TJe6FcvBYS2jRQQQheaGo
         P/g1KnJNCNl68CXv0He7kGfQ4UUSH+oawJ2zd3C7ogGr8WkUS3aNd70DDH7GtUIPDakK
         S+KA==
X-Forwarded-Encrypted: i=1; AJvYcCVdKbzRj7VbuleBg7Xqy5RSLSBzGh78zvhceSJxNrq3GI8c8CGJP1ZV/5T2ctvqwe6eNQmZvXGLCJE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKE/WH6tu+CbN54LZwSszNqmnWB+6fKAZCtDTj6U3mIRDIqzi1
	QJutx62n8OnyJjMG5oel53qLqg6JJv7o0mLKMBzUwSEoa6ZVABcg
X-Google-Smtp-Source: AGHT+IEwwqX8uStyHgcdyECJUQBIWVJQrwEj8Hd8jH6eQTcJHEHZsxF653irw5IiIrDKB8dxSASfpg==
X-Received: by 2002:a17:907:a4b:b0:a99:fc3d:7c76 with SMTP id a640c23a62f3a-a9ef001915amr2485163566b.37.1731601835385;
        Thu, 14 Nov 2024 08:30:35 -0800 (PST)
Message-ID: <b71986cbc487b68a8d6b31162bcefb8b3b7c2648.camel@gmail.com>
Subject: Re: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 14 Nov 2024 17:30:33 +0100
In-Reply-To: <7aaa8eea-247f-43f5-9777-2a3431e0c1a0@suse.com>
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
	 <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
	 <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
	 <aec35a326656a2b976b584ea5467f54cd87ca6d6.camel@gmail.com>
	 <7aaa8eea-247f-43f5-9777-2a3431e0c1a0@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Thu, 2024-11-14 at 10:49 +0100, Jan Beulich wrote:
> > > > @@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t
> > > > fdt_paddr)
> > > > =C2=A0
> > > > =C2=A0=C2=A0=C2=A0=C2=A0 return fdt_virt;
> > > > =C2=A0}
> > > > +
> > > > +vaddr_t __ro_after_init directmap_virt_start =3D
> > > > DIRECTMAP_VIRT_START;
> > > > +
> > > > +struct page_info *__ro_after_init frametable_virt_start =3D
> > > > frame_table;
> > > > +
> > > > +#ifndef CONFIG_RISCV_32
> > > > +
> > > > +/* Map a frame table to cover physical addresses ps through pe
> > > > */
> > > > +static void __init setup_frametable_mappings(paddr_t ps,
> > > > paddr_t
> > > > pe)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 static mfn_t __initdata frametable_mfn_start =
=3D
> > > > INVALID_MFN_INITIALIZER;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
> > > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE)=
;
> > > > +=C2=A0=C2=A0=C2=A0 unsigned long nr_mfns =3D PFN_DOWN(aligned_pe -=
 aligned_ps);
> > > > +=C2=A0=C2=A0=C2=A0 unsigned long frametable_size =3D nr_mfns *
> > > > sizeof(*frame_table);
> > > > +=C2=A0=C2=A0=C2=A0 mfn_t base_mfn;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 if ( mfn_eq(frametable_mfn_start, INVALID_MFN) =
)
> > > > +=C2=A0=C2=A0=C2=A0 {
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frametable_mfn_start =
=3D maddr_to_mfn(aligned_ps);
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frametable_virt_start -=
=3D paddr_to_pfn(aligned_ps);
> > > > +=C2=A0=C2=A0=C2=A0 }
> > > > +=C2=A0=C2=A0=C2=A0 else
> > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("%s shouldn't be =
called twice\n", __func__);
> > >=20
> > > As said on the v4 thread - I don't think this is needed. Aiui
> > > Misra
> > > would
> > > actually dislike it, as it's unreachable code. Just to re-
> > > iterate: My
> > > complaint there wasn't about this missing check, but about the
> > > function
> > > partly giving the impression of expecting to be called more than
> > > once.
> > I=E2=80=99ll revert this check, then. Would it be better=E2=80=94and su=
fficient=E2=80=94to
> > add
> > a comment before setup_frametable_mappings() indicating that this
> > function should only be called once, to avoid any impression that
> > it
> > might be expected to be called multiple times?
>=20
> You can add such a comment if you like, we we have many functions of
> this
> kind. The important aspect - as said before - is that the function
> should
> not - nowhere - give the impression of possibly expecting to be
> called
> more than once.
Then I am not 100% sure how to deal with this impression specifically
in the case of setup_frametable_mapping() which should be called once.

The only options I have in my head are:
   Option 1:
       static void __init setup_frametable_mappings(paddr_t ps, paddr_t
      pe)
       {
      +    static bool __read_mostly once;
      +
           paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
           paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE);
           unsigned long nr_mfns =3D PFN_DOWN(aligned_pe - aligned_ps);
           unsigned long frametable_size =3D nr_mfns *
      sizeof(*frame_table);
           mfn_t base_mfn;
      =20
      +    ASSERT(!once);
      +
      +    once =3D true;
      +
           frametable_virt_start -=3D paddr_to_pfn(aligned_ps);
      =20
           if ( frametable_size > FRAMETABLE_SIZE )


   Option 2:
  =20
      -struct page_info *__ro_after_init frametable_virt_start =3D
      frame_table;
      +struct page_info *__ro_after_init frametable_virt_start;
      =20
       #ifndef CONFIG_RISCV_32
      =20
      @@ -442,7 +442,9 @@ static void __init
      setup_frametable_mappings(paddr_t ps, paddr_t pe)
           unsigned long frametable_size =3D nr_mfns *
   sizeof(*frame_table);
           mfn_t base_mfn;
      =20
      -    frametable_virt_start -=3D paddr_to_pfn(aligned_ps);
      +    ASSERT(!frametable_virt_start);
      +
      +    frametable_virt_start =3D frame_table -
   paddr_to_pfn(aligned_ps);
      =20
           if ( frametable_size > FRAMETABLE_SIZE )
               panic("The frametable cannot cover [%#"PRIpaddr",
      %#"PRIpaddr")\n",
  =20
~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 16:43:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 16:43:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836641.1252552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBcwH-0003Xr-Qr; Thu, 14 Nov 2024 16:43:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836641.1252552; Thu, 14 Nov 2024 16:43: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 1tBcwH-0003Xk-O3; Thu, 14 Nov 2024 16:43:25 +0000
Received: by outflank-mailman (input) for mailman id 836641;
 Thu, 14 Nov 2024 16:43: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=81on=SJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBcwH-0003Xc-Ce
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 16:43:25 +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 8eb51d2a-a2a7-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 17:43:21 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-432d86a3085so7932445e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 08:43: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-3821ae16113sm1949373f8f.71.2024.11.14.08.43.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 08:43: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: 8eb51d2a-a2a7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhlYjUxZDJhLWEyYTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjAyNjAxLjE1MTQzMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731602600; x=1732207400; 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=OILP+Pjkp28lQnH/NdC57XOSItU11KXxJDCMDyQ9+W0=;
        b=HhaFRC28zC4Fmvi5TfPkOo2uhdnFHv48M/UzA0V9P8u00P3IVPCpAuXh28inJTVd/E
         5oPv/wBwRqiD3WYlZOT9PeIzWqWa34Xm+qDt3WxgjP8IhK3ddir65xQ9wEY7r/XksNNJ
         8782U/aGjNMlWgbo3Qn9u5A6FXI3fzucT8S7vHBb/uiQaJ61QOcmZZYRK2f1mANppktY
         SGtKF0msyUnsoi9sfr5HBZa5IT7dypZ/9NsPT59U+bNylRLPQr0CyYxP2b0g8k/su7Tu
         O4Rr7Q1YFYLaa+d8sHYeDb49u2/CDFM4PW9uhLYgC2N94CjW80jsIYqLIcjEDOADeiFa
         xQAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731602600; x=1732207400;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OILP+Pjkp28lQnH/NdC57XOSItU11KXxJDCMDyQ9+W0=;
        b=T1WB+raFzabAGy5eX920l9QPnEICcXDtLpxr4Dk7KITHuZfH0nlcRq9dQUIbLa6yzD
         X/HoG/chNwS8LYmtRuZF/dtLZlAHY/e2AK57wvp1hSNFe865yjvo1+sLxxpCjhLVggHz
         jEd1ecvZa8SN8p3ADqb7+jItW22bMiyLV4dPwV58Jh4XedYj4s724GX28fIfYqVzBVyI
         qni3ECJtPbJTw751W1Tz/QPFyDGuAujqokbWkh8hHCMVWBLoG5VOnLAYlFr8KrfaR33H
         jKpttuhzsLEemLgAYxyLWehIffTSlEd7vdNW1ChiQSZNeCcNYBKeEX6qzjOaXpB6YeIu
         HIKQ==
X-Forwarded-Encrypted: i=1; AJvYcCVFvm6wXMrg7uSWzFYjhizDF/TuvmbFFbV4CJkL86gpnkb06rQ2GvgJfaR8sK9YDEfNn5Q2r4sY4NI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywux0du3ExPtZ8mjkxzrEAY9gJUUWRfRhuK31ZohhkH+3wUlv0C
	V88Bp6fD1Yr8H9UHjKeyywxzs+esuDeBg/jtirp43tfM+/Xou5/spmRC8vWUMQ==
X-Google-Smtp-Source: AGHT+IHyvWw7beFlQPWEgoisl4zjURVsq7L9F3OFRUmSuleN343FGVWdvO0+/UYIXrixZoQumKmGqw==
X-Received: by 2002:a05:6000:400c:b0:37d:50ed:daa8 with SMTP id ffacd0b85a97d-38218502c9dmr2735133f8f.18.1731602600402;
        Thu, 14 Nov 2024 08:43:20 -0800 (PST)
Message-ID: <72441bad-5d56-4174-859f-d2d612c4134c@suse.com>
Date: Thu, 14 Nov 2024 17:43:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
To: 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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
 <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
 <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
 <aec35a326656a2b976b584ea5467f54cd87ca6d6.camel@gmail.com>
 <7aaa8eea-247f-43f5-9777-2a3431e0c1a0@suse.com>
 <b71986cbc487b68a8d6b31162bcefb8b3b7c2648.camel@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: <b71986cbc487b68a8d6b31162bcefb8b3b7c2648.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2024 17:30, oleksii.kurochko@gmail.com wrote:
> On Thu, 2024-11-14 at 10:49 +0100, Jan Beulich wrote:
>>>>> @@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t
>>>>> fdt_paddr)
>>>>> Â 
>>>>> Â Â Â Â  return fdt_virt;
>>>>> Â }
>>>>> +
>>>>> +vaddr_t __ro_after_init directmap_virt_start =
>>>>> DIRECTMAP_VIRT_START;
>>>>> +
>>>>> +struct page_info *__ro_after_init frametable_virt_start =
>>>>> frame_table;
>>>>> +
>>>>> +#ifndef CONFIG_RISCV_32
>>>>> +
>>>>> +/* Map a frame table to cover physical addresses ps through pe
>>>>> */
>>>>> +static void __init setup_frametable_mappings(paddr_t ps,
>>>>> paddr_t
>>>>> pe)
>>>>> +{
>>>>> +Â Â Â  static mfn_t __initdata frametable_mfn_start =
>>>>> INVALID_MFN_INITIALIZER;
>>>>> +
>>>>> +Â Â Â  paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>>>>> +Â Â Â  paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>>>>> +Â Â Â  unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
>>>>> +Â Â Â  unsigned long frametable_size = nr_mfns *
>>>>> sizeof(*frame_table);
>>>>> +Â Â Â  mfn_t base_mfn;
>>>>> +
>>>>> +Â Â Â  if ( mfn_eq(frametable_mfn_start, INVALID_MFN) )
>>>>> +Â Â Â  {
>>>>> +Â Â Â Â Â Â Â  frametable_mfn_start = maddr_to_mfn(aligned_ps);
>>>>> +
>>>>> +Â Â Â Â Â Â Â  frametable_virt_start -= paddr_to_pfn(aligned_ps);
>>>>> +Â Â Â  }
>>>>> +Â Â Â  else
>>>>> +Â Â Â Â Â Â Â  panic("%s shouldn't be called twice\n", __func__);
>>>>
>>>> As said on the v4 thread - I don't think this is needed. Aiui
>>>> Misra
>>>> would
>>>> actually dislike it, as it's unreachable code. Just to re-
>>>> iterate: My
>>>> complaint there wasn't about this missing check, but about the
>>>> function
>>>> partly giving the impression of expecting to be called more than
>>>> once.
>>> Iâ€™ll revert this check, then. Would it be betterâ€”and sufficientâ€”to
>>> add
>>> a comment before setup_frametable_mappings() indicating that this
>>> function should only be called once, to avoid any impression that
>>> it
>>> might be expected to be called multiple times?
>>
>> You can add such a comment if you like, we we have many functions of
>> this
>> kind. The important aspect - as said before - is that the function
>> should
>> not - nowhere - give the impression of possibly expecting to be
>> called
>> more than once.
> Then I am not 100% sure how to deal with this impression specifically
> in the case of setup_frametable_mapping() which should be called once.
> 
> The only options I have in my head are:

Let's try to avoid adding such extra baggage. In the v5 form it looked
reasonably okay, iirc.

Jan

>    Option 1:
>        static void __init setup_frametable_mappings(paddr_t ps, paddr_t
>       pe)
>        {
>       +    static bool __read_mostly once;
>       +
>            paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>            paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>            unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
>            unsigned long frametable_size = nr_mfns *
>       sizeof(*frame_table);
>            mfn_t base_mfn;
>        
>       +    ASSERT(!once);
>       +
>       +    once = true;
>       +
>            frametable_virt_start -= paddr_to_pfn(aligned_ps);
>        
>            if ( frametable_size > FRAMETABLE_SIZE )
> 
> 
>    Option 2:
>    
>       -struct page_info *__ro_after_init frametable_virt_start =
>       frame_table;
>       +struct page_info *__ro_after_init frametable_virt_start;
>        
>        #ifndef CONFIG_RISCV_32
>        
>       @@ -442,7 +442,9 @@ static void __init
>       setup_frametable_mappings(paddr_t ps, paddr_t pe)
>            unsigned long frametable_size = nr_mfns *
>    sizeof(*frame_table);
>            mfn_t base_mfn;
>        
>       -    frametable_virt_start -= paddr_to_pfn(aligned_ps);
>       +    ASSERT(!frametable_virt_start);
>       +
>       +    frametable_virt_start = frame_table -
>    paddr_to_pfn(aligned_ps);
>        
>            if ( frametable_size > FRAMETABLE_SIZE )
>                panic("The frametable cannot cover [%#"PRIpaddr",
>       %#"PRIpaddr")\n",
>    
> ~ Oleksii
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 16:50:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 16:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836649.1252562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBd2j-0004uF-Gd; Thu, 14 Nov 2024 16:50:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836649.1252562; Thu, 14 Nov 2024 16:50: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 1tBd2j-0004tk-Cb; Thu, 14 Nov 2024 16:50:05 +0000
Received: by outflank-mailman (input) for mailman id 836649;
 Thu, 14 Nov 2024 16:50: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=mvJx=SJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBd2i-0004eW-7k
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 16:50:04 +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 7cc54737-a2a8-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 17:50:00 +0100 (CET)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2fc968b3545so9088961fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 08:50:00 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff59763e25sm2363581fa.10.2024.11.14.08.49.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 08: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: 7cc54737-a2a8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmIiLCJoZWxvIjoibWFpbC1sajEteDIyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdjYzU0NzM3LWEyYTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjAzMDAwLjQ0NjU4MSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731603000; x=1732207800; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=B9PT6GMOP+YA22RZDUnLBnDoM0NEFM1Ib1xInVaQ9nA=;
        b=XyA8sUltSE/64uzlhFtB/1gmUzRYixm8nnAuWchJD97lfCC3Pbb21oMc3M7Dbq31Ea
         FijYfSUHTbUgXemfjzdCdyTbi9fZ65bztR58bRzBcJtnHGy3EYRg6n3zyeKl/yb4Xv9x
         1KT1G/fiqPiOnzTSc2ahOBislSBvpXudPEY81pMWmEFYgI7jd5OGXHkziI3Ff2LQ1PPZ
         8HdOrmFaIeShdJgblPAjOdpNviCO6KHlubG+zaU0itt6uCv97KYRePRWrKBAR6LCXpWH
         ApV6/OmFHu9lexrqjuhCbMlaW/+rrCcHBW57kGkRI5Mx6/tZKoHHrT5SJGOnp5zDE7Ni
         FNgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731603000; x=1732207800;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=B9PT6GMOP+YA22RZDUnLBnDoM0NEFM1Ib1xInVaQ9nA=;
        b=GlosUHdqHEy5yORywPq1yYNKuiUmOcVazIAVXhzs7chb7BJ1oLzalJVZibz/VwvEa7
         UB8+G4Oxb02+G33tUqI5J/gcG9YGrrtfAlH4Kj53cZENj2cv0TCSbFOSB/gsVuiGp5qn
         UcY1Gkh/O9+DkZHxmmclLpLdf4orgTvQyETibacBUu5FEwp21rhHvHfYgEQQegHrbCFE
         p+sZEMn6g0mOsPEx68Yx0ka2DNhb3A0G85PtqnHLJ78WPV+8+IgqeE8uORTxZ1A87uR/
         awFb4jOCDScvojU82N6bzULEaxilpRUbJXNLLltFRuCnBLu5u5YSIfGieLX2Bq/R1ZBA
         5zew==
X-Forwarded-Encrypted: i=1; AJvYcCWOkQIVv7RMv83qZqHGSmG2f/GcM4apl5fDXkmQiQW7KXC1njtbzAhDJjnbHkNFog0zIP4HTVrwJbI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyApxS7gqlU/OhOmunyWb2O3oBGPkLe2FAE4ingC75WeA5+bN+s
	jmc8B0/KmNGXaRGfKlSnjDZDvY2Co94RnSiAbRAOJ6F4OB5rlY7Q
X-Google-Smtp-Source: AGHT+IHQ4Gt7fZ5iEUsX6gv/GeEyecZgt7FMPTO4m5r36eR2Tt6C4JhZPVYGKKwQfG/GVqLaNxIBfA==
X-Received: by 2002:a2e:b8c1:0:b0:2fb:60d8:7445 with SMTP id 38308e7fff4ca-2ff4c597749mr46235591fa.6.1731602999656;
        Thu, 14 Nov 2024 08:49:59 -0800 (PST)
Message-ID: <7555444c768edccee597dbb837edfe54a539722c.camel@gmail.com>
Subject: Re: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Thu, 14 Nov 2024 17:49:58 +0100
In-Reply-To: <b71986cbc487b68a8d6b31162bcefb8b3b7c2648.camel@gmail.com>
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
		 <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
		 <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
		 <aec35a326656a2b976b584ea5467f54cd87ca6d6.camel@gmail.com>
		 <7aaa8eea-247f-43f5-9777-2a3431e0c1a0@suse.com>
	 <b71986cbc487b68a8d6b31162bcefb8b3b7c2648.camel@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Thu, 2024-11-14 at 17:30 +0100, oleksii.kurochko@gmail.com wrote:
> On Thu, 2024-11-14 at 10:49 +0100, Jan Beulich wrote:
> > > > > @@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t
> > > > > fdt_paddr)
> > > > > =C2=A0
> > > > > =C2=A0=C2=A0=C2=A0=C2=A0 return fdt_virt;
> > > > > =C2=A0}
> > > > > +
> > > > > +vaddr_t __ro_after_init directmap_virt_start =3D
> > > > > DIRECTMAP_VIRT_START;
> > > > > +
> > > > > +struct page_info *__ro_after_init frametable_virt_start =3D
> > > > > frame_table;
> > > > > +
> > > > > +#ifndef CONFIG_RISCV_32
> > > > > +
> > > > > +/* Map a frame table to cover physical addresses ps through
> > > > > pe
> > > > > */
> > > > > +static void __init setup_frametable_mappings(paddr_t ps,
> > > > > paddr_t
> > > > > pe)
> > > > > +{
> > > > > +=C2=A0=C2=A0=C2=A0 static mfn_t __initdata frametable_mfn_start =
=3D
> > > > > INVALID_MFN_INITIALIZER;
> > > > > +
> > > > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE)=
;
> > > > > +=C2=A0=C2=A0=C2=A0 paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZ=
E);
> > > > > +=C2=A0=C2=A0=C2=A0 unsigned long nr_mfns =3D PFN_DOWN(aligned_pe=
 -
> > > > > aligned_ps);
> > > > > +=C2=A0=C2=A0=C2=A0 unsigned long frametable_size =3D nr_mfns *
> > > > > sizeof(*frame_table);
> > > > > +=C2=A0=C2=A0=C2=A0 mfn_t base_mfn;
> > > > > +
> > > > > +=C2=A0=C2=A0=C2=A0 if ( mfn_eq(frametable_mfn_start, INVALID_MFN=
) )
> > > > > +=C2=A0=C2=A0=C2=A0 {
> > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frametable_mfn_start =
=3D maddr_to_mfn(aligned_ps);
> > > > > +
> > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frametable_virt_start=
 -=3D paddr_to_pfn(aligned_ps);
> > > > > +=C2=A0=C2=A0=C2=A0 }
> > > > > +=C2=A0=C2=A0=C2=A0 else
> > > > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("%s shouldn't b=
e called twice\n", __func__);
> > > >=20
> > > > As said on the v4 thread - I don't think this is needed. Aiui
> > > > Misra
> > > > would
> > > > actually dislike it, as it's unreachable code. Just to re-
> > > > iterate: My
> > > > complaint there wasn't about this missing check, but about the
> > > > function
> > > > partly giving the impression of expecting to be called more
> > > > than
> > > > once.
> > > I=E2=80=99ll revert this check, then. Would it be better=E2=80=94and
> > > sufficient=E2=80=94to
> > > add
> > > a comment before setup_frametable_mappings() indicating that this
> > > function should only be called once, to avoid any impression that
> > > it
> > > might be expected to be called multiple times?
> >=20
> > You can add such a comment if you like, we we have many functions
> > of
> > this
> > kind. The important aspect - as said before - is that the function
> > should
> > not - nowhere - give the impression of possibly expecting to be
> > called
> > more than once.
> Then I am not 100% sure how to deal with this impression specifically
> in the case of setup_frametable_mapping() which should be called
> once.
>=20
> The only options I have in my head are:
> =C2=A0=C2=A0 Option 1:
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 static void __init setup_frametable_=
mappings(paddr_t ps,
> paddr_t
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pe)
> =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 static bool __read_mos=
tly once;
> =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 paddr_t alig=
ned_ps =3D ROUNDUP(ps, PAGE_SIZE);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 paddr_t alig=
ned_pe =3D ROUNDDOWN(pe, PAGE_SIZE);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned lon=
g nr_mfns =3D PFN_DOWN(aligned_pe - aligned_ps);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned lon=
g frametable_size =3D nr_mfns *
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sizeof(*frame_table);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mfn_t base_m=
fn;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +=C2=A0=C2=A0=C2=A0 ASSERT(!once);
> =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 once =3D true;
> =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 frametable_v=
irt_start -=3D paddr_to_pfn(aligned_ps);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( frameta=
ble_size > FRAMETABLE_SIZE )
>=20
>=20
> =C2=A0=C2=A0 Option 2:
> =C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 -struct page_info *__ro_after_init frameta=
ble_virt_start =3D
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frame_table;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +struct page_info *__ro_after_init frameta=
ble_virt_start;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #ifndef CONFIG_RISCV_32
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 @@ -442,7 +442,9 @@ static void __init
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 setup_frametable_mappings(paddr_t ps, padd=
r_t pe)
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unsigned lon=
g frametable_size =3D nr_mfns *
> =C2=A0=C2=A0 sizeof(*frame_table);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mfn_t base_m=
fn;
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 -=C2=A0=C2=A0=C2=A0 frametable_virt_start =
-=3D paddr_to_pfn(aligned_ps);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +=C2=A0=C2=A0=C2=A0 ASSERT(!frametable_vir=
t_start);
> =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 frametable_virt_start =
=3D frame_table -
> =C2=A0=C2=A0 paddr_to_pfn(aligned_ps);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( frameta=
ble_size > FRAMETABLE_SIZE )
> =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 panic("The frametable cannot cover [%#"PRIpaddr",
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 %#"PRIpaddr")\n",
> =C2=A0=C2=A0=20
Or your intention was that I can drop any check at all in
setup_frametable_mappings():
   static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
   {
       paddr_t aligned_ps =3D ROUNDUP(ps, PAGE_SIZE);
       paddr_t aligned_pe =3D ROUNDDOWN(pe, PAGE_SIZE);
       unsigned long nr_mfns =3D PFN_DOWN(aligned_pe - aligned_ps);
       unsigned long frametable_size =3D nr_mfns * sizeof(*frame_table);
       mfn_t base_mfn;
  =20
       frametable_virt_start -=3D paddr_to_pfn(aligned_ps);
  =20
   ...
   }
  =20
and it should be enough as this function by its nature shouldn't be called
twice.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 17:18:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 17:18:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836666.1252571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBdUI-0008Ta-MH; Thu, 14 Nov 2024 17:18:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836666.1252571; Thu, 14 Nov 2024 17:18: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 1tBdUI-0008TT-Je; Thu, 14 Nov 2024 17:18:34 +0000
Received: by outflank-mailman (input) for mailman id 836666;
 Thu, 14 Nov 2024 17: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBdUH-0008TN-6d
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 17:18:33 +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 75e4ad41-a2ac-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 18:18:26 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5c96b2a10e1so1494383a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 09:18:26 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79c1de2bsm740642a12.80.2024.11.14.09.18.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 09:18: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: 75e4ad41-a2ac-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc1ZTRhZDQxLWEyYWMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjA0NzA2Ljk2NDE3NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731604706; x=1732209506; 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=j7aGhMFrep/wMBloQEAhRny1sYlfYC1klYjHrWMuoxA=;
        b=oqdDuEapCJPQiTaotvgGo3Fr5rgqrmWysqotJKQlUwFgcFuG8h5sIveKEgsmXZow/p
         e+g9WWMmJPowdkDbFw+16BOEe8UrD0mUyMXW1yZqP2ajOwma02ujZQoFXPFwfEv/NFmc
         MI3CUpJAbBQHtbTgRpUff+iMO0dcUwbU/yGNQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731604706; x=1732209506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j7aGhMFrep/wMBloQEAhRny1sYlfYC1klYjHrWMuoxA=;
        b=W6u9KpRwIpFDr0YKxB2E9iFYXVWpWdqVXJNjINFMUnUa3JCtmQO4lKZyTKq0nWrFNo
         EUv4XCWLzYxs3dhNDL81kDGGhImUhqgpb7m5lr19Ls/tLzkceMekEwV7ddgbAc1O78J+
         pljoVFr6X+RheZCfdvnAYKS9lWfjiVYAsxXKYc0QV9Lq/uaO79tOvZjyFpc6mnMlmjTs
         N867jOYe8veiBDtq7FaNf4am0OQ3hdJ1D9xWK592hflSCfdfjKnYHGXejTcRx4OzhUfc
         270rO0/HJqsn+fej1AUld+AjgTYaJhbe1fDu7lOFHLuWJeuu/ESJIjrVQQ9krpn5m6Qv
         4AnA==
X-Forwarded-Encrypted: i=1; AJvYcCWQdmbiJ1o49vZBmWWSWi4c6F4SIfmvD7aqojcLyPnvblAFuQX+kUuxPrTqRfEbJxf3JmJ9d0K9WDE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxizQ1CU9RSL7PiPzqY1Gn8uox6GYMcoms3Zos3Xu75UWHZNIAw
	92UBSi4ahgFp5zxk11+F9NXUd1mn+f3MfbaXilTzC9+sSu0iRL+X8z5VvijeSM/u1Zmaose4Ys0
	i
X-Google-Smtp-Source: AGHT+IGmbCusTDudYgDvjSrF4bFg63FffwvkoGDBJmFhsX4+IoHrD/81OUHWiLyOiVcY/v1O2MZHdw==
X-Received: by 2002:aa7:d99a:0:b0:5ce:ddd6:d100 with SMTP id 4fb4d7f45d1cf-5cf0a446545mr16816786a12.32.1731604706289;
        Thu, 14 Nov 2024 09:18:26 -0800 (PST)
Message-ID: <6b656171-0f61-4ef9-82e7-dfb43f2bdd4d@citrix.com>
Date: Thu, 14 Nov 2024 17:18:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] x86/ucode: Drop MIS_UCODE and
 microcode_match_result
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-4-andrew.cooper3@citrix.com>
 <aee06ffe-fb3d-41ab-a715-0bb057d4ca52@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <aee06ffe-fb3d-41ab-a715-0bb057d4ca52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/11/2024 11:41 am, Jan Beulich wrote:
> On 12.11.2024 22:19, Andrew Cooper wrote:
>> @@ -199,8 +198,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *patch)
>>      return equiv.id == patch->processor_rev_id;
>>  }
>>  
>> -static enum microcode_match_result cf_check compare_patch(
>> -    const struct microcode_patch *new, const struct microcode_patch *old)
>> +static int cf_check compare_patch(
>> +    const struct microcode_patch *old, const struct microcode_patch *new)
>>  {
> Let's hope we won't screw up a backport because of this swapping.

I wasn't going to start thinking about backports until the code gets
into a better state.

But if backports do happen, it will be all-or-nothing.Â  This code is far
too tangled.


That said, in this specific case, the only thing that would go wrong is
with Intel debug patches.Â  Even I've only had a handful of those in the
past 8 years.

> I'd like to ask to at least consider renaming at least the functions,
> perhaps also the hook pointer, perhaps simply by switching from singular
> to plural. This would then also avoid reviewers like me to go hunt for
> all uses of the function/hook, in an attempt to make sure none was left
> out when converting.

In the other series I've paused for a while, I have renamed some hooks
(along with related cleanup), but I'm undecided on this one.

One option is cmp(), or perhaps compare().

But, it occurs to me, another option would be is_newer().Â  We always
care about the operation one way around.

>
>> @@ -54,11 +47,17 @@ struct microcode_ops {
>>                             unsigned int flags);
>>  
>>      /*
>> -     * Given two patches, are they both applicable to the current CPU, and is
>> -     * new a higher revision than old?
>> +     * Given a current patch, and a proposed new patch, order them based on revision.
>> +     *
>> +     * This operation is not necessarily symmetrical.  In some cases, a debug
>> +     * "new" patch will always considered to be newer, on the expectation that
>> +     * whomever is using debug patches knows exactly what they're doing.
>>       */
>> -    enum microcode_match_result (*compare_patch)(
>> -        const struct microcode_patch *new, const struct microcode_patch *old);
>> +#define OLD_UCODE  -1
> Nit: I'm pretty sure Misra wants parentheses here.

Oh yes, so it does.Â  Rule 20.7 apparently.Â  Fine.

> Preferably with both (mechanical) adjustments:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 17:20:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 17:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836673.1252582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBdWN-0001f7-1Z; Thu, 14 Nov 2024 17:20:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836673.1252582; Thu, 14 Nov 2024 17: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 1tBdWM-0001f0-Uj; Thu, 14 Nov 2024 17:20:42 +0000
Received: by outflank-mailman (input) for mailman id 836673;
 Thu, 14 Nov 2024 17:20:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBdWL-0001dP-7r
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 17:20:41 +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 c3587dc9-a2ac-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 18:20:36 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9a0ef5179dso162861266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 09:20:36 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df26443sm84540466b.14.2024.11.14.09.20.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 09: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: c3587dc9-a2ac-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMzNTg3ZGM5LWEyYWMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjA0ODM2Ljg4MDU2MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731604836; x=1732209636; 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=QZcXlrMpxv4w8LpWq29ZIWB587Yx2gBsEg+bkONCJyQ=;
        b=sxP7YsdshpvG4oQL0BpoUe21UIJeMTPimuQbDJaYDlbRAt6iwySrZvekt0IKYH2XNu
         rBsoyhu2j/oBoLryXQVicG2aSxypm6MCzLLnOSSAlFAJv2EFDTmEFdjcb6yAMUGM23A4
         vIT5VU4BRGfJ6CpYIzP0ZeMnyY0dAI9tOw5BY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731604836; x=1732209636;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QZcXlrMpxv4w8LpWq29ZIWB587Yx2gBsEg+bkONCJyQ=;
        b=kIa/pjusZI0bJuelSyUytNpx5VjZvorJFo0T+dTZ63ehprSo3wwZgNKt5XvVDTUTBA
         9stMPecAEOl4sn5c2rLPGE8C3fVkVepl+v9tOITkxsd7ZegcGWn3n1ePC85XcE9d1TN1
         5AJKChiQCeMu4BePpfoxEl8S4AfMaTuX6+Qwph44XBlxPw6qqLGZ4bMrtBTTXn7kD2Nm
         +6vkFqk4vOfPe8+F/xzzciQIqVXto+4uwedEuzWuVs8ZW4aYPooHIDOPg8yHL7mqZsWW
         Bw370sR2nk1PQ8A9r1zUtW1O7Ox9/nPko4nPU7+iRfqFMZuAvSyRjRRE1GtaTdOiFCP7
         a28A==
X-Forwarded-Encrypted: i=1; AJvYcCXlDtmL5ocDhYq58FZgiRh3IST768kx0z1AkIbu/3qx4NAB4gYhw2y7v0DQCoUCLN459rAf236czco=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRNKfRmxDRA+UWr0r8+XqtJCxoEKnUmVehZADb5RJqwknFkSBz
	DkQTxm/R+IgSWusUauZoBn+LJSWvMA6Pn/BtjdqPySMXbmhHoOggVxLqbksFDSJwH+fW7+kHTA2
	I
X-Google-Smtp-Source: AGHT+IHFSqW/sWwfWBkwZfByD5EZbs3rT/lTOFyY3PeD/eiNZ0RnblAkNQ7MC0FWrvXDQwr58lv0xg==
X-Received: by 2002:a17:907:1c02:b0:a99:42e7:21f with SMTP id a640c23a62f3a-a9eefff178dmr2422708466b.37.1731604836294;
        Thu, 14 Nov 2024 09:20:36 -0800 (PST)
Message-ID: <76df49a7-9982-4f9f-a2a8-9b5f4ff023e5@citrix.com>
Date: Thu, 14 Nov 2024 17:20:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] x86/ucode: Remove the collect_cpu_info() call from
 parse_blob()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-2-andrew.cooper3@citrix.com>
 <f0072d5d-8626-4708-91a8-503a33e99ec5@suse.com>
 <c9a24b52-6498-41e9-aa20-a3cc5c2b1027@citrix.com>
 <1faff790-3909-4de4-9283-af001238c7d5@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1faff790-3909-4de4-9283-af001238c7d5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/11/2024 4:15 pm, Jan Beulich wrote:
> On 14.11.2024 16:59, Andrew Cooper wrote:
>> On 14/11/2024 11:11 am, Jan Beulich wrote:
>>> On 12.11.2024 22:19, Andrew Cooper wrote:
>>>> With the tangle of logic starting to come under control, it is now plain to
>>>> see that parse_blob()'s side effect of re-gathering the signature/revision is
>>>> pointless.
>>>>
>>>> The cpu_request_microcode() hooks need the signature only.  The BSP gathers
>>>> this in early_microcode_init(), the APs and S3 in microcode_update_cpu().
>>> That's microcode_update_one() after 502478bc1d9d if I'm not mistaken.
>> I wouldn't necessarily say "after".
> My point was merely that there's no microcode_update_cpu() anymore, as of
> that commit.

Oh.Â  I totally missed that.

I'll fix it, and make the rest of the paragraph a little bit more direct.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 17:23:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 17:23:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836680.1252592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBdZC-0002GR-Fb; Thu, 14 Nov 2024 17:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836680.1252592; Thu, 14 Nov 2024 17:23: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 1tBdZC-0002GK-Be; Thu, 14 Nov 2024 17:23:38 +0000
Received: by outflank-mailman (input) for mailman id 836680;
 Thu, 14 Nov 2024 17:23: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=6dbb=SJ=bounce.vates.tech=bounce-md_30504962.67363213.v1-410b407c407648fe8b6e847a0512f0b0@srs-se1.protection.inumbo.net>)
 id 1tBdZA-0002G9-W2
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 17:23:37 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2bcd869f-a2ad-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 18:23:33 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xq6SM0RpMz3sSNqc
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 17:23:31 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 410b407c407648fe8b6e847a0512f0b0; Thu, 14 Nov 2024 17:23: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: 2bcd869f-a2ad-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjJiY2Q4NjlmLWEyYWQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjA1MDEzLjM5OTA0Niwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3MzYzMjEzLnYxLTQxMGI0MDdjNDA3NjQ4ZmU4YjZlODQ3YTA1MTJmMGIwQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731605011; x=1731865511;
	bh=DmsYrpayBFhzQtv35fjH6zaL5aZ7ENyeE8wRS5J0E0o=;
	h=From:Subject:To:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=EpitENwucQ+6FmnOkxsPXr8J21JCmXIBLHBy9XAAfMPLO8NZCOLdup5HGWHSgr76S
	 bOIN9TuGH08OVKwBoyqDFPTnTqoqa8Hs3atHl1u2uYHNz6zSlDJoJGqez9kMTMD6L8
	 vcDMVW7c2+vVnIwsJDt8R8jbujSklH/ghGa/Bjdc2Hv8TZuHm0B2l1z8uxIA1SWffc
	 nLZHKYNCsxaeJcOJi197KR9dDZGbCR3tRUrnbsClmUhGy3i5rxahThvvblmF/u83fg
	 aAIcBOTqTA/Mf6iM3JIJVQldhf94/b5oaaoWfV/LuzN7PheXIhW9nd9C6SvKIULPw8
	 /2FTtUYcKx9gg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731605011; x=1731865511; i=anthony.perard@vates.tech;
	bh=DmsYrpayBFhzQtv35fjH6zaL5aZ7ENyeE8wRS5J0E0o=;
	h=From:Subject:To:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=uit5El4Lks22IissCITgT0biUaBMtq9KV/6Lu7Uz6CUCYOOYrZWtEZpJULH9g7zh1
	 Jjz4dJY+19P3UGnjXDKlCus/8VOxRgneDTFECkmpSHuwGaGmw1Rjjgk1MBcJWFl143
	 XCYsCT5cZJpJ9skFX1ch2gnQYF7R4ovCcA51uZFYgYX1pej87W0m5yLaACslvbR5Gh
	 DnhCQ+COq3eZjuY8wHMwqgkk4P+2AVNfxmFOe/zYWuIwVsmWBk4kkAYvG5/H9yEHMy
	 9H4tX/fjx8zgIrtoW/R+Nz0Tw6Q1b7LOfLY/DJAPxoXbUWhg9d5z0XgaoPWe5WBCzE
	 Sk1myuFTe80zQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Toolstack=20working=20group=20(replace=20libxl)?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731605010467
To: xen-devel@lists.xenproject.org, xen-users@lists.xenproject.org
Message-Id: <ZzYyEZcpA_JwOLIy@l14>
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.410b407c407648fe8b6e847a0512f0b0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241114:md
Date: Thu, 14 Nov 2024 17:23:31 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi,

I'd like to start a working group on the future of the toolstack.

The main objective would be have a way to managed domain that is common
to more project.

(The hidden goal would be to get rid of libxl, and replace it with a
new tool written in Rust.)

Right now, we have the CLI `xl` and the library `libxl` or
`libxenlight` that is promote upstream to be the way to create and
manage domains. But the reality is that `libxl` isn't really used to
it's full potential, or at all, by other projects to manage Xen guest.
`libvirt` does link with `libxl` but it doesn't use the asynchronous
API. Then, other project don't even use `libxl` and have a different
tool, e.g. `xenopsd` for XenServer / XCP-ng.

I've gather some more notes on the why and how on this page:
https://gitlab.com/xen-project/collab/wg-toolstack-refactoring/-/wikis/home
(There's more of my research notes in other wiki pages.)

What do you think about the initial goal in this home wiki page?
Did I miss something? Or shall we talk interface between libxl's
replacement and higher level guest management? (Likely an RPC)

I've created a mailing list where we can talk about it:
https://lists.xenproject.org/mailman/listinfo/wg-toolstack
wg-toolstack@lists.xenproject.org

And I've created a GitLab project where we can share more, use issue
or other features:
https://gitlab.com/xen-project/collab/wg-toolstack-refactoring

And at some point, we should have regular meeting.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 17:37:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 17:37:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836724.1252618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBdmE-0005GU-Tu; Thu, 14 Nov 2024 17:37:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836724.1252618; Thu, 14 Nov 2024 17:37: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 1tBdmE-0005GN-Qy; Thu, 14 Nov 2024 17:37:06 +0000
Received: by outflank-mailman (input) for mailman id 836724;
 Thu, 14 Nov 2024 17:37: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBdmD-0005GH-St
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 17:37:05 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e595420-a2af-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 18:37:01 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5cefc36c5d4so1187212a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 09:37:01 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e048f12sm85130066b.173.2024.11.14.09.37.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 09:37: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: 0e595420-a2af-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzEiLCJoZWxvIjoibWFpbC1lZDEteDUzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBlNTk1NDIwLWEyYWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjA1ODIxLjc3NjI5NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731605821; x=1732210621; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=EGj+Z30Hqt1k8+JcKfIqAX7vuAmSvqq0H5UDp6VWI1M=;
        b=LBwbAUzqRsNePimwUqe9XpcTphknEsK9Vo9GswZqOs2u5RM5eF2uuNNwZNVjOBLTQj
         mYyY42+Mi59jsaYwkHGm1JXTHlpCOHFmaGi78/trFUyAYPlSIwLWveVJ6L+N+Cq2D3lp
         9rgelwqsdBiN+HDukGgtoCpEJ4gNBBy8EgHQ8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731605821; x=1732210621;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=EGj+Z30Hqt1k8+JcKfIqAX7vuAmSvqq0H5UDp6VWI1M=;
        b=M0uH7mrBnrIn4HjtAJqLGve54WqlHLusDErXVAZm+VYTaHHF+cHB3G9GMC37mv5g0a
         osu3ku/WiU22uHWVUvaruwpyRZBRteqjkNQWreNod+P86wjcZG/Ya/+8E8D677MhGP3h
         32NAylw/8e028qd4je1+FEBHijoKvLCN/XiprjQp/92uudgN7h3xQP9iHnqrjYESTPim
         coWmw5yQVP00TFHBNLVc0CcqGgaklobzxOCwamob38/tn0BSyiJzxeWiZAFIr/bMAglB
         QjTbXZYhoMfQ/e7/3OMl8FXursSVho6hpKZOLxdIEXbGuzl7DmovzBcx+7t6pE7LdjlD
         uzng==
X-Gm-Message-State: AOJu0Yzc2ARICIXODiwB8x1IDcjGY2Ne75dHcImhN+S/8iNLPOBJbCVO
	Q1zB6pJSdySUu+Az5dMZTQ8sl1BG+QFQmpAcVf3Gy7L3azAu9AblxNQR7cldU+Y=
X-Google-Smtp-Source: AGHT+IFbv5g7o0IJN1+T/LMeONH8pFjqIuzVcKOGO1xrXjQ79KYvIkMwbZZbVxoc6OzA660eukpFsw==
X-Received: by 2002:a17:907:98d:b0:a9a:8042:bbb8 with SMTP id a640c23a62f3a-aa20cdcf351mr317427666b.47.1731605821062;
        Thu, 14 Nov 2024 09:37:01 -0800 (PST)
Date: Thu, 14 Nov 2024 18:36:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzY1O-zrcWB6Ra3q@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ZzYcskZ-GZ8HsXfU@macbook>

On Thu, Nov 14, 2024 at 04:52:18PM +0100, Roger Pau MonnÃ© wrote:
> On Thu, Nov 14, 2024 at 06:11:46AM +0000, Chen, Jiqian wrote:
> > On 2024/11/13 18:30, Roger Pau MonnÃ© wrote:
> > > On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> > >> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> > >>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> > >>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> > >>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> > >>>> and then cause probing failure.
> > >>>>
> > >>>> According to PCIe spec, each bar that support resizing has two registers,
> > >>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> > >>>> corresponding handler into vpci.
> > >>>>
> > >>>> PCI_REBAR_CAP is RO, only provide reading.
> > >>>>
> > >>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> > >>>> setting the new size.
> > >>>
> > >>> I think the logic to handle resizable BAR could be much simpler.  Some
> > >>> time ago I've made a patch to add support for it, but due to lack of
> > >>> hardware on my side to test it I've never submitted it.
> > >>>
> > >>> My approach would be to detect the presence of the
> > >>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> > >>> capability is present force the sizing of BARs each time they are
> > >>> mapped in modify_bars().  I don't think we need to trap accesses to
> > >>> the capability itself, as resizing can only happen when memory
> > >>> decoding is not enabled for the device.  It's enough to fetch the size
> > >>> of the BARs ahead of each enabling of memory decoding.
> > >>>
> > >>> Note that memory decoding implies mapping the BARs into the p2m, which
> > >>> is already an expensive operation, the extra sizing is unlikely to
> > >>> make much of a difference performance wise.
> > >>>
> > >>> I've found the following on my git tree and rebased on top of staging:
> > >> OK.
> > >> Do you need me to validate your patch in my environment?
> > > 
> > > Yes please, I have no way to test it.  Let's see what others think
> > > about the different approaches.
> > There are some errors with your method.
> > I attached the dmesg and xl dmesg logs.
> > From the dmesg logs, it seems that 0000:03:00.0 has addresse overlap with 0000:03:00.1
> 
> Do you have the output of lspci with the BAR sizes/positions before
> and after the resizing?
> 
> > 
> > I think there is a place that needs to be modified regarding your method,
> > although this modification does not help with the above-mentioned errors,
> > it is that whether to support resizing is specific to which bar, rather than just determining whether there is a Rebar capability.
> 
> Do we really need such fine-grained information?  It should be
> harmless (even if not strictly necessary) to size all BARs on the
> device before enabling memory decoding, even if some of them do not
> support resizing.
> 
> I might have to provide a patch with additional messages to see what's
> going on.

One nit that I've noticed with the patch I gave you previously is that
the check for a size change in modify_bars() should be done ahead of
pci_check_bar(), otherwise the check is possibly using an outdated
size.

I've also added a debug message to notify when a BAR register is
written and report the new address.  This is done unconditionally, but
if you think it's too chatty you can limit to only printing for the
device that has the ReBAR capability.

Thanks, Roger.

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ef6c965c081c..d49d3588993b 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -346,6 +346,30 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
              bar->enabled == !!(cmd & PCI_COMMAND_MEMORY) )
             continue;
 
+        if ( bar->type != VPCI_BAR_ROM && header->bars_resizable &&
+             (cmd & PCI_COMMAND_MEMORY) )
+        {
+            uint64_t addr, size;
+
+            pci_size_mem_bar(pdev->sbdf, PCI_BASE_ADDRESS_0 + i * 4,
+                             &addr, &size, 0);
+
+            if ( bar->addr != addr )
+                printk(XENLOG_G_ERR
+                       "%pp: BAR#%u address mismatch %#lx vs %#lx\n",
+                       &pdev->sbdf, i, bar->addr, addr);
+
+            if ( bar->size != size )
+            {
+                printk(XENLOG_G_DEBUG
+                       "%pp: detected BAR#%u size change (%#lx -> %#lx)\n",
+                       &pdev->sbdf, i, bar->size, size);
+                bar->size = size;
+                end = PFN_DOWN(bar->addr + size - 1);
+                end_guest = PFN_DOWN(bar->guest_addr + size - 1);
+            }
+        }
+
         if ( !pci_check_bar(pdev, _mfn(start), _mfn(end)) )
         {
             printk(XENLOG_G_WARNING
@@ -601,6 +625,9 @@ static void cf_check bar_write(
     /* Update guest address, so hardware domain BAR is identity mapped. */
     bar->guest_addr = bar->addr;
 
+gprintk(XENLOG_DEBUG, "%pp: updated BAR%zu address: %#lx\n",
+                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi, bar->addr);
+
     /* Make sure Xen writes back the same value for the BAR RO bits. */
     if ( !hi )
     {
@@ -870,6 +897,9 @@ static int cf_check init_header(struct pci_dev *pdev)
     if ( pdev->ignore_bars )
         return 0;
 
+    header->bars_resizable = pci_find_ext_capability(pdev->sbdf,
+                                                     PCI_EXT_CAP_ID_REBAR);
+
     cmd = pci_conf_read16(pdev->sbdf, PCI_COMMAND);
 
     /*
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 250ba106dbd3..c543a2b86778 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -459,6 +459,7 @@
 #define PCI_EXT_CAP_ID_ARI	14
 #define PCI_EXT_CAP_ID_ATS	15
 #define PCI_EXT_CAP_ID_SRIOV	16
+#define PCI_EXT_CAP_ID_REBAR	21
 
 /* Advanced Error Reporting */
 #define PCI_ERR_UNCOR_STATUS	4	/* Uncorrectable Error Status */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 41e7c3bc2791..45ebc1bb3356 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -129,6 +129,8 @@ struct vpci {
          * upon to know whether BARs are mapped into the guest p2m.
          */
         bool bars_mapped      : 1;
+        /* Device has the Resizable BARs capability. */
+        bool bars_resizable   : 1;
         /* FIXME: currently there's no support for SR-IOV. */
     } header;
 



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 17:54:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 17:54:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836742.1252627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBe30-0000XL-Br; Thu, 14 Nov 2024 17:54:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836742.1252627; Thu, 14 Nov 2024 17:54: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 1tBe30-0000XE-9C; Thu, 14 Nov 2024 17:54:26 +0000
Received: by outflank-mailman (input) for mailman id 836742;
 Thu, 14 Nov 2024 17:54: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=RpK4=SJ=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1tBe2y-0000X8-UB
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 17:54:25 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20631.outbound.protection.outlook.com
 [2a01:111:f403:2612::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7973f4d8-a2b1-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 18:54:20 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU2PR03MB8091.eurprd03.prod.outlook.com (2603:10a6:10:2e6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Thu, 14 Nov
 2024 17:54:16 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8137.027; Thu, 14 Nov 2024
 17:54: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: 7973f4d8-a2b1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjMxIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijc5NzNmNGQ4LWEyYjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjA2ODYwLjU2NTkxMiwic2VuZGVyIjoiZ3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ldwIYbOdfAgAA1vzcni0+yRH8YYOi1rz7xDbUH8hHFIlM+3nuJ9TLjrDpd5+TA0cxpmE8Ylj2vBvJFJF8r1nHCKHzKzsGljfBRDJ2RLeWdzwNx5bVqZeOeUvMbcj+mC5y0iC0Cr6jRJMc14aAJxlM/CkeTFhhzIekH/9t5tBPKeWyCEcGfdYZnSAd5Xg5muQrhyX5EFCdET/ItWfCP2n25zdf2oafpI1RnRB05klwMdi01w7p+1M8yOWzce74BFs8C1lfgeAu2pkcBIFpRauimJ4fCrUJYR3fw4qG/B2cdzv2p5l7VK0/FEtU7q1+87MxLDd2FQpgWgPGNSgnjValQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xxh9CkyzunF/CGGaKiqAzpxTU706WN/qzYGuqnx4XgU=;
 b=Yj8tQxiodNEgGAlSdl00GtN+xUlKR+syHB4Q2pGtaAJ6JrwU8lxhYINyYROTtkhUQNrWbhRgjGMGDeDo2lYuEcxp1fR39YoNoWqYsAXRaJgp6sbWSwwGgA23PfEi+X90A21ibKAPBNU4y5qmnxj2fxURCOrm2sHr5A26Akx0H1tZJofj8eIJ6bHzZdlOkeV3x8p59r4RY59EeRiNI7zYBcb2X7NDloFt/L2CVChX5r9Pw5EUkEO9Xoklsoe8McFvcVD38/nRBuqkMgAc4AKkji7BZ0lWifocFP7DT8DO9078b15Z4pvy8K94gwjURRPfn3U39ooYO3zriNB3L3b60g==
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=Xxh9CkyzunF/CGGaKiqAzpxTU706WN/qzYGuqnx4XgU=;
 b=dTRGQfh2kruuzJmuRiVa+3UXRWGGA0+l5tqePpBsDet7bMyd4mPNH15ewCCMYVBe7cBzT7VWa0mvK1q68EDyi/L5Xkr7iE/WT7vOOZWBBFCuLXuhiPCX5pKK7MZUDw+tHpbPFPR2IXIpl2k6jcCIA99tR6Q1dKQP5KU7vTpadbryzU4Lq/1yZ69jc2NxfMl+IalpSxgMGLmGn2h4c93bjgsO0ckObR/m9NGOaNXcmBxIUI24KbxIBVQTL+IxXQZ4iHVnzoIMQJatCxbCx+qNOsOVMnydsyErtc/mam7t8qFoSbhWndShyjNsx8z+aULgObiJNh1b3c87sXzj6Ergdw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <3f3e207e-65e3-4be0-b302-ba04e256625b@epam.com>
Date: Thu, 14 Nov 2024 19:54:14 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
To: Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20241106134132.2185492-1-luca.fancellu@arm.com>
 <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com>
 <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org>
 <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com>
 <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com>
 <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org>
 <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop>
 <92564de9-24f7-4259-bc45-a95680101693@xen.org>
 <e023a861-a1d6-415e-9be8-688664bf5680@amd.com>
 <8e467912-a71a-4c10-91dc-46706ed7aa1e@xen.org>
 <7ba02037-05ec-491a-92c6-de7195d298ed@amd.com>
 <7eef8e7a-e2a1-41bd-8805-b00a2bc0ae1a@xen.org>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <7eef8e7a-e2a1-41bd-8805-b00a2bc0ae1a@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0169.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b4::11) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|DU2PR03MB8091:EE_
X-MS-Office365-Filtering-Correlation-Id: 06aec46f-523f-4b2a-6cf9-08dd04d55b16
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?VE5iSHMzK05ib1NYUEM5bVd2eWVqMUtaS283enQ2MjY4OHlUcHR3dmZMRmEz?=
 =?utf-8?B?RkRDZlNZNkIvSlRHelByd2Q2ZFZmL3ZVSmRrQUFNTzVFV1Y1eDU3U0lUcVdN?=
 =?utf-8?B?bGJHclNseHlSRWtySk1BK2xrcGpzdW5vaUpCUnUxNERGcFpJaExQUU5CemJJ?=
 =?utf-8?B?K1FXN0pNbEpXY0JUd01MZ3hCckVlNUIwTnYwaXRjNDVWQ1dqdkl4bVp6Y1RT?=
 =?utf-8?B?THduVjgrSXZmRTZTZE0rbmtWc0x5V1JUL21xMXh5VzB5MTM0dkFCMkhkV0lv?=
 =?utf-8?B?R0lhdVFMeURQTUdSYXR5S0NlQ09zK0ZLZkV3cXVGTTFZTEtKZEFNdDJFcXo1?=
 =?utf-8?B?Q2s5N3c4QzMya0pkNkZpdlRZVi9ldmhPdFc5Nm8vcy9lVkFVQ3R6dFVuU2Rx?=
 =?utf-8?B?RHNpczRlaVRrQVZGUVZzVy9tOTJWaWIzU002VkVtV1Bwdm1ZdlZ2WEU3T2M2?=
 =?utf-8?B?cStyWHZQSUlBZW5jeWVnc05uMTluMkFYS0xqdUw2WmQrZHhzcmhwVVdORG04?=
 =?utf-8?B?UzhGL1F6OUxjYUFOaFFvT0Z4TkZOejBGQ0NmYlAvc3p3OHFTenRhbVkxejh1?=
 =?utf-8?B?dnFFK09JVWFZWUJOQ0oyQS9tend4WVBJaElOaWNiUHdSeW50Z2hHK0pjS3Jm?=
 =?utf-8?B?ZmFOT1p3aU56WUgxaC9RMktEQ1hnTmRUS2lHVzFFSDlLcVJkWXBMQlhNTlBV?=
 =?utf-8?B?K1NQTkRQaDVrcnpReUVyTE1aK21IaGExQVl1N0ZMaWd4Q2E0M0ZvOE9IT0xC?=
 =?utf-8?B?NTl6cWFsa3BnUU16ekF1LzZPY0I3ZHprSTFOY3puSU1OTGp6QmZwUXpmeExj?=
 =?utf-8?B?NkM4RTFrcFBDckprNzIrOW00Nzd5OGxZNkxreDZoS0FlcjFYRFQ3NWI4TjFr?=
 =?utf-8?B?U2pjRnViV3hWOVBKUmpSK2liU2lNWnBUTEltTGYxb3owMm9ya0RBNUM4UmNk?=
 =?utf-8?B?Z1pVM2dWVEhndmpabkVDNWpxalVmWXlZRUFlYTRNT2RoTTVINWUwa2IwMG0z?=
 =?utf-8?B?Y1Zlb0tmbEtUNW5BWk1LeEJYWlR1QWFSam8zL2RPdnhxN1BTcEgzUTdManJk?=
 =?utf-8?B?alB4cjJ4TUdidThTc1V1QVZTUnlXdWVHbXFFekdqQW1CeUxvamN6eHJSUzFY?=
 =?utf-8?B?UUtSS0U3MjlPYmtpTEFXK1dpTXQ1b2hSWS81S0Z4V1IyeTNtK1ZXSTVSWElV?=
 =?utf-8?B?bEgrN3ZPZnVGT0hQam5qb3lMVFBFc1BqMWRUL2R5MFAvdFBWZ0hrNnlwOTM4?=
 =?utf-8?B?SmtaTVJqL003c1NiS3BqYkZHMHBQL3kvd3BRaldYZE1CdGZRdmkraU9sZFlk?=
 =?utf-8?B?VUxnb25yTDVSRVJxczVkeHRuU3NFNnpzMHBMSmR0L2hKbUkvNzY3SmdaNWpi?=
 =?utf-8?B?L3FlaGNyUERpdTJ4NXN3T2sxZWNLL2N2Y1BVVGx3WXZpdjNaWDNFNi9mL3Ny?=
 =?utf-8?B?d2w3cEM5blZXVEpxUUxXSHpTOTR2QWwyVWtVNUxET1cxdW52SUlwanI1Y3ls?=
 =?utf-8?B?YU1DZmtDK2Y2WFdQQVU4Z1hCRE5KbmdYeEdmTi9IeTkyTXFmcXZIejFkT2FB?=
 =?utf-8?B?Q3lzVEh1Y0NSTDNsdFVOSWVKU1gwUktBc3FqWE5MdjJPMkxhUUszK2hBc2FB?=
 =?utf-8?B?ZjJVU2Ficy9uelFSbGdzVWhjTjhXaTNNbjA0cXhGR21EL1dyUGpYNHZ2d0pX?=
 =?utf-8?B?UWIvZWVxZ3Z6M0pyejlYVFdRSVBvajFjT2FiZVZZM3Bma1hoMWx5MTFMU1pG?=
 =?utf-8?Q?l9FANd5xwGGC+usAmBpCWiMYDsUBU7o6QS8BWQi?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.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?bFZvdFBxNWV4QnRXWi92aTVTSGlkU3Fxa0VZUEJnU0JTa3M1UmJrb21KakdK?=
 =?utf-8?B?cXd0QzdIQ3ZNZ09sN29OazduNjc5UWFLZFRtOHdRRm00dXZpUnpEWjdOc0N4?=
 =?utf-8?B?UU1ySVRvQkpqM1BneEpXUzk4dVlHazdBeHBFa0w0OEw1NUxKNzhTSllCZnNW?=
 =?utf-8?B?eVRvNW1WOXk2c09jQWprL0M0dktoNzJLb1VnOGM1eFE1M3l0YUdLblgxZlZy?=
 =?utf-8?B?WGJ3TDFZWWQ2d01zMkJ1Vi9JVUVzV0JjSGxFa29mVWIwOXY3blB1N2Q0SzJu?=
 =?utf-8?B?S2F0L3lyNFRYQ1AxRmFFNnY2bThYeXlmR1Z4alRlNE9UUDZiMDc4Q2hnVHFX?=
 =?utf-8?B?T2ltSjZtZ2dBT2c4OEs0a2luZDJyWXRBdDVxVjU4WTlRVFVtTXBiVjcwWTJo?=
 =?utf-8?B?U1FoWHB4M1NVOU9NeXVVNVBZejUvcXJKUUFnakpJWTE3eDBudmtOMHJGdndV?=
 =?utf-8?B?TFBkTUx5RFNRVW9sOTJNbk5sUnQrQ3ZtNC9US1RDdGZNeG1iL2FBWEh3ejNL?=
 =?utf-8?B?cSs1VEpkNzN6OFNLMzNqZkgxbGRNSWZjZ3BTSXpJZnQ1UXkvRkh5clBWMUw5?=
 =?utf-8?B?K3FjTmdWWlVqUGxBbG42MWkvRW1Gd0pjckcyeDFUelQ0VStoR2lMc1lUVWxW?=
 =?utf-8?B?ck9tQTltL3JmWTY4anphc20vc0hGUU5KV2NIZURXT0hBZkZxUFNRQXQrUElp?=
 =?utf-8?B?dlpMWnRYaGwydkZpT1Vkb3dhMlNCeCtpWHJ3cjJ1NmdHNFlreUZsMC9ZVzJZ?=
 =?utf-8?B?ZjhLbkZNWnhIMEFBLzcvRXJEVHFWelZTdjhuZEFNcW5sVmx1YkUzcm40V2tV?=
 =?utf-8?B?T21FMDhkM1dYUm5CMWZTMzRQUFB5R0I0dnphTmJURURkOGMvcHFuM1VQamVo?=
 =?utf-8?B?aVRyNXV2Y3Z1dmJEVUVZUUpvc1ZkZm1IT3pyREpzdUc5Q1VxWXFNRGJkNS9I?=
 =?utf-8?B?Vko2OGpoSXk5YWFqQ1JwM1FTejNYaW50Slp1cU11ZDViVFUzV0JXYm8veVZ3?=
 =?utf-8?B?ZSsvZ0paNDlBcDloMmhGRGZyRjdaNUxNUW85MjhKZ3ZTR09vR05TUnBXcDlh?=
 =?utf-8?B?L1JTVWZiZlNWbEJkdnRNNnA5V0RHdGRSTzhxbCt6R0NDSlo4MWU0ZGNENkdL?=
 =?utf-8?B?dkUvejlDcjEvMXlUY1hxOHRPbEpoSHhIUlI3cmVHM2RUMW9TMzNPZjJnazZX?=
 =?utf-8?B?NndoWG1KRDFaR2Zwb2d4ZXZUR204VzR6WHZSVDNvWlp5eFVJQXo1MUpueFV4?=
 =?utf-8?B?dGV6L3hRR1JsYkxna2dob3lZTzBaZU42am1uYzFoWVlBeGVNWWNvbDE0cC9i?=
 =?utf-8?B?enNxemdJT3BSbTZjYy9hV3hsZHZpTUE3Vm1nUy9GejEyQ1BWVmlzdlBGWVJo?=
 =?utf-8?B?RGpIYncwYzlFVnEyTHpsdjFtc3NIN3NXejByNVhqZUE0S0s2TEo2Rm1OQVhF?=
 =?utf-8?B?aUJxU2l1TVh0Rmd0ZzRiU29sMGFvRENyV0NyWXhVT2x6MjJoUDFhR2c4emwy?=
 =?utf-8?B?ZlpteUZuMmJ3bUFqbHFtYllFdHVNV3d5SDhPei9kOGxGY3I0d0hwNS9vZ0w1?=
 =?utf-8?B?akNsK2dUV0gvUU5hTmxqdzlSNUwyVFhydHNSdnJXMzFNTGVwb1hLelMvbUpx?=
 =?utf-8?B?OUVVM1M3S2U4aUtaQllGbUkzTkw5c0puM1Axc201a2VLT1JOMzc5Tk92MU1p?=
 =?utf-8?B?RVgwelN1Y25QLzhwY3F1Z3J5RFFoMzFWRjhYUkxEMVJFWG1HSXY1RXY0M1VV?=
 =?utf-8?B?TlZ3VzJOaXlNaWRQM0JUSmhCR1RmZjByOGFuM2RtRmFlMFhST0IxZ0N6T3NI?=
 =?utf-8?B?QVg5dnk3R2NvcERaSjdSS0FRUU1sWnFoUkpraElkL0FHcUNYVjlyV1FaRVVa?=
 =?utf-8?B?Q3JkQXlOSFFiQkh5eWlHWTJUSkMwZllXaFZ4c2pqMXRMMVFBVUNCUzF2QnZB?=
 =?utf-8?B?WUdmT0pLRjFsL0N2aEJiQ3lCR1Nieit4NE4vWnN0Y1EwVzA4Z2J4TmNHdDB3?=
 =?utf-8?B?UWE3d0V5b2tadXloSzk5OGhzZG9qV0FURWZUWjRyTkJhZTJVSHh2YWdkdm1K?=
 =?utf-8?B?c1oxR29UQTVEdXlrOXZ2c2JtdW9xRUh0WHVaeWxtYWNpVTc2eFRtMkZsaXRY?=
 =?utf-8?B?UEttY0JpQzVhb0lWRms2SWZPRU9TTVprVlJ4REowSmoxQXh6VnZJRW1JN2U1?=
 =?utf-8?B?alE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 06aec46f-523f-4b2a-6cf9-08dd04d55b16
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2024 17:54:16.0657
 (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: 3PLVrUZ3ZnugWM5ooCgSp2DF3UCUqz4XPSRbSMu0Ehc+yOzFS/YhXPB/FzrXZQrxISot3i5MxNJ9mEs6RGHtMBc/cfVXO+1Rju9YzICEHuk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB8091



On 14.11.24 15:09, Julien Grall wrote:
> 
> 
> On 14/11/2024 12:22, Michal Orzel wrote:
>>
>>
>> On 14/11/2024 13:04, Julien Grall wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>> On 14/11/2024 11:48, Michal Orzel wrote:
>>>>
>>>>
>>>> On 14/11/2024 11:31, Julien Grall wrote:
>>>>> Looking at the code, I think /memreserve/ and /reserved-memory are not
>>>>> mapped in Xen and everything in /reserved-memory is mapped to dom0.
>>>> Why do we forward /reserved-memory to dom0 fdt but /memreserve/ not?
>>>
>>> I was wondering the same. The main issue I can think of with
>>> /memreserve/ is some of the regions will likely be for Xen own usage. So
>> Can you give example of regions defined as reserved for Xen usage (other than static-mem)?
> 
> The spin table to bring-up CPUs.
> 
>>
>>> we would need to have a way to exclude them from dom0.
>>>
>>> Â  >Â  From the discussion> we're having it seems like we should treat them
>>> equally. Also, looking at Luca patch,
>>>> we seem to special case /memreserve/ and only allow for overlap /memresrve/ with boot modules
>>>> and not /reserved-memory/ with boot modules. If we are going to claim that all the boot modules
>>>> can be marked as reserved by the bootloader, then I think we should treat them equally providing
>>>> the same experience to dom0.
>>>
>>> In my mind, /memreserved/ and /reserved-memory/ are different. The
>>> former doesn't say what the region is for, but the latter will indicate it.
>> In the context of this patch, I don't agree. We're discussing overlap, and if a region A
>> from /memreserve/ overlaps fully with a module A, we know what is the purpose of it.
>  > Today it's initrd, but as you say we cannot rule out other modules as well.
> 
> To give a concrete example, the /reserved-region/ can be used to reserve space for the VGA buffer. It would be odd that someone would put the boot module in the middle of the VGA buffer... If Xen ends up to use the VGA buffer (not the case today), then it would be a problem. Xen would need to be reworked to move all boot modules outside of the memory because it can access the VGA (or any other reserved regions).
> 
> The problem is slightly different for /memreserve/ because we don't exactly know what the regions are for until we parse the rest of the DT. Yes technically, a user could put the initrd in the wrong place. So the problem is the same. But this is a relexation I am more willing to accept over /reserved-region/ right now.
> 
>>> So I am not 100% sure how the bootmodule could end up in
>>> /reserved-memory/ because they are described as part of the multiboot
>>> modules. Do you have a scenario?
>> I don't same as I don't have scenario for /memreserve/ overlapping with sth else than initrd.
>> All of these comes from my validation of u-boot, grub, barebox code. I have a feeling that due to
>> U-Boot trick that is not present in any other *known* bootloader, we are trying to over-engineer the problem :)
>> But as Stefano and you wrote, we should follow the spec and for me we should therefore treat them equally.
> 
> See above why I don't think we should treat them equally today. We might be able in the future if we can categorize all the regions in /memreserve/.
> 
> [...]
> 
>>>> Last thing I wanted to ask (for my clarity) is that if bootloader loads initrd at region A and marks
>>>> it as reserved (either in /memreserve/ or /reserved-memory/), and later on Xen copies initrd from region
>>>> A to B, shouldn't the reserved memory region be updated to cover new region for initrd?
>>>
>>> If we mark the region has a reserved, then we are telling the OS it
>>> can't use the region. But I am not sure why it would be needed as Xen
>> Well, in the context of initrd, kernel uses it even though it is reserved. This is because
>> of the second part of the spec where other bindings come into play.
>>
>>> doesn't care how the regions is going to be used by the domain. From a
>>> domain side, do you see any reason why we would want to mark again the
>>> region as reserved?
>> TBH I don't same as I still don't know why U-Boot does that trick. It comes from a very
>> old code and my initial understanding is that it is done purely for U-boot bookkeeping.
> 
> /memreserve/ (and now) /reserved-regions/ are an easy way to find the regions that should be excluded from the RAM. Without that, you will need to have special case (such as for initrd, and the various xen boot moudles). I suspect that Linux have a special case and hence why it hasn't been a problem that Xen doesn't reserve the region.
> 

My be it will help in this discussion - some investigation results.

At boot time (only ARM64, but other arches looks similar):

- Determines if initrd present from DT : early_init_dt_scan()->setup_machine_fdt()
or by checking bootargs "initrd/initrdmem=".

- [1] In arm64_memblock_init() it adds initrd in reserved memory
https://github.com/torvalds/linux/blob/master/arch/arm64/mm/init.c#L274
therefore Linux doesn't depends on any kind of "DT reserved memory" ranges for initrd.

- The Linux processes "reserved-memory" nodes first.
https://github.com/torvalds/linux/blob/master/drivers/of/fdt.c#L504

- After this FDT memory reserve map is processed:
https://github.com/torvalds/linux/blob/master/drivers/of/fdt.c#L496

The Linux doesn't perform any special processing of FDT memory reserve map -
it just adds it to the reserved memory list (splice allowed), which is reasonable, as
Linux doesn't know what is the purpose of each reserved memory block in FDT memory reserve map.

Later based on DT (or other meaning) some reserved memory can be handled in a special way.

After early_init_fdt_scan_reserved_mem() finishes - the result is the list of reserved memory
ranges which are excluded from generic memory management process.


In case of Xen, initrd is not intended to be used by Xen directly, but should be passed to Dom0.
My current, understanding - it will be copied, so from the Xen point of view the memory occupied by Initrd is
not permanently reserved and can be even freed once Initrd successfully passed in Dom0.
Also, due to the point [1] above no need to pass initrd memory as reserved region to Dom0 Linux based domain.

Honestly, it looks like nothing from FDT memory reserve map make sense to blindly pass to Dom0/hwdom
- initrd (described above)
- FDT - it will be generated
NOTE. From u-boot fdt_shrink_to_minimum() code it can be seen that FDT region also could be in /memreserve/
https://github.com/u-boot/u-boot/blob/master/boot/fdt_support.c#L766
- spin-table : Xen owns it, I assume.
- any kind of secure/firmware memory - domains do not care unless specified explicitly in "reserved-memory" (or by other means).
   Xen will guarantee that such ranges are not touched/allocated, i assume.

So in my opinion.
- native Linux (or other OS) need to know about all reserved memory to avoid clash with generic memory management routines.
- virtual Linux (OS) does not need to know - as Xen should exclude memory, defined as reserved in System device tree,
   when allocating memory for domain.
   if domain need to know about some reserved memory - it is expected be defined in DT explicitly (or by other means).

The Xen performs the primary memory management role in virtualized environment,
so it is the main user of any kind of information about reserved memory.

Do not shot me please I've tried to be helpful...and issue fixed.
BR,
-grygorii
  




From xen-devel-bounces@lists.xenproject.org Thu Nov 14 17:58:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 17:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836750.1252638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBe75-00017j-Rf; Thu, 14 Nov 2024 17:58:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836750.1252638; Thu, 14 Nov 2024 17:58: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 1tBe75-00017c-OE; Thu, 14 Nov 2024 17:58:39 +0000
Received: by outflank-mailman (input) for mailman id 836750;
 Thu, 14 Nov 2024 17:58: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=QegD=SJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBe73-00017W-SC
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 17:58: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 106d6518-a2b2-11ef-99a3-01e77a169b0f;
 Thu, 14 Nov 2024 18:58:33 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5cf896558c4so406628a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 09:58:33 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79bb5e16sm770432a12.52.2024.11.14.09.58.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 09:58: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: 106d6518-a2b2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEwNmQ2NTE4LWEyYjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjA3MTEzLjY5MDY4Nywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731607113; x=1732211913; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Dtm1iDI8J3FRIKbZ5/bEpxmTTN5s+Qavrc2qoEa3w5w=;
        b=RnZNQMFhYwS6Yr8aTISni+sub310VWfCS50wvcW4Txxj+GqYdYhj3ilyIueAr2lgGx
         ++Q5oixU8+UacveLn3S5QRzkB1ifxtopp0f46Il3QUYFDCwG6bmJYXD+JmjqQcfQlAEn
         jJQDvPYb2GMGyJ1zLxadIBfrq42/WC09rwxu0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731607113; x=1732211913;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Dtm1iDI8J3FRIKbZ5/bEpxmTTN5s+Qavrc2qoEa3w5w=;
        b=YU/bTNwDp3vbibowJGbvNdNhUYEJtvzxHrX7BkuCkR2Hczp7nYcgnc9Gyd9OkyEuaQ
         DD1+cpF14iA8ygerRl6sXRcHQpHvY0SOr7CtaYF+Qon7hVwacbxjA80Ea2D2h2zwDp8a
         lsFFFm40nux81Mvp7rOB+nwoIbXPNCuiKTlpl6M8bBa7ypOTrlsInCNrfInLjAGUcLGd
         wVFujw0m8w8tGgG0IBjLPLr87bvyK+Z+MkwoSOo26goXJPidhJ6dg4/xZQdslMSfrZ/m
         kJ14hksog9EDQxSe9StmX/+NFhJOvpCRHRK77KQmqLj9lHN8xLBWuaChY7KuHfvxWUWM
         /dOg==
X-Gm-Message-State: AOJu0Yz9xfdJuj0yRIsf5y2OMfuO7W7aLpnx7U9/jNIxrtTbTG3sSe2P
	s0Q9NUgJE8iKxxTn0eZniwDS5QG6zC8cFdirH4xFb5Mxrpa+uyfFal/Pnza/QU4=
X-Google-Smtp-Source: AGHT+IHcrmZBsW2jvJ1ISMAL4CKvGi/PF3YQ/CkMGQqUVgs4AGDzrzuacV9diW5nCNq9tIEKj65HHA==
X-Received: by 2002:a05:6402:26c2:b0:5cf:fa1:892d with SMTP id 4fb4d7f45d1cf-5cf0fa18bf4mr20290622a12.6.1731607112981;
        Thu, 14 Nov 2024 09:58:32 -0800 (PST)
Date: Thu, 14 Nov 2024 18:58:31 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzY6R4o9k8s8TsxH@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>

On Thu, Nov 14, 2024 at 06:11:46AM +0000, Chen, Jiqian wrote:
> On 2024/11/13 18:30, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>> and then cause probing failure.
> >>>>
> >>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>> corresponding handler into vpci.
> >>>>
> >>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>
> >>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>> setting the new size.
> >>>
> >>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>> time ago I've made a patch to add support for it, but due to lack of
> >>> hardware on my side to test it I've never submitted it.
> >>>
> >>> My approach would be to detect the presence of the
> >>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>> capability is present force the sizing of BARs each time they are
> >>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>> the capability itself, as resizing can only happen when memory
> >>> decoding is not enabled for the device.  It's enough to fetch the size
> >>> of the BARs ahead of each enabling of memory decoding.
> >>>
> >>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>> is already an expensive operation, the extra sizing is unlikely to
> >>> make much of a difference performance wise.
> >>>
> >>> I've found the following on my git tree and rebased on top of staging:
> >> OK.
> >> Do you need me to validate your patch in my environment?
> > 
> > Yes please, I have no way to test it.  Let's see what others think
> > about the different approaches.
> There are some errors with your method.
> I attached the dmesg and xl dmesg logs.
> From the dmesg logs, it seems that 0000:03:00.0 has addresse overlap with 0000:03:00.1

I'm attempting to go over Linux dmesg, and so far got the following
information about the BAR positions for 0000:03:00.0 and 0000:03:00.1:

[    1.101522] pci 0000:03:00.0: [1002:73ff] type 00 class 0x030000 PCIe Legacy Endpoint
[    1.102416] pci 0000:03:00.0: BAR 0 [mem 0xfc90000000-0xfc9fffffff 64bit pref]
[    1.105592] pci 0000:03:00.0: BAR 2 [mem 0xfca0000000-0xfca01fffff 64bit pref]
[    1.106665] pci 0000:03:00.0: BAR 4 [io  0x2000-0x20ff]
[    1.109858] pci 0000:03:00.0: BAR 5 [mem 0xd0600000-0xd06fffff]
[    1.112962] pci 0000:03:00.0: ROM [mem 0xfffe0000-0xffffffff pref]
[    1.113543] pci 0000:03:00.0: PME# supported from D1 D2 D3hot D3cold
[    1.114031] pci 0000:03:00.0: 63.008 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x8 link at 0000:00:01.1 (capable of 252.048 Gb/s with 16.0 GT/s PCIe x16 link)
[    1.115074] pci 0000:03:00.1: [1002:ab28] type 00 class 0x040300 PCIe Legacy Endpoint
[    1.115207] pci 0000:03:00.1: BAR 0 [mem 0xd0700000-0xd0703fff]
[    1.115962] pci 0000:03:00.1: PME# supported from D1 D2 D3hot D3cold
[  120.049678] amdgpu 0000:03:00.0: BAR 2 [mem 0xfca0000000-0xfca01fffff 64bit pref]: releasing
[  120.049682] amdgpu 0000:03:00.0: BAR 0 [mem 0xfc90000000-0xfc9fffffff 64bit pref]: releasing
[  120.049815] amdgpu 0000:03:00.0: BAR 0 [mem 0xa00000000-0xbffffffff 64bit pref]: assigned
[  120.049833] amdgpu 0000:03:00.0: BAR 2 [mem 0x900000000-0x9001fffff 64bit pref]: assigned

So the only BAR from 0000:03:00.1 is always at 0xd0700000-0xd0703fff,
and BARs for 0000:03:00.0 are relocated from:

0xfca0000000-0xfca01fffff -> 0x900000000-0x9001fffff (same size)
0xfc90000000-0xfc9fffffff -> 0xa00000000-0xbffffffff (resized)

So I see no overlap between the BARs of 0000:03:00.0 and 0000:03:00.1,
but maybe I'm missing some position changes, following Linux dmesg is
not easy.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 18:22:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 18:22:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836762.1252647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBeU9-0005oP-OO; Thu, 14 Nov 2024 18:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836762.1252647; Thu, 14 Nov 2024 18:22: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 1tBeU9-0005oI-Lt; Thu, 14 Nov 2024 18:22:29 +0000
Received: by outflank-mailman (input) for mailman id 836762;
 Thu, 14 Nov 2024 18:22: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBeU9-0005oC-38
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 18:22:29 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64bbd4e1-a2b5-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 19:22:23 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2f75c56f16aso9676961fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 10:22:23 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79c1de36sm796650a12.84.2024.11.14.10.22.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Nov 2024 10:22: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: 64bbd4e1-a2b5-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmUiLCJoZWxvIjoibWFpbC1sajEteDIyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY0YmJkNGUxLWEyYjUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjA4NTQzLjY4NjkzMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731608542; x=1732213342; 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=FKxjklqWasJ4RWLvYPjj9yS4LbXJP7EHAG4iJ3xZMaE=;
        b=kBXiI2sL7PctiNs55eBeP3WN9BJMpKKhbgX9YRTUXinLGLRZbVsmQya5LwfYT9zmEs
         vFrKIoUcibq+PziguLWmHV3FgsAKJH/NBzUsGf7quXmIe6Y5NVhk5CBo8yteh7Ki4BSd
         5YS648gpJIKhiOkz+CW1elow+Z+2uNcDbiGgA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731608542; x=1732213342;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=FKxjklqWasJ4RWLvYPjj9yS4LbXJP7EHAG4iJ3xZMaE=;
        b=lAJMzbBXK8xUFht3WsFiqPP/5eaJ4fwwHJRDAwl1rtNo72zIC4YMR5w71eXdb8toYl
         +FH52LGMm8SfxZUg+D7Y6l+WC7CroVUGVul7GzA449g/0g6BqUXTTlFzAMgb1ghbRVmy
         LOHPE5emaF8vEBAofP0W+HiEeWpfHaWaJsSOX0RGJM/SxBm5loXFaI3TijfQOC5qhxNL
         Q7inhZl/4WM8hQcx3XHCIBEDJZnA90pK4gOVyj+q06g77Xd7A8NYasi2tmtZ87kPQhjX
         ngLEbx8+Z4ygn+9XwncHgaky9aAhO6Ji99a/GSkEHLICq+NqclPzlW52e9KGn6asn2ra
         6X+g==
X-Gm-Message-State: AOJu0YxpxGi4xFeVTzX7hrWBMwdzyDuFBGbCFDz0JNGz+huy7N+5Ov4j
	wC/tJUyyVn2ZfX4KZiNNxuW3zF2oGbc31hU11xwW28nimt47euLIt5VJAonpErC1DlZ63HJcbZN
	C
X-Google-Smtp-Source: AGHT+IH9UV3RMNcDMjY6M6SjjTvsFO3vB/l5a77HKYmSIhq17yGOsmqpdhEv5INu5LAslAquAAqjrg==
X-Received: by 2002:a05:651c:905:b0:2fb:4abb:7001 with SMTP id 38308e7fff4ca-2ff60650b4fmr729501fa.2.1731608542509;
        Thu, 14 Nov 2024 10:22: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>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH] x86/boot: Fix comment about setting up the real mode stack
Date: Thu, 14 Nov 2024 18:22:19 +0000
Message-Id: <20241114182219.1983073-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

It may have taken a while, but it occurs to me that the mentioned commit fixed
a second problem too.

On entering trampoline_boot_cpu_entry(), %esp points at the trampoline stack,
but in a 32bit flat segment.  It happens to be page aligned.

When dropping into 16bit mode, the stack segment operates on %sp, preserving
the upper bits.  Prior to 1ed76797439e, the top nibble of %sp would depend on
where the trampoline was placed in low memory, and only had a 1/16 chance of
being 0 and therefore operating on the intended stack.

There was a 15/16 chance of using a different page in the trampoline as if it
were the stack.  Therefore, zeroing %esp was correct, but for more reasons
than realised at the time.

Update the comment to explain why zeroing %esp is correct in all cases.  Move
it marginally earlier to when a 16bit stack segment is first loaded.

Fixes: 1ed76797439e ("x86/boot: fix BIOS memory corruption on certain IBM systems")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 xen/arch/x86/boot/trampoline.S | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 924bda37c1b7..f5a1d61280c5 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -176,6 +176,12 @@ trampoline_boot_cpu_entry:
         mov     %eax,%gs
         mov     %eax,%ss
 
+        /*
+         * The stack is at trampoline_phys + 64k, which for a 16bit stack
+         * segment wants %sp starting at 0.
+         */
+        xor     %esp, %esp
+
         /* Switch to pseudo-rm CS, enter real mode, and flush insn queue. */
         mov     %cr0,%eax
         dec     %eax
@@ -190,8 +196,6 @@ trampoline_boot_cpu_entry:
         mov     %ax,%es
         mov     %ax,%ss
 
-        /* Initialise stack pointer and IDT, and enable irqs. */
-        xor     %esp,%esp
         lidt    bootsym(rm_idt)
         sti
 

base-commit: 41c80496084aa3601230e01c3bc579a0a6d8359a
prerequisite-patch-id: 6eb3b54ccd19effe3a89768e0ec5c7a2496a233a
prerequisite-patch-id: b9c480479c1f4021e9c3fe659811e28bf88f6eca
prerequisite-patch-id: 68f0d0fff4312fb059861efddbef95ddf4635b0e
prerequisite-patch-id: 66902cf11d58181ff63b8ee4efb4078df5828490
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 14 18:35:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 18:35:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836773.1252658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBegB-0008OQ-Ur; Thu, 14 Nov 2024 18:34:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836773.1252658; Thu, 14 Nov 2024 18:34: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 1tBegB-0008OJ-Rx; Thu, 14 Nov 2024 18:34:55 +0000
Received: by outflank-mailman (input) for mailman id 836773;
 Thu, 14 Nov 2024 18:34: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=3TDs=SJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBegA-0008OD-QA
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 18:34:54 +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 20c35576-a2b7-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 19:34:48 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a9a850270e2so182360966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 10:34:48 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dffd782sm91033366b.129.2024.11.14.10.34.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 10:34: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: 20c35576-a2b7-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIwYzM1NTc2LWEyYjctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjA5Mjg4LjY0MDI4Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731609288; x=1732214088; 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=oSHGvoyUXSFswnrGSncN0hxMU9t9e5yTwpj3nbPpRXk=;
        b=lWljKPWOCPmrBJ4XykepE0SVoDIhKKZqjq0uLBcsklMsInbmpOKCpG8s0M8mnnM+Lw
         1L+aY/CHEvVh/I/yIiZOo3v4Og432xp7wGMKV8ZQz1QJAlWPPJyAzm02S0pIKDYDNF7A
         LplIRGZNk3zNGUQhfXIFoDMaRJwtqktRkkkC4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731609288; x=1732214088;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=oSHGvoyUXSFswnrGSncN0hxMU9t9e5yTwpj3nbPpRXk=;
        b=hYw8SeR9vXYkhHNKC+7j1XVwfr8bsOTFES4XJXuQ982UDl3widC+Xg67tBqqXwiPGp
         Gr+7pjbRezEcfxE3eyT4Q6aitNjnA9F8NlMZ1Ccn9qHXPq/75X/Y/qh19jJKSLSRbVNP
         diLe7DvgUJZ0RShfsW4+TPLOY7ZyFLHjRAMEbK54SwZY/oJ54AVMg8wyamPtcwIKqxx3
         xQb55qKP0rpnBJs9A3hFqEHOcg0cb8kGcDRcaWiZfn8WGG5iRalf9GlJCvjuKAZaqGG6
         B60kP0DM38DmLfver0uKnRr7d77PXll3Cnzfb8gD+EeAwUlBILx6qhYGJrSQUU24AVeh
         Au0A==
X-Forwarded-Encrypted: i=1; AJvYcCW4GZ5tJOZEgps+yupSC+xtVrYYh0WosWsld5AW89aQAbutAL4h337q9FYfItiKOdP8lZF33qCaB6M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwawaXIXcO8AdF5PZUnR5f5tt7NtkPgFPf0A8uvcfHfaRV/yKJK
	AAri8D764wyW6vsze2KjBx7qgT0XhFNyDEHaYW3vbGL1WGdeZCnhIVBiVe5fyDU=
X-Google-Smtp-Source: AGHT+IGP73p1Qy33CkOL1XQGBsZcH0H8xs7nwEQAJj+QE82xsjk91lZPDi7+aUd7RwXGbNnnGKHMOA==
X-Received: by 2002:a17:907:3182:b0:a9e:b287:2808 with SMTP id a640c23a62f3a-aa20ccdabedmr286004166b.6.1731609287912;
        Thu, 14 Nov 2024 10:34:47 -0800 (PST)
Message-ID: <5c5a0db4-0dda-495c-9241-9f45b0a10632@citrix.com>
Date: Thu, 14 Nov 2024 18:34:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] x86/trampoline: Document how the trampoline is
 laid out
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-4-andrew.cooper3@citrix.com>
 <D5LUCQ9MH2C2.1L6CFH028NYPS@cloud.com>
 <a2a65e08-84d8-4181-9a98-f4811eac6767@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <a2a65e08-84d8-4181-9a98-f4811eac6767@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/11/2024 11:17 am, Andrew Cooper wrote:
> On 14/11/2024 10:48 am, Alejandro Vallejo wrote:
>> On Thu Nov 14, 2024 at 9:08 AM GMT, Andrew Cooper wrote:
>>> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/include/asm/trampoline.h
>>> index 8c1e0b48c2c9..559111d2ccfc 100644
>>> --- a/xen/arch/x86/include/asm/trampoline.h
>>> +++ b/xen/arch/x86/include/asm/trampoline.h
>>> @@ -37,12 +37,65 @@
>>>   * manually as part of placement.
>>>   */
>>>  
>>> +/*
>>> + * Layout of the trampoline.  Logical areas, in ascending order:
>>> + *
>>> + * 1) AP boot:
>>> + *
>>> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so the identity
>>> + *    mapping (which must be executable) can at least be Read Only.
>>> + *
>>> + * 2) S3 resume:
>>> + *
>>> + *    The S3 wakeup logic may need to interact with the BIOS, so needs a
>>> + *    stack.  The stack pointer is set to trampoline_phys + 4k and clobbers an
>>> + *    arbitrary part of the the boot trampoline.  The stack is only used with
>>> + *    paging disabled.
>>> + *
>>> + * 3) Boot trampoline:
>>> + *
>>> + *    The boot trampoline collects data from the BIOS (E820/EDD/EDID/etc), so
>>> + *    needs a stack.  The stack pointer is set to trampoline_phys + 64k, is 4k
>>> + *    in size, and only used with paging disabled.
>>> + *
>>> + * 4) Heap space:
>>> + *
>>> + *    The first 1k of heap space is statically allocated scratch space for
>>> + *    VESA information.
>>> + *
>>> + *    The remainder of the heap is used by reloc(), logic which is otherwise
>>> + *    outside of the trampoline, to collect the bootloader metadata (cmdline,
>> Wh> + *    module list, etc).  It does so with a bump allocator starting from the
>>> + *    end of the heap and allocating backwards.
> Was this a typo replying to the email?
>
>
>>> + *
>>> + * 5) Boot stack:
>>> + *
>>> + *    The boot stack is 4k in size at the end of the trampoline, taking the
>>> + *    total trampoline size to 64k.
>>> + *
>>> + * Therefore, when placed, it looks somewhat like this:
>>> + *
>>> + *    +--- trampoline_phys
>>> + *    v
>>> + *    |<-------------------------------64K------------------------------->|
>>> + *    |<-----4K----->|                                         |<---4K--->|
>>> + *    +-------+------+-+---------------------------------------+----------+
>>> + *    | AP+S3 |  Boot  | Heap                                  |    Stack |
>>> + *    +-------+------+-+---------------------------------------+----------+
>>> + *    ^       ^   <~~^ ^                                    <~~^       <~~^
>>> + *    |       |      | +- trampoline_end[]                     |          |
>>> + *    |       |      +--- wakeup_stack      reloc() allocator -+          |
>>> + *    |       +---------- trampoline_perm_end      Boot Stack ------------+
>>> + *    +------------------ trampoline_start[]
>>> + */
>> Neat. Nothing like a pretty picture to properly explain things.
>>
>>> +
>>>  #include <xen/compiler.h>
>>>  #include <xen/types.h>
>>>  
>>>  /*
>>> - * Start and end of the trampoline section, as linked into Xen.  It is within
>>> - * the .init section and reclaimed after boot.
>>> + * Start and end of the trampoline section, as linked into Xen.  This covers
>>> + * the AP, S3 and Boot regions, but not the heap or stack.  It is within the
>>> + * .init section and reclaimed after boot.
>> How can it be reclaimed after boot if it's used for S3 wakeups? I assume you
>> meant that the heap and stack are reclaimed after boot, but from that wording
>> it sounds like the other way around.
> This is the one bit that is slightly problematic to represent.
>
> trampoline_{start,end}[] describe the AP/S3/Boot text/data *in the Xen
> image*, which is in the .init section.
>
> trampoline_phys is where trampoline_start[] ends up when placed.
>
> Maybe I should have "Note: trampoline_start[] and trampoline_end[]
> represent the shown boundaries as linked in Xen" at the bottom of the
> diagram?

I'm going to go ahead and do this, and commit the series.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 18:51:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 18:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836781.1252668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBew3-00030y-8e; Thu, 14 Nov 2024 18:51:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836781.1252668; Thu, 14 Nov 2024 18: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 1tBew3-00030r-5M; Thu, 14 Nov 2024 18:51:19 +0000
Received: by outflank-mailman (input) for mailman id 836781;
 Thu, 14 Nov 2024 18: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=ir3r=SJ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tBew2-00030l-6y
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 18:51:18 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20611.outbound.protection.outlook.com
 [2a01:111:f403:2414::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 690810a6-a2b9-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 19:51:09 +0100 (CET)
Received: from BL6PEPF0001640D.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1004:0:14) by LV3PR12MB9186.namprd12.prod.outlook.com
 (2603:10b6:408:197::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28; Thu, 14 Nov
 2024 18:51:03 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2a01:111:f403:f902::3) by BL6PEPF0001640D.outlook.office365.com
 (2603:1036:903:4::a) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.22 via Frontend
 Transport; Thu, 14 Nov 2024 18:51:03 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MN1PEPF0000ECDB.mail.protection.outlook.com (10.167.242.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Thu, 14 Nov 2024 18:51:03 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 14 Nov
 2024 12:51:02 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 Nov
 2024 12:51:01 -0600
Received: from [172.30.86.253] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 14 Nov 2024 12:51:01 -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: 690810a6-a2b9-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjExIiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjY5MDgxMGE2LWEyYjktMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjEwMjY5LjYyMzg5MSwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yQD4ZWJUi4w8SF6IKECXAUsEm3u6Hf3u99i88GKc7Paa9LB7noEYdNCsDKbZwRFiA1cJ2k9AGxxBo97rv1Zx8QshVumwzYnihC7XWZtOSsfjkR+wCiiyKgVGG4HibMz8vZHY5MccI2r/5WtMJvrK1h+pYjeuASBUOBxNlZPGuV2gyEZoJOdaIUTYKemCNCxq8eekLwCowZI1Msr9+xwR/bVurueTphIow8Ub6mYjZQYZhLRoOLgzhXLgXxDSD96l03IISca2PnMS6A60sPduft/akGo2r2OZ87MsCZhhakguTy/DDsx1QkacqKzgltF+fcyN38U2tdyb/Qla0C5vgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+GvLLLgzLWn1/eJDkQtUNK1il4m+YT3p5BYVXAjNWi8=;
 b=k21DIFt+Ls6UZn/yX2wIa1mGK5qtGSoBFoN6Zisx4syPwaVHIyUtx7yhZBJoeZ4/2Hi+ewS1K25bu1p4OIYFVV4Yvj44W0sASThCkB0BIKqrP1sSdcA1PepyNMzRtYv7H7xZqKPKs3UFXePuR8oqKResqYaYUi0QwGpaDZJqbQwOzEtOHGELIpyzulvx75tgzJdOy6ZqxlKCyd7sZf+PL20q3VqjfU6KSIocoS0UbHMr/ImrJfCGUgUqR69ENn0apt0QLkonGd0TIhGZEOkME/SlKvuhr96xR3laQHGx1x2TDW5YW7L5z2Wr8kSqqzkfUEzn6JhS97ozFOlrOVLZxw==
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=+GvLLLgzLWn1/eJDkQtUNK1il4m+YT3p5BYVXAjNWi8=;
 b=SZ0/hZ17wDLXVrA3bSFYNydQDgfXH0fnGlj8mnfB6IpkVX8MMmdSpIrkncH6sOF322GNEfRqrNzHXZo68N0quXiwW6/IB8aMLHfj59/YS/LlffH3JDQfJPFy60w2W+RPLXgDdA4MjjxquP4A5cLKghlwfhe3OpTV6Sm6lEQiWrU=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <06149848-c14c-4f44-80b8-b596479505cf@amd.com>
Date: Thu, 14 Nov 2024 13:50:58 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/2] xen/pci: introduce PF<->VF links
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>
References: <20241112205321.186622-1-stewart.hildebrand@amd.com>
 <20241112205321.186622-2-stewart.hildebrand@amd.com>
 <975e3dbd-40e8-49c6-8aab-7e7bde1a233f@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <975e3dbd-40e8-49c6-8aab-7e7bde1a233f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDB:EE_|LV3PR12MB9186:EE_
X-MS-Office365-Filtering-Correlation-Id: bdac6171-bcea-4139-c8f9-08dd04dd4a2a
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?byt3bTJEYjU4MmtVVDBma1orRmdJOUhmZjNLNFc4Y0xPNC84YW90UTlURjJl?=
 =?utf-8?B?OGw2OUNYR0crbk9ZL2h2dmVKVzZXM1lxS1RzaURld3hPM3V4VzlsdFVkRHBL?=
 =?utf-8?B?Y2NpbVZGRFpHVThjejZweVNXd1ZOTGhFODdDMHZnMnVRNzJPckg4Nk5qeUlj?=
 =?utf-8?B?QkhUR1R3MmZwSmZOdkUxeFJsY2NkNXpXTnQ1SExNQkkrMVVnM28zcWdNald3?=
 =?utf-8?B?VTZaaytQbGRKcWprZE5GeFpobkhTUEVDVkttN3VhaGJPSFVTb3RuNklTZDgv?=
 =?utf-8?B?emhzNzVHWWpKUHVRUEZiR0VmTlFmQkNXbVhxUzFlNnI0NkhEOW1ZT1RkTGx0?=
 =?utf-8?B?cWlOc285UDZRZmNQRjFTRS9PalhHRHczV1R5Y3NTMTdNQlI3UmlPcFNKdW9w?=
 =?utf-8?B?enZOdUJncU1lRjhHZXowenpvZ1g2NEdTcjhLay9FTXpWOG5pSWtNNGlkWExX?=
 =?utf-8?B?THZlOHc5UU1oR3J4dms5alJ5L3NLVXM4emEvSUNRK1ZRby91c1A3dWUxSm9i?=
 =?utf-8?B?STdScm5nTVB1QnlrZnR6MXNROWNwMmkwL0FhNk1CRU5FOWZydk9hMkVHdXVj?=
 =?utf-8?B?Tzd0Nm9yVWtKOVJFZW13RnM5bXpHRlJlbnlkVDg0c1VYNmVoRUd1cHF3cG0z?=
 =?utf-8?B?ZVloREhZRlU2Qk9Cek9MRm9hMVBieE5oNnlXQW9xaDZQeG5sOHpZc0hPeHdr?=
 =?utf-8?B?RzFWZk9wdy9hWHkwUllJYXRFSG9jK2YybzlpNkR0eTdmOXpPQ2RCUU1aTVZ6?=
 =?utf-8?B?R2taZG42VHRFMTdGbWNhekg5RSt4WW5BSXVjYjlVNm82eUNKYmo0dDdVMGI1?=
 =?utf-8?B?bXJCakJFSXR5OVVIQVVEUlkxWm0yWDRDUE1KRlJGV25CU1ZXZHE4ZEhQUW1D?=
 =?utf-8?B?UXBBbDRDZHpIT1dtVlBPWi9vS1NGRTVGb2VmV2tWVEI1dWwrVjhoeXIvY3NC?=
 =?utf-8?B?MGRBdy9iN2g5TW9tOGF6czRsTFIxNUlOS1Z1MnkvMk9pTHdqR1ZXY09PWmF4?=
 =?utf-8?B?SWpYdnlPRkwzZDZrQTNqT2laVUJCUCtXSkRnN1VrNTd0U3lDS090S1RGcjAw?=
 =?utf-8?B?VWlKRWtDY2prSXU1Z3doRnFvMFV5OWVlS3AwN0JQSy9zczdXc3c0NEZFT09k?=
 =?utf-8?B?c1dTL1NiaFdMVU5ENHNncndjT0JqeEEzODUvWFJKNzJNK3ltc2lyKytTRnp6?=
 =?utf-8?B?OXYzTExEZXFxaFB1eVNrYytNd1Y1ZlhBS2FhZXlUaDRtTWJxSGRTQ1ZNTjQ3?=
 =?utf-8?B?N3R3YmdJQWJBOS9WVk9nRzU0QzFkNHhHRGFZTU9wS1NHdEFQeDBIUTErakJv?=
 =?utf-8?B?N0MxL2F3ZHJMbzJhNU00REROblJIS2NJdHAwWllFVFpFUkJZNG9QU1JpU2dW?=
 =?utf-8?B?R0pCZU1tWmpWamN3TEtadUhCQVcrRUlVcktoREZSWlhxYkd5SGc4R0QxelRU?=
 =?utf-8?B?S0lOR0wvMjJlc2V2Z01KOU8ybE9XZmFjM01RZWhGdTRReWJnQ2FjZmtLb08x?=
 =?utf-8?B?QWFEWlJ5QlZCd1JicEdaTTVBbCt3ZTZRV2swOEtLUzhCdVByQnFuTCtuYkJy?=
 =?utf-8?B?NG41SWJsUm1HODlESU9TUW15L0N0K1laRDN3ai8wTUtZNmhtOVE0SW4yRWEr?=
 =?utf-8?B?RXJ0ejRhSVhyTjBCL0FTcmNCYzVJNHJZYVVkancvV1l1RkVGWm1UWG9DOXV1?=
 =?utf-8?B?anNUaHkyS0pudDdxaVpSSWphWEdlSGJXSHR2dG12SkYzMjlMUHRpU2ZmclE0?=
 =?utf-8?B?UTVZYzZBVnoyZ1JXRlg1aHNkald0U0V4TVQ2OHJ5eUJmM1lUUU45QzZPTFZn?=
 =?utf-8?B?R3hucGpsdTdjeU02ZjBna3NzZ3BKTUlYVWZxNStVeHZmeWEvS0NFK3ZvaHc1?=
 =?utf-8?B?V2tWOHczQU40V3drMmNnTjd3Ym02RFpJWWJSMzNyNTU3SVE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 14 Nov 2024 18:51:03.4454
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bdac6171-bcea-4139-c8f9-08dd04dd4a2a
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9186

On 11/14/24 05:34, Jan Beulich wrote:
> On 12.11.2024 21:53, Stewart Hildebrand wrote:
>> Add links between a VF's struct pci_dev and its associated PF struct
>> pci_dev.
>>
>> The hardware domain is expected to add a PF first before adding
>> associated VFs. Similarly, the hardware domain is expected to remove the
>> associated VFs before removing the PF. If adding/removing happens out of
>> order, print a warning and return an error. This means that VFs can only
>> exist with an associated PF.
>>
>> Additionally, if the hardware domain attempts to remove a PF with VFs
>> still present, mark the PF and VFs broken, because Linux Dom0 has been
>> observed to not respect the error returned.
>>
>> Move the call to pci_get_pdev() down to avoid dropping and re-acquiring
>> the pcidevs_lock(). Drop the call to pci_add_device() as it is invalid
>> to add a VF without an existing PF.
>>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> I'm okay with this, so in principle
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, I very much appreciate it! However, is it appropriate for me to
pick up this tag considering the requested/proposed changes?

> A few comments nevertheless, which may result in there wanting to be
> another revision.

I'll plan to send v8. There were some minor comments from Roger on the
removed snippet that I will also address, and I have another proposed
change.

>> ---
>> Candidate for backport to 4.19 (the next patch depends on this one)
> 
> With this dependency (we definitely want to backport the other patch) ...
> 
>> v6->v7:
>> * cope with multiple invocations of pci_add_device for VFs
>> * get rid of enclosing struct for single member
>> * during PF removal attempt with VFs still present:
>>     * keep PF
>>     * mark broken
>>     * don't unlink
>>     * return error
>> * during VF add:
>>     * initialize pf_pdev in declaration
>>     * remove logic catering to adding VFs without PF
> 
> ... I'd like to point out that this change has an at least theoretical
> risk of causing regressions. I therefore wonder whether that wouldn't
> better be a separate change, not to be backported.

That makes sense. I'll split it into a separate patch for the next rev.

>> @@ -703,7 +696,38 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>>           * extended function.
>>           */
>>          if ( pdev->info.is_virtfn )
>> -            pdev->info.is_extfn = pf_is_extfn;
>> +        {
>> +            struct pci_dev *pf_pdev = pci_get_pdev(NULL,
>> +                                                   PCI_SBDF(seg,
>> +                                                           info->physfn.bus,
>> +                                                           info->physfn.devfn));

BTW, since I'm spinning another rev anyway, are there any opinions on
the indentation here?

>> +            struct pci_dev *vf_pdev;
> 
> const?

Yes, if it's still needed

>> +            bool already_added = false;
>> +
>> +            if ( !pf_pdev )
>> +            {
>> +                printk(XENLOG_WARNING
>> +                       "Attempted to add SR-IOV device VF %pp without PF %pp\n",
> 
> I'd omit "device" here.

OK

> (These changes alone I'd be happy to do while committing.)

I'll include the changes in v8.

>> +                       &pdev->sbdf,
>> +                       &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn));
>> +                free_pdev(pseg, pdev);
>> +                ret = -ENODEV;
>> +                goto out;
>> +            }
>> +
>> +            pdev->info.is_extfn = pf_pdev->info.is_extfn;
> 
> There's a comment related to this, partly visible in patch context above.
> That comment imo needs moving here. And correcting while moving (it's
> inverted imo, or at least worded ambiguously).

I'll move it. As far as wording goes, I suggest:

            /*
             * PF's 'is_extfn' field indicates whether the VF is an extended
             * function.
             */

>> +            pdev->pf_pdev = pf_pdev;
>> +            list_for_each_entry(vf_pdev, &pf_pdev->vf_list, vf_list)
>> +            {
>> +                if ( vf_pdev == pdev )
>> +                {
>> +                    already_added = true;
>> +                    break;
>> +                }
>> +            }
>> +            if ( !already_added )
>> +                list_add(&pdev->vf_list, &pf_pdev->vf_list);
>> +        }
>>      }
> 
> Personally, as I have a dislike for excess variables, I'd have gotten away
> without "already_added". Instead of setting it to true, vf_pdev could be
> set to NULL. Others may, however, consider this "obfuscation" or alike.

This relies on vf_pdev being set to non-NULL when the list is empty and
after the last iteration if the list doesn't contain the element. I had
to look up the definitions of list_for_each_entry, INIT_LIST_HEAD, and
list_{add,del,entry} to verify that vf_pdev would be non-NULL in those
cases.

Perhaps a better approach would be to introduce list_add_unique() in
Xen's list library? Then we can also get rid of the vf_pdev variable.

static inline bool list_contains(struct list_head *entry,
                                 struct list_head *head)
{
   struct list_head *ptr;

   list_for_each(ptr, head)
   {
       if ( ptr == entry )
           return true;
   }

   return false;
}

static inline void list_add_unique(struct list_head *new,
                                   struct list_head *head)
{
    if ( !list_contains(new, head) )
        list_add(new, head);
}


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 21:41:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 21:41:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836813.1252702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBhav-0008Kb-2A; Thu, 14 Nov 2024 21:41:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836813.1252702; Thu, 14 Nov 2024 21: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 1tBhau-0008KU-Vm; Thu, 14 Nov 2024 21:41:40 +0000
Received: by outflank-mailman (input) for mailman id 836813;
 Thu, 14 Nov 2024 21:41: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=npsv=SJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tBhat-0008KO-25
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 21:41:39 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 37c66664-a2d1-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 22:41:34 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 291665C612C;
 Thu, 14 Nov 2024 21:40:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1521C4CECD;
 Thu, 14 Nov 2024 21:41:31 +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: 37c66664-a2d1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjM3YzY2NjY0LWEyZDEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjIwNDk1LjI0OTM2Mywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731620493;
	bh=/VzcZt4sclUkkjNLpuFOZ733u1qmCSDyBgi88JaEetE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=YwioryWNZwg/GlyuVQHmVQEgoqEQ9eM58B8VoIQCR3Mhq7z2sKRB+2zlrdo9DL6MJ
	 UCiYOp2L0AmpQYimY2o1UQSpYF1A//ghnO3yBGoTzyoAHB8NFtlrHWkrpqO7JSszuv
	 FlpJ5fBSsQDVYmJDSO9lSDhwe+SBL2Ex1baALR/TFrEMIytrl592cNmTI0dSsEopCo
	 gePsuKo23EJ4gzjBDAWAf7Q4VhRx3G8H46STS3mgUqZSpgvG2ZVOMrwZqT/Weup8EX
	 NoZXb9i53jdVQMfe72QmDQAWDIArR6IbveNSI2d1yCh0Gi8SEFFS7n6ls+ucqMA30Z
	 sZb/RjyJKRGeg==
Date: Thu, 14 Nov 2024 13:41:28 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Michal Orzel <michal.orzel@amd.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH] xen/device-tree: Allow exact match for overlapping
 regions
In-Reply-To: <7eef8e7a-e2a1-41bd-8805-b00a2bc0ae1a@xen.org>
Message-ID: <alpine.DEB.2.22.394.2411141323290.850075@ubuntu-linux-20-04-desktop>
References: <20241106134132.2185492-1-luca.fancellu@arm.com> <d9ad0972-2fd1-40ef-a11c-d56e102fef38@amd.com> <c6ba416c-5781-4f23-8623-5f30ce279a29@xen.org> <d87bd0a7-0dc8-44a9-b43e-04a166cb0b6d@amd.com> <91140571-9237-42dc-8eb1-2263bbb23b07@xen.org>
 <51c04e42-105b-4452-8dd1-dcc1f02c54a2@amd.com> <8d04f515-ae46-4b30-8a98-7822b0d221ed@xen.org> <alpine.DEB.2.22.394.2411131410240.222505@ubuntu-linux-20-04-desktop> <92564de9-24f7-4259-bc45-a95680101693@xen.org> <e023a861-a1d6-415e-9be8-688664bf5680@amd.com>
 <8e467912-a71a-4c10-91dc-46706ed7aa1e@xen.org> <7ba02037-05ec-491a-92c6-de7195d298ed@amd.com> <7eef8e7a-e2a1-41bd-8805-b00a2bc0ae1a@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 14 Nov 2024, Julien Grall wrote:
> On 14/11/2024 12:22, Michal Orzel wrote:
> > 
> > 
> > On 14/11/2024 13:04, Julien Grall wrote:
> > > 
> > > 
> > > Hi Michal,
> > > 
> > > On 14/11/2024 11:48, Michal Orzel wrote:
> > > > 
> > > > 
> > > > On 14/11/2024 11:31, Julien Grall wrote:
> > > > > Looking at the code, I think /memreserve/ and /reserved-memory are not
> > > > > mapped in Xen and everything in /reserved-memory is mapped to dom0.
> > > > Why do we forward /reserved-memory to dom0 fdt but /memreserve/ not?
> > > 
> > > I was wondering the same. The main issue I can think of with
> > > /memreserve/ is some of the regions will likely be for Xen own usage. So
> > Can you give example of regions defined as reserved for Xen usage (other
> > than static-mem)?
> 
> The spin table to bring-up CPUs.

Yes, maybe my EFI runtime services example was not ideal, but basically
any firmware "stuff" that is expected to survive the end of the
firmware/bootloader boot sequence and should not be accessed directly by
the OS could be under /memreserve/  The spin table is a good example.


> > > we would need to have a way to exclude them from dom0.
> > > 
> > >   >  From the discussion> we're having it seems like we should treat them
> > > equally. Also, looking at Luca patch,
> > > > we seem to special case /memreserve/ and only allow for overlap
> > > > /memresrve/ with boot modules
> > > > and not /reserved-memory/ with boot modules. If we are going to claim
> > > > that all the boot modules
> > > > can be marked as reserved by the bootloader, then I think we should
> > > > treat them equally providing
> > > > the same experience to dom0.
> > > 
> > > In my mind, /memreserved/ and /reserved-memory/ are different. The
> > > former doesn't say what the region is for, but the latter will indicate
> > > it.
> > In the context of this patch, I don't agree. We're discussing overlap, and
> > if a region A
> > from /memreserve/ overlaps fully with a module A, we know what is the
> > purpose of it.
> > Today it's initrd, but as you say we cannot rule out other modules as well.
> 
> To give a concrete example, the /reserved-region/ can be used to reserve space
> for the VGA buffer. It would be odd that someone would put the boot module in
> the middle of the VGA buffer... If Xen ends up to use the VGA buffer (not the
> case today), then it would be a problem. Xen would need to be reworked to move
> all boot modules outside of the memory because it can access the VGA (or any
> other reserved regions).
> 
> The problem is slightly different for /memreserve/ because we don't exactly
> know what the regions are for until we parse the rest of the DT. Yes
> technically, a user could put the initrd in the wrong place. So the problem is
> the same. But this is a relexation I am more willing to accept over
> /reserved-region/ right now.

Looking at the specification, I believe we should handle
/reserved-memory and /memreserve/ differently. Note that I have not
reviewed this patch; my comments are based solely on the expected Xen
behavior at the specification level.

Given that /reserved-memory regions are designated for special driver
use, I think Xen should remap all /reserved-memory regions to Dom0.
Ideally, Xen would determine which driver requires each /reserved-memory
region and assign only the relevant region to the respective domain,
rather than assigning all regions to Dom0. However, for now, we can take
this as an initial simplification.

On the other hand, since /memreserve/ is not intended for general use
and we do not know its content, I believe /memreserve/ should not be
mapped to Dom0 or any domain. It could be included in Xen's directmap,
but Xen itself should not access it. If another device tree node
represents a range or a subset of a range also described in
/memreserve/, that node should take precedence, and the corresponding
range should be assigned to Dom0 (or another domain, such as DomU, or
Xen, as appropriate). Unfortunately, this implies Xen needs to
understand the linux,initrd node.

I think /memreserve/ is valuable for protecting certain areas from the
operating system. For instance, it could be used as a storage area for
guest EFI variables in a VM, where the guest OS should never access the
range. However, I do not believe the initrd range is a good use of
/memreserve/ and similar items, which are meant to be freed anyway and
where Linux already knows the exact range and its intended use. So I
would not change Xen to start reserving the initrd range for Linux. The
likely reason U-Boot uses /memreserve/ is that the U-Boot code
implementing this behavior predates the introduction of
/reserved-memory.


From xen-devel-bounces@lists.xenproject.org Thu Nov 14 22:47:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Nov 2024 22:47:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836832.1252735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBicB-0007V1-UG; Thu, 14 Nov 2024 22:47:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836832.1252735; Thu, 14 Nov 2024 22:47: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 1tBicB-0007Uu-Re; Thu, 14 Nov 2024 22:47:03 +0000
Received: by outflank-mailman (input) for mailman id 836832;
 Thu, 14 Nov 2024 22:47: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=HLpf=SJ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tBicA-0007UM-CX
 for xen-devel@lists.xenproject.org; Thu, 14 Nov 2024 22:47:02 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20622.outbound.protection.outlook.com
 [2a01:111:f403:2613::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a5c7b69-a2da-11ef-a0c7-8be0dac302b0;
 Thu, 14 Nov 2024 23:46:57 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB7229.eurprd03.prod.outlook.com
 (2603:10a6:102:10a::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.19; Thu, 14 Nov
 2024 22:46:50 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8158.013; Thu, 14 Nov 2024
 22:46: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: 5a5c7b69-a2da-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjIyIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjVhNWM3YjY5LWEyZGEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjI0NDE3LjYzNDMzMSwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xSQtBbpTqAGAmtB4Ivx0TNTxu+G0QxYQg3CFqTXORYC6Cp4QTkILF/SoBENaFTwehArZ+K0RQW7Jsb7Ry8Y4E4H66ngojRW+O+ZSn/CsQkuA5bkhLxRegx+BvSJas9yFY4pk/txv0no0KxRRKQQBJsCtlFLsOcFTCJzP/k/GarAYUiH42QxO1TU2rwfQ8KILDRBvPYapgRd7rFDl6k1j/Gg0gSE/RiC6t9V1FpClwlCaazHdWnLrIewvZ1dWI01tilwMQCGUjDio2U9pddfR7TpuWhGo4ie82TBDuLTNBsZbXeCA/gfSrVrjAR0Ak/WoraPSxNVCw5LlFiSzJPtGsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bTwGWWosyBVRXFNlaD+HeGa7HUKQ1syR0zon0uY8oeo=;
 b=Ixx325zaT43h2eIMlBvhgOxgLi5WJyZ5KRAGA2S0ty/2UDpfqOGQvNNE9AjzsOmnI4TuWrwX/iazVGfDvo+2PEqi/8QdHsCzwFgIkEGCdedaDysH4ktY/+OOZhwS6gbHB8eND8HkOXaz5LbtXctvvxsgpn/VLgr8K4zMwyZafVvlkkIa8kLCN7afkQdx55GUdgX2Pfo6Rn2yTMGW0r8pzlnV181x/bITur/RCpiG4uj/X4dsYQe/nnurKVPeEuUid1fAtEemepLiyBkeYuI+e+OsnFnq8C/T+KlRz1VYel1DCKHk/RRQDJ5pgMJwsL8R1QtiFdfHUamBcOhQZpwh+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=bTwGWWosyBVRXFNlaD+HeGa7HUKQ1syR0zon0uY8oeo=;
 b=nOFWCgGT//SA3TFTM0lRhakYLvukFke9PrMtkUiO4PhmCTYtYrUFhR7Z71CTVW1VzN8rU/gAyvhfGCzolCCzmny4ELoGc5YILaks68PDliJPi5c6VeOYdd9tnzdgtiCwPLqpU0FSMMNZoW4axXS8C8XG/dC8dc1Q6Jm2r/yzZudiWcL4P6DRqCG22TYc2IlVcOWzbFnrqzL0pH7GSJoDTyy3DO0RiJsq1728lIb+Z2IJFcgr07V5vXakVIB3sKawzwqrwKr83wA0yJt85hyP1KCQxkFBHhKPRJcegjpiEDbf4CVc57ZGdRIHFKcaXA7dDmfpyET75S7EcGYIuDqbig==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 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>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
Subject: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Index: AQHbNucXRmUX3Y7lRUGcS7d55ZSXhw==
Date: Thu, 14 Nov 2024 22:46:50 +0000
Message-ID: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PA4PR03MB7229:EE_
x-ms-office365-filtering-correlation-id: a0f35f86-832c-4ca5-2784-08dd04fe3a33
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?vF4Bfu/xQGcIHVx88aQEO49b1c3Tzg56RR0v3r/jWF4WZr6IXStVHtceCX?=
 =?iso-8859-1?Q?MDv3nMsx0khl2QRMQDl/xu8lKTMnLkC0C4ZosRubp76QF5ksLnU8Xxv9zx?=
 =?iso-8859-1?Q?sN32E1AIv6GKyTpjIShuo2RCbl5TY0CU8mXlb/J5pQbDojOgjXYw9wZ734?=
 =?iso-8859-1?Q?3DU68grw7PLcWhYb+cDjG2f5rnbWZyRzulbNVlEQ5e6IxLqaYDMigLc5Y6?=
 =?iso-8859-1?Q?f4wSk1B9hK8JQArZtqx3a8nhukJFuqYxh8Hd4d+hDE40DusD9EoiUy31g+?=
 =?iso-8859-1?Q?aOWj4k+qlYPhbe7C3wJMBdVf1NoS4aY624oyVVQ9wlPxYOu801WCSa2yR0?=
 =?iso-8859-1?Q?kDmjHpm79JRQFgRYhA4ALBxs8QoObnrtTNmjZl+XgtSYGL324YWbwiumO6?=
 =?iso-8859-1?Q?YwDlf/C1DyQ/UCqR98UZVbih6HkdkJeejFF/o74wNBeTcSEVBYKocO2uo/?=
 =?iso-8859-1?Q?9rVe1go6/PwHGtYRe7vtgIJhsp4E7bW7Q9xe6Sfzk9R9anBEDflk4KZiyy?=
 =?iso-8859-1?Q?IA4JYqCjkVY1e0TzRPvj0VWGpxPbBkkN91c4NuK7Y70c+cxiZ9pY38upk6?=
 =?iso-8859-1?Q?9XwWNtPOTnp83ESRjCFsmPgwgO6f0QOWMiS7bTIfAMln8MX5LCogXh/fq9?=
 =?iso-8859-1?Q?6V26TRe9pPyQEBzDc3NQ0TJov9PBzuG6SUuhazj8ogGuAZwfptaJptdALh?=
 =?iso-8859-1?Q?C1KEAdQy1AVMoS6LhSc/QoWDuzHnh5Ad76UK1vJ/66jqRNMbJC515R9g81?=
 =?iso-8859-1?Q?Ve4AirXuV/Hdy9sAHHA6kjycV2w5QmBSZI1Wx87lZ9qNWVBWCmL9R26vEn?=
 =?iso-8859-1?Q?z/R63LuvPmtMObCQo/q0iCYJgKBlAR/E8AsSr9ngvdIfvsHnp/NvPfJuCG?=
 =?iso-8859-1?Q?ZTRaEv8289sFAip9BI49uABllQxRXp8sCVPZbheGLoIV8cQU9SgXt66KGT?=
 =?iso-8859-1?Q?3PR/cyMjja/qMIkINyfm3l/Xbu/ii0RrKcxDPBv8ewDhQqCZSmEz0/WWWR?=
 =?iso-8859-1?Q?0E7tmSYtXmarVfsC3ucMN5r6f8gmvf157V8vhglEk4Cs8HBiYhqpQgPT/d?=
 =?iso-8859-1?Q?O74JR1KcLbNxFaVGcisK0krf2IxEyblWNibd3K8UqJn4EhmP6PVx9EdJFi?=
 =?iso-8859-1?Q?CL5GlPHuSgHyE2zCcNg1UcHWYbEVIBVZYNa28XXGqpO31/DqsZPQG151tC?=
 =?iso-8859-1?Q?/txetRZ+KkqmmxiamMiESfw8e/0+ve0FM7qGHRAav9uk6lwwQsOdAaJc5X?=
 =?iso-8859-1?Q?8gdF6OJ0Dz046AFODPCL+QsdJVCIyJ4Z9o+1nZGSE0xhbR/fOcEQQCby4l?=
 =?iso-8859-1?Q?rWgdP6z8ICHzIFQxIqlt1ie+jurO5KWSV6Mwf49IulerKGxWwJadH5qNT/?=
 =?iso-8859-1?Q?Tba4naSc3l6Qy/vOOZobOt/yRAJN68XQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?RTCUa1MgGDPPihwADD7M4RJh0KQzqCZ+DglcIS8OZpLu3BPMQAxteCzYgx?=
 =?iso-8859-1?Q?hKJipFVEz8+xZEiTV8qzcLkxMRL/vVdIuAPtukZ4POS3qhbWU43GQcJ3m/?=
 =?iso-8859-1?Q?7o2jk/yd7XDjzWwNwJjWXkywFe7mVhShnWBSP+dAjTKuaujcXyul1p9zJu?=
 =?iso-8859-1?Q?XH+FFQoVsVe4IPZcx+Tejt39JYahaAU1+kgGkkIYJTYODwHwley5Vfogfi?=
 =?iso-8859-1?Q?s4j/Z+vxw/DzcITytbbHfhPVA7GOCYZHLNRnC3wbV62zKaivcCU8D5DoEt?=
 =?iso-8859-1?Q?1poZM1BRV7M+oWLgKWC28qBd2g6YASqaeu0EMh8tmlTUnpXi7OvXlguLiV?=
 =?iso-8859-1?Q?Y+AYMaU4b70AEI1Naio345ekEFz+2H5lJjepgTyVYkCI74efH0mh2XC7v+?=
 =?iso-8859-1?Q?aKdU9oBA44OR6OGv+wiBlqmjYVjrzEX85s+Otzs+R1cPIZGOT4Y2As1fV3?=
 =?iso-8859-1?Q?Xl8l2xRMAoSaDCewaWwhrykE5dusVqAGseZTysWSOpnB6lKheqnZnV8Ncn?=
 =?iso-8859-1?Q?phABUH/x4gq6A9RD50sYXEYIASjfj1PlrPBCV8HPqJz/oVM7ZMWNFynkYA?=
 =?iso-8859-1?Q?layFT46y5L69miT5qbGryg1Zj72lGI41+V13CIIEf+MXoYE5KooztL+870?=
 =?iso-8859-1?Q?jlNcb47XLJblUruzwTLLZbny8OnvMEbLmmknRQayW/H4nZOJ2krJ75w7B1?=
 =?iso-8859-1?Q?E/dsM/Ie0m/b1ZLiuT97I3rByWzQrnb69QtLzlPQjriNFmw86SAHhxxqwi?=
 =?iso-8859-1?Q?bhUApRoyRspn0JkDAOfwIxCC5CZoLI/OqGWu6AaGR7EcKUb39UKH926woi?=
 =?iso-8859-1?Q?7DfD+LEDp6UpEb1Z05r546QYQYRyeIn9oFO0OUDPLZd5/JT79kJrcxsWm5?=
 =?iso-8859-1?Q?v9zV2770NcR9QaV3Ob7gzCXK8Ht2M63r2p9Cz159ewkDziKY7ZzE504q4c?=
 =?iso-8859-1?Q?Y7Yas8Sy7c7b9Pq4jJx5ysEgaPqRz0zPTF1xeAkJV6lYvYdQqAN5H/5XCq?=
 =?iso-8859-1?Q?cNxGQiMbRevgsRwO4+mol31d20A9H0O36/h8HUDZdncIR3pGUKPfeanXqd?=
 =?iso-8859-1?Q?+Def2/CSz6/fYsfAK25eXnHZ34gSeh/pOpjQMN6kOM9onYkVduDn2tMMoK?=
 =?iso-8859-1?Q?g70+68W2C9B4tDXlsyllxi/LlruYgnPjsl2uzwSxTZRbKagNoMnFAXutmm?=
 =?iso-8859-1?Q?XVYPMJTpbyYTNNDbef+HE6RZ9QsLIDEzj/KeOOLIMc9r77BGS1BJjQ1BFr?=
 =?iso-8859-1?Q?Hw7BDPAEMLHiI6oo83jtJlVkj5VPeEhahobV2NsUGGyS8kxx3GE40wMzBM?=
 =?iso-8859-1?Q?Fru/UdlTG0fIMhUjLxoWBi5PeVS3rjcdvO1uMfoLcCSaUBhgJ4VAAQf5+o?=
 =?iso-8859-1?Q?Mq5IOeIQa1LWh9nJ/1+RAy3mGnHkgS2SheGHJjReBaM2OczgQjWdocuggn?=
 =?iso-8859-1?Q?nTUkMMx2kTFUsccMKGDexifKT8oFOrOrsx9KjnEcgka1FBuGyhXEhPuU0k?=
 =?iso-8859-1?Q?/PIYQHlgUtBvE7FDjkT8iJpaDat9fnsDwB2CCXyfIsE1GuDK2y1NAqBTr/?=
 =?iso-8859-1?Q?XvnCEoGOdA45JdWIx/OhhW2rEkc8cCj5GivAtaKGZNQOpx4ROM1iAv6Ry/?=
 =?iso-8859-1?Q?iUhqWqADVmdKLf80HP9OeyVPvE+UffV49o1aODNLRKSoa+GLx28jKoiQ?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a0f35f86-832c-4ca5-2784-08dd04fe3a33
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2024 22:46:50.0515
 (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: c+a3RDThjm0oDx77uPlkpPupc35oWjKvU/Yh15kwENsIteh9gEEUsc6PaivD2auh4Y+bW/B4eEydnfF/WlEnem9+J3UBO3bGtf6ZnXtZcDA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7229

LibAFL, which is a part of AFL++ project is a instrument that allows
us to perform fuzzing on beremetal code (Xen hypervisor in this case)
using QEMU as an emulator. It employs QEMU's ability to create
snapshots to run many tests relatively quickly: system state is saved
right before executing a new test and restored after the test is
finished.

This patch adds all necessary plumbing to run aarch64 build of Xen
inside that LibAFL-QEMU fuzzer. From the Xen perspective we need to
do following things:

1. Able to communicate with LibAFL-QEMU fuzzer. This is done by
executing special opcodes, that only LibAFL-QEMU can handle.

2. Use interface from p.1 to tell the fuzzer about code Xen section,
so fuzzer know which part of code to track and gather coverage data.

3. Report fuzzer about crash. This is done in panic() function.

4. Prevent test harness from shooting itself in knee.

Right now test harness is an external component, because we want to
test external Xen interfaces, but it is possible to fuzz internal code
if we want to.

Test harness is implemented as a Zephyr-based application which launches
as Dom0 kernel and performs different tests. As test harness can issue
hypercall that shuts itself down, KConfig option
CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING was added. It basically tells
fuzzer that test was completed successfully if Dom0 tries to shut
itself (or the whole machine) down.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

I tried to fuzz the vGIC emulator and hypercall interface. While vGIC
fuzzing didn't yield any interesting results, hypercall fuzzing found a
way to crash the hypervisor from Dom0 on aarch64, using
"XEN_SYSCTL_page_offline_op" with "sysctl_query_page_offline" sub-op,
because it leads to page_is_ram_type() call which is marked
UNREACHABLE on ARM.
---
 docs/hypervisor-guide/fuzzing.rst           | 102 +++++++++++++
 xen/arch/arm/Kconfig.debug                  |  26 ++++
 xen/arch/arm/Makefile                       |   1 +
 xen/arch/arm/include/asm/libafl_qemu.h      |  54 +++++++
 xen/arch/arm/include/asm/libafl_qemu_defs.h |  37 +++++
 xen/arch/arm/libafl_qemu.c                  | 152 ++++++++++++++++++++
 xen/arch/arm/psci.c                         |  13 ++
 xen/common/sched/core.c                     |  17 +++
 xen/common/shutdown.c                       |   7 +
 xen/drivers/char/console.c                  |   8 ++
 10 files changed, 417 insertions(+)
 create mode 100644 docs/hypervisor-guide/fuzzing.rst
 create mode 100644 xen/arch/arm/include/asm/libafl_qemu.h
 create mode 100644 xen/arch/arm/include/asm/libafl_qemu_defs.h
 create mode 100644 xen/arch/arm/libafl_qemu.c

diff --git a/docs/hypervisor-guide/fuzzing.rst b/docs/hypervisor-guide/fuzz=
ing.rst
new file mode 100644
index 0000000000..9570de7670
--- /dev/null
+++ b/docs/hypervisor-guide/fuzzing.rst
@@ -0,0 +1,102 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Fuzzing
+=3D=3D=3D=3D=3D=3D=3D
+
+It is possible to use LibAFL-QEMU for fuzzing hypervisor. Right now
+only aarch64 is supported and only hypercall fuzzing is enabled in the
+test harness, but there are plans to add vGIC interface fuzzing, PSCI
+fuzzing and vPL011 fuzzing as well.
+
+
+Principle of operation
+----------------------
+
+LibAFL-QEMU is a part of American Fuzzy lop plus plus (AKA AFL++)
+project. It uses special build of QEMU, that allows to fuzz baremetal
+software like Xen hypervisor or Linux kernel. Basic idea is that we
+have software under test (Xen hypervisor in our case) and a test
+harness application. Test harness uses special protocol to communicate
+with LibAFL outside of QEMU to get input data and report test
+result. LibAFL monitors which branches are taken by Xen and mutates
+input data in attempt to discover new code paths that eventually can
+lead to a crash or other unintended behavior.
+
+LibAFL uses QEMU's `snapshot` feature to run multiple test without
+restarting the whole system every time. This speeds up fuzzing process
+greatly.
+
+So, to try Xen fuzzing we need three components: LibAFL-based fuzzer,
+test harness and Xen itself.
+
+Building Xen for fuzzing
+------------------------
+
+Xen hypervisor should be built with these two options::
+
+ CONFIG_LIBAFL_QEMU_FUZZER=3Dy
+ CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING=3Dy
+
+Building test harness
+---------------------
+
+We need to make low-level actions, like issuing random hypercalls, so
+for test harness we use special build of Zephyr application.
+
+You need to prepare environment for building Zephyr as described in
+getting `started guide
+<https://docs.zephyrproject.org/latest/develop/getting_started/index.html>=
`_.
+
+Next, download test harness application and built it::
+
+  # mkdir zephyr-harness
+  # cd zephyr-harness
+  # west init -m https://github.com/xen-troops/xen-fuzzer-harness
+  # cd xen-fuzzer-harness
+  # west update
+  # west build
+
+Building LibAFL-QEMU based fuzzer
+---------------------------------
+
+Fuzzer is written in Rust, so you need Rust toolchain and `cargo` tool
+in your system. Please refer to your distro documentation on how to
+obtain them.
+
+Once Rust is ready, fetch and build the fuzzer::
+
+  # git clone https://github.com/xen-troops/xen-fuzzer-rs
+  # cd xen-fuzzer-rs
+  # cargo build
+
+Running the fuzzer
+------------------
+
+Run it like this::
+
+  # target/debug/xen_fuzzer  -accel tcg \
+  -machine virt,virtualization=3Dyes,acpi=3Doff \
+  -m 4G \
+  -L  target/debug/qemu-libafl-bridge/pc-bios  \
+  -nographic \
+  -cpu max \
+  -append 'dom0_mem=3D512 loglvl=3Dnone guest_loglvl=3Dnone console=3Ddtua=
rt' \
+  -kernel /path/to/xen/xen/xen \
+  -device guest-loader,addr=3D0x42000000,kernel=3D/path/to/zephyr-harness/=
build/zephyr/zephyr.bin \
+  -snapshot
+
+Any inputs that led to crashes will be found in `crashes` directory.
+
+You can use standard QEMU parameters to redirect console output,
+change memory size, HW compisition, etc.
+
+
+TODOs
+-----
+
+ - Add x86 support.
+ - Implement fuzzing of other external hypervisor interfaces.
+ - Better integration: user should not build manually multiple
+   different projects
+ - Add ability to re-run fuzzer with a given input to make crash
+   debugging more comfortable
diff --git a/xen/arch/arm/Kconfig.debug b/xen/arch/arm/Kconfig.debug
index 7660e599c0..9e2c4649ed 100644
--- a/xen/arch/arm/Kconfig.debug
+++ b/xen/arch/arm/Kconfig.debug
@@ -183,3 +183,29 @@ config EARLY_PRINTK_INC
 	default "debug-mvebu.inc" if EARLY_UART_MVEBU
 	default "debug-pl011.inc" if EARLY_UART_PL011
 	default "debug-scif.inc" if EARLY_UART_SCIF
+
+config LIBAFL_QEMU_FUZZER
+	bool "Enable LibAFL-QEMU calls"
+	help
+	  This option enables support for LibAFL-QEMU calls. Enable this
+	  only when you are going to run hypervisor inside LibAFL-QEMU.
+	  Xen will report code section to LibAFL and will report about
+	  crash when it panics.
+
+	  Do not try to run Xen built on this option on any real hardware
+	  or plain QEMU, because it will just crash during startup.
+
+config LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+	depends on LIBAFL_QEMU_FUZZER
+	bool "LibAFL: Report any attempt to suspend/destroy a domain as a success=
"
+	help
+	  When fuzzing hypercalls, fuzzer sometimes will issue an hypercall that
+	  leads to a domain shutdown, or machine shutdown, or vCPU being
+	  blocked, or something similar. In this case test harness will not be
+	  able to report about successfully handled call to the fuzzer. Fuzzer
+	  will report timeout and mark this as a crash, which is not true. So,
+	  in such cases we need to report about successfully test case from the
+	  hypervisor itself.
+
+          Enable this option only if fuzzing attempt can lead to a correct
+	  stoppage, like when fuzzing hypercalls or PSCI.
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index e4ad1ce851..51b5e15b6a 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_TEE) +=3D tee/
 obj-$(CONFIG_HAS_VPCI) +=3D vpci.o
=20
 obj-$(CONFIG_HAS_ALTERNATIVE) +=3D alternative.o
+obj-${CONFIG_LIBAFL_QEMU_FUZZER} +=3D libafl_qemu.o
 obj-y +=3D cpuerrata.o
 obj-y +=3D cpufeature.o
 obj-y +=3D decode.o
diff --git a/xen/arch/arm/include/asm/libafl_qemu.h b/xen/arch/arm/include/=
asm/libafl_qemu.h
new file mode 100644
index 0000000000..b90cf48b9a
--- /dev/null
+++ b/xen/arch/arm/include/asm/libafl_qemu.h
@@ -0,0 +1,54 @@
+#ifndef LIBAFL_QEMU_H
+#define LIBAFL_QEMU_H
+
+#include <xen/stdint.h>
+#include "libafl_qemu_defs.h"
+#define LIBAFL_QEMU_PRINTF_MAX_SIZE 4096
+
+typedef uint64_t libafl_word;
+
+/**
+ * LibAFL QEMU header file.
+ *
+ * This file is a portable header file used to build target harnesses more
+ * conveniently. Its main purpose is to generate ready-to-use calls to
+ * communicate with the fuzzer. The list of commands is available at the b=
ottom
+ * of this file. The rest mostly consists of macros generating the code us=
ed by
+ * the commands.
+ */
+
+enum LibaflQemuEndStatus {
+  LIBAFL_QEMU_END_UNKNOWN =3D 0,
+  LIBAFL_QEMU_END_OK =3D 1,
+  LIBAFL_QEMU_END_CRASH =3D 2,
+};
+
+libafl_word libafl_qemu_start_virt(void *buf_vaddr, libafl_word max_len);
+
+libafl_word libafl_qemu_start_phys(void *buf_paddr, libafl_word max_len);
+
+libafl_word libafl_qemu_input_virt(void *buf_vaddr, libafl_word max_len);
+
+libafl_word libafl_qemu_input_phys(void *buf_paddr, libafl_word max_len);
+
+void libafl_qemu_end(enum LibaflQemuEndStatus status);
+
+void libafl_qemu_save(void);
+
+void libafl_qemu_load(void);
+
+libafl_word libafl_qemu_version(void);
+
+void libafl_qemu_page_current_allow(void);
+
+void libafl_qemu_internal_error(void);
+
+void __attribute__((format(printf, 1, 2))) lqprintf(const char *fmt, ...);
+
+void libafl_qemu_test(void);
+
+void libafl_qemu_trace_vaddr_range(libafl_word start, libafl_word end);
+
+void libafl_qemu_trace_vaddr_size(libafl_word start, libafl_word size);
+
+#endif
diff --git a/xen/arch/arm/include/asm/libafl_qemu_defs.h b/xen/arch/arm/inc=
lude/asm/libafl_qemu_defs.h
new file mode 100644
index 0000000000..2866cadaac
--- /dev/null
+++ b/xen/arch/arm/include/asm/libafl_qemu_defs.h
@@ -0,0 +1,37 @@
+#ifndef LIBAFL_QEMU_DEFS
+#define LIBAFL_QEMU_DEFS
+
+#define LIBAFL_STRINGIFY(s) #s
+#define XSTRINGIFY(s) LIBAFL_STRINGIFY(s)
+
+#if __STDC_VERSION__ >=3D 201112L
+  #define STATIC_CHECKS                                   \
+    _Static_assert(sizeof(void *) <=3D sizeof(libafl_word), \
+                   "pointer type should not be larger and libafl_word");
+#else
+  #define STATIC_CHECKS
+#endif
+
+#define LIBAFL_SYNC_EXIT_OPCODE 0x66f23a0f
+#define LIBAFL_BACKDOOR_OPCODE 0x44f23a0f
+
+#define LIBAFL_QEMU_TEST_VALUE 0xcafebabe
+
+#define LIBAFL_QEMU_HDR_VERSION_NUMBER 0111  // TODO: find a nice way to s=
et it.
+
+typedef enum LibaflQemuCommand {
+  LIBAFL_QEMU_COMMAND_START_VIRT =3D 0,
+  LIBAFL_QEMU_COMMAND_START_PHYS =3D 1,
+  LIBAFL_QEMU_COMMAND_INPUT_VIRT =3D 2,
+  LIBAFL_QEMU_COMMAND_INPUT_PHYS =3D 3,
+  LIBAFL_QEMU_COMMAND_END =3D 4,
+  LIBAFL_QEMU_COMMAND_SAVE =3D 5,
+  LIBAFL_QEMU_COMMAND_LOAD =3D 6,
+  LIBAFL_QEMU_COMMAND_VERSION =3D 7,
+  LIBAFL_QEMU_COMMAND_VADDR_FILTER_ALLOW =3D 8,
+  LIBAFL_QEMU_COMMAND_INTERNAL_ERROR =3D 9,
+  LIBAFL_QEMU_COMMAND_LQPRINTF =3D 10,
+  LIBAFL_QEMU_COMMAND_TEST =3D 11,
+} LibaflExit;
+
+#endif
diff --git a/xen/arch/arm/libafl_qemu.c b/xen/arch/arm/libafl_qemu.c
new file mode 100644
index 0000000000..58924ce6c6
--- /dev/null
+++ b/xen/arch/arm/libafl_qemu.c
@@ -0,0 +1,152 @@
+/* SPDX-License-Identifier: Apache-2.0 */
+/*
+   This file is based on libafl_qemu_impl.h and libafl_qemu_qemu_arch.h
+   from LibAFL project.
+*/
+#include <xen/lib.h>
+#include <xen/init.h>
+#include <xen/kernel.h>
+#include <asm/libafl_qemu.h>
+
+#define LIBAFL_DEFINE_FUNCTIONS(name, opcode)				\
+	libafl_word _libafl_##name##_call0(	\
+		libafl_word action) {					\
+		libafl_word ret;					\
+		__asm__ volatile (					\
+			"mov x0, %1\n"					\
+			".word " XSTRINGIFY(opcode) "\n"		\
+			"mov %0, x0\n"					\
+			: "=3Dr"(ret)					\
+			: "r"(action)					\
+			: "x0"						\
+			);						\
+		return ret;						\
+	}								\
+									\
+	libafl_word _libafl_##name##_call1(	\
+		libafl_word action, libafl_word arg1) {			\
+		libafl_word ret;					\
+		__asm__ volatile (					\
+			"mov x0, %1\n"					\
+			"mov x1, %2\n"					\
+			".word " XSTRINGIFY(opcode) "\n"		\
+			"mov %0, x0\n"					\
+			: "=3Dr"(ret)					\
+			: "r"(action), "r"(arg1)			\
+			: "x0", "x1"					\
+			);						\
+		return ret;						\
+	}								\
+									\
+	libafl_word _libafl_##name##_call2(	\
+		libafl_word action, libafl_word arg1, libafl_word arg2) { \
+		libafl_word ret;					\
+		__asm__ volatile (					\
+			"mov x0, %1\n"					\
+			"mov x1, %2\n"					\
+			"mov x2, %3\n"					\
+			".word " XSTRINGIFY(opcode) "\n"		\
+			"mov %0, x0\n"					\
+			: "=3Dr"(ret)					\
+			: "r"(action), "r"(arg1), "r"(arg2)		\
+			: "x0", "x1", "x2"				\
+			);						\
+		return ret;						\
+	}
+
+// Generates sync exit functions
+LIBAFL_DEFINE_FUNCTIONS(sync_exit, LIBAFL_SYNC_EXIT_OPCODE)
+
+// Generates backdoor functions
+LIBAFL_DEFINE_FUNCTIONS(backdoor, LIBAFL_BACKDOOR_OPCODE)
+
+static char _lqprintf_buffer[LIBAFL_QEMU_PRINTF_MAX_SIZE] =3D {0};
+
+libafl_word libafl_qemu_start_virt(void       *buf_vaddr,
+                                            libafl_word max_len) {
+  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_START_VIRT,
+                                 (libafl_word)buf_vaddr, max_len);
+}
+
+libafl_word libafl_qemu_start_phys(void       *buf_paddr,
+                                            libafl_word max_len) {
+  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_START_PHYS,
+                                 (libafl_word)buf_paddr, max_len);
+}
+
+libafl_word libafl_qemu_input_virt(void       *buf_vaddr,
+                                            libafl_word max_len) {
+  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_INPUT_VIRT,
+                                 (libafl_word)buf_vaddr, max_len);
+}
+
+libafl_word libafl_qemu_input_phys(void       *buf_paddr,
+                                            libafl_word max_len) {
+  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_INPUT_PHYS,
+                                 (libafl_word)buf_paddr, max_len);
+}
+
+void libafl_qemu_end(enum LibaflQemuEndStatus status) {
+  _libafl_sync_exit_call1(LIBAFL_QEMU_COMMAND_END, status);
+}
+
+void libafl_qemu_save(void) {
+  _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_SAVE);
+}
+
+void libafl_qemu_load(void) {
+  _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_LOAD);
+}
+
+libafl_word libafl_qemu_version(void) {
+  return _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_VERSION);
+}
+
+void libafl_qemu_internal_error(void) {
+  _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_INTERNAL_ERROR);
+}
+
+void lqprintf(const char *fmt, ...) {
+  va_list args;
+  int res;
+  va_start(args, fmt);
+  res =3D vsnprintf(_lqprintf_buffer, LIBAFL_QEMU_PRINTF_MAX_SIZE, fmt, ar=
gs);
+  va_end(args);
+
+  if (res >=3D LIBAFL_QEMU_PRINTF_MAX_SIZE) {
+    // buffer is not big enough, either recompile the target with more
+    // space or print less things
+    libafl_qemu_internal_error();
+  }
+
+  _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_LQPRINTF,
+                          (libafl_word)_lqprintf_buffer, res);
+}
+
+void libafl_qemu_test(void) {
+  _libafl_sync_exit_call1(LIBAFL_QEMU_COMMAND_TEST, LIBAFL_QEMU_TEST_VALUE=
);
+}
+
+void libafl_qemu_trace_vaddr_range(libafl_word start,
+                                            libafl_word end) {
+  _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_VADDR_FILTER_ALLOW, start, e=
nd);
+}
+
+void libafl_qemu_trace_vaddr_size(libafl_word start,
+                                           libafl_word size) {
+  libafl_qemu_trace_vaddr_range(start, start + size);
+}
+
+static int init_afl(void)
+{
+	vaddr_t xen_text_start =3D (vaddr_t)_stext;
+	vaddr_t xen_text_end =3D (vaddr_t)_etext;
+
+	lqprintf("Telling AFL about code section: %lx - %lx\n", xen_text_start, x=
en_text_end);
+
+	libafl_qemu_trace_vaddr_range(xen_text_start, xen_text_end);
+
+	return 0;
+}
+
+__initcall(init_afl);
diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
index b6860a7760..c7a51a1144 100644
--- a/xen/arch/arm/psci.c
+++ b/xen/arch/arm/psci.c
@@ -17,6 +17,7 @@
 #include <asm/cpufeature.h>
 #include <asm/psci.h>
 #include <asm/acpi.h>
+#include <asm/libafl_qemu.h>
=20
 /*
  * While a 64-bit OS can make calls with SMC32 calling conventions, for
@@ -49,6 +50,10 @@ int call_psci_cpu_on(int cpu)
=20
 void call_psci_cpu_off(void)
 {
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+    libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
+
     if ( psci_ver > PSCI_VERSION(0, 1) )
     {
         struct arm_smccc_res res;
@@ -62,12 +67,20 @@ void call_psci_cpu_off(void)
=20
 void call_psci_system_off(void)
 {
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+    libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
+
     if ( psci_ver > PSCI_VERSION(0, 1) )
         arm_smccc_smc(PSCI_0_2_FN32_SYSTEM_OFF, NULL);
 }
=20
 void call_psci_system_reset(void)
 {
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+    libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
+
     if ( psci_ver > PSCI_VERSION(0, 1) )
         arm_smccc_smc(PSCI_0_2_FN32_SYSTEM_RESET, NULL);
 }
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index d6296d99fd..fd722e0231 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -47,6 +47,10 @@
 #define pv_shim false
 #endif
=20
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER
+#include <asm/libafl_qemu.h>
+#endif
+
 /* opt_sched: scheduler - default to configured value */
 static char __initdata opt_sched[10] =3D CONFIG_SCHED_DEFAULT;
 string_param("sched", opt_sched);
@@ -1452,6 +1456,10 @@ static long do_poll(const struct sched_poll *sched_p=
oll)
     if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )
         return -EFAULT;
=20
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+    libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
+
     set_bit(_VPF_blocked, &v->pause_flags);
     v->poll_evtchn =3D -1;
     set_bit(v->vcpu_id, d->poll_mask);
@@ -1887,12 +1895,18 @@ ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(v=
oid) arg)
     {
     case SCHEDOP_yield:
     {
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+        libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
         ret =3D vcpu_yield();
         break;
     }
=20
     case SCHEDOP_block:
     {
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+        libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
         vcpu_block_enable_events();
         break;
     }
@@ -1907,6 +1921,9 @@ ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(voi=
d) arg)
=20
         TRACE_TIME(TRC_SCHED_SHUTDOWN, current->domain->domain_id,
                    current->vcpu_id, sched_shutdown.reason);
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+        libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
         ret =3D domain_shutdown(current->domain, (u8)sched_shutdown.reason=
);
=20
         break;
diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c
index c47341b977..1340f4b606 100644
--- a/xen/common/shutdown.c
+++ b/xen/common/shutdown.c
@@ -11,6 +11,10 @@
 #include <xen/kexec.h>
 #include <public/sched.h>
=20
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER
+#include <asm/libafl_qemu.h>
+#endif
+
 /* opt_noreboot: If true, machine will need manual reset on error. */
 bool __ro_after_init opt_noreboot;
 boolean_param("noreboot", opt_noreboot);
@@ -32,6 +36,9 @@ static void noreturn reboot_or_halt(void)
=20
 void hwdom_shutdown(unsigned char reason)
 {
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
+    libafl_qemu_end(LIBAFL_QEMU_END_OK);
+#endif
     switch ( reason )
     {
     case SHUTDOWN_poweroff:
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 7da8c5296f..1262515e70 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -41,6 +41,9 @@
 #ifdef CONFIG_SBSA_VUART_CONSOLE
 #include <asm/vpl011.h>
 #endif
+#ifdef CONFIG_LIBAFL_QEMU_FUZZER
+#include <asm/libafl_qemu.h>
+#endif
=20
 /* console: comma-separated list of console outputs. */
 static char __initdata opt_console[30] =3D OPT_CONSOLE_STR;
@@ -1299,6 +1302,11 @@ void panic(const char *fmt, ...)
=20
     kexec_crash(CRASHREASON_PANIC);
=20
+    #ifdef CONFIG_LIBAFL_QEMU_FUZZER
+    /* Tell the fuzzer that we crashed */
+    libafl_qemu_end(LIBAFL_QEMU_END_CRASH);
+    #endif
+
     if ( opt_noreboot )
         machine_halt();
     else
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 00:11:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 00:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836845.1252745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBjvs-0002TU-KK; Fri, 15 Nov 2024 00:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836845.1252745; Fri, 15 Nov 2024 00: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 1tBjvs-0002TN-Hg; Fri, 15 Nov 2024 00:11:28 +0000
Received: by outflank-mailman (input) for mailman id 836845;
 Fri, 15 Nov 2024 00:11: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=N6VO=SK=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1tBjvq-0002TH-Kd
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 00:11:26 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23520dc3-a2e6-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 01:11:20 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 4AF0B9Xd051258
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Thu, 14 Nov 2024 19:11:15 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 4AF0B8rU051257;
 Thu, 14 Nov 2024 16:11:08 -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: 23520dc3-a2e6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijc0LjEwNC4xODguNCIsImhlbG8iOiJtYWlsaG9zdC5tNXAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIzNTIwZGMzLWEyZTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjI5NDgwLjg4NTY4LCJzZW5kZXIiOiJlaGVtQG01cC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
Date: Thu, 14 Nov 2024 16:11:08 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Cc: Andrei Semenov <andrei.semenov@vates.tech>, xen-devel@lists.xenproject.org,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: AMD EPYC virtual network performances
Message-ID: <ZzaRnFLMq9OY3jj6@mattapan.m5p.com>
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
 <ZzTg_p-8E0_jrkii@mattapan.m5p.com>
 <467e46ad-d0d0-4217-9b70-b48e3c7a1fb5@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <467e46ad-d0d0-4217-9b70-b48e3c7a1fb5@suse.com>
X-Spam-Status: No, score=0.3 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

On Wed, Nov 13, 2024 at 08:20:02PM +0100, JÃ¼rgen GroÃŸ wrote:
> On 13.11.24 18:25, Elliott Mitchell wrote:
> > On Tue, Jul 09, 2024 at 08:36:18AM +0000, Andrei Semenov wrote:
> > > 
> > > After some investigations we notices a huge performances drop (perfs divided
> > > by
> > > factor of 5) starting from 5.10.88 Linux kernel version on the AMD EPYC
> > > platforms. The patch introduced in this kernel version that allows to
> > > pinpoint
> > > the buggy behavior is :
> > > 
> > >  Â â€œxen/netfront: harden netfront against event channel stormsâ€
> > > d31b3379179d64724d3bbfa87bd4ada94e3237de
> > > 
> > > The patch basically binds the network frontend to the `xen_lateeoi_chip`
> > > irq_chip (insead of `xen_dynamic_chip`) which allows to its clients to
> > > inform
> > > the chip if spurious interrupts are detected and so the delay in interrupt
> > > treatment is introduced by the chip.
> > 
> > I worry I'm being knave here.
> > 
> > For the heck of it, I took a glance at b27d47950e48.  If my understanding
> > is correct, b27d47950e48 is making a very basic (and wrong) assumption
> > about timing/latency.
> > 
> > In particular any time either side receive an event, it will handle
> > X # of incoming payloads and Y # of acknowledged outgoing payloads.  As
> > such if X + Y > 1, then up to X + Y - 1 spurious events may be detected.
> > The issue is there is no synchronization between the event channel and
> > the work queues.
> > 
> > In particular the network back end could legitimately generate:
> > 
> > work0	signal0	work1	signal1	work2	signal2	work3	signal3
> > 
> > Whereas the network front end may handle this as:
> > 
> > event0	work0	work1	work2	work3	event1	event2	event3
> > 
> > Where b27d47950e48 would interpret events 1-3 as spurious, even though
> > they're perfectly legitimate.  The same phenomenon could occur in both
> > directions and also with the Xen block devices.
> 
> No.
> 
> For one, as long as event0 isn't EOI'd, the other events would just be
> merged into a single one.

With the 2-level bitfield event channel certainly, but what if FIFO
event channels were in use?

> Additionally, as long as work0 isn't acknowledged by incrementing the
> consumer index, additional queued work items should NOT result in
> additional events being sent. An event is only sent if a work item is
> queued to a ring buffer with consumer == producer.

What if the front-end and back-end were running simultaneously on
different processors?

> > Ultimately how is the network portion of XSA-391 any different from any
> > other network DoS?  If an interrupt is generated for every single packet
> > of a series of runt frames, there will be heavy processor use for little
> > network traffic.
> 
> The problem is that a steady stream of events could keep the other side
> in IRQ handling for arbitrary amount of times, leading to hangups.

I know.  I was pointing out this seems little different from other
typical network DoS behavior.  This sort of situation is also an issue
when network speeds are increasing since more packets means more
interrupts.

> > AMD systems may fair worse than Intel systems due to differing cache
> > coherence behavior/latency.  Perhaps AMD's NUMA implementation adds
> > some latency.  (huh, suddenly the RAID1 issue comes to mind)
> > 
> > 
> > Hopefully I'm not making knave speculation here.  Might this be the
> > simplest of issues, just it was missed due to being too obvious?
> 
> I don't agree with your analysis, see above.

Okay.  I was asking since it looked a bit odd and there has been no news
on this issue (unless I missed some patch flying by).

I don't know how large the impact of this is.  I wouldn't be surprised if
this turned out to overwhelm all my other efforts at performance
improvement.

Any news on your efforts to track this down?


-- 
(\___(\___(\______          --=> 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 Nov 15 00:46:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 00:46:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836856.1252756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBkTM-0006gY-7K; Fri, 15 Nov 2024 00:46:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836856.1252756; Fri, 15 Nov 2024 00:46: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 1tBkTM-0006gR-4k; Fri, 15 Nov 2024 00:46:04 +0000
Received: by outflank-mailman (input) for mailman id 836856;
 Fri, 15 Nov 2024 00: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=b7N1=SK=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1tBkTK-0006gL-Rq
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 00:46:03 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa3a323c-a2ea-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 01:45: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: fa3a323c-a2ea-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5My4xNDIuNDMuNTUiLCJoZWxvIjoiZ2Fsb2lzLmxpbnV0cm9uaXguZGUifQ==
X-Custom-Transaction: eyJpZCI6ImZhM2EzMjNjLWEyZWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjMxNTU4LjAwNTEyMiwic2VuZGVyIjoidGdseEBsaW51dHJvbml4LmRlIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1731631556;
	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=wmlctHEns5HH4kuTaBjX2JNcI1LzVOydASF++UAbmDY=;
	b=QOnTTM3upVgvLOqHHkULAR/Sd+IXv2/jwWShAxdu/d9Ou3VRQKwRFQcKkxYFlQbNCHuDKC
	qmtZIl1QGU9LvuaVEHVi6mN8leBtPwfqyHUmV8sQ4okR7sVQBV4nqtQqHtK44NZWa+achm
	KJtmcrXFernLrXFh8br79W+BBZcbUPnfW6G5ETbNxP5n4/wMMrok/VJbm/1lHIAX31JScD
	X4TbcxeFRb0UaQ4ZOxoYrise9V26pZtUHGM6uIGxT7DAWZfdtWm58X+EkXZorarJx6j3sJ
	jv7CYR1gtAzR1m3FucHfJnoCrMS9Ay9Ifg0KTixSjK7w1MQSxCZuE9xVfV0ltA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1731631556;
	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=wmlctHEns5HH4kuTaBjX2JNcI1LzVOydASF++UAbmDY=;
	b=B6FonATMAX4OxdtMR8JNBP8qWfBOIV1vFazP675PCOfWlXztCY+avvBu11Vcb9coe6V9WE
	q7IVbFH9tV+539Aw==
To: Philipp Stanner <pstanner@redhat.com>, Damien Le Moal
 <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>, Basavaraj Natikar
 <basavaraj.natikar@amd.com>, Jiri Kosina <jikos@kernel.org>, Benjamin
 Tissoires <bentiss@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Greg
 Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov <oakad@yahoo.com>,
 Sudarsana Kalluru <skalluru@marvell.com>, Manish Chopra
 <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>, GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>, Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam Sundar
 S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave Jiang
 <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn Helgaas
 <bhelgaas@google.com>, Alex Williamson <alex.williamson@redhat.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Mario Limonciello
 <mario.limonciello@amd.com>, Chen Ni <nichen@iscas.ac.cn>, Ricky Wu
 <ricky_wu@realtek.com>, Al Viro <viro@zeniv.linux.org.uk>, Breno Leitao
 <leitao@debian.org>, Kevin Tian <kevin.tian@intel.com>, Mostafa Saleh
 <smostafa@google.com>, Andy Shevchenko
 <andriy.shevchenko@linux.intel.com>, Jason Gunthorpe <jgg@ziepe.ca>, Yi
 Liu <yi.l.liu@intel.com>, Kunwu Chan <chentao@kylinos.cn>, Ankit Agrawal
 <ankita@nvidia.com>, Christian Brauner <brauner@kernel.org>, Reinette
 Chatre <reinette.chatre@intel.com>, Eric
 Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-input@vger.kernel.org, netdev@vger.kernel.org,
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 11/11] Remove devres from pci_intx()
In-Reply-To: <49bb6fc9ebff3cae844da0465ceadeef8d3217c7.camel@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
 <20241113124158.22863-13-pstanner@redhat.com> <87msi3ksru.ffs@tglx>
 <49bb6fc9ebff3cae844da0465ceadeef8d3217c7.camel@redhat.com>
Date: Fri, 15 Nov 2024 01:46:13 +0100
Message-ID: <8734jtl3xm.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

T24gVGh1LCBOb3YgMTQgMjAyNCBhdCAxMDowNSwgUGhpbGlwcCBTdGFubmVyIHdyb3RlOg0KPiBP
biBXZWQsIDIwMjQtMTEtMTMgYXQgMTc6MjIgKzAxMDAsIFRob21hcyBHbGVpeG5lciB3cm90ZToN
Cj4+IE9uIFdlZCwgTm92IDEzIDIwMjQgYXQgMTM6NDEsIFBoaWxpcHAgU3Rhbm5lciB3cm90ZToN
Cj4+ID4gcGNpX2ludHgoKSBpcyBhIGh5YnJpZCBmdW5jdGlvbiB3aGljaCBjYW4gc29tZXRpbWVz
IGJlIG1hbmFnZWQNCj4+ID4gdGhyb3VnaA0KPj4gPiBkZXZyZXMuIFRoaXMgaHlicmlkIG5hdHVy
ZSBpcyB1bmRlc2lyYWJsZS4NCj4+ID4gDQo+PiA+IFNpbmNlIGFsbCB1c2VycyBvZiBwY2lfaW50
eCgpIGhhdmUgYnkgbm93IGJlZW4gcG9ydGVkIGVpdGhlciB0bw0KPj4gPiBhbHdheXMtbWFuYWdl
ZCBwY2ltX2ludHgoKSBvciBuZXZlci1tYW5hZ2VkIHBjaV9pbnR4X3VubWFuYWdlZCgpLA0KPj4g
PiB0aGUNCj4+ID4gZGV2cmVzIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIHJlbW92ZWQgZnJvbSBwY2lf
aW50eCgpLg0KPj4gPiANCj4+ID4gQ29uc2VxdWVudGx5LCBwY2lfaW50eF91bm1hbmFnZWQoKSBp
cyBub3cgcmVkdW5kYW50LCBiZWNhdXNlDQo+PiA+IHBjaV9pbnR4KCkNCj4+ID4gaXRzZWxmIGlz
IG5vdyB1bm1hbmFnZWQuDQo+PiA+IA0KPj4gPiBSZW1vdmUgdGhlIGRldnJlcyBmdW5jdGlvbmFs
aXR5IGZyb20gcGNpX2ludHgoKS4gSGF2ZSBhbGwgdXNlcnMgb2YNCj4+ID4gcGNpX2ludHhfdW5t
YW5hZ2VkKCkgY2FsbCBwY2lfaW50eCgpLiBSZW1vdmUgcGNpX2ludHhfdW5tYW5hZ2VkKCkuDQo+
PiA+IA0KPj4gPiBTaWduZWQtb2ZmLWJ5OiBQaGlsaXBwIFN0YW5uZXIgPHBzdGFubmVyQHJlZGhh
dC5jb20+DQo+PiA+IC0tLQ0KPj4gPiDCoGRyaXZlcnMvbWlzYy9jYXJkcmVhZGVyL3J0c3hfcGNy
LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyICstDQo+PiA+IMKgZHJpdmVycy9taXNjL3Rp
Zm1fN3h4MS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA2
ICstLQ0KPj4gPiDCoC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfbWFpbi5j
wqAgfMKgIDIgKy0NCj4+ID4gwqBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFk
LmPCoMKgwqDCoMKgwqAgfMKgIDIgKy0NCj4+ID4gwqBkcml2ZXJzL250Yi9ody9hbWQvbnRiX2h3
X2FtZC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArLQ0KPj4gPiDCoGRyaXZl
cnMvbnRiL2h3L2ludGVsL250Yl9od19nZW4xLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAy
ICstDQo+PiA+IMKgZHJpdmVycy9wY2kvZGV2cmVzLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArLQ0KPj4gPiDCoGRyaXZlcnMvcGNpL21z
aS9hcGkuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8
wqAgMiArLQ0KPj4gPiDCoGRyaXZlcnMvcGNpL21zaS9tc2kuY8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQ0KPj4gPiDCoGRyaXZlcnMvcGNp
L3BjaS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgfCA0MyArLS0tLS0tLS0tLS0tLS0NCj4+ID4gLS0tLQ0KPj4gPiDCoGRyaXZlcnMvdmZp
by9wY2kvdmZpb19wY2lfY29yZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0N
Cj4+ID4gwqBkcml2ZXJzL3ZmaW8vcGNpL3ZmaW9fcGNpX2ludHJzLmPCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgfCAxMCArKy0tLQ0KPj4gPiDCoGRyaXZlcnMveGVuL3hlbi1wY2liYWNrL2NvbmZf
c3BhY2VfaGVhZGVyLmPCoMKgIHzCoCAyICstDQo+PiA+IMKgaW5jbHVkZS9saW51eC9wY2kuaMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEg
LQ0KPj4gPiDCoDE0IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9u
cygtKQ0KPj4gDQo+PiBOb3cgSSdtIHV0dGVybHkgY29uZnVzZWQuIFRoaXMgdW5kb2VzIHRoZSBw
Y2lfaW50eF91bm1hbmFnZWQoKSBjaHVybg0KPj4gd2hpY2ggeW91IGNhcmVmdWxseSBzcGxpdCBp
bnRvIHNldmVyYWwgcGF0Y2hlcyBmaXJzdC4NCj4NCj4gSGF2ZSB5b3UgcmVhZCB0aGUgZW1haWwg
SSBoYXZlIGxpbmtlZD8NCj4NCj4gVGhlcmUgaXMgYWxzbyB0aGUgY292ZXItbGV0dGVyIChkb2Vz
IGFueW9uZSBpbiB0aGUgY29tbXVuaXR5IGV2ZXIgcmVhZA0KPiB0aG9zZT8pIHdoaWNoIGV4cGxp
Y2l0bHkgc3RhdGVzOg0KPg0KPiAiUGF0Y2ggIlJlbW92ZSBkZXZyZXMgZnJvbSBwY2lfaW50eCgp
IiBvYnZpb3VzbHkgcmV2ZXJ0cyB0aGUgcHJldmlvdXMNCj4gcGF0Y2hlcyB0aGF0IG1hZGUgZHJp
dmVycyB1c2UgcGNpX2ludHhfdW5tYW5hZ2VkKCkuIEJ1dCB0aGlzIHdheSBpdCdzDQo+IGVhc2ll
ciB0byByZXZpZXcgYW5kIGFwcHJvdmUuIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGVhY2ggY2hl
Y2tlZCBvdXQNCj4gY29tbWl0IHNob3VsZCBwcm92aWRlIGNvcnJlY3QgYmVoYXZpb3IsIG5vdCBq
dXN0IHRoZSBlbnRpcmUgc2VyaWVzIGFzIGENCj4gd2hvbGUuIg0KDQpJIHJlYWQgaXQgYW5kIEkg
YXNzdW1lIHlvdXIgaW50ZW50aW9uIHdhcyB0byBmb3JjZSBhbiBleWUgb24gZXZlcnkgdXNlDQpj
YXNlIG9mIHBjaV9pbnR4KCkgYW5kIG5vdCBqdXN0IG9uIHRob3NlIHdoaWNoIG5lZWQgdG8gYmUg
Y29udmVydGVkIHRvDQpwY2ltX2ludHgoKS4NCg0KSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGlz
IGlzIG5lZWRlZCwgYnV0IGZhaXIgZW5vdWdoLg0KDQoNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 00:55:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 00:55:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836863.1252765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBkcs-0008LX-37; Fri, 15 Nov 2024 00:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836863.1252765; Fri, 15 Nov 2024 00: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 1tBkcs-0008LQ-0J; Fri, 15 Nov 2024 00:55:54 +0000
Received: by outflank-mailman (input) for mailman id 836863;
 Fri, 15 Nov 2024 00: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBkcq-0008LH-Dy
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 00:55: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 5a6f1eb2-a2ec-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 01:55:48 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-431688d5127so10165665e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 16:55:48 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432dab80a10sm36360695e9.26.2024.11.14.16.55.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 16: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: 5a6f1eb2-a2ec-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVhNmYxZWIyLWEyZWMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjMyMTQ4LjcwNzk4Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731632148; x=1732236948; 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=YLKlV9TGKjUendVOGpOLjSwlswm5Bf69m1u0QHs7k+k=;
        b=YhPHVatcp4AJo7fpuj3VWR7g8y7BI/fmN9PNpTpkMHzeaaMW8iN0qUKKZWpLL/UO48
         OT8KXucjrHiR4ILEvSFa9y3sFgwelWA55OOrPfSVoZDBqUtsx4vatxHTH5S1EV95ajVU
         5N5G4SWjXGxc/lrANa8ebTmYMqYDSscq8FLig=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731632148; x=1732236948;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YLKlV9TGKjUendVOGpOLjSwlswm5Bf69m1u0QHs7k+k=;
        b=QiFw2dAPkkw8viHbfJreSqhuqoXbZxkTQTZYlXmXNtSsdSu87AzLhiLie68XG6r5vL
         ju4fDumqxHWZxjJAnXIHS38Fq31hjzntFx3YW97LJatmiB9kFKuALUmdVH2ndmDPczk0
         0SZSEwcG+MFttn4Y6P0N64EZz56m+h84ABka9EmsfHuUpdKxOpc84Gg3S/6QZG2bmSEz
         RzVGwIWg9hwyukCO6H/EIyr0zdBIRawkPmLp//ASPFxFMAZiUrzM4KLq9tCcCEsgSMEs
         OxHe+AUsOPsTM1+PPFOSkBZ+uXPE0xXjp91uU/J4x2wCLcH5ZujRlf07vKWHcZRRBNHJ
         CU6w==
X-Forwarded-Encrypted: i=1; AJvYcCVtC4crYMcsbPpB+E/oAQwIT4fGMcx1S8B4W9FooPYOtf7kNVsmaM+PVjIb/88BVt2FuM6x/sMMyZU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwO9CgX8kK85rS6Hwfa80jizmrbIvBktTzwvzBHc6u51RDJYGmj
	L/gFagFTrgz7DDEWDwNwJcDQcCsvOP//TEbiMbjzHvaw2TKqlMLdH1gQB6TvffE=
X-Google-Smtp-Source: AGHT+IFCv22AGh5xJnyjR+qRE5AoEyB7YxN7RgEOpFh+TZE6ijEWO+ejZ671LlXEO8nfThd9QzvWdA==
X-Received: by 2002:a05:600c:5116:b0:42f:4f6:f8f3 with SMTP id 5b1f17b1804b1-432df71bc69mr4916755e9.7.1731632148009;
        Thu, 14 Nov 2024 16:55:48 -0800 (PST)
Message-ID: <0f575e16-3e83-4d8e-b5ce-7fd9c962c3ee@citrix.com>
Date: Fri, 15 Nov 2024 00:55:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/4] x86/mm: miscellaneous fixes
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20241114145715.59777-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241114145715.59777-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/11/2024 2:57 pm, Roger Pau Monne wrote:
> Hello,
>
> The attempt to fix destroy_xen_mappings() so that L2 tables are
> consistently freed uncovered some errors in the memory management code.
> The following series attempts to fix them.
>
> All patches except for 4/4 are new in v2, and 4/4 has no change from v1,
> hence kept Jan's Reviewed-by tag in 4/4.
>
> Thanks, Roger.
>
> Roger Pau Monne (4):
>   x86/mm: introduce helpers to detect super page alignment
>   x86/mm: skip super-page alignment checks for non-present entries
>   x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
>   x86/mm: ensure L2 is always freed if empty

Still broken.Â  This happened to be a Cascade Lake:

(XEN) 3... 2... 1...
(XEN) Xen is relinquishing VGA console.
(XEN) ----[ Xen-4.20.0-4-dÂ  x86_64Â  debug=yÂ  Not tainted ]----
(XEN) CPU:Â Â Â  0
(XEN) RIP:Â Â Â  e008:[<ffff82d04022cdc8>]
common/page_alloc.c#free_heap_pages+0x52/0x753
<snip>
(XEN) Xen call trace:
(XEN)Â Â Â  [<ffff82d04022cdc8>] R
common/page_alloc.c#free_heap_pages+0x52/0x753
(XEN)Â Â Â  [<ffff82d04022e98f>] F free_domheap_pages+0x445/0x447
(XEN)Â Â Â  [<ffff82d040320f88>] F free_xen_pagetable+0x2f/0x31
(XEN)Â Â Â  [<ffff82d04032193d>] F map_pages_to_xen+0x5df/0x1028
(XEN)Â Â Â  [<ffff82d040238ab1>] F vunmap+0x27/0xde
(XEN)Â Â Â  [<ffff82d040624b61>] F vesa_endboot+0x86/0xb3
(XEN)Â Â Â  [<ffff82d0406244c1>] F video_endboot+0x93/0x261
(XEN)Â Â Â  [<ffff82d040616e3d>] F console_endboot+0x92/0x120
(XEN)Â Â Â  [<ffff82d0406407e2>] F __start_xen+0x2139/0x2307
(XEN)Â Â Â  [<ffff82d0402033ae>] F __high_start+0x8e/0x90
(XEN)
(XEN) Pagetable walk from ffff82c000205001:
(XEN)Â  L4[0x105] = 0000000060431063 ffffffffffffffff
(XEN)Â  L3[0x100] = 000000006fffd063 ffffffffffffffff
(XEN)Â  L2[0x001] = fffffffffffff000 ffffffffffffffff
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) FATAL PAGE FAULT
(XEN) [error_code=0000]
(XEN) Faulting linear address: ffff82c000205001
(XEN) ****************************************

Note the definitely bogus L2e, which I'm guessing is an issue with the
use of INVALID_MFN.

But the same crash is seen on BDX, SKX, SPR, Naples, Rome and Milan, all
including the bad L2e.

ICX crashed but there was no serial console.


Genoa was weird.Â  It was:

(XEN) ----[ Xen-4.20.0-4-dÂ  x86_64Â  debug=yÂ  Not tainted ]----
(XEN) CPU:Â Â Â  24
(XEN) RIP:Â Â Â  e008:[<ffff82d040330509>] __node_distance+0x20/0x62
<snip>
(XEN) Xen call trace:
(XEN)Â Â Â  [<ffff82d040330509>] R __node_distance+0x20/0x62
(XEN)Â Â Â  [<ffff82d040240ee5>] F do_sysctl+0xcf8/0x140e
(XEN)Â Â Â  [<ffff82d0402f6b21>] F pv_hypercall+0x59b/0x62b
(XEN)Â Â Â  [<ffff82d0402012d3>] F lstar_enter+0x143/0x150
(XEN)
(XEN) Pagetable walk from ffff82c000203024:
(XEN)Â  L4[0x105] = 000000005fc31063 ffffffffffffffff
(XEN)Â  L3[0x100] = 00000000677cd063 ffffffffffffffff
(XEN)Â  L2[0x001] = 000000207a79a063 ffffffffffffffff
(XEN)Â  L1[0x003] = 0000000000000000 ffffffffffffffff
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 24:
(XEN) FATAL PAGE FAULT
(XEN) [error_code=0000]
(XEN) Faulting linear address: ffff82c000203024
(XEN) ****************************************

while sat at the login prompt, which means it had survived a full
install and first boot.

The range of the change was 64d2290cf96bb^..d2c214ede05ca (starting from
Jan's fix to _xvrealloc()) but there are no other obvious candidates.

This crash isn't obviously related to the others, but there's nothing
else like it seen before.Â  Memory corruption isn't out of the question.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 01:50:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 01:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836875.1252779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBlTJ-0006HA-0Q; Fri, 15 Nov 2024 01:50:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836875.1252779; Fri, 15 Nov 2024 01: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 1tBlTI-0006GL-Tj; Fri, 15 Nov 2024 01:50:04 +0000
Received: by outflank-mailman (input) for mailman id 836875;
 Fri, 15 Nov 2024 01: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=pz6t=SK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tBlTH-0005to-6e
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 01:50:03 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb651846-a2f3-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 02:49:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id AA338A41D7C;
 Fri, 15 Nov 2024 01:48:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10706C4CECD;
 Fri, 15 Nov 2024 01:49: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: eb651846-a2f3-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImViNjUxODQ2LWEyZjMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjM1Mzk5LjAwNzIyMSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731635397;
	bh=W+uSnvfdxgMv+XEtpGOv4muS1loNZJX6vqlTV7w4l9s=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rQ/1YalwW8d2w6blHdHg4p/+qLOyJw1JOZC6690e4+cENi1T80XnJtM+qA4EMzomp
	 sZyRQYyK+0u1Zl58fQ2ROm1QkgOxkzsoIJbNTS+kF8sfAGWyYUYO7UwyVpbt3eoI6Y
	 JsWRxG1KCxpLh92+Es/MpxOmVXWyTlyzYt64Pc7/fybGv119pzJMBCmOdzFn694trC
	 VSZAVg24+9n7qKUAL5Iywm84MgGAM3dWabNoEjU+loDOrzdC+t03FEvyWAyPRh0/dT
	 anB07/n24fK6ltPqTaXM/3Wa1yzsSe0Rc33GB33lDPUtD9K53FlwQMSfDLPRBKChZ8
	 Y3kkiC3Vs25Tw==
Date: Thu, 14 Nov 2024 17:49:54 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Roberto Bagnara <roberto.bagnara@bugseng.com>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] xen/multicall: Change nr_calls to uniformly be
 unsigned long
In-Reply-To: <318c3af2-6233-4778-9fe9-2f9397025039@suse.com>
Message-ID: <alpine.DEB.2.22.394.2411141749410.1160299@ubuntu-linux-20-04-desktop>
References: <20240621205800.329230-1-andrew.cooper3@citrix.com> <20240621205800.329230-3-andrew.cooper3@citrix.com> <660fc551-c6bc-456f-8e9e-80b3e592fece@suse.com> <alpine.DEB.2.22.394.2411121912400.222505@ubuntu-linux-20-04-desktop>
 <35b585a0-7d19-4b02-8ad6-90c7df3ae6ac@suse.com> <alpine.DEB.2.22.394.2411131825400.222505@ubuntu-linux-20-04-desktop> <318c3af2-6233-4778-9fe9-2f9397025039@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, 14 Nov 2024, Jan Beulich wrote:
> On 14.11.2024 03:34, Stefano Stabellini wrote:
> > On Wed, 13 Nov 2024, Jan Beulich wrote:
> >> On 13.11.2024 04:15, Stefano Stabellini wrote:
> >>> It is challenging to create a solution that satisfies everyone for this
> >>> patch. However, we should add R8.3 to the clean list as soon as possible
> >>> to enable rule blocking in GitLab-CI. Failing to do so risks introducing
> >>> regressions, as recently occurred, undoing the significant efforts made
> >>> by Bugseng and the community over the past year.
> >>>
> >>> Unless there is a specific counterproposal, let us proceed with
> >>> committing this patch.
> >>
> >> Well, I find this odd. We leave things sit in limbo for months and then
> >> want to go ahead with a controversial solution? Rather than actually
> >> (and finally) sorting out the underlying disagreement (of which there
> >> are actually two sufficiently separate parts)? Plus ...
> > 
> > The reason is that several MISRA regressions were recently introduced.
> > These regressions could have been easily detected by GitLab CI if we had
> > marked the rules as clean. I believe we should expedite accepting the
> > fixes and marking the rules as clean. We can always adjust the fixes or
> > deviations later to better suit our preferences. In my opinion, we
> > should prioritize marking the rules as clean.
> > 
> > 
> >>> On Mon, 24 Jun 2024, Jan Beulich wrote:
> >>>> On 21.06.2024 22:58, Andrew Cooper wrote:
> >>>>> Right now, the non-compat declaration and definition of do_multicall()
> >>>>> differing types for the nr_calls parameter.
> >>>>>
> >>>>> This is a MISRA rule 8.3 violation, but it's also time-bomb waiting for the
> >>>>> first 128bit architecture (RISC-V looks as if it might get there first).
> >>>>>
> >>>>> Worse, the type chosen here has a side effect of truncating the guest
> >>>>> parameter, because Xen still doesn't have a clean hypercall ABI definition.
> >>>>>
> >>>>> Switch uniformly to using unsigned long.
> >>>>
> >>>> And re-raising all the same question again: Why not uniformly unsigned int?
> >>>> Or uint32_t?
> >>
> >> ... this question of mine effectively represents a concrete alternative
> >> proposal (or even two, if you like).
> >>
> >> The two parts where there appears to be disagreement are:
> >> 1) When to (not) use fixed width types, as presently outlined in
> >>    ./CODING_STYLE.
> >> 2) How to type C function parameters called solely from assembly code (of
> >>    which the hypercall handlers are a subset).
> >>
> >> And maybe
> >> 2b) How to best express such function parameters when they're (sometimes)
> >>     shared between native and compat handlers.
> >>
> >> Of course 2) is affected by, as Andrew validly says, there not being a
> >> formally clean ABI definition.
> >>
> >> My fear is that if this gets committed as is, it'll be used as a handle to
> >> force in further similarly questionable / controversial changes to other
> >> hypercall handlers. Which is why I think the controversy needs sorting out
> >> first (which admittedly is hard when the ABI is fuzzy).
> > 
> > While I appreciate your concern, as you know, aligning on the topics
> > above takes time. I do not believe it is in the interest of the
> > community, both contributors and reviewers, to delay marking this rule
> > as clean. Honestly, I do not mind how it gets marked as clean, as long
> > as we do it soon.
> > 
> > Additionally, please keep in mind that the Xen Project tends to have a
> > long memory. As a result, there is usually little risk of the so-called
> > "slippery slope" problem.
> > 
> > If you prefer a deviation I am OK with that too. I just want 8.3 as
> > clean :-) 
> 
> No, please no deviations when we can avoid them. Since it feels like it's
> always (going to be?) me to give in when there is such disagreement, why
> don't I do so here as well: Go ahead.

Thanks Jan, I really appreciate this


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 02:16:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 02:16:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836890.1252792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBlsb-0001dS-3w; Fri, 15 Nov 2024 02:16:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836890.1252792; Fri, 15 Nov 2024 02:16: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 1tBlsb-0001dL-1F; Fri, 15 Nov 2024 02:16:13 +0000
Received: by outflank-mailman (input) for mailman id 836890;
 Fri, 15 Nov 2024 02:16: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=qUJE=SK=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tBlsZ-0001dF-8T
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 02:16:11 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20618.outbound.protection.outlook.com
 [2a01:111:f403:2413::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90791e45-a2f7-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 03:16:04 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH3PR12MB9028.namprd12.prod.outlook.com (2603:10b6:610:123::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.19; Fri, 15 Nov
 2024 02:16:00 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.013; Fri, 15 Nov 2024
 02:16: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: 90791e45-a2f7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjE4IiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkwNzkxZTQ1LWEyZjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjM2OTY0Ljk0NDUyOCwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SQoGIx8qh2o57l2aUmBe5x02F21HJbVB03N7XDKt7xFGZ1qJ5b1o1P7ClwunD3dd8XXgxYrJaPXJOxRy3URLZFh2FrL3rMZamybEyp3zBmcKm3XuGYK+RP438of3d0Hr9MDQqOY6G2t6O+o3a1DlNnAJEmlkTp6IEeze7I2lH9k7nkCW3uodQQiLsuRMWq/emHOSU/JHN93KNUi2h6rSGawtO4BW5CYIS62NROFXsm92GeUoKu+hY3/npkQzcsXsdxdPq5+uoVt5jv+MCt3gCPlouZUHBFzfkuKtb9IdgfH9i+xzAQxCLZ5mUEQ1FBCncpsjR+lrnFTlIOp+w1hykA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hec8cxjuCYIQjwwNKno5leJENhkGReUupEaLrdHwbRY=;
 b=wucUVWxjW8vpvgLQiC538O8TRvt2/c0K88kKTlvRqrfCIBRYRkcRT8PMSaBabmjNpomjmWtbiseEHNKPyJecImJovVOZhCFWYY9Oaus5YkW8yKmekTJpBz7u0SrqZk4gAqlRtwad1uK8G9Sp84H6uYsMH9rlEnSzV8wLStOa7fT993fGOcCz0uk0SFLgTw++7VbqmhmXuRj0YmEAuH6R0d0/jg8DS8PyyYbeshqhzEnGSzGXN1W+tpTjtg0gNuWonBzsY8lwTXh50R4NgqDClsKNllJ7uSmOP8Y3hjD66DgKXhrp5sAnU0vOIyb3DYvzf0OPDDwJjrrZizu9oyy4yQ==
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=Hec8cxjuCYIQjwwNKno5leJENhkGReUupEaLrdHwbRY=;
 b=CfUT941Bl/jlG2IQJtFCYcTe5SlhaQwhq5Jf8frUEge8mTUZtoq7QoZp8kaRlKNABsCxERXKA438BvX11Zj/PbyS8bK8j2VEuPSo2o+aJHvgR2DN5bZK0UFeurUIBKoxsUquNwfmDfxOknqf0dkWW5S4fCUVZdtiKF1uuDeofvs=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAATPmgA==
Date: Fri, 15 Nov 2024 02:16:00 +0000
Message-ID:
 <BL1PR12MB58492BC722EE4FA4E4A747B4E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook>
In-Reply-To: <ZzYcskZ-GZ8HsXfU@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.013)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CH3PR12MB9028:EE_
x-ms-office365-filtering-correlation-id: 00b71239-d612-4f59-26d7-08dd051b72b7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dTJ4bVVneTZvVGErWXE5SFg4N2NhdG5KbUExU2xuS0hxWXZNbXc0TFVaZ3hs?=
 =?utf-8?B?ajY3L2FlMUVGeW1MTHVuQVdDVnorRXhzSlZNZXBpaUtXRjhocGx1TTgyTFFh?=
 =?utf-8?B?d1RnTjVxcHNUbjkrbW9ZTUJ0K0JEZlRsSzBJbWs5d2hYa3FVVWV5UkNEcWRJ?=
 =?utf-8?B?QkFxZ1dYRDdsWjZ3NzAxS2tXQ25GenI0RXpXNmp1NHFlSzlSUXRkd3BTa2ZE?=
 =?utf-8?B?YXQ3YW5ISVF0TkxZenpsRjlJTFcyNlRHcW5rYVcwckEyZ3A5VkRSaVBSRlUr?=
 =?utf-8?B?QkhReVZqTUUvOG41MHI3c1BISDNqNzJZNUNqcVJBWkRZbFZTcnRKQlYzNkFH?=
 =?utf-8?B?VHI2VkJpV2VBc0xMd2lkYWlVbXZIZE1JanhHcHFOeXRBUWw0SnJSNzE3VVBp?=
 =?utf-8?B?amJZQW4raWVwM0x1VFFidnppdk5DTldtcWdOWnBPeVE0OHVuNWJzam9uNkRy?=
 =?utf-8?B?YWZkNmVNazI4UCtpdGozWHlzYXFBOHBBOGJpM2ZFZUVuRTl1OVNZbUJTRlB1?=
 =?utf-8?B?S3VXN2pYazJBQkFDcnJXc0k0Tkp4MjVPUEtGWGVCTmwwZHA4WVlZRjFjNXEz?=
 =?utf-8?B?TGl1M3lRYU1xajJmRjk5bWc5cDViY1hrVUNlNUU3Nm9HN1dFNy8vYTNoZ2ls?=
 =?utf-8?B?YmpUVmFDb1c4TGxDcjVEdjQ5akEvamErRzVYM2dWNXo3Y2J5RDBYUDVDY2JL?=
 =?utf-8?B?dnZSaDdrOUdIa0l4UFpLL1huRVUrSjkrTCtRV3Q3YVN6QWl4VHFLZWVNaXdG?=
 =?utf-8?B?dU12M2J3UnlLSEdYNUtFSEdyOTgwWnhUdDdoRnlEcnovSDhjNmNWSnR3OFow?=
 =?utf-8?B?SG9JR0pxTGlCZnczMkxHbHM4WFN2Tk5oVWVpMFZnUkdKSkhJR1Y2ejdhMGZJ?=
 =?utf-8?B?V0ZGL0hYYmVXYkpYZ1hPQWlycnJiVWZoblNrNG8ydmFMR3ZRM0F4QmgrU3Bs?=
 =?utf-8?B?Y1pDMzBjWlpYbkJRM21jUEpXeksxMHh5MDRKZkk5R1JjQXU5QnQ1U0pIczRv?=
 =?utf-8?B?dEM2ZnNUZXBuK3d2blc1WnVud3EvQUd1bGx1WEFjVUNITVV6bmYzTlNQcTRQ?=
 =?utf-8?B?TjBvNlViR01DT1QvYk50c0FTTHl6WFpoTjBIK0lhV2dkWDlnZ3FWZXFNWFJh?=
 =?utf-8?B?ckVNUUhpVWFKc0kwMlhSSDZhWTg3enNoN3VldHZSZ2Qzc0t6UUZsb1VHbGVH?=
 =?utf-8?B?SGxFOHZFa0NqQms0djFwbElQK0lCNGlGa2hwaVZocjJaYlE0bTY0Q0t5V2Rp?=
 =?utf-8?B?M3ZPMFJDRGpKbXV1RjM2eHR3SGhQdFF3Y2NGOHBVMWlUMjZ2WVJSKzd0Q1N5?=
 =?utf-8?B?N3V5WXBoeGxudmp0QlN5YVV2R2FnMjdOcGZOcHBqZ0pFY3ZhOXc4U0RjVnBq?=
 =?utf-8?B?QU12aUxEVmVxUlZwQ2U3cmpUNXRRQjZMSnk0d1IwaXRqY2RkS3FGVU4xL0dE?=
 =?utf-8?B?UWp0ZUpVeGpFeVFETVZqTmMwK09VVzdjUndzd2lPQkhnMW1VRmFOOVdydXp6?=
 =?utf-8?B?QjY5dXN6TmpxTHkyREIxK0JFN1YyaTVBQXFaZ1JuNTEyNHpKTld6MDNnV3Np?=
 =?utf-8?B?d3hReVNNWUtmK1cyYUExM3JFbmM1V29Rc2MxRXZCaW4rTkswdGEzRVV4eHpD?=
 =?utf-8?B?czZOWm1TQUF6RUhaYnlYazI0OHJnQnhFMFdPQ2VsTVAvV2g2aVNWRzBLaXk2?=
 =?utf-8?B?Qk9sRDNrMlpWYnV3OTgvUGZNYVBKYlBVQTN3TWY0R0tDY2dHTXpEN1orR1JE?=
 =?utf-8?B?djF2MkZvaGZQZkJMTEdGQzU4RkF3TXEraWh4REhueWxXdnE4ejVqM0dVVFUz?=
 =?utf-8?Q?y+US7bRcWogtqEtFIz+tzlBfejDjtp6E4AUTA=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZWtFcm4zQ2pnL1lCTlBIOGNqQ3NQK1U0b0FBTXNlVHNkYTM2UXFad2VNNmw2?=
 =?utf-8?B?d05hQUh4cHdERmV1NUVpZkZaM2d2L0VoMzE0Z0ZvNzJkMk9YQXR1azg0aFJk?=
 =?utf-8?B?Ymg5YWxPbXA0QnRuVmliN2luejloRzFhdWZNaGlUVEdRVEZWeURtbjNxdnRO?=
 =?utf-8?B?TVczaWZzVDdQV3BJRFNrNjg0UlhmT3BtNndXaHdGMnp6SndvRmZHaER1MGow?=
 =?utf-8?B?VFA2VTdtbWU5TjBYcGhVSmhCSHpPTjdkTkdHeUV0ZWJjcGYvMTdHTTltMVpF?=
 =?utf-8?B?WHV5WkVWWUhucGlxMVIvNFFmRzBuaXNmSDlPTm1ldmFQQlJucFprblFDZDBZ?=
 =?utf-8?B?NHZZcS9xcmRGei85Mld4Y0kzRHlJaThTQ1pQOFBZQTBRWDl0QmU1WFlBOU9h?=
 =?utf-8?B?NVRWMFkvTkM4MHNaZVZXQit3VXpQVlIxS0E5d1k2MS9mSVllTm95NGQ0ZWRs?=
 =?utf-8?B?K1ZieXVxbXhCMWtIMFFVL2Z1QTJvekxnc0ZwYjlGcGdFdjFSaEJhWlhvcEp6?=
 =?utf-8?B?ajhQRTA2ZG1oNzFJaC9rRE5ta3VKTUZiQmtIMmtMd05RclU0TzFXNjlFWDJp?=
 =?utf-8?B?cFVSVFBUMkNYN21SOFptS3Zua2s0ZS9UOWpVeFF6aVlRS3ZhZkFoY0o4d0xl?=
 =?utf-8?B?M3MwOXJsZDRpZjUzKzY2ek9JVS82QXdIZUdLcE9DYjFPWW15L3hONjNzVXYx?=
 =?utf-8?B?YUVJMEQrTXlKZzRrS3YySGVSbGV6V2w1VmJmelBLcEpoMlFyejVFeXRIMEhU?=
 =?utf-8?B?eVkxWm1uVm1YWnZHaDcrbEZPQy95MEJYUmY3bFBiYzVOc0FEblZoRGlkUEZT?=
 =?utf-8?B?U0laSnYyZWVoZUwzV0hqcm42Z3BGUmJWNkx6V1RoTnRqMlBsZEY1aklva0xN?=
 =?utf-8?B?eXhnZkNoY0VRZmd0RlRYNElrSVRodDBQOElDSklvOGRRZjc4cnpZSSswdXY4?=
 =?utf-8?B?T0N0SURpVEVIQWwvWGxTU09NMGhZb3VkZm9BOXhMeEQwZE9WRlg1TzBvRHVt?=
 =?utf-8?B?dFpuNGVFSmQwSGEvZzlYbUVKTjNXeGYwMkVubS9JQ2gvOExrclNFbE9qUXJT?=
 =?utf-8?B?Z0ZxaFdFS2N3am9QeWhRc3E0L1VaRDh0eTBYZXBqVlBYTXRhK0F5S2hlaURF?=
 =?utf-8?B?anZPRmU4V1NtN0pGS0k4MUQyQlZvTEtIc3NhazIvaFVvZS9UdUlTSGVud0l6?=
 =?utf-8?B?YWU4UGI5c213aG9OcGdhWFl6Tm9tRzdoUHhEZzIxZ3NTV1VzRnZlTEtFVDU4?=
 =?utf-8?B?U3ZXdkRUQ2pEbEQ3R1RORHBQTWx5WEx3TG1odnZFVE5XVUtOa2Jjbk9TQXhX?=
 =?utf-8?B?dnJ1Qll1TVRtM01hTmwrWUtqMkZDSStxZ3crUHJKNm45NkxRc29UekdJdTFH?=
 =?utf-8?B?MU9IaThmekt0djk4U2JkTmR5Zlp0RS9aaHdrUVlIWVRPcUtQYjRGVytvRkZ6?=
 =?utf-8?B?VlRyVGI1UlJwTVpFKzhPeEw0NXVvaDBrMUgwZC9Ma3cyVGY2R3pBUjJqeXox?=
 =?utf-8?B?THVZZmZkVmpLalJKRlZsU2NjaE41UVYxY2wzYndCZW5salB3SituNmoyN1Bh?=
 =?utf-8?B?blpNVEJ3dm85YkpBTTRraGt1Y1A5eU9BQ1piMUk2eEVpS2w5VTYwclVhRnRy?=
 =?utf-8?B?dUF2WDIzekVaaG5MeXFzOVF0K256SHFBbVVYL2ZYR1lRNmxCUXhSWjZCWjYv?=
 =?utf-8?B?QWI2Z3RLUXI2aDhiMHJCSEk3bkErTm00ZzQ0NERPbkhPSTN3MW5EMEd3dnpV?=
 =?utf-8?B?M3BvVkVaM1U5T0FWbTdCczVwVDRMS0VrNUxRUVVNMCt1Um9qZDl5WERwRUtC?=
 =?utf-8?B?K1Q0TE80VlU4L2hxdDd3dm5nQmxOS0JZQXRkTDlSY1E0dk81MzE4em01NnY5?=
 =?utf-8?B?NzQ0UEdZbHpOc3V3dFhRMkNpSEZsd0tyZ1hSMzRVdW1LRk1qMUlxaUFMakUx?=
 =?utf-8?B?Y0tBN1pLY3NPdkM5bHVpNVdod1ZpSlA1VGl1RnVNQS9DZVl6Mm9TM05nYWR1?=
 =?utf-8?B?MnR3cVlrRXVpLzJ6S2svYTAvaWZjaWM4cXJwaWovYWI0blVRY2NlWkdwdEpJ?=
 =?utf-8?B?SHp4djNkK1RDTnhzOE9FV2JKUlZpTXZySlcxWURqRnlUV0VISnE3OUFRV0pu?=
 =?utf-8?Q?Yg/s=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4D3239AD321F6A4381DB55735C97E8AD@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 00b71239-d612-4f59-26d7-08dd051b72b7
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2024 02:16:00.3250
 (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: ZLJ6q0R5J1ZgIDgXtI8sbTDqVw2Pz2wuNQfZnO0t8LTNMIKq7I/vyJoVjxBf28gN63Z6DPn4jWCPJxXDE0dzKg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9028

T24gMjAyNC8xMS8xNCAyMzo1MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gVGh1LCBO
b3YgMTQsIDIwMjQgYXQgMDY6MTE6NDZBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyNC8xMS8xMyAxODozMCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBXZWQs
IE5vdiAxMywgMjAyNCBhdCAxMDowMDozM0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+IE9uIDIwMjQvMTEvMTMgMTc6MzAsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBP
biBXZWQsIE5vdiAxMywgMjAyNCBhdCAwNDowMDoyN1BNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90
ZToNCj4+Pj4+PiBTb21lIGRldmljZXMsIGxpa2UgZGlzY3JldGUgR1BVIG9mIGFtZCwgc3VwcG9y
dCByZXNpemFibGUgYmFyIGNhcGFiaWxpdHksDQo+Pj4+Pj4gYnV0IHZwY2kgb2YgWGVuIGRvZXNu
J3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUsIHNvIHRoZXkgZmFpbCB0byByZXNpemUgYmFycw0KPj4+
Pj4+IGFuZCB0aGVuIGNhdXNlIHByb2JpbmcgZmFpbHVyZS4NCj4+Pj4+Pg0KPj4+Pj4+IEFjY29y
ZGluZyB0byBQQ0llIHNwZWMsIGVhY2ggYmFyIHRoYXQgc3VwcG9ydCByZXNpemluZyBoYXMgdHdv
IHJlZ2lzdGVycywNCj4+Pj4+PiBQQ0lfUkVCQVJfQ0FQIGFuZCBQQ0lfUkVCQVJfQ1RSTCwgc28g
YWRkIHRoZXNlIHR3byByZWdpc3RlcnMgYW5kIHRoZWlyDQo+Pj4+Pj4gY29ycmVzcG9uZGluZyBo
YW5kbGVyIGludG8gdnBjaS4NCj4+Pj4+Pg0KPj4+Pj4+IFBDSV9SRUJBUl9DQVAgaXMgUk8sIG9u
bHkgcHJvdmlkZSByZWFkaW5nLg0KPj4+Pj4+DQo+Pj4+Pj4gUENJX1JFQkFSX0NUUkwgb25seSBo
YXMgYmFyIHNpemUgaXMgUlcsIHNvIGFkZCB3cml0ZSBmdW5jdGlvbiB0byBzdXBwb3J0DQo+Pj4+
Pj4gc2V0dGluZyB0aGUgbmV3IHNpemUuDQo+Pj4+Pg0KPj4+Pj4gSSB0aGluayB0aGUgbG9naWMg
dG8gaGFuZGxlIHJlc2l6YWJsZSBCQVIgY291bGQgYmUgbXVjaCBzaW1wbGVyLiAgU29tZQ0KPj4+
Pj4gdGltZSBhZ28gSSd2ZSBtYWRlIGEgcGF0Y2ggdG8gYWRkIHN1cHBvcnQgZm9yIGl0LCBidXQg
ZHVlIHRvIGxhY2sgb2YNCj4+Pj4+IGhhcmR3YXJlIG9uIG15IHNpZGUgdG8gdGVzdCBpdCBJJ3Zl
IG5ldmVyIHN1Ym1pdHRlZCBpdC4NCj4+Pj4+DQo+Pj4+PiBNeSBhcHByb2FjaCB3b3VsZCBiZSB0
byBkZXRlY3QgdGhlIHByZXNlbmNlIG9mIHRoZQ0KPj4+Pj4gUENJX0VYVF9DQVBfSURfUkVCQVIg
Y2FwYWJpbGl0eSBpbiBpbml0X2hlYWRlcigpLCBhbmQgaWYgdGhlDQo+Pj4+PiBjYXBhYmlsaXR5
IGlzIHByZXNlbnQgZm9yY2UgdGhlIHNpemluZyBvZiBCQVJzIGVhY2ggdGltZSB0aGV5IGFyZQ0K
Pj4+Pj4gbWFwcGVkIGluIG1vZGlmeV9iYXJzKCkuICBJIGRvbid0IHRoaW5rIHdlIG5lZWQgdG8g
dHJhcCBhY2Nlc3NlcyB0bw0KPj4+Pj4gdGhlIGNhcGFiaWxpdHkgaXRzZWxmLCBhcyByZXNpemlu
ZyBjYW4gb25seSBoYXBwZW4gd2hlbiBtZW1vcnkNCj4+Pj4+IGRlY29kaW5nIGlzIG5vdCBlbmFi
bGVkIGZvciB0aGUgZGV2aWNlLiAgSXQncyBlbm91Z2ggdG8gZmV0Y2ggdGhlIHNpemUNCj4+Pj4+
IG9mIHRoZSBCQVJzIGFoZWFkIG9mIGVhY2ggZW5hYmxpbmcgb2YgbWVtb3J5IGRlY29kaW5nLg0K
Pj4+Pj4NCj4+Pj4+IE5vdGUgdGhhdCBtZW1vcnkgZGVjb2RpbmcgaW1wbGllcyBtYXBwaW5nIHRo
ZSBCQVJzIGludG8gdGhlIHAybSwgd2hpY2gNCj4+Pj4+IGlzIGFscmVhZHkgYW4gZXhwZW5zaXZl
IG9wZXJhdGlvbiwgdGhlIGV4dHJhIHNpemluZyBpcyB1bmxpa2VseSB0bw0KPj4+Pj4gbWFrZSBt
dWNoIG9mIGEgZGlmZmVyZW5jZSBwZXJmb3JtYW5jZSB3aXNlLg0KPj4+Pj4NCj4+Pj4+IEkndmUg
Zm91bmQgdGhlIGZvbGxvd2luZyBvbiBteSBnaXQgdHJlZSBhbmQgcmViYXNlZCBvbiB0b3Agb2Yg
c3RhZ2luZzoNCj4+Pj4gT0suDQo+Pj4+IERvIHlvdSBuZWVkIG1lIHRvIHZhbGlkYXRlIHlvdXIg
cGF0Y2ggaW4gbXkgZW52aXJvbm1lbnQ/DQo+Pj4NCj4+PiBZZXMgcGxlYXNlLCBJIGhhdmUgbm8g
d2F5IHRvIHRlc3QgaXQuICBMZXQncyBzZWUgd2hhdCBvdGhlcnMgdGhpbmsNCj4+PiBhYm91dCB0
aGUgZGlmZmVyZW50IGFwcHJvYWNoZXMuDQo+PiBUaGVyZSBhcmUgc29tZSBlcnJvcnMgd2l0aCB5
b3VyIG1ldGhvZC4NCj4+IEkgYXR0YWNoZWQgdGhlIGRtZXNnIGFuZCB4bCBkbWVzZyBsb2dzLg0K
Pj4gRnJvbSB0aGUgZG1lc2cgbG9ncywgaXQgc2VlbXMgdGhhdCAwMDAwOjAzOjAwLjAgaGFzIGFk
ZHJlc3NlIG92ZXJsYXAgd2l0aCAwMDAwOjAzOjAwLjENCj4gDQo+IERvIHlvdSBoYXZlIHRoZSBv
dXRwdXQgb2YgbHNwY2kgd2l0aCB0aGUgQkFSIHNpemVzL3Bvc2l0aW9ucyBiZWZvcmUNCj4gYW5k
IGFmdGVyIHRoZSByZXNpemluZz8NCkkgd2lsbCB1c2UgeW91ciBuZXcgcGF0Y2ggdG8gZ2V0IHRo
ZXNlIGluZm9ybWF0aW9uLg0KDQo+IA0KPj4NCj4+IEkgdGhpbmsgdGhlcmUgaXMgYSBwbGFjZSB0
aGF0IG5lZWRzIHRvIGJlIG1vZGlmaWVkIHJlZ2FyZGluZyB5b3VyIG1ldGhvZCwNCj4+IGFsdGhv
dWdoIHRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90IGhlbHAgd2l0aCB0aGUgYWJvdmUtbWVudGlv
bmVkIGVycm9ycywNCj4+IGl0IGlzIHRoYXQgd2hldGhlciB0byBzdXBwb3J0IHJlc2l6aW5nIGlz
IHNwZWNpZmljIHRvIHdoaWNoIGJhciwgcmF0aGVyIHRoYW4ganVzdCBkZXRlcm1pbmluZyB3aGV0
aGVyIHRoZXJlIGlzIGEgUmViYXIgY2FwYWJpbGl0eS4NCj4gDQo+IERvIHdlIHJlYWxseSBuZWVk
IHN1Y2ggZmluZS1ncmFpbmVkIGluZm9ybWF0aW9uPyAgSXQgc2hvdWxkIGJlDQo+IGhhcm1sZXNz
IChldmVuIGlmIG5vdCBzdHJpY3RseSBuZWNlc3NhcnkpIHRvIHNpemUgYWxsIEJBUnMgb24gdGhl
DQo+IGRldmljZSBiZWZvcmUgZW5hYmxpbmcgbWVtb3J5IGRlY29kaW5nLCBldmVuIGlmIHNvbWUg
b2YgdGhlbSBkbyBub3QNCj4gc3VwcG9ydCByZXNpemluZy4NCk9LLCBJIGp1c3QgdGhpbmsgaXQg
Y2FuIGhlbHAgdG8gcmVkdWNlIHNvbWUgdW5uZWNlc3NhcnkgY2FsbHMoYWN0aW9ucykuDQoNCj4g
DQo+IEkgbWlnaHQgaGF2ZSB0byBwcm92aWRlIGEgcGF0Y2ggd2l0aCBhZGRpdGlvbmFsIG1lc3Nh
Z2VzIHRvIHNlZSB3aGF0J3MNCj4gZ29pbmcgb24uDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQot
LSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 03:04:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 03:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836899.1252807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBmdX-0008CC-Mk; Fri, 15 Nov 2024 03:04:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836899.1252807; Fri, 15 Nov 2024 03:04: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 1tBmdX-0008C5-JS; Fri, 15 Nov 2024 03:04:43 +0000
Received: by outflank-mailman (input) for mailman id 836899;
 Fri, 15 Nov 2024 03: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=qUJE=SK=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tBmdV-0008Bz-Cy
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 03:04:42 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060e.outbound.protection.outlook.com
 [2a01:111:f403:200a::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52fd78d3-a2fe-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 04:04:28 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by IA0PR12MB8351.namprd12.prod.outlook.com (2603:10b6:208:40e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Fri, 15 Nov
 2024 03:04:23 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.013; Fri, 15 Nov 2024
 03:04: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>
X-Inumbo-ID: 52fd78d3-a2fe-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjBlIiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUyZmQ3OGQzLWEyZmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjM5ODY5LjMzNjA3OCwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eSY/49HN1HdCkzUXxwm+HUmtfhhdUw9EqOEahK3oNklklnI0emwEKmfC050bZbR7Aj4zaXXKUCuY3bCw5dByQ3QBCZorYK5KjudemEIJOq2pSZ4quCrtbLrUAAOWyT9Sgz7XVMCo4CnSX78pDowV1RSpdgeNPmjtuzKWbTGbfRhZStm7AsTFbEme/DvTBHCFvniHVRjiPhMO6O8VgBnLTw22R+at2GozIKGgU3UC7frQ32JcoqMWaSQ4rjRW4d1nd6L2mpu8GFm2v9q7o4ezqvNlqBaGbk09dn+sQtsrBHBdCFI8k53cgBaVXnXCFORuyU1LnaZG6/DR06U3Q80YBQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7OfPkR2L3V2mm06t7hblN9SNmsmBBMtFhw0uhhRYgGA=;
 b=tSAxbxLcSmOliga8h4SNMO5E5zBF8JSvp+O1XdV0Hg4SsL+FSj98noccPVI0jCAjqTJC6Qd1YZVrV3OEWhkX+HtXrsoWOsUQrSCdI71bIwXos4U8WUycFeepx7wtilPx5Ub+ClvoHSEGNxQ3SliD5sZmgaM/Pud7FoDuaKwiaOX+xOYkieB9BtR+lSHgoW9WtXfjcUzkFVAvkdJI26NnszOi0lE48Cg1JTGXBxvuwpqCpmIacQO73BhgOBRGZFpRW0oZ9m/M/U/W2U2BWrD4YWKpek7VIZ/uG6ID7IZkSmZPtHzQ8oeoKCXWoXWasUi5mTmiwfXlCSgK6sVCzyVHmA==
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=7OfPkR2L3V2mm06t7hblN9SNmsmBBMtFhw0uhhRYgGA=;
 b=hH3LOkC2DqN7Ej5M4nzfrg/V/gO3Cidy2Lok6Pwue2fy771vFKkBE7G7tRVixOTvZUuaVNZfgjic3OyXXkVlg44EdNw/5f6yY/58o5ivPu72Ug83tNtGCFjEjNhsw398DYBsII9mtTpO1AGs8wuX35AvyPCCST4QZudfDVpQyno=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcA
Date: Fri, 15 Nov 2024 03:04:22 +0000
Message-ID:
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
In-Reply-To: <ZzY1O-zrcWB6Ra3q@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.013)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|IA0PR12MB8351:EE_
x-ms-office365-filtering-correlation-id: b103d9fe-1985-4e24-c0a0-08dd052234ce
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Z2hQYU5HNVRvWjQ3S2VLeURWYm1VaG5FN3VxRlUvVHRZSGM5R3ZLN3gzR2c5?=
 =?utf-8?B?YWw2L011TkJPSHpSaEZmb0tyZ0VUWXRSSlpkRjlmbU9EdGcwcUlxVThjaGJz?=
 =?utf-8?B?cUYrVVBxYWJZZGdBSVBneFlqd1dVQ3c3ZjBoQWE0V0VNZG92SUVtTnpGc0ty?=
 =?utf-8?B?SEswalFxbXY4U3ZnQVhIcm5iTGZsd2xSWWZrQ2oyUTRaMFBXQlZsVmdEU0VX?=
 =?utf-8?B?MlBIQXczeTRvTEM1R21RdnJFYS9lTmtOaDE0UmRUZHZROUR6SmQrL1N2d2F0?=
 =?utf-8?B?SEdvVGNrZkZoTWoxeXdWRzNkWUV3ZWtTU1VhbG8vd3hPUklteHExQktjNWNE?=
 =?utf-8?B?TzkyZ0tiK1FneC9EcFcvSktVTVhZUitjalVFbXUyQkc5dmJIaFd0TjN6MGdz?=
 =?utf-8?B?akt0c0xnSWpuTUphY2FDakZaQkloY3hGdmtsR1VMYi9NbkVmeXlJcENZcXQ2?=
 =?utf-8?B?Q1h0KzVsb2tsN2NGeGh3aU9GNkZjbUtkQVlJampTK2MwdnVQdnIvNkNpWVEw?=
 =?utf-8?B?NnkwSXN6OFVmb2krVkRRek9Pd0hkVFFaendJSktaRCtPUy9mTWw1ZnB0RXVK?=
 =?utf-8?B?d0dXS2s2ZE1JZUh5UHRhY2xUREFYTGNxWldHOUMwNFVDUGo3b2JPaEZkZmw5?=
 =?utf-8?B?cmd6dmNSa3VodkM0WCtBbXhqWWtmTVlpWmdKa1V5czVLdVh3T1hmSlBRTHNF?=
 =?utf-8?B?SzdSZW9mWU5XQkh0dEtxMHQ5cGVJM043V1REZnRoK0tXUmIrdm02d2VNU1d6?=
 =?utf-8?B?NTlXcEgybVlxNTBqNDg3dHN1cVN0OXB1UHVrY2l4Mm5FWkJVUG5pZHhaUGRh?=
 =?utf-8?B?M1l5OTc4ZldabzI5M2VBeFpEdUNtcXVyL3B5UG1iRzlHZG4wNEhGenUrSnB6?=
 =?utf-8?B?K0grVE9qQi9WZ3dFSmJLd1d1dXFPTU5RZytjWG9yL1BYQUZLVEZ1a1N5YXZk?=
 =?utf-8?B?RWJVS2VIem1Rb0s3N3RTb2g0am4vZ1k5WkdMTWwwcitJenZ5U3dLeFV5WC8y?=
 =?utf-8?B?czlha2VxSGpYV0trZlN3bUZnR2k2WTB1elZxKzJtR0VJVWl1NmZPMTlBUU0r?=
 =?utf-8?B?TlNyUkk4ZlFUeTF0cUprWklqTzk2ZGcyNXVHT3ZHWlUreGs2UzJtZ3YveWpp?=
 =?utf-8?B?K2J3cEFmRlg4aDl6Vi9DKzBBUklPSklBaTE5OUpQak9lR1ZQTVY1dmVweDBW?=
 =?utf-8?B?MjIwYS9EVSt2OVFPanlkc2srUDZNWmMzTzMyaGowRnpWVWYxZy94ZXZSOXFT?=
 =?utf-8?B?T3NXYmlCTHJTVVBrYkliOUI5a0RtbWtNRkI2c3RsT1NOc1hob2ZpbHB6V1o5?=
 =?utf-8?B?cXVtTytoQjZka09vWVRMNitVNVdPdEc3Vm53LzkreDJ0UnB6UThZWmtCeXZI?=
 =?utf-8?B?RFZOSWZaVW9mRVVuMno1cGIvcTZNcXBjOWh0YjM2V2IzS0lGUDNYVzJ0WFcx?=
 =?utf-8?B?M0dRUUN3SHRESUpPT2c0K2FJUDdBR0RuV3laWjVRRFNoazd1TloraVRaU3Vm?=
 =?utf-8?B?NUFJMmhNTDZRLzFoRHM3SU9jRU9GNzMvWmZ3b1dwalQyN3VVRW5qc2tIYjdk?=
 =?utf-8?B?YXV4ZGVIZ0FHSnBSRkVXMFRySndpTkV6NU1CbXZQWFY4Y3RZUys1dHprVDRu?=
 =?utf-8?B?cmR4OGhFU2tuVFJVZVB4SlM2VGFHN1VUNXJNbnpoQkI4cFU2eWNmU3NyL056?=
 =?utf-8?B?Tnc5WXdYUlIrSlFsbVEzMncwR1hKTi9DRnZaOXBybExmZlkzbEZMVFA5a1BT?=
 =?utf-8?B?YjdCMW9mS0RCRmJFY0IxRTFQZWZEM1l2VWxUZlFmd1lWdU9XM1ltYVJkQ1NW?=
 =?utf-8?B?a3NSNzNVdGZ3QlgzWkQ4aWZUUXFiRGVOV3pjMk9zTUUzbWNKeVhvUklYeWxV?=
 =?utf-8?Q?KwiFPPtmy3U6t?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?c3VnT3FSbEZQODVyZkp4TE5Ya000TTN4UkRnOWdFdWZLQlhwbFRORy84cEdT?=
 =?utf-8?B?STRPZkM1OGw4VVJ6UzQyd1hsYXVWVDdBQy9BTzE1SXJXcFlWOGFINzFjRHlT?=
 =?utf-8?B?TmNBWGdFaHJyb0lHMittRzZiMW82OHU0THcvMkFyZWg2MkVUdDhDL1VRNWFT?=
 =?utf-8?B?TUVwSkdsRGxXVVV4bWVlUjJpeFptU29EREF0SDd6T2dDcWVoUHhuZmdyRWFt?=
 =?utf-8?B?bjlrMkZNSVExTm5UV05xdTNVSkFLSjlSamJJUlVQNUh2VjU2a3ZYM280aVRJ?=
 =?utf-8?B?SnRpRmg4MzVuMlhRT2tqNXl6MzlBSWRXeXZaa0ZGeXFqUXYwZU56WXNhdlVs?=
 =?utf-8?B?d1QvZytuTnYrcVdiRHhMR2xaRlZXQWl1Q0Y5T0lJYkx2Q1FrcEs3RWlxM1po?=
 =?utf-8?B?WUVGa0hDV1ppQnJ5blQzdzJjVlBTUEZwQUhaZVY4OGl3M0NmR0FtYS9Rdm9p?=
 =?utf-8?B?VWwrY2xtblVmZHp0em1TRDg1L1RwUzhJMmpMWG9QdDFUQ1I4ZkgzTm5POFJO?=
 =?utf-8?B?NzBOSHd0YVducFpnbHZSTCtYYlhXTXFBR0l0K1ZWbkZrRjBlVDFxSUF5eXUw?=
 =?utf-8?B?bTNhZTc5RXRQNXdjL1ZFWGVpLzZ0YXMxTzZ5UzA2M0F6ckxpeVBNK1BFYW9S?=
 =?utf-8?B?SGxqRmJUbGxwQ2V4WHdaR3BqM2p4eGpsQjhjTXVRVXM2WjdOUG1Ud09hdzNy?=
 =?utf-8?B?Z09CU1pCM1J5MmFHWWxISmY2bjVkaHlKOVh3Z2ZzZnJKQnlHL2FPa3RFRTNJ?=
 =?utf-8?B?OGtpZk9rRWpUNXBUTk9PS3U3R2RKc0xHRUhmQ2hNKytYS2Q5R0tvdG9XTm1Q?=
 =?utf-8?B?RHZCRUZKVmxSL2wvdW44Ry8zU0FZN2MrTVoxOE5LMmE4dEtBMGdYRHBseEFs?=
 =?utf-8?B?YlZENHQ5bXQ3bitPdDgvWk5NTkpXa09kNVJaUkl1TnZsZzJNNm0zZ1VycjJB?=
 =?utf-8?B?YUpvTlZ2QzFqUnFrejZQTzhuVmdacTFpWDVlZEZSS2o0YVJCNTFNNFJpT0hS?=
 =?utf-8?B?NU1OSmtYR08wdlFXUG44MkNLQzlJZ1poTENUZmR0enROOE1wcWZBMGhKUW5Z?=
 =?utf-8?B?OHhtNE8zQTY5NFY3aXk0R2tPdTdDcFo5S25GRnRLcVdjSlFYa01HT0RHM1hk?=
 =?utf-8?B?eFBmK3BGbVB5UWNGZ3Fwd3hEQUJuZVNoeXR4NmIwaGE5NmxrNmdJVi96UHBD?=
 =?utf-8?B?MjdVRDVINHlTMy9LNnlwUDZPa3ZlWFRhMktaQmdyK05odDY3WmY4a2c3OXdX?=
 =?utf-8?B?MC8zQUlWYlJjSEhNaERWdm85ZDVURDlhY0kzWWc3NVIreEtWeDhGNDNqcGpV?=
 =?utf-8?B?c3lXTHlHVWRDOU5zN3kzNkhjY0dpNU1OVVlyK2RGTENWa1NJTEdjZWI5Y3Zz?=
 =?utf-8?B?dWswb0k4ODJFbmRaZll1SU5nSTlWbXgzQWw0Q0U5ZGFhRUIyS3dObWtTdDJJ?=
 =?utf-8?B?Mk9id2FpVWMvQjgxcVVRN1hQbjhNcURTeWFnc3Q0U0xTTmh1ZFRHMGpiN0RY?=
 =?utf-8?B?TW1xNFl5VXc4UFNzK093cmprQ3kzSis3TllRaUFiM0sycU9tRjhrZXovenlH?=
 =?utf-8?B?U1JZTTVTYTc4WE9vRzlRb1dSbWR0cGpnVlU3QWczaUYxT05FUnZNSnlnb2xw?=
 =?utf-8?B?ZWlPNGJYWlArWTN6MkpmTlNuRk5IcHgveWVXREhtUWphSldhQnA1Z2x4bW1w?=
 =?utf-8?B?eTlWcE0wUHhHb1o2cnNXendzWnBxWWlucks3ZzZmUVRFWXhNYk5EVTNKL1l6?=
 =?utf-8?B?eHI1a294M1p3QmRZdlQvYmRweG0xT0JpVkoxYitCc1kxQTdWRm1STXc5aDY0?=
 =?utf-8?B?UU55Z09vdnlLajQ4bFBRUkZHMVRUNTNPa1hNbnVPZ3g5TC9Wamo3dEh6T0gr?=
 =?utf-8?B?UXR3WTVPeFJ1c1VUU2hWM3FiZVJoTWRpY3lhUk5mWXE5MWxldUpLVjNFMU5H?=
 =?utf-8?B?b0FYdit5WWFUY3NhWVh1d3gwL0ZURkRpNW5TWFlkTDRXemJhWUx1eFBxNzdE?=
 =?utf-8?B?T21uVWowajFIMFZySytjYjk3MmpDakx5cm93NWF6dXJFU29HZTF0UzhhMHNu?=
 =?utf-8?B?T2hmdVV6VHY2UmRUTGJYNUhRWEJjV0ZrL05PWFVUSXJ4RGZLUHFqa0ljT2pL?=
 =?utf-8?Q?QWL0=3D?=
Content-Type: multipart/mixed;
	boundary="_005_BL1PR12MB5849FC8077C7C6035F1D3E15E7242BL1PR12MB5849namp_"
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b103d9fe-1985-4e24-c0a0-08dd052234ce
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2024 03:04:22.9066
 (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: U0tQu+XiVb3CNhh9pAS5Lq1RXzCCVk7SrI7eAekrypnc8reZTr2hsxk63Ml0bHTaOEn7ARC6v5ePGeqxFlPigQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8351

--_005_BL1PR12MB5849FC8077C7C6035F1D3E15E7242BL1PR12MB5849namp_
Content-Type: text/plain; charset="utf-8"
Content-ID: <B72EC136DD70944899B8F7D69C233348@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64

T24gMjAyNC8xMS8xNSAwMTozNiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gVGh1LCBO
b3YgMTQsIDIwMjQgYXQgMDQ6NTI6MThQTSArMDEwMCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToN
Cj4+IE9uIFRodSwgTm92IDE0LCAyMDI0IGF0IDA2OjExOjQ2QU0gKzAwMDAsIENoZW4sIEppcWlh
biB3cm90ZToNCj4+PiBPbiAyMDI0LzExLzEzIDE4OjMwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3Rl
Og0KPj4+PiBPbiBXZWQsIE5vdiAxMywgMjAyNCBhdCAxMDowMDozM0FNICswMDAwLCBDaGVuLCBK
aXFpYW4gd3JvdGU6DQo+Pj4+PiBPbiAyMDI0LzExLzEzIDE3OjMwLCBSb2dlciBQYXUgTW9ubsOp
IHdyb3RlOg0KPj4+Pj4+IE9uIFdlZCwgTm92IDEzLCAyMDI0IGF0IDA0OjAwOjI3UE0gKzA4MDAs
IEppcWlhbiBDaGVuIHdyb3RlOg0KPj4+Pj4+PiBTb21lIGRldmljZXMsIGxpa2UgZGlzY3JldGUg
R1BVIG9mIGFtZCwgc3VwcG9ydCByZXNpemFibGUgYmFyIGNhcGFiaWxpdHksDQo+Pj4+Pj4+IGJ1
dCB2cGNpIG9mIFhlbiBkb2Vzbid0IHN1cHBvcnQgdGhpcyBmZWF0dXJlLCBzbyB0aGV5IGZhaWwg
dG8gcmVzaXplIGJhcnMNCj4+Pj4+Pj4gYW5kIHRoZW4gY2F1c2UgcHJvYmluZyBmYWlsdXJlLg0K
Pj4+Pj4+Pg0KPj4+Pj4+PiBBY2NvcmRpbmcgdG8gUENJZSBzcGVjLCBlYWNoIGJhciB0aGF0IHN1
cHBvcnQgcmVzaXppbmcgaGFzIHR3byByZWdpc3RlcnMsDQo+Pj4+Pj4+IFBDSV9SRUJBUl9DQVAg
YW5kIFBDSV9SRUJBUl9DVFJMLCBzbyBhZGQgdGhlc2UgdHdvIHJlZ2lzdGVycyBhbmQgdGhlaXIN
Cj4+Pj4+Pj4gY29ycmVzcG9uZGluZyBoYW5kbGVyIGludG8gdnBjaS4NCj4+Pj4+Pj4NCj4+Pj4+
Pj4gUENJX1JFQkFSX0NBUCBpcyBSTywgb25seSBwcm92aWRlIHJlYWRpbmcuDQo+Pj4+Pj4+DQo+
Pj4+Pj4+IFBDSV9SRUJBUl9DVFJMIG9ubHkgaGFzIGJhciBzaXplIGlzIFJXLCBzbyBhZGQgd3Jp
dGUgZnVuY3Rpb24gdG8gc3VwcG9ydA0KPj4+Pj4+PiBzZXR0aW5nIHRoZSBuZXcgc2l6ZS4NCj4+
Pj4+Pg0KPj4+Pj4+IEkgdGhpbmsgdGhlIGxvZ2ljIHRvIGhhbmRsZSByZXNpemFibGUgQkFSIGNv
dWxkIGJlIG11Y2ggc2ltcGxlci4gIFNvbWUNCj4+Pj4+PiB0aW1lIGFnbyBJJ3ZlIG1hZGUgYSBw
YXRjaCB0byBhZGQgc3VwcG9ydCBmb3IgaXQsIGJ1dCBkdWUgdG8gbGFjayBvZg0KPj4+Pj4+IGhh
cmR3YXJlIG9uIG15IHNpZGUgdG8gdGVzdCBpdCBJJ3ZlIG5ldmVyIHN1Ym1pdHRlZCBpdC4NCj4+
Pj4+Pg0KPj4+Pj4+IE15IGFwcHJvYWNoIHdvdWxkIGJlIHRvIGRldGVjdCB0aGUgcHJlc2VuY2Ug
b2YgdGhlDQo+Pj4+Pj4gUENJX0VYVF9DQVBfSURfUkVCQVIgY2FwYWJpbGl0eSBpbiBpbml0X2hl
YWRlcigpLCBhbmQgaWYgdGhlDQo+Pj4+Pj4gY2FwYWJpbGl0eSBpcyBwcmVzZW50IGZvcmNlIHRo
ZSBzaXppbmcgb2YgQkFScyBlYWNoIHRpbWUgdGhleSBhcmUNCj4+Pj4+PiBtYXBwZWQgaW4gbW9k
aWZ5X2JhcnMoKS4gIEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byB0cmFwIGFjY2Vzc2VzIHRvDQo+
Pj4+Pj4gdGhlIGNhcGFiaWxpdHkgaXRzZWxmLCBhcyByZXNpemluZyBjYW4gb25seSBoYXBwZW4g
d2hlbiBtZW1vcnkNCj4+Pj4+PiBkZWNvZGluZyBpcyBub3QgZW5hYmxlZCBmb3IgdGhlIGRldmlj
ZS4gIEl0J3MgZW5vdWdoIHRvIGZldGNoIHRoZSBzaXplDQo+Pj4+Pj4gb2YgdGhlIEJBUnMgYWhl
YWQgb2YgZWFjaCBlbmFibGluZyBvZiBtZW1vcnkgZGVjb2RpbmcuDQo+Pj4+Pj4NCj4+Pj4+PiBO
b3RlIHRoYXQgbWVtb3J5IGRlY29kaW5nIGltcGxpZXMgbWFwcGluZyB0aGUgQkFScyBpbnRvIHRo
ZSBwMm0sIHdoaWNoDQo+Pj4+Pj4gaXMgYWxyZWFkeSBhbiBleHBlbnNpdmUgb3BlcmF0aW9uLCB0
aGUgZXh0cmEgc2l6aW5nIGlzIHVubGlrZWx5IHRvDQo+Pj4+Pj4gbWFrZSBtdWNoIG9mIGEgZGlm
ZmVyZW5jZSBwZXJmb3JtYW5jZSB3aXNlLg0KPj4+Pj4+DQo+Pj4+Pj4gSSd2ZSBmb3VuZCB0aGUg
Zm9sbG93aW5nIG9uIG15IGdpdCB0cmVlIGFuZCByZWJhc2VkIG9uIHRvcCBvZiBzdGFnaW5nOg0K
Pj4+Pj4gT0suDQo+Pj4+PiBEbyB5b3UgbmVlZCBtZSB0byB2YWxpZGF0ZSB5b3VyIHBhdGNoIGlu
IG15IGVudmlyb25tZW50Pw0KPj4+Pg0KPj4+PiBZZXMgcGxlYXNlLCBJIGhhdmUgbm8gd2F5IHRv
IHRlc3QgaXQuICBMZXQncyBzZWUgd2hhdCBvdGhlcnMgdGhpbmsNCj4+Pj4gYWJvdXQgdGhlIGRp
ZmZlcmVudCBhcHByb2FjaGVzLg0KPj4+IFRoZXJlIGFyZSBzb21lIGVycm9ycyB3aXRoIHlvdXIg
bWV0aG9kLg0KPj4+IEkgYXR0YWNoZWQgdGhlIGRtZXNnIGFuZCB4bCBkbWVzZyBsb2dzLg0KPj4+
IEZyb20gdGhlIGRtZXNnIGxvZ3MsIGl0IHNlZW1zIHRoYXQgMDAwMDowMzowMC4wIGhhcyBhZGRy
ZXNzZSBvdmVybGFwIHdpdGggMDAwMDowMzowMC4xDQo+Pg0KPj4gRG8geW91IGhhdmUgdGhlIG91
dHB1dCBvZiBsc3BjaSB3aXRoIHRoZSBCQVIgc2l6ZXMvcG9zaXRpb25zIGJlZm9yZQ0KPj4gYW5k
IGFmdGVyIHRoZSByZXNpemluZz8NCj4+DQo+Pj4NCj4+PiBJIHRoaW5rIHRoZXJlIGlzIGEgcGxh
Y2UgdGhhdCBuZWVkcyB0byBiZSBtb2RpZmllZCByZWdhcmRpbmcgeW91ciBtZXRob2QsDQo+Pj4g
YWx0aG91Z2ggdGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3QgaGVscCB3aXRoIHRoZSBhYm92ZS1t
ZW50aW9uZWQgZXJyb3JzLA0KPj4+IGl0IGlzIHRoYXQgd2hldGhlciB0byBzdXBwb3J0IHJlc2l6
aW5nIGlzIHNwZWNpZmljIHRvIHdoaWNoIGJhciwgcmF0aGVyIHRoYW4ganVzdCBkZXRlcm1pbmlu
ZyB3aGV0aGVyIHRoZXJlIGlzIGEgUmViYXIgY2FwYWJpbGl0eS4NCj4+DQo+PiBEbyB3ZSByZWFs
bHkgbmVlZCBzdWNoIGZpbmUtZ3JhaW5lZCBpbmZvcm1hdGlvbj8gIEl0IHNob3VsZCBiZQ0KPj4g
aGFybWxlc3MgKGV2ZW4gaWYgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSkgdG8gc2l6ZSBhbGwgQkFS
cyBvbiB0aGUNCj4+IGRldmljZSBiZWZvcmUgZW5hYmxpbmcgbWVtb3J5IGRlY29kaW5nLCBldmVu
IGlmIHNvbWUgb2YgdGhlbSBkbyBub3QNCj4+IHN1cHBvcnQgcmVzaXppbmcuDQo+Pg0KPj4gSSBt
aWdodCBoYXZlIHRvIHByb3ZpZGUgYSBwYXRjaCB3aXRoIGFkZGl0aW9uYWwgbWVzc2FnZXMgdG8g
c2VlIHdoYXQncw0KPj4gZ29pbmcgb24uDQo+IA0KPiBPbmUgbml0IHRoYXQgSSd2ZSBub3RpY2Vk
IHdpdGggdGhlIHBhdGNoIEkgZ2F2ZSB5b3UgcHJldmlvdXNseSBpcyB0aGF0DQo+IHRoZSBjaGVj
ayBmb3IgYSBzaXplIGNoYW5nZSBpbiBtb2RpZnlfYmFycygpIHNob3VsZCBiZSBkb25lIGFoZWFk
IG9mDQo+IHBjaV9jaGVja19iYXIoKSwgb3RoZXJ3aXNlIHRoZSBjaGVjayBpcyBwb3NzaWJseSB1
c2luZyBhbiBvdXRkYXRlZA0KPiBzaXplLg0KPiANCj4gSSd2ZSBhbHNvIGFkZGVkIGEgZGVidWcg
bWVzc2FnZSB0byBub3RpZnkgd2hlbiBhIEJBUiByZWdpc3RlciBpcw0KPiB3cml0dGVuIGFuZCBy
ZXBvcnQgdGhlIG5ldyBhZGRyZXNzLiAgVGhpcyBpcyBkb25lIHVuY29uZGl0aW9uYWxseSwgYnV0
DQo+IGlmIHlvdSB0aGluayBpdCdzIHRvbyBjaGF0dHkgeW91IGNhbiBsaW1pdCB0byBvbmx5IHBy
aW50aW5nIGZvciB0aGUNCj4gZGV2aWNlIHRoYXQgaGFzIHRoZSBSZUJBUiBjYXBhYmlsaXR5Lg0K
RXJyb3JzIGFyZSB0aGUgc2FtZS4NCkF0dGFjaGVkIHRoZSBkbWVzZywgeGwgZG1lc2csIHBhdGNo
IGFuZCBsc3BjaSBvdXRwdXQuDQpJIHdpbGwgYWxzbyBjb250aW51ZSB0byBkZWJ1ZyB5b3VyIG1l
dGhvZCBvbiBteSBzaWRlIHRvIHRyeSB0byBnZXQgc29tZSBmaW5kaW5ncy4NCg0KPiANCj4gVGhh
bmtzLCBSb2dlci4NCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5j
IGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPiBpbmRleCBlZjZjOTY1YzA4MWMuLmQ0OWQz
NTg4OTkzYiAxMDA2NDQNCj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPiArKysg
Yi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+IEBAIC0zNDYsNiArMzQ2LDMwIEBAIHN0YXRp
YyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90IGNt
ZCwgYm9vbCByb21fb25seSkNCj4gICAgICAgICAgICAgICBiYXItPmVuYWJsZWQgPT0gISEoY21k
ICYgUENJX0NPTU1BTkRfTUVNT1JZKSApDQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4gIA0K
PiArICAgICAgICBpZiAoIGJhci0+dHlwZSAhPSBWUENJX0JBUl9ST00gJiYgaGVhZGVyLT5iYXJz
X3Jlc2l6YWJsZSAmJg0KPiArICAgICAgICAgICAgIChjbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkp
ICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsNCj4g
Kw0KPiArICAgICAgICAgICAgcGNpX3NpemVfbWVtX2JhcihwZGV2LT5zYmRmLCBQQ0lfQkFTRV9B
RERSRVNTXzAgKyBpICogNCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZHIs
ICZzaXplLCAwKTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKCBiYXItPmFkZHIgIT0gYWRkciAp
DQo+ICsgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUg0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAiJXBwOiBCQVIjJXUgYWRkcmVzcyBtaXNtYXRjaCAlI2x4IHZzICUjbHhcbiIs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBpLCBiYXItPmFkZHIsIGFk
ZHIpOw0KPiArDQo+ICsgICAgICAgICAgICBpZiAoIGJhci0+c2l6ZSAhPSBzaXplICkNCj4gKyAg
ICAgICAgICAgIHsNCj4gKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgIiVwcDogZGV0ZWN0ZWQgQkFSIyV1IHNpemUgY2hhbmdl
ICglI2x4IC0+ICUjbHgpXG4iLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAmcGRldi0+c2Jk
ZiwgaSwgYmFyLT5zaXplLCBzaXplKTsNCj4gKyAgICAgICAgICAgICAgICBiYXItPnNpemUgPSBz
aXplOw0KPiArICAgICAgICAgICAgICAgIGVuZCA9IFBGTl9ET1dOKGJhci0+YWRkciArIHNpemUg
LSAxKTsNCj4gKyAgICAgICAgICAgICAgICBlbmRfZ3Vlc3QgPSBQRk5fRE9XTihiYXItPmd1ZXN0
X2FkZHIgKyBzaXplIC0gMSk7DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgIH0NCj4gKw0K
PiAgICAgICAgICBpZiAoICFwY2lfY2hlY2tfYmFyKHBkZXYsIF9tZm4oc3RhcnQpLCBfbWZuKGVu
ZCkpICkNCj4gICAgICAgICAgew0KPiAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX1dBUk5J
TkcNCj4gQEAgLTYwMSw2ICs2MjUsOSBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBiYXJfd3JpdGUo
DQo+ICAgICAgLyogVXBkYXRlIGd1ZXN0IGFkZHJlc3MsIHNvIGhhcmR3YXJlIGRvbWFpbiBCQVIg
aXMgaWRlbnRpdHkgbWFwcGVkLiAqLw0KPiAgICAgIGJhci0+Z3Vlc3RfYWRkciA9IGJhci0+YWRk
cjsNCj4gIA0KPiArZ3ByaW50ayhYRU5MT0dfREVCVUcsICIlcHA6IHVwZGF0ZWQgQkFSJXp1IGFk
ZHJlc3M6ICUjbHhcbiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBiYXIg
LSBwZGV2LT52cGNpLT5oZWFkZXIuYmFycyArIGhpLCBiYXItPmFkZHIpOw0KPiArDQo+ICAgICAg
LyogTWFrZSBzdXJlIFhlbiB3cml0ZXMgYmFjayB0aGUgc2FtZSB2YWx1ZSBmb3IgdGhlIEJBUiBS
TyBiaXRzLiAqLw0KPiAgICAgIGlmICggIWhpICkNCj4gICAgICB7DQo+IEBAIC04NzAsNiArODk3
LDkgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbml0X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRl
dikNCj4gICAgICBpZiAoIHBkZXYtPmlnbm9yZV9iYXJzICkNCj4gICAgICAgICAgcmV0dXJuIDA7
DQo+ICANCj4gKyAgICBoZWFkZXItPmJhcnNfcmVzaXphYmxlID0gcGNpX2ZpbmRfZXh0X2NhcGFi
aWxpdHkocGRldi0+c2JkZiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUENJX0VYVF9DQVBfSURfUkVCQVIpOw0KPiArDQo+ICAgICAgY21k
ID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9DT01NQU5EKTsNCj4gIA0KPiAgICAg
IC8qDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcGNpX3JlZ3MuaCBiL3hlbi9pbmNs
dWRlL3hlbi9wY2lfcmVncy5oDQo+IGluZGV4IDI1MGJhMTA2ZGJkMy4uYzU0M2EyYjg2Nzc4IDEw
MDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vcGNpX3JlZ3MuaA0KPiArKysgYi94ZW4vaW5j
bHVkZS94ZW4vcGNpX3JlZ3MuaA0KPiBAQCAtNDU5LDYgKzQ1OSw3IEBADQo+ICAjZGVmaW5lIFBD
SV9FWFRfQ0FQX0lEX0FSSQkxNA0KPiAgI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9BVFMJMTUNCj4g
ICNkZWZpbmUgUENJX0VYVF9DQVBfSURfU1JJT1YJMTYNCj4gKyNkZWZpbmUgUENJX0VYVF9DQVBf
SURfUkVCQVIJMjENCj4gIA0KPiAgLyogQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5nICovDQo+ICAj
ZGVmaW5lIFBDSV9FUlJfVU5DT1JfU1RBVFVTCTQJLyogVW5jb3JyZWN0YWJsZSBFcnJvciBTdGF0
dXMgKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92cGNpLmggYi94ZW4vaW5jbHVk
ZS94ZW4vdnBjaS5oDQo+IGluZGV4IDQxZTdjM2JjMjc5MS4uNDVlYmMxYmIzMzU2IDEwMDY0NA0K
PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi92
cGNpLmgNCj4gQEAgLTEyOSw2ICsxMjksOCBAQCBzdHJ1Y3QgdnBjaSB7DQo+ICAgICAgICAgICAq
IHVwb24gdG8ga25vdyB3aGV0aGVyIEJBUnMgYXJlIG1hcHBlZCBpbnRvIHRoZSBndWVzdCBwMm0u
DQo+ICAgICAgICAgICAqLw0KPiAgICAgICAgICBib29sIGJhcnNfbWFwcGVkICAgICAgOiAxOw0K
PiArICAgICAgICAvKiBEZXZpY2UgaGFzIHRoZSBSZXNpemFibGUgQkFScyBjYXBhYmlsaXR5LiAq
Lw0KPiArICAgICAgICBib29sIGJhcnNfcmVzaXphYmxlICAgOiAxOw0KPiAgICAgICAgICAvKiBG
SVhNRTogY3VycmVudGx5IHRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgU1ItSU9WLiAqLw0KPiAgICAg
IH0gaGVhZGVyOw0KPiAgDQo+IA0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K

--_005_BL1PR12MB5849FC8077C7C6035F1D3E15E7242BL1PR12MB5849namp_
Content-Type: application/octet-stream; name="0001-Rebar-debug-of-Roger.patch"
Content-Description: 0001-Rebar-debug-of-Roger.patch
Content-Disposition: attachment; filename="0001-Rebar-debug-of-Roger.patch";
	size=3383; creation-date="Fri, 15 Nov 2024 02:54:24 GMT";
	modification-date="Fri, 15 Nov 2024 03:04:19 GMT"
Content-Transfer-Encoding: base64

RnJvbSBhYjJhMTc4ZTM4MGQ4M2RhMmI4MzNlZWE3ZWU2OWJiZTM2YzM3MzcxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4KRGF0
ZTogRnJpLCAxNSBOb3YgMjAyNCAxMDoyNzo0OCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMS8xXSBS
ZWJhciBkZWJ1ZyBvZiBSb2dlcgoKLS0tCiB4ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jICB8IDMw
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUveGVuL3BjaV9yZWdz
LmggfCAgMSArCiB4ZW4vaW5jbHVkZS94ZW4vdnBjaS5oICAgICB8ICAyICsrCiAzIGZpbGVzIGNo
YW5nZWQsIDMzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hl
YWRlci5jIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwppbmRleCBlZjZjOTY1YzA4MWMuLmZm
M2JkMzU5NDk2OCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYworKysgYi94
ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCkBAIC0zNDYsNiArMzQ2LDMwIEBAIHN0YXRpYyBpbnQg
bW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90IGNtZCwgYm9v
bCByb21fb25seSkKICAgICAgICAgICAgICBiYXItPmVuYWJsZWQgPT0gISEoY21kICYgUENJX0NP
TU1BTkRfTUVNT1JZKSApCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBpZiAoIGJh
ci0+dHlwZSAhPSBWUENJX0JBUl9ST00gJiYgaGVhZGVyLT5iYXJzX3Jlc2l6YWJsZSAmJgorICAg
ICAgICAgICAgIChjbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkpICkKKyAgICAgICAgeworICAgICAg
ICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsKKworICAgICAgICAgICAgcGNpX3NpemVfbWVtX2Jh
cihwZGV2LT5zYmRmLCBQQ0lfQkFTRV9BRERSRVNTXzAgKyBpICogNCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmFkZHIsICZzaXplLCAwKTsKKworICAgICAgICAgICAgaWYgKCBiYXIt
PmFkZHIgIT0gYWRkciApCisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUgorICAg
ICAgICAgICAgICAgICAgICAgICAiJXBwOiBCQVIjJXUgYWRkcmVzcyBtaXNtYXRjaCAlI2x4IHZz
ICUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBpLCBiYXItPmFk
ZHIsIGFkZHIpOworCisgICAgICAgICAgICBpZiAoIGJhci0+c2l6ZSAhPSBzaXplICkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcKKyAgICAgICAg
ICAgICAgICAgICAgICAgIiVwcDogZGV0ZWN0ZWQgQkFSIyV1IHNpemUgY2hhbmdlICglI2x4IC0+
ICUjbHgpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgaSwgYmFyLT5z
aXplLCBzaXplKTsKKyAgICAgICAgICAgICAgICBiYXItPnNpemUgPSBzaXplOworICAgICAgICAg
ICAgICAgIGVuZCA9IFBGTl9ET1dOKGJhci0+YWRkciArIHNpemUgLSAxKTsKKyAgICAgICAgICAg
ICAgICBlbmRfZ3Vlc3QgPSBQRk5fRE9XTihiYXItPmd1ZXN0X2FkZHIgKyBzaXplIC0gMSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBpZiAoICFwY2lfY2hlY2tfYmFyKHBk
ZXYsIF9tZm4oc3RhcnQpLCBfbWZuKGVuZCkpICkKICAgICAgICAgewogICAgICAgICAgICAgcHJp
bnRrKFhFTkxPR19HX1dBUk5JTkcKQEAgLTYwMSw2ICs2MjUsOSBAQCBzdGF0aWMgdm9pZCBjZl9j
aGVjayBiYXJfd3JpdGUoCiAgICAgLyogVXBkYXRlIGd1ZXN0IGFkZHJlc3MsIHNvIGhhcmR3YXJl
IGRvbWFpbiBCQVIgaXMgaWRlbnRpdHkgbWFwcGVkLiAqLwogICAgIGJhci0+Z3Vlc3RfYWRkciA9
IGJhci0+YWRkcjsKIAorICAgIGdwcmludGsoWEVOTE9HX0lORk8sICIlcHA6IHVwZGF0ZWQgQkFS
JXp1IGFkZHJlc3M6ICUjbHhcbiIsCisgICAgICAgICAgICAmcGRldi0+c2JkZiwgYmFyIC0gcGRl
di0+dnBjaS0+aGVhZGVyLmJhcnMgKyBoaSwgYmFyLT5hZGRyKTsKKwogICAgIC8qIE1ha2Ugc3Vy
ZSBYZW4gd3JpdGVzIGJhY2sgdGhlIHNhbWUgdmFsdWUgZm9yIHRoZSBCQVIgUk8gYml0cy4gKi8K
ICAgICBpZiAoICFoaSApCiAgICAgewpAQCAtODcwLDYgKzg5Nyw5IEBAIHN0YXRpYyBpbnQgY2Zf
Y2hlY2sgaW5pdF9oZWFkZXIoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgaWYgKCBwZGV2LT5p
Z25vcmVfYmFycyApCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaGVhZGVyLT5iYXJzX3Jlc2l6
YWJsZSA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5KHBkZXYtPnNiZGYsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9FWFRfQ0FQX0lEX1JF
QkFSKTsKKwogICAgIGNtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfQ09NTUFO
RCk7CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmggYi94
ZW4vaW5jbHVkZS94ZW4vcGNpX3JlZ3MuaAppbmRleCAyNTBiYTEwNmRiZDMuLmM1NDNhMmI4Njc3
OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmgKKysrIGIveGVuL2luY2x1
ZGUveGVuL3BjaV9yZWdzLmgKQEAgLTQ1OSw2ICs0NTksNyBAQAogI2RlZmluZSBQQ0lfRVhUX0NB
UF9JRF9BUkkJMTQKICNkZWZpbmUgUENJX0VYVF9DQVBfSURfQVRTCTE1CiAjZGVmaW5lIFBDSV9F
WFRfQ0FQX0lEX1NSSU9WCTE2CisjZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX1JFQkFSCTIxCiAKIC8q
IEFkdmFuY2VkIEVycm9yIFJlcG9ydGluZyAqLwogI2RlZmluZSBQQ0lfRVJSX1VOQ09SX1NUQVRV
Uwk0CS8qIFVuY29ycmVjdGFibGUgRXJyb3IgU3RhdHVzICovCmRpZmYgLS1naXQgYS94ZW4vaW5j
bHVkZS94ZW4vdnBjaS5oIGIveGVuL2luY2x1ZGUveGVuL3ZwY2kuaAppbmRleCA0MWU3YzNiYzI3
OTEuLjQ1ZWJjMWJiMzM1NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaAorKysg
Yi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oCkBAIC0xMjksNiArMTI5LDggQEAgc3RydWN0IHZwY2kg
ewogICAgICAgICAgKiB1cG9uIHRvIGtub3cgd2hldGhlciBCQVJzIGFyZSBtYXBwZWQgaW50byB0
aGUgZ3Vlc3QgcDJtLgogICAgICAgICAgKi8KICAgICAgICAgYm9vbCBiYXJzX21hcHBlZCAgICAg
IDogMTsKKyAgICAgICAgLyogRGV2aWNlIGhhcyB0aGUgUmVzaXphYmxlIEJBUnMgY2FwYWJpbGl0
eS4gKi8KKyAgICAgICAgYm9vbCBiYXJzX3Jlc2l6YWJsZSAgIDogMTsKICAgICAgICAgLyogRklY
TUU6IGN1cnJlbnRseSB0aGVyZSdzIG5vIHN1cHBvcnQgZm9yIFNSLUlPVi4gKi8KICAgICB9IGhl
YWRlcjsKIAotLSAKMi4zNC4xCgo=

--_005_BL1PR12MB5849FC8077C7C6035F1D3E15E7242BL1PR12MB5849namp_
Content-Type: text/plain; name="rebar_dmesg.txt"
Content-Description: rebar_dmesg.txt
Content-Disposition: attachment; filename="rebar_dmesg.txt"; size=117520;
	creation-date="Fri, 15 Nov 2024 02:57:34 GMT";
	modification-date="Fri, 15 Nov 2024 03:04:20 GMT"
Content-Transfer-Encoding: base64

WyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiA2LjEyLjAtcmM1LWc1YzY4MDhkMWE5ZGQgKGNq
cUBjanEtZGVza3RvcCkgKGdjYyAoVWJ1bnR1IDExLjQuMC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4w
LCBHTlUgbGQgKEdOVSBCaW51dGlscyBmb3IgVWJ1bnR1KSAyLjM4KSAjMiBTTVAgUFJFRU1QVF9E
WU5BTUlDIFR1ZSBOb3YgMTIgMTc6MjQ6MjQgQ1NUIDIwMjQKWyAgICAwLjAwMDAwMF0gQ29tbWFu
ZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVVSUQ9YTQ5ZmU0MjEtOTQwZC00MmJkLWIzNDMtNjY1
ZmVhMGQ4OGEyIHJvIHF1aWV0IHNwbGFzaCBpb21tdS5wYXNzdGhyb3VnaD0xClsgICAgMC4wMDAw
MDBdIEtFUk5FTCBzdXBwb3J0ZWQgY3B1czoKWyAgICAwLjAwMDAwMF0gICBJbnRlbCBHZW51aW5l
SW50ZWwKWyAgICAwLjAwMDAwMF0gICBBTUQgQXV0aGVudGljQU1EClsgICAgMC4wMDAwMDBdICAg
SHlnb24gSHlnb25HZW51aW5lClsgICAgMC4wMDAwMDBdICAgQ2VudGF1ciBDZW50YXVySGF1bHMK
WyAgICAwLjAwMDAwMF0gICB6aGFveGluICAgU2hhbmdoYWkgIApbICAgIDAuMDAwMDAwXSBbRmly
bXdhcmUgQnVnXTogVFNDIGRvZXNuJ3QgY291bnQgd2l0aCBQMCBmcmVxdWVuY3khClsgICAgMC4w
MDAwMDBdIEJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKWyAgICAwLjAwMDAwMF0gQklP
Uy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwOWVmZmZdIHVzYWJs
ZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMDlmMDAwLTB4MDAw
MDAwMDAwMDBmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDAwMDEwMDAwMC0weDAwMDAwMDAwMDlhZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAw
XSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDA5YjAwMDAwLTB4MDAwMDAwMDAwOWRmZmZmZl0g
cmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAw
MC0weDAwMDAwMDAwMDllZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt
ZW0gMHgwMDAwMDAwMDA5ZjAwMDAwLTB4MDAwMDAwMDAwOWYwZmZmZl0gQUNQSSBOVlMKWyAgICAw
LjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWYxMDAwMC0weDAwMDAwMDAwYmI0
NjVmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGJi
NDY2MDAwLTB4MDAwMDAwMDBiYzU2NWZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1l
ODIwOiBbbWVtIDB4MDAwMDAwMDBiYzU2NjAwMC0weDAwMDAwMDAwYzg3N2VmZmZdIHVzYWJsZQpb
ICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGM4NzdmMDAwLTB4MDAwMDAw
MDBjYWY3ZWZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAw
MDAwMDBjYWY3ZjAwMC0weDAwMDAwMDAwY2NmN2VmZmZdIEFDUEkgTlZTClsgICAgMC4wMDAwMDBd
IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2NmN2YwMDAtMHgwMDAwMDAwMGNjZmZlZmZmXSBB
Q1BJIGRhdGEKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjY2ZmZjAw
MC0weDAwMDAwMDAwY2NmZmZkZDddIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt
ZW0gMHgwMDAwMDAwMGNjZmZmZGQ4LTB4MDAwMDAwMDBjY2ZmZmVlZl0gQUNQSSBkYXRhClsgICAg
MC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2QwMDAwMDAtMHgwMDAwMDAwMGNk
ZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAw
MGYwMDAwMDAwLTB4MDAwMDAwMDBmN2ZmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklP
Uy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZGUwMDAwMC0weDAwMDAwMDAwZmRlZmZmZmZdIHJlc2Vy
dmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwZmVjMDAwMDAtMHgw
MDAwMDAwMGZlYzAxZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0g
MHgwMDAwMDAwMGZlYzEwMDAwLTB4MDAwMDAwMDBmZWMxMGZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAw
MDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZWMyMDAwMC0weDAwMDAwMDAwZmVjMjBm
ZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwZmVk
ODAwMDAtMHgwMDAwMDAwMGZlZDgxZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4
MjA6IFttZW0gMHgwMDAwMDAwMGZlZGMwMDAwLTB4MDAwMDAwMDBmZWRkZmZmZl0gcmVzZXJ2ZWQK
WyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZWUwMDAwMC0weDAwMDAw
MDAwZmVlMDBmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAw
MDAwMDAwZmYwMDAwMDAtMHgwMDAwMDAwMGZmZjFmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAw
XSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMTAwMDAwMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0g
dXNhYmxlClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDA4MGYzNDAwMDAt
MHgwMDAwMDAwODJmZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBOWCAoRXhlY3V0ZSBE
aXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUKWyAgICAwLjAwMDAwMF0gQVBJQzogU3RhdGljIGNh
bGxzIGluaXRpYWxpemVkClsgICAgMC4wMDAwMDBdIGVmaTogRUZJIHYyLjcgYnkgSU5TWURFIENv
cnAuClsgICAgMC4wMDAwMDBdIGVmaTogQUNQST0weGNjZmZlMDAwIEFDUEkgMi4wPTB4Y2NmZmUw
MTQgVFBNRmluYWxMb2c9MHhjY2Y2MDAwMCBTTUJJT1M9MHhjOTY4YjAwMCBTTUJJT1MgMy4wPTB4
Yzk2ODkwMDAgRVNSVD0weGM5ODJhMjE4IChNRU1BVFRSPTB4YzMyYWIwMTggdW51c2FibGUpIE1P
S3Zhcj0weGM5ODUzMDAwIApbICAgIDAuMDAwMDAwXSBTTUJJT1MgMy4xLjEgcHJlc2VudC4KWyAg
ICAwLjAwMDAwMF0gRE1JOiBBTUQgQ2VsYWRvbi1STi9DZWxhZG9uLVJOLCBCSU9TIFRDUjAwODBC
IDAzLzEwLzIwMjMKWyAgICAwLjAwMDAwMF0gRE1JOiBNZW1vcnkgc2xvdHMgcG9wdWxhdGVkOiAy
LzIKWyAgICAwLjAwMDAwMF0gSHlwZXJ2aXNvciBkZXRlY3RlZDogWGVuIEhWTQpbICAgIDAuMDAw
MDAwXSBYZW4gdmVyc2lvbiA0LjIwLgpbICAgIDAuMDAwMDExXSBIVk1PUF9wYWdldGFibGVfZHlp
bmcgbm90IHN1cHBvcnRlZApbICAgIDAuMTY0NTY2XSB0c2M6IEZhc3QgVFNDIGNhbGlicmF0aW9u
IGZhaWxlZApbICAgIDAuMTY0NTcyXSB0c2M6IERldGVjdGVkIDI5OTQuMzgyIE1IeiBwcm9jZXNz
b3IKWyAgICAwLjE2NDY2N10gZTgyMDogdXBkYXRlIFttZW0gMHgwMDAwMDAwMC0weDAwMDAwZmZm
XSB1c2FibGUgPT0+IHJlc2VydmVkClsgICAgMC4xNjQ2NzJdIGU4MjA6IHJlbW92ZSBbbWVtIDB4
MDAwYTAwMDAtMHgwMDBmZmZmZl0gdXNhYmxlClsgICAgMC4xNjQ2ODVdIGxhc3RfcGZuID0gMHg4
MGYzNDAgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAwLjE2NDg0OV0gTVRSUiBtYXA6
IDUgZW50cmllcyAoNCBmaXhlZCArIDEgdmFyaWFibGU7IG1heCAyMSksIGJ1aWx0IGZyb20gOSB2
YXJpYWJsZSBNVFJScwpbICAgIDAuMTY0ODU0XSB4ODYvUEFUOiBDb25maWd1cmF0aW9uIFswLTdd
OiBXQiAgV0MgIFVDLSBVQyAgV0IgIFdQICBVQy0gV1QgIApbICAgIDAuMTY1NTg4XSBDUFUgTVRS
UnMgYWxsIGJsYW5rIC0gdmlydHVhbGl6ZWQgc3lzdGVtLgpbICAgIDAuMTY1NTk2XSBsYXN0X3Bm
biA9IDB4Y2NmZmYgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAwLjE3MTU0OF0gZXNy
dDogUmVzZXJ2aW5nIEVTUlQgc3BhY2UgZnJvbSAweDAwMDAwMDAwYzk4MmEyMTggdG8gMHgwMDAw
MDAwMGM5ODJhMjUwLgpbICAgIDAuMTcxNTY2XSBVc2luZyBHQiBwYWdlcyBmb3IgZGlyZWN0IG1h
cHBpbmcKWyAgICAwLjE3MzM2Nl0gU2VjdXJlIGJvb3QgZGlzYWJsZWQKWyAgICAwLjE3MzM3MV0g
UkFNRElTSzogW21lbSAweDA0ODAwMDAwLTB4MDgxMGJmZmZdClsgICAgMC4xNzMzODFdIEFDUEk6
IEVhcmx5IHRhYmxlIGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBkaXNhYmxlZApbICAgIDAuMTczMzg4
XSBBQ1BJOiBSU0RQIDB4MDAwMDAwMDBDQ0ZGRkREOCAwMDAwMjQgKHYwMiBBTUQgICApClsgICAg
MC4xNzMzOTRdIEFDUEk6IFhTRFQgMHgwMDAwMDAwMENDRkZGREZDIDAwMDBFQyAodjAxIEFNRCAg
ICBDZWxhZG9uICAwMDAwMDAwMiAgICAgIDAxMDAwMDEzKQpbICAgIDAuMTczNDAxXSBBQ1BJOiBB
UElDIDB4MDAwMDAwMDBDQ0ZGRkVFOCAwMDAxMTggKHYwNCBBTUQgICAgQ2VsYWRvbiAgMDAwMDAw
MDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MzQwOF0gQUNQSTogRkFDUCAweDAwMDAwMDAwQ0NG
RTYwMDAgMDAwMTE0ICh2MDYgQU1EICAgIENlbGFkb24gIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDAp
ClsgICAgMC4xNzM0ODRdIEFDUEk6IERTRFQgMHgwMDAwMDAwMENDRkQ0MDAwIDAwOTBCRiAodjAx
IEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTczNDg5XSBB
Q1BJOiBGQUNTIDB4MDAwMDAwMDBDQ0VGMTAwMCAwMDAwNDAKWyAgICAwLjE3MzQ5Nl0gQUNQSTog
U1NEVCAweDAwMDAwMDAwQ0NGRjUwMDAgMDA3MjNDICh2MDIgQU1EICAgIENlbGFkb24gIDAwMDAw
MDAyIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzM1MDJdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMEND
RkYwMDAwIDAwMzc0QSAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAw
KQpbICAgIDAuMTczNTA3XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQ0ZFRjAwMCAwMDAyMjggKHYw
MSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MzUxM10g
QUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRUIwMDAgMDAwNDZEICh2MDEgQU1EICAgIENlbGFkb24g
IDAwMDAxMDAwIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzM1MThdIEFDUEk6IE1DRkcgMHgwMDAw
MDAwMENDRkUzMDAwIDAwMDAzQyAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAw
MDQwMDAwKQpbICAgIDAuMTczNTI0XSBBQ1BJOiBTTElDIDB4MDAwMDAwMDBDQ0ZFMjAwMCAwMDAx
NzYgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3
MzUyOV0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRkQwMDAgMDAwMDgwICh2MDEgQU1EICAgIENl
bGFkb24gIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzM1MzRdIEFDUEk6IFNTRFQg
MHgwMDAwMDAwMENDRkM1MDAwIDAwMDE2NCAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMTAwMCBB
Q1BJIDAwMDQwMDAwKQpbICAgIDAuMTczNTQwXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQ0ZDMjAw
MCAwMDJCODAgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAg
ICAwLjE3MzU0NV0gQUNQSTogVkZDVCAweDAwMDAwMDAwQ0NGQTcwMDAgMDE4Q0EwICh2MDEgQU1E
ICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzM1NTFdIEFDUEk6
IFNTRFQgMHgwMDAwMDAwMENDRkQzMDAwIDAwMDEzOSAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAw
MDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTczNTU3XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBD
Q0ZFRDAwMCAwMDAyOEQgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAw
MCkKWyAgICAwLjE3MzU2Ml0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRDIwMDAgMDAwRDM3ICh2
MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4xNzM1Njhd
IEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRkQwMDAwIDAwMTBBQiAodjAxIEFNRCAgICBDZWxhZG9u
ICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTczNTcyXSBBQ1BJOiBTU0RUIDB4MDAw
MDAwMDBDQ0ZDRjAwMCAwMDAxNzkgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAw
MDA0MDAwMCkKWyAgICAwLjE3MzU3OF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGQ0QwMDAgMDAx
NTRGICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4x
NzM1ODNdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRkNCMDAwIDAwMTBCMyAodjAxIEFNRCAgICBD
ZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTczNTg4XSBBQ1BJOiBTU0RU
IDB4MDAwMDAwMDBDQ0ZDQTAwMCAwMDAxQzAgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEg
QUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MzU5NF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGQzYw
MDAgMDAzMEM4ICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsg
ICAgMC4xNzM2MDBdIEFDUEk6IEZQRFQgMHgwMDAwMDAwMENDRjk1MDAwIDAwMDA0NCAodjAxIEFN
RCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTczNjA2XSBBQ1BJ
OiBTU0RUIDB4MDAwMDAwMDBDQ0ZFMTAwMCAwMDAwN0QgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAw
MDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjE3MzYxMV0gQUNQSTogU1NEVCAweDAwMDAwMDAw
Q0NGRTAwMDAgMDAwRjk2ICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAw
MDApClsgICAgMC4xNzM2MTZdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRjkzMDAwIDAwMDUxNyAo
djAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMTczNjE5
XSBBQ1BJOiBSZXNlcnZpbmcgQVBJQyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmZmZWU4LTB4
Y2NmZmZmZmZdClsgICAgMC4xNzM2MjFdIEFDUEk6IFJlc2VydmluZyBGQUNQIHRhYmxlIG1lbW9y
eSBhdCBbbWVtIDB4Y2NmZTYwMDAtMHhjY2ZlNjExM10KWyAgICAwLjE3MzYyM10gQUNQSTogUmVz
ZXJ2aW5nIERTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkNDAwMC0weGNjZmRkMGJlXQpb
ICAgIDAuMTczNjI0XSBBQ1BJOiBSZXNlcnZpbmcgRkFDUyB0YWJsZSBtZW1vcnkgYXQgW21lbSAw
eGNjZWYxMDAwLTB4Y2NlZjEwM2ZdClsgICAgMC4xNzM2MjVdIEFDUEk6IFJlc2VydmluZyBTU0RU
IHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZjUwMDAtMHhjY2ZmYzIzYl0KWyAgICAwLjE3MzYy
Nl0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZmMDAwMC0w
eGNjZmYzNzQ5XQpbICAgIDAuMTczNjI3XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1v
cnkgYXQgW21lbSAweGNjZmVmMDAwLTB4Y2NmZWYyMjddClsgICAgMC4xNzM2MjhdIEFDUEk6IFJl
c2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZWIwMDAtMHhjY2ZlYjQ2Y10K
WyAgICAwLjE3MzYyOF0gQUNQSTogUmVzZXJ2aW5nIE1DRkcgdGFibGUgbWVtb3J5IGF0IFttZW0g
MHhjY2ZlMzAwMC0weGNjZmUzMDNiXQpbICAgIDAuMTczNjI5XSBBQ1BJOiBSZXNlcnZpbmcgU0xJ
QyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmUyMDAwLTB4Y2NmZTIxNzVdClsgICAgMC4xNzM2
MzBdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZmQwMDAt
MHhjY2ZmZDA3Zl0KWyAgICAwLjE3MzYzMV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVt
b3J5IGF0IFttZW0gMHhjY2ZjNTAwMC0weGNjZmM1MTYzXQpbICAgIDAuMTczNjMyXSBBQ1BJOiBS
ZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmMyMDAwLTB4Y2NmYzRiN2Zd
ClsgICAgMC4xNzM2MzNdIEFDUEk6IFJlc2VydmluZyBWRkNUIHRhYmxlIG1lbW9yeSBhdCBbbWVt
IDB4Y2NmYTcwMDAtMHhjY2ZiZmM5Zl0KWyAgICAwLjE3MzYzNF0gQUNQSTogUmVzZXJ2aW5nIFNT
RFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkMzAwMC0weGNjZmQzMTM4XQpbICAgIDAuMTcz
NjM1XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmVkMDAw
LTB4Y2NmZWQyOGNdClsgICAgMC4xNzM2MzZdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1l
bW9yeSBhdCBbbWVtIDB4Y2NmZDIwMDAtMHhjY2ZkMmQzNl0KWyAgICAwLjE3MzYzN10gQUNQSTog
UmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkMDAwMC0weGNjZmQxMGFh
XQpbICAgIDAuMTczNjM4XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21l
bSAweGNjZmNmMDAwLTB4Y2NmY2YxNzhdClsgICAgMC4xNzM2MzldIEFDUEk6IFJlc2VydmluZyBT
U0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmY2QwMDAtMHhjY2ZjZTU0ZV0KWyAgICAwLjE3
MzY0MF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZjYjAw
MC0weGNjZmNjMGIyXQpbICAgIDAuMTczNjQxXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBt
ZW1vcnkgYXQgW21lbSAweGNjZmNhMDAwLTB4Y2NmY2ExYmZdClsgICAgMC4xNzM2NDJdIEFDUEk6
IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmYzYwMDAtMHhjY2ZjOTBj
N10KWyAgICAwLjE3MzY0M10gQUNQSTogUmVzZXJ2aW5nIEZQRFQgdGFibGUgbWVtb3J5IGF0IFtt
ZW0gMHhjY2Y5NTAwMC0weGNjZjk1MDQzXQpbICAgIDAuMTczNjQ0XSBBQ1BJOiBSZXNlcnZpbmcg
U1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmUxMDAwLTB4Y2NmZTEwN2NdClsgICAgMC4x
NzM2NDVdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZTAw
MDAtMHhjY2ZlMGY5NV0KWyAgICAwLjE3MzY0NV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHhjY2Y5MzAwMC0weGNjZjkzNTE2XQpbICAgIDAuMTczOTI3XSBObyBO
VU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKWyAgICAwLjE3MzkyOV0gRmFraW5nIGEgbm9kZSBhdCBb
bWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZdClsgICAgMC4xNzM5NDNd
IE5PREVfREFUQSgwKSBhbGxvY2F0ZWQgW21lbSAweDFiOGNjNWEwMC0weDFiOGNlZmZmZl0KWyAg
ICAwLjE3NDIyM10gWm9uZSByYW5nZXM6ClsgICAgMC4xNzQyMjRdICAgRE1BICAgICAgW21lbSAw
eDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAwZmZmZmZmXQpbICAgIDAuMTc0MjI3XSAgIERN
QTMyICAgIFttZW0gMHgwMDAwMDAwMDAxMDAwMDAwLTB4MDAwMDAwMDBmZmZmZmZmZl0KWyAgICAw
LjE3NDIyOV0gICBOb3JtYWwgICBbbWVtIDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDA4MGYz
M2ZmZmZdClsgICAgMC4xNzQyMzBdICAgRGV2aWNlICAgZW1wdHkKWyAgICAwLjE3NDIzMV0gTW92
YWJsZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKWyAgICAwLjE3NDIzNV0gRWFybHkgbWVtb3J5
IG5vZGUgcmFuZ2VzClsgICAgMC4xNzQyMzVdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDAw
MDAxMDAwLTB4MDAwMDAwMDAwMDA5ZWZmZl0KWyAgICAwLjE3NDIzN10gICBub2RlICAgMDogW21l
bSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAwMDA5YWZmZmZmXQpbICAgIDAuMTc0MjM4XSAg
IG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAwMC0weDAwMDAwMDAwMDllZmZmZmZdClsg
ICAgMC4xNzQyMzldICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDA5ZjEwMDAwLTB4MDAwMDAw
MDBiYjQ2NWZmZl0KWyAgICAwLjE3NDI0MV0gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwYmM1
NjYwMDAtMHgwMDAwMDAwMGM4NzdlZmZmXQpbICAgIDAuMTc0MjQyXSAgIG5vZGUgICAwOiBbbWVt
IDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZdClsgICAgMC4xNzQyNDVdIElu
aXRtZW0gc2V0dXAgbm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDgwZjMz
ZmZmZl0KWyAgICAwLjE3NDI1M10gT24gbm9kZSAwLCB6b25lIERNQTogMSBwYWdlcyBpbiB1bmF2
YWlsYWJsZSByYW5nZXMKWyAgICAwLjE3NDMwMV0gT24gbm9kZSAwLCB6b25lIERNQTogOTcgcGFn
ZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC4xNzQ3MjldIE9uIG5vZGUgMCwgem9uZSBE
TUEzMjogNzY4IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMTgzMDg5XSBPbiBu
b2RlIDAsIHpvbmUgRE1BMzI6IDE2IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAu
MTgzNzM5XSBPbiBub2RlIDAsIHpvbmUgRE1BMzI6IDQzNTIgcGFnZXMgaW4gdW5hdmFpbGFibGUg
cmFuZ2VzClsgICAgMC4yNjg1MTldIE9uIG5vZGUgMCwgem9uZSBOb3JtYWw6IDMwODQ5IHBhZ2Vz
IGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMjY4NTgzXSBPbiBub2RlIDAsIHpvbmUgTm9y
bWFsOiAzMjY0IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMjcwMDE5XSBBQ1BJ
OiBQTS1UaW1lciBJTyBQb3J0OiAweDQwOApbICAgIDAuMjcwMTQxXSBJT0FQSUNbMF06IGFwaWNf
aWQgMzMsIHZlcnNpb24gMTcsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMKWyAgICAwLjI3
MDIwNl0gSU9BUElDWzFdOiBhcGljX2lkIDM0LCB2ZXJzaW9uIDE3LCBhZGRyZXNzIDB4ZmVjMDEw
MDAsIEdTSSAyNC01NQpbICAgIDAuMjcwMjEwXSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVz
X2lycSAwIGdsb2JhbF9pcnEgMiBkZmwgZGZsKQpbICAgIDAuMjcwMjEzXSBBQ1BJOiBJTlRfU1JD
X09WUiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpClsgICAgMC4yNzAy
MThdIEFDUEk6IFVzaW5nIEFDUEkgKE1BRFQpIGZvciBTTVAgY29uZmlndXJhdGlvbiBpbmZvcm1h
dGlvbgpbICAgIDAuMjcwMjI3XSBDUFUgdG9wbzogTWF4LiBsb2dpY2FsIHBhY2thZ2VzOiAgIDEK
WyAgICAwLjI3MDIyN10gQ1BVIHRvcG86IE1heC4gbG9naWNhbCBkaWVzOiAgICAgICAxClsgICAg
MC4yNzAyMjhdIENQVSB0b3BvOiBNYXguIGRpZXMgcGVyIHBhY2thZ2U6ICAgMQpbICAgIDAuMjcw
MjM0XSBDUFUgdG9wbzogTWF4LiB0aHJlYWRzIHBlciBjb3JlOiAgIDEKWyAgICAwLjI3MDIzNl0g
Q1BVIHRvcG86IE51bS4gY29yZXMgcGVyIHBhY2thZ2U6ICAgIDEyClsgICAgMC4yNzAyMzZdIENQ
VSB0b3BvOiBOdW0uIHRocmVhZHMgcGVyIHBhY2thZ2U6ICAxMgpbICAgIDAuMjcwMjM3XSBDUFUg
dG9wbzogQWxsb3dpbmcgMTIgcHJlc2VudCBDUFVzIHBsdXMgMCBob3RwbHVnIENQVXMKWyAgICAw
LjI3MDI4MF0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0g
MHgwMDAwMDAwMC0weDAwMDAwZmZmXQpbICAgIDAuMjcwMjgzXSBQTTogaGliZXJuYXRpb246IFJl
Z2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDAwMDlmMDAwLTB4MDAwZmZmZmZdClsgICAg
MC4yNzAyODVdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVt
IDB4MDliMDAwMDAtMHgwOWRmZmZmZl0KWyAgICAwLjI3MDI4OF0gUE06IGhpYmVybmF0aW9uOiBS
ZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHgwOWYwMDAwMC0weDA5ZjBmZmZmXQpbICAg
IDAuMjcwMjkwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21l
bSAweGJiNDY2MDAwLTB4YmM1NjVmZmZdClsgICAgMC4yNzAyOTJdIFBNOiBoaWJlcm5hdGlvbjog
UmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Yzg3N2YwMDAtMHhjYWY3ZWZmZl0KWyAg
ICAwLjI3MDI5M10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFtt
ZW0gMHhjYWY3ZjAwMC0weGNjZjdlZmZmXQpbICAgIDAuMjcwMjk0XSBQTTogaGliZXJuYXRpb246
IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjZjdmMDAwLTB4Y2NmZmVmZmZdClsg
ICAgMC4yNzAyOTVdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBb
bWVtIDB4Y2NmZmYwMDAtMHhjY2ZmZmZmZl0KWyAgICAwLjI3MDI5N10gUE06IGhpYmVybmF0aW9u
OiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhjY2ZmZjAwMC0weGNjZmZmZmZmXQpb
ICAgIDAuMjcwMjk4XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTog
W21lbSAweGNkMDAwMDAwLTB4Y2RmZmZmZmZdClsgICAgMC4yNzAyOTldIFBNOiBoaWJlcm5hdGlv
bjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Y2UwMDAwMDAtMHhlZmZmZmZmZl0K
WyAgICAwLjI3MDI5OV0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6
IFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXQpbICAgIDAuMjcwMzAwXSBQTTogaGliZXJuYXRp
b246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGY4MDAwMDAwLTB4ZmRkZmZmZmZd
ClsgICAgMC4yNzAzMDFdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5
OiBbbWVtIDB4ZmRlMDAwMDAtMHhmZGVmZmZmZl0KWyAgICAwLjI3MDMwMl0gUE06IGhpYmVybmF0
aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZGYwMDAwMC0weGZlYmZmZmZm
XQpbICAgIDAuMjcwMzAzXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9y
eTogW21lbSAweGZlYzAwMDAwLTB4ZmVjMDFmZmZdClsgICAgMC4yNzAzMDRdIFBNOiBoaWJlcm5h
dGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmVjMDIwMDAtMHhmZWMwZmZm
Zl0KWyAgICAwLjI3MDMwNV0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1v
cnk6IFttZW0gMHhmZWMxMDAwMC0weGZlYzEwZmZmXQpbICAgIDAuMjcwMzA2XSBQTTogaGliZXJu
YXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZlYzExMDAwLTB4ZmVjMWZm
ZmZdClsgICAgMC4yNzAzMDZdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVt
b3J5OiBbbWVtIDB4ZmVjMjAwMDAtMHhmZWMyMGZmZl0KWyAgICAwLjI3MDMwN10gUE06IGhpYmVy
bmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWMyMTAwMC0weGZlZDdm
ZmZmXQpbICAgIDAuMjcwMzA4XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1l
bW9yeTogW21lbSAweGZlZDgwMDAwLTB4ZmVkODFmZmZdClsgICAgMC4yNzAzMDldIFBNOiBoaWJl
cm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmVkODIwMDAtMHhmZWRi
ZmZmZl0KWyAgICAwLjI3MDMxMF0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBt
ZW1vcnk6IFttZW0gMHhmZWRjMDAwMC0weGZlZGRmZmZmXQpbICAgIDAuMjcwMzExXSBQTTogaGli
ZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZlZGUwMDAwLTB4ZmVk
ZmZmZmZdClsgICAgMC4yNzAzMTJdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUg
bWVtb3J5OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0KWyAgICAwLjI3MDMxMl0gUE06IGhp
YmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWUwMTAwMC0weGZl
ZmZmZmZmXQpbICAgIDAuMjcwMzEzXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZl
IG1lbW9yeTogW21lbSAweGZmMDAwMDAwLTB4ZmZmMWZmZmZdClsgICAgMC4yNzAzMTRdIFBNOiBo
aWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmZmMjAwMDAtMHhm
ZmZmZmZmZl0KWyAgICAwLjI3MDMxNl0gW21lbSAweGNlMDAwMDAwLTB4ZWZmZmZmZmZdIGF2YWls
YWJsZSBmb3IgUENJIGRldmljZXMKWyAgICAwLjI3MDMzMl0gQm9vdGluZyBrZXJuZWwgb24gWGVu
IFBWSApbICAgIDAuMjcwMzMzXSBYZW4gdmVyc2lvbjogNC4yMC11bnN0YWJsZQpbICAgIDAuMjcw
MzM3XSBjbG9ja3NvdXJjZTogcmVmaW5lZC1qaWZmaWVzOiBtYXNrOiAweGZmZmZmZmZmIG1heF9j
eWNsZXM6IDB4ZmZmZmZmZmYsIG1heF9pZGxlX25zOiA3NjQ1NTE5NjAwMjExNTY4IG5zClsgICAg
MC4yNzAzNTldIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo4MTkyIG5yX2NwdW1hc2tfYml0czoxMiBu
cl9jcHVfaWRzOjEyIG5yX25vZGVfaWRzOjEKWyAgICAwLjI3MjE1Nl0gcGVyY3B1OiBFbWJlZGRl
ZCA2NiBwYWdlcy9jcHUgczIzMzQ3MiByODE5MiBkMjg2NzIgdTUyNDI4OApbICAgIDAuMjcyMTcz
XSBwY3B1LWFsbG9jOiBzMjMzNDcyIHI4MTkyIGQyODY3MiB1NTI0Mjg4IGFsbG9jPTEqMjA5NzE1
MgpbICAgIDAuMjcyMTc2XSBwY3B1LWFsbG9jOiBbMF0gMDAgMDEgMDIgMDMgWzBdIDA0IDA1IDA2
IDA3IApbICAgIDAuMjcyMTgyXSBwY3B1LWFsbG9jOiBbMF0gMDggMDkgMTAgMTEgClsgICAgMC4y
NzIyNTldIHhlbjogUFYgc3BpbmxvY2tzIGVuYWJsZWQKWyAgICAwLjI3MjI2M10gUFYgcXNwaW5s
b2NrIGhhc2ggdGFibGUgZW50cmllczogMjU2IChvcmRlcjogMCwgNDA5NiBieXRlcywgbGluZWFy
KQpbICAgIDAuMjcyMjY2XSBLZXJuZWwgY29tbWFuZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVV
SUQ9YTQ5ZmU0MjEtOTQwZC00MmJkLWIzNDMtNjY1ZmVhMGQ4OGEyIHJvIHF1aWV0IHNwbGFzaCBp
b21tdS5wYXNzdGhyb3VnaD0xClsgICAgMC4yNzIzOTRdIFVua25vd24ga2VybmVsIGNvbW1hbmQg
bGluZSBwYXJhbWV0ZXJzICJwbGFjZWhvbGRlciBzcGxhc2giLCB3aWxsIGJlIHBhc3NlZCB0byB1
c2VyIHNwYWNlLgpbICAgIDAuMjcyNDIxXSByYW5kb206IGNybmcgaW5pdCBkb25lClsgICAgMC4y
NzM5NjddIERlbnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDEwNDg1NzYgKG9yZGVyOiAx
MSwgODM4ODYwOCBieXRlcywgbGluZWFyKQpbICAgIDAuMjc0NzI4XSBJbm9kZS1jYWNoZSBoYXNo
IHRhYmxlIGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDEwLCA0MTk0MzA0IGJ5dGVzLCBsaW5lYXIp
ClsgICAgMC4yNzQ4NTNdIEZhbGxiYWNrIG9yZGVyIGZvciBOb2RlIDA6IDAgClsgICAgMC4yNzQ4
NjBdIEJ1aWx0IDEgem9uZWxpc3RzLCBtb2JpbGl0eSBncm91cGluZyBvbi4gIFRvdGFsIHBhZ2Vz
OiA4MjE4MTg5ClsgICAgMC4yNzQ4NjJdIFBvbGljeSB6b25lOiBOb3JtYWwKWyAgICAwLjI3NDg3
N10gbWVtIGF1dG8taW5pdDogc3RhY2s6b2ZmLCBoZWFwIGFsbG9jOm9uLCBoZWFwIGZyZWU6b2Zm
ClsgICAgMC4yNzQ4NzldIHN0YWNrZGVwb3Q6IGFsbG9jYXRpbmcgaGFzaCB0YWJsZSB2aWEgYWxs
b2NfbGFyZ2Vfc3lzdGVtX2hhc2gKWyAgICAwLjI3NDg4M10gc3RhY2tkZXBvdCBoYXNoIHRhYmxl
IGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDExLCA4Mzg4NjA4IGJ5dGVzLCBsaW5lYXIpClsgICAg
MC4yNzYzNjNdIHNvZnR3YXJlIElPIFRMQjogYXJlYSBudW0gMTYuClsgICAgMC41MTEyODNdIFNM
VUI6IEhXYWxpZ249NjQsIE9yZGVyPTAtMywgTWluT2JqZWN0cz0wLCBDUFVzPTEyLCBOb2Rlcz0x
ClsgICAgMC41MTE0MTFdIGZ0cmFjZTogYWxsb2NhdGluZyA1Mjc5MSBlbnRyaWVzIGluIDIwNyBw
YWdlcwpbICAgIDAuNTI1ODI5XSBmdHJhY2U6IGFsbG9jYXRlZCAyMDcgcGFnZXMgd2l0aCA2IGdy
b3VwcwpbICAgIDAuNTI3MjQwXSBEeW5hbWljIFByZWVtcHQ6IHZvbHVudGFyeQpbICAgIDAuNTI3
NzM5XSByY3U6IFByZWVtcHRpYmxlIGhpZXJhcmNoaWNhbCBSQ1UgaW1wbGVtZW50YXRpb24uClsg
ICAgMC41Mjc3NDFdIHJjdTogCVJDVSByZXN0cmljdGluZyBDUFVzIGZyb20gTlJfQ1BVUz04MTky
IHRvIG5yX2NwdV9pZHM9MTIuClsgICAgMC41Mjc3NDNdIAlUcmFtcG9saW5lIHZhcmlhbnQgb2Yg
VGFza3MgUkNVIGVuYWJsZWQuClsgICAgMC41Mjc3NDRdIAlSdWRlIHZhcmlhbnQgb2YgVGFza3Mg
UkNVIGVuYWJsZWQuClsgICAgMC41Mjc3NDRdIAlUcmFjaW5nIHZhcmlhbnQgb2YgVGFza3MgUkNV
IGVuYWJsZWQuClsgICAgMC41Mjc3NDVdIHJjdTogUkNVIGNhbGN1bGF0ZWQgdmFsdWUgb2Ygc2No
ZWR1bGVyLWVubGlzdG1lbnQgZGVsYXkgaXMgMjUgamlmZmllcy4KWyAgICAwLjUyNzc0Nl0gcmN1
OiBBZGp1c3RpbmcgZ2VvbWV0cnkgZm9yIHJjdV9mYW5vdXRfbGVhZj0xNiwgbnJfY3B1X2lkcz0x
MgpbICAgIDAuNTI3Nzk0XSBSQ1UgVGFza3M6IFNldHRpbmcgc2hpZnQgdG8gNCBhbmQgbGltIHRv
IDEgcmN1X3Rhc2tfY2JfYWRqdXN0PTEgcmN1X3Rhc2tfY3B1X2lkcz0xMi4KWyAgICAwLjUyNzc5
OF0gUkNVIFRhc2tzIFJ1ZGU6IFNldHRpbmcgc2hpZnQgdG8gNCBhbmQgbGltIHRvIDEgcmN1X3Rh
c2tfY2JfYWRqdXN0PTEgcmN1X3Rhc2tfY3B1X2lkcz0xMi4KWyAgICAwLjUyNzgwMl0gUkNVIFRh
c2tzIFRyYWNlOiBTZXR0aW5nIHNoaWZ0IHRvIDQgYW5kIGxpbSB0byAxIHJjdV90YXNrX2NiX2Fk
anVzdD0xIHJjdV90YXNrX2NwdV9pZHM9MTIuClsgICAgMC41MzgzMzFdIFVzaW5nIE5VTEwgbGVn
YWN5IFBJQwpbICAgIDAuNTM4MzM1XSBOUl9JUlFTOiA1MjQ1NDQsIG5yX2lycXM6IDEwNjQsIHBy
ZWFsbG9jYXRlZCBpcnFzOiAwClsgICAgMC41Mzg0NDldIHhlbjpldmVudHM6IFVzaW5nIEZJRk8t
YmFzZWQgQUJJClsgICAgMC41Mzg0ODNdIHhlbjpldmVudHM6IFhlbiBIVk0gY2FsbGJhY2sgdmVj
dG9yIGZvciBldmVudCBkZWxpdmVyeSBpcyBlbmFibGVkClsgICAgMC41Mzg1NzRdIHJjdTogc3Jj
dV9pbml0OiBTZXR0aW5nIHNyY3Vfc3RydWN0IHNpemVzIGJhc2VkIG9uIGNvbnRlbnRpb24uClsg
ICAgMC41Mzg3MzldIENvbnNvbGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MjUKWyAgICAwLjUz
ODc0NF0gcHJpbnRrOiBsZWdhY3kgY29uc29sZSBbdHR5MF0gZW5hYmxlZApbICAgIDAuNTM4Nzcy
XSBwcmludGs6IGxlZ2FjeSBjb25zb2xlIFtodmMwXSBlbmFibGVkClsgICAgMC41Mzg4NzFdIEFD
UEk6IENvcmUgcmV2aXNpb24gMjAyNDA4MjcKWyAgICAwLjU4ODg5OF0gRmFpbGVkIHRvIHJlZ2lz
dGVyIGxlZ2FjeSB0aW1lciBpbnRlcnJ1cHQKWyAgICAwLjU4ODkwMl0gQVBJQzogU3dpdGNoIHRv
IHN5bW1ldHJpYyBJL08gbW9kZSBzZXR1cApbICAgIDAuNTg5OTE5XSB4MmFwaWMgZW5hYmxlZApb
ICAgIDAuNTkxMTAzXSBBUElDOiBTd2l0Y2hlZCBBUElDIHJvdXRpbmcgdG86IHBoeXNpY2FsIHgy
YXBpYwpbICAgIDAuNTkxNTA2XSBjbG9ja3NvdXJjZTogdHNjLWVhcmx5OiBtYXNrOiAweGZmZmZm
ZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgyYjI5OGE0NTljNCwgbWF4X2lkbGVfbnM6IDQ0MDc5
NTMyNjM1OSBucwpbICAgIDAuNTkxNTIwXSBDYWxpYnJhdGluZyBkZWxheSBsb29wIChza2lwcGVk
KSwgdmFsdWUgY2FsY3VsYXRlZCB1c2luZyB0aW1lciBmcmVxdWVuY3kuLiA1OTg4Ljc2IEJvZ29N
SVBTIChscGo9MTE5Nzc1MjgpClsgICAgMC41OTE2ODldIHg4Ni9jcHU6IFVzZXIgTW9kZSBJbnN0
cnVjdGlvbiBQcmV2ZW50aW9uIChVTUlQKSBhY3RpdmF0ZWQKWyAgICAwLjU5MTc4MV0gTGFzdCBs
ZXZlbCBpVExCIGVudHJpZXM6IDRLQiAxMDI0LCAyTUIgMTAyNCwgNE1CIDUxMgpbICAgIDAuNTkx
NzgyXSBMYXN0IGxldmVsIGRUTEIgZW50cmllczogNEtCIDIwNDgsIDJNQiAyMDQ4LCA0TUIgMTAy
NCwgMUdCIDAKWyAgICAwLjU5MTc4OV0gU3BlY3RyZSBWMSA6IE1pdGlnYXRpb246IHVzZXJjb3B5
L3N3YXBncyBiYXJyaWVycyBhbmQgX191c2VyIHBvaW50ZXIgc2FuaXRpemF0aW9uClsgICAgMC41
OTE3OTNdIFNwZWN0cmUgVjIgOiBNaXRpZ2F0aW9uOiBSZXRwb2xpbmVzClsgICAgMC41OTE3OTRd
IFNwZWN0cmUgVjIgOiBTcGVjdHJlIHYyIC8gU3BlY3RyZVJTQiBtaXRpZ2F0aW9uOiBGaWxsaW5n
IFJTQiBvbiBjb250ZXh0IHN3aXRjaApbICAgIDAuNTkxNzk1XSBTcGVjdHJlIFYyIDogU3BlY3Ry
ZSB2MiAvIFNwZWN0cmVSU0IgOiBGaWxsaW5nIFJTQiBvbiBWTUVYSVQKWyAgICAwLjU5MTc5Nl0g
U3BlY3RyZSBWMiA6IEVuYWJsaW5nIFNwZWN1bGF0aW9uIEJhcnJpZXIgZm9yIGZpcm13YXJlIGNh
bGxzClsgICAgMC41OTE3OTddIFJFVEJsZWVkOiBNaXRpZ2F0aW9uOiB1bnRyYWluZWQgcmV0dXJu
IHRodW5rClsgICAgMC41OTE4MDBdIFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBj
b25kaXRpb25hbCBJbmRpcmVjdCBCcmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyClsgICAgMC41OTE4
MDJdIFNwZWN1bGF0aXZlIFN0b3JlIEJ5cGFzczogTWl0aWdhdGlvbjogU3BlY3VsYXRpdmUgU3Rv
cmUgQnlwYXNzIGRpc2FibGVkIHZpYSBwcmN0bApbICAgIDAuNTkxODI4XSB4ODYvZnB1OiBTdXBw
b3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDE6ICd4ODcgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJz
JwpbICAgIDAuNTkxODMwXSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDI6
ICdTU0UgcmVnaXN0ZXJzJwpbICAgIDAuNTkxODMxXSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZF
IGZlYXR1cmUgMHgwMDQ6ICdBVlggcmVnaXN0ZXJzJwpbICAgIDAuNTkxODMyXSB4ODYvZnB1OiB4
c3RhdGVfb2Zmc2V0WzJdOiAgNTc2LCB4c3RhdGVfc2l6ZXNbMl06ICAyNTYKWyAgICAwLjU5MTgz
NF0geDg2L2ZwdTogRW5hYmxlZCB4c3RhdGUgZmVhdHVyZXMgMHg3LCBjb250ZXh0IHNpemUgaXMg
ODMyIGJ5dGVzLCB1c2luZyAnY29tcGFjdGVkJyBmb3JtYXQuClsgICAgMC41OTU1MTRdIEZyZWVp
bmcgU01QIGFsdGVybmF0aXZlcyBtZW1vcnk6IDQ0SwpbICAgIDAuNTk1NTE0XSBwaWRfbWF4OiBk
ZWZhdWx0OiAzMjc2OCBtaW5pbXVtOiAzMDEKWyAgICAwLjU5NTUxNF0gTFNNOiBpbml0aWFsaXpp
bmcgbHNtPWxvY2tkb3duLGNhcGFiaWxpdHkseWFtYSxhcHBhcm1vcixpbWEsZXZtClsgICAgMC41
OTU1MTRdIFlhbWE6IGJlY29taW5nIG1pbmRmdWwuClsgICAgMC41OTU1MTRdIEFwcEFybW9yOiBB
cHBBcm1vciBpbml0aWFsaXplZApbICAgIDAuNTk1NTE0XSBNb3VudC1jYWNoZSBoYXNoIHRhYmxl
IGVudHJpZXM6IDE2Mzg0IChvcmRlcjogNSwgMTMxMDcyIGJ5dGVzLCBsaW5lYXIpClsgICAgMC41
OTU1MTRdIE1vdW50cG9pbnQtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAxNjM4NCAob3JkZXI6
IDUsIDEzMTA3MiBieXRlcywgbGluZWFyKQpbICAgIDAuNTk1NTE0XSBjbG9ja3NvdXJjZTogeGVu
OiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgxY2Q0MmU0ZGZmYiwgbWF4
X2lkbGVfbnM6IDg4MTU5MDU5MTQ4MyBucwpbICAgIDAuNTk1NTE0XSBYZW46IHVzaW5nIHZjcHVv
cCB0aW1lciBpbnRlcmZhY2UKWyAgICAwLjU5NTUxNF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9y
IENQVSAwClsgICAgMC41OTU1MTRdIHNtcGJvb3Q6IENQVTA6IEFNRCBFbmcgU2FtcGxlOiAxMDAt
MDAwMDAxMDA3LTQwXzMxLzMwX1kgKGZhbWlseTogMHgxNywgbW9kZWw6IDB4NjAsIHN0ZXBwaW5n
OiAweDEpClsgICAgMC41OTU1MTRdIGNwdSAwIHNwaW5sb2NrIGV2ZW50IGlycSAyOApbICAgIDAu
NTk1NTE0XSBQZXJmb3JtYW5jZSBFdmVudHM6IFBNVSBub3QgYXZhaWxhYmxlIGR1ZSB0byB2aXJ0
dWFsaXphdGlvbiwgdXNpbmcgc29mdHdhcmUgZXZlbnRzIG9ubHkuClsgICAgMC41OTU1MTRdIHNp
Z25hbDogbWF4IHNpZ2ZyYW1lIHNpemU6IDE3NzYKWyAgICAwLjU5NTUxNF0gcmN1OiBIaWVyYXJj
aGljYWwgU1JDVSBpbXBsZW1lbnRhdGlvbi4KWyAgICAwLjU5NTUxNF0gcmN1OiAJTWF4IHBoYXNl
IG5vLWRlbGF5IGluc3RhbmNlcyBpcyAxMDAwLgpbICAgIDAuNTk1NTE0XSBUaW1lciBtaWdyYXRp
b246IDIgaGllcmFyY2h5IGxldmVsczsgOCBjaGlsZHJlbiBwZXIgZ3JvdXA7IDIgY3Jvc3Nub2Rl
IGxldmVsClsgICAgMC42OTk1NzNdIE5NSSB3YXRjaGRvZzogUGVyZiBOTUkgd2F0Y2hkb2cgcGVy
bWFuZW50bHkgZGlzYWJsZWQKWyAgICAwLjcwMDA4OF0gc21wOiBCcmluZ2luZyB1cCBzZWNvbmRh
cnkgQ1BVcyAuLi4KWyAgICAwLjcxMTcyNF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAx
ClsgICAgMC43MTIxMjZdIHNtcGJvb3Q6IHg4NjogQm9vdGluZyBTTVAgY29uZmlndXJhdGlvbjoK
WyAgICAwLjcxMjEzMF0gLi4uLiBub2RlICAjMCwgQ1BVczogICAgICAgICMxClsgICAgMC43MTM3
NzZdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMgpbICAgIDAuNzE0MTkyXSAgICMyClsg
ICAgMC43MTUxNTVdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMwpbICAgIDAuNzE1Mzc4
XSAgICMzClsgICAgMC43MTY1MDldIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgNApbICAg
IDAuNzE2ODEyXSAgICM0ClsgICAgMC43MTc1NTJdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBD
UFUgNQpbICAgIDAuNzE3NzY5XSAgICM1ClsgICAgMC43MTg1ODddIGluc3RhbGxpbmcgWGVuIHRp
bWVyIGZvciBDUFUgNgpbICAgIDAuNzE4ODI4XSAgICM2ClsgICAgMC43MzE2MTBdIGluc3RhbGxp
bmcgWGVuIHRpbWVyIGZvciBDUFUgNwpbICAgIDAuNzMxODcwXSAgICM3ClsgICAgMC43MzI2MjZd
IGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgOApbICAgIDAuNzMyODUyXSAgICM4ClsgICAg
MC43MzM2NTddIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgOQpbICAgIDAuNzMzODk0XSAg
ICM5ClsgICAgMC43MzQ2ODVdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMTAKWyAgICAw
LjczNDk1MF0gICMxMApbICAgIDAuNzQzNjk3XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BV
IDExClsgICAgMC43NDM5NTNdICAjMTEKWyAgICAwLjc0NTUyOF0gY3B1IDEgc3BpbmxvY2sgZXZl
bnQgaXJxIDczClsgICAgMC43NDc3MzFdIGNwdSAyIHNwaW5sb2NrIGV2ZW50IGlycSA3NApbICAg
IDAuNzQ5NTI1XSBjcHUgMyBzcGlubG9jayBldmVudCBpcnEgNzUKWyAgICAwLjc1MTY1MV0gY3B1
IDQgc3BpbmxvY2sgZXZlbnQgaXJxIDc2ClsgICAgMC43NTM1MjRdIGNwdSA1IHNwaW5sb2NrIGV2
ZW50IGlycSA3NwpbICAgIDAuNzU1NjUzXSBjcHUgNiBzcGlubG9jayBldmVudCBpcnEgNzgKWyAg
ICAwLjc1NzUyNV0gY3B1IDcgc3BpbmxvY2sgZXZlbnQgaXJxIDc5ClsgICAgMC43NTk2OTRdIGNw
dSA4IHNwaW5sb2NrIGV2ZW50IGlycSA4MApbICAgIDAuNzYxNTIzXSBjcHUgOSBzcGlubG9jayBl
dmVudCBpcnEgODEKWyAgICAwLjc2MzY4NV0gY3B1IDEwIHNwaW5sb2NrIGV2ZW50IGlycSA4Mgpb
ICAgIDAuNzY1NTI1XSBjcHUgMTEgc3BpbmxvY2sgZXZlbnQgaXJxIDgzClsgICAgMC43NjU1MjVd
IHNtcDogQnJvdWdodCB1cCAxIG5vZGUsIDEyIENQVXMKWyAgICAwLjc2NTUyNV0gc21wYm9vdDog
VG90YWwgb2YgMTIgcHJvY2Vzc29ycyBhY3RpdmF0ZWQgKDcxODY1LjE2IEJvZ29NSVBTKQpbICAg
IDAuNzY4NDM2XSBNZW1vcnk6IDU1NTY3ODRLLzMyODcyNzU2SyBhdmFpbGFibGUgKDE4NDMySyBr
ZXJuZWwgY29kZSwgOTUyNksgcndkYXRhLCA3NTUySyByb2RhdGEsIDQ2ODRLIGluaXQsIDEwMTg0
SyBic3MsIDI3Mjk3ODY0SyByZXNlcnZlZCwgMEsgY21hLXJlc2VydmVkKQpbICAgIDAuNzcxNzAy
XSBkZXZ0bXBmczogaW5pdGlhbGl6ZWQKWyAgICAwLjc3MTczM10geDg2L21tOiBNZW1vcnkgYmxv
Y2sgc2l6ZTogMTI4TUIKWyAgICAwLjc4OTI3MF0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFDUEkg
TlZTIHJlZ2lvbiBbbWVtIDB4MDlmMDAwMDAtMHgwOWYwZmZmZl0gKDY1NTM2IGJ5dGVzKQpbICAg
IDAuNzg5MjcwXSBBQ1BJOiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBOVlMgcmVnaW9uIFttZW0gMHhj
YWY3ZjAwMC0weGNjZjdlZmZmXSAoMzM1NTQ0MzIgYnl0ZXMpClsgICAgMC43OTgwMjldIGNsb2Nr
c291cmNlOiBqaWZmaWVzOiBtYXNrOiAweGZmZmZmZmZmIG1heF9jeWNsZXM6IDB4ZmZmZmZmZmYs
IG1heF9pZGxlX25zOiA3NjQ1MDQxNzg1MTAwMDAwIG5zClsgICAgMC43OTgwODBdIGZ1dGV4IGhh
c2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDYsIDI2MjE0NCBieXRlcywgbGluZWFyKQpb
ICAgIDAuNzk4MzE5XSBwaW5jdHJsIGNvcmU6IGluaXRpYWxpemVkIHBpbmN0cmwgc3Vic3lzdGVt
ClsgICAgMC43OTg2NDhdIFBNOiBSVEMgdGltZTogMDI6NTQ6MDQsIGRhdGU6IDIwMjQtMTEtMTUK
WyAgICAwLjgwMDQ2Ml0gTkVUOiBSZWdpc3RlcmVkIFBGX05FVExJTksvUEZfUk9VVEUgcHJvdG9j
b2wgZmFtaWx5ClsgICAgMC44MDA1OTBdIHhlbjpncmFudF90YWJsZTogR3JhbnQgdGFibGVzIHVz
aW5nIHZlcnNpb24gMSBsYXlvdXQKWyAgICAwLjgwMDYzOV0gR3JhbnQgdGFibGUgaW5pdGlhbGl6
ZWQKWyAgICAwLjgwMjU0OF0gRE1BOiBwcmVhbGxvY2F0ZWQgMTAyNCBLaUIgR0ZQX0tFUk5FTCBw
b29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjgwMjc0MF0gRE1BOiBwcmVhbGxvY2F0
ZWQgMTAyNCBLaUIgR0ZQX0tFUk5FTHxHRlBfRE1BIHBvb2wgZm9yIGF0b21pYyBhbGxvY2F0aW9u
cwpbICAgIDAuODAyOTE0XSBETUE6IHByZWFsbG9jYXRlZCAxMDI0IEtpQiBHRlBfS0VSTkVMfEdG
UF9ETUEzMiBwb29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjgwMjk3OV0gYXVkaXQ6
IGluaXRpYWxpemluZyBuZXRsaW5rIHN1YnN5cyAoZGlzYWJsZWQpClsgICAgMC44MDMwNjJdIGF1
ZGl0OiB0eXBlPTIwMDAgYXVkaXQoMTczMTYzOTI0My43MTI6MSk6IHN0YXRlPWluaXRpYWxpemVk
IGF1ZGl0X2VuYWJsZWQ9MCByZXM9MQpbICAgIDAuODAzODk5XSB0aGVybWFsX3N5czogUmVnaXN0
ZXJlZCB0aGVybWFsIGdvdmVybm9yICdmYWlyX3NoYXJlJwpbICAgIDAuODAzOTA1XSB0aGVybWFs
X3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICdiYW5nX2JhbmcnClsgICAgMC44MDM5
MDddIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3N0ZXBfd2lzZScK
WyAgICAwLjgwMzkwOF0gdGhlcm1hbF9zeXM6IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zlcm5vciAn
dXNlcl9zcGFjZScKWyAgICAwLjgwMzkzOV0gRUlTQSBidXMgcmVnaXN0ZXJlZApbICAgIDAuODAz
OTU5XSBjcHVpZGxlOiB1c2luZyBnb3Zlcm5vciBsYWRkZXIKWyAgICAwLjgwMzk1OV0gY3B1aWRs
ZTogdXNpbmcgZ292ZXJub3IgbWVudQpbICAgIDAuODAzOTU5XSBhY3BpcGhwOiBBQ1BJIEhvdCBQ
bHVnIFBDSSBDb250cm9sbGVyIERyaXZlciB2ZXJzaW9uOiAwLjUKWyAgICAwLjgwNDgyOV0gUENJ
OiBFQ0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSAoYmFzZSAweGYwMDAwMDAwKSBmb3Ig
ZG9tYWluIDAwMDAgW2J1cyAwMC03Zl0KWyAgICAwLjgwNDg2OV0gUENJOiBVc2luZyBjb25maWd1
cmF0aW9uIHR5cGUgMSBmb3IgYmFzZSBhY2Nlc3MKWyAgICAwLjgwNTAzNV0ga3Byb2Jlczoga3By
b2JlIGp1bXAtb3B0aW1pemF0aW9uIGlzIGVuYWJsZWQuIEFsbCBrcHJvYmVzIGFyZSBvcHRpbWl6
ZWQgaWYgcG9zc2libGUuClsgICAgMC44MDc4NjldIEh1Z2VUTEI6IHJlZ2lzdGVyZWQgMS4wMCBH
aUIgcGFnZSBzaXplLCBwcmUtYWxsb2NhdGVkIDAgcGFnZXMKWyAgICAwLjgwNzg3Nl0gSHVnZVRM
QjogMTYzODAgS2lCIHZtZW1tYXAgY2FuIGJlIGZyZWVkIGZvciBhIDEuMDAgR2lCIHBhZ2UKWyAg
ICAwLjgwNzg3OF0gSHVnZVRMQjogcmVnaXN0ZXJlZCAyLjAwIE1pQiBwYWdlIHNpemUsIHByZS1h
bGxvY2F0ZWQgMCBwYWdlcwpbICAgIDAuODA3ODgwXSBIdWdlVExCOiAyOCBLaUIgdm1lbW1hcCBj
YW4gYmUgZnJlZWQgZm9yIGEgMi4wMCBNaUIgcGFnZQpbICAgIDAuODA4MDE2XSBBQ1BJOiBBZGRl
ZCBfT1NJKE1vZHVsZSBEZXZpY2UpClsgICAgMC44MDgwMTZdIEFDUEk6IEFkZGVkIF9PU0koUHJv
Y2Vzc29yIERldmljZSkKWyAgICAwLjgwODAxNl0gQUNQSTogQWRkZWQgX09TSSgzLjAgX1NDUCBF
eHRlbnNpb25zKQpbICAgIDAuODA4MDE2XSBBQ1BJOiBBZGRlZCBfT1NJKFByb2Nlc3NvciBBZ2dy
ZWdhdG9yIERldmljZSkKWyAgICAwLjkyMTk3Ml0gQUNQSSBCSU9TIEVycm9yIChidWcpOiBGYWls
dXJlIGNyZWF0aW5nIG5hbWVkIG9iamVjdCBbXF9TQi5NQUNPXSwgQUVfQUxSRUFEWV9FWElTVFMg
KDIwMjQwODI3L2Rzd2xvYWQyLTMyNikKWyAgICAwLjkyMTk5OF0gZmJjb246IFRha2luZyBvdmVy
IGNvbnNvbGUKWyAgICAwLjkyMjA3NV0gQUNQSSBFcnJvcjogQUVfQUxSRUFEWV9FWElTVFMsIER1
cmluZyBuYW1lIGxvb2t1cC9jYXRhbG9nICgyMDI0MDgyNy9wc29iamVjdC0yMjApClsgICAgMC45
MzIwMzBdIEFDUEk6IDIwIEFDUEkgQU1MIHRhYmxlcyBzdWNjZXNzZnVsbHkgYWNxdWlyZWQgYW5k
IGxvYWRlZApbICAgIDAuOTM3NDU2XSBBQ1BJOiBbRmlybXdhcmUgQnVnXTogQklPUyBfT1NJKExp
bnV4KSBxdWVyeSBpZ25vcmVkClsgICAgMC45NTU2MTNdIEFDUEk6IEVDOiBFQyBzdGFydGVkClsg
ICAgMC45NTU2MTldIEFDUEk6IEVDOiBpbnRlcnJ1cHQgYmxvY2tlZApbICAgIDAuOTU5NDA3XSBB
Q1BJOiBFQzogRUNfQ01EL0VDX1NDPTB4NjY2LCBFQ19EQVRBPTB4NjYyClsgICAgMC45NTk0MTJd
IEFDUEk6IFxfU0JfLlBDSTAuTFBDMC5FQzBfOiBCb290IERTRFQgRUMgdXNlZCB0byBoYW5kbGUg
dHJhbnNhY3Rpb25zClsgICAgMC45NTk0MTVdIEFDUEk6IEludGVycHJldGVyIGVuYWJsZWQKWyAg
ICAwLjk1OTQ1Nl0gQUNQSTogUE06IChzdXBwb3J0cyBTMCBTMyBTNCBTNSkKWyAgICAwLjk1OTQ1
OV0gQUNQSTogVXNpbmcgSU9BUElDIGZvciBpbnRlcnJ1cHQgcm91dGluZwpbICAgIDAuOTYwMzk0
XSBQQ0k6IFVzaW5nIGhvc3QgYnJpZGdlIHdpbmRvd3MgZnJvbSBBQ1BJOyBpZiBuZWNlc3Nhcnks
IHVzZSAicGNpPW5vY3JzIiBhbmQgcmVwb3J0IGEgYnVnClsgICAgMC45NjAzOTddIFBDSTogSWdu
b3JpbmcgRTgyMCByZXNlcnZhdGlvbnMgZm9yIGhvc3QgYnJpZGdlIHdpbmRvd3MKWyAgICAwLjk2
MzQzOV0gQUNQSTogRW5hYmxlZCA2IEdQRXMgaW4gYmxvY2sgMDAgdG8gMUYKWyAgICAwLjk3MDI3
Ml0gQUNQSTogXF9TQl8uUENJMC5HUFAwLk0yMzc6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAu
OTcxMDMwXSBBQ1BJOiBcX1NCXy5QQ0kwLkdQUDAuU1dVUy5NMjM3OiBOZXcgcG93ZXIgcmVzb3Vy
Y2UKWyAgICAwLjk3MTYyMl0gQUNQSTogXF9TQl8uUENJMC5HUFAwLlNXVVMuU1dEUy5NMjM3OiBO
ZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjk3NjA1N10gQUNQSTogXF9TQl8uUENJMC5HUFA2LlAw
TlY6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAuOTgyMzcyXSBBQ1BJOiBcX1NCXy5QMFMwOiBO
ZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjk4MjUyMl0gQUNQSTogXF9TQl8uUDNTMDogTmV3IHBv
d2VyIHJlc291cmNlClsgICAgMC45ODMxMjldIEFDUEk6IFxfU0JfLlAwUzE6IE5ldyBwb3dlciBy
ZXNvdXJjZQpbICAgIDAuOTgzMjc5XSBBQ1BJOiBcX1NCXy5QM1MxOiBOZXcgcG93ZXIgcmVzb3Vy
Y2UKWyAgICAxLjA0MDIyMV0gQUNQSTogUENJIFJvb3QgQnJpZGdlIFtQQ0kwXSAoZG9tYWluIDAw
MDAgW2J1cyAwMC1mZl0pClsgICAgMS4wNDAyNDFdIGFjcGkgUE5QMEEwODowMDogX09TQzogT1Mg
c3VwcG9ydHMgW0V4dGVuZGVkQ29uZmlnIEFTUE0gQ2xvY2tQTSBTZWdtZW50cyBNU0kgSFBYLVR5
cGUzXQpbICAgIDEuMDQwODU2XSBhY3BpIFBOUDBBMDg6MDA6IF9PU0M6IHBsYXRmb3JtIGRvZXMg
bm90IHN1cHBvcnQgW1NIUENIb3RwbHVnIExUUl0KWyAgICAxLjA0MTk3MF0gYWNwaSBQTlAwQTA4
OjAwOiBfT1NDOiBPUyBub3cgY29udHJvbHMgW1BDSWVIb3RwbHVnIFBNRSBBRVIgUENJZUNhcGFi
aWxpdHldClsgICAgMS4wNDIwMzJdIGFjcGkgUE5QMEEwODowMDogW0Zpcm13YXJlIEluZm9dOiBF
Q0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSBmb3IgZG9tYWluIDAwMDAgW2J1cyAwMC03
Zl0gb25seSBwYXJ0aWFsbHkgY292ZXJzIHRoaXMgYnJpZGdlClsgICAgMS4wNDQwNjRdIFBDSSBo
b3N0IGJyaWRnZSB0byBidXMgMDAwMDowMApbICAgIDEuMDQ0MDkyXSBwY2lfYnVzIDAwMDA6MDA6
IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwMDAwLTB4MGNmNyB3aW5kb3ddClsgICAgMS4wNDQw
OTldIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvICAweDBkMDAtMHhmZmZm
IHdpbmRvd10KWyAgICAxLjA0NDEwM10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJj
ZSBbbWVtIDB4MDAwYTAwMDAtMHgwMDBiZmZmZiB3aW5kb3ddClsgICAgMS4wNDQxMDldIHBjaV9i
dXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweDAwMGMwMDAwLTB4MDAwY2ZmZmYg
d2luZG93XQpbICAgIDEuMDQ0MTE1XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNl
IFttZW0gMHgwMDBkMDAwMC0weDAwMGVmZmZmIHdpbmRvd10KWyAgICAxLjA0NDExOF0gcGNpX2J1
cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ZDAwMDAwMDAtMHhlZmZmZmZmZiB3
aW5kb3ddClsgICAgMS4wNDQxMjFdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2Ug
W21lbSAweGY4MDAwMDAwLTB4ZmVhZmZmZmYgd2luZG93XQpbICAgIDEuMDQ0MTI1XSBwY2lfYnVz
IDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHhmZWQ0NTAwMC0weGZlZDgxMWZmIHdp
bmRvd10KWyAgICAxLjA0NDEyOF0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBb
bWVtIDB4ZmVkODE5MDAtMHhmZWQ4MWZmZiB3aW5kb3ddClsgICAgMS4wNDQxMzJdIHBjaV9idXMg
MDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweGZlZGMwMDAwLTB4ZmVkYzBmZmYgd2lu
ZG93XQpbICAgIDEuMDQ0MTM1XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtt
ZW0gMHhmZWRjNjAwMC0weGZlZGM2ZmZmIHdpbmRvd10KWyAgICAxLjA0NDEzOV0gcGNpX2J1cyAw
MDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ODUwMjAwMDAwLTB4ZmNhZmZmZmZmZiB3
aW5kb3ddClsgICAgMS4wNDQxNDNdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2Ug
W2J1cyAwMC1mZl0KWyAgICAxLjA0NDIxNF0gcGNpIDAwMDA6MDA6MDAuMDogWzEwMjI6MTYzMF0g
dHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50ClsgICAgMS4w
NDQ3NTZdIHBjaSAwMDAwOjAwOjAwLjI6IFsxMDIyOjE2MzFdIHR5cGUgMDAgY2xhc3MgMHgwODA2
MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDQ1MDc4XSBwY2kgMDAwMDowMDow
MS4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kg
ZW5kcG9pbnQKWyAgICAxLjA0NTU4NF0gcGNpIDAwMDA6MDA6MDEuMTogWzEwMjI6MTYzM10gdHlw
ZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJvb3QgUG9ydApbICAgIDEuMDQ1NjcyXSBwY2kgMDAw
MDowMDowMS4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEtMDNdClsgICAgMS4wNDU2ODVdIHBjaSAw
MDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4w
NDU2OTJdIHBjaSAwMDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAt
MHhkMDhmZmZmZl0KWyAgICAxLjA0NTcxMV0gcGNpIDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2lu
ZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMDQ2
MDEzXSBwY2kgMDAwMDowMDowMS4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29s
ZApbICAgIDEuMDQ3MDY5XSBwY2kgMDAwMDowMDowMi4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNs
YXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA0NzU5Ml0gcGNp
IDAwMDA6MDA6MDIuNDogWzEwMjI6MTYzNF0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJv
b3QgUG9ydApbICAgIDEuMDQ3Njg2XSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFti
dXMgMDRdClsgICAgMS4wNDc3MDddIHBjaSAwMDAwOjAwOjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBb
bWVtIDB4ZDA1MDAwMDAtMHhkMDVmZmZmZl0KWyAgICAxLjA0ODA2M10gcGNpIDAwMDA6MDA6MDIu
NDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjA1MTY1MF0gcGNp
IDAwMDA6MDA6MDguMDogWzEwMjI6MTYzMl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50
aW9uYWwgUENJIGVuZHBvaW50ClsgICAgMS4wNTIyNDddIHBjaSAwMDAwOjAwOjA4LjE6IFsxMDIy
OjE2MzVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBvcnQKWyAgICAxLjA1MjMz
MV0gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVzIDA1XQpbICAgIDEuMDUyMzUw
XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDEwMDAtMHgxZmZmXQpb
ICAgIDEuMDUyMzU3XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQw
MTAwMDAwLTB4ZDA0ZmZmZmZdClsgICAgMS4wNTIzNzZdIHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJp
ZGdlIHdpbmRvdyBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjODAxZmZmZmYgNjRiaXQgcHJlZl0KWyAg
ICAxLjA1MjM5NV0gcGNpIDAwMDA6MDA6MDguMTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAg
IDEuMDUyNjI2XSBwY2kgMDAwMDowMDowOC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90
IEQzY29sZApbICAgIDEuMDUzNTQ1XSBwY2kgMDAwMDowMDowOC4yOiBbMTAyMjoxNjM1XSB0eXBl
IDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgUm9vdCBQb3J0ClsgICAgMS4wNTM2MzBdIHBjaSAwMDAw
OjAwOjA4LjI6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNl0KWyAgICAxLjA1MzY0N10gcGNpIDAwMDA6
MDA6MDguMjogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDAwMDAwMC0weGQwMGZmZmZmXQpbICAg
IDEuMDUzNjgzXSBwY2kgMDAwMDowMDowOC4yOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAg
MS4wNTM5MTJdIHBjaSAwMDAwOjAwOjA4LjI6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3Qg
RDNjb2xkClsgICAgMS4wNjA0MDJdIHBjaSAwMDAwOjAwOjE0LjA6IFsxMDIyOjc5MGJdIHR5cGUg
MDAgY2xhc3MgMHgwYzA1MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDYxMTIy
XSBwY2kgMDAwMDowMDoxNC4zOiBbMTAyMjo3OTBlXSB0eXBlIDAwIGNsYXNzIDB4MDYwMTAwIGNv
bnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA2MzI5NF0gcGNpIDAwMDA6MDA6MTguMDog
WzEwMjI6MTQ0OF0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBv
aW50ClsgICAgMS4wNjM4MDBdIHBjaSAwMDAwOjAwOjE4LjE6IFsxMDIyOjE0NDldIHR5cGUgMDAg
Y2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDY0MjU5XSBw
Y2kgMDAwMDowMDoxOC4yOiBbMTAyMjoxNDRhXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZl
bnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA2NDY4M10gcGNpIDAwMDA6MDA6MTguMzogWzEw
MjI6MTQ0Yl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50
ClsgICAgMS4wNjUxMDJdIHBjaSAwMDAwOjAwOjE4LjQ6IFsxMDIyOjE0NGNdIHR5cGUgMDAgY2xh
c3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDY1NTMzXSBwY2kg
MDAwMDowMDoxOC41OiBbMTAyMjoxNDRkXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRp
b25hbCBQQ0kgZW5kcG9pbnQKWyAgICAxLjA2NTk1NF0gcGNpIDAwMDA6MDA6MTguNjogWzEwMjI6
MTQ0ZV0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50Clsg
ICAgMS4wNjYzNzBdIHBjaSAwMDAwOjAwOjE4Ljc6IFsxMDIyOjE0NGZdIHR5cGUgMDAgY2xhc3Mg
MHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDEuMDcwNjY5XSBwY2kgMDAw
MDowMTowMC4wOiBbMTAwMjoxNDc4XSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgU3dpdGNo
IFVwc3RyZWFtIFBvcnQKWyAgICAxLjA3MDg2NF0gcGNpIDAwMDA6MDE6MDAuMDogQkFSIDAgW21l
bSAweGQwODAwMDAwLTB4ZDA4MDNmZmZdClsgICAgMS4wNzEyMDNdIHBjaSAwMDAwOjAxOjAwLjA6
IFBDSSBicmlkZ2UgdG8gW2J1cyAwMi0wM10KWyAgICAxLjA3MTIzNl0gcGNpIDAwMDA6MDE6MDAu
MDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgICAxLjA3MTI0OV0gcGNp
IDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDYwMDAwMC0weGQwN2ZmZmZm
XQpbICAgIDEuMDcxMjkyXSBwY2kgMDAwMDowMTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAw
eGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4wNzE5NzldIHBjaSAw
MDAwOjAxOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS4w
NzI2MzZdIHBjaSAwMDAwOjAxOjAwLjA6IDYzLjAwOCBHYi9zIGF2YWlsYWJsZSBQQ0llIGJhbmR3
aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHg4IGxpbmsgYXQgMDAwMDowMDowMS4xIChj
YXBhYmxlIG9mIDEyNi4wMjQgR2IvcyB3aXRoIDE2LjAgR1QvcyBQQ0llIHg4IGxpbmspClsgICAg
MS4wNzM0MjVdIHBjaSAwMDAwOjAwOjAxLjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMS0wM10KWyAg
ICAxLjA3MzY4Ml0gcGNpIDAwMDA6MDI6MDAuMDogWzEwMDI6MTQ3OV0gdHlwZSAwMSBjbGFzcyAw
eDA2MDQwMCBQQ0llIFN3aXRjaCBEb3duc3RyZWFtIFBvcnQKWyAgICAxLjA3Mzc3MF0gcGNpIDAw
MDA6MDI6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQpbICAgIDEuMDczNzgzXSBwY2kgMDAw
MDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDIwMDAtMHgyZmZmXQpbICAgIDEuMDcz
Nzg5XSBwY2kgMDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4
ZDA3ZmZmZmZdClsgICAgMS4wNzM4MTBdIHBjaSAwMDAwOjAyOjAwLjA6ICAgYnJpZGdlIHdpbmRv
dyBbbWVtIDB4ZmM5MDAwMDAwMC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjA3NDEy
OF0gcGNpIDAwMDA6MDI6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQK
WyAgICAxLjA5MDU0OV0gcGNpIDAwMDA6MDE6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAyLTAz
XQpbICAgIDEuMDkwODE3XSBwY2kgMDAwMDowMzowMC4wOiBbMTAwMjo3M2ZmXSB0eXBlIDAwIGNs
YXNzIDB4MDMwMDAwIFBDSWUgTGVnYWN5IEVuZHBvaW50ClsgICAgMS4wOTU5NThdIHBjaSAwMDAw
OjAzOjAwLjA6IEJBUiAwIFttZW0gMHhmYzkwMDAwMDAwLTB4ZmM5ZmZmZmZmZiA2NGJpdCBwcmVm
XQpbICAgIDEuMDk4NTU5XSBwY2kgMDAwMDowMzowMC4wOiBCQVIgMiBbbWVtIDB4ZmNhMDAwMDAw
MC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjA5OTk0Ml0gcGNpIDAwMDA6MDM6MDAu
MDogQkFSIDQgW2lvICAweDIwMDAtMHgyMGZmXQpbICAgIDEuMTAyNjM2XSBwY2kgMDAwMDowMzow
MC4wOiBCQVIgNSBbbWVtIDB4ZDA2MDAwMDAtMHhkMDZmZmZmZl0KWyAgICAxLjEwMzk4NV0gcGNp
IDAwMDA6MDM6MDAuMDogUk9NIFttZW0gMHhmZmZlMDAwMC0weGZmZmZmZmZmIHByZWZdClsgICAg
MS4xMDQzOTRdIHBjaSAwMDAwOjAzOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDEgRDIgRDNo
b3QgRDNjb2xkClsgICAgMS4xMDQ3NzVdIHBjaSAwMDAwOjAzOjAwLjA6IDYzLjAwOCBHYi9zIGF2
YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHg4IGxpbmsg
YXQgMDAwMDowMDowMS4xIChjYXBhYmxlIG9mIDI1Mi4wNDggR2IvcyB3aXRoIDE2LjAgR1QvcyBQ
Q0llIHgxNiBsaW5rKQpbICAgIDEuMTA1Mzg0XSBwY2kgMDAwMDowMzowMC4xOiBbMTAwMjphYjI4
XSB0eXBlIDAwIGNsYXNzIDB4MDQwMzAwIFBDSWUgTGVnYWN5IEVuZHBvaW50ClsgICAgMS4xMDU0
NzZdIHBjaSAwMDAwOjAzOjAwLjE6IEJBUiAwIFttZW0gMHhkMDcwMDAwMC0weGQwNzAzZmZmXQpb
ICAgIDEuMTA2MDMyXSBwY2kgMDAwMDowMzowMC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQxIEQy
IEQzaG90IEQzY29sZApbICAgIDEuMTA2NzMyXSBwY2kgMDAwMDowMjowMC4wOiBQQ0kgYnJpZGdl
IHRvIFtidXMgMDNdClsgICAgMS4xMDcwODddIHBjaSAwMDAwOjA0OjAwLjA6IFsxNWI3OjUwMWFd
IHR5cGUgMDAgY2xhc3MgMHgwMTA4MDIgUENJZSBFbmRwb2ludApbICAgIDEuMTA3MTc3XSBwY2kg
MDAwMDowNDowMC4wOiBCQVIgMCBbbWVtIDB4ZDA1MDAwMDAtMHhkMDUwM2ZmZiA2NGJpdF0KWyAg
ICAxLjEwNzM0MF0gcGNpIDAwMDA6MDQ6MDAuMDogQkFSIDQgW21lbSAweGQwNTA0MDAwLTB4ZDA1
MDQwZmYgNjRiaXRdClsgICAgMS4xMDg1MzFdIHBjaSAwMDAwOjAwOjAyLjQ6IFBDSSBicmlkZ2Ug
dG8gW2J1cyAwNF0KWyAgICAxLjEwODkxMl0gcGNpIDAwMDA6MDU6MDAuMDogWzEwMDI6MTYzNl0g
dHlwZSAwMCBjbGFzcyAweDAzMDAwMCBQQ0llIExlZ2FjeSBFbmRwb2ludApbICAgIDEuMTEwNzEx
XSBwY2kgMDAwMDowNTowMC4wOiBCQVIgMCBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjN2ZmZmZmZmYg
NjRiaXQgcHJlZl0KWyAgICAxLjExNTk5OV0gcGNpIDAwMDA6MDU6MDAuMDogQkFSIDIgW21lbSAw
eGZjODAwMDAwMDAtMHhmYzgwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4xMTc4MzJdIHBjaSAw
MDAwOjA1OjAwLjA6IEJBUiA0IFtpbyAgMHgxMDAwLTB4MTBmZl0KWyAgICAxLjExOTUwMF0gcGNp
IDAwMDA6MDU6MDAuMDogQkFSIDUgW21lbSAweGQwNDAwMDAwLTB4ZDA0N2ZmZmZdClsgICAgMS4x
MTk4MTVdIHBjaSAwMDAwOjA1OjAwLjA6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjEy
MDE1M10gcGNpIDAwMDA6MDU6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMSBEMiBEM2hvdCBE
M2NvbGQKWyAgICAxLjEyMDQxOV0gcGNpIDAwMDA6MDU6MDAuMDogMTI2LjAxNiBHYi9zIGF2YWls
YWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHgxNiBsaW5rIGF0
IDAwMDA6MDA6MDguMSAoY2FwYWJsZSBvZiAyNTIuMDQ4IEdiL3Mgd2l0aCAxNi4wIEdUL3MgUENJ
ZSB4MTYgbGluaykKWyAgICAxLjEyMTAzN10gcGNpIDAwMDA6MDU6MDAuMTogWzEwMDI6MTYzN10g
dHlwZSAwMCBjbGFzcyAweDA0MDMwMCBQQ0llIExlZ2FjeSBFbmRwb2ludApbICAgIDEuMTIxMTIy
XSBwY2kgMDAwMDowNTowMC4xOiBCQVIgMCBbbWVtIDB4ZDA0YzgwMDAtMHhkMDRjYmZmZl0KWyAg
ICAxLjEyMTQ4OF0gcGNpIDAwMDA6MDU6MDAuMTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAg
IDEuMTIxNjI4XSBwY2kgMDAwMDowNTowMC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQxIEQyIEQz
aG90IEQzY29sZApbICAgIDEuMTIyMTUyXSBwY2kgMDAwMDowNTowMC4yOiBbMTAyMjoxNWRmXSB0
eXBlIDAwIGNsYXNzIDB4MTA4MDAwIFBDSWUgRW5kcG9pbnQKWyAgICAxLjEyNzMxNF0gcGNpIDAw
MDA6MDU6MDAuMjogQkFSIDIgW21lbSAweGQwMzAwMDAwLTB4ZDAzZmZmZmZdClsgICAgMS4xMzEy
ODZdIHBjaSAwMDAwOjA1OjAwLjI6IEJBUiA1IFttZW0gMHhkMDRjYzAwMC0weGQwNGNkZmZmXQpb
ICAgIDEuMTMxODM4XSBwY2kgMDAwMDowNTowMC4yOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsg
ICAgMS4xMzI0OTNdIHBjaSAwMDAwOjA1OjAwLjM6IFsxMDIyOjE2MzldIHR5cGUgMDAgY2xhc3Mg
MHgwYzAzMzAgUENJZSBFbmRwb2ludApbICAgIDEuMTM0MzY3XSBwY2kgMDAwMDowNTowMC4zOiBC
QVIgMCBbbWVtIDB4ZDAyMDAwMDAtMHhkMDJmZmZmZiA2NGJpdF0KWyAgICAxLjE0NTY4NV0gcGNp
IDAwMDA6MDU6MDAuMzogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDEuMTQ1ODM1XSBwY2kg
MDAwMDowNTowMC4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEu
MTQ2MzY4XSBwY2kgMDAwMDowNTowMC40OiBbMTAyMjoxNjM5XSB0eXBlIDAwIGNsYXNzIDB4MGMw
MzMwIFBDSWUgRW5kcG9pbnQKWyAgICAxLjE0NzgxMl0gcGNpIDAwMDA6MDU6MDAuNDogQkFSIDAg
W21lbSAweGQwMTAwMDAwLTB4ZDAxZmZmZmYgNjRiaXRdClsgICAgMS4xNTk1MjBdIHBjaSAwMDAw
OjA1OjAwLjQ6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE1OTUyMl0gcGNpIDAwMDA6
MDU6MDAuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjE1OTU3
N10gcGNpIDAwMDA6MDU6MDAuNTogWzEwMjI6MTVlMl0gdHlwZSAwMCBjbGFzcyAweDA0ODAwMCBQ
Q0llIEVuZHBvaW50ClsgICAgMS4xNjAwNDFdIHBjaSAwMDAwOjA1OjAwLjU6IEJBUiAwIFttZW0g
MHhkMDQ4MDAwMC0weGQwNGJmZmZmXQpbICAgIDEuMTYyODQ0XSBwY2kgMDAwMDowNTowMC41OiBl
bmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAgMS4xNjI5OTBdIHBjaSAwMDAwOjA1OjAwLjU6IFBN
RSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS4xNjM1MDNdIHBjaSAwMDAw
OjA1OjAwLjY6IFsxMDIyOjE1ZTNdIHR5cGUgMDAgY2xhc3MgMHgwNDAzMDAgUENJZSBFbmRwb2lu
dApbICAgIDEuMTYzNjExXSBwY2kgMDAwMDowNTowMC42OiBCQVIgMCBbbWVtIDB4ZDA0YzAwMDAt
MHhkMDRjN2ZmZl0KWyAgICAxLjE2NDExOF0gcGNpIDAwMDA6MDU6MDAuNjogZW5hYmxpbmcgRXh0
ZW5kZWQgVGFncwpbICAgIDEuMTY0MjU4XSBwY2kgMDAwMDowNTowMC42OiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuMTY0ODgxXSBwY2kgMDAwMDowMDowOC4xOiBQ
Q0kgYnJpZGdlIHRvIFtidXMgMDVdClsgICAgMS4xNjUxMjZdIHBjaSAwMDAwOjA2OjAwLjA6IFsx
MDIyOjc5MDFdIHR5cGUgMDAgY2xhc3MgMHgwMTA2MDEgUENJZSBFbmRwb2ludApbICAgIDEuMTY1
MzgxXSBwY2kgMDAwMDowNjowMC4wOiBCQVIgNSBbbWVtIDB4ZDAwODUwMDAtMHhkMDA4NTdmZl0K
WyAgICAxLjE2NTQzM10gcGNpIDAwMDA6MDY6MDAuMDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpb
ICAgIDEuMTY1ODk2XSBwY2kgMDAwMDowNjowMC4wOiAxMjYuMDE2IEdiL3MgYXZhaWxhYmxlIFBD
SWUgYmFuZHdpZHRoLCBsaW1pdGVkIGJ5IDguMCBHVC9zIFBDSWUgeDE2IGxpbmsgYXQgMDAwMDow
MDowOC4yIChjYXBhYmxlIG9mIDI1Mi4wNDggR2IvcyB3aXRoIDE2LjAgR1QvcyBQQ0llIHgxNiBs
aW5rKQpbICAgIDEuMTY2NDIyXSBwY2kgMDAwMDowNjowMC4xOiBbMTAyMjo3OTAxXSB0eXBlIDAw
IGNsYXNzIDB4MDEwNjAxIFBDSWUgRW5kcG9pbnQKWyAgICAxLjE2NjY3OF0gcGNpIDAwMDA6MDY6
MDAuMTogQkFSIDUgW21lbSAweGQwMDg0MDAwLTB4ZDAwODQ3ZmZdClsgICAgMS4xNjY3MjldIHBj
aSAwMDAwOjA2OjAwLjE6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE2NzM4OF0gcGNp
IDAwMDA6MDY6MDAuMjogWzEwMjI6MTY0MV0gdHlwZSAwMCBjbGFzcyAweDAyMDAwMCBQQ0llIEVu
ZHBvaW50ClsgICAgMS4xNjc2MDVdIHBjaSAwMDAwOjA2OjAwLjI6IEJBUiAwIFttZW0gMHhkMDA2
MDAwMC0weGQwMDdmZmZmXQpbICAgIDEuMTY4MDgyXSBwY2kgMDAwMDowNjowMC4yOiBCQVIgMSBb
bWVtIDB4ZDAwNDAwMDAtMHhkMDA1ZmZmZl0KWyAgICAxLjE2ODU2N10gcGNpIDAwMDA6MDY6MDAu
MjogQkFSIDIgW21lbSAweGQwMDgyMDAwLTB4ZDAwODNmZmYgNjRiaXRdClsgICAgMS4xNjk5MzBd
IHBjaSAwMDAwOjA2OjAwLjI6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE3MDQ0NF0g
cGNpIDAwMDA6MDY6MDAuMzogWzEwMjI6MTY0MV0gdHlwZSAwMCBjbGFzcyAweDAyMDAwMCBQQ0ll
IEVuZHBvaW50ClsgICAgMS4xNzA5NjBdIHBjaSAwMDAwOjA2OjAwLjM6IEJBUiAwIFttZW0gMHhk
MDAyMDAwMC0weGQwMDNmZmZmXQpbICAgIDEuMTcxMzkzXSBwY2kgMDAwMDowNjowMC4zOiBCQVIg
MSBbbWVtIDB4ZDAwMDAwMDAtMHhkMDAxZmZmZl0KWyAgICAxLjE3MTYxNF0gcGNpIDAwMDA6MDY6
MDAuMzogQkFSIDIgW21lbSAweGQwMDgwMDAwLTB4ZDAwODFmZmYgNjRiaXRdClsgICAgMS4xNzI5
NjJdIHBjaSAwMDAwOjA2OjAwLjM6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjE3MzU0
MV0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA2XQpbICAgIDEuMTc3MjA4
XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0EgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAg
ICAxLjE3NzIxMV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktBIGRpc2FibGVkClsgICAg
MS4xNzc1NTldIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LQiBjb25maWd1cmVkIGZvciBJ
UlEgMApbICAgIDEuMTc3NTYxXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0IgZGlzYWJs
ZWQKWyAgICAxLjE3NzgzNl0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktDIGNvbmZpZ3Vy
ZWQgZm9yIElSUSAwClsgICAgMS4xNzc4MzhdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5L
QyBkaXNhYmxlZApbICAgIDEuMTc4MTczXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0Qg
Y29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAxLjE3ODE3NV0gQUNQSTogUENJOiBJbnRlcnJ1cHQg
bGluayBMTktEIGRpc2FibGVkClsgICAgMS4xNzg0OTVdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxp
bmsgTE5LRSBjb25maWd1cmVkIGZvciBJUlEgMApbICAgIDEuMTc4NDk3XSBBQ1BJOiBQQ0k6IElu
dGVycnVwdCBsaW5rIExOS0UgZGlzYWJsZWQKWyAgICAxLjE3ODc1OF0gQUNQSTogUENJOiBJbnRl
cnJ1cHQgbGluayBMTktGIGNvbmZpZ3VyZWQgZm9yIElSUSAwClsgICAgMS4xNzg3NjBdIEFDUEk6
IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRiBkaXNhYmxlZApbICAgIDEuMTc5MDE4XSBBQ1BJOiBQ
Q0k6IEludGVycnVwdCBsaW5rIExOS0cgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAxLjE3OTAy
MF0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktHIGRpc2FibGVkClsgICAgMS4xNzkyNzhd
IEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LSCBjb25maWd1cmVkIGZvciBJUlEgMApbICAg
IDEuMTc5Mjc5XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0ggZGlzYWJsZWQKWyAgICAx
LjE4OTQ1M10gQUNQSTogRUM6IGludGVycnVwdCB1bmJsb2NrZWQKWyAgICAxLjE4OTQ1NV0gQUNQ
STogRUM6IGV2ZW50IHVuYmxvY2tlZApbICAgIDEuMTg5NDYxXSBBQ1BJOiBFQzogRUNfQ01EL0VD
X1NDPTB4NjY2LCBFQ19EQVRBPTB4NjYyClsgICAgMS4xODk0NjNdIEFDUEk6IEVDOiBHUEU9MHgz
ClsgICAgMS4xODk0NjddIEFDUEk6IFxfU0JfLlBDSTAuTFBDMC5FQzBfOiBCb290IERTRFQgRUMg
aW5pdGlhbGl6YXRpb24gY29tcGxldGUKWyAgICAxLjE4OTQ3MV0gQUNQSTogXF9TQl8uUENJMC5M
UEMwLkVDMF86IEVDOiBVc2VkIHRvIGhhbmRsZSB0cmFuc2FjdGlvbnMgYW5kIGV2ZW50cwpbICAg
IDEuMTkyMDQzXSB4ZW46YmFsbG9vbjogSW5pdGlhbGlzaW5nIGJhbGxvb24gZHJpdmVyClsgICAg
MS4xOTIwNDNdIGlvbW11OiBEZWZhdWx0IGRvbWFpbiB0eXBlOiBQYXNzdGhyb3VnaCAoc2V0IHZp
YSBrZXJuZWwgY29tbWFuZCBsaW5lKQpbICAgIDEuMTkyMDQzXSBTQ1NJIHN1YnN5c3RlbSBpbml0
aWFsaXplZApbICAgIDEuMTk1NTU2XSBsaWJhdGEgdmVyc2lvbiAzLjAwIGxvYWRlZC4KWyAgICAx
LjE5NTYzM10gQUNQSTogYnVzIHR5cGUgVVNCIHJlZ2lzdGVyZWQKWyAgICAxLjE5NTY5MF0gdXNi
Y29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2JmcwpbICAgIDEuMTk1NzE0
XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGh1YgpbICAgIDEuMTk1
NzQ1XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBkZXZpY2UgZHJpdmVyIHVzYgpbICAgIDEuMTk1
ODQyXSBwcHNfY29yZTogTGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkClsgICAgMS4xOTU4
NDRdIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUtMjAwNyBS
b2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KWyAgICAxLjE5NTg1NF0gUFRQIGNs
b2NrIHN1cHBvcnQgcmVnaXN0ZXJlZApbICAgIDEuMTk1OTIyXSBFREFDIE1DOiBWZXI6IDMuMC4w
ClsgICAgMS4xOTU5MjJdIGVmaXZhcnM6IFJlZ2lzdGVyZWQgZWZpdmFycyBvcGVyYXRpb25zClsg
ICAgMS4xOTYxMjJdIE5ldExhYmVsOiBJbml0aWFsaXppbmcKWyAgICAxLjE5NjEyNF0gTmV0TGFi
ZWw6ICBkb21haW4gaGFzaCBzaXplID0gMTI4ClsgICAgMS4xOTYxMjVdIE5ldExhYmVsOiAgcHJv
dG9jb2xzID0gVU5MQUJFTEVEIENJUFNPdjQgQ0FMSVBTTwpbICAgIDEuMTk2MTY2XSBOZXRMYWJl
bDogIHVubGFiZWxlZCB0cmFmZmljIGFsbG93ZWQgYnkgZGVmYXVsdApbICAgIDEuMTk2MjI3XSBQ
Q0k6IFVzaW5nIEFDUEkgZm9yIElSUSByb3V0aW5nClsgICAgMS4yNjg4MzVdIFBDSTogcGNpX2Nh
Y2hlX2xpbmVfc2l6ZSBzZXQgdG8gNjQgYnl0ZXMKWyAgICAxLjI2OTA0OF0gcmVzb3VyY2U6IEV4
cGFuZGVkIHJlc291cmNlIFJlc2VydmVkIGR1ZSB0byBjb25mbGljdCB3aXRoIFBDSSBCdXMgMDAw
MDowMApbICAgIDEuMjY5MDUwXSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDAwMDlm
MDAwLTB4MDAwOWZmZmZdClsgICAgMS4yNjkwNjBdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBb
bWVtIDB4MDliMDAwMDAtMHgwYmZmZmZmZl0KWyAgICAxLjI2OTA2M10gZTgyMDogcmVzZXJ2ZSBS
QU0gYnVmZmVyIFttZW0gMHgwOWYwMDAwMC0weDBiZmZmZmZmXQpbICAgIDEuMjY5MDY2XSBlODIw
OiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweGJiNDY2MDAwLTB4YmJmZmZmZmZdClsgICAgMS4y
NjkwNjldIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4Yzg3N2YwMDAtMHhjYmZmZmZm
Zl0KWyAgICAxLjI2OTA3Ml0gZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHhjY2ZmZmRk
OC0weGNmZmZmZmZmXQpbICAgIDEuMjY5MDc2XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21l
bSAweDgwZjM0MDAwMC0weDgwZmZmZmZmZl0KWyAgICAxLjI3MTU3OV0gcGNpIDAwMDA6MDM6MDAu
MDogdmdhYXJiOiBzZXR0aW5nIGFzIGJvb3QgVkdBIGRldmljZQpbICAgIDEuMjcxNTc5XSBwY2kg
MDAwMDowMzowMC4wOiB2Z2FhcmI6IGJyaWRnZSBjb250cm9sIHBvc3NpYmxlClsgICAgMS4yNzE1
NzldIHBjaSAwMDAwOjAzOjAwLjA6IHZnYWFyYjogVkdBIGRldmljZSBhZGRlZDogZGVjb2Rlcz1p
byttZW0sb3ducz1ub25lLGxvY2tzPW5vbmUKWyAgICAxLjI3MTU3OV0gcGNpIDAwMDA6MDU6MDAu
MDogdmdhYXJiOiBzZXR0aW5nIGFzIGJvb3QgVkdBIGRldmljZSAob3ZlcnJpZGluZyBwcmV2aW91
cykKWyAgICAxLjI3MTU3OV0gcGNpIDAwMDA6MDU6MDAuMDogdmdhYXJiOiBicmlkZ2UgY29udHJv
bCBwb3NzaWJsZQpbICAgIDEuMjcxNTc5XSBwY2kgMDAwMDowNTowMC4wOiB2Z2FhcmI6IFZHQSBk
ZXZpY2UgYWRkZWQ6IGRlY29kZXM9aW8rbWVtLG93bnM9bm9uZSxsb2Nrcz1ub25lClsgICAgMS4y
NzE1NzldIHZnYWFyYjogbG9hZGVkClsgICAgMS4yNzE4ODhdIGNsb2Nrc291cmNlOiBTd2l0Y2hl
ZCB0byBjbG9ja3NvdXJjZSB0c2MtZWFybHkKWyAgICAxLjI3NjQ4M10gVkZTOiBEaXNrIHF1b3Rh
cyBkcXVvdF82LjYuMApbICAgIDEuMjc2NTIzXSBWRlM6IERxdW90LWNhY2hlIGhhc2ggdGFibGUg
ZW50cmllczogNTEyIChvcmRlciAwLCA0MDk2IGJ5dGVzKQpbICAgIDEuMjc3Mzc2XSBBcHBBcm1v
cjogQXBwQXJtb3IgRmlsZXN5c3RlbSBFbmFibGVkClsgICAgMS4yNzc0OTBdIHBucDogUG5QIEFD
UEkgaW5pdApbICAgIDEuMjc4NjgxXSBzeXN0ZW0gMDA6MDA6IFttZW0gMHhmZWMwMDAwMC0weGZl
YzAxZmZmXSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjI3ODY5NV0gc3lzdGVtIDAwOjAw
OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjI3
ODcwMV0gc3lzdGVtIDAwOjAwOiBbbWVtIDB4ZmRlMDAwMDAtMHhmZGVmZmZmZl0gaGFzIGJlZW4g
cmVzZXJ2ZWQKWyAgICAxLjI4MDAzMF0gc3lzdGVtIDAwOjAzOiBbaW8gIDB4MDQwMC0weDA0Y2Zd
IGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS4yODAwNDFdIHN5c3RlbSAwMDowMzogW2lvICAweDA0
ZDAtMHgwNGQxXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuMjgwMDQ2XSBzeXN0ZW0gMDA6MDM6
IFtpbyAgMHgwNGQ2XSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuMjgwMDUxXSBzeXN0ZW0gMDA6
MDM6IFtpbyAgMHgwYzAwLTB4MGMwMV0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjI4MDA1NV0g
c3lzdGVtIDAwOjAzOiBbaW8gIDB4MGMxNF0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjI4MDA2
MF0gc3lzdGVtIDAwOjAzOiBbaW8gIDB4MGM1MC0weDBjNTJdIGhhcyBiZWVuIHJlc2VydmVkClsg
ICAgMS4yODAwNjRdIHN5c3RlbSAwMDowMzogW2lvICAweDBjNmNdIGhhcyBiZWVuIHJlc2VydmVk
ClsgICAgMS4yODAwNjldIHN5c3RlbSAwMDowMzogW2lvICAweDBjNmZdIGhhcyBiZWVuIHJlc2Vy
dmVkClsgICAgMS4yODAwNzRdIHN5c3RlbSAwMDowMzogW2lvICAweDBjZDAtMHgwY2RiXSBoYXMg
YmVlbiByZXNlcnZlZApbICAgIDEuMjgwMzg0XSB1bmNoZWNrZWQgTVNSIGFjY2VzcyBlcnJvcjog
UkRNU1IgZnJvbSAweGMwMDEwMDU4IGF0IHJJUDogMHhmZmZmZmZmZjgxMGE1NWQ4IChuYXRpdmVf
cmVhZF9tc3IrMHg4LzB4NDApClsgICAgMS4yODAzOTVdIENhbGwgVHJhY2U6ClsgICAgMS4yODAz
OTddICA8VEFTSz4KWyAgICAxLjI4MDQwMF0gID8gc2hvd19zdGFja19yZWdzKzB4MjIvMHgzMApb
ICAgIDEuMjgwNDA2XSAgPyBleF9oYW5kbGVyX21zcisweDEzYS8weDE2MApbICAgIDEuMjgwNDEx
XSAgPyBmaXh1cF9leGNlcHRpb24rMHhiZC8weDMzMApbICAgIDEuMjgwNDE0XSAgPyBleGNfZ2Vu
ZXJhbF9wcm90ZWN0aW9uKzB4MTRiLzB4NDYwClsgICAgMS4yODA0MjBdICA/IGttZW1sZWFrX2Fs
bG9jKzB4NGIvMHg4MApbICAgIDEuMjgwNDI1XSAgPyBhc21fZXhjX2dlbmVyYWxfcHJvdGVjdGlv
bisweDI3LzB4MzAKWyAgICAxLjI4MDQzMl0gID8gbmF0aXZlX3JlYWRfbXNyKzB4OC8weDQwClsg
ICAgMS4yODA0MzRdICBhbWRfZ2V0X21tY29uZmlnX3JhbmdlKzB4MmYvMHg4MApbICAgIDEuMjgw
NDM5XSAgcXVpcmtfYW1kX21tY29uZmlnX2FyZWErMHgyZC8weDEwMApbICAgIDEuMjgwNDQ1XSAg
PyBxdWlya19zeXN0ZW1fcGNpX3Jlc291cmNlcysweDM0LzB4MTUwClsgICAgMS4yODA0NDhdICBw
bnBfZml4dXBfZGV2aWNlKzB4M2YvMHg2MApbICAgIDEuMjgwNDUxXSAgX19wbnBfYWRkX2Rldmlj
ZSsweDI2LzB4MWMwClsgICAgMS4yODA0NTRdICBwbnBfYWRkX2RldmljZSsweDNlLzB4MTEwClsg
ICAgMS4yODA0NTddICA/IF9fcGZ4X3BucGFjcGlfYWxsb2NhdGVkX3Jlc291cmNlKzB4MTAvMHgx
MApbICAgIDEuMjgwNDYwXSAgPyBfX3BmeF9wbnBhY3BpX2FsbG9jYXRlZF9yZXNvdXJjZSsweDEw
LzB4MTAKWyAgICAxLjI4MDQ2M10gID8gYWNwaV93YWxrX3Jlc291cmNlcysweGYwLzB4MTcwClsg
ICAgMS4yODA0NjldICBwbnBhY3BpX2FkZF9kZXZpY2VfaGFuZGxlcisweDI1Yy8weDNhMApbICAg
IDEuMjgwNDc0XSAgYWNwaV9uc19nZXRfZGV2aWNlX2NhbGxiYWNrKzB4MTBlLzB4MWMwClsgICAg
MS4yODA0NzhdICA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDI3LzB4NTAKWyAgICAx
LjI4MDQ4Ml0gIGFjcGlfbnNfd2Fsa19uYW1lc3BhY2UrMHgxNzYvMHgzMzAKWyAgICAxLjI4MDQ4
NV0gID8gX19wZnhfYWNwaV9uc19nZXRfZGV2aWNlX2NhbGxiYWNrKzB4MTAvMHgxMApbICAgIDEu
MjgwNDg4XSAgYWNwaV9nZXRfZGV2aWNlcysweDllLzB4MTUwClsgICAgMS4yODA0OTFdICA/IF9f
cGZ4X3BucGFjcGlfYWRkX2RldmljZV9oYW5kbGVyKzB4MTAvMHgxMApbICAgIDEuMjgwNDk0XSAg
PyBfX3BmeF9wbnBhY3BpX2luaXQrMHgxMC8weDEwClsgICAgMS4yODA0OTddICBwbnBhY3BpX2lu
aXQrMHg1NS8weDgwClsgICAgMS4yODA0OTldICBkb19vbmVfaW5pdGNhbGwrMHg0OS8weDMyMApb
ICAgIDEuMjgwNTA1XSAga2VybmVsX2luaXRfZnJlZWFibGUrMHgzMDEvMHg0NDAKWyAgICAxLjI4
MDUxMV0gID8gX19wZnhfa2VybmVsX2luaXQrMHgxMC8weDEwClsgICAgMS4yODA1MTNdICBrZXJu
ZWxfaW5pdCsweDFhLzB4MWQwClsgICAgMS4yODA1MTVdICByZXRfZnJvbV9mb3JrKzB4M2MvMHg2
MApbICAgIDEuMjgwNTE4XSAgPyBfX3BmeF9rZXJuZWxfaW5pdCsweDEwLzB4MTAKWyAgICAxLjI4
MDUyMF0gIHJldF9mcm9tX2ZvcmtfYXNtKzB4MWEvMHgzMApbICAgIDEuMjgwNTI0XSAgPC9UQVNL
PgpbICAgIDEuMjgwNjAzXSBzeXN0ZW0gMDA6MDQ6IFttZW0gMHgwMDBlMDAwMC0weDAwMGZmZmZm
XSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjI4MDYwOV0gc3lzdGVtIDAwOjA0OiBbbWVt
IDB4ZmYwMDAwMDAtMHhmZmZmZmZmZl0gY291bGQgbm90IGJlIHJlc2VydmVkClsgICAgMS4yODUy
MzJdIHBucDogUG5QIEFDUEk6IGZvdW5kIDUgZGV2aWNlcwpbICAgIDEuMzAwOTE2XSBQTS1UaW1l
ciBmYWlsZWQgY29uc2lzdGVuY3kgY2hlY2sgICgweGZmZmZmZikgLSBhYm9ydGluZy4KWyAgICAx
LjMwMTI4Ml0gTkVUOiBSZWdpc3RlcmVkIFBGX0lORVQgcHJvdG9jb2wgZmFtaWx5ClsgICAgMS4z
MDE1NjNdIElQIGlkZW50cyBoYXNoIHRhYmxlIGVudHJpZXM6IDEzMTA3MiAob3JkZXI6IDgsIDEw
NDg1NzYgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjMwMzY5OV0gdGNwX2xpc3Rlbl9wb3J0YWRkcl9o
YXNoIGhhc2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5l
YXIpClsgICAgMS4zMDM3NTddIFRhYmxlLXBlcnR1cmIgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUz
NiAob3JkZXI6IDYsIDI2MjE0NCBieXRlcywgbGluZWFyKQpbICAgIDEuMzAzODQ3XSBUQ1AgZXN0
YWJsaXNoZWQgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUzNiAob3JkZXI6IDcsIDUyNDI4OCBieXRl
cywgbGluZWFyKQpbICAgIDEuMzA0MjM1XSBUQ1AgYmluZCBoYXNoIHRhYmxlIGVudHJpZXM6IDY1
NTM2IChvcmRlcjogOSwgMjA5NzE1MiBieXRlcywgbGluZWFyKQpbICAgIDEuMzA0NDQ0XSBUQ1A6
IEhhc2ggdGFibGVzIGNvbmZpZ3VyZWQgKGVzdGFibGlzaGVkIDY1NTM2IGJpbmQgNjU1MzYpClsg
ICAgMS4zMDQ2ODJdIFVEUCBoYXNoIHRhYmxlIGVudHJpZXM6IDQwOTYgKG9yZGVyOiA1LCAxMzEw
NzIgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjMwNDcyOF0gVURQLUxpdGUgaGFzaCB0YWJsZSBlbnRy
aWVzOiA0MDk2IChvcmRlcjogNSwgMTMxMDcyIGJ5dGVzLCBsaW5lYXIpClsgICAgMS4zMDUwMTRd
IE5FVDogUmVnaXN0ZXJlZCBQRl9VTklYL1BGX0xPQ0FMIHByb3RvY29sIGZhbWlseQpbICAgIDEu
MzA1MDQxXSBORVQ6IFJlZ2lzdGVyZWQgUEZfWERQIHByb3RvY29sIGZhbWlseQpbICAgIDEuMzA1
MDUwXSBwY2kgMDAwMDowMzowMC4wOiBST00gW21lbSAweGZmZmUwMDAwLTB4ZmZmZmZmZmYgcHJl
Zl06IGNhbid0IGNsYWltOyBubyBjb21wYXRpYmxlIGJyaWRnZSB3aW5kb3cKWyAgICAxLjMwNTA4
N10gcGNpIDAwMDA6MDM6MDAuMDogUk9NIFttZW0gMHhkMDcyMDAwMC0weGQwNzNmZmZmIHByZWZd
OiBhc3NpZ25lZApbICAgIDEuMzA1MDkyXSBwY2kgMDAwMDowMjowMC4wOiBQQ0kgYnJpZGdlIHRv
IFtidXMgMDNdClsgICAgMS4zMDUxMTRdIHBjaSAwMDAwOjAyOjAwLjA6ICAgYnJpZGdlIHdpbmRv
dyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4zMDUxMjVdIHBjaSAwMDAwOjAyOjAwLjA6ICAg
YnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdmZmZmZl0KWyAgICAxLjMwNTEzNF0g
cGNpIDAwMDA6MDI6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNh
MDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzA1MTQ3XSBwY2kgMDAwMDowMTowMC4wOiBQQ0kg
YnJpZGdlIHRvIFtidXMgMDItMDNdClsgICAgMS4zMDUxNTNdIHBjaSAwMDAwOjAxOjAwLjA6ICAg
YnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4zMDUxNjNdIHBjaSAwMDAw
OjAxOjAwLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdmZmZmZl0KWyAg
ICAxLjMwNTE3MF0gcGNpIDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmYzkw
MDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzA1MTgzXSBwY2kgMDAwMDow
MDowMS4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEtMDNdClsgICAgMS4zMDUxOTBdIHBjaSAwMDAw
OjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4zMDUx
OThdIHBjaSAwMDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhk
MDhmZmZmZl0KWyAgICAxLjMwNTIwNV0gcGNpIDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2luZG93
IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzA1MjE3
XSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDRdClsgICAgMS4zMDUyMjdd
IHBjaSAwMDAwOjAwOjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA1MDAwMDAtMHhkMDVm
ZmZmZl0KWyAgICAxLjMwNTI0N10gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVz
IDA1XQpbICAgIDEuMzA1MjUyXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lv
ICAweDEwMDAtMHgxZmZmXQpbICAgIDEuMzA1MjYxXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRn
ZSB3aW5kb3cgW21lbSAweGQwMTAwMDAwLTB4ZDA0ZmZmZmZdClsgICAgMS4zMDUyNjddIHBjaSAw
MDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjODAxZmZm
ZmYgNjRiaXQgcHJlZl0KWyAgICAxLjMwNTI3OV0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRn
ZSB0byBbYnVzIDA2XQpbICAgIDEuMzA1Mjg5XSBwY2kgMDAwMDowMDowOC4yOiAgIGJyaWRnZSB3
aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZDAwZmZmZmZdClsgICAgMS4zMDUzMDddIHBjaV9idXMg
MDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAwMC0weDBjZjcgd2luZG93XQpbICAgIDEuMzA1
MzA5XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDUgW2lvICAweDBkMDAtMHhmZmZmIHdpbmRv
d10KWyAgICAxLjMwNTMxMV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA2IFttZW0gMHgwMDBh
MDAwMC0weDAwMGJmZmZmIHdpbmRvd10KWyAgICAxLjMwNTMxM10gcGNpX2J1cyAwMDAwOjAwOiBy
ZXNvdXJjZSA3IFttZW0gMHgwMDBjMDAwMC0weDAwMGNmZmZmIHdpbmRvd10KWyAgICAxLjMwNTMx
NV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4IFttZW0gMHgwMDBkMDAwMC0weDAwMGVmZmZm
IHdpbmRvd10KWyAgICAxLjMwNTMxN10gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA5IFttZW0g
MHhkMDAwMDAwMC0weGVmZmZmZmZmIHdpbmRvd10KWyAgICAxLjMwNTMyMF0gcGNpX2J1cyAwMDAw
OjAwOiByZXNvdXJjZSAxMCBbbWVtIDB4ZjgwMDAwMDAtMHhmZWFmZmZmZiB3aW5kb3ddClsgICAg
MS4zMDUzMjJdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTEgW21lbSAweGZlZDQ1MDAwLTB4
ZmVkODExZmYgd2luZG93XQpbICAgIDEuMzA1MzI0XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNl
IDEyIFttZW0gMHhmZWQ4MTkwMC0weGZlZDgxZmZmIHdpbmRvd10KWyAgICAxLjMwNTMyNl0gcGNp
X2J1cyAwMDAwOjAwOiByZXNvdXJjZSAxMyBbbWVtIDB4ZmVkYzAwMDAtMHhmZWRjMGZmZiB3aW5k
b3ddClsgICAgMS4zMDUzMjldIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTQgW21lbSAweGZl
ZGM2MDAwLTB4ZmVkYzZmZmYgd2luZG93XQpbICAgIDEuMzA1MzMxXSBwY2lfYnVzIDAwMDA6MDA6
IHJlc291cmNlIDE1IFttZW0gMHg4NTAyMDAwMDAtMHhmY2FmZmZmZmZmIHdpbmRvd10KWyAgICAx
LjMwNTMzNF0gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAwIFtpbyAgMHgyMDAwLTB4MmZmZl0K
WyAgICAxLjMwNTMzNl0gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAxIFttZW0gMHhkMDYwMDAw
MC0weGQwOGZmZmZmXQpbICAgIDEuMzA1MzM4XSBwY2lfYnVzIDAwMDA6MDE6IHJlc291cmNlIDIg
W21lbSAweGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4zMDUzNDBd
IHBjaV9idXMgMDAwMDowMjogcmVzb3VyY2UgMCBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4z
MDUzNDJdIHBjaV9idXMgMDAwMDowMjogcmVzb3VyY2UgMSBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdm
ZmZmZl0KWyAgICAxLjMwNTM0NF0gcGNpX2J1cyAwMDAwOjAyOiByZXNvdXJjZSAyIFttZW0gMHhm
YzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzA1MzQ2XSBwY2lfYnVz
IDAwMDA6MDM6IHJlc291cmNlIDAgW2lvICAweDIwMDAtMHgyZmZmXQpbICAgIDEuMzA1MzQ4XSBw
Y2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDEgW21lbSAweGQwNjAwMDAwLTB4ZDA3ZmZmZmZdClsg
ICAgMS4zMDUzNTBdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMiBbbWVtIDB4ZmM5MDAwMDAw
MC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjMwNTM1M10gcGNpX2J1cyAwMDAwOjA0
OiByZXNvdXJjZSAxIFttZW0gMHhkMDUwMDAwMC0weGQwNWZmZmZmXQpbICAgIDEuMzA1MzU1XSBw
Y2lfYnVzIDAwMDA6MDU6IHJlc291cmNlIDAgW2lvICAweDEwMDAtMHgxZmZmXQpbICAgIDEuMzA1
MzU3XSBwY2lfYnVzIDAwMDA6MDU6IHJlc291cmNlIDEgW21lbSAweGQwMTAwMDAwLTB4ZDA0ZmZm
ZmZdClsgICAgMS4zMDUzNTldIHBjaV9idXMgMDAwMDowNTogcmVzb3VyY2UgMiBbbWVtIDB4ZmM3
MDAwMDAwMC0weGZjODAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjMwNTM2MV0gcGNpX2J1cyAw
MDAwOjA2OiByZXNvdXJjZSAxIFttZW0gMHhkMDAwMDAwMC0weGQwMGZmZmZmXQpbICAgIDEuMzA1
NzY1XSBwY2kgMDAwMDowMTowMC4wOiBDTFMgbWlzbWF0Y2ggKDY0ICE9IDQ4NCksIHVzaW5nIDY0
IGJ5dGVzClsgICAgMS4zMDU5MTldIHBjaSAwMDAwOjAzOjAwLjE6IEQwIHBvd2VyIHN0YXRlIGRl
cGVuZHMgb24gMDAwMDowMzowMC4wClsgICAgMS4zMDYwNzBdIHBjaSAwMDAwOjA1OjAwLjE6IEQw
IHBvd2VyIHN0YXRlIGRlcGVuZHMgb24gMDAwMDowNTowMC4wClsgICAgMS4zMDYwNzddIHBjaSAw
MDAwOjA1OjAwLjM6IGV4dGVuZGluZyBkZWxheSBhZnRlciBwb3dlci1vbiBmcm9tIEQzaG90IHRv
IDIwIG1zZWMKWyAgICAxLjM2NTQ2Nl0gcGNpIDAwMDA6MDU6MDAuMzogcXVpcmtfdXNiX2Vhcmx5
X2hhbmRvZmYrMHgwLzB4NzUwIHRvb2sgNTc5OTIgdXNlY3MKWyAgICAxLjM2NTQ4N10gcGNpIDAw
MDA6MDU6MDAuNDogZXh0ZW5kaW5nIGRlbGF5IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8g
MjAgbXNlYwpbICAgIDEuNDExMjY4XSBwY2kgMDAwMDowNTowMC40OiBxdWlya191c2JfZWFybHlf
aGFuZG9mZisweDAvMHg3NTAgdG9vayA0NDcwMCB1c2VjcwpbICAgIDEuNDExMzY4XSBQQ0ktRE1B
OiBVc2luZyBzb2Z0d2FyZSBib3VuY2UgYnVmZmVyaW5nIGZvciBJTyAoU1dJT1RMQikKWyAgICAx
LjQxMTM3MF0gc29mdHdhcmUgSU8gVExCOiBtYXBwZWQgW21lbSAweDAwMDAwMDAwYzQ3N2YwMDAt
MHgwMDAwMDAwMGM4NzdmMDAwXSAoNjRNQikKWyAgICAxLjQxMTQ4N10gY2xvY2tzb3VyY2U6IHRz
YzogbWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MmIyOThhNDU5YzQsIG1h
eF9pZGxlX25zOiA0NDA3OTUzMjYzNTkgbnMKWyAgICAxLjQxMTY1M10gY2xvY2tzb3VyY2U6IFN3
aXRjaGVkIHRvIGNsb2Nrc291cmNlIHRzYwpbICAgIDEuNDExNzM1XSBUcnlpbmcgdG8gdW5wYWNr
IHJvb3RmcyBpbWFnZSBhcyBpbml0cmFtZnMuLi4KWyAgICAxLjQxMzQ4OF0gSW5pdGlhbGlzZSBz
eXN0ZW0gdHJ1c3RlZCBrZXlyaW5ncwpbICAgIDEuNDEzNTIxXSBLZXkgdHlwZSBibGFja2xpc3Qg
cmVnaXN0ZXJlZApbICAgIDEuNDEzODk1XSB3b3JraW5nc2V0OiB0aW1lc3RhbXBfYml0cz0zNiBt
YXhfb3JkZXI9MjEgYnVja2V0X29yZGVyPTAKWyAgICAxLjQxMzkyOF0gemJ1ZDogbG9hZGVkClsg
ICAgMS40MTUwNTJdIHNxdWFzaGZzOiB2ZXJzaW9uIDQuMCAoMjAwOS8wMS8zMSkgUGhpbGxpcCBM
b3VnaGVyClsgICAgMS40MTU3NjFdIGZ1c2U6IGluaXQgKEFQSSB2ZXJzaW9uIDcuNDEpClsgICAg
MS40MTY5MjhdIGludGVncml0eTogUGxhdGZvcm0gS2V5cmluZyBpbml0aWFsaXplZApbICAgIDEu
NDI5MDg1XSBLZXkgdHlwZSBhc3ltbWV0cmljIHJlZ2lzdGVyZWQKWyAgICAxLjQyOTA5M10gQXN5
bW1ldHJpYyBrZXkgcGFyc2VyICd4NTA5JyByZWdpc3RlcmVkClsgICAgMS40MjkzMjddIEJsb2Nr
IGxheWVyIFNDU0kgZ2VuZXJpYyAoYnNnKSBkcml2ZXIgdmVyc2lvbiAwLjQgbG9hZGVkIChtYWpv
ciAyNDUpClsgICAgMS40Mjk3MTZdIGlvIHNjaGVkdWxlciBtcS1kZWFkbGluZSByZWdpc3RlcmVk
ClsgICAgMS40MzEzNjhdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBlcnJvciAtRUlOVkFMOiBJUlEg
aW5kZXggMCBub3QgZm91bmQKWyAgICAxLjQzMTY4Nl0gYW1kX2dwaW8gQU1ESTAwMzA6MDA6IHBy
b2JlIHdpdGggZHJpdmVyIGFtZF9ncGlvIGZhaWxlZCB3aXRoIGVycm9yIC0yMgpbICAgIDEuNDMz
NzE0XSBsZWR0cmlnLWNwdTogcmVnaXN0ZXJlZCB0byBpbmRpY2F0ZSBhY3Rpdml0eSBvbiBDUFVz
ClsgICAgMS40MzQyOThdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogUE1FOiBTaWduYWxpbmcgd2l0
aCBJUlEgODcKWyAgICAxLjQzNDc0N10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IGVuYWJs
ZWQgd2l0aCBJUlEgODcKWyAgICAxLjQzNDg0MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBwY2ll
aHA6IFNsb3QgIzAgQXR0bkJ0bi0gUHdyQ3RybC0gTVJMLSBBdHRuSW5kLSBQd3JJbmQtIEhvdFBs
dWcrIFN1cnByaXNlKyBJbnRlcmxvY2stIE5vQ29tcGwrIEliUHJlc0Rpcy0gTExBY3RSZXArClsg
ICAgMS40MzU5NDldIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogUE1FOiBTaWduYWxpbmcgd2l0aCBJ
UlEgODgKWyAgICAxLjQzNjMwM10gcGNpZXBvcnQgMDAwMDowMDowMi40OiBBRVI6IGVuYWJsZWQg
d2l0aCBJUlEgODgKWyAgICAxLjQzNzA0OV0gcGNpZXBvcnQgMDAwMDowMDowOC4xOiBQTUU6IFNp
Z25hbGluZyB3aXRoIElSUSA4OQpbICAgIDEuNDM4MDEzXSBwY2llcG9ydCAwMDAwOjAwOjA4LjI6
IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDkwClsgICAgMS40Mzk3NTJdIHNocGNocDogU3RhbmRh
cmQgSG90IFBsdWcgUENJIENvbnRyb2xsZXIgRHJpdmVyIHZlcnNpb246IDAuNApbICAgIDEuNDQz
NTEzXSBBQ1BJOiBBQzogQUMgQWRhcHRlciBbQUNBRF0gKG9uLWxpbmUpClsgICAgMS40NDM3MzFd
IGlucHV0OiBQb3dlciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAv
UE5QMEMwQzowMC9pbnB1dC9pbnB1dDAKWyAgICAxLjQ0MzgyNl0gQUNQSTogYnV0dG9uOiBQb3dl
ciBCdXR0b24gW1BXUkJdClsgICAgMS40NDM5ODZdIGlucHV0OiBMaWQgU3dpdGNoIGFzIC9kZXZp
Y2VzL0xOWFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBDMEQ6MDAvaW5wdXQvaW5wdXQxClsgICAg
MS40NDQwNThdIEFDUEk6IGJ1dHRvbjogTGlkIFN3aXRjaCBbTElEXQpbICAgIDEuNDQ0MTk0XSBp
bnB1dDogUG93ZXIgQnV0dG9uIGFzIC9kZXZpY2VzL0xOWFNZU1RNOjAwL0xOWFBXUkJOOjAwL2lu
cHV0L2lucHV0MgpbICAgIDEuNDQ0NDI5XSBBQ1BJOiBidXR0b246IFBvd2VyIEJ1dHRvbiBbUFdS
Rl0KWyAgICAxLjQ0NTIyNl0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAg
bm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEuNDQ1Nzg3XSBbRmlybXdhcmUgQnVnXTog
QUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApClsgICAgMS40
NDY0NjRdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0
ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjQ0NjkzOF0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQg
Qy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEuNDQ3Mzc0XSBbRmly
bXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgw
eDApClsgICAgMS40NDc5MzVdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgw
IG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjQ0ODI4MF0gW0Zpcm13YXJlIEJ1Z106
IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEu
NDQ4NjU4XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9y
dGVkIGJ5IEhXICgweDApClsgICAgMS40NDkwNjBdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlU
IEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjQ0OTU2Ml0gW0Zp
cm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAo
MHgwKQpbICAgIDEuNDUwMjQ3XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4
MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApClsgICAgMS40NTA4MDJdIFtGaXJtd2FyZSBCdWdd
OiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAx
LjQ1NDgwN10gdGhlcm1hbCBMTlhUSEVSTTowMDogcmVnaXN0ZXJlZCBhcyB0aGVybWFsX3pvbmUw
ClsgICAgMS40NTQ4MTVdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBbVFowMV0gKDQ5IEMp
ClsgICAgMS40NTU5NzZdIEFDUEk6IGJhdHRlcnk6IFNsb3QgW0JBVFRdIChiYXR0ZXJ5IGFic2Vu
dCkKWyAgICAxLjQ1NjMxNV0geGVuX21jZWxvZzogRmFpbGVkIHRvIGdldCBDUFUgbnVtYmVycwpb
ICAgIDEuNDU3NzI4XSB4ZW5fYWNwaV9wcm9jZXNzb3I6IFVwbG9hZGluZyBYZW4gcHJvY2Vzc29y
IFBNIGluZm8KWyAgICAxLjQ2NTMzM10gU2VyaWFsOiA4MjUwLzE2NTUwIGRyaXZlciwgMzIgcG9y
dHMsIElSUSBzaGFyaW5nIGVuYWJsZWQKWyAgICAxLjQ3NTYzMF0gaHBldF9hY3BpX2FkZDogbm8g
YWRkcmVzcyBvciBpcnFzIGluIF9DUlMKWyAgICAxLjQ3NTY3N10gTGludXggYWdwZ2FydCBpbnRl
cmZhY2UgdjAuMTAzClsgICAgMS40NzczMjJdIHRwbV90aXMgTVNGVDAxMDE6MDA6IFtGaXJtd2Fy
ZSBCdWddOiBmYWlsZWQgdG8gZ2V0IFRQTTIgQUNQSSB0YWJsZQpbICAgIDEuNDc3NDM0XSB0cG1f
dGlzIE1TRlQwMTAxOjAwOiBwcm9iZSB3aXRoIGRyaXZlciB0cG1fdGlzIGZhaWxlZCB3aXRoIGVy
cm9yIC0yMgpbICAgIDEuNDc3NTY2XSB0cG1fY3JiIE1TRlQwMTAxOjAwOiBbRmlybXdhcmUgQnVn
XTogZmFpbGVkIHRvIGdldCBUUE0yIEFDUEkgdGFibGUKWyAgICAxLjQ3NzU5M10gdHBtX2NyYiBN
U0ZUMDEwMTowMDogcHJvYmUgd2l0aCBkcml2ZXIgdHBtX2NyYiBmYWlsZWQgd2l0aCBlcnJvciAt
MjIKWyAgICAxLjQ4ODg0Ml0gbG9vcDogbW9kdWxlIGxvYWRlZApbICAgIDEuNDg5ODIzXSB0dW46
IFVuaXZlcnNhbCBUVU4vVEFQIGRldmljZSBkcml2ZXIsIDEuNgpbICAgIDEuNDkwMDQ2XSBQUFAg
Z2VuZXJpYyBkcml2ZXIgdmVyc2lvbiAyLjQuMgpbICAgIDEuNDkwMjM2XSB4ZW5fbmV0ZnJvbnQ6
IEluaXRpYWxpc2luZyBYZW4gdmlydHVhbCBldGhlcm5ldCBkcml2ZXIKWyAgICAxLjQ5MDgwOF0g
VkZJTyAtIFVzZXIgTGV2ZWwgbWV0YS1kcml2ZXIgdmVyc2lvbjogMC4zClsgICAgMS40OTEzNzFd
IHhoY2lfaGNkIDAwMDA6MDU6MDAuMzogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjQ5MTM4
OF0geGhjaV9oY2QgMDAwMDowNTowMC4zOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25l
ZCBidXMgbnVtYmVyIDEKWyAgICAxLjQ5MTUyMl0geGhjaV9oY2QgMDAwMDowNTowMC4zOiBoY2Mg
cGFyYW1zIDB4MDI2OGZmZTUgaGNpIHZlcnNpb24gMHgxMTAgcXVpcmtzIDB4MDAwMDAyMDAwMDAw
MDAxMApbICAgIDEuNDkyNjIyXSB4aGNpX2hjZCAwMDAwOjA1OjAwLjM6IHhIQ0kgSG9zdCBDb250
cm9sbGVyClsgICAgMS40OTI2MzFdIHhoY2lfaGNkIDAwMDA6MDU6MDAuMzogbmV3IFVTQiBidXMg
cmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAyClsgICAgMS40OTI2NDJdIHhoY2lfaGNk
IDAwMDA6MDU6MDAuMzogSG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVuaGFuY2VkIFN1cGVyU3BlZWQK
WyAgICAxLjQ5Mjc1NV0gdXNiIHVzYjE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0x
ZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjEyClsgICAgMS40OTI3NThdIHVzYiB1
c2IxOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1i
ZXI9MQpbICAgIDEuNDkyNzYwXSB1c2IgdXNiMTogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xs
ZXIKWyAgICAxLjQ5Mjc2MV0gdXNiIHVzYjE6IE1hbnVmYWN0dXJlcjogTGludXggNi4xMi4wLXJj
NS1nNWM2ODA4ZDFhOWRkIHhoY2ktaGNkClsgICAgMS40OTI3NjNdIHVzYiB1c2IxOiBTZXJpYWxO
dW1iZXI6IDAwMDA6MDU6MDAuMwpbICAgIDEuNDkzMzA4XSBodWIgMS0wOjEuMDogVVNCIGh1YiBm
b3VuZApbICAgIDEuNDkzMzMzXSBodWIgMS0wOjEuMDogNCBwb3J0cyBkZXRlY3RlZApbICAgIDEu
NDk0MzE3XSB1c2IgdXNiMjogV2UgZG9uJ3Qga25vdyB0aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZv
ciB0aGlzIGhvc3QsIGRpc2FibGluZyBMUE0uClsgICAgMS40OTQzOTBdIHVzYiB1c2IyOiBOZXcg
VVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmlj
ZT0gNi4xMgpbICAgIDEuNDk0MzkzXSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczog
TWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICAxLjQ5NDM5NF0gdXNiIHVzYjI6
IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMS40OTQzOTZdIHVzYiB1c2IyOiBN
YW51ZmFjdHVyZXI6IExpbnV4IDYuMTIuMC1yYzUtZzVjNjgwOGQxYTlkZCB4aGNpLWhjZApbICAg
IDEuNDk0Mzk3XSB1c2IgdXNiMjogU2VyaWFsTnVtYmVyOiAwMDAwOjA1OjAwLjMKWyAgICAxLjQ5
NTExNV0gaHViIDItMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAxLjQ5NTEzOV0gaHViIDItMDox
LjA6IDIgcG9ydHMgZGV0ZWN0ZWQKWyAgICAxLjQ5NTk5MV0geGhjaV9oY2QgMDAwMDowNTowMC40
OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDEuNDk2MDA0XSB4aGNpX2hjZCAwMDAwOjA1OjAw
LjQ6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMwpbICAgIDEu
NDk2MTI0XSB4aGNpX2hjZCAwMDAwOjA1OjAwLjQ6IGhjYyBwYXJhbXMgMHgwMjY4ZmZlNSBoY2kg
dmVyc2lvbiAweDExMCBxdWlya3MgMHgwMDAwMDIwMDAwMDAwMDEwClsgICAgMS40OTcyMjddIHho
Y2lfaGNkIDAwMDA6MDU6MDAuNDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjQ5NzIzNV0g
eGhjaV9oY2QgMDAwMDowNTowMC40OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBi
dXMgbnVtYmVyIDQKWyAgICAxLjQ5NzI0MV0geGhjaV9oY2QgMDAwMDowNTowMC40OiBIb3N0IHN1
cHBvcnRzIFVTQiAzLjEgRW5oYW5jZWQgU3VwZXJTcGVlZApbICAgIDEuNDk3MzUyXSB1c2IgdXNi
MzogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBi
Y2REZXZpY2U9IDYuMTIKWyAgICAxLjQ5NzM1NF0gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIHN0
cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAgMS40OTczNTZdIHVz
YiB1c2IzOiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDEuNDk3MzU3XSB1c2Ig
dXNiMzogTWFudWZhY3R1cmVyOiBMaW51eCA2LjEyLjAtcmM1LWc1YzY4MDhkMWE5ZGQgeGhjaS1o
Y2QKWyAgICAxLjQ5NzM1OV0gdXNiIHVzYjM6IFNlcmlhbE51bWJlcjogMDAwMDowNTowMC40Clsg
ICAgMS40OTc4MjhdIGh1YiAzLTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMS40OTc4NTNdIGh1
YiAzLTA6MS4wOiA0IHBvcnRzIGRldGVjdGVkClsgICAgMS40OTg4MTBdIHVzYiB1c2I0OiBXZSBk
b24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZvciBMUE0gZm9yIHRoaXMgaG9zdCwgZGlzYWJsaW5n
IExQTS4KWyAgICAxLjQ5ODg4MF0gdXNiIHVzYjQ6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl
bmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMywgYmNkRGV2aWNlPSA2LjEyClsgICAgMS40OTg4ODNd
IHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJp
YWxOdW1iZXI9MQpbICAgIDEuNDk4ODg0XSB1c2IgdXNiNDogUHJvZHVjdDogeEhDSSBIb3N0IENv
bnRyb2xsZXIKWyAgICAxLjQ5ODg4Nl0gdXNiIHVzYjQ6IE1hbnVmYWN0dXJlcjogTGludXggNi4x
Mi4wLXJjNS1nNWM2ODA4ZDFhOWRkIHhoY2ktaGNkClsgICAgMS40OTg4ODddIHVzYiB1c2I0OiBT
ZXJpYWxOdW1iZXI6IDAwMDA6MDU6MDAuNApbICAgIDEuNDk5MjYyXSBodWIgNC0wOjEuMDogVVNC
IGh1YiBmb3VuZApbICAgIDEuNDk5Mjg1XSBodWIgNC0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZApb
ICAgIDEuNDk5OTM3XSBpODA0MjogUE5QOiBQUy8yIENvbnRyb2xsZXIgW1BOUDAzMDM6S0JDMF0g
YXQgMHg2MCwweDY0IGlycSAxClsgICAgMS40OTk5NDBdIGk4MDQyOiBQTlA6IFBTLzIgYXBwZWFy
cyB0byBoYXZlIEFVWCBwb3J0IGRpc2FibGVkLCBpZiB0aGlzIGlzIGluY29ycmVjdCBwbGVhc2Ug
Ym9vdCB3aXRoIGk4MDQyLm5vcG5wClsgICAgMS41MDAyNDRdIGk4MDQyOiBXYXJuaW5nOiBLZXls
b2NrIGFjdGl2ZQpbICAgIDEuNTAwNTI3XSBzZXJpbzogaTgwNDIgS0JEIHBvcnQgYXQgMHg2MCww
eDY0IGlycSAxClsgICAgMS41MDExMDFdIG1vdXNlZGV2OiBQUy8yIG1vdXNlIGRldmljZSBjb21t
b24gZm9yIGFsbCBtaWNlClsgICAgMS41MDE5OTFdIHJ0Y19jbW9zIDAwOjAxOiBSVEMgY2FuIHdh
a2UgZnJvbSBTNApbICAgIDEuNTAyMzU4XSBydGNfY21vcyAwMDowMTogcmVnaXN0ZXJlZCBhcyBy
dGMwClsgICAgMS41MDI0MjZdIHJ0Y19jbW9zIDAwOjAxOiBzZXR0aW5nIHN5c3RlbSBjbG9jayB0
byAyMDI0LTExLTE1VDAyOjU0OjA1IFVUQyAoMTczMTYzOTI0NSkKWyAgICAxLjUwMjUwMV0gcnRj
X2Ntb3MgMDA6MDE6IG5vIGFsYXJtcywgMTE0IGJ5dGVzIG52cmFtClsgICAgMS41MDI1MjNdIGky
Y19kZXY6IGkyYyAvZGV2IGVudHJpZXMgZHJpdmVyClsgICAgMS41MDI1NjVdIGRldmljZS1tYXBw
ZXI6IGNvcmU6IENPTkZJR19JTUFfRElTQUJMRV9IVEFCTEUgaXMgZGlzYWJsZWQuIER1cGxpY2F0
ZSBJTUEgbWVhc3VyZW1lbnRzIHdpbGwgbm90IGJlIHJlY29yZGVkIGluIHRoZSBJTUEgbG9nLgpb
ICAgIDEuNTAyNTkwXSBkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4wLjMKWyAgICAx
LjUwMjgxM10gZGV2aWNlLW1hcHBlcjogaW9jdGw6IDQuNDguMC1pb2N0bCAoMjAyMy0wMy0wMSkg
aW5pdGlhbGlzZWQ6IGRtLWRldmVsQGxpc3RzLmxpbnV4LmRldgpbICAgIDEuNTAyODgxXSBwbGF0
Zm9ybSBlaXNhLjA6IFByb2JpbmcgRUlTQSBidXMgMApbICAgIDEuNTAyODg2XSBwbGF0Zm9ybSBl
aXNhLjA6IEVJU0E6IENhbm5vdCBhbGxvY2F0ZSByZXNvdXJjZSBmb3IgbWFpbmJvYXJkClsgICAg
MS41MDI4OTZdIHBsYXRmb3JtIGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBF
SVNBIHNsb3QgMQpbICAgIDEuNTAyOTE3XSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0
ZSByZXNvdXJjZSBmb3IgRUlTQSBzbG90IDIKWyAgICAxLjUwMjkyMF0gcGxhdGZvcm0gZWlzYS4w
OiBDYW5ub3QgYWxsb2NhdGUgcmVzb3VyY2UgZm9yIEVJU0Egc2xvdCAzClsgICAgMS41MDI5MjJd
IHBsYXRmb3JtIGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBFSVNBIHNsb3Qg
NApbICAgIDEuNTAyOTI1XSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0ZSByZXNvdXJj
ZSBmb3IgRUlTQSBzbG90IDUKWyAgICAxLjUwMjkyN10gcGxhdGZvcm0gZWlzYS4wOiBDYW5ub3Qg
YWxsb2NhdGUgcmVzb3VyY2UgZm9yIEVJU0Egc2xvdCA2ClsgICAgMS41MDI5MjldIHBsYXRmb3Jt
IGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBFSVNBIHNsb3QgNwpbICAgIDEu
NTAyOTMxXSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0ZSByZXNvdXJjZSBmb3IgRUlT
QSBzbG90IDgKWyAgICAxLjUwMjkzM10gcGxhdGZvcm0gZWlzYS4wOiBFSVNBOiBEZXRlY3RlZCAw
IGNhcmRzClsgICAgMS41MDI5MzRdIGFtZF9wc3RhdGU6IFRoZSBDUFBDIGZlYXR1cmUgaXMgc3Vw
cG9ydGVkIGJ1dCBjdXJyZW50bHkgZGlzYWJsZWQgYnkgdGhlIEJJT1MuCiAgICAgICAgICAgICAg
IFBsZWFzZSBlbmFibGUgaXQgaWYgeW91ciBCSU9TIGhhcyB0aGUgQ1BQQyBvcHRpb24uClsgICAg
MS41MDI5MzZdIGFtZF9wc3RhdGU6IHRoZSBfQ1BDIG9iamVjdCBpcyBub3QgcHJlc2VudCBpbiBT
QklPUyBvciBBQ1BJIGRpc2FibGVkClsgICAgMS41MDMwMjFdIGVmaWZiOiBwcm9iaW5nIGZvciBl
ZmlmYgpbICAgIDEuNTAzMDQ4XSBlZmlmYjogTm8gQkdSVCwgbm90IHNob3dpbmcgYm9vdCBncmFw
aGljcwpbICAgIDEuNTAzMDQ5XSBlZmlmYjogZnJhbWVidWZmZXIgYXQgMHhmYzcwMDAwMDAwLCB1
c2luZyAxNDQwMGssIHRvdGFsIDE0NDAwawpbICAgIDEuNTAzMDUwXSBlZmlmYjogbW9kZSBpcyAy
NTYweDE0NDB4MzIsIGxpbmVsZW5ndGg9MTAyNDAsIHBhZ2VzPTEKWyAgICAxLjUwMzA1Ml0gZWZp
ZmI6IHNjcm9sbGluZzogcmVkcmF3ClsgICAgMS41MDMwNTNdIGVmaWZiOiBUcnVlY29sb3I6IHNp
emU9ODo4Ojg6OCwgc2hpZnQ9MjQ6MTY6ODowClsgICAgMS41MDMxNjldIGlucHV0OiBBVCBUcmFu
c2xhdGVkIFNldCAyIGtleWJvYXJkIGFzIC9kZXZpY2VzL3BsYXRmb3JtL2k4MDQyL3NlcmlvMC9p
bnB1dC9pbnB1dDMKWyAgICAxLjUwMzU5OV0gQ29uc29sZTogc3dpdGNoaW5nIHRvIGNvbG91ciBm
cmFtZSBidWZmZXIgZGV2aWNlIDE2MHg0NQpbICAgIDEuNTA2NDgwXSBmYjA6IEVGSSBWR0EgZnJh
bWUgYnVmZmVyIGRldmljZQpbICAgIDEuNTA2Njg1XSBkcm9wX21vbml0b3I6IEluaXRpYWxpemlu
ZyBuZXR3b3JrIGRyb3AgbW9uaXRvciBzZXJ2aWNlClsgICAgMS41MDY4NTNdIE5FVDogUmVnaXN0
ZXJlZCBQRl9JTkVUNiBwcm90b2NvbCBmYW1pbHkKWyAgICAxLjc0MTA1Nl0gdXNiIDEtNDogbmV3
IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMiB1c2luZyB4aGNpX2hjZApbICAgIDEuNzQ1
MDUxXSB1c2IgMy0zOiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAyIHVzaW5nIHho
Y2lfaGNkClsgICAgMS43NjAwMjhdIEZyZWVpbmcgaW5pdHJkIG1lbW9yeTogNTg0MTZLClsgICAg
MS43NzEzMzhdIFNlZ21lbnQgUm91dGluZyB3aXRoIElQdjYKWyAgICAxLjc3MTQwM10gSW4tc2l0
dSBPQU0gKElPQU0pIHdpdGggSVB2NgpbICAgIDEuNzcxNTAyXSBORVQ6IFJlZ2lzdGVyZWQgUEZf
UEFDS0VUIHByb3RvY29sIGZhbWlseQpbICAgIDEuNzcyMDg2XSBLZXkgdHlwZSBkbnNfcmVzb2x2
ZXIgcmVnaXN0ZXJlZApbICAgIDEuNzc1MzYwXSBJUEkgc2hvcnRoYW5kIGJyb2FkY2FzdDogZW5h
YmxlZApbICAgIDEuNzgxNzk2XSBzY2hlZF9jbG9jazogTWFya2luZyBzdGFibGUgKDE3MjgwMTIx
MTYsIDUyOTM1MjEwKS0+KDE4NDEyOTQ3NTMsIC02MDM0NzQyNykKWyAgICAxLjc4MjY1NV0gcmVn
aXN0ZXJlZCB0YXNrc3RhdHMgdmVyc2lvbiAxClsgICAgMS43ODQ1NzddIExvYWRpbmcgY29tcGls
ZWQtaW4gWC41MDkgY2VydGlmaWNhdGVzClsgICAgMS43ODU0MDldIExvYWRlZCBYLjUwOSBjZXJ0
ICdCdWlsZCB0aW1lIGF1dG9nZW5lcmF0ZWQga2VybmVsIGtleTogZDY2MGMxNDE4YWEwODNmZDkx
MDhkMTgwMzJhNDRiMTliYzE2ZmJkMicKWyAgICAxLjc5NTg1NV0gRGVtb3Rpb24gdGFyZ2V0cyBm
b3IgTm9kZSAwOiBudWxsClsgICAgMS43OTYxNzJdIGttZW1sZWFrOiBLZXJuZWwgbWVtb3J5IGxl
YWsgZGV0ZWN0b3IgaW5pdGlhbGl6ZWQgKG1lbSBwb29sIGF2YWlsYWJsZTogMTU2OTIpClsgICAg
MS43OTYxOTldIGttZW1sZWFrOiBBdXRvbWF0aWMgbWVtb3J5IHNjYW5uaW5nIHRocmVhZCBzdGFy
dGVkClsgICAgMS43OTY1NTZdIEtleSB0eXBlIC5mc2NyeXB0IHJlZ2lzdGVyZWQKWyAgICAxLjc5
NjU1OV0gS2V5IHR5cGUgZnNjcnlwdC1wcm92aXNpb25pbmcgcmVnaXN0ZXJlZApbICAgIDEuODIy
Nzc0XSBLZXkgdHlwZSBlbmNyeXB0ZWQgcmVnaXN0ZXJlZApbICAgIDEuODIyNzgyXSBBcHBBcm1v
cjogQXBwQXJtb3Igc2hhMjU2IHBvbGljeSBoYXNoaW5nIGVuYWJsZWQKWyAgICAxLjgyMzA5MF0g
aW1hOiBObyBUUE0gY2hpcCBmb3VuZCwgYWN0aXZhdGluZyBUUE0tYnlwYXNzIQpbICAgIDEuODIz
MTAzXSBMb2FkaW5nIGNvbXBpbGVkLWluIG1vZHVsZSBYLjUwOSBjZXJ0aWZpY2F0ZXMKWyAgICAx
LjgyMzY2OV0gTG9hZGVkIFguNTA5IGNlcnQgJ0J1aWxkIHRpbWUgYXV0b2dlbmVyYXRlZCBrZXJu
ZWwga2V5OiBkNjYwYzE0MThhYTA4M2ZkOTEwOGQxODAzMmE0NGIxOWJjMTZmYmQyJwpbICAgIDEu
ODIzNjcyXSBpbWE6IEFsbG9jYXRlZCBoYXNoIGFsZ29yaXRobTogc2hhMQpbICAgIDEuODIzNjk1
XSBpbWE6IE5vIGFyY2hpdGVjdHVyZSBwb2xpY2llcyBmb3VuZApbICAgIDEuODIzNzc4XSBldm06
IEluaXRpYWxpc2luZyBFVk0gZXh0ZW5kZWQgYXR0cmlidXRlczoKWyAgICAxLjgyMzc3OV0gZXZt
OiBzZWN1cml0eS5zZWxpbnV4ClsgICAgMS44MjM3ODBdIGV2bTogc2VjdXJpdHkuU01BQ0s2NApb
ICAgIDEuODIzNzgxXSBldm06IHNlY3VyaXR5LlNNQUNLNjRFWEVDClsgICAgMS44MjM3ODJdIGV2
bTogc2VjdXJpdHkuU01BQ0s2NFRSQU5TTVVURQpbICAgIDEuODIzNzgyXSBldm06IHNlY3VyaXR5
LlNNQUNLNjRNTUFQClsgICAgMS44MjM3ODNdIGV2bTogc2VjdXJpdHkuYXBwYXJtb3IKWyAgICAx
LjgyMzc4NF0gZXZtOiBzZWN1cml0eS5pbWEKWyAgICAxLjgyMzc4NV0gZXZtOiBzZWN1cml0eS5j
YXBhYmlsaXR5ClsgICAgMS44MjM3ODZdIGV2bTogSE1BQyBhdHRyczogMHgxClsgICAgMS44MjU0
NzNdIFBNOiAgIE1hZ2ljIG51bWJlcjogMDoyNTk6OTE1ClsgICAgMS44MjU0OTddIHBvcnQgc2Vy
aWFsODI1MDowLjk6IGhhc2ggbWF0Y2hlcwpbICAgIDEuODI2MzEwXSBSQVM6IENvcnJlY3RhYmxl
IEVycm9ycyBjb2xsZWN0b3IgaW5pdGlhbGl6ZWQuClsgICAgMS44MjY0MDhdIGNsazogRGlzYWJs
aW5nIHVudXNlZCBjbG9ja3MKWyAgICAxLjgyNjQxMF0gUE06IGdlbnBkOiBEaXNhYmxpbmcgdW51
c2VkIHBvd2VyIGRvbWFpbnMKWyAgICAxLjgzMDQ0OF0gRnJlZWluZyB1bnVzZWQgZGVjcnlwdGVk
IG1lbW9yeTogMjAyOEsKWyAgICAxLjgzMTI5N10gRnJlZWluZyB1bnVzZWQga2VybmVsIGltYWdl
IChpbml0bWVtKSBtZW1vcnk6IDQ2ODRLClsgICAgMS44MzEzMjVdIFdyaXRlIHByb3RlY3Rpbmcg
dGhlIGtlcm5lbCByZWFkLW9ubHkgZGF0YTogMjY2MjRrClsgICAgMS44MzIxMzNdIEZyZWVpbmcg
dW51c2VkIGtlcm5lbCBpbWFnZSAocm9kYXRhL2RhdGEgZ2FwKSBtZW1vcnk6IDY0MEsKWyAgICAx
Ljg3MTM1Nl0geDg2L21tOiBDaGVja2VkIFcrWCBtYXBwaW5nczogcGFzc2VkLCBubyBXK1ggcGFn
ZXMgZm91bmQuClsgICAgMS44NzEzNzddIFJ1biAvaW5pdCBhcyBpbml0IHByb2Nlc3MKWyAgICAx
Ljg3MTM3OV0gICB3aXRoIGFyZ3VtZW50czoKWyAgICAxLjg3MTM4MF0gICAgIC9pbml0ClsgICAg
MS44NzEzODJdICAgICBwbGFjZWhvbGRlcgpbICAgIDEuODcxMzgzXSAgICAgc3BsYXNoClsgICAg
MS44NzEzODRdICAgd2l0aCBlbnZpcm9ubWVudDoKWyAgICAxLjg3MTM4NF0gICAgIEhPTUU9Lwpb
ICAgIDEuODcxMzg1XSAgICAgVEVSTT1saW51eApbICAgIDEuODgyMTY3XSB1c2IgMS00OiBOZXcg
VVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MjEwOSwgaWRQcm9kdWN0PTI4MTcsIGJjZERldmlj
ZT0gMi4xNApbICAgIDEuODgyMTczXSB1c2IgMS00OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBN
ZnI9MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MApbICAgIDEuODgyMTc1XSB1c2IgMS00OiBQ
cm9kdWN0OiBVU0IyLjAgSHViICAgICAgICAgICAgIApbICAgIDEuODgyMTc3XSB1c2IgMS00OiBN
YW51ZmFjdHVyZXI6IFZJQSBMYWJzLCBJbmMuICAgICAgICAgClsgICAgMS45NDE4MzBdIGh1YiAx
LTQ6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMS45NDIyMjRdIGh1YiAxLTQ6MS4wOiA0IHBvcnRz
IGRldGVjdGVkClsgICAgMi4wMzEwOTBdIHVzYiAzLTM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBp
ZFZlbmRvcj0wNTdlLCBpZFByb2R1Y3Q9MjAwYywgYmNkRGV2aWNlPSAxLjg0ClsgICAgMi4wMzEw
OTddIHVzYiAzLTM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNl
cmlhbE51bWJlcj0zClsgICAgMi4wMzEwOTldIHVzYiAzLTM6IFByb2R1Y3Q6IENSRC0wMDEgVVNC
Mi4wClsgICAgMi4wMzExMDBdIHVzYiAzLTM6IE1hbnVmYWN0dXJlcjogTmludGVuZG8KWyAgICAy
LjAzMTEwMl0gdXNiIDMtMzogU2VyaWFsTnVtYmVyOiBGVzEwMDAKWyAgICAyLjA3Mzg4MV0gaHVi
IDMtMzoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAyLjA3NDIxNV0gaHViIDMtMzoxLjA6IDQgcG9y
dHMgZGV0ZWN0ZWQKWyAgICAyLjExMDA4MF0gQUNQSTogdmlkZW86IFZpZGVvIERldmljZSBbVkdB
XSAobXVsdGktaGVhZDogeWVzICByb206IG5vICBwb3N0OiBubykKWyAgICAyLjExMDkwMV0gaW5w
dXQ6IFZpZGVvIEJ1cyBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4
OjAwL2RldmljZToxMy9MTlhWSURFTzowMC9pbnB1dC9pbnB1dDQKWyAgICAyLjEyOTg5MF0gYWhj
aSAwMDAwOjA2OjAwLjA6IHZlcnNpb24gMy4wClsgICAgMi4xMzExNjFdIGFoY2kgMDAwMDowNjow
MC4wOiBBSENJIHZlcnMgMDAwMS4wMzAxLCAzMiBjb21tYW5kIHNsb3RzLCA2IEdicHMsIFNBVEEg
bW9kZQpbICAgIDIuMTMxMTcxXSBhaGNpIDAwMDA6MDY6MDAuMDogMS8xIHBvcnRzIGltcGxlbWVu
dGVkIChwb3J0IG1hc2sgMHgxKQpbICAgIDIuMTMxMTczXSBhaGNpIDAwMDA6MDY6MDAuMDogZmxh
Z3M6IDY0Yml0IG5jcSBzbnRmIGlsY2sgcG0gbGVkIGNsbyBvbmx5IHBtcCBmYnMgcGlvIHNsdW0g
cGFydCAKWyAgICAyLjEzMjc5OF0gcGlpeDRfc21idXMgMDAwMDowMDoxNC4wOiBTTUJ1cyBIb3N0
IENvbnRyb2xsZXIgYXQgMHhiMDAsIHJldmlzaW9uIDAKWyAgICAyLjEzMjgwNF0gcGlpeDRfc21i
dXMgMDAwMDowMDoxNC4wOiBVc2luZyByZWdpc3RlciAweDAyIGZvciBTTUJ1cyBwb3J0IHNlbGVj
dGlvbgpbICAgIDIuMTM1MTU4XSBzY3NpIGhvc3QwOiBhaGNpClsgICAgMi4xMzk5NThdIHBpaXg0
X3NtYnVzIDAwMDA6MDA6MTQuMDogQXV4aWxpYXJ5IFNNQnVzIEhvc3QgQ29udHJvbGxlciBhdCAw
eGIyMApbICAgIDIuMTQ0Njc3XSBpMmMgaTJjLTI6IFN1Y2Nlc3NmdWxseSBpbnN0YW50aWF0ZWQg
U1BEIGF0IDB4NTAKWyAgICAyLjE0NDc5MV0gYXRhMTogU0FUQSBtYXggVURNQS8xMzMgYWJhciBt
MjA0OEAweGQwMDg1MDAwIHBvcnQgMHhkMDA4NTEwMCBpcnEgMTEzIGxwbS1wb2wgMwpbICAgIDIu
MTQ1MTc5XSBpMmMgaTJjLTI6IFN1Y2Nlc3NmdWxseSBpbnN0YW50aWF0ZWQgU1BEIGF0IDB4NTEK
WyAgICAyLjE0NTUzNF0gbnZtZSBudm1lMDogcGNpIGZ1bmN0aW9uIDAwMDA6MDQ6MDAuMApbICAg
IDIuMTQ1ODAwXSBhaGNpIDAwMDA6MDY6MDAuMTogQUhDSSB2ZXJzIDAwMDEuMDMwMSwgMzIgY29t
bWFuZCBzbG90cywgNiBHYnBzLCBTQVRBIG1vZGUKWyAgICAyLjE0NTgwNV0gYWhjaSAwMDAwOjA2
OjAwLjE6IDEvMSBwb3J0cyBpbXBsZW1lbnRlZCAocG9ydCBtYXNrIDB4MSkKWyAgICAyLjE0NTgw
N10gYWhjaSAwMDAwOjA2OjAwLjE6IGZsYWdzOiA2NGJpdCBuY3Egc250ZiBpbGNrIHBtIGxlZCBj
bG8gb25seSBwbXAgZmJzIHBpbyBzbHVtIHBhcnQgClsgICAgMi4xNDY5MjhdIHNjc2kgaG9zdDE6
IGFoY2kKWyAgICAyLjE0NzMyOF0gYXRhMjogU0FUQSBtYXggVURNQS8xMzMgYWJhciBtMjA0OEAw
eGQwMDg0MDAwIHBvcnQgMHhkMDA4NDEwMCBpcnEgMTE1IGxwbS1wb2wgMwpbICAgIDIuMTU4NzI5
XSBudm1lIG52bWUwOiBhbGxvY2F0ZWQgMzIgTWlCIGhvc3QgbWVtb3J5IGJ1ZmZlci4KWyAgICAy
LjE2NTQ0OV0gbnZtZSBudm1lMDogMTIvMC8wIGRlZmF1bHQvcmVhZC9wb2xsIHF1ZXVlcwpbICAg
IDIuMTczOTYyXSAgbnZtZTBuMTogcDEgcDIKWyAgICAyLjQ1MzMxMl0gYXRhMTogU0FUQSBsaW5r
IGRvd24gKFNTdGF0dXMgMCBTQ29udHJvbCAzMDApClsgICAgMi40NTMzMTNdIGF0YTI6IFNBVEEg
bGluayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQpbICAgIDIuNzQ1MDAwXSB1c2IgMS00
LjM6IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgeGhjaV9oY2QKWyAg
ICAyLjg5MTQ4OV0gRVhUNC1mcyAobnZtZTBuMXAyKTogbW91bnRlZCBmaWxlc3lzdGVtIGE0OWZl
NDIxLTk0MGQtNDJiZC1iMzQzLTY2NWZlYTBkODhhMiBybyB3aXRoIG9yZGVyZWQgZGF0YSBtb2Rl
LiBRdW90YSBtb2RlOiBub25lLgpbICAgIDIuODkzMDAxXSB1c2IgMy0zLjI6IG5ldyBmdWxsLXNw
ZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgeGhjaV9oY2QKWyAgICAzLjAwNzgwMV0gc3lz
dGVtZFsxXTogSW5zZXJ0ZWQgbW9kdWxlICdhdXRvZnM0JwpbICAgIDMuMDEwMzc0XSB1c2IgMy0z
LjI6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0yNzE3LCBpZFByb2R1Y3Q9NTAxMCwg
YmNkRGV2aWNlPSAxLjAzClsgICAgMy4wMTAzODZdIHVzYiAzLTMuMjogTmV3IFVTQiBkZXZpY2Ug
c3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTAKWyAgICAzLjAxMDM5MF0g
dXNiIDMtMy4yOiBQcm9kdWN0OiBNaSBXaXJlbGVzcyBDb21ibwpbICAgIDMuMDEwMzk0XSB1c2Ig
My0zLjI6IE1hbnVmYWN0dXJlcjogTU9TQVJUIFNlbWkuClsgICAgMy4wNTE0NzhdIHN5c3RlbWRb
MV06IHN5c3RlbWQgMjQ5LjExLTB1YnVudHUzLjExIHJ1bm5pbmcgaW4gc3lzdGVtIG1vZGUgKCtQ
QU0gK0FVRElUICtTRUxJTlVYICtBUFBBUk1PUiArSU1BICtTTUFDSyArU0VDQ09NUCArR0NSWVBU
ICtHTlVUTFMgK09QRU5TU0wgK0FDTCArQkxLSUQgK0NVUkwgK0VMRlVUSUxTICtGSURPMiArSURO
MiAtSUROICtJUFRDICtLTU9EICtMSUJDUllQVFNFVFVQICtMSUJGRElTSyArUENSRTIgLVBXUVVB
TElUWSAtUDExS0lUIC1RUkVOQ09ERSArQlpJUDIgK0xaNCArWFogK1pMSUIgK1pTVEQgLVhLQkNP
TU1PTiArVVRNUCArU1lTVklOSVQgZGVmYXVsdC1oaWVyYXJjaHk9dW5pZmllZCkKWyAgICAzLjA1
MTcyNV0gc3lzdGVtZFsxXTogRGV0ZWN0ZWQgYXJjaGl0ZWN0dXJlIHg4Ni02NC4KWyAgICAzLjA1
MjE0M10gc3lzdGVtZFsxXTogSG9zdG5hbWUgc2V0IHRvIDxjanEtbG9jYWw+LgpbICAgIDMuMTI2
NjIwXSB1c2IgMS00LjM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0wYjk1LCBpZFBy
b2R1Y3Q9MTc5MCwgYmNkRGV2aWNlPSAyLjAwClsgICAgMy4xMjY2MjldIHVzYiAxLTQuMzogTmV3
IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTMKWyAg
ICAzLjEyNjYzMV0gdXNiIDEtNC4zOiBQcm9kdWN0OiBBWDg4MTc5QQpbICAgIDMuMTI2NjMzXSB1
c2IgMS00LjM6IE1hbnVmYWN0dXJlcjogQVNJWApbICAgIDMuMTI2NjM1XSB1c2IgMS00LjM6IFNl
cmlhbE51bWJlcjogMDBDREIzNzYKWyAgICAzLjE0Njc1MV0gYmxvY2sgbnZtZTBuMTogdGhlIGNh
cGFiaWxpdHkgYXR0cmlidXRlIGhhcyBiZWVuIGRlcHJlY2F0ZWQuClsgICAgMy4yMTUwMDFdIHN5
c3RlbWRbMV06IENvbmZpZ3VyYXRpb24gZmlsZSAvcnVuL3N5c3RlbWQvc3lzdGVtL25ldHBsYW4t
b3ZzLWNsZWFudXAuc2VydmljZSBpcyBtYXJrZWQgd29ybGQtaW5hY2Nlc3NpYmxlLiBUaGlzIGhh
cyBubyBlZmZlY3QgYXMgY29uZmlndXJhdGlvbiBkYXRhIGlzIGFjY2Vzc2libGUgdmlhIEFQSXMg
d2l0aG91dCByZXN0cmljdGlvbnMuIFByb2NlZWRpbmcgYW55d2F5LgpbICAgIDMuMjk4NDU2XSBz
eXN0ZW1kWzFdOiBRdWV1ZWQgc3RhcnQgam9iIGZvciBkZWZhdWx0IHRhcmdldCBNdWx0aS1Vc2Vy
IFN5c3RlbS4KWyAgICAzLjMyMzA3MF0gc3lzdGVtZFsxXTogQ3JlYXRlZCBzbGljZSBTbGljZSAv
c3lzdGVtL21vZHByb2JlLgpbICAgIDMuMzIzOTQxXSBzeXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNl
IFNsaWNlIC9zeXN0ZW0vc2VyaWFsLWdldHR5LgpbICAgIDMuMzI0NTE1XSBzeXN0ZW1kWzFdOiBD
cmVhdGVkIHNsaWNlIFNsaWNlIC9zeXN0ZW0vc3lzdGVtZC1mc2NrLgpbICAgIDMuMzI1MDg1XSBz
eXN0ZW1kWzFdOiBDcmVhdGVkIHNsaWNlIFVzZXIgYW5kIFNlc3Npb24gU2xpY2UuClsgICAgMy4z
MjUyMDldIHN5c3RlbWRbMV06IFN0YXJ0ZWQgRm9yd2FyZCBQYXNzd29yZCBSZXF1ZXN0cyB0byBX
YWxsIERpcmVjdG9yeSBXYXRjaC4KWyAgICAzLjMyNTU2NF0gc3lzdGVtZFsxXTogU2V0IHVwIGF1
dG9tb3VudCBBcmJpdHJhcnkgRXhlY3V0YWJsZSBGaWxlIEZvcm1hdHMgRmlsZSBTeXN0ZW0gQXV0
b21vdW50IFBvaW50LgpbICAgIDMuMzI1NjQ5XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBS
ZW1vdGUgRmlsZSBTeXN0ZW1zLgpbICAgIDMuMzI1NjY1XSBzeXN0ZW1kWzFdOiBSZWFjaGVkIHRh
cmdldCBTbGljZSBVbml0cy4KWyAgICAzLjMyNTY4M10gc3lzdGVtZFsxXTogUmVhY2hlZCB0YXJn
ZXQgTW91bnRpbmcgc25hcHMuClsgICAgMy4zMjU3MTJdIHN5c3RlbWRbMV06IFJlYWNoZWQgdGFy
Z2V0IExvY2FsIFZlcml0eSBQcm90ZWN0ZWQgVm9sdW1lcy4KWyAgICAzLjMyNTk2M10gc3lzdGVt
ZFsxXTogTGlzdGVuaW5nIG9uIFN5c2xvZyBTb2NrZXQuClsgICAgMy4zMjczNjddIHN5c3RlbWRb
MV06IExpc3RlbmluZyBvbiBQcm9jZXNzIENvcmUgRHVtcCBTb2NrZXQuClsgICAgMy4zMjc1NDJd
IHN5c3RlbWRbMV06IExpc3RlbmluZyBvbiBmc2NrIHRvIGZzY2tkIGNvbW11bmljYXRpb24gU29j
a2V0LgpbICAgIDMuMzI3NjU4XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gaW5pdGN0bCBDb21w
YXRpYmlsaXR5IE5hbWVkIFBpcGUuClsgICAgMy4zMjc5MzRdIHN5c3RlbWRbMV06IExpc3Rlbmlu
ZyBvbiBKb3VybmFsIEF1ZGl0IFNvY2tldC4KWyAgICAzLjMyODA5NF0gc3lzdGVtZFsxXTogTGlz
dGVuaW5nIG9uIEpvdXJuYWwgU29ja2V0ICgvZGV2L2xvZykuClsgICAgMy4zMjgzMDhdIHN5c3Rl
bWRbMV06IExpc3RlbmluZyBvbiBKb3VybmFsIFNvY2tldC4KWyAgICAzLjMyODcyN10gc3lzdGVt
ZFsxXTogTGlzdGVuaW5nIG9uIHVkZXYgQ29udHJvbCBTb2NrZXQuClsgICAgMy4zMjg4NzVdIHN5
c3RlbWRbMV06IExpc3RlbmluZyBvbiB1ZGV2IEtlcm5lbCBTb2NrZXQuClsgICAgMy4zMzExMThd
IHN5c3RlbWRbMV06IE1vdW50aW5nIEh1Z2UgUGFnZXMgRmlsZSBTeXN0ZW0uLi4KWyAgICAzLjMz
MzI0NF0gc3lzdGVtZFsxXTogTW91bnRpbmcgUE9TSVggTWVzc2FnZSBRdWV1ZSBGaWxlIFN5c3Rl
bS4uLgpbICAgIDMuMzM1NjY0XSBzeXN0ZW1kWzFdOiBNb3VudGluZyBNb3VudCAvcHJvYy94ZW4g
ZmlsZXMuLi4KWyAgICAzLjMzNzg4OV0gc3lzdGVtZFsxXTogTW91bnRpbmcgS2VybmVsIERlYnVn
IEZpbGUgU3lzdGVtLi4uClsgICAgMy4zMzk5NzNdIHN5c3RlbWRbMV06IE1vdW50aW5nIEtlcm5l
bCBUcmFjZSBGaWxlIFN5c3RlbS4uLgpbICAgIDMuMzQ0ODk5XSBzeXN0ZW1kWzFdOiBTdGFydGlu
ZyBKb3VybmFsIFNlcnZpY2UuLi4KWyAgICAzLjM0Nzc4OF0gc3lzdGVtZFsxXTogU3RhcnRpbmcg
U2V0IHRoZSBjb25zb2xlIGtleWJvYXJkIGxheW91dC4uLgpbICAgIDMuMzUwMTM2XSBzeXN0ZW1k
WzFdOiBTdGFydGluZyBDcmVhdGUgTGlzdCBvZiBTdGF0aWMgRGV2aWNlIE5vZGVzLi4uClsgICAg
My4zNTI3NDJdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIExvYWQgS2VybmVsIE1vZHVsZSBjb25maWdm
cy4uLgpbICAgIDMuMzU2MjAwXSBzeXN0ZW1kWzFdOiBTdGFydGluZyBMb2FkIEtlcm5lbCBNb2R1
bGUgZHJtLi4uClsgICAgMy4zNTkzOTZdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIExvYWQgS2VybmVs
IE1vZHVsZSBlZmlfcHN0b3JlLi4uClsgICAgMy4zNjI0MjBdIHN5c3RlbWRbMV06IFN0YXJ0aW5n
IExvYWQgS2VybmVsIE1vZHVsZSBmdXNlLi4uClsgICAgMy4zNjI3MDZdIHN5c3RlbWRbMV06IENv
bmRpdGlvbiBjaGVjayByZXN1bHRlZCBpbiBGaWxlIFN5c3RlbSBDaGVjayBvbiBSb290IERldmlj
ZSBiZWluZyBza2lwcGVkLgpbICAgIDMuMzY1NzU4XSBwc3RvcmU6IFVzaW5nIGNyYXNoIGR1bXAg
Y29tcHJlc3Npb246IGRlZmxhdGUKWyAgICAzLjM2NzI2M10gc3lzdGVtZFsxXTogU3RhcnRpbmcg
TG9hZCBLZXJuZWwgTW9kdWxlcy4uLgpbICAgIDMuMzY5ODYxXSBwc3RvcmU6IFJlZ2lzdGVyZWQg
ZWZpX3BzdG9yZSBhcyBwZXJzaXN0ZW50IHN0b3JlIGJhY2tlbmQKWyAgICAzLjM3MTI2MF0gc3lz
dGVtZFsxXTogU3RhcnRpbmcgUmVtb3VudCBSb290IGFuZCBLZXJuZWwgRmlsZSBTeXN0ZW1zLi4u
ClsgICAgMy4zNzQ1MjFdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIENvbGRwbHVnIEFsbCB1ZGV2IERl
dmljZXMuLi4KWyAgICAzLjM3ODIxOV0gc3lzdGVtZFsxXTogTW91bnRlZCBIdWdlIFBhZ2VzIEZp
bGUgU3lzdGVtLgpbICAgIDMuMzc4NTQwXSBzeXN0ZW1kWzFdOiBNb3VudGVkIFBPU0lYIE1lc3Nh
Z2UgUXVldWUgRmlsZSBTeXN0ZW0uClsgICAgMy4zNzg3NjVdIHN5c3RlbWRbMV06IE1vdW50ZWQg
TW91bnQgL3Byb2MveGVuIGZpbGVzLgpbICAgIDMuMzc4OTk2XSBzeXN0ZW1kWzFdOiBNb3VudGVk
IEtlcm5lbCBEZWJ1ZyBGaWxlIFN5c3RlbS4KWyAgICAzLjM3OTIxNF0gc3lzdGVtZFsxXTogTW91
bnRlZCBLZXJuZWwgVHJhY2UgRmlsZSBTeXN0ZW0uClsgICAgMy4zODAyOTNdIHN5c3RlbWRbMV06
IEZpbmlzaGVkIENyZWF0ZSBMaXN0IG9mIFN0YXRpYyBEZXZpY2UgTm9kZXMuClsgICAgMy4zODE2
ODhdIHN5c3RlbWRbMV06IG1vZHByb2JlQGNvbmZpZ2ZzLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1
Y2Nlc3NmdWxseS4KWyAgICAzLjM4MjQzMF0gc3lzdGVtZFsxXTogRmluaXNoZWQgTG9hZCBLZXJu
ZWwgTW9kdWxlIGNvbmZpZ2ZzLgpbICAgIDMuMzgzMDc3XSBzeXN0ZW1kWzFdOiBtb2Rwcm9iZUBl
ZmlfcHN0b3JlLnNlcnZpY2U6IERlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseS4KWyAgICAzLjM4Mzcy
Nl0gc3lzdGVtZFsxXTogRmluaXNoZWQgTG9hZCBLZXJuZWwgTW9kdWxlIGVmaV9wc3RvcmUuClsg
ICAgMy4zODQzMzJdIHN5c3RlbWRbMV06IG1vZHByb2JlQGZ1c2Uuc2VydmljZTogRGVhY3RpdmF0
ZWQgc3VjY2Vzc2Z1bGx5LgpbICAgIDMuMzg1MTkwXSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBMb2Fk
IEtlcm5lbCBNb2R1bGUgZnVzZS4KWyAgICAzLjM4ODgwN10gc3lzdGVtZFsxXTogTW91bnRpbmcg
RlVTRSBDb250cm9sIEZpbGUgU3lzdGVtLi4uClsgICAgMy4zODk4OTldIEFDUEk6IGJ1cyB0eXBl
IGRybV9jb25uZWN0b3IgcmVnaXN0ZXJlZApbICAgIDMuMzkzMjE5XSBzeXN0ZW1kWzFdOiBNb3Vu
dGluZyBLZXJuZWwgQ29uZmlndXJhdGlvbiBGaWxlIFN5c3RlbS4uLgpbICAgIDMuMzk1MDIwXSBz
eXN0ZW1kWzFdOiBtb2Rwcm9iZUBkcm0uc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5
LgpbICAgIDMuMzk1NzgwXSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBMb2FkIEtlcm5lbCBNb2R1bGUg
ZHJtLgpbICAgIDMuMzk2ODU1XSBzeXN0ZW1kWzFdOiBNb3VudGVkIEZVU0UgQ29udHJvbCBGaWxl
IFN5c3RlbS4KWyAgICAzLjM5NzE4NF0gc3lzdGVtZFsxXTogTW91bnRlZCBLZXJuZWwgQ29uZmln
dXJhdGlvbiBGaWxlIFN5c3RlbS4KWyAgICAzLjM5NzIzNl0gbHA6IGRyaXZlciBsb2FkZWQgYnV0
IG5vIGRldmljZXMgZm91bmQKWyAgICAzLjQwNDA1M10gcHBkZXY6IHVzZXItc3BhY2UgcGFyYWxs
ZWwgcG9ydCBkcml2ZXIKWyAgICAzLjQzMjczNl0geGVuOnhlbl9ldnRjaG46IEV2ZW50LWNoYW5u
ZWwgZGV2aWNlIGluc3RhbGxlZApbICAgIDMuNDMzNDA2XSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBT
ZXQgdGhlIGNvbnNvbGUga2V5Ym9hcmQgbGF5b3V0LgpbICAgIDMuNDUxOTc4XSBFWFQ0LWZzIChu
dm1lMG4xcDIpOiByZS1tb3VudGVkIGE0OWZlNDIxLTk0MGQtNDJiZC1iMzQzLTY2NWZlYTBkODhh
MiByL3cuIFF1b3RhIG1vZGU6IG5vbmUuClsgICAgMy40NTQ0NjddIHN5c3RlbWRbMV06IEZpbmlz
aGVkIFJlbW91bnQgUm9vdCBhbmQgS2VybmVsIEZpbGUgU3lzdGVtcy4KWyAgICAzLjQ1NDUyNV0g
eGVuX3BjaWJhY2s6IGJhY2tlbmQgaXMgdnBjaQpbICAgIDMuNDU3NzI1XSBzeXN0ZW1kWzFdOiBB
Y3RpdmF0aW5nIHN3YXAgL3N3YXBmaWxlLi4uClsgICAgMy40NTc4NjJdIHN5c3RlbWRbMV06IENv
bmRpdGlvbiBjaGVjayByZXN1bHRlZCBpbiBQbGF0Zm9ybSBQZXJzaXN0ZW50IFN0b3JhZ2UgQXJj
aGl2YWwgYmVpbmcgc2tpcHBlZC4KWyAgICAzLjQ2MTIwOV0gc3lzdGVtZFsxXTogU3RhcnRpbmcg
TG9hZC9TYXZlIFJhbmRvbSBTZWVkLi4uClsgICAgMy40NjQ3MzFdIEFkZGluZyAyMDk3MTQ4ayBz
d2FwIG9uIC9zd2FwZmlsZS4gIFByaW9yaXR5Oi0yIGV4dGVudHM6NiBhY3Jvc3M6MjI2MDk4OGsg
U1MKWyAgICAzLjQ2NTExNF0gc3lzdGVtZFsxXTogU3RhcnRpbmcgQ3JlYXRlIFN5c3RlbSBVc2Vy
cy4uLgpbICAgIDMuNDY1Mjc2XSBzeXN0ZW1kWzFdOiBBY3RpdmF0ZWQgc3dhcCAvc3dhcGZpbGUu
ClsgICAgMy40NjYxNTldIHN5c3RlbWRbMV06IFN0YXJ0ZWQgSm91cm5hbCBTZXJ2aWNlLgpbICAg
IDMuNDgzMDQ0XSBzeXN0ZW1kLWpvdXJuYWxkWzMyNl06IFJlY2VpdmVkIGNsaWVudCByZXF1ZXN0
IHRvIGZsdXNoIHJ1bnRpbWUgam91cm5hbC4KWyAgICAzLjUxNjQyMV0gbG9vcDA6IGRldGVjdGVk
IGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gOApbICAgIDMuNTE5ODk4XSBsb29wMTogZGV0ZWN0
ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAxMzEwMTYKWyAgICAzLjUyNDA2MF0gbG9vcDI6
IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMTMwNDQ4ClsgICAgMy41Mjk5NTJd
IGxvb3AzOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDE1MjA1NgpbICAgIDMu
NTM1NDkzXSBsb29wNDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAxNTEyOTYK
WyAgICAzLjUzOTU1MV0gbG9vcDU6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8g
NTYwMzIwClsgICAgMy41NDU1MTVdIGxvb3A2OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJv
bSAwIHRvIDU1OTA1NgpbICAgIDMuNTUwMzA4XSBsb29wNzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hh
bmdlIGZyb20gMCB0byA3MTYxNjgKWyAgICAzLjU1NjQ3M10gbG9vcDg6IGRldGVjdGVkIGNhcGFj
aXR5IGNoYW5nZSBmcm9tIDAgdG8gNzE2MTc2ClsgICAgMy41NTkyODZdIGxvb3A5OiBkZXRlY3Rl
ZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDEwMzI1MDQKWyAgICAzLjU2MzM1OF0gbG9vcDEw
OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDEwMzQ0MjQKWyAgICAzLjU2ODI1
NF0gbG9vcDExOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDE2NjQyNApbICAg
IDMuNTczMzMzXSBsb29wMTI6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMTg3
Nzc2ClsgICAgMy41NzcyNzZdIGxvb3AxMzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20g
MCB0byAyNjQ3MgpbICAgIDMuNTgyOTg0XSBsb29wMTQ6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5n
ZSBmcm9tIDAgdG8gMjQ5ODQKWyAgICAzLjU4NjU3NF0gbG9vcDE1OiBkZXRlY3RlZCBjYXBhY2l0
eSBjaGFuZ2UgZnJvbSAwIHRvIDc5NTIwClsgICAgMy41OTE0MThdIGxvb3AxNjogZGV0ZWN0ZWQg
Y2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA5MDM5MgpbICAgIDMuNTk2NDQwXSBsb29wMTc6IGRl
dGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMTEyOApbICAgIDMuNjAwMDEwXSBsb29w
MTg6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMTEzNgpbICAgIDMuOTE5NTcx
XSBzcDUxMDBfdGNvOiBTUDUxMDAvU0I4MDAgVENPIFdhdGNoRG9nIFRpbWVyIERyaXZlcgpbICAg
IDMuOTE5OTUzXSBzcDUxMDAtdGNvIHNwNTEwMC10Y286IFVzaW5nIDB4ZmViMDAwMDAgZm9yIHdh
dGNoZG9nIE1NSU8gYWRkcmVzcwpbICAgIDMuOTE5OTkzXSBzcDUxMDAtdGNvIHNwNTEwMC10Y286
IFdhdGNoZG9nIGhhcmR3YXJlIGlzIGRpc2FibGVkClsgICAgMy45MjA0ODJdIGNjcCAwMDAwOjA1
OjAwLjI6IGNjcDogdW5hYmxlIHRvIGFjY2VzcyB0aGUgZGV2aWNlOiB5b3UgbWlnaHQgYmUgcnVu
bmluZyBhIGJyb2tlbiBCSU9TLgpbICAgIDMuOTIyMTIxXSBjY3AgMDAwMDowNTowMC4yOiB0ZWU6
IHJpbmcgaW5pdCBjb21tYW5kIGZhaWxlZCAoMHgwMDAwMDAwNikKWyAgICAzLjkyMjIxOV0gY2Nw
IDAwMDA6MDU6MDAuMjogdGVlOiBmYWlsZWQgdG8gaW5pdCByaW5nIGJ1ZmZlcgpbICAgIDMuOTIy
MzIwXSBjY3AgMDAwMDowNTowMC4yOiB0ZWUgaW5pdGlhbGl6YXRpb24gZmFpbGVkClsgICAgMy45
MjIzOTBdIGNjcCAwMDAwOjA1OjAwLjI6IHBzcCBpbml0aWFsaXphdGlvbiBmYWlsZWQKWyAgICAz
Ljk4NzEyMV0gZWUxMDA0IDItMDA1MDogNTEyIGJ5dGUgRUUxMDA0LWNvbXBsaWFudCBTUEQgRUVQ
Uk9NLCByZWFkLW9ubHkKWyAgICAzLjk5MjI0MV0gZWUxMDA0IDItMDA1MTogNTEyIGJ5dGUgRUUx
MDA0LWNvbXBsaWFudCBTUEQgRUVQUk9NLCByZWFkLW9ubHkKWyAgICA0LjEzOTI4OV0gaGlkOiBy
YXcgSElEIGV2ZW50cyBkcml2ZXIgKEMpIEppcmkgS29zaW5hClsgICAgNC4xNTE1OTJdIGNyeXB0
ZDogbWF4X2NwdV9xbGVuIHNldCB0byAxMDAwClsgICAgNC4xNzQzODNdIEFFUyBDVFIgbW9kZSBi
eTggb3B0aW1pemF0aW9uIGVuYWJsZWQKWyAgICA0LjE3OTcwMV0gdXNiY29yZTogcmVnaXN0ZXJl
ZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBjZGNfZXRoZXIKWyAgICA0LjE4NDc1NV0gdXNiY29yZTog
cmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2JoaWQKWyAgICA0LjE4NDc2Ml0gdXNi
aGlkOiBVU0IgSElEIGNvcmUgZHJpdmVyClsgICAgNC4zMDIyNjVdIHNuZF9oZGFfaW50ZWwgMDAw
MDowMzowMC4xOiBIYW5kbGUgdmdhX3N3aXRjaGVyb28gYXVkaW8gY2xpZW50ClsgICAgNC4zMDIy
NzhdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBGb3JjZSB0byBub24tc25vb3AgbW9kZQpb
ICAgIDQuMzIwNDI5XSBzbmRfaGRhX2ludGVsIDAwMDA6MDU6MDAuMTogSGFuZGxlIHZnYV9zd2l0
Y2hlcm9vIGF1ZGlvIGNsaWVudApbICAgIDQuNDQxOTI0XSBjZGNfbmNtIDEtNC4zOjIuMDogTUFD
LUFkZHJlc3M6IGY4OmU0OjNiOmNkOmIzOjc2ClsgICAgNC40NDE5MzJdIGNkY19uY20gMS00LjM6
Mi4wOiBzZXR0aW5nIHJ4X21heCA9IDE2Mzg0ClsgICAgNC40NTM1MDBdIGNkY19uY20gMS00LjM6
Mi4wOiBzZXR0aW5nIHR4X21heCA9IDE2Mzg0ClsgICAgNC40ODExMjNdIGNkY19uY20gMS00LjM6
Mi4wIGV0aDA6IHJlZ2lzdGVyICdjZGNfbmNtJyBhdCB1c2ItMDAwMDowNTowMC4zLTQuMywgQ0RD
IE5DTSAoTk8gWkxQKSwgZjg6ZTQ6M2I6Y2Q6YjM6NzYKWyAgICA0LjQ4NjU5MV0gdXNiY29yZTog
cmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBjZGNfbmNtClsgICAgNC40ODcwMTJdIGF1
ZGl0OiB0eXBlPTE0MDAgYXVkaXQoMTczMTYzOTI0OC40Nzk6Mik6IGFwcGFybW9yPSJTVEFUVVMi
IG9wZXJhdGlvbj0icHJvZmlsZV9sb2FkIiBwcm9maWxlPSJ1bmNvbmZpbmVkIiBuYW1lPSJsc2Jf
cmVsZWFzZSIgcGlkPTUxOCBjb21tPSJhcHBhcm1vcl9wYXJzZXIiClsgICAgNC40ODc1NjZdIGF1
ZGl0OiB0eXBlPTE0MDAgYXVkaXQoMTczMTYzOTI0OC40Nzk6Myk6IGFwcGFybW9yPSJTVEFUVVMi
IG9wZXJhdGlvbj0icHJvZmlsZV9sb2FkIiBwcm9maWxlPSJ1bmNvbmZpbmVkIiBuYW1lPSJudmlk
aWFfbW9kcHJvYmUiIHBpZD01MTkgY29tbT0iYXBwYXJtb3JfcGFyc2VyIgpbICAgIDQuNDg3NTk4
XSBhdWRpdDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE2MzkyNDguNDc5OjQpOiBhcHBhcm1vcj0iU1RB
VFVTIiBvcGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5jb25maW5lZCIgbmFtZT0i
bnZpZGlhX21vZHByb2JlLy9rbW9kIiBwaWQ9NTE5IGNvbW09ImFwcGFybW9yX3BhcnNlciIKWyAg
ICA0LjQ5MjU4Ml0gYXVkaXQ6IHR5cGU9MTQwMCBhdWRpdCgxNzMxNjM5MjQ4LjQ4Mzo1KTogYXBw
YXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVuY29uZmlu
ZWQiIG5hbWU9Ii91c3IvYmluL21hbiIgcGlkPTUyMiBjb21tPSJhcHBhcm1vcl9wYXJzZXIiClsg
ICAgNC40OTI2MDRdIGF1ZGl0OiB0eXBlPTE0MDAgYXVkaXQoMTczMTYzOTI0OC40ODM6Nik6IGFw
cGFybW9yPSJTVEFUVVMiIG9wZXJhdGlvbj0icHJvZmlsZV9sb2FkIiBwcm9maWxlPSJ1bmNvbmZp
bmVkIiBuYW1lPSJtYW5fZmlsdGVyIiBwaWQ9NTIyIGNvbW09ImFwcGFybW9yX3BhcnNlciIKWyAg
ICA0LjQ5MjYxN10gYXVkaXQ6IHR5cGU9MTQwMCBhdWRpdCgxNzMxNjM5MjQ4LjQ4Mzo3KTogYXBw
YXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVuY29uZmlu
ZWQiIG5hbWU9Im1hbl9ncm9mZiIgcGlkPTUyMiBjb21tPSJhcHBhcm1vcl9wYXJzZXIiClsgICAg
NC40OTM4NTFdIGF1ZGl0OiB0eXBlPTE0MDAgYXVkaXQoMTczMTYzOTI0OC40ODc6OCk6IGFwcGFy
bW9yPSJTVEFUVVMiIG9wZXJhdGlvbj0icHJvZmlsZV9sb2FkIiBwcm9maWxlPSJ1bmNvbmZpbmVk
IiBuYW1lPSIvdXNyL2xpYi9OZXR3b3JrTWFuYWdlci9ubS1kaGNwLWNsaWVudC5hY3Rpb24iIHBp
ZD01MjAgY29tbT0iYXBwYXJtb3JfcGFyc2VyIgpbICAgIDQuNDkzODcwXSBhdWRpdDogdHlwZT0x
NDAwIGF1ZGl0KDE3MzE2MzkyNDguNDg3OjkpOiBhcHBhcm1vcj0iU1RBVFVTIiBvcGVyYXRpb249
InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5jb25maW5lZCIgbmFtZT0iL3Vzci9saWIvTmV0d29y
a01hbmFnZXIvbm0tZGhjcC1oZWxwZXIiIHBpZD01MjAgY29tbT0iYXBwYXJtb3JfcGFyc2VyIgpb
ICAgIDQuNDkzODgxXSBhdWRpdDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE2MzkyNDguNDg3OjEwKTog
YXBwYXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVuY29u
ZmluZWQiIG5hbWU9Ii91c3IvbGliL2Nvbm5tYW4vc2NyaXB0cy9kaGNsaWVudC1zY3JpcHQiIHBp
ZD01MjAgY29tbT0iYXBwYXJtb3JfcGFyc2VyIgpbICAgIDQuNTExNzQ3XSBpbnB1dDogSEQtQXVk
aW8gR2VuZXJpYyBIRE1JL0RQLHBjbT0zIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDow
OC4xLzAwMDA6MDU6MDAuMS9zb3VuZC9jYXJkMS9pbnB1dDEwClsgICAgNC41MjM4OTddIGlucHV0
OiBIRC1BdWRpbyBHZW5lcmljIEhETUkvRFAscGNtPTcgYXMgL2RldmljZXMvcGNpMDAwMDowMC8w
MDAwOjAwOjA4LjEvMDAwMDowNTowMC4xL3NvdW5kL2NhcmQxL2lucHV0MTEKWyAgICA0LjUyNDIz
OF0gaW5wdXQ6IEhELUF1ZGlvIEdlbmVyaWMgSERNSS9EUCxwY209OCBhcyAvZGV2aWNlcy9wY2kw
MDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjEvc291bmQvY2FyZDEvaW5wdXQxMgpbICAg
IDQuNTI0NTk3XSBpbnB1dDogSEQtQXVkaW8gR2VuZXJpYyBIRE1JL0RQLHBjbT05IGFzIC9kZXZp
Y2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuMS9zb3VuZC9jYXJkMS9pbnB1
dDEzClsgICAgNC41MzMwODNdIGFtZF9hdGw6IEFNRCBBZGRyZXNzIFRyYW5zbGF0aW9uIExpYnJh
cnkgaW5pdGlhbGl6ZWQKWyAgICA0LjUzNDc1MF0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50
ZXJmYWNlIGRyaXZlciBjZGNfd2RtClsgICAgNC41NTk0NzFdIHVzYmNvcmU6IHJlZ2lzdGVyZWQg
bmV3IGludGVyZmFjZSBkcml2ZXIgY2RjX21iaW0KWyAgICA0LjU2NDgyMF0gaW5wdXQ6IEhEQSBB
VEkgSERNSSBIRE1JL0RQLHBjbT0zIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMS4x
LzAwMDA6MDE6MDAuMC8wMDAwOjAyOjAwLjAvMDAwMDowMzowMC4xL3NvdW5kL2NhcmQwL2lucHV0
NQpbICAgIDQuNTcxNDA4XSBpbnB1dDogSERBIEFUSSBIRE1JIEhETUkvRFAscGNtPTcgYXMgL2Rl
dmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAxLjEvMDAwMDowMTowMC4wLzAwMDA6MDI6MDAuMC8w
MDAwOjAzOjAwLjEvc291bmQvY2FyZDAvaW5wdXQ2ClsgICAgNC41NzMwMjhdIHNuZF9oZGFfY29k
ZWNfcmVhbHRlayBoZGF1ZGlvQzJEMDogYXV0b2NvbmZpZyBmb3IgQUxDNzAxOiBsaW5lX291dHM9
MSAoMHgxNC8weDAvMHgwLzB4MC8weDApIHR5cGU6c3BlYWtlcgpbICAgIDQuNTczMDM3XSBzbmRf
aGRhX2NvZGVjX3JlYWx0ZWsgaGRhdWRpb0MyRDA6ICAgIHNwZWFrZXJfb3V0cz0wICgweDAvMHgw
LzB4MC8weDAvMHgwKQpbICAgIDQuNTczMDQwXSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgaGRhdWRp
b0MyRDA6ICAgIGhwX291dHM9MSAoMHgyMS8weDAvMHgwLzB4MC8weDApClsgICAgNC41NzMwNDNd
IHNuZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlvQzJEMDogICAgbW9ubzogbW9ub19vdXQ9MHgw
ClsgICAgNC41NzMwNDVdIHNuZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlvQzJEMDogICAgZGln
LW91dD0weDFlLzB4MApbICAgIDQuNTczMDQ3XSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgaGRhdWRp
b0MyRDA6ICAgIGlucHV0czoKWyAgICA0LjU3MzA0OV0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhk
YXVkaW9DMkQwOiAgICAgIE1pYz0weDFiClsgICAgNC41NzMwNTFdIHNuZF9oZGFfY29kZWNfcmVh
bHRlayBoZGF1ZGlvQzJEMDogICAgICBJbnRlcm5hbCBNaWM9MHgxMgpbICAgIDQuNTc4MTg4XSBj
ZGNfbmNtIDEtNC4zOjIuMCBlbnhmOGU0M2JjZGIzNzY6IHJlbmFtZWQgZnJvbSBldGgwClsgICAg
NC41NzkwNzNdIGlucHV0OiBNT1NBUlQgU2VtaS4gTWkgV2lyZWxlc3MgQ29tYm8gYXMgL2Rldmlj
ZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNTowMC40L3VzYjMvMy0zLzMtMy4yLzMt
My4yOjEuMC8wMDAzOjI3MTc6NTAxMC4wMDAxL2lucHV0L2lucHV0MTQKWyAgICA0LjYwMTcxN10g
aW5wdXQ6IEhEQSBBVEkgSERNSSBIRE1JL0RQLHBjbT04IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAv
MDAwMDowMDowMS4xLzAwMDA6MDE6MDAuMC8wMDAwOjAyOjAwLjAvMDAwMDowMzowMC4xL3NvdW5k
L2NhcmQwL2lucHV0NwpbICAgIDQuNjk4MDE4XSBoaWQtZ2VuZXJpYyAwMDAzOjI3MTc6NTAxMC4w
MDAxOiBpbnB1dCxoaWRyYXcwOiBVU0IgSElEIHYxLjEwIEtleWJvYXJkIFtNT1NBUlQgU2VtaS4g
TWkgV2lyZWxlc3MgQ29tYm9dIG9uIHVzYi0wMDAwOjA1OjAwLjQtMy4yL2lucHV0MApbICAgIDQu
Njk4MzQ5XSBpbnB1dDogSERBIEFUSSBIRE1JIEhETUkvRFAscGNtPTkgYXMgL2RldmljZXMvcGNp
MDAwMDowMC8wMDAwOjAwOjAxLjEvMDAwMDowMTowMC4wLzAwMDA6MDI6MDAuMC8wMDAwOjAzOjAw
LjEvc291bmQvY2FyZDAvaW5wdXQ4ClsgICAgNC42OTkxMzNdIGlucHV0OiBNT1NBUlQgU2VtaS4g
TWkgV2lyZWxlc3MgQ29tYm8gTW91c2UgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4
LjEvMDAwMDowNTowMC40L3VzYjMvMy0zLzMtMy4yLzMtMy4yOjEuMS8wMDAzOjI3MTc6NTAxMC4w
MDAyL2lucHV0L2lucHV0MTUKWyAgICA0LjcwMDE4M10gaW5wdXQ6IEhEQSBBVEkgSERNSSBIRE1J
L0RQLHBjbT0xMCBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDEuMS8wMDAwOjAxOjAw
LjAvMDAwMDowMjowMC4wLzAwMDA6MDM6MDAuMS9zb3VuZC9jYXJkMC9pbnB1dDkKWyAgICA0Ljcw
MDM1NV0gaW5wdXQ6IE1PU0FSVCBTZW1pLiBNaSBXaXJlbGVzcyBDb21ibyBDb25zdW1lciBDb250
cm9sIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuNC91c2Iz
LzMtMy8zLTMuMi8zLTMuMjoxLjEvMDAwMzoyNzE3OjUwMTAuMDAwMi9pbnB1dC9pbnB1dDE2Clsg
ICAgNC43NTM5OTFdIGlucHV0OiBNT1NBUlQgU2VtaS4gTWkgV2lyZWxlc3MgQ29tYm8gU3lzdGVt
IENvbnRyb2wgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNTowMC40
L3VzYjMvMy0zLzMtMy4yLzMtMy4yOjEuMS8wMDAzOjI3MTc6NTAxMC4wMDAyL2lucHV0L2lucHV0
MTcKWyAgICA0Ljc1NDkwMl0gaW5wdXQ6IE1PU0FSVCBTZW1pLiBNaSBXaXJlbGVzcyBDb21ibyBh
cyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAwLjQvdXNiMy8zLTMv
My0zLjIvMy0zLjI6MS4xLzAwMDM6MjcxNzo1MDEwLjAwMDIvaW5wdXQvaW5wdXQxOApbICAgIDQu
NzU1NDU5XSBpbnB1dDogTU9TQVJUIFNlbWkuIE1pIFdpcmVsZXNzIENvbWJvIGFzIC9kZXZpY2Vz
L3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuNC91c2IzLzMtMy8zLTMuMi8zLTMu
MjoxLjEvMDAwMzoyNzE3OjUwMTAuMDAwMi9pbnB1dC9pbnB1dDE5ClsgICAgNC43NTYzNDRdIGhp
ZC1nZW5lcmljIDAwMDM6MjcxNzo1MDEwLjAwMDI6IGlucHV0LGhpZGRldjAsaGlkcmF3MTogVVNC
IEhJRCB2MS4xMCBNb3VzZSBbTU9TQVJUIFNlbWkuIE1pIFdpcmVsZXNzIENvbWJvXSBvbiB1c2It
MDAwMDowNTowMC40LTMuMi9pbnB1dDEKWyAgICA1LjEyODIxMF0gbG9vcDE5OiBkZXRlY3RlZCBj
YXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDgKWyAgICA1LjE0MDMwOF0gb3BlbnZzd2l0Y2g6IE9w
ZW4gdlN3aXRjaCBzd2l0Y2hpbmcgZGF0YXBhdGgKWyAgICA1LjE3NzUyMV0gb3ZzLXN5c3RlbTog
ZW50ZXJlZCBwcm9taXNjdW91cyBtb2RlClsgICAgNS4xODIwNjRdIFRpbWVvdXQgcG9saWN5IGJh
c2UgaXMgZW1wdHkKWyAgICA1LjI1NDY0Ml0gb3ZzYnIwOiBlbnRlcmVkIHByb21pc2N1b3VzIG1v
ZGUKWyAgICA1LjI2MjY2M10gY2RjX25jbSAxLTQuMzoyLjAgZW54ZjhlNDNiY2RiMzc2OiBlbnRl
cmVkIHByb21pc2N1b3VzIG1vZGUKWyAgICA1LjM2Mjc0M10gaW5wdXQ6IEhELUF1ZGlvIEdlbmVy
aWMgTWljIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuNi9z
b3VuZC9jYXJkMi9pbnB1dDIwClsgICAgNS4zNjMxMjNdIGlucHV0OiBIRC1BdWRpbyBHZW5lcmlj
IEhlYWRwaG9uZSBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1OjAw
LjYvc291bmQvY2FyZDIvaW5wdXQyMQpbICAxNDMuNTI2MDA5XSBbZHJtXSBhbWRncHUga2VybmVs
IG1vZGVzZXR0aW5nIGVuYWJsZWQuClsgIDE0My41MjYwNDBdIGFtZGdwdTogdmdhX3N3aXRjaGVy
b286IGRldGVjdGVkIHN3aXRjaGluZyBtZXRob2QgXF9TQl8uUENJMC5HUDE3LlZHQV8uQVRQWCBo
YW5kbGUKWyAgMTQzLjUyODIxMV0gYW1kZ3B1OiBBVFBYIHZlcnNpb24gMSwgZnVuY3Rpb25zIDB4
MDAwMDAwMDEKWyAgMTQzLjUyODU1NF0gYW1kZ3B1OiBBVFBYIEh5YnJpZCBHcmFwaGljcwpbICAx
NDMuNTgxNjU4XSBhbWRncHU6IFZpcnR1YWwgQ1JBVCB0YWJsZSBjcmVhdGVkIGZvciBDUFUKWyAg
MTQzLjU4MTc5MV0gYW1kZ3B1OiBUb3BvbG9neTogQWRkIENQVSBub2RlClsgIDE0My41ODI2MDBd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IGVuYWJsaW5nIGRldmljZSAoMDAwNiAtPiAwMDA3KQpbICAx
NDMuNTgyODAzXSBbZHJtXSBpbml0aWFsaXppbmcga2VybmVsIG1vZGVzZXR0aW5nIChESU1HUkVZ
X0NBVkVGSVNIIDB4MTAwMjoweDczRkYgMHgxMDAyOjB4MDEyNCAweEM3KS4KWyAgMTQzLjU4NjY2
MF0gW2RybV0gcmVnaXN0ZXIgbW1pbyBiYXNlOiAweEQwNjAwMDAwClsgIDE0My41ODY2NjZdIFtk
cm1dIHJlZ2lzdGVyIG1taW8gc2l6ZTogMTA0ODU3NgpbICAxNDMuNTkzMDcxXSBbZHJtXSBhZGQg
aXAgYmxvY2sgbnVtYmVyIDAgPG52X2NvbW1vbj4KWyAgMTQzLjU5MzA3Nl0gW2RybV0gYWRkIGlw
IGJsb2NrIG51bWJlciAxIDxnbWNfdjEwXzA+ClsgIDE0My41OTMwNzhdIFtkcm1dIGFkZCBpcCBi
bG9jayBudW1iZXIgMiA8bmF2aTEwX2loPgpbICAxNDMuNTkzMDgwXSBbZHJtXSBhZGQgaXAgYmxv
Y2sgbnVtYmVyIDMgPHBzcD4KWyAgMTQzLjU5MzA4MV0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJl
ciA0IDxzbXU+ClsgIDE0My41OTMwODNdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNSA8ZG0+
ClsgIDE0My41OTMwODRdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNiA8Z2Z4X3YxMF8wPgpb
ICAxNDMuNTkzMDg2XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDcgPHNkbWFfdjVfMj4KWyAg
MTQzLjU5MzA4N10gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciA4IDx2Y25fdjNfMD4KWyAgMTQz
LjU5MzA4OF0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciA5IDxqcGVnX3YzXzA+ClsgIDE0My42
MjYzNTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogRmV0Y2hlZCBWQklPUyBmcm9tIEFU
Uk0KWyAgMTQzLjYyNjM3MV0gYW1kZ3B1OiBBVE9NIEJJT1M6IDExMy1ENTM0MDEwMC0xMDIKWyAg
MTQzLjY0NzY2MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBUcnVzdGVkIE1lbW9yeSBa
b25lIChUTVopIGZlYXR1cmUgZGlzYWJsZWQgYXMgZXhwZXJpbWVudGFsIChkZWZhdWx0KQpbICAx
NDMuNjQ3ODk4XSBbZHJtXSB2bSBzaXplIGlzIDI2MjE0NCBHQiwgNCBsZXZlbHMsIGJsb2NrIHNp
emUgaXMgOS1iaXQsIGZyYWdtZW50IHNpemUgaXMgOS1iaXQKWyAgMTQzLjY1MTMyNl0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogQkFSIDIgW21lbSAweGZjYTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0
IHByZWZdOiByZWxlYXNpbmcKWyAgMTQzLjY1MTMzMl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogQkFS
IDAgW21lbSAweGZjOTAwMDAwMDAtMHhmYzlmZmZmZmZmIDY0Yml0IHByZWZdOiByZWxlYXNpbmcK
WyAgMTQzLjY1MTQzNF0gcGNpZXBvcnQgMDAwMDowMjowMC4wOiBicmlkZ2Ugd2luZG93IFttZW0g
MHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXTogcmVsZWFzaW5nClsgIDE0My42
NTE0MzldIHBjaWVwb3J0IDAwMDA6MDE6MDAuMDogYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmM5MDAw
MDAwMC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl06IHJlbGVhc2luZwpbICAxNDMuNjUxNDQzXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IGJyaWRnZSB3aW5kb3cgW21lbSAweGZjOTAwMDAwMDAtMHhm
Y2EwMWZmZmZmIDY0Yml0IHByZWZdOiByZWxlYXNpbmcKWyAgMTQzLjY1MTQ1Nl0gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiBicmlkZ2Ugd2luZG93IFttZW0gMHg5MDAwMDAwMDAtMHhiZmZmZmZmZmYg
NjRiaXQgcHJlZl06IGFzc2lnbmVkClsgIDE0My42NTE0NjJdIHBjaWVwb3J0IDAwMDA6MDE6MDAu
MDogYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTAwMDAwMDAwLTB4YmZmZmZmZmZmIDY0Yml0IHByZWZd
OiBhc3NpZ25lZApbICAxNDMuNjUxNDY2XSBwY2llcG9ydCAwMDAwOjAyOjAwLjA6IGJyaWRnZSB3
aW5kb3cgW21lbSAweDkwMDAwMDAwMC0weGJmZmZmZmZmZiA2NGJpdCBwcmVmXTogYXNzaWduZWQK
WyAgMTQzLjY1MTQ3NV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogQkFSIDAgW21lbSAweGEwMDAwMDAw
MC0weGJmZmZmZmZmZiA2NGJpdCBwcmVmXTogYXNzaWduZWQKWyAgMTQzLjY1MTUwMV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogQkFSIDIgW21lbSAweDkwMDAwMDAwMC0weDkwMDFmZmZmZiA2NGJpdCBw
cmVmXTogYXNzaWduZWQKWyAgMTQzLjY1MTUyNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBQQ0kg
YnJpZGdlIHRvIFtidXMgMDEtMDNdClsgIDE0My42NTE1MzBdIHBjaWVwb3J0IDAwMDA6MDA6MDEu
MTogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgMTQzLjY1MTUzOF0gcGNp
ZXBvcnQgMDAwMDowMDowMS4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4ZDA4
ZmZmZmZdClsgIDE0My42NTE1NDNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2lu
ZG93IFttZW0gMHg5MDAwMDAwMDAtMHhiZmZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgMTQzLjY1MTU1
Ml0gcGNpZXBvcnQgMDAwMDowMTowMC4wOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDItMDNdClsgIDE0
My42NTE1NTZdIHBjaWVwb3J0IDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgy
MDAwLTB4MmZmZl0KWyAgMTQzLjY1MTU2NF0gcGNpZXBvcnQgMDAwMDowMTowMC4wOiAgIGJyaWRn
ZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4ZDA3ZmZmZmZdClsgIDE0My42NTE1NzBdIHBjaWVw
b3J0IDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHg5MDAwMDAwMDAtMHhiZmZm
ZmZmZmYgNjRiaXQgcHJlZl0KWyAgMTQzLjY1MTU4MF0gcGNpZXBvcnQgMDAwMDowMjowMC4wOiBQ
Q0kgYnJpZGdlIHRvIFtidXMgMDNdClsgIDE0My42NTE1ODRdIHBjaWVwb3J0IDAwMDA6MDI6MDAu
MDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgMTQzLjY1MTU5Ml0gcGNp
ZXBvcnQgMDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4ZDA3
ZmZmZmZdClsgIDE0My42NTE1OThdIHBjaWVwb3J0IDAwMDA6MDI6MDAuMDogICBicmlkZ2Ugd2lu
ZG93IFttZW0gMHg5MDAwMDAwMDAtMHhiZmZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgMTQzLjY1Njg1
Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBWUkFNOiA4MTc2TSAweDAwMDAwMDgwMDAw
MDAwMDAgLSAweDAwMDAwMDgxRkVGRkZGRkYgKDgxNzZNIHVzZWQpClsgIDE0My42NTY4NTldIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogR0FSVDogNTEyTSAweDAwMDAwMDAwMDAwMDAwMDAg
LSAweDAwMDAwMDAwMUZGRkZGRkYKWyAgMTQzLjY1Njg4N10gW2RybV0gRGV0ZWN0ZWQgVlJBTSBS
QU09ODE3Nk0sIEJBUj04MTkyTQpbICAxNDMuNjU2ODg5XSBbZHJtXSBSQU0gd2lkdGggMTI4Yml0
cyBHRERSNgpbICAxNDMuNjU3NzMyXSBbZHJtXSBhbWRncHU6IDgxNzZNIG9mIFZSQU0gbWVtb3J5
IHJlYWR5ClsgIDE0My42NTc3MzZdIFtkcm1dIGFtZGdwdTogMjc1NE0gb2YgR1RUIG1lbW9yeSBy
ZWFkeS4KWyAgMTQzLjY1NzgyNF0gW2RybV0gR0FSVDogbnVtIGNwdSBwYWdlcyAxMzEwNzIsIG51
bSBncHUgcGFnZXMgMTMxMDcyClsgIDE0My42NTc5NzVdIFtkcm1dIFBDSUUgR0FSVCBvZiA1MTJN
IGVuYWJsZWQgKHRhYmxlIGF0IDB4MDAwMDAwODAwMEYwMDAwMCkuClsgIDE0NS4zMDcwMTJdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogU1RCIGluaXRpYWxpemVkIHRvIDIwNDggZW50cmll
cwpbICAxNDUuMzA4MDIxXSBbZHJtXSBMb2FkaW5nIERNVUIgZmlybXdhcmUgdmlhIFBTUDogdmVy
c2lvbj0weDAyMDIwMDEzClsgIDE0NS4zMDk0MTRdIFtkcm1dIHVzZV9kb29yYmVsbCBiZWluZyBz
ZXQgdG86IFt0cnVlXQpbICAxNDUuMzA5NDczXSBbZHJtXSB1c2VfZG9vcmJlbGwgYmVpbmcgc2V0
IHRvOiBbdHJ1ZV0KWyAgMTQ1LjMwOTUyOV0gW2RybV0gRm91bmQgVkNOIGZpcm13YXJlIFZlcnNp
b24gRU5DOiAxLjMwIERFQzogMyBWRVA6IDAgUmV2aXNpb246IDgKWyAgMTQ1LjM4MTIzM10gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByZXNlcnZlIDB4YTAwMDAwIGZyb20gMHg4MWZkMDAw
MDAwIGZvciBQU1AgVE1SClsgIDE0NS40ODA1NDldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdw
dTogUkFTOiBvcHRpb25hbCByYXMgdGEgdWNvZGUgaXMgbm90IGF2YWlsYWJsZQpbICAxNDUuNDk4
NzkwXSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IFNFQ1VSRURJU1BMQVk6IHNlY3VyZWRp
c3BsYXkgdGEgdWNvZGUgaXMgbm90IGF2YWlsYWJsZQpbICAxNDUuNDk4ODE0XSBhbWRncHUgMDAw
MDowMzowMC4wOiBhbWRncHU6IHNtdSBkcml2ZXIgaWYgdmVyc2lvbiA9IDB4MDAwMDAwMGYsIHNt
dSBmdyBpZiB2ZXJzaW9uID0gMHgwMDAwMDAxMywgc211IGZ3IHByb2dyYW0gPSAwLCB2ZXJzaW9u
ID0gMHgwMDNiMjkwMCAoNTkuNDEuMCkKWyAgMTQ1LjQ5ODgxOF0gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogYW1kZ3B1OiBTTVUgZHJpdmVyIGlmIHZlcnNpb24gbm90IG1hdGNoZWQKWyAgMTQ1LjQ5ODg1
Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiB1c2UgdmJpb3MgcHJvdmlkZWQgcHB0YWJs
ZQpbICAxNDUuNTQ2ODE1XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IFNNVSBpcyBpbml0
aWFsaXplZCBzdWNjZXNzZnVsbHkhClsgIDE0NS41NDc5MDldIFtkcm1dIERpc3BsYXkgQ29yZSB2
My4yLjMwMSBpbml0aWFsaXplZCBvbiBEQ04gMy4wLjIKWyAgMTQ1LjU0NzkxNV0gW2RybV0gRFAt
SERNSSBGUkwgUENPTiBzdXBwb3J0ZWQKWyAgMTQ1LjU0OTMzN10gW2RybV0gRE1VQiBoYXJkd2Fy
ZSBpbml0aWFsaXplZDogdmVyc2lvbj0weDAyMDIwMDEzClsgIDE0NS41NTQ1MDZdIHNuZF9oZGFf
aW50ZWwgMDAwMDowMzowMC4xOiBib3VuZCAwMDAwOjAzOjAwLjAgKG9wcyBhbWRncHVfZG1fYXVk
aW9fY29tcG9uZW50X2JpbmRfb3BzIFthbWRncHVdKQpbICAxNDUuNzg0NTI3XSBbZHJtXSBraXEg
cmluZyBtZWMgMiBwaXBlIDEgcSAwClsgIDE0NS44NDU2NjldIGFtZGdwdTogSE1NIHJlZ2lzdGVy
ZWQgODE3Nk1CIGRldmljZSBtZW1vcnkKWyAgMTQ1Ljg0ODMwN10ga2ZkIGtmZDogYW1kZ3B1OiBB
bGxvY2F0ZWQgMzk2OTA1NiBieXRlcyBvbiBnYXJ0ClsgIDE0NS44NDgzNTldIGtmZCBrZmQ6IGFt
ZGdwdTogVG90YWwgbnVtYmVyIG9mIEtGRCBub2RlcyB0byBiZSBjcmVhdGVkOiAxClsgIDE0NS44
NDkwNjldIGFtZGdwdTogVmlydHVhbCBDUkFUIHRhYmxlIGNyZWF0ZWQgZm9yIEdQVQpbICAxNDUu
ODUwMzI1XSBhbWRncHU6IFRvcG9sb2d5OiBBZGQgZEdQVSBub2RlIFsweDczZmY6MHgxMDAyXQpb
ICAxNDUuODUwMzI4XSBrZmQga2ZkOiBhbWRncHU6IGFkZGVkIGRldmljZSAxMDAyOjczZmYKWyAg
MTQ1Ljg1MDM1MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTRSAyLCBTSCBwZXIgU0Ug
MiwgQ1UgcGVyIFNIIDgsIGFjdGl2ZV9jdV9udW1iZXIgMjgKWyAgMTQ1Ljg1MDM1Nl0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIGdmeF8wLjAuMCB1c2VzIFZNIGludiBlbmcgMCBv
biBodWIgMApbICAxNDUuODUwMzU4XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcg
Z2Z4XzAuMS4wIHVzZXMgVk0gaW52IGVuZyAxIG9uIGh1YiAwClsgIDE0NS44NTAzNTldIGFtZGdw
dSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMC4wIHVzZXMgVk0gaW52IGVuZyA0
IG9uIGh1YiAwClsgIDE0NS44NTAzNjFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmlu
ZyBjb21wXzEuMS4wIHVzZXMgVk0gaW52IGVuZyA1IG9uIGh1YiAwClsgIDE0NS44NTAzNjJdIGFt
ZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMi4wIHVzZXMgVk0gaW52IGVu
ZyA2IG9uIGh1YiAwClsgIDE0NS44NTAzNjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTog
cmluZyBjb21wXzEuMy4wIHVzZXMgVk0gaW52IGVuZyA3IG9uIGh1YiAwClsgIDE0NS44NTAzNjVd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMC4xIHVzZXMgVk0gaW52
IGVuZyA4IG9uIGh1YiAwClsgIDE0NS44NTAzNjZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdw
dTogcmluZyBjb21wXzEuMS4xIHVzZXMgVk0gaW52IGVuZyA5IG9uIGh1YiAwClsgIDE0NS44NTAz
NjddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMi4xIHVzZXMgVk0g
aW52IGVuZyAxMCBvbiBodWIgMApbICAxNDUuODUwMzY5XSBhbWRncHUgMDAwMDowMzowMC4wOiBh
bWRncHU6IHJpbmcgY29tcF8xLjMuMSB1c2VzIFZNIGludiBlbmcgMTEgb24gaHViIDAKWyAgMTQ1
Ljg1MDM3MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIGtpcV8wLjIuMS4wIHVz
ZXMgVk0gaW52IGVuZyAxMiBvbiBodWIgMApbICAxNDUuODUwMzcxXSBhbWRncHUgMDAwMDowMzow
MC4wOiBhbWRncHU6IHJpbmcgc2RtYTAgdXNlcyBWTSBpbnYgZW5nIDEzIG9uIGh1YiAwClsgIDE0
NS44NTAzNzNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBzZG1hMSB1c2VzIFZN
IGludiBlbmcgMTQgb24gaHViIDAKWyAgMTQ1Ljg1MDM3NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
YW1kZ3B1OiByaW5nIHZjbl9kZWNfMCB1c2VzIFZNIGludiBlbmcgMCBvbiBodWIgOApbICAxNDUu
ODUwMzc2XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcgdmNuX2VuY18wLjAgdXNl
cyBWTSBpbnYgZW5nIDEgb24gaHViIDgKWyAgMTQ1Ljg1MDM3N10gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogYW1kZ3B1OiByaW5nIHZjbl9lbmNfMC4xIHVzZXMgVk0gaW52IGVuZyA0IG9uIGh1YiA4Clsg
IDE0NS44NTAzNzldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBqcGVnX2RlYyB1
c2VzIFZNIGludiBlbmcgNSBvbiBodWIgOApbICAxNDUuODc2OTQ4XSBhbWRncHUgMDAwMDowMzow
MC4wOiBhbWRncHU6IFNNVTogcmVzcG9uc2U6MHhGRkZGRkZGRiBmb3IgaW5kZXg6MTMgcGFyYW06
MHgwMDAwMDAwMCBtZXNzYWdlOkdldEVuYWJsZWRTbXVGZWF0dXJlc0hpZ2g/ClsgIDE0NS44Nzcw
MTldIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogRmFpbGVkIHRvIHJldHJpZXZlIGVuYWJs
ZWQgcHBmZWF0dXJlcyEKWyAgMTQ1Ljg3NzEzMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1
OiBVc2luZyBCT0NPIGZvciBydW50aW1lIHBtClsgIDE0NS44NzczMDddIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDE0NS44NzczNDldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTQ1Ljg3NzM1NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAw
ClsgIDE0NS44NzczNTldIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZh
dGFsRXJyICAgICAgICAgICAKWyAgMTQ1Ljg4NDM3Nl0gW2RybV0gSW5pdGlhbGl6ZWQgYW1kZ3B1
IDMuNTkuMCBmb3IgMDAwMDowMzowMC4wIG9uIG1pbm9yIDAKWyAgMTQ1Ljk1NjY0MF0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTTVU6IHJlc3BvbnNlOjB4RkZGRkZGRkYgZm9yIGluZGV4
OjQwIHBhcmFtOjB4MDAwMDAwMDAgbWVzc2FnZTpBbGxvd0dmeE9mZj8KWyAgMTQ1Ljk1NjgzMF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBGYWlsZWQgdG8gZW5hYmxlIGdmeG9mZiEKWyAg
MTQ1Ljk1NjgzMl0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IENvcnJlY3RhYmxlIGVycm9y
IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTQ1Ljk1NjkzOF0gc25kX2hk
YV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJs
ZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxNDUuOTU2OTQ0XSBz
bmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3Rh
dHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTQ1Ljk1Njk0OV0gc25kX2hkYV9pbnRlbCAw
MDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxNDYuNzk3MjA4
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDYuODEyNTU2XSBwY2llcG9y
dCAwMDAwOjAxOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlw
ZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxNDYuODEyNTYwXSBwY2llcG9y
dCAwMDAwOjAxOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjE0NzhdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDE0Ni44MTI1NjNdIHBjaWVwb3J0IDAwMDA6MDE6MDAuMDogICAg
WzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDE0Ni44MjEwMDFdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxNDYuODIxMDA1XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxNDYuODIxMDA3XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTQ2LjgyMTAxOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxNDYuODIxNjQ0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTQ2LjgyNTY1MV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxNDYuODI4MDYxXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTQ2Ljg2OTYxM10gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTQ2Ljg5MjEx
Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogW2RybTphbWRncHVfaWJfcmluZ190ZXN0cyBbYW1kZ3B1
XV0gKkVSUk9SKiBJQiB0ZXN0IGZhaWxlZCBvbiBnZnhfMC4wLjAgKC0xMTApLgpbICAxNDYuODky
ODQwXSBbZHJtOmFtZGdwdV9kZXZpY2VfZGVsYXllZF9pbml0X3dvcmtfaGFuZGxlciBbYW1kZ3B1
XV0gKkVSUk9SKiBpYiByaW5nIHRlc3QgZmFpbGVkICgtMTEwKS4KWyAgMTQ2Ljg5ODc0MV0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogW2RybV0gZmIxOiBhbWRncHVkcm1mYiBmcmFtZSBidWZmZXIgZGV2
aWNlClsgIDE0Ni45MTE0ODNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxNDYuOTE3NzY2XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2Zm
XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxNDYuOTE3NzcwXSBhbWRn
cHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTQ2Ljky
MzgwMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0
eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAx
NDYuOTIzOTgxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIy
OF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTQ2LjkyMzk4NF0gc25k
X2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApb
ICAxNDYuOTIzOTg2XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9m
IHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTQ2Ljk1NTg5OV0gcGNpZXBvcnQgMDAw
MDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2
ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTQ2Ljk2MzEyOV0gW2RybV0gUmVnaXN0ZXIoMCkgW21t
VVZEX1BHRlNNX1NUQVRVU10gZmFpbGVkIHRvIHJlYWNoIHZhbHVlIDB4MDA4MDAwMDAgIT0gMHgw
MGMwMDAwMG4KWyAgMTQ2Ljk2MzE3NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJy
b3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2
ZXIgSUQpClsgIDE0Ni45NjMxNzddIGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAy
OjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDE0Ni45NjMxODBd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAx
NDYuOTYzMTkxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNl
dmVyaXR5PUNvcnJlY3RhYmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQp
ClsgIDE0Ni45NjMxOTNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAw
MjphYjI4XSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxNDYuOTYzMTk0
XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDE0Ni45NjMxOTZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJy
b3Igb2YgdGhpcyBBZ2VudCBpcyByZXBvcnRlZCBmaXJzdApbICAxNDYuOTYzMjc1XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDYuOTYzMzM5XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDYuOTYzMTM0XSBbZHJtOmpwZWdfdjNfMF9zZXRfcG93ZXJn
YXRpbmdfc3RhdGUgW2FtZGdwdV1dICpFUlJPUiogYW1kZ3B1OiBKUEVHIGVuYWJsZSBwb3dlciBn
YXRpbmcgZmFpbGVkClsgIDE0Ni45NjM0MDFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBN
dWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzow
MC4xClsgIDE0Ni45NjM0NjNdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBD
b3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDE0
Ni45NjM1MjhdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJs
ZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDE0Ni45NjM2MzFd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDE0Ni45NjM1NzNdIFtkcm06YW1k
Z3B1X2RldmljZV9pcF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUgW2FtZGdwdV1dICpFUlJPUiogc2V0
X3Bvd2VyZ2F0aW5nX3N0YXRlIG9mIElQIGJsb2NrIDxqcGVnX3YzXzA+IGZhaWxlZCAtMTEwClsg
IDE0Ni45NjM2OTJdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0
YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDE0Ni45NjM3
NTRdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdl
IHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDE0Ni45NjM3NzNdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDE0Ni45NjM4MzldIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDE0Ni45OTYwNDFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogU01V
OiByZXNwb25zZToweEZGRkZGRkZGIGZvciBpbmRleDo0MCBwYXJhbToweDAwMDAwMDAwIG1lc3Nh
Z2U6QWxsb3dHZnhPZmY/ClsgIDE0Ni45OTYxMTVdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdw
dTogRmFpbGVkIHRvIGVuYWJsZSBnZnhvZmYhClsgIDE0Ny4wMDc5OTBdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxNDcuMDA3OTk0XSBhbWRncHUgMDAwMDowMzow
MC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAw
MDAwMApbICAxNDcuMDA4MDU1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFs
RXJyICAgICAgICAgICAKWyAgMTQ3LjAxMzg1NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6
IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBM
YXllciwgKFJlY2VpdmVyIElEKQpbICAxNDcuMDEzODU4XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6
MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAw
MDAwMDAKWyAgMTQ3LjAxMzg2MF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10g
Tm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxNDcuMDEzODYyXSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAg
MTQ3LjAzOTY4Ml0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IE11bHRpcGxlIENvcnJlY3Rh
YmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTQ3LjA1OTYz
Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3Rh
YmxlLCB0eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDE0Ny4wNjAxODVd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9t
YXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDE0Ny4wNjAxODhdIGFtZGdwdSAwMDAwOjAzOjAwLjA6
ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxNDcuMDYyMjA1XSBzbmRfaGRhX2lu
dGVsIDAwMDA6MDM6MDAuMTogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDE0Ny4wNjIyMDddIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgIGRldmljZSBbMTAwMjphYjI4XSBlcnJvciBzdGF0dXMv
bWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxNDcuMDYyMjA5XSBzbmRfaGRhX2ludGVsIDAwMDA6
MDM6MDAuMTogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDE0Ny4wNjIyMTFdIHNu
ZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBBRVI6ICAgRXJyb3Igb2YgdGhpcyBBZ2VudCBpcyBy
ZXBvcnRlZCBmaXJzdApbICAxNDcuMDk3NTIzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxNDcuMTI4MDY2XSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1cyBFcnJvcjog
c2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJ
RCkKWyAgMTQ3LjEyODA3MF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2UgWzEwMDI6NzNm
Zl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTQ3LjEyODA3M10gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDE0Ny4x
MzAyNjhdIFtkcm1dIFJlZ2lzdGVyKDApIFttbVVWRF9QT1dFUl9TVEFUVVNdIGZhaWxlZCB0byBy
ZWFjaCB2YWx1ZSAweDAwMDAwMDAxICE9IDB4MDAwMDAwMDNuClsgIDE0Ny4xMzEzNzJdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFi
bGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkKWyAgMTQ3LjEzMTM3NF0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0
YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDE0Ny4xMzIwNDFdIHNuZF9oZGFfaW50ZWwg
MDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAgMTQ3LjE0NzY3
M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJvciBvZiB0aGlzIEFnZW50
IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDE0Ny4yMDk4NTFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTog
QUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAw
MDowMzowMC4xClsgIDE0Ny4yNTA0NzFdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVy
cm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2Vp
dmVyIElEKQpbICAxNDcuMjUwNDc1XSBhbWRncHUgMDAwMDowMzowMC4wOiAgIGRldmljZSBbMTAw
Mjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAwMC8wMDAwMDAwMApbICAxNDcuMjUwNDc4
XSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAgICAKWyAg
MTQ3LjI1NDIyMF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBz
ZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElE
KQpbICAxNDcuMjYwMDIzXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEw
MDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTQ3LjI2MTI2
OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAg
ICAgIApbICAxNDcuMjYxMjcwXSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogQUVSOiAgIEVy
cm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmlyc3QKWyAgMTQ3LjI5NjE5OV0gW2RybV0g
UmVnaXN0ZXIoMCkgW21tVVZEX1JCQ19SQl9SUFRSXSBmYWlsZWQgdG8gcmVhY2ggdmFsdWUgMHg3
ZmZmZmZmZiAhPSAweGZmZmZmZmZmbgpbICAxNDcuMzE1NzI2XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxNDcuMzM4MjcwXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0llIEJ1
cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChS
ZWNlaXZlciBJRCkKWyAgMTQ3LjMzODI3M10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZpY2Ug
WzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTQ3LjMz
ODI3Nl0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAg
ClsgIDE0Ny4zNTI0MDZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJv
cjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZl
ciBJRCkKWyAgMTQ3LjM2NDAxOF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNl
IFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDE0Ny4z
NjQwMjJdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAg
ICAgICAgICAKWyAgMTQ3LjM2NDAyNV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjog
ICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDE0Ny40NjIyNzddIFtk
cm1dIFJlZ2lzdGVyKDApIFttbVVWRF9QT1dFUl9TVEFUVVNdIGZhaWxlZCB0byByZWFjaCB2YWx1
ZSAweDAwMDAwMDAxICE9IDB4MDAwMDAwMDNuClsgIDE0Ny40NjIyODhdIHBjaWVwb3J0IDAwMDA6
MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNzYWdlIHJlY2VpdmVk
IGZyb20gMDAwMDowMzowMC4xClsgIDE0Ny40NjIzNDZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFt
ZGdwdTogU01VOiByZXNwb25zZToweEZGRkZGRkZGIGZvciBpbmRleDoxMyBwYXJhbToweDAwMDAw
MDAwIG1lc3NhZ2U6R2V0RW5hYmxlZFNtdUZlYXR1cmVzSGlnaD8KWyAgMTQ3LjQ2MjM3M10gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogUENJZSBCdXMgRXJyb3I6IHNldmVyaXR5PUNvcnJlY3RhYmxlLCB0
eXBlPVRyYW5zYWN0aW9uIExheWVyLCAoUmVjZWl2ZXIgSUQpClsgIDE0Ny40NjIzNzVdIGFtZGdw
dSAwMDAwOjAzOjAwLjA6ICAgZGV2aWNlIFsxMDAyOjczZmZdIGVycm9yIHN0YXR1cy9tYXNrPTAw
MDAyMDAwLzAwMDAwMDAwClsgIDE0Ny40NjI0MTZdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdw
dTogRmFpbGVkIHRvIHJldHJpZXZlIGVuYWJsZWQgcHBmZWF0dXJlcyEKWyAgMTQ3LjQ2MjQxNl0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAgICAgClsgIDE0
Ny40NjI0MjddIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBFcnJvcjogc2V2
ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNlaXZlciBJRCkK
WyAgMTQ3LjQ2MjQ1M10gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2aWNlIFsxMDAy
OmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDE0Ny40NjI0NTVd
IHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJyICAgICAgICAg
ICAKWyAgMTQ3LjQ2MjQ1Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFFUjogICBFcnJv
ciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0ClsgIDE0Ny40NjI0ODddIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IGFtZGdwdTogU01VOiByZXNwb25zZToweEZGRkZGRkZGIGZvciBpbmRleDoz
NCBwYXJhbToweDAwMDAwMDAyIG1lc3NhZ2U6U2V0V29ya2xvYWRNYXNrPwpbICAxNDcuNDYyNTQz
XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IFtzaWVubmFfY2ljaGxpZF9zZXRfcG93ZXJf
cHJvZmlsZV9tb2RlXSBGYWlsZWQgdG8gc2V0IHdvcmsgbG9hZCBtYXNrIQpbICAxNDcuNDYyNTU2
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYyNjUxXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYyNzE5XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYyNzg1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxNDcuNDYyODQ3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxNDcuNDYyOTA4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYy
OTcwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzMDMxXSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzMDkzXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzMTU0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxNDcuNDYzMjE2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxNDcuNDYzMjc3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcu
NDYzMzM5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzNDAwXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzNDYyXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzNTIzXSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzNTg0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxNDcuNDYzNjQ2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
NDcuNDYzNzA3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzNzY5
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzODMwXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzODkyXSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDYzOTUzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxNDcuNDY0MDQ1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxNDcuNDY0MTI2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY0
MjA0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY0Mjg2XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY0MzkxXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY0NDc1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxNDcuNDY0NTYzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxNDcuNDY0NjUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcu
NDY0NzMzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY0ODE5XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY0OTAyXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY0OTg2XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1MDY4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxNDcuNDY1MTUxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
NDcuNDY1MjM1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1MzE4
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1NDAwXSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1NDg0XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1NTY4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxNDcuNDY1NjUxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxNDcuNDY1NzMzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1
ODE3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1OTAwXSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY1OTgzXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY2MDY3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxNDcuNDY2MTUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxNDcuNDY2MjMzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcu
NDY2MzE1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY2Mzk4XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY2NDgyXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY2NTY1XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxNDcuNDY2NjQ2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxNDcuNDY2NzMwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
NDcuNDY2ODEzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY2ODk2
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY2OTc5XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY3MDYyXSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY3MTQ0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxNDcuNDY3MjI3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxNDcuNDY3MzExXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY3
Mzk0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY3NDc3XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY3NTU5XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY3NjQyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxNDcuNDY3NzI2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxNDcuNDY3ODA4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcu
NDY3ODkwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY3OTczXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY4MDg1XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY4MTY4XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxNDcuNDY4MjUxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxNDcuNDY4MzY0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
NDcuNDY4NDUzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY4NTQx
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY4NjI1XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY4NzA4XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY4NzkyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxNDcuNDY4ODc2XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxNDcuNDY4OTYyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5
MDQ4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5MTMyXSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5MjE1XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5MzAwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxNDcuNDY5Mzg0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxNDcuNDY5NDY3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcu
NDY5NTUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5NjM0XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5NzE3XSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5Nzk5XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxNDcuNDY5ODg0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxNDcuNDY5OTY4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
NDcuNDcwMDUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcwMTM0
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcwMjE4XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcwMzAwXSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcwMzg0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxNDcuNDcwNDY4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxNDcuNDcwNTUwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcw
NjMzXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcwNzE3XSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcwODAwXSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcwODg0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxNDcuNDcwOTY4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxNDcuNDcxMDUyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcu
NDcxMTM1XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxMjE5XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVz
c2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxMzAyXSBwY2llcG9ydCAw
MDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxMzg1XSBwY2llcG9ydCAwMDAwOjAwOjAx
LjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9t
IDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxNDY5XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjog
TXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6
MDAuMQpbICAxNDcuNDcxNTU4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUg
Q29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAx
NDcuNDcxNjQwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFi
bGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxNzI0
XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3Ig
bWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxODE1XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxODk3XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcxOTgxXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFF
UjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6
MDM6MDAuMQpbICAxNDcuNDcyMTEyXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlw
bGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpb
ICAxNDcuNDcyMTk3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVj
dGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcy
Mjg4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJy
b3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcyMzcyXSBwY2ll
cG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2Fn
ZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcyNDU0XSBwY2llcG9ydCAwMDAw
OjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZl
ZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcyNTM3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6
IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAw
MDA6MDM6MDAuMQpbICAxNDcuNDcyNjIwXSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVs
dGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAu
MQpbICAxNDcuNDcyNzA0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29y
cmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcu
NDcyNzg3XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUg
ZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNDcyODcxXSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IEFFUjogQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNl
aXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNDcuNTA5Njg4XSBhbWRncHUgMDAwMDowMzowMC4w
OiBhbWRncHU6IFNNVTogcmVzcG9uc2U6MHhGRkZGRkZGRiBmb3IgaW5kZXg6MTMgcGFyYW06MHgw
MDAwMDAwMCBtZXNzYWdlOkdldEVuYWJsZWRTbXVGZWF0dXJlc0hpZ2g/ClsgIDE0Ny41MDk3NzVd
IGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogRmFpbGVkIHRvIHJldHJpZXZlIGVuYWJsZWQg
cHBmZWF0dXJlcyEKWyAgMTQ3LjUwOTgxMV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IENv
cnJlY3RhYmxlIGVycm9yIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSAwMDAwOjAzOjAwLjEKWyAgMTQ3
LjUwOTgzNF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZl
cml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpb
ICAxNDcuNTA5ODM3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6
YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTQ3LjUwOTgzOV0g
c25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgIFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAg
IApbICAxNDcuNTEwNDYxXSBbZHJtXSBpbml0aWFsaXppbmcga2VybmVsIG1vZGVzZXR0aW5nIChS
RU5PSVIgMHgxMDAyOjB4MTYzNiAweDEwMDI6MHgwMTI0IDB4ODQpLgpbICAxNDcuNTE0Mzg4XSBb
ZHJtXSByZWdpc3RlciBtbWlvIGJhc2U6IDB4RDA0MDAwMDAKWyAgMTQ3LjUxNDM5MV0gW2RybV0g
cmVnaXN0ZXIgbW1pbyBzaXplOiA1MjQyODgKWyAgMTQ3LjUzMTIwNF0gW2RybV0gYWRkIGlwIGJs
b2NrIG51bWJlciAwIDxzb2MxNV9jb21tb24+ClsgIDE0Ny41MzEyMTJdIFtkcm1dIGFkZCBpcCBi
bG9jayBudW1iZXIgMSA8Z21jX3Y5XzA+ClsgIDE0Ny41MzEyMTRdIFtkcm1dIGFkZCBpcCBibG9j
ayBudW1iZXIgMiA8dmVnYTEwX2loPgpbICAxNDcuNTMxMjE2XSBbZHJtXSBhZGQgaXAgYmxvY2sg
bnVtYmVyIDMgPHBzcD4KWyAgMTQ3LjUzMTIxN10gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciA0
IDxzbXU+ClsgIDE0Ny41MzEyMjBdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNSA8ZG0+Clsg
IDE0Ny41MzEyMjJdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNiA8Z2Z4X3Y5XzA+ClsgIDE0
Ny41MzEyMjRdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNyA8c2RtYV92NF8wPgpbICAxNDcu
NTMxMjI2XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDggPHZjbl92Ml8wPgpbICAxNDcuNTMx
MjI4XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDkgPGpwZWdfdjJfMD4KWyAgMTQ3LjUzMjM4
MV0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBGZXRjaGVkIFZCSU9TIGZyb20gVkZDVApb
ICAxNDcuNTMyNDE2XSBhbWRncHU6IEFUT00gQklPUzogMTEzLVJFTk9JUi0wMzcKWyAgMTQ3LjU1
MDg4NV0gQ29uc29sZTogc3dpdGNoaW5nIHRvIGNvbG91ciBkdW1teSBkZXZpY2UgODB4MjUKWyAg
MTQ3LjU1MDk4N10gYW1kZ3B1IDAwMDA6MDU6MDAuMDogdmdhYXJiOiBkZWFjdGl2YXRlIHZnYSBj
b25zb2xlClsgIDE0Ny41NTA5OTJdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogVHJ1c3Rl
ZCBNZW1vcnkgWm9uZSAoVE1aKSBmZWF0dXJlIGVuYWJsZWQKWyAgMTQ3LjU1MDk5Nl0gYW1kZ3B1
IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBNT0RFMiByZXNldApbICAxNDcuNTUxNDM3XSBbZHJtXSB2
bSBzaXplIGlzIDI2MjE0NCBHQiwgNCBsZXZlbHMsIGJsb2NrIHNpemUgaXMgOS1iaXQsIGZyYWdt
ZW50IHNpemUgaXMgOS1iaXQKWyAgMTQ3LjU1MTQ1N10gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1k
Z3B1OiBWUkFNOiA1MTJNIDB4MDAwMDAwRjQwMDAwMDAwMCAtIDB4MDAwMDAwRjQxRkZGRkZGRiAo
NTEyTSB1c2VkKQpbICAxNDcuNTUxNDYwXSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IEdB
UlQ6IDEwMjRNIDB4MDAwMDAwMDAwMDAwMDAwMCAtIDB4MDAwMDAwMDAzRkZGRkZGRgpbICAxNDcu
NTUxNDcwXSBbZHJtXSBEZXRlY3RlZCBWUkFNIFJBTT01MTJNLCBCQVI9NTEyTQpbICAxNDcuNTUx
NDcyXSBbZHJtXSBSQU0gd2lkdGggMTI4Yml0cyBMUEREUjQKWyAgMTQ3LjU1MjE5MF0gW2RybV0g
YW1kZ3B1OiA1MTJNIG9mIFZSQU0gbWVtb3J5IHJlYWR5ClsgIDE0Ny41NTIxOTRdIFtkcm1dIGFt
ZGdwdTogMjc1NE0gb2YgR1RUIG1lbW9yeSByZWFkeS4KWyAgMTQ3LjU1MjI3NV0gW2RybV0gR0FS
VDogbnVtIGNwdSBwYWdlcyAyNjIxNDQsIG51bSBncHUgcGFnZXMgMjYyMTQ0ClsgIDE0Ny41NTI0
NTVdIFtkcm1dIFBDSUUgR0FSVCBvZiAxMDI0TSBlbmFibGVkLgpbICAxNDcuNTUyNDU3XSBbZHJt
XSBQVEIgbG9jYXRlZCBhdCAweDAwMDAwMEY0MUZDMDAwMDAKWyAgMTQ3LjU1MzU2M10gW2RybV0g
TG9hZGluZyBETVVCIGZpcm13YXJlIHZpYSBQU1A6IHZlcnNpb249MHgwMTAxMDAxRgpbICAxNDcu
NTU0ODcyXSBbZHJtXSBGb3VuZCBWQ04gZmlybXdhcmUgVmVyc2lvbiBFTkM6IDEuMjEgREVDOiA3
IFZFUDogMCBSZXZpc2lvbjogMwpbICAxNDguMTczOTM0XSBhbWRncHUgMDAwMDowNTowMC4wOiBh
bWRncHU6IHJlc2VydmUgMHg0MDAwMDAgZnJvbSAweGY0MWY4MDAwMDAgZm9yIFBTUCBUTVIKWyAg
MTQ4LjI1ODcxN10gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBSQVM6IG9wdGlvbmFsIHJh
cyB0YSB1Y29kZSBpcyBub3QgYXZhaWxhYmxlClsgIDE0OC4yNjk5NDBdIGFtZGdwdSAwMDAwOjA1
OjAwLjA6IGFtZGdwdTogUkFQOiBvcHRpb25hbCByYXAgdGEgdWNvZGUgaXMgbm90IGF2YWlsYWJs
ZQpbICAxNDguMjY5OTQ3XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IFNFQ1VSRURJU1BM
QVk6IHNlY3VyZWRpc3BsYXkgdGEgdWNvZGUgaXMgbm90IGF2YWlsYWJsZQpbICAxNDguMjcyNzI0
XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IFNNVSBpcyBpbml0aWFsaXplZCBzdWNjZXNz
ZnVsbHkhClsgIDE0OC4yNzQwOTVdIFtkcm1dIERpc3BsYXkgQ29yZSB2My4yLjMwMSBpbml0aWFs
aXplZCBvbiBEQ04gMi4xClsgIDE0OC4yNzQwOTldIFtkcm1dIERQLUhETUkgRlJMIFBDT04gc3Vw
cG9ydGVkClsgIDE0OC4yNzQ2NTJdIFtkcm1dIERNVUIgaGFyZHdhcmUgaW5pdGlhbGl6ZWQ6IHZl
cnNpb249MHgwMTAxMDAxRgpbICAxNDguMzA3ODg0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDU6MDAu
MTogYm91bmQgMDAwMDowNTowMC4wIChvcHMgYW1kZ3B1X2RtX2F1ZGlvX2NvbXBvbmVudF9iaW5k
X29wcyBbYW1kZ3B1XSkKWyAgMTQ4LjUwODU0N10gW2RybV0ga2lxIHJpbmcgbWVjIDIgcGlwZSAx
IHEgMApbICAxNDguNTE0Njg3XSBrZmQga2ZkOiBhbWRncHU6IEFsbG9jYXRlZCAzOTY5MDU2IGJ5
dGVzIG9uIGdhcnQKWyAgMTQ4LjUxNDczMV0ga2ZkIGtmZDogYW1kZ3B1OiBUb3RhbCBudW1iZXIg
b2YgS0ZEIG5vZGVzIHRvIGJlIGNyZWF0ZWQ6IDEKWyAgMTQ4LjUxNTE3OF0gYW1kZ3B1OiBWaXJ0
dWFsIENSQVQgdGFibGUgY3JlYXRlZCBmb3IgR1BVClsgIDE0OC41MTcyMDVdIGFtZGdwdTogVG9w
b2xvZ3k6IEFkZCBkR1BVIG5vZGUgWzB4MTYzNjoweDEwMDJdClsgIDE0OC41MTcyMDhdIGtmZCBr
ZmQ6IGFtZGdwdTogYWRkZWQgZGV2aWNlIDEwMDI6MTYzNgpbICAxNDguNTE3NDAyXSBhbWRncHUg
MDAwMDowNTowMC4wOiBhbWRncHU6IFNFIDEsIFNIIHBlciBTRSAxLCBDVSBwZXIgU0ggOCwgYWN0
aXZlX2N1X251bWJlciA3ClsgIDE0OC41MTc0MDhdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdw
dTogcmluZyBnZnggdXNlcyBWTSBpbnYgZW5nIDAgb24gaHViIDAKWyAgMTQ4LjUxNzQwOV0gYW1k
Z3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4wLjAgdXNlcyBWTSBpbnYgZW5n
IDEgb24gaHViIDAKWyAgMTQ4LjUxNzQxMV0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBy
aW5nIGNvbXBfMS4xLjAgdXNlcyBWTSBpbnYgZW5nIDQgb24gaHViIDAKWyAgMTQ4LjUxNzQxMl0g
YW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4yLjAgdXNlcyBWTSBpbnYg
ZW5nIDUgb24gaHViIDAKWyAgMTQ4LjUxNzQxM10gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1
OiByaW5nIGNvbXBfMS4zLjAgdXNlcyBWTSBpbnYgZW5nIDYgb24gaHViIDAKWyAgMTQ4LjUxNzQx
NV0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4wLjEgdXNlcyBWTSBp
bnYgZW5nIDcgb24gaHViIDAKWyAgMTQ4LjUxNzQxNl0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1k
Z3B1OiByaW5nIGNvbXBfMS4xLjEgdXNlcyBWTSBpbnYgZW5nIDggb24gaHViIDAKWyAgMTQ4LjUx
NzQxN10gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4yLjEgdXNlcyBW
TSBpbnYgZW5nIDkgb24gaHViIDAKWyAgMTQ4LjUxNzQxOV0gYW1kZ3B1IDAwMDA6MDU6MDAuMDog
YW1kZ3B1OiByaW5nIGNvbXBfMS4zLjEgdXNlcyBWTSBpbnYgZW5nIDEwIG9uIGh1YiAwClsgIDE0
OC41MTc0MjBdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyBraXFfMC4yLjEuMCB1
c2VzIFZNIGludiBlbmcgMTEgb24gaHViIDAKWyAgMTQ4LjUxNzQyMV0gYW1kZ3B1IDAwMDA6MDU6
MDAuMDogYW1kZ3B1OiByaW5nIHNkbWEwIHVzZXMgVk0gaW52IGVuZyAwIG9uIGh1YiA4ClsgIDE0
OC41MTc0MjNdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyB2Y25fZGVjIHVzZXMg
Vk0gaW52IGVuZyAxIG9uIGh1YiA4ClsgIDE0OC41MTc0MjRdIGFtZGdwdSAwMDAwOjA1OjAwLjA6
IGFtZGdwdTogcmluZyB2Y25fZW5jMCB1c2VzIFZNIGludiBlbmcgNCBvbiBodWIgOApbICAxNDgu
NTE3NDI2XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IHJpbmcgdmNuX2VuYzEgdXNlcyBW
TSBpbnYgZW5nIDUgb24gaHViIDgKWyAgMTQ4LjUxNzQyN10gYW1kZ3B1IDAwMDA6MDU6MDAuMDog
YW1kZ3B1OiByaW5nIGpwZWdfZGVjIHVzZXMgVk0gaW52IGVuZyA2IG9uIGh1YiA4ClsgIDE0OC41
MjQwNDhdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogUnVudGltZSBQTSBub3QgYXZhaWxh
YmxlClsgIDE0OC41Mjc4NjhdIFtkcm1dIEluaXRpYWxpemVkIGFtZGdwdSAzLjU5LjAgZm9yIDAw
MDA6MDU6MDAuMCBvbiBtaW5vciAxClsgIDE0OC41MzcxNTBdIGZiY29uOiBhbWRncHVkcm1mYiAo
ZmIwKSBpcyBwcmltYXJ5IGRldmljZQpbICAxNDguNTM3Njk5XSBbZHJtXSBwcmVfdmFsaWRhdGVf
ZHNjOjE1NzggTVNUX0RTQyBkc2MgcHJlY29tcHV0ZSBpcyBub3QgbmVlZGVkClsgIDE0OC42NTgx
OThdIENvbnNvbGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmljZSAxNjB4
NDUKWyAgMTQ4LjY5NTY2NF0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogW2RybV0gZmIwOiBhbWRncHVk
cm1mYiBmcmFtZSBidWZmZXIgZGV2aWNlClsgIDE1Ni45NzIyNDBdIGFtZGdwdSAwMDAwOjAzOjAw
LjA6IGFtZGdwdTogRHVtcGluZyBJUCBTdGF0ZQpbICAxNTYuOTczNDY3XSBhbWRncHUgMDAwMDow
MzowMC4wOiBhbWRncHU6IER1bXBpbmcgSVAgU3RhdGUgQ29tcGxldGVkClsgIDE1Ni45NzM1MDVd
IHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBt
ZXNzYWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDE1Ni45NzM1NzRdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1U
cmFuc2FjdGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxNTYuOTczNTc3XSBhbWRncHUgMDAw
MDowMzowMC4wOiAgIGRldmljZSBbMTAwMjo3M2ZmXSBlcnJvciBzdGF0dXMvbWFzaz0wMDAwMjAw
MC8wMDAwMDAwMApbICAxNTYuOTczNTgwXSBhbWRncHUgMDAwMDowMzowMC4wOiAgICBbMTNdIE5v
bkZhdGFsRXJyICAgICAgICAgICAKWyAgMTU2Ljk3MzU5NF0gc25kX2hkYV9pbnRlbCAwMDAwOjAz
OjAwLjE6IFBDSWUgQnVzIEVycm9yOiBzZXZlcml0eT1Db3JyZWN0YWJsZSwgdHlwZT1UcmFuc2Fj
dGlvbiBMYXllciwgKFJlY2VpdmVyIElEKQpbICAxNTYuOTczNTk3XSBzbmRfaGRhX2ludGVsIDAw
MDA6MDM6MDAuMTogICBkZXZpY2UgWzEwMDI6YWIyOF0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIw
MDAvMDAwMDAwMDAKWyAgMTU2Ljk3MzU5OV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAg
IFsxM10gTm9uRmF0YWxFcnIgICAgICAgICAgIApbICAxNTYuOTczNjAwXSBzbmRfaGRhX2ludGVs
IDAwMDA6MDM6MDAuMTogQUVSOiAgIEVycm9yIG9mIHRoaXMgQWdlbnQgaXMgcmVwb3J0ZWQgZmly
c3QKWyAgMTU2Ljk3MzY5OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIHNkbWEx
IHRpbWVvdXQsIHNpZ25hbGVkIHNlcT0wLCBlbWl0dGVkIHNlcT0yClsgIDE1Ni45NzM3NTJdIHBj
aWVwb3J0IDAwMDA6MDA6MDEuMTogQUVSOiBNdWx0aXBsZSBDb3JyZWN0YWJsZSBlcnJvciBtZXNz
YWdlIHJlY2VpdmVkIGZyb20gMDAwMDowMzowMC4xClsgIDE1Ni45NzM3ODRdIGFtZGdwdSAwMDAw
OjAzOjAwLjA6IGFtZGdwdTogR1BVIHJlc2V0IGJlZ2luIQpbICAxNTYuOTczODc0XSBwY2llcG9y
dCAwMDAwOjAwOjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSBy
ZWNlaXZlZCBmcm9tIDAwMDA6MDM6MDAuMQpbICAxNTYuOTczOTM4XSBwY2llcG9ydCAwMDAwOjAw
OjAxLjE6IEFFUjogTXVsdGlwbGUgQ29ycmVjdGFibGUgZXJyb3IgbWVzc2FnZSByZWNlaXZlZCBm
cm9tIDAwMDA6MDM6MDAuMQpbICAxNTcuMTM5ODUzXSBhbWRncHUgMDAwMDowMzowMC4wOiBQQ0ll
IEJ1cyBFcnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIs
IChSZWNlaXZlciBJRCkKWyAgMTU3LjEzOTg1OV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICBkZXZp
Y2UgWzEwMDI6NzNmZl0gZXJyb3Igc3RhdHVzL21hc2s9MDAwMDIwMDAvMDAwMDAwMDAKWyAgMTU3
LjEzOTg2Ml0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogICAgWzEzXSBOb25GYXRhbEVyciAgICAgICAg
ICAgClsgIDE1Ny4xMzk4NzNdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiBQQ0llIEJ1cyBF
cnJvcjogc2V2ZXJpdHk9Q29ycmVjdGFibGUsIHR5cGU9VHJhbnNhY3Rpb24gTGF5ZXIsIChSZWNl
aXZlciBJRCkKWyAgMTU3LjEzOTg3NV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6ICAgZGV2
aWNlIFsxMDAyOmFiMjhdIGVycm9yIHN0YXR1cy9tYXNrPTAwMDAyMDAwLzAwMDAwMDAwClsgIDE1
Ny4xMzk4NzZdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4xOiAgICBbMTNdIE5vbkZhdGFsRXJy
ICAgICAgICAgICAKWyAgMTU3LjEzOTg3OF0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IEFF
UjogICBFcnJvciBvZiB0aGlzIEFnZW50IGlzIHJlcG9ydGVkIGZpcnN0Cg==

--_005_BL1PR12MB5849FC8077C7C6035F1D3E15E7242BL1PR12MB5849namp_
Content-Type: text/plain; name="rebar_lspci.txt"
Content-Description: rebar_lspci.txt
Content-Disposition: attachment; filename="rebar_lspci.txt"; size=19461;
	creation-date="Fri, 15 Nov 2024 02:40:13 GMT";
	modification-date="Fri, 15 Nov 2024 03:04:21 GMT"
Content-Transfer-Encoding: base64

YmVmb3JlIG1vZHByb2JlIGFtZGdwdQ0KDQpjanFAY2pxLWxvY2FsOn4kIHN1ZG8gbHNwY2kgLXZ2
diAtcyAwMzowMC4wDQowMzowMC4wIFZHQSBjb21wYXRpYmxlIGNvbnRyb2xsZXI6IEFkdmFuY2Vk
IE1pY3JvIERldmljZXMsIEluYy4gW0FNRC9BVEldIE5hdmkgMjMgW1JhZGVvbiBSWCA2NjAwLzY2
MDAgWFQvNjYwME1dIChyZXYgYzcpIChwcm9nLWlmIDAwIFtWR0EgY29udHJvbGxlcl0pDQogICAg
ICAgIERldmljZU5hbWU6IFJlYWx0ZWsgUlRMODExMUUgRXRoZXJuZXQgTE9NDQogICAgICAgIFN1
YnN5c3RlbTogQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBbQU1EL0FUSV0gTmF2aSAyMyBb
UmFkZW9uIFJYIDY2MDAvNjYwMCBYVC82NjAwTV0NCiAgICAgICAgQ29udHJvbDogSS9PLSBNZW0r
IEJ1c01hc3RlcisgU3BlY0N5Y2xlLSBNZW1XSU5WLSBWR0FTbm9vcC0gUGFyRXJyLSBTdGVwcGlu
Zy0gU0VSUi0gRmFzdEIyQi0gRGlzSU5UeC0NCiAgICAgICAgU3RhdHVzOiBDYXArIDY2TUh6LSBV
REYtIEZhc3RCMkItIFBhckVyci0gREVWU0VMPWZhc3QgPlRBYm9ydC0gPFRBYm9ydC0gPE1BYm9y
dC0gPlNFUlItIDxQRVJSLSBJTlR4LQ0KICAgICAgICBMYXRlbmN5OiAwLCBDYWNoZSBMaW5lIFNp
emU6IDY0IGJ5dGVzDQogICAgICAgIEludGVycnVwdDogcGluIEEgcm91dGVkIHRvIElSUSAyNTUN
CiAgICAgICAgUmVnaW9uIDA6IE1lbW9yeSBhdCBmYzkwMDAwMDAwICg2NC1iaXQsIHByZWZldGNo
YWJsZSkgW3NpemU9MjU2TV0NCiAgICAgICAgUmVnaW9uIDI6IE1lbW9yeSBhdCBmY2EwMDAwMDAw
ICg2NC1iaXQsIHByZWZldGNoYWJsZSkgW3NpemU9Mk1dDQogICAgICAgIFJlZ2lvbiA0OiBJL08g
cG9ydHMgYXQgMjAwMCBbZGlzYWJsZWRdIFtzaXplPTI1Nl0NCiAgICAgICAgUmVnaW9uIDU6IE1l
bW9yeSBhdCBkMDYwMDAwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6ZT0xTV0NCiAg
ICAgICAgRXhwYW5zaW9uIFJPTSBhdCBkMDcyMDAwMCBbZGlzYWJsZWRdIFtzaXplPTEyOEtdDQog
ICAgICAgIENhcGFiaWxpdGllczogWzQ4XSBWZW5kb3IgU3BlY2lmaWMgSW5mb3JtYXRpb246IExl
bj0wOCA8Pz4NCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNTBdIFBvd2VyIE1hbmFnZW1lbnQgdmVy
c2lvbiAzDQogICAgICAgICAgICAgICAgRmxhZ3M6IFBNRUNsay0gRFNJLSBEMS0gRDItIEF1eEN1
cnJlbnQ9MG1BIFBNRShEMC0sRDErLEQyKyxEM2hvdCssRDNjb2xkKykNCiAgICAgICAgICAgICAg
ICBTdGF0dXM6IEQwIE5vU29mdFJzdCsgUE1FLUVuYWJsZS0gRFNlbD0wIERTY2FsZT0wIFBNRS0N
CiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNjRdIEV4cHJlc3MgKHYyKSBMZWdhY3kgRW5kcG9pbnQs
IE1TSSAwMA0KICAgICAgICAgICAgICAgIERldkNhcDogTWF4UGF5bG9hZCAyNTYgYnl0ZXMsIFBo
YW50RnVuYyAwLCBMYXRlbmN5IEwwcyA8NHVzLCBMMSB1bmxpbWl0ZWQNCiAgICAgICAgICAgICAg
ICAgICAgICAgIEV4dFRhZysgQXR0bkJ0bi0gQXR0bkluZC0gUHdySW5kLSBSQkUrIEZMUmVzZXQt
DQogICAgICAgICAgICAgICAgRGV2Q3RsOiBDb3JyRXJyKyBOb25GYXRhbEVycisgRmF0YWxFcnIr
IFVuc3VwUmVxKw0KICAgICAgICAgICAgICAgICAgICAgICAgUmx4ZE9yZCsgRXh0VGFnKyBQaGFu
dEZ1bmMtIEF1eFB3ci0gTm9Tbm9vcCsNCiAgICAgICAgICAgICAgICAgICAgICAgIE1heFBheWxv
YWQgMjU2IGJ5dGVzLCBNYXhSZWFkUmVxIDUxMiBieXRlcw0KICAgICAgICAgICAgICAgIERldlN0
YTogQ29yckVycisgTm9uRmF0YWxFcnItIEZhdGFsRXJyLSBVbnN1cFJlcSsgQXV4UHdyLSBUcmFu
c1BlbmQtDQogICAgICAgICAgICAgICAgTG5rQ2FwOiBQb3J0ICMwLCBTcGVlZCAxNkdUL3MsIFdp
ZHRoIHgxNiwgQVNQTSBMMHMgTDEsIEV4aXQgTGF0ZW5jeSBMMHMgPDY0bnMsIEwxIDwxdXMNCiAg
ICAgICAgICAgICAgICAgICAgICAgIENsb2NrUE0rIFN1cnByaXNlLSBMTEFjdFJlcC0gQndOb3Qt
IEFTUE1PcHRDb21wKw0KICAgICAgICAgICAgICAgIExua0N0bDogQVNQTSBMMSBFbmFibGVkOyBS
Q0IgNjQgYnl0ZXMsIERpc2FibGVkLSBDb21tQ2xrKw0KICAgICAgICAgICAgICAgICAgICAgICAg
RXh0U3luY2gtIENsb2NrUE0tIEF1dFdpZERpcy0gQldJbnQtIEF1dEJXSW50LQ0KICAgICAgICAg
ICAgICAgIExua1N0YTogU3BlZWQgMTZHVC9zIChvayksIFdpZHRoIHgxNiAob2spDQogICAgICAg
ICAgICAgICAgICAgICAgICBUckVyci0gVHJhaW4tIFNsb3RDbGsrIERMQWN0aXZlLSBCV01nbXQt
IEFCV01nbXQtDQogICAgICAgICAgICAgICAgRGV2Q2FwMjogQ29tcGxldGlvbiBUaW1lb3V0OiBS
YW5nZSBBQkNELCBUaW1lb3V0RGlzKyBOUk9QclByUC0gTFRSKw0KICAgICAgICAgICAgICAgICAg
ICAgICAgIDEwQml0VGFnQ29tcCsgMTBCaXRUYWdSZXErIE9CRkYgTm90IFN1cHBvcnRlZCwgRXh0
Rm10KyBFRVRMUFByZWZpeCssIE1heEVFVExQUHJlZml4ZXMgMQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgIEVtZXJnZW5jeVBvd2VyUmVkdWN0aW9uIE5vdCBTdXBwb3J0ZWQsIEVtZXJnZW5jeVBv
d2VyUmVkdWN0aW9uSW5pdC0NCiAgICAgICAgICAgICAgICAgICAgICAgICBGUlMtDQogICAgICAg
ICAgICAgICAgICAgICAgICAgQXRvbWljT3BzQ2FwOiAzMmJpdCsgNjRiaXQrIDEyOGJpdENBUy0N
CiAgICAgICAgICAgICAgICBEZXZDdGwyOiBDb21wbGV0aW9uIFRpbWVvdXQ6IDUwdXMgdG8gNTBt
cywgVGltZW91dERpcy0gTFRSKyBPQkZGIERpc2FibGVkLA0KICAgICAgICAgICAgICAgICAgICAg
ICAgIEF0b21pY09wc0N0bDogUmVxRW4tDQogICAgICAgICAgICAgICAgTG5rQ2FwMjogU3VwcG9y
dGVkIExpbmsgU3BlZWRzOiAyLjUtMTZHVC9zLCBDcm9zc2xpbmstIFJldGltZXIrIDJSZXRpbWVy
cysgRFJTLQ0KICAgICAgICAgICAgICAgIExua0N0bDI6IFRhcmdldCBMaW5rIFNwZWVkOiAxNkdU
L3MsIEVudGVyQ29tcGxpYW5jZS0gU3BlZWREaXMtDQogICAgICAgICAgICAgICAgICAgICAgICAg
VHJhbnNtaXQgTWFyZ2luOiBOb3JtYWwgT3BlcmF0aW5nIFJhbmdlLCBFbnRlck1vZGlmaWVkQ29t
cGxpYW5jZS0gQ29tcGxpYW5jZVNPUy0NCiAgICAgICAgICAgICAgICAgICAgICAgICBDb21wbGlh
bmNlIERlLWVtcGhhc2lzOiAtNmRCDQogICAgICAgICAgICAgICAgTG5rU3RhMjogQ3VycmVudCBE
ZS1lbXBoYXNpcyBMZXZlbDogLTMuNWRCLCBFcXVhbGl6YXRpb25Db21wbGV0ZSsgRXF1YWxpemF0
aW9uUGhhc2UxKw0KICAgICAgICAgICAgICAgICAgICAgICAgIEVxdWFsaXphdGlvblBoYXNlMisg
RXF1YWxpemF0aW9uUGhhc2UzKyBMaW5rRXF1YWxpemF0aW9uUmVxdWVzdC0NCiAgICAgICAgICAg
ICAgICAgICAgICAgICBSZXRpbWVyLSAyUmV0aW1lcnMtIENyb3NzbGlua1JlczogdW5zdXBwb3J0
ZWQNCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbYTBdIE1TSTogRW5hYmxlLSBDb3VudD0xLzEgTWFz
a2FibGUtIDY0Yml0Kw0KICAgICAgICAgICAgICAgIEFkZHJlc3M6IDAwMDAwMDAwMDAwMDAwMDAg
IERhdGE6IDAwMDANCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMTAwIHYxXSBWZW5kb3IgU3BlY2lm
aWMgSW5mb3JtYXRpb246IElEPTAwMDEgUmV2PTEgTGVuPTAxMCA8Pz4NCiAgICAgICAgQ2FwYWJp
bGl0aWVzOiBbMTUwIHYyXSBBZHZhbmNlZCBFcnJvciBSZXBvcnRpbmcNCiAgICAgICAgICAgICAg
ICBVRVN0YTogIERMUC0gU0RFUy0gVExQLSBGQ1AtIENtcGx0VE8tIENtcGx0QWJydC0gVW54Q21w
bHQtIFJ4T0YtIE1hbGZUTFAtIEVDUkMtIFVuc3VwUmVxKyBBQ1NWaW9sLQ0KICAgICAgICAgICAg
ICAgIFVFTXNrOiAgRExQLSBTREVTLSBUTFAtIEZDUC0gQ21wbHRUTy0gQ21wbHRBYnJ0LSBVbnhD
bXBsdC0gUnhPRi0gTWFsZlRMUC0gRUNSQy0gVW5zdXBSZXErIEFDU1Zpb2wtDQogICAgICAgICAg
ICAgICAgVUVTdnJ0OiBETFArIFNERVMrIFRMUC0gRkNQKyBDbXBsdFRPKyBDbXBsdEFicnQtIFVu
eENtcGx0KyBSeE9GKyBNYWxmVExQKyBFQ1JDKyBVbnN1cFJlcS0gQUNTVmlvbC0NCiAgICAgICAg
ICAgICAgICBDRVN0YTogIFJ4RXJyLSBCYWRUTFAtIEJhZERMTFAtIFJvbGxvdmVyLSBUaW1lb3V0
LSBBZHZOb25GYXRhbEVycisNCiAgICAgICAgICAgICAgICBDRU1zazogIFJ4RXJyLSBCYWRUTFAt
IEJhZERMTFAtIFJvbGxvdmVyLSBUaW1lb3V0LSBBZHZOb25GYXRhbEVyci0NCiAgICAgICAgICAg
ICAgICBBRVJDYXA6IEZpcnN0IEVycm9yIFBvaW50ZXI6IDAwLCBFQ1JDR2VuQ2FwKyBFQ1JDR2Vu
RW4rIEVDUkNDaGtDYXArIEVDUkNDaGtFbisNCiAgICAgICAgICAgICAgICAgICAgICAgIE11bHRI
ZHJSZWNDYXAtIE11bHRIZHJSZWNFbi0gVExQUGZ4UHJlcy0gSGRyTG9nQ2FwLQ0KICAgICAgICAg
ICAgICAgIEhlYWRlckxvZzogMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDANCiAg
ICAgICAgQ2FwYWJpbGl0aWVzOiBbMjAwIHYxXSBQaHlzaWNhbCBSZXNpemFibGUgQkFSDQogICAg
ICAgICAgICAgICAgQkFSIDA6IGN1cnJlbnQgc2l6ZTogMjU2TUIsIHN1cHBvcnRlZDogMjU2TUIg
NTEyTUIgMUdCIDJHQiA0R0IgOEdCDQogICAgICAgICAgICAgICAgQkFSIDI6IGN1cnJlbnQgc2l6
ZTogMk1CLCBzdXBwb3J0ZWQ6IDJNQiA0TUIgOE1CIDE2TUIgMzJNQiA2NE1CIDEyOE1CIDI1Nk1C
DQogICAgICAgIENhcGFiaWxpdGllczogWzI0MCB2MV0gUG93ZXIgQnVkZ2V0aW5nIDw/Pg0KICAg
ICAgICBDYXBhYmlsaXRpZXM6IFsyNzAgdjFdIFNlY29uZGFyeSBQQ0kgRXhwcmVzcw0KICAgICAg
ICAgICAgICAgIExua0N0bDM6IExua0VxdUludHJydXB0RW4tIFBlcmZvcm1FcXUtDQogICAgICAg
ICAgICAgICAgTGFuZUVyclN0YXQ6IDANCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMmEwIHYxXSBB
Y2Nlc3MgQ29udHJvbCBTZXJ2aWNlcw0KICAgICAgICAgICAgICAgIEFDU0NhcDogU3JjVmFsaWQt
IFRyYW5zQmxrLSBSZXFSZWRpci0gQ21wbHRSZWRpci0gVXBzdHJlYW1Gd2QtIEVncmVzc0N0cmwt
IERpcmVjdFRyYW5zLQ0KICAgICAgICAgICAgICAgIEFDU0N0bDogU3JjVmFsaWQtIFRyYW5zQmxr
LSBSZXFSZWRpci0gQ21wbHRSZWRpci0gVXBzdHJlYW1Gd2QtIEVncmVzc0N0cmwtIERpcmVjdFRy
YW5zLQ0KICAgICAgICBDYXBhYmlsaXRpZXM6IFsyZDAgdjFdIFByb2Nlc3MgQWRkcmVzcyBTcGFj
ZSBJRCAoUEFTSUQpDQogICAgICAgICAgICAgICAgUEFTSURDYXA6IEV4ZWMrIFByaXYrLCBNYXgg
UEFTSUQgV2lkdGg6IDEwDQogICAgICAgICAgICAgICAgUEFTSURDdGw6IEVuYWJsZS0gRXhlYy0g
UHJpdi0NCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMzIwIHYxXSBMYXRlbmN5IFRvbGVyYW5jZSBS
ZXBvcnRpbmcNCiAgICAgICAgICAgICAgICBNYXggc25vb3AgbGF0ZW5jeTogMTA0ODU3Nm5zDQog
ICAgICAgICAgICAgICAgTWF4IG5vIHNub29wIGxhdGVuY3k6IDEwNDg1NzZucw0KICAgICAgICBD
YXBhYmlsaXRpZXM6IFs0MTAgdjFdIFBoeXNpY2FsIExheWVyIDE2LjAgR1QvcyA8Pz4NCiAgICAg
ICAgQ2FwYWJpbGl0aWVzOiBbNDQwIHYxXSBMYW5lIE1hcmdpbmluZyBhdCB0aGUgUmVjZWl2ZXIg
PD8+DQogICAgICAgIEtlcm5lbCBtb2R1bGVzOiBhbWRncHUNCg0KDQpjanFAY2pxLWxvY2FsOn4k
IHN1ZG8gbHNwY2kgLXZ2diAtcyAwMzowMC4xDQowMzowMC4xIEF1ZGlvIGRldmljZTogQWR2YW5j
ZWQgTWljcm8gRGV2aWNlcywgSW5jLiBbQU1EL0FUSV0gTmF2aSAyMSBIRE1JIEF1ZGlvIFtSYWRl
b24gUlggNjgwMC82ODAwIFhUIC8gNjkwMCBYVF0NCiAgICAgICAgU3Vic3lzdGVtOiBBZHZhbmNl
ZCBNaWNybyBEZXZpY2VzLCBJbmMuIFtBTUQvQVRJXSBOYXZpIDIxIEhETUkgQXVkaW8gW1JhZGVv
biBSWCA2ODAwLzY4MDAgWFQgLyA2OTAwIFhUXQ0KICAgICAgICBDb250cm9sOiBJL08rIE1lbSsg
QnVzTWFzdGVyKyBTcGVjQ3ljbGUtIE1lbVdJTlYtIFZHQVNub29wLSBQYXJFcnItIFN0ZXBwaW5n
LSBTRVJSLSBGYXN0QjJCLSBEaXNJTlR4Kw0KICAgICAgICBTdGF0dXM6IENhcCsgNjZNSHotIFVE
Ri0gRmFzdEIyQi0gUGFyRXJyLSBERVZTRUw9ZmFzdCA+VEFib3J0LSA8VEFib3J0LSA8TUFib3J0
LSA+U0VSUi0gPFBFUlItIElOVHgtDQogICAgICAgIExhdGVuY3k6IDAsIENhY2hlIExpbmUgU2l6
ZTogNjQgYnl0ZXMNCiAgICAgICAgSW50ZXJydXB0OiBwaW4gQiByb3V0ZWQgdG8gSVJRIDEzNA0K
ICAgICAgICBSZWdpb24gMDogTWVtb3J5IGF0IGQwNzAwMDAwICgzMi1iaXQsIG5vbi1wcmVmZXRj
aGFibGUpIFtzaXplPTE2S10NCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNDhdIFZlbmRvciBTcGVj
aWZpYyBJbmZvcm1hdGlvbjogTGVuPTA4IDw/Pg0KICAgICAgICBDYXBhYmlsaXRpZXM6IFs1MF0g
UG93ZXIgTWFuYWdlbWVudCB2ZXJzaW9uIDMNCiAgICAgICAgICAgICAgICBGbGFnczogUE1FQ2xr
LSBEU0ktIEQxLSBEMi0gQXV4Q3VycmVudD0wbUEgUE1FKEQwLSxEMSssRDIrLEQzaG90KyxEM2Nv
bGQrKQ0KICAgICAgICAgICAgICAgIFN0YXR1czogRDMgTm9Tb2Z0UnN0KyBQTUUtRW5hYmxlKyBE
U2VsPTAgRFNjYWxlPTAgUE1FLQ0KICAgICAgICBDYXBhYmlsaXRpZXM6IFs2NF0gRXhwcmVzcyAo
djIpIExlZ2FjeSBFbmRwb2ludCwgTVNJIDAwDQogICAgICAgICAgICAgICAgRGV2Q2FwOiBNYXhQ
YXlsb2FkIDI1NiBieXRlcywgUGhhbnRGdW5jIDAsIExhdGVuY3kgTDBzIDw0dXMsIEwxIHVubGlt
aXRlZA0KICAgICAgICAgICAgICAgICAgICAgICAgRXh0VGFnKyBBdHRuQnRuLSBBdHRuSW5kLSBQ
d3JJbmQtIFJCRSsgRkxSZXNldC0NCiAgICAgICAgICAgICAgICBEZXZDdGw6IENvcnJFcnIrIE5v
bkZhdGFsRXJyKyBGYXRhbEVycisgVW5zdXBSZXErDQogICAgICAgICAgICAgICAgICAgICAgICBS
bHhkT3JkKyBFeHRUYWcrIFBoYW50RnVuYy0gQXV4UHdyLSBOb1Nub29wKw0KICAgICAgICAgICAg
ICAgICAgICAgICAgTWF4UGF5bG9hZCAyNTYgYnl0ZXMsIE1heFJlYWRSZXEgNTEyIGJ5dGVzDQog
ICAgICAgICAgICAgICAgRGV2U3RhOiBDb3JyRXJyKyBOb25GYXRhbEVyci0gRmF0YWxFcnItIFVu
c3VwUmVxKyBBdXhQd3ItIFRyYW5zUGVuZC0NCiAgICAgICAgICAgICAgICBMbmtDYXA6IFBvcnQg
IzAsIFNwZWVkIDE2R1QvcywgV2lkdGggeDE2LCBBU1BNIEwwcyBMMSwgRXhpdCBMYXRlbmN5IEww
cyA8NjRucywgTDEgPDF1cw0KICAgICAgICAgICAgICAgICAgICAgICAgQ2xvY2tQTSsgU3VycHJp
c2UtIExMQWN0UmVwLSBCd05vdC0gQVNQTU9wdENvbXArDQogICAgICAgICAgICAgICAgTG5rQ3Rs
OiBBU1BNIEwxIEVuYWJsZWQ7IFJDQiA2NCBieXRlcywgRGlzYWJsZWQtIENvbW1DbGsrDQogICAg
ICAgICAgICAgICAgICAgICAgICBFeHRTeW5jaC0gQ2xvY2tQTS0gQXV0V2lkRGlzLSBCV0ludC0g
QXV0QldJbnQtDQogICAgICAgICAgICAgICAgTG5rU3RhOiBTcGVlZCAxNkdUL3MgKG9rKSwgV2lk
dGggeDE2IChvaykNCiAgICAgICAgICAgICAgICAgICAgICAgIFRyRXJyLSBUcmFpbi0gU2xvdENs
aysgRExBY3RpdmUtIEJXTWdtdC0gQUJXTWdtdC0NCiAgICAgICAgICAgICAgICBEZXZDYXAyOiBD
b21wbGV0aW9uIFRpbWVvdXQ6IFJhbmdlIEFCQ0QsIFRpbWVvdXREaXMrIE5ST1ByUHJQLSBMVFIr
DQogICAgICAgICAgICAgICAgICAgICAgICAgMTBCaXRUYWdDb21wKyAxMEJpdFRhZ1JlcSsgT0JG
RiBOb3QgU3VwcG9ydGVkLCBFeHRGbXQrIEVFVExQUHJlZml4KywgTWF4RUVUTFBQcmVmaXhlcyAx
DQogICAgICAgICAgICAgICAgICAgICAgICAgRW1lcmdlbmN5UG93ZXJSZWR1Y3Rpb24gTm90IFN1
cHBvcnRlZCwgRW1lcmdlbmN5UG93ZXJSZWR1Y3Rpb25Jbml0LQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgIEZSUy0NCiAgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcHNDYXA6IDMyYml0
LSA2NGJpdC0gMTI4Yml0Q0FTLQ0KICAgICAgICAgICAgICAgIERldkN0bDI6IENvbXBsZXRpb24g
VGltZW91dDogNTB1cyB0byA1MG1zLCBUaW1lb3V0RGlzLSBMVFItIE9CRkYgRGlzYWJsZWQsDQog
ICAgICAgICAgICAgICAgICAgICAgICAgQXRvbWljT3BzQ3RsOiBSZXFFbi0NCiAgICAgICAgICAg
ICAgICBMbmtTdGEyOiBDdXJyZW50IERlLWVtcGhhc2lzIExldmVsOiAtMy41ZEIsIEVxdWFsaXph
dGlvbkNvbXBsZXRlLSBFcXVhbGl6YXRpb25QaGFzZTEtDQogICAgICAgICAgICAgICAgICAgICAg
ICAgRXF1YWxpemF0aW9uUGhhc2UyLSBFcXVhbGl6YXRpb25QaGFzZTMtIExpbmtFcXVhbGl6YXRp
b25SZXF1ZXN0LQ0KICAgICAgICAgICAgICAgICAgICAgICAgIFJldGltZXItIDJSZXRpbWVycy0g
Q3Jvc3NsaW5rUmVzOiB1bnN1cHBvcnRlZA0KICAgICAgICBDYXBhYmlsaXRpZXM6IFthMF0gTVNJ
OiBFbmFibGUrIENvdW50PTEvMSBNYXNrYWJsZS0gNjRiaXQrDQogICAgICAgICAgICAgICAgQWRk
cmVzczogMDAwMDAwMDBmZWUwMDAwMCAgRGF0YTogMDAyMg0KICAgICAgICBDYXBhYmlsaXRpZXM6
IFsxMDAgdjFdIFZlbmRvciBTcGVjaWZpYyBJbmZvcm1hdGlvbjogSUQ9MDAwMSBSZXY9MSBMZW49
MDEwIDw/Pg0KICAgICAgICBDYXBhYmlsaXRpZXM6IFsxNTAgdjJdIEFkdmFuY2VkIEVycm9yIFJl
cG9ydGluZw0KICAgICAgICAgICAgICAgIFVFU3RhOiAgRExQLSBTREVTLSBUTFAtIEZDUC0gQ21w
bHRUTy0gQ21wbHRBYnJ0LSBVbnhDbXBsdC0gUnhPRi0gTWFsZlRMUC0gRUNSQy0gVW5zdXBSZXEt
IEFDU1Zpb2wtDQogICAgICAgICAgICAgICAgVUVNc2s6ICBETFAtIFNERVMtIFRMUC0gRkNQLSBD
bXBsdFRPLSBDbXBsdEFicnQtIFVueENtcGx0LSBSeE9GLSBNYWxmVExQLSBFQ1JDLSBVbnN1cFJl
cSsgQUNTVmlvbC0NCiAgICAgICAgICAgICAgICBVRVN2cnQ6IERMUCsgU0RFUysgVExQLSBGQ1Ar
IENtcGx0VE8rIENtcGx0QWJydC0gVW54Q21wbHQrIFJ4T0YrIE1hbGZUTFArIEVDUkMrIFVuc3Vw
UmVxLSBBQ1NWaW9sLQ0KICAgICAgICAgICAgICAgIENFU3RhOiAgUnhFcnItIEJhZFRMUC0gQmFk
RExMUC0gUm9sbG92ZXItIFRpbWVvdXQtIEFkdk5vbkZhdGFsRXJyLQ0KICAgICAgICAgICAgICAg
IENFTXNrOiAgUnhFcnItIEJhZFRMUC0gQmFkRExMUC0gUm9sbG92ZXItIFRpbWVvdXQtIEFkdk5v
bkZhdGFsRXJyLQ0KICAgICAgICAgICAgICAgIEFFUkNhcDogRmlyc3QgRXJyb3IgUG9pbnRlcjog
MDAsIEVDUkNHZW5DYXArIEVDUkNHZW5FbisgRUNSQ0Noa0NhcCsgRUNSQ0Noa0VuKw0KICAgICAg
ICAgICAgICAgICAgICAgICAgTXVsdEhkclJlY0NhcC0gTXVsdEhkclJlY0VuLSBUTFBQZnhQcmVz
LSBIZHJMb2dDYXAtDQogICAgICAgICAgICAgICAgSGVhZGVyTG9nOiAwMDAwMDAwMCAwMDAwMDAw
MCAwMDAwMDAwMCAwMDAwMDAwMA0KICAgICAgICBDYXBhYmlsaXRpZXM6IFsyYTAgdjFdIEFjY2Vz
cyBDb250cm9sIFNlcnZpY2VzDQogICAgICAgICAgICAgICAgQUNTQ2FwOiBTcmNWYWxpZC0gVHJh
bnNCbGstIFJlcVJlZGlyLSBDbXBsdFJlZGlyLSBVcHN0cmVhbUZ3ZC0gRWdyZXNzQ3RybC0gRGly
ZWN0VHJhbnMtDQogICAgICAgICAgICAgICAgQUNTQ3RsOiBTcmNWYWxpZC0gVHJhbnNCbGstIFJl
cVJlZGlyLSBDbXBsdFJlZGlyLSBVcHN0cmVhbUZ3ZC0gRWdyZXNzQ3RybC0gRGlyZWN0VHJhbnMt
DQogICAgICAgIEtlcm5lbCBkcml2ZXIgaW4gdXNlOiBzbmRfaGRhX2ludGVsDQogICAgICAgIEtl
cm5lbCBtb2R1bGVzOiBzbmRfaGRhX2ludGVsDQoNCg0KDQoNCg0KYWZ0ZXIgbW9kcHJvYmUgYW1k
Z3B1DQoNCmNqcUBjanEtbG9jYWw6fiQgc3VkbyBsc3BjaSAtdnZ2IC1zIDAzOjAwLjANCjAzOjAw
LjAgVkdBIGNvbXBhdGlibGUgY29udHJvbGxlcjogQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j
LiBbQU1EL0FUSV0gTmF2aSAyMyBbUmFkZW9uIFJYIDY2MDAvNjYwMCBYVC82NjAwTV0gKHJldiBj
NykgKHByb2ctaWYgMDAgW1ZHQSBjb250cm9sbGVyXSkNCiAgICAgICAgRGV2aWNlTmFtZTogUmVh
bHRlayBSVEw4MTExRSBFdGhlcm5ldCBMT00NCiAgICAgICAgU3Vic3lzdGVtOiBBZHZhbmNlZCBN
aWNybyBEZXZpY2VzLCBJbmMuIFtBTUQvQVRJXSBOYXZpIDIzIFtSYWRlb24gUlggNjYwMC82NjAw
IFhULzY2MDBNXQ0KICAgICAgICBDb250cm9sOiBJL08rIE1lbSsgQnVzTWFzdGVyLSBTcGVjQ3lj
bGUtIE1lbVdJTlYtIFZHQVNub29wLSBQYXJFcnItIFN0ZXBwaW5nLSBTRVJSLSBGYXN0QjJCLSBE
aXNJTlR4LQ0KICAgICAgICBTdGF0dXM6IENhcCsgNjZNSHotIFVERi0gRmFzdEIyQi0gUGFyRXJy
LSBERVZTRUw9ZmFzdCA+VEFib3J0LSA8VEFib3J0LSA8TUFib3J0LSA+U0VSUi0gPFBFUlItIElO
VHgtDQogICAgICAgIEludGVycnVwdDogcGluIEEgcm91dGVkIHRvIElSUSAxNDANCiAgICAgICAg
UmVnaW9uIDA6IE1lbW9yeSBhdCBhMDAwMDAwMDAgKDY0LWJpdCwgcHJlZmV0Y2hhYmxlKSBbdmly
dHVhbF0gW3NpemU9OEddDQogICAgICAgIFJlZ2lvbiAyOiBNZW1vcnkgYXQgOTAwMDAwMDAwICg2
NC1iaXQsIHByZWZldGNoYWJsZSkgW3ZpcnR1YWxdIFtzaXplPTJNXQ0KICAgICAgICBSZWdpb24g
NDogSS9PIHBvcnRzIGF0IDIwMDAgW3ZpcnR1YWxdIFtzaXplPTI1Nl0NCiAgICAgICAgUmVnaW9u
IDU6IE1lbW9yeSBhdCBkMDYwMDAwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxlKSBbdmlydHVh
bF0gW3NpemU9MU1dDQogICAgICAgIEV4cGFuc2lvbiBST00gYXQgZDA3MjAwMDAgW2Rpc2FibGVk
XSBbc2l6ZT0xMjhLXQ0KICAgICAgICBDYXBhYmlsaXRpZXM6IFs0OF0gVmVuZG9yIFNwZWNpZmlj
IEluZm9ybWF0aW9uOiBMZW49MDggPD8+DQogICAgICAgIENhcGFiaWxpdGllczogWzUwXSBQb3dl
ciBNYW5hZ2VtZW50IHZlcnNpb24gMw0KICAgICAgICAgICAgICAgIEZsYWdzOiBQTUVDbGstIERT
SS0gRDEtIEQyLSBBdXhDdXJyZW50PTBtQSBQTUUoRDAtLEQxKyxEMissRDNob3QrLEQzY29sZCsp
DQogICAgICAgICAgICAgICAgU3RhdHVzOiBEMCBOb1NvZnRSc3QrIFBNRS1FbmFibGUtIERTZWw9
MCBEU2NhbGU9MCBQTUUtDQogICAgICAgIENhcGFiaWxpdGllczogWzY0XSBFeHByZXNzICh2Mikg
TGVnYWN5IEVuZHBvaW50LCBNU0kgMDANCiAgICAgICAgICAgICAgICBEZXZDYXA6IE1heFBheWxv
YWQgMjU2IGJ5dGVzLCBQaGFudEZ1bmMgMCwgTGF0ZW5jeSBMMHMgPDR1cywgTDEgdW5saW1pdGVk
DQogICAgICAgICAgICAgICAgICAgICAgICBFeHRUYWcrIEF0dG5CdG4tIEF0dG5JbmQtIFB3cklu
ZC0gUkJFKyBGTFJlc2V0LQ0KICAgICAgICAgICAgICAgIERldkN0bDogQ29yckVycisgTm9uRmF0
YWxFcnIrIEZhdGFsRXJyKyBVbnN1cFJlcSsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJseGRP
cmQrIEV4dFRhZysgUGhhbnRGdW5jLSBBdXhQd3ItIE5vU25vb3ArDQogICAgICAgICAgICAgICAg
ICAgICAgICBNYXhQYXlsb2FkIDI1NiBieXRlcywgTWF4UmVhZFJlcSA1MTIgYnl0ZXMNCiAgICAg
ICAgICAgICAgICBEZXZTdGE6IENvcnJFcnItIE5vbkZhdGFsRXJyLSBGYXRhbEVyci0gVW5zdXBS
ZXEtIEF1eFB3ci0gVHJhbnNQZW5kLQ0KICAgICAgICAgICAgICAgIExua0NhcDogUG9ydCAjMCwg
U3BlZWQgMTZHVC9zLCBXaWR0aCB4MTYsIEFTUE0gTDBzIEwxLCBFeGl0IExhdGVuY3kgTDBzIDw2
NG5zLCBMMSA8MXVzDQogICAgICAgICAgICAgICAgICAgICAgICBDbG9ja1BNKyBTdXJwcmlzZS0g
TExBY3RSZXAtIEJ3Tm90LSBBU1BNT3B0Q29tcCsNCiAgICAgICAgICAgICAgICBMbmtDdGw6IEFT
UE0gTDEgRW5hYmxlZDsgUkNCIDY0IGJ5dGVzLCBEaXNhYmxlZC0gQ29tbUNsaysNCiAgICAgICAg
ICAgICAgICAgICAgICAgIEV4dFN5bmNoLSBDbG9ja1BNLSBBdXRXaWREaXMtIEJXSW50LSBBdXRC
V0ludC0NCiAgICAgICAgICAgICAgICBMbmtTdGE6IFNwZWVkIDE2R1QvcyAob2spLCBXaWR0aCB4
MTYgKG9rKQ0KICAgICAgICAgICAgICAgICAgICAgICAgVHJFcnItIFRyYWluLSBTbG90Q2xrKyBE
TEFjdGl2ZS0gQldNZ210LSBBQldNZ210LQ0KICAgICAgICAgICAgICAgIERldkNhcDI6IENvbXBs
ZXRpb24gVGltZW91dDogUmFuZ2UgQUJDRCwgVGltZW91dERpcysgTlJPUHJQclAtIExUUisNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAxMEJpdFRhZ0NvbXArIDEwQml0VGFnUmVxKyBPQkZGIE5v
dCBTdXBwb3J0ZWQsIEV4dEZtdCsgRUVUTFBQcmVmaXgrLCBNYXhFRVRMUFByZWZpeGVzIDENCiAg
ICAgICAgICAgICAgICAgICAgICAgICBFbWVyZ2VuY3lQb3dlclJlZHVjdGlvbiBOb3QgU3VwcG9y
dGVkLCBFbWVyZ2VuY3lQb3dlclJlZHVjdGlvbkluaXQtDQogICAgICAgICAgICAgICAgICAgICAg
ICAgRlJTLQ0KICAgICAgICAgICAgICAgICAgICAgICAgIEF0b21pY09wc0NhcDogMzJiaXQrIDY0
Yml0KyAxMjhiaXRDQVMtDQogICAgICAgICAgICAgICAgRGV2Q3RsMjogQ29tcGxldGlvbiBUaW1l
b3V0OiA1MHVzIHRvIDUwbXMsIFRpbWVvdXREaXMtIExUUisgT0JGRiBEaXNhYmxlZCwNCiAgICAg
ICAgICAgICAgICAgICAgICAgICBBdG9taWNPcHNDdGw6IFJlcUVuKw0KICAgICAgICAgICAgICAg
IExua0NhcDI6IFN1cHBvcnRlZCBMaW5rIFNwZWVkczogMi41LTE2R1QvcywgQ3Jvc3NsaW5rLSBS
ZXRpbWVyKyAyUmV0aW1lcnMrIERSUy0NCiAgICAgICAgICAgICAgICBMbmtDdGwyOiBUYXJnZXQg
TGluayBTcGVlZDogMTZHVC9zLCBFbnRlckNvbXBsaWFuY2UtIFNwZWVkRGlzLQ0KICAgICAgICAg
ICAgICAgICAgICAgICAgIFRyYW5zbWl0IE1hcmdpbjogTm9ybWFsIE9wZXJhdGluZyBSYW5nZSwg
RW50ZXJNb2RpZmllZENvbXBsaWFuY2UtIENvbXBsaWFuY2VTT1MtDQogICAgICAgICAgICAgICAg
ICAgICAgICAgQ29tcGxpYW5jZSBEZS1lbXBoYXNpczogLTZkQg0KICAgICAgICAgICAgICAgIExu
a1N0YTI6IEN1cnJlbnQgRGUtZW1waGFzaXMgTGV2ZWw6IC0zLjVkQiwgRXF1YWxpemF0aW9uQ29t
cGxldGUrIEVxdWFsaXphdGlvblBoYXNlMSsNCiAgICAgICAgICAgICAgICAgICAgICAgICBFcXVh
bGl6YXRpb25QaGFzZTIrIEVxdWFsaXphdGlvblBoYXNlMysgTGlua0VxdWFsaXphdGlvblJlcXVl
c3QtDQogICAgICAgICAgICAgICAgICAgICAgICAgUmV0aW1lci0gMlJldGltZXJzLSBDcm9zc2xp
bmtSZXM6IHVuc3VwcG9ydGVkDQogICAgICAgIENhcGFiaWxpdGllczogW2EwXSBNU0k6IEVuYWJs
ZSsgQ291bnQ9MS8xIE1hc2thYmxlLSA2NGJpdCsNCiAgICAgICAgICAgICAgICBBZGRyZXNzOiAw
MDAwMDAwMGZlZTBjMDAwICBEYXRhOiAwMDIwDQogICAgICAgIENhcGFiaWxpdGllczogWzEwMCB2
MV0gVmVuZG9yIFNwZWNpZmljIEluZm9ybWF0aW9uOiBJRD0wMDAxIFJldj0xIExlbj0wMTAgPD8+
DQogICAgICAgIENhcGFiaWxpdGllczogWzE1MCB2Ml0gQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5n
DQogICAgICAgICAgICAgICAgVUVTdGE6ICBETFAtIFNERVMtIFRMUC0gRkNQLSBDbXBsdFRPLSBD
bXBsdEFicnQtIFVueENtcGx0LSBSeE9GLSBNYWxmVExQLSBFQ1JDLSBVbnN1cFJlcSsgQUNTVmlv
bC0NCiAgICAgICAgICAgICAgICBVRU1zazogIERMUC0gU0RFUy0gVExQLSBGQ1AtIENtcGx0VE8t
IENtcGx0QWJydC0gVW54Q21wbHQtIFJ4T0YtIE1hbGZUTFAtIEVDUkMtIFVuc3VwUmVxKyBBQ1NW
aW9sLQ0KICAgICAgICAgICAgICAgIFVFU3ZydDogRExQKyBTREVTKyBUTFAtIEZDUCsgQ21wbHRU
TysgQ21wbHRBYnJ0LSBVbnhDbXBsdCsgUnhPRisgTWFsZlRMUCsgRUNSQysgVW5zdXBSZXEtIEFD
U1Zpb2wtDQogICAgICAgICAgICAgICAgQ0VTdGE6ICBSeEVyci0gQmFkVExQLSBCYWRETExQLSBS
b2xsb3Zlci0gVGltZW91dC0gQWR2Tm9uRmF0YWxFcnItDQogICAgICAgICAgICAgICAgQ0VNc2s6
ICBSeEVyci0gQmFkVExQLSBCYWRETExQLSBSb2xsb3Zlci0gVGltZW91dC0gQWR2Tm9uRmF0YWxF
cnItDQogICAgICAgICAgICAgICAgQUVSQ2FwOiBGaXJzdCBFcnJvciBQb2ludGVyOiAwMCwgRUNS
Q0dlbkNhcCsgRUNSQ0dlbkVuKyBFQ1JDQ2hrQ2FwKyBFQ1JDQ2hrRW4rDQogICAgICAgICAgICAg
ICAgICAgICAgICBNdWx0SGRyUmVjQ2FwLSBNdWx0SGRyUmVjRW4tIFRMUFBmeFByZXMtIEhkckxv
Z0NhcC0NCiAgICAgICAgICAgICAgICBIZWFkZXJMb2c6IDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw
MDAwIDAwMDAwMDAwDQogICAgICAgIENhcGFiaWxpdGllczogWzIwMCB2MV0gUGh5c2ljYWwgUmVz
aXphYmxlIEJBUg0KICAgICAgICAgICAgICAgIEJBUiAwOiBjdXJyZW50IHNpemU6IDhHQiwgc3Vw
cG9ydGVkOiAyNTZNQiA1MTJNQiAxR0IgMkdCIDRHQiA4R0INCiAgICAgICAgICAgICAgICBCQVIg
MjogY3VycmVudCBzaXplOiAyTUIsIHN1cHBvcnRlZDogMk1CIDRNQiA4TUIgMTZNQiAzMk1CIDY0
TUIgMTI4TUIgMjU2TUINCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMjQwIHYxXSBQb3dlciBCdWRn
ZXRpbmcgPD8+DQogICAgICAgIENhcGFiaWxpdGllczogWzI3MCB2MV0gU2Vjb25kYXJ5IFBDSSBF
eHByZXNzDQogICAgICAgICAgICAgICAgTG5rQ3RsMzogTG5rRXF1SW50cnJ1cHRFbi0gUGVyZm9y
bUVxdS0NCiAgICAgICAgICAgICAgICBMYW5lRXJyU3RhdDogMA0KICAgICAgICBDYXBhYmlsaXRp
ZXM6IFsyYTAgdjFdIEFjY2VzcyBDb250cm9sIFNlcnZpY2VzDQogICAgICAgICAgICAgICAgQUNT
Q2FwOiBTcmNWYWxpZC0gVHJhbnNCbGstIFJlcVJlZGlyLSBDbXBsdFJlZGlyLSBVcHN0cmVhbUZ3
ZC0gRWdyZXNzQ3RybC0gRGlyZWN0VHJhbnMtDQogICAgICAgICAgICAgICAgQUNTQ3RsOiBTcmNW
YWxpZC0gVHJhbnNCbGstIFJlcVJlZGlyLSBDbXBsdFJlZGlyLSBVcHN0cmVhbUZ3ZC0gRWdyZXNz
Q3RybC0gRGlyZWN0VHJhbnMtDQogICAgICAgIENhcGFiaWxpdGllczogWzJkMCB2MV0gUHJvY2Vz
cyBBZGRyZXNzIFNwYWNlIElEIChQQVNJRCkNCiAgICAgICAgICAgICAgICBQQVNJRENhcDogRXhl
YysgUHJpdissIE1heCBQQVNJRCBXaWR0aDogMTANCiAgICAgICAgICAgICAgICBQQVNJREN0bDog
RW5hYmxlLSBFeGVjLSBQcml2LQ0KICAgICAgICBDYXBhYmlsaXRpZXM6IFszMjAgdjFdIExhdGVu
Y3kgVG9sZXJhbmNlIFJlcG9ydGluZw0KICAgICAgICAgICAgICAgIE1heCBzbm9vcCBsYXRlbmN5
OiAxMDQ4NTc2bnMNCiAgICAgICAgICAgICAgICBNYXggbm8gc25vb3AgbGF0ZW5jeTogMTA0ODU3
Nm5zDQogICAgICAgIENhcGFiaWxpdGllczogWzQxMCB2MV0gUGh5c2ljYWwgTGF5ZXIgMTYuMCBH
VC9zIDw/Pg0KICAgICAgICBDYXBhYmlsaXRpZXM6IFs0NDAgdjFdIExhbmUgTWFyZ2luaW5nIGF0
IHRoZSBSZWNlaXZlciA8Pz4NCiAgICAgICAgS2VybmVsIGRyaXZlciBpbiB1c2U6IGFtZGdwdQ0K
ICAgICAgICBLZXJuZWwgbW9kdWxlczogYW1kZ3B1DQoNCg0KY2pxQGNqcS1sb2NhbDp+JCBzdWRv
IGxzcGNpIC12dnYgLXMgMDM6MDAuMQ0KMDM6MDAuMSBBdWRpbyBkZXZpY2U6IEFkdmFuY2VkIE1p
Y3JvIERldmljZXMsIEluYy4gW0FNRC9BVEldIE5hdmkgMjEgSERNSSBBdWRpbyBbUmFkZW9uIFJY
IDY4MDAvNjgwMCBYVCAvIDY5MDAgWFRdDQogICAgICAgIFN1YnN5c3RlbTogQWR2YW5jZWQgTWlj
cm8gRGV2aWNlcywgSW5jLiBbQU1EL0FUSV0gTmF2aSAyMSBIRE1JIEF1ZGlvIFtSYWRlb24gUlgg
NjgwMC82ODAwIFhUIC8gNjkwMCBYVF0NCiAgICAgICAgQ29udHJvbDogSS9PKyBNZW0rIEJ1c01h
c3RlcisgU3BlY0N5Y2xlLSBNZW1XSU5WLSBWR0FTbm9vcC0gUGFyRXJyLSBTdGVwcGluZy0gU0VS
Ui0gRmFzdEIyQi0gRGlzSU5UeC0NCiAgICAgICAgU3RhdHVzOiBDYXArIDY2TUh6LSBVREYtIEZh
c3RCMkItIFBhckVyci0gREVWU0VMPWZhc3QgPlRBYm9ydC0gPFRBYm9ydC0gPE1BYm9ydC0gPlNF
UlItIDxQRVJSLSBJTlR4LQ0KICAgICAgICBMYXRlbmN5OiAwLCBDYWNoZSBMaW5lIFNpemU6IDY0
IGJ5dGVzDQogICAgICAgIEludGVycnVwdDogcGluIEIgcm91dGVkIHRvIElSUSAxMzQNCiAgICAg
ICAgUmVnaW9uIDA6IE1lbW9yeSBhdCBkMDcwMDAwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxl
KSBbc2l6ZT0xNktdDQogICAgICAgIENhcGFiaWxpdGllczogWzQ4XSBWZW5kb3IgU3BlY2lmaWMg
SW5mb3JtYXRpb246IExlbj0wOCA8Pz4NCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNTBdIFBvd2Vy
IE1hbmFnZW1lbnQgdmVyc2lvbiAzDQogICAgICAgICAgICAgICAgRmxhZ3M6IFBNRUNsay0gRFNJ
LSBEMS0gRDItIEF1eEN1cnJlbnQ9MG1BIFBNRShEMC0sRDErLEQyKyxEM2hvdCssRDNjb2xkKykN
CiAgICAgICAgICAgICAgICBTdGF0dXM6IEQzIE5vU29mdFJzdCsgUE1FLUVuYWJsZSsgRFNlbD0w
IERTY2FsZT0wIFBNRS0NCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNjRdIEV4cHJlc3MgKHYyKSBM
ZWdhY3kgRW5kcG9pbnQsIE1TSSAwMA0KICAgICAgICAgICAgICAgIERldkNhcDogTWF4UGF5bG9h
ZCAyNTYgYnl0ZXMsIFBoYW50RnVuYyAwLCBMYXRlbmN5IEwwcyA8NHVzLCBMMSB1bmxpbWl0ZWQN
CiAgICAgICAgICAgICAgICAgICAgICAgIEV4dFRhZysgQXR0bkJ0bi0gQXR0bkluZC0gUHdySW5k
LSBSQkUrIEZMUmVzZXQtDQogICAgICAgICAgICAgICAgRGV2Q3RsOiBDb3JyRXJyKyBOb25GYXRh
bEVycisgRmF0YWxFcnIrIFVuc3VwUmVxKw0KICAgICAgICAgICAgICAgICAgICAgICAgUmx4ZE9y
ZCsgRXh0VGFnKyBQaGFudEZ1bmMtIEF1eFB3ci0gTm9Tbm9vcCsNCiAgICAgICAgICAgICAgICAg
ICAgICAgIE1heFBheWxvYWQgMjU2IGJ5dGVzLCBNYXhSZWFkUmVxIDUxMiBieXRlcw0KICAgICAg
ICAgICAgICAgIERldlN0YTogQ29yckVyci0gTm9uRmF0YWxFcnItIEZhdGFsRXJyLSBVbnN1cFJl
cS0gQXV4UHdyLSBUcmFuc1BlbmQtDQogICAgICAgICAgICAgICAgTG5rQ2FwOiBQb3J0ICMwLCBT
cGVlZCAxNkdUL3MsIFdpZHRoIHgxNiwgQVNQTSBMMHMgTDEsIEV4aXQgTGF0ZW5jeSBMMHMgPDY0
bnMsIEwxIDwxdXMNCiAgICAgICAgICAgICAgICAgICAgICAgIENsb2NrUE0rIFN1cnByaXNlLSBM
TEFjdFJlcC0gQndOb3QtIEFTUE1PcHRDb21wKw0KICAgICAgICAgICAgICAgIExua0N0bDogQVNQ
TSBMMSBFbmFibGVkOyBSQ0IgNjQgYnl0ZXMsIERpc2FibGVkLSBDb21tQ2xrKw0KICAgICAgICAg
ICAgICAgICAgICAgICAgRXh0U3luY2gtIENsb2NrUE0tIEF1dFdpZERpcy0gQldJbnQtIEF1dEJX
SW50LQ0KICAgICAgICAgICAgICAgIExua1N0YTogU3BlZWQgMTZHVC9zIChvayksIFdpZHRoIHgx
NiAob2spDQogICAgICAgICAgICAgICAgICAgICAgICBUckVyci0gVHJhaW4tIFNsb3RDbGsrIERM
QWN0aXZlLSBCV01nbXQtIEFCV01nbXQtDQogICAgICAgICAgICAgICAgRGV2Q2FwMjogQ29tcGxl
dGlvbiBUaW1lb3V0OiBSYW5nZSBBQkNELCBUaW1lb3V0RGlzKyBOUk9QclByUC0gTFRSKw0KICAg
ICAgICAgICAgICAgICAgICAgICAgIDEwQml0VGFnQ29tcCsgMTBCaXRUYWdSZXErIE9CRkYgTm90
IFN1cHBvcnRlZCwgRXh0Rm10KyBFRVRMUFByZWZpeCssIE1heEVFVExQUHJlZml4ZXMgMQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgIEVtZXJnZW5jeVBvd2VyUmVkdWN0aW9uIE5vdCBTdXBwb3J0
ZWQsIEVtZXJnZW5jeVBvd2VyUmVkdWN0aW9uSW5pdC0NCiAgICAgICAgICAgICAgICAgICAgICAg
ICBGUlMtDQogICAgICAgICAgICAgICAgICAgICAgICAgQXRvbWljT3BzQ2FwOiAzMmJpdC0gNjRi
aXQtIDEyOGJpdENBUy0NCiAgICAgICAgICAgICAgICBEZXZDdGwyOiBDb21wbGV0aW9uIFRpbWVv
dXQ6IDUwdXMgdG8gNTBtcywgVGltZW91dERpcy0gTFRSLSBPQkZGIERpc2FibGVkLA0KICAgICAg
ICAgICAgICAgICAgICAgICAgIEF0b21pY09wc0N0bDogUmVxRW4tDQogICAgICAgICAgICAgICAg
TG5rU3RhMjogQ3VycmVudCBEZS1lbXBoYXNpcyBMZXZlbDogLTMuNWRCLCBFcXVhbGl6YXRpb25D
b21wbGV0ZS0gRXF1YWxpemF0aW9uUGhhc2UxLQ0KICAgICAgICAgICAgICAgICAgICAgICAgIEVx
dWFsaXphdGlvblBoYXNlMi0gRXF1YWxpemF0aW9uUGhhc2UzLSBMaW5rRXF1YWxpemF0aW9uUmVx
dWVzdC0NCiAgICAgICAgICAgICAgICAgICAgICAgICBSZXRpbWVyLSAyUmV0aW1lcnMtIENyb3Nz
bGlua1JlczogdW5zdXBwb3J0ZWQNCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbYTBdIE1TSTogRW5h
YmxlKyBDb3VudD0xLzEgTWFza2FibGUtIDY0Yml0Kw0KICAgICAgICAgICAgICAgIEFkZHJlc3M6
IDAwMDAwMDAwZmVlMDAwMDAgIERhdGE6IDAwMjINCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMTAw
IHYxXSBWZW5kb3IgU3BlY2lmaWMgSW5mb3JtYXRpb246IElEPTAwMDEgUmV2PTEgTGVuPTAxMCA8
Pz4NCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMTUwIHYyXSBBZHZhbmNlZCBFcnJvciBSZXBvcnRp
bmcNCiAgICAgICAgICAgICAgICBVRVN0YTogIERMUC0gU0RFUy0gVExQLSBGQ1AtIENtcGx0VE8t
IENtcGx0QWJydC0gVW54Q21wbHQtIFJ4T0YtIE1hbGZUTFAtIEVDUkMtIFVuc3VwUmVxKyBBQ1NW
aW9sLQ0KICAgICAgICAgICAgICAgIFVFTXNrOiAgRExQLSBTREVTLSBUTFAtIEZDUC0gQ21wbHRU
Ty0gQ21wbHRBYnJ0LSBVbnhDbXBsdC0gUnhPRi0gTWFsZlRMUC0gRUNSQy0gVW5zdXBSZXErIEFD
U1Zpb2wtDQogICAgICAgICAgICAgICAgVUVTdnJ0OiBETFArIFNERVMrIFRMUC0gRkNQKyBDbXBs
dFRPKyBDbXBsdEFicnQtIFVueENtcGx0KyBSeE9GKyBNYWxmVExQKyBFQ1JDKyBVbnN1cFJlcS0g
QUNTVmlvbC0NCiAgICAgICAgICAgICAgICBDRVN0YTogIFJ4RXJyLSBCYWRUTFAtIEJhZERMTFAt
IFJvbGxvdmVyLSBUaW1lb3V0LSBBZHZOb25GYXRhbEVyci0NCiAgICAgICAgICAgICAgICBDRU1z
azogIFJ4RXJyLSBCYWRUTFAtIEJhZERMTFAtIFJvbGxvdmVyLSBUaW1lb3V0LSBBZHZOb25GYXRh
bEVyci0NCiAgICAgICAgICAgICAgICBBRVJDYXA6IEZpcnN0IEVycm9yIFBvaW50ZXI6IDAwLCBF
Q1JDR2VuQ2FwKyBFQ1JDR2VuRW4rIEVDUkNDaGtDYXArIEVDUkNDaGtFbisNCiAgICAgICAgICAg
ICAgICAgICAgICAgIE11bHRIZHJSZWNDYXAtIE11bHRIZHJSZWNFbi0gVExQUGZ4UHJlcy0gSGRy
TG9nQ2FwLQ0KICAgICAgICAgICAgICAgIEhlYWRlckxvZzogMDAwMDAwMDAgMDAwMDAwMDAgMDAw
MDAwMDAgMDAwMDAwMDANCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMmEwIHYxXSBBY2Nlc3MgQ29u
dHJvbCBTZXJ2aWNlcw0KICAgICAgICAgICAgICAgIEFDU0NhcDogU3JjVmFsaWQtIFRyYW5zQmxr
LSBSZXFSZWRpci0gQ21wbHRSZWRpci0gVXBzdHJlYW1Gd2QtIEVncmVzc0N0cmwtIERpcmVjdFRy
YW5zLQ0KICAgICAgICAgICAgICAgIEFDU0N0bDogU3JjVmFsaWQtIFRyYW5zQmxrLSBSZXFSZWRp
ci0gQ21wbHRSZWRpci0gVXBzdHJlYW1Gd2QtIEVncmVzc0N0cmwtIERpcmVjdFRyYW5zLQ0KICAg
ICAgICBLZXJuZWwgZHJpdmVyIGluIHVzZTogc25kX2hkYV9pbnRlbA0KICAgICAgICBLZXJuZWwg
bW9kdWxlczogc25kX2hkYV9pbnRlbA0K

--_005_BL1PR12MB5849FC8077C7C6035F1D3E15E7242BL1PR12MB5849namp_
Content-Type: text/plain; name="rebar_xl_dmesg.txt"
Content-Description: rebar_xl_dmesg.txt
Content-Disposition: attachment; filename="rebar_xl_dmesg.txt"; size=25600;
	creation-date="Fri, 15 Nov 2024 02:57:34 GMT";
	modification-date="Fri, 15 Nov 2024 03:04:22 GMT"
Content-Transfer-Encoding: base64

IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgIF9fXyAgICAgICAgICAgICAgICAgICAg
IF8gICAgICAgIF8gICAgIF8KIFwgXC8gL19fXyBfIF9fICAgfCB8fCB8ICB8X19fIFwgLyBfIFwg
ICAgXyAgIF8gXyBfXyAgX19ffCB8XyBfXyBffCB8X18gfCB8IF9fXwogIFwgIC8vIF8gXCAnXyBc
ICB8IHx8IHxfICAgX18pIHwgfCB8IHxfX3wgfCB8IHwgJ18gXC8gX198IF9fLyBfYCB8ICdfIFx8
IHwvIF8gXAogIC8gIFwgIF9fLyB8IHwgfCB8X18gICBffCAvIF9fL3wgfF98IHxfX3wgfF98IHwg
fCB8IFxfXyBcIHx8IChffCB8IHxfKSB8IHwgIF9fLwogL18vXF9cX19ffF98IHxffCAgICB8X3wo
XylfX19fX3xcX19fLyAgICBcX18sX3xffCB8X3xfX18vXF9fXF9fLF98Xy5fXy98X3xcX19ffAoK
KFhFTikgWGVuIHZlcnNpb24gNC4yMC11bnN0YWJsZSAoY2pxQCkgKGdjYyAoVWJ1bnR1IDExLjQu
MC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4wKSBkZWJ1Zz15IEZyaSBOb3YgMTUgMTA6NDU6MTQgQ1NU
IDIwMjQKKFhFTikgTGF0ZXN0IENoYW5nZVNldDogRnJpIE5vdiAxNSAxMDo0NDo1NCAyMDI0ICsw
ODAwIGdpdDpiZTI5YmFiNmI1CihYRU4pIGJ1aWxkLWlkOiBjMTc5ZTBlN2Q5YjI3ODFjOTg1M2Y5
ODZhN2ZhMTMzMzZhMjhhMzhhCihYRU4pIEJvb3Rsb2FkZXI6IEdSVUIgMi4wNi0ydWJ1bnR1MTQu
NAooWEVOKSBDb21tYW5kIGxpbmU6IHBsYWNlaG9sZGVyIGRvbTA9cHZoIGRvbTBfbWVtPTZHIGxv
Z2x2bD1hbGwgbm8tcmVhbC1tb2RlIGVkZD1vZmYKKFhFTikgWGVuIGltYWdlIGxvYWQgYmFzZSBh
ZGRyZXNzOiAweGM2YzAwMDAwCihYRU4pIFZpZGVvIGluZm9ybWF0aW9uOgooWEVOKSAgVkdBIGlz
IGdyYXBoaWNzIG1vZGUgMjU2MHgxNDQwLCAzMiBicHAKKFhFTikgRGlzYyBpbmZvcm1hdGlvbjoK
KFhFTikgIEZvdW5kIDAgTUJSIHNpZ25hdHVyZXMKKFhFTikgIEZvdW5kIDEgRUREIGluZm9ybWF0
aW9uIHN0cnVjdHVyZXMKKFhFTikgQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkgMjMgKDB4MTcpLCBN
b2RlbCA5NiAoMHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkKKFhFTikgRUZJIFJBTSBt
YXA6CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAwMDA5ZWZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwMDAwMDlmMDAwLCAwMDAwMDAwMDAwMGJmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAwMDAwMDAwOWFmZmZmZl0gKHVzYWJsZSkKKFhFTikg
IFswMDAwMDAwMDA5YjAwMDAwLCAwMDAwMDAwMDA5ZGZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBb
MDAwMDAwMDAwOWUwMDAwMCwgMDAwMDAwMDAwOWVmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAw
MDAwMDA5ZjAwMDAwLCAwMDAwMDAwMDA5ZjBmZmZmXSAoQUNQSSBOVlMpCihYRU4pICBbMDAwMDAw
MDAwOWYxMDAwMCwgMDAwMDAwMDBiYjQ2NWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGJi
NDY2MDAwLCAwMDAwMDAwMGJjNTY1ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBiYzU2
NjAwMCwgMDAwMDAwMDBjODc3ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGM4NzdmMDAw
LCAwMDAwMDAwMGNhZjdlZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBjYWY3ZjAwMCwg
MDAwMDAwMDBjY2Y3ZWZmZl0gKEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwY2NmN2YwMDAsIDAw
MDAwMDAwY2NmZmVmZmZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAwMDAwMDBjY2ZmZjAwMCwgMDAw
MDAwMDBjY2ZmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGNkMDAwMDAwLCAwMDAwMDAw
MGNkZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBm
N2ZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmRlMDAwMDAsIDAwMDAwMDAwZmRl
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAx
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZm
Zl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVjMjAwMDAsIDAwMDAwMDAwZmVjMjBmZmZd
IChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDgwMDAwLCAwMDAwMDAwMGZlZDgxZmZmXSAo
cmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWRjMDAwMCwgMDAwMDAwMDBmZWRkZmZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVlMDAwMDAsIDAwMDAwMDAwZmVlMDBmZmZdIChyZXNl
cnZlZCkKKFhFTikgIFswMDAwMDAwMGZmMDAwMDAwLCAwMDAwMDAwMGZmZjFmZmZmXSAocmVzZXJ2
ZWQpCihYRU4pICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAwMDAwMDgwZjMzZmZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwODBmMzQwMDAwLCAwMDAwMDAwODJmZmZmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pIEJTUCBtaWNyb2NvZGUgcmV2aXNpb246IDB4MDg2MDAxMDkKKFhFTikgQUNQSTogUlNEUCBD
Q0ZGRTAxNCwgMDAyNCAocjIgQU1EICAgKQooWEVOKSBBQ1BJOiBYU0RUIENDRkRFMTg4LCAwMTU0
IChyMSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDIgICAgICAgMTAwMDAxMykKKFhFTikgQUNQSTog
RkFDUCBDQ0ZFNjAwMCwgMDExNCAocjYgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAg
NDAwMDApCihYRU4pIEFDUEk6IERTRFQgQ0NGRDQwMDAsIDkwQkYgKHIxIEFNRCAgICBDZWxhZG9u
ICAgICAgICAgMiBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBGQUNTIENDRUYxMDAwLCAwMDQw
CihYRU4pIEFDUEk6IFVFRkkgQ0NGN0UwMDAsIDAyMzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkY1MDAwLCA3MjNDIChyMiBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogSVZSUyBD
Q0ZGNDAwMCwgMDFBNCAocjIgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IFNTRFQgQ0NGRjAwMDAsIDM3NEEgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVGMDAwLCAwMjI4IChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQkVSVCBD
Q0ZFRTAwMCwgMDAzMCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEVJTkogQ0NGRUMwMDAsIDAxNTAgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVCMDAwLCAwNDZEIChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogVFBNMiBD
Q0ZFQTAwMCwgMDAzNCAocjQgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEFTRiEgQ0NGRTgwMDAsIDAwQTUgKHIzMiBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQk9PVCBDQ0ZFNzAwMCwgMDAyOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IEhQRVQg
Q0NGRTUwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBBUElDIENDRkU0MDAwLCAwMTM4IChyNCBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogTUNGRyBDQ0ZFMzAwMCwgMDAzQyAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNMSUMg
Q0NGRTIwMDAsIDAxNzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBXU01UIENDRkRGMDAwLCAwMDI4IChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCBDQ0ZGRDAwMCwgMDA4MCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQg
Q0NGQzUwMDAsIDAxNjQgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgMTAwMCBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBTU0RUIENDRkMyMDAwLCAyQjgwIChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQ1JBVCBDQ0ZDMTAwMCwgMEJBOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IENESVQg
Q0NGQzAwMDAsIDAwMjkgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBWRkNUIENDRkE3MDAwLCAxOENBMCAocjEgQU1EICAgIENlbGFkb24gICAg
ICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRDMwMDAsIDAxMzkgKHIx
IEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBIRVNU
IENDRjk2MDAwLCAxMDg3NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRUQwMDAsIDAyOEQgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkQyMDAwLCAwRDM3IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZEMDAwMCwgMTBBQiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0YwMDAsIDAxNzkgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkNEMDAwLCAxNTRGIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZDQjAwMCwgMTBCMyAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0EwMDAsIDAxQzAgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkM2MDAwLCAzMEM4IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogRlBE
VCBDQ0Y5NTAwMCwgMDA0NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IEJHUlQgQ0NGOTQwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkUxMDAwLCAwMDdEIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZFMDAwMCwgMEY5NiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGOTMwMDAsIDA1MTcgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBTeXN0ZW0gUkFNOiAzMjEwMk1CICgzMjg3Mjc2
NGtCKQooWEVOKSBObyBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKKFhFTikgRmFraW5nIGEgbm9k
ZSBhdCAwMDAwMDAwMDAwMDAwMDAwLTAwMDAwMDA4MGYzNDAwMDAKKFhFTikgRG9tYWluIGhlYXAg
aW5pdGlhbGlzZWQKKFhFTikgdmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDAwMDAwMGZjNzAwMDAw
MDAsIG1hcHBlZCB0byAweGZmZmY4MmMwMDAyMDMwMDAsIHVzaW5nIDE0NDAwaywgdG90YWwgMTQ0
MDBrCihYRU4pIHZlc2FmYjogbW9kZSBpcyAyNTYweDE0NDB4MzIsIGxpbmVsZW5ndGg9MTAyNDAs
IGZvbnQgOHgxNgooWEVOKSB2ZXNhZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0y
NDoxNjo4OjAKKFhFTikgU01CSU9TIDMuMSBwcmVzZW50LgooWEVOKSBVc2luZyBBUElDIGRyaXZl
ciBkZWZhdWx0CihYRU4pIEFDUEk6IFBNLVRpbWVyIElPIFBvcnQ6IDB4NDA4ICgzMiBiaXRzKQoo
WEVOKSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6MF0sIHN0YXR1c1swOjBdCihYRU4p
IEFDUEk6IFNMRUVQIElORk86IHBtMXhfY250WzE6NDA0LDE6MF0sIHBtMXhfZXZ0WzE6NDAwLDE6
MF0KKFhFTikgQUNQSTogMzIvNjRYIEZBQ1MgYWRkcmVzcyBtaXNtYXRjaCBpbiBGQURUIC0gY2Nl
ZjEwMDAvMDAwMDAwMDAwMDAwMDAwMCwgdXNpbmcgMzIKKFhFTikgQUNQSTogICAgICAgICAgICAg
d2FrZXVwX3ZlY1tjY2VmMTAwY10sIHZlY19zaXplWzIwXQooWEVOKSBBQ1BJOiBMb2NhbCBBUElD
IGFkZHJlc3MgMHhmZWUwMDAwMAooWEVOKSBPdmVycmlkaW5nIEFQSUMgZHJpdmVyIHdpdGggYmln
c21wCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBnc2lf
YmFzZVswXSkKKFhFTikgSU9BUElDWzBdOiBhcGljX2lkIDMzLCB2ZXJzaW9uIDMzLCBhZGRyZXNz
IDB4ZmVjMDAwMDAsIEdTSSAwLTIzCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMl0gYWRkcmVz
c1sweGZlYzAxMDAwXSBnc2lfYmFzZVsyNF0pCihYRU4pIElPQVBJQ1sxXTogYXBpY19pZCAzNCwg
dmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUKKFhFTikgQUNQSTogSU5U
X1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMCBnbG9iYWxfaXJxIDIgZGZsIGRmbCkKKFhFTikgQUNQ
STogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgOSBnbG9iYWxfaXJxIDkgbG93IGxldmVsKQoo
WEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTIgdXNlZCBi
eSBvdmVycmlkZS4KKFhFTikgQUNQSTogSVJROSB1c2VkIGJ5IG92ZXJyaWRlLgooWEVOKSBBQ1BJ
OiBIUEVUIGlkOiAweDEwMjI4MjEwIGJhc2U6IDB4ZmVkMDAwMDAKKFhFTikgUENJOiBNQ0ZHIGNv
bmZpZ3VyYXRpb24gMDogYmFzZSBmMDAwMDAwMCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSA3Zgoo
WEVOKSBQQ0k6IE1DRkcgYXJlYSBhdCBmMDAwMDAwMCByZXNlcnZlZCBpbiBFODIwCihYRU4pIFBD
STogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03ZgooWEVOKSBIRVNUOiBUYWJs
ZSBwYXJzaW5nIGhhcyBiZWVuIGluaXRpYWxpemVkCihYRU4pIEFDUEk6IEJHUlQ6IGludmFsaWRh
dGluZyB2MSBpbWFnZSBhdCAweGMzMmI0MDAwCihYRU4pIFVzaW5nIEFDUEkgKE1BRFQpIGZvciBT
TVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgooWEVOKSBTTVA6IEFsbG93aW5nIDE2IENQVXMg
KDQgaG90cGx1ZyBDUFVzKQooWEVOKSBJUlEgbGltaXRzOiA1NiBHU0ksIDI0NDAgTVNJL01TSS1Y
CihYRU4pIFplbmJsZWVkIG1pdGlnYXRpb24gLSB1c2luZyBjaGlja2VuYml0CihYRU4pIENQVTA6
IDE0MDAgLi4uIDMwMDAgTUh6CihYRU4pIHhzdGF0ZTogc2l6ZTogMHgzODAgYW5kIHN0YXRlczog
MHgyMDcKKFhFTikgQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFi
bGVkCihYRU4pIFNwZWN1bGF0aXZlIG1pdGlnYXRpb24gZmFjaWxpdGllczoKKFhFTikgICBIYXJk
d2FyZSBoaW50czogSUJSU19GQVNUIElCUlNfU0FNRV9NT0RFCihYRU4pICAgSGFyZHdhcmUgZmVh
dHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JECihYRU4pICAgQ29tcGlsZWQtaW4gc3VwcG9ydDog
SU5ESVJFQ1RfVEhVTksgU0hBRE9XX1BBR0lORyBIQVJERU5fQVJSQVkgSEFSREVOX0JSQU5DSCBI
QVJERU5fR1VFU1RfQUNDRVNTIEhBUkRFTl9MT0NLCihYRU4pICAgWGVuIHNldHRpbmdzOiBCVEkt
VGh1bms6IFJFVFBPTElORSwgU1BFQ19DVFJMOiBJQlJTLSBTVElCUCsgU1NCRC0sIE90aGVyOiBC
UkFOQ0hfSEFSREVOCihYRU4pICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNSX1NQRUNfQ1RSTCBN
U1JfVklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkKKFhFTikgICBTdXBwb3J0IGZvciBQViBW
TXM6IElCUEItZW50cnkKKFhFTikgICBYUFRJICg2NC1iaXQgUFYgb25seSk6IERvbTAgZGlzYWJs
ZWQsIERvbVUgZGlzYWJsZWQgKHdpdGhvdXQgUENJRCkKKFhFTikgICBQViBMMVRGIHNoYWRvd2lu
ZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZAooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNN
UCBDcmVkaXQgU2NoZWR1bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIEluaXRpYWxpemluZyBDcmVk
aXQyIHNjaGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2Fk
X3dpbmRvd19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAoo
WEVOKSAgb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJy
YW5nZW1lbnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1z
CihYRU4pIGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIFBs
YXRmb3JtIHRpbWVyIGlzIDE0LjMxOE1IeiBIUEVUCihYRU4pIERldGVjdGVkIDI5OTQuMzgyIE1I
eiBwcm9jZXNzb3IuCihYRU4pIEZyZWVkIDEwMjBrQiB1bnVzZWQgQlNTIG1lbW9yeQooWEVOKSBF
RkkgbWVtb3J5IG1hcDoKKFhFTikgIDAwMDAwMDAwMDAwMDAtMDAwMDAwMDAwM2ZmZiB0eXBlPTIg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAwMDA0MDAwLTAwMDAwMDAwOGVmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwMDA4ZjAwMC0wMDAwMDAw
MDllZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDAwOWYwMDAt
MDAwMDAwMDA5ZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAw
MTAwMDAwLTAwMDAwMDRhYzZmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDAwNGFjNzAwMC0wMDAwMDA5YWZmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwMDliMDAwMDAtMDAwMDAwOWRmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMDA5ZTAwMDAwLTAwMDAwMDllZmZmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwOWYwMDAwMC0wMDAwMDA5ZjBmZmZmIHR5cGU9MTAg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDA5ZjEwMDAwLTAwMDAwNzg5MzdmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA3ODkzODAwMC0wMDAwMDdm
ZmZlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwN2ZmZmYwMDAt
MDAwMDBiNmU4OGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI2
ZTg5MDAwLTAwMDAwYjcxMDNmZmYgdHlwZT0xIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDBiNzEwNDAwMC0wMDAwMGI3MzdlZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwYjczN2YwMDAtMDAwMDBiNzM5ZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMGI3MzlmMDAwLTAwMDAwYjczZjdmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiNzNmODAwMC0wMDAwMGI3NjE5ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYjc2MWEwMDAtMDAwMDBiNzY2N2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI3NjY4MDAwLTAwMDAwYmFm
ODZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYWY4NzAwMC0w
MDAwMGJhZmE1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmFm
YTYwMDAtMDAwMDBiYWZmN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAw
MDAwMGJhZmY4MDAwLTAwMDAwYmIwNWRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgoo
WEVOKSAgMDAwMDBiYjA1ZTAwMC0wMDAwMGJiNDY1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYKKFhFTikgIDAwMDAwYmI0NjYwMDAtMDAwMDBiYzU2NWZmZiB0eXBlPTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTY2MDAwLTAwMDAwYmM1NmZmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzU3MDAwMC0wMDAwMGJjNTc5ZmZmIHR5
cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmM1N2EwMDAtMDAwMDBiYzU3
Y2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTdkMDAwLTAw
MDAwYmM2YThmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzZh
OTAwMC0wMDAwMGJjNzdlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAw
MDAwYmM3N2YwMDAtMDAwMDBjMzE2MGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihY
RU4pICAwMDAwMGMzMTYxMDAwLTAwMDAwYzMyYTFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZgooWEVOKSAgMDAwMDBjMzJhMjAwMC0wMDAwMGMzMmFhZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzMyYWIwMDAtMDAwMDBjMzJhYmZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGMzMmFjMDAwLTAwMDAwYzMyYWRmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjMzJhZTAwMC0wMDAwMGM2Nzdl
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzY3N2YwMDAtMDAw
MDBjNmRmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGM2ZTAw
MDAwLTAwMDAwYzcxZjdmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDBjNzFmODAwMC0wMDAwMGM3MzdhZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwYzczN2IwMDAtMDAwMDBjODc3ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmCihYRU4pICAwMDAwMGM4NzdmMDAwLTAwMDAwYzhmN2VmZmYgdHlwZT01IGF0dHI9ODAwMDAw
MDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjOGY3ZjAwMC0wMDAwMGM5ZjdlZmZmIHR5cGU9NiBhdHRy
PTgwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzlmN2YwMDAtMDAwMDBjYWY3ZWZmZiB0eXBl
PTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNhZjdmMDAwLTAwMDAwY2NmN2Vm
ZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwY2NmN2YwMDAtMDAw
MDBjY2ZmZWZmZiB0eXBlPTkgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNjZmZm
MDAwLTAwMDAwY2NmZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDEwMDAwMDAwMC0wMDAwODBmMzNmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwMDAwYTAwMDAtMDAwMDAwMDBiZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAw
MDAwCihYRU4pICAwMDAwMGNkMDAwMDAwLTAwMDAwY2RmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAw
MDAwMDAwMDAwMAooWEVOKSAgMDAwMDBmMDAwMDAwMC0wMDAwMGY3ZmZmZmZmIHR5cGU9MTEgYXR0
cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZkZTAwMDAwLTAwMDAwZmRlZmZmZmYgdHlw
ZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmVjMDAwMDAtMDAwMDBmZWMw
MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDBmZWMxMDAwMC0w
MDAwMGZlYzEwZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZl
YzIwMDAwLTAwMDAwZmVjMjBmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikg
IDAwMDAwZmVkODAwMDAtMDAwMDBmZWQ4MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAw
MQooWEVOKSAgMDAwMDBmZWRjMDAwMC0wMDAwMGZlZGRmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAw
MDAwMDAwMDAxCihYRU4pICAwMDAwMGZlZTAwMDAwLTAwMDAwZmVlMDBmZmYgdHlwZT0xMSBhdHRy
PTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmYwMDAwMDAtMDAwMDBmZmYxZmZmZiB0eXBl
PTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDgwZjM0MDAwMC0wMDAwODJmZmZm
ZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMDAKKFhFTikgYWx0IHRhYmxlIGZmZmY4MmQw
NDA0OWMxYjggLT4gZmZmZjgyZDA0MDRhZWNhNAooWEVOKSBBTUQtVmk6IElPTU1VIEV4dGVuZGVk
IEZlYXR1cmVzOgooWEVOKSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVlc3QKKFhFTikg
LSB4MkFQSUMKKFhFTikgLSBOWCBiaXQKKFhFTikgLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kCihY
RU4pIC0gR3Vlc3QgQVBJQwooWEVOKSAtIFBlcmZvcm1hbmNlIENvdW50ZXJzCihYRU4pIC0gSG9z
dCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNpemU6IDB4MgooWEVOKSAtIEd1ZXN0IEFkZHJlc3MgVHJh
bnNsYXRpb24gU2l6ZTogMAooWEVOKSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAweDEK
KFhFTikgLSBNYXhpbXVtIFBBU0lEOiAweGYKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyOiAw
eDEKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAweDEKKFhFTikgLSBHdWVzdCBW
aXJ0dWFsIEFQSUMgTW9kZXM6IDB4MQooWEVOKSAtIER1YWwgUFBSIExvZzogMHgyCihYRU4pIC0g
RHVhbCBFdmVudCBMb2c6IDB4MgooWEVOKSAtIFVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVj
dGlvbgooWEVOKSAtIERldmljZSBUYWJsZSBTZWdtZW50YXRpb246IDB4MwooWEVOKSAtIFBQUiBM
b2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZwooWEVOKSAtIFBQUiBBdXRvbWF0aWMgUmVzcG9uc2UK
KFhFTikgLSBNZW1vcnkgQWNjZXNzIFJvdXRpbmcgYW5kIENvbnRyb2w6IDAKKFhFTikgLSBCbG9j
ayBTdG9wTWFyayBNZXNzYWdlCihYRU4pIC0gUGVyZm9ybWFuY2UgT3B0aW1pemF0aW9uCihYRU4p
IC0gTVNJIENhcGFiaWxpdHkgTU1JTyBBY2Nlc3MKKFhFTikgLSBHdWVzdCBJL08gUHJvdGVjdGlv
bgooWEVOKSAtIEVuaGFuY2VkIFBQUiBIYW5kbGluZwooWEVOKSAtIEF0dHJpYnV0ZSBGb3J3YXJk
CihYRU4pIC0gSW52YWxpZGF0ZSBJT1RMQiBUeXBlCihYRU4pIC0gVk0gVGFibGUgU2l6ZTogMAoo
WEVOKSAtIEd1ZXN0IEFjY2VzcyBCaXQgVXBkYXRlIERpc2FibGUKKFhFTikgQU1ELVZpOiBEaXNh
YmxlZCBIQVAgbWVtb3J5IG1hcCBzaGFyaW5nIHdpdGggSU9NTVUKKFhFTikgQU1ELVZpOiBJT01N
VSAwIEVuYWJsZWQuCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4pICAtIERv
bTAgbW9kZTogUmVsYXhlZAooWEVOKSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQKKFhFTikg
bnJfc29ja2V0czogMgooWEVOKSBFbmFibGluZyBBUElDIG1vZGUuICBVc2luZyAyIEkvTyBBUElD
cwooWEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMKKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
aG9kCihYRU4pIC4uVElNRVI6IHZlY3Rvcj0weEYwIGFwaWMxPTAgcGluMT0yIGFwaWMyPS0xIHBp
bjI9LTEKKFhFTikgV2FsbGNsb2NrIHNvdXJjZTogRUZJCihYRU4pIEFsbG9jYXRlZCBjb25zb2xl
IHJpbmcgb2YgMTI4IEtpQi4KKFhFTikgbXdhaXQtaWRsZTogZG9lcyBub3QgcnVuIG9uIGZhbWls
eSAyMyBtb2RlbCA5NgooWEVOKSBIVk06IEFTSURzIGVuYWJsZWQuCihYRU4pIFNWTTogU3VwcG9y
dGVkIGFkdmFuY2VkIGZlYXR1cmVzOgooWEVOKSAgLSBOZXN0ZWQgUGFnZSBUYWJsZXMgKE5QVCkK
KFhFTikgIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uCihYRU4pICAt
IE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQKKFhFTikgIC0gVk1DQiBDbGVhbiBCaXRzCihYRU4p
ICAtIFRMQiBmbHVzaCBieSBBU0lECihYRU4pICAtIERlY29kZUFzc2lzdHMKKFhFTikgIC0gVmly
dHVhbCBWTUxPQUQvVk1TQVZFCihYRU4pICAtIFZpcnR1YWwgR0lGCihYRU4pICAtIFBhdXNlLUlu
dGVyY2VwdCBGaWx0ZXIKKFhFTikgIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlciBUaHJlc2hvbGQK
KFhFTikgIC0gVFNDIFJhdGUgTVNSCihYRU4pICAtIE1TUl9TUEVDX0NUUkwgdmlydHVhbGlzYXRp
b24KKFhFTikgSFZNOiBTVk0gZW5hYmxlZAooWEVOKSBIVk06IEhhcmR3YXJlIEFzc2lzdGVkIFBh
Z2luZyAoSEFQKSBkZXRlY3RlZAooWEVOKSBIVk06IEhBUCBwYWdlIHNpemVzOiA0a0IsIDJNQiwg
MUdCCihYRU4pIGFsdCB0YWJsZSBmZmZmODJkMDQwNDljMWI4IC0+IGZmZmY4MmQwNDA0YWVjYTQK
KFhFTikgQnJvdWdodCB1cCAxMiBDUFVzCihYRU4pIFNjaGVkdWxpbmcgZ3JhbnVsYXJpdHk6IGNw
dSwgMSBDUFUgcGVyIHNjaGVkLXJlc291cmNlCihYRU4pIEluaXRpYWxpemluZyBDcmVkaXQyIHNj
aGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2FkX3dpbmRv
d19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAooWEVOKSAg
b3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJyYW5nZW1l
bnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1zCihYRU4p
IGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIEFkZGluZyBj
cHUgMCB0byBydW5xdWV1ZSAwCihYRU4pICBGaXJzdCBjcHUgb24gcnVucXVldWUsIGFjdGl2YXRp
bmcKKFhFTikgQWRkaW5nIGNwdSAxIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAyIHRv
IHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAzIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5n
IGNwdSA0IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA1IHRvIHJ1bnF1ZXVlIDAKKFhF
TikgQWRkaW5nIGNwdSA2IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA3IHRvIHJ1bnF1
ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA4IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA5
IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAxMCB0byBydW5xdWV1ZSAwCihYRU4pIEFk
ZGluZyBjcHUgMTEgdG8gcnVucXVldWUgMAooWEVOKSBtY2hlY2tfcG9sbDogTWFjaGluZSBjaGVj
ayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuCihYRU4pIFJ1bm5pbmcgc3R1YiByZWNvdmVyeSBzZWxm
dGVzdHMuLi4KKFhFTikgRml4dXAgI1VEWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJk
MDdmZmZlMDQ0XSAtPiBmZmZmODJkMDQwMzhjZDRjCihYRU4pIEZpeHVwICNHUFswMDAwXTogZmZm
ZjgyZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgyZDA0MDM4Y2Q0YwooWEVO
KSBGaXh1cCAjU1NbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDQgW2ZmZmY4MmQwN2ZmZmUwNDRdIC0+
IGZmZmY4MmQwNDAzOGNkNGMKKFhFTikgRml4dXAgI0JQWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ1
IFtmZmZmODJkMDdmZmZlMDQ1XSAtPiBmZmZmODJkMDQwMzhjZDRjCihYRU4pIE5YIChFeGVjdXRl
IERpc2FibGUpIHByb3RlY3Rpb24gYWN0aXZlCihYRU4pICoqKiBCdWlsZGluZyBhIFBWSCBEb20w
ICoqKgooWEVOKSBEb20wIG1lbW9yeSBhbGxvY2F0aW9uIHN0YXRzOgooWEVOKSBvcmRlciAgMCBh
bGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgMSBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAg
MiBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRlciAgMyBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRl
ciAgNCBhbGxvY2F0aW9uczogNQooWEVOKSBvcmRlciAgNSBhbGxvY2F0aW9uczogNAooWEVOKSBv
cmRlciAgNiBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgNyBhbGxvY2F0aW9uczogNAooWEVO
KSBvcmRlciAgOCBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgOSBhbGxvY2F0aW9uczogNAoo
WEVOKSBvcmRlciAxMCBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAxMSBhbGxvY2F0aW9uczog
NAooWEVOKSBvcmRlciAxMiBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAxMyBhbGxvY2F0aW9u
czogNAooWEVOKSBvcmRlciAxNCBhbGxvY2F0aW9uczogMgooWEVOKSBvcmRlciAxNSBhbGxvY2F0
aW9uczogMwooWEVOKSBvcmRlciAxNiBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRlciAxNyBhbGxv
Y2F0aW9uczogMwooWEVOKSBvcmRlciAxOCBhbGxvY2F0aW9uczogMwooWEVOKSBFTEY6IHBoZHI6
IHBhZGRyPTB4MTAwMDAwMCBtZW1zej0weDE5NWY2MjgKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0w
eDJhMDAwMDAgbWVtc3o9MHg5NmYwMDAKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0weDMzNmYwMDAg
bWVtc3o9MHgzOTAwMAooWEVOKSBFTEY6IHBoZHI6IHBhZGRyPTB4MzNhODAwMCBtZW1zej0weDE0
NTgwMDAKKFhFTikgRUxGOiBtZW1vcnk6IDB4MTAwMDAwMCAtPiAweDQ4MDAwMDAKKFhFTikgRUxG
OiBub3RlOiBQSFlTMzJfUkVMT0MgYWxpZ246IDB4MjAwMDAwIG1pbjogMHgxMDAwMDAwIG1heDog
MHgzZmZmZmZmZgooWEVOKSBFTEY6IG5vdGU6IFBIWVMzMl9FTlRSWSA9IDB4MTAwMGEyMAooWEVO
KSBFTEY6IG5vdGU6IEdVRVNUX09TID0gImxpbnV4IgooWEVOKSBFTEY6IG5vdGU6IEdVRVNUX1ZF
UlNJT04gPSAiMi42IgooWEVOKSBFTEY6IG5vdGU6IFhFTl9WRVJTSU9OID0gInhlbi0zLjAiCihY
RU4pIEVMRjogbm90ZTogVklSVF9CQVNFID0gMHhmZmZmZmZmZjgwMDAwMDAwCihYRU4pIEVMRjog
bm90ZTogSU5JVF9QMk0gPSAweDgwMDAwMDAwMDAKKFhFTikgRUxGOiBub3RlOiBFTlRSWSA9IDB4
ZmZmZmZmZmY4MzNiYzYyMAooWEVOKSBFTEY6IG5vdGU6IEZFQVRVUkVTID0gIiF3cml0YWJsZV9w
YWdlX3RhYmxlcyIKKFhFTikgRUxGOiBub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiCihYRU4pIEVMRjog
bm90ZTogTDFfTUZOX1ZBTElECihYRU4pIEVMRjogbm90ZTogTU9EX1NUQVJUX1BGTiA9IDB4MQoo
WEVOKSBFTEY6IG5vdGU6IFBBRERSX09GRlNFVCA9IDAKKFhFTikgRUxGOiBub3RlOiBIWVBFUkNB
TExfUEFHRSA9IDB4ZmZmZmZmZmY4MWYzYTAwMAooWEVOKSBFTEY6IG5vdGU6IFNVUFBPUlRFRF9G
RUFUVVJFUyA9IDB4ODgwMQooWEVOKSBFTEY6IG5vdGU6IExPQURFUiA9ICJnZW5lcmljIgooWEVO
KSBFTEY6IG5vdGU6IFNVU1BFTkRfQ0FOQ0VMID0gMHgxCihYRU4pIEVMRjogRm91bmQgUFZIIGlt
YWdlCihYRU4pIEVMRjogYWRkcmVzc2VzOgooWEVOKSAgICAgdmlydF9iYXNlICAgICAgICA9IDB4
MAooWEVOKSAgICAgZWxmX3BhZGRyX29mZnNldCA9IDB4MAooWEVOKSAgICAgdmlydF9vZmZzZXQg
ICAgICA9IDB4MAooWEVOKSAgICAgdmlydF9rc3RhcnQgICAgICA9IDB4MTAwMDAwMAooWEVOKSAg
ICAgdmlydF9rZW5kICAgICAgICA9IDB4NDgwMDAwMAooWEVOKSAgICAgdmlydF9lbnRyeSAgICAg
ICA9IDB4MTAwMGEyMAooWEVOKSAgICAgcDJtX2Jhc2UgICAgICAgICA9IDB4ODAwMDAwMDAwMAoo
WEVOKSBFTEY6IHBoZHIgMCBhdCAweDEwMDAwMDAgLT4gMHgyOTVmNjI4CihYRU4pIEVMRjogcGhk
ciAxIGF0IDB4MmEwMDAwMCAtPiAweDMzNmYwMDAKKFhFTikgRUxGOiBwaGRyIDIgYXQgMHgzMzZm
MDAwIC0+IDB4MzNhODAwMAooWEVOKSBFTEY6IHBoZHIgMyBhdCAweDMzYTgwMDAgLT4gMHg0ODAw
MDAwCihYRU4pIERvbTAgbWVtb3J5IG1hcDoKKFhFTikgIFswMDAwMDAwMDAwMDAwMDAwLCAwMDAw
MDAwMDAwMDllZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDAwOWYwMDAsIDAwMDAwMDAw
MDAwYmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDAwMTAwMDAwLCAwMDAwMDAwMDA5
YWZmZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDliMDAwMDAsIDAwMDAwMDAwMDlkZmZm
ZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDA5ZTAwMDAwLCAwMDAwMDAwMDA5ZWZmZmZm
XSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDlmMDAwMDAsIDAwMDAwMDAwMDlmMGZmZmZdIChB
Q1BJIE5WUykKKFhFTikgIFswMDAwMDAwMDA5ZjEwMDAwLCAwMDAwMDAwMGJiNDY1ZmZmXSAodXNh
YmxlKQooWEVOKSAgWzAwMDAwMDAwYmI0NjYwMDAsIDAwMDAwMDAwYmM1NjVmZmZdIChyZXNlcnZl
ZCkKKFhFTikgIFswMDAwMDAwMGJjNTY2MDAwLCAwMDAwMDAwMGM4NzdlZmZmXSAodXNhYmxlKQoo
WEVOKSAgWzAwMDAwMDAwYzg3N2YwMDAsIDAwMDAwMDAwY2FmN2VmZmZdIChyZXNlcnZlZCkKKFhF
TikgIFswMDAwMDAwMGNhZjdmMDAwLCAwMDAwMDAwMGNjZjdlZmZmXSAoQUNQSSBOVlMpCihYRU4p
ICBbMDAwMDAwMDBjY2Y3ZjAwMCwgMDAwMDAwMDBjY2ZmZWZmZl0gKEFDUEkgZGF0YSkKKFhFTikg
IFswMDAwMDAwMGNjZmZmMDAwLCAwMDAwMDAwMGNjZmZmZGQ3XSAodXNhYmxlKQooWEVOKSAgWzAw
MDAwMDAwY2NmZmZkZDgsIDAwMDAwMDAwY2NmZmZlZWZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAw
MDAwMDBjZDAwMDAwMCwgMDAwMDAwMDBjZGZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAw
MDAwZjAwMDAwMDAsIDAwMDAwMDAwZjdmZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAw
MGZkZTAwMDAwLCAwMDAwMDAwMGZkZWZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBm
ZWMwMDAwMCwgMDAwMDAwMDBmZWMwMWZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVj
MTAwMDAsIDAwMDAwMDAwZmVjMTBmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzIw
MDAwLCAwMDAwMDAwMGZlYzIwZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWQ4MDAw
MCwgMDAwMDAwMDBmZWQ4MWZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVkYzAwMDAs
IDAwMDAwMDAwZmVkZGZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZTAwMDAwLCAw
MDAwMDAwMGZlZTAwZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZjAwMDAwMCwgMDAw
MDAwMDBmZmYxZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAxMDAwMDAwMDAsIDAwMDAw
MDAxYjhjZjBmZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDFiOGNmMTAwMCwgMDAwMDAwMDgw
ZjMzZmZmZl0gKHVudXNhYmxlKQooWEVOKSAgWzAwMDAwMDA4MGYzNDAwMDAsIDAwMDAwMDA4MmZm
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgSW5pdGlhbCBsb3cgbWVtb3J5IHZpcnEgdGhyZXNob2xk
IHNldCBhdCAweDQwMDAgcGFnZXMuCihYRU4pIFNjcnViYmluZyBGcmVlIFJBTSBpbiBiYWNrZ3Jv
dW5kCihYRU4pIFN0ZC4gTG9nbGV2ZWw6IEFsbAooWEVOKSBHdWVzdCBMb2dsZXZlbDogQWxsCihY
RU4pIFhlbiBpcyByZWxpbnF1aXNoaW5nIFZHQSBjb25zb2xlLgooWEVOKSAqKiogU2VyaWFsIGlu
cHV0IHRvIERPTTAgKHR5cGUgJ0NUUkwtYScgdGhyZWUgdGltZXMgdG8gc3dpdGNoIGlucHV0KQoo
WEVOKSBGcmVlZCA2NTJrQiBpbml0IG1lbW9yeQooWEVOKSBkMHYwOiB1cGNhbGwgdmVjdG9yIGYz
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDAuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAw
MDAwOjAwOjAwLjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMS4wCihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6MDA6MDEuMQooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjAK
KFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi40CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDA6MDguMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA4LjEKKFhFTikgUENJIGFk
ZCBkZXZpY2UgMDAwMDowMDowOC4yCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTQuMAoo
WEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjMKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAw
MDowMDoxOC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguMQooWEVOKSBQQ0kgYWRk
IGRldmljZSAwMDAwOjAwOjE4LjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4zCihY
RU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguNAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAw
OjAwOjE4LjUKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC42CihYRU4pIFBDSSBhZGQg
ZGV2aWNlIDAwMDA6MDA6MTguNwooWEVOKSBkMHYxIDAwMDA6MDE6MDAuMDogdXBkYXRlZCBCQVIw
IGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikgZDB2MSAwMDAwOjAxOjAwLjA6IHVwZGF0ZWQgQkFS
MCBhZGRyZXNzOiAweGQwODAwMDAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDE6MDAuMAoo
WEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAyOjAwLjAKKFhFTikgZDB2MSAwMDAwOjAzOjAwLjA6
IHVwZGF0ZWQgQkFSMCBhZGRyZXNzOiAweGZjZmZmZmZmZjAKKFhFTikgZDB2MSAwMDAwOjAzOjAw
LjA6IHVwZGF0ZWQgQkFSMCBhZGRyZXNzOiAweGZjOTAwMDAwMDAKKFhFTikgZDB2MSAwMDAwOjAz
OjAwLjA6IHVwZGF0ZWQgQkFSMSBhZGRyZXNzOiAweGZmZmZmZmZmOTAwMDAwMDAKKFhFTikgZDB2
MSAwMDAwOjAzOjAwLjA6IHVwZGF0ZWQgQkFSMSBhZGRyZXNzOiAweGZjOTAwMDAwMDAKKFhFTikg
ZDB2MSAwMDAwOjAzOjAwLjA6IHVwZGF0ZWQgQkFSMiBhZGRyZXNzOiAweGZjZmZmZmZmZjAKKFhF
TikgZDB2MSAwMDAwOjAzOjAwLjA6IHVwZGF0ZWQgQkFSMiBhZGRyZXNzOiAweGZjYTAwMDAwMDAK
KFhFTikgZDB2MSAwMDAwOjAzOjAwLjA6IHVwZGF0ZWQgQkFSMyBhZGRyZXNzOiAweGZmZmZmZmZm
YTAwMDAwMDAKKFhFTikgZDB2MSAwMDAwOjAzOjAwLjA6IHVwZGF0ZWQgQkFSMyBhZGRyZXNzOiAw
eGZjYTAwMDAwMDAKKFhFTikgZDB2MSAwMDAwOjAzOjAwLjA6IHVwZGF0ZWQgQkFSNSBhZGRyZXNz
OiAweGZmZmZmZmYwCihYRU4pIGQwdjEgMDAwMDowMzowMC4wOiB1cGRhdGVkIEJBUjUgYWRkcmVz
czogMHhkMDYwMDAwMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAzOjAwLjAKKFhFTikgZDB2
MSAwMDAwOjAzOjAwLjE6IHVwZGF0ZWQgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIGQw
djEgMDAwMDowMzowMC4xOiB1cGRhdGVkIEJBUjAgYWRkcmVzczogMHhkMDcwMDAwMAooWEVOKSBQ
Q0kgYWRkIGRldmljZSAwMDAwOjAzOjAwLjEKKFhFTikgZDB2MSAwMDAwOjA0OjAwLjA6IHVwZGF0
ZWQgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIGQwdjEgMDAwMDowNDowMC4wOiB1cGRh
dGVkIEJBUjAgYWRkcmVzczogMHhkMDUwMDAwMAooWEVOKSBkMHYxIDAwMDA6MDQ6MDAuMDogdXBk
YXRlZCBCQVIxIGFkZHJlc3M6IDB4ZmZmZmZmZmZkMDUwMDAwMAooWEVOKSBkMHYxIDAwMDA6MDQ6
MDAuMDogdXBkYXRlZCBCQVIxIGFkZHJlc3M6IDB4ZDA1MDAwMDAKKFhFTikgZDB2MSAwMDAwOjA0
OjAwLjA6IHVwZGF0ZWQgQkFSNCBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIGQwdjEgMDAwMDow
NDowMC4wOiB1cGRhdGVkIEJBUjQgYWRkcmVzczogMHhkMDUwNDAwMAooWEVOKSBkMHYxIDAwMDA6
MDQ6MDAuMDogdXBkYXRlZCBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZmZkMDUwNDAwMAooWEVOKSBk
MHYxIDAwMDA6MDQ6MDAuMDogdXBkYXRlZCBCQVI1IGFkZHJlc3M6IDB4ZDA1MDQwMDAKKFhFTikg
UENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC4wCihYRU4pIGQwdjEgMDAwMDowNTowMC4wOiB1cGRh
dGVkIEJBUjAgYWRkcmVzczogMHhmY2ZmZmZmZmYwCihYRU4pIGQwdjEgMDAwMDowNTowMC4wOiB1
cGRhdGVkIEJBUjAgYWRkcmVzczogMHhmYzcwMDAwMDAwCihYRU4pIGQwdjEgMDAwMDowNTowMC4w
OiB1cGRhdGVkIEJBUjEgYWRkcmVzczogMHhmZmZmZmZmZjcwMDAwMDAwCihYRU4pIGQwdjEgMDAw
MDowNTowMC4wOiB1cGRhdGVkIEJBUjEgYWRkcmVzczogMHhmYzcwMDAwMDAwCihYRU4pIGQwdjEg
MDAwMDowNTowMC4wOiB1cGRhdGVkIEJBUjIgYWRkcmVzczogMHhmY2ZmZmZmZmYwCihYRU4pIGQw
djEgMDAwMDowNTowMC4wOiB1cGRhdGVkIEJBUjIgYWRkcmVzczogMHhmYzgwMDAwMDAwCihYRU4p
IGQwdjEgMDAwMDowNTowMC4wOiB1cGRhdGVkIEJBUjMgYWRkcmVzczogMHhmZmZmZmZmZjgwMDAw
MDAwCihYRU4pIGQwdjEgMDAwMDowNTowMC4wOiB1cGRhdGVkIEJBUjMgYWRkcmVzczogMHhmYzgw
MDAwMDAwCihYRU4pIGQwdjEgMDAwMDowNTowMC4wOiB1cGRhdGVkIEJBUjUgYWRkcmVzczogMHhm
ZmZmZmZmMAooWEVOKSBkMHYxIDAwMDA6MDU6MDAuMDogdXBkYXRlZCBCQVI1IGFkZHJlc3M6IDB4
ZDA0MDAwMDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNTowMC4wCihYRU4pIGQwdjEgMDAw
MDowNTowMC4xOiB1cGRhdGVkIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSBkMHYxIDAw
MDA6MDU6MDAuMTogdXBkYXRlZCBCQVIwIGFkZHJlc3M6IDB4ZDA0YzgwMDAKKFhFTikgUENJIGFk
ZCBkZXZpY2UgMDAwMDowNTowMC4xCihYRU4pIGQwdjEgMDAwMDowNTowMC4yOiB1cGRhdGVkIEJB
UjIgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSBkMHYxIDAwMDA6MDU6MDAuMjogdXBkYXRlZCBC
QVIyIGFkZHJlc3M6IDB4ZDAzMDAwMDAKKFhFTikgZDB2MSAwMDAwOjA1OjAwLjI6IHVwZGF0ZWQg
QkFSNSBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIGQwdjEgMDAwMDowNTowMC4yOiB1cGRhdGVk
IEJBUjUgYWRkcmVzczogMHhkMDRjYzAwMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAw
LjIKKFhFTikgZDB2MSAwMDAwOjA1OjAwLjM6IHVwZGF0ZWQgQkFSMCBhZGRyZXNzOiAweGZmZmZm
ZmYwCihYRU4pIGQwdjEgMDAwMDowNTowMC4zOiB1cGRhdGVkIEJBUjAgYWRkcmVzczogMHhkMDIw
MDAwMAooWEVOKSBkMHYxIDAwMDA6MDU6MDAuMzogdXBkYXRlZCBCQVIxIGFkZHJlc3M6IDB4ZmZm
ZmZmZmZkMDIwMDAwMAooWEVOKSBkMHYxIDAwMDA6MDU6MDAuMzogdXBkYXRlZCBCQVIxIGFkZHJl
c3M6IDB4ZDAyMDAwMDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNTowMC4zCihYRU4pIGQw
djEgMDAwMDowNTowMC40OiB1cGRhdGVkIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSBk
MHYxIDAwMDA6MDU6MDAuNDogdXBkYXRlZCBCQVIwIGFkZHJlc3M6IDB4ZDAxMDAwMDAKKFhFTikg
ZDB2MSAwMDAwOjA1OjAwLjQ6IHVwZGF0ZWQgQkFSMSBhZGRyZXNzOiAweGZmZmZmZmZmZDAxMDAw
MDAKKFhFTikgZDB2MSAwMDAwOjA1OjAwLjQ6IHVwZGF0ZWQgQkFSMSBhZGRyZXNzOiAweGQwMTAw
MDAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuNAooWEVOKSBkMHYxIDAwMDA6MDU6
MDAuNTogdXBkYXRlZCBCQVIwIGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikgZDB2MSAwMDAwOjA1
OjAwLjU6IHVwZGF0ZWQgQkFSMCBhZGRyZXNzOiAweGQwNDgwMDAwCihYRU4pIFBDSSBhZGQgZGV2
aWNlIDAwMDA6MDU6MDAuNQooWEVOKSBkMHYxIDAwMDA6MDU6MDAuNjogdXBkYXRlZCBCQVIwIGFk
ZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikgZDB2MSAwMDAwOjA1OjAwLjY6IHVwZGF0ZWQgQkFSMCBh
ZGRyZXNzOiAweGQwNGMwMDAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuNgooWEVO
KSBkMHYxIDAwMDA6MDY6MDAuMDogdXBkYXRlZCBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhF
TikgZDB2MSAwMDAwOjA2OjAwLjA6IHVwZGF0ZWQgQkFSNSBhZGRyZXNzOiAweGQwMDg1MDAwCihY
RU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDY6MDAuMAooWEVOKSBkMHYxIDAwMDA6MDY6MDAuMTog
dXBkYXRlZCBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikgZDB2MSAwMDAwOjA2OjAwLjE6
IHVwZGF0ZWQgQkFSNSBhZGRyZXNzOiAweGQwMDg0MDAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDY6MDAuMQooWEVOKSBkMHYxIDAwMDA6MDY6MDAuMjogdXBkYXRlZCBCQVIwIGFkZHJlc3M6
IDB4ZmZmZmZmZjAKKFhFTikgZDB2MSAwMDAwOjA2OjAwLjI6IHVwZGF0ZWQgQkFSMCBhZGRyZXNz
OiAweGQwMDYwMDAwCihYRU4pIGQwdjEgMDAwMDowNjowMC4yOiB1cGRhdGVkIEJBUjEgYWRkcmVz
czogMHhmZmZmZmZmMAooWEVOKSBkMHYxIDAwMDA6MDY6MDAuMjogdXBkYXRlZCBCQVIxIGFkZHJl
c3M6IDB4ZDAwNDAwMDAKKFhFTikgZDB2MSAwMDAwOjA2OjAwLjI6IHVwZGF0ZWQgQkFSMiBhZGRy
ZXNzOiAweGZmZmZmZmYwCihYRU4pIGQwdjEgMDAwMDowNjowMC4yOiB1cGRhdGVkIEJBUjIgYWRk
cmVzczogMHhkMDA4MjAwMAooWEVOKSBkMHYxIDAwMDA6MDY6MDAuMjogdXBkYXRlZCBCQVIzIGFk
ZHJlc3M6IDB4ZmZmZmZmZmZkMDA4MjAwMAooWEVOKSBkMHYxIDAwMDA6MDY6MDAuMjogdXBkYXRl
ZCBCQVIzIGFkZHJlc3M6IDB4ZDAwODIwMDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNjow
MC4yCihYRU4pIGQwdjEgMDAwMDowNjowMC4zOiB1cGRhdGVkIEJBUjAgYWRkcmVzczogMHhmZmZm
ZmZmMAooWEVOKSBkMHYxIDAwMDA6MDY6MDAuMzogdXBkYXRlZCBCQVIwIGFkZHJlc3M6IDB4ZDAw
MjAwMDAKKFhFTikgZDB2MSAwMDAwOjA2OjAwLjM6IHVwZGF0ZWQgQkFSMSBhZGRyZXNzOiAweGZm
ZmZmZmYwCihYRU4pIGQwdjEgMDAwMDowNjowMC4zOiB1cGRhdGVkIEJBUjEgYWRkcmVzczogMHhk
MDAwMDAwMAooWEVOKSBkMHYxIDAwMDA6MDY6MDAuMzogdXBkYXRlZCBCQVIyIGFkZHJlc3M6IDB4
ZmZmZmZmZjAKKFhFTikgZDB2MSAwMDAwOjA2OjAwLjM6IHVwZGF0ZWQgQkFSMiBhZGRyZXNzOiAw
eGQwMDgwMDAwCihYRU4pIGQwdjEgMDAwMDowNjowMC4zOiB1cGRhdGVkIEJBUjMgYWRkcmVzczog
MHhmZmZmZmZmZmQwMDgwMDAwCihYRU4pIGQwdjEgMDAwMDowNjowMC4zOiB1cGRhdGVkIEJBUjMg
YWRkcmVzczogMHhkMDA4MDAwMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjMKKFhF
TikgYXJjaC94ODYvaHZtL3N2bS9zdm0uYzoxODg5OmQwdjcgUkRNU1IgMHhjMDAxMDA1OCB1bmlt
cGxlbWVudGVkCihYRU4pIGFyY2gveDg2L2h2bS9zdm0vc3ZtLmM6MTg4OTpkMHYwIFJETVNSIDB4
YzAwMTAyOWIgdW5pbXBsZW1lbnRlZAooWEVOKSBhcmNoL3g4Ni9odm0vc3ZtL3N2bS5jOjE4ODk6
ZDB2MCBSRE1TUiAweGMwMDEwMjlhIHVuaW1wbGVtZW50ZWQKKFhFTikgZDB2MiAwMDAwOjAzOjAw
LjA6IHVwZGF0ZWQgQkFSMCBhZGRyZXNzOiAweGZjMDAwMDAwMDAKKFhFTikgZDB2MiAwMDAwOjAz
OjAwLjA6IHVwZGF0ZWQgQkFSMSBhZGRyZXNzOiAweGEwMDAwMDAwMAooWEVOKSBkMHYyIDAwMDA6
MDM6MDAuMDogdXBkYXRlZCBCQVIyIGFkZHJlc3M6IDB4ZmMwMDAwMDAwMAooWEVOKSBkMHYyIDAw
MDA6MDM6MDAuMDogdXBkYXRlZCBCQVIzIGFkZHJlc3M6IDB4OTAwMDAwMDAwCihYRU4pIDAwMDA6
MDM6MDAuMDogZGV0ZWN0ZWQgQkFSIzAgc2l6ZSBjaGFuZ2UgKDB4MTAwMDAwMDAgLT4gMHgyMDAw
MDAwMDApCg==

--_005_BL1PR12MB5849FC8077C7C6035F1D3E15E7242BL1PR12MB5849namp_--


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 06:46:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 06:46:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836910.1252817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBq5v-0000Dc-TD; Fri, 15 Nov 2024 06:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836910.1252817; Fri, 15 Nov 2024 06:46: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 1tBq5v-0000DV-PC; Fri, 15 Nov 2024 06:46:15 +0000
Received: by outflank-mailman (input) for mailman id 836910;
 Fri, 15 Nov 2024 06:46: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=CdzU=SK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tBq5u-0000DM-OI
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 06:46:14 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c44a7a0-a31d-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 07:46:10 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-53da5511f3cso1432431e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 22:46:10 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432da28bbddsm46682445e9.30.2024.11.14.22.46.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 22:46: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: 4c44a7a0-a31d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRjNDRhN2EwLWEzMWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjUzMTcwLjIwMTE0OCwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731653169; x=1732257969; 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=LHcWU1fnMJKPmn1xtu4UO2KMa4bnNO8B+bez41rDJbs=;
        b=fzlBLr6vRtQaVhzslf4ErF99jeOKek3Ae24/Jcos/MECUKGK/cuGswcVDTvmQg9fYz
         KDMjmkBdeYwK63PyHZlRNzR3/ULyq4Wil1m3EcNwUK/TWdpLsTX15py5C+YaUi2UTq0D
         86LRNbm7ifE9O9m4PZhlwCX6Xdnb4v++oVdnVSPTDrKMeLKy4oM2plUrlIpRMHhKi95+
         Yh4/FJHWPNQLI6kdTalr2ohTHvitTw18NXLHg1iQAvxpuvsnjvbEAMVOE6UuS4jaZGiQ
         ZwPbaVoFdk77CjtlVVzsmKDMo3NGxX879qBqnh72moRYBkuvDwdRu2XgA+Gel+Bwz/CA
         KFvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731653169; x=1732257969;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=LHcWU1fnMJKPmn1xtu4UO2KMa4bnNO8B+bez41rDJbs=;
        b=mU6BOOCB+GwkcY27dS0Ap/HKr/Md+y50PSRsX+gt06jJOlMg0qtzUyOAr/GS5chBRm
         eFOw95ah5KIuxig+4MFFgePrIJHODahgHAvNg0dfKsmdX9N2W8HgFvhrc5zZhKLsdZTa
         F6f5lkkxpa0Mw994qO2g2EUMfWebEQAJJK5ZQbcaMbjizfRlFkjVkCZZX/eK/AVN6ajM
         yDIgiQyc9tUQzRznwkPdAZK/1k5OI7kF3nqTFPru8Va9f6041KKX3OInRtfxfCc7RIvw
         d0ado50UhgrY/wfFaM8YeQJUZB/Dk3yXICm/chh+3CBaKRgbC/ROWyl31rG64pdTXG2h
         7eEQ==
X-Forwarded-Encrypted: i=1; AJvYcCU9R1F3egGCLD2N2khEcBVM+lR60cdEjOW6Ctl9p0LE4uExDfzQfr/GN8We+MDw5rSmTlqiAjDNtGY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+dtz7lNsTtkzed9cYnRhBoCAe0oLbvt2BaBoE4rWm/cj7wuGA
	EY7kzrtXSbYktukNInC2bKcouo/k+d4UJ1FBXCNBZHj+NUmS5wsNbPBa5eNnT14=
X-Google-Smtp-Source: AGHT+IFhzmEo3Bf12ozsS7VtomVvuaWM6s6J1mEqIqrRrv75a6+PagviSvwN1rR7O29a06LXHmpUgQ==
X-Received: by 2002:a05:6512:a8b:b0:537:a745:3e with SMTP id 2adb3069b0e04-53dab3b05d0mr581913e87.45.1731653169326;
        Thu, 14 Nov 2024 22:46:09 -0800 (PST)
Message-ID: <0f6fb528-7432-42b9-8605-58d95621509d@suse.com>
Date: Fri, 15 Nov 2024 07:46:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: AMD EPYC virtual network performances
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Andrei Semenov <andrei.semenov@vates.tech>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
 <ZzTg_p-8E0_jrkii@mattapan.m5p.com>
 <467e46ad-d0d0-4217-9b70-b48e3c7a1fb5@suse.com>
 <ZzaRnFLMq9OY3jj6@mattapan.m5p.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: <ZzaRnFLMq9OY3jj6@mattapan.m5p.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------K0OR75mBQjX9KJ6l0lFxYGyd"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------K0OR75mBQjX9KJ6l0lFxYGyd
Content-Type: multipart/mixed; boundary="------------14CBNCBmiqaffpvb5bWJvk0l";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Andrei Semenov <andrei.semenov@vates.tech>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <0f6fb528-7432-42b9-8605-58d95621509d@suse.com>
Subject: Re: AMD EPYC virtual network performances
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
 <ZzTg_p-8E0_jrkii@mattapan.m5p.com>
 <467e46ad-d0d0-4217-9b70-b48e3c7a1fb5@suse.com>
 <ZzaRnFLMq9OY3jj6@mattapan.m5p.com>
In-Reply-To: <ZzaRnFLMq9OY3jj6@mattapan.m5p.com>

--------------14CBNCBmiqaffpvb5bWJvk0l
Content-Type: multipart/mixed; boundary="------------dSX3KTKLVEQ21wFGM0aIyus0"

--------------dSX3KTKLVEQ21wFGM0aIyus0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTUuMTEuMjQgMDE6MTEsIEVsbGlvdHQgTWl0Y2hlbGwgd3JvdGU6DQo+IE9uIFdlZCwg
Tm92IDEzLCAyMDI0IGF0IDA4OjIwOjAyUE0gKzAxMDAsIErDvHJnZW4gR3Jvw58gd3JvdGU6
DQo+PiBPbiAxMy4xMS4yNCAxODoyNSwgRWxsaW90dCBNaXRjaGVsbCB3cm90ZToNCj4+PiBP
biBUdWUsIEp1bCAwOSwgMjAyNCBhdCAwODozNjoxOEFNICswMDAwLCBBbmRyZWkgU2VtZW5v
diB3cm90ZToNCj4+Pj4NCj4+Pj4gQWZ0ZXIgc29tZSBpbnZlc3RpZ2F0aW9ucyB3ZSBub3Rp
Y2VzIGEgaHVnZSBwZXJmb3JtYW5jZXMgZHJvcCAocGVyZnMgZGl2aWRlZA0KPj4+PiBieQ0K
Pj4+PiBmYWN0b3Igb2YgNSkgc3RhcnRpbmcgZnJvbSA1LjEwLjg4IExpbnV4IGtlcm5lbCB2
ZXJzaW9uIG9uIHRoZSBBTUQgRVBZQw0KPj4+PiBwbGF0Zm9ybXMuIFRoZSBwYXRjaCBpbnRy
b2R1Y2VkIGluIHRoaXMga2VybmVsIHZlcnNpb24gdGhhdCBhbGxvd3MgdG8NCj4+Pj4gcGlu
cG9pbnQNCj4+Pj4gdGhlIGJ1Z2d5IGJlaGF2aW9yIGlzIDoNCj4+Pj4NCj4+Pj4gICDCoOKA
nHhlbi9uZXRmcm9udDogaGFyZGVuIG5ldGZyb250IGFnYWluc3QgZXZlbnQgY2hhbm5lbCBz
dG9ybXPigJ0NCj4+Pj4gZDMxYjMzNzkxNzlkNjQ3MjRkM2JiZmE4N2JkNGFkYTk0ZTMyMzdk
ZQ0KPj4+Pg0KPj4+PiBUaGUgcGF0Y2ggYmFzaWNhbGx5IGJpbmRzIHRoZSBuZXR3b3JrIGZy
b250ZW5kIHRvIHRoZSBgeGVuX2xhdGVlb2lfY2hpcGANCj4+Pj4gaXJxX2NoaXAgKGluc2Vh
ZCBvZiBgeGVuX2R5bmFtaWNfY2hpcGApIHdoaWNoIGFsbG93cyB0byBpdHMgY2xpZW50cyB0
bw0KPj4+PiBpbmZvcm0NCj4+Pj4gdGhlIGNoaXAgaWYgc3B1cmlvdXMgaW50ZXJydXB0cyBh
cmUgZGV0ZWN0ZWQgYW5kIHNvIHRoZSBkZWxheSBpbiBpbnRlcnJ1cHQNCj4+Pj4gdHJlYXRt
ZW50IGlzIGludHJvZHVjZWQgYnkgdGhlIGNoaXAuDQo+Pj4NCj4+PiBJIHdvcnJ5IEknbSBi
ZWluZyBrbmF2ZSBoZXJlLg0KPj4+DQo+Pj4gRm9yIHRoZSBoZWNrIG9mIGl0LCBJIHRvb2sg
YSBnbGFuY2UgYXQgYjI3ZDQ3OTUwZTQ4LiAgSWYgbXkgdW5kZXJzdGFuZGluZw0KPj4+IGlz
IGNvcnJlY3QsIGIyN2Q0Nzk1MGU0OCBpcyBtYWtpbmcgYSB2ZXJ5IGJhc2ljIChhbmQgd3Jv
bmcpIGFzc3VtcHRpb24NCj4+PiBhYm91dCB0aW1pbmcvbGF0ZW5jeS4NCj4+Pg0KPj4+IElu
IHBhcnRpY3VsYXIgYW55IHRpbWUgZWl0aGVyIHNpZGUgcmVjZWl2ZSBhbiBldmVudCwgaXQg
d2lsbCBoYW5kbGUNCj4+PiBYICMgb2YgaW5jb21pbmcgcGF5bG9hZHMgYW5kIFkgIyBvZiBh
Y2tub3dsZWRnZWQgb3V0Z29pbmcgcGF5bG9hZHMuICBBcw0KPj4+IHN1Y2ggaWYgWCArIFkg
PiAxLCB0aGVuIHVwIHRvIFggKyBZIC0gMSBzcHVyaW91cyBldmVudHMgbWF5IGJlIGRldGVj
dGVkLg0KPj4+IFRoZSBpc3N1ZSBpcyB0aGVyZSBpcyBubyBzeW5jaHJvbml6YXRpb24gYmV0
d2VlbiB0aGUgZXZlbnQgY2hhbm5lbCBhbmQNCj4+PiB0aGUgd29yayBxdWV1ZXMuDQo+Pj4N
Cj4+PiBJbiBwYXJ0aWN1bGFyIHRoZSBuZXR3b3JrIGJhY2sgZW5kIGNvdWxkIGxlZ2l0aW1h
dGVseSBnZW5lcmF0ZToNCj4+Pg0KPj4+IHdvcmswCXNpZ25hbDAJd29yazEJc2lnbmFsMQl3
b3JrMglzaWduYWwyCXdvcmszCXNpZ25hbDMNCj4+Pg0KPj4+IFdoZXJlYXMgdGhlIG5ldHdv
cmsgZnJvbnQgZW5kIG1heSBoYW5kbGUgdGhpcyBhczoNCj4+Pg0KPj4+IGV2ZW50MAl3b3Jr
MAl3b3JrMQl3b3JrMgl3b3JrMwlldmVudDEJZXZlbnQyCWV2ZW50Mw0KPj4+DQo+Pj4gV2hl
cmUgYjI3ZDQ3OTUwZTQ4IHdvdWxkIGludGVycHJldCBldmVudHMgMS0zIGFzIHNwdXJpb3Vz
LCBldmVuIHRob3VnaA0KPj4+IHRoZXkncmUgcGVyZmVjdGx5IGxlZ2l0aW1hdGUuICBUaGUg
c2FtZSBwaGVub21lbm9uIGNvdWxkIG9jY3VyIGluIGJvdGgNCj4+PiBkaXJlY3Rpb25zIGFu
ZCBhbHNvIHdpdGggdGhlIFhlbiBibG9jayBkZXZpY2VzLg0KPj4NCj4+IE5vLg0KPj4NCj4+
IEZvciBvbmUsIGFzIGxvbmcgYXMgZXZlbnQwIGlzbid0IEVPSSdkLCB0aGUgb3RoZXIgZXZl
bnRzIHdvdWxkIGp1c3QgYmUNCj4+IG1lcmdlZCBpbnRvIGEgc2luZ2xlIG9uZS4NCj4gDQo+
IFdpdGggdGhlIDItbGV2ZWwgYml0ZmllbGQgZXZlbnQgY2hhbm5lbCBjZXJ0YWlubHksIGJ1
dCB3aGF0IGlmIEZJRk8NCj4gZXZlbnQgY2hhbm5lbHMgd2VyZSBpbiB1c2U/DQoNClRoZSBz
YW1lIGFwcGxpZXMuIFRoZSBldmVudCBjaGFubmVsIGlzIG1hc2tlZCBhcyBsb25nIGFzIHRo
ZXJlIHdhcyBubw0KRU9JLg0KDQo+IA0KPj4gQWRkaXRpb25hbGx5LCBhcyBsb25nIGFzIHdv
cmswIGlzbid0IGFja25vd2xlZGdlZCBieSBpbmNyZW1lbnRpbmcgdGhlDQo+PiBjb25zdW1l
ciBpbmRleCwgYWRkaXRpb25hbCBxdWV1ZWQgd29yayBpdGVtcyBzaG91bGQgTk9UIHJlc3Vs
dCBpbg0KPj4gYWRkaXRpb25hbCBldmVudHMgYmVpbmcgc2VudC4gQW4gZXZlbnQgaXMgb25s
eSBzZW50IGlmIGEgd29yayBpdGVtIGlzDQo+PiBxdWV1ZWQgdG8gYSByaW5nIGJ1ZmZlciB3
aXRoIGNvbnN1bWVyID09IHByb2R1Y2VyLg0KPiANCj4gV2hhdCBpZiB0aGUgZnJvbnQtZW5k
IGFuZCBiYWNrLWVuZCB3ZXJlIHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHkgb24NCj4gZGlmZmVy
ZW50IHByb2Nlc3NvcnM/DQoNClRoZXJlIGFyZSAob3Igc2hvdWxkIGJlKSBhcHByb3ByaWF0
ZSBiYXJyaWVycyBhcm91bmQgYWNjZXNzZXMgb2YgY29uc3VtZXINCmFuZCBwcm9kdWNlciBp
bmRpY2VzLCBhbmQgdGhlIHNlcXVlbmNlIHRoZXkgc2hvdWxkIGJlIGFjY2Vzc2VkIGlzIHdl
bGwNCmRlZmluZWQuDQoNCj4gDQo+Pj4gVWx0aW1hdGVseSBob3cgaXMgdGhlIG5ldHdvcmsg
cG9ydGlvbiBvZiBYU0EtMzkxIGFueSBkaWZmZXJlbnQgZnJvbSBhbnkNCj4+PiBvdGhlciBu
ZXR3b3JrIERvUz8gIElmIGFuIGludGVycnVwdCBpcyBnZW5lcmF0ZWQgZm9yIGV2ZXJ5IHNp
bmdsZSBwYWNrZXQNCj4+PiBvZiBhIHNlcmllcyBvZiBydW50IGZyYW1lcywgdGhlcmUgd2ls
bCBiZSBoZWF2eSBwcm9jZXNzb3IgdXNlIGZvciBsaXR0bGUNCj4+PiBuZXR3b3JrIHRyYWZm
aWMuDQo+Pg0KPj4gVGhlIHByb2JsZW0gaXMgdGhhdCBhIHN0ZWFkeSBzdHJlYW0gb2YgZXZl
bnRzIGNvdWxkIGtlZXAgdGhlIG90aGVyIHNpZGUNCj4+IGluIElSUSBoYW5kbGluZyBmb3Ig
YXJiaXRyYXJ5IGFtb3VudCBvZiB0aW1lcywgbGVhZGluZyB0byBoYW5ndXBzLg0KPiANCj4g
SSBrbm93LiAgSSB3YXMgcG9pbnRpbmcgb3V0IHRoaXMgc2VlbXMgbGl0dGxlIGRpZmZlcmVu
dCBmcm9tIG90aGVyDQo+IHR5cGljYWwgbmV0d29yayBEb1MgYmVoYXZpb3IuICBUaGlzIHNv
cnQgb2Ygc2l0dWF0aW9uIGlzIGFsc28gYW4gaXNzdWUNCj4gd2hlbiBuZXR3b3JrIHNwZWVk
cyBhcmUgaW5jcmVhc2luZyBzaW5jZSBtb3JlIHBhY2tldHMgbWVhbnMgbW9yZQ0KPiBpbnRl
cnJ1cHRzLg0KPiANCj4+PiBBTUQgc3lzdGVtcyBtYXkgZmFpciB3b3JzZSB0aGFuIEludGVs
IHN5c3RlbXMgZHVlIHRvIGRpZmZlcmluZyBjYWNoZQ0KPj4+IGNvaGVyZW5jZSBiZWhhdmlv
ci9sYXRlbmN5LiAgUGVyaGFwcyBBTUQncyBOVU1BIGltcGxlbWVudGF0aW9uIGFkZHMNCj4+
PiBzb21lIGxhdGVuY3kuICAoaHVoLCBzdWRkZW5seSB0aGUgUkFJRDEgaXNzdWUgY29tZXMg
dG8gbWluZCkNCj4+Pg0KPj4+DQo+Pj4gSG9wZWZ1bGx5IEknbSBub3QgbWFraW5nIGtuYXZl
IHNwZWN1bGF0aW9uIGhlcmUuICBNaWdodCB0aGlzIGJlIHRoZQ0KPj4+IHNpbXBsZXN0IG9m
IGlzc3VlcywganVzdCBpdCB3YXMgbWlzc2VkIGR1ZSB0byBiZWluZyB0b28gb2J2aW91cz8N
Cj4+DQo+PiBJIGRvbid0IGFncmVlIHdpdGggeW91ciBhbmFseXNpcywgc2VlIGFib3ZlLg0K
PiANCj4gT2theS4gIEkgd2FzIGFza2luZyBzaW5jZSBpdCBsb29rZWQgYSBiaXQgb2RkIGFu
ZCB0aGVyZSBoYXMgYmVlbiBubyBuZXdzDQo+IG9uIHRoaXMgaXNzdWUgKHVubGVzcyBJIG1p
c3NlZCBzb21lIHBhdGNoIGZseWluZyBieSkuDQo+IA0KPiBJIGRvbid0IGtub3cgaG93IGxh
cmdlIHRoZSBpbXBhY3Qgb2YgdGhpcyBpcy4gIEkgd291bGRuJ3QgYmUgc3VycHJpc2VkIGlm
DQo+IHRoaXMgdHVybmVkIG91dCB0byBvdmVyd2hlbG0gYWxsIG15IG90aGVyIGVmZm9ydHMg
YXQgcGVyZm9ybWFuY2UNCj4gaW1wcm92ZW1lbnQuDQo+IA0KPiBBbnkgbmV3cyBvbiB5b3Vy
IGVmZm9ydHMgdG8gdHJhY2sgdGhpcyBkb3duPw0KDQpFTk9USU1FIHVwIHRvIG5vdy4NCg0K
RGlkIHlvdSB0cnkgdG8gc2V0IHRoZSBzcHVyaW91cyB0aHJlc2hvbGQgdG8gZS5nLiAyIGlu
c3RlYWQgb2YgdGhlIGRlZmF1bHQNCm9mIDE/IEluIGNhc2UgdGhhdCBoZWxwcyBpdCBtaWdo
dCBiZSBhIGdvb2QgaWRlYSB0byBlaXRoZXIgY2hhbmdlIHRoZSBkZWZhdWx0DQpvciB0byBh
dCBsZWFzdCBhZGQgYSBib290IHBhcmFtZXRlciBmb3Igc2V0dGluZyB0aGUgZGVmYXVsdC4N
Cg0KDQpKdWVyZ2VuDQo=
--------------dSX3KTKLVEQ21wFGM0aIyus0
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-----

--------------dSX3KTKLVEQ21wFGM0aIyus0--

--------------14CBNCBmiqaffpvb5bWJvk0l--

--------------K0OR75mBQjX9KJ6l0lFxYGyd
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/Ey8FAmc27i8FAwAAAAAACgkQsN6d1ii/Ey/V
pwgAhWz8cljrVTkHqLk3/yBZjuBOT0n2gjXaHMdQVPRCMxwD+jFx5qaOkaeSof6BVUw/jsTalJnk
L79ev8zc7b/OnPt4s2SFqxDLeE5Tc1ClxZGh1SD/hUDNE88VWF7BDBFKfYwALGlAz5q2tCyHuXHI
miFJ5qZJ/iSnvqKYHyLqJVRZSORi7rDaoXuLXtgZMWL0MxePf/Oyv/8qujOrjGhrEezn27iRdpo+
tiGo67IzD2k6pxV6+x7bZus2LkSOFC6/1yWIhq4ZOIKIomT95/q/nPihFMorauNm9IrlbFNMKLs0
s7yS/HMo5rdc47vl/HvtEhnS7GkDKgW6GNU+vSwEFg==
=u0v0
-----END PGP SIGNATURE-----

--------------K0OR75mBQjX9KJ6l0lFxYGyd--


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 07:55:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 07:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836921.1252832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBrAf-0000rA-RX; Fri, 15 Nov 2024 07:55:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836921.1252832; Fri, 15 Nov 2024 07:55: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 1tBrAf-0000r3-No; Fri, 15 Nov 2024 07:55:13 +0000
Received: by outflank-mailman (input) for mailman id 836921;
 Fri, 15 Nov 2024 07: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBrAe-0000qv-4h
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 07:55:12 +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 ed60a5d4-a326-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 08:55:06 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-382242cd8bbso447241f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Nov 2024 23:55: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-3821adadf8fsm3621730f8f.39.2024.11.14.23.55.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Nov 2024 23:55: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: ed60a5d4-a326-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzQiLCJoZWxvIjoibWFpbC13cjEteDQzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVkNjBhNWQ0LWEzMjYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjU3MzA2LjExNTc3NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731657305; x=1732262105; 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=rrvjE0Cj6vWIvE+eeISs3VaWLZJAI6NXdikiHCOwDw0=;
        b=chb7hIsQwGYU5g5CyykA95wGe/hrTtoW9djNxNGbM3OnPR3gABLIyPCyBw81iFsScJ
         5c/lsNunhXT6sT8RaW6TjZUPApvxlFY563CGNWH3QraQAXU5g18I7FU41EQpBj4SoWzi
         9ytX6AaAOyVKQhBcq9Yy6D6+lclBjp7m4g20c7SfEbmVQvEEEoIDGPKRFe+FKh+IpdBp
         WnZuG/XR8/2RlVQP6bMXjXI1uYDCokkN+HXMUCfxORmC/HsKRfBKj0BdCyTlr3C4rRbB
         OY5pv72MQS+kScd9OCKzMmmGU5D34Ry8Xlyk75qlgdnnMQJ41HWaEXK23ModvQckQO97
         /0Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731657305; x=1732262105;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rrvjE0Cj6vWIvE+eeISs3VaWLZJAI6NXdikiHCOwDw0=;
        b=SWGGdjk2qr4uc49ZXcmm3R2PjNJveze9mwyxiqnYY8MkB5VStNvKuL7YopphIz9YhK
         b40Art9uPiZ21NPKBRNjyTiBVS98UJ/eSEYNoFkWpJKT6RPXajM2+4FfofWQII8ggR6D
         XS2NaYY5SJ49tWcG0v4nV+H/WfrmTE7QhfgQm3k+qb9e2ysvnvnqhLZgspCd4Jf8ySwX
         uNYvU0xYuLNy/FPisArzRwcfDC0/wVJz2HolvyWTbWCrV0XxZuO07F0YENkZTxzo8Gi6
         kSi87exTfiVIL+3lopVix1S0mx6R9zyOX4LsJIajYFrAjfrC9AokzcFa/o97xiulBTE7
         Vwlg==
X-Forwarded-Encrypted: i=1; AJvYcCWUzvR40fAq3+nIhWx56ATsyMr7kJgKWH3KHTezh1uky/szcrEMkePi6GMnqZwYPWm3OHXHBWFn1ng=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBKiTqqLrMef5AJeKeE4JqRHeRzBbwJi75U3awtGhYfODQjSvA
	Qw4A8KIAUjentOoy13yMdEFs1KG04rVHVlw+hKXym7hq/AoTcjcV+1ews7iAPQ==
X-Google-Smtp-Source: AGHT+IGumqAWeeTUkube+A687oEew1gHMoE4R8kQbwmkpIWLPkgqrZ7M6KavqQgnVV4Je/bXJMMBcg==
X-Received: by 2002:a05:6000:4023:b0:37d:54a0:d0a1 with SMTP id ffacd0b85a97d-38225ac46camr1209996f8f.56.1731657305394;
        Thu, 14 Nov 2024 23:55:05 -0800 (PST)
Message-ID: <69f9e816-6f17-4821-b26e-668f451e24c5@suse.com>
Date: Fri, 15 Nov 2024 08:55:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/2] xen/pci: introduce PF<->VF links
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241112205321.186622-1-stewart.hildebrand@amd.com>
 <20241112205321.186622-2-stewart.hildebrand@amd.com>
 <975e3dbd-40e8-49c6-8aab-7e7bde1a233f@suse.com>
 <06149848-c14c-4f44-80b8-b596479505cf@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: <06149848-c14c-4f44-80b8-b596479505cf@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 19:50, Stewart Hildebrand wrote:
> On 11/14/24 05:34, Jan Beulich wrote:
>> On 12.11.2024 21:53, Stewart Hildebrand wrote:
>>> Add links between a VF's struct pci_dev and its associated PF struct
>>> pci_dev.
>>>
>>> The hardware domain is expected to add a PF first before adding
>>> associated VFs. Similarly, the hardware domain is expected to remove the
>>> associated VFs before removing the PF. If adding/removing happens out of
>>> order, print a warning and return an error. This means that VFs can only
>>> exist with an associated PF.
>>>
>>> Additionally, if the hardware domain attempts to remove a PF with VFs
>>> still present, mark the PF and VFs broken, because Linux Dom0 has been
>>> observed to not respect the error returned.
>>>
>>> Move the call to pci_get_pdev() down to avoid dropping and re-acquiring
>>> the pcidevs_lock(). Drop the call to pci_add_device() as it is invalid
>>> to add a VF without an existing PF.
>>>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>
>> I'm okay with this, so in principle
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks, I very much appreciate it! However, is it appropriate for me to
> pick up this tag considering the requested/proposed changes?

In general if in doubt, leave it out. Here, since you're meaning to
make further changes, it certainly wants leaving out.

>>> @@ -703,7 +696,38 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>>>           * extended function.
>>>           */
>>>          if ( pdev->info.is_virtfn )
>>> -            pdev->info.is_extfn = pf_is_extfn;
>>> +        {
>>> +            struct pci_dev *pf_pdev = pci_get_pdev(NULL,
>>> +                                                   PCI_SBDF(seg,
>>> +                                                           info->physfn.bus,
>>> +                                                           info->physfn.devfn));
> 
> BTW, since I'm spinning another rev anyway, are there any opinions on
> the indentation here?

Well, yes. Andrew's preferred (or so I think) way of laying this out
would (imo) certainly be better here:

            struct pci_dev *pf_pdev =
                pci_get_pdev(NULL,
                             PCI_SBDF(seg, info->physfn.bus,
                                      info->physfn.devfn));

(with less line wrapping if stuff fits within 80 chars, which I didn't
specifically check).

>>> +                       &pdev->sbdf,
>>> +                       &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn));
>>> +                free_pdev(pseg, pdev);
>>> +                ret = -ENODEV;
>>> +                goto out;
>>> +            }
>>> +
>>> +            pdev->info.is_extfn = pf_pdev->info.is_extfn;
>>
>> There's a comment related to this, partly visible in patch context above.
>> That comment imo needs moving here. And correcting while moving (it's
>> inverted imo, or at least worded ambiguously).
> 
> I'll move it. As far as wording goes, I suggest:
> 
>             /*
>              * PF's 'is_extfn' field indicates whether the VF is an extended
>              * function.
>              */

Or maybe "VF inherits its 'is_extfn' from PF"?

>>> +            pdev->pf_pdev = pf_pdev;
>>> +            list_for_each_entry(vf_pdev, &pf_pdev->vf_list, vf_list)
>>> +            {
>>> +                if ( vf_pdev == pdev )
>>> +                {
>>> +                    already_added = true;
>>> +                    break;
>>> +                }
>>> +            }
>>> +            if ( !already_added )
>>> +                list_add(&pdev->vf_list, &pf_pdev->vf_list);
>>> +        }
>>>      }
>>
>> Personally, as I have a dislike for excess variables, I'd have gotten away
>> without "already_added". Instead of setting it to true, vf_pdev could be
>> set to NULL. Others may, however, consider this "obfuscation" or alike.
> 
> This relies on vf_pdev being set to non-NULL when the list is empty and
> after the last iteration if the list doesn't contain the element. I had
> to look up the definitions of list_for_each_entry, INIT_LIST_HEAD, and
> list_{add,del,entry} to verify that vf_pdev would be non-NULL in those
> cases.
> 
> Perhaps a better approach would be to introduce list_add_unique() in
> Xen's list library? Then we can also get rid of the vf_pdev variable.
> 
> static inline bool list_contains(struct list_head *entry,
>                                  struct list_head *head)
> {
>    struct list_head *ptr;
> 
>    list_for_each(ptr, head)
>    {
>        if ( ptr == entry )
>            return true;
>    }
> 
>    return false;
> }
> 
> static inline void list_add_unique(struct list_head *new,
>                                    struct list_head *head)
> {
>     if ( !list_contains(new, head) )
>         list_add(new, head);
> }

I'm uncertain of this kind of an addition. For long lists one would need to
be careful with whether to actually use list_contains(). It being a simple
library function would make this easy to overlook.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 08:02:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 08:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836933.1252841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBrHp-00036L-Nd; Fri, 15 Nov 2024 08:02:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836933.1252841; Fri, 15 Nov 2024 08:02: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 1tBrHp-00036E-L4; Fri, 15 Nov 2024 08:02:37 +0000
Received: by outflank-mailman (input) for mailman id 836933;
 Fri, 15 Nov 2024 08:02: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBrHo-000361-DP
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 08:02:36 +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 f6e5e993-a327-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 09:02:31 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-37d538fe5f2so292559f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 00:02: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-3821ada3fc9sm3629735f8f.20.2024.11.15.00.02.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 00:02: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: f6e5e993-a327-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmUiLCJoZWxvIjoibWFpbC13cjEteDQyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY2ZTVlOTkzLWEzMjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjU3NzUxLjUwODMzMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731657751; x=1732262551; 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=XCBwzEqfBQazh3BuF2QFMG8+QIagOJ+aJ0XZQXpAjQQ=;
        b=Y3MR3kSNXCmodCBYvGQQxFEZHRI5zj6QxXPAhsR7gHenC57AW2k5Sc0oZycp8N0hy0
         DUVxTH7yIgHzdbodF9pEdOHpoHRd7isGYgisjMV1CYm3MrCoKwU32g1Sw5RQctxigjYJ
         aRRqjhDyPzGZx6wfxgcGS6EUq4vKhEZnZcPhYRhRgHLpCj8eYbgkB5DuyEFr/YET9sPr
         VKW+biyA/QrZ9Wz9W+PpxgVujpPyVvu67PNron45lfZ8fOcRmaRRhRankyEkAOP5gozJ
         VboQnDlLzGcBoByWi/FGhBT9/ywVZdICnF9INkGxQc8HYB3MtH1wz1k4BB957OsRbyDU
         lZug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731657751; x=1732262551;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XCBwzEqfBQazh3BuF2QFMG8+QIagOJ+aJ0XZQXpAjQQ=;
        b=ArP3V0VK2LxPx4Kvw8UdOvVPwDYV+n3eZrE1Kihg5Zx0xWaXx24jFGOWnmIJ8dRKA+
         iLu49MoNin9hXQKPy5onPh+VFCAn7zwkWjWmSHxPBONuvpbeztpqRl1hC6hUGbTAqjPn
         2PUmhkRJuzIieaZR6LIZ86nyVOv0OD/fjYX1tl0lwwVJSV02pDgH0CggySq/4Z9PoqIh
         JkeD3zJdvyMGPtwLCzHwgN5ijBS67POigAbPpQkQYrMVfo/TGZlUZdk9IfZEDZ1dyD37
         SK1OYLMaJNbtgVnYaovlUZnX436DENcKFq81ubhozfVZr/WbQlOrTk8qoKiTd3xVR98r
         mQXg==
X-Forwarded-Encrypted: i=1; AJvYcCXt+QGzg/P1g3rkcZfyh/M0DPzr6Et56Z4i1RM9BSFXqFp8KZ8Yjt6srkRkJx+pFx3R8ss5yApbb9o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCfo/eERVVa1gPxIMKdZq/xESRBZ7DiO75mBu4UyAGRBRfr54R
	YiSdfscFVPNItxwXcVARkq4kd2I6TXTDGBB2AcHx5nbjAUXc5PpUjl4pwalLIA==
X-Google-Smtp-Source: AGHT+IF3z8LHWZFlJ+Z8q9bRbYApMBXbA7LxP/1D9v7/Ah3iIN3fQ0uNjqvLlaiwOqhnXND8lsa1AQ==
X-Received: by 2002:a5d:5d12:0:b0:37d:5129:f45e with SMTP id ffacd0b85a97d-3822590f339mr1253396f8f.20.1731657750794;
        Fri, 15 Nov 2024 00:02:30 -0800 (PST)
Message-ID: <9ff021f5-fc32-4283-9ee4-f807333e05bb@suse.com>
Date: Fri, 15 Nov 2024 09:02:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] x86/ucode: Drop MIS_UCODE and
 microcode_match_result
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: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-4-andrew.cooper3@citrix.com>
 <aee06ffe-fb3d-41ab-a715-0bb057d4ca52@suse.com>
 <6b656171-0f61-4ef9-82e7-dfb43f2bdd4d@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: <6b656171-0f61-4ef9-82e7-dfb43f2bdd4d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2024 18:18, Andrew Cooper wrote:
> On 14/11/2024 11:41 am, Jan Beulich wrote:
>> On 12.11.2024 22:19, Andrew Cooper wrote:
>>> @@ -199,8 +198,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *patch)
>>>      return equiv.id == patch->processor_rev_id;
>>>  }
>>>  
>>> -static enum microcode_match_result cf_check compare_patch(
>>> -    const struct microcode_patch *new, const struct microcode_patch *old)
>>> +static int cf_check compare_patch(
>>> +    const struct microcode_patch *old, const struct microcode_patch *new)
>>>  {
>> Let's hope we won't screw up a backport because of this swapping.
> 
> I wasn't going to start thinking about backports until the code gets
> into a better state.
> 
> But if backports do happen, it will be all-or-nothing.Â  This code is far
> too tangled.

I wasn't so much worrying about backporting of this work (as of now I don't
think it's a candidate), but anything that's yet to come.

> That said, in this specific case, the only thing that would go wrong is
> with Intel debug patches.Â  Even I've only had a handful of those in the
> past 8 years.

Why would that be? Doing the check the wrong way round would lead to
possible downgrading of ucode, wouldn't it?

>> I'd like to ask to at least consider renaming at least the functions,
>> perhaps also the hook pointer, perhaps simply by switching from singular
>> to plural. This would then also avoid reviewers like me to go hunt for
>> all uses of the function/hook, in an attempt to make sure none was left
>> out when converting.
> 
> In the other series I've paused for a while, I have renamed some hooks
> (along with related cleanup), but I'm undecided on this one.
> 
> One option is cmp(), or perhaps compare().

Either would be fine with me as a hook name. As a function name I'm less
certain this will (remain to) be unambiguous.

> But, it occurs to me, another option would be is_newer().Â  We always
> care about the operation one way around.

is_newer() doesn't very well lend itself to a tristate return value.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 08:05:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 08:05:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836942.1252851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBrKQ-0003hg-6T; Fri, 15 Nov 2024 08:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836942.1252851; Fri, 15 Nov 2024 08:05: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 1tBrKQ-0003hZ-3l; Fri, 15 Nov 2024 08:05:18 +0000
Received: by outflank-mailman (input) for mailman id 836942;
 Fri, 15 Nov 2024 08:05: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBrKO-0003hT-Oq
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 08:05:16 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57792a5a-a328-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 09:05:13 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4315eac969aso8431815e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 00:05: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-432d478511dsm73731035e9.0.2024.11.15.00.05.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 00:05: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: 57792a5a-a328-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU3NzkyYTVhLWEzMjgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjU3OTEzLjYwMDg3LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731657913; x=1732262713; 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=P8Hrw8EAqrC07Vd7mEbJ7oOBP+Bco3sPPhzDL5SOPr4=;
        b=Xw4YaztDY2JN+zOrjQoYa1vHiL2d+ubT8DBN6CQfptCca27MmdnkiOAx64rQxHNRE7
         pbItETLAiDCg56cBZtKWnyfI+S5tl5+Zz6I+rnh+AYyPm2lf7NSTnYALNZ69/sizW2jY
         DNK9IYBtQDwJ0fZFk8EXHAREr5B4ivJPBup9kJK3gToQ8lnnkMIlC7+FO2HxzcZhycTH
         90u9Aifv1JjQP2GBhlJKFnE5bLVhfaxep4GN2EoEiBKBO8lGCawR9KKl0PfURKHaVi+R
         mT48Fq4kMwVpz7k2G4Ml7SoUyFSd9AqH8wH22QJk5udgwBoqbc2RdHIoKiTaMJQ4XaTm
         qBCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731657913; x=1732262713;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=P8Hrw8EAqrC07Vd7mEbJ7oOBP+Bco3sPPhzDL5SOPr4=;
        b=h8EvmJGT0g91XMAAASIZ9ob/cY77TZu7Z2ZQZgfz0GBd+wYlzk29Hz36OadiwX2ESF
         xyJPdy3/q7cXtBdZKrD7lEsxzD3ujxIQ0yzMzrjuTzOCZMBYqpsnM/MjCpUA9WGcCGNX
         fn9eZ/cLgDLLOG8SqaQmtZIN2KWOivIgXk79WiHYm9HAl1ZbJY+J+xWfTJ8FtE7YFkM9
         DYg6LkfuegHqxQnPWFX0ls/m5r4sKizUJop9S+xQxwgrSwt67/h4O0lWt4iftS+MvA7s
         sZyURvDvy3ANHIz/xkcjxTUhhb68kSFCQgwiZL8ifK8l0UQt7vT0DNXpVC6Fo1vR3it1
         wqrw==
X-Forwarded-Encrypted: i=1; AJvYcCUU8uCDUQg3CB4f3233GrU5bG4ymQH703UhbSpvdiThSXP1dX8ZCE55LZFYJ4semi87XP2icYK3GPM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxS9+YjlRZYCcyXEl44p0m0wybDgehQTk3hT/yVL21PRx2k/nwY
	zdup0ZPrmW/fYjDT06KHSJZ5TkGw2YpAqoUzbuvUI9/0jdKIzXUu4zek4cqtXQ==
X-Google-Smtp-Source: AGHT+IERJewGmhbRQcV3zIs0BU6x9oYGUbEWoW+DjDanDHhB/Hh/kLAwIn6H32ITagk7RFcIws9jvQ==
X-Received: by 2002:a05:600c:4685:b0:431:47e7:9f45 with SMTP id 5b1f17b1804b1-432d9762455mr56348735e9.11.1731657912902;
        Fri, 15 Nov 2024 00:05:12 -0800 (PST)
Message-ID: <87a75956-dcc5-4bbd-90ff-b0b891c23859@suse.com>
Date: Fri, 15 Nov 2024 09:05:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/riscv: introduce setup_mm()
To: 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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731344883.git.oleksii.kurochko@gmail.com>
 <c3640fe453cb8a0eff4d50d21d57535f67f7b92a.1731344883.git.oleksii.kurochko@gmail.com>
 <acd75f3d-da7d-4487-afde-877405c24c2a@suse.com>
 <aec35a326656a2b976b584ea5467f54cd87ca6d6.camel@gmail.com>
 <7aaa8eea-247f-43f5-9777-2a3431e0c1a0@suse.com>
 <b71986cbc487b68a8d6b31162bcefb8b3b7c2648.camel@gmail.com>
 <7555444c768edccee597dbb837edfe54a539722c.camel@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: <7555444c768edccee597dbb837edfe54a539722c.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2024 17:49, oleksii.kurochko@gmail.com wrote:
> On Thu, 2024-11-14 at 17:30 +0100, oleksii.kurochko@gmail.com wrote:
>> On Thu, 2024-11-14 at 10:49 +0100, Jan Beulich wrote:
>>>>>> @@ -423,3 +429,147 @@ void * __init early_fdt_map(paddr_t
>>>>>> fdt_paddr)
>>>>>> Â 
>>>>>> Â Â Â Â  return fdt_virt;
>>>>>> Â }
>>>>>> +
>>>>>> +vaddr_t __ro_after_init directmap_virt_start =
>>>>>> DIRECTMAP_VIRT_START;
>>>>>> +
>>>>>> +struct page_info *__ro_after_init frametable_virt_start =
>>>>>> frame_table;
>>>>>> +
>>>>>> +#ifndef CONFIG_RISCV_32
>>>>>> +
>>>>>> +/* Map a frame table to cover physical addresses ps through
>>>>>> pe
>>>>>> */
>>>>>> +static void __init setup_frametable_mappings(paddr_t ps,
>>>>>> paddr_t
>>>>>> pe)
>>>>>> +{
>>>>>> +Â Â Â  static mfn_t __initdata frametable_mfn_start =
>>>>>> INVALID_MFN_INITIALIZER;
>>>>>> +
>>>>>> +Â Â Â  paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>>>>>> +Â Â Â  paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>>>>>> +Â Â Â  unsigned long nr_mfns = PFN_DOWN(aligned_pe -
>>>>>> aligned_ps);
>>>>>> +Â Â Â  unsigned long frametable_size = nr_mfns *
>>>>>> sizeof(*frame_table);
>>>>>> +Â Â Â  mfn_t base_mfn;
>>>>>> +
>>>>>> +Â Â Â  if ( mfn_eq(frametable_mfn_start, INVALID_MFN) )
>>>>>> +Â Â Â  {
>>>>>> +Â Â Â Â Â Â Â  frametable_mfn_start = maddr_to_mfn(aligned_ps);
>>>>>> +
>>>>>> +Â Â Â Â Â Â Â  frametable_virt_start -= paddr_to_pfn(aligned_ps);
>>>>>> +Â Â Â  }
>>>>>> +Â Â Â  else
>>>>>> +Â Â Â Â Â Â Â  panic("%s shouldn't be called twice\n", __func__);
>>>>>
>>>>> As said on the v4 thread - I don't think this is needed. Aiui
>>>>> Misra
>>>>> would
>>>>> actually dislike it, as it's unreachable code. Just to re-
>>>>> iterate: My
>>>>> complaint there wasn't about this missing check, but about the
>>>>> function
>>>>> partly giving the impression of expecting to be called more
>>>>> than
>>>>> once.
>>>> Iâ€™ll revert this check, then. Would it be betterâ€”and
>>>> sufficientâ€”to
>>>> add
>>>> a comment before setup_frametable_mappings() indicating that this
>>>> function should only be called once, to avoid any impression that
>>>> it
>>>> might be expected to be called multiple times?
>>>
>>> You can add such a comment if you like, we we have many functions
>>> of
>>> this
>>> kind. The important aspect - as said before - is that the function
>>> should
>>> not - nowhere - give the impression of possibly expecting to be
>>> called
>>> more than once.
>> Then I am not 100% sure how to deal with this impression specifically
>> in the case of setup_frametable_mapping() which should be called
>> once.
>>
>> The only options I have in my head are:
>> Â Â  Option 1:
>> Â Â Â Â Â Â  static void __init setup_frametable_mappings(paddr_t ps,
>> paddr_t
>> Â Â Â Â Â  pe)
>> Â Â Â Â Â Â  {
>> Â Â Â Â Â  +Â Â Â  static bool __read_mostly once;
>> Â Â Â Â Â  +
>> Â Â Â Â Â Â Â Â Â Â  paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>> Â Â Â Â Â Â Â Â Â Â  paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>> Â Â Â Â Â Â Â Â Â Â  unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
>> Â Â Â Â Â Â Â Â Â Â  unsigned long frametable_size = nr_mfns *
>> Â Â Â Â Â  sizeof(*frame_table);
>> Â Â Â Â Â Â Â Â Â Â  mfn_t base_mfn;
>> Â Â Â Â Â Â  
>> Â Â Â Â Â  +Â Â Â  ASSERT(!once);
>> Â Â Â Â Â  +
>> Â Â Â Â Â  +Â Â Â  once = true;
>> Â Â Â Â Â  +
>> Â Â Â Â Â Â Â Â Â Â  frametable_virt_start -= paddr_to_pfn(aligned_ps);
>> Â Â Â Â Â Â  
>> Â Â Â Â Â Â Â Â Â Â  if ( frametable_size > FRAMETABLE_SIZE )
>>
>>
>> Â Â  Option 2:
>> Â Â  
>> Â Â Â Â Â  -struct page_info *__ro_after_init frametable_virt_start =
>> Â Â Â Â Â  frame_table;
>> Â Â Â Â Â  +struct page_info *__ro_after_init frametable_virt_start;
>> Â Â Â Â Â Â  
>> Â Â Â Â Â Â  #ifndef CONFIG_RISCV_32
>> Â Â Â Â Â Â  
>> Â Â Â Â Â  @@ -442,7 +442,9 @@ static void __init
>> Â Â Â Â Â  setup_frametable_mappings(paddr_t ps, paddr_t pe)
>> Â Â Â Â Â Â Â Â Â Â  unsigned long frametable_size = nr_mfns *
>> Â Â  sizeof(*frame_table);
>> Â Â Â Â Â Â Â Â Â Â  mfn_t base_mfn;
>> Â Â Â Â Â Â  
>> Â Â Â Â Â  -Â Â Â  frametable_virt_start -= paddr_to_pfn(aligned_ps);
>> Â Â Â Â Â  +Â Â Â  ASSERT(!frametable_virt_start);
>> Â Â Â Â Â  +
>> Â Â Â Â Â  +Â Â Â  frametable_virt_start = frame_table -
>> Â Â  paddr_to_pfn(aligned_ps);
>> Â Â Â Â Â Â  
>> Â Â Â Â Â Â Â Â Â Â  if ( frametable_size > FRAMETABLE_SIZE )
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â  panic("The frametable cannot cover [%#"PRIpaddr",
>> Â Â Â Â Â  %#"PRIpaddr")\n",
>> Â Â  
> Or your intention was that I can drop any check at all in
> setup_frametable_mappings():
>    static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
>    {
>        paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
>        paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
>        unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
>        unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
>        mfn_t base_mfn;
>    
>        frametable_virt_start -= paddr_to_pfn(aligned_ps);
>    
>    ...
>    }
>    
> and it should be enough as this function by its nature shouldn't be called
> twice.

Indeed, that's what I was after.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 08:32:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 08:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836952.1252861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBrkl-0007qX-4p; Fri, 15 Nov 2024 08:32:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836952.1252861; Fri, 15 Nov 2024 08:32: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 1tBrkl-0007qQ-2C; Fri, 15 Nov 2024 08:32:31 +0000
Received: by outflank-mailman (input) for mailman id 836952;
 Fri, 15 Nov 2024 08:32: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=PbAW=SK=redhat.com=pstanner@srs-se1.protection.inumbo.net>)
 id 1tBrkj-0007qK-GU
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 08:32:29 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 234398c0-a32c-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 09:32:24 +0100 (CET)
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-407-eDXXFYHWPNyftcVlg5u1_w-1; Fri, 15 Nov 2024 03:32:21 -0500
Received: by mail-wr1-f72.google.com with SMTP id
 ffacd0b85a97d-38223a3262bso267552f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 00:32:21 -0800 (PST)
Received: from [10.200.68.91] (nat-pool-muc-u.redhat.com. [149.14.88.27])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3821ada2da2sm3716393f8f.15.2024.11.15.00.32.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 00:32: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: 234398c0-a32c-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjIzNDM5OGMwLWEzMmMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjU5NTQ1LjA4NDczNSwic2VuZGVyIjoicHN0YW5uZXJAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1731659543;
	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=KwwtRZveGMe16US76kOe+Iauo+yTFHTCMml6hFlPRTY=;
	b=iyBHw73neaeyiBXj5LGmJBkvbZEUjiGNpqfaOvY94KTx3G4j82p/3Bw3+zRo2VIwKy9D8a
	I6RlZncOcCEimvcYxfZgiVK24CFtvPR5unBMiNLtRJIv7OPEQymTS04AbZtpkJ0+AJceid
	+DniDpu755iUXXNPxpb0B/gEuf0RRgA=
X-MC-Unique: eDXXFYHWPNyftcVlg5u1_w-1
X-Mimecast-MFC-AGG-ID: eDXXFYHWPNyftcVlg5u1_w
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731659540; x=1732264340;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=KwwtRZveGMe16US76kOe+Iauo+yTFHTCMml6hFlPRTY=;
        b=OpT7kuRAMRLqxKsPikUu7R1k1f8FDJck+sPAp80WAQXtZyZqoezAgj8oQbhznY01XQ
         Ha/DtRlExAxSEiZY9fP9OFWUPequNaS1UkOncRuVuEmB/3N7TZtgqoLyG4/4IpVTNjq7
         RnrUWN8X7+T6Tpqnf9i6yDxffD3n1UwFet7R7GbwT2exbCNlgcguCUYF44i28MJahEvt
         BtBr4cEU8xefAfLlwVGqGYqErvCdWf5P90XhVC2F5/fTcm6GcNo+TX/BQNxU9wK7UaLQ
         RI84IoUf2mhA2joyFxERxHrlO+3H5tjfcNEZFYnIEUxJHyu5heLk/UaKhGAocfIQHKXV
         AzTQ==
X-Forwarded-Encrypted: i=1; AJvYcCXeFDx9X/VATh+mvxCa8fM+H5Rsz2X+pZoRF9WDIONsRlhwM/kRtEKSTQIW9WBIEP2aioteKApVtL8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw51zTh/1ytzn+yeHEJ8xLga1i0FrVTXPAZ8PKPBSAaTu4vlh42
	E9jZx6iYbCu57zR38l2JwAglvI6SdouX1mkgv8MYkGMBO+zNkXgtFC6+jovu/2sGOy4ab5C74fa
	av2apMo51nw9j9z0/uJPnC86KwtpafwaneRrDyiJwTSN6zCkVsu83ZnXqGipw1U8J
X-Received: by 2002:a5d:64c9:0:b0:37d:5173:7a54 with SMTP id ffacd0b85a97d-38225aafc0bmr1382355f8f.52.1731659540138;
        Fri, 15 Nov 2024 00:32:20 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGdh/kmNlYkC/WQKFf2J1h1Btsr4ZUjp0WRHuv0DJX0wKMjNySBXwoM4GCHyqPFiIGeYI7IOw==
X-Received: by 2002:a5d:64c9:0:b0:37d:5173:7a54 with SMTP id ffacd0b85a97d-38225aafc0bmr1382314f8f.52.1731659539626;
        Fri, 15 Nov 2024 00:32:19 -0800 (PST)
Message-ID: <ff7f7358cec4bb03423879a2e4efd16d0a3e8ed7.camel@redhat.com>
Subject: Re: [PATCH v2 11/11] Remove devres from pci_intx()
From: Philipp Stanner <pstanner@redhat.com>
To: Thomas Gleixner <tglx@linutronix.de>, Damien Le Moal
 <dlemoal@kernel.org>,  Niklas Cassel <cassel@kernel.org>, Basavaraj Natikar
 <basavaraj.natikar@amd.com>, Jiri Kosina <jikos@kernel.org>,  Benjamin
 Tissoires <bentiss@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Greg
 Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov <oakad@yahoo.com>,
 Sudarsana Kalluru <skalluru@marvell.com>, Manish Chopra
 <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>,  GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>,  Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam Sundar
 S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave Jiang
 <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn Helgaas
 <bhelgaas@google.com>, Alex Williamson <alex.williamson@redhat.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Mario Limonciello
 <mario.limonciello@amd.com>, Chen Ni <nichen@iscas.ac.cn>, Ricky Wu
 <ricky_wu@realtek.com>,  Al Viro <viro@zeniv.linux.org.uk>, Breno Leitao
 <leitao@debian.org>, Kevin Tian <kevin.tian@intel.com>, Mostafa Saleh
 <smostafa@google.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
 Jason Gunthorpe <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>, Kunwu Chan
 <chentao@kylinos.cn>, Ankit Agrawal <ankita@nvidia.com>, Christian Brauner
 <brauner@kernel.org>, Reinette Chatre <reinette.chatre@intel.com>, Eric
 Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-input@vger.kernel.org, netdev@vger.kernel.org, 
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org,  kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Date: Fri, 15 Nov 2024 09:32:16 +0100
In-Reply-To: <8734jtl3xm.ffs@tglx>
References: <20241113124158.22863-2-pstanner@redhat.com>
	 <20241113124158.22863-13-pstanner@redhat.com> <87msi3ksru.ffs@tglx>
	 <49bb6fc9ebff3cae844da0465ceadeef8d3217c7.camel@redhat.com>
	 <8734jtl3xm.ffs@tglx>
User-Agent: Evolution 3.52.4 (3.52.4-2.fc40)
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 9E6bu4ctaUO5cN9tZkAB8V9DkLTU3rE0IPuFH_lWcJY_1731659540
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2024-11-15 at 01:46 +0100, Thomas Gleixner wrote:
> On Thu, Nov 14 2024 at 10:05, Philipp Stanner wrote:
> > On Wed, 2024-11-13 at 17:22 +0100, Thomas Gleixner wrote:
> > > On Wed, Nov 13 2024 at 13:41, Philipp Stanner wrote:
> > > > pci_intx() is a hybrid function which can sometimes be managed
> > > > through
> > > > devres. This hybrid nature is undesirable.
> > > >=20
> > > > Since all users of pci_intx() have by now been ported either to
> > > > always-managed pcim_intx() or never-managed
> > > > pci_intx_unmanaged(),
> > > > the
> > > > devres functionality can be removed from pci_intx().
> > > >=20
> > > > Consequently, pci_intx_unmanaged() is now redundant, because
> > > > pci_intx()
> > > > itself is now unmanaged.
> > > >=20
> > > > Remove the devres functionality from pci_intx(). Have all users
> > > > of
> > > > pci_intx_unmanaged() call pci_intx(). Remove
> > > > pci_intx_unmanaged().
> > > >=20
> > > > Signed-off-by: Philipp Stanner <pstanner@redhat.com>
> > > > ---
> > > > =C2=A0drivers/misc/cardreader/rtsx_pcr.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2 +-
> > > > =C2=A0drivers/misc/tifm_7xx1.c=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 6 +--
> > > > =C2=A0.../net/ethernet/broadcom/bnx2x/bnx2x_main.c=C2=A0 |=C2=A0 2 =
+-
> > > > =C2=A0drivers/net/ethernet/brocade/bna/bnad.c=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 |=C2=A0 2 +-
> > > > =C2=A0drivers/ntb/hw/amd/ntb_hw_amd.c=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 4 +-
> > > > =C2=A0drivers/ntb/hw/intel/ntb_hw_gen1.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 2 +-
> > > > =C2=A0drivers/pci/devres.c=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 4 +-
> > > > =C2=A0drivers/pci/msi/api.c=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 2 +-
> > > > =C2=A0drivers/pci/msi/msi.c=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 2 +-
> > > > =C2=A0drivers/pci/pci.c=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 | 43 +----------
> > > > ----
> > > > ----
> > > > =C2=A0drivers/vfio/pci/vfio_pci_core.c=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 2 +-
> > > > =C2=A0drivers/vfio/pci/vfio_pci_intrs.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 10 ++---
> > > > =C2=A0drivers/xen/xen-pciback/conf_space_header.c=C2=A0=C2=A0 |=C2=
=A0 2 +-
> > > > =C2=A0include/linux/pci.h=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 1 -
> > > > =C2=A014 files changed, 22 insertions(+), 62 deletions(-)
> > >=20
> > > Now I'm utterly confused. This undoes the pci_intx_unmanaged()
> > > churn
> > > which you carefully split into several patches first.
> >=20
> > Have you read the email I have linked?
> >=20
> > There is also the cover-letter (does anyone in the community ever
> > read
> > those?) which explicitly states:
> >=20
> > "Patch "Remove devres from pci_intx()" obviously reverts the
> > previous
> > patches that made drivers use pci_intx_unmanaged(). But this way
> > it's
> > easier to review and approve. It also makes sure that each checked
> > out
> > commit should provide correct behavior, not just the entire series
> > as a
> > whole."
>=20
> I read it and I assume your intention was to force an eye on every
> use
> case of pci_intx() and not just on those which need to be converted
> to
> pcim_intx().
>=20
> I'm not convinced that this is needed, but fair enough.

Whether pcim_enable_device() is really not used could have been
overlooked, or the driver could move to "managed mode" in parallel for
v6.13 for example. Then a bug would be silently introduced into those
drivers.

Besides, me touching pci_intx() unfortunately caused a few explosions
in the past already, in

fc8c818e756991f5f50b8dfab07f970a18da2556 and
00f89ae4e759a7eef07e4188e1534af7dd2c7e9c

So this time I prefer to be rather safe than sorry.


BTW, if you can review the MSI patch and check whether removing devres
from there really is fine, that would be helpful.


Regards,
P.



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 08:56:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 08:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836960.1252872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBs7P-0002dS-VJ; Fri, 15 Nov 2024 08:55:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836960.1252872; Fri, 15 Nov 2024 08: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 1tBs7P-0002dL-Sh; Fri, 15 Nov 2024 08:55:55 +0000
Received: by outflank-mailman (input) for mailman id 836960;
 Fri, 15 Nov 2024 08: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBs7P-0002dF-0c
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 08:55:55 +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 69fce322-a32f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 09:55:51 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-382219ceaacso688776f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 00:55: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-3821ae2f651sm3920493f8f.87.2024.11.15.00.55.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 00: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: 69fce322-a32f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzIiLCJoZWxvIjoibWFpbC13cjEteDQzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY5ZmNlMzIyLWEzMmYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjYwOTUxLjE1MDYzMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731660950; x=1732265750; 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=Ddfu+zNBaIeLM2TccbewDtmJtPpVM8dtHl5OATwltMc=;
        b=GtKG3UwuS50+IGzqTAbl6VuSbyetXQRD/J3j4DhBkLpYijjZnFIZZNUCb+Trrn8hMa
         NY+PfqJg+8DIxYMWnD5dlSRBp1Weab2ktGsyG+HWeDvxxkeSto+pPWyz0PrU8C9XSRBP
         wcwhD6/vtDaE6YfxJ102rRMyLKoIgMh3SGuawuvLQOC0bfaYks8ciTkvDOBPCSelnnG3
         DjquBsZVqbB5mc4cm/r5NszuJfu2ONMNYroaMMZ/UnrLfBQGeBbBbkjev1AoATICoVyl
         WH86YF1UM7QF0XW406bmMTekzqDeopCygb1H9/+WoUYD5kSgk7OJEQei7/n/ysj+JHmm
         U0EA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731660950; x=1732265750;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Ddfu+zNBaIeLM2TccbewDtmJtPpVM8dtHl5OATwltMc=;
        b=t/3vz6op0lsbYiYVc+mzu+e62/5OilaJkvast1wJKk9PiHt1nO0zO6JCnJ4OP/HGnF
         x/htux0i9SIyQt3/vgA9Z8wLgSC3P1H+24a5Ic+EhpQjQ5Dn0wjt2tLGbG4nc7PCrNko
         auJciJKTjLvijCJ31TaJmMsqT/g3n/8B/ZY3vl3b0pG2ct5k9XyYUKyS3tQ6BCDJoTzW
         BkUYV1djp0HGUC5U4dlrXieBLtte78jUFBxtYIF9MqP1jnWbK/TU+2xMBbYXh7uvz4WT
         BzkSyvil5azLfnL15+H49ftD6bXLOPvUSjeKSE4oZsNOX4R+vMyNaXhznpK0O6GIup9x
         TKKg==
X-Gm-Message-State: AOJu0YzcrxsE4AUksCedk/T9CC5Bcz52j5bAM5KS89XWSyiPgyMhKway
	FDuTK5L8ljPJ9fK8dn7zsE0+Lq2KBxloifwdYF6JN37qAzdS4rI8ic8j2VcLrw==
X-Google-Smtp-Source: AGHT+IFXNPa45ejdJpp/e+CPNH1y4P/kjRrYLeIG8xD5UVhnHq0o+8A4Sm8W3XyfAKfNjdLXSDfg7g==
X-Received: by 2002:a05:6000:402b:b0:382:1e55:d3ca with SMTP id ffacd0b85a97d-38225a8a5cdmr1423853f8f.43.1731660950394;
        Fri, 15 Nov 2024 00:55:50 -0800 (PST)
Message-ID: <a04b5a17-6b30-4e81-bff4-5bfb748281bd@suse.com>
Date: Fri, 15 Nov 2024 09:55:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/4] x86/mm: miscellaneous fixes
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>
References: <20241114145715.59777-1-roger.pau@citrix.com>
 <0f575e16-3e83-4d8e-b5ce-7fd9c962c3ee@citrix.com>
Content-Language: en-US
Cc: 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: <0f575e16-3e83-4d8e-b5ce-7fd9c962c3ee@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.11.2024 01:55, Andrew Cooper wrote:
> On 14/11/2024 2:57 pm, Roger Pau Monne wrote:
>> Hello,
>>
>> The attempt to fix destroy_xen_mappings() so that L2 tables are
>> consistently freed uncovered some errors in the memory management code.
>> The following series attempts to fix them.
>>
>> All patches except for 4/4 are new in v2, and 4/4 has no change from v1,
>> hence kept Jan's Reviewed-by tag in 4/4.
>>
>> Thanks, Roger.
>>
>> Roger Pau Monne (4):
>>   x86/mm: introduce helpers to detect super page alignment
>>   x86/mm: skip super-page alignment checks for non-present entries
>>   x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
>>   x86/mm: ensure L2 is always freed if empty
> 
> Still broken.Â  This happened to be a Cascade Lake:
> 
> (XEN) 3... 2... 1...
> (XEN) Xen is relinquishing VGA console.
> (XEN) ----[ Xen-4.20.0-4-dÂ  x86_64Â  debug=yÂ  Not tainted ]----
> (XEN) CPU:Â Â Â  0
> (XEN) RIP:Â Â Â  e008:[<ffff82d04022cdc8>]
> common/page_alloc.c#free_heap_pages+0x52/0x753
> <snip>
> (XEN) Xen call trace:
> (XEN)Â Â Â  [<ffff82d04022cdc8>] R
> common/page_alloc.c#free_heap_pages+0x52/0x753
> (XEN)Â Â Â  [<ffff82d04022e98f>] F free_domheap_pages+0x445/0x447
> (XEN)Â Â Â  [<ffff82d040320f88>] F free_xen_pagetable+0x2f/0x31
> (XEN)Â Â Â  [<ffff82d04032193d>] F map_pages_to_xen+0x5df/0x1028
> (XEN)Â Â Â  [<ffff82d040238ab1>] F vunmap+0x27/0xde
> (XEN)Â Â Â  [<ffff82d040624b61>] F vesa_endboot+0x86/0xb3
> (XEN)Â Â Â  [<ffff82d0406244c1>] F video_endboot+0x93/0x261
> (XEN)Â Â Â  [<ffff82d040616e3d>] F console_endboot+0x92/0x120
> (XEN)Â Â Â  [<ffff82d0406407e2>] F __start_xen+0x2139/0x2307
> (XEN)Â Â Â  [<ffff82d0402033ae>] F __high_start+0x8e/0x90
> (XEN)
> (XEN) Pagetable walk from ffff82c000205001:
> (XEN)Â  L4[0x105] = 0000000060431063 ffffffffffffffff
> (XEN)Â  L3[0x100] = 000000006fffd063 ffffffffffffffff
> (XEN)Â  L2[0x001] = fffffffffffff000 ffffffffffffffff
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) FATAL PAGE FAULT
> (XEN) [error_code=0000]
> (XEN) Faulting linear address: ffff82c000205001
> (XEN) ****************************************
> 
> Note the definitely bogus L2e, which I'm guessing is an issue with the
> use of INVALID_MFN.

Why bogus? That's precisely what vunmap() requests:

    map_pages_to_xen(addr, INVALID_MFN, pages, _PAGE_NONE);

What I agree with is that INVALID_MFN better wouldn't spill into the
upper non-address part of the PTE, but that doesn't look to be important
here.

I can't, however, explain why free_heap_pages() would access VMAP space.
It's all page / MFN based and shouldn't even have a notion of the VA
space underlying vmap(). Is that address in CR2 inside the range that
was mapping the frame buffer (i.e. part of what vunmap() is in the
process of removing)?

What I also don't understand: How did this pass CI then? Are all tests
there perhaps done without vga= designating a VESA mode to use?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 09:09:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 09:09:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836975.1252882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBsKp-0004f4-Ai; Fri, 15 Nov 2024 09:09:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836975.1252882; Fri, 15 Nov 2024 09:09: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 1tBsKp-0004ex-70; Fri, 15 Nov 2024 09:09:47 +0000
Received: by outflank-mailman (input) for mailman id 836975;
 Fri, 15 Nov 2024 09:09: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBsKn-0004eq-An
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 09:09:45 +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 58ec9f78-a331-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 10:09:41 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-431616c23b5so8877675e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 01:09: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-432dab807d4sm47241515e9.21.2024.11.15.01.09.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 01:09: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: 58ec9f78-a331-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU4ZWM5Zjc4LWEzMzEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjYxNzgxLjQ5MjE0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731661781; x=1732266581; 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=PqpoAcj/XQNOaartWdvf83r66dGZi5ggKPn0gD0m3Do=;
        b=LTBfxKfjbxtTri4c4th8weNnJD4K2VlqUoE/vZu1ipYKV4j7QnMeJbWNyl3B4EKHgI
         zMGtodva1EOGf2RSW1ip5EezZEs1UeDFqKIieJg7Yz0P39izPnTfPSUQUnlEoXNmkPq+
         LOY9VPVYQOI09o43TwvgjVOWoSBqQGVyyA9Zl7WmvMlNX6fkXJdb337WX+2mviKHraIU
         lCHNapIg7tOMTCAfK8JvptG7wjEWpWTAJt/Ps0528fromrFBfgL0NSWdGd20VsVVLjqW
         Z0TmJHcMD+LyY4ZKOFXvAupIbha7byDZ+sfCcQjvzipuy49JvmrxzOJfNXXFvfMtJNzP
         b8rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731661781; x=1732266581;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PqpoAcj/XQNOaartWdvf83r66dGZi5ggKPn0gD0m3Do=;
        b=dPgyXG3u7a7N5TRXEGUXioc7q3BSUFc30J8bgx5y6Ci2tNmUV06w0HHlTdNZtQ6CTe
         PEAPT+LNnpGX4KkQ9xVBSPvDtvDO6+p9jTUmuIeSzhp4Iw7nLDtlJR+v96hWkYmdGfNv
         /FUkBhE+vRScHT/H/xqhXLEIXKZd02Gv5DuvHZ0AN03vwf0CikqUjJXufxKzTztEgtlf
         cipfCtypO7M2tymlhAgsxi6SWYd5ojQheTzMkcZCAkBNkIrYMFkd5QmfD0KqXqi/OW1m
         FgN75j44YJ+wa8rzlqDKXVoIqDX7PVORme6rc4mXObhDw9EzUluE9fWQcB2JRD7hO23m
         54pA==
X-Forwarded-Encrypted: i=1; AJvYcCXwCguIR21mhkXKweHExRsr3mvF7TMoXdvwhRko/nmgn7hEBGHRwQqfZwh8YIVb7EQIT0l0RXs5WSY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/o9JcF6pqbYEYhV/CWdWicOSW95TDtiK7eGbwPw3c0VL1Fy3Q
	0+nzManhhcxEiTtoGpBe3BGvZriHRmzDf4CBVj7v6ypGaq7HjCiJI+ljLDVmYQ==
X-Google-Smtp-Source: AGHT+IHb8/J1ODzmb4vBay/PZ/hK/pLlqIENn8K2zC5gH948qe0lcPB5sIY+gaDDfQHKcaemDviKsg==
X-Received: by 2002:a05:600c:3516:b0:431:5226:1633 with SMTP id 5b1f17b1804b1-432defd2589mr17215775e9.6.1731661780760;
        Fri, 15 Nov 2024 01:09:40 -0800 (PST)
Message-ID: <32d9b9ac-f70f-42d7-8d6f-0d95b7838ed8@suse.com>
Date: Fri, 15 Nov 2024 10:09:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/mm: skip super-page alignment checks for
 non-present entries
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241114145715.59777-1-roger.pau@citrix.com>
 <20241114145715.59777-3-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: <20241114145715.59777-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 15:57, Roger Pau Monne wrote:
> @@ -5517,7 +5524,8 @@ int map_pages_to_xen(
>          L3T_LOCK(current_l3page);
>          ol3e = *pl3e;
>  
> -        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
> +        if ( cpu_has_page1gb &&
> +             (!(flags & _PAGE_PRESENT) || IS_L3E_ALIGNED(virt, mfn)) &&
>               nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
>               !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
>          {
> @@ -5636,7 +5644,7 @@ int map_pages_to_xen(
>          if ( !pl2e )
>              goto out;
>  
> -        if ( IS_L2E_ALIGNED(virt, mfn) &&
> +        if ( (!(flags & _PAGE_PRESENT) || IS_L2E_ALIGNED(virt, mfn)) &&
>               (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
>               !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
>          {

Upon inspecting Andrew's report of crashes I noticed that this can't be quite
right. We can't entirely skip the alignment check when non-present mappings
are requested; we merely need to limit the check to the VA. In a reply to
the 1st v2 I actually had it arranged to match that requirement:

        if ( (cpu_has_page1gb || !(flags & _PAGE_PRESENT)) &&
             IS_L3E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
             nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
             !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )

Yet then I didn't pay attention to the difference when reviewing the 2nd v2
(that versioning issue of course isn't helping here either).

I'm afraid I can't (yet) connect the observed bad behavior with this issue,
though.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 09:29:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 09:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836984.1252892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBsdW-00007V-Qn; Fri, 15 Nov 2024 09:29:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836984.1252892; Fri, 15 Nov 2024 09:29: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 1tBsdW-00007O-Nl; Fri, 15 Nov 2024 09:29:06 +0000
Received: by outflank-mailman (input) for mailman id 836984;
 Fri, 15 Nov 2024 09:29: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBsdW-00007I-16
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 09:29:06 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0cb72585-a334-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 10:29:01 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2fb3c3d5513so4484731fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 01:29: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-432da27fe73sm51167105e9.20.2024.11.15.01.29.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 01:29: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: 0cb72585-a334-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmMiLCJoZWxvIjoibWFpbC1sajEteDIyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBjYjcyNTg1LWEzMzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjYyOTQxLjk4NzY1Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731662941; x=1732267741; 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=E2P/v+CW82ZcWnIWYl2vBcowgYERNBV4qqG3WGqznls=;
        b=bse+alANxsrx/XSMNuOkUCNxVeZMhGVMEOLzuGJdDR8VA9Iw7MxiWG4bR2IFceAHap
         e9CoCvCj+1m0hloKR6m5eeNekBzJnv0tkn/5S6gElhuUc7lDguwB987hbsgdV6obDvgV
         gZ3UwIlivdCWyHrfJLunwLBgD4K+yp0flkPqd2JIhdhh/N2sWDEWuesfWSriiT+NKydJ
         EEdgoW4yUNRV3aFO9DLVdIHdGfOfAt3+aDT7Lrr4P0EXpe6HfqYjz4jXAeP+bxNaIXnq
         KHAOq/WXJG2uYiiCoEOqkCSiS3XcOfdfI3Q658EZC0RzhNFyTrW49i68f3HrnvUzZYcw
         8U6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731662941; x=1732267741;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E2P/v+CW82ZcWnIWYl2vBcowgYERNBV4qqG3WGqznls=;
        b=i27XbOhdWzREuVyIqJq44BWZp8QdsdgEsZLrj7sb+eaidPmxwaWOPIjOVMhmaQRMvm
         ddsK4TXSlxHP4aKhGSWL6TM57UWBazpunrYhBC1c+LdEoHTX+HXEsuuSPExNnSl8nzQd
         0fOtuwdZpJaNzNszPa/3wiwDeyrKXGp3f4n3NH9hFqjh6dklQkSW1Uba7ZYWmLhpiVBY
         uTUJ0/KBNWqaAZ811CLD5ATT1m+AauBy5Ts9Y+JsOk7fdfQVn/6rGT4LRVlp30MIjY9r
         CvEVEl6H71I+YEWcAgO2Un1Ekktlf8teVLQialh/7uR5LlyTvKCAkFMT4q/dBg6+dcng
         YN2g==
X-Forwarded-Encrypted: i=1; AJvYcCXUmN0bCqTPfwtycvvgFRyZvav8qXUCFVBRW0FfCA3RKpq0tkFDLhrKgH/Z7AfE21OSKCBpIPIrjDY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyde59lSEIcyulkABcCF0MshWn3Qy/Q+Xj1TK/NNfUZ7RXmWuX5
	i/yhAr0nPx95m87XxN8NyUm0k3pALvtjW438E3lmgrf/KdYCcu2cAV4Q6GeSfw==
X-Google-Smtp-Source: AGHT+IEGCfICzKU8wNKKja2UR2GPF6mGVbclcIcpR6/FWo3uod7PMeHzUeV0tpjLvdZhksgTJMEfDg==
X-Received: by 2002:a2e:bd84:0:b0:2ff:5e46:aafe with SMTP id 38308e7fff4ca-2ff60744d57mr10828101fa.39.1731662941344;
        Fri, 15 Nov 2024 01:29:01 -0800 (PST)
Message-ID: <990887c0-d76f-4f8a-a6a6-c3dca49dcb91@suse.com>
Date: Fri, 15 Nov 2024 10:28:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Fix comment about setting up the real mode
 stack
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241114182219.1983073-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: <20241114182219.1983073-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2024 19:22, Andrew Cooper wrote:
> It may have taken a while, but it occurs to me that the mentioned commit fixed
> a second problem too.
> 
> On entering trampoline_boot_cpu_entry(), %esp points at the trampoline stack,
> but in a 32bit flat segment.  It happens to be page aligned.
> 
> When dropping into 16bit mode, the stack segment operates on %sp, preserving
> the upper bits.  Prior to 1ed76797439e, the top nibble of %sp would depend on
> where the trampoline was placed in low memory, and only had a 1/16 chance of
> being 0 and therefore operating on the intended stack.
> 
> There was a 15/16 chance of using a different page in the trampoline as if it
> were the stack.  Therefore, zeroing %esp was correct, but for more reasons
> than realised at the time.

I'm afraid I don't follow this analysis. Said commit replaced clearing of %sp
by clearing of %esp. That made no difference for anything using the 16-bit
register. I don't see how the top nibble of %sp could have been non-zero
prior to that change.

> Update the comment to explain why zeroing %esp is correct in all cases.  Move
> it marginally earlier to when a 16bit stack segment is first loaded.

The movement is fine, and the comment is fine by itself, too. It doesn't
cover the significance of using 32-bit operand size, though (which may or may
not be relevant, to a fair degree depending on the above).

Jan

> --- a/xen/arch/x86/boot/trampoline.S
> +++ b/xen/arch/x86/boot/trampoline.S
> @@ -176,6 +176,12 @@ trampoline_boot_cpu_entry:
>          mov     %eax,%gs
>          mov     %eax,%ss
>  
> +        /*
> +         * The stack is at trampoline_phys + 64k, which for a 16bit stack
> +         * segment wants %sp starting at 0.
> +         */
> +        xor     %esp, %esp
> +
>          /* Switch to pseudo-rm CS, enter real mode, and flush insn queue. */
>          mov     %cr0,%eax
>          dec     %eax
> @@ -190,8 +196,6 @@ trampoline_boot_cpu_entry:
>          mov     %ax,%es
>          mov     %ax,%ss
>  
> -        /* Initialise stack pointer and IDT, and enable irqs. */
> -        xor     %esp,%esp
>          lidt    bootsym(rm_idt)
>          sti
>  



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 09:33:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 09:33:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836990.1252902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBshV-0001sf-BW; Fri, 15 Nov 2024 09:33:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836990.1252902; Fri, 15 Nov 2024 09:33: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 1tBshV-0001sY-7J; Fri, 15 Nov 2024 09:33:13 +0000
Received: by outflank-mailman (input) for mailman id 836990;
 Fri, 15 Nov 2024 09:33: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=rNXE=SK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBshU-0001sS-J7
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 09:33:12 +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 9f874db2-a334-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 10:33:08 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5c94a7239cfso969824a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 01:33:08 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79c1dc72sm1407793a12.79.2024.11.15.01.33.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 01:33: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: 9f874db2-a334-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlmODc0ZGIyLWEzMzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjYzMTg4LjM1NTQzMywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731663188; x=1732267988; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=ru+iVweZYSPDM200YyNYpdPjJ8QOJBEp3f8LklPQEpg=;
        b=nkz6PORWOG1XLfDuc6kXmOCKRKzz8/TOrI/tRuECw58Nn6YAmHvNZ//zj6l/KniEn8
         pyDbe9/sTHin5oH1jsHDx10ZToBXUSdXOF5cbtTBU3pYNhEhIhGYMltr0yAedQZYvwGn
         gi38P9K1JKe2ShYvkzQzEz33CDfm9tNVhbARY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731663188; x=1732267988;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ru+iVweZYSPDM200YyNYpdPjJ8QOJBEp3f8LklPQEpg=;
        b=M0kr+eiYJx7bIBAQHozzc3H4QPm0MOqNENkGZo1mzcGLhPjJPXeA0C8HflKe8lIA3Z
         2iswhDf3W+7FS5rW4LbwqNy62VdrTWHFLJPlCkm/oo4E2rHjgD8zaIbyi9im+RHQ1qV8
         3eN0u4zRKjY21ego91vDfvETZMaXxejqenRpiJoAKUfBB/8rwz/93b99ZV0wWC8Qo9Ur
         TjUQlaE71ODhCrYlXFpVVYuhWHjUfvTT/D7HrHPXbSDviYdznKJ17zYcg40W419QG41X
         AuKIi4sEtAkBGkzVlW3vUZdpcUEgPF9+w0YshL6byJb8A6v+zRoRJpKMIcpNZa6wqBS7
         kjxw==
X-Forwarded-Encrypted: i=1; AJvYcCWB/XxR5X60KskuPvLAvBAVq4JB5QuGodC49lE7ibcYqSnyul7HqWLrzaQNPEo3RIWDgPhLqO1dIEM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3opRIDk8Vpq4Q8s/b7LhYSiCQX3G49qsQS6Jjurk373PKjVs5
	qi4S0QEVc0C4dNaN+pv02NW+ECn6x9zExYewRjCjpuKDiVv3auLsZWY34XWLhe/s1lcjYJojxkN
	l
X-Google-Smtp-Source: AGHT+IFyBPBsLUNwYqutk4vHPTp9B646LzgaXazd5i6S1ONojDFS9q0HX6TuFxPUGkbg+T0yQZ3yBg==
X-Received: by 2002:a05:6402:5210:b0:5ce:fa6f:eeb6 with SMTP id 4fb4d7f45d1cf-5cf8fc6399amr1879830a12.5.1731663187630;
        Fri, 15 Nov 2024 01:33:07 -0800 (PST)
Date: Fri, 15 Nov 2024 10:33:05 +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 v3 2/4] x86/mm: skip super-page alignment checks for
 non-present entries
Message-ID: <ZzcVUQWVws1UAf1f@macbook>
References: <20241114145715.59777-1-roger.pau@citrix.com>
 <20241114145715.59777-3-roger.pau@citrix.com>
 <32d9b9ac-f70f-42d7-8d6f-0d95b7838ed8@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <32d9b9ac-f70f-42d7-8d6f-0d95b7838ed8@suse.com>

On Fri, Nov 15, 2024 at 10:09:39AM +0100, Jan Beulich wrote:
> On 14.11.2024 15:57, Roger Pau Monne wrote:
> > @@ -5517,7 +5524,8 @@ int map_pages_to_xen(
> >          L3T_LOCK(current_l3page);
> >          ol3e = *pl3e;
> >  
> > -        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
> > +        if ( cpu_has_page1gb &&
> > +             (!(flags & _PAGE_PRESENT) || IS_L3E_ALIGNED(virt, mfn)) &&
> >               nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
> >               !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
> >          {
> > @@ -5636,7 +5644,7 @@ int map_pages_to_xen(
> >          if ( !pl2e )
> >              goto out;
> >  
> > -        if ( IS_L2E_ALIGNED(virt, mfn) &&
> > +        if ( (!(flags & _PAGE_PRESENT) || IS_L2E_ALIGNED(virt, mfn)) &&
> >               (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
> >               !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
> >          {
> 
> Upon inspecting Andrew's report of crashes I noticed that this can't be quite
> right. We can't entirely skip the alignment check when non-present mappings
> are requested; we merely need to limit the check to the VA. In a reply to
> the 1st v2 I actually had it arranged to match that requirement:
> 
>         if ( (cpu_has_page1gb || !(flags & _PAGE_PRESENT)) &&
>              IS_L3E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
>              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
>              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
> 
> Yet then I didn't pay attention to the difference when reviewing the 2nd v2
> (that versioning issue of course isn't helping here either).
> 
> I'm afraid I can't (yet) connect the observed bad behavior with this issue,
> though.

I think this might be caused by map_pages_to_xen() now freeing vmap
regions still under use, and that seems to manifest with the
memnodemap array being unintentionally unmapped (because it's
allocated with vmap_contig()).  See the usage of mfn_to_nid() in
free_heap_pages().

Will prepare a patch, sorry.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 09:34:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 09:34:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.836996.1252912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBsiu-0002QA-Ks; Fri, 15 Nov 2024 09:34:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 836996.1252912; Fri, 15 Nov 2024 09:34: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 1tBsiu-0002Q3-Hp; Fri, 15 Nov 2024 09:34:40 +0000
Received: by outflank-mailman (input) for mailman id 836996;
 Fri, 15 Nov 2024 09:34: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBsis-0002Pv-T7
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 09:34:38 +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 d3c5bbc6-a334-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 10:34:36 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4314fa33a35so13009965e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 01:34: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-382221845c7sm2668537f8f.107.2024.11.15.01.34.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 01:34: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: d3c5bbc6-a334-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzYzViYmM2LWEzMzQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjYzMjc2LjEyOTIxNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731663275; x=1732268075; 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=b/KDhNf5qS8dd9lDsgbnH85r2fGP1fi027zw7SSHaRg=;
        b=PT02fG3Iy2jisSowkVXx/oXUok2+4iOsWHwHzWuuYRfSJvKHLYhcbqxjH5LOf4Boc9
         Eumaz2NZuWgcSuRsRLf451k7N/0RTvGE908PhMo83LJYjvkUDO6rT6ilyD3yc4Mcxlik
         jlJRlMGEOtGLwMVH3Gp4RrRLf5Kr9RKD2/j9qbY3/BLGNj93UQ9We/YeDNmJHwhoWhq1
         nZGN1k9AN0EacLZOXLQmWDMzWdT8WiR83EQRnmQtob9ec6Fx33XO+5qeIDSIVaC1m52W
         jNE5p+SqRh4sCwDVgrmygaLxgMm3olYlCNIqEl9JIOHlSuUuRUINBw3nIB6v65UxuLWj
         MXOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731663275; x=1732268075;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=b/KDhNf5qS8dd9lDsgbnH85r2fGP1fi027zw7SSHaRg=;
        b=UHfR/F37x0yw2tO1HhwDP1RzVRvybHjT5Fc/tQpBKxuZZhfeLhAb4kVubZjz/1XBvf
         it2PaM0V/CNNC6lHDcSLCg5zDNdzPpSJnbiiJTNM5utVapfHrO94w2qQ/jXj6L7YyscJ
         C2MbYWeaA8nem1m7Im7LpFMC6DWWytwaVPAF/0hG1NQSfvhcidl072jXZfkF7potsZf2
         M2lYv2DM2GhNw58ZIdlWrWF/33f/h8GSbXlmerMxpBLm+HsplZahlzCZC0ATwyPlOQGO
         o1NZPm9QrwUG/AY1/NR7kQ54QK2Ht8S1lqoky+LJrEzspR3WG6smO0uS2hOng1ovbL6D
         fQjg==
X-Forwarded-Encrypted: i=1; AJvYcCW7MKb4UA0qQFD9swic6XF/h+O39S4pcRbiiQQ8s8MTosjjrCFi0IaOT3w2QxFphNltLescCe+ItK0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoHwY2pD01oJhuFhZYh7zwpsWv9Yla97qM7D1F/mJwqTl/yeb5
	llKAWvcK/V+yf168tqbtBYMa3mUlwRy/2Qiku57SvAQsWiHgFXWEUbrDmR4hWw==
X-Google-Smtp-Source: AGHT+IHbDUGhsZ0jlSj7SY7a9XIVk74uAweWMq6yGFQIbM6O9YdslBGSBDh33DZBX90mlIiY28d/nw==
X-Received: by 2002:a05:600c:314a:b0:42c:a89e:b0e6 with SMTP id 5b1f17b1804b1-432df72c1b9mr14983965e9.11.1731663275471;
        Fri, 15 Nov 2024 01:34:35 -0800 (PST)
Message-ID: <91209c70-e9ea-4dcb-a3e9-f9f87d961409@suse.com>
Date: Fri, 15 Nov 2024 10:34:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/mm: skip super-page alignment checks for
 non-present entries
From: Jan Beulich <jbeulich@suse.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241114145715.59777-1-roger.pau@citrix.com>
 <20241114145715.59777-3-roger.pau@citrix.com>
 <32d9b9ac-f70f-42d7-8d6f-0d95b7838ed8@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: <32d9b9ac-f70f-42d7-8d6f-0d95b7838ed8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 10:09, Jan Beulich wrote:
> On 14.11.2024 15:57, Roger Pau Monne wrote:
>> @@ -5517,7 +5524,8 @@ int map_pages_to_xen(
>>          L3T_LOCK(current_l3page);
>>          ol3e = *pl3e;
>>  
>> -        if ( cpu_has_page1gb && IS_L3E_ALIGNED(virt, mfn) &&
>> +        if ( cpu_has_page1gb &&
>> +             (!(flags & _PAGE_PRESENT) || IS_L3E_ALIGNED(virt, mfn)) &&
>>               nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
>>               !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
>>          {
>> @@ -5636,7 +5644,7 @@ int map_pages_to_xen(
>>          if ( !pl2e )
>>              goto out;
>>  
>> -        if ( IS_L2E_ALIGNED(virt, mfn) &&
>> +        if ( (!(flags & _PAGE_PRESENT) || IS_L2E_ALIGNED(virt, mfn)) &&
>>               (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
>>               !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
>>          {
> 
> Upon inspecting Andrew's report of crashes I noticed that this can't be quite
> right. We can't entirely skip the alignment check when non-present mappings
> are requested; we merely need to limit the check to the VA. In a reply to
> the 1st v2 I actually had it arranged to match that requirement:
> 
>         if ( (cpu_has_page1gb || !(flags & _PAGE_PRESENT)) &&
>              IS_L3E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
>              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
>              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
> 
> Yet then I didn't pay attention to the difference when reviewing the 2nd v2
> (that versioning issue of course isn't helping here either).
> 
> I'm afraid I can't (yet) connect the observed bad behavior with this issue,
> though.

I think I now can: memnodemap is set using vmap_contig(). The VESA frame buffer
unmap, neglecting to check VA alignment, will have wrongly unmapped memnodemap.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 09:37:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 09:37:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837010.1252921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBslB-00035X-34; Fri, 15 Nov 2024 09:37:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837010.1252921; Fri, 15 Nov 2024 09:37: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 1tBslB-00035Q-0Y; Fri, 15 Nov 2024 09:37:01 +0000
Received: by outflank-mailman (input) for mailman id 837010;
 Fri, 15 Nov 2024 09: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=Tcl1=SK=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBsl9-00035I-4h
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 09:36:59 +0000
Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com
 [2607:f8b0:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2610866e-a335-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 10:36:54 +0100 (CET)
Received: by mail-ot1-x332.google.com with SMTP id
 46e09a7af769-71815313303so902710a34.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 01:36: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: 2610866e-a335-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC1vdDEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI2MTA4NjZlLWEzMzUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjYzNDE0Ljc3Njc0Mywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731663413; x=1732268213; 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=T0HwHYH/XM0oXYXGB08CJRRpmnB5m39KSPc+LJry+c4=;
        b=CkxrGErZnYiwvxiVWkSqyVJFEbLw1WFB3OGtD9E3ud2Sk0ipo6RidX2xVJvZg2+W0m
         fT+6ajK3B6QFbM0ra1W23DbOf0mhz18mJ5PP1CXufROQdCxdo0ce+6DUocXMJDbpcZJd
         00khsT1sjDT0PJdemwytp4dRHPYzLyK6bWTqY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731663413; x=1732268213;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=T0HwHYH/XM0oXYXGB08CJRRpmnB5m39KSPc+LJry+c4=;
        b=NR/Utw6GQHaoLCxcExEq6kza6UPkAOJPXrgyhoreIuyFZ0+eYTIS3KQHjcvr1mnlZn
         7G7JeChMAPbZhFZyeGDMJ0vrLFpYXI1MSlJf3AIpneUmaRops8gTK97bxlW1AdpcYFaq
         iFHlUrz2HPKrMjvsJSObhD5bDAbwYkCvzx0u5zruGKUKTbaUM9uoyPJrza76EMYVNtub
         G8u7UqzTbTTOB97UCaxA3Fu5X6muzSNe1DVPOUXuadR9TnADBc513qZ8JTOJXfMztzGJ
         E6fFK/PS+fPEqzPKnX4sO0oAr+ZTd6pOkqGUjHT33UshhCYpJHcC/AkYOZjCAZEdA4qW
         dGTQ==
X-Gm-Message-State: AOJu0YwPM4b17gRpRDoIork/HQKPsZpuu4Il04E+4eYcR8sGUz5oGx7J
	cEOe7T2s4QDp2dYK5HXPPH/gQoJYyoitJTWMiiydIpoP7KOYGZBCrCg4X/kLL1ISKE7NM2hxsNv
	a0NbAZXWi0Y7fyR26azq3NTm8YM9NRfLj6RyAeA==
X-Google-Smtp-Source: AGHT+IFapDmXAHOeq7f7/Q1Iu0tp0S11Jygz8TF4nBNJ/S1wlmpgKkvrUQrEHiG2BK+D52QKN++l0Bvr+HttEJFeDSE=
X-Received: by 2002:a05:6830:6811:b0:717:fab7:f7cb with SMTP id
 46e09a7af769-71a77a08c32mr2416965a34.21.1731663413419; Fri, 15 Nov 2024
 01:36:53 -0800 (PST)
MIME-Version: 1.0
References: <20241114182219.1983073-1-andrew.cooper3@citrix.com>
In-Reply-To: <20241114182219.1983073-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 15 Nov 2024 09:36:42 +0000
Message-ID: <CACHz=Zi40q2fiUJf4H1jVGezYcuHFMJBnMmoYtpmCB4iXw2eRw@mail.gmail.com>
Subject: Re: [PATCH] x86/boot: Fix comment about setting up the real mode stack
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>, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, 
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 14, 2024 at 6:22=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> It may have taken a while, but it occurs to me that the mentioned commit =
fixed
> a second problem too.
>
> On entering trampoline_boot_cpu_entry(), %esp points at the trampoline st=
ack,
> but in a 32bit flat segment.  It happens to be page aligned.
>
> When dropping into 16bit mode, the stack segment operates on %sp, preserv=
ing
> the upper bits.  Prior to 1ed76797439e, the top nibble of %sp would depen=
d on
> where the trampoline was placed in low memory, and only had a 1/16 chance=
 of
> being 0 and therefore operating on the intended stack.
>
> There was a 15/16 chance of using a different page in the trampoline as i=
f it
> were the stack.  Therefore, zeroing %esp was correct, but for more reason=
s
> than realised at the time.
>

It's not clear the additional reasons, even the original commit
mentioned wrong usage of upper bits.

> Update the comment to explain why zeroing %esp is correct in all cases.  =
Move
> it marginally earlier to when a 16bit stack segment is first loaded.
>

I don't see such an explanation, I mean, from "The stack is at
trampoline_phys + 64k, which for a 16bit stack segment wants %sp
starting at 0" I could assume "xor %sp, %sp" is correct too.

> Fixes: 1ed76797439e ("x86/boot: fix BIOS memory corruption on certain IBM=
 systems")

Does this commit really "fixes" something.

The subject "Fix comment about setting up the real mode stack" seems
to indicate an update of a comment, is it considered a fix?

This commit also moves the initialisation of %esp. Is there a reason for th=
is?

> 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>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
>  xen/arch/x86/boot/trampoline.S | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampolin=
e.S
> index 924bda37c1b7..f5a1d61280c5 100644
> --- a/xen/arch/x86/boot/trampoline.S
> +++ b/xen/arch/x86/boot/trampoline.S
> @@ -176,6 +176,12 @@ trampoline_boot_cpu_entry:
>          mov     %eax,%gs
>          mov     %eax,%ss
>
> +        /*
> +         * The stack is at trampoline_phys + 64k, which for a 16bit stac=
k
> +         * segment wants %sp starting at 0.
> +         */
> +        xor     %esp, %esp
> +
>          /* Switch to pseudo-rm CS, enter real mode, and flush insn queue=
. */
>          mov     %cr0,%eax
>          dec     %eax
> @@ -190,8 +196,6 @@ trampoline_boot_cpu_entry:
>          mov     %ax,%es
>          mov     %ax,%ss
>
> -        /* Initialise stack pointer and IDT, and enable irqs. */

Fine, surely this commit without stack pointer handling is useless.

> -        xor     %esp,%esp
>          lidt    bootsym(rm_idt)
>          sti
>
>
> base-commit: 41c80496084aa3601230e01c3bc579a0a6d8359a
> prerequisite-patch-id: 6eb3b54ccd19effe3a89768e0ec5c7a2496a233a
> prerequisite-patch-id: b9c480479c1f4021e9c3fe659811e28bf88f6eca
> prerequisite-patch-id: 68f0d0fff4312fb059861efddbef95ddf4635b0e
> prerequisite-patch-id: 66902cf11d58181ff63b8ee4efb4078df5828490

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 09:39:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 09:39:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837018.1252931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBsnR-0003fa-ES; Fri, 15 Nov 2024 09:39:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837018.1252931; Fri, 15 Nov 2024 09: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 1tBsnR-0003fT-Bo; Fri, 15 Nov 2024 09:39:21 +0000
Received: by outflank-mailman (input) for mailman id 837018;
 Fri, 15 Nov 2024 09:39: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=Tcl1=SK=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBsnQ-0003fL-56
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 09:39:20 +0000
Received: from mail-oo1-xc2c.google.com (mail-oo1-xc2c.google.com
 [2607:f8b0:4864:20::c2c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b140be0-a335-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 10:39:17 +0100 (CET)
Received: by mail-oo1-xc2c.google.com with SMTP id
 006d021491bc7-5ee9db85af0so869454eaf.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 01:39: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: 7b140be0-a335-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMmMiLCJoZWxvIjoibWFpbC1vbzEteGMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdiMTQwYmUwLWEzMzUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjYzNTU3LjM2MTA1Mywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731663556; x=1732268356; 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=UoFmVf6k6eJO106wGcAmef5cNSC0GosBuw0ID6B4UZc=;
        b=RuNDm0hlUPfXyMqvI7/8/z9dMOpctzxHiutrewk5UTiUUz8G+ktt9wDhKWs9uJ/muS
         zKivI0p2vIUXLCVrnId8s2uWqS5llel7u7gaEzF5kD5SjnJaHOZUPhgbM/gjwbkcpWIL
         bbm65qCviYIMagpXMfkXq8P/GR67xmYuicq48=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731663556; x=1732268356;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=UoFmVf6k6eJO106wGcAmef5cNSC0GosBuw0ID6B4UZc=;
        b=QEoBP/gMOjNol0SLVBmYjnbiW5Vb8fMzd9H/5xk7Dz+bV6oM1btEgGanj4e2NtpDUc
         vLCmLLVEgM/cWh1gEW0PsnNdBnmnawwSadBKmUWlU/vHNp7ysQAbBT9PY6IDvi/fGYGi
         vICW1vLUTbmsOgb8WF7VTX9SarbtOzLadZqc2wKhSM6o4w6LuZfc5P7Wq66wNjUocilL
         1nkS0oCPMf5brRj+kGtv49sKaiSfD0x/ghlgXuXmOtleEizx4fMSMDHtecStjvfP5T9c
         7dqA4xvotXyyNHrQ6byY7/AW4h/kWep8SCT3joK8BuYYRwx5895ZPCiTAYE9Luuhg0iX
         hNuA==
X-Forwarded-Encrypted: i=1; AJvYcCWlKPSJ9AZn4J127dpt3AbK+wovq0AQmD5dx1AxvGBwSr/CRr1mWDV/Fr+C3CFaxi+bu8mfZ3mMW+k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRJwjvcl7w0I6+Lb7o6ljuWG28+hXEaVkuvFfnxLfdTayUubYe
	nu7l7f0/TBWeTCwBg0kDpT1esp/gZpOKZCGSZmGer0LJxueFQ3ZN8ztbivBr06tLpxHqbgi5Zyo
	m2RNG4sYafrGHz13AxuXL1O63qVF8V3RUno6zMA==
X-Google-Smtp-Source: AGHT+IGAvh9+Hm2R9cZjFbzsU6ZuAG0KLwSrywXt5C3anrnVL0e9JP3ZfdDJcl79mRnzTf3MkAyJJQB1lLLR/W3dcIU=
X-Received: by 2002:a05:6830:374c:b0:709:41c4:6a5 with SMTP id
 46e09a7af769-71a773bac06mr1186402a34.3.1731663556044; Fri, 15 Nov 2024
 01:39:16 -0800 (PST)
MIME-Version: 1.0
References: <20241114182219.1983073-1-andrew.cooper3@citrix.com> <990887c0-d76f-4f8a-a6a6-c3dca49dcb91@suse.com>
In-Reply-To: <990887c0-d76f-4f8a-a6a6-c3dca49dcb91@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 15 Nov 2024 09:39:04 +0000
Message-ID: <CACHz=Zgwb1PPWQGgTap-O1UdhSBevZbiG=3ygs+TKe1e+2u+YA@mail.gmail.com>
Subject: Re: [PATCH] x86/boot: Fix comment about setting up the real mode stack
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>, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, 
	Alejandro Vallejo <alejandro.vallejo@cloud.com>, Xen-devel <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Nov 15, 2024 at 9:29=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 14.11.2024 19:22, Andrew Cooper wrote:
> > It may have taken a while, but it occurs to me that the mentioned commi=
t fixed
> > a second problem too.
> >
> > On entering trampoline_boot_cpu_entry(), %esp points at the trampoline =
stack,
> > but in a 32bit flat segment.  It happens to be page aligned.
> >
> > When dropping into 16bit mode, the stack segment operates on %sp, prese=
rving
> > the upper bits.  Prior to 1ed76797439e, the top nibble of %sp would dep=
end on
> > where the trampoline was placed in low memory, and only had a 1/16 chan=
ce of
> > being 0 and therefore operating on the intended stack.
> >
> > There was a 15/16 chance of using a different page in the trampoline as=
 if it
> > were the stack.  Therefore, zeroing %esp was correct, but for more reas=
ons
> > than realised at the time.
>
> I'm afraid I don't follow this analysis. Said commit replaced clearing of=
 %sp
> by clearing of %esp. That made no difference for anything using the 16-bi=
t
> register. I don't see how the top nibble of %sp could have been non-zero
> prior to that change.
>

I think it refers to 1ed76797439e, not this change.

> > Update the comment to explain why zeroing %esp is correct in all cases.=
  Move
> > it marginally earlier to when a 16bit stack segment is first loaded.
>
> The movement is fine, and the comment is fine by itself, too. It doesn't
> cover the significance of using 32-bit operand size, though (which may or=
 may
> not be relevant, to a fair degree depending on the above).
>

I assume a usage in the firmware, besides, we switch to 32/64 at some
point too so having the upper part 0 is safer in any case.

> Jan
>
> > --- a/xen/arch/x86/boot/trampoline.S
> > +++ b/xen/arch/x86/boot/trampoline.S
> > @@ -176,6 +176,12 @@ trampoline_boot_cpu_entry:
> >          mov     %eax,%gs
> >          mov     %eax,%ss
> >
> > +        /*
> > +         * The stack is at trampoline_phys + 64k, which for a 16bit st=
ack
> > +         * segment wants %sp starting at 0.
> > +         */
> > +        xor     %esp, %esp
> > +
> >          /* Switch to pseudo-rm CS, enter real mode, and flush insn que=
ue. */
> >          mov     %cr0,%eax
> >          dec     %eax
> > @@ -190,8 +196,6 @@ trampoline_boot_cpu_entry:
> >          mov     %ax,%es
> >          mov     %ax,%ss
> >
> > -        /* Initialise stack pointer and IDT, and enable irqs. */
> > -        xor     %esp,%esp
> >          lidt    bootsym(rm_idt)
> >          sti
> >
>


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:13:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:13:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837033.1252941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtKE-0001gk-W6; Fri, 15 Nov 2024 10:13:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837033.1252941; Fri, 15 Nov 2024 10:13: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 1tBtKE-0001gd-TY; Fri, 15 Nov 2024 10:13:14 +0000
Received: by outflank-mailman (input) for mailman id 837033;
 Fri, 15 Nov 2024 10:13: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=rNXE=SK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBtKE-0001gS-B2
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:13:14 +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 3754560d-a33a-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 11:13:10 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cb6ca2a776so2650595a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 02:13:10 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79ba0774sm1420028a12.36.2024.11.15.02.13.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 02:13: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: 3754560d-a33a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM3NTQ1NjBkLWEzM2EtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjY1NTkwLjUzMTc3Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731665590; x=1732270390; 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=cosIWsB6OhzrFMvHBWxzUYafQjL8qHoH+ZKKxBA8zOc=;
        b=FoG5SbjuB9q/MZpi2tWM/sEaSU0Oi1tCERpmw4rHzwBUuQN6chU9A7cwIuJcaOkpa0
         kdDKfDNGuA8LwIAL0df5c65jGiKAVC/n7pNC+8H+Bh++98TaE/npwC+xKuV83JU9JUlm
         9a6XtRNkaTMT9IgSlxbCuUKwEFqHv/L2nmQa0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731665590; x=1732270390;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=cosIWsB6OhzrFMvHBWxzUYafQjL8qHoH+ZKKxBA8zOc=;
        b=pW1DkNM+fbSJV2+S7NmDk85Wnsms9F4nibpF4BiYdp/kFqI8WaTUh1jC+LhGzRWk6C
         3PfsMfi/8+YVyCg2IzTs6KE+wysePP/3pJuN+/jrJpfi0KFBnMmShvf6lCx3Ddtrdofb
         Pej6L+/cHiaCreqYMWhcbitUmfhDmhiWy2sXF4i42wDe57K8eqKToycw0vvFNGCuQQrt
         D+pZEJeDHR0ZT+K1SgV93gvrF613oiqL/DtcwuMgDB8UF77OhuIVa01dQtc9W0c5JHTI
         849IYb9ujyVoMPh6BNjmuPp0cT+6sWtYdYZJZP2DtJgEbkvjbzMzf7P4mKFaqcr3lKJ1
         vZLg==
X-Gm-Message-State: AOJu0Yzy4gynlGlZpQEh3g4E8uNgNjp3PcreYTGw9Aa9ihfIgswPMqjX
	jh8aC+dhws6r7FwZizEbuRyI3ld5cjItG6kNvkaMxmUS296Jh4eJdrLxgXxlC+Rp+vTe5blPqcd
	8
X-Google-Smtp-Source: AGHT+IFgE+Q+PGFNwiVaXlVX/XFvhmO5oh2P0rZvFaGdjZadAIahSfxU5wqze7H4mg1kuLybA0U0EQ==
X-Received: by 2002:a05:6402:26cb:b0:5cf:9c4e:962f with SMTP id 4fb4d7f45d1cf-5cf9c4ea2f9mr205384a12.15.1731665589645;
        Fri, 15 Nov 2024 02:13:09 -0800 (PST)
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/mm: fix alignment check for non-present entries
Date: Fri, 15 Nov 2024 11:12:25 +0100
Message-ID: <20241115101225.70556-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While the alignment of the mfn is not relevant for non-present entries, the
alignment of the linear address is.  Commit 5b52e1b0436f introduced a
regression by not checking the alignment of the linear address when the new
entry was a non-present one.

Fix by always checking the alignment of the linear address, non-present entries
must just skip the alignment check of the physical address.

Fixes: 5b52e1b0436f ('x86/mm: skip super-page alignment checks for non-present entries')
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/mm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 5d7e8d78718c..494c14e80ff9 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5525,7 +5525,7 @@ int map_pages_to_xen(
         ol3e = *pl3e;
 
         if ( cpu_has_page1gb &&
-             (!(flags & _PAGE_PRESENT) || IS_L3E_ALIGNED(virt, mfn)) &&
+             IS_L3E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
              nr_mfns >= (1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) &&
              !(flags & (_PAGE_PAT | MAP_SMALL_PAGES)) )
         {
@@ -5644,7 +5644,7 @@ int map_pages_to_xen(
         if ( !pl2e )
             goto out;
 
-        if ( (!(flags & _PAGE_PRESENT) || IS_L2E_ALIGNED(virt, mfn)) &&
+        if ( IS_L2E_ALIGNED(virt, flags & _PAGE_PRESENT ? mfn : _mfn(0)) &&
              (nr_mfns >= (1u << PAGETABLE_ORDER)) &&
              !(flags & (_PAGE_PAT|MAP_SMALL_PAGES)) )
         {
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:27:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837043.1252952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtXt-0003jb-5b; Fri, 15 Nov 2024 10:27:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837043.1252952; Fri, 15 Nov 2024 10:27: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 1tBtXt-0003jU-27; Fri, 15 Nov 2024 10:27:21 +0000
Received: by outflank-mailman (input) for mailman id 837043;
 Fri, 15 Nov 2024 10:27: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=Tcl1=SK=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tBtXs-0003jO-5c
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:27:20 +0000
Received: from mail-oo1-xc29.google.com (mail-oo1-xc29.google.com
 [2607:f8b0:4864:20::c29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e6e3746-a33c-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 11:27:15 +0100 (CET)
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-5ee354637b4so941987eaf.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 02:27: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: 2e6e3746-a33c-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMjkiLCJoZWxvIjoibWFpbC1vbzEteGMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJlNmUzNzQ2LWEzM2MtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY2NDM1LjM1NjQ3LCJzZW5kZXIiOiJmcmVkaWFuby56aWdsaW9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731666434; x=1732271234; 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=qdPog5/bWZfZ7jKLZsD7JZdUFesgZJHYz4etpOZoUD4=;
        b=la668Wq7cdiTZ28SHAiLtNFpU3hDlZEoYyTBFibOU27uYtOk2nWeeLzNNB3s3aiUhe
         Zb7UElcqTtMReWoxzcm+7uRKgx+7KVy5Px+SA8XPQd/qMSVlE0VGGB3QW1w2OTN1cn9E
         rCMufMd4wT/ujs4YhUDvIS9DzqDq4UuZqhJGw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731666434; x=1732271234;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qdPog5/bWZfZ7jKLZsD7JZdUFesgZJHYz4etpOZoUD4=;
        b=ZeXEf2my6QqSihphXWRodlmFV1R3qpI4RQHIWTIQ7YbkzB6AXW0LiEsxzSoZNJUi0/
         D3Mg2HtR6YHlpr5CGXHFzFSzvcJ4Gahb9TsvXFLuylbH73EPVXbRgmfNZkt8S2Q939LH
         2w22Bc78BN0eWZ7aPylM0v6sVgT0jXY6Wqb7EK9nW2G6+pWiMRKgJw+VL5srTr5IpRml
         xOkm27m275uSdiXQeCaFxCAM/Pka8u0e7wSyZCO0ywAPG4G4zkEAenKUMt0z5kNVppHi
         Re6FKTmSeBxp0Xwl1xNCSMtN2PXhNDih5ffQs7BlEothn07wef8/GSB/wxy1bbpOBqgQ
         fyJg==
X-Forwarded-Encrypted: i=1; AJvYcCXMhPfwe0FRP//0YroS0VsH2TZLhcRvRc/zDicmewPgw36afGMDTKdryXPGGySHza6GEzBkLKSqTfQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6FvbnC3/tBNemlpJ5d6a/F93iOlBgKBGib3ADQnejutn3SHjf
	0qCUAU6gjd1+gAJuRVEfBRZ0v09RsEIYe3YEzqRZb72nRubVWFJvwVdVdXx9BXJsqFoiL7RssSF
	PJeOywC7N2skI04VOijsQl4pZ3ORsp0iZ8uUjaA==
X-Google-Smtp-Source: AGHT+IERrQq8fYBWoEAszv39L5j3I35LyYmmUSsDh12io0coZen9cFCDt0JZXdN4VbnEzrjIiQcnRHLhECOME1hCGCk=
X-Received: by 2002:a05:6830:6e10:b0:715:3a11:ece9 with SMTP id
 46e09a7af769-71a77a24762mr2362446a34.19.1731666433893; Fri, 15 Nov 2024
 02:27:13 -0800 (PST)
MIME-Version: 1.0
References: <20240819142953.415817-1-frediano.ziglio@cloud.com>
 <c55fdc20-2a58-4978-bd78-4cba90a7a8e4@suse.com> <CACHz=ZhGsE1fvhEi2k2X9ae2rx=ik3ZzZR4RN4Uajt_qvs2J=w@mail.gmail.com>
 <edc4f604-d8e2-4227-abc9-9c5de5933417@suse.com>
In-Reply-To: <edc4f604-d8e2-4227-abc9-9c5de5933417@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 15 Nov 2024 10:27:03 +0000
Message-ID: <CACHz=Zj40eMUfaRCnQih0CGmXYM+tKe95S8_ELWS+T8goLqGbA@mail.gmail.com>
Subject: Re: [PATCH v4] Avoid crash calling PrintErrMesg from efi_multiboot2
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	"Daniel P. Smith" <dpsmith@apertussolutions.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 14, 2024 at 3:04=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 14.11.2024 15:02, Frediano Ziglio wrote:
> > On Tue, Nov 5, 2024 at 2:52=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >>
> >> On 19.08.2024 16:29, Frediano Ziglio wrote:
> >>> --- a/xen/common/efi/boot.c
> >>> +++ b/xen/common/efi/boot.c
> >>> @@ -287,19 +287,36 @@ static bool __init match_guid(const EFI_GUID *g=
uid1, const EFI_GUID *guid2)
> >>>  /* generic routine for printing error messages */
> >>>  static void __init PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCo=
de)
> >>>  {
> >>> -    static const CHAR16* const ErrCodeToStr[] __initconstrel =3D {
> >>> -        [~EFI_ERROR_MASK & EFI_NOT_FOUND]           =3D L"Not found"=
,
> >>> -        [~EFI_ERROR_MASK & EFI_NO_MEDIA]            =3D L"The device=
 has no media",
> >>> -        [~EFI_ERROR_MASK & EFI_MEDIA_CHANGED]       =3D L"Media chan=
ged",
> >>> -        [~EFI_ERROR_MASK & EFI_DEVICE_ERROR]        =3D L"Device err=
or",
> >>> -        [~EFI_ERROR_MASK & EFI_VOLUME_CORRUPTED]    =3D L"Volume cor=
rupted",
> >>> -        [~EFI_ERROR_MASK & EFI_ACCESS_DENIED]       =3D L"Access den=
ied",
> >>> -        [~EFI_ERROR_MASK & EFI_OUT_OF_RESOURCES]    =3D L"Out of res=
ources",
> >>> -        [~EFI_ERROR_MASK & EFI_VOLUME_FULL]         =3D L"Volume is =
full",
> >>> -        [~EFI_ERROR_MASK & EFI_SECURITY_VIOLATION]  =3D L"Security v=
iolation",
> >>> -        [~EFI_ERROR_MASK & EFI_CRC_ERROR]           =3D L"CRC error"=
,
> >>> -        [~EFI_ERROR_MASK & EFI_COMPROMISED_DATA]    =3D L"Compromise=
d data",
> >>> -        [~EFI_ERROR_MASK & EFI_BUFFER_TOO_SMALL]    =3D L"Buffer too=
 small",
> >>> +#define ERROR_MESSAGE_LIST \
> >>> +    ERROR_MESSAGE(EFI_NOT_FOUND, "Not found") \
> >>> +    ERROR_MESSAGE(EFI_NO_MEDIA, "The device has no media") \
> >>> +    ERROR_MESSAGE(EFI_MEDIA_CHANGED, "Media changed") \
> >>> +    ERROR_MESSAGE(EFI_DEVICE_ERROR, "Device error") \
> >>> +    ERROR_MESSAGE(EFI_VOLUME_CORRUPTED, "Volume corrupted") \
> >>> +    ERROR_MESSAGE(EFI_ACCESS_DENIED, "Access denied") \
> >>> +    ERROR_MESSAGE(EFI_OUT_OF_RESOURCES, "Out of resources") \
> >>> +    ERROR_MESSAGE(EFI_VOLUME_FULL, "Volume is full") \
> >>> +    ERROR_MESSAGE(EFI_SECURITY_VIOLATION, "Security violation") \
> >>> +    ERROR_MESSAGE(EFI_CRC_ERROR, "CRC error") \
> >>> +    ERROR_MESSAGE(EFI_COMPROMISED_DATA, "Compromised data") \
> >>> +    ERROR_MESSAGE(EFI_BUFFER_TOO_SMALL, "Buffer too small")
> >>> +
> >>> +    static const struct ErrorStrings {
> >>> +        CHAR16 start;
> >>> +#undef ERROR_MESSAGE
> >>> +#define ERROR_MESSAGE(code, str) CHAR16 msg_ ## code[sizeof(str)];
> >>> +        ERROR_MESSAGE_LIST
> >>> +    } ErrorStrings __initconst =3D {
> >>> +        0
> >>> +#undef ERROR_MESSAGE
> >>> +#define ERROR_MESSAGE(code, str) , L ## str
> >>> +        ERROR_MESSAGE_LIST
> >>> +    };
> >>> +    static const uint16_t ErrCodeToStr[] __initconst =3D {
> >>> +#undef ERROR_MESSAGE
> >>> +#define ERROR_MESSAGE(code, str) \
> >>> +        [~EFI_ERROR_MASK & code] =3D offsetof(struct ErrorStrings, m=
sg_ ## code),
> >>> +        ERROR_MESSAGE_LIST
> >>>      };
> >>>      EFI_STATUS ErrIdx =3D ErrCode & ~EFI_ERROR_MASK;
> >>>
> >>
> >> A while ago Andrew and I discussed this, and I was apparently wrongly =
expecting
> >> him to come back here, as (iirc; no record of this that I could find i=
n the mail
> >> archives, so I'm sorry if my recollection is wrong) he was the one to =
object. We
> >> concluded that it wants at least considering to undo the respective pa=
rt of
> >> 00d5d5ce23e6, finding a different solution to the Clang issue there.
> >
> > I thought this patch was already applied.
> > I didn't remember any clang issue.
> > As far as I know, this was delayed by an issue that turned out to be di=
fferent.
> > So, any reason why not to merge the original patch?
>
> Afaict the alternative would result in tidier code, and hence might indee=
d be
> preferable. But since the reason I didn't long commit the patch is Andrew
> wanting it to not be committed, it'll need to be him to chime in here. Ev=
en
> if only to indicate that I'm misremembering.
>
> Jan

What alternative are you talking about? Was it something discussed elsewher=
e?

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:36:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:36:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837051.1252961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtgv-0005c8-Vl; Fri, 15 Nov 2024 10:36:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837051.1252961; Fri, 15 Nov 2024 10: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 1tBtgv-0005c1-Sv; Fri, 15 Nov 2024 10:36:41 +0000
Received: by outflank-mailman (input) for mailman id 837051;
 Fri, 15 Nov 2024 10:36: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBtgv-0005bm-2s
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:36:41 +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 7dd37195-a33d-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 11:36:37 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-37d3e8d923fso1151423f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 02:36:37 -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-3821adad93asm3983396f8f.26.2024.11.15.02.36.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 02:36: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: 7dd37195-a33d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdkZDM3MTk1LWEzM2QtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjY2OTk3LjMxMjg3OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731666997; x=1732271797; 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=+xC2orDmBHmY3dJ3J7xd6PZk7m2W0RZQ4qIo6iHpsFg=;
        b=W70mYUCaqYrTmuXANzFVCzKkmXnDRTgvra1b3XEyZalZxudl7M1RZrkeA0rrw5rPFv
         m+qjufAJxs2wGrQmi/Whit8SwnvQX9yXkTcDUJ6+hGijH3LV7u2L3jIZU/GV9RgqqOeW
         vzT7PE3CP6XOs4+C/kIdK9MT2ZDYlp2+nKjdh6TvhG84AAU230eMGdDtmjh7UQ4OXfMc
         BhuEXF/+3i3MRdgRiDOfHjaSE+W0rw4tZf9z0bPRjkeI0+C5jejHdhK2EFBKmozC4Zbg
         c6/uDAbptYxHQnDTdG7/R2XnvsVnX7pMvvX6VUfXxk9lvGeYLT2Tl0WibGBtn24PHnca
         7zYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731666997; x=1732271797;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+xC2orDmBHmY3dJ3J7xd6PZk7m2W0RZQ4qIo6iHpsFg=;
        b=s9rsTRdYU75ctQVYcKqSeep5ZQ85/6qY9As3wtcZWkIcBook1yG1ndN6f2d9eFewDW
         sRB6Ny6Yc3xo8WHaUdnNYDzhbjr6R2+Udsr/9f9GS15gXFJGPyoW/CY5UUM46zsBpC7z
         Hav8jz5yH7b8FxYDfMVrScOz3YSqvMMyTzHnqQmJRZZnoPc3gBMF7/XMOZfFW57l1Jti
         TOxe3VAT+F/POYfdGIgM1HSyILCxmMMl+HfDMifVLrknWsvvqRt7jxG9zk6FfccM400t
         fZ7chxukzQxpexe9L7MINC8rjkIECWiX+FQkwbiBuRl6XSwGjdOPsMaDWjOFZT9Jy9YS
         zoZw==
X-Forwarded-Encrypted: i=1; AJvYcCXR76cQRFbg31vrXztHVRjRAYAElo6Fn4chitQpAGLLPlmAc9uXqcu6//SoJqzl5upF6J6jmDdhxaU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz15QtHj76RV8/7Aim8R3hTOXei53iP88Il0z/0dZdVlMD9gYP/
	H0TMrLcNUe3/h9r2AscvRB7NoSwiStI9cbcporb3bdu1ZMVY4N7bRJ+RuE8cuQ==
X-Google-Smtp-Source: AGHT+IFdpXTw8+VVFaGRMg36txi+DAnvRFhsfHDTEs6DjyzsWs8Nz4+9jBRIMQ3LrKqN9ekK1XoOdQ==
X-Received: by 2002:a05:6000:1549:b0:37d:53dd:4dec with SMTP id ffacd0b85a97d-38225a07c2fmr1747591f8f.15.1731666996675;
        Fri, 15 Nov 2024 02:36:36 -0800 (PST)
Message-ID: <7ae4c5f8-6bfd-448d-a46d-42f57d4e648c@suse.com>
Date: Fri, 15 Nov 2024 11:36:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] Avoid crash calling PrintErrMesg from efi_multiboot2
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20240819142953.415817-1-frediano.ziglio@cloud.com>
 <c55fdc20-2a58-4978-bd78-4cba90a7a8e4@suse.com>
 <CACHz=ZhGsE1fvhEi2k2X9ae2rx=ik3ZzZR4RN4Uajt_qvs2J=w@mail.gmail.com>
 <edc4f604-d8e2-4227-abc9-9c5de5933417@suse.com>
 <CACHz=Zj40eMUfaRCnQih0CGmXYM+tKe95S8_ELWS+T8goLqGbA@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: <CACHz=Zj40eMUfaRCnQih0CGmXYM+tKe95S8_ELWS+T8goLqGbA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.11.2024 11:27, Frediano Ziglio wrote:
> On Thu, Nov 14, 2024 at 3:04â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 14.11.2024 15:02, Frediano Ziglio wrote:
>>> On Tue, Nov 5, 2024 at 2:52â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> On 19.08.2024 16:29, Frediano Ziglio wrote:
>>>>> --- a/xen/common/efi/boot.c
>>>>> +++ b/xen/common/efi/boot.c
>>>>> @@ -287,19 +287,36 @@ static bool __init match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2)
>>>>>  /* generic routine for printing error messages */
>>>>>  static void __init PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode)
>>>>>  {
>>>>> -    static const CHAR16* const ErrCodeToStr[] __initconstrel = {
>>>>> -        [~EFI_ERROR_MASK & EFI_NOT_FOUND]           = L"Not found",
>>>>> -        [~EFI_ERROR_MASK & EFI_NO_MEDIA]            = L"The device has no media",
>>>>> -        [~EFI_ERROR_MASK & EFI_MEDIA_CHANGED]       = L"Media changed",
>>>>> -        [~EFI_ERROR_MASK & EFI_DEVICE_ERROR]        = L"Device error",
>>>>> -        [~EFI_ERROR_MASK & EFI_VOLUME_CORRUPTED]    = L"Volume corrupted",
>>>>> -        [~EFI_ERROR_MASK & EFI_ACCESS_DENIED]       = L"Access denied",
>>>>> -        [~EFI_ERROR_MASK & EFI_OUT_OF_RESOURCES]    = L"Out of resources",
>>>>> -        [~EFI_ERROR_MASK & EFI_VOLUME_FULL]         = L"Volume is full",
>>>>> -        [~EFI_ERROR_MASK & EFI_SECURITY_VIOLATION]  = L"Security violation",
>>>>> -        [~EFI_ERROR_MASK & EFI_CRC_ERROR]           = L"CRC error",
>>>>> -        [~EFI_ERROR_MASK & EFI_COMPROMISED_DATA]    = L"Compromised data",
>>>>> -        [~EFI_ERROR_MASK & EFI_BUFFER_TOO_SMALL]    = L"Buffer too small",
>>>>> +#define ERROR_MESSAGE_LIST \
>>>>> +    ERROR_MESSAGE(EFI_NOT_FOUND, "Not found") \
>>>>> +    ERROR_MESSAGE(EFI_NO_MEDIA, "The device has no media") \
>>>>> +    ERROR_MESSAGE(EFI_MEDIA_CHANGED, "Media changed") \
>>>>> +    ERROR_MESSAGE(EFI_DEVICE_ERROR, "Device error") \
>>>>> +    ERROR_MESSAGE(EFI_VOLUME_CORRUPTED, "Volume corrupted") \
>>>>> +    ERROR_MESSAGE(EFI_ACCESS_DENIED, "Access denied") \
>>>>> +    ERROR_MESSAGE(EFI_OUT_OF_RESOURCES, "Out of resources") \
>>>>> +    ERROR_MESSAGE(EFI_VOLUME_FULL, "Volume is full") \
>>>>> +    ERROR_MESSAGE(EFI_SECURITY_VIOLATION, "Security violation") \
>>>>> +    ERROR_MESSAGE(EFI_CRC_ERROR, "CRC error") \
>>>>> +    ERROR_MESSAGE(EFI_COMPROMISED_DATA, "Compromised data") \
>>>>> +    ERROR_MESSAGE(EFI_BUFFER_TOO_SMALL, "Buffer too small")
>>>>> +
>>>>> +    static const struct ErrorStrings {
>>>>> +        CHAR16 start;
>>>>> +#undef ERROR_MESSAGE
>>>>> +#define ERROR_MESSAGE(code, str) CHAR16 msg_ ## code[sizeof(str)];
>>>>> +        ERROR_MESSAGE_LIST
>>>>> +    } ErrorStrings __initconst = {
>>>>> +        0
>>>>> +#undef ERROR_MESSAGE
>>>>> +#define ERROR_MESSAGE(code, str) , L ## str
>>>>> +        ERROR_MESSAGE_LIST
>>>>> +    };
>>>>> +    static const uint16_t ErrCodeToStr[] __initconst = {
>>>>> +#undef ERROR_MESSAGE
>>>>> +#define ERROR_MESSAGE(code, str) \
>>>>> +        [~EFI_ERROR_MASK & code] = offsetof(struct ErrorStrings, msg_ ## code),
>>>>> +        ERROR_MESSAGE_LIST
>>>>>      };
>>>>>      EFI_STATUS ErrIdx = ErrCode & ~EFI_ERROR_MASK;
>>>>>
>>>>
>>>> A while ago Andrew and I discussed this, and I was apparently wrongly expecting
>>>> him to come back here, as (iirc; no record of this that I could find in the mail
>>>> archives, so I'm sorry if my recollection is wrong) he was the one to object. We
>>>> concluded that it wants at least considering to undo the respective part of
>>>> 00d5d5ce23e6, finding a different solution to the Clang issue there.

This is ...

>>> I thought this patch was already applied.
>>> I didn't remember any clang issue.
>>> As far as I know, this was delayed by an issue that turned out to be different.
>>> So, any reason why not to merge the original patch?
>>
>> Afaict the alternative would result in tidier code, and hence might indeed be
>> preferable. But since the reason I didn't long commit the patch is Andrew
>> wanting it to not be committed, it'll need to be him to chime in here. Even
>> if only to indicate that I'm misremembering.
> 
> What alternative are you talking about? Was it something discussed elsewhere?

... the alternative I'm talking about.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:37:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837060.1252971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBti8-0006FJ-DF; Fri, 15 Nov 2024 10:37:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837060.1252971; Fri, 15 Nov 2024 10:37: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 1tBti8-0006FC-AU; Fri, 15 Nov 2024 10:37:56 +0000
Received: by outflank-mailman (input) for mailman id 837060;
 Fri, 15 Nov 2024 10:37: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBti6-0006AH-M9
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:37:54 +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 aa6e3b9a-a33d-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 11:37:52 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4316cce103dso17638555e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 02:37: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-3821ae1617bsm4082985f8f.72.2024.11.15.02.37.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 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: aa6e3b9a-a33d-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFhNmUzYjlhLWEzM2QtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY3MDcyLjQ5NDk1Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731667071; x=1732271871; 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=SgQAW3/Y6uvoW7deyYTZF/SWoV1KDQMiLsIY8IsZxX8=;
        b=aCoGxTviknuT2rFM1DYCMFE2d1knDWl0WLEYKE1HHFhBx1oTKiCzI9FFsJVVpU3EUR
         27kAO+W9LW31ydNgoTPVl+BOj6zpJVhqpiFodSlbYARfGHx0AD/T9jfQL8DT0/sj2VcC
         Agf/Zr5ImF7Y6kaHKLJePbm1s2MtzWCWQMRvsf4CNHSiWD4AFICfNBKJNsTKHrbI8aTr
         BhWqAEJcYyqpUIQ9zQpx6mSGXiIaswx79B63/8H6MbStqoDCpE2AyA34RkPiYeug02Bp
         Wsvlq9rFx/OwwKKdSIf9SHAcAhdcJvbWr/P6upuxn6BmYUblcaBVawWez/vp8YEbZO8J
         K3ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731667071; x=1732271871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SgQAW3/Y6uvoW7deyYTZF/SWoV1KDQMiLsIY8IsZxX8=;
        b=kT99biP6D1GCSohPfbIjtmFadGEf8AqTWl3BC25Y/hgDYChm6R1S5QXhTbBZlJjH5a
         IyAZ20EfUTpawv4auhLQZZQMDt8qcQYccmcrN3eMAPMD9bVUbk22p3cI78alU229NnCV
         i0PY7zcUhBu7llmYmdINMNEbASMA6krAiP/C0W9TngMlbNeCwkOBfXAWG4p0Yz8annT7
         CwcshfKtzzK4Awov2shqI4znioqUN4z7Lu41tiXYHZqHNbSfDU5sZs5qN+OEnhTFJjU9
         r2DLklO5+w/8DKJozDdtktwT7E6dy9uB6AzIkWbE4c9BfIvZQEn+coehYyCA8MawhpSa
         jFIQ==
X-Forwarded-Encrypted: i=1; AJvYcCWzJ/8En46r/NXuxG6xstH52aQwJJH8h7KW2GW4jvS8WJrO7JYQTVYHCBpABgU905RdbXBb81DNNZE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywenmh+PAE1t0xxIykf0PmAohwTZjH1+dZ1IgmdcqKobqerhqiA
	rNRFJGtgEwFRKQtwB31XkhDuHuUzNOptwLeCgADAuPlT0a5GzL1QiedCHnJBaw==
X-Google-Smtp-Source: AGHT+IFoDiZoJwxlNCV3BrXlb/pzqDqUBhEx85UHs7+Sxwi+MNhaVUHeoRVGleiBK10AU5wQhxgLtg==
X-Received: by 2002:a05:600c:4e0f:b0:42a:a6b8:f09f with SMTP id 5b1f17b1804b1-432df78f3aamr16499575e9.23.1731667071611;
        Fri, 15 Nov 2024 02:37:51 -0800 (PST)
Message-ID: <c2b670e0-3d35-4b19-b696-ad8faa05437d@suse.com>
Date: Fri, 15 Nov 2024 11:37:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mm: fix alignment check for non-present entries
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241115101225.70556-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: <20241115101225.70556-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.11.2024 11:12, Roger Pau Monne wrote:
> While the alignment of the mfn is not relevant for non-present entries, the
> alignment of the linear address is.  Commit 5b52e1b0436f introduced a
> regression by not checking the alignment of the linear address when the new
> entry was a non-present one.
> 
> Fix by always checking the alignment of the linear address, non-present entries
> must just skip the alignment check of the physical address.
> 
> Fixes: 5b52e1b0436f ('x86/mm: skip super-page alignment checks for non-present entries')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837075.1253022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtug-0001iN-GU; Fri, 15 Nov 2024 10:50:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837075.1253022; Fri, 15 Nov 2024 10:50: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 1tBtug-0001hz-CA; Fri, 15 Nov 2024 10:50:54 +0000
Received: by outflank-mailman (input) for mailman id 837075;
 Fri, 15 Nov 2024 10:50: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=3ntz=SK=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tBtuf-0000jy-6x
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:50:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 7a876618-a33f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 11:50: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 3F34E1A2D;
 Fri, 15 Nov 2024 02:51:20 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3E8143F6A8;
 Fri, 15 Nov 2024 02:50: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: 7a876618-a33f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjdhODc2NjE4LWEzM2YtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY3ODUxLjE4MTYzNiwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 4/5] xen/arm: Use vmap_contig instead of __vmap where it's possible
Date: Fri, 15 Nov 2024 10:50:35 +0000
Message-Id: <20241115105036.218418-5-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241115105036.218418-1-luca.fancellu@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently the arm code uses __vmap function in few parts to map
physically contiguous pages, vmap_contig was introduced recently
and does the same because it's a wrapper for __vmap, so use the
latter instead of the direct __vmap function.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/alternative.c | 3 +--
 xen/arch/arm/cpuerrata.c   | 5 ++---
 xen/arch/arm/kernel.c      | 2 +-
 xen/arch/arm/livepatch.c   | 3 +--
 4 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c
index d99b5070937d..fec7dbd2cde9 100644
--- a/xen/arch/arm/alternative.c
+++ b/xen/arch/arm/alternative.c
@@ -209,8 +209,7 @@ void __init apply_alternatives_all(void)
      * The text and inittext section are read-only. So re-map Xen to
      * be able to patch the code.
      */
-    xenmap = __vmap(&xen_mfn, 1U << xen_order, 1, 1, PAGE_HYPERVISOR,
-                    VMAP_DEFAULT);
+    xenmap = vmap_contig(xen_mfn, 1U << xen_order);
     /* Re-mapping Xen is not expected to fail during boot. */
     BUG_ON(!xenmap);
 
diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
index eef9c0ea0e21..17cf134f1b0d 100644
--- a/xen/arch/arm/cpuerrata.c
+++ b/xen/arch/arm/cpuerrata.c
@@ -61,9 +61,8 @@ static bool copy_hyp_vect_bpi(unsigned int slot, const char *hyp_vec_start,
      * Vectors are part of the text that are mapped read-only. So re-map
      * the vector table to be able to update vectors.
      */
-    dst_remapped = __vmap(&dst_mfn,
-                          1UL << get_order_from_bytes(VECTOR_TABLE_SIZE),
-                          1, 1, PAGE_HYPERVISOR, VMAP_DEFAULT);
+    dst_remapped = vmap_contig(dst_mfn,
+                               1UL << get_order_from_bytes(VECTOR_TABLE_SIZE));
     if ( !dst_remapped )
         return false;
 
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 669d143cee1b..293d7efaed9c 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -211,7 +211,7 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
         return -ENOMEM;
     }
     mfn = page_to_mfn(pages);
-    output = __vmap(&mfn, 1 << kernel_order_out, 1, 1, PAGE_HYPERVISOR, VMAP_DEFAULT);
+    output = vmap_contig(mfn, 1 << kernel_order_out);
 
     rc = perform_gunzip(output, input, size);
     clean_dcache_va_range(output, output_size);
diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
index 037746d9528d..3805b2974663 100644
--- a/xen/arch/arm/livepatch.c
+++ b/xen/arch/arm/livepatch.c
@@ -39,8 +39,7 @@ int arch_livepatch_quiesce(void)
      * The text section is read-only. So re-map Xen to be able to patch
      * the code.
      */
-    vmap_of_xen_text = __vmap(&text_mfn, 1U << text_order, 1, 1, PAGE_HYPERVISOR,
-                              VMAP_DEFAULT);
+    vmap_of_xen_text = vmap_contig(text_mfn, 1U << text_order);
 
     if ( !vmap_of_xen_text )
     {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837072.1252987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtud-0000n4-QR; Fri, 15 Nov 2024 10:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837072.1252987; Fri, 15 Nov 2024 10:50: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 1tBtud-0000mR-LE; Fri, 15 Nov 2024 10:50:51 +0000
Received: by outflank-mailman (input) for mailman id 837072;
 Fri, 15 Nov 2024 10: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=3ntz=SK=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tBtud-0000jy-1B
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:50:51 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 786ddaff-a33f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 11:50: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 A7CDF176A;
 Fri, 15 Nov 2024 02:51:16 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 013113F6A8;
 Fri, 15 Nov 2024 02: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: 786ddaff-a33f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6Ijc4NmRkYWZmLWEzM2YtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY3ODQ3LjY1OTI1LCJzZW5kZXIiOiJsdWNhLmZhbmNlbGx1QGFybS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/5] common/vmap: Fall back to simple allocator when !HAS_VMAP
Date: Fri, 15 Nov 2024 10:50:32 +0000
Message-Id: <20241115105036.218418-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241115105036.218418-1-luca.fancellu@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When HAS_VMAP is disabled, the xv{malloc,zalloc,...} functions
should fall back to the simple x{malloc,zalloc,...} variant,
implement that because MPU systems won't have virtual memory.

Additionally remove VMAP_VIRT_START from vmap.h guards since
MPU systems won't have it defined and move iounmap function
to the vmap.c file, because it uses the vunmap function that
won't be compiled in when !HAS_VMAP.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
This is a rework of this one: https://patchwork.kernel.org/project/xen-devel/patch/20230626033443.2943270-16-Penny.Zheng@arm.com/
where I hope I've understood correctly what Jan Beulich was suggesting here:
https://patchwork.kernel.org/project/xen-devel/patch/20230626033443.2943270-16-Penny.Zheng@arm.com/#25409119
---
 xen/common/vmap.c          |  7 +++++++
 xen/include/xen/vmap.h     |  9 ++-------
 xen/include/xen/xvmalloc.h | 36 +++++++++++++++++++++++++++++++-----
 3 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/xen/common/vmap.c b/xen/common/vmap.c
index 47225fecc067..294280dcd08c 100644
--- a/xen/common/vmap.c
+++ b/xen/common/vmap.c
@@ -426,3 +426,10 @@ void *_xvrealloc(void *va, size_t size, unsigned int align)
 
     return ptr;
 }
+
+void iounmap(void __iomem *va)
+{
+    unsigned long addr = (unsigned long)(void __force *)va;
+
+    vunmap((void *)(addr & PAGE_MASK));
+}
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index c1dd7ac22f30..9e1d794c2548 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -5,7 +5,7 @@
  * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
  * latter is used when loading livepatches and the former for everything else.
  */
-#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
+#if !defined(__XEN_VMAP_H__)
 #define __XEN_VMAP_H__
 
 #include <xen/mm-frame.h>
@@ -128,12 +128,7 @@ void __iomem *ioremap(paddr_t pa, size_t len);
 unsigned int vmap_size(const void *va);
 
 /* Analogous to vunmap(), but for IO memory mapped via ioremap() */
-static inline void iounmap(void __iomem *va)
-{
-    unsigned long addr = (unsigned long)(void __force *)va;
-
-    vunmap((void *)(addr & PAGE_MASK));
-}
+void iounmap(void __iomem *va);
 
 /* Pointer to 1 octet past the end of the VMAP_DEFAULT virtual area */
 void *arch_vmap_virt_end(void);
diff --git a/xen/include/xen/xvmalloc.h b/xen/include/xen/xvmalloc.h
index 440d85a284bb..802be6687085 100644
--- a/xen/include/xen/xvmalloc.h
+++ b/xen/include/xen/xvmalloc.h
@@ -40,20 +40,46 @@
     ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
                              __alignof__(typeof(*(ptr)))))
 
+#if defined(CONFIG_HAS_VMAP)
+
 /* Free any of the above. */
 void xvfree(void *va);
 
+/* Underlying functions */
+void *_xvmalloc(size_t size, unsigned int align);
+void *_xvzalloc(size_t size, unsigned int align);
+void *_xvrealloc(void *va, size_t size, unsigned int align);
+
+#else
+
+static inline void xvfree(void *va)
+{
+    xfree(va);
+}
+
+void *_xvmalloc(size_t size, unsigned int align)
+{
+    return _xmalloc(size, align);
+}
+
+void *_xvzalloc(size_t size, unsigned int align)
+{
+    return _xzalloc(size, align);
+}
+
+void *_xvrealloc(void *va, size_t size, unsigned int align)
+{
+    return _xrealloc(va, size, align);
+}
+
+#endif
+
 /* Free an allocation, and zero the pointer to it. */
 #define XVFREE(p) do { \
     xvfree(p);         \
     (p) = NULL;        \
 } while ( false )
 
-/* Underlying functions */
-void *_xvmalloc(size_t size, unsigned int align);
-void *_xvzalloc(size_t size, unsigned int align);
-void *_xvrealloc(void *va, size_t size, unsigned int align);
-
 static inline void *_xvmalloc_array(
     size_t size, unsigned int align, unsigned long num)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837074.1253007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtuf-0001H5-79; Fri, 15 Nov 2024 10:50:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837074.1253007; Fri, 15 Nov 2024 10: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 1tBtuf-0001GJ-2P; Fri, 15 Nov 2024 10:50:53 +0000
Received: by outflank-mailman (input) for mailman id 837074;
 Fri, 15 Nov 2024 10: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=3ntz=SK=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tBtue-0000jy-1O
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10: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 79cd26b4-a33f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 11:50: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 E99751A25;
 Fri, 15 Nov 2024 02:51:18 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0EB213F6A8;
 Fri, 15 Nov 2024 02:50: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: 79cd26b4-a33f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6Ijc5Y2QyNmI0LWEzM2YtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY3ODQ5Ljc4MjA0Nywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.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 3/5] xen/arm: only map the init text section RW in free_init_memory
Date: Fri, 15 Nov 2024 10:50:34 +0000
Message-Id: <20241115105036.218418-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241115105036.218418-1-luca.fancellu@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

In free_init_memory, we do not need to map the whole init section RW,
as only init text section is mapped RO in boot time.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
This is this one: https://patchwork.kernel.org/project/xen-devel/patch/20230626033443.2943270-19-Penny.Zheng@arm.com/
---
 xen/arch/arm/mmu/setup.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 9664e85ee6c0..1b1d302c8788 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -7,6 +7,7 @@
 
 #include <xen/init.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/pfn.h>
 #include <xen/sections.h>
 #include <xen/sizes.h>
 #include <xen/vmap.h>
@@ -309,16 +310,17 @@ void *__init arch_vmap_virt_end(void)
 void free_init_memory(void)
 {
     paddr_t pa = virt_to_maddr(__init_begin);
+    unsigned long inittext_end = round_pgup((unsigned long)_einittext);
     unsigned long len = __init_end - __init_begin;
     uint32_t insn;
     unsigned int i, nr = len / sizeof(insn);
     uint32_t *p;
     int rc;
 
-    rc = modify_xen_mappings((unsigned long)__init_begin,
-                             (unsigned long)__init_end, PAGE_HYPERVISOR_RW);
+    rc = modify_xen_mappings((unsigned long)__init_begin, inittext_end,
+                             PAGE_HYPERVISOR_RW);
     if ( rc )
-        panic("Unable to map RW the init section (rc = %d)\n", 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,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837073.1253002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtue-0001EC-US; Fri, 15 Nov 2024 10:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837073.1253002; Fri, 15 Nov 2024 10: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 1tBtue-0001E5-RU; Fri, 15 Nov 2024 10:50:52 +0000
Received: by outflank-mailman (input) for mailman id 837073;
 Fri, 15 Nov 2024 10:50: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=3ntz=SK=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tBtud-0000kJ-R0
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:50:51 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 79161f42-a33f-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 11:50:48 +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 BB8C21A00;
 Fri, 15 Nov 2024 02:51:17 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EED023F6A8;
 Fri, 15 Nov 2024 02:50: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: 79161f42-a33f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6Ijc5MTYxZjQyLWEzM2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjY3ODQ4LjU2ODY4NCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>
Subject: [PATCH 2/5] arm/setup: Move MMU specific extern declarations to mmu/mm.h
Date: Fri, 15 Nov 2024 10:50:33 +0000
Message-Id: <20241115105036.218418-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241115105036.218418-1-luca.fancellu@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move some extern declarations related to MMU structures and define
from asm/setup.h to asm/mm.h, in order to increase encapsulation and
allow the MPU part to build, since it has no clue about them.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/mmu/mm.h | 11 +++++++++++
 xen/arch/arm/include/asm/setup.h  | 11 -----------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index c5e03a66bf9e..69b72d671012 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -12,6 +12,17 @@ extern vaddr_t directmap_virt_start;
 extern unsigned long directmap_base_pdx;
 #endif
 
+extern lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
+
+#ifdef CONFIG_ARM_64
+extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
+#endif
+extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
+extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
+
 #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 
 /*
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 64c227d171fc..3f5c6cf9a08b 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -65,17 +65,6 @@ 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 lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
-
-#ifdef CONFIG_ARM_64
-extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
-#endif
-extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
-extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
-
 /* Find where Xen will be residing at runtime and return a PT entry */
 lpae_t pte_of_xenaddr(vaddr_t va);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837071.1252982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtud-0000kG-Hr; Fri, 15 Nov 2024 10:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837071.1252982; Fri, 15 Nov 2024 10:50: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 1tBtud-0000k9-Eu; Fri, 15 Nov 2024 10:50:51 +0000
Received: by outflank-mailman (input) for mailman id 837071;
 Fri, 15 Nov 2024 10:50: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=3ntz=SK=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tBtuc-0000jy-Ce
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:50:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 77d84b60-a33f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 11:50: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 AE3271476;
 Fri, 15 Nov 2024 02:51:15 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 78D0C3F6A8;
 Fri, 15 Nov 2024 02:50: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: 77d84b60-a33f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6Ijc3ZDg0YjYwLWEzM2YtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY3ODQ2LjkzODI4NSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 0/5] Prerequisite patches for R82 upstreaming
Date: Fri, 15 Nov 2024 10:50:31 +0000
Message-Id: <20241115105036.218418-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In this serie I've taken out patches from the R82 branch already in the ML[1]
and some new patches I've done based on the current status of staging that will
not impact the current Armv8-R earlyboot work.

[1] https://patchwork.kernel.org/project/xen-devel/cover/20230626033443.2943270-1-Penny.Zheng@arm.com/

Luca Fancellu (3):
  common/vmap: Fall back to simple allocator when !HAS_VMAP
  arm/setup: Move MMU specific extern declarations to mmu/mm.h
  xen/arm: Use vmap_contig instead of __vmap where it's possible

Penny Zheng (2):
  xen/arm: only map the init text section RW in free_init_memory
  xen/arm: do not give memory back to static heap

 xen/arch/arm/alternative.c           |  3 +--
 xen/arch/arm/arm32/mmu/mm.c          |  4 ++--
 xen/arch/arm/cpuerrata.c             |  5 ++--
 xen/arch/arm/include/asm/mmu/mm.h    | 11 +++++++++
 xen/arch/arm/include/asm/setup.h     | 11 ---------
 xen/arch/arm/kernel.c                |  5 ++--
 xen/arch/arm/livepatch.c             |  3 +--
 xen/arch/arm/mmu/setup.c             | 16 +++++++++----
 xen/arch/arm/setup.c                 | 27 +++++++++++----------
 xen/common/device-tree/bootfdt.c     |  2 +-
 xen/common/device-tree/bootinfo.c    |  2 +-
 xen/common/device-tree/device-tree.c |  3 +++
 xen/common/vmap.c                    |  7 ++++++
 xen/include/xen/bootfdt.h            | 11 ++++++++-
 xen/include/xen/vmap.h               |  9 ++-----
 xen/include/xen/xvmalloc.h           | 36 ++++++++++++++++++++++++----
 16 files changed, 100 insertions(+), 55 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 10:50:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 10:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837076.1253032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBtui-00023g-TB; Fri, 15 Nov 2024 10:50:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837076.1253032; Fri, 15 Nov 2024 10:50: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 1tBtui-00023X-Pt; Fri, 15 Nov 2024 10:50:56 +0000
Received: by outflank-mailman (input) for mailman id 837076;
 Fri, 15 Nov 2024 10:50: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=3ntz=SK=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tBtuh-0000kJ-GY
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 10:50:55 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 7b422713-a33f-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 11:50:52 +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 6DBD61476;
 Fri, 15 Nov 2024 02:51:21 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 86DA23F6A8;
 Fri, 15 Nov 2024 02:50: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: 7b422713-a33f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjdiNDIyNzEzLWEzM2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjY3ODUyLjMzNzcwMywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.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 5/5] xen/arm: do not give memory back to static heap
Date: Fri, 15 Nov 2024 10:50:36 +0000
Message-Id: <20241115105036.218418-6-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241115105036.218418-1-luca.fancellu@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

If Xenheap is statically configured in Device Tree, its size is
definite. So, the memory shall not be given back into static heap, like
it's normally done in free_init_memory, etc, once the initialization
is finished.

Extract static_heap flag from init data bootinfo, as it will be needed
after destroying the init data section.
Introduce a new helper xen_is_using_staticheap() to tell whether Xenheap
is statically configured in the Device Tree.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
This is a rebase of this one: https://patchwork.kernel.org/project/xen-devel/patch/20230626033443.2943270-18-Penny.Zheng@arm.com/
---
 xen/arch/arm/arm32/mmu/mm.c          |  4 ++--
 xen/arch/arm/kernel.c                |  3 ++-
 xen/arch/arm/mmu/setup.c             |  8 ++++++--
 xen/arch/arm/setup.c                 | 27 ++++++++++++++-------------
 xen/common/device-tree/bootfdt.c     |  2 +-
 xen/common/device-tree/bootinfo.c    |  2 +-
 xen/common/device-tree/device-tree.c |  3 +++
 xen/include/xen/bootfdt.h            | 11 ++++++++++-
 8 files changed, 39 insertions(+), 21 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/mm.c b/xen/arch/arm/arm32/mmu/mm.c
index 063611412be0..b7ca7c94c9ca 100644
--- a/xen/arch/arm/arm32/mmu/mm.c
+++ b/xen/arch/arm/arm32/mmu/mm.c
@@ -199,7 +199,7 @@ void __init setup_mm(void)
 
     total_pages = ram_size >> PAGE_SHIFT;
 
-    if ( bootinfo.static_heap )
+    if ( xen_is_using_staticheap() )
     {
         const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
 
@@ -246,7 +246,7 @@ void __init setup_mm(void)
 
     do
     {
-        e = bootinfo.static_heap ?
+        e = xen_is_using_staticheap() ?
             fit_xenheap_in_static_heap(pfn_to_paddr(xenheap_pages), MB(32)) :
             consider_modules(ram_start, ram_end,
                              pfn_to_paddr(xenheap_pages),
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 293d7efaed9c..a4a99607b668 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -247,7 +247,8 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
      * Free the original kernel, update the pointers to the
      * decompressed kernel
      */
-    fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
+    if ( !xen_is_using_staticheap() )
+        fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
 
     return 0;
 }
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 1b1d302c8788..d0775793f4b4 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -343,8 +343,12 @@ void free_init_memory(void)
     if ( rc )
         panic("Unable to remove the init section (rc = %d)\n", rc);
 
-    init_domheap_pages(pa, pa + len);
-    printk("Freed %ldkB init memory.\n", (long)(__init_end-__init_begin)>>10);
+    if ( !xen_is_using_staticheap() )
+    {
+        init_domheap_pages(pa, pa + len);
+        printk("Freed %ldkB init memory.\n",
+               (long)(__init_end-__init_begin) >> 10);
+    }
 }
 
 /**
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca94..91340d5dc201 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -206,24 +206,25 @@ void __init discard_initial_modules(void)
     struct bootmodules *mi = &bootinfo.modules;
     int i;
 
-    for ( i = 0; i < mi->nr_mods; i++ )
+    if ( !xen_is_using_staticheap() )
     {
-        paddr_t s = mi->module[i].start;
-        paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
-
-        if ( mi->module[i].kind == BOOTMOD_XEN )
-            continue;
+        for ( i = 0; i < mi->nr_mods; i++ )
+        {
+            paddr_t s = mi->module[i].start;
+            paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
 
-        if ( !mfn_valid(maddr_to_mfn(s)) ||
-             !mfn_valid(maddr_to_mfn(e)) )
-            continue;
+            if ( mi->module[i].kind == BOOTMOD_XEN )
+                continue;
 
-        fw_unreserved_regions(s, e, init_domheap_pages, 0);
-    }
+            if ( !mfn_valid(maddr_to_mfn(s)) ||
+                 !mfn_valid(maddr_to_mfn(e)) )
+                continue;
 
-    mi->nr_mods = 0;
+            fw_unreserved_regions(s, e, init_domheap_pages, 0);
+        }
 
-    remove_early_mappings();
+        mi->nr_mods = 0;
+    }
 }
 
 /* Relocate the FDT in Xen heap */
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 927f59c64b0d..ccb150b34a63 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -403,7 +403,7 @@ static int __init process_chosen_node(const void *fdt, int node,
         if ( rc )
             return rc;
 
-        bootinfo.static_heap = true;
+        static_heap = true;
     }
 
     printk("Checking for initrd in /chosen\n");
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
index f2e6a1145b7c..1e83d5172938 100644
--- a/xen/common/device-tree/bootinfo.c
+++ b/xen/common/device-tree/bootinfo.c
@@ -386,7 +386,7 @@ void __init populate_boot_allocator(void)
     const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
     paddr_t s, e;
 
-    if ( bootinfo.static_heap )
+    if ( xen_is_using_staticheap() )
     {
         for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
         {
diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
index d0528c582565..22b69c49171b 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -25,6 +25,9 @@
 #include <asm/setup.h>
 #include <xen/err.h>
 
+/* Flag saved when Xen is using the static heap feature (xen,static-heap) */
+bool __read_mostly static_heap;
+
 const void *device_tree_flattened;
 dt_irq_xlate_func dt_irq_xlate;
 /* Host device tree */
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 16fa05f38f38..0015a4babde7 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -132,7 +132,6 @@ struct bootinfo {
 #ifdef CONFIG_STATIC_SHM
     struct shared_meminfo shmem;
 #endif
-    bool static_heap;
 };
 
 #ifdef CONFIG_ACPI
@@ -156,6 +155,7 @@ struct bootinfo {
 }
 
 extern struct bootinfo bootinfo;
+extern bool static_heap;
 
 bool check_reserved_regions_overlap(paddr_t region_start,
                                     paddr_t region_size);
@@ -206,4 +206,13 @@ static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
 }
 #endif
 
+static inline bool xen_is_using_staticheap(void)
+{
+#ifdef CONFIG_STATIC_MEMORY
+    return static_heap;
+#else
+    return false;
+#endif
+}
+
 #endif /* XEN_BOOTFDT_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:08:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:08:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837124.1253042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBuBe-0005UO-Cd; Fri, 15 Nov 2024 11:08:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837124.1253042; Fri, 15 Nov 2024 11:08: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 1tBuBe-0005UH-8p; Fri, 15 Nov 2024 11:08:26 +0000
Received: by outflank-mailman (input) for mailman id 837124;
 Fri, 15 Nov 2024 11:08: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=62fI=SK=bugseng.com=alessandro.zucchelli@srs-se1.protection.inumbo.net>)
 id 1tBuBc-0005Tv-4a
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:08:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebb3e723-a341-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:08:19 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id CAD0C4EE073E;
 Fri, 15 Nov 2024 12:08:18 +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: ebb3e723-a341-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImViYjNlNzIzLWEzNDEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjY4ODk5Ljc3Mzg5Nywic2VuZGVyIjoiYWxlc3NhbmRyby56dWNjaGVsbGlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731668898; bh=1aY84lPzsOS3IBkwv1Cw0rGgmCE1xiEfUXLDjPoETC0=;
	h=Date:From:To:Cc:Subject:Reply-To:In-Reply-To:References:From;
	b=Hak4fhAcv3Ff5MSz6BO/ljd7J8L/8+eEc7mVRoYz6vjNjbuJUBXACg5dOsgLVafLE
	 4RAbqwhfNZKS9ikeNm/WFPqrJ/oKLMzXRlYQeMPwCocjjSQ5Gu6Rb4k0v1+M+h0ngY
	 +vomS1CrkzdrTE6MiXuDQDIithAYrpZBy0VzCDO/DQosUScJX11mGCA7AXA5I56l/m
	 sViqwAiZWEHj2cBxc15F58KZ6wsebxiqpieViPbpmBEHrCsWZ64Z+8AHYdpWJWCvfG
	 KWF+LKJY1IG0RQRI47U3rS7bMjs95IKmv/lMw8dX4cnfR+hDqBfHpY5ca41icYAQwP
	 /HytKLIwbjwzQ==
MIME-Version: 1.0
Date: Fri, 15 Nov 2024 12:08:18 +0100
From: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>, consulting@bugseng.com, Simone Ballarin
 <simone.ballarin@bugseng.com>, xen-devel@lists.xenproject.org, Doug
 Goldstein <cardoe@cardoe.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>
Subject: Re: [PATCH] xen:add deviations for MISRA C 2012 Rule R5.2
Reply-To: alessandro.zucchelli@bugseng.com
Mail-Reply-To: alessandro.zucchelli@bugseng.com
In-Reply-To: <alpine.DEB.2.22.394.2411131822260.222505@ubuntu-linux-20-04-desktop>
References: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@bugseng.com>
 <39168f90-7c80-451d-9c20-50da0de4af78@suse.com>
 <3789df92285b2c08b855369f46f3a229@bugseng.com>
 <24b117ed-dd5a-47a7-8c5d-ddddd7407ac9@suse.com>
 <alpine.DEB.2.22.394.2411131822260.222505@ubuntu-linux-20-04-desktop>
Message-ID: <0fa9be78162b596c69da6c1bf840364e@bugseng.com>
X-Sender: alessandro.zucchelli@bugseng.com
Organization: BUGSENG Srl
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2024-11-14 03:23, Stefano Stabellini wrote:
> On Wed, 13 Nov 2024, Jan Beulich wrote:
>> On 13.11.2024 11:48, Alessandro Zucchelli wrote:
>> > At this link you can see all the violations of Rule 5.2:
>> >
>> > https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/40_characters/X86_64/8143097084/PROJECT.ecd;/by_service/MC3R1.R5.2.html
>> 
>> Thank you. From a cursory look these all appear to be a result of the 
>> 40
>> chars limit we put in place (quite arbitrarily). That's not mentioned 
>> at
>> all ...
>> 
>> > By deviating the two macros CHECK_NAME_ and DEFINE_COMPAT_HANDLE all the
>> > violations are addressed.
>> >
>> > On 2024-11-13 11:31, Jan Beulich wrote:
>> >> On 13.11.2024 09:41, Alessandro Zucchelli wrote:
>> >>> This addresses violations of MISRA C:2012 Rule 5.2 which states as
>> >>> following: Identifiers declared in the same scope and name space shall
>> >>> be distinct.
>> >>>
>> >>> This deviation addresses violations of Rule 5.2 arising from
>> >>> identifiers generated through token pasting macros CHECK_NAME_ and
>> >>> DEFINE_COMPAT_HANDLE.
>> 
>> ... in the description.
>> 
>> Together with the 5.4 patch having the same lack of context, I wonder
>> whether we shouldn't simply up that limit.
> 
> Yes: if we up to the limit to 64 (another arbitrary number), can be 
> mark
> both 5.4 and 5.1 as clean? If so, I think we should do it right away.
> 
Hi,
In doc/misra/rules.rst, the limit is documented as 40, but in the 
configuration
file automation/eclair_analysis/ECLAIR/toolchain.ecl, it is set to 63.

If you intend to proceed by increasing the limit, you may ignore this 
deviation
as well as my other deviation concerning Rule 5.4. In that case, please 
update
the documentation in doc/misra/rules.rst to reflect the new limit.

> 
>> Or else, as suggested there,
>> to instead exclude such derived identifiers. After all the derived 
>> ones
>> will be distinct as long as what they're derived from is distinct.
>> 
>> Finally - please don't top-post.
>> 
>> Jan
>> 
>> >> For each of the two, can you provide an example of where collisions
>> >> result? At least for the latter I can't even see how that would
>> >> work without the compiler complaining (i.e. the build breaking).

-- 
Alessandro Zucchelli, B.Sc.

Software Engineer, BUGSENG (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:12:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:12:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837131.1253051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBuFn-0007Ah-S6; Fri, 15 Nov 2024 11:12:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837131.1253051; Fri, 15 Nov 2024 11:12: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 1tBuFn-0007Aa-PI; Fri, 15 Nov 2024 11:12:43 +0000
Received: by outflank-mailman (input) for mailman id 837131;
 Fri, 15 Nov 2024 11:12: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBuFm-0007AU-RL
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:12:42 +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 86ca8edd-a342-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:12:39 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4316f3d3c21so13662715e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03: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
 ffacd0b85a97d-3821adadf8fsm4063720f8f.39.2024.11.15.03.12.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 03: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: 86ca8edd-a342-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg2Y2E4ZWRkLWEzNDItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY5MTU5LjgyMDc0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731669159; x=1732273959; 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=BbVP8REjDP3YFBb8kBKqp5foVT680lWYOhwfdDAe80Y=;
        b=N/fpfwf7lEPTVKcUQoLoxPAb60M5QX0yj8gyi33tRndraVXB3JRnf9Wwd+ckYZ7cBk
         Pt/lUltN4lZVeu8jJAQI2OEacLG/x/tkZIEbo1FER7S21Ljm2LqmXR5IibD1UWBW63Jb
         cYCUCGp3CcIwjkOn+NsjMAWusCUVjhQn+sLMMJq6FIBVl69mEiHWfJXzvKQdV69//Ddt
         cFd/m2EoGqel30DmnKBqjIMJG7tsbLkaPva6sk9XuQ3JYFicguJ4GduA0E6bbFJsYCVK
         sxoWOyazjav0IQr4Ht7Dl9N87h5dTbZFz2gHhpcpm446MoDMuovDcLUd+w6hT7ANS0YS
         IDvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731669159; x=1732273959;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BbVP8REjDP3YFBb8kBKqp5foVT680lWYOhwfdDAe80Y=;
        b=bJuQ62q6h7JwWmjF8a+a08vl3aaQoSfdgFbP6McjD2DmMmQWlogFRsuS822EUf+FtQ
         UFo9VRxNvUII2+ZB16eWkvMS00U9hG+vp+e47SQmPTnf1e5Xo8IcGb5Rl3CRLRTHUPHZ
         zdrWZE6GqumC8hNVVyceiN3riS7gMxQhhEqjpAVB11UZ4uZTu5gksKpK27GY4XoTysD9
         WqMJa0Gfy36dkYyPcGU74/iTDxqydTyWUXojTTqfs/3NPIt2G/a+sP010ko3yJg/PKLz
         nH9zJHwsHLUn6OSh++5NEg+FukW1lTd0/oqLNI7lM+avSjLkyBeJDnaaHzj1YTJfGIW4
         ct0A==
X-Forwarded-Encrypted: i=1; AJvYcCWfG4FimtGW5YcWMsiSVU5jovaDRiTn2kMg5ISlSD8Fx8NveN4FFfBbKWKfJe9juloJR+2Y4MhUrXQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxx3d+JkTSKA3qw9wLGj/5EczCKtUyXyH+H89tmNbTynia/t81u
	E+axLyMt4nrOh51NSV/C2CFcR+uTyW+3viICELxLw8t0seOgtvI/xs/k5z0MTg==
X-Google-Smtp-Source: AGHT+IGZ/UvUArAtJWT1nwuyuQJi8Kb5qTYQYE87bTDQY3yX/hqWrt1eMGjlW4owcKtBb5su++NQFA==
X-Received: by 2002:a05:6000:460d:b0:381:bf27:e845 with SMTP id ffacd0b85a97d-382258f8155mr1834373f8f.1.1731669159215;
        Fri, 15 Nov 2024 03:12:39 -0800 (PST)
Message-ID: <3a57e277-5fd2-4400-86b9-29479b3dfda1@suse.com>
Date: Fri, 15 Nov 2024 12:12:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@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: <20241115105036.218418-2-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 11:50, Luca Fancellu wrote:
> --- a/xen/common/vmap.c
> +++ b/xen/common/vmap.c
> @@ -426,3 +426,10 @@ void *_xvrealloc(void *va, size_t size, unsigned int align)
>  
>      return ptr;
>  }
> +
> +void iounmap(void __iomem *va)
> +{
> +    unsigned long addr = (unsigned long)(void __force *)va;
> +
> +    vunmap((void *)(addr & PAGE_MASK));
> +}

Why is this being moved here, and converted from inline to out-of-line?
What the description says is insufficient imo, as even if you mean to
only support vmap_contig() and ioremap() on MPU systems, you'll still
need both vunmap() and iounmap().

Plus, if it really needs converting, I don't think it should live at the
very end of the file, past _xvmalloc() and friends. Better suitable places
may then be next to vunmap() itself, or between vfree() and xvfree().

> --- a/xen/include/xen/vmap.h
> +++ b/xen/include/xen/vmap.h
> @@ -5,7 +5,7 @@
>   * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
>   * latter is used when loading livepatches and the former for everything else.
>   */
> -#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
> +#if !defined(__XEN_VMAP_H__)
>  #define __XEN_VMAP_H__

With this adjustment, where are the functions defined that you "unhide"
the declarations of, in the MPU case? As you say in the description,
vmap.c won't be built in that case.

Also both here and ...

> --- a/xen/include/xen/xvmalloc.h
> +++ b/xen/include/xen/xvmalloc.h
> @@ -40,20 +40,46 @@
>      ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
>                               __alignof__(typeof(*(ptr)))))
>  
> +#if defined(CONFIG_HAS_VMAP)

... here: Please use the shorter #ifdef when possible.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:18:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:18:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837140.1253061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBuKy-0007mg-FP; Fri, 15 Nov 2024 11:18:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837140.1253061; Fri, 15 Nov 2024 11: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 1tBuKy-0007mZ-Bl; Fri, 15 Nov 2024 11:18:04 +0000
Received: by outflank-mailman (input) for mailman id 837140;
 Fri, 15 Nov 2024 11:18: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBuKx-0007mT-1L
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:18:03 +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 455df965-a343-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:17:59 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9acafdb745so329442066b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:17:59 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046891sm167614266b.171.2024.11.15.03.17.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 03:17: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: 455df965-a343-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ1NWRmOTY1LWEzNDMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjY5NDc5LjUyMjQyMywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731669479; x=1732274279; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ix2dVE+deCG1s51693Lizi67KExX5t3NNvtuT07Vf+Q=;
        b=QbRZyN24tIXXEELgp19L+eS/CG0HVK/J+ckQpaXPYwXIu1mtV4vGl0ubF98lYy3Sh9
         qffvISKrBbKPkqxr1Ho/3kAw+0A8K8sb9E5jXZYVmGmRqEDcaelmUbXqU8H7u2cnQeiX
         F/1vs+RvrvNL5cMJVTZkL5R1B177nLwJg+CcM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731669479; x=1732274279;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Ix2dVE+deCG1s51693Lizi67KExX5t3NNvtuT07Vf+Q=;
        b=bagfVQH+/r6ojsydl88gFPuoouYgDaiLEfKcaJawgEcdLBCsCmdAVOyPpneLGiC30Q
         BfBn8HT/olpNEzPf3xpgX5Q2oP6jcCIViOX4W38D5wrQ4rks3ubRCRWQSZ6rJreMmpXd
         jlwZtUPmrNkqcNw2OsM6kci+LKbDTE1MCXFNVzRVzcSzaSb4QS+ZVs7vxX/MA5X1a5hP
         fzLJzr7MPbzG2xT/EDLgJHiqPmfBHdFZBHp0Q61XwKxeoj47XEBLx8/NqcnE2MWpsYnx
         VJ5BeoI1W4m2DV+ZiWuksRlMfjE2jA87EVlDRIlldyOtjKu2UNLcXU7TQpkq/2ZRycW5
         h9yQ==
X-Forwarded-Encrypted: i=1; AJvYcCW3++hAHBi8A073HyboQ2XEIUdCn0KTae5Lq0IzYIKW+LReN0khOjL4CZuZ8Emv7YT0dEjcAoy2s1Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvzVo5PKuUGH4XPYq2LvwasMOOfkdOynlmkclg6VsNLiiNMWNF
	YuaZgGz+Y1HI8I1D5ENrawFeyBisZJVSduywBgY9bMil1Ysyiz0KM6RsRR9O4rlaYpl+QFzggdL
	r
X-Google-Smtp-Source: AGHT+IFJEWeupOYNCr56nFtR7XcKNOduCPMib70C7Uani9i42t4GmsINLodabkcU+YsOBkEFhtqu9w==
X-Received: by 2002:a17:907:94d0:b0:a9a:b818:521d with SMTP id a640c23a62f3a-aa2076ee119mr600801966b.18.1731669478891;
        Fri, 15 Nov 2024 03:17:58 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 15 Nov 2024 11:17:56 +0000
Message-Id: <D5MPLJ21KYF6.2NFO9RV8QZ44M@cloud.com>
Cc: "Frediano Ziglio" <frediano.ziglio@cloud.com>, "Jan Beulich"
 <JBeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 3/4] x86/trampoline: Document how the trampoline is
 laid out
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Xen-devel"
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241114090810.1961175-1-andrew.cooper3@citrix.com>
 <20241114090810.1961175-4-andrew.cooper3@citrix.com>
 <D5LUCQ9MH2C2.1L6CFH028NYPS@cloud.com>
 <a2a65e08-84d8-4181-9a98-f4811eac6767@citrix.com>
 <5c5a0db4-0dda-495c-9241-9f45b0a10632@citrix.com>
In-Reply-To: <5c5a0db4-0dda-495c-9241-9f45b0a10632@citrix.com>

On Thu Nov 14, 2024 at 6:34 PM GMT, Andrew Cooper wrote:
> On 14/11/2024 11:17 am, Andrew Cooper wrote:
> > On 14/11/2024 10:48 am, Alejandro Vallejo wrote:
> >> On Thu Nov 14, 2024 at 9:08 AM GMT, Andrew Cooper wrote:
> >>> diff --git a/xen/arch/x86/include/asm/trampoline.h b/xen/arch/x86/inc=
lude/asm/trampoline.h
> >>> index 8c1e0b48c2c9..559111d2ccfc 100644
> >>> --- a/xen/arch/x86/include/asm/trampoline.h
> >>> +++ b/xen/arch/x86/include/asm/trampoline.h
> >>> @@ -37,12 +37,65 @@
> >>>   * manually as part of placement.
> >>>   */
> >>> =20
> >>> +/*
> >>> + * Layout of the trampoline.  Logical areas, in ascending order:
> >>> + *
> >>> + * 1) AP boot:
> >>> + *
> >>> + *    The INIT-SIPI-SIPI entrypoint.  This logic is stack-less so th=
e identity
> >>> + *    mapping (which must be executable) can at least be Read Only.
> >>> + *
> >>> + * 2) S3 resume:
> >>> + *
> >>> + *    The S3 wakeup logic may need to interact with the BIOS, so nee=
ds a
> >>> + *    stack.  The stack pointer is set to trampoline_phys + 4k and c=
lobbers an
> >>> + *    arbitrary part of the the boot trampoline.  The stack is only =
used with
> >>> + *    paging disabled.
> >>> + *
> >>> + * 3) Boot trampoline:
> >>> + *
> >>> + *    The boot trampoline collects data from the BIOS (E820/EDD/EDID=
/etc), so
> >>> + *    needs a stack.  The stack pointer is set to trampoline_phys + =
64k, is 4k
> >>> + *    in size, and only used with paging disabled.
> >>> + *
> >>> + * 4) Heap space:
> >>> + *
> >>> + *    The first 1k of heap space is statically allocated scratch spa=
ce for
> >>> + *    VESA information.
> >>> + *
> >>> + *    The remainder of the heap is used by reloc(), logic which is o=
therwise
> >>> + *    outside of the trampoline, to collect the bootloader metadata =
(cmdline,
> >> Wh> + *    module list, etc).  It does so with a bump allocator starti=
ng from the
> >>> + *    end of the heap and allocating backwards.
> > Was this a typo replying to the email?
> >
> >
> >>> + *
> >>> + * 5) Boot stack:
> >>> + *
> >>> + *    The boot stack is 4k in size at the end of the trampoline, tak=
ing the
> >>> + *    total trampoline size to 64k.
> >>> + *
> >>> + * Therefore, when placed, it looks somewhat like this:
> >>> + *
> >>> + *    +--- trampoline_phys
> >>> + *    v
> >>> + *    |<-------------------------------64K--------------------------=
----->|
> >>> + *    |<-----4K----->|                                         |<---=
4K--->|
> >>> + *    +-------+------+-+---------------------------------------+----=
------+
> >>> + *    | AP+S3 |  Boot  | Heap                                  |    =
Stack |
> >>> + *    +-------+------+-+---------------------------------------+----=
------+
> >>> + *    ^       ^   <~~^ ^                                    <~~^    =
   <~~^
> >>> + *    |       |      | +- trampoline_end[]                     |    =
      |
> >>> + *    |       |      +--- wakeup_stack      reloc() allocator -+    =
      |
> >>> + *    |       +---------- trampoline_perm_end      Boot Stack ------=
------+
> >>> + *    +------------------ trampoline_start[]
> >>> + */
> >> Neat. Nothing like a pretty picture to properly explain things.
> >>
> >>> +
> >>>  #include <xen/compiler.h>
> >>>  #include <xen/types.h>
> >>> =20
> >>>  /*
> >>> - * Start and end of the trampoline section, as linked into Xen.  It =
is within
> >>> - * the .init section and reclaimed after boot.
> >>> + * Start and end of the trampoline section, as linked into Xen.  Thi=
s covers
> >>> + * the AP, S3 and Boot regions, but not the heap or stack.  It is wi=
thin the
> >>> + * .init section and reclaimed after boot.
> >> How can it be reclaimed after boot if it's used for S3 wakeups? I assu=
me you
> >> meant that the heap and stack are reclaimed after boot, but from that =
wording
> >> it sounds like the other way around.
> > This is the one bit that is slightly problematic to represent.
> >
> > trampoline_{start,end}[] describe the AP/S3/Boot text/data *in the Xen
> > image*, which is in the .init section.
> >
> > trampoline_phys is where trampoline_start[] ends up when placed.
> >
> > Maybe I should have "Note: trampoline_start[] and trampoline_end[]
> > represent the shown boundaries as linked in Xen" at the bottom of the
> > diagram?
>
> I'm going to go ahead and do this, and commit the series.
>
> ~Andrew

That note looks clearer, indeed.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:42:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:42:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837152.1253071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBuip-0003jX-Cv; Fri, 15 Nov 2024 11:42:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837152.1253071; Fri, 15 Nov 2024 11:42: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 1tBuip-0003jQ-AK; Fri, 15 Nov 2024 11:42:43 +0000
Received: by outflank-mailman (input) for mailman id 837152;
 Fri, 15 Nov 2024 11:42: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=rNXE=SK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tBuio-0003jK-6M
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:42:42 +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 b6af129c-a346-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:42:38 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-aa3a79d4d59so269045866b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:42:38 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0016a7sm171182266b.116.2024.11.15.03.42.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:42: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: b6af129c-a346-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI2YWYxMjljLWEzNDYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcwOTU4LjM0ODg3OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731670957; x=1732275757; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=50t4+z6szZlSAQfAvQIfZEy3Sfim2KUIHMSqhuVG9FI=;
        b=NuR5VVEW+2Tc5EArgag39HNN5+d84T7UMrfm/QiEJ7sGOhBYHMFdyZryKnAALvzEcn
         +dexTrk50meZi+A5wCnrDlkhUtB0HOCmxqVUoWwwJLtyY8Hvz/zPitgSi7WLWTUlQKKo
         6jCCfTeRV4CO+LJIaQci2mPwzsk8Cm5BE1GyM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731670957; x=1732275757;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=50t4+z6szZlSAQfAvQIfZEy3Sfim2KUIHMSqhuVG9FI=;
        b=dDNXjwwyE+nhbQhMzFksYqMHDMeL61VAfhe5M/lTMv9NPLGZJuaXoSgaUtvjLXF8QY
         UlSgJ94y+fV7jxst+f5xMqUSxnXTEbo8p8Ds46tRIxAo2+lNVyAmRme0+w9mCxb3LNCD
         Uiq9TNhiavBWP9ilO6JNWPXwjpO5OckihY+A2mYjJvo72hsTqwjjaAE6wMwO+sZnHVwt
         +NLFFCZzUfowVsj3sT0Dy9Sh71LAJqcCTIbMLip/yoOIC5xb3DMYTDqe2rXMOnlaj9VR
         SYa5hgJDOkr8aqK4SaAYc33iDtQt+LTaOt4GbaUyy42elb210tjapNna0VUUuNEsyzQZ
         hVAg==
X-Gm-Message-State: AOJu0Yw2l/9LlP7pPyYZGTGZOES6sw3MW3pDKQ9CCWKyrQb8ksvYmQLz
	9YJBuFBxLqVydLeDibc2pcEjTDhIqzUtwkvWBzYfRZ1lpqh25sF9SPpO1CPucyA=
X-Google-Smtp-Source: AGHT+IEo4VUswjCyj2aUniX9ylSkQiWTreQMEOm50N8iAP+5oftnXV8nwV0c141YEuAugxBa8mL2CA==
X-Received: by 2002:a17:907:6e94:b0:a9a:c57f:9634 with SMTP id a640c23a62f3a-aa483525e7dmr212622166b.42.1731670957416;
        Fri, 15 Nov 2024 03:42:37 -0800 (PST)
Date: Fri, 15 Nov 2024 12:42:35 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzczqznFbixk3Vfu@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook>
 <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>

On Fri, Nov 15, 2024 at 03:04:22AM +0000, Chen, Jiqian wrote:
> On 2024/11/15 01:36, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 14, 2024 at 04:52:18PM +0100, Roger Pau MonnÃ© wrote:
> >> On Thu, Nov 14, 2024 at 06:11:46AM +0000, Chen, Jiqian wrote:
> >>> On 2024/11/13 18:30, Roger Pau MonnÃ© wrote:
> >>>> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >>>>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>>>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>>>>> and then cause probing failure.
> >>>>>>>
> >>>>>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>>>>> corresponding handler into vpci.
> >>>>>>>
> >>>>>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>>>>
> >>>>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>>>>> setting the new size.
> >>>>>>
> >>>>>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>>>>> time ago I've made a patch to add support for it, but due to lack of
> >>>>>> hardware on my side to test it I've never submitted it.
> >>>>>>
> >>>>>> My approach would be to detect the presence of the
> >>>>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>>>>> capability is present force the sizing of BARs each time they are
> >>>>>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>>>>> the capability itself, as resizing can only happen when memory
> >>>>>> decoding is not enabled for the device.  It's enough to fetch the size
> >>>>>> of the BARs ahead of each enabling of memory decoding.
> >>>>>>
> >>>>>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>>>>> is already an expensive operation, the extra sizing is unlikely to
> >>>>>> make much of a difference performance wise.
> >>>>>>
> >>>>>> I've found the following on my git tree and rebased on top of staging:
> >>>>> OK.
> >>>>> Do you need me to validate your patch in my environment?
> >>>>
> >>>> Yes please, I have no way to test it.  Let's see what others think
> >>>> about the different approaches.
> >>> There are some errors with your method.
> >>> I attached the dmesg and xl dmesg logs.
> >>> From the dmesg logs, it seems that 0000:03:00.0 has addresse overlap with 0000:03:00.1
> >>
> >> Do you have the output of lspci with the BAR sizes/positions before
> >> and after the resizing?
> >>
> >>>
> >>> I think there is a place that needs to be modified regarding your method,
> >>> although this modification does not help with the above-mentioned errors,
> >>> it is that whether to support resizing is specific to which bar, rather than just determining whether there is a Rebar capability.
> >>
> >> Do we really need such fine-grained information?  It should be
> >> harmless (even if not strictly necessary) to size all BARs on the
> >> device before enabling memory decoding, even if some of them do not
> >> support resizing.
> >>
> >> I might have to provide a patch with additional messages to see what's
> >> going on.
> > 
> > One nit that I've noticed with the patch I gave you previously is that
> > the check for a size change in modify_bars() should be done ahead of
> > pci_check_bar(), otherwise the check is possibly using an outdated
> > size.
> > 
> > I've also added a debug message to notify when a BAR register is
> > written and report the new address.  This is done unconditionally, but
> > if you think it's too chatty you can limit to only printing for the
> > device that has the ReBAR capability.
> Errors are the same.
> Attached the dmesg, xl dmesg, patch and lspci output.
> I will also continue to debug your method on my side to try to get some findings.

Hello,

I've been looking at the output, and it all seems fine, except the
03:00.0 device that becomes broken at some point, note the lspci
output lists [virtual] next to the resource sizes.  This means reading
for the registers returned 0, so the position and sizes are provided
from the internal OS information.

I'm assuming the patch you sent to the list doesn't lead to such
errors, in which case I can only guess that fetching the size of the
BARs in modify_bars() causes issues with the device.

To confirm this, can you try the following patch on top of your
original change?  This adds an extra pci_size_mem_bar() when the BARs
are resized.  From my reading of the PCI specification sizing the BARs
after having changed the size through the ReBAR capability is allowed.

Thanks, Roger.

diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 84dbd84b0745..e371ba0ef92a 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -40,6 +40,15 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
                        PCI_REBAR_CTRL_BAR_UNIT;
 
     pci_conf_write32(pdev->sbdf, reg, val);
+
+{
+    uint64_t addr, size;
+
+    pci_size_mem_bar(pdev->sbdf, PCI_BASE_ADDRESS_0 + index * 4,
+                     &addr, &size, 0);
+
+    ASSERT(size == bars[index].size);
+}
 }
 
 static int cf_check init_rebar(struct pci_dev *pdev)


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837166.1253096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusp-0005l5-Ny; Fri, 15 Nov 2024 11:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837166.1253096; Fri, 15 Nov 2024 11:53: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 1tBusp-0005kA-KE; Fri, 15 Nov 2024 11:53:03 +0000
Received: by outflank-mailman (input) for mailman id 837166;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusn-0005UF-TF
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:01 +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 2880b9e0-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:52:58 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cf7b79c6a6so2446938a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:52:58 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.52.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:52: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: 2880b9e0-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI4ODBiOWUwLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTc4LjcyOTAxNSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671578; x=1732276378; 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=Q0JqyiXg7hj8nUKWP18rHoNIqWo/9zcWjDpiBX++LLI=;
        b=Rptfj5b5uCoQPL+KHLOgANK13PgUgiHPjW6Cn9oajHN54L/A07w/ddVIjFknLm9Y+N
         5FthqHZvPNBVAiIl4XTHehBDo/CIXLh6AmqbgyhrYdlWDaydHYrsOug/7/yStd9X1W0A
         Zl4ddzqVCOUPGBy/TsJd85PzmSYzPQqKsgzDg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671578; x=1732276378;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Q0JqyiXg7hj8nUKWP18rHoNIqWo/9zcWjDpiBX++LLI=;
        b=v0wxFGbhXN2KnBfJOQ/VSazsX5wbW0rC+3xqSEbmPS1NepPFRuDuue0K+MS8nppq6U
         1j2ca1UpPtpqogzZQ82qFsm5kFESZ4IgPMQHyhQpbIL5Imalb4XLKFNH6H6YO4SN5z1j
         ZVshwLcMgDr00yut11qMDf10sEthN0DBg1NDWv/Aeh7uT3UhvR++sulTNvzwcHbXLTM6
         HzxMXXDMwwl8AgWYkPDEgYKCb1wprLmhmUmEhNiPSBg4UkRXeuvAbr12VG1+8LbMi6Nt
         nG7irMVZVdZjFFmJHdQRENYTvku/Q8oK7Ltl+cxJpSHdKb7vKBecq8zrdKjd6uk5UuwC
         A1kQ==
X-Gm-Message-State: AOJu0YzuWOBTSMdVQtCkEg3vYesdyE0P2yyK2mXtnFvezB83WKHtkSF9
	9JY/2PaYjYEtY6ZUmGBusNdniZqFsi+LYuJz0r4rY+oSX+rvlFGH2SDUsD5oD+A/FjZlsYoBs4H
	v
X-Google-Smtp-Source: AGHT+IFyRUpTHxWcmfro+JQ+0TiCChn9dHamvXTEZ3tfV39RbfTRXmP5QGTDDDnyywePlDg1snScIQ==
X-Received: by 2002:a17:907:e92:b0:a99:ee26:f416 with SMTP id a640c23a62f3a-aa2076eb6b3mr658636666b.14.1731671577701;
        Fri, 15 Nov 2024 03:52:57 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 03/25] tools/xenbindgen: Introduce a Xen hypercall IDL generator
Date: Fri, 15 Nov 2024 11:51:32 +0000
Message-ID: <20241115115200.2824-4-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To be used for parsing TOML-based hypercall ABI specifications and
generating language-specific items (structs, enums, etc.).

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/Makefile               | 29 +++++++++++++++++++++++++++++
 tools/rust/xenbindgen/.gitignore  |  1 +
 tools/rust/xenbindgen/Cargo.toml  | 15 +++++++++++++++
 tools/rust/xenbindgen/src/main.rs | 21 +++++++++++++++++++++
 4 files changed, 66 insertions(+)
 create mode 100644 tools/rust/Makefile
 create mode 100644 tools/rust/xenbindgen/.gitignore
 create mode 100644 tools/rust/xenbindgen/Cargo.toml
 create mode 100644 tools/rust/xenbindgen/src/main.rs

diff --git a/tools/rust/Makefile b/tools/rust/Makefile
new file mode 100644
index 000000000000..f5db0a9c5e81
--- /dev/null
+++ b/tools/rust/Makefile
@@ -0,0 +1,29 @@
+XEN_ROOT=$(CURDIR)/../..
+
+# Path to the Xen hypercall IDL parser
+XENBINDGEN=$(CURDIR)/xenbindgen
+
+# Clippy settings for all Rust projects
+CLIPPY_ARGS=-D warnings \
+            -D missing_docs \
+            -D clippy::missing_docs_in_private_items \
+            -D clippy::all \
+            -D clippy::pedantic
+
+# Not integrated in Xen installations to avoid depending on the Rust toolchain
+.PHONY: all install uninstall clean
+all install uninstall clean:
+
+# Verify Rust crates pass lint checks. This is enforced in CI
+.PHONY: verify
+verify:
+	set -eu; \
+	for i in "${XENBINDGEN}"; do \
+	    echo "Verifying $$i"; \
+	    cd "$$i"; \
+	    cargo fmt -- --check; \
+	    cargo clippy -- $(CLIPPY_ARGS); \
+	    cargo deny check; \
+	    cd -; \
+	done
+
diff --git a/tools/rust/xenbindgen/.gitignore b/tools/rust/xenbindgen/.gitignore
new file mode 100644
index 000000000000..b83d22266ac8
--- /dev/null
+++ b/tools/rust/xenbindgen/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/tools/rust/xenbindgen/Cargo.toml b/tools/rust/xenbindgen/Cargo.toml
new file mode 100644
index 000000000000..4cb3af9ce0de
--- /dev/null
+++ b/tools/rust/xenbindgen/Cargo.toml
@@ -0,0 +1,15 @@
+[package]
+name = "xenbindgen"
+version = "0.2.0"
+edition = "2021"
+license = "MIT"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+clap = { version = "4.5.7", features = ["std", "derive"] }
+convert_case = "0.6.0"
+env_logger = "0.11.3"
+log = "0.4.22"
+serde = { version = "1.0.203", default-features = false, features = ["derive"] }
+toml = { version = "0.8.14", default-features = false, features = ["parse"] }
diff --git a/tools/rust/xenbindgen/src/main.rs b/tools/rust/xenbindgen/src/main.rs
new file mode 100644
index 000000000000..08fcf8fe4da6
--- /dev/null
+++ b/tools/rust/xenbindgen/src/main.rs
@@ -0,0 +1,21 @@
+//! CLI tool to generate structs in different languages from specially
+//! crafted TOML files. The format of these files follows the following
+//! rules.
+
+use clap::Parser;
+use env_logger::Env;
+use log::info;
+
+/// A CLI tool to generate struct definitions in several languages.
+#[derive(Parser, Debug)]
+#[command(version, about)]
+struct Cli;
+
+fn main() {
+    env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
+
+    let cli = Cli::parse();
+    info!("args: {:?}", cli);
+
+    todo!("read spec files and generate output files");
+}
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837168.1253108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusq-0005wX-Cv; Fri, 15 Nov 2024 11:53:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837168.1253108; Fri, 15 Nov 2024 11:53: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 1tBusq-0005uP-6X; Fri, 15 Nov 2024 11:53:04 +0000
Received: by outflank-mailman (input) for mailman id 837168;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBuso-0005UF-NK
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:02 +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 299e10b3-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:00 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-aa1e51ce601so311459966b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:00 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.52.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:52: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: 299e10b3-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI5OWUxMGIzLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTgwLjQ0ODc2NCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671579; x=1732276379; 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=rG3hGpHC8NrVDhtSg0TjY8wD98UlA4f/+d1taDxiYTY=;
        b=VXSw+Z7XZmGfwzUdA4cQNyNFkkEN7RDyGpBaSU86ii/KqkFrZdQ1JHsgXHJvV6Z/Fn
         R89tlfM9O0Umdgd8aywic/ZsBlDgd/STNAm4BAhT8Ow0ClBWiC1x74R8M8M8ejXKbb5R
         jjUZ3/sNwKgd5yObMuNyKFh11drDZ0L8hGCGA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671579; x=1732276379;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rG3hGpHC8NrVDhtSg0TjY8wD98UlA4f/+d1taDxiYTY=;
        b=UBvWUXtoJmbfDVUdCrWUKPJucALq2iT2Tyhae+N/o5wuM9lx2whS95i5Dag03x91m2
         S7MOqzqNTaI54Ayk+skKHAfZjG2rwfLfsbdkFKYOqJTk7fD2ownbTqWSer192h7N6WUB
         TeHV8F08RHEs3PtPVlOU/B2G/PnWzjHfAULIVNJJr3ETpf+gA8DdKaCPEWTgM85dd9iN
         57zik/5wHzWkc/YG86WXjh+UALq5sU3XecMUZESkTvfNz4wJUj3ELLvwkC0UytEjCW8O
         0dnXU/kO7EcEXg4zLxb2VGzoTzN97zeJ5tg30d15eLnd8XTU3lyE3Bl1veUuEqlOJTlr
         i93g==
X-Gm-Message-State: AOJu0YypUk3rW751LqixkkV8hQ5vuWQIOL1H5yb9gvR/MmzVm2nuVSp7
	rj80csInCXoHAUqTy5UGvxNrq1vreZZlVZo5sJimbBHGvDtpoB3EXqxxXw6/W3QRILYFrPKA3KG
	C
X-Google-Smtp-Source: AGHT+IHaqAdkkVTKGpieGu4o1OUKEPqULq1gqWaTMHQnvFF1aQcJHkv9gR/qQtWD0pj2ilQM5lxifg==
X-Received: by 2002:a17:906:fd89:b0:a9a:c61b:1329 with SMTP id a640c23a62f3a-aa4833f25bamr192432166b.3.1731671579539;
        Fri, 15 Nov 2024 03:52:59 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 05/25] tools/xenbindgen: Add basic plumbing for the C backend
Date: Fri, 15 Nov 2024 11:51:34 +0000
Message-ID: <20241115115200.2824-6-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Takes an OutFileDef to generate a string with the file content. That
will be all the structs, enums, bitmaps and includes we parse.

For the time being, add the guards only, as the others are implemented
by follow-up patches.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/src/c_lang.rs | 73 +++++++++++++++++++++++++++++
 tools/rust/xenbindgen/src/main.rs   | 54 +++++++++++++++++++--
 tools/rust/xenbindgen/src/spec.rs   |  2 +-
 3 files changed, 125 insertions(+), 4 deletions(-)
 create mode 100644 tools/rust/xenbindgen/src/c_lang.rs

diff --git a/tools/rust/xenbindgen/src/c_lang.rs b/tools/rust/xenbindgen/src/c_lang.rs
new file mode 100644
index 000000000000..f05e36bb362f
--- /dev/null
+++ b/tools/rust/xenbindgen/src/c_lang.rs
@@ -0,0 +1,73 @@
+//! C backend
+//!
+//! A backend for the C programming language. Enums and bitmaps appear as their
+//! backing primitive type. This is in order to mandate size and alignment at
+//! the ABI boundary.
+//!
+//! Otherwise, enums and struct are declared with their native C counterparts,
+//! whereas bitmaps are declared as `#define` items.
+//!
+//! There's an expectation that the supporting library will have the
+//! `(u)int64_aligned_t` types and `XEN_GUEST_HANDLE_64()`, These are important
+//! in order to allow 32bit domains to interact with 64bit hypervisors.
+//!
+//! As far as definitions go, `enums` are stored in native `enums`, but bitmaps
+//! are given in `#define` instead, with an empty struct on top to provide grep
+//! fodder and a tag to follow using an LSP, global, cscope, etc.
+
+use std::fmt::Write;
+
+use crate::spec::OutFileDef;
+
+use convert_case::{Case, Casing};
+
+/// An abstract indentation level. 0 is no indentation, 1 is [`INDENT_WIDTH`]
+/// and so on.
+#[derive(Copy, Clone)]
+struct Indentation(usize);
+
+/// Default width of each level of indentation
+const INDENT_WIDTH: usize = 4;
+
+/// Add a comment to a struct or a field.
+fn comment(out: &mut String, comment: &str, ind: Indentation) {
+    let spaces = " ".repeat(INDENT_WIDTH * ind.0);
+
+    if comment.contains('\n') {
+        writeln!(out, "{spaces}/*").unwrap();
+        for line in comment.split('\n') {
+            write!(out, "{spaces} *").unwrap();
+            if !line.is_empty() {
+                write!(out, " {line}").unwrap();
+            }
+            writeln!(out).unwrap();
+        }
+        writeln!(out, "{spaces} */").unwrap();
+    } else {
+        writeln!(out, "{spaces}/* {comment} */").unwrap();
+    }
+}
+
+/// Generates a single `.h` file.
+///
+/// `filedef` is a language-agnostic high level description of what the output
+/// must contain. The function returns the contents of the new
+///
+/// # Aborts
+/// Aborts the process with `rc=1` on known illegal specifications.
+pub fn parse(filedef: &OutFileDef) -> String {
+    let mut out = String::new();
+    let name = filedef
+        .name
+        .from_case(Case::Kebab)
+        .to_case(Case::UpperSnake);
+    let hdr = format!("{}\n\nAUTOGENERATED. DO NOT MODIFY", filedef.name);
+
+    comment(&mut out, &hdr, Indentation(0));
+    writeln!(out, "#ifndef __XEN_AUTOGEN_{name}_H").unwrap();
+    writeln!(out, "#define __XEN_AUTOGEN_{name}_H\n").unwrap();
+
+    writeln!(out, "#endif /* __XEN_AUTOGEN_{name}_H */\n").unwrap();
+
+    out
+}
diff --git a/tools/rust/xenbindgen/src/main.rs b/tools/rust/xenbindgen/src/main.rs
index 497cf39d3bbd..00abf5ed7f33 100644
--- a/tools/rust/xenbindgen/src/main.rs
+++ b/tools/rust/xenbindgen/src/main.rs
@@ -4,11 +4,15 @@
 
 mod spec;
 
-use std::path::PathBuf;
+mod c_lang;
+
+use std::{io::Write, path::PathBuf};
 
 use clap::Parser;
+use convert_case::{Case, Casing};
 use env_logger::Env;
 use log::{error, info};
+use spec::OutFileDef;
 
 /// A CLI tool to generate struct definitions in several languages.
 #[derive(Parser, Debug)]
@@ -17,6 +21,20 @@ struct Cli {
     /// Path to the input directory containing the hypercall specification
     #[arg(short, long)]
     indir: PathBuf,
+    /// Path to the output directory for the generated bindings.
+    #[arg(short, long)]
+    outdir: PathBuf,
+    /// Target language for the contents of `outdir`.
+    #[arg(short, long, value_enum)]
+    lang: Lang,
+}
+
+/// Supported target languages
+#[derive(clap::ValueEnum, Clone, Debug)]
+#[clap(rename_all = "kebab_case")]
+enum Lang {
+    #[doc(hidden)]
+    C,
 }
 
 fn main() {
@@ -25,7 +43,7 @@ fn main() {
     let cli = Cli::parse();
     info!("args: {:?}", cli);
 
-    let _specification = match spec::Spec::new(&cli.indir) {
+    let specification = match spec::Spec::new(&cli.indir) {
         Ok(x) => x,
         Err(spec::Error::Toml(x)) => {
             error!("TOML parsing error:");
@@ -39,5 +57,35 @@ fn main() {
         }
     };
 
-    todo!("generate output files");
+    let (extension, parser): (&str, fn(&OutFileDef) -> String) = match cli.lang {
+        Lang::C => (".h", c_lang::parse),
+    };
+
+    if let Err(x) = std::fs::create_dir_all(&cli.outdir) {
+        error!("Can't create outdir {:?}: {x}", cli.outdir);
+        std::process::exit(1);
+    }
+
+    for outfile in &specification.0 {
+        let mut path = cli.outdir.clone();
+        let name = outfile.name.from_case(Case::Kebab).to_case(Case::Snake);
+        path.push(format!("{name}{extension}"));
+
+        info!("Generating {path:?}");
+
+        // Parse the input file before creating the output
+        let output = parser(outfile);
+
+        let Ok(mut file) = std::fs::OpenOptions::new()
+            .write(true)
+            .create(true)
+            .truncate(true)
+            .open(path)
+        else {
+            error!("Can't open {}", outfile.name);
+            std::process::exit(1);
+        };
+
+        file.write_all(output.as_bytes()).unwrap();
+    }
 }
diff --git a/tools/rust/xenbindgen/src/spec.rs b/tools/rust/xenbindgen/src/spec.rs
index e69f7c78dc7a..08c4dc3a7eba 100644
--- a/tools/rust/xenbindgen/src/spec.rs
+++ b/tools/rust/xenbindgen/src/spec.rs
@@ -40,7 +40,7 @@ impl OutFileDef {
     pub fn new(name: String, dir: &Path) -> Result<Self, Error> {
         info!("Reading {dir:?} to generate an output file");
 
-        let mut ret = Self { name };
+        let ret = Self { name };
 
         for entry in from_ioerr(dir.read_dir())? {
             let path = from_ioerr(entry)?.path();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837164.1253082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBuso-0005UX-A3; Fri, 15 Nov 2024 11:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837164.1253082; Fri, 15 Nov 2024 11:53: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 1tBuso-0005UQ-73; Fri, 15 Nov 2024 11:53:02 +0000
Received: by outflank-mailman (input) for mailman id 837164;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusn-0005U9-0E
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:01 +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 274ee777-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:52:56 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a99f646ff1bso239968266b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:52:56 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.52.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 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: 274ee777-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3NGVlNzc3LWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTc2LjYyOTE4NSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671576; x=1732276376; 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=5mrVRgD97fk4oiduu+jg3TvIRmLCwcya2NVl3bfxaNk=;
        b=XYI4ZYQrV9Gv/IREjD+hqYJBmV7AWvcUACeXBp9yKlQWTu1ikP0RouMuJtKcDfPOL1
         /4kOZO7FyUF4iqTTMwtCYVx4KItQOByW5pfQ5X3Pgd5nIngwvQKbfBzwfSGZNaa7PVHd
         DyZOCsUJp/4vFmN9ua6gIW5GmXdHVjArPQlc0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671576; x=1732276376;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5mrVRgD97fk4oiduu+jg3TvIRmLCwcya2NVl3bfxaNk=;
        b=CEKIhv8oWZzYuQ9dHfEakqiibabPV8TpVrUyDy4In/IuazuYmODGTw93ub1w0N8dwr
         yYMo+9rJWlKh6BFiJLTJrja16HvMvnF8QPU9q9LEMpUGpUlb5w3voGIdpRa/9FmQh7r0
         OtP5P8VhLDiKlbiGM787d3SrW/EFlpNhuIktHwKcyZc8bln3kU0Ie7MDV9FUY1WYsD2e
         IhMJ3oeT8JtPSXwwvrsM3aDpndI/QlksDZRAL9gvS/GtexUgxr6q6U4ojGSj042xZTYY
         j5IzOOBtvtEBBkggvu22Mboar2i4s2XfaZLlGhIKMLDwu9KNNFxqx3/gvuIYo25bOLax
         k2AA==
X-Gm-Message-State: AOJu0YxrpA9OWkx1j3muI44uCC3kB8mmoeY511WVmH00A4IYVx1eNSnr
	OtbSnUCAOEwIvH4P0XYipDubLj7LCrhahmQeiMDreHfKKHu62TwiQrNEacfMElAmXFACMnCrQiw
	g
X-Google-Smtp-Source: AGHT+IHgSlFouleWW4NhastRrTRfcV9mIE59JpQXE0ASPTZ/NyZSqm4wzfRTNQm7vXFvCwhhIVF96g==
X-Received: by 2002:a17:907:1b2a:b0:a9a:d4aa:95bd with SMTP id a640c23a62f3a-aa48354e32emr231728266b.54.1731671575641;
        Fri, 15 Nov 2024 03:52:55 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [RFC PATCH 01/25] xen/domctl: Refine grant_opts into max_grant_version
Date: Fri, 15 Nov 2024 11:51:30 +0000
Message-ID: <20241115115200.2824-2-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

grant_opts is overoptimizing for space packing in a hypercall that
doesn't warrant the effort. Tweak the ABI without breaking it in order
to remove the bitfield by extending it to 8 bits.

Xen only supports little-endian systems, so the transformation from
uint32_t to uint8_t followed by 3 octets worth of padding is not an ABI
breakage.

No functional change

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/helpers/init-xenstore-domain.c             |  2 +-
 tools/libs/light/libxl_create.c                  |  6 +-----
 tools/ocaml/libs/xc/xenctrl_stubs.c              |  3 +--
 tools/python/xen/lowlevel/xc/xc.c                |  2 +-
 tools/tests/paging-mempool/test-paging-mempool.c |  2 +-
 tools/tests/resource/test-resource.c             |  6 +++---
 tools/tests/tsx/test-tsx.c                       |  4 ++--
 xen/arch/arm/dom0less-build.c                    |  4 ++--
 xen/arch/arm/domain_build.c                      |  2 +-
 xen/arch/x86/setup.c                             |  2 +-
 xen/common/domain.c                              |  6 +++---
 xen/common/grant_table.c                         |  3 +--
 xen/include/public/domctl.h                      | 15 +++++++++++----
 xen/include/xen/grant_table.h                    |  6 +++---
 14 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index 01ca667d25d1..a9f2f9859df6 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -96,7 +96,7 @@ static int build(xc_interface *xch)
          */
         .max_grant_frames = 4,
         .max_maptrack_frames = 128,
-        .grant_opts = XEN_DOMCTL_GRANT_version(1),
+        .max_grant_version = 1,
     };
 
     xs_fd = open("/dev/xen/xenbus_backend", O_RDWR);
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index edeadd57ef5a..87594809abc8 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -476,10 +476,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         else
             /* No grant table support reported */
             b_info->max_grant_version = 0;
-    } else if (b_info->max_grant_version & ~XEN_DOMCTL_GRANT_version_mask) {
-        LOG(ERROR, "max grant version %d out of range",
-            b_info->max_grant_version);
-        return -ERROR_INVAL;
     }
 
     /* Assume that providing a bootloader user implies enabling restrict. */
@@ -646,7 +642,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
             .max_evtchn_port = b_info->event_channels,
             .max_grant_frames = b_info->max_grant_frames,
             .max_maptrack_frames = b_info->max_maptrack_frames,
-            .grant_opts = XEN_DOMCTL_GRANT_version(b_info->max_grant_version),
+            .max_grant_version = b_info->max_grant_version,
             .vmtrace_size = ROUNDUP(b_info->vmtrace_buf_kb << 10, XC_PAGE_SHIFT),
             .cpupool_id = info->poolid,
         };
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index c78191f95abc..67a690308f1a 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -223,8 +223,7 @@ CAMLprim value stub_xc_domain_create(value xch_val, value wanted_domid, value co
 		.max_evtchn_port = Int_val(VAL_MAX_EVTCHN_PORT),
 		.max_grant_frames = Int_val(VAL_MAX_GRANT_FRAMES),
 		.max_maptrack_frames = Int_val(VAL_MAX_MAPTRACK_FRAMES),
-		.grant_opts =
-		    XEN_DOMCTL_GRANT_version(Int_val(VAL_MAX_GRANT_VERSION)),
+		.max_grant_version = Int_val(VAL_MAX_GRANT_VERSION),
 		.altp2m_opts = Int32_val(VAL_ALTP2M_OPTS),
 		.vmtrace_size = vmtrace_size,
 		.cpupool_id = Int32_val(VAL_CPUPOOL_ID),
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 9feb12ae2b16..ba6a61217f9f 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -167,7 +167,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
 #else
 #error Architecture not supported
 #endif
-    config.grant_opts = XEN_DOMCTL_GRANT_version(max_grant_version);
+    config.max_grant_version = max_grant_version;
 
     if ( (ret = xc_domain_create(self->xc_handle, &dom, &config)) < 0 )
         return pyxc_error_to_exception(self->xc_handle);
diff --git a/tools/tests/paging-mempool/test-paging-mempool.c b/tools/tests/paging-mempool/test-paging-mempool.c
index 1ebc13455ac2..512c42803c0e 100644
--- a/tools/tests/paging-mempool/test-paging-mempool.c
+++ b/tools/tests/paging-mempool/test-paging-mempool.c
@@ -24,7 +24,7 @@ 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),
+    .max_grant_version = 1,
 
     .arch = {
 #if defined(__x86_64__) || defined(__i386__)
diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
index 1b10be16a6b4..b0a9f5f1e8b6 100644
--- a/tools/tests/resource/test-resource.c
+++ b/tools/tests/resource/test-resource.c
@@ -137,7 +137,7 @@ static void test_domain_configurations(void)
             .create = {
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
-                .grant_opts = XEN_DOMCTL_GRANT_version(1),
+                .max_grant_version = 1,
             },
         },
         {
@@ -146,7 +146,7 @@ static void test_domain_configurations(void)
                 .flags = XEN_DOMCTL_CDF_hvm,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
-                .grant_opts = XEN_DOMCTL_GRANT_version(1),
+                .max_grant_version = 1,
                 .arch = {
                     .emulation_flags = XEN_X86_EMU_LAPIC,
                 },
@@ -159,7 +159,7 @@ static void test_domain_configurations(void)
                 .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
-                .grant_opts = XEN_DOMCTL_GRANT_version(1),
+                .max_grant_version = 1,
             },
         },
 #endif
diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
index 5af04953f340..324bcf67153a 100644
--- a/tools/tests/tsx/test-tsx.c
+++ b/tools/tests/tsx/test-tsx.c
@@ -457,7 +457,7 @@ static void test_guests(void)
         struct xen_domctl_createdomain c = {
             .max_vcpus = 1,
             .max_grant_frames = 1,
-            .grant_opts = XEN_DOMCTL_GRANT_version(1),
+            .max_grant_version = 1,
         };
 
         printf("Testing PV guest\n");
@@ -470,7 +470,7 @@ static void test_guests(void)
             .flags = XEN_DOMCTL_CDF_hvm,
             .max_vcpus = 1,
             .max_grant_frames = 1,
-            .grant_opts = XEN_DOMCTL_GRANT_version(1),
+            .max_grant_version = 1,
             .arch = {
                 .emulation_flags = XEN_X86_EMU_LAPIC,
             },
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index f328a044e9d3..1c6219c7cc82 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -877,7 +877,7 @@ void __init create_domUs(void)
             .max_evtchn_port = 1023,
             .max_grant_frames = -1,
             .max_maptrack_frames = -1,
-            .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
+            .max_grant_version = opt_gnttab_max_version,
         };
         unsigned int flags = 0U;
         uint32_t val;
@@ -959,7 +959,7 @@ void __init create_domUs(void)
         }
 
         if ( dt_property_read_u32(node, "max_grant_version", &val) )
-            d_cfg.grant_opts = XEN_DOMCTL_GRANT_version(val);
+            d_cfg.max_grant_version = val;
 
         if ( dt_property_read_u32(node, "max_grant_frames", &val) )
         {
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2c30792de88b..773412ba2acb 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2194,7 +2194,7 @@ void __init create_dom0(void)
         .max_evtchn_port = -1,
         .max_grant_frames = gnttab_dom0_frames(),
         .max_maptrack_frames = -1,
-        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
+        .max_grant_version = opt_gnttab_max_version,
     };
     int rc;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 5da1c6a34519..0443555d9bb8 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -964,7 +964,7 @@ static struct domain *__init create_dom0(const module_t *image,
         .max_evtchn_port = -1,
         .max_grant_frames = -1,
         .max_maptrack_frames = -1,
-        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
+        .max_grant_version = opt_gnttab_max_version,
         .max_vcpus = dom0_max_vcpus(),
         .arch = {
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 92263a4fbdc5..86f0e99e0d4a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -579,9 +579,9 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
-    if ( config->grant_opts & ~XEN_DOMCTL_GRANT_version_mask )
+    if ( config->rsvd0[0] | config->rsvd0[1] | config->rsvd0[2] )
     {
-        dprintk(XENLOG_INFO, "Unknown grant options %#x\n", config->grant_opts);
+        dprintk(XENLOG_INFO, "Rubble in rsvd0 padding\n");
         return -EINVAL;
     }
 
@@ -788,7 +788,7 @@ struct domain *domain_create(domid_t domid,
 
     if ( (err = grant_table_init(d, config->max_grant_frames,
                                  config->max_maptrack_frames,
-                                 config->grant_opts)) != 0 )
+                                 config->max_grant_version)) != 0 )
         goto fail;
     init_status |= INIT_gnttab;
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 6c77867f8cdd..51a3f72a9601 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -1963,10 +1963,9 @@ active_alloc_failed:
 }
 
 int grant_table_init(struct domain *d, int max_grant_frames,
-                     int max_maptrack_frames, unsigned int options)
+                     int max_maptrack_frames, uint8_t max_grant_version)
 {
     struct grant_table *gt;
-    unsigned int max_grant_version = options & XEN_DOMCTL_GRANT_version_mask;
     int ret = -ENOMEM;
 
     if ( !max_grant_version )
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 353f831e402e..e37d4337dcf9 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -90,11 +90,18 @@ struct xen_domctl_createdomain {
     int32_t max_grant_frames;
     int32_t max_maptrack_frames;
 
-/* Grant version, use low 4 bits. */
-#define XEN_DOMCTL_GRANT_version_mask    0xf
-#define XEN_DOMCTL_GRANT_version(v)      ((v) & XEN_DOMCTL_GRANT_version_mask)
+    /*
+     * Maximum grant table version the domain can be configured with.
+     *
+     * Domains always start with v1 (if CONFIG_GRANT_TABLE) and can be bumped
+     * to use up to `max_grant_version` via GNTTABOP_set_version.
+     *
+     * Must be zero iff !CONFIG_GRANT_TABLE.
+     */
+    uint8_t max_grant_version;
 
-    uint32_t grant_opts;
+    /* Unused. Reserved to zero. */
+    uint8_t rsvd0[3];
 
 /*
  * Enable altp2m mixed mode.
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 50edfecfb62f..a483d5a216a4 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -40,7 +40,7 @@ extern unsigned int opt_max_grant_frames;
 
 /* Create/destroy per-domain grant table context. */
 int grant_table_init(struct domain *d, int max_grant_frames,
-                     int max_maptrack_frames, unsigned int options);
+                     int max_maptrack_frames, uint8_t max_grant_version);
 void grant_table_destroy(
     struct domain *d);
 void grant_table_init_vcpu(struct vcpu *v);
@@ -73,9 +73,9 @@ int gnttab_acquire_resource(
 static inline int grant_table_init(struct domain *d,
                                    int max_grant_frames,
                                    int max_maptrack_frames,
-                                   unsigned int options)
+                                   uint8_t max_grant_version)
 {
-    if ( options )
+    if ( max_grant_version )
         return -EINVAL;
 
     return 0;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837165.1253092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusp-0005ik-GM; Fri, 15 Nov 2024 11:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837165.1253092; Fri, 15 Nov 2024 11:53: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 1tBusp-0005id-DV; Fri, 15 Nov 2024 11:53:03 +0000
Received: by outflank-mailman (input) for mailman id 837165;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusn-0005U9-MY
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:01 +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 269f80fb-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:52:56 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-aa1f73966a5so330049666b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:52:55 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.52.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:52: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: 269f80fb-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI2OWY4MGZiLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTc2LjYyOTIxMiwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671574; x=1732276374; 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=gqmyL4WL6Ul5Yz75CfK/+hAvZBs23QkBt1Is8c3CzCk=;
        b=ECjKsOrzNPhBRnP6k6T5ob527rcaN04Dq9cpTGJCMiR4fa4Ss6vI+VS4myW/mw2DO6
         SuTDaTBhcRSLvAB6jMCLyp14qVkA5ZBplX6gBXValF8pcq32A+MXxLUoccb0gJ9aCV5I
         gUQFsf1VDFtR7wo8l0BQAVFsxLPzAfjdC6shQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671574; x=1732276374;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gqmyL4WL6Ul5Yz75CfK/+hAvZBs23QkBt1Is8c3CzCk=;
        b=nBgwBkMmYdlni+vzdJY3mF5cp9HJ9sKZptscMxDxRrJ8021jMOlOb+j5b9v9ZI0ue6
         9QpcHtwPagv+qnKRI0NFhvwdOGsShQOOETOAwjNmtxPOEQOuXToUNw8+vzPRK3rwBIqh
         lBjHubzF5T5F4ixw5tW35wM2ejBgsKdqbkSpS84PhY71IwhXQ8Qh9IozwBoqHDi/WB9C
         Lh0zopgkM+9wDtTiTnLDYoqkcC8q6eW4yhBcflf5VwDHj0876+/SSXMWUgAnlS+T61sv
         x01R6PysIMWqrTExVNjDObSpSWjHgC+kMCMeD0tLU9bXLQsn9pVBR+P7Ds1bnZ/oEQZx
         GdGw==
X-Gm-Message-State: AOJu0YzrNFfTmv2Z2XhKzNkPQh5SXGgjmtsAAYllFKTJX05/fTn2/btn
	FdAftmF6rN3TbGyELLdZvO2+UpikQWMwRaGRqhLs58GQ4WLO4lNLgXeghyyyE9ygMXu98RvI4Gi
	p
X-Google-Smtp-Source: AGHT+IFS2YdSgunXD1W7d/NoENYW4x6h1LZ/PaeuVABJKdnIfb5PSHvUMl/MSOJtn6P/tMs2KgIMHQ==
X-Received: by 2002:a17:907:2cc7:b0:a99:8a5c:a357 with SMTP id a640c23a62f3a-aa483553afbmr172036366b.58.1731671574410;
        Fri, 15 Nov 2024 03:52:54 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Tim Deegan <tim@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 00/25] Introduce xenbindgen to autogen hypercall structs
Date: Fri, 15 Nov 2024 11:51:29 +0000
Message-ID: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series is the result of my "Interfacing Rust with Xen" talk in Xen Summit.
It adds a hypercall ABI IDL parser and generator to the xen tree, replaces a
couple of existing hypercalls, creates a Rust crate with autogenerated contents
an creates a CI job to ensure nothing goes out of sync.

The changes are fairly invasive because the various autogenerated items appear
in many places (specially the domaincreate flags). However, the changes to the
hypervisor are all mechanical and not functional (not intentionally so, at
least).

I've split the generator in reasonably small pieces, but it's still not a small
tool. The Rust backend remains monolithic in a single patch until the RFC goes
further. It mirrors the C backend for the most part.

The hypercall ABI is specified in a schema of TOML. Most of it should be fairly
obvious as to what it does and means, with the possible exception of the "typ"
field. That has the look of a dictionary because that helps the deserializer to
automatically resolve the typ to a convenient Rust enum type (Typ). In time,
that will become something nicer to write, but that's fairly far in my list of
priorities at the moment.

After the series sysctl::readconsole and domctl::createdomain are autogenerated
from their formalized forms. In the course of formalizing the ABI it became
apparent readconsole has a different ABI in 32 and 64 bits. While benign in
that particular case, it's yet one more reason to formalize the ABI in a
language agnostic way and have it machine-checked.

======== The Plan ===========

So, the idea of the series is to adjust 2 meaningful hypercalls to TOML-based
specifications (sysctl::readconsole and domctl::createdomain). The series is
organised in the following chunks of work

  1. Sanitise domctl::createdomain to remove packed subfields.
  2. Introduce xenbindgen (IDL parser and generator for C).
  3. Specify hypercalls in TOML, and replace the hand-crafted public bits.
  4. Introduce Rust generator for xenbindgen.
  5. Introduce a xen-sys crate, with the autogenerated Rust constructs.
  6. Introduce CI checks for Rust linters, ABI validation and autogenerated
     file consistency.

Future work involves migrating more hypercalls, in the same way patch 12 does.
Most hypercalls should not take the amount of churn createdomain did. With the
foundations laid down the involved work should be simple.

I have considered integrating the hypercall generation in the build process.
That forces the Rust toolchain to be in the list of build dependencies for
downstreams, which might be complicated or annoying. For the time being, I
think checking in the autogenerated files and confirming in CI that they are
in-sync is (imo) more than enough.

======== Patch grouping ===========

Patches 1 and 2 remove packed subfields to allow encoding it in the TOML specs
(e.g: see patch 13, replace hand-crafted altp2m_mode). It's non-functional
changes aiming to reach simpler representability.

  Patch 1.  xen/domctl: Refine grant_opts into max_grant_version
  Patch 2.  xen/domctl: Replace altp2m_opts with altp2m_mode

Patches 3 to 10 are xenbindgen (with the C generator backend only). The
Cargo.lock file in patch 4 is required for build reproducibility and is
recommended to have checked in the repo.

  Patch 3.  tools/xenbindgen: Introduce a Xen hypercall IDL generator
  Patch 4.  tools/xenbindgen: Add a TOML spec reader
  Patch 5.  tools/xenbindgen: Add basic plumbing for the C backend
  Patch 6.  tools/xenbindgen: Add xenbindgen's Cargo.lock file
  Patch 7.  tools/xenbindgen: Add support for structs in TOML specs
  Patch 8.  tools/xenbindgen: Add support for enums in TOML specs
  Patch 9.  tools/xenbindgen: Add support for bitmaps in TOML specs
  Patch 10. tools/xenbindgen: Add support for includes in the TOML specs

Patch 11 goes a step beyond and validates the ABI has no implicit padding and
that all names are unique. In the future, when we define rules for stable ABIs,
all of those can be checked here, at generation time.

  Patch 11. tools/xenbindgen: Validate ABI rules at generation time

Patches 12 to 19 replace current items in the C headers with autogenerated
versions. They should all be mechanical translations.

  Patch 12. xen: Replace sysctl/readconsole with autogenerated version
  Patch 13. xen: Replace hand-crafted altp2m_mode descriptions with
            autogenerated ones
  Patch 14. xen: Replace common bitmaps in domctl.createdomain with
            autogenerated versions
  Patch 15. xen/arm: Replace hand-crafted xen_arch_domainconfig with
            autogenerated one
  Patch 16. xen/x86: Replace hand-crafted xen_arch_domainconfig with
            autogenerated one
  Patch 17. xen/ppc: Replace empty xen_arch_domainconfig with autogenerated
            one
  Patch 18. xen/riscv: Replace empty xen_arch_domainconfig with autogenerated
            one
  Patch 19. xen: Replace hand-crafted domctl/createdomain with autogenerated
            version

Patches 20 to 23 add a Rust backend to xenbindgen, and create a barebones
xen-sys crate containing the autogenerated constructs.

  Patch 20. tools/xen-sys: Create a crate with autogenerated Rust constructs
  Patch 21. tools/xenbindgen: Add Rust backend to xenbindgen
  Patch 22. tools/xen-sys: Add autogenerated Rust files
  Patch 23. licence: Add Unicode-DFS-2016 to the list of licences

Patches 24 and 25 include CI checks to avoid regressions in all this. A new job
under "analysis" validates ABI invariants and consistency between autogenerated
headers and specs, and lints all Rust code.

  Patch 24. tools/rust: Add deny.toml
  Patch 25. ci: Add a CI checker for Rust-related helpful properties

======== The question ===========

It would be nice to have at least the IDL parser checked in before the 4.20
freeze, but that assumes everyone is onboard with the general plan.

Patch 25 needs a dedicated container before it can go in, but otherwise
everything else should be in a pretty decent shape. With all of this on the
table, are there any reasons why this work should be deferred any longer?

Does this all sound like a credible plan?

Alejandro Vallejo (25):
  xen/domctl: Refine grant_opts into max_grant_version
  xen/domctl: Replace altp2m_opts with altp2m_mode
  tools/xenbindgen: Introduce a Xen hypercall IDL generator
  tools/xenbindgen: Add a TOML spec reader
  tools/xenbindgen: Add basic plumbing for the C backend
  tools/xenbindgen: Add xenbindgen's Cargo.lock file
  tools/xenbindgen: Add support for structs in TOML specs
  tools/xenbindgen: Add support for enums in TOML specs
  tools/xenbindgen: Add support for bitmaps in TOML specs
  tools/xenbindgen: Add support for includes in the TOML specs
  tools/xenbindgen: Validate ABI rules at generation time
  xen: Replace sysctl/readconsole with autogenerated version
  xen: Replace hand-crafted altp2m_mode descriptions with autogenerated
    ones
  xen: Replace common bitmaps in domctl.createdomain with autogenerated
    versions
  xen/arm: Replace hand-crafted xen_arch_domainconfig with autogenerated
    one
  xen/x86: Replace hand-crafted xen_arch_domainconfig with autogenerated
    one
  xen/ppc: Replace empty xen_arch_domainconfig with autogenerated one
  xen/riscv: Replace empty xen_arch_domainconfig with autogenerated one
  xen: Replace hand-crafted domctl/createdomain with autogenerated
    version
  tools/xen-sys: Create a crate with autogenerated Rust constructs
  tools/xenbindgen: Add Rust backend to xenbindgen
  tools/xen-sys: Add autogenerated Rust files
  licence: Add Unicode-DFS-2016 to the list of licences
  tools/rust: Add deny.toml
  ci: Add a CI checker for Rust-related helpful properties

 LICENSES/Unicode-DFS-2016                     |  56 ++
 automation/gitlab-ci/analyze.yaml             |  14 +
 stubdom/Makefile                              |   2 +-
 tools/helpers/init-xenstore-domain.c          |   6 +-
 tools/libs/light/libxl_create.c               |  31 +-
 tools/libs/light/libxl_x86.c                  |   4 +-
 tools/ocaml/libs/xc/xenctrl.ml                |   6 +-
 tools/ocaml/libs/xc/xenctrl.mli               |   6 +-
 tools/ocaml/libs/xc/xenctrl_stubs.c           |  21 +-
 tools/python/xen/lowlevel/xc/xc.c             |   6 +-
 tools/rust/Makefile                           |  83 +++
 tools/rust/deny.toml                          | 236 +++++++
 tools/rust/xen-sys/.gitignore                 |   2 +
 tools/rust/xen-sys/Cargo.toml                 |   8 +
 tools/rust/xen-sys/src/autogen.rs             |  27 +
 tools/rust/xen-sys/src/autogen/arch_arm.rs    |  56 ++
 tools/rust/xen-sys/src/autogen/arch_ppc.rs    |   8 +
 tools/rust/xen-sys/src/autogen/arch_riscv.rs  |   8 +
 tools/rust/xen-sys/src/autogen/arch_x86.rs    |  55 ++
 tools/rust/xen-sys/src/autogen/domctl.rs      | 104 ++++
 tools/rust/xen-sys/src/autogen/sysctl.rs      |  26 +
 tools/rust/xen-sys/src/lib.rs                 |  45 ++
 tools/rust/xenbindgen/.gitignore              |   1 +
 tools/rust/xenbindgen/Cargo.lock              | 430 +++++++++++++
 tools/rust/xenbindgen/Cargo.toml              |  15 +
 .../extra/arch-arm/domainconfig.toml          |  83 +++
 .../extra/arch-ppc/domainconfig.toml          |   4 +
 .../extra/arch-riscv/domainconfig.toml        |   4 +
 .../extra/arch-x86/domainconfig.toml          |  87 +++
 .../xenbindgen/extra/domctl/createdomain.toml | 185 ++++++
 .../xenbindgen/extra/sysctl/readconsole.toml  |  43 ++
 tools/rust/xenbindgen/src/c_lang.rs           | 267 ++++++++
 tools/rust/xenbindgen/src/main.rs             | 103 ++++
 tools/rust/xenbindgen/src/rs_lang.rs          | 227 +++++++
 tools/rust/xenbindgen/src/spec.rs             | 577 ++++++++++++++++++
 .../paging-mempool/test-paging-mempool.c      |   4 +-
 tools/tests/resource/test-resource.c          |  14 +-
 tools/tests/tsx/test-tsx.c                    |   8 +-
 xen/arch/arm/dom0less-build.c                 |   8 +-
 xen/arch/arm/domain.c                         |  12 +-
 xen/arch/arm/domain_build.c                   |   6 +-
 xen/arch/arm/tee/tee.c                        |   1 +
 xen/arch/x86/domain.c                         |  33 +-
 xen/arch/x86/hvm/hvm.c                        |  12 +-
 xen/arch/x86/include/asm/domain.h             |   4 +-
 xen/arch/x86/include/asm/hvm/nestedhvm.h      |   2 +-
 xen/arch/x86/mm/shadow/common.c               |   4 +-
 xen/arch/x86/setup.c                          |  12 +-
 xen/arch/x86/tboot.c                          |   2 +-
 xen/common/domain.c                           |  25 +-
 xen/common/grant_table.c                      |   3 +-
 xen/drivers/char/console.c                    |  12 +-
 xen/drivers/passthrough/iommu.c               |   4 +-
 xen/include/public/arch-arm.h                 |  36 --
 xen/include/public/arch-ppc.h                 |   3 -
 xen/include/public/arch-riscv.h               |   3 -
 xen/include/public/arch-x86/xen.h             |  51 --
 xen/include/public/autogen/arch_arm.h         |  59 ++
 xen/include/public/autogen/arch_ppc.h         |  14 +
 xen/include/public/autogen/arch_riscv.h       |  14 +
 xen/include/public/autogen/arch_x86.h         |  52 ++
 xen/include/public/autogen/domctl.h           | 117 ++++
 xen/include/public/autogen/sysctl.h           |  35 ++
 xen/include/public/domctl.h                   |  93 +--
 xen/include/public/sysctl.h                   |  24 +-
 xen/include/public/xen.h                      |   1 +
 xen/include/xen/grant_table.h                 |   6 +-
 xen/include/xen/sched.h                       |  10 +-
 68 files changed, 3180 insertions(+), 340 deletions(-)
 create mode 100644 LICENSES/Unicode-DFS-2016
 create mode 100644 tools/rust/Makefile
 create mode 100644 tools/rust/deny.toml
 create mode 100644 tools/rust/xen-sys/.gitignore
 create mode 100644 tools/rust/xen-sys/Cargo.toml
 create mode 100644 tools/rust/xen-sys/src/autogen.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_arm.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_ppc.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_riscv.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_x86.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/domctl.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/sysctl.rs
 create mode 100644 tools/rust/xen-sys/src/lib.rs
 create mode 100644 tools/rust/xenbindgen/.gitignore
 create mode 100644 tools/rust/xenbindgen/Cargo.lock
 create mode 100644 tools/rust/xenbindgen/Cargo.toml
 create mode 100644 tools/rust/xenbindgen/extra/arch-arm/domainconfig.toml
 create mode 100644 tools/rust/xenbindgen/extra/arch-ppc/domainconfig.toml
 create mode 100644 tools/rust/xenbindgen/extra/arch-riscv/domainconfig.toml
 create mode 100644 tools/rust/xenbindgen/extra/arch-x86/domainconfig.toml
 create mode 100644 tools/rust/xenbindgen/extra/domctl/createdomain.toml
 create mode 100644 tools/rust/xenbindgen/extra/sysctl/readconsole.toml
 create mode 100644 tools/rust/xenbindgen/src/c_lang.rs
 create mode 100644 tools/rust/xenbindgen/src/main.rs
 create mode 100644 tools/rust/xenbindgen/src/rs_lang.rs
 create mode 100644 tools/rust/xenbindgen/src/spec.rs
 create mode 100644 xen/include/public/autogen/arch_arm.h
 create mode 100644 xen/include/public/autogen/arch_ppc.h
 create mode 100644 xen/include/public/autogen/arch_riscv.h
 create mode 100644 xen/include/public/autogen/arch_x86.h
 create mode 100644 xen/include/public/autogen/domctl.h
 create mode 100644 xen/include/public/autogen/sysctl.h


base-commit: d2bbb0d4554aa08649985d790317ba78f0db22ff
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837167.1253102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusq-0005qD-26; Fri, 15 Nov 2024 11:53:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837167.1253102; Fri, 15 Nov 2024 11:53: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 1tBusp-0005nH-RW; Fri, 15 Nov 2024 11:53:03 +0000
Received: by outflank-mailman (input) for mailman id 837167;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBuso-0005U9-Mb
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:02 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27f23757-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:52:57 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9ef275b980so110462066b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:52:57 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.52.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03: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: 27f23757-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI3ZjIzNzU3LWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTc3LjY3OTk5Mywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671577; x=1732276377; 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=GnUruHtiBjMQURAk6r67+S2KIYkG9l4j/nhhDyE0lxU=;
        b=TQdxwcj0vfl8Z4r76UuGQgAvehXgC7zclcKZhTgx93f4xIIhNC6dKLmrLwN44d5iWO
         0Ep75AvsyIbhaTQxo3ba3PWHbJfwW/dazYgTy2na272LvVdfWdi5PoYCmiwTtGqeCwh9
         EuxjyprT/1LgyHNm53kDb2Ljl6/+vK070j/RI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671577; x=1732276377;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=GnUruHtiBjMQURAk6r67+S2KIYkG9l4j/nhhDyE0lxU=;
        b=pEcukVvN8/BB/6Bz5R84RadI8B8T/GzOpcya8Yf1JUVFnfINezD49GvSsWqS1jFayK
         vI8Lwecb9y/BvN7VvcfFDopfrnyAKOx0gg5gDVrnFw8anDvCkKeeK+Ij4qFDZ9hxyJXj
         xmJupQhPhQuRWjI9HcmBuY55QamWoOEi4tP64yao3e0SaQw54nRXOxSeYOwJBa3wGOFZ
         jMjWTl9ItW8G4Hrpmiygg7f3xK0sIp9e0EVSbJJt06wNrNWnrc5b3+80SBgLzf/0ocbS
         acRIddaIIkYSX+VZbwNjGTnH1aOgd8gByj+FyP6iBXFFHw0vAc1sCbKEY1Fbv9eu6qr1
         Meqg==
X-Gm-Message-State: AOJu0YyK+KN47UOjVr94YKoJq7h9FB9kzovylPReTwhH5MmTSPapFEng
	uyU3xoqTBpD00F/z03fUhJFYeHG4chhYLfcoQncTLAYt1+KrSv8zUbIhiPJmWIbaYs/QTLx3Ze4
	n
X-Google-Smtp-Source: AGHT+IGILk9OK5J7KLLfKUoMnXFsNUvPeAvKjx9rCUT4nS0cebUMT0Ne3Hliiw7Pvamek+LfNvJilg==
X-Received: by 2002:a17:906:dac7:b0:aa4:777d:739a with SMTP id a640c23a62f3a-aa4833e9fcbmr205498566b.8.1731671576796;
        Fri, 15 Nov 2024 03:52:56 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [RFC PATCH 02/25] xen/domctl: Replace altp2m_opts with altp2m_mode
Date: Fri, 15 Nov 2024 11:51:31 +0000
Message-ID: <20241115115200.2824-3-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change, in the same direction as the previous grant_opts
to max_grant_version.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/libs/light/libxl_create.c     | 11 ++++-------
 tools/ocaml/libs/xc/xenctrl.ml      |  2 +-
 tools/ocaml/libs/xc/xenctrl.mli     |  2 +-
 tools/ocaml/libs/xc/xenctrl_stubs.c |  6 +++---
 xen/arch/arm/domain.c               |  2 +-
 xen/arch/x86/domain.c               | 13 ++-----------
 xen/arch/x86/hvm/hvm.c              |  6 +++++-
 xen/common/domain.c                 |  3 ++-
 xen/include/public/domctl.h         | 12 +++++++-----
 9 files changed, 26 insertions(+), 31 deletions(-)

diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index 87594809abc8..3ae922e8931b 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -676,22 +676,19 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
         LOG(DETAIL, "altp2m: %s", libxl_altp2m_mode_to_string(b_info->altp2m));
         switch(b_info->altp2m) {
         case LIBXL_ALTP2M_MODE_MIXED:
-            create.altp2m_opts |=
-                XEN_DOMCTL_ALTP2M_mode(XEN_DOMCTL_ALTP2M_mixed);
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_mixed;
             break;
 
         case LIBXL_ALTP2M_MODE_EXTERNAL:
-            create.altp2m_opts |=
-                XEN_DOMCTL_ALTP2M_mode(XEN_DOMCTL_ALTP2M_external);
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_external;
             break;
 
         case LIBXL_ALTP2M_MODE_LIMITED:
-            create.altp2m_opts |=
-                XEN_DOMCTL_ALTP2M_mode(XEN_DOMCTL_ALTP2M_limited);
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_limited;
             break;
 
         case LIBXL_ALTP2M_MODE_DISABLED:
-            /* Nothing to do - altp2m disabled is signaled as mode == 0. */
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_disabled;
             break;
         }
 
diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index 2690f9a92316..3c4c95d48319 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -85,7 +85,7 @@ type domctl_create_config =
     max_grant_frames: int;
     max_maptrack_frames: int;
     max_grant_version: int;
-    altp2m_opts: int32;
+    altp2m_mode: int32;
     vmtrace_buf_kb: int32;
     cpupool_id: int32;
     arch: arch_domainconfig;
diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
index febbe1f6ae3f..74919a14bec4 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -77,7 +77,7 @@ type domctl_create_config = {
   max_grant_frames: int;
   max_maptrack_frames: int;
   max_grant_version: int;
-  altp2m_opts: int32;
+  altp2m_mode: int32;
   vmtrace_buf_kb: int32;
   cpupool_id: int32;
   arch: arch_domainconfig;
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index 67a690308f1a..b701f45daa8d 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -204,7 +204,7 @@ CAMLprim value stub_xc_domain_create(value xch_val, value wanted_domid, value co
 #define VAL_MAX_GRANT_FRAMES    Field(config, 6)
 #define VAL_MAX_MAPTRACK_FRAMES Field(config, 7)
 #define VAL_MAX_GRANT_VERSION   Field(config, 8)
-#define VAL_ALTP2M_OPTS         Field(config, 9)
+#define VAL_ALTP2M_MODE         Field(config, 9)
 #define VAL_VMTRACE_BUF_KB      Field(config, 10)
 #define VAL_CPUPOOL_ID          Field(config, 11)
 #define VAL_ARCH                Field(config, 12)
@@ -224,7 +224,7 @@ CAMLprim value stub_xc_domain_create(value xch_val, value wanted_domid, value co
 		.max_grant_frames = Int_val(VAL_MAX_GRANT_FRAMES),
 		.max_maptrack_frames = Int_val(VAL_MAX_MAPTRACK_FRAMES),
 		.max_grant_version = Int_val(VAL_MAX_GRANT_VERSION),
-		.altp2m_opts = Int32_val(VAL_ALTP2M_OPTS),
+		.altp2m_mode = Int32_val(VAL_ALTP2M_MODE),
 		.vmtrace_size = vmtrace_size,
 		.cpupool_id = Int32_val(VAL_CPUPOOL_ID),
 	};
@@ -283,7 +283,7 @@ CAMLprim value stub_xc_domain_create(value xch_val, value wanted_domid, value co
 #undef VAL_ARCH
 #undef VAL_CPUPOOL_ID
 #undef VAL_VMTRACE_BUF_KB
-#undef VAL_ALTP2M_OPTS
+#undef VAL_ALTP2M_MODE
 #undef VAL_MAX_GRANT_VERSION
 #undef VAL_MAX_MAPTRACK_FRAMES
 #undef VAL_MAX_GRANT_FRAMES
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 3ba959f86633..c6c5a0d1af23 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -688,7 +688,7 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
-    if ( config->altp2m_opts )
+    if ( config->altp2m_mode )
     {
         dprintk(XENLOG_INFO, "Altp2m not supported\n");
         return -EINVAL;
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 78a13e6812c9..1ef095f349f7 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -637,8 +637,6 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
     bool hap = config->flags & XEN_DOMCTL_CDF_hap;
     bool nested_virt = config->flags & XEN_DOMCTL_CDF_nested_virt;
     unsigned int max_vcpus;
-    unsigned int altp2m_mode = MASK_EXTR(config->altp2m_opts,
-                                         XEN_DOMCTL_ALTP2M_mode_mask);
 
     if ( hvm ? !hvm_enabled : !IS_ENABLED(CONFIG_PV) )
     {
@@ -717,21 +715,14 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
-    if ( config->altp2m_opts & ~XEN_DOMCTL_ALTP2M_mode_mask )
-    {
-        dprintk(XENLOG_INFO, "Invalid altp2m options selected: %#x\n",
-                config->flags);
-        return -EINVAL;
-    }
-
-    if ( altp2m_mode && nested_virt )
+    if ( config->altp2m_mode && nested_virt )
     {
         dprintk(XENLOG_INFO,
                 "Nested virt and altp2m are not supported together\n");
         return -EINVAL;
     }
 
-    if ( altp2m_mode && !hap )
+    if ( config->altp2m_mode && !hap )
     {
         dprintk(XENLOG_INFO, "altp2m is only supported with HAP\n");
         return -EINVAL;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 74e58c653e6f..e30c3026479e 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -659,7 +659,7 @@ int hvm_domain_initialise(struct domain *d,
     d->arch.hvm.params[HVM_PARAM_TRIPLE_FAULT_REASON] = SHUTDOWN_reboot;
 
     /* Set altp2m based on domctl flags. */
-    switch ( MASK_EXTR(config->altp2m_opts, XEN_DOMCTL_ALTP2M_mode_mask) )
+    switch ( config->altp2m_mode )
     {
     case XEN_DOMCTL_ALTP2M_mixed:
         d->arch.hvm.params[HVM_PARAM_ALTP2M] = XEN_ALTP2M_mixed;
@@ -672,6 +672,10 @@ int hvm_domain_initialise(struct domain *d,
     case XEN_DOMCTL_ALTP2M_limited:
         d->arch.hvm.params[HVM_PARAM_ALTP2M] = XEN_ALTP2M_limited;
         break;
+
+    case XEN_DOMCTL_ALTP2M_disabled:
+        d->arch.hvm.params[HVM_PARAM_ALTP2M] = XEN_ALTP2M_disabled;
+        break;
     }
 
     vpic_init(d);
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 86f0e99e0d4a..ad19ff1cef23 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -579,7 +579,8 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
-    if ( config->rsvd0[0] | config->rsvd0[1] | config->rsvd0[2] )
+    if ( config->rsvd0_a[0] | config->rsvd0_a[1] | config->rsvd0_a[2] |
+         config->rsvd0_b[0] | config->rsvd0_b[1] | config->rsvd0_b[2] )
     {
         dprintk(XENLOG_INFO, "Rubble in rsvd0 padding\n");
         return -EINVAL;
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index e37d4337dcf9..95a3b6769f7f 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -101,8 +101,10 @@ struct xen_domctl_createdomain {
     uint8_t max_grant_version;
 
     /* Unused. Reserved to zero. */
-    uint8_t rsvd0[3];
+    uint8_t rsvd0_a[3];
 
+/* Keep altp2m disabled */
+#define XEN_DOMCTL_ALTP2M_disabled   (0U)
 /*
  * Enable altp2m mixed mode.
  *
@@ -116,10 +118,10 @@ struct xen_domctl_createdomain {
 #define XEN_DOMCTL_ALTP2M_external   (2U)
 /* Enable altp2m limited mode. */
 #define XEN_DOMCTL_ALTP2M_limited    (3U)
-/* Altp2m mode signaling uses bits [0, 1]. */
-#define XEN_DOMCTL_ALTP2M_mode_mask  (0x3U)
-#define XEN_DOMCTL_ALTP2M_mode(m)    ((m) & XEN_DOMCTL_ALTP2M_mode_mask)
-    uint32_t altp2m_opts;
+    uint8_t altp2m_mode;
+
+    /* Unused. Reserved to zero. */
+    uint8_t rsvd0_b[3];
 
     /* Per-vCPU buffer size in bytes.  0 to disable. */
     uint32_t vmtrace_size;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837170.1253137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBuss-0006nG-Ru; Fri, 15 Nov 2024 11:53:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837170.1253137; Fri, 15 Nov 2024 11:53: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 1tBuss-0006kU-LX; Fri, 15 Nov 2024 11:53:06 +0000
Received: by outflank-mailman (input) for mailman id 837170;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusr-0005UF-3I
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:05 +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 2ad09eef-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:02 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-aa1f73966a5so330068766b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:02 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2ad09eef-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJhZDA5ZWVmLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTgyLjU5MTY5NCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671581; x=1732276381; 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=sytrPMdwvOY0m83CIY9iwMgAnzbQaeZ6sB2Zn3Z0ves=;
        b=ia6OOIe7bDVLHBHjRD6YKKlPht7JvSDYOhYyVQ6BNAEv+LbsvqtcCIpcrB3MeG252R
         Lag/ccoo9K3nrynhE2osLsiqqLpXpt1Nrd6qxOylJvJz7HdedWHeaQkybztMkOTs23+y
         S6hnVDmmeGfRMZIWBMYchi09yVtEdFNDfkOdU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671581; x=1732276381;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sytrPMdwvOY0m83CIY9iwMgAnzbQaeZ6sB2Zn3Z0ves=;
        b=KfFolUdFcLq8xI6iIFHpu8zfdrcqxznCjngnC/Z2p3ChSKUh+dgBfc5SnIZm+/LM7l
         jnVx6g8HB96/5y+4TgT/Y0bL0bLCT5OwAr4tc/a4S4WVCJnqY7MqQwWQgZmscwWdRMzW
         Psfli61wjfzOHjv8SgHfQNyopOI8npiFtiCAtIEBTubqhk5xNvojq6PMF+fKBtyvk5Ql
         bfkZidZBqSvebBw8zdcggeZBbYpnPnAApD256jFUfujsMiDBntfOUINWy6aspBeWbrZw
         UsPOMwkpqJxZKLAvmcotdJmTs+wU4ntktCsxvoQP9jKKKQZjvq3vUi04Gbd24qjQAjYB
         mxgA==
X-Gm-Message-State: AOJu0YzwFVj4kvY7v1h786NKSRg6n38hmlK+QEFVVQBk5Jx6xemlgIl3
	7MLn8dFMp0GxU6tR4i4R/3CO4Ik5dIQaKFGFgKwdmRRI9ZEcF+SXidlh7kF9/MIDu+h61MPujPa
	E
X-Google-Smtp-Source: AGHT+IGUG2gI1zP3YUOHglb/KaURYas4CdKMa21xCEvuFbstqXQ1lqYUtpzWfSRBrQSH8CDuFDrZvw==
X-Received: by 2002:a17:906:eec9:b0:a9e:c954:6afb with SMTP id a640c23a62f3a-aa48355294dmr212971966b.51.1731671581436;
        Fri, 15 Nov 2024 03:53:01 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 07/25] tools/xenbindgen: Add support for structs in TOML specs
Date: Fri, 15 Nov 2024 11:51:36 +0000
Message-ID: <20241115115200.2824-8-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/src/c_lang.rs | 56 ++++++++++++++++++++++++-
 tools/rust/xenbindgen/src/spec.rs   | 64 ++++++++++++++++++++++++++++-
 2 files changed, 117 insertions(+), 3 deletions(-)

diff --git a/tools/rust/xenbindgen/src/c_lang.rs b/tools/rust/xenbindgen/src/c_lang.rs
index f05e36bb362f..597e0ed41362 100644
--- a/tools/rust/xenbindgen/src/c_lang.rs
+++ b/tools/rust/xenbindgen/src/c_lang.rs
@@ -17,9 +17,10 @@
 
 use std::fmt::Write;
 
-use crate::spec::OutFileDef;
+use crate::spec::{OutFileDef, StructDef, Typ};
 
 use convert_case::{Case, Casing};
+use log::{debug, trace};
 
 /// An abstract indentation level. 0 is no indentation, 1 is [`INDENT_WIDTH`]
 /// and so on.
@@ -29,6 +30,39 @@ struct Indentation(usize);
 /// Default width of each level of indentation
 const INDENT_WIDTH: usize = 4;
 
+/// Create a C-compatible struct field. Without the terminating semicolon.
+fn structfield(typ: &Typ, name: &str) -> String {
+    match typ {
+        Typ::Ptr(x) => {
+            let t: &Typ = x;
+            format!(
+                "XEN_GUEST_HANDLE_64({}) {name}",
+                match t {
+                    Typ::U8 => "uint8",
+                    Typ::U16 => "uint16",
+                    Typ::U32 => "uint32",
+                    Typ::U64 => "uint64_aligned_t",
+                    Typ::I8 => "int8",
+                    Typ::I16 => "int16",
+                    Typ::I32 => "int32",
+                    Typ::I64 => "int64_aligned_t",
+                    _ => panic!("foo {t:?}"),
+                }
+            )
+        }
+        Typ::Struct(x) => format!("struct {x} {name}"),
+        Typ::Array(x, len) => format!("{}{name}[{len}]", structfield(x, "")),
+        Typ::U8 => format!("uint8_t {name}"),
+        Typ::U16 => format!("uint16_t {name}"),
+        Typ::U32 => format!("uint32_t {name}"),
+        Typ::U64 => format!("uint64_aligned_t {name}"),
+        Typ::I8 => format!("int8_t {name}"),
+        Typ::I16 => format!("int16_t {name}"),
+        Typ::I32 => format!("int32_t {name}"),
+        Typ::I64 => format!("int64_aligned_t {name}"),
+    }
+}
+
 /// Add a comment to a struct or a field.
 fn comment(out: &mut String, comment: &str, ind: Indentation) {
     let spaces = " ".repeat(INDENT_WIDTH * ind.0);
@@ -48,6 +82,22 @@ fn comment(out: &mut String, comment: &str, ind: Indentation) {
     }
 }
 
+/// Write a C-compatible struct onto `out`
+fn structgen(out: &mut String, def: &StructDef) {
+    debug!("struct {}", def.name);
+
+    comment(out, &def.description, Indentation(0));
+    writeln!(out, "struct {} {{", def.name.to_case(Case::Snake)).unwrap();
+    for f in &def.fields {
+        trace!("  field {} type={:?}", f.name, f.typ);
+
+        comment(out, &f.description, Indentation(1));
+        writeln!(out, "    {};", structfield(&f.typ, &f.name),).unwrap();
+    }
+    writeln!(out, "}};").unwrap();
+    writeln!(out).unwrap();
+}
+
 /// Generates a single `.h` file.
 ///
 /// `filedef` is a language-agnostic high level description of what the output
@@ -67,6 +117,10 @@ pub fn parse(filedef: &OutFileDef) -> String {
     writeln!(out, "#ifndef __XEN_AUTOGEN_{name}_H").unwrap();
     writeln!(out, "#define __XEN_AUTOGEN_{name}_H\n").unwrap();
 
+    for def in &filedef.structs {
+        structgen(&mut out, def);
+    }
+
     writeln!(out, "#endif /* __XEN_AUTOGEN_{name}_H */\n").unwrap();
 
     out
diff --git a/tools/rust/xenbindgen/src/spec.rs b/tools/rust/xenbindgen/src/spec.rs
index 08c4dc3a7eba..e183378329ad 100644
--- a/tools/rust/xenbindgen/src/spec.rs
+++ b/tools/rust/xenbindgen/src/spec.rs
@@ -17,9 +17,61 @@ use std::{fs::read_to_string, path::Path};
 
 use log::{debug, info};
 
+/// An IDL type. A type may be a primitive integer, a pointer to an IDL type,
+/// an array of IDL types or a struct composed of IDL types. Every integer must
+/// be aligned to its size.
+///
+/// FIXME: This enumerated type is recovered as-is from the `typ` field in the
+/// TOML files. Ideally, that representation should be more ergonomic and the
+/// parser instructed to deal with it.
+#[allow(clippy::missing_docs_in_private_items)]
+#[derive(Debug, serde::Deserialize, PartialEq)]
+#[serde(rename_all = "lowercase", tag = "tag", content = "args")]
+pub enum Typ {
+    Struct(String),
+    U8,
+    U16,
+    U32,
+    U64,
+    I8,
+    I16,
+    I32,
+    I64,
+    Ptr(Box<Typ>),
+    Array(Box<Typ>, usize),
+}
+
+/// Deserialized form of a hypercall struct
+#[derive(Debug, serde::Deserialize)]
+pub struct StructDef {
+    /// Name of the struct
+    pub name: String,
+    /// Description of what the struct is for. This string is added as a comment
+    /// on top of the autogenerated struct.
+    pub description: String,
+    /// Fields contained in the struct. May be none, in which case it's a zero
+    /// length struct.
+    pub fields: Vec<FieldDef>,
+}
+
+/// Deserialized form of a field within a hypercall struct (see [`StructDef`])
+#[derive(Debug, serde::Deserialize)]
+pub struct FieldDef {
+    /// Name of the field
+    pub name: String,
+    /// Description of what the field is for. This string is added as a comment
+    /// on top of the autogenerated field.
+    pub description: String,
+    /// Type of the field.
+    pub typ: Typ,
+}
+
 /// A language-agnostic specification.
 #[derive(Debug, serde::Deserialize)]
-struct InFileDef;
+struct InFileDef {
+    /// List of structs described in this input specification.
+    structs: Option<Vec<StructDef>>,
+}
 
 /// Description of an abstract output (i.e: `.rs`, `.h`, etc).
 ///
@@ -28,6 +80,8 @@ struct InFileDef;
 pub struct OutFileDef {
     /// The name of the output file, without the final extension.
     pub name: String,
+    /// List of structs described by all input spec files merged on this file.
+    pub structs: Vec<StructDef>,
 }
 
 impl OutFileDef {
@@ -40,13 +94,19 @@ impl OutFileDef {
     pub fn new(name: String, dir: &Path) -> Result<Self, Error> {
         info!("Reading {dir:?} to generate an output file");
 
-        let ret = Self { name };
+        let mut ret = Self {
+            name,
+            structs: Vec::new(),
+        };
 
         for entry in from_ioerr(dir.read_dir())? {
             let path = from_ioerr(entry)?.path();
             debug!("Reading {:?} to generate outfile={}", path, ret.name);
             let toml_str = from_ioerr(read_to_string(path))?;
             let filedef: InFileDef = toml::from_str(&toml_str).map_err(Error::Toml)?;
+            if let Some(structs) = filedef.structs {
+                ret.structs.extend(structs);
+            }
         }
 
         Ok(ret)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837169.1253132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBuss-0006f4-8L; Fri, 15 Nov 2024 11:53:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837169.1253132; Fri, 15 Nov 2024 11:53: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 1tBuss-0006dJ-3K; Fri, 15 Nov 2024 11:53:06 +0000
Received: by outflank-mailman (input) for mailman id 837169;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusp-0005U9-Mi
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:03 +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 28fe931d-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:52:59 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cacb76e924so2609901a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:52:59 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.52.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:52: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: 28fe931d-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI4ZmU5MzFkLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTc5LjQyMjYzMiwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671579; x=1732276379; 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=V2Il6CAUmeVuteWCfEnG9JUs06lwoYmMwe5e8Dj7YCc=;
        b=TnJgR+D4Tw+R2a7imFKFVITpZu9kX9F5Nrdkr5X7h5eXkqyJ/h8c3jJVnDj/rwaSlh
         gAk4FdruQShsihT/Vbkzju67GhxrGLUP63sX2mHdv6LEh6TCRjtR/3aMf9VJBqjkfobb
         8A9udAcyy7unf+3AVePylU/WBLWJr3FUlTeHM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671579; x=1732276379;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=V2Il6CAUmeVuteWCfEnG9JUs06lwoYmMwe5e8Dj7YCc=;
        b=PYXgOUimvLQdETTEirGB6tEASV8JdWVJp1Mh+FB7Bx2vHk3kDR/MTRTkBJb1VLZ7nW
         o3zIGQekLXUni7Qamrpozrk1v1NI3S/0f2xzBrPO3pMyVwMSDwJn6VeXd8dNVkF4ujFK
         JhFpGHcJc1xtISzOMgbqZ3gMWyMbxOpRyFWrKEZb+ahG34oYpJS6F8PGVAdCNqDItcyq
         JdiXdLHIhFRs4JJidsdQTL3HONllTdqrYqdCpPPO9wIFMcnSVpOdPZWRLWe5eLmQIeou
         qkU1Kyr+wmJOjzMxV5SEw1DjeHxVq5kNRQWoAkLv85yd+9cQclwoKnkDClvS7cugyXtd
         vfuQ==
X-Gm-Message-State: AOJu0Yx5JKOjtv8pCv6HzWTCObFHhh3vtGJSnUerIsmNragYtXP356qr
	kjuWhZJEMZP/xh5O+KSPB68HLP3xoN1n4St4t+A8pCPqDHpOuJM1YafrONhnfG0aa6ZCpouF4cf
	0
X-Google-Smtp-Source: AGHT+IHgVBtkRtwgqIS6cGkk9ANUCp8sGTXtxenWTS6ogrhboiDW8cjjoZmcPndAnMBr+ggU7TCVSA==
X-Received: by 2002:a17:907:7ba7:b0:a99:3318:e7c3 with SMTP id a640c23a62f3a-aa4835286d3mr208013966b.43.1731671578554;
        Fri, 15 Nov 2024 03:52:58 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 04/25] tools/xenbindgen: Add a TOML spec reader
Date: Fri, 15 Nov 2024 11:51:33 +0000
Message-ID: <20241115115200.2824-5-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There isn't any deserialisation yet. It's mere plumbing.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/src/main.rs | 28 ++++++++-
 tools/rust/xenbindgen/src/spec.rs | 96 +++++++++++++++++++++++++++++++
 2 files changed, 121 insertions(+), 3 deletions(-)
 create mode 100644 tools/rust/xenbindgen/src/spec.rs

diff --git a/tools/rust/xenbindgen/src/main.rs b/tools/rust/xenbindgen/src/main.rs
index 08fcf8fe4da6..497cf39d3bbd 100644
--- a/tools/rust/xenbindgen/src/main.rs
+++ b/tools/rust/xenbindgen/src/main.rs
@@ -2,14 +2,22 @@
 //! crafted TOML files. The format of these files follows the following
 //! rules.
 
+mod spec;
+
+use std::path::PathBuf;
+
 use clap::Parser;
 use env_logger::Env;
-use log::info;
+use log::{error, info};
 
 /// A CLI tool to generate struct definitions in several languages.
 #[derive(Parser, Debug)]
 #[command(version, about)]
-struct Cli;
+struct Cli {
+    /// Path to the input directory containing the hypercall specification
+    #[arg(short, long)]
+    indir: PathBuf,
+}
 
 fn main() {
     env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
@@ -17,5 +25,19 @@ fn main() {
     let cli = Cli::parse();
     info!("args: {:?}", cli);
 
-    todo!("read spec files and generate output files");
+    let _specification = match spec::Spec::new(&cli.indir) {
+        Ok(x) => x,
+        Err(spec::Error::Toml(x)) => {
+            error!("TOML parsing error:");
+            error!("{x:#?}");
+            std::process::exit(1);
+        }
+        Err(spec::Error::Io(x)) => {
+            error!("IO error:");
+            error!("{x:#?}");
+            std::process::exit(1);
+        }
+    };
+
+    todo!("generate output files");
 }
diff --git a/tools/rust/xenbindgen/src/spec.rs b/tools/rust/xenbindgen/src/spec.rs
new file mode 100644
index 000000000000..e69f7c78dc7a
--- /dev/null
+++ b/tools/rust/xenbindgen/src/spec.rs
@@ -0,0 +1,96 @@
+//! Specification descriptions
+//!
+//! The TOML files are not parsed by hand. This module provides a sort of
+//! schema for the TOML descriptions, in the sense that `serde` itself ensures
+//! every field is deserialised into its equivalent Rust structure or the
+//! deserialization procedure fails.
+//!
+//! If the specification is clearly invalid (i.e: missing fields) it'll scream
+//! in a rather obvious way.
+//!
+//! A special case is the `typ` field in the specifications is meant to have
+//! the format present in the specifications under `extra`. This allows `serde`
+//! to properly decode the type and match it with a variant of the [`Typ`] type
+//! with the payload landing in the payload of the variant itself.
+
+use std::{fs::read_to_string, path::Path};
+
+use log::{debug, info};
+
+/// A language-agnostic specification.
+#[derive(Debug, serde::Deserialize)]
+struct InFileDef;
+
+/// Description of an abstract output (i.e: `.rs`, `.h`, etc).
+///
+/// Contains every element of the ABI that needs representing.
+#[derive(Debug)]
+pub struct OutFileDef {
+    /// The name of the output file, without the final extension.
+    pub name: String,
+}
+
+impl OutFileDef {
+    /// Creates a new _output_ file description. Each [`OutFileDef`] is
+    /// associated with a number of [`InFileDef`] and holds the merged
+    /// contents described in all of them.
+    ///
+    /// # Errors
+    /// Fails if the TOML is invalid or on IO error.
+    pub fn new(name: String, dir: &Path) -> Result<Self, Error> {
+        info!("Reading {dir:?} to generate an output file");
+
+        let mut ret = Self { name };
+
+        for entry in from_ioerr(dir.read_dir())? {
+            let path = from_ioerr(entry)?.path();
+            debug!("Reading {:?} to generate outfile={}", path, ret.name);
+            let toml_str = from_ioerr(read_to_string(path))?;
+            let filedef: InFileDef = toml::from_str(&toml_str).map_err(Error::Toml)?;
+        }
+
+        Ok(ret)
+    }
+}
+
+/// Internal error type for every error spec parsing could encounter
+#[derive(Debug)]
+pub enum Error {
+    /// Wrapper around IO errors
+    Io(std::io::Error),
+    /// Wrapper around deserialization errors
+    Toml(toml::de::Error),
+}
+
+/// Maps an [`std::io::Error`] onto a [`Error`] type for easier propagation
+fn from_ioerr<T>(t: std::io::Result<T>) -> Result<T, Error> {
+    t.map_err(Error::Io)
+}
+
+/// Object containing the abstract definitions of all output files.
+///
+/// See [`OutFileDef`] to details on the specification contents of each output.
+#[derive(Debug)]
+pub struct Spec(pub Vec<OutFileDef>);
+
+impl Spec {
+    /// Creates a new abstract specification from a top-level directory full
+    /// of specification files. This is used later to aggregate all the content
+    /// and generate the appropriate language outputs.
+    ///
+    /// # Errors
+    /// Fails on IO errors.
+    pub fn new(root: &Path) -> Result<Self, Error> {
+        info!("Reading {root:?} as top-level directory");
+
+        let mut ret = Self(Vec::new());
+        for outfile in from_ioerr(root.read_dir())? {
+            // Each folder in the root defines a single output file
+            let outfile = from_ioerr(outfile)?;
+            let name = outfile.file_name().to_string_lossy().to_string();
+            ret.0.push(OutFileDef::new(name, &outfile.path())?);
+        }
+
+        Ok(ret)
+    }
+}
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837171.1253143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBust-0006ta-CU; Fri, 15 Nov 2024 11:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837171.1253143; Fri, 15 Nov 2024 11:53: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 1tBust-0006sH-2R; Fri, 15 Nov 2024 11:53:07 +0000
Received: by outflank-mailman (input) for mailman id 837171;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusr-0005U9-DN
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:05 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a3d14b8-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:01 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-53da353eb2eso3085011e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:01 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.52.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2a3d14b8-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzEiLCJoZWxvIjoibWFpbC1sZjEteDEzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJhM2QxNGI4LWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTgxLjQ4MDI0Nywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671581; x=1732276381; 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=RtuVAWckySgEwBT7Q2jJXTvvBEFN4qBzWjX18KhTOXI=;
        b=lCNFOZYgR37FTqluRO7rq+/nzQ1V1196yI3DSqgeCKz0hNcRpx4hPrBT5yuj0GyDi1
         zZhD6pFWuGrAtPty2mmzmyIPy3sLjn0wree3q+rr75hUJ2dKC+uVQuHnLy/nG5AHhX5D
         YhPTzhrroW5DX89nwT1K6GOAhsbEzAbhkgvnM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671581; x=1732276381;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=RtuVAWckySgEwBT7Q2jJXTvvBEFN4qBzWjX18KhTOXI=;
        b=BjctP7itKH4OXzP/V94kLz0EgpZfQlaSvJP4uI9a3mfQGDedCEkJlF+HQ6VETU/r2j
         2elZh617njmd5eDQ4t64BlK2cPgNWs9J5MxePpTAjSj5u9CqQzRui8oqwSj7WmOAtjz/
         Gp5PTLYPUeJFOQpvjNHZ3J7/GLbvGTSNCN112Dk6b+dZGcIMPsTWB+dW5KlrXqIn8P7y
         f6vlNE0l6ySjLRHvlT+H42MpOuCNlo3rCZ2ehE1Skxq2DBJgwlmH0WZCYZoE2ou095FD
         b+bush8vWRbFurL76Ahg5Nl2u+Dp8+R3c0anbF96ExAgrQjS4q9Y2mZ4d5vQ2fIzV9CM
         unOA==
X-Gm-Message-State: AOJu0YwkGZNfZhQEnS2mI7MNYWBnf4Jp9HfcE/R1FCstSI938ykn15As
	y7gjXTcKD3yHi1PGNYZXLneqTgniadnc7nzHo/i/N44B2TOHJEtqcU4sXwVdpj4QcFqZeyf45uW
	T
X-Google-Smtp-Source: AGHT+IFXW/E/Eudkb+RU8nreFxGzgMBtYX278zPiqlB0W34hCbY+VbAJKjG3v6x+rUfwxSmp0xwQIg==
X-Received: by 2002:a05:6512:2820:b0:53b:154c:f75d with SMTP id 2adb3069b0e04-53dab2a9e83mr1829785e87.31.1731671580458;
        Fri, 15 Nov 2024 03:53:00 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 06/25] tools/xenbindgen: Add xenbindgen's Cargo.lock file
Date: Fri, 15 Nov 2024 11:51:35 +0000
Message-ID: <20241115115200.2824-7-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Libraries mustn't have lock files, but binaries do. Add the lockfile
with all dependencies of xenbindgen.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/Cargo.lock | 430 +++++++++++++++++++++++++++++++
 1 file changed, 430 insertions(+)
 create mode 100644 tools/rust/xenbindgen/Cargo.lock

diff --git a/tools/rust/xenbindgen/Cargo.lock b/tools/rust/xenbindgen/Cargo.lock
new file mode 100644
index 000000000000..2c20c4ae8598
--- /dev/null
+++ b/tools/rust/xenbindgen/Cargo.lock
@@ -0,0 +1,430 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
+dependencies = [
+ "anstyle",
+ "windows-sys",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
+
+[[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.11.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "hashbrown"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "indexmap"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "is_terminal_polyfill"
+version = "1.70.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
+
+[[package]]
+name = "log"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+
+[[package]]
+name = "memchr"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "regex"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+
+[[package]]
+name = "serde"
+version = "1.0.215"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.215"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "syn"
+version = "2.0.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+[[package]]
+name = "winnow"
+version = "0.6.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "xenbindgen"
+version = "0.2.0"
+dependencies = [
+ "clap",
+ "convert_case",
+ "env_logger",
+ "log",
+ "serde",
+ "toml",
+]
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837172.1253158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusv-0007NW-2A; Fri, 15 Nov 2024 11:53:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837172.1253158; Fri, 15 Nov 2024 11:53: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 1tBusu-0007Le-R8; Fri, 15 Nov 2024 11:53:08 +0000
Received: by outflank-mailman (input) for mailman id 837172;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBust-0005U9-0Z
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:07 +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 2b58546f-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:03 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5cf92052dccso678254a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:03 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2b58546f-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJiNTg1NDZmLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTgzLjM2NDIxNiwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671582; x=1732276382; 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=MUgtaKrT3gy7aHkmDb2vFmH4giHOPfcM9Tol6GmTY3s=;
        b=O3N9hDacTbg0HzuIR4/Gy1gOlKT6qyF6HJzUs+7t7vzOp3zuk1f27xd4Hz7fflRQRX
         bYsu/sA7jpuu9OObtQWmlo0Kmn+5TAd3VA5M5Gun8x/bvEu/bgCzn7tEJWaOotIKC2ZS
         Kb7kVfrMy4L+2ghqlj6x1Zcd88iuUFsz2MQAc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671582; x=1732276382;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MUgtaKrT3gy7aHkmDb2vFmH4giHOPfcM9Tol6GmTY3s=;
        b=pcImA0Q4avmzQMt/mXfCZEm3GJzmX5DMiV+FKGq3RAynrmFRRWuP5im0qO+OTUsi7X
         kyfUEQH8j+8IZvR1l4Xn+5m4Df2TDPcWx+aJvE/RX/UvPGjsE9aruYCPPF3puOjUc5Qy
         sT281Ip57+Dxgw+jRyZk0Bl/FpMJ7ZiAXhafjpZhb49ES9j9v9XepLNPRHFIuvnx6Qur
         d4dZpfkO2nxnU5/f8CMME5TVsCfxOrSmFDeDHGRVqmF1fuoekNnWeBOxiDa6ZYBnTMu0
         Fy5TisvjwgaUb8hMj6vrmOXyti8W/ZCy//CYE8dSHGOlik/oacDPd2bT2R2ARv4e0xK1
         xirw==
X-Gm-Message-State: AOJu0YwA5niI2buAXFG/q4ywRlmzSgGIea+hgHBczK7Xai+7sMpyN5Mi
	VjIF5dtBO51NwGarixvcEeBTWZMHUdUlI7dXcMVx0v+XJDSNt761mP7xwv+3HvFQg6K6dHjt507
	M
X-Google-Smtp-Source: AGHT+IG9VPnK6lcDqiT+pRatAYmBM3rUx+M/OAGFEqSWL7erFc5SiLGVGbOYZXO4M5kqQUBr7Kg/4A==
X-Received: by 2002:a17:907:2ce6:b0:a9a:1a6a:b5f5 with SMTP id a640c23a62f3a-aa48354e251mr219367066b.56.1731671582438;
        Fri, 15 Nov 2024 03:53:02 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 08/25] tools/xenbindgen: Add support for enums in TOML specs
Date: Fri, 15 Nov 2024 11:51:37 +0000
Message-ID: <20241115115200.2824-9-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/src/c_lang.rs | 57 +++++++++++++++++++++++++----
 tools/rust/xenbindgen/src/spec.rs   | 45 +++++++++++++++++++++++
 2 files changed, 95 insertions(+), 7 deletions(-)

diff --git a/tools/rust/xenbindgen/src/c_lang.rs b/tools/rust/xenbindgen/src/c_lang.rs
index 597e0ed41362..f15feca8df91 100644
--- a/tools/rust/xenbindgen/src/c_lang.rs
+++ b/tools/rust/xenbindgen/src/c_lang.rs
@@ -17,10 +17,10 @@
 
 use std::fmt::Write;
 
-use crate::spec::{OutFileDef, StructDef, Typ};
+use crate::spec::{EnumDef, OutFileDef, StructDef, Typ};
 
 use convert_case::{Case, Casing};
-use log::{debug, trace};
+use log::{debug, error, trace};
 
 /// An abstract indentation level. 0 is no indentation, 1 is [`INDENT_WIDTH`]
 /// and so on.
@@ -31,7 +31,7 @@ struct Indentation(usize);
 const INDENT_WIDTH: usize = 4;
 
 /// Create a C-compatible struct field. Without the terminating semicolon.
-fn structfield(typ: &Typ, name: &str) -> String {
+fn structfield(filedef: &OutFileDef, typ: &Typ, name: &str) -> String {
     match typ {
         Typ::Ptr(x) => {
             let t: &Typ = x;
@@ -51,7 +51,20 @@ fn structfield(typ: &Typ, name: &str) -> String {
             )
         }
         Typ::Struct(x) => format!("struct {x} {name}"),
-        Typ::Array(x, len) => format!("{}{name}[{len}]", structfield(x, "")),
+        Typ::Enum(x) => {
+            // C can't use an enum as a field and fix its width. Look for its
+            // underlying layout and use that type instead.
+            let Some(e) = filedef.enums.iter().find(|y| *x == y.name) else {
+                error!("Can't find enum {x}. Typo?");
+                std::process::exit(1);
+            };
+            format!(
+                "{} /* See {} */",
+                structfield(filedef, &e.typ, name),
+                e.name
+            )
+        }
+        Typ::Array(x, len) => format!("{}{name}[{len}]", structfield(filedef, x, "")),
         Typ::U8 => format!("uint8_t {name}"),
         Typ::U16 => format!("uint16_t {name}"),
         Typ::U32 => format!("uint32_t {name}"),
@@ -83,7 +96,7 @@ fn comment(out: &mut String, comment: &str, ind: Indentation) {
 }
 
 /// Write a C-compatible struct onto `out`
-fn structgen(out: &mut String, def: &StructDef) {
+fn structgen(out: &mut String, filedef: &OutFileDef, def: &StructDef) {
     debug!("struct {}", def.name);
 
     comment(out, &def.description, Indentation(0));
@@ -92,7 +105,33 @@ fn structgen(out: &mut String, def: &StructDef) {
         trace!("  field {} type={:?}", f.name, f.typ);
 
         comment(out, &f.description, Indentation(1));
-        writeln!(out, "    {};", structfield(&f.typ, &f.name),).unwrap();
+        writeln!(out, "    {};", structfield(filedef, &f.typ, &f.name),).unwrap();
+    }
+    writeln!(out, "}};").unwrap();
+    writeln!(out).unwrap();
+}
+
+/// Write a C-compatible enum onto `out`
+///
+/// This is a generator for the enum _type_, not an instantiation of a bitmap
+/// in a struct field. Use [`structfield`] for that.
+fn enumgen(out: &mut String, def: &EnumDef) {
+    debug!("enum {}", def.name);
+
+    comment(out, &def.description, Indentation(0));
+    writeln!(out, "enum {} {{", def.name).unwrap();
+    for f in &def.variants {
+        trace!("  variant {}={}", f.name, f.value);
+
+        comment(out, &f.description, Indentation(1));
+        writeln!(
+            out,
+            "    {}_{} = {},",
+            def.name.from_case(Case::Snake).to_case(Case::UpperSnake),
+            f.name.from_case(Case::Snake).to_case(Case::UpperSnake),
+            f.value
+        )
+        .unwrap();
     }
     writeln!(out, "}};").unwrap();
     writeln!(out).unwrap();
@@ -117,8 +156,12 @@ pub fn parse(filedef: &OutFileDef) -> String {
     writeln!(out, "#ifndef __XEN_AUTOGEN_{name}_H").unwrap();
     writeln!(out, "#define __XEN_AUTOGEN_{name}_H\n").unwrap();
 
+    for def in &filedef.enums {
+        enumgen(&mut out, def);
+    }
+
     for def in &filedef.structs {
-        structgen(&mut out, def);
+        structgen(&mut out, filedef, def);
     }
 
     writeln!(out, "#endif /* __XEN_AUTOGEN_{name}_H */\n").unwrap();
diff --git a/tools/rust/xenbindgen/src/spec.rs b/tools/rust/xenbindgen/src/spec.rs
index e183378329ad..f6cfedad2150 100644
--- a/tools/rust/xenbindgen/src/spec.rs
+++ b/tools/rust/xenbindgen/src/spec.rs
@@ -28,6 +28,7 @@ use log::{debug, info};
 #[derive(Debug, serde::Deserialize, PartialEq)]
 #[serde(rename_all = "lowercase", tag = "tag", content = "args")]
 pub enum Typ {
+    Enum(String),
     Struct(String),
     U8,
     U16,
@@ -66,11 +67,47 @@ pub struct FieldDef {
     pub typ: Typ,
 }
 
+/// Description of a lang-agnostic enumerated type.
+#[derive(Debug, serde::Deserialize)]
+pub struct EnumDef {
+    /// snake-cased name of this enumeration.
+    ///
+    /// Must be converted to whatever is idiomatic in the target language.
+    pub name: String,
+    /// Description of what the type is for.
+    ///
+    /// Must be turned into documentation in the autogenerated file.
+    pub description: String,
+    /// Width of the type given as an equivalent primitive unsigned integer
+    /// of the same width.
+    pub typ: Typ,
+    /// List of variants present in this enum.
+    ///
+    /// The backend must export all of these under the same namespace if
+    /// possible.
+    pub variants: Vec<VariantDef>,
+}
+
+/// A lang-agnostic description of a single variant of an enumerated type.
+#[derive(Debug, serde::Deserialize)]
+pub struct VariantDef {
+    /// Name of this variant. Depending on the backend, the name might be
+    /// prefixed by the name of its type (as is commonly done in C).
+    pub name: String,
+    /// Meaning of this variant in the context of its type.
+    pub description: String,
+    /// Actual value associated with this variant. Must be explicit to enable
+    /// deprecation of variants.
+    pub value: u64,
+}
+
 /// A language-agnostic specification.
 #[derive(Debug, serde::Deserialize)]
 struct InFileDef {
     /// List of structs described in this input specification.
     structs: Option<Vec<StructDef>>,
+    /// List of lang-agnostic enumerated descriptions.
+    enums: Option<Vec<EnumDef>>,
 }
 
 /// Description of an abstract output (i.e: `.rs`, `.h`, etc).
@@ -82,6 +119,10 @@ pub struct OutFileDef {
     pub name: String,
     /// List of structs described by all input spec files merged on this file.
     pub structs: Vec<StructDef>,
+    /// List of enumerated descriptions.
+    ///
+    /// Implementation is lang-specific.
+    pub enums: Vec<EnumDef>,
 }
 
 impl OutFileDef {
@@ -97,6 +138,7 @@ impl OutFileDef {
         let mut ret = Self {
             name,
             structs: Vec::new(),
+            enums: Vec::new(),
         };
 
         for entry in from_ioerr(dir.read_dir())? {
@@ -107,6 +149,9 @@ impl OutFileDef {
             if let Some(structs) = filedef.structs {
                 ret.structs.extend(structs);
             }
+            if let Some(enums) = filedef.enums {
+                ret.enums.extend(enums);
+            }
         }
 
         Ok(ret)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837173.1253169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusw-0007jC-8s; Fri, 15 Nov 2024 11:53:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837173.1253169; Fri, 15 Nov 2024 11:53: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 1tBusw-0007ia-3N; Fri, 15 Nov 2024 11:53:10 +0000
Received: by outflank-mailman (input) for mailman id 837173;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusu-0005UF-1x
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:08 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ca2dcb8-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:05 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-53b13ea6b78so2731475e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:05 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2ca2dcb8-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJjYTJkY2I4LWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTg1LjUzODAwNCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671585; x=1732276385; 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=4UVXJgy4IHwj4NwXexnbXM0jpHKa0ukLk9RTwQ1hG1I=;
        b=chfRZVlR38IjXdJcCLnlN5v5M8/A3TNgscAUsZQDAZQjcOYf7slZ5bkSvm7ZDB/Q+G
         +e7RGUS7Xb+f2+NFU7+1dpbszqBk/c2U659T6Kom4zK34GSM/bi17ZavaTStK8HrnCuA
         scA4WINPJEX+s7Tfpwu7enufidzhxt/HZzlXs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671585; x=1732276385;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4UVXJgy4IHwj4NwXexnbXM0jpHKa0ukLk9RTwQ1hG1I=;
        b=tlsZMo5wA/Nyc1Iu0fvec4GmE2Ip6yxQzIQ8AOUpcu7wi/g3P/YMP8Cz1HrZYFN8w4
         omZ14h76zZHUv7CrakKbOwKGjbcwQ3+B+Vxj0zEbA9nFQhtjnerdvcYLBQc2SutufMWX
         xU2zt2cuUiPhf8DJHiY7b1wN91PfvrBx6YQXDPzjROr13sXFNHzVn4SuauolMJN1udGc
         SNxHJRXvPjnUaPmNECe7qIpWkIGXDJh6/yIdfc8WywpZNrfakFrf6sk5WgQHmXNEM1Wc
         wSnv7YhRtS0ApJbLFKwepKH6SUEGOmwLTXMigqK0dwBmOM/kyRmvRatSLz11QDuGQga4
         qe0g==
X-Gm-Message-State: AOJu0Ywvpk1MRhZ+pzI9qPn3X+mB5pozO1TpVNseukfD8W/N/xyfTTGZ
	jmuTZO5xRkUYw0+lH3ZEpEzJyXUz5503mCRdChaM/7hLZz8j4OHF+cxd8/u5HfmPL2Ap5fE5xWw
	3
X-Google-Smtp-Source: AGHT+IHB6/A5vaCAqemK1HkjKE8fNgzdfB6BTygGqlZqFndf7w6R/839QxxCcp8cFQ89KFP8D28cVA==
X-Received: by 2002:a05:6512:224b:b0:53d:a16e:3684 with SMTP id 2adb3069b0e04-53dab3b16ebmr1877359e87.41.1731671583351;
        Fri, 15 Nov 2024 03:53:03 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 09/25] tools/xenbindgen: Add support for bitmaps in TOML specs
Date: Fri, 15 Nov 2024 11:51:38 +0000
Message-ID: <20241115115200.2824-10-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/src/c_lang.rs | 62 ++++++++++++++++++++++++++++-
 tools/rust/xenbindgen/src/spec.rs   | 51 ++++++++++++++++++++++--
 2 files changed, 108 insertions(+), 5 deletions(-)

diff --git a/tools/rust/xenbindgen/src/c_lang.rs b/tools/rust/xenbindgen/src/c_lang.rs
index f15feca8df91..bba310233e60 100644
--- a/tools/rust/xenbindgen/src/c_lang.rs
+++ b/tools/rust/xenbindgen/src/c_lang.rs
@@ -17,7 +17,7 @@
 
 use std::fmt::Write;
 
-use crate::spec::{EnumDef, OutFileDef, StructDef, Typ};
+use crate::spec::{BitmapDef, EnumDef, OutFileDef, StructDef, Typ};
 
 use convert_case::{Case, Casing};
 use log::{debug, error, trace};
@@ -51,6 +51,20 @@ fn structfield(filedef: &OutFileDef, typ: &Typ, name: &str) -> String {
             )
         }
         Typ::Struct(x) => format!("struct {x} {name}"),
+        Typ::Bitmap(x) => {
+            // Dealing with bitfields at the ABI boundary is a
+            // pain, so we just use the underlying type instead.
+            let Some(e) = filedef.bitmaps.iter().find(|y| *x == y.name) else {
+                error!("Can't find bitmap {x}. Typo?");
+                trace!("{filedef:#?}");
+                std::process::exit(1);
+            };
+            format!(
+                "{} /* See {} */",
+                structfield(filedef, &e.typ, name),
+                e.name
+            )
+        }
         Typ::Enum(x) => {
             // C can't use an enum as a field and fix its width. Look for its
             // underlying layout and use that type instead.
@@ -137,6 +151,48 @@ fn enumgen(out: &mut String, def: &EnumDef) {
     writeln!(out).unwrap();
 }
 
+/// Write a C-compatible enum onto `out`
+fn bitmapgen(out: &mut String, def: &BitmapDef) {
+    debug!("bitmap {}", def.name);
+
+    comment(out, &def.description, Indentation(0));
+    writeln!(out, "struct {} {{}}; /* GREP FODDER */", def.name).unwrap();
+
+    let mut mask = 0;
+    for f in &def.bits {
+        trace!("  shift {}={}", f.name, f.shift);
+
+        if (1 << f.shift) & mask != 0 {
+            error!("Bad shift({}) on {}. Shadows another bit.", f.shift, f.name);
+            std::process::exit(1);
+        }
+
+        mask |= 1 << f.shift;
+
+        comment(out, &f.description, Indentation(0));
+        writeln!(
+            out,
+            "#define {}_{} (1U{} << {})",
+            def.name.from_case(Case::Snake).to_case(Case::UpperSnake),
+            f.name.from_case(Case::Snake).to_case(Case::UpperSnake),
+            if def.typ == Typ::U64 { "LL" } else { "" },
+            f.shift
+        )
+        .unwrap();
+    }
+
+    comment(out, "Mask covering all defined bits", Indentation(0));
+    writeln!(
+        out,
+        "#define {}__ALL ({:#X}U{})",
+        def.name.from_case(Case::Snake).to_case(Case::UpperSnake),
+        mask,
+        if def.typ == Typ::U64 { "LL" } else { "" },
+    )
+    .unwrap();
+    writeln!(out).unwrap();
+}
+
 /// Generates a single `.h` file.
 ///
 /// `filedef` is a language-agnostic high level description of what the output
@@ -160,6 +216,10 @@ pub fn parse(filedef: &OutFileDef) -> String {
         enumgen(&mut out, def);
     }
 
+    for def in &filedef.bitmaps {
+        bitmapgen(&mut out, def);
+    }
+
     for def in &filedef.structs {
         structgen(&mut out, filedef, def);
     }
diff --git a/tools/rust/xenbindgen/src/spec.rs b/tools/rust/xenbindgen/src/spec.rs
index f6cfedad2150..4a9c5e7d028b 100644
--- a/tools/rust/xenbindgen/src/spec.rs
+++ b/tools/rust/xenbindgen/src/spec.rs
@@ -28,6 +28,7 @@ use log::{debug, info};
 #[derive(Debug, serde::Deserialize, PartialEq)]
 #[serde(rename_all = "lowercase", tag = "tag", content = "args")]
 pub enum Typ {
+    Bitmap(String),
     Enum(String),
     Struct(String),
     U8,
@@ -72,7 +73,7 @@ pub struct FieldDef {
 pub struct EnumDef {
     /// snake-cased name of this enumeration.
     ///
-    /// Must be converted to whatever is idiomatic in the target language.
+    /// Must be converted to idiomatic casing in the target language.
     pub name: String,
     /// Description of what the type is for.
     ///
@@ -88,11 +89,43 @@ pub struct EnumDef {
     pub variants: Vec<VariantDef>,
 }
 
-/// A lang-agnostic description of a single variant of an enumerated type.
+/// Lang-agnostic description of a bitmap type.
+#[derive(Debug, serde::Deserialize)]
+pub struct BitmapDef {
+    /// Snake-cased name of this bitmap.
+    ///
+    /// Must be converted to idiomatic casing in the target language.
+    pub name: String,
+    /// Description of what the type is for.
+    ///
+    /// Must be turned into documentation in the autogenerated file.
+    pub description: String,
+    /// Width of the type given as an equivalent primitive unsigned integer
+    /// of the same width.
+    pub typ: Typ,
+    /// List of bits in the bitmap with a described meaning. All other bits are
+    /// reserved to zero.
+    pub bits: Vec<BitDef>,
+}
+
+/// Lang-agnostic description of a single bit within a particular bitmap type.
+#[derive(Debug, serde::Deserialize)]
+pub struct BitDef {
+    /// Snake-cased name of this bit. Depending on the backend, the name
+    /// might be prefixed by the name of its type (as is commonly done in C).
+    pub name: String,
+    /// Meaning of this bit in the context of its type.
+    pub description: String,
+    /// Position of the bit in the underlying type, following a little-endian
+    /// convention.
+    pub shift: u8,
+}
+
+/// Lang-agnostic description of a single variant of an enumerated type.
 #[derive(Debug, serde::Deserialize)]
 pub struct VariantDef {
-    /// Name of this variant. Depending on the backend, the name might be
-    /// prefixed by the name of its type (as is commonly done in C).
+    /// Snake-cased name of this variant. Depending on the backend, the name
+    /// might be prefixed by the name of its type (as is commonly done in C).
     pub name: String,
     /// Meaning of this variant in the context of its type.
     pub description: String,
@@ -108,6 +141,8 @@ struct InFileDef {
     structs: Option<Vec<StructDef>>,
     /// List of lang-agnostic enumerated descriptions.
     enums: Option<Vec<EnumDef>>,
+    /// List of lang-agnostic bitmap descriptions.
+    bitmaps: Option<Vec<BitmapDef>>,
 }
 
 /// Description of an abstract output (i.e: `.rs`, `.h`, etc).
@@ -123,6 +158,10 @@ pub struct OutFileDef {
     ///
     /// Implementation is lang-specific.
     pub enums: Vec<EnumDef>,
+    /// List of bitmap descriptions.
+    ///
+    /// Implementation is lang-specific.
+    pub bitmaps: Vec<BitmapDef>,
 }
 
 impl OutFileDef {
@@ -139,6 +178,7 @@ impl OutFileDef {
             name,
             structs: Vec::new(),
             enums: Vec::new(),
+            bitmaps: Vec::new(),
         };
 
         for entry in from_ioerr(dir.read_dir())? {
@@ -152,6 +192,9 @@ impl OutFileDef {
             if let Some(enums) = filedef.enums {
                 ret.enums.extend(enums);
             }
+            if let Some(bitmaps) = filedef.bitmaps {
+                ret.bitmaps.extend(bitmaps);
+            }
         }
 
         Ok(ret)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837176.1253174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusw-0007ng-Rg; Fri, 15 Nov 2024 11:53:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837176.1253174; Fri, 15 Nov 2024 11:53: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 1tBusw-0007lq-Ey; Fri, 15 Nov 2024 11:53:10 +0000
Received: by outflank-mailman (input) for mailman id 837176;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusu-0005U9-Cr
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:08 +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 2c704f42-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:05 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-a9ed0ec0e92so219687566b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:05 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2c704f42-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJjNzA0ZjQyLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTg1LjIxODUzNywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671584; x=1732276384; 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=tbzbnGY5b9VCsBtIJf+XEboWM0m6rBzXP5FkkZe8vV8=;
        b=aymRs0YGOTds2TOl2MBBQXJgpWqyzn4AZLSvz1r/XTEiCZKS2mxm5NwQ3b2GP/r4eZ
         g24oHlGD+6pV2Ogaq8t8zBq06+RaxEQoGARk8T252NAI03vg41ghH59ZnSXg+/2DWFiD
         RTu585d1F7aBc1pewEv1wNFUJCKObTM3GgKGI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671584; x=1732276384;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tbzbnGY5b9VCsBtIJf+XEboWM0m6rBzXP5FkkZe8vV8=;
        b=g5VuXjssj77uQOxWBnFfm/tywt7rW4UR4xSRkExp95TAGeyZGATo26Lrkr28K3SKE/
         ep8Ukj7EkHvzNaOrPodBTX4C2YPG6wCorO3/3bEre2xYHQyQ0faT+mG/lPP0Q1M7qht0
         GeIZxdQxT9Sq+dYzDyzKP9d60RR50x0MyBx+fispyDff+5KziQEK27UvVauwu5YPgkwP
         qrdwDQ/zH6T+HzISh6yUJMhqdSeDlWyUESebOkGdxYABV0+5zXPVZFfYrHckuHq69KzR
         UUICCJ9fR0C7Lq/SdFo3RA0ae7+QnuX4bfQsTLO1yEmqBUoRBLiFN+j0KwotXeVgPY5+
         79Lg==
X-Gm-Message-State: AOJu0YyMnjaZK3l9I6WQ/aFHS1MTgyA//pEHl18AmgvmcWavyZcPu4rB
	mXLqLfYlDMmnant8W62jPwF4VFSMBkJR7X4MCvVOEooh+gotDSNHvkcUEpen67vMFaxnXd4I7wL
	4
X-Google-Smtp-Source: AGHT+IEoZKaaro2gVDw6s0jZEmgVgGc0g3JA1rEf4FQjZi9vMd9pDARUKg2VgqJPwwuPjdnSUjNYjg==
X-Received: by 2002:a17:907:701:b0:a9e:b471:8308 with SMTP id a640c23a62f3a-aa4835523d4mr198218066b.49.1731671584278;
        Fri, 15 Nov 2024 03:53:04 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 10/25] tools/xenbindgen: Add support for includes in the TOML specs
Date: Fri, 15 Nov 2024 11:51:39 +0000
Message-ID: <20241115115200.2824-11-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Adds include-like semantics to the TOML files. Note that "arch" is
special to allow (a) generating all arch-specific files in one go and
(b) demultiplex appropriately.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/src/c_lang.rs | 39 ++++++++++++++++++++++++++++-
 tools/rust/xenbindgen/src/spec.rs   | 24 ++++++++++++++++++
 2 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/tools/rust/xenbindgen/src/c_lang.rs b/tools/rust/xenbindgen/src/c_lang.rs
index bba310233e60..be6be3756dc0 100644
--- a/tools/rust/xenbindgen/src/c_lang.rs
+++ b/tools/rust/xenbindgen/src/c_lang.rs
@@ -17,7 +17,7 @@
 
 use std::fmt::Write;
 
-use crate::spec::{BitmapDef, EnumDef, OutFileDef, StructDef, Typ};
+use crate::spec::{BitmapDef, EnumDef, IncludeDef, OutFileDef, StructDef, Typ};
 
 use convert_case::{Case, Casing};
 use log::{debug, error, trace};
@@ -109,6 +109,39 @@ fn comment(out: &mut String, comment: &str, ind: Indentation) {
     }
 }
 
+/// Adds specified `includes`. `arch` must be treated specially in order to
+/// demultiplex the target architecture.
+///
+/// The reason for the inclusion must be printed as a comment on top of the
+/// `include` itself.
+fn includegen(out: &mut String, def: &IncludeDef) {
+    if !def.imports.is_empty() {
+        comment(
+            out,
+            &format!("for {}", def.imports.join(",\n    ")),
+            Indentation(0),
+        );
+    }
+
+    if def.from == "arch" {
+        writeln!(out, "#if defined(__i386__) || defined(__x86_64__)").unwrap();
+        writeln!(out, "#include \"arch_x86.h\"").unwrap();
+        writeln!(out, "#elif defined(__arm__) || defined(__aarch64__)").unwrap();
+        writeln!(out, "#include \"arch_arm.h\"").unwrap();
+        writeln!(out, "#elif defined(__powerpc64__)").unwrap();
+        writeln!(out, "#include \"arch_ppc.h\"").unwrap();
+        writeln!(out, "#elif defined(__riscv)").unwrap();
+        writeln!(out, "#include \"arch_riscv.h\"").unwrap();
+        writeln!(out, "#else").unwrap();
+        writeln!(out, "#error \"Unsupported architecture\"").unwrap();
+        writeln!(out, "#endif").unwrap();
+    } else {
+        writeln!(out, "#include \"{}.h\"", def.from).unwrap();
+    }
+
+    writeln!(out).unwrap();
+}
+
 /// Write a C-compatible struct onto `out`
 fn structgen(out: &mut String, filedef: &OutFileDef, def: &StructDef) {
     debug!("struct {}", def.name);
@@ -212,6 +245,10 @@ pub fn parse(filedef: &OutFileDef) -> String {
     writeln!(out, "#ifndef __XEN_AUTOGEN_{name}_H").unwrap();
     writeln!(out, "#define __XEN_AUTOGEN_{name}_H\n").unwrap();
 
+    for def in &filedef.includes {
+        includegen(&mut out, def);
+    }
+
     for def in &filedef.enums {
         enumgen(&mut out, def);
     }
diff --git a/tools/rust/xenbindgen/src/spec.rs b/tools/rust/xenbindgen/src/spec.rs
index 4a9c5e7d028b..04be05187ac8 100644
--- a/tools/rust/xenbindgen/src/spec.rs
+++ b/tools/rust/xenbindgen/src/spec.rs
@@ -134,9 +134,24 @@ pub struct VariantDef {
     pub value: u64,
 }
 
+/// Dependency links between files.
+///
+/// Used in specifications to state a number of types (described in `imports`)
+/// is needed from another generated file (the `from` field).
+#[derive(Debug, serde::Deserialize)]
+pub struct IncludeDef {
+    /// Name of the [`InFileDef`] that contains the imported tokens of
+    /// `imports`.
+    pub from: String,
+    /// List of tokens used in this spec file that exist in `from`.
+    pub imports: Vec<String>,
+}
+
 /// A language-agnostic specification.
 #[derive(Debug, serde::Deserialize)]
 struct InFileDef {
+    /// List of types described in other [`InFileDef`] that are required here.
+    includes: Option<Vec<IncludeDef>>,
     /// List of structs described in this input specification.
     structs: Option<Vec<StructDef>>,
     /// List of lang-agnostic enumerated descriptions.
@@ -152,7 +167,12 @@ struct InFileDef {
 pub struct OutFileDef {
     /// The name of the output file, without the final extension.
     pub name: String,
+    /// Represents the dependencies between various [`OutFileDef`]. A language
+    /// backend is free to ignore these if they are not required.
+    pub includes: Vec<IncludeDef>,
     /// List of structs described by all input spec files merged on this file.
+    ///
+    /// Implementation is lang-specific.
     pub structs: Vec<StructDef>,
     /// List of enumerated descriptions.
     ///
@@ -176,6 +196,7 @@ impl OutFileDef {
 
         let mut ret = Self {
             name,
+            includes: Vec::new(),
             structs: Vec::new(),
             enums: Vec::new(),
             bitmaps: Vec::new(),
@@ -195,6 +216,9 @@ impl OutFileDef {
             if let Some(bitmaps) = filedef.bitmaps {
                 ret.bitmaps.extend(bitmaps);
             }
+            if let Some(includes) = filedef.includes {
+                ret.includes.extend(includes);
+            }
         }
 
         Ok(ret)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837178.1253181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusx-0007zK-MB; Fri, 15 Nov 2024 11:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837178.1253181; Fri, 15 Nov 2024 11:53: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 1tBusx-0007xN-89; Fri, 15 Nov 2024 11:53:11 +0000
Received: by outflank-mailman (input) for mailman id 837178;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusv-0005UF-SM
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:09 +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 2d7aaf4e-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:06 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso325337866b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:06 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2d7aaf4e-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJkN2FhZjRlLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTg2Ljk0NjI0NCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671586; x=1732276386; 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=ptbAWv8IG3SuQFQX+roZZIviyToXBTNl2Q3I+8WN9Ug=;
        b=baw161JlfF0ltJZE/lT56q2pt4gHFiaU3yurlW10MDevxr8hG+SSzJB+YdZ42hpxw9
         6hSZccREZX7PnIKPEe+Fzw6d1tyRA0wrb0tIMtlqDZ4BNA/myEPqZPoF4gi8SzVXGkj7
         CDz909TFTj8JJM0fDzHocRVx86B1gVL6AZmC4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671586; x=1732276386;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ptbAWv8IG3SuQFQX+roZZIviyToXBTNl2Q3I+8WN9Ug=;
        b=AUZjqQWRiolp3pCjgbm50vXW0rGXG/M76lgLNoUZz2Ccm61EGWqrMmCROlW72UrGsv
         whlrCRwJXs/r8PYpk/Uvdo0U2hnRamIorFt0+4uuM75Ku7Ej2/qiFN7ss20a5mOVog/A
         a/1iBdg7KMY+r3DUHgNoIpS+sEs+lMaLLENYDvK97Bs7DfflqPlfyPWlZtlmGfzf+M7U
         9jVSbt/oCxG+JWkMZHOD9wKKMbA/Rptta5cNzAKBpVFxI07ONHaJ912C15vIUQX76Jcf
         4A4uIQsQyKw1A+txgbn2WLXPjMhl6AIRGKXfOLu0kKNS7nB/7yJTe7mJ0K93T88jNUFv
         Gg7Q==
X-Gm-Message-State: AOJu0Yxan113BOVmW7xHjVmjZUbQ5DndxGF6KqAcZZxhP0xSfIQYscql
	Q8nVxtY4vWK0PAMKy3QuBYDZXcGdHV1ujlUlzy8DBkSHnanH7D33mIBXMpM4+S0mBQVKHBJfGLU
	b
X-Google-Smtp-Source: AGHT+IGs3y1VylX4ofg5+Jz93V/2UMvPpjfx2K5HgMK8nCx+jEuXZKRamTimND23HKB2YnFYWIl/kw==
X-Received: by 2002:a17:907:1c85:b0:a9e:d7e3:cced with SMTP id a640c23a62f3a-aa48352767dmr198068066b.45.1731671585853;
        Fri, 15 Nov 2024 03:53:05 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>
Subject: [RFC PATCH 11/25] tools/xenbindgen: Validate ABI rules at generation time
Date: Fri, 15 Nov 2024 11:51:40 +0000
Message-ID: <20241115115200.2824-12-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xenbindgen/src/main.rs |   8 +
 tools/rust/xenbindgen/src/spec.rs | 357 ++++++++++++++++++++++++++++--
 2 files changed, 341 insertions(+), 24 deletions(-)

diff --git a/tools/rust/xenbindgen/src/main.rs b/tools/rust/xenbindgen/src/main.rs
index 00abf5ed7f33..dbc610e420f2 100644
--- a/tools/rust/xenbindgen/src/main.rs
+++ b/tools/rust/xenbindgen/src/main.rs
@@ -55,6 +55,14 @@ fn main() {
             error!("{x:#?}");
             std::process::exit(1);
         }
+        Err(spec::Error::BadAbi(x)) => {
+            error!("Broken ABI rule: {x}");
+            std::process::exit(1);
+        }
+        Err(spec::Error::MissingDefinition(x)) => {
+            error!("Missing include: {x}");
+            std::process::exit(1);
+        }
     };
 
     let (extension, parser): (&str, fn(&OutFileDef) -> String) = match cli.lang {
diff --git a/tools/rust/xenbindgen/src/spec.rs b/tools/rust/xenbindgen/src/spec.rs
index 04be05187ac8..919f3206c1f6 100644
--- a/tools/rust/xenbindgen/src/spec.rs
+++ b/tools/rust/xenbindgen/src/spec.rs
@@ -13,7 +13,7 @@
 //! to properly decode the type and match it with a variant of the [`Typ`] type
 //! with the payload landing in the payload of the variant itself.
 
-use std::{fs::read_to_string, path::Path};
+use std::{cmp::max, fs::read_to_string, path::Path};
 
 use log::{debug, info};
 
@@ -25,7 +25,7 @@ use log::{debug, info};
 /// TOML files. Ideally, that representation should be more ergonomic and the
 /// parser instructed to deal with it.
 #[allow(clippy::missing_docs_in_private_items)]
-#[derive(Debug, serde::Deserialize, PartialEq)]
+#[derive(Clone, Debug, serde::Deserialize, PartialEq)]
 #[serde(rename_all = "lowercase", tag = "tag", content = "args")]
 pub enum Typ {
     Bitmap(String),
@@ -43,8 +43,120 @@ pub enum Typ {
     Array(Box<Typ>, usize),
 }
 
+impl Typ {
+    /// Returns the size of this type in octets. The specification must be
+    /// passed on the side so the function can look-up subordinate types.
+    ///
+    /// # Errors
+    /// `Err` on type lookup failure (e.g: enum doesn't exist).
+    pub fn size(&self, spec: &Spec) -> Result<usize, Error> {
+        match self {
+            Typ::U8 | Typ::I8 => Ok(1),
+            Typ::U16 | Typ::I16 => Ok(2),
+            Typ::U32 | Typ::I32 => Ok(4),
+            Typ::U64 | Typ::I64 | Typ::Ptr(_) => Ok(8),
+            Typ::Enum(s) => spec.find_enum(s)?.typ.size(spec),
+            Typ::Bitmap(s) => spec.find_bitmap(s)?.typ.size(spec),
+            Typ::Struct(s) => {
+                // The size of a struct is the sum of the sizes of its subfields
+                // as long as it's packed, and that is mandated by the ABI.
+                let mut size = 0;
+                for f in &spec.find_struct(s)?.fields {
+                    size += f.typ.size(spec)?;
+                }
+                Ok(size)
+            }
+            Typ::Array(t, n) => Ok(n * t.size(spec)?),
+        }
+    }
+
+    /// Returns the alignment of this type in octets. The specification must
+    /// be passed on the side so the function can look-up subordinate types.
+    ///
+    /// # Errors
+    /// `Err` on type lookup failure (e.g: enum doesn't exist).
+    pub fn alignment(&self, spec: &Spec) -> Result<usize, Error> {
+        match self {
+            Typ::U8 | Typ::I8 => Ok(1),
+            Typ::U16 | Typ::I16 => Ok(2),
+            Typ::U32 | Typ::I32 => Ok(4),
+            Typ::U64 | Typ::I64 | Typ::Ptr(_) => Ok(8),
+            Typ::Enum(s) => spec.find_enum(s)?.typ.alignment(spec),
+            Typ::Bitmap(s) => spec.find_bitmap(s)?.typ.alignment(spec),
+            Typ::Struct(s) => {
+                // The alignment of a struct is as large as its largest field
+                let mut alignment = 1;
+                for f in &spec.find_struct(s)?.fields {
+                    alignment = max(alignment, f.typ.alignment(spec)?);
+                }
+                Ok(alignment)
+            }
+            Typ::Array(t, _) => t.alignment(spec),
+        }
+    }
+
+    /// `Ok` iff the type is {i,u}{8,16,32,64}.
+    pub fn is_primitive(&self) -> Result<(), Error> {
+        match self {
+            Typ::U8 | Typ::I8 | Typ::U16 | Typ::I16 | Typ::U32 | Typ::I32 | Typ::U64 | Typ::I64 => {
+                Ok(())
+            }
+            _ => Err(Error::BadAbi(format!("{self:?} while expecting primitive"))),
+        }
+    }
+
+    /// `Ok` iff the type respects all ABI rules. Note that for a spec to
+    /// satisfy the ABI restrictions _all_ types must satisfy them.
+    pub fn abi_compatible(&self, spec: &Spec) -> Result<(), Error> {
+        match self {
+            // Unconditionally ok. They have fixed size with equal alignment
+            Typ::U8
+            | Typ::I8
+            | Typ::U16
+            | Typ::I16
+            | Typ::U32
+            | Typ::I32
+            | Typ::U64
+            | Typ::I64
+            | Typ::Ptr(_) => Ok(()),
+
+            // Ok as long as their backing type is itself primitive
+            Typ::Enum(s) => spec.find_enum(s)?.typ.is_primitive(),
+            Typ::Bitmap(s) => spec.find_bitmap(s)?.typ.is_primitive(),
+
+            // Every field must be compatible and there can be no padding
+            Typ::Struct(s) => {
+                let def = spec.find_struct(s)?;
+                let mut offset = 0;
+
+                for f in &def.fields {
+                    f.typ.abi_compatible(spec)?;
+
+                    if offset & (f.typ.alignment(spec)? - 1) != 0 {
+                        return Err(Error::BadAbi(format!(
+                            "implicit padding in struct {s}, before {}",
+                            f.name
+                        )));
+                    }
+
+                    offset += f.typ.size(spec)?;
+                }
+
+                if offset & (self.alignment(spec)? - 1) != 0 {
+                    return Err(Error::BadAbi(format!(
+                        "implicit padding in struct {s} at the tail",
+                    )));
+                }
+
+                Ok(())
+            }
+            Typ::Array(t, _) => t.abi_compatible(spec),
+        }
+    }
+}
+
 /// Deserialized form of a hypercall struct
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 pub struct StructDef {
     /// Name of the struct
     pub name: String,
@@ -57,7 +169,7 @@ pub struct StructDef {
 }
 
 /// Deserialized form of a field within a hypercall struct (see [`StructDef`])
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 pub struct FieldDef {
     /// Name of the field
     pub name: String,
@@ -69,7 +181,7 @@ pub struct FieldDef {
 }
 
 /// Description of a lang-agnostic enumerated type.
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 pub struct EnumDef {
     /// snake-cased name of this enumeration.
     ///
@@ -90,7 +202,7 @@ pub struct EnumDef {
 }
 
 /// Lang-agnostic description of a bitmap type.
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 pub struct BitmapDef {
     /// Snake-cased name of this bitmap.
     ///
@@ -109,7 +221,7 @@ pub struct BitmapDef {
 }
 
 /// Lang-agnostic description of a single bit within a particular bitmap type.
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 pub struct BitDef {
     /// Snake-cased name of this bit. Depending on the backend, the name
     /// might be prefixed by the name of its type (as is commonly done in C).
@@ -122,7 +234,7 @@ pub struct BitDef {
 }
 
 /// Lang-agnostic description of a single variant of an enumerated type.
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 pub struct VariantDef {
     /// Snake-cased name of this variant. Depending on the backend, the name
     /// might be prefixed by the name of its type (as is commonly done in C).
@@ -138,7 +250,7 @@ pub struct VariantDef {
 ///
 /// Used in specifications to state a number of types (described in `imports`)
 /// is needed from another generated file (the `from` field).
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 pub struct IncludeDef {
     /// Name of the [`InFileDef`] that contains the imported tokens of
     /// `imports`.
@@ -148,7 +260,7 @@ pub struct IncludeDef {
 }
 
 /// A language-agnostic specification.
-#[derive(Debug, serde::Deserialize)]
+#[derive(Clone, Debug, serde::Deserialize)]
 struct InFileDef {
     /// List of types described in other [`InFileDef`] that are required here.
     includes: Option<Vec<IncludeDef>>,
@@ -163,7 +275,7 @@ struct InFileDef {
 /// Description of an abstract output (i.e: `.rs`, `.h`, etc).
 ///
 /// Contains every element of the ABI that needs representing.
-#[derive(Debug)]
+#[derive(Clone, Debug)]
 pub struct OutFileDef {
     /// The name of the output file, without the final extension.
     pub name: String,
@@ -206,18 +318,18 @@ impl OutFileDef {
             let path = from_ioerr(entry)?.path();
             debug!("Reading {:?} to generate outfile={}", path, ret.name);
             let toml_str = from_ioerr(read_to_string(path))?;
-            let filedef: InFileDef = toml::from_str(&toml_str).map_err(Error::Toml)?;
-            if let Some(structs) = filedef.structs {
-                ret.structs.extend(structs);
+            let infiledef: InFileDef = toml::from_str(&toml_str).map_err(Error::Toml)?;
+            if let Some(x) = infiledef.structs {
+                ret.structs.extend(x);
             }
-            if let Some(enums) = filedef.enums {
-                ret.enums.extend(enums);
+            if let Some(x) = infiledef.enums {
+                ret.enums.extend(x);
             }
-            if let Some(bitmaps) = filedef.bitmaps {
-                ret.bitmaps.extend(bitmaps);
+            if let Some(x) = infiledef.bitmaps {
+                ret.bitmaps.extend(x);
             }
-            if let Some(includes) = filedef.includes {
-                ret.includes.extend(includes);
+            if let Some(x) = infiledef.includes {
+                ret.includes.extend(x);
             }
         }
 
@@ -228,10 +340,14 @@ impl OutFileDef {
 /// Internal error type for every error spec parsing could encounter
 #[derive(Debug)]
 pub enum Error {
-    /// Wrapper around IO errors
+    /// IO errors (e.g: opening files, etc)
     Io(std::io::Error),
-    /// Wrapper around deserialization errors
+    /// Deserialization errors (i.e: from malformed specifications)
     Toml(toml::de::Error),
+    /// Failed ABI consistency checks
+    BadAbi(String),
+    /// Failed definition lookups (typically typos)
+    MissingDefinition(String),
 }
 
 /// Maps an [`std::io::Error`] onto a [`Error`] type for easier propagation
@@ -242,7 +358,7 @@ fn from_ioerr<T>(t: std::io::Result<T>) -> Result<T, Error> {
 /// Object containing the abstract definitions of all output files.
 ///
 /// See [`OutFileDef`] to details on the specification contents of each output.
-#[derive(Debug)]
+#[derive(Debug, Default)]
 pub struct Spec(pub Vec<OutFileDef>);
 
 impl Spec {
@@ -255,7 +371,7 @@ impl Spec {
     pub fn new(root: &Path) -> Result<Self, Error> {
         info!("Reading {root:?} as top-level directory");
 
-        let mut ret = Self(Vec::new());
+        let mut ret: Spec = Self::default();
         for outfile in from_ioerr(root.read_dir())? {
             // Each folder in the root defines a single output file
             let outfile = from_ioerr(outfile)?;
@@ -263,6 +379,199 @@ impl Spec {
             ret.0.push(OutFileDef::new(name, &outfile.path())?);
         }
 
+        for arch in &[ret.x86(), ret.arm(), ret.riscv(), ret.ppc()] {
+            arch.is_valid()?;
+        }
+
         Ok(ret)
     }
+
+    /// Checks names are not duplicated. Some languages might not support type namespaces
+    /// so and it simplifies type lookup in [`Spec::abi_is_compliant`].
+    fn has_unique_names(&self) -> Result<(), Error> {
+        let mut all_names = Vec::<String>::new();
+
+        for outfile in &self.0 {
+            all_names.extend(outfile.structs.iter().map(|e| e.name.clone()));
+            all_names.extend(outfile.enums.iter().map(|e| e.name.clone()));
+            all_names.extend(outfile.bitmaps.iter().map(|e| e.name.clone()));
+        }
+
+        if all_names.is_empty() {
+            return Err(Error::BadAbi("Empty spec".to_string()));
+        }
+
+        let mut dedupped = all_names.clone();
+        dedupped.sort();
+        dedupped.dedup();
+
+        if dedupped.len() != all_names.len() {
+            // There's duplicates. Be nice and point out which
+            let mut dup = all_names.last().unwrap();
+            for (i, name) in dedupped.iter().enumerate() {
+                if all_names[i] != *name {
+                    dup = name;
+                    break;
+                }
+            }
+
+            return Err(Error::BadAbi(format!("Duplicate identifier: {dup}")));
+        }
+
+        Ok(())
+    }
+
+    /// Enforce restrictions to guarantee ABI sanity
+    ///
+    ///   1. ABI must be identical in 32 and 64 bits.
+    ///   2. For every type, alignment must match size.
+    ///   3. Structs must have no implicit padding, not even at the tail.
+    ///   4. All type names are distinct.
+    fn is_valid(&self) -> Result<(), Error> {
+        info!("Validating specification");
+
+        self.has_unique_names()?;
+        for def in &self.0 {
+            for s in &def.structs {
+                debug!("Validating struct {}", s.name);
+                Typ::Struct(s.name.to_string()).abi_compatible(self)?;
+            }
+        }
+
+        Ok(())
+    }
+
+    /// Duplicates a specification; Leaves out arch-specific definitions.
+    ///
+    /// This has the effect of deduplicating the fields used polymorphically
+    /// across arch-specific code (e.g: See `xen_arch_domainconfig` in the spec)
+    fn common(&self) -> Self {
+        let mut ret = Self::default();
+
+        for def in &self.0 {
+            if !def.name.starts_with("arch-") {
+                ret.0.push(def.clone());
+            }
+        }
+
+        ret
+    }
+
+    /// Duplicates a specification; Leaves out non-x86 architectures.
+    ///
+    /// This has the effect of deduplicating the fields used polymorphically
+    /// across arch-specific code (e.g: See `xen_arch_domainconfig` in the spec)
+    pub fn x86(&self) -> Self {
+        let mut ret = self.common();
+
+        if let Some(x) = self.0.iter().find(|x| x.name == "arch-x86") {
+            let mut def = x.clone();
+            def.name = String::from("arch");
+            ret.0.push(def);
+        }
+
+        ret
+    }
+
+    /// Duplicates a specification; Leaves out non-ARM architectures.
+    ///
+    /// This has the effect of deduplicating the fields used polymorphically
+    /// across arch-specific code (e.g: See `xen_arch_domainconfig` in the spec)
+    pub fn arm(&self) -> Spec {
+        let mut ret = self.common();
+
+        if let Some(x) = self.0.iter().find(|x| x.name == "arch-arm") {
+            let mut def = x.clone();
+            def.name = String::from("arch");
+            ret.0.push(def);
+        }
+
+        ret
+    }
+
+    /// Duplicates a specification; Leaves out non-PowerPC architectures.
+    ///
+    /// This has the effect of deduplicating the fields used polymorphically
+    /// across arch-specific code (e.g: See `xen_arch_domainconfig` in the spec)
+    pub fn ppc(&self) -> Spec {
+        let mut ret = self.common();
+
+        if let Some(x) = self.0.iter().find(|x| x.name == "arch-ppc") {
+            let mut def = x.clone();
+            def.name = String::from("arch");
+            ret.0.push(def);
+        }
+
+        ret
+    }
+
+    /// Duplicates a specification; Leaves out non-RiscV architectures.
+    ///
+    /// This has the effect of deduplicating the fields used polymorphically
+    /// across arch-specific code (e.g: See `xen_arch_domainconfig` in the spec)
+    pub fn riscv(&self) -> Spec {
+        let mut ret = self.common();
+
+        if let Some(x) = self.0.iter().find(|x| x.name == "arch-riscv") {
+            let mut def = x.clone();
+            def.name = String::from("arch");
+            ret.0.push(def);
+        }
+
+        ret
+    }
+
+    /// Find a struct with a particular name within a [`Spec`] definition.
+    ///
+    /// Assumes a flat namespace, so there are no two types with the same
+    /// name. This is ensured with [`Spec::has_unique_names`].
+    pub fn find_struct(&self, name: &str) -> Result<&StructDef, Error> {
+        debug!("Looking up struct {name}");
+
+        for filedef in &self.0 {
+            for s in &filedef.structs {
+                if s.name == name {
+                    return Ok(s);
+                }
+            }
+        }
+
+        Err(Error::MissingDefinition(format!("missing struct {name}")))
+    }
+
+    /// Find an enum with a particular name within a [`Spec`] definition.
+    ///
+    /// Assumes a flat namespace, so there are no two types with the same
+    /// name. This is ensured with [`Spec::has_unique_names`].
+    pub fn find_enum(&self, name: &str) -> Result<&EnumDef, Error> {
+        debug!("Looking up enum {name}");
+
+        for filedef in &self.0 {
+            for s in &filedef.enums {
+                if s.name == name {
+                    return Ok(s);
+                }
+            }
+        }
+
+        Err(Error::MissingDefinition(format!("missing enum {name}")))
+    }
+
+    /// Find a bitmap with a particular name within a [`Spec`] definition.
+    ///
+    /// Assumes a flat namespace, so there are no two types with the same
+    /// name. This is ensured with [`Spec::has_unique_names`].
+    pub fn find_bitmap(&self, name: &str) -> Result<&BitmapDef, Error> {
+        debug!("Looking up bitmap {name}");
+
+        for filedef in &self.0 {
+            for s in &filedef.bitmaps {
+                if s.name == name {
+                    return Ok(s);
+                }
+            }
+        }
+
+        Err(Error::MissingDefinition(format!("missing enum {name}")))
+    }
 }
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837179.1253192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBusy-0008C8-Ny; Fri, 15 Nov 2024 11:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837179.1253192; Fri, 15 Nov 2024 11:53: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 1tBusy-00088T-2y; Fri, 15 Nov 2024 11:53:12 +0000
Received: by outflank-mailman (input) for mailman id 837179;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusw-0005UF-FV
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:10 +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 2e019b8d-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:07 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-aa3a79d4d59so270568166b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:07 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2e019b8d-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJlMDE5YjhkLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTg3LjgyNjk2Niwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671587; x=1732276387; 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=YTgBp3u8P0cZs4GoU1pcL/XsrDo/t/R26kaPSnnnZ/I=;
        b=QRqOoqN6TNL+Uqykknt2PjpKKFg5G58/0oc5nPD2EgH2xErwrkK9Zyl1u5lCqfAe2D
         Mlr4NJMbpgYgyjN31lM7VRaG5yJiD3RD1Z2wra45GqTaDpQWV6MUBC2WPIiYKpslR92k
         JQXsr69ftEppoxpw1KN7kDae+AxhZZ720EtPk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671587; x=1732276387;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YTgBp3u8P0cZs4GoU1pcL/XsrDo/t/R26kaPSnnnZ/I=;
        b=LIaGNOyH5MYmTD4Zjyyv1VVnQT7DOpLJcdwrmoFcT0edHRTQ22H2vwx0Z3p6whNgxI
         +Sh2pVRb55RequwHFt+VKFYdGk0vmgV9fKsOo2LdDRgePSy78HxXvMV+coMeGEedpBhq
         bVo6goWe2/A+x3Tz6sqVFyTYMghLhMXyPKxWmQaYhFBsWk7linAgCEduPAx1vqK8lGCa
         qhRFMmLrnCxSbGGkelK+KnpYwwvYXA+H1VqO93dLkHsJRQr9m/ggJUuO/scCVL0LOVOp
         WaldrSw2umsgnNY/pm+SXdcBCWJvpThPLzplSdqCIRCrgGKMomS6puiZu96jz0HbxL7D
         9FOg==
X-Gm-Message-State: AOJu0Yy3ipifTA0l5LfgAAPt3zyg11V4NR1sq7aS32sVU6b4q0+2HPnp
	lQw37hrf/++g0p1m5ygc3ykvicYw3GZ4kMp37qTaUYZwvze7eHJT54xLwbC7ah1VUSt8piSn7fY
	3
X-Google-Smtp-Source: AGHT+IGGf7chMiYoWULTA+4FqsplpwjC0gZstVC0KtP0DCVj+5C9GYogkSgo5Czrly1ZKHbWy2xagw==
X-Received: by 2002:a17:907:3d86:b0:a9f:508:5924 with SMTP id a640c23a62f3a-aa483525ef4mr207071166b.43.1731671586933;
        Fri, 15 Nov 2024 03:53:06 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with autogenerated version
Date: Fri, 15 Nov 2024 11:51:41 +0000
Message-ID: <20241115115200.2824-13-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Describe sysctl/readconsole as a TOML specification, remove old
hand-coded version and replace it with autogenerated file.

While at it, transform the console driver to use uint8_t rather than
char in order to mandate the type to be unsigned and ensure the ABI is
not defined with regards to C-specific types.

Also grant stubdom access to the new autogen folder, or it won't build.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 stubdom/Makefile                              |  2 +-
 tools/rust/Makefile                           | 19 ++++++++
 .../xenbindgen/extra/sysctl/readconsole.toml  | 43 +++++++++++++++++++
 xen/drivers/char/console.c                    | 12 +++---
 xen/include/public/autogen/sysctl.h           | 35 +++++++++++++++
 xen/include/public/sysctl.h                   | 23 +---------
 xen/include/public/xen.h                      |  1 +
 7 files changed, 108 insertions(+), 27 deletions(-)
 create mode 100644 tools/rust/xenbindgen/extra/sysctl/readconsole.toml
 create mode 100644 xen/include/public/autogen/sysctl.h

diff --git a/stubdom/Makefile b/stubdom/Makefile
index 2a81af28a16e..5e919889836b 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -362,7 +362,7 @@ LINK_STAMPS := $(foreach dir,$(LINK_DIRS),$(dir)/stamp)
 mk-headers-$(XEN_TARGET_ARCH): $(IOEMU_LINKFARM_TARGET) $(LINK_STAMPS)
 	mkdir -p include/xen && \
           ln -sf $(wildcard $(XEN_ROOT)/xen/include/public/*.h) include/xen && \
-          ln -sf $(addprefix $(XEN_ROOT)/xen/include/public/,arch-x86 hvm io xsm) include/xen && \
+          ln -sf $(addprefix $(XEN_ROOT)/xen/include/public/,arch-x86 autogen hvm io xsm) include/xen && \
           ( [ -h include/xen/sys ] || ln -sf $(XEN_ROOT)/tools/include/xen-sys/MiniOS include/xen/sys ) && \
           ( [ -h include/xen/libelf ] || ln -sf $(XEN_ROOT)/tools/include/xen/libelf include/xen/libelf ) && \
 	  mkdir -p include/xen-foreign && \
diff --git a/tools/rust/Makefile b/tools/rust/Makefile
index f5db0a9c5e81..80e2f0e2817e 100644
--- a/tools/rust/Makefile
+++ b/tools/rust/Makefile
@@ -3,6 +3,11 @@ XEN_ROOT=$(CURDIR)/../..
 # Path to the Xen hypercall IDL parser
 XENBINDGEN=$(CURDIR)/xenbindgen
 
+# Output folder for the autogenerated C headers
+#
+# Must contain autogenerated files only because they're all wiped on update
+AUTOGEN_C=$(XEN_ROOT)/xen/include/public/autogen/
+
 # Clippy settings for all Rust projects
 CLIPPY_ARGS=-D warnings \
             -D missing_docs \
@@ -14,6 +19,20 @@ CLIPPY_ARGS=-D warnings \
 .PHONY: all install uninstall clean
 all install uninstall clean:
 
+# Remove all autogenerated files
+.PHONY: clean-autogen
+clean-autogen:
+	rm -rf "${AUTOGEN_C}"
+
+# Refresh autogenerated files. Depending on clean-autogen is required in order
+# for removals of specification files to cause the removal of their
+# autogenerated files.
+.PHONY: update
+update: clean-autogen
+	# Update C bindings
+	cargo run --manifest-path "${XENBINDGEN}/Cargo.toml" -- --lang c \
+	          --indir "${XENBINDGEN}/extra" --outdir "${AUTOGEN_C}"
+
 # Verify Rust crates pass lint checks. This is enforced in CI
 .PHONY: verify
 verify:
diff --git a/tools/rust/xenbindgen/extra/sysctl/readconsole.toml b/tools/rust/xenbindgen/extra/sysctl/readconsole.toml
new file mode 100644
index 000000000000..868743a453ff
--- /dev/null
+++ b/tools/rust/xenbindgen/extra/sysctl/readconsole.toml
@@ -0,0 +1,43 @@
+[[structs]]
+name = "xen_sysctl_readconsole"
+description = "Read console content from Xen buffer ring."
+
+[[structs.fields]]
+name = "clear"
+description = "IN: Non-zero -> clear after reading."
+typ = { tag = "u8" }
+
+[[structs.fields]]
+name = "incremental"
+description = "IN: Non-zero -> start index specified by `index` field."
+typ = { tag = "u8" }
+
+[[structs.fields]]
+name = "_pad"
+description = "Unused."
+typ = { tag = "u16" }
+
+[[structs.fields]]
+name = "index"
+description = """
+IN:  Start index for consuming from ring buffer (if @incremental);
+OUT: End index after consuming from ring buffer."""
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "buffer"
+description = """
+IN: Virtual address to write console data.
+
+NOTE: The pointer itself is IN, but the contents of the buffer are OUT."""
+typ = { tag = "ptr", args = { tag = "u8" } }
+
+[[structs.fields]]
+name = "count"
+description = "IN: Size of buffer; OUT: Bytes written to buffer."
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "rsvd0_a"
+description = "Tail padding reserved to zero."
+typ = { tag = "u32" }
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 7da8c5296f3b..82f6ad7b32cb 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -42,6 +42,8 @@
 #include <asm/vpl011.h>
 #endif
 
+#include <public/xen.h>
+
 /* console: comma-separated list of console outputs. */
 static char __initdata opt_console[30] = OPT_CONSOLE_STR;
 string_param("console", opt_console);
@@ -108,8 +110,8 @@ size_param("conring_size", opt_conring_size);
 
 #define _CONRING_SIZE 16384
 #define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
-static char __initdata _conring[_CONRING_SIZE];
-static char *__read_mostly conring = _conring;
+static uint8_t __initdata _conring[_CONRING_SIZE];
+static uint8_t *__read_mostly conring = _conring;
 static uint32_t __read_mostly conring_size = _CONRING_SIZE;
 static uint32_t conringc, conringp;
 
@@ -339,10 +341,10 @@ static void conring_puts(const char *str, size_t len)
 
 long read_console_ring(struct xen_sysctl_readconsole *op)
 {
-    XEN_GUEST_HANDLE_PARAM(char) str;
+    XEN_GUEST_HANDLE_PARAM(uint8_t) str;
     uint32_t idx, len, max, sofar, c, p;
 
-    str   = guest_handle_cast(op->buffer, char),
+    str   = guest_handle_cast(op->buffer, uint8_t),
     max   = op->count;
     sofar = 0;
 
@@ -1052,7 +1054,7 @@ void __init console_init_preirq(void)
 
 void __init console_init_ring(void)
 {
-    char *ring;
+    uint8_t *ring;
     unsigned int i, order, memflags;
     unsigned long flags;
 
diff --git a/xen/include/public/autogen/sysctl.h b/xen/include/public/autogen/sysctl.h
new file mode 100644
index 000000000000..f728b13374d3
--- /dev/null
+++ b/xen/include/public/autogen/sysctl.h
@@ -0,0 +1,35 @@
+/*
+ * sysctl
+ *
+ * AUTOGENERATED. DO NOT MODIFY
+ */
+#ifndef __XEN_AUTOGEN_SYSCTL_H
+#define __XEN_AUTOGEN_SYSCTL_H
+
+/* Read console content from Xen buffer ring. */
+struct xen_sysctl_readconsole {
+    /* IN: Non-zero -> clear after reading. */
+    uint8_t clear;
+    /* IN: Non-zero -> start index specified by `index` field. */
+    uint8_t incremental;
+    /* Unused. */
+    uint16_t _pad;
+    /*
+     * IN:  Start index for consuming from ring buffer (if @incremental);
+     * OUT: End index after consuming from ring buffer.
+     */
+    uint32_t index;
+    /*
+     * IN: Virtual address to write console data.
+     *
+     * NOTE: The pointer itself is IN, but the contents of the buffer are OUT.
+     */
+    XEN_GUEST_HANDLE_64(uint8) buffer;
+    /* IN: Size of buffer; OUT: Bytes written to buffer. */
+    uint32_t count;
+    /* Tail padding reserved to zero. */
+    uint32_t rsvd0_a;
+};
+
+#endif /* __XEN_AUTOGEN_SYSCTL_H */
+
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index b0fec271d36f..9e773490a5ac 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -18,6 +18,8 @@
 #include "domctl.h"
 #include "physdev.h"
 
+#include "autogen/sysctl.h"
+
 /*
  * The interface version needs to be incremented by 1 in case the interface
  * is modified in an incompatible way AND if the version hasn't been
@@ -30,27 +32,6 @@
  */
 #define XEN_SYSCTL_INTERFACE_VERSION 0x00000015
 
-/*
- * Read console content from Xen buffer ring.
- */
-/* XEN_SYSCTL_readconsole */
-struct xen_sysctl_readconsole {
-    /* IN: Non-zero -> clear after reading. */
-    uint8_t clear;
-    /* IN: Non-zero -> start index specified by @index field. */
-    uint8_t incremental;
-    uint8_t pad0, pad1;
-    /*
-     * IN:  Start index for consuming from ring buffer (if @incremental);
-     * OUT: End index after consuming from ring buffer.
-     */
-    uint32_t index;
-    /* IN: Virtual address to write console data. */
-    XEN_GUEST_HANDLE_64(char) buffer;
-    /* IN: Size of buffer; OUT: Bytes written to buffer. */
-    uint32_t count;
-};
-
 /* Get trace buffers machine base address */
 /* XEN_SYSCTL_tbuf_op */
 struct xen_sysctl_tbuf_op {
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index e051f989a5ca..cc5133fc19b8 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -36,6 +36,7 @@ __DEFINE_XEN_GUEST_HANDLE(ulong, unsigned long);
 #endif
 DEFINE_XEN_GUEST_HANDLE(void);
 
+DEFINE_XEN_GUEST_HANDLE(uint8_t);
 DEFINE_XEN_GUEST_HANDLE(uint64_t);
 DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
 DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837181.1253210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBut2-0000g1-9F; Fri, 15 Nov 2024 11:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837181.1253210; Fri, 15 Nov 2024 11: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 1tBut1-0000eC-WA; Fri, 15 Nov 2024 11:53:16 +0000
Received: by outflank-mailman (input) for mailman id 837181;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBusy-0005U9-St
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:12 +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 2efe3c0a-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:09 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9a68480164so223660666b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:09 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2efe3c0a-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJlZmUzYzBhLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTg5LjUwMTUyMiwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671588; x=1732276388; 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=GrIHjPwvtOnEhff76Ju8/6PKjtLppyVwNCD/uVKVYE8=;
        b=fKOsiw+rO5IC6+bPaugvZJ5qJVCnT+LEps7fKjVr/aDb1QF4bYb9ymhf07rRgpbrNJ
         0n3q6kk8NqxKb3nx/0M/6tJatp8+L5UOGI4JK3XQNKZJjOYEvZF2sl4SsA0WAk8j5gxR
         kHUK2yUshZYV1h1goSi6CKrBPzU/j0JeIsKXo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671588; x=1732276388;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=GrIHjPwvtOnEhff76Ju8/6PKjtLppyVwNCD/uVKVYE8=;
        b=cyEB+QFj0YvuHLCqP/ATiOcXZ4p9KSUWUugE3Co3UAAbC12lCfezZCSFFR5ritSutj
         2DKXVieK5+sIYljHF7YBzqhxEZQTufj8ns9GaBC1CznOcaDnP2UCp/IY9s9EmxdbWf7O
         skzJwdZNz7Up61J0QPFdBupaD3S8zvatTFiVH4njs91ovrmIYSU/AKojC39bH3fvcpYy
         xdYMOMbrhxIOB7voUJTWHVVd4dK4xCZdGcwjFidEgnGTRXRx9sKukRXHKr3QoaKDQR6b
         9qtnFbfOUhDlAJJqlvWx+QOQyomJz2gFjc2z5dKyaA7U7vFDbo/coVpQGfWZrFT1t1cz
         WIqg==
X-Gm-Message-State: AOJu0YwFpW1hSjf9bHPGpi/fFPS3sgJHQsj25wpbGLnWfc0qILHxhPm8
	h5+UhNJ/ZWQIHDWSqj6cimGrW5iGYCz0HcuHQzo+FiI7ngcDLT+4r2qXtkPElSqnoxcMqXlir69
	U
X-Google-Smtp-Source: AGHT+IEX15jlu4tYQg3JcLosn63SAFy8FOsWQhMW7RzMOpxh14W+k1b5IUPSYiyNyuPeP2WSUad3HA==
X-Received: by 2002:a17:907:2dac:b0:a9a:ad8:fc56 with SMTP id a640c23a62f3a-aa483529cb4mr212134566b.44.1731671588564;
        Fri, 15 Nov 2024 03:53:08 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [RFC PATCH 13/25] xen: Replace hand-crafted altp2m_mode descriptions with autogenerated ones
Date: Fri, 15 Nov 2024 11:51:42 +0000
Message-ID: <20241115115200.2824-14-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/libs/light/libxl_create.c               |  8 +++----
 .../xenbindgen/extra/domctl/createdomain.toml | 24 +++++++++++++++++++
 xen/arch/x86/hvm/hvm.c                        |  8 +++----
 xen/include/public/autogen/domctl.h           | 22 +++++++++++++++++
 xen/include/public/domctl.h                   | 18 +++-----------
 5 files changed, 57 insertions(+), 23 deletions(-)
 create mode 100644 tools/rust/xenbindgen/extra/domctl/createdomain.toml
 create mode 100644 xen/include/public/autogen/domctl.h

diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index 3ae922e8931b..791b0fac0601 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -676,19 +676,19 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
         LOG(DETAIL, "altp2m: %s", libxl_altp2m_mode_to_string(b_info->altp2m));
         switch(b_info->altp2m) {
         case LIBXL_ALTP2M_MODE_MIXED:
-            create.altp2m_mode = XEN_DOMCTL_ALTP2M_mixed;
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_MODE_MIXED;
             break;
 
         case LIBXL_ALTP2M_MODE_EXTERNAL:
-            create.altp2m_mode = XEN_DOMCTL_ALTP2M_external;
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_MODE_EXTERNAL;
             break;
 
         case LIBXL_ALTP2M_MODE_LIMITED:
-            create.altp2m_mode = XEN_DOMCTL_ALTP2M_limited;
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_MODE_LIMITED;
             break;
 
         case LIBXL_ALTP2M_MODE_DISABLED:
-            create.altp2m_mode = XEN_DOMCTL_ALTP2M_disabled;
+            create.altp2m_mode = XEN_DOMCTL_ALTP2M_MODE_DISABLED;
             break;
         }
 
diff --git a/tools/rust/xenbindgen/extra/domctl/createdomain.toml b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
new file mode 100644
index 000000000000..097dc202f352
--- /dev/null
+++ b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
@@ -0,0 +1,24 @@
+[[enums]]
+name = "xen_domctl_altp2m_mode"
+description = "Content of the `altp2m_mode` field of the domain creation hypercall."
+typ = { tag = "u8" }
+
+[[enums.variants]]
+name = "disabled"
+description = "Keep altp2m disabled"
+value = 0
+
+[[enums.variants]]
+name = "mixed"
+description = "Use mixed-mode for the altp2m (not yet evaluated for safety)."
+value = 1
+
+[[enums.variants]]
+name = "external"
+description = "Use external mode for the altp2m."
+value = 2
+
+[[enums.variants]]
+name = "limited"
+description = "Use limited mode for the altp2m."
+value = 3
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index e30c3026479e..35caf6131190 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -661,19 +661,19 @@ int hvm_domain_initialise(struct domain *d,
     /* Set altp2m based on domctl flags. */
     switch ( config->altp2m_mode )
     {
-    case XEN_DOMCTL_ALTP2M_mixed:
+    case XEN_DOMCTL_ALTP2M_MODE_MIXED:
         d->arch.hvm.params[HVM_PARAM_ALTP2M] = XEN_ALTP2M_mixed;
         break;
 
-    case XEN_DOMCTL_ALTP2M_external:
+    case XEN_DOMCTL_ALTP2M_MODE_EXTERNAL:
         d->arch.hvm.params[HVM_PARAM_ALTP2M] = XEN_ALTP2M_external;
         break;
 
-    case XEN_DOMCTL_ALTP2M_limited:
+    case XEN_DOMCTL_ALTP2M_MODE_LIMITED:
         d->arch.hvm.params[HVM_PARAM_ALTP2M] = XEN_ALTP2M_limited;
         break;
 
-    case XEN_DOMCTL_ALTP2M_disabled:
+    case XEN_DOMCTL_ALTP2M_MODE_DISABLED:
         d->arch.hvm.params[HVM_PARAM_ALTP2M] = XEN_ALTP2M_disabled;
         break;
     }
diff --git a/xen/include/public/autogen/domctl.h b/xen/include/public/autogen/domctl.h
new file mode 100644
index 000000000000..00202f5e65b9
--- /dev/null
+++ b/xen/include/public/autogen/domctl.h
@@ -0,0 +1,22 @@
+/*
+ * domctl
+ *
+ * AUTOGENERATED. DO NOT MODIFY
+ */
+#ifndef __XEN_AUTOGEN_DOMCTL_H
+#define __XEN_AUTOGEN_DOMCTL_H
+
+/* Content of the `altp2m_mode` field of the domain creation hypercall. */
+enum xen_domctl_altp2m_mode {
+    /* Keep altp2m disabled */
+    XEN_DOMCTL_ALTP2M_MODE_DISABLED = 0,
+    /* Use mixed-mode for the altp2m (not yet evaluated for safety). */
+    XEN_DOMCTL_ALTP2M_MODE_MIXED = 1,
+    /* Use external mode for the altp2m. */
+    XEN_DOMCTL_ALTP2M_MODE_EXTERNAL = 2,
+    /* Use limited mode for the altp2m. */
+    XEN_DOMCTL_ALTP2M_MODE_LIMITED = 3,
+};
+
+#endif /* __XEN_AUTOGEN_DOMCTL_H */
+
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 95a3b6769f7f..95d62c859302 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -21,6 +21,8 @@
 #include "hvm/save.h"
 #include "memory.h"
 
+#include "autogen/domctl.h"
+
 /*
  * The interface version needs to be incremented by 1 in case the interface
  * is modified in an incompatible way AND if the version hasn't been
@@ -103,21 +105,7 @@ struct xen_domctl_createdomain {
     /* Unused. Reserved to zero. */
     uint8_t rsvd0_a[3];
 
-/* Keep altp2m disabled */
-#define XEN_DOMCTL_ALTP2M_disabled   (0U)
-/*
- * Enable altp2m mixed mode.
- *
- * Note that 'mixed' mode has not been evaluated for safety from a security
- * perspective.  Before using this mode in a security-critical environment,
- * each subop should be evaluated for safety, with unsafe subops blacklisted in
- * XSM.
- */
-#define XEN_DOMCTL_ALTP2M_mixed      (1U)
-/* Enable altp2m external mode. */
-#define XEN_DOMCTL_ALTP2M_external   (2U)
-/* Enable altp2m limited mode. */
-#define XEN_DOMCTL_ALTP2M_limited    (3U)
+    /* See xen_domctl_altp2m_mode */
     uint8_t altp2m_mode;
 
     /* Unused. Reserved to zero. */
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837182.1253216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBut3-0000lJ-75; Fri, 15 Nov 2024 11:53:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837182.1253216; Fri, 15 Nov 2024 11:53: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 1tBut2-0000jo-Jv; Fri, 15 Nov 2024 11:53:16 +0000
Received: by outflank-mailman (input) for mailman id 837182;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut0-0005UF-8K
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53: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 30624d4c-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:11 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9ed7d8d4e0so232688266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:11 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 30624d4c-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwNjI0ZDRjLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTkxLjgwNDQ0Miwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671591; x=1732276391; 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=u2zCTEiiXdj6Z3fAz2PaM6R8L2pJvU1ho+YloSy4GWA=;
        b=YjbT0SMrx1qS6W+aM/WTWoJZ37H91fqbfVc3DD7wlrpOQE1xEx+y3DpXOzlAIHrB/0
         /v8F7Vh5B7rIDnWS84cxZ4gHanWR6N5CAMeVfODbu9cvElV3CqVD/lTzfSOOGO4T+GTv
         UYyhXja6Cx50WkGj5cb2j9FcucaF6OIhT+2t0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671591; x=1732276391;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=u2zCTEiiXdj6Z3fAz2PaM6R8L2pJvU1ho+YloSy4GWA=;
        b=jOeEaE1KrhhgcKs4pECz/gDrVAwHXv+RFvsJbIio2c9B7IwMvKpNKehidi0pTNEEiz
         a1kVp8bD7bzLKZyhyvkFtK0eg+SUYZDf5jXs2ziCWyY7vTMt504cZ6iDaflzSKuO58P3
         sWdKFzrjxqVL8vC97KWj9uCxO/hMvJbgWXgrMZWqdIeX2klyYawV51ltEN+4qvtV3+cc
         Ids7Mcak8uB8APLIte089n2Ar4wG0BqWo0GWjpNlwF3b0lqKAlJRpp3rv+xLcm43lJCv
         1daN/Tkls3GlAg2s5msuoYo2LbQJC3zWrzdZPvy0nVEL4xb5opGcyo0trPjfbEUrhlbT
         srVw==
X-Gm-Message-State: AOJu0Yx/PdKuTl4aX+t3i+Y0zGhRMBoKu5bS433nBOerc2oLAQxGsNK7
	gU+iECwNzQ5/awtaLc3hwSVBUf3lu1Me+k9sPwzfsQcHwJO1FO85v/hXQAWQvdHzY6EXCPajuAj
	M
X-Google-Smtp-Source: AGHT+IFupWoJxTg3mKC40rRRwGbsyM1HfRvOK5bnNBOwLcjXdsu/PUy6Jjq+KT54hxdALNM3LBR32Q==
X-Received: by 2002:a17:906:daca:b0:a99:88ab:c7cb with SMTP id a640c23a62f3a-aa48347e0fbmr151752766b.33.1731671590923;
        Fri, 15 Nov 2024 03:53:10 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [RFC PATCH 15/25] xen/arm: Replace hand-crafted xen_arch_domainconfig with autogenerated one
Date: Fri, 15 Nov 2024 11:51:44 +0000
Message-ID: <20241115115200.2824-16-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 .../extra/arch-arm/domainconfig.toml          | 83 +++++++++++++++++++
 xen/arch/arm/domain.c                         |  4 +-
 xen/arch/arm/tee/tee.c                        |  1 +
 xen/include/public/arch-arm.h                 | 36 --------
 xen/include/public/autogen/arch_arm.h         | 59 +++++++++++++
 5 files changed, 145 insertions(+), 38 deletions(-)
 create mode 100644 tools/rust/xenbindgen/extra/arch-arm/domainconfig.toml
 create mode 100644 xen/include/public/autogen/arch_arm.h

diff --git a/tools/rust/xenbindgen/extra/arch-arm/domainconfig.toml b/tools/rust/xenbindgen/extra/arch-arm/domainconfig.toml
new file mode 100644
index 000000000000..d32963445765
--- /dev/null
+++ b/tools/rust/xenbindgen/extra/arch-arm/domainconfig.toml
@@ -0,0 +1,83 @@
+[[enums]]
+name = "xen_domctl_config_gic"
+description = "Content of the `gic_version` field of the domainconfig struct."
+typ = { tag = "u8" }
+
+[[enums.variants]]
+name = "native"
+description = "Emulate the underlying GIC present in the current host."
+value = 0
+
+[[enums.variants]]
+name = "v2"
+description = "Emulate a GICv2."
+value = 1
+
+[[enums.variants]]
+name = "v3"
+description = "Emulate a GICv3."
+value = 2
+
+################################################################################
+
+[[enums]]
+name = "xen_domctl_config_tee"
+description = "TEE mediator exposed to the guest"
+typ = { tag = "u16" }
+
+[[enums.variants]]
+name = "none"
+description = "No mediator. Guest can't communicate with the TEE."
+value = 0
+
+[[enums.variants]]
+name = "optee"
+description = "Expose an OP-TEE mediator."
+value = 1
+
+[[enums.variants]]
+name = "ffa"
+description = "Expose an FF-A mediator."
+value = 2
+
+################################################################################
+
+[[structs]]
+name = "xen_arch_domainconfig"
+description = "arm-specific domain settings."
+
+[[structs.fields]]
+name = "gic_version"
+description = """IN/OUT: GIC version exposed to the guest.
+
+When `native` on input the output value holds the automatically chosen version."""
+typ = { tag = "enum", args = "xen_domctl_config_gic" }
+
+[[structs.fields]]
+name = "sve_vl"
+description = "IN: SVE vector length (divided by 128) exposed to the guest."
+typ = { tag = "u8" }
+
+[[structs.fields]]
+name = "tee_type"
+description = "IN: TEE mediator exposed to the guest."
+typ = { tag = "enum", args = "xen_domctl_config_tee" }
+
+[[structs.fields]]
+name = "nr_spis"
+description = "IN: Number of SPIs exposed to the guest."
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "clock_frequency"
+description = """OUT
+Based on the property clock-frequency in the DT timer node.
+The property may be present when the bootloader/firmware doesn't
+set correctly CNTFRQ which hold the timer frequency.
+
+As it's not possible to trap this register, we have to replicate
+the value in the guest DT.
+
+= 0 => property not present
+> 0 => Value of the property"""
+typ = { tag = "u32" }
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 54e849b02f9e..57ed11598754 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -639,10 +639,10 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
     }
 
     /* The P2M table must always be shared between the CPU and the IOMMU */
-    if ( config->iommu_opts & XEN_DOMCTL_IOMMU_no_sharept )
+    if ( config->iommu_opts & XEN_DOMCTL_IOMMU_OPTS_NO_SHAREPT )
     {
         dprintk(XENLOG_INFO,
-                "Unsupported iommu option: XEN_DOMCTL_IOMMU_no_sharept\n");
+                "Unsupported iommu option: XEN_DOMCTL_IOMMU_OPTS_NO_SHAREPT\n");
         return -EINVAL;
     }
 
diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 3f65e45a7892..c5f7629a227a 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -21,6 +21,7 @@
 #include <xen/types.h>
 
 #include <asm/tee/tee.h>
+#include <public/autogen/arch_arm.h>
 
 extern const struct tee_mediator_desc _steemediator[], _eteemediator[];
 static const struct tee_mediator_desc __read_mostly *cur_mediator;
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index e2412a17474e..42ce9e64ed00 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -315,42 +315,6 @@ struct vcpu_guest_context {
 typedef struct vcpu_guest_context vcpu_guest_context_t;
 DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 
-/*
- * struct xen_arch_domainconfig's ABI is covered by
- * XEN_DOMCTL_INTERFACE_VERSION.
- */
-#define XEN_DOMCTL_CONFIG_GIC_NATIVE    0
-#define XEN_DOMCTL_CONFIG_GIC_V2        1
-#define XEN_DOMCTL_CONFIG_GIC_V3        2
-
-#define XEN_DOMCTL_CONFIG_TEE_NONE      0
-#define XEN_DOMCTL_CONFIG_TEE_OPTEE     1
-#define XEN_DOMCTL_CONFIG_TEE_FFA       2
-
-struct xen_arch_domainconfig {
-    /* IN/OUT */
-    uint8_t gic_version;
-    /* IN - Contains SVE vector length divided by 128 */
-    uint8_t sve_vl;
-    /* IN */
-    uint16_t tee_type;
-    /* IN */
-    uint32_t nr_spis;
-    /*
-     * OUT
-     * Based on the property clock-frequency in the DT timer node.
-     * The property may be present when the bootloader/firmware doesn't
-     * set correctly CNTFRQ which hold the timer frequency.
-     *
-     * As it's not possible to trap this register, we have to replicate
-     * the value in the guest DT.
-     *
-     * = 0 => property not present
-     * > 0 => Value of the property
-     *
-     */
-    uint32_t clock_frequency;
-};
 #endif /* __XEN__ || __XEN_TOOLS__ */
 
 struct arch_vcpu_info {
diff --git a/xen/include/public/autogen/arch_arm.h b/xen/include/public/autogen/arch_arm.h
new file mode 100644
index 000000000000..d19f639671e0
--- /dev/null
+++ b/xen/include/public/autogen/arch_arm.h
@@ -0,0 +1,59 @@
+/*
+ * arch-arm
+ *
+ * AUTOGENERATED. DO NOT MODIFY
+ */
+#ifndef __XEN_AUTOGEN_ARCH_ARM_H
+#define __XEN_AUTOGEN_ARCH_ARM_H
+
+/* Content of the `gic_version` field of the domainconfig struct. */
+enum xen_domctl_config_gic {
+    /* Emulate the underlying GIC present in the current host. */
+    XEN_DOMCTL_CONFIG_GIC_NATIVE = 0,
+    /* Emulate a GICv2. */
+    XEN_DOMCTL_CONFIG_GIC_V2 = 1,
+    /* Emulate a GICv3. */
+    XEN_DOMCTL_CONFIG_GIC_V3 = 2,
+};
+
+/* TEE mediator exposed to the guest */
+enum xen_domctl_config_tee {
+    /* No mediator. Guest can't communicate with the TEE. */
+    XEN_DOMCTL_CONFIG_TEE_NONE = 0,
+    /* Expose an OP-TEE mediator. */
+    XEN_DOMCTL_CONFIG_TEE_OPTEE = 1,
+    /* Expose an FF-A mediator. */
+    XEN_DOMCTL_CONFIG_TEE_FFA = 2,
+};
+
+/* arm-specific domain settings. */
+struct xen_arch_domainconfig {
+    /*
+     * IN/OUT: GIC version exposed to the guest.
+     *
+     * When `native` on input the output value holds the automatically chosen version.
+     */
+    uint8_t gic_version /* See xen_domctl_config_gic */;
+    /* IN: SVE vector length (divided by 128) exposed to the guest. */
+    uint8_t sve_vl;
+    /* IN: TEE mediator exposed to the guest. */
+    uint16_t tee_type /* See xen_domctl_config_tee */;
+    /* IN: Number of SPIs exposed to the guest. */
+    uint32_t nr_spis;
+    /*
+     * OUT
+     * Based on the property clock-frequency in the DT timer node.
+     * The property may be present when the bootloader/firmware doesn't
+     * set correctly CNTFRQ which hold the timer frequency.
+     *
+     * As it's not possible to trap this register, we have to replicate
+     * the value in the guest DT.
+     *
+     * = 0 => property not present
+     * > 0 => Value of the property
+     */
+    uint32_t clock_frequency;
+};
+
+#endif /* __XEN_AUTOGEN_ARCH_ARM_H */
+
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837183.1253223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBut4-00011v-Dt; Fri, 15 Nov 2024 11:53:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837183.1253223; Fri, 15 Nov 2024 11:53: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 1tBut3-0000xm-Q9; Fri, 15 Nov 2024 11:53:17 +0000
Received: by outflank-mailman (input) for mailman id 837183;
 Fri, 15 Nov 2024 11: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut1-0005UF-8P
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:15 +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 2fe136ee-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:10 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5c9693dc739so2408723a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:10 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 2fe136ee-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJmZTEzNmVlLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTkxLjAxNjU3Niwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671590; x=1732276390; 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=+rE1VyD3E57vOSpzTtqjmMt2x6hf09RI8sZ6fi//89E=;
        b=FqfVi9STgeP0izdPg3fN7cnsozxkHlwJqZm7cTk4GbtEvtyFImwKUv75PBHRZ4ryOW
         eYB4uYSR8ny5ECeDK8geZZK3Ik9D+P/k8y9azu116mKyyn756LSADRVTsBr1twEOVsa6
         5dhIheA8pWtbiu/uFfL76iAQnFDYT/ZMHZ3lY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671590; x=1732276390;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+rE1VyD3E57vOSpzTtqjmMt2x6hf09RI8sZ6fi//89E=;
        b=PTusEy5zvdAlyT4aRntoA9hdoDorbdzsjiXRAQ51wI7RPIJ6tqcrCAD0Tm4zRSwypp
         wvI2SHGbQNzg2dmVN4NMf2TJZ8kKSygg/B+GpUK6PK9wEJdGADruyXBWyeRcvT1LObm9
         bpPwhrdhSoubjNN/7rkbwwwTrW2JQjkKOu7th1YQhqKDvc78UzLIPt3MzOE2hycT6mfl
         WruMtSGCQ4TkbuP6RIJ3BB0p9YFLxtHDyK1iPSGerFcN9H0IXPrrCwmXg8tz9gjqW1z6
         rFvv/vISqC3t3S/mE5QKJVLkIp87Lz0Xev7XmZpbA67ojgU2/4UXkjp7kk0eAsNtg1a8
         6faw==
X-Gm-Message-State: AOJu0YwGS/+ugbLfY7Re4c9Okqr/vXDa4YBxqBPpsJzmvTfRkz4BY6Ce
	r8jok0CACxPvCPL87DZlQMm6EBc/bKF/EhhZ0QAL1MWjed2XqOZMKwtZ+zR7A34TttQw/cw0qoG
	7
X-Google-Smtp-Source: AGHT+IEDY0K0AAGiSnjgrcf0bfnRY/vNG5r7/IRULMB5XGUWNKgKilEXyQPOXdFkiFI2g9bSWgs9ZQ==
X-Received: by 2002:a17:907:7b86:b0:a99:d6cf:a1df with SMTP id a640c23a62f3a-aa483525e0bmr175996766b.46.1731671589858;
        Fri, 15 Nov 2024 03:53:09 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Tim Deegan <tim@xen.org>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>
Subject: [RFC PATCH 14/25] xen: Replace common bitmaps in domctl.createdomain with autogenerated versions
Date: Fri, 15 Nov 2024 11:51:43 +0000
Message-ID: <20241115115200.2824-15-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/helpers/init-xenstore-domain.c          |  4 +-
 tools/libs/light/libxl_create.c               | 14 ++---
 tools/ocaml/libs/xc/xenctrl.ml                |  4 +-
 tools/ocaml/libs/xc/xenctrl.mli               |  4 +-
 tools/ocaml/libs/xc/xenctrl_stubs.c           |  8 +--
 tools/python/xen/lowlevel/xc/xc.c             |  4 +-
 .../xenbindgen/extra/domctl/createdomain.toml | 59 +++++++++++++++++++
 .../paging-mempool/test-paging-mempool.c      |  2 +-
 tools/tests/resource/test-resource.c          |  8 +--
 tools/tests/tsx/test-tsx.c                    |  4 +-
 xen/arch/arm/dom0less-build.c                 |  4 +-
 xen/arch/arm/domain.c                         |  6 +-
 xen/arch/arm/domain_build.c                   |  4 +-
 xen/arch/x86/domain.c                         | 12 ++--
 xen/arch/x86/include/asm/hvm/nestedhvm.h      |  2 +-
 xen/arch/x86/mm/shadow/common.c               |  4 +-
 xen/arch/x86/setup.c                          |  8 +--
 xen/arch/x86/tboot.c                          |  2 +-
 xen/common/domain.c                           | 18 +++---
 xen/drivers/passthrough/iommu.c               |  4 +-
 xen/include/public/autogen/domctl.h           | 28 +++++++++
 xen/include/public/domctl.h                   | 34 +----------
 xen/include/xen/sched.h                       | 10 ++--
 23 files changed, 152 insertions(+), 95 deletions(-)

diff --git a/tools/helpers/init-xenstore-domain.c b/tools/helpers/init-xenstore-domain.c
index a9f2f9859df6..315aa8b8aec9 100644
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -84,7 +84,7 @@ static int build(xc_interface *xch)
     struct e820entry e820[3];
     struct xen_domctl_createdomain config = {
         .ssidref = SECINITSID_DOMU,
-        .flags = XEN_DOMCTL_CDF_xs_domain,
+        .flags = XEN_DOMCTL_CDF_XS_DOMAIN,
         .max_vcpus = 1,
         .max_evtchn_port = -1, /* No limit. */
 
@@ -176,7 +176,7 @@ static int build(xc_interface *xch)
 
     if ( dom->container_type == XC_DOM_HVM_CONTAINER )
     {
-        config.flags |= XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
+        config.flags |= XEN_DOMCTL_CDF_HVM | XEN_DOMCTL_CDF_HAP;
         config.arch.emulation_flags = XEN_X86_EMU_LAPIC;
         dom->target_pages = mem_size >> XC_PAGE_SHIFT;
         dom->mmio_size = GB(4) - LAPIC_BASE_ADDRESS;
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index 791b0fac0601..042d01191528 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -648,30 +648,30 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
         };
 
         if (info->type != LIBXL_DOMAIN_TYPE_PV) {
-            create.flags |= XEN_DOMCTL_CDF_hvm;
+            create.flags |= XEN_DOMCTL_CDF_HVM;
 
             if ( libxl_defbool_val(info->hap) )
-                create.flags |= XEN_DOMCTL_CDF_hap;
+                create.flags |= XEN_DOMCTL_CDF_HAP;
 
             if ( !libxl_defbool_val(info->oos) )
-                create.flags |= XEN_DOMCTL_CDF_oos_off;
+                create.flags |= XEN_DOMCTL_CDF_OOS_OFF;
 
             if ( libxl_defbool_val(b_info->nested_hvm) )
-                create.flags |= XEN_DOMCTL_CDF_nested_virt;
+                create.flags |= XEN_DOMCTL_CDF_NESTED_VIRT;
         }
 
         if (libxl_defbool_val(b_info->vpmu))
-            create.flags |= XEN_DOMCTL_CDF_vpmu;
+            create.flags |= XEN_DOMCTL_CDF_VPMU;
 
         assert(info->passthrough != LIBXL_PASSTHROUGH_DEFAULT);
         LOG(DETAIL, "passthrough: %s",
             libxl_passthrough_to_string(info->passthrough));
 
         if (info->passthrough != LIBXL_PASSTHROUGH_DISABLED)
-            create.flags |= XEN_DOMCTL_CDF_iommu;
+            create.flags |= XEN_DOMCTL_CDF_IOMMU;
 
         if (info->passthrough == LIBXL_PASSTHROUGH_SYNC_PT)
-            create.iommu_opts |= XEN_DOMCTL_IOMMU_no_sharept;
+            create.iommu_opts |= XEN_DOMCTL_IOMMU_OPTS_NO_SHAREPT;
 
         LOG(DETAIL, "altp2m: %s", libxl_altp2m_mode_to_string(b_info->altp2m));
         switch(b_info->altp2m) {
diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index 3c4c95d48319..17c2228704f2 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -49,7 +49,7 @@ type x86_arch_emulation_flags =
   | X86_EMU_VPCI
 
 type x86_arch_misc_flags =
-  | X86_MSR_RELAXED
+  | X86_MISC_MSR_RELAXED
 
 type xen_x86_arch_domainconfig =
   {
@@ -72,7 +72,7 @@ type domain_create_flag =
   | CDF_VPMU
 
 type domain_create_iommu_opts =
-  | IOMMU_NO_SHAREPT
+  | IOMMU_OPTS_NO_SHAREPT
 
 type domctl_create_config =
   {
diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
index 74919a14bec4..0d351ec2e557 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -43,7 +43,7 @@ type x86_arch_emulation_flags =
   | X86_EMU_VPCI
 
 type x86_arch_misc_flags =
-  | X86_MSR_RELAXED
+  | X86_MISC_MSR_RELAXED
 
 type xen_x86_arch_domainconfig = {
   emulation_flags: x86_arch_emulation_flags list;
@@ -65,7 +65,7 @@ type domain_create_flag =
   | CDF_VPMU
 
 type domain_create_iommu_opts =
-  | IOMMU_NO_SHAREPT
+  | IOMMU_OPTS_NO_SHAREPT
 
 type domctl_create_config = {
   ssidref: int32;
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index b701f45daa8d..1f2cf41a9cc7 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -232,13 +232,13 @@ CAMLprim value stub_xc_domain_create(value xch_val, value wanted_domid, value co
 	domain_handle_of_uuid_string(cfg.handle, String_val(VAL_HANDLE));
 
 	cfg.flags = ocaml_list_to_c_bitmap
-		/* ! domain_create_flag CDF_ lc */
-		/* ! XEN_DOMCTL_CDF_ XEN_DOMCTL_CDF_MAX max */
+		/* ! domain_create_flag CDF_ none */
+		/* ! XEN_DOMCTL_CDF_ XEN_DOMCTL_CDF__ALL all */
 		(VAL_FLAGS);
 
 	cfg.iommu_opts = ocaml_list_to_c_bitmap
-		/* ! domain_create_iommu_opts IOMMU_ lc */
-		/* ! XEN_DOMCTL_IOMMU_ XEN_DOMCTL_IOMMU_MAX max */
+		/* ! domain_create_iommu_opts IOMMU_ none */
+		/* ! XEN_DOMCTL_IOMMU_ XEN_DOMCTL_IOMMU_OPTS__ALL all */
 		(VAL_IOMMU_OPTS);
 
 	arch_domconfig = Field(VAL_ARCH, 0);
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index ba6a61217f9f..d98f18ccc87a 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -158,8 +158,8 @@ static PyObject *pyxc_domain_create(XcObject *self,
     }
 
 #if defined (__i386) || defined(__x86_64__)
-    if ( config.flags & XEN_DOMCTL_CDF_hvm )
-        config.arch.emulation_flags = XEN_X86_EMU_ALL &
+    if ( config.flags & XEN_DOMCTL_CDF_HVM )
+        config.arch.emulation_flags = XEN_X86_EMU__ALL &
                                       ~(XEN_X86_EMU_VPCI |
                                         XEN_X86_EMU_USE_PIRQ);
 #elif defined (__arm__) || defined(__aarch64__)
diff --git a/tools/rust/xenbindgen/extra/domctl/createdomain.toml b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
index 097dc202f352..02f65d134b55 100644
--- a/tools/rust/xenbindgen/extra/domctl/createdomain.toml
+++ b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
@@ -22,3 +22,62 @@ value = 2
 name = "limited"
 description = "Use limited mode for the altp2m."
 value = 3
+
+################################################################################
+
+[[bitmaps]]
+name = "xen_domctl_cdf"
+description = "Content of the `flags` field of the domain creation hypercall."
+typ = { tag = "u32" }
+
+[[bitmaps.bits]]
+name = "hvm"
+description = "Set if this is an HVM guest. Cleared if it's PV."
+shift = 0
+
+[[bitmaps.bits]]
+name = "hap"
+description = "Use hardware-assisted paging if available"
+shift = 1
+
+[[bitmaps.bits]]
+name = "s3_integrity"
+description = "Set if domain memory integrity is to be verified by tboot during Sx."
+shift = 2
+
+[[bitmaps.bits]]
+name = "oos_off"
+description = "Set if Out-of-Sync shadow page tables are to be disabled"
+shift = 3
+
+[[bitmaps.bits]]
+name = "xs_domain"
+description = "Set if this is a xenstore domain"
+shift = 4
+
+[[bitmaps.bits]]
+name = "iommu"
+description = "Set if this is domain can make use of the IOMMU"
+shift = 5
+
+[[bitmaps.bits]]
+name = "nested_virt"
+description = "Set for the domain to have nested virtualization enabled."
+shift = 6
+
+[[bitmaps.bits]]
+name = "vpmu"
+description = "Set to expose a vPMU to this domain."
+shift = 7
+
+################################################################################
+
+[[bitmaps]]
+name = "xen_domctl_iommu_opts"
+description = "Content of the `iommu_opts` field of the domain creation hypercall."
+typ = { tag = "u32" }
+
+[[bitmaps.bits]]
+name = "no_sharept"
+description = "Set to _NOT_ share page tables between the CPU and the IOMMU when it would be possible to do so."
+shift = 0
diff --git a/tools/tests/paging-mempool/test-paging-mempool.c b/tools/tests/paging-mempool/test-paging-mempool.c
index 512c42803c0e..511c4a710e1f 100644
--- a/tools/tests/paging-mempool/test-paging-mempool.c
+++ b/tools/tests/paging-mempool/test-paging-mempool.c
@@ -21,7 +21,7 @@ static xc_interface *xch;
 static uint32_t domid;
 
 static struct xen_domctl_createdomain create = {
-    .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+    .flags = XEN_DOMCTL_CDF_HVM | XEN_DOMCTL_CDF_HAP,
     .max_vcpus = 1,
     .max_grant_frames = 1,
     .max_grant_version = 1,
diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
index b0a9f5f1e8b6..f541044036d9 100644
--- a/tools/tests/resource/test-resource.c
+++ b/tools/tests/resource/test-resource.c
@@ -143,7 +143,7 @@ static void test_domain_configurations(void)
         {
             .name = "x86 PVH",
             .create = {
-                .flags = XEN_DOMCTL_CDF_hvm,
+                .flags = XEN_DOMCTL_CDF_HVM,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
                 .max_grant_version = 1,
@@ -156,7 +156,7 @@ static void test_domain_configurations(void)
         {
             .name = "ARM",
             .create = {
-                .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+                .flags = XEN_DOMCTL_CDF_HVM | XEN_DOMCTL_CDF_HAP,
                 .max_vcpus = 2,
                 .max_grant_frames = 40,
                 .max_grant_version = 1,
@@ -175,7 +175,7 @@ static void test_domain_configurations(void)
         printf("Test %s\n", t->name);
 
 #if defined(__x86_64__) || defined(__i386__)
-        if ( t->create.flags & XEN_DOMCTL_CDF_hvm )
+        if ( t->create.flags & XEN_DOMCTL_CDF_HVM )
         {
             if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hvm) )
             {
@@ -188,7 +188,7 @@ static void test_domain_configurations(void)
              * SHADOW is available.
              */
             if ( physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap )
-                t->create.flags |= XEN_DOMCTL_CDF_hap;
+                t->create.flags |= XEN_DOMCTL_CDF_HAP;
             else if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_shadow) )
             {
                 printf("  Skip: Neither HAP or SHADOW available\n");
diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
index 324bcf67153a..a3097515b280 100644
--- a/tools/tests/tsx/test-tsx.c
+++ b/tools/tests/tsx/test-tsx.c
@@ -467,7 +467,7 @@ static void test_guests(void)
     if ( xen_has_hvm )
     {
         struct xen_domctl_createdomain c = {
-            .flags = XEN_DOMCTL_CDF_hvm,
+            .flags = XEN_DOMCTL_CDF_HVM,
             .max_vcpus = 1,
             .max_grant_frames = 1,
             .max_grant_version = 1,
@@ -477,7 +477,7 @@ static void test_guests(void)
         };
 
         if ( physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap )
-            c.flags |= XEN_DOMCTL_CDF_hap;
+            c.flags |= XEN_DOMCTL_CDF_HAP;
         else if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_shadow) )
             return fail("  HVM available, but neither HAP nor Shadow\n");
 
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 1c6219c7cc82..cd8e59aa762a 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -867,7 +867,7 @@ void __init create_domUs(void)
         struct domain *d;
         struct xen_domctl_createdomain d_cfg = {
             .arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE,
-            .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+            .flags = XEN_DOMCTL_CDF_HVM | XEN_DOMCTL_CDF_HAP,
             /*
              * The default of 1023 should be sufficient for guests because
              * on ARM we don't bind physical interrupts to event channels.
@@ -912,7 +912,7 @@ void __init create_domUs(void)
         if ( iommu_enabled &&
              (iommu || dt_find_compatible_node(node, NULL,
                                                "multiboot,device-tree")) )
-            d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+            d_cfg.flags |= XEN_DOMCTL_CDF_IOMMU;
 
         if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
         {
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index c6c5a0d1af23..54e849b02f9e 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -567,7 +567,7 @@ int arch_vcpu_create(struct vcpu *v)
     v->arch.hcr_el2 = get_default_hcr_flags();
 
     v->arch.mdcr_el2 = HDCR_TDRA | HDCR_TDOSA | HDCR_TDA;
-    if ( !(v->domain->options & XEN_DOMCTL_CDF_vpmu) )
+    if ( !(v->domain->options & XEN_DOMCTL_CDF_VPMU) )
         v->arch.mdcr_el2 |= HDCR_TPM | HDCR_TPMCR;
 
     if ( (rc = vcpu_vgic_init(v)) != 0 )
@@ -607,8 +607,8 @@ void vcpu_switch_to_aarch64_mode(struct vcpu *v)
 int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
     unsigned int max_vcpus;
-    unsigned int flags_required = (XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap);
-    unsigned int flags_optional = (XEN_DOMCTL_CDF_iommu | XEN_DOMCTL_CDF_vpmu);
+    unsigned int flags_required = (XEN_DOMCTL_CDF_HVM | XEN_DOMCTL_CDF_HAP);
+    unsigned int flags_optional = (XEN_DOMCTL_CDF_IOMMU | XEN_DOMCTL_CDF_VPMU);
     unsigned int sve_vl_bits = sve_decode_vl(config->arch.sve_vl);
 
     if ( (config->flags & ~flags_optional) != flags_required )
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 773412ba2acb..08b251617bae 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2190,7 +2190,7 @@ void __init create_dom0(void)
 {
     struct domain *dom0;
     struct xen_domctl_createdomain dom0_cfg = {
-        .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+        .flags = XEN_DOMCTL_CDF_HVM | XEN_DOMCTL_CDF_HAP,
         .max_evtchn_port = -1,
         .max_grant_frames = gnttab_dom0_frames(),
         .max_maptrack_frames = -1,
@@ -2211,7 +2211,7 @@ void __init create_dom0(void)
     dom0_cfg.max_vcpus = dom0_max_vcpus();
 
     if ( iommu_enabled )
-        dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+        dom0_cfg.flags |= XEN_DOMCTL_CDF_IOMMU;
 
     if ( opt_dom0_sve )
     {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 1ef095f349f7..63a52a8ae23d 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -633,9 +633,9 @@ void arch_vcpu_destroy(struct vcpu *v)
 
 int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
-    bool hvm = config->flags & XEN_DOMCTL_CDF_hvm;
-    bool hap = config->flags & XEN_DOMCTL_CDF_hap;
-    bool nested_virt = config->flags & XEN_DOMCTL_CDF_nested_virt;
+    bool hvm = config->flags & XEN_DOMCTL_CDF_HVM;
+    bool hap = config->flags & XEN_DOMCTL_CDF_HAP;
+    bool nested_virt = config->flags & XEN_DOMCTL_CDF_NESTED_VIRT;
     unsigned int max_vcpus;
 
     if ( hvm ? !hvm_enabled : !IS_ENABLED(CONFIG_PV) )
@@ -654,7 +654,7 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
     }
 
     if ( !IS_ENABLED(CONFIG_TBOOT) &&
-         (config->flags & XEN_DOMCTL_CDF_s3_integrity) )
+         (config->flags & XEN_DOMCTL_CDF_S3_INTEGRITY) )
     {
         dprintk(XENLOG_INFO, "S3 integrity check not valid without CONFIG_TBOOT\n");
         return -EINVAL;
@@ -668,10 +668,10 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 
     if ( !hvm )
         /*
-         * It is only meaningful for XEN_DOMCTL_CDF_oos_off to be clear
+         * It is only meaningful for XEN_DOMCTL_CDF_OOS_OFF to be clear
          * for HVM guests.
          */
-        config->flags |= XEN_DOMCTL_CDF_oos_off;
+        config->flags |= XEN_DOMCTL_CDF_OOS_OFF;
 
     if ( nested_virt && !hvm_nested_virt_supported() )
     {
diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
index ea2c1bc328c7..64e9e18a8cfd 100644
--- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
+++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
@@ -25,7 +25,7 @@ enum nestedhvm_vmexits {
 /* Nested HVM on/off per domain */
 static inline bool nestedhvm_enabled(const struct domain *d)
 {
-    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
+    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_NESTED_VIRT);
 }
 
 /* Nested VCPU */
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 0176e33bc9c7..f103f19e9220 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -2344,7 +2344,7 @@ static void sh_update_paging_modes(struct vcpu *v)
 #endif /* (SHADOW_OPTIMIZATIONS & SHOPT_VIRTUAL_TLB) */
 
 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
-    if ( !(d->options & XEN_DOMCTL_CDF_oos_off) &&
+    if ( !(d->options & XEN_DOMCTL_CDF_OOS_OFF) &&
          mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) )
     {
         int i;
@@ -2491,7 +2491,7 @@ static void sh_update_paging_modes(struct vcpu *v)
 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
     /* We need to check that all the vcpus have paging enabled to
      * unsync PTs. */
-    if ( !(d->options & XEN_DOMCTL_CDF_oos_off) )
+    if ( !(d->options & XEN_DOMCTL_CDF_OOS_OFF) )
     {
         int pe = 1;
         struct vcpu *vptr;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 0443555d9bb8..65ea3fc86beb 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -960,7 +960,7 @@ static struct domain *__init create_dom0(const module_t *image,
     static char __initdata cmdline[MAX_GUEST_CMDLINE];
 
     struct xen_domctl_createdomain dom0_cfg = {
-        .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
+        .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_S3_INTEGRITY : 0,
         .max_evtchn_port = -1,
         .max_grant_frames = -1,
         .max_maptrack_frames = -1,
@@ -975,16 +975,16 @@ static struct domain *__init create_dom0(const module_t *image,
 
     if ( opt_dom0_pvh )
     {
-        dom0_cfg.flags |= (XEN_DOMCTL_CDF_hvm |
+        dom0_cfg.flags |= (XEN_DOMCTL_CDF_HVM |
                            ((hvm_hap_supported() && !opt_dom0_shadow) ?
-                            XEN_DOMCTL_CDF_hap : 0));
+                            XEN_DOMCTL_CDF_HAP : 0));
 
         dom0_cfg.arch.emulation_flags |=
             XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
     }
 
     if ( iommu_enabled )
-        dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+        dom0_cfg.flags |= XEN_DOMCTL_CDF_IOMMU;
 
     /* Create initial domain.  Not d0 for pvshim. */
     domid = get_initial_domain_id();
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index d5db60d335e3..648a5269bb8a 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -203,7 +203,7 @@ static void tboot_gen_domain_integrity(const uint8_t key[TB_KEY_SIZE],
     vmac_set_key((uint8_t *)key, &ctx);
     for_each_domain( d )
     {
-        if ( !(d->options & XEN_DOMCTL_CDF_s3_integrity) )
+        if ( !(d->options & XEN_DOMCTL_CDF_S3_INTEGRITY) )
             continue;
         printk("MACing Domain %u\n", d->domain_id);
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index ad19ff1cef23..799f76bf042d 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -564,16 +564,16 @@ static void _domain_destroy(struct domain *d)
 
 static int sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
-    bool hvm = config->flags & XEN_DOMCTL_CDF_hvm;
-    bool hap = config->flags & XEN_DOMCTL_CDF_hap;
-    bool iommu = config->flags & XEN_DOMCTL_CDF_iommu;
-    bool vpmu = config->flags & XEN_DOMCTL_CDF_vpmu;
+    bool hvm = config->flags & XEN_DOMCTL_CDF_HVM;
+    bool hap = config->flags & XEN_DOMCTL_CDF_HAP;
+    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_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) )
     {
         dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags);
         return -EINVAL;
@@ -600,7 +600,7 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
 
     if ( iommu )
     {
-        if ( config->iommu_opts & ~XEN_DOMCTL_IOMMU_no_sharept )
+        if ( config->iommu_opts & ~XEN_DOMCTL_IOMMU_OPTS_NO_SHAREPT )
         {
             dprintk(XENLOG_INFO, "Unknown IOMMU options %#x\n",
                     config->iommu_opts);
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 9e74a1fc72fa..1d133e56c0bb 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -224,7 +224,7 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
      * be enabled.
      */
     hd->hap_pt_share = hap_enabled(d) && iommu_hap_pt_share &&
-        !(opts & XEN_DOMCTL_IOMMU_no_sharept);
+        !(opts & XEN_DOMCTL_IOMMU_OPTS_NO_SHAREPT);
 
     /*
      * NB: 'relaxed' h/w domains don't need the IOMMU mappings to be kept
@@ -542,7 +542,7 @@ int iommu_quarantine_dev_init(device_t *dev)
 
 static int __init iommu_quarantine_init(void)
 {
-    dom_io->options |= XEN_DOMCTL_CDF_iommu;
+    dom_io->options |= XEN_DOMCTL_CDF_IOMMU;
 
     return iommu_domain_init(dom_io, 0);
 }
diff --git a/xen/include/public/autogen/domctl.h b/xen/include/public/autogen/domctl.h
index 00202f5e65b9..bd1f4bedc727 100644
--- a/xen/include/public/autogen/domctl.h
+++ b/xen/include/public/autogen/domctl.h
@@ -18,5 +18,33 @@ enum xen_domctl_altp2m_mode {
     XEN_DOMCTL_ALTP2M_MODE_LIMITED = 3,
 };
 
+/* Content of the `flags` field of the domain creation hypercall. */
+struct xen_domctl_cdf {}; /* GREP FODDER */
+/* Set if this is an HVM guest. Cleared if it's PV. */
+#define XEN_DOMCTL_CDF_HVM (1U << 0)
+/* Use hardware-assisted paging if available */
+#define XEN_DOMCTL_CDF_HAP (1U << 1)
+/* Set if domain memory integrity is to be verified by tboot during Sx. */
+#define XEN_DOMCTL_CDF_S3_INTEGRITY (1U << 2)
+/* Set if Out-of-Sync shadow page tables are to be disabled */
+#define XEN_DOMCTL_CDF_OOS_OFF (1U << 3)
+/* Set if this is a xenstore domain */
+#define XEN_DOMCTL_CDF_XS_DOMAIN (1U << 4)
+/* Set if this is domain can make use of the IOMMU */
+#define XEN_DOMCTL_CDF_IOMMU (1U << 5)
+/* Set for the domain to have nested virtualization enabled. */
+#define XEN_DOMCTL_CDF_NESTED_VIRT (1U << 6)
+/* Set to expose a vPMU to this domain. */
+#define XEN_DOMCTL_CDF_VPMU (1U << 7)
+/* Mask covering all defined bits */
+#define XEN_DOMCTL_CDF__ALL (0xFFU)
+
+/* Content of the `iommu_opts` field of the domain creation hypercall. */
+struct xen_domctl_iommu_opts {}; /* GREP FODDER */
+/* Set to _NOT_ share page tables between the CPU and the IOMMU when it would be possible to do so. */
+#define XEN_DOMCTL_IOMMU_OPTS_NO_SHAREPT (1U << 0)
+/* Mask covering all defined bits */
+#define XEN_DOMCTL_IOMMU_OPTS__ALL (0x1U)
+
 #endif /* __XEN_AUTOGEN_DOMCTL_H */
 
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 95d62c859302..2d1423f6fd91 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -45,40 +45,10 @@ struct xen_domctl_createdomain {
     /* IN parameters */
     uint32_t ssidref;
     xen_domain_handle_t handle;
- /* Is this an HVM guest (as opposed to a PV guest)? */
-#define _XEN_DOMCTL_CDF_hvm           0
-#define XEN_DOMCTL_CDF_hvm            (1U<<_XEN_DOMCTL_CDF_hvm)
- /* Use hardware-assisted paging if available? */
-#define _XEN_DOMCTL_CDF_hap           1
-#define XEN_DOMCTL_CDF_hap            (1U<<_XEN_DOMCTL_CDF_hap)
- /* Should domain memory integrity be verifed by tboot during Sx? */
-#define _XEN_DOMCTL_CDF_s3_integrity  2
-#define XEN_DOMCTL_CDF_s3_integrity   (1U<<_XEN_DOMCTL_CDF_s3_integrity)
- /* Disable out-of-sync shadow page tables? */
-#define _XEN_DOMCTL_CDF_oos_off       3
-#define XEN_DOMCTL_CDF_oos_off        (1U<<_XEN_DOMCTL_CDF_oos_off)
- /* Is this a xenstore domain? */
-#define _XEN_DOMCTL_CDF_xs_domain     4
-#define XEN_DOMCTL_CDF_xs_domain      (1U<<_XEN_DOMCTL_CDF_xs_domain)
- /* Should this domain be permitted to use the IOMMU? */
-#define _XEN_DOMCTL_CDF_iommu         5
-#define XEN_DOMCTL_CDF_iommu          (1U<<_XEN_DOMCTL_CDF_iommu)
-#define _XEN_DOMCTL_CDF_nested_virt   6
-#define XEN_DOMCTL_CDF_nested_virt    (1U << _XEN_DOMCTL_CDF_nested_virt)
-/* Should we expose the vPMU to the guest? */
-#define XEN_DOMCTL_CDF_vpmu           (1U << 7)
-
-/* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
-#define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_vpmu
 
+    /* See xen_domctl_cdf */
     uint32_t flags;
-
-#define _XEN_DOMCTL_IOMMU_no_sharept  0
-#define XEN_DOMCTL_IOMMU_no_sharept   (1U << _XEN_DOMCTL_IOMMU_no_sharept)
-
-/* Max XEN_DOMCTL_IOMMU_* constant.  Used for ABI checking. */
-#define XEN_DOMCTL_IOMMU_MAX XEN_DOMCTL_IOMMU_no_sharept
-
+    /* See xen_domctl_iommu_opts */
     uint32_t iommu_opts;
 
     /*
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 90666576c2f8..1b75277e5dea 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1125,7 +1125,7 @@ static always_inline bool is_control_domain(const struct domain *d)
 static always_inline bool is_pv_domain(const struct domain *d)
 {
     return IS_ENABLED(CONFIG_PV) &&
-        evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
+        evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_HVM));
 }
 
 static always_inline bool is_pv_vcpu(const struct vcpu *v)
@@ -1167,7 +1167,7 @@ static always_inline bool is_pv_64bit_vcpu(const struct vcpu *v)
 static always_inline bool is_hvm_domain(const struct domain *d)
 {
     return IS_ENABLED(CONFIG_HVM) &&
-        evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
+        evaluate_nospec(d->options & XEN_DOMCTL_CDF_HVM);
 }
 
 static always_inline bool is_hvm_vcpu(const struct vcpu *v)
@@ -1179,7 +1179,7 @@ static always_inline bool hap_enabled(const struct domain *d)
 {
     /* sanitise_domain_config() rejects HAP && !HVM */
     return IS_ENABLED(CONFIG_HVM) &&
-        evaluate_nospec(d->options & XEN_DOMCTL_CDF_hap);
+        evaluate_nospec(d->options & XEN_DOMCTL_CDF_HAP);
 }
 
 static inline bool is_hwdom_pinned_vcpu(const struct vcpu *v)
@@ -1195,12 +1195,12 @@ static inline bool is_vcpu_online(const struct vcpu *v)
 
 static inline bool is_xenstore_domain(const struct domain *d)
 {
-    return d->options & XEN_DOMCTL_CDF_xs_domain;
+    return d->options & XEN_DOMCTL_CDF_XS_DOMAIN;
 }
 
 static always_inline bool is_iommu_enabled(const struct domain *d)
 {
-    return evaluate_nospec(d->options & XEN_DOMCTL_CDF_iommu);
+    return evaluate_nospec(d->options & XEN_DOMCTL_CDF_IOMMU);
 }
 
 extern bool sched_smt_power_savings;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837185.1253230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBut5-0001Jo-S3; Fri, 15 Nov 2024 11:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837185.1253230; Fri, 15 Nov 2024 11: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 1tBut5-0001HZ-Au; Fri, 15 Nov 2024 11:53:19 +0000
Received: by outflank-mailman (input) for mailman id 837185;
 Fri, 15 Nov 2024 11:53: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut2-0005UF-8e
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:16 +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 317a9d80-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:13 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9ec267b879so113468166b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:13 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 317a9d80-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxN2E5ZDgwLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTkzLjYzOTE0Mywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671593; x=1732276393; 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=YdcqdHnAzRpCPLvdrirhNP7a31l6SrQju/bT6qqXrVU=;
        b=YmWdTlDwHBXbwdfMD0UbUgKB3ZdQwRcSUJD4sAFQ2j6ecy59TxJZiDucKUUIZhy9nc
         DMQAT16N6+PBOi8C89lrqEcn81ZScvLTNR0cNzAwOwTnGVzZwXM8cKRDxpaBP9CBpBpk
         k2a7FVeQlKc4RPXR6m3wcfF/OFSzQrcAIuBhg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671593; x=1732276393;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YdcqdHnAzRpCPLvdrirhNP7a31l6SrQju/bT6qqXrVU=;
        b=SbcmlRjvJ/K/l7RlGe+qN24W9dvsDq99TterbOrW2vKWC4nUvFvuXYDwXPV299ShjP
         5LzWtCtH3LpGAU1+peAYXBBpDIXZfTS5AkkPA+T76Y7LGSS5mBCb3R4T/kbeIa0S6omt
         4iZ94MY8FZXBgs8e1eZnTVtwJ29TeTlFQC8YcYj6QP7mKzxYD/6R2Vpt6tzUsThCxcue
         3z+O5jQMrjLbFsKM+278XLQV4Jswi4vboARlUysqJ4yHsy4QLE1CXqduS9ND0U+8y44G
         DqeT5rAD4e0JdNw6SEe7Pbfaou1jUceOGsZEFjicQAPlOjqZ8DKcPmvIfWunxk3H4BXi
         LHEQ==
X-Gm-Message-State: AOJu0YyivA/CZ9Vd/m2oGU7lhIMtCJAj75+B+2bcmrixJmZYDo/qsky0
	r+bZ5ngt7dbJEEuL2WIVXV4jrDLQsLpDlBRTnsn/ikGup4hWxXcctQAVxU0EvMFhFMv7qoe06oS
	p
X-Google-Smtp-Source: AGHT+IEDvV/405n73PWITIupZoKMG8c3LKgslPdtmAcYUaLjTP9TC/yezrFCJS0CrByvX0O/Df5EAw==
X-Received: by 2002:a17:907:f19f:b0:aa4:844d:e5cb with SMTP id a640c23a62f3a-aa4844dfdaamr172436166b.48.1731671592851;
        Fri, 15 Nov 2024 03:53:12 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [RFC PATCH 17/25] xen/ppc: Replace empty xen_arch_domainconfig with autogenerated one
Date: Fri, 15 Nov 2024 11:51:46 +0000
Message-ID: <20241115115200.2824-18-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 .../xenbindgen/extra/arch-ppc/domainconfig.toml    |  4 ++++
 xen/include/public/arch-ppc.h                      |  3 ---
 xen/include/public/autogen/arch_ppc.h              | 14 ++++++++++++++
 3 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 tools/rust/xenbindgen/extra/arch-ppc/domainconfig.toml
 create mode 100644 xen/include/public/autogen/arch_ppc.h

diff --git a/tools/rust/xenbindgen/extra/arch-ppc/domainconfig.toml b/tools/rust/xenbindgen/extra/arch-ppc/domainconfig.toml
new file mode 100644
index 000000000000..ecf9f1d9937d
--- /dev/null
+++ b/tools/rust/xenbindgen/extra/arch-ppc/domainconfig.toml
@@ -0,0 +1,4 @@
+[[structs]]
+name = "xen_arch_domainconfig"
+description = "ppc-specific domain settings."
+fields = []
diff --git a/xen/include/public/arch-ppc.h b/xen/include/public/arch-ppc.h
index 33a24e379551..1e0018e12c73 100644
--- a/xen/include/public/arch-ppc.h
+++ b/xen/include/public/arch-ppc.h
@@ -102,9 +102,6 @@ struct arch_shared_info {
 struct arch_vcpu_info {
 };
 
-struct xen_arch_domainconfig {
-};
-
 typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t;
 
 #endif
diff --git a/xen/include/public/autogen/arch_ppc.h b/xen/include/public/autogen/arch_ppc.h
new file mode 100644
index 000000000000..48fcc302f341
--- /dev/null
+++ b/xen/include/public/autogen/arch_ppc.h
@@ -0,0 +1,14 @@
+/*
+ * arch-ppc
+ *
+ * AUTOGENERATED. DO NOT MODIFY
+ */
+#ifndef __XEN_AUTOGEN_ARCH_PPC_H
+#define __XEN_AUTOGEN_ARCH_PPC_H
+
+/* ppc-specific domain settings. */
+struct xen_arch_domainconfig {
+};
+
+#endif /* __XEN_AUTOGEN_ARCH_PPC_H */
+
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837186.1253238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBut7-0001Ux-Ag; Fri, 15 Nov 2024 11:53:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837186.1253238; Fri, 15 Nov 2024 11: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 1tBut6-0001Su-Df; Fri, 15 Nov 2024 11:53:20 +0000
Received: by outflank-mailman (input) for mailman id 837186;
 Fri, 15 Nov 2024 11: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut2-0005U9-RE
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:16 +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 3104a531-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:12 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9a0ec0a94fso254097366b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:12 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 3104a531-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxMDRhNTMxLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTkyLjg4NjA3NSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671592; x=1732276392; 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=cQe9V1AhYWf4ai4F0ROLJKgWqyUIcsqP1I8KYkQgors=;
        b=La0jPCBV/Mv1UJUKVVO0NzSMUIXfUZ3Yre25rIj3Ipb6K1tlmZTNOsMRBkaYDneS/9
         koBKQnKjqDlHgyiR6RhmtKhfSai6UxVz7JZJwO8q03D0Ztxwr5httpdMyydpsuRkPhQ1
         yRX/79bcI6GV6CqjAAYKGFRuz0lguGW49vT30=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671592; x=1732276392;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cQe9V1AhYWf4ai4F0ROLJKgWqyUIcsqP1I8KYkQgors=;
        b=FmUSueyjK2cYzmqdWsGzEydARoai+GYgUBVW+uINy5XAMzScSDt+aaxn0Tj0BKKLqF
         ubqYmg6etNI1bQ4Ele61i0DOwYUEIhTgiwVIFiOiWKzWBlAhyv6f3bV08B4XZHJaU9/Y
         wwXyX1NxntupgzbQuCCr3f8f8xfLM89z61NOr/sZR7twnWFAJMdHns0IV4UYIwQ/sb4D
         wBVHWETB7ybYO/2Hkx/1eqerLIxhyA3GkF+N9yWO1UDPuXMgIl53UE04n6VGUFb/JDMY
         IUL99Fc9pe9GoQw/4UffdMaa2ZJIAFMPPPCyhDh/iTGOdgjnd6xxN5yJsxxoisyQydVf
         TflA==
X-Gm-Message-State: AOJu0Yx6lIFtfgTG7fB8nz65SiNm9O5ppGUXd5FT+YQl8hdb4yNM8AgP
	JWte/ihtNqhGHJhBJOBVXRPy+F8zfjWWm/hqDwjE4rCDPAuppWWHN2NJdgcJgSxhVTQHTmv20U/
	U
X-Google-Smtp-Source: AGHT+IEQ4pcTgOIxYTLd0C0XYSXTAYZbmAqR/sFKc273vUTbXWV38/T35FJDfzjxrCK0vIaUGLkDjA==
X-Received: by 2002:a17:907:868b:b0:a9a:422:ec7 with SMTP id a640c23a62f3a-aa4834827b2mr189416866b.32.1731671591958;
        Fri, 15 Nov 2024 03:53:11 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [RFC PATCH 16/25] xen/x86: Replace hand-crafted xen_arch_domainconfig with autogenerated one
Date: Fri, 15 Nov 2024 11:51:45 +0000
Message-ID: <20241115115200.2824-17-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/libs/light/libxl_x86.c                  |  4 +-
 tools/ocaml/libs/xc/xenctrl_stubs.c           |  4 +-
 .../extra/arch-x86/domainconfig.toml          | 87 +++++++++++++++++++
 .../xenbindgen/extra/domctl/createdomain.toml |  6 ++
 xen/arch/x86/domain.c                         |  8 +-
 xen/arch/x86/include/asm/domain.h             |  4 +-
 xen/arch/x86/setup.c                          |  2 +-
 xen/include/public/arch-x86/xen.h             | 51 -----------
 xen/include/public/autogen/arch_x86.h         | 52 +++++++++++
 xen/include/public/autogen/domctl.h           | 13 +++
 10 files changed, 170 insertions(+), 61 deletions(-)
 create mode 100644 tools/rust/xenbindgen/extra/arch-x86/domainconfig.toml
 create mode 100644 xen/include/public/autogen/arch_x86.h

diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
index a3164a3077fe..a3d856957b54 100644
--- a/tools/libs/light/libxl_x86.c
+++ b/tools/libs/light/libxl_x86.c
@@ -8,7 +8,7 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
 {
     switch(d_config->c_info.type) {
     case LIBXL_DOMAIN_TYPE_HVM:
-        config->arch.emulation_flags = (XEN_X86_EMU_ALL & ~XEN_X86_EMU_VPCI);
+        config->arch.emulation_flags = (XEN_X86_EMU__ALL & ~XEN_X86_EMU_VPCI);
         if (!libxl_defbool_val(d_config->b_info.u.hvm.pirq))
             config->arch.emulation_flags &= ~XEN_X86_EMU_USE_PIRQ;
         break;
@@ -24,7 +24,7 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
 
     config->arch.misc_flags = 0;
     if (libxl_defbool_val(d_config->b_info.arch_x86.msr_relaxed))
-        config->arch.misc_flags |= XEN_X86_MSR_RELAXED;
+        config->arch.misc_flags |= XEN_X86_MISC_MSR_RELAXED;
 
     return 0;
 }
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index 1f2cf41a9cc7..65ff4f636ea9 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -260,12 +260,12 @@ CAMLprim value stub_xc_domain_create(value xch_val, value wanted_domid, value co
 
 		cfg.arch.emulation_flags = ocaml_list_to_c_bitmap
 			/* ! x86_arch_emulation_flags X86_EMU_ none */
-			/* ! XEN_X86_EMU_ XEN_X86_EMU_ALL all */
+			/* ! XEN_X86_EMU_ XEN_X86_EMU__ALL all */
 			(VAL_EMUL_FLAGS);
 
 		cfg.arch.misc_flags = ocaml_list_to_c_bitmap
 			/* ! x86_arch_misc_flags X86_ none */
-			/* ! XEN_X86_ XEN_X86_MSR_RELAXED all */
+			/* ! XEN_X86_ XEN_X86_MISC__ALL all */
 			(VAL_MISC_FLAGS);
 
 #undef VAL_MISC_FLAGS
diff --git a/tools/rust/xenbindgen/extra/arch-x86/domainconfig.toml b/tools/rust/xenbindgen/extra/arch-x86/domainconfig.toml
new file mode 100644
index 000000000000..1f85b69de4a8
--- /dev/null
+++ b/tools/rust/xenbindgen/extra/arch-x86/domainconfig.toml
@@ -0,0 +1,87 @@
+[[bitmaps]]
+name = "xen_x86_emu"
+description = "Content of the `emulation_flags` field of the domain creation hypercall."
+typ = { tag = "u32" }
+
+[[bitmaps.bits]]
+name = "lapic"
+description = "Emulate Local APICs."
+shift = 0
+
+[[bitmaps.bits]]
+name = "hpet"
+description = "Emulate a HPET timer."
+shift = 1
+
+[[bitmaps.bits]]
+name = "pm"
+description = "Emulate the ACPI PM timer."
+shift = 2
+
+[[bitmaps.bits]]
+name = "rtc"
+description = "Emulate the RTC clock."
+shift = 3
+
+[[bitmaps.bits]]
+name = "ioapic"
+description = "Emulate an IOAPIC device."
+shift = 4
+
+[[bitmaps.bits]]
+name = "pic"
+description = "Emulate PIC devices."
+shift = 5
+
+[[bitmaps.bits]]
+name = "vga"
+description = "Emulate standard VGA."
+shift = 6
+
+[[bitmaps.bits]]
+name = "iommu"
+description = "Emulate an IOMMU."
+shift = 7
+
+[[bitmaps.bits]]
+name = "pit"
+description = "Emulate a PIT timer."
+shift = 8
+
+[[bitmaps.bits]]
+name = "use_pirq"
+description = "Route physical IRQs over event channels."
+shift = 9
+
+[[bitmaps.bits]]
+name = "vpci"
+description = "Handle PCI configuration space traps from within Xen."
+shift = 10
+
+################################################################################
+
+[[bitmaps]]
+name = "xen_x86_misc"
+description = "Contents of the `misc_flags` field of the domain creation hypercall"
+typ = { tag = "u32" }
+
+[[bitmaps.bits]]
+name = "msr_relaxed"
+description = "Grants access to the real physical MSR registers of the host."
+shift = 0
+
+################################################################################
+
+[[structs]]
+name = "xen_arch_domainconfig"
+description = "x86-specific domain settings."
+
+[[structs.fields]]
+name = "emulation_flags"
+description = "IN: Bitmap of devices to emulate."
+typ = { tag = "bitmap", args = "xen_x86_emu" }
+
+[[structs.fields]]
+name = "misc_flags"
+description = "IN: Miscellaneous x86-specific toggles."
+typ = { tag = "bitmap", args = "xen_x86_misc" }
diff --git a/tools/rust/xenbindgen/extra/domctl/createdomain.toml b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
index 02f65d134b55..3a6872aa325f 100644
--- a/tools/rust/xenbindgen/extra/domctl/createdomain.toml
+++ b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
@@ -1,3 +1,9 @@
+[[includes]]
+from = "arch"
+imports = ["xen_arch_domainconfig"]
+
+################################################################################
+
 [[enums]]
 name = "xen_domctl_altp2m_mode"
 description = "Content of the `altp2m_mode` field of the domain creation hypercall."
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 63a52a8ae23d..3c1c8f03aa81 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -708,7 +708,7 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         }
     }
 
-    if ( config->arch.misc_flags & ~XEN_X86_MSR_RELAXED )
+    if ( config->arch.misc_flags & ~XEN_X86_MISC_MSR_RELAXED )
     {
         dprintk(XENLOG_INFO, "Invalid arch misc flags %#x\n",
                 config->arch.misc_flags);
@@ -735,7 +735,7 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
 {
 #ifdef CONFIG_HVM
     /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
-    BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
+    BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU__ALL);
 #endif
 
     if ( is_hvm_domain(d) )
@@ -800,7 +800,7 @@ int arch_domain_create(struct domain *d,
     if ( is_hardware_domain(d) && is_pv_domain(d) )
         emflags |= XEN_X86_EMU_PIT;
 
-    if ( emflags & ~XEN_X86_EMU_ALL )
+    if ( emflags & ~XEN_X86_EMU__ALL )
     {
         printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
                d->domain_id, emflags);
@@ -887,7 +887,7 @@ int arch_domain_create(struct domain *d,
 
     domain_cpu_policy_changed(d);
 
-    d->arch.msr_relaxed = config->arch.misc_flags & XEN_X86_MSR_RELAXED;
+    d->arch.msr_relaxed = config->arch.misc_flags & XEN_X86_MISC_MSR_RELAXED;
 
     return 0;
 
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index b79d6badd71c..119604fadb5d 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -12,6 +12,8 @@
 #include <public/vcpu.h>
 #include <public/hvm/hvm_info_table.h>
 
+#include <public/autogen/arch_x86.h>
+
 #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
 
 /*
@@ -486,7 +488,7 @@ struct arch_domain
 
 #define X86_EMU_PIT     XEN_X86_EMU_PIT
 
-/* This must match XEN_X86_EMU_ALL in xen.h */
+/* This must match XEN_X86_EMU__ALL */
 #define X86_EMU_ALL             (X86_EMU_LAPIC | X86_EMU_HPET |         \
                                  X86_EMU_PM | X86_EMU_RTC |             \
                                  X86_EMU_IOAPIC | X86_EMU_PIC |         \
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 65ea3fc86beb..d408af54d997 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -967,7 +967,7 @@ static struct domain *__init create_dom0(const module_t *image,
         .max_grant_version = opt_gnttab_max_version,
         .max_vcpus = dom0_max_vcpus(),
         .arch = {
-            .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
+            .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MISC_MSR_RELAXED : 0,
         },
     };
     struct domain *d;
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
index fc2487986642..e864459cfd93 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -255,57 +255,6 @@ struct arch_shared_info {
 };
 typedef struct arch_shared_info arch_shared_info_t;
 
-#if defined(__XEN__) || defined(__XEN_TOOLS__)
-/*
- * struct xen_arch_domainconfig's ABI is covered by
- * XEN_DOMCTL_INTERFACE_VERSION.
- */
-struct xen_arch_domainconfig {
-#define _XEN_X86_EMU_LAPIC          0
-#define XEN_X86_EMU_LAPIC           (1U<<_XEN_X86_EMU_LAPIC)
-#define _XEN_X86_EMU_HPET           1
-#define XEN_X86_EMU_HPET            (1U<<_XEN_X86_EMU_HPET)
-#define _XEN_X86_EMU_PM             2
-#define XEN_X86_EMU_PM              (1U<<_XEN_X86_EMU_PM)
-#define _XEN_X86_EMU_RTC            3
-#define XEN_X86_EMU_RTC             (1U<<_XEN_X86_EMU_RTC)
-#define _XEN_X86_EMU_IOAPIC         4
-#define XEN_X86_EMU_IOAPIC          (1U<<_XEN_X86_EMU_IOAPIC)
-#define _XEN_X86_EMU_PIC            5
-#define XEN_X86_EMU_PIC             (1U<<_XEN_X86_EMU_PIC)
-#define _XEN_X86_EMU_VGA            6
-#define XEN_X86_EMU_VGA             (1U<<_XEN_X86_EMU_VGA)
-#define _XEN_X86_EMU_IOMMU          7
-#define XEN_X86_EMU_IOMMU           (1U<<_XEN_X86_EMU_IOMMU)
-#define _XEN_X86_EMU_PIT            8
-#define XEN_X86_EMU_PIT             (1U<<_XEN_X86_EMU_PIT)
-#define _XEN_X86_EMU_USE_PIRQ       9
-#define XEN_X86_EMU_USE_PIRQ        (1U<<_XEN_X86_EMU_USE_PIRQ)
-#define _XEN_X86_EMU_VPCI           10
-#define XEN_X86_EMU_VPCI            (1U<<_XEN_X86_EMU_VPCI)
-
-#define XEN_X86_EMU_ALL             (XEN_X86_EMU_LAPIC | XEN_X86_EMU_HPET |  \
-                                     XEN_X86_EMU_PM | XEN_X86_EMU_RTC |      \
-                                     XEN_X86_EMU_IOAPIC | XEN_X86_EMU_PIC |  \
-                                     XEN_X86_EMU_VGA | XEN_X86_EMU_IOMMU |   \
-                                     XEN_X86_EMU_PIT | XEN_X86_EMU_USE_PIRQ |\
-                                     XEN_X86_EMU_VPCI)
-    uint32_t emulation_flags;
-
-/*
- * Select whether to use a relaxed behavior for accesses to MSRs not explicitly
- * handled by Xen instead of injecting a #GP to the guest. Note this option
- * doesn't allow the guest to read or write to the underlying MSR.
- */
-#define XEN_X86_MSR_RELAXED (1u << 0)
-    uint32_t misc_flags;
-};
-
-/* Max  XEN_X86_* constant. Used for ABI checking. */
-#define XEN_X86_MISC_FLAGS_MAX XEN_X86_MSR_RELAXED
-
-#endif
-
 /*
  * Representations of architectural CPUID and MSR information.  Used as the
  * serialised version of Xen's internal representation.
diff --git a/xen/include/public/autogen/arch_x86.h b/xen/include/public/autogen/arch_x86.h
new file mode 100644
index 000000000000..94f35218342e
--- /dev/null
+++ b/xen/include/public/autogen/arch_x86.h
@@ -0,0 +1,52 @@
+/*
+ * arch-x86
+ *
+ * AUTOGENERATED. DO NOT MODIFY
+ */
+#ifndef __XEN_AUTOGEN_ARCH_X86_H
+#define __XEN_AUTOGEN_ARCH_X86_H
+
+/* Content of the `emulation_flags` field of the domain creation hypercall. */
+struct xen_x86_emu {}; /* GREP FODDER */
+/* Emulate Local APICs. */
+#define XEN_X86_EMU_LAPIC (1U << 0)
+/* Emulate a HPET timer. */
+#define XEN_X86_EMU_HPET (1U << 1)
+/* Emulate the ACPI PM timer. */
+#define XEN_X86_EMU_PM (1U << 2)
+/* Emulate the RTC clock. */
+#define XEN_X86_EMU_RTC (1U << 3)
+/* Emulate an IOAPIC device. */
+#define XEN_X86_EMU_IOAPIC (1U << 4)
+/* Emulate PIC devices. */
+#define XEN_X86_EMU_PIC (1U << 5)
+/* Emulate standard VGA. */
+#define XEN_X86_EMU_VGA (1U << 6)
+/* Emulate an IOMMU. */
+#define XEN_X86_EMU_IOMMU (1U << 7)
+/* Emulate a PIT timer. */
+#define XEN_X86_EMU_PIT (1U << 8)
+/* Route physical IRQs over event channels. */
+#define XEN_X86_EMU_USE_PIRQ (1U << 9)
+/* Handle PCI configuration space traps from within Xen. */
+#define XEN_X86_EMU_VPCI (1U << 10)
+/* Mask covering all defined bits */
+#define XEN_X86_EMU__ALL (0x7FFU)
+
+/* Contents of the `misc_flags` field of the domain creation hypercall */
+struct xen_x86_misc {}; /* GREP FODDER */
+/* Grants access to the real physical MSR registers of the host. */
+#define XEN_X86_MISC_MSR_RELAXED (1U << 0)
+/* Mask covering all defined bits */
+#define XEN_X86_MISC__ALL (0x1U)
+
+/* x86-specific domain settings. */
+struct xen_arch_domainconfig {
+    /* IN: Bitmap of devices to emulate. */
+    uint32_t emulation_flags /* See xen_x86_emu */;
+    /* IN: Miscellaneous x86-specific toggles. */
+    uint32_t misc_flags /* See xen_x86_misc */;
+};
+
+#endif /* __XEN_AUTOGEN_ARCH_X86_H */
+
diff --git a/xen/include/public/autogen/domctl.h b/xen/include/public/autogen/domctl.h
index bd1f4bedc727..276e05168688 100644
--- a/xen/include/public/autogen/domctl.h
+++ b/xen/include/public/autogen/domctl.h
@@ -6,6 +6,19 @@
 #ifndef __XEN_AUTOGEN_DOMCTL_H
 #define __XEN_AUTOGEN_DOMCTL_H
 
+/* for xen_arch_domainconfig */
+#if defined(__i386__) || defined(__x86_64__)
+#include "arch_x86.h"
+#elif defined(__arm__) || defined(__aarch64__)
+#include "arch_arm.h"
+#elif defined(__powerpc64__)
+#include "arch_ppc.h"
+#elif defined(__riscv)
+#include "arch_riscv.h"
+#else
+#error "Unsupported architecture"
+#endif
+
 /* Content of the `altp2m_mode` field of the domain creation hypercall. */
 enum xen_domctl_altp2m_mode {
     /* Keep altp2m disabled */
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837187.1253243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBut8-0001po-Sn; Fri, 15 Nov 2024 11:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837187.1253243; Fri, 15 Nov 2024 11:53: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 1tBut7-0001jT-MJ; Fri, 15 Nov 2024 11:53:21 +0000
Received: by outflank-mailman (input) for mailman id 837187;
 Fri, 15 Nov 2024 11: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut3-0005U9-Ro
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:17 +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 3217a713-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:14 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-aa4833e9c44so87785166b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:14 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 3217a713-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMyMTdhNzEzLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTk0LjY3MzAwNywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671594; x=1732276394; 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=iGLhEwTxqC5XGNE3vexdwFzRd1DT5gLHTbpiHQthKgs=;
        b=aixj6kqoggGMFmWTQOLTYZo28HbmjoTOUv6mtXu7yhF8zZQ24exlgiD032UhNZdvE2
         xv+g4h+uv0PUeVSNYWUPd11HUT5IdK8rFRHZdv66+AivLvzyes76gHnCT9+0D3VnH88x
         fQizSFh59Cci/UbfVGqo+Xbmc3bj7xencqLlc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671594; x=1732276394;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iGLhEwTxqC5XGNE3vexdwFzRd1DT5gLHTbpiHQthKgs=;
        b=FtFVlTExfbODNE5jkyaZ/uKKeQ5zugGYWZ7ABO1rXW1WyxgGRFExpJrOKqn/2RZmNr
         CV24iZy27GjHf0bHpRbW6TEEaDA4FM0/8YP6UTJiuc3zEQRneBkUpKd00ye7dCe5t8YT
         FeDYydUEYca9OdmQ1WRkdu7gNuViLv6eUcpM19sPtjKiClrDYjXGwFjJID3fLdVFSbEt
         2QLX/xyttO724CtX35jf3NqI+Nlj4IWzHRg+XeS6TMhgNRoFojc5uPxpK1CbmzOqRQMs
         HDy5yTQppvwhq1KHiUvNWsc5rqAWsthP21C2Mh7AbOwpB6WaEZj0w44WaLwaPbP3rXzD
         Um2A==
X-Gm-Message-State: AOJu0YypNaQtQTYCdm1evDDU/R5WJ1LC/q3wsmmL/RFiFZOg3qhcwQET
	y3wgcDXikJTqKwZpZvdv+IyvkUV2L7QacBgpgpHAItf2JDp5JghYwKcDEJO9A7jEViSRwG8S8za
	0
X-Google-Smtp-Source: AGHT+IFlQzPLfoakEsrMGH/yEjfZGv9k2/KhyBMVLvwJK0oZD/d0ZH9yGyQOjD/yvsTZZkuoQv0fwg==
X-Received: by 2002:a17:907:3f03:b0:a9a:a891:b43e with SMTP id a640c23a62f3a-aa483555ef6mr204083366b.50.1731671593836;
        Fri, 15 Nov 2024 03:53:13 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [RFC PATCH 18/25] xen/riscv: Replace empty xen_arch_domainconfig with autogenerated one
Date: Fri, 15 Nov 2024 11:51:47 +0000
Message-ID: <20241115115200.2824-19-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 .../xenbindgen/extra/arch-riscv/domainconfig.toml  |  4 ++++
 xen/include/public/arch-riscv.h                    |  3 ---
 xen/include/public/autogen/arch_riscv.h            | 14 ++++++++++++++
 3 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 tools/rust/xenbindgen/extra/arch-riscv/domainconfig.toml
 create mode 100644 xen/include/public/autogen/arch_riscv.h

diff --git a/tools/rust/xenbindgen/extra/arch-riscv/domainconfig.toml b/tools/rust/xenbindgen/extra/arch-riscv/domainconfig.toml
new file mode 100644
index 000000000000..ecac1ae22b1c
--- /dev/null
+++ b/tools/rust/xenbindgen/extra/arch-riscv/domainconfig.toml
@@ -0,0 +1,4 @@
+[[structs]]
+name = "xen_arch_domainconfig"
+description = "riscv-specific domain settings."
+fields = []
diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
index 168263b92074..a199dbc6a15f 100644
--- a/xen/include/public/arch-riscv.h
+++ b/xen/include/public/arch-riscv.h
@@ -55,9 +55,6 @@ struct vcpu_guest_context {
 typedef struct vcpu_guest_context vcpu_guest_context_t;
 DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 
-struct xen_arch_domainconfig {
-};
-
 #endif
 
 /* TODO:  add a placeholder entry if no real ones surface */
diff --git a/xen/include/public/autogen/arch_riscv.h b/xen/include/public/autogen/arch_riscv.h
new file mode 100644
index 000000000000..e0d3aa681862
--- /dev/null
+++ b/xen/include/public/autogen/arch_riscv.h
@@ -0,0 +1,14 @@
+/*
+ * arch-riscv
+ *
+ * AUTOGENERATED. DO NOT MODIFY
+ */
+#ifndef __XEN_AUTOGEN_ARCH_RISCV_H
+#define __XEN_AUTOGEN_ARCH_RISCV_H
+
+/* riscv-specific domain settings. */
+struct xen_arch_domainconfig {
+};
+
+#endif /* __XEN_AUTOGEN_ARCH_RISCV_H */
+
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 11:53:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 11:53:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837189.1253252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tButB-0002Hh-0v; Fri, 15 Nov 2024 11:53:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837189.1253252; Fri, 15 Nov 2024 11:53: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 1tBut9-0002C5-Vl; Fri, 15 Nov 2024 11:53:23 +0000
Received: by outflank-mailman (input) for mailman id 837189;
 Fri, 15 Nov 2024 11: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut5-0005UF-Lg
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:19 +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 334a5837-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:16 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9ed0ec0e92so219707066b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:16 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 334a5837-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMzNGE1ODM3LWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTk2LjY3ODEwNSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671596; x=1732276396; 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=Wd12TLoYnDOqV6lniP/y6y+oLqd9d3Mn0zg1NVePIgk=;
        b=DXhOzYtn4SA/66Fz3lA6Cyi6bf6ZcGXtbkIb2otsJRm5itLvOMIgGYTVrPbsLWJ5w0
         /U0BosFIqRGduyJC6cukG0UBBxVlForgksBwR82nKiCz9Wy+SMFjs2c93x43ZoEhO6AQ
         zJ3zAPtcvA9pH+0ci6CMv8kgL2m3cHvmzcE6E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671596; x=1732276396;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Wd12TLoYnDOqV6lniP/y6y+oLqd9d3Mn0zg1NVePIgk=;
        b=MarlDjurWRNqPllPRyWyHKgUNvxWnkIeENdRaLUcqwJXAOVSahxEG7THmcYssocwdW
         25u/U4X3uDiBcxL5NOIskY1BDVlWgUpvgMxJZVeLClPJQpQPxXKDzJCgtOjU5OJc3MVw
         x2XktnOo7WnufWGKEFngQADTbnPK12kzasFRiF+5tYZhQCahwx+FDW+7Vi8SUqin54GO
         K7Dwh5+zPFLOQKqH8zYHZdUNme97FrZHQSPPH1pgnXF/hpmfMsRIYRximkb9pKiaQ0No
         KqQu0FBEz81d3u6dXICNJygwuoFmQ79jmGaT/A6rVRnV4eoSqUZjVK6TUXCopzBjyzTx
         rHxg==
X-Gm-Message-State: AOJu0YzYOfyjeqjLIe3ZC658oMLrONvPIzU2OsazxDmyy2a08xkm6kB6
	bmXb42Pw7wJs4HulMZolkHxKiBapCCrfIvnIdWWeZHKUVa6UlpulIetuA99YjeL40nIIYP1rGU1
	u
X-Google-Smtp-Source: AGHT+IHs4nZ1914Yii8bj8glRUI8ZTNmXj93Zs7v2Scvi8HxKrRIJdlKohw+2miFfcCUCEzgqMcJWA==
X-Received: by 2002:a17:907:3e0f:b0:a7a:9f0f:ab18 with SMTP id a640c23a62f3a-aa48341caa6mr189774766b.20.1731671595801;
        Fri, 15 Nov 2024 03:53:15 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [RFC PATCH 20/25] tools/xen-sys: Create a crate with autogenerated Rust constructs
Date: Fri, 15 Nov 2024 11:51:49 +0000
Message-ID: <20241115115200.2824-21-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/Makefile           |  5 ++++-
 tools/rust/xen-sys/.gitignore |  2 ++
 tools/rust/xen-sys/Cargo.toml |  8 +++++++
 tools/rust/xen-sys/src/lib.rs | 41 +++++++++++++++++++++++++++++++++++
 4 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100644 tools/rust/xen-sys/.gitignore
 create mode 100644 tools/rust/xen-sys/Cargo.toml
 create mode 100644 tools/rust/xen-sys/src/lib.rs

diff --git a/tools/rust/Makefile b/tools/rust/Makefile
index 80e2f0e2817e..814e5b94447f 100644
--- a/tools/rust/Makefile
+++ b/tools/rust/Makefile
@@ -3,6 +3,9 @@ XEN_ROOT=$(CURDIR)/../..
 # Path to the Xen hypercall IDL parser
 XENBINDGEN=$(CURDIR)/xenbindgen
 
+# Path to the autogenerated Rust bindings crate
+CRATE_XENSYS=$(CURDIR)/xen-sys
+
 # Output folder for the autogenerated C headers
 #
 # Must contain autogenerated files only because they're all wiped on update
@@ -37,7 +40,7 @@ update: clean-autogen
 .PHONY: verify
 verify:
 	set -eu; \
-	for i in "${XENBINDGEN}"; do \
+	for i in "${CRATE_XENSYS}" "${XENBINDGEN}"; do \
 	    echo "Verifying $$i"; \
 	    cd "$$i"; \
 	    cargo fmt -- --check; \
diff --git a/tools/rust/xen-sys/.gitignore b/tools/rust/xen-sys/.gitignore
new file mode 100644
index 000000000000..ca98cd96efdc
--- /dev/null
+++ b/tools/rust/xen-sys/.gitignore
@@ -0,0 +1,2 @@
+/target/
+Cargo.lock
diff --git a/tools/rust/xen-sys/Cargo.toml b/tools/rust/xen-sys/Cargo.toml
new file mode 100644
index 000000000000..fb91beaa1525
--- /dev/null
+++ b/tools/rust/xen-sys/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "xen-sys"
+version = "0.1.0"
+edition = "2021"
+license = "MIT"
+
+[dependencies]
+bitflags = { version = "2.6.0", default-features = false }
diff --git a/tools/rust/xen-sys/src/lib.rs b/tools/rust/xen-sys/src/lib.rs
new file mode 100644
index 000000000000..7b3ea6c8ad4c
--- /dev/null
+++ b/tools/rust/xen-sys/src/lib.rs
@@ -0,0 +1,41 @@
+//! xen-sys
+//!
+//! This crate contains low-level primitives to interact with the Xen
+//! hypervisor. It relies on the autogenerated bindings of xenbindgen and
+//! a few closely related primitives, like [`Align64`].
+#![no_std]
+
+use core::ops::{Deref, DerefMut};
+
+/// Wrapper for pointers and 64bit integers so they are _always_ aligned to 8
+/// octets, even in 32bit machines.
+#[repr(align(8))]
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub struct Align64<T>(pub T);
+
+impl<T> Default for Align64<T> {
+    fn default() -> Self {
+        // Experimental feature
+        //
+        // This is required because `*mut U` can't implement Default. We take
+        // the convention that `Default` means "zero". For `t: Align64<*mut T>`
+        // that means `t` is null.
+        //
+        // If the `xen` crate stops needing this, then this impl must go away.
+        unsafe { Self(core::mem::zeroed()) }
+    }
+}
+
+impl<T> Deref for Align64<T> {
+    type Target = T;
+
+    fn deref(&self) -> &Self::Target {
+        &self.0
+    }
+}
+
+impl<T> DerefMut for Align64<T> {
+    fn deref_mut(&mut self) -> &mut Self::Target {
+        &mut self.0
+    }
+}
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:00:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:00:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837278.1253282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv03-0000dv-16; Fri, 15 Nov 2024 12:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837278.1253282; Fri, 15 Nov 2024 12: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 1tBv02-0000do-US; Fri, 15 Nov 2024 12:00:30 +0000
Received: by outflank-mailman (input) for mailman id 837278;
 Fri, 15 Nov 2024 12:00: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBv01-0000cC-P2
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:00:29 +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 312a4637-a349-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:00:22 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5c9454f3bfaso2309271a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:00:22 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df26a69sm172433766b.34.2024.11.15.04.00.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 04: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: 312a4637-a349-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxMmE0NjM3LWEzNDktMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcyMDIyLjYwODg3Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731672022; x=1732276822; 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=CMZopKE3md8N+w4Qn8bVW0vtxEACylgofEOVSBRD2HI=;
        b=l+3SEUvSnv69KGWtqliqIp9mv+NOlDlGuZ4DXnfCKqizvlzx2WiYBV0TTeDVmkoZsv
         8nHulzkqLZgHZmxsCD52w/9jleqz9I88ozv+5NhMoCJgdzbnxP3GLJqfLeiEOBcbSfWo
         1HBllx5GFGWmuD69i38Uck6aW01BSlD6kAqoo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731672022; x=1732276822;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CMZopKE3md8N+w4Qn8bVW0vtxEACylgofEOVSBRD2HI=;
        b=swWRY991myJmUGFFuVq1g0ghQ9Car9YLEf30kwpsPkitNwjNuPKD54OYGlfULsma2D
         V2V+wSQdEg3ojFtGwGlZQ9u5J7oa2dgXUSgyhzrjTHKlEDEsgPw0MAGn9qqGLw75EH23
         DAXIzlgNzOVkU3dudEhmIUpTYR+4gN9TzMSjVxm87nx2AT2dYrx8080wPPddmYQlLZur
         QrplgKdtyt+i18gSd6NNdSfgrz24J2yYuyxyw2zOMz1u4tJdHutjSsn+8aU9chiUk3zI
         Bk/Xph+AdURGCtfK+azF8r4izn47YLucjAq5g5O1cyyQTWvJ1I36aHjgR8Md2RQltd5E
         YQLQ==
X-Forwarded-Encrypted: i=1; AJvYcCVqsC37jVgipFYSHKMC5jFTkK4MdGnibXxZ7LjW3H8kXjXfyaHKl6LZ3Jsnc7Tik6wK+Sp1JdEaIZE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzK6OEIfRIRYG8ExzWHv1Le7Cb7kKObU682VXD2aCV/0/Gjcvrg
	l2cCmAdarmtJkvC6mYIMU7UspoB3g3nniEaDfAbJ9k5cvUXVSZLC2ClJvdXmwU4cQCfF4oA8hQ8
	P
X-Google-Smtp-Source: AGHT+IFERjav1kVCdcBIsICs8xBVHD5vhl/zvudyRzdoG8gN0C2gBx8MQdTZ0h/wwhflEts/OiXJMw==
X-Received: by 2002:a17:906:c141:b0:a99:375f:4523 with SMTP id a640c23a62f3a-aa4835288ddmr207440266b.44.1731672021894;
        Fri, 15 Nov 2024 04:00:21 -0800 (PST)
Message-ID: <2b13f12c-905d-478c-b525-a3a8c69d5ac7@citrix.com>
Date: Fri, 15 Nov 2024 12:00:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241115105036.218418-2-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 10:50 am, Luca Fancellu wrote:
> diff --git a/xen/include/xen/xvmalloc.h b/xen/include/xen/xvmalloc.h
> index 440d85a284bb..802be6687085 100644
> --- a/xen/include/xen/xvmalloc.h
> +++ b/xen/include/xen/xvmalloc.h
> @@ -40,20 +40,46 @@
>      ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
>                               __alignof__(typeof(*(ptr)))))
>  
> +#if defined(CONFIG_HAS_VMAP)
> +
>  /* Free any of the above. */
>  void xvfree(void *va);
>  
> +/* Underlying functions */
> +void *_xvmalloc(size_t size, unsigned int align);
> +void *_xvzalloc(size_t size, unsigned int align);
> +void *_xvrealloc(void *va, size_t size, unsigned int align);
> +
> +#else
> +
> +static inline void xvfree(void *va)
> +{
> +    xfree(va);
> +}
> +
> +void *_xvmalloc(size_t size, unsigned int align)
> +{
> +    return _xmalloc(size, align);
> +}
> +
> +void *_xvzalloc(size_t size, unsigned int align)
> +{
> +    return _xzalloc(size, align);
> +}
> +
> +void *_xvrealloc(void *va, size_t size, unsigned int align)
> +{
> +    return _xrealloc(va, size, align);
> +}
> +
> +#endif

Does this really compile with the wrappers not being static inline ?

That aside, could we not do this using conditional aliases, rather than
wrapping the functions?Â  It would certainly be shorter, code wise.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:01:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:01:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837296.1253292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv1C-0001Or-97; Fri, 15 Nov 2024 12:01:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837296.1253292; Fri, 15 Nov 2024 12:01: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 1tBv1C-0001Ok-6V; Fri, 15 Nov 2024 12:01:42 +0000
Received: by outflank-mailman (input) for mailman id 837296;
 Fri, 15 Nov 2024 12:01: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tButB-0005UF-NF
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:25 +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 350c12ee-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:20 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9a850270e2so324784966b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:20 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 350c12ee-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM1MGMxMmVlLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNjAwLjA4ODQ4NSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671599; x=1732276399; 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=5TtGZQt/o/0voOaBWuW5frWebRPJ5tcYXUj7qWmm5UM=;
        b=cByWrLaV4JZ+ej7rI5qyHE/Jj5wvQ8+cyeb2H/byDHR97euSJeHkIipRqL+JBhwJeW
         WGRfD1Zy83Sv2j9oibcdcW4M8SciMYtaM0NNhGGBM/CYVSZags2rUUcyn2CE4Ws8pHtl
         WT9PaZXP7pGjSjRFrBRRqGEKlzOYMRwdvDmwE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671599; x=1732276399;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5TtGZQt/o/0voOaBWuW5frWebRPJ5tcYXUj7qWmm5UM=;
        b=aSYzGy+3xjSKx4Nqq7lg9l8EfpcLhJHPbStjGTxY/dQhMtsr8j4/0Z2nSP1sFwTWYy
         2aZ1gXYk2u15zp+nhul19D0YI9Jsj9hGHPKTwFrXtkLXUNbwwjr5v4+qOqxkw+nCyvLa
         2/j8vOLCHP14YkP+SD1dZdJioyjqi1150+F1qE+xOms40b8MdIhJ06Y/UKyg6f9I0foD
         2MPFlOJrC9KsaSXnvkZ6sAuGhQxSZOPt4i2Z6ZkQyvXBbr9PKxMrz7VxCpHAxUyOc7uK
         CupBQecGM9tMlB40SNWHrzfWEbqZS9RaC/xdhmcXmNWlbRBwFaLQlC+nhgKt+mlpiVC6
         mHFA==
X-Gm-Message-State: AOJu0YzdRsFHSKCeF4G3kucaPWEi+1mPNDWD5e8tj0MXNtzmkDpObU8I
	31xUVee/px5zKgE9ZjgnXNWxaOuaP1HnVGej3urVQ/H7ONnpAx61T2AfSlOpLjB8QhFb3BtHek7
	x
X-Google-Smtp-Source: AGHT+IHqwuL6u7ZjChl11XwFW1ENcCh75yYnxH+6nO4Gf2UMXhuGEEd24iwFQNwokjSfqH88fD717Q==
X-Received: by 2002:a17:907:9802:b0:a9a:1778:7024 with SMTP id a640c23a62f3a-aa483421c64mr210075266b.20.1731671598808;
        Fri, 15 Nov 2024 03:53:18 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [RFC PATCH 23/25] licence: Add Unicode-DFS-2016 to the list of licences
Date: Fri, 15 Nov 2024 11:51:52 +0000
Message-ID: <20241115115200.2824-24-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's transitively reached by Rust code.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 LICENSES/Unicode-DFS-2016 | 56 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 LICENSES/Unicode-DFS-2016

diff --git a/LICENSES/Unicode-DFS-2016 b/LICENSES/Unicode-DFS-2016
new file mode 100644
index 000000000000..eca277f05e0e
--- /dev/null
+++ b/LICENSES/Unicode-DFS-2016
@@ -0,0 +1,56 @@
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+See Terms of Use for definitions of Unicode Inc.'s Data Files and Software.
+
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/,
+http://www.unicode.org/ivd/data/, and
+http://www.unicode.org/utility/trac/browser/.
+
+Unicode Data Files do not include PDF online code charts under the directory
+http://www.unicode.org/Public/.
+
+Software includes any source code published in the Unicode Standard or under
+the directories http://www.unicode.org/Public/,
+http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/,
+http://source.icu-project.org/repos/icu/, and
+http://www.unicode.org/utility/trac/browser/.
+
+NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING,
+INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA
+FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO
+BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT
+AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR
+SOFTWARE.
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright Â© 1991-2016 Unicode, Inc. All rights reserved. Distributed under the
+Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the Unicode data files and any associated documentation (the "Data Files")
+or Unicode software and any associated documentation (the "Software") to deal
+in the Data Files or Software without restriction, including without
+limitation the rights to use, copy, modify, merge, publish, distribute, and/or
+sell copies of the Data Files or Software, and to permit persons to whom the
+Data Files or Software are furnished to do so, provided that either
+
+  * (a) this copyright and permission notice appear with all copies of the Data Files or Software, or 
+  * (b) this copyright and permission notice appear in associated Documentation. 
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
+PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE
+DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in these Data Files or Software without prior written authorization of the
+copyright holder.
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:02:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:02:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837305.1253302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv1q-00024w-JC; Fri, 15 Nov 2024 12:02:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837305.1253302; Fri, 15 Nov 2024 12: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 1tBv1q-00024p-G2; Fri, 15 Nov 2024 12:02:22 +0000
Received: by outflank-mailman (input) for mailman id 837305;
 Fri, 15 Nov 2024 12:02: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut5-0005U9-H2
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:19 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32c5a80e-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:15 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9a0ef5179dso313774066b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:15 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 32c5a80e-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMyYzVhODBlLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNTk1Ljg2MjQ0Mywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671595; x=1732276395; 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=b+N/BoPDPF+FDyxeB8VC1PzNpWxozefZT+Maz4yXPWA=;
        b=eogdI5RyCeSJRRo3o/h6GKQaGMQgJN0kx6vEXPZ/S4j4954W5g2WxHjnIH+bllQitP
         jp38C7CLoKP2qGphLBmkkfBPVUdxSoiXPflmnANKuXGaT56cbVTlTNTDb8NiNtGi6gvU
         H+qs8RmSCfhsQJO46xM5rsi3RUW1wHuJOBSTU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671595; x=1732276395;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=b+N/BoPDPF+FDyxeB8VC1PzNpWxozefZT+Maz4yXPWA=;
        b=O/xG2wznR4JphlJpL4IQuCefGbQfCmUeNWWZMWsz1/j0SU6iCQzbj3xbswH5+hqQib
         KnYd500Hi3PDyXtLHfKFrxJ6KwyP/o3055F0H9gaaqYJH65qQoXQXbs62wk5XMrKykaR
         GV9AU1wIZDdLnwB3wXwJb+3sF/j/L2hlmsFJduSlTXQR/+M8r0MRdrrIq/Bxi8IYs6CD
         xTZhoCMLvkqGgZDLq0TZjH25c/AZsjMW9xrlRAjd1bh3OuhNTWPPoqB8QmR1hol0FMBo
         Mh0xl1blZztGAwHBEu4WmNqkPdYK3ZO9Qey3Ke0A0v0qyhPv9SKZvItYAwUrsxDnJUfn
         UxXA==
X-Gm-Message-State: AOJu0YwzvBvK+Sc9t/eTHuARhuUtcG4r63jLTJd/r0Fj8JxNX/ntHviB
	YwrcqheM2zzkR+blykLlfdgvCyWlQIRK6zTZqG92KMjTe4oSnvdkQ7W4D7ikS8NfnRa7aARRZzW
	I
X-Google-Smtp-Source: AGHT+IGKtdNpRNDLBKXGKwssmmliwCnjWY1IyAWAm+Wgg9U0l7uFgihat0PlR051i92rPrUjj6XKvA==
X-Received: by 2002:a17:907:6e94:b0:a9a:c57f:9634 with SMTP id a640c23a62f3a-aa483525e7dmr215523866b.42.1731671594834;
        Fri, 15 Nov 2024 03:53:14 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [RFC PATCH 19/25] xen: Replace hand-crafted domctl/createdomain with autogenerated version
Date: Fri, 15 Nov 2024 11:51:48 +0000
Message-ID: <20241115115200.2824-20-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With xen_arch_domainconfig and every bitmap/enum already autogenerated,
add the final piece to enable autogeneration of the createdomain
hypercall.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 .../xenbindgen/extra/domctl/createdomain.toml | 96 +++++++++++++++++++
 xen/include/public/autogen/domctl.h           | 54 +++++++++++
 xen/include/public/domctl.h                   | 56 +----------
 xen/include/public/sysctl.h                   |  1 +
 4 files changed, 152 insertions(+), 55 deletions(-)

diff --git a/tools/rust/xenbindgen/extra/domctl/createdomain.toml b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
index 3a6872aa325f..f20cb8790039 100644
--- a/tools/rust/xenbindgen/extra/domctl/createdomain.toml
+++ b/tools/rust/xenbindgen/extra/domctl/createdomain.toml
@@ -87,3 +87,99 @@ typ = { tag = "u32" }
 name = "no_sharept"
 description = "Set to _NOT_ share page tables between the CPU and the IOMMU when it would be possible to do so."
 shift = 0
+
+################################################################################
+
+[[structs]]
+name = "xen_domctl_createdomain"
+description = """
+Create a new domain with the passed parameters.
+
+IMPORTANT: The domid part of the domctl is IN/OUT. When the passed
+domid is 0 or over `DOMID_FIRST_RESERVED` a new domid is auto-allocated
+and returned."""
+
+[[structs.fields]]
+name = "ssidref"
+description = "IN: `Source Security IDentifier` (See XSM)."
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "handle"
+description = "IN: Unique identifier for this guest given by the toolstack."
+typ = { tag = "array", args = [{ tag = "u8" }, 16]  }
+
+[[structs.fields]]
+name = "flags"
+description = "IN: Bitmap of domain features to enable/disable."
+typ = { tag = "bitmap", args = "xen_domctl_cdf" }
+
+[[structs.fields]]
+name = "iommu_opts"
+description = "IN: Bitmap of configuration settings for the IOMMU."
+typ = { tag = "bitmap", args = "xen_domctl_iommu_opts" }
+
+[[structs.fields]]
+name = "max_vcpus"
+description = "IN: Maximum number of CPUs this domain can hold, including hotplug."
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "max_evtchn_port"
+description = "IN: Maximum number of usable event channels"
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "max_grant_frames"
+description = '''
+IN: Maximum number of pages this domain is able
+    to grant access to for other domains.
+
+`< 0` means "use default value in the hypervisor."'''
+typ = { tag = "i32" }
+
+[[structs.fields]]
+name = "max_maptrack_frames"
+description = '''
+IN: Maximum number of pages of foreign domains
+    can be accessed via the grant mechanism.
+
+`< 0` means "use default value in the hypervisor."'''
+typ = { tag = "i32" }
+
+[[structs.fields]]
+name = "max_grant_version"
+description = "Maximum grant table version allowed for this domain"
+typ = { tag = "u8" }
+
+[[structs.fields]]
+name = "rsvd0_a"
+description = "Unused padding. Reserved to zero."
+typ = { tag = "array", args = [{ tag = "u8" }, 3]  }
+
+[[structs.fields]]
+name = "altp2m_mode"
+description = "Which mode to configure altp2m with"
+typ = { tag = "u8" }
+
+[[structs.fields]]
+name = "rsvd0_b"
+description = "Unused padding. Reserved to zero."
+typ = { tag = "array", args = [{ tag = "u8" }, 3]  }
+
+[[structs.fields]]
+name = "vmtrace_size"
+description = "IN: Per-vCPU buffer size in octets. 0 to disable."
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "cpupool_id"
+description = "IN: CPU pool to use; 0 or an existing CPU pool."
+typ = { tag = "u32" }
+
+[[structs.fields]]
+name = "arch"
+description = """Arch-specific settings.
+
+Each architecture is free to make its fields IN/OUT/INOUT"""
+typ = { tag = "struct", args = "xen_arch_domainconfig" }
diff --git a/xen/include/public/autogen/domctl.h b/xen/include/public/autogen/domctl.h
index 276e05168688..8a0934039169 100644
--- a/xen/include/public/autogen/domctl.h
+++ b/xen/include/public/autogen/domctl.h
@@ -59,5 +59,59 @@ struct xen_domctl_iommu_opts {}; /* GREP FODDER */
 /* Mask covering all defined bits */
 #define XEN_DOMCTL_IOMMU_OPTS__ALL (0x1U)
 
+/*
+ * Create a new domain with the passed parameters.
+ *
+ * IMPORTANT: The domid part of the domctl is IN/OUT. When the passed
+ * domid is 0 or over `DOMID_FIRST_RESERVED` a new domid is auto-allocated
+ * and returned.
+ */
+struct xen_domctl_createdomain {
+    /* IN: `Source Security IDentifier` (See XSM). */
+    uint32_t ssidref;
+    /* IN: Unique identifier for this guest given by the toolstack. */
+    uint8_t handle[16];
+    /* IN: Bitmap of domain features to enable/disable. */
+    uint32_t flags /* See xen_domctl_cdf */;
+    /* IN: Bitmap of configuration settings for the IOMMU. */
+    uint32_t iommu_opts /* See xen_domctl_iommu_opts */;
+    /* IN: Maximum number of CPUs this domain can hold, including hotplug. */
+    uint32_t max_vcpus;
+    /* IN: Maximum number of usable event channels */
+    uint32_t max_evtchn_port;
+    /*
+     * IN: Maximum number of pages this domain is able
+     *     to grant access to for other domains.
+     *
+     * `< 0` means "use default value in the hypervisor."
+     */
+    int32_t max_grant_frames;
+    /*
+     * IN: Maximum number of pages of foreign domains
+     *     can be accessed via the grant mechanism.
+     *
+     * `< 0` means "use default value in the hypervisor."
+     */
+    int32_t max_maptrack_frames;
+    /* Maximum grant table version allowed for this domain */
+    uint8_t max_grant_version;
+    /* Unused padding. Reserved to zero. */
+    uint8_t rsvd0_a[3];
+    /* Which mode to configure altp2m with */
+    uint8_t altp2m_mode;
+    /* Unused padding. Reserved to zero. */
+    uint8_t rsvd0_b[3];
+    /* IN: Per-vCPU buffer size in octets. 0 to disable. */
+    uint32_t vmtrace_size;
+    /* IN: CPU pool to use; 0 or an existing CPU pool. */
+    uint32_t cpupool_id;
+    /*
+     * Arch-specific settings.
+     *
+     * Each architecture is free to make its fields IN/OUT/INOUT
+     */
+    struct xen_arch_domainconfig arch;
+};
+
 #endif /* __XEN_AUTOGEN_DOMCTL_H */
 
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 2d1423f6fd91..01404cf301fa 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -33,62 +33,8 @@
  *
  * Last version bump: Xen 4.19
  */
-#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
-
-/*
- * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
- * If it is specified as an invalid value (0 or >= DOMID_FIRST_RESERVED),
- * an id is auto-allocated and returned.
- */
-/* XEN_DOMCTL_createdomain */
-struct xen_domctl_createdomain {
-    /* IN parameters */
-    uint32_t ssidref;
-    xen_domain_handle_t handle;
 
-    /* See xen_domctl_cdf */
-    uint32_t flags;
-    /* See xen_domctl_iommu_opts */
-    uint32_t iommu_opts;
-
-    /*
-     * Various domain limits, which impact the quantity of resources
-     * (global mapping space, xenheap, etc) a guest may consume.  For
-     * max_grant_frames and max_maptrack_frames, < 0 means "use the
-     * default maximum value in the hypervisor".
-     */
-    uint32_t max_vcpus;
-    uint32_t max_evtchn_port;
-    int32_t max_grant_frames;
-    int32_t max_maptrack_frames;
-
-    /*
-     * Maximum grant table version the domain can be configured with.
-     *
-     * Domains always start with v1 (if CONFIG_GRANT_TABLE) and can be bumped
-     * to use up to `max_grant_version` via GNTTABOP_set_version.
-     *
-     * Must be zero iff !CONFIG_GRANT_TABLE.
-     */
-    uint8_t max_grant_version;
-
-    /* Unused. Reserved to zero. */
-    uint8_t rsvd0_a[3];
-
-    /* See xen_domctl_altp2m_mode */
-    uint8_t altp2m_mode;
-
-    /* Unused. Reserved to zero. */
-    uint8_t rsvd0_b[3];
-
-    /* Per-vCPU buffer size in bytes.  0 to disable. */
-    uint32_t vmtrace_size;
-
-    /* CPU pool to use; specify 0 or a specific existing pool */
-    uint32_t cpupool_id;
-
-    struct xen_arch_domainconfig arch;
-};
+#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
 
 /* XEN_DOMCTL_getdomaininfo */
 struct xen_domctl_getdomaininfo {
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 9e773490a5ac..e882c1e31059 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -17,6 +17,7 @@
 #include "xen.h"
 #include "domctl.h"
 #include "physdev.h"
+#include "autogen/sysctl.h"
 
 #include "autogen/sysctl.h"
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:02:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:02:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837308.1253312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv1u-0002Ms-QE; Fri, 15 Nov 2024 12:02:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837308.1253312; Fri, 15 Nov 2024 12:02: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 1tBv1u-0002Mj-Mp; Fri, 15 Nov 2024 12:02:26 +0000
Received: by outflank-mailman (input) for mailman id 837308;
 Fri, 15 Nov 2024 12:02: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=cHts=SK=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tBut8-0005UF-MO
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:22 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20607.outbound.protection.outlook.com
 [2a01:111:f403:2408::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3296ca28-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:16 +0100 (CET)
Received: from BN8PR04CA0028.namprd04.prod.outlook.com (2603:10b6:408:70::41)
 by SA3PR12MB8021.namprd12.prod.outlook.com (2603:10b6:806:305::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Fri, 15 Nov
 2024 11:53:12 +0000
Received: from BL6PEPF0001AB72.namprd02.prod.outlook.com
 (2603:10b6:408:70:cafe::58) by BN8PR04CA0028.outlook.office365.com
 (2603:10b6:408:70::41) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 11:53:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB72.mail.protection.outlook.com (10.167.242.165) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 11:53:12 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 15 Nov
 2024 05:53:11 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 15 Nov
 2024 05:53:11 -0600
Received: from [172.30.86.253] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 05:53: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: 3296ca28-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwODo6NjA3IiwiaGVsbyI6Ik5BTTA0LUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjMyOTZjYTI4LWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTk2LjcwMDU3LCJzZW5kZXIiOiJzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tHN8r+RODQMRYIjyFthuionoG3YTVqTVy+MGwjZ03pJPIL629iI/OcNUu83wbUvGbuW24BL8ZDj/HqSVxgJnQTXi2YW5MwQ3LYS3AqPiPplLotiGXGLBSFqtDoUyQCHhKgTnMSzD8i8Vw5lguYVvulvI8L0jiMy+DvqOaVyijp/zPqypFxsTgbD4Jn3lT3GB96qNjtxsVErpHNMzDB80P25+SSTzRuHlnT08fM260cFzU+KLLwiTjjW+Mn7kQB6Tz/vpAjUdEgAPYRzdqG1Vll2gs77U5yWXUMlkpmlpC2A6By1+PAnOqGUhT3Ok4Ugu7zMSj2+FtZLB68dvguA1cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=364/DgW48fE10Pe7XEFHWNwrLlFlYwITFQpfFQeOhXw=;
 b=RyVsZA8fgBPa6UITfSEYyyjD0FmbphM6mwylmefYka9oZpJKq8HHwI/lHj+tboFjhmmHMPvsosmS8GNnemO/I+2QrLmNf5OwyWvZdUlVPpMHwI7IWoAdu1DT05phps4peeV2dmIvN1L2yk8IV0l10H6jZMdusmHOb+rDs2xnCvAFL0ptLjPv+4q5ZLxPzD6suIVnnpx95MG3ntRmlS9upRA3QV7+oiagD4ZUJOWpUvi3LACfeYmSfKL+3SYhzd73rqCfmSlST+aG1M4Z18R5wFo5dcanHw+zKbt7eoh1QzXxAlV+6y1IN2nVF82zcJeXpWD44jD+YMrrhyDdydtTUg==
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=364/DgW48fE10Pe7XEFHWNwrLlFlYwITFQpfFQeOhXw=;
 b=b4CgovTy+fPNiOq9/pm4X+26iewSoThZLq1o0ZFs2wdR2EsMvz8GXDMmNU0HC/KdwjSC452J28raC2YgbCC1JmjcjLRUSOZH4Ome0NiifguCYsQ98WU4GKqALeMr4XBAjZMvWEtBWMzpz43NFfRGmrXJxnBya6c0+VF8yIxELxU=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <2938c2b1-f2db-43f4-9241-09b21e428f69@amd.com>
Date: Fri, 15 Nov 2024 06:53:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/2] xen/pci: introduce PF<->VF links
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>
References: <20241112205321.186622-1-stewart.hildebrand@amd.com>
 <20241112205321.186622-2-stewart.hildebrand@amd.com>
 <975e3dbd-40e8-49c6-8aab-7e7bde1a233f@suse.com>
 <06149848-c14c-4f44-80b8-b596479505cf@amd.com>
 <69f9e816-6f17-4821-b26e-668f451e24c5@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <69f9e816-6f17-4821-b26e-668f451e24c5@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB72:EE_|SA3PR12MB8021:EE_
X-MS-Office365-Filtering-Correlation-Id: a2e850e6-c97a-45f7-5e9c-08dd056c1515
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S2tnOE1EMDlDWExQOGcrUjZ5Y3NmdVVYNm1BcnZNcUNqWkNBNG5JN0g0cnUv?=
 =?utf-8?B?d1pYaHFjdUdZSmNvRithaW4wcEcxSzA1SDl5a3g4Wm16Z2RBaVQxdldVZVBT?=
 =?utf-8?B?dlZEeWE2eVArODFPOHUvWU5NMGJub3RTWmRPZTkyOThVZnUyaCtDbTdrZlpY?=
 =?utf-8?B?dUlCQlpmbk94K0VhV250Z3RteHBmNjE5akd4Rll0NmY1dlN1TVV6bDVZZm11?=
 =?utf-8?B?RnlhUWhMSVlYR1FtRVVNZVVVQU4yYWk4OGZpSFlwclJxcURlYTdiR3NWU3U1?=
 =?utf-8?B?aHFxK2FqRUNYcFc0dm5YS0JQUWJBNnV2UGVNbHVOV3dEcmc0R3ZhbXVRNDNr?=
 =?utf-8?B?ZHVYYXlTZm9rUWhrVTFrZFlBUFU3YUVBeSs1MHo0c3VwRmJ6d1RWODV4bHdu?=
 =?utf-8?B?ZEpXYUhxbVIzRHpHcTNrVEtCUGVSeHF1cVJ5WkwwY0pMVlNpRXMxbWMzSzd6?=
 =?utf-8?B?WEJqVnpsQUxKWDhTU2JzckovZTdQMEpxcDFwN3RiVzU5enp2bnZ5b0hacmpm?=
 =?utf-8?B?RDNtQm1ZYWlPSEJZaEI0ZzZ5RktoT1hxak5XczlEQTBBUUcxcGtsU0g4Smdw?=
 =?utf-8?B?TmVoekVzUVJ4NWdWSWl4NW1WdjJVNUtSL0k3QUxneXRtNkFPb3BTcWlZZE0v?=
 =?utf-8?B?bDUzNUg0K1hXM3R0VzNTRDFuVUJwbmNmZVRUTlJhUmROTFhiQTUxU1dsZ21s?=
 =?utf-8?B?aHhQM1BsMHNQcWJHbXd0RlRHQms4TEtlRDJROFBXMlRkanR2UXk0YWoxcnM5?=
 =?utf-8?B?bmViUytiaWw2aW5PVVV3MkNNRlVXaU9oWXdiZmtHdXpnVGMrbWZ4emJJdmZz?=
 =?utf-8?B?NzlvRWtZWDBMWnI4QUhYRGZCKzViR2VUUXNYSUdVUWhQNXpZV1NPL3kyWFow?=
 =?utf-8?B?YTQva3BURmk4aGdJbS9KaHFnOXd4bU4wV25iVHhjOExaQmtrbkhGSDg4bi81?=
 =?utf-8?B?SmlwcEtaTU13Nzl1NjhaRWJmUUdBdUV4UjRhOGl6WkhCUGd6M0xnTjVONStF?=
 =?utf-8?B?bURMb3VDU1JKQ1FCeUdISWZjUk5hcXZCdk5HckVXcjBFSDRiQ0o0V3ZoRURz?=
 =?utf-8?B?bXVQNWgzOEJUTUxPams3a3BIMDNXQ3lrZTlQdEx1UnhlWC83TG5qcmJSRWNj?=
 =?utf-8?B?Y1BKeHA2ZUZRWFIxSVFJUTFLL0lFQkJ2K2dkMmN1YzBIL0ZFS2o3WldDMXIy?=
 =?utf-8?B?OUhhSEQ5OW4vR3FBcFBYL3lZeG5HMjZoVW00Q0lWL2lrN0R3ZlR2R0RSbWJI?=
 =?utf-8?B?Mzk4M0NhR1dXNEFyNU5wTTZOQlN5eE1nbG9JTUhqT1dzdkZhSGdlaGZ4OE9i?=
 =?utf-8?B?VHVMcXZVS2pJOFVtTEtPWTBIbFkwQXF2SGRaS09RNUJtZzR4SGNPWFY5VXBZ?=
 =?utf-8?B?TWtSejRwK2xXVUxIYUxVWjJ5VW9SWHFveSs2a1d5ZHdCSDhIcFpSYWlkUWFY?=
 =?utf-8?B?WEdseDR4OW93NHFuVEFpVElIeHhHaXRsWUF1bXN0VWpPd0tlcDRCQXcvOGlV?=
 =?utf-8?B?K3FuV3dtZlUrY2pBQ1pGbGdpYUJQampJUGQ2Y00zREVGREx5NDZvQTFNd09q?=
 =?utf-8?B?QnpOUGYwUzFrdmhHZjZVWmMvUUpMblUvMk9aajJNZGh0cDI2ZlVLbURGN3NP?=
 =?utf-8?B?WkNMZlhrVmhOamF2ZDZSM2txUWo2RWxRMjkySmc5SXNMek52YXA1WFVJcURx?=
 =?utf-8?B?aTRualVRbGxtdTJmWUZYcVdrSHc1aktXYmFhVStkSlcwYjF1RXZ4MjdrSDE4?=
 =?utf-8?B?N204VFBlL0xQR3JERUU5M0xaTGJ3TTZhNnZIVUFtbzE4ZjAvS3NiSU5Md1pU?=
 =?utf-8?B?LzR2RDRGWGxJRmRuTGRId2NLU1pjS2tyQzZYQld2RjZpKzRLejk0RndaVU1Q?=
 =?utf-8?B?VnFXNzVDd1h0a0VrNjdPUHE4ZENqSUE5YWxVakNSNXgzQ2c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 11:53:12.3869
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a2e850e6-c97a-45f7-5e9c-08dd056c1515
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB72.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8021

On 11/15/24 02:55, Jan Beulich wrote:
> On 14.11.2024 19:50, Stewart Hildebrand wrote:
>> On 11/14/24 05:34, Jan Beulich wrote:
>>> On 12.11.2024 21:53, Stewart Hildebrand wrote:
>>>> +            pdev->pf_pdev = pf_pdev;
>>>> +            list_for_each_entry(vf_pdev, &pf_pdev->vf_list, vf_list)
>>>> +            {
>>>> +                if ( vf_pdev == pdev )
>>>> +                {
>>>> +                    already_added = true;
>>>> +                    break;
>>>> +                }
>>>> +            }
>>>> +            if ( !already_added )
>>>> +                list_add(&pdev->vf_list, &pf_pdev->vf_list);
>>>> +        }
>>>>      }
>>>
>>> Personally, as I have a dislike for excess variables, I'd have gotten away
>>> without "already_added". Instead of setting it to true, vf_pdev could be
>>> set to NULL. Others may, however, consider this "obfuscation" or alike.
>>
>> This relies on vf_pdev being set to non-NULL when the list is empty and
>> after the last iteration if the list doesn't contain the element. I had
>> to look up the definitions of list_for_each_entry, INIT_LIST_HEAD, and
>> list_{add,del,entry} to verify that vf_pdev would be non-NULL in those
>> cases.
>>
>> Perhaps a better approach would be to introduce list_add_unique() in
>> Xen's list library? Then we can also get rid of the vf_pdev variable.
>>
>> static inline bool list_contains(struct list_head *entry,
>>                                  struct list_head *head)
>> {
>>    struct list_head *ptr;
>>
>>    list_for_each(ptr, head)
>>    {
>>        if ( ptr == entry )
>>            return true;
>>    }
>>
>>    return false;
>> }
>>
>> static inline void list_add_unique(struct list_head *new,
>>                                    struct list_head *head)
>> {
>>     if ( !list_contains(new, head) )
>>         list_add(new, head);
>> }
> 
> I'm uncertain of this kind of an addition. For long lists one would need to
> be careful with whether to actually use list_contains(). It being a simple
> library function would make this easy to overlook.

It occurs to me I could simply check if pdev->pf_pdev has been initialized:

            if ( !pdev->pf_pdev )
                list_add(&pdev->vf_list, &pf_pdev->vf_list);
            pdev->pf_pdev = pf_pdev;


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:03:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:03:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837329.1253321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv2c-0003Jh-6y; Fri, 15 Nov 2024 12:03:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837329.1253321; Fri, 15 Nov 2024 12: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 1tBv2c-0003Ja-4I; Fri, 15 Nov 2024 12:03:10 +0000
Received: by outflank-mailman (input) for mailman id 837329;
 Fri, 15 Nov 2024 12:03: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tButA-0005U9-Jt
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:24 +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 36227785-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:21 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9a850270e2so324790366b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:21 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 36227785-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM2MjI3Nzg1LWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNjAxLjQ2MTAwMywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671601; x=1732276401; 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=iI58YlmX6WMPh6dl0fn6iaDnb6hEIyQ+Q00IE22iGr8=;
        b=Zc7o1mppYx+KTQSxfzWrOXp815wyxLTVbTQFYABYgWDPdBk7AIePsJCdSM1GhBK8NG
         l9EWhUgfJNT5pTfwAvrzv2XfvBYMMd0otAj9hwwgknLKgTqKi7+zXHEhXMrBDz51w6m7
         DKPO5I0U3esLn1at1QIUn2EdfOct1G6giC/YQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671601; x=1732276401;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iI58YlmX6WMPh6dl0fn6iaDnb6hEIyQ+Q00IE22iGr8=;
        b=jRn2+kPYgS4aOpcUxYu/yxsvMBMXkw7Xqf+/A9Im4eLZaPFKb4XSW2S8IieDe48UCy
         nQaUgmTwlpNPuvjfOpyCp3M83xCTBgkd8FCXBGkTsx1jLpH1lj2FB30X4zvI6bLHM9Pf
         JwQPL+HAOvzJlm2Al3M//CUO6nh5n81To+zAxI9vg459d8oYwbxdKPbAHdzhmoBWiyCm
         wzXgMarr1RDyfkVwS7YjKEVd/GYNJswEY5iWXLZLijOIfYItnnI3I9aHHaaFZRaZbPDl
         yymK+v9yCu6sZsqmiuSxwAzpmw2SdORPE//jfowWkN/KAJCX1Q9yiwdtzYCM2k8zhXUF
         NkFg==
X-Gm-Message-State: AOJu0YyKoZ7DJfJnnB736Yawriq4aAsrn2YbR22Fbz9oVPH9HVnE/BZX
	2U9PunFWlz9+auqYa0x21N+7dgtzBamyeCcXod8Dpd02WydqUUTl4UpfjDhGs+Lt46FFyZ6XORW
	a
X-Google-Smtp-Source: AGHT+IHEjkBMpMN9NNeDK3YMv4dvAvN0GFdxsCjFCE6bcbGg6VuZ6UwEEudgdftQtP4K/TH6K1uXmg==
X-Received: by 2002:a17:907:2d91:b0:a9e:b68e:909 with SMTP id a640c23a62f3a-aa4834212e5mr175722966b.15.1731671600580;
        Fri, 15 Nov 2024 03:53:20 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [RFC PATCH 25/25] ci: Add a CI checker for Rust-related helpful properties
Date: Fri, 15 Nov 2024 11:51:54 +0000
Message-ID: <20241115115200.2824-26-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Checks in both xenbindgen and xen-sys (including autogenerated headers) that:

 * Autogenerated files are in sync with the specification files.
 * Specification files abide by certain ABI rules (e.g: no padding).
 * Clippy and rustfmt are happy with the every .rs file.
 * All transitive licences are accounted for (cargo-deny).
 * No transitive dependency has outstanding security advisories (cargo-deny)

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 automation/gitlab-ci/analyze.yaml | 14 ++++++++++++++
 tools/rust/Makefile               | 26 +++++++++++++++++++++++++-
 2 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index 02e0ea692c66..c63c909fe175 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -72,3 +72,17 @@ eclair-ARM64:on-schedule:
     ANALYSIS_KIND: "${RULESET}-scheduled"
     LOGFILE: "eclair-${VARIANT}-${RULESET}.log"
   allow_failure: true
+
+rust-verify:
+  stage: analyze
+  image: rust:latest # FIXME: Create and use dedicated container
+  script:
+    - rustup component add clippy rustfmt
+    - cargo install cargo-deny
+    - make -C tools/rust verify 2>&1 | tee rust-verify.log
+  artifacts:
+    when: always
+    paths:
+      - '*.log'
+  needs: []
+
diff --git a/tools/rust/Makefile b/tools/rust/Makefile
index 4f064c37f45c..602722f9d9cc 100644
--- a/tools/rust/Makefile
+++ b/tools/rust/Makefile
@@ -45,8 +45,33 @@ update: clean-autogen
 	          --indir "${XENBINDGEN}/extra" --outdir "${AUTOGEN_C}"
 
 # Verify Rust crates pass lint checks. This is enforced in CI
+#
+# Also ensures autogenerated files are up to date with TOML files. Generation
+# is done at commit time rather than build time to avoid a hard dependency on
+# the Rust toolchain.
 .PHONY: verify
 verify:
+	@echo "Checking autogenerated C headers to be consistent with TOML"
+	OUTDIR=`mktemp -d /tmp/xenbindgen-XXXXXXX`; \
+	cargo run --manifest-path "${XENBINDGEN}/Cargo.toml" -- --lang c \
+	          --indir "${XENBINDGEN}/extra" --outdir "$${OUTDIR}"; \
+	if ! diff -r "$${OUTDIR}" "${AUTOGEN_C}"; then \
+	    rm -rf "$${OUTDIR}"; \
+	    exit 1; \
+	fi; \
+	rm -rf "$${OUTDIR}"
+	
+	@echo "Checking autogenerated Rust files to be consistent with TOML"
+	OUTDIR=`mktemp -d /tmp/xenbindgen-XXXXXXX`; \
+	cargo run --manifest-path "${XENBINDGEN}/Cargo.toml" -- --lang rust \
+	          --indir "${XENBINDGEN}/extra" --outdir "$${OUTDIR}"; \
+	rustfmt $$( find "$${OUTDIR}" -name "*.rs" ); \
+	if ! diff -r "$${OUTDIR}" "${AUTOGEN_RS}"; then \
+	    rm -rf "$${OUTDIR}"; \
+	    exit 1; \
+	fi; \
+	rm -rf "$${OUTDIR}"
+	
 	set -eu; \
 	for i in "${CRATE_XENSYS}" "${XENBINDGEN}"; do \
 	    echo "Verifying $$i"; \
@@ -56,4 +81,3 @@ verify:
 	    cargo deny check; \
 	    cd -; \
 	done
-
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:04:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:04:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837349.1253332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv3d-00048Q-Fv; Fri, 15 Nov 2024 12:04:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837349.1253332; Fri, 15 Nov 2024 12:04: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 1tBv3d-00048J-DB; Fri, 15 Nov 2024 12:04:13 +0000
Received: by outflank-mailman (input) for mailman id 837349;
 Fri, 15 Nov 2024 12:04: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut9-0005UF-Mf
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:23 +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 3490053b-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:18 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9a0c7abaa6so208764266b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:18 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03: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: 3490053b-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM0OTAwNTNiLWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTk4LjgxMjcwOCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671598; x=1732276398; 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=UP4t8//FGJyNBLIO0mqUe6Ltob3Zl7JdI4z52xmh06g=;
        b=XLX5hNb1XRxR7tYsrRIGpptdr7QKNTWMuBt348NVFwz3ikMauWsEx2YiLs7XkjUYsf
         qJ9++th2oKDnjm+nJacq+wFAb4uVP8u/+pVwrG+rS5K3rrz4Qy5JLnWn/jaexc+0BK0O
         aP/2XYsV6Co9Dkdx8jdQ9fAqPQ//nTx7pgDlE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671598; x=1732276398;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=UP4t8//FGJyNBLIO0mqUe6Ltob3Zl7JdI4z52xmh06g=;
        b=X+OYVRYrSUXN/3GLk57wGjnJwWyYhWoiYk/3txS3CelA3Cuih4FFO7v3FD63bQq5fT
         WjC2puP4l76ic2MJGoCCHOWN4a4R0rUPwZyRfT7egDHs6Hh0VKNWZUbBKNmZSoqMomPP
         iiwW+9a0ieDi+cKL+3GLWUXYVpxJSNjIL0dOZ5Vy6p1E3LdYsPXsCPpDIi3ihg9BwaaX
         tJM3rKP/FxiBM1hQQmRVdqHGlDkyubM0JJIIed155mcspocKge5Vr4d4e+t+n3EBAgRs
         Ep7di5aI01xRFEIliR9WeD8jswSVnsq1hPWzlNlMXaHjBsGBjj58k/MQQEwCcgBeCYX9
         J7jg==
X-Gm-Message-State: AOJu0YwOOvuKykzec8geF3qSjNENShu6Mep2ACoS/ykKXFhcfRoM+Knj
	YH6EtlXC97GaIVtcSIGpdZh1O2SM+6sY5rHvzQiUN8dgMaMmY/tc0t1hZSLuuTzW29J05DDItSu
	7
X-Google-Smtp-Source: AGHT+IHg0ja9QNxUZ4tZIEtdCtUnugpmjWlFsHvFvUqEWr/jij87LRHqfv+lw7XDsHJoaVUXh8EXFg==
X-Received: by 2002:a17:907:7f1e:b0:a9f:508:6726 with SMTP id a640c23a62f3a-aa4833f60eemr182698766b.2.1731671597758;
        Fri, 15 Nov 2024 03:53:17 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [RFC PATCH 22/25] tools/xen-sys: Add autogenerated Rust files
Date: Fri, 15 Nov 2024 11:51:51 +0000
Message-ID: <20241115115200.2824-23-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

And a single autogen.rs file to demultiplex the arch module into
whatever arch-specific target is mandated by target_arch.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/xen-sys/src/autogen.rs            |  27 +++++
 tools/rust/xen-sys/src/autogen/arch_arm.rs   |  56 ++++++++++
 tools/rust/xen-sys/src/autogen/arch_ppc.rs   |   8 ++
 tools/rust/xen-sys/src/autogen/arch_riscv.rs |   8 ++
 tools/rust/xen-sys/src/autogen/arch_x86.rs   |  55 ++++++++++
 tools/rust/xen-sys/src/autogen/domctl.rs     | 104 +++++++++++++++++++
 tools/rust/xen-sys/src/autogen/sysctl.rs     |  26 +++++
 tools/rust/xen-sys/src/lib.rs                |   2 +
 8 files changed, 286 insertions(+)
 create mode 100644 tools/rust/xen-sys/src/autogen.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_arm.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_ppc.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_riscv.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/arch_x86.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/domctl.rs
 create mode 100644 tools/rust/xen-sys/src/autogen/sysctl.rs

diff --git a/tools/rust/xen-sys/src/autogen.rs b/tools/rust/xen-sys/src/autogen.rs
new file mode 100644
index 000000000000..8a1cab8561f2
--- /dev/null
+++ b/tools/rust/xen-sys/src/autogen.rs
@@ -0,0 +1,27 @@
+//! Low-level description of buffers as used in hypercalls with the Xen hypervisor
+//!
+//! This module is fully autogenerated from TOML files defining the hypercall
+//! specification.
+
+#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
+pub mod arch_x86;
+#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
+pub use arch_x86 as arch;
+
+#[cfg(any(target_arch = "arm", target_arch = "aarch64"))]
+pub mod arch_arm;
+#[cfg(any(target_arch = "arm", target_arch = "aarch64"))]
+pub use arch_arm as arch;
+
+#[cfg(target_arch = "riscv64")]
+pub mod arch_riscv;
+#[cfg(target_arch = "riscv64")]
+pub use arch_riscv as arch;
+
+#[cfg(target_arch = "powerpc64")]
+pub mod arch_ppc;
+#[cfg(target_arch = "powerpc64")]
+pub use arch_ppc as arch;
+
+pub mod domctl;
+pub mod sysctl;
diff --git a/tools/rust/xen-sys/src/autogen/arch_arm.rs b/tools/rust/xen-sys/src/autogen/arch_arm.rs
new file mode 100644
index 000000000000..dc460557b2f0
--- /dev/null
+++ b/tools/rust/xen-sys/src/autogen/arch_arm.rs
@@ -0,0 +1,56 @@
+//! arch-arm
+//!
+//! AUTOGENERATED. DO NOT MODIFY
+
+/// Content of the `gic_version` field of the domainconfig struct.
+#[repr(u8)]
+#[derive(Clone, Debug, Default, PartialEq, Eq)]
+pub enum XenDomctlConfigGic {
+    /// Emulate the underlying GIC present in the current host.
+    #[default]
+    Native = 0,
+    /// Emulate a GICv2.
+    V2 = 1,
+    /// Emulate a GICv3.
+    V3 = 2,
+}
+
+/// TEE mediator exposed to the guest
+#[repr(u16)]
+#[derive(Clone, Debug, Default, PartialEq, Eq)]
+pub enum XenDomctlConfigTee {
+    /// No mediator. Guest can't communicate with the TEE.
+    #[default]
+    None = 0,
+    /// Expose an OP-TEE mediator.
+    Optee = 1,
+    /// Expose an FF-A mediator.
+    Ffa = 2,
+}
+
+/// arm-specific domain settings.
+#[repr(C)]
+#[derive(Clone, Debug, Default)]
+pub struct XenArchDomainconfig {
+    /// IN/OUT: GIC version exposed to the guest.
+    ///
+    /// When `native` on input the output value holds the automatically chosen version.
+    pub gic_version: XenDomctlConfigGic,
+    /// IN: SVE vector length (divided by 128) exposed to the guest.
+    pub sve_vl: u8,
+    /// IN: TEE mediator exposed to the guest.
+    pub tee_type: XenDomctlConfigTee,
+    /// IN: Number of SPIs exposed to the guest.
+    pub nr_spis: u32,
+    /// OUT
+    /// Based on the property clock-frequency in the DT timer node.
+    /// The property may be present when the bootloader/firmware doesn't
+    /// set correctly CNTFRQ which hold the timer frequency.
+    ///
+    /// As it's not possible to trap this register, we have to replicate
+    /// the value in the guest DT.
+    ///
+    /// = 0 => property not present
+    /// > 0 => Value of the property
+    pub clock_frequency: u32,
+}
diff --git a/tools/rust/xen-sys/src/autogen/arch_ppc.rs b/tools/rust/xen-sys/src/autogen/arch_ppc.rs
new file mode 100644
index 000000000000..8b68799648b9
--- /dev/null
+++ b/tools/rust/xen-sys/src/autogen/arch_ppc.rs
@@ -0,0 +1,8 @@
+//! arch-ppc
+//!
+//! AUTOGENERATED. DO NOT MODIFY
+
+/// ppc-specific domain settings.
+#[repr(C)]
+#[derive(Clone, Debug, Default)]
+pub struct XenArchDomainconfig;
diff --git a/tools/rust/xen-sys/src/autogen/arch_riscv.rs b/tools/rust/xen-sys/src/autogen/arch_riscv.rs
new file mode 100644
index 000000000000..1a68c7a02c7f
--- /dev/null
+++ b/tools/rust/xen-sys/src/autogen/arch_riscv.rs
@@ -0,0 +1,8 @@
+//! arch-riscv
+//!
+//! AUTOGENERATED. DO NOT MODIFY
+
+/// riscv-specific domain settings.
+#[repr(C)]
+#[derive(Clone, Debug, Default)]
+pub struct XenArchDomainconfig;
diff --git a/tools/rust/xen-sys/src/autogen/arch_x86.rs b/tools/rust/xen-sys/src/autogen/arch_x86.rs
new file mode 100644
index 000000000000..d63a3920c91e
--- /dev/null
+++ b/tools/rust/xen-sys/src/autogen/arch_x86.rs
@@ -0,0 +1,55 @@
+//! arch-x86
+//!
+//! AUTOGENERATED. DO NOT MODIFY
+
+use bitflags::bitflags;
+
+bitflags! {
+    /// Content of the `emulation_flags` field of the domain creation hypercall.
+    #[repr(C)]
+    #[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
+    pub struct XenX86Emu: u32 {
+        /// Emulate Local APICs.
+        const Lapic = 1 << 0;
+        /// Emulate a HPET timer.
+        const Hpet = 1 << 1;
+        /// Emulate the ACPI PM timer.
+        const Pm = 1 << 2;
+        /// Emulate the RTC clock.
+        const Rtc = 1 << 3;
+        /// Emulate an IOAPIC device.
+        const Ioapic = 1 << 4;
+        /// Emulate PIC devices.
+        const Pic = 1 << 5;
+        /// Emulate standard VGA.
+        const Vga = 1 << 6;
+        /// Emulate an IOMMU.
+        const Iommu = 1 << 7;
+        /// Emulate a PIT timer.
+        const Pit = 1 << 8;
+        /// Route physical IRQs over event channels.
+        const UsePirq = 1 << 9;
+        /// Handle PCI configuration space traps from within Xen.
+        const Vpci = 1 << 10;
+    }
+}
+
+bitflags! {
+    /// Contents of the `misc_flags` field of the domain creation hypercall
+    #[repr(C)]
+    #[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
+    pub struct XenX86Misc: u32 {
+        /// Grants access to the real physical MSR registers of the host.
+        const MsrRelaxed = 1 << 0;
+    }
+}
+
+/// x86-specific domain settings.
+#[repr(C)]
+#[derive(Clone, Debug, Default)]
+pub struct XenArchDomainconfig {
+    /// IN: Bitmap of devices to emulate.
+    pub emulation_flags: XenX86Emu,
+    /// IN: Miscellaneous x86-specific toggles.
+    pub misc_flags: XenX86Misc,
+}
diff --git a/tools/rust/xen-sys/src/autogen/domctl.rs b/tools/rust/xen-sys/src/autogen/domctl.rs
new file mode 100644
index 000000000000..7c3b872409be
--- /dev/null
+++ b/tools/rust/xen-sys/src/autogen/domctl.rs
@@ -0,0 +1,104 @@
+//! domctl
+//!
+//! AUTOGENERATED. DO NOT MODIFY
+
+use bitflags::bitflags;
+
+use super::arch::XenArchDomainconfig;
+
+bitflags! {
+    /// Content of the `flags` field of the domain creation hypercall.
+    #[repr(C)]
+    #[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
+    pub struct XenDomctlCdf: u32 {
+        /// Set if this is an HVM guest. Cleared if it's PV.
+        const Hvm = 1 << 0;
+        /// Use hardware-assisted paging if available
+        const Hap = 1 << 1;
+        /// Set if domain memory integrity is to be verified by tboot during Sx.
+        const S3Integrity = 1 << 2;
+        /// Set if Out-of-Sync shadow page tables are to be disabled
+        const OosOff = 1 << 3;
+        /// Set if this is a xenstore domain
+        const XsDomain = 1 << 4;
+        /// Set if this is domain can make use of the IOMMU
+        const Iommu = 1 << 5;
+        /// Set for the domain to have nested virtualization enabled.
+        const NestedVirt = 1 << 6;
+        /// Set to expose a vPMU to this domain.
+        const Vpmu = 1 << 7;
+    }
+}
+
+bitflags! {
+    /// Content of the `iommu_opts` field of the domain creation hypercall.
+    #[repr(C)]
+    #[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
+    pub struct XenDomctlIommuOpts: u32 {
+        /// Set to _NOT_ share page tables between the CPU and the IOMMU when it would be possible to do so.
+        const NoSharept = 1 << 0;
+    }
+}
+
+/// Content of the `altp2m_mode` field of the domain creation hypercall.
+#[repr(u8)]
+#[derive(Clone, Debug, Default, PartialEq, Eq)]
+pub enum XenDomctlAltp2MMode {
+    /// Keep altp2m disabled
+    #[default]
+    Disabled = 0,
+    /// Use mixed-mode for the altp2m (not yet evaluated for safety).
+    Mixed = 1,
+    /// Use external mode for the altp2m.
+    External = 2,
+    /// Use limited mode for the altp2m.
+    Limited = 3,
+}
+
+/// Create a new domain with the passed parameters.
+///
+/// IMPORTANT: The domid part of the domctl is IN/OUT. When the passed
+/// domid is 0 or over `DOMID_FIRST_RESERVED` a new domid is auto-allocated
+/// and returned.
+#[repr(C)]
+#[derive(Clone, Debug, Default)]
+pub struct XenDomctlCreatedomain {
+    /// IN: `Source Security IDentifier` (See XSM).
+    pub ssidref: u32,
+    /// IN: Unique identifier for this guest given by the toolstack.
+    pub handle: [u8; 16],
+    /// IN: Bitmap of domain features to enable/disable.
+    pub flags: XenDomctlCdf,
+    /// IN: Bitmap of configuration settings for the IOMMU.
+    pub iommu_opts: XenDomctlIommuOpts,
+    /// IN: Maximum number of CPUs this domain can hold, including hotplug.
+    pub max_vcpus: u32,
+    /// IN: Maximum number of usable event channels
+    pub max_evtchn_port: u32,
+    /// IN: Maximum number of pages this domain is able
+    ///     to grant access to for other domains.
+    ///
+    /// `< 0` means "use default value in the hypervisor."
+    pub max_grant_frames: i32,
+    /// IN: Maximum number of pages of foreign domains
+    ///     can be accessed via the grant mechanism.
+    ///
+    /// `< 0` means "use default value in the hypervisor."
+    pub max_maptrack_frames: i32,
+    /// Maximum grant table version allowed for this domain
+    pub max_grant_version: u8,
+    /// Unused padding. Reserved to zero.
+    pub rsvd_0_a: [u8; 3],
+    /// Which mode to configure altp2m with
+    pub altp_2_m_mode: u8,
+    /// Unused padding. Reserved to zero.
+    pub rsvd_0_b: [u8; 3],
+    /// IN: Per-vCPU buffer size in octets. 0 to disable.
+    pub vmtrace_size: u32,
+    /// IN: CPU pool to use; 0 or an existing CPU pool.
+    pub cpupool_id: u32,
+    /// Arch-specific settings.
+    ///
+    /// Each architecture is free to make its fields IN/OUT/INOUT
+    pub arch: XenArchDomainconfig,
+}
diff --git a/tools/rust/xen-sys/src/autogen/sysctl.rs b/tools/rust/xen-sys/src/autogen/sysctl.rs
new file mode 100644
index 000000000000..a2d8beb91d84
--- /dev/null
+++ b/tools/rust/xen-sys/src/autogen/sysctl.rs
@@ -0,0 +1,26 @@
+//! sysctl
+//!
+//! AUTOGENERATED. DO NOT MODIFY
+
+/// Read console content from Xen buffer ring.
+#[repr(C)]
+#[derive(Clone, Debug, Default)]
+pub struct XenSysctlReadconsole {
+    /// IN: Non-zero -> clear after reading.
+    pub clear: u8,
+    /// IN: Non-zero -> start index specified by `index` field.
+    pub incremental: u8,
+    /// Unused.
+    pub pad: u16,
+    /// IN:  Start index for consuming from ring buffer (if @incremental);
+    /// OUT: End index after consuming from ring buffer.
+    pub index: u32,
+    /// IN: Virtual address to write console data.
+    ///
+    /// NOTE: The pointer itself is IN, but the contents of the buffer are OUT.
+    pub buffer: crate::Align64<*mut u8>,
+    /// IN: Size of buffer; OUT: Bytes written to buffer.
+    pub count: u32,
+    /// Tail padding reserved to zero.
+    pub rsvd_0_a: u32,
+}
diff --git a/tools/rust/xen-sys/src/lib.rs b/tools/rust/xen-sys/src/lib.rs
index efab54ee1025..526193a920f8 100644
--- a/tools/rust/xen-sys/src/lib.rs
+++ b/tools/rust/xen-sys/src/lib.rs
@@ -7,6 +7,8 @@
 
 pub mod autogen;
 
+pub use autogen::*;
+
 use core::ops::{Deref, DerefMut};
 
 /// Wrapper for pointers and 64bit integers so they are _always_ aligned to 8
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:05:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837379.1253342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv4e-0005H8-Ri; Fri, 15 Nov 2024 12:05:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837379.1253342; Fri, 15 Nov 2024 12:05: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 1tBv4e-0005H0-Ma; Fri, 15 Nov 2024 12:05:16 +0000
Received: by outflank-mailman (input) for mailman id 837379;
 Fri, 15 Nov 2024 12:05: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tBut7-0005UF-MN
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:21 +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 33f089b7-a348-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 12:53:17 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9ef275b980so110506066b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:17 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03: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: 33f089b7-a348-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMzZjA4OWI3LWEzNDgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcxNTk3Ljc4MDcwOCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671597; x=1732276397; 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=G8IJxvsENAAnpsQy10FyIA1V+srxUr4XR8FTrJ0CEGs=;
        b=PnM9Hetsqwn7XqVpibWXtAveOxCSkSa9txa9YhCpystOIqN/kJ/Ycj0jilAU5BR7iM
         UEdRpDlpL0zrtArDKvwCEV9Hyk9UON7LNBZLkmZqqrlwiLDn6ZMHrhwMNRhSauzTiobe
         Sm31e/l6gcmtPdDIDyQyyUbX8+yqagjEyGffk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671597; x=1732276397;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=G8IJxvsENAAnpsQy10FyIA1V+srxUr4XR8FTrJ0CEGs=;
        b=xGM0vTDHjmNEFyJjMNs1VENAWai0mlK3llq/3tsENEk65mbVKqG2VJ0NoKbJeg58A5
         tuSx7VA9Cn/FP4fFWc63yGfYDRKpC6FXwXbAQ2rc3NoPbx6Q0GUa65D9PLE98Fit+oya
         g2dr79VJ/c71gCG3R7yAYPD2T0Fh47WUJMRxwraJdGZ9xgHKBn7gMc06Wwvl2wBmpdd9
         u0TuRqsdcIA82GxS9AGKg1iwsodBM2vsHfpOHsBMI/cXueV3pqzHLyfEWrjv7Ws9hYT1
         smcLvQm0jPD83fLJDe2btUUVtNTCyaSkltZpQ0vYpySj937nwejsvkuIRmDV7g+f+kzF
         m0Uw==
X-Gm-Message-State: AOJu0YwspulAS0IGKvcaS+bv+7w7fIapUp6/JG2uWqSYIfmLRnAkgIIc
	SjuXT1dAFDmonbxO3EypMWMJGa1e7wyj4EnS63DMs1AEgspMwtHPukkfq1151pArOGqOEORu1Bb
	C
X-Google-Smtp-Source: AGHT+IECS/ncMc6P9Q42wlKXYbU9TWMpS2F64uBBQH9XaQw86jpNMutwQkL9l17OdZ5ZCicNfye9SA==
X-Received: by 2002:a17:907:2d8e:b0:a9a:67aa:31f5 with SMTP id a640c23a62f3a-aa4833eb75cmr216937566b.10.1731671596814;
        Fri, 15 Nov 2024 03:53:16 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Teddy Astie <teddy.astie@vates.tech>,
	Yann Dirson <yann.dirson@vates.tech>,
	Teddy Astie <teddy.astie@vates.fr>
Subject: [RFC PATCH 21/25] tools/xenbindgen: Add Rust backend to xenbindgen
Date: Fri, 15 Nov 2024 11:51:50 +0000
Message-ID: <20241115115200.2824-22-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Teddy added support for includes in this backend, as in the C backend.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.fr>
---
 tools/rust/Makefile                  |  10 +-
 tools/rust/xen-sys/src/lib.rs        |   2 +
 tools/rust/xenbindgen/src/main.rs    |   4 +
 tools/rust/xenbindgen/src/rs_lang.rs | 227 +++++++++++++++++++++++++++
 4 files changed, 242 insertions(+), 1 deletion(-)
 create mode 100644 tools/rust/xenbindgen/src/rs_lang.rs

diff --git a/tools/rust/Makefile b/tools/rust/Makefile
index 814e5b94447f..4f064c37f45c 100644
--- a/tools/rust/Makefile
+++ b/tools/rust/Makefile
@@ -6,6 +6,9 @@ XENBINDGEN=$(CURDIR)/xenbindgen
 # Path to the autogenerated Rust bindings crate
 CRATE_XENSYS=$(CURDIR)/xen-sys
 
+# Output folder for the autogenerated Rust files
+AUTOGEN_RS=$(CRATE_XENSYS)/src/autogen
+
 # Output folder for the autogenerated C headers
 #
 # Must contain autogenerated files only because they're all wiped on update
@@ -25,13 +28,18 @@ all install uninstall clean:
 # Remove all autogenerated files
 .PHONY: clean-autogen
 clean-autogen:
-	rm -rf "${AUTOGEN_C}"
+	rm -rf "${AUTOGEN_RS}" "${AUTOGEN_C}"
 
 # Refresh autogenerated files. Depending on clean-autogen is required in order
 # for removals of specification files to cause the removal of their
 # autogenerated files.
 .PHONY: update
 update: clean-autogen
+	# Update Rust bindings
+	cargo run --manifest-path "${XENBINDGEN}/Cargo.toml" -- --lang rust \
+	          --indir "${XENBINDGEN}/extra" --outdir "${AUTOGEN_RS}"
+	cargo fmt --manifest-path "${CRATE_XENSYS}/Cargo.toml"
+	
 	# Update C bindings
 	cargo run --manifest-path "${XENBINDGEN}/Cargo.toml" -- --lang c \
 	          --indir "${XENBINDGEN}/extra" --outdir "${AUTOGEN_C}"
diff --git a/tools/rust/xen-sys/src/lib.rs b/tools/rust/xen-sys/src/lib.rs
index 7b3ea6c8ad4c..efab54ee1025 100644
--- a/tools/rust/xen-sys/src/lib.rs
+++ b/tools/rust/xen-sys/src/lib.rs
@@ -5,6 +5,8 @@
 //! a few closely related primitives, like [`Align64`].
 #![no_std]
 
+pub mod autogen;
+
 use core::ops::{Deref, DerefMut};
 
 /// Wrapper for pointers and 64bit integers so they are _always_ aligned to 8
diff --git a/tools/rust/xenbindgen/src/main.rs b/tools/rust/xenbindgen/src/main.rs
index dbc610e420f2..a1cf47e26bf5 100644
--- a/tools/rust/xenbindgen/src/main.rs
+++ b/tools/rust/xenbindgen/src/main.rs
@@ -5,6 +5,7 @@
 mod spec;
 
 mod c_lang;
+mod rs_lang;
 
 use std::{io::Write, path::PathBuf};
 
@@ -35,6 +36,8 @@ struct Cli {
 enum Lang {
     #[doc(hidden)]
     C,
+    #[doc(hidden)]
+    Rust,
 }
 
 fn main() {
@@ -66,6 +69,7 @@ fn main() {
     };
 
     let (extension, parser): (&str, fn(&OutFileDef) -> String) = match cli.lang {
+        Lang::Rust => (".rs", rs_lang::parse),
         Lang::C => (".h", c_lang::parse),
     };
 
diff --git a/tools/rust/xenbindgen/src/rs_lang.rs b/tools/rust/xenbindgen/src/rs_lang.rs
new file mode 100644
index 000000000000..cd5ce2989d51
--- /dev/null
+++ b/tools/rust/xenbindgen/src/rs_lang.rs
@@ -0,0 +1,227 @@
+//! Rust backend
+//!
+//! A backend for the Rust programming language. Enums, structs and bitmaps
+//! are native (with the latter being available via the `bitflags` crate.
+//!
+//! 64bit primitives and pointers are wrapped in a _magic_ type called `Align64`.
+//! This type is expected to exist in the target crate and is meant to provide
+//! ergonomic mechanisms to, create, access and modify its contents. Its whole
+//! purpose is make those types have 64bit size and be 64bit aligned even on
+//! 32bit targets.
+use std::fmt::Write;
+
+use crate::spec::{BitmapDef, EnumDef, IncludeDef, OutFileDef, StructDef, Typ};
+
+use convert_case::{Case, Casing};
+use log::{debug, trace};
+
+/// An abstract indentation level. 0 is no indentation, 1 is [`INDENT_WIDTH`]
+/// and so on.
+#[derive(Copy, Clone)]
+struct Indentation(usize);
+
+/// Default width of each level of indentation
+const INDENT_WIDTH: usize = 4;
+
+/// Convert an IDL type into its Rust type.
+fn typ_rs(typ: &Typ) -> String {
+    match typ {
+        Typ::Ptr(x) => format!("crate::Align64<*mut {}>", typ_rs(x)),
+        Typ::Enum(x) | Typ::Struct(x) | Typ::Bitmap(x) => x.to_case(Case::Pascal),
+        Typ::Array(x, len) => format!("[{}; {}]", typ_rs(x), len),
+        Typ::U8 => String::from("u8"),
+        Typ::U16 => String::from("u16"),
+        Typ::U32 => String::from("u32"),
+        Typ::U64 => String::from("crate::Align64<u64>"),
+        Typ::I8 => String::from("i8"),
+        Typ::I16 => String::from("i16"),
+        Typ::I32 => String::from("i32"),
+        Typ::I64 => String::from("crate::Align64<i64>"),
+    }
+}
+
+/// Add a comment to a struct or a field.
+fn comment(out: &mut String, comment: &str, ind: Indentation) {
+    let spaces = " ".repeat(INDENT_WIDTH * ind.0);
+    for line in comment.split('\n') {
+        write!(out, "{spaces}///").unwrap();
+        if !line.is_empty() {
+            write!(out, " {line}").unwrap();
+        }
+        writeln!(out).unwrap();
+    }
+}
+
+/// Perform external inclusion in the form of a Rust _use_ statement.
+fn includegen(out: &mut String, def: &IncludeDef) {
+    if def.imports.is_empty() {
+        return;
+    }
+
+    let refered_pascal: Vec<String> = def
+        .imports
+        .iter()
+        .map(|s| s.to_case(Case::Pascal))
+        .collect();
+
+    writeln!(
+        out,
+        "use super::{}::{{{}}};",
+        &def.from,
+        refered_pascal.join(",")
+    )
+    .unwrap();
+
+    writeln!(out).unwrap();
+}
+
+/// Write a Rust-compatible struct onto `out`
+fn structgen(out: &mut String, def: &StructDef) {
+    debug!("struct {}", def.name);
+
+    comment(out, &def.description, Indentation(0));
+    writeln!(out, "#[repr(C)]").unwrap();
+    writeln!(out, "#[derive(Clone, Debug, Default)]").unwrap();
+    write!(out, "pub struct {}", def.name.to_case(Case::Pascal)).unwrap();
+
+    if def.fields.is_empty() {
+        // zero-sized struct
+        writeln!(out, ";\n").unwrap();
+        return;
+    }
+
+    writeln!(out, " {{").unwrap();
+
+    for f in &def.fields {
+        trace!("  field {} type={:?}", f.name, f.typ);
+
+        comment(out, &f.description, Indentation(1));
+        writeln!(
+            out,
+            "    pub {}: {},",
+            f.name.to_case(Case::Snake),
+            typ_rs(&f.typ)
+        )
+        .unwrap();
+    }
+    writeln!(out, "}}\n").unwrap();
+}
+
+/// Write a Rust-compatible enum onto `out`
+fn enumgen(out: &mut String, def: &EnumDef) {
+    debug!("enum {}", def.name);
+
+    comment(out, &def.description, Indentation(0));
+
+    // If the underlying type is 64bits things get trickier. What we want
+    // in that case is to use u64 for the underlying type, but set
+    // align(8) on the overall repr. Otherwise 32bit platforms have the wrong
+    // alignment.
+    let repr: &str = if def.typ == Typ::U64 || def.typ == Typ::I64 {
+        "align(8)"
+    } else {
+        &typ_rs(&def.typ)
+    };
+
+    writeln!(out, "#[repr({repr})]").unwrap();
+    writeln!(out, "#[derive(Clone, Debug, Default, PartialEq, Eq)]").unwrap();
+    writeln!(out, "pub enum {} {{", def.name.to_case(Case::Pascal)).unwrap();
+    for (i, f) in def.variants.iter().enumerate() {
+        trace!("  variant {}={}", f.name, f.value);
+
+        comment(out, &f.description, Indentation(1));
+        if i == 0 {
+            writeln!(out, "    #[default]").unwrap();
+        }
+        writeln!(out, "    {} = {},", f.name.to_case(Case::Pascal), f.value).unwrap();
+    }
+    writeln!(out, "}}\n").unwrap();
+}
+
+/// Write a Rust-compatible bitmap onto `out`.
+///
+/// NOTE: Uses the bitflags crate underneath
+fn bitmapgen(out: &mut String, def: &BitmapDef) {
+    debug!("bitmap {}", def.name);
+
+    writeln!(out, "bitflags! {{").unwrap();
+    comment(out, &def.description, Indentation(1));
+
+    // If the underlying type is 64bits things get trickier. What we want
+    // in that case is to use u64 for the underlying type, but set
+    // align(8) on the overall repr.
+    let is_64bits = def.typ == Typ::U64 || def.typ == Typ::I64;
+    let repr = if is_64bits { "align(8)" } else { "C" };
+
+    writeln!(out, "    #[repr({repr})]").unwrap();
+    writeln!(
+        out,
+        "    #[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]"
+    )
+    .unwrap();
+    writeln!(
+        out,
+        "    pub struct {}: {} {{",
+        def.name.from_case(Case::Snake).to_case(Case::Pascal),
+        if is_64bits {
+            "u64".to_owned()
+        } else {
+            typ_rs(&def.typ)
+        }
+    )
+    .unwrap();
+
+    for f in &def.bits {
+        trace!("  shift {}={}", f.name, f.shift);
+
+        comment(out, &f.description, Indentation(2));
+        writeln!(
+            out,
+            "        const {} = 1 << {};",
+            f.name.from_case(Case::Snake).to_case(Case::Pascal),
+            f.shift
+        )
+        .unwrap();
+    }
+    writeln!(out, "    }}").unwrap();
+
+    writeln!(out, "}}\n").unwrap();
+}
+
+/// Generates a single `.rs` file.
+///
+/// `filedef` is a language-agnostic high level description of what the output
+/// must contain. The function returns the contents of the new
+///
+/// # Aborts
+/// Aborts the process with `rc=1` on known illegal specifications.
+pub fn parse(filedef: &OutFileDef) -> String {
+    let mut out = String::new();
+
+    writeln!(out, "//! {}", &filedef.name).unwrap();
+    writeln!(out, "//!").unwrap();
+    writeln!(out, "//! AUTOGENERATED. DO NOT MODIFY").unwrap();
+    writeln!(out).unwrap();
+
+    if !filedef.bitmaps.is_empty() {
+        writeln!(out, "use bitflags::bitflags;\n").unwrap();
+    }
+
+    for def in &filedef.includes {
+        includegen(&mut out, def);
+    }
+
+    for def in &filedef.bitmaps {
+        bitmapgen(&mut out, def);
+    }
+
+    for def in &filedef.enums {
+        enumgen(&mut out, def);
+    }
+
+    for def in &filedef.structs {
+        structgen(&mut out, def);
+    }
+
+    out
+}
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:06:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:06:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837404.1253352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBv5M-0006RV-72; Fri, 15 Nov 2024 12:06:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837404.1253352; Fri, 15 Nov 2024 12:06: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 1tBv5M-0006RK-3T; Fri, 15 Nov 2024 12:06:00 +0000
Received: by outflank-mailman (input) for mailman id 837404;
 Fri, 15 Nov 2024 12:05: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=Akm3=SK=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tButA-0005U9-Rc
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 11:53:24 +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 359f7a9b-a348-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 12:53:20 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aaddeso2095185a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 03:53:20 -0800 (PST)
Received: from localhost.localdomain (0545937c.skybroadband.com.
 [5.69.147.124]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0860afsm173492766b.188.2024.11.15.03.53.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 03:53: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: 359f7a9b-a348-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM1OWY3YTliLWEzNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcxNjAwLjYxMTAxNywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731671600; x=1732276400; 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=zTdZvHzMqCg672JmJfQu/BpWmdmI7oAFHqt1BwWMkes=;
        b=fzGUhy4CsqblxfQY2kS/RzohNmwI37bz2LSkhCN8z66Ll7PCVZw04rUzqrmOlCJH0j
         brKfPKRhCFOjUgF/ohsTaVMLNpnqQW80WPVrluxdGzxHUhuAZcCXKybi7SG6nTjI9Gjn
         1ATLGv8SA7dWoV6NXgQQTBdUx2mhKebvXijMQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731671600; x=1732276400;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zTdZvHzMqCg672JmJfQu/BpWmdmI7oAFHqt1BwWMkes=;
        b=jQgHi7WPno1Vm2uYmISqnFpxflF8rPPc17ZpNmHB5ul0EkIfwPqq+hz1eTK+K0RH4r
         EbQqFZFXC2cmysWPr2h8tF683Li4bNp+9l6Eeoz1/8EWs+lWsU/s4U3GwIBlaW9ZDpe+
         DDrZAeLK/Ncg0aOsyadVNP6q2A1avc3YCUpXSTJ4kCcS7dxyvrtm4UVXUiLfoFUtaak/
         tezZWNLw59zxpk3xDhRIhssqXJnUEkE9W3egFtdPphtdDY0JAY8TXHWsEgU4kv+Niz9x
         KKzPw5ioZ3liGCDaBfe6gNSQk5/KpPMj/j0y9dV/YLy3xFNxeah9lfvzaocfru9K+ye2
         gB5Q==
X-Gm-Message-State: AOJu0Yw8tmsFRJuX/OTPaWH+84uzR+S56ki1rjajR7+/EeV6mIdeWvAQ
	CAmcRnU694Z26nTRltA8w1ptyWF0aY83fJ+eG0Gkf0nFiolozde1/nRb4bpH36cIMiVWGjdJWVp
	X
X-Google-Smtp-Source: AGHT+IE8XiJ8tp24GnfdR7Je8BJiINigYyfTk7VwSyv6r7upQwl+mJmJWXsPnxmN/u71KRrKVPKOmQ==
X-Received: by 2002:a17:907:1c85:b0:a9e:c442:2c15 with SMTP id a640c23a62f3a-aa483525ba6mr224027166b.38.1731671599630;
        Fri, 15 Nov 2024 03:53:19 -0800 (PST)
From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [RFC PATCH 24/25] tools/rust: Add deny.toml
Date: Fri, 15 Nov 2024 11:51:53 +0000
Message-ID: <20241115115200.2824-25-alejandro.vallejo@cloud.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

deny.toml allows auditing transitive dependencies and allowed licences.
In particular it allows the use of cargo-deny for all Rust project.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
 tools/rust/deny.toml | 236 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 236 insertions(+)
 create mode 100644 tools/rust/deny.toml

diff --git a/tools/rust/deny.toml b/tools/rust/deny.toml
new file mode 100644
index 000000000000..1b74553569a7
--- /dev/null
+++ b/tools/rust/deny.toml
@@ -0,0 +1,236 @@
+# This template contains all of the possible sections and their default values
+
+# Note that all fields that take a lint level have these possible values:
+# * deny - An error will be produced and the check will fail
+# * warn - A warning will be produced, but the check will not fail
+# * allow - No warning or error will be produced, though in some cases a note
+# will be
+
+# The values provided in this template are the default values that will be used
+# when any section or field is not specified in your own configuration
+
+# Root options
+
+# The graph table configures how the dependency graph is constructed and thus
+# which crates the checks are performed against
+[graph]
+# If 1 or more target triples (and optionally, target_features) are specified,
+# only the specified targets will be checked when running `cargo deny check`.
+# This means, if a particular package is only ever used as a target specific
+# dependency, such as, for example, the `nix` crate only being used via the
+# `target_family = "unix"` configuration, that only having windows targets in
+# this list would mean the nix crate, as well as any of its exclusive
+# dependencies not shared by any other crates, would be ignored, as the target
+# list here is effectively saying which targets you are building for.
+targets = [
+    # The triple can be any string, but only the target triples built in to
+    # rustc (as of 1.40) can be checked against actual config expressions
+    #"x86_64-unknown-linux-musl",
+    # You can also specify which target_features you promise are enabled for a
+    # particular target. target_features are currently not validated against
+    # the actual valid features supported by the target architecture.
+    #{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
+]
+# When creating the dependency graph used as the source of truth when checks are
+# executed, this field can be used to prune crates from the graph, removing them
+# from the view of cargo-deny. This is an extremely heavy hammer, as if a crate
+# is pruned from the graph, all of its dependencies will also be pruned unless
+# they are connected to another crate in the graph that hasn't been pruned,
+# so it should be used with care. The identifiers are [Package ID Specifications]
+# (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html)
+#exclude = []
+# If true, metadata will be collected with `--all-features`. Note that this can't
+# be toggled off if true, if you want to conditionally enable `--all-features` it
+# is recommended to pass `--all-features` on the cmd line instead
+all-features = false
+# If true, metadata will be collected with `--no-default-features`. The same
+# caveat with `all-features` applies
+no-default-features = false
+# If set, these feature will be enabled when collecting metadata. If `--features`
+# is specified on the cmd line they will take precedence over this option.
+#features = []
+
+# The output table provides options for how/if diagnostics are outputted
+[output]
+# When outputting inclusion graphs in diagnostics that include features, this
+# option can be used to specify the depth at which feature edges will be added.
+# This option is included since the graphs can be quite large and the addition
+# of features from the crate(s) to all of the graph roots can be far too verbose.
+# This option can be overridden via `--feature-depth` on the cmd line
+feature-depth = 1
+
+# This section is considered when running `cargo deny check advisories`
+# More documentation for the advisories section can be found here:
+# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
+[advisories]
+# The path where the advisory databases are cloned/fetched into
+#db-path = "$CARGO_HOME/advisory-dbs"
+# The url(s) of the advisory databases to use
+#db-urls = ["https://github.com/rustsec/advisory-db"]
+# A list of advisory IDs to ignore. Note that ignored advisories will still
+# output a note when they are encountered.
+ignore = [
+    #"RUSTSEC-0000-0000",
+    #{ id = "RUSTSEC-0000-0000", reason = "you can specify a reason the advisory is ignored" },
+    #"a-crate-that-is-yanked@0.1.1", # you can also ignore yanked crate versions if you wish
+    #{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" },
+]
+# If this is true, then cargo deny will use the git executable to fetch advisory database.
+# If this is false, then it uses a built-in git library.
+# Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support.
+# See Git Authentication for more information about setting up git authentication.
+#git-fetch-with-cli = true
+
+# This section is considered when running `cargo deny check licenses`
+# More documentation for the licenses section can be found here:
+# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
+[licenses]
+# List of explicitly allowed licenses
+# See https://spdx.org/licenses/ for list of possible licenses
+# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
+allow = [
+    "MIT",
+    "Apache-2.0",
+    "Unicode-DFS-2016",
+    #"Apache-2.0 WITH LLVM-exception",
+]
+# The confidence threshold for detecting a license from license text.
+# The higher the value, the more closely the license text must be to the
+# canonical license text of a valid SPDX license file.
+# [possible values: any between 0.0 and 1.0].
+confidence-threshold = 0.8
+# Allow 1 or more licenses on a per-crate basis, so that particular licenses
+# aren't accepted for every possible crate as with the normal allow list
+exceptions = [
+    # Each entry is the crate and version constraint, and its specific allow
+    # list
+    #{ allow = ["Zlib"], crate = "adler32" },
+]
+
+# Some crates don't have (easily) machine readable licensing information,
+# adding a clarification entry for it allows you to manually specify the
+# licensing information
+#[[licenses.clarify]]
+# The package spec the clarification applies to
+#crate = "ring"
+# The SPDX expression for the license requirements of the crate
+#expression = "MIT AND ISC AND OpenSSL"
+# One or more files in the crate's source used as the "source of truth" for
+# the license expression. If the contents match, the clarification will be used
+# when running the license check, otherwise the clarification will be ignored
+# and the crate will be checked normally, which may produce warnings or errors
+# depending on the rest of your configuration
+#license-files = [
+# Each entry is a crate relative path, and the (opaque) hash of its contents
+#{ path = "LICENSE", hash = 0xbd0eed23 }
+#]
+
+[licenses.private]
+# If true, ignores workspace crates that aren't published, or are only
+# published to private registries.
+# To see how to mark a crate as unpublished (to the official registry),
+# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field.
+ignore = false
+# One or more private registries that you might publish crates to, if a crate
+# is only published to private registries, and ignore is true, the crate will
+# not have its license(s) checked
+registries = [
+    #"https://sekretz.com/registry
+]
+
+# This section is considered when running `cargo deny check bans`.
+# More documentation about the 'bans' section can be found here:
+# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
+[bans]
+# Lint level for when multiple versions of the same crate are detected
+multiple-versions = "warn"
+# Lint level for when a crate version requirement is `*`
+wildcards = "deny"
+# The graph highlighting used when creating dotgraphs for crates
+# with multiple versions
+# * lowest-version - The path to the lowest versioned duplicate is highlighted
+# * simplest-path - The path to the version with the fewest edges is highlighted
+# * all - Both lowest-version and simplest-path are used
+highlight = "all"
+# The default lint level for `default` features for crates that are members of
+# the workspace that is being checked. This can be overridden by allowing/denying
+# `default` on a crate-by-crate basis if desired.
+workspace-default-features = "allow"
+# The default lint level for `default` features for external crates that are not
+# members of the workspace. This can be overridden by allowing/denying `default`
+# on a crate-by-crate basis if desired.
+external-default-features = "allow"
+# List of crates that are allowed. Use with care!
+allow = [
+    #"ansi_term@0.11.0",
+    #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is allowed" },
+]
+# List of crates to deny
+deny = [
+    #"ansi_term@0.11.0",
+    #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is banned" },
+    # Wrapper crates can optionally be specified to allow the crate when it
+    # is a direct dependency of the otherwise banned crate
+    #{ crate = "ansi_term@0.11.0", wrappers = ["this-crate-directly-depends-on-ansi_term"] },
+]
+
+# List of features to allow/deny
+# Each entry the name of a crate and a version range. If version is
+# not specified, all versions will be matched.
+#[[bans.features]]
+#crate = "reqwest"
+# Features to not allow
+#deny = ["json"]
+# Features to allow
+#allow = [
+#    "rustls",
+#    "__rustls",
+#    "__tls",
+#    "hyper-rustls",
+#    "rustls",
+#    "rustls-pemfile",
+#    "rustls-tls-webpki-roots",
+#    "tokio-rustls",
+#    "webpki-roots",
+#]
+# If true, the allowed features must exactly match the enabled feature set. If
+# this is set there is no point setting `deny`
+#exact = true
+
+# Certain crates/versions that will be skipped when doing duplicate detection.
+skip = [
+    #"ansi_term@0.11.0",
+    #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason why it can't be updated/removed" },
+]
+# Similarly to `skip` allows you to skip certain crates during duplicate
+# detection. Unlike skip, it also includes the entire tree of transitive
+# dependencies starting at the specified crate, up to a certain depth, which is
+# by default infinite.
+skip-tree = [
+    #"ansi_term@0.11.0", # will be skipped along with _all_ of its direct and transitive dependencies
+    #{ crate = "ansi_term@0.11.0", depth = 20 },
+]
+
+# This section is considered when running `cargo deny check sources`.
+# More documentation about the 'sources' section can be found here:
+# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html
+[sources]
+# Lint level for what to happen when a crate from a crate registry that is not
+# in the allow list is encountered
+unknown-registry = "deny"
+# Lint level for what to happen when a crate from a git repository that is not
+# in the allow list is encountered
+unknown-git = "deny"
+# List of URLs for allowed crate registries. Defaults to the crates.io index
+# if not specified. If it is specified but empty, no registries are allowed.
+allow-registry = ["https://github.com/rust-lang/crates.io-index"]
+# List of URLs for allowed Git repositories
+allow-git = []
+
+[sources.allow-org]
+# 1 or more github.com organizations to allow git sources for
+#github = [""]
+# 1 or more gitlab.com organizations to allow git sources for
+#gitlab = [""]
+# 1 or more bitbucket.org organizations to allow git sources for
+#bitbucket = [""]
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:13:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837435.1253363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvCP-00006p-Um; Fri, 15 Nov 2024 12:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837435.1253363; Fri, 15 Nov 2024 12: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 1tBvCP-00006i-QK; Fri, 15 Nov 2024 12:13:17 +0000
Received: by outflank-mailman (input) for mailman id 837435;
 Fri, 15 Nov 2024 12:13: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=3ntz=SK=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBvCN-00006c-Ig
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:13:15 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20618.outbound.protection.outlook.com
 [2a01:111:f403:2613::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb3b54c7-a34a-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:13:11 +0100 (CET)
Received: from DUZPR01CA0295.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b7::11) by PA4PR08MB6111.eurprd08.prod.outlook.com
 (2603:10a6:102:e3::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.19; Fri, 15 Nov
 2024 12:13:07 +0000
Received: from DB5PEPF00014B99.eurprd02.prod.outlook.com
 (2603:10a6:10:4b7:cafe::aa) by DUZPR01CA0295.outlook.office365.com
 (2603:10a6:10:4b7::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 12:13:07 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5PEPF00014B99.mail.protection.outlook.com (10.167.8.166) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Fri, 15 Nov 2024 12:13:06 +0000
Received: ("Tessian outbound 6a0f5b372c2e:v490");
 Fri, 15 Nov 2024 12:13:06 +0000
Received: from Lbfcceb09e866.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 2E1A9BDC-76C6-47DA-8BD0-D715C77DD5B1.1; 
 Fri, 15 Nov 2024 12:13:00 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lbfcceb09e866.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 Nov 2024 12:13:00 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by PA6PR08MB10708.eurprd08.prod.outlook.com (2603:10a6:102:3c7::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16; Fri, 15 Nov
 2024 12:12:57 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.017; Fri, 15 Nov 2024
 12:12: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: fb3b54c7-a34a-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjE4IiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZiM2I1NGM3LWEzNGEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjcyNzkxLjU0NTE1OSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=CiMW0lhiCeCLdvSZ3jNNM6dGTnIHqCwpb49bb+B1ZBK8ZXyBnt286Y8dvCDsgZdDKvKtympFe+jlZHLOKmK2bs1GoMkYG2lnH0vKZfm3sea+1Fx4crHuQSn/oRTdyT+eOYVeIgxNiTDZjHwcVeN3qVs1B3FYh3qmPdZJCCEOCdq1Ptul+B0YKR3tqaKSIxz9r/EY69jgtCEp4Ql8y5CU0k4VcWaUbeCLWuVIDjOxNNnVDTK+524UD9HiwakRHio2TE5FK0i4q0EKJhnq0n5AvTCOP2Nr0RBFTM8YMuY/sBDXAFQRMOsUitCWssiFYzPDa/lPPpzVHCcGJMNtyMh9AQ==
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=Ka+6tg+d0UjMzOGfzNZxhXIIG8Kxi6GwB/TwiHXq1oo=;
 b=bx6KaU2cAIJTupiDWI3UgRBkHwsHjKILMCR41qbQ7vHKjR519dtTbRURdzKDWPMaDCoA+Y8aJ64IyEnsQ5XSAnXuo55StjZZ++6oqd7kdpB4FUWhf6+TS/5qsYd192uo3Z+KsMtUN727FAV3gzR2gsld1E1GhE97K2/mtxN2MXiG4HpODOZ1ccQLchzgXwziFZoeFrqU0sfUiCS1zVPNT7lpCaoukVDxYSrzIlL6MkpEcpZUdjLGaHO474lVgGu6WgCj/turSvhlS2jJDoSkO++pIrT3brACI1uDxX8zjg5LOHZxjdXxZe57mHPFZJo+Ejn1XSHGz8yi7A1+dCODeA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=Ka+6tg+d0UjMzOGfzNZxhXIIG8Kxi6GwB/TwiHXq1oo=;
 b=h3BOn7a8Kd/Xd8IzEn/tq3APlg5UYrCnhS5sI7dk5Nga6wv4GOshfOzfn+dJLYySDmZm6iARzy+GT2AmzfAKtj8FO45tLfDabWS2DjwGpf84ppG4aAPSVYDRo18q9N3wUa9YckKhEvircMNffI+cPxcjUwWRkUk7GVN0v4vQXA0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: bf5133756de9ec09
X-TessianGatewayMetadata: m3H+/51AUpjHADgtLpU+BMCzF520wFeKFnk3h5n3odjDTkPkMf0HDTpec8Uh7i/7Q15hvEyakJ8eZP5frtX1VN1TXFiaMw1WT18qCCpS3X/RfxBmASfZlvKaD0kUB7U/QlkTZkOAT2MhdKfOUWAIpIQAFN6uTYUZNKM2j1qe5tI=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SdT4CKUcJhzC3C0kNbhV3oYyq4j1BAERdJQEBF+cx+R97sbctmwa5BRfcZP3thS3opNS8hg06Bb/jGr7ZFjKwAMHtbmAQzqlMW3qzrqiBJDKPlviEYqS/sFfYu33idF0VzoMki73vAnCeb/tc2G2d+hPrj2/rDJpDiYUttPqEAv+DJyGzY/+k4Qu0mCEhNtxIJFa0kucajJUJqkYJb2955LDYV82cNjScKiLGiJ8LucCcTJisxucPIDFexcWTkMJW5YanCbHownn4tDDxrf6IKVpUM/17Lk8vOOVHNsREAkLtr56FMr03noMETtzNxim2jRz658aVj3EvldaGGRu3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ka+6tg+d0UjMzOGfzNZxhXIIG8Kxi6GwB/TwiHXq1oo=;
 b=vSGJ4pyrawQq0bdtBx8OD/xRbkIVK8r5eOR6bXy+cfjV/DIWUTtEymkG4GnaIKuRoznlvgWRLDTMagCRKoq58ymtx/EqkF10VR3wu/95QSf2+vOyQBM8g4OTrHIV2yxj/6dafUYeXvSoV0A9hktoC+Hela/znr55VCIfGSV3H3ezdkO0PmQDFR8Dogr2mAmwm0fH5ZwQQhQa2GvoiIZj0O+DM2aPpPVUmCgVYAglvQvD1Dihcr2H4sjcPjQxiwUIXGBlgOP+8AHd7+8NtskxsrwbVtzpLA4oCN2g4dl20bARZUloFb22VQ5TJyeWmJqYVmxGFqHAxs7Dd1Uy1h7ViQ==
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=Ka+6tg+d0UjMzOGfzNZxhXIIG8Kxi6GwB/TwiHXq1oo=;
 b=h3BOn7a8Kd/Xd8IzEn/tq3APlg5UYrCnhS5sI7dk5Nga6wv4GOshfOzfn+dJLYySDmZm6iARzy+GT2AmzfAKtj8FO45tLfDabWS2DjwGpf84ppG4aAPSVYDRo18q9N3wUa9YckKhEvircMNffI+cPxcjUwWRkUk7GVN0v4vQXA0=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbN0xEMVIvN3HbzEuhbXugN/BCZLK4PUmAgAADYgA=
Date: Fri, 15 Nov 2024 12:12:57 +0000
Message-ID: <5A329553-F3E0-4C4E-8E84-2ACDF3C69756@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
 <2b13f12c-905d-478c-b525-a3a8c69d5ac7@citrix.com>
In-Reply-To: <2b13f12c-905d-478c-b525-a3a8c69d5ac7@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|PA6PR08MB10708:EE_|DB5PEPF00014B99:EE_|PA4PR08MB6111:EE_
X-MS-Office365-Filtering-Correlation-Id: 786d4fb5-dea0-46fa-a5b6-08dd056edd0f
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Sm05VEdWQm1QMVJrL28wLysvUDlORndpTEhPMHVMSC9PWUlMQ1RCbG9FeFN5?=
 =?utf-8?B?VDhhNEJrNXpoNUUxdVZKWlJUalNKZFNmOGZ4OFdONC96d0tJVHhCai9FMWIw?=
 =?utf-8?B?bGE5VFVtMWhFQXRwNHJ2MWhTVzdlSTZyT1hNM0JIaXlrSDVEQlRuTTJ0KzlK?=
 =?utf-8?B?ZDJYaXFJenZWUVlFQUllRm5pSHpJME5XcmNONTh6aXA1QkllQ2lCVW9mWlhv?=
 =?utf-8?B?NytkenJBK0RRUjhCYWNSVC9tS0xqOHR3L1g0bEhnNG1HM2ZrQllUT0RML0Ji?=
 =?utf-8?B?MkFHTXlVUkdnbnI2cit3NTZRcnZCV2FCak9ZMFFVTCtRalk0NnRwLzFHcDdM?=
 =?utf-8?B?cGE5azkwWDZWVElucVQ3OGFDbmFya0I0c1ZjTzJJSXZCRitkenM0MVBaUDcz?=
 =?utf-8?B?R3FkamFuWThwaDkxM0VWbG9iODFmVlcrUGVYMVd5eS9vcXpSVUN1dTFXY2ll?=
 =?utf-8?B?MFNDb1hHTzc0NjUxWWpVNFMzcitkOHRGZGtoN24xN05MT1FmZ2RsTVYzRTkr?=
 =?utf-8?B?bk50czd5TGRtOWhFTFB3WjNNSzhYMEFRTkh2VDBjTE9KNWRjc3lnUGxzK3lE?=
 =?utf-8?B?NElzeFZ5am11Zmh5ak00Ym5ZbDNLLzhmWjRjdGl3SVZZNDR6RzhPZlJMczVl?=
 =?utf-8?B?cFJBK3VWemJnYVRHU1E0QWwyS0hYSFR0anQyOFd3NytqUzdFdW92YjZnemFl?=
 =?utf-8?B?Wmx3YVFzK0FxZDkzeXdNaU5MMXQ1NWJMS3lUQ0ZYNFd2Sk1lRXI0ZGVuaUEv?=
 =?utf-8?B?VU1GZ3I2OVRXL3hiOThQMCsxQkIxbVRFcmQ4RU1jY2dFL2FqckUyWWtjU2pG?=
 =?utf-8?B?TFFhV0ZKa00zRnBDMmNkNVFacVNKUlNnbDA5ZXo3cEo1cUxKMDB3VFlBNkFK?=
 =?utf-8?B?SzBTNXh6NkZvenduYlM5YnBoelNCd2hvZGhTMGphSDFRbzk0RWp4TTBKZ29D?=
 =?utf-8?B?YkN1ZXdnanY0WExzWjRBaGlmRUJJWjBjb20wN1pTZmRqSFdqbys0NU50ejlC?=
 =?utf-8?B?dHAyRmw2Yloza2ZQM29kSmsrWkdxUUZlZTNVcjRhaFZHd2RVNDNCaEhNTjdI?=
 =?utf-8?B?ZjVWZFRwblBJKzVEektXSDBqSnk5aDJSek5VZDltWVdXN1N5aEEyVS9XcDU2?=
 =?utf-8?B?NXN5NzlYZXBteVp3cXhNbTlLZHA2Q1cvV3UwK28rTVBrUDJRZTNYMm1oZGVQ?=
 =?utf-8?B?c245ODROdDB4NERWMWxibmF6U1lEb0tJMmVDbXdGdS9uNk9LMjh2SmJ4c0tv?=
 =?utf-8?B?ZStaVklBMzU5a21lOTJCaWxTcTM0MThPMmNtLzRmL1d3OW1EL0JoelJmSHg5?=
 =?utf-8?B?NjAwcTQwZ05VcGM1OG80Wng2aW9vc29xOXdHQmh3QXlBL2NnckdTbEVoUnBV?=
 =?utf-8?B?ZGdXQkcrQ3VuTWNleFlWS2o0MzZBZnJxajRnSjhkNmdpVDcwc3BIeUNrUTBy?=
 =?utf-8?B?d2NnWFpJOWVsZEJYNEZRblJpU2pyWjB3VmFIRWd0Z0d5K29mb3NncjhEa0pE?=
 =?utf-8?B?aVg2d25VQWJvU0pCYTkwVU9zUngwdStENTNPTmpjWWQ3WGRJRHFFeHRUc21z?=
 =?utf-8?B?V3YyNGxuaXNXazM2ZENxdy9xYjVCazV6cWVGaTdGN2JBRmtvZ1RTUXlQY2FR?=
 =?utf-8?B?VTVwWVc5SUp1UC9WdHo2S294Ty9ORHQ4Y2hXc0dBc1I1a3N1eXN0TG13MEpM?=
 =?utf-8?B?aU00aEh2UGEzckk1WGw4Wmd0NmlkN0dvbGFoT1JmSUk0ellhYzFPNTdtaEJ5?=
 =?utf-8?B?WlNEbDdMSEg3N3JjdVFIRURZL3VObmZFTE1JL3k5TlpXYXloVGN0U0pFVGsw?=
 =?utf-8?Q?URgPjEyT1UFc2SwF8YjrRHU/UA9VbvPjFLeNg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <DF4E2306C79E6340BA53D30A9847C8EF@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10708
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B99.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	dda107d5-93a9-494b-5180-08dd056ed773
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|36860700013|376014|82310400026|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?STRBOGt3KzZFT0ZDZFliT2k1RXJHRHJJSUlZb2h0NzJWTklCNG9ISCtoelF0?=
 =?utf-8?B?VjRHQlFBUjgrNnkxZzVZREVSbzVndkoxSk45UXJVY014anNpMXZrRGFFRVlq?=
 =?utf-8?B?Syt0elE4ZWR0VXJNWEU5UTBUMnB3V1d5V2NKU2RIN3JDMWkyNG9yUlBIemMx?=
 =?utf-8?B?Z2pqSkMyWjFteGp2eEhmU2ptM1RvQUhGbU14SWxyZnQzYUNDRndIMFp0UTRF?=
 =?utf-8?B?WXlqRDczSHBPOE00ZTA3S1U0b1E2QmkwQkIrOWVRc09QTGh1Q3RlVU5hUHhV?=
 =?utf-8?B?WkJ0eG11cTd1N1ovQWk0L0JYMUEreVo2OWYzMjZlZ0JZTEZGZnJYNllOaUJo?=
 =?utf-8?B?MXE3cjlydWJPb1hRRHQxSGgrd1NnRlV2MkFiTUZTSkhqdGhGaXlabmsrbUNL?=
 =?utf-8?B?Tm5ud2ZoUERuaFRaMkowbEdXd0Qvd0tzSUNySVp5SXRuVEszdEQySTBoWkI0?=
 =?utf-8?B?Y0xLUHArZjdXNkZpa2FXRktwZ2swNWlkNGhLQ0szamo4YWRWdGpIaU9tSlk1?=
 =?utf-8?B?RWhkaXVjekI4NU5zREV2czJCaFN2QjFtb0FPYjJVTFFXSkNvOUVDQjJsMjB5?=
 =?utf-8?B?NE8renpPZnJTaEFRZm5vR0lXNHJuRzF6aUgwZVJReEtaYkM2dzJMOXA4eXk1?=
 =?utf-8?B?QU5GZG51ZUJMQUtkdTFGWjJUai9DZE9WRmtHUlRRL3RacEtCTGhhZ3lQYTZh?=
 =?utf-8?B?aXk0R2w1OW15Sm1vZmFoL3gzaXBZakRrYTF2T1dDZlBUdHJCbWwzSEs5NkdE?=
 =?utf-8?B?aEhEcDlmQ2hXQWZ6SGF6Y2lRdkxsaHYxdi9zR3JUaG9OSWpjY0psSEZOcXZI?=
 =?utf-8?B?NzdBNS9ZSStVVVdWV2FEM3kxQkRvL0d4SUVrNmZQVkd4T0F4NzNmQXRFOVlO?=
 =?utf-8?B?RXVFL0hiTlA1RVYxdytKT2lDNm9MYWMveEFPZlVldHFHRFBEK0RFSzNXa3Rx?=
 =?utf-8?B?ekZuWk5HV3BJc2k0dkhsRU00NENvamxsTmxLeUtZMkllQUR4bFJzd0I3dzVS?=
 =?utf-8?B?VDBCZHA1Nm1QQlF3SnlkMjhma3ZnemdmZ3RRU1BUNXorMWxUU3NmbG81N3dV?=
 =?utf-8?B?R2RqMUx1NTYzTFB3RlZRQkFYNjZNd1l3QnRzUVZyTkd5UmJOa0pJOUdoeXFN?=
 =?utf-8?B?MUJJdlp5M1ZQakpkaU90YWxvb1k0aFZ3MGYxMFA5QzI0a015dmdVUGF4WFB4?=
 =?utf-8?B?OTN1L1ZTcjhYaGNVQy9xeWhFcmZSMTdnclh1SXdER2RhRTFpMVlvWG9pL1Nq?=
 =?utf-8?B?UmE1Z25TRmZmVEQwOWl1WUs0MU5KN3JyblZIR0VONlhFQk9rNzROdDF4YUNB?=
 =?utf-8?B?ZDVoWUNHUExKaE1NVDYxMTV0c283Tkx4ZHlHb1ZJTWZvb2lzd1FwRkVIb21j?=
 =?utf-8?B?Vi9JNlh2YjhiemdSZWptc3BSdHRydjJoRGtEaXBvTWNmUzl5T3ZLVThkbHhx?=
 =?utf-8?B?MUxtcHhDSXozVVE3RXRoWmRUVTlHWHFmYjNHSloxMkhDRkczL2xBdzQ5d1BH?=
 =?utf-8?B?ZWQ0T2FDU1BLTmR2TUtHRnh5YUM5My9LQWhTd0ZSdDBXSktMbHUzbDJvdzhS?=
 =?utf-8?B?c3Z0VSt6VlZGeUtwN3pkMU9OZStKNnJVMHNXdVlVTW9xUjhVQUlqaWdVcjIw?=
 =?utf-8?B?Y1VpMnBtdWNNbi9pdWN6RjA2Skl2QVpDTHF4WER1dDV2Qnd0VHBZQVNKSldr?=
 =?utf-8?B?bko2bXVFOUtsMjdkZzNxMkpNYVg2MzNQdXBEUndON0FkdFB3ZVAwb2hpM1Ez?=
 =?utf-8?B?akJwNjFIMlpOR2NlYjhEcjRBdm54SnVxWFlUTmVQZWh5WEZYRVRQSFk2K1Ft?=
 =?utf-8?B?R2xiV0RNNGl1aDBRZXBGNU5SQWRESUJIWmkvalcxRExTWUV2ZzA4eW16VXNj?=
 =?utf-8?B?SlYxcndZMTVkMUVrU1hNeDJIZzZ5K2ZSNmRHYjRraTc5ekE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(36860700013)(376014)(82310400026)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 12:13:06.9810
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 786d4fb5-dea0-46fa-a5b6-08dd056edd0f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B99.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6111

DQoNCj4gT24gMTUgTm92IDIwMjQsIGF0IDEyOjAwLCBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIDE1LzExLzIwMjQgMTA6NTAgYW0sIEx1
Y2EgRmFuY2VsbHUgd3JvdGU6DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3h2bWFs
bG9jLmggYi94ZW4vaW5jbHVkZS94ZW4veHZtYWxsb2MuaA0KPj4gaW5kZXggNDQwZDg1YTI4NGJi
Li44MDJiZTY2ODcwODUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4veHZtYWxsb2Mu
aA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3h2bWFsbG9jLmgNCj4+IEBAIC00MCwyMCArNDAs
NDYgQEANCj4+ICAgICAoKHR5cGVvZihwdHIpKV94dnJlYWxsb2MocHRyLCBvZmZzZXRvZih0eXBl
b2YoKihwdHIpKSwgZmllbGRbbnJdKSwgXA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfX2FsaWdub2ZfXyh0eXBlb2YoKihwdHIpKSkpKQ0KPj4gDQo+PiArI2lmIGRlZmluZWQoQ09O
RklHX0hBU19WTUFQKQ0KPj4gKw0KPj4gLyogRnJlZSBhbnkgb2YgdGhlIGFib3ZlLiAqLw0KPj4g
dm9pZCB4dmZyZWUodm9pZCAqdmEpOw0KPj4gDQo+PiArLyogVW5kZXJseWluZyBmdW5jdGlvbnMg
Ki8NCj4+ICt2b2lkICpfeHZtYWxsb2Moc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbik7
DQo+PiArdm9pZCAqX3h2emFsbG9jKHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24pOw0K
Pj4gK3ZvaWQgKl94dnJlYWxsb2Modm9pZCAqdmEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQg
YWxpZ24pOw0KPj4gKw0KPj4gKyNlbHNlDQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2b2lkIHh2
ZnJlZSh2b2lkICp2YSkNCj4+ICt7DQo+PiArICAgIHhmcmVlKHZhKTsNCj4+ICt9DQo+PiArDQo+
PiArdm9pZCAqX3h2bWFsbG9jKHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24pDQo+PiAr
ew0KPj4gKyAgICByZXR1cm4gX3htYWxsb2Moc2l6ZSwgYWxpZ24pOw0KPj4gK30NCj4+ICsNCj4+
ICt2b2lkICpfeHZ6YWxsb2Moc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbikNCj4+ICt7
DQo+PiArICAgIHJldHVybiBfeHphbGxvYyhzaXplLCBhbGlnbik7DQo+PiArfQ0KPj4gKw0KPj4g
K3ZvaWQgKl94dnJlYWxsb2Modm9pZCAqdmEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxp
Z24pDQo+PiArew0KPj4gKyAgICByZXR1cm4gX3hyZWFsbG9jKHZhLCBzaXplLCBhbGlnbik7DQo+
PiArfQ0KPj4gKw0KPj4gKyNlbmRpZg0KPiANCj4gRG9lcyB0aGlzIHJlYWxseSBjb21waWxlIHdp
dGggdGhlIHdyYXBwZXJzIG5vdCBiZWluZyBzdGF0aWMgaW5saW5lID8NCg0Kd293LCB5ZXMgaXQg
aXMgY29tcGlsaW5nIGFuZCBJ4oCZbSBzdXJwcmlzZWQgYWJvdXQgdGhhdCwgdGhpcyB3YXMgY2xl
YXJseSBhIG1pc3Rha2UsIEnigJlsbCBmaXgNCg0KPiANCj4gVGhhdCBhc2lkZSwgY291bGQgd2Ug
bm90IGRvIHRoaXMgdXNpbmcgY29uZGl0aW9uYWwgYWxpYXNlcywgcmF0aGVyIHRoYW4NCj4gd3Jh
cHBpbmcgdGhlIGZ1bmN0aW9ucz8gIEl0IHdvdWxkIGNlcnRhaW5seSBiZSBzaG9ydGVyLCBjb2Rl
IHdpc2UuDQoNCknigJlsbCBwaW5nIHlvdSB0byB1bmRlcnN0YW5kIGJldHRlciB3aGF0IHlvdSBt
ZWFuIGhlcmUNCg0KDQo+IA0KPiB+QW5kcmV3DQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:16:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:16:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837444.1253372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvFB-0001a5-Dc; Fri, 15 Nov 2024 12:16:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837444.1253372; Fri, 15 Nov 2024 12:16: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 1tBvFB-0001Zy-An; Fri, 15 Nov 2024 12:16:09 +0000
Received: by outflank-mailman (input) for mailman id 837444;
 Fri, 15 Nov 2024 12:16: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=3ntz=SK=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBvFA-0001Z3-5b
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:16:08 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2608::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60c11e00-a34b-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 13:16:02 +0100 (CET)
Received: from AM0PR06CA0094.eurprd06.prod.outlook.com (2603:10a6:208:fa::35)
 by DU0PR08MB8140.eurprd08.prod.outlook.com (2603:10a6:10:3ef::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.19; Fri, 15 Nov
 2024 12:15:58 +0000
Received: from AMS0EPF0000019B.eurprd05.prod.outlook.com
 (2603:10a6:208:fa:cafe::ec) by AM0PR06CA0094.outlook.office365.com
 (2603:10a6:208:fa::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 12:15:58 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS0EPF0000019B.mail.protection.outlook.com (10.167.16.247) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Fri, 15 Nov 2024 12:15:58 +0000
Received: ("Tessian outbound a09d3701ea63:v490");
 Fri, 15 Nov 2024 12:15:58 +0000
Received: from L11bd8c8f55da.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 EA874405-D7EB-48E7-8C8C-2D317B93256A.1; 
 Fri, 15 Nov 2024 12:15:51 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L11bd8c8f55da.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 Nov 2024 12:15:51 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by GV2PR08MB9422.eurprd08.prod.outlook.com (2603:10a6:150:dd::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 12:15:49 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.017; Fri, 15 Nov 2024
 12:15: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: 60c11e00-a34b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwODo6NjJkIiwiaGVsbyI6IkVVUjAyLURCNS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjYwYzExZTAwLWEzNGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjcyOTYyLjExODg5Niwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=eCUc0At5TJaGd+CPC/4cueqqnL453K+y9HbljTKYP3qUMM19gd57k0MUr9fxTSR53vH0JXCc9kE9/B6iPvQVg3l9le0JljWwoyHO+bgnkpb22yjNt+cb9gvNDzQB7e60o/rh7hDKscSKho8RP1M0nfOMyN8qEcDdWpehJOzzCP/NBjhKBGX5QkHYAVX1wxCvSTVSeWfa4JCSXDQ41shfA37MA+4DV5q1euhsUiOOFCeOcrNvHnBqSlLb+plJTfSW/D6KCt3pYf0FUVvG4j4GNZLf5u7PSfNSicgLgPoQS1awUEsNBWjvTP4X8B080A7tlhbO/gPUBX6DoboryvTnNQ==
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=FtTnIVpOitl2YQjYKKBIUIuxO1v6rdHSIPzyPGhQK/s=;
 b=hHEqsw64HlWcCJP3bYucMWgqTNlvWkEJd1gBtp6EiEI4T6hPpx0/TDJYI+vgNJHrhsWY7Mv6ayhUWLhpoVBS60KRsjnnJQ8X1zR3Ap3HBiatVbtzckELt1FsSsLyuYxYjQdO9ysCkQJ8aWTi4nJJk1yvbPQ/rxv1jyxPEL1hg+wq3WwU0eYCVSufmIAmZ36j3mJ6u7KWiPz0DrCUM27695+ffLG75hhoqCcStwTn2ctdo4Bt/pUHZCoAeMZokXfI6JJt9hLJU0aiPU6NfVg01LtJ8vVCiKa41xw8mlGTNAKb/Ndw8TK4tyhPu3rxUI9tf6KaOU5CPYHMu6q9Pg6Viw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=FtTnIVpOitl2YQjYKKBIUIuxO1v6rdHSIPzyPGhQK/s=;
 b=NU4GQYtK0NZ2yDbPUvCI4IC2yCkAvmRXUmBESNLie14PQw3rqI9AAG0igEj4N3kPv1/gmo9P7ieAwDaPFwkpopvHnemeidoBdaXmNLGJfkJgWnQqEliu/86q5wecIGz32YzycIjKEWze4ywYxQTi7srWNGEhuQg7BL2iV2uS7TE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: c9503eb04854ff72
X-TessianGatewayMetadata: tKRAvq0cCZtVdeEHqx9vvmfPUU0R1w5T6S+8ejBcm7EVl0yZld5vEc3vh7okPp+7WqZv8kHrkDxjqVfHSQ0rgbpKbYa33SgtZzjTSkUlz9HL5HzgkPO3zDTN3hHg3pZnCUcccQ1Q1kr4MCuqCoS9cE1rxJC1qCAWL0boTMNw3u0=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Bhnzlff1UqzKgMQpo1GwhJkfYpC0pqg/uryxHgy3zZwjg4dEwvKcNu9bRmQWe9WNuJqzps1UsPj2lndJ8OZlEg4e9wS0f00056jmeVTscxsjjXM7JUZDJaz+m3IGZLZEpmcq7Ce/qZN9qzobwF8myonwNwfrNyWiQPDYvEbD3Csnr98u3TyxFLwQkY5YGFJdbMfEWGwPfMYnyy1CM+vGcGeKxRD1sl8KcpSNO42RI2AMyWE1VAvYdt8qQd5DBY3YLwlIjOo1ucstl2g9UnkBRkCrjtQo2a+MlbFkqWdy/vQBapOtsCvzl0cgerOhjUnG6zx7hXFq0RenWg7JhpUTAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FtTnIVpOitl2YQjYKKBIUIuxO1v6rdHSIPzyPGhQK/s=;
 b=sEknYNeMNSkSYQoZeL0pHtMlSc2kfL5W7pvU6BH8JBK7z/DYik0hlj72BrRigwT/t3+nTY7BZNkU93EQ//sEEALv/Cqqg/ebXqGoZeYoG3Cl25gjNs7EmoWwutfjHCyHNNZM/PNTfh/bymVQTDxrkBonEXLcELHYurUf5zziHKXarztQoeqZ9khYA54CED613bht+HqckniLUbBhJAOuXJRSVPTr8lp1rwESUvAonbUMnBfsizQOMaD9fP6wspH8p3OFiJ8LIzOxmVf+esCVTKsp6fTjtWtlwA7QGlPkCasLd6mQuf8lddVsYs362J1LIZMK7FpsXvfE1Um2RhO6JA==
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=FtTnIVpOitl2YQjYKKBIUIuxO1v6rdHSIPzyPGhQK/s=;
 b=NU4GQYtK0NZ2yDbPUvCI4IC2yCkAvmRXUmBESNLie14PQw3rqI9AAG0igEj4N3kPv1/gmo9P7ieAwDaPFwkpopvHnemeidoBdaXmNLGJfkJgWnQqEliu/86q5wecIGz32YzycIjKEWze4ywYxQTi7srWNGEhuQg7BL2iV2uS7TE=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbN0xEMVIvN3HbzEuhbXugN/BCZLK4PUmAgAAELwA=
Date: Fri, 15 Nov 2024 12:15:49 +0000
Message-ID: <F693DC5E-C4E5-445C-AE3F-24EE76B34D90@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
 <2b13f12c-905d-478c-b525-a3a8c69d5ac7@citrix.com>
In-Reply-To: <2b13f12c-905d-478c-b525-a3a8c69d5ac7@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|GV2PR08MB9422:EE_|AMS0EPF0000019B:EE_|DU0PR08MB8140:EE_
X-MS-Office365-Filtering-Correlation-Id: 780e4a29-a66d-43f1-ab9b-08dd056f433c
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?MEtNSDhzVGloZWxhR1UzKzA5aUE4WTJNQThSbWFxc2VEZzNmSGpnWFBWSDRL?=
 =?utf-8?B?aThRbFhxVEVBZk5tYXJXUER2cjZxYUR1Z1NyYnNUN09FSFFtSmNJQi9BSEpX?=
 =?utf-8?B?RithcVJlMEZyZjQ1Y1lUOGpuQkMvUTFhaTNZWVIvdXc0dUxMajU0dHlPME5z?=
 =?utf-8?B?b2xseHV0NEl1Z0g1Z2dxS1ozc3BiVXhUUEpxRWVMblIvaHpEWUV3dER1Ulpn?=
 =?utf-8?B?T0ZJcitHVVhNV3VPRjA0UnZrbXhCSlo1Wi9IcHJzeTNyYWo1MDJPaVlPMnI4?=
 =?utf-8?B?cFNHUUNpVEF2b2QrcDVjYmZOOGRrK1hsMzVENzlQMUpLTlZKMHFYMmpUbFph?=
 =?utf-8?B?THQ2bHJsRmlTeFRzTGd1U21aZURoVmdQUU51TmdMQVZmK0tqeFBiK1FjcWpI?=
 =?utf-8?B?eWkwU3ZrNFhjMStwaEI2UExQbkZxTXBEMGtVRXJKeGdqNnRObGJJcU1tM3Ft?=
 =?utf-8?B?RVBMdlBRejNZYTBpNXZLQmRiT1JTT3FCVTgrWmJaMnozN3FQVHI1TExia2lQ?=
 =?utf-8?B?SXF4UHVWU1pNck1hMXhqcTk0WE1tTHBzNHZqWnJyVStSSURSZHk4eGw2YWJH?=
 =?utf-8?B?akpCQzNVdUFERCs0MVRBdnZwY3ZHZGFWOXBFbUovdVBoSXA2MExzYnlOeUhL?=
 =?utf-8?B?WFAyTnRZZnJSaTVHRUM1b0N3NTdBblE5MGhEa1cwSExla3J2aVFWQjNncjlz?=
 =?utf-8?B?OWNBRGpQMmFwTmJvVlJqdk1kY0ZYOFBDZDM4TW50aHVEWjJDUXljOStVUEla?=
 =?utf-8?B?TzVpaWIzallzcnN1SjE1SWtyUlNHWXMwK2tCQTlpc2FodW96SjlCdjluakdC?=
 =?utf-8?B?Nnl3UVpDL0YzYVNjU0kvRXVyeUZLeG5xS05xak1sNU1VWlUvbVNFK1NMN0Rl?=
 =?utf-8?B?VFd4dWFvbEZkc3dvaHhCa3p5YzVLY2hoYXdFNk0zajN4M2FQM2tlNmhZd0F6?=
 =?utf-8?B?aitsTXhoOHF1YU5WZDg0bE5WN2kyQjhSQ0dKVXcxN2Jid3ViRE91VjFYQnlE?=
 =?utf-8?B?NkVkSWdOKzZNTWhtNm93ZERtMHEzdTRFN0pnV1kxYTBQTHVwYWZUbmQ1WTV3?=
 =?utf-8?B?RFpmTGRNaGN1bWlWY01WQ04rR2JmK1VJNjg0aXFVVXUyeEUvQmNIZC9QWXhX?=
 =?utf-8?B?V2gxQTg1YXFHaHlBTTdmTUI0QmVrQk1PaE9iRnRVVlFLTFBlT3FxMHhhOUtL?=
 =?utf-8?B?LzlSS2w0WGRHUnlMa0FaUXVxRWlUcjZYNkZ6RE9hTDlGUktxYkZqSm56c0Uv?=
 =?utf-8?B?cWZtNFpWN3c3b2hOS0hETzVkdjZRNzUzeFF5SVRJb2dBZVBtV0ZMNmdCUFBP?=
 =?utf-8?B?MXFKSWNzYWE3OTdUQTZjSHVMdE0wSmdVNDRIUmpkaFFwTmVOUjNFV21BUkt5?=
 =?utf-8?B?Vm5xUC9xQVMwVEpodEJvcFRRc3MyTExrVlk0dFQydXFBdjhYbzlHd0k5Y0Rm?=
 =?utf-8?B?WC9sQnFrM0dQRGp3T3BiTktUQVo1QWFvM2RRM0RWbHJabTlEMm9Xa1k5MEhU?=
 =?utf-8?B?TEZGYnhTaXNqY0FaNzk3RTZ5RW52ZUxlMGlKM1hQejNxcXVNRzVJckRmeFkz?=
 =?utf-8?B?MCszV2w0QitVcSsxdnBRTHRmZ1g1R3dpRXFGTUxwbFFOcDk1WUxFK0wzUmdp?=
 =?utf-8?B?TjFRa0VrZVVBdStWWjBhL3MzWUkxOXVPbWpmNHBMRDlOKzhncWRLeVdFK1U4?=
 =?utf-8?B?WDA4aVZ0WVE5WVpkeGVSMTFvVlY0bDNUbTAzOEkvWGViWFdJZFVyVjhlSisv?=
 =?utf-8?B?M0w2QzBYM3RzRHhFTVZmbjR6Ylp5RWVPMERYWlFvVjZydUV5amdLVzd6VCtH?=
 =?utf-8?Q?86HRk4PDKWkivrlNPfthyJGlrEvH2H281SCBs=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2FFBDF97D400C845A6EB20CB839A6445@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9422
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	47620101-cde4-4ea6-52aa-08dd056f3db6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|82310400026|14060799003|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aEU4czUvbjZxS3hjdkpBY2wraWdWSk44OFRDQTY1VEZOZHV6b1BuNGFSZFdE?=
 =?utf-8?B?WjlYY3AyMU9jVXhFMUJXa0JTcnQzeU5YSGJJM3FNaHR1UnBKdTQ5SXpseHYx?=
 =?utf-8?B?MnRpMGxyTG1pYXkwM01KUktTYkFkajlQMmkwWU82UXN5K2U2cnp6S21qRmNj?=
 =?utf-8?B?bnpBbEZHQkhrQkJ5R1BiOG8zR1Z4VHM2QWltaE1QQkhXaW1jU014QUJ1ZmJX?=
 =?utf-8?B?VWJzb3RGdlNzMGRSdDBMU1c0SkFlQUsxYVFYQVVDcE50K0Yxd0cxMWV4czEr?=
 =?utf-8?B?TVJKbTBxSkgxYnJqWHhwVEtRbmlCNTZ1ZTh0c0JwOFRidTcyRUJaY3pmaUFP?=
 =?utf-8?B?ZGp2K3lrVzBTbHVUSnpaSER3T0tkM1JyOW9UV3RMYkw2UjQzb2xxUTBrMmtI?=
 =?utf-8?B?b0dpOFhiZjB0Z3RnU3dmcThyVDZOTnptUHhadUR4ZlNrQkswYy9Pc2FVK05Y?=
 =?utf-8?B?Y0xYb3ZGaWFGN0xVbmlwQW9QUFZzVHVHU3RFdVF6N2s0cXRLa29HanY1dUJv?=
 =?utf-8?B?a0dpeE15Si9iU1R6QUh4Tm12emVwWHl1RU9La2VOWU5EN2hBRERkYS96empB?=
 =?utf-8?B?NE5BYVAwYkh5bG1wSWhDWTdEd2diOXZTY3VGb29VN3pFU0hJYVhJUHRHUlFa?=
 =?utf-8?B?V3VBZG9uTjcrbzBwK1BSWnJIN0NtYXZRc2I3VTJBSWFmbFdUSzFwSk1VRmdM?=
 =?utf-8?B?Y0QwNlV4bjg1NzRKdE50MjdlaDZRK2labWZxaFVlS20zb1RuOXZrZ3JNK0kx?=
 =?utf-8?B?UDMxQlJ3dnE5dUpVQzdqS04xdVlDSFgrWWxGOTJ2dDlpdURZb2NneHc2VE1Z?=
 =?utf-8?B?NURDdy8xSjdIeWFqU1lTV1kwd2orRFRhUzQxbUNLUXdoZ254ZHRadDNqNWlG?=
 =?utf-8?B?dTNMVjVMdStOYzRtRldqSW5DTTcvTFpHRzg5SjNLZ2UzQS9Sam0xbnBOZmtH?=
 =?utf-8?B?K1NXVHdoTXRVNjBROFR2K3FmelBKQzc5QnJPWTlydXAvSzVWM2FHVmdlcFZU?=
 =?utf-8?B?cDFORmhWb1ZuSFp6YlE1bytnQVlUWTRpeW5teTFvWVoxbkcwV1FhR2lmMU9L?=
 =?utf-8?B?NUdmVXBOMk4wL0FVZDJVYzdrTTNyODlPZEovbC84OUtuOEtEK2s4ZE9wRlVk?=
 =?utf-8?B?WE1yLzg1TElXNkQ2OGpSaEpPVkRPOExBaDBseE5FcjNWY0svWHpZeVpjVVVM?=
 =?utf-8?B?bVFRcHhXbWhwUmZJL3dSUHlWa3loZS9kT2JheHVTdlBLSXNZM1ZFQldOek9p?=
 =?utf-8?B?M3JWR2xhZG8wQ3BSaGx6ZkwxR1ZQeVRleWJHZ2MybFlaeE5ONGVQcUs2QmdB?=
 =?utf-8?B?RnRnamRZN2hjWnBja3E3YVA4czJsYmpqOU85V2lEQkZVZ0Zkak1iZW1SVXpu?=
 =?utf-8?B?R1NoR0RId0x1WC8zYkpDUndtbHo0S214cUpFSUIvOWtJZzVGcjBqd2hzZGNt?=
 =?utf-8?B?Vi85VTBteWdxWVJUUkEyZUhJelhMRUQyQ05SSzdibU9IMmxoc21oU1lEVjlr?=
 =?utf-8?B?bG5TaHZ4bXJnMlZhMzBkWDdaQkE0UVhpTWZybWhCcUJlcUNaVHhRaEpvVVJs?=
 =?utf-8?B?ZndteEFPR3lYRkppMEJhUU5tM01OZkJpRG05YmVCdURWSUd6NThvcHRKRG1V?=
 =?utf-8?B?bFhTdEFoeDJpZ3VuVERtbHNRdzlaOGU2MXV2MHRCM1hKM1lER1ZKNTZrYVFp?=
 =?utf-8?B?YjVYdlluam5mWS9KWk41cTFTWEhVdjZoMkJVR0QxYTRaOWhwRXo5bENzdnR6?=
 =?utf-8?B?WGVWKzlsYk1Cc28zVWpjaFlma2pnY25ZNDlEcHYyaVRKME05M3BrVGRGbHpQ?=
 =?utf-8?B?Y3lJUERkMllJazZ1eDA2T0IraTZnbktGMzNQZFg4RCtaeWtwM29mVm9CK1Ew?=
 =?utf-8?B?NG9NdDhWd3ZpSW94SjVwTWNmSUhZaUswaTdaaEx6ZFN3bGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(35042699022)(82310400026)(14060799003)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 12:15:58.3568
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 780e4a29-a66d-43f1-ab9b-08dd056f433c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8140

DQoNCj4gT24gMTUgTm92IDIwMjQsIGF0IDEyOjAwLCBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIDE1LzExLzIwMjQgMTA6NTAgYW0sIEx1
Y2EgRmFuY2VsbHUgd3JvdGU6DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3h2bWFs
bG9jLmggYi94ZW4vaW5jbHVkZS94ZW4veHZtYWxsb2MuaA0KPj4gaW5kZXggNDQwZDg1YTI4NGJi
Li44MDJiZTY2ODcwODUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4veHZtYWxsb2Mu
aA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3h2bWFsbG9jLmgNCj4+IEBAIC00MCwyMCArNDAs
NDYgQEANCj4+ICAgICAoKHR5cGVvZihwdHIpKV94dnJlYWxsb2MocHRyLCBvZmZzZXRvZih0eXBl
b2YoKihwdHIpKSwgZmllbGRbbnJdKSwgXA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfX2FsaWdub2ZfXyh0eXBlb2YoKihwdHIpKSkpKQ0KPj4gDQo+PiArI2lmIGRlZmluZWQoQ09O
RklHX0hBU19WTUFQKQ0KPj4gKw0KPj4gLyogRnJlZSBhbnkgb2YgdGhlIGFib3ZlLiAqLw0KPj4g
dm9pZCB4dmZyZWUodm9pZCAqdmEpOw0KPj4gDQo+PiArLyogVW5kZXJseWluZyBmdW5jdGlvbnMg
Ki8NCj4+ICt2b2lkICpfeHZtYWxsb2Moc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbik7
DQo+PiArdm9pZCAqX3h2emFsbG9jKHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24pOw0K
Pj4gK3ZvaWQgKl94dnJlYWxsb2Modm9pZCAqdmEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQg
YWxpZ24pOw0KPj4gKw0KPj4gKyNlbHNlDQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2b2lkIHh2
ZnJlZSh2b2lkICp2YSkNCj4+ICt7DQo+PiArICAgIHhmcmVlKHZhKTsNCj4+ICt9DQo+PiArDQo+
PiArdm9pZCAqX3h2bWFsbG9jKHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24pDQo+PiAr
ew0KPj4gKyAgICByZXR1cm4gX3htYWxsb2Moc2l6ZSwgYWxpZ24pOw0KPj4gK30NCj4+ICsNCj4+
ICt2b2lkICpfeHZ6YWxsb2Moc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbikNCj4+ICt7
DQo+PiArICAgIHJldHVybiBfeHphbGxvYyhzaXplLCBhbGlnbik7DQo+PiArfQ0KPj4gKw0KPj4g
K3ZvaWQgKl94dnJlYWxsb2Modm9pZCAqdmEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxp
Z24pDQo+PiArew0KPj4gKyAgICByZXR1cm4gX3hyZWFsbG9jKHZhLCBzaXplLCBhbGlnbik7DQo+
PiArfQ0KPj4gKw0KPj4gKyNlbmRpZg0KPiANCj4gRG9lcyB0aGlzIHJlYWxseSBjb21waWxlIHdp
dGggdGhlIHdyYXBwZXJzIG5vdCBiZWluZyBzdGF0aWMgaW5saW5lID8NCj4gDQo+IFRoYXQgYXNp
ZGUsIGNvdWxkIHdlIG5vdCBkbyB0aGlzIHVzaW5nIGNvbmRpdGlvbmFsIGFsaWFzZXMsIHJhdGhl
ciB0aGFuDQo+IHdyYXBwaW5nIHRoZSBmdW5jdGlvbnM/ICBJdCB3b3VsZCBjZXJ0YWlubHkgYmUg
c2hvcnRlciwgY29kZSB3aXNlLg0KDQpEbyB5b3UgbWVhbiBzb21ldGhpbmcgbGlrZSBiZWxvdz8N
Cg0KI2RlZmluZSB4dmZyZWUgeGZyZWUNCiNkZWZpbmUgX3h2bWFsbG9jIF94bWFsbG9jDQpb4oCm
XQ0KDQo+IA0KPiB+QW5kcmV3DQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:27:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:27:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837458.1253385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvPu-00067K-D8; Fri, 15 Nov 2024 12:27:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837458.1253385; Fri, 15 Nov 2024 12:27: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 1tBvPu-00067C-AS; Fri, 15 Nov 2024 12:27:14 +0000
Received: by outflank-mailman (input) for mailman id 837458;
 Fri, 15 Nov 2024 12: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBvPt-000676-P9
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:27:13 +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 eec089f4-a34c-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:27:09 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5cf6f367f97so997857a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:27:09 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79b9e761sm1597441a12.22.2024.11.15.04.27.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 04: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: eec089f4-a34c-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVlYzA4OWY0LWEzNGMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjczNjI5LjIwMDMxMSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731673628; x=1732278428; 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=noWZy+/87oZS6fvnqPY9TgFiCWEVj6HW48osTpfF7O4=;
        b=SwCKYLvv8aouDZ9tmwgmstcd8YVxhZ3UZXpu0QmoR17Sovb83EAQlOyiLabhCarOjg
         HH6G8cf72S7HBX5MWK2U6pM13mZbHTwFgurQfULFmJfbce5pmbrsrarYbswe8hFz9A27
         HJABzd+/hPGRJ5++C8i8hX6AxnVk+CRYUdtxk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731673628; x=1732278428;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=noWZy+/87oZS6fvnqPY9TgFiCWEVj6HW48osTpfF7O4=;
        b=kchPr+fwVY/vOYV8eQwx7n2Ib05YLA2nmysBJMUEGTllT7QkzGeTYArSfa1Eeg11yt
         cNPRH6yIt9Q4U7M5xs+jw/xMgQQ5WHJuwJ2FQhIoIgsH//b8uk8t9lBvVxpGR873f8eO
         9LODwq/C14zhlcoacnpoZZJzQZgXPZUT0UHCUoyRGmiYsEEzBcvgspGup1ETzYWraRy9
         rfyWaXvSxDyoGaJUBjkelpX5VRGtQMuuv+4mszEj9b9jV5drtwnZUmHKpAQa83mGYW8d
         k57ye2uotkMg7XmB96jkkausELBz18gM47OLH8SGvm8SVpUM/+/mN4ln6TqE7rTqebYQ
         Gr+Q==
X-Gm-Message-State: AOJu0YzsUWNDgOebzLTPLmjpnNZqTz09sF4fLtnJ7IZIzBEwwRCBPhUN
	+8fUojXSlRlCZNW+angq6j3uPxKyhk0lwi4w/ZnLLyyy+g5OVcHb94QX2NCfQsg=
X-Google-Smtp-Source: AGHT+IGnwW70Gbn83TjtwW9Wdaou8e8oLNuH0DbD9eYvlf4GMNoj0Hw1uymfPCgW53HEgbNdeSOzew==
X-Received: by 2002:a05:6402:2693:b0:5cf:67c1:69e5 with SMTP id 4fb4d7f45d1cf-5cf8fc13ee2mr1936260a12.4.1731673628557;
        Fri, 15 Nov 2024 04:27:08 -0800 (PST)
Message-ID: <f81d4195-a41f-4ec8-bc9e-3e836472469e@citrix.com>
Date: Fri, 15 Nov 2024 12:27:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
 <2b13f12c-905d-478c-b525-a3a8c69d5ac7@citrix.com>
 <F693DC5E-C4E5-445C-AE3F-24EE76B34D90@arm.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <F693DC5E-C4E5-445C-AE3F-24EE76B34D90@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 12:15 pm, Luca Fancellu wrote:
>
>> On 15 Nov 2024, at 12:00, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>
>> On 15/11/2024 10:50 am, Luca Fancellu wrote:
>>> diff --git a/xen/include/xen/xvmalloc.h b/xen/include/xen/xvmalloc.h
>>> index 440d85a284bb..802be6687085 100644
>>> --- a/xen/include/xen/xvmalloc.h
>>> +++ b/xen/include/xen/xvmalloc.h
>>> @@ -40,20 +40,46 @@
>>>     ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
>>>                              __alignof__(typeof(*(ptr)))))
>>>
>>> +#if defined(CONFIG_HAS_VMAP)
>>> +
>>> /* Free any of the above. */
>>> void xvfree(void *va);
>>>
>>> +/* Underlying functions */
>>> +void *_xvmalloc(size_t size, unsigned int align);
>>> +void *_xvzalloc(size_t size, unsigned int align);
>>> +void *_xvrealloc(void *va, size_t size, unsigned int align);
>>> +
>>> +#else
>>> +
>>> +static inline void xvfree(void *va)
>>> +{
>>> +    xfree(va);
>>> +}
>>> +
>>> +void *_xvmalloc(size_t size, unsigned int align)
>>> +{
>>> +    return _xmalloc(size, align);
>>> +}
>>> +
>>> +void *_xvzalloc(size_t size, unsigned int align)
>>> +{
>>> +    return _xzalloc(size, align);
>>> +}
>>> +
>>> +void *_xvrealloc(void *va, size_t size, unsigned int align)
>>> +{
>>> +    return _xrealloc(va, size, align);
>>> +}
>>> +
>>> +#endif
>> Does this really compile with the wrappers not being static inline ?
>>
>> That aside, could we not do this using conditional aliases, rather than
>> wrapping the functions?  It would certainly be shorter, code wise.
> Do you mean something like below?
>
> #define xvfree xfree
> #define _xvmalloc _xmalloc
> [â€¦]

I mean __attribute__((__alias__("")))

There are two examples in tree already.Â  See efi_compat_get_info() being
aliased to efi_get_info()

In this case, in the !HAS_VMAP case, we'd just declare _xmalloc() to
have an alias called _xvmalloc() too.

This avoids needing to wrap every function in the headers.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:36:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837468.1253395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvZC-000102-7f; Fri, 15 Nov 2024 12:36:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837468.1253395; Fri, 15 Nov 2024 12: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 1tBvZC-0000zv-4c; Fri, 15 Nov 2024 12:36:50 +0000
Received: by outflank-mailman (input) for mailman id 837468;
 Fri, 15 Nov 2024 12:36: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=QP11=SK=epam.com=Sergiy_Kibrik@srs-se1.protection.inumbo.net>)
 id 1tBvZA-0000zh-Mi
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:36:48 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2614::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46711e65-a34e-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:36:46 +0100 (CET)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by PR3PR03MB6379.eurprd03.prod.outlook.com (2603:10a6:102:78::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 12:36:43 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%4]) with mapi id 15.20.8137.018; Fri, 15 Nov 2024
 12: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: 46711e65-a34e-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjJkIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ2NzExZTY1LWEzNGUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjc0MjA2LjAzNzMyMiwic2VuZGVyIjoic2VyZ2l5X2tpYnJpa0BlcGFtLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rCbVUUgmeC+pEHkekeydAR2gNUUjPhTM3ckQ92l8F4acIXcHeAI+9BDDDVFvXYdBfwq6jTQ221GFKk6YDSCaudERYH4Em6aDnyYeeOctN/4nCm6ntpHhlI14ROVh8s6IvnJ9MXRXv3/k0cOamiMrXIo6S6EiYJICqeA2IkqeiFezifbw2jXieQ+7qZbgdflPAqvfYbgTh1XBg4XAOsnQrzAHy4r9C2ERWFxqmVpQ3IwH9Asy0y5xvHS2JjHSLlEwZoeHPgE0Yatdq3tZesUf/vZ8T9WeXrm/ptloYWkX/98k7u35RZeCzB8eFtV7xxw3KFabTCAgptC1LQlaTC7qfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DASaRIAJVrZrvn/Z6uAd7V1+6ZMQnN/Vqe9U0sm36n8=;
 b=pWcGrtUAL+GZ6YbegfOPun02xHGFy1ECqzT62HHvUjauytHsadx9wZE+9mj+R0ipO98Pk0aNFlSNK6Wj6LY6pSkSl8ROs9WTgQybq8/pwAOMKYsgW1QoPx+vOHxoHlVuC097u4LF2Zze61bW9txcZrLRZCwGInT9AWF8r1/FImkTWLY4qhri5RoCmK7Q58n7JnphIoTGCySDe7Dfk74nHaEuU1Uafu/cFJIWQHVUqSNcLG/rni2ig1ga0lSUgAsPi0iW2jj/fCGA5FPXMvNu1BI1MyJWXzqBvCgHq04qNf3xO2IO0OuFhVW8uBv6LmBKVOjeQi1KqfwL4fQ9R+rCeA==
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=DASaRIAJVrZrvn/Z6uAd7V1+6ZMQnN/Vqe9U0sm36n8=;
 b=W7XepZiwbID7ucraK3ErIF2MXiZfJwmwXqSHbIj1iGA1wXhfAC04KwWMVN1DPF1shcdnZCbrhMg1c+/q96A+eBmfPI3C0C5yVznu8qaDCuv0/C2XkL6DiB5Clp61l7ET0HCJ0xeiIEtFCpYBiCQK1geeRDdFvd4rkfSUVI0K0B0ZsdNLShHnW5l9zxARJ8SDfjiki/lz6cGm3bzY398Zx3ED/d96YzXjoGvOXVJwmh3F+fa5V3226EWE0aJQHgvbUEj5KOUIhMVv8NW1eFk53BCIJq+R/hYSMalGH7+DAON/qpOF3Ygf0/5DelVNKDw2e9S9p8IUSQf14OEP5bSBrg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <2285d21d-25e7-4682-aed9-1f569ff7d6d2@epam.com>
Date: Fri, 15 Nov 2024 14:36:41 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM
 timer
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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
 <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
 <34a2d071-59a8-46eb-a9fd-516cce801343@suse.com>
 <505e0790-10b9-4468-994b-1a3890eaef46@epam.com>
 <c565ae31-26a3-405a-b4a3-191be95b38ce@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <c565ae31-26a3-405a-b4a3-191be95b38ce@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BE1P281CA0367.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:82::18) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|PR3PR03MB6379:EE_
X-MS-Office365-Filtering-Correlation-Id: 62c34037-5a0c-4d78-c183-08dd057228e4
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?UDJGcFgrMzdzR1ZrNDZXNENTcDlOQTBBNE5WckJ5VlNaUncxRDBTTGRtRGRo?=
 =?utf-8?B?Yk5mUDJUR1d1WVVtSFlYTURWcXFNV3BGUFJlbFJaempYSWNJSjhHUHE1UWdz?=
 =?utf-8?B?SkUrNzNlMUdPeGt5TU90Mmg1a2RwanF6MjNIOFI4VXJVNENDTm5aV1lJeU8z?=
 =?utf-8?B?TE5nZVAxbEpxY1ZpMklXSHFLM2lwbXBYU3AzMU1SaDUydjhwNERWd0YrLzBn?=
 =?utf-8?B?OU1KYWNCaC9OWi96NWt3V2x4K1dSVnhqSENZdlVQSnBHbXlqb2hwMHF1eEJG?=
 =?utf-8?B?czNPMzc4Rm1jY1FNeWE0dnhFeFltK28zZjQybndnRHZTa0RodnVhMHd4dzFL?=
 =?utf-8?B?Q01WSjU1TGFQRzRJUkZ5Rk10TzdGendaYmYxVTJBQVkxVTNJczV4Nldzc2FH?=
 =?utf-8?B?T3NFMnRMbWErRGQvdFovK1BXSVdYZ0JreEgxcXF5WEFNOXFkRjFKQ3A0c3VC?=
 =?utf-8?B?eExpUlpzVEt1dFJHbDNJa1p1SmJseVIvU1hBR0pZUG9wOFBaSldJZ2Z4YVdD?=
 =?utf-8?B?bEJMeGYwWnByYXZXWUVPdmV5T1BJMWl0YzVMN0tOZWxMSW0zWTNPSlpOdmVC?=
 =?utf-8?B?TlA5a1o5eDlrdjllTDhoaU9VekNWS1FSdlJ6TnF0bXVkWDE1TjJ5TmZLVXN6?=
 =?utf-8?B?VXltNGFHTk45UXRpb09UNmp0RTdxK3VUUUdxZmFOVlBIbzFaSlplckVmTG9n?=
 =?utf-8?B?c1FrdUloZEMrbk5QTWRqQVlESzJyM0V3SGJMMEU0ZXRpSWNPUkFIY2pndzVY?=
 =?utf-8?B?bElNMVNqQjhXRll3ckh3aUVoVGs3QXFhUFBaeS92K0hReGV5ZGxoL1Fkby85?=
 =?utf-8?B?bTdyTVIzYndmMnorMDdvUGJKcVd4Rm1xd2tZNzRpQzgrMVZVamhxZHpTZjRt?=
 =?utf-8?B?OTRGMXBHdndUV0NpRG05S2krand4d0RNM0YvckhPYW9Oa1RJT2FUZndXRlg4?=
 =?utf-8?B?U0xSaXBscjl1cG50azI2NzZTRmhKbnpjaGpMMnY2T3YvSHFjU3ZsMkR0dVhv?=
 =?utf-8?B?ekZ2RC9YNWV5TEJldzZ1M0dTaDE3YjYrOFlvZGloV1ZKcTg4NlFPOUJoSFZ4?=
 =?utf-8?B?Rk9sd2NzTGVaeFYzOXN4eUtHQXY4ZCtQR1UvcHhUNWE3TkJqQUVIRmIyUUxD?=
 =?utf-8?B?bS9FV0o2UUtBRElRNk0zdnI2Qi9FSTBsc2lVOHJ0TVZZMW1nRExlRHFzbUQr?=
 =?utf-8?B?N1YySXRZRTFoMGs5clZ6ZTlraUdxa0V1blQxUGJwU2NQRHY3eXpUZkNVS0JW?=
 =?utf-8?B?SFQ3aklIdWlxVGhTbTBJMVVkZHBzVGI4a1V0Z05RdEtmTUJwN0pzQkdSZTg1?=
 =?utf-8?B?ejZ1Z3dqYW53bWlBd1hwZ2tQejlGZ1JicGo1cExWT0dEdDFxeFZZTXdBWFZT?=
 =?utf-8?B?bTJ2VUdPNTdWWnptRU1XVHJWdE11bGx2L3NGZHYzY01LSGZNSVMzbE9WUkcy?=
 =?utf-8?B?R3VZNzJwQW5Rc1RReVJJcktVVG5lRURDd1dKTG1QQ1dnZ1YxTlAvbnVkYUZH?=
 =?utf-8?B?K0N2Q0gyalVid09YR1hPR0N4TlorVHJzb1BRa3Nzb3FzblVoTTRDZWpnUEFz?=
 =?utf-8?B?c0g3YmZmTWpqL1l1Sy83aWJtOTd1bkpYV0ViVTR4WkpWZmJMVTBoSnlrTHl2?=
 =?utf-8?B?N2ZEWitsYTdhb1BzZjB4TnEwVnVLOXIzRmlwZElhem1vTDJkS2d3dHVnOGxS?=
 =?utf-8?B?SERqZndaS2xsbFcwUUZZbm9xOGpDdXkrckFFSndYbVh3WmErMno4MUxyT2ZH?=
 =?utf-8?Q?7vWIHAw1uuYaKK9olrrA4mTGLL4PbRIMgNMpA/n?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.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?dFRBRWVsbWZjU3c2cWpFcEZOUlNsQXJXczZLd250cG9ZbGY1Yi9TbVBTRElK?=
 =?utf-8?B?dm5Wc0c2bmI0NEU5ODlwNTdKMldFeDQrdlpITWMwbGhIdXUvZkJkVCsydFdp?=
 =?utf-8?B?NUxMYXU4aWhjQXJqdndIK0xNUWVzNnBCNXZQVEIxa1Rpd3Foazc3alNlZ2wz?=
 =?utf-8?B?N0Q4Tk1KcHprYlhVRUsreDUxV25STFlCUTN2NlRlMUpkMEUxOGNINm1FT1dl?=
 =?utf-8?B?OGZnMVhZY3JzQU5nYnhneXptOWRkR0FLWGtmdnZUaCtVb0NZdmFLRnZ0a0R6?=
 =?utf-8?B?RmhhNnJqc1BkQmcwMkF6NldzU2hXSjhpU0RvbmlqSlRpQk94TUx4UjB5R3F3?=
 =?utf-8?B?SDhnWHJOWUt4aHNZdDRqdFBIZFlQYitwQjJiTE52MUNpVDdxNlBUaTkxcjFZ?=
 =?utf-8?B?TFQwblpPbTFqOW01bU5TdTdlS1pmWEEwbmEwcnlzRStqTjc5K2V1MlpuSHpW?=
 =?utf-8?B?N2UySkRrT1I1TG1TQUI1THN4L2dwRmVtVTJMVzE5OHFqL3BYOHpIaUxBN2Q4?=
 =?utf-8?B?R1YvRzBLRm5qRFRRdnREQjh6U0FueWlTb1NMbDNRZ0FqbUowUDBkLzBEODJJ?=
 =?utf-8?B?SXc2c3FyU2U2UC9Obk5tU0NqdzVmZWpBeGFkN1VjQ1Bpd3Yzc3ZoSVR1SW9j?=
 =?utf-8?B?SnFIOU01WXdxN29OWUx1dUJiaVhXUHNTNDJxQlBJS2ZLL3hnbzJENWJLRm9y?=
 =?utf-8?B?aDNYTm9wSlBEVzdnSVRUanVxVGxFQ2w1Z2JGMkJldng2anRheThLL2t3emdC?=
 =?utf-8?B?YmNCdUJkeWIrWXk2bDkyTUxGUk9nYUliRlB5aUxKTUdEVUZJa3BOdTBMMVZr?=
 =?utf-8?B?bnIzWXczZzVCTDFETllEU3FLUFZaMHAyYUJUTmRuMWN4aWZuNXc1U08rc1VL?=
 =?utf-8?B?QmFyTzNGQVNxVVc0Z0V4Q3dPUG1tYWFBTGNNQnVLKzlvMk52dmJUanBpTTJo?=
 =?utf-8?B?cmxleTFxSnZXa1o3RUFheXV4NktUTDhxQ3hYTlU0d2YzK2tNQnNtZERyUHV4?=
 =?utf-8?B?V1p0YkErWGFCcDVzMGdCVXlqeUU1ZXJ0RS9qbWUxcm1tbGlqSFRUOTRsM0Uy?=
 =?utf-8?B?bUhROHIzZ05sbXVJQTY0WWtkZWRoNmVXWkJnRkxvNVVsWHI1cWkyZktLVlJa?=
 =?utf-8?B?bWJFK1FBSE52aGFnNXgza0FDUEc4VWtMMklNQ284dVhreFA1L0NiVml4R3ZC?=
 =?utf-8?B?endWR1VwS3hjWFhtNU1lbCtwaGttSGdaaitJUk9uT2NEOXdrY1JDWFJiQ0sw?=
 =?utf-8?B?UGxOM3VLUzZ4MUpGK0JEcy9qMmZKVkxDdnoxQmdGN3VaSWNURGVONnh4bVBH?=
 =?utf-8?B?Zk9vczFscjZ1eDVUYjJBR00vWUNIUzBZWlRLZ1hqOEZzQjJxQUlYNVozYUJH?=
 =?utf-8?B?Z081SUwvYzhwYVFhUmVKNWh4RHoydloydG5xT3hZL3YrOVVjZmZ4Wlg4REs2?=
 =?utf-8?B?L1MyQTBxMlRtdm0yUTJsczR2Tm5zZEtnakl6S3Y5MUx0SWxHNTdWekZySCtO?=
 =?utf-8?B?U2tzNmk5cWhqWGFrOHRYOWUvQk0zRzluM3FqdDUxMmpEYXNCSEJveVhMTVdQ?=
 =?utf-8?B?dHNKZitnaG53eTg0UnhnT1oxUHRNL21lOTI1UHlsNkZ0bnFkOUowRlI5Ymdu?=
 =?utf-8?B?cW12MVU4cnIvOXB0S0Y4RTgvTUg0OUY4RXp6dk43dzhaR1ZyUkR5SURVSlBy?=
 =?utf-8?B?SzJmWmxidjl2bFdQV21YUXU4ZHVCcnNFL2N2VXQrYklHTTlFRHFsaWl6UlBp?=
 =?utf-8?B?SG1zaG9GWUNKYmgzcldhZjdZbkdTWk53NmQyWmlVaVhLcG80eTRjdFFlV1la?=
 =?utf-8?B?aXBJUi9FTTFzSCtyU09mWWlLQ1Q4ajlHcWtmSTFTU0Z0OU1JS2YwSTIvOUN2?=
 =?utf-8?B?QnZ0MXVQd28xcTllV2o1SWtzQ2ZsL1p1TThyMGNJZk5FYWtWTFNSUTB0a2g1?=
 =?utf-8?B?aDhFTWtDLy9yNERFbmRIOE4vU29KVVlFNUZ6SVp2YWRubG05MDY1ZVpxSW1K?=
 =?utf-8?B?RkNyVGJmbXdDSUpUc24vSWpyTlJxTDFtVEdmeVpsQ3RxdnRZZ2RPK2QwRWhW?=
 =?utf-8?B?cWEyM1NWc0hHZjNZcFo5QzRDTURtSkxHMUw4a0JlcUtZMFBIMFJOS3d5ZlFp?=
 =?utf-8?B?eTFvWTZiTm1zOFhCbWRKVzNBN1dFZWJibFY3ejBnakhpdEJ4aVF2eGg3MGpK?=
 =?utf-8?B?NkE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 62c34037-5a0c-4d78-c183-08dd057228e4
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 12:36:42.8572
 (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: bo5PRsvnYETtLQmsgxwPPg8S1/CoVTF0YDFWWoSgYDggM2LayZX8Mf5NXSzMaI4qyXPtbOcfMY0Z3m+S8mtcPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6379

11.11.24 14:05, Jan Beulich:
[..]>>> What exactly was it that Roger suggested? I don't think it was 
what the patch
>>> does overall, but just _how_ it is being done? That makes quite a bit of a
>>> difference, as the former could be read as kind of an implicit ack to what is
>>> being done here (and also in the other patch). Issue is: I remain unconvinced
>>> that this conditionalizing is actually something we really want/need.
>>
>> about a half of this patch is what Roger suggested. These changes were
>> in a separate patch, which Roger suggested to be merged into other
>> patches. What tag should be put in this case then?
> 
> The tag itself is fine, but could do with clarifying by way of attaching
> "# <brief>", like we also permit for R-b and A-b. Alternatively a post-
> commit-message remark would help during review (but notably not once the
> change would have been committed, e.g. for archaeologists).

can the tag look like the following?:

   Suggested-by: Name <email> # domain.h,domain.c

> 
>>>> --- a/xen/arch/x86/Kconfig
>>>> +++ b/xen/arch/x86/Kconfig
>>>> @@ -144,6 +144,19 @@ config INTEL_VMX
>>>>    	  If your system includes a processor with Intel VT-x support, say Y.
>>>>    	  If in doubt, say Y.
>>>>    
>>>> +menu "Emulated HVM devices support"
>>>> +       visible if EXPERT
>>>> +       depends on HVM
>>>> +
>>>> +config X86_HVM_PMTIMER
>>>> +	bool "ACPI PM timer emulation support"
>>>> +	default y
>>>> +	help
>>>> +	  Build pmtimer driver that emulates ACPI PM timer for HVM/PVH guests.
>>>
>>> Does this really affect PVH guests? Isn't the whole point of the change
>>> that in a PVH-only environment this wouldn't be needed in Xen?
>>
>> PVH guest may (depending on its configuration) still use PM timer, so
>> I'd say the point is in a PVH-only environment this driver becomes optional.
> 
> Hmm, the way I look at emulation_flags_ok() it doesn't look to permit this
> as optional. The PVH case is "emflags == X86_EMU_LAPIC".

I see, will drop PVH mentioning then

   -Sergiy



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:41:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:41:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837479.1253404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvdO-0002zW-Po; Fri, 15 Nov 2024 12:41:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837479.1253404; Fri, 15 Nov 2024 12:41: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 1tBvdO-0002zP-NB; Fri, 15 Nov 2024 12:41:10 +0000
Received: by outflank-mailman (input) for mailman id 837479;
 Fri, 15 Nov 2024 12:41: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBvdN-0002zJ-Ep
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:41:09 +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 e17460e0-a34e-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 13:41:05 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-37d4fd00574so1009197f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:41: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-3821adad9cesm4237555f8f.37.2024.11.15.04.41.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 04:41: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: e17460e0-a34e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUxNzQ2MGUwLWEzNGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc0NDY1LjkxMjE4LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731674465; x=1732279265; 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=40c6jFpGoZyFWJEaf3DYkdECs5l/9rrlDhrYjom8FAI=;
        b=GmqaLPXsnk4aa+KW3YDko+dRJ6nFH3UX9q8vvyOk8KjnmuonQrKzuTgMa6y+INksc2
         pJ+Oq4Bcma5YkNCe67N7gZ2tVsDWOl4wohXDK6qtKnA4PthmizOCYDAHdcnJMPEJ/LxX
         xsozW+fAKVJWpwXojsMMj3wo+i0AZkKU/tAbclcwO3pbanyj3tKZZWEbzKMN8rMI/Hfb
         qqAcDm+VSxKiuTi0HlpK2lUr074dPvqloa9Ylyk6Twumb+HzIRaBp03Zq0ug9n1DVvab
         vHRWhPZPrNSkz7Y32o5Ea1F1kkfGRa2sV+dN2E+nUX8i+A4EKbmhiz/F+KFhaHvVNEaz
         Df8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731674465; x=1732279265;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=40c6jFpGoZyFWJEaf3DYkdECs5l/9rrlDhrYjom8FAI=;
        b=BobPlGoZr5v8+eYpU1imT/y2lE+7RzGi/DlXefTTjxSYnIdVTEhAufSN/eriGdog8H
         cPfS334p9faY+G0idOSXi6mQulJz56lxirX0vl321Gx9TUzXScgmPe8ugNGLOeTWmEEM
         7UFaJsJ85gKzr3mNNsgqxaRwrB7si7SWlTPt4AXcDkCo09LCdrNKxRTnhVwry2RgzAGq
         g87KcsPk3xBZYREf//DH3yn6fsid2eQu36wwgjGFdaV9i48Q7XeW4/Pdjk/N+rS4/1RT
         XPlO67y/wjzkb+pZQqLBh3nEUEUu2GZcJTQWAJlSACL/NN9nbMcH+6hJuOvpkZvcjZIc
         4wgQ==
X-Forwarded-Encrypted: i=1; AJvYcCUVOyP1uLqrw2FkP2TNmEUejxz922MKBeo6/6TuLufJWSM8IPsgGnbmIGf/PcVV3CAH8stcGvXhxO4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyN0KNRocag/3SR7wY27r59yOkhgsba9yOLG8UVYZr7JJtJWfQr
	hBuqTBVYANUT08+3dhpN9eD3j/P0Sek6RCESD7snv5YEsyXUsD6dHZgPEsEASw==
X-Google-Smtp-Source: AGHT+IGsu4gI0bcizhmck3cHXWgB2hbQszIZiuFXJXiymAeQv1/KGzys0CUvrIgooNavdifNBUHm7g==
X-Received: by 2002:a5d:6dac:0:b0:381:b20b:ff3e with SMTP id ffacd0b85a97d-38224fd058amr2686868f8f.26.1731674465286;
        Fri, 15 Nov 2024 04:41:05 -0800 (PST)
Message-ID: <5aa5392b-31f5-4779-ae2a-039cb667e2d7@suse.com>
Date: Fri, 15 Nov 2024 13:41:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/2] x86/hvm: introduce config option for ACPI PM
 timer
To: Sergiy Kibrik <sergiy_kibrik@epam.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>, xen-devel@lists.xenproject.org
References: <cover.1730887415.git.Sergiy_Kibrik@epam.com>
 <da2758bba96e247027106e13129c87ae31193e97.1730887415.git.Sergiy_Kibrik@epam.com>
 <34a2d071-59a8-46eb-a9fd-516cce801343@suse.com>
 <505e0790-10b9-4468-994b-1a3890eaef46@epam.com>
 <c565ae31-26a3-405a-b4a3-191be95b38ce@suse.com>
 <2285d21d-25e7-4682-aed9-1f569ff7d6d2@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: <2285d21d-25e7-4682-aed9-1f569ff7d6d2@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 13:36, Sergiy Kibrik wrote:
> 11.11.24 14:05, Jan Beulich:
> [..]>>> What exactly was it that Roger suggested? I don't think it was 
> what the patch
>>>> does overall, but just _how_ it is being done? That makes quite a bit of a
>>>> difference, as the former could be read as kind of an implicit ack to what is
>>>> being done here (and also in the other patch). Issue is: I remain unconvinced
>>>> that this conditionalizing is actually something we really want/need.
>>>
>>> about a half of this patch is what Roger suggested. These changes were
>>> in a separate patch, which Roger suggested to be merged into other
>>> patches. What tag should be put in this case then?
>>
>> The tag itself is fine, but could do with clarifying by way of attaching
>> "# <brief>", like we also permit for R-b and A-b. Alternatively a post-
>> commit-message remark would help during review (but notably not once the
>> change would have been committed, e.g. for archaeologists).
> 
> can the tag look like the following?:
> 
>    Suggested-by: Name <email> # domain.h,domain.c

Not sure what people would derive from that. How about

Suggested-by: Name <email> # approach

or

Suggested-by: Name <email> # how, but not what

or some such?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:46:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:46:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837490.1253415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvin-0004ny-DN; Fri, 15 Nov 2024 12:46:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837490.1253415; Fri, 15 Nov 2024 12:46: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 1tBvin-0004nr-Ac; Fri, 15 Nov 2024 12:46:45 +0000
Received: by outflank-mailman (input) for mailman id 837490;
 Fri, 15 Nov 2024 12:46: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=3ntz=SK=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBvil-0004n9-9B
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:46:43 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20602.outbound.protection.outlook.com
 [2a01:111:f403:2612::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a83392c4-a34f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:46:39 +0100 (CET)
Received: from DU2PR04CA0088.eurprd04.prod.outlook.com (2603:10a6:10:232::33)
 by PA4PR08MB6301.eurprd08.prod.outlook.com (2603:10a6:102:e9::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.19; Fri, 15 Nov
 2024 12:46:36 +0000
Received: from DU2PEPF00028CFC.eurprd03.prod.outlook.com
 (2603:10a6:10:232:cafe::38) by DU2PR04CA0088.outlook.office365.com
 (2603:10a6:10:232::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17 via Frontend
 Transport; Fri, 15 Nov 2024 12:46:36 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU2PEPF00028CFC.mail.protection.outlook.com (10.167.242.180) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Fri, 15 Nov 2024 12:46:36 +0000
Received: ("Tessian outbound 23e15691b630:v490");
 Fri, 15 Nov 2024 12:46:35 +0000
Received: from Lc1dca79506a4.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DCB87CBF-A514-482F-82A0-9D23CFBCA6D1.1; 
 Fri, 15 Nov 2024 12:46:28 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lc1dca79506a4.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 Nov 2024 12:46:28 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by PAXPR08MB6622.eurprd08.prod.outlook.com (2603:10a6:102:153::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.19; Fri, 15 Nov
 2024 12:46:21 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.017; Fri, 15 Nov 2024
 12:46: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: a83392c4-a34f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjAyIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImE4MzM5MmM0LWEzNGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjc0Nzk5LjIyMDE1LCJzZW5kZXIiOiJsdWNhLmZhbmNlbGx1QGFybS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=GRo1CVTH70UIjVtjFEt+BQOSy4fADwouxe/g4b1EsdX7++Xx2Q61LBiXbT7M7HP9Ycxo8B85KWiesATgKniHBtQs1ZJHysuiH1ArOIW5hlhLM1UPfDd4NssYBWbqiPo4/ZTIWta9rKZj0T/qeRYTltvCjOig2sGg8Y6CEbiP73ho46P8p0w3/ZRrhfgMezbv6bNQvy8SjAzDlAYu7i8w2A21AGrnNV/abbIVNa/S1TiiphR5uP2GDwS1LnHehoOFeVZ/QXiyfxFWuNgCI9peO1KWOYf6MSsFLlYmGnYL4CFH00WykFsC2pvcRx3UhrA5U/k4tKzgqc6Jjx8Iz6waWg==
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=nHcp3ebpDCGLC0aTsVGaETd4FV5ouZV7DsxSl2Vbkw0=;
 b=wEc+ZZE9nGOUCKKU3YcmxexXLkZzXFXvY6WW3FQle6lgfafOwsRTLOiiB1z/8qTEyARjo8aq4VRuJOnhGm1I16G8UjHH0lTWUnX9+7Yuo2vQfMmOYK7K8ki7gPMeGT1xmjT1QvvQ8QflR6X+DJLSDydslL6BEJzmtsnMPZyH/QfB/QFKnTB4w2bzM9Winhs8DBVjWydU+lXCZv6LKeh+2nZtiYFRbiSveczI+T5rcpwMOOhLWaS1rgyIMG55AUfu4FBy/3fYnEJUm2GjTHlM9joQRBaTeSGHAjErN+QHH0lRj8NI0MglvB9U1P0M0uFvJ80rpxltYwufDyO/fjdB8g==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=nHcp3ebpDCGLC0aTsVGaETd4FV5ouZV7DsxSl2Vbkw0=;
 b=VuNXUjDmZaCWSrsaLo+fq7qEwzeC6G+1AosX3hzH1rpG+/jRW0BzWKULjW0mJxCbPSXyD3otluWFk3v4j7RtikT43Y2Oc7H6khxvnGhH3pGGaC4+poehPX8B9/t42TM8qokXD4oQZzw/VVxbn8fXyei+UgwRYrq2GPHObLRZFWI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 28fed0477cc82a30
X-TessianGatewayMetadata: cZyjFHjOdKbI5Mz9/HrI84tvQstJ5iWqMWNZgbbnfNHDSlg8/IQXxrp+FJS0GdaV57MgyMf1kVXvFIotoCQMxt0J5OnL1o0SdR4btVh9+NmsBCY2Fx9U+kY/eD5sVwh5F0WtwsprvH4/jPYKkga2pIIkAytOwr5zvvd+cKcdbNg=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K0QhG+MsN7nCr8lwVkJ/PyLzCC4yjAJhdLXe8jABHGvG5mnqvLtlSwyZA6WYUSKlZArAkKO42mI5LZLIos5/xnSHVTB2q7k/mygvC04roP9abE6xDTvpzgMLQPS0/Fku3r3fDC4FvyjRaLuvdeiSikpqr8MD2HxC22844yeeZv1dCXwhWIrMxWhMqJHt7Y87H3XCJtR1Db24gjSQAgBfA8I9cS+qx8+EnuojpkOgm9B9NQ+waqM47LrWj+KC4RE+znKz9w9eEQq1cjm079PsyGoPUwlmbvrFxi8De6rTAHN5DPXRoCH8CdUaJRM2AbQmP4Au8w2lRW7Q+izJvNItuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nHcp3ebpDCGLC0aTsVGaETd4FV5ouZV7DsxSl2Vbkw0=;
 b=AubpPVr9XiOSbRjkyVCXEthOSJWYmGeQIhNXe0QflXdPAltH29p7398kgYVxpweS+Na7noh57KbXuMNUmlmVCYEO8JCl92DU4W6Md8JFSncdG6kLnvMFmcGpIwRsK75XJx4ZvjODU7i8PDwz36pmm1FMmfdvSc6lL5bEQejf90b8obpx9jeaf6r7d2tE9h+UMsiz5aZcvijUeby8GGPa62n0DcJjRmTXVe8EGvzj+M/VXSrKVgJSkhx+VWbUayhW1cqHIvNwxr9vNWsczug8Hw9Z+A8RaRzcGtSmI2Ct8c+zS+UU1GVw8VbgMRzAZ91Ef6cJMQhatexYHNZddCsR4w==
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=nHcp3ebpDCGLC0aTsVGaETd4FV5ouZV7DsxSl2Vbkw0=;
 b=VuNXUjDmZaCWSrsaLo+fq7qEwzeC6G+1AosX3hzH1rpG+/jRW0BzWKULjW0mJxCbPSXyD3otluWFk3v4j7RtikT43Y2Oc7H6khxvnGhH3pGGaC4+poehPX8B9/t42TM8qokXD4oQZzw/VVxbn8fXyei+UgwRYrq2GPHObLRZFWI=
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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbN0xEMVIvN3HbzEuhbXugN/BCZLK4L/YAgAAaC4A=
Date: Fri, 15 Nov 2024 12:46:21 +0000
Message-ID: <CEB38FF8-ACFD-4AE1-B571-1A9219575EE6@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
 <3a57e277-5fd2-4400-86b9-29479b3dfda1@suse.com>
In-Reply-To: <3a57e277-5fd2-4400-86b9-29479b3dfda1@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|PAXPR08MB6622:EE_|DU2PEPF00028CFC:EE_|PA4PR08MB6301:EE_
X-MS-Office365-Filtering-Correlation-Id: e350c43e-4dd3-47e3-01b4-08dd05738a8b
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?YWxQOHE4eG9iT2hWSld2MjVGUktzWE1hUzdSeEJEc25IRlZnb0ZmdG1LVkhu?=
 =?utf-8?B?OW9OOU5zR3kwVnR0NVp5VjBxWHBuYTlPN2FDMlVEd2tCQkZoOFJEZXR0Z2xG?=
 =?utf-8?B?amZyQ24wUCtXeXFhb3RuWGlibGhBMTVjVnRnd3ZZQkkzWHZ3dk5ZOTl4bFNt?=
 =?utf-8?B?Z2xLVFBqTks3Yy8zWHkvcUlEVUx5cnVzNzZCZ0t6dWFzS0xheFoyTlJTQUpS?=
 =?utf-8?B?aFB3UHBBdnhOK1h4SHBhdkxzYTMwYTRGb0dodDhRNHhqeVRVQU9zQUo0SHVL?=
 =?utf-8?B?dVp4UVkxU0NaS3BZQmh0QUZwdUR1SG00WkFkZXUrV0NRTStMbWgvZzQ0eDdN?=
 =?utf-8?B?Ym1Nb3R2dXpEL0t6Qm9Dd3R2YTZnQVFUWk9XTlZNZk9FYmVpSkdoenl5R2Ju?=
 =?utf-8?B?cjg5VHFDNWxFQldhSFlOakl3Y3lzYUl6cDMxb3V2QmVERG5VNVpkN3ExY0tS?=
 =?utf-8?B?WXE1TGJzOG9PMkhiU1YxL01IQjJLa0NPOTZjOTA2TllIdTg0NWJnWThFb05G?=
 =?utf-8?B?S1M4WnBUS0lHb2FsRlFnUzYzeDYwWVZqUFRHY0NaenIwSG9XVEZsRTFOME9q?=
 =?utf-8?B?ZDNnYUQ1QlR3RlNPend3eUdjRWxLMHBtb0U4eFpWNHNJZXIrSTVUellTM0dO?=
 =?utf-8?B?dGNxQWRrSktmem1WSkVFTmJORGMxWTBtU1RLSERBZ0h6OHlmaXNiVW9zOGlX?=
 =?utf-8?B?dUNpNFdDdmVNUC9vYmcyT3U3MGo3elRxRCtHck1LM0Q3bVErU2hCQjAvWXJa?=
 =?utf-8?B?ZkhxR09QMW5mWkxoNUppQjloWFVoVkg0d1Y2OVFPY1dlZnBMN0VaVkxJdXZR?=
 =?utf-8?B?cDF2dE5HRU5zU05ndlUvQzNHMEVZTVRGQnBneEdoamdaMTE5aGt0M0djcTZQ?=
 =?utf-8?B?U3ZNT0hBb2RSSUNNUXRKY3dFQzVPR2VBWmFSVFB1Q1RWbkFhT3dIQm9Gb2xv?=
 =?utf-8?B?RDk3akUyRXFqNmNiNWt5dG92SFFGMWprMzY4MExMMG5uaWNxNlFTODZuTlhV?=
 =?utf-8?B?dkhOZUtBWVNzVFZXdWVCeVQvR2ZlZVhTdWxoRnlRRmJyVDl5Ni81Y1ZCUlZH?=
 =?utf-8?B?VUFTNzVHaDcrL05PREtPQlArRmg5NDZXTytoOWR0ZzRHSDVIdndmd0U0UDhv?=
 =?utf-8?B?V0Y3UXpVZzU4amdxWWJVMUk3b3BqQmt3cCs3bnBSRERScFdwUVdKVjRBNnBO?=
 =?utf-8?B?V3FRR2dFR0Ywa2pxMjR5U2lRaVY4YkpKMXNMRTFCbFF1WEI3R3Z3TWZCOHpv?=
 =?utf-8?B?Z2hyWDRUTjVtcmNUUUcwaHZnUzFzamduQTk1My9wa055dW52NEJrTGowOE05?=
 =?utf-8?B?N2VET2RoSWhveE9mK25hSXZFeWxyM0dUYnQ0Q1Z6aFB0NFhpamZiSW9DV1BD?=
 =?utf-8?B?QXVSREpzMlZ0bTE1L1dXYThjaE9zNHplSk4vY0tualdqMGJSdEJqMjNtd1BJ?=
 =?utf-8?B?WGdCbXk0aUJTNW9mNUtsV1lweFVUdW9EV3BiMzM3QUZLb1lDYVhucGJTM210?=
 =?utf-8?B?OGVRWXlFQWx1RmE3enNoamtncUlzaFVTT0pReEdqSk9JMElORVhseVVUem1z?=
 =?utf-8?B?UkRSd0JGTHpQdTAxS0FkRVZNU2MwQ2Z3VU5mR20wUk1IZFVSaHJDdFFkZ1di?=
 =?utf-8?B?WStJR3hHYjFvOFRrN0R4SmsrR2xPOXZMQS9vaTZLT0FJa2htU2ZoaU95V0VN?=
 =?utf-8?B?ZnBWcEpyYWd5alhmTU1IK2JtK2tvNEcyTWZRdDJ5azFTcFkrT2NVQ0hYNmdK?=
 =?utf-8?B?dFpIbkpaay9sblU0Q1NweW5vSGhFd2cyM0JSU2k0eXpHUW1qdHRUcFdtNjFG?=
 =?utf-8?Q?taZ/WqpbKTGLXa9EWR7lnz4vJQd2gP1w+3zqQ=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <47B787F710FA9145BDC3B9CB381B9982@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6622
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028CFC.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5c6f30a6-6441-4b57-acb7-08dd057381fe
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|35042699022|1800799024|14060799003|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QnQrRHN6NG5LQWc3RHZrM09yVzBEcXpDY0ZhRlp4QmtwVVdGeVppWGpOOWti?=
 =?utf-8?B?YlFReEc0QTlQWnYyRCtYS3lDclBSZjhoenFRSi9PR21XaDk3V3dheVp1cXY5?=
 =?utf-8?B?K0k1bVRsOHgwN1BSdnpibVQ5WEoxdFBJNzJTWDdheFBBNUM5NWdEOGF6QmZi?=
 =?utf-8?B?bmFJaGhsWklqMWVsU2YxMTYwR0Fic3RLd2NOSldZNUh3UFVYR29qaGhPKzNC?=
 =?utf-8?B?NmtFNFN3Wm55dVptVys4QUhQZ2JvZUM3SThQYVJ5b3RWN2dUdVcxU3M5aklJ?=
 =?utf-8?B?Um5ZNzVYYWN5UHBwaFdpb2U2R2p6aGRIS1huOXErS2tieWk0VDBCMXE1T2xB?=
 =?utf-8?B?RzRmRVBZcjk4Nlh3ZHI1UStBWllGRHF6ODd0KzRFaG1XcFA2c0duRWRHczNo?=
 =?utf-8?B?dE1rVlVsTStDUjR0MUt5b3Nqc0ZvV2p1V01RMkl0bjlRcC9ZQUljQ1lLSEVt?=
 =?utf-8?B?VmJJZUNXR2lyMFVRSlVUL2Y2VWxnWXJGdHluelZrVGdqUi9nS0pFTGZwelJN?=
 =?utf-8?B?aThqMEtzcFFhNS9sb3B1M293MTVmN2wwcGxZOXZYWHk0bGFlRXhwSWFYM3lj?=
 =?utf-8?B?endxZUtpSThUU1UrYnpxRnp6N0JsaWl4eUhTRmgxTk1zV3NkNkgzVGxoaS85?=
 =?utf-8?B?Q21BSFZPZE51YlhWTUNKSEprem4rUFBjVGJiV0FDOWNRaW1tSWs0ak1FWmJz?=
 =?utf-8?B?VElxRW5rRlNQWWZqWkZ5emlSWjJ2UnJXUXlIVzRWUVpTOUlLMnMwNTNpbGNK?=
 =?utf-8?B?a0xnZGNDUENXRHV1U2pCLzN4SHR3Y1hvUVEwVDFqdGwzWjB3QnpWMVZqeUcw?=
 =?utf-8?B?RXdmTkpTdmRBWW0rYy9zczNzQlFXWURSNG05OGJFamZ5K1hKZUZjeGpQd01n?=
 =?utf-8?B?eEljN2NDQW1oTmYyajRJTGR0WjBBaUZUVkFXT01nQ0hTQnl1aE91N3lCcDYv?=
 =?utf-8?B?UXhxam1wNzNHZ1FCeHk3OTNGSlpGRVpTYjF6TTZTSHVUZmMxK094em42ODJm?=
 =?utf-8?B?QStPS01JWlZGYlZ0TzRUaG9URU1tT1VGZTJTS0w1NFA0SVo1QlZ4VHZwZ2lV?=
 =?utf-8?B?eHhGZENwYWJnOCtCRmUyc1VQSkNKMUg1MWdqVUNkcGJ6RFFjYzY4VFBBbnAx?=
 =?utf-8?B?NWtua2hKM0I3SGNaOTJYS1kyQ3dnVzdKc3pqcWloZ3BaaklmS2hkZjVGMTdV?=
 =?utf-8?B?MnNneFVaRjE3TTlyQTlPbWVNSkNObXU0T0EzaXNIaGJ2REFTSzJXbEJaL0lC?=
 =?utf-8?B?dXdmRHV4K2x6WEVHd2F4Q2N6QUkwOEJRamY1Y1BKY3dVUkRCMEZyN1c3SnJj?=
 =?utf-8?B?WmVRRHd6eFFmejNYNWtMeENIc3FSRzM4UWpaYmxlZ00vWUV5MTUwanVpR2wx?=
 =?utf-8?B?dEhlWDJCMHkraXp3TGM3TTh4Z01LbG5BZXVSYTdncXVHbHgvRG5ZSEdkNE5J?=
 =?utf-8?B?U01HakRDbUpjTm5BcG1IR1dyeVUzQTc2VmlJYjgzRUhoUXlYaUVweU82R2c3?=
 =?utf-8?B?bFZlV2lTWGZLVUdWQ3VVbEw0RWFCYkNERzhncDN3NHRFTG5UNGRTc1NqcWM0?=
 =?utf-8?B?ZU9rSXJPWlczTGZGQ3hKVlZnYm14Sjd0WFlNWlJHaGFPVjdnemQ4Sk9XSC9H?=
 =?utf-8?B?M08wN3pIK2hXbWRXTWVyRGlCRk16eHdrVTlpRjdiMTBMV0ViQ2o3cm1leStQ?=
 =?utf-8?B?ZDFldHZ3RnRibm5JOHpKcklwMU85R1QzM0Mrei9ZdU90MmZBT1NDNFovS0lQ?=
 =?utf-8?B?NDN0T2JMTXNBaG1mKy9IRmhzL1NWbmVwc0piR2VwNXZVNWd5WkJQS1U4SUhS?=
 =?utf-8?B?VEYzaGZIZ3NDazVpbTUyZFlyd21YQ05kTWh5WGFaaWxtanZsTmhuek9JOXIw?=
 =?utf-8?B?TlBQK04ycTVkZzV6WnhqTWRkY0o3QlI3VFlDcGVXWWZ0V3c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(35042699022)(1800799024)(14060799003)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 12:46:36.0222
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e350c43e-4dd3-47e3-01b4-08dd05738a8b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028CFC.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6301

DQoNCj4gT24gMTUgTm92IDIwMjQsIGF0IDExOjEyLCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMTUuMTEuMjAyNCAxMTo1MCwgTHVjYSBGYW5jZWxsdSB3
cm90ZToNCj4+IC0tLSBhL3hlbi9jb21tb24vdm1hcC5jDQo+PiArKysgYi94ZW4vY29tbW9uL3Zt
YXAuYw0KPj4gQEAgLTQyNiwzICs0MjYsMTAgQEAgdm9pZCAqX3h2cmVhbGxvYyh2b2lkICp2YSwg
c2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbikNCj4+IA0KPj4gICAgIHJldHVybiBwdHI7
DQo+PiB9DQo+PiArDQo+PiArdm9pZCBpb3VubWFwKHZvaWQgX19pb21lbSAqdmEpDQo+PiArew0K
Pj4gKyAgICB1bnNpZ25lZCBsb25nIGFkZHIgPSAodW5zaWduZWQgbG9uZykodm9pZCBfX2ZvcmNl
ICopdmE7DQo+PiArDQo+PiArICAgIHZ1bm1hcCgodm9pZCAqKShhZGRyICYgUEFHRV9NQVNLKSk7
DQo+PiArfQ0KPiANCj4gV2h5IGlzIHRoaXMgYmVpbmcgbW92ZWQgaGVyZSwgYW5kIGNvbnZlcnRl
ZCBmcm9tIGlubGluZSB0byBvdXQtb2YtbGluZT8NCj4gV2hhdCB0aGUgZGVzY3JpcHRpb24gc2F5
cyBpcyBpbnN1ZmZpY2llbnQgaW1vLCBhcyBldmVuIGlmIHlvdSBtZWFuIHRvDQo+IG9ubHkgc3Vw
cG9ydCB2bWFwX2NvbnRpZygpIGFuZCBpb3JlbWFwKCkgb24gTVBVIHN5c3RlbXMsIHlvdSdsbCBz
dGlsbA0KPiBuZWVkIGJvdGggdnVubWFwKCkgYW5kIGlvdW5tYXAoKS4NCj4gDQo+IFBsdXMsIGlm
IGl0IHJlYWxseSBuZWVkcyBjb252ZXJ0aW5nLCBJIGRvbid0IHRoaW5rIGl0IHNob3VsZCBsaXZl
IGF0IHRoZQ0KPiB2ZXJ5IGVuZCBvZiB0aGUgZmlsZSwgcGFzdCBfeHZtYWxsb2MoKSBhbmQgZnJp
ZW5kcy4gQmV0dGVyIHN1aXRhYmxlIHBsYWNlcw0KPiBtYXkgdGhlbiBiZSBuZXh0IHRvIHZ1bm1h
cCgpIGl0c2VsZiwgb3IgYmV0d2VlbiB2ZnJlZSgpIGFuZCB4dmZyZWUoKS4NCg0KSeKAmWxsIHRy
eSB0byBrZWVwIGl0IGFzIGl0IHdhcyBvcmlnaW5hbGx5LCBJIGdhdmUgYSBicmllZiBsb29rIGlu
dG8gdGhlIFI4MiBicmFuY2ggYW5kIGl0IHNob3VsZCBiZSBmaW5lLg0KSeKAmW0gcGxhbm5pbmcg
dG8gZGVmaW5lIHZtYXBfY29uZmlnKCksIHZ1bm1hcCgpLCBpb3JlbWFwKCksIGlvdW5tYXAoKSBp
biBhIHZtYXAtbXB1LmMgdW5kZXIgYXJjaC9hcm0vbXB1DQoNCj4gDQo+PiAtLS0gYS94ZW4vaW5j
bHVkZS94ZW4vdm1hcC5oDQo+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vdm1hcC5oDQo+PiBAQCAt
NSw3ICs1LDcgQEANCj4+ICAqIHB1cnBvc2UgYXJlYSAoVk1BUF9ERUZBVUxUKSBhbmQgYSBsaXZl
cGF0Y2gtc3BlY2lmaWMgYXJlYSAoVk1BUF9YRU4pLiBUaGUNCj4+ICAqIGxhdHRlciBpcyB1c2Vk
IHdoZW4gbG9hZGluZyBsaXZlcGF0Y2hlcyBhbmQgdGhlIGZvcm1lciBmb3IgZXZlcnl0aGluZyBl
bHNlLg0KPj4gICovDQo+PiAtI2lmICFkZWZpbmVkKF9fWEVOX1ZNQVBfSF9fKSAmJiBkZWZpbmVk
KFZNQVBfVklSVF9TVEFSVCkNCj4+ICsjaWYgIWRlZmluZWQoX19YRU5fVk1BUF9IX18pDQo+PiAj
ZGVmaW5lIF9fWEVOX1ZNQVBfSF9fDQo+IA0KPiBXaXRoIHRoaXMgYWRqdXN0bWVudCwgd2hlcmUg
YXJlIHRoZSBmdW5jdGlvbnMgZGVmaW5lZCB0aGF0IHlvdSAidW5oaWRlIg0KPiB0aGUgZGVjbGFy
YXRpb25zIG9mLCBpbiB0aGUgTVBVIGNhc2U/IEFzIHlvdSBzYXkgaW4gdGhlIGRlc2NyaXB0aW9u
LA0KPiB2bWFwLmMgd29uJ3QgYmUgYnVpbHQgaW4gdGhhdCBjYXNlLg0KDQpTdXJlLCBJ4oCZbGwg
d3JhcCB3aGF0IGNhbuKAmXQgYmUgdXNlZCBpbiBNUFUgY2FzZSB3aXRoIEhBU19WTUFQLCBJIHdv
dWxkIGxpa2UgdG8ga2VlcCBvdXQ6DQoNCnZvaWQgKnZtYXBfY29udGlnKG1mbl90IG1mbiwgdW5z
aWduZWQgaW50IG5yKTsNCg0Kdm9pZCB2dW5tYXAoY29uc3Qgdm9pZCAqdmEpOw0KDQp2b2lkIF9f
aW9tZW0gKmlvcmVtYXAocGFkZHJfdCBwYSwgc2l6ZV90IGxlbik7DQoNCnN0YXRpYyBpbmxpbmUg
dm9pZCBpb3VubWFwKHZvaWQgX19pb21lbSAqdmEpDQoNCnN0YXRpYyBpbmxpbmUgdm9pZCB2bV9p
bml0KHZvaWQpDQoNCkluIG9yZGVyIHRvIGRvbuKAmXQgcHV0IHRvbyBtYW55ICNpZmRlZiwgYXJl
IHlvdSBvayBpZiBJIG1vdmUgdGhlIGRlY2xhcmF0aW9ucyBpbiBvcmRlciB0byBoYXZlIHRoZXNl
IGNsb3NlIHRvIGVhY2ggb3RoZXIuIGxpa2UgYmVsb3c6DQoNCmRpZmYgLS1naXQgYS94ZW4vaW5j
bHVkZS94ZW4vdm1hcC5oIGIveGVuL2luY2x1ZGUveGVuL3ZtYXAuaA0KaW5kZXggYzFkZDdhYzIy
ZjMwLi45NDBiNzY1NWVkOGYgMTAwNjQ0DQotLS0gYS94ZW4vaW5jbHVkZS94ZW4vdm1hcC5oDQor
KysgYi94ZW4vaW5jbHVkZS94ZW4vdm1hcC5oDQpAQCAtMTEsNiArMTEsOCBAQA0KICNpbmNsdWRl
IDx4ZW4vbW0tZnJhbWUuaD4NCiAjaW5jbHVkZSA8eGVuL3BhZ2Utc2l6ZS5oPg0KIA0KKyNpZmRl
ZiBDT05GSUdfSEFTX1ZNQVANCisNCiAvKiBJZGVudGlmaWVycyBmb3IgdGhlIGxpbmVhciByYW5n
ZXMgdHJhY2tlZCBieSB2bWFwICovDQogZW51bSB2bWFwX3JlZ2lvbiB7DQogICAgIC8qDQpAQCAt
NjgsMjUgKzcwLDYgQEAgdm9pZCAqX192bWFwKGNvbnN0IG1mbl90ICptZm4sIHVuc2lnbmVkIGlu
dCBncmFudWxhcml0eSwgdW5zaWduZWQgaW50IG5yLA0KICAqLw0KIHZvaWQgKnZtYXAoY29uc3Qg
bWZuX3QgKm1mbiwgdW5zaWduZWQgaW50IG5yKTsNCiANCi0vKg0KLSAqIE1hcHMgcGh5c2ljYWxs
eSBjb250aWd1b3VzIHBhZ2VzIG9udG8gdGhlIFZNQVBfREVGQVVMVCB2bWFwIHJlZ2lvbg0KLSAq
DQotICogQHBhcmFtIG1mbiBCYXNlIG1mbiBvZiB0aGUgcGh5c2ljYWwgcmVnaW9uDQotICogQHBh
cmFtIG5yICBOdW1iZXIgb2YgbWZucyBpbiB0aGUgcGh5c2ljYWwgcmVnaW9uDQotICogQHJldHVy
biBQb2ludGVyIHRvIHRoZSBtYXBwZWQgYXJlYSBvbiBzdWNjZXNzOyBOVUxMIG90aGVyd2lzZS4N
Ci0gKi8NCi12b2lkICp2bWFwX2NvbnRpZyhtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBucik7DQot
DQotLyoNCi0gKiBVbm1hcHMgYSByYW5nZSBvZiB2aXJ0dWFsbHkgY29udGlndW91cyBtZW1vcnkg
ZnJvbSBvbmUgb2YgdGhlIHZtYXAgcmVnaW9ucw0KLSAqDQotICogVGhlIHN5c3RlbSByZW1lbWJl
cnMgaW50ZXJuYWxseSBob3cgd2lkZSB0aGUgbWFwcGluZyBpcyBhbmQgdW5tYXBzIGl0IGFsbC4N
Ci0gKiBJdCBhbHNvIGNhbiBkZXRlcm1pbmUgdGhlIHZtYXAgcmVnaW9uIHR5cGUgZnJvbSB0aGUg
YHZhYC4NCi0gKg0KLSAqIEBwYXJhbSB2YSBWaXJ0dWFsIGJhc2UgYWRkcmVzcyBvZiB0aGUgcmFu
Z2UgdG8gdW5tYXANCi0gKi8NCi12b2lkIHZ1bm1hcChjb25zdCB2b2lkICp2YSk7DQotDQogLyoN
CiAgKiBBbGxvY2F0ZSBgc2l6ZWAgb2N0ZXRzIG9mIHBvc3NpYmx5IG5vbi1jb250aWd1b3VzIHBo
eXNpY2FsIG1lbW9yeSBhbmQgbWFwDQogICogdGhlbSBjb250aWd1b3VzbHkgaW4gdGhlIFZNQVBf
REVGQVVMVCB2bWFwIHJlZ2lvbg0KQEAgLTExMiw2ICs5NSwzMyBAQCB2b2lkICp2emFsbG9jKHNp
emVfdCBzaXplKTsNCiAgKi8NCiB2b2lkIHZmcmVlKHZvaWQgKnZhKTsNCiANCisvKiBSZXR1cm4g
dGhlIG51bWJlciBvZiBwYWdlcyBpbiB0aGUgbWFwcGluZyBzdGFydGluZyBhdCBhZGRyZXNzICd2
YScgKi8NCit1bnNpZ25lZCBpbnQgdm1hcF9zaXplKGNvbnN0IHZvaWQgKnZhKTsNCisNCisvKiBQ
b2ludGVyIHRvIDEgb2N0ZXQgcGFzdCB0aGUgZW5kIG9mIHRoZSBWTUFQX0RFRkFVTFQgdmlydHVh
bCBhcmVhICovDQordm9pZCAqYXJjaF92bWFwX3ZpcnRfZW5kKHZvaWQpOw0KKw0KKyNlbHNlIC8q
ICFDT05GSUdfSEFTX1ZNQVAgKi8NCisNCisvKg0KKyAqIE1hcHMgcGh5c2ljYWxseSBjb250aWd1
b3VzIHBhZ2VzIG9udG8gdGhlIFZNQVBfREVGQVVMVCB2bWFwIHJlZ2lvbg0KKyAqDQorICogQHBh
cmFtIG1mbiBCYXNlIG1mbiBvZiB0aGUgcGh5c2ljYWwgcmVnaW9uDQorICogQHBhcmFtIG5yICBO
dW1iZXIgb2YgbWZucyBpbiB0aGUgcGh5c2ljYWwgcmVnaW9uDQorICogQHJldHVybiBQb2ludGVy
IHRvIHRoZSBtYXBwZWQgYXJlYSBvbiBzdWNjZXNzOyBOVUxMIG90aGVyd2lzZS4NCisgKi8NCit2
b2lkICp2bWFwX2NvbnRpZyhtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBucik7DQorDQorLyoNCisg
KiBVbm1hcHMgYSByYW5nZSBvZiB2aXJ0dWFsbHkgY29udGlndW91cyBtZW1vcnkgZnJvbSBvbmUg
b2YgdGhlIHZtYXAgcmVnaW9ucw0KKyAqDQorICogVGhlIHN5c3RlbSByZW1lbWJlcnMgaW50ZXJu
YWxseSBob3cgd2lkZSB0aGUgbWFwcGluZyBpcyBhbmQgdW5tYXBzIGl0IGFsbC4NCisgKiBJdCBh
bHNvIGNhbiBkZXRlcm1pbmUgdGhlIHZtYXAgcmVnaW9uIHR5cGUgZnJvbSB0aGUgYHZhYC4NCisg
Kg0KKyAqIEBwYXJhbSB2YSBWaXJ0dWFsIGJhc2UgYWRkcmVzcyBvZiB0aGUgcmFuZ2UgdG8gdW5t
YXANCisgKi8NCit2b2lkIHZ1bm1hcChjb25zdCB2b2lkICp2YSk7DQorDQogLyoNCiAgKiBBbmFs
b2dvdXMgdG8gdm1hcF9jb250aWcoKSwgYnV0IGZvciBJTyBtZW1vcnkNCiAgKg0KQEAgLTEyNCw5
ICsxMzQsNiBAQCB2b2lkIHZmcmVlKHZvaWQgKnZhKTsNCiAgKi8NCiB2b2lkIF9faW9tZW0gKmlv
cmVtYXAocGFkZHJfdCBwYSwgc2l6ZV90IGxlbik7DQogDQotLyogUmV0dXJuIHRoZSBudW1iZXIg
b2YgcGFnZXMgaW4gdGhlIG1hcHBpbmcgc3RhcnRpbmcgYXQgYWRkcmVzcyAndmEnICovDQotdW5z
aWduZWQgaW50IHZtYXBfc2l6ZShjb25zdCB2b2lkICp2YSk7DQotDQogLyogQW5hbG9nb3VzIHRv
IHZ1bm1hcCgpLCBidXQgZm9yIElPIG1lbW9yeSBtYXBwZWQgdmlhIGlvcmVtYXAoKSAqLw0KIHN0
YXRpYyBpbmxpbmUgdm9pZCBpb3VubWFwKHZvaWQgX19pb21lbSAqdmEpDQogew0KQEAgLTEzNSw5
ICsxNDIsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW91bm1hcCh2b2lkIF9faW9tZW0gKnZhKQ0K
ICAgICB2dW5tYXAoKHZvaWQgKikoYWRkciAmIFBBR0VfTUFTSykpOw0KIH0NCiANCi0vKiBQb2lu
dGVyIHRvIDEgb2N0ZXQgcGFzdCB0aGUgZW5kIG9mIHRoZSBWTUFQX0RFRkFVTFQgdmlydHVhbCBh
cmVhICovDQotdm9pZCAqYXJjaF92bWFwX3ZpcnRfZW5kKHZvaWQpOw0KLQ0KIC8qIEluaXRpYWxp
c2VzIHRoZSBWTUFQX0RFRkFVTFQgdmlydHVhbCByYW5nZSAqLw0KIHN0YXRpYyBpbmxpbmUgdm9p
ZCB2bV9pbml0KHZvaWQpDQogew0KQEAgLTE0Niw0ICsxNTAsNiBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgdm1faW5pdCh2b2lkKQ0KICNlbmRpZg0KIH0NCiANCisjZW5kaWYgLyogQ09ORklHX0hBU19W
TUFQICovDQorDQogI2VuZGlmIC8qIF9fWEVOX1ZNQVBfSF9fICovDQoNCg0KPiANCj4gQWxzbyBi
b3RoIGhlcmUgYW5kIC4uLg0KPiANCj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi94dm1hbGxvYy5o
DQo+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4veHZtYWxsb2MuaA0KPj4gQEAgLTQwLDIwICs0MCw0
NiBAQA0KPj4gICAgICgodHlwZW9mKHB0cikpX3h2cmVhbGxvYyhwdHIsIG9mZnNldG9mKHR5cGVv
ZigqKHB0cikpLCBmaWVsZFtucl0pLCBcDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF9fYWxpZ25vZl9fKHR5cGVvZigqKHB0cikpKSkpDQo+PiANCj4+ICsjaWYgZGVmaW5lZChDT05G
SUdfSEFTX1ZNQVApDQo+IA0KPiAuLi4gaGVyZTogUGxlYXNlIHVzZSB0aGUgc2hvcnRlciAjaWZk
ZWYgd2hlbiBwb3NzaWJsZS4NCg0Kc3VyZSBJIHdpbGwNCg0KPiANCj4gSmFuDQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:47:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:47:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837501.1253425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvjr-0005NO-PS; Fri, 15 Nov 2024 12:47:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837501.1253425; Fri, 15 Nov 2024 12: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 1tBvjr-0005NH-MQ; Fri, 15 Nov 2024 12:47:51 +0000
Received: by outflank-mailman (input) for mailman id 837501;
 Fri, 15 Nov 2024 12:47: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=TwMO=SK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBvjq-0004n9-Lm
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:47:50 +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 d16f202f-a34f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:47:48 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5c96b2a10e1so2976478a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:47:48 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08617esm177517666b.182.2024.11.15.04.47.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 04:47: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: d16f202f-a34f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzEiLCJoZWxvIjoibWFpbC1lZDEteDUzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQxNmYyMDJmLWEzNGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjc0ODY4LjQ3OTg0Nywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731674867; x=1732279667; 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=rEAdQHOht+sXlaWNLwPdJaPMbdoj6AeiqmUtGFUERz0=;
        b=LEVJ8tMuzS9dYvxO9/oCP/dgidtZQc1K+goxGMIPpi5pLCN26plSO0ytUl2Nf+8khQ
         CT6fAuHILW1uogx4CS/7AqYuwKZ5PLADDF2EZqKUxaBdCocMmdv4cjqCZ9JbG9gD6UW0
         YD24dZomfNROTJ1epOaoDAfF5eCGpZS/zY7NSsqqU/pTNJ8VQoHlpFbNtTkJsfAo6ZL2
         W9X7nWjeK3jaAvZJ9T+EL2savq7pKjwk4LFraWUP2LAhiG+lhYtivfVcZ1uTQQZgLwk9
         eIuTXvxB5tdPNYU2jRY2F0TvaAKOr6tllpSnUjqutO1yU8NrV91XD1ss0SXqncMd/XTP
         S8jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731674867; x=1732279667;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=rEAdQHOht+sXlaWNLwPdJaPMbdoj6AeiqmUtGFUERz0=;
        b=BisyVN7c5Y3a5WbJhOUK/dA9Vau2FGUyfo48kvcoqJXJexepR+cHZimXuxsf8Xmegq
         udQ3uTLVPgGFs3F9qGe8STUwSy3971hhe8yxyR1SsJCLCNqOuSJxnZrfsoQ12WpoiTQo
         SPfn68mX3nrjTzwg9VWHeL8U5+EhEt0TWB26cn7+nQiHcRas2eZEjP4qKnfMn63TRcXF
         yzpRNpqu+f280mbJApY3OUIzX22Li3IlreWeyvCNeRr9EAMRvu6rfS4IZSJCmbJcbkK6
         RZxkQCyl6Bj/fzg4frIDAclYlkyj1WeY1Db4cDSOBMDHw3nEw8BYVhllQlnlDBrp4uCu
         4npA==
X-Gm-Message-State: AOJu0YxlgVjmc7aFHlJjUpkJtKudoI9KG11P8HOBm3d8OUxv7ERy75b7
	z4R3sR1ZQjy5aXjECK+uHVuGr9SIuA9nvhyKAD8N2kuA/B45pa2ldn1cQA==
X-Google-Smtp-Source: AGHT+IG9UQYbSwpwDptxKtpu6y/RjNBv83Kme1MrkKK3zmN+2FgyjP5xqNwm7eu87OAlU/Ck0hXbbQ==
X-Received: by 2002:a17:907:9288:b0:a9a:bbcc:508c with SMTP id a640c23a62f3a-aa4833f708cmr216150466b.2.1731674867026;
        Fri, 15 Nov 2024 04:47: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 0/3]  Setup memory management for RISC-V
Date: Fri, 15 Nov 2024 13:47:41 +0100
Message-ID: <cover.1731672668.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Finish initializing the memory subsystem by mapping the direct map and
frame table.

The frametable_virt_start variable is introduced with substracting
of an offest ( taking into account that RAM start could be not 0 ) to save
virtual address space of FRAMETABLE. Also it simplifies the
calculations and thereby improves performance for page_to_mfn(), mfn_to_page()
as there is no frametable_base_pdx or frametable_base_mfn ( if CONFIG_PDX_COMPRESSION=n);

The directmap_virt_start is introduced and shifted lower in the VA space to
(DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
wasting a large portion of the directmap space, this also allows for simple
VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
(for Sv39; for other MMU mode boundaries will be bigger ) by masking the
bits of the RAM start address to enable the use of superpages in
map_pages_to_xen().

In addition, initialize the VMAP_DEFAULT region, finalize the boot allocator,
and update the system state from early_boot to boot.

Introduce share_xen_page_with_guest() to deal with linkage error which occurs
because of DCE:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

The function maddr_to_virt() is introduced as part of this patch series.

virt_to_maddr() is updated as it is started to use direct_virt_start which is
introduced in this patch series.

Introduce DIRECTMAP_VIRT_END to have a convient way to do some basic
checks of address ranges.

---
Changes in V6:
 - Rebase on top of current staging.
 - Update the cover letter message.
 - Other changes are only connected to path 1 of the current patch series some
   please look at the changes there.
---
Changes in V5:
 - Rebase on top of current staging.
 - Drop unnecessary local variables.
 - Fix issue with virt_to_maddr() ( used DIRECTMAP_VIRT_START in if-condition
   instead of direct_virt_start ).
 - Update setup_directmap_mappings() and setup_frametable_mappings() ( details
   look in patch 1).
---
Changes in V4:
 - Rebase on top of current staging.
 - Fix issues with setup_frametable_mappings() and setup_directmap_mappings().
 - Drop unnecessary local variables.
 - Minor log messsages fixes.
---
Changes in V3:
 - Update the cover letter message as DIRECTMAP connected things were changed.
 - Update setup_mm(), setup_{directmap,frametable}_mappings.
 - Introduce ROUNDDOWN in <xen/macros.h>
 - All other details please look at the specific patch.
---
Changes in V2:
 - update the cover letter message.
 - merge first 3 patches to "introduce setup_mm()" patch as after setup_mm()
   rework all the things in first two patches of v1 started to use changes
   introduced in "introduce setup_mm()" patch.
 - add Acked-by for some patch series.
 - All other details please look at the specific patch.
---

Oleksii Kurochko (3):
  xen/riscv: introduce setup_mm()
  xen/riscv: initialize the VMAP_DEFAULT virtual range
  xen/riscv: finalize boot allocator and transition to boot state

 xen/arch/riscv/include/asm/config.h |   1 +
 xen/arch/riscv/include/asm/mm.h     |  20 ++--
 xen/arch/riscv/include/asm/setup.h  |   2 +
 xen/arch/riscv/mm.c                 | 159 ++++++++++++++++++++++++++--
 xen/arch/riscv/pt.c                 |   6 ++
 xen/arch/riscv/setup.c              |  14 +++
 xen/include/xen/macros.h            |   1 +
 7 files changed, 191 insertions(+), 12 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:47:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:47:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837502.1253435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvju-0005cT-03; Fri, 15 Nov 2024 12:47:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837502.1253435; Fri, 15 Nov 2024 12:47: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 1tBvjt-0005cK-T9; Fri, 15 Nov 2024 12:47:53 +0000
Received: by outflank-mailman (input) for mailman id 837502;
 Fri, 15 Nov 2024 12:47: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=TwMO=SK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBvjs-0004n9-Bt
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:47:52 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1f9e1f9-a34f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:47:49 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-539fb49c64aso2870798e87.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:47:49 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08617esm177517666b.182.2024.11.15.04.47.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 04:47: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: d1f9e1f9-a34f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQxZjllMWY5LWEzNGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjc0ODY5LjMxMjIxOSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731674868; x=1732279668; 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=1JJ8LVgWOe6LuMqjAosGRGQZczcC4DgBD62MvpHyiBM=;
        b=PSxR37G3k0Vp/abud/Smtq1Tyw5DmZJJv6GjOWICQ5GwQFPCN/XtRZUkKQTKYGSFeY
         LSCANvjf3i2k/t5ZslpxaMZ6G0QjKM71aQ7ozPZ2hbMFOy3wMwZbCN6/NFXYFWX3bVFG
         pdb3HxGhvYkQqrXJ7FlB199mcwvJai1PPyLh1XH/FjYWNAXsudezs9ML83QfQ4Tp2Fri
         CvwPR6VvIGwQLa4eXQt2iNVnBoCRZssiFh9hg+WZfi6s6AuJfwdSoZxIZOz1fcp+9oU7
         BsCot/3fjL3kHrMn+AmSey+kwVUKXfPcq5PXmnrpZkskVS2rZTHBM5AxW57pitJp3T2k
         D+VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731674868; x=1732279668;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1JJ8LVgWOe6LuMqjAosGRGQZczcC4DgBD62MvpHyiBM=;
        b=NKDMOnU5beYavlO1bKhmZHTfHLYRFfKE81VJh261yqv8oR4UtUYxvLknqEfee99bHU
         Rgb3tVDruKPVJY3ikE9eB1ps23oMZxb1h2DspeG10AiqMOt0mr2BdGiMTqRtjoan5mbm
         O8/YrTGahyFPl1rya527FCvunWewLuCgIpVSmXGMxOkCb2FcdqWRxB13D/jRwHkB5qqn
         BpLWv7DHbi3f+GMltd6jSSk0U+Rgr5eu5HIPRMQAyzBjRBAX22Jci/8eZfA5OlGqXm/Q
         6a13OQv5k9v2ntjej2gTfY0pyhzrIxRYcKNrT2Ks/vEFVEy6tMJ/fSuy5Kc2AFxa7eIv
         LlRA==
X-Gm-Message-State: AOJu0Yz4IK1XQlspi3byT4Fz3jRtqiqbse4/pGGUC9FLLEO3tDolO/BN
	VRfZsZ1ts/sYAhGkTVCRAF2eBOKJnIBPMBeRX6XySpyykyFP60jAnwgjwg==
X-Google-Smtp-Source: AGHT+IHrlZS3V0wVuiyn7eGAlxstfkcDdsKFy1HR7OohdkQIkPhk+ah/OOYBqgEAsjHZm7IrtiqU6g==
X-Received: by 2002:a05:6512:128a:b0:52c:deb9:904b with SMTP id 2adb3069b0e04-53dab3b16ccmr2062554e87.38.1731674867984;
        Fri, 15 Nov 2024 04:47: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 1/3] xen/riscv: introduce setup_mm()
Date: Fri, 15 Nov 2024 13:47:42 +0100
Message-ID: <1ebb209f191e3e2323840acfe3714a597aa7be6c.1731672668.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731672668.git.oleksii.kurochko@gmail.com>
References: <cover.1731672668.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the implementation of setup_mm(), which includes:
1. Adding all free regions to the boot allocator, as memory is needed
   to allocate page tables used for frame table mapping.
2. Calculating RAM size and the RAM end address.
3. Setting up direct map mappings from each RAM bank and initialize
   directmap_virt_start to keep simple VA <-> PA translation and if
   RAM_start isn't properly aligned then add an additional alignment
   to directmap_virt_start to be properly aligned with RAM
   start to use more superpages to reduce pressure on the TLB.
4. Setting up frame table mappings for range [ram_start, ram_end)
   and initialize properly frametable_virt_start to have simplified
   version of mfn_to_page() and page_to_mfn().
5. Setting up max_page.

Introduce DIRECTMAP_VIRT_END to have a convient way to do some basic
checks of address ranges.

Update virt_to_maddr() to use introduced directmap_virt_start and newly
introduced DIRECTMAP_VIRT_END.

Implement maddr_to_virt() function to convert a machine address
to a virtual address. This function is specifically designed to be used
only for the DIRECTMAP region, so a check has been added to ensure that
the address does not exceed DIRECTMAP_VIRT_END.

After the introduction of maddr_to_virt() the following linkage error starts
to occur and to avoid it share_xen_page_with_guest() stub is added:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

Despite the linkger fingering tasklet.c, it's trace.o which has the undefined
refenrece:
  $ find . -name \*.o | while read F; do nm $F | grep share_xen_page_with_guest &&
    echo $F; done
                     U share_xen_page_with_guest
    ./xen/common/built_in.o
                     U share_xen_page_with_guest
    ./xen/common/trace.o
                     U share_xen_page_with_guest
    ./xen/prelink.o

Looking at trace.i, there is call of share_xen_page_with_guest() but in case of
when maddr_to_virt() is defined as stub ("BUG_ON(); return NULL;") DCE happens and
the code is just eliminated.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - introduce DIRECTMAP_VIRT_END and use it in maddr_to_virt()
   and virt_to_maddr().
 - Update ASSERTs in maddr_to_virt() to properly varify that
   expected range for passed ma.
 - Drop the check of re-entrance of setup_frametable_mappings().
 - Update the comment above setup_frametable_mappings(): add a comment that it
   is expected to be called only once.
 - Use PFN_DOWN(frametable_size) instead of open-code:
   frametable_size >> PAGE_SHIFT.
 - Add panic() for a check that banks->nr_banks isn't 0 in setup_mm().
 - Update the comment above setup_mm(): update information about frametable as
   it isn't mapped from 0 by default.
 - Update the commit message.
---
Changes in V5:
 - correct the if-condition in virt_to_maddr():
     directmap_virt_start -> DIRECTMAP_VIRT_START
   as `va` argument of virt_to_maddr() is DIRECTMAP_VIRT_START-relative.
 - add initializer to definition/declaration of frametable_virt_start.
 - setup_frametable_mappings() update:
   - add check that setup_frametable_mappings() is called once.
   - add staic variable frametable_mfn_start inside setup_frametable_mappings()
     to handle the case when setup_frametable_mappings() is called more then
     once.
 - setup_directmap_mappings():
   - Update initialization of directmap_virt_start when setup_directmap_mappings()
     is called for the first time.
   - Introduce local variable "mfn_t base_mfn_t = _mfn(base_mfn);" to have
     less mfn_x(...) in the code.
   - Add logging of error code of map_pages_to_xen().
 - Drop ram_size variable in setup_mm() as there is no users of it.
---
Change in V4:
 - s/heap/directmap in log message in setup_directmap_mappings().
 - drop local variable total_pages in setup_mm() as it is not used.
 - call setup_frametable_mappings() for [ram_start,ram_end) range.
 - setup_frametable_mappings(ps, pe):
   - update initialization ( validation/invalidation ) of frame table.
   - add and initialize frameframetable_virt_start variable to cover
     the case that ps ( RAM start ) could be not eqaul 0 so the proper
     calculations are needed in mfn_to_page() and page_to_mfn().
 - setup_directmap_mapping():
   - update the value of directmap_virt_start: add an alignment to the size
     of HYP_PT_ROOT_LEVEL to have proper alignment so more superpages will be
     used for mapping.
   - re-use indirectly directmap_virt_start ( by using mfn_to_virt(base_mfn) )
     during mapping of directmap region for RAM bank to not face an issue with
     possible mapping overlapping during the 2nd invocation of
     setup_directmap_mapping().
 - Update the commit message.
---
Changes in V3:
  - Update the comment the part where DCE should be mentioned and directmap-related
    things are touched.
  - Move ROUNDDOWN to <xen/macros.h>.
  - s/sizeof(struct page_info)/sizeof(*frame_table) in setup_frametable_mapping().
  - Updates in setup_frametable_mapping():
    - align phys_start (ps) up to a page boundary and align phys_end (pe) down
      to a page boundary.
    - Update panic message.
    - Add the comment about alignment of frametable_size and base_mfn.
    - invalidate all frame_table entries and then just init with 0 only valid ones.
  - Double blank lines removing.
  - Initialize directmap_virt_start with DIRECTMAP_VIRT_START.
  - Updates in setup_directmap_mapping():
    - Drop local variable rc as it is used only once.
    - Move directmap_mfn_start definition to setup_directmap_mapping() and
      change __ro_after_init to __initdata.
    - Update the commit message about alignment of directmap_virt_start.
    - Move down directmap_virt_start for (base_addr & ~XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to not waste a lot of directmap space.
    - Map DIRECTMAP_VIRT_START + (base_addr & XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to _mfn(base_mfn).
    - Add log of the range in case directmap mapping failure.
  - Drop XENHEAP_VIRT_START and use directmap_virt_start instead.
  - Update the comment above setup_mm().
  - Update the calculation of bank_start and bank_end in setup_mm() to cover
    the case when a bank doesn't cover full pages.
  - Move share_xen_page_with_guest() to riscv/mm.c instead of riscv/stub.c.
  - Drop inclusion of <xen/pdx.h> in riscv/mm.c as thery is nothing used
    anymore in riscv/mm.c.
  - Move variable directmap_virt_start and setup_mm() outside
    #ifndef CONFIG_RISCV_32 ... #endif as they are likely to be common.
---
 Changes in V2:
  - merge patch 2 ( xen/riscv: implement maddr_to_virt() ) to the current one
    as maddr_to_virt() started to use the thing which are introduced in the
    current patch.
  - merge with patch 1 ( xen/riscv: add stub for share_xen_page_with_guest() )
    as this linkage issue happens during introduction of maddr_to_virt().
  - use mathematical range expressions for log messages.
  - calculate properly amount of mfns in setup_frametable_mapping() taking into
    account that ps and pe can be not properly aligned.
  - drop full stop at the end of debug message.
  - use PFN_DOWN(framsetable_size) instead of frametable_size >> PAGE_SHIFT.
  - round down ram_size when it is being accumulated in setup_mm() to guarantee
    that banks can never have partial pages at their start/end.
  - call setup_directmap_mappings() only for ram bank regions instead of
    mapping [0, ram_end] region.
  - drop directmap_virt_end for now as it isn't used at the moment.
  - update the commit message.
---
 xen/arch/riscv/include/asm/config.h |   1 +
 xen/arch/riscv/include/asm/mm.h     |  20 ++--
 xen/arch/riscv/include/asm/setup.h  |   2 +
 xen/arch/riscv/mm.c                 | 148 ++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c              |   3 +
 xen/include/xen/macros.h            |   1 +
 6 files changed, 169 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index ad75871283..623de8e526 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -90,6 +90,7 @@
 #define DIRECTMAP_SLOT_START    200
 #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
 #define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) - SLOTN(DIRECTMAP_SLOT_START))
+#define DIRECTMAP_VIRT_END      (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE - 1)
 
 #define FRAMETABLE_SCALE_FACTOR  (PAGE_SIZE/sizeof(struct page_info))
 #define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) / FRAMETABLE_SCALE_FACTOR) + 1)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index ebb142502e..de4f12d1d1 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -12,6 +12,8 @@
 
 #include <asm/page-bits.h>
 
+extern vaddr_t directmap_virt_start;
+
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
 
@@ -25,8 +27,12 @@
 
 static inline void *maddr_to_virt(paddr_t ma)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    unsigned long va_offset = maddr_to_directmapoff(ma);
+
+    ASSERT(va_offset >= DIRECTMAP_VIRT_START - directmap_virt_start);
+    ASSERT(va_offset <= DIRECTMAP_VIRT_END - directmap_virt_start);
+
+    return (void *)(directmap_virt_start + va_offset);
 }
 
 /*
@@ -38,8 +44,8 @@ static inline void *maddr_to_virt(paddr_t ma)
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
     if ((va >= DIRECTMAP_VIRT_START) &&
-        (va < (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)))
-        return directmapoff_to_maddr(va - DIRECTMAP_VIRT_START);
+        (va <= DIRECTMAP_VIRT_END))
+        return directmapoff_to_maddr(va - directmap_virt_start);
 
     BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
     ASSERT((va >> (PAGETABLE_ORDER + PAGE_SHIFT)) ==
@@ -127,11 +133,13 @@ struct page_info
     };
 };
 
+extern struct page_info *frametable_virt_start;
+
 #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 
 /* Convert between machine frame numbers and page-info structures. */
-#define mfn_to_page(mfn)    (frame_table + mfn_x(mfn))
-#define page_to_mfn(pg)     _mfn((pg) - frame_table)
+#define mfn_to_page(mfn)    (frametable_virt_start + mfn_x(mfn))
+#define page_to_mfn(pg)     _mfn((pg) - frametable_virt_start)
 
 static inline void *page_to_virt(const struct page_info *pg)
 {
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c0214a9bf2..844a2f0ef1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,8 @@
 
 #define max_init_domid (0)
 
+void setup_mm(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 27026d803b..2db1193bac 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -372,6 +372,12 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return -1;
 }
 
+void share_xen_page_with_guest(struct page_info *page, struct domain *d,
+                               enum XENSHARE_flags flags)
+{
+    BUG_ON("unimplemented");
+}
+
 void * __init early_fdt_map(paddr_t fdt_paddr)
 {
     /* We are using 2MB superpage for mapping the FDT */
@@ -423,3 +429,145 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
 
     return fdt_virt;
 }
+
+vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
+
+struct page_info *__ro_after_init frametable_virt_start = frame_table;
+
+#ifndef CONFIG_RISCV_32
+
+/*
+ * Map a frame table to cover physical addresses ps through pe.
+ * This function is expected to be called only once.
+ */
+static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
+    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
+    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
+    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
+    mfn_t base_mfn;
+
+    frametable_virt_start -= paddr_to_pfn(aligned_ps);
+
+    if ( frametable_size > FRAMETABLE_SIZE )
+        panic("The frametable cannot cover [%#"PRIpaddr", %#"PRIpaddr")\n",
+              ps, pe);
+
+    /*
+     * align base_mfn and frametable_size to MB(2) to have superpage mapping
+     * in map_pages_to_xen()
+     */
+    frametable_size = ROUNDUP(frametable_size, MB(2));
+    base_mfn = alloc_boot_pages(PFN_DOWN(frametable_size), PFN_DOWN(MB(2)));
+
+    if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
+                          PFN_DOWN(frametable_size),
+                          PAGE_HYPERVISOR_RW) )
+        panic("frametable mappings failed: %#lx -> %#lx\n",
+              FRAMETABLE_VIRT_START, mfn_x(base_mfn));
+
+    memset(&frame_table[0], 0, nr_mfns * sizeof(*frame_table));
+    memset(&frame_table[nr_mfns], -1,
+           frametable_size - (nr_mfns * sizeof(*frame_table)));
+}
+
+/* Map the region in the directmap area. */
+static void __init setup_directmap_mappings(unsigned long base_mfn,
+                                            unsigned long nr_mfns)
+{
+    static mfn_t __initdata directmap_mfn_start = INVALID_MFN_INITIALIZER;
+
+    mfn_t base_mfn_t = _mfn(base_mfn);
+    unsigned long base_addr = mfn_to_maddr(base_mfn_t);
+    unsigned long high_bits_mask = XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
+    int res;
+
+    /* First call sets the directmap physical and virtual offset. */
+    if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
+    {
+        directmap_mfn_start = base_mfn_t;
+
+       /*
+        * The base address may not be aligned to the second level
+        * size in case of Sv39 (e.g. 1GB when using 4KB pages).
+        * This would prevent superpage mappings for all the regions
+        * because the virtual address and machine address should
+        * both be suitably aligned.
+        *
+        * Prevent that by offsetting the start of the directmap virtual
+        * address.
+        */
+        directmap_virt_start -= (base_addr & high_bits_mask);
+    }
+
+    if ( base_mfn < mfn_x(directmap_mfn_start) )
+        panic("can't add directmap mapping at %#lx below directmap start %#lx\n",
+              base_mfn, mfn_x(directmap_mfn_start));
+
+    if ( (res = map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn),
+                          base_mfn_t, nr_mfns,
+                          PAGE_HYPERVISOR_RW)) )
+        panic("Directmap mappings for [%#"PRIpaddr", %#"PRIpaddr") failed: %d\n",
+              mfn_to_maddr(base_mfn_t),
+              mfn_to_maddr(mfn_add(base_mfn_t, nr_mfns)), res);
+}
+
+#else /* CONFIG_RISCV_32 */
+#error setup_{directmap,frametable}_mapping() should be implemented for RV_32
+#endif
+
+/*
+ * Setup memory management
+ *
+ * RISC-V 64 has a large virtual address space (the minimum supported
+ * MMU mode is Sv39, which provides GBs of VA space).
+ *
+ * The directmap_virt_start is shifted lower in the VA space to
+ * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
+ * wasting a large portion of the directmap space, this also allows for simple
+ * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
+ * (for Sv39; for other MMU mode boundaries will be bigger ) by masking the
+ * bits of the RAM start address to enable the use of superpages in
+ * map_pages_to_xen().
+ *
+ * The frametable is mapped starting from physical address RAM_START, so an
+ * additional offset is applied in setup_frametable_mappings() to initialize
+ * frametable_virt_start to minimize wasting of VA space and simplifying
+ * page_to_mfn() and mfn_to_page() translations.
+ */
+void __init setup_mm(void)
+{
+    const struct membanks *banks = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR;
+    paddr_t ram_end = 0;
+    unsigned int i;
+
+    /*
+     * We need some memory to allocate the page-tables used for the directmap
+     * mappings. But some regions may contain memory already allocated
+     * for other uses (e.g. modules, reserved-memory...).
+     *
+     * For simplicity, add all the free regions in the boot allocator.
+     */
+    populate_boot_allocator();
+
+    if ( !banks->nr_banks )
+        panic("bank->nr_banks shouldn't be zero, check memory node in dts\n");
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
+        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
+        unsigned long bank_size = bank_end - bank_start;
+
+        ram_start = min(ram_start, bank_start);
+        ram_end = max(ram_end, bank_end);
+
+        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
+    }
+
+    setup_frametable_mappings(ram_start, ram_end);
+    max_page = PFN_DOWN(ram_end);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e29bd75d7c..2887a18c0c 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 
 #include <asm/early_printk.h>
 #include <asm/sbi.h>
+#include <asm/setup.h>
 #include <asm/smp.h>
 #include <asm/traps.h>
 
@@ -59,6 +60,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
 
+    setup_mm();
+
     printk("All set up\n");
 
     machine_halt();
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index 19caaa8026..cd528fbdb1 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -2,6 +2,7 @@
 #define __MACROS_H__
 
 #define ROUNDUP(x, a) (((x) + (a) - 1) & ~((a) - 1))
+#define ROUNDDOWN(x, a) ((x) & ~((a) - 1))
 
 #define IS_ALIGNED(val, align) (!((val) & ((align) - 1)))
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:47:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837503.1253445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvjv-0005sJ-B7; Fri, 15 Nov 2024 12:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837503.1253445; Fri, 15 Nov 2024 12:47: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 1tBvjv-0005sA-80; Fri, 15 Nov 2024 12:47:55 +0000
Received: by outflank-mailman (input) for mailman id 837503;
 Fri, 15 Nov 2024 12:47: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=TwMO=SK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBvjt-0005bz-Kx
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:47:53 +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 d262acb8-a34f-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 13:47:50 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cf8ef104a8so997724a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:47:50 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08617esm177517666b.182.2024.11.15.04.47.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 04:47: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: d262acb8-a34f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQyNjJhY2I4LWEzNGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc0ODcwLjA4NTcyMywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731674869; x=1732279669; 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=WEabXhnDCZBkAxQb2YAcqwtP5dRDr3GWAS7aIXDMD3Q=;
        b=f/KnMpJU1Mo0kz3nC3t/D0yYeEMt39r9oBVFZjhu6vtjbX3u5ZNIkyujnW9MhE4GsT
         nP7+cDvT7v1x7Bs4QhHyhgCcGLIKA+rwrSWyT2twaVrRhq47fCIN0+x5weBYZBvX+YW/
         w3gef7LQbaGFtizmszdcjeLA6C2tbcCiKVYysncYIDoG28hjZKtMKCiY/I4c+H5xNqHT
         yvXpl2X7236Oayfr7U/0jou3jqVxdG4IYuU+ab2fkjSP4QuDrYlNqe7iQsdMvvdGgxLV
         lyyyJOB6pDMNVeeIpyhi03pwz2AePf13Lu6/YOz7Sbvb4v/MBAhIr8SEadYBUXmBl1It
         JD7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731674869; x=1732279669;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WEabXhnDCZBkAxQb2YAcqwtP5dRDr3GWAS7aIXDMD3Q=;
        b=KUvyIGOURXfzvYMm9gdfkItcxpDyZV+nohXYX+2oUOrVmjhFv4uB/Z/a12AWYs+2I6
         BAbbQwGX3EAPT01Zkr5aukI9lkNmG9e0+CCfpMlasL5peIIISwyHzkgZUWEWn5vDpve7
         WLereJOUj5eIYIhklkKo/QQLxL1TtTfuldsnBtP6mEVZgl0NqEX8sVwVvFNPuajdHJil
         dS24JaZlwc26ehp8RdPIgiWmk8FPzfmoQTNcZIEEurHlvJnJ46GB98ZveKBf7MabtbEi
         AwSKfbBeA9YBZiPwxBlIA4a4kJv9iFKP/Xz+zlQOsuiXFgF3EnUNYp3gLgy7Bk4pqOfB
         MbNw==
X-Gm-Message-State: AOJu0YyRBtaOT/P7yYEVFNhHmU5b+2kk4JovFbLwFYl3/uGEFZC20/vQ
	Hb07henPhvA/VZWjjypsc2DWCCgf5kIW6l9LpRVji/xjaxChixgrDvzD2Q==
X-Google-Smtp-Source: AGHT+IHyL8W6BnfA0G569rqa7yqsFxUp+TICeophepF8sdr4q6qb5ORNahh4H1KInpL14tOcU2gaPw==
X-Received: by 2002:a17:907:7faa:b0:a9f:508:5f5a with SMTP id a640c23a62f3a-aa4835096c0mr171572066b.40.1731674868955;
        Fri, 15 Nov 2024 04:47: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 2/3] xen/riscv: initialize the VMAP_DEFAULT virtual range
Date: Fri, 15 Nov 2024 13:47:43 +0100
Message-ID: <807e532e8c7d07778dfe58a442f318d557ca4f77.1731672668.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731672668.git.oleksii.kurochko@gmail.com>
References: <cover.1731672668.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Call vm_init() to initialize the VMAP_DEFAULT virtual range.

To support this, introduce the populate_pt_range() and
arch_vmap_virt_end() functions, which are used by
vm_init()->vm_init_type().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V6:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/mm.c    | 11 +++++------
 xen/arch/riscv/pt.c    |  6 ++++++
 xen/arch/riscv/setup.c |  3 +++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 2db1193bac..9359dc7f33 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -351,12 +351,6 @@ void arch_dump_shared_mem_info(void)
     BUG_ON("unimplemented");
 }
 
-int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
-{
-    BUG_ON("unimplemented");
-    return -1;
-}
-
 int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
                               union add_to_physmap_extra extra,
                               unsigned long idx, gfn_t gfn)
@@ -571,3 +565,8 @@ void __init setup_mm(void)
     setup_frametable_mappings(ram_start, ram_end);
     max_page = PFN_DOWN(ram_end);
 }
+
+void *__init arch_vmap_virt_end(void)
+{
+    return (void *)(VMAP_VIRT_START + VMAP_VIRT_SIZE);
+}
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index cc5e2d3266..d62aceb36c 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/domain_page.h>
 #include <xen/errno.h>
+#include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
@@ -419,3 +420,8 @@ int map_pages_to_xen(unsigned long virt,
 
     return pt_update(virt, mfn, nr_mfns, flags);
 }
+
+int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
+{
+    return pt_update(virt, INVALID_MFN, nr_mfns, PTE_POPULATE);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 2887a18c0c..3652cb056d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
+#include <xen/vmap.h>
 
 #include <public/version.h>
 
@@ -62,6 +63,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     setup_mm();
 
+    vm_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:47:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:47:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837504.1253455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvjw-00068F-Kx; Fri, 15 Nov 2024 12:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837504.1253455; Fri, 15 Nov 2024 12: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 1tBvjw-000682-GY; Fri, 15 Nov 2024 12:47:56 +0000
Received: by outflank-mailman (input) for mailman id 837504;
 Fri, 15 Nov 2024 12: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=TwMO=SK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBvjv-0005bz-A2
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:47:55 +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 d3a875c8-a34f-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 13:47:52 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so309797866b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:47:52 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08617esm177517666b.182.2024.11.15.04.47.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 04:47: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: d3a875c8-a34f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzYTg3NWM4LWEzNGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc0ODcyLjIxNjExNCwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731674870; x=1732279670; 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=fb2F3eq0F3Y0oXgz+Msta7iUhtnpQIl83uC+FFkcYuQ=;
        b=hypkJ5ZO6j1w0rmcZkD+dPOlewJDRem0ZbnC6Ljba5RFYC7VGIf3/4vgyHgAoLbMrN
         slVez7PztgcOZFEmFeP8Wd8IBeKSQKFQcY92E7gpAwcFMt2u9eqVAwN/z39I98BoYs/9
         5IiP1UhzPkKgMwysghjiQNZcSBU3Hmd4looo8jRRckfDc5ih7rffVbDo43rxM+nrXLzt
         /uGQFdaR120zykzfRaYsM05R7Wy3ViutM6va9hIicHMavqjIEBWIIs7FD4rlevN/fDfN
         coYpLv9DbOkN/W4w3lZKaXt0/N8NpF/3s279ebMPKuojY1D73zyDtd8d7w0r47bZmhtL
         rzaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731674870; x=1732279670;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=fb2F3eq0F3Y0oXgz+Msta7iUhtnpQIl83uC+FFkcYuQ=;
        b=KJoJ1Dnw00ki2NmOXPKwC1Hd66qKC7fCN8jDS0B4CmeBxBtAIjth2dtOfZpOxla8Cz
         ksvbiSaebGkst5nq10MEGRn4lw/CS3JjRkQL3nm4EgkHdLTfhihzFpeGf4WzlpytaJei
         acywoJW1unBs3tSHGDPvjshLbAH+Xp2ssFQCLd7lEKkV6AzMnPvwlr4QZHgrUn8ZFFDY
         zP3xYiwsPgZHNDT32FKTeHzvXas69PiVkB6Qu00KCbWI15q9F6+Sw5C0LcduNqIPTqt6
         nUEAJvzRaz9hwx9X2cYdgjjgI8HQjIMiJDYAvo2CDOOMk6nB0dxqsPiOR9NBivOUqsPB
         hP1Q==
X-Gm-Message-State: AOJu0YyqH2Uf2H6HM+cfQ372wfFE00aS9biqvmJha9C5ieCHN4Dqssii
	Lv+xb7/+Sj7dljcEl0br6PAfNQKOBBpKgN6vK3nrWqfNPQsemtukcRdWxg==
X-Google-Smtp-Source: AGHT+IGTNUjDV0uFSCtDPMhxxNOznjd/eCWq2DbSvp/rF4qUn8WQx20dB75Ac0hrC8AgeMlENLKlSQ==
X-Received: by 2002:a17:907:608a:b0:a9e:c947:8c5e with SMTP id a640c23a62f3a-aa483552958mr214567866b.57.1731674870229;
        Fri, 15 Nov 2024 04:47: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 3/3] xen/riscv: finalize boot allocator and transition to boot state
Date: Fri, 15 Nov 2024 13:47:44 +0100
Message-ID: <fdcd7c181cec2779a19b65e7460f6ba49fd9c4f9.1731672668.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1731672668.git.oleksii.kurochko@gmail.com>
References: <cover.1731672668.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a call to end_boot_allocator() in start_xen() to finalize the
boot memory allocator, moving free pages to the domain sub-allocator.

After initializing the memory subsystem, update `system_state` from
`SYS_STATE_early_boot` to `SYS_STATE_boot`, signifying the end of the
early boot phase.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V6:
 - Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/setup.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 3652cb056d..9680332fee 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -65,6 +65,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     vm_init();
 
+    end_boot_allocator();
+
+    /*
+     * The memory subsystem has been initialized, we can now switch from
+     * early_boot -> boot.
+     */
+    system_state = SYS_STATE_boot;
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 12:54:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 12:54:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837531.1253465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBvqd-000102-9M; Fri, 15 Nov 2024 12:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837531.1253465; Fri, 15 Nov 2024 12: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 1tBvqd-0000zv-6H; Fri, 15 Nov 2024 12:54:51 +0000
Received: by outflank-mailman (input) for mailman id 837531;
 Fri, 15 Nov 2024 12: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=TwMO=SK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tBvkS-0004n9-8H
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 12:48:28 +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 e7567e61-a34f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 13:48:25 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso121007966b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 04:48:25 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0869b2sm175643066b.193.2024.11.15.04.48.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 04:48: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: e7567e61-a34f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU3NTY3ZTYxLWEzNGYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjc0OTA1LjI0MTA2Miwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731674904; x=1732279704; 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=K2GGhd2OFWQt4+w4+T+/58jogJx8wVa2XuhW00Pc8Bo=;
        b=labNonES72xujfkG6sRSNI23kS9r37f3DKf+0SoA2oY/t3ehZob4wAgY9goAoG3eU+
         Bc0HMZPbZLh/TeGm4LAhzQxMWi2tnkmSaZQ6mJZpxBC6V6c3DLDRMKI/ezniO7SDu1fi
         4/9dP8VcaHPGjFCVGNevWjgzU5vMp1wtPDCeE8mXmDFxGoysb4PhSQxy0yTr/7suFAcf
         oCv/fi0yTlFAIgFouhC/vkkY4630wUyK7hysYDIW+H0IU+UNJvRTWE8mavSh/W875sgQ
         XyLR0um3iW1JqEw2Ufp6B/r3bDJTNQfM8kGZB6M56/CITlHhTdGIyvSgksTScWSFoS/5
         zRGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731674904; x=1732279704;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=K2GGhd2OFWQt4+w4+T+/58jogJx8wVa2XuhW00Pc8Bo=;
        b=nXjv7sr8z8f6f8poX8PkwMocfHrMGiJ8mS1mBu08gyO6Q4CVcMVyME9kcsGIbE5oAo
         S2NdAV8Nk5lUhceqvv2IH5vj9z6iWha7tU+OkRUD0NCab9jKhH3mwegTlxuTdtxO6xo/
         5Si7snCOawS2FKo6wHJeTzMpsnGX8kHicwRoOlGqeJnp2mNXwEV8NFZ0FJZng4MCwXXw
         JM0/NOQAJ1igWOvj7J2gD+/AfZyFeqMPGhzVZXEUB67DA1DMFosxktfgPFkWz2oimyo2
         BU0EFGPhMMa0dUeOX6vo4LmlhXXPAQf9ObvS2ogcsBji6ODytakyRazyzDoz4YIO4IJY
         rYYw==
X-Gm-Message-State: AOJu0Yxqos+kB+RPXwdQxBbhmRIOV8i2LOUe5X33iW81fYFegzMVun6M
	Z+PViRGkznS0So13khX0lUBvTQgUS4ZdVe4YuZtm0xoqk1bDIFOmIHB5uw==
X-Google-Smtp-Source: AGHT+IHMOx8I/KQkX8Axf4N8KW22soTojk1zS8opLSv4wEq2EXSDtfclZJZrO2k0Yx3gEyZS/hPfRQ==
X-Received: by 2002:a17:907:d29:b0:a99:fb56:39cc with SMTP id a640c23a62f3a-aa48350996emr190429966b.38.1731674904000;
        Fri, 15 Nov 2024 04:48:24 -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>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [PATCH v3] drivers/char: rename arm-uart.c to uart-init.c
Date: Fri, 15 Nov 2024 13:48:20 +0100
Message-ID: <b2eed7fed17c9e9a3a9414e6d97360a7deeb2acb.1731671392.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rename the file containing uart_init() to enable reuse across other
architectures that utilize device trees or SPCR tables to locate UART
information.
After locating UART data, {acpi}_device_init() is called to initialize
the UART.

arm_uart_init() is renamed to uart_init() to be reused by other
architectures.

A new configuration option, CONFIG_UART_INIT, is introduced, currently
available only for Arm. Enabling CONFIG_UART_INIT on additional
architectures will require additional functionality, such as device tree
mapping and unflattening, etc.

The MAINTAINERS file is updated to alphabetically sort files in the
"ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE" section following
the renaming of arm-uart.c.

Add `select UART_INIT` for CONFIG_ARM to be sure that randconfig won't
disable UART_INIT.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - Drop blank line in xen/drivers/char/Kconfig.
 - Rebase on top of the latest staging.
---
Changes in v2:
 - Rename arm-uart.c to uart-init.c instead of moving only dt_uart_init() to
   separate file.
 - Introduce new CONFIG_UART_INIT.
 - Rename arm_uart_init() to uart_init().
 - Add 'select UART_INIT' for CONFIG_ARM to be sure that randconfig won't
   disable UART_INIT.
 - Update the commit message.
---
 MAINTAINERS                  |   2 +-
 xen/arch/arm/Kconfig         |   1 +
 xen/arch/arm/setup.c         |   2 +-
 xen/drivers/char/Kconfig     |  10 +++
 xen/drivers/char/Makefile    |   2 +-
 xen/drivers/char/arm-uart.c  | 145 -----------------------------------
 xen/drivers/char/uart-init.c | 145 +++++++++++++++++++++++++++++++++++
 xen/include/xen/serial.h     |   2 +-
 8 files changed, 160 insertions(+), 149 deletions(-)
 delete mode 100644 xen/drivers/char/arm-uart.c
 create mode 100644 xen/drivers/char/uart-init.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 17fc5f9eec..a237080074 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -245,7 +245,6 @@ S:	Supported
 L:	xen-devel@lists.xenproject.org
 F:	docs/misc/arm/
 F:	xen/arch/arm/
-F:	xen/drivers/char/arm-uart.c
 F:	xen/drivers/char/cadence-uart.c
 F:	xen/drivers/char/exynos4210-uart.c
 F:	xen/drivers/char/imx-lpuart.c
@@ -254,6 +253,7 @@ F:	xen/drivers/char/mvebu-uart.c
 F:	xen/drivers/char/omap-uart.c
 F:	xen/drivers/char/pl011.c
 F:	xen/drivers/char/scif-uart.c
+F:	xen/drivers/char/uart-init.c
 F:	xen/drivers/passthrough/arm/
 F:	xen/include/public/arch-arm/
 F:	xen/include/public/arch-arm.h
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..e068497361 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -17,6 +17,7 @@ config ARM
 	select HAS_PASSTHROUGH
 	select HAS_UBSAN
 	select IOMMU_FORCE_PT_SHARE
+	select UART_INIT
 
 config ARCH_DEFCONFIG
 	string
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca..2e27af4560 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -361,7 +361,7 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
 
     gic_preinit();
 
-    arm_uart_init();
+    uart_init();
     console_init_preirq();
     console_init_ring();
 
diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index e175d07c02..49a06a7859 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -93,6 +93,16 @@ config SERIAL_TX_BUFSIZE
 
 	  Default value is 32768 (32KiB).
 
+config UART_INIT
+	bool "UART initialization for DT and ACPI"
+	depends on ARM
+	default y
+	help
+	  Provides a generic method for locating UART device tree node when
+	  device tree is used, or for finding UART information in SPCR
+	  table when using ACPI. Once UART information is located,
+	  {acpi}_device_init() is called for UART-specific initialization.
+
 config XHCI
 	bool "XHCI DbC UART driver"
 	depends on X86
diff --git a/xen/drivers/char/Makefile b/xen/drivers/char/Makefile
index d3b987da1d..74dcde7e57 100644
--- a/xen/drivers/char/Makefile
+++ b/xen/drivers/char/Makefile
@@ -11,7 +11,7 @@ obj-$(CONFIG_HAS_EHCI) += ehci-dbgp.o
 obj-$(CONFIG_XHCI) += xhci-dbc.o
 obj-$(CONFIG_HAS_IMX_LPUART) += imx-lpuart.o
 obj-$(CONFIG_HAS_LINFLEX) += linflex-uart.o
-obj-$(CONFIG_ARM) += arm-uart.o
+obj-$(CONFIG_UART_INIT) += uart-init.o
 obj-y += serial.o
 obj-$(CONFIG_XEN_GUEST) += xen_pv_console.o
 obj-$(CONFIG_PV_SHIM) += consoled.o
diff --git a/xen/drivers/char/arm-uart.c b/xen/drivers/char/arm-uart.c
deleted file mode 100644
index 91f13a4136..0000000000
--- a/xen/drivers/char/arm-uart.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * xen/drivers/char/arm-uart.c
- *
- * Generic uart retrieved via the device tree or ACPI
- *
- * Julien Grall <julien.grall@linaro.org>
- * Copyright (c) 2013 Linaro Limited.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <asm/device.h>
-
-#include <xen/console.h>
-#include <xen/device_tree.h>
-#include <xen/param.h>
-#include <xen/serial.h>
-#include <xen/errno.h>
-#include <xen/acpi.h>
-
-/*
- * Configure UART port with a string:
- * path:options
- *
- * @path: full path used in the device tree for the UART. If the path
- * doesn't start with '/', we assuming that it's an alias.
- * @options: UART speficic options (see in each UART driver)
- */
-static char __initdata opt_dtuart[256] = "";
-string_param("dtuart", opt_dtuart);
-
-static void __init dt_uart_init(void)
-{
-    struct dt_device_node *dev;
-    int ret;
-    const char *devpath = opt_dtuart;
-    const char *options;
-    char *split;
-
-    if ( !console_has("dtuart") )
-        return; /* Not for us */
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
-
-        if ( chosen )
-        {
-            const char *stdout;
-
-            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
-            if ( ret >= 0 )
-            {
-                printk("Taking dtuart configuration from /chosen/stdout-path\n");
-                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
-                     >= sizeof(opt_dtuart) )
-                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
-            }
-            else if ( ret != -EINVAL /* Not present */ )
-                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
-        }
-    }
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        printk("No dtuart path configured\n");
-        return;
-    }
-
-    split = strchr(opt_dtuart, ':');
-    if ( split )
-    {
-        split[0] = '\0';
-        options = split + 1;
-    }
-    else
-        options = "";
-
-    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
-    if ( *devpath == '/' )
-        dev = dt_find_node_by_path(devpath);
-    else
-        dev = dt_find_node_by_alias(devpath);
-
-    if ( !dev )
-    {
-        printk("Unable to find device \"%s\"\n", devpath);
-        return;
-    }
-
-    ret = device_init(dev, DEVICE_SERIAL, options);
-
-    if ( ret )
-        printk("Unable to initialize dtuart: %d\n", ret);
-}
-
-#ifdef CONFIG_ACPI
-static void __init acpi_uart_init(void)
-{
-    struct acpi_table_spcr *spcr = NULL;
-    int ret;
-
-    acpi_get_table(ACPI_SIG_SPCR, 0, (struct acpi_table_header **)&spcr);
-
-    if ( spcr == NULL )
-    {
-        printk("Unable to get spcr table\n");
-    }
-    else
-    {
-        ret = acpi_device_init(DEVICE_SERIAL, NULL, spcr->interface_type);
-
-        if ( ret )
-            printk("Unable to initialize acpi uart: %d\n", ret);
-    }
-}
-#else
-static void __init acpi_uart_init(void) { }
-#endif
-
-void __init arm_uart_init(void)
-{
-    if ( acpi_disabled )
-        dt_uart_init();
-    else
-        acpi_uart_init();
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/drivers/char/uart-init.c b/xen/drivers/char/uart-init.c
new file mode 100644
index 0000000000..7f3b385308
--- /dev/null
+++ b/xen/drivers/char/uart-init.c
@@ -0,0 +1,145 @@
+/*
+ * xen/drivers/char/arm-uart.c
+ *
+ * Generic uart retrieved via the device tree or ACPI
+ *
+ * Julien Grall <julien.grall@linaro.org>
+ * Copyright (c) 2013 Linaro Limited.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <asm/device.h>
+
+#include <xen/console.h>
+#include <xen/device_tree.h>
+#include <xen/param.h>
+#include <xen/serial.h>
+#include <xen/errno.h>
+#include <xen/acpi.h>
+
+/*
+ * Configure UART port with a string:
+ * path:options
+ *
+ * @path: full path used in the device tree for the UART. If the path
+ * doesn't start with '/', we assuming that it's an alias.
+ * @options: UART speficic options (see in each UART driver)
+ */
+static char __initdata opt_dtuart[256] = "";
+string_param("dtuart", opt_dtuart);
+
+static void __init dt_uart_init(void)
+{
+    struct dt_device_node *dev;
+    int ret;
+    const char *devpath = opt_dtuart;
+    const char *options;
+    char *split;
+
+    if ( !console_has("dtuart") )
+        return; /* Not for us */
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
+
+        if ( chosen )
+        {
+            const char *stdout;
+
+            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
+            if ( ret >= 0 )
+            {
+                printk("Taking dtuart configuration from /chosen/stdout-path\n");
+                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
+                     >= sizeof(opt_dtuart) )
+                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
+            }
+            else if ( ret != -EINVAL /* Not present */ )
+                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
+        }
+    }
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        printk("No dtuart path configured\n");
+        return;
+    }
+
+    split = strchr(opt_dtuart, ':');
+    if ( split )
+    {
+        split[0] = '\0';
+        options = split + 1;
+    }
+    else
+        options = "";
+
+    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
+    if ( *devpath == '/' )
+        dev = dt_find_node_by_path(devpath);
+    else
+        dev = dt_find_node_by_alias(devpath);
+
+    if ( !dev )
+    {
+        printk("Unable to find device \"%s\"\n", devpath);
+        return;
+    }
+
+    ret = device_init(dev, DEVICE_SERIAL, options);
+
+    if ( ret )
+        printk("Unable to initialize dtuart: %d\n", ret);
+}
+
+#ifdef CONFIG_ACPI
+static void __init acpi_uart_init(void)
+{
+    struct acpi_table_spcr *spcr = NULL;
+    int ret;
+
+    acpi_get_table(ACPI_SIG_SPCR, 0, (struct acpi_table_header **)&spcr);
+
+    if ( spcr == NULL )
+    {
+        printk("Unable to get spcr table\n");
+    }
+    else
+    {
+        ret = acpi_device_init(DEVICE_SERIAL, NULL, spcr->interface_type);
+
+        if ( ret )
+            printk("Unable to initialize acpi uart: %d\n", ret);
+    }
+}
+#else
+static void __init acpi_uart_init(void) { }
+#endif
+
+void __init uart_init(void)
+{
+    if ( acpi_disabled )
+        dt_uart_init();
+    else
+        acpi_uart_init();
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 3d21207a3d..63a82b032d 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -166,7 +166,7 @@ void xhci_dbc_uart_init(void);
 static void inline xhci_dbc_uart_init(void) {}
 #endif
 
-void arm_uart_init(void);
+void uart_init(void);
 
 struct physdev_dbgp_op;
 int dbgp_op(const struct physdev_dbgp_op *op);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:12:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837559.1253475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBw7e-0006vK-Lk; Fri, 15 Nov 2024 13:12:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837559.1253475; Fri, 15 Nov 2024 13:12: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 1tBw7e-0006vD-Ic; Fri, 15 Nov 2024 13:12:26 +0000
Received: by outflank-mailman (input) for mailman id 837559;
 Fri, 15 Nov 2024 13:12: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBw7d-0006v7-NS
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:12:25 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3caa92d4-a353-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:12:18 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731676331374533.8444273076053;
 Fri, 15 Nov 2024 05:12: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: 3caa92d4-a353-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNjYWE5MmQ0LWEzNTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc2MzM4LjU1MzA0OSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731676333; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=GURaKX9TbQCxXCz4zQA1JpYXkv/rhXUBIarIR4mx6aK+Ohikddbq42ItlesIGmg35SNbFxnpl6EFJAlg8NiXLfYlhdEsf7miNCZyEElPNdhNFAGzpHwJ/TywaJE3YKp7L+QBKBcaHJly131VxEMNaEZIumCzksCEYcyVqGCWAE4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731676333; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=6eD0GANhMW65OxnZGKtnn1yU3IMtPRuxspq20ihsKkI=; 
	b=leEfTHnIm7p0FaJUVIGc7vsJg+32mzjYdt0RRXXTcLFVMsNabWT9zDm5I2pbZi9M6J8rVfl/sO68huSn8YgYJNG4sVWHrfqBxIzrsaC/N3RC5MT1Ky1/4xBnhZOEmIkOvxlWVhSRMRdkw1HavH7MAsr8sEjJhO0GkOn7yuezmRk=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731676333;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=6eD0GANhMW65OxnZGKtnn1yU3IMtPRuxspq20ihsKkI=;
	b=Wzn1UrBAJooIXeRKcXTRKuV7q9wHp+UY5xReWzhJAWkeGefj3Tv4FHqpj2mUbcGN
	4ZeX4doUmfwHCVgCs6sxYIj2z+kahi4jGQM6kn1WSg9F/8W35P0y9j7UFrm0dg4M505
	xd3uofNuh0eHJagb4kkt86AQuxpHLk/4yXz3KcWs=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@amd.com
Subject: [PATCH v9 0/6] Boot modules for Hyperlaunch
Date: Fri, 15 Nov 2024 08:11:58 -0500
Message-Id: <20241115131204.32135-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The Boot Modules for Hyperlaunch series is an effort to split out preliminary
changes necessary for the introduction of the Hyperlaunch domain builder
logic. These preliminary changes revolve around introducing the struct
boot_module and struct boot_domain structures. This includes converting the
dom0 construction path to use these structures. These abstractions lay the
groundwork to transform and extend the dom0 construction logic into a limited,
but general domain builder.

The splitting of Hyperlaunch into a set of series are twofold, to reduce the
effort in reviewing a much larger series, and to reduce the effort in handling
the knock-on effects to the construction logic from requested review changes.

Much thanks to AMD for supporting this work.

Lastly it should be noted that this series builds/relies upon Andy Cooper's
"x86/ucode: Fix module-handling use-after-free's" series.

Documentation on Hyperlaunch:
https://wiki.xenproject.org/wiki/Hyperlaunch

Original Hyperlaunch v1 patch series:
https://lists.xenproject.org/archives/html/xen-devel/2022-07/msg00345.html

V/r,
Daniel P. Smith

Changes since v8:
- moved commit 'convert domain construction to use boot info' forward
- reworked the remove module commit
- addressed a few code style comments

Changes since v7:
- patches re-organized with some collapsing into others

Changes since v6:
- Dropped patches that were merged from v5
- patch 8 title and commit message rewritten
- boot module interator patch merged with xsm patch, its first use
- incorporated review requests
- made additional style optimizations as a result of review requests

Changes since v5:
- switched to per patch change logs
- incorporated review requests

Changes since v4:
- added requested inline code comments
- moved instance of struct boot_info to unit level and extern'ed
- array of struct boot_module moved into struct boot_info
- renamed function to multiboot_fill_bootinfo, now returns *struct boot_info
- multiboot_fill_bootinfo changed to take multiboot_info_t addr as param
- added missing guard that checked there were multiboot1/2 modules passed
- renmaed struct elements per the review
- fixed errant commit messages per the review
- corrected coding style per review
- attempted to repalce all open codings of page/addr translations touched 
- unified use of `bi` as var name for pointer ref to struct boot_info
- when appropriate, ensure variables where typed, eg size_t, paddr_t, etc.
- dropped all uses of "a = b = c"

Changes since v3:
- reduced scope to x86 only
- broke changes into a smaller chunks with a linear progression
- concerns about deconflicting with Arm deferred
- conversion from mb1 to boot modules no longer attempted at entry points
- the temporary conversion function is now the permenant means to convert
- incorporated suggestion from Andy Cooper for handling bootstrap_map

Changes since v2:
- combined v2 patches 7 and 8 for common review
- rebased the v2 series onto the current tip of staging (sorry)
- fixed the placement of the patch changelogs
- provided the changes description in the cover letter

Changes since v1:
- the v2 and v3 series implement functionality from v1 patches 2-4
    - v2 series objective is to enable efficient patch review in support
      of merging the functionality into the hypervisor. It implements a
      subset of the v1 series, incorporating changes from community
      feedback.
- the bootstrap map is made accessible early in the v2 series via both
  multiboot and boot module arguments until later in the series where
  multiboot use is retired. This allows for incremental conversion across
  several patches from multiboot to boot modules.
- the 32-bit x86 boot environment header is removed, and changes are
  made to allow the new common bootinfo headers to be used instead.
- Arm and RISC-V architecture bootinfo headers are added to ensure that
  builds on those architectures can complete correctly.
- The KConfig patch to set the maximum number of boot modules allowed
  is not included in this series, replaced with a static maximum define.

Daniel P. Smith (6):
  x86/boot: convert domain construction to use boot info
  x86/boot: introduce module release
  x86/boot: add start and size fields to struct boot_module
  x86/boot: introduce boot domain
  x86/boot: introduce domid field to struct boot_domain
  x86/boot: add cmdline to struct boot_domain

 xen/arch/x86/cpu/microcode/core.c     |   8 +-
 xen/arch/x86/dom0_build.c             |  10 +-
 xen/arch/x86/hvm/dom0_build.c         |  41 +++---
 xen/arch/x86/include/asm/bootdomain.h |  35 +++++
 xen/arch/x86/include/asm/bootinfo.h   |  13 +-
 xen/arch/x86/include/asm/dom0_build.h |  13 +-
 xen/arch/x86/include/asm/setup.h      |  13 +-
 xen/arch/x86/pv/dom0_build.c          |  80 +++++------
 xen/arch/x86/setup.c                  | 188 +++++++++++++++-----------
 xen/xsm/xsm_policy.c                  |   2 +-
 10 files changed, 239 insertions(+), 164 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/bootdomain.h

-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:12:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837561.1253485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBw7n-0007Eh-0V; Fri, 15 Nov 2024 13:12:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837561.1253485; Fri, 15 Nov 2024 13:12: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 1tBw7m-0007Ea-T8; Fri, 15 Nov 2024 13:12:34 +0000
Received: by outflank-mailman (input) for mailman id 837561;
 Fri, 15 Nov 2024 13:12: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBw7l-0006v7-NS
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:12:33 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4383f925-a353-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:12:29 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731676332910286.5289440972075;
 Fri, 15 Nov 2024 05:12: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: 4383f925-a353-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQzODNmOTI1LWEzNTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc2MzQ5Ljk3NjYyMSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731676335; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=RyjrH5jZBLGfC2T3QFvh3yHy1fwVypbpkRsUzULSjDk63acIB7dEJL1xmn1vkw7NzgWooRbgDSbFgqr4f8uovAEG9sNC5v6CJmd0ZvKU/N94gFlDBgRKLMdFmBcB5/5OdYu/+LvzeGX2GYK5/GDd+MBcmScI2o/dTSWmiJMJNaU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731676335; h=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=VzSieBjkOBJnnpxsq7w+NmNX7HbgJy32WIO1NLNWBIo=; 
	b=IgDPo+09caTali1H0gN+XUMRmEjbhQdiNs+upve7vJYIzkEOxr5a970t4RkHauY6fyhTpsaicSm3nwiI+Hs/Yu1aMNavU/xZg+COaI8dcV7NXZQ+O0d+zd+GIFu+/VuJ1SKLcUHGOW6YcafzHtEoURkHSQZ3OpL7BqDs2a4yCy8=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731676335;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=VzSieBjkOBJnnpxsq7w+NmNX7HbgJy32WIO1NLNWBIo=;
	b=BhRdaI//kbKABUP7pIEyZ3Hfcn8Y1yHAvbMDUZ++amLvxVi8pR0SwL7ns8+3c6Nl
	gSqdK0OaWHQwGH6ykjM4R9Ae6muF3aqGjzhBJOSlLqmxEo0dypvW9404SAv3SiaB24y
	u6MeS+szM+2CPuOwEYb5zdN61xFQy0zAlY3c9CHc=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 v9 1/6] x86/boot: convert domain construction to use boot info
Date: Fri, 15 Nov 2024 08:11:59 -0500
Message-Id: <20241115131204.32135-2-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241115131204.32135-1-dpsmith@apertussolutions.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

With all the components used to construct dom0 encapsulated in struct boot_info
and struct boot_module, it is no longer necessary to pass all them as
parameters down the domain construction call chain. Change the parameter list
to pass the struct boot_info instance and the struct domain reference.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v8:
- moved forward in the series

Changes since v7:
- renamed from "x86/boot: convert create_dom0 to use boot info"

Changes since v5:
- change headroom back to unsigned long
- make mod_idx unsigned int
---
 xen/arch/x86/dom0_build.c             |  8 ++--
 xen/arch/x86/hvm/dom0_build.c         | 46 ++++++++++++--------
 xen/arch/x86/include/asm/dom0_build.h | 12 ++----
 xen/arch/x86/include/asm/setup.h      |  8 ++--
 xen/arch/x86/pv/dom0_build.c          | 62 +++++++++++++++++----------
 xen/arch/x86/setup.c                  | 33 ++++++++------
 6 files changed, 95 insertions(+), 74 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 72747b92475a..e8f5bf5447bc 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -596,9 +596,7 @@ int __init dom0_setup_permissions(struct domain *d)
     return rc;
 }
 
-int __init construct_dom0(struct domain *d, const module_t *image,
-                          unsigned long image_headroom, module_t *initrd,
-                          const char *cmdline)
+int __init construct_dom0(struct boot_info *bi, struct domain *d)
 {
     int rc;
 
@@ -610,9 +608,9 @@ int __init construct_dom0(struct domain *d, const module_t *image,
     process_pending_softirqs();
 
     if ( is_hvm_domain(d) )
-        rc = dom0_construct_pvh(d, image, image_headroom, initrd, cmdline);
+        rc = dom0_construct_pvh(bi, d);
     else if ( is_pv_domain(d) )
-        rc = dom0_construct_pv(d, image, image_headroom, initrd, cmdline);
+        rc = dom0_construct_pv(bi, d);
     else
         panic("Cannot construct Dom0. No guest interface available\n");
 
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 3dd913bdb029..d1bdf1b14601 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -16,6 +16,7 @@
 
 #include <acpi/actables.h>
 
+#include <asm/bootinfo.h>
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
 #include <asm/hvm/support.h>
@@ -642,15 +643,15 @@ static bool __init check_and_adjust_load_address(
     return true;
 }
 
-static int __init pvh_load_kernel(struct domain *d, const module_t *image,
-                                  unsigned long image_headroom,
-                                  module_t *initrd, void *image_base,
-                                  const char *cmdline, paddr_t *entry,
-                                  paddr_t *start_info_addr)
+static int __init pvh_load_kernel(
+    struct domain *d, struct boot_module *image, struct boot_module *initrd,
+    paddr_t *entry, paddr_t *start_info_addr)
 {
-    void *image_start = image_base + image_headroom;
-    unsigned long image_len = image->mod_end;
-    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
+    void *image_base = bootstrap_map_bm(image);
+    void *image_start = image_base + image->headroom;
+    unsigned long image_len = image->mod->mod_end;
+    unsigned long initrd_len = initrd ? initrd->mod->mod_end : 0;
+    const char *cmdline = __va(image->cmdline_pa);
     struct elf_binary elf;
     struct elf_dom_parms parms;
     paddr_t last_addr;
@@ -725,8 +726,8 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
 
     if ( initrd != NULL )
     {
-        rc = hvm_copy_to_guest_phys(last_addr, mfn_to_virt(initrd->mod_start),
-                                    initrd_len, v);
+        rc = hvm_copy_to_guest_phys(
+            last_addr, mfn_to_virt(initrd->mod->mod_start), initrd_len, v);
         if ( rc )
         {
             printk("Unable to copy initrd to guest\n");
@@ -736,9 +737,9 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
         mod.paddr = last_addr;
         mod.size = initrd_len;
         last_addr += ROUNDUP(initrd_len, elf_64bit(&elf) ? 8 : 4);
-        if ( initrd->string )
+        if ( initrd->cmdline_pa )
         {
-            char *str = __va(initrd->string);
+            char *str = __va(initrd->cmdline_pa);
             size_t len = strlen(str) + 1;
 
             rc = hvm_copy_to_guest_phys(last_addr, str, len, v);
@@ -1300,16 +1301,26 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
     }
 }
 
-int __init dom0_construct_pvh(struct domain *d, const module_t *image,
-                              unsigned long image_headroom,
-                              module_t *initrd,
-                              const char *cmdline)
+int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
 {
     paddr_t entry, start_info;
+    struct boot_module *image;
+    struct boot_module *initrd = NULL;
+    unsigned int idx;
     int rc;
 
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
 
+    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    if ( idx >= bi->nr_modules )
+        panic("Missing kernel boot module for %pd construction\n", d);
+
+    image = &bi->mods[idx];
+
+    idx = first_boot_module_index(bi, BOOTMOD_RAMDISK);
+    if ( idx < bi->nr_modules )
+        initrd = &bi->mods[idx];
+
     if ( is_hardware_domain(d) )
     {
         /*
@@ -1347,8 +1358,7 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image,
         return rc;
     }
 
-    rc = pvh_load_kernel(d, image, image_headroom, initrd, bootstrap_map(image),
-                         cmdline, &entry, &start_info);
+    rc = pvh_load_kernel(d, image, initrd, &entry, &start_info);
     if ( rc )
     {
         printk("Failed to load Dom0 kernel\n");
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 107c1ff98367..2d67b17213dc 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -13,15 +13,9 @@ unsigned long dom0_compute_nr_pages(struct domain *d,
                                     unsigned long initrd_len);
 int dom0_setup_permissions(struct domain *d);
 
-int dom0_construct_pv(struct domain *d, const module_t *image,
-                      unsigned long image_headroom,
-                      module_t *initrd,
-                      const char *cmdline);
-
-int dom0_construct_pvh(struct domain *d, const module_t *image,
-                       unsigned long image_headroom,
-                       module_t *initrd,
-                       const char *cmdline);
+struct boot_info;
+int dom0_construct_pv(struct boot_info *bi, struct domain *d);
+int dom0_construct_pvh(struct boot_info *bi, struct domain *d);
 
 unsigned long dom0_paging_pages(const struct domain *d,
                                 unsigned long nr_pages);
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 25c15ef9140d..8a415087e9a4 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -26,11 +26,9 @@ void subarch_init_memory(void);
 
 void init_IRQ(void);
 
-int construct_dom0(
-    struct domain *d,
-    const module_t *image, unsigned long image_headroom,
-    module_t *initrd,
-    const char *cmdline);
+struct boot_info;
+int construct_dom0(struct boot_info *bi, struct domain *d);
+
 void setup_io_bitmap(struct domain *d);
 
 extern struct boot_info xen_boot_info;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index cc882bee61c3..6be3d7745fab 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -14,6 +14,7 @@
 #include <xen/softirq.h>
 #include <xen/vga.h>
 
+#include <asm/bootinfo.h>
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
 #include <asm/guest.h>
@@ -354,13 +355,10 @@ static struct page_info * __init alloc_chunk(struct domain *d,
     return page;
 }
 
-static int __init dom0_construct(struct domain *d,
-                                 const module_t *image,
-                                 unsigned long image_headroom,
-                                 module_t *initrd,
-                                 const char *cmdline)
+static int __init dom0_construct(struct boot_info *bi, struct domain *d)
 {
-    int i, rc, order, machine;
+    unsigned int i;
+    int rc, order, machine;
     bool compatible, compat;
     struct cpu_user_regs *regs;
     unsigned long pfn, mfn;
@@ -374,10 +372,13 @@ static int __init dom0_construct(struct domain *d,
     unsigned int flush_flags = 0;
     start_info_t *si;
     struct vcpu *v = d->vcpu[0];
-    void *image_base = bootstrap_map(image);
-    unsigned long image_len = image->mod_end;
-    void *image_start = image_base + image_headroom;
-    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
+    struct boot_module *image;
+    struct boot_module *initrd = NULL;
+    void *image_base;
+    unsigned long image_len;
+    void *image_start;
+    unsigned long initrd_len = 0;
+    const char *cmdline;
     l4_pgentry_t *l4tab = NULL, *l4start = NULL;
     l3_pgentry_t *l3tab = NULL, *l3start = NULL;
     l2_pgentry_t *l2tab = NULL, *l2start = NULL;
@@ -414,6 +415,23 @@ static int __init dom0_construct(struct domain *d,
 
     printk(XENLOG_INFO "*** Building a PV Dom%d ***\n", d->domain_id);
 
+    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    if ( i >= bi->nr_modules )
+        panic("Missing kernel boot module for %pd construction\n", d);
+
+    image = &bi->mods[i];
+    image_base = bootstrap_map_bm(image);
+    image_len = image->mod->mod_end;
+    image_start = image_base + image->headroom;
+    cmdline = __va(image->cmdline_pa);
+
+    i = first_boot_module_index(bi, BOOTMOD_RAMDISK);
+    if ( i < bi->nr_modules )
+    {
+        initrd = &bi->mods[i];
+        initrd_len = initrd->mod->mod_end;
+    }
+
     d->max_pages = ~0U;
 
     if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
@@ -613,7 +631,8 @@ static int __init dom0_construct(struct domain *d,
         initrd_pfn = vinitrd_start ?
                      (vinitrd_start - v_start) >> PAGE_SHIFT :
                      domain_tot_pages(d);
-        initrd_mfn = mfn = initrd->mod_start;
+        initrd_mfn = initrd->mod->mod_start;
+        mfn = initrd_mfn;
         count = PFN_UP(initrd_len);
         if ( d->arch.physaddr_bitsize &&
              ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)) )
@@ -628,12 +647,13 @@ static int __init dom0_construct(struct domain *d,
                     free_domheap_pages(page, order);
                     page += 1UL << order;
                 }
-            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod_start),
+            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod->mod_start),
                    initrd_len);
-            mpt_alloc = (paddr_t)initrd->mod_start << PAGE_SHIFT;
+            mpt_alloc = pfn_to_paddr(initrd->mod->mod_start);
             init_domheap_pages(mpt_alloc,
                                mpt_alloc + PAGE_ALIGN(initrd_len));
-            initrd->mod_start = initrd_mfn = mfn_x(page_to_mfn(page));
+            initrd_mfn = mfn_x(page_to_mfn(page));
+            initrd->mod->mod_start = initrd_mfn;
         }
         else
         {
@@ -650,7 +670,7 @@ static int __init dom0_construct(struct domain *d,
          * Either way, tell discard_initial_images() to not free it a second
          * time.
          */
-        initrd->mod_end = 0;
+        initrd->mod->mod_end = 0;
 
         iommu_memory_setup(d, "initrd", mfn_to_page(_mfn(initrd_mfn)),
                            PFN_UP(initrd_len), &flush_flags);
@@ -664,7 +684,7 @@ static int __init dom0_construct(struct domain *d,
                nr_pages - domain_tot_pages(d));
     if ( initrd )
     {
-        mpt_alloc = (paddr_t)initrd->mod_start << PAGE_SHIFT;
+        mpt_alloc = pfn_to_paddr(initrd->mod->mod_start);
         printk("\n Init. ramdisk: %"PRIpaddr"->%"PRIpaddr,
                mpt_alloc, mpt_alloc + initrd_len);
     }
@@ -892,7 +912,7 @@ static int __init dom0_construct(struct domain *d,
         if ( pfn >= initrd_pfn )
         {
             if ( pfn < initrd_pfn + PFN_UP(initrd_len) )
-                mfn = initrd->mod_start + (pfn - initrd_pfn);
+                mfn = initrd->mod->mod_start + (pfn - initrd_pfn);
             else
                 mfn -= PFN_UP(initrd_len);
         }
@@ -1060,11 +1080,7 @@ out:
     return rc;
 }
 
-int __init dom0_construct_pv(struct domain *d,
-                             const module_t *image,
-                             unsigned long image_headroom,
-                             module_t *initrd,
-                             const char *cmdline)
+int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
 {
     unsigned long cr4 = read_cr4();
     int rc;
@@ -1082,7 +1098,7 @@ int __init dom0_construct_pv(struct domain *d,
         write_cr4(cr4 & ~X86_CR4_SMAP);
     }
 
-    rc = dom0_construct(d, image, image_headroom, initrd, cmdline);
+    rc = dom0_construct(bi, d);
 
     if ( cr4 & X86_CR4_SMAP )
     {
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 4feef9f2e05a..495e90a7e132 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -950,10 +950,7 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
     return n;
 }
 
-static struct domain *__init create_dom0(const module_t *image,
-                                         unsigned long headroom,
-                                         module_t *initrd, const char *kextra,
-                                         const char *loader)
+static struct domain *__init create_dom0(struct boot_info *bi)
 {
     static char __initdata cmdline[MAX_GUEST_CMDLINE];
 
@@ -970,6 +967,14 @@ static struct domain *__init create_dom0(const module_t *image,
     };
     struct domain *d;
     domid_t domid;
+    struct boot_module *image;
+    unsigned int idx;
+
+    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    if ( idx >= bi->nr_modules )
+        panic("Missing kernel boot module for building domain\n");
+
+    image = &bi->mods[idx];
 
     if ( opt_dom0_pvh )
     {
@@ -996,14 +1001,15 @@ static struct domain *__init create_dom0(const module_t *image,
         panic("Error creating d%uv0\n", domid);
 
     /* Grab the DOM0 command line. */
-    if ( image->string || kextra )
+    if ( image->cmdline_pa || bi->kextra )
     {
-        if ( image->string )
-            safe_strcpy(cmdline, cmdline_cook(__va(image->string), loader));
+        if ( image->cmdline_pa )
+            safe_strcpy(
+                cmdline, cmdline_cook(__va(image->cmdline_pa), bi->loader));
 
-        if ( kextra )
+        if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
-            safe_strcat(cmdline, kextra);
+            safe_strcat(cmdline, bi->kextra);
 
         /* Append any extra parameters. */
         if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
@@ -1020,9 +1026,11 @@ static struct domain *__init create_dom0(const module_t *image,
             safe_strcat(cmdline, " acpi=");
             safe_strcat(cmdline, acpi_param);
         }
+
+        image->cmdline_pa = __pa(cmdline);
     }
 
-    if ( construct_dom0(d, image, headroom, initrd, cmdline) != 0 )
+    if ( construct_dom0(bi, d) != 0 )
         panic("Could not construct domain 0\n");
 
     return d;
@@ -2114,10 +2122,7 @@ void asmlinkage __init noreturn __start_xen(void)
      * We're going to setup domain0 using the module(s) that we stashed safely
      * above our heap. The second module, if present, is an initrd ramdisk.
      */
-    dom0 = create_dom0(bi->mods[0].mod, bi->mods[0].headroom,
-                       initrdidx < bi->nr_modules ? bi->mods[initrdidx].mod
-                                                  : NULL,
-                       bi->kextra, bi->loader);
+    dom0 = create_dom0(bi);
     if ( !dom0 )
         panic("Could not set up DOM0 guest OS\n");
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:12:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:12:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837562.1253496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBw7x-0007fz-8e; Fri, 15 Nov 2024 13:12:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837562.1253496; Fri, 15 Nov 2024 13:12: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 1tBw7x-0007fq-3a; Fri, 15 Nov 2024 13:12:45 +0000
Received: by outflank-mailman (input) for mailman id 837562;
 Fri, 15 Nov 2024 13:12: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBw7v-0006v7-KE
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:12:43 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 499c6c43-a353-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:12:40 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731676334302852.445542045448;
 Fri, 15 Nov 2024 05:12: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: 499c6c43-a353-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ5OWM2YzQzLWEzNTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc2MzYwLjIwMjQ0OSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731676336; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Qhc6IKuwaOSg2pIRjpS1E1UmTqSVt/2essstn4HTMbfY9y0KISmZYfvHpL+SLdc76ox3+cG5LWbf4Qmy6i5xFOB2FGeGjxLHb9EVrFmW230ZIgWaYjIvq/DE9XHkzKCfJuwKMjV6AQ4jnavJvhKK234OmCAQHqphma6mdTT13fI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731676336; h=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=45XOFNojx3tCAZbzmL3SALvSEtU+6rTfX9Oyt2Zgwf4=; 
	b=eG2GZPXJeBkITiNIToeUknDBlEI6G0LdtdR0uOso2puOzFtqjX4ERY0DGwvE3MNE9CAjJaD/RVO6p1uL3GwlWg7MXvuCbegLzElmAxoJGZ1cz/v3WZXo3BNS92rlSCrSzqup5YVzPMtEnt2iGgg2CyHoqFSIC+q69Us5vRUEklY=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731676336;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=45XOFNojx3tCAZbzmL3SALvSEtU+6rTfX9Oyt2Zgwf4=;
	b=PARDKyLBPsDDZZcOje/5GaOPZRI4ytZMeaIfQCktIYcO4hVfotNVUJvk3GZEEZjk
	KxLQQx8adxGymV7bY4Y6zXFvPjchLcYFuSLyBx3tAVY9Qn4Sg9b/9JVZ9EUOaMuNP1E
	BChVZEUp+VEM9Re9AIobHIojMMzEGoW9CMy1TKOc=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 v9 2/6] x86/boot: introduce module release
Date: Fri, 15 Nov 2024 08:12:00 -0500
Message-Id: <20241115131204.32135-3-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241115131204.32135-1-dpsmith@apertussolutions.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

A precarious approach was used to release the pages used to hold a boot module.
The precariousness stemmed from the fact that in the case of PV dom0, the
initrd module pages may be either mapped or copied into the dom0 address space.
In the former case, the PV dom0 construction code will set the size of the
module to zero, relying on discard_initial_images() to skip any modules with a
size of zero. In the latter case, the pages are freed by the PV dom0
construction code. This freeing of pages is done so that in either case, the
initrd variable can be reused for tracking the initrd location in dom0 memory
through the remaining dom0 construction code.

To encapsulate the logical action of releasing a boot module, the function
release_boot_module() is introduced along with the `released` flag added to
boot module. The boot module flag `released` allows the tracking of when a boot
module has been released by release_boot_module().

As part of adopting release_boot_module() the function discard_initial_images()
is renamed to free_boot_modules(), a name that better reflects the functions
actions.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v8:
- completely reworked the commit
  - switch backed to a releasing all but pv initrd approach
  - renamed discard_initial_images to free_boot_modules
---
 xen/arch/x86/hvm/dom0_build.c       |  2 +-
 xen/arch/x86/include/asm/bootinfo.h |  2 ++
 xen/arch/x86/include/asm/setup.h    |  4 +++-
 xen/arch/x86/pv/dom0_build.c        | 27 +++++++++++++--------------
 xen/arch/x86/setup.c                | 27 +++++++++++++++------------
 5 files changed, 34 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index d1bdf1b14601..d1410e1a02b0 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -755,7 +755,7 @@ static int __init pvh_load_kernel(
     }
 
     /* Free temporary buffers. */
-    discard_initial_images();
+    free_boot_modules();
 
     if ( cmdline != NULL )
     {
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index b9c94b370d57..f76876386763 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -34,8 +34,10 @@ struct boot_module {
     /*
      * Module State Flags:
      *   relocated: indicates module has been relocated in memory.
+     *   released:  indicates module's pages have been freed.
      */
     bool relocated:1;
+    bool released:1;
 
     /*
      * A boot module may need decompressing by Xen.  Headroom is an estimate of
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 8a415087e9a4..4ad493637892 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -34,13 +34,15 @@ void setup_io_bitmap(struct domain *d);
 extern struct boot_info xen_boot_info;
 
 unsigned long initial_images_nrpages(nodeid_t node);
-void discard_initial_images(void);
+void free_boot_modules(void);
 
 struct boot_module;
 void *bootstrap_map_bm(const struct boot_module *bm);
 void *bootstrap_map(const module_t *mod);
 void bootstrap_unmap(void);
 
+void release_boot_module(struct boot_module *bm);
+
 struct rangeset;
 int remove_xen_ranges(struct rangeset *r);
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 6be3d7745fab..2580162f3df4 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -649,9 +649,12 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
                 }
             memcpy(page_to_virt(page), mfn_to_virt(initrd->mod->mod_start),
                    initrd_len);
-            mpt_alloc = pfn_to_paddr(initrd->mod->mod_start);
-            init_domheap_pages(mpt_alloc,
-                               mpt_alloc + PAGE_ALIGN(initrd_len));
+            /*
+             * The initrd was copied but the initrd variable is reused in the
+             * calculations below. As to not leak the memory used for the
+             * module free at this time.
+             */
+            release_boot_module(initrd);
             initrd_mfn = mfn_x(page_to_mfn(page));
             initrd->mod->mod_start = initrd_mfn;
         }
@@ -660,18 +663,14 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
             while ( count-- )
                 if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
                     BUG();
+            /*
+             * We have mapped the initrd directly into dom0, and assigned the
+             * pages. Tell the boot_module handling that we've freed it, so the
+             * memory is left alone.
+             */
+            initrd->released = true;
         }
 
-        /*
-         * We have either:
-         * - Mapped the initrd directly into dom0, or
-         * - Copied it and freed the module.
-         *
-         * Either way, tell discard_initial_images() to not free it a second
-         * time.
-         */
-        initrd->mod->mod_end = 0;
-
         iommu_memory_setup(d, "initrd", mfn_to_page(_mfn(initrd_mfn)),
                            PFN_UP(initrd_len), &flush_flags);
     }
@@ -875,7 +874,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
     }
 
     /* Free temporary buffers. */
-    discard_initial_images();
+    free_boot_modules();
 
     /* Set up start info area. */
     si = (start_info_t *)vstartinfo_start;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 495e90a7e132..0bda1326a485 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -346,27 +346,30 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
     return nr;
 }
 
-void __init discard_initial_images(void) /* a.k.a. Free boot modules */
+void __init release_boot_module(struct boot_module *bm)
+{
+    uint64_t start = pfn_to_paddr(bm->mod->mod_start);
+    uint64_t size  = bm->mod->mod_end;
+
+    ASSERT(!bm->released);
+
+    init_domheap_pages(start, start + PAGE_ALIGN(size));
+
+    bm->released = true;
+}
+
+void __init free_boot_modules(void)
 {
     struct boot_info *bi = &xen_boot_info;
     unsigned int i;
 
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-        uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
-        uint64_t size  = bi->mods[i].mod->mod_end;
-
-        /*
-         * Sometimes the initrd is mapped, rather than copied, into dom0.
-         * Size being 0 is how we're instructed to leave the module alone.
-         */
-        if ( size == 0 )
+        if ( bi->mods[i].released )
             continue;
 
-        init_domheap_pages(start, start + PAGE_ALIGN(size));
+        release_boot_module(&bi->mods[i]);
     }
-
-    bi->nr_modules = 0;
 }
 
 static void __init init_idle_domain(void)
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:12:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:12:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837570.1253505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBw89-0008EK-Iq; Fri, 15 Nov 2024 13:12:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837570.1253505; Fri, 15 Nov 2024 13:12: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 1tBw89-0008ED-G8; Fri, 15 Nov 2024 13:12:57 +0000
Received: by outflank-mailman (input) for mailman id 837570;
 Fri, 15 Nov 2024 13:12: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBw87-0006v7-CX
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:12:55 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5044f3bd-a353-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:12:51 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731676335598530.5770613675592;
 Fri, 15 Nov 2024 05:12: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: 5044f3bd-a353-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjUwNDRmM2JkLWEzNTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc2MzcxLjM4NzQyOCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731676337; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=YK4fThjfWMkx7UnS7pUTpgrBac5kNQwQjNGa2TF1XEjZ+nApX7OYRt9eiesEiMLHj5N83yJe4uQ4RoK0bAJpWe3i+UGTcqv9zU8bimccWgI2dyeI3Ls1HfN9+njWiZLfseMMdxl0723KgonHV7yXnjZe+o0UVZ1uQPHuMIc+9ng=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731676337; h=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=lC7UJWnbMWc4RpQfKr8UGN6FjxqhttPxoGHw6Bmoiok=; 
	b=fb0a3fpq/S9A5mkGf0IbAbisZfTPWEy692iO8T2NV9tHSU/lciibLl7AwZD5rGoMrNtqZB1glAB3cdeexdMiJAuoP5wznGERktEp17pAJhx2Z8jQZI/uLN22CQELXbkxKgmCH1YHUXToGRtyQ/HIh+yJjPM1FRSEWWNxoeW8a70=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731676337;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=lC7UJWnbMWc4RpQfKr8UGN6FjxqhttPxoGHw6Bmoiok=;
	b=QMX62pqmtCSqfZm7BiRT9rNSaXG2tKNRwRpTrdPGbcImjUnl6bhWYfs/tDayC4la
	yjrMYxDTg5JRvnh8r7GRZfaNO+WM4rSg5ltmb2KkUiflVVxCe9I/D02wzeUNMR2XiZF
	Cjqv2wVFpU9dVHokHRk4IF4PkhkMGu4sSH2hk2ek=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 v9 3/6] x86/boot: add start and size fields to struct boot_module
Date: Fri, 15 Nov 2024 08:12:01 -0500
Message-Id: <20241115131204.32135-4-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241115131204.32135-1-dpsmith@apertussolutions.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the start and size fields to struct boot_module and
assigns their value during boot_info construction. All uses of module_t to get
the address and size of a module are replaced with start and size.

The EFI entry point is a special case, as the EFI file loading boot service may
load a file beyond the 4G barrier. As a result, to make the address fit in the
32bit integer used by the MB1 module_t structure, the frame number is stored in
mod_start and size in mod_end. Until the EFI entry point is enlightened to work
with boot_info and boot_module, multiboot_fill_boot_info will handle the
alternate values in mod_start and mod_end when EFI is detected.

A result of the switch to start/size removes all uses of the mod field in
struct boot_modules, along with the uses of bootstra_map() and release_module()
functions. With all usage gone, they all are dropped here.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
--
Changes since v8:
- reversed logic for efi case in multiboot_fill_bootinfo()
- corrected missed paddr_to_pfn()

Changes since v7:
- add the start/size change to bootstrap_map_bm()
- convert all BM start/size when introduced, consolidates:
    x86/boot: populate boot module for xen entry
    x86/boot: transition relocation calculations to struct boot_module
- consolidates all the removal commits

Changes since v6:
- put the efi conversion for mod_start and mod_end back along with check
- dropped unnecessary cast
- updated the population of start and size fields to take into account efi

Changes since v5:
- switched EFI population of mod_start/mod_end to addresses
---
 xen/arch/x86/cpu/microcode/core.c   |  8 +--
 xen/arch/x86/hvm/dom0_build.c       |  6 +-
 xen/arch/x86/include/asm/bootinfo.h |  6 +-
 xen/arch/x86/include/asm/setup.h    |  1 -
 xen/arch/x86/pv/dom0_build.c        | 15 +++--
 xen/arch/x86/setup.c                | 89 ++++++++++++++---------------
 xen/xsm/xsm_policy.c                |  2 +-
 7 files changed, 60 insertions(+), 67 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index fd4b08b45388..1176d5fbd502 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -709,8 +709,8 @@ static int __init cf_check microcode_init_cache(void)
         /* early_microcode_load() didn't leave us any work to do. */
         return 0;
 
-    size = bi->mods[early_mod_idx].mod->mod_end;
-    data = __mfn_to_virt(bi->mods[early_mod_idx].mod->mod_start);
+    size = bi->mods[early_mod_idx].size;
+    data = __va(bi->mods[early_mod_idx].start);
 
     /*
      * If opt_scan is set, we're looking for a CPIO archive rather than a raw
@@ -786,7 +786,7 @@ static int __init early_microcode_load(struct boot_info *bi)
                  bm->type != BOOTMOD_RAMDISK )
                 continue;
 
-            size = bm->mod->mod_end;
+            size = bm->size;
             data = bootstrap_map_bm(bm);
             if ( !data )
             {
@@ -840,7 +840,7 @@ static int __init early_microcode_load(struct boot_info *bi)
         }
         bi->mods[idx].type = BOOTMOD_MICROCODE;
 
-        size = bi->mods[idx].mod->mod_end;
+        size = bi->mods[idx].size;
         data = bootstrap_map_bm(&bi->mods[idx]);
         if ( !data )
         {
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index d1410e1a02b0..0bd1e4277bff 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -649,8 +649,8 @@ static int __init pvh_load_kernel(
 {
     void *image_base = bootstrap_map_bm(image);
     void *image_start = image_base + image->headroom;
-    unsigned long image_len = image->mod->mod_end;
-    unsigned long initrd_len = initrd ? initrd->mod->mod_end : 0;
+    unsigned long image_len = image->size;
+    unsigned long initrd_len = initrd ? initrd->size : 0;
     const char *cmdline = __va(image->cmdline_pa);
     struct elf_binary elf;
     struct elf_dom_parms parms;
@@ -727,7 +727,7 @@ static int __init pvh_load_kernel(
     if ( initrd != NULL )
     {
         rc = hvm_copy_to_guest_phys(
-            last_addr, mfn_to_virt(initrd->mod->mod_start), initrd_len, v);
+            last_addr, __va(initrd->start), initrd_len, v);
         if ( rc )
         {
             printk("Unable to copy initrd to guest\n");
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index f76876386763..f8b422913063 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -26,9 +26,6 @@ enum bootmod_type {
 };
 
 struct boot_module {
-    /* Transitionary only */
-    module_t *mod;
-
     enum bootmod_type type;
 
     /*
@@ -62,6 +59,9 @@ struct boot_module {
     unsigned long headroom;
 
     paddr_t cmdline_pa;
+
+    paddr_t start;
+    size_t size;
 };
 
 /*
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 4ad493637892..5c2391a8684b 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -38,7 +38,6 @@ void free_boot_modules(void);
 
 struct boot_module;
 void *bootstrap_map_bm(const struct boot_module *bm);
-void *bootstrap_map(const module_t *mod);
 void bootstrap_unmap(void);
 
 void release_boot_module(struct boot_module *bm);
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 2580162f3df4..09df12dce694 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -421,7 +421,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
 
     image = &bi->mods[i];
     image_base = bootstrap_map_bm(image);
-    image_len = image->mod->mod_end;
+    image_len = image->size;
     image_start = image_base + image->headroom;
     cmdline = __va(image->cmdline_pa);
 
@@ -429,7 +429,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
     if ( i < bi->nr_modules )
     {
         initrd = &bi->mods[i];
-        initrd_len = initrd->mod->mod_end;
+        initrd_len = initrd->size;
     }
 
     d->max_pages = ~0U;
@@ -631,7 +631,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
         initrd_pfn = vinitrd_start ?
                      (vinitrd_start - v_start) >> PAGE_SHIFT :
                      domain_tot_pages(d);
-        initrd_mfn = initrd->mod->mod_start;
+        initrd_mfn = paddr_to_pfn(initrd->start);
         mfn = initrd_mfn;
         count = PFN_UP(initrd_len);
         if ( d->arch.physaddr_bitsize &&
@@ -647,8 +647,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
                     free_domheap_pages(page, order);
                     page += 1UL << order;
                 }
-            memcpy(page_to_virt(page), mfn_to_virt(initrd->mod->mod_start),
-                   initrd_len);
+            memcpy(page_to_virt(page), __va(initrd->start), initrd_len);
             /*
              * The initrd was copied but the initrd variable is reused in the
              * calculations below. As to not leak the memory used for the
@@ -656,7 +655,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
              */
             release_boot_module(initrd);
             initrd_mfn = mfn_x(page_to_mfn(page));
-            initrd->mod->mod_start = initrd_mfn;
+            initrd->start = pfn_to_paddr(initrd_mfn);
         }
         else
         {
@@ -683,7 +682,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
                nr_pages - domain_tot_pages(d));
     if ( initrd )
     {
-        mpt_alloc = pfn_to_paddr(initrd->mod->mod_start);
+        mpt_alloc = initrd->start;
         printk("\n Init. ramdisk: %"PRIpaddr"->%"PRIpaddr,
                mpt_alloc, mpt_alloc + initrd_len);
     }
@@ -911,7 +910,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
         if ( pfn >= initrd_pfn )
         {
             if ( pfn < initrd_pfn + PFN_UP(initrd_len) )
-                mfn = initrd->mod->mod_start + (pfn - initrd_pfn);
+                mfn = paddr_to_pfn(initrd->start) + (pfn - initrd_pfn);
             else
                 mfn -= PFN_UP(initrd_len);
         }
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 0bda1326a485..b4eba122d8a5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -314,13 +314,29 @@ static struct boot_info *__init multiboot_fill_boot_info(
      */
     for ( i = 0; i < MAX_NR_BOOTMODS && i < bi->nr_modules; i++ )
     {
-        bi->mods[i].mod = &mods[i];
-
         bi->mods[i].cmdline_pa = mods[i].string;
+
+        if ( efi_enabled(EFI_LOADER) )
+        {
+            /*
+             * The EFI loader gives us modules which are in frame/size. Switch
+             * to address/size.
+             */
+            bi->mods[i].start = pfn_to_paddr(mods[i].mod_start);
+            bi->mods[i].size = mods[i].mod_end;
+        }
+        else
+        {
+            /*
+             * PVH and BIOS loaders give us modules which are start/end.
+             * Switch to address/size.
+             */
+            bi->mods[i].start = mods[i].mod_start;
+            bi->mods[i].size = mods[i].mod_end - mods[i].mod_start;
+        }
     }
 
     /* Variable 'i' should be one entry past the last module. */
-    bi->mods[i].mod = &mods[bi->nr_modules];
     bi->mods[i].type = BOOTMOD_XEN;
 
     return bi;
@@ -336,8 +352,8 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
 
     for ( nr = i = 0; i < bi->nr_modules; ++i )
     {
-        unsigned long start = bi->mods[i].mod->mod_start;
-        unsigned long end   = start + PFN_UP(bi->mods[i].mod->mod_end);
+        unsigned long start = paddr_to_pfn(bi->mods[i].start);
+        unsigned long end   = start + PFN_UP(bi->mods[i].size);
 
         if ( end > node_start && node_end > start )
             nr += min(node_end, end) - max(node_start, start);
@@ -348,12 +364,9 @@ unsigned long __init initial_images_nrpages(nodeid_t node)
 
 void __init release_boot_module(struct boot_module *bm)
 {
-    uint64_t start = pfn_to_paddr(bm->mod->mod_start);
-    uint64_t size  = bm->mod->mod_end;
-
     ASSERT(!bm->released);
 
-    init_domheap_pages(start, start + PAGE_ALIGN(size));
+    init_domheap_pages(bm->start, bm->start + PAGE_ALIGN(bm->size));
 
     bm->released = true;
 }
@@ -485,15 +498,9 @@ static void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
     return ret;
 }
 
-void *__init bootstrap_map(const module_t *mod)
-{
-    return bootstrap_map_addr(pfn_to_paddr(mod->mod_start),
-                              pfn_to_paddr(mod->mod_start) + mod->mod_end);
-}
-
 void *__init bootstrap_map_bm(const struct boot_module *bm)
 {
-    return bootstrap_map(bm->mod);
+    return bootstrap_map_addr(bm->start, bm->start + bm->size);
 }
 
 void __init bootstrap_unmap(void)
@@ -671,8 +678,8 @@ static uint64_t __init consider_modules(
 
     for ( i = 0; i < nr_mods ; ++i )
     {
-        uint64_t start = pfn_to_paddr(mods[i].mod->mod_start);
-        uint64_t end = start + PAGE_ALIGN(mods[i].mod->mod_end);
+        uint64_t start = mods[i].start;
+        uint64_t end = start + PAGE_ALIGN(mods[i].size);
 
         if ( i == this_mod )
             continue;
@@ -1403,13 +1410,9 @@ void asmlinkage __init noreturn __start_xen(void)
     set_kexec_crash_area_size((u64)nr_pages << PAGE_SHIFT);
     kexec_reserve_area();
 
-    for ( i = 0; !efi_enabled(EFI_LOADER) && i < bi->nr_modules; i++ )
-    {
-        if ( bi->mods[i].mod->mod_start & (PAGE_SIZE - 1) )
+    for ( i = 0; i < bi->nr_modules; i++ )
+        if ( bi->mods[i].start & (PAGE_SIZE - 1) )
             panic("Bootloader didn't honor module alignment request\n");
-        bi->mods[i].mod->mod_end -= bi->mods[i].mod->mod_start;
-        bi->mods[i].mod->mod_start >>= PAGE_SHIFT;
-    }
 
     /*
      * TODO: load ucode earlier once multiboot modules become accessible
@@ -1428,13 +1431,12 @@ void asmlinkage __init noreturn __start_xen(void)
          * respective reserve_e820_ram() invocation below. No need to
          * query efi_boot_mem_unused() here, though.
          */
-        xen->mod->mod_start = virt_to_mfn(_stext);
-        xen->mod->mod_end   = __2M_rwdata_end - _stext;
+        xen->start = virt_to_maddr(_stext);
+        xen->size  = __2M_rwdata_end - _stext;
     }
 
     bi->mods[0].headroom =
-        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]),
-                         bi->mods[0].mod->mod_end);
+        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].size);
     bootstrap_unmap();
 
 #ifndef highmem_start
@@ -1515,7 +1517,7 @@ void asmlinkage __init noreturn __start_xen(void)
         for ( j = bi->nr_modules - 1; j >= 0; j-- )
         {
             struct boot_module *bm = &bi->mods[j];
-            unsigned long size = PAGE_ALIGN(bm->headroom + bm->mod->mod_end);
+            unsigned long size = PAGE_ALIGN(bm->headroom + bm->size);
 
             if ( bm->relocated )
                 continue;
@@ -1527,14 +1529,11 @@ void asmlinkage __init noreturn __start_xen(void)
             if ( highmem_start && end > highmem_start )
                 continue;
 
-            if ( s < end &&
-                 (bm->headroom ||
-                  ((end - size) >> PAGE_SHIFT) > bm->mod->mod_start) )
+            if ( s < end && (bm->headroom || (end - size) > bm->start) )
             {
-                move_memory(end - size + bm->headroom,
-                            pfn_to_paddr(bm->mod->mod_start), bm->mod->mod_end);
-                bm->mod->mod_start = (end - size) >> PAGE_SHIFT;
-                bm->mod->mod_end += bm->headroom;
+                move_memory(end - size + bm->headroom, bm->start, bm->size);
+                bm->start = (end - size);
+                bm->size += bm->headroom;
                 bm->relocated = true;
             }
         }
@@ -1565,10 +1564,9 @@ void asmlinkage __init noreturn __start_xen(void)
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-        const struct boot_module *bm = &bi->mods[i];
-        uint64_t s = pfn_to_paddr(bm->mod->mod_start);
+        uint64_t s = bi->mods[i].start, l = bi->mods[i].size;
 
-        reserve_e820_ram(&boot_e820, s, s + PAGE_ALIGN(bm->mod->mod_end));
+        reserve_e820_ram(&boot_e820, s, s + PAGE_ALIGN(l));
     }
 
     if ( !xen_phys_start )
@@ -1646,8 +1644,7 @@ void asmlinkage __init noreturn __start_xen(void)
                 map_e = boot_e820.map[j].addr + boot_e820.map[j].size;
                 for ( j = 0; j < bi->nr_modules; ++j )
                 {
-                    uint64_t end = pfn_to_paddr(bi->mods[j].mod->mod_start) +
-                                   bi->mods[j].mod->mod_end;
+                    uint64_t end = bi->mods[j].start + bi->mods[j].size;
 
                     if ( map_e < end )
                         map_e = end;
@@ -1721,13 +1718,11 @@ void asmlinkage __init noreturn __start_xen(void)
 
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-        const struct boot_module *bm = &bi->mods[i];
+        unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
 
-        set_pdx_range(bm->mod->mod_start,
-                      bm->mod->mod_start + PFN_UP(bm->mod->mod_end));
-        map_pages_to_xen((unsigned long)mfn_to_virt(bm->mod->mod_start),
-                         _mfn(bm->mod->mod_start),
-                         PFN_UP(bm->mod->mod_end), PAGE_HYPERVISOR);
+        set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s + l) + 1);
+        map_pages_to_xen((unsigned long)maddr_to_virt(s), maddr_to_mfn(s),
+                         PFN_UP(l), PAGE_HYPERVISOR);
     }
 
 #ifdef CONFIG_KEXEC
diff --git a/xen/xsm/xsm_policy.c b/xen/xsm/xsm_policy.c
index 76280903d5be..7f70d860bd65 100644
--- a/xen/xsm/xsm_policy.c
+++ b/xen/xsm/xsm_policy.c
@@ -43,7 +43,7 @@ int __init xsm_multiboot_policy_init(
         struct boot_module *bm = &bi->mods[i];
 
         _policy_start = bootstrap_map_bm(bm);
-        _policy_len   = bm->mod->mod_end;
+        _policy_len   = bm->size;
 
         if ( (xsm_magic_t)(*_policy_start) == XSM_MAGIC )
         {
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:13:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:13:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837577.1253515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBw8J-0000Ka-Rx; Fri, 15 Nov 2024 13:13:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837577.1253515; Fri, 15 Nov 2024 13:13: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 1tBw8J-0000KP-Or; Fri, 15 Nov 2024 13:13:07 +0000
Received: by outflank-mailman (input) for mailman id 837577;
 Fri, 15 Nov 2024 13:13: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBw8I-0006v7-E3
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:13:06 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56eb7dc6-a353-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:13:02 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731676336898210.23232910970785;
 Fri, 15 Nov 2024 05:12: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: 56eb7dc6-a353-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU2ZWI3ZGM2LWEzNTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc2MzgyLjcxOTkwMywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731676339; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=TNLdk+kZ3wIsXjMVdGHmQdoT2Lpgy6teW3Mri33QY/2TXSdo+hcoO+vzN5wN/hEtK6oRigwPYxAUk8aDtJAb1g1bWp6lPgH1JgCXTTvFNqwFbpbWTPXhW75fvlb0g8IsOokmftlhBcHlc3+lZTxxV7EwgkMjl2rPHl8TMaWjbcw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731676339; h=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=ElW812RXFpILnCxwwVsvGFK8JqOefDd9+I2R3fwUEc0=; 
	b=nN8dMTl9nVrR2NQN0rIVABe0EjIGImpzfpmL1uTwiKWnzbpd7qEA9+/W2we3iFksYe1AzNifaFdu1FZ6f02QqdQcRG0Lh5EemRgQjNwLuj6LNiY69T1o1kAk4nVTh+bEZoU+LdRorzbcqhGW4F6Lbbc/YYnKRsU5xTsg3jWgJVg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731676339;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=ElW812RXFpILnCxwwVsvGFK8JqOefDd9+I2R3fwUEc0=;
	b=awdErlJ1nfEhNl5c/4u8eGNuRAf+s01i8CatdiD49ASkbBLkn47AqE6rpJ/oaBSL
	ATu8PYHZJYGIdUPXA8Wfx9u+tAdZWg2KQh8ThlpJPGikWahxWjDpg9Q+mNR0nYhTcoE
	efIQg5/o7pgAwUROVOxlzKzOBXDE6u43XlgpYnEM=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 v9 4/6] x86/boot: introduce boot domain
Date: Fri, 15 Nov 2024 08:12:02 -0500
Message-Id: <20241115131204.32135-5-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241115131204.32135-1-dpsmith@apertussolutions.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

To begin moving toward allowing the hypervisor to construct more than one
domain at boot, a container is needed for a domain's build information.
Introduce a new header, <xen/asm/bootdomain.h>, that contains the initial
struct boot_domain that encapsulate the build information for a domain.

Add a kernel and ramdisk boot module reference along with a struct domain
reference to the new struct boot_domain. This allows a struct boot_domain
reference to be the only parameter necessary to pass down through the domain
construction call chain.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

---
Changes since v8:
- code style correction
---
 xen/arch/x86/dom0_build.c             |  8 ++++---
 xen/arch/x86/hvm/dom0_build.c         | 17 +++++----------
 xen/arch/x86/include/asm/bootdomain.h | 31 +++++++++++++++++++++++++++
 xen/arch/x86/include/asm/bootinfo.h   |  5 +++++
 xen/arch/x86/include/asm/dom0_build.h |  6 +++---
 xen/arch/x86/include/asm/setup.h      |  4 ++--
 xen/arch/x86/pv/dom0_build.c          | 24 +++++++--------------
 xen/arch/x86/setup.c                  | 24 +++++++++------------
 8 files changed, 69 insertions(+), 50 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/bootdomain.h

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index e8f5bf5447bc..c231191faec7 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -13,6 +13,7 @@
 #include <xen/softirq.h>
 
 #include <asm/amd.h>
+#include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
 #include <asm/guest.h>
 #include <asm/hpet.h>
@@ -596,9 +597,10 @@ int __init dom0_setup_permissions(struct domain *d)
     return rc;
 }
 
-int __init construct_dom0(struct boot_info *bi, struct domain *d)
+int __init construct_dom0(struct boot_domain *bd)
 {
     int rc;
+    const struct domain *d = bd->d;
 
     /* Sanity! */
     BUG_ON(!pv_shim && d->domain_id != 0);
@@ -608,9 +610,9 @@ int __init construct_dom0(struct boot_info *bi, struct domain *d)
     process_pending_softirqs();
 
     if ( is_hvm_domain(d) )
-        rc = dom0_construct_pvh(bi, d);
+        rc = dom0_construct_pvh(bd);
     else if ( is_pv_domain(d) )
-        rc = dom0_construct_pv(bi, d);
+        rc = dom0_construct_pv(bd);
     else
         panic("Cannot construct Dom0. No guest interface available\n");
 
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 0bd1e4277bff..69881599e77e 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1301,26 +1301,19 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
     }
 }
 
-int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
+int __init dom0_construct_pvh(struct boot_domain *bd)
 {
     paddr_t entry, start_info;
-    struct boot_module *image;
-    struct boot_module *initrd = NULL;
-    unsigned int idx;
+    struct boot_module *image = bd->kernel;
+    struct boot_module *initrd = bd->ramdisk;
+    struct domain *d = bd->d;
     int rc;
 
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
 
-    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( idx >= bi->nr_modules )
+    if ( image == NULL )
         panic("Missing kernel boot module for %pd construction\n", d);
 
-    image = &bi->mods[idx];
-
-    idx = first_boot_module_index(bi, BOOTMOD_RAMDISK);
-    if ( idx < bi->nr_modules )
-        initrd = &bi->mods[idx];
-
     if ( is_hardware_domain(d) )
     {
         /*
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
new file mode 100644
index 000000000000..12c19ab37bd8
--- /dev/null
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2024 Apertus Solutions, LLC
+ * Author: Daniel P. Smith <dpsmith@apertussolutions.com>
+ * Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
+ */
+
+#ifndef __XEN_X86_BOOTDOMAIN_H__
+#define __XEN_X86_BOOTDOMAIN_H__
+
+struct boot_module;
+struct domain;
+
+struct boot_domain {
+    struct boot_module *kernel;
+    struct boot_module *ramdisk;
+
+    struct domain *d;
+};
+
+#endif
+
+/*
+ * 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/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index f8b422913063..9f65e2c8f62d 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -11,10 +11,14 @@
 #include <xen/init.h>
 #include <xen/multiboot.h>
 #include <xen/types.h>
+#include <asm/bootdomain.h>
 
 /* Max number of boot modules a bootloader can provide in addition to Xen */
 #define MAX_NR_BOOTMODS 63
 
+/* Max number of boot domains that Xen can construct */
+#define MAX_NR_BOOTDOMS 1
+
 /* Boot module binary type / purpose */
 enum bootmod_type {
     BOOTMOD_UNKNOWN,
@@ -78,6 +82,7 @@ struct boot_info {
 
     unsigned int nr_modules;
     struct boot_module mods[MAX_NR_BOOTMODS + 1];
+    struct boot_domain domains[MAX_NR_BOOTDOMS];
 };
 
 /*
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 2d67b17213dc..8c94e87dc576 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -13,9 +13,9 @@ unsigned long dom0_compute_nr_pages(struct domain *d,
                                     unsigned long initrd_len);
 int dom0_setup_permissions(struct domain *d);
 
-struct boot_info;
-int dom0_construct_pv(struct boot_info *bi, struct domain *d);
-int dom0_construct_pvh(struct boot_info *bi, struct domain *d);
+struct boot_domain;
+int dom0_construct_pv(struct boot_domain *bd);
+int dom0_construct_pvh(struct boot_domain *bd);
 
 unsigned long dom0_paging_pages(const struct domain *d,
                                 unsigned long nr_pages);
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 5c2391a8684b..b517da6144de 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -26,8 +26,8 @@ void subarch_init_memory(void);
 
 void init_IRQ(void);
 
-struct boot_info;
-int construct_dom0(struct boot_info *bi, struct domain *d);
+struct boot_domain;
+int construct_dom0(struct boot_domain *bd);
 
 void setup_io_bitmap(struct domain *d);
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 09df12dce694..f42aeb031694 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -355,7 +355,7 @@ static struct page_info * __init alloc_chunk(struct domain *d,
     return page;
 }
 
-static int __init dom0_construct(struct boot_info *bi, struct domain *d)
+static int __init dom0_construct(struct boot_domain *bd)
 {
     unsigned int i;
     int rc, order, machine;
@@ -371,13 +371,14 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
     struct page_info *page = NULL;
     unsigned int flush_flags = 0;
     start_info_t *si;
+    struct domain *d = bd->d;
     struct vcpu *v = d->vcpu[0];
-    struct boot_module *image;
-    struct boot_module *initrd = NULL;
+    struct boot_module *image = bd->kernel;
+    struct boot_module *initrd = bd->ramdisk;
     void *image_base;
     unsigned long image_len;
     void *image_start;
-    unsigned long initrd_len = 0;
+    unsigned long initrd_len = initrd ? initrd->size : 0;
     const char *cmdline;
     l4_pgentry_t *l4tab = NULL, *l4start = NULL;
     l3_pgentry_t *l3tab = NULL, *l3start = NULL;
@@ -415,23 +416,14 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
 
     printk(XENLOG_INFO "*** Building a PV Dom%d ***\n", d->domain_id);
 
-    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( i >= bi->nr_modules )
+    if ( unlikely(image == NULL) )
         panic("Missing kernel boot module for %pd construction\n", d);
 
-    image = &bi->mods[i];
     image_base = bootstrap_map_bm(image);
     image_len = image->size;
     image_start = image_base + image->headroom;
     cmdline = __va(image->cmdline_pa);
 
-    i = first_boot_module_index(bi, BOOTMOD_RAMDISK);
-    if ( i < bi->nr_modules )
-    {
-        initrd = &bi->mods[i];
-        initrd_len = initrd->size;
-    }
-
     d->max_pages = ~0U;
 
     if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
@@ -1078,7 +1070,7 @@ out:
     return rc;
 }
 
-int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
+int __init dom0_construct_pv(struct boot_domain *bd)
 {
     unsigned long cr4 = read_cr4();
     int rc;
@@ -1096,7 +1088,7 @@ int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
         write_cr4(cr4 & ~X86_CR4_SMAP);
     }
 
-    rc = dom0_construct(bi, d);
+    rc = dom0_construct(bd);
 
     if ( cr4 & X86_CR4_SMAP )
     {
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index b4eba122d8a5..2ccaa7dc965b 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -975,16 +975,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
         },
     };
+    struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
     domid_t domid;
-    struct boot_module *image;
-    unsigned int idx;
-
-    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( idx >= bi->nr_modules )
-        panic("Missing kernel boot module for building domain\n");
-
-    image = &bi->mods[idx];
 
     if ( opt_dom0_pvh )
     {
@@ -1011,11 +1004,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         panic("Error creating d%uv0\n", domid);
 
     /* Grab the DOM0 command line. */
-    if ( image->cmdline_pa || bi->kextra )
+    if ( bd->kernel->cmdline_pa || bi->kextra )
     {
-        if ( image->cmdline_pa )
-            safe_strcpy(
-                cmdline, cmdline_cook(__va(image->cmdline_pa), bi->loader));
+        if ( bd->kernel->cmdline_pa )
+            safe_strcpy(cmdline,
+                        cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader));
 
         if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
@@ -1037,10 +1030,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             safe_strcat(cmdline, acpi_param);
         }
 
-        image->cmdline_pa = __pa(cmdline);
+        bd->kernel->cmdline_pa = __pa(cmdline);
     }
 
-    if ( construct_dom0(bi, d) != 0 )
+    bd->d = d;
+    if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
     return d;
@@ -1240,6 +1234,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     /* Dom0 kernel is always first */
     bi->mods[0].type = BOOTMOD_KERNEL;
+    bi->domains[0].kernel = &bi->mods[0];
 
     if ( pvh_boot )
     {
@@ -2110,6 +2105,7 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
+        bi->domains[0].ramdisk = &bi->mods[initrdidx];
         if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMODS )
             printk(XENLOG_WARNING
                    "Multiple initrd candidates, picking module #%u\n",
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:13:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:13:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837583.1253525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBw8c-0001EO-5s; Fri, 15 Nov 2024 13:13:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837583.1253525; Fri, 15 Nov 2024 13:13: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 1tBw8c-0001EE-31; Fri, 15 Nov 2024 13:13:26 +0000
Received: by outflank-mailman (input) for mailman id 837583;
 Fri, 15 Nov 2024 13:13: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBw8b-00085h-1I
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:13:25 +0000
Received: from sender3-of-o57.zoho.com (sender3-of-o57.zoho.com
 [136.143.184.57]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6294ff26-a353-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 14:13:21 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731676339398284.4595211557644;
 Fri, 15 Nov 2024 05:12: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: 6294ff26-a353-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg0LjU3IiwiaGVsbyI6InNlbmRlcjMtb2YtbzU3LnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYyOTRmZjI2LWEzNTMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjc2NDAyLjE3MzY2Nywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731676341; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ekj/4JnJS7AE9hySFZNQ5YbKSfJfC82Xap7g8WbBG7qxZ/HUINjh/CGf/DzCqZiGieK+RynOvrzGQS/9iM2+LlijRgKToesmWC8xB9ImiVqnmT1yuI2O5UvDLlgERzTsy5dE79IDuGYn4pCuNodJD3X7izkFMaqpobq7Qz/8IWc=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731676341; h=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=bSzO7sAd2L8LHq1LVIVbhwl38gEAx7Fm3b8FDdjS27I=; 
	b=AK/Lup5O62ylDiTjBIcBz0qiCw0NbbKKtQ5y16eW1Fc92a56qsoNYEPSuR70D2yUEGrwP1pjgR3gXjP+W4Lnb2fThoDeBRRALKiTZScmX97M1yR174ZqNpCYu2wwkJANwvAtIBSyLgKhuRUfAUonQxjap8FvE8cl32IgFo465CQ=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731676341;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=bSzO7sAd2L8LHq1LVIVbhwl38gEAx7Fm3b8FDdjS27I=;
	b=BVLxK7ijGhycuQynLiPH19qi/ivtF5NP7fPEFq7Spg5CShs0Ss5xe0dFFSI1IIwA
	pfI2NXMScZxNKuBiWiPfdR70Aw9S7RXuRfcYOQpbpXPGeKCQFU5uRicWIqgIEvOJcpd
	E6mTZkYHPagBazMfVRwQBLs116yOhVnW3Pg9DfMU=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 v9 6/6] x86/boot: add cmdline to struct boot_domain
Date: Fri, 15 Nov 2024 08:12:04 -0500
Message-Id: <20241115131204.32135-7-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241115131204.32135-1-dpsmith@apertussolutions.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add a container for the "cooked" command line for a domain. This provides for
the backing memory to be directly associated with the domain being constructed.
This is done in anticipation that the domain construction path may need to be
invoked multiple times, thus ensuring each instance had a distinct memory
allocation.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v8:
- switch to a dynamically allocated buffer
- dropped local cmdline var in pv dom0_construct()

Changes since v7:
- updated commit message to expand on intent and purpose
---
 xen/arch/x86/include/asm/bootdomain.h |  2 ++
 xen/arch/x86/include/asm/dom0_build.h |  1 +
 xen/arch/x86/pv/dom0_build.c          |  6 ++--
 xen/arch/x86/setup.c                  | 49 ++++++++++++++++++++++-----
 4 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 3873f916f854..75e7c706d86e 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -12,6 +12,8 @@ struct boot_module;
 struct domain;
 
 struct boot_domain {
+    const char *cmdline;
+
     domid_t domid;
 
     struct boot_module *kernel;
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 8c94e87dc576..6ca3ca7c8a43 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -4,6 +4,7 @@
 #include <xen/libelf.h>
 #include <xen/sched.h>
 
+#include <asm/bootinfo.h>
 #include <asm/setup.h>
 
 extern unsigned int dom0_memflags;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index f42aeb031694..91bcce1542bc 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -379,7 +379,6 @@ static int __init dom0_construct(struct boot_domain *bd)
     unsigned long image_len;
     void *image_start;
     unsigned long initrd_len = initrd ? initrd->size : 0;
-    const char *cmdline;
     l4_pgentry_t *l4tab = NULL, *l4start = NULL;
     l3_pgentry_t *l3tab = NULL, *l3start = NULL;
     l2_pgentry_t *l2tab = NULL, *l2start = NULL;
@@ -422,7 +421,6 @@ static int __init dom0_construct(struct boot_domain *bd)
     image_base = bootstrap_map_bm(image);
     image_len = image->size;
     image_start = image_base + image->headroom;
-    cmdline = __va(image->cmdline_pa);
 
     d->max_pages = ~0U;
 
@@ -972,8 +970,8 @@ static int __init dom0_construct(struct boot_domain *bd)
     }
 
     memset(si->cmd_line, 0, sizeof(si->cmd_line));
-    if ( cmdline != NULL )
-        strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
+    if ( bd->cmdline )
+        strlcpy((char *)si->cmd_line, bd->cmdline, sizeof(si->cmd_line));
 
 #ifdef CONFIG_VIDEO
     if ( !pv_shim && fill_console_start_info((void *)(si + 1)) )
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 533a1e2bbe05..b9ca9c486fe5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -963,10 +963,31 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
     return n;
 }
 
-static struct domain *__init create_dom0(struct boot_info *bi)
+static size_t __init domain_cmdline_size(
+    struct boot_info *bi, struct boot_domain *bd)
 {
-    static char __initdata cmdline[MAX_GUEST_CMDLINE];
+    size_t s = 0;
+
+    s += bi->kextra ? strlen(bi->kextra) : 0;
+    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
 
+    /* Should only be called if one of extra or cmdline_pa are valid */
+    ASSERT(s > 0);
+
+    /*
+     * Add additional space for the following cases:
+     *  - 7 chars for " noapic"
+     *  - 13 chars for longest acpi opiton, " acpi=verbose"
+     *  - 1 char to hold \0
+     */
+    s += 7 + 13 + 1;
+
+    return s;
+}
+
+static struct domain *__init create_dom0(struct boot_info *bi)
+{
+    char *cmdline = NULL;
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
@@ -1008,17 +1029,23 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     /* Grab the DOM0 command line. */
     if ( bd->kernel->cmdline_pa || bi->kextra )
     {
+        size_t cmdline_size = domain_cmdline_size(bi, bd);
+
+        if ( !(cmdline = xzalloc_array(char, cmdline_size)) )
+            panic("Error allocating cmdline buffer for %pd\n", d);
+
         if ( bd->kernel->cmdline_pa )
-            safe_strcpy(cmdline,
-                        cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader));
+            strlcpy(cmdline,
+                    cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),
+                    cmdline_size);
 
         if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
-            safe_strcat(cmdline, bi->kextra);
+            strlcat(cmdline, bi->kextra, cmdline_size);
 
         /* Append any extra parameters. */
         if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
-            safe_strcat(cmdline, " noapic");
+            strlcat(cmdline, " noapic", cmdline_size);
 
         if ( (strlen(acpi_param) == 0) && acpi_disabled )
         {
@@ -1028,17 +1055,21 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
         if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
         {
-            safe_strcat(cmdline, " acpi=");
-            safe_strcat(cmdline, acpi_param);
+            strlcat(cmdline, " acpi=", cmdline_size);
+            strlcat(cmdline, acpi_param, cmdline_size);
         }
 
-        bd->kernel->cmdline_pa = __pa(cmdline);
+        bd->cmdline = cmdline;
+        bd->kernel->cmdline_pa = __pa(bd->cmdline);
     }
 
     bd->d = d;
     if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
+    if ( cmdline )
+        xfree(cmdline);
+
     return d;
 }
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:18:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:18:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837606.1253535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBwDI-0002Li-Nq; Fri, 15 Nov 2024 13:18:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837606.1253535; Fri, 15 Nov 2024 13:18: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 1tBwDI-0002Lb-Kh; Fri, 15 Nov 2024 13:18:16 +0000
Received: by outflank-mailman (input) for mailman id 837606;
 Fri, 15 Nov 2024 13:18: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBwDH-0002LU-C3
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:18:15 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0fdccec5-a354-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:18:11 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3821a905dbcso1137621f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 05:18: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-38222c14306sm2814852f8f.21.2024.11.15.05.18.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 05:18: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: 0fdccec5-a354-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MjkiLCJoZWxvIjoibWFpbC13cjEteDQyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBmZGNjZWM1LWEzNTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc2NjkxLjI3MDczNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731676690; x=1732281490; 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=ETDgAX8UFwNrqt3PrrnhX0Zxcvt5DdI5pGjJwyM41eA=;
        b=MLsI8moj6qW3wlHZbkfzxX75wY3BbOR7EMt4IwDL3yWB4ptiGvYIculB0Pk+vG9xA3
         RfdYQEljdJRHcN+jC/QcAx8LtKu8llluT6/u1w4/LYuZYGF4tyim51dZ9bCnhg3GGpaZ
         tAKbWpbpt3vkrrccMAPDzwZZk7mz1cT3ViIQagwonUk+L2Xe28YAaSjvugO7a/tBWavv
         Uxif6YkzFEw02rOGyRiXglkVZTCMgI7uhx5Jaf3LhOPIvNIVov+DLv5BmKp3WayRuOoX
         1DU1QpZGK1Af/w23c2eM6J/pm9lit3CsbD+ZYKU9SKA9cEyI3ZyTdDlZKjQ/eMfC9hna
         19UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731676690; x=1732281490;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ETDgAX8UFwNrqt3PrrnhX0Zxcvt5DdI5pGjJwyM41eA=;
        b=xPQYLVcVSnTVv+4WBom0FpbJIRD0HTgfYR4EOw7KZ2EoZDaxgg4L2unLnNi3X3GEQb
         zH4zqjOPvm1lKgAFu6mEWOHEhL+HfFbqACI3ki7lxczNVMXjDOBCLHSzf14aI1C937kC
         3m4StKuMy8hH/Qf9HQbsYfS4nngjuzIVekVpHspxIgdWuDPue7PREgzLDNfoR3RtZLPC
         zCotxiTIJnCvU9ZCkoW1FgFoXYy8ZDo3QQHYjhHQabHECnOvBt6Gz2wwMBxErUdEREDa
         buOer1gowsm6n17iftr/+dH7rTZStR8B0ZTLZLnr/WQV7MVZRZ/FEvEv9irb+stItXmO
         xwKQ==
X-Forwarded-Encrypted: i=1; AJvYcCXMxnVDCJLqQUT6aEtGF3HZLCLQ4tZWNQEh6AlL1J1jyrI6bdQI++tbeRGXEsz7CXmtFmnmhuMe1+M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBy5hF6ELQAFPAaJglwa2pfc4cSBILt3rlfLL9bYseGNkv9zRu
	T7a4HjmE5kyfUDPWzkLpTHNI7VqBOg9yfsIaoDOkecWtnKH6S3JAA6nVJ5ae6Q==
X-Google-Smtp-Source: AGHT+IGJp+XGaYkpJSpC/oOjc2NS7OezDUA+r1DqdsA8tUyD8CqmO7IsJTDa+ajag4zRgnmIQXm6Jg==
X-Received: by 2002:a5d:6f11:0:b0:37c:c5be:1121 with SMTP id ffacd0b85a97d-382258ee874mr2376834f8f.9.1731676690420;
        Fri, 15 Nov 2024 05:18:10 -0800 (PST)
Message-ID: <58b636eb-a2bb-40f9-87f1-0a38c036a495@suse.com>
Date: Fri, 15 Nov 2024 14:18:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
 <3a57e277-5fd2-4400-86b9-29479b3dfda1@suse.com>
 <CEB38FF8-ACFD-4AE1-B571-1A9219575EE6@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: <CEB38FF8-ACFD-4AE1-B571-1A9219575EE6@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.11.2024 13:46, Luca Fancellu wrote:
> 
> 
>> On 15 Nov 2024, at 11:12, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 15.11.2024 11:50, Luca Fancellu wrote:
>>> --- a/xen/common/vmap.c
>>> +++ b/xen/common/vmap.c
>>> @@ -426,3 +426,10 @@ void *_xvrealloc(void *va, size_t size, unsigned int align)
>>>
>>>     return ptr;
>>> }
>>> +
>>> +void iounmap(void __iomem *va)
>>> +{
>>> +    unsigned long addr = (unsigned long)(void __force *)va;
>>> +
>>> +    vunmap((void *)(addr & PAGE_MASK));
>>> +}
>>
>> Why is this being moved here, and converted from inline to out-of-line?
>> What the description says is insufficient imo, as even if you mean to
>> only support vmap_contig() and ioremap() on MPU systems, you'll still
>> need both vunmap() and iounmap().
>>
>> Plus, if it really needs converting, I don't think it should live at the
>> very end of the file, past _xvmalloc() and friends. Better suitable places
>> may then be next to vunmap() itself, or between vfree() and xvfree().
> 
> Iâ€™ll try to keep it as it was originally, I gave a brief look into the R82 branch and it should be fine.
> Iâ€™m planning to define vmap_config(), vunmap(), ioremap(), iounmap() in a vmap-mpu.c under arch/arm/mpu
> 
>>
>>> --- a/xen/include/xen/vmap.h
>>> +++ b/xen/include/xen/vmap.h
>>> @@ -5,7 +5,7 @@
>>>  * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
>>>  * latter is used when loading livepatches and the former for everything else.
>>>  */
>>> -#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
>>> +#if !defined(__XEN_VMAP_H__)
>>> #define __XEN_VMAP_H__
>>
>> With this adjustment, where are the functions defined that you "unhide"
>> the declarations of, in the MPU case? As you say in the description,
>> vmap.c won't be built in that case.
> 
> Sure, Iâ€™ll wrap what canâ€™t be used in MPU case with HAS_VMAP, I would like to keep out:
> 
> void *vmap_contig(mfn_t mfn, unsigned int nr);
> 
> void vunmap(const void *va);
> 
> void __iomem *ioremap(paddr_t pa, size_t len);
> 
> static inline void iounmap(void __iomem *va)
> 
> static inline void vm_init(void)
> 
> In order to donâ€™t put too many #ifdef, are you ok if I move the declarations in order to have these close to each other. like below:

Some re-arrangement ought to be fine, especially when the #ifdef is
accompanied by a comment. I can't see how there can be #else though.

Jan

> --- a/xen/include/xen/vmap.h
> +++ b/xen/include/xen/vmap.h
> @@ -11,6 +11,8 @@
>  #include <xen/mm-frame.h>
>  #include <xen/page-size.h>
>  
> +#ifdef CONFIG_HAS_VMAP
> +
>  /* Identifiers for the linear ranges tracked by vmap */
>  enum vmap_region {
>      /*
> @@ -68,25 +70,6 @@ void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
>   */
>  void *vmap(const mfn_t *mfn, unsigned int nr);
>  
> -/*
> - * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
> - *
> - * @param mfn Base mfn of the physical region
> - * @param nr  Number of mfns in the physical region
> - * @return Pointer to the mapped area on success; NULL otherwise.
> - */
> -void *vmap_contig(mfn_t mfn, unsigned int nr);
> -
> -/*
> - * Unmaps a range of virtually contiguous memory from one of the vmap regions
> - *
> - * The system remembers internally how wide the mapping is and unmaps it all.
> - * It also can determine the vmap region type from the `va`.
> - *
> - * @param va Virtual base address of the range to unmap
> - */
> -void vunmap(const void *va);
> -
>  /*
>   * Allocate `size` octets of possibly non-contiguous physical memory and map
>   * them contiguously in the VMAP_DEFAULT vmap region
> @@ -112,6 +95,33 @@ void *vzalloc(size_t size);
>   */
>  void vfree(void *va);
>  
> +/* Return the number of pages in the mapping starting at address 'va' */
> +unsigned int vmap_size(const void *va);
> +
> +/* Pointer to 1 octet past the end of the VMAP_DEFAULT virtual area */
> +void *arch_vmap_virt_end(void);
> +
> +#else /* !CONFIG_HAS_VMAP */
> +
> +/*
> + * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
> + *
> + * @param mfn Base mfn of the physical region
> + * @param nr  Number of mfns in the physical region
> + * @return Pointer to the mapped area on success; NULL otherwise.
> + */
> +void *vmap_contig(mfn_t mfn, unsigned int nr);
> +
> +/*
> + * Unmaps a range of virtually contiguous memory from one of the vmap regions
> + *
> + * The system remembers internally how wide the mapping is and unmaps it all.
> + * It also can determine the vmap region type from the `va`.
> + *
> + * @param va Virtual base address of the range to unmap
> + */
> +void vunmap(const void *va);
> +
>  /*
>   * Analogous to vmap_contig(), but for IO memory
>   *
> @@ -124,9 +134,6 @@ void vfree(void *va);
>   */
>  void __iomem *ioremap(paddr_t pa, size_t len);
>  
> -/* Return the number of pages in the mapping starting at address 'va' */
> -unsigned int vmap_size(const void *va);
> -
>  /* Analogous to vunmap(), but for IO memory mapped via ioremap() */
>  static inline void iounmap(void __iomem *va)
>  {
> @@ -135,9 +142,6 @@ static inline void iounmap(void __iomem *va)
>      vunmap((void *)(addr & PAGE_MASK));
>  }
>  
> -/* Pointer to 1 octet past the end of the VMAP_DEFAULT virtual area */
> -void *arch_vmap_virt_end(void);
> -
>  /* Initialises the VMAP_DEFAULT virtual range */
>  static inline void vm_init(void)
>  {
> @@ -146,4 +150,6 @@ static inline void vm_init(void)
>  #endif
>  }
>  
> +#endif /* CONFIG_HAS_VMAP */
> +
>  #endif /* __XEN_VMAP_H__ */



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:22:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837621.1253548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBwHN-0004ov-7P; Fri, 15 Nov 2024 13:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837621.1253548; Fri, 15 Nov 2024 13:22: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 1tBwHN-0004oo-4x; Fri, 15 Nov 2024 13:22:29 +0000
Received: by outflank-mailman (input) for mailman id 837621;
 Fri, 15 Nov 2024 13:22: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBw8R-0006v7-Un
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:13:15 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5d1fae5f-a353-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:13:12 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731676338126593.7092805148436;
 Fri, 15 Nov 2024 05:12: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: 5d1fae5f-a353-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVkMWZhZTVmLWEzNTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc2MzkzLjAxNzQ0Mywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731676340; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Z9e/3YKyb3RRCE5tGYsc88W9Ea4/y5BTZ3oXrdZPV627uueOKJIfQoXWXCMFUnWuXJRaa93jnkV9iCbSDdwMEp+7CAxy6JpkBkwNlu69osdrJvwNWSTgc8rdfaAQLpdZKWJ36LbgRPKDrIsb+JskwhwfK9kMQcncr5LUSqGYSNE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731676340; h=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=bhl7E1mvlo9SO98XxLqZrhL5BHZQCoyp4nD+tEiZihE=; 
	b=FLoJOgt4hMA0q6Qlkfk9BtOgxbNr2Q/7Mi6U2D1u83AIhqewpzbY5EFu7L5IEQWLMGb1lZEb2EM7c8296cVe+eHc8woy+PfGaqno6B8oJGeQGQ/TBbDQre2Wg9WQHUWiOY2tYq/BfPwYa+NKbm6Mqoj+ukZLmgWoUfBmeok4x0s=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731676340;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=bhl7E1mvlo9SO98XxLqZrhL5BHZQCoyp4nD+tEiZihE=;
	b=kFxRu0P+j0A0IlvOO+Yih4j31JT3Is7P4+aOLfP+U96Cgq7qeuOazqT5niKeuB5I
	NY50+/gFKw8lxmNq+Lcw3oOe+h353PAGYNrcZr1dXptrundY8ScC/Jko8M/r3/gJFYK
	f0nNnMAukrhe2xQmleQ3BeowE/ChvTlmxdC1cS5M=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 v9 5/6] x86/boot: introduce domid field to struct boot_domain
Date: Fri, 15 Nov 2024 08:12:03 -0500
Message-Id: <20241115131204.32135-6-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241115131204.32135-1-dpsmith@apertussolutions.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add a domid field to struct boot_domain to hold the assigned domain id for the
domain. During initialization, ensure all instances of struct boot_domain have
the invalid domid to ensure that the domid must be set either by convention or
configuration.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/include/asm/bootdomain.h |  2 ++
 xen/arch/x86/setup.c                  | 12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 12c19ab37bd8..3873f916f854 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -12,6 +12,8 @@ struct boot_module;
 struct domain;
 
 struct boot_domain {
+    domid_t domid;
+
     struct boot_module *kernel;
     struct boot_module *ramdisk;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 2ccaa7dc965b..533a1e2bbe05 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -339,6 +339,9 @@ static struct boot_info *__init multiboot_fill_boot_info(
     /* Variable 'i' should be one entry past the last module. */
     bi->mods[i].type = BOOTMOD_XEN;
 
+    for ( i = 0; i < MAX_NR_BOOTDOMS; i++ )
+        bi->domains[i].domid = DOMID_INVALID;
+
     return bi;
 }
 
@@ -977,7 +980,6 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     };
     struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
-    domid_t domid;
 
     if ( opt_dom0_pvh )
     {
@@ -993,15 +995,15 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
     /* Create initial domain.  Not d0 for pvshim. */
-    domid = get_initial_domain_id();
-    d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    bd->domid = get_initial_domain_id();
+    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
     if ( IS_ERR(d) )
-        panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
+        panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
     init_dom0_cpuid_policy(d);
 
     if ( alloc_dom0_vcpu0(d) == NULL )
-        panic("Error creating d%uv0\n", domid);
+        panic("Error creating d%uv0\n", bd->domid);
 
     /* Grab the DOM0 command line. */
     if ( bd->kernel->cmdline_pa || bi->kextra )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:28:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:28:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837643.1253558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBwMc-0005kY-QK; Fri, 15 Nov 2024 13:27:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837643.1253558; Fri, 15 Nov 2024 13:27: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 1tBwMc-0005kR-NP; Fri, 15 Nov 2024 13:27:54 +0000
Received: by outflank-mailman (input) for mailman id 837643;
 Fri, 15 Nov 2024 13:27: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBwMb-0005kL-ON
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:27:53 +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 67b2a603-a355-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 14:27:48 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5cb15b84544so2391810a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 05:27:48 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79c0ad25sm1576784a12.61.2024.11.15.05.27.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 05:27: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: 67b2a603-a355-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY3YjJhNjAzLWEzNTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjc3MjY4LjA3NjEyNCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731677265; x=1732282065; 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=DC6dK6rjdOCXvqT6W8geooDGMZt0T48ALYLa3p/WTrQ=;
        b=G9ImQd6a9YxhLDX2JsnPEp1ehLzLDfyMK5EjEkv7fLKzyscCerfptw8sVHABHQpgfu
         74LNZ7ubdfuv/f3RazX/QMgAW+sRZoMDhq8Y6FRpDmaGvSIaXMVufYi3N3ak1uBQABwD
         A9zU4jZ4xSncXE4nGS4lBhZEYRi7jstFAHK6M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731677265; x=1732282065;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DC6dK6rjdOCXvqT6W8geooDGMZt0T48ALYLa3p/WTrQ=;
        b=w26kaQsEwCAIUqppN06i5jSkFvANLgm6wLXzIahFUTLoHBLJAVyxdo463BirkNqvYU
         4p79YdRAb6J0WAtMleyFWvnpAeIYfgxuAUyvIQ7B9kDMZbvQOVmgZPDBHc0XLe1i46s0
         kOOyzKHZcXWIZLXRjdEjtC94gzWhUTNeWlwL3HGxM4fbVTelCZznYsWzT9wzVfl8hCLx
         GwyR7lqvUZrJ+yJ1VFFX/ujUCjHIawS/uKQhchdNGKR044ZOnaQFObRnqHEYabyLyx+5
         KsVWT3uvnekDGi/nGA9sevdie49KhRGB/8p4QUh1XkdRGwRBQuguhQMcRRCK6ykpLQXT
         bIQA==
X-Gm-Message-State: AOJu0Yx5p9zMgm41uqtbT7BX0D+/E1/RWk4mkq7U2Gib/w6CwrWYwUIR
	3qtyCVLtZy4U8inoCfLRTrENMnq+pEs/CoFefan3yZgIMgDf+Fu4h6lhWNYr+9ptU3NClXS/+cx
	A
X-Google-Smtp-Source: AGHT+IEQvjTxcHmpEpE7H/TZBHNT3ekmYIUVPnqBIAEQZDAkYJJLiRj1wjRv5XXD4AFkjvCML14h3g==
X-Received: by 2002:a05:6402:524e:b0:5cf:6674:c669 with SMTP id 4fb4d7f45d1cf-5cf8fc5488cmr1672020a12.7.1731677265236;
        Fri, 15 Nov 2024 05:27:45 -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>
Subject: [PATCH] x86/emul: Adjust get_stub() to avoid shadowing an outer variable
Date: Fri, 15 Nov 2024 13:27:42 +0000
Message-Id: <20241115132742.2155370-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

Eclair reports a violation of MISRA Rule 5.3.

get_stub() has a local ptr variable which genuinely shadows x86_emul_rmw()'s
parameter of the same name.  The logic is correct, so the easiest fix is to
rename one of variables.

With this addressed, Rule 5.3 is clean, so mark it as such.

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>

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1545385154
---
 automation/eclair_analysis/ECLAIR/tagging.ecl |  1 +
 xen/arch/x86/x86_emulate/private.h            | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index 16e7adb61fe8..9318e5b10ca8 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -35,6 +35,7 @@ MC3R1.R4.1||
 MC3R1.R4.2||
 MC3R1.R5.1||
 MC3R1.R5.2||
+MC3R1.R5.3||
 MC3R1.R5.4||
 MC3R1.R5.6||
 MC3R1.R6.1||
diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h
index 172270a458bd..ef4745f56e27 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -672,19 +672,19 @@ amd_like(const struct x86_emulate_ctxt *ctxt)
 # include <asm/uaccess.h>
 
 # define get_stub(stb) ({                                    \
-    void *ptr;                                               \
+    void *_ptr;                                              \
     BUILD_BUG_ON(STUB_BUF_SIZE / 2 < MAX_INST_LEN + 1);      \
     ASSERT(!(stb).ptr);                                      \
     (stb).addr = this_cpu(stubs.addr) + STUB_BUF_SIZE / 2;   \
     (stb).ptr = map_domain_page(_mfn(this_cpu(stubs.mfn))) + \
         ((stb).addr & ~PAGE_MASK);                           \
-    ptr = memset((stb).ptr, 0xcc, STUB_BUF_SIZE / 2);        \
+    _ptr = memset((stb).ptr, 0xcc, STUB_BUF_SIZE / 2);       \
     if ( cpu_has_xen_ibt )                                   \
     {                                                        \
-        place_endbr64(ptr);                                  \
-        ptr += 4;                                            \
+        place_endbr64(_ptr);                                 \
+        _ptr += 4;                                           \
     }                                                        \
-    ptr;                                                     \
+    _ptr;                                                    \
 })
 
 # define put_stub(stb) ({             \

base-commit: d2bbb0d4554aa08649985d790317ba78f0db22ff
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 13:44:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 13:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837656.1253568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBwd3-0001wl-6z; Fri, 15 Nov 2024 13:44:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837656.1253568; Fri, 15 Nov 2024 13: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 1tBwd3-0001we-4F; Fri, 15 Nov 2024 13:44:53 +0000
Received: by outflank-mailman (input) for mailman id 837656;
 Fri, 15 Nov 2024 13:44: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=OZ3N=SK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tBwd2-0001wY-8U
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 13:44:52 +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 c86239b6-a357-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 14:44:49 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-37d6a2aa748so1063212f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 05:44: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-3821ae311fbsm4352944f8f.95.2024.11.15.05.44.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 05:44: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: c86239b6-a357-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmYiLCJoZWxvIjoibWFpbC13cjEteDQyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM4NjIzOWI2LWEzNTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjc4Mjg5LjI5NjM5OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731678288; x=1732283088; 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=ogQpv6Sqg9/DXWY5+H2+Vc20UW13rxTODknZXHvUoo0=;
        b=HSTMhWUxFaa7C55fWOUbeC7/ZWm/NbgQVfhNMTIKBBwLyCDP64zMfB2XLYcyw04dTr
         wXxdEubcSxtF9+7SSbVyNcdOtxLUR7Pw5natLxe3uy2ULV5lTTX48+IqVvkrRdSmQKCt
         7HpSJIQ5vpi3TU5an83iyo72aa0JJP68tqEAfhOwvi+nN16LSDB/jDg11QutwsuLLBL4
         HbM04wyoLKVXoNxN+1iQq3nBP/WpKxRsNlFgqnt+DHRoCkTV21z4ar3MNYUot1dpVeIU
         3Kd5QyKV4gS6Bl79i9e90AI9sTyDADuLgr3UKJ38k6qVpUawGWkpT5qXx5303mbz/GmM
         poNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731678288; x=1732283088;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ogQpv6Sqg9/DXWY5+H2+Vc20UW13rxTODknZXHvUoo0=;
        b=R6PAUmrxA69glkkQjc6PGcFWWkmIxgz2XZohDSxZFpe7cwFFMINMuH/vQdLkxuKScw
         3CkN+Eh1PtHyX4JvEaBSexPAxZN2yOCXTt3Ok0Dt6YOJvqaH+emK5ka3sv0ecwNbzqwg
         hrnZQgaGWNYffS5g66u4LgSPbq7pZhtI5yXVrhijxqZP5I7vU/A5bUtdCOcpaNjaC7YU
         CslMU/A/6WXcGpkYDc1Qmm5niItMU1Kt+BAYGINq9GrPesLmaGOp094rvfx9VnwMD8Wd
         aWH9n3Vcd4JYYvUJwDBpWL6Af/Vh/PtTCwRMwVffOh5hxIXr7j/W8HXPR/G2hgLJFACc
         kJng==
X-Forwarded-Encrypted: i=1; AJvYcCUJYeQTbQ5pow04xeeCiFYhpWfwUasMv1lugPrmzAczP8VWve94bDNjHBoMOhtMiZ/ImxOE5Uuxvm0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyLFkzAyk6j+engNhS4EY6U9EHASg4DfSCxEiYoNpub/I+s2lE
	jLBKEV0ckwy+4VfW9jxXaBnnbLW4c04ChgvLDLVrFdcKotXTbDvdMVLDDWXuhA==
X-Google-Smtp-Source: AGHT+IHdaMqocuw3nrcUYm7eRJdeQSYjkvDkkmSSplX8piEsW2nlD5S4jJt1H/NqgTa4+rMkFJ1H3g==
X-Received: by 2002:a5d:47a9:0:b0:382:2f62:bd3e with SMTP id ffacd0b85a97d-3822f62c139mr523085f8f.27.1731678288599;
        Fri, 15 Nov 2024 05:44:48 -0800 (PST)
Message-ID: <264e3d8f-4926-4af7-8fa4-bd6c723af401@suse.com>
Date: Fri, 15 Nov 2024 14:44:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/emul: Adjust get_stub() to avoid shadowing an outer
 variable
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241115132742.2155370-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: <20241115132742.2155370-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 14:27, Andrew Cooper wrote:
> Eclair reports a violation of MISRA Rule 5.3.
> 
> get_stub() has a local ptr variable which genuinely shadows x86_emul_rmw()'s
> parameter of the same name.  The logic is correct, so the easiest fix is to
> rename one of variables.
> 
> With this addressed, Rule 5.3 is clean, so mark it as such.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Albeit you certainly know ...

> --- a/xen/arch/x86/x86_emulate/private.h
> +++ b/xen/arch/x86/x86_emulate/private.h
> @@ -672,19 +672,19 @@ amd_like(const struct x86_emulate_ctxt *ctxt)
>  # include <asm/uaccess.h>
>  
>  # define get_stub(stb) ({                                    \
> -    void *ptr;                                               \
> +    void *_ptr;                                              \

... what I think of non-file-scope variable names starting with an underscore.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 14:16:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 14:16:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837669.1253583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBx7M-0007IW-KH; Fri, 15 Nov 2024 14:16:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837669.1253583; Fri, 15 Nov 2024 14:16: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 1tBx7M-0007IP-Gd; Fri, 15 Nov 2024 14:16:12 +0000
Received: by outflank-mailman (input) for mailman id 837669;
 Fri, 15 Nov 2024 14:16: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=3ntz=SK=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBx7K-0007IJ-Vy
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 14:16:11 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2612::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 243ca64b-a35c-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 15:16:01 +0100 (CET)
Received: from DUZPR01CA0076.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46a::7) by AS8PR08MB6581.eurprd08.prod.outlook.com
 (2603:10a6:20b:33a::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.19; Fri, 15 Nov
 2024 14:15:56 +0000
Received: from DU6PEPF0000A7E4.eurprd02.prod.outlook.com
 (2603:10a6:10:46a:cafe::7f) by DUZPR01CA0076.outlook.office365.com
 (2603:10a6:10:46a::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.28 via Frontend
 Transport; Fri, 15 Nov 2024 14:15:56 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000A7E4.mail.protection.outlook.com (10.167.8.43) with
 Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14 via
 Frontend Transport; Fri, 15 Nov 2024 14:15:54 +0000
Received: ("Tessian outbound 6970ca6dd121:v490");
 Fri, 15 Nov 2024 14:15:54 +0000
Received: from La8d5feb9fff5.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DE036C82-0E02-4B49-932A-203E5B4E96C2.1; 
 Fri, 15 Nov 2024 14:15:48 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 La8d5feb9fff5.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 Nov 2024 14:15:47 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DB9PR08MB7769.eurprd08.prod.outlook.com (2603:10a6:10:395::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Fri, 15 Nov
 2024 14:15:44 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.017; Fri, 15 Nov 2024
 14:15: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: 243ca64b-a35c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjJjIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI0M2NhNjRiLWEzNWMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjgwMTYxLjQ2NTAyOSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=GBzskmZ36Mza52w6PVC+okYncGovuSgJZeS5qcUnFKwAeJ3yezDpJaQJK+dfaQyde2RYVQRcJ9pIXebjhBYyq8IpcEHXMEsqqCXVrA1qRqqD+b3O1DGTdY/678BJzulVgDpObBvFYzqlqF7pCAlmxTViAqBgpYTuV73gINfX0w5rCKTJ2R3FUrA3CjSVn2P90igO/MRpzdYhQo4UuNl3/qq9Npkm1f6rotzX5gHp/N8xW2U0qbVaLvVPuCw+cZfjOlkYeRC8BlMHtVrAHEvc23iMyJPhVWHegsRs4vyUZ0hGWLIpDFFGGXdpoFjRLYrHf/Q6hCFVzOzR9DYnrJbj8w==
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=Ucc1JP7lif6TJHsQvyxxCiKlAlRkgS12bWN6XMnIODg=;
 b=Cdqu0IQpqyDH67AzZCuHZIvNqjtWOHZ5U3p9ZvXLrRMDvobsKg22sxkAWw1PEiiDK1jBd69ZLWtNSig7nBFV5sGU/7vIl842cwrDO3x/Pny5KSU9pKCl+Aa5u+eZhXfbOw9jrUcFGIa9EJi96dejHP6IkujSb1q1EmZucfLayPAkBiwIo6tMLQUEA6rx7oCNBouQNoPYx+FMm8mC8RyPyPARUijTMoqDrhCujglAw87emYKGD60j9r6uaxHrwxXhvcfawnQYhBp9SgiVnNNQmDUcINkudJNgNpJmcyeH4JLXv+vT9iQDEx8l4Y3rjkkhn0HvkWUBZ4T+MFc7wGTjjg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=Ucc1JP7lif6TJHsQvyxxCiKlAlRkgS12bWN6XMnIODg=;
 b=RqQjuVOGwCIHeoO/EsILiQ75gz1QbDqEzHik0qFJMg1ybeq34/woEDV87YZ7O8TVtxAnsVVA3mPFJ0nzktkFaa772tYV78/aAYETPIwmj35gLgZcnM+zutqsOb8TJHWCwtOmje4uAFwDVRWaEfPmVrgreuscemSxA3bRjqynnNs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: e1e347b94b71323e
X-TessianGatewayMetadata: +6mAmooaI3m9TgllfQO7M07I6Yc0+C8LybnrTbLuBSgssCmvD99KXSgLSAxosD88WK8qw0TTSLwszfDqO2VZ0ZX4nIo/D5Cox14tlXUYNQEG/gNa5PSsDa/PoN88DE/GyQvS7aCC2J3b73ilsobwWSwub139owAWqGGPJPGkZPk=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uPyohKlI565Hmv73uwM9EOUqVlvCbYQHQ96kyrsUvq7OP2vuKL9h7kh2m8aV5PWIAjvOkCgOqqfMz1WHLZzloHAUoC205npkrgRkoHr45CuV17qNklv9mDdwIFmGahqJsT+63rCqZrk3Ea5TM7LZG8mLNOlLKK46re1hq1I8Nz3wAu8ZiT9wCWRh5dIJppm8ZbZ6+SyJReaFP6ykdPZEo9tl1Ymlk7AKp1YXA68+M4PSFBm11E9245qa6BojKhDXkV3J6XXWXtUolOWcJrVwjkgeR5T944FMF3/9ufMWIOTlafC6M4Ok7Xv02cx8ESqf6NNzW1JGWvtNOT/13DizYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ucc1JP7lif6TJHsQvyxxCiKlAlRkgS12bWN6XMnIODg=;
 b=ouQHoEeD3b8XxaiXi5H8zqOB5y+YB/nkeV1JAjsN/tzkG6cQrlLvYXiSSoC71+lHsO2wO8d0DWOAVE9fMedH7o213mGYTtp9xsynFvnKHOWm+lJyW5Vx7A24BBdtS15M4fNWz8tFqx5h4BRmBaVDcCJN73HPsYL7e0llP6tACuFXYbfTP3E431XcE1RIgQ+1kNRjQTNmtb+o5ZoyuSqzMlyR/16vhtcRaIyd5GxOHoJO9tq6DoAduWBINI8OsuL0W/iaG5QdLQtqz7TFcRIkT/EmXspWpJxTaBC487IwRpB5ybJ35cYmihnWOvK/h2D3pKitQ8wJMqlucX5H8Uw/6Q==
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=Ucc1JP7lif6TJHsQvyxxCiKlAlRkgS12bWN6XMnIODg=;
 b=RqQjuVOGwCIHeoO/EsILiQ75gz1QbDqEzHik0qFJMg1ybeq34/woEDV87YZ7O8TVtxAnsVVA3mPFJ0nzktkFaa772tYV78/aAYETPIwmj35gLgZcnM+zutqsOb8TJHWCwtOmje4uAFwDVRWaEfPmVrgreuscemSxA3bRjqynnNs=
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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbN0xEMVIvN3HbzEuhbXugN/BCZLK4L/YAgAAaC4CAAAkHgIAAEA8A
Date: Fri, 15 Nov 2024 14:15:44 +0000
Message-ID: <CDF98191-3F22-4410-8D5D-88D000AF5EB5@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
 <3a57e277-5fd2-4400-86b9-29479b3dfda1@suse.com>
 <CEB38FF8-ACFD-4AE1-B571-1A9219575EE6@arm.com>
 <58b636eb-a2bb-40f9-87f1-0a38c036a495@suse.com>
In-Reply-To: <58b636eb-a2bb-40f9-87f1-0a38c036a495@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DB9PR08MB7769:EE_|DU6PEPF0000A7E4:EE_|AS8PR08MB6581:EE_
X-MS-Office365-Filtering-Correlation-Id: c37257e9-f141-47b0-c253-08dd0580048f
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|1800799024|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?T0Vna3FaUkxXdHhmN2pzM0F0ODBDa2EzS2tpWFk3MlQ4UisxWmU0ZTgvd3BV?=
 =?utf-8?B?QzJKQ0kxOGNTcDYrUDRGSnBjeGZhS29zNkNlWWovR2o2bStMMW5pYVk2NjF3?=
 =?utf-8?B?UHBZZHdYODVpMEVBWGw2S2kwYWhlL3FTS3FGTjFKZWpOS01Iam5OZjVLYVVW?=
 =?utf-8?B?MEpSaWc1OXE1alZMakxCM1cyMjUxREZFNTFXVjV5YmtaVjVCUVFFc2lTUVE2?=
 =?utf-8?B?RDZ3TGprZFI4dVMzYVQ4YjdiNGI0NTgxQWZVTjlManNTb2hDR3VrbnlZdmpm?=
 =?utf-8?B?bE0zbXQ1cGlZVTRKVklLM1lWY1ZSTTNwUkFoKzBiQnpraFRoTm50ZEZkMGhW?=
 =?utf-8?B?c3h1TUdUd1BJMXdHeWFkN1ZMTFVWcmczVDhSL2o0cmNPQUIzQ21HODBVTjlx?=
 =?utf-8?B?cGhoSktCdmU2RDdWWEQxTHBCVzBGTjhWVTB0VnF5ZEFDbEZleWtILzhnSWVN?=
 =?utf-8?B?NWRtWjgrWWpUZmpuZDN4Tml0Mm1nOWtMRWdtdjd0VThoR0FmN05QbktOV1BS?=
 =?utf-8?B?bWN4YUV4VlpBRitsQnp3R0hVRDFtSEowUGhQVGJpZ2RpVG0zLzdERmtIQjNO?=
 =?utf-8?B?MDhCZ1lzZFpXdUNpSnRCN29XUGJrMWk0OEU5MEJBbXpnblBET1RZWnJzcmpY?=
 =?utf-8?B?SDRKQ2ZQdlRBVFBUcDAyL0ViVnZhcUhCelBreUNtcGlVbm5ZQm03U1V0V0dQ?=
 =?utf-8?B?Z2QwZjU3ejVvR3hLZ2psaFBkUDl1Wmd5ZVpSeU16QjRaMFpuZkQyaDl4M3Ex?=
 =?utf-8?B?b0hSNXpqTnVKN1dmVys5dEJINXNaWkZFVFE1Q0owNTZzZ0Ryamgzc0Y0L2dn?=
 =?utf-8?B?UFlyRzlUcEwxVWZJcmpncUtSUE5UMTZPd0VEMUlUQWtZOW5kNm9oWm42TjdB?=
 =?utf-8?B?dHBkOGFWL2NFSGlMUlZPNW9qeG8waVEvdXNieDloNEJPenlZMG55c2tIcFBN?=
 =?utf-8?B?NkNFd0g3aGxNQ3JJYk9LZFdZY3VuNFVsL2VRU09SNlM4NCtFeGs3ZmhhVFl4?=
 =?utf-8?B?VHd0bkZXdFRXMU92OEJ5REUxOTNXUzBrVlFvZmZLZnRpR0NSUTlqODZOSmdO?=
 =?utf-8?B?ckNJREhmd1NPMERiaG01MFVQVHBDOTFkLzBrbFJEbjFId2ttMkMrb08vMW5s?=
 =?utf-8?B?N3ErUGx1dDRMMDUrUE8reU94aTF2UFdjdFNqOW8waVo1VXlQVVBOdTlObHI2?=
 =?utf-8?B?TUpiRnJjVjc1Uy9DcHZFb1Q1aGhwZnpMVEk3Z0JvSG02djUzUnJQUmRja3lw?=
 =?utf-8?B?SitlN0E0SS9QR0tScG5aOXVyak9ZRkRvdGZxK2N5bGNSY1JqLy9jM3pIL29R?=
 =?utf-8?B?MlFWME9mLzlLTGlxbUkxTWFyM2hvcTV5ZGtrYi82VDkyb0l3bUpNdEgzU2Mw?=
 =?utf-8?B?czZIMVZlOEJTVWNxUTRvYUt5WW96TWlvV2R0ZWZvZVQ3UmkzcWhJRDgwR293?=
 =?utf-8?B?cjFhUE1ibDVjS1ZSUndpRVZoTkNlZDk0VGZwT004TW8zM3JYaWdNc1RVZm9M?=
 =?utf-8?B?aklSY1UxUFlNdk5nOUpTcjJwOXFhVFJJNWhoUm43bXpNcjFzSnBrTVFwaVpt?=
 =?utf-8?B?ZmhnaS9wcDhEY0srUUNHWGlXamUwRGJ5QVNtNXlxcDlOdmFNMzRYcFlrZFhU?=
 =?utf-8?B?VGtvVFNQV2ZDbWFrcmFza2JLcnZVRWpCcm45WFQxYlIveXdRdFNmRE5DeDQw?=
 =?utf-8?B?OGlSVTNoYVQvWm1GRU9rRmNpeURtU29aVVBGVjF6T2FPekFrSk5Ka2duUzB6?=
 =?utf-8?B?eEY3WE5BWW1xejI1RlJMY2VzQnpPckhhMUxVWi9PT2ZnTlNpOGo4V1UxTmRV?=
 =?utf-8?Q?zUfKeeRFMUZAtgrW7r9Bsg2xpneSmqPjFDTo8=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2FF4700D58B68143B481197AD952F2A8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7769
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7E4.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0f36852a-c62e-4c53-3ce0-08dd057ffe9b
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|14060799003|35042699022|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y3FxYW1ERjRTZ2Rrc2NWcDhqSXk1amJTdWV6TUxxSlBsYjVyQVczeFJ2aWN0?=
 =?utf-8?B?TnU0S2N1eXpBdm96cEhGbENzRHlmdU9MK2JJTkZYR0N6am9QbXpqNnJCYWlL?=
 =?utf-8?B?dnc2WnBrdTl3OFNXL05QUG1ic1lNczZ3cFBCN0h0b0lDL0d4cGpBL21zanVT?=
 =?utf-8?B?Rkt2NjdVRnRiRk85czNldzN5dG14UE5HcVcrb3hUVlZ5d3lFZGtUZTQ0RG9M?=
 =?utf-8?B?RDZFVDFsR2RGMWF0Smc5VWZSMW95Q1JwL01nRXo4WFhCOUc2UDlLUTBhQ0or?=
 =?utf-8?B?Vi9lVXN5NDVKdEJSd0dJSExMUEFhZERPd2pKcG15aGtXSGRIYThWeGpYekZo?=
 =?utf-8?B?d3A3QXYxaDZTZmZvT1ZWNlVRc3hNbmFrSzVmTktuRFBIdHVJMHo4WGxoOUlj?=
 =?utf-8?B?S3dzL3BsYTIyWlNaZi9pVnEyUVkzV3hCQWd5cHdSMGMrV0syNVB2cXlxUTV0?=
 =?utf-8?B?UkFNZXVCZ3VkQUo5cXlLbjhvVDJtVW9rQTUwWXU5bGlDdGJlWVcwUHc2V1N0?=
 =?utf-8?B?bDNCdjRJY3BMVWJkalRhRHBJSitKcHk2MUdSOVNQaTVBV09MWGRRaUZmSk1h?=
 =?utf-8?B?T3BMMlV3S3lKVllsdFpxQTBJRER3NmlIbzErdkM5NHY3TmExQmxHMVBqbXND?=
 =?utf-8?B?WmdYTXFXaVcxV3pMM1ZMWS9lanZSZ0pwck81L0JuRjQxaklrck1tWW1pbDFC?=
 =?utf-8?B?dGwyNXJadFA3Qmdnd0lneUNYMDA0V0cyYzZlOTZyaHNVdnlvS08zVmZGY1M2?=
 =?utf-8?B?MEtZOVNKMkZ6cWV4bzZoa1ZpZ1VVSkJTZlhJZkUrNHJIWDZ6SVdzZlorbWpJ?=
 =?utf-8?B?c3hVQUgzQ0Z5Umx2ZmNSRk1GaHB6YjhvS21ONGlZK2tkNFRDSDR1b0k2emVN?=
 =?utf-8?B?bnRaQ2xLbUV0SU1RM0Jkcml0YlV4dU5hbklNK2JVZTBMQ3h4VHFhZjh5djUw?=
 =?utf-8?B?ekIvS0ZIRXI0dnVxUkd3N21Xazc5MDBMbSs1dVhKSDY4OHNaWE85UXUrL29v?=
 =?utf-8?B?VjZQNExud3pITXYwbDZvUmVXRHNBZlRvdXI3YXREOWRadzNQWmkzdU56UmJX?=
 =?utf-8?B?WkZ5NGN1UTFDQ1NQbmtHTHpFckRnNTc1ZnV1WHBaVFNTZXROMVA2SjNrazVj?=
 =?utf-8?B?SFJ6SjFVUTJlMGhoMmRiRzhvUXZiZjJ1QmExYktkMzk4Sm9FbXl2c1hNR3VD?=
 =?utf-8?B?NDgrNTl6ZXZ3TWFEMDV4c1dFWGxBUEpySHpudktjUm1oRDFVNVdTVzhrTGwx?=
 =?utf-8?B?N0VGdHlyT3ZKdnVWRXFyK3pRK3UzaC9NZi9uejkwcWg4NW9pSUxRM0hMVkpZ?=
 =?utf-8?B?d05ybHFvVEczV0pUbWlxUld0NUdwMndjZ1llU3hEQnVqQnNFUzVEMzMxWDRm?=
 =?utf-8?B?N0NKNW03V2NYZ2Judy9kY2Y3MllWUWdOakZMRldleGdiSVNOTldpRXhnYlVE?=
 =?utf-8?B?VU9EWEtSZlNKRE9DVWdzVTlvRDcxM3FaWFpQbXVabDNzNzUya3M1SU1yblEy?=
 =?utf-8?B?SVc2aTN4TmJRTVZmRUtFZXJkSHMvbFdTTXdlY2l0YzZITlM1YUc0NExsbUtG?=
 =?utf-8?B?OCtqYmxxcG5rZUdESjdydGtnVDdOUll0ZzZxQU11L2I0bVA3VDUvZXZUdmoy?=
 =?utf-8?B?c3lkVnI0SzIxb2V6c25aSXBySkxzRm96Q3hwd0ZFTFQyOVJaVE1aYy9CS2s3?=
 =?utf-8?B?cS84VEVZTDRqU2FLRDVrQWZ0OWpoaUVpSmswekhZWkZGekVlM1YzNzY4aUhz?=
 =?utf-8?B?bzVERlh5Q2pZU0Q0bENjd20wMDBuVitkRDE3aUtweWQwUnk1cHFkcHZaWXRP?=
 =?utf-8?B?dGhPeVpFMm0xL1hZWlpkZk81dnZvMmk1aFlzb3p2L1pjNnR3ajZVdVVXVHhk?=
 =?utf-8?B?NWl1djVRK1lGVldmem5NQ1NNTjRHS1FrQkpLeFhUOFJYN1E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(14060799003)(35042699022)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 14:15:54.6805
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c37257e9-f141-47b0-c253-08dd0580048f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000A7E4.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6581

DQoNCj4+IA0KPj4gU3VyZSwgSeKAmWxsIHdyYXAgd2hhdCBjYW7igJl0IGJlIHVzZWQgaW4gTVBV
IGNhc2Ugd2l0aCBIQVNfVk1BUCwgSSB3b3VsZCBsaWtlIHRvIGtlZXAgb3V0Og0KPj4gDQo+PiB2
b2lkICp2bWFwX2NvbnRpZyhtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBucik7DQo+PiANCj4+IHZv
aWQgdnVubWFwKGNvbnN0IHZvaWQgKnZhKTsNCj4+IA0KPj4gdm9pZCBfX2lvbWVtICppb3JlbWFw
KHBhZGRyX3QgcGEsIHNpemVfdCBsZW4pOw0KPj4gDQo+PiBzdGF0aWMgaW5saW5lIHZvaWQgaW91
bm1hcCh2b2lkIF9faW9tZW0gKnZhKQ0KPj4gDQo+PiBzdGF0aWMgaW5saW5lIHZvaWQgdm1faW5p
dCh2b2lkKQ0KPj4gDQo+PiBJbiBvcmRlciB0byBkb27igJl0IHB1dCB0b28gbWFueSAjaWZkZWYs
IGFyZSB5b3Ugb2sgaWYgSSBtb3ZlIHRoZSBkZWNsYXJhdGlvbnMgaW4gb3JkZXIgdG8gaGF2ZSB0
aGVzZSBjbG9zZSB0byBlYWNoIG90aGVyLiBsaWtlIGJlbG93Og0KPiANCj4gU29tZSByZS1hcnJh
bmdlbWVudCBvdWdodCB0byBiZSBmaW5lLCBlc3BlY2lhbGx5IHdoZW4gdGhlICNpZmRlZiBpcw0K
PiBhY2NvbXBhbmllZCBieSBhIGNvbW1lbnQuIEkgY2FuJ3Qgc2VlIGhvdyB0aGVyZSBjYW4gYmUg
I2Vsc2UgdGhvdWdoLg0KDQpZZXMgcmlnaHQsIGNsZWFybHkgbm90IHRlc3RlZCwgdGhhbmtzIEni
gJlsbCBkbyB0aGUgY2hhbmdlcw0KDQo+IA0KPiBKYW4NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 14:25:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 14:25:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837675.1253592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBxGA-0000hf-Ci; Fri, 15 Nov 2024 14:25:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837675.1253592; Fri, 15 Nov 2024 14:25: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 1tBxGA-0000hY-A9; Fri, 15 Nov 2024 14:25:18 +0000
Received: by outflank-mailman (input) for mailman id 837675;
 Fri, 15 Nov 2024 14:25: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBxG8-0000hS-N8
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 14:25:16 +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 6a8fe386-a35d-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 15:25:08 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so115449666b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 06:25:08 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df571a1sm183404966b.80.2024.11.15.06.25.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 06:25: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: 6a8fe386-a35d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhOGZlMzg2LWEzNWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjgwNzA4Ljg1ODU1NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731680708; x=1732285508; 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=U3a7bqY0M5GXsIjJULfc5P4F8rVpTjsajCX20UNpYJc=;
        b=FHxXcO44qJcRlMWPidRnDFuiZQxcOLkqitszl4zHxVnLIyyisvyPuKRUiHL/4C/+6C
         W+37OBuIwathURXby8UwxZQEJUc1i143cm1Wu0/7ayQR8E9VKLWZOxU3T51DoVjJMJhc
         o9WreIt1HEN5wUSHQuwPRypKmiMhlN7HjFVKk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731680708; x=1732285508;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U3a7bqY0M5GXsIjJULfc5P4F8rVpTjsajCX20UNpYJc=;
        b=SxDIEWg7KiDQF85NQ90X/QQVkV8HBohHE4CLA775ceeqxSTPm96qWGfsu2IMJtdNvO
         qYZqFEFuwrmln0DdTbbnnd5GIC63sy2G4ttHG6P+9SD7Qpr+hsH0KW/Xe7f0D2NSN43+
         o4WXZa2EI94KirGegm9brAx6dQcZRG/Y1RlhbHtSSa2wQmyF86jgk6RytX9j4IIMBqYN
         lRH1fi4HDvk39h9wSMzIHGI+Q8/ZtnHiPt6aqNXgX8hFqur/WlnnAePNIXk24RAsVwJK
         Xp4bbhW4bfq+QS6t5CjS4rvjZ4dSqBEfRLvoYCicbsBeiwxTOK7gnmz2IXczS/blJyLJ
         +kfg==
X-Forwarded-Encrypted: i=1; AJvYcCUgncMdhD3y62tukHqSByWihVDGRCkQGQzePXyvK+3Gzxr1Jl0wypbQdIEtuHzmNpVK2tCAj/c847E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweKwjX23avMaNX8N53GpFmxNdxhOEA1aeKMVzFHoVB9zuai/DO
	+GA8CgNnJdYMU2U839MnQahFyycnXCHpIATsF+eR3IgJEzy6iC1heteEZpjbyJc=
X-Google-Smtp-Source: AGHT+IE6iWyxjfJ85GjH9iVFD6dLX6Bk9qzKUQ0aCcKSx/Bd/EJ3jDEpae3b6Msp6h64n6Pv/D06Ag==
X-Received: by 2002:a17:907:7f23:b0:a9e:f28c:374a with SMTP id a640c23a62f3a-aa4834544a3mr217812466b.32.1731680708281;
        Fri, 15 Nov 2024 06:25:08 -0800 (PST)
Message-ID: <305651e4-1567-4675-867e-94fc5bf9caf8@citrix.com>
Date: Fri, 15 Nov 2024 14:25:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/6] x86/boot: convert domain construction to use boot
 info
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-2-dpsmith@apertussolutions.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241115131204.32135-2-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 1:11 pm, Daniel P. Smith wrote:
> With all the components used to construct dom0 encapsulated in struct boot_info
> and struct boot_module, it is no longer necessary to pass all them as
> parameters down the domain construction call chain. Change the parameter list
> to pass the struct boot_info instance and the struct domain reference.
>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

There are two minor things needing noting in the commit message.

1) dom0_construct() turns i from being signed to unsigned.Â  This is
necessary for it's new use, and compatible with all pre-existing uses.

2) dom0_construct() also splits some 3-way assignments to placate MISRA,
on lines which are modified.

> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index 3dd913bdb029..d1bdf1b14601 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -642,15 +643,15 @@ static bool __init check_and_adjust_load_address(
>      return true;
>  }
>  
> -static int __init pvh_load_kernel(struct domain *d, const module_t *image,
> -                                  unsigned long image_headroom,
> -                                  module_t *initrd, void *image_base,
> -                                  const char *cmdline, paddr_t *entry,
> -                                  paddr_t *start_info_addr)
> +static int __init pvh_load_kernel(
> +    struct domain *d, struct boot_module *image, struct boot_module *initrd,
> +    paddr_t *entry, paddr_t *start_info_addr)
>  {
> -    void *image_start = image_base + image_headroom;
> -    unsigned long image_len = image->mod_end;
> -    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
> +    void *image_base = bootstrap_map_bm(image);
> +    void *image_start = image_base + image->headroom;
> +    unsigned long image_len = image->mod->mod_end;
> +    unsigned long initrd_len = initrd ? initrd->mod->mod_end : 0;
> +    const char *cmdline = __va(image->cmdline_pa);

This isn't safe.Â  __va(0) != NULL, so later between ...

>      struct elf_binary elf;
>      struct elf_dom_parms parms;
>      paddr_t last_addr;
> @@ -725,8 +726,8 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,

... these two hunks in the calculation for last_addr, we have:

Â Â Â  ... cmdline ? ROUNDUP(strlen(cmdline) + 1, ...

which does the wrong thing.Â  (And includes the 16bit IVT onto the
guest's cmdline.)


I'd suggest doing the same as we do with initrd_len/etc, and having:

Â Â Â  const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) :
NULL;

to maintain the prior semantics.

>  
>      if ( initrd != NULL )
>      {
> -        rc = hvm_copy_to_guest_phys(last_addr, mfn_to_virt(initrd->mod_start),
> -                                    initrd_len, v);
> +        rc = hvm_copy_to_guest_phys(
> +            last_addr, mfn_to_virt(initrd->mod->mod_start), initrd_len, v);

This is a temporary adjustment, ending up shorter than it starts by
patch 3.Â  I've tweaked it to reduce the churn overall.Â  I can live with
83 chars width for a commit or two...

> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index cc882bee61c3..6be3d7745fab 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -354,13 +355,10 @@ static struct page_info * __init alloc_chunk(struct domain *d,
>      return page;
>  }
>  
> -static int __init dom0_construct(struct domain *d,
> -                                 const module_t *image,
> -                                 unsigned long image_headroom,
> -                                 module_t *initrd,
> -                                 const char *cmdline)
> +static int __init dom0_construct(struct boot_info *bi, struct domain *d)
>  {
> -    int i, rc, order, machine;
> +    unsigned int i;
> +    int rc, order, machine;
>      bool compatible, compat;
>      struct cpu_user_regs *regs;
>      unsigned long pfn, mfn;
> @@ -374,10 +372,13 @@ static int __init dom0_construct(struct domain *d,
>      unsigned int flush_flags = 0;
>      start_info_t *si;
>      struct vcpu *v = d->vcpu[0];
> -    void *image_base = bootstrap_map(image);
> -    unsigned long image_len = image->mod_end;
> -    void *image_start = image_base + image_headroom;
> -    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
> +    struct boot_module *image;
> +    struct boot_module *initrd = NULL;
> +    void *image_base;
> +    unsigned long image_len;
> +    void *image_start;
> +    unsigned long initrd_len = 0;
> +    const char *cmdline;

I'm tempted to put in some newlines here, just to break up the giant
block of variables.

This use of cmdline in principle needs a similar adjustment to the pvh
case, but it's only used once, so I suggest this instead:

@@ -984,8 +982,8 @@ static int __init dom0_construct(struct boot_info
*bi, struct domain *d)
Â Â Â Â  }
Â 
Â Â Â Â  memset(si->cmd_line, 0, sizeof(si->cmd_line));
-Â Â Â  if ( cmdline != NULL )
-Â Â Â Â Â Â Â  strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
+Â Â Â  if ( image->cmdline_pa )
+Â Â Â Â Â Â Â  strlcpy((char *)si->cmd_line, __va(image->cmdline_pa),
sizeof(si->cmd_line));
Â 
Â #ifdef CONFIG_VIDEO
Â Â Â Â  if ( !pv_shim && fill_console_start_info((void *)(si + 1)) )


[edit] Turns out you do this in patch 6 anyway, so this way around will
reduce churn.

Happy to fix on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 14:33:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 14:33:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837687.1253602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBxNT-0002Vi-5o; Fri, 15 Nov 2024 14:32:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837687.1253602; Fri, 15 Nov 2024 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 1tBxNT-0002Vb-3H; Fri, 15 Nov 2024 14:32:51 +0000
Received: by outflank-mailman (input) for mailman id 837687;
 Fri, 15 Nov 2024 14:32: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBxNR-0002VV-9y
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 14:32:49 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 794563bf-a35e-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 15:32:44 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173168115735157.204663624265095;
 Fri, 15 Nov 2024 06: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: 794563bf-a35e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc5NDU2M2JmLWEzNWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjgxMTY0LjcyMjA5NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731681158; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=EH1+25/95f88FqRODSsiLjOPWtH9OO0TZRRdw1ldCCxitrQfG4CzZh8yabtoj8D1dDkerq63r2GkyWqsKFEldf75PwmCPrkLzlIWaqdyXZ4oeJ6EAGkSq9yObMBDTe69iqRHAvYaaJxzzHcUsVgN71aekgHvIZZN4zvFNRXncQE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731681158; 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=OWg3fExvgT8y7nd7dYJBWYZYJC5REduXY7FJt3zqmxk=; 
	b=Pec+e+4dZ5IW8dkRi6CIREYIFr7IU8q80XABuiVyry+D7srDHeb/bt+CY5is6Ncn4kWDVktmJRI9ay2LJxo7N+EtdmFdI+K7sCS7XNHu85Z1SEkjUQnp/UhMKt2NrgqNGzxa69WZ/+zGWLFKPEtJoLtgrFTUYe8QFwSHUBTgE/I=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731681158;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=OWg3fExvgT8y7nd7dYJBWYZYJC5REduXY7FJt3zqmxk=;
	b=L1D7ZxPYZTdpv+7jDgkUy4BasbQM1JI7WNUpE09hoTl1RGLIqdif1PaUz58S8iB/
	4Ol8/MtOefJKW4fy1hbkzGInLjelUsJbWPlxPofHOV353zg7Q281OKUHrzhY4HmckMq
	Q/PsIj79wIf6cgnPITD6vmwU+hHg1/CtCIwjJPRM=
Message-ID: <13a6a3c8-ff72-4b59-bf48-8fa925cadcbb@apertussolutions.com>
Date: Fri, 15 Nov 2024 09:32:22 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/6] x86/boot: convert domain construction to use boot
 info
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-2-dpsmith@apertussolutions.com>
 <305651e4-1567-4675-867e-94fc5bf9caf8@citrix.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <305651e4-1567-4675-867e-94fc5bf9caf8@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/15/24 09:25, Andrew Cooper wrote:
> On 15/11/2024 1:11 pm, Daniel P. Smith wrote:
>> With all the components used to construct dom0 encapsulated in struct boot_info
>> and struct boot_module, it is no longer necessary to pass all them as
>> parameters down the domain construction call chain. Change the parameter list
>> to pass the struct boot_info instance and the struct domain reference.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> There are two minor things needing noting in the commit message.
> 
> 1) dom0_construct() turns i from being signed to unsigned.Â  This is
> necessary for it's new use, and compatible with all pre-existing uses.
> 
> 2) dom0_construct() also splits some 3-way assignments to placate MISRA,
> on lines which are modified.

Ack.

>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
>> index 3dd913bdb029..d1bdf1b14601 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -642,15 +643,15 @@ static bool __init check_and_adjust_load_address(
>>       return true;
>>   }
>>   
>> -static int __init pvh_load_kernel(struct domain *d, const module_t *image,
>> -                                  unsigned long image_headroom,
>> -                                  module_t *initrd, void *image_base,
>> -                                  const char *cmdline, paddr_t *entry,
>> -                                  paddr_t *start_info_addr)
>> +static int __init pvh_load_kernel(
>> +    struct domain *d, struct boot_module *image, struct boot_module *initrd,
>> +    paddr_t *entry, paddr_t *start_info_addr)
>>   {
>> -    void *image_start = image_base + image_headroom;
>> -    unsigned long image_len = image->mod_end;
>> -    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
>> +    void *image_base = bootstrap_map_bm(image);
>> +    void *image_start = image_base + image->headroom;
>> +    unsigned long image_len = image->mod->mod_end;
>> +    unsigned long initrd_len = initrd ? initrd->mod->mod_end : 0;
>> +    const char *cmdline = __va(image->cmdline_pa);
> 
> This isn't safe.Â  __va(0) != NULL, so later between ...

Yah, that was careless to assume.

>>       struct elf_binary elf;
>>       struct elf_dom_parms parms;
>>       paddr_t last_addr;
>> @@ -725,8 +726,8 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
> 
> ... these two hunks in the calculation for last_addr, we have:
> 
>  Â Â Â  ... cmdline ? ROUNDUP(strlen(cmdline) + 1, ...
> 
> which does the wrong thing.Â  (And includes the 16bit IVT onto the
> guest's cmdline.)
> 
> 
> I'd suggest doing the same as we do with initrd_len/etc, and having:
> 
>  Â Â Â  const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) :
> NULL;
> 
> to maintain the prior semantics.

Agreed.

>>   
>>       if ( initrd != NULL )
>>       {
>> -        rc = hvm_copy_to_guest_phys(last_addr, mfn_to_virt(initrd->mod_start),
>> -                                    initrd_len, v);
>> +        rc = hvm_copy_to_guest_phys(
>> +            last_addr, mfn_to_virt(initrd->mod->mod_start), initrd_len, v);
> 
> This is a temporary adjustment, ending up shorter than it starts by
> patch 3.Â  I've tweaked it to reduce the churn overall.Â  I can live with
> 83 chars width for a commit or two...

Just trying to ensure I don't get dinged, so no objection on my part.

>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>> index cc882bee61c3..6be3d7745fab 100644
>> --- a/xen/arch/x86/pv/dom0_build.c
>> +++ b/xen/arch/x86/pv/dom0_build.c
>> @@ -354,13 +355,10 @@ static struct page_info * __init alloc_chunk(struct domain *d,
>>       return page;
>>   }
>>   
>> -static int __init dom0_construct(struct domain *d,
>> -                                 const module_t *image,
>> -                                 unsigned long image_headroom,
>> -                                 module_t *initrd,
>> -                                 const char *cmdline)
>> +static int __init dom0_construct(struct boot_info *bi, struct domain *d)
>>   {
>> -    int i, rc, order, machine;
>> +    unsigned int i;
>> +    int rc, order, machine;
>>       bool compatible, compat;
>>       struct cpu_user_regs *regs;
>>       unsigned long pfn, mfn;
>> @@ -374,10 +372,13 @@ static int __init dom0_construct(struct domain *d,
>>       unsigned int flush_flags = 0;
>>       start_info_t *si;
>>       struct vcpu *v = d->vcpu[0];
>> -    void *image_base = bootstrap_map(image);
>> -    unsigned long image_len = image->mod_end;
>> -    void *image_start = image_base + image_headroom;
>> -    unsigned long initrd_len = initrd ? initrd->mod_end : 0;
>> +    struct boot_module *image;
>> +    struct boot_module *initrd = NULL;
>> +    void *image_base;
>> +    unsigned long image_len;
>> +    void *image_start;
>> +    unsigned long initrd_len = 0;
>> +    const char *cmdline;
> 
> I'm tempted to put in some newlines here, just to break up the giant
> block of variables.

Yes, this is a very long block of declarations.

> This use of cmdline in principle needs a similar adjustment to the pvh
> case, but it's only used once, so I suggest this instead:
> 
> @@ -984,8 +982,8 @@ static int __init dom0_construct(struct boot_info
> *bi, struct domain *d)
>  Â Â Â Â  }
>   
>  Â Â Â Â  memset(si->cmd_line, 0, sizeof(si->cmd_line));
> -Â Â Â  if ( cmdline != NULL )
> -Â Â Â Â Â Â Â  strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
> +Â Â Â  if ( image->cmdline_pa )
> +Â Â Â Â Â Â Â  strlcpy((char *)si->cmd_line, __va(image->cmdline_pa),
> sizeof(si->cmd_line));
>   
>  Â #ifdef CONFIG_VIDEO
>  Â Â Â Â  if ( !pv_shim && fill_console_start_info((void *)(si + 1)) )
> 
> 
> [edit] Turns out you do this in patch 6 anyway, so this way around will
> reduce churn.

Ack.

> Happy to fix on commit.

No objection.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 14:56:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 14:56:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837700.1253612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBxkd-0005YD-06; Fri, 15 Nov 2024 14:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837700.1253612; Fri, 15 Nov 2024 14:56: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 1tBxkc-0005Y6-Tn; Fri, 15 Nov 2024 14:56:46 +0000
Received: by outflank-mailman (input) for mailman id 837700;
 Fri, 15 Nov 2024 14:56: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=3ntz=SK=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tBxkc-0005Y0-4s
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 14:56:46 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2613::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d299ade6-a361-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 15:56:41 +0100 (CET)
Received: from DB8PR09CA0010.eurprd09.prod.outlook.com (2603:10a6:10:a0::23)
 by PAXPR08MB7573.eurprd08.prod.outlook.com (2603:10a6:102:24f::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 14:56:39 +0000
Received: from DB1PEPF000509FC.eurprd03.prod.outlook.com
 (2603:10a6:10:a0:cafe::a7) by DB8PR09CA0010.outlook.office365.com
 (2603:10a6:10:a0::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 14:56:39 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB1PEPF000509FC.mail.protection.outlook.com (10.167.242.38) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Fri, 15 Nov 2024 14:56:38 +0000
Received: ("Tessian outbound 99d3b165dfe9:v490");
 Fri, 15 Nov 2024 14:56:38 +0000
Received: from L5f5aeaf0fdc0.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 B0C98A08-F6FA-41BC-ACCD-F1769F940DBB.1; 
 Fri, 15 Nov 2024 14:56:31 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L5f5aeaf0fdc0.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 15 Nov 2024 14:56:31 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by PAXPR08MB7383.eurprd08.prod.outlook.com (2603:10a6:102:22e::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 14:56:26 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.017; Fri, 15 Nov 2024
 14:56: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: d299ade6-a361-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjJlIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQyOTlhZGU2LWEzNjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjgyNjAxLjYzNjYyOCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=MhTbpO0gfdDguiiHb6Z5FCVqFidtjUjf6yVS93WIQRGiHKlNPMHZci2cj5gQbtfbJwaSyVBSyyNOaH+3tkdxrBmgpMfc8kvCJC6w8rLK3cT3fjTe7Yk1T6fqDPE8wM0e2gj5BaWr3YcdVQygXZ5UIT2XREQYro81rxfG9gXq6bbxVqF2Jj2/EyFIPPgK6KbfOQZES57YrVC1XcsOSgnD67K3Db1RJzH55pyi6hdmNH82ze7uEaWpbz6BxtwfRaDXhW+NzgdwSCQOsBHzeqFtY3Wc420gO3RFcBQnkv213ZcoRJ1plmHgnKArtzTFkVQzXVRH5Mzbd1rUx+DbHz6rRg==
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=EQm5PRmAqPol3vKxgkvAEAE38jM0XehU8n7J78c1Av8=;
 b=tdslc9+Vs1uZCh1CMeJsu8+CFVm/89lUPQv4xrM6+FFdivjhuywq+7oWa5A6v2PCQGkp+Fz8OUq17lmYBp87yn1lGQtvrn5HZMuQ4Y8ql28gICJbBc2krLM2jrVZO5IL0Z+MRGga3chqq4DHcvFtekDSNqwU38oWMDAS3IQbAogmpkPtGkspwUhA2EZJL4U64yH3R5Y8S9Pf/rxhOIBqzrUwvk6TJE39rT+3M5gNd1jSoCgkX8btr5qpzirxnaNZiyP73KlJS2vzO5OU9/ExQiOZZH0F3fc1B0KJz6qFFBdt8uB/otCg9bJC/qm3bjjTEK/H8WMNJQf+qGly7Cd5Ug==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=EQm5PRmAqPol3vKxgkvAEAE38jM0XehU8n7J78c1Av8=;
 b=XoHH+DGJCW+tJBPI9aFHs8xFMFNST9dlWlcQnktx5MobpieI8KuHieg2+xDJAmTLXJM+BNbls5eZVVZC9Z/4ID1RTvAw0pP/2WGRopIbIuoNlqftIv0cCUDvUjRtW6/r3ZPdG7apNAKw/ggP1ho6igVtYbL2NOxcBbrtEEYmMPw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: b535ff75437cf246
X-TessianGatewayMetadata: ddeGbUaeA+fLQu54FpLlpdF/j5qs8ua+o3QjNO9XyFjSGdi7ScP0aqNyjwPFnt3UUdVsDvf3MdIy5SVGTwLaZN1W7eJOauwXFzyygi3OYT3XrU1MUYcXbCbdgWXTzWO3LNjfBN5RoWUzFGO0E4Lc6A9CIRjvS3fLHy+G02vGPEA=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KKDrUQa9BaM+lMXLoVNlhnRKJEkgl/jP8gHn4vWax/FZwEswPy/R/8hsS+Pukn/z3Ri36kqJk9Ku/Ozl7kGaajBQdn8edlWp1b7fofApNuMZ3iGhc6S+Lb6M/WH6PpUY3C2pqmG/HrkTjyL8GQGYxB/baE26zyLIF+csqpnYNIigSYb60bDG9OJiS06ncJ7rcn7BCEWwjGbLKD5+TLxIP32X/RW0e8UCCDKsxB6wcBIKdc53lNgT26RdMilwHGBgoC/POfaqWqMtsaVzReMBhCRSdAQS028CMxHRtrTF8d5KjjBEKAF8YX2EEee2AdgKOd1ba/bOhuSTuINCQq4/Bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EQm5PRmAqPol3vKxgkvAEAE38jM0XehU8n7J78c1Av8=;
 b=bqNVcsBnViCHYn2qedMWnAtRtlPKZJZwuxpezw9Lw1l1UCqikEfyicAZfZldNrCe2TaDBmzipiKY0yaKTqmg++GXRVVz5tWrTHivXHezz4KNlg+dCsaLk2cA7aGZT1o6AwmUdIKwOEYQCjLitwsn75EmM9zbg+CLj0MxJZEKZpzoIPDQ3SjTk/iZL4CsjeZiTosMTd0LITCpOWH3P4Dq2zFl/Si01dczQb3Nbe8nc/Ie86XT4fcsUDS/eZA3fLsJdw/Rnx9De2xBLAbb0jABi3629uc5VfIAGtdFornBDoQfFYizx9CP6NnlOrSYpzZxNS+B/NX9l83wDjHPy7PjIw==
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=EQm5PRmAqPol3vKxgkvAEAE38jM0XehU8n7J78c1Av8=;
 b=XoHH+DGJCW+tJBPI9aFHs8xFMFNST9dlWlcQnktx5MobpieI8KuHieg2+xDJAmTLXJM+BNbls5eZVVZC9Z/4ID1RTvAw0pP/2WGRopIbIuoNlqftIv0cCUDvUjRtW6/r3ZPdG7apNAKw/ggP1ho6igVtYbL2NOxcBbrtEEYmMPw=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbN0xEMVIvN3HbzEuhbXugN/BCZLK4PUmAgAAELwCAAANMAIAAKZWA
Date: Fri, 15 Nov 2024 14:56:25 +0000
Message-ID: <EC8A6D23-6CB0-43AC-9C1C-675F2AC8EE06@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-2-luca.fancellu@arm.com>
 <2b13f12c-905d-478c-b525-a3a8c69d5ac7@citrix.com>
 <F693DC5E-C4E5-445C-AE3F-24EE76B34D90@arm.com>
 <f81d4195-a41f-4ec8-bc9e-3e836472469e@citrix.com>
In-Reply-To: <f81d4195-a41f-4ec8-bc9e-3e836472469e@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|PAXPR08MB7383:EE_|DB1PEPF000509FC:EE_|PAXPR08MB7573:EE_
X-MS-Office365-Filtering-Correlation-Id: 63637ab7-2387-47a8-cc1e-08dd0585b52e
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?UXA1azdHb0MyRGhnbC9NV0F3TTBFTVIzaFNlOHBPZEpXak56dkEvUVVRd3Y0?=
 =?utf-8?B?OXlmRG0xTnhVREx4QTJCYzdGQVpwWjNpR1FGZm1CcCtKbEtOTWlBNWRxVUw3?=
 =?utf-8?B?ME9sTE9jTU9YOGFTbTdyMmozK1dsVE44OEZrTFRWOGNjOHVmemFhMzJzN1ZF?=
 =?utf-8?B?UldpdHpQSktOSzlqMDRsdTFiblBkeFVCbnp0SnhTdzZoSmFiNnlTYjNlRGRE?=
 =?utf-8?B?Mk5lTGlsUmEyS0dkTmZsL0NtUElneTdSWk90bEZaSTg5SE9tMXpwWlI2M0dv?=
 =?utf-8?B?MkY4RFVhb1E5cCtyN2dSYlc0cWRvMWNHanFHT0RvSytseFFDanR5cDZndGxw?=
 =?utf-8?B?SHdneUpoTyt0M2dSc0x1SzhXOThkOWJvczh2MWJ6MnR1b0ZRYXpiWm1kdzZx?=
 =?utf-8?B?S2YwWTNLaXJtRUtxb3VFS2tjRkVoSSt4OGVZeG00T3pMSGhMWExyN0F5TWhp?=
 =?utf-8?B?NUNHdzUxaytCb28ycUFmU2doaGcxMU1uUXZDdXQ1Ym5FV3ZhNXR3KzVFcHZy?=
 =?utf-8?B?eHNFelNsUU1vYUc5dHZidjBOY3R1d0N5NHZjbzZGb3BMa2RqeWlwWWNiUTJy?=
 =?utf-8?B?ZzNPcHMrbkNsd2V5V045UUpJdVRLdHJ4VlZENXRpdWphbWlrNjVRbVNWRjdR?=
 =?utf-8?B?SmJYalpZbkY4TXdEd0dCNjFBZWVTUGEwMXlvaTk1SHVQWG9NcVVpRFFabzFF?=
 =?utf-8?B?anJOYkhyNlNLZHdtZHJBTU9JOFBqZk5CN3BacDNoUVM1RnliM3F6ZW0ySytE?=
 =?utf-8?B?U2hKWUlWUEk5bVNvR2xXVDQ3RkhncHlqSXM5NnJJYUk4MFRZZ3FhU3JXME1k?=
 =?utf-8?B?NGlrL29sNHdYVlpBUU9sREVnMEFPTzVXeElXZXdLL2xFeFF3Sm5Hc3JRblNv?=
 =?utf-8?B?bkg4bmg5Zmw5bGV2RjVaUGQyUGllYnZCWnFwS3l6eXdSWHF5QnlhUTdCNXBm?=
 =?utf-8?B?Y1d4UitlcWRoRHFtTnlUcmdTYWlTSUs5VXVxYUNQZEVwd0Z6TTdhL2pyU29h?=
 =?utf-8?B?SlY1dWlZZm1mZWU1cVBZWmVkZWpLRzU4ckl1RjJwZkV1d0NFNkZ0eE9yRGI0?=
 =?utf-8?B?eTFpSk56dll2Z2s4Q2hiZlJ6eitjL3dKaG1QUSs3eFdCajZmejFTTWRHTGd4?=
 =?utf-8?B?cjcxLy9LSzlxeS9GdkZ4U2JVcTZmbVNVd2kyc2F0Rjd6aUJoMy80OUtIYWRm?=
 =?utf-8?B?VFd5d216Wlpid09WMU5aMElWek5RdEJaZGdIWkRzUms0V3p1M2pUbEVabzJ1?=
 =?utf-8?B?VEtHVlZzMzFucXdCdFVNTzZ2ZTYxVno4WkZ0WFBLVkRNVUJKRk9GSjB5cTUv?=
 =?utf-8?B?dGdqZHlhNTNDUm1ScWV0ejI4a3Q3WDRsdkJScWZjOFRjQjU2WlhZVktpRXQ4?=
 =?utf-8?B?ZlJQVEQyK21FUW5sR2JQWENOb2xubFBnMHY4azc3SWdxS0d4QlhSTDFWY1Fz?=
 =?utf-8?B?UjEyTnJpMDNoR0J0c2grSzVNcFdnREQ2UGtwUkFCL1VFRFFubWc2TFV2WE83?=
 =?utf-8?B?SzV0NzVwUkZhZGk2SHMzNWhUbURHOUZ4VHRxR2lrOUhQQytOMkxadXVPeURw?=
 =?utf-8?B?cDM5QXlhWEtYbUgyKzVuWEVMb1J0NXZaM09WdGRtZkNKa0VldjgxdS9ZVkhQ?=
 =?utf-8?B?R1Eva0FubDJ4VU96bkZJcUJKWnd5c1hrZkhTNU8rZk9LQWhsbzludEhuL1U0?=
 =?utf-8?B?Y3N6SW5YM1RBeExTUC9rUVU1djRTYUhZNFhzSzF3QStCcUpNM082TnhRWHoy?=
 =?utf-8?B?Um56aWJUYWY5bTJyaVhDY1BWQm55RmpmVERhekRhRlN1MnZpSkprTGxxeWdr?=
 =?utf-8?Q?nal3HKD7GpnXc+V5vldeax/S+/4ZdUR0SuSi8=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <5B71484E1C5E2E42AE723D245250E148@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7383
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509FC.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	699a3d78-7641-4b37-1b09-08dd0585adc0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|36860700013|376014|35042699022|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QTZ1YnZjZ1o5MFpoeUdUcFZYa01sRTJhdWlHVUpCaXFSOU8wRFJjU0NzSU53?=
 =?utf-8?B?TUhvNnRjMlpWY0lzMG45OXJhc1NOWkpiV0NlanMrMnE0U0FjdkpNS0ZVcEM4?=
 =?utf-8?B?bUtJckIyNlhBOGJKMitRMXErbVlBZVNZUTc3UGhpUndqR1FpWnVSZ1ZDd2h4?=
 =?utf-8?B?dTl0c2FteTUvQnFDTS9YT2NLTGdyRnVaQ2l6eEoxcS80Qlh1b1RDVGxFQk9P?=
 =?utf-8?B?V1JDQ25YOWF3NElHMzBJc0xET1ZzWEdNWHRhR2wyczhxcHJ1L0twQVhrc3BM?=
 =?utf-8?B?NGhHdzZQdlVZeU80SDZLWDhhRTZ6M0dGb2ZkYmVFMVQraGpjQ2VXQ01YWVg4?=
 =?utf-8?B?ZkgzTUc5UGZyOUg4Vi9qZTJYbDRhaGY4YWY3aElqTGE4QU1IQUJCNW1ZMkFF?=
 =?utf-8?B?Tk40LzFjKzhXQW1rbG80ZFZ6L2pRdGsxSDBUaGhuSzV3THFhK2w2SU1LSE03?=
 =?utf-8?B?L3VKeEhqaU5xMU5oOFB4UFFLOWFRc3IrL21nbS8yWm9DdWN4clhxRk9VUHNB?=
 =?utf-8?B?N2FGZ2k0WFJMK0NLOERSb1VITlBkTm1MdDVNQXBYMGQ1T2gybWJNS3MzdXF3?=
 =?utf-8?B?TFV1eWhQQTZUUHhBN0NsR01vMys4cW1HZmc5eWRHTk1RdlMrUzJLRHQvNGRJ?=
 =?utf-8?B?NmgwTTcvL095NjlwRFRyRzJ2TDRmRFkxMWVhc1hCMWRVTTBNV2ZjY2ZVT0Rq?=
 =?utf-8?B?c1ZmNmRmbTVweEZWa2NUd2Njd3VKMFhvaUxaV3VNeHN3NmU5cjJhelRqbFVK?=
 =?utf-8?B?Q1JFdkd1cnhoSUoyZXBhck9Rd1p1aTlibzFhY2M3Nkg5WWRwdjJGVnpEa2gr?=
 =?utf-8?B?RjdXY3V5TGIwOFpSMmlpKzVYLzRRVk82L3o5VWVGcmsyazlzZ01ySW83NVpX?=
 =?utf-8?B?K0hUdkplbysvc2w3N2liYTNzUnVWb1p4eDg0RWpRZGpuVXI3MVJUV2FxdHBJ?=
 =?utf-8?B?V3Q4QlMrTENjckdUNTJSQ21JbzRSTW53VkJzVmxWbFZSU0ZkVkNhV1VBc05F?=
 =?utf-8?B?Z1ZOa0pZeFZMRTRDRkI1ajlPYTJSS0tFY01Id25ZQnMxdE15QU1uNWczTVF1?=
 =?utf-8?B?Ym1FcER4ZC9HdWxIdGFlajBmeDk3SHl5MG4rQXE3bG9Ta1A3ZUZ0Q0RCeXJN?=
 =?utf-8?B?ME81TFFRVUFIMEYxN0czdngra2JpYWF6MjdvY0xYdm5WLzFYYSt5eUNMcVA4?=
 =?utf-8?B?bXhYKzNCb2taYytLTTFYTlBhK1hvRzZXc0R3WWY1d2Zibk5YYmxic0tLaE1T?=
 =?utf-8?B?YTcvc09SWnF1N0VwaloyWk5vQ21HMitvNEpTOFNOa1FQNzdsMU8rUjlKb3NV?=
 =?utf-8?B?V0ZQQ1cxaE9ucnMxSjhmTTh5ZGRvSUNXWWYxVnNRTDlVQjNwYmFaVWNTMGZS?=
 =?utf-8?B?YzhPY0dVcXdZYTNycGUxTUlDWFpjeFphS1dxQmU2bzY4WnMycGxmZjlmT0ov?=
 =?utf-8?B?Z3hBYVVsSms0cmVjVkZ3cURJM0NBOXNreTI3VXFkRk9RODF4YUNXaThjYU1o?=
 =?utf-8?B?bkpUK3dYYnN4T2pMbHBjOHlmRHBzUlc4YkdHa1NsSEFPK0xmRlErS3pXek5h?=
 =?utf-8?B?R0poUXQ1elFsd2hTMDhKcXpTdlVsT0ZQWWw0WFdQVG1WZWYwbTRtOHJpV09o?=
 =?utf-8?B?aTQzV0NGS3lpcmhDMDZoWXlHMnFoQmlCWThnR09QQVRKOWxmbWp1VkRoZkc4?=
 =?utf-8?B?YUI2T0Z6MC9rL2FFc1V0T0FPTTJCQXI4OEVQTmVka0RRWDZ6czFUdUZvNno0?=
 =?utf-8?B?SkdIRG13QWZBMHptT09pbjdWUGJ6Nm1zWjM4ZzcwaWc3ZWNSQ256bGlEZEYw?=
 =?utf-8?B?SUlPUnNBdmRrU0JlZnNYTmpJWkU4WTUwWmtuY1AyUDdIdlVvNlE1eWdKUmN5?=
 =?utf-8?B?VmtEekNVZGRUQmx3MElKeERoNFJudnI2bk84NUpIR2tHOFE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(36860700013)(376014)(35042699022)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 14:56:38.5010
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 63637ab7-2387-47a8-cc1e-08dd0585b52e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509FC.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7573

SGkgQW5kcmV3LA0KDQo+Pj4+ICsNCj4+Pj4gK3ZvaWQgKl94dnJlYWxsb2Modm9pZCAqdmEsIHNp
emVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24pDQo+Pj4+ICt7DQo+Pj4+ICsgICAgcmV0dXJu
IF94cmVhbGxvYyh2YSwgc2l6ZSwgYWxpZ24pOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICsjZW5k
aWYNCj4+PiBEb2VzIHRoaXMgcmVhbGx5IGNvbXBpbGUgd2l0aCB0aGUgd3JhcHBlcnMgbm90IGJl
aW5nIHN0YXRpYyBpbmxpbmUgPw0KPj4+IA0KPj4+IFRoYXQgYXNpZGUsIGNvdWxkIHdlIG5vdCBk
byB0aGlzIHVzaW5nIGNvbmRpdGlvbmFsIGFsaWFzZXMsIHJhdGhlciB0aGFuDQo+Pj4gd3JhcHBp
bmcgdGhlIGZ1bmN0aW9ucz8gIEl0IHdvdWxkIGNlcnRhaW5seSBiZSBzaG9ydGVyLCBjb2RlIHdp
c2UuDQo+PiBEbyB5b3UgbWVhbiBzb21ldGhpbmcgbGlrZSBiZWxvdz8NCj4+IA0KPj4gI2RlZmlu
ZSB4dmZyZWUgeGZyZWUNCj4+ICNkZWZpbmUgX3h2bWFsbG9jIF94bWFsbG9jDQo+PiBb4oCmXQ0K
PiANCj4gSSBtZWFuIF9fYXR0cmlidXRlX18oKF9fYWxpYXNfXygiIikpKQ0KPiANCj4gVGhlcmUg
YXJlIHR3byBleGFtcGxlcyBpbiB0cmVlIGFscmVhZHkuICBTZWUgZWZpX2NvbXBhdF9nZXRfaW5m
bygpIGJlaW5nDQo+IGFsaWFzZWQgdG8gZWZpX2dldF9pbmZvKCkNCj4gDQo+IEluIHRoaXMgY2Fz
ZSwgaW4gdGhlICFIQVNfVk1BUCBjYXNlLCB3ZSdkIGp1c3QgZGVjbGFyZSBfeG1hbGxvYygpIHRv
DQo+IGhhdmUgYW4gYWxpYXMgY2FsbGVkIF94dm1hbGxvYygpIHRvby4NCj4gDQo+IFRoaXMgYXZv
aWRzIG5lZWRpbmcgdG8gd3JhcCBldmVyeSBmdW5jdGlvbiBpbiB0aGUgaGVhZGVycy4NCg0KSeKA
mW0gZ2V0dGluZzoNCg0KZXJyb3I6IOKAmHh2ZnJlZeKAmSBhbGlhc2VkIHRvIHVuZGVmaW5lZCBz
eW1ib2wg4oCYeGZyZWXigJkNCg0KbG9va2luZyBpbnRvIHRoZSBkb2N1bWVudGF0aW9uIGl0IHNh
eXM6DQoNCuKAnEl0IGlzIGFuIGVycm9yIGlmIHRoZSBhbGlhcyB0YXJnZXQgaXMgbm90IGRlZmlu
ZWQgaW4gdGhlIHNhbWUgdHJhbnNsYXRpb24gdW5pdCBhcyB0aGUgYWxpYXMuIg0KDQpTbyBJIHRo
aW5rIEkgY2Fu4oCZdCB1c2UgdGhpcyBvbmUgaGVyZS4NCg0KU2hvdWxkIEkgY29udGludWUgdG8g
ZG8gaW4gdGhlIG90aGVyIHdheT8gT3IgdXNpbmcgI2RlZmluZT8NCg0KPiANCj4gfkFuZHJldw0K
DQo=


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 15:13:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 15:13:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837713.1253623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBy0P-0000BX-Ar; Fri, 15 Nov 2024 15:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837713.1253623; Fri, 15 Nov 2024 15:13: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 1tBy0P-0000BQ-7u; Fri, 15 Nov 2024 15:13:05 +0000
Received: by outflank-mailman (input) for mailman id 837713;
 Fri, 15 Nov 2024 15:13: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBy0N-0000BK-QA
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 15:13:03 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18c3fdc6-a364-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 16:12:59 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731683572636659.0883717722601;
 Fri, 15 Nov 2024 07:12: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: 18c3fdc6-a364-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE4YzNmZGM2LWEzNjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjgzNTc5LjYxNDk0NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731683575; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=kPdFFtbE4s4V+9qQlfVZgRGEjMfVBP/BGIjscEQxw6hBTLImTzMsGlLmyZ5aXD0bppIsP0QdouGNZOomMNdAKF3C0p7iqu9H0Pr6Fz3J+OlZ1n1ge/+30CLcWTVybOcgIRU4EexDzmiP3LXfGTPAjZIA1YpyRZJ8yd2u7W7gxjk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731683575; 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=x688VtOWmkR2fH+WQr53SMOXIaZl9Xmk74PS80O51cI=; 
	b=nQ9Sa5pYBr8UFZ62uAnkFLSGezviJ3kT79danG4BPAaoaTo2P6PLtqVjgjuEi8FDc/KcKSqipKk9Z4al1bB4qv5ACdcuv0RR5T7vaTbz20xQhRzYoX/k8WT+7usZfTW7sLIhZ45DMLSHlDCUhmsadzjTZGSSlE7UDTcyxjL7PCg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731683575;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=x688VtOWmkR2fH+WQr53SMOXIaZl9Xmk74PS80O51cI=;
	b=OpmHOLSr06a8pFoNj8Sb9uwcMerwxq7X2PF8SYRx+tiy2VGmJ+yiiMquNM0KT+f5
	4nG0FoaSbKijC4g5kq1uciJLeUjUmRmEgKQHOpOChlxXDPuswJ3amdD5qN5Y0DyMkj1
	+flsO6bhU6lxrtbUtDLgYr+VZjsddF6t2iKT1vZo=
Message-ID: <73fe03ee-c16f-4665-b284-a271952a8a69@apertussolutions.com>
Date: Fri, 15 Nov 2024 10:12:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 6/6] x86/boot: add cmdline to struct boot_domain
To: xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-7-dpsmith@apertussolutions.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241115131204.32135-7-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/15/24 08:12, Daniel P. Smith wrote:
> Add a container for the "cooked" command line for a domain. This provides for
> the backing memory to be directly associated with the domain being constructed.
> This is done in anticipation that the domain construction path may need to be
> invoked multiple times, thus ensuring each instance had a distinct memory
> allocation.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v8:
> - switch to a dynamically allocated buffer
> - dropped local cmdline var in pv dom0_construct()
> 
> Changes since v7:
> - updated commit message to expand on intent and purpose
> ---
>   xen/arch/x86/include/asm/bootdomain.h |  2 ++
>   xen/arch/x86/include/asm/dom0_build.h |  1 +
>   xen/arch/x86/pv/dom0_build.c          |  6 ++--
>   xen/arch/x86/setup.c                  | 49 ++++++++++++++++++++++-----
>   4 files changed, 45 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
> index 3873f916f854..75e7c706d86e 100644
> --- a/xen/arch/x86/include/asm/bootdomain.h
> +++ b/xen/arch/x86/include/asm/bootdomain.h
> @@ -12,6 +12,8 @@ struct boot_module;
>   struct domain;
>   
>   struct boot_domain {
> +    const char *cmdline;
> +
>       domid_t domid;
>   
>       struct boot_module *kernel;
> diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
> index 8c94e87dc576..6ca3ca7c8a43 100644
> --- a/xen/arch/x86/include/asm/dom0_build.h
> +++ b/xen/arch/x86/include/asm/dom0_build.h
> @@ -4,6 +4,7 @@
>   #include <xen/libelf.h>
>   #include <xen/sched.h>
>   
> +#include <asm/bootinfo.h>
>   #include <asm/setup.h>
>   
>   extern unsigned int dom0_memflags;
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index f42aeb031694..91bcce1542bc 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -379,7 +379,6 @@ static int __init dom0_construct(struct boot_domain *bd)
>       unsigned long image_len;
>       void *image_start;
>       unsigned long initrd_len = initrd ? initrd->size : 0;
> -    const char *cmdline;
>       l4_pgentry_t *l4tab = NULL, *l4start = NULL;
>       l3_pgentry_t *l3tab = NULL, *l3start = NULL;
>       l2_pgentry_t *l2tab = NULL, *l2start = NULL;
> @@ -422,7 +421,6 @@ static int __init dom0_construct(struct boot_domain *bd)
>       image_base = bootstrap_map_bm(image);
>       image_len = image->size;
>       image_start = image_base + image->headroom;
> -    cmdline = __va(image->cmdline_pa);
>   
>       d->max_pages = ~0U;
>   
> @@ -972,8 +970,8 @@ static int __init dom0_construct(struct boot_domain *bd)
>       }
>   
>       memset(si->cmd_line, 0, sizeof(si->cmd_line));
> -    if ( cmdline != NULL )
> -        strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
> +    if ( bd->cmdline )
> +        strlcpy((char *)si->cmd_line, bd->cmdline, sizeof(si->cmd_line));
>   
>   #ifdef CONFIG_VIDEO
>       if ( !pv_shim && fill_console_start_info((void *)(si + 1)) )
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 533a1e2bbe05..b9ca9c486fe5 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -963,10 +963,31 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
>       return n;
>   }
>   
> -static struct domain *__init create_dom0(struct boot_info *bi)
> +static size_t __init domain_cmdline_size(
> +    struct boot_info *bi, struct boot_domain *bd)
>   {
> -    static char __initdata cmdline[MAX_GUEST_CMDLINE];
> +    size_t s = 0;
> +
> +    s += bi->kextra ? strlen(bi->kextra) : 0;

Working on the subsequent series and realized this line could/should be 
merged with the declaration line;

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 15:31:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 15:31:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837727.1253633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tByI2-0003Q8-QL; Fri, 15 Nov 2024 15:31:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837727.1253633; Fri, 15 Nov 2024 15:31: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 1tByI2-0003Q1-N9; Fri, 15 Nov 2024 15:31:18 +0000
Received: by outflank-mailman (input) for mailman id 837727;
 Fri, 15 Nov 2024 15:31: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tByI1-0003Pv-Fm
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 15:31:17 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a503aa17-a366-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 16:31:13 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731684666510153.32777909395384;
 Fri, 15 Nov 2024 07:31: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: a503aa17-a366-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE1MDNhYTE3LWEzNjYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjg0Njc0LjI2NDAyMiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731684669; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=lDYfAyeARF84BHblEEg4JaQXe2daExmpeBN671C0a2UuEw8e8L7JNMq9I01R2JFwIOl+xS5RMdFS/mYlY66naWScKTJIPawYvoEJ7p5chXwbP5vfKasc+MajK3By72+HKEaQl8psqMTgL82NCo+o6kuN8CzEL5EvfqGCuRl7XYk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731684669; 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=TKdtslLSIhKbALEPsVQD5f8zYXoQFa/thBHaY+yGAss=; 
	b=aoZp9Kd3/zInKXzjaZw1D2cizFwgCxdfPRyxJjf2m43Vkr0vigTIu7FRGB4bpLLUavppW5bS9YV8HQ87ER5Z9QR+lyiF6kzyjOkonHMRLixyhGJKs3pmEN2gutkcrvdK81rWLFuo/5OGyWjELKcdteU51igimx2oGucl0+dCQzk=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731684669;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=TKdtslLSIhKbALEPsVQD5f8zYXoQFa/thBHaY+yGAss=;
	b=eImSsVlq1RYoIVJfsiGAfCnCfwZoM5clkBEN3MheTzb1uU9elfwJb5rup48sXTYR
	/4bfZvvRrPl9tIq9cpq2ZNT8T4PEasUw7CtkJHjD6qDioOJUTWtE7ycomJOjGL9RQxD
	iM65mgUFLR+xI34Za66IelbymrvdGFDgn1MtS9gM=
Message-ID: <972e232e-f468-454b-abfe-2924493c7dac@apertussolutions.com>
Date: Fri, 15 Nov 2024 10:31:04 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 5/6] x86/boot: introduce domid field to struct
 boot_domain
To: xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-6-dpsmith@apertussolutions.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241115131204.32135-6-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/15/24 08:12, Daniel P. Smith wrote:
> Add a domid field to struct boot_domain to hold the assigned domain id for the
> domain. During initialization, ensure all instances of struct boot_domain have
> the invalid domid to ensure that the domid must be set either by convention or
> configuration.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
>   xen/arch/x86/include/asm/bootdomain.h |  2 ++
>   xen/arch/x86/setup.c                  | 12 +++++++-----
>   2 files changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
> index 12c19ab37bd8..3873f916f854 100644
> --- a/xen/arch/x86/include/asm/bootdomain.h
> +++ b/xen/arch/x86/include/asm/bootdomain.h
> @@ -12,6 +12,8 @@ struct boot_module;
>   struct domain;
>   
>   struct boot_domain {
> +    domid_t domid;

There is no definition for domid_t in this file, the only reason it has 
yet to fail, is that everywhere it is included has xen.h included before it.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 15:35:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 15:35:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837734.1253643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tByLx-000452-98; Fri, 15 Nov 2024 15:35:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837734.1253643; Fri, 15 Nov 2024 15:35: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 1tByLx-00044v-60; Fri, 15 Nov 2024 15:35:21 +0000
Received: by outflank-mailman (input) for mailman id 837734;
 Fri, 15 Nov 2024 15:35: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=b7N1=SK=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1tByLv-000444-AH
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 15:35:19 +0000
Received: from galois.linutronix.de (galois.linutronix.de
 [2a0a:51c0:0:12e:550::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35aa1d5b-a367-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 16:35:15 +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: 35aa1d5b-a367-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMGE6NTFjMDowOjEyZTo1NTA6OjEiLCJoZWxvIjoiZ2Fsb2lzLmxpbnV0cm9uaXguZGUifQ==
X-Custom-Transaction: eyJpZCI6IjM1YWExZDViLWEzNjctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjg0OTE1LjQwODcxNCwic2VuZGVyIjoidGdseEBsaW51dHJvbml4LmRlIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1731684913;
	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=yU1G2hIrLcZlXd3LaebeyKYONXTnd34hSfRSQEHJ1yU=;
	b=IBWtp97mInpsavyNlaW7Wa7P9t1WIhdFZFGtmkYainZ6bfXDspevPRYpFW4pLoFiUdTJD4
	U5VvdoT1K3yOQRre+DBq0sQWHdk4rIynAWjUT2zmNpIj2n43BIKL0t0/Vf6l/rtvSO0Fi+
	gDrBIw99IdYG1uqRK3qErn9uAAGZz664d/tZZ8KcSi+2Phfl0Sz1omrERQ/lrAOES/7JlS
	yRewNvz7aEuvd8A4q0Bq1FSIlOgXPmu0k2lEr6yoDeEt0bajmGyelDX+RQ8ypFICvCudhA
	M17FF+uzSWHmHhP49+FBOqW8qbOWE/x/12QiHel/8b+KvHi6yusfYdMgsiBxnw==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1731684913;
	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=yU1G2hIrLcZlXd3LaebeyKYONXTnd34hSfRSQEHJ1yU=;
	b=HbOShzA2dgF/rf/JxxHpay75yREzH698PUJ7XWVcQ8L3AwP4KqCVbfvEjEUE+BssSSuAzH
	UAxm3b5R+xtq6JDw==
To: Philipp Stanner <pstanner@redhat.com>, Damien Le Moal
 <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>, Basavaraj Natikar
 <basavaraj.natikar@amd.com>, Jiri Kosina <jikos@kernel.org>, Benjamin
 Tissoires <bentiss@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Greg
 Kroah-Hartman <gregkh@linuxfoundation.org>, Alex Dubov <oakad@yahoo.com>,
 Sudarsana Kalluru <skalluru@marvell.com>, Manish Chopra
 <manishc@marvell.com>, Andrew Lunn <andrew+netdev@lunn.ch>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rasesh Mody
 <rmody@marvell.com>, GR-Linux-NIC-Dev@marvell.com, Igor Mitsyanko
 <imitsyanko@quantenna.com>, Sergey Matyukevich <geomatsi@gmail.com>, Kalle
 Valo <kvalo@kernel.org>, Sanjay R Mehta <sanju.mehta@amd.com>, Shyam
 Sundar S K <Shyam-sundar.S-k@amd.com>, Jon Mason <jdmason@kudzu.us>, Dave
 Jiang <dave.jiang@intel.com>, Allen Hubbe <allenbh@gmail.com>, Bjorn
 Helgaas <bhelgaas@google.com>, Alex Williamson
 <alex.williamson@redhat.com>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Philipp Stanner <pstanner@redhat.com>,
 Mario Limonciello <mario.limonciello@amd.com>, Chen Ni
 <nichen@iscas.ac.cn>, Ricky Wu <ricky_wu@realtek.com>, Al Viro
 <viro@zeniv.linux.org.uk>, Breno Leitao <leitao@debian.org>, Kevin Tian
 <kevin.tian@intel.com>, Mostafa Saleh <smostafa@google.com>, Andy
 Shevchenko <andriy.shevchenko@linux.intel.com>, Jason Gunthorpe
 <jgg@ziepe.ca>, Yi Liu <yi.l.liu@intel.com>, Kunwu Chan
 <chentao@kylinos.cn>, Ankit Agrawal <ankita@nvidia.com>, Christian Brauner
 <brauner@kernel.org>, Reinette Chatre <reinette.chatre@intel.com>, Eric
 Auger <eric.auger@redhat.com>, Ye Bin <yebin10@huawei.com>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-input@vger.kernel.org, netdev@vger.kernel.org,
 linux-wireless@vger.kernel.org, ntb@lists.linux.dev,
 linux-pci@vger.kernel.org, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 07/11] PCI: MSI: Use never-managed version of pci_intx()
In-Reply-To: <20241113124158.22863-9-pstanner@redhat.com>
References: <20241113124158.22863-2-pstanner@redhat.com>
 <20241113124158.22863-9-pstanner@redhat.com>
Date: Fri, 15 Nov 2024 16:35:22 +0100
Message-ID: <87y11kzf0l.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Wed, Nov 13 2024 at 13:41, Philipp Stanner wrote:
> pci_intx() is a hybrid function which can sometimes be managed through
> devres. To remove this hybrid nature from pci_intx(), it is necessary to
> port users to either an always-managed or a never-managed version.
>
> MSI sets up its own separate devres callback implicitly in
> pcim_setup_msi_release(). This callback ultimately uses pci_intx(),
> which is problematic since the callback of course runs on driver-detach.
>
> That problem has last been described here:
> https://lore.kernel.org/all/ee44ea7ac760e73edad3f20b30b4d2fff66c1a85.camel@redhat.com/
>
> Replace the call to pci_intx() with one to the never-managed version
> pci_intx_unmanaged().
>
> Signed-off-by: Philipp Stanner <pstanner@redhat.com>

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:09:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:09:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837777.1253669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tByss-0001ua-1v; Fri, 15 Nov 2024 16:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837777.1253669; Fri, 15 Nov 2024 16:09: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 1tBysr-0001uT-V9; Fri, 15 Nov 2024 16:09:21 +0000
Received: by outflank-mailman (input) for mailman id 837777;
 Fri, 15 Nov 2024 16:09: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=cHts=SK=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tBysr-0001uN-1s
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:09:21 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20615.outbound.protection.outlook.com
 [2a01:111:f403:2412::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f5039800-a36b-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 17:09:14 +0100 (CET)
Received: from SJ0PR05CA0142.namprd05.prod.outlook.com (2603:10b6:a03:33d::27)
 by DS7PR12MB5886.namprd12.prod.outlook.com (2603:10b6:8:79::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8158.18; Fri, 15 Nov 2024 16:09:09 +0000
Received: from CO1PEPF000066E7.namprd05.prod.outlook.com
 (2603:10b6:a03:33d:cafe::2f) by SJ0PR05CA0142.outlook.office365.com
 (2603:10b6:a03:33d::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Fri, 15 Nov 2024 16:09:08 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000066E7.mail.protection.outlook.com (10.167.249.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 16:09:08 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 15 Nov
 2024 10:09:07 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 10:09:06 -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: f5039800-a36b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjE1IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImY1MDM5ODAwLWEzNmItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjg2OTU0LjIxMTgxNCwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k49UfSqXC1mwSvtkpaHl/PstKXKw8gxHTj8weTN0ronpp16gNEP20C6OSxfuH/HII5s3E8Xs3uyMbYorm6EIhhJkY1XxF7OCyC8Og5Qref6+4zSP/0MkR4VkvsWgblEGka0aZYjDtl0iOF8/SlzrmlMAYnIA1IRbtTHvU6N6ScRah5vqGmx+r6LncV8z5JFeu6iT5vvhRLaTD0NofO3TSyIsb7u6DSt5tHgCq6dp+syviWAKH4dHi8EFuLCsJHpxt+v84bHvHYUhCICxHBXS4CbV9BjwRa3ZOG7xuFDHX8NBeYgoybQONbNORSuPYlNFMeojyWCGKLoMrIaLdw9eWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jEbVazS3AoHbUeTpCOIluv83BoXD0jOYFn6x4Id4meU=;
 b=pUW8ptZrQX9XCOjkes1qWIJgTBaZGr8D+wKLDBYMslw/cQzIUlr6TzKtNMhoAlbRaY/e8vCro19eO0w1xvDwIqGbPnOM4sr4Ns21OmNXFYdwOUVhth/EQV5qroS34HYwV54wdTPHdossip8Zv/R+40kU+Wc/HD9uw6LCFA0RtKu0Jruy/74Y1MS1Fv86rt1LtFTs3acwBlnJ21IG+fumZv32Y/xjyrU4/YaSfH5I2RHqmPnXOYzYFNNL3ikmomruBRxKlSCsEpMCFjRcfKdP786Y2oNDfpWfX6jwtfLg8C6yRhwwMWwCDW/KH9DL+onhhv2ges8IAGM1SpDaLvY+Lw==
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=jEbVazS3AoHbUeTpCOIluv83BoXD0jOYFn6x4Id4meU=;
 b=XTpBvkYo2UICs/ZQbOXkKxyYifIfvwB1eLilFkHBeofV4YgqlkvM414V9l3S29aWZg4FHJCNslsq5y0JSNXQDvM1RFzgIYsFBlJSgK0k5EFvaJTrtwslU4pDb3ldpTXZV77iz3KoPIFf2+KgeW2m8guityiZblATnEigML8DvZw=
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=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Teddy
 Astie" <teddy.astie@vates.tech>
Subject: [PATCH v8 0/3] xen: SR-IOV fixes
Date: Fri, 15 Nov 2024 11:09:01 -0500
Message-ID: <20241115160905.551224-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066E7:EE_|DS7PR12MB5886:EE_
X-MS-Office365-Filtering-Correlation-Id: fabe0af5-fbbb-440c-aee5-08dd058fd5d8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?C93wUb5dFtC6fKoCfk1rCbLVQTJBinI1350F8qLbR/E04T8GV/AeV9gzqL1h?=
 =?us-ascii?Q?DvHWmbH3ORIjhmip1Shicajc0ma6p8nSo6fWPLrsQoXLhYyuQOfhhhH9vp+j?=
 =?us-ascii?Q?cccaeVUYGSM5KyyvNeYsFyf0driHJXAYbLHWbAyTFcQlvEedYHMAXbji4MO2?=
 =?us-ascii?Q?riBt3rNicU6a99zxqL5ycQO2SAdDlMxi7cDLE/vWezztp+ebuTTaIrC2zZ7J?=
 =?us-ascii?Q?RJNxm4/PvLTj8KJwGlTNIWUHQktBlS56l6WzEGiSjqvxVGK/uK+XuQhg5xDX?=
 =?us-ascii?Q?dA4thl92tUshxHUzT061FAK1nfkfnqSFtQKhQEfzPBg5U80PjLEhl1SWc0Ex?=
 =?us-ascii?Q?K9ee+1LroohEKfyosjnP826ubbzgRzG+LxJwPYu4GrCon2A8V8TYLn4seyyW?=
 =?us-ascii?Q?lO1khJVsFCatCurU5pX5RcBRguXSOoWYON/GLB7nUdjeg3mfNDxMfH2uRCVM?=
 =?us-ascii?Q?jclnUHfguOiVgsGecoiq0qgz3UGlYPJqcI6ZqOiIshJ1TsWK9fmOzCY4jPFJ?=
 =?us-ascii?Q?9Su+OUbSfBsHmbusn8utteQV9WUeilXC5C21o/UEwu5mC1AqR1PYNG3pg2lq?=
 =?us-ascii?Q?r2A+rkcAK8NHKSrDVgocbYxuyDE0eKaByeABu1EWfFb+YDRUtdSdAtfJS5Kx?=
 =?us-ascii?Q?39Vm1zGk5Rb5IVZrHqxV+k0yrg5LMbgC36j/zXo2tjTChElmZmDoiftzW7VN?=
 =?us-ascii?Q?lUpucRS9jkCJvrqkESgxYNfzbdXX2Ug/2N9J5Sas5XQly/0rPe5PqBr3lSe5?=
 =?us-ascii?Q?Ostxhfm3b99VNocKEcbpT3DUkmTXI1kL67ywsFurtHukvYN1NJZaWhuEaaBF?=
 =?us-ascii?Q?j2kfb5wVmf+IKXVwShVDk32OTZGfPfAANlE4bW4GNuvfgAS5nyq9shA+usKE?=
 =?us-ascii?Q?vx+++KEp9sIR0RSTwuRfXwSt9DTMauN2wTjiu9KVv9kTjMihaceGshinVkKc?=
 =?us-ascii?Q?WIZaQLs2ZrULvKgriRdF/XSWU+rU437tkdK/ekisSXLkZWTJ2Zz5tus4nXXr?=
 =?us-ascii?Q?nr7uu86FdmXTaCbnlKyH8eIv9MGrN55WSubbux45O5eV/KBiWLAEqCoLcvTm?=
 =?us-ascii?Q?ncO8gKhKWb9Pya0py/EPFWQowG4DJ6xKQ+LT2ixCEBHw3LsDFVBpColQnrDf?=
 =?us-ascii?Q?u+fjX4XySweEx2QhoNqmdbQwkb0tuMkZI5kH+ujaH0N3YBKY4oZZ/e73JpQk?=
 =?us-ascii?Q?OsqUZGHXHgCk22LrpBgTSj3rXe+MPKA+Ek/81c8WKK/nyb/L87BYyHImZUqP?=
 =?us-ascii?Q?hrypY7x2J4oRDD4jFxPS+G0GmkUx05MEpECb0I0sRAhCRByeDgl+fWSQ0feG?=
 =?us-ascii?Q?rfnzApvMHu3NME5ys0d3cEsv8ZY0pMHxGB79eQUynOTmQQlsUr3lV1AOBEVM?=
 =?us-ascii?Q?OxMHRW1qalwctHf2BC2SiQueHy4fmcmM19rbFhPG6LVpgGw+PQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 16:09:08.1125
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fabe0af5-fbbb-440c-aee5-08dd058fd5d8
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066E7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5886

Introduce PV<->VF links and fix a regressiong related to a locking
change.

Stewart Hildebrand (3):
  xen/pci: introduce PF<->VF links
  x86/msi: fix locking for SR-IOV devices
  xen/pci: remove logic catering to adding VF without PF

 xen/arch/x86/msi.c            | 36 +++++++++-------
 xen/drivers/passthrough/pci.c | 78 +++++++++++++++++++++++++----------
 xen/include/xen/pci.h         | 15 ++++++-
 3 files changed, 92 insertions(+), 37 deletions(-)


base-commit: b1ebb6461a027f07e4a844cae348fbd9cfabe984
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:09:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:09:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837778.1253679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBysy-0002AH-Ak; Fri, 15 Nov 2024 16:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837778.1253679; Fri, 15 Nov 2024 16:09: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 1tBysy-0002AA-6i; Fri, 15 Nov 2024 16:09:28 +0000
Received: by outflank-mailman (input) for mailman id 837778;
 Fri, 15 Nov 2024 16:09: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=cHts=SK=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tBysw-0001uH-N2
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:09:26 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2009::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9d25211-a36b-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 17:09:23 +0100 (CET)
Received: from PH7PR02CA0007.namprd02.prod.outlook.com (2603:10b6:510:33d::13)
 by SJ0PR12MB8113.namprd12.prod.outlook.com (2603:10b6:a03:4e0::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.17; Fri, 15 Nov
 2024 16:09:15 +0000
Received: from SN1PEPF00036F40.namprd05.prod.outlook.com
 (2603:10b6:510:33d:cafe::6c) by PH7PR02CA0007.outlook.office365.com
 (2603:10b6:510:33d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 16:09:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00036F40.mail.protection.outlook.com (10.167.248.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 16:09:15 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 15 Nov
 2024 10:09:14 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 10:09: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: f9d25211-a36b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjBhIiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImY5ZDI1MjExLWEzNmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjg2OTYzLjEzNjQ4OCwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uBCNrG6U1b+v3/QO+kl5cqvJx/qJP4V2pyB2DJljkXrnnfx0tRHKmDYNxATU2tOnZadwvRgGAOpApOeQr89sLTMjhWQWcjbLGAtpDd1xt72aStMROmev1HTMtxeIVvmza3uyvA3Etwy5t9fDDyfWeXJJWkB73Wzqmw/oQmsgjtTyAVQuO5xDNk+9cy5r5wX3AGLdjyWscyJ3W5aUYJexzP6NMZz1cvjEdH5Js6A99tBlgLKZjIAVLa0p5VIUJ2UN9koFsXgWnVaHMa4/CANKzTaYuI1jVzwLkMLPuqAImZN3c9nQ+wpbM1qjeW1v5DF3Sy4DIcB1xxc8LFwpV/TQPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6dgSRDSguain7FanHlOnJmwBRlTv1DEkQEKN/zq4jkg=;
 b=sbU5XtrJdb4LENwGLuuWVhPAhYT/BeLZz+wawz9FmzwOeaH4tigOR9desar0B9badCewz75FaqQqr2B7eeac3htgnJI0/NL9BYJyoIn3rorfGXCX+9i0VA5APu4mNiJ+yBsnyoR2d7/JiqLsvf4gLFcaD8hHN0XR/Qy/hoc4BqnIC3R6MZqtwhCW/8RZKTWUZ6SJA6LuZEJJwwnA2UK0R9btml1PmImZrF6S2INjVonPhxgAtp3tju6XtUOcAQi3iuXO1xrcojxAYFB9o3S8qV8SALcYVqMWG8VE3+ANvrxyj7D47LbYbJm19if+Dvc1Xkru5jQJc4eO4bFwyLdrMg==
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=6dgSRDSguain7FanHlOnJmwBRlTv1DEkQEKN/zq4jkg=;
 b=o1MXuTh+W/0lZ8yfBv9+KlXGjdAPH9ARcaLsBvQKmFYrY3bLBvVgUpK+EO9W93av5rPA1xkgJgczMaZcutVhuk53EOXOLYlLAZdezOy7ugEzFE2IAEzL9xrL/dV0i7OdXl6VW4jUNClHywZyQMDfKbA1im8/W3dkJvLnGu7apnU=
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=SATLEXMB04.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 1/3] xen/pci: introduce PF<->VF links
Date: Fri, 15 Nov 2024 11:09:02 -0500
Message-ID: <20241115160905.551224-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115160905.551224-1-stewart.hildebrand@amd.com>
References: <20241115160905.551224-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F40:EE_|SJ0PR12MB8113:EE_
X-MS-Office365-Filtering-Correlation-Id: a654b0a1-3dcd-48f0-bfc2-08dd058fd9fc
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?bM5+wxRFzWXXJGfox39smoWvak3z9q/ckpo4SZf9EDdzYdB6XtI5tMfEh7oJ?=
 =?us-ascii?Q?AuVkFULuPLGKZOMOiOvtvMOYki66i5GhA09bXnpCqTQZvViiVXi1AjeYZugR?=
 =?us-ascii?Q?KolFzcC2i8vh7BQ3T+lOBsBL6JnVWEoy3OfgM2gPd0VkM+zVYPRXaZldemn3?=
 =?us-ascii?Q?4QJT9J2w9Z9CUcIlXvuRcXGifRSHc8iJmf8Vs6UEVh8CnE8ANsvx0mfesesA?=
 =?us-ascii?Q?kWeeRxj0jurN7hRVefUWw3UZKPj7fg/wTslYB9yNWeUCwuljk8hkbMj6cXAf?=
 =?us-ascii?Q?d+/yrL4VWD1E1Gm6avzc8L17sujYdDkZzKFJhuOIIuJYRTrlBBAPI9hWxPvZ?=
 =?us-ascii?Q?O7WlBkl+Q4EkXpQH+1p6o1AUw9SRvwLirlpYUvmBUxO6FcW9yqUUQiMKVynx?=
 =?us-ascii?Q?EgIMlWtM3n6uaXglCLRf1pLQk3Kdj0eegMW/2zSvihYYHzCwikJtu0giHtCV?=
 =?us-ascii?Q?3xzo40UpsDoAVUB6zPANAeRRgYrs14qeElkUNRJ9U8VRuvMFN8dpvb+Ps20e?=
 =?us-ascii?Q?vOTKMEaiF5qThFBpXn3EPkqPA3+sDvwF5AH6a8a9aqXoW9eUFA2pC5KCvXN9?=
 =?us-ascii?Q?GqQOsuibCogrtVxfd/kJNJu/d9PYoFjoeqihPj9fhM+WGVgM0gsRxa4ODl5U?=
 =?us-ascii?Q?1Ya7x7exhNOU+0hgnVdvXXmizUIZ2KwGDzPDUWFGtQpzCGt3VVPh1LDKehYA?=
 =?us-ascii?Q?fw5SQmD2+1cPnFkIv3djOPUyi/8G4Vy+VhQ5ijljEe07OfGL/5Eh2wbKryNz?=
 =?us-ascii?Q?jQ+gq5pcJT0vZKEyhRuuqEMaToQ2ycOVRV8u3gHi+8RphqRoY0Mj1Xuv9j2T?=
 =?us-ascii?Q?Tbjv+Ora1pCPfjYqIGURsu+54xIy19fhrog3LxkL50kk3gUB6/cZ5JmuYI8z?=
 =?us-ascii?Q?HJz0HwvhdtzgNpUUJwGftUn+Sy7SNTuWPPoJHJx1VVnZcja3ya1K0/iCCxGm?=
 =?us-ascii?Q?iyA5ejWbqAtuule50A8reKc58Z54YoUYJBcF0sEXVy2KpCpRYI5YM6cGbIHH?=
 =?us-ascii?Q?SYHIl+uIXFa0jX8PArJaDaiQN/EgwsbSyJT1Ipe9k3YzIGkgz/GDLD/1NWTv?=
 =?us-ascii?Q?WFGOUsoWveavMgKPqhBzCcCZ2WsSqyI6nbXZzxbd+sxi02YKd29JEwqXpVh0?=
 =?us-ascii?Q?EcWB0JJ1qyAG0VLP/+BXlSbv92OkBK1ri0B5cR8YeIejNSensZgz4RnwaClF?=
 =?us-ascii?Q?mNxFWi29trEXv3y2NWoTedj45kMMFgOjA4w4hJxwPsdOO96gxTavx2kIbki0?=
 =?us-ascii?Q?bBdGatU+YkbBRVBBuF0NIFt4S5HIJnqlCAWB5hQ8Gz417f4+3mG4ciYRJKHv?=
 =?us-ascii?Q?22ZypdoFwML2J/f4e4fNJlY4bxZnMdkW+qL7TvyRXTx1RpLwzcznnpTfHoC7?=
 =?us-ascii?Q?8Nn5HfKLSl9qjLex4fC+CL8sWIraHB9BdB0SngT2aPXR5QvkKA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 15 Nov 2024 16:09:15.1223
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a654b0a1-3dcd-48f0-bfc2-08dd058fd9fc
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F40.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8113

Add links between a VF's struct pci_dev and its associated PF struct
pci_dev.

The hardware domain is expected to remove the associated VFs before
removing the PF. If removal happens out of order, print a warning and
return an error. This means that VFs can only exist with an associated
PF.

Additionally, if the hardware domain attempts to remove a PF with VFs
still present, mark the PF and VFs broken, because Linux Dom0 has been
observed to not respect the error returned.

Move the calls to pci_get_pdev() and pci_add_device() down to avoid
dropping and re-acquiring the pcidevs_lock().

Check !pdev->pf_pdev before adding the VF to the list to guard against
adding it multiple times.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
Candidate for backport to 4.19 (the next patch depends on this one)

v7->v8:
* re-add logic catering to adding VFs without PF for backporting (split
  removal to separate patch)
* move & reword comment about is_extfn
* check pdev->pf_pdev to guard against multiple list addition
* re-indent pf_pdev initialization

v6->v7:
* cope with multiple invocations of pci_add_device for VFs
* get rid of enclosing struct for single member
* during PF removal attempt with VFs still present:
    * keep PF
    * mark broken
    * don't unlink
    * return error
* during VF add:
    * initialize pf_pdev in declaration
    * remove logic catering to adding VFs without PF

v5->v6:
* move printk() before ASSERT_UNREACHABLE()
* warn about PF removal with VFs still present
* clarify commit message

v4->v5:
* new patch, split from ("x86/msi: fix locking for SR-IOV devices")
* move INIT_LIST_HEAD(&pdev->vf_list); earlier
* collapse struct list_head instances
* retain error code from pci_add_device()
* unlink (and mark broken) VFs instead of removing them
* const-ify VF->PF link
---
 xen/drivers/passthrough/pci.c | 87 +++++++++++++++++++++++++++--------
 xen/include/xen/pci.h         |  8 ++++
 2 files changed, 77 insertions(+), 18 deletions(-)

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 74d3895e1ef6..3fe2e7884f45 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -333,6 +333,8 @@ static struct pci_dev *alloc_pdev(struct pci_seg *pseg, u8 bus, u8 devfn)
     *((u8*) &pdev->devfn) = devfn;
     pdev->domain = NULL;
 
+    INIT_LIST_HEAD(&pdev->vf_list);
+
     arch_pci_init_pdev(pdev);
 
     rc = pdev_msi_init(pdev);
@@ -449,6 +451,10 @@ static void free_pdev(struct pci_seg *pseg, struct pci_dev *pdev)
 
     list_del(&pdev->alldevs_list);
     pdev_msi_deinit(pdev);
+
+    if ( pdev->info.is_virtfn )
+        list_del(&pdev->vf_list);
+
     xfree(pdev);
 }
 
@@ -656,24 +662,11 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     unsigned int slot = PCI_SLOT(devfn), func = PCI_FUNC(devfn);
     const char *type;
     int ret;
-    bool pf_is_extfn = false;
 
     if ( !info )
         type = "device";
     else if ( info->is_virtfn )
-    {
-        pcidevs_lock();
-        pdev = pci_get_pdev(NULL,
-                            PCI_SBDF(seg, info->physfn.bus,
-                                     info->physfn.devfn));
-        if ( pdev )
-            pf_is_extfn = pdev->info.is_extfn;
-        pcidevs_unlock();
-        if ( !pdev )
-            pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
-                           NULL, node);
         type = "virtual function";
-    }
     else if ( info->is_extfn )
         type = "extended function";
     else
@@ -698,12 +691,48 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     if ( info )
     {
         pdev->info = *info;
-        /*
-         * VF's 'is_extfn' field is used to indicate whether its PF is an
-         * extended function.
-         */
         if ( pdev->info.is_virtfn )
-            pdev->info.is_extfn = pf_is_extfn;
+        {
+            struct pci_dev *pf_pdev =
+                pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus,
+                                            info->physfn.devfn));
+
+            if ( !pf_pdev )
+            {
+                ret = pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
+                                     NULL, node);
+                if ( ret )
+                {
+                    printk(XENLOG_WARNING
+                           "Failed to add SR-IOV device PF %pp for VF %pp\n",
+                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
+                           &pdev->sbdf);
+                    free_pdev(pseg, pdev);
+                    goto out;
+                }
+                pf_pdev = pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus,
+                                                      info->physfn.devfn));
+                if ( !pf_pdev )
+                {
+                    printk(XENLOG_ERR
+                           "Inconsistent PCI state: failed to find newly added PF %pp for VF %pp\n",
+                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
+                           &pdev->sbdf);
+                    ASSERT_UNREACHABLE();
+                    free_pdev(pseg, pdev);
+                    ret = -EILSEQ;
+                    goto out;
+                }
+            }
+
+            if ( !pdev->pf_pdev )
+            {
+                /* VF inherits its 'is_extfn' from PF */
+                pdev->info.is_extfn = pf_pdev->info.is_extfn;
+                list_add(&pdev->vf_list, &pf_pdev->vf_list);
+                pdev->pf_pdev = pf_pdev;
+            }
+        }
     }
 
     if ( !pdev->info.is_virtfn && !pdev->vf_rlen[0] )
@@ -821,6 +850,28 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
     list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
         if ( pdev->bus == bus && pdev->devfn == devfn )
         {
+            if ( !pdev->info.is_virtfn && !list_empty(&pdev->vf_list) )
+            {
+                struct pci_dev *vf_pdev;
+
+                /*
+                 * Linux Dom0 has been observed to not respect an error code
+                 * returned from PHYSDEVOP_pci_device_remove. Mark VFs and PF
+                 * broken.
+                 */
+                list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list)
+                    vf_pdev->broken = true;
+
+                pdev->broken = true;
+
+                printk(XENLOG_WARNING
+                       "Attempted to remove PCI SR-IOV PF %pp with VFs still present\n",
+                       &pdev->sbdf);
+
+                ret = -EBUSY;
+                break;
+            }
+
             if ( pdev->domain )
             {
                 write_lock(&pdev->domain->pci_lock);
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 1e4fe68c60fb..977c0d08f78a 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -153,7 +153,15 @@ struct pci_dev {
         unsigned int count;
 #define PT_FAULT_THRESHOLD 10
     } fault;
+
+    /*
+     * List head if PF.
+     * List entry if VF.
+     */
+    struct list_head vf_list;
     u64 vf_rlen[6];
+    /* Link from VF to PF. Only populated for VFs. */
+    const struct pci_dev *pf_pdev;
 
     /* Data for vPCI. */
     struct vpci *vpci;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:09:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:09:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837780.1253689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tByt6-0002UN-Mx; Fri, 15 Nov 2024 16:09:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837780.1253689; Fri, 15 Nov 2024 16:09: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 1tByt6-0002UB-Im; Fri, 15 Nov 2024 16:09:36 +0000
Received: by outflank-mailman (input) for mailman id 837780;
 Fri, 15 Nov 2024 16:09: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=cHts=SK=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tByt4-0001uN-U3
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:09:35 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2416::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id feca6756-a36b-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 17:09:32 +0100 (CET)
Received: from PH8PR07CA0035.namprd07.prod.outlook.com (2603:10b6:510:2cf::22)
 by SA3PR12MB9179.namprd12.prod.outlook.com (2603:10b6:806:3a1::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 16:09:25 +0000
Received: from SN1PEPF00036F3C.namprd05.prod.outlook.com
 (2603:10b6:510:2cf:cafe::5d) by PH8PR07CA0035.outlook.office365.com
 (2603:10b6:510:2cf::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 16:09:24 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00036F3C.mail.protection.outlook.com (10.167.248.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 16:09:22 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 15 Nov
 2024 10:09:21 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 10:09: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: feca6756-a36b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjJjIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZlY2E2NzU2LWEzNmItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjg2OTcyLjE5MjQ2OCwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fAiXlm31YZH7uhosGjn+dZbcA/39X+vTk25+UA7ioXKsYS49bIxYpzV9aKhGT90OpxKV+4CFIyIRTCJq0KsUTV/mEkkqEwj6CjKtnUWL9jwZBx9OqtTZLpNzpLg5+lAwSw0f0fXwkFaH3qbH8ecwzyh1gbnvmI6WIbzYtEembFnwewDFnmU/gljqyQ3ZXTk9cx2udBxGN3jw0VvbHzi4m+t76UhlBwe5hDIZ97fjD47Jf5OmVXvrv0w9i63J+QbckAILc006SGtaOPPYzANR6ieGKmGDVg8UT8qeGgQUhJiLug82wH5lTMOjtIaShFuO2w/uDwkTjG402kX0w3iWOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dc/5DRjqwA6xYxjlvFn4FWVgoiHtyGlzz0R5Ezc9BLU=;
 b=psgN8ZWsIkMtfJAyA25Qn4y5nRNCg+29oVQ5Z6+zZLJ1/dO2hrWZhRMUNfbRXCmXOC+UL0QFCyFXfJh2RN8PiVSy91KUh8533NoLeaqXhBlo8GZ3Jqu+2TxFIZFwU6Yhqpr1jKNh9kafzYIH4gI/ZnkL5+Ky7EPtNdsTNtziVEJdOh4puBs6AytubLFK4/tX7ZFs0jUE6+MXXOm6CpPc8mFN4bw2zwGCx0p2d5YILxmfv5AxaN0e6xUek8j68a9pgXx1LT9A3JTy31edHlMy9M1DWNbJjx99RCj//bfnpYxGrsUXKJ3iTc08nKfvQPox2eMt3/1vsc29itTy0mi1tg==
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=dc/5DRjqwA6xYxjlvFn4FWVgoiHtyGlzz0R5Ezc9BLU=;
 b=hYg0pUmxOg1AGQYnptiNOoNpQfVvo6y5vNRdAryYs+Ut/dPutiBEpocxvgGwUoDRx/rl949nuuobp8IQ6LKi2D6rz0qvpyaNghb4Tq7HZJAVuqIAMH3Wq2NUBcFV2jyiTKHtUNLDKpFjokabW7KOPlyFGbiIaDKhkmKUck0TUXA=
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=SATLEXMB04.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@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>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH v8 2/3] x86/msi: fix locking for SR-IOV devices
Date: Fri, 15 Nov 2024 11:09:03 -0500
Message-ID: <20241115160905.551224-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115160905.551224-1-stewart.hildebrand@amd.com>
References: <20241115160905.551224-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3C:EE_|SA3PR12MB9179:EE_
X-MS-Office365-Filtering-Correlation-Id: ae102f74-b2c1-4093-9fab-08dd058fde9c
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?CubGn6RcsopyhL1Yor2h03Bh11s6+4lar56+TdvJftFTOSAckCLCIDRkAmxy?=
 =?us-ascii?Q?J5nUXbQIVeoubZqM0Zo+Fel7dRb0ptXCQX2QMI4t9iLuT5APNh3KpQNMBsOW?=
 =?us-ascii?Q?me1j7FnCM225gq+EXdtHk30i6+CVzBYS7p9skVuned67tnX2iCz6Ru5PDr1E?=
 =?us-ascii?Q?uqj2Uz8zYJ781X3eZaxa2LzZlxYsXVXK0SbRum/MZWEuIDEV4vZZL/5ZLnDi?=
 =?us-ascii?Q?dCLZhd/aqHZSoUOzZV3S/1bvOHQU7aCpkqwhjPe8l6ds7VhBC7aZfTVWIm4R?=
 =?us-ascii?Q?sMu0F4Y4ETDGTQWKAxJxM58a4zsUO6QFqD58ILbqinhyM1zCn7FiXvMmNzjG?=
 =?us-ascii?Q?WXQZPx6d9EGfcYAmTFYJPu84sdWJCfsO9voqPb0IgrnZKRBxG02hV7xTP8+Y?=
 =?us-ascii?Q?wILVUbpuN/I9l7s6eUTIAztC4/plAEy/zqZIeuhsJNol0Hy4f47c0tjm/EEh?=
 =?us-ascii?Q?aEg0MZhT3IFLiht8uldMtx2+EelfDq17XUZqPM+8xiGg/wma0tSbdtmN15dn?=
 =?us-ascii?Q?ckxyGymHEaJhh7n7tpbeE0czTCEUw2dadG+S3YKwk3c57u1bpHCRfLC/VoSv?=
 =?us-ascii?Q?0K+lcs0eeNlJ4JkPh0wCyA2hYvXO+TNkQSQAU6hUCbm8ERUBxzmi4j7iCONI?=
 =?us-ascii?Q?WrEMdf3rVlRrX9gqTNMbKufQtmpCC5kjCoNFHyQ8nFBjKyuVBLOvfXiN/8eA?=
 =?us-ascii?Q?OBTuQq8RGMgUkTLoCStIqXS5OPUSCaekGWwPnXGXO9yzJvSeaovosrjeUljL?=
 =?us-ascii?Q?X6HndrFuMAl4+WnEKxp2+SQWmpPj/QupPQdNHhpe0rvcwQPGtu34CJb7seB0?=
 =?us-ascii?Q?q0aG3+Ui/imLZ+hVMBBf78R5GDQn9dmYxZPT4aZ7tidm+G0ZCZX9s/nECk7z?=
 =?us-ascii?Q?u5OqCYlovWcUTE/tI7aHPo3i51+906wx7VTLEeQCg6MmA99RSUn2meg9Cykm?=
 =?us-ascii?Q?XnMxpDrbmS5ItvfvU2Apbqz0FyexwJY65QvoLMJpeJJjiUpFDTHyKqJrr8yF?=
 =?us-ascii?Q?CE9SEsEWVz8J4EzoRfxTVIcLmtlpqzk0uKlYf50HKmZeEaS6D0XRgrI1SKet?=
 =?us-ascii?Q?edu22+/qk+20+3Im6UCnnar8OasgCn+FO4WXXZMgMZ3gkjSFbLSC4U0ZRctg?=
 =?us-ascii?Q?XYV/jq/Br0t0zNtU0GMZ5gX2aOTdxSBKewjMiz7zsPg/FNRhuuCsbfygnJ53?=
 =?us-ascii?Q?XVTnYIgSh3aUeYyn4lzrctyq0ocKrmthC7tnWtUXPazNPanZlJXye1IDy0Or?=
 =?us-ascii?Q?d3xV6gSZBwMJ40qfb04QyhZX2SUn5fc/xjbUd1rWoS9TdgXgDPedPQHuJpCT?=
 =?us-ascii?Q?pPKXAW60SU+ClBrOUtAQb66Wx0Qg/mkTc9d3F8vQDfRRJdCD4ah2xPGJxYbf?=
 =?us-ascii?Q?OSLfkzakGlvHPjZ/nCpfkgz1jEj08V0HveIo9kRVvLLwmmn2fw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 15 Nov 2024 16:09:22.8965
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ae102f74-b2c1-4093-9fab-08dd058fde9c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3C.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9179

In commit 4f78438b45e2 ("vpci: use per-domain PCI lock to protect vpci
structure") a lock was moved from allocate_and_map_msi_pirq() to the
caller and changed from pcidevs_lock() to read_lock(&d->pci_lock).
However, one call path wasn't updated to reflect the change, leading to
a failed assertion observed under the following conditions:

* PV dom0
* Debug build (CONFIG_DEBUG=y) of Xen
* There is an SR-IOV device in the system with one or more VFs enabled
* Dom0 has loaded the driver for the VF and enabled MSI-X

(XEN) Assertion 'd || pcidevs_locked()' failed at drivers/passthrough/pci.c:535
(XEN) ----[ Xen-4.20-unstable  x86_64  debug=y  Not tainted ]----
...
(XEN) Xen call trace:
(XEN)    [<ffff82d040284da8>] R pci_get_pdev+0x4c/0xab
(XEN)    [<ffff82d040344f5c>] F arch/x86/msi.c#read_pci_mem_bar+0x58/0x272
(XEN)    [<ffff82d04034530e>] F arch/x86/msi.c#msix_capability_init+0x198/0x755
(XEN)    [<ffff82d040345dad>] F arch/x86/msi.c#__pci_enable_msix+0x82/0xe8
(XEN)    [<ffff82d0403463e5>] F pci_enable_msi+0x3f/0x78
(XEN)    [<ffff82d04034be2b>] F map_domain_pirq+0x2a4/0x6dc
(XEN)    [<ffff82d04034d4d5>] F allocate_and_map_msi_pirq+0x103/0x262
(XEN)    [<ffff82d04035da5d>] F physdev_map_pirq+0x210/0x259
(XEN)    [<ffff82d04035e798>] F do_physdev_op+0x9c3/0x1454
(XEN)    [<ffff82d040329475>] F pv_hypercall+0x5ac/0x6af
(XEN)    [<ffff82d0402012d3>] F lstar_enter+0x143/0x150

In read_pci_mem_bar(), the VF obtains the struct pci_dev pointer for its
associated PF to access the vf_rlen array. This array is initialized in
pci_add_device() and is only populated in the associated PF's struct
pci_dev.

Access the vf_rlen array via the link to the PF, and remove the
troublesome call to pci_get_pdev().

Fixes: 4f78438b45e2 ("vpci: use per-domain PCI lock to protect vpci structure")
Reported-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Candidate for backport to 4.19
Patch #1 ("xen/pci: introduce PF<->VF links") is pre-requisite

v7->v8:
* no change

v6->v7:
* turn NULL-check into ASSERT
* adjust commentary in struct pf_info

v5->v6:
* add Jan's R-b

v4->v5:
* split the PF<->VF links to a pre-requisite patch
* pass pci_sbdf_t to read_pci_mem_bar()
* use stdint.h types on changed lines
* re-add NULL check for pf_info in read_pci_mem_bar(), as pf_info could
  be NULL

v3->v4:
* handle case when PF is removed with VFs enabled, then re-added with
  VFs disabled

v2->v3:
* link from VF to PF's struct pci_dev *

v1->v2:
* remove call to pci_get_pdev()
---
 xen/arch/x86/msi.c            | 36 ++++++++++++++++++++---------------
 xen/drivers/passthrough/pci.c |  8 +++++---
 xen/include/xen/pci.h         | 11 ++++++++---
 3 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index fa724911928e..e2360579deda 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -663,34 +663,34 @@ static int msi_capability_init(struct pci_dev *dev,
     return 0;
 }
 
-static u64 read_pci_mem_bar(u16 seg, u8 bus, u8 slot, u8 func, u8 bir, int vf)
+static uint64_t read_pci_mem_bar(pci_sbdf_t sbdf, uint8_t bir, int vf,
+                                 const struct pf_info *pf_info)
 {
+    uint16_t seg = sbdf.seg;
+    uint8_t bus = sbdf.bus, slot = sbdf.dev, func = sbdf.fn;
     u8 limit;
     u32 addr, base = PCI_BASE_ADDRESS_0;
     u64 disp = 0;
 
     if ( vf >= 0 )
     {
-        struct pci_dev *pdev = pci_get_pdev(NULL,
-                                            PCI_SBDF(seg, bus, slot, func));
         unsigned int pos;
         uint16_t ctrl, num_vf, offset, stride;
 
-        if ( !pdev )
-            return 0;
+        ASSERT(pf_info);
 
-        pos = pci_find_ext_capability(pdev->sbdf, PCI_EXT_CAP_ID_SRIOV);
-        ctrl = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_CTRL);
-        num_vf = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_NUM_VF);
-        offset = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_VF_OFFSET);
-        stride = pci_conf_read16(pdev->sbdf, pos + PCI_SRIOV_VF_STRIDE);
+        pos = pci_find_ext_capability(sbdf, PCI_EXT_CAP_ID_SRIOV);
+        ctrl = pci_conf_read16(sbdf, pos + PCI_SRIOV_CTRL);
+        num_vf = pci_conf_read16(sbdf, pos + PCI_SRIOV_NUM_VF);
+        offset = pci_conf_read16(sbdf, pos + PCI_SRIOV_VF_OFFSET);
+        stride = pci_conf_read16(sbdf, pos + PCI_SRIOV_VF_STRIDE);
 
         if ( !pos ||
              !(ctrl & PCI_SRIOV_CTRL_VFE) ||
              !(ctrl & PCI_SRIOV_CTRL_MSE) ||
              !num_vf || !offset || (num_vf > 1 && !stride) ||
              bir >= PCI_SRIOV_NUM_BARS ||
-             !pdev->vf_rlen[bir] )
+             !pf_info->vf_rlen[bir] )
             return 0;
         base = pos + PCI_SRIOV_BAR;
         vf -= PCI_BDF(bus, slot, func) + offset;
@@ -704,8 +704,8 @@ static u64 read_pci_mem_bar(u16 seg, u8 bus, u8 slot, u8 func, u8 bir, int vf)
         }
         if ( vf >= num_vf )
             return 0;
-        BUILD_BUG_ON(ARRAY_SIZE(pdev->vf_rlen) != PCI_SRIOV_NUM_BARS);
-        disp = vf * pdev->vf_rlen[bir];
+        BUILD_BUG_ON(ARRAY_SIZE(pf_info->vf_rlen) != PCI_SRIOV_NUM_BARS);
+        disp = vf * pf_info->vf_rlen[bir];
         limit = PCI_SRIOV_NUM_BARS;
     }
     else switch ( pci_conf_read8(PCI_SBDF(seg, bus, slot, func),
@@ -814,6 +814,7 @@ static int msix_capability_init(struct pci_dev *dev,
         int vf;
         paddr_t pba_paddr;
         unsigned int pba_offset;
+        const struct pf_info *pf_info;
 
         if ( !dev->info.is_virtfn )
         {
@@ -821,6 +822,7 @@ static int msix_capability_init(struct pci_dev *dev,
             pslot = slot;
             pfunc = func;
             vf = -1;
+            pf_info = NULL;
         }
         else
         {
@@ -828,9 +830,12 @@ static int msix_capability_init(struct pci_dev *dev,
             pslot = PCI_SLOT(dev->info.physfn.devfn);
             pfunc = PCI_FUNC(dev->info.physfn.devfn);
             vf = dev->sbdf.bdf;
+            ASSERT(dev->pf_pdev);
+            pf_info = &dev->pf_pdev->physfn;
         }
 
-        table_paddr = read_pci_mem_bar(seg, pbus, pslot, pfunc, bir, vf);
+        table_paddr = read_pci_mem_bar(PCI_SBDF(seg, pbus, pslot, pfunc), bir,
+                                       vf, pf_info);
         WARN_ON(msi && msi->table_base != table_paddr);
         if ( !table_paddr )
         {
@@ -853,7 +858,8 @@ static int msix_capability_init(struct pci_dev *dev,
 
         pba_offset = pci_conf_read32(dev->sbdf, msix_pba_offset_reg(pos));
         bir = (u8)(pba_offset & PCI_MSIX_BIRMASK);
-        pba_paddr = read_pci_mem_bar(seg, pbus, pslot, pfunc, bir, vf);
+        pba_paddr = read_pci_mem_bar(PCI_SBDF(seg, pbus, pslot, pfunc), bir, vf,
+                                     pf_info);
         WARN_ON(!pba_paddr);
         pba_paddr += pba_offset & ~PCI_MSIX_BIRMASK;
 
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 3fe2e7884f45..6af1136b6350 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -735,7 +735,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         }
     }
 
-    if ( !pdev->info.is_virtfn && !pdev->vf_rlen[0] )
+    if ( !pdev->info.is_virtfn && !pdev->physfn.vf_rlen[0] )
     {
         unsigned int pos = pci_find_ext_capability(pdev->sbdf,
                                                    PCI_EXT_CAP_ID_SRIOV);
@@ -747,7 +747,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         {
             unsigned int i;
 
-            BUILD_BUG_ON(ARRAY_SIZE(pdev->vf_rlen) != PCI_SRIOV_NUM_BARS);
+            BUILD_BUG_ON(ARRAY_SIZE(pdev->physfn.vf_rlen) !=
+                                    PCI_SRIOV_NUM_BARS);
+
             for ( i = 0; i < PCI_SRIOV_NUM_BARS; )
             {
                 unsigned int idx = pos + PCI_SRIOV_BAR + i * 4;
@@ -762,7 +764,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
                     continue;
                 }
                 ret = pci_size_mem_bar(pdev->sbdf, idx, NULL,
-                                       &pdev->vf_rlen[i],
+                                       &pdev->physfn.vf_rlen[i],
                                        PCI_BAR_VF |
                                        ((i == PCI_SRIOV_NUM_BARS - 1) ?
                                         PCI_BAR_LAST : 0));
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 977c0d08f78a..f784e9116059 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -159,9 +159,14 @@ struct pci_dev {
      * List entry if VF.
      */
     struct list_head vf_list;
-    u64 vf_rlen[6];
-    /* Link from VF to PF. Only populated for VFs. */
-    const struct pci_dev *pf_pdev;
+    union {
+        struct pf_info {
+            /* Only populated for PFs. */
+            uint64_t vf_rlen[PCI_SRIOV_NUM_BARS];
+        } physfn;
+        /* Link from VF to PF. Only populated for VFs. */
+        const struct pci_dev *pf_pdev;
+    };
 
     /* Data for vPCI. */
     struct vpci *vpci;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:09:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:09:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837781.1253699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tByt7-0002km-VL; Fri, 15 Nov 2024 16:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837781.1253699; Fri, 15 Nov 2024 16:09: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 1tByt7-0002kd-S3; Fri, 15 Nov 2024 16:09:37 +0000
Received: by outflank-mailman (input) for mailman id 837781;
 Fri, 15 Nov 2024 16:09: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=cHts=SK=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tByt6-0001uH-D0
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:09:36 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20611.outbound.protection.outlook.com
 [2a01:111:f403:2416::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff78e720-a36b-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 17:09:33 +0100 (CET)
Received: from SA1P222CA0063.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2c1::12)
 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.8158.17; Fri, 15 Nov
 2024 16:09:29 +0000
Received: from SN1PEPF00036F3D.namprd05.prod.outlook.com
 (2603:10b6:806:2c1:cafe::c6) by SA1P222CA0063.outlook.office365.com
 (2603:10b6:806:2c1::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 16:09:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00036F3D.mail.protection.outlook.com (10.167.248.21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 16:09:28 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 15 Nov
 2024 10:09:27 -0600
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 10:09: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: ff78e720-a36b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjExIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZmNzhlNzIwLWEzNmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjg2OTczLjA1MTA4Nywic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s7PNeZvildj1e/UGOukygLOJYFvd8+M49rvjZf8tQsQ17fskhNSbp9gpjizWmrWz99K4YhMtYs7jMaQ3r7zSmOmXlIcflGCuxD/4YdKoqtH2UwfmYuLEfJU48dEyzzsZz92zXZI6/t44r4FCJ+6TfXJ7LXWC3v3oQVNy3gCXHrOMueqHWpFtFk0cpvlL7GE063LnPjJ93UlWxRqvUjE0/IwrUzL+r62PlKA76NGOStAioub9v92MNTsKqJZ21rdFUWrSXCP8Cw33sV5ZDCJBUu+I/jO6ytnMDLUONo+s4Vr+yPSeWgv/p2bkvKwIJ15uOtvMXWcmlfChog+8b0Wtew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=h7wZt1IMcuMFrVXQ5VvCHPZJN8BgmZL4SJb/J4aUccI=;
 b=E+6MKcwchzuMCUlQLjlDTl+vCookiq+mlQ80eEgWTtx9Fv0Z1/4k881kvx5ZGuc/bIxgIWQgXDcoYqLiswI9hnukHp2BkXDjd2xjSR/8WPJC5ARAJj+nXmobCZvR9igrW1lsFLfHlT/ajVxZIgRd9uBot4456/hvfEgCgk52M+olrnmCSEqvjxmeHK3Y79hWvoViquDVcYFurguEGsS3Y2PnGYWX1rUWKXgmaRZvgamMtw2hMwkR9NJQ85odBoQEqA0KoaH6fO3ftUGsJ335644R6iImcy71689p6GSD6KDdgYnp7ZKIsv9RnEB1wdx4JCxvGSsU0LHzbgWei1BL0A==
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=h7wZt1IMcuMFrVXQ5VvCHPZJN8BgmZL4SJb/J4aUccI=;
 b=B3vdZkst+KgWmTW6mhHDlt0AXkdPz1h1J2Dikw/320XJ1FX7gBuAn7HwY4s+T731wx08cpY82x0Xg8JYS/G4eIz5STaLsRYmT59Hs6GkTLICKY2KGSxHqXb4g/+Hos7nOVcKxRRPdlTsMbvIaPVizHR4EndEasC499xlWBdShwM=
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=SATLEXMB04.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v8 3/3] xen/pci: remove logic catering to adding VF without PF
Date: Fri, 15 Nov 2024 11:09:04 -0500
Message-ID: <20241115160905.551224-4-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115160905.551224-1-stewart.hildebrand@amd.com>
References: <20241115160905.551224-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3D:EE_|CH3PR12MB7523:EE_
X-MS-Office365-Filtering-Correlation-Id: 005b4062-2761-42a9-1e97-08dd058fe1cc
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?XRQ5Is108KhBajSMrMht++jzfH3XEO3c3DYNVTb8pj13aJmLI6Kdy8ZyNtDv?=
 =?us-ascii?Q?RqG+4oyZFk20dPYzi2+itImYDIeaMXgTx9iOBwfqMGfefBQEwSfbtUDCwi2b?=
 =?us-ascii?Q?nZWhwoqRw2Si+PKhEVRzyqzAbMPAP0YBz32d3f4bgzEuD14V/JQdnl6ekNFz?=
 =?us-ascii?Q?tQhoiWu3/ZiAkfyft4j8GYmc1PXvQ4PNgcOn69JurSlr6dypjop+EUdhJEQq?=
 =?us-ascii?Q?Yve5cpuejh/Oql2F3AtezmTwoagrhY5SiLswZYood5MZasIpDYgF6tJQ53fc?=
 =?us-ascii?Q?dhTr+tJO9r1zvAPGFarTEI3WloA5UHdPDdFzsBwmd/MQ2xkHyV3jRAaetkkK?=
 =?us-ascii?Q?zB1300EODkc22yyoINwxncjBjYWBQHgQtcqGuKnSnwZZUs9+TnVX+HrtbM0f?=
 =?us-ascii?Q?m5LDQcMmGM8s7PBDZhnU5W5EKEVZtPYkp6hGdMJ8PffZ7Hmg8cUihcL5vKO7?=
 =?us-ascii?Q?FAZ/kFzlMdkOMUCy9YcH6SUDpgV1IxjyNjm/wLKRfe6OatYtJHDaNmn6+ARp?=
 =?us-ascii?Q?b7LLS88hGvWoiOciGoFwHcWXTLRuiDgt6tRwAYFaZlXUSjGA1iPuoGsjs9DU?=
 =?us-ascii?Q?4/+is2GYSesweoqCrgHAZjK+XMN3p8Xn3g8RGpx6wrcHL2znuqd85DdoC8p+?=
 =?us-ascii?Q?fGDkvR2ujzMq/hHEbLVUPq+ombKyQCZIPg4tpSYudKLkxUOnx4pE1SEE6MNo?=
 =?us-ascii?Q?n2wfEcZuGGfP5/Q/R9+i6Sl6t57oXswwmZV60O5iWZzEnhcNC6qF8icoFYQZ?=
 =?us-ascii?Q?bzG3aCFZX5L450lZ3wcpVes1TYWxi6TxYDotMUkfE+f8HtW5/CvGPd7SRF9c?=
 =?us-ascii?Q?cDoYDDSx1Q3tCUPEk3eJlbUPcImWORoiq/RhOcDccPDVKpvc6ZtEWiIbMlO5?=
 =?us-ascii?Q?DMLHbYRi67BrL75hRkYrQs50F62ZIxMyXDFtb1yB2JCz3yMfIdRUL6lMfCZy?=
 =?us-ascii?Q?WkuBqn6N38utHm4vI37a92igG68UY1Z9St2TdP/Fo2fZSxkrWJiLqNZgEDbV?=
 =?us-ascii?Q?q1jspQdXg7XceB+NHKqnCovtXFJXYPMajTEJjPrDf7UI5bCGL6AYtG3BOjLm?=
 =?us-ascii?Q?qROd/HmSMlmR0vKX5AbWutxPCyIqzHzrmDjUXebXEOrg46eXdjcltGHn7KH7?=
 =?us-ascii?Q?8jZ8roO3OJ9yfPYLTc016jfpXmh4jpHKmvvzeYeTtN6tOooy+I9EEJUaJsNy?=
 =?us-ascii?Q?CmLXRE1svf46DO0bhO6CZT5M/LXm+13/g/mRaDNNfXgS/QNraNMvlTfRSbev?=
 =?us-ascii?Q?go0NdUq7615SncKSFSFDSGJbgGYtpsqXNqREja6hORGaOdI87cR2lHL30/lk?=
 =?us-ascii?Q?8mvbzcrOgMOKVZOHcg5VK2cq6n7zew6fnz47G8R2LCZX/soy8NqP9Bl3iNw5?=
 =?us-ascii?Q?9Tvlepg5PY+YIFBheT1diKGc6GWTvk2fbSoiz6n6Iq9f23h90w=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 15 Nov 2024 16:09:28.1785
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 005b4062-2761-42a9-1e97-08dd058fe1cc
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7523

The hardware domain is expected to add a PF first before adding
associated VFs. If adding happens out of order, print a warning and
return an error. Drop the recursive call to pci_add_device().

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
Not for backport

v7->v8:
* new patch, split from PF<->VF links
---
 xen/drivers/passthrough/pci.c | 31 +++++++------------------------
 1 file changed, 7 insertions(+), 24 deletions(-)

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 6af1136b6350..f50dfaed75ba 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -699,30 +699,13 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
 
             if ( !pf_pdev )
             {
-                ret = pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
-                                     NULL, node);
-                if ( ret )
-                {
-                    printk(XENLOG_WARNING
-                           "Failed to add SR-IOV device PF %pp for VF %pp\n",
-                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
-                           &pdev->sbdf);
-                    free_pdev(pseg, pdev);
-                    goto out;
-                }
-                pf_pdev = pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus,
-                                                      info->physfn.devfn));
-                if ( !pf_pdev )
-                {
-                    printk(XENLOG_ERR
-                           "Inconsistent PCI state: failed to find newly added PF %pp for VF %pp\n",
-                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
-                           &pdev->sbdf);
-                    ASSERT_UNREACHABLE();
-                    free_pdev(pseg, pdev);
-                    ret = -EILSEQ;
-                    goto out;
-                }
+                printk(XENLOG_WARNING
+                       "Attempted to add SR-IOV VF %pp without PF %pp\n",
+                       &pdev->sbdf,
+                       &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn));
+                free_pdev(pseg, pdev);
+                ret = -ENODEV;
+                goto out;
             }
 
             if ( !pdev->pf_pdev )
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:23:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:23:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837815.1253709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBz6D-0006s1-41; Fri, 15 Nov 2024 16:23:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837815.1253709; Fri, 15 Nov 2024 16:23: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 1tBz6D-0006ru-0f; Fri, 15 Nov 2024 16:23:09 +0000
Received: by outflank-mailman (input) for mailman id 837815;
 Fri, 15 Nov 2024 16:23: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=CdzU=SK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tBz6B-0006ro-W1
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:23:08 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e40af776-a36d-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 17:23:04 +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 A9946211A7;
 Fri, 15 Nov 2024 16:23:02 +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 7EF09134B8;
 Fri, 15 Nov 2024 16:23:02 +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 e5JsHWZ1N2eeTQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Nov 2024 16:23: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: e40af776-a36d-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5NS4xMzUuMjIzLjEzMCIsImhlbG8iOiJzbXRwLW91dDEuc3VzZS5kZSJ9
X-Custom-Transaction: eyJpZCI6ImU0MGFmNzc2LWEzNmQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjg3Nzg0Ljc1NjYyLCJzZW5kZXIiOiJqZ3Jvc3NAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1731687783; 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=JixwWm6LrqeD3xFJMDuRzgjzzoYJflV23s1C/UNsOxU=;
	b=O8bOmlaseOpms0wVxRP5NCxuSbf2jrJWRXGLlPDwC937zosmrJJNAZ9iw+tOGlxZr0615n
	hpQwXKmIhxO+C/rNOa2R55g7AzhkJQF1vKsIitX9B/1M8CRwBKsNSfAuI53nTdb9Ok3FNy
	CHq8VVCJguyIB5lbsngPns1SUEqxPl0=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1731687782; 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=JixwWm6LrqeD3xFJMDuRzgjzzoYJflV23s1C/UNsOxU=;
	b=uNYG2pxGkmkUXjqiudoiKVl46j/SBccekuofQVqQqVNrn5rjrMONeUs6dL2GnkWux/sdtk
	vyWJzs4xNph4BjptkiMMKzsuK7M0Bty75cg9ErR7r03MapdAl0h9EBTKQBlBK2q16nf0k9
	jmL730VmPB3DoFZm7vFoEw7Kz7AeCJc=
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.13-rc1
Date: Fri, 15 Nov 2024 17:23:01 +0100
Message-ID: <20241115162301.28457-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spamd-Result: default: False [-2.80 / 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)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid]
X-Spam-Flag: NO
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.13-rc1-tag

xen: branch for v6.13-rc1

It contains:

- a series for booting as a PVH guest, doing some cleanups after the
  previous work to make PVH boot code position independent

- a fix of the xenbus driver avoiding a leak in an error case

Thanks.

Juergen

 arch/x86/kernel/vmlinux.lds.S     | 19 +++++++++++++++
 arch/x86/platform/pvh/head.S      | 50 ++++++++++++++++++++++-----------------
 arch/x86/tools/relocs.c           |  1 +
 arch/x86/xen/xen-head.S           |  6 +++--
 drivers/xen/xenbus/xenbus_probe.c |  8 ++++++-
 5 files changed, 59 insertions(+), 25 deletions(-)

Ard Biesheuvel (5):
      x86/pvh: Call C code via the kernel virtual mapping
      x86/pvh: Use correct size value in GDT descriptor
      x86/pvh: Omit needless clearing of phys_base
      x86/xen: Avoid relocatable quantities in Xen ELF notes
      x86/pvh: Avoid absolute symbol references in .head.text

Qiu-ji Chen (1):
      xen: Fix the issue of resource not being properly released in xenbus_dev_probe()


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:35:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:35:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837826.1253719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzHw-0000Ul-7G; Fri, 15 Nov 2024 16:35:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837826.1253719; Fri, 15 Nov 2024 16: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 1tBzHw-0000Ue-4f; Fri, 15 Nov 2024 16:35:16 +0000
Received: by outflank-mailman (input) for mailman id 837826;
 Fri, 15 Nov 2024 16: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBzHu-0000UY-Hg
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:35:14 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9353c9e6-a36f-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 17:35:09 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 173168850120022.310783997064277;
 Fri, 15 Nov 2024 08:35: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: 9353c9e6-a36f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkzNTNjOWU2LWEzNmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjg4NTEwLjAzOTc1OSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731688503; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=B0B77teyLZ6+fiXfRROE0J3Ou5MHkZo1qGQqzm9sm4vkwNAAtIFdEnc4Z7w/0xQbTFNPB1GOLHEGofo5GJmIxRA/+tAg+bqNLZ534/EtYBsPgfMPTx2kdAmT0+3g38xztfndYgkLEA5ac6AC51ZzetJc9MStsESUKKlsXQz5Fho=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731688503; 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=IC7on8EMBFSFYNnxwB6vXSPPYjvNqf7r/MO4JTFDGvk=; 
	b=QIxd9FkVB6Lq7eY433C5IVUzeK58fVMjeYDS3Ie9DmI0K5+gl+AbBVCwX9aFZyuHNyqEeFoO5n36/jV5q8KWrcctCBL6MP5IBxa51x3y/FJN7tIeGPWavEMLdlby6QRJEyn9VZor76cRcSu1HMqgCMr51Z5t5gUvK+3VkRZ6BQ4=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731688503;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=IC7on8EMBFSFYNnxwB6vXSPPYjvNqf7r/MO4JTFDGvk=;
	b=kmKM5fUF7twUOIZVEsCkFcVku2ZfYmDUaTPMJ2mzA51WR6uw2U0UPqfm9IReuK8t
	VDsrn/hGMKPCpCI3GDJcwGxEwB7fasE3yJkF0C6P6NJNKh0T5BHyE1xMhmH50O/D/YJ
	DLO3bO/ZqLrwygudUxjFYrU4HGjas1koAp2V4yoY=
Message-ID: <21474601-2372-4f9c-aa26-b4ae415a273e@apertussolutions.com>
Date: Fri, 15 Nov 2024 11:34:59 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 6/6] x86/boot: add cmdline to struct boot_domain
To: xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-7-dpsmith@apertussolutions.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241115131204.32135-7-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/15/24 08:12, Daniel P. Smith wrote:
> Add a container for the "cooked" command line for a domain. This provides for
> the backing memory to be directly associated with the domain being constructed.
> This is done in anticipation that the domain construction path may need to be
> invoked multiple times, thus ensuring each instance had a distinct memory
> allocation.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v8:
> - switch to a dynamically allocated buffer
> - dropped local cmdline var in pv dom0_construct()
> 
> Changes since v7:
> - updated commit message to expand on intent and purpose
> ---
>   xen/arch/x86/include/asm/bootdomain.h |  2 ++
>   xen/arch/x86/include/asm/dom0_build.h |  1 +
>   xen/arch/x86/pv/dom0_build.c          |  6 ++--
>   xen/arch/x86/setup.c                  | 49 ++++++++++++++++++++++-----
>   4 files changed, 45 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
> index 3873f916f854..75e7c706d86e 100644
> --- a/xen/arch/x86/include/asm/bootdomain.h
> +++ b/xen/arch/x86/include/asm/bootdomain.h
> @@ -12,6 +12,8 @@ struct boot_module;
>   struct domain;
>   
>   struct boot_domain {
> +    const char *cmdline;
> +
>       domid_t domid;
>   
>       struct boot_module *kernel;
> diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
> index 8c94e87dc576..6ca3ca7c8a43 100644
> --- a/xen/arch/x86/include/asm/dom0_build.h
> +++ b/xen/arch/x86/include/asm/dom0_build.h
> @@ -4,6 +4,7 @@
>   #include <xen/libelf.h>
>   #include <xen/sched.h>
>   
> +#include <asm/bootinfo.h>
>   #include <asm/setup.h>
>   
>   extern unsigned int dom0_memflags;
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index f42aeb031694..91bcce1542bc 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -379,7 +379,6 @@ static int __init dom0_construct(struct boot_domain *bd)
>       unsigned long image_len;
>       void *image_start;
>       unsigned long initrd_len = initrd ? initrd->size : 0;
> -    const char *cmdline;
>       l4_pgentry_t *l4tab = NULL, *l4start = NULL;
>       l3_pgentry_t *l3tab = NULL, *l3start = NULL;
>       l2_pgentry_t *l2tab = NULL, *l2start = NULL;
> @@ -422,7 +421,6 @@ static int __init dom0_construct(struct boot_domain *bd)
>       image_base = bootstrap_map_bm(image);
>       image_len = image->size;
>       image_start = image_base + image->headroom;
> -    cmdline = __va(image->cmdline_pa);
>   
>       d->max_pages = ~0U;
>   
> @@ -972,8 +970,8 @@ static int __init dom0_construct(struct boot_domain *bd)
>       }
>   
>       memset(si->cmd_line, 0, sizeof(si->cmd_line));
> -    if ( cmdline != NULL )
> -        strlcpy((char *)si->cmd_line, cmdline, sizeof(si->cmd_line));
> +    if ( bd->cmdline )
> +        strlcpy((char *)si->cmd_line, bd->cmdline, sizeof(si->cmd_line));
>   
>   #ifdef CONFIG_VIDEO
>       if ( !pv_shim && fill_console_start_info((void *)(si + 1)) )
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 533a1e2bbe05..b9ca9c486fe5 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -963,10 +963,31 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
>       return n;
>   }
>   
> -static struct domain *__init create_dom0(struct boot_info *bi)
> +static size_t __init domain_cmdline_size(
> +    struct boot_info *bi, struct boot_domain *bd)
>   {
> -    static char __initdata cmdline[MAX_GUEST_CMDLINE];
> +    size_t s = 0;
> +
> +    s += bi->kextra ? strlen(bi->kextra) : 0;
> +    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
>   
> +    /* Should only be called if one of extra or cmdline_pa are valid */
> +    ASSERT(s > 0);
> +
> +    /*
> +     * Add additional space for the following cases:
> +     *  - 7 chars for " noapic"
> +     *  - 13 chars for longest acpi opiton, " acpi=verbose"
> +     *  - 1 char to hold \0
> +     */
> +    s += 7 + 13 + 1;
> +
> +    return s;
> +}
> +
> +static struct domain *__init create_dom0(struct boot_info *bi)
> +{
> +    char *cmdline = NULL;
>       struct xen_domctl_createdomain dom0_cfg = {
>           .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
>           .max_evtchn_port = -1,
> @@ -1008,17 +1029,23 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>       /* Grab the DOM0 command line. */
>       if ( bd->kernel->cmdline_pa || bi->kextra )

The logic from which this originally derives mistakenly gives the sense, 
at least for me, that `string` field from module_t would only be a valid 
address if there was a string. I have now discovered this is not the 
case but is in fact the address of a zero length string. It just so 
happens all the previous logic worked out even for a zero length string. 
It also means this block was always being executed, since the check for 
a cmdline_pa will always be true. I am open to other suggestions, but my 
thinking right now is that the check of cmdline_pa should be a twofold 
check, that it is not zero and that it has a string length, e.g.:

     if ( (bd->kernel->cmdline_pa &&
           strlen(__va(bd->kernel->cmdline_pa))) || bi->kextra )




From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:45:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:45:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837835.1253728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzR5-0002Sw-WA; Fri, 15 Nov 2024 16:44:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837835.1253728; Fri, 15 Nov 2024 16:44: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 1tBzR5-0002Sp-Td; Fri, 15 Nov 2024 16:44:43 +0000
Received: by outflank-mailman (input) for mailman id 837835;
 Fri, 15 Nov 2024 16:44: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=cuMk=SK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tBzR4-0002Sj-4Z
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:44:42 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20625.outbound.protection.outlook.com
 [2a01:111:f403:2415::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e445715d-a370-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 17:44:34 +0100 (CET)
Received: from BN9PR03CA0070.namprd03.prod.outlook.com (2603:10b6:408:fc::15)
 by PH0PR12MB7885.namprd12.prod.outlook.com (2603:10b6:510:28f::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 16:44:30 +0000
Received: from BN2PEPF000055DA.namprd21.prod.outlook.com
 (2603:10b6:408:fc:cafe::40) by BN9PR03CA0070.outlook.office365.com
 (2603:10b6:408:fc::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend Transport; Fri,
 15 Nov 2024 16:44:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DA.mail.protection.outlook.com (10.167.245.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.0 via Frontend Transport; Fri, 15 Nov 2024 16:44:29 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 15 Nov
 2024 10:44:29 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 15 Nov
 2024 10:44:29 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 10:44:28 -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: e445715d-a370-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjI1IiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImU0NDU3MTVkLWEzNzAtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjg5MDc0LjcwMDQxNCwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Pttk8Bb4g1QFYjukO9Mh/elN6GvQr69wxEQJqb1QpSXks5NiEx+mKSGB+X/tsEonQJYnwxUWKNBJpZlxyaRxIPHTBR/XfUsTpvzDYrnjZszGloJx/eufR6dXVHYaMJW6yfqyheS60+afgxjJ0O8hnta2tiF9eCrM+7GxGk7A84SytS7ar+Zbb3S5EAiAIcyEQ15iyafUCxnPU40oNUThg1VJxc59kYAqKoRrneLwgdpTaOaIMusuS00qxnErcThrMYuELdmfArdSdXUil3KsiYmP5eGJYpKbYPjHVUMdNJ6AoldGZf3suSdgoMUCNI5RgnnTCRsmCc5dOh9Mkss9UQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ONAGz/W+1qt6C1LrcZqoUGtnIeN0P7yMND5DykLyQmk=;
 b=q/T5OAVAK+ONFT++RtnUV1X9HpZb+XefzErJtMCu8bE2TqNQxgwpZsuIM1ozfFCLc/+JZ8a9ZJIbrGaDW1mjnVWm49OvoZCQwSPOF24bVtCrPNeRU9uZPz848JicDEfni8i8lKbvdlEOI+c5rck5xVqAa1NIWsyOCYwArFV19J0aJaS3GMLag2/3RDlRB8Z7MM9u9IqX1x9HL6AZ5VgN7JuSP+G3eFqloWhxbe2ugWoxWxs9mzRcf5CWoperLhXlnU2qDuWzOXmDxrqhmJ6/IfRGNn4JcV11bPrpKDf4MVY70R/RqtUqAJ3g8Hs2Mi2tvQfzxACGM/O1BJdGaFa4OQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=ONAGz/W+1qt6C1LrcZqoUGtnIeN0P7yMND5DykLyQmk=;
 b=Dqxj+Ud0CiVrteTOpB4zmSJqU4yRqMg5qWB2Wr/NKzUp+R/Q8hUHf5lJlmBjNzI+Yi7cQrdOUaL2P52/CDsqjp5O6BE/TCksoEVY+JAF+bTG4XVDaheZa1A1QN/gZdw4YztQlp7ATFfi+vbhE6GZbA6k1TzfR4NHXnTNUlkhcTo=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <24e23ea2-e359-41f3-be62-6b7bdff4e074@amd.com>
Date: Fri, 15 Nov 2024 11:33:12 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/6] x86/boot: convert domain construction to use boot
 info
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-2-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241115131204.32135-2-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DA:EE_|PH0PR12MB7885:EE_
X-MS-Office365-Filtering-Correlation-Id: c1fc53b0-1839-4a3a-640d-08dd0594c68c
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?dzNqRzFiVG9aV1hwRzNWa1Q0anpzNHhEcW91NHByMWNWQnpIeWZoZXA3K05D?=
 =?utf-8?B?bXpTT2J2TkpYZmpBN21TSHpUL0VUQVNtdEVDUXlIdEtvcGx2aDVpRVFFcWg4?=
 =?utf-8?B?ejJMRWs2OW9Xa29QUzgvdkl1RGRtaS9SbVhTTlhCVkFZNisvaTNYbFVPdmdT?=
 =?utf-8?B?dTV4NktDbEt2djdJYmFJUTRsV1ZyV3d1QUdvZmNoQjJ5UjVGNDI2MWJlZG9Z?=
 =?utf-8?B?UVArZjJwQlJRbmF1TUxCYXE1N2NPcThBcFJMRkdUb2Zpci9GdTlSS2NvQWI3?=
 =?utf-8?B?V1pDS2JUQlhxN3B2TzRZWVduT2NQcFhmUm9MSnVnTnBreUZVMTZFK2grdVUz?=
 =?utf-8?B?dWlORVRvSmM2M0hyZkhRNFcrQkxtR3RKTG9CODR1dzUxV3Z1cDB1aWgyWGlr?=
 =?utf-8?B?MnlOajlZN1BuQXE2T20rSVBUdDdwYkZwK0J2V3FqRVZXckc3WDk2bDVjR0Ur?=
 =?utf-8?B?dzV2QlJOb3Mzc2N1T3IyY0wvVUZzTllOaTNTS3FScENwTHlHTEhlRWFRMHMz?=
 =?utf-8?B?Ylc5YzJQQ1Z5U3ZhVlBpUHovdUs1emFtWHMrMkZReGJpWE4rRzk1NXBMZGsw?=
 =?utf-8?B?RlNhTHV0VmVlWVJxdklkRXAzU3FWYVlpbXRlVHJuOC9rejZxQVgvUW13T25V?=
 =?utf-8?B?NER3bWhBVUlwZDNGVE9jNGhrM2ZibWZ4VnhnbGltZy9BOWZUZVpScy8yeWda?=
 =?utf-8?B?NnVDU1d5MGtyWVlSY09qdmpybExqM3IyVlNuc2dEUGJiWXJmV3BWaHZVSzRH?=
 =?utf-8?B?ZzFBSlYyTE1RbFRCbnR4ZW9ZamZCUGtKKzNvby9EU2dZK1dncDdLYmNqNCtF?=
 =?utf-8?B?RG40a3RzTU96QWx1YStjTHNyaEczVXhTVXZ5eTJkUTJLTGpzTnZnSDJ5S0pS?=
 =?utf-8?B?S3l5ZVVwWGV5cStjODlFUnlkS0VkNFFCWGhaMnpTYzVGT0NMcWFMdjR0R0xv?=
 =?utf-8?B?VFNueDdpTGdZNjU3MzNwL0pGelhrd2xBZnhkd1dkQk9XNmJFSVloQ0dWblNN?=
 =?utf-8?B?N3YwUWZOMDU0SUdOL1ZYU1ptUm16cFQzQ2pIS2w5WmlUcjg2M0NMSlhiUUlo?=
 =?utf-8?B?dUJFc25iRy9nUnZhWm5PdXFqL1FuWUdFZmlXVjZsUHJ3cFJ2VklvcHoyelBk?=
 =?utf-8?B?bWJPUzM2T25kNHdvVVNSazBKOWE3VFNNb1MvN2x1cmlLaEtKQldHY09FaEt0?=
 =?utf-8?B?QmRvZzByaWVYcE9zaVNkS1g2NkFkTVRLVUJweHFrbUNvWW5WMklISWh6SEJh?=
 =?utf-8?B?ckhzZk1zSWtGSlpVQnc2a1RWWEdLQ2ZRV2JmWXk3cm1vVVY2WDN4Y1lxazJS?=
 =?utf-8?B?NCtWdVJsVzMwTFZDZm4ybmVyYWRwWS9SNUdGYi9zamRZTEV3dTduTFU2M0NS?=
 =?utf-8?B?WENmYlhIVXNONlY2N0JnMjd5REVRN2c2ZGFGZUR1K05TUjZhRFdqdkFLdVhC?=
 =?utf-8?B?SzRxNHBRZ2o2VlVTa21lblhSck9obHl2SGo4YWF4ek9iMmtyV3FXNDIzVGpJ?=
 =?utf-8?B?ZFB5UHVPbS9KVDZVZ0F2ZFNkQnNNOHV5L1NmQkVMRmFEVU1jZ0dTN2NSQU1Z?=
 =?utf-8?B?SVpYYkxwNU01MTUweU5xdEVoek9JbjJkQTZSdFNYN3Z4Y1N4VUFiQS9NaDBn?=
 =?utf-8?B?SDg3cjFIenA4MXJMMTZISUxvK2pVQ0FyV2Yya09MV3FuNW1ENWFpc1Z4cDd0?=
 =?utf-8?B?OVBHYjFUMDNGc21UL2JxT29tcHBET3VjUnhQZlJlbWlHRUVlMDdFV0JhdmRX?=
 =?utf-8?B?VVZjVlpieFNXSURDaWhCeTBvMktMallqMVFKRE45WVNaWVJHeXlHVFN6V1R1?=
 =?utf-8?B?ekl2Z1RObk52RFpBWmhsR1BkV2dGdFRPT0tWaUZ6YTc1ckpMUGVJc0dmdFI5?=
 =?utf-8?B?dktJU1duTVp4aVFmektYdmdWWmdua1ZDU0V1WHhSWTRCWVE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 15 Nov 2024 16:44:29.9882
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c1fc53b0-1839-4a3a-640d-08dd0594c68c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DA.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7885

On 2024-11-15 08:11, Daniel P. Smith wrote:
> With all the components used to construct dom0 encapsulated in struct boot_info
> and struct boot_module, it is no longer necessary to pass all them as
> parameters down the domain construction call chain. Change the parameter list
> to pass the struct boot_info instance and the struct domain reference.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index 3dd913bdb029..d1bdf1b14601 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -1300,16 +1301,26 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
>       }
>   }
>   
> -int __init dom0_construct_pvh(struct domain *d, const module_t *image,
> -                              unsigned long image_headroom,
> -                              module_t *initrd,
> -                              const char *cmdline)
> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>   {
>       paddr_t entry, start_info;
> +    struct boot_module *image;
> +    struct boot_module *initrd = NULL;
> +    unsigned int idx;
>       int rc;
>   
>       printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
>   
> +    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
> +    if ( idx >= bi->nr_modules )

What do you think about introducing a new define:

     #define BOOTMOD_NOT_FOUND (MAX_NR_BOOTMODS + 1)

For first_boot_module_index() to return.  And then:

     if ( idx == BOOTMOD_NOT_FOUND )

?

Otherwise it looks good to me, and Andrew's suggestions are good as well.

Regards,
Jason

> +        panic("Missing kernel boot module for %pd construction\n", d);
> +
> +    image = &bi->mods[idx];
> +
> +    idx = first_boot_module_index(bi, BOOTMOD_RAMDISK);
> +    if ( idx < bi->nr_modules )
> +        initrd = &bi->mods[idx];
> +
>       if ( is_hardware_domain(d) )
>       {
>           /*
> @@ -1347,8 +1358,7 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image,


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 16:50:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 16:50:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837843.1253738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzWs-00046x-K6; Fri, 15 Nov 2024 16:50:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837843.1253738; Fri, 15 Nov 2024 16: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 1tBzWs-00046q-Ge; Fri, 15 Nov 2024 16:50:42 +0000
Received: by outflank-mailman (input) for mailman id 837843;
 Fri, 15 Nov 2024 16:50: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBzWr-00046H-29
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 16:50:41 +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 b9b1d206-a371-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 17:50:31 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-aa20944ce8cso376874466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 08:50:31 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0812aesm193150266b.176.2024.11.15.08.50.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 08:50: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: b9b1d206-a371-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI5YjFkMjA2LWEzNzEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjg5NDMxLjU5NjAwOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731689431; x=1732294231; 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=LgnH9c/CJPEIiJW5jSYnGPeCjgzXtRdqoQgHtqJxvXk=;
        b=rezFc9gsivgWwTtia0Ta9um7KmcuAjGCo5er7yU6NnI3DIxq5DG9uCzAK5+F2Smeq+
         EY5XWPYraaY4efHDupYExiCVzvCoukx/+RhWopPgs83ECr97Bhd+5KIpTANb/Hk1LnVx
         EilSZ1Xhveqzx7lmsh92PAB5HW6/ivK+1JX80=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731689431; x=1732294231;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LgnH9c/CJPEIiJW5jSYnGPeCjgzXtRdqoQgHtqJxvXk=;
        b=WpZUx9wItDADXzAMtIWY/shMFDUZ0ImOZ/ovAj5Bolf1ycz5PRGY9yQ0y0pLnmv5dY
         9AUvjkw2LxotVBrqrcXJeGlCasH2EiIKyHjxc1Fv5Vp1U9pOuff/UoDP0Q+Jc2N3pXUN
         m3gvPEkUTxtPtMs9/9wKuxjR6iR/GlVXC94BUwv9VcvpHcSQOlMoLbZXZAqMdiKNpje6
         +DXBYOhH8isqRzYXb757wQ8kDlGvXr4uNtFfvI/v3sudv0Pm63b5pYpzSpxmJXNG4sWT
         Y2s2JKu9AhMbFfJBqT+636t6AFcbojSCu/SbmxNfGPz0q4Ss8Hrd7hBw8FMWYDv43Fhy
         SwXw==
X-Forwarded-Encrypted: i=1; AJvYcCWJy9HaLnnBPaE/aJslccw42n3EFGjSoD5b/09kcdQLvG9RDXDDgWRiGlxwnGIWLmn9OwDTbNeu9nc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKrehpHVjPlMXzANCoQ3y2And6tf3wt7ezdvDql0RAXSXQBTBi
	VEbcsKv40/OK0WBsOPA5hlfp/h9om1yu62TSzOU+kBKOu+hh4yWFCuKbq7tPyMQR9LjBbFMWgrr
	e
X-Google-Smtp-Source: AGHT+IEDF6oPq8IZbDyqfi+Uuf++9zCvMYR1oBjW97hV6TeHJhSNLlML9sujoGpo/pniQiiurqGoEg==
X-Received: by 2002:a17:907:2d93:b0:a9e:82f3:d4ab with SMTP id a640c23a62f3a-aa207687241mr718776366b.9.1731689430822;
        Fri, 15 Nov 2024 08:50:30 -0800 (PST)
Message-ID: <48641d1e-3e96-4a9e-bf4d-99fbf7348c0d@citrix.com>
Date: Fri, 15 Nov 2024 16:50:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] x86/ucode: Drop MIS_UCODE and
 microcode_match_result
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-4-andrew.cooper3@citrix.com>
 <aee06ffe-fb3d-41ab-a715-0bb057d4ca52@suse.com>
 <6b656171-0f61-4ef9-82e7-dfb43f2bdd4d@citrix.com>
 <9ff021f5-fc32-4283-9ee4-f807333e05bb@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <9ff021f5-fc32-4283-9ee4-f807333e05bb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 8:02 am, Jan Beulich wrote:
> On 14.11.2024 18:18, Andrew Cooper wrote:
>> On 14/11/2024 11:41 am, Jan Beulich wrote:
>>> On 12.11.2024 22:19, Andrew Cooper wrote:
>>>> @@ -199,8 +198,8 @@ static bool microcode_fits_cpu(const struct microcode_patch *patch)
>>>>      return equiv.id == patch->processor_rev_id;
>>>>  }
>>>>  
>>>> -static enum microcode_match_result cf_check compare_patch(
>>>> -    const struct microcode_patch *new, const struct microcode_patch *old)
>>>> +static int cf_check compare_patch(
>>>> +    const struct microcode_patch *old, const struct microcode_patch *new)
>>>>  {
>>> Let's hope we won't screw up a backport because of this swapping.
>> I wasn't going to start thinking about backports until the code gets
>> into a better state.
>>
>> But if backports do happen, it will be all-or-nothing.Â  This code is far
>> too tangled.
> I wasn't so much worrying about backporting of this work (as of now I don't
> think it's a candidate), but anything that's yet to come.

This work is towards supporting the Intel Min-Rev header, because it's
already deployed into the world for several releases, and is also what
is likely to drive a wish for backports.

Then there's the Intel uniform loading extensions, which are needed for
GNR/SRF.Â  If nothing else we need to be able to parse the loading-scope
and not get surprised when cross-core loading happens.Â  (This already
happens since Sky Lake if SGX is active, and Intel were surprised when I
noticed and asked them about it.)


But mostly, the pre-existing logic is just irrationally complex for
something so simple.Â  Most of the complexity appears to be because it
was too complex to start with.

>
>> That said, in this specific case, the only thing that would go wrong is
>> with Intel debug patches.Â  Even I've only had a handful of those in the
>> past 8 years.
> Why would that be? Doing the check the wrong way round would lead to
> possible downgrading of ucode, wouldn't it?

After this patch, there is a singular use of the hook.

It is comparing the hypercall-provided blob to the cached blob, yielding
OLD/SAME/NEW.

Deciding to initiate patching (entering stop_machine() context) is based
on !cached || NEW || --force.

There is another check in apply_microcode() (this is why we needed to
plumb --force down), which will catch an accidental swapping of the two
arguments.

Something that we don't handle properly is that we use "I have a cached
blob" as if it means "the system is at a consistent level", but this is
not true in both directions.Â  We might have not had anything to cache on
boot (AMD Client platforms in particular), and what we had on boot may
not have levelled a system which was left asymmetric by the BIOS.
>>> I'd like to ask to at least consider renaming at least the functions,
>>> perhaps also the hook pointer, perhaps simply by switching from singular
>>> to plural. This would then also avoid reviewers like me to go hunt for
>>> all uses of the function/hook, in an attempt to make sure none was left
>>> out when converting.
>> In the other series I've paused for a while, I have renamed some hooks
>> (along with related cleanup), but I'm undecided on this one.
>>
>> One option is cmp(), or perhaps compare().
> Either would be fine with me as a hook name. As a function name I'm less
> certain this will (remain to) be unambiguous.
>
>> But, it occurs to me, another option would be is_newer().Â  We always
>> care about the operation one way around.
> is_newer() doesn't very well lend itself to a tristate return value.

Fine.Â  I'll just go with compare().Â  I don't expect this will be the
last time it's edited.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:01:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:01:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837855.1253749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzhg-0006Jf-MS; Fri, 15 Nov 2024 17:01:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837855.1253749; Fri, 15 Nov 2024 17:01: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 1tBzhg-0006JY-IF; Fri, 15 Nov 2024 17:01:52 +0000
Received: by outflank-mailman (input) for mailman id 837855;
 Fri, 15 Nov 2024 17:01: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=cuMk=SK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tBzhe-0006JS-S2
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:01:50 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2009::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4950cdc7-a373-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 18:01:42 +0100 (CET)
Received: from CH2PR19CA0011.namprd19.prod.outlook.com (2603:10b6:610:4d::21)
 by CY8PR12MB7193.namprd12.prod.outlook.com (2603:10b6:930:5b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 17:01:38 +0000
Received: from CH1PEPF0000A348.namprd04.prod.outlook.com
 (2603:10b6:610:4d:cafe::92) by CH2PR19CA0011.outlook.office365.com
 (2603:10b6:610:4d::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18 via Frontend
 Transport; Fri, 15 Nov 2024 17:01:38 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH1PEPF0000A348.mail.protection.outlook.com (10.167.244.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 17:01:37 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 15 Nov
 2024 11:01:37 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 11:01: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: 4950cdc7-a373-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjBhIiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ5NTBjZGM3LWEzNzMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjkwMTAyLjk1NDIwNiwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iNN44yFi3xHzEMdGqmcotqS1tBJPYoHStkvzqpky60QH2L7S8AFxPy6Utx5KPKjqoEk3rCx4XKQdSp4Kqw55vOnOgOI1XUQb20bGMyWGGK7ltQiKcHwu6BMajxySwdXG8VRUNPAk46cU2HgKt6YAdSCOdFvALEWFytsC27FO5Jg4zzNEnkF8i/wriCnbnGSXKgf8M509Pz0ITkhc4o3uFWcKldQpC1EiSLB10vSbK2Mz/0Hof1TwMCq9XDRKcqXraW1ODi4RlGxX2ttEVM77KKb/FibQUakygp0gp4MIhaFVsNObwiYYZPOl/mcDmu/1dywYZ2mSrRHVg7ECTxxKxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IK6a7A+Y+2CrGlYIwmmFpnBzYfR/VJR0kFLkqLAHfqE=;
 b=BvhdZBXZzM4DjkN0rBSQ/CpBnHdjzV0CtU/0fzOcYMUkAnqgibW52eByrSHq43mgzNkejm/AHPiL85SVTPcMzJsVmths+8psGpXzL/1ov0Q6oJtmrPa2L+RyBYQEu6zU6ZEsa/O4I/s2zvDu4tkA+iPjhoSezxlhPSKbyjR9L0NOsUUsA5H+7JTyiUhu+z+N5hJxBdhw1qxo/Bo9Z8vgVgdUEtOinwJ646Sfd7oeA+DICHDyEj3edmDS49aXJADrMe3bwGxRzZwzvASXPN5wDTVa9i350cqNy0l1/WpOYc92IX6hCSHlR+j0KLyaITiHuMjUoNoYl+Por9E069njFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=IK6a7A+Y+2CrGlYIwmmFpnBzYfR/VJR0kFLkqLAHfqE=;
 b=GjZlfFwp4T+C0DUhkZmhuYDmOr5VZLME8amVCIwdqo1eHTGigLdFgjmtro/Sjp+j0Ko1O+VqxDQr0WG6jsb7ZnjeqYgWg4GvDzdOehKX/JuO1J9i+iGNQkpsaeShtPCngiPCEO8FIhW+oin+OGLEnlK095B5qwn5IrQ8+Ai/B0E=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <374d2387-6f8c-4a2b-a979-7066675dd247@amd.com>
Date: Fri, 15 Nov 2024 11:50:12 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/6] x86/boot: introduce module release
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-3-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241115131204.32135-3-dpsmith@apertussolutions.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: CH1PEPF0000A348:EE_|CY8PR12MB7193:EE_
X-MS-Office365-Filtering-Correlation-Id: de72cb71-e3e5-417b-64ee-08dd05972b40
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ME1yTzk4eWQ2RXpyQWswVXVCZFM4b3BjdlVpZHhqNVZLQ05EcDJDT2ZncWZX?=
 =?utf-8?B?WW5tSW5JcUk2a3Y1MGJNcmluYlE0WHBmM3NaOW12Y1pOUVNOOHUzWkh2SmtL?=
 =?utf-8?B?ZWFYNS9nbzVFa0NOTmt5K0k1U0w1TFZpYWY4WnpFWnF2SGxoTmEwd3ZkcmFq?=
 =?utf-8?B?emxWTVdWdy8za1hqL0d0c2tZQVJiZk5lMEhDRnE4UFRJeHdXQk9zZ1BRWkVI?=
 =?utf-8?B?OGE4a0JDUkhQeUI0U2pwdGNhSjk3cGpVOGhQWTc3dzR4M1pUaTY5UmZEaU1Y?=
 =?utf-8?B?LzhvSVZkWUc3cW1PV0Q2SWpNbTRzbUxWQlJiSnJXR3pkRmdPV1BFZVhkdy9i?=
 =?utf-8?B?Y3VyNWJLMWxUQTQ2VG5CM1diTzJPUHZNKzU0clR0VEkwTjhZQlFoSTFkd0FW?=
 =?utf-8?B?cG03ODRJSDVYZ01QTEx5cFIvelI2VzREWGN3QVliTmdCTk04dXdHK2s0MFVJ?=
 =?utf-8?B?ODNJVmtVNUpXVFpFV2QwQVVQN1I4amZNdWFGbWswZHhVdENtdFo2TnRsR2xB?=
 =?utf-8?B?b3BvaFFpMFpHcVNLcGJGQi9vVStuQ0lVSEpvNGY2U3diYzhSa0hESmFwWStx?=
 =?utf-8?B?dEF5cUpOK0UzbWU0all4NGtTRmN0Z1F0cVJXWk9Xd2pXK2VmYmhhQXNLckg1?=
 =?utf-8?B?cFRJSkdjLy8zNTR6TW1PMk9lMXYzTVM3QWVJTGo5aXorUVF2aithaG1iLzlM?=
 =?utf-8?B?aU5qTi94eTZiMHZvby9nOERReG8wd2hsNVZHQjk1eFBJUlEzdGxjK3gvRVBr?=
 =?utf-8?B?dDAvNHBwSVM5ZkhqM2Rhc2YrTWZaSi9xLzRIQ1pHcWlwSWdRNUY1dVZ6akN6?=
 =?utf-8?B?K0ptT004MkltTjlJc2hSWERKbDhvTDZkQms2bWtVeG1MUzFiYlZrSUpXUEpv?=
 =?utf-8?B?My8wK0EvTEp0bnNlZGtXYnVrbzgzT1VXQ0JSamhsekJGQTgzM0YxWmVpTXJn?=
 =?utf-8?B?cXkzNVFrQ3R5T3FBSS90Y010NXFlMTMzd0VKU0h3MFN4dnM2Y1ZhOU9OQVAw?=
 =?utf-8?B?NldPZzhFWEZGSzdzMSsxQ1RmM0UyMmtJTnR2clAwZmJocTB4R0hQWVdrdWRN?=
 =?utf-8?B?WXJobVY1OFgwalJzc2tPRGVCYmw1ZGJCZlRBMzZEaGNaSGE3cEQzR2c0M0RR?=
 =?utf-8?B?U3JzWnRyTGpiRkNJVHRlcmEyUGYvb1loaFU3bXljN0lkbHZ1T0JxNTJOcGtZ?=
 =?utf-8?B?czQ3UDFyY3BOL3IwU2l5RHYreC9lTjV1QnZHT2syVE5FK1lCdkNYRFczSHp0?=
 =?utf-8?B?WmVSQWUwYVBWcUVmNnR1b3dYaUcyZGpPZENMMnZyNlk4NXBhNWNENTlZa3pq?=
 =?utf-8?B?ZlJyZndDbFlDajZkWGZVUTYwcWFjNUw5YXZIY0kySGwwT25WeHJMSSs1Njh4?=
 =?utf-8?B?VlBWU2RnUU03NjlScTRHR3Via0tHTEtidEphZE9CZnRjUXp6ZENGMGdmdWVH?=
 =?utf-8?B?SlJ5UWVOVXVUSkVIV0JzREZVeEtLWkdyeUl2emtaWmFiMFpLTWxndUU5VlFh?=
 =?utf-8?B?WUZYbTlXNHVqOUthNS9FZEdDc3BMcjRZTjk3RlB2WGxpSUZkU1E0azVSckly?=
 =?utf-8?B?MExLNVlNYUdSejlpaklYRFRuY3JjL1pCOVVtK0MwQjd4RGExeVZmUDh5TXBm?=
 =?utf-8?B?Y3F2Q2E5VGZ2Z1lmUEgrME9NNmV3eTlxdjlFVk9kRDd1aGVIZnlVL3FCNGpJ?=
 =?utf-8?B?RFNRdm5zTld3RXozYjkxdmlNZi9lMm96N3FQaWpLZGJkTGpDcmRmSTBRUy9z?=
 =?utf-8?B?VUtmVy9wejlOa3BGZ0ZVOXhSYXlBSW5Wbk1BS2FQOWpDQkpnQ3huUEpPYjlV?=
 =?utf-8?B?SXpab0hJTFBqL0phc2IweENBMEkyL2dQSjFvWThSS2ZWV250ZzZPd3pPdVRB?=
 =?utf-8?B?eWZRazZuVHlyOFZOdjU2THVCd0tBSU0yaTEzc0xGaXpCQmc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 17:01:37.9382
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: de72cb71-e3e5-417b-64ee-08dd05972b40
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A348.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7193

On 2024-11-15 08:12, Daniel P. Smith wrote:
> A precarious approach was used to release the pages used to hold a boot module.
> The precariousness stemmed from the fact that in the case of PV dom0, the
> initrd module pages may be either mapped or copied into the dom0 address space.
> In the former case, the PV dom0 construction code will set the size of the
> module to zero, relying on discard_initial_images() to skip any modules with a
> size of zero. In the latter case, the pages are freed by the PV dom0
> construction code. This freeing of pages is done so that in either case, the
> initrd variable can be reused for tracking the initrd location in dom0 memory
> through the remaining dom0 construction code.
> 
> To encapsulate the logical action of releasing a boot module, the function
> release_boot_module() is introduced along with the `released` flag added to
> boot module. The boot module flag `released` allows the tracking of when a boot
> module has been released by release_boot_module().
> 
> As part of adopting release_boot_module() the function discard_initial_images()
> is renamed to free_boot_modules(), a name that better reflects the functions
> actions.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v8:
> - completely reworked the commit
>    - switch backed to a releasing all but pv initrd approach
>    - renamed discard_initial_images to free_boot_modules
> ---
>   xen/arch/x86/hvm/dom0_build.c       |  2 +-
>   xen/arch/x86/include/asm/bootinfo.h |  2 ++
>   xen/arch/x86/include/asm/setup.h    |  4 +++-
>   xen/arch/x86/pv/dom0_build.c        | 27 +++++++++++++--------------
>   xen/arch/x86/setup.c                | 27 +++++++++++++++------------
>   5 files changed, 34 insertions(+), 28 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index d1bdf1b14601..d1410e1a02b0 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -755,7 +755,7 @@ static int __init pvh_load_kernel(
>       }
>   
>       /* Free temporary buffers. */
> -    discard_initial_images();
> +    free_boot_modules();

This...

>       if ( cmdline != NULL )
>       {

> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 6be3d7745fab..2580162f3df4 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c

> @@ -875,7 +874,7 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
>       }
>   
>       /* Free temporary buffers. */
> -    discard_initial_images();
> +    free_boot_modules();

...and this.  I think Andrew requested/suggested moving to a single 
free_boot_modules call:
     They're both right at the end of construction, so it would
     make far more sense for __start_xen() to do this after
     create_dom0().   That also avoids needing to export the function.

>   
>       /* Set up start info area. */
>       si = (start_info_t *)vstartinfo_start;
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 495e90a7e132..0bda1326a485 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c

> +void __init free_boot_modules(void)
>   {
>       struct boot_info *bi = &xen_boot_info;
>       unsigned int i;
>   
>       for ( i = 0; i < bi->nr_modules; ++i )
>       {
> -        uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
> -        uint64_t size  = bi->mods[i].mod->mod_end;
> -
> -        /*
> -         * Sometimes the initrd is mapped, rather than copied, into dom0.
> -         * Size being 0 is how we're instructed to leave the module alone.
> -         */
> -        if ( size == 0 )
> +        if ( bi->mods[i].released )
>               continue;
>   
> -        init_domheap_pages(start, start + PAGE_ALIGN(size));
> +        release_boot_module(&bi->mods[i]);
>       }
> -
> -    bi->nr_modules = 0;

IIUC, zero-ing here was a safety feature to ensure boot modules could 
not be used after this point.  Should it be retained?

Regards,
Jason

>   }
>   
>   static void __init init_idle_domain(void)



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:02:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837856.1253759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzi6-0006eH-TW; Fri, 15 Nov 2024 17:02:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837856.1253759; Fri, 15 Nov 2024 17:02: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 1tBzi6-0006eA-QU; Fri, 15 Nov 2024 17:02:18 +0000
Received: by outflank-mailman (input) for mailman id 837856;
 Fri, 15 Nov 2024 17:02: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBzi6-0006dq-6K
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:02:18 +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 5beee03d-a373-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 18:02:13 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cf7567f369so1259242a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 09:02:13 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e086244sm193141366b.177.2024.11.15.09.02.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 09:02: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: 5beee03d-a373-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjViZWVlMDNkLWEzNzMtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkwMTMzLjIzNzQyOCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731690133; x=1732294933; 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=zkDitVZUA5dWT3zHqIcUquOaiet+JmHTNhRJCp5xeA4=;
        b=WZjQPgABBZyuevV19ulLgSz7iUBBOuw6bOYKhUwuLukJT11TsnLJFTZy1kNr+zy99W
         yEAwKLK06sPTsGT+gr+lH3SqWgoMiZoBi2Szuaha5W8fI59aZOWAgXn0CVZ3dlauYn7J
         J9HxdWv53R/1MKadRCk8lx4PSYcpDQ8xtZ7Rg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731690133; x=1732294933;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zkDitVZUA5dWT3zHqIcUquOaiet+JmHTNhRJCp5xeA4=;
        b=OesWeWJS+35ccvNchfMiAR9E+bORvwlLdt3V/gwoKI+OT8OOw/gFtT7IkvtUfYrYw4
         6R7xhtHueSL4eDyWt7XSbpfRJfrWVRi/+rvMcJB5xtnJmy12YMB6VJJ9JN7b74XI7tQy
         Rc4nK3q3R0aAMF2p0/HlosLCKKrLaXWjIZAy4FiMrP3r2trFMVBlWGu0WZblg6KEYvV/
         2u+CvIeJN2zGL4obmdrMmME8oZcEjF8gY+W7EyCMJX6ZmNU8UlrZhoIfy5vwhhYFCLNy
         gA3sfZewNDEm2DeQ27sT9iCRpIw5Vrnq1x2iJn6paHZHFom3jQt/Ael1OET96Gxx3VRw
         LkYA==
X-Forwarded-Encrypted: i=1; AJvYcCUKDQL1zC1I2KzOv7fmdMT0VsxuExTNc2S9/H4WMb/QYcVWD6aT1QXelsIJyTXEJGkk3dYLABqyNpc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykCbdKmghvJfGv3KIaUJ0QXlesns9ewL6kp60aeiG25BhDndEn
	riIj91Zdak1jrAg5OwUfNih9Lu+lC2xtqVJndyupShBanfSMkM0MsuPmc4QDSxM=
X-Google-Smtp-Source: AGHT+IF5W9g0UQyqipHqFFPF4mfmTILYbC1MFJkZjswv1+j+4QDgYC8Y9nxtELW1YJIv9Ap2CD3vTA==
X-Received: by 2002:a17:906:7952:b0:a9a:c57f:9666 with SMTP id a640c23a62f3a-aa4833e9b01mr311136066b.2.1731690122494;
        Fri, 15 Nov 2024 09:02:02 -0800 (PST)
Message-ID: <f45f516d-cf90-419f-b7a7-7fc91f9f2729@citrix.com>
Date: Fri, 15 Nov 2024 17:01:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/6] x86/boot: convert domain construction to use boot
 info
To: Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-2-dpsmith@apertussolutions.com>
 <24e23ea2-e359-41f3-be62-6b7bdff4e074@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <24e23ea2-e359-41f3-be62-6b7bdff4e074@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 4:33 pm, Jason Andryuk wrote:
> On 2024-11-15 08:11, Daniel P. Smith wrote:
>> diff --git a/xen/arch/x86/hvm/dom0_build.c
>> b/xen/arch/x86/hvm/dom0_build.c
>> index 3dd913bdb029..d1bdf1b14601 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -1300,16 +1301,26 @@ static void __hwdom_init
>> pvh_setup_mmcfg(struct domain *d)
>> Â Â Â Â Â  }
>> Â  }
>> Â  -int __init dom0_construct_pvh(struct domain *d, const module_t
>> *image,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned long image_headroom,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  module_t *initrd,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const char *cmdline)
>> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>> Â  {
>> Â Â Â Â Â  paddr_t entry, start_info;
>> +Â Â Â  struct boot_module *image;
>> +Â Â Â  struct boot_module *initrd = NULL;
>> +Â Â Â  unsigned int idx;
>> Â Â Â Â Â  int rc;
>> Â  Â Â Â Â Â  printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n",
>> d->domain_id);
>> Â  +Â Â Â  idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
>> +Â Â Â  if ( idx >= bi->nr_modules )
>
> What do you think about introducing a new define:
>
> Â Â Â  #define BOOTMOD_NOT_FOUND (MAX_NR_BOOTMODS + 1)
>
> For first_boot_module_index() to return.Â  And then:
>
> Â Â Â  if ( idx == BOOTMOD_NOT_FOUND )
>
> ?

Care would need to be taken vs BOOTMOD_XEN, which could have the same
numeric value in a big HL configuration.

>From a "reading the code" point of view, a range check against any
invalid value is better seeing as the next thing we do is index an
array, so I'm marginally on the side of "keep it as it is".

This particular logic can't trip because of earlier checks in
__start_xen(), and gets rewritten in patch 4 in the conversion to
boot_domains, so I'm also not overly fussed at extra polish on this
specific piece of logic.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:07:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:07:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837870.1253774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBznS-0007fZ-NC; Fri, 15 Nov 2024 17:07:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837870.1253774; Fri, 15 Nov 2024 17:07: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 1tBznS-0007fM-Je; Fri, 15 Nov 2024 17:07:50 +0000
Received: by outflank-mailman (input) for mailman id 837870;
 Fri, 15 Nov 2024 17:07: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=0yuK=SK=bounce.vates.tech=bounce-md_30504962.67377fdf.v1-ded2c197463741b0b8e8fe50e52c91eb@srs-se1.protection.inumbo.net>)
 id 1tBznR-0007cN-Nw
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:07:49 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 210b2cf8-a374-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 18:07:44 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xqk3g1Jspz3sNVQ6
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 17:07:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ded2c197463741b0b8e8fe50e52c91eb; Fri, 15 Nov 2024 17:07: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: 210b2cf8-a374-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjIxMGIyY2Y4LWEzNzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjkwNDY0LjcyNDgwNywic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3Mzc3ZmRmLnYxLWRlZDJjMTk3NDYzNzQxYjBiOGU4ZmU1MGU1MmM5MWViQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731690463; x=1731950963;
	bh=5XTdFWtUX2noifMS8VWYV7Ry5GziFIbvFNCFiCbcUF4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=aH8+8IGETRjqWxod+pSHi6EklhWpcQ3GXDIutwB+XC8UNnQDgKGKCn/ZvwuLzQL4Y
	 1PfU0d93Zky/SrjtB2DjMhmBjygktoV/pdm4gotaFNcLq5rGvPUAaVWVEsbFsPOm8t
	 0OYyFbNK4iuNRmjMe9djs2/baWi6RB2WsSk6XECeNTPWw4O8AR0e1LO2HK7q5THdFd
	 uYdvWTqyUaFvAZH2FDdOfnBX39bWNeDUWPvn9r61d4Vq1i46zo4LaQXbYzia1mRI/j
	 ju/86uUZlzhGpBEjxujV6EzdheQFBsuc0ws8buOxSpMFJvCG9ztrFUqFqPaCc48sMM
	 DdAAB70/E6Guw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731690463; x=1731950963; i=anthony.perard@vates.tech;
	bh=5XTdFWtUX2noifMS8VWYV7Ry5GziFIbvFNCFiCbcUF4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=yfZY/nxBNxiBjVqMLJRISV8KEJ+TjuMkqrR6kmlyhZYynGC07Wl0xACHBQWdrQ+RS
	 fyFQoxg6VQML+SqqMdT6FF4PAtCDnjRPd2/ammRZMw2Vrv74nmC7BbWqR7X7QMeNYO
	 y1XkcJJWxJNn4vTWHj9Dr0MrSh3ko9MztDSVkpg31XMlj7fvskQ7ki8XzGPHaero2D
	 x0ajrCHL8NNVE230fA7tyS9Pwx1jbtBoRFv8d5kvR3VIzyeFwEWKMosOSG8GsWwTBn
	 hzlmUKomjySodsg3CN0XCfyxf3Rk2jmHAhYVL9T2xne9ftaUYUuOEGHB1RRZY0Fo82
	 7fYJ+fEUxX08Q==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=200/3]=20CI:=20Allow=20automatic=20rebuild=20of=20rolling=20release=20containers?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731690461855
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>
Message-Id: <20241115170739.48983-1-anthony.perard@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.ded2c197463741b0b8e8fe50e52c91eb?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241115:md
Date: Fri, 15 Nov 2024 17:07:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Patch series available in this git branch:
https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git br.gitlab-ci-rebuild-arch-container-v1

Hi,

This patch series would allow to setup a scheduled pipeline on GitLab which
would rebuild containers and run a test on them immediately (the container is
updated even if the test fail, but at least we can find out about it sooner
rather than later).

To enable this, just running a pipeline with XEN_CI_REBUILD_CONTAINERS=1 will
do.

I intend to add a scheduled pipeline to run once a month.

Thanks,

Anthony PERARD (3):
  CI: Remove deprecated "only:variables" in favor of "rules:if"
  CI: Define XEN_REGISTRY variable
  CI: New stage "containers" to rebuild some containers

 .gitlab-ci.yml                       |  5 +++
 automation/gitlab-ci/build.yaml      | 61 ++++++++++++++++++----------
 automation/gitlab-ci/containers.yaml | 29 +++++++++++++
 automation/gitlab-ci/test.yaml       | 30 +++++++++-----
 4 files changed, 93 insertions(+), 32 deletions(-)
 create mode 100644 automation/gitlab-ci/containers.yaml

-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:07:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837871.1253788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBznT-00086h-WD; Fri, 15 Nov 2024 17:07:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837871.1253788; Fri, 15 Nov 2024 17: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 1tBznT-00086a-TR; Fri, 15 Nov 2024 17:07:51 +0000
Received: by outflank-mailman (input) for mailman id 837871;
 Fri, 15 Nov 2024 17: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=4+hr=SK=bounce.vates.tech=bounce-md_30504962.67377fdf.v1-5cbf7a7fed934b029d368e370fa901a3@srs-se1.protection.inumbo.net>)
 id 1tBznS-0007cN-O6
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:07:50 +0000
Received: from mail136-26.atl41.mandrillapp.com
 (mail136-26.atl41.mandrillapp.com [198.2.136.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21bcbd8b-a374-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 18:07:45 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-26.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xqk3h03ZQzJKFHwd
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 17:07:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5cbf7a7fed934b029d368e370fa901a3; Fri, 15 Nov 2024 17:07: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: 21bcbd8b-a374-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yNiIsImhlbG8iOiJtYWlsMTM2LTI2LmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjIxYmNiZDhiLWEzNzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjkwNDY1Ljg5NjU2Niwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3Mzc3ZmRmLnYxLTVjYmY3YTdmZWQ5MzRiMDI5ZDM2OGUzNzBmYTkwMWEzQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731690464; x=1731950964;
	bh=z5g9B4pcUfOV2QfB5jo7SdrQJ3IQc5YdeVG72LGap4o=;
	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=Hk4NxCOp/FChU9Ti2r9+jQ5n044Ox07SJMSUf7DxqhNfIwjwHSG7UD+T5SnFVjK5o
	 JqWMm+O1PxSQoXuf43JDbjddzfuHHEp4+NCtd7Wn2MUOgJxB/gVPv3cpQ++RnWXUin
	 KXNaaqUOfFQ8TCzI/6oxOjLJ/UIcycWT85Zjsxhk7YNc/TBEukXkvKwY7uRtLVhW3U
	 eNDZxcVKXPcG3md0TSD6wnbvLVLy3HXEKXvz0DisL7oXnaCxLqmBNy9ohKeX+ZuxFx
	 QiK6zdLcnOGo48CL6oalJDUirhACNAuCJL4URupNjqkLVLjP91DtdVAiUu4Sp7HuMZ
	 hK0yBndnKUXRg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731690464; x=1731950964; i=anthony.perard@vates.tech;
	bh=z5g9B4pcUfOV2QfB5jo7SdrQJ3IQc5YdeVG72LGap4o=;
	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=hDqUtCwTHD1UfZV833jARuyN2m2wIKTiUDdAGUmEnC1Lnhaf80iG3/hTc5CzQbjrz
	 G0bDs2wSDn0YbPM95AQwBLZj0j5JSfQZIAZFG0l90hbR0cSEd9+TkMuAkj9fTTHAaA
	 r24kdRCyTH1qdn9GuBRfznyTYI4SFHgLwc5tAUaPg3D3nG40PJfJym9/UYKclH17Ik
	 3Z000bx5tQqQ3X44BAHN+ouiPWrCIxAnAhyuV84852bPPom4VcEvUcHW0tCvgy/Rjt
	 mUMWTgAJQE/QCGPd13dJmPsp6B453caUzkHzXEc5Zdolp3pFMGG8UYDMXGluTpnoxx
	 t+Z5TRjLYCSqA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=203/3]=20CI:=20New=20stage=20"containers"=20to=20rebuild=20some=20containers?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731690462962
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>
Message-Id: <20241115170739.48983-4-anthony.perard@vates.tech>
In-Reply-To: <20241115170739.48983-1-anthony.perard@vates.tech>
References: <20241115170739.48983-1-anthony.perard@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.5cbf7a7fed934b029d368e370fa901a3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241115:md
Date: Fri, 15 Nov 2024 17:07:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
set. This is to be use with a scheduled pipeline.

When $XEN_CI_REBUILD_CONTAINERS is set, only build jobs related to the
containers been rebuild will be executed.

Build jobs that are using one of the containers been rebuild should
wait for the container to be rebuild. If it's a normal pipeline, those
dependency are simply ignored.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml                       |  2 +
 automation/gitlab-ci/build.yaml      | 57 ++++++++++++++++++----------
 automation/gitlab-ci/containers.yaml | 29 ++++++++++++++
 automation/gitlab-ci/test.yaml       | 13 +++++++
 4 files changed, 81 insertions(+), 20 deletions(-)
 create mode 100644 automation/gitlab-ci/containers.yaml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 941e5822e8..dab9171086 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,11 +8,13 @@ workflow:
     - when: always
 
 stages:
+  - containers
   - analyze
   - build
   - test
 
 include:
+  - 'automation/gitlab-ci/containers.yaml'
   - 'automation/gitlab-ci/analyze.yaml'
   - 'automation/gitlab-ci/build.yaml'
   - 'automation/gitlab-ci/test.yaml'
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 1ca6764225..e01eec1423 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -3,6 +3,9 @@
   image: ${XEN_REGISTRY}/${CONTAINER}
   script:
     - ./automation/scripts/build 2>&1 | tee build.log
+  rules:
+    - if: $XEN_CI_REBUILD_CONTAINERS && $XEN_CI_RUN_AFTER_CONTAINER_BUILD
+    - if: $XEN_CI_REBUILD_CONTAINERS == null
   artifacts:
     paths:
       - binaries/
@@ -255,6 +258,8 @@
 .test-jobs-artifact-common:
   stage: build
   needs: []
+  rules:
+    - if: $XEN_CI_REBUILD_CONTAINERS == null
 
 # Arm test artifacts
 
@@ -516,17 +521,24 @@ alpine-3.18-clang-debug:
   variables:
     CONTAINER: alpine:3.18
 
-archlinux-gcc:
-  extends: .gcc-x86-64-build
+.container-archlinux-current:
   variables:
     CONTAINER: archlinux:current
+    XEN_CI_RUN_AFTER_CONTAINER_BUILD: true
+  needs:
+    - job: container-archlinux-current
+      optional: true
   allow_failure: true
 
+archlinux-gcc:
+  extends:
+    - .gcc-x86-64-build
+    - .container-archlinux-current
+
 archlinux-gcc-debug:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: archlinux:current
-  allow_failure: true
+  extends:
+    - .gcc-x86-64-build-debug
+    - .container-archlinux-current
 
 centos-7-gcc:
   extends: .gcc-x86-64-build
@@ -657,29 +669,34 @@ opensuse-leap-15.6-gcc-debug:
   variables:
     CONTAINER: opensuse:leap-15.6-x86_64
 
-opensuse-tumbleweed-clang:
-  extends: .clang-x86-64-build
+.container-opensuse-tumbleweed-x86_64:
   variables:
     CONTAINER: opensuse:tumbleweed-x86_64
+    XEN_CI_RUN_AFTER_CONTAINER_BUILD: true
+  needs:
+    - job: container-opensuse-tumbleweed-x86_64
+      optional: true
   allow_failure: true
 
+opensuse-tumbleweed-clang:
+  extends:
+    - .clang-x86-64-build
+    - .container-opensuse-tumbleweed-x86_64
+
 opensuse-tumbleweed-clang-debug:
-  extends: .clang-x86-64-build-debug
-  variables:
-    CONTAINER: opensuse:tumbleweed-x86_64
-  allow_failure: true
+  extends:
+    - .clang-x86-64-build-debug
+    - .container-opensuse-tumbleweed-x86_64
 
 opensuse-tumbleweed-gcc:
-  extends: .gcc-x86-64-build
-  variables:
-    CONTAINER: opensuse:tumbleweed-x86_64
-  allow_failure: true
+  extends:
+    - .gcc-x86-64-build
+    - .container-opensuse-tumbleweed-x86_64
 
 opensuse-tumbleweed-gcc-debug:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: opensuse:tumbleweed-x86_64
-  allow_failure: true
+  extends:
+    - .gcc-x86-64-build-debug
+    - .container-opensuse-tumbleweed-x86_64
 
 # PowerPC builds (x86 cross)
 debian-11-ppc64le-gcc:
diff --git a/automation/gitlab-ci/containers.yaml b/automation/gitlab-ci/containers.yaml
new file mode 100644
index 0000000000..25e8bdc34b
--- /dev/null
+++ b/automation/gitlab-ci/containers.yaml
@@ -0,0 +1,29 @@
+.container-build-tmpl:
+  stage: containers
+  image: docker:stable
+  tags:
+    - container-builder
+  rules:
+    - if: $XEN_CI_REBUILD_CONTAINERS
+  services:
+    - docker:dind
+  before_script:
+    - apk add make
+    - docker info
+    - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
+  script:
+    - make -C automation/build PUSH=1 REGISTRY=${XEN_REGISTRY} ${CONTAINER/:/\/}
+  after_script:
+    - docker logout
+
+container-archlinux-current:
+  extends:
+    - .container-build-tmpl
+  variables:
+    CONTAINER: "archlinux:current"
+
+container-opensuse-tumbleweed-x86_64:
+  extends:
+    - .container-build-tmpl
+  variables:
+    CONTAINER: "opensuse:tumbleweed-x86_64"
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 1822e3ea5f..e4d4f1f3c9 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -1,6 +1,16 @@
+.test-rules:
+  # Only add rules which prevent jobs from been added to the pipeline. They
+  # should all have "when: never".
+  pre_rules:
+    - if: $XEN_CI_REBUILD_CONTAINERS
+      when: never
+
 .test-jobs-common:
   stage: test
   image: ${XEN_REGISTRY}/${CONTAINER}
+  rules:
+    - !reference [.test-rules, pre_rules]
+    - when: always
 
 .arm64-test-needs: &arm64-test-needs
   - alpine-3.18-arm64-rootfs-export
@@ -99,6 +109,7 @@
       - '*.dtb'
     when: always
   rules:
+    - !reference [.test-rules, pre_rules]
     - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - xilinx
@@ -117,6 +128,7 @@
       - '*.log'
     when: always
   rules:
+    - !reference [.test-rules, pre_rules]
     - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - xilinx
@@ -136,6 +148,7 @@
       - '*.log'
     when: always
   rules:
+    - !reference [.test-rules, pre_rules]
     - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - qubes-hw2
-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:07:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837872.1253799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBznV-0008MI-AW; Fri, 15 Nov 2024 17:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837872.1253799; Fri, 15 Nov 2024 17: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 1tBznV-0008MB-5k; Fri, 15 Nov 2024 17:07:53 +0000
Received: by outflank-mailman (input) for mailman id 837872;
 Fri, 15 Nov 2024 17:07: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=JxHJ=SK=bounce.vates.tech=bounce-md_30504962.67377fe0.v1-911f05d73a954fc7a1bd553292510684@srs-se1.protection.inumbo.net>)
 id 1tBznU-0008EW-PC
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:07:52 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2409c5a3-a374-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 18:07:49 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xqk3h1DFHz3sN6Mw
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 17:07:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 911f05d73a954fc7a1bd553292510684; Fri, 15 Nov 2024 17:07: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: 2409c5a3-a374-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjI0MDljNWEzLWEzNzQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkwNDY5Ljk3NDgzLCJzZW5kZXIiOiJib3VuY2UtbWRfMzA1MDQ5NjIuNjczNzdmZTAudjEtOTExZjA1ZDczYTk1NGZjN2ExYmQ1NTMyOTI1MTA2ODRAYm91bmNlLnZhdGVzLnRlY2giLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731690464; x=1731950964;
	bh=P4pIChsnK2S75XQEz2Z1xQE98I83W9wIQJYlm74JqxY=;
	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=lhramTlgAVKVBEeW+NufyV/0TpdDoyBxx9HA+ENbEwgs1Sfy3ACsCM2EPcZKrx4oF
	 nIacrv+St4YIv7TMf7GZWjP3rgSqlQCGrw9cM/60YEU/bKiJ0xCjZ8FyKlK81WNTMA
	 mdXIzgE8YBdGXCabSKcSvHEDJ/eNsuomUqTPsfas9WWvBL+44e26Pqxg4cr5hHmjsM
	 VxtgU1lXbJK+1A89xLyUQSKHoG3E8aO37fr2Gjl+D7d9XICKzcrn9KWBRxVA7AoNGv
	 Y23UCyti3PN31ce0xAclE5urEJTy3LuIDFx0Xe2bFtgYUBb2atKw6AMInX0QeKdArk
	 CGO58tG9vzeNA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731690464; x=1731950964; i=anthony.perard@vates.tech;
	bh=P4pIChsnK2S75XQEz2Z1xQE98I83W9wIQJYlm74JqxY=;
	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=Xk3fSi8zYfxxu510uuftz9v2MmstQ3yyyTc/LWlBLDNF/HT/JeQmeYeuEp48//Fh9
	 cCNLCVD6fzdRWcEH9v0OS23usX9Do02SkXAWuJ+gHSY5gNaCTnEQWvwueNJ5czh0ky
	 i3U5VpFB72MHcKxbho3vXfCagWxhH1tV/N3Kmmsp6SDiToVP8z6ig7HjZmfiPc9YBN
	 l29rS8r4htLmtPk3S9Eh3lNJJ+qRXZ0Q/JX+x4ur2CNwtJxgOhPhEBwBz5ZQq0tJKe
	 TW9INRMVPHgjZUPmLc+yAsDGuj7EaL7hZaOsRAHIXZQUY3y+azvQAJbaXoWSMKl6xA
	 hVAw9yfbWGtMA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=201/3]=20CI:=20Remove=20deprecated=20"only:variables"=20in=20favor=20of=20"rules:if"?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731690462328
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>
Message-Id: <20241115170739.48983-2-anthony.perard@vates.tech>
In-Reply-To: <20241115170739.48983-1-anthony.perard@vates.tech>
References: <20241115170739.48983-1-anthony.perard@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.911f05d73a954fc7a1bd553292510684?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241115:md
Date: Fri, 15 Nov 2024 17:07:44 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Also, this prevent using "rules", like in the ".test-jobs-common"
template.

https://docs.gitlab.com/ee/ci/yaml/#only--except

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 automation/gitlab-ci/test.yaml | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index f5dd4de757..ab5c8be0cd 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -98,9 +98,8 @@
       - '*.log'
       - '*.dtb'
     when: always
-  only:
-    variables:
-      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+  rules:
+    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - xilinx
 
@@ -117,9 +116,8 @@
       - smoke.serial
       - '*.log'
     when: always
-  only:
-    variables:
-      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+  rules:
+    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - xilinx
 
@@ -137,9 +135,8 @@
       - smoke.serial
       - '*.log'
     when: always
-  only:
-    variables:
-      - $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+  rules:
+    - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - qubes-hw2
 
-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:07:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837869.1253769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBznS-0007dx-GX; Fri, 15 Nov 2024 17:07:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837869.1253769; Fri, 15 Nov 2024 17:07: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 1tBznS-0007dq-DM; Fri, 15 Nov 2024 17:07:50 +0000
Received: by outflank-mailman (input) for mailman id 837869;
 Fri, 15 Nov 2024 17:07: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=V6Mr=SK=bounce.vates.tech=bounce-md_30504962.67377fdf.v1-26ab0b26c4c54e4ba4521ef776a8d6b6@srs-se1.protection.inumbo.net>)
 id 1tBznR-0007cN-2r
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:07:49 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 212b3e63-a374-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 18:07:44 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xqk3g54dYz3sNVQP
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 17:07:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 26ab0b26c4c54e4ba4521ef776a8d6b6; Fri, 15 Nov 2024 17:07: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: 212b3e63-a374-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjIxMmIzZTYzLWEzNzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjkwNDY1LjA2NDMxNSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3Mzc3ZmRmLnYxLTI2YWIwYjI2YzRjNTRlNGJhNDUyMWVmNzc2YThkNmI2QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731690463; x=1731950963;
	bh=C/3nS0B3FxW0IYBQw5KNz7UW4iI6k84L2rv+d7Y+KF8=;
	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=Jqumo7U6FMDzyOh+xzAzg7vt1N0krwYpssPwrzBojneYwRuV+8Z88ILgP+Ekf+6pU
	 /Oiqibv1APztQyjp0rxWVRnOAa7LGs9F3YJAKK39BnJrIeUbuRsKLURdk4Pg3Jjg3z
	 oXm5naUobNn6TwvWY6rY4iifHtUCDQt8ttPuAuEVtq72c4gzd+cJ4O77NM6H+zxfJT
	 jnt+Y7VVtoWWmEcqr0HtVYSQgij97F4B5HRDO7XkpmhvKIW1y/eSJyTxG1kAgudOTR
	 ePvYVmgQZcksBUVpTHObZK2oPhYyROBi3iDS7Twar1YQ5PekAafp5hCCl/vS+raBhk
	 wcY83ZeztbwaQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731690463; x=1731950963; i=anthony.perard@vates.tech;
	bh=C/3nS0B3FxW0IYBQw5KNz7UW4iI6k84L2rv+d7Y+KF8=;
	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=gWWARnA1Ge8rthEABYHKgoYMOIM29NYpfgPabOO3MeFFIo53F6ejPL6DYrWi6bHjD
	 1bMFsvkZAPL5h95XAoEQmXOBe2oVjtsQqGO8yYP5MO5j3b98xhDlOkrjQsRwkflRYz
	 4Pot2vYbV1OJSxL7RTVe+U92l4JKLwHjc0vm02nRn8MGF6uvIYu/uYYx5HtnKw1krx
	 zFtdqLalQgXpNAtuIUfUxCFpIbyqxiO5s6ODPjImZaphVfLrvDzYCYrBgiCJtLSXJo
	 OQJDKNC/o0rC03v1heaY9+ven1vRYwB2K4iK9bOfvuI6HkOETED8BtTfMkcs6OaM7o
	 l8Nol878nnkag==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=202/3]=20CI:=20Define=20XEN=5FREGISTRY=20variable?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731690462684
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>
Message-Id: <20241115170739.48983-3-anthony.perard@vates.tech>
In-Reply-To: <20241115170739.48983-1-anthony.perard@vates.tech>
References: <20241115170739.48983-1-anthony.perard@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.26ab0b26c4c54e4ba4521ef776a8d6b6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241115:md
Date: Fri, 15 Nov 2024 17:07:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This allow to change the registry used for container in a single
place, and could be controlled via other mean.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml                  | 3 +++
 automation/gitlab-ci/build.yaml | 4 ++--
 automation/gitlab-ci/test.yaml  | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ef4484e09a..941e5822e8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,6 @@
+variables:
+  XEN_REGISTRY: registry.gitlab.com/xen-project/xen
+
 workflow:
   rules:
     - if: $CI_COMMIT_BRANCH =~ /^(master|smoke|^coverity-tested\/.*|stable-.*)$/
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ce39b0ee21..1ca6764225 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -1,6 +1,6 @@
 .build-tmpl: &build
   stage: build
-  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
+  image: ${XEN_REGISTRY}/${CONTAINER}
   script:
     - ./automation/scripts/build 2>&1 | tee build.log
   artifacts:
@@ -208,7 +208,7 @@
 
 .yocto-test:
   stage: build
-  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
+  image: ${XEN_REGISTRY}/${CONTAINER}
   script:
     - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index ab5c8be0cd..1822e3ea5f 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -1,6 +1,6 @@
 .test-jobs-common:
   stage: test
-  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
+  image: ${XEN_REGISTRY}/${CONTAINER}
 
 .arm64-test-needs: &arm64-test-needs
   - alpine-3.18-arm64-rootfs-export
-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:09:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837895.1253809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzpR-0001U2-Kj; Fri, 15 Nov 2024 17:09:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837895.1253809; Fri, 15 Nov 2024 17:09: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 1tBzpR-0001Tv-Hi; Fri, 15 Nov 2024 17:09:53 +0000
Received: by outflank-mailman (input) for mailman id 837895;
 Fri, 15 Nov 2024 17:09: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBzpQ-0001SB-3p
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:09: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 6a699274-a374-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 18:09:47 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aa1e51ce601so375513566b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 09:09:47 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046d76sm196348966b.165.2024.11.15.09.09.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 09:09: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: 6a699274-a374-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhNjk5Mjc0LWEzNzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjkwNTg3LjA0ODU4NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731690586; x=1732295386; 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=GeDEs4H7mM9MVVv42M9CoGHfr21h65tza1Lh073Q8h0=;
        b=KxgTMP0wGCeGIglCsGKQtdpu8SHiKGC6/BmuoIn5tULlwEWL2PFRIlkK2pS1CihhNg
         aLl8u8biA8Bp2z+shp9cA8bJS9Ub2CyL+iTFf4N8z9JREi10jzxKz5x4thGFN8j/9NaH
         w+Z9azHFxbLC4bwvn29xkHDHJ0Hx43bzicjcc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731690586; x=1732295386;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GeDEs4H7mM9MVVv42M9CoGHfr21h65tza1Lh073Q8h0=;
        b=ur1GgbLpXX+DZPA6mrlvwDmxq8DMIprX3V29QzPCXCHpz082tBnwqx29klwHwWvTOE
         V+8zwyaKLtFrkf7UgZ1jzLs53ODNDsgsJa+xtJ6GGh8a8npAHxV2GMmajYOej8nkFIaA
         0ut9GeZhZiw7z+shxfRpVQAHo2x4BNonql55Q2aqRW9+9OBmXlrxUhMo4Qja1QgZX6v+
         OlsiBEA1JBV4mQnlNaXG2q5JG0XdQeohMWRzQTYQFMQUsE1UfccNrmVmj8c1fqQY1Kll
         Gmtf2sgP2cJuCHXgi6BNQWmw+S70/uMPqSiFeYQKidvLUUkgmShd7zDUbK3eMdx5cyhL
         H5Qg==
X-Forwarded-Encrypted: i=1; AJvYcCUbSr9+ytfaos4pTxWXPf6kUTMhpu4ZznFR+2fKpMN7EK8m5VAiSI0goIFITWqDYASInQOhNcjNpwI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydgYG4UHDBpghCP5PWmG1LQ4SEZNwSaJesXQ5aiJodZjl5uIY1
	ZIRm/VdBH8qjp0pPyxL+FNoGK8dka+OGAx0mKVE4zyJYLsEILJ7jGbUELdWXwzs=
X-Google-Smtp-Source: AGHT+IHItsHAXyD/qCVz13yW924W/qh8YHv8qxMBX+FQjXVcTyKA9KUN1oQPts7dOmi88CVK7sEVvw==
X-Received: by 2002:a17:907:928a:b0:a9e:6e77:3ecd with SMTP id a640c23a62f3a-aa483552936mr272303266b.54.1731690586286;
        Fri, 15 Nov 2024 09:09:46 -0800 (PST)
Message-ID: <a178bb81-c1a7-4daf-872b-9b474f62bd3b@citrix.com>
Date: Fri, 15 Nov 2024 17:09:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/6] x86/boot: introduce module release
To: Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-3-dpsmith@apertussolutions.com>
 <374d2387-6f8c-4a2b-a979-7066675dd247@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <374d2387-6f8c-4a2b-a979-7066675dd247@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 4:50 pm, Jason Andryuk wrote:
> On 2024-11-15 08:12, Daniel P. Smith wrote:
>> A precarious approach was used to release the pages used to hold a
>> boot module.
>> The precariousness stemmed from the fact that in the case of PV dom0,
>> the
>> initrd module pages may be either mapped or copied into the dom0
>> address space.
>> In the former case, the PV dom0 construction code will set the size
>> of the
>> module to zero, relying on discard_initial_images() to skip any
>> modules with a
>> size of zero. In the latter case, the pages are freed by the PV dom0
>> construction code. This freeing of pages is done so that in either
>> case, the
>> initrd variable can be reused for tracking the initrd location in
>> dom0 memory
>> through the remaining dom0 construction code.
>>
>> To encapsulate the logical action of releasing a boot module, the
>> function
>> release_boot_module() is introduced along with the `released` flag
>> added to
>> boot module. The boot module flag `released` allows the tracking of
>> when a boot
>> module has been released by release_boot_module().
>>
>> As part of adopting release_boot_module() the function
>> discard_initial_images()
>> is renamed to free_boot_modules(), a name that better reflects the
>> functions
>> actions.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v8:
>> - completely reworked the commit
>> Â Â  - switch backed to a releasing all but pv initrd approach
>> Â Â  - renamed discard_initial_images to free_boot_modules
>> ---
>> Â  xen/arch/x86/hvm/dom0_build.cÂ Â Â Â Â Â  |Â  2 +-
>> Â  xen/arch/x86/include/asm/bootinfo.h |Â  2 ++
>> Â  xen/arch/x86/include/asm/setup.hÂ Â Â  |Â  4 +++-
>> Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â  | 27 +++++++++++++--------------
>> Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 27 +++++++++++++++------------
>> Â  5 files changed, 34 insertions(+), 28 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/dom0_build.c
>> b/xen/arch/x86/hvm/dom0_build.c
>> index d1bdf1b14601..d1410e1a02b0 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -755,7 +755,7 @@ static int __init pvh_load_kernel(
>> Â Â Â Â Â  }
>> Â  Â Â Â Â Â  /* Free temporary buffers. */
>> -Â Â Â  discard_initial_images();
>> +Â Â Â  free_boot_modules();
>
> This...
>
>> Â Â Â Â Â  if ( cmdline != NULL )
>> Â Â Â Â Â  {
>
>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>> index 6be3d7745fab..2580162f3df4 100644
>> --- a/xen/arch/x86/pv/dom0_build.c
>> +++ b/xen/arch/x86/pv/dom0_build.c
>
>> @@ -875,7 +874,7 @@ static int __init dom0_construct(struct boot_info
>> *bi, struct domain *d)
>> Â Â Â Â Â  }
>> Â  Â Â Â Â Â  /* Free temporary buffers. */
>> -Â Â Â  discard_initial_images();
>> +Â Â Â  free_boot_modules();
>
> ...and this.Â  I think Andrew requested/suggested moving to a single
> free_boot_modules call:
> Â Â Â  They're both right at the end of construction, so it would
> Â Â Â  make far more sense for __start_xen() to do this after
> Â Â Â  create_dom0().Â Â  That also avoids needing to export the function.

Yeah...Â  It turns out that also breaks PVH Boot in Gitlab, for reasons
we still don't understand.

I'd still like to clean it up, but it wants to be detached from the
mechanics of changing the data-structures.

>
>> Â  Â Â Â Â Â  /* Set up start info area. */
>> Â Â Â Â Â  si = (start_info_t *)vstartinfo_start;
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 495e90a7e132..0bda1326a485 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>
>> +void __init free_boot_modules(void)
>> Â  {
>> Â Â Â Â Â  struct boot_info *bi = &xen_boot_info;
>> Â Â Â Â Â  unsigned int i;
>> Â  Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
>> -Â Â Â Â Â Â Â  uint64_t sizeÂ  = bi->mods[i].mod->mod_end;
>> -
>> -Â Â Â Â Â Â Â  /*
>> -Â Â Â Â Â Â Â Â  * Sometimes the initrd is mapped, rather than copied, into
>> dom0.
>> -Â Â Â Â Â Â Â Â  * Size being 0 is how we're instructed to leave the module
>> alone.
>> -Â Â Â Â Â Â Â Â  */
>> -Â Â Â Â Â Â Â  if ( size == 0 )
>> +Â Â Â Â Â Â Â  if ( bi->mods[i].released )
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>> Â  -Â Â Â Â Â Â Â  init_domheap_pages(start, start + PAGE_ALIGN(size));
>> +Â Â Â Â Â Â Â  release_boot_module(&bi->mods[i]);
>> Â Â Â Â Â  }
>> -
>> -Â Â Â  bi->nr_modules = 0;
>
> IIUC, zero-ing here was a safety feature to ensure boot modules could
> not be used after this point.Â  Should it be retained?

Clobbering this prevents the loop constructs from working.

Safety is now based on the .released field, which is better IMO.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:13:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:13:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837913.1253819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzso-0003fs-2s; Fri, 15 Nov 2024 17:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837913.1253819; Fri, 15 Nov 2024 17:13: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 1tBzsn-0003fl-Vv; Fri, 15 Nov 2024 17:13:21 +0000
Received: by outflank-mailman (input) for mailman id 837913;
 Fri, 15 Nov 2024 17:13: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tBzsm-0003dy-C6
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:13:20 +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 e74db0e2-a374-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 18:13:16 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cf9cd1120bso846877a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 09:13:16 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cf79bb59cesm1732622a12.50.2024.11.15.09.13.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 09:13: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: e74db0e2-a374-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU3NGRiMGUyLWEzNzQtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkwNzk2LjU1NzM1Mywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731690796; x=1732295596; 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=t8iE1Yyb3Or1ZwvEEVl/6h+gI1tGLnCKcRGmHGopyj0=;
        b=OkVii4VM0domRUuwp8oQlKoGkIKmVDPiZezKxcd1o6P/43jd8jGuJASE92kE+EHemw
         tWVEqY/NqRVT/WO19708/iJaU6wjrEzgPUG5klQoPaOVdfofuiu6M/rvymM2BqMuiDMK
         JwkosnxRg3RkTFHO4TVMOBjheqOz+u1kYA+UQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731690796; x=1732295596;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t8iE1Yyb3Or1ZwvEEVl/6h+gI1tGLnCKcRGmHGopyj0=;
        b=E89eJA6LWDsAB4BtRKLvio2wjGzyo/rne/oeWDowmJJFjeOxjzMRWOoDwRQZOryJts
         Q0KJBsi1Hpzmf0ef7b8hda8JvZZHkpmrgRTtA1Dq3Pmj8LJ0Ixemta1j8w/HZtUw0N5U
         LN/mwTzYqQ+88bknxRIlUPuPp95+GRsDNyhrybDqu1Vhu1tNiWJ2/+GDkJ62j8K72o36
         2PNuyiwXx8yswTIHgmotrup61s/ZuQRR0zkEOk56hfQjwqf81gfOxfeDsILfTxdFoV21
         pC3q376faFVeSjn69V2uStA5cEtV+8ZW3dq3NA+aIMBlmMmT4pgK0M4thVFmxb+PH74A
         bvuA==
X-Forwarded-Encrypted: i=1; AJvYcCV7ak2oxdckzQoRmN4Ymir8UJnfBqm/uTikU1xdZU7DI+quO8JuZDgrLl5ugvsn29243I4SV2AVKDw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyTHDyDn0b4XeK89Y1pRyy9W3irCbKWVlEo5nHVeiCYns9Ei8Jr
	hbUluB70JFlhIr/nSx4p2+f71GCpAalb1qIOBGcCUMlnyMhN8F19cDjGD0m+XkU=
X-Google-Smtp-Source: AGHT+IGO1cZZn6owo6krc/tYBIn3mVmwYQr7/3l8PgMUze1hMHPfw5pZkljGpmANUDd1DLZYu+HZUw==
X-Received: by 2002:a05:6402:35cf:b0:5c9:1cdf:bbae with SMTP id 4fb4d7f45d1cf-5cf8e007e37mr3615549a12.11.1731690795871;
        Fri, 15 Nov 2024 09:13:15 -0800 (PST)
Message-ID: <6344f8f9-5e02-4018-9646-a2b0734da9a2@citrix.com>
Date: Fri, 15 Nov 2024 17:13:13 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 0/3] CI: Allow automatic rebuild of rolling release
 containers
To: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241115170739.48983-1-anthony.perard@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241115170739.48983-1-anthony.perard@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 5:07 pm, Anthony PERARD wrote:
> Patch series available in this git branch:
> https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git br.gitlab-ci-rebuild-arch-container-v1
>
> Hi,
>
> This patch series would allow to setup a scheduled pipeline on GitLab which
> would rebuild containers and run a test on them immediately (the container is
> updated even if the test fail, but at least we can find out about it sooner
> rather than later).
>
> To enable this, just running a pipeline with XEN_CI_REBUILD_CONTAINERS=1 will
> do.
>
> I intend to add a scheduled pipeline to run once a month.

Oh excellent.Â  Thanks for looking into this.

One thing I was going to look into doing was to push the new containers
to a temporary repository (or a temp name in the main repository), kick
off a regular pipeline overriding image:, and on success doing a rename.

That would avoid pushing a container with problems into main CI.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:14:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837919.1253828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBztn-0004FJ-DH; Fri, 15 Nov 2024 17:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837919.1253828; Fri, 15 Nov 2024 17: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 1tBztn-0004FC-Ah; Fri, 15 Nov 2024 17:14:23 +0000
Received: by outflank-mailman (input) for mailman id 837919;
 Fri, 15 Nov 2024 17:14: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=cuMk=SK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tBztl-0004F0-EZ
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:14:21 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20606.outbound.protection.outlook.com
 [2a01:111:f403:200a::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a055e60-a375-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 18:14:14 +0100 (CET)
Received: from BN9PR03CA0609.namprd03.prod.outlook.com (2603:10b6:408:106::14)
 by SN7PR12MB7132.namprd12.prod.outlook.com (2603:10b6:806:2a4::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 17:14:10 +0000
Received: from BN2PEPF000044A9.namprd04.prod.outlook.com
 (2603:10b6:408:106:cafe::32) by BN9PR03CA0609.outlook.office365.com
 (2603:10b6:408:106::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.16 via Frontend
 Transport; Fri, 15 Nov 2024 17:14:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044A9.mail.protection.outlook.com (10.167.243.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 17:14:09 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 15 Nov
 2024 11:14:08 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 15 Nov
 2024 11:14:08 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 11:14:07 -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: 0a055e60-a375-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjA2IiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjBhMDU1ZTYwLWEzNzUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkwODU0Ljk0Mzk0OCwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b/RS50gZ7ll50uW0KbGIGPEhlniKGvLY2Pu+0aohVD9dhy58E18MNlimyiYfUgaGnDix7LtTKT405ZwYCPefwGWF2x4xY4ST9j6jgSX6t4+SDObnhote701mWPBxd8LhY70EwrVeefUYkWcxxpn1EhFlp1KN2ID93C16YWS4stwjSKfz0A/AI7D1pm0EzgZJTo6KWvlFptwbTSIVtzAM9sA4JkBNty03BOt1ABzhzPb2F5Yt0U5J42zlcLJvZ4W9SJFTm+mykuHMLFSkBbQu7EnHoXgkdWxCm/at4bKGZEl6odDYNAMBqWrouc54HJW1bEm7LXBPiNKLvxY8OHKG2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U27MWjamgrwi1T2d6lRtdMSo83fRLXmhOZbb3c1j0Ik=;
 b=DK/m/9j0j0y52f0YHiFUENcn2aOesJnE+gZ4SSyPu/XCUQUUqhe5QWkAWCVXfM8EynTCXixAwrvwGMIgkcGirvZdPzx51zzAikdsERg2+DTwB0WkCAoAClaIem774RVAaq6jP24cm8ycwao2RoY95OGrXhBbsIgPe5X9S+fWZTwdAsm209jkQdhldvq8ZQ0GEBlEo1GTloECUuIsxAO/uU+KJcjrOW1Y84lAh6kpHbWH57DaMwJhVnYmSWD3GLNTLDr+J5AMXqW6rcE9DVxc+mqAVL6x4TUV+HX9sv65OK/o09zDLbxf+uQowlKUU7jC42Jg69HHoffFtOzSWHTJZg==
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=U27MWjamgrwi1T2d6lRtdMSo83fRLXmhOZbb3c1j0Ik=;
 b=p8UAyxaGQutOnww8KNMInrQGNMvd49BYS13XHY+o9ShcFC+nKc5Q+4UxTrGdJaLW7st0UBCb52ynIVxXNhbu4bgyxqzG/ior4vNRn1HFiF8w6mjOMzawqLM7HF0EmBv+hhzGkxQtQeIDPgVaPYG2B70tkRsBU7Ud4afwdEEBTOM=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <861e75dc-ee82-4809-b225-7b3624059446@amd.com>
Date: Fri, 15 Nov 2024 12:02:52 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/6] x86/boot: convert domain construction to use boot
 info
To: Andrew Cooper <andrew.cooper3@citrix.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, <xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-2-dpsmith@apertussolutions.com>
 <24e23ea2-e359-41f3-be62-6b7bdff4e074@amd.com>
 <f45f516d-cf90-419f-b7a7-7fc91f9f2729@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <f45f516d-cf90-419f-b7a7-7fc91f9f2729@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: BN2PEPF000044A9:EE_|SN7PR12MB7132:EE_
X-MS-Office365-Filtering-Correlation-Id: effcc8ef-4ca4-4459-2b08-08dd0598eb18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eUVSVTduRDJaUU1jaHFNUk1Mam9WYWdLTG1JbmdTSmJtR3pqSDErbWh3N2Z4?=
 =?utf-8?B?Q1ZQbFZQRjZDOEpoaHpxWFlHSXV4UFNmQmVBbTA1Nk9MR0JoWFFNRFFEU2lE?=
 =?utf-8?B?S3NBcGxqSm5OenowVUxtWGUxdGEyMXRiWUlaK0FyMk9HdndxRGM3WE1HeTNy?=
 =?utf-8?B?SFlKS0ZxL2IzZTJOSkMvUkVXN1cxWjU5cFhjeWVYRDFvUWNoblFBZ0Uza0Qy?=
 =?utf-8?B?dTR0dXZ6ZDRIMVIvSCtGRDVTazRZak52dnVUbHVrdTFmT2pNN3cyQU93bVk4?=
 =?utf-8?B?eXpMa0tvY1crYm1RQzVZWTNGZGpEV3huaWFnWE9CZkFhcmQwTzRjSlZVellj?=
 =?utf-8?B?VUpvQVErdWJFbFFWazZNVUdjbm0vZlA5OXNMTm9sZi9xTnNpRmNuY21xeTZC?=
 =?utf-8?B?OGpPWElVTTVxaXY1MDc4SXNoVUNjZGdkdkR1WlBhOHRacFo2TnhIcDBqY0R4?=
 =?utf-8?B?TWxmWFFqMFozaUtJMW5JeEJPN0FKNGxkL0phbSszams3dk04d3ZYYWJ2Ump0?=
 =?utf-8?B?YWR3K3RvY3dVSW5PK2l1TjJ0R0RIUysxcTl5cldoNzREU25ZS2J6N1E2Q0ZS?=
 =?utf-8?B?YXdERjhzd1pDZXIveGhuS3VwQU9od3ZIejJQUnRjTGliTlREVmdQSnNUbVda?=
 =?utf-8?B?Vit5bk81VWJvNFdNRDJvWVltZ0QxZ2RYNHJhRjlSdDZYa01YWCtOUXA3VGNW?=
 =?utf-8?B?NWlIbGZRTERGRnBNdndOTk5ORCtDOThybkRlYVFkSmNpM0NvaEhrQks4emlG?=
 =?utf-8?B?WG5pV0sySVZQemVjUXR4RlJDSU56NFBySWRvdG9oazdEMU9kdTBPdEd5ZTJY?=
 =?utf-8?B?STc5Sm1YSSt0bCtiWC93TlpZd0owZTdCamE0WFA2dFRFczdNV3UrZlhTa24w?=
 =?utf-8?B?UTZSK2JIaWNTM1Z3T2oyOHRSYXpGNTdkZVNCaHhPUGRlT0hJQ2gyeFVQSEg1?=
 =?utf-8?B?OElRb3ZWRnZsdUhsZjJiQWJtdHgyVFkxRktHOUFoK0s3N1pmbjVLdzZrdllz?=
 =?utf-8?B?WUZpdVlGU0lLK21VbTRYZmo1bHJtM3MvNVV6dDVBd1BieXFOa2pDbHNwTmJ5?=
 =?utf-8?B?RlBNOVY4RmtEaHdxYXA4Q3p3M0l5K1JwaTVodElwWUpNTDNFbWVUU1BIdmF6?=
 =?utf-8?B?QzIvL1BPclBmS2RielQwZEVOZExKV001a3FOdE9wM0hxc0tYTnArSmdBWWxM?=
 =?utf-8?B?MTg1QUREZklSTXRJbW93NStKbDlES0VaTlh1ZXc2NU5YTE1pMzBTZThrU05E?=
 =?utf-8?B?MkJ0UUlDTE1jTDJtcnJjNEo1ZlQzUGpXWU5kbk5ZNmRkQjdFd2RKTzBhSUkw?=
 =?utf-8?B?UTZOczdhaVlqRjVnckEzR2ZXbzA3OFZGdFFlR0FMSFRlcUorNmx1cHM5K3FU?=
 =?utf-8?B?V240Uy9qNlAwS3VZb0VCT1dPV2hyWG9vWC9jZnF5S2x1a1hBNWlUdno2YXpa?=
 =?utf-8?B?emhHM05HbHFrMGdFSGhZd0d1WmdXczRoVmtkQnVxdjNheTEzcE0vRklvdm44?=
 =?utf-8?B?L2VaZ0xydURENEtoc0NyUWtaaC9XSWo0cW93ZGNtRTRxc3JZODFaQkN3SUlF?=
 =?utf-8?B?T0d5OGszQUNIdVo1b2FWNlBYMENadUdpdng3cWNRUkFaQ2FWWG11TXFQa2Fy?=
 =?utf-8?B?RkQzTWNqNzhUUUp3NEs1UFovRVhKUGcvOGpFYUZvRFh3eDhXNkhoZTZVU2NW?=
 =?utf-8?B?V3loblhtbjMybEFoajVJbTRDRFdqdzNpcmNta1dxWlJBYkc2K0lZbFpMYlUy?=
 =?utf-8?B?VXdRRUV4aFJPdDN6KzJBWlZlSzErOHIySGF1a0tmSzZVemV6NGpnejZMaUZw?=
 =?utf-8?B?VnUveEk3dGE0QTBWVkh1YlRmcStBZXpTaHUwUHdrTFZXNGw4aUtUbFJFUW12?=
 =?utf-8?B?bUkvbkFRQmxEbEdhRW9hZTYxV21KUE5NanJLVE1DcHhQY0E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 17:14:09.3250
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: effcc8ef-4ca4-4459-2b08-08dd0598eb18
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A9.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7132

On 2024-11-15 12:01, Andrew Cooper wrote:
> On 15/11/2024 4:33 pm, Jason Andryuk wrote:
>> On 2024-11-15 08:11, Daniel P. Smith wrote:
>>> diff --git a/xen/arch/x86/hvm/dom0_build.c
>>> b/xen/arch/x86/hvm/dom0_build.c
>>> index 3dd913bdb029..d1bdf1b14601 100644
>>> --- a/xen/arch/x86/hvm/dom0_build.c
>>> +++ b/xen/arch/x86/hvm/dom0_build.c
>>> @@ -1300,16 +1301,26 @@ static void __hwdom_init
>>> pvh_setup_mmcfg(struct domain *d)
>>>  Â Â Â Â Â  }
>>>  Â  }
>>>  Â  -int __init dom0_construct_pvh(struct domain *d, const module_t
>>> *image,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned long image_headroom,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  module_t *initrd,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  const char *cmdline)
>>> +int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
>>>  Â  {
>>>  Â Â Â Â Â  paddr_t entry, start_info;
>>> +Â Â Â  struct boot_module *image;
>>> +Â Â Â  struct boot_module *initrd = NULL;
>>> +Â Â Â  unsigned int idx;
>>>  Â Â Â Â Â  int rc;
>>>  Â  Â Â Â Â Â  printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n",
>>> d->domain_id);
>>>  Â  +Â Â Â  idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
>>> +Â Â Â  if ( idx >= bi->nr_modules )
>>
>> What do you think about introducing a new define:
>>
>>  Â Â Â  #define BOOTMOD_NOT_FOUND (MAX_NR_BOOTMODS + 1)
>>
>> For first_boot_module_index() to return.Â  And then:
>>
>>  Â Â Â  if ( idx == BOOTMOD_NOT_FOUND )
>>
>> ?
> 
> Care would need to be taken vs BOOTMOD_XEN, which could have the same
> numeric value in a big HL configuration.

It's a little subtle that BOOTMOD_XEN could be at MAX_NR_BOOTMODS + 1, 
and first_boot_module_index() will return that for "not found".  Which I 
overlooked when making the suggestion.

>  From a "reading the code" point of view, a range check against any
> invalid value is better seeing as the next thing we do is index an
> array, so I'm marginally on the side of "keep it as it is".

first_boot_module_index() is looking for a specific BOOTMOD_*, so I 
thought it would be a little safer to just return either a valid index 
or BOOTMOD_NOT_FOUND (which might have to become ~0).

> This particular logic can't trip because of earlier checks in
> __start_xen(), and gets rewritten in patch 4 in the conversion to
> boot_domains, so I'm also not overly fussed at extra polish on this
> specific piece of logic.

If maintainers are okay with it as-is, then I have no issue with the 
code as-is and

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

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:16:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:16:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837926.1253839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tBzvb-0004qc-Nr; Fri, 15 Nov 2024 17:16:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837926.1253839; Fri, 15 Nov 2024 17:16: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 1tBzvb-0004qV-KW; Fri, 15 Nov 2024 17:16:15 +0000
Received: by outflank-mailman (input) for mailman id 837926;
 Fri, 15 Nov 2024 17:16: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=54cC=SK=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tBzva-0004qK-A7
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:16:14 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e291299-a375-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 18:16:10 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1731690963219973.3767882444106;
 Fri, 15 Nov 2024 09:16: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: 4e291299-a375-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRlMjkxMjk5LWEzNzUtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkwOTcxLjAyNjI5NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1731690965; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=EACVwoOOopQ76kVL/fSNKTo8yabb0NLNmEqHXvSe8qWPt3fKyEHjjHY/1DBASmlUiy7If5aDZ0lmzTZLl44tnIzwewJQ+PSWIdu4efiJiW0hf7p+7/TTcdDUrPQmCUfN1vtRkYsnu5uv2X6lozBQQqfRHpNneL7Ez8kUzUEtgME=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1731690965; 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=qbUVhWFYzl5YVjRa9lwYSVegewF6XUziWfyz3WPfjcY=; 
	b=TDGqPmGC5TuMe0pJt2/xlLvrFLClgQbKpeZNMMwKfsEMb4O/xvD/tn5H6wK0vk2Cf/6+XBbpHv6US4x1eAY5Z5LCcXSj+i2eiZbXzKL13U31nX96N2qoaJiw47m6ETKPF/8mTIuMHkIpYJdgWlMOcIsoLocEN++jsYl7ICvUksA=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1731690965;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=qbUVhWFYzl5YVjRa9lwYSVegewF6XUziWfyz3WPfjcY=;
	b=cJbHIXErM3shvUuMOE1IMSR6IKcuzLB0rk/fOOdVdCi55XUQ0UwZ6XAmGMLkv755
	Clohmoyc8aK85j1k2BlLt/UkcYHgJfHLMnABe+jx3R3KMphAjoKpexinZmvGHqcMUph
	m1Ov5HSHT95bdrgnjHTWYqHDeQP9PdZr7eYVfBIE=
Message-ID: <3f61cc43-c29a-40e0-ac40-4f273fd4461e@apertussolutions.com>
Date: Fri, 15 Nov 2024 12:16:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/6] x86/boot: introduce module release
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-3-dpsmith@apertussolutions.com>
 <374d2387-6f8c-4a2b-a979-7066675dd247@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <374d2387-6f8c-4a2b-a979-7066675dd247@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/15/24 11:50, Jason Andryuk wrote:
> On 2024-11-15 08:12, Daniel P. Smith wrote:
>> A precarious approach was used to release the pages used to hold a 
>> boot module.
>> The precariousness stemmed from the fact that in the case of PV dom0, the
>> initrd module pages may be either mapped or copied into the dom0 
>> address space.
>> In the former case, the PV dom0 construction code will set the size of 
>> the
>> module to zero, relying on discard_initial_images() to skip any 
>> modules with a
>> size of zero. In the latter case, the pages are freed by the PV dom0
>> construction code. This freeing of pages is done so that in either 
>> case, the
>> initrd variable can be reused for tracking the initrd location in dom0 
>> memory
>> through the remaining dom0 construction code.
>>
>> To encapsulate the logical action of releasing a boot module, the 
>> function
>> release_boot_module() is introduced along with the `released` flag 
>> added to
>> boot module. The boot module flag `released` allows the tracking of 
>> when a boot
>> module has been released by release_boot_module().
>>
>> As part of adopting release_boot_module() the function 
>> discard_initial_images()
>> is renamed to free_boot_modules(), a name that better reflects the 
>> functions
>> actions.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes since v8:
>> - completely reworked the commit
>> Â Â  - switch backed to a releasing all but pv initrd approach
>> Â Â  - renamed discard_initial_images to free_boot_modules
>> ---
>> Â  xen/arch/x86/hvm/dom0_build.cÂ Â Â Â Â Â  |Â  2 +-
>> Â  xen/arch/x86/include/asm/bootinfo.h |Â  2 ++
>> Â  xen/arch/x86/include/asm/setup.hÂ Â Â  |Â  4 +++-
>> Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â  | 27 +++++++++++++--------------
>> Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 27 +++++++++++++++------------
>> Â  5 files changed, 34 insertions(+), 28 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/ 
>> dom0_build.c
>> index d1bdf1b14601..d1410e1a02b0 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -755,7 +755,7 @@ static int __init pvh_load_kernel(
>> Â Â Â Â Â  }
>> Â Â Â Â Â  /* Free temporary buffers. */
>> -Â Â Â  discard_initial_images();
>> +Â Â Â  free_boot_modules();
> 
> This...
> 
>> Â Â Â Â Â  if ( cmdline != NULL )
>> Â Â Â Â Â  {
> 
>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>> index 6be3d7745fab..2580162f3df4 100644
>> --- a/xen/arch/x86/pv/dom0_build.c
>> +++ b/xen/arch/x86/pv/dom0_build.c
> 
>> @@ -875,7 +874,7 @@ static int __init dom0_construct(struct boot_info 
>> *bi, struct domain *d)
>> Â Â Â Â Â  }
>> Â Â Â Â Â  /* Free temporary buffers. */
>> -Â Â Â  discard_initial_images();
>> +Â Â Â  free_boot_modules();
> 
> ...and this.Â  I think Andrew requested/suggested moving to a single 
> free_boot_modules call:
>  Â Â Â  They're both right at the end of construction, so it would
>  Â Â Â  make far more sense for __start_xen() to do this after
>  Â Â Â  create_dom0().Â Â  That also avoids needing to export the function.

I wanted to do this and had it written this way. Then I started testing 
it and the pvhshim test failed due to not enough ram to build the domU 
inside pvshim. I started splitting this commit to see where it broke the 
test case, and for an unknown reason, replacing these two calls with a 
single call in __start_xen() just after create_dom0() is the cause. 
Instead of trying to tear apart the construction logic to determine why, 
I backed this part of the change out for the time being.

>> Â Â Â Â Â  /* Set up start info area. */
>> Â Â Â Â Â  si = (start_info_t *)vstartinfo_start;
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 495e90a7e132..0bda1326a485 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
> 
>> +void __init free_boot_modules(void)
>> Â  {
>> Â Â Â Â Â  struct boot_info *bi = &xen_boot_info;
>> Â Â Â Â Â  unsigned int i;
>> Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
>> -Â Â Â Â Â Â Â  uint64_t sizeÂ  = bi->mods[i].mod->mod_end;
>> -
>> -Â Â Â Â Â Â Â  /*
>> -Â Â Â Â Â Â Â Â  * Sometimes the initrd is mapped, rather than copied, into 
>> dom0.
>> -Â Â Â Â Â Â Â Â  * Size being 0 is how we're instructed to leave the module 
>> alone.
>> -Â Â Â Â Â Â Â Â  */
>> -Â Â Â Â Â Â Â  if ( size == 0 )
>> +Â Â Â Â Â Â Â  if ( bi->mods[i].released )
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>> -Â Â Â Â Â Â Â  init_domheap_pages(start, start + PAGE_ALIGN(size));
>> +Â Â Â Â Â Â Â  release_boot_module(&bi->mods[i]);
>> Â Â Â Â Â  }
>> -
>> -Â Â Â  bi->nr_modules = 0;
> 
> IIUC, zero-ing here was a safety feature to ensure boot modules could 
> not be used after this point.Â  Should it be retained?

The released flag displaced the need for this, but I realized it would 
make it stronger if in bootstrap_map_bm() we add a check that the 
released flag is not set before mapping. I think this is a stronger 
approach without loosing information like the number of boot modules 
were passed.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:30:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:30:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837941.1253848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC09E-0008Gu-PY; Fri, 15 Nov 2024 17:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837941.1253848; Fri, 15 Nov 2024 17:30: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 1tC09E-0008Gn-Mt; Fri, 15 Nov 2024 17:30:20 +0000
Received: by outflank-mailman (input) for mailman id 837941;
 Fri, 15 Nov 2024 17: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=cuMk=SK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tC09C-0008Gh-DH
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:30:18 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2407::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4485e88e-a377-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 18:30:12 +0100 (CET)
Received: from SJ0PR13CA0206.namprd13.prod.outlook.com (2603:10b6:a03:2c3::31)
 by CH3PR12MB8936.namprd12.prod.outlook.com (2603:10b6:610:179::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20; Fri, 15 Nov
 2024 17:30:07 +0000
Received: from SJ1PEPF00001CE4.namprd03.prod.outlook.com
 (2603:10b6:a03:2c3:cafe::77) by SJ0PR13CA0206.outlook.office365.com
 (2603:10b6:a03:2c3::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.10 via Frontend
 Transport; Fri, 15 Nov 2024 17:30:06 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CE4.mail.protection.outlook.com (10.167.242.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 17:30:06 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 15 Nov
 2024 11:30:05 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 11:30:05 -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: 4485e88e-a377-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNzo6NjBkIiwiaGVsbyI6Ik5BTTAyLUJOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ0ODVlODhlLWEzNzctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkxODEyLjc3MzAxMSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FEyi4ylgk5/YFomFPmFVbZcUw8tKtaZlB2fu81KeTD5zWaN3LLNoG64i7SeOkZqsghQsdO+fCB6n09fRf9Q885BILctnJERreY9ei4oeiFHkaeE0ajxtGf9hpwvTkNFyo/Vlo9xOw40yjxlbhWSA9TSduS5HQ5B7VlwMtLS1NwH1b0fsxsZl6IIaezUdiwz/YK8AxFLgR6Bu2mXXm6hmxfsD8maFsZ5L2gq10sdJZjA7IpO0q1JV8KZT1B3CD/vYMKmUCaOSLRip6MrSQeNXjeK7+IaY68XNqFwfZZzoDtn0I0/bKkK48vFJXxNNObXElKb5tAahRu/KMtSRveQuQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Spl4V/nqqoU6Vg9mo4P+0Of8dR0qSG9zK57CRV0edPU=;
 b=EWGoBLfJfrb3QXwUnjVPDAV/6jAsI5vv/cLY/5RE10F1ydnHhvq6qjGuUv0EDTS3+InZXdLA+84Kkha9UF476sb7HVrbPqnnYK9Vi7DP28w4kzOAc+f/ACviQm0WIm5UYXzbuZ5lmzS0KeMmLQeKWIWu8NjJg/b3y0WLWvPXqAkXC5tabXRdiAgacMSK7lkUSpI0FWf8ZBOT7zeLdsWqDP44v8Ew/OFZVeS7a4619HSunaNWrQ5MBVEHrY4Rv2qM0fMLTAWQIsMV3fmF6xKervfenFTi7tu2vJYsCQVUOP8V37TQVcBoe2d50aIv89VanVKbSOfivM9elr2v17Sa2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=Spl4V/nqqoU6Vg9mo4P+0Of8dR0qSG9zK57CRV0edPU=;
 b=M16bK7vFC6VVl84JPVx6My3JHIbiZvmfhDRKi72HFlnt4gRWJdTp6O1G8u9wF3K3/p8dsQnv7FZ3wk/u84qNZ8qhSxaYh5DdoC/mKhgJjKH/gpADpNO8JxcQEQlWakYGzvjoeKOrjUOwd7tjcjllBYTLj6IItYEu3k++487TkUE=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <f3aee76b-7ac1-4558-a036-c2c19c5b9154@amd.com>
Date: Fri, 15 Nov 2024 12:18:49 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/6] x86/boot: introduce module release
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-3-dpsmith@apertussolutions.com>
 <374d2387-6f8c-4a2b-a979-7066675dd247@amd.com>
 <3f61cc43-c29a-40e0-ac40-4f273fd4461e@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <3f61cc43-c29a-40e0-ac40-4f273fd4461e@apertussolutions.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: SJ1PEPF00001CE4:EE_|CH3PR12MB8936:EE_
X-MS-Office365-Filtering-Correlation-Id: 34cdacb8-efef-4e83-d2ef-08dd059b25b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dXRVNjBXK3FkUU9nbTArQVY1T3BKY3hEeGEyK0tIMzczTnJiUm1HOTBjZENY?=
 =?utf-8?B?K1YvUkE5SUlaQ1pDUlBrSEVQUFU2ODF5LzFvMkUvSkNUalRiVFkvVW1aWERs?=
 =?utf-8?B?OHBCelp6RFdPUGdaR0h1bVBSQW4zYUVmTmR5WjJ5aHJlcjA0MnBoUFVJY1hY?=
 =?utf-8?B?LzRXU2VTcnRIQmFhSm95RVhyQnhqN3ZHNjRpSFV3ZjhHY3IyejZwM05za1Jq?=
 =?utf-8?B?ZTRXcStFdTRTRXFlRUNnY3RqcExpaFZ2S0hWWkU5T2FOdkFmR2xoNDlGRW9s?=
 =?utf-8?B?bW4zbEdTYVVMNWhFRm8rU3hXNjJ1WG93bjdQdFk5ZUtObk13TS83SHhaK0dQ?=
 =?utf-8?B?SDhzUmJpbDhieWVRbGxlTTlpeWNhQk5HSnlPQjlPQWV1VzFkbytOQUVKaFYx?=
 =?utf-8?B?dlArSGl3TjBYUkVUdElhdmEzekNXblN6TUlLcG1WUkhXUlhidFlZek1Qclli?=
 =?utf-8?B?MGVtMElvamlKNEFKMmRYeGhJcmNKUUVBMU9RRkVWT2o3VlhBaUgvaEJGbjk1?=
 =?utf-8?B?U0xIZXVXczN3dkkvSnVxaVUxTmczeG9qc3JFY09kNWNOZ1A4U05EbUlqcFdW?=
 =?utf-8?B?RUdIOHNWTk9JNGNBc29UZGRDcWJlRE9NMUd0TkQ4Q0hoU3R3YzVDb3BUR1pp?=
 =?utf-8?B?M2RXdXF6VUplRFE3czVwd1RzSWZGNVVwc0t6T2FYZnU3ZWNKWnNCYzgxYWRL?=
 =?utf-8?B?SDl4WGhCZXA1UHlHUXdoTW53cXpTUk53eGRHclZ4S3pyV0hBZVdVcjBOMVJu?=
 =?utf-8?B?ZmxuQmtmNXhGZndvWS9sZ2kyNlZubCs0UnRVaGkwdnNubmF3dDJqbDZOQ1RQ?=
 =?utf-8?B?a0JEYTFUem8vNVhBNFNHQytSbmZxdGdoK3p1aFRPQ2pkZ0EwSys3RS9GUUJ5?=
 =?utf-8?B?WWdSakY0Zm93b1VYL1VsM0ZQTTF1ci9JTlRWR1E0ejkrTmtFWHNPeXV5bjND?=
 =?utf-8?B?VllYTHF5NkpYNVRHN1g0SHk4M1JnWm5LaWdjdHVMeU1zc05iOWo2RS91RlE2?=
 =?utf-8?B?ZS9LTno5QUFkZ1hHa2swWCtCQkpwRHlRTUhKY2IxOEt4aElLMDg1bVgzS0pX?=
 =?utf-8?B?N2pWcFhqT28wNjNHSXhJT1hTSEY0WmU2bVN4amR5KytlYTZiMG9DT0NMQlg4?=
 =?utf-8?B?NVNHakxSMk0xSHZxcVoyZHpUbW4vWGVldzFqQU9FNk1YSFVWMFZvY0oxWFhT?=
 =?utf-8?B?YU9mQjVpenY4cEZqQnlqN0xvOXF5VkRYdjBOZnF3a0VIRTUrUHNLUmVGSWx1?=
 =?utf-8?B?R0hyaDNOSXcyWEd5elNkSG5YYkZTZUZjMkJpbjVlQkszV3ZRRHNrb2ZkUVps?=
 =?utf-8?B?RFV5cU1tNjJ3aHh3MG9EWTNmcmRVY21wK0N4dG1vOFBITGo4blJPbXFzOFdk?=
 =?utf-8?B?SkRSN3hKVjhlZU5hWTV5NlFSZm5NRTN1bTlac2UxVkZlOFFDelFHQTJtNTdJ?=
 =?utf-8?B?cWIrSjZLZE1hZ016bnFuWGI4dW5RdUowcEtiajhkVWtMam1TNlNNNWhDa0gw?=
 =?utf-8?B?emVMTGhPKzRXSmROaTZGVXNiSVNGeEpkOFZiN2dHTktNWHAyTkdKNWNuY0lD?=
 =?utf-8?B?d0tqaThPclpUSkRxQkRiTVhCZHliNnVZekxqSXdNWXpCbnNKQzRHZ0hKcXZR?=
 =?utf-8?B?K0Y4YWl6MTlIYVBmOWlxdUl2Z3JtamJUZjhyajh3d29hRHhuWGJwZ0tKeXdT?=
 =?utf-8?B?Q2F2QjRrT29hMmZXeWRLazVhZUNnRGkwbFlBSVBseFJaTTNGam5UNzZVdi9x?=
 =?utf-8?B?Zm8ybDhGY2svQno5VGc3c0RXWlg1WS9TcHV1SHNieDhyTldDWVNrTmQ2aXVy?=
 =?utf-8?B?NXRIQ1ExR3phVmNoRm5rM1diMS92NkFDd3R1Y0daaXRENEdZYkJhUjFYRmxB?=
 =?utf-8?B?Z1Y3ck9wdUhleDVxZGptK1NLUk9Ldk53ajRCOHNhWkZER1E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 17:30:06.5436
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 34cdacb8-efef-4e83-d2ef-08dd059b25b4
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE4.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8936

On 2024-11-15 12:16, Daniel P. Smith wrote:
> On 11/15/24 11:50, Jason Andryuk wrote:
>> On 2024-11-15 08:12, Daniel P. Smith wrote:
>>> A precarious approach was used to release the pages used to hold a 
>>> boot module.
>>> The precariousness stemmed from the fact that in the case of PV dom0, 
>>> the
>>> initrd module pages may be either mapped or copied into the dom0 
>>> address space.
>>> In the former case, the PV dom0 construction code will set the size 
>>> of the
>>> module to zero, relying on discard_initial_images() to skip any 
>>> modules with a
>>> size of zero. In the latter case, the pages are freed by the PV dom0
>>> construction code. This freeing of pages is done so that in either 
>>> case, the
>>> initrd variable can be reused for tracking the initrd location in 
>>> dom0 memory
>>> through the remaining dom0 construction code.
>>>
>>> To encapsulate the logical action of releasing a boot module, the 
>>> function
>>> release_boot_module() is introduced along with the `released` flag 
>>> added to
>>> boot module. The boot module flag `released` allows the tracking of 
>>> when a boot
>>> module has been released by release_boot_module().
>>>
>>> As part of adopting release_boot_module() the function 
>>> discard_initial_images()
>>> is renamed to free_boot_modules(), a name that better reflects the 
>>> functions
>>> actions.
>>>
>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> ---
>>> Changes since v8:
>>> - completely reworked the commit
>>> Â Â  - switch backed to a releasing all but pv initrd approach
>>> Â Â  - renamed discard_initial_images to free_boot_modules
>>> ---
>>> Â  xen/arch/x86/hvm/dom0_build.cÂ Â Â Â Â Â  |Â  2 +-
>>> Â  xen/arch/x86/include/asm/bootinfo.h |Â  2 ++
>>> Â  xen/arch/x86/include/asm/setup.hÂ Â Â  |Â  4 +++-
>>> Â  xen/arch/x86/pv/dom0_build.cÂ Â Â Â Â Â Â  | 27 +++++++++++++--------------
>>> Â  xen/arch/x86/setup.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 27 +++++++++++++++------------
>>> Â  5 files changed, 34 insertions(+), 28 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/ 
>>> dom0_build.c
>>> index d1bdf1b14601..d1410e1a02b0 100644
>>> --- a/xen/arch/x86/hvm/dom0_build.c
>>> +++ b/xen/arch/x86/hvm/dom0_build.c
>>> @@ -755,7 +755,7 @@ static int __init pvh_load_kernel(
>>> Â Â Â Â Â  }
>>> Â Â Â Â Â  /* Free temporary buffers. */
>>> -Â Â Â  discard_initial_images();
>>> +Â Â Â  free_boot_modules();
>>
>> This...
>>
>>> Â Â Â Â Â  if ( cmdline != NULL )
>>> Â Â Â Â Â  {
>>
>>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>>> index 6be3d7745fab..2580162f3df4 100644
>>> --- a/xen/arch/x86/pv/dom0_build.c
>>> +++ b/xen/arch/x86/pv/dom0_build.c
>>
>>> @@ -875,7 +874,7 @@ static int __init dom0_construct(struct boot_info 
>>> *bi, struct domain *d)
>>> Â Â Â Â Â  }
>>> Â Â Â Â Â  /* Free temporary buffers. */
>>> -Â Â Â  discard_initial_images();
>>> +Â Â Â  free_boot_modules();
>>
>> ...and this.Â  I think Andrew requested/suggested moving to a single 
>> free_boot_modules call:
>> Â Â Â Â  They're both right at the end of construction, so it would
>> Â Â Â Â  make far more sense for __start_xen() to do this after
>> Â Â Â Â  create_dom0().Â Â  That also avoids needing to export the function.
> 
> I wanted to do this and had it written this way. Then I started testing 
> it and the pvhshim test failed due to not enough ram to build the domU 
> inside pvshim. I started splitting this commit to see where it broke the 
> test case, and for an unknown reason, replacing these two calls with a 
> single call in __start_xen() just after create_dom0() is the cause. 
> Instead of trying to tear apart the construction logic to determine why, 
> I backed this part of the change out for the time being.

Ah, ok.  Thanks for the info.

>>> Â Â Â Â Â  /* Set up start info area. */
>>> Â Â Â Â Â  si = (start_info_t *)vstartinfo_start;
>>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>>> index 495e90a7e132..0bda1326a485 100644
>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>
>>> +void __init free_boot_modules(void)
>>> Â  {
>>> Â Â Â Â Â  struct boot_info *bi = &xen_boot_info;
>>> Â Â Â Â Â  unsigned int i;
>>> Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>>> Â Â Â Â Â  {
>>> -Â Â Â Â Â Â Â  uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
>>> -Â Â Â Â Â Â Â  uint64_t sizeÂ  = bi->mods[i].mod->mod_end;
>>> -
>>> -Â Â Â Â Â Â Â  /*
>>> -Â Â Â Â Â Â Â Â  * Sometimes the initrd is mapped, rather than copied, into 
>>> dom0.
>>> -Â Â Â Â Â Â Â Â  * Size being 0 is how we're instructed to leave the module 
>>> alone.
>>> -Â Â Â Â Â Â Â Â  */
>>> -Â Â Â Â Â Â Â  if ( size == 0 )
>>> +Â Â Â Â Â Â Â  if ( bi->mods[i].released )
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>>> -Â Â Â Â Â Â Â  init_domheap_pages(start, start + PAGE_ALIGN(size));
>>> +Â Â Â Â Â Â Â  release_boot_module(&bi->mods[i]);
>>> Â Â Â Â Â  }
>>> -
>>> -Â Â Â  bi->nr_modules = 0;
>>
>> IIUC, zero-ing here was a safety feature to ensure boot modules could 
>> not be used after this point.Â  Should it be retained?
> 
> The released flag displaced the need for this, but I realized it would 
> make it stronger if in bootstrap_map_bm() we add a check that the 
> released flag is not set before mapping. I think this is a stronger 
> approach without loosing information like the number of boot modules 
> were passed.

Andrew> Clobbering this prevents the loop constructs from working.

I thought the boot modules are unusable after free_boot_modules() is 
called, so I'm not clear on the utility of keeping the boot modules 
around and/or keeping the loop constructs working.  I wondered about, 
but didn't write, clearing the boot_module info in release_boot_module() 
to eliminate stale data hanging around.

Yes, a bootstrap_map_bm() check is a good idea.  Having said that, there 
is a lack of checking the return value of bootstrap_map_bm(), so would 
you panic?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 17:43:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 17:43:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837953.1253858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC0Li-0002qs-0Q; Fri, 15 Nov 2024 17:43:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837953.1253858; Fri, 15 Nov 2024 17:43: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 1tC0Lh-0002ql-Tp; Fri, 15 Nov 2024 17:43:13 +0000
Received: by outflank-mailman (input) for mailman id 837953;
 Fri, 15 Nov 2024 17:43: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=cuMk=SK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tC0Lh-0002qf-9S
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 17:43:13 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f403:200a::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10d7593d-a379-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 18:43:05 +0100 (CET)
Received: from BLAPR03CA0057.namprd03.prod.outlook.com (2603:10b6:208:32d::32)
 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.8158.17; Fri, 15 Nov
 2024 17:42:57 +0000
Received: from BL02EPF00021F6E.namprd02.prod.outlook.com
 (2603:10b6:208:32d:cafe::37) by BLAPR03CA0057.outlook.office365.com
 (2603:10b6:208:32d::32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.29 via Frontend
 Transport; Fri, 15 Nov 2024 17:42:57 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF00021F6E.mail.protection.outlook.com (10.167.249.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 17:42:56 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 15 Nov
 2024 11:42:56 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 11:42:55 -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: 10d7593d-a379-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjBmIiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjEwZDc1OTNkLWEzNzktMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkyNTg1LjczODg5MSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OLbrsfbueRIwsX24Nobs9HSeBIX/I1BeG/HGmr0FuxteJgBazQ2RUIHx0o/9HN212zIeFBaoXz8FaToPTxCXGM4lEeUr2rckcWGPk6FFZZ91XQ7hAcdrJQuVSDTgwfPK2CIA/pTGmACfh9ghOfRt/seKHqPRB+qbdfyv/5F/kKT5qGVIyCSYuOllwANWMeH4ZDwNkbsvREhhVTcbeASbVuDxGHeF2x5P86Jx6xYxCBySk4P4kJT+yhpLU4hse27zVSPP/FJPE4kk29aCGJXt/Mkr6lbF02xcAAYX+oc9cysUvaVy1zqMaVy/2mzOusaWPjBm3OSgwZ+zmD69uzs5Tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6epml8VYlzDbO/4BkdDq6lOkgUNkcK3H4yv8NSHVzXg=;
 b=mJck018TF+EJ40+kFVeunRtQSZiaFG1aEpKzXC6OtblnggC/oN0QacLjf80Cm0+chalVv+6AGXUf8Uwc3g50j867U8yHUJ3shGvKzUevwQgoE+fgN7l+Lnbo6xSAt6AYep0GIn1nL8zbbHGU7aWJwsoBkTLUbxRwHkOXmWMP22YJwbdZ1pBpMoghv3+ZevPxBa3+H2W0S2kmjR1K/9U8r0NKaHKsLAv7ZiypVALN+2bHj+DhsZX1o+tdg7JJ1gwxboIcjuen6XDJi9VGjUn12bc89E6xLfJ3tFxTG/rcudaUMymWu42uxx1daCNUKeis/THl+KJdTEcx88UXA+KvMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=6epml8VYlzDbO/4BkdDq6lOkgUNkcK3H4yv8NSHVzXg=;
 b=NPNBFWSeXEFXAgLRyYp4ha5TCFOkxGuWH5eU9QH4G5xGUddY8e/j0WsX1pC8TgTxFaVakOguJrHrJngdqhlIMh7+BR5d/I6UPW5X5wK90cJRRzf/OOMMaev0uom6UXjqzGvI0U0wBXcKAJGmHcsv7ziU0evZhYb5EiClbTLYqhI=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <87d2a1e6-c69e-4789-b4e1-54aaf60eb858@amd.com>
Date: Fri, 15 Nov 2024 12:31:36 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 3/6] x86/boot: add start and size fields to struct
 boot_module
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-4-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241115131204.32135-4-dpsmith@apertussolutions.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: BL02EPF00021F6E:EE_|LV3PR12MB9402:EE_
X-MS-Office365-Filtering-Correlation-Id: e6eda7f6-1764-415d-748a-08dd059cf0d7
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?UDRJRTlHdkZheXp0Sm5BU0UxVXJtTzhpUzd6T2ZqTXl1b3cxQXluSUVYc3JE?=
 =?utf-8?B?SXNiMlY5WkFucWtFNE9qbUU4RjJhV1UrTHRPVzZFQWovODBlQ0s4Yk51WGVr?=
 =?utf-8?B?SHdmZ29aYXcyOUZnRndIVDlZZGRKY2tRSVQrWUVrOXBna1J0QUxyc2NQeDhK?=
 =?utf-8?B?T09CT3JXV091ejh6TE5KR2tLSkR4K2tvRmx6bjlvbUFLWDE4S3FRYXRyNEVv?=
 =?utf-8?B?bHd2ZHpwWGlEODA5Q1YvYTdQVHlLNCt0ZGVjd01mM1JEcDE5YnZPSHJwZnFT?=
 =?utf-8?B?Q2RVLy9sdUFZa3FFRGxUQk5wSE40V0hlSW96L1ZMcnpvSFE4dHpjS1IweTlV?=
 =?utf-8?B?WkFEeXhFTEFMZlNoRmJPU29scUlUTS8zd0FQc1BkclhOblZPVFp6VVdVWkJr?=
 =?utf-8?B?UW1HUDl3QTNWdnlTYnFZTG1Db3dwOENSK0c5WHBYNDdlNzFGM0VHb1lva205?=
 =?utf-8?B?cUJvNTd5SUFWcndaa0NHbG5ueks0TmZZb21DZHpJblFnVWhuUFcyWXhpWVJ1?=
 =?utf-8?B?WEl6NHJsKzBaSnRLNDMyN1krbUhOWTZ4aDV3NjhoL2I0Z2ZWQWZyS1hqTUcw?=
 =?utf-8?B?VEQzWkxpYmRENURuSXo2Y240Smw3RzdMb05kQnlOS3Z3WEY1UjRHT1pacHMz?=
 =?utf-8?B?NldyODNmWkFWYkc0c1J1aSt5R0lOUFZ2Tlp6WU1acU1PSWRTZFIwaWx6V2tB?=
 =?utf-8?B?TmhYeHdQTm9rbFhoYmFjU28vTlJmeXFIZnMxcFQxVlF4UjBZR0x5WlhHeUhJ?=
 =?utf-8?B?ZnkwMDdkbXlvWUFiZktHRk5CTDdudUU1UTVWWmRyYW5PeHRvUEc1amllVWtL?=
 =?utf-8?B?b0JSQVEzV2huRWZYUWlhbXRCSTBnS2FhS1BBZXFBbUc2ZjVQUXRMQS92RWVI?=
 =?utf-8?B?czlvT1hRNjk0c2NwT2ZVL3JhQTR0RlhiQzZkWmZ1K1lIcDM5eWc3UkFLSWgr?=
 =?utf-8?B?WVJONXE1QTcrZ2ZVSVpDR2tRWXJvcGNBWm1ESllod3hsbklaQjZCMk1aY25r?=
 =?utf-8?B?R1ozWk56V2xSOFJZbmVGSUtMYUdWaFNYOEtKSFJDN0N1TUZVMlMrai9iamxr?=
 =?utf-8?B?M01Ib082QWtpZEFNRjA4aUNVVDZYZElVT05FUHUxQlNYNmppOHo5SHd2VmZW?=
 =?utf-8?B?RWo2Nm8wWTN5WFdzWlE0RTh6RTErSHRtZ21NK3BpaTdSRElZMGs1T0gyU3lj?=
 =?utf-8?B?bGxZdVpSMFJVdU8yalR5ZGtyT2MwcWFnQ1R6YVRQWTZDUm0wK3ltWmp3TkFH?=
 =?utf-8?B?ZGdOQmR3dms1UFQ5WHM3NytzekxyWmRpN3ZGKzB4SjNmdTFRKzRUazFMQW9B?=
 =?utf-8?B?MHhndis2YzJQOFQ2OTZWNVJ5NWVoeDlxTlpCQ29ieEpTMS9qZ044eFhySnlv?=
 =?utf-8?B?TWpMd2w1M2pyQmdEbjEveXh6c01LQXFRR0tvNHRkYi9sNnM5TWtxUW9NYVEr?=
 =?utf-8?B?U3FKVUJRQUhDMjlrVHFGbFk5SlJUUHoxQVRDQTZSNG5vSkMwWDRLOEVEVU5R?=
 =?utf-8?B?K2gyT3M0NWhIb3pjc0kyQkM1TjQ2Y3NzK2tQL0VLV0Q5TlA2VFJZblJVS3Vm?=
 =?utf-8?B?OTdMR29yWkhkM3RtcWhsalhTNWR4cmRJaVhRcm40K0E3dlFBN1dqYjdoUXBz?=
 =?utf-8?B?WWhmWTh2SzZNaW5hODN3ZzlmdE8yMEFGYmVseUNTVnpmL3ZhWEtuVzM0bWR6?=
 =?utf-8?B?eE94ZzBJN1Vod3REMXNFMitvYytSUmdnUHhET1dFZHdReUdoUkIvS2hkeElS?=
 =?utf-8?B?OG82SysxNDlNbzZ6Wmt1MkphT0JiQnJMNG5iNk9DejI3NWRlWFlqN01LS1Ju?=
 =?utf-8?B?WWNOL1lGSU0zOUVXODFjUlZWWFgrVnRCN3l6TzJnYkE0SmRBTWRpaFVtSzZQ?=
 =?utf-8?B?SWt4bTc2NkJOOVhKRmtwOVQwN0tsbmxPSG9Ob3lPc0dKL2c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 15 Nov 2024 17:42:56.9542
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6eda7f6-1764-415d-748a-08dd059cf0d7
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F6E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9402

On 2024-11-15 08:12, Daniel P. Smith wrote:
> Introduce the start and size fields to struct boot_module and
> assigns their value during boot_info construction. All uses of module_t to get
> the address and size of a module are replaced with start and size.
> 
> The EFI entry point is a special case, as the EFI file loading boot service may
> load a file beyond the 4G barrier. As a result, to make the address fit in the
> 32bit integer used by the MB1 module_t structure, the frame number is stored in
> mod_start and size in mod_end. Until the EFI entry point is enlightened to work
> with boot_info and boot_module, multiboot_fill_boot_info will handle the
> alternate values in mod_start and mod_end when EFI is detected.
> 
> A result of the switch to start/size removes all uses of the mod field in
> struct boot_modules, along with the uses of bootstra_map() and release_module()

bootstrap_map()

> functions. With all usage gone, they all are dropped here.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

with that:

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


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 18:03:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 18:03:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837961.1253869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC0f7-0006lA-IY; Fri, 15 Nov 2024 18:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837961.1253869; Fri, 15 Nov 2024 18:03: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 1tC0f7-0006l3-Fn; Fri, 15 Nov 2024 18:03:17 +0000
Received: by outflank-mailman (input) for mailman id 837961;
 Fri, 15 Nov 2024 18:03: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=olWw=SK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tC0f6-0006kx-La
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 18:03:16 +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 e032dc6a-a37b-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 19:03:11 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so150413866b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 10:03:11 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df52adasm200289366b.81.2024.11.15.10.03.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Nov 2024 10:03: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: e032dc6a-a37b-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUwMzJkYzZhLWEzN2ItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjkzNzkxLjExMTU1MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731693790; x=1732298590; 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=Vt8YeGqOnwZKJLkShM7ZkBWKYwFJg/rg9MhZxk65vhw=;
        b=f8YEOurfxodKKQRcGTekJp1o6iOkrWEi3Qr/OqRlZZYaThyIbepOFI7REOhf0yZcLh
         Jsr/4q6zVtzXQH5GK1YX8mb3QdxfQeYtDKzaZH3UucZkYY2BUcRqXLTq2X8Ov4OscdNh
         NLPkAv6mVYoZ/H3gCPQlsqu5JsbjME4WXdmRQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731693790; x=1732298590;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vt8YeGqOnwZKJLkShM7ZkBWKYwFJg/rg9MhZxk65vhw=;
        b=IdxMsWaeNmhRkWjY5ydCVdpZ2vvYCEIIbD2/DOYEDshWUgG5OW0o6SY0iUAJrViYgM
         7qttcnSVXQyuBoG8RaU3Yb2tm8yfmt0v5j7uH3YYIlpvov7/bX+VzG8KZ/RQ+maxegh3
         WZJ/vRR723P0LettwJJb52rzrTzqe+IjO41rTFYdKUVbLtqlIXynWpUzQtWC17LkeYrj
         /GrbbHFEQ0fsPJf4rlb1VDH89nZRq2gpuirKpo41V10zgHeLMAvbsh9EeJ0gf4wR4kai
         TchjNQ7i9XVvaLgCdROOkjG2xrNbql865mLg24UeQIPQ3Ok25ccHK50lk4LlM0iWwBxM
         +Ang==
X-Forwarded-Encrypted: i=1; AJvYcCUMmZM16tAGwO1e4Almrci0hwFrA0P4FX3l3NpTOAL4j5ABOMWxpqbr+rBwKeVnvNaPagmNftwC8Ws=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBssTjxQODVaZx4ap/yn3x0BA45CYTfxpGOPN0UNjKygqHO6yp
	FYwOCGlg5A4VgkvZpeR20iq4Awl92yUu15n1H8DczQ+qADXAxzJYqrVrPuibGFU=
X-Google-Smtp-Source: AGHT+IGUozI8F4mrCu2bmBqoHIiwvjn7trJgIWFxlGK79bR8ELRiziuVbTq3Ifdo4baH7MNN1x7HtA==
X-Received: by 2002:a17:907:36cb:b0:a9e:b1f9:bc52 with SMTP id a640c23a62f3a-aa48354d1d5mr331312466b.55.1731693789884;
        Fri, 15 Nov 2024 10:03:09 -0800 (PST)
Message-ID: <babfdcb5-c23f-4a18-b1bb-52026f9bf2f7@citrix.com>
Date: Fri, 15 Nov 2024 18:03:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] x86/ucode: Fix cache handling in
 microcode_update_helper()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?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: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-3-andrew.cooper3@citrix.com>
 <c25b7a62-fc47-440f-9521-f11b65e2cb8b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <c25b7a62-fc47-440f-9521-f11b65e2cb8b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/11/2024 11:26 am, Jan Beulich wrote:
> On 12.11.2024 22:19, Andrew Cooper wrote:
>> microcode_update_cache() now has a single caller, but inlining it shows how
>> unnecessarily complicated the logic really is.
>>
>> Outside of error paths, there is always one microcode patch to free.  Its
>> either result of parse_blob(), or it's the old cached value.
>>
>> In order to fix this, have a local patch pointer (mostly to avoid the
>> unnecessary verbosity of patch_with_flags.patch), and always free it at the
>> end.  The only error path needing care is the IS_ERR(patch) path, which is
>> easy enough to handle.
>>
>> Also, widen the scope of result.  We only need to call compare_patch() once,
>> and the answer is still good later when updating the cache.  In order to
>> update the cache, simply SWAP() the patch and the cache pointers, allowing the
>> singular xfree() at the end to cover both cases.
>>
>> This also removes all callers microcode_free_patch() which fixes the need to
>> cast away const to allow it to compile.
> I'm sure you're well aware that this in turn is just because of your opposition
> to xfree() and alike taking const void *.

My opposition, and the C standards committee, and MISRA to name but a few.

>  Pointers needing to be to non-const
> just because of eventual freeing is precisely the scenario why freeing (and
> unmapping) functions better wouldn't take mutable pointers. Then ...
>
>> --- a/xen/arch/x86/cpu/microcode/core.c
>> +++ b/xen/arch/x86/cpu/microcode/core.c
>> @@ -86,7 +86,7 @@ struct patch_with_flags {
>>  static bool ucode_in_nmi = true;
>>  
>>  /* Protected by microcode_mutex */
>> -static const struct microcode_patch *microcode_cache;
>> +static struct microcode_patch *microcode_cache;
> ... this imo pretty undesirable change also wouldn't be needed.
>
> Nevertheless, in the interest of not blocking this change over a long-standing
> disagreement we have,
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thankyou.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 18:32:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 18:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837971.1253880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC17H-0002YX-Q1; Fri, 15 Nov 2024 18:32:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837971.1253880; Fri, 15 Nov 2024 18:32: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 1tC17H-0002YQ-Lg; Fri, 15 Nov 2024 18:32:23 +0000
Received: by outflank-mailman (input) for mailman id 837971;
 Fri, 15 Nov 2024 18:32: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=cuMk=SK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tC17G-0002YK-HY
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 18:32:22 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20617.outbound.protection.outlook.com
 [2a01:111:f403:2412::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb9f36d7-a37f-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 19:32:15 +0100 (CET)
Received: from PH8PR07CA0015.namprd07.prod.outlook.com (2603:10b6:510:2cd::20)
 by DS0PR12MB6390.namprd12.prod.outlook.com (2603:10b6:8:ce::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8158.18; Fri, 15 Nov 2024 18:32:04 +0000
Received: from CY4PEPF0000E9CE.namprd03.prod.outlook.com
 (2603:10b6:510:2cd:cafe::26) by PH8PR07CA0015.outlook.office365.com
 (2603:10b6:510:2cd::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.22 via Frontend
 Transport; Fri, 15 Nov 2024 18:32:04 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9CE.mail.protection.outlook.com (10.167.241.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Fri, 15 Nov 2024 18:32:04 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 15 Nov
 2024 12:32:02 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 15 Nov
 2024 12:32:01 -0600
Received: from [172.17.143.135] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Nov 2024 12:32:01 -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: eb9f36d7-a37f-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjE3IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImViOWYzNmQ3LWEzN2YtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNjk1NTM1LjA2MDA3Nywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bN7/aOXqr3JcbPDjy3v8iH21m7DiaAN+hxHbKusvckB9qr3SFWjctZ9FiWDXiAeeCWd19OOnp92E7nyWyrNzfPXhA5okdN5Rx6hjgBa1H9nyPm5KbS+qCAEdi19lX90mxkAvDnEgqsPgIuFiWbB9Rt9eXPnx4o12pMTED9xb28b4k5ALPaIr+VvNWIrurdlT99Ax+YWJWBo5fUPG/jupkVhenyW2UreVBrTAzG/+QKwTpHOiWMbeeF351jveLuzyWtAsh8D1gpru2SG4k8Y7dX/4BVWagQvxnS0Gbng2LU8Cl8nGQWP0Q/zqz5+r0Mmw427fOuDqajqTFs5RkVy2HA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0HvI5g1oVPNQgvVjBow9877QqwdGu+DwxgO8myBkoLg=;
 b=X6OBgD3Ar2bCjeG6knanerYklcAY0nvn3raotRKJ3HRL9qU5jBxMpwHrgRY+8MYJRTP8VB1eNN2IOfBDU80AddwJAHhjaC2f01LnPnTC/K7IwSjwC2QxJ/zKvrx4oLi5Y/l8VAN1ytHUCWNVK/VgejqmzMK+qdXAqDgr9MTmzCeCzyg5a6I4YsQQvPwKK318ZMrUx1rfuaa7eKhnNkmpFu0oYGRQYwXHH5JZPzClP0NDbgfrhMlqjsOFZ9lKgS18mhDo30ZCVgkm+Nw1TtmVFFd+h5IYHBGyHGPqUadd8cwcPGOC+ZQxuOm3rBnaAbvjJSxah1ugWn7DuqLsrkr76Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=0HvI5g1oVPNQgvVjBow9877QqwdGu+DwxgO8myBkoLg=;
 b=u1EUmkGLlloCrGR1/ihtL6q3/PJ6QxL6/dU6wfRgvn1dKDpOJvtz2DdbEAC9JxNt2etW41pcb81O0JpRkeYPMD1rD/9Dfy3lpWC5rjB/5LwFHmUQDVczqNHZr53knaQW8PBb1sT73IA5Zy1KmcpPM33qrNgy+3iXE/+FeN53pUQ=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <c4b37832-efaa-4a26-8bbf-a3cf7caa3468@amd.com>
Date: Fri, 15 Nov 2024 13:20:45 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 6/6] x86/boot: add cmdline to struct boot_domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-7-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241115131204.32135-7-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9CE:EE_|DS0PR12MB6390:EE_
X-MS-Office365-Filtering-Correlation-Id: deda968a-dde7-4223-5d69-08dd05a3cd7b
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?dG5uelgyMDliVlZNc2xUazdJNVdIdTlIU1paOWpmSzZFZE8yK1QxTjFKTDk0?=
 =?utf-8?B?eWIrazJ4TjJzY1p6eno0aVBqdUIvQmFDZDg2M1J5cnFqRmdFS1FHR1k0dStT?=
 =?utf-8?B?T1hkaE05TEIyNjdaTUxvYU1tMSt6K1E4dk1Ha3FHUWk0aTN3RzI2YlBwUnpi?=
 =?utf-8?B?MHdFNXVtYlVYWjhocnNLOHp0ek9TYUIxK3dzLzNsMjdOVDF6TkZmUzFwdkw2?=
 =?utf-8?B?bUxEWXcwMTBZblJiQlZENDkwQXlHa0RsSmlIK0pCTUdBSW50UUN5b0s2b2JH?=
 =?utf-8?B?LzVRL3BRQ0pDeGdISzFkeHpTQTAraWRXVStiVUJVZ0lERVM4czN6Rm43ZzUw?=
 =?utf-8?B?bzllNDFhOVVIVVhRY3U2YkloekNoWWhDZWpyeDEvNllzL2V6VUczTXUrWVFO?=
 =?utf-8?B?aHA2NnFCcGJCR01LbHhPUnMxNzA2VndBQWk2L3l6UStmUUFRamRwYzJWdTUv?=
 =?utf-8?B?VnpzRTlYUzRGSnVWQVk1a3UvcmhDUlBXUU1ySnh4TE9QRzJCKzM2NDh2VXAv?=
 =?utf-8?B?NXAyVnB1REQ1TUtSL2xaUklzNlpPUnNlNEtXS1dWbm1tMU5VbzVQWEtDdnJP?=
 =?utf-8?B?OGV2MENGZWo5cy9nb2dLazlabnM0bk94QWNza3liMVpLOU9ldTZJbFBwRThI?=
 =?utf-8?B?MUlnSkUzV1VqMEEzZVlGZVJGK1JWVjlIZEVraDdsVWwxZjhzb2JqWUhSbWE3?=
 =?utf-8?B?YW1NbkExQi9Dbk5HM0FsK0Yzclc5NVZnZGpKMzdlUHkyT0NLUXlEOHg4eEUr?=
 =?utf-8?B?RGVuY0tQYU1HZWpEMU1RL251anB2NHpGamEvWWJEMnNrTmhzOGZVRjRuSlNm?=
 =?utf-8?B?VE9kK291eUtXVlZmdzVhbW1GM2NVOXBFNUZtZENqK3VIUDZmbmtScmFoaU5l?=
 =?utf-8?B?d1liRk5qUjlEb2lScFZ4WE5nUm1nSmRmVTg0UVdSdm9oYUdLMnQ3emhZZ0Nm?=
 =?utf-8?B?OENUSlpZbjNCR1hwVVBjVDJJY0UzZXoxSm5xSzZCbEhoUXFER3JraE1sWFQv?=
 =?utf-8?B?L3RNQWRQTFJFSTdhc1JsSDRJS0F4dURNVlgvd09wL2x6MDhZSEpGaDBxSkky?=
 =?utf-8?B?WDhBTHhzOG45NnpTRldMa1dNU2JrU0xIVVJSaGUwUEsrajQzTnpiM1JpRjcy?=
 =?utf-8?B?dXdGTit5UVc0cWNOTm5BWVVyRlhPVG5MYmJEL0l4RjQ0bVVZMjU4a29FRVFZ?=
 =?utf-8?B?Zk9PWVVvTzRBbGVYSTRzRlZUdXdIY0lkeWtYY0ZxajJOTHFXTEdSZ1lvUFpG?=
 =?utf-8?B?eHV6RmNlekFhQnhCVUg5WWRJZENlNGpobGNxeFlMQUtlaTlJWUxKVU9KbGRw?=
 =?utf-8?B?MG9DTUM4SEhTdWJjbndtMG1CcnB6dll5amVSQWttOFlDUjZPWDRlOWh6b01Z?=
 =?utf-8?B?ZFlqcG9La1ZGWUMzYTZyRE5sUFJvdE5IMEppQkg3bUxxRy9WbU1LNzBGc3Zh?=
 =?utf-8?B?YXZucjdLd1pOeTAwalM1UzJ1alY2RFgxSXBzb05sTXVReGw2YlJkQUY4bHgr?=
 =?utf-8?B?akdyUGNrTEx1RGZreXVMWGMrZ1FESE5CSTBBcEQvMDBUZlB1NWluSld4ZkFk?=
 =?utf-8?B?bjBmalp1L2Jwck81a1BPQ1I3cEd1RisrNGNRcElvQm1LNlBocEoyRW1CdzVy?=
 =?utf-8?B?K2ZwZnpaVlNDbzVVUTA0VFdtcmZwQzVHWWZnTUZUclRMNkVSN1hNL3NSZGR4?=
 =?utf-8?B?aFpOcVllUDI1UDhEcEdhallTbkFIaEhRRFVsZmhBZ2haR2pzc2dtV0p5akcz?=
 =?utf-8?B?dTlZRFh3RFZSc1IvaVZka05OTkZEYnlYbXNjVldpSEFmTGZHellmWjhmT0pJ?=
 =?utf-8?B?Qys3ZEdqQmJTelRwamttendXaHRlSHZONUczdmFoR05QMld5TC9oc0YzSHVw?=
 =?utf-8?B?NGJIQ2VGRGh5WmQxWS9La3I2R1ZrTmpFRDFReHNXdXhBclE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 15 Nov 2024 18:32:04.0138
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: deda968a-dde7-4223-5d69-08dd05a3cd7b
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9CE.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6390

On 2024-11-15 08:12, Daniel P. Smith wrote:
> Add a container for the "cooked" command line for a domain. This provides for
> the backing memory to be directly associated with the domain being constructed.
> This is done in anticipation that the domain construction path may need to be
> invoked multiple times, thus ensuring each instance had a distinct memory
> allocation.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>


> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 533a1e2bbe05..b9ca9c486fe5 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -963,10 +963,31 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
>       return n;
>   }
>   
> -static struct domain *__init create_dom0(struct boot_info *bi)
> +static size_t __init domain_cmdline_size(
> +    struct boot_info *bi, struct boot_domain *bd)
>   {
> -    static char __initdata cmdline[MAX_GUEST_CMDLINE];
> +    size_t s = 0;
> +
> +    s += bi->kextra ? strlen(bi->kextra) : 0;
> +    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
>   
> +    /* Should only be called if one of extra or cmdline_pa are valid */
> +    ASSERT(s > 0);
> +
> +    /*
> +     * Add additional space for the following cases:
> +     *  - 7 chars for " noapic"
> +     *  - 13 chars for longest acpi opiton, " acpi=verbose"

option

> +     *  - 1 char to hold \0
> +     */
> +    s += 7 + 13 + 1;

Seems a little fragile.  Sizing but also depending on code elsewhere. 
Interesting - "verbose" wouldn't actually get updated into acpi_param. 
Anyway, using sizeof(acpi_param) seems better.  Maybe:

         s += strlen(" noapic") + strlen(" acpi=") + sizeof(acpi_param) + 1;

> +
> +    return s;
> +}
> +
> +static struct domain *__init create_dom0(struct boot_info *bi)
> +{
> +    char *cmdline = NULL;
>       struct xen_domctl_createdomain dom0_cfg = {
>           .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
>           .max_evtchn_port = -1,
> @@ -1008,17 +1029,23 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>       /* Grab the DOM0 command line. */
>       if ( bd->kernel->cmdline_pa || bi->kextra )

 From your other email, since you don't need the length, just non-zero:

     if ( (bd->kernel->cmdline_pa && __va(bd->kernel->cmdline_pa)[0]) ||
           bi->kextra )

>       {
> +        size_t cmdline_size = domain_cmdline_size(bi, bd);
> +
> +        if ( !(cmdline = xzalloc_array(char, cmdline_size)) )

Just xmalloc_array since it'll be overwritten immediately?

> +            panic("Error allocating cmdline buffer for %pd\n", d);
> +
>           if ( bd->kernel->cmdline_pa )
> -            safe_strcpy(cmdline,
> -                        cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader));
> +            strlcpy(cmdline,
> +                    cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),
> +                    cmdline_size);
>   
>           if ( bi->kextra )
>               /* kextra always includes exactly one leading space. */
> -            safe_strcat(cmdline, bi->kextra);
> +            strlcat(cmdline, bi->kextra, cmdline_size);
>   
>           /* Append any extra parameters. */
>           if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
> -            safe_strcat(cmdline, " noapic");
> +            strlcat(cmdline, " noapic", cmdline_size);
>   
>           if ( (strlen(acpi_param) == 0) && acpi_disabled )
>           {
> @@ -1028,17 +1055,21 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>   
>           if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
>           {
> -            safe_strcat(cmdline, " acpi=");
> -            safe_strcat(cmdline, acpi_param);
> +            strlcat(cmdline, " acpi=", cmdline_size);
> +            strlcat(cmdline, acpi_param, cmdline_size);
>           }
>   
> -        bd->kernel->cmdline_pa = __pa(cmdline);
> +        bd->cmdline = cmdline;
> +        bd->kernel->cmdline_pa = __pa(bd->cmdline);

Should cmdline_pa go away if we now have a valid cmdline variable?

Regards,
Jason

>       }
>   
>       bd->d = d;
>       if ( construct_dom0(bd) != 0 )
>           panic("Could not construct domain 0\n");
>   
> +    if ( cmdline )
> +        xfree(cmdline);
> +
>       return d;
>   }
>   



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 18:53:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 18:53:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.837987.1253889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC1Rr-0005mr-Iw; Fri, 15 Nov 2024 18:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 837987.1253889; Fri, 15 Nov 2024 18: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 1tC1Rr-0005mk-FK; Fri, 15 Nov 2024 18:53:39 +0000
Received: by outflank-mailman (input) for mailman id 837987;
 Fri, 15 Nov 2024 18: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=bZlB=SK=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tC1Rp-0005me-SM
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 18:53:37 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2412::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e813de19-a382-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 19:53:32 +0100 (CET)
Received: from MW4PR12MB7334.namprd12.prod.outlook.com (2603:10b6:303:219::21)
 by PH8PR12MB7230.namprd12.prod.outlook.com (2603:10b6:510:226::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Fri, 15 Nov
 2024 18:53:27 +0000
Received: from MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8]) by MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8%7]) with mapi id 15.20.8158.017; Fri, 15 Nov 2024
 18:53: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: e813de19-a382-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjJiIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImU4MTNkZTE5LWEzODItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNjk2ODEyLjU2NDY5LCJzZW5kZXIiOiJheWFuLmt1bWFyLmhhbGRlckBhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vv1wllQAGCYoczabib1wNcAVZohwWXDQ7kCMQWc04/xCXFJgkjswhMvmXkSiZYcCnltUmo7ccrc831I48kt1ceN3OCdJzpVmeRVqmdPaQDccWZG7fk8tkBX4HBKjZsxjr7bfDY7LL/i+wJjc/28zgYrnsfzL4O3yCgVkYNi2TQFwZPpMhuY4TCzAnOP2TXINexT0Nu/Tc6Cy4HN0i/P/zMTb/F1bA6jxowttcYr9r9rz1BUjG7de/FtlzwEs25CjhpFJeHmKLUrvU0yEjB6JGnSA4GeBTYSaxQi7wRP97B8/57FwoOTBRG6lWJWV6GjPN0UNTbtYFtl9h0HrUq16Xw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zvewEK7Px6wTxXU/eqBVALT6CU1MMa8pYl23FC47WKY=;
 b=wDHYrQHtTe152LG7jBClR64e+dJY8pCAyU/5PcO8cN6eLeZyIiQqGef6+QRD7jSQSl7mE4aH8jQmPa7H3x8A4VHWpocR53BZsWNtemK+bUr+Hnm7uGIsDrSwtaEKpYZ4xAJYEDEeFByK/y3tYkPgun+ljvpIqvIslrY6ZW93dwjbD+K7Am5z+HBsztiaI9GryXym6f/W7zY6t+6akISZ7UnGzTr07CI0/jHNdohDkQD8UDwNi0TTKQOw5iVQngKh7Bf2VjGZ4hMVRF4V2+BqZUbKrk/Ru4Qt8IBhcaMrjHcPrPntzB938McMdHL8Zknyac6b5/36bfgI3KcM5oNbzw==
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=zvewEK7Px6wTxXU/eqBVALT6CU1MMa8pYl23FC47WKY=;
 b=jZQ5yXWrsKvuALUjsFCbkykquWhgA3bcc58WzzaNDnMBLVIiZuK6IsfWnfq+toCkiOS+OS+6O7dTaMZsKlxLaZgeAEM+UIRxFL2qniWEu+yWra7cuG/s3jXh0Ka/tRJgdnBTEpR8UGUOfBK/OqaavajkzzOIv6Ha0DALgwdGSu4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <22282f26-5c66-444b-b63a-d5442e6fcdad@amd.com>
Date: Fri, 15 Nov 2024 18:53:16 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
Content-Language: en-GB
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Artem Mygaiev <artem_mygaiev@epam.com>,
 Munakata Hisao <hisao.munakata.vt@renesas.com>
References: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
 <4dbf2c4d-f7bd-4032-b52f-29c24e3ec055@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <4dbf2c4d-f7bd-4032-b52f-29c24e3ec055@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PN3PR01CA0162.INDPRD01.PROD.OUTLOOK.COM
 (2603:1096:c01:c8::6) To MW4PR12MB7334.namprd12.prod.outlook.com
 (2603:10b6:303:219::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW4PR12MB7334:EE_|PH8PR12MB7230:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d5e7fe3-c9c9-4eee-8e4a-08dd05a6c982
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?dHBGVmE4TXpsOVdIMkJWSGI5SUtpUCtBQ203UXU5c21ldnExcThOM1dhMXZX?=
 =?utf-8?B?ODM0a1RDYnNUc3diNS8xZzJvZlVuTUVrT01jVXB3c1BUeXhjckZvSTdPaGEz?=
 =?utf-8?B?ZVdIZmQvNWRpR3Z3Z0g1T0FsenZwVE05TW41c0ErNXE0MXVEdzN4enlDTmgx?=
 =?utf-8?B?Vm4vdktzR3dXZnd0M2xMYnlrbkUxTDdnRSt2clZSQ1FkUVpWajQrYWJjN3JV?=
 =?utf-8?B?VHl4SmZubmtWVFp2d2lGUlRybDB3M2JlOW9TSHE0d0tXZ1FkVFV4RzJkL3dH?=
 =?utf-8?B?RmZJbjFQRVIrQURFR0llQ21DYnhkZUV2eWV0WXU0d2RSZjNBWVdaUGszTW9i?=
 =?utf-8?B?TTdOdndOS1NWNjBaMjAwZXFqbVFQSVZHQ3FmM05EeUVKa1BRc2xUR0IybVMz?=
 =?utf-8?B?Y1M2ckVtL3NSa0pSQmNKS21IQldMWEdIeWJTMU83VWVWR2ZycXVxWktUcU5F?=
 =?utf-8?B?cGpBbENlOUY2MlFQa3k5cURwU1lMRXJBUGdBM1ZZRXFId3BXY2JYQ21iUE96?=
 =?utf-8?B?bWxwemlJMWtwTFJnVjgwNDRMczJ3UmtPRUF4NnBsMlcrcG9paG84d2NjdHlm?=
 =?utf-8?B?SE80ZVZWOFZkSURNZ1VLNmdKS0tCWkEzdXAwMndqWmRrM2c3T01CVVF3ckw3?=
 =?utf-8?B?Z3cxTElJTlNnM0dYbXhJbUJLdk1kOG5NTnlScUFINXhTdkNoMURiYk9leVNE?=
 =?utf-8?B?S1laZlgyRjJ2amc4eW5wTFVCeUhmc0d6a291YnZwSmhHYVd3SWQ0T1h2SlRZ?=
 =?utf-8?B?UjNRVjR3bXJicm52VkhpaEgwUytyVTNqYVZPWnBiSnVPeXpXWXBGbjY5amJL?=
 =?utf-8?B?ako4cDRXVmRUZTJidkEyR0NVYUgzcERUNjVjbjRMMzZMK0dvSi9SSFc3VWdJ?=
 =?utf-8?B?WkNLUENsNExlbGFndWdvc1RPN2VMa2ZUbzJqUUh2eTk5VldqS1YvS3hVK2Zo?=
 =?utf-8?B?VWhIb3V0a3NnNktHMkwvL2luTTllREN2NldTcGlsQXErMVpoUkluakRaazBh?=
 =?utf-8?B?Ujg5ODJsM2JGSFdTU3djcWtxS1F5bXpxU2NsMkE3SzQ1VVY0YXJNUWdnSU5w?=
 =?utf-8?B?TFNyZTJkYndxcGw5RVNFV3FnN0VYV2Y3UmpMdTQ4WWo4Mmg4SkpTc0tlNHBM?=
 =?utf-8?B?TTE5NXhRWGo2TTBtdDNWeXJIN1ptN1J2SlJoWm1HTWN2RUVGamY5VDVaVkxs?=
 =?utf-8?B?N0VXV3UxZzhCMS9lRHpENCtJTnBNR3h1L1RqZHV3OTFVM2x6NHQyVHZtUUNP?=
 =?utf-8?B?dUZIbTRxbGQ4bEU2dTNZeGRHY01taDlJKy8rTm00YVZIcUVEYUcvVzhEaDV5?=
 =?utf-8?B?c21KQnNuNjBPSytIaGptVDdtT2lhQ0pQMUJub1dXby9jRkxPazhzQ3QzM3Er?=
 =?utf-8?B?d251RUxTeUI3WGFmVkhiY1JyckZaZmozdk4zN2JCTlpoWVArZlVUcXZ0N1Zr?=
 =?utf-8?B?ejlhTTFPWG1PWDM2Zms2bjdTNHNEVzBCZlExcDlPeFRRWFpXR3FnSFRsV0dR?=
 =?utf-8?B?TXlUUitIOWtlS080dTR1QXlIRVVQanVqTmZ0bDNzelRDQS9penVVMTROMmNQ?=
 =?utf-8?B?cysyeEtZbEU1eXprS1VIMUo0VTVwR1oxOHkyOFduaUxMc2kxVEhNNGpxRU5r?=
 =?utf-8?B?ZENWYTZZWUorT0dXeVJvNmtTYzR3YlBNQmh2N1F1YUJnNDNGb1FhWjJCSGcz?=
 =?utf-8?Q?jHS7kgv9Lv++BFglFxUq?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR12MB7334.namprd12.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?L1lyaUZkdXlpSG55N2s5L0JyV2hITDlzY2RPZWpBNlkrNGdlMHdzUTFEVnBp?=
 =?utf-8?B?YnRsaG96QThNRmZoTGhKQ2t2U2N6K2pVbC9aOWVnS1JJZm5NeHRnT1k2NTJL?=
 =?utf-8?B?U3E3bUM4Sk4xdW1iTGJPNHFhbkpLcXRJTjRVN3BRT2p0U1pIZ2VWK09HNkNR?=
 =?utf-8?B?TlBvMmYyT2U0azlCRWpNWGdsbEt0a3NwWHY0NHJQMWRNYTByN2NLRHBCay9D?=
 =?utf-8?B?aURDcTN0akhhaEZka0xFL3VHT0lKQVFrMFpzSDcvTkhUNUtsWTFKeGZFOFc5?=
 =?utf-8?B?ZFpGOVRGWWJINGpXb292cTRjelJqclczM2tMcEphaUZCMlFnVDBZQjAwRXVN?=
 =?utf-8?B?eElndGUvU1gxR05ldCszSXR0Y3BVb24rKzlTKzl0VkE5UGlhOExRQ1dEV0hZ?=
 =?utf-8?B?c1hNTFlPM2pYeXBWWEYxKy80QURXcmg0c2RxbEhId2t4bDM2RDNnMzdJZ0VE?=
 =?utf-8?B?ZVV3MkFKTWdlR1RpY0xDdFJ2NEh0QlkxNjMwTWg4bEpOZUIxQmxPSWt5MHI5?=
 =?utf-8?B?WHdzMXJyYkNmaFI0SEdRanZidmswMGNFYWFIMkY2UG9EZ0xiYVlSUnJuODNP?=
 =?utf-8?B?R0dEbm8vTVk3d0JlWDlCWENITlQvSk9xZ0FwSDdFUmRzN1FNckhkZ0EwdkFQ?=
 =?utf-8?B?Q2ZKQkVoQy9VdGtvd0ZKY2VGZmtsNWlYa0ltd1paUWFaZUFmNTMzaVQ0SVRR?=
 =?utf-8?B?T3lSTExQZ2R5b25lQitzaG1ZUXBYOVc5ZXZBbzlKVGtQR0huNVdJMUk5aWFk?=
 =?utf-8?B?dEE5MCtwMEpkRHFhUjg4eTYyTlhKOWxtS0ZyVzVXMUQrODk4TFo2L2ZqaFJv?=
 =?utf-8?B?WE1xbTlIL2pzRXUvUEcyV1d1UWhkTlBwVU92R0F3ZW9JcU8zTWtHL0ptVlM1?=
 =?utf-8?B?RThROVkvdTVtdmJ0WkM2cHpVOUVDZnpldG41WmcvUzAwQloxNHhUZysxVkIv?=
 =?utf-8?B?ejNwVE1Uc1VIaVlKNHJVRVdCUUNtdmtrRFRlTjMvaWdlaEtackgzdXFkeEJM?=
 =?utf-8?B?a3ZyWFAyeExWV3duNkVER3F6aDNCWDRiOWp1eGlSYTVxUnYrbE1zenlyTGRU?=
 =?utf-8?B?SlFaZ0xIdVJTcTFyR1BRdWpubVpZRTFZUFNPczRpSjVEajJWNklkbTFpQ0RD?=
 =?utf-8?B?Y0hYQU1BT001aVl0WHp2MmMrSlZtUVZodno0R09CYllLL2UxQnA5MmlvM3Jj?=
 =?utf-8?B?RUNFWk9QMVdVQUJRRDBRUEE1NzZmd3IvM244aXNRM1RSSW9KK1BtSk1VUU5u?=
 =?utf-8?B?N3ZNWWR6cmZGbjFoTVo3TE5jRXdobVFnTnRyZkQ4MDkrMmFSb3pjTVRlVFBp?=
 =?utf-8?B?cG1DbFFMOHZUa2xaRFhUd0djYkJXaFBSNytPaVBRdmdqNEVtb2FTNEFRM1BM?=
 =?utf-8?B?R1Y0UEFjaFRUWExSNnhwTjgvc054dTRqdWdKV0RWdDJmRFNKQy81MkhieXhZ?=
 =?utf-8?B?RzFTY0YrazhWRFR5a3cyQTJmR3ZtNnlaRm1aZlBjL0RlWFk1WXBmRG5DMHlH?=
 =?utf-8?B?WmwrVG1Xd2hNSEkzbVlLTmt2aWxVU0ZCRng4K0g4aXp6WmNRV1VPZG1mQkha?=
 =?utf-8?B?VlhzMDdhYzNXNGd5ZnRRVlplcE15N2VYaWgrTXk0b21iZVBMVjdJYUhsSndw?=
 =?utf-8?B?Y2prRTNTRkI1THJmY1VVS012M3cxczRQcUw2aFFUU0tYV0pyTDEzTVZQR1VG?=
 =?utf-8?B?MzNlR0cxblJoVkk3ekt1OHh6UmFGdzdmRVdGOVBEQk9XQlRHb0t5anFiS1pS?=
 =?utf-8?B?MmtwRjcyclh0Q2RwYThMeG11Wjl0OTNlVk5EbnBoNlVWLzRxcCtlSnppcE9l?=
 =?utf-8?B?N0JUdXp4UW50dTczRUxGdGllOWYzeW1MWmpBOWwxcVVVSHdIQkVWYVk3OFJr?=
 =?utf-8?B?NnhhYlh0M2drK01TZjRCeGw3T0xta2Z6b1VNQzYxL1plZWN4M0dXNjlYdm1M?=
 =?utf-8?B?bHloUS91Rk1WSnorMG4zSzYyY0NzZUN2ZHI3REl5ZEhNQnRrc095SXJBaDlF?=
 =?utf-8?B?amh0R0FzTnBGM0hPNkhaTlpoOXByclh5VHRobE0vSVNDd3crMGNNNDI0Rk5h?=
 =?utf-8?B?TXdlWVpFbmljbU45TUVSUHd0U3V5bm1JLy9UZjFtMmlTTVpXWW5oZDRuaEUz?=
 =?utf-8?Q?NRma/rj/rbDRvl9fePLGGuT5i?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d5e7fe3-c9c9-4eee-8e4a-08dd05a6c982
X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7334.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2024 18:53:26.3052
 (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: RJAV5ckvxm7E3n+fmvc8AtfGJr+MpQNgeY/2WdZiF9ZqjxzXTMvvl+KblNe+pqJsf5emmKAYvJFJeqZGOfvKIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7230


On 13/11/2024 09:31, Julien Grall wrote:
> Hi,
Hi Julien,
>
> On 18/10/2024 16:51, Ayan Kumar Halder wrote:
>> From: Michal Orzel <michal.orzel@amd.com>
>>
>> Add requirements for dom0less domain creation.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Â  .../arm64/dom0less_domain_config.rstÂ Â Â Â Â Â Â Â Â  | 267 ++++++++++++++++++
>> Â  docs/fusa/reqs/market-reqs/reqs.rstÂ Â Â Â Â Â Â Â Â Â  |Â  15 +
>> Â  docs/fusa/reqs/product-reqs/arm64/reqs.rstÂ Â Â  |Â  20 ++
>> Â  3 files changed, 302 insertions(+)
>> Â  create mode 100644 
>> docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst
>>
>> diff --git 
>> a/docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst 
>> b/docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst
>> new file mode 100644
>> index 0000000000..17b5f8962c
>> --- /dev/null
>> +++ b/docs/fusa/reqs/design-reqs/arm64/dom0less_domain_config.rst
>> @@ -0,0 +1,267 @@
>> +.. SPDX-License-Identifier: CC-BY-4.0
>> +
>> +Dom0less Domain configuration requirements
>> +==========================================
>> +
>> +The following are the requirements related to dom0less domain 
>> configuration for
>> +Arm64 domains.
>> +
>> +Specify Arm64 Linux kernel image
>> +----------------------------------
>> +
>> +`XenSwdgn~arm64_specify_kernel_linux_image~1`
>> +
>> +Description:
>> +Xen shall create a domain with a Arm64 Linux kernel image.
>
> A link to the specification would be useful when you are referring to 
> an external format.
>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify Arm64 Gzip Linux kernel image
>> +---------------------------------------
>> +
>> +`XenSwdgn~arm64_specify_kernel_gzip_image~1`
>> +
>> +Description:
>> +Xen shall create a domain with a Arm64 Gzip compressed Linux kernel 
>> image.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify kernel with uImage header
>> +---------------------------------
>> +
>> +`XenSwdgn~arm64_specify_kernel_uimage~1`
>> +
>> +Description:
>> +Xen shall create a domain with a kernel containing uImage header.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify Gzip kernel with uImage header
>> +--------------------------------------
>> +
>> +`XenSwdgn~arm64_specify_gzip_kernel_uimage~1`
>> +
>> +Description:
>> +Xen shall create a domain with a Gzip compressed kernel containing 
>> uImage
>> +header.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify passthrough device tree
>> +-------------------------------
>> +
>> +`XenSwdgn~arm64_specify_passthrough_dt~1`
>> +
>> +Description:
>> +Xen shall support direct assignment of devices to a domain.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify kernel command line arguments
>> +-------------------------------------
>> +
>> +`XenSwdgn~arm64_specify_kernel_cmd_line_args~1`
>> +
>> +Description:
>> +Xen shall pass kernel command line arguments to a domain.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify initial ramdisk
>> +-----------------------
>> +
>> +`XenSwdgn~arm64_specify_initial_ramdisk~1`
>> +
>> +Description:
>> +Xen shall provide initial ramdisk to a domain.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify amount of memory
>> +------------------------
>> +
>> +`XenSwdgn~arm64_specify_memory~1`
>> +
>> +Description:
>> +Xen shall create a domain with specified amount of memory.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Assign a single vCPU
>> +--------------------
>> +
>> +`XenSwdgn~arm64_assign_single_vcpu~1`
>> +
>> +Description:
>> +Xen shall assign a single vCPU to a domain.
>
> This wording is a bit ambiguous. You don't assign a vCPU to a domain. 
> You create a domain with "N vCPUs". It is also not clear why we are 
> making the distinction between one and ...
>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Assign multiple vCPUs
>> +---------------------
>> +
>> +`XenSwdgn~arm64_assign_multiple_vcpus~1`
>> +
>> +Description:
>> +Xen shall assign multiple vCPUs to a domain.
>
> ... multiple one. From Xen PoV there is no differences.
>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Assign vCPUs from CPU pool
>> +--------------------------
>> +
>> +`XenSwdgn~arm64_assign_vcpus_cpu_pool~1`
>> +
>> +Description:
>> +Xen shall assign vCPUs to a domain from a CPU pool.
>
> Same remark about the wording. You create a domain with N vCPUs and 
> *assign* a CPU pool to a domain. 

Ok, so all the previous 3 requirements can be merged into

Xen shall create a domain with N vCPUs and assign a CPU pool to a domain.

Or

Xen shall create a domain with N vCPUs.

(which of the two looks better to you if we keep the next requirement ?)

Comments:

Here N is determined by the device tree configuration provided by the user.

> You also assign pCPU to a CPU pool.
>
> But I am not sure about if this requirement is actually necessary 
> given ...
>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify CPU pool scheduler
>> +--------------------------
>> +
>> +`XenSwdgn~arm64_specify_cpu_pool_scheduler~1`
>> +
>> +Description:
>> +Xen shall assign a CPU pool scheduler to a domain.
>
> ... you have th is one.
So, we can keep it as it is.
>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Assign virtual UART
>> +-------------------
>> +
>> +`XenSwdgn~arm64_assign_virtual_uart~1`
>> +
>> +Description:
>> +Xen shall assign a virtual UART to a domain.
>
> Are we talking about the virtual PL011 or the fake emulation of the 
> real UART we do?
virtual PL011.
>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify number of SPIs
>> +----------------------
>> +
>> +`XenSwdgn~arm64_specify_num_spis~1`
>> +
>> +Description:
>> +Xen shall allocate a specified number of shared peripheral 
>> interrupts for a
>> +domain.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify grant table version for a domain
>> +----------------------------------------
>> +
>> +`XenSwdgn~arm64_specify_grant_table_version~1`
>> +
>> +Description:
>> +Xen shall create a domain with a specified version of grant table 
>> structure
>
> Realistically grant table v2 is not supported for Arm and I am not 
> convinced it makes any sense for x86 in embedded system. It is mainly 
> useful when you have a guest with a large amount of address space 
> (IIRC > 4TB).
We can put this detail in comments.
>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify number of grant table frames for a domain
>> +-------------------------------------------------
>> +
>> +`XenSwdgn~arm64_specify_num_grant_table_frames~1`
>> +
>> +Description:
>> +Xen shall create a domain with a specified number of grant table 
>> frames.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +Specify number of grant maptrack frames for a domain
>> +----------------------------------------------------
>> +
>> +`XenSwdgn~arm64_specify_num_grant_maptrack_frames~1`
>> +
>> +Description:
>> +Xen shall create a domain with a specified number of grant maptrack 
>> frames.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Covers:
>> + - `XenProd~static_domains_configuration~1`
>> +
>> +| [1] 
>> https://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/device-tree/booting.txt
>> +| [2] 
>> https://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/device-tree/cpupools.txt
>> diff --git a/docs/fusa/reqs/market-reqs/reqs.rst 
>> b/docs/fusa/reqs/market-reqs/reqs.rst
>> index f456788d96..ca020f9a33 100644
>> --- a/docs/fusa/reqs/market-reqs/reqs.rst
>> +++ b/docs/fusa/reqs/market-reqs/reqs.rst
>> @@ -47,3 +47,18 @@ Comments:
>> Â  Â  Needs:
>> Â Â  - XenProd
>> +
>> +Static VM definition
>> +--------------------
>> +
>> +`XenMkt~static_vm_definition~1`
>> +
>> +Description:
>> +Xen shall support specifying resources for a domain.
>
> Compare to the other requirements, this is quite a vague. Should we 
> list the resources?

The list of resources depends on what the user has provided in the 
device tree configuration.

But the requirement is correct as it is. Xen allows direct assignment of 
devices to domains (ie passthrough).

How do you want to write it ?

>
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Needs:
>> + - XenProd
>> \ No newline at end of file
>> diff --git a/docs/fusa/reqs/product-reqs/arm64/reqs.rst 
>> b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
>> index db91c47a02..0453dbb862 100644
>> --- a/docs/fusa/reqs/product-reqs/arm64/reqs.rst
>> +++ b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
>> @@ -40,3 +40,23 @@ Covers:
>> Â  Â  Needs:
>> Â Â  - XenSwdgn
>> +
>> +Configure static domains
>> +------------------------
>> +
>> +`XenProd~static_domains_configuration~1`
>> +
>> +Description:
>> +Xen shall support specifying the resources required for a domain.
>> +
>> +Rationale:
>> +
>> +Comments:
>> +
>> +Rationale:
>> +
>> +Covers:
>> + - `XenMkt~static_vm_definition~1`
>> +
>> +Needs:
>> + - XenSwdgn
>> \ No newline at end of file
>
> Missing a newline.
- Ayan


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838020.1254025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mJ-0000oE-N7; Fri, 15 Nov 2024 21:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838020.1254025; Fri, 15 Nov 2024 21: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 1tC3mJ-0000lY-9p; Fri, 15 Nov 2024 21:22:55 +0000
Received: by outflank-mailman (input) for mailman id 838020;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mH-0007DI-3P
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:53 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c40d2d07-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:49 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 3830420BEBD2;
 Fri, 15 Nov 2024 13:22: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: c40d2d07-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM0MGQyZDA3LWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzcwLjI5ODM0OSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3830420BEBD2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705764;
	bh=Dy1gfF2eVFD/Tcz72rvAOzLjHn7ysyv4CietmA0q798=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=noox43IaK9YbVWORCWHfqV/2MVwxKsfvDX3VjXOigGPsIAiMak5TX9WjxZ3URKdej
	 P/FLSpjwMlams/nnBrmsqiNRv/USEaAmRfdc7SPaE7Vpmg+hcqoc2z2b7doqNkw54W
	 wdFLT86eEn0mVPHIwhGf7+XKvkRHVCQ9LgbyTw5c=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:41 +0000
Subject: [PATCH 11/22] scsi: arcmsr: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-11-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/scsi/arcmsr/arcmsr_hba.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
index 35860c61468b02cdb59aa59376ad5ea9be60d12b..fd797e2785490839713f9242014f0adefccc6ddd 100644
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -1044,7 +1044,7 @@ static void arcmsr_init_get_devmap_timer(struct AdapterControlBlock *pacb)
 static void arcmsr_init_set_datetime_timer(struct AdapterControlBlock *pacb)
 {
 	timer_setup(&pacb->refresh_timer, arcmsr_set_iop_datetime, 0);
-	pacb->refresh_timer.expires = jiffies + msecs_to_jiffies(60 * 1000);
+	pacb->refresh_timer.expires = jiffies + secs_to_jiffies(60);
 	add_timer(&pacb->refresh_timer);
 }
 

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838025.1254053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mM-0001PV-FC; Fri, 15 Nov 2024 21:22:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838025.1254053; Fri, 15 Nov 2024 21: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 1tC3mL-0001Ly-R0; Fri, 15 Nov 2024 21:22:57 +0000
Received: by outflank-mailman (input) for mailman id 838025;
 Fri, 15 Nov 2024 21: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mJ-0007DI-4S
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:55 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c4d7eec9-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:51 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id A3C1720BEBD4;
 Fri, 15 Nov 2024 13:22: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: c4d7eec9-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM0ZDdlZWM5LWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzcxLjQ1ODcwNiwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A3C1720BEBD4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705764;
	bh=pCX0EpdqmyNkdZPLk4Z0q7m89NufhvHb1Y+2Mrmnnrk=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=b3Yj+H9ZO7cPCrzGt7MCUXvYWastksRinkPQTfKmYI5YUC6RTlLxuIDl1dZ9vx9cZ
	 n8z6j+Y7jAIeRkA5bNrxlUKB96Yq3j9HWe6QAwTeEGIBKLrl97e7xcYOgedDgu8E7m
	 FFC3fk0sFJpd64ZUMyFxpOhkKDs6flnQbO0zd4cg=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:43 +0000
Subject: [PATCH 13/22] xen/blkback: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-13-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/block/xen-blkback/blkback.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 838064593f62b75f3d937c0c041ea78dedbbaf84..a7c2b04ab943de9cbd69b596aad177a0534f7762 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -544,7 +544,7 @@ static void print_stats(struct xen_blkif_ring *ring)
 		 ring->st_rd_req, ring->st_wr_req,
 		 ring->st_f_req, ring->st_ds_req,
 		 ring->persistent_gnt_c, max_pgrants);
-	ring->st_print = jiffies + msecs_to_jiffies(10 * 1000);
+	ring->st_print = jiffies + secs_to_jiffies(10);
 	ring->st_rd_req = 0;
 	ring->st_wr_req = 0;
 	ring->st_oo_req = 0;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838019.1254011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mH-0000DZ-UI; Fri, 15 Nov 2024 21:22:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838019.1254011; Fri, 15 Nov 2024 21:22: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 1tC3mH-0000Bd-CB; Fri, 15 Nov 2024 21:22:53 +0000
Received: by outflank-mailman (input) for mailman id 838019;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mG-0007DI-34
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:52 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c353cabe-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:48 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id C16E420BEBD0;
 Fri, 15 Nov 2024 13: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: c353cabe-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMzNTNjYWJlLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzY5LjA3ODYxMSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C16E420BEBD0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705763;
	bh=z5d0KiQ+mxHfS/dtMsbc4ttBd/lyUqPHYPOKqCM1B/M=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=VBP5tE+91MUeXr01PKBwol/kwfSOvrGFcon5R6GLvth1r2SEL/vDLGmoM3VztkA/D
	 HDCC8H4UjO/VDL4my3JCQHRpPk1aNqcxHWoN43qx7hLXlHFWnlfQU1gMcNN2K2LO5S
	 3qBHgiY0qCMM5wc+rwKNzT/8mVMznrFpdjl06mtQ=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:39 +0000
Subject: [PATCH 09/22] drm/etnaviv: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-9-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c b/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
index 721d633aece9d4c81f0019e4c55884f26ee61c60..0f5a2c885d0ab7029c7248e15d6ea3c31823b782 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
@@ -100,7 +100,7 @@ int etnaviv_cmdbuf_init(struct etnaviv_cmdbuf_suballoc *suballoc,
 		mutex_unlock(&suballoc->lock);
 		ret = wait_event_interruptible_timeout(suballoc->free_event,
 						       suballoc->free_space,
-						       msecs_to_jiffies(10 * 1000));
+						       secs_to_jiffies(10));
 		if (!ret) {
 			dev_err(suballoc->dev,
 				"Timeout waiting for cmdbuf space\n");

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838016.1253990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mG-0008Gm-6V; Fri, 15 Nov 2024 21:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838016.1253990; Fri, 15 Nov 2024 21:22: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 1tC3mF-0008Fe-Vv; Fri, 15 Nov 2024 21:22:51 +0000
Received: by outflank-mailman (input) for mailman id 838016;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mE-0007DI-A2
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:50 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c2bd54f9-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:47 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 5C04E206BCEA;
 Fri, 15 Nov 2024 13: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: c2bd54f9-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMyYmQ1NGY5LWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzY4LjA5Mjk5Miwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5C04E206BCEA
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705763;
	bh=QYs6jKNkSqRMwxas8zTGS0f9EDen03tWxmE1GsbmPvQ=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=I95I66JgO1E7XQYaEm7ineOx+2MkduTJSN9e4D1cu0/NE7dcCwPndmzh7i/cNGesc
	 2yzIBCvlbGPZzvMpNA+k96a1ZOGXJ+A0bPOMF6Lmuw/xKRtew/BB44Qgm554Xu3M7K
	 XgYk3aN7aTdB7omQICy4E1708sGRqDk4h4Xf8u4c=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:37 +0000
Subject: [PATCH 07/22] accel/habanalabs: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-7-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/accel/habanalabs/common/device.c         | 2 +-
 drivers/accel/habanalabs/common/habanalabs_drv.c | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c
index e0cf3b4343bb081638430f2552ed27431b488ff9..30277ae410d4b742ffb7bddc35498564ff96fe62 100644
--- a/drivers/accel/habanalabs/common/device.c
+++ b/drivers/accel/habanalabs/common/device.c
@@ -817,7 +817,7 @@ static void device_hard_reset_pending(struct work_struct *work)
 		}
 
 		queue_delayed_work(hdev->reset_wq, &device_reset_work->reset_work,
-					msecs_to_jiffies(HL_PENDING_RESET_PER_SEC * 1000));
+					secs_to_jiffies(HL_PENDING_RESET_PER_SEC));
 	}
 }
 
diff --git a/drivers/accel/habanalabs/common/habanalabs_drv.c b/drivers/accel/habanalabs/common/habanalabs_drv.c
index 708dfd10f39c584a6221c29015f4b0323574145a..5ec13f3a46f915e75b04582b28d51ba8bb50be78 100644
--- a/drivers/accel/habanalabs/common/habanalabs_drv.c
+++ b/drivers/accel/habanalabs/common/habanalabs_drv.c
@@ -362,8 +362,7 @@ static void fixup_device_params_per_asic(struct hl_device *hdev, int timeout)
 		 * a different default timeout for Gaudi
 		 */
 		if (timeout == HL_DEFAULT_TIMEOUT_LOCKED)
-			hdev->timeout_jiffies = msecs_to_jiffies(GAUDI_DEFAULT_TIMEOUT_LOCKED *
-										MSEC_PER_SEC);
+			hdev->timeout_jiffies = secs_to_jiffies(GAUDI_DEFAULT_TIMEOUT_LOCKED);
 
 		hdev->reset_upon_device_release = 0;
 		break;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838015.1253985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mF-0008CX-S7; Fri, 15 Nov 2024 21:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838015.1253985; Fri, 15 Nov 2024 21: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 1tC3mF-0008BR-Lr; Fri, 15 Nov 2024 21:22:51 +0000
Received: by outflank-mailman (input) for mailman id 838015;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mE-0007DI-2k
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:50 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c2ba5d17-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:47 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 256D9206BCE9;
 Fri, 15 Nov 2024 13: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: c2ba5d17-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMyYmE1ZDE3LWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzY4LjA2MDk2Miwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 256D9206BCE9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705763;
	bh=cDb5q9ey4rgvzuTMFsMkjW3R4ZHiX3a+lRd3JDjV6+Q=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=imd3kVk/tJhJYNa/xeixDhpAwYPvx4IlSinPbk/21FlgSBXFMaFV4APntdnbxA1fq
	 WRyS0aWoUlD4yY9/jG3e/ehoXMMrIljBVBgBQNEO519W/APj0YYahRFp6DV4wrhONm
	 8XT+qK7qOCSuyxWBlS/5K7TjbCkS44CjtifGQlCE=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:36 +0000
Subject: [PATCH 06/22] mm: kmemleak: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-6-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 mm/kmemleak.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 0400f5e8ac60de555f43d85f1d36f67e48b4ebed..2c099d0819b1896390b842af76069a46bffabc23 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -1816,7 +1816,7 @@ static int kmemleak_scan_thread(void *arg)
 	 * Wait before the first scan to allow the system to fully initialize.
 	 */
 	if (first_run) {
-		signed long timeout = msecs_to_jiffies(SECS_FIRST_SCAN * 1000);
+		signed long timeout = secs_to_jiffies(SECS_FIRST_SCAN);
 		first_run = 0;
 		while (timeout && !kthread_should_stop())
 			timeout = schedule_timeout_interruptible(timeout);
@@ -2202,7 +2202,7 @@ void __init kmemleak_init(void)
 		return;
 
 	jiffies_min_age = msecs_to_jiffies(MSECS_MIN_AGE);
-	jiffies_scan_wait = msecs_to_jiffies(SECS_SCAN_WAIT * 1000);
+	jiffies_scan_wait = secs_to_jiffies(SECS_SCAN_WAIT);
 
 	object_cache = KMEM_CACHE(kmemleak_object, SLAB_NOLEAKTRACE);
 	scan_area_cache = KMEM_CACHE(kmemleak_scan_area, SLAB_NOLEAKTRACE);

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838017.1253996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mG-0008Po-MM; Fri, 15 Nov 2024 21:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838017.1253996; Fri, 15 Nov 2024 21:22: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 1tC3mG-0008MY-F2; Fri, 15 Nov 2024 21:22:52 +0000
Received: by outflank-mailman (input) for mailman id 838017;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mF-0007DI-2p
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:51 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c31abbac-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:48 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 8FF32206BCEB;
 Fri, 15 Nov 2024 13: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: c31abbac-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMzMWFiYmFjLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzY4LjcwODY2NSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 8FF32206BCEB
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705763;
	bh=GmA2v8FrQkDc3PawrRu1NLBJUu3qRf/naCkvRhlPz0Q=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=AQnLLRjERYrPiRXzVPhEVdOI2zLkiaTTtu0h8ex88Rh4yJJCvweeNDaisxPAM4okm
	 aUzZzyLz5s6fIGp2xPOyrtkNts2+H40xXXXdKkNXjhayIPxOfHe+ruxbTRrUqhXle2
	 46t8LcG0ioPljSxshglWdZxLMsfg/70LBRvzOJRk=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:38 +0000
Subject: [PATCH 08/22] drm/xe: Convert timeout to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-8-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/gpu/drm/xe/xe_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index a1987b554a8d2aa42b29301f2853edddfda7fda5..bb3338ef4191e76128611eeb9531c9d2089db85a 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -502,7 +502,7 @@ static int wait_for_lmem_ready(struct xe_device *xe)
 	drm_dbg(&xe->drm, "Waiting for lmem initialization\n");
 
 	start = jiffies;
-	timeout = start + msecs_to_jiffies(60 * 1000); /* 60 sec! */
+	timeout = start + secs_to_jiffies(60); /* 60 sec! */
 
 	do {
 		if (signal_pending(current))

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838012.1253951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mD-0007Ok-Pu; Fri, 15 Nov 2024 21:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838012.1253951; Fri, 15 Nov 2024 21:22: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 1tC3mD-0007MK-IS; Fri, 15 Nov 2024 21:22:49 +0000
Received: by outflank-mailman (input) for mailman id 838012;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mB-0007DO-VI
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:47 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c02c4c66-a397-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:22:43 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id C8F55206BCE1;
 Fri, 15 Nov 2024 13:22: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: c02c4c66-a397-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMwMmM0YzY2LWEzOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA1NzYzLjg2NDc1OCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C8F55206BCE1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705762;
	bh=NaKJY5KeJ2E1lFlJGT3YRi054w9/PadhToJsjl04lc4=;
	h=From:Subject:Date:To:Cc:From;
	b=qSckkTefY4nSDpMG6iW1ikvAvcu+Bro+zmtddjC9Ua2IIcocuRc7w5JVg1mXiL1Zv
	 gjq7MVSAX23TgeVecpPfH5/IBxuFBQ/uZHv6yLuKDmXda9ST9w35n4VJDzv6x+pplU
	 738dCnI1RTxo/K26kLo/E4BvWWcYM0/mvOAHIgpM=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Subject: [PATCH 00/22] Converge on using secs_to_jiffies()
Date: Fri, 15 Nov 2024 21:22:30 +0000
Message-Id: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIAJa7N2cC/y2NQQqDQAxFryJZN2AGKehVpIt2JtOmi5k2sSKId
 zdol+/Bf38FYxU2GJoVlGcxqcWBLg3E1708GSU5Q2hDR0QBYy0zq3vjaDhVfEvOXsDU94lauj4
 SEfj8o5xlOdLj7WTl788fpr/cth3E5bKGfwAAAA==
X-Change-ID: 20241112-converge-secs-to-jiffies-d99d1016bd11
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>, 
 Michael Kelley <mhklinux@outlook.com>, Thomas Gleixner <tglx@linutronix.de>, 
 Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
X-Mailer: b4 0.14.2

This is a series that follows up on my previous series to introduce
secs_to_jiffies() and convert a few initial users.[1] In the review for
that series, Anna-Maria requested converting other users with
Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
that use the multiply pattern of either of:
- msecs_to_jiffies(N*1000), or
- msecs_to_jiffies(N*MSEC_PER_SEC)

The entire conversion is made with Coccinelle in the script added in
patch 2. Some changes suggested by Coccinelle have been deferred to
later parts that will address other possible variant patterns.

CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>

[1] https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com/
[2] https://lore.kernel.org/all/8734kngfni.fsf@somnus/

---
Easwar Hariharan (22):
      netfilter: conntrack: Cleanup timeout definitions
      coccinelle: misc: Add secs_to_jiffies script
      arm: pxa: Convert timeouts to use secs_to_jiffies()
      s390: kernel: Convert timeouts to use secs_to_jiffies()
      powerpc/papr_scm: Convert timeouts to secs_to_jiffies()
      mm: kmemleak: Convert timeouts to secs_to_jiffies()
      accel/habanalabs: Convert timeouts to secs_to_jiffies()
      drm/xe: Convert timeout to secs_to_jiffies()
      drm/etnaviv: Convert timeouts to secs_to_jiffies()
      scsi: lpfc: Convert timeouts to secs_to_jiffies()
      scsi: arcmsr: Convert timeouts to secs_to_jiffies()
      scsi: pm8001: Convert timeouts to secs_to_jiffies()
      xen/blkback: Convert timeouts to secs_to_jiffies()
      gve: Convert timeouts to secs_to_jiffies()
      wifi: ath11k: Convert timeouts to secs_to_jiffies()
      Bluetooth: MGMT: Convert timeouts to secs_to_jiffies()
      staging: vc04_services: Convert timeouts to secs_to_jiffies()
      ceph: Convert timeouts to secs_to_jiffies()
      livepatch: Convert timeouts to secs_to_jiffies()
      ALSA: line6: Convert timeouts to secs_to_jiffies()
      nfp: Convert timeouts to secs_to_jiffies()
      jiffies: Define secs_to_jiffies()

 arch/arm/mach-pxa/sharpsl_pm.c                      |  6 +++---
 arch/powerpc/platforms/pseries/papr_scm.c           |  2 +-
 arch/s390/kernel/lgr.c                              |  3 ++-
 arch/s390/kernel/time.c                             |  4 ++--
 arch/s390/kernel/topology.c                         |  2 +-
 drivers/accel/habanalabs/common/device.c            |  2 +-
 drivers/accel/habanalabs/common/habanalabs_drv.c    |  3 +--
 drivers/block/xen-blkback/blkback.c                 |  2 +-
 drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c            |  2 +-
 drivers/gpu/drm/xe/xe_device.c                      |  2 +-
 drivers/net/ethernet/google/gve/gve_tx_dqo.c        |  6 ++----
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c |  2 +-
 drivers/net/wireless/ath/ath11k/debugfs.c           |  2 +-
 drivers/scsi/arcmsr/arcmsr_hba.c                    |  2 +-
 drivers/scsi/lpfc/lpfc_init.c                       | 18 +++++++++---------
 drivers/scsi/lpfc/lpfc_nportdisc.c                  |  8 ++++----
 drivers/scsi/lpfc/lpfc_nvme.c                       |  2 +-
 drivers/scsi/lpfc/lpfc_sli.c                        |  4 ++--
 drivers/scsi/lpfc/lpfc_vmid.c                       |  2 +-
 drivers/scsi/pm8001/pm8001_init.c                   |  2 +-
 .../vc04_services/bcm2835-audio/bcm2835-vchiq.c     |  2 +-
 fs/ceph/quota.c                                     |  2 +-
 include/linux/jiffies.h                             | 13 +++++++++++++
 mm/kmemleak.c                                       |  4 ++--
 net/bluetooth/hci_event.c                           |  2 --
 net/bluetooth/mgmt.c                                |  2 +-
 net/netfilter/nf_conntrack_proto_sctp.c             | 21 ++++++++-------------
 samples/livepatch/livepatch-callbacks-busymod.c     |  2 +-
 samples/livepatch/livepatch-shadow-fix1.c           |  2 +-
 samples/livepatch/livepatch-shadow-mod.c            | 10 +++++-----
 scripts/coccinelle/misc/secs_to_jiffies.cocci       | 21 +++++++++++++++++++++
 sound/usb/line6/toneport.c                          |  2 +-
 32 files changed, 92 insertions(+), 67 deletions(-)
---
base-commit: 2d5404caa8c7bb5c4e0435f94b28834ae5456623
change-id: 20241112-converge-secs-to-jiffies-d99d1016bd11

Best regards,
-- 
Easwar Hariharan <eahariha@linux.microsoft.com>



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838023.1254044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mL-0001Cs-IB; Fri, 15 Nov 2024 21:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838023.1254044; Fri, 15 Nov 2024 21: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 1tC3mL-0001AR-5Q; Fri, 15 Nov 2024 21:22:57 +0000
Received: by outflank-mailman (input) for mailman id 838023;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mI-0007DI-3h
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:54 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c4821d3a-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:50 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 6E2AB20BEBD3;
 Fri, 15 Nov 2024 13:22: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: c4821d3a-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM0ODIxZDNhLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzcwLjg4NzQ5NSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 6E2AB20BEBD3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705764;
	bh=KRAKVqkmYHFKsYpIbPFWmWMGYVvfzvIpOOiOmhExdwo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=Go0aUNLY+uBRc1gulf22NPnT4wn803j0Yofkqbh+DxXkzhV99tx8UWceKEAkUZyjD
	 tejuZgR0LF67pK/elmBAeNnO4NhzZ4R+VTUBXRegmJhIlArTFy4HXwc9kGMh3mQr02
	 7PyIpQ3LVnHfWOT4NY7AkEac4yki6LEIgx0W/av8=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:42 +0000
Subject: [PATCH 12/22] scsi: pm8001: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-12-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/scsi/pm8001/pm8001_init.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
index 33e1eba62ca12c2555419197ecdbebad817e4a6d..be88890716cc152b4687edf5e204d14bd177e188 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -734,7 +734,7 @@ static int pm8001_init_sas_add(struct pm8001_hba_info *pm8001_ha)
 		return -EIO;
 	}
 	time_remaining = wait_for_completion_timeout(&completion,
-				msecs_to_jiffies(60*1000)); // 1 min
+				secs_to_jiffies(60)); // 1 min
 	if (!time_remaining) {
 		kfree(payload.func_specific);
 		pm8001_dbg(pm8001_ha, FAIL, "get_nvmd_req timeout\n");

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838014.1253978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mF-00086P-G3; Fri, 15 Nov 2024 21:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838014.1253978; Fri, 15 Nov 2024 21: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 1tC3mF-00085c-BM; Fri, 15 Nov 2024 21:22:51 +0000
Received: by outflank-mailman (input) for mailman id 838014;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mD-0007DO-LI
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:49 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c19b4253-a397-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:22:45 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id ADD5A206BCE7;
 Fri, 15 Nov 2024 13:22: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: c19b4253-a397-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMxOWI0MjUzLWEzOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA1NzY2LjIxNTk4LCJzZW5kZXIiOiJlYWhhcmloYUBsaW51eC5taWNyb3NvZnQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com ADD5A206BCE7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705762;
	bh=2qNmVTIUPIQHjxG6U+oz3oOJorUpDTvltiEua1kgDGM=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=jwtdE59vuxdQNE0RiS/g1dZX+uqTWG/w9IblshEquJbSzhtkY3Zk6fbDpk+PaYqJ3
	 QDyNOhOWd9ZJoQqLoj3N42Lk4lBijUYlMVpBY8G/XYg13FKv7CiQTz5tjAvkJe5Ryj
	 q0FRAVEgJKXl2OZRO71N5d2wqJQesfADXbZgbw84=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:34 +0000
Subject: [PATCH 04/22] s390: kernel: Convert timeouts to use
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-4-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 arch/s390/kernel/lgr.c      | 3 ++-
 arch/s390/kernel/time.c     | 4 ++--
 arch/s390/kernel/topology.c | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/s390/kernel/lgr.c b/arch/s390/kernel/lgr.c
index 6652e54cf3db9fbdd8cfb06f8a0dc1d4c05ae7d7..68021cb38574b122bbe3d9f70e9168305360017b 100644
--- a/arch/s390/kernel/lgr.c
+++ b/arch/s390/kernel/lgr.c
@@ -166,7 +166,8 @@ static struct timer_list lgr_timer;
  */
 static void lgr_timer_set(void)
 {
-	mod_timer(&lgr_timer, jiffies + msecs_to_jiffies(LGR_TIMER_INTERVAL_SECS * MSEC_PER_SEC));
+	mod_timer(&lgr_timer,
+		  jiffies + secs_to_jiffies(LGR_TIMER_INTERVAL_SECS));
 }
 
 /*
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index b713effe057967623f64da8297314fcc42ff1af2..e28c61d39d27c6e89f490e779ff674ba2fe21d3e 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -656,12 +656,12 @@ static void stp_check_leap(void)
 		if (ret < 0)
 			pr_err("failed to set leap second flags\n");
 		/* arm Timer to clear leap second flags */
-		mod_timer(&stp_timer, jiffies + msecs_to_jiffies(14400 * MSEC_PER_SEC));
+		mod_timer(&stp_timer, jiffies + secs_to_jiffies(14400));
 	} else {
 		/* The day the leap second is scheduled for hasn't been reached. Retry
 		 * in one hour.
 		 */
-		mod_timer(&stp_timer, jiffies + msecs_to_jiffies(3600 * MSEC_PER_SEC));
+		mod_timer(&stp_timer, jiffies + secs_to_jiffies(3600));
 	}
 }
 
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c
index 813e5da9a9737e05ec3ef85a495fe38cbb40c49b..99095ff3897c1b5337f7e2abcf10f3fe8219ad7c 100644
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@ -370,7 +370,7 @@ static void set_topology_timer(void)
 	if (atomic_add_unless(&topology_poll, -1, 0))
 		mod_timer(&topology_timer, jiffies + msecs_to_jiffies(100));
 	else
-		mod_timer(&topology_timer, jiffies + msecs_to_jiffies(60 * MSEC_PER_SEC));
+		mod_timer(&topology_timer, jiffies + secs_to_jiffies(60));
 }
 
 void topology_expect_change(void)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838021.1254036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mK-0000xw-S0; Fri, 15 Nov 2024 21:22:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838021.1254036; Fri, 15 Nov 2024 21: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 1tC3mK-0000v3-2K; Fri, 15 Nov 2024 21:22:56 +0000
Received: by outflank-mailman (input) for mailman id 838021;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mH-0007DO-76
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:53 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c3c4b78f-a397-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:22:49 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 0429F20BEBD1;
 Fri, 15 Nov 2024 13:22: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: c3c4b78f-a397-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMzYzRiNzhmLWEzOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA1NzY5LjgzMDMwNSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0429F20BEBD1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705764;
	bh=61FzWbZx8SVE6r33ggD3SgPEq3e2wgbU4/WDXmU67Oo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=DOmpiPqEYKf9HYvH4vBNIcVvfzhSlsEJngIViJ/nyGqO2XrYUeSBMlaznaVp1W2cu
	 ZUg4grO0SjULjCP+Mukp5XmgB/9DjGqaSbQQ7rTaKzOeVo8jg5BmmuuAlRim9GVths
	 B2tZiF5YDxbFOhKnRrq5+IHUzQ7bgR5YW5x81bkg=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:40 +0000
Subject: [PATCH 10/22] scsi: lpfc: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-10-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/scsi/lpfc/lpfc_init.c      | 18 +++++++++---------
 drivers/scsi/lpfc/lpfc_nportdisc.c |  8 ++++----
 drivers/scsi/lpfc/lpfc_nvme.c      |  2 +-
 drivers/scsi/lpfc/lpfc_sli.c       |  4 ++--
 drivers/scsi/lpfc/lpfc_vmid.c      |  2 +-
 5 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 0dd451009b07914450dc70f2c981b690557c1d8c..12666c4c7986ae0bdfaa5c8f040b4ea0be64550d 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -598,7 +598,7 @@ lpfc_config_port_post(struct lpfc_hba *phba)
 		  jiffies + msecs_to_jiffies(1000 * timeout));
 	/* Set up heart beat (HB) timer */
 	mod_timer(&phba->hb_tmofunc,
-		  jiffies + msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL));
+		  jiffies + secs_to_jiffies(LPFC_HB_MBOX_INTERVAL));
 	clear_bit(HBA_HBEAT_INP, &phba->hba_flag);
 	clear_bit(HBA_HBEAT_TMO, &phba->hba_flag);
 	phba->last_completion_time = jiffies;
@@ -1267,7 +1267,7 @@ lpfc_hb_mbox_cmpl(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq)
 	    !test_bit(FC_UNLOADING, &phba->pport->load_flag))
 		mod_timer(&phba->hb_tmofunc,
 			  jiffies +
-			  msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL));
+			  secs_to_jiffies(LPFC_HB_MBOX_INTERVAL));
 	return;
 }
 
@@ -1555,7 +1555,7 @@ lpfc_hb_timeout_handler(struct lpfc_hba *phba)
 		/* If IOs are completing, no need to issue a MBX_HEARTBEAT */
 		spin_lock_irq(&phba->pport->work_port_lock);
 		if (time_after(phba->last_completion_time +
-				msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL),
+				secs_to_jiffies(LPFC_HB_MBOX_INTERVAL),
 				jiffies)) {
 			spin_unlock_irq(&phba->pport->work_port_lock);
 			if (test_bit(HBA_HBEAT_INP, &phba->hba_flag))
@@ -3352,7 +3352,7 @@ lpfc_block_mgmt_io(struct lpfc_hba *phba, int mbx_action)
 	spin_unlock_irqrestore(&phba->hbalock, iflag);
 	if (mbx_action == LPFC_MBX_NO_WAIT)
 		return;
-	timeout = msecs_to_jiffies(LPFC_MBOX_TMO * 1000) + jiffies;
+	timeout = secs_to_jiffies(LPFC_MBOX_TMO) + jiffies;
 	spin_lock_irqsave(&phba->hbalock, iflag);
 	if (phba->sli.mbox_active) {
 		actcmd = phba->sli.mbox_active->u.mb.mbxCommand;
@@ -4939,14 +4939,14 @@ int lpfc_scan_finished(struct Scsi_Host *shost, unsigned long time)
 		stat = 1;
 		goto finished;
 	}
-	if (time >= msecs_to_jiffies(30 * 1000)) {
+	if (time >= secs_to_jiffies(30)) {
 		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
 				"0461 Scanning longer than 30 "
 				"seconds.  Continuing initialization\n");
 		stat = 1;
 		goto finished;
 	}
-	if (time >= msecs_to_jiffies(15 * 1000) &&
+	if (time >= secs_to_jiffies(15) &&
 	    phba->link_state <= LPFC_LINK_DOWN) {
 		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
 				"0465 Link down longer than 15 "
@@ -4960,7 +4960,7 @@ int lpfc_scan_finished(struct Scsi_Host *shost, unsigned long time)
 	if (vport->num_disc_nodes || vport->fc_prli_sent)
 		goto finished;
 	if (!atomic_read(&vport->fc_map_cnt) &&
-	    time < msecs_to_jiffies(2 * 1000))
+	    time < secs_to_jiffies(2))
 		goto finished;
 	if ((phba->sli.sli_flag & LPFC_SLI_MBOX_ACTIVE) != 0)
 		goto finished;
@@ -5194,8 +5194,8 @@ lpfc_vmid_poll(struct timer_list *t)
 		lpfc_worker_wake_up(phba);
 
 	/* restart the timer for the next iteration */
-	mod_timer(&phba->inactive_vmid_poll, jiffies + msecs_to_jiffies(1000 *
-							LPFC_VMID_TIMER));
+	mod_timer(&phba->inactive_vmid_poll,
+		  jiffies + secs_to_jiffies(LPFC_VMID_TIMER));
 }
 
 /**
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index 4574716c8764fba6d6db103f1f287b7cdb87cebc..4185717f35defbde483b4ff9b1d71c9c3d86a07d 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -914,7 +914,7 @@ lpfc_rcv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 		    (ndlp->nlp_state >= NLP_STE_ADISC_ISSUE ||
 		     ndlp->nlp_state <= NLP_STE_PRLI_ISSUE)) {
 			mod_timer(&ndlp->nlp_delayfunc,
-				  jiffies + msecs_to_jiffies(1000 * 1));
+				  jiffies + secs_to_jiffies(1));
 			spin_lock_irq(&ndlp->lock);
 			ndlp->nlp_flag |= NLP_DELAY_TMO;
 			spin_unlock_irq(&ndlp->lock);
@@ -1355,7 +1355,7 @@ lpfc_rcv_els_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 	}
 
 	/* Put ndlp in npr state set plogi timer for 1 sec */
-	mod_timer(&ndlp->nlp_delayfunc, jiffies + msecs_to_jiffies(1000 * 1));
+	mod_timer(&ndlp->nlp_delayfunc, jiffies + secs_to_jiffies(1));
 	spin_lock_irq(&ndlp->lock);
 	ndlp->nlp_flag |= NLP_DELAY_TMO;
 	spin_unlock_irq(&ndlp->lock);
@@ -1975,7 +1975,7 @@ lpfc_cmpl_reglogin_reglogin_issue(struct lpfc_vport *vport,
 
 		/* Put ndlp in npr state set plogi timer for 1 sec */
 		mod_timer(&ndlp->nlp_delayfunc,
-			  jiffies + msecs_to_jiffies(1000 * 1));
+			  jiffies + secs_to_jiffies(1));
 		spin_lock_irq(&ndlp->lock);
 		ndlp->nlp_flag |= NLP_DELAY_TMO;
 		spin_unlock_irq(&ndlp->lock);
@@ -2798,7 +2798,7 @@ lpfc_rcv_prlo_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 
 	if ((ndlp->nlp_flag & NLP_DELAY_TMO) == 0) {
 		mod_timer(&ndlp->nlp_delayfunc,
-			  jiffies + msecs_to_jiffies(1000 * 1));
+			  jiffies + secs_to_jiffies(1));
 		spin_lock_irq(&ndlp->lock);
 		ndlp->nlp_flag |= NLP_DELAY_TMO;
 		ndlp->nlp_flag &= ~NLP_NPR_ADISC;
diff --git a/drivers/scsi/lpfc/lpfc_nvme.c b/drivers/scsi/lpfc/lpfc_nvme.c
index fec23c7237304b471e58194726ff7932b0010385..64d7060e0d4cb628c74c0fa22ece2b956155c1ba 100644
--- a/drivers/scsi/lpfc/lpfc_nvme.c
+++ b/drivers/scsi/lpfc/lpfc_nvme.c
@@ -2236,7 +2236,7 @@ lpfc_nvme_lport_unreg_wait(struct lpfc_vport *vport,
 	 * wait. Print a message if a 10 second wait expires and renew the
 	 * wait. This is unexpected.
 	 */
-	wait_tmo = msecs_to_jiffies(LPFC_NVME_WAIT_TMO * 1000);
+	wait_tmo = secs_to_jiffies(LPFC_NVME_WAIT_TMO);
 	while (true) {
 		ret = wait_for_completion_timeout(lport_unreg_cmp, wait_tmo);
 		if (unlikely(!ret)) {
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 2ec6e55771b45ab70320a9ad1934d5ead2371d4c..b6f19c123e25a00c0eb4444476a7194d6b045824 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -9024,7 +9024,7 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba)
 
 	/* Start heart beat timer */
 	mod_timer(&phba->hb_tmofunc,
-		  jiffies + msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL));
+		  jiffies + secs_to_jiffies(LPFC_HB_MBOX_INTERVAL));
 	clear_bit(HBA_HBEAT_INP, &phba->hba_flag);
 	clear_bit(HBA_HBEAT_TMO, &phba->hba_flag);
 	phba->last_completion_time = jiffies;
@@ -13335,7 +13335,7 @@ lpfc_sli_mbox_sys_shutdown(struct lpfc_hba *phba, int mbx_action)
 		lpfc_sli_mbox_sys_flush(phba);
 		return;
 	}
-	timeout = msecs_to_jiffies(LPFC_MBOX_TMO * 1000) + jiffies;
+	timeout = secs_to_jiffies(LPFC_MBOX_TMO) + jiffies;
 
 	/* Disable softirqs, including timers from obtaining phba->hbalock */
 	local_bh_disable();
diff --git a/drivers/scsi/lpfc/lpfc_vmid.c b/drivers/scsi/lpfc/lpfc_vmid.c
index cc3e4736f2fe29e1fd4afe221c9c7c40ecf382d4..14dbfe954e423acc47d1b1c80160ff193783f500 100644
--- a/drivers/scsi/lpfc/lpfc_vmid.c
+++ b/drivers/scsi/lpfc/lpfc_vmid.c
@@ -278,7 +278,7 @@ int lpfc_vmid_get_appid(struct lpfc_vport *vport, char *uuid,
 		if (!(vport->phba->pport->vmid_flag & LPFC_VMID_TIMER_ENBLD)) {
 			mod_timer(&vport->phba->inactive_vmid_poll,
 				  jiffies +
-				  msecs_to_jiffies(1000 * LPFC_VMID_TIMER));
+				  secs_to_jiffies(LPFC_VMID_TIMER));
 			vport->phba->pport->vmid_flag |= LPFC_VMID_TIMER_ENBLD;
 		}
 	}

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838018.1254004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mH-00005R-9P; Fri, 15 Nov 2024 21:22:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838018.1254004; Fri, 15 Nov 2024 21:22: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 1tC3mG-0008UL-Qh; Fri, 15 Nov 2024 21:22:52 +0000
Received: by outflank-mailman (input) for mailman id 838018;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mF-0007DO-8a
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:51 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c2c30c00-a397-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:22:47 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id E451D206BCE8;
 Fri, 15 Nov 2024 13:22: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: c2c30c00-a397-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMyYzMwYzAwLWEzOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA1NzY4LjE1MDg1Nywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E451D206BCE8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705763;
	bh=uwqJCSe3GXdPjGHghPvDBfnEwZdT0uYA3z4HTDFu1hA=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=RVx2emb342NEz2mst6RfMUiki8VYrjbKedjHqPNNNkb4BXhLdZgldqHGBRr6S5V4l
	 ot1jj3ag+tv5arCezMBNlcZVolqJ/kVXCKfLQi6UufSSi9gPBN5Z2YR5EAMTqKRljK
	 uRWcAwELTERtWaAvz5gx5fAH4KPOOU/VcBtZ4kx8=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:35 +0000
Subject: [PATCH 05/22] powerpc/papr_scm: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-5-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 arch/powerpc/platforms/pseries/papr_scm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
index 9e297f88adc5d97d4dc7b267b0bfebd58e5cf193..9e8086ec66e0f0e555ac27933854c06cfcf91a04 100644
--- a/arch/powerpc/platforms/pseries/papr_scm.c
+++ b/arch/powerpc/platforms/pseries/papr_scm.c
@@ -543,7 +543,7 @@ static int drc_pmem_query_health(struct papr_scm_priv *p)
 
 	/* Jiffies offset for which the health data is assumed to be same */
 	cache_timeout = p->lasthealth_jiffies +
-		msecs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL * 1000);
+		secs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL);
 
 	/* Fetch new health info is its older than MIN_HEALTH_QUERY_INTERVAL */
 	if (time_after(jiffies, cache_timeout))

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838013.1253958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mE-0007YN-72; Fri, 15 Nov 2024 21:22:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838013.1253958; Fri, 15 Nov 2024 21:22: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 1tC3mE-0007Wi-0r; Fri, 15 Nov 2024 21:22:50 +0000
Received: by outflank-mailman (input) for mailman id 838013;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mC-0007DO-LA
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:48 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c1122312-a397-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:22:44 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 7A864206BCE6;
 Fri, 15 Nov 2024 13:22: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: c1122312-a397-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMxMTIyMzEyLWEzOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA1NzY1LjMxNjY0Miwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 7A864206BCE6
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705762;
	bh=3U0Zq8t5krsiKxal+ZZuXq1UdnH4Ui7697JSzYEOhjI=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=m+WMW1w9+VciYFFrFZA0mxoPGvOfjrhYGrAVRbiO/Z38FXEyCYrwD61KeWUrbI1co
	 ciJpLEmJVGwRKy8PLvAHCagPIhXXgMkeOPvwDiMFvy84ueU3pKKi0uGJZ6fL3Jn5Hz
	 Ra5qi3c9a5aFZzpjfWBaC+oXk3VwB4O9Td0lHhlo=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:33 +0000
Subject: [PATCH 03/22] arm: pxa: Convert timeouts to use secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-3-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 arch/arm/mach-pxa/sharpsl_pm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index 72fa2e3fd35318e5a63c121ed7990a56a56b134c..bbbd06bc79bbb94fb258562e5a382acaf3c277b3 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -31,9 +31,9 @@
 /*
  * Constants
  */
-#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (msecs_to_jiffies(1*60*1000))  /* 1 min */
-#define SHARPSL_CHARGE_FINISH_TIME             (msecs_to_jiffies(10*60*1000)) /* 10 min */
-#define SHARPSL_BATCHK_TIME                    (msecs_to_jiffies(15*1000))    /* 15 sec */
+#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (secs_to_jiffies(60))  /* 1 min */
+#define SHARPSL_CHARGE_FINISH_TIME             (secs_to_jiffies(10*60)) /* 10 min */
+#define SHARPSL_BATCHK_TIME                    (secs_to_jiffies(15))    /* 15 sec */
 #define SHARPSL_BATCHK_TIME_SUSPEND            (60*10)                        /* 10 min */
 
 #define SHARPSL_WAIT_CO_TIME                   15  /* 15 sec */

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838010.1253939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mD-0007Dl-59; Fri, 15 Nov 2024 21:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838010.1253939; Fri, 15 Nov 2024 21:22: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 1tC3mD-0007De-2Y; Fri, 15 Nov 2024 21:22:49 +0000
Received: by outflank-mailman (input) for mailman id 838010;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mB-0007DI-9E
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:47 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c095291f-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:44 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 49A20206BCE5;
 Fri, 15 Nov 2024 13:22: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: c095291f-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMwOTUyOTFmLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzY0LjQ3NTg0NCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 49A20206BCE5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705762;
	bh=mjGmNlPTDeXtBIVnBruZVxnncRcSbkg/ti9M5w2fu78=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=Oh5o3W+QiJRTTPFI9dpb9A1AWSAOLDDOB8sqUPea54Qx6kUKHNmkqaArwACWjQxKB
	 D55Uc4+WAewzxsbEk8laNjMjSMPfVawB+Zi45VRw0skgegejDy9IgBYr/0jKgvvqvH
	 DeGMefeFQkwrmneQNUkhORZAjpQMci1rsg92zUBA=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:32 +0000
Subject: [PATCH 02/22] coccinelle: misc: Add secs_to_jiffies script
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-2-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Suggested-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 scripts/coccinelle/misc/secs_to_jiffies.cocci | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/scripts/coccinelle/misc/secs_to_jiffies.cocci b/scripts/coccinelle/misc/secs_to_jiffies.cocci
new file mode 100644
index 0000000000000000000000000000000000000000..af762b1c0aac8f044f21150bfaafd9efc834ee87
--- /dev/null
+++ b/scripts/coccinelle/misc/secs_to_jiffies.cocci
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-only
+///
+/// Find usages of:
+/// - msecs_to_jiffies(value*1000)
+/// - msecs_to_jiffies(value*MSEC_PER_SEC)
+///
+// Confidence: High
+// Copyright: (C) 2024 Easwar Hariharan Microsoft
+//
+// Keywords: secs, seconds, jiffies
+//
+
+@@ constant C; @@
+
+- msecs_to_jiffies(C * 1000)
++ secs_to_jiffies(C)
+
+@@ constant C; @@
+
+- msecs_to_jiffies(C * MSEC_PER_SEC)
++ secs_to_jiffies(C)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:22:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:22:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838011.1253945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mD-0007G6-FX; Fri, 15 Nov 2024 21:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838011.1253945; Fri, 15 Nov 2024 21:22: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 1tC3mD-0007Fe-9Y; Fri, 15 Nov 2024 21:22:49 +0000
Received: by outflank-mailman (input) for mailman id 838011;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mB-0007DI-Uc
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:47 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c0564bf1-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:43 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 1682D206BCE4;
 Fri, 15 Nov 2024 13:22: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: c0564bf1-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMwNTY0YmYxLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzY0LjIwNzQwOSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1682D206BCE4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705762;
	bh=Q64Lap8gGilYnZS8wBYuXVtg6CkDWFgIDR5hpRb/qKY=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=TpPSBC6Q0pyCMIPKcOfsvZX/wWIHu4+ejmKY8xw+0GecDvIAUfgwshz01AoOkZ0WD
	 k4gHIei/egZSo7W0NlMAlHYHatQ5bzRsbZtX1NOQvIcE9aFKMDcUHtqmglM484AIGB
	 /3Fdhfw7EN1qT/zCvUp8095p9P9VmicZ+TZgDM0I=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:31 +0000
Subject: [PATCH 01/22] netfilter: conntrack: Cleanup timeout definitions
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-1-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

None of the higher order definitions are used anymore, so remove
definitions for minutes, hours, and days timeouts. Convert the seconds
denominated timeouts to secs_to_jiffies()

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 net/netfilter/nf_conntrack_proto_sctp.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
index 4cc97f971264ed779434ab4597dd0162586b3736..6c95ac96fa42a39acafb5b88a7cf8898010e911c 100644
--- a/net/netfilter/nf_conntrack_proto_sctp.c
+++ b/net/netfilter/nf_conntrack_proto_sctp.c
@@ -39,20 +39,15 @@ static const char *const sctp_conntrack_names[] = {
 	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= "HEARTBEAT_SENT",
 };
 
-#define SECS  * HZ
-#define MINS  * 60 SECS
-#define HOURS * 60 MINS
-#define DAYS  * 24 HOURS
-
 static const unsigned int sctp_timeouts[SCTP_CONNTRACK_MAX] = {
-	[SCTP_CONNTRACK_CLOSED]			= 10 SECS,
-	[SCTP_CONNTRACK_COOKIE_WAIT]		= 3 SECS,
-	[SCTP_CONNTRACK_COOKIE_ECHOED]		= 3 SECS,
-	[SCTP_CONNTRACK_ESTABLISHED]		= 210 SECS,
-	[SCTP_CONNTRACK_SHUTDOWN_SENT]		= 3 SECS,
-	[SCTP_CONNTRACK_SHUTDOWN_RECD]		= 3 SECS,
-	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	= 3 SECS,
-	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= 30 SECS,
+	[SCTP_CONNTRACK_CLOSED]			= secs_to_jiffies(10),
+	[SCTP_CONNTRACK_COOKIE_WAIT]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_COOKIE_ECHOED]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_ESTABLISHED]		= secs_to_jiffies(210),
+	[SCTP_CONNTRACK_SHUTDOWN_SENT]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_SHUTDOWN_RECD]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= secs_to_jiffies(3),
 };
 
 #define	SCTP_FLAG_HEARTBEAT_VTAG_FAILED	1

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:23:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:23:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838026.1254060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mO-0001ng-1W; Fri, 15 Nov 2024 21:23:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838026.1254060; Fri, 15 Nov 2024 21: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 1tC3mN-0001jL-7b; Fri, 15 Nov 2024 21:22:59 +0000
Received: by outflank-mailman (input) for mailman id 838026;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mK-0007DI-3y
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:56 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c548b596-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:51 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id DA1F220BEBD5;
 Fri, 15 Nov 2024 13:22: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: c548b596-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM1NDhiNTk2LWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzcyLjIwMDE5Niwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com DA1F220BEBD5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705765;
	bh=YTcGWD0h0ZDgyuZTU2DPl12ZGyATdibDkhzA92Hlf6s=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=DBa8qjnf5MNMswOkSvV0JQ0FZ5Ed99ngIFRkSTMDnQu36t8YmBRJOYBHSU3QDj3se
	 Fc7TuS2jcyT4LTDRPo4wVBYTyNbI1RA/bW4apXI30r4Q7ECcxM6eooQMWk2K6CFIVq
	 CFABxdq7HpjQyK3+DUwbjslOaeOI5LwZ/vHYLMt0=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:44 +0000
Subject: [PATCH 14/22] gve: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-14-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/net/ethernet/google/gve/gve_tx_dqo.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/google/gve/gve_tx_dqo.c b/drivers/net/ethernet/google/gve/gve_tx_dqo.c
index f879426cb5523a7e150f363b5e57b9d472b5817c..394debc62268aadf2579f9b516e045cb48287e7c 100644
--- a/drivers/net/ethernet/google/gve/gve_tx_dqo.c
+++ b/drivers/net/ethernet/google/gve/gve_tx_dqo.c
@@ -1146,8 +1146,7 @@ static void gve_handle_miss_completion(struct gve_priv *priv,
 	/* jiffies can wraparound but time comparisons can handle overflows. */
 	pending_packet->timeout_jiffies =
 			jiffies +
-			msecs_to_jiffies(GVE_REINJECT_COMPL_TIMEOUT *
-					 MSEC_PER_SEC);
+			secs_to_jiffies(GVE_REINJECT_COMPL_TIMEOUT);
 	add_to_list(tx, &tx->dqo_compl.miss_completions, pending_packet);
 
 	*bytes += pending_packet->skb->len;
@@ -1191,8 +1190,7 @@ static void remove_miss_completions(struct gve_priv *priv,
 		pending_packet->state = GVE_PACKET_STATE_TIMED_OUT_COMPL;
 		pending_packet->timeout_jiffies =
 				jiffies +
-				msecs_to_jiffies(GVE_DEALLOCATE_COMPL_TIMEOUT *
-						 MSEC_PER_SEC);
+				secs_to_jiffies(GVE_DEALLOCATE_COMPL_TIMEOUT);
 		/* Maintain pending packet in another list so the packet can be
 		 * unallocated at a later time.
 		 */

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:23:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838027.1254072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3mP-00021H-HW; Fri, 15 Nov 2024 21:23:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838027.1254072; Fri, 15 Nov 2024 21: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 1tC3mO-0001wc-FC; Fri, 15 Nov 2024 21:23:00 +0000
Received: by outflank-mailman (input) for mailman id 838027;
 Fri, 15 Nov 2024 21:22: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mK-0007DO-88
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:56 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c5e47f1c-a397-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:22:52 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 4F33820BEBD7;
 Fri, 15 Nov 2024 13:22: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: c5e47f1c-a397-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM1ZTQ3ZjFjLWEzOTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA1NzczLjI0MjA4Nywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 4F33820BEBD7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705765;
	bh=DTjXQ8JEnxKHPkRfiey8gv8xkSCkh1L+oMakOx6bumQ=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=PrkdMSJsCXq7e/LVXAIqADh6VOx2LSK3q8Voqjd439eNhh8b6N4u5aB1nfKzAe2Tm
	 +kT+vzsuhI8O0/+YRjBVlaEQ5kmFrot1X5DGJclM8+YlYZkjA4xQVjB3ZX/xX3Lrsj
	 FbrAa2GDIV5JdurdApM8LMcIFqaWmUwvCMzOiXGc=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:46 +0000
Subject: [PATCH 16/22] Bluetooth: MGMT: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-16-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 net/bluetooth/mgmt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index a429661b676a83ec2d34ed7e228195f39a153f9f..ca89c26d04ec64869e6b99de099d343f4c548ce5 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -209,7 +209,7 @@ static const u16 mgmt_untrusted_events[] = {
 	MGMT_EV_EXP_FEATURE_CHANGED,
 };
 
-#define CACHE_TIMEOUT	msecs_to_jiffies(2 * 1000)
+#define CACHE_TIMEOUT	secs_to_jiffies(2)
 
 #define ZERO_KEY "\x00\x00\x00\x00\x00\x00\x00\x00" \
 		 "\x00\x00\x00\x00\x00\x00\x00\x00"

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:26:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:26:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838086.1254099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3q1-0007PJ-T1; Fri, 15 Nov 2024 21:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838086.1254099; Fri, 15 Nov 2024 21: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 1tC3q1-0007PC-OE; Fri, 15 Nov 2024 21:26:45 +0000
Received: by outflank-mailman (input) for mailman id 838086;
 Fri, 15 Nov 2024 21: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q0-0007AP-MT
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:44 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 4e7cdb1a-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:42 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id ED203206BCE3;
 Fri, 15 Nov 2024 13: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: 4e7cdb1a-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRlN2NkYjFhLWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDAyLjU2MjUwNywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com ED203206BCE3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706001;
	bh=YykTfzrNsiOcwK2ra+gzipuntreyDWZKmxIft/JBufs=;
	h=From:Subject:Date:To:Cc:From;
	b=WqskY8aZnBCmF3dfwxSLgVobxBO9fmOKJ8FdxV64GRKJyH+NQE4wui7qbxKlFnao4
	 BPR2hAMwYMqOqBxv5A69nRuXpaXJ0f1nikMlY5jjS8QJVhEj5FSlf1exAy6E/F7mHO
	 WumIfMdFmtWMw60hujxPTvq6hp3VaQHUHUHLjiOs=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Subject: [PATCH v2 00/21] Converge on using secs_to_jiffies()
Date: Fri, 15 Nov 2024 21:26:17 +0000
Message-Id: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIAHq8N2cC/3WNwQ6CMBAFf4X0bAlb0aSe/A/DAdqtrJEW29JgC
 P9uxRhPHmeS92ZhAT1hYKdiYR4TBXI2g9gVTPWtvSInnZmJStQAILhyNqHPPqAKPDp+I2PyA9d
 Saqjg2GkAluejR0Pzdn1pPuzxMeVC/MmeQnT+ueUTvO23dPhfSsArDrJttdrXsobufCc7zeVAy
 rvgTCyVG1izrusL3G0RRd8AAAA=
X-Change-ID: 20241112-converge-secs-to-jiffies-d99d1016bd11
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

This is a series that follows up on my previous series to introduce
secs_to_jiffies() and convert a few initial users.[1] In the review for
that series, Anna-Maria requested converting other users with
Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
that use the multiply pattern of either of:
- msecs_to_jiffies(N*1000), or
- msecs_to_jiffies(N*MSEC_PER_SEC)

The entire conversion is made with Coccinelle in the script added in
patch 2. Some changes suggested by Coccinelle have been deferred to
later parts that will address other possible variant patterns.

CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>

[1] https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com/
[2] https://lore.kernel.org/all/8734kngfni.fsf@somnus/

---
Changes in v2:
- EDITME: describe what is new in this series revision.
- EDITME: use bulletpoints and terse descriptions.
- Link to v1: https://lore.kernel.org/r/20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com

---
Easwar Hariharan (21):
      netfilter: conntrack: Cleanup timeout definitions
      coccinelle: misc: Add secs_to_jiffies script
      arm: pxa: Convert timeouts to use secs_to_jiffies()
      s390: kernel: Convert timeouts to use secs_to_jiffies()
      powerpc/papr_scm: Convert timeouts to secs_to_jiffies()
      mm: kmemleak: Convert timeouts to secs_to_jiffies()
      accel/habanalabs: Convert timeouts to secs_to_jiffies()
      drm/xe: Convert timeout to secs_to_jiffies()
      drm/etnaviv: Convert timeouts to secs_to_jiffies()
      scsi: lpfc: Convert timeouts to secs_to_jiffies()
      scsi: arcmsr: Convert timeouts to secs_to_jiffies()
      scsi: pm8001: Convert timeouts to secs_to_jiffies()
      xen/blkback: Convert timeouts to secs_to_jiffies()
      gve: Convert timeouts to secs_to_jiffies()
      wifi: ath11k: Convert timeouts to secs_to_jiffies()
      Bluetooth: MGMT: Convert timeouts to secs_to_jiffies()
      staging: vc04_services: Convert timeouts to secs_to_jiffies()
      ceph: Convert timeouts to secs_to_jiffies()
      livepatch: Convert timeouts to secs_to_jiffies()
      ALSA: line6: Convert timeouts to secs_to_jiffies()
      nfp: Convert timeouts to secs_to_jiffies()

 arch/arm/mach-pxa/sharpsl_pm.c                      |  6 +++---
 arch/powerpc/platforms/pseries/papr_scm.c           |  2 +-
 arch/s390/kernel/lgr.c                              |  3 ++-
 arch/s390/kernel/time.c                             |  4 ++--
 arch/s390/kernel/topology.c                         |  2 +-
 drivers/accel/habanalabs/common/device.c            |  2 +-
 drivers/accel/habanalabs/common/habanalabs_drv.c    |  3 +--
 drivers/block/xen-blkback/blkback.c                 |  2 +-
 drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c            |  2 +-
 drivers/gpu/drm/xe/xe_device.c                      |  2 +-
 drivers/net/ethernet/google/gve/gve_tx_dqo.c        |  6 ++----
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c |  2 +-
 drivers/net/wireless/ath/ath11k/debugfs.c           |  2 +-
 drivers/scsi/arcmsr/arcmsr_hba.c                    |  2 +-
 drivers/scsi/lpfc/lpfc_init.c                       | 18 +++++++++---------
 drivers/scsi/lpfc/lpfc_nportdisc.c                  |  8 ++++----
 drivers/scsi/lpfc/lpfc_nvme.c                       |  2 +-
 drivers/scsi/lpfc/lpfc_sli.c                        |  4 ++--
 drivers/scsi/lpfc/lpfc_vmid.c                       |  2 +-
 drivers/scsi/pm8001/pm8001_init.c                   |  2 +-
 .../vc04_services/bcm2835-audio/bcm2835-vchiq.c     |  2 +-
 fs/ceph/quota.c                                     |  2 +-
 mm/kmemleak.c                                       |  4 ++--
 net/bluetooth/mgmt.c                                |  2 +-
 net/netfilter/nf_conntrack_proto_sctp.c             | 21 ++++++++-------------
 samples/livepatch/livepatch-callbacks-busymod.c     |  2 +-
 samples/livepatch/livepatch-shadow-fix1.c           |  2 +-
 samples/livepatch/livepatch-shadow-mod.c            | 10 +++++-----
 scripts/coccinelle/misc/secs_to_jiffies.cocci       | 21 +++++++++++++++++++++
 sound/usb/line6/toneport.c                          |  2 +-
 30 files changed, 79 insertions(+), 65 deletions(-)
---
base-commit: 2d5404caa8c7bb5c4e0435f94b28834ae5456623
change-id: 20241112-converge-secs-to-jiffies-d99d1016bd11

Best regards,
-- 
Easwar Hariharan <eahariha@linux.microsoft.com>



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:26:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:26:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838091.1254108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3q4-0007fb-2f; Fri, 15 Nov 2024 21:26:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838091.1254108; Fri, 15 Nov 2024 21:26: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 1tC3q3-0007fO-VS; Fri, 15 Nov 2024 21:26:47 +0000
Received: by outflank-mailman (input) for mailman id 838091;
 Fri, 15 Nov 2024 21: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q1-0007DY-VA
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:45 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4ebe36f2-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:42 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 33C45206BCF3;
 Fri, 15 Nov 2024 13: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: 4ebe36f2-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRlYmUzNmYyLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDAzLjAwMTAzNCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 33C45206BCF3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706001;
	bh=Q64Lap8gGilYnZS8wBYuXVtg6CkDWFgIDR5hpRb/qKY=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=qqVpjOTpvUDnqKvyg0F7x8y5V/QTgKE0vrlMSYSCNCLw1VcBjI0/Vl0G6Q39TTHHt
	 DRDU50XbhfXe3YX2edjYJBIv3SoKO3DsasrlEzDNkcD4CPzZrQ2JNzKwdnMxBZK6Fj
	 EbvBkDXPncjur9W0Dtl4dgGCI1NPWNvWmxFYJQrY=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:18 +0000
Subject: [PATCH v2 01/21] netfilter: conntrack: Cleanup timeout definitions
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-1-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

None of the higher order definitions are used anymore, so remove
definitions for minutes, hours, and days timeouts. Convert the seconds
denominated timeouts to secs_to_jiffies()

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 net/netfilter/nf_conntrack_proto_sctp.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
index 4cc97f971264ed779434ab4597dd0162586b3736..6c95ac96fa42a39acafb5b88a7cf8898010e911c 100644
--- a/net/netfilter/nf_conntrack_proto_sctp.c
+++ b/net/netfilter/nf_conntrack_proto_sctp.c
@@ -39,20 +39,15 @@ static const char *const sctp_conntrack_names[] = {
 	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= "HEARTBEAT_SENT",
 };
 
-#define SECS  * HZ
-#define MINS  * 60 SECS
-#define HOURS * 60 MINS
-#define DAYS  * 24 HOURS
-
 static const unsigned int sctp_timeouts[SCTP_CONNTRACK_MAX] = {
-	[SCTP_CONNTRACK_CLOSED]			= 10 SECS,
-	[SCTP_CONNTRACK_COOKIE_WAIT]		= 3 SECS,
-	[SCTP_CONNTRACK_COOKIE_ECHOED]		= 3 SECS,
-	[SCTP_CONNTRACK_ESTABLISHED]		= 210 SECS,
-	[SCTP_CONNTRACK_SHUTDOWN_SENT]		= 3 SECS,
-	[SCTP_CONNTRACK_SHUTDOWN_RECD]		= 3 SECS,
-	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	= 3 SECS,
-	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= 30 SECS,
+	[SCTP_CONNTRACK_CLOSED]			= secs_to_jiffies(10),
+	[SCTP_CONNTRACK_COOKIE_WAIT]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_COOKIE_ECHOED]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_ESTABLISHED]		= secs_to_jiffies(210),
+	[SCTP_CONNTRACK_SHUTDOWN_SENT]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_SHUTDOWN_RECD]		= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	= secs_to_jiffies(3),
+	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= secs_to_jiffies(3),
 };
 
 #define	SCTP_FLAG_HEARTBEAT_VTAG_FAILED	1

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:26:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:26:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838094.1254113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3q4-0007hl-Ex; Fri, 15 Nov 2024 21:26:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838094.1254113; Fri, 15 Nov 2024 21:26: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 1tC3q4-0007hP-7f; Fri, 15 Nov 2024 21:26:48 +0000
Received: by outflank-mailman (input) for mailman id 838094;
 Fri, 15 Nov 2024 21: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q2-0007DY-62
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:46 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4ee2c123-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:42 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 669E7206BCF5;
 Fri, 15 Nov 2024 13: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: 4ee2c123-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRlZTJjMTIzLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDAzLjI0MTIxOCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 669E7206BCF5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706001;
	bh=mjGmNlPTDeXtBIVnBruZVxnncRcSbkg/ti9M5w2fu78=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=U/gvH0lzaLER5CbzPB6zD06w9Keq1U18T2/iQ93vXhu6AQN4lJ3/X3Ps8tBq+V9hU
	 8JfV3K4VKfGl26W2AQ+6bKbYPc1Tg7Mcqod+tAQYKeaUhj6tHi9CdVz4KsBV+7LMZi
	 VJMS6VhHAm7J/udfK+gDmWasBhF364IpIQjqUPkc=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:19 +0000
Subject: [PATCH v2 02/21] coccinelle: misc: Add secs_to_jiffies script
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Suggested-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 scripts/coccinelle/misc/secs_to_jiffies.cocci | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/scripts/coccinelle/misc/secs_to_jiffies.cocci b/scripts/coccinelle/misc/secs_to_jiffies.cocci
new file mode 100644
index 0000000000000000000000000000000000000000..af762b1c0aac8f044f21150bfaafd9efc834ee87
--- /dev/null
+++ b/scripts/coccinelle/misc/secs_to_jiffies.cocci
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-only
+///
+/// Find usages of:
+/// - msecs_to_jiffies(value*1000)
+/// - msecs_to_jiffies(value*MSEC_PER_SEC)
+///
+// Confidence: High
+// Copyright: (C) 2024 Easwar Hariharan Microsoft
+//
+// Keywords: secs, seconds, jiffies
+//
+
+@@ constant C; @@
+
+- msecs_to_jiffies(C * 1000)
++ secs_to_jiffies(C)
+
+@@ constant C; @@
+
+- msecs_to_jiffies(C * MSEC_PER_SEC)
++ secs_to_jiffies(C)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:26:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:26:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838095.1254119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3q4-0007rE-V2; Fri, 15 Nov 2024 21:26:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838095.1254119; Fri, 15 Nov 2024 21:26: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 1tC3q4-0007nw-PA; Fri, 15 Nov 2024 21:26:48 +0000
Received: by outflank-mailman (input) for mailman id 838095;
 Fri, 15 Nov 2024 21:26: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q3-0007DY-2D
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:47 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4f570983-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:43 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 9987D206BCF6;
 Fri, 15 Nov 2024 13: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: 4f570983-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRmNTcwOTgzLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA0LjAwNjA1NCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9987D206BCF6
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706001;
	bh=3U0Zq8t5krsiKxal+ZZuXq1UdnH4Ui7697JSzYEOhjI=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=pxyipjBG4pPbUUX4B02FM3/ZsXqd5TTFM1LiraDNsXkdoszGq2MjH9IQsJybMvID+
	 4YKAHyn2fCEWP25moqNhPglaJ0cda8qqzueRkUNy6p2auJAmaCiugYo3dL3clU9ruD
	 egDpjyzKcS59GHsuj7I2I/nCPTxfw5Z4JYIS26Qg=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:20 +0000
Subject: [PATCH v2 03/21] arm: pxa: Convert timeouts to use
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-3-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 arch/arm/mach-pxa/sharpsl_pm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index 72fa2e3fd35318e5a63c121ed7990a56a56b134c..bbbd06bc79bbb94fb258562e5a382acaf3c277b3 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -31,9 +31,9 @@
 /*
  * Constants
  */
-#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (msecs_to_jiffies(1*60*1000))  /* 1 min */
-#define SHARPSL_CHARGE_FINISH_TIME             (msecs_to_jiffies(10*60*1000)) /* 10 min */
-#define SHARPSL_BATCHK_TIME                    (msecs_to_jiffies(15*1000))    /* 15 sec */
+#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (secs_to_jiffies(60))  /* 1 min */
+#define SHARPSL_CHARGE_FINISH_TIME             (secs_to_jiffies(10*60)) /* 10 min */
+#define SHARPSL_BATCHK_TIME                    (secs_to_jiffies(15))    /* 15 sec */
 #define SHARPSL_BATCHK_TIME_SUSPEND            (60*10)                        /* 10 min */
 
 #define SHARPSL_WAIT_CO_TIME                   15  /* 15 sec */

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:26:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:26:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838097.1254128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3q5-0007yU-JP; Fri, 15 Nov 2024 21:26:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838097.1254128; Fri, 15 Nov 2024 21:26: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 1tC3q5-0007wi-5X; Fri, 15 Nov 2024 21:26:49 +0000
Received: by outflank-mailman (input) for mailman id 838097;
 Fri, 15 Nov 2024 21:26: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q3-0007AP-Ke
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:47 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5064fcaf-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:45 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 2B4EB206BCFA;
 Fri, 15 Nov 2024 13: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: 5064fcaf-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUwNjRmY2FmLWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDA1Ljc1MzIyLCJzZW5kZXIiOiJlYWhhcmloYUBsaW51eC5taWNyb3NvZnQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 2B4EB206BCFA
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706002;
	bh=uwqJCSe3GXdPjGHghPvDBfnEwZdT0uYA3z4HTDFu1hA=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=L5h+l6RmonxJ2az0g4MEjFj1mZrgP6QcCu4emVFVPsXRGSbOqO7anS7hNG7T+pDPJ
	 RufyF3X+SQAP7OBNi9L4oof0Mf/N1pw5KpaxKZGsx9C6BQjH2p+gXUlgOVsy2nu8Ns
	 vF3R0Is+PXb/IIvu2e2kzQ8Cg4xNfFZKq8iVxdGc=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:22 +0000
Subject: [PATCH v2 05/21] powerpc/papr_scm: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-5-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 arch/powerpc/platforms/pseries/papr_scm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
index 9e297f88adc5d97d4dc7b267b0bfebd58e5cf193..9e8086ec66e0f0e555ac27933854c06cfcf91a04 100644
--- a/arch/powerpc/platforms/pseries/papr_scm.c
+++ b/arch/powerpc/platforms/pseries/papr_scm.c
@@ -543,7 +543,7 @@ static int drc_pmem_query_health(struct papr_scm_priv *p)
 
 	/* Jiffies offset for which the health data is assumed to be same */
 	cache_timeout = p->lasthealth_jiffies +
-		msecs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL * 1000);
+		secs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL);
 
 	/* Fetch new health info is its older than MIN_HEALTH_QUERY_INTERVAL */
 	if (time_after(jiffies, cache_timeout))

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:26:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:26:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838099.1254132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3q5-00083r-SU; Fri, 15 Nov 2024 21:26:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838099.1254132; Fri, 15 Nov 2024 21:26: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 1tC3q5-00081k-K4; Fri, 15 Nov 2024 21:26:49 +0000
Received: by outflank-mailman (input) for mailman id 838099;
 Fri, 15 Nov 2024 21:26: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q3-0007DY-Vc
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:47 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4f9c7bca-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:44 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id CEC70206BCF9;
 Fri, 15 Nov 2024 13: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: 4f9c7bca-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRmOWM3YmNhLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA0LjQ0Mzk1Nywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com CEC70206BCF9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706002;
	bh=2qNmVTIUPIQHjxG6U+oz3oOJorUpDTvltiEua1kgDGM=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=iVvLyPnzqMDnIVqCr8TaID7h6/EcvZ4uGITdugla/Mpc21N0a+zSOXosYGRpfd2vu
	 d1MyMoy9U+Z9sd1VeqqtG/myJ7CKMnsPLRLQ8NuKd0YjVEIqU9hZB6KsELpQ9xGs8R
	 v7zo22n2+S5uyzdobRgvEalMR5SyEYAxTB4IIGU8=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:21 +0000
Subject: [PATCH v2 04/21] s390: kernel: Convert timeouts to use
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-4-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 arch/s390/kernel/lgr.c      | 3 ++-
 arch/s390/kernel/time.c     | 4 ++--
 arch/s390/kernel/topology.c | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/s390/kernel/lgr.c b/arch/s390/kernel/lgr.c
index 6652e54cf3db9fbdd8cfb06f8a0dc1d4c05ae7d7..68021cb38574b122bbe3d9f70e9168305360017b 100644
--- a/arch/s390/kernel/lgr.c
+++ b/arch/s390/kernel/lgr.c
@@ -166,7 +166,8 @@ static struct timer_list lgr_timer;
  */
 static void lgr_timer_set(void)
 {
-	mod_timer(&lgr_timer, jiffies + msecs_to_jiffies(LGR_TIMER_INTERVAL_SECS * MSEC_PER_SEC));
+	mod_timer(&lgr_timer,
+		  jiffies + secs_to_jiffies(LGR_TIMER_INTERVAL_SECS));
 }
 
 /*
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index b713effe057967623f64da8297314fcc42ff1af2..e28c61d39d27c6e89f490e779ff674ba2fe21d3e 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -656,12 +656,12 @@ static void stp_check_leap(void)
 		if (ret < 0)
 			pr_err("failed to set leap second flags\n");
 		/* arm Timer to clear leap second flags */
-		mod_timer(&stp_timer, jiffies + msecs_to_jiffies(14400 * MSEC_PER_SEC));
+		mod_timer(&stp_timer, jiffies + secs_to_jiffies(14400));
 	} else {
 		/* The day the leap second is scheduled for hasn't been reached. Retry
 		 * in one hour.
 		 */
-		mod_timer(&stp_timer, jiffies + msecs_to_jiffies(3600 * MSEC_PER_SEC));
+		mod_timer(&stp_timer, jiffies + secs_to_jiffies(3600));
 	}
 }
 
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c
index 813e5da9a9737e05ec3ef85a495fe38cbb40c49b..99095ff3897c1b5337f7e2abcf10f3fe8219ad7c 100644
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@ -370,7 +370,7 @@ static void set_topology_timer(void)
 	if (atomic_add_unless(&topology_poll, -1, 0))
 		mod_timer(&topology_timer, jiffies + msecs_to_jiffies(100));
 	else
-		mod_timer(&topology_timer, jiffies + msecs_to_jiffies(60 * MSEC_PER_SEC));
+		mod_timer(&topology_timer, jiffies + secs_to_jiffies(60));
 }
 
 void topology_expect_change(void)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:26:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:26:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838102.1254154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3q7-0000J3-I3; Fri, 15 Nov 2024 21:26:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838102.1254154; Fri, 15 Nov 2024 21:26: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 1tC3q7-0000FE-A5; Fri, 15 Nov 2024 21:26:51 +0000
Received: by outflank-mailman (input) for mailman id 838102;
 Fri, 15 Nov 2024 21:26: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q4-0007AP-Vx
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:48 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5120d687-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:46 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 9A64C206BCFC;
 Fri, 15 Nov 2024 13: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: 5120d687-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUxMjBkNjg3LWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDA2Ljk4MzExLCJzZW5kZXIiOiJlYWhhcmloYUBsaW51eC5taWNyb3NvZnQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9A64C206BCFC
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706002;
	bh=QYs6jKNkSqRMwxas8zTGS0f9EDen03tWxmE1GsbmPvQ=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=Fqjuy5eSiRbnXSL2o0v7YwMA9fZ674Q/Gd+25Z4rP4RwCiu11at2Mv7W7PGMuqY5d
	 K4P8ORik82r/04knqALaANam5+D1reZvHHMZxADzcYp9l2s2TYV6JJ/Elj8BYsGqr3
	 W1hOklHhhwD9HLzPgJ9aKxBAHgaV0sBNYgQwU9cU=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:24 +0000
Subject: [PATCH v2 07/21] accel/habanalabs: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-7-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/accel/habanalabs/common/device.c         | 2 +-
 drivers/accel/habanalabs/common/habanalabs_drv.c | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c
index e0cf3b4343bb081638430f2552ed27431b488ff9..30277ae410d4b742ffb7bddc35498564ff96fe62 100644
--- a/drivers/accel/habanalabs/common/device.c
+++ b/drivers/accel/habanalabs/common/device.c
@@ -817,7 +817,7 @@ static void device_hard_reset_pending(struct work_struct *work)
 		}
 
 		queue_delayed_work(hdev->reset_wq, &device_reset_work->reset_work,
-					msecs_to_jiffies(HL_PENDING_RESET_PER_SEC * 1000));
+					secs_to_jiffies(HL_PENDING_RESET_PER_SEC));
 	}
 }
 
diff --git a/drivers/accel/habanalabs/common/habanalabs_drv.c b/drivers/accel/habanalabs/common/habanalabs_drv.c
index 708dfd10f39c584a6221c29015f4b0323574145a..5ec13f3a46f915e75b04582b28d51ba8bb50be78 100644
--- a/drivers/accel/habanalabs/common/habanalabs_drv.c
+++ b/drivers/accel/habanalabs/common/habanalabs_drv.c
@@ -362,8 +362,7 @@ static void fixup_device_params_per_asic(struct hl_device *hdev, int timeout)
 		 * a different default timeout for Gaudi
 		 */
 		if (timeout == HL_DEFAULT_TIMEOUT_LOCKED)
-			hdev->timeout_jiffies = msecs_to_jiffies(GAUDI_DEFAULT_TIMEOUT_LOCKED *
-										MSEC_PER_SEC);
+			hdev->timeout_jiffies = secs_to_jiffies(GAUDI_DEFAULT_TIMEOUT_LOCKED);
 
 		hdev->reset_upon_device_release = 0;
 		break;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:29:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838130.1254168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3sV-0002mM-5a; Fri, 15 Nov 2024 21:29:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838130.1254168; Fri, 15 Nov 2024 21:29: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 1tC3sV-0002mF-2b; Fri, 15 Nov 2024 21:29:19 +0000
Received: by outflank-mailman (input) for mailman id 838130;
 Fri, 15 Nov 2024 21:29: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3sT-0002m9-Qx
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:29:17 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id a9005b24-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:29:14 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id B73912064AE5;
 Fri, 15 Nov 2024 13:29: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: a9005b24-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImE5MDA1YjI0LWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MTU0LjQyODczLCJzZW5kZXIiOiJlYWhhcmloYUBsaW51eC5taWNyb3NvZnQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B73912064AE5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706152;
	bh=wnbSeh3nrxkUpLpUNInI53zipJdSc2F6sttOVAgMzpE=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=Ln07f5EjuuPfHntHC8suz+6+bwoC2E7y6o04KXRcULiHkp6gj2wE4/Oxay8L3v7dX
	 32Fibc4wGoz91tHZWM06yjj0Mb1XO7WrI+T+Asla6tiIZ1Uqdsk33jPpXiuJrOb0nL
	 YRieCLrDI2dHjOFiqFcQWPRpE20rYHgeg/0+hfKE=
Message-ID: <10ee4e8f-d8b4-4502-a5e2-0657802aeb11@linux.microsoft.com>
Date: Fri, 15 Nov 2024 13:29:08 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: eahariha@linux.microsoft.com, netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
To: Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
Content-Language: en-US
From: Easwar Hariharan <eahariha@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/15/2024 1:26 PM, Easwar Hariharan wrote:
> This is a series that follows up on my previous series to introduce
> secs_to_jiffies() and convert a few initial users.[1] In the review for
> that series, Anna-Maria requested converting other users with
> Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
> that use the multiply pattern of either of:
> - msecs_to_jiffies(N*1000), or
> - msecs_to_jiffies(N*MSEC_PER_SEC)
> 
> The entire conversion is made with Coccinelle in the script added in
> patch 2. Some changes suggested by Coccinelle have been deferred to
> later parts that will address other possible variant patterns.
> 
> CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> 
> [1] https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com/
> [2] https://lore.kernel.org/all/8734kngfni.fsf@somnus/
> 
> ---
> Changes in v2:
> - EDITME: describe what is new in this series revision.
> - EDITME: use bulletpoints and terse descriptions.
> - Link to v1: https://lore.kernel.org/r/20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com
>

Apologies, I missed out on editing the changelog here. v1 included a
patch that's already been accepted, there are no other changes in v2.

Thanks,
Easwar


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:31:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:31:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838137.1254178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3uB-0004Gu-Ei; Fri, 15 Nov 2024 21:31:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838137.1254178; Fri, 15 Nov 2024 21:31: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 1tC3uB-0004Gn-C9; Fri, 15 Nov 2024 21:31:03 +0000
Received: by outflank-mailman (input) for mailman id 838137;
 Fri, 15 Nov 2024 21:31: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q9-0007AP-Lk
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:53 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 534ea7be-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:50 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id A9C08238AF4D;
 Fri, 15 Nov 2024 13:26: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: 534ea7be-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUzNGVhN2JlLWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDEwLjQ3MzI1Mywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A9C08238AF4D
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706004;
	bh=DTjXQ8JEnxKHPkRfiey8gv8xkSCkh1L+oMakOx6bumQ=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=oGb2YPV5HdUkrLc8aXXGxz7j6fdC94ISGz/3Z3JDkeGMzqfQOdm/os+DxRfbZJSZm
	 Sm8lyg5zbYiuzLJMaRkj7E/23RBdauVbVu8dNvl0Gp3UJGc2WZ7231aTsociCQa1Qd
	 Z6HMNGoW3/gYR/l/pPCt55x0CtSvKcJxm9RO1wp8=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:33 +0000
Subject: [PATCH v2 16/21] Bluetooth: MGMT: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-16-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 net/bluetooth/mgmt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index a429661b676a83ec2d34ed7e228195f39a153f9f..ca89c26d04ec64869e6b99de099d343f4c548ce5 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -209,7 +209,7 @@ static const u16 mgmt_untrusted_events[] = {
 	MGMT_EV_EXP_FEATURE_CHANGED,
 };
 
-#define CACHE_TIMEOUT	msecs_to_jiffies(2 * 1000)
+#define CACHE_TIMEOUT	secs_to_jiffies(2)
 
 #define ZERO_KEY "\x00\x00\x00\x00\x00\x00\x00\x00" \
 		 "\x00\x00\x00\x00\x00\x00\x00\x00"

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:31:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838148.1254188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3um-0004zo-Mj; Fri, 15 Nov 2024 21:31:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838148.1254188; Fri, 15 Nov 2024 21:31: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 1tC3um-0004zh-KF; Fri, 15 Nov 2024 21:31:40 +0000
Received: by outflank-mailman (input) for mailman id 838148;
 Fri, 15 Nov 2024 21:31: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3qA-0007AP-M8
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:54 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 546242af-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:51 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 5CD1F2064AE2;
 Fri, 15 Nov 2024 13:26: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: 546242af-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU0NjI0MmFmLWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDEyLjI4MTk4MSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5CD1F2064AE2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706005;
	bh=DChbJW+DaqGHGWE0sMF41tmxT4FReQ1FKA/KDyHL32Y=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=ge1adyPGW09osua+wGGbdGdLanSrZuA2fUn6nHmkQB9BNqn7wXFeAp1cdPu9VCOCp
	 35/hCv3XcEWTsrlvlhY2AjaoCI0WZCFykTU/SVB+MenGuEggOAvCtL12icddG0ZBHS
	 CbMDQbZbPdYcJR1LvpcZibK937QvjL6m/Aizu5/Q=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:36 +0000
Subject: [PATCH v2 19/21] livepatch: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
 samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
 samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
--- a/samples/livepatch/livepatch-callbacks-busymod.c
+++ b/samples/livepatch/livepatch-callbacks-busymod.c
@@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
 {
 	pr_info("%s\n", __func__);
 	schedule_delayed_work(&work,
-		msecs_to_jiffies(1000 * 0));
+		secs_to_jiffies(0));
 	return 0;
 }
 
diff --git a/samples/livepatch/livepatch-shadow-fix1.c b/samples/livepatch/livepatch-shadow-fix1.c
index 6701641bf12d454a770e49abeeb0dea92560e55e..948ea1f5760fed2fa27baf478c97cf98ad5c99a8 100644
--- a/samples/livepatch/livepatch-shadow-fix1.c
+++ b/samples/livepatch/livepatch-shadow-fix1.c
@@ -73,7 +73,7 @@ static struct dummy *livepatch_fix1_dummy_alloc(void)
 		return NULL;
 
 	d->jiffies_expire = jiffies +
-		msecs_to_jiffies(1000 * EXPIRE_PERIOD);
+		secs_to_jiffies(EXPIRE_PERIOD);
 
 	/*
 	 * Patch: save the extra memory location into a SV_LEAK shadow
diff --git a/samples/livepatch/livepatch-shadow-mod.c b/samples/livepatch/livepatch-shadow-mod.c
index 7e753b0d2fa611524c9e2adbe02c8fa3e9b6015e..79296e6ccb119f521e86a121623855d841c9fc5e 100644
--- a/samples/livepatch/livepatch-shadow-mod.c
+++ b/samples/livepatch/livepatch-shadow-mod.c
@@ -102,7 +102,7 @@ static __used noinline struct dummy *dummy_alloc(void)
 		return NULL;
 
 	d->jiffies_expire = jiffies +
-		msecs_to_jiffies(1000 * EXPIRE_PERIOD);
+		secs_to_jiffies(EXPIRE_PERIOD);
 
 	/* Oops, forgot to save leak! */
 	leak = kzalloc(sizeof(*leak), GFP_KERNEL);
@@ -153,7 +153,7 @@ static void alloc_work_func(struct work_struct *work)
 	mutex_unlock(&dummy_list_mutex);
 
 	schedule_delayed_work(&alloc_dwork,
-		msecs_to_jiffies(1000 * ALLOC_PERIOD));
+		secs_to_jiffies(ALLOC_PERIOD));
 }
 
 /*
@@ -185,15 +185,15 @@ static void cleanup_work_func(struct work_struct *work)
 	mutex_unlock(&dummy_list_mutex);
 
 	schedule_delayed_work(&cleanup_dwork,
-		msecs_to_jiffies(1000 * CLEANUP_PERIOD));
+		secs_to_jiffies(CLEANUP_PERIOD));
 }
 
 static int livepatch_shadow_mod_init(void)
 {
 	schedule_delayed_work(&alloc_dwork,
-		msecs_to_jiffies(1000 * ALLOC_PERIOD));
+		secs_to_jiffies(ALLOC_PERIOD));
 	schedule_delayed_work(&cleanup_dwork,
-		msecs_to_jiffies(1000 * CLEANUP_PERIOD));
+		secs_to_jiffies(CLEANUP_PERIOD));
 
 	return 0;
 }

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:31:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:31:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838151.1254199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3ut-0005J0-2L; Fri, 15 Nov 2024 21:31:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838151.1254199; Fri, 15 Nov 2024 21: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 1tC3us-0005It-VM; Fri, 15 Nov 2024 21:31:46 +0000
Received: by outflank-mailman (input) for mailman id 838151;
 Fri, 15 Nov 2024 21:31: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=DylP=SK=quicinc.com=quic_jjohnson@srs-se1.protection.inumbo.net>)
 id 1tC3ur-0004mi-7S
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:31:45 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ffd92a14-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:31:40 +0100 (CET)
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AFBRrRp005627;
 Fri, 15 Nov 2024 21:30:44 GMT
Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com
 [129.46.96.20])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 42wex8wcg1-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 15 Nov 2024 21:30:43 +0000 (GMT)
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
 [10.47.209.196])
 by NALASPPMTA05.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 4AFLUgSW012417
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 15 Nov 2024 21:30:42 GMT
Received: from [10.111.176.23] (10.49.16.6) by nalasex01a.na.qualcomm.com
 (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Fri, 15 Nov
 2024 13:30: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: ffd92a14-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwNS4yMjAuMTY4LjEzMSIsImhlbG8iOiJteDBhLTAwMzFkZjAxLnBwaG9zdGVkLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZmZDkyYTE0LWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MzAxLjI5NTg2OSwic2VuZGVyIjoicXVpY19qam9obnNvbkBxdWljaW5jLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	h0tYENsGaJFO8JDAStk6yXv0HXHF9Ts4iNM+HpTmVVA=; b=ECCtKwq6Cy4NLuZL
	j2WUeZYNsdHGYwCwotl4/Q3JJFWUcWHz7gsSnNDB+iL7po1zl5LllV34Rd8BicSR
	9ZhaW0psyAjm90yO+xdBZAQR2N+BNsxWv7rLBNXjlQiIPWBa1yvitZRPCxTpPbfw
	Cg+cd7DCPZpNjEahimwlyHuvXlt8vqPlFUL5VktjnMqhWF5hDijj5bAtLxhAD0oc
	D1i3vFAs+GUMNPK5b3Rv4wJqmmGh4qZDucIdWFwnin1FB9/KAmxpYybkULOapKD8
	Gey6OqqdHevsuhCW6YMpiT4CXpP2hs6x9/0dOyqFe/2DN0Iw3Eca3M+RZSonp9bg
	YT7Xyw==
Message-ID: <e1ff4b71-7abf-4ac6-8b82-86aad5394de6@quicinc.com>
Date: Fri, 15 Nov 2024 13:30:34 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 22/22] jiffies: Define secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
        Pablo Neira Ayuso
	<pablo@netfilter.org>,
        Jozsef Kadlecsik <kadlec@netfilter.org>,
        "David S.
 Miller" <davem@davemloft.net>,
        Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>,
        Paolo Abeni <pabeni@redhat.com>, Simon Horman
	<horms@kernel.org>,
        Julia Lawall <Julia.Lawall@inria.fr>,
        Nicolas Palix
	<nicolas.palix@imag.fr>,
        Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang
	<haojian.zhuang@gmail.com>,
        Robert Jarzmik <robert.jarzmik@free.fr>,
        Russell
 King <linux@armlinux.org.uk>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily
 Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle
	<svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
        Oded Gabbay
	<ogabbay@kernel.org>,
        Lucas De Marchi <lucas.demarchi@intel.com>,
        =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
        Rodrigo
 Vivi <rodrigo.vivi@intel.com>,
        Maarten Lankhorst
	<maarten.lankhorst@linux.intel.com>,
        Maxime Ripard <mripard@kernel.org>,
        Thomas Zimmermann <tzimmermann@suse.de>,
        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
        Jeroen de Borst <jeroendb@google.com>,
        Praveen Kaligineedi <pkaligineedi@google.com>,
        Shailend Chand
	<shailend@google.com>,
        Andrew Lunn <andrew+netdev@lunn.ch>,
        James Smart
	<james.smart@broadcom.com>,
        Dick Kennedy <dick.kennedy@broadcom.com>,
        "James
 E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
        "Martin K. Petersen"
	<martin.petersen@oracle.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>,
        Jens Axboe <axboe@kernel.dk>, Kalle Valo
	<kvalo@kernel.org>,
        Jeff Johnson <jjohnson@kernel.org>,
        Catalin Marinas
	<catalin.marinas@arm.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Jack
 Wang <jinpu.wang@cloud.ionos.com>,
        Marcel Holtmann <marcel@holtmann.org>,
        Johan Hedberg <johan.hedberg@gmail.com>,
        Luiz Augusto von Dentz
	<luiz.dentz@gmail.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Florian Fainelli <florian.fainelli@broadcom.com>,
        Ray Jui
	<rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
        Broadcom internal
 kernel review list <bcm-kernel-feedback-list@broadcom.com>,
        Xiubo Li
	<xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
        Josh Poimboeuf
	<jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>,
        Miroslav Benes
	<mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>,
        Joe Lawrence
	<joe.lawrence@redhat.com>,
        Jaroslav Kysela <perex@perex.cz>, Takashi Iwai
	<tiwai@suse.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Russell King
	<linux+etnaviv@armlinux.org.uk>,
        Christian Gmeiner
	<christian.gmeiner@gmail.com>,
        Louis Peens <louis.peens@corigine.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Naveen N Rao
	<naveen@kernel.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>
CC: <netfilter-devel@vger.kernel.org>, <coreteam@netfilter.org>,
        <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        <cocci@inria.fr>, <linux-arm-kernel@lists.infradead.org>,
        <linux-s390@vger.kernel.org>, <dri-devel@lists.freedesktop.org>,
        <intel-xe@lists.freedesktop.org>, <linux-scsi@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, <linux-block@vger.kernel.org>,
        <linux-wireless@vger.kernel.org>, <ath11k@lists.infradead.org>,
        <linux-mm@kvack.org>, <linux-bluetooth@vger.kernel.org>,
        <linux-staging@lists.linux.dev>,
        <linux-rpi-kernel@lists.infradead.org>, <ceph-devel@vger.kernel.org>,
        <live-patching@vger.kernel.org>, <linux-sound@vger.kernel.org>,
        <etnaviv@lists.freedesktop.org>, <oss-drivers@corigine.com>,
        <linuxppc-dev@lists.ozlabs.org>,
        Anna-Maria Behnsen
	<anna-maria@linutronix.de>,
        Michael Kelley <mhklinux@outlook.com>,
        Thomas
 Gleixner <tglx@linutronix.de>,
        Luiz Augusto von Dentz
	<luiz.von.dentz@intel.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v1-22-19aadc34941b@linux.microsoft.com>
From: Jeff Johnson <quic_jjohnson@quicinc.com>
Content-Language: en-US
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-22-19aadc34941b@linux.microsoft.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.49.16.6]
X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) To
 nalasex01a.na.qualcomm.com (10.47.209.196)
X-QCInternal: smtphost
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085
X-Proofpoint-GUID: h43h8EgANEiwtjVrnKtKVRWKc8bYM2XJ
X-Proofpoint-ORIG-GUID: h43h8EgANEiwtjVrnKtKVRWKc8bYM2XJ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29
 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0
 phishscore=0 bulkscore=0 mlxlogscore=893 lowpriorityscore=0 suspectscore=0
 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1011 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2409260000
 definitions=main-2411150180

On 11/15/2024 1:22 PM, Easwar Hariharan wrote:
> secs_to_jiffies() is defined in hci_event.c and cannot be reused by
> other call sites. Hoist it into the core code to allow conversion of the
> ~1150 usages of msecs_to_jiffies() that either:
> 
>  - use a multiplier value of 1000 or equivalently MSEC_PER_SEC, or
>  - have timeouts that are denominated in seconds (i.e. end in 000)
> 
> It's implemented as a macro to allow usage in static initializers.
> 
> This will also allow conversion of yet more sites that use (sec * HZ)
> directly, and improve their readability.
> 
> Suggested-by: Michael Kelley <mhklinux@outlook.com>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Link: https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-1-9ba123facf88@linux.microsoft.com

your signed-off-by should be last.

and you have a patch ordering problem since this patch must come before all
the patches that use secs_to_jiffies(), otherwise this series cannot be bisected



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:32:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:32:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838168.1254209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3va-0006It-DJ; Fri, 15 Nov 2024 21:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838168.1254209; Fri, 15 Nov 2024 21: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 1tC3va-0006Im-9e; Fri, 15 Nov 2024 21:32:30 +0000
Received: by outflank-mailman (input) for mailman id 838168;
 Fri, 15 Nov 2024 21:32: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3qD-0007DY-12
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:57 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 53faabce-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:51 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 25F9B2064AE0;
 Fri, 15 Nov 2024 13:26: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: 53faabce-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUzZmFhYmNlLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDExLjYxMTkxOSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 25F9B2064AE0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706005;
	bh=7RgevXzVOF2wd0QHaqg8sKSXBh3tNnxEZNLAJYHO4/0=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=UMDCxiMFhqj3OlDob3LYx0iO5XeNyfLgAMK6ZmPOVPjyLP8LbvBk/4clux5a7IhZf
	 SUaWunrnwv/PJO3csx5OWc8mNOgOiHWkD1xkNHfyawuJ/x53ffFQkcrJhZT2Q2aLBA
	 ECLfhBVQizunL7YqKMclkNruWg4koe1sEVlXuTiY=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:35 +0000
Subject: [PATCH v2 18/21] ceph: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-18-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 fs/ceph/quota.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ceph/quota.c b/fs/ceph/quota.c
index 06ee397e0c3a6172592e62dba95cd267cfff0db1..d90eda19bcc4618f98bfed833c10a6071cf2e2ac 100644
--- a/fs/ceph/quota.c
+++ b/fs/ceph/quota.c
@@ -166,7 +166,7 @@ static struct inode *lookup_quotarealm_inode(struct ceph_mds_client *mdsc,
 	if (IS_ERR(in)) {
 		doutc(cl, "Can't lookup inode %llx (err: %ld)\n", realm->ino,
 		      PTR_ERR(in));
-		qri->timeout = jiffies + msecs_to_jiffies(60 * 1000); /* XXX */
+		qri->timeout = jiffies + secs_to_jiffies(60); /* XXX */
 	} else {
 		qri->timeout = 0;
 		qri->inode = in;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:33:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:33:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838185.1254219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3wx-0007JD-Og; Fri, 15 Nov 2024 21:33:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838185.1254219; Fri, 15 Nov 2024 21:33: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 1tC3wx-0007J6-KA; Fri, 15 Nov 2024 21:33:55 +0000
Received: by outflank-mailman (input) for mailman id 838185;
 Fri, 15 Nov 2024 21:33: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mL-0007DI-4O
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:57 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c582edd3-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:52 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 17D8D20BEBD6;
 Fri, 15 Nov 2024 13:22: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: c582edd3-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM1ODJlZGQzLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzcyLjU3ODcwNywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 17D8D20BEBD6
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705765;
	bh=tK04utDeNCseuvXH6irwCudSXxUYSbugurANWfhj/RA=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=EeaKXUIdhndTAyki8bUakndKNZ8kLOJGUUMqUnCCfo6p9a/zgVkYL/LMfKrnFK+tG
	 f7KXDookDfXLSuaDjHu+S/m6N1geUmPHCzm2E8/XUOv0uy4oS5S0wjKzm7GAQ4iGTZ
	 d5PjcF/6XEBO/WEPS/wh7fexVacCMlg1D+TYznuQ=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:45 +0000
Subject: [PATCH 15/22] wifi: ath11k: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-15-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/net/wireless/ath/ath11k/debugfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath11k/debugfs.c b/drivers/net/wireless/ath/ath11k/debugfs.c
index 57281a135dd7fa6b8610636f47873c8bba21053c..bf192529e3fe26a91e72105a77b4c6f849b905ec 100644
--- a/drivers/net/wireless/ath/ath11k/debugfs.c
+++ b/drivers/net/wireless/ath/ath11k/debugfs.c
@@ -178,7 +178,7 @@ static int ath11k_debugfs_fw_stats_request(struct ath11k *ar,
 	 * received 'update stats' event, we keep a 3 seconds timeout in case,
 	 * fw_stats_done is not marked yet
 	 */
-	timeout = jiffies + msecs_to_jiffies(3 * 1000);
+	timeout = jiffies + secs_to_jiffies(3);
 
 	ath11k_debugfs_fw_stats_reset(ar);
 

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:34:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:34:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838199.1254229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3xm-000839-Vb; Fri, 15 Nov 2024 21:34:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838199.1254229; Fri, 15 Nov 2024 21:34: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 1tC3xm-000832-St; Fri, 15 Nov 2024 21:34:46 +0000
Received: by outflank-mailman (input) for mailman id 838199;
 Fri, 15 Nov 2024 21:34: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q8-0007AP-LR
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:52 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 52f595be-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:49 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 750BA2383EC7;
 Fri, 15 Nov 2024 13:26: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: 52f595be-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUyZjU5NWJlLWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDA5Ljg5MzE3OSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 750BA2383EC7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706004;
	bh=tK04utDeNCseuvXH6irwCudSXxUYSbugurANWfhj/RA=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=oW00wAHdTMgD3/TVNA1hZU5X5M4jnpeZUWcg0SOafgo7IxhPi77X6wrerdoxYG1Qb
	 /d2D6KpobO9ihzhc6ZJVrlOxlz5U66VAL6WTsDlCtIaa36R7/WidCC3/10uBG5CLMB
	 DbALShHl/X1H/ANvKovErIH2SEM7ywfupUlqJSTY=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:32 +0000
Subject: [PATCH v2 15/21] wifi: ath11k: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-15-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/net/wireless/ath/ath11k/debugfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath11k/debugfs.c b/drivers/net/wireless/ath/ath11k/debugfs.c
index 57281a135dd7fa6b8610636f47873c8bba21053c..bf192529e3fe26a91e72105a77b4c6f849b905ec 100644
--- a/drivers/net/wireless/ath/ath11k/debugfs.c
+++ b/drivers/net/wireless/ath/ath11k/debugfs.c
@@ -178,7 +178,7 @@ static int ath11k_debugfs_fw_stats_request(struct ath11k *ar,
 	 * received 'update stats' event, we keep a 3 seconds timeout in case,
 	 * fw_stats_done is not marked yet
 	 */
-	timeout = jiffies + msecs_to_jiffies(3 * 1000);
+	timeout = jiffies + secs_to_jiffies(3);
 
 	ath11k_debugfs_fw_stats_reset(ar);
 

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:34:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:34:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838201.1254239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3xq-0008KD-8N; Fri, 15 Nov 2024 21:34:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838201.1254239; Fri, 15 Nov 2024 21:34: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 1tC3xq-0008K4-54; Fri, 15 Nov 2024 21:34:50 +0000
Received: by outflank-mailman (input) for mailman id 838201;
 Fri, 15 Nov 2024 21:34: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mQ-0007DI-5K
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:23:02 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c7b6d9f1-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:55 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 6D0F7206BCEF;
 Fri, 15 Nov 2024 13:22: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: c7b6d9f1-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM3YjZkOWYxLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1Nzc2LjI3NTQ0NSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 6D0F7206BCEF
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705766;
	bh=C//qZdfJfhN40N7nu/AQ5wmq+hj+onzvFzX2KrlsiOc=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=PgOujrsxbS3CIW2HtLS/dd5ya7VtRG8QHhCZQdBAsTM3cx+kDkUAOUPnWwMnerztw
	 8X+Y81upKcxyh16cr7IomUwsyHP2XT7qOxm2nnfHsDBJOEcmEz0gtoHQc1mKP3Fi67
	 1u154eT7RN/hsmnSsi2wJWAYt//zpJk5MiSg9/YM=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:51 +0000
Subject: [PATCH 21/22] nfp: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-21-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 6e0929af0f725b2b3855c69bbe894e6626c566b3..6925ad985fc9e2d5641feea41ff277107a8dee9c 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -2779,7 +2779,7 @@ static void nfp_net_netdev_init(struct nfp_net *nn)
 		break;
 	}
 
-	netdev->watchdog_timeo = msecs_to_jiffies(5 * 1000);
+	netdev->watchdog_timeo = secs_to_jiffies(5);
 
 	/* MTU range: 68 - hw-specific max */
 	netdev->min_mtu = ETH_MIN_MTU;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:34:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:34:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838202.1254250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3xu-0000Ca-I9; Fri, 15 Nov 2024 21:34:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838202.1254250; Fri, 15 Nov 2024 21:34: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 1tC3xu-0000CT-DY; Fri, 15 Nov 2024 21:34:54 +0000
Received: by outflank-mailman (input) for mailman id 838202;
 Fri, 15 Nov 2024 21:34: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3xt-0007j5-EI
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:34:53 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 71b5cb75-a399-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:34:50 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id 684CD2064AE8;
 Fri, 15 Nov 2024 13:34: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: 71b5cb75-a399-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjcxYjVjYjc1LWEzOTktMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2NDkxLjE3MjI5MSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 684CD2064AE8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706489;
	bh=OEAxYqndmV97fB2t7JocLL7u1S4ql6E8JdtDlfM98mA=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=Xurk/K9NZ4Pt7R0qwaS9VSYSKCTMSaNp/aapEsQZCtIT74ft5tvctXWuFivs3Zswx
	 hrelPOn+ppZ3FOsJiI+79MeaWo7lX97CMgyLO8+gyOebFfO+/iJc5GjxBT3U1ILKzl
	 NFamFr9+2AnMiAp4lQnkRWbNDRlCI9FqXsyeg14c=
Message-ID: <ae1f83c3-88fe-4b75-9446-e7e711b954ae@linux.microsoft.com>
Date: Fri, 15 Nov 2024 13:34:46 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: eahariha@linux.microsoft.com, netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen
 <anna-maria@linutronix.de>, Michael Kelley <mhklinux@outlook.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Subject: Re: [PATCH 22/22] jiffies: Define secs_to_jiffies()
To: Jeff Johnson <quic_jjohnson@quicinc.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v1-22-19aadc34941b@linux.microsoft.com>
 <e1ff4b71-7abf-4ac6-8b82-86aad5394de6@quicinc.com>
Content-Language: en-US
From: Easwar Hariharan <eahariha@linux.microsoft.com>
In-Reply-To: <e1ff4b71-7abf-4ac6-8b82-86aad5394de6@quicinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/15/2024 1:30 PM, Jeff Johnson wrote:
> On 11/15/2024 1:22 PM, Easwar Hariharan wrote:
>> secs_to_jiffies() is defined in hci_event.c and cannot be reused by
>> other call sites. Hoist it into the core code to allow conversion of the
>> ~1150 usages of msecs_to_jiffies() that either:
>>
>>  - use a multiplier value of 1000 or equivalently MSEC_PER_SEC, or
>>  - have timeouts that are denominated in seconds (i.e. end in 000)
>>
>> It's implemented as a macro to allow usage in static initializers.
>>
>> This will also allow conversion of yet more sites that use (sec * HZ)
>> directly, and improve their readability.
>>
>> Suggested-by: Michael Kelley <mhklinux@outlook.com>
>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
>> Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
>> Link: https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-1-9ba123facf88@linux.microsoft.com
> 
> your signed-off-by should be last.
> 
> and you have a patch ordering problem since this patch must come before all
> the patches that use secs_to_jiffies(), otherwise this series cannot be bisected

Thanks for the quick response, indeed this patch is already in tip[1], I
pulled it in for testing the series but missed out on removing it before
sending. Please review v2 that excludes this:
https://lore.kernel.org/all/20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com/

[1]: https://git.kernel.org/tip/b35108a51cf7bab58d7eace1267d7965978bcdb8

Thanks,
Easwar


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:35:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838225.1254259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3yQ-0001Mb-PD; Fri, 15 Nov 2024 21:35:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838225.1254259; Fri, 15 Nov 2024 21:35: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 1tC3yQ-0001MS-Mc; Fri, 15 Nov 2024 21:35:26 +0000
Received: by outflank-mailman (input) for mailman id 838225;
 Fri, 15 Nov 2024 21:35: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q6-0007DY-W7
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:51 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 51783b48-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:47 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 499B0206BCFF;
 Fri, 15 Nov 2024 13:26: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: 51783b48-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUxNzgzYjQ4LWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA3LjU2NzYyNywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 499B0206BCFF
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706003;
	bh=61FzWbZx8SVE6r33ggD3SgPEq3e2wgbU4/WDXmU67Oo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=og1s1yT3C7qmGwpXC7BTRjelEYUxv+y/wT3aVo0+4J69TYgfP6zEFIO0yD8KBx7t/
	 92Gtaxjx6bIrpJr767qFI9u3x1d6CtqjQKQq/ajvUlvLNnm+zvVjUogpR6HNP56Qc4
	 chNj7CUafA0bTcDqKth0w7CAJ55sYrNQyLSK+jvY=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:27 +0000
Subject: [PATCH v2 10/21] scsi: lpfc: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-10-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/scsi/lpfc/lpfc_init.c      | 18 +++++++++---------
 drivers/scsi/lpfc/lpfc_nportdisc.c |  8 ++++----
 drivers/scsi/lpfc/lpfc_nvme.c      |  2 +-
 drivers/scsi/lpfc/lpfc_sli.c       |  4 ++--
 drivers/scsi/lpfc/lpfc_vmid.c      |  2 +-
 5 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 0dd451009b07914450dc70f2c981b690557c1d8c..12666c4c7986ae0bdfaa5c8f040b4ea0be64550d 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -598,7 +598,7 @@ lpfc_config_port_post(struct lpfc_hba *phba)
 		  jiffies + msecs_to_jiffies(1000 * timeout));
 	/* Set up heart beat (HB) timer */
 	mod_timer(&phba->hb_tmofunc,
-		  jiffies + msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL));
+		  jiffies + secs_to_jiffies(LPFC_HB_MBOX_INTERVAL));
 	clear_bit(HBA_HBEAT_INP, &phba->hba_flag);
 	clear_bit(HBA_HBEAT_TMO, &phba->hba_flag);
 	phba->last_completion_time = jiffies;
@@ -1267,7 +1267,7 @@ lpfc_hb_mbox_cmpl(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq)
 	    !test_bit(FC_UNLOADING, &phba->pport->load_flag))
 		mod_timer(&phba->hb_tmofunc,
 			  jiffies +
-			  msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL));
+			  secs_to_jiffies(LPFC_HB_MBOX_INTERVAL));
 	return;
 }
 
@@ -1555,7 +1555,7 @@ lpfc_hb_timeout_handler(struct lpfc_hba *phba)
 		/* If IOs are completing, no need to issue a MBX_HEARTBEAT */
 		spin_lock_irq(&phba->pport->work_port_lock);
 		if (time_after(phba->last_completion_time +
-				msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL),
+				secs_to_jiffies(LPFC_HB_MBOX_INTERVAL),
 				jiffies)) {
 			spin_unlock_irq(&phba->pport->work_port_lock);
 			if (test_bit(HBA_HBEAT_INP, &phba->hba_flag))
@@ -3352,7 +3352,7 @@ lpfc_block_mgmt_io(struct lpfc_hba *phba, int mbx_action)
 	spin_unlock_irqrestore(&phba->hbalock, iflag);
 	if (mbx_action == LPFC_MBX_NO_WAIT)
 		return;
-	timeout = msecs_to_jiffies(LPFC_MBOX_TMO * 1000) + jiffies;
+	timeout = secs_to_jiffies(LPFC_MBOX_TMO) + jiffies;
 	spin_lock_irqsave(&phba->hbalock, iflag);
 	if (phba->sli.mbox_active) {
 		actcmd = phba->sli.mbox_active->u.mb.mbxCommand;
@@ -4939,14 +4939,14 @@ int lpfc_scan_finished(struct Scsi_Host *shost, unsigned long time)
 		stat = 1;
 		goto finished;
 	}
-	if (time >= msecs_to_jiffies(30 * 1000)) {
+	if (time >= secs_to_jiffies(30)) {
 		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
 				"0461 Scanning longer than 30 "
 				"seconds.  Continuing initialization\n");
 		stat = 1;
 		goto finished;
 	}
-	if (time >= msecs_to_jiffies(15 * 1000) &&
+	if (time >= secs_to_jiffies(15) &&
 	    phba->link_state <= LPFC_LINK_DOWN) {
 		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
 				"0465 Link down longer than 15 "
@@ -4960,7 +4960,7 @@ int lpfc_scan_finished(struct Scsi_Host *shost, unsigned long time)
 	if (vport->num_disc_nodes || vport->fc_prli_sent)
 		goto finished;
 	if (!atomic_read(&vport->fc_map_cnt) &&
-	    time < msecs_to_jiffies(2 * 1000))
+	    time < secs_to_jiffies(2))
 		goto finished;
 	if ((phba->sli.sli_flag & LPFC_SLI_MBOX_ACTIVE) != 0)
 		goto finished;
@@ -5194,8 +5194,8 @@ lpfc_vmid_poll(struct timer_list *t)
 		lpfc_worker_wake_up(phba);
 
 	/* restart the timer for the next iteration */
-	mod_timer(&phba->inactive_vmid_poll, jiffies + msecs_to_jiffies(1000 *
-							LPFC_VMID_TIMER));
+	mod_timer(&phba->inactive_vmid_poll,
+		  jiffies + secs_to_jiffies(LPFC_VMID_TIMER));
 }
 
 /**
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index 4574716c8764fba6d6db103f1f287b7cdb87cebc..4185717f35defbde483b4ff9b1d71c9c3d86a07d 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -914,7 +914,7 @@ lpfc_rcv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 		    (ndlp->nlp_state >= NLP_STE_ADISC_ISSUE ||
 		     ndlp->nlp_state <= NLP_STE_PRLI_ISSUE)) {
 			mod_timer(&ndlp->nlp_delayfunc,
-				  jiffies + msecs_to_jiffies(1000 * 1));
+				  jiffies + secs_to_jiffies(1));
 			spin_lock_irq(&ndlp->lock);
 			ndlp->nlp_flag |= NLP_DELAY_TMO;
 			spin_unlock_irq(&ndlp->lock);
@@ -1355,7 +1355,7 @@ lpfc_rcv_els_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 	}
 
 	/* Put ndlp in npr state set plogi timer for 1 sec */
-	mod_timer(&ndlp->nlp_delayfunc, jiffies + msecs_to_jiffies(1000 * 1));
+	mod_timer(&ndlp->nlp_delayfunc, jiffies + secs_to_jiffies(1));
 	spin_lock_irq(&ndlp->lock);
 	ndlp->nlp_flag |= NLP_DELAY_TMO;
 	spin_unlock_irq(&ndlp->lock);
@@ -1975,7 +1975,7 @@ lpfc_cmpl_reglogin_reglogin_issue(struct lpfc_vport *vport,
 
 		/* Put ndlp in npr state set plogi timer for 1 sec */
 		mod_timer(&ndlp->nlp_delayfunc,
-			  jiffies + msecs_to_jiffies(1000 * 1));
+			  jiffies + secs_to_jiffies(1));
 		spin_lock_irq(&ndlp->lock);
 		ndlp->nlp_flag |= NLP_DELAY_TMO;
 		spin_unlock_irq(&ndlp->lock);
@@ -2798,7 +2798,7 @@ lpfc_rcv_prlo_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 
 	if ((ndlp->nlp_flag & NLP_DELAY_TMO) == 0) {
 		mod_timer(&ndlp->nlp_delayfunc,
-			  jiffies + msecs_to_jiffies(1000 * 1));
+			  jiffies + secs_to_jiffies(1));
 		spin_lock_irq(&ndlp->lock);
 		ndlp->nlp_flag |= NLP_DELAY_TMO;
 		ndlp->nlp_flag &= ~NLP_NPR_ADISC;
diff --git a/drivers/scsi/lpfc/lpfc_nvme.c b/drivers/scsi/lpfc/lpfc_nvme.c
index fec23c7237304b471e58194726ff7932b0010385..64d7060e0d4cb628c74c0fa22ece2b956155c1ba 100644
--- a/drivers/scsi/lpfc/lpfc_nvme.c
+++ b/drivers/scsi/lpfc/lpfc_nvme.c
@@ -2236,7 +2236,7 @@ lpfc_nvme_lport_unreg_wait(struct lpfc_vport *vport,
 	 * wait. Print a message if a 10 second wait expires and renew the
 	 * wait. This is unexpected.
 	 */
-	wait_tmo = msecs_to_jiffies(LPFC_NVME_WAIT_TMO * 1000);
+	wait_tmo = secs_to_jiffies(LPFC_NVME_WAIT_TMO);
 	while (true) {
 		ret = wait_for_completion_timeout(lport_unreg_cmp, wait_tmo);
 		if (unlikely(!ret)) {
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 2ec6e55771b45ab70320a9ad1934d5ead2371d4c..b6f19c123e25a00c0eb4444476a7194d6b045824 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -9024,7 +9024,7 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba)
 
 	/* Start heart beat timer */
 	mod_timer(&phba->hb_tmofunc,
-		  jiffies + msecs_to_jiffies(1000 * LPFC_HB_MBOX_INTERVAL));
+		  jiffies + secs_to_jiffies(LPFC_HB_MBOX_INTERVAL));
 	clear_bit(HBA_HBEAT_INP, &phba->hba_flag);
 	clear_bit(HBA_HBEAT_TMO, &phba->hba_flag);
 	phba->last_completion_time = jiffies;
@@ -13335,7 +13335,7 @@ lpfc_sli_mbox_sys_shutdown(struct lpfc_hba *phba, int mbx_action)
 		lpfc_sli_mbox_sys_flush(phba);
 		return;
 	}
-	timeout = msecs_to_jiffies(LPFC_MBOX_TMO * 1000) + jiffies;
+	timeout = secs_to_jiffies(LPFC_MBOX_TMO) + jiffies;
 
 	/* Disable softirqs, including timers from obtaining phba->hbalock */
 	local_bh_disable();
diff --git a/drivers/scsi/lpfc/lpfc_vmid.c b/drivers/scsi/lpfc/lpfc_vmid.c
index cc3e4736f2fe29e1fd4afe221c9c7c40ecf382d4..14dbfe954e423acc47d1b1c80160ff193783f500 100644
--- a/drivers/scsi/lpfc/lpfc_vmid.c
+++ b/drivers/scsi/lpfc/lpfc_vmid.c
@@ -278,7 +278,7 @@ int lpfc_vmid_get_appid(struct lpfc_vport *vport, char *uuid,
 		if (!(vport->phba->pport->vmid_flag & LPFC_VMID_TIMER_ENBLD)) {
 			mod_timer(&vport->phba->inactive_vmid_poll,
 				  jiffies +
-				  msecs_to_jiffies(1000 * LPFC_VMID_TIMER));
+				  secs_to_jiffies(LPFC_VMID_TIMER));
 			vport->phba->pport->vmid_flag |= LPFC_VMID_TIMER_ENBLD;
 		}
 	}

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:35:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:35:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838231.1254269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3yx-00026l-2E; Fri, 15 Nov 2024 21:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838231.1254269; Fri, 15 Nov 2024 21: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 1tC3yw-00026e-UG; Fri, 15 Nov 2024 21:35:58 +0000
Received: by outflank-mailman (input) for mailman id 838231;
 Fri, 15 Nov 2024 21:35: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mP-0007DI-5G
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:23:01 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c7587f0b-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:55 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 391A4206BCED;
 Fri, 15 Nov 2024 13:22: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: c7587f0b-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM3NTg3ZjBiLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1Nzc1LjY1ODczNywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 391A4206BCED
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705766;
	bh=94UWkQUgIE+TIBJCr3TB9bjXju243wFFlCrw1pjugTo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=SFgsUzV2pr+7sgkN9ckclI41KlvZ5rbgTJNvcYfQiJkXt/zfibxMELK/nTIaeiHDO
	 ea+s5uVXRp6XFAaIO7MmvRCgTW3Xe5hl6IpUNHPKOVjiYfv0tTkJJCNkRHRjEL8vOu
	 pgAUpMsv2jfhmvY7krwkZWjWRsRmTp18YKKkcVMM=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:50 +0000
Subject: [PATCH 20/22] ALSA: line6: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-20-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 sound/usb/line6/toneport.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
index ca2c6f5de407ece21ab69a39ed603e3f10069039..c073b38cd6738176fc6a276d05ed553526573341 100644
--- a/sound/usb/line6/toneport.c
+++ b/sound/usb/line6/toneport.c
@@ -386,7 +386,7 @@ static int toneport_setup(struct usb_line6_toneport *toneport)
 		toneport_update_led(toneport);
 
 	schedule_delayed_work(&toneport->line6.startup_work,
-			      msecs_to_jiffies(TONEPORT_PCM_DELAY * 1000));
+			      secs_to_jiffies(TONEPORT_PCM_DELAY));
 	return 0;
 }
 

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:36:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838246.1254279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC3zf-0002xc-CP; Fri, 15 Nov 2024 21:36:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838246.1254279; Fri, 15 Nov 2024 21:36: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 1tC3zf-0002xV-9V; Fri, 15 Nov 2024 21:36:43 +0000
Received: by outflank-mailman (input) for mailman id 838246;
 Fri, 15 Nov 2024 21: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mM-0007DI-4I
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:58 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c64f9314-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:53 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 88E5C20BEBD8;
 Fri, 15 Nov 2024 13:22: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: c64f9314-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM2NGY5MzE0LWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1NzczLjkyMzMyMywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 88E5C20BEBD8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705765;
	bh=kyIMdoD81WSCHIuRs3t1IxAuP6vGJ5R59VD+r/6KKK0=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=hCMeIw/D2+NTRMQJ3FRDpZj2qT/7FbCaDMS9+XIuVvW9RIzS37PIUIxd4jF3sKpOq
	 ONruuQqONZh6MCBIYTovcefPeKanNMMCVBGfAbtnor6PdXfG/kDS1Iyd6np+7CKiaV
	 BV9SmXmoDsx8kPuPU+1F4sBj6APCWtu0lORTDJ94=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:47 +0000
Subject: [PATCH 17/22] staging: vc04_services: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-17-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 133ed15f3dbcc07dc353c22d8522e11a08ee6f46..6bb2562e071c4e623e51852860c682e047f823df 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -59,7 +59,7 @@ static int bcm2835_audio_send_msg_locked(struct bcm2835_audio_instance *instance
 
 	if (wait) {
 		if (!wait_for_completion_timeout(&instance->msg_avail_comp,
-						 msecs_to_jiffies(10 * 1000))) {
+						 secs_to_jiffies(10))) {
 			dev_err(instance->dev,
 				"vchi message timeout, msg=%d\n", m->type);
 			return -ETIMEDOUT;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:37:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:37:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838261.1254288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC40F-0003le-K6; Fri, 15 Nov 2024 21:37:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838261.1254288; Fri, 15 Nov 2024 21:37: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 1tC40F-0003lX-HP; Fri, 15 Nov 2024 21:37:19 +0000
Received: by outflank-mailman (input) for mailman id 838261;
 Fri, 15 Nov 2024 21: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mO-0007DI-56
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:23:00 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c70f7192-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:54 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 06C52206BCEC;
 Fri, 15 Nov 2024 13:22: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: c70f7192-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM3MGY3MTkyLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1Nzc1LjE3NzUzNywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 06C52206BCEC
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705766;
	bh=DChbJW+DaqGHGWE0sMF41tmxT4FReQ1FKA/KDyHL32Y=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=hyUr4x0SmruhyF9c/vR8v3QoqKPaKNqXRHaN80CQA/ABgyerOHG1uC/FlE1BJG1ZJ
	 CRMPkjTTeOQg/xepSHO+SvOjz7TT6Fsw5oiwX3exTqn3S8Lu3Gz0gW082RgBKg6fy9
	 2WD2Rqjpa40SDuhEDGd3pTV1EDPYLPZRKnHzJ7/U=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:49 +0000
Subject: [PATCH 19/22] livepatch: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-19-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
 samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
 samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
--- a/samples/livepatch/livepatch-callbacks-busymod.c
+++ b/samples/livepatch/livepatch-callbacks-busymod.c
@@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
 {
 	pr_info("%s\n", __func__);
 	schedule_delayed_work(&work,
-		msecs_to_jiffies(1000 * 0));
+		secs_to_jiffies(0));
 	return 0;
 }
 
diff --git a/samples/livepatch/livepatch-shadow-fix1.c b/samples/livepatch/livepatch-shadow-fix1.c
index 6701641bf12d454a770e49abeeb0dea92560e55e..948ea1f5760fed2fa27baf478c97cf98ad5c99a8 100644
--- a/samples/livepatch/livepatch-shadow-fix1.c
+++ b/samples/livepatch/livepatch-shadow-fix1.c
@@ -73,7 +73,7 @@ static struct dummy *livepatch_fix1_dummy_alloc(void)
 		return NULL;
 
 	d->jiffies_expire = jiffies +
-		msecs_to_jiffies(1000 * EXPIRE_PERIOD);
+		secs_to_jiffies(EXPIRE_PERIOD);
 
 	/*
 	 * Patch: save the extra memory location into a SV_LEAK shadow
diff --git a/samples/livepatch/livepatch-shadow-mod.c b/samples/livepatch/livepatch-shadow-mod.c
index 7e753b0d2fa611524c9e2adbe02c8fa3e9b6015e..79296e6ccb119f521e86a121623855d841c9fc5e 100644
--- a/samples/livepatch/livepatch-shadow-mod.c
+++ b/samples/livepatch/livepatch-shadow-mod.c
@@ -102,7 +102,7 @@ static __used noinline struct dummy *dummy_alloc(void)
 		return NULL;
 
 	d->jiffies_expire = jiffies +
-		msecs_to_jiffies(1000 * EXPIRE_PERIOD);
+		secs_to_jiffies(EXPIRE_PERIOD);
 
 	/* Oops, forgot to save leak! */
 	leak = kzalloc(sizeof(*leak), GFP_KERNEL);
@@ -153,7 +153,7 @@ static void alloc_work_func(struct work_struct *work)
 	mutex_unlock(&dummy_list_mutex);
 
 	schedule_delayed_work(&alloc_dwork,
-		msecs_to_jiffies(1000 * ALLOC_PERIOD));
+		secs_to_jiffies(ALLOC_PERIOD));
 }
 
 /*
@@ -185,15 +185,15 @@ static void cleanup_work_func(struct work_struct *work)
 	mutex_unlock(&dummy_list_mutex);
 
 	schedule_delayed_work(&cleanup_dwork,
-		msecs_to_jiffies(1000 * CLEANUP_PERIOD));
+		secs_to_jiffies(CLEANUP_PERIOD));
 }
 
 static int livepatch_shadow_mod_init(void)
 {
 	schedule_delayed_work(&alloc_dwork,
-		msecs_to_jiffies(1000 * ALLOC_PERIOD));
+		secs_to_jiffies(ALLOC_PERIOD));
 	schedule_delayed_work(&cleanup_dwork,
-		msecs_to_jiffies(1000 * CLEANUP_PERIOD));
+		secs_to_jiffies(CLEANUP_PERIOD));
 
 	return 0;
 }

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:37:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:37:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838268.1254300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC40b-0004Mq-Tm; Fri, 15 Nov 2024 21:37:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838268.1254300; Fri, 15 Nov 2024 21:37: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 1tC40b-0004Mj-PF; Fri, 15 Nov 2024 21:37:41 +0000
Received: by outflank-mailman (input) for mailman id 838268;
 Fri, 15 Nov 2024 21:37: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q5-0007DY-Vv
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:49 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5125d127-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:46 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id D434E206BCFD;
 Fri, 15 Nov 2024 13: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: 5125d127-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUxMjVkMTI3LWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA3LjAzNjQzOCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D434E206BCFD
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706003;
	bh=GmA2v8FrQkDc3PawrRu1NLBJUu3qRf/naCkvRhlPz0Q=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=PLg1Ut3pMX8AIAjCAjy4bw02khMtlTmOdJICyDZ1qYDkIIeJUIA/Jl8Ax7qK0nzXA
	 69WpHciXaLS10XUYziHT/1hEXLH04lMhVot2lJeh/b4MNSDj4bBTIfL48/xVYbcOQX
	 4FHRZuPnT+9sZJ5HuVZVrIr57njKWIxmoNEf7/uw=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:25 +0000
Subject: [PATCH v2 08/21] drm/xe: Convert timeout to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-8-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/gpu/drm/xe/xe_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index a1987b554a8d2aa42b29301f2853edddfda7fda5..bb3338ef4191e76128611eeb9531c9d2089db85a 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -502,7 +502,7 @@ static int wait_for_lmem_ready(struct xe_device *xe)
 	drm_dbg(&xe->drm, "Waiting for lmem initialization\n");
 
 	start = jiffies;
-	timeout = start + msecs_to_jiffies(60 * 1000); /* 60 sec! */
+	timeout = start + secs_to_jiffies(60); /* 60 sec! */
 
 	do {
 		if (signal_pending(current))

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:37:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:37:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838271.1254305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC40c-0004QE-74; Fri, 15 Nov 2024 21:37:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838271.1254305; Fri, 15 Nov 2024 21: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 1tC40b-0004OB-W7; Fri, 15 Nov 2024 21:37:41 +0000
Received: by outflank-mailman (input) for mailman id 838271;
 Fri, 15 Nov 2024 21:37: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3qB-0007DY-0K
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:55 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5295afc0-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:48 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 3D67F23834C7;
 Fri, 15 Nov 2024 13:26: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: 5295afc0-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUyOTVhZmMwLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA5LjI2OTQyNCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3D67F23834C7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706004;
	bh=YTcGWD0h0ZDgyuZTU2DPl12ZGyATdibDkhzA92Hlf6s=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=kgi+n57xgjrI+4Gqepq6GlPnqUO2pihV1Dud4yQ2c1OZjf2P0xDWwr3M3tR1eBq1a
	 vDVbKDgW5iQn+Dgdp88SCgfK7MyuioOzZEhii+W9EEl6/VO7bUxJqfEKNKtLWDwsua
	 4MilbVg5zRzDEtFWaobQFW22HSHuxVekSW69j0Ag=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:31 +0000
Subject: [PATCH v2 14/21] gve: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-14-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/net/ethernet/google/gve/gve_tx_dqo.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/google/gve/gve_tx_dqo.c b/drivers/net/ethernet/google/gve/gve_tx_dqo.c
index f879426cb5523a7e150f363b5e57b9d472b5817c..394debc62268aadf2579f9b516e045cb48287e7c 100644
--- a/drivers/net/ethernet/google/gve/gve_tx_dqo.c
+++ b/drivers/net/ethernet/google/gve/gve_tx_dqo.c
@@ -1146,8 +1146,7 @@ static void gve_handle_miss_completion(struct gve_priv *priv,
 	/* jiffies can wraparound but time comparisons can handle overflows. */
 	pending_packet->timeout_jiffies =
 			jiffies +
-			msecs_to_jiffies(GVE_REINJECT_COMPL_TIMEOUT *
-					 MSEC_PER_SEC);
+			secs_to_jiffies(GVE_REINJECT_COMPL_TIMEOUT);
 	add_to_list(tx, &tx->dqo_compl.miss_completions, pending_packet);
 
 	*bytes += pending_packet->skb->len;
@@ -1191,8 +1190,7 @@ static void remove_miss_completions(struct gve_priv *priv,
 		pending_packet->state = GVE_PACKET_STATE_TIMED_OUT_COMPL;
 		pending_packet->timeout_jiffies =
 				jiffies +
-				msecs_to_jiffies(GVE_DEALLOCATE_COMPL_TIMEOUT *
-						 MSEC_PER_SEC);
+				secs_to_jiffies(GVE_DEALLOCATE_COMPL_TIMEOUT);
 		/* Maintain pending packet in another list so the packet can be
 		 * unallocated at a later time.
 		 */

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:37:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:37:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838273.1254312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC40c-0004UZ-KZ; Fri, 15 Nov 2024 21:37:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838273.1254312; Fri, 15 Nov 2024 21: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 1tC40c-0004Rf-8F; Fri, 15 Nov 2024 21:37:42 +0000
Received: by outflank-mailman (input) for mailman id 838273;
 Fri, 15 Nov 2024 21:37: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mN-0007DI-4d
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:22:59 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c6a03a26-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:54 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id C5D5B20BEBF7;
 Fri, 15 Nov 2024 13:22: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: c6a03a26-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM2YTAzYTI2LWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1Nzc0LjQ0MTMzOSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C5D5B20BEBF7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705765;
	bh=7RgevXzVOF2wd0QHaqg8sKSXBh3tNnxEZNLAJYHO4/0=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=LFvj1omrNM0zZtGffox7sgW5nc9dJZdVTA81Dj/wcPv/4s/wuIVOvUvfZbveDvw4y
	 FuotwM7kePQ1S+NtqBMYs5hCFuKfxjTKCfLm2hLOBes2vr8zw1wp6TV7hkDlej16jx
	 Fb+baeYINJlZ9BwwcItDzf5jhfC0bccWbyd+vUuI=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:48 +0000
Subject: [PATCH 18/22] ceph: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-18-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 fs/ceph/quota.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ceph/quota.c b/fs/ceph/quota.c
index 06ee397e0c3a6172592e62dba95cd267cfff0db1..d90eda19bcc4618f98bfed833c10a6071cf2e2ac 100644
--- a/fs/ceph/quota.c
+++ b/fs/ceph/quota.c
@@ -166,7 +166,7 @@ static struct inode *lookup_quotarealm_inode(struct ceph_mds_client *mdsc,
 	if (IS_ERR(in)) {
 		doutc(cl, "Can't lookup inode %llx (err: %ld)\n", realm->ino,
 		      PTR_ERR(in));
-		qri->timeout = jiffies + msecs_to_jiffies(60 * 1000); /* XXX */
+		qri->timeout = jiffies + secs_to_jiffies(60); /* XXX */
 	} else {
 		qri->timeout = 0;
 		qri->inode = in;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:38:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:38:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838292.1254328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC41F-0006EV-Px; Fri, 15 Nov 2024 21:38:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838292.1254328; Fri, 15 Nov 2024 21: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 1tC41F-0006EO-NF; Fri, 15 Nov 2024 21:38:21 +0000
Received: by outflank-mailman (input) for mailman id 838292;
 Fri, 15 Nov 2024 21: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3qA-0007DY-05
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:54 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5268d8cc-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:48 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id E651E23718AC;
 Fri, 15 Nov 2024 13:26: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: 5268d8cc-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUyNjhkOGNjLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA5LjE0MDk1NCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E651E23718AC
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706004;
	bh=pCX0EpdqmyNkdZPLk4Z0q7m89NufhvHb1Y+2Mrmnnrk=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=eAVIrYLNHkRW1opV+l10sI01k9fp5RPobV2nEm7OQtZTXvL1OZpViQrABNURt8i3R
	 Lt5oz4EgCq0BgTDEpnRIgtHazGUHt44mhOWeQa6X66HXQwFE3odFdSj0nTsElRySJE
	 uoqOVSbVkxhvj88d1jkAwyWIgOOXRrS//ir9JXro=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:30 +0000
Subject: [PATCH v2 13/21] xen/blkback: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-13-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/block/xen-blkback/blkback.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 838064593f62b75f3d937c0c041ea78dedbbaf84..a7c2b04ab943de9cbd69b596aad177a0534f7762 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -544,7 +544,7 @@ static void print_stats(struct xen_blkif_ring *ring)
 		 ring->st_rd_req, ring->st_wr_req,
 		 ring->st_f_req, ring->st_ds_req,
 		 ring->persistent_gnt_c, max_pgrants);
-	ring->st_print = jiffies + msecs_to_jiffies(10 * 1000);
+	ring->st_print = jiffies + secs_to_jiffies(10);
 	ring->st_rd_req = 0;
 	ring->st_wr_req = 0;
 	ring->st_oo_req = 0;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:39:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:39:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838308.1254339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC427-000767-3g; Fri, 15 Nov 2024 21:39:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838308.1254339; Fri, 15 Nov 2024 21:39: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 1tC426-000760-WB; Fri, 15 Nov 2024 21:39:14 +0000
Received: by outflank-mailman (input) for mailman id 838308;
 Fri, 15 Nov 2024 21:39: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3mR-0007DI-5c
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:23:03 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c8203873-a397-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:22:56 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id A22AA206BCEE;
 Fri, 15 Nov 2024 13:22: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: c8203873-a397-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM4MjAzODczLWEzOTctMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA1Nzc2Ljk2ODc4Niwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A22AA206BCEE
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731705766;
	bh=8an4FgjBOt1s+5Gzupd7mugSuJBcUUHR7ha3x9HR0Ag=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=iplUk1Nduoh9asilHgzn6HQycVN1VFv/mFBOdW0Mpd4aq8sOOirOgItcWBMTidM3Q
	 FvxfPpyBxEWdptBjBV3AGgplTOjNGMgWDICXRk9fFUvguk5wrwqFw5sjChgX9PZPt7
	 /h1a1SkEI1LPNYXASotI6c+cUqHfSyHVemxnfBAU=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:22:52 +0000
Subject: [PATCH 22/22] jiffies: Define secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v1-22-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>, 
 Michael Kelley <mhklinux@outlook.com>, Thomas Gleixner <tglx@linutronix.de>, 
 Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
X-Mailer: b4 0.14.2

secs_to_jiffies() is defined in hci_event.c and cannot be reused by
other call sites. Hoist it into the core code to allow conversion of the
~1150 usages of msecs_to_jiffies() that either:

 - use a multiplier value of 1000 or equivalently MSEC_PER_SEC, or
 - have timeouts that are denominated in seconds (i.e. end in 000)

It's implemented as a macro to allow usage in static initializers.

This will also allow conversion of yet more sites that use (sec * HZ)
directly, and improve their readability.

Suggested-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Link: https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-1-9ba123facf88@linux.microsoft.com
---
 include/linux/jiffies.h   | 13 +++++++++++++
 net/bluetooth/hci_event.c |  2 --
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
index 1220f0fbe5bf9fb6c559b4efd603db3e97db9b65..0a7382753c6b636fe285599953e314fb7479ea01 100644
--- a/include/linux/jiffies.h
+++ b/include/linux/jiffies.h
@@ -526,6 +526,19 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m)
 	}
 }
 
+/**
+ * secs_to_jiffies: - convert seconds to jiffies
+ * @_secs: time in seconds
+ *
+ * Conversion is done by simple multiplication with HZ
+ *
+ * secs_to_jiffies() is defined as a macro rather than a static inline
+ * function so it can be used in static initializers.
+ *
+ * Return: jiffies value
+ */
+#define secs_to_jiffies(_secs) ((_secs) * HZ)
+
 extern unsigned long __usecs_to_jiffies(const unsigned int u);
 #if !(USEC_PER_SEC % HZ)
 static inline unsigned long _usecs_to_jiffies(const unsigned int u)
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 0bbad90ddd6f87e87c03859bae48a7901d39b634..7b35c58bbbeb79f2b50a02212771fb283ba5643d 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -42,8 +42,6 @@
 #define ZERO_KEY "\x00\x00\x00\x00\x00\x00\x00\x00" \
 		 "\x00\x00\x00\x00\x00\x00\x00\x00"
 
-#define secs_to_jiffies(_secs) msecs_to_jiffies((_secs) * 1000)
-
 /* Handle HCI Event packets */
 
 static void *hci_ev_skb_pull(struct hci_dev *hdev, struct sk_buff *skb,

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:40:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838325.1254349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC43Y-0000cU-DV; Fri, 15 Nov 2024 21:40:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838325.1254349; Fri, 15 Nov 2024 21:40: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 1tC43Y-0000cN-9y; Fri, 15 Nov 2024 21:40:44 +0000
Received: by outflank-mailman (input) for mailman id 838325;
 Fri, 15 Nov 2024 21:40: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q5-0007AP-Kp
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:49 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5157ade1-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:47 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 17E88206BCFE;
 Fri, 15 Nov 2024 13:26: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: 5157ade1-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUxNTdhZGUxLWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDA3LjM0MTA2NSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 17E88206BCFE
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706003;
	bh=z5d0KiQ+mxHfS/dtMsbc4ttBd/lyUqPHYPOKqCM1B/M=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=Qzjy8jhTqEhPkpbtMzhjO4pQ41WosaCc3rHXK7isQANvdHykkDrpnsXw2iEyDYrKZ
	 bivctPWn2ufOhidk0VIZ+JFuRb3AziKQEhYq/E0XKlSC0nh99MCwSAdmHtPz39M16d
	 mbtSMAjjgTqYd5iB3/X8WKQ1SIjBJafcvQ4z4Hts=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:26 +0000
Subject: [PATCH v2 09/21] drm/etnaviv: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-9-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c b/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
index 721d633aece9d4c81f0019e4c55884f26ee61c60..0f5a2c885d0ab7029c7248e15d6ea3c31823b782 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
@@ -100,7 +100,7 @@ int etnaviv_cmdbuf_init(struct etnaviv_cmdbuf_suballoc *suballoc,
 		mutex_unlock(&suballoc->lock);
 		ret = wait_event_interruptible_timeout(suballoc->free_event,
 						       suballoc->free_space,
-						       msecs_to_jiffies(10 * 1000));
+						       secs_to_jiffies(10));
 		if (!ret) {
 			dev_err(suballoc->dev,
 				"Timeout waiting for cmdbuf space\n");

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:40:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838327.1254358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC43e-0000xg-NF; Fri, 15 Nov 2024 21:40:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838327.1254358; Fri, 15 Nov 2024 21:40: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 1tC43e-0000xW-KZ; Fri, 15 Nov 2024 21:40:50 +0000
Received: by outflank-mailman (input) for mailman id 838327;
 Fri, 15 Nov 2024 21:40: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q6-0007AP-L5
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:50 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5201f946-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:47 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id B08AC2174E41;
 Fri, 15 Nov 2024 13:26: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: 5201f946-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUyMDFmOTQ2LWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDA4LjI5NTE1Miwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B08AC2174E41
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706003;
	bh=KRAKVqkmYHFKsYpIbPFWmWMGYVvfzvIpOOiOmhExdwo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=osivBUZmIsQLl2jL+ZDQlIu+P5dhzLcQCyWk2W1AvFXRp9qFe1ScWwkuHagBoxYIx
	 W4f74U2umtM+/izGX31p0lh8kwNEI1l5coBYaWK3pMcVhuLLHE4asQeuLREQ90Mb9z
	 ups8j6Ezd0JumeEqkyYkZ8sddPZGhvHCQNewXQdE=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:29 +0000
Subject: [PATCH v2 12/21] scsi: pm8001: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-12-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/scsi/pm8001/pm8001_init.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
index 33e1eba62ca12c2555419197ecdbebad817e4a6d..be88890716cc152b4687edf5e204d14bd177e188 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -734,7 +734,7 @@ static int pm8001_init_sas_add(struct pm8001_hba_info *pm8001_ha)
 		return -EIO;
 	}
 	time_remaining = wait_for_completion_timeout(&completion,
-				msecs_to_jiffies(60*1000)); // 1 min
+				secs_to_jiffies(60)); // 1 min
 	if (!time_remaining) {
 		kfree(payload.func_specific);
 		pm8001_dbg(pm8001_ha, FAIL, "get_nvmd_req timeout\n");

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:41:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:41:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838333.1254369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC43w-0001hr-0l; Fri, 15 Nov 2024 21:41:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838333.1254369; Fri, 15 Nov 2024 21:41: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 1tC43v-0001hf-TK; Fri, 15 Nov 2024 21:41:07 +0000
Received: by outflank-mailman (input) for mailman id 838333;
 Fri, 15 Nov 2024 21:41: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3qB-0007AP-Ly
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:55 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 54b17fd2-a398-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:26:52 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 956492064AE3;
 Fri, 15 Nov 2024 13:26: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: 54b17fd2-a398-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU0YjE3ZmQyLWEzOTgtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2MDEyLjgwMTI2LCJzZW5kZXIiOiJlYWhhcmloYUBsaW51eC5taWNyb3NvZnQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 956492064AE3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706005;
	bh=94UWkQUgIE+TIBJCr3TB9bjXju243wFFlCrw1pjugTo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=mNHdIox58am1vKiSlapYyQSd/IB/puFk5Gi1H5FYHJ3c7VwmewWXtYwpq8qZgM5VC
	 FsoAzIfa/5Dmw/g1Wnz5pM6x92x9pSsv8KUjV1VC6j6e14jtQDSlKdd0OQNegI9M/0
	 o4hIDKt2X5QgI0I8DrdvAcv+VpyUUXxnbDtHt4Jg=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:37 +0000
Subject: [PATCH v2 20/21] ALSA: line6: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-20-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 sound/usb/line6/toneport.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
index ca2c6f5de407ece21ab69a39ed603e3f10069039..c073b38cd6738176fc6a276d05ed553526573341 100644
--- a/sound/usb/line6/toneport.c
+++ b/sound/usb/line6/toneport.c
@@ -386,7 +386,7 @@ static int toneport_setup(struct usb_line6_toneport *toneport)
 		toneport_update_led(toneport);
 
 	schedule_delayed_work(&toneport->line6.startup_work,
-			      msecs_to_jiffies(TONEPORT_PCM_DELAY * 1000));
+			      secs_to_jiffies(TONEPORT_PCM_DELAY));
 	return 0;
 }
 

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:41:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838348.1254378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC44B-0002Y8-8D; Fri, 15 Nov 2024 21:41:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838348.1254378; Fri, 15 Nov 2024 21:41: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 1tC44B-0002Y1-5X; Fri, 15 Nov 2024 21:41:23 +0000
Received: by outflank-mailman (input) for mailman id 838348;
 Fri, 15 Nov 2024 21:41: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q7-0007DY-Vw
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:51 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 51c1f809-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:47 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 7C145212B5B0;
 Fri, 15 Nov 2024 13:26: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: 51c1f809-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUxYzFmODA5LWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA4LjA1ODI4Mywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 7C145212B5B0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706003;
	bh=Dy1gfF2eVFD/Tcz72rvAOzLjHn7ysyv4CietmA0q798=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=p+FtT/4XQtszN++J1IXw9Qg9gEyc5H8E7fVGDQyv4rc8vpXVJrTKn1ZKVJgsHZbWP
	 rjXuixLOb+i3KZKhonTBwFBpoEJxLum/RjHrON0Ke//ZO6XKQOf6fpWCnO2rTRIF8v
	 YazfwYiTUNbn8bgQFWgiljV9mm+EMtTeilLEfIdI=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:28 +0000
Subject: [PATCH v2 11/21] scsi: arcmsr: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-11-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/scsi/arcmsr/arcmsr_hba.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
index 35860c61468b02cdb59aa59376ad5ea9be60d12b..fd797e2785490839713f9242014f0adefccc6ddd 100644
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -1044,7 +1044,7 @@ static void arcmsr_init_get_devmap_timer(struct AdapterControlBlock *pacb)
 static void arcmsr_init_set_datetime_timer(struct AdapterControlBlock *pacb)
 {
 	timer_setup(&pacb->refresh_timer, arcmsr_set_iop_datetime, 0);
-	pacb->refresh_timer.expires = jiffies + msecs_to_jiffies(60 * 1000);
+	pacb->refresh_timer.expires = jiffies + secs_to_jiffies(60);
 	add_timer(&pacb->refresh_timer);
 }
 

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:41:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:41:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838352.1254389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC44G-00037j-HO; Fri, 15 Nov 2024 21:41:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838352.1254389; Fri, 15 Nov 2024 21: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 1tC44G-00037Y-Cc; Fri, 15 Nov 2024 21:41:28 +0000
Received: by outflank-mailman (input) for mailman id 838352;
 Fri, 15 Nov 2024 21:41: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3qC-0007DY-0L
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:56 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 53a18b54-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:50 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id E068E2064AE1;
 Fri, 15 Nov 2024 13:26: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: 53a18b54-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUzYTE4YjU0LWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDExLjAzMjUzNiwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E068E2064AE1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706005;
	bh=kyIMdoD81WSCHIuRs3t1IxAuP6vGJ5R59VD+r/6KKK0=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=OvSN4ExTI3ztYwv8z22+okCfYqet5Vamjrrd8DLniE8bXBLrrqlExhm9XqqhqVQAv
	 K9X4eAD6Lklhy7dtiZRCgteR1YNNFWOyXJy0qOlBw+SNmEx9GYlOniMke213AVuk1H
	 UgCfCoB89XARJTc4CqTz96UEBf2hkM8Effwv9vsg=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:34 +0000
Subject: [PATCH v2 17/21] staging: vc04_services: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-17-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 133ed15f3dbcc07dc353c22d8522e11a08ee6f46..6bb2562e071c4e623e51852860c682e047f823df 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -59,7 +59,7 @@ static int bcm2835_audio_send_msg_locked(struct bcm2835_audio_instance *instance
 
 	if (wait) {
 		if (!wait_for_completion_timeout(&instance->msg_avail_comp,
-						 msecs_to_jiffies(10 * 1000))) {
+						 secs_to_jiffies(10))) {
 			dev_err(instance->dev,
 				"vchi message timeout, msg=%d\n", m->type);
 			return -ETIMEDOUT;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:41:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:41:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838353.1254399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC44H-0003R8-Oc; Fri, 15 Nov 2024 21:41:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838353.1254399; Fri, 15 Nov 2024 21:41: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 1tC44H-0003Qw-Kj; Fri, 15 Nov 2024 21:41:29 +0000
Received: by outflank-mailman (input) for mailman id 838353;
 Fri, 15 Nov 2024 21:41: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3qE-0007DY-0j
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:58 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5523ca8d-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:53 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id CCEDA2064AE4;
 Fri, 15 Nov 2024 13:26: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: 5523ca8d-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU1MjNjYThkLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDEzLjU1NDYzMSwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com CCEDA2064AE4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706005;
	bh=C//qZdfJfhN40N7nu/AQ5wmq+hj+onzvFzX2KrlsiOc=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=HJAgH8LJ0t02ke9L/fBSseVg4mPwyzRUYKkcIBNh0PXg4ks/yx3FEqq7Ab8V80mCx
	 twfijyV8trWsX1EHtCAISl/otYzpQq+n69SN9Jzv1KZ/q2FjsSm6OPzwLcdwZ6tTZp
	 t/rVqrGYFsKA1powLrxYtcm95fdENEeogYK2qDWs=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:38 +0000
Subject: [PATCH v2 21/21] nfp: Convert timeouts to secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-21-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 6e0929af0f725b2b3855c69bbe894e6626c566b3..6925ad985fc9e2d5641feea41ff277107a8dee9c 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -2779,7 +2779,7 @@ static void nfp_net_netdev_init(struct nfp_net *nn)
 		break;
 	}
 
-	netdev->watchdog_timeo = msecs_to_jiffies(5 * 1000);
+	netdev->watchdog_timeo = secs_to_jiffies(5);
 
 	/* MTU range: 68 - hw-specific max */
 	netdev->min_mtu = ETH_MIN_MTU;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:41:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:41:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838355.1254405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC44I-0003Ue-4V; Fri, 15 Nov 2024 21:41:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838355.1254405; Fri, 15 Nov 2024 21:41: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 1tC44H-0003UW-U9; Fri, 15 Nov 2024 21:41:29 +0000
Received: by outflank-mailman (input) for mailman id 838355;
 Fri, 15 Nov 2024 21:41: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC3q4-0007DY-Vj
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:26:48 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5054a1a1-a398-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 22:26:45 +0100 (CET)
Received: from eahariha-devbox.internal.cloudapp.net (unknown [40.91.112.99])
 by linux.microsoft.com (Postfix) with ESMTPSA id 5DA5E206BCFB;
 Fri, 15 Nov 2024 13: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: 5054a1a1-a398-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUwNTRhMWExLWEzOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA2MDA1LjY1NjMxOCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5DA5E206BCFB
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731706002;
	bh=cDb5q9ey4rgvzuTMFsMkjW3R4ZHiX3a+lRd3JDjV6+Q=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:From;
	b=NO84SskjrWC/WFvKvGdiMiujlTtBQUCv9VY6UYFsNxghNS3m5K63jnaoGusNsUnee
	 5tLTM7woyBZaUNuUFMB3oWVBMOozS3J1y7PPugpo3cvaz/QXUdeGix3ePT8vCN2oIN
	 gQ1ZKgfEKCkg+XmnS+/V2pj/LNnJYminStxSf4BY=
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Date: Fri, 15 Nov 2024 21:26:23 +0000
Subject: [PATCH v2 06/21] mm: kmemleak: Convert timeouts to
 secs_to_jiffies()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241115-converge-secs-to-jiffies-v2-6-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>, 
 Jozsef Kadlecsik <kadlec@netfilter.org>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, 
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
 Haojian Zhuang <haojian.zhuang@gmail.com>, 
 Robert Jarzmik <robert.jarzmik@free.fr>, 
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
 Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
 Oded Gabbay <ogabbay@kernel.org>, 
 Lucas De Marchi <lucas.demarchi@intel.com>, 
 =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
 Rodrigo Vivi <rodrigo.vivi@intel.com>, 
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
 Jeroen de Borst <jeroendb@google.com>, 
 Praveen Kaligineedi <pkaligineedi@google.com>, 
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
 James Smart <james.smart@broadcom.com>, 
 Dick Kennedy <dick.kennedy@broadcom.com>, 
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
 Jeff Johnson <jjohnson@kernel.org>, 
 Catalin Marinas <catalin.marinas@arm.com>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Jack Wang <jinpu.wang@cloud.ionos.com>, 
 Marcel Holtmann <marcel@holtmann.org>, 
 Johan Hedberg <johan.hedberg@gmail.com>, 
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
 Russell King <linux+etnaviv@armlinux.org.uk>, 
 Christian Gmeiner <christian.gmeiner@gmail.com>, 
 Louis Peens <louis.peens@corigine.com>, 
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
 Christophe Leroy <christophe.leroy@csgroup.eu>, 
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org, 
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
 linuxppc-dev@lists.ozlabs.org, 
 Anna-Maria Behnsen <anna-maria@linutronix.de>, 
 Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: b4 0.14.2

Changes made with the following Coccinelle rules:

@@ constant C; @@

- msecs_to_jiffies(C * 1000)
+ secs_to_jiffies(C)

@@ constant C; @@

- msecs_to_jiffies(C * MSEC_PER_SEC)
+ secs_to_jiffies(C)

Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
 mm/kmemleak.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 0400f5e8ac60de555f43d85f1d36f67e48b4ebed..2c099d0819b1896390b842af76069a46bffabc23 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -1816,7 +1816,7 @@ static int kmemleak_scan_thread(void *arg)
 	 * Wait before the first scan to allow the system to fully initialize.
 	 */
 	if (first_run) {
-		signed long timeout = msecs_to_jiffies(SECS_FIRST_SCAN * 1000);
+		signed long timeout = secs_to_jiffies(SECS_FIRST_SCAN);
 		first_run = 0;
 		while (timeout && !kthread_should_stop())
 			timeout = schedule_timeout_interruptible(timeout);
@@ -2202,7 +2202,7 @@ void __init kmemleak_init(void)
 		return;
 
 	jiffies_min_age = msecs_to_jiffies(MSECS_MIN_AGE);
-	jiffies_scan_wait = msecs_to_jiffies(SECS_SCAN_WAIT * 1000);
+	jiffies_scan_wait = secs_to_jiffies(SECS_SCAN_WAIT);
 
 	object_cache = KMEM_CACHE(kmemleak_object, SLAB_NOLEAKTRACE);
 	scan_area_cache = KMEM_CACHE(kmemleak_scan_area, SLAB_NOLEAKTRACE);

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 21:51:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 21:51:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838418.1254419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC4DO-0001SC-6y; Fri, 15 Nov 2024 21:50:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838418.1254419; Fri, 15 Nov 2024 21:50: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 1tC4DO-0001S5-4G; Fri, 15 Nov 2024 21:50:54 +0000
Received: by outflank-mailman (input) for mailman id 838418;
 Fri, 15 Nov 2024 21: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=DylP=SK=quicinc.com=quic_jjohnson@srs-se1.protection.inumbo.net>)
 id 1tC44t-0001Lo-RJ
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 21:42:07 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73e346ee-a39a-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 22:42:05 +0100 (CET)
Received: from pps.filterd (m0279862.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AF9ZiSk002915;
 Fri, 15 Nov 2024 21:41:25 GMT
Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com
 [129.46.96.20])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 42x3t9hss4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 15 Nov 2024 21:41:25 +0000 (GMT)
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
 [10.47.209.196])
 by NALASPPMTA05.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 4AFLfNwS024141
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 15 Nov 2024 21:41:23 GMT
Received: from [10.111.176.23] (10.49.16.6) by nalasex01a.na.qualcomm.com
 (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Fri, 15 Nov
 2024 13:41: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: 73e346ee-a39a-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwNS4yMjAuMTY4LjEzMSIsImhlbG8iOiJteDBhLTAwMzFkZjAxLnBwaG9zdGVkLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjczZTM0NmVlLWEzOWEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzA2OTI1LjY0Mzk1MSwic2VuZGVyIjoicXVpY19qam9obnNvbkBxdWljaW5jLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	mFhCA+NOYuk8bYXlsYuRwz8vDo6+kwMYACTSSoIzGGw=; b=W4A/Q+ovpyTMIbbC
	w26T8oqCxB9r85d4RPZa3xoW41U9P08tasWS2HjZmNxLpaZMCdFv4De8U/XKX5Ii
	IYkJQKbRx4TJT1R6RWAIOAzblwPFrJTsVeQxbxKt5riUTGA0w8UBwMCVbKDwIQ7g
	ISsGkWeC4L59nJ8h778Lvk5M5KO69ajgOUlmV45tFrqZ9KACxjzP5FKJrF5phUNk
	aUYstcB8qCqhT4tXQvyeXJH2o0NfIC4Lj+vL5uwKkItKv88Dh24rsZEt/oRxzZ85
	xxLIYdyHoTcBgqiu7oL6S1NEplQ2R7qnhAkPstvLz+c3IgBTmuIVftLZa5BkbSxD
	OJNvxw==
Message-ID: <3ac480f5-549b-4449-baa9-f766e074c409@quicinc.com>
Date: Fri, 15 Nov 2024 13:41:19 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
        Pablo Neira Ayuso
	<pablo@netfilter.org>,
        Jozsef Kadlecsik <kadlec@netfilter.org>,
        "David S.
 Miller" <davem@davemloft.net>,
        Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>,
        Paolo Abeni <pabeni@redhat.com>, Simon Horman
	<horms@kernel.org>,
        Julia Lawall <Julia.Lawall@inria.fr>,
        Nicolas Palix
	<nicolas.palix@imag.fr>,
        Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang
	<haojian.zhuang@gmail.com>,
        Robert Jarzmik <robert.jarzmik@free.fr>,
        Russell
 King <linux@armlinux.org.uk>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily
 Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle
	<svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
        Oded Gabbay
	<ogabbay@kernel.org>,
        Lucas De Marchi <lucas.demarchi@intel.com>,
        =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
        Rodrigo
 Vivi <rodrigo.vivi@intel.com>,
        Maarten Lankhorst
	<maarten.lankhorst@linux.intel.com>,
        Maxime Ripard <mripard@kernel.org>,
        Thomas Zimmermann <tzimmermann@suse.de>,
        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
        Jeroen de Borst <jeroendb@google.com>,
        Praveen Kaligineedi <pkaligineedi@google.com>,
        Shailend Chand
	<shailend@google.com>,
        Andrew Lunn <andrew+netdev@lunn.ch>,
        James Smart
	<james.smart@broadcom.com>,
        Dick Kennedy <dick.kennedy@broadcom.com>,
        "James
 E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
        "Martin K. Petersen"
	<martin.petersen@oracle.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>,
        Jens Axboe <axboe@kernel.dk>, Kalle Valo
	<kvalo@kernel.org>,
        Jeff Johnson <jjohnson@kernel.org>,
        Catalin Marinas
	<catalin.marinas@arm.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Jack
 Wang <jinpu.wang@cloud.ionos.com>,
        Marcel Holtmann <marcel@holtmann.org>,
        Johan Hedberg <johan.hedberg@gmail.com>,
        Luiz Augusto von Dentz
	<luiz.dentz@gmail.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Florian Fainelli <florian.fainelli@broadcom.com>,
        Ray Jui
	<rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
        Broadcom internal
 kernel review list <bcm-kernel-feedback-list@broadcom.com>,
        Xiubo Li
	<xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
        Josh Poimboeuf
	<jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>,
        Miroslav Benes
	<mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>,
        Joe Lawrence
	<joe.lawrence@redhat.com>,
        Jaroslav Kysela <perex@perex.cz>, Takashi Iwai
	<tiwai@suse.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Russell King
	<linux+etnaviv@armlinux.org.uk>,
        Christian Gmeiner
	<christian.gmeiner@gmail.com>,
        Louis Peens <louis.peens@corigine.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Naveen N Rao
	<naveen@kernel.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>
CC: <netfilter-devel@vger.kernel.org>, <coreteam@netfilter.org>,
        <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        <cocci@inria.fr>, <linux-arm-kernel@lists.infradead.org>,
        <linux-s390@vger.kernel.org>, <dri-devel@lists.freedesktop.org>,
        <intel-xe@lists.freedesktop.org>, <linux-scsi@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, <linux-block@vger.kernel.org>,
        <linux-wireless@vger.kernel.org>, <ath11k@lists.infradead.org>,
        <linux-mm@kvack.org>, <linux-bluetooth@vger.kernel.org>,
        <linux-staging@lists.linux.dev>,
        <linux-rpi-kernel@lists.infradead.org>, <ceph-devel@vger.kernel.org>,
        <live-patching@vger.kernel.org>, <linux-sound@vger.kernel.org>,
        <etnaviv@lists.freedesktop.org>, <oss-drivers@corigine.com>,
        <linuxppc-dev@lists.ozlabs.org>,
        Anna-Maria Behnsen
	<anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <10ee4e8f-d8b4-4502-a5e2-0657802aeb11@linux.microsoft.com>
From: Jeff Johnson <quic_jjohnson@quicinc.com>
Content-Language: en-US
In-Reply-To: <10ee4e8f-d8b4-4502-a5e2-0657802aeb11@linux.microsoft.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.49.16.6]
X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) To
 nalasex01a.na.qualcomm.com (10.47.209.196)
X-QCInternal: smtphost
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085
X-Proofpoint-GUID: S_kpc-fxOeYei4jGvmu7Zy3HQH9VEGzh
X-Proofpoint-ORIG-GUID: S_kpc-fxOeYei4jGvmu7Zy3HQH9VEGzh
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29
 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0
 malwarescore=0 impostorscore=0 priorityscore=1501 clxscore=1015 mlxscore=0
 mlxlogscore=999 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2409260000
 definitions=main-2411150183

On 11/15/2024 1:29 PM, Easwar Hariharan wrote:
> On 11/15/2024 1:26 PM, Easwar Hariharan wrote:
>> This is a series that follows up on my previous series to introduce
>> secs_to_jiffies() and convert a few initial users.[1] In the review for
>> that series, Anna-Maria requested converting other users with
>> Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
>> that use the multiply pattern of either of:
>> - msecs_to_jiffies(N*1000), or
>> - msecs_to_jiffies(N*MSEC_PER_SEC)
>>
>> The entire conversion is made with Coccinelle in the script added in
>> patch 2. Some changes suggested by Coccinelle have been deferred to
>> later parts that will address other possible variant patterns.
>>
>> CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>>
>> [1] https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com/
>> [2] https://lore.kernel.org/all/8734kngfni.fsf@somnus/
>>
>> ---
>> Changes in v2:
>> - EDITME: describe what is new in this series revision.
>> - EDITME: use bulletpoints and terse descriptions.
>> - Link to v1: https://lore.kernel.org/r/20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com
>>
> 
> Apologies, I missed out on editing the changelog here. v1 included a
> patch that's already been accepted, there are no other changes in v2.
> 
> Thanks,
> Easwar

How do you expect this series to land since it overlaps a large number of
maintainer trees? Do you have a maintainer who has volunteered to take the
series and the maintainers should just ack? Or do you want the maintainers to
take the individual patches that are applicable to them?

/jeff


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 22:15:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 22:15:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838445.1254428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC4b0-0001zH-4B; Fri, 15 Nov 2024 22:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838445.1254428; Fri, 15 Nov 2024 22:15: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 1tC4b0-0001zA-1Y; Fri, 15 Nov 2024 22:15:18 +0000
Received: by outflank-mailman (input) for mailman id 838445;
 Fri, 15 Nov 2024 22:15: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=5OXi=SK=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC4ay-0001z4-T0
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 22:15:16 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 150bbb35-a39f-11ef-99a3-01e77a169b0f;
 Fri, 15 Nov 2024 23:15:12 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id C2E092064AEB;
 Fri, 15 Nov 2024 14:15: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: 150bbb35-a39f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjE1MGJiYjM1LWEzOWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzA4OTEyLjczMTExMiwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C2E092064AEB
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731708911;
	bh=3z7ywabUJ27i2rb14B4LEGDccer8KYu9+MGXqf4uX30=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=N1g55SdNOAVrXtoAUWPnvUkB3x2fHI9b6jafO92eRdbbD4Gte6s/kvOokfmkgYHJe
	 Frz5kbgdiLksPpFFaWRXGFZ7VcwJJIP77+3HbEyB4bGSyYhL140G+m7AP2fdg7ax7k
	 BFhXHlM0RPRrW6JGtgd18IntrfjEtsdFiu0GVoGc=
Message-ID: <8127a2e6-fa62-4c85-b7ed-24748cc9e285@linux.microsoft.com>
Date: Fri, 15 Nov 2024 14:15:08 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: eahariha@linux.microsoft.com, netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen
 <anna-maria@linutronix.de>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 Naveen N Rao <naveen@kernel.org>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Louis Peens <louis.peens@corigine.com>, Nicholas Piggin <npiggin@gmail.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Lucas Stach <l.stach@pengutronix.de>, Takashi Iwai <tiwai@suse.com>,
 Jaroslav Kysela <perex@perex.cz>, Petr Mladek <pmladek@suse.com>,
 Joe Lawrence <joe.lawrence@redhat.com>, Miroslav Benes <mbenes@suse.cz>,
 Jiri Kosina <jikos@kernel.org>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Ilya Dryomov <idryomov@gmail.com>, Xiubo Li <xiubli@redhat.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>,
 Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>,
 Florian Fainelli <florian.fainelli@broadcom.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Johan Hedberg <johan.hedberg@gmail.com>, Jens Axboe <axboe@kernel.dk>,
 Marcel Holtmann <marcel@holtmann.org>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jack Wang <jinpu.wang@cloud.ionos.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Andrew Lunn <andrew+netdev@lunn.ch>, James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 Maxime Ripard <mripard@kernel.org>, David Airlie <airlied@gmail.com>,
 Simona Vetter <simona@ffwll.ch>, Jeroen de Borst <jeroendb@google.com>,
 Shailend Chand <shailend@google.com>, Thomas Zimmermann
 <tzimmermann@suse.de>, Maarten Lankhorst
 <maarten.lankhorst@linux.intel.com>, Rodrigo Vivi <rodrigo.vivi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Lucas De Marchi <lucas.demarchi@intel.com>, Oded Gabbay
 <ogabbay@kernel.org>, Ofir Bitton <obitton@habana.ai>,
 Sven Schnelle <svens@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>, Vasily Gorbik
 <gor@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>,
 Russell King <linux@armlinux.org.uk>, Robert Jarzmik
 <robert.jarzmik@free.fr>, Haojian Zhuang <haojian.zhuang@gmail.com>,
 Daniel Mack <daniel@zonque.org>, Nicolas Palix <nicolas.palix@imag.fr>,
 Julia Lawall <Julia.Lawall@inria.fr>, Simon Horman <horms@kernel.org>,
 Paolo Abeni <pabeni@redhat.com>, Jakub Kicinski <kuba@kernel.org>,
 Eric Dumazet <edumazet@google.com>, "David S. Miller" <davem@davemloft.net>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 Pablo Neira Ayuso <pablo@netfilter.org>
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
To: Jeff Johnson <quic_jjohnson@quicinc.com>,
 Thomas Gleixner <tglx@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <10ee4e8f-d8b4-4502-a5e2-0657802aeb11@linux.microsoft.com>
 <3ac480f5-549b-4449-baa9-f766e074c409@quicinc.com>
Content-Language: en-US
From: Easwar Hariharan <eahariha@linux.microsoft.com>
In-Reply-To: <3ac480f5-549b-4449-baa9-f766e074c409@quicinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/15/2024 1:41 PM, Jeff Johnson wrote:
> On 11/15/2024 1:29 PM, Easwar Hariharan wrote:
>> On 11/15/2024 1:26 PM, Easwar Hariharan wrote:
>>> This is a series that follows up on my previous series to introduce
>>> secs_to_jiffies() and convert a few initial users.[1] In the review for
>>> that series, Anna-Maria requested converting other users with
>>> Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
>>> that use the multiply pattern of either of:
>>> - msecs_to_jiffies(N*1000), or
>>> - msecs_to_jiffies(N*MSEC_PER_SEC)
>>>
>>> The entire conversion is made with Coccinelle in the script added in
>>> patch 2. Some changes suggested by Coccinelle have been deferred to
>>> later parts that will address other possible variant patterns.
>>>
>>> CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
>>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>>>
>>> [1] https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com/
>>> [2] https://lore.kernel.org/all/8734kngfni.fsf@somnus/
>>>
>>> ---
>>> Changes in v2:
>>> - EDITME: describe what is new in this series revision.
>>> - EDITME: use bulletpoints and terse descriptions.
>>> - Link to v1: https://lore.kernel.org/r/20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com
>>>
>>
>> Apologies, I missed out on editing the changelog here. v1 included a
>> patch that's already been accepted, there are no other changes in v2.
>>
>> Thanks,
>> Easwar
> 
> How do you expect this series to land since it overlaps a large number of
> maintainer trees? Do you have a maintainer who has volunteered to take the
> series and the maintainers should just ack? Or do you want the maintainers to
> take the individual patches that are applicable to them?
> 
> /jeff

I am hoping for tglx to take it through his tree since the patch
introducing secs_to_jiffies() is in his tree, so sequencing of
dependencies would not be an issue.

But if tglx won't, we could push it out another cycle and individual
maintainers can take the patches that are applicable to their tree for
the series.

Thanks,
Easwar


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 22:35:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 22:35:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838453.1254439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC4ud-0000LQ-Nz; Fri, 15 Nov 2024 22:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838453.1254439; Fri, 15 Nov 2024 22:35: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 1tC4ud-0000LJ-L3; Fri, 15 Nov 2024 22:35:35 +0000
Received: by outflank-mailman (input) for mailman id 838453;
 Fri, 15 Nov 2024 22:35: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=q8n7=SK=canb.auug.org.au=sfr@srs-se1.protection.inumbo.net>)
 id 1tC4ua-0000Jx-I1
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 22:35:34 +0000
Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e29eb45d-a3a1-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 23:35:19 +0100 (CET)
Received: from authenticated.ozlabs.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits)
 server-digest SHA256) (Client did not present a certificate)
 by mail.ozlabs.org (Postfix) with ESMTPSA id 4XqsKD5FnLz4x3p;
 Sat, 16 Nov 2024 09:34:56 +1100 (AEDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e29eb45d-a3a1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE1MC4xMDcuNzQuNzYiLCJoZWxvIjoibWFpbC5vemxhYnMub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImUyOWViNDVkLWEzYTEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzEwMTE5LjY1MjkxLCJzZW5kZXIiOiJzZnJAY2FuYi5hdXVnLm9yZy5hdSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canb.auug.org.au;
	s=201702; t=1731710109;
	bh=8q2Y3qiG3ZOOjZQQW66Agp5RO04F9uaeWnu9irwI8zs=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=TBKjQ+jwynGqippSpjmesy2LJHz5G28IT7vT4TaT88JCuw46fBO3BDRAIPv6hRM7/
	 XbOWv6yTpIGUBOHVpD+GgH5bOcDzYCKCOUCxtFJITpudgYieUI+GdoU8psZqrHYs9B
	 plWGzIOASib2U9DXo1e9xJXfQHkgKNH8Cirh/o/LRzKV85o+Cp3r3eBc9AZ3AQZa0F
	 DYP1RPyQiMfC70ZKaMZkgpPnHyLFqXq1SQIh8oIfiAurmRjt4FWX01yMlsvyocz2uk
	 oad7uD2rsh8nj5e0aZSH5jUluHbC7REOnBIrLNo1QEsXfDYgF3levquGraIQNcBhLm
	 5y9gdjsr1Cmwg==
Date: Sat, 16 Nov 2024 09:34:58 +1100
From: Stephen Rothwell <sfr@canb.auug.org.au>
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>, Jozsef Kadlecsik
 <kadlec@netfilter.org>, "David S. Miller" <davem@davemloft.net>, Eric
 Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo
 Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>, Julia Lawall
 <Julia.Lawall@inria.fr>, Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack
 <daniel@zonque.org>, Haojian Zhuang <haojian.zhuang@gmail.com>, Robert
 Jarzmik <robert.jarzmik@free.fr>, Russell King <linux@armlinux.org.uk>,
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>, Christian Borntraeger
 <borntraeger@linux.ibm.com>, Sven Schnelle <svens@linux.ibm.com>, Ofir
 Bitton <obitton@habana.ai>, Oded Gabbay <ogabbay@kernel.org>, Lucas De
 Marchi <lucas.demarchi@intel.com>, Thomas =?UTF-8?B?SGVsbHN0csO2bQ==?=
 <thomas.hellstrom@linux.intel.com>, Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard
 <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, David Airlie
 <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, Jeroen de Borst
 <jeroendb@google.com>, Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>, Dick Kennedy
 <dick.kennedy@broadcom.com>, "James E.J. Bottomley"
 <James.Bottomley@HansenPartnership.com>, "Martin K. Petersen"
 <martin.petersen@oracle.com>, Roger Pau =?UTF-8?B?TW9ubsOp?=
 <roger.pau@citrix.com>, Jens Axboe <axboe@kernel.dk>, Kalle Valo
 <kvalo@kernel.org>, Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>, Jack
 Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann <marcel@holtmann.org>,
 Johan Hedberg <johan.hedberg@gmail.com>, Luiz Augusto von Dentz
 <luiz.dentz@gmail.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, Broadcom
 internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Xiubo
 Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf
 <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, Miroslav Benes
 <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, Joe Lawrence
 <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai
 <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, Russell King
 <linux+etnaviv@armlinux.org.uk>, Christian Gmeiner
 <christian.gmeiner@gmail.com>, Louis Peens <louis.peens@corigine.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>, Naveen N Rao
 <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen
 <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 01/21] netfilter: conntrack: Cleanup timeout
 definitions
Message-ID: <20241116093458.4aa19a0e@canb.auug.org.au>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-1-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
	<20241115-converge-secs-to-jiffies-v2-1-911fb7595e79@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/gpyLfQXA_rG=N5QDCu3kL6w";
 protocol="application/pgp-signature"; micalg=pgp-sha256

--Sig_/gpyLfQXA_rG=N5QDCu3kL6w
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hi Easwar,

On Fri, 15 Nov 2024 21:26:18 +0000 Easwar Hariharan <eahariha@linux.microso=
ft.com> wrote:
>
>  static const unsigned int sctp_timeouts[SCTP_CONNTRACK_MAX] =3D {
> -	[SCTP_CONNTRACK_CLOSED]			=3D 10 SECS,
> -	[SCTP_CONNTRACK_COOKIE_WAIT]		=3D 3 SECS,
> -	[SCTP_CONNTRACK_COOKIE_ECHOED]		=3D 3 SECS,
> -	[SCTP_CONNTRACK_ESTABLISHED]		=3D 210 SECS,
> -	[SCTP_CONNTRACK_SHUTDOWN_SENT]		=3D 3 SECS,
> -	[SCTP_CONNTRACK_SHUTDOWN_RECD]		=3D 3 SECS,
> -	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	=3D 3 SECS,
> -	[SCTP_CONNTRACK_HEARTBEAT_SENT]		=3D 30 SECS,
> +	[SCTP_CONNTRACK_CLOSED]			=3D secs_to_jiffies(10),
> +	[SCTP_CONNTRACK_COOKIE_WAIT]		=3D secs_to_jiffies(3),
> +	[SCTP_CONNTRACK_COOKIE_ECHOED]		=3D secs_to_jiffies(3),
> +	[SCTP_CONNTRACK_ESTABLISHED]		=3D secs_to_jiffies(210),
> +	[SCTP_CONNTRACK_SHUTDOWN_SENT]		=3D secs_to_jiffies(3),
> +	[SCTP_CONNTRACK_SHUTDOWN_RECD]		=3D secs_to_jiffies(3),
> +	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	=3D secs_to_jiffies(3),
> +	[SCTP_CONNTRACK_HEARTBEAT_SENT]		=3D secs_to_jiffies(3),

You have changed this last timeout from 30 seconds to 3 (presumably
just a copy and paste error).

--=20
Cheers,
Stephen Rothwell

--Sig_/gpyLfQXA_rG=N5QDCu3kL6w
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQEzBAEBCAAdFiEENIC96giZ81tWdLgKAVBC80lX0GwFAmc3zJIACgkQAVBC80lX
0Gw+jggAlx/FpdCsBUGWHj/3D1FyMKcJOE8x+VIKqw9c10Hqa/DPZEAcUaXlmvJJ
1NS+WrDFLS34ZiI4SbtosexC7tobHh/TkpamqrN+fG8STjNbtTVLYQ8QiWT/NCDx
IeMkpH/EiSg0ow+0U1XenGHORnkKPdtLr7lxlRq1R7ylUYNZK0eDlX4r2dwmOLYg
r0lFld/TwA434BDqTqj8KzVt9p1k2QiHm+LUntdk7Xu/Rlami4y/+Bahn9gmN3ji
wRFxXLzm6upqhGxP5RYNyz3FB0oQgUvILDpklyPzzLTZW+L+bPkhgY5RZTFXpk9k
KeR+GZcOjbCNU/RaWT8zDXVC32LJaw==
=DzpI
-----END PGP SIGNATURE-----

--Sig_/gpyLfQXA_rG=N5QDCu3kL6w--


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 22:38:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 22:38:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838462.1254449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC4xO-0002M1-7M; Fri, 15 Nov 2024 22:38:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838462.1254449; Fri, 15 Nov 2024 22:38: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 1tC4xO-0002Lu-4i; Fri, 15 Nov 2024 22:38:26 +0000
Received: by outflank-mailman (input) for mailman id 838462;
 Fri, 15 Nov 2024 22:38: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=q8n7=SK=canb.auug.org.au=sfr@srs-se1.protection.inumbo.net>)
 id 1tC4xN-0002I7-Az
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 22:38:25 +0000
Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50ad2563-a3a2-11ef-a0c7-8be0dac302b0;
 Fri, 15 Nov 2024 23:38:22 +0100 (CET)
Received: from authenticated.ozlabs.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits)
 server-digest SHA256) (Client did not present a certificate)
 by mail.ozlabs.org (Postfix) with ESMTPSA id 4XqsP22nY1z4x8v;
 Sat, 16 Nov 2024 09:38:14 +1100 (AEDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50ad2563-a3a2-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE1MC4xMDcuNzQuNzYiLCJoZWxvIjoibWFpbC5vemxhYnMub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjUwYWQyNTYzLWEzYTItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzEwMzAyLjkyOTY1NCwic2VuZGVyIjoic2ZyQGNhbmIuYXV1Zy5vcmcuYXUiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canb.auug.org.au;
	s=201702; t=1731710297;
	bh=2Oo8tuThL69UywoHNtNWphGeN1l/Ks7ZdfhLn6nu8Ts=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=dvqBU9n8wyesGOM7wAJUVL4V50umalSR9AGyHvO50R9rHL4dRlvqV2fKiGIxclon7
	 dHEpXPpW9NVhcbFtMBHzRNkcGVSkeVB/y2szbGMNYINCZkHzmLDf1115Jxe24OTeOk
	 GNv8daj8Y6W/lBqt6k/toExNrcSvGF2/nzg0QTmOQX9jzDpl13KzERpvnsypqwk14l
	 Jr2Y6hhhHGQcduaub5tIB8ldj0pYnhXmYJw4zK368Q9lExm0iQorTgylYyIdDuEGMp
	 WagrfQz4Kwg8LTMJpR3GyN8L1t3g91kYKCDixQ+vf1WORv4sLKKi8JfCCFjRz+Eeni
	 +eMZUx+2BK6mA==
Date: Sat, 16 Nov 2024 09:38:15 +1100
From: Stephen Rothwell <sfr@canb.auug.org.au>
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>, Jozsef Kadlecsik
 <kadlec@netfilter.org>, "David S. Miller" <davem@davemloft.net>, Eric
 Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo
 Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>, Julia Lawall
 <Julia.Lawall@inria.fr>, Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack
 <daniel@zonque.org>, Haojian Zhuang <haojian.zhuang@gmail.com>, Robert
 Jarzmik <robert.jarzmik@free.fr>, Russell King <linux@armlinux.org.uk>,
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>, Christian Borntraeger
 <borntraeger@linux.ibm.com>, Sven Schnelle <svens@linux.ibm.com>, Ofir
 Bitton <obitton@habana.ai>, Oded Gabbay <ogabbay@kernel.org>, Lucas De
 Marchi <lucas.demarchi@intel.com>, Thomas =?UTF-8?B?SGVsbHN0csO2bQ==?=
 <thomas.hellstrom@linux.intel.com>, Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard
 <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, David Airlie
 <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, Jeroen de Borst
 <jeroendb@google.com>, Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>, Dick Kennedy
 <dick.kennedy@broadcom.com>, "James E.J. Bottomley"
 <James.Bottomley@HansenPartnership.com>, "Martin K. Petersen"
 <martin.petersen@oracle.com>, Roger Pau =?UTF-8?B?TW9ubsOp?=
 <roger.pau@citrix.com>, Jens Axboe <axboe@kernel.dk>, Kalle Valo
 <kvalo@kernel.org>, Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>, Jack
 Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann <marcel@holtmann.org>,
 Johan Hedberg <johan.hedberg@gmail.com>, Luiz Augusto von Dentz
 <luiz.dentz@gmail.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, Broadcom
 internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Xiubo
 Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf
 <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, Miroslav Benes
 <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, Joe Lawrence
 <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai
 <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, Russell King
 <linux+etnaviv@armlinux.org.uk>, Christian Gmeiner
 <christian.gmeiner@gmail.com>, Louis Peens <louis.peens@corigine.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>, Naveen N Rao
 <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen
 <anna-maria@linutronix.de>
Subject: Re: [PATCH 03/22] arm: pxa: Convert timeouts to use
 secs_to_jiffies()
Message-ID: <20241116093815.5d37eb43@canb.auug.org.au>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-3-19aadc34941b@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
	<20241115-converge-secs-to-jiffies-v1-3-19aadc34941b@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/4rVE82Kt6y+3_PbwMmwogMj";
 protocol="application/pgp-signature"; micalg=pgp-sha256

--Sig_/4rVE82Kt6y+3_PbwMmwogMj
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hi Easwar,

On Fri, 15 Nov 2024 21:22:33 +0000 Easwar Hariharan <eahariha@linux.microso=
ft.com> wrote:
>
> -#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (msecs_to_jiffies(1*60*10=
00))  /* 1 min */
> -#define SHARPSL_CHARGE_FINISH_TIME             (msecs_to_jiffies(10*60*1=
000)) /* 10 min */
> -#define SHARPSL_BATCHK_TIME                    (msecs_to_jiffies(15*1000=
))    /* 15 sec */
> +#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (secs_to_jiffies(60))  /*=
 1 min */
> +#define SHARPSL_CHARGE_FINISH_TIME             (secs_to_jiffies(10*60)) =
/* 10 min */
> +#define SHARPSL_BATCHK_TIME                    (secs_to_jiffies(15))    =
/* 15 sec */

It might be nice to keep the alignment of the comments here.

--=20
Cheers,
Stephen Rothwell

--Sig_/4rVE82Kt6y+3_PbwMmwogMj
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQEzBAEBCAAdFiEENIC96giZ81tWdLgKAVBC80lX0GwFAmc3zVcACgkQAVBC80lX
0GyUXgf+Ii9yOHf1vRadjfzExIFyJR4I0mG1VXDEBH24ASdL/jVIFlfW31h/JIe9
7JJFAL5Aa+C8Xw22mmq/8e0wbWCe+DqEq+SLtggkTN8kHtwf7Glda0a/aIix0pNM
s9nQXwrTFFvaCt2ocRmPUcm7K/jwiG3YxWawYBvIoSF9l/TfQXwD4LBbP2glFEL2
BkTvGG0/asLCHZK2LHwDsWsZ5XskgJmmQfbYEdygcm9C3bP40tFYUM22B6iEYNez
WKquyY7lAmwUJQsIAWZig/PKPz8e6uux6ghIdGbwFC0ezQqIOAz8ZqllWy1Dpa87
vCjZSu4lRCFBg5npBBL5wIOagKFSCw==
=vmyn
-----END PGP SIGNATURE-----

--Sig_/4rVE82Kt6y+3_PbwMmwogMj--


From xen-devel-bounces@lists.xenproject.org Fri Nov 15 23:00:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 23:00:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838472.1254459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC5Iy-0005S6-Tn; Fri, 15 Nov 2024 23:00:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838472.1254459; Fri, 15 Nov 2024 23: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 1tC5Iy-0005Rz-RB; Fri, 15 Nov 2024 23:00:44 +0000
Received: by outflank-mailman (input) for mailman id 838472;
 Fri, 15 Nov 2024 23:00: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=DylP=SK=quicinc.com=quic_jjohnson@srs-se1.protection.inumbo.net>)
 id 1tC5Ix-0005Rt-Il
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 23:00:43 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d8d2ee8-a3a5-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 00:00:38 +0100 (CET)
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AFGrkEN010333;
 Fri, 15 Nov 2024 22:59:56 GMT
Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com
 [129.46.96.20])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 42xa7ngs0a-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 15 Nov 2024 22:59:56 +0000 (GMT)
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
 [10.47.209.196])
 by NALASPPMTA05.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 4AFMxttC025526
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 15 Nov 2024 22:59:55 GMT
Received: from [10.111.176.23] (10.49.16.6) by nalasex01a.na.qualcomm.com
 (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Fri, 15 Nov
 2024 14:59: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: 6d8d2ee8-a3a5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwNS4yMjAuMTY4LjEzMSIsImhlbG8iOiJteDBhLTAwMzFkZjAxLnBwaG9zdGVkLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZkOGQyZWU4LWEzYTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzExNjM5LjA2MDEwOSwic2VuZGVyIjoicXVpY19qam9obnNvbkBxdWljaW5jLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	qNk0UpPCfP9jVOvfKBxvQukY6QfemQfuOfHWSW3FEps=; b=XgPHjXXU5/THf7Zv
	KSmEXbUKuVLvM2dvj9amuR/JpE4K7+0IZR+xH9KidBF9+O9FKfr4/RUa/5gBJ298
	8bu5+Pifed2F8BrM6Oj34ss7B6Y5ixfwwTCGx3ktfPO3tYNyIm+GzJX1Har9+TZ4
	4wo2SothME4kGgPVm+iavuzfNOA1bUUjgotBOhuR+MSwdpD83jTCA42dW+fTyNsK
	0Y7MINWD+oYbpCz6GaMvi+6nMNjQF5NolpB3yUFR7K5UpAeriFXlTu2nWQWaBMqt
	XRR46sptjfsXIH4xCJQEeuBlwiD0DiBQ6ykoF2SjYaU/c5KX5zmumxMdD4uA+akh
	YLxA7A==
Message-ID: <d2d2c07b-666d-4b37-a428-2d73ce8aeb5b@quicinc.com>
Date: Fri, 15 Nov 2024 14:59:51 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 15/21] wifi: ath11k: Convert timeouts to
 secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
        Pablo Neira Ayuso
	<pablo@netfilter.org>,
        Jozsef Kadlecsik <kadlec@netfilter.org>,
        "David S.
 Miller" <davem@davemloft.net>,
        Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>,
        Paolo Abeni <pabeni@redhat.com>, Simon Horman
	<horms@kernel.org>,
        Julia Lawall <Julia.Lawall@inria.fr>,
        Nicolas Palix
	<nicolas.palix@imag.fr>,
        Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang
	<haojian.zhuang@gmail.com>,
        Robert Jarzmik <robert.jarzmik@free.fr>,
        Russell
 King <linux@armlinux.org.uk>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily
 Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle
	<svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
        Oded Gabbay
	<ogabbay@kernel.org>,
        Lucas De Marchi <lucas.demarchi@intel.com>,
        =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
        Rodrigo
 Vivi <rodrigo.vivi@intel.com>,
        Maarten Lankhorst
	<maarten.lankhorst@linux.intel.com>,
        Maxime Ripard <mripard@kernel.org>,
        Thomas Zimmermann <tzimmermann@suse.de>,
        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
        Jeroen de Borst <jeroendb@google.com>,
        Praveen Kaligineedi <pkaligineedi@google.com>,
        Shailend Chand
	<shailend@google.com>,
        Andrew Lunn <andrew+netdev@lunn.ch>,
        James Smart
	<james.smart@broadcom.com>,
        Dick Kennedy <dick.kennedy@broadcom.com>,
        "James
 E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
        "Martin K. Petersen"
	<martin.petersen@oracle.com>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>,
        Jens Axboe <axboe@kernel.dk>, Kalle Valo
	<kvalo@kernel.org>,
        Jeff Johnson <jjohnson@kernel.org>,
        Catalin Marinas
	<catalin.marinas@arm.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Jack
 Wang <jinpu.wang@cloud.ionos.com>,
        Marcel Holtmann <marcel@holtmann.org>,
        Johan Hedberg <johan.hedberg@gmail.com>,
        Luiz Augusto von Dentz
	<luiz.dentz@gmail.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Florian Fainelli <florian.fainelli@broadcom.com>,
        Ray Jui
	<rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
        Broadcom internal
 kernel review list <bcm-kernel-feedback-list@broadcom.com>,
        Xiubo Li
	<xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
        Josh Poimboeuf
	<jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>,
        Miroslav Benes
	<mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>,
        Joe Lawrence
	<joe.lawrence@redhat.com>,
        Jaroslav Kysela <perex@perex.cz>, Takashi Iwai
	<tiwai@suse.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Russell King
	<linux+etnaviv@armlinux.org.uk>,
        Christian Gmeiner
	<christian.gmeiner@gmail.com>,
        Louis Peens <louis.peens@corigine.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Naveen N Rao
	<naveen@kernel.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>
CC: <netfilter-devel@vger.kernel.org>, <coreteam@netfilter.org>,
        <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        <cocci@inria.fr>, <linux-arm-kernel@lists.infradead.org>,
        <linux-s390@vger.kernel.org>, <dri-devel@lists.freedesktop.org>,
        <intel-xe@lists.freedesktop.org>, <linux-scsi@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, <linux-block@vger.kernel.org>,
        <linux-wireless@vger.kernel.org>, <ath11k@lists.infradead.org>,
        <linux-mm@kvack.org>, <linux-bluetooth@vger.kernel.org>,
        <linux-staging@lists.linux.dev>,
        <linux-rpi-kernel@lists.infradead.org>, <ceph-devel@vger.kernel.org>,
        <live-patching@vger.kernel.org>, <linux-sound@vger.kernel.org>,
        <etnaviv@lists.freedesktop.org>, <oss-drivers@corigine.com>,
        <linuxppc-dev@lists.ozlabs.org>,
        Anna-Maria Behnsen
	<anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-15-911fb7595e79@linux.microsoft.com>
From: Jeff Johnson <quic_jjohnson@quicinc.com>
Content-Language: en-US
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-15-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.49.16.6]
X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) To
 nalasex01a.na.qualcomm.com (10.47.209.196)
X-QCInternal: smtphost
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085
X-Proofpoint-ORIG-GUID: 9NJi18BY7F7RS1ijvJie2T9SzXH5WHC4
X-Proofpoint-GUID: 9NJi18BY7F7RS1ijvJie2T9SzXH5WHC4
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29
 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 adultscore=0 mlxlogscore=999 suspectscore=0 spamscore=0 priorityscore=1501
 lowpriorityscore=0 bulkscore=0 mlxscore=0 clxscore=1015 impostorscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2409260000
 definitions=main-2411150193

On 11/15/2024 1:26 PM, Easwar Hariharan wrote:
> Changes made with the following Coccinelle rules:
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
> 
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>

Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>

> ---
>  drivers/net/wireless/ath/ath11k/debugfs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/ath/ath11k/debugfs.c b/drivers/net/wireless/ath/ath11k/debugfs.c
> index 57281a135dd7fa6b8610636f47873c8bba21053c..bf192529e3fe26a91e72105a77b4c6f849b905ec 100644
> --- a/drivers/net/wireless/ath/ath11k/debugfs.c
> +++ b/drivers/net/wireless/ath/ath11k/debugfs.c
> @@ -178,7 +178,7 @@ static int ath11k_debugfs_fw_stats_request(struct ath11k *ar,
>  	 * received 'update stats' event, we keep a 3 seconds timeout in case,
>  	 * fw_stats_done is not marked yet
>  	 */
> -	timeout = jiffies + msecs_to_jiffies(3 * 1000);
> +	timeout = jiffies + secs_to_jiffies(3);
>  
>  	ath11k_debugfs_fw_stats_reset(ar);
>  
> 



From xen-devel-bounces@lists.xenproject.org Fri Nov 15 23:20:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Nov 2024 23:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838480.1254469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC5cS-0004em-I5; Fri, 15 Nov 2024 23:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838480.1254469; Fri, 15 Nov 2024 23:20: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 1tC5cS-0004ef-Dx; Fri, 15 Nov 2024 23:20:52 +0000
Received: by outflank-mailman (input) for mailman id 838480;
 Fri, 15 Nov 2024 23: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=b7N1=SK=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1tC5cR-0004a5-De
 for xen-devel@lists.xenproject.org; Fri, 15 Nov 2024 23:20:51 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e5ce883-a3a8-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 00:20: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: 3e5ce883-a3a8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5My4xNDIuNDMuNTUiLCJoZWxvIjoiZ2Fsb2lzLmxpbnV0cm9uaXguZGUifQ==
X-Custom-Transaction: eyJpZCI6IjNlNWNlODgzLWEzYTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzEyODQ3LjI2ODk1NCwic2VuZGVyIjoidGdseEBsaW51dHJvbml4LmRlIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1731712845;
	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=ocF2UaqffllWgiGWdH3dEXBRLSQ8zx6v3UTSvYUEWBM=;
	b=SaYzzMZW0ZsY0TGo8HlsbXzuUvCi20iDEgp+8ohYBSE4TZQXRHLKLbged2BOetLpsx4OkO
	tbZB0k+QLCEJmNzJNJ7TX06kODrXybKEr0MN0pB2oucYCsCZhXwiPTvkrVYx4d0RSom1W9
	M5V6DhOs4++KN4sHh/UkGD4PfYSgL/msvq0en1H26aBKpf6quxCthUWooMmyaT4o/QkfC2
	lCNSo4ipp434fYIwklbWGy8m/kIcsHAL1J9mGF0JwBaNElltRXstfx+KSUKFTEf5oJlO1l
	imvGv9XAnBM1fMHYuOdaaDvDY2O6X0pakSlzfvsLT9wL98INhCHIDkaV3HsBDQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1731712845;
	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=ocF2UaqffllWgiGWdH3dEXBRLSQ8zx6v3UTSvYUEWBM=;
	b=o0jZxjqE/bb/KZAxT0liDWVEJtakeTQr/m7JfpgliBKuwvw5FjJoNIULPPZ+hcCbxwHCjD
	VmO8h0eWyvF8dzAA==
To: Easwar Hariharan <eahariha@linux.microsoft.com>, Jeff Johnson
 <quic_jjohnson@quicinc.com>
Cc: eahariha@linux.microsoft.com, netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen
 <anna-maria@linutronix.de>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 Naveen N Rao <naveen@kernel.org>, Christophe Leroy
 <christophe.leroy@csgroup.eu>, Louis Peens <louis.peens@corigine.com>,
 Nicholas Piggin <npiggin@gmail.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Christian Gmeiner <christian.gmeiner@gmail.com>,
 Russell King <linux+etnaviv@armlinux.org.uk>, Lucas Stach
 <l.stach@pengutronix.de>, Takashi Iwai <tiwai@suse.com>, Jaroslav Kysela
 <perex@perex.cz>, Petr Mladek <pmladek@suse.com>, Joe Lawrence
 <joe.lawrence@redhat.com>, Miroslav Benes <mbenes@suse.cz>, Jiri Kosina
 <jikos@kernel.org>, Josh Poimboeuf <jpoimboe@kernel.org>, Ilya Dryomov
 <idryomov@gmail.com>, Xiubo Li <xiubli@redhat.com>, Broadcom internal
 kernel review list <bcm-kernel-feedback-list@broadcom.com>, Scott Branden
 <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, Florian Fainelli
 <florian.fainelli@broadcom.com>, Greg Kroah-Hartman
 <gregkh@linuxfoundation.org>, Luiz Augusto von Dentz
 <luiz.dentz@gmail.com>, Johan Hedberg <johan.hedberg@gmail.com>, Jens
 Axboe <axboe@kernel.dk>, Marcel Holtmann <marcel@holtmann.org>, Kalle Valo
 <kvalo@kernel.org>, Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Roger Pau =?utf-8?Q?Monn=C3=A9?=
 <roger.pau@citrix.com>, Jack
 Wang <jinpu.wang@cloud.ionos.com>, Andrew Morton
 <akpm@linux-foundation.org>, "Martin K. Petersen"
 <martin.petersen@oracle.com>, Praveen Kaligineedi
 <pkaligineedi@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, James
 Smart <james.smart@broadcom.com>, Dick Kennedy
 <dick.kennedy@broadcom.com>, "James E.J. Bottomley"
 <James.Bottomley@HansenPartnership.com>, Maxime Ripard
 <mripard@kernel.org>, David Airlie <airlied@gmail.com>, Simona Vetter
 <simona@ffwll.ch>, Jeroen de Borst <jeroendb@google.com>, Shailend Chand
 <shailend@google.com>, Thomas Zimmermann <tzimmermann@suse.de>, Maarten
 Lankhorst <maarten.lankhorst@linux.intel.com>, Rodrigo Vivi
 <rodrigo.vivi@intel.com>, Thomas =?utf-8?Q?Hellstr=C3=B6m?=
 <thomas.hellstrom@linux.intel.com>, Lucas De Marchi
 <lucas.demarchi@intel.com>, Oded Gabbay <ogabbay@kernel.org>, Ofir Bitton
 <obitton@habana.ai>, Sven Schnelle <svens@linux.ibm.com>, Christian
 Borntraeger <borntraeger@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, Heiko
 Carstens <hca@linux.ibm.com>, Russell King <linux@armlinux.org.uk>, Robert
 Jarzmik <robert.jarzmik@free.fr>, Haojian Zhuang
 <haojian.zhuang@gmail.com>, Daniel Mack <daniel@zonque.org>, Nicolas Palix
 <nicolas.palix@imag.fr>, Julia Lawall <Julia.Lawall@inria.fr>, Simon
 Horman <horms@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Jakub Kicinski
 <kuba@kernel.org>, Eric Dumazet <edumazet@google.com>, "David S. Miller"
 <davem@davemloft.net>, Jozsef Kadlecsik <kadlec@netfilter.org>, Pablo
 Neira Ayuso <pablo@netfilter.org>
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
In-Reply-To: <8127a2e6-fa62-4c85-b7ed-24748cc9e285@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <10ee4e8f-d8b4-4502-a5e2-0657802aeb11@linux.microsoft.com>
 <3ac480f5-549b-4449-baa9-f766e074c409@quicinc.com>
 <8127a2e6-fa62-4c85-b7ed-24748cc9e285@linux.microsoft.com>
Date: Sat, 16 Nov 2024 00:20:50 +0100
Message-ID: <87plmwytgt.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain

On Fri, Nov 15 2024 at 14:15, Easwar Hariharan wrote:
> On 11/15/2024 1:41 PM, Jeff Johnson wrote:
>> 
>> How do you expect this series to land since it overlaps a large number of
>> maintainer trees? Do you have a maintainer who has volunteered to take the
>> series and the maintainers should just ack? Or do you want the maintainers to
>> take the individual patches that are applicable to them?
>> 
>> /jeff
>
> I am hoping for tglx to take it through his tree since the patch
> introducing secs_to_jiffies() is in his tree, so sequencing of
> dependencies would not be an issue.

Right, but it's two days before the merge window opens, so no.

> But if tglx won't, we could push it out another cycle and individual
> maintainers can take the patches that are applicable to their tree for
> the series.

That's the easiest way forward as it does not create conflicts and all
maintainers will have the base patch in their trees after rc1.

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 00:12:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 00:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838487.1254479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC6Qb-0003Yi-Hw; Sat, 16 Nov 2024 00:12:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838487.1254479; Sat, 16 Nov 2024 00:12: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 1tC6Qb-0003Yb-FK; Sat, 16 Nov 2024 00:12:41 +0000
Received: by outflank-mailman (input) for mailman id 838487;
 Sat, 16 Nov 2024 00:12: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=E6K3=SL=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC6Qa-0003Vo-1Y
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 00:12:40 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 7b33a3da-a3af-11ef-a0c7-8be0dac302b0;
 Sat, 16 Nov 2024 01:12:35 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id 1600B2064AEE;
 Fri, 15 Nov 2024 16:12: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: 7b33a3da-a3af-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdiMzNhM2RhLWEzYWYtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzE1OTU2LjExMDA1LCJzZW5kZXIiOiJlYWhhcmloYUBsaW51eC5taWNyb3NvZnQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1600B2064AEE
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731715954;
	bh=xpBEojaRNmZLcf0UaP4ux3dQkOORS/leVLfy1gAywiE=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=Pq2k2Nni3cFBRk9EH3pyxgnDw6ECvdbg1vXWXgUrnZTvujbQOLePABt8LVR+E9JSZ
	 k4WoN+iIfUxQpiMRt/FU+pwGNrKJBo/0Q2+4KvxqDSAbq0u3pnKwVj+6aACG5ZF/KB
	 j3wJy4AhuvO/DGvU623x7nThkWYs37o8kaDAxg9k=
Message-ID: <68331eb9-545f-48a4-9c49-1a3637b3d918@linux.microsoft.com>
Date: Fri, 15 Nov 2024 16:12:31 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: eahariha@linux.microsoft.com, Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH 03/22] arm: pxa: Convert timeouts to use secs_to_jiffies()
To: Stephen Rothwell <sfr@canb.auug.org.au>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v1-3-19aadc34941b@linux.microsoft.com>
 <20241116093815.5d37eb43@canb.auug.org.au>
Content-Language: en-US
From: Easwar Hariharan <eahariha@linux.microsoft.com>
In-Reply-To: <20241116093815.5d37eb43@canb.auug.org.au>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/15/2024 2:38 PM, Stephen Rothwell wrote:
> Hi Easwar,
> 
> On Fri, 15 Nov 2024 21:22:33 +0000 Easwar Hariharan <eahariha@linux.microsoft.com> wrote:
>>
>> -#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (msecs_to_jiffies(1*60*1000))  /* 1 min */
>> -#define SHARPSL_CHARGE_FINISH_TIME             (msecs_to_jiffies(10*60*1000)) /* 10 min */
>> -#define SHARPSL_BATCHK_TIME                    (msecs_to_jiffies(15*1000))    /* 15 sec */
>> +#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (secs_to_jiffies(60))  /* 1 min */
>> +#define SHARPSL_CHARGE_FINISH_TIME             (secs_to_jiffies(10*60)) /* 10 min */
>> +#define SHARPSL_BATCHK_TIME                    (secs_to_jiffies(15))    /* 15 sec */
> 
> It might be nice to keep the alignment of the comments here.
> 

Will fix in v3.


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 00:13:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 00:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838495.1254489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC6RG-0004ew-TX; Sat, 16 Nov 2024 00:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838495.1254489; Sat, 16 Nov 2024 00:13: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 1tC6RG-0004ep-Qs; Sat, 16 Nov 2024 00:13:22 +0000
Received: by outflank-mailman (input) for mailman id 838495;
 Sat, 16 Nov 2024 00:13: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=E6K3=SL=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tC6RG-0004Cn-3P
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 00:13:22 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 94c3698d-a3af-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 01:13:18 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id 95E342064AF0;
 Fri, 15 Nov 2024 16: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: 94c3698d-a3af-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk0YzM2OThkLWEzYWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzE1OTk4Ljk2NTQxNywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 95E342064AF0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731715997;
	bh=8aWsE6KsHqgZAR/UTPX2BOaIFAyMPoSLG9xpC4Hm8PA=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=juHtZTV0RDh+wTFwjvF/I5Cbue56gEXjd0kD3znUPuWXx2wtRwF3SiJZ6HWwI5inJ
	 TBVBD9vnbAv41iOqcNYfHcjXy0Jo4vpPQnYC829Cp+vZARPfhAL4M9phLDROf5akb8
	 KGqyHrYITaajwfOdtt56+uCdzgps3Ezs57MjrN0w=
Message-ID: <0b4bbd38-f6aa-4091-b7db-8b87572ad83a@linux.microsoft.com>
Date: Fri, 15 Nov 2024 16:13:13 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: eahariha@linux.microsoft.com, Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 01/21] netfilter: conntrack: Cleanup timeout
 definitions
To: Stephen Rothwell <sfr@canb.auug.org.au>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-1-911fb7595e79@linux.microsoft.com>
 <20241116093458.4aa19a0e@canb.auug.org.au>
Content-Language: en-US
From: Easwar Hariharan <eahariha@linux.microsoft.com>
In-Reply-To: <20241116093458.4aa19a0e@canb.auug.org.au>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/15/2024 2:34 PM, Stephen Rothwell wrote:
> Hi Easwar,
> 
> On Fri, 15 Nov 2024 21:26:18 +0000 Easwar Hariharan <eahariha@linux.microsoft.com> wrote:
>>
>>  static const unsigned int sctp_timeouts[SCTP_CONNTRACK_MAX] = {
>> -	[SCTP_CONNTRACK_CLOSED]			= 10 SECS,
>> -	[SCTP_CONNTRACK_COOKIE_WAIT]		= 3 SECS,
>> -	[SCTP_CONNTRACK_COOKIE_ECHOED]		= 3 SECS,
>> -	[SCTP_CONNTRACK_ESTABLISHED]		= 210 SECS,
>> -	[SCTP_CONNTRACK_SHUTDOWN_SENT]		= 3 SECS,
>> -	[SCTP_CONNTRACK_SHUTDOWN_RECD]		= 3 SECS,
>> -	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	= 3 SECS,
>> -	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= 30 SECS,
>> +	[SCTP_CONNTRACK_CLOSED]			= secs_to_jiffies(10),
>> +	[SCTP_CONNTRACK_COOKIE_WAIT]		= secs_to_jiffies(3),
>> +	[SCTP_CONNTRACK_COOKIE_ECHOED]		= secs_to_jiffies(3),
>> +	[SCTP_CONNTRACK_ESTABLISHED]		= secs_to_jiffies(210),
>> +	[SCTP_CONNTRACK_SHUTDOWN_SENT]		= secs_to_jiffies(3),
>> +	[SCTP_CONNTRACK_SHUTDOWN_RECD]		= secs_to_jiffies(3),
>> +	[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]	= secs_to_jiffies(3),
>> +	[SCTP_CONNTRACK_HEARTBEAT_SENT]		= secs_to_jiffies(3),
> 
> You have changed this last timeout from 30 seconds to 3 (presumably
> just a copy and paste error).
> 

Will fix in v3.


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 00:23:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 00:23:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838506.1254500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC6ar-00026B-QH; Sat, 16 Nov 2024 00:23:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838506.1254500; Sat, 16 Nov 2024 00:23: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 1tC6ar-000264-Lb; Sat, 16 Nov 2024 00:23:17 +0000
Received: by outflank-mailman (input) for mailman id 838506;
 Sat, 16 Nov 2024 00:23: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=aWrC=SL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tC6aq-00025y-4l
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 00:23:16 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6287c0c-a3b0-11ef-a0c7-8be0dac302b0;
 Sat, 16 Nov 2024 01:23:12 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2F9B35C583B;
 Sat, 16 Nov 2024 00:22:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A30FAC4CECF;
 Sat, 16 Nov 2024 00:23: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: f6287c0c-a3b0-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6ImY2Mjg3YzBjLWEzYjAtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzE2NTkyLjUxODEwMiwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731716590;
	bh=8l5ENyPPbvPs3HvVomIwy9aQjjI4LuRXkCUs3nvAmo8=;
	h=Date:From:To:cc:Subject:From;
	b=pErHPJ93aASnejwyEQbP+b+iN/957ai6aCHhU+vRZYTUq75e1HvzVSkdivlqNpO6C
	 f7RMTaWOqnTDEoCpnKzKMK6KtnL47C3tKQFfH+n1JO21//VlhgKNp9Jgim4IxX2P51
	 ogLX17A3Osmdk/2kuuNEPFdodi/cZmYQIq4rxl9vbOpTKbVWDbwIc657c8IiAOgI6q
	 lyGiOGNB88k7GbH7T7UibsXqRj2sfm+x6/RZKZG2xq0x+jaEYo6/ualxBd0SZcmvNY
	 R5R6JGwHLDFzqEYlanEmsZcIknNy0gCIdBQNzo2prcYisa8jOD9B1Kg6Dew2l0P0/Z
	 /MYZ5dnf46klA==
Date: Fri, 15 Nov 2024 16:23:07 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: sstabellini@kernel.org, alessandro.zucchelli@bugseng.com, 
    simone.ballarin@bugseng.com, consulting@bugseng.com, jbeulich@suse.com, 
    andrew.cooper3@citrix.com, julien@xen.org, roger.pau@citrix.com, 
    bertrand.marquis@arm.com, michal.orzel@amd.com
Subject: [PATCH] misra: increase identifiers length to 64
Message-ID: <alpine.DEB.2.22.394.2411151617580.1160299@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

Currently the identifiers characters limit is arbitrarily set to 40. It
causes a few violations as we have some identifiers longer than 40.

Increase the limit to another rather arbitrary limit of 64. Thanks to
this change, we remove a few violations, getting us one step closer to
marking Rules 5.2 and 5.4 as clean.

Also update the ECLAIR config that was actually set to 63 as character
limit.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl
index 86e9a79b52..8fb1778bce 100644
--- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
+++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
@@ -155,8 +155,8 @@
 -doc_end
 
 -doc_begin="See Section \"4.3 Identifiers\" of "GCC_MANUAL"."
--config=STD.extidsig, behavior+={c99, GCC_ARM64, "63"}
--config=STD.extidsig, behavior+={c99, GCC_X86_64, "63"}
+-config=STD.extidsig, behavior+={c99, GCC_ARM64, "64"}
+-config=STD.extidsig, behavior+={c99, GCC_X86_64, "64"}
 -doc_end
 
 #
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 4a144da8d6..3ed5801bff 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -154,7 +154,7 @@ maintainers if you want to suggest a change.
    * - `Rule 5.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_01_2.c>`_
      - Required
      - External identifiers shall be distinct
-     - The Xen characters limit for identifiers is 40. Public headers
+     - The Xen characters limit for identifiers is 64. Public headers
        (xen/include/public/) are allowed to retain longer identifiers
        for backward compatibility.
 
@@ -162,7 +162,7 @@ maintainers if you want to suggest a change.
      - Required
      - Identifiers declared in the same scope and name space shall be
        distinct
-     - The Xen characters limit for identifiers is 40. Public headers
+     - The Xen characters limit for identifiers is 64. Public headers
        (xen/include/public/) are allowed to retain longer identifiers
        for backward compatibility.
 
@@ -177,7 +177,7 @@ maintainers if you want to suggest a change.
    * - `Rule 5.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_04.c>`_
      - Required
      - Macro identifiers shall be distinct
-     - The Xen characters limit for macro identifiers is 40. Public
+     - The Xen characters limit for macro identifiers is 64. Public
        headers (xen/include/public/) are allowed to retain longer
        identifiers for backward compatibility.
 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 00:23:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 00:23:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838510.1254508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC6bR-0002Zw-1C; Sat, 16 Nov 2024 00:23:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838510.1254508; Sat, 16 Nov 2024 00:23: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 1tC6bQ-0002Zp-Ua; Sat, 16 Nov 2024 00:23:52 +0000
Received: by outflank-mailman (input) for mailman id 838510;
 Sat, 16 Nov 2024 00:23: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=aWrC=SL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tC6bP-0002Zh-RR
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 00:23:51 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c1eeb4d-a3b1-11ef-a0c7-8be0dac302b0;
 Sat, 16 Nov 2024 01:23:48 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 80B5FA4287C;
 Sat, 16 Nov 2024 00:21:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8367C4CECF;
 Sat, 16 Nov 2024 00:23: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: 0c1eeb4d-a3b1-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjBjMWVlYjRkLWEzYjEtMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzE2NjI4Ljk2MDEzOCwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731716627;
	bh=49pDdQydnL3D/DPJVWoglQOCqOnqk9uOJK0z/HNgkL8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PbOYAc+nevc2grcNV8znBSnEBadftDucD2mpwkwTKZEFTDn+nR2p3flQBuxFC7UCP
	 g8xQttHHoHuuV59OfoKMvfWnBCVtdrThMS46kzEYSNIzYYb8qmyBCQzXNyD2fM6ap2
	 10u9qPukDQSW8xFEnfjtrC46T4VMtYJQ/HjkLMUaaQ0N232xAU3DJTBX4U0fT60XSF
	 PyoEJbXh1rINBaZeMng5y1aUpM2zqpCX3Aeta5oTRujIL1zMHH1K84ppl3VW0cLlKx
	 f5h2BgIu0Amlh8hw+7oX9VY82cZjyX+Rn8meUHw1EJht1tx7E/soJy/tCCnxl64zeN
	 XMXUlPJ39lxPA==
Date: Fri, 15 Nov 2024 16:23:44 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Jan Beulich <jbeulich@suse.com>, consulting@bugseng.com, 
    Simone Ballarin <simone.ballarin@bugseng.com>, 
    xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH] xen:add deviations for MISRA C 2012 Rule R5.2
In-Reply-To: <0fa9be78162b596c69da6c1bf840364e@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2411151623170.1160299@ubuntu-linux-20-04-desktop>
References: <41a1127e6d77d2be350e7679bd1034e0c2918e94.1731487210.git.alessandro.zucchelli@bugseng.com> <39168f90-7c80-451d-9c20-50da0de4af78@suse.com> <3789df92285b2c08b855369f46f3a229@bugseng.com> <24b117ed-dd5a-47a7-8c5d-ddddd7407ac9@suse.com>
 <alpine.DEB.2.22.394.2411131822260.222505@ubuntu-linux-20-04-desktop> <0fa9be78162b596c69da6c1bf840364e@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Nov 2024, Alessandro Zucchelli wrote:
> On 2024-11-14 03:23, Stefano Stabellini wrote:
> > On Wed, 13 Nov 2024, Jan Beulich wrote:
> > > On 13.11.2024 11:48, Alessandro Zucchelli wrote:
> > > > At this link you can see all the violations of Rule 5.2:
> > > >
> > > >
> > > https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/40_characters/X86_64/8143097084/PROJECT.ecd;/by_service/MC3R1.R5.2.html
> > > 
> > > Thank you. From a cursory look these all appear to be a result of the 40
> > > chars limit we put in place (quite arbitrarily). That's not mentioned at
> > > all ...
> > > 
> > > > By deviating the two macros CHECK_NAME_ and DEFINE_COMPAT_HANDLE all the
> > > > violations are addressed.
> > > >
> > > > On 2024-11-13 11:31, Jan Beulich wrote:
> > > >> On 13.11.2024 09:41, Alessandro Zucchelli wrote:
> > > >>> This addresses violations of MISRA C:2012 Rule 5.2 which states as
> > > >>> following: Identifiers declared in the same scope and name space shall
> > > >>> be distinct.
> > > >>>
> > > >>> This deviation addresses violations of Rule 5.2 arising from
> > > >>> identifiers generated through token pasting macros CHECK_NAME_ and
> > > >>> DEFINE_COMPAT_HANDLE.
> > > 
> > > ... in the description.
> > > 
> > > Together with the 5.4 patch having the same lack of context, I wonder
> > > whether we shouldn't simply up that limit.
> > 
> > Yes: if we up to the limit to 64 (another arbitrary number), can be mark
> > both 5.4 and 5.1 as clean? If so, I think we should do it right away.
> > 
> Hi,
> In doc/misra/rules.rst, the limit is documented as 40, but in the
> configuration
> file automation/eclair_analysis/ECLAIR/toolchain.ecl, it is set to 63.
> 
> If you intend to proceed by increasing the limit, you may ignore this
> deviation
> as well as my other deviation concerning Rule 5.4. In that case, please update
> the documentation in doc/misra/rules.rst to reflect the new limit.

Got it. See:
https://marc.info/?l=xen-devel&m=173171643022486


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 00:34:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 00:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838523.1254529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC6ln-0007HK-68; Sat, 16 Nov 2024 00:34:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838523.1254529; Sat, 16 Nov 2024 00:34: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 1tC6ln-0007HD-2N; Sat, 16 Nov 2024 00:34:35 +0000
Received: by outflank-mailman (input) for mailman id 838523;
 Sat, 16 Nov 2024 00:34: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=aWrC=SL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tC6ll-00072W-SE
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 00:34:33 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a7f1082-a3b2-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 01:34:30 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 162CBA4270B;
 Sat, 16 Nov 2024 00:32:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E90E9C4CECF;
 Sat, 16 Nov 2024 00:34: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: 8a7f1082-a3b2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjhhN2YxMDgyLWEzYjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzE3MjcwLjE5OTA5Mywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731717268;
	bh=lexmv8CYgrr7kQhQ79IlUEU49w8T8vMJdBHPPErcW7Y=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DvBOtKaLMdhc6gsj1WPbzVOdQ6cFf1GB7/8jfCn9e+iJ5tpHRAebxkhGTHkCk46pg
	 KIpZFZFdqW/5Mh4XDLeYf/fVB7tfsnE9JifluYNtj1bUA9pQHr3Vbm2Et31rMoEbvh
	 5Jk76YvVFJ5BEYsp3i/EbZbMsGgr8k2YzOrW6iLjvLM1fTzmj6+QBOkIrZwfk6e4cp
	 vcoS84CDERzPQpCOMMhlYJO9euYiV4kZahk8hy3Qjp4q27ngNhjBfo1v/ZFJrziMGq
	 0u6dmiCnk9HBU3pTicltltvBTzp64OiFLlSYoFYeL6kmXGWsYPEWQryvlStJGSqHwl
	 lQPouVk2qMItA==
Date: Fri, 15 Nov 2024 16:34:26 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Anthony PERARD <anthony.perard@vates.tech>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 1/3] CI: Remove deprecated "only:variables" in favor
 of "rules:if"
In-Reply-To: <20241115170739.48983-2-anthony.perard@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2411151629270.1160299@ubuntu-linux-20-04-desktop>
References: <20241115170739.48983-1-anthony.perard@vates.tech> <20241115170739.48983-2-anthony.perard@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Nov 2024, Anthony PERARD wrote:
> Also, this prevent using "rules", like in the ".test-jobs-common"
> template.
> 
> https://docs.gitlab.com/ee/ci/yaml/#only--except
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  automation/gitlab-ci/test.yaml | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index f5dd4de757..ab5c8be0cd 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -98,9 +98,8 @@
>        - '*.log'
>        - '*.dtb'
>      when: always
> -  only:
> -    variables:
> -      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> +  rules:
> +    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
>    tags:
>      - xilinx
>  
> @@ -117,9 +116,8 @@
>        - smoke.serial
>        - '*.log'
>      when: always
> -  only:
> -    variables:
> -      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> +  rules:
> +    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
>    tags:
>      - xilinx
>  
> @@ -137,9 +135,8 @@
>        - smoke.serial
>        - '*.log'
>      when: always
> -  only:
> -    variables:
> -      - $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> +  rules:
> +    - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
>    tags:
>      - qubes-hw2
>  
> -- 
> 
> 
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 00:34:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 00:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838524.1254539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC6lq-0007YM-Gw; Sat, 16 Nov 2024 00:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838524.1254539; Sat, 16 Nov 2024 00: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 1tC6lq-0007YF-Cp; Sat, 16 Nov 2024 00:34:38 +0000
Received: by outflank-mailman (input) for mailman id 838524;
 Sat, 16 Nov 2024 00:34: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=aWrC=SL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tC6lp-0007XK-Lq
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 00:34:37 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ce9d7e6-a3b2-11ef-a0c7-8be0dac302b0;
 Sat, 16 Nov 2024 01:34:34 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 143C75C54E4;
 Sat, 16 Nov 2024 00:33:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43E83C4CECF;
 Sat, 16 Nov 2024 00:34:32 +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: 8ce9d7e6-a3b2-11ef-a0c7-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjhjZTlkN2U2LWEzYjItMTFlZi1hMGM3LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzE3Mjc0LjY2MDAyLCJzZW5kZXIiOiJzc3RhYmVsbGluaUBrZXJuZWwub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731717273;
	bh=r8CvOltkRgEG59MeZ9H1Uugw6iuYvZVkXsyGMozi6y8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VqkjCmy98ywbO+u/eQh4gV9nvQIwALyi+QfU6jPwJCg5/aot0bl+bNl4dMQuGBhGu
	 KOn0IOgPhuCcSQtWekpp3Zs0FIT6jv0Z63moLdMRDWWNx3tCVYV159M+fF9M0PHt0i
	 Oa6IGrV1747RWnX29/ynAZYPI9k6DDS5HMQhU+iILIG4o3ltLQkkklT91obR9DEgTJ
	 FSyM93fHV8+wqUWhbN34UpawEvXBFi4GKCW1yA19DaFfGYJ9yPjjiV/sthHyG5t6mn
	 2wSZ0oNvKldcjBdAg22LiuU2r+0flIFtfia3ZUhytgEbGOq7zs3gkU3Q6U4nF+xAoE
	 uU+MyMVmTN/mQ==
Date: Fri, 15 Nov 2024 16:34:30 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Anthony PERARD <anthony.perard@vates.tech>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 2/3] CI: Define XEN_REGISTRY variable
In-Reply-To: <20241115170739.48983-3-anthony.perard@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2411151629370.1160299@ubuntu-linux-20-04-desktop>
References: <20241115170739.48983-1-anthony.perard@vates.tech> <20241115170739.48983-3-anthony.perard@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Nov 2024, Anthony PERARD wrote:
> This allow to change the registry used for container in a single
> place, and could be controlled via other mean.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  .gitlab-ci.yml                  | 3 +++
>  automation/gitlab-ci/build.yaml | 4 ++--
>  automation/gitlab-ci/test.yaml  | 2 +-
>  3 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index ef4484e09a..941e5822e8 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,3 +1,6 @@
> +variables:
> +  XEN_REGISTRY: registry.gitlab.com/xen-project/xen
> +
>  workflow:
>    rules:
>      - if: $CI_COMMIT_BRANCH =~ /^(master|smoke|^coverity-tested\/.*|stable-.*)$/
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index ce39b0ee21..1ca6764225 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -1,6 +1,6 @@
>  .build-tmpl: &build
>    stage: build
> -  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
> +  image: ${XEN_REGISTRY}/${CONTAINER}
>    script:
>      - ./automation/scripts/build 2>&1 | tee build.log
>    artifacts:
> @@ -208,7 +208,7 @@
>  
>  .yocto-test:
>    stage: build
> -  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
> +  image: ${XEN_REGISTRY}/${CONTAINER}
>    script:
>      - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
>    variables:
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index ab5c8be0cd..1822e3ea5f 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -1,6 +1,6 @@
>  .test-jobs-common:
>    stage: test
> -  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
> +  image: ${XEN_REGISTRY}/${CONTAINER}
>  
>  .arm64-test-needs: &arm64-test-needs
>    - alpine-3.18-arm64-rootfs-export
> -- 
> 
> 
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 00:34:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 00:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838522.1254519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tC6lj-00072j-VX; Sat, 16 Nov 2024 00:34:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838522.1254519; Sat, 16 Nov 2024 00:34: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 1tC6lj-00072c-Ry; Sat, 16 Nov 2024 00:34:31 +0000
Received: by outflank-mailman (input) for mailman id 838522;
 Sat, 16 Nov 2024 00:34: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=aWrC=SL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tC6li-00072W-5b
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 00:34:30 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 878dc4c1-a3b2-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 01:34:25 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id ACA385C5C59;
 Sat, 16 Nov 2024 00:33:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC1BAC4CECF;
 Sat, 16 Nov 2024 00:34:22 +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: 878dc4c1-a3b2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6Ijg3OGRjNGMxLWEzYjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzE3MjY1LjczMTE5MSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731717263;
	bh=hx/bnmrWZ6LULXfPX3ceK87hWvDv2ryRmoc0sbv9dG0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CoHdRJFDnsrdYEg1O4km/DvDl4TBUbi6hTUMV/K/3GCaoOF6WMtPzNxZfd98GaSzl
	 V5Ao0OvdqEsv1sxsS7/ffw8tFGtnGpfuUJurWRrZRqB8NY0TAGdLC+KEdVKGQIgGTT
	 qgd24DIx2xbpGohoStzYe5Qxxzcpv7MrdGyeYzlG13GZWvag4BM97U7WclZdqdDnw/
	 6vQRhko+MHTB5U0cpREiEw6N3/03k9LQ0JB01FpVmHl5fgwXXdLL2ueiaMnq1VXH+0
	 svXLJ5KqHOCZVYSrhXS5kbgimQfMsNiX5Hf1saA5P5sovy5GfbRjCMWaWePj4LCYJb
	 eV29VgILlK5yg==
Date: Fri, 15 Nov 2024 16:34:21 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Anthony PERARD <anthony.perard@vates.tech>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 3/3] CI: New stage "containers" to rebuild some
 containers
In-Reply-To: <20241115170739.48983-4-anthony.perard@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2411151629450.1160299@ubuntu-linux-20-04-desktop>
References: <20241115170739.48983-1-anthony.perard@vates.tech> <20241115170739.48983-4-anthony.perard@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Nov 2024, Anthony PERARD wrote:
> Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
> set. This is to be use with a scheduled pipeline.
> 
> When $XEN_CI_REBUILD_CONTAINERS is set, only build jobs related to the
> containers been rebuild will be executed.
> 
> Build jobs that are using one of the containers been rebuild should
> wait for the container to be rebuild. If it's a normal pipeline, those
> dependency are simply ignored.

This is a fantastic contribution, thanks Anthony!

I think we can simplify this patch by removing all stages except for
"containers" on the scheduled pipeline with XEN_CI_REBUILD_CONTAINERS
set to true.

I think it is a good idea to have a special schedule pipeline for this,
and we should exploit the fact that it is special and only use it to
rebuild the containers. If we want to, we can have a second scheduled
pipeline to do a full normal run afterwards.

This way, there is no need to carry the changes to build.yaml or
test.yaml that are a bit hard to read/understand for someone unfamiliar
with gitlab. When XEN_CI_REBUILD_CONTAINERS == true we only do the
containers stage.


> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> ---
>  .gitlab-ci.yml                       |  2 +
>  automation/gitlab-ci/build.yaml      | 57 ++++++++++++++++++----------
>  automation/gitlab-ci/containers.yaml | 29 ++++++++++++++
>  automation/gitlab-ci/test.yaml       | 13 +++++++
>  4 files changed, 81 insertions(+), 20 deletions(-)
>  create mode 100644 automation/gitlab-ci/containers.yaml
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 941e5822e8..dab9171086 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -8,11 +8,13 @@ workflow:
>      - when: always
>  
>  stages:
> +  - containers
>    - analyze
>    - build
>    - test
>  
>  include:
> +  - 'automation/gitlab-ci/containers.yaml'
>    - 'automation/gitlab-ci/analyze.yaml'
>    - 'automation/gitlab-ci/build.yaml'
>    - 'automation/gitlab-ci/test.yaml'
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 1ca6764225..e01eec1423 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -3,6 +3,9 @@
>    image: ${XEN_REGISTRY}/${CONTAINER}
>    script:
>      - ./automation/scripts/build 2>&1 | tee build.log
> +  rules:
> +    - if: $XEN_CI_REBUILD_CONTAINERS && $XEN_CI_RUN_AFTER_CONTAINER_BUILD
> +    - if: $XEN_CI_REBUILD_CONTAINERS == null
>    artifacts:
>      paths:
>        - binaries/
> @@ -255,6 +258,8 @@
>  .test-jobs-artifact-common:
>    stage: build
>    needs: []
> +  rules:
> +    - if: $XEN_CI_REBUILD_CONTAINERS == null
>  
>  # Arm test artifacts
>  
> @@ -516,17 +521,24 @@ alpine-3.18-clang-debug:
>    variables:
>      CONTAINER: alpine:3.18
>  
> -archlinux-gcc:
> -  extends: .gcc-x86-64-build
> +.container-archlinux-current:
>    variables:
>      CONTAINER: archlinux:current
> +    XEN_CI_RUN_AFTER_CONTAINER_BUILD: true
> +  needs:
> +    - job: container-archlinux-current
> +      optional: true
>    allow_failure: true
>  
> +archlinux-gcc:
> +  extends:
> +    - .gcc-x86-64-build
> +    - .container-archlinux-current
> +
>  archlinux-gcc-debug:
> -  extends: .gcc-x86-64-build-debug
> -  variables:
> -    CONTAINER: archlinux:current
> -  allow_failure: true
> +  extends:
> +    - .gcc-x86-64-build-debug
> +    - .container-archlinux-current
>  
>  centos-7-gcc:
>    extends: .gcc-x86-64-build
> @@ -657,29 +669,34 @@ opensuse-leap-15.6-gcc-debug:
>    variables:
>      CONTAINER: opensuse:leap-15.6-x86_64
>  
> -opensuse-tumbleweed-clang:
> -  extends: .clang-x86-64-build
> +.container-opensuse-tumbleweed-x86_64:
>    variables:
>      CONTAINER: opensuse:tumbleweed-x86_64
> +    XEN_CI_RUN_AFTER_CONTAINER_BUILD: true
> +  needs:
> +    - job: container-opensuse-tumbleweed-x86_64
> +      optional: true
>    allow_failure: true
>  
> +opensuse-tumbleweed-clang:
> +  extends:
> +    - .clang-x86-64-build
> +    - .container-opensuse-tumbleweed-x86_64
> +
>  opensuse-tumbleweed-clang-debug:
> -  extends: .clang-x86-64-build-debug
> -  variables:
> -    CONTAINER: opensuse:tumbleweed-x86_64
> -  allow_failure: true
> +  extends:
> +    - .clang-x86-64-build-debug
> +    - .container-opensuse-tumbleweed-x86_64
>  
>  opensuse-tumbleweed-gcc:
> -  extends: .gcc-x86-64-build
> -  variables:
> -    CONTAINER: opensuse:tumbleweed-x86_64
> -  allow_failure: true
> +  extends:
> +    - .gcc-x86-64-build
> +    - .container-opensuse-tumbleweed-x86_64
>  
>  opensuse-tumbleweed-gcc-debug:
> -  extends: .gcc-x86-64-build-debug
> -  variables:
> -    CONTAINER: opensuse:tumbleweed-x86_64
> -  allow_failure: true
> +  extends:
> +    - .gcc-x86-64-build-debug
> +    - .container-opensuse-tumbleweed-x86_64
>  
>  # PowerPC builds (x86 cross)
>  debian-11-ppc64le-gcc:
> diff --git a/automation/gitlab-ci/containers.yaml b/automation/gitlab-ci/containers.yaml
> new file mode 100644
> index 0000000000..25e8bdc34b
> --- /dev/null
> +++ b/automation/gitlab-ci/containers.yaml
> @@ -0,0 +1,29 @@
> +.container-build-tmpl:
> +  stage: containers
> +  image: docker:stable
> +  tags:
> +    - container-builder
> +  rules:
> +    - if: $XEN_CI_REBUILD_CONTAINERS
> +  services:
> +    - docker:dind
> +  before_script:
> +    - apk add make
> +    - docker info
> +    - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
> +  script:
> +    - make -C automation/build PUSH=1 REGISTRY=${XEN_REGISTRY} ${CONTAINER/:/\/}
> +  after_script:
> +    - docker logout
> +
> +container-archlinux-current:
> +  extends:
> +    - .container-build-tmpl
> +  variables:
> +    CONTAINER: "archlinux:current"
> +
> +container-opensuse-tumbleweed-x86_64:
> +  extends:
> +    - .container-build-tmpl
> +  variables:
> +    CONTAINER: "opensuse:tumbleweed-x86_64"
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 1822e3ea5f..e4d4f1f3c9 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -1,6 +1,16 @@
> +.test-rules:
> +  # Only add rules which prevent jobs from been added to the pipeline. They
> +  # should all have "when: never".
> +  pre_rules:
> +    - if: $XEN_CI_REBUILD_CONTAINERS
> +      when: never
> +
>  .test-jobs-common:
>    stage: test
>    image: ${XEN_REGISTRY}/${CONTAINER}
> +  rules:
> +    - !reference [.test-rules, pre_rules]
> +    - when: always
>  
>  .arm64-test-needs: &arm64-test-needs
>    - alpine-3.18-arm64-rootfs-export
> @@ -99,6 +109,7 @@
>        - '*.dtb'
>      when: always
>    rules:
> +    - !reference [.test-rules, pre_rules]
>      - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
>    tags:
>      - xilinx
> @@ -117,6 +128,7 @@
>        - '*.log'
>      when: always
>    rules:
> +    - !reference [.test-rules, pre_rules]
>      - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
>    tags:
>      - xilinx
> @@ -136,6 +148,7 @@
>        - '*.log'
>      when: always
>    rules:
> +    - !reference [.test-rules, pre_rules]
>      - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
>    tags:
>      - qubes-hw2
> -- 
> 
> 
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 06:06:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 06:06:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838591.1254565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCBwn-0003EY-6a; Sat, 16 Nov 2024 06:06:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838591.1254565; Sat, 16 Nov 2024 06:06: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 1tCBwn-0003ER-3T; Sat, 16 Nov 2024 06:06:17 +0000
Received: by outflank-mailman (input) for mailman id 838591;
 Sat, 16 Nov 2024 06:06: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=k39F=SL=wanadoo.fr=christophe.jaillet@srs-se1.protection.inumbo.net>)
 id 1tCBwm-0003Aq-5m
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 06:06:16 +0000
Received: from smtp.smtpout.orange.fr (smtp-17.smtpout.orange.fr
 [80.12.242.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dbfa98fa-a3e0-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 07:06:03 +0100 (CET)
Received: from localhost.localdomain ([90.11.132.44])
 by smtp.orange.fr with ESMTPA
 id CBwItlkEVyQmhCBwItrt0n; Sat, 16 Nov 2024 07:06:02 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbfa98fa-a3e0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjgwLjEyLjI0Mi4xNyIsImhlbG8iOiJzbXRwLnNtdHBvdXQub3JhbmdlLmZyIn0=
X-Custom-Transaction: eyJpZCI6ImRiZmE5OGZhLWEzZTAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzM3MTYzLjU2MDgwMywic2VuZGVyIjoiY2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnIiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wanadoo.fr;
	s=t20230301; t=1731737162;
	bh=1GOO379j5kHelQgT13xeDCIW+pFPJCeiM7WSIuvag78=;
	h=From:To:Subject:Date:Message-ID:MIME-Version;
	b=mL98MjzVZSShtzisX9zbjDjIb7KE72buAzIx9jorkgCEIlxacBGBiKDqnznYupede
	 vEhaEvssP8Otw+abSwd4UipThVl5qw3v6w8RixuAXgrl/p9FBRiYmldRfZZljgK0OD
	 FX0UB9px2S9OjhfpAHnQggpK1elWNH8UBNVIvO5x+AsAiYtyf4oGwInz8jFtqh7DDu
	 OMNwG4GURPpChqfcVzLVhpacwz+NEqWf9xIvmwF/gxmCGy7nRrRkaf4TeGrlu6c0Ll
	 o9NHONgP90fIf7c6ZsyFFLJ/v2i9NFywx5+jxHfxBiA3eBfpU5DKAu5obNXbrUQywu
	 rI95zY+eQlUcg==
X-ME-Helo: localhost.localdomain
X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI=
X-ME-Date: Sat, 16 Nov 2024 07:06:02 +0100
X-ME-IP: 90.11.132.44
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
To: eahariha@linux.microsoft.com
Cc: James.Bottomley@HansenPartnership.com,
	Julia.Lawall@inria.fr,
	agordeev@linux.ibm.com,
	airlied@gmail.com,
	akpm@linux-foundation.org,
	andrew+netdev@lunn.ch,
	anna-maria@linutronix.de,
	ath11k@lists.infradead.org,
	axboe@kernel.dk,
	bcm-kernel-feedback-list@broadcom.com,
	borntraeger@linux.ibm.com,
	catalin.marinas@arm.com,
	ceph-devel@vger.kernel.org,
	christian.gmeiner@gmail.com,
	christophe.leroy@csgroup.eu,
	cocci@inria.fr,
	coreteam@netfilter.org,
	daniel@zonque.org,
	davem@davemloft.net,
	dick.kennedy@broadcom.com,
	dri-devel@lists.freedesktop.org,
	edumazet@google.com,
	etnaviv@lists.freedesktop.org,
	florian.fainelli@broadcom.com,
	gor@linux.ibm.com,
	gregkh@linuxfoundation.org,
	haojian.zhuang@gmail.com,
	hca@linux.ibm.com,
	horms@kernel.org,
	idryomov@gmail.com,
	intel-xe@lists.freedesktop.org,
	james.smart@broadcom.com,
	jeroendb@google.com,
	jikos@kernel.org,
	jinpu.wang@cloud.ionos.com,
	jjohnson@kernel.org,
	joe.lawrence@redhat.com,
	johan.hedberg@gmail.com,
	jpoimboe@kernel.org,
	kadlec@netfilter.org,
	kuba@kernel.org,
	kvalo@kernel.org,
	l.stach@pengutronix.de,
	linux+etnaviv@armlinux.org.uk,
	linux-arm-kernel@lists.infradead.org,
	linux-block@vger.kernel.org,
	linux-bluetooth@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-rpi-kernel@lists.infradead.org,
	linux-s390@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	linux-sound@vger.kernel.org,
	linux-staging@lists.linux.dev,
	linux-wireless@vger.kernel.org,
	linux@armlinux.org.uk,
	linuxppc-dev@lists.ozlabs.org,
	live-patching@vger.kernel.org,
	louis.peens@corigine.com,
	lucas.demarchi@intel.com,
	luiz.dentz@gmail.com,
	maarten.lankhorst@linux.intel.com,
	maddy@linux.ibm.com,
	marcel@holtmann.org,
	martin.petersen@oracle.com,
	mbenes@suse.cz,
	mpe@ellerman.id.au,
	mripard@kernel.org,
	naveen@kernel.org,
	netdev@vger.kernel.org,
	netfilter-devel@vger.kernel.org,
	nicolas.palix@imag.fr,
	npiggin@gmail.com,
	obitton@habana.ai,
	ogabbay@kernel.org,
	oss-drivers@corigine.com,
	pabeni@redhat.com,
	pablo@netfilter.org,
	perex@perex.cz,
	pkaligineedi@google.com,
	pmladek@suse.com,
	rjui@broadcom.com,
	robert.jarzmik@free.fr,
	rodrigo.vivi@intel.com,
	roger.pau@citrix.com,
	sbranden@broadcom.com,
	shailend@google.com,
	simona@ffwll.ch,
	svens@linux.ibm.com,
	thomas.hellstrom@linux.intel.com,
	tiwai@suse.com,
	tzimmermann@suse.de,
	xen-devel@lists.xenproject.org,
	xiubli@redhat.com
Subject: Re: [PATCH v2 02/21] coccinelle: misc: Add secs_to_jiffies script
Date: Sat, 16 Nov 2024 07:05:40 +0100
Message-ID: <20241116060541.5798-1-christophe.jaillet@wanadoo.fr>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
References: <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©crit :
> Suggested-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>   scripts/coccinelle/misc/secs_to_jiffies.cocci | 21 +++++++++++++++++++++
>   1 file changed, 21 insertions(+)
> 
> diff --git a/scripts/coccinelle/misc/secs_to_jiffies.cocci b/scripts/coccinelle/misc/secs_to_jiffies.cocci
> new file mode 100644
> index 0000000000000000000000000000000000000000..af762b1c0aac8f044f21150bfaafd9efc834ee87
> --- /dev/null
> +++ b/scripts/coccinelle/misc/secs_to_jiffies.cocci
> @@ -0,0 +1,21 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +///
> +/// Find usages of:
> +/// - msecs_to_jiffies(value*1000)
> +/// - msecs_to_jiffies(value*MSEC_PER_SEC)
> +///
> +// Confidence: High
> +// Copyright: (C) 2024 Easwar Hariharan Microsoft
> +//
> +// Keywords: secs, seconds, jiffies
> +//
> +
> +@@ constant C; @@
> +
> +- msecs_to_jiffies(C * 1000)
> ++ secs_to_jiffies(C)
> +
> +@@ constant C; @@
> +
> +- msecs_to_jiffies(C * MSEC_PER_SEC)
> ++ secs_to_jiffies(C)
> 
Hi,

	@@ constant C =~ "000"; @@

	* msecs_to_jiffies(C)

also spots things like msecs_to_jiffies(1000)

I'm not sure that coccinelle is enable to capture part of the regex to automate the removal of the 000 when converting from ms to s.

Just my 2c,

CJ


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 07:59:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 07:59:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838602.1254575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCDiW-0003KB-1C; Sat, 16 Nov 2024 07:59:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838602.1254575; Sat, 16 Nov 2024 07:59: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 1tCDiV-0003K4-Tz; Sat, 16 Nov 2024 07:59:39 +0000
Received: by outflank-mailman (input) for mailman id 838602;
 Sat, 16 Nov 2024 07:59: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=QYYW=SL=linaro.org=dan.carpenter@srs-se1.protection.inumbo.net>)
 id 1tCDiU-0003Jf-HW
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 07:59: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 b7a66d65-a3f0-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 08:59:34 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4315eac969aso14377145e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Nov 2024 23:59:34 -0800 (PST)
Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432dab806e1sm81445685e9.20.2024.11.15.23.59.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Nov 2024 23:59: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: b7a66d65-a3f0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC13bTEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI3YTY2ZDY1LWEzZjAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzQzOTc0LjI1MjgyNywic2VuZGVyIjoiZGFuLmNhcnBlbnRlckBsaW5hcm8ub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1731743973; x=1732348773; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=xrsdExZKqTlwoTRHJD0ZdQo7yx2uU25FrNS0bU2S5+Y=;
        b=YkX644enOMN0JU33dWgUm21/ifexE9wO/9VjzKchFwTPUm+8ia+9Wfoc2BlKDRwysi
         T14QTdFpT7Wg3HIpwT3cKR9KjT3XbDx4Wowl9TKURbbbSQgTlJ4yf7fCU8e4P6P/hcCL
         xImqk8Gy8Oo0gMO/MfOMNa50umewUrmzKBpQB8RL3kPNpWKqJqrzkWQ75d5B0YZaD6Jz
         t0NUBksOMsRdU0oAVNaLgFetLdbHMZINswC/hVzhI1WlvID6Wa39eWK/ejDvTEpW1anA
         UTzKCPoyIqpFjPMnuCF9vKVu9TPpQ8Orgqb2tnTIJbUAMRnRopoBo8LB1zZOqumrU6ux
         n6yQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731743973; x=1732348773;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xrsdExZKqTlwoTRHJD0ZdQo7yx2uU25FrNS0bU2S5+Y=;
        b=A2Cb82nYEkHEwpuX9KCmIlD/rmLFvcre7g8mo9zDtGW52IZCDJP2lzjilvjr/5743Y
         NB9WJLWU47MzjEyiGTcz/38lc0EAT2t388WDccygz+IkHK7l4KvRZm5E5wK1C/FMc3vj
         8UywkRzmO49EgXvOlqrowGe0n7R7SBecj0kgZzavG1faocfL4AvoPyHWFLT0QFOiHYSb
         Xes2JCs0u5Mvdk1glfkURcbFKAFq59zakwlhkV4f8Ahbbboxb6OCgMgnN3dBIm2oLWFJ
         0H/gZCaIHno3BDjT745DkdkXjiziy93M3xZytPDHNe0jO0C/cOMeT864+C8LVI5iUgJv
         t60w==
X-Forwarded-Encrypted: i=1; AJvYcCXlDqVgfkS3PIP4qx7F4crGx7ps+urOQMGGj2lUVeztjgiF8vWkONcR2sBYyQk2NvFEyYOAYgqokqo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxwy4w7MKA9A0kd20ER3YxPVGcPw5CReI5Gmcrv6sd/4IOkQo7d
	KZnzhyEIxG79iUed1+qapS6bbRONd67U+f+CLba2OvLbSIky3V/FToT2RRXATOk=
X-Google-Smtp-Source: AGHT+IHwPca/r8TengkDOJBkzNMy5+IC+M/DjfY5vaIp0XwfqGKX+JdkORZRtZVKPaDZkydKQ4+r2A==
X-Received: by 2002:a05:600c:19cb:b0:431:559d:4103 with SMTP id 5b1f17b1804b1-432defe3203mr49400585e9.7.1731743973417;
        Fri, 15 Nov 2024 23:59:33 -0800 (PST)
Date: Sat, 16 Nov 2024 10:59:29 +0300
From: Dan Carpenter <dan.carpenter@linaro.org>
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
	Jozsef Kadlecsik <kadlec@netfilter.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Julia Lawall <Julia.Lawall@inria.fr>,
	Nicolas Palix <nicolas.palix@imag.fr>,
	Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Russell King <linux@armlinux.org.uk>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Ofir Bitton <obitton@habana.ai>, Oded Gabbay <ogabbay@kernel.org>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	Thomas =?iso-8859-1?Q?Hellstr=F6m?= <thomas.hellstrom@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Jeroen de Borst <jeroendb@google.com>,
	Praveen Kaligineedi <pkaligineedi@google.com>,
	Shailend Chand <shailend@google.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	James Smart <james.smart@broadcom.com>,
	Dick Kennedy <dick.kennedy@broadcom.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
	Jeff Johnson <jjohnson@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jack Wang <jinpu.wang@cloud.ionos.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
	Petr Mladek <pmladek@suse.com>,
	Joe Lawrence <joe.lawrence@redhat.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Russell King <linux+etnaviv@armlinux.org.uk>,
	Christian Gmeiner <christian.gmeiner@gmail.com>,
	Louis Peens <louis.peens@corigine.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Naveen N Rao <naveen@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	cocci@inria.fr, linux-arm-kernel@lists.infradead.org,
	linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-block@vger.kernel.org,
	linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
	linux-mm@kvack.org, linux-bluetooth@vger.kernel.org,
	linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org,
	ceph-devel@vger.kernel.org, live-patching@vger.kernel.org,
	linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org,
	oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org,
	Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH 19/22] livepatch: Convert timeouts to secs_to_jiffies()
Message-ID: <896c656f-6d8c-4337-8464-7557c43a80ab@stanley.mountain>
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v1-19-19aadc34941b@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-19-19aadc34941b@linux.microsoft.com>

On Fri, Nov 15, 2024 at 09:22:49PM +0000, Easwar Hariharan wrote:
> diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
> index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
> --- a/samples/livepatch/livepatch-callbacks-busymod.c
> +++ b/samples/livepatch/livepatch-callbacks-busymod.c
> @@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
>  {
>  	pr_info("%s\n", __func__);
>  	schedule_delayed_work(&work,
> -		msecs_to_jiffies(1000 * 0));
> +		secs_to_jiffies(0));

Better to just call schedule_delayed_work(&work, 0);

>  	return 0;
>  }

regards,
dan carpenter


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 08:20:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 08:20:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838615.1254585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCE2S-0002Ek-PA; Sat, 16 Nov 2024 08:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838615.1254585; Sat, 16 Nov 2024 08: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 1tCE2S-0002Ed-Lk; Sat, 16 Nov 2024 08:20:16 +0000
Received: by outflank-mailman (input) for mailman id 838615;
 Sat, 16 Nov 2024 08:20: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCE2Q-0002EX-OG
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 08:20:14 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 98fea856-a3f3-11ef-a0c8-8be0dac302b0;
 Sat, 16 Nov 2024 09:20:11 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr5YN504Vz9sSR;
 Sat, 16 Nov 2024 08:46:16 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id lhQM5FPtGe1r; Sat, 16 Nov 2024 08:46:16 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr5YN3dzNz9sSL;
 Sat, 16 Nov 2024 08:46:16 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 60E718B7A0;
 Sat, 16 Nov 2024 08:46:16 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id DVfL0PgYOHHm; Sat, 16 Nov 2024 08:46:16 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 93F818B763;
 Sat, 16 Nov 2024 08:46: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: 98fea856-a3f3-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6Ijk4ZmVhODU2LWEzZjMtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzQ1MjExLjIyNzE0NSwic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1IiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <856ae9de-0712-4a44-ab3d-9e5077725877@csgroup.eu>
Date: Sat, 16 Nov 2024 08:46:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <10ee4e8f-d8b4-4502-a5e2-0657802aeb11@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <10ee4e8f-d8b4-4502-a5e2-0657802aeb11@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/11/2024 Ã  22:29, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
> 
> On 11/15/2024 1:26 PM, Easwar Hariharan wrote:
>> This is a series that follows up on my previous series to introduce
>> secs_to_jiffies() and convert a few initial users.[1] In the review for
>> that series, Anna-Maria requested converting other users with
>> Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
>> that use the multiply pattern of either of:
>> - msecs_to_jiffies(N*1000), or
>> - msecs_to_jiffies(N*MSEC_PER_SEC)
>>
>> The entire conversion is made with Coccinelle in the script added in
>> patch 2. Some changes suggested by Coccinelle have been deferred to
>> later parts that will address other possible variant patterns.
>>
>> CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>>
>> [1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fall%2F20241030-open-coded-timeouts-v3-0-9ba123facf88%40linux.microsoft.com%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cff4857ad28a74e7051f708dd05bc8d45%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638673029556700628%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=q%2FHm%2Fal%2FBtK5J4nd%2BqJHNeSJ3f%2B0lVCKzigUUoL2vjw%3D&reserved=0
>> [2] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fall%2F8734kngfni.fsf%40somnus%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cff4857ad28a74e7051f708dd05bc8d45%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638673029556721028%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=PZiR%2B9GSo3Zk7cD85MyM4ZpqvIQtD0lSxd4G1gZ4UFE%3D&reserved=0
>>
>> ---
>> Changes in v2:
>> - EDITME: describe what is new in this series revision.
>> - EDITME: use bulletpoints and terse descriptions.
>> - Link to v1: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fr%2F20241115-converge-secs-to-jiffies-v1-0-19aadc34941b%40linux.microsoft.com&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cff4857ad28a74e7051f708dd05bc8d45%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638673029556732854%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=NXdY%2FTuSufEPcy4ijIj%2F0%2BW3K%2FhkLs2JGu5C1WFMPOM%3D&reserved=0
>>
> 
> Apologies, I missed out on editing the changelog here. v1 included a
> patch that's already been accepted, there are no other changes in v2.

You should refrain from sending such a patch bomb twice in 4 minutes. If 
there is no other change you could have just replied to that already 
included patch to say so.

In any case wait a few days so that people have time to review and 
provide comments.

Christophe


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 09:00:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 09:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838628.1254596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCEf3-0003kJ-T7; Sat, 16 Nov 2024 09:00:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838628.1254596; Sat, 16 Nov 2024 09:00: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 1tCEf3-0003kC-Ne; Sat, 16 Nov 2024 09:00:09 +0000
Received: by outflank-mailman (input) for mailman id 838628;
 Sat, 16 Nov 2024 09:00: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=Zkug=SL=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tCEf3-0003jC-3a
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 09:00:09 +0000
Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com
 [2607:f8b0:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ad16a3c-a3f9-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 10:00:04 +0100 (CET)
Received: by mail-ot1-x32e.google.com with SMTP id
 46e09a7af769-7180ab89c58so689108a34.1
 for <xen-devel@lists.xenproject.org>; Sat, 16 Nov 2024 01:00: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: 2ad16a3c-a3f9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC1vdDEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJhZDE2YTNjLWEzZjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzQ3NjA0LjA4OTkwNCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731747603; x=1732352403; 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=NTbW386E+4x70tu0Oqr6Co5qRfriONnFUJwS5ofOy7Y=;
        b=Cg27FahZh3s8KyijFIOWDRNm4c6z5Csd7J/9OuZtPShkre/IGLYDTyBN1wJv48XY5k
         wIYmrCU7+7FYNOzDd+SzXCeiBbuJWzJORVl6gU6UHqP8D2joXIq1uhx6AgvOK8p02OeU
         vMxeDzUqXq+zEi4hV0sJJdkOUgFrGT+voI5xQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731747603; x=1732352403;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=NTbW386E+4x70tu0Oqr6Co5qRfriONnFUJwS5ofOy7Y=;
        b=spFhhOng5HfwO12NPR1CRYmjNwQTnQgy3pG/nU+hKEfPP9g9liQj5iF3jBnj/b1Rqb
         HjxytyrtWW2EAku1Te+AYyMSdi6/iNYHFqOIg042Uleu6+F+PWBpSF0QI5/THSkCOnFO
         oGDsQp4645/kduOChrFzQjUlLVWA0eiHzxo/K6dCkgdPoOM5k/X7y3h1+jQn3vcum3O9
         MTQvC3rvXsDMTxJo3f6ofJ0Sv/ZHtjZI5uoNclsDsm9qb53/UwalbtgicF3sTFbqZxAk
         IJtXlVHtvLNma409fmJShq+2cZaQ/U096uCPwZlHol1wyutX7nujwLjnFd05cYZV1MIM
         zDug==
X-Gm-Message-State: AOJu0YzLaMFr0+fIePLdRK+3SjVaB9VMHFd3/zfJOwI0nBJQpNzuVUCk
	Z/+boTZBgfOhICilr96JdbkuIOoNeiVVXtub/0hJJvFszTJ35r0kt7M73/lxryPT0qqBg1rJEnb
	SlpazlrMY1aDmDfgeX+TVvH2gdz6zDx6jOK6t7Q==
X-Google-Smtp-Source: AGHT+IElMW+9HmYDsLVNULkddheex2DjtehqjYQTdSRJS0D7s/BjKBjgo2baMc8kakGW+tX1lNG/9XOyCacRvx5irOQ=
X-Received: by 2002:a05:6830:3691:b0:718:1767:912f with SMTP id
 46e09a7af769-71a777b6770mr6399585a34.0.1731747602681; Sat, 16 Nov 2024
 01:00:02 -0800 (PST)
MIME-Version: 1.0
References: <alpine.DEB.2.22.394.2411151617580.1160299@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2411151617580.1160299@ubuntu-linux-20-04-desktop>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Sat, 16 Nov 2024 08:59:52 +0000
Message-ID: <CACHz=ZjZtP=tLuBX5Ko88_OLK8mEiPEvSwzNB4rd=-fn2uK_Eg@mail.gmail.com>
Subject: Re: [PATCH] misra: increase identifiers length to 64
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, alessandro.zucchelli@bugseng.com, 
	simone.ballarin@bugseng.com, consulting@bugseng.com, jbeulich@suse.com, 
	andrew.cooper3@citrix.com, julien@xen.org, roger.pau@citrix.com, 
	bertrand.marquis@arm.com, michal.orzel@amd.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Nov 16, 2024 at 12:23=E2=80=AFAM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> Currently the identifiers characters limit is arbitrarily set to 40. It
> causes a few violations as we have some identifiers longer than 40.
>
> Increase the limit to another rather arbitrary limit of 64. Thanks to
> this change, we remove a few violations, getting us one step closer to
> marking Rules 5.2 and 5.4 as clean.
>
> Also update the ECLAIR config that was actually set to 63 as character
> limit.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>
> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation=
/eclair_analysis/ECLAIR/toolchain.ecl
> index 86e9a79b52..8fb1778bce 100644
> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> @@ -155,8 +155,8 @@
>  -doc_end
>
>  -doc_begin=3D"See Section \"4.3 Identifiers\" of "GCC_MANUAL"."
> --config=3DSTD.extidsig, behavior+=3D{c99, GCC_ARM64, "63"}
> --config=3DSTD.extidsig, behavior+=3D{c99, GCC_X86_64, "63"}
> +-config=3DSTD.extidsig, behavior+=3D{c99, GCC_ARM64, "64"}
> +-config=3DSTD.extidsig, behavior+=3D{c99, GCC_X86_64, "64"}
>  -doc_end
>
>  #
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 4a144da8d6..3ed5801bff 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -154,7 +154,7 @@ maintainers if you want to suggest a change.
>     * - `Rule 5.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-=
Suite/-/blob/master/R_05_01_2.c>`_
>       - Required
>       - External identifiers shall be distinct
> -     - The Xen characters limit for identifiers is 40. Public headers
> +     - The Xen characters limit for identifiers is 64. Public headers
>         (xen/include/public/) are allowed to retain longer identifiers
>         for backward compatibility.
>

Do we need to retain this comments about public headers or now with 64
characters they all fit into the limit?

> @@ -162,7 +162,7 @@ maintainers if you want to suggest a change.
>       - Required
>       - Identifiers declared in the same scope and name space shall be
>         distinct
> -     - The Xen characters limit for identifiers is 40. Public headers
> +     - The Xen characters limit for identifiers is 64. Public headers
>         (xen/include/public/) are allowed to retain longer identifiers
>         for backward compatibility.
>
> @@ -177,7 +177,7 @@ maintainers if you want to suggest a change.
>     * - `Rule 5.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-=
Suite/-/blob/master/R_05_04.c>`_
>       - Required
>       - Macro identifiers shall be distinct
> -     - The Xen characters limit for macro identifiers is 40. Public
> +     - The Xen characters limit for macro identifiers is 64. Public
>         headers (xen/include/public/) are allowed to retain longer
>         identifiers for backward compatibility.
>
>

Frediano


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 09:50:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 09:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838642.1254606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFRQ-0006mV-Fr; Sat, 16 Nov 2024 09:50:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838642.1254606; Sat, 16 Nov 2024 09:50: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 1tCFRQ-0006mO-B0; Sat, 16 Nov 2024 09:50:08 +0000
Received: by outflank-mailman (input) for mailman id 838642;
 Sat, 16 Nov 2024 09:50: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCFRP-0006kQ-It
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 09:50:07 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 26b3fd02-a400-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 10:50:02 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr85N5Gv6z9sSR;
 Sat, 16 Nov 2024 10:40:40 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id RSlaypuNxNm4; Sat, 16 Nov 2024 10:40:40 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr85N41fnz9sSL;
 Sat, 16 Nov 2024 10:40:40 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 6B8F18B7A0;
 Sat, 16 Nov 2024 10:40:40 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id 9RKIVUrbVgoj; Sat, 16 Nov 2024 10:40:40 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id EDBE28B763;
 Sat, 16 Nov 2024 10:40: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: 26b3fd02-a400-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6IjI2YjNmZDAyLWE0MDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzUwNjAyLjkyMzUxNSwic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1IiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <b370e8d0-2f87-4819-8f30-1181946295d9@csgroup.eu>
Date: Sat, 16 Nov 2024 10:40:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/21] netfilter: conntrack: Cleanup timeout
 definitions
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-1-911fb7595e79@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-1-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
> 
> None of the higher order definitions are used anymore, so remove
> definitions for minutes, hours, and days timeouts. Convert the seconds
> denominated timeouts to secs_to_jiffies()

There is very similar things with tcp_timeouts[] in 
nf_conntrack_proto_tcp.c, why not convert it as well ?

> 
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>   net/netfilter/nf_conntrack_proto_sctp.c | 21 ++++++++-------------
>   1 file changed, 8 insertions(+), 13 deletions(-)
> 
> diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
> index 4cc97f971264ed779434ab4597dd0162586b3736..6c95ac96fa42a39acafb5b88a7cf8898010e911c 100644
> --- a/net/netfilter/nf_conntrack_proto_sctp.c
> +++ b/net/netfilter/nf_conntrack_proto_sctp.c
> @@ -39,20 +39,15 @@ static const char *const sctp_conntrack_names[] = {
>          [SCTP_CONNTRACK_HEARTBEAT_SENT]         = "HEARTBEAT_SENT",
>   };
> 
> -#define SECS  * HZ
> -#define MINS  * 60 SECS
> -#define HOURS * 60 MINS
> -#define DAYS  * 24 HOURS
> -
>   static const unsigned int sctp_timeouts[SCTP_CONNTRACK_MAX] = {
> -       [SCTP_CONNTRACK_CLOSED]                 = 10 SECS,
> -       [SCTP_CONNTRACK_COOKIE_WAIT]            = 3 SECS,
> -       [SCTP_CONNTRACK_COOKIE_ECHOED]          = 3 SECS,
> -       [SCTP_CONNTRACK_ESTABLISHED]            = 210 SECS,
> -       [SCTP_CONNTRACK_SHUTDOWN_SENT]          = 3 SECS,
> -       [SCTP_CONNTRACK_SHUTDOWN_RECD]          = 3 SECS,
> -       [SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]      = 3 SECS,
> -       [SCTP_CONNTRACK_HEARTBEAT_SENT]         = 30 SECS,
> +       [SCTP_CONNTRACK_CLOSED]                 = secs_to_jiffies(10),
> +       [SCTP_CONNTRACK_COOKIE_WAIT]            = secs_to_jiffies(3),
> +       [SCTP_CONNTRACK_COOKIE_ECHOED]          = secs_to_jiffies(3),
> +       [SCTP_CONNTRACK_ESTABLISHED]            = secs_to_jiffies(210),
> +       [SCTP_CONNTRACK_SHUTDOWN_SENT]          = secs_to_jiffies(3),
> +       [SCTP_CONNTRACK_SHUTDOWN_RECD]          = secs_to_jiffies(3),
> +       [SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]      = secs_to_jiffies(3),
> +       [SCTP_CONNTRACK_HEARTBEAT_SENT]         = secs_to_jiffies(3),

Was 30 before, if you think it must be changed to 3 you must explain it 
in the commit message, or maybe do another patch for that change.

>   };
> 
>   #define        SCTP_FLAG_HEARTBEAT_VTAG_FAILED 1
> 
> --
> 2.34.1
> 

Christophe



From xen-devel-bounces@lists.xenproject.org Sat Nov 16 09:57:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 09:57:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838651.1254614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFYM-0004oZ-4L; Sat, 16 Nov 2024 09:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838651.1254614; Sat, 16 Nov 2024 09: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 1tCFYM-0004oS-1a; Sat, 16 Nov 2024 09:57:18 +0000
Received: by outflank-mailman (input) for mailman id 838651;
 Sat, 16 Nov 2024 09:57:17 +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 1tCFYL-0004oM-5o
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 09:57:17 +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 1tCFYK-007zIC-18;
 Sat, 16 Nov 2024 09:57:16 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCFYK-007u1W-1E;
 Sat, 16 Nov 2024 09:57: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>
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=xM9MBGdF3i3F4N90skfvnHYi+jOj9ehEuL1gE+3pHBI=; b=CLGXiX3uppkHmJm/3ZVQcudyfW
	S3OdkffKoLezQ2QXjpgt8DiBFm/jpeFoCkqnuK8Dv6wKyWsNGsJqM8sgn0cESn/4uD3BhuVeyxJ47
	amIjZY3F7fnHJpZT3kRnFV+egVulyV86uZzjPTBoDCZ4g6l0/gSDhPsokIGvacpiK71o=;
Message-ID: <04a358de-ed76-46b4-bc09-f3f343e09186@xen.org>
Date: Sat, 16 Nov 2024 09:57:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
To: Ayan Kumar Halder <ayankuma@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Artem Mygaiev <artem_mygaiev@epam.com>,
 Munakata Hisao <hisao.munakata.vt@renesas.com>
References: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
 <4dbf2c4d-f7bd-4032-b52f-29c24e3ec055@xen.org>
 <22282f26-5c66-444b-b63a-d5442e6fcdad@amd.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <22282f26-5c66-444b-b63a-d5442e6fcdad@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 15/11/2024 18:53, Ayan Kumar Halder wrote:
>>> +Assign vCPUs from CPU pool
>>> +--------------------------
>>> +
>>> +`XenSwdgn~arm64_assign_vcpus_cpu_pool~1`
>>> +
>>> +Description:
>>> +Xen shall assign vCPUs to a domain from a CPU pool.
>>
>> Same remark about the wording. You create a domain with N vCPUs and 
>> *assign* a CPU pool to a domain. 
> 
> Ok, so all the previous 3 requirements can be merged into
> 
> Xen shall create a domain with N vCPUs and assign a CPU pool to a domain.
> 
> Or
> 
> Xen shall create a domain with N vCPUs.

I think this one is better because it is not mandatory for the user to 
select a CPU pool and you will have it ...

> 
> (which of the two looks better to you if we keep the next requirement ?)

... by the next one.

> 
> Comments:
> 
> Here N is determined by the device tree configuration provided by the user.
> 
>> You also assign pCPU to a CPU pool.
>>
>> But I am not sure about if this requirement is actually necessary 
>> given ...
>>
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Covers:
>>> + - `XenProd~static_domains_configuration~1`
>>> +
>>> +Specify CPU pool scheduler
>>> +--------------------------
>>> +
>>> +`XenSwdgn~arm64_specify_cpu_pool_scheduler~1`
>>> +
>>> +Description:
>>> +Xen shall assign a CPU pool scheduler to a domain.
>>
>> ... you have th is one.
> So, we can keep it as it is.
>>
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Covers:
>>> + - `XenProd~static_domains_configuration~1`
>>> +
>>> +Assign virtual UART
>>> +-------------------
>>> +
>>> +`XenSwdgn~arm64_assign_virtual_uart~1`
>>> +
>>> +Description:
>>> +Xen shall assign a virtual UART to a domain.
>>
>> Are we talking about the virtual PL011 or the fake emulation of the 
>> real UART we do?
> virtual PL011.

Is it possible to specify it in the market requirements?

[...]

>>> +
>>> +Static VM definition
>>> +--------------------
>>> +
>>> +`XenMkt~static_vm_definition~1`
>>> +
>>> +Description:
>>> +Xen shall support specifying resources for a domain.
>>
>> Compare to the other requirements, this is quite a vague. Should we 
>> list the resources?
> 
> The list of resources depends on what the user has provided in the 
> device tree configuration.
> 
> But the requirement is correct as it is. Xen allows direct assignment of 
> devices to domains (ie passthrough).
> 
> How do you want to write it ?

This is probably a better question for Bertrand. I don't know how market 
requirements are usually described. I was making a comparison with the 
other where you explicitely listed the expected resources (e.g. CPU, 
Memory, device).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:11:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:11:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838660.1254625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFll-0006sW-9d; Sat, 16 Nov 2024 10:11:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838660.1254625; Sat, 16 Nov 2024 10: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 1tCFll-0006sP-5n; Sat, 16 Nov 2024 10:11:09 +0000
Received: by outflank-mailman (input) for mailman id 838660;
 Sat, 16 Nov 2024 10:11:07 +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 1tCFlj-0006pw-3t
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:11:07 +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 1tCFli-007zdX-1R;
 Sat, 16 Nov 2024 10:11:06 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCFli-007ukQ-1P;
 Sat, 16 Nov 2024 10:11: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>
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=dFlqahF601Q3GKL30RzB6iLL/3eEwxGitLmm14QHg9w=; b=Rd+eiONqv862ns5qpeodzGiVrx
	3MplGl5FxOsFuFnFYSrabpMDXbEFGQkd/C+DVL358ASQt5LGGjGh8j1tIAHLjFR5AMlKrWgrDCIfC
	1UPyWA0PrAN+pwqQqw1CrWKn5LkWcDky7XmOQWdrlmwWaJ4Hxtg5ZHw214klv/UO9udY=;
Message-ID: <804b2455-27f8-4017-a771-9c76d829d164@xen.org>
Date: Sat, 16 Nov 2024 10:11:04 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] drivers/char: rename arm-uart.c to uart-init.c
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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: <b2eed7fed17c9e9a3a9414e6d97360a7deeb2acb.1731671392.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b2eed7fed17c9e9a3a9414e6d97360a7deeb2acb.1731671392.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 15/11/2024 12:48, Oleksii Kurochko wrote:
> Rename the file containing uart_init() to enable reuse across other
> architectures that utilize device trees or SPCR tables to locate UART
> information.
> After locating UART data, {acpi}_device_init() is called to initialize
> the UART.
> 
> arm_uart_init() is renamed to uart_init() to be reused by other
> architectures.
> 
> A new configuration option, CONFIG_UART_INIT, is introduced, currently
> available only for Arm. Enabling CONFIG_UART_INIT on additional
> architectures will require additional functionality, such as device tree
> mapping and unflattening, etc.
> 
> The MAINTAINERS file is updated to alphabetically sort files in the
> "ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE" section following
> the renaming of arm-uart.c.
> 
> Add `select UART_INIT` for CONFIG_ARM to be sure that randconfig won't
> disable UART_INIT.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V3:
>   - Drop blank line in xen/drivers/char/Kconfig.
>   - Rebase on top of the latest staging.
> ---
> Changes in v2:
>   - Rename arm-uart.c to uart-init.c instead of moving only dt_uart_init() to
>     separate file.
>   - Introduce new CONFIG_UART_INIT.
>   - Rename arm_uart_init() to uart_init().
>   - Add 'select UART_INIT' for CONFIG_ARM to be sure that randconfig won't
>     disable UART_INIT.
>   - Update the commit message.
> ---
>   MAINTAINERS                  |   2 +-
>   xen/arch/arm/Kconfig         |   1 +
>   xen/arch/arm/setup.c         |   2 +-
>   xen/drivers/char/Kconfig     |  10 +++
>   xen/drivers/char/Makefile    |   2 +-
>   xen/drivers/char/arm-uart.c  | 145 -----------------------------------
>   xen/drivers/char/uart-init.c | 145 +++++++++++++++++++++++++++++++++++
>   xen/include/xen/serial.h     |   2 +-
>   8 files changed, 160 insertions(+), 149 deletions(-)
>   delete mode 100644 xen/drivers/char/arm-uart.c
>   create mode 100644 xen/drivers/char/uart-init.c
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 17fc5f9eec..a237080074 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -245,7 +245,6 @@ S:	Supported
>   L:	xen-devel@lists.xenproject.org
>   F:	docs/misc/arm/
>   F:	xen/arch/arm/
> -F:	xen/drivers/char/arm-uart.c
>   F:	xen/drivers/char/cadence-uart.c
>   F:	xen/drivers/char/exynos4210-uart.c
>   F:	xen/drivers/char/imx-lpuart.c
> @@ -254,6 +253,7 @@ F:	xen/drivers/char/mvebu-uart.c
>   F:	xen/drivers/char/omap-uart.c
>   F:	xen/drivers/char/pl011.c
>   F:	xen/drivers/char/scif-uart.c
> +F:	xen/drivers/char/uart-init.c

(No action needed)

I think that's fine for now. At some point we will need to consider a 
place where this can be maintained by other arch maintainers because 
this is not Arm specific anymore. The only place I can think of is THE REST.

>   F:	xen/drivers/passthrough/arm/
>   F:	xen/include/public/arch-arm/
>   F:	xen/include/public/arch-arm.h
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 15b2e4a227..e068497361 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -17,6 +17,7 @@ config ARM
>   	select HAS_PASSTHROUGH
>   	select HAS_UBSAN
>   	select IOMMU_FORCE_PT_SHARE
> +	select UART_INIT
>   
>   config ARCH_DEFCONFIG
>   	string
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 71ebaa77ca..2e27af4560 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -361,7 +361,7 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
>   
>       gic_preinit();
>   
> -    arm_uart_init();
> +    uart_init();
>       console_init_preirq();
>       console_init_ring();
>   
> diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
> index e175d07c02..49a06a7859 100644
> --- a/xen/drivers/char/Kconfig
> +++ b/xen/drivers/char/Kconfig
> @@ -93,6 +93,16 @@ config SERIAL_TX_BUFSIZE
>   
>   	  Default value is 32768 (32KiB).
>   
> +config UART_INIT

NIT Naming: I would consider to add GENERIC in the same. This makes 
clearer why x86 doesn't select because they would have their own 
implementation.

> +	bool "UART initialization for DT and ACPI"

Why do we provide a prompt for UART_INIT? This is not something I would 
expect the user to be able to disable.

> +	depends on ARM
> +	default y
> +	help
> +	  Provides a generic method for locating UART device tree node when
> +	  device tree is used, or for finding UART information in SPCR
> +	  table when using ACPI. Once UART information is located,
> +	  {acpi}_device_init() is called for UART-specific initialization.

The last sentence contains too much implementation details. Kconfig is 
meant for admin to know what they need to select. I think it should be 
dropped. That said, if you don't provide any problem, then this Kconfig 
would just be:

config UART_INIT

And this is selected by arch.

> +
>   config XHCI
>   	bool "XHCI DbC UART driver"
>   	depends on X86

[...]

> diff --git a/xen/drivers/char/uart-init.c b/xen/drivers/char/uart-init.c
> new file mode 100644
> index 0000000000..7f3b385308
> --- /dev/null
> +++ b/xen/drivers/char/uart-init.c
> @@ -0,0 +1,145 @@
> +/*
> + * xen/drivers/char/arm-uart.c
> + *
> + * Generic uart retrieved via the device tree or ACPI
> + *
> + * Julien Grall <julien.grall@linaro.org>
> + * Copyright (c) 2013 Linaro Limited.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.

NIT: As you are updating the file, would you be able to convert the 
license to SPDX. For this one, this will need to be:

/* SPDX-License-Identifier: GPL-2.0-or-later */

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:19:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838671.1254635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFtN-00037Z-55; Sat, 16 Nov 2024 10:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838671.1254635; Sat, 16 Nov 2024 10: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 1tCFtN-00037S-25; Sat, 16 Nov 2024 10:19:01 +0000
Received: by outflank-mailman (input) for mailman id 838671;
 Sat, 16 Nov 2024 10:18:59 +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 1tCFtL-00037H-8Q
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:18:59 +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 1tCFtK-007zkz-1N;
 Sat, 16 Nov 2024 10:18:58 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCFtK-007v47-1X;
 Sat, 16 Nov 2024 10:18: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>
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=uAEufPUTSrSCM+SrwgH9jIuIKeC+HVcaEAcaGeQWeh0=; b=s/RRErXl0tVej0F1YRO4BHuN+h
	TygsqF7AUwO2q/sOsFXK+66qqb8tEcUXcBDs5ninmkQ/SrjRKoxHwNCccizStfl1JG6gGD9mIAYUZ
	w4OhuOgGl+M2oE5RqwHq1FJi5K852eJaEnLVoaqpgMVG9wTZzkY+VyGO3TVxXqTin4T8=;
Message-ID: <f35997e4-40a7-40c5-9b29-932724e9cac5@xen.org>
Date: Sat, 16 Nov 2024 10:18:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/device-tree: Allow region overlapping with
 /memreserve/ ranges
Content-Language: en-GB
To: Luca Fancellu <luca.fancellu@arm.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241114102802.54512-1-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241114102802.54512-1-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 14/11/2024 10:28, Luca Fancellu wrote:
> There are some cases where the device tree exposes a memory range
> in both /memreserve/ and reserved-memory node, in this case the
> current code will stop Xen to boot since it will find that the
> latter range is clashing with the already recorded /memreserve/
> ranges.
> 
> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
> in the /memreserve/ part and even in this case this will prevent
> Xen to boot since it will see that the module memory range that
> it is going to add in 'add_boot_module' clashes with a /memreserve/
> range.
> 
> When Xen populate the data structure that tracks the memory ranges,
> it also adds a memory type described in 'enum membank_type', so
> in order to fix this behavior, allow overlapping with the /memreserve/
> ranges in the 'check_reserved_regions_overlap' function when a flag
> is set.
> 
> In order to implement this solution, there is a distinction between
> the 'struct membanks *' handled by meminfo_overlap_check(...) that
> needs to be done, because the static shared memory banks doesn't have
> a usable bank[].type field and so it can't be accessed, hence now
> the 'struct membanks_hdr' have a 'enum region_type type' field in order
> to be able to identify static shared memory banks in meminfo_overlap_check(...).
> 
> While there, set a type for the memory recorded using meminfo_add_bank()
> from efi-boot.h.
> 
> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to bootinfo.reserved_mem")
> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

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

I will give a few days for the others to review and Shawn to comment 
whether it fixes his issue (I can't remember if it was already done).

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:20:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:20:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838678.1254655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFuS-0004nN-Nv; Sat, 16 Nov 2024 10:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838678.1254655; Sat, 16 Nov 2024 10:20: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 1tCFuS-0004nG-Kd; Sat, 16 Nov 2024 10:20:08 +0000
Received: by outflank-mailman (input) for mailman id 838678;
 Sat, 16 Nov 2024 10:20: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCFuR-0003aF-9X
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:20:07 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 582289df-a404-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 11:20:03 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr8gl1ry9z9sSX;
 Sat, 16 Nov 2024 11:06:59 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id GiuJ5kFiF1NH; Sat, 16 Nov 2024 11:06:59 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr8gl0b48z9sST;
 Sat, 16 Nov 2024 11:06:59 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id ECAD08B7A0;
 Sat, 16 Nov 2024 11:06:58 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id xw5jQJJ7h8Zy; Sat, 16 Nov 2024 11:06:58 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 7AEB48B763;
 Sat, 16 Nov 2024 11:06: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: 582289df-a404-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6IjU4MjI4OWRmLWE0MDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzUyNDAzLjg0MTE1Miwic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1IiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <b6a059d8-7b23-455d-9ecd-eb3cdddd22a2@csgroup.eu>
Date: Sat, 16 Nov 2024 11:06:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/21] powerpc/papr_scm: Convert timeouts to
 secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-5-911fb7595e79@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-5-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
> 
> Changes made with the following Coccinelle rules:
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)

Is it a special script or is it done with the script in patch 2.

That's nice to say how it is done, but you also have to say _what_ and 
_why_ you do it. This is even more important as you plan to get it 
merged independently in each tree instead of merging it as a single series.

It could be something like:

Commit b35108a51cf7 ("jiffies: Define secs_to_jiffies()") introduced 
secs_to_jiffies(). As the value here is a multiple of 1000, use 
secs_to_jiffies() instead of msecs_to_jiffies to avoid the multiplication.

This is converted using scripts/coccinelle/misc/secs_to_jiffies.cocci

> 
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>   arch/powerpc/platforms/pseries/papr_scm.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
> index 9e297f88adc5d97d4dc7b267b0bfebd58e5cf193..9e8086ec66e0f0e555ac27933854c06cfcf91a04 100644
> --- a/arch/powerpc/platforms/pseries/papr_scm.c
> +++ b/arch/powerpc/platforms/pseries/papr_scm.c
> @@ -543,7 +543,7 @@ static int drc_pmem_query_health(struct papr_scm_priv *p)
> 
>          /* Jiffies offset for which the health data is assumed to be same */
>          cache_timeout = p->lasthealth_jiffies +
> -               msecs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL * 1000);
> +               secs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL);

Wouldn't it now fit on a single line ?

	cache_timeout = p->lasthealth_jiffies + 
secs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL);


Also I'm not sure it is worth the MIN_HEALTH_QUERY_INTERVAL macro as it 
is defined localy and used only once, but that's another story.

> 
>          /* Fetch new health info is its older than MIN_HEALTH_QUERY_INTERVAL */
>          if (time_after(jiffies, cache_timeout))
> 
> --
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:20:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:20:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838677.1254646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFuR-0004WV-IF; Sat, 16 Nov 2024 10:20:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838677.1254646; Sat, 16 Nov 2024 10:20: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 1tCFuR-0004Vv-Cs; Sat, 16 Nov 2024 10:20:07 +0000
Received: by outflank-mailman (input) for mailman id 838677;
 Sat, 16 Nov 2024 10:20: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCFuQ-0003aF-9X
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:20:06 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 579446f6-a404-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 11:20:02 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr8qF0vthz9sSf;
 Sat, 16 Nov 2024 11:13:29 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 4K41Giz9LXFN; Sat, 16 Nov 2024 11:13:29 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr8qD52brz9sSg;
 Sat, 16 Nov 2024 11:13:28 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 85CD28B7A0;
 Sat, 16 Nov 2024 11:13:28 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id 3ibo8LhEmkVk; Sat, 16 Nov 2024 11:13:28 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id DD3108B763;
 Sat, 16 Nov 2024 11:13:24 +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: 579446f6-a404-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6IjU3OTQ0NmY2LWE0MDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzUyNDAyLjkxMDcxNSwic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1IiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <76fe994b-b9b9-49e0-8224-df48db48f1e5@csgroup.eu>
Date: Sat, 16 Nov 2024 11:13:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 21/21] nfp: Convert timeouts to secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-21-911fb7595e79@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-21-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]

As you plan to get those merged independant in each tree, I guess it 
should be sent to netdev list targetting net-next tree in the subject 
line as per netdev rules.



> 
> Changes made with the following Coccinelle rules:
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
> 
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>   drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> index 6e0929af0f725b2b3855c69bbe894e6626c566b3..6925ad985fc9e2d5641feea41ff277107a8dee9c 100644
> --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> @@ -2779,7 +2779,7 @@ static void nfp_net_netdev_init(struct nfp_net *nn)
>                  break;
>          }
> 
> -       netdev->watchdog_timeo = msecs_to_jiffies(5 * 1000);
> +       netdev->watchdog_timeo = secs_to_jiffies(5);
> 
>          /* MTU range: 68 - hw-specific max */
>          netdev->min_mtu = ETH_MIN_MTU;
> 
> --
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:20:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838679.1254665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFuW-00054l-0K; Sat, 16 Nov 2024 10:20:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838679.1254665; Sat, 16 Nov 2024 10: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 1tCFuV-00054e-Sg; Sat, 16 Nov 2024 10:20:11 +0000
Received: by outflank-mailman (input) for mailman id 838679;
 Sat, 16 Nov 2024 10:20: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCFuU-0003WR-IW
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:20:10 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5a611d70-a404-11ef-a0c8-8be0dac302b0;
 Sat, 16 Nov 2024 11:20:07 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr8mL1R16z9sSd;
 Sat, 16 Nov 2024 11:10:58 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id sS8O0LnxtKc7; Sat, 16 Nov 2024 11:10:58 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr8mJ5rw4z9sSb;
 Sat, 16 Nov 2024 11:10:56 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id ABE338B7A0;
 Sat, 16 Nov 2024 11:10:56 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id F1qWTVabQRIL; Sat, 16 Nov 2024 11:10:56 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 35D3D8B763;
 Sat, 16 Nov 2024 11:10:53 +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: 5a611d70-a404-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6IjVhNjExZDcwLWE0MDQtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzUyNDA3LjYyMTcyOCwic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1IiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <718febc4-59ee-4701-ad62-8b7a8fa7a910@csgroup.eu>
Date: Sat, 16 Nov 2024 11:10:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 19/21] livepatch: Convert timeouts to secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
> 
> Changes made with the following Coccinelle rules:
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
> 
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>   samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
>   samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
>   samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
>   3 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
> index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
> --- a/samples/livepatch/livepatch-callbacks-busymod.c
> +++ b/samples/livepatch/livepatch-callbacks-busymod.c
> @@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
>   {
>          pr_info("%s\n", __func__);
>          schedule_delayed_work(&work,
> -               msecs_to_jiffies(1000 * 0));
> +               secs_to_jiffies(0));

Using secs_to_jiffies() is pointless, 0 is universal, should become 
schedule_delayed_work(&work, 0);

>          return 0;
>   }
> 
> diff --git a/samples/livepatch/livepatch-shadow-fix1.c b/samples/livepatch/livepatch-shadow-fix1.c
> index 6701641bf12d454a770e49abeeb0dea92560e55e..948ea1f5760fed2fa27baf478c97cf98ad5c99a8 100644
> --- a/samples/livepatch/livepatch-shadow-fix1.c
> +++ b/samples/livepatch/livepatch-shadow-fix1.c
> @@ -73,7 +73,7 @@ static struct dummy *livepatch_fix1_dummy_alloc(void)
>                  return NULL;
> 
>          d->jiffies_expire = jiffies +
> -               msecs_to_jiffies(1000 * EXPIRE_PERIOD);
> +               secs_to_jiffies(EXPIRE_PERIOD);
> 
>          /*
>           * Patch: save the extra memory location into a SV_LEAK shadow
> diff --git a/samples/livepatch/livepatch-shadow-mod.c b/samples/livepatch/livepatch-shadow-mod.c
> index 7e753b0d2fa611524c9e2adbe02c8fa3e9b6015e..79296e6ccb119f521e86a121623855d841c9fc5e 100644
> --- a/samples/livepatch/livepatch-shadow-mod.c
> +++ b/samples/livepatch/livepatch-shadow-mod.c
> @@ -102,7 +102,7 @@ static __used noinline struct dummy *dummy_alloc(void)
>                  return NULL;
> 
>          d->jiffies_expire = jiffies +
> -               msecs_to_jiffies(1000 * EXPIRE_PERIOD);
> +               secs_to_jiffies(EXPIRE_PERIOD);

Should fit on a single line, avoid multiple lines when possible.

> 
>          /* Oops, forgot to save leak! */
>          leak = kzalloc(sizeof(*leak), GFP_KERNEL);
> @@ -153,7 +153,7 @@ static void alloc_work_func(struct work_struct *work)
>          mutex_unlock(&dummy_list_mutex);
> 
>          schedule_delayed_work(&alloc_dwork,
> -               msecs_to_jiffies(1000 * ALLOC_PERIOD));
> +               secs_to_jiffies(ALLOC_PERIOD));

Should fit on a single line, avoid multiple lines when possible.


>   }
> 
>   /*
> @@ -185,15 +185,15 @@ static void cleanup_work_func(struct work_struct *work)
>          mutex_unlock(&dummy_list_mutex);
> 
>          schedule_delayed_work(&cleanup_dwork,
> -               msecs_to_jiffies(1000 * CLEANUP_PERIOD));
> +               secs_to_jiffies(CLEANUP_PERIOD));

Should fit on a single line, avoid multiple lines when possible.


>   }
> 
>   static int livepatch_shadow_mod_init(void)
>   {
>          schedule_delayed_work(&alloc_dwork,
> -               msecs_to_jiffies(1000 * ALLOC_PERIOD));
> +               secs_to_jiffies(ALLOC_PERIOD));

Should fit on a single line, avoid multiple lines when possible.


>          schedule_delayed_work(&cleanup_dwork,
> -               msecs_to_jiffies(1000 * CLEANUP_PERIOD));
> +               secs_to_jiffies(CLEANUP_PERIOD));

Should fit on a single line, avoid multiple lines when possible.


> 
>          return 0;
>   }
> 
> --
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:20:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:20:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838681.1254675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFub-0005Pr-Bp; Sat, 16 Nov 2024 10:20:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838681.1254675; Sat, 16 Nov 2024 10:20: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 1tCFub-0005Pk-8D; Sat, 16 Nov 2024 10:20:17 +0000
Received: by outflank-mailman (input) for mailman id 838681;
 Sat, 16 Nov 2024 10: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCFuZ-0003aF-4P
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:20:15 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5d044731-a404-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 11:20:11 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr8MH6ncRz9sSR;
 Sat, 16 Nov 2024 10:52:43 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id E3CmhOEn1WPt; Sat, 16 Nov 2024 10:52:43 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr8MH5YmWz9sSL;
 Sat, 16 Nov 2024 10:52:43 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id A3BAA8B7A0;
 Sat, 16 Nov 2024 10:52:43 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id 8Dr9hsGaspCW; Sat, 16 Nov 2024 10:52:43 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 278CE8B763;
 Sat, 16 Nov 2024 10:52:40 +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: 5d044731-a404-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6IjVkMDQ0NzMxLWE0MDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzUyNDEyLjAzMjgxLCJzZW5kZXIiOiJjaHJpc3RvcGhlLmxlcm95QGNzZ3JvdXAuZXUiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <c07de369-9363-4e1d-9ccc-2db6dff79595@csgroup.eu>
Date: Sat, 16 Nov 2024 10:52:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/21] coccinelle: misc: Add secs_to_jiffies script
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
> 

There should be some explaination in the commit message, what the script 
does for instance.

> Suggested-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>   scripts/coccinelle/misc/secs_to_jiffies.cocci | 21 +++++++++++++++++++++
>   1 file changed, 21 insertions(+)
> 
> diff --git a/scripts/coccinelle/misc/secs_to_jiffies.cocci b/scripts/coccinelle/misc/secs_to_jiffies.cocci
> new file mode 100644
> index 0000000000000000000000000000000000000000..af762b1c0aac8f044f21150bfaafd9efc834ee87
> --- /dev/null
> +++ b/scripts/coccinelle/misc/secs_to_jiffies.cocci
> @@ -0,0 +1,21 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +///
> +/// Find usages of:
> +/// - msecs_to_jiffies(value*1000)
> +/// - msecs_to_jiffies(value*MSEC_PER_SEC)
> +///
> +// Confidence: High
> +// Copyright: (C) 2024 Easwar Hariharan Microsoft
> +//
> +// Keywords: secs, seconds, jiffies
> +//
> +
> +@@ constant C; @@
> +
> +- msecs_to_jiffies(C * 1000)
> ++ secs_to_jiffies(C)
> +
> +@@ constant C; @@
> +
> +- msecs_to_jiffies(C * MSEC_PER_SEC)
> ++ secs_to_jiffies(C)
> 
> --
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:23:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:23:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838708.1254685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCFy3-0002to-Uw; Sat, 16 Nov 2024 10:23:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838708.1254685; Sat, 16 Nov 2024 10:23: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 1tCFy3-0002th-RV; Sat, 16 Nov 2024 10:23:51 +0000
Received: by outflank-mailman (input) for mailman id 838708;
 Sat, 16 Nov 2024 10:23: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=BqBH=SL=web.de=Markus.Elfring@srs-se1.protection.inumbo.net>)
 id 1tCFy2-0002tb-QI
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:23:50 +0000
Received: from mout.web.de (mout.web.de [217.72.192.78])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dca97f14-a404-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 11:23:46 +0100 (CET)
Received: from [192.168.178.21] ([94.31.88.95]) by smtp.web.de (mrweb105
 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M8kEV-1t87Dv2SuX-00FywX; Sat, 16
 Nov 2024 11:23:22 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dca97f14-a404-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy43Mi4xOTIuNzgiLCJoZWxvIjoibW91dC53ZWIuZGUifQ==
X-Custom-Transaction: eyJpZCI6ImRjYTk3ZjE0LWE0MDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzUyNjI2LjUyMTY1Niwic2VuZGVyIjoibWFya3VzLmVsZnJpbmdAd2ViLmRlIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de;
	s=s29768273; t=1731752603; x=1732357403; i=markus.elfring@web.de;
	bh=eoB4Zba0oDILq/GyWjNIQLXHlVmq6QUNlZtjwtBqfrw=;
	h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:
	 References:From:Cc:In-Reply-To:Content-Type:
	 Content-Transfer-Encoding:cc:content-transfer-encoding:
	 content-type:date:from:message-id:mime-version:reply-to:subject:
	 to;
	b=tnnl91YQA9DSUV2bdoeF4YOzfbARJimu/tmTDLNdMzul1FlQPw5QAAWt1drAk3Ad
	 UaqUN1luEW9vrGmy5mWB1wRipPzGEoQ4902WuRX35XoQbOkOHx7N5kAyldxyp9LLl
	 1Vk/5239bUtdx8q/sqWvpw2IyfOhJfBK8McXtVpLEuSCNU5mE6cKsy0/6jClBDTUM
	 m+oUTX9sbL6OWR2KY3c7lHUrA/8zzFHEyHN37tBZ9WKhIaGnQCYZaZ/dESL4qqWra
	 HEE9nF1GNM2k2tc67GtBgE+9Wvrb9QIWtacHHbvnKxQVdIEh90Izoix70o+OBS4Mn
	 VfNCU6GXLXJcQEmlEQ==
X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6
Message-ID: <9088f9a2-c4ab-4098-a255-25120df5c497@web.de>
Date: Sat, 16 Nov 2024 11:23:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [cocci] [PATCH v2 02/21] coccinelle: misc: Add secs_to_jiffies
 script
To: Easwar Hariharan <eahariha@linux.microsoft.com>, cocci@inria.fr
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
Content-Language: en-GB
From: Markus Elfring <Markus.Elfring@web.de>
Cc: LKML <linux-kernel@vger.kernel.org>, kernel-janitors@vger.kernel.org,
 netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org,
 intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-block@vger.kernel.org,
 linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
 linux-mm@kvack.org, linux-bluetooth@vger.kernel.org,
 linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org,
 ceph-devel@vger.kernel.org, live-patching@vger.kernel.org,
 linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org,
 oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org,
 Anna-Maria Behnsen <anna-maria@linutronix.de>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:ozemPo5Q9OPy+/gWIfbNb/yTAwp7zpbaqzDjn4mcTmOYffBLZAH
 E0gCP/qnqze9l4Bx97cEhIN2OOovptOgRBkBUi+bKyV+a6ol7S4atoRxVmjqBCc2g41VI8a
 ROXhUKP5mlUoyzcJqOavJdVAoW8iKSPURqEhcga4JsnmJm/Pjl1vO+foxZw0grHWEblCrYI
 LJ17n1lYaEdE61JhX5uvg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:cqxyRecUHWI=;mdNOJxMPXJ1GyzF//eKGdLZ+Q8F
 gZOm7zXyKp5nkSwMIvY2D1Pf29OTgIQNnEk2sxWaloC9j5qlT3qQUm44Qe1eN8K2TrIb7Ylam
 rbOIjXCI16gwyjr6u6Tm4wzXx3QEqIRDJ6vPTxa1qCHZ5nXH9awzzielfDD+nIYBqn+NysMC0
 QZsEszMBUB9IXfIsHktBfi8cBsv+k0746M1afH1AQnbUe7vbWDpvJQfebcg6n+Wz3fvdqxIZD
 kSPPyScjl7oMRh9gl8//4l2V7VzBO9LPR7x4sdROj+PLFL3oFRJx+0h1y9SyUqJ0GnPpxdEL0
 PMzZq88Rt40rnD8qxMQHh7I/uNcMzG6WX18JYqJkBzSmPhgPNeCMeiVI23Ufs+Q4nUJ3qhDsK
 0p5vEIj2tML+6DTh9sRN/Vkr1Nv2iQxQGIWmrKuhxE6H4MNkCnw+r/vzSC3EjHoSsbQuNjTP7
 r+pzwFQBW5yKjimU/E0otnHQxITegw0hqubdGvkG7V+M9Xbvv+rLAmjIvBciAuyFg9KBmCLA8
 CWrj3n83t/hiJIglwxY4Dk0jEZxvykwS9+BkMPoCtPW+iQ8gW/25w94Qj8e0xURq8TAcN0dXU
 AuweP7ynvWG484eB8hCbKDvioN+mlpMsRwjC2FQlrRm4HHD/6yeo6jL47sG63P4yysOuS2zfg
 IN1JwCXmYpKMSvSbVFw4XwyvjYvlKQDYKIw85OFcoZ0jKCnyiqcKt/8cDr+RhTK1EOdwwhDck
 OYb6KgYNVujGNSJD3nwWyFRxhnrOGI6zg/KUG07nQrZrZUdDjSpdUqLqFAptM+j5kRW2zaeV7
 aAINj3gIMOnIF9IxH3vxoaq7UZVlr1ioWkWYi8cog6WCU27yEI6la8XQh2utvVDIt3r9tDYKA
 xoMAYChjmKcdRYrZMLRfSf6EiCXhz9YR9r6L9u2NSImvIGamFAFskjhIg

Why is a change description missing here?


=E2=80=A6
> +++ b/scripts/coccinelle/misc/secs_to_jiffies.cocci
> @@ -0,0 +1,21 @@
=E2=80=A6
> +/// Find usages of:
> +/// - msecs_to_jiffies(value*1000)
> +/// - msecs_to_jiffies(value*MSEC_PER_SEC)

I suggest to take another look at corresponding development documentation.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Do=
cumentation/dev-tools/coccinelle.rst?h=3Dv6.12-rc7#n71

Will the attention grow for the proper usage of operation modes
according to the tool =E2=80=9Ccoccicheck=E2=80=9D?


=E2=80=A6
> +// Copyright: (C) 2024 Easwar Hariharan Microsoft

Should personal details and company names be better distinguished in such =
information?


> +//
> +// Keywords: secs, seconds, jiffies

May a (blank) comment line be omitted here?


> +@@ constant C; @@
> +
> +- msecs_to_jiffies(C * 1000)
> ++ secs_to_jiffies(C)
> +
> +@@ constant C; @@
> +
> +- msecs_to_jiffies(C * MSEC_PER_SEC)
> ++ secs_to_jiffies(C)

I suggest to take a SmPL code variant (like the following)
better into account.


@depends on patch@
constant C;
@@
-msecs_to_jiffies
+secs_to_jiffies
 (C
- * \( 1000 \| MSEC_PER_SEC \)
 )


Can any expressions become relevant besides =E2=80=9Cconstants=E2=80=9D?

Regards,
Markus


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:30:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:30:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838721.1254696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCG4j-0007Vu-LF; Sat, 16 Nov 2024 10:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838721.1254696; Sat, 16 Nov 2024 10:30: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 1tCG4j-0007Vn-GQ; Sat, 16 Nov 2024 10:30:45 +0000
Received: by outflank-mailman (input) for mailman id 838721;
 Sat, 16 Nov 2024 10:30:44 +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 1tCG4i-0007UP-MG
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:30:44 +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 1tCG4i-007zzU-0R;
 Sat, 16 Nov 2024 10:30:44 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCG4i-007vZg-0S;
 Sat, 16 Nov 2024 10:30: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>
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=mQuOpBfZQ83r/LU+UeQYj8h0ylM8+0Kv3cUv99LVbaA=; b=qx5IE2K8Mm+ODk1Ci8BqtAZ4ZN
	dSrSLfBM90M/2qr84MbbVjJ/npmUTR7heDBbvGSyHV7zVE9G312xCjkAP6vc2bEQrWP6owcugEZS4
	u/TIyfwjWcgBpZ8a2vNSWAX4NskHBOiIl1F3PXcmhvPqoOpm9UZtjeYRQtLiMoITQ4ro=;
Message-ID: <96ac3dfd-8019-40b4-86eb-8d377880cdc0@xen.org>
Date: Sat, 16 Nov 2024 10:30:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/arm: mpu: Create boot-time MPU protection
 regions
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
 <20241107150330.181143-2-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241107150330.181143-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 07/11/2024 15:03, Ayan Kumar Halder wrote:
> +/*
> + * Macro to prepare and set a EL2 MPU memory region.
> + * We will also create an according MPU memory region entry, which
> + * is a structure of pr_t,  in table \prmap.
> + *
> + * Inputs:
> + * sel:         region selector

``sel`` is now also an output. But looking at the description, we don't 
seem to say which registers are preserved or not. For instance, both ..

> + * base:        reg storing base address (should be page-aligned) > + * limit:       reg storing limit address

... the two registers above will be clobbered. On the other hand...

> + * prbar:       store computed PRBAR_EL2 value
> + * prlar:       store computed PRLAR_EL2 value
> + * maxcount:    maximum number of EL2 regions supported

... this will be preserved. So I think we need to clarify it. For 
instance, this is the description of create_table_entry_from_paddr:

/*
  * Macro to create a page table entry in \ptbl to \tbl
  * ptbl:    table symbol where the entry will be created
  * tbl:     physical address of the table to point to
  * virt:    virtual address
  * lvl:     page-table level
  * tmp1:    scratch register
  * tmp2:    scratch register
  *
  * Preserves \virt
  * Clobbers \tbl, \tmp1, \tmp2
  *
  * Note that all parameters using registers should be distinct.
  */

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:31:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:31:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838728.1254705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCG5T-0002lt-Sc; Sat, 16 Nov 2024 10:31:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838728.1254705; Sat, 16 Nov 2024 10:31: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 1tCG5T-0002lm-Oy; Sat, 16 Nov 2024 10:31:31 +0000
Received: by outflank-mailman (input) for mailman id 838728;
 Sat, 16 Nov 2024 10:31:30 +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 1tCG5S-0002lW-E8
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:31:30 +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 1tCG5R-008004-2h;
 Sat, 16 Nov 2024 10:31:30 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCG5R-007vcD-38;
 Sat, 16 Nov 2024 10:31: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>
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=/GMzt6e8LiVQl6JJgGzZTJ37RCZIxzHN6a8FvPZ57uI=; b=N1f2KQh5vvsAQCkKxvN0kB/k9+
	QlcXeRc7/WKyC/9Qi5viBiJ/f2A42IBdY3PpvXVVYwe8lsmpZmO/CUMAqkRET8RAmilMAfzPR1EzV
	fLLnzeCsKSf2q6hRmv9AW+SQBxeuCjZsNZQF7Y8ESd66qGFoXFFeYehwDcxgYmKNDwNQ=;
Message-ID: <d0a3c297-9603-4436-a955-37a868b13d16@xen.org>
Date: Sat, 16 Nov 2024 10:31:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] xen/arm: mpu: Implement a dummy
 enable_secondary_cpu_mm
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
 <20241107150330.181143-4-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241107150330.181143-4-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 07/11/2024 15:03, Ayan Kumar Halder wrote:
> Secondary cpus initialization is not yet supported. Thus, we print an
> appropriate message and put the secondary cpus in WFE state.
> And we introduce to BUILD_BUG_ON to prevent users using from building Xen
> on multiprocessor based MPU systems.
> 
> In Arm, there is no clean way to disable SMP. As of now, we wish to support
> MPU on UNP only. So, we have defined the default range of NR_CPUs to be 1 for
> MPU.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:33:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:33:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838705.1254715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCG7d-0004w3-9P; Sat, 16 Nov 2024 10:33:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838705.1254715; Sat, 16 Nov 2024 10:33: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 1tCG7d-0004vv-5M; Sat, 16 Nov 2024 10:33:45 +0000
Received: by outflank-mailman (input) for mailman id 838705;
 Sat, 16 Nov 2024 10:23: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=WTJS=SL=cs-soprasteria.com=christophe.leroy2@srs-se1.protection.inumbo.net>)
 id 1tCFxU-0001sF-1H
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:23:16 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20620.outbound.protection.outlook.com
 [2a01:111:f403:2606::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c67e8252-a404-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 11:23:09 +0100 (CET)
Received: from AM8PR07MB7443.eurprd07.prod.outlook.com (2603:10a6:20b:24d::10)
 by PAXPR07MB9604.eurprd07.prod.outlook.com (2603:10a6:102:24b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Sat, 16 Nov
 2024 10:23:05 +0000
Received: from AM8PR07MB7443.eurprd07.prod.outlook.com
 ([fe80::e817:d7bb:61fe:296a]) by AM8PR07MB7443.eurprd07.prod.outlook.com
 ([fe80::e817:d7bb:61fe:296a%6]) with mapi id 15.20.8158.017; Sat, 16 Nov 2024
 10:23: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: c67e8252-a404-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwNjo6NjIwIiwiaGVsbyI6IkVVUjAyLUFNMC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM2N2U4MjUyLWE0MDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzUyNTg5LjIxMTg2Mywic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveTJAY3Mtc29wcmFzdGVyaWEuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V4J35la4mCZE62aD1tsFleEKSbIrrraqp281Ug0l8B0oyfA/MQbj8d7fnFBCM9e0Tz8ek2YRc5Vx5yWb/FVtPWKfGNnM3GCb/vGaDqhtS5ikHKKxpoUezC62hMb7Nb7H6U6A8xcrI0YeKjXwZM2eCm7T/lFbdYF9RwIV3UjVK3/WDMEFa52FwCG5Dielp/f1gJ/4tDweGnJWMXSK0VdUxy/UDlkICTxNInq1V6bWvShabTJQhX7W+p42VpPb/ZmrYdIC3cADtWI+JfnfTjSfqFtin07hTQeHKe00i8gUjkFz8kPzlbzsncYKGulo2SYWkhdWyk8fg75M4zJPEieqqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O5PjtYH+5GXLxl62kwij/A+XbSGB871bwcSxOeRKekY=;
 b=rUC2hbhhQ1xwjJdTSSEZ09W5b14+V7Agn8/2BSfIcANk3iuTAVC/HmG6jCw6POMPzHBU2Q1Onl7LEaw+in9QFoA9vhxeWIeTCWEfTUWZQVqvIX9ALNBKJF5K60w0Zq1yICGcI3+MuEzEk+8S9X0S8TUmHfwke70mygWCYQK64R82eXEh8T9i2xPZZO+2GdiUZ99+68Eo5sT610cUd/kDoc+sCrP/cO1vObwGnbeI1CC0R1A6RpWDSE9PxGd2Ut5UAhsOAvSp2WzMPgsZk2p0eWVm9Mij3iSogWnAU+UWOt/4mRMC+2x0Df5d42fVEAp1veeczgrRHlsjAh84cDLnzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=cs-soprasteria.com; dmarc=pass action=none
 header.from=cs-soprasteria.com; dkim=pass header.d=cs-soprasteria.com;
 arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs-soprasteria.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O5PjtYH+5GXLxl62kwij/A+XbSGB871bwcSxOeRKekY=;
 b=YwHWRSfUeypGZWW27iq88iMUusI2nY+Z8Nc6LYbh9g6B78o9YgManTmNN1wvp1ivCjbruvzweVyniISfd3o31NJk+vvDkBU6LIzchLZkcJsGHLO/eKmDCXk1caq1uT5hRIJ+FwwYs5k+YgF9eMS0nMQS+bcpG6a7NXgMgNIAfvP5lZ226bUpIe62Uop/Tfk/JKVFKMHqhcp9C1DknMBkrRwVR/ddRnCW9ApXUBfTU10mE0v9jKS76xIurQU/hW7c3XXAzMcIsIuJ50sBVqH7mas0T0bxZaKYNrMElGbGClduk3AhweYYUw8zH57oOYxP3e8ue5bsN6jiX+hKhVvcuQ==
From: LEROY Christophe <christophe.leroy2@cs-soprasteria.com>
To: Easwar Hariharan <eahariha@linux.microsoft.com>, Pablo Neira Ayuso
	<pablo@netfilter.org>, Jozsef Kadlecsik <kadlec@netfilter.org>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Simon Horman
	<horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>, Nicolas Palix
	<nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, Haojian Zhuang
	<haojian.zhuang@gmail.com>, Robert Jarzmik <robert.jarzmik@free.fr>, Russell
 King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, Vasily
 Gorbik <gor@linux.ibm.com>, Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>, Sven Schnelle
	<svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, Oded Gabbay
	<ogabbay@kernel.org>, Lucas De Marchi <lucas.demarchi@intel.com>,
	=?utf-8?B?VGhvbWFzIEhlbGxzdHLDtm0=?= <thomas.hellstrom@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>, Maarten Lankhorst
	<maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@gmail.com>,
	Simona Vetter <simona@ffwll.ch>, Jeroen de Borst <jeroendb@google.com>,
	Praveen Kaligineedi <pkaligineedi@google.com>, Shailend Chand
	<shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, James Smart
	<james.smart@broadcom.com>, Dick Kennedy <dick.kennedy@broadcom.com>, "James
 E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, "Martin K. Petersen"
	<martin.petersen@oracle.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Jens Axboe <axboe@kernel.dk>, Kalle Valo
	<kvalo@kernel.org>, Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
	<catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>, Jack
 Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann <marcel@holtmann.org>,
	Johan Hedberg <johan.hedberg@gmail.com>, Luiz Augusto von Dentz
	<luiz.dentz@gmail.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
	<rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, Broadcom internal
 kernel review list <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li
	<xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf
	<jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, Miroslav Benes
	<mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, Joe Lawrence
	<joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai
	<tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, Russell King
	<linux+etnaviv@armlinux.org.uk>, Christian Gmeiner
	<christian.gmeiner@gmail.com>, Louis Peens <louis.peens@corigine.com>,
	Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
	Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
CC: "netfilter-devel@vger.kernel.org" <netfilter-devel@vger.kernel.org>,
	"coreteam@netfilter.org" <coreteam@netfilter.org>, "netdev@vger.kernel.org"
	<netdev@vger.kernel.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>, "cocci@inria.fr" <cocci@inria.fr>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>, "linux-s390@vger.kernel.org"
	<linux-s390@vger.kernel.org>, "dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>, "intel-xe@lists.freedesktop.org"
	<intel-xe@lists.freedesktop.org>, "linux-scsi@vger.kernel.org"
	<linux-scsi@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-block@vger.kernel.org"
	<linux-block@vger.kernel.org>, "linux-wireless@vger.kernel.org"
	<linux-wireless@vger.kernel.org>, "ath11k@lists.infradead.org"
	<ath11k@lists.infradead.org>, "linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>,
	"linux-staging@lists.linux.dev" <linux-staging@lists.linux.dev>,
	"linux-rpi-kernel@lists.infradead.org"
	<linux-rpi-kernel@lists.infradead.org>, "ceph-devel@vger.kernel.org"
	<ceph-devel@vger.kernel.org>, "live-patching@vger.kernel.org"
	<live-patching@vger.kernel.org>, "linux-sound@vger.kernel.org"
	<linux-sound@vger.kernel.org>, "etnaviv@lists.freedesktop.org"
	<etnaviv@lists.freedesktop.org>, "oss-drivers@corigine.com"
	<oss-drivers@corigine.com>, "linuxppc-dev@lists.ozlabs.org"
	<linuxppc-dev@lists.ozlabs.org>, Anna-Maria Behnsen
	<anna-maria@linutronix.de>
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
Thread-Topic: [PATCH v2 00/21] Converge on using secs_to_jiffies()
Thread-Index: AQHbN6USSIGB1JJt4USQhi0ekmT7q7K5s7+A
Date: Sat, 16 Nov 2024 10:23:04 +0000
Message-ID: <fb97b58c-4d77-43d1-88a0-d838d5030d3e@cs-soprasteria.com>
References:
 <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
In-Reply-To:
 <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Mozilla Thunderbird
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=cs-soprasteria.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM8PR07MB7443:EE_|PAXPR07MB9604:EE_
x-ms-office365-filtering-correlation-id: 069e4311-2c91-4258-60ba-08dd0628a82f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|921020|38070700018|41080700001;
x-microsoft-antispam-message-info:
 =?utf-8?B?alhwblFZdzJEbVhRRWFtSzdkbk9DZjZ1N0F6TUl2WWtDZVJjYjZwTlp4TnVx?=
 =?utf-8?B?bFhXaFNXZ1N1ZTBXSFl0Qk5ROTNuQjhEekxtcVdRK1RvdmNtVzFoQXJ4WlZL?=
 =?utf-8?B?NHdRRzBTalpvQ1NjWW1IZzJ6WGJJR3R4M2J4V3EreVh0SWJEd3lnT2c4U2NN?=
 =?utf-8?B?N2htVVFNZW43SE5DT2xpVUQwWVJ4RXZnTkRidlhnZkxPSGNwV0RxSXB6MWtE?=
 =?utf-8?B?L3dsUnBwRlIrQm13QlBTK2k2MEs0ZVROenEwRWE3eVE4SlNiQVFvZk5ielhj?=
 =?utf-8?B?TEl4ZThxS0w4ZldtSVlGY1AwbU9qUXI1M2ZJeWQ2RjdvMngvNllIT1VrYzlW?=
 =?utf-8?B?bThYYmtPc1hxZW9iY3d1ZEZSWnlId2JaUmpmMzJ1bmdnSk9WMjFJbkN0ZTUz?=
 =?utf-8?B?SFh2dVZBQ2VBeWY0UGFpT2xXUXBkYVR5LzMwR3BhbzRJeXpGbTlpSGxIRzJP?=
 =?utf-8?B?MDViNjUwenlZVVZMTDNBd1ozS0pDVExXaDlRSk8yYk9EV0U1cnZCdXR3WUxx?=
 =?utf-8?B?WXgwNHZCYUY5SFdRVEZFMDFOYkVGVm1BR3F4MEdTdHh1eHZZaUxSS0EwK1lF?=
 =?utf-8?B?T3dCYlpaNFFRRnRkRDJLTnRxNzZpeVF2NUN3a0t1QVhUQzVWWmFKbVd4cXFO?=
 =?utf-8?B?TXpWV0hYTTJLTWhrZ0lLYzRqc01Wb25ZcEppNGliWmRReVJoZjhJaWNpeXlT?=
 =?utf-8?B?akZpakl6aXV0YVFFd1loT0Zya0NuVGxkNjdWYlR4dzk3NlRCS090NlFmWEdm?=
 =?utf-8?B?TjNtQ3I5T1dDRGVsc080Ly84ZEJpa2c1MWxEUnBETjVsajZTZWtLaWEyR3lt?=
 =?utf-8?B?dnMwdzd2MUwyb2RzS05qcUo0MVR5dHNqb2lubUNlaTNvYjA0dldqd28xUXF4?=
 =?utf-8?B?c0o2Zi9qVGxkeTdxQ2Jsb0pocGNHNkdTemIvVitIbXo0QUVQM2pGU2JMcXZs?=
 =?utf-8?B?VU9nZ0ZOaThvMHV1VnFJazI3M1I3Q2FqbnNkeElzS3N3YUpGSFdyNXR0bmZZ?=
 =?utf-8?B?Q3V0bVo5b1JWMm1wWGpjRE0wcVBFQlNxM0pCaDlOaFErU0ZzL0JkcmovYWha?=
 =?utf-8?B?YldxS3YvLzNOMi9PRDZDK3dGd0h2TDVPcVNqcE1UN1UrT2xRUWFlUndrQkR6?=
 =?utf-8?B?d2ZPRm9SZSttdGdSa2FoQ0Y2VFpDdVhUOGRYVDRZd1RRb2lNNFRHOUZ1QTNT?=
 =?utf-8?B?bW9BU2hFQSs5cTZZbWtpMzJxeFRHZU1HVVkxc0RNVlRsSkxMcFlPaHdoelpq?=
 =?utf-8?B?RjN4Mm9WRWMrNkxuWkF2MGV1eE5PRmJZRTFxZ3NpZEtqRHNsYWJwRk4vUm13?=
 =?utf-8?B?dXZYRmpvUkEzTTZIMUhNRHV5RmZjT0ZoSEV6QVdDdjlSTlhqK2p4WHZGY0Vj?=
 =?utf-8?B?V1B3LzNkMlB4OEE3OHVldndqbHpEckgzTmlQMWJHRFdiRXMzZk5Pb3JJMUpY?=
 =?utf-8?B?NjdwM0V3SVM3ZHBxYWhpWUQxWk1wV1dmSkl5NkFSUTVDYXBsaXIyT0k5MlVC?=
 =?utf-8?B?Y2VCUUtCT2RUYW9waDV3dHgzYTVrMSsvMnhOWk03eVpDUkZ6cUpzSU5sVXlJ?=
 =?utf-8?B?RUxLSHcvNFRTc2dHTXZWSmM3VkRzdktTOFFwMHlpU2lPd2NqTjUrV3E4dHhh?=
 =?utf-8?B?eDdJUVF4OHVVYWgzckovdkR3OEsvYWQ1eDJuVjNMVW9XbzVLQlRLdHh4a3R5?=
 =?utf-8?B?Mm42NExjZDhGQzdKQVJHcnNscWM5ZGZwVThTSzgwVWpObDlmbzFXRXE5N2tn?=
 =?utf-8?B?QlQvVlpGY2RhN09WRXlrb1NURGlveVdObXd1ODlJSTNkUFErUzRNcHFJcjdP?=
 =?utf-8?B?V2xsVkdEVmZSZ24xTHo5YW9Jc1JyVXR2Znl2cjVsb1BNZXBQWndWZ0prS2t2?=
 =?utf-8?B?RjB3aVJQWnVOQ2NadVU5QjF2V3hGcklMMWh3Y2xEQjd5OHFZbHAveWtYUDJm?=
 =?utf-8?Q?gGIELPEfkvI=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM8PR07MB7443.eurprd07.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(921020)(38070700018)(41080700001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Y2tWQ2ZrcFdQejg0WkdzZnNPbzhoSmRGZ29zZ2NVU1B1ZGlscnIvSnBGZ0Zp?=
 =?utf-8?B?SmorRkZnVzdjbmFWYWxndk5PcDluTWpEVDhlSksvM3VpbmhkSDFOaElFNUNj?=
 =?utf-8?B?a0dHVnhhenAyNmlxRWlDc0pteHZmbFVyV2IyMVlEZXdCanFYT1hkeDNmMXk0?=
 =?utf-8?B?L2FBczh1c3piRVExdWNmWjhEWEFTWjYzZTBxRGR3SE81TXU0WUZWOVlLMlZN?=
 =?utf-8?B?Ym8xV2YrNnJtOHo1b1p5bXlYV3d4ODhzamIzaDB4ZkFlZ3cxSC9RNDZHVHhG?=
 =?utf-8?B?M1kwalNYV01vbjdGOERpNzJOTzZpc2xCTG1vbHd3VXpzMEY4TEFtVy9SQUZG?=
 =?utf-8?B?T2IzUDhTQ3dycXB0NHluVkNGZXA2NzZzdjBVV2VhblBvVEc3b3d5VFZZQ2gv?=
 =?utf-8?B?OXFRVkpHc1lFcmErY0ozbVczWnp2WC9VMnpRWGFDRVhmWllISk9NWXNScUlS?=
 =?utf-8?B?dUlMOGNWVXlvdTl5eXhQRkV4c1Q1SlljcmxQVTZ3SUVNOEkzSEVEeEJsOUdD?=
 =?utf-8?B?bC9MVVNXNWFnTEdxbXBvMzVBUzlZQnRJZXVkVzRGUDRIYXI5UEUyMmtBSGtz?=
 =?utf-8?B?TVJrZGpJa2EyMURLYk9LNzJ0TlJza1lZaUN3YUF0V0VyVE95aXYvQk5Ta0RB?=
 =?utf-8?B?SlpqblUwbExkQTRCT1ZtN1grL1R5MHo4SytaWU5tTElsL3FtWFFjN0ppTXFL?=
 =?utf-8?B?TlZzWU9KUkxkZXZqWGcyZWd0NmRqMEpQVkIxTmNnSzUrZU9iMldaeUpFd3VO?=
 =?utf-8?B?anJ1YzI5VlN4aVJ4SDRIVHVjVnZjdU9jVGFwa1RzVnZnNEZ0di8vSUt4b0xl?=
 =?utf-8?B?VmhZS0tDWkVYRHUvejVBK1hQTDlPSTlBTVB1L3hEVWUwZFRrdFd2d1ArRGRQ?=
 =?utf-8?B?eFhnT0J6QlRYcmVWS2Ixb29EZDMxc0l6U0VYOHVBK2xhR2haNC92N3F3TkRm?=
 =?utf-8?B?WEhCcEtUb1Y0VndTaFBteWZ5VXJzSStPLzM5NGJjcXJNa01zQWduRFJDdi82?=
 =?utf-8?B?a1FTbnI5RUY0K3NNVEd5U0tIbGtOTC95NUxJNGpVcHRlUWEyVy9XZndOTk5M?=
 =?utf-8?B?aUdTc2JZaExtaVZUVTB4ckRZamF4MFl0OGpZdUFGbkJlZzFQS1hjeUpSTWhR?=
 =?utf-8?B?aFR1aVRvTlUwWCtKVmR3RE9Lc0VUTjllMzI5bmtkODd5VmNYVGQ0S0NRNmRL?=
 =?utf-8?B?SXhnZ2ppVkpMQmdiemEzcHc1TzJ5K1o2eGVxTTNTdkZ3czRZNVh3QlJ2UHVW?=
 =?utf-8?B?UU16REVaWXV0OEVSZVZROWJrMEczd3NRSDZ2Z2VJTVFERE82MG5hZHN2cVMz?=
 =?utf-8?B?dmZtZDcwVk5UU2Y0S0FreGJrbzRzdEh2M29vRkVTNm5wNlFpRGJkWmc0Ym5u?=
 =?utf-8?B?bHlhUHU2UEl6bmpuTTFZaWFkbEpmdkhxNENYTGY3UDliMDVJdFNsUUd2YXQ4?=
 =?utf-8?B?SHdhTkFWTWw3NWlSS2s1dXVwQnNJNjJxbXk3Y29FZ0VvUnp2bDJyU29FRWk5?=
 =?utf-8?B?NklNUlhwdThSRlVaazFPcjVFYlRFRzd2UE9TODVWVjBOQ1VMck81RGRYVnFN?=
 =?utf-8?B?VFFxSTZsakI2SDZyTGJBUDM2OFN3Y3NjU0xJSTNXYXZuYmNzNFhCRW4zR1JR?=
 =?utf-8?B?RFJKMXV2N1ZZSmFFK0QyZ1gwUG15QVVua3kwL2NWZFkvcUdwalJ5Y292bFU0?=
 =?utf-8?B?bDdsU1FjVGZCTCtPL2FtTmN2ZE8ranBpRm0wckdqMGx0L25Sd21NTm1oc004?=
 =?utf-8?B?L2R1Z0F5eHBWZGRId0JqL3hxYVRLcldGb0xmWnEyOEdJMFRaSys4NzAzcWhV?=
 =?utf-8?B?QVBubWRrNUEraVdYRUZET2pxUmhIUjNSMVdVRHJPYTdMT0sxYkxaNU12Y2hu?=
 =?utf-8?B?d3VqWER3R3dEckdXVEVITzRNM3ZqdTFwcjNhRVRqVnJFc2pDcDVCdy9RcGFU?=
 =?utf-8?B?cnpoWXlCN05oa2dwcExKcVVIWjgwN3p5bVNOZTN4ZTNiY2R2T2o0Y2dWN1ZU?=
 =?utf-8?B?dTZqQmNJSXhYbU5PZms0MytJUG81czAvT0JsWldhTms1UlFZK1orT2xrRTgz?=
 =?utf-8?B?ZVRFYTA4amVYVUp5TkFDZ1I1c0tDTllYcmpwMEVaWEVhU0I1Z3hpLy9hQTNq?=
 =?utf-8?B?anRHSnE1OHlpUXJRQ0VGSVo2MXp4VHJ4aXQzNFdTZGVnd0tyaVE1ZjNjWm1l?=
 =?utf-8?B?WUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6AE90D1A19E82C47B87FACB873A1B8B2@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: cs-soprasteria.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7443.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 069e4311-2c91-4258-60ba-08dd0628a82f
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2024 10:23:04.6601
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8b87af7d-8647-4dc7-8df4-5f69a2011bb5
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: u1epJf2BsvuMvFP4MTAMMl9GB+ltZjWIBRqGCJtKjWYZ/HH3sNQKazDwruVImQ3kM3xeQIR3eZI0SpXgwnR9GS0tUWuQOllRnR/fe9IDL3vFO650rVnT+Pou38o9QdaI
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR07MB9604
X-MS-Exchange-CrossPremises-AuthAs: Internal
X-MS-Exchange-CrossPremises-AuthMechanism: 04
X-MS-Exchange-CrossPremises-AuthSource: AM8PR07MB7443.eurprd07.prod.outlook.com
X-MS-Exchange-CrossPremises-TransportTrafficType: Email
X-MS-Exchange-CrossPremises-SCL: 1
X-MS-Exchange-CrossPremises-messagesource: StoreDriver
X-MS-Exchange-CrossPremises-BCC:
X-MS-Exchange-CrossPremises-originalclientipaddress: 93.17.236.2
X-MS-Exchange-CrossPremises-transporttraffictype: Email
X-MS-Exchange-CrossPremises-antispam-scancontext: DIR:Originating;SFV:NSPM;SKIP:0;
X-MS-Exchange-CrossPremises-processed-by-journaling: Journal Agent
X-OrganizationHeadersPreserved: PAXPR07MB9604.eurprd07.prod.outlook.com

DQoNCkxlIDE1LzExLzIwMjQgw6AgMjI6MjYsIEVhc3dhciBIYXJpaGFyYW4gYSDDqWNyaXQgOg0K
PiBbVm91cyBuZSByZWNldmV6IHBhcyBzb3V2ZW50IGRlIGNvdXJyaWVycyBkZSBlYWhhcmloYUBs
aW51eC5taWNyb3NvZnQuY29tLiBEw6ljb3V2cmV6IHBvdXJxdW9pIGNlY2kgZXN0IGltcG9ydGFu
dCDDoCBodHRwczovL2FrYS5tcy9MZWFybkFib3V0U2VuZGVySWRlbnRpZmljYXRpb24gXQ0KPg0K
PiBUaGlzIGlzIGEgc2VyaWVzIHRoYXQgZm9sbG93cyB1cCBvbiBteSBwcmV2aW91cyBzZXJpZXMg
dG8gaW50cm9kdWNlDQo+IHNlY3NfdG9famlmZmllcygpIGFuZCBjb252ZXJ0IGEgZmV3IGluaXRp
YWwgdXNlcnMuWzFdIEluIHRoZSByZXZpZXcgZm9yDQo+IHRoYXQgc2VyaWVzLCBBbm5hLU1hcmlh
IHJlcXVlc3RlZCBjb252ZXJ0aW5nIG90aGVyIHVzZXJzIHdpdGgNCj4gQ29jY2luZWxsZS4gVGhp
cyBpcyBwYXJ0IDEgdGhhdCBjb252ZXJ0cyB1c2VycyBvZiBtc2Vjc190b19qaWZmaWVzKCkNCj4g
dGhhdCB1c2UgdGhlIG11bHRpcGx5IHBhdHRlcm4gb2YgZWl0aGVyIG9mOg0KPiAtIG1zZWNzX3Rv
X2ppZmZpZXMoTioxMDAwKSwgb3INCj4gLSBtc2Vjc190b19qaWZmaWVzKE4qTVNFQ19QRVJfU0VD
KQ0KDQpBZnRlciBhcHBseWluZyB0aGlzIHNlcmllcyBvbiB0b3Agb2YgdGlwL3RpbWVycy9jb3Jl
IHRyZWUsIEkgc3RpbGwgZmluZA0KYSBsb3Qgb2YgY2FuZGlkYXRlcyB0byB0aGUgY29udmVyc2lv
bjoNCg0KRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL21lZGlhL2R0di1mcm9udGVuZC5yc3Q6DQpz
dGF0ZS0+cGVyX2ppZmZpZXNfc3RhdHMgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDAw
KTsNCmFyY2gvYXJtL2tlcm5lbC9zbXAuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQphcmNoL2FybS9tYWNoLWlteC9z
cmMuYzogICAgICAgIHRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDAwKTsN
CmFyY2gvbWlwcy9rZXJuZWwvc21wLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKSB7DQphcmNoL29wZW5yaXNjL2tlcm5lbC9zbXAuYzog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAw
KSkpIHsNCmFyY2gvcmlzY3Yva2VybmVsL3NtcGJvb3QuYzogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQphcmNoL3h0ZW5zYS9r
ZXJuZWwvc21wLmM6ICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKw0KbXNl
Y3NfdG9famlmZmllcygxMDAwKTsNCmFyY2gveHRlbnNhL2tlcm5lbC9zbXAuYzogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQphcmNoL3h0ZW5z
YS9rZXJuZWwvc21wLmM6ICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKw0K
bXNlY3NfdG9famlmZmllcygxMDAwKTsNCmJsb2NrL2JmcS1pb3NjaGVkLmM6ICAgICAgICAgICAg
ICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMDApKSkgew0KYmxvY2svYmZxLWlvc2NoZWQuYzogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAw
MCkpKQ0KZHJpdmVycy9hY2NlbC9oYWJhbmFsYWJzL2NvbW1vbi9jb21tYW5kX3N1Ym1pc3Npb24u
YzogICAgICAgICAgICAgICAgICAgPw0KbXNlY3NfdG9famlmZmllcyhhcmdzLT5pbi50aW1lb3V0
ICogMTAwMCkNCmRyaXZlcnMvYWNjZWwvaGFiYW5hbGFicy9jb21tb24vZGVidWdmcy5jOiAgICAg
ICAgICAgICAgaGRldi0+dGltZW91dF9qaWZmaWVzID0NCm1zZWNzX3RvX2ppZmZpZXModmFsdWUg
KiAxMDAwKTsNCmRyaXZlcnMvYWNjZWwvaGFiYW5hbGFicy9jb21tb24vZGV2aWNlLmM6DQptc2Vj
c190b19qaWZmaWVzKGhkZXYtPmRldmljZV9yZWxlYXNlX3dhdGNoZG9nX3RpbWVvdXRfc2VjICog
MTAwMCkpOw0KZHJpdmVycy9hdGEvbGliYXRhLXpwb2RkLmM6ICAgICAgICAgICAgICAgbXNlY3Nf
dG9famlmZmllcyh6cG9kZF9wb3dlcm9mZl9kZWxheSAqDQoxMDAwKTsNCmRyaXZlcnMvYXV4ZGlz
cGxheS9hcm0tY2hhcmxjZC5jOiNkZWZpbmUgQ0hBUkxDRF9USU1FT1VUDQoobXNlY3NfdG9famlm
ZmllcygxMDAwKSkNCmRyaXZlcnMvYmxvY2svbXRpcDMyeHgvbXRpcDMyeHguYzogICAgICB0aW1l
b3V0ID0gamlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDAwKTsNCmRyaXZlcnMvYmxvY2sv
bXRpcDMyeHgvbXRpcDMyeHguYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9ibG9jay9y
YmQuYzojZGVmaW5lIFJCRF9SRVRSWV9ERUxBWSAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVz
KDEwMDApDQpkcml2ZXJzL2Jsb2NrL3JiZC5jOiAgICAgICAgICAgIG9wdC0+bG9ja190aW1lb3V0
ID0NCm1zZWNzX3RvX2ppZmZpZXMocmVzdWx0LnVpbnRfMzIgKiAxMDAwKTsNCmRyaXZlcnMvYmx1
ZXRvb3RoL2J0bnhwdWFydC5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2JsdWV0b290aC9oY2lfYmNtNDM3
Ny5jOiNkZWZpbmUgQkNNNDM3N19USU1FT1VUDQptc2Vjc190b19qaWZmaWVzKDEwMDApDQpkcml2
ZXJzL2JsdWV0b290aC9oY2lfaW50ZWwuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNl
Y3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2JsdWV0b290aC9oY2lfaW50ZWwuYzogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJz
L2JsdWV0b290aC9oY2lfbm9raWEuYzogICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSkp
IHsNCmRyaXZlcnMvYmx1ZXRvb3RoL2hjaV9ub2tpYS5jOiAgICAgICAgICBtc2Vjc190b19qaWZm
aWVzKDEwMDAwKSkpIHsNCmRyaXZlcnMvYmx1ZXRvb3RoL2hjaV92aGNpLmM6ICAgaGRldi0+ZHVt
cC50aW1lb3V0ID0NCm1zZWNzX3RvX2ppZmZpZXModGltZW91dCAqIDEwMDApOw0KZHJpdmVycy9i
bHVldG9vdGgvaGNpX3ZoY2kuYzogICBzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRhdGEtPm9wZW5f
dGltZW91dCwNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9jaGFyL2FncC9pbnRl
bC1ndHQuYzogICB1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2pp
ZmZpZXMoMTAwMCk7DQpkcml2ZXJzL2NvbWVkaS9kcml2ZXJzL2pyM19wY2kuYzogICAgICAgZGV2
cHJpdi0+dGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmllcygxMDAwKTsN
CmRyaXZlcnMvY3J5cHRvL2ludGVsL3FhdC9xYXRfY29tbW9uL2FkZl9hZXIuYzogIHVuc2lnbmVk
IGxvbmcNCndhaXRfamlmZmllcyA9IG1zZWNzX3RvX2ppZmZpZXMoMTAwMDApOw0KZHJpdmVycy9j
cnlwdG8vaW50ZWwvcWF0L3FhdF9jb21tb24vYWRmX2Flci5jOiAgICAgICAgICB1bnNpZ25lZCBs
b25nDQp3YWl0X2ppZmZpZXMgPSBtc2Vjc190b19qaWZmaWVzKDEwMDAwKTsNCmRyaXZlcnMvY3J5
cHRvL214cy1kY3AuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWFl
cy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMo
MTAwMCkpKQ0KZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWhhc2guYzogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKQ0KZHJpdmVy
cy9jcnlwdG8vc3RtMzIvc3RtMzItY3J5cC5jOiAgICAgIGlmDQooIXdhaXRfZm9yX2NvbXBsZXRp
b25fdGltZW91dCgmY3J5cC0+ZG1hX2NvbXBsZXRpb24sDQptc2Vjc190b19qaWZmaWVzKDEwMDAp
KSkgew0KZHJpdmVycy9kbWEvcGx4X2RtYS5jOiAgdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlm
ZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9kbWEvdGkvazMtdWRtYS5j
OiAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0K
ZHJpdmVycy9kbWEveGlsaW54L3hkbWEuYzoNCndhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgm
eGRtYV9jaGFuLT5sYXN0X2ludGVycnVwdCwNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJp
dmVycy9mcGdhL3hpbGlueC1jb3JlLmM6ICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBqaWZm
aWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS9hbWRncHVfY29ubmVjdG9ycy5jOg0KbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmM6ICAgICBhZGV2LT5nZnhfdGltZW91
dCA9DQptc2Vjc190b19qaWZmaWVzKDEwMDAwKTsNCmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
L2FtZGdwdV9kZXZpY2UuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNl
Y3NfdG9famlmZmllcyg2MDAwMCkNCjogbXNlY3NfdG9famlmZmllcygxMDAwMCk7DQpkcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYzojZGVmaW5lIEFNREdQVV9JQl9URVNUX1RJ
TUVPVVQNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkNCmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
L2FtZGdwdV9qcGVnLmM6I2RlZmluZSBKUEVHX0lETEVfVElNRU9VVA0KbXNlY3NfdG9famlmZmll
cygxMDAwKQ0KZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jOiNkZWZpbmUg
VVZEX0lETEVfVElNRU9VVA0KbXNlY3NfdG9famlmZmllcygxMDAwKQ0KZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jOiNkZWZpbmUgVkNFX0lETEVfVElNRU9VVA0KbXNlY3Nf
dG9famlmZmllcygxMDAwKQ0KZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5o
OiNkZWZpbmUgVkNOX0lETEVfVElNRU9VVA0KbXNlY3NfdG9famlmZmllcygxMDAwKQ0KZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZwZS5jOiNkZWZpbmUgVlBFX0lETEVfVElNRU9V
VA0KbXNlY3NfdG9famlmZmllcygxMDAwKQ0KZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4
X3YxMV8wLmM6IGxvbmcgdG1vID0gbXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjZfMC5jOiBsb25nIHRtbyA9IG1zZWNzX3RvX2ppZmZpZXMo
MTAwMCk7DQpkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y3XzAuYzogbG9uZyB0bW8g
PSBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9jYWRlbmNl
L2NkbnMtZHNpLWNvcmUuYzoNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9ncHUv
ZHJtL2JyaWRnZS9pdGUtaXQ2NTA1LmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYv
ZXRuYXZpdl9ncHUuYzogIHRpbWVvdXQgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAw
MCk7DQpkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5jOiAgdW5zaWduZWQgbG9u
ZyB0aW1lb3V0ID0NCm1zZWNzX3RvX2ppZmZpZXMoMTAgKiAxMDAwMCk7DQpkcml2ZXJzL2dwdS9k
cm0vZ21hNTAwL2Nkdl9pbnRlbF9jcnQuYzogICAgICAgICB0aW1lb3V0ID0gamlmZmllcyArDQpt
c2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl
bF9kcnJzLmM6DQptb2RfZGVsYXllZF93b3JrKGk5MTUtPnVub3JkZXJlZF93cSwgJmNydGMtPmRy
cnMud29yaywNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9ncHUvZHJtL2k5MTUv
ZGlzcGxheS9pbnRlbF9sc3Bjb24uYzogICAgICAgICAgICBpZiAodGltZV9hZnRlcihqaWZmaWVz
LA0Kc3RhcnQgKyBtc2Vjc190b19qaWZmaWVzKDEwMDApKSkNCmRyaXZlcnMvZ3B1L2RybS9pOTE1
L2Rpc3BsYXkvaW50ZWxfdGMuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9w
cmVlbXB0LmM6DQptb2RfdGltZXIoJmE1eHhfZ3B1LT5wcmVlbXB0X3RpbWVyLCBqaWZmaWVzICsg
bXNlY3NfdG9famlmZmllcygxMDAwMCkpOw0KZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4
eF9ncHUuYzogIGlmDQooIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZ211LT5wZF9nYXRl
LCBtc2Vjc190b19qaWZmaWVzKDEwMDApKSkNCmRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2Fk
cmVub19kZXZpY2UuYzoNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9ncHUvZHJt
L21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oOiNkZWZpbmUgQURSRU5PX0lETEVfVElNRU9VVA0KbXNl
Y3NfdG9famlmZmllcygxMDAwKQ0KZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUv
c2VjMi9iYXNlLmM6DQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvZ3B1L2RybS9u
b3V2ZWF1L252a20vZW5naW5lL3NlYzIvZ2ExMDIuYzoNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkp
Ow0KZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvc2VjMi9ncDEwMi5jOg0KbXNl
Y3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2ZhbGNv
bi9jbWRxLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19q
aWZmaWVzKDEwMDApKSkgew0KZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvcG11
L2dtMjBiLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBtdS0+c3ViZGV2
LA0KbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmtt
L3N1YmRldi9wbXUvZ3AxMGIuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
cG11LT5zdWJkZXYsDQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvZ3B1L2RybS9w
YW5mcm9zdC9wYW5mcm9zdF9wZXJmY250LmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9n
cHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X3BlcmZjbnQuYzogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9ncHUvZHJt
L3BhbnRob3IvcGFudGhvcl9mdy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCkpKSB7DQpkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0
b3JzLmM6DQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvZ3B1L2RybS9yYWRlb24v
cmFkZW9uX2Nvbm5lY3RvcnMuYzoNCnNjaGVkdWxlX2RlbGF5ZWRfd29yaygmcmRldi0+aG90cGx1
Z193b3JrLCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9o
dWIuYzogICAgdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJp
dmVycy9ncHUvZHJtL3RlZ3JhL2h1Yi5jOiAgICB0aW1lb3V0ID0gamlmZmllcyArIG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL2dwdS9kcm0vdGVncmEvc3VibWl0LmM6ICAgICAgICAg
ZXJyID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwNCnRydWUsIG1zZWNzX3RvX2ppZmZp
ZXMoMTAwMDApKTsNCmRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2JvLmM6ICAgdW5zaWduZWQgbG9u
ZyBleHBpcmVfdGltZSA9IGppZmZpZXMgLQ0KbXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZl
cnMvZ3B1L2RybS92YzQvdmM0X2JvLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKTsNCmRyaXZlcnMvZ3B1L2RybS92
YzQvdmM0X2RzaS5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9f
amlmZmllcygxMDAwKSkpIHsNCmRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3R4cC5jOiAgICAgICAg
ICB1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAw
MCk7DQpkcml2ZXJzL2dwdS9kcm0veGUveGVfZXhlY2xpc3QuYzogICAgICAgcG9ydC0+aXJxX2Zh
aWwuZXhwaXJlcyA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMv
Z3B1L2RybS94ZS94ZV9leGVjbGlzdC5jOiAgICAgICBwb3J0LT5pcnFfZmFpbC5leHBpcmVzID0g
amlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9ncHUvaXB1LXYzL2lw
dS1jb21tb24uYzogICAgICAgIHRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygx
MDAwKTsNCmRyaXZlcnMvZ3B1L2lwdS12My9pcHUtaW1hZ2UtY29udmVydC5jOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwMCkpOw0KZHJpdmVy
cy9ncHUvaXB1LXYzL2lwdS1pbWFnZS1jb252ZXJ0LmM6IHJldCA9DQp3YWl0X2Zvcl9jb21wbGV0
aW9uX3RpbWVvdXQoJmNvbXAsIG1zZWNzX3RvX2ppZmZpZXMoMTAwMDApKTsNCmRyaXZlcnMvaGlk
L2hpZC1ybWkuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlm
ZmllcygxMDAwKSkpIHsNCmRyaXZlcnMvaGlkL2kyYy1oaWQvaTJjLWhpZC1jb3JlLmM6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSkpIHsN
CmRyaXZlcnMvaGlkL3VzYmhpZC9oaWQtY29yZS5jOiAgICAgICAgICB1c2JoaWQtPnN0b3BfcmV0
cnkgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL2hpZC93YWNv
bV9zeXMuYzogICAgICAgIHNjaGVkdWxlX2RlbGF5ZWRfd29yaygmd2Fjb20tPmluaXRfd29yaywN
Cm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9od21vbi9vY2MvY29tbW9uLmM6I2Rl
ZmluZSBPQ0NfVVBEQVRFX0ZSRVFVRU5DWQ0KbXNlY3NfdG9famlmZmllcygxMDAwKQ0KZHJpdmVy
cy9pMmMvYnVzc2VzL2kyYy1jYWRlbmNlLmM6I2RlZmluZSBDRE5TX0kyQ19USU1FT1VUDQptc2Vj
c190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL2kyYy9idXNzZXMvaTJjLWNhZGVuY2UuYzogICAg
ICAgbXNnX3RpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKCgxMDAwICoNCm1zZy0+bGVuICogQklU
U19QRVJfQllURSkgLyBpZC0+aTJjX2Nsayk7DQpkcml2ZXJzL2kyYy9idXNzZXMvaTJjLWVnMjB0
LmM6ICAgICAgICAgICAgICAgICAoYWRhcC0+cGNoX2V2ZW50X2ZsYWcgIT0gMCksDQptc2Vjc190
b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW1nLXNjYi5jOiNkZWZp
bmUgSU1HX0kyQ19USU1FT1VUDQoobXNlY3NfdG9famlmZmllcygxMDAwKSkNCmRyaXZlcnMvaTJj
L2J1c3Nlcy9pMmMtbHBjMmsuYzogdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmllcyArDQpt
c2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1scGMyay5jOiAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpID09IDApIHsNCmRy
aXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXhzLmM6ICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlm
ZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1t
eHMuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9f
amlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2kyYy9idXNzZXMvaTJjLW9tYXAuYzojZGVmaW5lIE9N
QVBfSTJDX1RJTUVPVVQNCihtc2Vjc190b19qaWZmaWVzKDEwMDApKQ0KZHJpdmVycy9pMmMvYnVz
c2VzL2kyYy12aWFpMmMtY29tbW9uLmg6I2RlZmluZSBWSUFJMkNfVElNRU9VVA0KKG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCkpDQpkcml2ZXJzL2kyYy9idXNzZXMvaTJjLXhpaWMuYzojZGVmaW5lIFhJ
SUNfSTJDX1RJTUVPVVQNCihtc2Vjc190b19qaWZmaWVzKDEwMDApKQ0KZHJpdmVycy9pMmMvYnVz
c2VzL2kyYy14aWljLmM6I2RlZmluZSBYSUlDX1hGRVJfVElNRU9VVA0KKG1zZWNzX3RvX2ppZmZp
ZXMoMTAwMDApKQ0KZHJpdmVycy9pM2MvbWFzdGVyL2R3LWkzYy1tYXN0ZXIuYzojZGVmaW5lIFhG
RVJfVElNRU9VVA0KKG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpDQpkcml2ZXJzL2kzYy9tYXN0ZXIv
aTNjLW1hc3Rlci1jZG5zLmM6ICAgaWYNCighd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZ4
ZmVyLT5jb21wLCBtc2Vjc190b19qaWZmaWVzKDEwMDApKSkNCmRyaXZlcnMvaTNjL21hc3Rlci9p
M2MtbWFzdGVyLWNkbnMuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vj
c190b19qaWZmaWVzKDEwMDApKSkNCmRyaXZlcnMvaTNjL21hc3Rlci9pM2MtbWFzdGVyLWNkbnMu
YzogICBpZg0KKCF3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJnhmZXItPmNvbXAsIG1zZWNz
X3RvX2ppZmZpZXMoMTAwMCkpKQ0KZHJpdmVycy9pM2MvbWFzdGVyL3N2Yy1pM2MtbWFzdGVyLmM6
ICAgICAgICAgICAgaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgc3RhcnQgKw0KbXNlY3NfdG9famlm
ZmllcygxMDAwKSkpIHsNCmRyaXZlcnMvaTNjL21hc3Rlci9zdmMtaTNjLW1hc3Rlci5jOiAgICBp
Zg0KKCF3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJnhmZXItPmNvbXAsIG1zZWNzX3RvX2pp
ZmZpZXMoMTAwMCkpKQ0KZHJpdmVycy9pM2MvbWFzdGVyL3N2Yy1pM2MtbWFzdGVyLmM6ICAgIGlm
DQooIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmeGZlci0+Y29tcCwgbXNlY3NfdG9famlm
ZmllcygxMDAwKSkpDQpkcml2ZXJzL2kzYy9tYXN0ZXIvc3ZjLWkzYy1tYXN0ZXIuYzogICAgaWYN
Cighd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZ4ZmVyLT5jb21wLCBtc2Vjc190b19qaWZm
aWVzKDEwMDApKSkNCmRyaXZlcnMvaTNjL21hc3Rlci9zdmMtaTNjLW1hc3Rlci5jOiAgICBpZg0K
KCF3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJnhmZXItPmNvbXAsIG1zZWNzX3RvX2ppZmZp
ZXMoMTAwMCkpKQ0KZHJpdmVycy9paW8vYWNjZWwvYm1jMTUwLWFjY2VsLWkyYy5jOg0Kc2NoZWR1
bGVfZGVsYXllZF93b3JrKCZkYXRhLT5yZXN1bWVfd29yaywgbXNlY3NfdG9famlmZmllcygxMDAw
KSk7DQpkcml2ZXJzL2lpby9hZGMvYWQ0MTMwLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvaWlvL2FkYy9h
ZDc2MDYuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9paW8vYWRjL2FkNzc2OC0xLmM6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2
ZXJzL2lpby9hZGMvYXQ5MS1zYW1hNWQyX2FkYy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2lpby9h
ZGMvYXQ5MV9hZGMuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2lpby9hZGMvYmVybGlu
Mi1hZGMuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9paW8vYWRjL2JlcmxpbjItYWRjLmM6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsN
CmRyaXZlcnMvaWlvL2FkYy9pbnRlbF9tcmZsZF9hZGMuYzojZGVmaW5lIEJDT1ZFX0FEQ19USU1F
T1VUDQptc2Vjc190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL2lpby9hZGMvbWF4MTAyNy5jOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2pp
ZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9paW8vYWRjL25hdTc4MDIuYzogICAgICAgICAgICAgICAg
ICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2lpby9hZGMvc3RtcGUtYWRj
LmM6I2RlZmluZSBTVE1QRV9BRENfVElNRU9VVA0KbXNlY3NfdG9famlmZmllcygxMDAwKQ0KZHJp
dmVycy9paW8vYWRjL3N1bjRpLWdwYWRjLWlpby5jOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKSB7DQpkcml2ZXJzL2lpby9hZGRh
Yy9hZDc0MTE1LmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9paW8vYWRkYWMvYWQ3NDQxM3IuYzog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAw
KSk7DQpkcml2ZXJzL2lpby9jaGVtaWNhbC9zY2QzMF9jb3JlLmM6ICAgICAgdGltZW91dCA9DQpt
c2Vjc190b19qaWZmaWVzKHN0YXRlLT5tZWFzX2ludGVydmFsICogKDEwMDAgKyBTQ0QzMF9FWFRS
QV9USU1FT1VUX1BFUl9TKSk7DQpkcml2ZXJzL2lpby9saWdodC9ncDJhcDAyMGEwMGYuYzojZGVm
aW5lIEdQMkFQMDIwQTAwRl9EQVRBX1JFQURZX1RJTUVPVVQNCiAgICAgICAgbXNlY3NfdG9famlm
ZmllcygxMDAwKQ0KZHJpdmVycy9paW8vbWFnbmV0b21ldGVyL2FrODk3NC5jOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0K
ZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuYzogICAgICAgICAgICAgICAgICAgICAg
ICAmcm1wcF9yZWN2LT5jbGVhbnVwX3dvcmssDQptc2Vjc190b19qaWZmaWVzKDEwMDAwKSk7DQpk
cml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9xcGxpYl9yY2Z3LmM6DQptc2Vjc190b19qaWZm
aWVzKHJjZnctPm1heF90aW1lb3V0ICogMTAwMCkpOw0KZHJpdmVycy9pbmZpbmliYW5kL2h3L21s
eDQvYWxpYXNfR1VJRC5jOg0KbXNlY3NfdG9famlmZmllcyhyZXNjaGVkX2RlbGF5X3NlYyAqIDEw
MDApKTsNCmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21yLmM6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVy
cy9pbmZpbmliYW5kL2h3L21seDUvbXIuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvaW5m
aW5pYmFuZC9ody9tbHg1L21yLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtc2Vjc190b19qaWZmaWVzKDMwICogMTAwMCkpOw0KZHJpdmVycy9pbmZpbmliYW5kL2h3
L29jcmRtYS9vY3JkbWFfaHcuYzoNCnNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2LT5lcWRfd29y
aywgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL2luZmluaWJhbmQvaHcvb2NyZG1h
L29jcmRtYV9tYWluLmM6DQpzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRldi0+ZXFkX3dvcmssIG1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3Jw
LmM6ICAgIHJxX3Rtb19qaWZmaWVzID0NCm1zZWNzX3RvX2ppZmZpZXMobWF4X2NvbXBsX3RpbWVf
bXMgKyAxMDAwKTsNCmRyaXZlcnMvaW5wdXQvcm1pNC9ybWlfZjU0LmM6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKSkgew0K
ZHJpdmVycy9pbnB1dC9zZXJpby9wczItZ3Bpby5jOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMDApKSkNCmRyaXZlcnMvaW5wdXQv
c2VyaW8vc3VuNGktcHMyLmM6ICAgICAgICB1bnNpZ25lZCBsb25nIGV4cGlyZSA9IGppZmZpZXMg
Kw0KbXNlY3NfdG9famlmZmllcygxMDAwMCk7DQpkcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3N0
bWZ0cy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlm
ZmllcygxMDAwKSkpDQpkcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3pmb3JjZV90cy5jOiNkZWZp
bmUgV0FJVF9USU1FT1VUDQptc2Vjc190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL2lvbW11L2lv
bW11ZmQvbWFpbi5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMo
MTAwMDApKSkNCmRyaXZlcnMvbWFpbGJveC9wbDMyMC1pcGMuYzogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9tZWRp
YS9jZWMvdXNiL2V4dHJvbi1kYS1oZC00ay1wbHVzL2V4dHJvbi1kYS1oZC00ay1wbHVzLmM6DQog
ICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9tZWRpYS9jZWMvdXNiL2V4dHJv
bi1kYS1oZC00ay1wbHVzL2V4dHJvbi1kYS1oZC00ay1wbHVzLmM6DQogICAgbXNlY3NfdG9famlm
ZmllcygxMDAwKSk7DQpkcml2ZXJzL21lZGlhL2NlYy91c2IvZXh0cm9uLWRhLWhkLTRrLXBsdXMv
ZXh0cm9uLWRhLWhkLTRrLXBsdXMuYzoNCiAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpk
cml2ZXJzL21lZGlhL2R2Yi1mcm9udGVuZHMvY3gyNDEyMC5jOiAgICAgICAgICBzdGF0ZS0+cGVy
X2ppZmZpZXNfc3RhdHMgPQ0KamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2
ZXJzL21lZGlhL2R2Yi1mcm9udGVuZHMvY3hkMjg0MWVyLmM6ICAgICAgICAgICAgICAgIHByaXYt
PnN0YXRzX3RpbWUgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJz
L21lZGlhL2R2Yi1mcm9udGVuZHMvZGliNzAwMHAuYzogICAgICAgICBzdGF0ZS0+cGVyX2ppZmZp
ZXNfc3RhdHMgPQ0KamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL21l
ZGlhL2R2Yi1mcm9udGVuZHMvZGliODAwMC5jOiAgICAgICAgICBzdGF0ZS0+cGVyX2ppZmZpZXNf
c3RhdHMgPQ0KamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL21lZGlh
L2R2Yi1mcm9udGVuZHMvbGdkdDMzMHguYzogc3RhdGUtPmxhc3Rfc3RhdHNfdGltZSA9IGppZmZp
ZXMNCisgbXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvbWVkaWEvZHZiLWZyb250ZW5k
cy9sZ2R0MzMweC5jOiBzdGF0ZS0+bGFzdF9zdGF0c190aW1lID0gamlmZmllcw0KKyBtc2Vjc190
b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9tZWRpYS9kdmItZnJvbnRlbmRzL21iODZhMjBzLmM6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZm
aWVzKDEwMDApOw0KZHJpdmVycy9tZWRpYS9kdmItZnJvbnRlbmRzL3NwMi5jOiAgICAgICAgICAg
ICAgcy0+bmV4dF9zdGF0dXNfY2hlY2tlZF90aW1lID0NCmppZmZpZXMgKyAgICAgICBtc2Vjc190
b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9tZWRpYS9pMmMvZHM5MHViOTYwLmM6ICB0aW1lb3V0
ID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL21lZGlhL3BjaS9i
dDh4eC9idHR2LWlucHV0LmM6ICAgICAgICAgICBpci0+dGltZXIuZXhwaXJlcyAgPSBqaWZmaWVz
ICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL21lZGlhL3BjaS9idDh4eC9idHR2
cC5oOiNkZWZpbmUgQlRUVl9GUkVFX0lETEUNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkgICAvKiBv
bmUgc2Vjb25kICovDQpkcml2ZXJzL21lZGlhL3BjaS9jeDE4L2N4MTgtZmlsZW9wcy5jOiAgICAg
ICAgICAgICAgICAgIGlmICh0aW1lX2FmdGVyKGppZmZpZXMsDQpjeC0+ZHVhbHdhdGNoX2ppZmZp
ZXMgKyBtc2Vjc190b19qaWZmaWVzKDEwMDApKSkgew0KZHJpdmVycy9tZWRpYS9wY2kvY3gyMzg4
NS9jaW1heDIuYzogICAgICAgICAgICAgICAgICAgICArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7
DQpkcml2ZXJzL21lZGlhL3BjaS9jeDg4L2N4ODgtYmxhY2tiaXJkLmM6ICAgICAgICB0aW1lb3V0
ID0gamlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9tZWRpYS9wY2kv
aXZ0di9pdnR2LWZpbGVvcHMuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vj
c190b19qaWZmaWVzKDEwMDApKSkgew0KZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2LW1haWxi
b3guYzogIGludCBhcGlfdGltZW91dCA9DQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVy
cy9tZWRpYS9wY2kvbWdiNC9tZ2I0X2RtYS5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMDApKSkgew0KZHJpdmVycy9tZWRpYS9wY2kv
bmV0dXBfdW5pZHZiL25ldHVwX3VuaWR2Yl9jb3JlLmM6DQptb2RfdGltZXIoJmRtYS0+dGltZW91
dCwgamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9tZWRpYS9wY2kv
c2FhNzEzNC9zYWE3MTM0Lmg6I2RlZmluZSBUU19CVUZGRVJfVElNRU9VVA0KbXNlY3NfdG9famlm
ZmllcygxMDAwKSAgLyogMSBzZWNvbmQgKi8NCmRyaXZlcnMvbWVkaWEvcGNpL3R3NTg2NC90dzU4
NjQtY29yZS5jOiBpbnB1dC0+bmV3X2ZyYW1lX2RlYWRsaW5lID0NCmppZmZpZXMgKyBtc2Vjc190
b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbXBoaW9uL3ZwdS5oOiNk
ZWZpbmUgVlBVX1RJTUVPVVQNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkNCmRyaXZlcnMvbWVkaWEv
cGxhdGZvcm0vYXNwZWVkL2FzcGVlZC12aWRlby5jOiNkZWZpbmUgU1RPUF9USU1FT1VUDQptc2Vj
c190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NoaXBzLW1lZGlhL2Nv
ZGEvY29kYS1iaXQuYzogICAgIHVuc2lnbmVkIGxvbmcNCnRpbWVvdXQgPSBqaWZmaWVzICsgbXNl
Y3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY2hpcHMtbWVkaWEv
Y29kYS9jb2RhLWNvbW1vbi5jOg0KbXNlY3NfdG9famlmZmllcygxMDAwKSkpIHsNCmRyaXZlcnMv
bWVkaWEvcGxhdGZvcm0vbnZpZGlhL3RlZ3JhLXZkZS9oMjY0LmM6DQomdmRlLT5kZWNvZGVfY29t
cGxldGlvbiwgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL21lZGlhL3BsYXRmb3Jt
L3Fjb20vdmVudXMvaGZpLmM6I2RlZmluZSBUSU1FT1VUDQptc2Vjc190b19qaWZmaWVzKDEwMDAp
DQpkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwL3JraXNwMS9ya2lzcDEtY2FwdHVyZS5j
Og0KbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3RpL29t
YXAzaXNwL2lzcC5jOiNkZWZpbmUgSVNQX1NUT1BfVElNRU9VVA0KbXNlY3NfdG9famlmZmllcygx
MDAwKQ0KZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS90aS9vbWFwM2lzcC9pc3AuYzogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKSkgew0K
ZHJpdmVycy9tZWRpYS9yYWRpby9yYWRpby13bDEyNzMuYzogICAgIHQgPQ0Kd2FpdF9mb3JfY29t
cGxldGlvbl90aW1lb3V0KCZyYWRpby0+YnVzeSwgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpk
cml2ZXJzL21lZGlhL3JhZGlvL3JhZGlvLXdsMTI3My5jOg0Kd2FpdF9mb3JfY29tcGxldGlvbl90
aW1lb3V0KCZyYWRpby0+YnVzeSwgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL21l
ZGlhL3JhZGlvL3JhZGlvLXdsMTI3My5jOiAgICAgaWYNCighd2FpdF9mb3JfY29tcGxldGlvbl90
aW1lb3V0KCZyYWRpby0+YnVzeSwgbXNlY3NfdG9famlmZmllcygxMDAwKSkpDQpkcml2ZXJzL21l
ZGlhL3JhZGlvL3RlYTU3NXguYzogIHRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmll
cygxMDAwMCk7DQpkcml2ZXJzL21lZGlhL3R1bmVycy9zaTIxNTcuYzogIHNjaGVkdWxlX2RlbGF5
ZWRfd29yaygmZGV2LT5zdGF0X3dvcmssDQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZl
cnMvbWVkaWEvdXNiL2R2Yi11c2ItdjIvYWY5MDE1LmM6ICBmb3IgKHZhbCA9IDB4MDAsIHRpbWVv
dXQgPQ0KamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL21lZGlhL3Vz
Yi9kdmItdXNiLXYyL2FueXNlZS5jOiAgc3RhdGUtPmNpX2NhbV9yZWFkeSA9IGppZmZpZXMgKw0K
bXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvbWVkaWEvdXNiL2hkcHZyL2hkcHZyLXZp
ZGVvLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsN
CmRyaXZlcnMvbWVtc3RpY2svaG9zdC9qbWIzOHhfbXMuYzogICAgICBob3N0LT50aW1lb3V0X2pp
ZmZpZXMgPQ0KbXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvbWVtc3RpY2svaG9zdC9y
NTkyLmM6ICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmllcyArDQptc2Vjc190b19qaWZm
aWVzKDEwMDApOw0KZHJpdmVycy9tZW1zdGljay9ob3N0L3I1OTIuYzogICAgICAgICAgICAgICAg
ICAgJmRldi0+ZG1hX2RvbmUsIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKSB7DQpkcml2ZXJzL21l
bXN0aWNrL2hvc3QvdGlmbV9tcy5jOiAgICAgICAgaG9zdC0+dGltZW91dF9qaWZmaWVzID0NCm1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL21pc2MvY3hsL2d1ZXN0LmM6ICAgICAgIHNj
aGVkdWxlX2RlbGF5ZWRfd29yaygmYWZ1LT5ndWVzdC0+d29ya19lcnIsDQptc2Vjc190b19qaWZm
aWVzKDEwMDApKTsNCmRyaXZlcnMvbWlzYy9wY2lfZW5kcG9pbnRfdGVzdC5jOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpk
cml2ZXJzL21pc2MvcGNpX2VuZHBvaW50X3Rlc3QuYzogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9tbWMvaG9z
dC9tZXNvbi1teC1zZGlvLmM6ICAgICAgICAgICAgICAgdGltZW91dCA9IG1zZWNzX3RvX2ppZmZp
ZXMoMTAwMCk7DQpkcml2ZXJzL21tYy9ob3N0L21veGFydC1tbWMuYzogIGhvc3QtPnRpbWVvdXQg
PSBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9tbWMvaG9zdC9zaF9tbWNpZi5jOiAg
ICBob3N0LT50aW1lb3V0ICAgPSBtc2Vjc190b19qaWZmaWVzKDEwMDAwKTsNCmRyaXZlcnMvbW1j
L2hvc3Qvc3VueGktbW1jLmM6ICAgdW5zaWduZWQgbG9uZyBleHBpcmUgPSBqaWZmaWVzICsNCm1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL210ZC9oeXBlcmJ1cy9oYm1jLWFtNjU0LmM6
ICAgICAgaWYNCighd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZwcml2LT5yeF9kbWFfY29t
cGxldGUsDQptc2Vjc190b19qaWZmaWVzKGxlbiArIDEwMDApKSkgew0KZHJpdmVycy9tdGQvbmFu
ZC9lY2MtbXhpYy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvbXRkL25hbmQvcmF3L2NhZGVuY2Ut
bmFuZC1jb250cm9sbGVyLmM6IHVuc2lnbmVkIGxvbmcgdGltZW91dCA9DQptc2Vjc190b19qaWZm
aWVzKDEwMDAwKTsNCmRyaXZlcnMvbXRkL25hbmQvcmF3L2RlbmFsaS5jOiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJp
dmVycy9tdGQvbmFuZC9yYXcvZ3BtaS1uYW5kL2dwbWktbmFuZC5jOiAgICAgdG8gPQ0Kd2FpdF9m
b3JfY29tcGxldGlvbl90aW1lb3V0KGRtYV9jb21wbGV0aW9uLCBtc2Vjc190b19qaWZmaWVzKDEw
MDApKTsNCmRyaXZlcnMvbXRkL25hbmQvcmF3L2dwbWktbmFuZC9ncG1pLW5hbmQuYzogICAgICAg
ICAgICAgdG8gPQ0Kd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KGJjaF9jb21wbGV0aW9uLCBt
c2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvbXRkL25hbmQvcmF3L2ludGVsLW5hbmQt
Y29udHJvbGxlci5jOiAgIHRpbWVfbGVmdCA9DQp3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQo
ZG1hX2NvbXBsZXRpb24sIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9tdGQvbmFu
ZC9yYXcvbHBjMzJ4eF9tbGMuYzoNCndhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmaG9zdC0+
Y29tcF9kbWEsIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9tdGQvbmFuZC9yYXcv
bHBjMzJ4eF9zbGMuYzoNCndhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmaG9zdC0+Y29tcCwg
bXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL210ZC9uYW5kL3Jhdy9yODUyLmM6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVy
cy9tdGQvbmFuZC9yYXcvcjg1Mi5jOiAgICAgICAgICAgICZkZXYtPmNhcmRfZGV0ZWN0X3dvcmss
DQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvbmV0L2FtdC5jOiAgICAgIG1vZF9k
ZWxheWVkX3dvcmsoYW10X3dxLCAmYW10LT5yZXFfd3EsDQptc2Vjc190b19qaWZmaWVzKGV4cCAq
IDEwMDApKTsNCmRyaXZlcnMvbmV0L2FyY25ldC9hcmNuZXQuYzogICAgbW9kX3RpbWVyKCZscC0+
dGltZXIsIGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL25ldC9h
cmNuZXQvYXJjbmV0LmM6ICAgICAgICAgICAgICAgICAgICBtb2RfdGltZXIoJmxwLT50aW1lciwg
amlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvbmV0L2Nhbi9rdmFz
ZXJfcGNpZWZkLmM6I2RlZmluZSBLVkFTRVJfUENJRUZEX1dBSVRfVElNRU9VVA0KbXNlY3NfdG9f
amlmZmllcygxMDAwKQ0KZHJpdmVycy9uZXQvY2FuL3NqYTEwMDAvcGVha19wY21jaWEuYzoNCm1z
ZWNzX3RvX2ppZmZpZXMoUENDX1NQSV9NQVhfQlVTWV9XQUlUX01TKSArIDE7DQpkcml2ZXJzL25l
dC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaDojZGVmaW5lDQpCTlhUX1NSSU9WX0NGR19X
QUlUX1RNTyBtc2Vjc190b19qaWZmaWVzKDEwMDAwKQ0KZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2
aXVtL2xpcXVpZGlvL2xpb19tYWluLmM6I2RlZmluZQ0KV0FJVF9JTkZMSUdIVF9SRVFVRVNUICAg
bXNlY3NfdG9famlmZmllcygxMDAwKQ0KZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL2xpcXVp
ZGlvL2xpb19tYWluLmM6DQp3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmZpcnN0X3N0YWdl
LCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9i
ZW5ldC9iZV9tYWluLmM6ICAgIHF1ZXVlX2RlbGF5ZWRfd29yayhiZV93cSwNCiZhZGFwdGVyLT53
b3JrLCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxl
eC9iZW5ldC9iZV9tYWluLmM6ICAgIHF1ZXVlX2RlbGF5ZWRfd29yayhiZV93cSwNCiZhZGFwdGVy
LT53b3JrLCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvbmV0L2V0aGVybmV0L2li
bS9laGVhL2VoZWFfbWFpbi5jOg0Kcm91bmRfamlmZmllc19yZWxhdGl2ZShtc2Vjc190b19qaWZm
aWVzKDEwMDApKSk7DQpkcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZWhlYS9laGVhX21haW4uYzoN
CnJvdW5kX2ppZmZpZXNfcmVsYXRpdmUobXNlY3NfdG9famlmZmllcygxMDAwKSkpOw0KZHJpdmVy
cy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV9lc3dpdGNoX2JyLmM6I2RlZmluZQ0KSUNFX0VT
V19CUklER0VfVVBEQVRFX0lOVEVSVkFMIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkNCmRyaXZlcnMv
bmV0L2V0aGVybmV0L2ludGVsL2lkcGYvaWRwZl9saWIuYzogICAgICAgICAgICAgICAgICAgICAg
ICBtc2Vjc190b19qaWZmaWVzKDEwMDAwKSk7DQpkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxs
L3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuYzojZGVmaW5lDQpDT1VOVEVSX1BPTExfVElNRSAg
ICAgICAobXNlY3NfdG9famlmZmllcygxMDAwKSkNCmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlh
dGVrL210a19ldGhfc29jLmg6I2RlZmluZQ0KTVRLX0RNQV9NT05JVE9SX1RJTUVPVVQgICAgICAg
ICBtc2Vjc190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t
bHg1L2NvcmUvY21kLmM6ICBwb2xsX2VuZCA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmllcyhj
bWRfdG9fbXMgKyAxMDAwKTsNCmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y
ZS9lbl9hY2NlbC9pcHNlYy5jOiNkZWZpbmUNCk1MWDVfSVBTRUNfUkVTQ0hFRCBtc2Vjc190b19q
aWZmaWVzKDEwMDApDQpkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNf
Y291bnRlcnMuYzojZGVmaW5lDQpNTFg1X0ZDX1NUQVRTX1BFUklPRCBtc2Vjc190b19qaWZmaWVz
KDEwMDApDQpkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY291bnRl
cnMuYzojZGVmaW5lDQpNTFg1X0ZDX0JVTEtfUVVFUllfQUxMT0NfUEVSSU9EIG1zZWNzX3RvX2pp
ZmZpZXMoMTgwICogMTAwMCkNCmRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxv
d2VyL3Fvc19jb25mLmM6I2RlZmluZQ0KTkZQX0ZMX1FPU19VUERBVEUgICAgICAgICAgICAgICBt
c2Vjc190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL25ldC9ldGhlcm5ldC90aS9hbTY1LWNwc3ct
bnVzcy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2pp
ZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvYW02NS1jcHN3LW51c3MuYzog
ICAgICAgICAgICAgICBpID0NCndhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmY29tbW9uLT50
ZG93bl9jb21wbGV0ZSwNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9uZXQvZXRo
ZXJuZXQvdGkvaWNzc2cvaWNzc2dfcHJ1ZXRoLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9uZXQvZXRoZXJuZXQv
dGkvaWNzc2cvaWNzc2dfcHJ1ZXRoX3NyMS5jOg0KbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpk
cml2ZXJzL25ldC9ldGhlcm5ldC90aS9pY3NzZy9pY3NzZ19zdGF0cy5jOg0KbXNlY3NfdG9famlm
ZmllcygoU1RBVFNfVElNRV9MSU1JVF8xR19NUyAqIDEwMDApIC8gZW1hYy0+c3BlZWQpKTsNCmRy
aXZlcnMvbmV0L2V0aGVybmV0L3ZlcnRleGNvbS9tc2UxMDJ4LmM6ICAgICAgIHVuc2lnbmVkIGxv
bmcgd29ya190aW1lb3V0ID0NCmppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJp
dmVycy9uZXQvaWVlZTgwMjE1NC9jYTgyMTAuYzogICAgICAgICAgICAgICAgICAgICAgICBtc2Vj
c190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL25ldC9waHkvc2ZwLmM6I2RlZmluZSBUX0ZBVUxU
X1JFQ09WRVIgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkNCmRyaXZlcnMvbmV0L3Bo
eS9zZnAuYzogIHNmcC0+cGh5X3RfcmV0cnkgPSBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJp
dmVycy9uZXQvcHNlLXBkL3BkNjkyeDAuYzogICB0aW1lb3V0ID0gbXNlY3NfdG9famlmZmllcygx
MDAwMCkgKyBqaWZmaWVzOw0KZHJpdmVycy9uZXQvdGh1bmRlcmJvbHQvbWFpbi5jOiAgICAgICAg
ICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL25ldC93aXJlbGVz
cy9hdGgvd2lsNjIxMC93aWw2MjEwLmg6I2RlZmluZSBXSUw2MjEwX1NDQU5fVE8NCm1zZWNzX3Rv
X2ppZmZpZXMoMTAwMDApDQpkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1
LW1hYy5jOiAgICAgICAgICAgamlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKHJlY2FsaWJfc2Vj
b25kcyAqIDEwMDApKTsNCmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4
LmM6DQptc2Vjc190b19qaWZmaWVzKHJlZ19yZWNhbGliX3BlcmlvZCAqIDEwMDApKTsNCmRyaXZl
cnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jOiAgICAgICAgZndydC0+
dGltZXN0YW1wLmRlbGF5ID0NCm1zZWNzX3RvX2ppZmZpZXMoZGVsYXkgKiAxMDAwKTsNCmRyaXZl
cnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9wNTR1c2IuYzogICAgIHRpbWVvdXQgPSBqaWZm
aWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRl
cnNpbC9wNTQvcDU0dXNiLmM6ICAgICB0aW1lb3V0ID0gamlmZmllcyArDQptc2Vjc190b19qaWZm
aWVzKDEwMDApOw0KZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9tY3UuYzog
ICAgaWYNCighd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZjbXBsLCBtc2Vjc190b19qaWZm
aWVzKDEwMDApKSkgew0KZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2hp
Zi5jOg0KbW9kX3RpbWVyKCZ2aWYtPnBlcmlvZGljX3Jzc2ksIGppZmZpZXMgKyBtc2Vjc190b19q
aWZmaWVzKDUwMDApKTsNCmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9o
aWYuYzoNCm1vZF90aW1lcigmdmlmLT5wZXJpb2RpY19yc3NpLCBqaWZmaWVzICsgbXNlY3NfdG9f
amlmZmllcyg1MDAwKSk7DQpkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAv
bmV0ZGV2LmM6DQptc2Vjc190b19qaWZmaWVzKDUwMDApKSkNCmRyaXZlcnMvbmV0L3dpcmVsZXNz
L21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg6I2RlZmluZQ0KV0lMQ19DRkdfUEtUU19USU1FT1VU
ICAgbXNlY3NfdG9famlmZmllcygzMDAwKQ0KZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dm
eC9kYXRhX3R4LmM6DQptc2Vjc190b19qaWZmaWVzKDEwMDApKSA8PSAwKQ0KZHJpdmVycy9uZmMv
czNmd3JuNS9maXJtd2FyZS5jOiAgICAgICAgICZmd19pbmZvLT5jb21wbGV0aW9uLA0KbXNlY3Nf
dG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL25mYy9zdDk1aGYvc3BpLmM6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsN
CmRyaXZlcnMvbnRiL2h3L2FtZC9udGJfaHdfYW1kLmg6I2RlZmluZSBBTURfTElOS19IQl9USU1F
T1VUDQptc2Vjc190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL252bWUvaG9zdC9jb3JlLmM6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoYWRtaW5fdGltZW91
dCAqIDEwMDApOw0KZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtbWhpLmM6
ICAgcmV0ID0NCndhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmY29tcGxldGUsIG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYt
bWhpLmM6ICAgcmV0ID0NCndhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmY29tcGxldGUsIG1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9wY2kvaG90cGx1Zy9zaHBjaHBfaHBjLmM6
ICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCA9DQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0K
ZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtbHlueC0yOGcuYzogICAgICAgICAgICAgICAg
ICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9waHkvZnJlZXNjYWxl
L3BoeS1mc2wtbHlueC0yOGcuYzogICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2pp
ZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9waHkvbW90b3JvbGEvcGh5LWNwY2FwLXVzYi5jOiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJp
dmVycy9waHkvcm9ja2NoaXAvcGh5LXJvY2tjaGlwLXBjaWUuYzogICAgICAgdGltZW91dCA9IGpp
ZmZpZXMgKw0KbXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvcGxhdGZvcm0vY2hyb21l
L2Nyb3NfdHlwZWNfc3dpdGNoLmM6ICAgIGVuZCA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmll
cygxMDAwKTsNCmRyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2R0eC5jOiBzZHR4X3Vw
ZGF0ZV9kZXZpY2Vfc3RhdGUoZGRldiwNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVy
cy9wbGF0Zm9ybS94ODYvYW1kL3BtZi9hY3BpLmM6DQpzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRl
di0+aGVhcnRfYmVhdCwNCm1zZWNzX3RvX2ppZmZpZXMoZGV2LT5oYl9pbnRlcnZhbCAqIDEwMDAp
KTsNCmRyaXZlcnMvcGxhdGZvcm0veDg2L2RlbGwvZGVsbC11YXJ0LWJhY2tsaWdodC5jOiNkZWZp
bmUgREVMTF9CTF9USU1FT1VUDQptc2Vjc190b19qaWZmaWVzKDEwMDApDQpkcml2ZXJzL3BsYXRm
b3JtL3g4Ni90aGlua3BhZF9hY3BpLmM6DQptc2Vjc190b19qaWZmaWVzKGZhbl93YXRjaGRvZ19t
YXhpbnRlcnZhbCAqIDEwMDApKTsNCmRyaXZlcnMvcG93ZXIvc3VwcGx5L3Fjb21fcG1pODk5OF9j
aGFyZ2VyLmM6DQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvcnRjL3J0Yy1pc2wx
MjA4LmM6ICAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmllcyArDQptc2Vjc190b19q
aWZmaWVzKDEwMDApOw0KZHJpdmVycy9zY3NpL2N4bGZsYXNoL21haW4uYzogICB1bG9uZyB0aW1l
b3V0ID0NCm1zZWNzX3RvX2ppZmZpZXMoY21kLT5yY2IudGltZW91dCAqIDIgKiAxMDAwKTsNCmRy
aXZlcnMvc2NzaS9oaXNpX3Nhcy9oaXNpX3Nhc192MV9ody5jOiAgICAgICAgIGVuZF90aW1lID0g
amlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9zY3NpL2hpc2lfc2Fz
L2hpc2lfc2FzX3YxX2h3LmM6IGVuZF90aW1lID0gamlmZmllcyArDQptc2Vjc190b19qaWZmaWVz
KDEwMDApOw0KZHJpdmVycy9zY3NpL2hpc2lfc2FzL2hpc2lfc2FzX3YyX2h3LmM6ICAgICAgICAg
ZW5kX3RpbWUgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL3Nj
c2kvaGlzaV9zYXMvaGlzaV9zYXNfdjJfaHcuYzogZW5kX3RpbWUgPSBqaWZmaWVzICsNCm1zZWNz
X3RvX2ppZmZpZXMoMTAwMCk7DQpkcml2ZXJzL3Njc2kvaGlzaV9zYXMvaGlzaV9zYXNfdjJfaHcu
YzogaGlzaV9oYmEtPnRpbWVyLmV4cGlyZXMgPQ0KamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMo
MTAwMCk7DQpkcml2ZXJzL3Njc2kvbHBmYy9scGZjLmg6I2RlZmluZSBRVUVVRV9SQU1QX0RPV05f
SU5URVJWQUwNCihtc2Vjc190b19qaWZmaWVzKDEwMDAgKiAxKSkNCmRyaXZlcnMvc2NzaS9scGZj
L2xwZmNfYnNnLmM6ICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDAgKg0KZHJpdmVycy9z
Y3NpL2xwZmMvbHBmY19ic2cuYzogICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCAqDQpk
cml2ZXJzL3Njc2kvbHBmYy9scGZjX2Vscy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDAgKiB0bW8pKTsNCmRyaXZlcnMvc2NzaS9scGZj
L2xwZmNfZWxzLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaWZmaWVzICsgbXNlY3Nf
dG9famlmZmllcygxMDAwICogdG1vKSk7DQpkcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Vscy5jOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAw
MCAqDQp0aW1lb3V0KSk7DQpkcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Vscy5jOiAgICAgICAgICAg
ICAgICAgICBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDAwICoNCnBoYmEtPmZjX3JhdG92
KSk7DQpkcml2ZXJzL3Njc2kvbHBmYy9scGZjX2Vscy5jOiAgIG1vZF90aW1lcigmbmRscC0+bmxw
X2RlbGF5ZnVuYywgamlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMv
c2NzaS9scGZjL2xwZmNfaGJhZGlzYy5jOiAgICAgICBtb2RfdGltZXIoJnZwb3J0LT5mY19kaXNj
dG1vLCBqaWZmaWVzDQorIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCAqIHRtbykpOw0KZHJpdmVycy9z
Y3NpL2xwZmMvbHBmY19pbml0LmM6ICAgICAgICAgICAgamlmZmllcyArIG1zZWNzX3RvX2ppZmZp
ZXMoMTAwMCAqDQp0aW1lb3V0KSk7DQpkcml2ZXJzL3Njc2kvbHBmYy9scGZjX2luaXQuYzogICAg
ICAgICAgICBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDAwICoNCnBoYmEtPmVyYXR0X3Bv
bGxfaW50ZXJ2YWwpKTsNCmRyaXZlcnMvc2NzaS9scGZjL2xwZmNfaW5pdC5jOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2
ZXJzL3Njc2kvbHBmYy9scGZjX25wb3J0ZGlzYy5jOiAgICAgbW9kX3RpbWVyKCZuZGxwLT5ubHBf
ZGVsYXlmdW5jLA0KamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9z
Y3NpL2xwZmMvbHBmY19ucG9ydGRpc2MuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
amlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0KZHJpdmVycy9zY3NpL2xwZmMvbHBm
Y19ucG9ydGRpc2MuYzogICAgICAgICAgICAgICAgICAgICAgIGppZmZpZXMgKyBtc2Vjc190b19q
aWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvc2NzaS9scGZjL2xwZmNfc2NzaS5jOg0KbXNlY3NfdG9f
amlmZmllcygyKnZwb3J0LT5jZmdfZGV2bG9zc190bW8qMTAwMCkpOw0KZHJpdmVycy9zY3NpL2xw
ZmMvbHBmY19zY3NpLmM6ICBsYXRlciA9IG1zZWNzX3RvX2ppZmZpZXMoMiAqDQp2cG9ydC0+Y2Zn
X2Rldmxvc3NfdG1vICogMTAwMCkgKyBqaWZmaWVzOw0KZHJpdmVycy9zY3NpL2xwZmMvbHBmY19z
Y3NpLmM6ICBsYXRlciA9IG1zZWNzX3RvX2ppZmZpZXMoMiAqDQp2cG9ydC0+Y2ZnX2Rldmxvc3Nf
dG1vICogMTAwMCkgKyBqaWZmaWVzOw0KZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zbGkuYzogICBu
ZXh0X3RpbWUgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCAqIChwaGJhLT5mY19y
YXRvdiArIDEpKTsNCmRyaXZlcnMvc2NzaS9scGZjL2xwZmNfc2xpLmM6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwICogKHBoYmEtPmZjX3JhdG92DQorIDEp
KTsNCmRyaXZlcnMvc2NzaS9scGZjL2xwZmNfc2xpLmM6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDAgKg0KKHBoYmEtPmZjX3JhdG92IDw8IDEpKSk7DQpk
cml2ZXJzL3Njc2kvbHBmYy9scGZjX3NsaS5jOiAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCAqDQpwaGJhLT5lcmF0dF9wb2xsX2ludGVydmFsKSk7DQpkcml2ZXJzL3Nj
c2kvbHBmYy9scGZjX3NsaS5jOiAgICAgICAgICAgICBqaWZmaWVzICsgbXNlY3NfdG9famlmZmll
cygxMDAwICoNCihwaGJhLT5mY19yYXRvdiAqIDIpKSk7DQpkcml2ZXJzL3Njc2kvbHBmYy9scGZj
X3NsaS5jOiAgICAgICAgICAgICBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDAwICoNCnBo
YmEtPmVyYXR0X3BvbGxfaW50ZXJ2YWwpKTsNCmRyaXZlcnMvc2NzaS9scGZjL2xwZmNfc2xpLmM6
ICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCAqDQpscGZjX21ib3hfdG1vX3ZhbChw
aGJhLCBtYm94cSkpKSk7DQpkcml2ZXJzL3Njc2kvbHBmYy9scGZjX3NsaS5jOiAgICAgICAgICAg
dGltZW91dF9yZXEgPSBtc2Vjc190b19qaWZmaWVzKHRpbWVvdXQgKg0KMTAwMCk7DQpkcml2ZXJz
L3Njc2kvbHBmYy9scGZjX3NsaS5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1zZWNzX3RvX2ppZmZpZXModGltZW91dCAqIDEwMDApKTsNCmRyaXZlcnMvc2NzaS9scGZj
L2xwZmNfdnBvcnQuYzogd2FpdF90aW1lX21heCA9DQptc2Vjc190b19qaWZmaWVzKCgocGhiYS0+
ZmNfcmF0b3YgKiAzKSArIDMpICogMTAwMCk7DQpkcml2ZXJzL3Njc2kvbXB0M3Nhcy9tcHQzc2Fz
X2Jhc2UuYzogICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMDApKTsNCmRyaXZlcnMvc2NzaS9t
cHQzc2FzL21wdDNzYXNfYmFzZS5jOiAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwMCkpOw0K
ZHJpdmVycy9zb2MvYXBwbGUvcnRraXQuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL3Nv
Yy9xY29tL3JwbWguYzojZGVmaW5lIFJQTUhfVElNRU9VVF9NUyAgICAgICAgICAgICAgICAgbXNl
Y3NfdG9famlmZmllcygxMDAwMCkNCmRyaXZlcnMvc3BpL2F0bWVsLXF1YWRzcGkuYzogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSkpDQpk
cml2ZXJzL3NwaS9zcGktYXQ5MS11c2FydC5jOiNkZWZpbmUgVVNfRE1BX1RJTUVPVVQNCihtc2Vj
c190b19qaWZmaWVzKDEwMDApKQ0KZHJpdmVycy9zcGkvc3BpLWZzbC1xc3BpLmM6ICAgICBpZiAo
IXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmcS0+YywNCm1zZWNzX3RvX2ppZmZpZXMoMTAw
MCkpKQ0KZHJpdmVycy9zcGkvc3BpLWltZy1zcGZpLmM6ICAgICAgICAgICAgIG1zZWNzX3RvX2pp
ZmZpZXMoeGZlci0+bGVuICogOCAqIDEwMDAgLw0KeGZlci0+c3BlZWRfaHogKyAxMDApOw0KZHJp
dmVycy9zcGkvc3BpLW1pY3JvY2hpcC1jb3JlLXFzcGkuYzogIGlmDQooIXdhaXRfZm9yX2NvbXBs
ZXRpb25fdGltZW91dCgmcXNwaS0+ZGF0YV9jb21wbGV0aW9uLA0KbXNlY3NfdG9famlmZmllcygx
MDAwKSkpDQpkcml2ZXJzL3NwaS9zcGktbnhwLWZzcGkuYzogICAgIGlmICghd2FpdF9mb3JfY29t
cGxldGlvbl90aW1lb3V0KCZmLT5jLA0KbXNlY3NfdG9famlmZmllcygxMDAwKSkpDQpkcml2ZXJz
L3NwaS9zcGktb21hcDItbWNzcGkuYzogIHRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlm
ZmllcygxMDAwKTsNCmRyaXZlcnMvc3BpL3NwaS1zdW5wbHVzLXNwNzAyMS5jOiAgICAgICB1bnNp
Z25lZCBsb25nIHRpbWVvdXQgPQ0KbXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvc3Bp
L3NwaS10ZWdyYTExNC5jOiNkZWZpbmUgU1BJX0RNQV9USU1FT1VUDQoobXNlY3NfdG9famlmZmll
cygxMDAwKSkNCmRyaXZlcnMvc3BpL3NwaS10ZWdyYTIwLXNmbGFzaC5jOiNkZWZpbmUgU1BJX0RN
QV9USU1FT1VUDQoobXNlY3NfdG9famlmZmllcygxMDAwKSkNCmRyaXZlcnMvc3BpL3NwaS10ZWdy
YTIwLXNsaW5rLmM6I2RlZmluZSBTTElOS19ETUFfVElNRU9VVA0KKG1zZWNzX3RvX2ppZmZpZXMo
MTAwMCkpDQpkcml2ZXJzL3NwaS9zcGktdGVncmEyMTAtcXVhZC5jOiNkZWZpbmUgUVNQSV9ETUFf
VElNRU9VVA0KKG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpDQpkcml2ZXJzL3NwaS9zcGkteGxwLmM6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmll
cygxMDAwKSk7DQpkcml2ZXJzL3NwaS9zcGktenlucS1xc3BpLmM6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVz
KDEwMDApKSkNCmRyaXZlcnMvc3BpL3NwaS16eW5xLXFzcGkuYzogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMo
MTAwMCkpKQ0KZHJpdmVycy9zcGkvc3BpLXp5bnEtcXNwaS5jOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygx
MDAwKSkpDQpkcml2ZXJzL3NwaS9zcGktenlucS1xc3BpLmM6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEw
MDApKSkNCmRyaXZlcnMvc3BpL3NwaS16eW5xbXAtZ3FzcGkuYzogdGltZW91dCA9IGppZmZpZXMg
KyBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvZnctZG93
bmxvYWQuYzojZGVmaW5lIE5FWFRfUkVRX1RJTUVPVVRfSg0KbXNlY3NfdG9famlmZmllcygxMDAw
KQ0KZHJpdmVycy9zdGFnaW5nL21lZGlhL2lwdTMvaXB1My5jOiAgICAgICAgICBpbWd1X2Nzc19x
dWV1ZV9lbXB0eSgmaW1ndS0+Y3NzKSwNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKQ0KZHJpdmVy
cy9zdGFnaW5nL21lZGlhL29tYXA0aXNzL2lzcy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpKSB7DQpkcml2ZXJzL3R0eS9zZXJpYWwveGlsaW54X3Vh
cnRwcy5jOiAgICAgdGltZW91dCA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmllcygxMDAwKTsN
CmRyaXZlcnMvdHR5L3NlcmlhbC94aWxpbnhfdWFydHBzLmM6ICAgICB0aW1lb3V0ID0gamlmZmll
cyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0KZHJpdmVycy91c2IvYXRtL3NwZWVkdGNoLmM6
ICAgICBtb2RfdGltZXIoJmluc3RhbmNlLT5zdGF0dXNfY2hlY2tfdGltZXIsDQpqaWZmaWVzICsg
bXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL3VzYi9hdG0vdWVhZ2xlLWF0bS5jOiAg
IHJldCA9IHVlYV93YWl0KHNjLCAwLCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMv
dXNiL2F0bS91ZWFnbGUtYXRtLmM6ICAgICAgICAgICAgICAgICAgIHVlYV93YWl0KHNjLCAwLCBt
c2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX3V2
Yy5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dmMtPmZ1bmNfY29ubmVjdGVkID09IGZh
bHNlLA0KbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpkcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2F0
OTFfdWRjLmM6I2RlZmluZSBWQlVTX1BPTExfVElNRU9VVA0KbXNlY3NfdG9famlmZmllcygxMDAw
KQ0KZHJpdmVycy91c2IvbXVzYi9tdXNiX2NvcmUuYzogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmRyaXZlcnMvdXNiL211c2IvdXg1MDAu
YzogICAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmllcyArDQptc2Vjc190b19qaWZm
aWVzKDEwMDApOw0KZHJpdmVycy91c2Ivc3RvcmFnZS9yZWFsdGVrX2NyLmM6ICAgICAgIGNoaXAt
PnRpbWVyX2V4cGlyZXMgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCpzc19kZWxh
eSk7DQpkcml2ZXJzL3VzYi90eXBlYy90aXBkL2NvcmUuYzogIHRpbWVvdXQgPSBqaWZmaWVzICsg
bXNlY3NfdG9famlmZmllcygxMDAwKTsNCmRyaXZlcnMvdXNiL3R5cGVjL3Vjc2kvdWNzaV9jY2cu
YzogICAgICB1bnNpZ25lZCBsb25nIHRhcmdldCA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmll
cygxMDAwKTsNCmRyaXZlcnMvdmlkZW8vZmJkZXYvb21hcDIvb21hcGZiL2Rzcy9kc2kuYzogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpDQo9PSAwKSB7
DQpkcml2ZXJzL3cxL21hc3RlcnMvZHMyNDkwLmM6ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcganRp
bWUgPQ0KbXNlY3NfdG9famlmZmllcygxMDAwKjgvNzUpOw0KZnMvYnRyZnMvZGlzay1pby5jOiAg
ICAgICAgICAgICBkZWxheSA9IG1zZWNzX3RvX2ppZmZpZXMoZnNfaW5mby0+Y29tbWl0X2ludGVy
dmFsICoNCjEwMDApOw0KZnMvYnRyZnMvZGlzay1pby5jOiAgICAgICAgICAgICAgICAgICAgIGRl
bGF5IC09IG1zZWNzX3RvX2ppZmZpZXMoKGRlbHRhIC0gMSkgKiAxMDAwKTsNCmZzL2J0cmZzL2Rp
c2staW8uYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVz
KGZzX2luZm8tPmNvbW1pdF9pbnRlcnZhbCAqDQoxMDAwKSk7DQpmcy9vY2ZzMi9jbHVzdGVyL2hl
YXJ0YmVhdC5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAw
MCkpOw0KZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jOiAgICAgICAgICAgICAgICAgIG1zZWNzX3Rv
X2ppZmZpZXMoMTAwMCkpOw0KZnMvb2NmczIvZGxtL2RsbXJlY292ZXJ5LmM6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZm
aWVzKDEwMDApKTsNCmZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jOiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpmcy9wc3RvcmUv
em9uZS5jOiAgICAgICAgICAgICAgIHNjaGVkdWxlX2RlbGF5ZWRfd29yaygmcHN6X2NsZWFuZXIs
DQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCmZzL3hmcy94ZnNfaWNhY2hlLmM6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoeGZzX2Jsb2NrZ2Nfc2VjcyAq
IDEwMDApKTsNCmluY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaDojZGVmaW5lIE1BWF9XQUlUX1ND
SEVEX0VOVElUWV9RX0VNUFRZDQptc2Vjc190b19qaWZmaWVzKDEwMDApDQppbmNsdWRlL2xpbnV4
L2NlcGgvbGliY2VwaC5oOiNkZWZpbmUgQ0VQSF9NT1VOVF9USU1FT1VUX0RFRkFVTFQNCm1zZWNz
X3RvX2ppZmZpZXMoNjAgKiAxMDAwKQ0KaW5jbHVkZS9saW51eC9jZXBoL2xpYmNlcGguaDojZGVm
aW5lIENFUEhfT1NEX0tFRVBBTElWRV9ERUZBVUxUDQptc2Vjc190b19qaWZmaWVzKDUgKiAxMDAw
KQ0KaW5jbHVkZS9saW51eC9jZXBoL2xpYmNlcGguaDojZGVmaW5lIENFUEhfT1NEX0lETEVfVFRM
X0RFRkFVTFQNCm1zZWNzX3RvX2ppZmZpZXMoNjAgKiAxMDAwKQ0KaW5jbHVkZS9saW51eC9jZXBo
L2xpYmNlcGguaDojZGVmaW5lIENFUEhfTU9OQ19IVU5UX0lOVEVSVkFMDQptc2Vjc190b19qaWZm
aWVzKDMgKiAxMDAwKQ0KaW5jbHVkZS9saW51eC9jZXBoL2xpYmNlcGguaDojZGVmaW5lIENFUEhf
TU9OQ19QSU5HX0lOVEVSVkFMDQptc2Vjc190b19qaWZmaWVzKDEwICogMTAwMCkNCmluY2x1ZGUv
bGludXgvY2VwaC9saWJjZXBoLmg6I2RlZmluZSBDRVBIX01PTkNfUElOR19USU1FT1VUDQptc2Vj
c190b19qaWZmaWVzKDMwICogMTAwMCkNCmluY2x1ZGUvbmV0L2JsdWV0b290aC9jb3JlZHVtcC5o
OiNkZWZpbmUgREVWQ09SRURVTVBfVElNRU9VVA0KbXNlY3NfdG9famlmZmllcygxMDAwMCkgLyog
MTAgc2VjICovDQppbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpLmg6I2RlZmluZSBIQ0lfSU5JVF9U
SU1FT1VUDQptc2Vjc190b19qaWZmaWVzKDEwMDAwKSAvKiAxMCBzZWNvbmRzICovDQppbmNsdWRl
L25ldC9ibHVldG9vdGgvbDJjYXAuaDojZGVmaW5lIEwyQ0FQX1dBSVRfQUNLX1RJTUVPVVQNCm1z
ZWNzX3RvX2ppZmZpZXMoMTAwMDApDQprZXJuZWwva2NzYW4va2NzYW5fdGVzdC5jOiAgICAgIGVu
ZF90aW1lICs9IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7IC8qIFRoaXMNCnRlc3QgcmVxdWlyZXMg
YSBiaXQgbW9yZSB0aW1lLiAqLw0Ka2VybmVsL3Bvd2VyL2VuZXJneV9tb2RlbC5jOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkp
Ow0KbmV0L2JhdG1hbi1hZHYvZGlzdHJpYnV0ZWQtYXJwLXRhYmxlLmM6ICAgICAgICAgICAgICAg
ICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDAwKSk7DQpuZXQvYmx1ZXRvb3RoL2hjaV9zeW5jLmM6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXModGltZW91
dCAqIDEwMDApKTsNCm5ldC9ibHVldG9vdGgvbWdtdC5jOiAgICAgICAgICAgaW50IHRvID0gbXNl
Y3NfdG9famlmZmllcyhoZGV2LT5kaXNjb3ZfdGltZW91dCAqDQoxMDAwKTsNCm5ldC9ibHVldG9v
dGgvbWdtdC5jOiAgICAgICAgICAgICAgICAgICBpbnQgdG8gPSBtc2Vjc190b19qaWZmaWVzKGhk
ZXYtPmRpc2Nvdl90aW1lb3V0ICoNCjEwMDApOw0KbmV0L2JyaWRnZS9icl9wcml2YXRlLmg6I2Rl
ZmluZSBCUl9NVUxUSUNBU1RfUVVFUllfSU5UVkxfTUlODQptc2Vjc190b19qaWZmaWVzKDEwMDAp
DQpuZXQvY2VwaC9jZXBoX2NvbW1vbi5jOiAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKHJl
c3VsdC51aW50XzMyICogMTAwMCk7DQpuZXQvY2VwaC9jZXBoX2NvbW1vbi5jOiAgICAgICAgIG9w
dC0+b3NkX2lkbGVfdHRsID0NCm1zZWNzX3RvX2ppZmZpZXMocmVzdWx0LnVpbnRfMzIgKiAxMDAw
KTsNCm5ldC9jZXBoL2NlcGhfY29tbW9uLmM6ICAgICAgICAgb3B0LT5tb3VudF90aW1lb3V0ID0N
Cm1zZWNzX3RvX2ppZmZpZXMocmVzdWx0LnVpbnRfMzIgKiAxMDAwKTsNCm5ldC9jZXBoL2NlcGhf
Y29tbW9uLmM6ICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMocmVzdWx0LnVpbnRfMzIgKiAx
MDAwKTsNCm5ldC9jb3JlL3BhZ2VfcG9vbC5jOiNkZWZpbmUgREVGRVJfVElNRSAobXNlY3NfdG9f
amlmZmllcygxMDAwKSkNCm5ldC9pcHY0L2lwY29uZmlnLmM6ICAgICAgICAgICAgICAgICAgICAg
ICBtc2Vjc190b19qaWZmaWVzKGNhcnJpZXJfdGltZW91dCAqIDEwMDApKSkgew0KbmV0L21hYzgw
MjE1NC9zY2FuLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmll
cygxMDAwKSk7DQpuZXQvbWFjODAyMTU0L3NjYW4uYzogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCm5ldC9uZXRmaWx0ZXIveHRfSURMRVRJTUVS
LmM6ICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoaW5mby0+dGltZW91dCAqIDEwMDApDQor
IGppZmZpZXMpOw0KbmV0L25ldGZpbHRlci94dF9JRExFVElNRVIuYzogICAgICAgICAgICAgICAg
ICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKGluZm8tPnRpbWVvdXQgKiAxMDAwKQ0KKyBqaWZm
aWVzKTsNCm5ldC9uZXRmaWx0ZXIveHRfSURMRVRJTUVSLmM6ICAgICAgICAgICAgIG1zZWNzX3Rv
X2ppZmZpZXMoaW5mby0+dGltZW91dCAqIDEwMDApDQorIGppZmZpZXMpOw0KbmV0L25ldGZpbHRl
ci94dF9JRExFVElNRVIuYzogICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZm
aWVzKGluZm8tPnRpbWVvdXQgKiAxMDAwKQ0KKyBqaWZmaWVzKTsNCm5ldC9uZXRmaWx0ZXIveHRf
SURMRVRJTUVSLmM6ICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcyhpbmZvLT50
aW1lb3V0ICogMTAwMCkNCisgamlmZmllcyk7DQpuZXQvbmV0ZmlsdGVyL3h0X0lETEVUSU1FUi5j
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcyhpbmZv
LT50aW1lb3V0ICogMTAwMCkNCisgamlmZmllcyk7DQpuZXQvbmZjL25jaS9zcGkuYzogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygx
MDAwKSkgPT0gMCkgew0KbmV0L3RpcGMvY3J5cHRvLmM6I2RlZmluZSBUSVBDX1RYX0xBU1RJTkdf
VElNRSAgbXNlY3NfdG9famlmZmllcygxMDAwMCkNCi8qIDEwcyAqLw0KbmV0L3RpcGMvZGlzY292
ZXIuYzojZGVmaW5lIFRJUENfRElTQ19GQVNUICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKQ0K
bmV0L3RpcGMvZGlzY292ZXIuYzogICAgICAgICAgICB0bi0+YWRkcl90cmlhbF9lbmQgPSBqaWZm
aWVzICsgbXNlY3NfdG9famlmZmllcygxMDAwKTsNCm5ldC90aXBjL2Rpc2NvdmVyLmM6ICAgICAg
ICAgICAgdG4tPmFkZHJfdHJpYWxfZW5kID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAw
MCk7DQpzYW1wbGVzL2Nvbm5lY3Rvci9jbl90ZXN0LmM6ICAgIG1vZF90aW1lcigmY25fdGVzdF90
aW1lciwgamlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCnNhbXBsZXMvY29ubmVj
dG9yL2NuX3Rlc3QuYzogICAgbW9kX3RpbWVyKCZjbl90ZXN0X3RpbWVyLCBqaWZmaWVzICsNCm1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0Kc2NyaXB0cy9jb2NjaW5lbGxlL21pc2Mvc2Vjc190b19q
aWZmaWVzLmNvY2NpOi8vLyAtDQptc2Vjc190b19qaWZmaWVzKHZhbHVlKjEwMDApDQpzY3JpcHRz
L2NvY2NpbmVsbGUvbWlzYy9zZWNzX3RvX2ppZmZpZXMuY29jY2k6LSBtc2Vjc190b19qaWZmaWVz
KEMgKiAxMDAwKQ0Kc291bmQvaGRhL2hkYWNfY29udHJvbGxlci5jOiAgICB0aW1lb3V0ID0gamlm
ZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpzb3VuZC9pc2Evd3NzL3dzc19saWIuYzog
ICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlmZmll
cygxMDAwKTsNCnNvdW5kL3BjaS9hYzk3L2FjOTdfY29kZWMuYzogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcyhwb3dlcl9zYXZlICogMTAwMCkpOw0Kc291
bmQvcGNpL2hkYS9oZGFfaW50ZWwuYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpzb3VuZC9wY2kvaGRh
L3BhdGNoX2NhMDEzMi5jOiAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKw0KbXNl
Y3NfdG9famlmZmllcygxMDAwKTsNCnNvdW5kL3BjaS9oZGEvcGF0Y2hfY2EwMTMyLmM6ICAgdW5z
aWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmllcyArDQptc2Vjc190b19qaWZmaWVzKDEwMDApOw0K
c291bmQvcGNpL2hkYS9wYXRjaF9jYTAxMzIuYzogICB1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBq
aWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpzb3VuZC9wY2kvaGRhL3BhdGNoX2Nh
MDEzMi5jOiAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKw0KbXNlY3NfdG9famlm
ZmllcygxMDAwKTsNCnNvdW5kL3BjaS9oZGEvcGF0Y2hfY2EwMTMyLmM6ICAgICAgICAgICB1bnNp
Z25lZCBsb25nIHRpbWVvdXQgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpz
b3VuZC9wY2kvbG9sYS9sb2xhLmM6ICB0aW1lb3V0ID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZp
ZXMoMTAwMCk7DQpzb3VuZC9zb2MvY29kZWNzL2NzNDJsNDMtamFjay5jOiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOw0Kc291bmQvc29jL2NvZGVjcy9j
czQzMTMwLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9f
amlmZmllcygxMDAwKSk7DQpzb3VuZC9zb2MvY29kZWNzL3J0NTY3Ny5jOiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMDAwKSk7DQpzb3VuZC9z
b2MvY29kZWNzL3dtODk3MS5jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3bTg5NzEt
PmNoYXJnZV93b3JrLCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsNCnNvdW5kL3NvYy9jb2RlY3Mv
d204OTk0LmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190
b19qaWZmaWVzKDEwMDApKTsNCnNvdW5kL3VzYi9lbmRwb2ludC5jOiAgIHVuc2lnbmVkIGxvbmcg
ZW5kX3RpbWUgPSBqaWZmaWVzICsNCm1zZWNzX3RvX2ppZmZpZXMoMTAwMCk7DQpzb3VuZC91c2Iv
bWl4ZXJfc2NhcmxldHQyLmM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1z
ZWNzX3RvX2ppZmZpZXMoMTAwMCkpKSB7DQoNCg0KDQo+DQo+IFRoZSBlbnRpcmUgY29udmVyc2lv
biBpcyBtYWRlIHdpdGggQ29jY2luZWxsZSBpbiB0aGUgc2NyaXB0IGFkZGVkIGluDQo+IHBhdGNo
IDIuIFNvbWUgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgQ29jY2luZWxsZSBoYXZlIGJlZW4gZGVmZXJy
ZWQgdG8NCj4gbGF0ZXIgcGFydHMgdGhhdCB3aWxsIGFkZHJlc3Mgb3RoZXIgcG9zc2libGUgdmFy
aWFudCBwYXR0ZXJucy4NCj4NCj4gQ0M6IEFubmEtTWFyaWEgQmVobnNlbiA8YW5uYS1tYXJpYUBs
aW51dHJvbml4LmRlPg0KPiBTaWduZWQtb2ZmLWJ5OiBFYXN3YXIgSGFyaWhhcmFuIDxlYWhhcmlo
YUBsaW51eC5taWNyb3NvZnQuY29tPg0KPg0KPiBbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv
YWxsLzIwMjQxMDMwLW9wZW4tY29kZWQtdGltZW91dHMtdjMtMC05YmExMjNmYWNmODhAbGludXgu
bWljcm9zb2Z0LmNvbS8NCj4gWzJdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC84NzM0a25n
Zm5pLmZzZkBzb21udXMvDQo+DQo+IC0tLQ0KPiBDaGFuZ2VzIGluIHYyOg0KPiAtIEVESVRNRTog
ZGVzY3JpYmUgd2hhdCBpcyBuZXcgaW4gdGhpcyBzZXJpZXMgcmV2aXNpb24uDQo+IC0gRURJVE1F
OiB1c2UgYnVsbGV0cG9pbnRzIGFuZCB0ZXJzZSBkZXNjcmlwdGlvbnMuDQo+IC0gTGluayB0byB2
MTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDI0MTExNS1jb252ZXJnZS1zZWNzLXRvLWpp
ZmZpZXMtdjEtMC0xOWFhZGMzNDk0MWJAbGludXgubWljcm9zb2Z0LmNvbQ0KPg0KPiAtLS0NCj4g
RWFzd2FyIEhhcmloYXJhbiAoMjEpOg0KPiAgICAgICAgbmV0ZmlsdGVyOiBjb25udHJhY2s6IENs
ZWFudXAgdGltZW91dCBkZWZpbml0aW9ucw0KPiAgICAgICAgY29jY2luZWxsZTogbWlzYzogQWRk
IHNlY3NfdG9famlmZmllcyBzY3JpcHQNCj4gICAgICAgIGFybTogcHhhOiBDb252ZXJ0IHRpbWVv
dXRzIHRvIHVzZSBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAgICAgczM5MDoga2VybmVsOiBDb252
ZXJ0IHRpbWVvdXRzIHRvIHVzZSBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAgICAgcG93ZXJwYy9w
YXByX3NjbTogQ29udmVydCB0aW1lb3V0cyB0byBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAgICAg
bW06IGttZW1sZWFrOiBDb252ZXJ0IHRpbWVvdXRzIHRvIHNlY3NfdG9famlmZmllcygpDQo+ICAg
ICAgICBhY2NlbC9oYWJhbmFsYWJzOiBDb252ZXJ0IHRpbWVvdXRzIHRvIHNlY3NfdG9famlmZmll
cygpDQo+ICAgICAgICBkcm0veGU6IENvbnZlcnQgdGltZW91dCB0byBzZWNzX3RvX2ppZmZpZXMo
KQ0KPiAgICAgICAgZHJtL2V0bmF2aXY6IENvbnZlcnQgdGltZW91dHMgdG8gc2Vjc190b19qaWZm
aWVzKCkNCj4gICAgICAgIHNjc2k6IGxwZmM6IENvbnZlcnQgdGltZW91dHMgdG8gc2Vjc190b19q
aWZmaWVzKCkNCj4gICAgICAgIHNjc2k6IGFyY21zcjogQ29udmVydCB0aW1lb3V0cyB0byBzZWNz
X3RvX2ppZmZpZXMoKQ0KPiAgICAgICAgc2NzaTogcG04MDAxOiBDb252ZXJ0IHRpbWVvdXRzIHRv
IHNlY3NfdG9famlmZmllcygpDQo+ICAgICAgICB4ZW4vYmxrYmFjazogQ29udmVydCB0aW1lb3V0
cyB0byBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAgICAgZ3ZlOiBDb252ZXJ0IHRpbWVvdXRzIHRv
IHNlY3NfdG9famlmZmllcygpDQo+ICAgICAgICB3aWZpOiBhdGgxMWs6IENvbnZlcnQgdGltZW91
dHMgdG8gc2Vjc190b19qaWZmaWVzKCkNCj4gICAgICAgIEJsdWV0b290aDogTUdNVDogQ29udmVy
dCB0aW1lb3V0cyB0byBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAgICAgc3RhZ2luZzogdmMwNF9z
ZXJ2aWNlczogQ29udmVydCB0aW1lb3V0cyB0byBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAgICAg
Y2VwaDogQ29udmVydCB0aW1lb3V0cyB0byBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAgICAgbGl2
ZXBhdGNoOiBDb252ZXJ0IHRpbWVvdXRzIHRvIHNlY3NfdG9famlmZmllcygpDQo+ICAgICAgICBB
TFNBOiBsaW5lNjogQ29udmVydCB0aW1lb3V0cyB0byBzZWNzX3RvX2ppZmZpZXMoKQ0KPiAgICAg
ICAgbmZwOiBDb252ZXJ0IHRpbWVvdXRzIHRvIHNlY3NfdG9famlmZmllcygpDQo+DQo+ICAgYXJj
aC9hcm0vbWFjaC1weGEvc2hhcnBzbF9wbS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysr
LS0tDQo+ICAgYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3BhcHJfc2NtLmMgICAgICAg
ICAgIHwgIDIgKy0NCj4gICBhcmNoL3MzOTAva2VybmVsL2xnci5jICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMyArKy0NCj4gICBhcmNoL3MzOTAva2VybmVsL3RpbWUuYyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tDQo+ICAgYXJjaC9zMzkwL2tlcm5lbC90b3Bv
bG9neS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gICBkcml2ZXJzL2FjY2Vs
L2hhYmFuYWxhYnMvY29tbW9uL2RldmljZS5jICAgICAgICAgICAgfCAgMiArLQ0KPiAgIGRyaXZl
cnMvYWNjZWwvaGFiYW5hbGFicy9jb21tb24vaGFiYW5hbGFic19kcnYuYyAgICB8ICAzICstLQ0K
PiAgIGRyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2svYmxrYmFjay5jICAgICAgICAgICAgICAgICB8
ICAyICstDQo+ICAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRidWYuYyAgICAg
ICAgICAgIHwgIDIgKy0NCj4gICBkcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2aWNlLmMgICAgICAg
ICAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgIGRyaXZlcnMvbmV0L2V0aGVybmV0L2dvb2dsZS9n
dmUvZ3ZlX3R4X2Rxby5jICAgICAgICB8ICA2ICsrLS0tLQ0KPiAgIGRyaXZlcnMvbmV0L2V0aGVy
bmV0L25ldHJvbm9tZS9uZnAvbmZwX25ldF9jb21tb24uYyB8ICAyICstDQo+ICAgZHJpdmVycy9u
ZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgIDIgKy0NCj4gICBk
cml2ZXJzL3Njc2kvYXJjbXNyL2FyY21zcl9oYmEuYyAgICAgICAgICAgICAgICAgICAgfCAgMiAr
LQ0KPiAgIGRyaXZlcnMvc2NzaS9scGZjL2xwZmNfaW5pdC5jICAgICAgICAgICAgICAgICAgICAg
ICB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQ0KPiAgIGRyaXZlcnMvc2NzaS9scGZjL2xwZmNfbnBv
cnRkaXNjLmMgICAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tDQo+ICAgZHJpdmVycy9zY3Np
L2xwZmMvbHBmY19udm1lLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gICBkcml2
ZXJzL3Njc2kvbHBmYy9scGZjX3NsaS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0t
DQo+ICAgZHJpdmVycy9zY3NpL2xwZmMvbHBmY192bWlkLmMgICAgICAgICAgICAgICAgICAgICAg
IHwgIDIgKy0NCj4gICBkcml2ZXJzL3Njc2kvcG04MDAxL3BtODAwMV9pbml0LmMgICAgICAgICAg
ICAgICAgICAgfCAgMiArLQ0KPiAgIC4uLi92YzA0X3NlcnZpY2VzL2JjbTI4MzUtYXVkaW8vYmNt
MjgzNS12Y2hpcS5jICAgICB8ICAyICstDQo+ICAgZnMvY2VwaC9xdW90YS5jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gICBtbS9rbWVtbGVhay5jICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tDQo+ICAgbmV0L2JsdWV0
b290aC9tZ210LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gICBu
ZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b19zY3RwLmMgICAgICAgICAgICAgfCAyMSAr
KysrKysrKy0tLS0tLS0tLS0tLS0NCj4gICBzYW1wbGVzL2xpdmVwYXRjaC9saXZlcGF0Y2gtY2Fs
bGJhY2tzLWJ1c3ltb2QuYyAgICAgfCAgMiArLQ0KPiAgIHNhbXBsZXMvbGl2ZXBhdGNoL2xpdmVw
YXRjaC1zaGFkb3ctZml4MS5jICAgICAgICAgICB8ICAyICstDQo+ICAgc2FtcGxlcy9saXZlcGF0
Y2gvbGl2ZXBhdGNoLXNoYWRvdy1tb2QuYyAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQ0KPiAg
IHNjcmlwdHMvY29jY2luZWxsZS9taXNjL3NlY3NfdG9famlmZmllcy5jb2NjaSAgICAgICB8IDIx
ICsrKysrKysrKysrKysrKysrKysrKw0KPiAgIHNvdW5kL3VzYi9saW5lNi90b25lcG9ydC5jICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstDQo+ICAgMzAgZmlsZXMgY2hhbmdlZCwgNzkg
aW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pDQo+IC0tLQ0KPiBiYXNlLWNvbW1pdDogMmQ1
NDA0Y2FhOGM3YmI1YzRlMDQzNWY5NGIyODgzNGFlNTQ1NjYyMw0KPiBjaGFuZ2UtaWQ6IDIwMjQx
MTEyLWNvbnZlcmdlLXNlY3MtdG8tamlmZmllcy1kOTlkMTAxNmJkMTENCj4NCj4gQmVzdCByZWdh
cmRzLA0KPiAtLQ0KPiBFYXN3YXIgSGFyaWhhcmFuIDxlYWhhcmloYUBsaW51eC5taWNyb3NvZnQu
Y29tPg0KPg0K


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:40:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838750.1254725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCGEB-0006u8-7y; Sat, 16 Nov 2024 10:40:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838750.1254725; Sat, 16 Nov 2024 10:40: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 1tCGEB-0006tM-3N; Sat, 16 Nov 2024 10:40:31 +0000
Received: by outflank-mailman (input) for mailman id 838750;
 Sat, 16 Nov 2024 10:40: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=QYYW=SL=linaro.org=dan.carpenter@srs-se1.protection.inumbo.net>)
 id 1tCGEA-0006m5-1T
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:40:30 +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 30656a1c-a407-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 11:40:25 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43193678216so23228235e9.0
 for <xen-devel@lists.xenproject.org>; Sat, 16 Nov 2024 02:40:25 -0800 (PST)
Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432da2800absm87243245e9.25.2024.11.16.02.40.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Nov 2024 02:40: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: 30656a1c-a407-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwNjU2YTFjLWE0MDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzUzNjI1Ljc4MzM0Miwic2VuZGVyIjoiZGFuLmNhcnBlbnRlckBsaW5hcm8ub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1731753625; x=1732358425; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=lSXFKM+ARjNBrckMO4jvpnEJoLVPjxN4kzAqYuwUUFc=;
        b=dP5RlQNnegl7VWiqHvJp4HnzNRMqCD5U+kpJP+VxqMEfXCXCtCElUHV7ihDgLmbNqh
         N8muxpfqM3DKNzS7R8pLzJ3/J2isy555hgKELwqfd+phdAG+Bmde3B0lucoSRwQa1Hm9
         W85Ye+WIBuIx52IGjMSeyH5HfW6+sPf0uzcQguIMpfJBURLixLpDqEWKDdaW1anPbNFE
         C5RKIncXFLlbIhSo2T6KDsZhRtcmstEWYLjea1w2q2fiISDVZPqMK7JrSACOBRZ9TNy+
         s7pho36YV7Vmzf56qLceFdzj+yOPfCE6O440jlgE6xAQerQmVtuJT5Q8CxtqX4+H93zk
         8QFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731753625; x=1732358425;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lSXFKM+ARjNBrckMO4jvpnEJoLVPjxN4kzAqYuwUUFc=;
        b=vJo7zbwWuXc5dCtWhGxYM20Sv1FcEde/5rnEid6bsZrs1olmQg1q5Oqv4m4pCwgFEd
         c5cry+S3gmVPY/41KOsNnXQxJFu35+9aPKRdIJkMDLGf7IPWLhpWr1h2ediB4Uz5kayG
         oEagjBWb4LD48fSew4/B4l5OIGJIfNXEao9UBXgFPwo2x3NeiK61z5BSja025mR9ttiE
         wP1ctVfUgg10ACcYfOMip1QhJJeb3emcvF00x/I50U/YKQUguYMByBpVdO4boCfma525
         +PuH/LxZPkceHHVtw+EjimirydF6zUEarb4wSmvNa0BO/b5HQ2OeWY93LfKsnXyrjJ8g
         1AYQ==
X-Forwarded-Encrypted: i=1; AJvYcCU0iLQpTLLupshEMfR7F70ldwPmzwxteQFLwfn4SoJe55TAwGGLnlCHYdpy22TWimxOTpGoeGxKk+k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQGPmkZpNlXX3BYA2jM39FcOrvcAIbOrgZNrdrniyCjO6sUw0S
	j211KuXxV2PgbmoI4VPR+wiGZT254I00ru3hCw5AxGeaCoq54FB3HS/JP+8tj/A=
X-Google-Smtp-Source: AGHT+IH8fBA+4s5F3P6X/kjn5LT5A4plOne9CKmDoZ8QUK+uLzjM3K0QAglApJbsapoZYtb9Ft2RHQ==
X-Received: by 2002:a05:600c:1d1c:b0:431:4e82:ffa6 with SMTP id 5b1f17b1804b1-432df78c5b5mr46184285e9.24.1731753625076;
        Sat, 16 Nov 2024 02:40:25 -0800 (PST)
Date: Sat, 16 Nov 2024 13:40:20 +0300
From: Dan Carpenter <dan.carpenter@linaro.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Easwar Hariharan <eahariha@linux.microsoft.com>,
	Pablo Neira Ayuso <pablo@netfilter.org>,
	Jozsef Kadlecsik <kadlec@netfilter.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Julia Lawall <Julia.Lawall@inria.fr>,
	Nicolas Palix <nicolas.palix@imag.fr>,
	Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Russell King <linux@armlinux.org.uk>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Ofir Bitton <obitton@habana.ai>, Oded Gabbay <ogabbay@kernel.org>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	Thomas =?iso-8859-1?Q?Hellstr=F6m?= <thomas.hellstrom@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Jeroen de Borst <jeroendb@google.com>,
	Praveen Kaligineedi <pkaligineedi@google.com>,
	Shailend Chand <shailend@google.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	James Smart <james.smart@broadcom.com>,
	Dick Kennedy <dick.kennedy@broadcom.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
	Jeff Johnson <jjohnson@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jack Wang <jinpu.wang@cloud.ionos.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
	Petr Mladek <pmladek@suse.com>,
	Joe Lawrence <joe.lawrence@redhat.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Russell King <linux+etnaviv@armlinux.org.uk>,
	Christian Gmeiner <christian.gmeiner@gmail.com>,
	Louis Peens <louis.peens@corigine.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Naveen N Rao <naveen@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	cocci@inria.fr, linux-arm-kernel@lists.infradead.org,
	linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-block@vger.kernel.org,
	linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
	linux-mm@kvack.org, linux-bluetooth@vger.kernel.org,
	linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org,
	ceph-devel@vger.kernel.org, live-patching@vger.kernel.org,
	linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org,
	oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org,
	Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 05/21] powerpc/papr_scm: Convert timeouts to
 secs_to_jiffies()
Message-ID: <e4872a15-ff3d-4619-9b03-c7f0b6230934@stanley.mountain>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-5-911fb7595e79@linux.microsoft.com>
 <b6a059d8-7b23-455d-9ecd-eb3cdddd22a2@csgroup.eu>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b6a059d8-7b23-455d-9ecd-eb3cdddd22a2@csgroup.eu>

On Sat, Nov 16, 2024 at 11:06:55AM +0100, Christophe Leroy wrote:
> > diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
> > index 9e297f88adc5d97d4dc7b267b0bfebd58e5cf193..9e8086ec66e0f0e555ac27933854c06cfcf91a04 100644
> > --- a/arch/powerpc/platforms/pseries/papr_scm.c
> > +++ b/arch/powerpc/platforms/pseries/papr_scm.c
> > @@ -543,7 +543,7 @@ static int drc_pmem_query_health(struct papr_scm_priv *p)
> > 
> >          /* Jiffies offset for which the health data is assumed to be same */
> >          cache_timeout = p->lasthealth_jiffies +
> > -               msecs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL * 1000);
> > +               secs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL);
> 
> Wouldn't it now fit on a single line ?
> 

Some maintainers still prefer to put a line break at 80 characters.  It's kind
of a nightmare for an automated script like this to figure out everyone's
preferences.  In this particular file, there are some lines which go over 80
characters so sure.  Earlier in the patchset one of these introduced a line
break that wasn't there before so I think maybe Coccinelle is applying the 80
character line break rule?

There are sometimes where the 80 character rule really hurts readability, but
here it doesn't make any difference.

regards,
dan carpenter



From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:40:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:40:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838752.1254735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCGEQ-0007vK-FC; Sat, 16 Nov 2024 10:40:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838752.1254735; Sat, 16 Nov 2024 10:40: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 1tCGEQ-0007vD-At; Sat, 16 Nov 2024 10:40:46 +0000
Received: by outflank-mailman (input) for mailman id 838752;
 Sat, 16 Nov 2024 10:40: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 1tCGEP-0007ui-7K
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:40: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 1tCGEO-0080Bw-21;
 Sat, 16 Nov 2024 10:40:44 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCGEO-007w3e-2M;
 Sat, 16 Nov 2024 10:40: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>
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=WCD75x8v1BnjbJnwUk3aPwiQWY+ACO7gwCHDEOJBWyQ=; b=IjFdBxZ/U1oFYPN0d4yt6s8dul
	1fXRQYb1WMJlKyEHQyVLMhD27BmuXWigobfk46bXInHv99AteQkLvOCBfplbNsrXIyFBUQtfMop6f
	5RS7pItjE0lgW18SEtcpi3FB4n9qNejyjlSSDLWnWYc3ZmBIL+aBG7/xqYQbMV8MeEEE=;
Message-ID: <3632e6df-410f-4147-b975-17ee7055b434@xen.org>
Date: Sat, 16 Nov 2024 10:40:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/common: Move gic_dt_preinit() to common code
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>,
 Jan Beulich <jbeulich@suse.com>
References: <0fa60e73eccb620ad37037e2128deea7a97f726b.1730457699.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0fa60e73eccb620ad37037e2128deea7a97f726b.1730457699.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 01/11/2024 12:55, Oleksii Kurochko wrote:
> Introduce intc_dt_preinit() in the common codebase, as it is not
> architecture-specific and can be reused by both PPC and RISC-V.
> This function identifies the node with the interrupt-controller property
> in the device tree and calls device_init() to handle architecture-specific
> initialization of the interrupt controller.
> 
> Make minor adjustments compared to the original ARM implementation of
> gic_dt_preinit():
>   - Remove the local rc variable in gic_dt_preinit() since it is only used once.
>   - Change the prefix from gic to intc to clarify that the function is not
>     specific to ARMâ€™s GIC, making it suitable for other architectures as well.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v3:
>   - s/ic/intc.
>   - Update the commit message.
>   - Move intc_dt_preinit() to common/device-tree/intc.c.
>   - Add declaration of intc_dt_preinit() in xen/device_tree.h.
>   - Revert intc_preinit()-related changes and just back gic_preinit() in
>     Arm's gic.c.
>   - Revert ACPI-related changes.
> ---
> Changes in v2:
>   - Revert changes connected to moving of gic_acpi_preinit() to common code as
>     it isn't really architecture indepent part.
>   - Update the commit message.
>   - Move stub of ic_acpi_preinit() to <asm-generic/device.h> for the case when
>     CONFIG_ACPI=n.
> ---
>   xen/arch/arm/gic.c              | 32 +------------------------------
>   xen/common/device-tree/Makefile |  1 +
>   xen/common/device-tree/intc.c   | 34 +++++++++++++++++++++++++++++++++
>   xen/include/xen/device_tree.h   |  6 ++++++
>   4 files changed, 42 insertions(+), 31 deletions(-)
>   create mode 100644 xen/common/device-tree/intc.c
> 
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index 3eaf670fd7..acf61a4de3 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -214,36 +214,6 @@ int gic_map_hwdom_extra_mappings(struct domain *d)
>       return 0;
>   }
>   
> -static void __init gic_dt_preinit(void)
> -{
> -    int rc;
> -    struct dt_device_node *node;
> -    uint8_t num_gics = 0;
> -
> -    dt_for_each_device_node( dt_host, node )
> -    {
> -        if ( !dt_get_property(node, "interrupt-controller", NULL) )
> -            continue;
> -
> -        if ( !dt_get_parent(node) )
> -            continue;
> -
> -        rc = device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL);
> -        if ( !rc )
> -        {
> -            /* NOTE: Only one GIC is supported */
> -            num_gics = 1;
> -            break;
> -        }
> -    }
> -    if ( !num_gics )
> -        panic("Unable to find compatible GIC in the device tree\n");
> -
> -    /* Set the GIC as the primary interrupt controller */
> -    dt_interrupt_controller = node;
> -    dt_device_set_used_by(node, DOMID_XEN);
> -}
> -
>   #ifdef CONFIG_ACPI
>   static void __init gic_acpi_preinit(void)
>   {
> @@ -269,7 +239,7 @@ static void __init gic_acpi_preinit(void) { }
>   void __init gic_preinit(void)
>   {
>       if ( acpi_disabled )
> -        gic_dt_preinit();
> +        intc_dt_preinit();
>       else
>           gic_acpi_preinit();
>   }
> diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
> index 58052d074e..7c549be38a 100644
> --- a/xen/common/device-tree/Makefile
> +++ b/xen/common/device-tree/Makefile
> @@ -2,3 +2,4 @@ obj-y += bootfdt.init.o
>   obj-y += bootinfo.init.o
>   obj-y += device-tree.o
>   obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
> +obj-y += intc.o
> diff --git a/xen/common/device-tree/intc.c b/xen/common/device-tree/intc.c
> new file mode 100644
> index 0000000000..e726daeb26
> --- /dev/null
> +++ b/xen/common/device-tree/intc.c
> @@ -0,0 +1,34 @@
> +

Missing SPDX. Because this code is not brand new, the license will 
derive from gic.c which is unfortunately GPLv2+. So it would need to be:

/* SPDX-License-Identifier: GPL-2.0-or-later */

> +#include <xen/device_tree.h>
> +#include <xen/init.h>
> +#include <xen/lib.h>
> +
> +void __init intc_dt_preinit(void)
> +{
> +    struct dt_device_node *node;
> +    uint8_t num_gics = 0;

I think you want to rename this variable to num_intc.

> +
> +    dt_for_each_device_node( dt_host, node )
> +    {
> +        if ( !dt_get_property(node, "interrupt-controller", NULL) )
> +            continue;
> +
> +        if ( !dt_get_parent(node) )
> +            continue;
> +
> +        if ( !device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL) )
> +        {
> +            /* NOTE: Only one GIC is supported */

And this probably need to be updated to "Only one interrupt controlled 
is supported".

> +            num_gics = 1;
> +            break;
> +        }
> +    }
> +
> +    if ( !num_gics )
> +        panic("Unable to find compatible interrupt contoller"
> +              "in the device tree\n");
> +
> +    /* Set the interrupt controller as the primary interrupt controller */
> +    dt_interrupt_controller = node;
> +    dt_device_set_used_by(node, DOMID_XEN);
> +}
> diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
> index e6287305a7..33d70b9594 100644
> --- a/xen/include/xen/device_tree.h
> +++ b/xen/include/xen/device_tree.h
> @@ -238,6 +238,12 @@ extern rwlock_t dt_host_lock;
>   struct dt_device_node *
>   dt_find_interrupt_controller(const struct dt_device_match *matches);
>   
> +#ifdef CONFIG_HAS_DEVICE_TREE
> +void intc_dt_preinit(void);
> +#else
> +static inline void intc_dt_preinit(void) { }
> +#endif
> +
>   #define dt_prop_cmp(s1, s2) strcmp((s1), (s2))
>   #define dt_node_cmp(s1, s2) strcasecmp((s1), (s2))
>   #define dt_compat_cmp(s1, s2) strcasecmp((s1), (s2))

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:46:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:46:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838766.1254744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCGJx-0005SW-0F; Sat, 16 Nov 2024 10:46:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838766.1254744; Sat, 16 Nov 2024 10:46: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 1tCGJw-0005SP-Tt; Sat, 16 Nov 2024 10:46:28 +0000
Received: by outflank-mailman (input) for mailman id 838766;
 Sat, 16 Nov 2024 10:46: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 1tCGJv-0005SJ-Ta
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:46: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 1tCGJv-0080J2-1S;
 Sat, 16 Nov 2024 10:46:27 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCGJv-007wNl-1s;
 Sat, 16 Nov 2024 10:46: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>
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=4xafzWDyFCS8EqMS8Q3J/7F9jW0pZGXTTfZD82KFeH4=; b=vUg79IESugv9Qb5BcRNcBoruRK
	c4QMdjifRfp5ytM5lz7YfYMbpNL+1j/N19zedUUeDbfk6Fj9imuMXpHS0AipjU/YMQQT4DIs+NF26
	wivINfgL8tVj18HjfpTK52n/m64vJTQnKccMu5fCaj59LyBhsrnK66m/KA3x01dLQk5s=;
Message-ID: <0f058cca-8c5b-4b6b-919b-cccff9ee2df6@xen.org>
Date: Sat, 16 Nov 2024 10:46:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] xen: add a domain unique id to each domain
Content-Language: en-GB
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-2-jgross@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241023131005.32144-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 23/10/2024 14:10, Juergen Gross wrote:
> Xenstore is referencing domains by their domid, but reuse of a domid
> can lead to the situation that Xenstore can't tell whether a domain
> with that domid has been deleted and created again without Xenstore
> noticing the domain is a new one now.
> 
> Add a global domain creation unique id which is updated when creating
> a new domain, and store that value in struct domain of the new domain.
> The global unique id is initialized with the system time and updates
> are done via the xorshift algorithm which is used for pseudo random
> number generation, too (see https://en.wikipedia.org/wiki/Xorshift).
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> V1:
> - make unique_id local to function (Jan Beulich)
> - add lock (Julien Grall)
> - add comment (Julien Grall)
> ---
>   xen/common/domain.c     | 20 ++++++++++++++++++++
>   xen/include/xen/sched.h |  3 +++
>   2 files changed, 23 insertions(+)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 92263a4fbd..3948640fb0 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -562,6 +562,25 @@ static void _domain_destroy(struct domain *d)
>       free_domain_struct(d);
>   }
>   
> +static uint64_t get_unique_id(void)
> +{
> +    static uint64_t unique_id;
> +    static DEFINE_SPINLOCK(lock);
> +    uint64_t x = unique_id ? : NOW();

I think unique_id needs to be read within the critical section. 
Otherwise, get_unique_id() could return the same ID twice.

> +
> +    spin_lock(&lock);
> +
> +    /* Pseudo-randomize id in order to avoid consumers relying on sequence. */
> +    x ^= x << 13;
> +    x ^= x >> 7;
> +    x ^= x << 17;
> +    unique_id = x;
> +
> +    spin_unlock(&lock);
> +
> +    return x;
> +}
> +
>   static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>   {
>       bool hvm = config->flags & XEN_DOMCTL_CDF_hvm;
> @@ -654,6 +673,7 @@ struct domain *domain_create(domid_t domid,
>   
>       /* Sort out our idea of is_system_domain(). */
>       d->domain_id = domid;
> +    d->unique_id = get_unique_id();
>   
>       /* Holding CDF_* internal flags. */
>       d->cdf = flags;
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 90666576c2..1dd8a425f9 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -370,6 +370,9 @@ struct domain
>       domid_t          domain_id;
>   
>       unsigned int     max_vcpus;
> +
> +    uint64_t         unique_id;       /* Unique domain identifier */
> +
>       struct vcpu    **vcpu;
>   
>       shared_info_t   *shared_info;     /* shared data area */

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:50:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838773.1254754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCGNT-0006tu-Fy; Sat, 16 Nov 2024 10:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838773.1254754; Sat, 16 Nov 2024 10: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 1tCGNT-0006t4-BZ; Sat, 16 Nov 2024 10:50:07 +0000
Received: by outflank-mailman (input) for mailman id 838773;
 Sat, 16 Nov 2024 10: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCGNS-0006n6-7a
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:50:06 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 885f6a7d-a408-11ef-a0c8-8be0dac302b0;
 Sat, 16 Nov 2024 11:50:02 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr8tQ0Lwzz9sSp;
 Sat, 16 Nov 2024 11:16:14 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ChPZcymudP6k; Sat, 16 Nov 2024 11:16:13 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr8tP62LJz9sSm;
 Sat, 16 Nov 2024 11:16:13 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id AD7A98B7A0;
 Sat, 16 Nov 2024 11:16:13 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id 2lYwjZXCjNX7; Sat, 16 Nov 2024 11:16:13 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 159E18B763;
 Sat, 16 Nov 2024 11:16:10 +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: 885f6a7d-a408-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6Ijg4NWY2YTdkLWE0MDgtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxNzU0MjAyLjc3MjY2Mywic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1IiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <cbca5f57-bc29-4d3e-a009-8ac3f5d38600@csgroup.eu>
Date: Sat, 16 Nov 2024 11:16:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
> 
> This is a series that follows up on my previous series to introduce
> secs_to_jiffies() and convert a few initial users.[1] In the review for
> that series, Anna-Maria requested converting other users with
> Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
> that use the multiply pattern of either of:
> - msecs_to_jiffies(N*1000), or
> - msecs_to_jiffies(N*MSEC_PER_SEC)

You should provide a reference to the accepted commit that adds 
secs_to_jiffies:

Commit b35108a51cf7 ("jiffies: Define secs_to_jiffies()")

> 
> The entire conversion is made with Coccinelle in the script added in
> patch 2. Some changes suggested by Coccinelle have been deferred to
> later parts that will address other possible variant patterns.
> 
> CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> 
> [1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fall%2F20241030-open-coded-timeouts-v3-0-9ba123facf88%40linux.microsoft.com%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C121622b159564a010cac08dd05bc32da%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638673028056187739%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=oW04hGIpfjRo8qcX0GaGdHE1xiApgoOtgAuWQXFgWR4%3D&reserved=0
> [2] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fall%2F8734kngfni.fsf%40somnus%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C121622b159564a010cac08dd05bc32da%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638673028056211741%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=UDn89U6oUNFiRj3K5fvNEIuiwmwEGfJ2XhPn43z8%2BhA%3D&reserved=0
> 
> ---
> Changes in v2:
> - EDITME: describe what is new in this series revision.
> - EDITME: use bulletpoints and terse descriptions.
> - Link to v1: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fr%2F20241115-converge-secs-to-jiffies-v1-0-19aadc34941b%40linux.microsoft.com&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C121622b159564a010cac08dd05bc32da%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638673028056225723%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=reWzZOiSyn%2FA5qxcXAoUqNGedJ1K%2FM%2BuCgEKwXusuU8%3D&reserved=0
> 
> ---
> Easwar Hariharan (21):
>        netfilter: conntrack: Cleanup timeout definitions
>        coccinelle: misc: Add secs_to_jiffies script
>        arm: pxa: Convert timeouts to use secs_to_jiffies()
>        s390: kernel: Convert timeouts to use secs_to_jiffies()
>        powerpc/papr_scm: Convert timeouts to secs_to_jiffies()
>        mm: kmemleak: Convert timeouts to secs_to_jiffies()
>        accel/habanalabs: Convert timeouts to secs_to_jiffies()
>        drm/xe: Convert timeout to secs_to_jiffies()
>        drm/etnaviv: Convert timeouts to secs_to_jiffies()
>        scsi: lpfc: Convert timeouts to secs_to_jiffies()
>        scsi: arcmsr: Convert timeouts to secs_to_jiffies()
>        scsi: pm8001: Convert timeouts to secs_to_jiffies()
>        xen/blkback: Convert timeouts to secs_to_jiffies()
>        gve: Convert timeouts to secs_to_jiffies()
>        wifi: ath11k: Convert timeouts to secs_to_jiffies()
>        Bluetooth: MGMT: Convert timeouts to secs_to_jiffies()
>        staging: vc04_services: Convert timeouts to secs_to_jiffies()
>        ceph: Convert timeouts to secs_to_jiffies()
>        livepatch: Convert timeouts to secs_to_jiffies()
>        ALSA: line6: Convert timeouts to secs_to_jiffies()
>        nfp: Convert timeouts to secs_to_jiffies()
> 
>   arch/arm/mach-pxa/sharpsl_pm.c                      |  6 +++---
>   arch/powerpc/platforms/pseries/papr_scm.c           |  2 +-
>   arch/s390/kernel/lgr.c                              |  3 ++-
>   arch/s390/kernel/time.c                             |  4 ++--
>   arch/s390/kernel/topology.c                         |  2 +-
>   drivers/accel/habanalabs/common/device.c            |  2 +-
>   drivers/accel/habanalabs/common/habanalabs_drv.c    |  3 +--
>   drivers/block/xen-blkback/blkback.c                 |  2 +-
>   drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c            |  2 +-
>   drivers/gpu/drm/xe/xe_device.c                      |  2 +-
>   drivers/net/ethernet/google/gve/gve_tx_dqo.c        |  6 ++----
>   drivers/net/ethernet/netronome/nfp/nfp_net_common.c |  2 +-
>   drivers/net/wireless/ath/ath11k/debugfs.c           |  2 +-
>   drivers/scsi/arcmsr/arcmsr_hba.c                    |  2 +-
>   drivers/scsi/lpfc/lpfc_init.c                       | 18 +++++++++---------
>   drivers/scsi/lpfc/lpfc_nportdisc.c                  |  8 ++++----
>   drivers/scsi/lpfc/lpfc_nvme.c                       |  2 +-
>   drivers/scsi/lpfc/lpfc_sli.c                        |  4 ++--
>   drivers/scsi/lpfc/lpfc_vmid.c                       |  2 +-
>   drivers/scsi/pm8001/pm8001_init.c                   |  2 +-
>   .../vc04_services/bcm2835-audio/bcm2835-vchiq.c     |  2 +-
>   fs/ceph/quota.c                                     |  2 +-
>   mm/kmemleak.c                                       |  4 ++--
>   net/bluetooth/mgmt.c                                |  2 +-
>   net/netfilter/nf_conntrack_proto_sctp.c             | 21 ++++++++-------------
>   samples/livepatch/livepatch-callbacks-busymod.c     |  2 +-
>   samples/livepatch/livepatch-shadow-fix1.c           |  2 +-
>   samples/livepatch/livepatch-shadow-mod.c            | 10 +++++-----
>   scripts/coccinelle/misc/secs_to_jiffies.cocci       | 21 +++++++++++++++++++++
>   sound/usb/line6/toneport.c                          |  2 +-
>   30 files changed, 79 insertions(+), 65 deletions(-)
> ---
> base-commit: 2d5404caa8c7bb5c4e0435f94b28834ae5456623
> change-id: 20241112-converge-secs-to-jiffies-d99d1016bd11
> 
> Best regards,
> --
> Easwar Hariharan <eahariha@linux.microsoft.com>
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 10:50:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 10:50:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838775.1254764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCGNY-0007BN-Rk; Sat, 16 Nov 2024 10:50:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838775.1254764; Sat, 16 Nov 2024 10: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 1tCGNY-0007BG-Oj; Sat, 16 Nov 2024 10:50:12 +0000
Received: by outflank-mailman (input) for mailman id 838775;
 Sat, 16 Nov 2024 10:50: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=zi9u=SL=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1tCGNX-0007AL-1X
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 10:50:11 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 8b0bce22-a408-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 11:50:07 +0100 (CET)
Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4Xr96l4nktz9sSR;
 Sat, 16 Nov 2024 11:26:55 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Rix4G3fNzwWP; Sat, 16 Nov 2024 11:26:55 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4Xr96l3NDXz9sSL;
 Sat, 16 Nov 2024 11:26:55 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 508DD8B7A0;
 Sat, 16 Nov 2024 11:26:55 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id fK7yTXDd_6AZ; Sat, 16 Nov 2024 11:26:55 +0100 (CET)
Received: from [192.168.232.159] (POS169858.IDSI0.si.c-s.fr [192.168.232.159])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id B911A8B763;
 Sat, 16 Nov 2024 11:26:51 +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: 8b0bce22-a408-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjkzLjE3LjIzNS4xMCIsImhlbG8iOiJwZWdhc2UyLmMtcy5mciJ9
X-Custom-Transaction: eyJpZCI6IjhiMGJjZTIyLWE0MDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzU0MjA3LjI0NTE5NSwic2VuZGVyIjoiY2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1IiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <e0d15960-4fb9-4458-b080-89791d2f5d2a@csgroup.eu>
Date: Sat, 16 Nov 2024 11:26:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/21] arm: pxa: Convert timeouts to use
 secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-3-911fb7595e79@linux.microsoft.com>
Content-Language: fr-FR
From: Christophe Leroy <christophe.leroy@csgroup.eu>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-3-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
> 
> Changes made with the following Coccinelle rules:
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
> 
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>   arch/arm/mach-pxa/sharpsl_pm.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
> index 72fa2e3fd35318e5a63c121ed7990a56a56b134c..bbbd06bc79bbb94fb258562e5a382acaf3c277b3 100644
> --- a/arch/arm/mach-pxa/sharpsl_pm.c
> +++ b/arch/arm/mach-pxa/sharpsl_pm.c
> @@ -31,9 +31,9 @@
>   /*
>    * Constants
>    */
> -#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (msecs_to_jiffies(1*60*1000))  /* 1 min */
> -#define SHARPSL_CHARGE_FINISH_TIME             (msecs_to_jiffies(10*60*1000)) /* 10 min */
> -#define SHARPSL_BATCHK_TIME                    (msecs_to_jiffies(15*1000))    /* 15 sec */
> +#define SHARPSL_CHARGE_ON_TIME_INTERVAL        (secs_to_jiffies(60))  /* 1 min */
> +#define SHARPSL_CHARGE_FINISH_TIME             (secs_to_jiffies(10*60)) /* 10 min */
> +#define SHARPSL_BATCHK_TIME                    (secs_to_jiffies(15))    /* 15 sec */

This comment is completely useless now.

The other ones are probably also kind of useless, everybody knows 1 min 
= 60 sec. See https://docs.kernel.org/process/coding-style.html#commenting



>   #define SHARPSL_BATCHK_TIME_SUSPEND            (60*10)                        /* 10 min */
> 
>   #define SHARPSL_WAIT_CO_TIME                   15  /* 15 sec */
> 
> --
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 11:01:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 11:01:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838796.1254776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCGYN-000151-Te; Sat, 16 Nov 2024 11:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838796.1254776; Sat, 16 Nov 2024 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 1tCGYN-00014u-Oh; Sat, 16 Nov 2024 11:01:23 +0000
Received: by outflank-mailman (input) for mailman id 838796;
 Sat, 16 Nov 2024 11:01: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 1tCGYM-000128-Nj
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 11:01: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 1tCGYL-0080cm-1R;
 Sat, 16 Nov 2024 11:01:21 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCGYL-007xEH-1i;
 Sat, 16 Nov 2024 11:01: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=AGKFih8c648I8YMEXe0w+lnDdKx8anJr1brQWuQONYU=; b=sEylcHHLqi+JSrsg7R9PxkQLQg
	8d5bl0eB2PmdreHWPtvZKu31oWPxrmHdlJ+N42088cP35jCfyl9FtOfkJ75gmrpB8BQJ0YrnYxS9v
	1488QfFDbnXmrFiDYt5gi2q+R2BshZfTy6ffFT3wg9CCIfiFYEavwPbpBtja7lTW/Nr8=;
Message-ID: <f583e39d-8da4-4cb3-a698-3d982843eafe@xen.org>
Date: Sat, 16 Nov 2024 11:01:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] xen: add bitmap to indicate per-domain state changes
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?=
 <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-3-jgross@suse.com>
 <6823a222-63ad-4a5a-83d2-70c6f39f38c0@suse.com>
 <fadbb6da-a314-4f1b-8a59-92c1c201dd09@suse.com>
 <7b4015a0-9d02-40a9-9919-10e7bdd73291@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7b4015a0-9d02-40a9-9919-10e7bdd73291@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Jan & Juergen,

On 04/11/2024 09:35, Jan Beulich wrote:
> On 01.11.2024 07:48, JÃ¼rgen GroÃŸ wrote:
>> On 31.10.24 11:59, Jan Beulich wrote:
>>> On 23.10.2024 15:10, Juergen Gross wrote:
>>>> Add a bitmap with one bit per possible domid indicating the respective
>>>> domain has changed its state (created, deleted, dying, crashed,
>>>> shutdown).
>>>>
>>>> Registering the VIRQ_DOM_EXC event will result in setting the bits for
>>>> all existing domains and resetting all other bits.
>>>
>>> That's furthering the "there can be only one consumer" model that also
>>> is used for VIRQ_DOM_EXC itself. I consider the existing model flawed
>>> (nothing keeps a 2nd party with sufficient privilege from invoking
>>> XEN_DOMCTL_set_virq_handler a 2nd time, taking away the notification
>>> from whoever had first requested it), and hence I dislike this being
>>> extended. Conceivably multiple parties may indeed be interested in
>>> this kind of information. At which point resetting state when the vIRQ
>>> is bound is questionable (or the data would need to become per-domain
>>> rather than global, or even yet more fine-grained, albeit
>>> ->virq_to_evtchn[] is also per-domain, when considering global vIRQ-s).
>>
>> The bitmap is directly tied to the VIRQ_DOM_EXC anyway, as it is that
>> event which makes the consumer look into the bitmap via the new hypercall.
>>
>> If we decide to allow multiple consumers of VIRQ_DOM_EXC, we'll need to
>> have one bitmap per consumer of the event. This is not very hard to
>> modify.

While in principle I agree that having multiple consumers of 
VIRQ_DOM_EXC would be great. I have some scalability concern because now 
we would end up to have to update N bitmap every time. So we would need 
to put a limit to N. I don't think there is a good limit...

So overall, I am not entirely convinced it is worth the trouble.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sat Nov 16 11:25:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Nov 2024 11:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838811.1254784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCGvE-0001e2-LU; Sat, 16 Nov 2024 11:25:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838811.1254784; Sat, 16 Nov 2024 11:25: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 1tCGvE-0001dv-Ib; Sat, 16 Nov 2024 11:25:00 +0000
Received: by outflank-mailman (input) for mailman id 838811;
 Sat, 16 Nov 2024 11:24: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=fHqI=SL=inria.fr=Julia.Lawall@srs-se1.protection.inumbo.net>)
 id 1tCGvD-0001dp-Eg
 for xen-devel@lists.xenproject.org; Sat, 16 Nov 2024 11:24:59 +0000
Received: from mail3-relais-sop.national.inria.fr
 (mail3-relais-sop.national.inria.fr [192.134.164.104])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66d69c3c-a40d-11ef-99a3-01e77a169b0f;
 Sat, 16 Nov 2024 12:24:54 +0100 (CET)
Received: from 105.39.22.93.rev.sfr.net (HELO smtpclient.apple)
 ([93.22.39.105]) by mail3-relais-sop.national.inria.fr with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2024 12:24:33 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66d69c3c-a40d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5Mi4xMzQuMTY0LjEwNCIsImhlbG8iOiJtYWlsMy1yZWxhaXMtc29wLm5hdGlvbmFsLmlucmlhLmZyIn0=
X-Custom-Transaction: eyJpZCI6IjY2ZDY5YzNjLWE0MGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxNzU2Mjk0LjU3MzE0NSwic2VuZGVyIjoianVsaWEubGF3YWxsQGlucmlhLmZyIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=inria.fr; s=dc;
  h=content-transfer-encoding:from:mime-version:subject:date:
   message-id:references:cc:in-reply-to:to;
  bh=anlUiHWGDGyJ8xswjmMdLXKoB6PZ+VXioMuGFa77dbg=;
  b=e6HMrvPibM0Fbpr/ONm0hFVcMKT8wC0+mQJzKmTLL/6XVEyPLKe8HZWV
   9C9LRPkcO6Hd6rCjzjqag+sCK6WeODO+KGVznFmYkAs5A6UnqgiSZB6Nc
   xXNWMuA+9KGLx3MmUi1yOamiphAXkkAK5LOz38Lay2oYzEJOtPfPHDOwT
   E=;
Authentication-Results: mail3-relais-sop.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=Julia.Lawall@inria.fr; dmarc=fail (p=none dis=none) d=inria.fr
X-IronPort-AV: E=Sophos;i="6.12,159,1728943200"; 
   d="scan'208";a="101793166"
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
From: Julia Lawall <Julia.Lawall@inria.fr>
Mime-Version: 1.0 (1.0)
Subject: Re: [PATCH v2 05/21] powerpc/papr_scm: Convert timeouts to secs_to_jiffies()
Date: Sat, 16 Nov 2024 06:24:20 -0500
Message-Id: <272B86FC-5CC9-4A3A-ACE0-F268E4E61C3D@inria.fr>
References: <e4872a15-ff3d-4619-9b03-c7f0b6230934@stanley.mountain>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>,
 Easwar Hariharan <eahariha@linux.microsoft.com>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>,
 Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,
 Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>,
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>,
 Lucas De Marchi <lucas.demarchi@intel.com>,
 =?utf-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>,
 Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@gmail.com>,
 Simona Vetter <simona@ffwll.ch>, Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>,
 Catalin Marinas <catalin.marinas@arm.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>,
 Marcel Holtmann <marcel@holtmann.org>,
 Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>,
 Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
 Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
 Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>,
 Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>,
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>,
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>,
 Madhavan Srinivasan <maddy@linux.ibm.com>, netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
 cocci@inria.fr, linux-arm-kernel@lists.infradead.org,
 linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org,
 intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-block@vger.kernel.org,
 linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
 linux-mm@kvack.org, linux-bluetooth@vger.kernel.org,
 linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org,
 ceph-devel@vger.kernel.org, live-patching@vger.kernel.org,
 linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org,
 oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org,
 Anna-Maria Behnsen <anna-maria@linutronix.de>
In-Reply-To: <e4872a15-ff3d-4619-9b03-c7f0b6230934@stanley.mountain>
To: Dan Carpenter <dan.carpenter@linaro.org>
X-Mailer: iPhone Mail (21E236)


Sent from my iPhone

> On 16 Nov 2024, at 05:40, Dan Carpenter <dan.carpenter@linaro.org> wrote:
>=20
> =EF=BB=BFOn Sat, Nov 16, 2024 at 11:06:55AM +0100, Christophe Leroy wrote:=

>>> diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/pl=
atforms/pseries/papr_scm.c
>>> index 9e297f88adc5d97d4dc7b267b0bfebd58e5cf193..9e8086ec66e0f0e555ac2793=
3854c06cfcf91a04 100644
>>> --- a/arch/powerpc/platforms/pseries/papr_scm.c
>>> +++ b/arch/powerpc/platforms/pseries/papr_scm.c
>>> @@ -543,7 +543,7 @@ static int drc_pmem_query_health(struct papr_scm_pri=
v *p)
>>>=20
>>>         /* Jiffies offset for which the health data is assumed to be sam=
e */
>>>         cache_timeout =3D p->lasthealth_jiffies +
>>> -               msecs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL * 1000);
>>> +               secs_to_jiffies(MIN_HEALTH_QUERY_INTERVAL);
>>=20
>> Wouldn't it now fit on a single line ?
>>=20
>=20
> Some maintainers still prefer to put a line break at 80 characters. =20

Coccinelle tries for 80 chars. It may have a command line option to specify s=
omething else.

Julia

> It's kind
> of a nightmare for an automated script like this to figure out everyone's
> preferences.  In this particular
> file, there are some lines which go over 80
> characters so sure.  Earlier in the patchset one of these introduced a lin=
e
> break that wasn't there before so I think maybe Coccinelle is applying the=
 80
> character line break rule?
>=20
> There are sometimes where the 80 character rule really hurts readability, b=
ut
> here it doesn't make any difference.
>=20
> regards,
> dan carpenter
>=20



From xen-devel-bounces@lists.xenproject.org Sun Nov 17 15:36:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Nov 2024 15:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.838988.1254795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tChK2-0007Mx-P1; Sun, 17 Nov 2024 15:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 838988.1254795; Sun, 17 Nov 2024 15:36: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 1tChK2-0007Mq-Li; Sun, 17 Nov 2024 15:36:22 +0000
Received: by outflank-mailman (input) for mailman id 838988;
 Sun, 17 Nov 2024 15:36: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=SF4L=SM=bugseng.com=roberto.bagnara@srs-se1.protection.inumbo.net>)
 id 1tChK1-0007Mi-OW
 for xen-devel@lists.xenproject.org; Sun, 17 Nov 2024 15:36:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af2094af-a4f9-11ef-99a3-01e77a169b0f;
 Sun, 17 Nov 2024 16:36:16 +0100 (CET)
Received: from [192.168.1.219] (unknown [176.206.12.131])
 by support.bugseng.com (Postfix) with ESMTPSA id 643A34EE0754;
 Sun, 17 Nov 2024 16:36:15 +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: af2094af-a4f9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImFmMjA5NGFmLWE0ZjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxODU3Nzc2Ljc0MDA5LCJzZW5kZXIiOiJyb2JlcnRvLmJhZ25hcmFAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731857775; bh=hOZZSHXf009ZtuzsFIEeXq/xfLhI6HSQhbCZ3ObAnRs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=dK6fcVPXkx/d54/CQK99X/wTM5TvcbZTrg0GRGQinn7TfKDcLpChAQ8cErJ+8MSTa
	 5lJIRpMwsF1dIWagb4UdXMgek71nTeaBIUVWM4j11JN5X7iNViSdsrbEYqo6XwqtLe
	 B79qQkzqlZsHhO02wjBbE3piANC/GyyLXuJfu9ih/5RCN5EViTJpTsIUURfeBmSIVq
	 xZTv1+uJlHBI66jxKWd6rT+SfZEb4UAytZcC/3VDVvQ4aGoa+QvA5SDtcAXcJ5n5fW
	 hkvEatI4FonluGvsuJTgF7JcwGDXA6andC6evfiUBPZH4G07/ZDTYR7XycL4bJcksJ
	 rvpojaExeXRMw==
Message-ID: <6c8a3461-a412-4cf4-91a0-c799aa90d62c@bugseng.com>
Date: Sun, 17 Nov 2024 16:36:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: increase identifiers length to 64
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
Cc: consulting@bugseng.com, jbeulich@suse.com, andrew.cooper3@citrix.com,
 julien@xen.org, roger.pau@citrix.com, bertrand.marquis@arm.com,
 michal.orzel@amd.com
References: <alpine.DEB.2.22.394.2411151617580.1160299@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Roberto Bagnara <roberto.bagnara@bugseng.com>
In-Reply-To: <alpine.DEB.2.22.394.2411151617580.1160299@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2024-11-16 01:23, Stefano Stabellini wrote:
> Currently the identifiers characters limit is arbitrarily set to 40. It
> causes a few violations as we have some identifiers longer than 40.
> 
> Increase the limit to another rather arbitrary limit of 64. Thanks to
> this change, we remove a few violations, getting us one step closer to
> marking Rules 5.2 and 5.4 as clean.
> 
> Also update the ECLAIR config that was actually set to 63 as character
> limit.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> index 86e9a79b52..8fb1778bce 100644
> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> @@ -155,8 +155,8 @@
>   -doc_end
>   
>   -doc_begin="See Section \"4.3 Identifiers\" of "GCC_MANUAL"."
> --config=STD.extidsig, behavior+={c99, GCC_ARM64, "63"}
> --config=STD.extidsig, behavior+={c99, GCC_X86_64, "63"}
> +-config=STD.extidsig, behavior+={c99, GCC_ARM64, "64"}
> +-config=STD.extidsig, behavior+={c99, GCC_X86_64, "64"}
>   -doc_end
>   
>   #
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 4a144da8d6..3ed5801bff 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -154,7 +154,7 @@ maintainers if you want to suggest a change.
>      * - `Rule 5.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_01_2.c>`_
>        - Required
>        - External identifiers shall be distinct
> -     - The Xen characters limit for identifiers is 40. Public headers
> +     - The Xen characters limit for identifiers is 64. Public headers
>          (xen/include/public/) are allowed to retain longer identifiers
>          for backward compatibility.
>   
> @@ -162,7 +162,7 @@ maintainers if you want to suggest a change.
>        - Required
>        - Identifiers declared in the same scope and name space shall be
>          distinct
> -     - The Xen characters limit for identifiers is 40. Public headers
> +     - The Xen characters limit for identifiers is 64. Public headers
>          (xen/include/public/) are allowed to retain longer identifiers
>          for backward compatibility.
>   
> @@ -177,7 +177,7 @@ maintainers if you want to suggest a change.
>      * - `Rule 5.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_04.c>`_
>        - Required
>        - Macro identifiers shall be distinct
> -     - The Xen characters limit for macro identifiers is 40. Public
> +     - The Xen characters limit for macro identifiers is 64. Public
>          headers (xen/include/public/) are allowed to retain longer
>          identifiers for backward compatibility.

While for external identifiers 64 can be considered as random as 63,
for internal identifiers and macro names 63, which is what the C99
standard guarantees, is better than 64 (which is one more than the
standard guarantees).

Kind regards,

    Roberto


From xen-devel-bounces@lists.xenproject.org Sun Nov 17 17:46:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Nov 2024 17:46:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839001.1254805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCjLq-00057p-NO; Sun, 17 Nov 2024 17:46:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839001.1254805; Sun, 17 Nov 2024 17:46: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 1tCjLq-00057i-K8; Sun, 17 Nov 2024 17:46:22 +0000
Received: by outflank-mailman (input) for mailman id 839001;
 Sun, 17 Nov 2024 17:46: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 1tCjLo-00057a-Vi
 for xen-devel@lists.xenproject.org; Sun, 17 Nov 2024 17:46:20 +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 1tCjLo-009jOw-16;
 Sun, 17 Nov 2024 17:46:20 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCjLo-009VXh-16;
 Sun, 17 Nov 2024 17:46: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>
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=HxHel5mrBc81e+58U8A+t9kgXtw76FWKgsI0PpPVX10=; b=MZN4HZjiZ4UdFM+3Kc2kZjcLVP
	/u2F+IsaSHbxPP5MAxP+Kn9eQdXLsjJAquN6LNKQRRJTjWRMMTgEvDZJcxSuW1rieuKTDG3A7z4jC
	aK/Q2KYl/o+MnyXzfRg3Q6BKD0ds1J4EjGNIexMUgoM//nDIpyf4TPb5LrUrQA+pDR8k=;
Message-ID: <e14ff136-f74c-43b6-aa7d-1c88f56f805d@xen.org>
Date: Sun, 17 Nov 2024 17:46:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] arm/setup: Move MMU specific extern declarations to
 mmu/mm.h
Content-Language: en-GB
To: Luca Fancellu <luca.fancellu@arm.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: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-3-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241115105036.218418-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 15/11/2024 10:50, Luca Fancellu wrote:
> Move some extern declarations related to MMU structures and define
> from asm/setup.h to asm/mm.h, in order to increase encapsulation and

You are moving them to asm/mmu/mm.h. But I think I would prefer if they 
are moved to asm/mmu/setup.h because boot_* are not supposed to be used 
outside of boot. So it is clearer if they are still defined in a setup.h.

> allow the MPU part to build, since it has no clue about them.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>   xen/arch/arm/include/asm/mmu/mm.h | 11 +++++++++++
>   xen/arch/arm/include/asm/setup.h  | 11 -----------
>   2 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
> index c5e03a66bf9e..69b72d671012 100644
> --- a/xen/arch/arm/include/asm/mmu/mm.h
> +++ b/xen/arch/arm/include/asm/mmu/mm.h
> @@ -12,6 +12,17 @@ extern vaddr_t directmap_virt_start;
>   extern unsigned long directmap_base_pdx;
>   #endif
>   
> +extern lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
> +
> +#ifdef CONFIG_ARM_64
> +extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
> +extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
> +#endif
> +extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
> +extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
> +extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
> +extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
> +
>   #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>   
>   /*
> diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
> index 64c227d171fc..3f5c6cf9a08b 100644
> --- a/xen/arch/arm/include/asm/setup.h
> +++ b/xen/arch/arm/include/asm/setup.h
> @@ -65,17 +65,6 @@ 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 lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
> -
> -#ifdef CONFIG_ARM_64
> -extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
> -extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
> -#endif
> -extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
> -extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
> -extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
> -extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
> -
>   /* Find where Xen will be residing at runtime and return a PT entry */
>   lpae_t pte_of_xenaddr(vaddr_t va);

Shouldn't we move this function as well?

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Nov 17 17:59:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Nov 2024 17:59:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839009.1254815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCjXy-0003gg-PR; Sun, 17 Nov 2024 17:58:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839009.1254815; Sun, 17 Nov 2024 17: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 1tCjXy-0003gZ-MP; Sun, 17 Nov 2024 17:58:54 +0000
Received: by outflank-mailman (input) for mailman id 839009;
 Sun, 17 Nov 2024 17:58:53 +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 1tCjXx-0003gT-Do
 for xen-devel@lists.xenproject.org; Sun, 17 Nov 2024 17:58:53 +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 1tCjXw-009jan-2P;
 Sun, 17 Nov 2024 17:58:53 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCjXw-009W17-2d;
 Sun, 17 Nov 2024 17:58: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>
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=67CWo/04q2gG6uH6TyCF22ZcFRXjMp9g+n0IXYzy/+c=; b=OMNwbV+oGoT3HMj+glQ898HMJP
	wCLDbvhMc7iUKhiH5KHoBlkHp2JExx24Orqr5VcKm4W31tiiVwzLNBiBW+nXjsXrtzfuL+trTed6C
	ai1Z5scm1L/BvJJNsD0dwcI6N1tUBmyYHATkk6L6lCWukSnEkf24snNGLCS3H5ga25cs=;
Message-ID: <6fd84b4e-be73-4d02-8214-32c7ebb09b3d@xen.org>
Date: Sun, 17 Nov 2024 17:58:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] xen/arm: only map the init text section RW in
 free_init_memory
Content-Language: en-GB
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.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: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-4-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241115105036.218418-4-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 15/11/2024 10:50, Luca Fancellu wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> In free_init_memory, we do not need to map the whole init section RW,
> as only init text section is mapped RO in boot time.

So originally, this was done because the function was generic. But now 
this is MMU specific, we don't really gain that much during boot but 
will impair any work that would restrict some init further (for instance 
.init.rodata could be RO). So is it actually worth it?

> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

Given the link below, why are Penny and Wei's signed-off-by are missing?

> ---
> This is this one: https://patchwork.kernel.org/project/xen-devel/patch/20230626033443.2943270-19-Penny.Zheng@arm.com/
> ---
>   xen/arch/arm/mmu/setup.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
> index 9664e85ee6c0..1b1d302c8788 100644
> --- a/xen/arch/arm/mmu/setup.c
> +++ b/xen/arch/arm/mmu/setup.c
> @@ -7,6 +7,7 @@
>   
>   #include <xen/init.h>
>   #include <xen/libfdt/libfdt.h>
> +#include <xen/pfn.h>
>   #include <xen/sections.h>
>   #include <xen/sizes.h>
>   #include <xen/vmap.h>
> @@ -309,16 +310,17 @@ void *__init arch_vmap_virt_end(void)
>   void free_init_memory(void)
>   {
>       paddr_t pa = virt_to_maddr(__init_begin);
> +    unsigned long inittext_end = round_pgup((unsigned long)_einittext);
>       unsigned long len = __init_end - __init_begin;
>       uint32_t insn;
>       unsigned int i, nr = len / sizeof(insn);
>       uint32_t *p;
>       int rc;
>   
> -    rc = modify_xen_mappings((unsigned long)__init_begin,
> -                             (unsigned long)__init_end, PAGE_HYPERVISOR_RW);
> +    rc = modify_xen_mappings((unsigned long)__init_begin, inittext_end,
> +                             PAGE_HYPERVISOR_RW);
>       if ( rc )
> -        panic("Unable to map RW the init section (rc = %d)\n", 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,

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Nov 17 17:59:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Nov 2024 17:59:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839014.1254824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCjYn-0004CH-0g; Sun, 17 Nov 2024 17:59:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839014.1254824; Sun, 17 Nov 2024 17:59: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 1tCjYm-0004CA-U4; Sun, 17 Nov 2024 17:59:44 +0000
Received: by outflank-mailman (input) for mailman id 839014;
 Sun, 17 Nov 2024 17:59: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 1tCjYl-0004Bu-E7
 for xen-devel@lists.xenproject.org; Sun, 17 Nov 2024 17:59: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 1tCjYk-009jdO-2a;
 Sun, 17 Nov 2024 17:59:43 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCjYk-009W2V-2w;
 Sun, 17 Nov 2024 17:59: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=ArqupjsVzxtRZsIcfb3qi2CuApPOy73jn86lW1QwepQ=; b=Htj+2ok4ND5KdE1MnFJyJlwWXc
	W+72wTJdpErG+Jj8KCtxwV3hCoVTxzHJ9+FfXV12ALNzAIimg3QJRS3j9o/cQd364finKUy1Wb94c
	iJR9IE5wFLJ8Y8pnUdZqNc8yBfA1pdZfhOU7icV9Mip2OJru15WTGQ8tnEXo4eaS3F2E=;
Message-ID: <91608049-60c0-425d-8a2e-8eed4d2c9be6@xen.org>
Date: Sun, 17 Nov 2024 17:59:40 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] xen/arm: Use vmap_contig instead of __vmap where it's
 possible
Content-Language: en-GB
To: Luca Fancellu <luca.fancellu@arm.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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-5-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241115105036.218418-5-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 15/11/2024 10:50, Luca Fancellu wrote:
> Currently the arm code uses __vmap function in few parts to map
> physically contiguous pages, vmap_contig was introduced recently
> and does the same because it's a wrapper for __vmap, so use the
> latter instead of the direct __vmap function.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

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

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Nov 17 18:14:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Nov 2024 18:14:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839025.1254835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCjmZ-0006e0-5J; Sun, 17 Nov 2024 18:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839025.1254835; Sun, 17 Nov 2024 18:13: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 1tCjmZ-0006dt-2b; Sun, 17 Nov 2024 18:13:59 +0000
Received: by outflank-mailman (input) for mailman id 839025;
 Sun, 17 Nov 2024 18:13: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 1tCjmY-0006dn-Ju
 for xen-devel@lists.xenproject.org; Sun, 17 Nov 2024 18:13: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 1tCjmX-009jvt-33;
 Sun, 17 Nov 2024 18:13:58 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCjmY-009Wt6-0E;
 Sun, 17 Nov 2024 18:13: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>
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=IdFWWVX0lVm47uStnQqvMYRbS4ndJC+U/qP6OA6qnHI=; b=GvIesd412eZ+jQ/GvE3O6js0bH
	/HWnu57AV+udKuabh59R+JB7Se1Pn2doZXqGNNjQcRPsv+oje/DW1rD1TiT4APH7rfEaN5j/Yf+E0
	TSEWgo8slkiwdulkJDdX40BKPcR8vdvslpuvNM0IqFf2tKequ1/rmRD25vczbEcvjBY8=;
Message-ID: <857e4cd2-f8b2-41e0-bc66-96628bc48044@xen.org>
Date: Sun, 17 Nov 2024 18:13:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] xen/arm: do not give memory back to static heap
Content-Language: en-GB
To: Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.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: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-6-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241115105036.218418-6-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 15/11/2024 10:50, Luca Fancellu wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> If Xenheap is statically configured in Device Tree, its size is
> definite. So, the memory shall not be given back into static heap, like
> it's normally done in free_init_memory, etc, once the initialization
> is finished.
> 
> Extract static_heap flag from init data bootinfo, as it will be needed
> after destroying the init data section.
> Introduce a new helper xen_is_using_staticheap() to tell whether Xenheap
> is statically configured in the Device Tree.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>

Similar to a previous patch, why wre Penny and Wei's Signed-off-by removed?

> ---
> This is a rebase of this one: https://patchwork.kernel.org/project/xen-devel/patch/20230626033443.2943270-18-Penny.Zheng@arm.com/
> ---
>   xen/arch/arm/arm32/mmu/mm.c          |  4 ++--
>   xen/arch/arm/kernel.c                |  3 ++-
>   xen/arch/arm/mmu/setup.c             |  8 ++++++--
>   xen/arch/arm/setup.c                 | 27 ++++++++++++++-------------
>   xen/common/device-tree/bootfdt.c     |  2 +-
>   xen/common/device-tree/bootinfo.c    |  2 +-
>   xen/common/device-tree/device-tree.c |  3 +++
>   xen/include/xen/bootfdt.h            | 11 ++++++++++-
>   8 files changed, 39 insertions(+), 21 deletions(-)
> 
> diff --git a/xen/arch/arm/arm32/mmu/mm.c b/xen/arch/arm/arm32/mmu/mm.c
> index 063611412be0..b7ca7c94c9ca 100644
> --- a/xen/arch/arm/arm32/mmu/mm.c
> +++ b/xen/arch/arm/arm32/mmu/mm.c
> @@ -199,7 +199,7 @@ void __init setup_mm(void)
>   
>       total_pages = ram_size >> PAGE_SHIFT;
>   
> -    if ( bootinfo.static_heap )
> +    if ( xen_is_using_staticheap() )
>       {
>           const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
>   
> @@ -246,7 +246,7 @@ void __init setup_mm(void)
>   
>       do
>       {
> -        e = bootinfo.static_heap ?
> +        e = xen_is_using_staticheap() ?
>               fit_xenheap_in_static_heap(pfn_to_paddr(xenheap_pages), MB(32)) :
>               consider_modules(ram_start, ram_end,
>                                pfn_to_paddr(xenheap_pages),
> diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
> index 293d7efaed9c..a4a99607b668 100644
> --- a/xen/arch/arm/kernel.c
> +++ b/xen/arch/arm/kernel.c
> @@ -247,7 +247,8 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
>        * Free the original kernel, update the pointers to the
>        * decompressed kernel
>        */
> -    fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
> +    if ( !xen_is_using_staticheap() )

The comment on top needs to be updated.

> +        fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
>   
>       return 0;
>   }
> diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
> index 1b1d302c8788..d0775793f4b4 100644
> --- a/xen/arch/arm/mmu/setup.c
> +++ b/xen/arch/arm/mmu/setup.c
> @@ -343,8 +343,12 @@ void free_init_memory(void)
>       if ( rc )
>           panic("Unable to remove the init section (rc = %d)\n", rc);
>   
> -    init_domheap_pages(pa, pa + len);
> -    printk("Freed %ldkB init memory.\n", (long)(__init_end-__init_begin)>>10);
> +    if ( !xen_is_using_staticheap() )
> +    {
> +        init_domheap_pages(pa, pa + len);
> +        printk("Freed %ldkB init memory.\n",
> +               (long)(__init_end-__init_begin) >> 10);
> +    }
>   }
>   
>   /**
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 71ebaa77ca94..91340d5dc201 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -206,24 +206,25 @@ void __init discard_initial_modules(void)
>       struct bootmodules *mi = &bootinfo.modules;
>       int i;
>   
> -    for ( i = 0; i < mi->nr_mods; i++ )
> +    if ( !xen_is_using_staticheap() )
>       {
> -        paddr_t s = mi->module[i].start;
> -        paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
> -
> -        if ( mi->module[i].kind == BOOTMOD_XEN )
> -            continue;
> +        for ( i = 0; i < mi->nr_mods; i++ )
> +        {
> +            paddr_t s = mi->module[i].start;
> +            paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
>   
> -        if ( !mfn_valid(maddr_to_mfn(s)) ||
> -             !mfn_valid(maddr_to_mfn(e)) )
> -            continue;
> +            if ( mi->module[i].kind == BOOTMOD_XEN )
> +                continue;
>   
> -        fw_unreserved_regions(s, e, init_domheap_pages, 0);
> -    }
> +            if ( !mfn_valid(maddr_to_mfn(s)) ||
> +                 !mfn_valid(maddr_to_mfn(e)) )
> +                continue;
>   
> -    mi->nr_mods = 0;
> +            fw_unreserved_regions(s, e, init_domheap_pages, 0);
> +        }
>   
> -    remove_early_mappings();
> +        mi->nr_mods = 0;
> +    }
>   }
>   
>   /* Relocate the FDT in Xen heap */
> diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
> index 927f59c64b0d..ccb150b34a63 100644
> --- a/xen/common/device-tree/bootfdt.c
> +++ b/xen/common/device-tree/bootfdt.c
> @@ -403,7 +403,7 @@ static int __init process_chosen_node(const void *fdt, int node,
>           if ( rc )
>               return rc;
>   
> -        bootinfo.static_heap = true;
> +        static_heap = true;
>       }
>   
>       printk("Checking for initrd in /chosen\n");
> diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
> index f2e6a1145b7c..1e83d5172938 100644
> --- a/xen/common/device-tree/bootinfo.c
> +++ b/xen/common/device-tree/bootinfo.c
> @@ -386,7 +386,7 @@ void __init populate_boot_allocator(void)
>       const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
>       paddr_t s, e;
>   
> -    if ( bootinfo.static_heap )
> +    if ( xen_is_using_staticheap() )
>       {
>           for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
>           {
> diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
> index d0528c582565..22b69c49171b 100644
> --- a/xen/common/device-tree/device-tree.c
> +++ b/xen/common/device-tree/device-tree.c
> @@ -25,6 +25,9 @@
>   #include <asm/setup.h>
>   #include <xen/err.h>
>   
> +/* Flag saved when Xen is using the static heap feature (xen,static-heap) */
> +bool __read_mostly static_heap;

Strictly speaking, static_heap could be used with ACPI (even though 
there is not binding today). So I think it should not belong to 
device-tree.c. I think page_alloc.c may be more suitable. Also, I think 
static_heap will not be touched after init. So this likely wants to be 
__ro_after_init.

Lastly, shouldn't this be protected by #ifdef? Otherwise...

> +
>   const void *device_tree_flattened;
>   dt_irq_xlate_func dt_irq_xlate;
>   /* Host device tree */
> diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
> index 16fa05f38f38..0015a4babde7 100644
> --- a/xen/include/xen/bootfdt.h
> +++ b/xen/include/xen/bootfdt.h
> @@ -132,7 +132,6 @@ struct bootinfo {
>   #ifdef CONFIG_STATIC_SHM
>       struct shared_meminfo shmem;
>   #endif
> -    bool static_heap;
>   };
>   
>   #ifdef CONFIG_ACPI
> @@ -156,6 +155,7 @@ struct bootinfo {
>   }
>   
>   extern struct bootinfo bootinfo;
> +extern bool static_heap;
>   
>   bool check_reserved_regions_overlap(paddr_t region_start,
>                                       paddr_t region_size);
> @@ -206,4 +206,13 @@ static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
>   }
>   #endif
>   
> +static inline bool xen_is_using_staticheap(void)

... we could have xen_is_using_staticheap() != static_heap.

> +{
> +#ifdef CONFIG_STATIC_MEMORY
> +    return static_heap;
> +#else
> +    return false;
> +#endif
> +}
> +
>   #endif /* XEN_BOOTFDT_H */

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Sun Nov 17 18:25:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 17 Nov 2024 18:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839033.1254844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCjxb-0007ED-4A; Sun, 17 Nov 2024 18:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839033.1254844; Sun, 17 Nov 2024 18: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 1tCjxb-0007E6-11; Sun, 17 Nov 2024 18:25:23 +0000
Received: by outflank-mailman (input) for mailman id 839033;
 Sun, 17 Nov 2024 18:25: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 1tCjxa-0007E0-9m
 for xen-devel@lists.xenproject.org; Sun, 17 Nov 2024 18:25: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 1tCjxZ-009k9B-1w;
 Sun, 17 Nov 2024 18:25:21 +0000
Received: from [2a02:8012:3a1:0:dc92:b14d:2764:76ac]
 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 1tCjxZ-009XPX-28;
 Sun, 17 Nov 2024 18:25: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=RYXxfVrnviffLUBpfklNQDNwlGsgPjdG3RjZL9JPdW8=; b=sfdQ7/8KsATM9c6oVLMDPkOgN1
	MsDCEbcP0vTZRyvc63vLSa3pAi7aLmk0esg4v/2b2Rc8HaJ784vVJ+pgO3Ozs1zdG4el9qyRPKW8J
	H6uqlCPK2V3oF6h6UgZbeOGHBM07NjsXl/r6yJZXcd6UFaAxZJ/ekw+qXiLWV5gsgfBk=;
Message-ID: <3385e50f-6d60-4f59-a720-fb014d9722cb@xen.org>
Date: Sun, 17 Nov 2024 18:25:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 10/13] xen/arm: use domain memory to allocate p2m page
 tables
Content-Language: en-GB
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
 xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20241025095014.42376-1-carlo.nonato@minervasys.tech>
 <20241025095014.42376-11-carlo.nonato@minervasys.tech>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241025095014.42376-11-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 25/10/2024 10:50, Carlo Nonato wrote:
> Cache colored domains can benefit from having p2m page tables allocated
> with the same coloring schema so that isolation can be achieved also for
> those kind of memory accesses.
> In order to do that, the domain struct is passed to the allocator and the
> MEMF_no_owner flag is used.
> 
> This will be useful also when NUMA will be supported on Arm.
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Acked-by: Julien Grall <julien@xen.org>

I have committed this patch because it seems to be standalone.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 06:06:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 06:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839059.1254863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCutw-0003Rr-Ad; Mon, 18 Nov 2024 06:06:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839059.1254863; Mon, 18 Nov 2024 06:06: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 1tCutw-0003Rk-73; Mon, 18 Nov 2024 06:06:20 +0000
Received: by outflank-mailman (input) for mailman id 839059;
 Mon, 18 Nov 2024 06:06: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=6j/g=SN=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tCutu-0003Re-Lf
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 06:06:19 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2414::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 335fdf2f-a573-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 07:06:08 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CYYPR12MB8732.namprd12.prod.outlook.com (2603:10b6:930:c8::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Mon, 18 Nov
 2024 06:06:03 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.021; Mon, 18 Nov 2024
 06:06: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: 335fdf2f-a573-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjAxIiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjMzNWZkZjJmLWE1NzMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTA5OTY4LjkyNDMwNywic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vhfWk+90QUgk6G8zFN0saccyXbve9dtjwc8BsTZZHCuDAfxcutKeR2Zv3jmrE2FxMu+ECEfgz4UaL3Zf9AAiWLLJ87MgGFgKR6LFWQCE2LS/V3GE7ZsAUK1VwCMdjY3mSDxyqTw5PqHbAnunlHPJ8I4wm5hXLeedJaveLxgDZxwDMEj3xSM3aLdOSyw676HDCKJTGxkwoU0gg25zihoJcO6kpe3e0jn1VSrE3G2hEsMSUKppb+vl9cK3hTpcJncQYChn4F1XmfcKh6YHWlbYkgE5174QdRDoXMFTqZT/Be5huj4sbXYI82mQVPZl17r+/FeqqrkrwNw2MKT+F/xJ2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yqiedDnH8KKO2g7c1YI4ZMo3KQORf6hND4RlKYeEtOE=;
 b=kTaPtrNblBSyOzsmy6KQPWEWsHi2psa2efyc5RVjkODuKK0AwjrmRiB0Fp5iX66GwfPaXlZQOGus4QNVkRIvML/1yRbv8N2OOw9eaGkuG67+SxaWYE1p92Q7CdiiYXPY4KxuVK/QFjYFcwmOjhvP2f02JT0FAOB5fSetAi3dNlbznhI0LuwYhtn/EQCwI5s9yhJJe1szxgpd76toSeSGOVcYc/ecNhJd/f4pg4rn5SiRgWAyqtw5IkzuPqFjvuyYkEKbmVNosiL8LZyfl6wnUfopabRdz4Uu3BHwWwAFNiAHQWPtBh60M8+V0+x0Yy81upMf9/nCp0OZpzY9/uvcNg==
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=yqiedDnH8KKO2g7c1YI4ZMo3KQORf6hND4RlKYeEtOE=;
 b=Q/f9ME2zFNdTFhG++aiKKg9QTo7FJSRJyfCfz5Nupilpi0N7UrdhRR8mrPFzO7OK/QOP07Kw4W5taU/Bw03vtA+POTRsJw+XsCSt2aVZsA46eP9dGi3uKU+W7PScLgYkMbdE02VvBVVFWydiPkPTjabftGSK54DeyNS952VTcqA=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAA==
Date: Mon, 18 Nov 2024 06:06:03 +0000
Message-ID:
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
In-Reply-To: <ZzczqznFbixk3Vfu@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.013)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CYYPR12MB8732:EE_
x-ms-office365-filtering-correlation-id: d00b194b-5314-457d-48fe-08dd0797154f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SlN4QXMxV2hMTVpNbkRWc2xqd2FqeTZENWdBb3dYM01LK3o0NTczRkNCTHNQ?=
 =?utf-8?B?SjlzclpGa0NUNERUNU5yTE5mSTN1Tll6dkF3ejJJS25iY2dMWC9wamM2Z1RK?=
 =?utf-8?B?MVRIZWNNOHlJRW9SUTlwWk9RYmxqQ2d1aVNzVFhmVTZ3Q0E0dHpyN0lqMDNL?=
 =?utf-8?B?MGRwaW4wRzVjOUhSYUpUSFprbWJQRXFEWlVLd2VkR0dVdElQZmVkU1BiUzQv?=
 =?utf-8?B?aGVnelVTN2ZKRVNKcjJKRGxLR0R3VDBwVVJGSE90MVhZSVFaeVo3bmJYcVZR?=
 =?utf-8?B?ekxic2VIc2ZlSWkzWWlteWhpN2dRLzl6dWRKdG1yU0tGTlRXSEZKS1pndmFO?=
 =?utf-8?B?My9ETWV0UWlSY1ZaVEhPalppUXdvSXpnMG51bWQrckxrRndaTzRHaWhJUE01?=
 =?utf-8?B?Vno1ZW5kS3I4dmdOMnlJeHZiU2JyYXVRbGJVelpubGhaZmJEVTErWDNqeUh2?=
 =?utf-8?B?bEpoTGRiT1FEQmRNcC9DWDEraFE0emJ2bTNrL0JMRjdlSk5OK2NxcWlZdFVL?=
 =?utf-8?B?WTg0Q2FQQ3N5SnJoRHFJQzNxRmcyYlFVNGZDYVpBeHl0L3YvQWhjOE5pc2g3?=
 =?utf-8?B?RmhqdFBtVktvdXl2MDNaN0pHYWZQUHYxQmNwRy9pZFB2V2J3VTltOVBHK2x0?=
 =?utf-8?B?eDdydWQ1Q0FRS0N1UUZxRlJXZXp6a2oxTjNxMDQ2YXNVaE44ZWlneFVLRUl0?=
 =?utf-8?B?andMeFFtUjNhWGpLdzE3WnhndzNPT21wcXVBb0l1bG1wNDZ0enVVQmZGVmNB?=
 =?utf-8?B?SXo1QkVvUTBFSlNpSHkxekJNZk5RMStzREczbmFKc0xtQ2ZYbS8xN2JOdVBK?=
 =?utf-8?B?YVdMVEZsZ2RBbTVVR2dkVE5ZUkswaGh0THFTVi9VRU0rM1pjaGlpOEFwektP?=
 =?utf-8?B?RkJ5YllFMy9LVkRtNWZXbmRDVzdjTVUwdlJSelVFUVJjcjY5dUMvdlRTNm9q?=
 =?utf-8?B?Um16WDcxaWVRWmZhakg1N0hOKzVjeVFIWDlrSGh3VldoZlltc3M0Tm9YVC9G?=
 =?utf-8?B?YWdwN1owZzQ5T1l3cS9jZG9DenoyakRocTJmNEUzbm5NVW05dy9UWGN4a0Nm?=
 =?utf-8?B?ajVmODNDeCtsNmVhb29mc084ODExRGxzd24wTTRQYmFWTWV6K2crbGZsU0Zp?=
 =?utf-8?B?SUZsQUNyd3BXWExQUTJIcEtlSkI1VDFTWm9WKzNyRCtwMVVOYnVuVlhOMGxx?=
 =?utf-8?B?N1FpSXZKbU5XeVZmakZUQzBuYzJUTWhxa1JrWlFhUUY0N3BmeTIwaHl6dlNt?=
 =?utf-8?B?L09YcjZ5UENhMHZpUUNPdWU0SWE5SmFFWHZ0Q3V5OTVQT2I4YXQrcHdyYStt?=
 =?utf-8?B?RWNPb0xERkJxV3lzRzYwcm4rQk5YRHkra2NkTVR0bmpGMlRQZUhZUElldFRG?=
 =?utf-8?B?ZCs4RmJXbUZEQUxKL01hMFpabjMwaDVwR0tTMkpKTktUcmJyQU56SnFJZ21R?=
 =?utf-8?B?T2l3SmRKSEVUZWo0SkZYaVdYOUs4LytFMWFaeDZHaEswTjBNMGFjdGdkcUZQ?=
 =?utf-8?B?Rmk1TmFKeHQxcTZQZWR1MmdtQTRiaFNVN3hJbm9ueldIK01BNkh0ZHRQc3pt?=
 =?utf-8?B?TElOWUdSdTJWb051WGxoZk9tYTNDV2dPaVpBcktacXdRQzVBYVJMVUs1dXRH?=
 =?utf-8?B?bzA4aHJQNVBhc1pmb084SndGSDFIWnBJd2w4U2F4U3pqZHhaQjUwSnF2dXE5?=
 =?utf-8?B?TDkrY3dkUlBocm1zMis2b2x3a2pqZC9rZmFIQVhXSUViZ0tvZy94Vmk3aTJa?=
 =?utf-8?B?dUt2dVlUalRKRllwbmNFUTVQSkc0WWljVGhldHlVckNYK3hVQ0ZzNnVWemM1?=
 =?utf-8?B?c3JKZUZBODIyYXQzZGdmTUIvd1BxZ3FBRzdac2trbGJhOEMwZWpKQUlrZXZS?=
 =?utf-8?Q?5pQ+NFUXVGlOW?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bVptOFZ2NHpwYXIzZ0dFVVBUc0MwSC9YS0E3WGFsY09tcWlmQmNYYWc5TkRF?=
 =?utf-8?B?MnMyQkFFbk9DTEZoVkFzVFFuaDRVbkQ5YzZhb1A0UkIzekhmWlFPNmYrRUJ3?=
 =?utf-8?B?MDBGUW5YdjJlbzhxcnRTaUhOZS9PQWFhdG9CT0xJZXRGYm1aYjNjZGxqcU5o?=
 =?utf-8?B?NUVMTzduL1Ard2h2Z0E3VUl1MkR1OGtCOWh2VHhPbnVoRGNEd2cvY3lHUFZy?=
 =?utf-8?B?WHNhcXo5Ym5ZcjhzK1RYN1VYRVlUU09tU0RmMHkvYldsbEVjUUttbEtpQndX?=
 =?utf-8?B?ZnNOUmwvMVRzYllCWGFGTitsZWxXNXhwMjVENGh5OWd0SGRpSU9oSmFQQUZ2?=
 =?utf-8?B?cXJsVnM4Rm93N2hYcXVkQlNsY2Nvb1kzMVRDekxjdENXa3hmdzdEUkZEU1ZF?=
 =?utf-8?B?KzA0Y3NVZEg5Q3RWTHAvRFpoNGV6bFU4NDZOUG1zWkxSSENnYVZFU3Y1ODZn?=
 =?utf-8?B?T0ZicksvQ21jcWtySjZwMHJ5Y1JPMTliYWdPOGhGbkw1TEFiSW5Wak9IYVVF?=
 =?utf-8?B?aGNMQmtBejNOYldmdjZiOWNFN24zQ3dqUk55Y3VLTCttY21NZXhPd3o4WTdz?=
 =?utf-8?B?UXBVU0ZabkVtSGdUaHZQaDRCWWlWRWhZNU5RWnE2bG9hVnVSTmowelFFdWdI?=
 =?utf-8?B?eHpKdy9hSDdKSEljeVZUS0JNcTgxeTU1UUJnc0QrN25HNVV1TSswd1RPQ1JK?=
 =?utf-8?B?enNoSzRhelhqNzRBWmZYN1JVbWdzRUt1VmozcEMyNUdZUlhONTdUUHcva2NU?=
 =?utf-8?B?R3hmN3FRL0lSNTFTL3lLYWN0WlZleG12eXZQanZSNWVGbjFxMlBlV0xoVmdW?=
 =?utf-8?B?V3JlM09WeW5QV01aWjBTYWxURHM1c2szeEwwOFArME5CTndaZVNVeUxOQ091?=
 =?utf-8?B?NzBzSjQvUkZhaE9EOXZxQ2xPcERYcjNRai9NYm4yZjZZTzJTVVBBTTFRZWJn?=
 =?utf-8?B?aVphNkZhR21VZmh6a0NYVnZvc09EQjBaWTd4bXFCdkF2WlVmSlVpc0tZN1Nl?=
 =?utf-8?B?S2UwUFFxbHNzcU5xQXZTTXk2S1JuSmFKR1MvWlVZRS9WaGp4YnZWdnN0R0VT?=
 =?utf-8?B?QWw3cDJyQm5hcGVKQXpwOUw3OVR4M2ZTTnBmblE3Zk9GSDFuaTErSzErVC9P?=
 =?utf-8?B?WXVUaGpncjQ5eEs3OTViOWFxZHZTNmEyYngyZURzYlJxS0RFUHh5c3UybEdF?=
 =?utf-8?B?RlVVU29NUFJpWG9zMGVZWDRidHhMZ2dWcHBHaFR4YTBGRFFMOC9tMjBZUFhh?=
 =?utf-8?B?TkY5T0Qvbmt2Q2RWY1VIU0tJN05KSUJYTWtOMThyeXNZa3hmYURNOXZ1TkZ6?=
 =?utf-8?B?UTcrZ0d3cWhPL2J2NmZnVDcwVFowajlidEV0RStsVXV1YWc2ZUkwYlBsV2dm?=
 =?utf-8?B?NGxRV2JqdUFOUXNvOFhCZUlqd2ZmWjJLeDkxYW5zV1plTW5SVlFyUUJVcUE4?=
 =?utf-8?B?RnZJZXJKRWFZRE5Iakl0WXg4b3V3UzlmRDc3aUg1VzBMU1g5QjhrVEI2d3pC?=
 =?utf-8?B?VTd0azk3QkQxUjJicURtK0JFOVRLUmFaYnQrZzR4dElnZFFmOHQ1ZmxwZ2tI?=
 =?utf-8?B?MkJPT2JQazBWanZSamh3N0xsN21kOTJlQlBSQnNtSW1uN1c5WGpqY0duUUFt?=
 =?utf-8?B?ekkrenVJOG5QNkJOZHdJOGxwV3VZRkJGSW5ocUlJcWo5bks0TWdRTlArVmlW?=
 =?utf-8?B?TjhZV2tLZC9rYmhKdldYUE9NVjVVdEhsNkdETXdtOXpxYVBJVHRzTVE5KzVC?=
 =?utf-8?B?MDBSeGFiVFpvUFFaVWFJVDV2UkZ4a1BuOFNJeDUwV0xQSEQrcWc0cDFBa003?=
 =?utf-8?B?cDVqMTR2ZTZEcVJOSXpCYnM4M1ZMcUZFQnFTaDNRUkpLVEpLcXBrQWIxSzFS?=
 =?utf-8?B?YTlVY0hqMi8yb1lteUZ5MUwvNDl5SEVBZXFWL2tUNk1TaStWbzc3M0Y2K05U?=
 =?utf-8?B?RHc4RU5iV3EzV2JwTFNMM001QXUxaGpjUG1IeW5HVW9oako5bzFyK29MOHFR?=
 =?utf-8?B?eUxjTy9rWFFJSTEydTJwUzNnM0cxa1dBdUQrQWNnL2kwcWFCcFUyMjgyNm5h?=
 =?utf-8?B?cW9ianlsUTFuOVoybDhFbDUrT1dob2x0SEVXVlJFRjFMMFNuZndJeFZqODdE?=
 =?utf-8?Q?KMUs=3D?=
Content-Type: multipart/mixed;
	boundary="_003_BL1PR12MB5849894360DB8D96073AB21EE7272BL1PR12MB5849namp_"
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d00b194b-5314-457d-48fe-08dd0797154f
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2024 06:06:03.4952
 (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: uw5qnMQpS1c15wsqoFNIus4TqZo9qfeODYLFmtbx2yblXQOxjecxWrN89HUId+PrqDysSho3Ha4e7a11npSQCQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8732

--_003_BL1PR12MB5849894360DB8D96073AB21EE7272BL1PR12MB5849namp_
Content-Type: text/plain; charset="utf-8"
Content-ID: <310D5DF58A1244419FB16E67E708470D@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64

T24gMjAyNC8xMS8xNSAxOTo0MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gRnJpLCBO
b3YgMTUsIDIwMjQgYXQgMDM6MDQ6MjJBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyNC8xMS8xNSAwMTozNiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBUaHUs
IE5vdiAxNCwgMjAyNCBhdCAwNDo1MjoxOFBNICswMTAwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3Rl
Og0KPj4+PiBPbiBUaHUsIE5vdiAxNCwgMjAyNCBhdCAwNjoxMTo0NkFNICswMDAwLCBDaGVuLCBK
aXFpYW4gd3JvdGU6DQo+Pj4+PiBPbiAyMDI0LzExLzEzIDE4OjMwLCBSb2dlciBQYXUgTW9ubsOp
IHdyb3RlOg0KPj4+Pj4+IE9uIFdlZCwgTm92IDEzLCAyMDI0IGF0IDEwOjAwOjMzQU0gKzAwMDAs
IENoZW4sIEppcWlhbiB3cm90ZToNCj4+Pj4+Pj4gT24gMjAyNC8xMS8xMyAxNzozMCwgUm9nZXIg
UGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+Pj4+IE9uIFdlZCwgTm92IDEzLCAyMDI0IGF0IDA0OjAw
OjI3UE0gKzA4MDAsIEppcWlhbiBDaGVuIHdyb3RlOg0KPj4+Pj4+Pj4+IFNvbWUgZGV2aWNlcywg
bGlrZSBkaXNjcmV0ZSBHUFUgb2YgYW1kLCBzdXBwb3J0IHJlc2l6YWJsZSBiYXIgY2FwYWJpbGl0
eSwNCj4+Pj4+Pj4+PiBidXQgdnBjaSBvZiBYZW4gZG9lc24ndCBzdXBwb3J0IHRoaXMgZmVhdHVy
ZSwgc28gdGhleSBmYWlsIHRvIHJlc2l6ZSBiYXJzDQo+Pj4+Pj4+Pj4gYW5kIHRoZW4gY2F1c2Ug
cHJvYmluZyBmYWlsdXJlLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gQWNjb3JkaW5nIHRvIFBDSWUg
c3BlYywgZWFjaCBiYXIgdGhhdCBzdXBwb3J0IHJlc2l6aW5nIGhhcyB0d28gcmVnaXN0ZXJzLA0K
Pj4+Pj4+Pj4+IFBDSV9SRUJBUl9DQVAgYW5kIFBDSV9SRUJBUl9DVFJMLCBzbyBhZGQgdGhlc2Ug
dHdvIHJlZ2lzdGVycyBhbmQgdGhlaXINCj4+Pj4+Pj4+PiBjb3JyZXNwb25kaW5nIGhhbmRsZXIg
aW50byB2cGNpLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gUENJX1JFQkFSX0NBUCBpcyBSTywgb25s
eSBwcm92aWRlIHJlYWRpbmcuDQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiBQQ0lfUkVCQVJfQ1RSTCBv
bmx5IGhhcyBiYXIgc2l6ZSBpcyBSVywgc28gYWRkIHdyaXRlIGZ1bmN0aW9uIHRvIHN1cHBvcnQN
Cj4+Pj4+Pj4+PiBzZXR0aW5nIHRoZSBuZXcgc2l6ZS4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBJIHRo
aW5rIHRoZSBsb2dpYyB0byBoYW5kbGUgcmVzaXphYmxlIEJBUiBjb3VsZCBiZSBtdWNoIHNpbXBs
ZXIuICBTb21lDQo+Pj4+Pj4+PiB0aW1lIGFnbyBJJ3ZlIG1hZGUgYSBwYXRjaCB0byBhZGQgc3Vw
cG9ydCBmb3IgaXQsIGJ1dCBkdWUgdG8gbGFjayBvZg0KPj4+Pj4+Pj4gaGFyZHdhcmUgb24gbXkg
c2lkZSB0byB0ZXN0IGl0IEkndmUgbmV2ZXIgc3VibWl0dGVkIGl0Lg0KPj4+Pj4+Pj4NCj4+Pj4+
Pj4+IE15IGFwcHJvYWNoIHdvdWxkIGJlIHRvIGRldGVjdCB0aGUgcHJlc2VuY2Ugb2YgdGhlDQo+
Pj4+Pj4+PiBQQ0lfRVhUX0NBUF9JRF9SRUJBUiBjYXBhYmlsaXR5IGluIGluaXRfaGVhZGVyKCks
IGFuZCBpZiB0aGUNCj4+Pj4+Pj4+IGNhcGFiaWxpdHkgaXMgcHJlc2VudCBmb3JjZSB0aGUgc2l6
aW5nIG9mIEJBUnMgZWFjaCB0aW1lIHRoZXkgYXJlDQo+Pj4+Pj4+PiBtYXBwZWQgaW4gbW9kaWZ5
X2JhcnMoKS4gIEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byB0cmFwIGFjY2Vzc2VzIHRvDQo+Pj4+
Pj4+PiB0aGUgY2FwYWJpbGl0eSBpdHNlbGYsIGFzIHJlc2l6aW5nIGNhbiBvbmx5IGhhcHBlbiB3
aGVuIG1lbW9yeQ0KPj4+Pj4+Pj4gZGVjb2RpbmcgaXMgbm90IGVuYWJsZWQgZm9yIHRoZSBkZXZp
Y2UuICBJdCdzIGVub3VnaCB0byBmZXRjaCB0aGUgc2l6ZQ0KPj4+Pj4+Pj4gb2YgdGhlIEJBUnMg
YWhlYWQgb2YgZWFjaCBlbmFibGluZyBvZiBtZW1vcnkgZGVjb2RpbmcuDQo+Pj4+Pj4+Pg0KPj4+
Pj4+Pj4gTm90ZSB0aGF0IG1lbW9yeSBkZWNvZGluZyBpbXBsaWVzIG1hcHBpbmcgdGhlIEJBUnMg
aW50byB0aGUgcDJtLCB3aGljaA0KPj4+Pj4+Pj4gaXMgYWxyZWFkeSBhbiBleHBlbnNpdmUgb3Bl
cmF0aW9uLCB0aGUgZXh0cmEgc2l6aW5nIGlzIHVubGlrZWx5IHRvDQo+Pj4+Pj4+PiBtYWtlIG11
Y2ggb2YgYSBkaWZmZXJlbmNlIHBlcmZvcm1hbmNlIHdpc2UuDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4g
SSd2ZSBmb3VuZCB0aGUgZm9sbG93aW5nIG9uIG15IGdpdCB0cmVlIGFuZCByZWJhc2VkIG9uIHRv
cCBvZiBzdGFnaW5nOg0KPj4+Pj4+PiBPSy4NCj4+Pj4+Pj4gRG8geW91IG5lZWQgbWUgdG8gdmFs
aWRhdGUgeW91ciBwYXRjaCBpbiBteSBlbnZpcm9ubWVudD8NCj4+Pj4+Pg0KPj4+Pj4+IFllcyBw
bGVhc2UsIEkgaGF2ZSBubyB3YXkgdG8gdGVzdCBpdC4gIExldCdzIHNlZSB3aGF0IG90aGVycyB0
aGluaw0KPj4+Pj4+IGFib3V0IHRoZSBkaWZmZXJlbnQgYXBwcm9hY2hlcy4NCj4+Pj4+IFRoZXJl
IGFyZSBzb21lIGVycm9ycyB3aXRoIHlvdXIgbWV0aG9kLg0KPj4+Pj4gSSBhdHRhY2hlZCB0aGUg
ZG1lc2cgYW5kIHhsIGRtZXNnIGxvZ3MuDQo+Pj4+PiBGcm9tIHRoZSBkbWVzZyBsb2dzLCBpdCBz
ZWVtcyB0aGF0IDAwMDA6MDM6MDAuMCBoYXMgYWRkcmVzc2Ugb3ZlcmxhcCB3aXRoIDAwMDA6MDM6
MDAuMQ0KPj4+Pg0KPj4+PiBEbyB5b3UgaGF2ZSB0aGUgb3V0cHV0IG9mIGxzcGNpIHdpdGggdGhl
IEJBUiBzaXplcy9wb3NpdGlvbnMgYmVmb3JlDQo+Pj4+IGFuZCBhZnRlciB0aGUgcmVzaXppbmc/
DQo+Pj4+DQo+Pj4+Pg0KPj4+Pj4gSSB0aGluayB0aGVyZSBpcyBhIHBsYWNlIHRoYXQgbmVlZHMg
dG8gYmUgbW9kaWZpZWQgcmVnYXJkaW5nIHlvdXIgbWV0aG9kLA0KPj4+Pj4gYWx0aG91Z2ggdGhp
cyBtb2RpZmljYXRpb24gZG9lcyBub3QgaGVscCB3aXRoIHRoZSBhYm92ZS1tZW50aW9uZWQgZXJy
b3JzLA0KPj4+Pj4gaXQgaXMgdGhhdCB3aGV0aGVyIHRvIHN1cHBvcnQgcmVzaXppbmcgaXMgc3Bl
Y2lmaWMgdG8gd2hpY2ggYmFyLCByYXRoZXIgdGhhbiBqdXN0IGRldGVybWluaW5nIHdoZXRoZXIg
dGhlcmUgaXMgYSBSZWJhciBjYXBhYmlsaXR5Lg0KPj4+Pg0KPj4+PiBEbyB3ZSByZWFsbHkgbmVl
ZCBzdWNoIGZpbmUtZ3JhaW5lZCBpbmZvcm1hdGlvbj8gIEl0IHNob3VsZCBiZQ0KPj4+PiBoYXJt
bGVzcyAoZXZlbiBpZiBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5KSB0byBzaXplIGFsbCBCQVJzIG9u
IHRoZQ0KPj4+PiBkZXZpY2UgYmVmb3JlIGVuYWJsaW5nIG1lbW9yeSBkZWNvZGluZywgZXZlbiBp
ZiBzb21lIG9mIHRoZW0gZG8gbm90DQo+Pj4+IHN1cHBvcnQgcmVzaXppbmcuDQo+Pj4+DQo+Pj4+
IEkgbWlnaHQgaGF2ZSB0byBwcm92aWRlIGEgcGF0Y2ggd2l0aCBhZGRpdGlvbmFsIG1lc3NhZ2Vz
IHRvIHNlZSB3aGF0J3MNCj4+Pj4gZ29pbmcgb24uDQo+Pj4NCj4+PiBPbmUgbml0IHRoYXQgSSd2
ZSBub3RpY2VkIHdpdGggdGhlIHBhdGNoIEkgZ2F2ZSB5b3UgcHJldmlvdXNseSBpcyB0aGF0DQo+
Pj4gdGhlIGNoZWNrIGZvciBhIHNpemUgY2hhbmdlIGluIG1vZGlmeV9iYXJzKCkgc2hvdWxkIGJl
IGRvbmUgYWhlYWQgb2YNCj4+PiBwY2lfY2hlY2tfYmFyKCksIG90aGVyd2lzZSB0aGUgY2hlY2sg
aXMgcG9zc2libHkgdXNpbmcgYW4gb3V0ZGF0ZWQNCj4+PiBzaXplLg0KPj4+DQo+Pj4gSSd2ZSBh
bHNvIGFkZGVkIGEgZGVidWcgbWVzc2FnZSB0byBub3RpZnkgd2hlbiBhIEJBUiByZWdpc3RlciBp
cw0KPj4+IHdyaXR0ZW4gYW5kIHJlcG9ydCB0aGUgbmV3IGFkZHJlc3MuICBUaGlzIGlzIGRvbmUg
dW5jb25kaXRpb25hbGx5LCBidXQNCj4+PiBpZiB5b3UgdGhpbmsgaXQncyB0b28gY2hhdHR5IHlv
dSBjYW4gbGltaXQgdG8gb25seSBwcmludGluZyBmb3IgdGhlDQo+Pj4gZGV2aWNlIHRoYXQgaGFz
IHRoZSBSZUJBUiBjYXBhYmlsaXR5Lg0KPj4gRXJyb3JzIGFyZSB0aGUgc2FtZS4NCj4+IEF0dGFj
aGVkIHRoZSBkbWVzZywgeGwgZG1lc2csIHBhdGNoIGFuZCBsc3BjaSBvdXRwdXQuDQo+PiBJIHdp
bGwgYWxzbyBjb250aW51ZSB0byBkZWJ1ZyB5b3VyIG1ldGhvZCBvbiBteSBzaWRlIHRvIHRyeSB0
byBnZXQgc29tZSBmaW5kaW5ncy4NCj4gDQo+IEhlbGxvLA0KPiANCj4gSSd2ZSBiZWVuIGxvb2tp
bmcgYXQgdGhlIG91dHB1dCwgYW5kIGl0IGFsbCBzZWVtcyBmaW5lLCBleGNlcHQgdGhlDQo+IDAz
OjAwLjAgZGV2aWNlIHRoYXQgYmVjb21lcyBicm9rZW4gYXQgc29tZSBwb2ludCwgbm90ZSB0aGUg
bHNwY2kNCj4gb3V0cHV0IGxpc3RzIFt2aXJ0dWFsXSBuZXh0IHRvIHRoZSByZXNvdXJjZSBzaXpl
cy4gIFRoaXMgbWVhbnMgcmVhZGluZw0KPiBmb3IgdGhlIHJlZ2lzdGVycyByZXR1cm5lZCAwLCBz
byB0aGUgcG9zaXRpb24gYW5kIHNpemVzIGFyZSBwcm92aWRlZA0KPiBmcm9tIHRoZSBpbnRlcm5h
bCBPUyBpbmZvcm1hdGlvbi4NCj4gDQo+IEknbSBhc3N1bWluZyB0aGUgcGF0Y2ggeW91IHNlbnQg
dG8gdGhlIGxpc3QgZG9lc24ndCBsZWFkIHRvIHN1Y2ggZXJyb3JzLA0KWWVzLCB0aGUgbWV0aG9k
IG9mIG15IHBhdGNoIGRvZXNuJ3QgbGVhZCB0byBhbnkgZXJyb3JzLg0KSSBhdHRhY2hlZCB0aGUg
ZG1lc2csIHhsIGRtZXNnIGFuZCBsc3BjaSBsb2dzIG9mIG15IG1ldGhvZC4NCg0KPiBpbiB3aGlj
aCBjYXNlIEkgY2FuIG9ubHkgZ3Vlc3MgdGhhdCBmZXRjaGluZyB0aGUgc2l6ZSBvZiB0aGUNCj4g
QkFScyBpbiBtb2RpZnlfYmFycygpIGNhdXNlcyBpc3N1ZXMgd2l0aCB0aGUgZGV2aWNlLg0KPiAN
Cj4gVG8gY29uZmlybSB0aGlzLCBjYW4geW91IHRyeSB0aGUgZm9sbG93aW5nIHBhdGNoIG9uIHRv
cCBvZiB5b3VyIG9yaWdpbmFsIGNoYW5nZT8gIA0KSSB0cmllZCBiZWxvdyBwYXRjaCB3aXRoIG15
IG9yaWdpbmFsIHBhdGNoLCBpdCBkaWRuJ3QgY2F1c2UgYW55IGVycm9ycy4NCkFuZCB0aGUgbHNw
Y2kgc2hvd2VkIHdpdGhvdXQgdGhlICJbdmlydHVhbF0iLg0KU28sIHVuZm9ydHVuYXRlbHksIGl0
IGlzIG5vdCByZWxhdGVkIHRvIHRoZSBmZXRjaGluZyBzaXplIG9mIEJhcnMgaW4gbW9kaWZ5X2Jh
cnMoKS4NCg0KPiBUaGlzIGFkZHMgYW4gZXh0cmEgcGNpX3NpemVfbWVtX2JhcigpIHdoZW4gdGhl
IEJBUnMNCj4gYXJlIHJlc2l6ZWQuICBGcm9tIG15IHJlYWRpbmcgb2YgdGhlIFBDSSBzcGVjaWZp
Y2F0aW9uIHNpemluZyB0aGUgQkFScw0KPiBhZnRlciBoYXZpbmcgY2hhbmdlZCB0aGUgc2l6ZSB0
aHJvdWdoIHRoZSBSZUJBUiBjYXBhYmlsaXR5IGlzIGFsbG93ZWQuDQo+IA0KPiBUaGFua3MsIFJv
Z2VyLg0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvcmViYXIuYyBiL3hlbi9k
cml2ZXJzL3ZwY2kvcmViYXIuYw0KPiBpbmRleCA4NGRiZDg0YjA3NDUuLmUzNzFiYTBlZjkyYSAx
MDA2NDQNCj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9yZWJhci5jDQo+ICsrKyBiL3hlbi9kcml2
ZXJzL3ZwY2kvcmViYXIuYw0KPiBAQCAtNDAsNiArNDAsMTUgQEAgc3RhdGljIHZvaWQgY2ZfY2hl
Y2sgcmViYXJfY3RybF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgUENJX1JFQkFSX0NUUkxfQkFSX1VOSVQ7DQo+ICANCj4gICAgICBw
Y2lfY29uZl93cml0ZTMyKHBkZXYtPnNiZGYsIHJlZywgdmFsKTsNCj4gKw0KPiArew0KPiArICAg
IHVpbnQ2NF90IGFkZHIsIHNpemU7DQo+ICsNCj4gKyAgICBwY2lfc2l6ZV9tZW1fYmFyKHBkZXYt
PnNiZGYsIFBDSV9CQVNFX0FERFJFU1NfMCArIGluZGV4ICogNCwNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICZhZGRyLCAmc2l6ZSwgMCk7DQo+ICsNCj4gKyAgICBBU1NFUlQoc2l6ZSA9PSBiYXJz
W2luZGV4XS5zaXplKTsNCj4gK30NCj4gIH0NCj4gIA0KPiAgc3RhdGljIGludCBjZl9jaGVjayBp
bml0X3JlYmFyKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KDQotLSANCkJlc3QgcmVnYXJkcywNCkpp
cWlhbiBDaGVuLg0K

--_003_BL1PR12MB5849894360DB8D96073AB21EE7272BL1PR12MB5849namp_
Content-Type: text/plain; name="Jiqian_rebar_dmesg_and_lspci.txt"
Content-Description: Jiqian_rebar_dmesg_and_lspci.txt
Content-Disposition: attachment; filename="Jiqian_rebar_dmesg_and_lspci.txt";
	size=100355; creation-date="Mon, 18 Nov 2024 05:48:46 GMT";
	modification-date="Mon, 18 Nov 2024 06:06:01 GMT"
Content-Transfer-Encoding: base64

WyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiA2LjEyLjAtcmM1LWc1YzY4MDhkMWE5ZGQgKGNq
cUBjanEtZGVza3RvcCkgKGdjYyAoVWJ1bnR1IDExLjQuMC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4w
LCBHTlUgbGQgKEdOVSBCaW51dGlscyBmb3IgVWJ1bnR1KSAyLjM4KSAjMiBTTVAgUFJFRU1QVF9E
WU5BTUlDIFR1ZSBOb3YgMTIgMTc6MjQ6MjQgQ1NUIDIwMjQKWyAgICAwLjAwMDAwMF0gQ29tbWFu
ZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVVSUQ9YTQ5ZmU0MjEtOTQwZC00MmJkLWIzNDMtNjY1
ZmVhMGQ4OGEyIHJvIHF1aWV0IHNwbGFzaCBpb21tdS5wYXNzdGhyb3VnaD0xClsgICAgMC4wMDAw
MDBdIEtFUk5FTCBzdXBwb3J0ZWQgY3B1czoKWyAgICAwLjAwMDAwMF0gICBJbnRlbCBHZW51aW5l
SW50ZWwKWyAgICAwLjAwMDAwMF0gICBBTUQgQXV0aGVudGljQU1EClsgICAgMC4wMDAwMDBdICAg
SHlnb24gSHlnb25HZW51aW5lClsgICAgMC4wMDAwMDBdICAgQ2VudGF1ciBDZW50YXVySGF1bHMK
WyAgICAwLjAwMDAwMF0gICB6aGFveGluICAgU2hhbmdoYWkgIApbICAgIDAuMDAwMDAwXSBbRmly
bXdhcmUgQnVnXTogVFNDIGRvZXNuJ3QgY291bnQgd2l0aCBQMCBmcmVxdWVuY3khClsgICAgMC4w
MDAwMDBdIEJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoKWyAgICAwLjAwMDAwMF0gQklP
Uy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwOWVmZmZdIHVzYWJs
ZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMDlmMDAwLTB4MDAw
MDAwMDAwMDBmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDAwMDEwMDAwMC0weDAwMDAwMDAwMDlhZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAw
XSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDA5YjAwMDAwLTB4MDAwMDAwMDAwOWRmZmZmZl0g
cmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAw
MC0weDAwMDAwMDAwMDllZmZmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt
ZW0gMHgwMDAwMDAwMDA5ZjAwMDAwLTB4MDAwMDAwMDAwOWYwZmZmZl0gQUNQSSBOVlMKWyAgICAw
LjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWYxMDAwMC0weDAwMDAwMDAwYmI0
NjVmZmZdIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGJi
NDY2MDAwLTB4MDAwMDAwMDBiYzU2NWZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1l
ODIwOiBbbWVtIDB4MDAwMDAwMDBiYzU2NjAwMC0weDAwMDAwMDAwYzg3N2VmZmZdIHVzYWJsZQpb
ICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGM4NzdmMDAwLTB4MDAwMDAw
MDBjYWY3ZWZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAw
MDAwMDBjYWY3ZjAwMC0weDAwMDAwMDAwY2NmN2VmZmZdIEFDUEkgTlZTClsgICAgMC4wMDAwMDBd
IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2NmN2YwMDAtMHgwMDAwMDAwMGNjZmZlZmZmXSBB
Q1BJIGRhdGEKWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjY2ZmZjAw
MC0weDAwMDAwMDAwY2NmZmZkZDddIHVzYWJsZQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFtt
ZW0gMHgwMDAwMDAwMGNjZmZmZGQ4LTB4MDAwMDAwMDBjY2ZmZmVlZl0gQUNQSSBkYXRhClsgICAg
MC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2QwMDAwMDAtMHgwMDAwMDAwMGNk
ZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAw
MGYwMDAwMDAwLTB4MDAwMDAwMDBmN2ZmZmZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAwMDAwMF0gQklP
Uy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZGUwMDAwMC0weDAwMDAwMDAwZmRlZmZmZmZdIHJlc2Vy
dmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwZmVjMDAwMDAtMHgw
MDAwMDAwMGZlYzAxZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0g
MHgwMDAwMDAwMGZlYzEwMDAwLTB4MDAwMDAwMDBmZWMxMGZmZl0gcmVzZXJ2ZWQKWyAgICAwLjAw
MDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZWMyMDAwMC0weDAwMDAwMDAwZmVjMjBm
ZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwZmVk
ODAwMDAtMHgwMDAwMDAwMGZlZDgxZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBCSU9TLWU4
MjA6IFttZW0gMHgwMDAwMDAwMGZlZGMwMDAwLTB4MDAwMDAwMDBmZWRkZmZmZl0gcmVzZXJ2ZWQK
WyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZWUwMDAwMC0weDAwMDAw
MDAwZmVlMDBmZmZdIHJlc2VydmVkClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAw
MDAwMDAwZmYwMDAwMDAtMHgwMDAwMDAwMGZmZjFmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAw
XSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMTAwMDAwMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0g
dXNhYmxlClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDA4MGYzNDAwMDAt
MHgwMDAwMDAwODJmZmZmZmZmXSByZXNlcnZlZApbICAgIDAuMDAwMDAwXSBOWCAoRXhlY3V0ZSBE
aXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmUKWyAgICAwLjAwMDAwMF0gQVBJQzogU3RhdGljIGNh
bGxzIGluaXRpYWxpemVkClsgICAgMC4wMDAwMDBdIGVmaTogRUZJIHYyLjcgYnkgSU5TWURFIENv
cnAuClsgICAgMC4wMDAwMDBdIGVmaTogQUNQST0weGNjZmZlMDAwIEFDUEkgMi4wPTB4Y2NmZmUw
MTQgVFBNRmluYWxMb2c9MHhjY2Y2MDAwMCBTTUJJT1M9MHhjOTY4YjAwMCBTTUJJT1MgMy4wPTB4
Yzk2ODkwMDAgRVNSVD0weGM5ODJhMjE4IChNRU1BVFRSPTB4YzMyYWYwMTggdW51c2FibGUpIE1P
S3Zhcj0weGM5ODUzMDAwIApbICAgIDAuMDAwMDAwXSBTTUJJT1MgMy4xLjEgcHJlc2VudC4KWyAg
ICAwLjAwMDAwMF0gRE1JOiBBTUQgQ2VsYWRvbi1STi9DZWxhZG9uLVJOLCBCSU9TIFRDUjAwODBC
IDAzLzEwLzIwMjMKWyAgICAwLjAwMDAwMF0gRE1JOiBNZW1vcnkgc2xvdHMgcG9wdWxhdGVkOiAy
LzIKWyAgICAwLjAwMDAwMF0gSHlwZXJ2aXNvciBkZXRlY3RlZDogWGVuIEhWTQpbICAgIDAuMDAw
MDAwXSBYZW4gdmVyc2lvbiA0LjIwLgpbICAgIDAuMDAwMDA3XSBIVk1PUF9wYWdldGFibGVfZHlp
bmcgbm90IHN1cHBvcnRlZApbICAgIDAuMDYwMzIxXSB0c2M6IEZhc3QgVFNDIGNhbGlicmF0aW9u
IGZhaWxlZApbICAgIDAuMDYwMzIyXSB0c2M6IERldGVjdGVkIDI5OTQuMzc2IE1IeiBwcm9jZXNz
b3IKWyAgICAwLjA2MDQwM10gZTgyMDogdXBkYXRlIFttZW0gMHgwMDAwMDAwMC0weDAwMDAwZmZm
XSB1c2FibGUgPT0+IHJlc2VydmVkClsgICAgMC4wNjA0MDZdIGU4MjA6IHJlbW92ZSBbbWVtIDB4
MDAwYTAwMDAtMHgwMDBmZmZmZl0gdXNhYmxlClsgICAgMC4wNjA0MTVdIGxhc3RfcGZuID0gMHg4
MGYzNDAgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAwLjA2MDUwNl0gTVRSUiBtYXA6
IDUgZW50cmllcyAoNCBmaXhlZCArIDEgdmFyaWFibGU7IG1heCAyMSksIGJ1aWx0IGZyb20gOSB2
YXJpYWJsZSBNVFJScwpbICAgIDAuMDYwNTA5XSB4ODYvUEFUOiBDb25maWd1cmF0aW9uIFswLTdd
OiBXQiAgV0MgIFVDLSBVQyAgV0IgIFdQICBVQy0gV1QgIApbICAgIDAuMDYxMzkxXSBDUFUgTVRS
UnMgYWxsIGJsYW5rIC0gdmlydHVhbGl6ZWQgc3lzdGVtLgpbICAgIDAuMDYxMzk3XSBsYXN0X3Bm
biA9IDB4Y2NmZmYgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAwLjA2NjgyM10gZXNy
dDogUmVzZXJ2aW5nIEVTUlQgc3BhY2UgZnJvbSAweDAwMDAwMDAwYzk4MmEyMTggdG8gMHgwMDAw
MDAwMGM5ODJhMjUwLgpbICAgIDAuMDY2ODMzXSBVc2luZyBHQiBwYWdlcyBmb3IgZGlyZWN0IG1h
cHBpbmcKWyAgICAwLjA2ODI4OF0gU2VjdXJlIGJvb3QgZGlzYWJsZWQKWyAgICAwLjA2ODI4OV0g
UkFNRElTSzogW21lbSAweDA0ODAwMDAwLTB4MDgxMGJmZmZdClsgICAgMC4wNjgyOTddIEFDUEk6
IEVhcmx5IHRhYmxlIGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBkaXNhYmxlZApbICAgIDAuMDY4MzAy
XSBBQ1BJOiBSU0RQIDB4MDAwMDAwMDBDQ0ZGRkREOCAwMDAwMjQgKHYwMiBBTUQgICApClsgICAg
MC4wNjgzMDZdIEFDUEk6IFhTRFQgMHgwMDAwMDAwMENDRkZGREZDIDAwMDBFQyAodjAxIEFNRCAg
ICBDZWxhZG9uICAwMDAwMDAwMiAgICAgIDAxMDAwMDEzKQpbICAgIDAuMDY4MzEzXSBBQ1BJOiBB
UElDIDB4MDAwMDAwMDBDQ0ZGRkVFOCAwMDAxMTggKHYwNCBBTUQgICAgQ2VsYWRvbiAgMDAwMDAw
MDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjA2ODMxOV0gQUNQSTogRkFDUCAweDAwMDAwMDAwQ0NG
RTYwMDAgMDAwMTE0ICh2MDYgQU1EICAgIENlbGFkb24gIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDAp
ClsgICAgMC4wNjgzOTNdIEFDUEk6IERTRFQgMHgwMDAwMDAwMENDRkQ0MDAwIDAwOTBCRiAodjAx
IEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDY4Mzk4XSBB
Q1BJOiBGQUNTIDB4MDAwMDAwMDBDQ0VGMTAwMCAwMDAwNDAKWyAgICAwLjA2ODQwM10gQUNQSTog
U1NEVCAweDAwMDAwMDAwQ0NGRjUwMDAgMDA3MjNDICh2MDIgQU1EICAgIENlbGFkb24gIDAwMDAw
MDAyIEFDUEkgMDAwNDAwMDApClsgICAgMC4wNjg0MDhdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMEND
RkYwMDAwIDAwMzc0QSAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAw
KQpbICAgIDAuMDY4NDEyXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQ0ZFRjAwMCAwMDAyMjggKHYw
MSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjA2ODQxN10g
QUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRUIwMDAgMDAwNDZEICh2MDEgQU1EICAgIENlbGFkb24g
IDAwMDAxMDAwIEFDUEkgMDAwNDAwMDApClsgICAgMC4wNjg0MjJdIEFDUEk6IE1DRkcgMHgwMDAw
MDAwMENDRkUzMDAwIDAwMDAzQyAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAw
MDQwMDAwKQpbICAgIDAuMDY4NDI2XSBBQ1BJOiBTTElDIDB4MDAwMDAwMDBDQ0ZFMjAwMCAwMDAx
NzYgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDIgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjA2
ODQzMV0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRkQwMDAgMDAwMDgwICh2MDEgQU1EICAgIENl
bGFkb24gIDAwMDAwMDAyIEFDUEkgMDAwNDAwMDApClsgICAgMC4wNjg0MzZdIEFDUEk6IFNTRFQg
MHgwMDAwMDAwMENDRkM1MDAwIDAwMDE2NCAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAwMTAwMCBB
Q1BJIDAwMDQwMDAwKQpbICAgIDAuMDY4NDQwXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQ0ZDMjAw
MCAwMDJCODAgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAg
ICAwLjA2ODQ0Nl0gQUNQSTogVkZDVCAweDAwMDAwMDAwQ0NGQTcwMDAgMDE4Q0EwICh2MDEgQU1E
ICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wNjg0NTBdIEFDUEk6
IFNTRFQgMHgwMDAwMDAwMENDRkQzMDAwIDAwMDEzOSAodjAxIEFNRCAgICBDZWxhZG9uICAwMDAw
MDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDY4NDU1XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBD
Q0ZFRDAwMCAwMDAyOEQgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAwMDA0MDAw
MCkKWyAgICAwLjA2ODQ2MF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGRDIwMDAgMDAwRDM3ICh2
MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4wNjg0NjVd
IEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRkQwMDAwIDAwMTBBQiAodjAxIEFNRCAgICBDZWxhZG9u
ICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDY4NDcwXSBBQ1BJOiBTU0RUIDB4MDAw
MDAwMDBDQ0ZDRjAwMCAwMDAxNzkgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEgQUNQSSAw
MDA0MDAwMCkKWyAgICAwLjA2ODQ3NF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGQ0QwMDAgMDAx
NTRGICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsgICAgMC4w
Njg0NzldIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRkNCMDAwIDAwMTBCMyAodjAxIEFNRCAgICBD
ZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDY4NDg0XSBBQ1BJOiBTU0RU
IDB4MDAwMDAwMDBDQ0ZDQTAwMCAwMDAxQzAgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAwMDAwMDEg
QUNQSSAwMDA0MDAwMCkKWyAgICAwLjA2ODQ4OV0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0NGQzYw
MDAgMDAzMEM4ICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAwMDApClsg
ICAgMC4wNjg0OTRdIEFDUEk6IEZQRFQgMHgwMDAwMDAwMENDRjk1MDAwIDAwMDA0NCAodjAxIEFN
RCAgICBDZWxhZG9uICAwMDAwMDAwMiBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDY4NDk5XSBBQ1BJ
OiBTU0RUIDB4MDAwMDAwMDBDQ0ZFMTAwMCAwMDAwN0QgKHYwMSBBTUQgICAgQ2VsYWRvbiAgMDAw
MDAwMDEgQUNQSSAwMDA0MDAwMCkKWyAgICAwLjA2ODUwM10gQUNQSTogU1NEVCAweDAwMDAwMDAw
Q0NGRTAwMDAgMDAwRjk2ICh2MDEgQU1EICAgIENlbGFkb24gIDAwMDAwMDAxIEFDUEkgMDAwNDAw
MDApClsgICAgMC4wNjg1MDhdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDRjkzMDAwIDAwMDUxNyAo
djAxIEFNRCAgICBDZWxhZG9uICAwMDAwMDAwMSBBQ1BJIDAwMDQwMDAwKQpbICAgIDAuMDY4NTEw
XSBBQ1BJOiBSZXNlcnZpbmcgQVBJQyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmZmZWU4LTB4
Y2NmZmZmZmZdClsgICAgMC4wNjg1MTFdIEFDUEk6IFJlc2VydmluZyBGQUNQIHRhYmxlIG1lbW9y
eSBhdCBbbWVtIDB4Y2NmZTYwMDAtMHhjY2ZlNjExM10KWyAgICAwLjA2ODUxMl0gQUNQSTogUmVz
ZXJ2aW5nIERTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkNDAwMC0weGNjZmRkMGJlXQpb
ICAgIDAuMDY4NTEzXSBBQ1BJOiBSZXNlcnZpbmcgRkFDUyB0YWJsZSBtZW1vcnkgYXQgW21lbSAw
eGNjZWYxMDAwLTB4Y2NlZjEwM2ZdClsgICAgMC4wNjg1MTRdIEFDUEk6IFJlc2VydmluZyBTU0RU
IHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZjUwMDAtMHhjY2ZmYzIzYl0KWyAgICAwLjA2ODUx
NF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZmMDAwMC0w
eGNjZmYzNzQ5XQpbICAgIDAuMDY4NTE1XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1v
cnkgYXQgW21lbSAweGNjZmVmMDAwLTB4Y2NmZWYyMjddClsgICAgMC4wNjg1MTZdIEFDUEk6IFJl
c2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZWIwMDAtMHhjY2ZlYjQ2Y10K
WyAgICAwLjA2ODUxN10gQUNQSTogUmVzZXJ2aW5nIE1DRkcgdGFibGUgbWVtb3J5IGF0IFttZW0g
MHhjY2ZlMzAwMC0weGNjZmUzMDNiXQpbICAgIDAuMDY4NTE4XSBBQ1BJOiBSZXNlcnZpbmcgU0xJ
QyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmUyMDAwLTB4Y2NmZTIxNzVdClsgICAgMC4wNjg1
MThdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZmQwMDAt
MHhjY2ZmZDA3Zl0KWyAgICAwLjA2ODUxOV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVt
b3J5IGF0IFttZW0gMHhjY2ZjNTAwMC0weGNjZmM1MTYzXQpbICAgIDAuMDY4NTIwXSBBQ1BJOiBS
ZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmMyMDAwLTB4Y2NmYzRiN2Zd
ClsgICAgMC4wNjg1MjFdIEFDUEk6IFJlc2VydmluZyBWRkNUIHRhYmxlIG1lbW9yeSBhdCBbbWVt
IDB4Y2NmYTcwMDAtMHhjY2ZiZmM5Zl0KWyAgICAwLjA2ODUyMV0gQUNQSTogUmVzZXJ2aW5nIFNT
RFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkMzAwMC0weGNjZmQzMTM4XQpbICAgIDAuMDY4
NTIyXSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmVkMDAw
LTB4Y2NmZWQyOGNdClsgICAgMC4wNjg1MjNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1l
bW9yeSBhdCBbbWVtIDB4Y2NmZDIwMDAtMHhjY2ZkMmQzNl0KWyAgICAwLjA2ODUyNF0gQUNQSTog
UmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZkMDAwMC0weGNjZmQxMGFh
XQpbICAgIDAuMDY4NTI1XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBtZW1vcnkgYXQgW21l
bSAweGNjZmNmMDAwLTB4Y2NmY2YxNzhdClsgICAgMC4wNjg1MjVdIEFDUEk6IFJlc2VydmluZyBT
U0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmY2QwMDAtMHhjY2ZjZTU0ZV0KWyAgICAwLjA2
ODUyNl0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjY2ZjYjAw
MC0weGNjZmNjMGIyXQpbICAgIDAuMDY4NTI3XSBBQ1BJOiBSZXNlcnZpbmcgU1NEVCB0YWJsZSBt
ZW1vcnkgYXQgW21lbSAweGNjZmNhMDAwLTB4Y2NmY2ExYmZdClsgICAgMC4wNjg1MjhdIEFDUEk6
IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmYzYwMDAtMHhjY2ZjOTBj
N10KWyAgICAwLjA2ODUyOF0gQUNQSTogUmVzZXJ2aW5nIEZQRFQgdGFibGUgbWVtb3J5IGF0IFtt
ZW0gMHhjY2Y5NTAwMC0weGNjZjk1MDQzXQpbICAgIDAuMDY4NTI5XSBBQ1BJOiBSZXNlcnZpbmcg
U1NEVCB0YWJsZSBtZW1vcnkgYXQgW21lbSAweGNjZmUxMDAwLTB4Y2NmZTEwN2NdClsgICAgMC4w
Njg1MzBdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2NmZTAw
MDAtMHhjY2ZlMGY5NV0KWyAgICAwLjA2ODUzMV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHhjY2Y5MzAwMC0weGNjZjkzNTE2XQpbICAgIDAuMDY4Njk4XSBObyBO
VU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKWyAgICAwLjA2ODY5OV0gRmFraW5nIGEgbm9kZSBhdCBb
bWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZdClsgICAgMC4wNjg3MDdd
IE5PREVfREFUQSgwKSBhbGxvY2F0ZWQgW21lbSAweDFiOGNjNWEwMC0weDFiOGNlZmZmZl0KWyAg
ICAwLjA2ODkzNV0gWm9uZSByYW5nZXM6ClsgICAgMC4wNjg5MzZdICAgRE1BICAgICAgW21lbSAw
eDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAwZmZmZmZmXQpbICAgIDAuMDY4OTM3XSAgIERN
QTMyICAgIFttZW0gMHgwMDAwMDAwMDAxMDAwMDAwLTB4MDAwMDAwMDBmZmZmZmZmZl0KWyAgICAw
LjA2ODkzOV0gICBOb3JtYWwgICBbbWVtIDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDA4MGYz
M2ZmZmZdClsgICAgMC4wNjg5NDBdICAgRGV2aWNlICAgZW1wdHkKWyAgICAwLjA2ODk0MV0gTW92
YWJsZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUKWyAgICAwLjA2ODk0NF0gRWFybHkgbWVtb3J5
IG5vZGUgcmFuZ2VzClsgICAgMC4wNjg5NDVdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDAw
MDAxMDAwLTB4MDAwMDAwMDAwMDA5ZWZmZl0KWyAgICAwLjA2ODk0Nl0gICBub2RlICAgMDogW21l
bSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAwMDA5YWZmZmZmXQpbICAgIDAuMDY4OTQ3XSAg
IG5vZGUgICAwOiBbbWVtIDB4MDAwMDAwMDAwOWUwMDAwMC0weDAwMDAwMDAwMDllZmZmZmZdClsg
ICAgMC4wNjg5NDhdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDA5ZjEwMDAwLTB4MDAwMDAw
MDBiYjQ2NWZmZl0KWyAgICAwLjA2ODk0OV0gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwYmM1
NjYwMDAtMHgwMDAwMDAwMGM4NzdlZmZmXQpbICAgIDAuMDY4OTUwXSAgIG5vZGUgICAwOiBbbWVt
IDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZdClsgICAgMC4wNjg5NTNdIElu
aXRtZW0gc2V0dXAgbm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDgwZjMz
ZmZmZl0KWyAgICAwLjA2ODk1OV0gT24gbm9kZSAwLCB6b25lIERNQTogMSBwYWdlcyBpbiB1bmF2
YWlsYWJsZSByYW5nZXMKWyAgICAwLjA2ODk5NV0gT24gbm9kZSAwLCB6b25lIERNQTogOTcgcGFn
ZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzClsgICAgMC4wNjkzMTRdIE9uIG5vZGUgMCwgem9uZSBE
TUEzMjogNzY4IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMDc3MDE3XSBPbiBu
b2RlIDAsIHpvbmUgRE1BMzI6IDE2IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAu
MDc3NjE3XSBPbiBub2RlIDAsIHpvbmUgRE1BMzI6IDQzNTIgcGFnZXMgaW4gdW5hdmFpbGFibGUg
cmFuZ2VzClsgICAgMC4xNTQyOTFdIE9uIG5vZGUgMCwgem9uZSBOb3JtYWw6IDMwODQ5IHBhZ2Vz
IGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMTU0MzQ2XSBPbiBub2RlIDAsIHpvbmUgTm9y
bWFsOiAzMjY0IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcwpbICAgIDAuMTU1MDcwXSBBQ1BJ
OiBQTS1UaW1lciBJTyBQb3J0OiAweDQwOApbICAgIDAuMTU1MTYzXSBJT0FQSUNbMF06IGFwaWNf
aWQgMzMsIHZlcnNpb24gMTcsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMKWyAgICAwLjE1
NTIwOV0gSU9BUElDWzFdOiBhcGljX2lkIDM0LCB2ZXJzaW9uIDE3LCBhZGRyZXNzIDB4ZmVjMDEw
MDAsIEdTSSAyNC01NQpbICAgIDAuMTU1MjEyXSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVz
X2lycSAwIGdsb2JhbF9pcnEgMiBkZmwgZGZsKQpbICAgIDAuMTU1MjE1XSBBQ1BJOiBJTlRfU1JD
X09WUiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpClsgICAgMC4xNTUy
MTldIEFDUEk6IFVzaW5nIEFDUEkgKE1BRFQpIGZvciBTTVAgY29uZmlndXJhdGlvbiBpbmZvcm1h
dGlvbgpbICAgIDAuMTU1MjI3XSBDUFUgdG9wbzogTWF4LiBsb2dpY2FsIHBhY2thZ2VzOiAgIDEK
WyAgICAwLjE1NTIyOF0gQ1BVIHRvcG86IE1heC4gbG9naWNhbCBkaWVzOiAgICAgICAxClsgICAg
MC4xNTUyMjhdIENQVSB0b3BvOiBNYXguIGRpZXMgcGVyIHBhY2thZ2U6ICAgMQpbICAgIDAuMTU1
MjMzXSBDUFUgdG9wbzogTWF4LiB0aHJlYWRzIHBlciBjb3JlOiAgIDEKWyAgICAwLjE1NTIzNF0g
Q1BVIHRvcG86IE51bS4gY29yZXMgcGVyIHBhY2thZ2U6ICAgIDEyClsgICAgMC4xNTUyMzVdIENQ
VSB0b3BvOiBOdW0uIHRocmVhZHMgcGVyIHBhY2thZ2U6ICAxMgpbICAgIDAuMTU1MjM1XSBDUFUg
dG9wbzogQWxsb3dpbmcgMTIgcHJlc2VudCBDUFVzIHBsdXMgMCBob3RwbHVnIENQVXMKWyAgICAw
LjE1NTI3Ml0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0g
MHgwMDAwMDAwMC0weDAwMDAwZmZmXQpbICAgIDAuMTU1Mjc1XSBQTTogaGliZXJuYXRpb246IFJl
Z2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDAwMDlmMDAwLTB4MDAwZmZmZmZdClsgICAg
MC4xNTUyNzddIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVt
IDB4MDliMDAwMDAtMHgwOWRmZmZmZl0KWyAgICAwLjE1NTI3OV0gUE06IGhpYmVybmF0aW9uOiBS
ZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHgwOWYwMDAwMC0weDA5ZjBmZmZmXQpbICAg
IDAuMTU1MjgwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21l
bSAweGJiNDY2MDAwLTB4YmM1NjVmZmZdClsgICAgMC4xNTUyODJdIFBNOiBoaWJlcm5hdGlvbjog
UmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Yzg3N2YwMDAtMHhjYWY3ZWZmZl0KWyAg
ICAwLjE1NTI4M10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFtt
ZW0gMHhjYWY3ZjAwMC0weGNjZjdlZmZmXQpbICAgIDAuMTU1Mjg0XSBQTTogaGliZXJuYXRpb246
IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjZjdmMDAwLTB4Y2NmZmVmZmZdClsg
ICAgMC4xNTUyODRdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBb
bWVtIDB4Y2NmZmYwMDAtMHhjY2ZmZmZmZl0KWyAgICAwLjE1NTI4Nl0gUE06IGhpYmVybmF0aW9u
OiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhjY2ZmZjAwMC0weGNjZmZmZmZmXQpb
ICAgIDAuMTU1Mjg3XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTog
W21lbSAweGNkMDAwMDAwLTB4Y2RmZmZmZmZdClsgICAgMC4xNTUyODhdIFBNOiBoaWJlcm5hdGlv
bjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Y2UwMDAwMDAtMHhlZmZmZmZmZl0K
WyAgICAwLjE1NTI4OF0gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6
IFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXQpbICAgIDAuMTU1Mjg5XSBQTTogaGliZXJuYXRp
b246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGY4MDAwMDAwLTB4ZmRkZmZmZmZd
ClsgICAgMC4xNTUyOTBdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5
OiBbbWVtIDB4ZmRlMDAwMDAtMHhmZGVmZmZmZl0KWyAgICAwLjE1NTI5MV0gUE06IGhpYmVybmF0
aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZGYwMDAwMC0weGZlYmZmZmZm
XQpbICAgIDAuMTU1MjkxXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9y
eTogW21lbSAweGZlYzAwMDAwLTB4ZmVjMDFmZmZdClsgICAgMC4xNTUyOTJdIFBNOiBoaWJlcm5h
dGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmVjMDIwMDAtMHhmZWMwZmZm
Zl0KWyAgICAwLjE1NTI5M10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1v
cnk6IFttZW0gMHhmZWMxMDAwMC0weGZlYzEwZmZmXQpbICAgIDAuMTU1MjkzXSBQTTogaGliZXJu
YXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZlYzExMDAwLTB4ZmVjMWZm
ZmZdClsgICAgMC4xNTUyOTRdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVt
b3J5OiBbbWVtIDB4ZmVjMjAwMDAtMHhmZWMyMGZmZl0KWyAgICAwLjE1NTI5NV0gUE06IGhpYmVy
bmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWMyMTAwMC0weGZlZDdm
ZmZmXQpbICAgIDAuMTU1Mjk1XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1l
bW9yeTogW21lbSAweGZlZDgwMDAwLTB4ZmVkODFmZmZdClsgICAgMC4xNTUyOTZdIFBNOiBoaWJl
cm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmVkODIwMDAtMHhmZWRi
ZmZmZl0KWyAgICAwLjE1NTI5N10gUE06IGhpYmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBt
ZW1vcnk6IFttZW0gMHhmZWRjMDAwMC0weGZlZGRmZmZmXQpbICAgIDAuMTU1Mjk4XSBQTTogaGli
ZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZlZGUwMDAwLTB4ZmVk
ZmZmZmZdClsgICAgMC4xNTUyOThdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUg
bWVtb3J5OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0KWyAgICAwLjE1NTI5OV0gUE06IGhp
YmVybmF0aW9uOiBSZWdpc3RlcmVkIG5vc2F2ZSBtZW1vcnk6IFttZW0gMHhmZWUwMTAwMC0weGZl
ZmZmZmZmXQpbICAgIDAuMTU1MzAwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZl
IG1lbW9yeTogW21lbSAweGZmMDAwMDAwLTB4ZmZmMWZmZmZdClsgICAgMC4xNTUzMDBdIFBNOiBo
aWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmZmMjAwMDAtMHhm
ZmZmZmZmZl0KWyAgICAwLjE1NTMwM10gW21lbSAweGNlMDAwMDAwLTB4ZWZmZmZmZmZdIGF2YWls
YWJsZSBmb3IgUENJIGRldmljZXMKWyAgICAwLjE1NTMxNV0gQm9vdGluZyBrZXJuZWwgb24gWGVu
IFBWSApbICAgIDAuMTU1MzE2XSBYZW4gdmVyc2lvbjogNC4yMC11bnN0YWJsZQpbICAgIDAuMTU1
MzIwXSBjbG9ja3NvdXJjZTogcmVmaW5lZC1qaWZmaWVzOiBtYXNrOiAweGZmZmZmZmZmIG1heF9j
eWNsZXM6IDB4ZmZmZmZmZmYsIG1heF9pZGxlX25zOiA3NjQ1NTE5NjAwMjExNTY4IG5zClsgICAg
MC4xNTUzNDBdIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo4MTkyIG5yX2NwdW1hc2tfYml0czoxMiBu
cl9jcHVfaWRzOjEyIG5yX25vZGVfaWRzOjEKWyAgICAwLjE1NjczOF0gcGVyY3B1OiBFbWJlZGRl
ZCA2NiBwYWdlcy9jcHUgczIzMzQ3MiByODE5MiBkMjg2NzIgdTUyNDI4OApbICAgIDAuMTU2NzU1
XSBwY3B1LWFsbG9jOiBzMjMzNDcyIHI4MTkyIGQyODY3MiB1NTI0Mjg4IGFsbG9jPTEqMjA5NzE1
MgpbICAgIDAuMTU2NzU4XSBwY3B1LWFsbG9jOiBbMF0gMDAgMDEgMDIgMDMgWzBdIDA0IDA1IDA2
IDA3IApbICAgIDAuMTU2NzYzXSBwY3B1LWFsbG9jOiBbMF0gMDggMDkgMTAgMTEgClsgICAgMC4x
NTY4MzJdIHhlbjogUFYgc3BpbmxvY2tzIGVuYWJsZWQKWyAgICAwLjE1NjgzN10gUFYgcXNwaW5s
b2NrIGhhc2ggdGFibGUgZW50cmllczogMjU2IChvcmRlcjogMCwgNDA5NiBieXRlcywgbGluZWFy
KQpbICAgIDAuMTU2ODM5XSBLZXJuZWwgY29tbWFuZCBsaW5lOiBwbGFjZWhvbGRlciByb290PVVV
SUQ9YTQ5ZmU0MjEtOTQwZC00MmJkLWIzNDMtNjY1ZmVhMGQ4OGEyIHJvIHF1aWV0IHNwbGFzaCBp
b21tdS5wYXNzdGhyb3VnaD0xClsgICAgMC4xNTY5NDRdIFVua25vd24ga2VybmVsIGNvbW1hbmQg
bGluZSBwYXJhbWV0ZXJzICJwbGFjZWhvbGRlciBzcGxhc2giLCB3aWxsIGJlIHBhc3NlZCB0byB1
c2VyIHNwYWNlLgpbICAgIDAuMTU2OTY5XSByYW5kb206IGNybmcgaW5pdCBkb25lClsgICAgMC4x
NTgzMDFdIERlbnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDEwNDg1NzYgKG9yZGVyOiAx
MSwgODM4ODYwOCBieXRlcywgbGluZWFyKQpbICAgIDAuMTU4OTgxXSBJbm9kZS1jYWNoZSBoYXNo
IHRhYmxlIGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDEwLCA0MTk0MzA0IGJ5dGVzLCBsaW5lYXIp
ClsgICAgMC4xNTkwODddIEZhbGxiYWNrIG9yZGVyIGZvciBOb2RlIDA6IDAgClsgICAgMC4xNTkw
OTRdIEJ1aWx0IDEgem9uZWxpc3RzLCBtb2JpbGl0eSBncm91cGluZyBvbi4gIFRvdGFsIHBhZ2Vz
OiA4MjE4MTg5ClsgICAgMC4xNTkwOTZdIFBvbGljeSB6b25lOiBOb3JtYWwKWyAgICAwLjE1OTEw
OV0gbWVtIGF1dG8taW5pdDogc3RhY2s6b2ZmLCBoZWFwIGFsbG9jOm9uLCBoZWFwIGZyZWU6b2Zm
ClsgICAgMC4xNTkxMTFdIHN0YWNrZGVwb3Q6IGFsbG9jYXRpbmcgaGFzaCB0YWJsZSB2aWEgYWxs
b2NfbGFyZ2Vfc3lzdGVtX2hhc2gKWyAgICAwLjE1OTExNV0gc3RhY2tkZXBvdCBoYXNoIHRhYmxl
IGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDExLCA4Mzg4NjA4IGJ5dGVzLCBsaW5lYXIpClsgICAg
MC4xNjA0NDVdIHNvZnR3YXJlIElPIFRMQjogYXJlYSBudW0gMTYuClsgICAgMC4zNDE3NjZdIFNM
VUI6IEhXYWxpZ249NjQsIE9yZGVyPTAtMywgTWluT2JqZWN0cz0wLCBDUFVzPTEyLCBOb2Rlcz0x
ClsgICAgMC4zNDE4OTRdIGZ0cmFjZTogYWxsb2NhdGluZyA1Mjc5MSBlbnRyaWVzIGluIDIwNyBw
YWdlcwpbICAgIDAuMzU1OTQ5XSBmdHJhY2U6IGFsbG9jYXRlZCAyMDcgcGFnZXMgd2l0aCA2IGdy
b3VwcwpbICAgIDAuMzU3MjkwXSBEeW5hbWljIFByZWVtcHQ6IHZvbHVudGFyeQpbICAgIDAuMzU3
NzQ4XSByY3U6IFByZWVtcHRpYmxlIGhpZXJhcmNoaWNhbCBSQ1UgaW1wbGVtZW50YXRpb24uClsg
ICAgMC4zNTc3NDldIHJjdTogCVJDVSByZXN0cmljdGluZyBDUFVzIGZyb20gTlJfQ1BVUz04MTky
IHRvIG5yX2NwdV9pZHM9MTIuClsgICAgMC4zNTc3NTBdIAlUcmFtcG9saW5lIHZhcmlhbnQgb2Yg
VGFza3MgUkNVIGVuYWJsZWQuClsgICAgMC4zNTc3NTFdIAlSdWRlIHZhcmlhbnQgb2YgVGFza3Mg
UkNVIGVuYWJsZWQuClsgICAgMC4zNTc3NTJdIAlUcmFjaW5nIHZhcmlhbnQgb2YgVGFza3MgUkNV
IGVuYWJsZWQuClsgICAgMC4zNTc3NTNdIHJjdTogUkNVIGNhbGN1bGF0ZWQgdmFsdWUgb2Ygc2No
ZWR1bGVyLWVubGlzdG1lbnQgZGVsYXkgaXMgMjUgamlmZmllcy4KWyAgICAwLjM1Nzc1M10gcmN1
OiBBZGp1c3RpbmcgZ2VvbWV0cnkgZm9yIHJjdV9mYW5vdXRfbGVhZj0xNiwgbnJfY3B1X2lkcz0x
MgpbICAgIDAuMzU3Nzk5XSBSQ1UgVGFza3M6IFNldHRpbmcgc2hpZnQgdG8gNCBhbmQgbGltIHRv
IDEgcmN1X3Rhc2tfY2JfYWRqdXN0PTEgcmN1X3Rhc2tfY3B1X2lkcz0xMi4KWyAgICAwLjM1Nzgw
M10gUkNVIFRhc2tzIFJ1ZGU6IFNldHRpbmcgc2hpZnQgdG8gNCBhbmQgbGltIHRvIDEgcmN1X3Rh
c2tfY2JfYWRqdXN0PTEgcmN1X3Rhc2tfY3B1X2lkcz0xMi4KWyAgICAwLjM1NzgwOF0gUkNVIFRh
c2tzIFRyYWNlOiBTZXR0aW5nIHNoaWZ0IHRvIDQgYW5kIGxpbSB0byAxIHJjdV90YXNrX2NiX2Fk
anVzdD0xIHJjdV90YXNrX2NwdV9pZHM9MTIuClsgICAgMC4zNjc4MTFdIFVzaW5nIE5VTEwgbGVn
YWN5IFBJQwpbICAgIDAuMzY3ODEyXSBOUl9JUlFTOiA1MjQ1NDQsIG5yX2lycXM6IDEwNjQsIHBy
ZWFsbG9jYXRlZCBpcnFzOiAwClsgICAgMC4zNjc4OTldIHhlbjpldmVudHM6IFVzaW5nIEZJRk8t
YmFzZWQgQUJJClsgICAgMC4zNjc5MjldIHhlbjpldmVudHM6IFhlbiBIVk0gY2FsbGJhY2sgdmVj
dG9yIGZvciBldmVudCBkZWxpdmVyeSBpcyBlbmFibGVkClsgICAgMC4zNjc5OTVdIHJjdTogc3Jj
dV9pbml0OiBTZXR0aW5nIHNyY3Vfc3RydWN0IHNpemVzIGJhc2VkIG9uIGNvbnRlbnRpb24uClsg
ICAgMC4zNjgxMzNdIENvbnNvbGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MjUKWyAgICAwLjM2
ODEzOF0gcHJpbnRrOiBsZWdhY3kgY29uc29sZSBbdHR5MF0gZW5hYmxlZApbICAgIDAuMzY4MTY1
XSBwcmludGs6IGxlZ2FjeSBjb25zb2xlIFtodmMwXSBlbmFibGVkClsgICAgMC4zNjgyNTVdIEFD
UEk6IENvcmUgcmV2aXNpb24gMjAyNDA4MjcKWyAgICAwLjQxODE5MV0gRmFpbGVkIHRvIHJlZ2lz
dGVyIGxlZ2FjeSB0aW1lciBpbnRlcnJ1cHQKWyAgICAwLjQxODE5M10gQVBJQzogU3dpdGNoIHRv
IHN5bW1ldHJpYyBJL08gbW9kZSBzZXR1cApbICAgIDAuNDE5MTkxXSB4MmFwaWMgZW5hYmxlZApb
ICAgIDAuNDIwMzYzXSBBUElDOiBTd2l0Y2hlZCBBUElDIHJvdXRpbmcgdG86IHBoeXNpY2FsIHgy
YXBpYwpbICAgIDAuNDIwNzE1XSBjbG9ja3NvdXJjZTogdHNjLWVhcmx5OiBtYXNrOiAweGZmZmZm
ZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgyYjI5ODRkMDYwOSwgbWF4X2lkbGVfbnM6IDQ0MDc5
NTM1OTgwNSBucwpbICAgIDAuNDIwNzI0XSBDYWxpYnJhdGluZyBkZWxheSBsb29wIChza2lwcGVk
KSwgdmFsdWUgY2FsY3VsYXRlZCB1c2luZyB0aW1lciBmcmVxdWVuY3kuLiA1OTg4Ljc1IEJvZ29N
SVBTIChscGo9MTE5Nzc1MDQpClsgICAgMC40MjA4NzFdIHg4Ni9jcHU6IFVzZXIgTW9kZSBJbnN0
cnVjdGlvbiBQcmV2ZW50aW9uIChVTUlQKSBhY3RpdmF0ZWQKWyAgICAwLjQyMDk0OF0gTGFzdCBs
ZXZlbCBpVExCIGVudHJpZXM6IDRLQiAxMDI0LCAyTUIgMTAyNCwgNE1CIDUxMgpbICAgIDAuNDIw
OTUwXSBMYXN0IGxldmVsIGRUTEIgZW50cmllczogNEtCIDIwNDgsIDJNQiAyMDQ4LCA0TUIgMTAy
NCwgMUdCIDAKWyAgICAwLjQyMDk1Nl0gU3BlY3RyZSBWMSA6IE1pdGlnYXRpb246IHVzZXJjb3B5
L3N3YXBncyBiYXJyaWVycyBhbmQgX191c2VyIHBvaW50ZXIgc2FuaXRpemF0aW9uClsgICAgMC40
MjA5NTldIFNwZWN0cmUgVjIgOiBNaXRpZ2F0aW9uOiBSZXRwb2xpbmVzClsgICAgMC40MjA5NjBd
IFNwZWN0cmUgVjIgOiBTcGVjdHJlIHYyIC8gU3BlY3RyZVJTQiBtaXRpZ2F0aW9uOiBGaWxsaW5n
IFJTQiBvbiBjb250ZXh0IHN3aXRjaApbICAgIDAuNDIwOTYxXSBTcGVjdHJlIFYyIDogU3BlY3Ry
ZSB2MiAvIFNwZWN0cmVSU0IgOiBGaWxsaW5nIFJTQiBvbiBWTUVYSVQKWyAgICAwLjQyMDk2Ml0g
U3BlY3RyZSBWMiA6IEVuYWJsaW5nIFNwZWN1bGF0aW9uIEJhcnJpZXIgZm9yIGZpcm13YXJlIGNh
bGxzClsgICAgMC40MjA5NjNdIFJFVEJsZWVkOiBNaXRpZ2F0aW9uOiB1bnRyYWluZWQgcmV0dXJu
IHRodW5rClsgICAgMC40MjA5NjZdIFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBj
b25kaXRpb25hbCBJbmRpcmVjdCBCcmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyClsgICAgMC40MjA5
NjldIFNwZWN1bGF0aXZlIFN0b3JlIEJ5cGFzczogTWl0aWdhdGlvbjogU3BlY3VsYXRpdmUgU3Rv
cmUgQnlwYXNzIGRpc2FibGVkIHZpYSBwcmN0bApbICAgIDAuNDIwOTkzXSB4ODYvZnB1OiBTdXBw
b3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDE6ICd4ODcgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJz
JwpbICAgIDAuNDIwOTk2XSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDI6
ICdTU0UgcmVnaXN0ZXJzJwpbICAgIDAuNDIwOTk3XSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZF
IGZlYXR1cmUgMHgwMDQ6ICdBVlggcmVnaXN0ZXJzJwpbICAgIDAuNDIwOTk4XSB4ODYvZnB1OiB4
c3RhdGVfb2Zmc2V0WzJdOiAgNTc2LCB4c3RhdGVfc2l6ZXNbMl06ICAyNTYKWyAgICAwLjQyMTAw
MF0geDg2L2ZwdTogRW5hYmxlZCB4c3RhdGUgZmVhdHVyZXMgMHg3LCBjb250ZXh0IHNpemUgaXMg
ODMyIGJ5dGVzLCB1c2luZyAnY29tcGFjdGVkJyBmb3JtYXQuClsgICAgMC40MjQ3MjBdIEZyZWVp
bmcgU01QIGFsdGVybmF0aXZlcyBtZW1vcnk6IDQ0SwpbICAgIDAuNDI0NzIwXSBwaWRfbWF4OiBk
ZWZhdWx0OiAzMjc2OCBtaW5pbXVtOiAzMDEKWyAgICAwLjQyNDcyMF0gTFNNOiBpbml0aWFsaXpp
bmcgbHNtPWxvY2tkb3duLGNhcGFiaWxpdHkseWFtYSxhcHBhcm1vcixpbWEsZXZtClsgICAgMC40
MjQ3MjBdIFlhbWE6IGJlY29taW5nIG1pbmRmdWwuClsgICAgMC40MjQ3MjBdIEFwcEFybW9yOiBB
cHBBcm1vciBpbml0aWFsaXplZApbICAgIDAuNDI0NzIwXSBNb3VudC1jYWNoZSBoYXNoIHRhYmxl
IGVudHJpZXM6IDE2Mzg0IChvcmRlcjogNSwgMTMxMDcyIGJ5dGVzLCBsaW5lYXIpClsgICAgMC40
MjQ3MjBdIE1vdW50cG9pbnQtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAxNjM4NCAob3JkZXI6
IDUsIDEzMTA3MiBieXRlcywgbGluZWFyKQpbICAgIDAuNDI0NzIwXSBjbG9ja3NvdXJjZTogeGVu
OiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHgxY2Q0MmU0ZGZmYiwgbWF4
X2lkbGVfbnM6IDg4MTU5MDU5MTQ4MyBucwpbICAgIDAuNDI0NzIwXSBYZW46IHVzaW5nIHZjcHVv
cCB0aW1lciBpbnRlcmZhY2UKWyAgICAwLjQyNDcyMF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9y
IENQVSAwClsgICAgMC40MjQ3MjBdIHNtcGJvb3Q6IENQVTA6IEFNRCBFbmcgU2FtcGxlOiAxMDAt
MDAwMDAxMDA3LTQwXzMxLzMwX1kgKGZhbWlseTogMHgxNywgbW9kZWw6IDB4NjAsIHN0ZXBwaW5n
OiAweDEpClsgICAgMC40MjQ3MjBdIGNwdSAwIHNwaW5sb2NrIGV2ZW50IGlycSAyOApbICAgIDAu
NDI0NzIwXSBQZXJmb3JtYW5jZSBFdmVudHM6IFBNVSBub3QgYXZhaWxhYmxlIGR1ZSB0byB2aXJ0
dWFsaXphdGlvbiwgdXNpbmcgc29mdHdhcmUgZXZlbnRzIG9ubHkuClsgICAgMC40MjQ3MjBdIHNp
Z25hbDogbWF4IHNpZ2ZyYW1lIHNpemU6IDE3NzYKWyAgICAwLjQyNDcyMF0gcmN1OiBIaWVyYXJj
aGljYWwgU1JDVSBpbXBsZW1lbnRhdGlvbi4KWyAgICAwLjQyNDcyMF0gcmN1OiAJTWF4IHBoYXNl
IG5vLWRlbGF5IGluc3RhbmNlcyBpcyAxMDAwLgpbICAgIDAuNDI0NzIwXSBUaW1lciBtaWdyYXRp
b246IDIgaGllcmFyY2h5IGxldmVsczsgOCBjaGlsZHJlbiBwZXIgZ3JvdXA7IDIgY3Jvc3Nub2Rl
IGxldmVsClsgICAgMC41MjUwMjFdIE5NSSB3YXRjaGRvZzogUGVyZiBOTUkgd2F0Y2hkb2cgcGVy
bWFuZW50bHkgZGlzYWJsZWQKWyAgICAwLjUyNTQ1MV0gc21wOiBCcmluZ2luZyB1cCBzZWNvbmRh
cnkgQ1BVcyAuLi4KWyAgICAwLjUzNjg5Nl0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAx
ClsgICAgMC41MzcyODNdIHNtcGJvb3Q6IHg4NjogQm9vdGluZyBTTVAgY29uZmlndXJhdGlvbjoK
WyAgICAwLjUzNzI4Nl0gLi4uLiBub2RlICAjMCwgQ1BVczogICAgICAgICMxClsgICAgMC41Mzg4
NTZdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMgpbICAgIDAuNTM5MTMyXSAgICMyClsg
ICAgMC41NDAxNDJdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMwpbICAgIDAuNTQwNDE4
XSAgICMzClsgICAgMC41NDEzOTFdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgNApbICAg
IDAuNTQxNjI1XSAgICM0ClsgICAgMC41NDI1MDNdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBD
UFUgNQpbICAgIDAuNTQyNzc3XSAgICM1ClsgICAgMC41NDM1ODJdIGluc3RhbGxpbmcgWGVuIHRp
bWVyIGZvciBDUFUgNgpbICAgIDAuNTQzODM5XSAgICM2ClsgICAgMC41NDQ2NzldIGluc3RhbGxp
bmcgWGVuIHRpbWVyIGZvciBDUFUgNwpbICAgIDAuNTQ0OTEyXSAgICM3ClsgICAgMC41NTY4MzZd
IGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgOApbICAgIDAuNTU3MDY0XSAgICM4ClsgICAg
MC41NTc4OTJdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgOQpbICAgIDAuNTU4MTI1XSAg
ICM5ClsgICAgMC41NTg5MjFdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMTAKWyAgICAw
LjU1OTE3N10gICMxMApbICAgIDAuNTU5OTY1XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BV
IDExClsgICAgMC41NjAyMDZdICAjMTEKWyAgICAwLjU2MjcyN10gY3B1IDEgc3BpbmxvY2sgZXZl
bnQgaXJxIDczClsgICAgMC41NjQ5NDFdIGNwdSAyIHNwaW5sb2NrIGV2ZW50IGlycSA3NApbICAg
IDAuNTY2NzMyXSBjcHUgMyBzcGlubG9jayBldmVudCBpcnEgNzUKWyAgICAwLjU2ODg1Ml0gY3B1
IDQgc3BpbmxvY2sgZXZlbnQgaXJxIDc2ClsgICAgMC41NzA3MzFdIGNwdSA1IHNwaW5sb2NrIGV2
ZW50IGlycSA3NwpbICAgIDAuNTcyOTA2XSBjcHUgNiBzcGlubG9jayBldmVudCBpcnEgNzgKWyAg
ICAwLjU3NDcyN10gY3B1IDcgc3BpbmxvY2sgZXZlbnQgaXJxIDc5ClsgICAgMC41NzY5MDNdIGNw
dSA4IHNwaW5sb2NrIGV2ZW50IGlycSA4MApbICAgIDAuNTc4NzI2XSBjcHUgOSBzcGlubG9jayBl
dmVudCBpcnEgODEKWyAgICAwLjU4MDg4Ml0gY3B1IDEwIHNwaW5sb2NrIGV2ZW50IGlycSA4Mgpb
ICAgIDAuNTgyNzI1XSBjcHUgMTEgc3BpbmxvY2sgZXZlbnQgaXJxIDgzClsgICAgMC41ODI3MjVd
IHNtcDogQnJvdWdodCB1cCAxIG5vZGUsIDEyIENQVXMKWyAgICAwLjU4MjcyNV0gc21wYm9vdDog
VG90YWwgb2YgMTIgcHJvY2Vzc29ycyBhY3RpdmF0ZWQgKDcxODY1LjAyIEJvZ29NSVBTKQpbICAg
IDAuNTg1NDE5XSBNZW1vcnk6IDU1NTY3ODRLLzMyODcyNzU2SyBhdmFpbGFibGUgKDE4NDMySyBr
ZXJuZWwgY29kZSwgOTUyNksgcndkYXRhLCA3NTUySyByb2RhdGEsIDQ2ODRLIGluaXQsIDEwMTg0
SyBic3MsIDI3Mjk3ODY0SyByZXNlcnZlZCwgMEsgY21hLXJlc2VydmVkKQpbICAgIDAuNTg4MzA1
XSBkZXZ0bXBmczogaW5pdGlhbGl6ZWQKWyAgICAwLjU4ODc3MV0geDg2L21tOiBNZW1vcnkgYmxv
Y2sgc2l6ZTogMTI4TUIKWyAgICAwLjYwMzg5Nl0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFDUEkg
TlZTIHJlZ2lvbiBbbWVtIDB4MDlmMDAwMDAtMHgwOWYwZmZmZl0gKDY1NTM2IGJ5dGVzKQpbICAg
IDAuNjAzODk2XSBBQ1BJOiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBOVlMgcmVnaW9uIFttZW0gMHhj
YWY3ZjAwMC0weGNjZjdlZmZmXSAoMzM1NTQ0MzIgYnl0ZXMpClsgICAgMC42MTIwNzldIGNsb2Nr
c291cmNlOiBqaWZmaWVzOiBtYXNrOiAweGZmZmZmZmZmIG1heF9jeWNsZXM6IDB4ZmZmZmZmZmYs
IG1heF9pZGxlX25zOiA3NjQ1MDQxNzg1MTAwMDAwIG5zClsgICAgMC42MTIxMjBdIGZ1dGV4IGhh
c2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDYsIDI2MjE0NCBieXRlcywgbGluZWFyKQpb
ICAgIDAuNjEyMzQ3XSBwaW5jdHJsIGNvcmU6IGluaXRpYWxpemVkIHBpbmN0cmwgc3Vic3lzdGVt
ClsgICAgMC42MTI2NDBdIFBNOiBSVEMgdGltZTogMDU6NDY6MDQsIGRhdGU6IDIwMjQtMTEtMTgK
WyAgICAwLjYxNDQzOF0gTkVUOiBSZWdpc3RlcmVkIFBGX05FVExJTksvUEZfUk9VVEUgcHJvdG9j
b2wgZmFtaWx5ClsgICAgMC42MTQ1NjRdIHhlbjpncmFudF90YWJsZTogR3JhbnQgdGFibGVzIHVz
aW5nIHZlcnNpb24gMSBsYXlvdXQKWyAgICAwLjYxNDYxM10gR3JhbnQgdGFibGUgaW5pdGlhbGl6
ZWQKWyAgICAwLjYxNjUzM10gRE1BOiBwcmVhbGxvY2F0ZWQgMTAyNCBLaUIgR0ZQX0tFUk5FTCBw
b29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjYxNjczN10gRE1BOiBwcmVhbGxvY2F0
ZWQgMTAyNCBLaUIgR0ZQX0tFUk5FTHxHRlBfRE1BIHBvb2wgZm9yIGF0b21pYyBhbGxvY2F0aW9u
cwpbICAgIDAuNjE2OTIxXSBETUE6IHByZWFsbG9jYXRlZCAxMDI0IEtpQiBHRlBfS0VSTkVMfEdG
UF9ETUEzMiBwb29sIGZvciBhdG9taWMgYWxsb2NhdGlvbnMKWyAgICAwLjYxNjk4OF0gYXVkaXQ6
IGluaXRpYWxpemluZyBuZXRsaW5rIHN1YnN5cyAoZGlzYWJsZWQpClsgICAgMC42MTcwNTddIGF1
ZGl0OiB0eXBlPTIwMDAgYXVkaXQoMTczMTkwODc2My40NzI6MSk6IHN0YXRlPWluaXRpYWxpemVk
IGF1ZGl0X2VuYWJsZWQ9MCByZXM9MQpbICAgIDAuNjE3MjE1XSB0aGVybWFsX3N5czogUmVnaXN0
ZXJlZCB0aGVybWFsIGdvdmVybm9yICdmYWlyX3NoYXJlJwpbICAgIDAuNjE3MjE5XSB0aGVybWFs
X3N5czogUmVnaXN0ZXJlZCB0aGVybWFsIGdvdmVybm9yICdiYW5nX2JhbmcnClsgICAgMC42MTcy
MjFdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3N0ZXBfd2lzZScK
WyAgICAwLjYxNzIyM10gdGhlcm1hbF9zeXM6IFJlZ2lzdGVyZWQgdGhlcm1hbCBnb3Zlcm5vciAn
dXNlcl9zcGFjZScKWyAgICAwLjYxNzI2NV0gRUlTQSBidXMgcmVnaXN0ZXJlZApbICAgIDAuNjE3
MjkyXSBjcHVpZGxlOiB1c2luZyBnb3Zlcm5vciBsYWRkZXIKWyAgICAwLjYxNzI5Ml0gY3B1aWRs
ZTogdXNpbmcgZ292ZXJub3IgbWVudQpbICAgIDAuNjE3MjkyXSBhY3BpcGhwOiBBQ1BJIEhvdCBQ
bHVnIFBDSSBDb250cm9sbGVyIERyaXZlciB2ZXJzaW9uOiAwLjUKWyAgICAwLjYyMTE4NV0gUENJ
OiBFQ0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSAoYmFzZSAweGYwMDAwMDAwKSBmb3Ig
ZG9tYWluIDAwMDAgW2J1cyAwMC03Zl0KWyAgICAwLjYyMTIyOF0gUENJOiBVc2luZyBjb25maWd1
cmF0aW9uIHR5cGUgMSBmb3IgYmFzZSBhY2Nlc3MKWyAgICAwLjYyMTQ2MV0ga3Byb2Jlczoga3By
b2JlIGp1bXAtb3B0aW1pemF0aW9uIGlzIGVuYWJsZWQuIEFsbCBrcHJvYmVzIGFyZSBvcHRpbWl6
ZWQgaWYgcG9zc2libGUuClsgICAgMC42MjE0NjFdIEh1Z2VUTEI6IHJlZ2lzdGVyZWQgMS4wMCBH
aUIgcGFnZSBzaXplLCBwcmUtYWxsb2NhdGVkIDAgcGFnZXMKWyAgICAwLjYyMTQ2MV0gSHVnZVRM
QjogMTYzODAgS2lCIHZtZW1tYXAgY2FuIGJlIGZyZWVkIGZvciBhIDEuMDAgR2lCIHBhZ2UKWyAg
ICAwLjYyMTQ2MV0gSHVnZVRMQjogcmVnaXN0ZXJlZCAyLjAwIE1pQiBwYWdlIHNpemUsIHByZS1h
bGxvY2F0ZWQgMCBwYWdlcwpbICAgIDAuNjIxNDYxXSBIdWdlVExCOiAyOCBLaUIgdm1lbW1hcCBj
YW4gYmUgZnJlZWQgZm9yIGEgMi4wMCBNaUIgcGFnZQpbICAgIDAuNjI1NTcwXSBBQ1BJOiBBZGRl
ZCBfT1NJKE1vZHVsZSBEZXZpY2UpClsgICAgMC42MjU1NzNdIEFDUEk6IEFkZGVkIF9PU0koUHJv
Y2Vzc29yIERldmljZSkKWyAgICAwLjYyNTU3NV0gQUNQSTogQWRkZWQgX09TSSgzLjAgX1NDUCBF
eHRlbnNpb25zKQpbICAgIDAuNjI1NTc2XSBBQ1BJOiBBZGRlZCBfT1NJKFByb2Nlc3NvciBBZ2dy
ZWdhdG9yIERldmljZSkKWyAgICAwLjc0MTc2Nl0gQUNQSSBCSU9TIEVycm9yIChidWcpOiBGYWls
dXJlIGNyZWF0aW5nIG5hbWVkIG9iamVjdCBbXF9TQi5NQUNPXSwgQUVfQUxSRUFEWV9FWElTVFMg
KDIwMjQwODI3L2Rzd2xvYWQyLTMyNikKWyAgICAwLjc0MTgwM10gZmJjb246IFRha2luZyBvdmVy
IGNvbnNvbGUKWyAgICAwLjc0MTg3NV0gQUNQSSBFcnJvcjogQUVfQUxSRUFEWV9FWElTVFMsIER1
cmluZyBuYW1lIGxvb2t1cC9jYXRhbG9nICgyMDI0MDgyNy9wc29iamVjdC0yMjApClsgICAgMC43
NTYwODFdIEFDUEk6IDIwIEFDUEkgQU1MIHRhYmxlcyBzdWNjZXNzZnVsbHkgYWNxdWlyZWQgYW5k
IGxvYWRlZApbICAgIDAuNzY3NzUwXSBBQ1BJOiBbRmlybXdhcmUgQnVnXTogQklPUyBfT1NJKExp
bnV4KSBxdWVyeSBpZ25vcmVkClsgICAgMC43OTM2MDJdIEFDUEk6IEVDOiBFQyBzdGFydGVkClsg
ICAgMC43OTM2MTBdIEFDUEk6IEVDOiBpbnRlcnJ1cHQgYmxvY2tlZApbICAgIDAuNzk4NTE4XSBB
Q1BJOiBFQzogRUNfQ01EL0VDX1NDPTB4NjY2LCBFQ19EQVRBPTB4NjYyClsgICAgMC43OTg1MzBd
IEFDUEk6IFxfU0JfLlBDSTAuTFBDMC5FQzBfOiBCb290IERTRFQgRUMgdXNlZCB0byBoYW5kbGUg
dHJhbnNhY3Rpb25zClsgICAgMC43OTg1MzRdIEFDUEk6IEludGVycHJldGVyIGVuYWJsZWQKWyAg
ICAwLjc5ODYzMl0gQUNQSTogUE06IChzdXBwb3J0cyBTMCBTMyBTNCBTNSkKWyAgICAwLjc5ODYz
NV0gQUNQSTogVXNpbmcgSU9BUElDIGZvciBpbnRlcnJ1cHQgcm91dGluZwpbICAgIDAuNzk5OTIz
XSBQQ0k6IFVzaW5nIGhvc3QgYnJpZGdlIHdpbmRvd3MgZnJvbSBBQ1BJOyBpZiBuZWNlc3Nhcnks
IHVzZSAicGNpPW5vY3JzIiBhbmQgcmVwb3J0IGEgYnVnClsgICAgMC43OTk5MzFdIFBDSTogSWdu
b3JpbmcgRTgyMCByZXNlcnZhdGlvbnMgZm9yIGhvc3QgYnJpZGdlIHdpbmRvd3MKWyAgICAwLjgw
NDQ2OF0gQUNQSTogRW5hYmxlZCA2IEdQRXMgaW4gYmxvY2sgMDAgdG8gMUYKWyAgICAwLjgxMzY5
MF0gQUNQSTogXF9TQl8uUENJMC5HUFAwLk0yMzc6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAu
ODE0ODc1XSBBQ1BJOiBcX1NCXy5QQ0kwLkdQUDAuU1dVUy5NMjM3OiBOZXcgcG93ZXIgcmVzb3Vy
Y2UKWyAgICAwLjgxNTY3OV0gQUNQSTogXF9TQl8uUENJMC5HUFAwLlNXVVMuU1dEUy5NMjM3OiBO
ZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjgyMjM3Ml0gQUNQSTogXF9TQl8uUENJMC5HUFA2LlAw
TlY6IE5ldyBwb3dlciByZXNvdXJjZQpbICAgIDAuODMxMTQyXSBBQ1BJOiBcX1NCXy5QMFMwOiBO
ZXcgcG93ZXIgcmVzb3VyY2UKWyAgICAwLjgzMTM1MV0gQUNQSTogXF9TQl8uUDNTMDogTmV3IHBv
d2VyIHJlc291cmNlClsgICAgMC44MzIxODJdIEFDUEk6IFxfU0JfLlAwUzE6IE5ldyBwb3dlciBy
ZXNvdXJjZQpbICAgIDAuODMyMzgyXSBBQ1BJOiBcX1NCXy5QM1MxOiBOZXcgcG93ZXIgcmVzb3Vy
Y2UKWyAgICAwLjg4OTI4N10gQUNQSTogUENJIFJvb3QgQnJpZGdlIFtQQ0kwXSAoZG9tYWluIDAw
MDAgW2J1cyAwMC1mZl0pClsgICAgMC44ODkzMDNdIGFjcGkgUE5QMEEwODowMDogX09TQzogT1Mg
c3VwcG9ydHMgW0V4dGVuZGVkQ29uZmlnIEFTUE0gQ2xvY2tQTSBTZWdtZW50cyBNU0kgSFBYLVR5
cGUzXQpbICAgIDAuODg5ODg2XSBhY3BpIFBOUDBBMDg6MDA6IF9PU0M6IHBsYXRmb3JtIGRvZXMg
bm90IHN1cHBvcnQgW1NIUENIb3RwbHVnIExUUl0KWyAgICAwLjg5MDk5MF0gYWNwaSBQTlAwQTA4
OjAwOiBfT1NDOiBPUyBub3cgY29udHJvbHMgW1BDSWVIb3RwbHVnIFBNRSBBRVIgUENJZUNhcGFi
aWxpdHldClsgICAgMC44OTEwMjRdIGFjcGkgUE5QMEEwODowMDogW0Zpcm13YXJlIEluZm9dOiBF
Q0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSBmb3IgZG9tYWluIDAwMDAgW2J1cyAwMC03
Zl0gb25seSBwYXJ0aWFsbHkgY292ZXJzIHRoaXMgYnJpZGdlClsgICAgMC44OTI4NjhdIFBDSSBo
b3N0IGJyaWRnZSB0byBidXMgMDAwMDowMApbICAgIDAuODkyODg2XSBwY2lfYnVzIDAwMDA6MDA6
IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwMDAwLTB4MGNmNyB3aW5kb3ddClsgICAgMC44OTI4
OTJdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvICAweDBkMDAtMHhmZmZm
IHdpbmRvd10KWyAgICAwLjg5Mjg5OF0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJj
ZSBbbWVtIDB4MDAwYTAwMDAtMHgwMDBiZmZmZiB3aW5kb3ddClsgICAgMC44OTI5MDJdIHBjaV9i
dXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweDAwMGMwMDAwLTB4MDAwY2ZmZmYg
d2luZG93XQpbICAgIDAuODkyOTA3XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNl
IFttZW0gMHgwMDBkMDAwMC0weDAwMGVmZmZmIHdpbmRvd10KWyAgICAwLjg5MjkxMF0gcGNpX2J1
cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ZDAwMDAwMDAtMHhlZmZmZmZmZiB3
aW5kb3ddClsgICAgMC44OTI5MTNdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2Ug
W21lbSAweGY4MDAwMDAwLTB4ZmVhZmZmZmYgd2luZG93XQpbICAgIDAuODkyOTE2XSBwY2lfYnVz
IDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHhmZWQ0NTAwMC0weGZlZDgxMWZmIHdp
bmRvd10KWyAgICAwLjg5MjkxOV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBb
bWVtIDB4ZmVkODE5MDAtMHhmZWQ4MWZmZiB3aW5kb3ddClsgICAgMC44OTI5MjFdIHBjaV9idXMg
MDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweGZlZGMwMDAwLTB4ZmVkYzBmZmYgd2lu
ZG93XQpbICAgIDAuODkyOTI0XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtt
ZW0gMHhmZWRjNjAwMC0weGZlZGM2ZmZmIHdpbmRvd10KWyAgICAwLjg5MjkyN10gcGNpX2J1cyAw
MDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtIDB4ODUwMjAwMDAwLTB4ZmNhZmZmZmZmZiB3
aW5kb3ddClsgICAgMC44OTI5MzFdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2Ug
W2J1cyAwMC1mZl0KWyAgICAwLjg5Mjk4OF0gcGNpIDAwMDA6MDA6MDAuMDogWzEwMjI6MTYzMF0g
dHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50ClsgICAgMC44
OTM0MTFdIHBjaSAwMDAwOjAwOjAwLjI6IFsxMDIyOjE2MzFdIHR5cGUgMDAgY2xhc3MgMHgwODA2
MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDAuODkzNzEzXSBwY2kgMDAwMDowMDow
MS4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kg
ZW5kcG9pbnQKWyAgICAwLjg5NDE2OV0gcGNpIDAwMDA6MDA6MDEuMTogWzEwMjI6MTYzM10gdHlw
ZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJvb3QgUG9ydApbICAgIDAuODk0MjU1XSBwY2kgMDAw
MDowMDowMS4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEtMDNdClsgICAgMC44OTQyNjddIHBjaSAw
MDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMC44
OTQyNzNdIHBjaSAwMDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAt
MHhkMDhmZmZmZl0KWyAgICAwLjg5NDI5MV0gcGNpIDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2lu
ZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDAuODk0
NTc2XSBwY2kgMDAwMDowMDowMS4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29s
ZApbICAgIDAuODk1NDYwXSBwY2kgMDAwMDowMDowMi4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNs
YXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAwLjg5NTkwNl0gcGNp
IDAwMDA6MDA6MDIuNDogWzEwMjI6MTYzNF0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJv
b3QgUG9ydApbICAgIDAuODk1OTg4XSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFti
dXMgMDRdClsgICAgMC44OTYwMDVdIHBjaSAwMDAwOjAwOjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBb
bWVtIDB4ZDA1MDAwMDAtMHhkMDVmZmZmZl0KWyAgICAwLjg5NjMzNV0gcGNpIDAwMDA6MDA6MDIu
NDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAwLjg5OTcyOF0gcGNp
IDAwMDA6MDA6MDguMDogWzEwMjI6MTYzMl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50
aW9uYWwgUENJIGVuZHBvaW50ClsgICAgMC45MDAxNTldIHBjaSAwMDAwOjAwOjA4LjE6IFsxMDIy
OjE2MzVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBvcnQKWyAgICAwLjkwMDIz
NF0gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVzIDA1XQpbICAgIDAuOTAwMjQ1
XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDEwMDAtMHgxZmZmXQpb
ICAgIDAuOTAwMjUxXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQw
MTAwMDAwLTB4ZDA0ZmZmZmZdClsgICAgMC45MDAyNjldIHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJp
ZGdlIHdpbmRvdyBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjODAxZmZmZmYgNjRiaXQgcHJlZl0KWyAg
ICAwLjkwMDI4OV0gcGNpIDAwMDA6MDA6MDguMTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAg
IDAuOTAwNTI0XSBwY2kgMDAwMDowMDowOC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90
IEQzY29sZApbICAgIDAuOTAxMjg4XSBwY2kgMDAwMDowMDowOC4yOiBbMTAyMjoxNjM1XSB0eXBl
IDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgUm9vdCBQb3J0ClsgICAgMC45MDEzNjNdIHBjaSAwMDAw
OjAwOjA4LjI6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNl0KWyAgICAwLjkwMTM3N10gcGNpIDAwMDA6
MDA6MDguMjogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDAwMDAwMC0weGQwMGZmZmZmXQpbICAg
IDAuOTAxNDEyXSBwY2kgMDAwMDowMDowOC4yOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAg
MC45MDE2MzRdIHBjaSAwMDAwOjAwOjA4LjI6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3Qg
RDNjb2xkClsgICAgMC45MDc4NjldIHBjaSAwMDAwOjAwOjE0LjA6IFsxMDIyOjc5MGJdIHR5cGUg
MDAgY2xhc3MgMHgwYzA1MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDAuOTA4NDE0
XSBwY2kgMDAwMDowMDoxNC4zOiBbMTAyMjo3OTBlXSB0eXBlIDAwIGNsYXNzIDB4MDYwMTAwIGNv
bnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAwLjkxMDg5OF0gcGNpIDAwMDA6MDA6MTguMDog
WzEwMjI6MTQ0OF0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBv
aW50ClsgICAgMC45MTEzMDRdIHBjaSAwMDAwOjAwOjE4LjE6IFsxMDIyOjE0NDldIHR5cGUgMDAg
Y2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDAuOTExNzAwXSBw
Y2kgMDAwMDowMDoxOC4yOiBbMTAyMjoxNDRhXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZl
bnRpb25hbCBQQ0kgZW5kcG9pbnQKWyAgICAwLjkxMjEwMF0gcGNpIDAwMDA6MDA6MTguMzogWzEw
MjI6MTQ0Yl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50
ClsgICAgMC45MTI1MDFdIHBjaSAwMDAwOjAwOjE4LjQ6IFsxMDIyOjE0NGNdIHR5cGUgMDAgY2xh
c3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDAuOTEyOTQzXSBwY2kg
MDAwMDowMDoxOC41OiBbMTAyMjoxNDRkXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRp
b25hbCBQQ0kgZW5kcG9pbnQKWyAgICAwLjkxMzM0MF0gcGNpIDAwMDA6MDA6MTguNjogWzEwMjI6
MTQ0ZV0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50Clsg
ICAgMC45MTM3MzRdIHBjaSAwMDAwOjAwOjE4Ljc6IFsxMDIyOjE0NGZdIHR5cGUgMDAgY2xhc3Mg
MHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludApbICAgIDAuOTIyMDU2XSBwY2kgMDAw
MDowMTowMC4wOiBbMTAwMjoxNDc4XSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgU3dpdGNo
IFVwc3RyZWFtIFBvcnQKWyAgICAwLjkyMjI4MV0gcGNpIDAwMDA6MDE6MDAuMDogQkFSIDAgW21l
bSAweGQwODAwMDAwLTB4ZDA4MDNmZmZdClsgICAgMC45MjI1MjddIHBjaSAwMDAwOjAxOjAwLjA6
IFBDSSBicmlkZ2UgdG8gW2J1cyAwMi0wM10KWyAgICAwLjkyMjU0NF0gcGNpIDAwMDA6MDE6MDAu
MDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4MmZmZl0KWyAgICAwLjkyMjU1MV0gcGNp
IDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDYwMDAwMC0weGQwN2ZmZmZm
XQpbICAgIDAuOTIyNTcyXSBwY2kgMDAwMDowMTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAw
eGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMC45MjI5MDldIHBjaSAw
MDAwOjAxOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMC45
MjMyNTFdIHBjaSAwMDAwOjAxOjAwLjA6IDYzLjAwOCBHYi9zIGF2YWlsYWJsZSBQQ0llIGJhbmR3
aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHg4IGxpbmsgYXQgMDAwMDowMDowMS4xIChj
YXBhYmxlIG9mIDEyNi4wMjQgR2IvcyB3aXRoIDE2LjAgR1QvcyBQQ0llIHg4IGxpbmspClsgICAg
MC45MjM5ODldIHBjaSAwMDAwOjAwOjAxLjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMS0wM10KWyAg
ICAwLjkyNDI0NV0gcGNpIDAwMDA6MDI6MDAuMDogWzEwMDI6MTQ3OV0gdHlwZSAwMSBjbGFzcyAw
eDA2MDQwMCBQQ0llIFN3aXRjaCBEb3duc3RyZWFtIFBvcnQKWyAgICAwLjkyNDMzM10gcGNpIDAw
MDA6MDI6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQpbICAgIDAuOTI0MzQ2XSBwY2kgMDAw
MDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDIwMDAtMHgyZmZmXQpbICAgIDAuOTI0
MzUyXSBwY2kgMDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwNjAwMDAwLTB4
ZDA3ZmZmZmZdClsgICAgMC45MjQzNzNdIHBjaSAwMDAwOjAyOjAwLjA6ICAgYnJpZGdlIHdpbmRv
dyBbbWVtIDB4ZmM5MDAwMDAwMC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjkyNDY5
NF0gcGNpIDAwMDA6MDI6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQK
WyAgICAwLjk0MTA4Nl0gcGNpIDAwMDA6MDE6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAyLTAz
XQpbICAgIDAuOTQxMzYxXSBwY2kgMDAwMDowMzowMC4wOiBbMTAwMjo3M2ZmXSB0eXBlIDAwIGNs
YXNzIDB4MDMwMDAwIFBDSWUgTGVnYWN5IEVuZHBvaW50ClsgICAgMC45NDQwNjFdIHBjaSAwMDAw
OjAzOjAwLjA6IEJBUiAwIFttZW0gMHhmYzkwMDAwMDAwLTB4ZmM5ZmZmZmZmZiA2NGJpdCBwcmVm
XQpbICAgIDAuOTQ5MTM3XSBwY2kgMDAwMDowMzowMC4wOiBCQVIgMiBbbWVtIDB4ZmNhMDAwMDAw
MC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAwLjk1MTk4NV0gcGNpIDAwMDA6MDM6MDAu
MDogQkFSIDQgW2lvICAweDIwMDAtMHgyMGZmXQpbICAgIDAuOTUzMTI4XSBwY2kgMDAwMDowMzow
MC4wOiBCQVIgNSBbbWVtIDB4ZDA2MDAwMDAtMHhkMDZmZmZmZl0KWyAgICAwLjk1NTg5NF0gcGNp
IDAwMDA6MDM6MDAuMDogUk9NIFttZW0gMHhmZmZlMDAwMC0weGZmZmZmZmZmIHByZWZdClsgICAg
MC45NTYyODhdIHBjaSAwMDAwOjAzOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDEgRDIgRDNo
b3QgRDNjb2xkClsgICAgMC45NTY2NjNdIHBjaSAwMDAwOjAzOjAwLjA6IDYzLjAwOCBHYi9zIGF2
YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHg4IGxpbmsg
YXQgMDAwMDowMDowMS4xIChjYXBhYmxlIG9mIDI1Mi4wNDggR2IvcyB3aXRoIDE2LjAgR1QvcyBQ
Q0llIHgxNiBsaW5rKQpbICAgIDAuOTU3MjU2XSBwY2kgMDAwMDowMzowMC4xOiBbMTAwMjphYjI4
XSB0eXBlIDAwIGNsYXNzIDB4MDQwMzAwIFBDSWUgTGVnYWN5IEVuZHBvaW50ClsgICAgMC45NTcz
NDRdIHBjaSAwMDAwOjAzOjAwLjE6IEJBUiAwIFttZW0gMHhkMDcwMDAwMC0weGQwNzAzZmZmXQpb
ICAgIDAuOTU3OTA3XSBwY2kgMDAwMDowMzowMC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQxIEQy
IEQzaG90IEQzY29sZApbICAgIDAuOTU4NjE0XSBwY2kgMDAwMDowMjowMC4wOiBQQ0kgYnJpZGdl
IHRvIFtidXMgMDNdClsgICAgMC45NTg5NjZdIHBjaSAwMDAwOjA0OjAwLjA6IFsxNWI3OjUwMWFd
IHR5cGUgMDAgY2xhc3MgMHgwMTA4MDIgUENJZSBFbmRwb2ludApbICAgIDAuOTU5MDUwXSBwY2kg
MDAwMDowNDowMC4wOiBCQVIgMCBbbWVtIDB4ZDA1MDAwMDAtMHhkMDUwM2ZmZiA2NGJpdF0KWyAg
ICAwLjk1OTIwN10gcGNpIDAwMDA6MDQ6MDAuMDogQkFSIDQgW21lbSAweGQwNTA0MDAwLTB4ZDA1
MDQwZmYgNjRiaXRdClsgICAgMC45NjAzNjFdIHBjaSAwMDAwOjAwOjAyLjQ6IFBDSSBicmlkZ2Ug
dG8gW2J1cyAwNF0KWyAgICAwLjk2MDcyOF0gcGNpIDAwMDA6MDU6MDAuMDogWzEwMDI6MTYzNl0g
dHlwZSAwMCBjbGFzcyAweDAzMDAwMCBQQ0llIExlZ2FjeSBFbmRwb2ludApbICAgIDAuOTYzMjQ0
XSBwY2kgMDAwMDowNTowMC4wOiBCQVIgMCBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjN2ZmZmZmZmYg
NjRiaXQgcHJlZl0KWyAgICAwLjk2NDcyOF0gcGNpIDAwMDA6MDU6MDAuMDogQkFSIDIgW21lbSAw
eGZjODAwMDAwMDAtMHhmYzgwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMC45NjY1NDRdIHBjaSAw
MDAwOjA1OjAwLjA6IEJBUiA0IFtpbyAgMHgxMDAwLTB4MTBmZl0KWyAgICAwLjk2ODM0N10gcGNp
IDAwMDA6MDU6MDAuMDogQkFSIDUgW21lbSAweGQwNDAwMDAwLTB4ZDA0N2ZmZmZdClsgICAgMC45
NjkxMzldIHBjaSAwMDAwOjA1OjAwLjA6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAwLjk2
OTYxNl0gcGNpIDAwMDA6MDU6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMSBEMiBEM2hvdCBE
M2NvbGQKWyAgICAwLjk2OTk1M10gcGNpIDAwMDA6MDU6MDAuMDogMTI2LjAxNiBHYi9zIGF2YWls
YWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAgR1QvcyBQQ0llIHgxNiBsaW5rIGF0
IDAwMDA6MDA6MDguMSAoY2FwYWJsZSBvZiAyNTIuMDQ4IEdiL3Mgd2l0aCAxNi4wIEdUL3MgUENJ
ZSB4MTYgbGluaykKWyAgICAwLjk3MDkyMl0gcGNpIDAwMDA6MDU6MDAuMTogWzEwMDI6MTYzN10g
dHlwZSAwMCBjbGFzcyAweDA0MDMwMCBQQ0llIExlZ2FjeSBFbmRwb2ludApbICAgIDAuOTcxMDI3
XSBwY2kgMDAwMDowNTowMC4xOiBCQVIgMCBbbWVtIDB4ZDA0YzgwMDAtMHhkMDRjYmZmZl0KWyAg
ICAwLjk3MTQ2NF0gcGNpIDAwMDA6MDU6MDAuMTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAg
IDAuOTcxNjgwXSBwY2kgMDAwMDowNTowMC4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQxIEQyIEQz
aG90IEQzY29sZApbICAgIDAuOTcyNTg4XSBwY2kgMDAwMDowNTowMC4yOiBbMTAyMjoxNWRmXSB0
eXBlIDAwIGNsYXNzIDB4MTA4MDAwIFBDSWUgRW5kcG9pbnQKWyAgICAwLjk4MTEwMl0gcGNpIDAw
MDA6MDU6MDAuMjogQkFSIDIgW21lbSAweGQwMzAwMDAwLTB4ZDAzZmZmZmZdClsgICAgMC45ODcw
NzldIHBjaSAwMDAwOjA1OjAwLjI6IEJBUiA1IFttZW0gMHhkMDRjYzAwMC0weGQwNGNkZmZmXQpb
ICAgIDAuOTg5MTE2XSBwY2kgMDAwMDowNTowMC4yOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzClsg
ICAgMC45OTAyNTNdIHBjaSAwMDAwOjA1OjAwLjM6IFsxMDIyOjE2MzldIHR5cGUgMDAgY2xhc3Mg
MHgwYzAzMzAgUENJZSBFbmRwb2ludApbICAgIDAuOTkyNzEzXSBwY2kgMDAwMDowNTowMC4zOiBC
QVIgMCBbbWVtIDB4ZDAyMDAwMDAtMHhkMDJmZmZmZiA2NGJpdF0KWyAgICAxLjAwMTE1MV0gcGNp
IDAwMDA6MDU6MDAuMzogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpbICAgIDEuMDAxMzk3XSBwY2kg
MDAwMDowNTowMC4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEu
MDAyMzQzXSBwY2kgMDAwMDowNTowMC40OiBbMTAyMjoxNjM5XSB0eXBlIDAwIGNsYXNzIDB4MGMw
MzMwIFBDSWUgRW5kcG9pbnQKWyAgICAxLjAwNDUzMV0gcGNpIDAwMDA6MDU6MDAuNDogQkFSIDAg
W21lbSAweGQwMTAwMDAwLTB4ZDAxZmZmZmYgNjRiaXRdClsgICAgMS4wMTMxMTFdIHBjaSAwMDAw
OjA1OjAwLjQ6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjAxMzM2MF0gcGNpIDAwMDA6
MDU6MDAuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjAxNDI5
MF0gcGNpIDAwMDA6MDU6MDAuNTogWzEwMjI6MTVlMl0gdHlwZSAwMCBjbGFzcyAweDA0ODAwMCBQ
Q0llIEVuZHBvaW50ClsgICAgMS4wMTQ4ODFdIHBjaSAwMDAwOjA1OjAwLjU6IEJBUiAwIFttZW0g
MHhkMDQ4MDAwMC0weGQwNGJmZmZmXQpbICAgIDEuMDE4MzY2XSBwY2kgMDAwMDowNTowMC41OiBl
bmFibGluZyBFeHRlbmRlZCBUYWdzClsgICAgMS4wMTg2MDNdIHBjaSAwMDAwOjA1OjAwLjU6IFBN
RSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS4wMTk0OTBdIHBjaSAwMDAw
OjA1OjAwLjY6IFsxMDIyOjE1ZTNdIHR5cGUgMDAgY2xhc3MgMHgwNDAzMDAgUENJZSBFbmRwb2lu
dApbICAgIDEuMDE5NjM5XSBwY2kgMDAwMDowNTowMC42OiBCQVIgMCBbbWVtIDB4ZDA0YzAwMDAt
MHhkMDRjN2ZmZl0KWyAgICAxLjAyMDMzNV0gcGNpIDAwMDA6MDU6MDAuNjogZW5hYmxpbmcgRXh0
ZW5kZWQgVGFncwpbICAgIDEuMDIwNTcwXSBwY2kgMDAwMDowNTowMC42OiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuMDIxNjUwXSBwY2kgMDAwMDowMDowOC4xOiBQ
Q0kgYnJpZGdlIHRvIFtidXMgMDVdClsgICAgMS4wMjIwMDJdIHBjaSAwMDAwOjA2OjAwLjA6IFsx
MDIyOjc5MDFdIHR5cGUgMDAgY2xhc3MgMHgwMTA2MDEgUENJZSBFbmRwb2ludApbICAgIDEuMDIy
MzE5XSBwY2kgMDAwMDowNjowMC4wOiBCQVIgNSBbbWVtIDB4ZDAwODUwMDAtMHhkMDA4NTdmZl0K
WyAgICAxLjAyMjM4OV0gcGNpIDAwMDA6MDY6MDAuMDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncwpb
ICAgIDEuMDIzMDAyXSBwY2kgMDAwMDowNjowMC4wOiAxMjYuMDE2IEdiL3MgYXZhaWxhYmxlIFBD
SWUgYmFuZHdpZHRoLCBsaW1pdGVkIGJ5IDguMCBHVC9zIFBDSWUgeDE2IGxpbmsgYXQgMDAwMDow
MDowOC4yIChjYXBhYmxlIG9mIDI1Mi4wNDggR2IvcyB3aXRoIDE2LjAgR1QvcyBQQ0llIHgxNiBs
aW5rKQpbICAgIDEuMDIzOTE2XSBwY2kgMDAwMDowNjowMC4xOiBbMTAyMjo3OTAxXSB0eXBlIDAw
IGNsYXNzIDB4MDEwNjAxIFBDSWUgRW5kcG9pbnQKWyAgICAxLjAyNDI2MV0gcGNpIDAwMDA6MDY6
MDAuMTogQkFSIDUgW21lbSAweGQwMDg0MDAwLTB4ZDAwODQ3ZmZdClsgICAgMS4wMjQzMjldIHBj
aSAwMDAwOjA2OjAwLjE6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjAyNTQ5MF0gcGNp
IDAwMDA6MDY6MDAuMjogWzEwMjI6MTY0MV0gdHlwZSAwMCBjbGFzcyAweDAyMDAwMCBQQ0llIEVu
ZHBvaW50ClsgICAgMS4wMjYxNDFdIHBjaSAwMDAwOjA2OjAwLjI6IEJBUiAwIFttZW0gMHhkMDA2
MDAwMC0weGQwMDdmZmZmXQpbICAgIDEuMDI2NjkxXSBwY2kgMDAwMDowNjowMC4yOiBCQVIgMSBb
bWVtIDB4ZDAwNDAwMDAtMHhkMDA1ZmZmZl0KWyAgICAxLjAyNzIyOF0gcGNpIDAwMDA6MDY6MDAu
MjogQkFSIDIgW21lbSAweGQwMDgyMDAwLTB4ZDAwODNmZmYgNjRiaXRdClsgICAgMS4wMjg4NjFd
IHBjaSAwMDAwOjA2OjAwLjI6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjAyOTc1NF0g
cGNpIDAwMDA6MDY6MDAuMzogWzEwMjI6MTY0MV0gdHlwZSAwMCBjbGFzcyAweDAyMDAwMCBQQ0ll
IEVuZHBvaW50ClsgICAgMS4wMzAzMjddIHBjaSAwMDAwOjA2OjAwLjM6IEJBUiAwIFttZW0gMHhk
MDAyMDAwMC0weGQwMDNmZmZmXQpbICAgIDEuMDMwODg0XSBwY2kgMDAwMDowNjowMC4zOiBCQVIg
MSBbbWVtIDB4ZDAwMDAwMDAtMHhkMDAxZmZmZl0KWyAgICAxLjAzMTQ1Ml0gcGNpIDAwMDA6MDY6
MDAuMzogQkFSIDIgW21lbSAweGQwMDgwMDAwLTB4ZDAwODFmZmYgNjRiaXRdClsgICAgMS4wMzMy
NzldIHBjaSAwMDAwOjA2OjAwLjM6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MKWyAgICAxLjAzNDI3
Nl0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA2XQpbICAgIDEuMDM5NTQ0
XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0EgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAg
ICAxLjAzOTU1MF0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktBIGRpc2FibGVkClsgICAg
MS4wNDAwNDNdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LQiBjb25maWd1cmVkIGZvciBJ
UlEgMApbICAgIDEuMDQwMDQ5XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0IgZGlzYWJs
ZWQKWyAgICAxLjA0MDQwOF0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktDIGNvbmZpZ3Vy
ZWQgZm9yIElSUSAwClsgICAgMS4wNDA0MTFdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5L
QyBkaXNhYmxlZApbICAgIDEuMDQwOTM5XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0Qg
Y29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAxLjA0MDk0M10gQUNQSTogUENJOiBJbnRlcnJ1cHQg
bGluayBMTktEIGRpc2FibGVkClsgICAgMS4wNDEzOTJdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxp
bmsgTE5LRSBjb25maWd1cmVkIGZvciBJUlEgMApbICAgIDEuMDQxMzk1XSBBQ1BJOiBQQ0k6IElu
dGVycnVwdCBsaW5rIExOS0UgZGlzYWJsZWQKWyAgICAxLjA0MTcyMV0gQUNQSTogUENJOiBJbnRl
cnJ1cHQgbGluayBMTktGIGNvbmZpZ3VyZWQgZm9yIElSUSAwClsgICAgMS4wNDE3MjRdIEFDUEk6
IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRiBkaXNhYmxlZApbICAgIDEuMDQyMDUwXSBBQ1BJOiBQ
Q0k6IEludGVycnVwdCBsaW5rIExOS0cgY29uZmlndXJlZCBmb3IgSVJRIDAKWyAgICAxLjA0MjA1
Ml0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktHIGRpc2FibGVkClsgICAgMS4wNDIzNzld
IEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LSCBjb25maWd1cmVkIGZvciBJUlEgMApbICAg
IDEuMDQyMzgxXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0ggZGlzYWJsZWQKWyAgICAx
LjA2MDczNV0gQUNQSTogRUM6IGludGVycnVwdCB1bmJsb2NrZWQKWyAgICAxLjA2MDczNV0gQUNQ
STogRUM6IGV2ZW50IHVuYmxvY2tlZApbICAgIDEuMDYwNzM1XSBBQ1BJOiBFQzogRUNfQ01EL0VD
X1NDPTB4NjY2LCBFQ19EQVRBPTB4NjYyClsgICAgMS4wNjA3MzVdIEFDUEk6IEVDOiBHUEU9MHgz
ClsgICAgMS4wNjA3MzVdIEFDUEk6IFxfU0JfLlBDSTAuTFBDMC5FQzBfOiBCb290IERTRFQgRUMg
aW5pdGlhbGl6YXRpb24gY29tcGxldGUKWyAgICAxLjA2MDczNV0gQUNQSTogXF9TQl8uUENJMC5M
UEMwLkVDMF86IEVDOiBVc2VkIHRvIGhhbmRsZSB0cmFuc2FjdGlvbnMgYW5kIGV2ZW50cwpbICAg
IDEuMDYxMDEzXSB4ZW46YmFsbG9vbjogSW5pdGlhbGlzaW5nIGJhbGxvb24gZHJpdmVyClsgICAg
MS4wNjEyNzNdIGlvbW11OiBEZWZhdWx0IGRvbWFpbiB0eXBlOiBQYXNzdGhyb3VnaCAoc2V0IHZp
YSBrZXJuZWwgY29tbWFuZCBsaW5lKQpbICAgIDEuMDYxNzI0XSBTQ1NJIHN1YnN5c3RlbSBpbml0
aWFsaXplZApbICAgIDEuMDY0Nzg1XSBsaWJhdGEgdmVyc2lvbiAzLjAwIGxvYWRlZC4KWyAgICAx
LjA2NDkyMF0gQUNQSTogYnVzIHR5cGUgVVNCIHJlZ2lzdGVyZWQKWyAgICAxLjA2NDk5OF0gdXNi
Y29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2JmcwpbICAgIDEuMDY1MDMw
XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGh1YgpbICAgIDEuMDY1
MDg0XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBkZXZpY2UgZHJpdmVyIHVzYgpbICAgIDEuMDY1
MjMwXSBwcHNfY29yZTogTGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkClsgICAgMS4wNjUy
MzNdIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUtMjAwNyBS
b2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KWyAgICAxLjA2NTI0Nl0gUFRQIGNs
b2NrIHN1cHBvcnQgcmVnaXN0ZXJlZApbICAgIDEuMDY1MzU4XSBFREFDIE1DOiBWZXI6IDMuMC4w
ClsgICAgMS4wNjUzNThdIGVmaXZhcnM6IFJlZ2lzdGVyZWQgZWZpdmFycyBvcGVyYXRpb25zClsg
ICAgMS4wNjU1OTJdIE5ldExhYmVsOiBJbml0aWFsaXppbmcKWyAgICAxLjA2NTU5N10gTmV0TGFi
ZWw6ICBkb21haW4gaGFzaCBzaXplID0gMTI4ClsgICAgMS4wNjU1OThdIE5ldExhYmVsOiAgcHJv
dG9jb2xzID0gVU5MQUJFTEVEIENJUFNPdjQgQ0FMSVBTTwpbICAgIDEuMDY1NjY4XSBOZXRMYWJl
bDogIHVubGFiZWxlZCB0cmFmZmljIGFsbG93ZWQgYnkgZGVmYXVsdApbICAgIDEuMDY4ODE1XSBQ
Q0k6IFVzaW5nIEFDUEkgZm9yIElSUSByb3V0aW5nClsgICAgMS4xNDU1NTNdIFBDSTogcGNpX2Nh
Y2hlX2xpbmVfc2l6ZSBzZXQgdG8gNjQgYnl0ZXMKWyAgICAxLjE0NTc2NF0gcmVzb3VyY2U6IEV4
cGFuZGVkIHJlc291cmNlIFJlc2VydmVkIGR1ZSB0byBjb25mbGljdCB3aXRoIFBDSSBCdXMgMDAw
MDowMApbICAgIDEuMTQ1NzY3XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDAwMDlm
MDAwLTB4MDAwOWZmZmZdClsgICAgMS4xNDU3NzRdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBb
bWVtIDB4MDliMDAwMDAtMHgwYmZmZmZmZl0KWyAgICAxLjE0NTc3N10gZTgyMDogcmVzZXJ2ZSBS
QU0gYnVmZmVyIFttZW0gMHgwOWYwMDAwMC0weDBiZmZmZmZmXQpbICAgIDEuMTQ1NzgwXSBlODIw
OiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweGJiNDY2MDAwLTB4YmJmZmZmZmZdClsgICAgMS4x
NDU3ODNdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4Yzg3N2YwMDAtMHhjYmZmZmZm
Zl0KWyAgICAxLjE0NTc4Nl0gZTgyMDogcmVzZXJ2ZSBSQU0gYnVmZmVyIFttZW0gMHhjY2ZmZmRk
OC0weGNmZmZmZmZmXQpbICAgIDEuMTQ1NzkwXSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21l
bSAweDgwZjM0MDAwMC0weDgwZmZmZmZmZl0KWyAgICAxLjE0NTg2N10gcGNpIDAwMDA6MDM6MDAu
MDogdmdhYXJiOiBzZXR0aW5nIGFzIGJvb3QgVkdBIGRldmljZQpbICAgIDEuMTQ1ODY3XSBwY2kg
MDAwMDowMzowMC4wOiB2Z2FhcmI6IGJyaWRnZSBjb250cm9sIHBvc3NpYmxlClsgICAgMS4xNDU4
NjddIHBjaSAwMDAwOjAzOjAwLjA6IHZnYWFyYjogVkdBIGRldmljZSBhZGRlZDogZGVjb2Rlcz1p
byttZW0sb3ducz1ub25lLGxvY2tzPW5vbmUKWyAgICAxLjE0NTg2N10gcGNpIDAwMDA6MDU6MDAu
MDogdmdhYXJiOiBzZXR0aW5nIGFzIGJvb3QgVkdBIGRldmljZSAob3ZlcnJpZGluZyBwcmV2aW91
cykKWyAgICAxLjE0NTg2N10gcGNpIDAwMDA6MDU6MDAuMDogdmdhYXJiOiBicmlkZ2UgY29udHJv
bCBwb3NzaWJsZQpbICAgIDEuMTQ1ODY3XSBwY2kgMDAwMDowNTowMC4wOiB2Z2FhcmI6IFZHQSBk
ZXZpY2UgYWRkZWQ6IGRlY29kZXM9aW8rbWVtLG93bnM9bm9uZSxsb2Nrcz1ub25lClsgICAgMS4x
NDU4NjddIHZnYWFyYjogbG9hZGVkClsgICAgMS4xNDU4NjddIGNsb2Nrc291cmNlOiBTd2l0Y2hl
ZCB0byBjbG9ja3NvdXJjZSB0c2MtZWFybHkKWyAgICAxLjE0ODk0MV0gVkZTOiBEaXNrIHF1b3Rh
cyBkcXVvdF82LjYuMApbICAgIDEuMTQ4OTc5XSBWRlM6IERxdW90LWNhY2hlIGhhc2ggdGFibGUg
ZW50cmllczogNTEyIChvcmRlciAwLCA0MDk2IGJ5dGVzKQpbICAgIDEuMTQ5NzI3XSBBcHBBcm1v
cjogQXBwQXJtb3IgRmlsZXN5c3RlbSBFbmFibGVkClsgICAgMS4xNDk4MTNdIHBucDogUG5QIEFD
UEkgaW5pdApbICAgIDEuMTUwNzE0XSBzeXN0ZW0gMDA6MDA6IFttZW0gMHhmZWMwMDAwMC0weGZl
YzAxZmZmXSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjE1MDcyNV0gc3lzdGVtIDAwOjAw
OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjE1
MDczMF0gc3lzdGVtIDAwOjAwOiBbbWVtIDB4ZmRlMDAwMDAtMHhmZGVmZmZmZl0gaGFzIGJlZW4g
cmVzZXJ2ZWQKWyAgICAxLjE1MDkzMV0gc3lzdGVtIDAwOjAzOiBbaW8gIDB4MDQwMC0weDA0Y2Zd
IGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS4xNTA5MzFdIHN5c3RlbSAwMDowMzogW2lvICAweDA0
ZDAtMHgwNGQxXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuMTUwOTMxXSBzeXN0ZW0gMDA6MDM6
IFtpbyAgMHgwNGQ2XSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuMTUwOTMxXSBzeXN0ZW0gMDA6
MDM6IFtpbyAgMHgwYzAwLTB4MGMwMV0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjE1MDkzMV0g
c3lzdGVtIDAwOjAzOiBbaW8gIDB4MGMxNF0gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjE1MDkz
MV0gc3lzdGVtIDAwOjAzOiBbaW8gIDB4MGM1MC0weDBjNTJdIGhhcyBiZWVuIHJlc2VydmVkClsg
ICAgMS4xNTA5MzFdIHN5c3RlbSAwMDowMzogW2lvICAweDBjNmNdIGhhcyBiZWVuIHJlc2VydmVk
ClsgICAgMS4xNTA5MzFdIHN5c3RlbSAwMDowMzogW2lvICAweDBjNmZdIGhhcyBiZWVuIHJlc2Vy
dmVkClsgICAgMS4xNTA5MzFdIHN5c3RlbSAwMDowMzogW2lvICAweDBjZDAtMHgwY2RiXSBoYXMg
YmVlbiByZXNlcnZlZApbICAgIDEuMTUwOTMxXSB1bmNoZWNrZWQgTVNSIGFjY2VzcyBlcnJvcjog
UkRNU1IgZnJvbSAweGMwMDEwMDU4IGF0IHJJUDogMHhmZmZmZmZmZjgxMGE1NWQ4IChuYXRpdmVf
cmVhZF9tc3IrMHg4LzB4NDApClsgICAgMS4xNTA5MzFdIENhbGwgVHJhY2U6ClsgICAgMS4xNTA5
MzFdICA8VEFTSz4KWyAgICAxLjE1MDkzMV0gID8gc2hvd19zdGFja19yZWdzKzB4MjIvMHgzMApb
ICAgIDEuMTUwOTMxXSAgPyBleF9oYW5kbGVyX21zcisweDEzYS8weDE2MApbICAgIDEuMTUwOTMx
XSAgPyBmaXh1cF9leGNlcHRpb24rMHhiZC8weDMzMApbICAgIDEuMTUwOTMxXSAgPyBleGNfZ2Vu
ZXJhbF9wcm90ZWN0aW9uKzB4MTRiLzB4NDYwClsgICAgMS4xNTA5MzFdICA/IGttZW1sZWFrX2Fs
bG9jKzB4NGIvMHg4MApbICAgIDEuMTUwOTMxXSAgPyBhc21fZXhjX2dlbmVyYWxfcHJvdGVjdGlv
bisweDI3LzB4MzAKWyAgICAxLjE1MDkzMV0gID8gbmF0aXZlX3JlYWRfbXNyKzB4OC8weDQwClsg
ICAgMS4xNTA5MzFdICBhbWRfZ2V0X21tY29uZmlnX3JhbmdlKzB4MmYvMHg4MApbICAgIDEuMTUw
OTMxXSAgcXVpcmtfYW1kX21tY29uZmlnX2FyZWErMHgyZC8weDEwMApbICAgIDEuMTUwOTMxXSAg
PyBxdWlya19zeXN0ZW1fcGNpX3Jlc291cmNlcysweDM0LzB4MTUwClsgICAgMS4xNTA5MzFdICBw
bnBfZml4dXBfZGV2aWNlKzB4M2YvMHg2MApbICAgIDEuMTUwOTMxXSAgX19wbnBfYWRkX2Rldmlj
ZSsweDI2LzB4MWMwClsgICAgMS4xNTA5MzFdICBwbnBfYWRkX2RldmljZSsweDNlLzB4MTEwClsg
ICAgMS4xNTA5MzFdICA/IF9fcGZ4X3BucGFjcGlfYWxsb2NhdGVkX3Jlc291cmNlKzB4MTAvMHgx
MApbICAgIDEuMTUwOTMxXSAgPyBfX3BmeF9wbnBhY3BpX2FsbG9jYXRlZF9yZXNvdXJjZSsweDEw
LzB4MTAKWyAgICAxLjE1MDkzMV0gID8gYWNwaV93YWxrX3Jlc291cmNlcysweGYwLzB4MTcwClsg
ICAgMS4xNTA5MzFdICBwbnBhY3BpX2FkZF9kZXZpY2VfaGFuZGxlcisweDI1Yy8weDNhMApbICAg
IDEuMTUwOTMxXSAgYWNwaV9uc19nZXRfZGV2aWNlX2NhbGxiYWNrKzB4MTBlLzB4MWMwClsgICAg
MS4xNTA5MzFdICA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDI3LzB4NTAKWyAgICAx
LjE1MDkzMV0gIGFjcGlfbnNfd2Fsa19uYW1lc3BhY2UrMHgxNzYvMHgzMzAKWyAgICAxLjE1MDkz
MV0gID8gX19wZnhfYWNwaV9uc19nZXRfZGV2aWNlX2NhbGxiYWNrKzB4MTAvMHgxMApbICAgIDEu
MTUwOTMxXSAgYWNwaV9nZXRfZGV2aWNlcysweDllLzB4MTUwClsgICAgMS4xNTA5MzFdICA/IF9f
cGZ4X3BucGFjcGlfYWRkX2RldmljZV9oYW5kbGVyKzB4MTAvMHgxMApbICAgIDEuMTUwOTMxXSAg
PyBfX3BmeF9wbnBhY3BpX2luaXQrMHgxMC8weDEwClsgICAgMS4xNTA5MzFdICBwbnBhY3BpX2lu
aXQrMHg1NS8weDgwClsgICAgMS4xNTA5MzFdICBkb19vbmVfaW5pdGNhbGwrMHg0OS8weDMyMApb
ICAgIDEuMTUwOTMxXSAga2VybmVsX2luaXRfZnJlZWFibGUrMHgzMDEvMHg0NDAKWyAgICAxLjE1
MDkzMV0gID8gX19wZnhfa2VybmVsX2luaXQrMHgxMC8weDEwClsgICAgMS4xNTA5MzFdICBrZXJu
ZWxfaW5pdCsweDFhLzB4MWQwClsgICAgMS4xNTA5MzFdICByZXRfZnJvbV9mb3JrKzB4M2MvMHg2
MApbICAgIDEuMTUwOTMxXSAgPyBfX3BmeF9rZXJuZWxfaW5pdCsweDEwLzB4MTAKWyAgICAxLjE1
MDkzMV0gIHJldF9mcm9tX2ZvcmtfYXNtKzB4MWEvMHgzMApbICAgIDEuMTUwOTMxXSAgPC9UQVNL
PgpbICAgIDEuMTUwOTMxXSBzeXN0ZW0gMDA6MDQ6IFttZW0gMHgwMDBlMDAwMC0weDAwMGZmZmZm
XSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQKWyAgICAxLjE1MDkzMV0gc3lzdGVtIDAwOjA0OiBbbWVt
IDB4ZmYwMDAwMDAtMHhmZmZmZmZmZl0gY291bGQgbm90IGJlIHJlc2VydmVkClsgICAgMS4xNTY2
OTVdIHBucDogUG5QIEFDUEk6IGZvdW5kIDUgZGV2aWNlcwpbICAgIDEuMTcxMjMwXSBQTS1UaW1l
ciBmYWlsZWQgY29uc2lzdGVuY3kgY2hlY2sgICgweGZmZmZmZikgLSBhYm9ydGluZy4KWyAgICAx
LjE3MTQ0Nl0gTkVUOiBSZWdpc3RlcmVkIFBGX0lORVQgcHJvdG9jb2wgZmFtaWx5ClsgICAgMS4x
NzE2NjVdIElQIGlkZW50cyBoYXNoIHRhYmxlIGVudHJpZXM6IDEzMTA3MiAob3JkZXI6IDgsIDEw
NDg1NzYgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjE3MzUzMF0gdGNwX2xpc3Rlbl9wb3J0YWRkcl9o
YXNoIGhhc2ggdGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5l
YXIpClsgICAgMS4xNzM2MDldIFRhYmxlLXBlcnR1cmIgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUz
NiAob3JkZXI6IDYsIDI2MjE0NCBieXRlcywgbGluZWFyKQpbICAgIDEuMTczNzAxXSBUQ1AgZXN0
YWJsaXNoZWQgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUzNiAob3JkZXI6IDcsIDUyNDI4OCBieXRl
cywgbGluZWFyKQpbICAgIDEuMTc0MDkxXSBUQ1AgYmluZCBoYXNoIHRhYmxlIGVudHJpZXM6IDY1
NTM2IChvcmRlcjogOSwgMjA5NzE1MiBieXRlcywgbGluZWFyKQpbICAgIDEuMTc0Mjk5XSBUQ1A6
IEhhc2ggdGFibGVzIGNvbmZpZ3VyZWQgKGVzdGFibGlzaGVkIDY1NTM2IGJpbmQgNjU1MzYpClsg
ICAgMS4xNzQ1MzJdIFVEUCBoYXNoIHRhYmxlIGVudHJpZXM6IDQwOTYgKG9yZGVyOiA1LCAxMzEw
NzIgYnl0ZXMsIGxpbmVhcikKWyAgICAxLjE3NDU3N10gVURQLUxpdGUgaGFzaCB0YWJsZSBlbnRy
aWVzOiA0MDk2IChvcmRlcjogNSwgMTMxMDcyIGJ5dGVzLCBsaW5lYXIpClsgICAgMS4xNzQ4NzVd
IE5FVDogUmVnaXN0ZXJlZCBQRl9VTklYL1BGX0xPQ0FMIHByb3RvY29sIGZhbWlseQpbICAgIDEu
MTc0OTA4XSBORVQ6IFJlZ2lzdGVyZWQgUEZfWERQIHByb3RvY29sIGZhbWlseQpbICAgIDEuMTc0
OTE3XSBwY2kgMDAwMDowMzowMC4wOiBST00gW21lbSAweGZmZmUwMDAwLTB4ZmZmZmZmZmYgcHJl
Zl06IGNhbid0IGNsYWltOyBubyBjb21wYXRpYmxlIGJyaWRnZSB3aW5kb3cKWyAgICAxLjE3NDk1
N10gcGNpIDAwMDA6MDM6MDAuMDogUk9NIFttZW0gMHhkMDcyMDAwMC0weGQwNzNmZmZmIHByZWZd
OiBhc3NpZ25lZApbICAgIDEuMTc0OTYyXSBwY2kgMDAwMDowMjowMC4wOiBQQ0kgYnJpZGdlIHRv
IFtidXMgMDNdClsgICAgMS4xNzQ5ODVdIHBjaSAwMDAwOjAyOjAwLjA6ICAgYnJpZGdlIHdpbmRv
dyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4xNzQ5OTddIHBjaSAwMDAwOjAyOjAwLjA6ICAg
YnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdmZmZmZl0KWyAgICAxLjE3NTAwNV0g
cGNpIDAwMDA6MDI6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNh
MDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMTc1MDE4XSBwY2kgMDAwMDowMTowMC4wOiBQQ0kg
YnJpZGdlIHRvIFtidXMgMDItMDNdClsgICAgMS4xNzUwMjRdIHBjaSAwMDAwOjAxOjAwLjA6ICAg
YnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4xNzUwMzNdIHBjaSAwMDAw
OjAxOjAwLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdmZmZmZl0KWyAg
ICAxLjE3NTA0MV0gcGNpIDAwMDA6MDE6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmYzkw
MDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMTc1MDU0XSBwY2kgMDAwMDow
MDowMS4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDEtMDNdClsgICAgMS4xNzUwNjFdIHBjaSAwMDAw
OjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4xNzUw
NzBdIHBjaSAwMDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhk
MDhmZmZmZl0KWyAgICAxLjE3NTA3Nl0gcGNpIDAwMDA6MDA6MDEuMTogICBicmlkZ2Ugd2luZG93
IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMTc1MDg5
XSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDRdClsgICAgMS4xNzUwOTld
IHBjaSAwMDAwOjAwOjAyLjQ6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA1MDAwMDAtMHhkMDVm
ZmZmZl0KWyAgICAxLjE3NTEyMF0gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVz
IDA1XQpbICAgIDEuMTc1MTI1XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW2lv
ICAweDEwMDAtMHgxZmZmXQpbICAgIDEuMTc1MTMzXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRn
ZSB3aW5kb3cgW21lbSAweGQwMTAwMDAwLTB4ZDA0ZmZmZmZdClsgICAgMS4xNzUxMzldIHBjaSAw
MDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmM3MDAwMDAwMC0weGZjODAxZmZm
ZmYgNjRiaXQgcHJlZl0KWyAgICAxLjE3NTE1Ml0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRn
ZSB0byBbYnVzIDA2XQpbICAgIDEuMTc1MTYxXSBwY2kgMDAwMDowMDowOC4yOiAgIGJyaWRnZSB3
aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZDAwZmZmZmZdClsgICAgMS4xNzUxNzldIHBjaV9idXMg
MDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAwMC0weDBjZjcgd2luZG93XQpbICAgIDEuMTc1
MTgxXSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDUgW2lvICAweDBkMDAtMHhmZmZmIHdpbmRv
d10KWyAgICAxLjE3NTE4M10gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA2IFttZW0gMHgwMDBh
MDAwMC0weDAwMGJmZmZmIHdpbmRvd10KWyAgICAxLjE3NTE4NV0gcGNpX2J1cyAwMDAwOjAwOiBy
ZXNvdXJjZSA3IFttZW0gMHgwMDBjMDAwMC0weDAwMGNmZmZmIHdpbmRvd10KWyAgICAxLjE3NTE4
N10gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4IFttZW0gMHgwMDBkMDAwMC0weDAwMGVmZmZm
IHdpbmRvd10KWyAgICAxLjE3NTE4OV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA5IFttZW0g
MHhkMDAwMDAwMC0weGVmZmZmZmZmIHdpbmRvd10KWyAgICAxLjE3NTE5MV0gcGNpX2J1cyAwMDAw
OjAwOiByZXNvdXJjZSAxMCBbbWVtIDB4ZjgwMDAwMDAtMHhmZWFmZmZmZiB3aW5kb3ddClsgICAg
MS4xNzUxOTNdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTEgW21lbSAweGZlZDQ1MDAwLTB4
ZmVkODExZmYgd2luZG93XQpbICAgIDEuMTc1MTk2XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNl
IDEyIFttZW0gMHhmZWQ4MTkwMC0weGZlZDgxZmZmIHdpbmRvd10KWyAgICAxLjE3NTE5OF0gcGNp
X2J1cyAwMDAwOjAwOiByZXNvdXJjZSAxMyBbbWVtIDB4ZmVkYzAwMDAtMHhmZWRjMGZmZiB3aW5k
b3ddClsgICAgMS4xNzUyMDBdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMTQgW21lbSAweGZl
ZGM2MDAwLTB4ZmVkYzZmZmYgd2luZG93XQpbICAgIDEuMTc1MjAyXSBwY2lfYnVzIDAwMDA6MDA6
IHJlc291cmNlIDE1IFttZW0gMHg4NTAyMDAwMDAtMHhmY2FmZmZmZmZmIHdpbmRvd10KWyAgICAx
LjE3NTIwNF0gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAwIFtpbyAgMHgyMDAwLTB4MmZmZl0K
WyAgICAxLjE3NTIwNl0gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAxIFttZW0gMHhkMDYwMDAw
MC0weGQwOGZmZmZmXQpbICAgIDEuMTc1MjA4XSBwY2lfYnVzIDAwMDA6MDE6IHJlc291cmNlIDIg
W21lbSAweGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4xNzUyMTBd
IHBjaV9idXMgMDAwMDowMjogcmVzb3VyY2UgMCBbaW8gIDB4MjAwMC0weDJmZmZdClsgICAgMS4x
NzUyMTJdIHBjaV9idXMgMDAwMDowMjogcmVzb3VyY2UgMSBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdm
ZmZmZl0KWyAgICAxLjE3NTIxNF0gcGNpX2J1cyAwMDAwOjAyOiByZXNvdXJjZSAyIFttZW0gMHhm
YzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMTc1MjE2XSBwY2lfYnVz
IDAwMDA6MDM6IHJlc291cmNlIDAgW2lvICAweDIwMDAtMHgyZmZmXQpbICAgIDEuMTc1MjE4XSBw
Y2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDEgW21lbSAweGQwNjAwMDAwLTB4ZDA3ZmZmZmZdClsg
ICAgMS4xNzUyMjBdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMiBbbWVtIDB4ZmM5MDAwMDAw
MC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjE3NTIyMl0gcGNpX2J1cyAwMDAwOjA0
OiByZXNvdXJjZSAxIFttZW0gMHhkMDUwMDAwMC0weGQwNWZmZmZmXQpbICAgIDEuMTc1MjI0XSBw
Y2lfYnVzIDAwMDA6MDU6IHJlc291cmNlIDAgW2lvICAweDEwMDAtMHgxZmZmXQpbICAgIDEuMTc1
MjI2XSBwY2lfYnVzIDAwMDA6MDU6IHJlc291cmNlIDEgW21lbSAweGQwMTAwMDAwLTB4ZDA0ZmZm
ZmZdClsgICAgMS4xNzUyMjhdIHBjaV9idXMgMDAwMDowNTogcmVzb3VyY2UgMiBbbWVtIDB4ZmM3
MDAwMDAwMC0weGZjODAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjE3NTIzMF0gcGNpX2J1cyAw
MDAwOjA2OiByZXNvdXJjZSAxIFttZW0gMHhkMDAwMDAwMC0weGQwMGZmZmZmXQpbICAgIDEuMTc1
NjMwXSBwY2kgMDAwMDowMTowMC4wOiBDTFMgbWlzbWF0Y2ggKDY0ICE9IDQ4NCksIHVzaW5nIDY0
IGJ5dGVzClsgICAgMS4xNzU3NjhdIHBjaSAwMDAwOjAzOjAwLjE6IEQwIHBvd2VyIHN0YXRlIGRl
cGVuZHMgb24gMDAwMDowMzowMC4wClsgICAgMS4xNzYwNTJdIHBjaSAwMDAwOjA1OjAwLjE6IEQw
IHBvd2VyIHN0YXRlIGRlcGVuZHMgb24gMDAwMDowNTowMC4wClsgICAgMS4xNzYwNjBdIHBjaSAw
MDAwOjA1OjAwLjM6IGV4dGVuZGluZyBkZWxheSBhZnRlciBwb3dlci1vbiBmcm9tIEQzaG90IHRv
IDIwIG1zZWMKWyAgICAxLjIzNTQ3N10gcGNpIDAwMDA6MDU6MDAuMzogcXVpcmtfdXNiX2Vhcmx5
X2hhbmRvZmYrMHgwLzB4NzUwIHRvb2sgNTgwMTYgdXNlY3MKWyAgICAxLjIzNTUwNF0gcGNpIDAw
MDA6MDU6MDAuNDogZXh0ZW5kaW5nIGRlbGF5IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8g
MjAgbXNlYwpbICAgIDEuMjc5OTEyXSBwY2kgMDAwMDowNTowMC40OiBxdWlya191c2JfZWFybHlf
aGFuZG9mZisweDAvMHg3NTAgdG9vayA0MzM2MSB1c2VjcwpbICAgIDEuMjc5OTk3XSBQQ0ktRE1B
OiBVc2luZyBzb2Z0d2FyZSBib3VuY2UgYnVmZmVyaW5nIGZvciBJTyAoU1dJT1RMQikKWyAgICAx
LjI3OTk5OV0gc29mdHdhcmUgSU8gVExCOiBtYXBwZWQgW21lbSAweDAwMDAwMDAwYzQ3N2YwMDAt
MHgwMDAwMDAwMGM4NzdmMDAwXSAoNjRNQikKWyAgICAxLjI4MDA5OV0gY2xvY2tzb3VyY2U6IHRz
YzogbWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MmIyOTg0ZDA2MDksIG1h
eF9pZGxlX25zOiA0NDA3OTUzNTk4MDUgbnMKWyAgICAxLjI4MDIzOF0gY2xvY2tzb3VyY2U6IFN3
aXRjaGVkIHRvIGNsb2Nrc291cmNlIHRzYwpbICAgIDEuMjgwMzE0XSBUcnlpbmcgdG8gdW5wYWNr
IHJvb3RmcyBpbWFnZSBhcyBpbml0cmFtZnMuLi4KWyAgICAxLjI4MjY0NF0gSW5pdGlhbGlzZSBz
eXN0ZW0gdHJ1c3RlZCBrZXlyaW5ncwpbICAgIDEuMjgyNjcyXSBLZXkgdHlwZSBibGFja2xpc3Qg
cmVnaXN0ZXJlZApbICAgIDEuMjgyOTA4XSB3b3JraW5nc2V0OiB0aW1lc3RhbXBfYml0cz0zNiBt
YXhfb3JkZXI9MjEgYnVja2V0X29yZGVyPTAKWyAgICAxLjI4MjkzM10gemJ1ZDogbG9hZGVkClsg
ICAgMS4yODM5NDFdIHNxdWFzaGZzOiB2ZXJzaW9uIDQuMCAoMjAwOS8wMS8zMSkgUGhpbGxpcCBM
b3VnaGVyClsgICAgMS4yODQzNDhdIGZ1c2U6IGluaXQgKEFQSSB2ZXJzaW9uIDcuNDEpClsgICAg
MS4yODUzNTFdIGludGVncml0eTogUGxhdGZvcm0gS2V5cmluZyBpbml0aWFsaXplZApbICAgIDEu
Mjk3MDEzXSBLZXkgdHlwZSBhc3ltbWV0cmljIHJlZ2lzdGVyZWQKWyAgICAxLjI5NzAxOF0gQXN5
bW1ldHJpYyBrZXkgcGFyc2VyICd4NTA5JyByZWdpc3RlcmVkClsgICAgMS4yOTcxNDddIEJsb2Nr
IGxheWVyIFNDU0kgZ2VuZXJpYyAoYnNnKSBkcml2ZXIgdmVyc2lvbiAwLjQgbG9hZGVkIChtYWpv
ciAyNDUpClsgICAgMS4yOTc0ODRdIGlvIHNjaGVkdWxlciBtcS1kZWFkbGluZSByZWdpc3RlcmVk
ClsgICAgMS4zMDIxNjhdIGFtZF9ncGlvIEFNREkwMDMwOjAwOiBlcnJvciAtRUlOVkFMOiBJUlEg
aW5kZXggMCBub3QgZm91bmQKWyAgICAxLjMwMjI4M10gYW1kX2dwaW8gQU1ESTAwMzA6MDA6IHBy
b2JlIHdpdGggZHJpdmVyIGFtZF9ncGlvIGZhaWxlZCB3aXRoIGVycm9yIC0yMgpbICAgIDEuMzAz
MTMyXSBsZWR0cmlnLWNwdTogcmVnaXN0ZXJlZCB0byBpbmRpY2F0ZSBhY3Rpdml0eSBvbiBDUFVz
ClsgICAgMS4zMDM5MDBdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogUE1FOiBTaWduYWxpbmcgd2l0
aCBJUlEgODcKWyAgICAxLjMwNDMzNV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBBRVI6IGVuYWJs
ZWQgd2l0aCBJUlEgODcKWyAgICAxLjMwNDQ0NV0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiBwY2ll
aHA6IFNsb3QgIzAgQXR0bkJ0bi0gUHdyQ3RybC0gTVJMLSBBdHRuSW5kLSBQd3JJbmQtIEhvdFBs
dWcrIFN1cnByaXNlKyBJbnRlcmxvY2stIE5vQ29tcGwrIEliUHJlc0Rpcy0gTExBY3RSZXArClsg
ICAgMS4zMDU3ODVdIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogUE1FOiBTaWduYWxpbmcgd2l0aCBJ
UlEgODgKWyAgICAxLjMwNjE5MV0gcGNpZXBvcnQgMDAwMDowMDowMi40OiBBRVI6IGVuYWJsZWQg
d2l0aCBJUlEgODgKWyAgICAxLjMwNzEwNF0gcGNpZXBvcnQgMDAwMDowMDowOC4xOiBQTUU6IFNp
Z25hbGluZyB3aXRoIElSUSA4OQpbICAgIDEuMzA4Mzc2XSBwY2llcG9ydCAwMDAwOjAwOjA4LjI6
IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDkwClsgICAgMS4zMTA5MDddIHNocGNocDogU3RhbmRh
cmQgSG90IFBsdWcgUENJIENvbnRyb2xsZXIgRHJpdmVyIHZlcnNpb246IDAuNApbICAgIDEuMzE1
NzI1XSBBQ1BJOiBBQzogQUMgQWRhcHRlciBbQUNBRF0gKG9uLWxpbmUpClsgICAgMS4zMTYwMDNd
IGlucHV0OiBQb3dlciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAv
UE5QMEMwQzowMC9pbnB1dC9pbnB1dDAKWyAgICAxLjMxNjEzMV0gQUNQSTogYnV0dG9uOiBQb3dl
ciBCdXR0b24gW1BXUkJdClsgICAgMS4zMTYzNTZdIGlucHV0OiBMaWQgU3dpdGNoIGFzIC9kZXZp
Y2VzL0xOWFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBDMEQ6MDAvaW5wdXQvaW5wdXQxClsgICAg
MS4zMTY0NThdIEFDUEk6IGJ1dHRvbjogTGlkIFN3aXRjaCBbTElEXQpbICAgIDEuMzE2NjUzXSBp
bnB1dDogUG93ZXIgQnV0dG9uIGFzIC9kZXZpY2VzL0xOWFNZU1RNOjAwL0xOWFBXUkJOOjAwL2lu
cHV0L2lucHV0MgpbICAgIDEuMzE2ODQ0XSBBQ1BJOiBidXR0b246IFBvd2VyIEJ1dHRvbiBbUFdS
Rl0KWyAgICAxLjMxNzUyNl0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAg
bm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEuMzE4MDAxXSBbRmlybXdhcmUgQnVnXTog
QUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApClsgICAgMS4z
MTg0MzNdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0
ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjMxOTEzN10gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQg
Qy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEuMzE5ODg4XSBbRmly
bXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgw
eDApClsgICAgMS4zMjA1NjVdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgw
IG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjMyMTA4NF0gW0Zpcm13YXJlIEJ1Z106
IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQpbICAgIDEu
MzIxNDY5XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9y
dGVkIGJ5IEhXICgweDApClsgICAgMS4zMjE4NjFdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1XQUlU
IEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAxLjMyMjI4MV0gW0Zp
cm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1cHBvcnRlZCBieSBIVyAo
MHgwKQpbICAgIDEuMzIyNzEyXSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4
MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApClsgICAgMS4zMjMxNjhdIFtGaXJtd2FyZSBCdWdd
OiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkKWyAgICAx
LjMyNzM4MV0gdGhlcm1hbCBMTlhUSEVSTTowMDogcmVnaXN0ZXJlZCBhcyB0aGVybWFsX3pvbmUw
ClsgICAgMS4zMjczOTFdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBbVFowMV0gKDQ2IEMp
ClsgICAgMS4zMjg0ODBdIEFDUEk6IGJhdHRlcnk6IFNsb3QgW0JBVFRdIChiYXR0ZXJ5IGFic2Vu
dCkKWyAgICAxLjMyOTMxM10geGVuX21jZWxvZzogRmFpbGVkIHRvIGdldCBDUFUgbnVtYmVycwpb
ICAgIDEuMzMxOTg4XSB4ZW5fYWNwaV9wcm9jZXNzb3I6IFVwbG9hZGluZyBYZW4gcHJvY2Vzc29y
IFBNIGluZm8KWyAgICAxLjMzOTY4OF0gU2VyaWFsOiA4MjUwLzE2NTUwIGRyaXZlciwgMzIgcG9y
dHMsIElSUSBzaGFyaW5nIGVuYWJsZWQKWyAgICAxLjM1MjY3Ml0gaHBldF9hY3BpX2FkZDogbm8g
YWRkcmVzcyBvciBpcnFzIGluIF9DUlMKWyAgICAxLjM1Mjc3NV0gTGludXggYWdwZ2FydCBpbnRl
cmZhY2UgdjAuMTAzClsgICAgMS4zNTQ4NTNdIHRwbV90aXMgTVNGVDAxMDE6MDA6IFtGaXJtd2Fy
ZSBCdWddOiBmYWlsZWQgdG8gZ2V0IFRQTTIgQUNQSSB0YWJsZQpbICAgIDEuMzU1MDU4XSB0cG1f
dGlzIE1TRlQwMTAxOjAwOiBwcm9iZSB3aXRoIGRyaXZlciB0cG1fdGlzIGZhaWxlZCB3aXRoIGVy
cm9yIC0yMgpbICAgIDEuMzU1MjM3XSB0cG1fY3JiIE1TRlQwMTAxOjAwOiBbRmlybXdhcmUgQnVn
XTogZmFpbGVkIHRvIGdldCBUUE0yIEFDUEkgdGFibGUKWyAgICAxLjM1NTI3MV0gdHBtX2NyYiBN
U0ZUMDEwMTowMDogcHJvYmUgd2l0aCBkcml2ZXIgdHBtX2NyYiBmYWlsZWQgd2l0aCBlcnJvciAt
MjIKWyAgICAxLjM3MDU3NF0gbG9vcDogbW9kdWxlIGxvYWRlZApbICAgIDEuMzcxNzg4XSB0dW46
IFVuaXZlcnNhbCBUVU4vVEFQIGRldmljZSBkcml2ZXIsIDEuNgpbICAgIDEuMzcxOTk5XSBQUFAg
Z2VuZXJpYyBkcml2ZXIgdmVyc2lvbiAyLjQuMgpbICAgIDEuMzcyMTU4XSB4ZW5fbmV0ZnJvbnQ6
IEluaXRpYWxpc2luZyBYZW4gdmlydHVhbCBldGhlcm5ldCBkcml2ZXIKWyAgICAxLjM3MjU5Ml0g
VkZJTyAtIFVzZXIgTGV2ZWwgbWV0YS1kcml2ZXIgdmVyc2lvbjogMC4zClsgICAgMS4zNzMzMDRd
IHhoY2lfaGNkIDAwMDA6MDU6MDAuMzogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjM3MzMy
Nl0geGhjaV9oY2QgMDAwMDowNTowMC4zOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25l
ZCBidXMgbnVtYmVyIDEKWyAgICAxLjM3MzQ3NV0geGhjaV9oY2QgMDAwMDowNTowMC4zOiBoY2Mg
cGFyYW1zIDB4MDI2OGZmZTUgaGNpIHZlcnNpb24gMHgxMTAgcXVpcmtzIDB4MDAwMDAyMDAwMDAw
MDAxMApbICAgIDEuMzc0OTYzXSB4aGNpX2hjZCAwMDAwOjA1OjAwLjM6IHhIQ0kgSG9zdCBDb250
cm9sbGVyClsgICAgMS4zNzQ5NzhdIHhoY2lfaGNkIDAwMDA6MDU6MDAuMzogbmV3IFVTQiBidXMg
cmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAyClsgICAgMS4zNzQ5ODhdIHhoY2lfaGNk
IDAwMDA6MDU6MDAuMzogSG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVuaGFuY2VkIFN1cGVyU3BlZWQK
WyAgICAxLjM3NTEzMl0gdXNiIHVzYjE6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0x
ZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjEyClsgICAgMS4zNzUxMzZdIHVzYiB1
c2IxOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1i
ZXI9MQpbICAgIDEuMzc1MTM4XSB1c2IgdXNiMTogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xs
ZXIKWyAgICAxLjM3NTE0MF0gdXNiIHVzYjE6IE1hbnVmYWN0dXJlcjogTGludXggNi4xMi4wLXJj
NS1nNWM2ODA4ZDFhOWRkIHhoY2ktaGNkClsgICAgMS4zNzUxNDNdIHVzYiB1c2IxOiBTZXJpYWxO
dW1iZXI6IDAwMDA6MDU6MDAuMwpbICAgIDEuMzc1NzY4XSBodWIgMS0wOjEuMDogVVNCIGh1YiBm
b3VuZApbICAgIDEuMzc1Nzk5XSBodWIgMS0wOjEuMDogNCBwb3J0cyBkZXRlY3RlZApbICAgIDEu
Mzc3MjU4XSB1c2IgdXNiMjogV2UgZG9uJ3Qga25vdyB0aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZv
ciB0aGlzIGhvc3QsIGRpc2FibGluZyBMUE0uClsgICAgMS4zNzczNjJdIHVzYiB1c2IyOiBOZXcg
VVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmlj
ZT0gNi4xMgpbICAgIDEuMzc3MzY2XSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczog
TWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICAxLjM3NzM2OV0gdXNiIHVzYjI6
IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMS4zNzczNzFdIHVzYiB1c2IyOiBN
YW51ZmFjdHVyZXI6IExpbnV4IDYuMTIuMC1yYzUtZzVjNjgwOGQxYTlkZCB4aGNpLWhjZApbICAg
IDEuMzc3MzczXSB1c2IgdXNiMjogU2VyaWFsTnVtYmVyOiAwMDAwOjA1OjAwLjMKWyAgICAxLjM3
NzkyNF0gaHViIDItMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAxLjM3Nzk1M10gaHViIDItMDox
LjA6IDIgcG9ydHMgZGV0ZWN0ZWQKWyAgICAxLjM3OTExNl0geGhjaV9oY2QgMDAwMDowNTowMC40
OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDEuMzc5MTMzXSB4aGNpX2hjZCAwMDAwOjA1OjAw
LjQ6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMwpbICAgIDEu
Mzc5Mjc0XSB4aGNpX2hjZCAwMDAwOjA1OjAwLjQ6IGhjYyBwYXJhbXMgMHgwMjY4ZmZlNSBoY2kg
dmVyc2lvbiAweDExMCBxdWlya3MgMHgwMDAwMDIwMDAwMDAwMDEwClsgICAgMS4zODA4NDRdIHho
Y2lfaGNkIDAwMDA6MDU6MDAuNDogeEhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAxLjM4MTMwNl0g
eGhjaV9oY2QgMDAwMDowNTowMC40OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBi
dXMgbnVtYmVyIDQKWyAgICAxLjM4MTMxN10geGhjaV9oY2QgMDAwMDowNTowMC40OiBIb3N0IHN1
cHBvcnRzIFVTQiAzLjEgRW5oYW5jZWQgU3VwZXJTcGVlZApbICAgIDEuMzgxNjExXSB1c2IgdXNi
MzogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBi
Y2REZXZpY2U9IDYuMTIKWyAgICAxLjM4MTYyMl0gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIHN0
cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAgMS4zODE2MjZdIHVz
YiB1c2IzOiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDEuMzgxNjMwXSB1c2Ig
dXNiMzogTWFudWZhY3R1cmVyOiBMaW51eCA2LjEyLjAtcmM1LWc1YzY4MDhkMWE5ZGQgeGhjaS1o
Y2QKWyAgICAxLjM4MTYzNF0gdXNiIHVzYjM6IFNlcmlhbE51bWJlcjogMDAwMDowNTowMC40Clsg
ICAgMS4zODIzOTZdIGh1YiAzLTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMS4zODI0NDNdIGh1
YiAzLTA6MS4wOiA0IHBvcnRzIGRldGVjdGVkClsgICAgMS4zODM3NDNdIHVzYiB1c2I0OiBXZSBk
b24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZvciBMUE0gZm9yIHRoaXMgaG9zdCwgZGlzYWJsaW5n
IExQTS4KWyAgICAxLjM4MzgxOV0gdXNiIHVzYjQ6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl
bmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMywgYmNkRGV2aWNlPSA2LjEyClsgICAgMS4zODM4MjJd
IHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJp
YWxOdW1iZXI9MQpbICAgIDEuMzgzODIzXSB1c2IgdXNiNDogUHJvZHVjdDogeEhDSSBIb3N0IENv
bnRyb2xsZXIKWyAgICAxLjM4MzgyNV0gdXNiIHVzYjQ6IE1hbnVmYWN0dXJlcjogTGludXggNi4x
Mi4wLXJjNS1nNWM2ODA4ZDFhOWRkIHhoY2ktaGNkClsgICAgMS4zODM4MjZdIHVzYiB1c2I0OiBT
ZXJpYWxOdW1iZXI6IDAwMDA6MDU6MDAuNApbICAgIDEuMzg0MzU0XSBodWIgNC0wOjEuMDogVVNC
IGh1YiBmb3VuZApbICAgIDEuMzg0Mzc1XSBodWIgNC0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZApb
ICAgIDEuMzg1MTI5XSBpODA0MjogUE5QOiBQUy8yIENvbnRyb2xsZXIgW1BOUDAzMDM6S0JDMF0g
YXQgMHg2MCwweDY0IGlycSAxClsgICAgMS4zODUxMzJdIGk4MDQyOiBQTlA6IFBTLzIgYXBwZWFy
cyB0byBoYXZlIEFVWCBwb3J0IGRpc2FibGVkLCBpZiB0aGlzIGlzIGluY29ycmVjdCBwbGVhc2Ug
Ym9vdCB3aXRoIGk4MDQyLm5vcG5wClsgICAgMS4zODU0MzZdIGk4MDQyOiBXYXJuaW5nOiBLZXls
b2NrIGFjdGl2ZQpbICAgIDEuMzg1NzEyXSBzZXJpbzogaTgwNDIgS0JEIHBvcnQgYXQgMHg2MCww
eDY0IGlycSAxClsgICAgMS4zODYxOTBdIG1vdXNlZGV2OiBQUy8yIG1vdXNlIGRldmljZSBjb21t
b24gZm9yIGFsbCBtaWNlClsgICAgMS4zODcwODNdIHJ0Y19jbW9zIDAwOjAxOiBSVEMgY2FuIHdh
a2UgZnJvbSBTNApbICAgIDEuMzg3NTA1XSBydGNfY21vcyAwMDowMTogcmVnaXN0ZXJlZCBhcyBy
dGMwClsgICAgMS4zODc1NTldIHJ0Y19jbW9zIDAwOjAxOiBzZXR0aW5nIHN5c3RlbSBjbG9jayB0
byAyMDI0LTExLTE4VDA1OjQ2OjA0IFVUQyAoMTczMTkwODc2NCkKWyAgICAxLjM4NzYzMF0gcnRj
X2Ntb3MgMDA6MDE6IG5vIGFsYXJtcywgMTE0IGJ5dGVzIG52cmFtClsgICAgMS4zODc2NTBdIGky
Y19kZXY6IGkyYyAvZGV2IGVudHJpZXMgZHJpdmVyClsgICAgMS4zODc2OTBdIGRldmljZS1tYXBw
ZXI6IGNvcmU6IENPTkZJR19JTUFfRElTQUJMRV9IVEFCTEUgaXMgZGlzYWJsZWQuIER1cGxpY2F0
ZSBJTUEgbWVhc3VyZW1lbnRzIHdpbGwgbm90IGJlIHJlY29yZGVkIGluIHRoZSBJTUEgbG9nLgpb
ICAgIDEuMzg3NzE2XSBkZXZpY2UtbWFwcGVyOiB1ZXZlbnQ6IHZlcnNpb24gMS4wLjMKWyAgICAx
LjM4NzkwNV0gaW5wdXQ6IEFUIFRyYW5zbGF0ZWQgU2V0IDIga2V5Ym9hcmQgYXMgL2RldmljZXMv
cGxhdGZvcm0vaTgwNDIvc2VyaW8wL2lucHV0L2lucHV0MwpbICAgIDEuMzg3OTc1XSBkZXZpY2Ut
bWFwcGVyOiBpb2N0bDogNC40OC4wLWlvY3RsICgyMDIzLTAzLTAxKSBpbml0aWFsaXNlZDogZG0t
ZGV2ZWxAbGlzdHMubGludXguZGV2ClsgICAgMS4zODgwNjldIHBsYXRmb3JtIGVpc2EuMDogUHJv
YmluZyBFSVNBIGJ1cyAwClsgICAgMS4zODgwNzNdIHBsYXRmb3JtIGVpc2EuMDogRUlTQTogQ2Fu
bm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBtYWluYm9hcmQKWyAgICAxLjM4ODA3Nl0gcGxhdGZv
cm0gZWlzYS4wOiBDYW5ub3QgYWxsb2NhdGUgcmVzb3VyY2UgZm9yIEVJU0Egc2xvdCAxClsgICAg
MS4zODgwNzldIHBsYXRmb3JtIGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBF
SVNBIHNsb3QgMgpbICAgIDEuMzg4MDgxXSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0
ZSByZXNvdXJjZSBmb3IgRUlTQSBzbG90IDMKWyAgICAxLjM4ODA4NF0gcGxhdGZvcm0gZWlzYS4w
OiBDYW5ub3QgYWxsb2NhdGUgcmVzb3VyY2UgZm9yIEVJU0Egc2xvdCA0ClsgICAgMS4zODgwODZd
IHBsYXRmb3JtIGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBFSVNBIHNsb3Qg
NQpbICAgIDEuMzg4MDg5XSBwbGF0Zm9ybSBlaXNhLjA6IENhbm5vdCBhbGxvY2F0ZSByZXNvdXJj
ZSBmb3IgRUlTQSBzbG90IDYKWyAgICAxLjM4ODA5MV0gcGxhdGZvcm0gZWlzYS4wOiBDYW5ub3Qg
YWxsb2NhdGUgcmVzb3VyY2UgZm9yIEVJU0Egc2xvdCA3ClsgICAgMS4zODgwOTRdIHBsYXRmb3Jt
IGVpc2EuMDogQ2Fubm90IGFsbG9jYXRlIHJlc291cmNlIGZvciBFSVNBIHNsb3QgOApbICAgIDEu
Mzg4MDk1XSBwbGF0Zm9ybSBlaXNhLjA6IEVJU0E6IERldGVjdGVkIDAgY2FyZHMKWyAgICAxLjM4
ODA5N10gYW1kX3BzdGF0ZTogVGhlIENQUEMgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYnV0IGN1cnJl
bnRseSBkaXNhYmxlZCBieSB0aGUgQklPUy4KICAgICAgICAgICAgICAgUGxlYXNlIGVuYWJsZSBp
dCBpZiB5b3VyIEJJT1MgaGFzIHRoZSBDUFBDIG9wdGlvbi4KWyAgICAxLjM4ODA5OF0gYW1kX3Bz
dGF0ZTogdGhlIF9DUEMgb2JqZWN0IGlzIG5vdCBwcmVzZW50IGluIFNCSU9TIG9yIEFDUEkgZGlz
YWJsZWQKWyAgICAxLjM4ODE4OV0gZWZpZmI6IHByb2JpbmcgZm9yIGVmaWZiClsgICAgMS4zODgy
MTVdIGVmaWZiOiBObyBCR1JULCBub3Qgc2hvd2luZyBib290IGdyYXBoaWNzClsgICAgMS4zODgy
MTZdIGVmaWZiOiBmcmFtZWJ1ZmZlciBhdCAweGZjNzAwMDAwMDAsIHVzaW5nIDE0NDAwaywgdG90
YWwgMTQ0MDBrClsgICAgMS4zODgyMTddIGVmaWZiOiBtb2RlIGlzIDI1NjB4MTQ0MHgzMiwgbGlu
ZWxlbmd0aD0xMDI0MCwgcGFnZXM9MQpbICAgIDEuMzg4MjE5XSBlZmlmYjogc2Nyb2xsaW5nOiBy
ZWRyYXcKWyAgICAxLjM4ODIyMF0gZWZpZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlm
dD0yNDoxNjo4OjAKWyAgICAxLjM4ODU1NV0gQ29uc29sZTogc3dpdGNoaW5nIHRvIGNvbG91ciBm
cmFtZSBidWZmZXIgZGV2aWNlIDE2MHg0NQpbICAgIDEuMzkxNDQyXSBmYjA6IEVGSSBWR0EgZnJh
bWUgYnVmZmVyIGRldmljZQpbICAgIDEuMzkxNjA4XSBkcm9wX21vbml0b3I6IEluaXRpYWxpemlu
ZyBuZXR3b3JrIGRyb3AgbW9uaXRvciBzZXJ2aWNlClsgICAgMS4zOTE3NjhdIE5FVDogUmVnaXN0
ZXJlZCBQRl9JTkVUNiBwcm90b2NvbCBmYW1pbHkKWyAgICAxLjYyOTA2OF0gdXNiIDMtMzogbmV3
IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMiB1c2luZyB4aGNpX2hjZApbICAgIDEuNjI5
MTAxXSB1c2IgMS00OiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAyIHVzaW5nIHho
Y2lfaGNkClsgICAgMS42MzQ0MzRdIEZyZWVpbmcgaW5pdHJkIG1lbW9yeTogNTg0MTZLClsgICAg
MS42NDY2ODZdIFNlZ21lbnQgUm91dGluZyB3aXRoIElQdjYKWyAgICAxLjY0Njc1NF0gSW4tc2l0
dSBPQU0gKElPQU0pIHdpdGggSVB2NgpbICAgIDEuNjQ2ODQ4XSBORVQ6IFJlZ2lzdGVyZWQgUEZf
UEFDS0VUIHByb3RvY29sIGZhbWlseQpbICAgIDEuNjQ3MjY0XSBLZXkgdHlwZSBkbnNfcmVzb2x2
ZXIgcmVnaXN0ZXJlZApbICAgIDEuNjUwODA3XSBJUEkgc2hvcnRoYW5kIGJyb2FkY2FzdDogZW5h
YmxlZApbICAgIDEuNjU3Mzk3XSBzY2hlZF9jbG9jazogTWFya2luZyBzdGFibGUgKDE2MDQwMTE5
MDMsIDUyNzIwNjQ2KS0+KDE3MTM4OTUyNDgsIC01NzE2MjY5OSkKWyAgICAxLjY1ODI1OV0gcmVn
aXN0ZXJlZCB0YXNrc3RhdHMgdmVyc2lvbiAxClsgICAgMS42NTk3NjJdIExvYWRpbmcgY29tcGls
ZWQtaW4gWC41MDkgY2VydGlmaWNhdGVzClsgICAgMS42NjA1OTldIExvYWRlZCBYLjUwOSBjZXJ0
ICdCdWlsZCB0aW1lIGF1dG9nZW5lcmF0ZWQga2VybmVsIGtleTogZDY2MGMxNDE4YWEwODNmZDkx
MDhkMTgwMzJhNDRiMTliYzE2ZmJkMicKWyAgICAxLjY3MTAwN10gRGVtb3Rpb24gdGFyZ2V0cyBm
b3IgTm9kZSAwOiBudWxsClsgICAgMS42NzE2MDZdIGttZW1sZWFrOiBLZXJuZWwgbWVtb3J5IGxl
YWsgZGV0ZWN0b3IgaW5pdGlhbGl6ZWQgKG1lbSBwb29sIGF2YWlsYWJsZTogMTU2OTIpClsgICAg
MS42NzE2NjRdIGttZW1sZWFrOiBBdXRvbWF0aWMgbWVtb3J5IHNjYW5uaW5nIHRocmVhZCBzdGFy
dGVkClsgICAgMS42NzIwMThdIEtleSB0eXBlIC5mc2NyeXB0IHJlZ2lzdGVyZWQKWyAgICAxLjY3
MjAyMV0gS2V5IHR5cGUgZnNjcnlwdC1wcm92aXNpb25pbmcgcmVnaXN0ZXJlZApbICAgIDEuNjk4
NjExXSBLZXkgdHlwZSBlbmNyeXB0ZWQgcmVnaXN0ZXJlZApbICAgIDEuNjk4NjI2XSBBcHBBcm1v
cjogQXBwQXJtb3Igc2hhMjU2IHBvbGljeSBoYXNoaW5nIGVuYWJsZWQKWyAgICAxLjY5OTEwOF0g
aW1hOiBObyBUUE0gY2hpcCBmb3VuZCwgYWN0aXZhdGluZyBUUE0tYnlwYXNzIQpbICAgIDEuNjk5
MTI0XSBMb2FkaW5nIGNvbXBpbGVkLWluIG1vZHVsZSBYLjUwOSBjZXJ0aWZpY2F0ZXMKWyAgICAx
LjY5OTg5Nl0gTG9hZGVkIFguNTA5IGNlcnQgJ0J1aWxkIHRpbWUgYXV0b2dlbmVyYXRlZCBrZXJu
ZWwga2V5OiBkNjYwYzE0MThhYTA4M2ZkOTEwOGQxODAzMmE0NGIxOWJjMTZmYmQyJwpbICAgIDEu
Njk5ODk5XSBpbWE6IEFsbG9jYXRlZCBoYXNoIGFsZ29yaXRobTogc2hhMQpbICAgIDEuNjk5OTE4
XSBpbWE6IE5vIGFyY2hpdGVjdHVyZSBwb2xpY2llcyBmb3VuZApbICAgIDEuNjk5OTg3XSBldm06
IEluaXRpYWxpc2luZyBFVk0gZXh0ZW5kZWQgYXR0cmlidXRlczoKWyAgICAxLjY5OTk4OF0gZXZt
OiBzZWN1cml0eS5zZWxpbnV4ClsgICAgMS42OTk5ODldIGV2bTogc2VjdXJpdHkuU01BQ0s2NApb
ICAgIDEuNjk5OTkwXSBldm06IHNlY3VyaXR5LlNNQUNLNjRFWEVDClsgICAgMS42OTk5OTBdIGV2
bTogc2VjdXJpdHkuU01BQ0s2NFRSQU5TTVVURQpbICAgIDEuNjk5OTkxXSBldm06IHNlY3VyaXR5
LlNNQUNLNjRNTUFQClsgICAgMS42OTk5OTJdIGV2bTogc2VjdXJpdHkuYXBwYXJtb3IKWyAgICAx
LjY5OTk5M10gZXZtOiBzZWN1cml0eS5pbWEKWyAgICAxLjY5OTk5NF0gZXZtOiBzZWN1cml0eS5j
YXBhYmlsaXR5ClsgICAgMS42OTk5OTRdIGV2bTogSE1BQyBhdHRyczogMHgxClsgICAgMS43MDE1
NzFdIFBNOiAgIE1hZ2ljIG51bWJlcjogMDoxNDk6NzcwClsgICAgMS43MDE2MDZdIG1pc2MgdXNl
cmZhdWx0ZmQ6IGhhc2ggbWF0Y2hlcwpbICAgIDEuNzAyNTExXSBSQVM6IENvcnJlY3RhYmxlIEVy
cm9ycyBjb2xsZWN0b3IgaW5pdGlhbGl6ZWQuClsgICAgMS43MDI2MDNdIGNsazogRGlzYWJsaW5n
IHVudXNlZCBjbG9ja3MKWyAgICAxLjcwMjYwNl0gUE06IGdlbnBkOiBEaXNhYmxpbmcgdW51c2Vk
IHBvd2VyIGRvbWFpbnMKWyAgICAxLjcwNjkzNV0gRnJlZWluZyB1bnVzZWQgZGVjcnlwdGVkIG1l
bW9yeTogMjAyOEsKWyAgICAxLjcwNzc4Nl0gRnJlZWluZyB1bnVzZWQga2VybmVsIGltYWdlIChp
bml0bWVtKSBtZW1vcnk6IDQ2ODRLClsgICAgMS43MDc4MTVdIFdyaXRlIHByb3RlY3RpbmcgdGhl
IGtlcm5lbCByZWFkLW9ubHkgZGF0YTogMjY2MjRrClsgICAgMS43MDg3NzNdIEZyZWVpbmcgdW51
c2VkIGtlcm5lbCBpbWFnZSAocm9kYXRhL2RhdGEgZ2FwKSBtZW1vcnk6IDY0MEsKWyAgICAxLjc0
Nzk1MV0geDg2L21tOiBDaGVja2VkIFcrWCBtYXBwaW5nczogcGFzc2VkLCBubyBXK1ggcGFnZXMg
Zm91bmQuClsgICAgMS43NDc5NzFdIFJ1biAvaW5pdCBhcyBpbml0IHByb2Nlc3MKWyAgICAxLjc0
Nzk3NF0gICB3aXRoIGFyZ3VtZW50czoKWyAgICAxLjc0Nzk3NV0gICAgIC9pbml0ClsgICAgMS43
NDc5NzZdICAgICBwbGFjZWhvbGRlcgpbICAgIDEuNzQ3OTc3XSAgICAgc3BsYXNoClsgICAgMS43
NDc5NzldICAgd2l0aCBlbnZpcm9ubWVudDoKWyAgICAxLjc0Nzk4MF0gICAgIEhPTUU9LwpbICAg
IDEuNzQ3OTgxXSAgICAgVEVSTT1saW51eApbICAgIDEuNzY5MjIyXSB1c2IgMS00OiBOZXcgVVNC
IGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MjEwOSwgaWRQcm9kdWN0PTI4MTcsIGJjZERldmljZT0g
Mi4xNApbICAgIDEuNzY5MjI5XSB1c2IgMS00OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9
MSwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MApbICAgIDEuNzY5MjMxXSB1c2IgMS00OiBQcm9k
dWN0OiBVU0IyLjAgSHViICAgICAgICAgICAgIApbICAgIDEuNzY5MjMzXSB1c2IgMS00OiBNYW51
ZmFjdHVyZXI6IFZJQSBMYWJzLCBJbmMuICAgICAgICAgClsgICAgMS44MjU2NDNdIGh1YiAxLTQ6
MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMS44MjYwNjZdIGh1YiAxLTQ6MS4wOiA0IHBvcnRzIGRl
dGVjdGVkClsgICAgMS45MjcxNTBdIHVzYiAzLTM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl
bmRvcj0wNTdlLCBpZFByb2R1Y3Q9MjAwYywgYmNkRGV2aWNlPSAxLjg0ClsgICAgMS45MjcxNTdd
IHVzYiAzLTM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlh
bE51bWJlcj0zClsgICAgMS45MjcxNTldIHVzYiAzLTM6IFByb2R1Y3Q6IENSRC0wMDEgVVNCMi4w
ClsgICAgMS45MjcxNjFdIHVzYiAzLTM6IE1hbnVmYWN0dXJlcjogTmludGVuZG8KWyAgICAxLjky
NzE2Ml0gdXNiIDMtMzogU2VyaWFsTnVtYmVyOiBGVzEwMDAKWyAgICAxLjk5NjY5NF0gaHViIDMt
MzoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAxLjk5NzAxOV0gaHViIDMtMzoxLjA6IDQgcG9ydHMg
ZGV0ZWN0ZWQKWyAgICAyLjAwNTAyM10gQUNQSTogdmlkZW86IFZpZGVvIERldmljZSBbVkdBXSAo
bXVsdGktaGVhZDogeWVzICByb206IG5vICBwb3N0OiBubykKWyAgICAyLjAwNjUyOV0gaW5wdXQ6
IFZpZGVvIEJ1cyBhcyAvZGV2aWNlcy9MTlhTWVNUTTowMC9MTlhTWUJVUzowMC9QTlAwQTA4OjAw
L2RldmljZToxMy9MTlhWSURFTzowMC9pbnB1dC9pbnB1dDQKWyAgICAyLjAyMzcxM10gcGlpeDRf
c21idXMgMDAwMDowMDoxNC4wOiBTTUJ1cyBIb3N0IENvbnRyb2xsZXIgYXQgMHhiMDAsIHJldmlz
aW9uIDAKWyAgICAyLjAyMzcyMl0gcGlpeDRfc21idXMgMDAwMDowMDoxNC4wOiBVc2luZyByZWdp
c3RlciAweDAyIGZvciBTTUJ1cyBwb3J0IHNlbGVjdGlvbgpbICAgIDIuMDMyNTEyXSBhaGNpIDAw
MDA6MDY6MDAuMDogdmVyc2lvbiAzLjAKWyAgICAyLjAzNDUzN10gYWhjaSAwMDAwOjA2OjAwLjA6
IEFIQ0kgdmVycyAwMDAxLjAzMDEsIDMyIGNvbW1hbmQgc2xvdHMsIDYgR2JwcywgU0FUQSBtb2Rl
ClsgICAgMi4wMzQ1NDZdIGFoY2kgMDAwMDowNjowMC4wOiAxLzEgcG9ydHMgaW1wbGVtZW50ZWQg
KHBvcnQgbWFzayAweDEpClsgICAgMi4wMzQ1NDhdIGFoY2kgMDAwMDowNjowMC4wOiBmbGFnczog
NjRiaXQgbmNxIHNudGYgaWxjayBwbSBsZWQgY2xvIG9ubHkgcG1wIGZicyBwaW8gc2x1bSBwYXJ0
IApbICAgIDIuMDM1MDg5XSBwaWl4NF9zbWJ1cyAwMDAwOjAwOjE0LjA6IEF1eGlsaWFyeSBTTUJ1
cyBIb3N0IENvbnRyb2xsZXIgYXQgMHhiMjAKWyAgICAyLjAzODIyMV0gbnZtZSBudm1lMDogcGNp
IGZ1bmN0aW9uIDAwMDA6MDQ6MDAuMApbICAgIDIuMDM5MzgzXSBpMmMgaTJjLTI6IFN1Y2Nlc3Nm
dWxseSBpbnN0YW50aWF0ZWQgU1BEIGF0IDB4NTAKWyAgICAyLjA0MDE5Ml0gaTJjIGkyYy0yOiBT
dWNjZXNzZnVsbHkgaW5zdGFudGlhdGVkIFNQRCBhdCAweDUxClsgICAgMi4wNDA1NzhdIHNjc2kg
aG9zdDA6IGFoY2kKWyAgICAyLjA0MjcxM10gYXRhMTogU0FUQSBtYXggVURNQS8xMzMgYWJhciBt
MjA0OEAweGQwMDg1MDAwIHBvcnQgMHhkMDA4NTEwMCBpcnEgMTEzIGxwbS1wb2wgMwpbICAgIDIu
MDQ0MjcxXSBhaGNpIDAwMDA6MDY6MDAuMTogQUhDSSB2ZXJzIDAwMDEuMDMwMSwgMzIgY29tbWFu
ZCBzbG90cywgNiBHYnBzLCBTQVRBIG1vZGUKWyAgICAyLjA0NDI4MV0gYWhjaSAwMDAwOjA2OjAw
LjE6IDEvMSBwb3J0cyBpbXBsZW1lbnRlZCAocG9ydCBtYXNrIDB4MSkKWyAgICAyLjA0NDI4NF0g
YWhjaSAwMDAwOjA2OjAwLjE6IGZsYWdzOiA2NGJpdCBuY3Egc250ZiBpbGNrIHBtIGxlZCBjbG8g
b25seSBwbXAgZmJzIHBpbyBzbHVtIHBhcnQgClsgICAgMi4wNDU3MzldIHNjc2kgaG9zdDE6IGFo
Y2kKWyAgICAyLjA0NjEwOF0gYXRhMjogU0FUQSBtYXggVURNQS8xMzMgYWJhciBtMjA0OEAweGQw
MDg0MDAwIHBvcnQgMHhkMDA4NDEwMCBpcnEgMTE3IGxwbS1wb2wgMwpbICAgIDIuMDUyMDg3XSBu
dm1lIG52bWUwOiBhbGxvY2F0ZWQgMzIgTWlCIGhvc3QgbWVtb3J5IGJ1ZmZlci4KWyAgICAyLjA1
NzYxOF0gbnZtZSBudm1lMDogMTIvMC8wIGRlZmF1bHQvcmVhZC9wb2xsIHF1ZXVlcwpbICAgIDIu
MDY1OTYzXSAgbnZtZTBuMTogcDEgcDIKWyAgICAyLjM0OTI1OV0gYXRhMTogU0FUQSBsaW5rIGRv
d24gKFNTdGF0dXMgMCBTQ29udHJvbCAzMDApClsgICAgMi4zNTMyOThdIGF0YTI6IFNBVEEgbGlu
ayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQpbICAgIDIuNjA0ODQ3XSB1c2IgMS00LjM6
IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDMgdXNpbmcgeGhjaV9oY2QKWyAgICAy
Ljg2OTIzNl0gdXNiIDMtMy4yOiBuZXcgZnVsbC1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAzIHVz
aW5nIHhoY2lfaGNkClsgICAgMi45NzM1MzFdIHVzYiAzLTMuMjogTmV3IFVTQiBkZXZpY2UgZm91
bmQsIGlkVmVuZG9yPTI3MTcsIGlkUHJvZHVjdD01MDEwLCBiY2REZXZpY2U9IDEuMDMKWyAgICAy
Ljk3MzU0M10gdXNiIDMtMy4yOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MSwgUHJvZHVj
dD0yLCBTZXJpYWxOdW1iZXI9MApbICAgIDIuOTczNTQ3XSB1c2IgMy0zLjI6IFByb2R1Y3Q6IE1p
IFdpcmVsZXNzIENvbWJvClsgICAgMi45NzM1NTFdIHVzYiAzLTMuMjogTWFudWZhY3R1cmVyOiBN
T1NBUlQgU2VtaS4KWyAgICAyLjk4NTkyMV0gdXNiIDEtNC4zOiBOZXcgVVNCIGRldmljZSBmb3Vu
ZCwgaWRWZW5kb3I9MGI5NSwgaWRQcm9kdWN0PTE3OTAsIGJjZERldmljZT0gMi4wMApbICAgIDIu
OTg1OTMyXSB1c2IgMS00LjM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0xLCBQcm9kdWN0
PTIsIFNlcmlhbE51bWJlcj0zClsgICAgMi45ODU5MzZdIHVzYiAxLTQuMzogUHJvZHVjdDogQVg4
ODE3OUEKWyAgICAyLjk4NTk0MF0gdXNiIDEtNC4zOiBNYW51ZmFjdHVyZXI6IEFTSVgKWyAgICAy
Ljk4NTk0M10gdXNiIDEtNC4zOiBTZXJpYWxOdW1iZXI6IDAwQ0RCMzc2ClsgICAgMy4wNTUxOTVd
IGhpZDogcmF3IEhJRCBldmVudHMgZHJpdmVyIChDKSBKaXJpIEtvc2luYQpbICAgIDMuMDY4MzA3
XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmhpZApbICAgIDMu
MDY4MzE1XSB1c2JoaWQ6IFVTQiBISUQgY29yZSBkcml2ZXIKWyAgICAzLjA3Mzc1MV0gaW5wdXQ6
IE1PU0FSVCBTZW1pLiBNaSBXaXJlbGVzcyBDb21ibyBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAw
MDA6MDA6MDguMS8wMDAwOjA1OjAwLjQvdXNiMy8zLTMvMy0zLjIvMy0zLjI6MS4wLzAwMDM6Mjcx
Nzo1MDEwLjAwMDEvaW5wdXQvaW5wdXQ1ClsgICAgMy4wODQyMTBdIHVzYmNvcmU6IHJlZ2lzdGVy
ZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgY2RjX2V0aGVyClsgICAgMy4xMjk5NzFdIGhpZC1nZW5l
cmljIDAwMDM6MjcxNzo1MDEwLjAwMDE6IGlucHV0LGhpZHJhdzA6IFVTQiBISUQgdjEuMTAgS2V5
Ym9hcmQgW01PU0FSVCBTZW1pLiBNaSBXaXJlbGVzcyBDb21ib10gb24gdXNiLTAwMDA6MDU6MDAu
NC0zLjIvaW5wdXQwClsgICAgMy4xMzEwNzRdIGlucHV0OiBNT1NBUlQgU2VtaS4gTWkgV2lyZWxl
c3MgQ29tYm8gTW91c2UgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDow
NTowMC40L3VzYjMvMy0zLzMtMy4yLzMtMy4yOjEuMS8wMDAzOjI3MTc6NTAxMC4wMDAyL2lucHV0
L2lucHV0NgpbICAgIDMuMTMxNzM0XSBpbnB1dDogTU9TQVJUIFNlbWkuIE1pIFdpcmVsZXNzIENv
bWJvIENvbnN1bWVyIENvbnRyb2wgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEv
MDAwMDowNTowMC40L3VzYjMvMy0zLzMtMy4yLzMtMy4yOjEuMS8wMDAzOjI3MTc6NTAxMC4wMDAy
L2lucHV0L2lucHV0NwpbICAgIDMuMTg1NTMwXSBpbnB1dDogTU9TQVJUIFNlbWkuIE1pIFdpcmVs
ZXNzIENvbWJvIFN5c3RlbSBDb250cm9sIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDow
OC4xLzAwMDA6MDU6MDAuNC91c2IzLzMtMy8zLTMuMi8zLTMuMjoxLjEvMDAwMzoyNzE3OjUwMTAu
MDAwMi9pbnB1dC9pbnB1dDgKWyAgICAzLjE4NjExOF0gaW5wdXQ6IE1PU0FSVCBTZW1pLiBNaSBX
aXJlbGVzcyBDb21ibyBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDguMS8wMDAwOjA1
OjAwLjQvdXNiMy8zLTMvMy0zLjIvMy0zLjI6MS4xLzAwMDM6MjcxNzo1MDEwLjAwMDIvaW5wdXQv
aW5wdXQ5ClsgICAgMy4xODY1ODhdIGlucHV0OiBNT1NBUlQgU2VtaS4gTWkgV2lyZWxlc3MgQ29t
Ym8gYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNTowMC40L3VzYjMv
My0zLzMtMy4yLzMtMy4yOjEuMS8wMDAzOjI3MTc6NTAxMC4wMDAyL2lucHV0L2lucHV0MTAKWyAg
ICAzLjE4NzE5Ml0gaGlkLWdlbmVyaWMgMDAwMzoyNzE3OjUwMTAuMDAwMjogaW5wdXQsaGlkZGV2
MCxoaWRyYXcxOiBVU0IgSElEIHYxLjEwIE1vdXNlIFtNT1NBUlQgU2VtaS4gTWkgV2lyZWxlc3Mg
Q29tYm9dIG9uIHVzYi0wMDAwOjA1OjAwLjQtMy4yL2lucHV0MQpbICAgIDMuMjM3MzgzXSBjZGNf
bmNtIDEtNC4zOjIuMDogTUFDLUFkZHJlc3M6IGY4OmU0OjNiOmNkOmIzOjc2ClsgICAgMy4yMzcz
OTFdIGNkY19uY20gMS00LjM6Mi4wOiBzZXR0aW5nIHJ4X21heCA9IDE2Mzg0ClsgICAgMy4yNDkx
NjhdIGNkY19uY20gMS00LjM6Mi4wOiBzZXR0aW5nIHR4X21heCA9IDE2Mzg0ClsgICAgMy4yNjg4
NzNdIGNkY19uY20gMS00LjM6Mi4wIGV0aDA6IHJlZ2lzdGVyICdjZGNfbmNtJyBhdCB1c2ItMDAw
MDowNTowMC4zLTQuMywgQ0RDIE5DTSAoTk8gWkxQKSwgZjg6ZTQ6M2I6Y2Q6YjM6NzYKWyAgICAz
LjI2ODk5M10gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciBjZGNfbmNt
ClsgICAgMy4yNzM1MTVdIGNkY19uY20gMS00LjM6Mi4wIGVueGY4ZTQzYmNkYjM3NjogcmVuYW1l
ZCBmcm9tIGV0aDAKWyAgICA0LjUzNDYzN10gRVhUNC1mcyAobnZtZTBuMXAyKTogbW91bnRlZCBm
aWxlc3lzdGVtIGE0OWZlNDIxLTk0MGQtNDJiZC1iMzQzLTY2NWZlYTBkODhhMiBybyB3aXRoIG9y
ZGVyZWQgZGF0YSBtb2RlLiBRdW90YSBtb2RlOiBub25lLgpbICAgIDQuNjU3OTA2XSBzeXN0ZW1k
WzFdOiBJbnNlcnRlZCBtb2R1bGUgJ2F1dG9mczQnClsgICAgNC43MDM5MDJdIHN5c3RlbWRbMV06
IHN5c3RlbWQgMjQ5LjExLTB1YnVudHUzLjExIHJ1bm5pbmcgaW4gc3lzdGVtIG1vZGUgKCtQQU0g
K0FVRElUICtTRUxJTlVYICtBUFBBUk1PUiArSU1BICtTTUFDSyArU0VDQ09NUCArR0NSWVBUICtH
TlVUTFMgK09QRU5TU0wgK0FDTCArQkxLSUQgK0NVUkwgK0VMRlVUSUxTICtGSURPMiArSUROMiAt
SUROICtJUFRDICtLTU9EICtMSUJDUllQVFNFVFVQICtMSUJGRElTSyArUENSRTIgLVBXUVVBTElU
WSAtUDExS0lUIC1RUkVOQ09ERSArQlpJUDIgK0xaNCArWFogK1pMSUIgK1pTVEQgLVhLQkNPTU1P
TiArVVRNUCArU1lTVklOSVQgZGVmYXVsdC1oaWVyYXJjaHk9dW5pZmllZCkKWyAgICA0LjcwNDEz
OF0gc3lzdGVtZFsxXTogRGV0ZWN0ZWQgYXJjaGl0ZWN0dXJlIHg4Ni02NC4KWyAgICA0LjcwNDU4
N10gc3lzdGVtZFsxXTogSG9zdG5hbWUgc2V0IHRvIDxjanEtbG9jYWw+LgpbICAgIDQuNzgyMzgx
XSBibG9jayBudm1lMG4xOiB0aGUgY2FwYWJpbGl0eSBhdHRyaWJ1dGUgaGFzIGJlZW4gZGVwcmVj
YXRlZC4KWyAgICA0Ljg1MTY4NV0gc3lzdGVtZFsxXTogQ29uZmlndXJhdGlvbiBmaWxlIC9ydW4v
c3lzdGVtZC9zeXN0ZW0vbmV0cGxhbi1vdnMtY2xlYW51cC5zZXJ2aWNlIGlzIG1hcmtlZCB3b3Js
ZC1pbmFjY2Vzc2libGUuIFRoaXMgaGFzIG5vIGVmZmVjdCBhcyBjb25maWd1cmF0aW9uIGRhdGEg
aXMgYWNjZXNzaWJsZSB2aWEgQVBJcyB3aXRob3V0IHJlc3RyaWN0aW9ucy4gUHJvY2VlZGluZyBh
bnl3YXkuClsgICAgNC45MzI2ODZdIHN5c3RlbWRbMV06IFF1ZXVlZCBzdGFydCBqb2IgZm9yIGRl
ZmF1bHQgdGFyZ2V0IE11bHRpLVVzZXIgU3lzdGVtLgpbICAgIDQuOTY3MDE1XSBzeXN0ZW1kWzFd
OiBDcmVhdGVkIHNsaWNlIFNsaWNlIC9zeXN0ZW0vbW9kcHJvYmUuClsgICAgNC45Njc4NzFdIHN5
c3RlbWRbMV06IENyZWF0ZWQgc2xpY2UgU2xpY2UgL3N5c3RlbS9zZXJpYWwtZ2V0dHkuClsgICAg
NC45Njg0MjZdIHN5c3RlbWRbMV06IENyZWF0ZWQgc2xpY2UgU2xpY2UgL3N5c3RlbS9zeXN0ZW1k
LWZzY2suClsgICAgNC45NjkwMzldIHN5c3RlbWRbMV06IENyZWF0ZWQgc2xpY2UgVXNlciBhbmQg
U2Vzc2lvbiBTbGljZS4KWyAgICA0Ljk2OTE3Nl0gc3lzdGVtZFsxXTogU3RhcnRlZCBGb3J3YXJk
IFBhc3N3b3JkIFJlcXVlc3RzIHRvIFdhbGwgRGlyZWN0b3J5IFdhdGNoLgpbICAgIDQuOTY5NTMy
XSBzeXN0ZW1kWzFdOiBTZXQgdXAgYXV0b21vdW50IEFyYml0cmFyeSBFeGVjdXRhYmxlIEZpbGUg
Rm9ybWF0cyBGaWxlIFN5c3RlbSBBdXRvbW91bnQgUG9pbnQuClsgICAgNC45Njk2MjBdIHN5c3Rl
bWRbMV06IFJlYWNoZWQgdGFyZ2V0IFJlbW90ZSBGaWxlIFN5c3RlbXMuClsgICAgNC45Njk2MzRd
IHN5c3RlbWRbMV06IFJlYWNoZWQgdGFyZ2V0IFNsaWNlIFVuaXRzLgpbICAgIDQuOTY5NjUyXSBz
eXN0ZW1kWzFdOiBSZWFjaGVkIHRhcmdldCBNb3VudGluZyBzbmFwcy4KWyAgICA0Ljk2OTY4MV0g
c3lzdGVtZFsxXTogUmVhY2hlZCB0YXJnZXQgTG9jYWwgVmVyaXR5IFByb3RlY3RlZCBWb2x1bWVz
LgpbICAgIDQuOTY5OTM5XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gU3lzbG9nIFNvY2tldC4K
WyAgICA0Ljk3MTI4NF0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIFByb2Nlc3MgQ29yZSBEdW1w
IFNvY2tldC4KWyAgICA0Ljk3MTQ0N10gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIGZzY2sgdG8g
ZnNja2QgY29tbXVuaWNhdGlvbiBTb2NrZXQuClsgICAgNC45NzE1NjddIHN5c3RlbWRbMV06IExp
c3RlbmluZyBvbiBpbml0Y3RsIENvbXBhdGliaWxpdHkgTmFtZWQgUGlwZS4KWyAgICA0Ljk3MTg1
Ml0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIEpvdXJuYWwgQXVkaXQgU29ja2V0LgpbICAgIDQu
OTcyMDA4XSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gSm91cm5hbCBTb2NrZXQgKC9kZXYvbG9n
KS4KWyAgICA0Ljk3MjIxMF0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIEpvdXJuYWwgU29ja2V0
LgpbICAgIDQuOTcyNjMzXSBzeXN0ZW1kWzFdOiBMaXN0ZW5pbmcgb24gdWRldiBDb250cm9sIFNv
Y2tldC4KWyAgICA0Ljk3MjgyMl0gc3lzdGVtZFsxXTogTGlzdGVuaW5nIG9uIHVkZXYgS2VybmVs
IFNvY2tldC4KWyAgICA0Ljk3NDk0Ml0gc3lzdGVtZFsxXTogTW91bnRpbmcgSHVnZSBQYWdlcyBG
aWxlIFN5c3RlbS4uLgpbICAgIDQuOTc2OTY2XSBzeXN0ZW1kWzFdOiBNb3VudGluZyBQT1NJWCBN
ZXNzYWdlIFF1ZXVlIEZpbGUgU3lzdGVtLi4uClsgICAgNC45NzkxMDFdIHN5c3RlbWRbMV06IE1v
dW50aW5nIE1vdW50IC9wcm9jL3hlbiBmaWxlcy4uLgpbICAgIDQuOTgxMzM1XSBzeXN0ZW1kWzFd
OiBNb3VudGluZyBLZXJuZWwgRGVidWcgRmlsZSBTeXN0ZW0uLi4KWyAgICA0Ljk4MzM1MF0gc3lz
dGVtZFsxXTogTW91bnRpbmcgS2VybmVsIFRyYWNlIEZpbGUgU3lzdGVtLi4uClsgICAgNC45ODgz
MjJdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIEpvdXJuYWwgU2VydmljZS4uLgpbICAgIDQuOTkxMTg3
XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBTZXQgdGhlIGNvbnNvbGUga2V5Ym9hcmQgbGF5b3V0Li4u
ClsgICAgNC45OTM1MjJdIHN5c3RlbWRbMV06IFN0YXJ0aW5nIENyZWF0ZSBMaXN0IG9mIFN0YXRp
YyBEZXZpY2UgTm9kZXMuLi4KWyAgICA0Ljk5NTgxMl0gc3lzdGVtZFsxXTogU3RhcnRpbmcgTG9h
ZCBLZXJuZWwgTW9kdWxlIGNvbmZpZ2ZzLi4uClsgICAgNC45OTk0MDNdIHN5c3RlbWRbMV06IFN0
YXJ0aW5nIExvYWQgS2VybmVsIE1vZHVsZSBkcm0uLi4KWyAgICA1LjAwMjM5OF0gc3lzdGVtZFsx
XTogU3RhcnRpbmcgTG9hZCBLZXJuZWwgTW9kdWxlIGVmaV9wc3RvcmUuLi4KWyAgICA1LjAwNTIw
MV0gc3lzdGVtZFsxXTogU3RhcnRpbmcgTG9hZCBLZXJuZWwgTW9kdWxlIGZ1c2UuLi4KWyAgICA1
LjAwNTQyN10gc3lzdGVtZFsxXTogQ29uZGl0aW9uIGNoZWNrIHJlc3VsdGVkIGluIEZpbGUgU3lz
dGVtIENoZWNrIG9uIFJvb3QgRGV2aWNlIGJlaW5nIHNraXBwZWQuClsgICAgNS4wMDg3NzFdIHBz
dG9yZTogVXNpbmcgY3Jhc2ggZHVtcCBjb21wcmVzc2lvbjogZGVmbGF0ZQpbICAgIDUuMDEwMjU3
XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBMb2FkIEtlcm5lbCBNb2R1bGVzLi4uClsgICAgNS4wMTMw
OTJdIHBzdG9yZTogUmVnaXN0ZXJlZCBlZmlfcHN0b3JlIGFzIHBlcnNpc3RlbnQgc3RvcmUgYmFj
a2VuZApbICAgIDUuMDEzNTI3XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBSZW1vdW50IFJvb3QgYW5k
IEtlcm5lbCBGaWxlIFN5c3RlbXMuLi4KWyAgICA1LjAxNjg4Nl0gc3lzdGVtZFsxXTogU3RhcnRp
bmcgQ29sZHBsdWcgQWxsIHVkZXYgRGV2aWNlcy4uLgpbICAgIDUuMDIwNTAyXSBzeXN0ZW1kWzFd
OiBNb3VudGVkIEh1Z2UgUGFnZXMgRmlsZSBTeXN0ZW0uClsgICAgNS4wMjA4MDNdIHN5c3RlbWRb
MV06IE1vdW50ZWQgUE9TSVggTWVzc2FnZSBRdWV1ZSBGaWxlIFN5c3RlbS4KWyAgICA1LjAyMTAy
NV0gc3lzdGVtZFsxXTogTW91bnRlZCBNb3VudCAvcHJvYy94ZW4gZmlsZXMuClsgICAgNS4wMjEy
MzFdIHN5c3RlbWRbMV06IE1vdW50ZWQgS2VybmVsIERlYnVnIEZpbGUgU3lzdGVtLgpbICAgIDUu
MDIxNDUwXSBzeXN0ZW1kWzFdOiBNb3VudGVkIEtlcm5lbCBUcmFjZSBGaWxlIFN5c3RlbS4KWyAg
ICA1LjAyMjMyN10gc3lzdGVtZFsxXTogRmluaXNoZWQgQ3JlYXRlIExpc3Qgb2YgU3RhdGljIERl
dmljZSBOb2Rlcy4KWyAgICA1LjAyMzAzNV0gc3lzdGVtZFsxXTogbW9kcHJvYmVAY29uZmlnZnMu
c2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgpbICAgIDUuMDIzODY0XSBzeXN0ZW1k
WzFdOiBGaW5pc2hlZCBMb2FkIEtlcm5lbCBNb2R1bGUgY29uZmlnZnMuClsgICAgNS4wMjQ0OTBd
IHN5c3RlbWRbMV06IG1vZHByb2JlQGVmaV9wc3RvcmUuc2VydmljZTogRGVhY3RpdmF0ZWQgc3Vj
Y2Vzc2Z1bGx5LgpbICAgIDUuMDI1MjM2XSBzeXN0ZW1kWzFdOiBGaW5pc2hlZCBMb2FkIEtlcm5l
bCBNb2R1bGUgZWZpX3BzdG9yZS4KWyAgICA1LjAyNTgwNl0gc3lzdGVtZFsxXTogbW9kcHJvYmVA
ZnVzZS5zZXJ2aWNlOiBEZWFjdGl2YXRlZCBzdWNjZXNzZnVsbHkuClsgICAgNS4wMjY0NDhdIHN5
c3RlbWRbMV06IEZpbmlzaGVkIExvYWQgS2VybmVsIE1vZHVsZSBmdXNlLgpbICAgIDUuMDI5NzU4
XSBzeXN0ZW1kWzFdOiBNb3VudGluZyBGVVNFIENvbnRyb2wgRmlsZSBTeXN0ZW0uLi4KWyAgICA1
LjAzMzUxNl0gc3lzdGVtZFsxXTogTW91bnRpbmcgS2VybmVsIENvbmZpZ3VyYXRpb24gRmlsZSBT
eXN0ZW0uLi4KWyAgICA1LjAzNTU4OF0gc3lzdGVtZFsxXTogTW91bnRlZCBGVVNFIENvbnRyb2wg
RmlsZSBTeXN0ZW0uClsgICAgNS4wMzU5MjZdIEFDUEk6IGJ1cyB0eXBlIGRybV9jb25uZWN0b3Ig
cmVnaXN0ZXJlZApbICAgIDUuMDM3NTY3XSBzeXN0ZW1kWzFdOiBNb3VudGVkIEtlcm5lbCBDb25m
aWd1cmF0aW9uIEZpbGUgU3lzdGVtLgpbICAgIDUuMDM5MDc2XSBzeXN0ZW1kWzFdOiBtb2Rwcm9i
ZUBkcm0uc2VydmljZTogRGVhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5LgpbICAgIDUuMDM5ODIwXSBz
eXN0ZW1kWzFdOiBGaW5pc2hlZCBMb2FkIEtlcm5lbCBNb2R1bGUgZHJtLgpbICAgIDUuMDQyNzIx
XSBscDogZHJpdmVyIGxvYWRlZCBidXQgbm8gZGV2aWNlcyBmb3VuZApbICAgIDUuMDQ5MzU5XSBw
cGRldjogdXNlci1zcGFjZSBwYXJhbGxlbCBwb3J0IGRyaXZlcgpbICAgIDUuMDc1MjQyXSBzeXN0
ZW1kWzFdOiBGaW5pc2hlZCBTZXQgdGhlIGNvbnNvbGUga2V5Ym9hcmQgbGF5b3V0LgpbICAgIDUu
MDc3ODk5XSB4ZW46eGVuX2V2dGNobjogRXZlbnQtY2hhbm5lbCBkZXZpY2UgaW5zdGFsbGVkClsg
ICAgNS4wOTk2NTNdIHhlbl9wY2liYWNrOiBiYWNrZW5kIGlzIHZwY2kKWyAgICA1LjEwMDg2M10g
c3lzdGVtZFsxXTogU3RhcnRlZCBKb3VybmFsIFNlcnZpY2UuClsgICAgNS4xMzI0MDFdIEVYVDQt
ZnMgKG52bWUwbjFwMik6IHJlLW1vdW50ZWQgYTQ5ZmU0MjEtOTQwZC00MmJkLWIzNDMtNjY1ZmVh
MGQ4OGEyIHIvdy4gUXVvdGEgbW9kZTogbm9uZS4KWyAgICA1LjE0MzYxOF0gQWRkaW5nIDIwOTcx
NDhrIHN3YXAgb24gL3N3YXBmaWxlLiAgUHJpb3JpdHk6LTIgZXh0ZW50czo2IGFjcm9zczoyMjYw
OTg4ayBTUwpbICAgIDUuMTQ3NjMyXSBzeXN0ZW1kLWpvdXJuYWxkWzMxOF06IFJlY2VpdmVkIGNs
aWVudCByZXF1ZXN0IHRvIGZsdXNoIHJ1bnRpbWUgam91cm5hbC4KWyAgICA1LjE1Mjg5M10gc3lz
dGVtZC1qb3VybmFsZFszMThdOiBGaWxlIC92YXIvbG9nL2pvdXJuYWwvNmMyMDgzNjFhMjg0NDhl
NmE2NDcyNGMzMzdiZGU1NTIvc3lzdGVtLmpvdXJuYWwgY29ycnVwdGVkIG9yIHVuY2xlYW5seSBz
aHV0IGRvd24sIHJlbmFtaW5nIGFuZCByZXBsYWNpbmcuClsgICAgNS4xOTU3MTNdIGxvb3AwOiBk
ZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDgKWyAgICA1LjE5ODU4NV0gbG9vcDE6
IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gMTMxMDE2ClsgICAgNS4yMDM2MjNd
IGxvb3AyOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDEzMDQ0OApbICAgIDUu
MjA5MDk4XSBsb29wMzogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAxNTIwNTYK
WyAgICA1LjIxMjM2OV0gbG9vcDQ6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8g
MTUxMjk2ClsgICAgNS4yMTYzNDRdIGxvb3A1OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJv
bSAwIHRvIDU2MDMyMApbICAgIDUuMjIwMTkyXSBsb29wNjogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hh
bmdlIGZyb20gMCB0byA1NTkwNTYKWyAgICA1LjIyNTM3N10gbG9vcDc6IGRldGVjdGVkIGNhcGFj
aXR5IGNoYW5nZSBmcm9tIDAgdG8gNzE2MTY4ClsgICAgNS4yMzA4NThdIGxvb3A4OiBkZXRlY3Rl
ZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDcxNjE3NgpbICAgIDUuMjMzODMyXSBsb29wOTog
ZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAxMDMyNTA0ClsgICAgNS4yMzg1MDZd
IGxvb3AxMDogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAxMDM0NDI0ClsgICAg
NS4yNDM0NzJdIGxvb3AxMTogZGV0ZWN0ZWQgY2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byAxNjY0
MjQKWyAgICA1LjI0ODg3OV0gbG9vcDEyOiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAw
IHRvIDE4Nzc3NgpbICAgIDUuMjU0NDY0XSBsb29wMTM6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5n
ZSBmcm9tIDAgdG8gMjY0NzIKWyAgICA1LjI1ODA0OF0gbG9vcDE0OiBkZXRlY3RlZCBjYXBhY2l0
eSBjaGFuZ2UgZnJvbSAwIHRvIDI0OTg0ClsgICAgNS4yNjQ2ODRdIGxvb3AxNTogZGV0ZWN0ZWQg
Y2FwYWNpdHkgY2hhbmdlIGZyb20gMCB0byA3OTUyMApbICAgIDUuMjY5NzE4XSBsb29wMTY6IGRl
dGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gOTAzOTIKWyAgICA1LjI3MzIwN10gbG9v
cDE3OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDExMjgKWyAgICA1LjI3NzE0
M10gbG9vcDE4OiBkZXRlY3RlZCBjYXBhY2l0eSBjaGFuZ2UgZnJvbSAwIHRvIDExMzYKWyAgICA1
LjU5NDUwNl0gY2NwIDAwMDA6MDU6MDAuMjogY2NwOiB1bmFibGUgdG8gYWNjZXNzIHRoZSBkZXZp
Y2U6IHlvdSBtaWdodCBiZSBydW5uaW5nIGEgYnJva2VuIEJJT1MuClsgICAgNS41OTU4OTFdIGNj
cCAwMDAwOjA1OjAwLjI6IHRlZTogcmluZyBpbml0IGNvbW1hbmQgZmFpbGVkICgweDAwMDAwMDA2
KQpbICAgIDUuNTk1OTczXSBjY3AgMDAwMDowNTowMC4yOiB0ZWU6IGZhaWxlZCB0byBpbml0IHJp
bmcgYnVmZmVyClsgICAgNS41OTYwMjFdIGNjcCAwMDAwOjA1OjAwLjI6IHRlZSBpbml0aWFsaXph
dGlvbiBmYWlsZWQKWyAgICA1LjU5NjA5MV0gY2NwIDAwMDA6MDU6MDAuMjogcHNwIGluaXRpYWxp
emF0aW9uIGZhaWxlZApbICAgIDUuNjA0MTAzXSBzcDUxMDBfdGNvOiBTUDUxMDAvU0I4MDAgVENP
IFdhdGNoRG9nIFRpbWVyIERyaXZlcgpbICAgIDUuNjE4NzY2XSBzcDUxMDAtdGNvIHNwNTEwMC10
Y286IFVzaW5nIDB4ZmViMDAwMDAgZm9yIHdhdGNoZG9nIE1NSU8gYWRkcmVzcwpbICAgIDUuNjE4
NzkyXSBzcDUxMDAtdGNvIHNwNTEwMC10Y286IFdhdGNoZG9nIGhhcmR3YXJlIGlzIGRpc2FibGVk
ClsgICAgNS42ODM0NzRdIGVlMTAwNCAyLTAwNTA6IDUxMiBieXRlIEVFMTAwNC1jb21wbGlhbnQg
U1BEIEVFUFJPTSwgcmVhZC1vbmx5ClsgICAgNS42ODgxMDVdIGVlMTAwNCAyLTAwNTE6IDUxMiBi
eXRlIEVFMTAwNC1jb21wbGlhbnQgU1BEIEVFUFJPTSwgcmVhZC1vbmx5ClsgICAgNS43NTY4NjRd
IHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgY2RjX3dkbQpbICAgIDUu
NzYwNTQ2XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGNkY19tYmlt
ClsgICAgNS44NzI2MTVdIGNyeXB0ZDogbWF4X2NwdV9xbGVuIHNldCB0byAxMDAwClsgICAgNS45
NDU0MThdIEFFUyBDVFIgbW9kZSBieTggb3B0aW1pemF0aW9uIGVuYWJsZWQKWyAgICA2LjA3OTMz
MV0gYXVkaXQ6IHR5cGU9MTQwMCBhdWRpdCgxNzMxOTA4NzY5LjE4ODoyKTogYXBwYXJtb3I9IlNU
QVRVUyIgb3BlcmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVuY29uZmluZWQiIG5hbWU9
Im52aWRpYV9tb2Rwcm9iZSIgcGlkPTUxNSBjb21tPSJhcHBhcm1vcl9wYXJzZXIiClsgICAgNi4w
NzkzNzBdIGF1ZGl0OiB0eXBlPTE0MDAgYXVkaXQoMTczMTkwODc2OS4xODg6Myk6IGFwcGFybW9y
PSJTVEFUVVMiIG9wZXJhdGlvbj0icHJvZmlsZV9sb2FkIiBwcm9maWxlPSJ1bmNvbmZpbmVkIiBu
YW1lPSJudmlkaWFfbW9kcHJvYmUvL2ttb2QiIHBpZD01MTUgY29tbT0iYXBwYXJtb3JfcGFyc2Vy
IgpbICAgIDYuMDgwODExXSBhdWRpdDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE5MDg3NjkuMTg4OjQp
OiBhcHBhcm1vcj0iU1RBVFVTIiBvcGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5j
b25maW5lZCIgbmFtZT0ibHNiX3JlbGVhc2UiIHBpZD01MTQgY29tbT0iYXBwYXJtb3JfcGFyc2Vy
IgpbICAgIDYuMDgzNjYzXSBhdWRpdDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE5MDg3NjkuMTkyOjUp
OiBhcHBhcm1vcj0iU1RBVFVTIiBvcGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5j
b25maW5lZCIgbmFtZT0iL3Vzci9iaW4vbWFuIiBwaWQ9NTE4IGNvbW09ImFwcGFybW9yX3BhcnNl
ciIKWyAgICA2LjA4MzY5N10gYXVkaXQ6IHR5cGU9MTQwMCBhdWRpdCgxNzMxOTA4NzY5LjE5Mjo2
KTogYXBwYXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVu
Y29uZmluZWQiIG5hbWU9Im1hbl9maWx0ZXIiIHBpZD01MTggY29tbT0iYXBwYXJtb3JfcGFyc2Vy
IgpbICAgIDYuMDgzNzIzXSBhdWRpdDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE5MDg3NjkuMTkyOjcp
OiBhcHBhcm1vcj0iU1RBVFVTIiBvcGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJvZmlsZT0idW5j
b25maW5lZCIgbmFtZT0ibWFuX2dyb2ZmIiBwaWQ9NTE4IGNvbW09ImFwcGFybW9yX3BhcnNlciIK
WyAgICA2LjA4Mzg5MV0gYXVkaXQ6IHR5cGU9MTQwMCBhdWRpdCgxNzMxOTA4NzY5LjE5Mjo4KTog
YXBwYXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9maWxlX2xvYWQiIHByb2ZpbGU9InVuY29u
ZmluZWQiIG5hbWU9Ii91c3Ivc2Jpbi9jdXBzLWJyb3dzZWQiIHBpZD01MjQgY29tbT0iYXBwYXJt
b3JfcGFyc2VyIgpbICAgIDYuMDg2NDcyXSBhdWRpdDogdHlwZT0xNDAwIGF1ZGl0KDE3MzE5MDg3
NjkuMTk2OjkpOiBhcHBhcm1vcj0iU1RBVFVTIiBvcGVyYXRpb249InByb2ZpbGVfbG9hZCIgcHJv
ZmlsZT0idW5jb25maW5lZCIgbmFtZT0iL3Vzci9saWIvc25hcGQvc25hcC1jb25maW5lIiBwaWQ9
NTIzIGNvbW09ImFwcGFybW9yX3BhcnNlciIKWyAgICA2LjA4NjUwMl0gYXVkaXQ6IHR5cGU9MTQw
MCBhdWRpdCgxNzMxOTA4NzY5LjE5NjoxMCk6IGFwcGFybW9yPSJTVEFUVVMiIG9wZXJhdGlvbj0i
cHJvZmlsZV9sb2FkIiBwcm9maWxlPSJ1bmNvbmZpbmVkIiBuYW1lPSIvdXNyL2xpYi9zbmFwZC9z
bmFwLWNvbmZpbmUvL21vdW50LW5hbWVzcGFjZS1jYXB0dXJlLWhlbHBlciIgcGlkPTUyMyBjb21t
PSJhcHBhcm1vcl9wYXJzZXIiClsgICAgNi4wODgwOTJdIGF1ZGl0OiB0eXBlPTE0MDAgYXVkaXQo
MTczMTkwODc2OS4xOTY6MTEpOiBhcHBhcm1vcj0iU1RBVFVTIiBvcGVyYXRpb249InByb2ZpbGVf
bG9hZCIgcHJvZmlsZT0idW5jb25maW5lZCIgbmFtZT0idGNwZHVtcCIgcGlkPTUyMSBjb21tPSJh
cHBhcm1vcl9wYXJzZXIiClsgICAgNi4xNjE1NjFdIHNuZF9oZGFfaW50ZWwgMDAwMDowMzowMC4x
OiBIYW5kbGUgdmdhX3N3aXRjaGVyb28gYXVkaW8gY2xpZW50ClsgICAgNi4xNjE1NzJdIHNuZF9o
ZGFfaW50ZWwgMDAwMDowMzowMC4xOiBGb3JjZSB0byBub24tc25vb3AgbW9kZQpbICAgIDYuMTYy
ODE3XSBzbmRfaGRhX2ludGVsIDAwMDA6MDU6MDAuMTogSGFuZGxlIHZnYV9zd2l0Y2hlcm9vIGF1
ZGlvIGNsaWVudApbICAgIDYuMjI0OTgwXSBpbnB1dDogSEQtQXVkaW8gR2VuZXJpYyBIRE1JL0RQ
LHBjbT0zIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuMS9z
b3VuZC9jYXJkMS9pbnB1dDE2ClsgICAgNi4yMjU1NjJdIGlucHV0OiBIRC1BdWRpbyBHZW5lcmlj
IEhETUkvRFAscGNtPTcgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDow
NTowMC4xL3NvdW5kL2NhcmQxL2lucHV0MTcKWyAgICA2LjIyNjAzNF0gc25kX2hkYV9jb2RlY19y
ZWFsdGVrIGhkYXVkaW9DMkQwOiBhdXRvY29uZmlnIGZvciBBTEM3MDE6IGxpbmVfb3V0cz0xICgw
eDE0LzB4MC8weDAvMHgwLzB4MCkgdHlwZTpzcGVha2VyClsgICAgNi4yMjYwNDBdIHNuZF9oZGFf
Y29kZWNfcmVhbHRlayBoZGF1ZGlvQzJEMDogICAgc3BlYWtlcl9vdXRzPTAgKDB4MC8weDAvMHgw
LzB4MC8weDApClsgICAgNi4yMjYwNDJdIHNuZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlvQzJE
MDogICAgaHBfb3V0cz0xICgweDIxLzB4MC8weDAvMHgwLzB4MCkKWyAgICA2LjIyNjA0NF0gc25k
X2hkYV9jb2RlY19yZWFsdGVrIGhkYXVkaW9DMkQwOiAgICBtb25vOiBtb25vX291dD0weDAKWyAg
ICA2LjIyNjA0Nl0gc25kX2hkYV9jb2RlY19yZWFsdGVrIGhkYXVkaW9DMkQwOiAgICBkaWctb3V0
PTB4MWUvMHgwClsgICAgNi4yMjYwNDddIHNuZF9oZGFfY29kZWNfcmVhbHRlayBoZGF1ZGlvQzJE
MDogICAgaW5wdXRzOgpbICAgIDYuMjI2MDQ5XSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgaGRhdWRp
b0MyRDA6ICAgICAgTWljPTB4MWIKWyAgICA2LjIyNjA1MV0gc25kX2hkYV9jb2RlY19yZWFsdGVr
IGhkYXVkaW9DMkQwOiAgICAgIEludGVybmFsIE1pYz0weDEyClsgICAgNi4yMjYzODNdIGlucHV0
OiBIRC1BdWRpbyBHZW5lcmljIEhETUkvRFAscGNtPTggYXMgL2RldmljZXMvcGNpMDAwMDowMC8w
MDAwOjAwOjA4LjEvMDAwMDowNTowMC4xL3NvdW5kL2NhcmQxL2lucHV0MTgKWyAgICA2LjIyNjY1
Nl0gYW1kX2F0bDogQU1EIEFkZHJlc3MgVHJhbnNsYXRpb24gTGlicmFyeSBpbml0aWFsaXplZApb
ICAgIDYuMjI3MTIzXSBpbnB1dDogSERBIEFUSSBIRE1JIEhETUkvRFAscGNtPTMgYXMgL2Rldmlj
ZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAxLjEvMDAwMDowMTowMC4wLzAwMDA6MDI6MDAuMC8wMDAw
OjAzOjAwLjEvc291bmQvY2FyZDAvaW5wdXQxMQpbICAgIDYuMjI3NDg0XSBpbnB1dDogSEQtQXVk
aW8gR2VuZXJpYyBIRE1JL0RQLHBjbT05IGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDow
OC4xLzAwMDA6MDU6MDAuMS9zb3VuZC9jYXJkMS9pbnB1dDE5ClsgICAgNi4yMzUxODBdIGlucHV0
OiBIREEgQVRJIEhETUkgSERNSS9EUCxwY209NyBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6
MDA6MDEuMS8wMDAwOjAxOjAwLjAvMDAwMDowMjowMC4wLzAwMDA6MDM6MDAuMS9zb3VuZC9jYXJk
MC9pbnB1dDEyClsgICAgNi4yNjM3ODddIGlucHV0OiBIREEgQVRJIEhETUkgSERNSS9EUCxwY209
OCBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAwMDA6MDA6MDEuMS8wMDAwOjAxOjAwLjAvMDAwMDow
MjowMC4wLzAwMDA6MDM6MDAuMS9zb3VuZC9jYXJkMC9pbnB1dDEzClsgICAgNi4yNzc3NDVdIGlu
cHV0OiBIREEgQVRJIEhETUkgSERNSS9EUCxwY209OSBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAw
MDA6MDA6MDEuMS8wMDAwOjAxOjAwLjAvMDAwMDowMjowMC4wLzAwMDA6MDM6MDAuMS9zb3VuZC9j
YXJkMC9pbnB1dDE0ClsgICAgNi4yNzgwNTBdIGlucHV0OiBIREEgQVRJIEhETUkgSERNSS9EUCxw
Y209MTAgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAxLjEvMDAwMDowMTowMC4wLzAw
MDA6MDI6MDAuMC8wMDAwOjAzOjAwLjEvc291bmQvY2FyZDAvaW5wdXQxNQpbICAgIDYuNzAzNjIz
XSBsb29wMTk6IGRldGVjdGVkIGNhcGFjaXR5IGNoYW5nZSBmcm9tIDAgdG8gOApbICAgIDYuNzEw
ODE1XSBvcGVudnN3aXRjaDogT3BlbiB2U3dpdGNoIHN3aXRjaGluZyBkYXRhcGF0aApbICAgIDYu
NzQ0OTI3XSBvdnMtc3lzdGVtOiBlbnRlcmVkIHByb21pc2N1b3VzIG1vZGUKWyAgICA2Ljc0Nzk4
OF0gVGltZW91dCBwb2xpY3kgYmFzZSBpcyBlbXB0eQpbICAgIDYuODMwMjI1XSBvdnNicjA6IGVu
dGVyZWQgcHJvbWlzY3VvdXMgbW9kZQpbICAgIDYuODMxMzY4XSB2aWYgdmlmLTEgZXRoMDogZW50
ZXJlZCBwcm9taXNjdW91cyBtb2RlClsgICAgNi44MzIwNzVdIGNkY19uY20gMS00LjM6Mi4wIGVu
eGY4ZTQzYmNkYjM3NjogZW50ZXJlZCBwcm9taXNjdW91cyBtb2RlClsgICAgNi44NjE3MzldIG5l
dCBldGgwOiBJbGxlZ2FsIG51bWJlciBvZiByZXNwb25zZXMgNDI5NDk2NzI5NQpbICAgIDcuMDEx
MjEwXSBpbnB1dDogSEQtQXVkaW8gR2VuZXJpYyBNaWMgYXMgL2RldmljZXMvcGNpMDAwMDowMC8w
MDAwOjAwOjA4LjEvMDAwMDowNTowMC42L3NvdW5kL2NhcmQyL2lucHV0MjAKWyAgICA3LjAxMTgy
NV0gaW5wdXQ6IEhELUF1ZGlvIEdlbmVyaWMgSGVhZHBob25lIGFzIC9kZXZpY2VzL3BjaTAwMDA6
MDAvMDAwMDowMDowOC4xLzAwMDA6MDU6MDAuNi9zb3VuZC9jYXJkMi9pbnB1dDIxClsgICA0Mi4x
MzI2MDhdIFtkcm1dIGFtZGdwdSBrZXJuZWwgbW9kZXNldHRpbmcgZW5hYmxlZC4KWyAgIDQyLjEz
MjYzOV0gYW1kZ3B1OiB2Z2Ffc3dpdGNoZXJvbzogZGV0ZWN0ZWQgc3dpdGNoaW5nIG1ldGhvZCBc
X1NCXy5QQ0kwLkdQMTcuVkdBXy5BVFBYIGhhbmRsZQpbICAgNDIuMTM0OTUyXSBhbWRncHU6IEFU
UFggdmVyc2lvbiAxLCBmdW5jdGlvbnMgMHgwMDAwMDAwMQpbICAgNDIuMTM1MjU0XSBhbWRncHU6
IEFUUFggSHlicmlkIEdyYXBoaWNzClsgICA0Mi4xODc0ODBdIGFtZGdwdTogVmlydHVhbCBDUkFU
IHRhYmxlIGNyZWF0ZWQgZm9yIENQVQpbICAgNDIuMTg3NjM0XSBhbWRncHU6IFRvcG9sb2d5OiBB
ZGQgQ1BVIG5vZGUKWyAgIDQyLjE4ODM3OF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogZW5hYmxpbmcg
ZGV2aWNlICgwMDA2IC0+IDAwMDcpClsgICA0Mi4xODg1NjldIFtkcm1dIGluaXRpYWxpemluZyBr
ZXJuZWwgbW9kZXNldHRpbmcgKERJTUdSRVlfQ0FWRUZJU0ggMHgxMDAyOjB4NzNGRiAweDEwMDI6
MHgwMTI0IDB4QzcpLgpbICAgNDIuMTkyOTQ4XSBbZHJtXSByZWdpc3RlciBtbWlvIGJhc2U6IDB4
RDA2MDAwMDAKWyAgIDQyLjE5Mjk1N10gW2RybV0gcmVnaXN0ZXIgbW1pbyBzaXplOiAxMDQ4NTc2
ClsgICA0Mi4yMDI3NzldIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgMCA8bnZfY29tbW9uPgpb
ICAgNDIuMjAyNzg1XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDEgPGdtY192MTBfMD4KWyAg
IDQyLjIwMjc4N10gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciAyIDxuYXZpMTBfaWg+ClsgICA0
Mi4yMDI3ODhdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgMyA8cHNwPgpbICAgNDIuMjAyNzg5
XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDQgPHNtdT4KWyAgIDQyLjIwMjc5MV0gW2RybV0g
YWRkIGlwIGJsb2NrIG51bWJlciA1IDxkbT4KWyAgIDQyLjIwMjc5M10gW2RybV0gYWRkIGlwIGJs
b2NrIG51bWJlciA2IDxnZnhfdjEwXzA+ClsgICA0Mi4yMDI3OTRdIFtkcm1dIGFkZCBpcCBibG9j
ayBudW1iZXIgNyA8c2RtYV92NV8yPgpbICAgNDIuMjAyNzk2XSBbZHJtXSBhZGQgaXAgYmxvY2sg
bnVtYmVyIDggPHZjbl92M18wPgpbICAgNDIuMjAyNzk3XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVt
YmVyIDkgPGpwZWdfdjNfMD4KWyAgIDQyLjIyODkzMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1k
Z3B1OiBGZXRjaGVkIFZCSU9TIGZyb20gQVRSTQpbICAgNDIuMjI4OTQ4XSBhbWRncHU6IEFUT00g
QklPUzogMTEzLUQ1MzQwMTAwLTEwMgpbICAgNDIuMjUwNDc0XSBhbWRncHUgMDAwMDowMzowMC4w
OiBhbWRncHU6IFRydXN0ZWQgTWVtb3J5IFpvbmUgKFRNWikgZmVhdHVyZSBkaXNhYmxlZCBhcyBl
eHBlcmltZW50YWwgKGRlZmF1bHQpClsgICA0Mi4yNTA3MTJdIFtkcm1dIHZtIHNpemUgaXMgMjYy
MTQ0IEdCLCA0IGxldmVscywgYmxvY2sgc2l6ZSBpcyA5LWJpdCwgZnJhZ21lbnQgc2l6ZSBpcyA5
LWJpdApbICAgNDIuMjU0ODYwXSBhbWRncHUgMDAwMDowMzowMC4wOiBCQVIgMiBbbWVtIDB4ZmNh
MDAwMDAwMC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl06IHJlbGVhc2luZwpbICAgNDIuMjU0ODY2
XSBhbWRncHUgMDAwMDowMzowMC4wOiBCQVIgMCBbbWVtIDB4ZmM5MDAwMDAwMC0weGZjOWZmZmZm
ZmYgNjRiaXQgcHJlZl06IHJlbGVhc2luZwpbICAgNDIuMjU0OTgzXSBwY2llcG9ydCAwMDAwOjAy
OjAwLjA6IGJyaWRnZSB3aW5kb3cgW21lbSAweGZjOTAwMDAwMDAtMHhmY2EwMWZmZmZmIDY0Yml0
IHByZWZdOiByZWxlYXNpbmcKWyAgIDQyLjI1NDk4OF0gcGNpZXBvcnQgMDAwMDowMTowMC4wOiBi
cmlkZ2Ugd2luZG93IFttZW0gMHhmYzkwMDAwMDAwLTB4ZmNhMDFmZmZmZiA2NGJpdCBwcmVmXTog
cmVsZWFzaW5nClsgICA0Mi4yNTQ5OTFdIHBjaWVwb3J0IDAwMDA6MDA6MDEuMTogYnJpZGdlIHdp
bmRvdyBbbWVtIDB4ZmM5MDAwMDAwMC0weGZjYTAxZmZmZmYgNjRiaXQgcHJlZl06IHJlbGVhc2lu
ZwpbICAgNDIuMjU1MDA0XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6IGJyaWRnZSB3aW5kb3cgW21l
bSAweDkwMDAwMDAwMC0weGJmZmZmZmZmZiA2NGJpdCBwcmVmXTogYXNzaWduZWQKWyAgIDQyLjI1
NTAwOV0gcGNpZXBvcnQgMDAwMDowMTowMC4wOiBicmlkZ2Ugd2luZG93IFttZW0gMHg5MDAwMDAw
MDAtMHhiZmZmZmZmZmYgNjRiaXQgcHJlZl06IGFzc2lnbmVkClsgICA0Mi4yNTUwMTJdIHBjaWVw
b3J0IDAwMDA6MDI6MDAuMDogYnJpZGdlIHdpbmRvdyBbbWVtIDB4OTAwMDAwMDAwLTB4YmZmZmZm
ZmZmIDY0Yml0IHByZWZdOiBhc3NpZ25lZApbICAgNDIuMjU1MDE5XSBhbWRncHUgMDAwMDowMzow
MC4wOiBCQVIgMCBbbWVtIDB4YTAwMDAwMDAwLTB4YmZmZmZmZmZmIDY0Yml0IHByZWZdOiBhc3Np
Z25lZApbICAgNDIuMjU1MDM3XSBhbWRncHUgMDAwMDowMzowMC4wOiBCQVIgMiBbbWVtIDB4OTAw
MDAwMDAwLTB4OTAwMWZmZmZmIDY0Yml0IHByZWZdOiBhc3NpZ25lZApbICAgNDIuMjU1MDU1XSBw
Y2llcG9ydCAwMDAwOjAwOjAxLjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMS0wM10KWyAgIDQyLjI1
NTA2MF0gcGNpZXBvcnQgMDAwMDowMDowMS4xOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDIwMDAt
MHgyZmZmXQpbICAgNDIuMjU1MDY4XSBwY2llcG9ydCAwMDAwOjAwOjAxLjE6ICAgYnJpZGdlIHdp
bmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDhmZmZmZl0KWyAgIDQyLjI1NTA3M10gcGNpZXBvcnQg
MDAwMDowMDowMS4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwMDAwMDAwMC0weGJmZmZmZmZm
ZiA2NGJpdCBwcmVmXQpbICAgNDIuMjU1MDgyXSBwY2llcG9ydCAwMDAwOjAxOjAwLjA6IFBDSSBi
cmlkZ2UgdG8gW2J1cyAwMi0wM10KWyAgIDQyLjI1NTA4NV0gcGNpZXBvcnQgMDAwMDowMTowMC4w
OiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDIwMDAtMHgyZmZmXQpbICAgNDIuMjU1MDk0XSBwY2ll
cG9ydCAwMDAwOjAxOjAwLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdm
ZmZmZl0KWyAgIDQyLjI1NTA5OV0gcGNpZXBvcnQgMDAwMDowMTowMC4wOiAgIGJyaWRnZSB3aW5k
b3cgW21lbSAweDkwMDAwMDAwMC0weGJmZmZmZmZmZiA2NGJpdCBwcmVmXQpbICAgNDIuMjU1MTEw
XSBwY2llcG9ydCAwMDAwOjAyOjAwLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwM10KWyAgIDQyLjI1
NTExM10gcGNpZXBvcnQgMDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDIwMDAt
MHgyZmZmXQpbICAgNDIuMjU1MTIxXSBwY2llcG9ydCAwMDAwOjAyOjAwLjA6ICAgYnJpZGdlIHdp
bmRvdyBbbWVtIDB4ZDA2MDAwMDAtMHhkMDdmZmZmZl0KWyAgIDQyLjI1NTEyN10gcGNpZXBvcnQg
MDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweDkwMDAwMDAwMC0weGJmZmZmZmZm
ZiA2NGJpdCBwcmVmXQpbICAgNDIuMjYwMzI1XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6
IFZSQU06IDgxNzZNIDB4MDAwMDAwODAwMDAwMDAwMCAtIDB4MDAwMDAwODFGRUZGRkZGRiAoODE3
Nk0gdXNlZCkKWyAgIDQyLjI2MDMzMV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBHQVJU
OiA1MTJNIDB4MDAwMDAwMDAwMDAwMDAwMCAtIDB4MDAwMDAwMDAxRkZGRkZGRgpbICAgNDIuMjYw
MzUzXSBbZHJtXSBEZXRlY3RlZCBWUkFNIFJBTT04MTc2TSwgQkFSPTgxOTJNClsgICA0Mi4yNjAz
NTVdIFtkcm1dIFJBTSB3aWR0aCAxMjhiaXRzIEdERFI2ClsgICA0Mi4yNjEyMjddIFtkcm1dIGFt
ZGdwdTogODE3Nk0gb2YgVlJBTSBtZW1vcnkgcmVhZHkKWyAgIDQyLjI2MTIzMV0gW2RybV0gYW1k
Z3B1OiAyNzU0TSBvZiBHVFQgbWVtb3J5IHJlYWR5LgpbICAgNDIuMjYxMzA3XSBbZHJtXSBHQVJU
OiBudW0gY3B1IHBhZ2VzIDEzMTA3MiwgbnVtIGdwdSBwYWdlcyAxMzEwNzIKWyAgIDQyLjI2MTQ1
NV0gW2RybV0gUENJRSBHQVJUIG9mIDUxMk0gZW5hYmxlZCAodGFibGUgYXQgMHgwMDAwMDA4MDAw
RjAwMDAwKS4KWyAgIDQzLjkxMTg3NF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBTVEIg
aW5pdGlhbGl6ZWQgdG8gMjA0OCBlbnRyaWVzClsgICA0My45MTI5MjJdIFtkcm1dIExvYWRpbmcg
RE1VQiBmaXJtd2FyZSB2aWEgUFNQOiB2ZXJzaW9uPTB4MDIwMjAwMTMKWyAgIDQzLjkxNDEzOF0g
W2RybV0gdXNlX2Rvb3JiZWxsIGJlaW5nIHNldCB0bzogW3RydWVdClsgICA0My45MTQxODldIFtk
cm1dIHVzZV9kb29yYmVsbCBiZWluZyBzZXQgdG86IFt0cnVlXQpbICAgNDMuOTE0MjM1XSBbZHJt
XSBGb3VuZCBWQ04gZmlybXdhcmUgVmVyc2lvbiBFTkM6IDEuMzAgREVDOiAzIFZFUDogMCBSZXZp
c2lvbjogOApbICAgNDMuOTg1MjA1XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJlc2Vy
dmUgMHhhMDAwMDAgZnJvbSAweDgxZmQwMDAwMDAgZm9yIFBTUCBUTVIKWyAgIDQ0LjA4Mzc0NF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBSQVM6IG9wdGlvbmFsIHJhcyB0YSB1Y29kZSBp
cyBub3QgYXZhaWxhYmxlClsgICA0NC4xMDE5OTRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdw
dTogU0VDVVJFRElTUExBWTogc2VjdXJlZGlzcGxheSB0YSB1Y29kZSBpcyBub3QgYXZhaWxhYmxl
ClsgICA0NC4xMDIwMjNdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogc211IGRyaXZlciBp
ZiB2ZXJzaW9uID0gMHgwMDAwMDAwZiwgc211IGZ3IGlmIHZlcnNpb24gPSAweDAwMDAwMDEzLCBz
bXUgZncgcHJvZ3JhbSA9IDAsIHZlcnNpb24gPSAweDAwM2IyOTAwICg1OS40MS4wKQpbICAgNDQu
MTAyMDMxXSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IFNNVSBkcml2ZXIgaWYgdmVyc2lv
biBub3QgbWF0Y2hlZApbICAgNDQuMTAyMDcwXSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6
IHVzZSB2YmlvcyBwcm92aWRlZCBwcHRhYmxlClsgICA0NC4xNTA0NzhdIGFtZGdwdSAwMDAwOjAz
OjAwLjA6IGFtZGdwdTogU01VIGlzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSEKWyAgIDQ0LjE1
MTU5MV0gW2RybV0gRGlzcGxheSBDb3JlIHYzLjIuMzAxIGluaXRpYWxpemVkIG9uIERDTiAzLjAu
MgpbICAgNDQuMTUxNTk2XSBbZHJtXSBEUC1IRE1JIEZSTCBQQ09OIHN1cHBvcnRlZApbICAgNDQu
MTUyOTU4XSBbZHJtXSBETVVCIGhhcmR3YXJlIGluaXRpYWxpemVkOiB2ZXJzaW9uPTB4MDIwMjAw
MTMKWyAgIDQ0LjE1ODIxOV0gc25kX2hkYV9pbnRlbCAwMDAwOjAzOjAwLjE6IGJvdW5kIDAwMDA6
MDM6MDAuMCAob3BzIGFtZGdwdV9kbV9hdWRpb19jb21wb25lbnRfYmluZF9vcHMgW2FtZGdwdV0p
ClsgICA0NC4zODQ4NTBdIFtkcm1dIGtpcSByaW5nIG1lYyAyIHBpcGUgMSBxIDAKWyAgIDQ0LjQ0
MTg3OF0gYW1kZ3B1OiBITU0gcmVnaXN0ZXJlZCA4MTc2TUIgZGV2aWNlIG1lbW9yeQpbICAgNDQu
NDQ0NDg3XSBrZmQga2ZkOiBhbWRncHU6IEFsbG9jYXRlZCAzOTY5MDU2IGJ5dGVzIG9uIGdhcnQK
WyAgIDQ0LjQ0NDUzNV0ga2ZkIGtmZDogYW1kZ3B1OiBUb3RhbCBudW1iZXIgb2YgS0ZEIG5vZGVz
IHRvIGJlIGNyZWF0ZWQ6IDEKWyAgIDQ0LjQ0NTAyNF0gYW1kZ3B1OiBWaXJ0dWFsIENSQVQgdGFi
bGUgY3JlYXRlZCBmb3IgR1BVClsgICA0NC40NDY1OTNdIGFtZGdwdTogVG9wb2xvZ3k6IEFkZCBk
R1BVIG5vZGUgWzB4NzNmZjoweDEwMDJdClsgICA0NC40NDY1OTZdIGtmZCBrZmQ6IGFtZGdwdTog
YWRkZWQgZGV2aWNlIDEwMDI6NzNmZgpbICAgNDQuNDQ2NjE5XSBhbWRncHUgMDAwMDowMzowMC4w
OiBhbWRncHU6IFNFIDIsIFNIIHBlciBTRSAyLCBDVSBwZXIgU0ggOCwgYWN0aXZlX2N1X251bWJl
ciAyOApbICAgNDQuNDQ2NjI0XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcgZ2Z4
XzAuMC4wIHVzZXMgVk0gaW52IGVuZyAwIG9uIGh1YiAwClsgICA0NC40NDY2MjZdIGFtZGdwdSAw
MDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBnZnhfMC4xLjAgdXNlcyBWTSBpbnYgZW5nIDEgb24g
aHViIDAKWyAgIDQ0LjQ0NjYyN10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIGNv
bXBfMS4wLjAgdXNlcyBWTSBpbnYgZW5nIDQgb24gaHViIDAKWyAgIDQ0LjQ0NjYyOV0gYW1kZ3B1
IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4xLjAgdXNlcyBWTSBpbnYgZW5nIDUg
b24gaHViIDAKWyAgIDQ0LjQ0NjYzMF0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5n
IGNvbXBfMS4yLjAgdXNlcyBWTSBpbnYgZW5nIDYgb24gaHViIDAKWyAgIDQ0LjQ0NjYzMl0gYW1k
Z3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4zLjAgdXNlcyBWTSBpbnYgZW5n
IDcgb24gaHViIDAKWyAgIDQ0LjQ0NjYzM10gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiBy
aW5nIGNvbXBfMS4wLjEgdXNlcyBWTSBpbnYgZW5nIDggb24gaHViIDAKWyAgIDQ0LjQ0NjYzNF0g
YW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1OiByaW5nIGNvbXBfMS4xLjEgdXNlcyBWTSBpbnYg
ZW5nIDkgb24gaHViIDAKWyAgIDQ0LjQ0NjYzNV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDogYW1kZ3B1
OiByaW5nIGNvbXBfMS4yLjEgdXNlcyBWTSBpbnYgZW5nIDEwIG9uIGh1YiAwClsgICA0NC40NDY2
MzddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMy4xIHVzZXMgVk0g
aW52IGVuZyAxMSBvbiBodWIgMApbICAgNDQuNDQ2NjM4XSBhbWRncHUgMDAwMDowMzowMC4wOiBh
bWRncHU6IHJpbmcga2lxXzAuMi4xLjAgdXNlcyBWTSBpbnYgZW5nIDEyIG9uIGh1YiAwClsgICA0
NC40NDY2NDBdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogcmluZyBzZG1hMCB1c2VzIFZN
IGludiBlbmcgMTMgb24gaHViIDAKWyAgIDQ0LjQ0NjY0MV0gYW1kZ3B1IDAwMDA6MDM6MDAuMDog
YW1kZ3B1OiByaW5nIHNkbWExIHVzZXMgVk0gaW52IGVuZyAxNCBvbiBodWIgMApbICAgNDQuNDQ2
NjQyXSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcgdmNuX2RlY18wIHVzZXMgVk0g
aW52IGVuZyAwIG9uIGh1YiA4ClsgICA0NC40NDY2NDRdIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFt
ZGdwdTogcmluZyB2Y25fZW5jXzAuMCB1c2VzIFZNIGludiBlbmcgMSBvbiBodWIgOApbICAgNDQu
NDQ2NjQ1XSBhbWRncHUgMDAwMDowMzowMC4wOiBhbWRncHU6IHJpbmcgdmNuX2VuY18wLjEgdXNl
cyBWTSBpbnYgZW5nIDQgb24gaHViIDgKWyAgIDQ0LjQ0NjY0N10gYW1kZ3B1IDAwMDA6MDM6MDAu
MDogYW1kZ3B1OiByaW5nIGpwZWdfZGVjIHVzZXMgVk0gaW52IGVuZyA1IG9uIGh1YiA4ClsgICA0
NC40NTQ0MzddIGFtZGdwdSAwMDAwOjAzOjAwLjA6IGFtZGdwdTogVXNpbmcgQk9DTyBmb3IgcnVu
dGltZSBwbQpbICAgNDQuNDYwNDczXSBbZHJtXSBJbml0aWFsaXplZCBhbWRncHUgMy41OS4wIGZv
ciAwMDAwOjAzOjAwLjAgb24gbWlub3IgMApbICAgNDQuNDY5MzE1XSBhbWRncHUgMDAwMDowMzow
MC4wOiBbZHJtXSBmYjE6IGFtZGdwdWRybWZiIGZyYW1lIGJ1ZmZlciBkZXZpY2UKWyAgIDQ0LjUy
ODM1NV0gW2RybV0gaW5pdGlhbGl6aW5nIGtlcm5lbCBtb2Rlc2V0dGluZyAoUkVOT0lSIDB4MTAw
MjoweDE2MzYgMHgxMDAyOjB4MDEyNCAweDg0KS4KWyAgIDQ0LjUzMjUxMF0gW2RybV0gcmVnaXN0
ZXIgbW1pbyBiYXNlOiAweEQwNDAwMDAwClsgICA0NC41MzI1MTVdIFtkcm1dIHJlZ2lzdGVyIG1t
aW8gc2l6ZTogNTI0Mjg4ClsgICA0NC41NTQ0NjldIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIg
MCA8c29jMTVfY29tbW9uPgpbICAgNDQuNTU0NDc2XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVy
IDEgPGdtY192OV8wPgpbICAgNDQuNTU0NDc5XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDIg
PHZlZ2ExMF9paD4KWyAgIDQ0LjU1NDQ4MF0gW2RybV0gYWRkIGlwIGJsb2NrIG51bWJlciAzIDxw
c3A+ClsgICA0NC41NTQ0ODJdIFtkcm1dIGFkZCBpcCBibG9jayBudW1iZXIgNCA8c211PgpbICAg
NDQuNTU0NDg0XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDUgPGRtPgpbICAgNDQuNTU0NDg2
XSBbZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDYgPGdmeF92OV8wPgpbICAgNDQuNTU0NDg4XSBb
ZHJtXSBhZGQgaXAgYmxvY2sgbnVtYmVyIDcgPHNkbWFfdjRfMD4KWyAgIDQ0LjU1NDQ5MF0gW2Ry
bV0gYWRkIGlwIGJsb2NrIG51bWJlciA4IDx2Y25fdjJfMD4KWyAgIDQ0LjU1NDQ5Ml0gW2RybV0g
YWRkIGlwIGJsb2NrIG51bWJlciA5IDxqcGVnX3YyXzA+ClsgICA0NC41NTU0ODVdIGFtZGdwdSAw
MDAwOjA1OjAwLjA6IGFtZGdwdTogRmV0Y2hlZCBWQklPUyBmcm9tIFZGQ1QKWyAgIDQ0LjU1NTUx
NV0gYW1kZ3B1OiBBVE9NIEJJT1M6IDExMy1SRU5PSVItMDM3ClsgICA0NC41NjM1MzZdIENvbnNv
bGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZHVtbXkgZGV2aWNlIDgweDI1ClsgICA0NC41NjM2NjBd
IGFtZGdwdSAwMDAwOjA1OjAwLjA6IHZnYWFyYjogZGVhY3RpdmF0ZSB2Z2EgY29uc29sZQpbICAg
NDQuNTYzNjY0XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IFRydXN0ZWQgTWVtb3J5IFpv
bmUgKFRNWikgZmVhdHVyZSBlbmFibGVkClsgICA0NC41NjM2NjhdIGFtZGdwdSAwMDAwOjA1OjAw
LjA6IGFtZGdwdTogTU9ERTIgcmVzZXQKWyAgIDQ0LjU2NDIyOF0gW2RybV0gdm0gc2l6ZSBpcyAy
NjIxNDQgR0IsIDQgbGV2ZWxzLCBibG9jayBzaXplIGlzIDktYml0LCBmcmFnbWVudCBzaXplIGlz
IDktYml0ClsgICA0NC41NjQyNTJdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogVlJBTTog
NTEyTSAweDAwMDAwMEY0MDAwMDAwMDAgLSAweDAwMDAwMEY0MUZGRkZGRkYgKDUxMk0gdXNlZCkK
WyAgIDQ0LjU2NDI1NF0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBHQVJUOiAxMDI0TSAw
eDAwMDAwMDAwMDAwMDAwMDAgLSAweDAwMDAwMDAwM0ZGRkZGRkYKWyAgIDQ0LjU2NDI2NV0gW2Ry
bV0gRGV0ZWN0ZWQgVlJBTSBSQU09NTEyTSwgQkFSPTUxMk0KWyAgIDQ0LjU2NDI2N10gW2RybV0g
UkFNIHdpZHRoIDEyOGJpdHMgTFBERFI0ClsgICA0NC41NjUzNTFdIFtkcm1dIGFtZGdwdTogNTEy
TSBvZiBWUkFNIG1lbW9yeSByZWFkeQpbICAgNDQuNTY1MzU2XSBbZHJtXSBhbWRncHU6IDI3NTRN
IG9mIEdUVCBtZW1vcnkgcmVhZHkuClsgICA0NC41NjU0NjZdIFtkcm1dIEdBUlQ6IG51bSBjcHUg
cGFnZXMgMjYyMTQ0LCBudW0gZ3B1IHBhZ2VzIDI2MjE0NApbICAgNDQuNTY1Njg3XSBbZHJtXSBQ
Q0lFIEdBUlQgb2YgMTAyNE0gZW5hYmxlZC4KWyAgIDQ0LjU2NTY5MF0gW2RybV0gUFRCIGxvY2F0
ZWQgYXQgMHgwMDAwMDBGNDFGQzAwMDAwClsgICA0NC41NjcwNzZdIFtkcm1dIExvYWRpbmcgRE1V
QiBmaXJtd2FyZSB2aWEgUFNQOiB2ZXJzaW9uPTB4MDEwMTAwMUYKWyAgIDQ0LjU2ODQzNV0gW2Ry
bV0gRm91bmQgVkNOIGZpcm13YXJlIFZlcnNpb24gRU5DOiAxLjIxIERFQzogNyBWRVA6IDAgUmV2
aXNpb246IDMKWyAgIDQ1LjE4ODUxM10gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByZXNl
cnZlIDB4NDAwMDAwIGZyb20gMHhmNDFmODAwMDAwIGZvciBQU1AgVE1SClsgICA0NS4yNzU5NjNd
IGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogUkFTOiBvcHRpb25hbCByYXMgdGEgdWNvZGUg
aXMgbm90IGF2YWlsYWJsZQpbICAgNDUuMjg3MTQyXSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRn
cHU6IFJBUDogb3B0aW9uYWwgcmFwIHRhIHVjb2RlIGlzIG5vdCBhdmFpbGFibGUKWyAgIDQ1LjI4
NzE0NV0gYW1kZ3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiBTRUNVUkVESVNQTEFZOiBzZWN1cmVk
aXNwbGF5IHRhIHVjb2RlIGlzIG5vdCBhdmFpbGFibGUKWyAgIDQ1LjI4ODM5NV0gYW1kZ3B1IDAw
MDA6MDU6MDAuMDogYW1kZ3B1OiBTTVUgaXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5IQpbICAg
NDUuMjg5NjczXSBbZHJtXSBEaXNwbGF5IENvcmUgdjMuMi4zMDEgaW5pdGlhbGl6ZWQgb24gRENO
IDIuMQpbICAgNDUuMjg5Njc5XSBbZHJtXSBEUC1IRE1JIEZSTCBQQ09OIHN1cHBvcnRlZApbICAg
NDUuMjkwMjM5XSBbZHJtXSBETVVCIGhhcmR3YXJlIGluaXRpYWxpemVkOiB2ZXJzaW9uPTB4MDEw
MTAwMUYKWyAgIDQ1LjMyMzQ2NF0gc25kX2hkYV9pbnRlbCAwMDAwOjA1OjAwLjE6IGJvdW5kIDAw
MDA6MDU6MDAuMCAob3BzIGFtZGdwdV9kbV9hdWRpb19jb21wb25lbnRfYmluZF9vcHMgW2FtZGdw
dV0pClsgICA0NS41MjU1NTBdIFtkcm1dIGtpcSByaW5nIG1lYyAyIHBpcGUgMSBxIDAKWyAgIDQ1
LjUzMTY0MF0ga2ZkIGtmZDogYW1kZ3B1OiBBbGxvY2F0ZWQgMzk2OTA1NiBieXRlcyBvbiBnYXJ0
ClsgICA0NS41MzE2ODZdIGtmZCBrZmQ6IGFtZGdwdTogVG90YWwgbnVtYmVyIG9mIEtGRCBub2Rl
cyB0byBiZSBjcmVhdGVkOiAxClsgICA0NS41MzIzMjZdIGFtZGdwdTogVmlydHVhbCBDUkFUIHRh
YmxlIGNyZWF0ZWQgZm9yIEdQVQpbICAgNDUuNTMzOTM4XSBhbWRncHU6IFRvcG9sb2d5OiBBZGQg
ZEdQVSBub2RlIFsweDE2MzY6MHgxMDAyXQpbICAgNDUuNTMzOTQyXSBrZmQga2ZkOiBhbWRncHU6
IGFkZGVkIGRldmljZSAxMDAyOjE2MzYKWyAgIDQ1LjUzNDAzNF0gYW1kZ3B1IDAwMDA6MDU6MDAu
MDogYW1kZ3B1OiBTRSAxLCBTSCBwZXIgU0UgMSwgQ1UgcGVyIFNIIDgsIGFjdGl2ZV9jdV9udW1i
ZXIgNwpbICAgNDUuNTM0MDM5XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IHJpbmcgZ2Z4
IHVzZXMgVk0gaW52IGVuZyAwIG9uIGh1YiAwClsgICA0NS41MzQwNDFdIGFtZGdwdSAwMDAwOjA1
OjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMC4wIHVzZXMgVk0gaW52IGVuZyAxIG9uIGh1YiAw
ClsgICA0NS41MzQwNDJdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEu
MS4wIHVzZXMgVk0gaW52IGVuZyA0IG9uIGh1YiAwClsgICA0NS41MzQwNDRdIGFtZGdwdSAwMDAw
OjA1OjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMi4wIHVzZXMgVk0gaW52IGVuZyA1IG9uIGh1
YiAwClsgICA0NS41MzQwNDVdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyBjb21w
XzEuMy4wIHVzZXMgVk0gaW52IGVuZyA2IG9uIGh1YiAwClsgICA0NS41MzQwNDZdIGFtZGdwdSAw
MDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMC4xIHVzZXMgVk0gaW52IGVuZyA3IG9u
IGh1YiAwClsgICA0NS41MzQwNDhdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyBj
b21wXzEuMS4xIHVzZXMgVk0gaW52IGVuZyA4IG9uIGh1YiAwClsgICA0NS41MzQwNDldIGFtZGdw
dSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmluZyBjb21wXzEuMi4xIHVzZXMgVk0gaW52IGVuZyA5
IG9uIGh1YiAwClsgICA0NS41MzQwNTBdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmlu
ZyBjb21wXzEuMy4xIHVzZXMgVk0gaW52IGVuZyAxMCBvbiBodWIgMApbICAgNDUuNTM0MDUyXSBh
bWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IHJpbmcga2lxXzAuMi4xLjAgdXNlcyBWTSBpbnYg
ZW5nIDExIG9uIGh1YiAwClsgICA0NS41MzQwNTNdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdw
dTogcmluZyBzZG1hMCB1c2VzIFZNIGludiBlbmcgMCBvbiBodWIgOApbICAgNDUuNTM0MDU1XSBh
bWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IHJpbmcgdmNuX2RlYyB1c2VzIFZNIGludiBlbmcg
MSBvbiBodWIgOApbICAgNDUuNTM0MDU2XSBhbWRncHUgMDAwMDowNTowMC4wOiBhbWRncHU6IHJp
bmcgdmNuX2VuYzAgdXNlcyBWTSBpbnYgZW5nIDQgb24gaHViIDgKWyAgIDQ1LjUzNDA1N10gYW1k
Z3B1IDAwMDA6MDU6MDAuMDogYW1kZ3B1OiByaW5nIHZjbl9lbmMxIHVzZXMgVk0gaW52IGVuZyA1
IG9uIGh1YiA4ClsgICA0NS41MzQwNThdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IGFtZGdwdTogcmlu
ZyBqcGVnX2RlYyB1c2VzIFZNIGludiBlbmcgNiBvbiBodWIgOApbICAgNDUuNTQxMDAzXSBhbWRn
cHUgMDAwMDowNTowMC4wOiBhbWRncHU6IFJ1bnRpbWUgUE0gbm90IGF2YWlsYWJsZQpbICAgNDUu
NTQ0NDk3XSBbZHJtXSBJbml0aWFsaXplZCBhbWRncHUgMy41OS4wIGZvciAwMDAwOjA1OjAwLjAg
b24gbWlub3IgMQpbICAgNDUuNTU0Mjc1XSBmYmNvbjogYW1kZ3B1ZHJtZmIgKGZiMCkgaXMgcHJp
bWFyeSBkZXZpY2UKWyAgIDQ1LjU1NDc3M10gW2RybV0gcHJlX3ZhbGlkYXRlX2RzYzoxNTc4IE1T
VF9EU0MgZHNjIHByZWNvbXB1dGUgaXMgbm90IG5lZWRlZApbICAgNDUuNjc0MzUzXSBDb25zb2xl
OiBzd2l0Y2hpbmcgdG8gY29sb3VyIGZyYW1lIGJ1ZmZlciBkZXZpY2UgMTYweDQ1ClsgICA0NS43
MTE5MzVdIGFtZGdwdSAwMDAwOjA1OjAwLjA6IFtkcm1dIGZiMDogYW1kZ3B1ZHJtZmIgZnJhbWUg
YnVmZmVyIGRldmljZQoKCgoKCgoKCgoKCgpjanFAY2pxLWxvY2FsOn4kIHN1ZG8gbHNwY2kgLXZ2
diAtcyAwMzowMC4wCjAzOjAwLjAgVkdBIGNvbXBhdGlibGUgY29udHJvbGxlcjogQWR2YW5jZWQg
TWljcm8gRGV2aWNlcywgSW5jLiBbQU1EL0FUSV0gTmF2aSAyMyBbUmFkZW9uIFJYIDY2MDAvNjYw
MCBYVC82NjAwTV0gKHJldiBjNykgKHByb2ctaWYgMDAgW1ZHQSBjb250cm9sbGVyXSkKICAgICAg
ICBEZXZpY2VOYW1lOiBSZWFsdGVrIFJUTDgxMTFFIEV0aGVybmV0IExPTQogICAgICAgIFN1YnN5
c3RlbTogQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBbQU1EL0FUSV0gTmF2aSAyMyBbUmFk
ZW9uIFJYIDY2MDAvNjYwMCBYVC82NjAwTV0KICAgICAgICBDb250cm9sOiBJL08rIE1lbSsgQnVz
TWFzdGVyKyBTcGVjQ3ljbGUtIE1lbVdJTlYtIFZHQVNub29wLSBQYXJFcnItIFN0ZXBwaW5nLSBT
RVJSLSBGYXN0QjJCLSBEaXNJTlR4LQogICAgICAgIFN0YXR1czogQ2FwKyA2Nk1Iei0gVURGLSBG
YXN0QjJCLSBQYXJFcnItIERFVlNFTD1mYXN0ID5UQWJvcnQtIDxUQWJvcnQtIDxNQWJvcnQtID5T
RVJSLSA8UEVSUi0gSU5UeC0KICAgICAgICBMYXRlbmN5OiAwLCBDYWNoZSBMaW5lIFNpemU6IDY0
IGJ5dGVzCiAgICAgICAgSW50ZXJydXB0OiBwaW4gQSByb3V0ZWQgdG8gSVJRIDE0MgogICAgICAg
IFJlZ2lvbiAwOiBNZW1vcnkgYXQgYTAwMDAwMDAwICg2NC1iaXQsIHByZWZldGNoYWJsZSkgW3Np
emU9OEddCiAgICAgICAgUmVnaW9uIDI6IE1lbW9yeSBhdCA5MDAwMDAwMDAgKDY0LWJpdCwgcHJl
ZmV0Y2hhYmxlKSBbc2l6ZT0yTV0KICAgICAgICBSZWdpb24gNDogSS9PIHBvcnRzIGF0IDIwMDAg
W3NpemU9MjU2XQogICAgICAgIFJlZ2lvbiA1OiBNZW1vcnkgYXQgZDA2MDAwMDAgKDMyLWJpdCwg
bm9uLXByZWZldGNoYWJsZSkgW3NpemU9MU1dCiAgICAgICAgRXhwYW5zaW9uIFJPTSBhdCBkMDcy
MDAwMCBbZGlzYWJsZWRdIFtzaXplPTEyOEtdCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNDhdIFZl
bmRvciBTcGVjaWZpYyBJbmZvcm1hdGlvbjogTGVuPTA4IDw/PgogICAgICAgIENhcGFiaWxpdGll
czogWzUwXSBQb3dlciBNYW5hZ2VtZW50IHZlcnNpb24gMwogICAgICAgICAgICAgICAgRmxhZ3M6
IFBNRUNsay0gRFNJLSBEMS0gRDItIEF1eEN1cnJlbnQ9MG1BIFBNRShEMC0sRDErLEQyKyxEM2hv
dCssRDNjb2xkKykKICAgICAgICAgICAgICAgIFN0YXR1czogRDAgTm9Tb2Z0UnN0KyBQTUUtRW5h
YmxlLSBEU2VsPTAgRFNjYWxlPTAgUE1FLQogICAgICAgIENhcGFiaWxpdGllczogWzY0XSBFeHBy
ZXNzICh2MikgTGVnYWN5IEVuZHBvaW50LCBNU0kgMDAKICAgICAgICAgICAgICAgIERldkNhcDog
TWF4UGF5bG9hZCAyNTYgYnl0ZXMsIFBoYW50RnVuYyAwLCBMYXRlbmN5IEwwcyA8NHVzLCBMMSB1
bmxpbWl0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgRXh0VGFnKyBBdHRuQnRuLSBBdHRuSW5k
LSBQd3JJbmQtIFJCRSsgRkxSZXNldC0KICAgICAgICAgICAgICAgIERldkN0bDogQ29yckVycisg
Tm9uRmF0YWxFcnIrIEZhdGFsRXJyKyBVbnN1cFJlcSsKICAgICAgICAgICAgICAgICAgICAgICAg
Umx4ZE9yZCsgRXh0VGFnKyBQaGFudEZ1bmMtIEF1eFB3ci0gTm9Tbm9vcCsKICAgICAgICAgICAg
ICAgICAgICAgICAgTWF4UGF5bG9hZCAyNTYgYnl0ZXMsIE1heFJlYWRSZXEgNTEyIGJ5dGVzCiAg
ICAgICAgICAgICAgICBEZXZTdGE6IENvcnJFcnIrIE5vbkZhdGFsRXJyLSBGYXRhbEVyci0gVW5z
dXBSZXErIEF1eFB3ci0gVHJhbnNQZW5kLQogICAgICAgICAgICAgICAgTG5rQ2FwOiBQb3J0ICMw
LCBTcGVlZCAxNkdUL3MsIFdpZHRoIHgxNiwgQVNQTSBMMHMgTDEsIEV4aXQgTGF0ZW5jeSBMMHMg
PDY0bnMsIEwxIDwxdXMKICAgICAgICAgICAgICAgICAgICAgICAgQ2xvY2tQTSsgU3VycHJpc2Ut
IExMQWN0UmVwLSBCd05vdC0gQVNQTU9wdENvbXArCiAgICAgICAgICAgICAgICBMbmtDdGw6IEFT
UE0gTDEgRW5hYmxlZDsgUkNCIDY0IGJ5dGVzLCBEaXNhYmxlZC0gQ29tbUNsaysKICAgICAgICAg
ICAgICAgICAgICAgICAgRXh0U3luY2gtIENsb2NrUE0tIEF1dFdpZERpcy0gQldJbnQtIEF1dEJX
SW50LQogICAgICAgICAgICAgICAgTG5rU3RhOiBTcGVlZCAxNkdUL3MgKG9rKSwgV2lkdGggeDE2
IChvaykKICAgICAgICAgICAgICAgICAgICAgICAgVHJFcnItIFRyYWluLSBTbG90Q2xrKyBETEFj
dGl2ZS0gQldNZ210LSBBQldNZ210LQogICAgICAgICAgICAgICAgRGV2Q2FwMjogQ29tcGxldGlv
biBUaW1lb3V0OiBSYW5nZSBBQkNELCBUaW1lb3V0RGlzKyBOUk9QclByUC0gTFRSKwogICAgICAg
ICAgICAgICAgICAgICAgICAgMTBCaXRUYWdDb21wKyAxMEJpdFRhZ1JlcSsgT0JGRiBOb3QgU3Vw
cG9ydGVkLCBFeHRGbXQrIEVFVExQUHJlZml4KywgTWF4RUVUTFBQcmVmaXhlcyAxCiAgICAgICAg
ICAgICAgICAgICAgICAgICBFbWVyZ2VuY3lQb3dlclJlZHVjdGlvbiBOb3QgU3VwcG9ydGVkLCBF
bWVyZ2VuY3lQb3dlclJlZHVjdGlvbkluaXQtCiAgICAgICAgICAgICAgICAgICAgICAgICBGUlMt
CiAgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcHNDYXA6IDMyYml0KyA2NGJpdCsgMTI4
Yml0Q0FTLQogICAgICAgICAgICAgICAgRGV2Q3RsMjogQ29tcGxldGlvbiBUaW1lb3V0OiA1MHVz
IHRvIDUwbXMsIFRpbWVvdXREaXMtIExUUisgT0JGRiBEaXNhYmxlZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgIEF0b21pY09wc0N0bDogUmVxRW4rCiAgICAgICAgICAgICAgICBMbmtDYXAyOiBT
dXBwb3J0ZWQgTGluayBTcGVlZHM6IDIuNS0xNkdUL3MsIENyb3NzbGluay0gUmV0aW1lcisgMlJl
dGltZXJzKyBEUlMtCiAgICAgICAgICAgICAgICBMbmtDdGwyOiBUYXJnZXQgTGluayBTcGVlZDog
MTZHVC9zLCBFbnRlckNvbXBsaWFuY2UtIFNwZWVkRGlzLQogICAgICAgICAgICAgICAgICAgICAg
ICAgVHJhbnNtaXQgTWFyZ2luOiBOb3JtYWwgT3BlcmF0aW5nIFJhbmdlLCBFbnRlck1vZGlmaWVk
Q29tcGxpYW5jZS0gQ29tcGxpYW5jZVNPUy0KICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBs
aWFuY2UgRGUtZW1waGFzaXM6IC02ZEIKICAgICAgICAgICAgICAgIExua1N0YTI6IEN1cnJlbnQg
RGUtZW1waGFzaXMgTGV2ZWw6IC0zLjVkQiwgRXF1YWxpemF0aW9uQ29tcGxldGUrIEVxdWFsaXph
dGlvblBoYXNlMSsKICAgICAgICAgICAgICAgICAgICAgICAgIEVxdWFsaXphdGlvblBoYXNlMisg
RXF1YWxpemF0aW9uUGhhc2UzKyBMaW5rRXF1YWxpemF0aW9uUmVxdWVzdC0KICAgICAgICAgICAg
ICAgICAgICAgICAgIFJldGltZXItIDJSZXRpbWVycy0gQ3Jvc3NsaW5rUmVzOiB1bnN1cHBvcnRl
ZAogICAgICAgIENhcGFiaWxpdGllczogW2EwXSBNU0k6IEVuYWJsZSsgQ291bnQ9MS8xIE1hc2th
YmxlLSA2NGJpdCsKICAgICAgICAgICAgICAgIEFkZHJlc3M6IDAwMDAwMDAwZmVlMDYwMDAgIERh
dGE6IDAwMjIKICAgICAgICBDYXBhYmlsaXRpZXM6IFsxMDAgdjFdIFZlbmRvciBTcGVjaWZpYyBJ
bmZvcm1hdGlvbjogSUQ9MDAwMSBSZXY9MSBMZW49MDEwIDw/PgogICAgICAgIENhcGFiaWxpdGll
czogWzE1MCB2Ml0gQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5nCiAgICAgICAgICAgICAgICBVRVN0
YTogIERMUC0gU0RFUy0gVExQLSBGQ1AtIENtcGx0VE8tIENtcGx0QWJydC0gVW54Q21wbHQtIFJ4
T0YtIE1hbGZUTFAtIEVDUkMtIFVuc3VwUmVxLSBBQ1NWaW9sLQogICAgICAgICAgICAgICAgVUVN
c2s6ICBETFAtIFNERVMtIFRMUC0gRkNQLSBDbXBsdFRPLSBDbXBsdEFicnQtIFVueENtcGx0LSBS
eE9GLSBNYWxmVExQLSBFQ1JDLSBVbnN1cFJlcSsgQUNTVmlvbC0KICAgICAgICAgICAgICAgIFVF
U3ZydDogRExQKyBTREVTKyBUTFAtIEZDUCsgQ21wbHRUTysgQ21wbHRBYnJ0LSBVbnhDbXBsdCsg
UnhPRisgTWFsZlRMUCsgRUNSQysgVW5zdXBSZXEtIEFDU1Zpb2wtCiAgICAgICAgICAgICAgICBD
RVN0YTogIFJ4RXJyLSBCYWRUTFAtIEJhZERMTFAtIFJvbGxvdmVyLSBUaW1lb3V0LSBBZHZOb25G
YXRhbEVyci0KICAgICAgICAgICAgICAgIENFTXNrOiAgUnhFcnItIEJhZFRMUC0gQmFkRExMUC0g
Um9sbG92ZXItIFRpbWVvdXQtIEFkdk5vbkZhdGFsRXJyLQogICAgICAgICAgICAgICAgQUVSQ2Fw
OiBGaXJzdCBFcnJvciBQb2ludGVyOiAwMCwgRUNSQ0dlbkNhcCsgRUNSQ0dlbkVuKyBFQ1JDQ2hr
Q2FwKyBFQ1JDQ2hrRW4rCiAgICAgICAgICAgICAgICAgICAgICAgIE11bHRIZHJSZWNDYXAtIE11
bHRIZHJSZWNFbi0gVExQUGZ4UHJlcy0gSGRyTG9nQ2FwLQogICAgICAgICAgICAgICAgSGVhZGVy
TG9nOiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMAogICAgICAgIENhcGFiaWxp
dGllczogWzIwMCB2MV0gUGh5c2ljYWwgUmVzaXphYmxlIEJBUgogICAgICAgICAgICAgICAgQkFS
IDA6IGN1cnJlbnQgc2l6ZTogOEdCLCBzdXBwb3J0ZWQ6IDI1Nk1CIDUxMk1CIDFHQiAyR0IgNEdC
IDhHQgogICAgICAgICAgICAgICAgQkFSIDI6IGN1cnJlbnQgc2l6ZTogMk1CLCBzdXBwb3J0ZWQ6
IDJNQiA0TUIgOE1CIDE2TUIgMzJNQiA2NE1CIDEyOE1CIDI1Nk1CCiAgICAgICAgQ2FwYWJpbGl0
aWVzOiBbMjQwIHYxXSBQb3dlciBCdWRnZXRpbmcgPD8+CiAgICAgICAgQ2FwYWJpbGl0aWVzOiBb
MjcwIHYxXSBTZWNvbmRhcnkgUENJIEV4cHJlc3MKICAgICAgICAgICAgICAgIExua0N0bDM6IExu
a0VxdUludHJydXB0RW4tIFBlcmZvcm1FcXUtCiAgICAgICAgICAgICAgICBMYW5lRXJyU3RhdDog
MAogICAgICAgIENhcGFiaWxpdGllczogWzJhMCB2MV0gQWNjZXNzIENvbnRyb2wgU2VydmljZXMK
ICAgICAgICAgICAgICAgIEFDU0NhcDogU3JjVmFsaWQtIFRyYW5zQmxrLSBSZXFSZWRpci0gQ21w
bHRSZWRpci0gVXBzdHJlYW1Gd2QtIEVncmVzc0N0cmwtIERpcmVjdFRyYW5zLQogICAgICAgICAg
ICAgICAgQUNTQ3RsOiBTcmNWYWxpZC0gVHJhbnNCbGstIFJlcVJlZGlyLSBDbXBsdFJlZGlyLSBV
cHN0cmVhbUZ3ZC0gRWdyZXNzQ3RybC0gRGlyZWN0VHJhbnMtCiAgICAgICAgQ2FwYWJpbGl0aWVz
OiBbMmQwIHYxXSBQcm9jZXNzIEFkZHJlc3MgU3BhY2UgSUQgKFBBU0lEKQogICAgICAgICAgICAg
ICAgUEFTSURDYXA6IEV4ZWMrIFByaXYrLCBNYXggUEFTSUQgV2lkdGg6IDEwCiAgICAgICAgICAg
ICAgICBQQVNJREN0bDogRW5hYmxlLSBFeGVjLSBQcml2LQogICAgICAgIENhcGFiaWxpdGllczog
WzMyMCB2MV0gTGF0ZW5jeSBUb2xlcmFuY2UgUmVwb3J0aW5nCiAgICAgICAgICAgICAgICBNYXgg
c25vb3AgbGF0ZW5jeTogMTA0ODU3Nm5zCiAgICAgICAgICAgICAgICBNYXggbm8gc25vb3AgbGF0
ZW5jeTogMTA0ODU3Nm5zCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNDEwIHYxXSBQaHlzaWNhbCBM
YXllciAxNi4wIEdUL3MgPD8+CiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNDQwIHYxXSBMYW5lIE1h
cmdpbmluZyBhdCB0aGUgUmVjZWl2ZXIgPD8+CiAgICAgICAgS2VybmVsIGRyaXZlciBpbiB1c2U6
IGFtZGdwdQogICAgICAgIEtlcm5lbCBtb2R1bGVzOiBhbWRncHUKCgpjanFAY2pxLWxvY2FsOn4k
IHN1ZG8gbHNwY2kgLXZ2diAtcyAwMzowMC4xCjAzOjAwLjEgQXVkaW8gZGV2aWNlOiBBZHZhbmNl
ZCBNaWNybyBEZXZpY2VzLCBJbmMuIFtBTUQvQVRJXSBOYXZpIDIxIEhETUkgQXVkaW8gW1JhZGVv
biBSWCA2ODAwLzY4MDAgWFQgLyA2OTAwIFhUXQogICAgICAgIFN1YnN5c3RlbTogQWR2YW5jZWQg
TWljcm8gRGV2aWNlcywgSW5jLiBbQU1EL0FUSV0gTmF2aSAyMSBIRE1JIEF1ZGlvIFtSYWRlb24g
UlggNjgwMC82ODAwIFhUIC8gNjkwMCBYVF0KICAgICAgICBDb250cm9sOiBJL08rIE1lbSsgQnVz
TWFzdGVyKyBTcGVjQ3ljbGUtIE1lbVdJTlYtIFZHQVNub29wLSBQYXJFcnItIFN0ZXBwaW5nLSBT
RVJSLSBGYXN0QjJCLSBEaXNJTlR4LQogICAgICAgIFN0YXR1czogQ2FwKyA2Nk1Iei0gVURGLSBG
YXN0QjJCLSBQYXJFcnItIERFVlNFTD1mYXN0ID5UQWJvcnQtIDxUQWJvcnQtIDxNQWJvcnQtID5T
RVJSLSA8UEVSUi0gSU5UeC0KICAgICAgICBMYXRlbmN5OiAwLCBDYWNoZSBMaW5lIFNpemU6IDY0
IGJ5dGVzCiAgICAgICAgSW50ZXJydXB0OiBwaW4gQiByb3V0ZWQgdG8gSVJRIDEzNAogICAgICAg
IFJlZ2lvbiAwOiBNZW1vcnkgYXQgZDA3MDAwMDAgKDMyLWJpdCwgbm9uLXByZWZldGNoYWJsZSkg
W3NpemU9MTZLXQogICAgICAgIENhcGFiaWxpdGllczogWzQ4XSBWZW5kb3IgU3BlY2lmaWMgSW5m
b3JtYXRpb246IExlbj0wOCA8Pz4KICAgICAgICBDYXBhYmlsaXRpZXM6IFs1MF0gUG93ZXIgTWFu
YWdlbWVudCB2ZXJzaW9uIDMKICAgICAgICAgICAgICAgIEZsYWdzOiBQTUVDbGstIERTSS0gRDEt
IEQyLSBBdXhDdXJyZW50PTBtQSBQTUUoRDAtLEQxKyxEMissRDNob3QrLEQzY29sZCspCiAgICAg
ICAgICAgICAgICBTdGF0dXM6IEQzIE5vU29mdFJzdCsgUE1FLUVuYWJsZSsgRFNlbD0wIERTY2Fs
ZT0wIFBNRS0KICAgICAgICBDYXBhYmlsaXRpZXM6IFs2NF0gRXhwcmVzcyAodjIpIExlZ2FjeSBF
bmRwb2ludCwgTVNJIDAwCiAgICAgICAgICAgICAgICBEZXZDYXA6IE1heFBheWxvYWQgMjU2IGJ5
dGVzLCBQaGFudEZ1bmMgMCwgTGF0ZW5jeSBMMHMgPDR1cywgTDEgdW5saW1pdGVkCiAgICAgICAg
ICAgICAgICAgICAgICAgIEV4dFRhZysgQXR0bkJ0bi0gQXR0bkluZC0gUHdySW5kLSBSQkUrIEZM
UmVzZXQtCiAgICAgICAgICAgICAgICBEZXZDdGw6IENvcnJFcnIrIE5vbkZhdGFsRXJyKyBGYXRh
bEVycisgVW5zdXBSZXErCiAgICAgICAgICAgICAgICAgICAgICAgIFJseGRPcmQrIEV4dFRhZysg
UGhhbnRGdW5jLSBBdXhQd3ItIE5vU25vb3ArCiAgICAgICAgICAgICAgICAgICAgICAgIE1heFBh
eWxvYWQgMjU2IGJ5dGVzLCBNYXhSZWFkUmVxIDUxMiBieXRlcwogICAgICAgICAgICAgICAgRGV2
U3RhOiBDb3JyRXJyKyBOb25GYXRhbEVyci0gRmF0YWxFcnItIFVuc3VwUmVxKyBBdXhQd3ItIFRy
YW5zUGVuZC0KICAgICAgICAgICAgICAgIExua0NhcDogUG9ydCAjMCwgU3BlZWQgMTZHVC9zLCBX
aWR0aCB4MTYsIEFTUE0gTDBzIEwxLCBFeGl0IExhdGVuY3kgTDBzIDw2NG5zLCBMMSA8MXVzCiAg
ICAgICAgICAgICAgICAgICAgICAgIENsb2NrUE0rIFN1cnByaXNlLSBMTEFjdFJlcC0gQndOb3Qt
IEFTUE1PcHRDb21wKwogICAgICAgICAgICAgICAgTG5rQ3RsOiBBU1BNIEwxIEVuYWJsZWQ7IFJD
QiA2NCBieXRlcywgRGlzYWJsZWQtIENvbW1DbGsrCiAgICAgICAgICAgICAgICAgICAgICAgIEV4
dFN5bmNoLSBDbG9ja1BNLSBBdXRXaWREaXMtIEJXSW50LSBBdXRCV0ludC0KICAgICAgICAgICAg
ICAgIExua1N0YTogU3BlZWQgMTZHVC9zIChvayksIFdpZHRoIHgxNiAob2spCiAgICAgICAgICAg
ICAgICAgICAgICAgIFRyRXJyLSBUcmFpbi0gU2xvdENsaysgRExBY3RpdmUtIEJXTWdtdC0gQUJX
TWdtdC0KICAgICAgICAgICAgICAgIERldkNhcDI6IENvbXBsZXRpb24gVGltZW91dDogUmFuZ2Ug
QUJDRCwgVGltZW91dERpcysgTlJPUHJQclAtIExUUisKICAgICAgICAgICAgICAgICAgICAgICAg
IDEwQml0VGFnQ29tcCsgMTBCaXRUYWdSZXErIE9CRkYgTm90IFN1cHBvcnRlZCwgRXh0Rm10KyBF
RVRMUFByZWZpeCssIE1heEVFVExQUHJlZml4ZXMgMQogICAgICAgICAgICAgICAgICAgICAgICAg
RW1lcmdlbmN5UG93ZXJSZWR1Y3Rpb24gTm90IFN1cHBvcnRlZCwgRW1lcmdlbmN5UG93ZXJSZWR1
Y3Rpb25Jbml0LQogICAgICAgICAgICAgICAgICAgICAgICAgRlJTLQogICAgICAgICAgICAgICAg
ICAgICAgICAgQXRvbWljT3BzQ2FwOiAzMmJpdC0gNjRiaXQtIDEyOGJpdENBUy0KICAgICAgICAg
ICAgICAgIERldkN0bDI6IENvbXBsZXRpb24gVGltZW91dDogNTB1cyB0byA1MG1zLCBUaW1lb3V0
RGlzLSBMVFItIE9CRkYgRGlzYWJsZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNP
cHNDdGw6IFJlcUVuLQogICAgICAgICAgICAgICAgTG5rU3RhMjogQ3VycmVudCBEZS1lbXBoYXNp
cyBMZXZlbDogLTMuNWRCLCBFcXVhbGl6YXRpb25Db21wbGV0ZS0gRXF1YWxpemF0aW9uUGhhc2Ux
LQogICAgICAgICAgICAgICAgICAgICAgICAgRXF1YWxpemF0aW9uUGhhc2UyLSBFcXVhbGl6YXRp
b25QaGFzZTMtIExpbmtFcXVhbGl6YXRpb25SZXF1ZXN0LQogICAgICAgICAgICAgICAgICAgICAg
ICAgUmV0aW1lci0gMlJldGltZXJzLSBDcm9zc2xpbmtSZXM6IHVuc3VwcG9ydGVkCiAgICAgICAg
Q2FwYWJpbGl0aWVzOiBbYTBdIE1TSTogRW5hYmxlKyBDb3VudD0xLzEgTWFza2FibGUtIDY0Yml0
KwogICAgICAgICAgICAgICAgQWRkcmVzczogMDAwMDAwMDBmZWUwMDAwMCAgRGF0YTogMDAyMgog
ICAgICAgIENhcGFiaWxpdGllczogWzEwMCB2MV0gVmVuZG9yIFNwZWNpZmljIEluZm9ybWF0aW9u
OiBJRD0wMDAxIFJldj0xIExlbj0wMTAgPD8+CiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMTUwIHYy
XSBBZHZhbmNlZCBFcnJvciBSZXBvcnRpbmcKICAgICAgICAgICAgICAgIFVFU3RhOiAgRExQLSBT
REVTLSBUTFAtIEZDUC0gQ21wbHRUTy0gQ21wbHRBYnJ0LSBVbnhDbXBsdC0gUnhPRi0gTWFsZlRM
UC0gRUNSQy0gVW5zdXBSZXEtIEFDU1Zpb2wtCiAgICAgICAgICAgICAgICBVRU1zazogIERMUC0g
U0RFUy0gVExQLSBGQ1AtIENtcGx0VE8tIENtcGx0QWJydC0gVW54Q21wbHQtIFJ4T0YtIE1hbGZU
TFAtIEVDUkMtIFVuc3VwUmVxKyBBQ1NWaW9sLQogICAgICAgICAgICAgICAgVUVTdnJ0OiBETFAr
IFNERVMrIFRMUC0gRkNQKyBDbXBsdFRPKyBDbXBsdEFicnQtIFVueENtcGx0KyBSeE9GKyBNYWxm
VExQKyBFQ1JDKyBVbnN1cFJlcS0gQUNTVmlvbC0KICAgICAgICAgICAgICAgIENFU3RhOiAgUnhF
cnItIEJhZFRMUC0gQmFkRExMUC0gUm9sbG92ZXItIFRpbWVvdXQtIEFkdk5vbkZhdGFsRXJyLQog
ICAgICAgICAgICAgICAgQ0VNc2s6ICBSeEVyci0gQmFkVExQLSBCYWRETExQLSBSb2xsb3Zlci0g
VGltZW91dC0gQWR2Tm9uRmF0YWxFcnItCiAgICAgICAgICAgICAgICBBRVJDYXA6IEZpcnN0IEVy
cm9yIFBvaW50ZXI6IDAwLCBFQ1JDR2VuQ2FwKyBFQ1JDR2VuRW4rIEVDUkNDaGtDYXArIEVDUkND
aGtFbisKICAgICAgICAgICAgICAgICAgICAgICAgTXVsdEhkclJlY0NhcC0gTXVsdEhkclJlY0Vu
LSBUTFBQZnhQcmVzLSBIZHJMb2dDYXAtCiAgICAgICAgICAgICAgICBIZWFkZXJMb2c6IDAwMDAw
MDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbMmEw
IHYxXSBBY2Nlc3MgQ29udHJvbCBTZXJ2aWNlcwogICAgICAgICAgICAgICAgQUNTQ2FwOiBTcmNW
YWxpZC0gVHJhbnNCbGstIFJlcVJlZGlyLSBDbXBsdFJlZGlyLSBVcHN0cmVhbUZ3ZC0gRWdyZXNz
Q3RybC0gRGlyZWN0VHJhbnMtCiAgICAgICAgICAgICAgICBBQ1NDdGw6IFNyY1ZhbGlkLSBUcmFu
c0Jsay0gUmVxUmVkaXItIENtcGx0UmVkaXItIFVwc3RyZWFtRndkLSBFZ3Jlc3NDdHJsLSBEaXJl
Y3RUcmFucy0KICAgICAgICBLZXJuZWwgZHJpdmVyIGluIHVzZTogc25kX2hkYV9pbnRlbAogICAg
ICAgIEtlcm5lbCBtb2R1bGVzOiBzbmRfaGRhX2ludGVsCgo=

--_003_BL1PR12MB5849894360DB8D96073AB21EE7272BL1PR12MB5849namp_
Content-Type: text/plain; name="Jiqian_rebar_xl_dmesg.txt"
Content-Description: Jiqian_rebar_xl_dmesg.txt
Content-Disposition: attachment; filename="Jiqian_rebar_xl_dmesg.txt";
	size=21204; creation-date="Mon, 18 Nov 2024 05:48:46 GMT";
	modification-date="Mon, 18 Nov 2024 06:06:02 GMT"
Content-Transfer-Encoding: base64

IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgIF9fXyAgICAgICAgICAgICAgICAgICAg
IF8gICAgICAgIF8gICAgIF8KIFwgXC8gL19fXyBfIF9fICAgfCB8fCB8ICB8X19fIFwgLyBfIFwg
ICAgXyAgIF8gXyBfXyAgX19ffCB8XyBfXyBffCB8X18gfCB8IF9fXwogIFwgIC8vIF8gXCAnXyBc
ICB8IHx8IHxfICAgX18pIHwgfCB8IHxfX3wgfCB8IHwgJ18gXC8gX198IF9fLyBfYCB8ICdfIFx8
IHwvIF8gXAogIC8gIFwgIF9fLyB8IHwgfCB8X18gICBffCAvIF9fL3wgfF98IHxfX3wgfF98IHwg
fCB8IFxfXyBcIHx8IChffCB8IHxfKSB8IHwgIF9fLwogL18vXF9cX19ffF98IHxffCAgICB8X3wo
XylfX19fX3xcX19fLyAgICBcX18sX3xffCB8X3xfX18vXF9fXF9fLF98Xy5fXy98X3xcX19ffAoK
KFhFTikgWGVuIHZlcnNpb24gNC4yMC11bnN0YWJsZSAoY2pxQCkgKGdjYyAoVWJ1bnR1IDExLjQu
MC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4wKSBkZWJ1Zz15IE1vbiBOb3YgMTggMTM6NDM6NTggQ1NU
IDIwMjQKKFhFTikgTGF0ZXN0IENoYW5nZVNldDogTW9uIE5vdiAxOCAxMzo0MjowMCAyMDI0ICsw
ODAwIGdpdDozY2E5Nzc0YzY5CihYRU4pIGJ1aWxkLWlkOiBiYWM2Y2Q5NDFmYmYzZTIzYWRlMWRh
YTBiMzE0NTE3YWM5YmIxY2VkCihYRU4pIEJvb3Rsb2FkZXI6IEdSVUIgMi4wNi0ydWJ1bnR1MTQu
NAooWEVOKSBDb21tYW5kIGxpbmU6IHBsYWNlaG9sZGVyIGRvbTA9cHZoIGRvbTBfbWVtPTZHIGxv
Z2x2bD1hbGwgbm8tcmVhbC1tb2RlIGVkZD1vZmYKKFhFTikgWGVuIGltYWdlIGxvYWQgYmFzZSBh
ZGRyZXNzOiAweGM2YzAwMDAwCihYRU4pIFZpZGVvIGluZm9ybWF0aW9uOgooWEVOKSAgVkdBIGlz
IGdyYXBoaWNzIG1vZGUgMjU2MHgxNDQwLCAzMiBicHAKKFhFTikgRGlzYyBpbmZvcm1hdGlvbjoK
KFhFTikgIEZvdW5kIDAgTUJSIHNpZ25hdHVyZXMKKFhFTikgIEZvdW5kIDEgRUREIGluZm9ybWF0
aW9uIHN0cnVjdHVyZXMKKFhFTikgQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkgMjMgKDB4MTcpLCBN
b2RlbCA5NiAoMHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkKKFhFTikgRUZJIFJBTSBt
YXA6CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAwMDA5ZWZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwMDAwMDlmMDAwLCAwMDAwMDAwMDAwMGJmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAwMDAwMDAwOWFmZmZmZl0gKHVzYWJsZSkKKFhFTikg
IFswMDAwMDAwMDA5YjAwMDAwLCAwMDAwMDAwMDA5ZGZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBb
MDAwMDAwMDAwOWUwMDAwMCwgMDAwMDAwMDAwOWVmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAw
MDAwMDA5ZjAwMDAwLCAwMDAwMDAwMDA5ZjBmZmZmXSAoQUNQSSBOVlMpCihYRU4pICBbMDAwMDAw
MDAwOWYxMDAwMCwgMDAwMDAwMDBiYjQ2NWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGJi
NDY2MDAwLCAwMDAwMDAwMGJjNTY1ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBiYzU2
NjAwMCwgMDAwMDAwMDBjODc3ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGM4NzdmMDAw
LCAwMDAwMDAwMGNhZjdlZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBjYWY3ZjAwMCwg
MDAwMDAwMDBjY2Y3ZWZmZl0gKEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwY2NmN2YwMDAsIDAw
MDAwMDAwY2NmZmVmZmZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAwMDAwMDBjY2ZmZjAwMCwgMDAw
MDAwMDBjY2ZmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGNkMDAwMDAwLCAwMDAwMDAw
MGNkZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBm
N2ZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmRlMDAwMDAsIDAwMDAwMDAwZmRl
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAx
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZm
Zl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVjMjAwMDAsIDAwMDAwMDAwZmVjMjBmZmZd
IChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDgwMDAwLCAwMDAwMDAwMGZlZDgxZmZmXSAo
cmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWRjMDAwMCwgMDAwMDAwMDBmZWRkZmZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVlMDAwMDAsIDAwMDAwMDAwZmVlMDBmZmZdIChyZXNl
cnZlZCkKKFhFTikgIFswMDAwMDAwMGZmMDAwMDAwLCAwMDAwMDAwMGZmZjFmZmZmXSAocmVzZXJ2
ZWQpCihYRU4pICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAwMDAwMDgwZjMzZmZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwODBmMzQwMDAwLCAwMDAwMDAwODJmZmZmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pIEJTUCBtaWNyb2NvZGUgcmV2aXNpb246IDB4MDg2MDAxMDkKKFhFTikgQUNQSTogUlNEUCBD
Q0ZGRTAxNCwgMDAyNCAocjIgQU1EICAgKQooWEVOKSBBQ1BJOiBYU0RUIENDRkRFMTg4LCAwMTU0
IChyMSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDIgICAgICAgMTAwMDAxMykKKFhFTikgQUNQSTog
RkFDUCBDQ0ZFNjAwMCwgMDExNCAocjYgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAg
NDAwMDApCihYRU4pIEFDUEk6IERTRFQgQ0NGRDQwMDAsIDkwQkYgKHIxIEFNRCAgICBDZWxhZG9u
ICAgICAgICAgMiBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBGQUNTIENDRUYxMDAwLCAwMDQw
CihYRU4pIEFDUEk6IFVFRkkgQ0NGN0UwMDAsIDAyMzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkY1MDAwLCA3MjNDIChyMiBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogSVZSUyBD
Q0ZGNDAwMCwgMDFBNCAocjIgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IFNTRFQgQ0NGRjAwMDAsIDM3NEEgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVGMDAwLCAwMjI4IChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQkVSVCBD
Q0ZFRTAwMCwgMDAzMCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEVJTkogQ0NGRUMwMDAsIDAxNTAgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVCMDAwLCAwNDZEIChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogVFBNMiBD
Q0ZFQTAwMCwgMDAzNCAocjQgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEFTRiEgQ0NGRTgwMDAsIDAwQTUgKHIzMiBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQk9PVCBDQ0ZFNzAwMCwgMDAyOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IEhQRVQg
Q0NGRTUwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBBUElDIENDRkU0MDAwLCAwMTM4IChyNCBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogTUNGRyBDQ0ZFMzAwMCwgMDAzQyAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNMSUMg
Q0NGRTIwMDAsIDAxNzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBXU01UIENDRkRGMDAwLCAwMDI4IChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCBDQ0ZGRDAwMCwgMDA4MCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQg
Q0NGQzUwMDAsIDAxNjQgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgMTAwMCBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBTU0RUIENDRkMyMDAwLCAyQjgwIChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQ1JBVCBDQ0ZDMTAwMCwgMEJBOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IENESVQg
Q0NGQzAwMDAsIDAwMjkgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBWRkNUIENDRkE3MDAwLCAxOENBMCAocjEgQU1EICAgIENlbGFkb24gICAg
ICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRDMwMDAsIDAxMzkgKHIx
IEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBIRVNU
IENDRjk2MDAwLCAxMDg3NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRUQwMDAsIDAyOEQgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkQyMDAwLCAwRDM3IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZEMDAwMCwgMTBBQiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0YwMDAsIDAxNzkgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkNEMDAwLCAxNTRGIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZDQjAwMCwgMTBCMyAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0EwMDAsIDAxQzAgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkM2MDAwLCAzMEM4IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogRlBE
VCBDQ0Y5NTAwMCwgMDA0NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IEJHUlQgQ0NGOTQwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkUxMDAwLCAwMDdEIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZFMDAwMCwgMEY5NiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGOTMwMDAsIDA1MTcgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBTeXN0ZW0gUkFNOiAzMjEwMk1CICgzMjg3Mjc2
NGtCKQooWEVOKSBObyBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKKFhFTikgRmFraW5nIGEgbm9k
ZSBhdCAwMDAwMDAwMDAwMDAwMDAwLTAwMDAwMDA4MGYzNDAwMDAKKFhFTikgRG9tYWluIGhlYXAg
aW5pdGlhbGlzZWQKKFhFTikgdmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDAwMDAwMGZjNzAwMDAw
MDAsIG1hcHBlZCB0byAweGZmZmY4MmMwMDAyMDMwMDAsIHVzaW5nIDE0NDAwaywgdG90YWwgMTQ0
MDBrCihYRU4pIHZlc2FmYjogbW9kZSBpcyAyNTYweDE0NDB4MzIsIGxpbmVsZW5ndGg9MTAyNDAs
IGZvbnQgOHgxNgooWEVOKSB2ZXNhZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0y
NDoxNjo4OjAKKFhFTikgU01CSU9TIDMuMSBwcmVzZW50LgooWEVOKSBVc2luZyBBUElDIGRyaXZl
ciBkZWZhdWx0CihYRU4pIEFDUEk6IFBNLVRpbWVyIElPIFBvcnQ6IDB4NDA4ICgzMiBiaXRzKQoo
WEVOKSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6MF0sIHN0YXR1c1swOjBdCihYRU4p
IEFDUEk6IFNMRUVQIElORk86IHBtMXhfY250WzE6NDA0LDE6MF0sIHBtMXhfZXZ0WzE6NDAwLDE6
MF0KKFhFTikgQUNQSTogMzIvNjRYIEZBQ1MgYWRkcmVzcyBtaXNtYXRjaCBpbiBGQURUIC0gY2Nl
ZjEwMDAvMDAwMDAwMDAwMDAwMDAwMCwgdXNpbmcgMzIKKFhFTikgQUNQSTogICAgICAgICAgICAg
d2FrZXVwX3ZlY1tjY2VmMTAwY10sIHZlY19zaXplWzIwXQooWEVOKSBBQ1BJOiBMb2NhbCBBUElD
IGFkZHJlc3MgMHhmZWUwMDAwMAooWEVOKSBPdmVycmlkaW5nIEFQSUMgZHJpdmVyIHdpdGggYmln
c21wCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBnc2lf
YmFzZVswXSkKKFhFTikgSU9BUElDWzBdOiBhcGljX2lkIDMzLCB2ZXJzaW9uIDMzLCBhZGRyZXNz
IDB4ZmVjMDAwMDAsIEdTSSAwLTIzCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMl0gYWRkcmVz
c1sweGZlYzAxMDAwXSBnc2lfYmFzZVsyNF0pCihYRU4pIElPQVBJQ1sxXTogYXBpY19pZCAzNCwg
dmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUKKFhFTikgQUNQSTogSU5U
X1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMCBnbG9iYWxfaXJxIDIgZGZsIGRmbCkKKFhFTikgQUNQ
STogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgOSBnbG9iYWxfaXJxIDkgbG93IGxldmVsKQoo
WEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTIgdXNlZCBi
eSBvdmVycmlkZS4KKFhFTikgQUNQSTogSVJROSB1c2VkIGJ5IG92ZXJyaWRlLgooWEVOKSBBQ1BJ
OiBIUEVUIGlkOiAweDEwMjI4MjEwIGJhc2U6IDB4ZmVkMDAwMDAKKFhFTikgUENJOiBNQ0ZHIGNv
bmZpZ3VyYXRpb24gMDogYmFzZSBmMDAwMDAwMCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSA3Zgoo
WEVOKSBQQ0k6IE1DRkcgYXJlYSBhdCBmMDAwMDAwMCByZXNlcnZlZCBpbiBFODIwCihYRU4pIFBD
STogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03ZgooWEVOKSBIRVNUOiBUYWJs
ZSBwYXJzaW5nIGhhcyBiZWVuIGluaXRpYWxpemVkCihYRU4pIEFDUEk6IEJHUlQ6IGludmFsaWRh
dGluZyB2MSBpbWFnZSBhdCAweGMzMmIwMDAwCihYRU4pIFVzaW5nIEFDUEkgKE1BRFQpIGZvciBT
TVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgooWEVOKSBTTVA6IEFsbG93aW5nIDE2IENQVXMg
KDQgaG90cGx1ZyBDUFVzKQooWEVOKSBJUlEgbGltaXRzOiA1NiBHU0ksIDI0NDAgTVNJL01TSS1Y
CihYRU4pIFplbmJsZWVkIG1pdGlnYXRpb24gLSB1c2luZyBjaGlja2VuYml0CihYRU4pIENQVTA6
IDE0MDAgLi4uIDMwMDAgTUh6CihYRU4pIHhzdGF0ZTogc2l6ZTogMHgzODAgYW5kIHN0YXRlczog
MHgyMDcKKFhFTikgQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFi
bGVkCihYRU4pIFNwZWN1bGF0aXZlIG1pdGlnYXRpb24gZmFjaWxpdGllczoKKFhFTikgICBIYXJk
d2FyZSBoaW50czogSUJSU19GQVNUIElCUlNfU0FNRV9NT0RFCihYRU4pICAgSGFyZHdhcmUgZmVh
dHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JECihYRU4pICAgQ29tcGlsZWQtaW4gc3VwcG9ydDog
SU5ESVJFQ1RfVEhVTksgU0hBRE9XX1BBR0lORyBIQVJERU5fQVJSQVkgSEFSREVOX0JSQU5DSCBI
QVJERU5fR1VFU1RfQUNDRVNTIEhBUkRFTl9MT0NLCihYRU4pICAgWGVuIHNldHRpbmdzOiBCVEkt
VGh1bms6IFJFVFBPTElORSwgU1BFQ19DVFJMOiBJQlJTLSBTVElCUCsgU1NCRC0sIE90aGVyOiBC
UkFOQ0hfSEFSREVOCihYRU4pICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNSX1NQRUNfQ1RSTCBN
U1JfVklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkKKFhFTikgICBTdXBwb3J0IGZvciBQViBW
TXM6IElCUEItZW50cnkKKFhFTikgICBYUFRJICg2NC1iaXQgUFYgb25seSk6IERvbTAgZGlzYWJs
ZWQsIERvbVUgZGlzYWJsZWQgKHdpdGhvdXQgUENJRCkKKFhFTikgICBQViBMMVRGIHNoYWRvd2lu
ZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZAooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNN
UCBDcmVkaXQgU2NoZWR1bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIEluaXRpYWxpemluZyBDcmVk
aXQyIHNjaGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2Fk
X3dpbmRvd19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAoo
WEVOKSAgb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJy
YW5nZW1lbnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1z
CihYRU4pIGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIFBs
YXRmb3JtIHRpbWVyIGlzIDE0LjMxOE1IeiBIUEVUCihYRU4pIERldGVjdGVkIDI5OTQuMzc3IE1I
eiBwcm9jZXNzb3IuCihYRU4pIEZyZWVkIDEwMjBrQiB1bnVzZWQgQlNTIG1lbW9yeQooWEVOKSBF
RkkgbWVtb3J5IG1hcDoKKFhFTikgIDAwMDAwMDAwMDAwMDAtMDAwMDAwMDAwM2ZmZiB0eXBlPTIg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAwMDA0MDAwLTAwMDAwMDAwOGVmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwMDA4ZjAwMC0wMDAwMDAw
MDllZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDAwOWYwMDAt
MDAwMDAwMDA5ZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAw
MTAwMDAwLTAwMDAwMDRhYzZmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDAwNGFjNzAwMC0wMDAwMDA5YWZmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwMDliMDAwMDAtMDAwMDAwOWRmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMDA5ZTAwMDAwLTAwMDAwMDllZmZmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwOWYwMDAwMC0wMDAwMDA5ZjBmZmZmIHR5cGU9MTAg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDA5ZjEwMDAwLTAwMDAwNzg5MzdmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA3ODkzODAwMC0wMDAwMDdm
ZmZlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwN2ZmZmYwMDAt
MDAwMDBiNmU4OGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI2
ZTg5MDAwLTAwMDAwYjcxMDNmZmYgdHlwZT0xIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDBiNzEwNDAwMC0wMDAwMGI3MzdlZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwYjczN2YwMDAtMDAwMDBiNzM5ZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMGI3MzlmMDAwLTAwMDAwYjczZjdmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiNzNmODAwMC0wMDAwMGI3NjE5ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYjc2MWEwMDAtMDAwMDBiNzY2N2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI3NjY4MDAwLTAwMDAwYmFm
ODZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYWY4NzAwMC0w
MDAwMGJhZmE1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmFm
YTYwMDAtMDAwMDBiYWZmN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAw
MDAwMGJhZmY4MDAwLTAwMDAwYmIwNWRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgoo
WEVOKSAgMDAwMDBiYjA1ZTAwMC0wMDAwMGJiNDY1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYKKFhFTikgIDAwMDAwYmI0NjYwMDAtMDAwMDBiYzU2NWZmZiB0eXBlPTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTY2MDAwLTAwMDAwYmM1NmZmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzU3MDAwMC0wMDAwMGJjNTc5ZmZmIHR5
cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmM1N2EwMDAtMDAwMDBiYzU3
Y2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTdkMDAwLTAw
MDAwYmM2YThmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzZh
OTAwMC0wMDAwMGJjNzdlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAw
MDAwYmM3N2YwMDAtMDAwMDBjMzE2MGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihY
RU4pICAwMDAwMGMzMTYxMDAwLTAwMDAwYzMyYTFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZgooWEVOKSAgMDAwMDBjMzJhMjAwMC0wMDAwMGMzMmFiZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzMyYWMwMDAtMDAwMDBjMzJhY2ZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGMzMmFkMDAwLTAwMDAwYzMyYWRmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjMzJhZTAwMC0wMDAwMGM2Nzdl
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzY3N2YwMDAtMDAw
MDBjNmRmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGM2ZTAw
MDAwLTAwMDAwYzcxZjdmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDBjNzFmODAwMC0wMDAwMGM3MzdhZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwYzczN2IwMDAtMDAwMDBjODc3ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmCihYRU4pICAwMDAwMGM4NzdmMDAwLTAwMDAwYzhmN2VmZmYgdHlwZT01IGF0dHI9ODAwMDAw
MDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjOGY3ZjAwMC0wMDAwMGM5ZjdlZmZmIHR5cGU9NiBhdHRy
PTgwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzlmN2YwMDAtMDAwMDBjYWY3ZWZmZiB0eXBl
PTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNhZjdmMDAwLTAwMDAwY2NmN2Vm
ZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwY2NmN2YwMDAtMDAw
MDBjY2ZmZWZmZiB0eXBlPTkgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNjZmZm
MDAwLTAwMDAwY2NmZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDEwMDAwMDAwMC0wMDAwODBmMzNmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwMDAwYTAwMDAtMDAwMDAwMDBiZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAw
MDAwCihYRU4pICAwMDAwMGNkMDAwMDAwLTAwMDAwY2RmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAw
MDAwMDAwMDAwMAooWEVOKSAgMDAwMDBmMDAwMDAwMC0wMDAwMGY3ZmZmZmZmIHR5cGU9MTEgYXR0
cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZkZTAwMDAwLTAwMDAwZmRlZmZmZmYgdHlw
ZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmVjMDAwMDAtMDAwMDBmZWMw
MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDBmZWMxMDAwMC0w
MDAwMGZlYzEwZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZl
YzIwMDAwLTAwMDAwZmVjMjBmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikg
IDAwMDAwZmVkODAwMDAtMDAwMDBmZWQ4MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAw
MQooWEVOKSAgMDAwMDBmZWRjMDAwMC0wMDAwMGZlZGRmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAw
MDAwMDAwMDAxCihYRU4pICAwMDAwMGZlZTAwMDAwLTAwMDAwZmVlMDBmZmYgdHlwZT0xMSBhdHRy
PTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmYwMDAwMDAtMDAwMDBmZmYxZmZmZiB0eXBl
PTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDgwZjM0MDAwMC0wMDAwODJmZmZm
ZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMDAKKFhFTikgYWx0IHRhYmxlIGZmZmY4MmQw
NDA0OWMxYjggLT4gZmZmZjgyZDA0MDRhZWNhNAooWEVOKSBBTUQtVmk6IElPTU1VIEV4dGVuZGVk
IEZlYXR1cmVzOgooWEVOKSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVlc3QKKFhFTikg
LSB4MkFQSUMKKFhFTikgLSBOWCBiaXQKKFhFTikgLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kCihY
RU4pIC0gR3Vlc3QgQVBJQwooWEVOKSAtIFBlcmZvcm1hbmNlIENvdW50ZXJzCihYRU4pIC0gSG9z
dCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNpemU6IDB4MgooWEVOKSAtIEd1ZXN0IEFkZHJlc3MgVHJh
bnNsYXRpb24gU2l6ZTogMAooWEVOKSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAweDEK
KFhFTikgLSBNYXhpbXVtIFBBU0lEOiAweGYKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyOiAw
eDEKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAweDEKKFhFTikgLSBHdWVzdCBW
aXJ0dWFsIEFQSUMgTW9kZXM6IDB4MQooWEVOKSAtIER1YWwgUFBSIExvZzogMHgyCihYRU4pIC0g
RHVhbCBFdmVudCBMb2c6IDB4MgooWEVOKSAtIFVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVj
dGlvbgooWEVOKSAtIERldmljZSBUYWJsZSBTZWdtZW50YXRpb246IDB4MwooWEVOKSAtIFBQUiBM
b2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZwooWEVOKSAtIFBQUiBBdXRvbWF0aWMgUmVzcG9uc2UK
KFhFTikgLSBNZW1vcnkgQWNjZXNzIFJvdXRpbmcgYW5kIENvbnRyb2w6IDAKKFhFTikgLSBCbG9j
ayBTdG9wTWFyayBNZXNzYWdlCihYRU4pIC0gUGVyZm9ybWFuY2UgT3B0aW1pemF0aW9uCihYRU4p
IC0gTVNJIENhcGFiaWxpdHkgTU1JTyBBY2Nlc3MKKFhFTikgLSBHdWVzdCBJL08gUHJvdGVjdGlv
bgooWEVOKSAtIEVuaGFuY2VkIFBQUiBIYW5kbGluZwooWEVOKSAtIEF0dHJpYnV0ZSBGb3J3YXJk
CihYRU4pIC0gSW52YWxpZGF0ZSBJT1RMQiBUeXBlCihYRU4pIC0gVk0gVGFibGUgU2l6ZTogMAoo
WEVOKSAtIEd1ZXN0IEFjY2VzcyBCaXQgVXBkYXRlIERpc2FibGUKKFhFTikgQU1ELVZpOiBEaXNh
YmxlZCBIQVAgbWVtb3J5IG1hcCBzaGFyaW5nIHdpdGggSU9NTVUKKFhFTikgQU1ELVZpOiBJT01N
VSAwIEVuYWJsZWQuCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4pICAtIERv
bTAgbW9kZTogUmVsYXhlZAooWEVOKSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQKKFhFTikg
bnJfc29ja2V0czogMgooWEVOKSBFbmFibGluZyBBUElDIG1vZGUuICBVc2luZyAyIEkvTyBBUElD
cwooWEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMKKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
aG9kCihYRU4pIC4uVElNRVI6IHZlY3Rvcj0weEYwIGFwaWMxPTAgcGluMT0yIGFwaWMyPS0xIHBp
bjI9LTEKKFhFTikgV2FsbGNsb2NrIHNvdXJjZTogRUZJCihYRU4pIEFsbG9jYXRlZCBjb25zb2xl
IHJpbmcgb2YgMTI4IEtpQi4KKFhFTikgbXdhaXQtaWRsZTogZG9lcyBub3QgcnVuIG9uIGZhbWls
eSAyMyBtb2RlbCA5NgooWEVOKSBIVk06IEFTSURzIGVuYWJsZWQuCihYRU4pIFNWTTogU3VwcG9y
dGVkIGFkdmFuY2VkIGZlYXR1cmVzOgooWEVOKSAgLSBOZXN0ZWQgUGFnZSBUYWJsZXMgKE5QVCkK
KFhFTikgIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uCihYRU4pICAt
IE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQKKFhFTikgIC0gVk1DQiBDbGVhbiBCaXRzCihYRU4p
ICAtIFRMQiBmbHVzaCBieSBBU0lECihYRU4pICAtIERlY29kZUFzc2lzdHMKKFhFTikgIC0gVmly
dHVhbCBWTUxPQUQvVk1TQVZFCihYRU4pICAtIFZpcnR1YWwgR0lGCihYRU4pICAtIFBhdXNlLUlu
dGVyY2VwdCBGaWx0ZXIKKFhFTikgIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlciBUaHJlc2hvbGQK
KFhFTikgIC0gVFNDIFJhdGUgTVNSCihYRU4pICAtIE1TUl9TUEVDX0NUUkwgdmlydHVhbGlzYXRp
b24KKFhFTikgSFZNOiBTVk0gZW5hYmxlZAooWEVOKSBIVk06IEhhcmR3YXJlIEFzc2lzdGVkIFBh
Z2luZyAoSEFQKSBkZXRlY3RlZAooWEVOKSBIVk06IEhBUCBwYWdlIHNpemVzOiA0a0IsIDJNQiwg
MUdCCihYRU4pIGFsdCB0YWJsZSBmZmZmODJkMDQwNDljMWI4IC0+IGZmZmY4MmQwNDA0YWVjYTQK
KFhFTikgQnJvdWdodCB1cCAxMiBDUFVzCihYRU4pIFNjaGVkdWxpbmcgZ3JhbnVsYXJpdHk6IGNw
dSwgMSBDUFUgcGVyIHNjaGVkLXJlc291cmNlCihYRU4pIEluaXRpYWxpemluZyBDcmVkaXQyIHNj
aGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2FkX3dpbmRv
d19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAooWEVOKSAg
b3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJyYW5nZW1l
bnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1zCihYRU4p
IGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIEFkZGluZyBj
cHUgMCB0byBydW5xdWV1ZSAwCihYRU4pICBGaXJzdCBjcHUgb24gcnVucXVldWUsIGFjdGl2YXRp
bmcKKFhFTikgQWRkaW5nIGNwdSAxIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAyIHRv
IHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAzIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5n
IGNwdSA0IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA1IHRvIHJ1bnF1ZXVlIDAKKFhF
TikgQWRkaW5nIGNwdSA2IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA3IHRvIHJ1bnF1
ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA4IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA5
IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAxMCB0byBydW5xdWV1ZSAwCihYRU4pIEFk
ZGluZyBjcHUgMTEgdG8gcnVucXVldWUgMAooWEVOKSBtY2hlY2tfcG9sbDogTWFjaGluZSBjaGVj
ayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuCihYRU4pIFJ1bm5pbmcgc3R1YiByZWNvdmVyeSBzZWxm
dGVzdHMuLi4KKFhFTikgRml4dXAgI1VEWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJk
MDdmZmZlMDQ0XSAtPiBmZmZmODJkMDQwMzhjZDRjCihYRU4pIEZpeHVwICNHUFswMDAwXTogZmZm
ZjgyZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgyZDA0MDM4Y2Q0YwooWEVO
KSBGaXh1cCAjU1NbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDQgW2ZmZmY4MmQwN2ZmZmUwNDRdIC0+
IGZmZmY4MmQwNDAzOGNkNGMKKFhFTikgRml4dXAgI0JQWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ1
IFtmZmZmODJkMDdmZmZlMDQ1XSAtPiBmZmZmODJkMDQwMzhjZDRjCihYRU4pIE5YIChFeGVjdXRl
IERpc2FibGUpIHByb3RlY3Rpb24gYWN0aXZlCihYRU4pICoqKiBCdWlsZGluZyBhIFBWSCBEb20w
ICoqKgooWEVOKSBEb20wIG1lbW9yeSBhbGxvY2F0aW9uIHN0YXRzOgooWEVOKSBvcmRlciAgMCBh
bGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgMSBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAg
MiBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRlciAgMyBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRl
ciAgNCBhbGxvY2F0aW9uczogNQooWEVOKSBvcmRlciAgNSBhbGxvY2F0aW9uczogNAooWEVOKSBv
cmRlciAgNiBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgNyBhbGxvY2F0aW9uczogNAooWEVO
KSBvcmRlciAgOCBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAgOSBhbGxvY2F0aW9uczogNAoo
WEVOKSBvcmRlciAxMCBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAxMSBhbGxvY2F0aW9uczog
NAooWEVOKSBvcmRlciAxMiBhbGxvY2F0aW9uczogNAooWEVOKSBvcmRlciAxMyBhbGxvY2F0aW9u
czogNAooWEVOKSBvcmRlciAxNCBhbGxvY2F0aW9uczogMgooWEVOKSBvcmRlciAxNSBhbGxvY2F0
aW9uczogMwooWEVOKSBvcmRlciAxNiBhbGxvY2F0aW9uczogMwooWEVOKSBvcmRlciAxNyBhbGxv
Y2F0aW9uczogMwooWEVOKSBvcmRlciAxOCBhbGxvY2F0aW9uczogMwooWEVOKSBFTEY6IHBoZHI6
IHBhZGRyPTB4MTAwMDAwMCBtZW1zej0weDE5NWY2MjgKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0w
eDJhMDAwMDAgbWVtc3o9MHg5NmYwMDAKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0weDMzNmYwMDAg
bWVtc3o9MHgzOTAwMAooWEVOKSBFTEY6IHBoZHI6IHBhZGRyPTB4MzNhODAwMCBtZW1zej0weDE0
NTgwMDAKKFhFTikgRUxGOiBtZW1vcnk6IDB4MTAwMDAwMCAtPiAweDQ4MDAwMDAKKFhFTikgRUxG
OiBub3RlOiBQSFlTMzJfUkVMT0MgYWxpZ246IDB4MjAwMDAwIG1pbjogMHgxMDAwMDAwIG1heDog
MHgzZmZmZmZmZgooWEVOKSBFTEY6IG5vdGU6IFBIWVMzMl9FTlRSWSA9IDB4MTAwMGEyMAooWEVO
KSBFTEY6IG5vdGU6IEdVRVNUX09TID0gImxpbnV4IgooWEVOKSBFTEY6IG5vdGU6IEdVRVNUX1ZF
UlNJT04gPSAiMi42IgooWEVOKSBFTEY6IG5vdGU6IFhFTl9WRVJTSU9OID0gInhlbi0zLjAiCihY
RU4pIEVMRjogbm90ZTogVklSVF9CQVNFID0gMHhmZmZmZmZmZjgwMDAwMDAwCihYRU4pIEVMRjog
bm90ZTogSU5JVF9QMk0gPSAweDgwMDAwMDAwMDAKKFhFTikgRUxGOiBub3RlOiBFTlRSWSA9IDB4
ZmZmZmZmZmY4MzNiYzYyMAooWEVOKSBFTEY6IG5vdGU6IEZFQVRVUkVTID0gIiF3cml0YWJsZV9w
YWdlX3RhYmxlcyIKKFhFTikgRUxGOiBub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiCihYRU4pIEVMRjog
bm90ZTogTDFfTUZOX1ZBTElECihYRU4pIEVMRjogbm90ZTogTU9EX1NUQVJUX1BGTiA9IDB4MQoo
WEVOKSBFTEY6IG5vdGU6IFBBRERSX09GRlNFVCA9IDAKKFhFTikgRUxGOiBub3RlOiBIWVBFUkNB
TExfUEFHRSA9IDB4ZmZmZmZmZmY4MWYzYTAwMAooWEVOKSBFTEY6IG5vdGU6IFNVUFBPUlRFRF9G
RUFUVVJFUyA9IDB4ODgwMQooWEVOKSBFTEY6IG5vdGU6IExPQURFUiA9ICJnZW5lcmljIgooWEVO
KSBFTEY6IG5vdGU6IFNVU1BFTkRfQ0FOQ0VMID0gMHgxCihYRU4pIEVMRjogRm91bmQgUFZIIGlt
YWdlCihYRU4pIEVMRjogYWRkcmVzc2VzOgooWEVOKSAgICAgdmlydF9iYXNlICAgICAgICA9IDB4
MAooWEVOKSAgICAgZWxmX3BhZGRyX29mZnNldCA9IDB4MAooWEVOKSAgICAgdmlydF9vZmZzZXQg
ICAgICA9IDB4MAooWEVOKSAgICAgdmlydF9rc3RhcnQgICAgICA9IDB4MTAwMDAwMAooWEVOKSAg
ICAgdmlydF9rZW5kICAgICAgICA9IDB4NDgwMDAwMAooWEVOKSAgICAgdmlydF9lbnRyeSAgICAg
ICA9IDB4MTAwMGEyMAooWEVOKSAgICAgcDJtX2Jhc2UgICAgICAgICA9IDB4ODAwMDAwMDAwMAoo
WEVOKSBFTEY6IHBoZHIgMCBhdCAweDEwMDAwMDAgLT4gMHgyOTVmNjI4CihYRU4pIEVMRjogcGhk
ciAxIGF0IDB4MmEwMDAwMCAtPiAweDMzNmYwMDAKKFhFTikgRUxGOiBwaGRyIDIgYXQgMHgzMzZm
MDAwIC0+IDB4MzNhODAwMAooWEVOKSBFTEY6IHBoZHIgMyBhdCAweDMzYTgwMDAgLT4gMHg0ODAw
MDAwCihYRU4pIERvbTAgbWVtb3J5IG1hcDoKKFhFTikgIFswMDAwMDAwMDAwMDAwMDAwLCAwMDAw
MDAwMDAwMDllZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDAwOWYwMDAsIDAwMDAwMDAw
MDAwYmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDAwMTAwMDAwLCAwMDAwMDAwMDA5
YWZmZmZmXSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDliMDAwMDAsIDAwMDAwMDAwMDlkZmZm
ZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMDA5ZTAwMDAwLCAwMDAwMDAwMDA5ZWZmZmZm
XSAodXNhYmxlKQooWEVOKSAgWzAwMDAwMDAwMDlmMDAwMDAsIDAwMDAwMDAwMDlmMGZmZmZdIChB
Q1BJIE5WUykKKFhFTikgIFswMDAwMDAwMDA5ZjEwMDAwLCAwMDAwMDAwMGJiNDY1ZmZmXSAodXNh
YmxlKQooWEVOKSAgWzAwMDAwMDAwYmI0NjYwMDAsIDAwMDAwMDAwYmM1NjVmZmZdIChyZXNlcnZl
ZCkKKFhFTikgIFswMDAwMDAwMGJjNTY2MDAwLCAwMDAwMDAwMGM4NzdlZmZmXSAodXNhYmxlKQoo
WEVOKSAgWzAwMDAwMDAwYzg3N2YwMDAsIDAwMDAwMDAwY2FmN2VmZmZdIChyZXNlcnZlZCkKKFhF
TikgIFswMDAwMDAwMGNhZjdmMDAwLCAwMDAwMDAwMGNjZjdlZmZmXSAoQUNQSSBOVlMpCihYRU4p
ICBbMDAwMDAwMDBjY2Y3ZjAwMCwgMDAwMDAwMDBjY2ZmZWZmZl0gKEFDUEkgZGF0YSkKKFhFTikg
IFswMDAwMDAwMGNjZmZmMDAwLCAwMDAwMDAwMGNjZmZmZGQ3XSAodXNhYmxlKQooWEVOKSAgWzAw
MDAwMDAwY2NmZmZkZDgsIDAwMDAwMDAwY2NmZmZlZWZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAw
MDAwMDBjZDAwMDAwMCwgMDAwMDAwMDBjZGZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAw
MDAwZjAwMDAwMDAsIDAwMDAwMDAwZjdmZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAw
MGZkZTAwMDAwLCAwMDAwMDAwMGZkZWZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBm
ZWMwMDAwMCwgMDAwMDAwMDBmZWMwMWZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVj
MTAwMDAsIDAwMDAwMDAwZmVjMTBmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzIw
MDAwLCAwMDAwMDAwMGZlYzIwZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWQ4MDAw
MCwgMDAwMDAwMDBmZWQ4MWZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVkYzAwMDAs
IDAwMDAwMDAwZmVkZGZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZTAwMDAwLCAw
MDAwMDAwMGZlZTAwZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZjAwMDAwMCwgMDAw
MDAwMDBmZmYxZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAxMDAwMDAwMDAsIDAwMDAw
MDAxYjhjZjBmZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDFiOGNmMTAwMCwgMDAwMDAwMDgw
ZjMzZmZmZl0gKHVudXNhYmxlKQooWEVOKSAgWzAwMDAwMDA4MGYzNDAwMDAsIDAwMDAwMDA4MmZm
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgSW5pdGlhbCBsb3cgbWVtb3J5IHZpcnEgdGhyZXNob2xk
IHNldCBhdCAweDQwMDAgcGFnZXMuCihYRU4pIFNjcnViYmluZyBGcmVlIFJBTSBpbiBiYWNrZ3Jv
dW5kCihYRU4pIFN0ZC4gTG9nbGV2ZWw6IEFsbAooWEVOKSBHdWVzdCBMb2dsZXZlbDogQWxsCihY
RU4pIFhlbiBpcyByZWxpbnF1aXNoaW5nIFZHQSBjb25zb2xlLgooWEVOKSAqKiogU2VyaWFsIGlu
cHV0IHRvIERPTTAgKHR5cGUgJ0NUUkwtYScgdGhyZWUgdGltZXMgdG8gc3dpdGNoIGlucHV0KQoo
WEVOKSBGcmVlZCA2NTJrQiBpbml0IG1lbW9yeQooWEVOKSBkMHYwOiB1cGNhbGwgdmVjdG9yIGYz
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDAuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAw
MDAwOjAwOjAwLjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMS4wCihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6MDA6MDEuMQooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjAK
KFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi40CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDA6MDguMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA4LjEKKFhFTikgUENJIGFk
ZCBkZXZpY2UgMDAwMDowMDowOC4yCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTQuMAoo
WEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjMKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAw
MDowMDoxOC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguMQooWEVOKSBQQ0kgYWRk
IGRldmljZSAwMDAwOjAwOjE4LjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4zCihY
RU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguNAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAw
OjAwOjE4LjUKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC42CihYRU4pIFBDSSBhZGQg
ZGV2aWNlIDAwMDA6MDA6MTguNwooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAxOjAwLjAKKFhF
TikgUENJIGFkZCBkZXZpY2UgMDAwMDowMjowMC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6
MDM6MDAuMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAzOjAwLjEKKFhFTikgUENJIGFkZCBk
ZXZpY2UgMDAwMDowNDowMC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuMAooWEVO
KSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjEKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDow
NTowMC4yCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuMwooWEVOKSBQQ0kgYWRkIGRl
dmljZSAwMDAwOjA1OjAwLjQKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNTowMC41CihYRU4p
IFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuNgooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2
OjAwLjAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNjowMC4xCihYRU4pIFBDSSBhZGQgZGV2
aWNlIDAwMDA6MDY6MDAuMgooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjMKKFhFTikg
YXJjaC94ODYvaHZtL3N2bS9zdm0uYzoxODg5OmQwdjAgUkRNU1IgMHhjMDAxMDA1OCB1bmltcGxl
bWVudGVkCihYRU4pIGFyY2gveDg2L2h2bS9zdm0vc3ZtLmM6MTg4OTpkMHYwIFJETVNSIDB4YzAw
MTAyOWIgdW5pbXBsZW1lbnRlZAooWEVOKSBhcmNoL3g4Ni9odm0vc3ZtL3N2bS5jOjE4ODk6ZDB2
MCBSRE1TUiAweGMwMDEwMjlhIHVuaW1wbGVtZW50ZWQKKFhFTikgY29tbW9uL2dyYW50X3RhYmxl
LmM6MTkwOTpkMHY2IEV4cGFuZGluZyBkMCBncmFudCB0YWJsZSBmcm9tIDEgdG8gMiBmcmFtZXMK

--_003_BL1PR12MB5849894360DB8D96073AB21EE7272BL1PR12MB5849namp_--


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 07:26:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 07:26:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839072.1254873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCw94-00079i-4Q; Mon, 18 Nov 2024 07:26:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839072.1254873; Mon, 18 Nov 2024 07:26: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 1tCw94-00079b-0f; Mon, 18 Nov 2024 07:26:02 +0000
Received: by outflank-mailman (input) for mailman id 839072;
 Mon, 18 Nov 2024 07:26: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=4K+I=SN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tCw92-00079V-Ek
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 07:26:00 +0000
Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com
 [2a00:1450:4864:20::543])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59a19488-a57e-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 08:25:56 +0100 (CET)
Received: by mail-ed1-x543.google.com with SMTP id
 4fb4d7f45d1cf-5cf0810f5f9so1188911a12.0
 for <xen-devel@lists.xenproject.org>; Sun, 17 Nov 2024 23:25:56 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e04676csm504617666b.157.2024.11.17.23.25.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 Nov 2024 23:25: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: 59a19488-a57e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1NDMiLCJoZWxvIjoibWFpbC1lZDEteDU0My5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU5YTE5NDg4LWE1N2UtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTE0NzU2LjE5MjEyMiwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731914755; x=1732519555; 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=HcP4kfjMHAHw10FIw4Zg3i5DgWCGGceJ1j5hHXNdbgw=;
        b=AT0zaLWOpoI3tsYLtJDSWViTlDn65tBUHl4MxiJ1iSfX/GRqE+czQ/XhV7rjuU13h+
         DcAFy3hwEg/H2jxR6ohCOW73MRhBpI9DBMJO1P2jWov/8sb6A3eXcYF5kRtWf4TjsjNp
         QQBPDTFmCZ+HemXtwrkQO+rPaGRcuQTb7fM+yFI4OYGLOsRmjyHWRDytzAwbx/40K5pQ
         ZJBfvyVZlSFRF9c7E/ImWgoXu/2Bkenpa2jV8078eiHmBX1x0tB+uvgLBv/k1s/CrA7g
         uy+v1remALxGBw9bAm/Wg5vWpx2GPr9pQt+OJQcolHHA05g40TPAWosYgakkTKojmm6H
         LJtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731914755; x=1732519555;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HcP4kfjMHAHw10FIw4Zg3i5DgWCGGceJ1j5hHXNdbgw=;
        b=CW7AH1ZsTlw61OolC1LCkDCTReiG4rAwaNCmfrzTvFvZniHp9AedGYQIGp84D6t6A4
         oTH/OMtPxP39KT44zf0Q3g+xONP+hBVXtsXauTDmcaKYbbCn1/meBxw0x3PrsfAc+37S
         toAdrFusUgDKI47dhBcYqKipyodISVBth6fIbY/eo65LqFI4nispgzfy8BML7Jiwr2iB
         bOYtvL+Y9f0TV9W0jvvvxDtpcNGi9asU0rfz2VCUaMc7O6GvM8DnphIcszBvNWNqiWts
         5odFQJUd2KFBfsqxJh7WrBF3NLWnM1PyAkIzUFzcTIkyoGq5MB+hKJKDWzQ+tkieXEZW
         vwoQ==
X-Forwarded-Encrypted: i=1; AJvYcCVkCSWjClO+TME0nLlrVEFEBed4zIzpL0JDbykre26LvRfLoQDQlGPtN564Tjj+KWQ9vl8KcGn8xo4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwhtKUbzv/43xKE1Y/R6fqPDs4KX8aDdz/Kt2BYz3qViPy6KfAl
	D7VdTcoEWRpROdMAvnQhelm2pJYkiCNo+4t0ApvcK8nsFqNOB3lIENEZTsqgZ1Sp7znqzxj8/KF
	SbNhWkA==
X-Google-Smtp-Source: AGHT+IE4kuvziuH+oCzl+Ko76Wug3BvtKFa1v6J7JQ/PsUYsp/OA1hWCEjBzlt6+JEvgyH2r/NXARg==
X-Received: by 2002:a05:6402:42c8:b0:5cf:b995:112b with SMTP id 4fb4d7f45d1cf-5cfb9951419mr7303219a12.34.1731914755502;
        Sun, 17 Nov 2024 23:25:55 -0800 (PST)
Message-ID: <ff46eeac-8af6-40ba-8f62-de9b9ef95ed7@suse.com>
Date: Mon, 18 Nov 2024 08:25:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] xen: add a domain unique id to each domain
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-2-jgross@suse.com>
 <0f058cca-8c5b-4b6b-919b-cccff9ee2df6@xen.org>
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: <0f058cca-8c5b-4b6b-919b-cccff9ee2df6@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------qLOGt2lcfMXDD7NFs8noA0hJ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------qLOGt2lcfMXDD7NFs8noA0hJ
Content-Type: multipart/mixed; boundary="------------OX5rXbn1Pda9xjIgmTVHjjNJ";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <ff46eeac-8af6-40ba-8f62-de9b9ef95ed7@suse.com>
Subject: Re: [PATCH 1/6] xen: add a domain unique id to each domain
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-2-jgross@suse.com>
 <0f058cca-8c5b-4b6b-919b-cccff9ee2df6@xen.org>
In-Reply-To: <0f058cca-8c5b-4b6b-919b-cccff9ee2df6@xen.org>
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=

--------------OX5rXbn1Pda9xjIgmTVHjjNJ
Content-Type: multipart/mixed; boundary="------------xaeMnweE3Azq0ec0VxCI0lYo"

--------------xaeMnweE3Azq0ec0VxCI0lYo
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTYuMTEuMjQgMTE6NDYsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGksDQo+IA0KPiBP
biAyMy8xMC8yMDI0IDE0OjEwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gWGVuc3RvcmUg
aXMgcmVmZXJlbmNpbmcgZG9tYWlucyBieSB0aGVpciBkb21pZCwgYnV0IHJldXNlIG9mIGEg
ZG9taWQNCj4+IGNhbiBsZWFkIHRvIHRoZSBzaXR1YXRpb24gdGhhdCBYZW5zdG9yZSBjYW4n
dCB0ZWxsIHdoZXRoZXIgYSBkb21haW4NCj4+IHdpdGggdGhhdCBkb21pZCBoYXMgYmVlbiBk
ZWxldGVkIGFuZCBjcmVhdGVkIGFnYWluIHdpdGhvdXQgWGVuc3RvcmUNCj4+IG5vdGljaW5n
IHRoZSBkb21haW4gaXMgYSBuZXcgb25lIG5vdy4NCj4+DQo+PiBBZGQgYSBnbG9iYWwgZG9t
YWluIGNyZWF0aW9uIHVuaXF1ZSBpZCB3aGljaCBpcyB1cGRhdGVkIHdoZW4gY3JlYXRpbmcN
Cj4+IGEgbmV3IGRvbWFpbiwgYW5kIHN0b3JlIHRoYXQgdmFsdWUgaW4gc3RydWN0IGRvbWFp
biBvZiB0aGUgbmV3IGRvbWFpbi4NCj4+IFRoZSBnbG9iYWwgdW5pcXVlIGlkIGlzIGluaXRp
YWxpemVkIHdpdGggdGhlIHN5c3RlbSB0aW1lIGFuZCB1cGRhdGVzDQo+PiBhcmUgZG9uZSB2
aWEgdGhlIHhvcnNoaWZ0IGFsZ29yaXRobSB3aGljaCBpcyB1c2VkIGZvciBwc2V1ZG8gcmFu
ZG9tDQo+PiBudW1iZXIgZ2VuZXJhdGlvbiwgdG9vIChzZWUgaHR0cHM6Ly9lbi53aWtpcGVk
aWEub3JnL3dpa2kvWG9yc2hpZnQpLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4g
R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+IFJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8
amJldWxpY2hAc3VzZS5jb20+DQo+PiAtLS0NCj4+IFYxOg0KPj4gLSBtYWtlIHVuaXF1ZV9p
ZCBsb2NhbCB0byBmdW5jdGlvbiAoSmFuIEJldWxpY2gpDQo+PiAtIGFkZCBsb2NrIChKdWxp
ZW4gR3JhbGwpDQo+PiAtIGFkZCBjb21tZW50IChKdWxpZW4gR3JhbGwpDQo+PiAtLS0NCj4+
IMKgIHhlbi9jb21tb24vZG9tYWluLmPCoMKgwqDCoCB8IDIwICsrKysrKysrKysrKysrKysr
KysrDQo+PiDCoCB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCB8wqAgMyArKysNCj4+IMKgIDIg
ZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94
ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYw0KPj4gaW5kZXggOTIy
NjNhNGZiZC4uMzk0ODY0MGZiMCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9jb21tb24vZG9tYWlu
LmMNCj4+ICsrKyBiL3hlbi9jb21tb24vZG9tYWluLmMNCj4+IEBAIC01NjIsNiArNTYyLDI1
IEBAIHN0YXRpYyB2b2lkIF9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQ0KPj4g
wqDCoMKgwqDCoCBmcmVlX2RvbWFpbl9zdHJ1Y3QoZCk7DQo+PiDCoCB9DQo+PiArc3RhdGlj
IHVpbnQ2NF90IGdldF91bmlxdWVfaWQodm9pZCkNCj4+ICt7DQo+PiArwqDCoMKgIHN0YXRp
YyB1aW50NjRfdCB1bmlxdWVfaWQ7DQo+PiArwqDCoMKgIHN0YXRpYyBERUZJTkVfU1BJTkxP
Q0sobG9jayk7DQo+PiArwqDCoMKgIHVpbnQ2NF90IHggPSB1bmlxdWVfaWQgPyA6IE5PVygp
Ow0KPiANCj4gSSB0aGluayB1bmlxdWVfaWQgbmVlZHMgdG8gYmUgcmVhZCB3aXRoaW4gdGhl
IGNyaXRpY2FsIHNlY3Rpb24uIE90aGVyd2lzZSwgDQo+IGdldF91bmlxdWVfaWQoKSBjb3Vs
ZCByZXR1cm4gdGhlIHNhbWUgSUQgdHdpY2UuDQoNClllcywgeW91IGFyZSByaWdodC4NCg0K
DQpKdWVyZ2VuDQo=
--------------xaeMnweE3Azq0ec0VxCI0lYo
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-----

--------------xaeMnweE3Azq0ec0VxCI0lYo--

--------------OX5rXbn1Pda9xjIgmTVHjjNJ--

--------------qLOGt2lcfMXDD7NFs8noA0hJ
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/Ey8FAmc67AIFAwAAAAAACgkQsN6d1ii/Ey+X
rwf/UkgUnuC2CdngzfT/mpHHOV9QlLA/MXIm7fK5E2tMI9W3IMI7PlhNUohOHkeJVKrf+VpZQ+TT
AAWNdQ1MR7nCKy1rlQ7tuTKXyhzH76Xk9C9bgJ43H+DXxVAvW9SZqsljHtuLFk2pQSlbNXJHYy7l
RGF+c+CO9hm+PA8olCUyAFSgOzgD9tBKt0LdrD+4J9VsI2b1F3agatR69/ll4wg2qsNYRc+EXghi
QUG47O2jMp6rfFvjbDeTyvOMPnve47mpRjwT5RlQOPxrrkIpGalf2D3eq4MBujHZtLRJuMhkWdRO
vZmp1hKdKh3at7pYoFZA6iLPnj4iq76hMjX92jNddQ==
=WmxM
-----END PGP SIGNATURE-----

--------------qLOGt2lcfMXDD7NFs8noA0hJ--


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 07:32:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 07:32:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839079.1254883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCwFI-0004xs-Nw; Mon, 18 Nov 2024 07:32:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839079.1254883; Mon, 18 Nov 2024 07: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 1tCwFI-0004xl-Ks; Mon, 18 Nov 2024 07:32:28 +0000
Received: by outflank-mailman (input) for mailman id 839079;
 Mon, 18 Nov 2024 07:32: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=4K+I=SN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tCwFG-0004xf-LI
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 07:32:26 +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 4060b356-a57f-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 08:32:23 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5c96b2a10e1so7061065a12.2
 for <xen-devel@lists.xenproject.org>; Sun, 17 Nov 2024 23:32:23 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e086098sm508016866b.190.2024.11.17.23.32.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 Nov 2024 23:32: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: 4060b356-a57f-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQwNjBiMzU2LWE1N2YtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTE1MTQzLjI5Mjc5NSwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731915143; x=1732519943; 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=zLIvsukK/TRFzi7ebaNIhME/PBunNQ8Ehs6kzslE2nQ=;
        b=ZijYfFni0M1LgYTmnkOvVvx7QOTME0DoMzJDTKvz/zYq1a6CqJ0h8WgSAycH0FAQ/X
         76/sVzPnF2v//R1CdOi8I9nAaRVcFcCfhqzx4R+9QtK5UxYa78vTPVrvV1tSHJHttN8z
         neYws9Puwj0JptGRKipXYGkUKCC3y3tP5nRLMNRF4PqvkaeWLSxZVsYCNTz4Hd2SZ1a+
         PCBN4b7EvepZMG4ute4ILPhGL09KJMtQYFgUIFvgGFTDF5D/p9GqC4qOOkKU45bKi+vM
         yURTN4IV1wvPsjnZdzc0YG8eQwGakknegqN/3YtCOxuXaC1W+LvmjPjEGE95eH08v/33
         rG0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731915143; x=1732519943;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zLIvsukK/TRFzi7ebaNIhME/PBunNQ8Ehs6kzslE2nQ=;
        b=mPsjwIQyn0WfBXt+v/9+DthYTTTjV3g99TGJfKABrHfMMtFyrHzYE2AzfF+DQcZ7HH
         Pp4ODFYuabgNhFvEmmMAtYpi0a4DE98RZOi97kKvAj+l0vqTpcID7TK8PwblEDuTSN7Z
         bIosT6DgwbQge+yphW2sQOyUFcAVjA0XXXYJTNJcrm2yaXQqyhd5vGpCIWWiydoATC3q
         lR8Q8ctADBKRapSXLK+9gGMYikF1gHxZ+PxBEM474EriUSc/z+9b4X+ntWYrmVvfkSy8
         Mpf4ng5dBwNXdHBkDUcdf/CYybqVjOj6i5NUoQhrH1xuGfv35pxp535z22mms3bdP1Ex
         8LtQ==
X-Forwarded-Encrypted: i=1; AJvYcCXGSyCoImZTgKy3LJLtB0h1YQg6VWi1DOodtzw0doQVRrNYTZv3IvlPUGN6xclXp62XVwPwI+7kCKE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvqGii/TntK+BAcJ8LEnXjoXpdsp4fbUm9joSLp1cgL3PpG4hh
	SWV89cVqTWCXGVDkQBhcWEtJfq2ROH6Xq4JwZ+Got9kn6xV5VjSTAe6u/XFVC/0=
X-Google-Smtp-Source: AGHT+IEkUNlJ4/YI/S3/igh2YyXNljfz+UTEX1ise8GURprVq1NFrV5WBa/mdDco2poYqN3HqKJGWQ==
X-Received: by 2002:a17:906:a98a:b0:aa4:a810:79c3 with SMTP id a640c23a62f3a-aa4a8107ccbmr356640466b.26.1731915142687;
        Sun, 17 Nov 2024 23:32:22 -0800 (PST)
Message-ID: <9c3f36b2-020e-4b4b-a8c7-97130a5f0945@suse.com>
Date: Mon, 18 Nov 2024 08:32:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] xen: add bitmap to indicate per-domain state changes
To: Julien Grall <julien@xen.org>, Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-3-jgross@suse.com>
 <6823a222-63ad-4a5a-83d2-70c6f39f38c0@suse.com>
 <fadbb6da-a314-4f1b-8a59-92c1c201dd09@suse.com>
 <7b4015a0-9d02-40a9-9919-10e7bdd73291@suse.com>
 <f583e39d-8da4-4cb3-a698-3d982843eafe@xen.org>
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: <f583e39d-8da4-4cb3-a698-3d982843eafe@xen.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------c0wLo2M2c4Kd3X1nh1o7NY6J"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------c0wLo2M2c4Kd3X1nh1o7NY6J
Content-Type: multipart/mixed; boundary="------------KdHbKg09o9hx0HB4Ie3V0g0M";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Julien Grall <julien@xen.org>, Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <9c3f36b2-020e-4b4b-a8c7-97130a5f0945@suse.com>
Subject: Re: [PATCH 2/6] xen: add bitmap to indicate per-domain state changes
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-3-jgross@suse.com>
 <6823a222-63ad-4a5a-83d2-70c6f39f38c0@suse.com>
 <fadbb6da-a314-4f1b-8a59-92c1c201dd09@suse.com>
 <7b4015a0-9d02-40a9-9919-10e7bdd73291@suse.com>
 <f583e39d-8da4-4cb3-a698-3d982843eafe@xen.org>
In-Reply-To: <f583e39d-8da4-4cb3-a698-3d982843eafe@xen.org>
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=

--------------KdHbKg09o9hx0HB4Ie3V0g0M
Content-Type: multipart/mixed; boundary="------------RRRq9Kgc9XtGCYEKu9uL2kN0"

--------------RRRq9Kgc9XtGCYEKu9uL2kN0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMTYuMTEuMjQgMTI6MDEsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSmFuICYgSnVl
cmdlbiwNCj4gDQo+IE9uIDA0LzExLzIwMjQgMDk6MzUsIEphbiBCZXVsaWNoIHdyb3RlOg0K
Pj4gT24gMDEuMTEuMjAyNCAwNzo0OCwgSsO8cmdlbiBHcm/DnyB3cm90ZToNCj4+PiBPbiAz
MS4xMC4yNCAxMTo1OSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+IE9uIDIzLjEwLjIwMjQg
MTU6MTAsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+Pj4+PiBBZGQgYSBiaXRtYXAgd2l0aCBv
bmUgYml0IHBlciBwb3NzaWJsZSBkb21pZCBpbmRpY2F0aW5nIHRoZSByZXNwZWN0aXZlDQo+
Pj4+PiBkb21haW4gaGFzIGNoYW5nZWQgaXRzIHN0YXRlIChjcmVhdGVkLCBkZWxldGVkLCBk
eWluZywgY3Jhc2hlZCwNCj4+Pj4+IHNodXRkb3duKS4NCj4+Pj4+DQo+Pj4+PiBSZWdpc3Rl
cmluZyB0aGUgVklSUV9ET01fRVhDIGV2ZW50IHdpbGwgcmVzdWx0IGluIHNldHRpbmcgdGhl
IGJpdHMgZm9yDQo+Pj4+PiBhbGwgZXhpc3RpbmcgZG9tYWlucyBhbmQgcmVzZXR0aW5nIGFs
bCBvdGhlciBiaXRzLg0KPj4+Pg0KPj4+PiBUaGF0J3MgZnVydGhlcmluZyB0aGUgInRoZXJl
IGNhbiBiZSBvbmx5IG9uZSBjb25zdW1lciIgbW9kZWwgdGhhdCBhbHNvDQo+Pj4+IGlzIHVz
ZWQgZm9yIFZJUlFfRE9NX0VYQyBpdHNlbGYuIEkgY29uc2lkZXIgdGhlIGV4aXN0aW5nIG1v
ZGVsIGZsYXdlZA0KPj4+PiAobm90aGluZyBrZWVwcyBhIDJuZCBwYXJ0eSB3aXRoIHN1ZmZp
Y2llbnQgcHJpdmlsZWdlIGZyb20gaW52b2tpbmcNCj4+Pj4gWEVOX0RPTUNUTF9zZXRfdmly
cV9oYW5kbGVyIGEgMm5kIHRpbWUsIHRha2luZyBhd2F5IHRoZSBub3RpZmljYXRpb24NCj4+
Pj4gZnJvbSB3aG9ldmVyIGhhZCBmaXJzdCByZXF1ZXN0ZWQgaXQpLCBhbmQgaGVuY2UgSSBk
aXNsaWtlIHRoaXMgYmVpbmcNCj4+Pj4gZXh0ZW5kZWQuIENvbmNlaXZhYmx5IG11bHRpcGxl
IHBhcnRpZXMgbWF5IGluZGVlZCBiZSBpbnRlcmVzdGVkIGluDQo+Pj4+IHRoaXMga2luZCBv
ZiBpbmZvcm1hdGlvbi4gQXQgd2hpY2ggcG9pbnQgcmVzZXR0aW5nIHN0YXRlIHdoZW4gdGhl
IHZJUlENCj4+Pj4gaXMgYm91bmQgaXMgcXVlc3Rpb25hYmxlIChvciB0aGUgZGF0YSB3b3Vs
ZCBuZWVkIHRvIGJlY29tZSBwZXItZG9tYWluDQo+Pj4+IHJhdGhlciB0aGFuIGdsb2JhbCwg
b3IgZXZlbiB5ZXQgbW9yZSBmaW5lLWdyYWluZWQsIGFsYmVpdA0KPj4+PiAtPnZpcnFfdG9f
ZXZ0Y2huW10gaXMgYWxzbyBwZXItZG9tYWluLCB3aGVuIGNvbnNpZGVyaW5nIGdsb2JhbCB2
SVJRLXMpLg0KPj4+DQo+Pj4gVGhlIGJpdG1hcCBpcyBkaXJlY3RseSB0aWVkIHRvIHRoZSBW
SVJRX0RPTV9FWEMgYW55d2F5LCBhcyBpdCBpcyB0aGF0DQo+Pj4gZXZlbnQgd2hpY2ggbWFr
ZXMgdGhlIGNvbnN1bWVyIGxvb2sgaW50byB0aGUgYml0bWFwIHZpYSB0aGUgbmV3IGh5cGVy
Y2FsbC4NCj4+Pg0KPj4+IElmIHdlIGRlY2lkZSB0byBhbGxvdyBtdWx0aXBsZSBjb25zdW1l
cnMgb2YgVklSUV9ET01fRVhDLCB3ZSdsbCBuZWVkIHRvDQo+Pj4gaGF2ZSBvbmUgYml0bWFw
IHBlciBjb25zdW1lciBvZiB0aGUgZXZlbnQuIFRoaXMgaXMgbm90IHZlcnkgaGFyZCB0bw0K
Pj4+IG1vZGlmeS4NCj4gDQo+IFdoaWxlIGluIHByaW5jaXBsZSBJIGFncmVlIHRoYXQgaGF2
aW5nIG11bHRpcGxlIGNvbnN1bWVycyBvZiBWSVJRX0RPTV9FWEMgd291bGQgDQo+IGJlIGdy
ZWF0LiBJIGhhdmUgc29tZSBzY2FsYWJpbGl0eSBjb25jZXJuIGJlY2F1c2Ugbm93IHdlIHdv
dWxkIGVuZCB1cCB0byBoYXZlIHRvIA0KPiB1cGRhdGUgTiBiaXRtYXAgZXZlcnkgdGltZS4g
U28gd2Ugd291bGQgbmVlZCB0byBwdXQgYSBsaW1pdCB0byBOLiBJIGRvbid0IHRoaW5rIA0K
PiB0aGVyZSBpcyBhIGdvb2QgbGltaXQuLi4NCg0KVGhlIHNhbWUgYXBwbGllcyByZWdhcmRp
bmcgc2VuZGluZyBhbiBldmVudC4gSSBkb24ndCB0aGluayB0aGUgYWRkaXRpb25hbA0Kc2V0
dGluZyBvZiBhIGJpdCBpcyBhZGRpbmcgYSByZWxldmFudCBhbW91bnQgb2YgcHJvY2Vzc2lu
ZyB0aW1lLg0KDQpJIGFncmVlIHRoYXQgYSBsaW1pdCBpcyBoYXJkIHRvIGZpbmQsIGJ1dCBp
dCBjb3VsZCBiZSByYXRoZXIgaGlnaC4NCg0KPiBTbyBvdmVyYWxsLCBJIGFtIG5vdCBlbnRp
cmVseSBjb252aW5jZWQgaXQgaXMgd29ydGggdGhlIHRyb3VibGUuDQoNClRoZSBvbmx5IHJl
YWwgcmVhc29uIEkgY291bGQgc2VlIHdvdWxkIGJlIGEgc2V0dXAgd2l0aG91dCBYZW5zdG9y
ZS4gUmVhc29uDQppcyB0aGF0IHdpdGggWGVuc3RvcmUgYWxsIGludGVyZXN0ZWQgcGFydGll
cyBjb3VsZCByZWdpc3RlciBhIHdhdGNoIGV2ZW50DQppbnN0ZWFkIG9mIGRpcmVjdGx5IGNv
bnN1bWluZyB0aGUgVklSUV9ET01fRVhDIGV2ZW50Lg0KDQpXZSBoYXZlbid0IG5lZWRlZCBt
dWx0aXBsZSBWSVJRX0RPTV9FWEMgY29uc3VtZXJzIHVwIHRvIG5vdywgc28gSSBkb24ndA0K
dGhpbmsgd2Ugc2hvdWxkIG92ZXItZW5naW5lZXIgdGhlIGludGVyZmFjZS4gQXQgbGVhc3Qg
dGhlcmUgaXMgYSB0aGVvcmV0aWNhbA0Kc29sdXRpb24gZm9yIG11bHRpcGxlIGNvbnN1bWVy
cywgc28gbXkgcGF0Y2ggc2VyaWVzIHdvdWxkbid0IGludHJvZHVjZSBhDQpuby1nbyBmb3Ig
bXVsdGlwbGUgY29uc3VtZXJzLg0KDQoNCkp1ZXJnZW4NCg==
--------------RRRq9Kgc9XtGCYEKu9uL2kN0
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-----

--------------RRRq9Kgc9XtGCYEKu9uL2kN0--

--------------KdHbKg09o9hx0HB4Ie3V0g0M--

--------------c0wLo2M2c4Kd3X1nh1o7NY6J
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/Ey8FAmc67YUFAwAAAAAACgkQsN6d1ii/Ey+6
XQgAja+++sYCZJCCEHhjeP23q7FgwNQ/6Dhk/+eSZiRhvcWrS8DsIhkWAsqVPauynQs1utiIUVvo
sVYg0CKjiVo4y7yQlYnND5e66O7sxF29XgEEIr+0osDn/2gNSkUGy9MhSqeVsAp7gMGvnRFPtoqL
5J1NmeMmsIyQHfLP0KBnXFUGxJ8uBuUAWxcUJpTBjJWwMW86Ip7kjWdJt1znjuScf4y2ckHrgybr
AoEBzjRBof4or8ChRBP43SCT5hlIBidP8qS4yCMGT9f+3AH7EqDqYa5j7PWYebPWRP6BPXzP0GIX
SdDFcaiqw95Mz51bKOjjYm7Q3Vf/bGApjNg6fZzQGw==
=1TXg
-----END PGP SIGNATURE-----

--------------c0wLo2M2c4Kd3X1nh1o7NY6J--


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 07:45:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 07:45:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839091.1254892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCwRu-0002tV-UU; Mon, 18 Nov 2024 07:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839091.1254892; Mon, 18 Nov 2024 07:45: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 1tCwRu-0002tO-RL; Mon, 18 Nov 2024 07:45:30 +0000
Received: by outflank-mailman (input) for mailman id 839091;
 Mon, 18 Nov 2024 07:45: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=i7IS=SN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tCwRt-0002tI-JD
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 07:45:29 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1337aacf-a581-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 08:45:26 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-539f8490856so2790995e87.2
 for <xen-devel@lists.xenproject.org>; Sun, 17 Nov 2024 23:45: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-3823b395066sm5544979f8f.55.2024.11.17.23.45.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 Nov 2024 23:45: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: 1337aacf-a581-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEzMzdhYWNmLWE1ODEtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTE1OTI2LjU3MTYxMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731915926; x=1732520726; 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=hyX7Hdl5N/HJ1JJXEllUqKY5cF1NKOKoXp4P58AA5Cg=;
        b=gDHM1UZpXoWgcY8MIz3IO3kVCJubV6mXv6R3voufaV5H3T2naoe/XUr8BeYIENFbQz
         X06pJd2E2sONDEeRz+IrA0Y8UtPVgS4evGXflge06r3e0mur7GA9TCA8+EcxErV8utV0
         3WGOT4EoPxVulqRR+xIUzrOiuDpucDt/uROqUfOVPZBax/6FPqUfuk26mrqo7+k/Ie1d
         x/Aw95jQ8Q57yMoh+/UCYCFVU2Xz30MoZTRko4LBkW5zkGZ5qlYHK5hxuAzZecx2NbcJ
         9SUJexnAn0GuBz+x3iUmiCmk9UD/BSvG2jp14X67HMLPlzVE2Fi05TtZNJhU3a0N+E4h
         Mj2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731915926; x=1732520726;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hyX7Hdl5N/HJ1JJXEllUqKY5cF1NKOKoXp4P58AA5Cg=;
        b=MeiWHJOQS0soymu3TNQ1m3H87X49H6Q2GNY/KE2/ytb8l8+w8cRzBolWIdCKLcwT94
         KJfH2mlqxb8kYY30hiXChFGHypFNyg+8DbuYnNqoO9NKDxNX5s2QYsKaXZ4EfxarcI/T
         X26rbH3uH0VnJKnnkbId+3iY42QVa2CzE0hWzu3YXpyVtF9KgwpFbUW+s0FvxhuQ6NVJ
         LkETJNxUtOht6rd3p9LhtoomuBgM1/QvU6uV8Yyy99imiMEsDROYkIrjrNGi96tUKYrU
         jcdzAM5A0058yt9TMdLk7jMly+vQrC/SCgYExEARthRZfwK99ispVf9RMYqmdhTEr/9d
         Ej0w==
X-Forwarded-Encrypted: i=1; AJvYcCUaYT/Kct0pHyzrW757fIV54UMDOq3tncCe7cU2lT32n18EMEIJnyVhjiXTSt/Ptp+8WAD8S4ftbp8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9uDWUZr4luXWdnTf2iwzde6Mb0sFbvi6b4gScOh8HMW1I9kTc
	uNGT9xgDttn1zBpCHdO3VC6kiAJj3/4peQrBWw8P4lb9GJXc93WzlgpehzYxKQ==
X-Google-Smtp-Source: AGHT+IEUI4NSEkGO+6SsmB2bVAPJV0pkEawMS79wssmcY3Eaiv48fMiaTGfPLVgAJtuQ1qj/bsD4Ow==
X-Received: by 2002:a05:6512:3c87:b0:53d:a2cb:349e with SMTP id 2adb3069b0e04-53dab291a9amr4294289e87.4.1731915925866;
        Sun, 17 Nov 2024 23:45:25 -0800 (PST)
Message-ID: <de8c88d4-5b79-41eb-955a-d015ef94aa15@suse.com>
Date: Mon, 18 Nov 2024 08:45:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] x86/ucode: Fix cache handling in
 microcode_update_helper()
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241112211915.1473121-1-andrew.cooper3@citrix.com>
 <20241112211915.1473121-3-andrew.cooper3@citrix.com>
 <c25b7a62-fc47-440f-9521-f11b65e2cb8b@suse.com>
 <babfdcb5-c23f-4a18-b1bb-52026f9bf2f7@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: <babfdcb5-c23f-4a18-b1bb-52026f9bf2f7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 19:03, Andrew Cooper wrote:
> On 14/11/2024 11:26 am, Jan Beulich wrote:
>> On 12.11.2024 22:19, Andrew Cooper wrote:
>>> microcode_update_cache() now has a single caller, but inlining it shows how
>>> unnecessarily complicated the logic really is.
>>>
>>> Outside of error paths, there is always one microcode patch to free.  Its
>>> either result of parse_blob(), or it's the old cached value.
>>>
>>> In order to fix this, have a local patch pointer (mostly to avoid the
>>> unnecessary verbosity of patch_with_flags.patch), and always free it at the
>>> end.  The only error path needing care is the IS_ERR(patch) path, which is
>>> easy enough to handle.
>>>
>>> Also, widen the scope of result.  We only need to call compare_patch() once,
>>> and the answer is still good later when updating the cache.  In order to
>>> update the cache, simply SWAP() the patch and the cache pointers, allowing the
>>> singular xfree() at the end to cover both cases.
>>>
>>> This also removes all callers microcode_free_patch() which fixes the need to
>>> cast away const to allow it to compile.
>> I'm sure you're well aware that this in turn is just because of your opposition
>> to xfree() and alike taking const void *.
> 
> My opposition, and the C standards committee, and MISRA to name but a few.

The C standard's committee - yes, if we mean to stick to free()'s properties
to the letter (I don't think they have any idea about unmap-like things). For
Misra though, would you mind educating me where they would have a concern?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:27:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:27:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839106.1254904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCx64-0001Ur-4u; Mon, 18 Nov 2024 08:27:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839106.1254904; Mon, 18 Nov 2024 08:27: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 1tCx63-0001Uk-W1; Mon, 18 Nov 2024 08:26:59 +0000
Received: by outflank-mailman (input) for mailman id 839106;
 Mon, 18 Nov 2024 08:26: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=rD+n=SN=linux.ibm.com=hca@srs-se1.protection.inumbo.net>)
 id 1tCx62-0001Ue-Tr
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:26:58 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de743a4d-a586-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 09:26:55 +0100 (CET)
Received: from pps.filterd (m0356516.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AHJiO3Y023687;
 Mon, 18 Nov 2024 08:26:16 GMT
Received: from ppma22.wdc07v.mail.ibm.com
 (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 42xgtt0eh7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 18 Nov 2024 08:26:15 +0000 (GMT)
Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 4AI73j1E030931;
 Mon, 18 Nov 2024 08:26:14 GMT
Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225])
 by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 42y63y27mu-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 18 Nov 2024 08:26:14 +0000
Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com
 [10.20.54.106])
 by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 4AI8QAR549479982
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 18 Nov 2024 08:26:10 GMT
Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id BD6AD20043;
 Mon, 18 Nov 2024 08:26:10 +0000 (GMT)
Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id A867E20040;
 Mon, 18 Nov 2024 08:26:06 +0000 (GMT)
Received: from osiris (unknown [9.171.77.223])
 by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon, 18 Nov 2024 08:26:06 +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: de743a4d-a586-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0OC4xNjMuMTU4LjUiLCJoZWxvIjoibXgwYi0wMDFiMmQwMS5wcGhvc3RlZC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImRlNzQzYTRkLWE1ODYtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTE4NDE2LjA5Mjg3NCwic2VuZGVyIjoiaGNhQGxpbnV4LmlibS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=pp1; bh=pofVBIDpbmPXxKdXBZzlW6SKJ1mpQg
	5f+nyOC0P54ZU=; b=pVJ5a4SbiQLc7KmL6NMVUat1TeAb+E4P6v1BT086o1mEhk
	asPz+d9pnH3oUetVu+XCwbjmIJgCChQ2Yg76ElBtpMc3MPIe4GEIJkdBOh3EDOTs
	BshLlGoNMECAtRDAXjrNjk0/DJ4p9T1LW6K46OwdwtMNuLDXUx7tw7C0oS59z+J9
	QShMh32WGNHKvTgEgpik3EK5hVK4TsghRPVpOZt4uDmXgH2LYgfrkGGFgYTal2qH
	dz0ScnJgPbYohwDb0fe9yXNM0o6w8EzUNqyOgMmUN0w1gT6xXC0tgw+yBkjkz/Fh
	q242Ut9KG7OxmdBC6tktol2tQuFTw331MM4YUGlg==
Date: Mon, 18 Nov 2024 09:26:05 +0100
From: Heiko Carstens <hca@linux.ibm.com>
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
        Jozsef Kadlecsik <kadlec@netfilter.org>,
        "David S. Miller" <davem@davemloft.net>,
        Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,
        Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
        Julia Lawall <Julia.Lawall@inria.fr>,
        Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang <haojian.zhuang@gmail.com>,
        Robert Jarzmik <robert.jarzmik@free.fr>,
        Russell King <linux@armlinux.org.uk>,
        Vasily Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
        Oded Gabbay <ogabbay@kernel.org>,
        Lucas De Marchi <lucas.demarchi@intel.com>,
        Thomas =?iso-8859-1?Q?Hellstr=F6m?= <thomas.hellstrom@linux.intel.com>,
        Rodrigo Vivi <rodrigo.vivi@intel.com>,
        Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
        Maxime Ripard <mripard@kernel.org>,
        Thomas Zimmermann <tzimmermann@suse.de>,
        David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
        Jeroen de Borst <jeroendb@google.com>,
        Praveen Kaligineedi <pkaligineedi@google.com>,
        Shailend Chand <shailend@google.com>,
        Andrew Lunn <andrew+netdev@lunn.ch>,
        James Smart <james.smart@broadcom.com>,
        Dick Kennedy <dick.kennedy@broadcom.com>,
        "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
        "Martin K. Petersen" <martin.petersen@oracle.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
        Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
        Jeff Johnson <jjohnson@kernel.org>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Jack Wang <jinpu.wang@cloud.ionos.com>,
        Marcel Holtmann <marcel@holtmann.org>,
        Johan Hedberg <johan.hedberg@gmail.com>,
        Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Florian Fainelli <florian.fainelli@broadcom.com>,
        Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
        Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
        Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
        Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>,
        Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>,
        Joe Lawrence <joe.lawrence@redhat.com>,
        Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Russell King <linux+etnaviv@armlinux.org.uk>,
        Christian Gmeiner <christian.gmeiner@gmail.com>,
        Louis Peens <louis.peens@corigine.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Naveen N Rao <naveen@kernel.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
        netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
        linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
        dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
        linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
        ath11k@lists.infradead.org, linux-mm@kvack.org,
        linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
        linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
        live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
        etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
        linuxppc-dev@lists.ozlabs.org,
        Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 04/21] s390: kernel: Convert timeouts to use
 secs_to_jiffies()
Message-ID: <20241118082605.17002-A-hca@linux.ibm.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-4-911fb7595e79@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-4-911fb7595e79@linux.microsoft.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: QBYvLy3JNa8evFseixOVfcUMyMppMmNG
X-Proofpoint-ORIG-GUID: QBYvLy3JNa8evFseixOVfcUMyMppMmNG
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30
 definitions=2024-10-15_01,2024-10-11_01,2024-09-30_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 phishscore=0
 mlxscore=0 malwarescore=0 mlxlogscore=858 adultscore=0 priorityscore=1501
 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2409260000
 definitions=main-2411180066

On Fri, Nov 15, 2024 at 09:26:21PM +0000, Easwar Hariharan wrote:
> Changes made with the following Coccinelle rules:
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
> 
> @@ constant C; @@
> 
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
> 
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>  arch/s390/kernel/lgr.c      | 3 ++-
>  arch/s390/kernel/time.c     | 4 ++--
>  arch/s390/kernel/topology.c | 2 +-
>  3 files changed, 5 insertions(+), 4 deletions(-)

...

> diff --git a/arch/s390/kernel/lgr.c b/arch/s390/kernel/lgr.c
> index 6652e54cf3db9fbdd8cfb06f8a0dc1d4c05ae7d7..68021cb38574b122bbe3d9f70e9168305360017b 100644
> --- a/arch/s390/kernel/lgr.c
> +++ b/arch/s390/kernel/lgr.c
> @@ -166,7 +166,8 @@ static struct timer_list lgr_timer;
>   */
>  static void lgr_timer_set(void)
>  {
> -	mod_timer(&lgr_timer, jiffies + msecs_to_jiffies(LGR_TIMER_INTERVAL_SECS * MSEC_PER_SEC));
> +	mod_timer(&lgr_timer,
> +		  jiffies + secs_to_jiffies(LGR_TIMER_INTERVAL_SECS));
>  }

Please don't add a new line break, especially not if the new line
would be shorter than the old one.


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:49:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839118.1254956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxS1-0006B9-1v; Mon, 18 Nov 2024 08:49:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839118.1254956; Mon, 18 Nov 2024 08:49: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 1tCxS0-0006B4-UT; Mon, 18 Nov 2024 08:49:40 +0000
Received: by outflank-mailman (input) for mailman id 839118;
 Mon, 18 Nov 2024 08: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=Y0Lw=SN=bounce.vates.tech=bounce-md_30504962.673aff9a.v1-6f3315d8734646bca3549145d22f803a@srs-se1.protection.inumbo.net>)
 id 1tCxRz-0005D3-FH
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:49:39 +0000
Received: from mail136-26.atl41.mandrillapp.com
 (mail136-26.atl41.mandrillapp.com [198.2.136.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0904e8da-a58a-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 09:49:35 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-26.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4XsLsQ1YgyzJKF3Zk
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 08:49:30 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6f3315d8734646bca3549145d22f803a; Mon, 18 Nov 2024 08:49: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: 0904e8da-a58a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yNiIsImhlbG8iOiJtYWlsMTM2LTI2LmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjA5MDRlOGRhLWE1OGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTE5Nzc1LjY3NDU0NCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2FmZjlhLnYxLTZmMzMxNWQ4NzM0NjQ2YmNhMzU0OTE0NWQyMmY4MDNhQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731919770; x=1732180270;
	bh=jQsMIdFlhvKVHyeb3pcbSs0+jZjMBHrB3oPFmg+d7hA=;
	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=B2BS6yCKc3UQ9TtjZditDUEb4c26+eAeP+macp0aqdsMI6kG9wC041qCvitirGoVr
	 mOt3/Th8GwKN16K7tWwwPcMVnKzCd3UmuSd5pvSvd46OqwWuvx+G4em1+s9THkP9nv
	 9ET1TK8gWU76eS3Ckf3OcjTts36NoNGFnSDRFF25xW8rzhX+vh1cVybW4G2hGp5gXa
	 fPho6sNbF9fFAk2O0PxTOBZydF/0JkRIc1Ryuxg7iIqEv1Az/Q2cMGu6oV998myk/B
	 994zdLBNaDN1xeWxI7A3oElneFm/mALssU/8F3Gry8Fi+jbIhb80rIDrL1XTkW6i1F
	 juZc+3wI+88Gg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731919770; x=1732180270; i=ngoc-tu.dinh@vates.tech;
	bh=jQsMIdFlhvKVHyeb3pcbSs0+jZjMBHrB3oPFmg+d7hA=;
	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=d2IKE3PLiO71PgI1Nr5BdvHpaFXKEqZipsvlFV/kjGx2YXSraExqN38KYcmiYWKvF
	 GltDqabLk3zJeV2cak0SJ2a8ReQQWqi56Xc8xMT8AbZplvNJZtfET6TCsea26fD6UT
	 1hHHyZB+OtORqbMLvKpmS3J9yg9R42+E6LqIOhboWLSs9puVDAUzyuBfXMt0JsXWnA
	 PwLQkeKf5AcjL3Zpdhas74QXnbeZUKiq9ANOUuv7Z/vR/zvzBpLeRA7idZ11e/JA/m
	 Yhjo5iRXySGEY0PrU65/UqsIFdRTOvk0sainQ9klrkDmMfBx2O64B7eeSWvq88qDlZ
	 LcqXRblPkKNLg==
From: ngoc-tu.dinh@vates.tech
Subject: =?utf-8?Q?[PATCH=204/4]=20x86/vmx:=20Virtualize=20architectural=20LBRs?=
X-Mailer: git-send-email 2.43.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731919769554
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <20241118084914.22268-5-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
References: <20241118084914.22268-1-ngoc-tu.dinh@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.6f3315d8734646bca3549145d22f803a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 08:49:30 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Tu Dinh <ngoc-tu.dinh@vates.tech>

Virtual architectural LBRs work in guest mode only, using the "load
guest IA32_LBR_CTL" and "clear IA32_LBR_CTL" VMX controls.

Intercept writes to MSR_IA32_LASTBRANCH_{CTL,DEPTH} to inject LBR MSRs
into guest. MSR_IA32_LASTBRANCH_DEPTH is only allowed to be equal to
that of the host's.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 xen/arch/x86/cpu-policy.c               |   3 +
 xen/arch/x86/hvm/vmx/vmcs.c             |  11 +-
 xen/arch/x86/hvm/vmx/vmx.c              | 269 +++++++++++++++++-------
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h |   8 +
 4 files changed, 211 insertions(+), 80 deletions(-)

diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 2ac76eb058..9e78273a79 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -788,6 +788,9 @@ static void __init calculate_hvm_max_policy(void)
 
         if ( !cpu_has_vmx_xsaves )
             __clear_bit(X86_FEATURE_XSAVES, fs);
+
+        if ( !cpu_has_vmx_guest_lbr_ctl )
+            __clear_bit(X86_FEATURE_ARCH_LBR, fs);
     }
 
     if ( test_bit(X86_FEATURE_ARCH_LBR, fs) )
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 147e998371..a16daad78a 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -203,6 +203,7 @@ static void __init vmx_display_features(void)
     P(cpu_has_vmx_bus_lock_detection, "Bus Lock Detection");
     P(cpu_has_vmx_notify_vm_exiting, "Notify VM Exit");
     P(cpu_has_vmx_virt_spec_ctrl, "Virtualize SPEC_CTRL");
+    P(cpu_has_vmx_guest_lbr_ctl, "Architectural LBR virtualization");
 #undef P
 
     if ( !printed )
@@ -448,7 +449,8 @@ static int vmx_init_vmcs_config(bool bsp)
 
     min = VM_EXIT_ACK_INTR_ON_EXIT;
     opt = (VM_EXIT_SAVE_GUEST_PAT | VM_EXIT_LOAD_HOST_PAT |
-           VM_EXIT_LOAD_HOST_EFER | VM_EXIT_CLEAR_BNDCFGS);
+           VM_EXIT_LOAD_HOST_EFER | VM_EXIT_CLEAR_BNDCFGS |
+           VM_EXIT_CLEAR_GUEST_LBR_CTL);
     min |= VM_EXIT_IA32E_MODE;
     _vmx_vmexit_control = adjust_vmx_controls(
         "VMExit Control", min, opt, MSR_IA32_VMX_EXIT_CTLS, &mismatch);
@@ -489,7 +491,7 @@ static int vmx_init_vmcs_config(bool bsp)
 
     min = 0;
     opt = (VM_ENTRY_LOAD_GUEST_PAT | VM_ENTRY_LOAD_GUEST_EFER |
-           VM_ENTRY_LOAD_BNDCFGS);
+           VM_ENTRY_LOAD_BNDCFGS | VM_ENTRY_LOAD_GUEST_LBR_CTL);
     _vmx_vmentry_control = adjust_vmx_controls(
         "VMEntry Control", min, opt, MSR_IA32_VMX_ENTRY_CTLS, &mismatch);
 
@@ -1329,6 +1331,9 @@ static int construct_vmcs(struct vcpu *v)
               | (paging_mode_hap(d) ? 0 : (1U << X86_EXC_PF))
               | (v->arch.fully_eager_fpu ? 0 : (1U << X86_EXC_NM));
 
+    if ( cpu_has_vmx_guest_lbr_ctl )
+        __vmwrite(GUEST_LBR_CTL, 0);
+
     if ( cpu_has_vmx_notify_vm_exiting )
         __vmwrite(NOTIFY_WINDOW, vm_notify_window);
 
@@ -2087,6 +2092,8 @@ void vmcs_dump_vcpu(struct vcpu *v)
            vmr32(GUEST_PREEMPTION_TIMER), vmr32(GUEST_SMBASE));
     printk("DebugCtl = 0x%016lx  DebugExceptions = 0x%016lx\n",
            vmr(GUEST_IA32_DEBUGCTL), vmr(GUEST_PENDING_DBG_EXCEPTIONS));
+    if ( vmentry_ctl & VM_ENTRY_LOAD_GUEST_LBR_CTL )
+        printk("LbrCtl = 0x%016lx\n", vmr(GUEST_LBR_CTL));
     if ( vmentry_ctl & (VM_ENTRY_LOAD_PERF_GLOBAL_CTRL | VM_ENTRY_LOAD_BNDCFGS) )
         printk("PerfGlobCtl = 0x%016lx  BndCfgS = 0x%016lx\n",
                vmr(GUEST_PERF_GLOBAL_CTRL), vmr(GUEST_BNDCFGS));
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index b6885d0e27..d417ae17d3 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -423,65 +423,96 @@ static int cf_check vmx_pi_update_irte(const struct vcpu *v,
     return rc;
 }
 
-static const struct lbr_info {
+struct lbr_info {
     u32 base, count;
-} p4_lbr[] = {
-    { MSR_P4_LER_FROM_LIP,          1 },
-    { MSR_P4_LER_TO_LIP,            1 },
-    { MSR_P4_LASTBRANCH_TOS,        1 },
-    { MSR_P4_LASTBRANCH_0_FROM_LIP, NUM_MSR_P4_LASTBRANCH_FROM_TO },
-    { MSR_P4_LASTBRANCH_0_TO_LIP,   NUM_MSR_P4_LASTBRANCH_FROM_TO },
-    { 0, 0 }
+    u64 initial;
+};
+
+static const struct lbr_info p4_lbr[] = {
+    { MSR_P4_LER_FROM_LIP,          1, 0 },
+    { MSR_P4_LER_TO_LIP,            1, 0 },
+    { MSR_P4_LASTBRANCH_TOS,        1, 0 },
+    { MSR_P4_LASTBRANCH_0_FROM_LIP, NUM_MSR_P4_LASTBRANCH_FROM_TO, 0 },
+    { MSR_P4_LASTBRANCH_0_TO_LIP,   NUM_MSR_P4_LASTBRANCH_FROM_TO, 0 },
+    { 0, 0, 0 }
 }, c2_lbr[] = {
-    { MSR_IA32_LASTINTFROMIP,       1 },
-    { MSR_IA32_LASTINTTOIP,         1 },
-    { MSR_C2_LASTBRANCH_TOS,        1 },
-    { MSR_C2_LASTBRANCH_0_FROM_IP,  NUM_MSR_C2_LASTBRANCH_FROM_TO },
-    { MSR_C2_LASTBRANCH_0_TO_IP,    NUM_MSR_C2_LASTBRANCH_FROM_TO },
-    { 0, 0 }
+    { MSR_IA32_LASTINTFROMIP,       1, 0 },
+    { MSR_IA32_LASTINTTOIP,         1, 0 },
+    { MSR_C2_LASTBRANCH_TOS,        1, 0 },
+    { MSR_C2_LASTBRANCH_0_FROM_IP,  NUM_MSR_C2_LASTBRANCH_FROM_TO, 0 },
+    { MSR_C2_LASTBRANCH_0_TO_IP,    NUM_MSR_C2_LASTBRANCH_FROM_TO, 0 },
+    { 0, 0, 0 }
 }, nh_lbr[] = {
-    { MSR_IA32_LASTINTFROMIP,       1 },
-    { MSR_IA32_LASTINTTOIP,         1 },
-    { MSR_NHL_LBR_SELECT,           1 },
-    { MSR_NHL_LASTBRANCH_TOS,       1 },
-    { MSR_P4_LASTBRANCH_0_FROM_LIP, NUM_MSR_P4_LASTBRANCH_FROM_TO },
-    { MSR_P4_LASTBRANCH_0_TO_LIP,   NUM_MSR_P4_LASTBRANCH_FROM_TO },
-    { 0, 0 }
+    { MSR_IA32_LASTINTFROMIP,       1, 0 },
+    { MSR_IA32_LASTINTTOIP,         1, 0 },
+    { MSR_NHL_LBR_SELECT,           1, 0 },
+    { MSR_NHL_LASTBRANCH_TOS,       1, 0 },
+    { MSR_P4_LASTBRANCH_0_FROM_LIP, NUM_MSR_P4_LASTBRANCH_FROM_TO, 0 },
+    { MSR_P4_LASTBRANCH_0_TO_LIP,   NUM_MSR_P4_LASTBRANCH_FROM_TO, 0 },
+    { 0, 0, 0 }
 }, sk_lbr[] = {
-    { MSR_IA32_LASTINTFROMIP,       1 },
-    { MSR_IA32_LASTINTTOIP,         1 },
-    { MSR_NHL_LBR_SELECT,           1 },
-    { MSR_NHL_LASTBRANCH_TOS,       1 },
-    { MSR_SKL_LASTBRANCH_0_FROM_IP, NUM_MSR_SKL_LASTBRANCH },
-    { MSR_SKL_LASTBRANCH_0_TO_IP,   NUM_MSR_SKL_LASTBRANCH },
-    { MSR_SKL_LASTBRANCH_0_INFO,    NUM_MSR_SKL_LASTBRANCH },
-    { 0, 0 }
+    { MSR_IA32_LASTINTFROMIP,       1, 0 },
+    { MSR_IA32_LASTINTTOIP,         1, 0 },
+    { MSR_NHL_LBR_SELECT,           1, 0 },
+    { MSR_NHL_LASTBRANCH_TOS,       1, 0 },
+    { MSR_SKL_LASTBRANCH_0_FROM_IP, NUM_MSR_SKL_LASTBRANCH, 0 },
+    { MSR_SKL_LASTBRANCH_0_TO_IP,   NUM_MSR_SKL_LASTBRANCH, 0 },
+    { MSR_SKL_LASTBRANCH_0_INFO,    NUM_MSR_SKL_LASTBRANCH, 0 },
+    { 0, 0, 0 }
 }, at_lbr[] = {
-    { MSR_IA32_LASTINTFROMIP,       1 },
-    { MSR_IA32_LASTINTTOIP,         1 },
-    { MSR_C2_LASTBRANCH_TOS,        1 },
-    { MSR_C2_LASTBRANCH_0_FROM_IP,  NUM_MSR_ATOM_LASTBRANCH_FROM_TO },
-    { MSR_C2_LASTBRANCH_0_TO_IP,    NUM_MSR_ATOM_LASTBRANCH_FROM_TO },
-    { 0, 0 }
+    { MSR_IA32_LASTINTFROMIP,       1, 0 },
+    { MSR_IA32_LASTINTTOIP,         1, 0 },
+    { MSR_C2_LASTBRANCH_TOS,        1, 0 },
+    { MSR_C2_LASTBRANCH_0_FROM_IP,  NUM_MSR_ATOM_LASTBRANCH_FROM_TO, 0 },
+    { MSR_C2_LASTBRANCH_0_TO_IP,    NUM_MSR_ATOM_LASTBRANCH_FROM_TO, 0 },
+    { 0, 0, 0 }
 }, sm_lbr[] = {
-    { MSR_IA32_LASTINTFROMIP,       1 },
-    { MSR_IA32_LASTINTTOIP,         1 },
-    { MSR_SM_LBR_SELECT,            1 },
-    { MSR_SM_LASTBRANCH_TOS,        1 },
-    { MSR_C2_LASTBRANCH_0_FROM_IP,  NUM_MSR_ATOM_LASTBRANCH_FROM_TO },
-    { MSR_C2_LASTBRANCH_0_TO_IP,    NUM_MSR_ATOM_LASTBRANCH_FROM_TO },
-    { 0, 0 }
+    { MSR_IA32_LASTINTFROMIP,       1, 0 },
+    { MSR_IA32_LASTINTTOIP,         1, 0 },
+    { MSR_SM_LBR_SELECT,            1, 0 },
+    { MSR_SM_LASTBRANCH_TOS,        1, 0 },
+    { MSR_C2_LASTBRANCH_0_FROM_IP,  NUM_MSR_ATOM_LASTBRANCH_FROM_TO, 0 },
+    { MSR_C2_LASTBRANCH_0_TO_IP,    NUM_MSR_ATOM_LASTBRANCH_FROM_TO, 0 },
+    { 0, 0, 0 }
 }, gm_lbr[] = {
-    { MSR_IA32_LASTINTFROMIP,       1 },
-    { MSR_IA32_LASTINTTOIP,         1 },
-    { MSR_SM_LBR_SELECT,            1 },
-    { MSR_SM_LASTBRANCH_TOS,        1 },
-    { MSR_GM_LASTBRANCH_0_FROM_IP,  NUM_MSR_GM_LASTBRANCH_FROM_TO },
-    { MSR_GM_LASTBRANCH_0_TO_IP,    NUM_MSR_GM_LASTBRANCH_FROM_TO },
-    { 0, 0 }
+    { MSR_IA32_LASTINTFROMIP,       1, 0 },
+    { MSR_IA32_LASTINTTOIP,         1, 0 },
+    { MSR_SM_LBR_SELECT,            1, 0 },
+    { MSR_SM_LASTBRANCH_TOS,        1, 0 },
+    { MSR_GM_LASTBRANCH_0_FROM_IP,  NUM_MSR_GM_LASTBRANCH_FROM_TO, 0 },
+    { MSR_GM_LASTBRANCH_0_TO_IP,    NUM_MSR_GM_LASTBRANCH_FROM_TO, 0 },
+    { 0, 0, 0 }
 };
 static const struct lbr_info *__ro_after_init model_specific_lbr;
 
+static struct lbr_info __ro_after_init architectural_lbr[] = {
+    { MSR_IA32_LASTINTFROMIP,        1, 0 },
+    { MSR_IA32_LASTINTTOIP,          1, 0 },
+    { MSR_IA32_LER_INFO,             1, 0 },
+    /* to be updated by update_arch_lbr */
+    { MSR_IA32_LASTBRANCH_0_INFO,    MAX_MSR_ARCH_LASTBRANCH_FROM_TO, 0 },
+    { MSR_IA32_LASTBRANCH_0_FROM_IP, MAX_MSR_ARCH_LASTBRANCH_FROM_TO, 0 },
+    { MSR_IA32_LASTBRANCH_0_TO_IP,   MAX_MSR_ARCH_LASTBRANCH_FROM_TO, 0 },
+    { 0, 0, 0 }
+};
+static uint64_t __ro_after_init host_lbr_depth = 0;
+
+static void __init update_arch_lbr(void)
+{
+    struct lbr_info *lbr = architectural_lbr;
+
+    if ( boot_cpu_has(X86_FEATURE_ARCH_LBR) )
+        rdmsrl(MSR_IA32_LASTBRANCH_DEPTH, host_lbr_depth);
+    ASSERT((host_lbr_depth % 8) == 0 && (host_lbr_depth <= 64));
+
+    for ( ; lbr->count; lbr++ ) {
+        if ( lbr->base == MSR_IA32_LASTBRANCH_0_INFO ||
+             lbr->base == MSR_IA32_LASTBRANCH_0_FROM_IP ||
+             lbr->base == MSR_IA32_LASTBRANCH_0_TO_IP )
+            lbr->count = (u32)host_lbr_depth;
+    }
+}
+
 static const struct lbr_info *__init get_model_specific_lbr(void)
 {
     switch ( boot_cpu_data.x86 )
@@ -3056,6 +3087,8 @@ const struct hvm_function_table * __init start_vmx(void)
     lbr_tsx_fixup_check();
     ler_to_fixup_check();
 
+    update_arch_lbr();
+
     return &vmx_function_table;
 }
 
@@ -3303,25 +3336,36 @@ static void __init ler_to_fixup_check(void)
     }
 }
 
-static int is_last_branch_msr(u32 ecx)
+static const struct lbr_info * find_last_branch_msr(struct vcpu *v, u32 ecx)
 {
+    /*
+     * Model-specific and architectural LBRs are mutually exclusive.
+     * It's not necessary to check both lbr_info lists.
+     */
     const struct lbr_info *lbr = model_specific_lbr;
+    const struct cpu_policy *cp = v->domain->arch.cpu_policy;
 
-    if ( lbr == NULL )
-        return 0;
+    if ( lbr == NULL ) {
+        if ( cp->feat.arch_lbr )
+            lbr = architectural_lbr;
+        else
+            return NULL;
+    }
 
     for ( ; lbr->count; lbr++ )
         if ( (ecx >= lbr->base) && (ecx < (lbr->base + lbr->count)) )
-            return 1;
+            return lbr;
 
-    return 0;
+    return NULL;
 }
 
 static int cf_check vmx_msr_read_intercept(
     unsigned int msr, uint64_t *msr_content)
 {
     struct vcpu *curr = current;
+    const struct cpu_policy *cp = curr->domain->arch.cpu_policy;
     uint64_t tmp;
+    const struct lbr_info *lbr = NULL;
 
     HVM_DBG_LOG(DBG_LEVEL_MSR, "ecx=%#x", msr);
 
@@ -3369,6 +3413,18 @@ static int cf_check vmx_msr_read_intercept(
         __vmread(GUEST_IA32_DEBUGCTL, msr_content);
         break;
 
+    case MSR_IA32_LASTBRANCH_CTL:
+        if ( !cp->feat.arch_lbr )
+            goto gp_fault;
+        __vmread(GUEST_LBR_CTL, msr_content);
+        break;
+
+    case MSR_IA32_LASTBRANCH_DEPTH:
+        if ( !cp->feat.arch_lbr )
+            goto gp_fault;
+        *msr_content = host_lbr_depth;
+        break;
+
     case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC:
         if ( !nvmx_msr_read_intercept(msr, msr_content) )
             goto gp_fault;
@@ -3397,9 +3453,10 @@ static int cf_check vmx_msr_read_intercept(
         if ( vmx_read_guest_msr(curr, msr, msr_content) == 0 )
             break;
 
-        if ( is_last_branch_msr(msr) )
+        lbr = find_last_branch_msr(curr, msr);
+        if ( lbr != NULL )
         {
-            *msr_content = 0;
+            *msr_content = lbr->initial;
             break;
         }
 
@@ -3540,6 +3597,34 @@ void cf_check vmx_vlapic_msr_changed(struct vcpu *v)
     vmx_vmcs_exit(v);
 }
 
+static int vmx_lbr_insert(struct vcpu *v, const struct lbr_info *lbr)
+{
+    for ( ; lbr->count; lbr++ )
+    {
+        unsigned int i;
+
+        for ( i = 0; i < lbr->count; i++ )
+        {
+            int rc = vmx_add_guest_msr(v, lbr->base + i, lbr->initial);
+
+            if ( unlikely(rc) )
+            {
+                return rc;
+            }
+
+            vmx_clear_msr_intercept(v, lbr->base + i, VMX_MSR_RW);
+        }
+    }
+
+    v->arch.hvm.vmx.lbr_flags |= LBR_MSRS_INSERTED;
+    if ( lbr_tsx_fixup_needed )
+        v->arch.hvm.vmx.lbr_flags |= LBR_FIXUP_TSX;
+    if ( ler_to_fixup_needed )
+        v->arch.hvm.vmx.lbr_flags |= LBR_FIXUP_LER_TO;
+
+    return 0;
+}
+
 static int cf_check vmx_msr_write_intercept(
     unsigned int msr, uint64_t msr_content)
 {
@@ -3652,36 +3737,64 @@ static int cf_check vmx_msr_write_intercept(
         if ( !(v->arch.hvm.vmx.lbr_flags & LBR_MSRS_INSERTED) &&
              (msr_content & IA32_DEBUGCTLMSR_LBR) )
         {
-            const struct lbr_info *lbr = model_specific_lbr;
+            int rc = vmx_lbr_insert(v, model_specific_lbr);
 
-            for ( ; lbr->count; lbr++ )
+            if ( unlikely(rc) )
             {
-                unsigned int i;
+                gprintk(XENLOG_ERR,
+                        "Guest load/save list error %d\n", rc);
+                domain_crash(v->domain);
+                return X86EMUL_OKAY;
+            }
+        }
 
-                for ( i = 0; i < lbr->count; i++ )
-                {
-                    int rc = vmx_add_guest_msr(v, lbr->base + i, 0);
+        __vmwrite(GUEST_IA32_DEBUGCTL, msr_content);
+        break;
 
-                    if ( unlikely(rc) )
-                    {
-                        gprintk(XENLOG_ERR,
-                                "Guest load/save list error %d\n", rc);
-                        domain_crash(v->domain);
-                        return X86EMUL_OKAY;
-                    }
+    case MSR_IA32_LASTBRANCH_CTL:
+        if ( !cp->feat.arch_lbr )
+            goto gp_fault;
 
-                    vmx_clear_msr_intercept(v, lbr->base + i, VMX_MSR_RW);
-                }
+        if ( msr_content & ~LASTBRANCH_CTL_VALID )
+            goto gp_fault;
+
+        if ( !(v->arch.hvm.vmx.lbr_flags & LBR_MSRS_INSERTED) &&
+             (msr_content & LASTBRANCH_CTL_LBREN) )
+        {
+            int rc;
+
+            rc = vmx_lbr_insert(v, architectural_lbr);
+            if ( unlikely(rc) )
+            {
+                gprintk(XENLOG_ERR,
+                        "Guest load/save list error %d\n", rc);
+                domain_crash(v->domain);
+                return X86EMUL_OKAY;
             }
+        }
+
+        __vmwrite(GUEST_LBR_CTL, msr_content);
+        break;
 
-            v->arch.hvm.vmx.lbr_flags |= LBR_MSRS_INSERTED;
-            if ( lbr_tsx_fixup_needed )
-                v->arch.hvm.vmx.lbr_flags |= LBR_FIXUP_TSX;
-            if ( ler_to_fixup_needed )
-                v->arch.hvm.vmx.lbr_flags |= LBR_FIXUP_LER_TO;
+    case MSR_IA32_LASTBRANCH_DEPTH:
+        if ( !cp->feat.arch_lbr )
+            goto gp_fault;
+
+        if ( msr_content != host_lbr_depth )
+            goto gp_fault;
+
+        if ( v->arch.hvm.vmx.lbr_flags & LBR_MSRS_INSERTED )
+        {
+            /* writes to MSR_IA32_LASTBRANCH_DEPTH zero LBR state */
+            int i;
+            for (i = 0; i < host_lbr_depth; i++)
+            {
+                vmx_write_guest_msr(v, MSR_IA32_LASTBRANCH_0_INFO + i, 0);
+                vmx_write_guest_msr(v, MSR_IA32_LASTBRANCH_0_FROM_IP + i, 0);
+                vmx_write_guest_msr(v, MSR_IA32_LASTBRANCH_0_TO_IP + i, 0);
+            }
         }
 
-        __vmwrite(GUEST_IA32_DEBUGCTL, msr_content);
         break;
 
     case MSR_IA32_MISC_ENABLE:
@@ -3710,7 +3823,7 @@ static int cf_check vmx_msr_write_intercept(
             return X86EMUL_OKAY;
 
         if ( vmx_write_guest_msr(v, msr, msr_content) == 0 ||
-             is_last_branch_msr(msr) )
+             find_last_branch_msr(v, msr) != NULL )
             break;
 
         if ( v->domain->arch.msr_relaxed && !rdmsr_safe(msr, msr_content) )
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
index 939b87eb50..2b265e583f 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -229,6 +229,7 @@ extern u32 vmx_pin_based_exec_control;
 #define VM_EXIT_LOAD_HOST_EFER          0x00200000
 #define VM_EXIT_SAVE_PREEMPT_TIMER      0x00400000
 #define VM_EXIT_CLEAR_BNDCFGS           0x00800000
+#define VM_EXIT_CLEAR_GUEST_LBR_CTL     0x04000000
 extern u32 vmx_vmexit_control;
 
 #define VM_ENTRY_IA32E_MODE             0x00000200
@@ -238,6 +239,7 @@ extern u32 vmx_vmexit_control;
 #define VM_ENTRY_LOAD_GUEST_PAT         0x00004000
 #define VM_ENTRY_LOAD_GUEST_EFER        0x00008000
 #define VM_ENTRY_LOAD_BNDCFGS           0x00010000
+#define VM_ENTRY_LOAD_GUEST_LBR_CTL     0x00200000
 extern u32 vmx_vmentry_control;
 
 #define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001U
@@ -391,6 +393,10 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_notify_vm_exiting \
     (IS_ENABLED(CONFIG_INTEL_VMX) && \
      vmx_secondary_exec_control & SECONDARY_EXEC_NOTIFY_VM_EXITING)
+#define cpu_has_vmx_guest_lbr_ctl \
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     (vmx_vmexit_control & VM_EXIT_CLEAR_GUEST_LBR_CTL) && \
+     (vmx_vmentry_control & VM_ENTRY_LOAD_GUEST_LBR_CTL))
 
 #define VMCS_RID_TYPE_MASK              0x80000000U
 
@@ -480,6 +486,8 @@ enum vmcs_field {
     GUEST_PDPTE0                    = 0x0000280a,
 #define GUEST_PDPTE(n) (GUEST_PDPTE0 + (n) * 2) /* n = 0...3 */
     GUEST_BNDCFGS                   = 0x00002812,
+    GUEST_RTIT_CTL                  = 0x00002814,
+    GUEST_LBR_CTL                   = 0x00002816,
     HOST_PAT                        = 0x00002c00,
     HOST_EFER                       = 0x00002c02,
     HOST_PERF_GLOBAL_CTRL           = 0x00002c04,
-- 
2.43.0



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:49:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839117.1254936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxRx-0005XH-TX; Mon, 18 Nov 2024 08:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839117.1254936; Mon, 18 Nov 2024 08: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 1tCxRx-0005VK-N5; Mon, 18 Nov 2024 08:49:37 +0000
Received: by outflank-mailman (input) for mailman id 839117;
 Mon, 18 Nov 2024 08: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=Wasq=SN=bounce.vates.tech=bounce-md_30504962.673aff99.v1-b69a6f8cf02f44949a0860350e2ff77a@srs-se1.protection.inumbo.net>)
 id 1tCxRw-0005D3-Nn
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:49:36 +0000
Received: from mail136-26.atl41.mandrillapp.com
 (mail136-26.atl41.mandrillapp.com [198.2.136.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 063fdedf-a58a-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 09:49:30 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-26.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4XsLsP1tG0zJKF3ZY
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 08:49:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b69a6f8cf02f44949a0860350e2ff77a; Mon, 18 Nov 2024 08:49: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: 063fdedf-a58a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yNiIsImhlbG8iOiJtYWlsMTM2LTI2LmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjA2M2ZkZWRmLWE1OGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTE5NzcxLjA3NzE4LCJzZW5kZXIiOiJib3VuY2UtbWRfMzA1MDQ5NjIuNjczYWZmOTkudjEtYjY5YTZmOGNmMDJmNDQ5NDlhMDg2MDM1MGUyZmY3N2FAYm91bmNlLnZhdGVzLnRlY2giLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731919769; x=1732180269;
	bh=r0skW4u++Ca1L9bVDD6J0qBy4MGffGcnZfM3V9qqDH4=;
	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=CUSe+Ir4k3tMdpAj/Dd/Rbeja0nVh2sGHOLkPgH0I6pObb/A2ojIVqpI155JNEJTN
	 mu9kMzEHdWGdxgy7vhEHQdoM8XK0pvqKw/dvWDvmhiB+ke4cmT7cBtwYEBBeG6jL+9
	 hnsQyXfjzwsx1oy2ZpI5Ywx21CKQfYS+JciuVP3DetsCiz6BBlNxOBRsLm+/DoECri
	 rvZgw4bmGQuARrTy5TN3G/PdjMNJs44ljPN20UcIPgtdIbhDGRBFRMWpjyCWrOdkvb
	 cn5Wrno7RFSCYaTrYb6WUrydRvQClvcwctR6Olh7tm1eP2MA+1ovCdsPG3SYtGuc2q
	 mVlvtwq1h7yog==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731919769; x=1732180269; i=ngoc-tu.dinh@vates.tech;
	bh=r0skW4u++Ca1L9bVDD6J0qBy4MGffGcnZfM3V9qqDH4=;
	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=I1Rjv4A+RIHq82t//DCkW/wl3q9n90J8I02rPWxgjhLlT59UALbxKz9A43kr80FA3
	 Hg0OUCVD9eCSMhwtc0a0MjEHQMfhZG6CQZCPwuYEbEVz7iNljd81OCf6VrQoqzN8LI
	 06Nla8fgKOgO6aLi2vLdjSv1mTyZlidpU0NMM8pPde1sJFFRAVop22d3jFcxX+bTYI
	 maEi5WBjZgjhYYgVv0ig2F9rBy+bQT14gSlSFZH3k1cU51m4zLT1HzzQYwnzCz47f1
	 a0Y/shOW4MrLYai7/Pos21hMaxK8jpmI6xu8fnKzZAi2DEfPSixhRNL2DBb6xcA4wU
	 UWkAPaImYTWfA==
From: ngoc-tu.dinh@vates.tech
Subject: =?utf-8?Q?[PATCH=201/4]=20x86:=20Add=20Intel=20architectural=20LBR=20featureset=20bits?=
X-Mailer: git-send-email 2.43.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731919768581
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <20241118084914.22268-2-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
References: <20241118084914.22268-1-ngoc-tu.dinh@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.b69a6f8cf02f44949a0860350e2ff77a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 08:49:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Tu Dinh <ngoc-tu.dinh@vates.tech>

Expose ARCH_LBR feature to guests.

Extend CPU featureset with 3 words for CPUID leaf 0x1c.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 tools/libs/guest/xg_cpuid_x86.c             |  2 +-
 tools/misc/xen-cpuid.c                      |  3 ++
 xen/arch/x86/cpu-policy.c                   |  3 ++
 xen/arch/x86/cpu/common.c                   |  7 ++++
 xen/include/public/arch-x86/cpufeatureset.h | 28 ++++++++++++++-
 xen/include/xen/lib/x86/cpu-policy.h        | 38 ++++++++++++++++++++-
 xen/lib/x86/cpuid.c                         |  6 ++++
 7 files changed, 84 insertions(+), 3 deletions(-)

diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
index 4453178100..64d9baa538 100644
--- a/tools/libs/guest/xg_cpuid_x86.c
+++ b/tools/libs/guest/xg_cpuid_x86.c
@@ -656,7 +656,7 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
             p->policy.feat.mpx = test_bit(X86_FEATURE_MPX, host_featureset);
         }
 
-        p->policy.basic.max_leaf = min(p->policy.basic.max_leaf, 0xdu);
+        p->policy.basic.max_leaf = min(p->policy.basic.max_leaf, 0x1cu);
         p->policy.feat.max_subleaf = 0;
         p->policy.extd.max_leaf = min(p->policy.extd.max_leaf, 0x8000001c);
     }
diff --git a/tools/misc/xen-cpuid.c b/tools/misc/xen-cpuid.c
index 4c4593528d..4f0fb0a6ea 100644
--- a/tools/misc/xen-cpuid.c
+++ b/tools/misc/xen-cpuid.c
@@ -37,6 +37,9 @@ static const struct {
     { "CPUID 0x00000007:1.edx",     "7d1" },
     { "MSR_ARCH_CAPS.lo",         "m10Al" },
     { "MSR_ARCH_CAPS.hi",         "m10Ah" },
+    { "CPUID 0x0000001c.eax",       "1Ca" },
+    { "CPUID 0x0000001c.ebx",       "1Cb" },
+    { "CPUID 0x0000001c.ecx",       "1Cc" },
 };
 
 #define COL_ALIGN "24"
diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 78bc9872b0..cf6b212fb6 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -271,6 +271,8 @@ static void recalculate_misc(struct cpu_policy *p)
 
     p->basic.raw[0xc] = EMPTY_LEAF;
 
+    zero_leaves(p->basic.raw, 0xe, 0x1b);
+
     p->extd.e1d &= ~CPUID_COMMON_1D_FEATURES;
 
     /* Most of Power/RAS hidden from guests. */
@@ -303,6 +305,7 @@ static void recalculate_misc(struct cpu_policy *p)
         zero_leaves(p->basic.raw, 0x2, 0x3);
         memset(p->cache.raw, 0, sizeof(p->cache.raw));
         zero_leaves(p->basic.raw, 0x9, 0xa);
+        p->basic.raw[0x1c] = EMPTY_LEAF;
 
         p->extd.vendor_ebx = p->basic.vendor_ebx;
         p->extd.vendor_ecx = p->basic.vendor_ecx;
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 067d855bad..4c8eb188e9 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -505,6 +505,13 @@ static void generic_identify(struct cpuinfo_x86 *c)
 			    &c->x86_capability[FEATURESET_Da1],
 			    &tmp, &tmp, &tmp);
 
+	if (c->cpuid_level >= 0x1c)
+		cpuid(0x1c,
+			  &c->x86_capability[FEATURESET_1Ca],
+			  &c->x86_capability[FEATURESET_1Cb],
+			  &c->x86_capability[FEATURESET_1Cc],
+			  &tmp);
+
 	if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability))
 		rdmsr(MSR_ARCH_CAPABILITIES,
 		      c->x86_capability[FEATURESET_m10Al],
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index 8fa3fb711a..9304856fba 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -284,7 +284,7 @@ XEN_CPUFEATURE(SERIALIZE,     9*32+14) /*A  SERIALIZE insn */
 XEN_CPUFEATURE(HYBRID,        9*32+15) /*   Heterogeneous platform */
 XEN_CPUFEATURE(TSXLDTRK,      9*32+16) /*a  TSX load tracking suspend/resume insns */
 XEN_CPUFEATURE(PCONFIG,       9*32+18) /*   PCONFIG instruction */
-XEN_CPUFEATURE(ARCH_LBR,      9*32+19) /*   Architectural Last Branch Record */
+XEN_CPUFEATURE(ARCH_LBR,      9*32+19) /*S  Architectural Last Branch Record */
 XEN_CPUFEATURE(CET_IBT,       9*32+20) /*   CET - Indirect Branch Tracking */
 XEN_CPUFEATURE(AMX_BF16,      9*32+22) /*   AMX BFloat16 instruction */
 XEN_CPUFEATURE(AVX512_FP16,   9*32+23) /*A  AVX512 FP16 instructions */
@@ -379,6 +379,32 @@ XEN_CPUFEATURE(RFDS_CLEAR,         16*32+28) /*!A| Register File(s) cleared by V
 
 /* Intel-defined CPU features, MSR_ARCH_CAPS 0x10a.edx, word 17 */
 
+/* Intel-defined CPU features, CPUID level 0x0000001c.eax, word 18 */
+XEN_CPUFEATURE(LBR_DEPTH_8,        18*32+ 0) /*S  Depth 8 */
+XEN_CPUFEATURE(LBR_DEPTH_16,       18*32+ 1) /*S  Depth 16 */
+XEN_CPUFEATURE(LBR_DEPTH_24,       18*32+ 2) /*S  Depth 24 */
+XEN_CPUFEATURE(LBR_DEPTH_32,       18*32+ 3) /*S  Depth 32 */
+XEN_CPUFEATURE(LBR_DEPTH_40,       18*32+ 4) /*S  Depth 40 */
+XEN_CPUFEATURE(LBR_DEPTH_48,       18*32+ 5) /*S  Depth 48 */
+XEN_CPUFEATURE(LBR_DEPTH_56,       18*32+ 6) /*S  Depth 56 */
+XEN_CPUFEATURE(LBR_DEPTH_64,       18*32+ 7) /*S  Depth 64 */
+XEN_CPUFEATURE(LBR_DCST_RST,       18*32+30) /*S  Deep C-state reset */
+XEN_CPUFEATURE(LBR_LIP,            18*32+31) /*S  IP is linear IP */
+
+/* Intel-defined CPU features, CPUID level 0x0000001c.ebx, word 19 */
+XEN_CPUFEATURE(LBR_CPL_FILTER,      19*32+ 0) /*S  CPL filtering */
+XEN_CPUFEATURE(LBR_BR_FILTER,       19*32+ 1) /*S  Branch filtering */
+XEN_CPUFEATURE(LBR_CALL_STACK_MODE, 19*32+ 2) /*S  Call stack mode */
+
+/* Intel-defined CPU features, CPUID level 0x0000001c.ecx, word 20 */
+XEN_CPUFEATURE(LBR_MISPRED,        20*32+ 0) /*S  Mispredict mode */
+XEN_CPUFEATURE(LBR_TIMED,          20*32+ 1) /*S  Timed mode */
+XEN_CPUFEATURE(LBR_BR_TYPE,        20*32+ 2) /*S  Branch type */
+XEN_CPUFEATURE(LBR_EVT_FMT0,       20*32+16) /*!S Event type format bit 0 */
+XEN_CPUFEATURE(LBR_EVT_FMT1,       20*32+17) /*!S Event type format bit 1 */
+XEN_CPUFEATURE(LBR_EVT_FMT2,       20*32+18) /*!S Event type format bit 2 */
+XEN_CPUFEATURE(LBR_EVT_FMT3,       20*32+19) /*!S Event type format bit 3 */
+
 #endif /* XEN_CPUFEATURE */
 
 /* Clean up from a default include.  Close the enum (for C). */
diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index f43e1a3b21..afd66b4158 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -22,6 +22,9 @@
 #define FEATURESET_7d1       15 /* 0x00000007:1.edx    */
 #define FEATURESET_m10Al     16 /* 0x0000010a.eax      */
 #define FEATURESET_m10Ah     17 /* 0x0000010a.edx      */
+#define FEATURESET_1Ca       18 /* 0x0000001c.eax      */
+#define FEATURESET_1Cb       19 /* 0x0000001c.ebx      */
+#define FEATURESET_1Cc       20 /* 0x0000001c.ecx      */
 
 struct cpuid_leaf
 {
@@ -85,7 +88,7 @@ unsigned int x86_cpuid_lookup_vendor(uint32_t ebx, uint32_t ecx, uint32_t edx);
  */
 const char *x86_cpuid_vendor_to_str(unsigned int vendor);
 
-#define CPUID_GUEST_NR_BASIC      (0xdu + 1)
+#define CPUID_GUEST_NR_BASIC      (0x1cu + 1)
 #define CPUID_GUEST_NR_CACHE      (5u + 1)
 #define CPUID_GUEST_NR_FEAT       (2u + 1)
 #define CPUID_GUEST_NR_TOPO       (1u + 1)
@@ -158,6 +161,39 @@ struct cpu_policy
             uint64_t :64, :64; /* Leaf 0xb - Topology. */
             uint64_t :64, :64; /* Leaf 0xc - rsvd */
             uint64_t :64, :64; /* Leaf 0xd - XSTATE. */
+
+            uint64_t :64, :64; /* Leaf 0xe - rsvd */
+            uint64_t :64, :64; /* Leaf 0xf - rsvd */
+            uint64_t :64, :64; /* Leaf 0x10 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x11 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x12 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x13 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x14 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x15 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x16 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x17 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x18 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x19 - rsvd */
+            uint64_t :64, :64; /* Leaf 0x1a - rsvd */
+            uint64_t :64, :64; /* Leaf 0x1b - rsvd */
+
+            union {
+                uint32_t _1Ca;
+                struct {
+                    uint32_t supported_depths:8;
+                    uint32_t :22;
+                    uint32_t deep_cstate_reset:1;
+                    uint32_t ip_contains_lip:1;
+                };
+            };
+            union {
+                uint32_t _1Cb;
+                struct { DECL_BITFIELD(1Cb); };
+            };
+            union {
+                uint32_t _1Cc;
+                struct { DECL_BITFIELD(1Cc); };
+            };
         };
     } basic;
 
diff --git a/xen/lib/x86/cpuid.c b/xen/lib/x86/cpuid.c
index eb7698dc73..4d19349b17 100644
--- a/xen/lib/x86/cpuid.c
+++ b/xen/lib/x86/cpuid.c
@@ -81,6 +81,9 @@ void x86_cpu_policy_to_featureset(
     fs[FEATURESET_7d1]       = p->feat._7d1;
     fs[FEATURESET_m10Al]     = p->arch_caps.lo;
     fs[FEATURESET_m10Ah]     = p->arch_caps.hi;
+    fs[FEATURESET_1Ca]       = p->basic._1Ca;
+    fs[FEATURESET_1Cb]       = p->basic._1Cb;
+    fs[FEATURESET_1Cc]       = p->basic._1Cc;
 }
 
 void x86_cpu_featureset_to_policy(
@@ -104,6 +107,9 @@ void x86_cpu_featureset_to_policy(
     p->feat._7d1             = fs[FEATURESET_7d1];
     p->arch_caps.lo          = fs[FEATURESET_m10Al];
     p->arch_caps.hi          = fs[FEATURESET_m10Ah];
+    p->basic._1Ca            = fs[FEATURESET_1Ca];
+    p->basic._1Cb            = fs[FEATURESET_1Cb];
+    p->basic._1Cc            = fs[FEATURESET_1Cc];
 }
 
 void x86_cpu_policy_recalc_synth(struct cpu_policy *p)
-- 
2.43.0



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:49:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839114.1254916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxRw-0005DZ-TI; Mon, 18 Nov 2024 08:49:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839114.1254916; Mon, 18 Nov 2024 08:49: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 1tCxRw-0005DS-PU; Mon, 18 Nov 2024 08:49:36 +0000
Received: by outflank-mailman (input) for mailman id 839114;
 Mon, 18 Nov 2024 08:49: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=HhTh=SN=bounce.vates.tech=bounce-md_30504962.673aff99.v1-8f6556b918f44805a2f1fdef3b3f8a34@srs-se1.protection.inumbo.net>)
 id 1tCxRu-0005D2-MX
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:49:34 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 063f0764-a58a-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 09:49:30 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4XsLsP61FMz3sNN6f
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 08:49:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8f6556b918f44805a2f1fdef3b3f8a34; Mon, 18 Nov 2024 08:49: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: 063f0764-a58a-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjA2M2YwNzY0LWE1OGEtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTE5NzcxLjEzMDc0NSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2FmZjk5LnYxLThmNjU1NmI5MThmNDQ4MDVhMmYxZmRlZjNiM2Y4YTM0QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731919769; x=1732180269;
	bh=1vvA+0VSIAC8nQ8VY1SX3ncz60BGkrkcakZs3orNshc=;
	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=f/Q8M/9F9PGC6dOfh17uwvqf16ENb8scYDqCfgQuRaWcld2VTZ/s/aVOLLS20ykda
	 fGmYgaSVDOMsqNEvFppx7A3OAJ4BywwSHkVrNMg5jKd8MYjR9vXTf+EnNbWItGRzvS
	 Cl6KfXEEg5ADqMHO0u1siXx5l37hi7HYazhJ4wE01QhmejKh+F3erPNqBGd9Bb2eMT
	 lGzQStE4kSgM6MY5p1S0M0oFHxtMA1rGBibEnd5raPNIF341S2ftQoq/rGxG+QGxnD
	 ltziP7TfyTa0CdGYgKHPvWUyBge2pBXpzM8Ud3kZFM1v6U4nVOXivFMfamGEPrCbZ3
	 1y1DoHo/KMkdg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731919769; x=1732180269; i=ngoc-tu.dinh@vates.tech;
	bh=1vvA+0VSIAC8nQ8VY1SX3ncz60BGkrkcakZs3orNshc=;
	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=zb/cnjvGLubBrj0nPtEIWXP6DjRr91YCpGBVEG6t7l2XxeoBmt7gU2NAyV3SQnVEL
	 HmvYXcuiLIP/MUlV2YHApX0lduyDok9ZR8uqoUKfRQwK5yXfFpI/AXaNcL+KXh+6x8
	 S3Kn3iD5qiXrv+OW/y75MaeeCigNlyASYj7yaDXn11ZnMoizS4l07eHtH0lmdJADgX
	 Ubu8OJF7jg7RSPe/wTz8Eamzj0R/2uTyPVGDD0Aiy8CKWP15gIhj3rEFEpZGu5wLLD
	 LmsE+eRgGfHQ1FTGqc/eTguYrLHkauRm8XhupVVIRFt4V3R4l+g5bClwuuSeKCeo/h
	 juLYOwLTMTm+A==
From: ngoc-tu.dinh@vates.tech
Subject: =?utf-8?Q?[PATCH=203/4]=20x86:=20Adjust=20arch=20LBR=20CPU=20policy?=
X-Mailer: git-send-email 2.43.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731919768866
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <20241118084914.22268-4-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
References: <20241118084914.22268-1-ngoc-tu.dinh@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.8f6556b918f44805a2f1fdef3b3f8a34?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 08:49:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Tu Dinh <ngoc-tu.dinh@vates.tech>

Allow virtual arch LBR with a single depth that's equal to that of the
host. If this is not possible, disable arch LBR altogether.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 xen/arch/x86/cpu-policy.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index cf6b212fb6..2ac76eb058 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -638,6 +638,36 @@ static void __init calculate_pv_max_policy(void)
     p->extd.raw[0xa] = EMPTY_LEAF; /* No SVM for PV guests. */
 }
 
+/*
+ * Allow virtual arch LBR with a single depth that's equal to that of the
+ * host. If this is not possible, disable arch LBR altogether.
+ */
+static void adjust_arch_lbr_depth(uint32_t fs[FEATURESET_NR_ENTRIES])
+{
+    uint64_t host_lbr_depth;
+    bool lbr_supported = true;
+
+    rdmsrl(MSR_IA32_LASTBRANCH_DEPTH, host_lbr_depth);
+    if ((host_lbr_depth == 0) ||
+        (host_lbr_depth % 8) ||
+        (host_lbr_depth > 64))
+        lbr_supported = false;
+
+    host_lbr_depth = 1ul << ((host_lbr_depth / 8) - 1);
+    if ((host_lbr_depth & fs[FEATURESET_1Ca] & 0xff) == 0)
+        lbr_supported = false;
+
+    if (lbr_supported)
+    {
+        fs[FEATURESET_1Ca] = (fs[FEATURESET_1Ca] & ~0xffu) | host_lbr_depth;
+    }
+    else
+    {
+        __clear_bit(X86_FEATURE_ARCH_LBR, fs);
+        fs[FEATURESET_1Ca] = fs[FEATURESET_1Cb] = fs[FEATURESET_1Cc] = 0;
+    }
+}
+
 static void __init calculate_pv_def_policy(void)
 {
     struct cpu_policy *p = &pv_def_cpu_policy;
@@ -760,6 +790,9 @@ static void __init calculate_hvm_max_policy(void)
             __clear_bit(X86_FEATURE_XSAVES, fs);
     }
 
+    if ( test_bit(X86_FEATURE_ARCH_LBR, fs) )
+        adjust_arch_lbr_depth(fs);
+
     /*
      * Xen doesn't use PKS, so the guest support for it has opted to not use
      * the VMCS load/save controls for efficiency reasons.  This depends on
-- 
2.43.0



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:49:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839116.1254927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxRx-0005M3-Ej; Mon, 18 Nov 2024 08:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839116.1254927; Mon, 18 Nov 2024 08: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 1tCxRx-0005K7-8u; Mon, 18 Nov 2024 08:49:37 +0000
Received: by outflank-mailman (input) for mailman id 839116;
 Mon, 18 Nov 2024 08:49: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=LbT5=SN=bounce.vates.tech=bounce-md_30504962.673aff99.v1-f79108cbb7fe484e862e7fcb365ac070@srs-se1.protection.inumbo.net>)
 id 1tCxRv-0005D3-Nj
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:49:35 +0000
Received: from mail136-26.atl41.mandrillapp.com
 (mail136-26.atl41.mandrillapp.com [198.2.136.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 063f63c6-a58a-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 09:49:30 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-26.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4XsLsP1Yf1zJKF3ZX
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 08:49:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f79108cbb7fe484e862e7fcb365ac070; Mon, 18 Nov 2024 08:49: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: 063f63c6-a58a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yNiIsImhlbG8iOiJtYWlsMTM2LTI2LmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjA2M2Y2M2M2LWE1OGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTE5NzcwLjk3MTMzNywic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2FmZjk5LnYxLWY3OTEwOGNiYjdmZTQ4NGU4NjJlN2ZjYjM2NWFjMDcwQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731919769; x=1732180269;
	bh=X7pAjJkg7RR9F2RG6GXKRb5z5KA6bPQawpOfGyb4kXo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=vSvtLWmPJ7UfPQnS89TK3gdLWUtf8OgiElwcy5X9SdJ/Hwg72K/J5gz4zXQb4cwRi
	 N4Y6pUG/jua1stHN5nzyj+M0lCiTlyA7u87At2xtTlQJOahJHnH0HEpJaI2ooGlH+6
	 K3CEOn42vywIlFOm8i2jSkS5cKVHxMg5B39rCHGDNGWJ9GqeD9lvwz74HNp3LVa9+U
	 +a3yVxwgjHGQtKXPt5CuV+qZU2fn4KUD7FS9Zhec0/PceYpLyKgSpCVQ6+MI7fRorn
	 wL172JDrcRyA4nhHfZy87QxpqVyYmhLKk6H7T/DQKzhyb5+5DttsiNnozAMoglSMSl
	 H0Lu2bisFRsWg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731919769; x=1732180269; i=ngoc-tu.dinh@vates.tech;
	bh=X7pAjJkg7RR9F2RG6GXKRb5z5KA6bPQawpOfGyb4kXo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Q1XJg+dciNrjdkoRlczRZ5l1Ae1mgBY+VrMZjoj5tw9MCoqUPs2qb11GFJ7hyjTi4
	 sNZ/KwcXBlAbmxuNCRi/ugW2bZP+4hB63mfDBFPfzRF70lChr3qhDtIBbudj/WsYX5
	 +6Ghod2sI01CwojBnetWlF+NXV0N5v2XgouvkeaMxD/01laeqp7sbtwqyOxoMYryfm
	 8BS7cB/0M9hlYYXrQuQN6Ga4mglcCMgnw+f41TydlISEGToX9hHwWoGeUHY4ADvK8l
	 KaGq+mDCwZ4TbJC4jHoybaHKsiXByKk3SwhEi/Gmra286eM6lahuG73WlvI8U4WQ4s
	 kKysXBQ4ZMKvA==
From: ngoc-tu.dinh@vates.tech
Subject: =?utf-8?Q?[PATCH=200/4]=20Virtualize=20architectural=20LBRs?=
X-Mailer: git-send-email 2.43.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731919768412
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <20241118084914.22268-1-ngoc-tu.dinh@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.f79108cbb7fe484e862e7fcb365ac070?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 08:49:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Tu Dinh <ngoc-tu.dinh@vates.tech>

Intel model-specific last branch records (LBRs) were replaced by
architectural LBRs (see Chapter 20 of Intel SDM volume 3B). This
patchset implements virtual LBRs for HVM guests using Intel's "load
guest IA32_LBR_CTL" and "clear IA32_LBR_CTL" VMX controls.

Add the necessary CPUID and VMX feature checks into Xen. Note that in
this patchset, MSR_IA32_LASTBRANCH_DEPTH is only allowed to be equal to
that of the host's.

Tu Dinh (4):
  x86: Add Intel architectural LBR featureset bits
  x86: Add architectural LBR declarations
  x86: Adjust arch LBR CPU policy
  x86/vmx: Virtualize architectural LBRs

 tools/libs/guest/xg_cpuid_x86.c             |   2 +-
 tools/misc/xen-cpuid.c                      |   3 +
 xen/arch/x86/cpu-policy.c                   |  39 +++
 xen/arch/x86/cpu/common.c                   |   7 +
 xen/arch/x86/hvm/vmx/vmcs.c                 |  11 +-
 xen/arch/x86/hvm/vmx/vmx.c                  | 269 ++++++++++++++------
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h     |   8 +
 xen/arch/x86/include/asm/msr-index.h        |  11 +
 xen/include/public/arch-x86/cpufeatureset.h |  28 +-
 xen/include/xen/lib/x86/cpu-policy.h        |  38 ++-
 xen/lib/x86/cpuid.c                         |   6 +
 11 files changed, 339 insertions(+), 83 deletions(-)

-- 
2.43.0



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:49:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839115.1254923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxRx-0005H2-8H; Mon, 18 Nov 2024 08:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839115.1254923; Mon, 18 Nov 2024 08: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 1tCxRx-0005FZ-0T; Mon, 18 Nov 2024 08:49:37 +0000
Received: by outflank-mailman (input) for mailman id 839115;
 Mon, 18 Nov 2024 08:49: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=cNZr=SN=bounce.vates.tech=bounce-md_30504962.673aff99.v1-5969053c717d4bfb859f5f7a4154c65f@srs-se1.protection.inumbo.net>)
 id 1tCxRv-0005D3-2Z
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:49:35 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 061e5204-a58a-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 09:49:30 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4XsLsP1JPtz3sNTdQ
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 08:49:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5969053c717d4bfb859f5f7a4154c65f; Mon, 18 Nov 2024 08:49: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: 061e5204-a58a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjA2MWU1MjA0LWE1OGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTE5NzcwLjc0ODE5Niwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2FmZjk5LnYxLTU5NjkwNTNjNzE3ZDRiZmI4NTlmNWY3YTQxNTRjNjVmQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731919769; x=1732180269;
	bh=OHbPZUdflYInf3pACcvlIdJaYJKwR1NVIIEYSmzoDXE=;
	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=IkMzdBlK5IyGcizR/Wre563ZV3WIhZujNCHxh5ZW+zM4psW0C5Gxb0Wd4N0tGhPy1
	 oE9JzC9y/F/5FUxS1Kj1E4OwNWMvn7MzYpJBfTdmloLJtpah9bIMVps/B/91jxZiPj
	 nItJp68f3bFyx4Rzo7jv3sOjV1WggGueqrrBm7yTDBt4Fkri05y6kDU/tlIYIeeoVa
	 a+5ofvkvbJWrnCtC9b9tZXOmO+sMKEdF2hb60lJZpV4h1a52XYq+uxmROTd9541PWj
	 S2hn3+6U7AAbisGtcVLJNX65Uy41UBx01jFzgw2M8qESTDzaATIMYlixUa9C/eRF6X
	 SlRRoLTiXGnCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731919769; x=1732180269; i=ngoc-tu.dinh@vates.tech;
	bh=OHbPZUdflYInf3pACcvlIdJaYJKwR1NVIIEYSmzoDXE=;
	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=0q5lwBBXvABTG7aqF6HlA5nNdc7EXhJF+ILJay9j09VfEXZLTidj2SCqsMOwkyRtO
	 GeZe2A1c90XGuPy0mSpMTF/SzOiZ8dl9TrmrNiNiKRYNnqPRmlhLO5vJvhNEDjWQCb
	 0L08ZQzY+2wsPxg4QbwtNiIuMcWVPFVAd4yblizRbD0jlQpajj/SYEwMnS8Lor2uN1
	 +BhGqXqVtjcaF+vdYd9OuoWUwTWPDgSxPjDoogU1J5swfUbmWn3Z51t7D8sBmBI+4T
	 p8sg3qVjOFZpENO8QAR4zRBBqb7rfVNLQbcSu6vPAJF247yBgnlDM9JnC73jHS2YlF
	 cU0mYKSAJcX+A==
From: ngoc-tu.dinh@vates.tech
Subject: =?utf-8?Q?[PATCH=202/4]=20x86:=20Add=20architectural=20LBR=20declarations?=
X-Mailer: git-send-email 2.43.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731919768728
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <20241118084914.22268-3-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
References: <20241118084914.22268-1-ngoc-tu.dinh@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.5969053c717d4bfb859f5f7a4154c65f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 08:49:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Tu Dinh <ngoc-tu.dinh@vates.tech>

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 xen/arch/x86/include/asm/msr-index.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 9cdb5b2625..867deab3c6 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -304,6 +304,17 @@
 #define MSR_IA32_LASTINTFROMIP		0x000001dd
 #define MSR_IA32_LASTINTTOIP		0x000001de
 
+/* Architectural LBR state MSRs */
+#define MSR_IA32_LASTBRANCH_CTL		0x000014ce
+#define  LASTBRANCH_CTL_LBREN		(1<<0) /* Enable LBR recording */
+#define  LASTBRANCH_CTL_VALID		_AC(0x7f000f, ULL)
+#define MSR_IA32_LASTBRANCH_DEPTH	0x000014cf
+#define MSR_IA32_LER_INFO		0x000001e0
+#define MSR_IA32_LASTBRANCH_0_INFO	0x00001200
+#define MSR_IA32_LASTBRANCH_0_FROM_IP	0x00001500
+#define MSR_IA32_LASTBRANCH_0_TO_IP	0x00001600
+#define MAX_MSR_ARCH_LASTBRANCH_FROM_TO	64
+
 #define MSR_IA32_POWER_CTL		0x000001fc
 
 #define MSR_IA32_MTRR_PHYSBASE(n)   (0x00000200 + 2 * (n))
-- 
2.43.0



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:52:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839154.1254966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxV1-0005QN-Lm; Mon, 18 Nov 2024 08:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839154.1254966; Mon, 18 Nov 2024 08:52: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 1tCxV1-0005QG-Iu; Mon, 18 Nov 2024 08:52:47 +0000
Received: by outflank-mailman (input) for mailman id 839154;
 Mon, 18 Nov 2024 08:52: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=i7IS=SN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tCxV0-0005QA-KD
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:52: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 798455cb-a58a-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 09:52:43 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-432d9bb168cso21812825e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 00:52: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-432da265f28sm152169985e9.17.2024.11.18.00.52.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 00:52: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: 798455cb-a58a-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc5ODQ1NWNiLWE1OGEtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTE5OTYzLjY0MzM0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731919963; x=1732524763; 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=XZk+bWx9T7B8AmhurcwVX9EBFu/eX9nrjXsCVUFCAHE=;
        b=ShHf3PUTaf7tkkYMMVMi2hv4pHJBSi9KcreMIYRZG2qHAOpz5kChSUlkebUiNY1Wlx
         D6xcNCLu3QAte0dQO9yK+pBrz5w9Ik0WIBTPm8WwNCfZIYKyvsOB9ydi7fHYT4pSHAdG
         qEXX08rNvFGeyolYkW3LQ/HfpoStE+QtUBEV/y19jVzroDnIIpWWysKaz1Bvxhtkv48a
         D+6FQ9HKtHhdORcYiM6T9X+S/MS3HjE5WIkq11oordo7h5sbGOvSMvxt8tc3jMwSy9ov
         X/lcRh7qaVQlLMDDqfxEfwPjFiGWoyIV9vMtCBOPQwO2TFkSEsdH+3Bi5zeqxThts58S
         SfHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731919963; x=1732524763;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=XZk+bWx9T7B8AmhurcwVX9EBFu/eX9nrjXsCVUFCAHE=;
        b=nDf1rWCNhvbQiRcNFj8o768asame+813+CIfmEgJiJxCnXjnJb1hDRMNCl4vMibPYz
         wdPI2jtEtwXuItczNqqfHvfPYI/32YGeKYXxMEwc4AN0YLlJEWqOVvOAF6Kx69rCVVPy
         lzLeDT1ZtxZqCLxw9Dtp8InNfxW/fUz/tyr3+SBqoFQvZ7au0jZFVqJ7CSFmYNu7VO1z
         3eRcVrce8QfvRr6O76yWvvAOwVH2eYlIFlQaJP/jzJZMHhq2oOdmvfbAOp4EEsJuNlub
         1UGFVuZXJBqeM7yklqDl0/w2WKIksGeZi86jisi7J+fMAs54MYFMVT68F0XCCesYrEtO
         OkkQ==
X-Gm-Message-State: AOJu0YxbSx5cQ7xyUjSob+kDodnCRnjABqElagm6Azsc5VcBkYPbQCIW
	2Nmr3YHQitrebHQRtCvFq4mg/8Lx4clcfz9zoN7UHhEsfW0qjLxlt1BqqKj15ssOdoGiUDmwxiw
	=
X-Google-Smtp-Source: AGHT+IGi3yH+l3f+ub5Efrvmv61A8KIohaidsHlXvVX2/4BF65KV9UgUmhVTugTF0o9q/F2bObfmTA==
X-Received: by 2002:a05:600c:1d1d:b0:431:3b80:6ca7 with SMTP id 5b1f17b1804b1-432d9767819mr143916025e9.13.1731919963071;
        Mon, 18 Nov 2024 00:52:43 -0800 (PST)
Message-ID: <7706bd63-8f26-4eb8-8dc0-67b302597e3b@suse.com>
Date: Mon, 18 Nov 2024 09:52:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Virtualize architectural LBRs
To: ngoc-tu.dinh@vates.tech
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
Content-Language: en-US
Cc: 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: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 09:49, ngoc-tu.dinh@vates.tech wrote:
> From: Tu Dinh <ngoc-tu.dinh@vates.tech>
> 
> Intel model-specific last branch records (LBRs) were replaced by
> architectural LBRs (see Chapter 20 of Intel SDM volume 3B). This
> patchset implements virtual LBRs for HVM guests using Intel's "load
> guest IA32_LBR_CTL" and "clear IA32_LBR_CTL" VMX controls.
> 
> Add the necessary CPUID and VMX feature checks into Xen. Note that in
> this patchset, MSR_IA32_LASTBRANCH_DEPTH is only allowed to be equal to
> that of the host's.
> 
> Tu Dinh (4):
>   x86: Add Intel architectural LBR featureset bits
>   x86: Add architectural LBR declarations
>   x86: Adjust arch LBR CPU policy
>   x86/vmx: Virtualize architectural LBRs
> 
>  tools/libs/guest/xg_cpuid_x86.c             |   2 +-
>  tools/misc/xen-cpuid.c                      |   3 +
>  xen/arch/x86/cpu-policy.c                   |  39 +++
>  xen/arch/x86/cpu/common.c                   |   7 +
>  xen/arch/x86/hvm/vmx/vmcs.c                 |  11 +-
>  xen/arch/x86/hvm/vmx/vmx.c                  | 269 ++++++++++++++------
>  xen/arch/x86/include/asm/hvm/vmx/vmcs.h     |   8 +
>  xen/arch/x86/include/asm/msr-index.h        |  11 +
>  xen/include/public/arch-x86/cpufeatureset.h |  28 +-
>  xen/include/xen/lib/x86/cpu-policy.h        |  38 ++-
>  xen/lib/x86/cpuid.c                         |   6 +
>  11 files changed, 339 insertions(+), 83 deletions(-)

Looking over just the files touched: No change to XSAVE logic at all?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 08:58:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 08:58:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839162.1254976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxaP-000683-7S; Mon, 18 Nov 2024 08:58:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839162.1254976; Mon, 18 Nov 2024 08: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 1tCxaP-00067w-4x; Mon, 18 Nov 2024 08:58:21 +0000
Received: by outflank-mailman (input) for mailman id 839162;
 Mon, 18 Nov 2024 08:58: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=i7IS=SN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tCxaO-00067q-0C
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 08:58:20 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fdd6d45-a58b-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 09:58:16 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3823e45339bso948627f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 00:58: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-3821ae161b5sm12340969f8f.74.2024.11.18.00.58.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 00:58: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: 3fdd6d45-a58b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MjkiLCJoZWxvIjoibWFpbC13cjEteDQyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNmZGQ2ZDQ1LWE1OGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTIwMjk2LjQ0OTQyNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731920296; x=1732525096; 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=8RdBtlZDrFbDSXsAJA/Mbsbr4mYFQZDkWIGKaPDcbE4=;
        b=SffPJwqmFYLGCZSyYRohm8HyZXiJyT3b1xa2ReB4K8VxXIMePndCz0nSAR+Eh7UtBd
         zUIjGTg9oLaoG23F10qU6f8vl89iIOHpGpmyQGo74pC0YPy4FpodYYyk/AoMG6Qrs0S/
         hxv24GfWC7WFAqVcvnrCzYCdzGdIkFbBCbxW1+WM+MSRiNF+TDlUodTu7rdrujEyohM0
         mGHwvkhtfONNXkGfYrc/JPPpdXQ/pk+Kk+R4EKR03hBIsUprBzZjTbEZ19c/44h/TqUb
         +Gl4ZRfLLDK/RhPiNvdO7OXEso9L+hwQohCtyzsNslDRk0do8D4CZrYzP2Ugl0N5MbUi
         9TDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731920296; x=1732525096;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8RdBtlZDrFbDSXsAJA/Mbsbr4mYFQZDkWIGKaPDcbE4=;
        b=dt6gSVtm73ZfBUUtugs2VhZ6jNkPsgKLYVaPCBVbmpu8opjJzOCJEXQWpCqsP7xwh2
         ilwGtg8ZxWybKhgOqT8r1hoDAY0ciUzvGi3xZx0nX1p9DHSwg7YSKyId78i89Df9+gU6
         RextOuU8FouCYEQozZ8ttJgAz+KDmTOTg14OwuG4rEYceTAKKl3SA1FMLPkkRUin9MaW
         l/dICqszIfvCf9NbOqL/m203ZJ94ckF3rDxWUvMRFbpYVKI0IOxzOFODP41m8ghDOTa3
         mvQ1OFq/jlnrTcD0/02aP0SvQq3/4NN0sr6MI0GCXOY3QCIl74m4cNJzYyT05hYlr+Xe
         gA+g==
X-Forwarded-Encrypted: i=1; AJvYcCU7Svp/V3ksdvZqYY8Mzqsf11Sj5HTFy5QWAjtNcqSVH53cALcVF+FOeD6WxTKb+05N/cTojS6rISk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFxb3pDZfVm7RjDXvIIoUSNOKPWNSmlBYUa9Nug4ARD2ftjqBw
	0erCK3WcV/oWyVCDPzVTy4ZWD+7n7DfD2G5u3JrTdfT+BMPhqQ+IoGOK9jnuyGCF2e2wNrcrRFo
	=
X-Google-Smtp-Source: AGHT+IFNHh6qT8MWTtlxZel2NXnNF8PODY+O9vLPU2n4Ini1/W+Ian5+xx8azu1Esceh+gRLCqIHSg==
X-Received: by 2002:a05:6000:4029:b0:382:4460:49c2 with SMTP id ffacd0b85a97d-38244604d59mr3065749f8f.33.1731920295858;
        Mon, 18 Nov 2024 00:58:15 -0800 (PST)
Message-ID: <782b24a0-a960-4667-a183-1e270841d2a8@suse.com>
Date: Mon, 18 Nov 2024 09:58:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: increase identifiers length to 64
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: alessandro.zucchelli@bugseng.com, simone.ballarin@bugseng.com,
 consulting@bugseng.com, andrew.cooper3@citrix.com, julien@xen.org,
 roger.pau@citrix.com, bertrand.marquis@arm.com, michal.orzel@amd.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2411151617580.1160299@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.2411151617580.1160299@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.11.2024 01:23, Stefano Stabellini wrote:
> Currently the identifiers characters limit is arbitrarily set to 40. It
> causes a few violations as we have some identifiers longer than 40.
> 
> Increase the limit to another rather arbitrary limit of 64. Thanks to
> this change, we remove a few violations, getting us one step closer to
> marking Rules 5.2 and 5.4 as clean.
> 
> Also update the ECLAIR config that was actually set to 63 as character
> limit.

What I don't really understand: With the Eclair config already having said
63, how come we did see patches aiming at dealing with the limit being just
40? IOW - how would those (supposed) issue even have been spotted.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 09:14:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 09:14:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839179.1254985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCxpZ-00024Z-K6; Mon, 18 Nov 2024 09:14:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839179.1254985; Mon, 18 Nov 2024 09: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 1tCxpZ-00024S-Gp; Mon, 18 Nov 2024 09:14:01 +0000
Received: by outflank-mailman (input) for mailman id 839179;
 Mon, 18 Nov 2024 09: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=0ZrC=SN=bounce.vates.tech=bounce-md_30504962.673b0552.v1-fd6b31ca697945b3a63ff6027e53d83b@srs-se1.protection.inumbo.net>)
 id 1tCxpY-00024M-Dy
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 09:14:00 +0000
Received: from mail136-26.atl41.mandrillapp.com
 (mail136-26.atl41.mandrillapp.com [198.2.136.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 700d0187-a58d-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 10:13:56 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-26.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4XsMPZ0r4ZzJKF3ZP
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 09:13:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fd6b31ca697945b3a63ff6027e53d83b; Mon, 18 Nov 2024 09:13: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: 700d0187-a58d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yNiIsImhlbG8iOiJtYWlsMTM2LTI2LmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjcwMGQwMTg3LWE1OGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTIxMjM2LjkxNjAyOSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2IwNTUyLnYxLWZkNmIzMWNhNjk3OTQ1YjNhNjNmZjYwMjdlNTNkODNiQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731921234; x=1732181734;
	bh=WouQcZAEK/8SLk7RaUwHr+bca8Ub1zIh2pNeO4fqFyE=;
	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=Y4c0JR+N1RfpXolGEi3/5dCDhAud+Vx76L6/Bw88oZzgo+wlPCHkLDbu+XXZUyXXi
	 qujgRyrxuAQ3ZDqu5gmb6NYdMVtWv7CgNxyFLCF3LcSrZRo/ExFiF5af0Vi7+fz7q2
	 1N47vDlQdwSTfGNjjqf3+iefYiDP8xuPAy3FLyNOVcaQo6Q/VFy4ENPkqPMdxu0qh1
	 B4LQIK11LJ6OAijBbv2ksvwAZS8DBL+ZslT5RSFT/C2OrVk2ZjzYSWrGBGgvbp6trD
	 RnUWOuDPwx7az1GFAW9COpIHAK4wu/aHsDkCuapaAdedE8OUlQ7TdKUH1VInyfn62T
	 5TVKYVywiIOBg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731921234; x=1732181734; i=ngoc-tu.dinh@vates.tech;
	bh=WouQcZAEK/8SLk7RaUwHr+bca8Ub1zIh2pNeO4fqFyE=;
	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=Qji+wJaZvZaYcbOv27y7bguECfonCuib5IUuqmvfxedfCDlcQWXPPbow0AvHWcfzF
	 6iYwN1PxYh3s0xUvlBHv0IzZU+58crzqWDLj2Ph2X2029UxrwU3pXkbhwrhjaYLZ5e
	 re4zSZaGo/ZJNMYLeAPjl/isAojJqoIuS6iQtouFnCGSw5ZsKPBNZ/HviLAdB97Q5L
	 +RZzMfx0vVQ3jS0mPDZzIevdO99smj3aS0YdtkYxwpcXT3se+EVtxnWojJa6zx3DXw
	 Tej7tzavhPGhuQQnihzP6ciUqW/f0ULijiEP71nIfhPn7KxGbk2qO69pZX4qXNTsqW
	 nEeESbfzJwrNw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=200/4]=20Virtualize=20architectural=20LBRs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731921233544
Message-Id: <3f75df1d-f397-487f-9b81-d7740712b924@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech> <7706bd63-8f26-4eb8-8dc0-67b302597e3b@suse.com>
In-Reply-To: <7706bd63-8f26-4eb8-8dc0-67b302597e3b@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.fd6b31ca697945b3a63ff6027e53d83b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 09:13:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 18/11/2024 09:52, Jan Beulich wrote:
> Looking over just the files touched: No change to XSAVE logic at all?

XSAVE is hidden behind a new IA32_XSS bit. I'll try to implement that next.


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 09:27:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 09:27:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839187.1254996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCy2D-0000TF-O6; Mon, 18 Nov 2024 09:27:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839187.1254996; Mon, 18 Nov 2024 09:27: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 1tCy2D-0000T8-K0; Mon, 18 Nov 2024 09:27:05 +0000
Received: by outflank-mailman (input) for mailman id 839187;
 Mon, 18 Nov 2024 09:27: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=91/F=SN=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tCy2C-0000T2-2z
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 09:27:04 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20607.outbound.protection.outlook.com
 [2a01:111:f403:2614::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42ba099e-a58f-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 10:26:59 +0100 (CET)
Received: from AM7PR03CA0020.eurprd03.prod.outlook.com (2603:10a6:20b:130::30)
 by DU0PR08MB9132.eurprd08.prod.outlook.com (2603:10a6:10:474::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Mon, 18 Nov
 2024 09:26:53 +0000
Received: from AM4PEPF00027A6C.eurprd04.prod.outlook.com
 (2603:10a6:20b:130:cafe::9d) by AM7PR03CA0020.outlook.office365.com
 (2603:10a6:20b:130::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23 via Frontend
 Transport; Mon, 18 Nov 2024 09:26:52 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A6C.mail.protection.outlook.com (10.167.16.90) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Mon, 18 Nov 2024 09:26:52 +0000
Received: ("Tessian outbound d013e61db77e:v490");
 Mon, 18 Nov 2024 09:26:51 +0000
Received: from L2e49239403f1.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 8F464A41-4937-4909-8D69-D802D70B3F4F.1; 
 Mon, 18 Nov 2024 09:26:45 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L2e49239403f1.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 Nov 2024 09:26:45 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DU0PR08MB9321.eurprd08.prod.outlook.com (2603:10a6:10:41c::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.21; Mon, 18 Nov
 2024 09:26:42 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.023; Mon, 18 Nov 2024
 09:26: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: 42ba099e-a58f-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjA3IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQyYmEwOTllLWE1OGYtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTIyMDE5LjM0NjA1OSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=aZVx85zyRKSjUPQlb8AVwpN7Qd276yzIqmaiPMHAPwQxNJHZTEgM89aQ7wN6xCNyukm+x8/+H1q+TKR7onOSSGwQkar1NFD/BE0YgrHh+gHqmAsn2BoIaj16klJcpLbS0fimGYYeShfLcLNr3KNtOkI65w9nZiOW8DJpudhNM5quRl39HLZtVKW2IKvD6a7MBYi7DXefgjEZWJrg+uGHXC7/NxtpnXAwD2SmfGTwOHalNyeV7eWi0NBwSF2oqBD+vk/XP6olRV194o4VbcIMiQEqOdUkOpVXlEPmxuM8s2CfqJLWlIh1iGSymxQddsKD9W5Xut6xN4LJUgFB74rsVA==
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=AjfDe4ftPxQF8j1BRyobcwMfo20svTID/ViM8jf14FQ=;
 b=QzaG3IGrAHBUbdg4lT41ZsGngbjLWmiA/JCqi4tf0Cb1amNhvpoE7ZhH7QyOOKPG1OG7Bhi6Zn5euJecGVhJ5Ycr0hqzIOoW4ptSnEhM7Up91rg4O7e2m30uEx2rpU7np48UZrMLMMz73rwuoTDgDNQWY8fReBMbIfz64C6seH+54dImMPXe+Lcr46dpsjYghQTCUIoPL9yHktadWOFSbnjjLSexnajLLhPdzlst35utAW6aGK5CQ0+Wt6QaDeot6M2morDIMu0X4kZT3sYLp50c7mS9K0o8NeYopCSjrcFVrjD9o4MzZ5u5FNLa3U6JvLjTFj+JcRsN5YYOz1lgPA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=AjfDe4ftPxQF8j1BRyobcwMfo20svTID/ViM8jf14FQ=;
 b=IOgAggyiGRDjo8RTxgJBgel3dEICtO4UijJytLCXeXPathTjXAXcTCZC3KeNSZIrDDDTX6vDzfxKknxEqHIqfcvQZNnnzi4o0qCKmuAEIIT/TZgwiYFFIyjMS7Bwa4Iw+ww9To6PbSr5HkawdLLeEVeRKY/4JAXj14N9CE2AiWQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: e80a016e1d42cf25
X-TessianGatewayMetadata: 6WljJtlsZATCD2ZFaIiQNQOid+DOhoItQD++gsgeNneGcx8vejjWAJYx6Bcy7ZQN/Re9n0nBnAU3MZtTyQBLeStgtAebzKW+YaQQ/hGW7KfPAbJfTT5htHgLQMdGZisddeep1ufu3qluWx3wzwN8Pd8aY5FKHDIHQEBDK3ou0I4=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sBIAzX7LNuggu1SCRGXkyBJPkZ/66xtSy8G9JXUkCK4IptCL5GdVWoz7kEcR9upMRJdQezrzwwbi9BcCZJzAtZCKM+D42X4WGcfBHbN6BC4AhhEN5md//xBNTNB+YZYd47Pt0pBDFLSlXNOO2wcG+TFOj6SwXZk+J/PZQrFRNGgHnBibGY7HF3tYt/HJHe9G9lrQoWSXXzWGaUAM1H9RDk9eu4rcUD2dKnkqkA9pk8+epzWzgUvanUeLKp2zchBUgj0vgsea0LGpdjUgEndnd44OuWi7JphisyaYgrW/C2c2/j+XqG9LiLDvgP49x7YjvH0wLSv7FzeuEbe3swsu/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=AjfDe4ftPxQF8j1BRyobcwMfo20svTID/ViM8jf14FQ=;
 b=YhE9BjaNSx/cafvv2PlHKwcOkXxQ52K6aA0Z70ls+MdeGgLkWrn2v/FxmFVzkEdDxQUDRIn4nANtx0iiyGanoTRNzabfHL0LqmocVDbUk7Kx8/ySpDLVLtJTQSjnNELoxYqK1+vyQ3esDieGuZFp6mKey0GbDtYmNozh3imiVArc9wukHTxczHi/dh26TZN2oel8XUzZY207Mum+7kPdz190uexKBkzK00dNWQnCGOq/kXCXtd49CMawLtRMOQ/tjxhFvnJVJQHGiiOVwCnc1tBEXfqJjT2wa200CI/AnokElHSiWiTntvg+ZLCkI7oc53lZrkphwDU1wpNiDsRNBQ==
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=AjfDe4ftPxQF8j1BRyobcwMfo20svTID/ViM8jf14FQ=;
 b=IOgAggyiGRDjo8RTxgJBgel3dEICtO4UijJytLCXeXPathTjXAXcTCZC3KeNSZIrDDDTX6vDzfxKknxEqHIqfcvQZNnnzi4o0qCKmuAEIIT/TZgwiYFFIyjMS7Bwa4Iw+ww9To6PbSr5HkawdLLeEVeRKY/4JAXj14N9CE2AiWQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: "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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH 2/5] arm/setup: Move MMU specific extern declarations to
 mmu/mm.h
Thread-Topic: [PATCH 2/5] arm/setup: Move MMU specific extern declarations to
 mmu/mm.h
Thread-Index: AQHbN0xKZ7YiM4TBAk6CEhVFsS12wLK7wp0AgAEGmoA=
Date: Mon, 18 Nov 2024 09:26:42 +0000
Message-ID: <F6E75602-5373-4E92-880B-E0280178E488@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-3-luca.fancellu@arm.com>
 <e14ff136-f74c-43b6-aa7d-1c88f56f805d@xen.org>
In-Reply-To: <e14ff136-f74c-43b6-aa7d-1c88f56f805d@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DU0PR08MB9321:EE_|AM4PEPF00027A6C:EE_|DU0PR08MB9132:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f200d32-bf09-4fa8-baf2-08dd07b322ea
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Zjk0bHFUMlIvL3JVUzNjOXloOXRQSjc0anIycVoyY25QSnlyVWFGUnUyRklW?=
 =?utf-8?B?N0hvL0VieE05YUxaZmhwcnZkbkc1eHZmSTgwUlc5RzNCYnNhcTh0dysva0dF?=
 =?utf-8?B?TTZ6VDlQMkxKVytlSGlSbzduM0dsVDltTVI1THJ6alAzU3dYQ2Z4Zkl2dTVm?=
 =?utf-8?B?aWd0SUdHTXBVS2RYSXRBSDFzYzAydEtJV2h4UzM5RE1mYUhQblQyeERpSGtq?=
 =?utf-8?B?d3I4WWNIQ3FEeTdMKzl0Z0Vob2o3S3FQZnV6KyszOGJFamxVUC9kU0Y2dDNS?=
 =?utf-8?B?bVczUjdRdk5XV204OWNyTFFxcnFUMmNyWW1PYkgvVEdQYzRNaHpiaTNaUVFj?=
 =?utf-8?B?QVFUNHdTZGptbVJkMDBSVnF3dXBmc2MyV2FOcWV4UitPUzh2eXVEQUg5NXlw?=
 =?utf-8?B?VGZTeGh5akZvdmFCN1ZQbzQ4V2dMdE11Tkx1dWtLV2xoNktRRkswdFJWblBU?=
 =?utf-8?B?RFRmSHU2OGtKZzgyVW1hdi9DT0p4WGhJdklHSVh2K2pWaU1WT3FmVUgzMWRS?=
 =?utf-8?B?aVZJbEJidVM3NGVTYktBTEU0bVVzblh1dllNdXRPMHk3Q3dhclZrcm5ZZkUx?=
 =?utf-8?B?eXh5bnU5YlVGalNwVVd0clZEYnVOR080MVR6VVpaVzUzK0FGa1pFTTdKQVVM?=
 =?utf-8?B?cklXTis1VU0yMzVMT3Zoa0xMWmZicHdpWlZaZmpxRmVpMEtibkZ5M3p2dVd1?=
 =?utf-8?B?OXNXWVozSUU3emtLRWZnRGVyaGhIbjAybi8xaW53MUZDQXM2MXJQTWtBVUFC?=
 =?utf-8?B?NkFJTldKWFRCU3luTjNrQUZKMGQyeThheHBFY3FlUjlVMGNWSS9hZkVlOG5k?=
 =?utf-8?B?bTBSSTZ6cDZpd01mK250eTdrZWZ4VHh4U0E3OW55U1ZHbXNSUHFGQ3NieFAw?=
 =?utf-8?B?ZE1HNlpxcjczTDdjYkpkQ2J1UkdCdDZXSTJ2KytsN0tJbmlCR290MDlZc3E1?=
 =?utf-8?B?Y3dRNnJGZDM5UzBJVzA1TDI5OEllZzdWQWFzY1lSTVplY2htS3J5RnhQVU1R?=
 =?utf-8?B?UUwzWGhNelo5WFRBU3k5MFlNQm1jUlVWd2RxcTQ3N0dnREtuWDdaTnZMN0sz?=
 =?utf-8?B?TjJUamxidGlOWWRpZXdwUnVsOUgxMUVHTG5PQnljY0wwN0VPekpOdlN1MUxY?=
 =?utf-8?B?Y2dxSXFoK3k2K3k5Z29LcmxYckt6dkltakUwejZZc0g2S1NIMmN6TGdYSURn?=
 =?utf-8?B?VjhSNkxqZytYajZlK3VwMC8wTFB1Ung3TWd0VC8vcGhaSFFRQ2lEcFp1NHc4?=
 =?utf-8?B?dVVKeHVDZUlvOXhNMUhOMGlRdzExWC84VFBMVmZja1JWeDdoTCtLVFRzTU5v?=
 =?utf-8?B?dDJITURXUmFyTi9vVyt4a21ZbC93UUM4WHlXUlRwUldzTmFnYnNjZHdZOEtU?=
 =?utf-8?B?d05Hb003LzN4RGNCNWF1bDBEdkhUNHRaaVNXU3VhaXIyNlZzTkZ5eStYZGRr?=
 =?utf-8?B?Ulh4TmpYbW9rTFZZWVBmKzFVT0loOUh3akJmeEV0dDNYdU1KYkN6UTNFU0RB?=
 =?utf-8?B?S3h3NXg1a3Q5MWRiUjhMOGk0c1BXMVQxT1hScE9PZGpsczZ4TEI5NG42NU5E?=
 =?utf-8?B?eG9GYjV3MFE4ajBrYUxidUkwcWZoZjZIWjBQWGI0Z3M3ZFdPSXBCeXN5a25V?=
 =?utf-8?B?QnhqN0w3V1pYSDlWZ0dnQUVyWi9pZWFXVk1pUEtEcytpVU40bkpHWWg1dnZF?=
 =?utf-8?B?N1NPRmNNQW5lR3NGY2RYVmdXeTZHaVRra2pJSDc3eW16dGJmKzlyRXdhenVD?=
 =?utf-8?B?OUpYOEUwSlhkTkEyMDJaV1dXUkdtV29xd21kMDdIM1pNZG9XZjl5ckZkc2xT?=
 =?utf-8?Q?S3D14akk33XI4p60NJZyaz06ekt37JAkDT/2w=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <6B015B091F384243AE3DCF13807AF737@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9321
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A6C.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	198e7ff5-5355-4611-01a7-08dd07b31d06
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|14060799003|376014|35042699022|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZlEyYXpVb2NUbld3V2Q5cnM3ekI1b1dhWjRtZ1VqUTg0M25FZDdLS3R1eUhu?=
 =?utf-8?B?K28waGxMOUFhbW9WOFdMNmsrU3VwWm5PNE1IRGk5UGZSQ24xbTVRVmFCcVhO?=
 =?utf-8?B?RDlaakZqa203K3pzQUJGNUxIcWpOVHJacTFnN20rcXB2U3VSRW5pNC93dGRn?=
 =?utf-8?B?Z3dVUC9Ob1RhTmZuTVFSeDdCNS85aUoxSHpWZms4QncxQnlrUHFiOWc5c1lw?=
 =?utf-8?B?dGw4OVNoS0ppV0pkei9nZmx0M2xpVHIvMGhxaGl3NS9DY1N0M3BZbDIxMmRW?=
 =?utf-8?B?R2tlL1BZNXhPUFJQUkh5b21LamRnVjRGd0lXaWZjVkp1ZFkyWGs2cHkxSnpQ?=
 =?utf-8?B?UVg1a3FTVmtTUldVQU1COUQwUEI2VHJXSEcwcWxzQUJ6NTVHdWNleGNLOWxI?=
 =?utf-8?B?L3JCTUUxMXRmWStTWFFsRHVwM2FnM1N6ak55SGMyY2p1OHJQNHBCcVc5L053?=
 =?utf-8?B?NEJlL3cxM2ZzQWhQb25JdG5Ia2NUT3pESlNzWm1mK2hBWnl0RElrYm1kNnNY?=
 =?utf-8?B?SzQ0RHRDVzB2clpyTm5seXFWYlN0N21za1I3YzRmbHBkMHdTcTJUeDQwejBt?=
 =?utf-8?B?dXN1aTlDVWFtT1pjWDBzU2tkWm1FbE8vTkR6M2JmV1c4UGhjR1NGSFlwdW9Q?=
 =?utf-8?B?RGdMb3QvRHYzWWxqbkpUZ08vVDJtRkF0VS94L002dmFIeTRjdHhXL3RleUYv?=
 =?utf-8?B?MTI0bVREbzJaeHRDY3NIK3kwRTd2ZnAzcHk4QUtRSTVxUlZESnZESmxERnk2?=
 =?utf-8?B?Q2pIaGdaWldWanRQUWF6Zm1iLzFiZnNoOXFpNWxwMnNtRGRoN0NoZkoweWdv?=
 =?utf-8?B?MmlQUjcrQ2p3RzVkaDFndEEycWNkL0FDSUQ0UEpiYzlHQmxPSVBFbDBpQS9a?=
 =?utf-8?B?YmJqU2xLam8zODBWQkcybmtPTTNibTNrdGE5bGVQTXRMOWJiRlFpcUhpNjg4?=
 =?utf-8?B?anpoMGF5T2FNV01GRmtnSHBTV0xaMkJsWjRhUUYxWlNUSXhOakpVcUJ5V1Za?=
 =?utf-8?B?bkllRHRVRlJ5NjM1SHlKaU91bHd6VmpibUJxbWpYaWhzczUzNFIxcGhFMER3?=
 =?utf-8?B?UVhBbnlWWEl2WVZ4M1dNZHNEWTRXMlYzZHNpMGRDRW45TXFxNDdlQlIyWlIx?=
 =?utf-8?B?YjVEL3Z5ekxUWXJETlh4alViTFh1bXJGTXlSYVZuUU9ia243SGkzeXlXTnlO?=
 =?utf-8?B?YktiMXBTQngxb3RaUmtnMXNMejd2NmRmVWFJWE9nNjQvWXh4RFhEYUVzbHBi?=
 =?utf-8?B?anJHRXlRSkxRbXBIQ2l2WTJLZUQvOEY2L0xnclh6KzIyd1JzYkR3UjQvVnRs?=
 =?utf-8?B?RFVhc2Y1bjlFa1FNKzdDUy9VSnZuWURWaE8yVHY5b1pJVkJKVkJyb2RsS2Ni?=
 =?utf-8?B?a2xEV2N4ejdtd0ZsUUVxZVZSOE05RUU1aUhUayt2Yk51ZVdRTk5EQUxTOHdL?=
 =?utf-8?B?RVBSMnRpamVyV3lOR3pPY3JTNHFjK1g1VnprSmpFcGJVbnY0V1gwZWFEVy8z?=
 =?utf-8?B?c0toSjFPMkd4eVZWWDJvSDRZdmM0SExuM0MzUzJ6UFdxU0NHb2s0akNXd3pk?=
 =?utf-8?B?SXM0clAwdERhbWZJdEJTSnpVR01IYXdtVzREa0d2WWZZaDY5cUc1VUtUZUd0?=
 =?utf-8?B?S0swYTBLNkZMMmtGVWwzejJWblB0dzQ4TFVMSFVweVpJeHpiTXVTREFaQnZL?=
 =?utf-8?B?eS9mU0xTK1dtakVkWkFrZDhxZ0l6OXlBRWdYNG5RM0hoU3FncThJNHdTaGtO?=
 =?utf-8?B?S0Z0dm54Nmh4eW9jVmxXUHg2dTNsK2FKNFZpVU00K2hQUWFoN1BBQyt1bnYw?=
 =?utf-8?B?QjZ5U3FqTzhWOHJkTkFHMkFSY04vNVp5aWNpN09WV2lTckR0SGk3VGRvT2xl?=
 =?utf-8?B?cnM2Ny85SWg2MDZmdVNSSFovOTVJTTVQanB2Sk8xRFNETmc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(14060799003)(376014)(35042699022)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 09:26:52.2202
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f200d32-bf09-4fa8-baf2-08dd07b322ea
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A6C.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9132

SGkgSnVsaWVuLA0KDQo+IE9uIDE3IE5vdiAyMDI0LCBhdCAxNzo0NiwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMTUvMTEvMjAy
NCAxMDo1MCwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IE1vdmUgc29tZSBleHRlcm4gZGVjbGFy
YXRpb25zIHJlbGF0ZWQgdG8gTU1VIHN0cnVjdHVyZXMgYW5kIGRlZmluZQ0KPj4gZnJvbSBhc20v
c2V0dXAuaCB0byBhc20vbW0uaCwgaW4gb3JkZXIgdG8gaW5jcmVhc2UgZW5jYXBzdWxhdGlvbiBh
bmQNCj4gDQo+IFlvdSBhcmUgbW92aW5nIHRoZW0gdG8gYXNtL21tdS9tbS5oLiBCdXQgSSB0aGlu
ayBJIHdvdWxkIHByZWZlciBpZiB0aGV5IGFyZSBtb3ZlZCB0byBhc20vbW11L3NldHVwLmggYmVj
YXVzZSBib290XyogYXJlIG5vdCBzdXBwb3NlZCB0byBiZSB1c2VkIG91dHNpZGUgb2YgYm9vdC4g
U28gaXQgaXMgY2xlYXJlciBpZiB0aGV5IGFyZSBzdGlsbCBkZWZpbmVkIGluIGEgc2V0dXAuaC4N
Cg0KU3VyZSBJ4oCZbGwgbW92ZSB0aGVtIHRvIGFybS9tbXUvc2V0dXAuaA0KDQo+PiANCj4+IC0N
Cj4+ICAvKiBGaW5kIHdoZXJlIFhlbiB3aWxsIGJlIHJlc2lkaW5nIGF0IHJ1bnRpbWUgYW5kIHJl
dHVybiBhIFBUIGVudHJ5ICovDQo+PiAgbHBhZV90IHB0ZV9vZl94ZW5hZGRyKHZhZGRyX3QgdmEp
Ow0KPiANCj4gU2hvdWxkbid0IHdlIG1vdmUgdGhpcyBmdW5jdGlvbiBhcyB3ZWxsPw0KDQpUaGlz
IG9uZSB3YXMgbm90IHByb2JsZW1hdGljLCBidXQgSSBjYW4gbW92ZSB0aGlzIG9uZSBhcyB3ZWxs
Lg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 09:28:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 09:28:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839194.1255005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCy3G-00016h-3f; Mon, 18 Nov 2024 09:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839194.1255005; Mon, 18 Nov 2024 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 1tCy3G-00016a-0w; Mon, 18 Nov 2024 09:28:10 +0000
Received: by outflank-mailman (input) for mailman id 839194;
 Mon, 18 Nov 2024 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=91/F=SN=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tCy3E-00016Q-Pz
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 09:28:08 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on2060d.outbound.protection.outlook.com
 [2a01:111:f403:260c::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69781fd0-a58f-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 10:28:04 +0100 (CET)
Received: from DB7PR05CA0063.eurprd05.prod.outlook.com (2603:10a6:10:2e::40)
 by DB9PR08MB9443.eurprd08.prod.outlook.com (2603:10a6:10:45b::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Mon, 18 Nov
 2024 09:27:59 +0000
Received: from DU6PEPF0000B61E.eurprd02.prod.outlook.com
 (2603:10a6:10:2e:cafe::78) by DB7PR05CA0063.outlook.office365.com
 (2603:10a6:10:2e::40) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22 via Frontend
 Transport; Mon, 18 Nov 2024 09:27:59 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000B61E.mail.protection.outlook.com (10.167.8.133) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Mon, 18 Nov 2024 09:27:58 +0000
Received: ("Tessian outbound 70f2252b2aaa:v490");
 Mon, 18 Nov 2024 09:27:57 +0000
Received: from L685e0a3d5116.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 4A8E8D8B-1546-45FD-A67F-02BCDECD5BDE.1; 
 Mon, 18 Nov 2024 09:27:47 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L685e0a3d5116.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 Nov 2024 09:27:46 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DU0PR08MB9321.eurprd08.prod.outlook.com (2603:10a6:10:41c::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.21; Mon, 18 Nov
 2024 09:27:43 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.023; Mon, 18 Nov 2024
 09:27: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: 69781fd0-a58f-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwYzo6NjBkIiwiaGVsbyI6IkVVUjAzLVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjY5NzgxZmQwLWE1OGYtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTIyMDg0LjU4Mjk4OCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=w9wyMP99Juit6KvdP+DNJ/Nm9qaTLYzmADjRm+JOeaTnN2TLE1nEGtABonziBcOWEWv2kFljdl7mJUc1JQ6Y6xAGKuyj2ofm4e0V9mhlkY/bIqi0MfBdXeJ+2fOF27acHf0O49VcU6AJGmCXQXk58u+JsPckDody8JF8WkZaQBwB/erH6tS+Zkd2REvlDI52NihOBQAjQ6CEICMDAEOwNou7GO29WydEpdZg+YpdM9kqAgte2uSEsaboRgUyeOYL7ZKFOyvOGXmZKec3bLsusIT8hVP3v5esX1KhCMNGGyCPpTjnATAXy5D+TMDR3MaxJPTaZ2CqgAq1zChlcYF+zQ==
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=l0oLy9dmSiRMZjrhCGjCbaX76T82uwBQA0SOrJp3Uxw=;
 b=iWhpvorJ5z4wR3RGRrWD/UA9FPv/zD3h5waRiKjhHEkedquVjpr4sg1BYoRYcAT0Gra1TRqTCZdpYRK+y7ap2sztnDzM/x4YppVW/6T67lLOgw25C9ZyzaepWJomjIBxcRv7rV4YQjY5/ROjp+m0SUgwGJNj8VR5CNRITiTduU4W0+Pn7KjwtPCEYTkz/ox08PfRdIV9Bhfl40IT43Cb8Toi3r6GZ54pAYbv9InW0pKMdkkSW+ZueV2yq/6L1WLmXdVOroqgPfJKy0KNiH413txsQr/6wJjD2kAQ7UjdAtGNiquGNP3qCgv8XHGdota0RhU7W5+LRMR9Gjwq6T+nzw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=l0oLy9dmSiRMZjrhCGjCbaX76T82uwBQA0SOrJp3Uxw=;
 b=cqu97zmRj1g+BWvhATCIJJEA5MtOM9LLBkFvM0AvcgBTq/puAJ3GQgCyEURTFFaoXZnkMwpfcdLe6CtHG7yaQ7wWr42vZKWmPVTDVCXjy3bZC9WjnUxUFmmuLiFWfpnmpeeNrlV03G4J37e7VSF5jfmM6E+ceJtd/Qv45I/lx8E=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 204694def4ebc5b9
X-TessianGatewayMetadata: Is22aFVKgsfH7KnFVjJc7jLf1NFzUEMIx42lgB5JdgQdPM48sqwp6w9rW/JSmTnJPbXzZlUzWNchR2XhUACdCH4XzZger/ww0X1O1VYbT3kEte83aERyZNSnwT/9BLOfbZrM5M4dpd1tQJop2m7gpyYo4vf9Lnb1I3MskvWnzgE=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yxCv2TuyERX5nO3Mv4sHhNrfEM0PEvWNfeXDFSm+eHCAwBHi3xU6Q+VIeE5PXkvpAN6L+Yowv8G9d9LXuHs36sAiSzhuRKlJE2mQaBjnKro/w59KlrRkxuJ24AJGE/Vzb9X+y8JxuPKetQlluXc1CUNLxMF36fFkhYZ4xHT8+uECnVRysfp3QJP2Vf8UbJcHBOg/V3wPtR/exCpfAWDqx1phmNM8X6ryRATJpR19v5ddgiLWxpWvhSeRl2aMGY3LWWuCeD9AqjuLHxAHfrPIclaa+pyU1Q+ZJ6IFTPf/skxRjRWbACWT2GuNkgowLsZg8mMhdro/hgrPjMtynxLyTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l0oLy9dmSiRMZjrhCGjCbaX76T82uwBQA0SOrJp3Uxw=;
 b=RUnGxbT+Hpnd5b0kgB1SZ9gOZTYGpcV1zyS+bzByzFeZ1n5Z9IBrg9eo+IpwqIQe0WCRFcDcH795AEYhQQnwSs88+ut6hDb3Zc999SMpFvQuHkqwZDQk8gdrv0T6xTCbq/kQD/kVCoonFWyzYhjmG0EI3l7x44+k9ziyKwmanPK85tV3Lg/WzZQbInMymskOIUMEwFhQgOnuv6UQ7yRwluu56wBY8BiQyqIgKej6ZiOYGFQcNMRcdA+ETLO+V92ktaqhoVh/8tZkNqVaZvbF+wWxdamtBiG1M33w57RfoN3rv+jr9S1Xaft50jt8i494oGZQOOC7U2c5ryVMjHM21Q==
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=l0oLy9dmSiRMZjrhCGjCbaX76T82uwBQA0SOrJp3Uxw=;
 b=cqu97zmRj1g+BWvhATCIJJEA5MtOM9LLBkFvM0AvcgBTq/puAJ3GQgCyEURTFFaoXZnkMwpfcdLe6CtHG7yaQ7wWr42vZKWmPVTDVCXjy3bZC9WjnUxUFmmuLiFWfpnmpeeNrlV03G4J37e7VSF5jfmM6E+ceJtd/Qv45I/lx8E=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Penny
 Zheng <Penny.Zheng@arm.com>, 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 3/5] xen/arm: only map the init text section RW in
 free_init_memory
Thread-Topic: [PATCH 3/5] xen/arm: only map the init text section RW in
 free_init_memory
Thread-Index: AQHbN0xG58VLgb/dzkerHg/RLPURhLK7xh0AgAEDYgA=
Date: Mon, 18 Nov 2024 09:27:42 +0000
Message-ID: <92C19900-8AA7-460A-A7B6-5FAF533029D3@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-4-luca.fancellu@arm.com>
 <6fd84b4e-be73-4d02-8214-32c7ebb09b3d@xen.org>
In-Reply-To: <6fd84b4e-be73-4d02-8214-32c7ebb09b3d@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DU0PR08MB9321:EE_|DU6PEPF0000B61E:EE_|DB9PR08MB9443:EE_
X-MS-Office365-Filtering-Correlation-Id: 4047bfd7-3501-4d49-3526-08dd07b34a3d
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?QUxjSEVqUXpYVHVtcFR0cDVsOVNDclBOakFOQzBYRGVvQi9qTXlkSGRLT3F0?=
 =?utf-8?B?OXUzOFloNkRuWE82dVUzSmtqMkE2NWVjdktYUm9kOHprTXVJeGcvdjAvbHp5?=
 =?utf-8?B?WWJ5WHhWTGowOGsvSU5yQXAvc1Y4aXdtM0xmcFlCZDRvYlRZNk9jLzhuSzNC?=
 =?utf-8?B?QmtrOTAxcDA3S3FaU0dUa1B3aENyM2krWkVxemNrckZmTloyUVNQWEd0Qjdi?=
 =?utf-8?B?YWtnSS9aODlJTmxtWnFvUHRkR0E3WXJjbDZ3S3hFdEVFL3psS0trSHhNK3Ev?=
 =?utf-8?B?UUdwMFhXR1U0U1lSK2hObWVJTUZWY3NwKzIwTHJ2aUp2UzZZVU9USVg1MWxM?=
 =?utf-8?B?Y1UxMC8xWVZZa0doYkwxQ3FYWEJ5NWVabEJVSXdWM05Ud1dGSEp1djNDRzNm?=
 =?utf-8?B?bWhmVDV0YVNmTStodkhBbWZMQ09yYlYyYWJsUE1rVXMyMXFGUWxNb2Vkak1I?=
 =?utf-8?B?VXA2dlhxV1l3cjc0WmYrSDlZY3hQcklqakhsUWZ6Wm1ndnFIWE9VVFo4SFNS?=
 =?utf-8?B?S1Q5VTJ4MWVrRnp3VkE0czRWenc4b0EzaTJkcjNncTYrTVloeWtlMTJaTTMx?=
 =?utf-8?B?MHc0NnVmNWEwMkNoTTM4YlhmNjJvMHJwb2I0YmwweGR1T21GZGFWQXdTTW1X?=
 =?utf-8?B?eGt5Qms2elp2L3E4cmxSU21GakJ3QUdwOENVY1Y4YWZRcW9rOGEvWXE3QnEv?=
 =?utf-8?B?S2VxUnM2TktXUVBvay80bmlPbm9nL3ZrNUVtQ0c4cDhPNzYyWDN0WFVQODc2?=
 =?utf-8?B?TVNXSlJhTlp2RDlFQWl1T3Z2WUIrY2ZLVnFWVng0bEhDbDhxTFI0emtCMTRi?=
 =?utf-8?B?U0t6N0N3UW9LT3AxYTNua0FGYjArdkJMQUJmVWMyVXhCUXQ0Vi82cjFHNGRm?=
 =?utf-8?B?RFVTYkhQWTN5N3dNblZZcXREaXdveGdFYkVxdGszZGh2ajZrRkNzdWJOWUVk?=
 =?utf-8?B?eDRxS1pYbFA0bDdLM1lBRXRkSk55QTlvKzVaSFNCdHd0KzJpTVlQMXpycVVB?=
 =?utf-8?B?RjBIZWEvWEsrWHlOaWpoc1gyQnM1b00wempob0dIeWFWNGZyc3lUb0FOamxp?=
 =?utf-8?B?VE9vcVg0ZlhZWXIzUWhnM3NoTlYrRHl6ejdoQmVjUTZqQ1hMN0Z0cVVlWnFE?=
 =?utf-8?B?ZDZoLzd2VTNtQ1c3SzhSMm1nbXBrTnBKbWNEYkw2TndyNktMTnZKR0VYdUVO?=
 =?utf-8?B?SXpVcmJ0Rk5yUk9MT0s3a2VEU0pYemQ4dlVvcDFyeGFKREt6REt0Wmg5RHpM?=
 =?utf-8?B?aWl6czNQakF0TjJCeE9xeDMvRHcxZ1loYitmU1RvQmc4NkZ2MWxvZTZHaEtJ?=
 =?utf-8?B?OHBwVkdRRDdkQVRCeWgwYmpuc3ZTU1RqNFpUcnZrMXBkNTM2ZU1CV0xMWjNS?=
 =?utf-8?B?eVR6aGd3OThXWTAwUDZET040dUdCVEhmZTZVRUlnei9SR09vNEwzNnBKWmxD?=
 =?utf-8?B?QzlvcVNiWUNLMjFtZzdFRDJLa2FZaVNVY1hzeE51TUFHRklXL3c0K21XOXBQ?=
 =?utf-8?B?bm41dzB4SERuUzRWZFNoZDhsNzdweTNKY253QlpEVUVFNWdOeGpwalQwZHpE?=
 =?utf-8?B?cU5GMVRwUDFBTENvTmk0bDh1RmhJOEN3MGpEdkVGVURJaklsRDFwSWQ5YTFH?=
 =?utf-8?B?a2VGTDQvY0ZHVTFGU1NaL0hYekkxM1JQUXB4SE1zdTJkRHJvYmJTcUd3N05x?=
 =?utf-8?B?b2xYcjFieXBxQnVRNjhwdVpVcjZPSTV5bzFrQ1B1WjNVam01ZXI0S2NabWh3?=
 =?utf-8?B?NzBzWVQxS1g5V0hSbFFLcGJzRnlKMmVGelRKL1hiTFlteGd6cUFXc2VISjc2?=
 =?utf-8?Q?3RknzOXNh/KUjIMOJUoWJ9G3/uAgL8LFxxsCU=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <BE52124B82A70F4784BC277E5A96ECB4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9321
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000B61E.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1ca9ca92-d5db-495e-9a6d-08dd07b34120
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|35042699022|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bWU3cnhKaEdXMjFQRURNMFFOY29vcXVINkNoVWh3ek1SRk82bTJ6YlJHWkVx?=
 =?utf-8?B?RWozNE9jYmkvOWFkZFNkSVp2ekx1MHBFS3U0eWsxQ3dSZEhWMldjRTF1L01F?=
 =?utf-8?B?enhpTTVIQkM1Ynl3bVVVeWVJMFB2TWhsTTF2ZTI4TkJaM3QwbGU2dGptM0xk?=
 =?utf-8?B?TUJjOTlHNFY1NmRuY2RqVklRcDR3VWQ0KzJRZytvNHp2RFp4WnBuZGdSbzd5?=
 =?utf-8?B?WXg4eTQ5TkZLREd2R1YyK2EwKytwYnRndDJyVU9IWUE4RytHa2haeEFrb0xY?=
 =?utf-8?B?aVRRWmdjY25GUmR0TW1GUWdhSmdwNXk1SllIS0Y1NVN0Q2NyY0FXNGNnSlB0?=
 =?utf-8?B?Qm5kOFkyc2xsdmo1b1NEQmtaM1UzVHlPcHRSTUUxMzBwZnJURTZ5OWZXYmVG?=
 =?utf-8?B?RlVqWHdHZ3hNVWVuUTFjSGR3VmwwOXZwT2NkcEp2dEFPUFkva3A2OXhUMGRF?=
 =?utf-8?B?NmUzYTBpTFlBRW1LVDJaanJyVjVTTmdaT2ZHSFJOVnpKVzhyWEJrMEx3TXRi?=
 =?utf-8?B?SEs4YXZabGpPc2Q0VmQ3TUIyeDVHY0ZHZFY5aGpJdUpzL2lZU2pXVnI1QkNJ?=
 =?utf-8?B?Z1o3WHplU1RHR1J4dmVDdytsWGRxMEdxamFjenI4bGJBbXhCTDh2SG8ydG9H?=
 =?utf-8?B?c2hLMm1qcTJhaFZnSGd6NG5pckV0VDR1ZlBaM0swUHlZdHpqeUJDczQ4ZUY0?=
 =?utf-8?B?ZGRqRCthTnBQU0c2N3lRbElsY3E0UCtFRVRzdUlDWE1MYnNQY0M2WG5ISGtk?=
 =?utf-8?B?TnBPM1R5ZUIyWU1leWJCUE4yVlptcGoyTzYrdTlZMm40MmlEZ3Z2RjdpYnp2?=
 =?utf-8?B?NHhqd1M0eDJRQ0xPVVViZnA3STVtSkRxay82OWtJT2hwYXVMUGpJZWcvRFRJ?=
 =?utf-8?B?WkY3ajRMS1lJMEZSRlJRR0VmRDVBTS8vSC94Yy83RnlvMXpWSVNZQVByVk9p?=
 =?utf-8?B?MmNSb21PYlcxS1E4WGJmN2wxdDRZa0RVTXB2WUZ3U1NmYmx2LzB6aE1SWmIw?=
 =?utf-8?B?TVlpaTFFVEhXc2RIRjExVW10UUpxeU0xUkRSUDhvU0VBcXhCWTd1OW9Qd0JL?=
 =?utf-8?B?R3JvbVY3YlZXVVpjZFJYd0F6dWV1VTJNR3hvZ3dhY3VjNW1mdU5HM0NKNWwy?=
 =?utf-8?B?LzlzZWJxK2RKWnVXZmpOU25ZbU9DUjR0Q1M4SnZVaGRzSldVaW1jZ1l3VXFi?=
 =?utf-8?B?NGdibWkwUWR3YnpmcHhZOFdEQnowT0tYa0hFbmFxL1JHSzBDRmJHdHR0ejRP?=
 =?utf-8?B?M2Z4UWxrUzMwMDJaL3FuL3E5MTZzV3EzWWdSSGFwRXRpOGFvekJ6dGJwYk5V?=
 =?utf-8?B?dnoxTmxrS0xtM3l0YUxlYVRQWlNERHZiY1VVemx6MmVUby9hOWp3dENzV3FJ?=
 =?utf-8?B?R2hsdmhGRHpKdEVuanUza2t2N1hoM2piTjN3YVlISjNFVHZVNHJHRjBxTXY2?=
 =?utf-8?B?L0dvbXd2TDVsOU5tWTBrdk4yOTBWOW9iOHZ4NHRPMlVGdExtYm5lQUxEbmRH?=
 =?utf-8?B?N0c1azZSQzYrNXdnMDdwa1c5SmRyRzVycUV2YnJ0ZEFxbWNOeUtMOFFianFi?=
 =?utf-8?B?YzlxY0RjQjN3UUJGUjJqWHdwVlo2SFprQnc3TFdyUXlhYmxtQUlnMWovTlRl?=
 =?utf-8?B?cXdlQTdZMFBGU1dWeUd2dEdVeGJwUUs1MWxzckxBeTk2NDY2dDF0WjhKZU9V?=
 =?utf-8?B?dTQydVovK002bk5keTlXQW5xNFEzWDFGV043NVA2VWxLajBFTzJCc0xWMjZK?=
 =?utf-8?B?MS9qcmxDTVhaZUphU0hPeVFBUW1PYjZaSnVnTkxPeGR3WWZmc0FQdWc5Rkow?=
 =?utf-8?B?ZkVEQlVDSGhGb0hmUE9PeE9Sc1piS05SUzFuY29NM1hEaVMwNFcvUVJOUVRX?=
 =?utf-8?B?blAya3lEUEVOS0Z5aGtsOE9NdnB1b1FiVHUzbVdJRkgvSXc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026)(35042699022)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 09:27:58.2544
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4047bfd7-3501-4d49-3526-08dd07b34a3d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000B61E.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9443

SGkgSnVsaWVuLA0KDQo+IE9uIDE3IE5vdiAyMDI0LCBhdCAxNzo1OCwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMTUvMTEvMjAy
NCAxMDo1MCwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEZyb206IFBlbm55IFpoZW5nIDxQZW5u
eS5aaGVuZ0Bhcm0uY29tPg0KPj4gSW4gZnJlZV9pbml0X21lbW9yeSwgd2UgZG8gbm90IG5lZWQg
dG8gbWFwIHRoZSB3aG9sZSBpbml0IHNlY3Rpb24gUlcsDQo+PiBhcyBvbmx5IGluaXQgdGV4dCBz
ZWN0aW9uIGlzIG1hcHBlZCBSTyBpbiBib290IHRpbWUuDQo+IA0KPiBTbyBvcmlnaW5hbGx5LCB0
aGlzIHdhcyBkb25lIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIHdhcyBnZW5lcmljLiBCdXQgbm93IHRo
aXMgaXMgTU1VIHNwZWNpZmljLCB3ZSBkb24ndCByZWFsbHkgZ2FpbiB0aGF0IG11Y2ggZHVyaW5n
IGJvb3QgYnV0IHdpbGwgaW1wYWlyIGFueSB3b3JrIHRoYXQgd291bGQgcmVzdHJpY3Qgc29tZSBp
bml0IGZ1cnRoZXIgKGZvciBpbnN0YW5jZSAuaW5pdC5yb2RhdGEgY291bGQgYmUgUk8pLiBTbyBp
cyBpdCBhY3R1YWxseSB3b3J0aCBpdD8NCg0KUHJvYmFibHkgbm90LCBJ4oCZbGwgZHJvcCB0aGlz
IG9uZS4NCg0KPiANCj4+IFNpZ25lZC1vZmYtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2Vs
bHVAYXJtLmNvbT4NCj4gDQo+IEdpdmVuIHRoZSBsaW5rIGJlbG93LCB3aHkgYXJlIFBlbm55IGFu
ZCBXZWkncyBzaWduZWQtb2ZmLWJ5IGFyZSBtaXNzaW5nPw0KDQpJbnRlcm5hbCBwb2xpY3ksIGF1
dGhvcnNoaXAgaXMgcHJlc2VydmVkIHRob3VnaC4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 09:52:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 09:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839205.1255016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCyQu-0002nT-UI; Mon, 18 Nov 2024 09:52:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839205.1255016; Mon, 18 Nov 2024 09: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 1tCyQu-0002mp-Qd; Mon, 18 Nov 2024 09:52:36 +0000
Received: by outflank-mailman (input) for mailman id 839205;
 Mon, 18 Nov 2024 09:52: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=JUlN=SN=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tCyQt-0002ke-GM
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 09:52:35 +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 d3a677b0-a592-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 10:52:30 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9ec86a67feso775894566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 01:52:30 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dffd7e7sm517743766b.119.2024.11.18.01.52.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 01:52: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: d3a677b0-a592-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzYTY3N2IwLWE1OTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTIzNTUwLjg3NjY2NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731923550; x=1732528350; 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=pfdShQBl9iGKkUdWSIwuoOQSbxtVKrUkYGVpwpyKQjE=;
        b=LuQ9t34HUnFhft5jof+qT4y1ooeVeSwEC52s3+oL1bDN7UOY5SPRFZo+9gSZjjO2Uj
         x6rSBqV6t6b++Ypef7x+PoWk4Y+aztWEOSZeZcwX/qGeO+W4XT66vlcME1cDpe0HnmmP
         G74c9vVZg+zXBNtYRmSyIzO86JpcH4+fk3P/M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731923550; x=1732528350;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pfdShQBl9iGKkUdWSIwuoOQSbxtVKrUkYGVpwpyKQjE=;
        b=GtNvyuJzGxdPli/DQBWLXjYvFXTEmyZwWbanTp60cw/UPOKy6VODx8JLftm4c5FXLG
         uNOceXJD/Tkivnz4WLQH2MMHo7at1rpdYKitOx94fPzfFxXzA24lVdLk91OTGYgOCJr8
         uN5BowU4sqTmC8Yh64VUry0adOvpJJoH0Ca4ttaQRpPQzE+kX+pAd5qut0kBMNKS9UmG
         kQYhSWMeLjaRdPAyhzhh61+7Eym2RWqKGYU4FQenZt0JOdI7iM8x9ssODkt+zaVLk0VA
         uALTIMFijsfE7pwbeOV8/mY//5whJDZtZ1T3D3Y/0zHb1ECEyv+cIMLyW3BPww1wXFfD
         tIIg==
X-Gm-Message-State: AOJu0YxKZohOokANHJtLVqF2AmmWCHXQhoCzHY41sgZPOIxmwwFX9Idq
	CNpC23JtnpTZXwPjR6krMmyd+jsSP6MDvHGrsM9EPvHbYIfuEsjG0oY6y3DHhVI=
X-Google-Smtp-Source: AGHT+IHMK4VwUh2vTif7GXKIJV4cbFs+GDgaSmltsBKzii4m3gBw56JcG+cFVcvE4ApCkcHfB4ooaQ==
X-Received: by 2002:a17:906:9c82:b0:a99:fc9a:5363 with SMTP id a640c23a62f3a-aa4833f7a46mr1036781566b.9.1731923550296;
        Mon, 18 Nov 2024 01:52:30 -0800 (PST)
Message-ID: <78d9df73-c9b7-479d-8e05-e4efb823ea20@citrix.com>
Date: Mon, 18 Nov 2024 09:52:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Virtualize architectural LBRs
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
 <7706bd63-8f26-4eb8-8dc0-67b302597e3b@suse.com>
 <3f75df1d-f397-487f-9b81-d7740712b924@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3f75df1d-f397-487f-9b81-d7740712b924@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/11/2024 9:13 am, Tu Dinh wrote:
> On 18/11/2024 09:52, Jan Beulich wrote:
>> Looking over just the files touched: No change to XSAVE logic at all?
> XSAVE is hidden behind a new IA32_XSS bit. I'll try to implement that next.

It's rather more severe than that.

Without XSAVE support, Xen can't context-switch the LBR state when vCPUs
are scheduled in and out.Â  (In patch 4 you seem to have copied the
legacy way, which is extremely expensive.)

Architecturally, ARCH_LBR depends on XSAVES so OSes can context switch
it easily(ish) per thread.

There's also a reason why we haven't got this working yet.Â  There are a
couple of areas of prerequisite work which need addressing before XSS
can be enabled properly.

If you're willing to tackle this, then I can explain what needs doing,
and in roughly which order.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 09:55:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 09:55:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839210.1255026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCyTw-0003bn-AC; Mon, 18 Nov 2024 09:55:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839210.1255026; Mon, 18 Nov 2024 09:55: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 1tCyTw-0003bg-6y; Mon, 18 Nov 2024 09:55:44 +0000
Received: by outflank-mailman (input) for mailman id 839210;
 Mon, 18 Nov 2024 09:55: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=xYpB=SN=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1tCyTu-0003b7-Gt
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 09:55:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 437c2793-a593-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 10:55:39 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id B15284EE0764;
 Mon, 18 Nov 2024 10:55:37 +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: 437c2793-a593-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQzN2MyNzkzLWE1OTMtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTIzNzM5LjIzMzQ3LCJzZW5kZXIiOiJuaWNvbGEudmV0cmluaUBidWdzZW5nLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731923737; bh=CLzxPMmWtxLHKsXSKAhPlDvW45eeESq7pAZIoUNMeNc=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=s2iaKSu0Hffwy5i3MJMG6VhZCCbxuU878FFd4IlptdcLMljZ179ZhoMIazct/TwV2
	 Wuha8SG0sYs2tWHYgznA4h+5SKhOolXBtklUhezW1qVE+pHxY1k6RCSqtNEQ/Lahca
	 tS6W7xSnf6hqK+8dTV3emECm9/KGkyBsbB/4w5I/HO1SF/VE5HoOZvoPkSCOAvYwXf
	 GU3zuOoQG5d8sA1vt7VSXLKoptN6jy7EB0sx+ttylf4V4UlV2DjCHdDfuHKlQ3xRZZ
	 3vNhUDeTE3K7iDL9YAQUa08Bf2h3oNxsi4fqaMHKEaimkmevWLb1FoLbu8/8S5gIt6
	 ArLBWWe5p4A7g==
MIME-Version: 1.0
Date: Mon, 18 Nov 2024 10:55:37 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 alessandro.zucchelli@bugseng.com, simone.ballarin@bugseng.com,
 consulting@bugseng.com, andrew.cooper3@citrix.com, julien@xen.org,
 roger.pau@citrix.com, bertrand.marquis@arm.com, michal.orzel@amd.com,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: increase identifiers length to 64
In-Reply-To: <782b24a0-a960-4667-a183-1e270841d2a8@suse.com>
References: <alpine.DEB.2.22.394.2411151617580.1160299@ubuntu-linux-20-04-desktop>
 <782b24a0-a960-4667-a183-1e270841d2a8@suse.com>
Message-ID: <eeaec89c4d4aa8abd738d8af7d068a19@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 2024-11-18 09:58, Jan Beulich wrote:
> On 16.11.2024 01:23, Stefano Stabellini wrote:
>> Currently the identifiers characters limit is arbitrarily set to 40. 
>> It
>> causes a few violations as we have some identifiers longer than 40.
>> 
>> Increase the limit to another rather arbitrary limit of 64. Thanks to
>> this change, we remove a few violations, getting us one step closer to
>> marking Rules 5.2 and 5.4 as clean.
>> 
>> Also update the ECLAIR config that was actually set to 63 as character
>> limit.
> 
> What I don't really understand: With the Eclair config already having 
> said
> 63, how come we did see patches aiming at dealing with the limit being 
> just
> 40? IOW - how would those (supposed) issue even have been spotted.
> 

Hi Jan,

the issue was spotted by Andrew, and therefore we made the patches to 
align the configuration with the limits chosen by the project, which 
makes those violations appear. It is also possibile to do it the other 
way around (align the rst with the ECLAIR configuration), which spares 
the need for additional deviations.

In that case, I agree that 63 is better than 64.

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 10:17:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 10:17:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839220.1255036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCyoy-0007w2-11; Mon, 18 Nov 2024 10:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839220.1255036; Mon, 18 Nov 2024 10:17: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 1tCyox-0007vv-UG; Mon, 18 Nov 2024 10:17:27 +0000
Received: by outflank-mailman (input) for mailman id 839220;
 Mon, 18 Nov 2024 10:17: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=8X+B=SN=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tCyow-0007vp-Id
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 10:17:26 +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 4c676eea-a596-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 11:17:21 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5cfd2978f95so386458a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 02:17:21 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfc10752e9sm1223497a12.16.2024.11.18.02.17.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Nov 2024 02:17: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: 4c676eea-a596-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRjNjc2ZWVhLWE1OTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTI1MDQxLjg5NzgyNCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731925041; x=1732529841; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=12MjGwe0bjJ+eVWWTynNlOxU7nzavy2fQeRegQh3Z4E=;
        b=UgxfsMNlpdXcJBmgqTJ1Y1dbEBCv+D73+OmKwAzAadE+chgghYE/tnlkpV+D+KE+H/
         8dpfnKhvuOt1KQ2DYI8kdGGtRrk7QH87Tc9nICGMbK9uviO4WvhUWNNpZtNx/TjaDozv
         tuUcH9Yg3AD2Q3c2isqDLHd0DIrh2J6um02v8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731925041; x=1732529841;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=12MjGwe0bjJ+eVWWTynNlOxU7nzavy2fQeRegQh3Z4E=;
        b=JNYSN60wEy6fSHy0G3OXqzepl/EXvFIN4JtuyqBSydhFNuRGgr5mffQo/hQ47OwOoW
         k49Bz8kFWUeghjd4wGW5zhAKwStv84kkrl4jzVvP88DfTXGdLMVBEpMvRx7PqJwPutY2
         26h51vJ8eVsNXgj8RSST9RWf4KI2K0aOE74law80SjgB8H80OlR+akzdAvbscKNk7/NZ
         qHtmALeXPDaB9Anj/5rcaeXs/6tv9d233sbFporZFYFOtl9Ys/zLrvAtdKNmjZ7T3Lss
         x9tRsDFDvz/4lnB9Ioy1dujtFoU8g7l+L1YFj88WeLLoHha2V0sZxGX6/CgZ0y2b+bm9
         pNFw==
X-Gm-Message-State: AOJu0YzoUUf4RWi8JcsiwNb2eWxhP1RBo3mwu88g/c9u4FXzPf9EI+nB
	sdPrbqIxpJ3kXml6Bjr81Ck5x5r7PfjwViAIzDauVKP04vBd4DZkCNz6x61EgRE=
X-Google-Smtp-Source: AGHT+IHegocbXzKPtWTvQ24L9f6T+bxJN1JeDu70l3t50cCQdoPrGPihozPySbyczm9tGIEEI/CyAg==
X-Received: by 2002:a05:6402:40cb:b0:5cf:924f:9968 with SMTP id 4fb4d7f45d1cf-5cf924fa185mr6667436a12.2.1731925040890;
        Mon, 18 Nov 2024 02:17:20 -0800 (PST)
Date: Mon, 18 Nov 2024 11:17:19 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzsUL3dnjl5x0-si@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20241113080027.244240-1-Jiqian.Chen@amd.com>

On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> Some devices, like discrete GPU of amd, support resizable bar capability,
> but vpci of Xen doesn't support this feature, so they fail to resize bars
> and then cause probing failure.
> 
> According to PCIe spec, each bar that support resizing has two registers,
> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> corresponding handler into vpci.
> 
> PCI_REBAR_CAP is RO, only provide reading.
> 
> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> setting the new size.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
>  xen/drivers/vpci/Makefile  |  2 +-
>  xen/drivers/vpci/rebar.c   | 89 ++++++++++++++++++++++++++++++++++++++
>  xen/include/xen/pci_regs.h | 11 +++++
>  3 files changed, 101 insertions(+), 1 deletion(-)
>  create mode 100644 xen/drivers/vpci/rebar.c
> 
> diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile
> index 1a1413b93e76..a7c8a30a8956 100644
> --- a/xen/drivers/vpci/Makefile
> +++ b/xen/drivers/vpci/Makefile
> @@ -1,2 +1,2 @@
> -obj-y += vpci.o header.o
> +obj-y += vpci.o header.o rebar.o
>  obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
> diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
> new file mode 100644
> index 000000000000..84dbd84b0745
> --- /dev/null
> +++ b/xen/drivers/vpci/rebar.c
> @@ -0,0 +1,89 @@
> +/* SPDX-License-Identifier: GPL-2.0 */

The GPL-2.0 identifier is deprecated, either use GPL-2.0-or-later or
GPL-2.0-only.

> +/*
> + * Copyright (C) 2024 Advanced Micro Devices, Inc. All Rights Reserved.
> + *
> + * Author: Jiqian Chen <Jiqian.Chen@amd.com>
> + */
> +
> +#include <xen/hypercall.h>
> +#include <xen/vpci.h>
> +
> +/*
> + * The number value of the BAR Size in PCI_REBAR_CTRL register reprent:
> + * 0    1 MB (2^20 bytes)
> + * 1    2 MB (2^21 bytes)
> + * 2    4 MB (2^22 bytes)
> + *  ...
> + * 43   8 EB (2^63 bytes)
> + */
> +#define PCI_REBAR_CTRL_BAR_UNIT (1ULL << 20)
> +
> +static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
> +                                      unsigned int reg,
> +                                      uint32_t val,
> +                                      void *data)
> +{
> +    uint32_t ctrl, index;

index should better be unsigned int, as it's the BAR index [0, 5], and
so fits perfectly in an unsigned int.

> +    struct vpci_bar *bars = pdev->vpci->header.bars;

You could pass bars as the data parameter.

Additionally you need to check that memory decoding is not enabled for
the device, otherwise attempting to change the BAR size will lead to
the active p2m mappings getting out of sync w.r.t. the new BAR size.

> +
> +    ctrl = pci_conf_read32(pdev->sbdf, reg);
> +    if ( ctrl == val )
> +        return;

I would still carry out the write in this case, as that's what the
owner of the device requested.

> +
> +    ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
> +    if ( ctrl != ( val & ~PCI_REBAR_CTRL_BAR_SIZE ) )
                     ^ extra space here and         ^ here
> +        return;

The feature only being exposed to dom0 ATM, I would suggest we allow
it to write any bits it wants in the control register, as that would
be what the OS would do when not running as a guest.

> +
> +    index = ctrl & PCI_REBAR_CTRL_BAR_IDX;

Some sanity checking of the BAR index might be good.  At least a check
that the BAR is of type VPCI_BAR_MEM64_LO or VPCI_BAR_MEM32.

> +    bars[index].size = (1 << ((val & PCI_REBAR_CTRL_BAR_SIZE) >>
> +                              PCI_REBAR_CTRL_BAR_SHIFT)) *
> +                       PCI_REBAR_CTRL_BAR_UNIT;

This would better be a macro in pci_regs.h I think, and you need to
use 1UL, plus using MASK_EXTR() simplifies it:

PCI_REBAR_CTRL_SIZE(v) (1UL << (MASK_EXTR(v, PCI_REBAR_CTRL_BAR_SIZE) + 20))

> +
> +    pci_conf_write32(pdev->sbdf, reg, val);
> +}
> +
> +static int cf_check init_rebar(struct pci_dev *pdev)
> +{
> +    unsigned int rebar_offset;
> +    uint32_t ctrl, nbars;

nbars can be unsigned int.

> +    int rc = 0;
> +
> +    rebar_offset = pci_find_ext_capability(pdev->sbdf, PCI_EXT_CAP_ID_REBAR);
> +
> +    if ( !rebar_offset )
> +        return rc;

Just return 0, it's clearer than having to figure out what rc is set
to.

> +
> +    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL);
> +    nbars = (ctrl & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;

MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK).

> +
> +    for ( int i = 0; i < nbars; i++, rebar_offset += 8 ) {

unsigned int, and defined outside of the loop.  Also coding style:
braces need to be on a newline.

You could even reduce the scope of rc by defining it inside the
loop.

> +        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, NULL,
> +                               rebar_offset + PCI_REBAR_CAP, 4, NULL);

I'm not sure we want to limit dom0 writes to the capabilities
registers, as said above dom0 gets unfiltered access to almost all
registers, so it can do what it would otherwise do when running on
native hardware.

> +        if ( rc ) {
> +            printk("%s: %pp: add register for PCI_REBAR_CAP failed (rc=%d)\n",
> +                   __func__, &pdev->sbdf, rc);
> +            break;
> +        }
> +
> +        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rebar_ctrl_write,
> +                               rebar_offset + PCI_REBAR_CTRL, 4, NULL);
> +        if ( rc ) {
> +            printk("%s: %pp: add register for PCI_REBAR_CTRL failed (rc=%d)\n",
> +                   __func__, &pdev->sbdf, rc);

IMO I think you can forego printing __func__, and just use:

"%pp: add register for PCI_REBAR_CTRL failed: %d\n"

> +            break;
> +        }
> +    }
> +
> +    return rc;
> +}
> +REGISTER_VPCI_INIT(init_rebar, VPCI_PRIORITY_LOW);
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
> index 250ba106dbd3..5d2aa130916e 100644
> --- a/xen/include/xen/pci_regs.h
> +++ b/xen/include/xen/pci_regs.h
> @@ -459,6 +459,7 @@
>  #define PCI_EXT_CAP_ID_ARI	14
>  #define PCI_EXT_CAP_ID_ATS	15
>  #define PCI_EXT_CAP_ID_SRIOV	16
> +#define PCI_EXT_CAP_ID_REBAR	21	/* Resizable BAR */
>  
>  /* Advanced Error Reporting */
>  #define PCI_ERR_UNCOR_STATUS	4	/* Uncorrectable Error Status */
> @@ -541,6 +542,16 @@
>  #define  PCI_VNDR_HEADER_REV(x)	(((x) >> 16) & 0xf)
>  #define  PCI_VNDR_HEADER_LEN(x)	(((x) >> 20) & 0xfff)
>  
> +/* Resizable BARs */
> +#define PCI_REBAR_CAP		4	/* capability register */
> +#define  PCI_REBAR_CAP_SIZES		0x00FFFFF0  /* supported BAR sizes */
> +#define PCI_REBAR_CTRL		8	/* control register */
> +#define  PCI_REBAR_CTRL_BAR_IDX		0x00000007  /* BAR index */
> +#define  PCI_REBAR_CTRL_NBAR_MASK	0x000000E0  /* # of resizable BARs */
> +#define  PCI_REBAR_CTRL_NBAR_SHIFT	5	    /* shift for # of BARs */
> +#define  PCI_REBAR_CTRL_BAR_SIZE	0x00001F00  /* BAR size */
> +#define  PCI_REBAR_CTRL_BAR_SHIFT	8	    /* shift for BAR size */

If you use MASK_EXTR() there's no need for the _SHIFT macros I think?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 10:26:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 10:26:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839231.1255046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCyxc-00060A-UC; Mon, 18 Nov 2024 10:26:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839231.1255046; Mon, 18 Nov 2024 10:26: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 1tCyxc-000603-Qx; Mon, 18 Nov 2024 10:26:24 +0000
Received: by outflank-mailman (input) for mailman id 839231;
 Mon, 18 Nov 2024 10:26: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=i7IS=SN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tCyxa-0005zx-U1
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 10:26:22 +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 8d267e30-a597-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 11:26:20 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43161c0068bso15178425e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 02:26: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-382459eca06sm3295766f8f.67.2024.11.18.02.26.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 02:26: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: 8d267e30-a597-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhkMjY3ZTMwLWE1OTctMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTI1NTgwLjE2ODI1Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731925579; x=1732530379; 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=Aw+rgc6O7dqqnjWu40ijNXutVm9WfKl4DHL+HSCSE/M=;
        b=Yhx5AZkk6Gub/4L2rDnf/sjlt0KdjxX78v3rKTEyc4VvzU9uSrEssa8RHoPWi33bMv
         XPsD4mguHj/aOD68IkKMa7vMfnyh/WQmdA7vxVrcTK5RhrCBkvBNnx7v4dtbiiQU6d1j
         wVmpsuRImfyR92wPtR36dRO4z6KEh4ZW6t2ieYDZMUW5La73kgGtAWOX5mbQmai3s+cj
         c19iNk/NWnIy6d4iux6QTQuMQUpFJVeJKUjHgB53hm5QD3yT/ffC88UvwIdcGnaHUSG3
         TwVRTYvZ/FLuT1EScadk9ox1P+RPfitc+2oANdCm6FBvjG+GDRhX7mXyQKhmnlnQASYn
         lpFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731925579; x=1732530379;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Aw+rgc6O7dqqnjWu40ijNXutVm9WfKl4DHL+HSCSE/M=;
        b=iSENZWREEuEO9q59B5qXOvvTWUNyjpgUtHgdAiv/tG2lOmLSk/iLSmC/vdcf5+OVmY
         bGkjpiGm1qENoJr86WpGDCk6F074z0i5DEDmoW0URUkhGmRVeRn0KdmGzxTUT84wcuiP
         9VeWjS8oCN20XckrZB7nwqeKcwq1Gj2RUlpGhPgRMXSFPh2zrHP4hDFT/BMAzmfDnVC2
         JRtHV/0mfW3ln3VpGFTtw8b6xXa/I0sDatsajsrwBeKks6d80iwDaIUJs3G4/pab1/CW
         wA1/ZaPGYjojS8zRvC3sO288sz0wqLVEbKfoQdaC+fFMeH5YixVJxzNsQOkgTF2iGPIq
         RnGg==
X-Gm-Message-State: AOJu0YxT3119c6344Avk4l8UnSbIjjVL/bLh9U55FkPqhn8qoMoozKeP
	EBkK7vNbZiO5856QMOUsDgYv+kLjKCs3g7I9JcVYR7i+qXfMgLyTSoguWSSi9A==
X-Google-Smtp-Source: AGHT+IHXuKL4+tyNGVkqiuofAblSJ5BpgJPzq0tO/ZhZ4qmPg3kjsKIiFFj8OwNQtEfE7zwa1FkmJQ==
X-Received: by 2002:a5d:5d8a:0:b0:37d:51bc:3229 with SMTP id ffacd0b85a97d-38225ad5e80mr9720835f8f.51.1731925579450;
        Mon, 18 Nov 2024 02:26:19 -0800 (PST)
Message-ID: <5e09d145-4397-4572-b705-b0c0533fa9fa@suse.com>
Date: Mon, 18 Nov 2024 11:26:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vpci: Add resizable bar support
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jiqian Chen <Jiqian.Chen@amd.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzsUL3dnjl5x0-si@macbook>
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: <ZzsUL3dnjl5x0-si@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2024 11:17, Roger Pau MonnÃ© wrote:
> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
>> +    for ( int i = 0; i < nbars; i++, rebar_offset += 8 ) {
> 
> unsigned int, and defined outside of the loop.

Just to mention it: Iirc Andrew started (deliberately) introducing
loop induction variables inside loop headers. IOW while not formally
written down anywhere, I probably wouldn't ask people anymore to
move such declarations out of loop headers.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 10:28:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 10:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839236.1255056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCyzp-0006b4-Ao; Mon, 18 Nov 2024 10:28:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839236.1255056; Mon, 18 Nov 2024 10:28: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 1tCyzp-0006ax-6z; Mon, 18 Nov 2024 10:28:41 +0000
Received: by outflank-mailman (input) for mailman id 839236;
 Mon, 18 Nov 2024 10:28: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=1K7B=SN=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tCyzo-0006ap-0O
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 10:28:40 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20626.outbound.protection.outlook.com
 [2a01:111:f403:2412::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd3d0a69-a597-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 11:28:35 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by MN2PR12MB4045.namprd12.prod.outlook.com (2603:10b6:208:1d6::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Mon, 18 Nov
 2024 10:28:30 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8158.021; Mon, 18 Nov 2024
 10:28: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: dd3d0a69-a597-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjI2IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRkM2QwYTY5LWE1OTctMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTI1NzE1LjkwMDE3OSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E9esWYeMF02ZQQVAGN3Qla3ShK8E4aaWCaAPlZR3Zw5dRS0VTAP0RvdRbT5VD0QbP5dmfYFAP0Lke+E03XbuI5HjcE8cXTpvFSCqG/b162PhM7VLWBFRMADkAmZkQ3+KpSYeyDtjpKtgeJGp65hKME4cJUZ1qmpkDHiT97drtwo1lRA3PYjo6Nxbp6mvyW/V4UYSQhWP5kHPI2ioZDzNLimRThPS/GcPtQ0hCyUNE0jkO8EwgDy2hk/ilZol1/FxlksljehL8Z3oSvtLCZ+fppeDvLwU1fTumCb7JRlAEjPgVCUdC5W8CTIHMuH4X2HhKWSY6koonkfSDr/UtLqpbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vqGvwZQ7+umrPK+0Vf2LsN3A3AWRRUWpNDEZg93tmL8=;
 b=DtBXHSZbMb1zUAER/NpGbiNXbs6P+hAfvXdkYnsDkJjclEXJaz/c1tJI5RIYdirZg7Ob8nYgy8nqLAx7lp44uqF8CEnbYgWMZPLYH9o7KoH/uMWq59x8gARWa6i0Ujo6bwlRufQTSvyCvbqlD2d8mE3D0iGnS+9a6On+oMJOWuUeofEg6Wperu6aVqr5qe8bGaF5SvLM6lRSBDVP1OlJ48bEHLPooZN4n2vjXHiOxuHh7hKx1eb8Uba/r4KOuTj57zFIxcoj7WL8LpJDEJOwy/wnPyXZvKH+7UBQYb/n1LCgIkKo7QJ0oHYYPx9BtP/2FCvTGIVOyYMVmsu+iT/bQg==
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=vqGvwZQ7+umrPK+0Vf2LsN3A3AWRRUWpNDEZg93tmL8=;
 b=Id7ltdowU39sPHfBXuLXdjsh3q+qW5XQV7hukrJvWYQfqrmmyA+QzwXsV1rw8DhiZNH+f4TXSXmIdf+P0bQgurb4XQRyv8WdstqlBQxR3NqLqyIC8ch7IUQFOwRgfLMONNXUR0HMSMsmNFsYeXVjIERmtb3pEvJJo3eZrVzrjUM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <bcf90dad-b9af-498a-be81-6288db5175ff@amd.com>
Date: Mon, 18 Nov 2024 10:28:25 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
Content-Language: en-GB
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Artem Mygaiev <artem_mygaiev@epam.com>,
 Munakata Hisao <hisao.munakata.vt@renesas.com>
References: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
 <4dbf2c4d-f7bd-4032-b52f-29c24e3ec055@xen.org>
 <22282f26-5c66-444b-b63a-d5442e6fcdad@amd.com>
 <04a358de-ed76-46b4-bc09-f3f343e09186@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <04a358de-ed76-46b4-bc09-f3f343e09186@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P123CA0047.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:310::16) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|MN2PR12MB4045:EE_
X-MS-Office365-Filtering-Correlation-Id: 41d80ea5-c326-4d48-fef1-08dd07bbbf17
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?K1l2NDk2UHNvQzQwckwzZ3o2Z1V6Qi80TWVXZ1VJUHVmYlZUbWFPSzY2TFdl?=
 =?utf-8?B?QVhxaXYvNndnb2FTOTQ4NE8rVEtsYTJCOHpDV0VMZUZvL3FCR3ErdWJPUHJ1?=
 =?utf-8?B?bGkrWFhFSWhFV2dRUWRoVVlqUkhkaEdrOHhwTzJDdXltODJPZmpUd0lSd2Rp?=
 =?utf-8?B?TGZuMGJTOHEzQTViVWpINjVyRXhpZDlZcy9jZEtlQ2FDaFNFT3ROWXUvZkpw?=
 =?utf-8?B?Z0Z2WjhFdExKMUtBQnZDZFo3MjdRWjAxOE42SkprV29xWkdrclBGZUVXSHNn?=
 =?utf-8?B?bEpobHRRRmFJU2tIQ1hrS0luV0hRWjZSOTlBMmt2QU9ETTZIM0MveGhDaXVq?=
 =?utf-8?B?d2htbFBxbTUxbUNSNnJ1QjA3cVVzaGN3em1SR1B3Q0pLLzU0MnFyWmhXRUFq?=
 =?utf-8?B?dGhDQzJMdGIxd3JSaHpaTXdHVDNmNVhQa2xCL3gvRHRxa0s0N1V5TEF3RERk?=
 =?utf-8?B?alZhUGxUZWhsc1VrbTdmSit0OGJmc2RNVkFjUFRJT2cyVjhtU2RKR3NiK3R2?=
 =?utf-8?B?T3VDaTQ2TllUc3lnbk1sQ0x3YlpiV1Q2SUNCOGIxZ2pKck1NajhGTmNINkc0?=
 =?utf-8?B?cG9nNElkMnBBMC9qVkFkNFVSYldmOC8wWm1OVXBmMEt0WVArS1lmekJyOGU5?=
 =?utf-8?B?RDFHOHFicGJLZHk5bWJnbEtpU0pDVStlQlgyZGpLbEpjVmF2Ykx6ditnYmcw?=
 =?utf-8?B?NWNsN2FJRFNDSzZ6ZiszekJoWDNqSnNsUm5jaUtUcGxwSlRCdnhQYlNBanZO?=
 =?utf-8?B?NHY2cWZSUlJDVTRqQzF4MnB5N3haTVVoTXNLQ3BmcXVUY2FWNE1MSUZzZzBY?=
 =?utf-8?B?cVk0R3Roa0lsRU1wMnJ6V3VDRzVTOVRaaU5ldkQ5NDEwTEJ1L2RVYnpJZHV5?=
 =?utf-8?B?Um93dU1JSTNvdDE1Z3B2azdueDZoZVVoclFjckR3djZQK1dlU2U1THhjUGli?=
 =?utf-8?B?bGxxMWR5Q2NrOXdVNnArM0dpbGtzUkYySDBJQkJBMUJWWG5nTy9wL0U5TmRj?=
 =?utf-8?B?TFRqVGh4czVEZlplRER0QXZ5MzluelRGNW5Vc3drcEtzdkhtRTZuVEk5aGtK?=
 =?utf-8?B?MUxHSzVNODhLWlJmVThVc1hsRG4zN05zM2tYL0M1MFovUjJHWVEzNSt6SFly?=
 =?utf-8?B?SmNhb3o1cmdPL1NBOVFIT1Z5Mk9XRS9Hb0EyNWtEZjJlTkZCWnplL0lobS8x?=
 =?utf-8?B?QzZLNWZNaFB2NWZzMkhGN3NuT0tQRlF6VTI1RGNGSEYxNjBrMGRVLzJRcGFW?=
 =?utf-8?B?RzBFNUQzM3FxZ01MaWRhcEwrYzVpTVlTSjF6RlBDR25Kdk1GYm9oMDVpSlRV?=
 =?utf-8?B?UVdGU3ZlSVN1UjhtbjU3ZGtoZHY2V3FYR3JsR1F0NnFtVHRzWmM4L09Rd3ZP?=
 =?utf-8?B?M21QV1lxNnpNWWNtdkY0TkFsMFVoSTVVcG1QSmpQVnFTUzJ3VzFDMGc4T0Iw?=
 =?utf-8?B?SDNRenBuTTNORWc2Z251N25xbXlRS2ZiWGdsREVQVEMvYU9LQ1IwSytrMnNv?=
 =?utf-8?B?azJYQ1cxT0pRUG1PWjZTaENXdEtJK3pUODQxNi94elZxSFl1R1NFQXhJZDlx?=
 =?utf-8?B?dFVwYjhtWDNKc2dmVFFuRlpVcHhKVWNjR256S1Zsa2Zab2x4cjV2R1Y5dEZX?=
 =?utf-8?B?S3RLWjNKcEZteHhsd0gxNzVvNWlYdmlMQXZDY3pvWnVkOFYxOVcySnNTS3Ex?=
 =?utf-8?B?ZzJvcVNnTmdReFNJY2FXamwxYTJCMkdSbGlaZVpVUFZEQzNJK3lHeGRSL3Zu?=
 =?utf-8?Q?edp4FLkugNVlYgBa97zUTOUMQtqxT2EQlWVuWhr?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.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?VjlSVUhjYWV1bU9ZZC9hUGUwcWpqSEYwQVRSOFFUcmYyZ3hBc2hFc0xQYzVj?=
 =?utf-8?B?YnFoL2d3R1ZWd1FxWGpkMWdtcWRPYzVLMGlCMkp1WDM5c0hZUlpVN1pZdjk1?=
 =?utf-8?B?eTkvcmNaNm9ETWFibGFjck85Z2dIbkxwemY5RW8xdjlHeHpGSjEvV2JRYkc2?=
 =?utf-8?B?TlBPZXJDN0c5emk5RVdocUJwVFdwZEJtcEYxZE1BbUt0OGJyNUVJdTdUTm9H?=
 =?utf-8?B?WWhOZzgxYXZId05nQ1pvVzBGZHMwQUE2UHN4TVE2NjZsNGV2enBzWGVBeGQv?=
 =?utf-8?B?eVYwS2ZmdXIwZmZ3OGFEYzlhWUhHQzZYbGc1akZrRlRsMDBHSG5jNWpEc0Jt?=
 =?utf-8?B?UTQ4VkJEWk1PMWRBRXhKcVJUbG5WQ0xJOW1JQ0RhNW51d1lNc240S0MweEpH?=
 =?utf-8?B?cGpJT05zSDExWG9nMDd6aTRzR2FDeml4bkVSVDVUVkp1R2hQOExaaHl2bjdO?=
 =?utf-8?B?aXVJZmhHQVVxL1NEUlcvaWEzSEFzYVRjaitpT3NGemFrZEdRY2tDbk1rcW9Y?=
 =?utf-8?B?RnlxbWlRYWhHZDA1Ukt6c1o1T0RxLzZmTllJVXJ5NzBlVnJpSjUwZXJsdjNq?=
 =?utf-8?B?d2ZzYzZnUVQ4cmtRclRZS3N4V2VTeW56NTJWYmo1SUE2cFFTZGpDeTVFK3Ri?=
 =?utf-8?B?bzhsVjA3S3QrWVkzdkNXMXJpbVlJckcwaXEzMy9lcUxodFJhRjZWVVNINHZq?=
 =?utf-8?B?czZaa1AwL2wycmVpZlVtR3IxY1lyU1pyQjVFTC92L2ZiQTE5K0VPMTZPdGU1?=
 =?utf-8?B?Y0l6dkU3bU5jV1BLUHBoZ0pHTTlvWVg5QmZqVlQzb3M5aG9wN05jU1RXVUdq?=
 =?utf-8?B?YnY0emVLV2VCWkFiZW9SRnlIWHlvSUJTdWdHb1Voa3JDcWF3UU51Y2FJNEVN?=
 =?utf-8?B?Z1BSd2w5VGtZVjdKTzM3N0xFMk50eXRHSENFa2VEalV2TmV3bWFNL3JPWmhm?=
 =?utf-8?B?Vk0vd0VuNVdad21zK0h5Wml4VW9OdGpxQTJERGxXaHZxMzNjV0NzK1FUQkVr?=
 =?utf-8?B?b0xIcjVZd09VeGFzK0dpKzArOUdlLzN6djA5MmE2d0Z1VkZIbk9BOGZ3VmI5?=
 =?utf-8?B?ZTFEMEowZUxPSDlhcmNIdGlDRS9FRXZnM0N1ZEZjeVljTDVNVC9QM3hEWERv?=
 =?utf-8?B?eXd4bDduNWRUSHcxMDZteWR5WFVja0tXL2JIUTFDRGF5SFNoSFZObVhZMFEr?=
 =?utf-8?B?L3NXOUx0U1FEY1BpVDAzS3VVVlFGNG9nN1ZJRUQxZjdITmplbUU1Ynl5ckZV?=
 =?utf-8?B?aitmVDN6SXRRUGdSWng4cTJBSUlTcy9QWFU3Z1RtTGhuNUllNUpQVktVaHl4?=
 =?utf-8?B?RGI2blZMS2wzeGZLS2ZWclBycnQyaWJESHlIYVY5NStrNHNmRmZrRGlVK0I5?=
 =?utf-8?B?eWtGTkdXTVd5R0REQ0d3bXN1TFdyMGVDSnA4YXJzbVo2TVJiVjlhL1EvU1Vt?=
 =?utf-8?B?ME9reVBwUFhyUFZzY01JRDBKVTcrZVIvMUxSWXpCNVNzelc1MFRpZmNwZDI2?=
 =?utf-8?B?dDNFWGlSbEozZ0ttMEhXN296eEpLL0VsMjU1cWx0T0RnemlnL3N5SWpIaVhY?=
 =?utf-8?B?T0RDOGk5bWM3VFBzeU5YVkZzWW8zeEJzaUR2QUw2UVhSZ0p0YjZhSFFPM3Y0?=
 =?utf-8?B?N2tlSENZZG82Vlh0Sk16OG1mTkNOb3BRa2VuRTRERVpKcDBEMitmZDRBM3hJ?=
 =?utf-8?B?YlNjY0diYkdtQUkzUzN1Y2w5RlFTamNDZzBOMis4UmpvWlR6OENFcE5SeFhD?=
 =?utf-8?B?M2RiSFBUSWZKdzR3YTMvUFhvODQycjk0MFltaFlycE1kYmRyb2x6NTRiemk4?=
 =?utf-8?B?UkNmWUkyNi81THBNMnV5QkU3Vmo4UlRib3VZUlB4WDJBdmVhZitvSkNLZjRh?=
 =?utf-8?B?VXZWUG5ZbDAxUWNtRkJYSk0rTFJ0ZTRGM3NoZnJwMUxNVjRjUnV0NWRNdzZh?=
 =?utf-8?B?aHVlVTVkeDFQRisyOTcvRXdmWFpBci9rZUZDemlCV1RncWhXSFlDa2ZZVTV2?=
 =?utf-8?B?TTRYZjRGUjhXb1hlSWdiZnkvWHYxd1FwRTJYN1dYNmtaTXduWGxZTlRjMG5M?=
 =?utf-8?B?eVRObThUdnZubm9MU056V2NRYU5LZXZabHltMzkvTzZYRXVYcERmclIzelZn?=
 =?utf-8?Q?WlzEd47cpXJbHgvZAsYSgY51C?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 41d80ea5-c326-4d48-fef1-08dd07bbbf17
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 10:28:30.4380
 (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: f58/GswhQAUJnnzp5steevXCHLocUKotfFXZQ6SFb7svvfq0nqlV8R/3VGIZGDg8sE5VNaPCMDVGWK9KHmuyUA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4045


On 16/11/2024 09:57, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 15/11/2024 18:53, Ayan Kumar Halder wrote:
>>>> +Assign vCPUs from CPU pool
>>>> +--------------------------
>>>> +
>>>> +`XenSwdgn~arm64_assign_vcpus_cpu_pool~1`
>>>> +
>>>> +Description:
>>>> +Xen shall assign vCPUs to a domain from a CPU pool.
>>>
>>> Same remark about the wording. You create a domain with N vCPUs and 
>>> *assign* a CPU pool to a domain. 
>>
>> Ok, so all the previous 3 requirements can be merged into
>>
>> Xen shall create a domain with N vCPUs and assign a CPU pool to a 
>> domain.
>>
>> Or
>>
>> Xen shall create a domain with N vCPUs.
>
> I think this one is better because it is not mandatory for the user to 
> select a CPU pool and you will have it ...
Ok, I will keep this.
>
>>
>> (which of the two looks better to you if we keep the next requirement ?)
>
> ... by the next one.
>
>>
>> Comments:
>>
>> Here N is determined by the device tree configuration provided by the 
>> user.
>>
>>> You also assign pCPU to a CPU pool.
>>>
>>> But I am not sure about if this requirement is actually necessary 
>>> given ...
>>>
>>>> +
>>>> +Rationale:
>>>> +
>>>> +Comments:
>>>> +
>>>> +Covers:
>>>> + - `XenProd~static_domains_configuration~1`
>>>> +
>>>> +Specify CPU pool scheduler
>>>> +--------------------------
>>>> +
>>>> +`XenSwdgn~arm64_specify_cpu_pool_scheduler~1`
>>>> +
>>>> +Description:
>>>> +Xen shall assign a CPU pool scheduler to a domain.
>>>
>>> ... you have th is one.
>> So, we can keep it as it is.
>>>
>>>> +
>>>> +Rationale:
>>>> +
>>>> +Comments:
>>>> +
>>>> +Covers:
>>>> + - `XenProd~static_domains_configuration~1`
>>>> +
>>>> +Assign virtual UART
>>>> +-------------------
>>>> +
>>>> +`XenSwdgn~arm64_assign_virtual_uart~1`
>>>> +
>>>> +Description:
>>>> +Xen shall assign a virtual UART to a domain.
>>>
>>> Are we talking about the virtual PL011 or the fake emulation of the 
>>> real UART we do?
>> virtual PL011.
>
> Is it possible to specify it in the market requirements?

We are talking about Xen's ability to **specify** virtual PL011 to a domain.

So, it should be a part of design requirement. Please see further ...

>
> [...]
>
>>>> +
>>>> +Static VM definition
>>>> +--------------------
>>>> +
>>>> +`XenMkt~static_vm_definition~1`
>>>> +
>>>> +Description:
>>>> +Xen shall support specifying resources for a domain.
>>>
>>> Compare to the other requirements, this is quite a vague. Should we 
>>> list the resources?
>>
>> The list of resources depends on what the user has provided in the 
>> device tree configuration.
>>
>> But the requirement is correct as it is. Xen allows direct assignment 
>> of devices to domains (ie passthrough).
>>
>> How do you want to write it ?
>
> This is probably a better question for Bertrand. I don't know how 
> market requirements are usually described. I was making a comparison 
> with the other where you explicitely listed the expected resources 
> (e.g. CPU, Memory, device).

In this case, the market requirement is "Xen shall support *specifying* 
resources for a domain".

Here, it doesn't really matter what the resources are. What matters, is 
Xen's ability to specify resources for creating a domain.

Now, if you look at the design requirements, we say Xen shall support 
specifying uImage, zImage, vpl011, ramdisk, no of spis, etc. So these 
are the resources that can be specified.

Tomorrow, we can add more resources which will imply that new design 
requirements will be created/modified. However, the market requirement 
stays the same.

Please let me know if it makes sense ?

- Ayan


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 10:52:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 10:52:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839247.1255066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCzML-0004kF-3J; Mon, 18 Nov 2024 10:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839247.1255066; Mon, 18 Nov 2024 10:51: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 1tCzML-0004k8-0U; Mon, 18 Nov 2024 10:51:57 +0000
Received: by outflank-mailman (input) for mailman id 839247;
 Mon, 18 Nov 2024 10:51: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=JUlN=SN=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tCzMJ-0004g8-MA
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 10:51:55 +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 1d66aff0-a59b-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 11:51:50 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9ec86a67feso788154066b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 02:51:50 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df5696fsm522287766b.77.2024.11.18.02.51.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Nov 2024 02:51: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: 1d66aff0-a59b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFkNjZhZmYwLWE1OWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTI3MTEwLjUxODkwMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731927109; x=1732531909; 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=6E0Kaaftq1RqJE09RLDSsbeIV+RREbhQ6Fd9/Y2QUKQ=;
        b=eiE9T51wfdMn+1oFK95Wv8IjZv6V0l/khIGY15kwkq2MaAUql53TPrMB0I144e23em
         j3B3cz7RPsGW9ecPT3KtTBfKgTsbW58EVxaP09LWhXu7fNAtqmUN+8YEJdmUdAAu91yQ
         rV9qCU3Imm9vQfV4pCnPAo/jil4bQqHJyn9Ac=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731927109; x=1732531909;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6E0Kaaftq1RqJE09RLDSsbeIV+RREbhQ6Fd9/Y2QUKQ=;
        b=N1FrL6ysyFoMtSgRk7r//MLYJM6OEK1D8e46jd4oLxpstyu9VmtIb2KTCrT+yxxzEG
         PO33gwTtQ1crSu+RMHXeK3Loc+6TH5J2e7loduHAnLMHWODpHgYa1eLEEKpaDSVtCyME
         fC7rczxaleo44EhaOckxqTFsR/v2Wjpu+iIAxl3g3HhhmFDHQXKQZjQzGbJh2/izPy/6
         LbExoKxaAKXwtF7nNLbH8MXbpnMHoEAlSaZzXUw4htOdGhGHfcci8iGaN+qoDTgA79Qz
         OeVkQW4HQxnCBoPK4yczxlCq+Eb6VmLB5upE4IIdPUTxUWaZwIkCpXgFEe0zas/e0aBW
         3NdA==
X-Gm-Message-State: AOJu0YwuRC/szAlqtiXdo8JGNY3eUy5TbWUwfOcbGSuC+j33ipy42Yts
	hJOJwbDSM9VkL1Iy+cjS96UN+po/F0AlhdL1vo3Ezts5P4J51exNh0UOtaxqkEq1ucS2Y/YXrAY
	M
X-Google-Smtp-Source: AGHT+IF+7jzebJ2teRC8Kzz7grSClL0NnK2DMupouM4RPwysH2XrrfnFWseAGh4ak5FLW4WIsclcJQ==
X-Received: by 2002:a17:907:2dac:b0:a9a:ad8:fc56 with SMTP id a640c23a62f3a-aa483529cb4mr1167301866b.44.1731927108814;
        Mon, 18 Nov 2024 02:51: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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>
Subject: [PATCH] xen/bootinfo: Include declaration for fw_unreserved_regions()
Date: Mon, 18 Nov 2024 10:51:45 +0000
Message-Id: <20241118105145.2329902-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Eclair complains that fw_unreserved_regions() can't see it's declaration.
Include <asm/setup.h> to address this.

This makes Mira Rule 8.4 clean on ARM, so tag it as such.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: consulting@bugseng.com <consulting@bugseng.com>

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1547057124
---
 automation/eclair_analysis/ECLAIR/tagging.ecl | 2 +-
 xen/common/device-tree/bootinfo.c             | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index 9318e5b10ca8..7944ce2ee3b2 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -115,7 +115,7 @@ if(string_equal(target,"x86_64"),
 )
 
 if(string_equal(target,"arm64"),
-    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
+    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3R1.R8.4||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
 )
 
 -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
index f2e6a1145b7c..3738eb57ff52 100644
--- a/xen/common/device-tree/bootinfo.c
+++ b/xen/common/device-tree/bootinfo.c
@@ -17,6 +17,8 @@
 #include <xen/libfdt/libfdt-xen.h>
 #include <xen/mm.h>
 
+#include <asm/setup.h>
+
 struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
 
 const char * __init boot_module_kind_as_string(bootmodule_kind kind)

base-commit: 88c40dc108bfddb32a891e2e20d48bbe94949200
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 11:06:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 11:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839258.1255075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCzaj-00066p-AE; Mon, 18 Nov 2024 11:06:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839258.1255075; Mon, 18 Nov 2024 11:06: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 1tCzaj-00066i-79; Mon, 18 Nov 2024 11:06:49 +0000
Received: by outflank-mailman (input) for mailman id 839258;
 Mon, 18 Nov 2024 11: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=HleL=SN=suse.com=pmladek@srs-se1.protection.inumbo.net>)
 id 1tCzai-00066c-33
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 11:06:48 +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 3169ddaf-a59d-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 12:06:43 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-38231e9d518so1642813f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 03:06:43 -0800 (PST)
Received: from pathway.suse.cz ([176.114.240.50])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-38242eef982sm4319340f8f.8.2024.11.18.03.06.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Nov 2024 03:06: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: 3169ddaf-a59d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmUiLCJoZWxvIjoibWFpbC13cjEteDQyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxNjlkZGFmLWE1OWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTI4MDAzLjE2ODM5NCwic2VuZGVyIjoicG1sYWRla0BzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1731928002; x=1732532802; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Q4K7ZFgLQYJQlGAzpq8RK54g3EqKOomWWOR+yhsr1qw=;
        b=dnfB7Lowwdv2Ho7oG+SZH5DYf/3k2gXTKuCx0jHGyiCBQf5vunXdorbc9/XPbjluoN
         aQ0kHg/H1FSipGRpT97RcCWc05ZQBonWUsGGv62LjxmZUC5PkXjPDhDgJdzGH8eyMJFr
         TJBEIcb4+RgY5iwj/zT/cDmaA3OIT4aCJ2DLmn3mEk1SGOVdpPHsYTBfxFSHtGsfjz6d
         p7S70oppXnAQ8TxWv0UpS5+eEi3PNXHnTO6ju31SfVC6YCGE4cfX65sMjfxzsr0bbCCs
         HGn8qmZxqOam4S/eDCAOwwqlxnRfe8+olFItU617PXwMSMGTcikHlxQDvcknK1lzfEWd
         RuHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731928002; x=1732532802;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Q4K7ZFgLQYJQlGAzpq8RK54g3EqKOomWWOR+yhsr1qw=;
        b=JcUDu6dKIzYXsm49xc0CHZMLIEF3QKcAOPXsC0URDtDxkwybemvXTESSybKI4Njewx
         IyUt+jX2Xkyb3ZC66wThy+kwRmK3grchhQFHSADViq1PdVi7zf17hb1Qiz3M8ypZhi5m
         YQ3b2WO0bGzORXtmRhuEKM+N72MqpO+ETpXqu4XoYqwjkQez7CRLBIDlaol0W1MNu0xu
         00/Xf9dPPUtUAubWVFpkc7q/L6ST9r2zonvyLCAEEDcSUPL4u4KGcg2xexCttcXt7H13
         s3qRHt82jVOzf1137jSD894JEkA4xLHCZfXU/67Ux6NzDy2TS9G8Vi3LjEJ2f79++JZ3
         YPwQ==
X-Forwarded-Encrypted: i=1; AJvYcCW2IKSwQF/KFlgX8keqKT/adNgMbEA+VMUG8CQEJ0D4smCSdIwP5NOlgPxouP9nq2fbY+MChhJUEsg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZPBS5JoNHjFuJupYhT9XNmo4fnbYfzkPoHmMDnszLeLw+N2E2
	huG51HzRkCBCfRlau2lMxFaRCeVD7iuSBthpdwJtvZfbw/vwVttRQ6L1uNgrvwo=
X-Google-Smtp-Source: AGHT+IEHvVmgRYFNhCs4UC7E5RjVk5JwGYVdnUZOYcUXsiEIWSohYFEZO8cTVp2lMrq4C8xPl0BQ1Q==
X-Received: by 2002:a05:6000:18af:b0:37d:4ef1:1820 with SMTP id ffacd0b85a97d-38225a91e80mr10392779f8f.40.1731928002298;
        Mon, 18 Nov 2024 03:06:42 -0800 (PST)
Date: Mon, 18 Nov 2024 12:06:34 +0100
From: Petr Mladek <pmladek@suse.com>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Easwar Hariharan <eahariha@linux.microsoft.com>,
	Pablo Neira Ayuso <pablo@netfilter.org>,
	Jozsef Kadlecsik <kadlec@netfilter.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Julia Lawall <Julia.Lawall@inria.fr>,
	Nicolas Palix <nicolas.palix@imag.fr>,
	Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Russell King <linux@armlinux.org.uk>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Ofir Bitton <obitton@habana.ai>, Oded Gabbay <ogabbay@kernel.org>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	Thomas =?iso-8859-1?Q?Hellstr=F6m?= <thomas.hellstrom@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Jeroen de Borst <jeroendb@google.com>,
	Praveen Kaligineedi <pkaligineedi@google.com>,
	Shailend Chand <shailend@google.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	James Smart <james.smart@broadcom.com>,
	Dick Kennedy <dick.kennedy@broadcom.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
	Jeff Johnson <jjohnson@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jack Wang <jinpu.wang@cloud.ionos.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
	Joe Lawrence <joe.lawrence@redhat.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Russell King <linux+etnaviv@armlinux.org.uk>,
	Christian Gmeiner <christian.gmeiner@gmail.com>,
	Louis Peens <louis.peens@corigine.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Naveen N Rao <naveen@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	cocci@inria.fr, linux-arm-kernel@lists.infradead.org,
	linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-block@vger.kernel.org,
	linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
	linux-mm@kvack.org, linux-bluetooth@vger.kernel.org,
	linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org,
	ceph-devel@vger.kernel.org, live-patching@vger.kernel.org,
	linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org,
	oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org,
	Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 19/21] livepatch: Convert timeouts to secs_to_jiffies()
Message-ID: <Zzsfuuv3AVomkMxn@pathway.suse.cz>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com>
 <718febc4-59ee-4701-ad62-8b7a8fa7a910@csgroup.eu>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <718febc4-59ee-4701-ad62-8b7a8fa7a910@csgroup.eu>

On Sat 2024-11-16 11:10:52, Christophe Leroy wrote:
> 
> 
> Le 15/11/2024 à 22:26, Easwar Hariharan a écrit :
> > [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> > 
> > Changes made with the following Coccinelle rules:
> > 
> > @@ constant C; @@
> > 
> > - msecs_to_jiffies(C * 1000)
> > + secs_to_jiffies(C)
> > 
> > @@ constant C; @@
> > 
> > - msecs_to_jiffies(C * MSEC_PER_SEC)
> > + secs_to_jiffies(C)
> > 
> > Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> > ---
> >   samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
> >   samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
> >   samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
> >   3 files changed, 7 insertions(+), 7 deletions(-)
> > 
> > diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
> > index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
> > --- a/samples/livepatch/livepatch-callbacks-busymod.c
> > +++ b/samples/livepatch/livepatch-callbacks-busymod.c
> > @@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
> >   {
> >          pr_info("%s\n", __func__);
> >          schedule_delayed_work(&work,
> > -               msecs_to_jiffies(1000 * 0));
> > +               secs_to_jiffies(0));
> 
> Using secs_to_jiffies() is pointless, 0 is universal, should become
> schedule_delayed_work(&work, 0);

Yes, schedule_delayed_work(&work, 0) looks like the right solution.

Or even better, it seems that the delayed work might get replaced by
a normal workqueue work.

Anyway, I am working on a patchset which would remove this sample
module. There is no need to put much effort into the clean up
of this particular module. Do whatever is easiest for you.

Best Regards,
Petr


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 11:12:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 11:12:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839269.1255085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCzgG-0001BW-Vq; Mon, 18 Nov 2024 11:12:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839269.1255085; Mon, 18 Nov 2024 11:12: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 1tCzgG-0001BP-T7; Mon, 18 Nov 2024 11:12:32 +0000
Received: by outflank-mailman (input) for mailman id 839269;
 Mon, 18 Nov 2024 11:12: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=1K7B=SN=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tCzgF-0001BJ-DP
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 11:12:31 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20630.outbound.protection.outlook.com
 [2a01:111:f403:2416::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd6f0341-a59d-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 12:12:27 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by BN5PR12MB9462.namprd12.prod.outlook.com (2603:10b6:408:2ac::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Mon, 18 Nov
 2024 11:12:21 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8158.021; Mon, 18 Nov 2024
 11:12: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: fd6f0341-a59d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjMwIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZkNmYwMzQxLWE1OWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTI4MzQ3LjExMTg0MSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vc3aquoRcZOQlhHLSn8b1JkDGljlcKJ5alD5wx2bGeBdPXUpaqO2G9hq4NGJW1YXHl7bRJNNKgnIaC6oE25ddFdcyAUjMo9ULZ1UJkyXTYdOpeJEaDrR6u7J8H6EOUS6Xf6MvGT0breMWDC95RPcQjciiQBNDOPMLP8vc5OtBvttRk09kqeZRAZQ5D5dK0bUfvK9OJ1vSqQ6yaXoUdPIurzqaItkn1QkUyyuicKU/agpZUbFBasTDZSADjsKj/U8NNLHXFoh5e8QVE6yWQn7DMWLzTaGOu+H8Lv0pSkp3yX1nkj4hxr4V8pPobMWHvlRwIvqd8ljrEYU0/hH9arHkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mRjWJLPEiDeDCX0UwMRDH1xZXMWZpswN2pOHaQ7hz+g=;
 b=ULwTaBpqgIJ7palzFBvo2driMRSdHy6hfeaYyrGNdVFYDN5DuKiiU63pb6QlcztFsEscw0hTdRGVwaRlTJLqNl8qg7ObfO2l3hpqIb83bRKUm5ATlc1m5QWH/4VpCILRTmYFNrK4ObEsU2ZjOORwelbD93aOY+Yi+Ta7gm8VN7S7sr3u5dGwladU7CTZ8nXrh9yRrJ/VtKoWWUoZRbPf0ZHret3HJsKtx5Z7KOs+/Di4WdhMAAvr50GJd9NtlBlGO4sLDjSkzLXqSlg9Fe8s7mrx8XF2VVX7BjwduVWNa/YteYPzF/rXrJLSyuDjlTAnauYfWUzOLPT3CCSavwrANA==
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=mRjWJLPEiDeDCX0UwMRDH1xZXMWZpswN2pOHaQ7hz+g=;
 b=vQmvNg9TOijXKhqdIxKDc/OGkzKuPADQy1whaiZGFfnSR7KT0Igmz3MHvx8GuWw4pZRwp8L8FiVfxJpmsEW4P0pY7rmnRnb5uPvtJ7yuALutUbhqsANGZUlyN12h9LMBzCtEczs6oZnAuB9Op7j1Ua+JHHxbzo+SpvOr+owh9pI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <c4399c89-6491-494b-b513-24498c4cce62@amd.com>
Date: Mon, 18 Nov 2024 11:12:16 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/arm: mpu: Create boot-time MPU protection
 regions
Content-Language: en-GB
To: Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.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: <20241107150330.181143-1-ayan.kumar.halder@amd.com>
 <20241107150330.181143-2-ayan.kumar.halder@amd.com>
 <96ac3dfd-8019-40b4-86eb-8d377880cdc0@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <96ac3dfd-8019-40b4-86eb-8d377880cdc0@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P189CA0032.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:102:53::7) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|BN5PR12MB9462:EE_
X-MS-Office365-Filtering-Correlation-Id: ebc00f37-d8bb-4b3b-4244-08dd07c1df36
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?UWQyeXo2M0VqRHFjN2lnQVJvVDRXRHRJV3NmU2haTVMyOGk1QkZuKzNjSHdt?=
 =?utf-8?B?ZVh0VEFzZ2dTYUVPbnBNckFQMGRsYXdRMU9hRmFBUXVmdXR6ckRqcTZLSmw5?=
 =?utf-8?B?NDVoK3lTbzVGNFZOc0JKK0l6M2l4UTNnSGljVGNKbi8xdEcycHdldUVRaXlt?=
 =?utf-8?B?d1JicHdPNkhoTXp3eUJJUTdxaGJ6RldPb0E2cHZla0JtWWIxdDJTdFp6WnUr?=
 =?utf-8?B?ZlJqbU90OFVKUHBxQjgzSFhSVUNpQnlFRkdjbVg4YWFKbFNMQVB2SlMzMk1D?=
 =?utf-8?B?NmU4SXM0WEszMUdmQUVRY25ZbEtNVlJKUHRYVU14Y0RNVHVQOXpIYmVPNU53?=
 =?utf-8?B?RHhZUkJUdnRBdXQ4VDFJOEhDMitsNjFlek9OOVFqbHBJZ0lVOG8zL2NDaGlq?=
 =?utf-8?B?ZzJSdDZEYmtIbHRnQjViM1hFZ01CaVRIYlFZYnBaWkF0MmlkZEtsYk85SjFQ?=
 =?utf-8?B?YXUxaTJZNVo4Vit5cm5vOFRlM28xV0VqT2FHNmJhYzBYVC9qQ25DOEcweDEx?=
 =?utf-8?B?bmZuTy9KWndLbmgxcDl5aXBKbmU3WklNUkoxNVpGSXZrZnJSR055d0JQS09J?=
 =?utf-8?B?bjhncXFKTDZscnBOU0FzT2FtRmhWWE5IMS9wdVJxNGc4UUM3TEV5QVF6RnQ2?=
 =?utf-8?B?aCtDNXRQRlQybjk4T2FHSkgvT3E2M2dDYkpmeHgzU3BpbWNxNHhEWkFRRksy?=
 =?utf-8?B?RHZkT2pUYm0rQU9ZaldCd1JsdlljOG1Ya0VVeVhaT2VQcWloSENZa044K2pW?=
 =?utf-8?B?U0xSNHg3RGplTXVUWTVRdkhMYnBXNGg5NDNsbW1UVEw0RFJGSFF1QzNaSjJE?=
 =?utf-8?B?SFIrVi9CUkhZS2ZSTDVweVhlTHhJZWxLSHRIYUhkUWRPZ3JidHNnSE94Q3I1?=
 =?utf-8?B?TWF2VlpURmk3TWlXaEVpRW9WWFFGMnd3UXJvT1Q0Rnl3N0psRmd5QzdpSFUy?=
 =?utf-8?B?Ym5RZVVpOS9mZ3A0OHNiN2ZpRzBTeGd1RzFhanR1bEgzaVRQWFBocnFsRURO?=
 =?utf-8?B?RUxEUURCY1VOVERSTnkrSi9wMHgvejN4MUR6UWJKQVYvZTYyRzZlcWJBVWNH?=
 =?utf-8?B?K0N0QWNCc3J1ajZFZVZSYmJDVDVZTjFwejd1RU9mT2tOZWlPQXJqR3NBeXVn?=
 =?utf-8?B?VlBhV0swWXFCTWxyR2R6dWtJaDlOU1l1aFpaVStRZ05lZXhHTlNYOVhjVU9E?=
 =?utf-8?B?U2p4ZjRWSjk5aVVIUE15ZzgxVDgyZHRWelBtK0ZBN0pJcXVvQTkxSSt6TGxm?=
 =?utf-8?B?ekpNRStOaXRVRFdKM2thd2Z6eWM4MGNSNXMrbDNsOC8vcGk0bmlnZmNxR3BP?=
 =?utf-8?B?TnBNUENaS0d1a3Iyd3J1K2hzN2Zmc0QyQ1NYaFI1NWNYcTRmRkc1YVRzZ2Vl?=
 =?utf-8?B?NHJPanNwbW9BMVQ0SzJieXUveE1pTXNMSG5ibXpTdkx4WGRhNEc3Rk5KTU1B?=
 =?utf-8?B?bzdjcEd5Z21NU0YwQnlGa1I3Wk9tNTJ1RHA1U3FSTmkwN0l3Y01BMjVuQjJR?=
 =?utf-8?B?V1oyNGdlRGdYUHJPTFZvT0NQTlZtVVMrTXZRbExoTGtuU0lJbFBOWmN3SE9I?=
 =?utf-8?B?SW5QLzJpcG5RbFNHL2t0dmVObXVza1RQdUFZdkdOVWtyU0FkTm8rOHNGYUlm?=
 =?utf-8?B?TGhBRmZtclk3amNBTitCY1l1NTlxcW9pNXdSY1pFaUY1aE5kQlJBeWdEQmQ0?=
 =?utf-8?B?TGo0b0xaMnlCWkorWXgwRkw5WWxSVlJ1M2hodEVJMFlkWHFFMHE0UnRzY0Zx?=
 =?utf-8?Q?yokUTMP75EQvKexZi2cFDvmEvorxGrqiVIPEyA2?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.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?NGpTRmp2NXJQMGdSOHBHV0V1UitiZ2RHSDJtRVpsS2R5N1MrY3hQWHdWWldF?=
 =?utf-8?B?Y3krbjNWOCtDL2E0U1lFOG45Q054QTJjbG9mdUUyOFRzZjhxN0g4ZTNYZEhh?=
 =?utf-8?B?VzhGOXlmUnFxbWdZRkY4MGpYNFE1MW5Xa0V2TjREek9CYUNpSEg2SlU3d1JH?=
 =?utf-8?B?UThaaVI0R1lpYVVIQktIVVBLd0hqaUtUNFBPVFF1UFhObWNYTWRVVXNiV0Ni?=
 =?utf-8?B?YTdYNDVrV0l0S2hrK1lLcUxzTnNURVkvQ0o0RGtFTFFkT05JallsYjlDOWR0?=
 =?utf-8?B?Zm43Sms3Q3RvdVg4TlV3OVdxaEp1L3dPMVFUYXF5dFRBRlluRm05VWh2Q3ZF?=
 =?utf-8?B?RVNKeTl5TVJ4UE5XZk9ud1dKY25PWDU4elc1SVVvVUs1endyNnpnYnZEdjFm?=
 =?utf-8?B?ckJPRlBNSjlYSEJwYkpqK3Y0aWkxdXZndG92L2pMTDNLM3BFRDQrMWlHTE8y?=
 =?utf-8?B?bGExeVQxTUlJSmdzQldldFdTQVl6Z1k5VndnakI0bE9tRWw3cmFJLzU2dEl4?=
 =?utf-8?B?RXRnWmlNNkVBL08xTGpyRTJ2YUhlZWk4Z1NwbXV3dTcyUlY5cXZTYUVRMGdm?=
 =?utf-8?B?RW1JQWd4dFJKeW1OQ2ZHTEVrYmduZDlPOWpKakV1RVBoMmlrbTBYZUlLY1Vm?=
 =?utf-8?B?OWFJMWtwWVY5Ny9yM2h1SmU2emhaVzhGUzVsUURDaW1tb2prUDNjOWMxWUxn?=
 =?utf-8?B?WmtFSTIzQW5GSE1XV3hvbzArOGlSVUZmR01BdkdoN1VEbzB5VnR3Z3JTVHdM?=
 =?utf-8?B?ZGYzN3h0dWlaQzBKOHM5ZHRCVkFOMlBna2FNMWJRRGRYYlpTN1kwc1MydDdx?=
 =?utf-8?B?M0VuVWJHR3RRdWcvejNoT0hidGRFaXpKNjZyK2twY3h6UHZvQ0hnby9nbWhx?=
 =?utf-8?B?dmdDUFNtUXhqYXluSzZxY2QrK3BDRzF5UW9pK1RuaWJ3WHVMWFByMVM3alZJ?=
 =?utf-8?B?Y1E0Wm1hYjVxR3NCbWhrOTFRMUNiQmgrcjhickducTg2WWo2aUZSbjJIS2xo?=
 =?utf-8?B?cThkU3g5TTNEWmc3VFlMR3dHRkhYNU1ncGdiWC9wU3JjT003WHpPUnBoVzZj?=
 =?utf-8?B?NDZ2alZsaFBzSVd5V2ZhVUM2UVFtUG5VUGZyR2hIY05OWW5tWEZNNyt0dU1L?=
 =?utf-8?B?QmN6MlFQQWd4R1BZZkdreGloSUhiVUJjclVyeXU0VnQwWlJsMUxaY3J4c2JU?=
 =?utf-8?B?bk9sbU1iUmlRcmpUY2I2VU41ZlkybjJuQ3BKTW85c2NFaFgwaDBKOW9qQ0ow?=
 =?utf-8?B?cndCS1MzenVGT29hYVU1alN0MTVQM0E5SmpUeDdnQVJqRkVCUlpOT3ovVzAy?=
 =?utf-8?B?VmE4VkFqZ28rcUFCQ0ZIQlNrZDlqaWlLR2t0REZIeTN1S202cXJaRTlOWk1P?=
 =?utf-8?B?UjBrMzhCbUNQR1JFbGtqS3Vod0FqaTlYVFVkRER3bjhCRkQzOHpmTEE2WXI5?=
 =?utf-8?B?d1ptbzhoVDhkcmJKWUhiQ1hLZjhTK3ZUdkMyd0x1Z2pBTk1LaGtYYUZ3bDEr?=
 =?utf-8?B?cEFwSGR3K1RRMFg0cGlTOWNxWFd1TnU1djdSZTVma3ppMXo4TVlIZGZkOG1l?=
 =?utf-8?B?ZnUvQUl1WnVHQzk2TVdzTWk2Q2RiQ0dNbzBtSlMzUm02QlBaemx6TTh4ZThq?=
 =?utf-8?B?cTQrelRxSUtYR2hvWjBOeXVLYzQ0S1djTnFxbTlMOGJKU3pzYW9tc2h4MGVi?=
 =?utf-8?B?Ny9nOTRtSFM3TGZsb1NTWmp2ck1sMERYYzVQYWtJTHZvT2lFRzVYUUQwY3JT?=
 =?utf-8?B?b3ZLQmdKa3U1bjVjRXg2M21vSXRMMEZET1JXUk9EMVNFTGt3YUU5SHVuME4r?=
 =?utf-8?B?cDYwYlhyTkV2WUc1alRhRnpwdHhyU09Yc2ZnRkNObURSUTBTS2ZnQisvRTVI?=
 =?utf-8?B?NGZYbkMybDRQaFgwYm1LYk43YjJ3SFpjeHpQeXpQNlBiTFBJa2hYMU4xRGFU?=
 =?utf-8?B?bnRaR05yNUZraEE3TWpqR21Tc0NvaVRCNWM3K1V1MjZGWGxwTjVVLzVGYWxx?=
 =?utf-8?B?SDVYLzM3TWJDc0xxZy9sU3E5L21OM3RBbjJWVVdYYTB1TkIwOWJNYVBpeUdO?=
 =?utf-8?B?NHZEdnhveHNBUEc3emJiTnRXRXhPc3hCUnNWZ1VsV3ViSy8wVCs3NE9UZEM2?=
 =?utf-8?Q?tZ/mDJ2dCwhv//tq7caqI82cH?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ebc00f37-d8bb-4b3b-4244-08dd07c1df36
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 11:12:21.3956
 (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: kW2+oCkLmzLNcmXwzmp2t4sAOMz043czJ5WRfX9b8mrMvPdpiIJQ/evvVd6Q4jZGqzDHWbDW8WGE9LERLyU9nw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9462


On 16/11/2024 10:30, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 07/11/2024 15:03, Ayan Kumar Halder wrote:
>> +/*
>> + * Macro to prepare and set a EL2 MPU memory region.
>> + * We will also create an according MPU memory region entry, which
>> + * is a structure of pr_t,Â  in table \prmap.
>> + *
>> + * Inputs:
This needs to be removed as some parameters are both input and output 
(eg sel) and some parameters are for temporary storage (eg prbar, prlar).
>> + * sel:Â Â Â Â Â Â Â Â  region selector
>
> ``sel`` is now also an output. But looking at the description, we 
> don't seem to say which registers are preserved or not. For instance, 
> both ..
>
>> + * base:Â Â Â Â Â Â Â  reg storing base address (should be page-aligned) > 
>> + * limit:Â Â Â Â Â Â  reg storing limit address
>
> ... the two registers above will be clobbered. On the other hand...
>
>> + * prbar:Â Â Â Â Â Â  store computed PRBAR_EL2 value
>> + * prlar:Â Â Â Â Â Â  store computed PRLAR_EL2 value
>> + * maxcount:Â Â Â  maximum number of EL2 regions supported
>
> ... this will be preserved. So I think we need to clarify it. For 
> instance, this is the description of create_table_entry_from_paddr:
Actually prbar, prlar are similar to tmp1, tmp2 (ie scratch registers). 
I used the names so as to make it more meaningful.
>
> /*
> Â * Macro to create a page table entry in \ptbl to \tbl
> Â * ptbl:Â Â Â  table symbol where the entry will be created
> Â * tbl:Â Â Â Â  physical address of the table to point to
> Â * virt:Â Â Â  virtual address
> Â * lvl:Â Â Â Â  page-table level
> Â * tmp1:Â Â Â  scratch register
> Â * tmp2:Â Â Â  scratch register
> Â *
> Â * Preserves \virt
> Â * Clobbers \tbl, \tmp1, \tmp2
> Â *
> Â * Note that all parameters using registers should be distinct.
> Â */
>
In our case, it will be

/*
 Â * Macro to prepare and set a EL2 MPU memory region.
 Â * We will also create an according MPU memory region entry, which
 Â * is a structure of pr_t,Â  in table \prmap.
 Â *
 Â * sel:Â Â Â Â Â Â Â Â  region selector
 Â * base:Â Â Â Â Â Â Â  reg storing base address
 Â * limit:Â Â Â Â Â Â  reg storing limit address
 Â * prbar:Â Â Â Â Â Â  store computed PRBAR_EL2 value
 Â * prlar:Â Â Â Â Â Â  store computed PRLAR_EL2 value
 Â * maxcount:Â Â Â  maximum number of EL2 regions supported
 Â * attr_prbar:Â  PRBAR_EL2-related memory attributes. If not specified 
it will be
 Â * REGION_DATA_PRBAR
 Â * attr_prlar:Â  PRLAR_EL2-related memory attributes. If not specified 
it will be
 Â *Â Â Â Â Â Â Â Â Â Â Â Â Â  REGION_NORMAL_PRLAR
 Â *
 Â * Preserves \maxcount
 Â * Clobbers \sel, \base, \limit, \prbar, \prlar
 Â *
 Â * Note that all parameters using registers should be distinct.
 Â */

- Ayan



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 11:26:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 11:26:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839280.1255096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCztV-00026F-4F; Mon, 18 Nov 2024 11:26:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839280.1255096; Mon, 18 Nov 2024 11:26: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 1tCztV-000268-0m; Mon, 18 Nov 2024 11:26:13 +0000
Received: by outflank-mailman (input) for mailman id 839280;
 Mon, 18 Nov 2024 11:26: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=91/F=SN=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tCztT-00025j-Bz
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 11:26:11 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170130004.outbound.protection.outlook.com
 [2a01:111:f403:c200::4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6feaea0-a59f-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 12:26:06 +0100 (CET)
Received: from AM0PR01CA0178.eurprd01.prod.exchangelabs.com
 (2603:10a6:208:aa::47) by VI1PR08MB5472.eurprd08.prod.outlook.com
 (2603:10a6:803:13b::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Mon, 18 Nov
 2024 11:26:02 +0000
Received: from AM2PEPF0001C70D.eurprd05.prod.outlook.com
 (2603:10a6:208:aa:cafe::51) by AM0PR01CA0178.outlook.office365.com
 (2603:10a6:208:aa::47) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20 via Frontend
 Transport; Mon, 18 Nov 2024 11:26:02 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM2PEPF0001C70D.mail.protection.outlook.com (10.167.16.201) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Mon, 18 Nov 2024 11:26:01 +0000
Received: ("Tessian outbound bf1c175f6cbb:v490");
 Mon, 18 Nov 2024 11:26:01 +0000
Received: from L0eb1d3bf2105.3
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 51072EA2-A710-4309-8F7A-68270FD01695.1; 
 Mon, 18 Nov 2024 11:25:50 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L0eb1d3bf2105.3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 18 Nov 2024 11:25:50 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by PR3PR08MB5660.eurprd08.prod.outlook.com (2603:10a6:102:8d::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Mon, 18 Nov
 2024 11:25:45 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.023; Mon, 18 Nov 2024
 11:25: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: e6feaea0-a59f-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6YzIwMDo6NCIsImhlbG8iOiJEVVpQUjgzQ1UwMDEub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImU2ZmVhZWEwLWE1OWYtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTI5MTY3LjA0NjExMywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=f+BwnxcQdtCl4lKapihpNdXwvx4drIqaQ+tIa3QQ++JJ21cklM9g26ec2xK1OsApPazEHcdY/TTbDmEqJ4hKO1QxODCb39NGpNl9R2CBTjiKiGTsDoGEWq35dPQy3N6KpHg1wSJAUz2kvlUEW1HbIgZNYo+VTMasyfJCsU+cRjDAaswSYcSg4Sr2LFPeSaW6ibb66Jg5bkRtiFXQrixrv0QjMNk3KyNaCaRVmXi1kvJZYZspPomheAE26wmapmIo6TOiyc8SkbP3o+USLsH95oMnf2A8baRG3s0dllALIBqhMBsTtNhh4Su6aaD0kf9Nwq/a2yyE0yr4QLqoe5WGzQ==
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=X18TRJjfZG5ogE2E6zEhVsufJfPN/PtToNLWcwY45wE=;
 b=Y0hOnTG2TOFApIcuDptIC+F8WElGYYCK2/SLgu3l5RA+ccfm+/4Z3IAl3sofCFIA+yOfIHFtjdfJwteY5s1ji53rQ5NVMFwKicJ2dt4OBDiXtINJ0lBD+1dpAvRz1TiGyMv5dpsJCcW2WWqPLv9R49rvZQWCYECGkRjTrIB1IPhuYj0EEKz5GKkaUP2xHuGduYAGPIgk9sKyTmYMXIOgFCBl4rvew8y9FlhgKxWQcUuLYa58RUsurbQwOPUb+7v1U8n9jxLz25kBB4YLFlmtG6P8VCT2p0gNTuGSIL69BZCyv1jSxrBdadMtVtGYzhMKeanGUh7VMF1Ai69nFiN3EQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=X18TRJjfZG5ogE2E6zEhVsufJfPN/PtToNLWcwY45wE=;
 b=aFdJJDN5ccMtHW4CZtlXiT9SC3dwh0x2DRr8bQsmrMUYYdiCQMp0K84ZuRltoa1wCWdZhmlHfFLRrBhrQPmbWs/a9aexOl5pEmpinFlhEQnCcl0mmbwGNJHzFQ+Je8+Da7SNLiy3VBxFleoozH5qhqmK/hrEAQXXLshpBz+EGE8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 7cfad5cff5e96ad9
X-TessianGatewayMetadata: EYgbhrQlY66eiAHHO5ctEF4adANZ64b9q0KSSe0hpxDarKp2VRTUfioV2BhcIPfiAtT+pOz8+ZDymFLmWkuql32Y7lL03Mv1//et+2bpBepRVidn7jxN6wcOe2EG2XqUsvxyYHKiTPkCemcW2gh2tsvqitQ5LHv9kPEikI07Jds=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ox8KailIkuevCr0joyh7I4vZZXlo7YC6hiO+s/hD7jNu3THL4M1pkh0g4zLv3OGuu3SCrJPDcv7FyvolLzp8ONjT++jsxtJpAQzw+wJGIRMal/f9adUSqp5ob0VQszYS/r7rOeWP/gmSQcZh5YY6+4OCzOsVak+DPT+OnWpwmWL9outsGxglg0bCJq8qyYMPzkqXW6NF917fvwys/msP7yxW93p9GcJfDSOzk+ya2nRVOkw706HBFdTM8MHr30IbiL3aLirAC54AIZ0ORRLwR9HR9I5H11N9efwlmeA6OWploZUXeQAzTFAPuA+lqhd+DeDlY4QmxgCDzWgdFrLe2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X18TRJjfZG5ogE2E6zEhVsufJfPN/PtToNLWcwY45wE=;
 b=LSApPBWvbCqCiZk3nKsS69hjkSLZpSt4oXFgdVfQv6DP50lXudVM+e9Dloq7nHxIci1Gvm1U43KTyKnZU0DryboNHU3lxRmb8bHCJ07xXVLlVTHX/8JAOdS7eW0cskDcybPo7On7otMP0XaxrpNKuAqwKezLxi6rzdWEWeGIXS4AXvknVXSZO83uRbd8JCgfdanTy7ugEKv2P9gJAYAO0RS/ipnQN1WGnOsEu88WNiZV4ZgMRUhcI5NofQtcg/8BOGlTgMKv93WA3xGSl1Cor05TfO5OeGfsVZUZC0lsBs5PPyjj7FVjou8v4Cw4lX00B/wX7slcHm5Tx6/yhNf6XQ==
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=X18TRJjfZG5ogE2E6zEhVsufJfPN/PtToNLWcwY45wE=;
 b=aFdJJDN5ccMtHW4CZtlXiT9SC3dwh0x2DRr8bQsmrMUYYdiCQMp0K84ZuRltoa1wCWdZhmlHfFLRrBhrQPmbWs/a9aexOl5pEmpinFlhEQnCcl0mmbwGNJHzFQ+Je8+Da7SNLiy3VBxFleoozH5qhqmK/hrEAQXXLshpBz+EGE8=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Penny
 Zheng <Penny.Zheng@arm.com>, 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 5/5] xen/arm: do not give memory back to static heap
Thread-Topic: [PATCH 5/5] xen/arm: do not give memory back to static heap
Thread-Index: AQHbN0xIcV74X7F5t0unnpAIyChkWLK7ylSAgAEgJgA=
Date: Mon, 18 Nov 2024 11:25:45 +0000
Message-ID: <D677C8EA-7A4C-4073-8434-6397089D9E63@arm.com>
References: <20241115105036.218418-1-luca.fancellu@arm.com>
 <20241115105036.218418-6-luca.fancellu@arm.com>
 <857e4cd2-f8b2-41e0-bc66-96628bc48044@xen.org>
In-Reply-To: <857e4cd2-f8b2-41e0-bc66-96628bc48044@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|PR3PR08MB5660:EE_|AM2PEPF0001C70D:EE_|VI1PR08MB5472:EE_
X-MS-Office365-Filtering-Correlation-Id: 58a323bc-430e-40a4-d023-08dd07c3c881
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|1800799024|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?VFZEeFd2MDc1RDdlUGJuQUpvcFczOENWY01rY3ZmZGQyMUxoVm1DZHBBcnlk?=
 =?utf-8?B?cFc1WU56d2dYM0FBQW1HempRK3VSMklWd0gwVGdBQStzcVcrdXJoYkNDaFZ4?=
 =?utf-8?B?eDZxS21FdGczT21GYTd3blNDQ3RuT1RieXc4OTdNODNHODNvV1ZNY3BjVVJn?=
 =?utf-8?B?c2dUNWhsWGRIRHVIMi8zQ2FKU3NTS3d0N2ZLSjlCUkFDQjZGRDEvRkJBMnY4?=
 =?utf-8?B?TnRxZFR6cGRDTGdyeW5YcDRsQjFmY3hFdFcwSGJMK24wemZuN0h4eXNscVJq?=
 =?utf-8?B?Wm5LUnVLOHVUaUVVSkdwc0VsNGgySTJ0blo2L084TWY0dExYblRJbHpORDdw?=
 =?utf-8?B?SUdZTXhISDlQMm13NGQrZEc0TC9yZ0JxQUtQWS93N0djZElzMUZUZmU5K3dW?=
 =?utf-8?B?N2JDQzV1bEN4eFFkNDZmWXlCMUFicVByY1NqSHNGV3BEWVg0UGRiWGZhVkpt?=
 =?utf-8?B?YWdTbkNNbmhjS1pWUDMyRDFEVDhNZ21xQm1qNTI5Zm9jdC9PVEpsWXdJK1VN?=
 =?utf-8?B?R2RBaDd0WkdUSHptTDJxVGFBR3dQdkp6YXY1R0dBNVcvbTlXSkFsajdodTd5?=
 =?utf-8?B?aGxTaEUxT3dsZDhEdU1oL1dmVnhGWWdBclVVY1pVamVJWkVqaXNrTWxCUWVa?=
 =?utf-8?B?Ky96T1hPSW9RUFVlaXVqR1ZGU2dYc2hvR3hsSDdSaDZ3SnMwYVFDQ2tERkFx?=
 =?utf-8?B?Zk1rL2xmWThOdWlQeVRjQWpRVE9BMk1lRWZxN0JKRFlia1B3eU9YWEhGTzli?=
 =?utf-8?B?czl4VVJPOWNuR0hhZVdXMnhmd2cyUzQwU3BJWVpsSzZOY2cwUlJWclNYRzUv?=
 =?utf-8?B?b3BYaDRXNWpUbHRab0dqNk1mWFN6a0xNZzBGSmt1TlZJOFEvZlM3eW5pcGZ1?=
 =?utf-8?B?WWFROWNaczZyQ3ZKWGk1Vkg5cVM4TXI3dWJYNlRFbGMzVkFMa2VyTzNvWGtR?=
 =?utf-8?B?elQ3WHdYMzhGZnVXM1JsYnZSSk15cGNrOTFCY3FRQUs5K0VWU2lZQ1BqaWVz?=
 =?utf-8?B?bWtTVDRtcEhNL1FOdUhSMVRPYjlubDh6MTc4VzVlL1Z0cm9LQ1pPeFdMWG16?=
 =?utf-8?B?VUlWYWZXR2w3dlFyM0doSTFFdVFBTjdlMjJRWEpaNkgrTHlrUjlBeE0zdmVq?=
 =?utf-8?B?VVBqdi9YUGMrTWdaRXgzRzQyeW9zWjA5SGlnb3ZycDJ4bER2a1RCdm9JclVp?=
 =?utf-8?B?S1NXNnZqYnBnSHp1bGM5RVo3YXBRRGNocDQ4WXNpSzJzVldvUkZNRHEvR3ho?=
 =?utf-8?B?Z0pVczE2UVVlamZDY0crcFFxZFFzaVJIYm8vSzIzZ3hkYXlRT1ozdWJFVW50?=
 =?utf-8?B?MzdxOW5WanVpYlZFYnd0K2dKR3ZwTHYxT3o3Nkc4Q20weWIyRHNNKy83cFpn?=
 =?utf-8?B?MXdySzlJYitPM0xUVHI4NlU3Y3puQTN0VjJaQW5rb3NHNXVaQUs0NUl1V05z?=
 =?utf-8?B?NS81QTAxN0VVYjJQTHVNM2V5Nm1NYTAwT3JBWklnS21MajNVWjQ3Q1phbHdu?=
 =?utf-8?B?UU94WlY5bGVaR1FxRGtyRVhTUDdkek8yWk5GSHVEZ2ZNSFI0QUVOei9yTGpu?=
 =?utf-8?B?Z2hZd0djdlYzUkMyZEE1MWVPQjR5V1BTWlhQa2RUcnI1QWhXcjl0Nk1xSFhS?=
 =?utf-8?B?d2hHVDRGVytkakFyV3dUQlFMM3VUNnllb1h1UkdQdWxVU0dBSVB0ZDI4bDc2?=
 =?utf-8?B?dnZ2OWZ4ekFFQXlQOVJhSzhyVGs5TUU0ZDZqbGdqSUFacW9xSXFoeFh5RHlL?=
 =?utf-8?Q?cnI+nL6JhDa3891igUY++iDEBRQGA3+xyFTctvq?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <4524B25473A7004C948F22836D7FF2D9@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5660
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C70D.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ae3b1134-98c9-4021-e7cb-08dd07c3bea1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|14060799003|82310400026|35042699022|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OEN0UC9jSUFza3V0SURSWCtkQ29GTjNjMUc5QUx2YWdnS0MxRTR2aHZOL3ly?=
 =?utf-8?B?RUdrNUgvU3FhUFAycFVPVnN6NDZzdDI0eGJQSms3Mzk0QzFreEowbWhOTUdL?=
 =?utf-8?B?am41NWw3cFRIUDZNM2owbiswNE5kaERFaVVQemRhK1FZNC81a0lsWDhzZ05o?=
 =?utf-8?B?T2U4UHhlZUVYTUxEREFiN3NqcWc2L1pjelNXSTRBQWJBbkRwSDVQRURaUTVL?=
 =?utf-8?B?U2tyMjMvZEhhZzNyTXduRHJxMGZESy9UeVhTalQwTEU4S1MwZjJvRmgxQU1o?=
 =?utf-8?B?VkhmTVQ0L1NiZHpBQ3VSVFM0VmtVNmQ0eDkrTzNWallOUVZQaHY5Z3U3bER5?=
 =?utf-8?B?bWozY0xZL0pmakpuNDVSS3ZyUG9mN0FCN0Z3cTRvNjZrSkg0VEVOUEJFNEdF?=
 =?utf-8?B?c293MlBOYXhNN0h1ZEtHZFRHT0hpVmFFeEg3VlA5b21uNGhkQndzeFN5VjZk?=
 =?utf-8?B?MFgzSUVSL0t5c2xET3pnalY4MG0rOTVrbDhzL2hwenc2RnZyR05nQ2x0THFz?=
 =?utf-8?B?WS9kR2dXaC8vUUpoUC9MVUxUU2lUNWdDSnp4RkZ4ZHJSUWdxM2p4S2FyRDRI?=
 =?utf-8?B?VTVnaXJ5cC9yMVlaWERQbUpmaXBtZk5TUTdkNVlISzRMcTBuNjZjeGpCOUJz?=
 =?utf-8?B?cmVYZnlXSEpmNXorNEdvTnJxZFdoYVhValBnOE0vK0VWclIraFFsbjRGWmxJ?=
 =?utf-8?B?cEs2ZEdxK01NZXBmQlY3MmVibkYxM0FER05yOUE2TEVPbVBsTTY3K2NXQ2l1?=
 =?utf-8?B?enZ6ZVBvb25MVm1MdHhMcVFWd2RFU0hYaitYbEtxWTFMQWx0SGlwc0VwNk5r?=
 =?utf-8?B?cFhENFBidVl5VlhEc29WMkYza3JGcHZ2V0JEQnFFV1J5ZDJRbTJqckZ5ZlJL?=
 =?utf-8?B?K2JGbWtBM2owdWRGMTJYalBDNWhhUjhwQitvVktNUHVlK1pBdEVHeE43ZVU5?=
 =?utf-8?B?Y0loU2VTMlZST3Erd0VlVEsxTGs5SUsrSkJ2WEJvWEZxYTM1MzlJelErNzVN?=
 =?utf-8?B?bUtkNmhqdEUvQlIzWWE5RE5JekJBZlBEcE9YT3hsRGNDSlhOSCtxTmVHTzdw?=
 =?utf-8?B?ZXIvTGJ0a3pSbE0ybjhjRStGc0ZMNENHY2ZJdHMvLzViU0UvNW9BMWpuTjlD?=
 =?utf-8?B?aTdWSDJyVnpGOTh3N0RLVFVGNHlhWGg2QjhMeUFWbyt5SUtJb1ZWenRMbTUz?=
 =?utf-8?B?MXFkUDQ5MUNTdmxDSjJwQnhFaHZ6dzErU1RIYWZKbjVqWjhYRXllOWhkWE5O?=
 =?utf-8?B?NlFUeVR1MWRoV3d6RkF0N2RGaWVOdlNHaTA2bTY1cDFTMXFhMlFYMFV0c3F4?=
 =?utf-8?B?Qk5neCs0WjFMRFd2dEF6TEJSS2c4T1VrZDc2eWZOUm9HRkdrcit3dkUzVnV2?=
 =?utf-8?B?VjNVb01UaXVQU3pZaUphclRSRGFNZGx2RTVHVnhWMTY5bHp1bE5GTS9Xcnhm?=
 =?utf-8?B?VzJTRkY1OTVhMFNkVi9QbW9EdGNDRWd6SGxmNTZYaFFBV0Z1UHp4U0VWZG5r?=
 =?utf-8?B?U1Rza3crZzRvdHBlamdXN0Q4Z0VNT0lISUNXbVVab2RDdksvVUFvT05neEV2?=
 =?utf-8?B?RW8zNFlzYlRtZlBwLzlaUzFIUWN1Ly9uVHd6TmFZRU5qTVp4UWFnNWY2bG1j?=
 =?utf-8?B?TEJ0ZWRvR3VjTFdQbkRNZlRuSlVMVEx4RXBpdUlTd2t4ZlZVWVNwbUpUazRm?=
 =?utf-8?B?dStLdjh2cTVzTmJ5RHcxRlNSbUxSYk83SDFaTXd2SW82cjlKVktOMEFCeDJZ?=
 =?utf-8?B?RnR4aU9lSWJTenU2ZzZXOW01UjNhL21TajhQTlYxanAycHFId0RVZEJVV3Jw?=
 =?utf-8?Q?bqNwuPlrd9oD4ChQCTY2U6XgqSiew6waZOT3g=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(14060799003)(82310400026)(35042699022)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 11:26:01.9977
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 58a323bc-430e-40a4-d023-08dd07c3c881
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM2PEPF0001C70D.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5472

SGkgSnVsaWVuLA0KDQo+PiAtICAgIGZ3X3VucmVzZXJ2ZWRfcmVnaW9ucyhhZGRyLCBhZGRyICsg
c2l6ZSwgaW5pdF9kb21oZWFwX3BhZ2VzLCAwKTsNCj4+ICsgICAgaWYgKCAheGVuX2lzX3VzaW5n
X3N0YXRpY2hlYXAoKSApDQo+IA0KPiBUaGUgY29tbWVudCBvbiB0b3AgbmVlZHMgdG8gYmUgdXBk
YXRlZC4NCg0KSeKAmWxsIHVwZGF0ZSwgaXMgdGhpcyBvazoNCg0KLyoNCiAqIEluIGNhc2UgWGVu
IGlzIG5vdCB1c2luZyB0aGUgc3RhdGljIGhlYXAgZmVhdHVyZSwgZnJlZSB0aGUgb3JpZ2luYWwN
CiAqIGtlcm5lbCwgdXBkYXRlIHRoZSBwb2ludGVycyB0byB0aGUgZGVjb21wcmVzc2VkIGtlcm5l
bA0KICovDQoNCj4+IA0KPj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvZGV2
aWNlLXRyZWUuYyBiL3hlbi9jb21tb24vZGV2aWNlLXRyZWUvZGV2aWNlLXRyZWUuYw0KPj4gaW5k
ZXggZDA1MjhjNTgyNTY1Li4yMmI2OWM0OTE3MWIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vY29tbW9u
L2RldmljZS10cmVlL2RldmljZS10cmVlLmMNCj4+ICsrKyBiL3hlbi9jb21tb24vZGV2aWNlLXRy
ZWUvZGV2aWNlLXRyZWUuYw0KPj4gQEAgLTI1LDYgKzI1LDkgQEANCj4+ICAjaW5jbHVkZSA8YXNt
L3NldHVwLmg+DQo+PiAgI2luY2x1ZGUgPHhlbi9lcnIuaD4NCj4+ICArLyogRmxhZyBzYXZlZCB3
aGVuIFhlbiBpcyB1c2luZyB0aGUgc3RhdGljIGhlYXAgZmVhdHVyZSAoeGVuLHN0YXRpYy1oZWFw
KSAqLw0KPj4gK2Jvb2wgX19yZWFkX21vc3RseSBzdGF0aWNfaGVhcDsNCj4gDQo+IFN0cmljdGx5
IHNwZWFraW5nLCBzdGF0aWNfaGVhcCBjb3VsZCBiZSB1c2VkIHdpdGggQUNQSSAoZXZlbiB0aG91
Z2ggdGhlcmUgaXMgbm90IGJpbmRpbmcgdG9kYXkpLiBTbyBJIHRoaW5rIGl0IHNob3VsZCBub3Qg
YmVsb25nIHRvIGRldmljZS10cmVlLmMuIEkgdGhpbmsgcGFnZV9hbGxvYy5jIG1heSBiZSBtb3Jl
IHN1aXRhYmxlLiBBbHNvLCBJIHRoaW5rIHN0YXRpY19oZWFwIHdpbGwgbm90IGJlIHRvdWNoZWQg
YWZ0ZXIgaW5pdC4gU28gdGhpcyBsaWtlbHkgd2FudHMgdG8gYmUgX19yb19hZnRlcl9pbml0Lg0K
DQpTdXJlLCBJ4oCZbGwgZG8gdGhlIG1vZGlmaWNhdGlvbnMgYW5kIEnigJlsbCBtb3ZlIHRvIGNv
bW1vbi9wYWdlX2FsbG9jLmMNCg0KPiANCj4gTGFzdGx5LCBzaG91bGRuJ3QgdGhpcyBiZSBwcm90
ZWN0ZWQgYnkgI2lmZGVmPyBPdGhlcndpc2UuLi4NCg0KQ291bGQgeW91IGNsYXJpZnkgaWYgSSB1
bmRlcnN0b29kIGNvcnJlY3RseT8NCg0KSWYgSSBwcm90ZWN0IHN0YXRpY19oZWFwIHdpdGggQ09O
RklHX1NUQVRJQ19NRU1PUlksIHRoZW4gSSBoYXZlIHRvIHByb3RlY3QgYWxzbyB0aGUgY29kZSBp
biBodHRwczovL3hlbmJpdHMueGVuLm9yZy9naXR3ZWIvP3A9eGVuLmdpdDthPWJsb2I7Zj14ZW4v
Y29tbW9uL2RldmljZS10cmVlL2Jvb3RmZHQuYztoPTkyN2Y1OWM2NGIwZDY0ODQyZTJhMGZkMDk1
NjJhYzkxOWMyMDRlNmU7aGI9cmVmcy9oZWFkcy9zdGFnaW5nI2wzOTMsDQppcyB0aGlzIHdoYXQg
eW91IGFyZSBleHBlY3Rpbmc/DQoNCkFuZCBpbiB0aGF0IGNhc2UsIHNob3VsZCBpdCBiZSBvbmx5
IHRvIHByb3RlY3QgdGhlIGFjY2VzcyB0byB0aGUgdmFyaWFibGUgb3IgdGhlIGFsbCBibG9jaz8g
Rm9yIGV4YW1wbGUgbm93IGlmIENPTkZJR19TVEFUSUNfTUVNT1JZIGlzIG5vdCBzZXQsIEkgdGhp
bmsgd2UgcGFyc2UgYW55d2F5IHRoZSB4ZW4sc3RhdGljLW1lbSwgc28gdGhpcyB0ZW5kcyBtZSB0
byB0aGluayBJIHNob3VsZCBwcm90ZWN0IG9ubHkgdGhlIHZhcmlhYmxlLg0KDQpDaGVlcnMsDQpM
dWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 11:31:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 11:31:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839289.1255106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tCzy5-0004EW-RP; Mon, 18 Nov 2024 11:30:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839289.1255106; Mon, 18 Nov 2024 11:30: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 1tCzy5-0004EP-OP; Mon, 18 Nov 2024 11:30:57 +0000
Received: by outflank-mailman (input) for mailman id 839289;
 Mon, 18 Nov 2024 11:28: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=58Bs=SN=linux.intel.com=thomas.hellstrom@srs-se1.protection.inumbo.net>)
 id 1tCzvv-0002hH-Kc
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 11:28:43 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f9ead55-a5a0-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 12:28:37 +0100 (CET)
Received: from fmviesa008.fm.intel.com ([10.60.135.148])
 by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 18 Nov 2024 03:28:31 -0800
Received: from mwiniars-desk2.ger.corp.intel.com (HELO [10.245.246.149])
 ([10.245.246.149])
 by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 18 Nov 2024 03:28:08 -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: 3f9ead55-a5a0-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4xNzUuNjUuMTEiLCJoZWxvIjoibWdhbWFpbC5pbnRlbC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjNmOWVhZDU1LWE1YTAtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTI5MzE3LjQ5MjA3OSwic2VuZGVyIjoidGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1731929318; x=1763465318;
  h=message-id:subject:from:to:cc:date:in-reply-to:
   references:content-transfer-encoding:mime-version;
  bh=eflO5BqcAdiHnObc19vuFxv1kFN4bcVh6FEadC6e/J0=;
  b=lFrt8AT50Yc243PzBHS1534Dme2dWAbTetXsC6bdgWFW7xZ2s34zJ4yc
   UwBu+UVbT4sQ5j6i1FMAdN1NXgIwod/pHXyZHhLpbiZM/niTFbtuBJo2K
   BVsn4fBvenALOaWgFGXTVaaN0KixrtH4lvt+RKMMMdX1hSvTiw4NwDuOY
   xYx7o4y20KbLPRJNuLXegsnEgvSPem87WCkU3ULUz2fcQ5hxHBTCPDDf+
   ra6GtEOc5/Wh6XadqXzNwQPVk/yvy2QvPKR20FXJd9deRJiIdDNDAMBB/
   2Spdfb2uk4naRpcfRMNkh1UCF1EJXFS0Li9w5pquXC16eFue5Wz6MVgcg
   A==;
X-CSE-ConnectionGUID: 4l7xqATPQRiZ4vQbUEV31A==
X-CSE-MsgGUID: Kiz631hCRauLD4bnwKo6/Q==
X-IronPort-AV: E=McAfee;i="6700,10204,11259"; a="42396212"
X-IronPort-AV: E=Sophos;i="6.12,163,1728975600"; 
   d="scan'208";a="42396212"
X-CSE-ConnectionGUID: rRdUd/MrRkyoZEJD1Sac1Q==
X-CSE-MsgGUID: apTDPmdSTQ+3Y3NYJwg9xw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.12,163,1728975600"; 
   d="scan'208";a="89329614"
Message-ID: <62c1e9e941cec75cf8771761fb9981879fefcce5.camel@linux.intel.com>
Subject: Re: [PATCH 08/22] drm/xe: Convert timeout to secs_to_jiffies()
From: Thomas =?ISO-8859-1?Q?Hellstr=F6m?= <thomas.hellstrom@linux.intel.com>
To: Easwar Hariharan <eahariha@linux.microsoft.com>, Pablo Neira Ayuso
 <pablo@netfilter.org>, Jozsef Kadlecsik <kadlec@netfilter.org>, "David S.
 Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub
 Kicinski <kuba@kernel.org>,  Paolo Abeni <pabeni@redhat.com>, Simon Horman
 <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,  Nicolas Palix
 <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, Haojian Zhuang
 <haojian.zhuang@gmail.com>, Robert Jarzmik <robert.jarzmik@free.fr>,
 Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger
 <borntraeger@linux.ibm.com>, Sven Schnelle <svens@linux.ibm.com>, Ofir
 Bitton <obitton@habana.ai>, Oded Gabbay <ogabbay@kernel.org>, Lucas De
 Marchi <lucas.demarchi@intel.com>, Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard
 <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, David Airlie
 <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, Jeroen de Borst
 <jeroendb@google.com>, Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>, Dick Kennedy
 <dick.kennedy@broadcom.com>, "James E.J. Bottomley"
 <James.Bottomley@HansenPartnership.com>, "Martin K. Petersen"
 <martin.petersen@oracle.com>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, Jens Axboe <axboe@kernel.dk>, Kalle Valo
 <kvalo@kernel.org>, Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>, Jack
 Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann <marcel@holtmann.org>,
 Johan Hedberg <johan.hedberg@gmail.com>, Luiz Augusto von Dentz
 <luiz.dentz@gmail.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, Broadcom
 internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Xiubo
 Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,  Josh Poimboeuf
 <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, Miroslav Benes
 <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, Joe Lawrence
 <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai
 <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, Russell King
 <linux+etnaviv@armlinux.org.uk>,  Christian Gmeiner
 <christian.gmeiner@gmail.com>, Louis Peens <louis.peens@corigine.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>, Naveen N Rao
 <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org, 
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr, 
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org,  linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org,  ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org,  linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org,  oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
Date: Mon, 18 Nov 2024 12:27:53 +0100
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-8-19aadc34941b@linux.microsoft.com>
References: 
	<20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
	 <20241115-converge-secs-to-jiffies-v1-8-19aadc34941b@linux.microsoft.com>
Autocrypt: addr=thomas.hellstrom@linux.intel.com; prefer-encrypt=mutual;
 keydata=mDMEZaWU6xYJKwYBBAHaRw8BAQdAj/We1UBCIrAm9H5t5Z7+elYJowdlhiYE8zUXgxcFz360SFRob21hcyBIZWxsc3Ryw7ZtIChJbnRlbCBMaW51eCBlbWFpbCkgPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPoiTBBMWCgA7FiEEbJFDO8NaBua8diGTuBaTVQrGBr8FAmWllOsCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQuBaTVQrGBr/yQAD/Z1B+Kzy2JTuIy9LsKfC9FJmt1K/4qgaVeZMIKCAxf2UBAJhmZ5jmkDIf6YghfINZlYq6ixyWnOkWMuSLmELwOsgPuDgEZaWU6xIKKwYBBAGXVQEFAQEHQF9v/LNGegctctMWGHvmV/6oKOWWf/vd4MeqoSYTxVBTAwEIB4h4BBgWCgAgFiEEbJFDO8NaBua8diGTuBaTVQrGBr8FAmWllOsCGwwACgkQuBaTVQrGBr/P2QD9Gts6Ee91w3SzOelNjsus/DcCTBb3fRugJoqcfxjKU0gBAKIFVMvVUGbhlEi6EFTZmBZ0QIZEIzOOVfkaIgWelFEH
Organization: Intel Sweden AB, Registration Number: 556189-6027
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.50.4 (3.50.4-3.fc39) 
MIME-Version: 1.0

On Fri, 2024-11-15 at 21:22 +0000, Easwar Hariharan wrote:
> Changes made with the following Coccinelle rules:
>=20
> @@ constant C; @@
>=20
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
>=20
> @@ constant C; @@
>=20
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
>=20
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
Reviewed-by: Thomas Hellstr=C3=B6m <thomas.hellstrom@linux.intel.com>

<
> ---
> =C2=A0drivers/gpu/drm/xe/xe_device.c | 2 +-
> =C2=A01 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/drivers/gpu/drm/xe/xe_device.c
> b/drivers/gpu/drm/xe/xe_device.c
> index
> a1987b554a8d2aa42b29301f2853edddfda7fda5..bb3338ef4191e76128611eeb953
> 1c9d2089db85a 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -502,7 +502,7 @@ static int wait_for_lmem_ready(struct xe_device
> *xe)
> =C2=A0	drm_dbg(&xe->drm, "Waiting for lmem initialization\n");
> =C2=A0
> =C2=A0	start =3D jiffies;
> -	timeout =3D start + msecs_to_jiffies(60 * 1000); /* 60 sec! */
> +	timeout =3D start + secs_to_jiffies(60); /* 60 sec! */
> =C2=A0
> =C2=A0	do {
> =C2=A0		if (signal_pending(current))
>=20



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 12:13:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 12:13:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839315.1255115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD0cz-0006Wh-13; Mon, 18 Nov 2024 12:13:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839315.1255115; Mon, 18 Nov 2024 12:13: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 1tD0cy-0006Wa-Ui; Mon, 18 Nov 2024 12:13:12 +0000
Received: by outflank-mailman (input) for mailman id 839315;
 Mon, 18 Nov 2024 12: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=1K7B=SN=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tD0cx-0006WE-Dj
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 12:13:11 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2409::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 75e13fc3-a5a6-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 13:13:04 +0100 (CET)
Received: from BN1PR10CA0026.namprd10.prod.outlook.com (2603:10b6:408:e0::31)
 by PH8PR12MB8429.namprd12.prod.outlook.com (2603:10b6:510:258::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.21; Mon, 18 Nov
 2024 12:13:00 +0000
Received: from BL6PEPF00022570.namprd02.prod.outlook.com
 (2603:10b6:408:e0:cafe::26) by BN1PR10CA0026.outlook.office365.com
 (2603:10b6:408:e0::31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22 via Frontend
 Transport; Mon, 18 Nov 2024 12:13:00 +0000
Received: from SATLEXMB03.amd.com (165.204.84.12) by
 BL6PEPF00022570.mail.protection.outlook.com (10.167.249.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 18 Nov 2024 12:12:59 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Mon, 18 Nov
 2024 06:12:58 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Mon, 18 Nov 2024 06:12: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: 75e13fc3-a5a6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwOTo6NjJlIiwiaGVsbyI6Ik5BTTA0LURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijc1ZTEzZmMzLWE1YTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTMxOTg0LjcwNTU4MSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JU5hXxhAqXzwRAL9pgnLAOsoRmKsZqPaMzCIj6qoCO56mksIFslh2/55kneVnZMpkrQYwkg1oum6ElhiA5X8hnLc4u96WQhEf9i+1XHfQ8pLk6ck61doqGLBe2UCzgsYnRcvZPKNogJp0HL498PN6fvxrxkRf+XLyhBG5GI4CHL9z2JEBOOX8vD3UsI4el3rxWZmRy9p8vTfLlnlXvJF2b2VX+CI/oLlHletd9rT4Zt7GZax+6vzD17Vq+/ioqTAJz0p8Fru+h2e51bEWsXtS4dwOECDAzwz8zE7VxMXgB/6BpfIkvvGOS4ugvtH3WEJ1q5gX5AF3OxEqMh40Nr/7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cxZ8kmXZXDzk5Pkc13K8IChxvdLyLLw0YfRPVdrOXYA=;
 b=ieE/wH45mwYzg8cPNtbQb02BqZN9torMekpIKd4/JRaHo8UAHwBRQD7GMb85BUIZZBXSPk1KFAdR7ohsdYbvbTGJuLQ+PkLOiBjglTmRpBiTQNnVd1UV6vRubH+3kZSm8oc1IcS9IMWxN/Ya4eBl1mqZW6zC36l1vCs5ZVc5fGLihVwa86axbmbau0fs5QcQDj4ONqGdKrajtxL6EZ7Nj35peZ8SMCH9vtHgwCZrFakrPRVOwAHecP5X/vujIqduId3cpBVx1xyBBOrhCLDRTfzR/GmervmDpjV95+ao5Khl1PevuFSYqEpVNXumSmPrImPXhuVA910+UsKgvS+8eQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip
 is 165.204.84.12) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=amd.com; dmarc=fail (p=quarantine sp=quarantine pct=100)
 action=quarantine 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=cxZ8kmXZXDzk5Pkc13K8IChxvdLyLLw0YfRPVdrOXYA=;
 b=HoYQB0ZtDqwTm+KoW3GuSG9+2kZ8ZaH389SGQf76dM//1XkAiwO85THTStVEfQ4A/wJwucOGTxKkjQ7VDpW89iBkyEHpihKk6S7Bh4tM+mscgKvxvt/vtfVZ6IsTqkErcV9d9J7gwPbv2PPuenaLZxLQMnlljBBOr3x/QURUG90=
X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is
 165.204.84.12) smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=fail action=quarantine header.from=amd.com;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
 amd.com discourages use of 165.204.84.12 as permitted sender)
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v6 0/3] Enable early bootup of AArch64 MPU systems
Date: Mon, 18 Nov 2024 12:12:47 +0000
Message-ID: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00022570:EE_|PH8PR12MB8429:EE_
X-MS-Office365-Filtering-Correlation-Id: 8031378c-e999-4d1d-13bf-08dd07ca57f2
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:
	=?us-ascii?Q?0ftu/GaIT+lBqHNZl8q6S8PpfhlL8V29sGVs5Fro+wMAe14UWqZSTAj/SK2y?=
 =?us-ascii?Q?7ND+rcrznbuLMeWNAtkQeJ93E6uN+9UYw9Esrzlqugxo2aw0Khkhiq3R66Qp?=
 =?us-ascii?Q?xTse4Xld8OHk2SjJQQniFMKGNwa2ZxGheT3LQ56p+KRBi+JI6latEdTSkR0p?=
 =?us-ascii?Q?FLtj9NBnPltPyUOpm3gDy9Z8F+c701wly8u0hGMgX1wh34u2Oma694704Sh5?=
 =?us-ascii?Q?CcrHHC9vtz/zeiJfbEexc30vQlRqs5q/3B8FBlfoppjbLgEot8HSyQSOGM4r?=
 =?us-ascii?Q?sySiOx8GxwCBcEf4zyMtPc4HGPLj0yUaGLklQ9kmIoToIHnWS7ArF8donQYO?=
 =?us-ascii?Q?iDQ+JT52Qjl55KUCV5QkjBa0ucu6PvkYPMMkfE1JfHFDuzV8SZRVdAhjSkpk?=
 =?us-ascii?Q?TVWnhsEogLxOiwBGfW5RMdg387TjgdusBR3jgedQfZGC7F2MxKiKw6O3Ieag?=
 =?us-ascii?Q?p78d4fJlqx0ofN3Mbx8/dFX67aB+BWQJz17G3U7eOnj7ZoyJjnVCiNkv54l1?=
 =?us-ascii?Q?MldtK8/YJq2wx79oP0wz4bdc/VW7fPl93d/OcxPhM611FXVQ4mGdsI2YBgTg?=
 =?us-ascii?Q?dgdnnFFcA7ImCDris0X6ZC6biN+5dlufgfanRzKSpnIStdujk5c3MFebLKLu?=
 =?us-ascii?Q?TGiXuQqftyCVSZxXAu6pKtEpQDsNVRmFJDhpv0U2D8hebJ2EDYH5gg4aR/TF?=
 =?us-ascii?Q?obx4Fg3/sMqx3wvhMsJm+u0Smh4SdHSe2t2rEsPWue1+dlSooVEFfhAQKZVR?=
 =?us-ascii?Q?cQse8CjLdmfdJGFERmKHtAkXojue3vKP4o3Wp+g9aZAbUXqNrXnmoynwJqvy?=
 =?us-ascii?Q?SgKAb1l6SvHiLm2V86X8oaUWWNacUwuoGD9+AGZFt1Qj72gp77M+ZhwWIR34?=
 =?us-ascii?Q?eMFouf2agy2LSMaV+/AHGw/rP8ugdWTLzk7dsL3kP8L9ZIpbFoIXgREgoI7o?=
 =?us-ascii?Q?QUCDRBLS7bUdV3YMhYonp4czw8vIMfCJCgJMHFiqbjOHygRF6jHS6JoQfuAC?=
 =?us-ascii?Q?j7N625fAVmyQy4aTkK333ITIBF8uz5IqK83sH534Rji4D1XlLjng5PxNxR74?=
 =?us-ascii?Q?ZH6r4EI1MqWiX6QgLNJ/FGC9KyUcvUdFQR3C9FqsYtiHg9oK5EzECrndK2ah?=
 =?us-ascii?Q?pLKdrDUl4Mb84ONLGxqjE6dRNmXPxeneZ7QLeOX4HF8jb3MtgjqjqH4bhYaJ?=
 =?us-ascii?Q?TtCLgpC9TkfGSXm+iVup0cd7nH5Iom+l3Yq61eOZKbZT4YTJ7pQ5jfV+Z3Vx?=
 =?us-ascii?Q?w/lROotJ98eOKocHI1xHsqlZU5jTs2oHiTk/9fMV+Wxyx63UGWl/txIze65E?=
 =?us-ascii?Q?O//q/x6tqcRwbHIH0GAj/lBuZQs4Xc6FF+KqeMacEvAH0rvzhyhGrcgoESt9?=
 =?us-ascii?Q?bDcdwANF0qr/JLtfVu3QeGWbSHF+xCS19SXe7jh735Uteh8iwg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 12:12:59.5967
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8031378c-e999-4d1d-13bf-08dd07ca57f2
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.12];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00022570.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB8429

We have enabled early booting of R82.

Changes from v2 :-
1. Added a new patch "xen/arm: Skip initializing the BSS section when it is empty".
2. Split "xen/arm: mpu: Create boot-time MPU protection regions" into 2 patches.

Changes from v3 :-
1. Removed some of the R-b as the patches have been modified. 

Changes from v4 :-
1. First 3 patches have been committed. Last 3 patches have been rebased.

Changes from v5 :-
1. Changes mentioned in individual patches.

Ayan Kumar Halder (3):
  xen/arm: mpu: Create boot-time MPU protection regions
  xen/arm: mpu: Enable MPU
  xen/arm: mpu: Implement a dummy enable_secondary_cpu_mm

 xen/arch/Kconfig                     |   2 +
 xen/arch/arm/arch.mk                 |   4 +
 xen/arch/arm/arm64/mpu/Makefile      |   1 +
 xen/arch/arm/arm64/mpu/head.S        | 160 +++++++++++++++++++++++++++
 xen/arch/arm/include/asm/arm64/mpu.h |  25 +++++
 xen/arch/arm/include/asm/mm.h        |   2 +-
 xen/arch/arm/smp.c                   |  11 ++
 xen/arch/arm/xen.lds.S               |   1 +
 8 files changed, 205 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/arm64/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 12:13:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 12:13:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839316.1255125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD0dD-0006oB-8Q; Mon, 18 Nov 2024 12:13:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839316.1255125; Mon, 18 Nov 2024 12:13: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 1tD0dD-0006o4-5V; Mon, 18 Nov 2024 12:13:27 +0000
Received: by outflank-mailman (input) for mailman id 839316;
 Mon, 18 Nov 2024 12:13: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=1K7B=SN=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tD0dB-0006nk-Lp
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 12:13:25 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20608.outbound.protection.outlook.com
 [2a01:111:f403:2412::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f60e820-a5a6-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 13:13:21 +0100 (CET)
Received: from DM6PR11CA0030.namprd11.prod.outlook.com (2603:10b6:5:190::43)
 by CH2PR12MB4040.namprd12.prod.outlook.com (2603:10b6:610:ac::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Mon, 18 Nov
 2024 12:13:13 +0000
Received: from DS2PEPF00003442.namprd04.prod.outlook.com
 (2603:10b6:5:190:cafe::31) by DM6PR11CA0030.outlook.office365.com
 (2603:10b6:5:190::43) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22 via Frontend
 Transport; Mon, 18 Nov 2024 12:13:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 DS2PEPF00003442.mail.protection.outlook.com (10.167.17.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 18 Nov 2024 12:13:13 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 18 Nov
 2024 06:13:13 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 18 Nov
 2024 06:13:12 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Mon, 18 Nov 2024 06:13:11 -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: 7f60e820-a5a6-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjA4IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdmNjBlODIwLWE1YTYtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTMyMDAxLjk3ODU4Miwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A+ZFcb8EImFu1nT3r+PRJ6dv83MkvZzaQ8OzDy3Nbq8b5lammoYqHivAYpq6W3ai3nssUZdBrSozwnLpaY6z+OeSB7/XZkKd1KQCeEjrSrUaiVbCQjV62BUX59VUaC7KPEp4cnBpTXIUryeY/aBjaEC++c3hFa1AFmCMrZ3xm9sW+ZlUrI2hCbwet4kAKB1bBJ7qE91fRbGxshvcy9KgM71vQ9m4n6p4xQWc6ey7aXsWLKOVX1hhqwM3fz1PO43wyxDg6DwXQDO9ziQSd5k4VuSrn74sKeKsBOOp2i9CcVKF45R+9E0fbPwa+R39mgFAV7nR4QYyAr4gg6kxuPJFzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5uRGvx+KoW4EOPw2mfGTehds5bl03kdfygMMa3gQhYM=;
 b=ic5ksn5Cjz7l3nbsnwY8kHnMZ6nqJde1AzUoqLRzcIMVHsT6cVi57uZQZnEscv9fQIGrnIVnkO6aK7PRR9Nd+FGWvLdgf8rSOvFIqvnf0m6sFCSsoGsloSgI5EVVJPkQ5G8UDoeMtaaGctsqDiggoiS5kjrHuA6NmMnFJZ+4WKVZBO9JPp55GAtAm94YdGrKz0VmYk0/z6JKhhi/RVGk4vqUPkvqBgaNNfivBtCEBz0A4ic1GnYWcr9maogHmo2eSZOP8ttW6W47U1W2r++pc2TZ6RyDfD9osXZeOhkr9IGvli4VbNwV2SRYGEVZxPSFf3MG4xFZUtM6V8t5UQh3Tw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip
 is 165.204.84.12) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=amd.com; dmarc=fail (p=quarantine sp=quarantine pct=100)
 action=quarantine 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=5uRGvx+KoW4EOPw2mfGTehds5bl03kdfygMMa3gQhYM=;
 b=s4jJMfad+crOpQMjAcNepMw4N18/fxFNZmFf97rsePme1nGBiASDDI0tttgZ86MpJL8y7+l0LKNrx0YUqJm+Fh/UJ+U/LzGv80Ikr3zg56W3icOFr+62heA25Dc8b1NMgsmrCctqeaQZrgMM1wk4GuUgRNB5gcNQ/aTOBGj8YK8=
X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is
 165.204.84.12) smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=fail action=quarantine header.from=amd.com;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
 amd.com discourages use of 165.204.84.12 as permitted sender)
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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>, Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v6 1/3] xen/arm: mpu: Create boot-time MPU protection regions
Date: Mon, 18 Nov 2024 12:12:48 +0000
Message-ID: <20241118121250.4027441-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
References: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003442:EE_|CH2PR12MB4040:EE_
X-MS-Office365-Filtering-Correlation-Id: 25256eba-ac25-4d15-c3e0-08dd07ca6020
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?dQl5hbi1PjzcmmLbc0UUGP3ex50sOvZM+s/gl/gBltzf2G8DRrnbNo9OCRbD?=
 =?us-ascii?Q?S0m4u8cbJCoFjF+ryZWtv8q5oLXsFIijKJ1xbS2axSJuCkvr1ovAvQ2IpOwh?=
 =?us-ascii?Q?rNlSxT4BD3SNUJlDOWU2wXBQw/pB37GeS+KhM1VVYsdKiqbAKbVo8gZKU+Ou?=
 =?us-ascii?Q?S23SF98y6ggcVEUVXZjjUQZzEVvDAcbME3gUhruz1eaR+Tm8QYgFsDD5IjEw?=
 =?us-ascii?Q?8xP8NdG2MAUPQsoUmFTn8PdsQyRpeaWHl+c881KGiunnUq7TsjYNt9BDOT9L?=
 =?us-ascii?Q?cNgfQOBz3SfLsOSi0QZ4fCwf0cj3BLqovx0+hwOINimCpBIGi80/zdgacAvD?=
 =?us-ascii?Q?9voCHkSMbi6rHmcrdS+ASmPcLqtFdQm+N7umz4LY1UWi1moAydpBGDpr+Nav?=
 =?us-ascii?Q?xQtPrV56mdcTwD4C6Wf/+MNh/cXoLHxu7Z9TQSym0ldkB3tgxzZ1S+qLlhQY?=
 =?us-ascii?Q?c59lgBj26gGgNRiNJc4ZI+8klfjiJeEPcIr05JV8hlKOi9H5K+0JN6IFeO33?=
 =?us-ascii?Q?gqngOg+AFgPABPYPmgCqEqWHzPkEtOtZ58S3dVpa2gqiGBQZKeWLWMDLycwY?=
 =?us-ascii?Q?g+DnjWOfhI4k0U53K4vqzJIfH5urV5Z4PovBlWNFSLyENcTGqZQDl+xmJhXS?=
 =?us-ascii?Q?VvISPbqc3hElXesBNkOaeAlQe4zq8tPq5TQIjlKKWF5xE8aefcMxSRr/S/NL?=
 =?us-ascii?Q?+v+aWCTk4VkP227CkJy+C5Pf7T5SG0IVwsGy5PmtCRlPigqD4MJKx33WFpx2?=
 =?us-ascii?Q?atjCFtbY79Oes40uJHCp2iy4eQqJ/DKnaPL6WOuRBpH7sgKGXpy7w5rkQWB3?=
 =?us-ascii?Q?t/QkuvTl75lC7h3+e1mJ8/U/DocCsVQjDTclWWDl/BfLMq4Ol/Xz8X8iNarn?=
 =?us-ascii?Q?4UV7dsV719mF343GKq5pXbUNrxm7/gP0IpgyaBiz/ZSoDQI5X4usNWBPj4jC?=
 =?us-ascii?Q?H/gp/fSymZ7fDDpFcMUL7Y+JdIylWmIlvLTQMZDcHKbdBMBKFdgqiSoDVZAp?=
 =?us-ascii?Q?3zfLgr+BIi+1hz+ELP1G6DoSfzLrbot36LOVWHINkvqIBTmzVh4cMyPUYm6L?=
 =?us-ascii?Q?fAPVv5n4GoGx3p8W3qsx/2HDJT55uc9uCttqPufyBwtThftvSU1I9jrVtvwj?=
 =?us-ascii?Q?On8XgJJnQjPaB34dyg8WcFWgaawyL5CvcB1KiKrYCYDgUM9uA+LhwOdqcIbT?=
 =?us-ascii?Q?j/ONqbYy6g6GKhYZeo3VlhbgAU+4fKu+1hUR7a/9PrZ0S09OvFdOCw5wF+Cz?=
 =?us-ascii?Q?FOv134weq6LwdL09BXHWYcUJZLEhlcFHets4L31SCIyHrRiFXxkEF4B9blqt?=
 =?us-ascii?Q?QVaDiVxwgRVqc9d91EFcF43YhdxfzS11i9XA8LZbC0dFi8Bk5i17xDXZLzpB?=
 =?us-ascii?Q?pz2V2UymEecNnA3WzcZFINlnnsqWZxLTpC3RZvD5mYDXAAbjqQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 12:13:13.2932
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 25256eba-ac25-4d15-c3e0-08dd07ca6020
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003442.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4040

Define enable_boot_cpu_mm() for the Armv8-R AArch64.

Like boot-time page table in MMU system, we need a boot-time MPU protection
region configuration in MPU system so Xen can fetch code and data from normal
memory.

To do this, Xen maps the following sections of the binary as separate regions
(with permissions) :-
1. Text (Read only at EL2, execution is permitted)
2. RO data (Read only at EL2)
3. RO after init data and RW data (Read/Write at EL2)
4. Init Text (Read only at EL2, execution is permitted)
5. Init data and BSS (Read/Write at EL2)

Before creating a region, we check if the count exceeds the number defined in
MPUIR_EL2. If so, then the boot fails.

Also we check if the region is empty or not. IOW, if the start and end address
are same, we skip mapping the region.

To map a region, Xen uses the PRBAR_EL2, PRLAR_EL2 and PRSELR_EL2 registers.
One can refer to ARM DDI 0600B.a ID062922 G1.3  "General System Control
Registers", to get the definitions of these registers. Also, refer to G1.2
"Accessing MPU memory region registers", the following

```
The MPU provides two register interfaces to program the MPU regions:
- Access to any of the MPU regions via PRSELR_ELx, PRBAR<n>_ELx, and
PRLAR<n>_ELx.
```

We use the above mechanism to create the MPU memory regions.

Also, the compiler needs the flag ("-march=armv8-r") in order to build Xen for
Armv8-R AArch64 MPU based systems. There will be no need for us to explicitly
define MPU specific registers.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from :-

v1 - 1. Fix some of the coding style issues.
2. Reword the help message.
3. Updat the commit message.

v2 - Add clarification for the use of page and page size.

v3 - 1. Add a new file arm64/mpu/mm.c to contain the build assertion for page
size.
2. Enclosed the check for the start address within "#ifdef CONFIG_MPU".

v4 - 1. Increment the region selector in prepare_xen_region
2. Ensure that the first 8 bits of MPUIR_EL2 are read, to determine the maximum
number of supported regions.
3. Remove the inclusion of mm.h. *MPU_REGION* macros have been moved from mm.h
to mpu.h. The reason being mm.h cannot be included in an assembly file.
4. Add the build flags for "Armv8-R AArch64 MPU". As a result, we don't need
to define MPU registers. So, removed
xen/arch/arm/include/asm/arm64/mpu/sysregs.h.

v5 - 1. Modified the description of prepare_xen_region (added parameter details
which are clobbered and preserved, base address need not be page-aligned).
2. Modified description of enable_boot_cpu_mm (removed 'Inputs' as lr is no
longer preserved).

 xen/arch/arm/arch.mk                 |   4 +
 xen/arch/arm/arm64/mpu/Makefile      |   1 +
 xen/arch/arm/arm64/mpu/head.S        | 123 +++++++++++++++++++++++++++
 xen/arch/arm/include/asm/arm64/mpu.h |  25 ++++++
 xen/arch/arm/include/asm/mm.h        |   2 +-
 xen/arch/arm/xen.lds.S               |   1 +
 6 files changed, 155 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/arm64/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 022dcda192..9c4bedfb3b 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -9,7 +9,11 @@ CFLAGS-$(CONFIG_ARM_32) += -msoft-float
 CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
 CFLAGS-$(CONFIG_ARM_32) += -mno-unaligned-access
 
+ifeq ($(CONFIG_MPU),y)
+CFLAGS-$(CONFIG_ARM_64) += -march=armv8-r
+else
 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
+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/mpu/Makefile b/xen/arch/arm/arm64/mpu/Makefile
index b18cec4836..a8a750a3d0 100644
--- a/xen/arch/arm/arm64/mpu/Makefile
+++ b/xen/arch/arm/arm64/mpu/Makefile
@@ -1 +1,2 @@
+obj-y += head.o
 obj-y += mm.o
diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
new file mode 100644
index 0000000000..1ab65e8ebb
--- /dev/null
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -0,0 +1,123 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Start-of-day code for an Armv8-R MPU system.
+ */
+
+#include <asm/arm64/mpu.h>
+
+#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 */
+
+#define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
+
+/*
+ * Macro to prepare and set a EL2 MPU memory region.
+ * We will also create an according MPU memory region entry, which
+ * is a structure of pr_t,  in table \prmap.
+ *
+ * sel:         region selector
+ * base:        reg storing base address
+ * limit:       reg storing limit address
+ * prbar:       store computed PRBAR_EL2 value
+ * prlar:       store computed PRLAR_EL2 value
+ * maxcount:    maximum number of EL2 regions supported
+ * attr_prbar:  PRBAR_EL2-related memory attributes. If not specified it will be
+ *              REGION_DATA_PRBAR
+ * attr_prlar:  PRLAR_EL2-related memory attributes. If not specified it will be
+ *              REGION_NORMAL_PRLAR
+ *
+ * Preserves \maxcount
+ * Clobbers \sel, \base, \limit, \prbar, \prlar
+ *
+ * Note that all parameters using registers should be distinct.
+ */
+.macro prepare_xen_region, sel, base, limit, prbar, prlar, maxcount, attr_prbar=REGION_DATA_PRBAR, attr_prlar=REGION_NORMAL_PRLAR
+    /* Check if the region is empty */
+    cmp   \base, \limit
+    beq   1f
+
+    /* Check if the number of regions exceeded the count specified in MPUIR_EL2 */
+    cmp   \sel, \maxcount
+    bge   fail_insufficient_regions
+
+    /* Prepare value for PRBAR_EL2 reg and preserve it in \prbar.*/
+    and   \base, \base, #MPU_REGION_MASK
+    mov   \prbar, #\attr_prbar
+    orr   \prbar, \prbar, \base
+
+    /* Limit address should be inclusive */
+    sub   \limit, \limit, #1
+    and   \limit, \limit, #MPU_REGION_MASK
+    mov   \prlar, #\attr_prlar
+    orr   \prlar, \prlar, \limit
+
+    msr   PRSELR_EL2, \sel
+    isb
+    msr   PRBAR_EL2, \prbar
+    msr   PRLAR_EL2, \prlar
+    dsb   sy
+    isb
+
+    add   \sel, \sel, #1
+
+1:
+.endm
+
+/*
+ * Failure caused due to insufficient MPU regions.
+ */
+FUNC_LOCAL(fail_insufficient_regions)
+    PRINT("- Selected MPU region is above the implemented number in MPUIR_EL2 -\r\n")
+1:  wfe
+    b   1b
+END(fail_insufficient_regions)
+
+/*
+ * Maps the various sections of Xen (described in xen.lds.S) as different MPU
+ * regions.
+ *
+ * Clobbers x0 - x5
+ *
+ */
+FUNC(enable_boot_cpu_mm)
+    /* Get the number of regions specified in MPUIR_EL2 */
+    mrs   x5, MPUIR_EL2
+    and   x5, x5, #NUM_MPU_REGIONS_MASK
+
+    /* x0: region sel */
+    mov   x0, xzr
+    /* Xen text section. */
+    ldr   x1, =_stext
+    ldr   x2, =_etext
+    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* 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
+
+    /* Xen code section. */
+    ldr   x1, =__init_begin
+    ldr   x2, =__init_data_begin
+    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen data and BSS section. */
+    ldr   x1, =__init_data_begin
+    ldr   x2, =__bss_end
+    prepare_xen_region x0, x1, x2, x3, x4, x5
+
+    ret
+END(enable_boot_cpu_mm)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
new file mode 100644
index 0000000000..f8a029f1a1
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * mpu.h: Arm Memory Protection Unit definitions.
+ */
+
+#ifndef __ARM64_MPU_H__
+#define __ARM64_MPU_H__
+
+#define MPU_REGION_SHIFT  6
+#define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
+#define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
+
+#define NUM_MPU_REGIONS_SHIFT   8
+#define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
+#define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
+#endif /* __ARM64_MPU_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 5abd4b0d1c..59b774b7b8 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -16,7 +16,7 @@
 
 #if defined(CONFIG_MMU)
 # include <asm/mmu/mm.h>
-#else
+#elif !defined(CONFIG_MPU)
 # error "Unknown memory management layout"
 #endif
 
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index d1e579e8a8..bbccff1a03 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -147,6 +147,7 @@ SECTIONS
        *(.altinstr_replacement)
   } :text
   . = ALIGN(PAGE_SIZE);
+  __init_data_begin = .;
   .init.data : {
        *(.init.rodata)
        *(.init.rodata.*)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 12:13:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 12:13:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839317.1255135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD0dJ-00078t-F9; Mon, 18 Nov 2024 12:13:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839317.1255135; Mon, 18 Nov 2024 12: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 1tD0dJ-00078k-CY; Mon, 18 Nov 2024 12:13:33 +0000
Received: by outflank-mailman (input) for mailman id 839317;
 Mon, 18 Nov 2024 12:13: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=1K7B=SN=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tD0dH-0006nk-Up
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 12:13:31 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2417::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 849eef51-a5a6-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 13:13:29 +0100 (CET)
Received: from DS7PR03CA0053.namprd03.prod.outlook.com (2603:10b6:5:3b5::28)
 by CY8PR12MB7587.namprd12.prod.outlook.com (2603:10b6:930:9a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Mon, 18 Nov
 2024 12:13:25 +0000
Received: from DS2PEPF00003447.namprd04.prod.outlook.com
 (2603:10b6:5:3b5:cafe::c5) by DS7PR03CA0053.outlook.office365.com
 (2603:10b6:5:3b5::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20 via Frontend
 Transport; Mon, 18 Nov 2024 12:13:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 DS2PEPF00003447.mail.protection.outlook.com (10.167.17.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 18 Nov 2024 12:13:24 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 18 Nov
 2024 06:13:23 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Mon, 18 Nov 2024 06:13:22 -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: 849eef51-a5a6-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjJmIiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijg0OWVlZjUxLWE1YTYtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTMyMDA5LjIzNDYzNiwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HgIxYZ6oW2R1GmwX5wGwcEC2QZh+wm1f/tB/SQKUXBavUfmYLGh1WlfHQXnekzK9dHJdj23/E9BtNdHPzW0b4q9TF9YXH/xRf5OTEC/irkYvmIvbjt0GXcXDO66CjrHHSKgPXeedlqEMkfknewKwRCKipF9Mu3sngygtec3iXfL0eIMPwiZSHoTSeF0VzatHX5kktoZFCdNmcByO0iVm9cla4zN6vk9nHsjhsYQTX6bjJ3O56FqMp3wPeWpztgeR34bN28MXwMRHh3Am6kLyyPIYVEcNeEorSIFWwBYsmVofvack2xEpKC6u4KMJwF60Qm1G9TZ4UKs/nwB8YeD70g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pf5rKI3RCPGFn3GWmPsWPEZ7LwVUj9QdIKHlVuEvfDQ=;
 b=w4Dx2mclJNo77LhujtR/xrj6pikK3NtMMFm+0mEAMf+u6t3UuEroOYAtxUuGqbIfPk5SCU8iH553UJP+MIm1gaf6p599/I0wAG14+lXC1okzoatjByGk/6NOrNAspQz9Ysid4+ed5v3yhXFav4Z067EUSPcVs1nxxCYgw2Nmh5NnCWiITACAbah+0R1n/5+YMmN7WPBdFUxnlxTM7LaNSHPyke37FFVZLmveybQAOKnWhLkB0wXUCNDNyn7fncEf9w5oqppQ8C35wr2REPm1Kzd6S2VfGeEes/5dpepzWZmhB0JMAYye2mmzsA9yDVpK7sXIWdlm2sOotfB/nJ1EWQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip
 is 165.204.84.12) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=amd.com; dmarc=fail (p=quarantine sp=quarantine pct=100)
 action=quarantine 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=Pf5rKI3RCPGFn3GWmPsWPEZ7LwVUj9QdIKHlVuEvfDQ=;
 b=bGuwEd6N0+Fw1lt88r6XI2et6BuWcXmbbFLq1T9Ag6eMDa3UHWS/iuBaHgqG/FijLinVm4KC0RkZYPtQimg63ixlvEtvLv9wXXXXQup42cymtmNxT2hHi9/3xGyulJnMDbC0r1By5vIMwN6954Nh4LavAtEJZH7R8SkjG5ljbHE=
X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is
 165.204.84.12) smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=fail action=quarantine header.from=amd.com;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
 amd.com discourages use of 165.204.84.12 as permitted sender)
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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>, Luca Fancellu <luca.fancellu@arm.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v6 2/3] xen/arm: mpu: Enable MPU
Date: Mon, 18 Nov 2024 12:12:49 +0000
Message-ID: <20241118121250.4027441-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
References: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003447:EE_|CY8PR12MB7587:EE_
X-MS-Office365-Filtering-Correlation-Id: b9b904da-e4f7-4005-4c43-08dd07ca66d2
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?siOztfXVwhd2dAmEfNf19u0hWVCeQI0O3dB2g7a4pmdfKka5qPaYXj7m688V?=
 =?us-ascii?Q?+YlsSFuzHpnrrX4xfDrr8V+HGTle+o+CVHWeMJJ/a6BJvgUQ4fQE48uq78sA?=
 =?us-ascii?Q?ghdDtiyHK3KCXWkwFSAACLjwyR4VxXF70jgropeEfJD0r7CE20Hcch3NnNrI?=
 =?us-ascii?Q?XMCLEfx8M1c+1NpLPqqvoTaucdKBwq74ibhD/Xz1HTeq2UC++qQNRn/O2X++?=
 =?us-ascii?Q?fDM9Q5w8JElfG9tjQZmfY33XLNYN/Kh7ZwbbSmlID6gRajqRbeMH2PV17Lk7?=
 =?us-ascii?Q?o51jcAdXQMhUgh5weyeOtXW5j6GuCJ7prbgrTD+kFINvLUL9XzonPi5OLMIm?=
 =?us-ascii?Q?QtHCyMdLtt+kdV5pVvaoMKUumChrcGQClvrsk/zYnhl2T3da7PJMeut24xP1?=
 =?us-ascii?Q?XBGJAQPs79nQxonqPNR/v2ornwHNxDcvPdAsvsi87U8aONVV+fH0I0KCN1Dn?=
 =?us-ascii?Q?20UC7hmchOia6gj9O0XChKfgS2ijaRbJSYvYsE9798o9IbrruNuQ7nw6yWXu?=
 =?us-ascii?Q?YkRsFJuOLoCDsse9jZjBwP7Rxkcx6dPegxrzxFVzIdheRZIlgj4J6JIiwrRq?=
 =?us-ascii?Q?7vaSaI/glE41YjFBhAl3h7VTfyQqKtLdYpIg9eAUmXzjTsk61py9LOm45hNX?=
 =?us-ascii?Q?PvZ/un8Gvv3wQB6lIFh3qyYCE2PlzsmWMQemBWpl+F+UYXeZBpnwFW6uQcZw?=
 =?us-ascii?Q?IVbkg3c3S/x0qn9p5fpraXJfzOvK6gi4QbkqNn/PkjGEL21YihiAwSGW04Cq?=
 =?us-ascii?Q?HpWpM4fCNcTI7q1y+qE0YFWH7nOYLcpW1xgGrt11E1SRhvR46x3OGmmUsE7F?=
 =?us-ascii?Q?4G03II9KvVJZB9B+WvsOAiDh99lJ4kENCsL65WHhTSB0DgnW97bV2gH5xYv+?=
 =?us-ascii?Q?dZOaqHSHI3D2CXKxPUiM7ZM1Lq1zIL69+4PoP9VVmgCBn3TaLl9RweicIulz?=
 =?us-ascii?Q?dfOYgWsYg59upwjR/zA6hjIgO97TtACwEiIyyZ+GPl0pCBZox0wKgYFqzvhA?=
 =?us-ascii?Q?qQHH689DlbkHg31GBwsOjY6wfoDxgVcyBzVzN9S9dJRT+QYSeqA/zolDrH+I?=
 =?us-ascii?Q?/ZURPFZxiYb2rdRW0akHrcSWU1kO79HRxwnA9bA0CVAHx4GNplzG8gqHgDxo?=
 =?us-ascii?Q?zoFncrEJrMMrNta7X8BaC4U+mxczIBHq0cL5L2n1JX3PkUz/QKuL80GQwwvL?=
 =?us-ascii?Q?0nhTi84dn+InhrynS0LuN8K/1mFCVF5eGFV0sjNd0Q9xSyLZdLJMjdf5aXk3?=
 =?us-ascii?Q?9bz7tH40iAJUXGTiIex+ZbGZW9KZ4zuhzwe8g6sc2gBL9PaxObUodhcatbS0?=
 =?us-ascii?Q?GDHE9eI38zVPeVPw1YBg+A4pJSvAOIsH8UuzBS8DdMdVP3JwYzrmGS43PqFD?=
 =?us-ascii?Q?vvrtZXm8oXaRVpyuOOtZLHLVD+F3GbSVU1/W8lDHkOKVsqavBQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 12:13:24.5387
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b9b904da-e4f7-4005-4c43-08dd07ca66d2
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003447.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7587

After the regions have been created, now we enable the MPU. For this we disable
the background region so that the new memory map created for the regions take
effect. Also, we treat all RW regions as non executable and the data cache is
enabled.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes from :-

v2 - 1. Extracted from the previous patch into a new one.

2. Disabled background region.

v3 - 1. Removed dsb before setting SCTLR_EL2. The reason being
>From ARM DDI 0487K.a D23-7349:
"Direct writes to these registers (includes SCTLR_EL2) are not allowed to affect
any instructions appearing in program order before the direct write."
So, we don't need a synchronization barrier before writing to SCTLR_EL2.
Further, we do have synchronization barriers after writing the MPU region
registers (which happens before we read SCTLR_EL2). So, SCTLR_EL2 is written
after the MPU registers are synchronized. And, thus adding a 'isb' to flush the
instruction pipeline ensures that the subsequent instructions are fetched after
the MPU has been enabled.

2. Saved and restored lr in enable_boot_cpu_mm().

v4 - 1. Moved the definition of SCTLR_ELx_BR from sysregs.h from head.S. The
reason being sysregs.h does not exist any longer (refer to previous patch for
details) and SCTLR_ELx_BR is used in head.S only.
(I have preserved the R-b abd A-b, let me know if that is ok).

v5 - 1. No changes.

 xen/arch/arm/arm64/mpu/head.S | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index 1ab65e8ebb..c56c693cc2 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -5,6 +5,9 @@
 
 #include <asm/arm64/mpu.h>
 
+/* Backgroud region enable/disable */
+#define SCTLR_ELx_BR    BIT(17, UL)
+
 #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 */
@@ -73,6 +76,29 @@ FUNC_LOCAL(fail_insufficient_regions)
     b   1b
 END(fail_insufficient_regions)
 
+/*
+ * Enable EL2 MPU and data cache
+ * If the Background region is enabled, then the MPU uses the default memory
+ * map as the Background region for generating the memory
+ * attributes when MPU is disabled.
+ * Since the default memory map of the Armv8-R AArch64 architecture is
+ * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
+ *
+ * Clobbers x0
+ *
+ */
+FUNC_LOCAL(enable_mpu)
+    mrs   x0, SCTLR_EL2
+    bic   x0, x0, #SCTLR_ELx_BR       /* Disable Background region */
+    orr   x0, x0, #SCTLR_Axx_ELx_M    /* Enable MPU */
+    orr   x0, x0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
+    orr   x0, x0, #SCTLR_Axx_ELx_WXN  /* Enable WXN */
+    msr   SCTLR_EL2, x0
+    isb
+
+    ret
+END(enable_mpu)
+
 /*
  * Maps the various sections of Xen (described in xen.lds.S) as different MPU
  * regions.
@@ -112,6 +138,7 @@ FUNC(enable_boot_cpu_mm)
     ldr   x2, =__bss_end
     prepare_xen_region x0, x1, x2, x3, x4, x5
 
+    b    enable_mpu
     ret
 END(enable_boot_cpu_mm)
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 12:13:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 12:13:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839321.1255146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD0dV-0007cO-Ud; Mon, 18 Nov 2024 12:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839321.1255146; Mon, 18 Nov 2024 12: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 1tD0dV-0007cH-Q5; Mon, 18 Nov 2024 12:13:45 +0000
Received: by outflank-mailman (input) for mailman id 839321;
 Mon, 18 Nov 2024 12: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=1K7B=SN=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tD0dV-0007aK-3W
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 12:13:45 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20625.outbound.protection.outlook.com
 [2a01:111:f403:2412::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b1e5498-a5a6-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 13:13:41 +0100 (CET)
Received: from BN9PR03CA0251.namprd03.prod.outlook.com (2603:10b6:408:ff::16)
 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.8158.23; Mon, 18 Nov
 2024 12:13:34 +0000
Received: from BL6PEPF0002256E.namprd02.prod.outlook.com
 (2603:10b6:408:ff:cafe::3e) by BN9PR03CA0251.outlook.office365.com
 (2603:10b6:408:ff::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22 via Frontend
 Transport; Mon, 18 Nov 2024 12:13:34 +0000
Received: from SATLEXMB03.amd.com (165.204.84.12) by
 BL6PEPF0002256E.mail.protection.outlook.com (10.167.249.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Mon, 18 Nov 2024 12:13:34 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Mon, 18 Nov
 2024 06:13:33 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Mon, 18 Nov 2024 06:13: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: 8b1e5498-a5a6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjI1IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjhiMWU1NDk4LWE1YTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTMyMDIxLjQwNTc1Mywic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=raxAJz5SsrKA7qQx+A2qmkWjtZHgkCPCGJ407LxS6AltLxx0PbjCuuvuXNYIFwlbO5BGlOoM8Cl8ykqtihOYUjPA1iy3UNHbDwSmTMvCetFvQRpiPPDrYpLlXukJzjHGr0jyn1YumYXJrk6Xp14JREAd52S6jyXnmEFWkVRjVMgfa0/bHTspR7y0J8iFxGe/hNZEMRTyn2v/kWhHAyZ6j8dzCXuDfpiijLdGhrRKRf8Ast1pqk3aPK0siuXZm5E8g4L9Tf3afuzYd229nEcDeBsLCZo+Sr6WS0ajIPbCDAo5zQ0uU5Q0XkqyrcorKTIKbgWiE7vo8KP0wMy9OQhrVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=THkJUSUkfVKn7mJityoAfrgY4wqfLzF0xJ68zkmM5zk=;
 b=nFaWcCjWLkm2fETA+iwvbFktUfLHPbZE8EcFqSADEAvIEI73Ding2KYa9WtoRVe4nqVztBKgTY+Wmh1/YLyRl6UMUQEKdop2BkY6lS+bLx8hek2H8XlRjcBpm3Sn6+xQS21Bs6lAaLtPiFjZSHJMmmj2UXz4TtswDSevbK+9LlfoLlL6qSH9dXe5Hd69Ty1jTM0nATSJcqgstVxQySLYf9jJOWbZKbAVlvX67un2MGpay0ZjC2RU/VBPz07ore9pmSpA6V9qTbFdw6KL+ElOPNhsf0MbkF3E5GPiXYLUf1kIsd5ytjlwrcuOgGM7tDDE7kiVqNsCNDv915jVeaJN1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip
 is 165.204.84.12) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=amd.com; dmarc=fail (p=quarantine sp=quarantine pct=100)
 action=quarantine 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=THkJUSUkfVKn7mJityoAfrgY4wqfLzF0xJ68zkmM5zk=;
 b=HjPc2SH9O5XNei3dSMM21JhWy+87WrJMoBmFPYDUFlvoZukibkikxdS/fXeEsqtpFSd+PXq+XXL4cgq8haQQ3EwG4XovYVAVRY1dp8qT8iGxEQCSzXmjD8Aq75DTNjavBhPURfrpWHGOS94Tmw4X4zbCDhPjK/BfAP2N2OCQ/e4=
X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is
 165.204.84.12) smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=fail action=quarantine header.from=amd.com;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
 amd.com discourages use of 165.204.84.12 as permitted sender)
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 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>, Luca Fancellu
	<luca.fancellu@arm.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v6 3/3] xen/arm: mpu: Implement a dummy enable_secondary_cpu_mm
Date: Mon, 18 Nov 2024 12:12:50 +0000
Message-ID: <20241118121250.4027441-4-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
References: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0002256E:EE_|SA1PR12MB7104:EE_
X-MS-Office365-Filtering-Correlation-Id: 195080aa-d1b8-48af-a52a-08dd07ca6c78
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?aU1qM3h1R051cWx6ZlRaOGMwK1hjL0dLZTVQN1Y1VzhUc2c2NGR6a3BSakpi?=
 =?utf-8?B?anpkRjdOMlU2RWpRK3NqcG1xa2RoMkpOTC8zSGFmSjA1N2JEM280THBQcXBz?=
 =?utf-8?B?NVNQSUNIZkVTZGNzeXVMMkYvK0NjNU12RU12K2Zyekh0UDJpbEUzaVNOUEVF?=
 =?utf-8?B?U1lFOC9VMnRrUXphMzNIeEFUU29qWkR4ejlUeWF2bFJMczVLWUxBVlN6VURs?=
 =?utf-8?B?WG1uNDRPSXZ6NDREV3VOS1dNckNHbXZvUjZGSWlnaEdHam11Q3ZnKzA3cVFp?=
 =?utf-8?B?OVNmc2dXNDMyWUZGQnFZNkZ6cmZ3OU5LNmZKVXUrQVNXMXMxLys1NnoyUzN5?=
 =?utf-8?B?RE9EVjZhVzdzY09GTGZ4WHBKODJNYVdxbE1tSmcwcWFQaVViSXQ3aXNJVERU?=
 =?utf-8?B?Q1FCTlZDSDNUTENURFZFaEFiWURlRFBNby96RUNQYmFDMjFSRWpHemVERG1l?=
 =?utf-8?B?Tkk2WUpVWDZ4bVpPQVBuSjd5VTA3WkxQTG1HWjJHU2VIUlJ1N1l2bFVFdzFO?=
 =?utf-8?B?dFJuazFsV1FVUGp4UzZTb1lzR2xJa25oRjd6Q0YzTURnMVFaVHFoYllkOGZx?=
 =?utf-8?B?RWtkemIrNkVFRHNFeDNEaTJ4M29GbW5FejcvMDBINytMN0hVWHBGN2FsSFVv?=
 =?utf-8?B?TGZwRGJqckJrT1NDM0xTbElXbDZlNmF5WnVFWUVkWFduWGdOSjcrc3N5VytT?=
 =?utf-8?B?L1Q4OXlUK0svR00rNzdHREtuSmNnaXE0N2NaZ0tieUEwVWN0OGx5V3pCbnpk?=
 =?utf-8?B?MEtrd2x2VnBkbUM2Vjk4cU4yTzc4QWRvWDlLaU52S0x5ZUNuWGUrbmFPL2dm?=
 =?utf-8?B?Y3lVR3NXODZadnBVRkpPZnhjUU5Nd0kwd3h0R2R6RnBkbW55cjV5TWtqc1M4?=
 =?utf-8?B?REcvblRFMzB0VlZnQ2hQSW9vRG9yb3prVytSeDAvZGp1UktiV2xjQkJZN3F2?=
 =?utf-8?B?bGlGb0pLOGVSK0FMWTlNWlB0aEFhS2I1NXlmZHlqZzIwb2k3UmpHS2gxeXVw?=
 =?utf-8?B?SjlzcHMwc0JUK2E4TmE0bVNZWFduRVA1eVM5VG9xSFl2ZmxXM25GT2lhMUdl?=
 =?utf-8?B?K3NlVnpnN1Ftb0tnTjZoamsrOGJ2aFpWN1RTa01pNXJYTTBoVUJwVVczek1Y?=
 =?utf-8?B?RUpDS3V2SGtzbnJiNjcrbDlDRHNlNEcwK0FGcTR3TzNKb3F4V0FzcHdLcGhV?=
 =?utf-8?B?TFNSNkNtZWl4bDhnYjUvb2E5L2NvRWdKa3pqc3ljeFUyQ3BCdStYaVk4TlJ2?=
 =?utf-8?B?dUVoeWVCNzJ6blFrV3FPamx4Q25qUXplUGtrVitUQXpROTZXbEtzc1luMVFq?=
 =?utf-8?B?eVJQcVptU0JlVUY3ZkpyekxVcUtmOHphQXh5d2FDWkNaSTFvSkRQbk9WVWFz?=
 =?utf-8?B?ejFmcG9DWHYyVmJJTDJKdENaenpZWk5FNHZ5ckUvYVhuZ1R2WE9wUC9paEN1?=
 =?utf-8?B?YWQrb0lRS3A1UWt5NUJCRWNObmNyOG5sdUtQOUFwOEI4RDFPQTFjTDMzZXE1?=
 =?utf-8?B?L1dVbUNJQWgya2RtQ3ZkNFFtQ1NxWlprREd4UitFWkJkSmozUEw3UHA4NElx?=
 =?utf-8?B?TEtZekJtc1czREoyNEFRRFdWd2UwdC9tYy9PZ2ZnZUtlWllZMEdmc2xKaEU0?=
 =?utf-8?B?NUhCK1o1SGVsK1FuTUVuWUpqanVVVTBxOVIxZzRHZkM1U1FIZXQyUmlsdjFl?=
 =?utf-8?B?WVc3eTA0QUpIMUxJZFZpVERLMk9xNm9TVUVveWY2S0F2VzVuOW95dGI3N1hp?=
 =?utf-8?B?UjdaZTducnJnSG9IZS9hQ1A5L1BrSkpEY1FVQ21ENWEwaFlBSnBRanI0MEFL?=
 =?utf-8?B?WkQ5alpmRFFQTURzSlNIdmhGUGJyYVc3OU43ZDFzYnlrekt0TEFZckNONnFJ?=
 =?utf-8?B?aTVRRHpQTXBaQzNIVUh3M09SMURQbjc0WCsxTzVKVEJJVUE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 12:13:34.0331
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 195080aa-d1b8-48af-a52a-08dd07ca6c78
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.12];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0002256E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7104

Secondary cpus initialization is not yet supported. Thus, we print an
appropriate message and put the secondary cpus in WFE state.
And we introduce to BUILD_BUG_ON to prevent users using from building Xen
on multiprocessor based MPU systems.

In Arm, there is no clean way to disable SMP. As of now, we wish to support
MPU on UNP only. So, we have defined the default range of NR_CPUs to be 1 for
MPU.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes from :-

v1 - 1. NR_CPUS is defined as 1 for MPU

2. Added a message in enable_secondary_cpu_mm()

v2 - 1. Added the range

2. Clarified in the commit message why/how we have disabled SMP.

v3 - 1. BUILD_BUG_ON() is moved to smp.c.

v4 - 1. Moved "default "1" if ARM && MPUâ€ right after â€œdefault "256" if X86â€.

v5 - 1. Added Ack.

 xen/arch/Kconfig              |  2 ++
 xen/arch/arm/arm64/mpu/head.S | 10 ++++++++++
 xen/arch/arm/smp.c            | 11 +++++++++++
 3 files changed, 23 insertions(+)

diff --git a/xen/arch/Kconfig b/xen/arch/Kconfig
index 308ce129a8..9f4835e37f 100644
--- a/xen/arch/Kconfig
+++ b/xen/arch/Kconfig
@@ -6,8 +6,10 @@ config PHYS_ADDR_T_32
 
 config NR_CPUS
 	int "Maximum number of CPUs"
+	range 1 1 if ARM && MPU
 	range 1 16383
 	default "256" if X86
+	default "1" if ARM && MPU
 	default "8" if ARM && RCAR3
 	default "4" if ARM && QEMU
 	default "4" if ARM && MPSOC
diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index c56c693cc2..f692fc7443 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -142,6 +142,16 @@ FUNC(enable_boot_cpu_mm)
     ret
 END(enable_boot_cpu_mm)
 
+/*
+ * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
+ * please the common code.
+ */
+ENTRY(enable_secondary_cpu_mm)
+    PRINT("- SMP not enabled yet -\r\n")
+1:  wfe
+    b 1b
+ENDPROC(enable_secondary_cpu_mm)
+
 /*
  * Local variables:
  * mode: ASM
diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
index c11bba93ad..b372472188 100644
--- a/xen/arch/arm/smp.c
+++ b/xen/arch/arm/smp.c
@@ -1,4 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
+#include <xen/init.h>
 #include <xen/mm.h>
 #include <asm/system.h>
 #include <asm/smp.h>
@@ -6,6 +7,16 @@
 #include <asm/gic.h>
 #include <asm/flushtlb.h>
 
+static void __init __maybe_unused build_assertions(void)
+{
+#ifdef CONFIG_MPU
+    /*
+     * Currently, SMP is not enabled on MPU based systems.
+     */
+    BUILD_BUG_ON(NR_CPUS > 1);
+#endif
+}
+
 void arch_flush_tlb_mask(const cpumask_t *mask)
 {
     /* No need to IPI other processors on ARM, the processor takes care of it. */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 12:48:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 12:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839354.1255158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD1BE-0000YW-Dx; Mon, 18 Nov 2024 12:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839354.1255158; Mon, 18 Nov 2024 12: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 1tD1BE-0000YP-BU; Mon, 18 Nov 2024 12:48:36 +0000
Received: by outflank-mailman (input) for mailman id 839354;
 Mon, 18 Nov 2024 12:48: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=kaFt=SN=bounce.vates.tech=bounce-md_30504962.673b3799.v1-98e9700a6e124f5fb03d5735e3097f68@srs-se1.protection.inumbo.net>)
 id 1tD1BC-0000YJ-H5
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 12:48:34 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6717950c-a5ab-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 13:48:26 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4XsS951wqLz3sP85g
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 12:48:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 98e9700a6e124f5fb03d5735e3097f68; Mon, 18 Nov 2024 12:48: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: 6717950c-a5ab-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjY3MTc5NTBjLWE1YWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTM0MTA2Ljk0OTQ2OCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2IzNzk5LnYxLTk4ZTk3MDBhNmUxMjRmNWZiMDNkNTczNWUzMDk3ZjY4QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731934105; x=1732194605;
	bh=8vYYwPVnYrqp1IvllwtQwcL4cuHYAA14DbeNu4DeYkI=;
	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=Vbq3O+GFsLH4Q5/LG2GhRcK3/G7GKc2m7HnQ5TY8K6Ibf3KTSGCgovXIOjPqlJUeq
	 DtC8OHiXUgiQAOGUK3b8s2IfMls43c56L8PT4142OTdVK14KPB8C1jrxKFBc8NEO56
	 SB0Iiq7nYSYVHYr/rURSnzh0UZPmj++ISSJGdvptk+jvoinn3auspDKF9yfuVoyBb/
	 gZXS1U5sDV+ImhopPZ6m7LX7oP9pW/IctdFG9L0FfvOoPdInGjXgVGxoggy2gYmOol
	 /ve3/3uRx5lJxR+VJwKKOeqsvQxRZDlsfhlIdRoxZ+oKr7Nv1fAz1ZExuK6bq9Wkwx
	 Q29Nom7amSMug==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731934105; x=1732194605; i=anthony.perard@vates.tech;
	bh=8vYYwPVnYrqp1IvllwtQwcL4cuHYAA14DbeNu4DeYkI=;
	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=RtdWHgAEpvq5/Ix432dn4olIFms1iyxqOIkipuw7KQltbb47B0cmxlO0dYe2ng4IQ
	 xI/nEOKGKXR8oxtiJAroIpaWO6r6rMJYWGnvNrm5wMucXrBxYeuOSn7/XxsK68B2Zq
	 3s9qrwZw5RlTd8iBDzq5xeFGg7OFpeb+Lym53oAW694fjZcbmPE0aHax/5e6pC3T/u
	 +pKJf5t7WGA6Qns/AUhs+IVpIl/dcAJFQgvhNoNt+L4HX91K3TBkgWsyRAKBN9aXmq
	 uH2jawwbZCOf8vWMHvNdiAYSp55slVkw9T4poSE9f9TblH4OliOwYxv/A9ZlG2I27x
	 V5a/csvoBvtUw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH=200/3]=20CI:=20Allow=20automatic=20rebuild=20of=20rolling=20release=20containers?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731934104136
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, "Doug Goldstein" <cardoe@cardoe.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <Zzs3l_8qkLWzUzw_@l14>
References: <20241115170739.48983-1-anthony.perard@vates.tech> <6344f8f9-5e02-4018-9646-a2b0734da9a2@citrix.com>
In-Reply-To: <6344f8f9-5e02-4018-9646-a2b0734da9a2@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.98e9700a6e124f5fb03d5735e3097f68?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 12:48:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Nov 15, 2024 at 05:13:13PM +0000, Andrew Cooper wrote:
> On 15/11/2024 5:07 pm, Anthony PERARD wrote:
> > Patch series available in this git branch:
> > https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git=
 br.gitlab-ci-rebuild-arch-container-v1
> >
> > Hi,
> >
> > This patch series would allow to setup a scheduled pipeline on GitLab w=
hich
> > would rebuild containers and run a test on them immediately (the contai=
ner is
> > updated even if the test fail, but at least we can find out about it so=
oner
> > rather than later).
> >
> > To enable this, just running a pipeline with XEN_CI_REBUILD_CONTAINERS=
=3D1 will
> > do.
> >
> > I intend to add a scheduled pipeline to run once a month.
> 
> Oh excellent.=C2=A0 Thanks for looking into this.
> 
> One thing I was going to look into doing was to push the new containers
> to a temporary repository (or a temp name in the main repository), kick
> off a regular pipeline overriding image:, and on success doing a rename.
> 
> That would avoid pushing a container with problems into main CI.

I tried something like that before, but I probably didn't approch the
problem from the right angle:

    [RFC XEN PATCH 0/7] automation, RFC prototype, Have GitLab CI built its=
 own containers
    https://lore.kernel.org/xen-devel/20230302175332.56052-1-anthony.perard=
@citrix.com/#r

I was trying to automatically rebuild container whose Dockerfile had
changed, while also having logic to rebuild containers based on
rolling-release distributions. But I did end-up duplicating
"build.yaml".

There's logic in that old series to test a container before "renaming
it" (which involve pulling then pushing the container with a new tag)

With this new series, I've introduced XEN_REGISTRY, so we could schedule
a pipeline by setting XEN_REGISTRY variable to a staging area, and
finish the pipeline by pushing to the main location.

But, the two containers been updated in this series are used in jobs
that are allowed to fail, so updating them don't have any consequence.
Also, there's no value in keeping to test with outdated container as
that mean we test with an environment that doesn't exist anymore.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 14:04:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 14:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839370.1255169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD2M3-0002jH-O0; Mon, 18 Nov 2024 14:03:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839370.1255169; Mon, 18 Nov 2024 14: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 1tD2M3-0002jA-LJ; Mon, 18 Nov 2024 14:03:51 +0000
Received: by outflank-mailman (input) for mailman id 839370;
 Mon, 18 Nov 2024 14:03: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=3yNJ=SN=bounce.vates.tech=bounce-md_30504962.673b493e.v1-21f92527e3404d3495738294f8e496a3@srs-se1.protection.inumbo.net>)
 id 1tD2M2-0002j4-80
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 14:03:50 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ebc725fa-a5b5-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 15:03:44 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4XsTqy5wXKz3sPMtg
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 14:03:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 21f92527e3404d3495738294f8e496a3; Mon, 18 Nov 2024 14: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>
X-Inumbo-ID: ebc725fa-a5b5-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImViYzcyNWZhLWE1YjUtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTM4NjI0LjYyNTQ2OSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2I0OTNlLnYxLTIxZjkyNTI3ZTM0MDRkMzQ5NTczODI5NGY4ZTQ5NmEzQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731938622; x=1732199122;
	bh=XRalsAUTOmmbKLFYOVVY82M+AmAwUkx+cpAqw2uiRBk=;
	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=Luy60ikDAoJXL0KFn5uXHLbzHvfvJWkYFvYwdXd9L9mTIVivZpTb1hcpDUSaPHnRV
	 izEukozxklvura/pyMMw206s2Wt7mDsEaUxUvGKLGwYYpxImYRHW60Ze/97aBHH6fb
	 VBH8rkYhjXieCsabZfo1VJFzt0teatStrfnL/pZpCv5kehraH6OD1XU2xKDFlC3Crw
	 eu2RV9IMenLr+WxRgM4f/vdolo3+1t2apYReiN84npR4HDSAM25xIPzenH5L5zKouI
	 AuhWgT9FbyZtyhaB20lbE980X759yXo/8kQlUa1wY5+HzNvaQ9u/Vczw4rOiI/f5fI
	 2Vj8s0Qj6LpqA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731938622; x=1732199122; i=anthony.perard@vates.tech;
	bh=XRalsAUTOmmbKLFYOVVY82M+AmAwUkx+cpAqw2uiRBk=;
	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=r4MSMrycFUcAxtd87ERD2jPf9gW6rAjVsTSV2oae845mECb7Aocyo8ABndg1VMkvH
	 jXe/5Ehw36Ynyp7jPZe7z4QVAa1UAn7Y2yX6mOPE3Ews0DZVD3n4S4Km8GjiIapD/j
	 85Y4kKqPwmNfw1LojMhqmaTGrUds/xnfE7QK/3v9QV061ZtZclVUqJm1eU5MikqU4t
	 FFsE9/XkCjjiEdVtTqgSi8QqgNlR/mGs2nJOVGI3tWRCgRVYgnSsLw9wv8W6ewq2UC
	 JOqRD6K1T22ZE/PSgIJP61rABLTrfE+boeyqR9s2r/IXFlIzDYSKoPhb9HChOC3PT5
	 eqe0zfmfNyClQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH=203/3]=20CI:=20New=20stage=20"containers"=20to=20rebuild=20some=20containers?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731938620812
To: "Stefano Stabellini" <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Doug Goldstein" <cardoe@cardoe.com>
Message-Id: <ZztJPKoLvaTZguze@l14>
References: <20241115170739.48983-1-anthony.perard@vates.tech> <20241115170739.48983-4-anthony.perard@vates.tech> <alpine.DEB.2.22.394.2411151629450.1160299@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2411151629450.1160299@ubuntu-linux-20-04-desktop>
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.21f92527e3404d3495738294f8e496a3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 14:03:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Nov 15, 2024 at 04:34:21PM -0800, Stefano Stabellini wrote:
> On Fri, 15 Nov 2024, Anthony PERARD wrote:
> > Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
> > set. This is to be use with a scheduled pipeline.
> > 
> > When $XEN_CI_REBUILD_CONTAINERS is set, only build jobs related to the
> > containers been rebuild will be executed.
> > 
> > Build jobs that are using one of the containers been rebuild should
> > wait for the container to be rebuild. If it's a normal pipeline, those
> > dependency are simply ignored.
> 
> This is a fantastic contribution, thanks Anthony!
> 
> I think we can simplify this patch by removing all stages except for
> "containers" on the scheduled pipeline with XEN_CI_REBUILD_CONTAINERS
> set to true.
> 
> I think it is a good idea to have a special schedule pipeline for this,
> and we should exploit the fact that it is special and only use it to
> rebuild the containers. If we want to, we can have a second scheduled
> pipeline to do a full normal run afterwards.
> 
> This way, there is no need to carry the changes to build.yaml or
> test.yaml that are a bit hard to read/understand for someone unfamiliar
> with gitlab. When XEN_CI_REBUILD_CONTAINERS == true we only do the
> containers stage.

So, you mean having this following change instead of make changes to
build.yaml and test.yaml, right?

    diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
    --- a/.gitlab-ci.yml
    +++ b/.gitlab-ci.yml
    @@ -14,7 +14,15 @@ stages:
       - test
     
     include:
    -  - 'automation/gitlab-ci/containers.yaml'
    -  - 'automation/gitlab-ci/analyze.yaml'
    -  - 'automation/gitlab-ci/build.yaml'
    -  - 'automation/gitlab-ci/test.yaml'
    +  - local: 'automation/gitlab-ci/containers.yaml'
    +    rules:
    +      - if: $XEN_CI_REBUILD_CONTAINERS
    +  - local: 'automation/gitlab-ci/analyze.yaml'
    +    rules:
    +      - if: $XEN_CI_REBUILD_CONTAINERS == null
    +  - local: 'automation/gitlab-ci/build.yaml'
    +    rules:
    +      - if: $XEN_CI_REBUILD_CONTAINERS == null
    +  - local: 'automation/gitlab-ci/test.yaml'
    +    rules:
    +      - if: $XEN_CI_REBUILD_CONTAINERS == null


Or I guess we can also compare to the string "true" and write the
expression as
    if: $XEN_CI_REBUILD_CONTAINERS == "true"
and
    if: $XEN_CI_REBUILD_CONTAINERS != "true"

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 14:12:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 14:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839378.1255179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD2UG-0000Gy-Gf; Mon, 18 Nov 2024 14:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839378.1255179; Mon, 18 Nov 2024 14:12: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 1tD2UG-0000Gj-E4; Mon, 18 Nov 2024 14:12:20 +0000
Received: by outflank-mailman (input) for mailman id 839378;
 Mon, 18 Nov 2024 14:12: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=q2I3=SN=amd.com=Luca.Miccio@srs-se1.protection.inumbo.net>)
 id 1tD2UE-0000Gd-Op
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 14:12:18 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2416::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a22eae1-a5b7-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 15:12:12 +0100 (CET)
Received: from BN9PR03CA0264.namprd03.prod.outlook.com (2603:10b6:408:ff::29)
 by SA3PR12MB9129.namprd12.prod.outlook.com (2603:10b6:806:397::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Mon, 18 Nov
 2024 14:12:07 +0000
Received: from BN3PEPF0000B36D.namprd21.prod.outlook.com
 (2603:10b6:408:ff:cafe::c) by BN9PR03CA0264.outlook.office365.com
 (2603:10b6:408:ff::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.24 via Frontend Transport; Mon,
 18 Nov 2024 14:12:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 BN3PEPF0000B36D.mail.protection.outlook.com (10.167.243.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.0 via Frontend Transport; Mon, 18 Nov 2024 14:12:06 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 18 Nov
 2024 08:12:06 -0600
Received: from xsjlumiccio40x.xilinx.com (10.180.168.240) by
 SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Mon, 18 Nov 2024 08:12:06 -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: 1a22eae1-a5b7-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjBmIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFhMjJlYWUxLWE1YjctMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTM5MTMyLjQ0MDQ0Niwic2VuZGVyIjoibHVjYS5taWNjaW9AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WGDxbQ49SA0PXO44Cr7jndWjw2qAOMx8ScY5aviUcbGPS1qGaTMI+MZbV2sFbyOAvkpC9+HcyUPOOHe0K4BjX9BHYk2v+90MCx+Jpsl4NzzzWdhEeQRaS3O7K9oJyxbWlYrkDyWddnYTW7Az/tkmRnmw9t9a4AbSHSY2AOWXqnnwhUO6XcImp/RxDl5B9p9szwVeQiMk0/kxkdA83hHt4rm1MvUoNJAT8+jtgq0a6rvT5XVsfpZ9PXLSkk7IqPmI6FCRmUb3D72Z537qt9q4cNYgcCc6xcJLW2JUnfiuU99Xcm17vNvnH0dBTrwTVEVX+KKS/dtmJcK6GfUyXVwDVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KIPcYoi1Fs7A/Wu4MhK50YfnJFxQpucwP7BSJ4pohbc=;
 b=rJKdBeliq+A85VdvxsJJLVyh56ZUHrGD0zPPh/RUSGj0fFmL/nAdC2n6lTgUTqupf6SnBaA+sGBpFdUws4+oibw4JCEuYpaTZtTx17uMG863m0Bn2NOERhRJCWBFoduhd6NVBJSA8AcCYmXRj/Py3p1S0J5MbKG+mxYgLBOpbzEa9Y07/X3PXnzdU3Uti05OpIpXHemtZJ7jhB2ZuOzE5KUGM9s0VYlVDu5GWa9oec/5hb47oRS3IW1O8q7w0hbxwW7pHkjmw5pgSNrVzzUdR89QIUUSdb4SB+pBqQzC/h1IhBVXVh/dI3w48deZ/gBajGAOHQtFVuFu6hWUxa2vVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip
 is 165.204.84.12) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=amd.com; dmarc=fail (p=quarantine sp=quarantine pct=100)
 action=quarantine 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=KIPcYoi1Fs7A/Wu4MhK50YfnJFxQpucwP7BSJ4pohbc=;
 b=PTArKybupuUWkTBPyrTI2zbsZI4lJmdHi8ganFTos04ErJ10j5wd2pmMhNjz0TUi/uxRK4vCjbyVK4TqlGWA2KPJlTEAy2U5aVd53Ik+uO2W7dfHmb6+QCigQwGApwR6Lm9cwnt1DLezGqxj5cpt3z5mJNHAFHlZS3uTHg58XGk=
X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is
 165.204.84.12) smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=fail action=quarantine header.from=amd.com;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
 amd.com discourages use of 165.204.84.12 as permitted sender)
From: Luca Miccio <luca.miccio@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, Luca Miccio <luca.miccio@amd.com>
Subject: [ImageBuilder] UBOOT_SOURCE/SCRIPTS variables must always be set
Date: Mon, 18 Nov 2024 06:12:05 -0800
Message-ID: <20241118141205.3513831-1-luca.miccio@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: luca.miccio@amd.com does not designate
 permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B36D:EE_|SA3PR12MB9129:EE_
X-MS-Office365-Filtering-Correlation-Id: b68fe406-5c93-448b-96fe-08dd07dafc19
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?SatS/tKNl1aTpNNKcgF6SSftA/g0IV9jrm1C1dJYTGsIl/Trkm8hOTiVOmQd?=
 =?us-ascii?Q?Km0Be6MgyECLri+bRjyXrm3li3+PDvOj/Ak7vyQiuxOXPps57xN4t94qxnt7?=
 =?us-ascii?Q?MPetzxMNbThb+tmORmgNa5zm4w/va9cGSPUprbDqou3cmuF8f19zoIMsMe5Z?=
 =?us-ascii?Q?+Ugs9TAa5qR4+zibRAmure6217A62BdGZQoOROTvNcbdUsyBk5Gi8GCAZEe3?=
 =?us-ascii?Q?2GlHqeeJt4/5y5dFEJm2VjBxWGs1uP4y+9C8hLZ7vniyzHGGqo4BT7y+iJBI?=
 =?us-ascii?Q?+1hZqp0A3RAME57zHDTeE2OAC6LcTxDmpS7SoyCDySbFmwRyJvMBeHAGvuAy?=
 =?us-ascii?Q?HyaB/lVFoO+IhXsAdwIgNdpSYBpiW00f3jWZ7Tanv/TFURaseTEygeu6vceg?=
 =?us-ascii?Q?hSAJkKkG+WR08P4AxtYBZGuAvFM1FFnG5PC7Bkqa9mMA7HGKZsu7RcXw0Liv?=
 =?us-ascii?Q?v1P6dxJy8OQVSlzQGfIGB4LLzupaW2BVHAkNnb2XgpLcZjOtqB4VwUm9xs7D?=
 =?us-ascii?Q?vVUYR+DNhE+0yt+fsGA7X3EFI8NR9X35cnyZw/u63ixuV25q8zVObLhs0OzW?=
 =?us-ascii?Q?BYRLJyAeI/rq9sPIueC8CUdSBq/7PaDEbAweo5vrbdzvZ5NJizde1kNfuBz+?=
 =?us-ascii?Q?81DEF8+JgQqmWpr3tgOAxgzPej8Ijc4aPV05FrIRGWm272Y5iFZLfoC/eaPC?=
 =?us-ascii?Q?3jQGFNJFCJwBK3YvDpqnEyk+mev2Hf5d63yeLMtq/0+iBoIQyCczqMozBufe?=
 =?us-ascii?Q?n1FgzUuFSxOAwMeX52m4Ch/QfBQO4dnOfzWARGfEhOGDako0MtnMlQ0NRq1Z?=
 =?us-ascii?Q?qtuDtTxhqhwPr34qm0+HFNvkpVBIsSfotel+4z9n9N/gueV4802PX3N75Njc?=
 =?us-ascii?Q?jXkvqvW3E3uHorsRKaWgfxd2Ry5cqVB9ickHIdy4FbZsNNeBg4zckUyaCRd9?=
 =?us-ascii?Q?5Gaq/dgJ9QT76CVxa43AhQ28md4VcGB3ZjS3kSYa1Zi4ekXzhJB2TdGr+g6+?=
 =?us-ascii?Q?QdeDBpcLCqhflQSlZMDOQ1l+LPu3VQrte4GBuJZnoe8U9WdAOSGtchyzaoeN?=
 =?us-ascii?Q?KyFcyU1EDb3++kUBv/Sxz+GzvyiDwywrn9AR8KmNucVrDcq9biAfO1F9KOWz?=
 =?us-ascii?Q?ZsPKKu63NNaQXGS+G+osvyB0uU46cFBZAwx+0YyZMsCfVvPIYEFGg52QVTjr?=
 =?us-ascii?Q?fsBH6Bc2+L509alxik9kt4RYcKUaCQe8ZR4AEkjJdbgNeNUL5/Fy8dUIgQdw?=
 =?us-ascii?Q?c2FgUYdhou452bMR5Q0hmARlDASgb0BDj6TEh2u1U+2YIWWISnVppDeIVgk4?=
 =?us-ascii?Q?cIu+tzlwmZba7fnkH38KztDYVCyjcaEciuOvCqVCLuQF171JLzAutcxARJvv?=
 =?us-ascii?Q?d8mUSqWbaH+w4kGm+v0A+0//TnGIVIuJh2pn1k0oiDQFi9bWRQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2024 14:12:06.9653
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b68fe406-5c93-448b-96fe-08dd07dafc19
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B36D.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9129

The current README incorrectly omits the need for the UBOOT_SOURCE and
UBOOT_SCRIPT variables for uboot-script-gen to function properly.
Moreover, the script silently fails if these variables are not set.
Return an error if the the UBOOT_SCRIPT variable is not set and
correct the documentation accordingly.

Signed-off-by: Luca Miccio <luca.miccio@amd.com>
---
 README.md                |  3 ++-
 scripts/uboot-script-gen | 12 ++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 4fcd908..ae2fdfd 100644
--- a/README.md
+++ b/README.md
@@ -272,7 +272,8 @@ Where:
 
 - UBOOT_SOURCE and UBOOT_SCRIPT specify the output. They are optional
   as you can pass -o FILENAME to uboot-script-gen as a command line
-  parameter
+  parameter. It has to be set either in the config file or CLI argument
+  though.
 
 - APPEND_EXTRA_CMDS: is optional and specifies the path to a text file
   containing extra u-boot commands to be added to the boot script before
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index dcf5bdb..b07cbf1 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1210,6 +1210,18 @@ then
     UBOOT_SCRIPT="$uboot_out_opt".scr
     UBOOT_SOURCE="$uboot_out_opt".source
 fi
+
+if test ! "$UBOOT_SOURCE"
+then
+    echo "UBOOT_SOURCE not set, either specify it in the config or set it with the -o option"
+    exit 1
+fi
+
+if test ! "$UBOOT_SCRIPT"
+then
+    UBOOT_SCRIPT="$UBOOT_SCRIPT".scr
+fi
+
 if test "$fit_opt" && ! test "$FIT"
 then
     FIT="${UBOOT_SOURCE%.source}.fit"
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 14:37:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 14:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839390.1255188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD2sI-0003Ip-Fw; Mon, 18 Nov 2024 14:37:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839390.1255188; Mon, 18 Nov 2024 14:37: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 1tD2sI-0003Ii-DM; Mon, 18 Nov 2024 14:37:10 +0000
Received: by outflank-mailman (input) for mailman id 839390;
 Mon, 18 Nov 2024 14:37: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=KDp/=SN=bounce.vates.tech=bounce-md_30504962.673b5110.v1-298c3482636a455ca76c8f77db73fb96@srs-se1.protection.inumbo.net>)
 id 1tD2sH-0003Ic-8H
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 14:37:09 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 948e41cb-a5ba-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 15:37:05 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4XsVZS0mwxz3sPCf0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 14:37:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 298c3482636a455ca76c8f77db73fb96; Mon, 18 Nov 2024 14:37: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: 948e41cb-a5ba-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6Ijk0OGU0MWNiLWE1YmEtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTQwNjI1LjY1NzkyNSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2I1MTEwLnYxLTI5OGMzNDgyNjM2YTQ1NWNhNzZjOGY3N2RiNzNmYjk2QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1731940624; x=1732201124;
	bh=GvsWmYKY14CXser9tx1rb3cHyozOIQwfv4RdVhYRfz8=;
	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=IPu1ITjePQxbgbLLLnGvU4CRtZlGzt5o02iM5MQDMzF5Ue/06Zy3FFYhotCNoqQYs
	 LWt9DSG2IWVStl8ynA7Jyh45G15Skn5RtNfpx9pgOVL7rffEtpuEvhrqQkwR4PgS3j
	 8dEif+AMgiqFTdkBe0wjOTlbNJWapTduYRZFUlsteWeRHIXc9yMEYKHqW4ePxcFcOE
	 wK3iQlHMTPpA+8WtuzrTVH64ENk0VqyI803Ucw9CY02tMtOOEsKDgB/Qr3K3OIC3jh
	 WInI6kEAZkDnsxPiNp2ZW5BD4tbOULR/fnfRJplRoZEU1dpaHnOBP1ftVCkVp/kbC2
	 bM7OQX+QSjtUA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1731940624; x=1732201124; i=ngoc-tu.dinh@vates.tech;
	bh=GvsWmYKY14CXser9tx1rb3cHyozOIQwfv4RdVhYRfz8=;
	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=kd65Au9o14glv82UOkM7t5tsfTEq7fkW10MgmYG2SiqdR5r/hPPXhggBcpxWy4IWk
	 wLOUmLd052TTUfaYdv5ozrXH8QHyDGjjO9UwqNIFyQC6A0Jond3Tu5UwibLq3Yk6n6
	 iH9fjMKG6fuPhYBo/r36M31+/U8eB1OigEfG1ARcE1bcv/JhscMKQdoDIH0IgJynPy
	 cTj/mu8CaiJWs15iPRsKiQhzYV9uAnf/lWgYAFT1WIIbu4/5zN9bULWYiMM4YduKMa
	 pMiKUZWpqoJJPdEr0/PrVATlPsQb2xRIWPUo/UAF/wCfeSypB5bq5dhAJ03kDuL9E3
	 j4/6YFpntIw7A==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=200/4]=20Virtualize=20architectural=20LBRs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1731940623283
Message-Id: <f4f5b29b-c77f-4b55-81ee-0fa63e2f5459@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech> <7706bd63-8f26-4eb8-8dc0-67b302597e3b@suse.com> <3f75df1d-f397-487f-9b81-d7740712b924@vates.tech> <78d9df73-c9b7-479d-8e05-e4efb823ea20@citrix.com>
In-Reply-To: <78d9df73-c9b7-479d-8e05-e4efb823ea20@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.298c3482636a455ca76c8f77db73fb96?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241118:md
Date: Mon, 18 Nov 2024 14:37:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 18/11/2024 10:52, Andrew Cooper wrote:
> There's also a reason why we haven't got this working yet.=C2=A0 There ar=
e a
> couple of areas of prerequisite work which need addressing before XSS
> can be enabled properly.
> 
> If you're willing to tackle this, then I can explain what needs doing,
> and in roughly which order.

I would appreciate explanations of the pending XSS issues.


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 16:05:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 16:05:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839400.1255199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD4Fj-0000pq-Mu; Mon, 18 Nov 2024 16:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839400.1255199; Mon, 18 Nov 2024 16:05: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 1tD4Fj-0000pj-JN; Mon, 18 Nov 2024 16:05:27 +0000
Received: by outflank-mailman (input) for mailman id 839400;
 Mon, 18 Nov 2024 16:05:26 +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 1tD4Fi-0000pd-7g
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 16:05:26 +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 1tD4Fe-00BId7-02;
 Mon, 18 Nov 2024 16:05:22 +0000
Received: from lfbn-gre-1-248-145.w90-112.abo.wanadoo.fr ([90.112.205.145]
 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 1tD4Fd-00FG94-2H;
 Mon, 18 Nov 2024 16:05: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=hOPsZNwuk5Of7mPpSe/MIV1efYXeimkHvzOur3w1rP4=; b=OQiXcgEPsvbrw034DEWEss4y7z
	PawOfKRjrWzYq6BaK+BXlU+cGyDwlKKR1CVR9AtldNz1qsLTncbQCyiZX/De9bEQlExXt9YXDW33V
	bOh386Z1BUnzZvOH6aEKLY1T4V9dhWVuF7NMfclqt3MZNvD+5hbN8DNyuwdjrZSUgS8s=;
Date: Mon, 18 Nov 2024 17:05:18 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Jiqian Chen <Jiqian.Chen@amd.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E . Iglesias" <edgar.iglesias@gmail.com>,
	qemu-devel@nongnu.org, xen-devel@lists.xenproject.org,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Huang Rui <ray.huang@amd.com>
Subject: Re: [QEMU PATCH v10] xen/passthrough: use gsi to map pirq when dom0
 is PVH
Message-ID: <Zztlvl0m-Oi2XGXq@l14>
References: <20241106061418.3655304-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20241106061418.3655304-1-Jiqian.Chen@amd.com>

On Wed, Nov 06, 2024 at 02:14:18PM +0800, Jiqian Chen wrote:
> In PVH dom0, when passthrough a device to domU, QEMU code
> xen_pt_realize->xc_physdev_map_pirq wants to use gsi, but in current codes
> the gsi number is got from file /sys/bus/pci/devices/<sbdf>/irq, that is
> wrong, because irq is not equal with gsi, they are in different spaces, so
> pirq mapping fails.
> 
> To solve above problem, use new interface of Xen, xc_pcidev_get_gsi to get
> gsi and use xc_physdev_map_pirq_gsi to map pirq when dom0 is PVH.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> Signed-off-by: Huang Rui <ray.huang@amd.com>
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

Acked-by: Anthony PERARD <anthony@xenproject.org>

But, this following change probably needs an ack from PCI maintaners,
CCed.

> diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
> index eb26cac81098..07805aa8a5f3 100644
> --- a/include/hw/pci/pci.h
> +++ b/include/hw/pci/pci.h
> @@ -23,6 +23,10 @@ extern bool pci_available;
>  #define PCI_SLOT_MAX            32
>  #define PCI_FUNC_MAX            8
>  
> +#define PCI_SBDF(seg, bus, dev, func) \
> +            ((((uint32_t)(seg)) << 16) | \
> +            (PCI_BUILD_BDF(bus, PCI_DEVFN(dev, func))))
> +
>  /* Class, Vendor and Device IDs from Linux's pci_ids.h */
>  #include "hw/pci/pci_ids.h"

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 16:14:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 16:14:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839408.1255209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD4O2-0006AC-G1; Mon, 18 Nov 2024 16:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839408.1255209; Mon, 18 Nov 2024 16: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 1tD4O2-0006A5-CQ; Mon, 18 Nov 2024 16:14:02 +0000
Received: by outflank-mailman (input) for mailman id 839408;
 Mon, 18 Nov 2024 16:14: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=JUlN=SN=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tD4O0-00069x-KX
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 16:14:00 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b2bda27-a5c8-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 17:13:54 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-53b13ea6b78so3301218e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 08:13:54 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e045390sm554763966b.154.2024.11.18.08.13.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 08:13: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: 1b2bda27-a5c8-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFiMmJkYTI3LWE1YzgtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTQ2NDM0LjA0NTE3Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731946433; x=1732551233; 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=uARw5fWHik/lbApAuGvnX3PHPijkBYHAANTsSpe8eL4=;
        b=SY+ClnCse6bIVIJkL7K+t4GZlNklzqvWhJS+vsAh8n1hNcSnjNdq65KJAOGsRLL4sZ
         dchMQZ/8yYLROYYn7UpP5Uo8rl1rZYSrmVI8QNvp/73pJF39aTW6Do7tT2kuyCQGhrh+
         K7JAETn2wNqYO1QPhSgTgru0krm2Vxg5ZPiLU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731946433; x=1732551233;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uARw5fWHik/lbApAuGvnX3PHPijkBYHAANTsSpe8eL4=;
        b=J9XLdkYejNbeFQh14uxa7zrZ+jb6sBPc8EGlW0fnLAY9Tg4zi9T98L1jgsRmvdwyBD
         yN+StrcTMKNhFZMbhF3+wmk9zOPrVch9FI+Gu5cA7JI4vbHDz69qwfV5homI3kFSp3KQ
         dNAI9MuNKJpeHQ7Au+t+D+Shc7pdFuNGWMV6LOKDcqTvpXEECF7whN46y3OYeASfJPjX
         46MreJWutFeEPC0VCnGgYPZmJSVSgUrXZrs4WoD1deXYZXaJQoR/REl2A3wX+3mMl/Ct
         RRqKMi62gs2eZws8NxwXXEJebpVCrMtG+9g74mcqqQ6cwajmgytSZmLG9mFt178kP2ZG
         TXsw==
X-Forwarded-Encrypted: i=1; AJvYcCXNioTIYtG9NcMxo3glwOFO+f7IGUw3XPVqJOuu47q7SxdXL13UGkGpVHoakRLkvcTG+whxBZndqNA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwK0Bm+vpY+1D5DJJce3QfccZ6KZHQKZkFZHTQv6RaSpqIeLNEs
	xk0CxpXBFtYATOkxDwK7RtIBcY75Y2tsLxII+SxDFuiwuFr3K7sm129VwI6vO/c=
X-Google-Smtp-Source: AGHT+IGwvUHkzkIVXJz06OA1cVxczNGRys+FeOqKsFZlT1TMQOPU+mSyRpoRXr5mPfzXNOfCgWHGmA==
X-Received: by 2002:a05:6512:32c9:b0:52e:fa5f:b6a7 with SMTP id 2adb3069b0e04-53dab29e907mr7258997e87.13.1731946433374;
        Mon, 18 Nov 2024 08:13:53 -0800 (PST)
Message-ID: <d8747b61-9517-4584-9395-86818b372a46@citrix.com>
Date: Mon, 18 Nov 2024 16:13:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/6] x86/boot: introduce module release
To: Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@amd.com,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-3-dpsmith@apertussolutions.com>
 <374d2387-6f8c-4a2b-a979-7066675dd247@amd.com>
 <3f61cc43-c29a-40e0-ac40-4f273fd4461e@apertussolutions.com>
 <f3aee76b-7ac1-4558-a036-c2c19c5b9154@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <f3aee76b-7ac1-4558-a036-c2c19c5b9154@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/11/2024 5:18 pm, Jason Andryuk wrote:
> On 2024-11-15 12:16, Daniel P. Smith wrote:
>> On 11/15/24 11:50, Jason Andryuk wrote:
>>> On 2024-11-15 08:12, Daniel P. Smith wrote:
>>>> Â Â Â Â Â  /* Set up start info area. */
>>>> Â Â Â Â Â  si = (start_info_t *)vstartinfo_start;
>>>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>>>> index 495e90a7e132..0bda1326a485 100644
>>>> --- a/xen/arch/x86/setup.c
>>>> +++ b/xen/arch/x86/setup.c
>>>
>>>> +void __init free_boot_modules(void)
>>>> Â  {
>>>> Â Â Â Â Â  struct boot_info *bi = &xen_boot_info;
>>>> Â Â Â Â Â  unsigned int i;
>>>> Â Â Â Â Â  for ( i = 0; i < bi->nr_modules; ++i )
>>>> Â Â Â Â Â  {
>>>> -Â Â Â Â Â Â Â  uint64_t start = pfn_to_paddr(bi->mods[i].mod->mod_start);
>>>> -Â Â Â Â Â Â Â  uint64_t sizeÂ  = bi->mods[i].mod->mod_end;
>>>> -
>>>> -Â Â Â Â Â Â Â  /*
>>>> -Â Â Â Â Â Â Â Â  * Sometimes the initrd is mapped, rather than copied,
>>>> into dom0.
>>>> -Â Â Â Â Â Â Â Â  * Size being 0 is how we're instructed to leave the
>>>> module alone.
>>>> -Â Â Â Â Â Â Â Â  */
>>>> -Â Â Â Â Â Â Â  if ( size == 0 )
>>>> +Â Â Â Â Â Â Â  if ( bi->mods[i].released )
>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>>>> -Â Â Â Â Â Â Â  init_domheap_pages(start, start + PAGE_ALIGN(size));
>>>> +Â Â Â Â Â Â Â  release_boot_module(&bi->mods[i]);
>>>> Â Â Â Â Â  }
>>>> -
>>>> -Â Â Â  bi->nr_modules = 0;
>>>
>>> IIUC, zero-ing here was a safety feature to ensure boot modules
>>> could not be used after this point.Â  Should it be retained?
>>
>> The released flag displaced the need for this, but I realized it
>> would make it stronger if in bootstrap_map_bm() we add a check that
>> the released flag is not set before mapping. I think this is a
>> stronger approach without loosing information like the number of boot
>> modules were passed.
>
> Andrew> Clobbering this prevents the loop constructs from working.
>
> I thought the boot modules are unusable after free_boot_modules() is
> called, so I'm not clear on the utility of keeping the boot modules
> around and/or keeping the loop constructs working.Â  I wondered about,
> but didn't write, clearing the boot_module info in
> release_boot_module() to eliminate stale data hanging around.

Metadata about which module is which is potentially still interesting.

Either way, clobbering nr_modules was to make discard_initial_images()
idempotent, and the released flag is a better way of doing this now.

>
> Yes, a bootstrap_map_bm() check is a good idea.Â  Having said that,
> there is a lack of checking the return value of bootstrap_map_bm(), so
> would you panic?

This is a long-standing issue.

The only way to fail is prior to the directmap being set up and the sum
of bootstrap_map_*()'s since the last unmap() exceeding ~1G.

Some callers check, others don't.Â  Really there wants to be uniform
handling (probably a backtrace from the innermost layer), and callers
able to handle NULL.

But, e.g. with microcode handling, only being able to map the first 2M
or 4M of a 2G initrd would still be useful.Â  Then again, if we can't map
the initrd, then later parts of boot are still going to go wrong.


Either way - this patch is an improvement.Â  Other improvements can come
later.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 16:42:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 16:42:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839417.1255219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD4p7-0003mi-Jn; Mon, 18 Nov 2024 16:42:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839417.1255219; Mon, 18 Nov 2024 16: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 1tD4p7-0003mb-GG; Mon, 18 Nov 2024 16:42:01 +0000
Received: by outflank-mailman (input) for mailman id 839417;
 Mon, 18 Nov 2024 16:41: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=M5+n=SN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tD4p5-0003mV-J7
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 16:41:59 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 038560ee-a5cc-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 17:41:53 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 181C1A414B1;
 Mon, 18 Nov 2024 16:39:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50643C4CECC;
 Mon, 18 Nov 2024 16:41:50 +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: 038560ee-a5cc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjAzODU2MGVlLWE1Y2MtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTQ4MTEzLjE2Nzk2OCwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731948111;
	bh=bCf7fiRI6lW2g8Sk5Ve5Qf35LSQ1B+VdS63ry7RdOkg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=o042xmr3NU7PimitbnLVDzDr+EqO9eww6sTIAraDfAQI5ejtyIgqjFEo/7B/k5HyP
	 j0x5DMWTZUdNyHcdeB+GLrc2qLiFrie2QcuGzzMbYqRAqymkdRGYzYXP/y1GWHbnxl
	 3vOHMIQaE3yPQXR9nWGnM4AXUenw2IP/Unp+DFuU+I1vacX7S4ll252d5R07V8lYdq
	 vo/RxKfeuFzF+VGd76peYJokSrSXEWSTu3/RzW1ODrrwPYMrzKGavMPfRuO1lBsuAH
	 mpJladfgVBHXd5a2clfJSJfY9UPwuhHrPW4j6japIGkB2xeMX22fAYszzGMbhMI9df
	 c8LRSJV58KrvQ==
Date: Mon, 18 Nov 2024 08:41:48 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Jiqian Chen <Jiqian.Chen@amd.com>, xen-devel@lists.xenproject.org, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
In-Reply-To: <ZzsUL3dnjl5x0-si@macbook>
Message-ID: <alpine.DEB.2.22.394.2411180841120.1160299@ubuntu-linux-20-04-desktop>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com> <ZzsUL3dnjl5x0-si@macbook>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-892777895-1731948111=:1160299"

  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-892777895-1731948111=:1160299
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Mon, 18 Nov 2024, Roger Pau MonnÃ© wrote:
> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> > Some devices, like discrete GPU of amd, support resizable bar capability,
> > but vpci of Xen doesn't support this feature, so they fail to resize bars
> > and then cause probing failure.
> > 
> > According to PCIe spec, each bar that support resizing has two registers,
> > PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> > corresponding handler into vpci.
> > 
> > PCI_REBAR_CAP is RO, only provide reading.
> > 
> > PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> > setting the new size.
> > 
> > Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> > ---
> >  xen/drivers/vpci/Makefile  |  2 +-
> >  xen/drivers/vpci/rebar.c   | 89 ++++++++++++++++++++++++++++++++++++++
> >  xen/include/xen/pci_regs.h | 11 +++++
> >  3 files changed, 101 insertions(+), 1 deletion(-)
> >  create mode 100644 xen/drivers/vpci/rebar.c
> > 
> > diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile
> > index 1a1413b93e76..a7c8a30a8956 100644
> > --- a/xen/drivers/vpci/Makefile
> > +++ b/xen/drivers/vpci/Makefile
> > @@ -1,2 +1,2 @@
> > -obj-y += vpci.o header.o
> > +obj-y += vpci.o header.o rebar.o
> >  obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
> > diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
> > new file mode 100644
> > index 000000000000..84dbd84b0745
> > --- /dev/null
> > +++ b/xen/drivers/vpci/rebar.c
> > @@ -0,0 +1,89 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> 
> The GPL-2.0 identifier is deprecated, either use GPL-2.0-or-later or
> GPL-2.0-only.

GPL-2.0 is meant to be GPL-2.0-only
--8323329-892777895-1731948111=:1160299--


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 17:18:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 17:18:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839429.1255229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD5OH-0008Je-3d; Mon, 18 Nov 2024 17:18:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839429.1255229; Mon, 18 Nov 2024 17:18: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 1tD5OH-0008JX-0z; Mon, 18 Nov 2024 17:18:21 +0000
Received: by outflank-mailman (input) for mailman id 839429;
 Mon, 18 Nov 2024 17:18: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=JUlN=SN=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tD5OE-0008JP-Ro
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 17:18:18 +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 179fa894-a5d1-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 18:18:13 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-aa2099efdc3so832729066b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 09:18:13 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df51632sm560313766b.49.2024.11.18.09.18.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Nov 2024 09:18: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: 179fa894-a5d1-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE3OWZhODk0LWE1ZDEtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTUwMjkzLjY2MTY1Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731950292; x=1732555092; 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=lTQ6jQnvs29mJOeG7rIjzg0W48oVchHvR1jKCuoRf+c=;
        b=N86n045FSfeb4NTmVYZAd8nr6i68XneTcrEY4Qri2l7ZhJeLmrbjGUgMQoSUUOnLqs
         2HIUcIGybSBYagnkgmeYUydnO96YiIKnWaOBrUms4PziAbFKqtS9OuJS+ArgeWtVy3qq
         g5oHA9eFvYktwVnEbJACD0b7Cuyni1iQzcWyc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731950292; x=1732555092;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lTQ6jQnvs29mJOeG7rIjzg0W48oVchHvR1jKCuoRf+c=;
        b=j6P0j4zR9qo2Y6KBdhOYBBdgFR9AFBw0AS2t2SPbwW0DsxA5mf0p9hSZomIdT98j4E
         qrI/xitfEdUWVicbLGZj/096CS+aiwzR+7NnZsI65YJcVwmUAsSuvqZaNjEZpK91+c78
         S1jBRGUPbeGy4tm5w91WLymf3M3w5WZTEbOBTVp4Ci7nz8SQr1xZb9kriYXwqSWoS+o7
         HD9TlkN3r5SqP9BL8OsWBA5VxJIujNYC2ojNMy6bzUCMSF07PTIBmKPB4mznGb+3mysM
         +zDtWUkSL8mMwwE3IPRhfM598avD0KHrGslEBHCJcd9Q1YKAyk37VL46Wt9qax3bGHWP
         9QOQ==
X-Gm-Message-State: AOJu0YyrKEq/4jbJmQaPvPm1e42hjnNqz2d9UqQyzYOj1Pl5jifJUZx5
	7bjJhaiNz5PaXPuFS7ffWT7disRE7xKUb7D3o8V7q4UlLXAGV7EhXxpTQf2FBsfy+P6dM0ZgTno
	P
X-Google-Smtp-Source: AGHT+IFKpAFpztwF3Q6e4SgO5Ub4KCVlxjDxwxnRNWEpFxzoypHAszOdBZuWyBXuIM655WrF9UTLSw==
X-Received: by 2002:a17:907:9285:b0:a9a:1575:23e3 with SMTP id a640c23a62f3a-aa4c7e490f5mr12599066b.19.1731950292495;
        Mon, 18 Nov 2024 09:18:12 -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>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] x86/boot: Introduce boot-helpers.h
Date: Mon, 18 Nov 2024 17:18:09 +0000
Message-Id: <20241118171809.2447714-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

Eclair complains that neither reloc_trampoline{32,64}() can see their
declarations.

reloc_trampoline32() needs to become asmlinkage, while reloc_trampoline64()
needs declaring properly in a way that both efi-boot.h and reloc-trampoline.c
can see.

Introduce boot-helpers.h for the purpose.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Stefano Stabellini <sstabellini@kernel.org>

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1549438881
---
 xen/arch/x86/boot/reloc-trampoline.c    |  4 +++-
 xen/arch/x86/efi/efi-boot.h             |  4 ++--
 xen/arch/x86/include/asm/boot-helpers.h | 13 +++++++++++++
 3 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/boot-helpers.h

diff --git a/xen/arch/x86/boot/reloc-trampoline.c b/xen/arch/x86/boot/reloc-trampoline.c
index d5548eb08f85..e35e7c78aa86 100644
--- a/xen/arch/x86/boot/reloc-trampoline.c
+++ b/xen/arch/x86/boot/reloc-trampoline.c
@@ -2,13 +2,15 @@
 
 #include <xen/compiler.h>
 #include <xen/stdint.h>
+
+#include <asm/boot-helpers.h>
 #include <asm/trampoline.h>
 
 extern const int32_t __trampoline_rel_start[], __trampoline_rel_stop[];
 extern const int32_t __trampoline_seg_start[], __trampoline_seg_stop[];
 
 #if defined(__i386__)
-void reloc_trampoline32(void)
+void asmlinkage reloc_trampoline32(void)
 #elif defined (__x86_64__)
 void reloc_trampoline64(void)
 #else
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 9d3f2b71447e..1d8902a9a724 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -4,6 +4,8 @@
  * therefore can define arch specific global variables.
  */
 #include <xen/vga.h>
+
+#include <asm/boot-helpers.h>
 #include <asm/e820.h>
 #include <asm/edd.h>
 #include <asm/microcode.h>
@@ -103,8 +105,6 @@ static void __init efi_arch_relocate_image(unsigned long delta)
     }
 }
 
-void reloc_trampoline64(void);
-
 static void __init relocate_trampoline(unsigned long phys)
 {
     trampoline_phys = phys;
diff --git a/xen/arch/x86/include/asm/boot-helpers.h b/xen/arch/x86/include/asm/boot-helpers.h
new file mode 100644
index 000000000000..166f49b4da01
--- /dev/null
+++ b/xen/arch/x86/include/asm/boot-helpers.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Declarations for helper functions compiled for both 32bit and 64bit.
+ *
+ * The 32bit forms are called only from assembly, so no declaration is provide
+ * here.
+ */
+#ifndef X86_BOOT_HELPERS_H
+#define X86_BOOT_HELPERS_H
+
+void reloc_trampoline64(void);
+
+#endif /* X86_BOOT_HELPERS_H */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 18:07:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 18:07:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839449.1255239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD69u-0008Cm-PQ; Mon, 18 Nov 2024 18:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839449.1255239; Mon, 18 Nov 2024 18:07: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 1tD69u-0008Cf-Mh; Mon, 18 Nov 2024 18:07:34 +0000
Received: by outflank-mailman (input) for mailman id 839449;
 Mon, 18 Nov 2024 18:07: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=1Qym=SN=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tD69t-0008CV-8H
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 18:07:33 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id f8e471b4-a5d7-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 19:07:28 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id 3DD17206BCF9;
 Mon, 18 Nov 2024 10:07: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: f8e471b4-a5d7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImY4ZTQ3MWI0LWE1ZDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTUzMjQ5LjMxNTgxMywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3DD17206BCF9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731953247;
	bh=lP0Zntp+HRWENCbPjrc9G2lDoefH/1cMkwirwj5j8Pw=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=U8YJ5MEB+lC4gUMBqZ4Gz30eL5pByQSSZkvP1DxkMnTP1qlIes9QjQ3oHvl0/spjY
	 zaV4G+9kqg2wB6l6cY05sRrhV/1+2NwT0Di3E3r4OqgFDSinGSRYQd2YjZAhmOdf7k
	 pgtoi2CJWleSz5F2PF0YMgIK9D4gDdAFvwZB2ktQ=
Message-ID: <4a3e6cfe-35ef-4865-8b43-c002679455f3@linux.microsoft.com>
Date: Mon, 18 Nov 2024 10:07:24 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 eahariha@linux.microsoft.com,
 "netfilter-devel@vger.kernel.org" <netfilter-devel@vger.kernel.org>,
 "coreteam@netfilter.org" <coreteam@netfilter.org>,
 "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
 "cocci@inria.fr" <cocci@inria.fr>,
 "linux-arm-kernel@lists.infradead.org"
 <linux-arm-kernel@lists.infradead.org>,
 "linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
 "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>,
 "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
 "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
 "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
 "ath11k@lists.infradead.org" <ath11k@lists.infradead.org>,
 "linux-mm@kvack.org" <linux-mm@kvack.org>,
 "linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>,
 "linux-staging@lists.linux.dev" <linux-staging@lists.linux.dev>,
 "linux-rpi-kernel@lists.infradead.org"
 <linux-rpi-kernel@lists.infradead.org>,
 "ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>,
 "live-patching@vger.kernel.org" <live-patching@vger.kernel.org>,
 "linux-sound@vger.kernel.org" <linux-sound@vger.kernel.org>,
 "etnaviv@lists.freedesktop.org" <etnaviv@lists.freedesktop.org>,
 "oss-drivers@corigine.com" <oss-drivers@corigine.com>,
 "linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
 Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
To: LEROY Christophe <christophe.leroy2@cs-soprasteria.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <fb97b58c-4d77-43d1-88a0-d838d5030d3e@cs-soprasteria.com>
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Content-Language: en-US
In-Reply-To: <fb97b58c-4d77-43d1-88a0-d838d5030d3e@cs-soprasteria.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/16/2024 2:23 AM, LEROY Christophe wrote:
> 
> 
> Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©crit :
>> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
>>
>> This is a series that follows up on my previous series to introduce
>> secs_to_jiffies() and convert a few initial users.[1] In the review for
>> that series, Anna-Maria requested converting other users with
>> Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
>> that use the multiply pattern of either of:
>> - msecs_to_jiffies(N*1000), or
>> - msecs_to_jiffies(N*MSEC_PER_SEC)
> 
> After applying this series on top of tip/timers/core tree, I still find
> a lot of candidates to the conversion:
> 

Thanks for looking, that pattern of seconds-denominated
msecs_to_jiffies() calls will be addressed in a later part. As mentioned
in my reply to Anna-Maria[1], I'm not super-familiar with Coccinelle. I
sent this out as part 1 as mentioned in the cover letter above to make
incremental progress as much as I could. Julia has sent me a message
with a rule that could possibly address the pattern you point out.

I also see there are some instances in the grep results that appear to
be expression * 1000 rather than constant * 1000. I'll address those in
one of the later parts as well.

Thanks,
Easwar


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 18:09:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 18:09:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839454.1255248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD6BQ-0000Ib-32; Mon, 18 Nov 2024 18:09:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839454.1255248; Mon, 18 Nov 2024 18:09: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 1tD6BQ-0000IU-0O; Mon, 18 Nov 2024 18:09:08 +0000
Received: by outflank-mailman (input) for mailman id 839454;
 Mon, 18 Nov 2024 18:09: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=mIWu=SN=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tD6BO-0000IO-Og
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 18:09:06 +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 2fe13414-a5d8-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 19:09:00 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-a99f646ff1bso697182066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 10:09:00 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e081574sm565347366b.179.2024.11.18.10.08.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 10:08: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: 2fe13414-a5d8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJmZTEzNDE0LWE1ZDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTUzMzQwLjgyNTg0MSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1731953340; x=1732558140; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=05U+eHEv06g5QU7+ytyEww0kKOfOL8ykdgGZyS7ohgA=;
        b=L8oS35DB6UNzNZhiQBESh2sqVQlWEjaFhvtyMOpF5Z91JHfWXjC4XFECJYYtPJSyKt
         WWatYKCdWbPeeYHpUyTgR6lGKxiZvGC3xOg8e87UM3qOp1QYwL3/7CzSNkkJv1fu9PQL
         WV5uVDzK3gdaAKiNMehErAT51D6uLFXDW5tyc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731953340; x=1732558140;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=05U+eHEv06g5QU7+ytyEww0kKOfOL8ykdgGZyS7ohgA=;
        b=vXKPGkqdkdz0E26e3vwsyO2Z5deocg4y2iVwlvEcczmikYBRae7ManprRVtcfJWRLn
         bUwrE0UIYkHYghEbob8FFpjWEjXzyD7X/6p2sBTb8+y8MJItBSyOFy1EJSv4SQa/ZMF2
         7N4juK5syOyDvn+gIdBCgBqq6NcsG2zNM9+PWERJLLor/Ex7kepKckQ7AIcYAIlZU6dM
         xyCTV6R0/9ON1cTRZ1QM+8sx8YgWgino0YiQQp3LGGTrsmfTP2fyL0SI1mJuGRjm6NsO
         y0XSjDA8dppyvS6DLAgk0GTy1kL+d36HCxB/Fbs9ZynKadtfyMQ5d6ly2TgT8bf3Fc7f
         4ViA==
X-Forwarded-Encrypted: i=1; AJvYcCX6Dp5/FwMOrZXXiHZcYtu5eTjHXQuUSrdJdTsA8AwVKeaVDnt4xDf+W6l1ccEtRkB3IsFwNEo+EqE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwI/KbBd1rBjnBeTRsh4Ehcf2w9uSIsnq+JX9HsaTcc85iQcP9U
	mDQ9QxYj6FTeeAhQObKqenkXNc7Wr+96PlvUhBslEkq+CrPTgTUncMxwvo75HRQ=
X-Google-Smtp-Source: AGHT+IGq553ck/1IjnuXT6F0sh4qyDfnL7daw5ef/fz40NKLY3yQgFHAJBYtw6ZvjfEiECfUBRXm/A==
X-Received: by 2002:a17:906:da84:b0:a99:403e:2578 with SMTP id a640c23a62f3a-aa4833e9196mr1365041366b.5.1731953340221;
        Mon, 18 Nov 2024 10:09:00 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 18 Nov 2024 18:08:57 +0000
Message-Id: <D5PI7VAO3Y1Z.AMHQW0VS2CBI@cloud.com>
Cc: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, "Hongyan
 Xia" <hongyxia@amazon.com>, "Julien Grall" <jgrall@amazon.com>
Subject: Re: [PATCH V4 07/15] x86/domain_page: Remove the fast paths when
 mfn is not in the directmap
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Elias El Yandouzi" <eliasely@amazon.com>,
 <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241111131148.52568-1-eliasely@amazon.com>
 <20241111131148.52568-8-eliasely@amazon.com>
In-Reply-To: <20241111131148.52568-8-eliasely@amazon.com>

I'm still headscratching about various things, but the build errors are on
release builds without pmap enabled. I'm highlighted them here.

On Mon Nov 11, 2024 at 1:11 PM GMT, Elias El Yandouzi wrote:
> From: Hongyan Xia <hongyxia@amazon.com>
>
> When mfn is not in direct map, never use mfn_to_virt for any mappings.
>
> We replace mfn_x(mfn) <=3D PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) with
> arch_mfns_in_direct_map(mfn, 1) because these two are equivalent. The
> extra comparison in arch_mfns_in_direct_map() looks different but because
> DIRECTMAP_VIRT_END is always higher, it does not make any difference.
>
> Lastly, domain_page_map_to_mfn() needs to gain to a special case for
> the PMAP.
>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> Signed-off-by: Julien Grall <jgrall@amazon.com>
>
> ----
>
>     Changes in v4:
>         * Introduce helper functions virt_is_fixmap and virt_in_fixmap_ra=
nge
>
>     Changes since Hongyan's version:
>         * arch_mfn_in_direct_map() was renamed to arch_mfns_in_directmap(=
)
>         * add a special case for the PMAP in domain_page_map_to_mfn()
>
> diff --git a/xen/arch/x86/domain_page.c b/xen/arch/x86/domain_page.c
> index 55e337aaf703..df7d4750ef05 100644
> --- a/xen/arch/x86/domain_page.c
> +++ b/xen/arch/x86/domain_page.c
> @@ -14,8 +14,10 @@
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  #include <asm/current.h>
> +#include <asm/fixmap.h>
>  #include <asm/flushtlb.h>
>  #include <asm/hardirq.h>
> +#include <asm/pmap.h>
>  #include <asm/setup.h>
> =20
>  static DEFINE_PER_CPU(struct vcpu *, override);
> @@ -24,6 +26,7 @@ static inline struct vcpu *mapcache_current_vcpu(void)
>  {
>      /* In the common case we use the mapcache of the running VCPU. */
>      struct vcpu *v =3D this_cpu(override) ?: current;
> +    struct vcpu *idle_v =3D idle_vcpu[smp_processor_id()];
> =20
>      /*
>       * When current isn't properly set up yet, this is equivalent to
> @@ -35,10 +38,11 @@ static inline struct vcpu *mapcache_current_vcpu(void=
)
>      /*
>       * When using efi runtime page tables, we have the equivalent of the=
 idle
>       * domain's page tables but current may point at another domain's VC=
PU.
> -     * Return NULL as though current is not properly set up yet.
> +     * Return the idle domains's vcpu on that core because the efi per-d=
omain
> +     * region (where the mapcache is) is in-sync with the idle domain.
>       */
>      if ( efi_rs_using_pgtables() )
> -        return NULL;
> +        return idle_v;
> =20
>      /*
>       * If guest_table is NULL, and we are running a paravirtualised gues=
t,
> @@ -48,7 +52,7 @@ static inline struct vcpu *mapcache_current_vcpu(void)
>      if ( unlikely(pagetable_is_null(v->arch.guest_table)) && is_pv_vcpu(=
v) )
>      {
>          /* If we really are idling, perform lazy context switch now. */
> -        if ( (v =3D idle_vcpu[smp_processor_id()]) =3D=3D current )
> +        if ( (v =3D idle_v) =3D=3D current )
>              sync_local_execstate();
>          /* We must now be running on the idle page table. */
>          ASSERT(cr3_pa(read_cr3()) =3D=3D __pa(idle_pg_table));
> @@ -77,18 +81,24 @@ void *map_domain_page(mfn_t mfn)
>      struct vcpu_maphash_entry *hashent;
> =20
>  #ifdef NDEBUG
> -    if ( mfn_x(mfn) <=3D PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) )
> +    if ( arch_mfns_in_directmap(mfn_x(mfn), 1) )
>          return mfn_to_virt(mfn_x(mfn));
>  #endif
> =20
>      v =3D mapcache_current_vcpu();
> -    if ( !v )
> -        return mfn_to_virt(mfn_x(mfn));
> +    if ( !v || !v->domain->arch.mapcache.inuse )
> +    {
> +        if ( arch_mfns_in_directmap(mfn_x(mfn), 1) )
> +            return mfn_to_virt(mfn_x(mfn));
> +        else
> +        {
> +            BUG_ON(system_state >=3D SYS_STATE_smp_boot);

Missing CONFIG_HAS_PMAP guards around this return. Without it this wants to
BUG(), I think. I'm not entirely convinced the current logic takes into acc=
ount
the extended directmap present in HVM and idle vCPUs though.

arch_mfns_in_directmap() merely checks they fit in DIRECTMAP_SIZE, doesn't =
it?

> +            return pmap_map(mfn);
> +        }
> +    }
> =20
>      dcache =3D &v->domain->arch.mapcache;
>      vcache =3D &v->arch.mapcache;
> -    if ( !dcache->inuse )
> -        return mfn_to_virt(mfn_x(mfn));
> =20
>      perfc_incr(map_domain_page_count);
> =20
> @@ -184,6 +194,12 @@ void unmap_domain_page(const void *ptr)
>      if ( !va || va >=3D DIRECTMAP_VIRT_START )
>          return;
> =20
> +    if ( virt_is_fixmap(va) )
> +    {
> +        pmap_unmap(ptr);
> +        return;
> +    }
> +

This hunk is also missing CONFIG_HAS_PMAP guards.

>      ASSERT(va >=3D MAPCACHE_VIRT_START && va < MAPCACHE_VIRT_END);
> =20
>      v =3D mapcache_current_vcpu();
> @@ -237,7 +253,7 @@ int mapcache_domain_init(struct domain *d)
>      unsigned int bitmap_pages;
> =20
>  #ifdef NDEBUG
> -    if ( !mem_hotplug && max_page <=3D PFN_DOWN(__pa(HYPERVISOR_VIRT_END=
 - 1)) )
> +    if ( !mem_hotplug && arch_mfn_in_directmap(0, max_page) )

I suspect you wanted arch_mfns_in_directmap() rather than _mfn_

>          return 0;
>  #endif
> =20
> @@ -308,7 +324,7 @@ void *map_domain_page_global(mfn_t mfn)
>              local_irq_is_enabled()));
> =20
>  #ifdef NDEBUG
> -    if ( mfn_x(mfn) <=3D PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) )
> +    if ( arch_mfn_in_directmap(mfn_x(mfn, 1)) )

I suspect you wanted 's/mfn_x(mfn, 1)/mfn_x(mfn), 1/' instead?

>          return mfn_to_virt(mfn_x(mfn));
>  #endif
> =20
> @@ -335,6 +351,22 @@ mfn_t domain_page_map_to_mfn(const void *ptr)
>      if ( va >=3D DIRECTMAP_VIRT_START )
>          return _mfn(virt_to_mfn(ptr));
> =20
> +    /*
> +     * The fixmap is stealing the top-end of the VMAP. So the check for
> +     * the PMAP *must* happen first.
> +     *
> +     * Also, the fixmap translate a slot to an address backwards. The
> +     * logic will rely on it to avoid any complexity. So check at
> +     * compile time this will always hold.
> +    */
> +    BUILD_BUG_ON(fix_to_virt(FIX_PMAP_BEGIN) < fix_to_virt(FIX_PMAP_END)=
);
> +
> +    if ( virt_in_fixmap_range(va, FIX_PMAP_BEGIN, FIX_PMAP_END) )
> +    {
> +        BUG_ON(system_state >=3D SYS_STATE_smp_boot);
> +        return l1e_get_mfn(l1_fixmap[l1_table_offset(va)]);
> +    }
> +

This hunk should be surrounded by CONFIG_HAS_PMAP guards or it'll fail to
compile.

>      if ( va >=3D VMAP_VIRT_START && va < VMAP_VIRT_END )
>          return vmap_to_mfn(va);
> =20
> diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm=
/fixmap.h
> index 80b7b74fd816..381c95a8b11f 100644
> --- a/xen/arch/x86/include/asm/fixmap.h
> +++ b/xen/arch/x86/include/asm/fixmap.h
> @@ -101,6 +101,31 @@ static inline unsigned long virt_to_fix(const unsign=
ed long vaddr)
>      return __virt_to_fix(vaddr);
>  }
> =20
> +static inline bool virt_is_fixmap(const unsigned long vaddr)
> +{
> +    return vaddr >=3D FIXADDR_START && vaddr < FIXADDR_TOP;
> +}
> +
> +static inline bool virt_in_fixmap_range(
> +    const unsigned long vaddr,
> +    const unsigned int start_idx,
> +    const unsigned int end_idx
> +)
> +{
> +    unsigned long start_addr =3D (unsigned long)fix_to_virt(start_idx);
> +    unsigned long end_addr =3D (unsigned long)fix_to_virt(end_idx);
> +
> +    /*
> +     * The check ensures that the virtual address (vaddr) is within the
> +     * fixmap range. The addresses are allocated backwards, meaning the
> +     * start address is higher than the end address. As a result, the
> +     * check ensures that the virtual address is greater than or equal t=
o
> +     * the end address, and less than or equal to the start address, whi=
ch
> +     * may appear counterintuitive due to the reverse allocation order.
> +     */
> +    return ((vaddr & PAGE_MASK) <=3D start_addr) && (vaddr >=3D end_addr=
);
> +}
> +
>  enum fixed_addresses_x {
>      /* Index 0 is reserved since fix_x_to_virt(0) =3D=3D FIXADDR_X_TOP. =
*/
>      FIX_X_RESERVED,

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 18:09:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 18:09:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839456.1255258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD6Bi-0000fW-A4; Mon, 18 Nov 2024 18:09:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839456.1255258; Mon, 18 Nov 2024 18: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 1tD6Bi-0000fP-7N; Mon, 18 Nov 2024 18:09:26 +0000
Received: by outflank-mailman (input) for mailman id 839456;
 Mon, 18 Nov 2024 18:09: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=1Qym=SN=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tD6Bg-0000XQ-FJ
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 18:09:24 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3c5f3185-a5d8-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 19:09:22 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id B3D1220BEBD0;
 Mon, 18 Nov 2024 10:09: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: 3c5f3185-a5d8-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjNjNWYzMTg1LWE1ZDgtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTUzMzYyLjM2NTc1NCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B3D1220BEBD0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731953360;
	bh=wR2vAxb4KjC7bChWhYgHEm7VYOkoUSKJ2zrGmmUQgeU=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=QcXvfQn32bbEJk/CliGqPjJlSoPmzpqy39Cb7yWbUp/UMAorBMUaWUr/NKZ9e69DC
	 EuA6BiEwniO9Hz9jAZdoaPATG/Z4etAtwQMMCiIdSJ0wltRFnatVskzJPAClKWSWJ2
	 IoOFaRlq/Uc2MlJVJm0M77F7OwMbRuycEwh39LjI=
Message-ID: <52cc0733-49fc-4452-99c6-8c18bf20dde7@linux.microsoft.com>
Date: Mon, 18 Nov 2024 10:09:17 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: eahariha@linux.microsoft.com, James.Bottomley@HansenPartnership.com,
 Julia.Lawall@inria.fr, agordeev@linux.ibm.com, airlied@gmail.com,
 akpm@linux-foundation.org, andrew+netdev@lunn.ch, anna-maria@linutronix.de,
 ath11k@lists.infradead.org, axboe@kernel.dk,
 bcm-kernel-feedback-list@broadcom.com, borntraeger@linux.ibm.com,
 catalin.marinas@arm.com, ceph-devel@vger.kernel.org,
 christian.gmeiner@gmail.com, christophe.leroy@csgroup.eu, cocci@inria.fr,
 coreteam@netfilter.org, daniel@zonque.org, davem@davemloft.net,
 dick.kennedy@broadcom.com, dri-devel@lists.freedesktop.org,
 edumazet@google.com, etnaviv@lists.freedesktop.org,
 florian.fainelli@broadcom.com, gor@linux.ibm.com,
 gregkh@linuxfoundation.org, haojian.zhuang@gmail.com, hca@linux.ibm.com,
 horms@kernel.org, idryomov@gmail.com, intel-xe@lists.freedesktop.org,
 james.smart@broadcom.com, jeroendb@google.com, jikos@kernel.org,
 jinpu.wang@cloud.ionos.com, jjohnson@kernel.org, joe.lawrence@redhat.com,
 johan.hedberg@gmail.com, jpoimboe@kernel.org, kadlec@netfilter.org,
 kuba@kernel.org, kvalo@kernel.org, l.stach@pengutronix.de,
 linux+etnaviv@armlinux.org.uk, linux-arm-kernel@lists.infradead.org,
 linux-block@vger.kernel.org, linux-bluetooth@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-rpi-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 linux-scsi@vger.kernel.org, linux-sound@vger.kernel.org,
 linux-staging@lists.linux.dev, linux-wireless@vger.kernel.org,
 linux@armlinux.org.uk, linuxppc-dev@lists.ozlabs.org,
 live-patching@vger.kernel.org, louis.peens@corigine.com,
 lucas.demarchi@intel.com, luiz.dentz@gmail.com,
 maarten.lankhorst@linux.intel.com, maddy@linux.ibm.com, marcel@holtmann.org,
 martin.petersen@oracle.com, mbenes@suse.cz, mpe@ellerman.id.au,
 mripard@kernel.org, naveen@kernel.org, netdev@vger.kernel.org,
 netfilter-devel@vger.kernel.org, nicolas.palix@imag.fr, npiggin@gmail.com,
 obitton@habana.ai, ogabbay@kernel.org, oss-drivers@corigine.com,
 pabeni@redhat.com, pablo@netfilter.org, perex@perex.cz,
 pkaligineedi@google.com, pmladek@suse.com, rjui@broadcom.com,
 robert.jarzmik@free.fr, rodrigo.vivi@intel.com, roger.pau@citrix.com,
 sbranden@broadcom.com, shailend@google.com, simona@ffwll.ch,
 svens@linux.ibm.com, thomas.hellstrom@linux.intel.com, tiwai@suse.com,
 tzimmermann@suse.de, xen-devel@lists.xenproject.org, xiubli@redhat.com
Subject: Re: [PATCH v2 02/21] coccinelle: misc: Add secs_to_jiffies script
To: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
References: <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
 <20241116060541.5798-1-christophe.jaillet@wanadoo.fr>
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Content-Language: en-US
In-Reply-To: <20241116060541.5798-1-christophe.jaillet@wanadoo.fr>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/15/2024 10:05 PM, Christophe JAILLET wrote:
> Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©crit :
>> Suggested-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>> ---
>>   scripts/coccinelle/misc/secs_to_jiffies.cocci | 21 +++++++++++++++++++++
>>   1 file changed, 21 insertions(+)
>>
>> diff --git a/scripts/coccinelle/misc/secs_to_jiffies.cocci b/scripts/coccinelle/misc/secs_to_jiffies.cocci
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..af762b1c0aac8f044f21150bfaafd9efc834ee87
>> --- /dev/null
>> +++ b/scripts/coccinelle/misc/secs_to_jiffies.cocci
>> @@ -0,0 +1,21 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +///
>> +/// Find usages of:
>> +/// - msecs_to_jiffies(value*1000)
>> +/// - msecs_to_jiffies(value*MSEC_PER_SEC)
>> +///
>> +// Confidence: High
>> +// Copyright: (C) 2024 Easwar Hariharan Microsoft
>> +//
>> +// Keywords: secs, seconds, jiffies
>> +//
>> +
>> +@@ constant C; @@
>> +
>> +- msecs_to_jiffies(C * 1000)
>> ++ secs_to_jiffies(C)
>> +
>> +@@ constant C; @@
>> +
>> +- msecs_to_jiffies(C * MSEC_PER_SEC)
>> ++ secs_to_jiffies(C)
>>
> Hi,
> 
> 	@@ constant C =~ "000"; @@
> 
> 	* msecs_to_jiffies(C)
> 
> also spots things like msecs_to_jiffies(1000)
> 
> I'm not sure that coccinelle is enable to capture part of the regex to automate the removal of the 000 when converting from ms to s.
> 
> Just my 2c,
> 
> CJ

Thank you, I'll try that rule for the later parts. Thank you all for
helping with writing Coccinelle rules, I'm not familiar with
metaprogramming in general and Coccinelle in particular, so these are
super helpful.

- Easwar


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 18:13:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 18:13:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839477.1255272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD6Ff-0004K2-S9; Mon, 18 Nov 2024 18:13:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839477.1255272; Mon, 18 Nov 2024 18: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 1tD6Ff-0004Jv-PS; Mon, 18 Nov 2024 18:13:31 +0000
Received: by outflank-mailman (input) for mailman id 839477;
 Mon, 18 Nov 2024 18:13: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=1Qym=SN=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tD6Fe-0004Jp-JK
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 18:13:30 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id cf16cefe-a5d8-11ef-a0c8-8be0dac302b0;
 Mon, 18 Nov 2024 19:13:28 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id 079B420B7D5F;
 Mon, 18 Nov 2024 10:13: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: cf16cefe-a5d8-11ef-a0c8-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNmMTZjZWZlLWE1ZDgtMTFlZi1hMGM4LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTUzNjA4LjQzMTczLCJzZW5kZXIiOiJlYWhhcmloYUBsaW51eC5taWNyb3NvZnQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 079B420B7D5F
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731953606;
	bh=4rGKqWlJzIh5S6WJog1UbY+9wr2RIzuf6CA98XkvD9A=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=WgQq6VDmQPqDVd9HrdDJWYVeePI1o6O7aH2e5YK2i2MPTb79KOYC8kOEtCVdZyQyl
	 eQBQq4Gru6AuE3dhO0MWMctvjnMle6WwOzCHVKzijDojX1XF1tLPvCR2mFqRKiKQA2
	 T8BTz//c1DSiW16jlJvFvYtwS5WkMEtzzK+2O4cI=
Message-ID: <c2a5d9d2-ac73-46b0-9d2e-6960e2a13c1e@linux.microsoft.com>
Date: Mon, 18 Nov 2024 10:13:23 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 eahariha@linux.microsoft.com, netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 01/21] netfilter: conntrack: Cleanup timeout
 definitions
To: Christophe Leroy <christophe.leroy@csgroup.eu>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-1-911fb7595e79@linux.microsoft.com>
 <b370e8d0-2f87-4819-8f30-1181946295d9@csgroup.eu>
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Content-Language: en-US
In-Reply-To: <b370e8d0-2f87-4819-8f30-1181946295d9@csgroup.eu>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/16/2024 1:40 AM, Christophe Leroy wrote:
> 
> 
> Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
>> [Vous ne recevez pas souvent de courriers de
>> eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã 
>> https://aka.ms/LearnAboutSenderIdentification ]
>>
>> None of the higher order definitions are used anymore, so remove
>> definitions for minutes, hours, and days timeouts. Convert the seconds
>> denominated timeouts to secs_to_jiffies()
> 
> There is very similar things with tcp_timeouts[] in
> nf_conntrack_proto_tcp.c, why not convert it as well ?

This patch happens to have been hand-modified and not by Coccinelle.
I'll consider tcp_timeouts[] for v3, but that actually seems to have
minute, hour, and days denominated timeouts, and replacing the 4 SECS
timeouts may actually hinder readability in that file.

> 
>>
>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>> ---
>> Â  net/netfilter/nf_conntrack_proto_sctp.c | 21 ++++++++-------------
>> Â  1 file changed, 8 insertions(+), 13 deletions(-)
>>
>> diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/
>> nf_conntrack_proto_sctp.c
>> index
>> 4cc97f971264ed779434ab4597dd0162586b3736..6c95ac96fa42a39acafb5b88a7cf8898010e911c 100644
>> --- a/net/netfilter/nf_conntrack_proto_sctp.c
>> +++ b/net/netfilter/nf_conntrack_proto_sctp.c
>> @@ -39,20 +39,15 @@ static const char *const sctp_conntrack_names[] = {
>> Â Â Â Â Â Â Â Â  [SCTP_CONNTRACK_HEARTBEAT_SENT]Â Â Â Â Â Â Â Â  = "HEARTBEAT_SENT",
>> Â  };
>>
>> -#define SECSÂ  * HZ
>> -#define MINSÂ  * 60 SECS
>> -#define HOURS * 60 MINS
>> -#define DAYSÂ  * 24 HOURS
>> -
>> Â  static const unsigned int sctp_timeouts[SCTP_CONNTRACK_MAX] = {
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_CLOSED]Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  = 10 SECS,
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_COOKIE_WAIT]Â Â Â Â Â Â Â Â Â Â Â  = 3 SECS,
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_COOKIE_ECHOED]Â Â Â Â Â Â Â Â Â  = 3 SECS,
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_ESTABLISHED]Â Â Â Â Â Â Â Â Â Â Â  = 210 SECS,
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_SHUTDOWN_SENT]Â Â Â Â Â Â Â Â Â  = 3 SECS,
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_SHUTDOWN_RECD]Â Â Â Â Â Â Â Â Â  = 3 SECS,
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]Â Â Â Â Â  = 3 SECS,
>> -Â Â Â Â Â Â  [SCTP_CONNTRACK_HEARTBEAT_SENT]Â Â Â Â Â Â Â Â  = 30 SECS,
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_CLOSED]Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  = secs_to_jiffies(10),
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_COOKIE_WAIT]Â Â Â Â Â Â Â Â Â Â Â  = secs_to_jiffies(3),
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_COOKIE_ECHOED]Â Â Â Â Â Â Â Â Â  = secs_to_jiffies(3),
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_ESTABLISHED]Â Â Â Â Â Â Â Â Â Â Â  = secs_to_jiffies(210),
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_SHUTDOWN_SENT]Â Â Â Â Â Â Â Â Â  = secs_to_jiffies(3),
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_SHUTDOWN_RECD]Â Â Â Â Â Â Â Â Â  = secs_to_jiffies(3),
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_SHUTDOWN_ACK_SENT]Â Â Â Â Â  = secs_to_jiffies(3),
>> +Â Â Â Â Â Â  [SCTP_CONNTRACK_HEARTBEAT_SENT]Â Â Â Â Â Â Â Â  = secs_to_jiffies(3),
> 
> Was 30 before, if you think it must be changed to 3 you must explain it
> in the commit message, or maybe do another patch for that change.

This one's a typo, I'll fix it in v3.

Thanks,
Easwar


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 18:14:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 18:14:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839486.1255282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD6GO-0004ro-8e; Mon, 18 Nov 2024 18:14:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839486.1255282; Mon, 18 Nov 2024 18: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 1tD6GO-0004rh-5k; Mon, 18 Nov 2024 18:14:16 +0000
Received: by outflank-mailman (input) for mailman id 839486;
 Mon, 18 Nov 2024 18: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=1Qym=SN=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tD6GN-0004Ir-Qi
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 18:14:15 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id e99afb82-a5d8-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 19:14:12 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id 8D36320BEBD0;
 Mon, 18 Nov 2024 10:14: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: e99afb82-a5d8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImU5OWFmYjgyLWE1ZDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTUzNjUyLjk1ODkxMywic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 8D36320BEBD0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731953651;
	bh=MeFLzXLWjsp3xazm690fAfQLAcbfGbqnimGpQ/u+lxI=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=EpMTlyYxawzrpLWk5xbTVLImz1FjRu/dpjx04XMKC2h+0ZNk23p4q7IoVXWEQqe6i
	 TSxIDdutTSwCt2U1ULNO+LS+MuwrAKZSeARAyR7AcI3+aMeOvdMnHKpbTDEXEPDD9p
	 tittVJRLH13+jNl6nnFYjIZC0+F9Zmxn+hJkRyII=
Message-ID: <89a8b1ea-3f18-4a2a-8226-c287b5427bec@linux.microsoft.com>
Date: Mon, 18 Nov 2024 10:14:08 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Petr Mladek <pmladek@suse.com>, Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 eahariha@linux.microsoft.com, netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 02/21] coccinelle: misc: Add secs_to_jiffies script
To: Christophe Leroy <christophe.leroy@csgroup.eu>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-2-911fb7595e79@linux.microsoft.com>
 <c07de369-9363-4e1d-9ccc-2db6dff79595@csgroup.eu>
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Content-Language: en-US
In-Reply-To: <c07de369-9363-4e1d-9ccc-2db6dff79595@csgroup.eu>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/16/2024 1:52 AM, Christophe Leroy wrote:
> 
> 
> Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
>> [Vous ne recevez pas souvent de courriers de
>> eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã 
>> https://aka.ms/LearnAboutSenderIdentification ]
>>
> 
> There should be some explaination in the commit message, what the script
> does for instance.
> 

Thanks, will expand on this in v3.

- Easwar



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 18:19:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 18:19:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839494.1255292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD6Kw-0005WY-Po; Mon, 18 Nov 2024 18:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839494.1255292; Mon, 18 Nov 2024 18: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 1tD6Kw-0005WR-Mw; Mon, 18 Nov 2024 18:18:58 +0000
Received: by outflank-mailman (input) for mailman id 839494;
 Mon, 18 Nov 2024 18:18: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=1Qym=SN=linux.microsoft.com=eahariha@srs-se1.protection.inumbo.net>)
 id 1tD6Kv-0005WJ-Lj
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 18:18:57 +0000
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 91037ca5-a5d9-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 19:18:53 +0100 (CET)
Received: from [192.168.35.166] (c-73-118-245-227.hsd1.wa.comcast.net
 [73.118.245.227])
 by linux.microsoft.com (Postfix) with ESMTPSA id 7B6DB206BCF9;
 Mon, 18 Nov 2024 10:18: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: 91037ca5-a5d9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzLjc3LjE1NC4xODIiLCJoZWxvIjoibGludXgubWljcm9zb2Z0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkxMDM3Y2E1LWE1ZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTUzOTMzLjgyMzcwOCwic2VuZGVyIjoiZWFoYXJpaGFAbGludXgubWljcm9zb2Z0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 7B6DB206BCF9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
	s=default; t=1731953932;
	bh=fIQzgF1WsNR1uKKNTq0/EQo7zmlio+cixqR17RrtuRg=;
	h=Date:Cc:Subject:To:References:From:In-Reply-To:From;
	b=AG9s/uyDx0OBII3cr4HUzEtCn4nG6edMY2UD6tMYQJ1OpbxvtlkXS/eCyyKzQSDkC
	 KcdCHl5p58vf39EYGhD7mqQUrW1VKQADyz79vhjulvgZLmWmAZisUXU71InKFz7Poi
	 T4lQlDCJsC2Y9ZlNmbnEUe8f/zo4dQilCRsXYjpY=
Message-ID: <96f3b51b-c28c-4ea8-b61e-a4982196215f@linux.microsoft.com>
Date: Mon, 18 Nov 2024 10:18:49 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>,
 eahariha@linux.microsoft.com, Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Russell King
 <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
 <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi
 <lucas.demarchi@intel.com>,
 =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>, Catalin Marinas
 <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann
 <marcel@holtmann.org>, Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui
 <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
 Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>,
 Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>, Madhavan Srinivasan <maddy@linux.ibm.com>,
 netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org, linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org, linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org, linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org, oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org, Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 19/21] livepatch: Convert timeouts to secs_to_jiffies()
To: Petr Mladek <pmladek@suse.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com>
 <718febc4-59ee-4701-ad62-8b7a8fa7a910@csgroup.eu>
 <Zzsfuuv3AVomkMxn@pathway.suse.cz>
From: Easwar Hariharan <eahariha@linux.microsoft.com>
Content-Language: en-US
In-Reply-To: <Zzsfuuv3AVomkMxn@pathway.suse.cz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/18/2024 3:06 AM, Petr Mladek wrote:
> On Sat 2024-11-16 11:10:52, Christophe Leroy wrote:
>>
>>
>> Le 15/11/2024 Ã  22:26, Easwar Hariharan a Ã©critÂ :
>>> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. DÃ©couvrez pourquoi ceci est important Ã  https://aka.ms/LearnAboutSenderIdentification ]
>>>
>>> Changes made with the following Coccinelle rules:
>>>
>>> @@ constant C; @@
>>>
>>> - msecs_to_jiffies(C * 1000)
>>> + secs_to_jiffies(C)
>>>
>>> @@ constant C; @@
>>>
>>> - msecs_to_jiffies(C * MSEC_PER_SEC)
>>> + secs_to_jiffies(C)
>>>
>>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>>> ---
>>>   samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
>>>   samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
>>>   samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
>>>   3 files changed, 7 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
>>> index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
>>> --- a/samples/livepatch/livepatch-callbacks-busymod.c
>>> +++ b/samples/livepatch/livepatch-callbacks-busymod.c
>>> @@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
>>>   {
>>>          pr_info("%s\n", __func__);
>>>          schedule_delayed_work(&work,
>>> -               msecs_to_jiffies(1000 * 0));
>>> +               secs_to_jiffies(0));
>>
>> Using secs_to_jiffies() is pointless, 0 is universal, should become
>> schedule_delayed_work(&work, 0);
> 
> Yes, schedule_delayed_work(&work, 0) looks like the right solution.
> 
> Or even better, it seems that the delayed work might get replaced by
> a normal workqueue work.
> 
> Anyway, I am working on a patchset which would remove this sample
> module. There is no need to put much effort into the clean up
> of this particular module. Do whatever is easiest for you.
> 
> Best Regards,
> Petr

If we're removing the module, I'll drop it from the series. Just to
clarify, do you mean to remove all of samples/livepatch/* or some
particular file(s)?

Thanks,
Easwar


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 20:21:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 20:21:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839515.1255307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD8En-0000EW-8s; Mon, 18 Nov 2024 20:20:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839515.1255307; Mon, 18 Nov 2024 20:20: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 1tD8En-0000EP-4m; Mon, 18 Nov 2024 20:20:45 +0000
Received: by outflank-mailman (input) for mailman id 839515;
 Mon, 18 Nov 2024 20: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=EsGE=SN=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1tD8El-00008i-LR
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 20:20:43 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92630f73-a5ea-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 21:20:38 +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 4AIKKQ0x075326
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Mon, 18 Nov 2024 15:20:32 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 4AIKKQo8075325;
 Mon, 18 Nov 2024 12:20:26 -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: 92630f73-a5ea-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6Ijc0LjEwNC4xODguNCIsImhlbG8iOiJtYWlsaG9zdC5tNXAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkyNjMwZjczLWE1ZWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTYxMjM4LjU0NDI4Niwic2VuZGVyIjoiZWhlbUBtNXAuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
Date: Mon, 18 Nov 2024 12:20:26 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Cc: Andrei Semenov <andrei.semenov@vates.tech>, xen-devel@lists.xenproject.org,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Subject: Re: AMD EPYC virtual network performances
Message-ID: <ZzuhioHYhwercO04@mattapan.m5p.com>
References: <959bbf84-24da-4da3-a059-dc1aa32b27ef@vates.tech>
 <ZzTg_p-8E0_jrkii@mattapan.m5p.com>
 <467e46ad-d0d0-4217-9b70-b48e3c7a1fb5@suse.com>
 <ZzaRnFLMq9OY3jj6@mattapan.m5p.com>
 <0f6fb528-7432-42b9-8605-58d95621509d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0f6fb528-7432-42b9-8605-58d95621509d@suse.com>
X-Spam-Status: No, score=0.3 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

On Fri, Nov 15, 2024 at 07:46:07AM +0100, Jürgen Groß wrote:
> On 15.11.24 01:11, Elliott Mitchell wrote:
> > On Wed, Nov 13, 2024 at 08:20:02PM +0100, Jürgen Groß wrote:
> > > On 13.11.24 18:25, Elliott Mitchell wrote:
> > > > 
> > > > Hopefully I'm not making knave speculation here.  Might this be the
> > > > simplest of issues, just it was missed due to being too obvious?
> > > 
> > > I don't agree with your analysis, see above.
> > 
> > Okay.  I was asking since it looked a bit odd and there has been no news
> > on this issue (unless I missed some patch flying by).
> > 
> > I don't know how large the impact of this is.  I wouldn't be surprised if
> > this turned out to overwhelm all my other efforts at performance
> > improvement.
> > 
> > Any news on your efforts to track this down?
> 
> ENOTIME up to now.
> 
> Did you try to set the spurious threshold to e.g. 2 instead of the default
> of 1? In case that helps it might be a good idea to either change the default
> or to at least add a boot parameter for setting the default.

Appears it may somewhat, but not fully alleviate the situation.

Just to make sure this is stated.  The spurious events are being
observed on the back-ends of block and network devices.  The
corresponding front-ends aren't recording any spurious events.

I now wonder whether the network back-end I'm attempting to place in a
DomU will observe spurious events.


-- 
(\___(\___(\______          --=> 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 Mon Nov 18 20:34:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 20:34:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839524.1255316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD8SH-0003wL-CC; Mon, 18 Nov 2024 20:34:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839524.1255316; Mon, 18 Nov 2024 20: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 1tD8SH-0003wE-9i; Mon, 18 Nov 2024 20:34:41 +0000
Received: by outflank-mailman (input) for mailman id 839524;
 Mon, 18 Nov 2024 20:34: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=N8iN=SN=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1tD8SF-0003w6-R6
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 20:34:39 +0000
Received: from fforwardh-b3-smtp.messagingengine.com
 (fforwardh-b3-smtp.messagingengine.com [202.12.124.198])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8589f04b-a5ec-11ef-a0c9-8be0dac302b0;
 Mon, 18 Nov 2024 21:34:35 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfforwardh.stl.internal (Postfix) with ESMTP id 823CB17403CE;
 Mon, 18 Nov 2024 15:34:33 -0500 (EST)
Received: from phl-frontend-02 ([10.202.2.161])
 by phl-compute-05.internal (MEProxy); Mon, 18 Nov 2024 15:34:33 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 18 Nov 2024 15:34: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: 8589f04b-a5ec-11ef-a0c9-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTk4IiwiaGVsbyI6ImZmb3J3YXJkaC1iMy1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6Ijg1ODlmMDRiLWE1ZWMtMTFlZi1hMGM5LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTYyMDc1LjQxNDcxNSwic2VuZGVyIjoic2FraWJAZGFya3N0YXIuc2l0ZSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=
	fm3; t=1731962073; x=1732048473; bh=JPxOc4/0PlCvpZ0ob2sJAfYSLeuH
	6RBTXPYFrwsJfpM=; b=VbpsCEmdkJhbnYlTmj6Qr15VDqUPkIEIQSArqtePl5CL
	4NqZwO+x8HbivBPepfmc3oXhAULqt815pwXBPGXupEpUY8rGLI5wsFJFUQ6mxAXs
	/NKqEhK+SPX2soF4jN1Kj8GMODQyZPklm680gf+MvOR2WV+nEb1JGGTVXZAQTLhb
	UpLjtvRH8cuRNY0GW4DAtSYAlPS4Q26KZu2AFp8Q7If19XoRDxpz88N59b8xp6k4
	l4yVc2x/0e/7sYt6XaZWxhzmvK11pRWa39Vvz4Gfhu0VF1+zSMhoMVaG0/w5CXM3
	nDLpuAGXe+W1DOMyz3yI+fbQINLaCuL87qv/+PDAGQ==
X-ME-Sender: <xms:2KQ7Z9IsqZJKSUxwZUUQWxCZKzqqvG1JIahvXEXcg1wkvdrl7zBw0g>
    <xme:2KQ7Z5Ld2iWKFu2SvE25mEuihJIkmfyZAwfirl-oYOSZX40Xq4lK5F2R9Yzmeo9vW
    fJ53rTwtLs-SVk0bmA>
X-ME-Received: <xmr:2KQ7Z1vbOZfgxBPwJrZoN6HmzBxU9Btw1QBd1hxqy6jbbVxYvhKBz2N_pZnG0ihPfBSEnjzX3p1AHFkP7gS2g3lzuLo1swyZwvXyqNavnde7YmM5>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrfedtgddufeeiucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
    htshculddquddttddmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdejnecu
    hfhrohhmpefuvghrghhihicumfhisghrihhkuceoufgvrhhgihihpgfmihgsrhhikhesvg
    hprghmrdgtohhmqeenucggtffrrghtthgvrhhnpeffvdelvdevgfdvjeeuvddvveefvdeu
    geethfdtveeggeegleejveejteegveettdenucffohhmrghinhepkhgvrhhnvghlrdhorh
    hgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgr
    khhisgesuggrrhhkshhtrghrrdhsihhtvgdpnhgspghrtghpthhtohepiedpmhhouggvpe
    hsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtohepshgvrhhgihihpghkihgsrhhikhesvghprg
    hmrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphht
    thhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoh
    eprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:2KQ7Z-aTfcVpHLaRGrgPQj0CYfn7h1b82edFxqE5QQKDJ3ItLSFPPQ>
    <xmx:2KQ7Z0ZhpPHk87YAFj7843wiO-k9CllWif-ktnYfQFJgIN6WosSVKQ>
    <xmx:2KQ7ZyDr0HOxNh6HbCmoPH9dODwOI1Sduc3wIKeJYVMVGFvd-N7QJg>
    <xmx:2KQ7ZyZuUPdrccaXIj1JJLYpRqptkXM5MFlKw0Pk-q7bc2fvpHByaw>
    <xmx:2aQ7Z7VbN7CKHDbRN-6f_ZAWELQSEQbNUIi49Hm551i_Ep-ua_cigGRX3In6>
Feedback-ID: ifd9ba90e:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@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>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH v3 0/2] configurable stdvga & pmtimer emulation
Date: Mon, 18 Nov 2024 22:34:27 +0200
Message-Id: <cover.1731961652.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce build options for stdvga and ACPI PM timer emulation drivers to make
them configurable with possibility to be disabled for finer-tuned setups that
don't need this code.

New config options reside in separate sub-menu, checks of emulation flags are
added so that domain can't be created if it requires devices that had been
disabled.
Minor changes since previous series, details provided in per-patch changelogs.

v2 series here:
https://lore.kernel.org/xen-devel/cover.1730887415.git.Sergiy_Kibrik@epam.com/

  -Sergiy

Sergiy Kibrik (2):
  x86/hvm: introduce config option for ACPI PM timer
  x86/hvm: introduce config option for stdvga emulation

 xen/arch/x86/Kconfig                  | 23 +++++++++++++++++++++++
 xen/arch/x86/domain.c                 | 13 ++++++++++++-
 xen/arch/x86/hvm/Makefile             |  4 ++--
 xen/arch/x86/include/asm/acpi.h       |  5 +++++
 xen/arch/x86/include/asm/domain.h     | 16 ++++++++++++----
 xen/arch/x86/include/asm/hvm/domain.h |  2 ++
 xen/arch/x86/include/asm/hvm/io.h     |  4 ++++
 xen/arch/x86/include/asm/hvm/vpt.h    | 10 ++++++++++
 8 files changed, 70 insertions(+), 7 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 20:36:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 20:36:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839530.1255326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD8UG-0004VU-OH; Mon, 18 Nov 2024 20:36:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839530.1255326; Mon, 18 Nov 2024 20:36: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 1tD8UG-0004VN-Ll; Mon, 18 Nov 2024 20:36:44 +0000
Received: by outflank-mailman (input) for mailman id 839530;
 Mon, 18 Nov 2024 20:36: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=N8iN=SN=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1tD8UE-0004Ug-KX
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 20:36:42 +0000
Received: from fforwardh-b3-smtp.messagingengine.com
 (fforwardh-b3-smtp.messagingengine.com [202.12.124.198])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf592a17-a5ec-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 21:36:38 +0100 (CET)
Received: from phl-compute-07.internal (phl-compute-07.phl.internal
 [10.202.2.47])
 by mailfforwardh.stl.internal (Postfix) with ESMTP id BC3F81740475;
 Mon, 18 Nov 2024 15:36:37 -0500 (EST)
Received: from phl-frontend-01 ([10.202.2.160])
 by phl-compute-07.internal (MEProxy); Mon, 18 Nov 2024 15:36:37 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 18 Nov 2024 15:36: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: cf592a17-a5ec-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTk4IiwiaGVsbyI6ImZmb3J3YXJkaC1iMy1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImNmNTkyYTE3LWE1ZWMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTYyMTk5LjA4NjkyNiwic2VuZGVyIjoic2FraWJAZGFya3N0YXIuc2l0ZSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=fm3; t=1731962197; x=
	1732048597; bh=JjqaStQUlvjl1q7maieYmrj8Zw8zsTy9UsvtpDnshsQ=; b=L
	ISSJuY6Gpsvj+Qh69757/lblRxPaLdTpsaUtfncatz6fkCRt7zqO0E0ekkacUy80
	ohgcjAR8f4oz9ZAnzm7Y5jwk4iPAgwB34GgjtuhwJxSsdHcjYSmx5QyJo538coCu
	jg2vtc5ocsrc4u62t1NxHvZTDattsFLxYDy/OQcGAen3F0dj/w+Mp+fvXJbc01EQ
	DeILJUeFDPmHBMH+BZL0lThz+0te2xgDXdcJmuQkNZ08JVgThkVu/wV+u0YEvM98
	DdnnlSVxlx0L/BFj31PF+VeYyKI0d7tq/ja2r2IEJtnP+XnOWuOUaGHFt7tsyF4p
	OZqtmUhjMPHEFKFLYSzFA==
X-ME-Sender: <xms:VaU7Z4wK-VTu9E5hBsyAAquWlRmZdyll6lKLVNk9dtPZAPCFuKDPOw>
    <xme:VaU7Z8RhiVY4YjPVnAfh68cufgJ6RgzlxCFXU4dECsh82UYswXfa8aXSHxwmQ1UlF
    4Qmsv7UCUbrnUDVnbE>
X-ME-Received: <xmr:VaU7Z6UQZVYMG7n9q_fdr1IWZusBGuFDSvLatYlM5kKPxBsoXs2f0FCkCXrSYWjS1iFXjPxepzB_qH8jrGCs8OLsftmnWmu2e4otZN4mQV_h0RnL>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrfedtgddufeeiucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
    htshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdej
    necuhfhrohhmpefuvghrghhihicumfhisghrihhkuceoufgvrhhgihihpgfmihgsrhhikh
    esvghprghmrdgtohhmqeenucggtffrrghtthgvrhhnpeeigfdvjeduieefveefudegvdel
    gfehjedttdeifffhlefgudetudetheduleevueenucevlhhushhtvghrufhiiigvpedtne
    curfgrrhgrmhepmhgrihhlfhhrohhmpehsrghkihgssegurghrkhhsthgrrhdrshhithgv
    pdhnsggprhgtphhtthhopeeipdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvg
    hnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthho
    pehsvghrghhihigpkhhisghrihhksegvphgrmhdrtghomhdprhgtphhtthhopegrnhgurh
    gvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprhhoghgvrhdr
    phgruhestghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskh
    gvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomh
X-ME-Proxy: <xmx:VaU7Z2jA-0gKKENixmG0DApSAsZX1rwc4vCKdFbSljHZPcFHSAfUGw>
    <xmx:VaU7Z6AgMg4N3cYMm0KTH_5z-93oxBAFv9nfffU2RixLM-mjZJ3lFQ>
    <xmx:VaU7Z3JADmnXelbwKFzbFZLhpqHTo1U77-mpM_253pfIZxa_IG5l7w>
    <xmx:VaU7ZxBurUBQ9bXB4M97N5j54xUG6XR2mNOJW7QaOT0pRYnTP3c28A>
    <xmx:VaU7Z9-u-DpzvvUWV3ThJkuU1l1TDndKI6I3v05V7lmYDbDAEzKaUD6H1IlW>
Feedback-ID: ifff9e3d7:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v3 1/2] x86/hvm: introduce config option for ACPI PM timer
Date: Mon, 18 Nov 2024 22:36:34 +0200
Message-Id: <7cfc1bf7d68dd470a56344fea50f8e1535d10afb.1731961652.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1731961652.git.Sergiy_Kibrik@epam.com>
References: <cover.1731961652.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce config option X86_HVM_PMTIMER and make pmtimer emulation driver
configurable and possible to disable on systems that don't need it.
Option X86_X86_HVM_PMTIMER depends on HVM option, because this driver is part
of HVM support code.

Introduced additional check of domain's emulation flags, to cover the case
when user explicitly states the requirement of emulated devices that are
disabled in the build. HVM always require these devices to be present so domains
of this type can't be created when pmtimer or any other emulated device are
disabled.

Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com> # approach
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v3:
 - changed config option's description
 - fixed bug in emulation_flags_ok()
 - modified build-time checks of X86_EMU_ALL vs XEN_X86_EMU_ALL
 - tags
changes in v2:
 - updated description
 - renamed config option X86_PMTIMER -> X86_HVM_PMTIMER & moved related
   Kconfig changes to this patch
 - define X86_EMU_PM to 0 when !X86_HVM_PMTIMER
 - reverted changes to has_vpm() macro
 - moved emulation_flags_ok() checks to this patch
 - guard struct hvm_hw_acpi acpi attribute of struct domain
---
 xen/arch/x86/Kconfig                  | 13 +++++++++++++
 xen/arch/x86/domain.c                 | 10 +++++++++-
 xen/arch/x86/hvm/Makefile             |  2 +-
 xen/arch/x86/include/asm/acpi.h       |  5 +++++
 xen/arch/x86/include/asm/domain.h     |  8 ++++++--
 xen/arch/x86/include/asm/hvm/domain.h |  2 ++
 xen/arch/x86/include/asm/hvm/vpt.h    | 10 ++++++++++
 7 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 9cdd04721a..d8f108a3ca 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -144,6 +144,19 @@ config INTEL_VMX
 	  If your system includes a processor with Intel VT-x support, say Y.
 	  If in doubt, say Y.
 
+menu "Emulated HVM devices support"
+       visible if EXPERT
+       depends on HVM
+
+config X86_HVM_PMTIMER
+	bool "ACPI PM timer emulation support"
+	default y
+	help
+	  Build driver that emulates ACPI PM timer for HVM guests.
+
+	  If unsure, say Y.
+endmenu
+
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
 	depends on HAS_AS_CET_SS
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 78a13e6812..d867b4f046 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -744,8 +744,16 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
 {
 #ifdef CONFIG_HVM
     /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
-    BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
+    BUILD_BUG_ON((X86_EMU_ALL & ~X86_EMU_PM) !=
+                 (XEN_X86_EMU_ALL & ~XEN_X86_EMU_PM));
 #endif
+#ifdef CONFIG_X86_HVM_PMTIMER
+       BUILD_BUG_ON(X86_EMU_PM != XEN_X86_EMU_PM);
+#endif
+
+    /* emflags contain non-supported bits */
+    if ( (emflags & X86_EMU_ALL) != emflags )
+        return false;
 
     if ( is_hvm_domain(d) )
     {
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 4c1fa5c6c2..3af8963218 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -18,7 +18,7 @@ obj-y += irq.o
 obj-y += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
-obj-y += pmtimer.o
+obj-$(CONFIG_X86_HVM_PMTIMER) += pmtimer.o
 obj-y += quirks.o
 obj-y += rtc.o
 obj-y += save.o
diff --git a/xen/arch/x86/include/asm/acpi.h b/xen/arch/x86/include/asm/acpi.h
index 217819dd61..eb2e4a1ede 100644
--- a/xen/arch/x86/include/asm/acpi.h
+++ b/xen/arch/x86/include/asm/acpi.h
@@ -150,8 +150,13 @@ void acpi_mmcfg_init(void);
 /* Incremented whenever we transition through S3. Value is 1 during boot. */
 extern uint32_t system_reset_counter;
 
+#ifdef CONFIG_X86_HVM_PMTIMER
 void hvm_acpi_power_button(struct domain *d);
 void hvm_acpi_sleep_button(struct domain *d);
+#else
+static inline void hvm_acpi_power_button(struct domain *d) {}
+static inline void hvm_acpi_sleep_button(struct domain *d) {}
+#endif
 
 /* suspend/resume */
 void save_rest_processor_state(void);
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index b79d6badd7..8550473997 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -463,7 +463,6 @@ struct arch_domain
 #ifdef CONFIG_HVM
 #define X86_EMU_LAPIC    XEN_X86_EMU_LAPIC
 #define X86_EMU_HPET     XEN_X86_EMU_HPET
-#define X86_EMU_PM       XEN_X86_EMU_PM
 #define X86_EMU_RTC      XEN_X86_EMU_RTC
 #define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
 #define X86_EMU_PIC      XEN_X86_EMU_PIC
@@ -474,7 +473,6 @@ struct arch_domain
 #else
 #define X86_EMU_LAPIC    0
 #define X86_EMU_HPET     0
-#define X86_EMU_PM       0
 #define X86_EMU_RTC      0
 #define X86_EMU_IOAPIC   0
 #define X86_EMU_PIC      0
@@ -484,6 +482,12 @@ struct arch_domain
 #define X86_EMU_VPCI     0
 #endif
 
+#ifdef CONFIG_X86_HVM_PMTIMER
+#define X86_EMU_PM       XEN_X86_EMU_PM
+#else
+#define X86_EMU_PM       0
+#endif
+
 #define X86_EMU_PIT     XEN_X86_EMU_PIT
 
 /* This must match XEN_X86_EMU_ALL in xen.h */
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/asm/hvm/domain.h
index 333501d5f2..a4fddf7754 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -80,8 +80,10 @@ struct hvm_domain {
      * in public header files.
      * Internally, however, we will be using hvm_hw_acpi.
      */
+#ifdef CONFIG_X86_HVM_PMTIMER
 #define hvm_hw_acpi hvm_hw_pmtimer
     struct hvm_hw_acpi     acpi;
+#endif
 
     /* VCPU which is current target for 8259 interrupts. */
     struct vcpu           *i8259_target;
diff --git a/xen/arch/x86/include/asm/hvm/vpt.h b/xen/arch/x86/include/asm/hvm/vpt.h
index 0b92b28625..f24ef08925 100644
--- a/xen/arch/x86/include/asm/hvm/vpt.h
+++ b/xen/arch/x86/include/asm/hvm/vpt.h
@@ -187,10 +187,20 @@ void rtc_deinit(struct domain *d);
 void rtc_reset(struct domain *d);
 void rtc_update_clock(struct domain *d);
 
+#ifdef CONFIG_X86_HVM_PMTIMER
 void pmtimer_init(struct vcpu *v);
 void pmtimer_deinit(struct domain *d);
 void pmtimer_reset(struct domain *d);
 int pmtimer_change_ioport(struct domain *d, uint64_t version);
+#else
+static inline void pmtimer_init(struct vcpu *v) {}
+static inline void pmtimer_deinit(struct domain *d) {}
+static inline void pmtimer_reset(struct domain *d) {}
+static inline int pmtimer_change_ioport(struct domain *d, uint64_t version)
+{
+    return -ENODEV;
+}
+#endif
 
 void hpet_init(struct domain *d);
 void hpet_deinit(struct domain *d);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 20:38:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 20:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839540.1255337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD8WF-000575-7d; Mon, 18 Nov 2024 20:38:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839540.1255337; Mon, 18 Nov 2024 20:38: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 1tD8WF-00056y-4l; Mon, 18 Nov 2024 20:38:47 +0000
Received: by outflank-mailman (input) for mailman id 839540;
 Mon, 18 Nov 2024 20:38: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=N8iN=SN=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1tD8WE-00056o-7o
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 20:38:46 +0000
Received: from fforwardh-b3-smtp.messagingengine.com
 (fforwardh-b3-smtp.messagingengine.com [202.12.124.198])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 190bf74c-a5ed-11ef-99a3-01e77a169b0f;
 Mon, 18 Nov 2024 21:38:42 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfforwardh.stl.internal (Postfix) with ESMTP id 6621D17404B0;
 Mon, 18 Nov 2024 15:38:41 -0500 (EST)
Received: from phl-frontend-01 ([10.202.2.160])
 by phl-compute-02.internal (MEProxy); Mon, 18 Nov 2024 15:38:41 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 18 Nov 2024 15:38:40 -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: 190bf74c-a5ed-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTk4IiwiaGVsbyI6ImZmb3J3YXJkaC1iMy1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjE5MGJmNzRjLWE1ZWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTYyMzIyLjYzNjI4Miwic2VuZGVyIjoic2FraWJAZGFya3N0YXIuc2l0ZSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=fm3; t=1731962321; x=
	1732048721; bh=fTfrGVdXy8YPyPc4er3hijs5yP5z3AbAi5qMVvZHAW8=; b=D
	+6P/ylE1tsXE+hIHP/C5MIbv7ERw6UWnhqBBrm4hvoyxxl61BS6cbCuoJE9ynRBa
	INlvcXnP6xPOIaG2xVPQEGNuhCXClGJ0Cx40tNV2C/u72wamkrk+mSwcZyCADIFE
	3Gzl3hfyuajZrAPVQjlSG3uNoTXdMU5TonAnCXn7EOqHZcQ3FsqUb/PsH+cIYiEp
	rXG2X8jD27MZCLeVvJ5jK9JS6UHmO636BzFh/FakXnnbOyNnAjARcgUn0R4h8GOs
	WWcnVmCCQqIkf8a2eV1dN4CQ5Dz3KVSur6xVYznQMRWEc8jYtkcJNVLkNnCrti9H
	lL8XIdN80lWrlmfU20nIA==
X-ME-Sender: <xms:0aU7Z5VpMDhOk7f0tqea4AdidJo6JfEN03fM9PfeIPejsNhtnkhdxQ>
    <xme:0aU7Z5nuyj4XyCGK55s69aB72HvoqFfnfBE76TYxk4U_N-ifJ0Y5CPV5Bpckyp8D1
    3lKjniNnbZ7wsWASXs>
X-ME-Received: <xmr:0aU7Z1ZlMam3wj6CCYGioQC5JXat9u94FUrf9CheU2YBM41QvtcW5D0vezna0gsmRBRhlctydou6TP1Qk157ue6JxF8suIrJuOpXfb-R4xq3bCVu>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrfedtgddufeejucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
    rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
    htshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdej
    necuhfhrohhmpefuvghrghhihicumfhisghrihhkuceoufgvrhhgihihpgfmihgsrhhikh
    esvghprghmrdgtohhmqeenucggtffrrghtthgvrhhnpeeigfdvjeduieefveefudegvdel
    gfehjedttdeifffhlefgudetudetheduleevueenucevlhhushhtvghrufhiiigvpedtne
    curfgrrhgrmhepmhgrihhlfhhrohhmpehsrghkihgssegurghrkhhsthgrrhdrshhithgv
    pdhnsggprhgtphhtthhopeeipdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvg
    hnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthho
    pehsvghrghhihigpkhhisghrihhksegvphgrmhdrtghomhdprhgtphhtthhopegrnhgurh
    gvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprhhoghgvrhdr
    phgruhestghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskh
    gvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomh
X-ME-Proxy: <xmx:0aU7Z8XVPq8d4_GD8raacTMUIbq_-8vgXbXiZVa2OLOW2fRNbv3vXQ>
    <xmx:0aU7ZznHrzUCgBUTpaWyo2UZQWh4FVLUrKOhgvNSsLfItlTA3s-dQg>
    <xmx:0aU7Z5elR2AYpZ535ZBnkWAgOaoFLNAP3XA5RuzUl1Ox31FAGGOYAQ>
    <xmx:0aU7Z9G8GGnKcWaQKXt2uGachAfJf8pfgcWKaGLScIVDOw320LHqqQ>
    <xmx:0aU7Z8C0nFeMfTZPNAMe26q4qpo-hNyUTqR7dNjfDX5po_TytXWIpMHuO6tX>
Feedback-ID: id7975e81:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v3 2/2] x86/hvm: introduce config option for stdvga emulation
Date: Mon, 18 Nov 2024 22:38:38 +0200
Message-Id: <b4163fe8957506d38294ba511c063c706cc1ac85.1731961652.git.Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <cover.1731961652.git.Sergiy_Kibrik@epam.com>
References: <cover.1731961652.git.Sergiy_Kibrik@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce config option X86_HVM_STDVGA and make stdvga emulation driver
configurable so it can be disabled on systems that don't need it.

Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com> # approach
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
CC: Jan Beulich <jbeulich@suse.com>
---
changes in v3:
 - changed config option's description
 - add build-time checks of X86_EMU_VGA vs XEN_X86_EMU_VGA
 - tags
changes in v2:
 - updated description
 - renamed config option X86_STDVGA -> X86_HVM_STDVGA & moved related
   Kconfig changes to this patch
 - reverted changes to has_vvga() macro
 - moved emulation_flags_ok() checks to this patch
---
 xen/arch/x86/Kconfig              | 10 ++++++++++
 xen/arch/x86/domain.c             |  7 +++++--
 xen/arch/x86/hvm/Makefile         |  2 +-
 xen/arch/x86/include/asm/domain.h |  8 ++++++--
 xen/arch/x86/include/asm/hvm/io.h |  4 ++++
 5 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index d8f108a3ca..e2ba257fb3 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -155,6 +155,16 @@ config X86_HVM_PMTIMER
 	  Build driver that emulates ACPI PM timer for HVM guests.
 
 	  If unsure, say Y.
+
+config X86_HVM_STDVGA
+	bool "Standard VGA card emulation support"
+	default y
+	help
+	  Build driver that emulates standard VGA card with VESA BIOS
+	  Extensions for HVM guests.
+
+	  If unsure, say Y.
+
 endmenu
 
 config XEN_SHSTK
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index d867b4f046..e01759e2e5 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -744,12 +744,15 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
 {
 #ifdef CONFIG_HVM
     /* This doesn't catch !CONFIG_HVM case but it is better than nothing */
-    BUILD_BUG_ON((X86_EMU_ALL & ~X86_EMU_PM) !=
-                 (XEN_X86_EMU_ALL & ~XEN_X86_EMU_PM));
+    BUILD_BUG_ON((X86_EMU_ALL & ~(X86_EMU_PM | X86_EMU_VGA)) !=
+                 (XEN_X86_EMU_ALL & ~(XEN_X86_EMU_PM | XEN_X86_EMU_VGA)));
 #endif
 #ifdef CONFIG_X86_HVM_PMTIMER
        BUILD_BUG_ON(X86_EMU_PM != XEN_X86_EMU_PM);
 #endif
+#ifdef CONFIG_X86_HVM_STDVGA
+       BUILD_BUG_ON(X86_EMU_VGA != XEN_X86_EMU_VGA);
+#endif
 
     /* emflags contain non-supported bits */
     if ( (emflags & X86_EMU_ALL) != emflags )
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 3af8963218..80ec425aa8 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -22,7 +22,7 @@ obj-$(CONFIG_X86_HVM_PMTIMER) += pmtimer.o
 obj-y += quirks.o
 obj-y += rtc.o
 obj-y += save.o
-obj-y += stdvga.o
+obj-$(CONFIG_X86_HVM_STDVGA) += stdvga.o
 obj-y += vioapic.o
 obj-y += vlapic.o
 obj-y += vm_event.o
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 8550473997..106b438779 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -466,7 +466,6 @@ struct arch_domain
 #define X86_EMU_RTC      XEN_X86_EMU_RTC
 #define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
 #define X86_EMU_PIC      XEN_X86_EMU_PIC
-#define X86_EMU_VGA      XEN_X86_EMU_VGA
 #define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
 #define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
 #define X86_EMU_VPCI     XEN_X86_EMU_VPCI
@@ -476,7 +475,6 @@ struct arch_domain
 #define X86_EMU_RTC      0
 #define X86_EMU_IOAPIC   0
 #define X86_EMU_PIC      0
-#define X86_EMU_VGA      0
 #define X86_EMU_IOMMU    0
 #define X86_EMU_USE_PIRQ 0
 #define X86_EMU_VPCI     0
@@ -488,6 +486,12 @@ struct arch_domain
 #define X86_EMU_PM       0
 #endif
 
+#ifdef CONFIG_X86_HVM_STDVGA
+#define X86_EMU_VGA      XEN_X86_EMU_VGA
+#else
+#define X86_EMU_VGA      0
+#endif
+
 #define X86_EMU_PIT     XEN_X86_EMU_PIT
 
 /* This must match XEN_X86_EMU_ALL in xen.h */
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index f2b8431fac..c02fad876c 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -108,7 +108,11 @@ struct vpci_arch_msix_entry {
     int pirq;
 };
 
+#ifdef CONFIG_X86_HVM_STDVGA
 void stdvga_init(struct domain *d);
+#else
+static inline void stdvga_init(struct domain *d) {}
+#endif
 
 extern void hvm_dpci_msi_eoi(struct domain *d, int vector);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 21:41:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 21:41:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839561.1255347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tD9V7-00058J-GP; Mon, 18 Nov 2024 21:41:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839561.1255347; Mon, 18 Nov 2024 21: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 1tD9V7-000589-DX; Mon, 18 Nov 2024 21:41:41 +0000
Received: by outflank-mailman (input) for mailman id 839561;
 Mon, 18 Nov 2024 21: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=JUlN=SN=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tD9V6-000583-JV
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 21:41:40 +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 e30449b2-a5f5-11ef-a0c9-8be0dac302b0;
 Mon, 18 Nov 2024 22:41:36 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43152b79d25so29944815e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 13:41:36 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-432da265ca8sm172725655e9.14.2024.11.18.13.41.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 13:41: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: e30449b2-a5f5-11ef-a0c9-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzYiLCJoZWxvIjoibWFpbC13bTEteDMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUzMDQ0OWIyLWE1ZjUtMTFlZi1hMGM5LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTY2MDk2Ljc5OTI5NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1731966095; x=1732570895; 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=nONolnJzn0IQ4ZuzliJB/6msxh9WiWjFljy9G8rVIsQ=;
        b=aSoj9N9y6HADlW3sAcY/4N+U4H0sbDQWQwJwnbRnsUzyrSy0jJCeufhZMkJ3EVPnTg
         C8GzMkRmYI4793N2LRp/v4SHRW8+o30v22qR/AkZ/arubJZLk1z3bFhzmWt2xDUXKnmX
         H4/EFJU+URNllnCYOV47oiFpCmcWyCyTFiYAw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731966095; x=1732570895;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=nONolnJzn0IQ4ZuzliJB/6msxh9WiWjFljy9G8rVIsQ=;
        b=HC85UlF7lj8Hn0Ae081A8YL5+TSYvEYHOmq0MmpKUkl8iCZrscI7S9VgOu5ZbtlOk8
         TyyrNTSFilx7w7+DH+y7hu9lSD0rDXU4brh9WfgDAf0EUxM6e3NkIfs+Ido3vuHCuutQ
         g5hYC6r1MCzerRVQe9xF8qBBYYXKYZWGRPWXw8IJ1JN4cal7b4kQ6qRnwb/Wg8v6laVs
         svLBIXvhB1DktHGjgDaOZxLk3Bny+FmJBdDpwA6nNbrKcCB+igS4eVhN4XRhQMadQx+6
         SsaEQXNuZzEg9mh6xyyK9xG8HS6Vt3KaygL2kmnGwq04OIrwagOHxjVqxdF8yPnU6GWG
         55dQ==
X-Gm-Message-State: AOJu0YxlR0wqDzcFBed04XPmIhk2+B8vzEjRidG2T1GPPJDAuEFF7eH6
	lBfzGz12NmZhFUUBIDPxYAbIRpsG39asAmS8XHvp0LDJvkGfVuCluX6EXGW7VrHeij0SCOFKMoc
	f
X-Google-Smtp-Source: AGHT+IEPpazDcTqaQbiZnVjGWG3kHMYDsAtxLhGzXRvIAMZ8Rnr6wJ8JsplG7vBCt8gJuxFJ5oL67Q==
X-Received: by 2002:a05:600c:4f10:b0:431:5194:1687 with SMTP id 5b1f17b1804b1-432df74da89mr114405635e9.18.1731966095293;
        Mon, 18 Nov 2024 13:41:35 -0800 (PST)
Message-ID: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@citrix.com>
Date: Mon, 18 Nov 2024 21:41:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: 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>, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting@bugseng.com" <consulting@bugseng.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: x86: Declarations for compat_set_{cx,px}_pminfo()
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Eclair reports Rule 8.4 violations for these two.Â  They're real
violations, but fixing them is proving challenging.

Because of how x86_64/platform_hypercall.c sets up some defines and
includes ../platform_hypercall.c, the declarations of
compat_set_{cx,px}_pminfo() of pmstat.h become compat ones.

Therefore the real hypercall handler does see a correct declaration.

However, the implementation in cpufreq.c does not get the compat-ified
version of pmstat.h, so misses the declaration and thus the violation.

Worse however is the fact that cpufreq.c depends on not having the:

#define xen_processor_performance compat_processor_performance

in scope while it's transforming between the two formats, meaning we
can't simply reuse pmstat.h with suitable defines.

Any clever ideas for how to untangle this mess, before I go for the
brute force approach of an #if COMPAT section in the main hypercall handler?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 23:14:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 23:14:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839573.1255357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDAwQ-0000WC-S8; Mon, 18 Nov 2024 23:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839573.1255357; Mon, 18 Nov 2024 23:13: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 1tDAwQ-0000W5-OE; Mon, 18 Nov 2024 23:13:58 +0000
Received: by outflank-mailman (input) for mailman id 839573;
 Mon, 18 Nov 2024 23:13: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=xYpB=SN=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1tDAwP-0000Vz-7C
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 23:13:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c69519cf-a602-11ef-a0c9-8be0dac302b0;
 Tue, 19 Nov 2024 00:13:52 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 404F84EE0738;
 Tue, 19 Nov 2024 00:13:51 +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: c69519cf-a602-11ef-a0c9-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImM2OTUxOWNmLWE2MDItMTFlZi1hMGM5LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTcxNjMyLjc5NzYzOCwic2VuZGVyIjoibmljb2xhLnZldHJpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1731971631; bh=+F7s87v33H2LR0i1+YHtvZK0uOM16Q3m0PPF3Ql1UKI=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=qGvJsvTdTer7wCDAeiNpt08qGssM7VNLFXVitmw9YwnlLD4HXwYY/uTkTl1S+0bVA
	 OAdrUjFX4RZC6Kmjy9bZ9wlbdYgd48U9xE6gEL6N9HpeHBU+C4cdhGzQtogQniDvj3
	 Zlg4GwFwnQIJre7e11wPdWckSEVPBUckxvl+8XBOKddYNy5K1OU9mK9R3WLySRQ4iU
	 TO9jWisQr6SeTIgvPARQqXJqagnSfsVLKZPD2aUMFxZMz+3xyp8XAeUGHbQQpc5sSS
	 gCxvAP9wpWKe23X2UQuYGssH74tDOprjkVE0G+eU84yJMk+hvK/uuTC4koXiCWfnGw
	 oej08DbozxMGw==
MIME-Version: 1.0
Date: Tue, 19 Nov 2024 00:13:51 +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
Subject: Re: x86: Declarations for compat_set_{cx,px}_pminfo()
In-Reply-To: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@citrix.com>
References: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@citrix.com>
Message-ID: <7bb9fda3ea29f68cf8008cc32ec23874@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: multipart/mixed;
 boundary="=_2403ab8a83886ccb0c48a9f1bbf93eca"

--=_2403ab8a83886ccb0c48a9f1bbf93eca
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8;
 format=flowed

On 2024-11-18 22:41, Andrew Cooper wrote:
> Hello,
> 
> Eclair reports Rule 8.4 violations for these two.Â  They're real
> violations, but fixing them is proving challenging.
> 
> Because of how x86_64/platform_hypercall.c sets up some defines and
> includes ../platform_hypercall.c, the declarations of
> compat_set_{cx,px}_pminfo() of pmstat.h become compat ones.
> 
> Therefore the real hypercall handler does see a correct declaration.
> 
> However, the implementation in cpufreq.c does not get the compat-ified
> version of pmstat.h, so misses the declaration and thus the violation.
> 
> Worse however is the fact that cpufreq.c depends on not having the:
> 
> #define xen_processor_performance compat_processor_performance
> 
> in scope while it's transforming between the two formats, meaning we
> can't simply reuse pmstat.h with suitable defines.
> 
> Any clever ideas for how to untangle this mess, before I go for the
> brute force approach of an #if COMPAT section in the main hypercall 
> handler?
> 

Yeah, that is why these were among the last ones. I'm afraid I didn't 
come up with a reasonable to deal with this either.

You can find attached a tentative patch I made (not build tested, and 
also based on an older tree). A last resort may be to special-case those 
declarations, but that's undesirable.

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)
--=_2403ab8a83886ccb0c48a9f1bbf93eca
Content-Transfer-Encoding: base64
Content-Type: text/x-diff;
 name=R8.4.patch
Content-Disposition: attachment;
 filename=R8.4.patch;
 size=1449

Y29tbWl0IGNhZmZhODlhMDYyNzViNmI1MGFjZTk5MTcwYjk5YjUwMGI3YjMyZjcKQXV0aG9yOiBO
aWNvbGEgVmV0cmluaSA8bmljb2xhLnZldHJpbmlAYnVnc2VuZy5jb20+CkRhdGU6ICAgV2VkIE5v
diAyOSAxMjoyMzoyNSAyMDIzICswMTAwCgogICAgeDg2XzY0L3BsYXRmb3JtX2h5cGVyY2FsbDog
cHJvdmlkZSBwcm9wZXIgZGVjbGFyYXRpb25zIGZvciBjb21wYXRfKgogICAgCiAgICBTaWduZWQt
b2ZmLWJ5OiBOaWNvbGEgVmV0cmluaSA8bmljb2xhLnZldHJpbmlAYnVnc2VuZy5jb20+CgpkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9wbGF0Zm9ybV9oeXBlcmNhbGwuYyBiL3hlbi9h
cmNoL3g4Ni94ODZfNjQvcGxhdGZvcm1faHlwZXJjYWxsLmMKaW5kZXggMzQ3ZjVkNjUzMzBlLi4z
YWQxNTc0MmQ5ZWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvcGxhdGZvcm1faHlw
ZXJjYWxsLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9wbGF0Zm9ybV9oeXBlcmNhbGwuYwpA
QCAtNSw2ICs1LDcgQEAKIEVNSVRfRklMRTsKIAogI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNs
dWRlIDx4ZW4vcG1zdGF0Lmg+CiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgogCiAjZGVmaW5l
IHhlbl9wbGF0Zm9ybV9vcCAgICAgY29tcGF0X3BsYXRmb3JtX29wCkBAIC0xNCwxMSArMTUsMTMg
QEAgRU1JVF9GSUxFOwogI2RlZmluZSBlZmlfZ2V0X2luZm8gICAgICAgIGVmaV9jb21wYXRfZ2V0
X2luZm8KICNkZWZpbmUgZWZpX3J1bnRpbWVfY2FsbCh4KSBlZmlfY29tcGF0X3J1bnRpbWVfY2Fs
bCh4KQogCi0jZGVmaW5lIHhlbl9wcm9jZXNzb3JfcGVyZm9ybWFuY2UgY29tcGF0X3Byb2Nlc3Nv
cl9wZXJmb3JtYW5jZQotI2RlZmluZSBzZXRfcHhfcG1pbmZvICAgICAgIGNvbXBhdF9zZXRfcHhf
cG1pbmZvCisjZGVmaW5lIHhlbl9wcm9jZXNzb3JfcGVyZm9ybWFuY2UgY29tcGF0X3hlbl9wcm9j
ZXNzb3JfcGVyZm9ybWFuY2UKK2ludCBjb21wYXRfc2V0X3B4X3BtaW5mbyh1aW50MzJfdCBhY3Bp
X2lkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY29tcGF0X3hlbl9wcm9jZXNz
b3JfcGVyZm9ybWFuY2UgKnBlcmYpOwogCi0jZGVmaW5lIHhlbl9wcm9jZXNzb3JfcG93ZXIgY29t
cGF0X3Byb2Nlc3Nvcl9wb3dlcgotI2RlZmluZSBzZXRfY3hfcG1pbmZvICAgICAgIGNvbXBhdF9z
ZXRfY3hfcG1pbmZvCisjZGVmaW5lIHhlbl9wcm9jZXNzb3JfcG93ZXIgICAgICAgY29tcGF0X3hl
bl9wcm9jZXNzb3JfcG93ZXIKK2xvbmcgY29tcGF0X3NldF9jeF9wbWluZm8odWludDMyX3QgYWNw
aV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvbXBhdF94ZW5fcHJvY2Vz
c29yX3Bvd2VyICpwb3dlcik7CiAKICNkZWZpbmUgeGVuX3BmX3BjcHVpbmZvIHhlbnBmX3BjcHVp
bmZvCiBDSEVDS19wZl9wY3B1aW5mbzsK
--=_2403ab8a83886ccb0c48a9f1bbf93eca--


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 23:50:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 23:50:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839583.1255366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDBW8-0000Iw-GD; Mon, 18 Nov 2024 23:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839583.1255366; Mon, 18 Nov 2024 23: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 1tDBW8-0000Ip-DP; Mon, 18 Nov 2024 23:50:52 +0000
Received: by outflank-mailman (input) for mailman id 839583;
 Mon, 18 Nov 2024 23: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=M5+n=SN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDBW7-0000Fs-9q
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 23:50:51 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eec0d5a9-a607-11ef-a0c9-8be0dac302b0;
 Tue, 19 Nov 2024 00:50:48 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id DE3F0A41FD1;
 Mon, 18 Nov 2024 23:48:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 65A91C4CED0;
 Mon, 18 Nov 2024 23: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: eec0d5a9-a607-11ef-a0c9-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImVlYzBkNWE5LWE2MDctMTFlZi1hMGM5LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTczODQ4LjE3NTY1Nywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731973846;
	bh=M5WJtvl+fX4m4GDCSq7+VoeY9IZRLpNFjo1wiW7oCck=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cVn68sDR7ObPo15zoZJjdpJPL+zQ1l3acD+/ZTh5gA7rShaEo4Z6DMvaBx5jXNh+E
	 HPtD6VHkBtr92VkLaX4uMlXkF974s9rII6MGIpui+QMA/SM9/SW7ebj707P/k1lEWE
	 oAw02h8HwmzsS8jTpAy+LzvXsuqcMGVSYZIXyeBEWWIKHN8GPFY1jI1UvDK8QdRc2T
	 VBUQ712eWHlA/Vn9kcVXjnqkeACc133DsSXJR/ltXWM0cEz5N7XBz5bcY4k/NIMZTu
	 fzD0ypO6ApapwEMN+xRwiYBlPcsGmxs1846W6kbFYPS2JYK5kCGNtyY3xlbkrtB/Xx
	 I6AllIacgQsyA==
Date: Mon, 18 Nov 2024 15:50:42 -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: Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    alessandro.zucchelli@bugseng.com, simone.ballarin@bugseng.com, 
    consulting@bugseng.com, andrew.cooper3@citrix.com, julien@xen.org, 
    roger.pau@citrix.com, bertrand.marquis@arm.com, michal.orzel@amd.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: increase identifiers length to 64
In-Reply-To: <eeaec89c4d4aa8abd738d8af7d068a19@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2411181550020.1160299@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2411151617580.1160299@ubuntu-linux-20-04-desktop> <782b24a0-a960-4667-a183-1e270841d2a8@suse.com> <eeaec89c4d4aa8abd738d8af7d068a19@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 18 Nov 2024, Nicola Vetrini wrote:
> On 2024-11-18 09:58, Jan Beulich wrote:
> > On 16.11.2024 01:23, Stefano Stabellini wrote:
> > > Currently the identifiers characters limit is arbitrarily set to 40. It
> > > causes a few violations as we have some identifiers longer than 40.
> > > 
> > > Increase the limit to another rather arbitrary limit of 64. Thanks to
> > > this change, we remove a few violations, getting us one step closer to
> > > marking Rules 5.2 and 5.4 as clean.
> > > 
> > > Also update the ECLAIR config that was actually set to 63 as character
> > > limit.
> > 
> > What I don't really understand: With the Eclair config already having said
> > 63, how come we did see patches aiming at dealing with the limit being just
> > 40? IOW - how would those (supposed) issue even have been spotted.
> > 
> 
> Hi Jan,
> 
> the issue was spotted by Andrew, and therefore we made the patches to align
> the configuration with the limits chosen by the project, which makes those
> violations appear. It is also possibile to do it the other way around (align
> the rst with the ECLAIR configuration), which spares the need for additional
> deviations.
> 
> In that case, I agree that 63 is better than 64.

Actually, I was wondering the same question as Jan when writing this
patch. Thanks Jan for asking explicitly and thanks Nicola for
clarifying. I'll resend using 63.


From xen-devel-bounces@lists.xenproject.org Mon Nov 18 23:54:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 23:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839592.1255377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDBZW-0000uF-Sv; Mon, 18 Nov 2024 23:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839592.1255377; Mon, 18 Nov 2024 23:54: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 1tDBZW-0000u8-PO; Mon, 18 Nov 2024 23:54:22 +0000
Received: by outflank-mailman (input) for mailman id 839592;
 Mon, 18 Nov 2024 23:54: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=M5+n=SN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDBZV-0000u2-7F
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 23:54:21 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b61241e-a608-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 00:54:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 7C9C8A41FDB;
 Mon, 18 Nov 2024 23:52:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69D94C4CECC;
 Mon, 18 Nov 2024 23: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: 6b61241e-a608-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjZiNjEyNDFlLWE2MDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTc0MDU3LjA1OTMxNSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731974055;
	bh=KQ3L1eWdcdQePO4aaRNycCadqyTE11THxVsYbSj5ZS8=;
	h=Date:From:To:cc:Subject:From;
	b=s3/j4hlT9sEHRfZYWNxHCrfMEPeOF0A0Yzq0oCU9RMSDfYw5XtyIlec6juECx1bhr
	 zP1Ul7RzSMqmcU10ho7fZ96r664ElBiKqHC6Rn7c69bVm8myIgEA+RzfyUtlMNPmun
	 izizURfKfrBpiNeRkp5D3mdPeBwFUxHqJS1aYTuyCw9jYRQoriFfD/rAqzUfdBxSl0
	 LrwvBrSERki7yrZBaFN6CyvGqQhEOAqoaFNLHMP7XcUrEeSSP+1+nW0VAGxWh6av8y
	 2WjkkBth8EOzRnDOIPZCNXcMVHZfgq65UM4ctVdYHJmq7HlTPEHcsB26OUF68ygINM
	 70bBhH5wkbSOg==
Date: Mon, 18 Nov 2024 15:54:12 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: sstabellini@kernel.org, alessandro.zucchelli@bugseng.com, 
    simone.ballarin@bugseng.com, consulting@bugseng.com, jbeulich@suse.com, 
    andrew.cooper3@citrix.com, julien@xen.org, roger.pau@citrix.com, 
    bertrand.marquis@arm.com, michal.orzel@amd.com
Subject: [PATCH v2] misra: increase identifiers length to 63
Message-ID: <alpine.DEB.2.22.394.2411181552510.1160299@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

Currently the identifiers characters limit is arbitrarily set to 40. It
causes a few violations as we have some identifiers longer than 40.

Increase the limit to another rather arbitrary limit of 63. Thanks to
this change, we remove a few violations, getting us one step closer to
marking Rules 5.2 and 5.4 as clean.

The ECLAIR configuration is already using 63, so this change matches
the rules.rst documentation with the ECLAIR behavior.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- use 63 instead of 64
- drop unneeded change to ECLAIR config

 docs/misra/rules.rst | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 4a144da8d6..3ed5801bff 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -154,7 +154,7 @@ maintainers if you want to suggest a change.
    * - `Rule 5.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_01_2.c>`_
      - Required
      - External identifiers shall be distinct
-     - The Xen characters limit for identifiers is 40. Public headers
+     - The Xen characters limit for identifiers is 63. Public headers
        (xen/include/public/) are allowed to retain longer identifiers
        for backward compatibility.
 
@@ -162,7 +162,7 @@ maintainers if you want to suggest a change.
      - Required
      - Identifiers declared in the same scope and name space shall be
        distinct
-     - The Xen characters limit for identifiers is 40. Public headers
+     - The Xen characters limit for identifiers is 63. Public headers
        (xen/include/public/) are allowed to retain longer identifiers
        for backward compatibility.
 
@@ -177,7 +177,7 @@ maintainers if you want to suggest a change.
    * - `Rule 5.4 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_04.c>`_
      - Required
      - Macro identifiers shall be distinct
-     - The Xen characters limit for macro identifiers is 40. Public
+     - The Xen characters limit for macro identifiers is 63. Public
        headers (xen/include/public/) are allowed to retain longer
        identifiers for backward compatibility.
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 18 23:58:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Nov 2024 23:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839602.1255387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDBdn-0001Z3-Gs; Mon, 18 Nov 2024 23:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839602.1255387; Mon, 18 Nov 2024 23:58: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 1tDBdn-0001Yw-Dc; Mon, 18 Nov 2024 23:58:47 +0000
Received: by outflank-mailman (input) for mailman id 839602;
 Mon, 18 Nov 2024 23:58: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=M5+n=SN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDBdm-0001Yq-Vw
 for xen-devel@lists.xenproject.org; Mon, 18 Nov 2024 23:58:46 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a119c05-a609-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 00:58:43 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 845CCA41FD2;
 Mon, 18 Nov 2024 23:56:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 063DFC4CECC;
 Mon, 18 Nov 2024 23:58:40 +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: 0a119c05-a609-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjBhMTE5YzA1LWE2MDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTc0MzIzLjM3MTczLCJzZW5kZXIiOiJzc3RhYmVsbGluaUBrZXJuZWwub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731974321;
	bh=PX0mpXdKKXHMdRljYUGqUi7dOJMFVoT5EBQ6rBGbwQ4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=I6WBOvLzQHy/DvnDof4nlfvwx/4VCay9cs4l4+S2W1HTo7M53uPnoTA4y0urC7J9K
	 LH6zqTujAH+RHqEogvVrzAT2AjRByOGx740ImI29fRO1h1Z3SCdpwwYWTM1BBvw8bq
	 +AeE7N36WH6awl65kptREodbhawIR8jN0FZ40IMFIBMt340l2cF9RwhiJqb1I+OFaT
	 Ij6bdUN+AN3Z1871p3VO5T8ZGuDIaIybUGJVpLIVpQpB+6zeo3eb3NS8gW0ylLP5kF
	 QsPgY6c7jhwumv2KoJCrzc0Wb7/xTbttbMVtiIqsFk/p/XoF7p4XITaQbeb5JpMs0j
	 xB4KF05Vp1zsw==
Date: Mon, 18 Nov 2024 15:58:39 -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>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH] xen/bootinfo: Include declaration for
 fw_unreserved_regions()
In-Reply-To: <20241118105145.2329902-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411181557520.1160299@ubuntu-linux-20-04-desktop>
References: <20241118105145.2329902-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 Mon, 18 Nov 2024, Andrew Cooper wrote:
> Eclair complains that fw_unreserved_regions() can't see it's declaration.
> Include <asm/setup.h> to address this.
> 
> This makes Mira Rule 8.4 clean on ARM, so tag it as such.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Very nice! Thank you!

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> 
> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1547057124
> ---
>  automation/eclair_analysis/ECLAIR/tagging.ecl | 2 +-
>  xen/common/device-tree/bootinfo.c             | 2 ++
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index 9318e5b10ca8..7944ce2ee3b2 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -115,7 +115,7 @@ if(string_equal(target,"x86_64"),
>  )
>  
>  if(string_equal(target,"arm64"),
> -    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
> +    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3R1.R8.4||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
>  )
>  
>  -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
> diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
> index f2e6a1145b7c..3738eb57ff52 100644
> --- a/xen/common/device-tree/bootinfo.c
> +++ b/xen/common/device-tree/bootinfo.c
> @@ -17,6 +17,8 @@
>  #include <xen/libfdt/libfdt-xen.h>
>  #include <xen/mm.h>
>  
> +#include <asm/setup.h>
> +
>  struct bootinfo __initdata bootinfo = BOOTINFO_INIT;
>  
>  const char * __init boot_module_kind_as_string(bootmodule_kind kind)
> 
> base-commit: 88c40dc108bfddb32a891e2e20d48bbe94949200
> -- 
> 2.39.5
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 00:04:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 00:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839612.1255397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDBji-0004Xv-H9; Tue, 19 Nov 2024 00:04:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839612.1255397; Tue, 19 Nov 2024 00:04: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 1tDBji-0004Xo-EZ; Tue, 19 Nov 2024 00:04:54 +0000
Received: by outflank-mailman (input) for mailman id 839612;
 Tue, 19 Nov 2024 00:04: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDBjg-0004Xg-Ro
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 00:04:52 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e381dde4-a609-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 01:04:47 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 3D134A41FE0;
 Tue, 19 Nov 2024 00:02:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7958CC4CECC;
 Tue, 19 Nov 2024 00:04: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: e381dde4-a609-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImUzODFkZGU0LWE2MDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTc0Njg4LjE2NTA3OSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731974686;
	bh=zwcNxODTX3rXWQ5TN+gRjQvgJsKiB5/aS8YUZiTJyzM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tin2+LSCmulpwB5XATXL6wlmwSbjLz27mNSmkwGxFduQH7I4jxcUQqKWjLROPc/aZ
	 SavXZ2lsc2eEouiF3ZUy2QeYdBBq/XWFW9rhQerqG6vhqh7x4/7TERC0DyfoXZc/R/
	 hFwOL61uJ3PWEGkAwt6pLDbl8APc452gu0OBQ0AHibfWYu4DQz3i9W4kqA/Re7dSAD
	 pgNVzjl9bEA/QL6w+nRk9R6d9FRa46b8xtqzyN2JcxrwqHXEi/jmvBEEHYANjWarL3
	 L4U11eM9RLnlXCQQg2UsnKg1fxWzn/7gBavtkaVvH49vjpGOHGUF18d3Mz/zQ3LgwA
	 iAhHEI0lVJT3g==
Date: Mon, 18 Nov 2024 16:04:44 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Anthony PERARD <anthony.perard@vates.tech>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH 3/3] CI: New stage "containers" to rebuild some
 containers
In-Reply-To: <ZztJPKoLvaTZguze@l14>
Message-ID: <alpine.DEB.2.22.394.2411181603160.1160299@ubuntu-linux-20-04-desktop>
References: <20241115170739.48983-1-anthony.perard@vates.tech> <20241115170739.48983-4-anthony.perard@vates.tech> <alpine.DEB.2.22.394.2411151629450.1160299@ubuntu-linux-20-04-desktop> <ZztJPKoLvaTZguze@l14>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 18 Nov 2024, Anthony PERARD wrote:
> On Fri, Nov 15, 2024 at 04:34:21PM -0800, Stefano Stabellini wrote:
> > On Fri, 15 Nov 2024, Anthony PERARD wrote:
> > > Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
> > > set. This is to be use with a scheduled pipeline.
> > > 
> > > When $XEN_CI_REBUILD_CONTAINERS is set, only build jobs related to the
> > > containers been rebuild will be executed.
> > > 
> > > Build jobs that are using one of the containers been rebuild should
> > > wait for the container to be rebuild. If it's a normal pipeline, those
> > > dependency are simply ignored.
> > 
> > This is a fantastic contribution, thanks Anthony!
> > 
> > I think we can simplify this patch by removing all stages except for
> > "containers" on the scheduled pipeline with XEN_CI_REBUILD_CONTAINERS
> > set to true.
> > 
> > I think it is a good idea to have a special schedule pipeline for this,
> > and we should exploit the fact that it is special and only use it to
> > rebuild the containers. If we want to, we can have a second scheduled
> > pipeline to do a full normal run afterwards.
> > 
> > This way, there is no need to carry the changes to build.yaml or
> > test.yaml that are a bit hard to read/understand for someone unfamiliar
> > with gitlab. When XEN_CI_REBUILD_CONTAINERS == true we only do the
> > containers stage.
> 
> So, you mean having this following change instead of make changes to
> build.yaml and test.yaml, right?
> 
>     diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>     --- a/.gitlab-ci.yml
>     +++ b/.gitlab-ci.yml
>     @@ -14,7 +14,15 @@ stages:
>        - test
>      
>      include:
>     -  - 'automation/gitlab-ci/containers.yaml'
>     -  - 'automation/gitlab-ci/analyze.yaml'
>     -  - 'automation/gitlab-ci/build.yaml'
>     -  - 'automation/gitlab-ci/test.yaml'
>     +  - local: 'automation/gitlab-ci/containers.yaml'
>     +    rules:
>     +      - if: $XEN_CI_REBUILD_CONTAINERS
>     +  - local: 'automation/gitlab-ci/analyze.yaml'
>     +    rules:
>     +      - if: $XEN_CI_REBUILD_CONTAINERS == null
>     +  - local: 'automation/gitlab-ci/build.yaml'
>     +    rules:
>     +      - if: $XEN_CI_REBUILD_CONTAINERS == null
>     +  - local: 'automation/gitlab-ci/test.yaml'
>     +    rules:
>     +      - if: $XEN_CI_REBUILD_CONTAINERS == null
> 
> 
> Or I guess we can also compare to the string "true" and write the
> expression as
>     if: $XEN_CI_REBUILD_CONTAINERS == "true"
> and
>     if: $XEN_CI_REBUILD_CONTAINERS != "true"

Yes exactly, either one of the above is fine!

It is much simpler and clearer than having to add (admittedly
non-obvious) checks to build.yaml and test.yaml.

Thanks!


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 00:23:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 00:23:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839624.1255406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDC1d-0000Om-T1; Tue, 19 Nov 2024 00:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839624.1255406; Tue, 19 Nov 2024 00:23: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 1tDC1d-0000Of-QW; Tue, 19 Nov 2024 00:23:25 +0000
Received: by outflank-mailman (input) for mailman id 839624;
 Tue, 19 Nov 2024 00:23: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDC1d-0000OZ-H9
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 00:23:25 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a3f0891-a60c-11ef-a0c9-8be0dac302b0;
 Tue, 19 Nov 2024 01:23:20 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 67BF75C5D7B;
 Tue, 19 Nov 2024 00:22:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B6D7DC4CED7;
 Tue, 19 Nov 2024 00:23: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: 7a3f0891-a60c-11ef-a0c9-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjdhM2YwODkxLWE2MGMtMTFlZi1hMGM5LThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTc1ODAwLjUxMjgxMywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731975798;
	bh=ix4h+30Wcvi+mZUToRZaMUZqndzHDAsNk3g5oGGJjEU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=biBSTjlJQXT19/fK62Jb7zeBBSsi1xO2YRSlpAKif2bJfsus9g6xZeSUW357qYnfS
	 7RLiLI1bej3MFsRAA5fCEUq7ya6Guolzh+Ze1MMX/q+BhMJ4yVnxPgsVlsQGBKKsEQ
	 wT83TOMufAs1Qc9RZFabFQXypeTpeBEdAbIYWlUNCtoHZvxPojuZsNNwkEZ1amemUB
	 uaX3xZ59BrrzlDDJC3cBSDAEwYx2PdeRubfVzqROaDzsFZeXxfYgTiggTeLWLWz9CY
	 Kkc4y8GObnjN5dalKTQnZ6Svab29fux3Sb1x0zZwG3/8QBcMJyg0ZE3zKyXVUjhWKb
	 8JELuW29EopzA==
Date: Mon, 18 Nov 2024 16:23:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Miccio <luca.miccio@amd.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org
Subject: Re: [ImageBuilder] UBOOT_SOURCE/SCRIPTS variables must always be
 set
In-Reply-To: <20241118141205.3513831-1-luca.miccio@amd.com>
Message-ID: <alpine.DEB.2.22.394.2411181620500.1160299@ubuntu-linux-20-04-desktop>
References: <20241118141205.3513831-1-luca.miccio@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 18 Nov 2024, Luca Miccio wrote:
> The current README incorrectly omits the need for the UBOOT_SOURCE and
> UBOOT_SCRIPT variables for uboot-script-gen to function properly.
> Moreover, the script silently fails if these variables are not set.
> Return an error if the the UBOOT_SCRIPT variable is not set and
> correct the documentation accordingly.
> 
> Signed-off-by: Luca Miccio <luca.miccio@amd.com>
> ---
>  README.md                |  3 ++-
>  scripts/uboot-script-gen | 12 ++++++++++++
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/README.md b/README.md
> index 4fcd908..ae2fdfd 100644
> --- a/README.md
> +++ b/README.md
> @@ -272,7 +272,8 @@ Where:
>  
>  - UBOOT_SOURCE and UBOOT_SCRIPT specify the output. They are optional
>    as you can pass -o FILENAME to uboot-script-gen as a command line
> -  parameter
> +  parameter. It has to be set either in the config file or CLI argument
> +  though.
>  
>  - APPEND_EXTRA_CMDS: is optional and specifies the path to a text file
>    containing extra u-boot commands to be added to the boot script before
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index dcf5bdb..b07cbf1 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -1210,6 +1210,18 @@ then
>      UBOOT_SCRIPT="$uboot_out_opt".scr
>      UBOOT_SOURCE="$uboot_out_opt".source
>  fi
> +
> +if test ! "$UBOOT_SOURCE"
> +then
> +    echo "UBOOT_SOURCE not set, either specify it in the config or set it with the -o option"
> +    exit 1
> +fi
> +
> +if test ! "$UBOOT_SCRIPT"
> +then
> +    UBOOT_SCRIPT="$UBOOT_SCRIPT".scr

This doesn't look right? Did you mean:

  UBOOT_SCRIPT="${UBOOT_SOURCE%.source}.scr"


> +fi
> +
>  if test "$fit_opt" && ! test "$FIT"
>  then
>      FIT="${UBOOT_SOURCE%.source}.fit"
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 01:46:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 01:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839635.1255417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDDK4-0005h6-GM; Tue, 19 Nov 2024 01:46:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839635.1255417; Tue, 19 Nov 2024 01:46: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 1tDDK4-0005gz-CX; Tue, 19 Nov 2024 01:46:32 +0000
Received: by outflank-mailman (input) for mailman id 839635;
 Tue, 19 Nov 2024 01:46: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDDK3-0005gt-SU
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 01:46:31 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 15d0bb22-a618-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 02:46:25 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 75817A42164;
 Tue, 19 Nov 2024 01:44:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 245A0C4CECC;
 Tue, 19 Nov 2024 01:46:22 +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: 15d0bb22-a618-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjE1ZDBiYjIyLWE2MTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTgwNzg1LjY4OTcwNywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731980783;
	bh=uZ8gNZOGUyYluIRtYstj/uyEWXle5jyQ/fwwao8ihC0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MiP1t8vFdv23aTWdsug+oMdgcqgSwx1aFz9O6ZFZzFm6E6dHgd0ta5VbOZlnXwtPy
	 tctuZ4Ssb3FCmBbXWyC3iqMFEThkghSwmtVovj/1vYH4ELAgfGdKajcqvXpoMZcnMq
	 4eN94BFNtlVkTyR1TCUdkKpIjMr3ZeqFFupVs/qwKwp3LV5ogaC6Dla3Y8mnrFLrDG
	 dclUNaXFdOWSthdrBSeJS+0S0camd/dKWp9FVNbNEzzL4Uln6rJkrJZTsRPQpcRqX0
	 aIDB319TkWfnaytVjlueaiUjWmY1trbQjozmVP1KAL7ytIZUGqczvstQOkKa5jqqUy
	 LvTzqGcKtyviA==
Date: Mon, 18 Nov 2024 17:46:20 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, 
    Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
In-Reply-To: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
Message-ID: <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
References: <20241114224636.1942089-1-volodymyr_babchuk@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, 14 Nov 2024, Volodymyr Babchuk wrote:
> LibAFL, which is a part of AFL++ project is a instrument that allows
> us to perform fuzzing on beremetal code (Xen hypervisor in this case)
> using QEMU as an emulator. It employs QEMU's ability to create
> snapshots to run many tests relatively quickly: system state is saved
> right before executing a new test and restored after the test is
> finished.
> 
> This patch adds all necessary plumbing to run aarch64 build of Xen
> inside that LibAFL-QEMU fuzzer. From the Xen perspective we need to
> do following things:
> 
> 1. Able to communicate with LibAFL-QEMU fuzzer. This is done by
> executing special opcodes, that only LibAFL-QEMU can handle.
> 
> 2. Use interface from p.1 to tell the fuzzer about code Xen section,
> so fuzzer know which part of code to track and gather coverage data.
> 
> 3. Report fuzzer about crash. This is done in panic() function.
> 
> 4. Prevent test harness from shooting itself in knee.
> 
> Right now test harness is an external component, because we want to
> test external Xen interfaces, but it is possible to fuzz internal code
> if we want to.
> 
> Test harness is implemented as a Zephyr-based application which launches
> as Dom0 kernel and performs different tests. As test harness can issue
> hypercall that shuts itself down, KConfig option
> CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING was added. It basically tells
> fuzzer that test was completed successfully if Dom0 tries to shut
> itself (or the whole machine) down.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> 
> I tried to fuzz the vGIC emulator and hypercall interface. While vGIC
> fuzzing didn't yield any interesting results, hypercall fuzzing found a
> way to crash the hypervisor from Dom0 on aarch64, using
> "XEN_SYSCTL_page_offline_op" with "sysctl_query_page_offline" sub-op,
> because it leads to page_is_ram_type() call which is marked
> UNREACHABLE on ARM.
> ---
>  docs/hypervisor-guide/fuzzing.rst           | 102 +++++++++++++
>  xen/arch/arm/Kconfig.debug                  |  26 ++++
>  xen/arch/arm/Makefile                       |   1 +
>  xen/arch/arm/include/asm/libafl_qemu.h      |  54 +++++++
>  xen/arch/arm/include/asm/libafl_qemu_defs.h |  37 +++++
>  xen/arch/arm/libafl_qemu.c                  | 152 ++++++++++++++++++++
>  xen/arch/arm/psci.c                         |  13 ++
>  xen/common/sched/core.c                     |  17 +++
>  xen/common/shutdown.c                       |   7 +
>  xen/drivers/char/console.c                  |   8 ++
>  10 files changed, 417 insertions(+)
>  create mode 100644 docs/hypervisor-guide/fuzzing.rst
>  create mode 100644 xen/arch/arm/include/asm/libafl_qemu.h
>  create mode 100644 xen/arch/arm/include/asm/libafl_qemu_defs.h
>  create mode 100644 xen/arch/arm/libafl_qemu.c
> 
> diff --git a/docs/hypervisor-guide/fuzzing.rst b/docs/hypervisor-guide/fuzzing.rst
> new file mode 100644
> index 0000000000..9570de7670
> --- /dev/null
> +++ b/docs/hypervisor-guide/fuzzing.rst
> @@ -0,0 +1,102 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +Fuzzing
> +=======
> +
> +It is possible to use LibAFL-QEMU for fuzzing hypervisor. Right now
> +only aarch64 is supported and only hypercall fuzzing is enabled in the
> +test harness, but there are plans to add vGIC interface fuzzing, PSCI
> +fuzzing and vPL011 fuzzing as well.
> +
> +
> +Principle of operation
> +----------------------
> +
> +LibAFL-QEMU is a part of American Fuzzy lop plus plus (AKA AFL++)
> +project. It uses special build of QEMU, that allows to fuzz baremetal
> +software like Xen hypervisor or Linux kernel. Basic idea is that we
> +have software under test (Xen hypervisor in our case) and a test
> +harness application. Test harness uses special protocol to communicate
> +with LibAFL outside of QEMU to get input data and report test
> +result. LibAFL monitors which branches are taken by Xen and mutates
> +input data in attempt to discover new code paths that eventually can
> +lead to a crash or other unintended behavior.
> +
> +LibAFL uses QEMU's `snapshot` feature to run multiple test without
> +restarting the whole system every time. This speeds up fuzzing process
> +greatly.
> +
> +So, to try Xen fuzzing we need three components: LibAFL-based fuzzer,
> +test harness and Xen itself.
> +
> +Building Xen for fuzzing
> +------------------------
> +
> +Xen hypervisor should be built with these two options::
> +
> + CONFIG_LIBAFL_QEMU_FUZZER=y
> + CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING=y
> +
> +Building test harness
> +---------------------
> +
> +We need to make low-level actions, like issuing random hypercalls, so
> +for test harness we use special build of Zephyr application.
> +
> +You need to prepare environment for building Zephyr as described in
> +getting `started guide
> +<https://docs.zephyrproject.org/latest/develop/getting_started/index.html>`_.
> +
> +Next, download test harness application and built it::
> +
> +  # mkdir zephyr-harness
> +  # cd zephyr-harness
> +  # west init -m https://github.com/xen-troops/xen-fuzzer-harness
> +  # cd xen-fuzzer-harness
> +  # west update
> +  # west build
> +
> +Building LibAFL-QEMU based fuzzer
> +---------------------------------
> +
> +Fuzzer is written in Rust, so you need Rust toolchain and `cargo` tool
> +in your system. Please refer to your distro documentation on how to
> +obtain them.
> +
> +Once Rust is ready, fetch and build the fuzzer::
> +
> +  # git clone https://github.com/xen-troops/xen-fuzzer-rs
> +  # cd xen-fuzzer-rs
> +  # cargo build

Is this the only way to trigger the fuzzer? Are there other ways (e.g.
other languages or scripts)? If this is the only way, do we expect it to
grow much over time, or is it just a minimal shim only to invoke the
fuzzer (so basically we need an x86 version of it but that's pretty much
it in terms of growth)?


> +Running the fuzzer
> +------------------
> +
> +Run it like this::
> +
> +  # target/debug/xen_fuzzer  -accel tcg \
> +  -machine virt,virtualization=yes,acpi=off \
> +  -m 4G \
> +  -L  target/debug/qemu-libafl-bridge/pc-bios  \
> +  -nographic \
> +  -cpu max \
> +  -append 'dom0_mem=512 loglvl=none guest_loglvl=none console=dtuart' \
> +  -kernel /path/to/xen/xen/xen \
> +  -device guest-loader,addr=0x42000000,kernel=/path/to/zephyr-harness/build/zephyr/zephyr.bin \
> +  -snapshot
> +
> +Any inputs that led to crashes will be found in `crashes` directory.
> +
> +You can use standard QEMU parameters to redirect console output,
> +change memory size, HW compisition, etc.
> +
> +
> +TODOs
> +-----
> +
> + - Add x86 support.
> + - Implement fuzzing of other external hypervisor interfaces.
> + - Better integration: user should not build manually multiple
> +   different projects
> + - Add ability to re-run fuzzer with a given input to make crash
> +   debugging more comfortable
> diff --git a/xen/arch/arm/Kconfig.debug b/xen/arch/arm/Kconfig.debug
> index 7660e599c0..9e2c4649ed 100644
> --- a/xen/arch/arm/Kconfig.debug
> +++ b/xen/arch/arm/Kconfig.debug
> @@ -183,3 +183,29 @@ config EARLY_PRINTK_INC
>  	default "debug-mvebu.inc" if EARLY_UART_MVEBU
>  	default "debug-pl011.inc" if EARLY_UART_PL011
>  	default "debug-scif.inc" if EARLY_UART_SCIF
> +
> +config LIBAFL_QEMU_FUZZER
> +	bool "Enable LibAFL-QEMU calls"
> +	help
> +	  This option enables support for LibAFL-QEMU calls. Enable this
> +	  only when you are going to run hypervisor inside LibAFL-QEMU.
> +	  Xen will report code section to LibAFL and will report about
> +	  crash when it panics.
> +
> +	  Do not try to run Xen built on this option on any real hardware
> +	  or plain QEMU, because it will just crash during startup.
> +
> +config LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +	depends on LIBAFL_QEMU_FUZZER
> +	bool "LibAFL: Report any attempt to suspend/destroy a domain as a success"
> +	help
> +	  When fuzzing hypercalls, fuzzer sometimes will issue an hypercall that
> +	  leads to a domain shutdown, or machine shutdown, or vCPU being
> +	  blocked, or something similar. In this case test harness will not be
> +	  able to report about successfully handled call to the fuzzer. Fuzzer
> +	  will report timeout and mark this as a crash, which is not true. So,
> +	  in such cases we need to report about successfully test case from the
> +	  hypervisor itself.
> +
> +          Enable this option only if fuzzing attempt can lead to a correct
> +	  stoppage, like when fuzzing hypercalls or PSCI.
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index e4ad1ce851..51b5e15b6a 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -10,6 +10,7 @@ obj-$(CONFIG_TEE) += tee/
>  obj-$(CONFIG_HAS_VPCI) += vpci.o
>  
>  obj-$(CONFIG_HAS_ALTERNATIVE) += alternative.o
> +obj-${CONFIG_LIBAFL_QEMU_FUZZER} += libafl_qemu.o
>  obj-y += cpuerrata.o
>  obj-y += cpufeature.o
>  obj-y += decode.o
> diff --git a/xen/arch/arm/include/asm/libafl_qemu.h b/xen/arch/arm/include/asm/libafl_qemu.h
> new file mode 100644
> index 0000000000..b90cf48b9a
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/libafl_qemu.h
> @@ -0,0 +1,54 @@
> +#ifndef LIBAFL_QEMU_H
> +#define LIBAFL_QEMU_H
> +
> +#include <xen/stdint.h>
> +#include "libafl_qemu_defs.h"
> +#define LIBAFL_QEMU_PRINTF_MAX_SIZE 4096
> +
> +typedef uint64_t libafl_word;
> +
> +/**
> + * LibAFL QEMU header file.
> + *
> + * This file is a portable header file used to build target harnesses more
> + * conveniently. Its main purpose is to generate ready-to-use calls to
> + * communicate with the fuzzer. The list of commands is available at the bottom
> + * of this file. The rest mostly consists of macros generating the code used by
> + * the commands.
> + */
> +
> +enum LibaflQemuEndStatus {
> +  LIBAFL_QEMU_END_UNKNOWN = 0,
> +  LIBAFL_QEMU_END_OK = 1,
> +  LIBAFL_QEMU_END_CRASH = 2,
> +};
> +
> +libafl_word libafl_qemu_start_virt(void *buf_vaddr, libafl_word max_len);
> +
> +libafl_word libafl_qemu_start_phys(void *buf_paddr, libafl_word max_len);
> +
> +libafl_word libafl_qemu_input_virt(void *buf_vaddr, libafl_word max_len);
> +
> +libafl_word libafl_qemu_input_phys(void *buf_paddr, libafl_word max_len);
> +
> +void libafl_qemu_end(enum LibaflQemuEndStatus status);
> +
> +void libafl_qemu_save(void);
> +
> +void libafl_qemu_load(void);
> +
> +libafl_word libafl_qemu_version(void);
> +
> +void libafl_qemu_page_current_allow(void);
> +
> +void libafl_qemu_internal_error(void);
> +
> +void __attribute__((format(printf, 1, 2))) lqprintf(const char *fmt, ...);
> +
> +void libafl_qemu_test(void);
> +
> +void libafl_qemu_trace_vaddr_range(libafl_word start, libafl_word end);
> +
> +void libafl_qemu_trace_vaddr_size(libafl_word start, libafl_word size);
> +
> +#endif
> diff --git a/xen/arch/arm/include/asm/libafl_qemu_defs.h b/xen/arch/arm/include/asm/libafl_qemu_defs.h
> new file mode 100644
> index 0000000000..2866cadaac
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/libafl_qemu_defs.h
> @@ -0,0 +1,37 @@
> +#ifndef LIBAFL_QEMU_DEFS
> +#define LIBAFL_QEMU_DEFS
> +
> +#define LIBAFL_STRINGIFY(s) #s
> +#define XSTRINGIFY(s) LIBAFL_STRINGIFY(s)
> +
> +#if __STDC_VERSION__ >= 201112L
> +  #define STATIC_CHECKS                                   \
> +    _Static_assert(sizeof(void *) <= sizeof(libafl_word), \
> +                   "pointer type should not be larger and libafl_word");
> +#else
> +  #define STATIC_CHECKS
> +#endif
> +
> +#define LIBAFL_SYNC_EXIT_OPCODE 0x66f23a0f
> +#define LIBAFL_BACKDOOR_OPCODE 0x44f23a0f
> +
> +#define LIBAFL_QEMU_TEST_VALUE 0xcafebabe
> +
> +#define LIBAFL_QEMU_HDR_VERSION_NUMBER 0111  // TODO: find a nice way to set it.
> +
> +typedef enum LibaflQemuCommand {
> +  LIBAFL_QEMU_COMMAND_START_VIRT = 0,
> +  LIBAFL_QEMU_COMMAND_START_PHYS = 1,
> +  LIBAFL_QEMU_COMMAND_INPUT_VIRT = 2,
> +  LIBAFL_QEMU_COMMAND_INPUT_PHYS = 3,
> +  LIBAFL_QEMU_COMMAND_END = 4,
> +  LIBAFL_QEMU_COMMAND_SAVE = 5,
> +  LIBAFL_QEMU_COMMAND_LOAD = 6,
> +  LIBAFL_QEMU_COMMAND_VERSION = 7,
> +  LIBAFL_QEMU_COMMAND_VADDR_FILTER_ALLOW = 8,
> +  LIBAFL_QEMU_COMMAND_INTERNAL_ERROR = 9,
> +  LIBAFL_QEMU_COMMAND_LQPRINTF = 10,
> +  LIBAFL_QEMU_COMMAND_TEST = 11,
> +} LibaflExit;
> +
> +#endif
> diff --git a/xen/arch/arm/libafl_qemu.c b/xen/arch/arm/libafl_qemu.c
> new file mode 100644
> index 0000000000..58924ce6c6
> --- /dev/null
> +++ b/xen/arch/arm/libafl_qemu.c
> @@ -0,0 +1,152 @@
> +/* SPDX-License-Identifier: Apache-2.0 */
> +/*
> +   This file is based on libafl_qemu_impl.h and libafl_qemu_qemu_arch.h
> +   from LibAFL project.
> +*/
> +#include <xen/lib.h>
> +#include <xen/init.h>
> +#include <xen/kernel.h>
> +#include <asm/libafl_qemu.h>
> +
> +#define LIBAFL_DEFINE_FUNCTIONS(name, opcode)				\
> +	libafl_word _libafl_##name##_call0(	\
> +		libafl_word action) {					\
> +		libafl_word ret;					\
> +		__asm__ volatile (					\
> +			"mov x0, %1\n"					\
> +			".word " XSTRINGIFY(opcode) "\n"		\
> +			"mov %0, x0\n"					\
> +			: "=r"(ret)					\
> +			: "r"(action)					\
> +			: "x0"						\
> +			);						\
> +		return ret;						\
> +	}								\
> +									\
> +	libafl_word _libafl_##name##_call1(	\
> +		libafl_word action, libafl_word arg1) {			\
> +		libafl_word ret;					\
> +		__asm__ volatile (					\
> +			"mov x0, %1\n"					\
> +			"mov x1, %2\n"					\
> +			".word " XSTRINGIFY(opcode) "\n"		\
> +			"mov %0, x0\n"					\
> +			: "=r"(ret)					\
> +			: "r"(action), "r"(arg1)			\
> +			: "x0", "x1"					\
> +			);						\
> +		return ret;						\
> +	}								\
> +									\
> +	libafl_word _libafl_##name##_call2(	\
> +		libafl_word action, libafl_word arg1, libafl_word arg2) { \
> +		libafl_word ret;					\
> +		__asm__ volatile (					\
> +			"mov x0, %1\n"					\
> +			"mov x1, %2\n"					\
> +			"mov x2, %3\n"					\
> +			".word " XSTRINGIFY(opcode) "\n"		\
> +			"mov %0, x0\n"					\
> +			: "=r"(ret)					\
> +			: "r"(action), "r"(arg1), "r"(arg2)		\
> +			: "x0", "x1", "x2"				\
> +			);						\
> +		return ret;						\
> +	}
> +
> +// Generates sync exit functions
> +LIBAFL_DEFINE_FUNCTIONS(sync_exit, LIBAFL_SYNC_EXIT_OPCODE)
> +
> +// Generates backdoor functions
> +LIBAFL_DEFINE_FUNCTIONS(backdoor, LIBAFL_BACKDOOR_OPCODE)
> +
> +static char _lqprintf_buffer[LIBAFL_QEMU_PRINTF_MAX_SIZE] = {0};
> +
> +libafl_word libafl_qemu_start_virt(void       *buf_vaddr,
> +                                            libafl_word max_len) {
> +  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_START_VIRT,
> +                                 (libafl_word)buf_vaddr, max_len);
> +}
> +
> +libafl_word libafl_qemu_start_phys(void       *buf_paddr,
> +                                            libafl_word max_len) {
> +  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_START_PHYS,
> +                                 (libafl_word)buf_paddr, max_len);
> +}
> +
> +libafl_word libafl_qemu_input_virt(void       *buf_vaddr,
> +                                            libafl_word max_len) {
> +  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_INPUT_VIRT,
> +                                 (libafl_word)buf_vaddr, max_len);
> +}
> +
> +libafl_word libafl_qemu_input_phys(void       *buf_paddr,
> +                                            libafl_word max_len) {
> +  return _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_INPUT_PHYS,
> +                                 (libafl_word)buf_paddr, max_len);
> +}
> +
> +void libafl_qemu_end(enum LibaflQemuEndStatus status) {
> +  _libafl_sync_exit_call1(LIBAFL_QEMU_COMMAND_END, status);
> +}
> +
> +void libafl_qemu_save(void) {
> +  _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_SAVE);
> +}
> +
> +void libafl_qemu_load(void) {
> +  _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_LOAD);
> +}
> +
> +libafl_word libafl_qemu_version(void) {
> +  return _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_VERSION);
> +}
> +
> +void libafl_qemu_internal_error(void) {
> +  _libafl_sync_exit_call0(LIBAFL_QEMU_COMMAND_INTERNAL_ERROR);
> +}
> +
> +void lqprintf(const char *fmt, ...) {
> +  va_list args;
> +  int res;
> +  va_start(args, fmt);
> +  res = vsnprintf(_lqprintf_buffer, LIBAFL_QEMU_PRINTF_MAX_SIZE, fmt, args);
> +  va_end(args);
> +
> +  if (res >= LIBAFL_QEMU_PRINTF_MAX_SIZE) {
> +    // buffer is not big enough, either recompile the target with more
> +    // space or print less things
> +    libafl_qemu_internal_error();
> +  }
> +
> +  _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_LQPRINTF,
> +                          (libafl_word)_lqprintf_buffer, res);
> +}
> +
> +void libafl_qemu_test(void) {
> +  _libafl_sync_exit_call1(LIBAFL_QEMU_COMMAND_TEST, LIBAFL_QEMU_TEST_VALUE);
> +}
> +
> +void libafl_qemu_trace_vaddr_range(libafl_word start,
> +                                            libafl_word end) {
> +  _libafl_sync_exit_call2(LIBAFL_QEMU_COMMAND_VADDR_FILTER_ALLOW, start, end);
> +}
> +
> +void libafl_qemu_trace_vaddr_size(libafl_word start,
> +                                           libafl_word size) {
> +  libafl_qemu_trace_vaddr_range(start, start + size);
> +}
> +
> +static int init_afl(void)
> +{
> +	vaddr_t xen_text_start = (vaddr_t)_stext;
> +	vaddr_t xen_text_end = (vaddr_t)_etext;
> +
> +	lqprintf("Telling AFL about code section: %lx - %lx\n", xen_text_start, xen_text_end);
> +
> +	libafl_qemu_trace_vaddr_range(xen_text_start, xen_text_end);
> +
> +	return 0;
> +}
> +
> +__initcall(init_afl);
> diff --git a/xen/arch/arm/psci.c b/xen/arch/arm/psci.c
> index b6860a7760..c7a51a1144 100644
> --- a/xen/arch/arm/psci.c
> +++ b/xen/arch/arm/psci.c
> @@ -17,6 +17,7 @@
>  #include <asm/cpufeature.h>
>  #include <asm/psci.h>
>  #include <asm/acpi.h>
> +#include <asm/libafl_qemu.h>
>  
>  /*
>   * While a 64-bit OS can make calls with SMC32 calling conventions, for
> @@ -49,6 +50,10 @@ int call_psci_cpu_on(int cpu)
>  
>  void call_psci_cpu_off(void)
>  {
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif

I think we should add a wrapper with an empty implementation in the
regular case and the call to libafl_qemu_end when the fuzzer is enabled.
So that here it becomes just something like:

  fuzzer_success();


>      if ( psci_ver > PSCI_VERSION(0, 1) )
>      {
>          struct arm_smccc_res res;
> @@ -62,12 +67,20 @@ void call_psci_cpu_off(void)
>  
>  void call_psci_system_off(void)
>  {
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif
> +
>      if ( psci_ver > PSCI_VERSION(0, 1) )
>          arm_smccc_smc(PSCI_0_2_FN32_SYSTEM_OFF, NULL);
>  }
>  
>  void call_psci_system_reset(void)
>  {
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif
> +
>      if ( psci_ver > PSCI_VERSION(0, 1) )
>          arm_smccc_smc(PSCI_0_2_FN32_SYSTEM_RESET, NULL);
>  }
> diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
> index d6296d99fd..fd722e0231 100644
> --- a/xen/common/sched/core.c
> +++ b/xen/common/sched/core.c
> @@ -47,6 +47,10 @@
>  #define pv_shim false
>  #endif
>  
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER
> +#include <asm/libafl_qemu.h>
> +#endif
> +
>  /* opt_sched: scheduler - default to configured value */
>  static char __initdata opt_sched[10] = CONFIG_SCHED_DEFAULT;
>  string_param("sched", opt_sched);
> @@ -1452,6 +1456,10 @@ static long do_poll(const struct sched_poll *sched_poll)
>      if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )
>          return -EFAULT;
>  
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif

I am not sure about this one, why is this a success?

Honestly, aside from these two comments, this looks quite good. I would
suggest adding a GitLab CI job to exercise this, if nothing else, to
serve as an integration point since multiple components are required for
this to work.


>      set_bit(_VPF_blocked, &v->pause_flags);
>      v->poll_evtchn = -1;
>      set_bit(v->vcpu_id, d->poll_mask);
> @@ -1887,12 +1895,18 @@ ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>      {
>      case SCHEDOP_yield:
>      {
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +        libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif
>          ret = vcpu_yield();
>          break;
>      }
>  
>      case SCHEDOP_block:
>      {
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +        libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif
>          vcpu_block_enable_events();
>          break;
>      }
> @@ -1907,6 +1921,9 @@ ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>  
>          TRACE_TIME(TRC_SCHED_SHUTDOWN, current->domain->domain_id,
>                     current->vcpu_id, sched_shutdown.reason);
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +        libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif
>          ret = domain_shutdown(current->domain, (u8)sched_shutdown.reason);
>  
>          break;
> diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c
> index c47341b977..1340f4b606 100644
> --- a/xen/common/shutdown.c
> +++ b/xen/common/shutdown.c
> @@ -11,6 +11,10 @@
>  #include <xen/kexec.h>
>  #include <public/sched.h>
>  
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER
> +#include <asm/libafl_qemu.h>
> +#endif
> +
>  /* opt_noreboot: If true, machine will need manual reset on error. */
>  bool __ro_after_init opt_noreboot;
>  boolean_param("noreboot", opt_noreboot);
> @@ -32,6 +36,9 @@ static void noreturn reboot_or_halt(void)
>  
>  void hwdom_shutdown(unsigned char reason)
>  {
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
> +#endif
>      switch ( reason )
>      {
>      case SHUTDOWN_poweroff:
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 7da8c5296f..1262515e70 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -41,6 +41,9 @@
>  #ifdef CONFIG_SBSA_VUART_CONSOLE
>  #include <asm/vpl011.h>
>  #endif
> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER
> +#include <asm/libafl_qemu.h>
> +#endif
>  
>  /* console: comma-separated list of console outputs. */
>  static char __initdata opt_console[30] = OPT_CONSOLE_STR;
> @@ -1299,6 +1302,11 @@ void panic(const char *fmt, ...)
>  
>      kexec_crash(CRASHREASON_PANIC);
>  
> +    #ifdef CONFIG_LIBAFL_QEMU_FUZZER
> +    /* Tell the fuzzer that we crashed */
> +    libafl_qemu_end(LIBAFL_QEMU_END_CRASH);
> +    #endif
> +
>      if ( opt_noreboot )
>          machine_halt();
>      else
> -- 
> 2.47.0
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 02:31:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 02:31:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839647.1255426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDE1m-0006eB-PC; Tue, 19 Nov 2024 02:31:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839647.1255426; Tue, 19 Nov 2024 02:31: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 1tDE1m-0006e4-Mh; Tue, 19 Nov 2024 02:31:42 +0000
Received: by outflank-mailman (input) for mailman id 839647;
 Tue, 19 Nov 2024 02:31: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=vLEs=SO=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1tDE1l-0006dv-Di
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 02:31:41 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 66234808-a61e-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 03:31:37 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id C8C185C5CEA;
 Tue, 19 Nov 2024 02:30:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B65BC4CECC;
 Tue, 19 Nov 2024 02:31:35 +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
 33E723809A80; Tue, 19 Nov 2024 02:31: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: 66234808-a61e-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjY2MjM0ODA4LWE2MWUtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTgzNDk3LjcyODc3OCwic2VuZGVyIjoicHItdHJhY2tlci1ib3RAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1731983495;
	bh=DcRycOtiWzofjQackcuJsMNNRJZFf5batUiKIeIjTGM=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=ohG8TabBr07GkO5beMswccvk4DUHOTthPE1QMQ8kP9tXt3jUazbtB4Jf0S/yUFOxF
	 8d4DtMT/QwM7IKGyTq58uDhXUwzEXGeoOnxa3i/jFGmjq/A88WmLjPw4lvcDMDOOQQ
	 6z2RR6Q6JlKHF7AZx91ZIFaUEw0/vXcF7lQeEZP+RMulyREIYGuPSEWuO3r1oISnPW
	 GL/xH5IZw7t4E8CjdubSXEsa0Fun9vtEMy17HgqQZBbIk2dzgWwJhC1BzRrndCzB4+
	 kfKcFGWYqCLSKPCzotvmDWe+bI07If1PL7BFd7YphND9pMCEx/fk0n2pp77VVajKRX
	 PGr53z/mNQ7qw==
Subject: Re: [GIT PULL] xen: branch for v6.13-rc1
From: pr-tracker-bot@kernel.org
In-Reply-To: <20241115162301.28457-1-jgross@suse.com>
References: <20241115162301.28457-1-jgross@suse.com>
X-PR-Tracked-List-Id: <linux-kernel.vger.kernel.org>
X-PR-Tracked-Message-Id: <20241115162301.28457-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.13-rc1-tag
X-PR-Tracked-Commit-Id: afc545da381ba0c651b2658966ac737032676f01
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 158f238aa69d91ad74e535c73f552bd4b025109c
Message-Id: <173198350689.78263.3549741561220661524.pr-tracker-bot@kernel.org>
Date: Tue, 19 Nov 2024 02:31:46 +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, 15 Nov 2024 17:23:01 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.13-rc1-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/158f238aa69d91ad74e535c73f552bd4b025109c

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 05:58:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 05:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839655.1255436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDHFg-0004UE-Ki; Tue, 19 Nov 2024 05:58:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839655.1255436; Tue, 19 Nov 2024 05:58: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 1tDHFg-0004U7-Hy; Tue, 19 Nov 2024 05:58:16 +0000
Received: by outflank-mailman (input) for mailman id 839655;
 Tue, 19 Nov 2024 05:58: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=rCfT=SO=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tDHFe-0004U1-Kp
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 05:58:14 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2408::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4068d4fc-a63b-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 06:58:09 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SA1PR12MB7317.namprd12.prod.outlook.com (2603:10b6:806:2ba::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24; Tue, 19 Nov
 2024 05:58:05 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.023; Tue, 19 Nov 2024
 05:58: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: 4068d4fc-a63b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwODo6NjJkIiwiaGVsbyI6Ik5BTTA0LUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQwNjhkNGZjLWE2M2ItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMxOTk1ODg5LjcyOTE0Nywic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QI+M0ivh2Extk/iwOJpn6oOmJVpYV0bWexDXBo109xfmDZpdOqoOmGtx3nuBMSaV2riA5VLw9ho07loq9kpxqgo2NY8z0DckqluvVXfzdYoMaHdD+D0gugq5B6aNiKG4d3+62iMYTCu/7Xqkkjw+x4F2RQpSep5hcVgGPmyTCM1FyustHDA9VC0pBTnyMUDAmzPOEwNJ9vhl4fApZKx6bwXjNzGMynkDxh84PZPoSQVLOsH54i8CtKeghuFPVTX4w8sKnUTL1ldpi3UbVm5/PTCyG2x08p2BJZWMS88t89hDylfwlJseFtAP45vi14NCV0ynG8zFjst4zcLZC0j3TQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EE4xt8/SpO4Hem4bo3fJcds07C7oTvDNlwsdi0Xzz5U=;
 b=CjhPRPpDiJkfwN9nonnMB8qci4woGcmASuup1XHJXkCYMZI8Eppawa0cw4tvQP5cpKNrIloPZPtHQBs+zizluz4HbRHj7kTbiZZ/ZTqv5bWPigkzGdalq11vzOklZgSvaW4GBbnYXuV+Ud+lgWtfD0cwEm4EsCegXt6gYLiSqU/bCPCRgFDOiTTz2+lHnLos5CYJNozWdJYQq1huPQbQFjLa8YqxF3jO3jv95SVl98T6o0992L7NEdWjCXZW+NPd+PFSuNX1mckdWYDWolGCIiKeY0XLz7O10Tnk40kC4GL3Y0vNHdG5JNsKKfmM2CYIQb0MC0QB0kiDqvv9+4t6yA==
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=EE4xt8/SpO4Hem4bo3fJcds07C7oTvDNlwsdi0Xzz5U=;
 b=xJBHq1jJKugIbSwEIZurnqgiOaLaCG2MUHxfzb327a3mom0d4bHwe0zuqbOpqETmxb79motjTGuZCd2vn2KP5ktASArseub1dEM3RIkf6D8dRPc1l2n+hBuOMMZJ9Ofjq1H4ei3wMn5P3U1U1TR2pUTuxHAY61BdsFAqzFReZLI=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum
	<marcel.apfelbaum@gmail.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony@xenproject.org>, Paul Durrant <paul@xen.org>, "Edgar E . Iglesias"
	<edgar.iglesias@gmail.com>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [QEMU PATCH v10] xen/passthrough: use gsi to map pirq when dom0
 is PVH
Thread-Topic: [QEMU PATCH v10] xen/passthrough: use gsi to map pirq when dom0
 is PVH
Thread-Index: AQHbMBN9zgKXu6QHp0mudGAMtCr+w7K9RysAgAFuGYA=
Date: Tue, 19 Nov 2024 05:58:04 +0000
Message-ID:
 <BL1PR12MB58497864D77C9F6B30E5D806E7202@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241106061418.3655304-1-Jiqian.Chen@amd.com>
 <Zztlvl0m-Oi2XGXq@l14>
In-Reply-To: <Zztlvl0m-Oi2XGXq@l14>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|SA1PR12MB7317:EE_
x-ms-office365-filtering-correlation-id: 255b6c10-c344-48aa-8046-08dd085f2252
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Mm9YZjBWQVlMc2dIUWcwOUxMQkE2bTYvNUcyZlBhcGJuZWcyREVzeE82Nnox?=
 =?utf-8?B?OWZhY2FWakkxSnJwQ0xjcnRDVEV5NUdmODBFMHJ0ZUJYbUl0allVL3hQT0pt?=
 =?utf-8?B?ejZ0dkRLYi94UkxtZEdEMFlYNkV0Z1JTUnNidytIeGJXZ0hUVDFXWU1laE55?=
 =?utf-8?B?djhENDFzNFlWR0YvSHlYTzQ5bVJ6RStJTjhmQm5oL080cHRiNEg0cUUyRkpE?=
 =?utf-8?B?MU50VFAzVVlWdmpoQ3NpaFEwYTBwY0ViU3B4NGtvZkZHUDhNRkRsVnhod0tS?=
 =?utf-8?B?RUs3Mk9nRGVWbC9KUldvZlU2YnUrZEJjNHdNWVJlVzV1SFlIcEhCNTMwZ0Vm?=
 =?utf-8?B?cGZDMkp3aHRTOUNpWHNiOWtFdm5YQWlETnFSaXhDdXhMZjZESTJOaXNOTUFH?=
 =?utf-8?B?RWtwalFpZVhrekN2Q3pubDBmc0RsdFdzMU9NVmYzT1RVbjRxdTJ2NUYxRU1V?=
 =?utf-8?B?azRvTUV1V3NOT3Zwd3Yra3pRK0NLU0Vab3dBNnJMdk1oL0VMSFZTWVc5UTZ3?=
 =?utf-8?B?VHFCaCt3c1MydG1Bc0c2YkxkaXMzUzBPc3V4NkxsbDQzbVlCaGIyWVJUVlgx?=
 =?utf-8?B?Um4xNTd5eWJQOG5uNk9pb0FhSk5qK1NHRUVXcVJQb1pTT05zNHhGTTBJWHJW?=
 =?utf-8?B?bWZQMjQvbXZnNDhzRnE3ZXkySXlVTVRLRW5VRlpoWGhBT3krSzdwTjhwZFFF?=
 =?utf-8?B?RnZ1WEo5S24rQUtUNGZJNkdWYlN1VWUwQ2hHNXBDZ01RVzJLQWZ4amo0RjIv?=
 =?utf-8?B?YlE4YnpYWFB0YXIzb3JjYWpCZW1lODFQN1ZCTER0TEFhRjMrYmZuUWJhdHp2?=
 =?utf-8?B?dEhLS0JkL0tzNXpFRk9xT3pjaE40bWhhUXh1UUhjQnpQTVdMSjdIRWUxM0Rl?=
 =?utf-8?B?clJMUWVESTE2M2t3NUphNCtzUXc2bmpoRTBJcmc5V3pyd3ZSK0F1WWt0Sk9y?=
 =?utf-8?B?VHJUR1RLZXZYUWl4NkgvZ2lMaTFCL1ZZdFhTMkFNUWVhaXMwdFlZVXBlY3c4?=
 =?utf-8?B?TUU3ZXhCcnV3cmNSK3BQNHVuR1IwdWFUWWJiYWdlZ1QyeGQwM3htdHFoajVF?=
 =?utf-8?B?UlRNRGw4aGYwUlluekY2ZG4zKzYrRXl3aWJXL3RTSWIrVTZGWmZKZllPY3FL?=
 =?utf-8?B?Vkw1bTVkNXZOM21VemMxWkkwL3dZM1B2RU1iWlVvTnpiZ3BWZUZpbCtQdUsr?=
 =?utf-8?B?UkJEbDFIeGFISGNzeFZOWWppWjdaYWx3UEh0M2NIRDRYck9ld3FEcEJ2Njhi?=
 =?utf-8?B?NUEzeHhteVlPVlJad2VUVnpUWU0wcVEwN0Rad1FjQk4vd01ESUgwSVJkV3BO?=
 =?utf-8?B?UUJOMG5ZK0JtUnVsb29nd1k5ZHM5Z1FmVW1PZDY0ZlB3NldEZGRDL3NqdHBE?=
 =?utf-8?B?K0dOcy9qK2lmZk1SeWlFc3Y3Ry9ESW9UY3BGRDQvRXFSYTJubCtjRmlDc1A5?=
 =?utf-8?B?SVk0K1dJb01vSzlmZm5UUTEybFFPeEtiZkhvQ0FpYnNna3lvT3FUTnhQWktT?=
 =?utf-8?B?U2dvVitCSGRlM1hTZVhxOTY1Y01rNG5FRWRjcXdJRldSVkU1NnE1Y1RPOWhC?=
 =?utf-8?B?Q1dPWUJqQjJ1T1NFU2lDQURVTVZrNFZOSzE5YVBPT3phZ081V2VDbDFHUFRK?=
 =?utf-8?B?RERRMW5PckNwdmxMYTkzbnRkdjd5YXRteHoyOEFRaW5CZFIreXcvZ1lVOEQ3?=
 =?utf-8?B?dFhIemNyTXdjUTdQN3dhZDlnTWdqODhEclFOcDZ4WmxFa0U4aVlZd3JodDVQ?=
 =?utf-8?B?cEVla1VHQ20raks5aXRJTVIydlp0c1RkVld5MEQ4TFY5czd6a0J5cVFycVVW?=
 =?utf-8?Q?P9igYiFtetddr+2XqaeM1dn1WZmew1xOWreYo=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aVBZeWIvM081dktZWkRwejgrVUE5SFhQUC81cDd6VVpFczByR3o5aWZuNjdG?=
 =?utf-8?B?QWUvaUZ1Z2RWOU9IdFgyamVFRXZRc0p0TU5zMWhJVHpWaGVmSnYzNENTOHNt?=
 =?utf-8?B?UU5RdXNzUWg2TzErSUcvdFkrckRJUjRyVW90MHJnZjNWY3RtOXEzTURSamp4?=
 =?utf-8?B?KzkvMnZudE1WemdCdXZjSHNGNHhXQU5Hei9mZVVaRXMrVCtJVGY0RlVIbWdK?=
 =?utf-8?B?d0VMbERzWTVRTHg5VC9IVnloSzM1aW1jYmRuNytMUTVxVUF2RnBEWUhQQ3hF?=
 =?utf-8?B?UzFFZXVMVnF1bmtnT0hqM0VvSmtKRnN5eXM4Qk96WUsrMWFFYS9sWEpwbHJk?=
 =?utf-8?B?SWdRT0JLTXUxM1FleWNZYldOMFRiemZYcnd6RGFhQk1LZURzdEZvUVFFOHlx?=
 =?utf-8?B?cFpNanU1eFIxN1pxbFZEUmtONmdWeEhiRXhGc05jUytWbVJHZS9MdnNvR3No?=
 =?utf-8?B?ZWR1aGJNOGdVUlQ5MXdlLzBwSWpoZWk5bkpnNUVxenNoNzR3THBNVHp4SHhN?=
 =?utf-8?B?enE1WDlnU0xIa050S0ZTRnZVYzEwbDcvUm5ERnBTZUJRRmk5VXFNOGJDeTFH?=
 =?utf-8?B?S3FTbVNudjRLU1N1dGlBM2w1QnJVR0grbjlVLzBlMnF1Zm9tVlFHNWI5cXFI?=
 =?utf-8?B?VkpTSnk5QVFyYmVzbUlmRGJvdytjalVacG83ZE91Q0NWbUFGRStxeXNPQ0pI?=
 =?utf-8?B?bXFISGQ5S1dxSTBwVU1CZEFBbElvamNDMThHNWpxaStBa0FhWXZyUDJobWdl?=
 =?utf-8?B?YmVDYmxaUmRCSnp6TEppczR6d2xDZnY1SG82KzhuQ0tkVHVMYzlxWGZnck1B?=
 =?utf-8?B?OEsydkZFdXY1WFRxNmR4V2kvTGlvTWZOMk12TUR2Nm1OTmFVYmlVd3Y3V3Z5?=
 =?utf-8?B?WGRFTFgxYi9HTmFHWHlrWUp3bjd0STdLcjNwQklrMTlPaDh1SXEzWDh0ayt3?=
 =?utf-8?B?VEVMcjRjbklvR04yM2dKdWVPQTVpbDhoRldXYWdvTkg1UDZ2TndvVWF4aHpM?=
 =?utf-8?B?ZWwwc0UrU3lLeFJlQm9yWDRrTE5JKzEwbDlWdU80d1hQRGViSlUwNkVmM3JI?=
 =?utf-8?B?MVU2Mk9pWUk1dVpaTjJIcmFMSDJNR0RWbU1tMC9JTmYva0FEWmEvcnEyY3ho?=
 =?utf-8?B?bzB6eUlpbHhzVitTT3BKeUUxdWMyQUVySm1wRWhPMTgreVlWMFRWalNBd1F0?=
 =?utf-8?B?MHRsRW9wemtBNlBpQk51NEx0R3QwSzB1VWJnQWU2NmI0K2trdGhmZHBaUTEx?=
 =?utf-8?B?UGQ3b0ZGck1HR3B0MmhPNkkyUmlMK2cySHVXcktYcEQ1K3JZbzZFTmZhbndj?=
 =?utf-8?B?U1ZaWGVDVnZjb3lQQ0c3MGVtUkxOaWU1T1BVZkcvUVEvdGlZV2dTcnEybGQw?=
 =?utf-8?B?Y3BMT2Jkb2Fab1JmSlpSRHFvQTVEU1lveHYyL2xtN1lnaG1XWmpCMnBzaEFU?=
 =?utf-8?B?Uk9ia1VsYnRMeTdVZi85bzIwUG1OU000MnlTNlBpeGhTOUMwQ085clZjNVpL?=
 =?utf-8?B?RUNqRC81N3RWZUxFTVZJQUo4bWdLQjRQRHc5K1M5Q20zdEE0TFl2UDFKYWVV?=
 =?utf-8?B?N2w1WldGMk9yT0E4S24zUUp1c1RLUnVlNE1OVUFVendOVXdXRjJXYjRBbHZV?=
 =?utf-8?B?cThERk9acE1FVEV2aytJQXRuSzY3YndnMjJMY2hoUGlHT1FzRlNBUG0yZXBm?=
 =?utf-8?B?YTdvN2FNQ0o2UmlHaXR4QmYzWmRtVXZFQ29zYjl1QVlOb0dmOUhOMGdKRk5u?=
 =?utf-8?B?RFc4ckp0UFpJRGRYTWNZaHBsVERJTEJGZHZiVE9qU1lKWi9LNFY3dy9ibWdp?=
 =?utf-8?B?ZEptSjZGcG0zTzNKZ2Y0TVdHN3NrbGZKck9OcFE0OFQ1ZStCY1BEZ1FFd0JL?=
 =?utf-8?B?aVVjVHpxMENDcmxWejdCMWthMlViWFFsbkhLcDZlM0JHSkJNNUdCdHF6bDk1?=
 =?utf-8?B?RXdYdEhFSGRjVzV1QjhPYXRCSldGTmNUSGhBQTdvYTRVRnBWNndwN1oyZEY5?=
 =?utf-8?B?SXR1SzVPSVlUYzIySHBnb0RFNm8vSkx1OHdIZkJmckx2ZS9qNk1yK2h5bXQv?=
 =?utf-8?B?NUhpSlhWSk9pcENRNTd0aDlkenpubEs0Y0JMdy9UWGZrS3V2cUJGMnVudk9h?=
 =?utf-8?Q?LTgE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3221E5689F86A641BC962F5A7995D747@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 255b6c10-c344-48aa-8046-08dd085f2252
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2024 05:58:04.6763
 (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: 3DoDjRD8d6RfqT2EEkknHZOWP2MdYsT35076XIDkwwC5VW0/ZCIkZB0TO5MVZH7emfaf9wSEGBhAafIbZlePXA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7317

SGkgTVNUIGFuZCBNYXJjZWwsDQoNCk9uIDIwMjQvMTEvMTkgMDA6MDUsIEFudGhvbnkgUEVSQVJE
IHdyb3RlOg0KPiBPbiBXZWQsIE5vdiAwNiwgMjAyNCBhdCAwMjoxNDoxOFBNICswODAwLCBKaXFp
YW4gQ2hlbiB3cm90ZToNCj4+IEluIFBWSCBkb20wLCB3aGVuIHBhc3N0aHJvdWdoIGEgZGV2aWNl
IHRvIGRvbVUsIFFFTVUgY29kZQ0KPj4geGVuX3B0X3JlYWxpemUtPnhjX3BoeXNkZXZfbWFwX3Bp
cnEgd2FudHMgdG8gdXNlIGdzaSwgYnV0IGluIGN1cnJlbnQgY29kZXMNCj4+IHRoZSBnc2kgbnVt
YmVyIGlzIGdvdCBmcm9tIGZpbGUgL3N5cy9idXMvcGNpL2RldmljZXMvPHNiZGY+L2lycSwgdGhh
dCBpcw0KPj4gd3JvbmcsIGJlY2F1c2UgaXJxIGlzIG5vdCBlcXVhbCB3aXRoIGdzaSwgdGhleSBh
cmUgaW4gZGlmZmVyZW50IHNwYWNlcywgc28NCj4+IHBpcnEgbWFwcGluZyBmYWlscy4NCj4+DQo+
PiBUbyBzb2x2ZSBhYm92ZSBwcm9ibGVtLCB1c2UgbmV3IGludGVyZmFjZSBvZiBYZW4sIHhjX3Bj
aWRldl9nZXRfZ3NpIHRvIGdldA0KPj4gZ3NpIGFuZCB1c2UgeGNfcGh5c2Rldl9tYXBfcGlycV9n
c2kgdG8gbWFwIHBpcnEgd2hlbiBkb20wIGlzIFBWSC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBK
aXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEh1YW5n
IFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8
SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4gDQo+IEFja2VkLWJ5OiBBbnRob255IFBFUkFSRCA8YW50
aG9ueUB4ZW5wcm9qZWN0Lm9yZz4NCj4gDQo+IEJ1dCwgdGhpcyBmb2xsb3dpbmcgY2hhbmdlIHBy
b2JhYmx5IG5lZWRzIGFuIGFjayBmcm9tIFBDSSBtYWludGFuZXJzLA0KPiBDQ2VkLg0KPiANCj4+
IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3BjaS9wY2kuaCBiL2luY2x1ZGUvaHcvcGNpL3BjaS5o
DQo+PiBpbmRleCBlYjI2Y2FjODEwOTguLjA3ODA1YWE4YTVmMyAxMDA2NDQNCj4+IC0tLSBhL2lu
Y2x1ZGUvaHcvcGNpL3BjaS5oDQo+PiArKysgYi9pbmNsdWRlL2h3L3BjaS9wY2kuaA0KPj4gQEAg
LTIzLDYgKzIzLDEwIEBAIGV4dGVybiBib29sIHBjaV9hdmFpbGFibGU7DQo+PiAgI2RlZmluZSBQ
Q0lfU0xPVF9NQVggICAgICAgICAgICAzMg0KPj4gICNkZWZpbmUgUENJX0ZVTkNfTUFYICAgICAg
ICAgICAgOA0KPj4gIA0KPj4gKyNkZWZpbmUgUENJX1NCREYoc2VnLCBidXMsIGRldiwgZnVuYykg
XA0KPj4gKyAgICAgICAgICAgICgoKCh1aW50MzJfdCkoc2VnKSkgPDwgMTYpIHwgXA0KPj4gKyAg
ICAgICAgICAgIChQQ0lfQlVJTERfQkRGKGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpKSkNCj4+
ICsNCj4+ICAvKiBDbGFzcywgVmVuZG9yIGFuZCBEZXZpY2UgSURzIGZyb20gTGludXgncyBwY2lf
aWRzLmggKi8NCj4+ICAjaW5jbHVkZSAiaHcvcGNpL3BjaV9pZHMuaCINCk1heSBJIGdldCB5b3Vy
IEFDSyBhYm91dCB0aGlzIGNoYW5nZT8NCg0KPiANCj4gVGhhbmtzLA0KPiANCg0KLS0gDQpCZXN0
IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 06:38:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 06:38:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839633.1255447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDHsa-0002dP-Hd; Tue, 19 Nov 2024 06:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839633.1255447; Tue, 19 Nov 2024 06: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 1tDHsa-0002dI-De; Tue, 19 Nov 2024 06:38:28 +0000
Received: by outflank-mailman (input) for mailman id 839633;
 Tue, 19 Nov 2024 01:44: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=pY/z=SO=gmail.com=zhangwarden@srs-se1.protection.inumbo.net>)
 id 1tDDHu-0005ZD-SX
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 01:44:18 +0000
Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com
 [2607:f8b0:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c79a7b43-a617-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 02:44:14 +0100 (CET)
Received: by mail-pl1-x633.google.com with SMTP id
 d9443c01a7336-2124a86f4cbso3222675ad.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 17:44:15 -0800 (PST)
Received: from smtpclient.apple ([198.11.178.15])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-211d0f6182bsm62977715ad.277.2024.11.18.17.43.45
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Nov 2024 17:44: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: c79a7b43-a617-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1wbDEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM3OWE3YjQzLWE2MTctMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMxOTgwNjU0LjUzNzI4OSwic2VuZGVyIjoiemhhbmd3YXJkZW5AZ21haWwuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1731980653; x=1732585453; darn=lists.xenproject.org;
        h=to:references:message-id:content-transfer-encoding:cc:date
         :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6TLGZPhgwiSdTuoKO9EIOhX+7x+wgHfPfCEdlENWql4=;
        b=ST8Vj4Ey1F4XEySl+itDus9NPpYFo7v/T75sPhWggZT6Nx2OK1NXDnaWIyquej3fW1
         BQOkLmSYgaWcyBSv1WTEpeS0AnuUmh5+Y79M8qISUoTAYrirsrhJE1f9u16EnGylVpGV
         h9GixNtZojhf0iGdSia8qF86YGuCERa2HorZx33MmE0xiH+B3iUld1fHgIqVrYu/Ae4s
         kZYG3gp/57fAAnI7okLPcBeyYKYQ8WAHXrm+RjdCMnbyqb36sAMANnicJPkTs/7XvV4h
         OpsmELx0b1n66QCLyiw5bBoME/Fz2ZNUkH/PKpaQJ77mxM0epGihGixMDAeUIczv1Yww
         9cNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1731980653; x=1732585453;
        h=to:references:message-id:content-transfer-encoding:cc:date
         :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6TLGZPhgwiSdTuoKO9EIOhX+7x+wgHfPfCEdlENWql4=;
        b=m0tay3nI4Luy1S3ht+p+xLg9/sDsz0lVbWqiDRkidibD/YT7zd5tv6SRGm2XCJcCVL
         IQwms1H1FUkx5kew7mOzQptaYdxUIYjswCwHQt9nPP9qKg14YzwFqkZ50es8neO1Z3Qu
         QYxiInfkm4cu9la6oON+5VqSvY0zPx0tLD8Y8TZLlQQs9bydLY2m4KmE5uvvlGVuQr1V
         IVULvb0n61XMRrPVUeDLPAp//WiW4YdQTMqDjK5QVm62FH/MYY6xxfhWbddVoLkg/+yg
         2JnyefT08EEv4kd2n7fN00FfHqePRRqLiGSV/aDTuYS4PqQenbYB0KP/9hVGsTe068vj
         ASYQ==
X-Forwarded-Encrypted: i=1; AJvYcCXIdV0RTg4rQps1OUO+/HkaHCZw0pcsjY3SAV+ykQ1tYQ5usETL8r6MkPLEW7xHNG+JhkIAoS3Fob0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6ldLnJJIZ4eaFDqyXgpnMZeYDijZnYDpY5ChxRgUdJbpMdN09
	O8AXAcMONbObPTNI791kaoj6hsTDyZqqHLFoouxmFF2nTqMy7nvz
X-Google-Smtp-Source: AGHT+IGKOuuVyAvdbfIttKIxJSv7PNCbNBMgaHYEIodVhJO4YNPmnFai9XI15Qs6QZqqMPXdK5RTjA==
X-Received: by 2002:a17:903:186:b0:212:46c2:632e with SMTP id d9443c01a7336-21246c26707mr25423135ad.15.1731980653295;
        Mon, 18 Nov 2024 17:44:13 -0800 (PST)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Subject: Re: [PATCH v2 19/21] livepatch: Convert timeouts to secs_to_jiffies()
From: zhang warden <zhangwarden@gmail.com>
In-Reply-To: <96f3b51b-c28c-4ea8-b61e-a4982196215f@linux.microsoft.com>
Date: Tue, 19 Nov 2024 09:43:32 +0800
Cc: Petr Mladek <pmladek@suse.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Pablo Neira Ayuso <pablo@netfilter.org>,
 Jozsef Kadlecsik <kadlec@netfilter.org>,
 "David S. Miller" <davem@davemloft.net>,
 Eric Dumazet <edumazet@google.com>,
 Jakub Kicinski <kuba@kernel.org>,
 Paolo Abeni <pabeni@redhat.com>,
 Simon Horman <horms@kernel.org>,
 Julia Lawall <Julia.Lawall@inria.fr>,
 Nicolas Palix <nicolas.palix@imag.fr>,
 Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>,
 Russell King <linux@armlinux.org.uk>,
 Heiko Carstens <hca@linux.ibm.com>,
 Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>,
 Ofir Bitton <obitton@habana.ai>,
 Oded Gabbay <ogabbay@kernel.org>,
 Lucas De Marchi <lucas.demarchi@intel.com>,
 =?utf-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@intel.com>,
 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
 Maxime Ripard <mripard@kernel.org>,
 Thomas Zimmermann <tzimmermann@suse.de>,
 David Airlie <airlied@gmail.com>,
 Simona Vetter <simona@ffwll.ch>,
 Jeroen de Borst <jeroendb@google.com>,
 Praveen Kaligineedi <pkaligineedi@google.com>,
 Shailend Chand <shailend@google.com>,
 Andrew Lunn <andrew+netdev@lunn.ch>,
 James Smart <james.smart@broadcom.com>,
 Dick Kennedy <dick.kennedy@broadcom.com>,
 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
 "Martin K. Petersen" <martin.petersen@oracle.com>,
 =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jens Axboe <axboe@kernel.dk>,
 Kalle Valo <kvalo@kernel.org>,
 Jeff Johnson <jjohnson@kernel.org>,
 Catalin Marinas <catalin.marinas@arm.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Jack Wang <jinpu.wang@cloud.ionos.com>,
 Marcel Holtmann <marcel@holtmann.org>,
 Johan Hedberg <johan.hedberg@gmail.com>,
 Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Florian Fainelli <florian.fainelli@broadcom.com>,
 Ray Jui <rjui@broadcom.com>,
 Scott Branden <sbranden@broadcom.com>,
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
 Xiubo Li <xiubli@redhat.com>,
 Ilya Dryomov <idryomov@gmail.com>,
 Josh Poimboeuf <jpoimboe@kernel.org>,
 Jiri Kosina <jikos@kernel.org>,
 Miroslav Benes <mbenes@suse.cz>,
 Joe Lawrence <joe.lawrence@redhat.com>,
 Jaroslav Kysela <perex@perex.cz>,
 Takashi Iwai <tiwai@suse.com>,
 Lucas Stach <l.stach@pengutronix.de>,
 Russell King <linux+etnaviv@armlinux.org.uk>,
 Christian Gmeiner <christian.gmeiner@gmail.com>,
 Louis Peens <louis.peens@corigine.com>,
 Michael Ellerman <mpe@ellerman.id.au>,
 Nicholas Piggin <npiggin@gmail.com>,
 Naveen N Rao <naveen@kernel.org>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 netfilter-devel@vger.kernel.org,
 coreteam@netfilter.org,
 netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org,
 cocci@inria.fr,
 linux-arm-kernel@lists.infradead.org,
 linux-s390@vger.kernel.org,
 dri-devel@lists.freedesktop.org,
 intel-xe@lists.freedesktop.org,
 linux-scsi@vger.kernel.org,
 xen-devel@lists.xenproject.org,
 linux-block@vger.kernel.org,
 linux-wireless@vger.kernel.org,
 ath11k@lists.infradead.org,
 linux-mm@kvack.org,
 linux-bluetooth@vger.kernel.org,
 linux-staging@lists.linux.dev,
 linux-rpi-kernel@lists.infradead.org,
 ceph-devel@vger.kernel.org,
 live-patching@vger.kernel.org,
 linux-sound@vger.kernel.org,
 etnaviv@lists.freedesktop.org,
 oss-drivers@corigine.com,
 linuxppc-dev@lists.ozlabs.org,
 Anna-Maria Behnsen <anna-maria@linutronix.de>
Content-Transfer-Encoding: quoted-printable
Message-Id: <99755FD2-270C-4122-8A22-6C73A81028F6@gmail.com>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com>
 <718febc4-59ee-4701-ad62-8b7a8fa7a910@csgroup.eu>
 <Zzsfuuv3AVomkMxn@pathway.suse.cz>
 <96f3b51b-c28c-4ea8-b61e-a4982196215f@linux.microsoft.com>
To: Easwar Hariharan <eahariha@linux.microsoft.com>
X-Mailer: Apple Mail (2.3774.500.171.1.1)



> On Nov 19, 2024, at 02:18, Easwar Hariharan =
<eahariha@linux.microsoft.com> wrote:
>=20
> On 11/18/2024 3:06 AM, Petr Mladek wrote:
>> On Sat 2024-11-16 11:10:52, Christophe Leroy wrote:
>>>=20
>>>=20
>>> Le 15/11/2024 =C3=A0 22:26, Easwar Hariharan a =C3=A9crit :
>>>> [Vous ne recevez pas souvent de courriers de =
eahariha@linux.microsoft.com. D=C3=A9couvrez pourquoi ceci est important =
=C3=A0 https://aka.ms/LearnAboutSenderIdentification ]
>>>>=20
>>>> Changes made with the following Coccinelle rules:
>>>>=20
>>>> @@ constant C; @@
>>>>=20
>>>> - msecs_to_jiffies(C * 1000)
>>>> + secs_to_jiffies(C)
>>>>=20
>>>> @@ constant C; @@
>>>>=20
>>>> - msecs_to_jiffies(C * MSEC_PER_SEC)
>>>> + secs_to_jiffies(C)
>>>>=20
>>>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
>>>> ---
>>>>  samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
>>>>  samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
>>>>  samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
>>>>  3 files changed, 7 insertions(+), 7 deletions(-)
>>>>=20
>>>> diff --git a/samples/livepatch/livepatch-callbacks-busymod.c =
b/samples/livepatch/livepatch-callbacks-busymod.c
>>>> index =
378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993b=
adcc9aba 100644
>>>> --- a/samples/livepatch/livepatch-callbacks-busymod.c
>>>> +++ b/samples/livepatch/livepatch-callbacks-busymod.c
>>>> @@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
>>>>  {
>>>>         pr_info("%s\n", __func__);
>>>>         schedule_delayed_work(&work,
>>>> -               msecs_to_jiffies(1000 * 0));
>>>> +               secs_to_jiffies(0));
>>>=20
>>> Using secs_to_jiffies() is pointless, 0 is universal, should become
>>> schedule_delayed_work(&work, 0);
>>=20
>> Yes, schedule_delayed_work(&work, 0) looks like the right solution.
>>=20
>> Or even better, it seems that the delayed work might get replaced by
>> a normal workqueue work.
>>=20
>> Anyway, I am working on a patchset which would remove this sample
>> module. There is no need to put much effort into the clean up
>> of this particular module. Do whatever is easiest for you.
>>=20
>> Best Regards,
>> Petr
>=20
> If we're removing the module, I'll drop it from the series. Just to
> clarify, do you mean to remove all of samples/livepatch/* or some
> particular file(s)?
>=20
> Thanks,
> Easwar
>=20

Hi Easwar!

I think Petr is going to remove just this module away. Anyway, I don't =
think
removing all of them is a good idea.

Thanks.
Wardenjohn.=20



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 07:32:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 07:32:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839675.1255457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDIiG-0003mO-BI; Tue, 19 Nov 2024 07:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839675.1255457; Tue, 19 Nov 2024 07:31: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 1tDIiG-0003mH-7l; Tue, 19 Nov 2024 07:31:52 +0000
Received: by outflank-mailman (input) for mailman id 839675;
 Tue, 19 Nov 2024 07:31: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=rCfT=SO=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tDIiF-0003mB-AZ
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 07:31:51 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2417::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 542bb07b-a648-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 08:31:46 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB6693.namprd12.prod.outlook.com (2603:10b6:510:1b0::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Tue, 19 Nov
 2024 07:31:42 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.023; Tue, 19 Nov 2024
 07:31: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: 542bb07b-a648-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjBkIiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU0MmJiMDdiLWE2NDgtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDAxNTA2LjY1MjMyMSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FA6MuFHE2YU7ziAd7OjoY91K0yNQ7s7BLrn65IEhtUecOyD7Jngsjio2JtgG22tjjid+Aa06bgrW9VFuaX4f0lHQW0O1QWwXl49sWbLVoYYrXTGRbg6yWJx6nwad+cEB/69TwY1a6fQjohUvvFjbT4k7+gYPM9PUCwI5XmlfLYfkxOH7Ri0XqjtVZ5UxGNtM00Y+gK0nhmValbbQjCBBL3pxEy0rZchSO3OHWgp+s2XrvKOGkz5+6/oOd41BiUMdrAIvVWJI6kli0if2iUTp4V7iT/MlC3SUmDMJHCw3Y8d8JVEW0Zuul65w5Pj79XY0S8ruVwKwru799gAUoQ8bCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pEITLgkfwnkF28SbCxEhpAYu6aXOOcz5jQESveJqI+s=;
 b=eFwGSpUJYgv4AcVOuMFJz5sdb9te4M5zPs8JhyG9k2EyTPpqXx1YziJsnmP9ehBIqPUDsxunQI9YVbSjwshuXZ3/9Fhul+ioZ7dKiOlrGUTkzqY27n12bFOPMT+O08sIxM//SOaUGJc4Jrcl3bYHCveema22z6za0WCG930kvMUDO1BazrFQYyOuISKQ+6JX5vqxS4jOxu1zRc1IdO9tORZSDuzJqbb4+HKjyMzhxNpoB18Vmwx4EcuPMymUd9g5ioSc4mP1NoHmfAo+CR1KejrjnXs7M2AzHClJZhU2J7xdq1wncQeni/IT/FfWWeF9zqzLp6rTj/djT41VYwMZVQ==
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=pEITLgkfwnkF28SbCxEhpAYu6aXOOcz5jQESveJqI+s=;
 b=ZMmUxZ8yad32no6pITvjKmi3J5ZLP9MzvMuW4L4BrYlL3JxdDqN7O8qDGwcTEG9HxJLC322npmtMb/0UZroPlfnGdvx/rdyZpwJ2klXf2JB6hpa91P14A7iFHoUcQoCzRk409CFQYtIwjQ1ojbm76iNmc8aASkomscRRDNZBhA0=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index: AQHbNaIlMxf8mJcywkeNRFmHEai1qbK82tSAgAHkIwA=
Date: Tue, 19 Nov 2024 07:31:42 +0000
Message-ID:
 <BL1PR12MB5849F6F7A4E86E0209AB152AE7202@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzsUL3dnjl5x0-si@macbook>
In-Reply-To: <ZzsUL3dnjl5x0-si@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|PH7PR12MB6693:EE_
x-ms-office365-filtering-correlation-id: 7572dd84-1b61-423e-e0eb-08dd086c36bd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?aFZBQnVEaGJwbkRxekhXb21wdTFnM1lqaFI1R0RuYjZJdEZHNlhmc3F2bGIx?=
 =?utf-8?B?dWJkQXdlWEtpT3Fza2lPZ3FobUk3OUsra2Fnd09MR1E4ditnTzhpNkRuM1VP?=
 =?utf-8?B?dnFqRTNZQWJpdDVwTlBGZkVLQXdaRlRWeW0rU1N0WFhhcUVLKzhadU5QSXI4?=
 =?utf-8?B?OEdCQ2JuUHFucmtmdlE2eGtkd1pJNlNYRGhLN0JjT0FhbU1oR1VmanZMRUQy?=
 =?utf-8?B?T3dBanQxRzA0OVlxaEExc1dWKzkyWjBIalExcHBsaFlremJ1NjRQUlFKL2ZJ?=
 =?utf-8?B?cGVnaDBGNE9KQXgwRDI5RmtCQXR4aUhPZDFod3l6eDRIbjcrNkhuZWhvYlcr?=
 =?utf-8?B?RXNBV0k4NjhyV1BiQ1dpMm9NZ2RSVitoRlhqNHhvOW12bHh1emhXdmJtZVNO?=
 =?utf-8?B?U1FEc0Yrc3dVOC9XQVZqZzRyZmVNd0F5Y2lKekYyRVlZM1I3Qy9RSk1WdmV2?=
 =?utf-8?B?SWxFVTZRckxxSWY0Qmc2YTU3WXA3Zm40Mm0rSnBmWFBRcFRNdE8yZXR3aU0r?=
 =?utf-8?B?YytSYkUzTTVMZlVHeTBSSE40dG04RU92dW1KNEtBY3BudGxDeURiK0dLVzNu?=
 =?utf-8?B?QngrQW5GTFlLcHB6SmNrTWNIYXR4SWJma3QwNE52R0s2TlZxVVBoY1BSTVB4?=
 =?utf-8?B?a0tqSGZLZ08rdWtJK2ZZaDZyVEZjL1RlV1o4V2w4N2Uyc0VvU0svSTNpOWpH?=
 =?utf-8?B?Sy9wZ0RjTHNkcVJMd3dkbEt5MWVUUUgrdUVxTzgyeWEyTkZMNWhZOHBkN3VX?=
 =?utf-8?B?UWROOXhGUEJTcS9hYVVpMENCMGMwaUZxWjJpakc2czJ3cHlTdk5lbHI1M214?=
 =?utf-8?B?U0tlSGFjRFJvekNMT1FZczU1cHVmRnNicDJuWWVrcjFRWjFVcTFBQkk4QjdG?=
 =?utf-8?B?OCtFWnRyaWJUNVRZRUNZcXRFWFlzTExZQmV0aXptZUtuUnpQNGpWaWNCUGgy?=
 =?utf-8?B?QUdRMHB0YmErc2lJWjBRQzVMek5xbXBSa3FsNWtkMlUvMXVxT1M1aDV3NTR6?=
 =?utf-8?B?YXBIcDZzL2phR0NZUFMyeEk3TkJ5VlM4Sm9wYlRja1RGOHFJYkJXMktkQVJ6?=
 =?utf-8?B?UnMvVWxTYnkyYTNiVXI3RUdPMDlON2tpNnkyTlNIZnpmakJ6RGs5RmM1ZlZH?=
 =?utf-8?B?UnFuSmExSHo0RHhiZkdXNXU3RERKR2tjVGVKQjJHTnhsenJMMGtLV3Z6bnk0?=
 =?utf-8?B?V0U1WHVMd0J3eXRHbHNCb2tPQkVadU9TS2I3eXJPMHNRUXY2RFdEckExNEk3?=
 =?utf-8?B?djhMMExtc1lrNHZydHBkS0V2UFJ4Y0JWWjZCSDZuY0RiMnp1VHdwSXVJREZL?=
 =?utf-8?B?MjRuUktlSUt2M09kUEFJaDZ2eDVCNVRBZ0pKUzJPR29LNHl5aTI0L0JJdFAr?=
 =?utf-8?B?WlZzUnFsaXh0WnIyZDJOeGZJSHFzcU9mZkg0aW1tWTRCM0lZNlFpajRnelBT?=
 =?utf-8?B?QmRkVThpOHErcGl2L2toNUZvRER0K1BFVUw4WmxKTlp5MVd1VitPY2xzcXdl?=
 =?utf-8?B?MXJueDhYNGluc2loKzVEaG5rcW03c3ErTzRlbEM4NTJMYks5c2dMaS81ZzYx?=
 =?utf-8?B?QStNeTgvQlFiL3EwV1ZVZzNYbHRwTU5pb0U3VFBLRVRZY1J6RGxYZ1Q1dXhu?=
 =?utf-8?B?SGhydmFxa3ArRGdPSS9ZUnFWaEd2M2N4SjVJYksxWjZkcThodVUyR0c2WitJ?=
 =?utf-8?B?eGNtWGRxNUJITGVHWnQxYkdrWUczWkdvNHZhbHI4bmppWkpIWlBaVGdXUU1o?=
 =?utf-8?B?NUhCNXZuaVpJY05HWEFnQ1JPNVFTS1dWbzk3WHdYMjMyV05sUnoxWFR2QnVu?=
 =?utf-8?Q?7pRyLPB2yxWJxX5iepLpz7RxlF9z+kpkqceDE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YUxBY0lkZ3U5S3pHWjd3OTJraE1COUhoMXdOUUVTSldnWjdlQUF0UTFvQllV?=
 =?utf-8?B?MlJYalFWVUlaRkdqYXRmL0R1a1VURmVQc051ZEFPTkVzVEhZcHNNci9NcGEz?=
 =?utf-8?B?VEYreFZBYXVic05vSW8xRVZHeThuc1MyakF3ZWJCK3VYL0daT1FrRVdOd1kv?=
 =?utf-8?B?VHdZWXQ1K25Ea1BybDFnSU9EOVBONWxjUklGaHBlOUdvbVhVK1lDanRTSHY4?=
 =?utf-8?B?TWpMVERZNWs3d0plRFRaNy9qQTQvMXBmK2dHclIvQmdueVl3WTdaeXdyTUdL?=
 =?utf-8?B?bGR0Q0V0Y3c0dUl0YmwrWUNFVmJqQTBkbGpNbkFBcDZPMWJnempycEJUdkpk?=
 =?utf-8?B?YU1VSGhScG9wbERITU5ENU4wRUYwREp3Z3VXelN5Rk1xa3BackUvbWJkeTRX?=
 =?utf-8?B?Q2dnMUxRVGRwaWFWZjJodU12VURxK3poNmtlWUFBK3lDeWlSU005YnRhb1Ez?=
 =?utf-8?B?L2dzZlRueE1tKzd6RkhnTVB4bWxPMzYyUllpd0Rkb3V5Y3NKd3M4cFV5SXJ4?=
 =?utf-8?B?dTU5SVpYZVVSSjdISTVVODJTRDM5azZRUGNHVUlqZVliOXl2VlFsNWM2YzhW?=
 =?utf-8?B?dzJMakhBdE93c0VzelJ4WnVobC9kRmlERFNCcXlpL1d2OEd3NXlneVRGU21v?=
 =?utf-8?B?Q093c0VXd1FxRk0yY1ZoK28rZExIL1ZmRldwQVN6UElhWnB4SDYyOHhielMy?=
 =?utf-8?B?LzVVZ1pNSmdwb3dycXlWT3AxaXhkZk9INTd1STBUcEJWVWQ1ck51dktNUXpu?=
 =?utf-8?B?TTk5cTBFcmZNNEJuTWYwT1BOT3JpanVmdXZYZGhpWkxDSGUwZlBVdWluN2Iw?=
 =?utf-8?B?U2FCT0R6TkU4MytpVGZqeVNqazZXNUFZbjNZU2RXVzJ2cmlQWHNTTHkzUmpL?=
 =?utf-8?B?bFhBZktteExJU1VxQllrSlpDRlkrb0VkL1huak5HVGhFWWkyMk4wc1dwMGFC?=
 =?utf-8?B?K1BlUVN4dzc5RnB5Yk42OGJaQngrK2d4Mld4VTNUM3BhdVhQbGlacno5YVFa?=
 =?utf-8?B?NHVYNlFqSmxrb08rdk4wZWRxVVlGc0puMTBHOTdRbitSQmcyeXBtaFZyRDNE?=
 =?utf-8?B?ck5jWGZaWTBtWDNkTHBnU2YwT1drYXVibFd1dkhuR0txWlozckpHN3RQTk80?=
 =?utf-8?B?UjFTNGFOU256bnhvbDU4NGJtSE1iQW1NUnRsMDZacFVyclFYL1VqMTFBQWI1?=
 =?utf-8?B?NEkrczFnY2NFK3NDellRSTl3a3dIbEZ5eXFpaS93bnB6MHVaaXBnazJTUVBC?=
 =?utf-8?B?WWNDT3ljWnNWcGFvay8va0pLU0Y3VTE5THByUzFrVFdHTlZsQTZvdm51VVpw?=
 =?utf-8?B?UW92MTRKSG5FSHpOR0JWSVdKdmhqZmtZQXg2N1FpZ0JVaFBOZmZsaE1VN2pn?=
 =?utf-8?B?ZGxibGlIT3dKeWJMRmg2WGxJWGI2ek02MUpSa2RrNEVkVUdYZ2U3eWJZQ2Qz?=
 =?utf-8?B?ejk4VFVmUE9PVDhMcE1nRVJKL2theWV2ckhGQ2xZcW1VbUw3MXF6a0VDZnlp?=
 =?utf-8?B?SUtXODhjN3FBNlh2b3M2eHY4RlZMc3U4UlBLUnlZWEx0eVZTWU43VElRNFNY?=
 =?utf-8?B?VjI0STh5Nk1GREd1SkEwUGw3SDEyVmJ2bkY2cjFaNlpvY3ZPOFg4U2VLUm95?=
 =?utf-8?B?RlovQmlzSVZ2VDJYcFl6SUVuenArclk5c2ozRVRRa3dUVnVhR3VXWGZSaUN5?=
 =?utf-8?B?UzE4Ky81Nk5FMlgwRVJwUUtvVGVMRlhCYnhnSld1U3l1YndqMmw3cHplOEhN?=
 =?utf-8?B?S2lEQjVvRndacTZJNFNKOXJoUlRLeVpydlNmaklQa1NocEZ6aTFmd3FoVGN5?=
 =?utf-8?B?TXpLMndMVk9mUG1TZWplVmI5MmU2bXczamU0ZTdKZmMzbVVQNkZGdHV6M3BV?=
 =?utf-8?B?eDlKVEtpcUg2cVJVWmpDT3ROdzBTMWhadnRDdVc2YUhBby9KZTdiUnJybUgv?=
 =?utf-8?B?cVk4eHg0ekQwVHJseWtvRW9UTDU3Z2RMZmdvNWd1MDhQYXV0amxDZ1I4Vits?=
 =?utf-8?B?Rk50dHRvUTZYTThmbkxaYVRpTEIyWlVkbFFnYTRVcVpteS81ZjRoemxCOGRm?=
 =?utf-8?B?dXc0aTRRMXVUMUFUTVo5RWVuMGdBWnAvTkRkME1kKzdLWHlWZUo3cnRuYW5Q?=
 =?utf-8?Q?i01U=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <986D87410376AF47B9F431763B6653DB@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7572dd84-1b61-423e-e0eb-08dd086c36bd
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2024 07:31:42.4184
 (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: +bqzbiHsyywRHciAd5cVOwdPrgwCpLxDslPPA/R8A2Q9y0asUx7nRt8QlNgK9ZdxdvfBsKzm+6agA5dLlAnUsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6693

T24gMjAyNC8xMS8xOCAxODoxNywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBO
b3YgMTMsIDIwMjQgYXQgMDQ6MDA6MjdQTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBT
b21lIGRldmljZXMsIGxpa2UgZGlzY3JldGUgR1BVIG9mIGFtZCwgc3VwcG9ydCByZXNpemFibGUg
YmFyIGNhcGFiaWxpdHksDQo+PiBidXQgdnBjaSBvZiBYZW4gZG9lc24ndCBzdXBwb3J0IHRoaXMg
ZmVhdHVyZSwgc28gdGhleSBmYWlsIHRvIHJlc2l6ZSBiYXJzDQo+PiBhbmQgdGhlbiBjYXVzZSBw
cm9iaW5nIGZhaWx1cmUuDQo+Pg0KPj4gQWNjb3JkaW5nIHRvIFBDSWUgc3BlYywgZWFjaCBiYXIg
dGhhdCBzdXBwb3J0IHJlc2l6aW5nIGhhcyB0d28gcmVnaXN0ZXJzLA0KPj4gUENJX1JFQkFSX0NB
UCBhbmQgUENJX1JFQkFSX0NUUkwsIHNvIGFkZCB0aGVzZSB0d28gcmVnaXN0ZXJzIGFuZCB0aGVp
cg0KPj4gY29ycmVzcG9uZGluZyBoYW5kbGVyIGludG8gdnBjaS4NCj4+DQo+PiBQQ0lfUkVCQVJf
Q0FQIGlzIFJPLCBvbmx5IHByb3ZpZGUgcmVhZGluZy4NCj4+DQo+PiBQQ0lfUkVCQVJfQ1RSTCBv
bmx5IGhhcyBiYXIgc2l6ZSBpcyBSVywgc28gYWRkIHdyaXRlIGZ1bmN0aW9uIHRvIHN1cHBvcnQN
Cj4+IHNldHRpbmcgdGhlIG5ldyBzaXplLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBD
aGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4gLS0tDQo+PiAgeGVuL2RyaXZlcnMvdnBjaS9N
YWtlZmlsZSAgfCAgMiArLQ0KPj4gIHhlbi9kcml2ZXJzL3ZwY2kvcmViYXIuYyAgIHwgODkgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICB4ZW4vaW5jbHVkZS94ZW4v
cGNpX3JlZ3MuaCB8IDExICsrKysrDQo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9u
cygrKSwgMSBkZWxldGlvbigtKQ0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vZHJpdmVycy92
cGNpL3JlYmFyLmMNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmls
ZSBiL3hlbi9kcml2ZXJzL3ZwY2kvTWFrZWZpbGUNCj4+IGluZGV4IDFhMTQxM2I5M2U3Ni4uYTdj
OGEzMGE4OTU2IDEwMDY0NA0KPj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZQ0KPj4g
KysrIGIveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZQ0KPj4gQEAgLTEsMiArMSwyIEBADQo+PiAt
b2JqLXkgKz0gdnBjaS5vIGhlYWRlci5vDQo+PiArb2JqLXkgKz0gdnBjaS5vIGhlYWRlci5vIHJl
YmFyLm8NCj4+ICBvYmotJChDT05GSUdfSEFTX1BDSV9NU0kpICs9IG1zaS5vIG1zaXgubw0KPj4g
ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvcmViYXIuYyBiL3hlbi9kcml2ZXJzL3ZwY2kv
cmViYXIuYw0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAwMC4u
ODRkYmQ4NGIwNzQ1DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNp
L3JlYmFyLmMNCj4+IEBAIC0wLDAgKzEsODkgQEANCj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRp
ZmllcjogR1BMLTIuMCAqLw0KPiANCj4gVGhlIEdQTC0yLjAgaWRlbnRpZmllciBpcyBkZXByZWNh
dGVkLCBlaXRoZXIgdXNlIEdQTC0yLjAtb3ItbGF0ZXIgb3INCj4gR1BMLTIuMC1vbmx5Lg0KPiAN
Cj4+ICsvKg0KPj4gKyAqIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2Vz
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQo+PiArICoNCj4+ICsgKiBBdXRob3I6IEppcWlh
biBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4gKyAqLw0KPj4gKw0KPj4gKyNpbmNsdWRl
IDx4ZW4vaHlwZXJjYWxsLmg+DQo+PiArI2luY2x1ZGUgPHhlbi92cGNpLmg+DQo+PiArDQo+PiAr
LyoNCj4+ICsgKiBUaGUgbnVtYmVyIHZhbHVlIG9mIHRoZSBCQVIgU2l6ZSBpbiBQQ0lfUkVCQVJf
Q1RSTCByZWdpc3RlciByZXByZW50Og0KPj4gKyAqIDAgICAgMSBNQiAoMl4yMCBieXRlcykNCj4+
ICsgKiAxICAgIDIgTUIgKDJeMjEgYnl0ZXMpDQo+PiArICogMiAgICA0IE1CICgyXjIyIGJ5dGVz
KQ0KPj4gKyAqICAuLi4NCj4+ICsgKiA0MyAgIDggRUIgKDJeNjMgYnl0ZXMpDQo+PiArICovDQo+
PiArI2RlZmluZSBQQ0lfUkVCQVJfQ1RSTF9CQVJfVU5JVCAoMVVMTCA8PCAyMCkNCj4+ICsNCj4+
ICtzdGF0aWMgdm9pZCBjZl9jaGVjayByZWJhcl9jdHJsX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lf
ZGV2ICpwZGV2LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IHJlZywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnQzMl90IHZhbCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQgKmRhdGEpDQo+PiArew0KPj4gKyAgICB1aW50MzJfdCBjdHJsLCBpbmRleDsNCj4gDQo+
IGluZGV4IHNob3VsZCBiZXR0ZXIgYmUgdW5zaWduZWQgaW50LCBhcyBpdCdzIHRoZSBCQVIgaW5k
ZXggWzAsIDVdLCBhbmQNCj4gc28gZml0cyBwZXJmZWN0bHkgaW4gYW4gdW5zaWduZWQgaW50Lg0K
PiANCj4+ICsgICAgc3RydWN0IHZwY2lfYmFyICpiYXJzID0gcGRldi0+dnBjaS0+aGVhZGVyLmJh
cnM7DQo+IA0KPiBZb3UgY291bGQgcGFzcyBiYXJzIGFzIHRoZSBkYXRhIHBhcmFtZXRlci4NCj4g
DQo+IEFkZGl0aW9uYWxseSB5b3UgbmVlZCB0byBjaGVjayB0aGF0IG1lbW9yeSBkZWNvZGluZyBp
cyBub3QgZW5hYmxlZCBmb3INCj4gdGhlIGRldmljZSwgb3RoZXJ3aXNlIGF0dGVtcHRpbmcgdG8g
Y2hhbmdlIHRoZSBCQVIgc2l6ZSB3aWxsIGxlYWQgdG8NCj4gdGhlIGFjdGl2ZSBwMm0gbWFwcGlu
Z3MgZ2V0dGluZyBvdXQgb2Ygc3luYyB3LnIudC4gdGhlIG5ldyBCQVIgc2l6ZS4NCj4gDQo+PiAr
DQo+PiArICAgIGN0cmwgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgcmVnKTsNCj4+ICsg
ICAgaWYgKCBjdHJsID09IHZhbCApDQo+PiArICAgICAgICByZXR1cm47DQo+IA0KPiBJIHdvdWxk
IHN0aWxsIGNhcnJ5IG91dCB0aGUgd3JpdGUgaW4gdGhpcyBjYXNlLCBhcyB0aGF0J3Mgd2hhdCB0
aGUNCj4gb3duZXIgb2YgdGhlIGRldmljZSByZXF1ZXN0ZWQuDQo+IA0KPj4gKw0KPj4gKyAgICBj
dHJsICY9IH5QQ0lfUkVCQVJfQ1RSTF9CQVJfU0laRTsNCj4+ICsgICAgaWYgKCBjdHJsICE9ICgg
dmFsICYgflBDSV9SRUJBUl9DVFJMX0JBUl9TSVpFICkgKQ0KPiAgICAgICAgICAgICAgICAgICAg
ICBeIGV4dHJhIHNwYWNlIGhlcmUgYW5kICAgICAgICAgXiBoZXJlDQo+PiArICAgICAgICByZXR1
cm47DQo+IA0KPiBUaGUgZmVhdHVyZSBvbmx5IGJlaW5nIGV4cG9zZWQgdG8gZG9tMCBBVE0sIEkg
d291bGQgc3VnZ2VzdCB3ZSBhbGxvdw0KPiBpdCB0byB3cml0ZSBhbnkgYml0cyBpdCB3YW50cyBp
biB0aGUgY29udHJvbCByZWdpc3RlciwgYXMgdGhhdCB3b3VsZA0KPiBiZSB3aGF0IHRoZSBPUyB3
b3VsZCBkbyB3aGVuIG5vdCBydW5uaW5nIGFzIGEgZ3Vlc3QuDQpCdXQgb25seSBQQ0lfUkVCQVJf
Q1RSTF9CQVJfU0laRSBiaXRzIG9mIFJFQkFSX0NUUkwgcmVnaXN0ZXIgYXJlIFJXLCBvdGhlcnMg
YXJlIFJPLg0KSXMgcmVtb3ZpbmcgdGhlIGNoZWNrIGhlcmUgZmluZT8NCg0KPiANCj4+ICsNCj4+
ICsgICAgaW5kZXggPSBjdHJsICYgUENJX1JFQkFSX0NUUkxfQkFSX0lEWDsNCj4gDQo+IFNvbWUg
c2FuaXR5IGNoZWNraW5nIG9mIHRoZSBCQVIgaW5kZXggbWlnaHQgYmUgZ29vZC4gIEF0IGxlYXN0
IGEgY2hlY2sNCj4gdGhhdCB0aGUgQkFSIGlzIG9mIHR5cGUgVlBDSV9CQVJfTUVNNjRfTE8gb3Ig
VlBDSV9CQVJfTUVNMzIuDQpCdXQgdGhlIGluZm9ybWF0aW9uIG9mIHRoZSBCQVIgdGhhdCBzdXBw
b3J0IHJlc2l6aW5nIGlzIGZyb20gaGFyZHdhcmUod2hlbiBpbml0X3JlYmFyKSwgdGhhdCBzaG91
bGRuJ3QgaGF2ZSBhbnkgcHJvYmxlbXMgYW5kIGRvZXNuJ3QgbmVlZCB0byBjaGVjayB0aGUgQkFS
J3MgaW5mby4NCg0KPiANCj4+ICsgICAgYmFyc1tpbmRleF0uc2l6ZSA9ICgxIDw8ICgodmFsICYg
UENJX1JFQkFSX0NUUkxfQkFSX1NJWkUpID4+DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUENJX1JFQkFSX0NUUkxfQkFSX1NISUZUKSkgKg0KPj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgUENJX1JFQkFSX0NUUkxfQkFSX1VOSVQ7DQo+IA0KPiBUaGlzIHdvdWxkIGJldHRlciBi
ZSBhIG1hY3JvIGluIHBjaV9yZWdzLmggSSB0aGluaywgYW5kIHlvdSBuZWVkIHRvDQo+IHVzZSAx
VUwsIHBsdXMgdXNpbmcgTUFTS19FWFRSKCkgc2ltcGxpZmllcyBpdDoNCj4gDQo+IFBDSV9SRUJB
Ul9DVFJMX1NJWkUodikgKDFVTCA8PCAoTUFTS19FWFRSKHYsIFBDSV9SRUJBUl9DVFJMX0JBUl9T
SVpFKSArIDIwKSkNCk9LLCBhbm90aGVyIHF1ZXN0aW9uOiBTaG91bGQgSSBuZWVkIHRvIGNoZWNr
IHRoZSBzaXplIGlzIGFsbG93ZWQgYnkgaGFyZHdhcmUodGhlIFBDSV9SRUJBUl9DQVBfU0laRVMg
Yml0cyBpbiBQQ0lfUkVCQVJfQ0FQKT8NCg0KPiANCj4+ICsNCj4+ICsgICAgcGNpX2NvbmZfd3Jp
dGUzMihwZGV2LT5zYmRmLCByZWcsIHZhbCk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQg
Y2ZfY2hlY2sgaW5pdF9yZWJhcihzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICt7DQo+PiArICAg
IHVuc2lnbmVkIGludCByZWJhcl9vZmZzZXQ7DQo+PiArICAgIHVpbnQzMl90IGN0cmwsIG5iYXJz
Ow0KPiANCj4gbmJhcnMgY2FuIGJlIHVuc2lnbmVkIGludC4NCj4gDQo+PiArICAgIGludCByYyA9
IDA7DQo+PiArDQo+PiArICAgIHJlYmFyX29mZnNldCA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5
KHBkZXYtPnNiZGYsIFBDSV9FWFRfQ0FQX0lEX1JFQkFSKTsNCj4+ICsNCj4+ICsgICAgaWYgKCAh
cmViYXJfb2Zmc2V0ICkNCj4+ICsgICAgICAgIHJldHVybiByYzsNCj4gDQo+IEp1c3QgcmV0dXJu
IDAsIGl0J3MgY2xlYXJlciB0aGFuIGhhdmluZyB0byBmaWd1cmUgb3V0IHdoYXQgcmMgaXMgc2V0
DQo+IHRvLg0KPiANCj4+ICsNCj4+ICsgICAgY3RybCA9IHBjaV9jb25mX3JlYWQzMihwZGV2LT5z
YmRmLCByZWJhcl9vZmZzZXQgKyBQQ0lfUkVCQVJfQ1RSTCk7DQo+PiArICAgIG5iYXJzID0gKGN0
cmwgJiBQQ0lfUkVCQVJfQ1RSTF9OQkFSX01BU0spID4+IFBDSV9SRUJBUl9DVFJMX05CQVJfU0hJ
RlQ7DQo+IA0KPiBNQVNLX0VYVFIoY3RybCwgUENJX1JFQkFSX0NUUkxfTkJBUl9NQVNLKS4NCj4g
DQo+PiArDQo+PiArICAgIGZvciAoIGludCBpID0gMDsgaSA8IG5iYXJzOyBpKyssIHJlYmFyX29m
ZnNldCArPSA4ICkgew0KPiANCj4gdW5zaWduZWQgaW50LCBhbmQgZGVmaW5lZCBvdXRzaWRlIG9m
IHRoZSBsb29wLiAgQWxzbyBjb2Rpbmcgc3R5bGU6DQo+IGJyYWNlcyBuZWVkIHRvIGJlIG9uIGEg
bmV3bGluZS4NCj4gDQo+IFlvdSBjb3VsZCBldmVuIHJlZHVjZSB0aGUgc2NvcGUgb2YgcmMgYnkg
ZGVmaW5pbmcgaXQgaW5zaWRlIHRoZQ0KPiBsb29wLg0KPiANCj4+ICsgICAgICAgIHJjID0gdnBj
aV9hZGRfcmVnaXN0ZXIocGRldi0+dnBjaSwgdnBjaV9od19yZWFkMzIsIE5VTEwsDQo+PiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYmFyX29mZnNldCArIFBDSV9SRUJBUl9DQVAs
IDQsIE5VTEwpOw0KPiANCj4gSSdtIG5vdCBzdXJlIHdlIHdhbnQgdG8gbGltaXQgZG9tMCB3cml0
ZXMgdG8gdGhlIGNhcGFiaWxpdGllcw0KPiByZWdpc3RlcnMsIGFzIHNhaWQgYWJvdmUgZG9tMCBn
ZXRzIHVuZmlsdGVyZWQgYWNjZXNzIHRvIGFsbW9zdCBhbGwNCj4gcmVnaXN0ZXJzLCBzbyBpdCBj
YW4gZG8gd2hhdCBpdCB3b3VsZCBvdGhlcndpc2UgZG8gd2hlbiBydW5uaW5nIG9uDQo+IG5hdGl2
ZSBoYXJkd2FyZS4NCllvdSBtZWFuLCB0aGlzIHJlZ2lzdGVyKFBDSV9SRUJBUl9DQVApIGlzIG5v
dCBuZWVkZWQgdG8gYmUgYWRkZWQ/DQoNCj4gDQo+PiArICAgICAgICBpZiAoIHJjICkgew0KPj4g
KyAgICAgICAgICAgIHByaW50aygiJXM6ICVwcDogYWRkIHJlZ2lzdGVyIGZvciBQQ0lfUkVCQVJf
Q0FQIGZhaWxlZCAocmM9JWQpXG4iLA0KPj4gKyAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywg
JnBkZXYtPnNiZGYsIHJjKTsNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgICAgIH0N
Cj4+ICsNCj4+ICsgICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXIocGRldi0+dnBjaSwgdnBj
aV9od19yZWFkMzIsIHJlYmFyX2N0cmxfd3JpdGUsDQo+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlYmFyX29mZnNldCArIFBDSV9SRUJBUl9DVFJMLCA0LCBOVUxMKTsNCj4+ICsg
ICAgICAgIGlmICggcmMgKSB7DQo+PiArICAgICAgICAgICAgcHJpbnRrKCIlczogJXBwOiBhZGQg
cmVnaXN0ZXIgZm9yIFBDSV9SRUJBUl9DVFJMIGZhaWxlZCAocmM9JWQpXG4iLA0KPj4gKyAgICAg
ICAgICAgICAgICAgICBfX2Z1bmNfXywgJnBkZXYtPnNiZGYsIHJjKTsNCj4gDQo+IElNTyBJIHRo
aW5rIHlvdSBjYW4gZm9yZWdvIHByaW50aW5nIF9fZnVuY19fLCBhbmQganVzdCB1c2U6DQo+IA0K
PiAiJXBwOiBhZGQgcmVnaXN0ZXIgZm9yIFBDSV9SRUJBUl9DVFJMIGZhaWxlZDogJWRcbiINCj4g
DQo+PiArICAgICAgICAgICAgYnJlYWs7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ICsN
Cj4+ICsgICAgcmV0dXJuIHJjOw0KPj4gK30NCj4+ICtSRUdJU1RFUl9WUENJX0lOSVQoaW5pdF9y
ZWJhciwgVlBDSV9QUklPUklUWV9MT1cpOw0KPj4gKw0KPj4gKy8qDQo+PiArICogTG9jYWwgdmFy
aWFibGVzOg0KPj4gKyAqIG1vZGU6IEMNCj4+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiDQo+PiAr
ICogYy1iYXNpYy1vZmZzZXQ6IDQNCj4+ICsgKiB0YWItd2lkdGg6IDQNCj4+ICsgKiBpbmRlbnQt
dGFicy1tb2RlOiBuaWwNCj4+ICsgKiBFbmQ6DQo+PiArICovDQo+PiBkaWZmIC0tZ2l0IGEveGVu
L2luY2x1ZGUveGVuL3BjaV9yZWdzLmggYi94ZW4vaW5jbHVkZS94ZW4vcGNpX3JlZ3MuaA0KPj4g
aW5kZXggMjUwYmExMDZkYmQzLi41ZDJhYTEzMDkxNmUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vaW5j
bHVkZS94ZW4vcGNpX3JlZ3MuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmgN
Cj4+IEBAIC00NTksNiArNDU5LDcgQEANCj4+ICAjZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX0FSSQkx
NA0KPj4gICNkZWZpbmUgUENJX0VYVF9DQVBfSURfQVRTCTE1DQo+PiAgI2RlZmluZSBQQ0lfRVhU
X0NBUF9JRF9TUklPVgkxNg0KPj4gKyNkZWZpbmUgUENJX0VYVF9DQVBfSURfUkVCQVIJMjEJLyog
UmVzaXphYmxlIEJBUiAqLw0KPj4gIA0KPj4gIC8qIEFkdmFuY2VkIEVycm9yIFJlcG9ydGluZyAq
Lw0KPj4gICNkZWZpbmUgUENJX0VSUl9VTkNPUl9TVEFUVVMJNAkvKiBVbmNvcnJlY3RhYmxlIEVy
cm9yIFN0YXR1cyAqLw0KPj4gQEAgLTU0MSw2ICs1NDIsMTYgQEANCj4+ICAjZGVmaW5lICBQQ0lf
Vk5EUl9IRUFERVJfUkVWKHgpCSgoKHgpID4+IDE2KSAmIDB4ZikNCj4+ICAjZGVmaW5lICBQQ0lf
Vk5EUl9IRUFERVJfTEVOKHgpCSgoKHgpID4+IDIwKSAmIDB4ZmZmKQ0KPj4gIA0KPj4gKy8qIFJl
c2l6YWJsZSBCQVJzICovDQo+PiArI2RlZmluZSBQQ0lfUkVCQVJfQ0FQCQk0CS8qIGNhcGFiaWxp
dHkgcmVnaXN0ZXIgKi8NCj4+ICsjZGVmaW5lICBQQ0lfUkVCQVJfQ0FQX1NJWkVTCQkweDAwRkZG
RkYwICAvKiBzdXBwb3J0ZWQgQkFSIHNpemVzICovDQo+PiArI2RlZmluZSBQQ0lfUkVCQVJfQ1RS
TAkJOAkvKiBjb250cm9sIHJlZ2lzdGVyICovDQo+PiArI2RlZmluZSAgUENJX1JFQkFSX0NUUkxf
QkFSX0lEWAkJMHgwMDAwMDAwNyAgLyogQkFSIGluZGV4ICovDQo+PiArI2RlZmluZSAgUENJX1JF
QkFSX0NUUkxfTkJBUl9NQVNLCTB4MDAwMDAwRTAgIC8qICMgb2YgcmVzaXphYmxlIEJBUnMgKi8N
Cj4+ICsjZGVmaW5lICBQQ0lfUkVCQVJfQ1RSTF9OQkFSX1NISUZUCTUJICAgIC8qIHNoaWZ0IGZv
ciAjIG9mIEJBUnMgKi8NCj4+ICsjZGVmaW5lICBQQ0lfUkVCQVJfQ1RSTF9CQVJfU0laRQkweDAw
MDAxRjAwICAvKiBCQVIgc2l6ZSAqLw0KPj4gKyNkZWZpbmUgIFBDSV9SRUJBUl9DVFJMX0JBUl9T
SElGVAk4CSAgICAvKiBzaGlmdCBmb3IgQkFSIHNpemUgKi8NCj4gDQo+IElmIHlvdSB1c2UgTUFT
S19FWFRSKCkgdGhlcmUncyBubyBuZWVkIGZvciB0aGUgX1NISUZUIG1hY3JvcyBJIHRoaW5rPw0K
WWVzLCBhbmQgd2lsbCBjaGFuZ2UgcGF0Y2ggYWNjb3JkaW5nIHRvIHlvdXIgYWxsIGNvbW1lbnRz
IGluIG5leHQgdmVyc2lvbi4NClRoYW5rcyENCg0KPiANCj4gVGhhbmtzLCBSb2dlci4NCg0KLS0g
DQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 07:44:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 07:44:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839686.1255467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDIud-0005sY-Fq; Tue, 19 Nov 2024 07:44:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839686.1255467; Tue, 19 Nov 2024 07:44: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 1tDIud-0005sR-Co; Tue, 19 Nov 2024 07:44:39 +0000
Received: by outflank-mailman (input) for mailman id 839686;
 Tue, 19 Nov 2024 07:44: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDIub-0005sL-V0
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 07:44:37 +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 1ec692a4-a64a-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 08:44:34 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9e8522c10bso824966166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 23:44: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
 a640c23a62f3a-aa20df779afsm618477566b.85.2024.11.18.23.44.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 23:44: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: 1ec692a4-a64a-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFlYzY5MmE0LWE2NGEtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDAyMjc0LjczODk2MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732002274; x=1732607074; 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=//rhrJzDxAdJAfoAhHK6Qrpe797l4LIw9wGnWw3ZBjE=;
        b=VNQnisF7ddfbBnqlZxMYEHJpyLZaS7RFc/pmjzVNxGq+/pUwMCoqd2VM39jvjZ0Ne/
         oN5+m7Q+2vxi9m0f6LWwzPfSfq7orQjVbsimRqVViZ5RiXTvFq5CW7VUtDxV60uj13B4
         cYx5kqi3fLHD/Yiluipao4r3rr60yVTZ3k9p9oseQmQ0f2wWgdA4pjlL35CsCvy+YhGS
         kCWOzzaBDu1OyMV3NoBeD48HowCFSx60gXEoNCJq89//Ib6dlQXu1DWd1U4jyasKnI4C
         E48GdsqZIcnf6yiqzGG62KDOV/laFVzpldIbFOG/+93jKaMRuy7GS2feAkh7EAcd2v12
         j9Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732002274; x=1732607074;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=//rhrJzDxAdJAfoAhHK6Qrpe797l4LIw9wGnWw3ZBjE=;
        b=rBeWBpkajjLTmMbbqjlaD6F/HmOUz3Y7G6WG16swIKNg9QyRvOaRRt1pQo+DJ87Rto
         gCRRhGu+tyfrVq3XFK9Yr6OYY5PM5O9eOkGypE7jAxInWURxB94S6SR+afAcybQhJJxi
         VqRIv9B2jxMjgbizDhVB+wXkIPXRSBUY1qIK0qaFoJZLBGhS7eGimD2W6fwBFqFggjhH
         g6QsIJVjrpAQFaoOk3yvejgnrgCis8m1qA3SKpe/Omd0aUVo6eZ1N2bRGeo7BvHglq2l
         v29j9eLs53yPHshsPn1KekyqLl45N6dzXudM+tzIQ9WiiJdICMk0AWXX8pUuOWHeYIbY
         OB0w==
X-Gm-Message-State: AOJu0Yx5CCSlWdfW+a5l6xHpMPZhPO7QCE4eoI2KHL0K8Ad/3UpjV3Rh
	VrbCUtN8NozMN/6A/fpZ5TtbaOKYFXKaDw2YotjQx974MHqOmeOcpQB6ztF3BA==
X-Google-Smtp-Source: AGHT+IE4+KPcN6xUgq9aBmJH4YpzfCnvk/jebCIFeNGcqDVpYHlh9Ov7MkFtJ4/Po5dran9FgX8osw==
X-Received: by 2002:a17:907:8688:b0:a9a:babb:b916 with SMTP id a640c23a62f3a-aa4c7e473a6mr236378666b.15.1732002274231;
        Mon, 18 Nov 2024 23:44:34 -0800 (PST)
Message-ID: <5262adaf-2ff7-47ea-8c13-c544b31e4115@suse.com>
Date: Tue, 19 Nov 2024 08:44:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vpci: Add resizable bar support
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzsUL3dnjl5x0-si@macbook>
 <BL1PR12MB5849F6F7A4E86E0209AB152AE7202@BL1PR12MB5849.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: <BL1PR12MB5849F6F7A4E86E0209AB152AE7202@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.11.2024 08:31, Chen, Jiqian wrote:
> On 2024/11/18 18:17, Roger Pau MonnÃ© wrote:
>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
>>> +static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>> +                                      unsigned int reg,
>>> +                                      uint32_t val,
>>> +                                      void *data)
>>> +{
>>> +    uint32_t ctrl, index;
>>
>> index should better be unsigned int, as it's the BAR index [0, 5], and
>> so fits perfectly in an unsigned int.
>>
>>> +    struct vpci_bar *bars = pdev->vpci->header.bars;
>>
>> You could pass bars as the data parameter.
>>
>> Additionally you need to check that memory decoding is not enabled for
>> the device, otherwise attempting to change the BAR size will lead to
>> the active p2m mappings getting out of sync w.r.t. the new BAR size.
>>
>>> +
>>> +    ctrl = pci_conf_read32(pdev->sbdf, reg);
>>> +    if ( ctrl == val )
>>> +        return;
>>
>> I would still carry out the write in this case, as that's what the
>> owner of the device requested.
>>
>>> +
>>> +    ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
>>> +    if ( ctrl != ( val & ~PCI_REBAR_CTRL_BAR_SIZE ) )
>>                      ^ extra space here and         ^ here
>>> +        return;
>>
>> The feature only being exposed to dom0 ATM, I would suggest we allow
>> it to write any bits it wants in the control register, as that would
>> be what the OS would do when not running as a guest.
> But only PCI_REBAR_CTRL_BAR_SIZE bits of REBAR_CTRL register are RW, others are RO.
> Is removing the check here fine?

A native kernel would write the full register (with r/o bits simply not
getting updated). Hence for Dom0 we ought to do the same, just in case
e.g. some future spec declares some other bit(s) writable.

>>> +
>>> +    index = ctrl & PCI_REBAR_CTRL_BAR_IDX;
>>
>> Some sanity checking of the BAR index might be good.  At least a check
>> that the BAR is of type VPCI_BAR_MEM64_LO or VPCI_BAR_MEM32.
> But the information of the BAR that support resizing is from hardware(when init_rebar), that shouldn't have any problems and doesn't need to check the BAR's info.

Right, but also better to avoid confusing ourselves over bogus hardware.

>>> +    bars[index].size = (1 << ((val & PCI_REBAR_CTRL_BAR_SIZE) >>
>>> +                              PCI_REBAR_CTRL_BAR_SHIFT)) *
>>> +                       PCI_REBAR_CTRL_BAR_UNIT;
>>
>> This would better be a macro in pci_regs.h I think, and you need to
>> use 1UL, plus using MASK_EXTR() simplifies it:
>>
>> PCI_REBAR_CTRL_SIZE(v) (1UL << (MASK_EXTR(v, PCI_REBAR_CTRL_BAR_SIZE) + 20))
> OK, another question: Should I need to check the size is allowed by hardware(the PCI_REBAR_CAP_SIZES bits in PCI_REBAR_CAP)?

Probably better to do so, yes. Whether to reject bogus attempts or
merely warn about them I'm less certain: It's (see above) Dom0, after
all.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 07:48:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 07:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839694.1255476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDIyD-0006WA-UQ; Tue, 19 Nov 2024 07:48:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839694.1255476; Tue, 19 Nov 2024 07:48: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 1tDIyD-0006W3-Qv; Tue, 19 Nov 2024 07:48:21 +0000
Received: by outflank-mailman (input) for mailman id 839694;
 Tue, 19 Nov 2024 07:48: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=7fzo=SO=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1tDIyB-0006Vx-Vg
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 07:48:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2c5c434-a64a-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 08:48:16 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 6086E4EE0767;
 Tue, 19 Nov 2024 08:48:15 +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: a2c5c434-a64a-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImEyYzVjNDM0LWE2NGEtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDAyNDk2LjQ3MDE3NSwic2VuZGVyIjoibmljb2xhLnZldHJpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1732002495; bh=NdjPNS8D8kuzjV6xaom5t7PBbzwpAR3Obq6NtTaq7fI=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=BjEcRaSsm6v4qXX12xC7A6U/qDBQ8LV/kYHwLHzT+jQZ2VyiLGxjmMwvcXhS5wfXX
	 CfeUF4zqIFk+A5e34jKbBdL/6xKFiZrEl1MxSJOVsGDQad61p0wNllW+Mv/nNanPTY
	 +bXXwrCRsfteZ5HwLJiUHpCWqe1mb9N8oRBAzeipndAlEtZsJ/bYzZrSSmws2GhVH0
	 scQMIxVMvDOMtRIAmt/GYAw16V0DQ4WXgYBR3yj7smNatblg5ero5Oiiz+QnOcwtZg
	 /zj+xXnkLn9GFFV1Fh71PjJDGT6vdV3Y6BFOBIMym7+iOTOJ375GnxsUGYAxybtiJ+
	 /v/zZGdm55MlA==
MIME-Version: 1.0
Date: Tue, 19 Nov 2024 08:48:15 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, alessandro.zucchelli@bugseng.com,
 simone.ballarin@bugseng.com, consulting@bugseng.com, jbeulich@suse.com,
 andrew.cooper3@citrix.com, julien@xen.org, roger.pau@citrix.com,
 bertrand.marquis@arm.com, michal.orzel@amd.com
Subject: Re: [PATCH v2] misra: increase identifiers length to 63
In-Reply-To: <alpine.DEB.2.22.394.2411181552510.1160299@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2411181552510.1160299@ubuntu-linux-20-04-desktop>
Message-ID: <328beeb94e88b8736d0a062f9771a9ca@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 2024-11-19 00:54, Stefano Stabellini wrote:
> Currently the identifiers characters limit is arbitrarily set to 40. It
> causes a few violations as we have some identifiers longer than 40.
> 
> Increase the limit to another rather arbitrary limit of 63. Thanks to
> this change, we remove a few violations, getting us one step closer to
> marking Rules 5.2 and 5.4 as clean.
> 
> The ECLAIR configuration is already using 63, so this change matches
> the rules.rst documentation with the ECLAIR behavior.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> Changes in v2:
> - use 63 instead of 64
> - drop unneeded change to ECLAIR config
> 
>  docs/misra/rules.rst | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 4a144da8d6..3ed5801bff 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -154,7 +154,7 @@ maintainers if you want to suggest a change.
>     * - `Rule 5.1 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_01_2.c>`_
>       - Required
>       - External identifiers shall be distinct
> -     - The Xen characters limit for identifiers is 40. Public headers
> +     - The Xen characters limit for identifiers is 63. Public headers
>         (xen/include/public/) are allowed to retain longer identifiers
>         for backward compatibility.
> 
> @@ -162,7 +162,7 @@ maintainers if you want to suggest a change.
>       - Required
>       - Identifiers declared in the same scope and name space shall be
>         distinct
> -     - The Xen characters limit for identifiers is 40. Public headers
> +     - The Xen characters limit for identifiers is 63. Public headers
>         (xen/include/public/) are allowed to retain longer identifiers
>         for backward compatibility.
> 
> @@ -177,7 +177,7 @@ maintainers if you want to suggest a change.
>     * - `Rule 5.4 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_04.c>`_
>       - Required
>       - Macro identifiers shall be distinct
> -     - The Xen characters limit for macro identifiers is 40. Public
> +     - The Xen characters limit for macro identifiers is 63. Public
>         headers (xen/include/public/) are allowed to retain longer
>         identifiers for backward compatibility.

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 07:55:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 07:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839706.1255487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDJ5F-000095-JG; Tue, 19 Nov 2024 07:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839706.1255487; Tue, 19 Nov 2024 07:55: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 1tDJ5F-00008y-Gd; Tue, 19 Nov 2024 07:55:37 +0000
Received: by outflank-mailman (input) for mailman id 839706;
 Tue, 19 Nov 2024 07:55: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDJ5D-00008s-SB
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 07:55:35 +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 a6f5e734-a64b-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 08:55:32 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9a0ec0a94fso92815766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Nov 2024 23:55: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
 a640c23a62f3a-aa20e045385sm619665966b.144.2024.11.18.23.55.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Nov 2024 23:55: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: a6f5e734-a64b-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE2ZjVlNzM0LWE2NGItMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDAyOTMyLjcxMzgwNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732002932; x=1732607732; 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=qpsLiC6ANMQRocnay0VWZfiyMfcDEp5Cha3nTMuQC7w=;
        b=FKCCiK2zwGqfkNJ+BifSyT9mYMshYXqou8OVSaNE4U5BhSOQIrhZ7mwkDW70YeEskF
         5U/znnIwbMXQnEBXP+YwlA+UOzMUslo7FYmmEBeoVStt2ibydtKVMkYI15VK0/RYKupo
         4AGHt7OP4QafvBakpuIjWZlw5q/oxtO2mzCAUYGUngDmHoNwxqT3+il9ICZoVHJn33BL
         3vyy7aS8q4Z4t4dQWq+rZH7cG7LnzJjJWZ1H3tvtAYHzroFXze64bwEKuKgdgYnsHjMC
         MgYhve5h72MaFzI9izaqToXfVc1cVT7/RwyVkxME0POS5jz76MPIrVNr7vHPT+6qs+3S
         YDVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732002932; x=1732607732;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qpsLiC6ANMQRocnay0VWZfiyMfcDEp5Cha3nTMuQC7w=;
        b=cqOW3L55iFnp58cdGy4R/JbceUhw5cbuvWDG3w1ogFVfdhKMvOpvAJ9PA4s5U1WSQr
         YBUp6Ixfh7LT7F0lI9pwmDxCleo6K6c6yBLmZPcMDuLZiznU+q5lgV6fAy3baPdS0rzN
         nUHS9Ilv6MW+jvQbrdiDDyqdML0gnnQd+LA5XOSisI9Rp3I9pElQ3WAK1cbEOUoXPVIV
         bXKzXlRdQew8M0CYNvvfdTKFoE4DX10cEAOFJcbygw1r8FRCuEa8043ISESuXN5nZrEJ
         l+J0pM8Dg6w1W73kGyym2D/h1S3yW+FgAAVxz27i47Ww98z67S9ShusvFPGxCRAfGNHN
         RO7w==
X-Forwarded-Encrypted: i=1; AJvYcCXxBTmeEQL5h+DGMNGpn6RSjUbVclXIVt7C9eWhZLhM37099HWi9SJWLK/wfUbP/GlKSkrSm4umldQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxugaqo66pWBBiypdOjgzP3f6/VYrF+y9TU216BSeUDFefGgB12
	mznyBhtauJ8yJZuPZKyGo5bFM9JlrUL0/aLOmvgcVqIQxD8ahOkt76iYRqiL8Q==
X-Google-Smtp-Source: AGHT+IEdh4qo9N899do3ftIaE+E31kFMeWPaYJKf3RtvmInNt9JQk4lhyyH8/EiMGd39e3hZPZJgWw==
X-Received: by 2002:a17:907:31c2:b0:a9a:1f8:6c9b with SMTP id a640c23a62f3a-aa483525b04mr1152135766b.37.1732002932147;
        Mon, 18 Nov 2024 23:55:32 -0800 (PST)
Message-ID: <3c596fa9-4a2f-4148-9d41-b3b6e556c041@suse.com>
Date: Tue, 19 Nov 2024 08:55:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V4 07/15] x86/domain_page: Remove the fast paths when mfn
 is not in the directmap
To: Elias El Yandouzi <eliasely@amazon.com>
Cc: julien@xen.org, pdurrant@amazon.com, dwmw@amazon.com,
 Hongyan Xia <hongyxia@amazon.com>, Julien Grall <jgrall@amazon.com>,
 xen-devel@lists.xenproject.org
References: <20241111131148.52568-1-eliasely@amazon.com>
 <20241111131148.52568-8-eliasely@amazon.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: <20241111131148.52568-8-eliasely@amazon.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2024 14:11, Elias El Yandouzi wrote:
> From: Hongyan Xia <hongyxia@amazon.com>
> 
> When mfn is not in direct map, never use mfn_to_virt for any mappings.
> 
> We replace mfn_x(mfn) <= PFN_DOWN(__pa(HYPERVISOR_VIRT_END - 1)) with
> arch_mfns_in_direct_map(mfn, 1) because these two are equivalent. The
> extra comparison in arch_mfns_in_direct_map() looks different but because
> DIRECTMAP_VIRT_END is always higher, it does not make any difference.
> 
> Lastly, domain_page_map_to_mfn() needs to gain to a special case for
> the PMAP.
> 
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> Signed-off-by: Julien Grall <jgrall@amazon.com>
> 
> ----

Just to mention it (noticed while reading Alejandro's reply, and I didn't
check the rest of the series): This is lacking your S-o-b.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:12:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:12:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839718.1255496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDJLu-0004PB-38; Tue, 19 Nov 2024 08:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839718.1255496; Tue, 19 Nov 2024 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 1tDJLu-0004P3-0f; Tue, 19 Nov 2024 08:12:50 +0000
Received: by outflank-mailman (input) for mailman id 839718;
 Tue, 19 Nov 2024 08:12: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDJLt-0004Ox-8v
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:12:49 +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 0e569e6a-a64e-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 09:12:45 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9a6b4ca29bso593358066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 00:12: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
 a640c23a62f3a-aa20df52adasm620714866b.81.2024.11.19.00.12.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 00:12: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: 0e569e6a-a64e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBlNTY5ZTZhLWE2NGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDAzOTY1LjIwMDE5OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732003964; x=1732608764; 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=+7bXGfBZyvdIZPTmXb4+ST5abFWGGKww59gbl5MyekQ=;
        b=AgUs1Dfn91gKWrFVIwXE0tj+tPZ9LexlpXPufIUsSA7HsGGrYwudqmw/+kxzrFBByx
         IdmaveHvTZuYAc9Nn+bFOvzceaZomADuOXUI79BGg/6nm1TFcjK164QPUJ+nqjTAgyqR
         EOxnNCCCL0rArc8qEe1je4NBmFx0hwGKjuor2wlCDNiWcytFsiSu5lMBmLqhUVlxHnc0
         F4MWUaqOJVjDnsNZBsesbmf9f/wnzMAWcH94v3DL+c03AKso4HS6l+9J74/slSx44D79
         H1gM7inwWJMVxsTl1oo+6O1l/q1YVesvcIhG94AQ3gsRNvWnN16s8hevfOm9rB5XTLRz
         KlQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732003964; x=1732608764;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+7bXGfBZyvdIZPTmXb4+ST5abFWGGKww59gbl5MyekQ=;
        b=OLNiTcupNFNZX/ciZP7XKYVhw07pHWaz7ILfFsggSDrBBklS8UOoKQq0a527b/N42Q
         gZMFnifaNhUCHXTRVIz9A8L7FlhoFTlYR+md59NmjJxlwSfKWxrGg1+hN+VEXlt9JGBC
         8+Pj5ks1O38RHpyq269N7Kc6pQRZuKLWgVD3EUQBMsL/U4H8OKloAp37AZu7Sc7jawtD
         3zxMaJQe6ON6315pesmNz9K+7uD37/iB8dKj772YFnc4lPbXSdGoW6PIwQVZvZdWBe7Y
         glJubvApVHKFuJ6pLPhD1U0RjXgFW68vfRKd9su026NELCR2X7kymY+iFGWIZZvGJE+Y
         zX3g==
X-Gm-Message-State: AOJu0Yzug2NBXmvjV2oBVBgeQAPovubbcL77zHHquENb/gExsPftgBxr
	9q5ZdYnoHGgH+mV3VKPCO8uP1soleGxLi+mpGCCZgBrN23y3jYeK3l0Q25Xucw9Fhs6Pk+erThk
	=
X-Google-Smtp-Source: AGHT+IGfEobCDnR+0BVd+TV/EDYd/Jy+aAxF5dEjs6K9N2/qtzeAdIyQmomQ033PZeHDuVN4nKoNaA==
X-Received: by 2002:a17:907:981:b0:a99:f779:ae0c with SMTP id a640c23a62f3a-aa483450acbmr1482197966b.25.1732003964659;
        Tue, 19 Nov 2024 00:12:44 -0800 (PST)
Message-ID: <06b4f2c5-8470-4375-9311-c31921d7aaa8@suse.com>
Date: Tue, 19 Nov 2024 09:12:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH] x86/pmstat: deal with Misra 8.4 violations
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting@bugseng.com" <consulting@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@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: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While the override #define-s in x86_64/platform_hypercall.c are good for
the consuming side of the compat variants of set_{cx,px}_pminfo(), the
producers lack the respective declarations. Include pmstat.h early,
before the overrides are put in place, while adding explicit
declarations of the compat functions (alongside structure forward
declarations).

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/x86_64/platform_hypercall.c
+++ b/xen/arch/x86/x86_64/platform_hypercall.c
@@ -4,8 +4,8 @@
 
 EMIT_FILE;
 
-#include <xen/lib.h>
 #include <xen/hypercall.h>
+#include <xen/pmstat.h>
 
 #define xen_platform_op     compat_platform_op
 #define xen_platform_op_t   compat_platform_op_t
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -7,6 +7,12 @@
 
 int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf);
 long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
+#ifdef CONFIG_COMPAT
+struct compat_processor_performance;
+int compat_set_px_pminfo(uint32_t acpi_id, struct compat_processor_performance *perf);
+struct compat_processor_power;
+long compat_set_cx_pminfo(uint32_t acpi_id, struct compat_processor_power *power);
+#endif
 uint32_t pmstat_get_cx_nr(unsigned int cpu);
 int pmstat_get_cx_stat(unsigned int cpu, struct pm_cx_stat *stat);
 int pmstat_reset_cx_stat(unsigned int cpu);



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:14:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:14:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839725.1255507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDJNw-0004wT-FP; Tue, 19 Nov 2024 08:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839725.1255507; Tue, 19 Nov 2024 08:14: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 1tDJNw-0004wK-Ck; Tue, 19 Nov 2024 08:14:56 +0000
Received: by outflank-mailman (input) for mailman id 839725;
 Tue, 19 Nov 2024 08:14: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDJNv-0004wE-2T
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:14:55 +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 5a304f7a-a64e-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 09:14:52 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-aa4d257eb68so26300366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 00:14: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
 a640c23a62f3a-aa20df26d6fsm621423866b.17.2024.11.19.00.14.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 00:14: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: 5a304f7a-a64e-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVhMzA0ZjdhLWE2NGUtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDA0MDkyLjQyMjQ5OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732004092; x=1732608892; 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=xcYIf23G4cb8mxPzT+87GnPDfgP15dTrJ68QbgYfaf0=;
        b=gD59MagIefKd0/nIW/7uXyoyBYlORAjVcmfth+oPKxjKdvTOigc5XrTsl0W7IPoca4
         tRahoHrPq6BELXOSGHAM2P0Mf4q/PkdM30ftH3AEq/P62qQhirLoSkhabB3XwnTQ/zEv
         HKpdTZ8jDRGQO8eW5Pp1r1wTg4G7Y+5cJI3i9WinysL22YNc1YAbzDsI1sEwkmO2EBrj
         IWKmrDy0z1WNmEnvxXcAmgblNs25yJ6iNrt6zwIWou0adTjHN3fMPbnSq7dMEKrGqqxm
         XW6Q7yn/Oj/7TvlairAkzq/0MBeaZJ287Q+U1/QMWmyF6QGCoLbzx/aug28ZUgXNIJ9Z
         ja/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732004092; x=1732608892;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xcYIf23G4cb8mxPzT+87GnPDfgP15dTrJ68QbgYfaf0=;
        b=hc5Zx5MRYhieM8kTGU2RR7zlWBdqd4WN7+YN4y+JVCcCQe7P/q53vQe5fqDBFhdvze
         mG+R9ZAz+lCUbyE5zKBw0Mgqtnv+PtRrkwpqRS8Faf7EJP+dfuV+bVgCZ/MeuLJt3XoP
         IC7jAmo3ZiUUfsBF4mfXQdQMo6ZV40bXoKhQNURqD+BrOKxCZy2BQikZ4KjTAzAPhRHm
         VHBXCi2u3RO5oXShfXrMstzlVDsaEKaN9G9pwhu5hfRX0wuV2QkYVHCH3fj0LbAxEPyj
         tDWkI8trqJaPw/ACArcltq7XMkIMcdvteoUk/xIVsM5sKQoG6CCe3nmSKyxx8WmfaEj6
         f6uQ==
X-Forwarded-Encrypted: i=1; AJvYcCUy8ubGNsVqfirL6XPSj5EO5tM7nSPDa1NwEoLB4tAYFJPfU7fLM16ouBoyMMvtkMnhFUibbIO4SGQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqWX93heT4PP/VNH3pWQuKkz8dh3SqrtHneA7oLX733/Y7v/k7
	mHdOabLzkG/qaVSPpQA+BFSoVh7+QB5rCIl0WG4h5J6QhfhcEU4JAasVxq9n5A==
X-Google-Smtp-Source: AGHT+IG65ICmRaXIQuU27gi12rtbyg1WH5ubHt1v4ybk2t+BqT1TSF1/UcLkBrTK+SK4m51JzW1A3w==
X-Received: by 2002:a17:907:2684:b0:a9a:170d:67b2 with SMTP id a640c23a62f3a-aa4c7e99ba2mr217616766b.29.1732004091906;
        Tue, 19 Nov 2024 00:14:51 -0800 (PST)
Message-ID: <dda211e2-0fb3-4750-a5bb-64f4cc77536b@suse.com>
Date: Tue, 19 Nov 2024 09:14:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] misra: increase identifiers length to 63
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: alessandro.zucchelli@bugseng.com, simone.ballarin@bugseng.com,
 consulting@bugseng.com, andrew.cooper3@citrix.com, julien@xen.org,
 roger.pau@citrix.com, bertrand.marquis@arm.com, michal.orzel@amd.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2411181552510.1160299@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.2411181552510.1160299@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 00:54, Stefano Stabellini wrote:
> Currently the identifiers characters limit is arbitrarily set to 40. It
> causes a few violations as we have some identifiers longer than 40.
> 
> Increase the limit to another rather arbitrary limit of 63. Thanks to
> this change, we remove a few violations, getting us one step closer to
> marking Rules 5.2 and 5.4 as clean.
> 
> The ECLAIR configuration is already using 63, so this change matches
> the rules.rst documentation with the ECLAIR behavior.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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

I wonder though if the subject wouldn't better express that right now
Eclair config and doc are out of sync. E.g. "align doc with Eclair
config for ..."

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:19:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839736.1255516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDJSV-0005fD-3e; Tue, 19 Nov 2024 08:19:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839736.1255516; Tue, 19 Nov 2024 08:19: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 1tDJSV-0005f6-15; Tue, 19 Nov 2024 08:19:39 +0000
Received: by outflank-mailman (input) for mailman id 839736;
 Tue, 19 Nov 2024 08:19: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDJSU-0005eY-1I
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:19:38 +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 02bdd818-a64f-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 09:19:35 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3822ba3cdbcso2505728f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 00:19: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-3823ef846a5sm7761042f8f.102.2024.11.19.00.19.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 00:19: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: 02bdd818-a64f-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAyYmRkODE4LWE2NGYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDA0Mzc1LjIzMzYwMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732004374; x=1732609174; 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=RBsY1TbxZuvaiB0t8n7d6lGWnHlwuOOKyEZpoz0jQyo=;
        b=Z/32KrSzFcN+aX5NPoeXHEgPKN8k0QXuXmuUposO04J8ZrnAl4b4Wap8Fgyn4of58v
         OmgK9/9b/KbdKPQ0k7RlqZAzYsQLFQ8mfI+Wd1VKopqJJqfnKhHZkkt5RMhoHyKfc+iT
         ojXTRXBgnGPWyd4fEzDxMkQ8Ji8nAzeNicNZLt4jyrLZINzpAnqV6v8RaDmvZMjugZKw
         8QD0Q41eRM/PxhJIKBbxtyBa5OGDy4crqN8GIodf7yvnkx4zQ7dBeSMIkbC1BbDh37Ap
         +ENQ4K6E4r9NcsGmhnNLqMl8y85mO+e44qFwRT7+Zc/sMQ8ZpuU6NeWv12ISUzBXjQMz
         UFlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732004374; x=1732609174;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RBsY1TbxZuvaiB0t8n7d6lGWnHlwuOOKyEZpoz0jQyo=;
        b=YTfYT1lmC3GCP0yl+42xa3FQWDnNKmGNBqkbth8ckbie9fQtwooHfNVQ1shKwpyzMa
         mfbN6z5DdmRMAiCCjBB5y3FyaSqZJe1wUmokI6zG2yzTeLHH/lvXtWkNDi7POLSKir7B
         QJ9eibLyNwBjYfSf1rwfTznqs5edevDvELCvrqwrL4/LVAcac31+eXbMVAu2tqhnpxlO
         3pWcdoC6Oc3x3XOeZ/NXxAGr95kvOvZZ4JAV/n0AOTQIAb7leNXi4Pw96wzLXmsOdFsx
         evW1wX5eK288127MkH8eIigsDia1PAR96WsBAUFR+6CDH5MbXDTCr8PQLhg+sqqfkQia
         No7g==
X-Forwarded-Encrypted: i=1; AJvYcCWTD4OId5fmhtS2mSnOx1VkdBnTEGLB154uocMyeRWwjogKLTv6h8h1arvyFzMtPAznYIFQNGS/ISw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzaXVKKFlLM3mBV46ljXDET3DLfsTBdKf70ackcCVLAiUsjVD10
	D4tVCR5OX4khrLws4jkkkgkPu7J1BFm25W/aGoXd588ew+Xo/enrDHk/iKMpYw==
X-Google-Smtp-Source: AGHT+IGPug8mFXyz0bm8HSCDTLGQlBsdxbji7I2BX0/PgnxRZVT0SuYwqnJiRTMJdnimgLBjoRADlA==
X-Received: by 2002:a5d:584b:0:b0:37d:4870:dedf with SMTP id ffacd0b85a97d-3822590f2c3mr10247718f8f.19.1732004374558;
        Tue, 19 Nov 2024 00:19:34 -0800 (PST)
Message-ID: <88c486f9-c2f1-44ed-a415-1a1dc3f156b4@suse.com>
Date: Tue, 19 Nov 2024 09:19:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Introduce boot-helpers.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241118171809.2447714-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: <20241118171809.2447714-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 18:18, Andrew Cooper wrote:
> Eclair complains that neither reloc_trampoline{32,64}() can see their
> declarations.
> 
> reloc_trampoline32() needs to become asmlinkage, while reloc_trampoline64()
> needs declaring properly in a way that both efi-boot.h and reloc-trampoline.c
> can see.
> 
> Introduce boot-helpers.h for the purpose.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- /dev/null
> +++ b/xen/arch/x86/include/asm/boot-helpers.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Declarations for helper functions compiled for both 32bit and 64bit.
> + *
> + * The 32bit forms are called only from assembly, so no declaration is provide
> + * here.
> + */

How certain are you/we that what is said in the 2nd paragraph will remain
as a pattern?

Also, nit: s/provide/provided/?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:53:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:53:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839748.1255526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDJyn-0004SC-H7; Tue, 19 Nov 2024 08:53:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839748.1255526; Tue, 19 Nov 2024 08: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 1tDJyn-0004S5-EZ; Tue, 19 Nov 2024 08:53:01 +0000
Received: by outflank-mailman (input) for mailman id 839748;
 Tue, 19 Nov 2024 08:53: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=ULdz=SO=suse.com=pmladek@srs-se1.protection.inumbo.net>)
 id 1tDJym-0004Rz-Cm
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:53:00 +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 ab0c0e1f-a653-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 09:52:55 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43168d9c6c9so5644745e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 00:52:55 -0800 (PST)
Received: from pathway.suse.cz ([176.114.240.50])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3824a8109a7sm3705943f8f.104.2024.11.19.00.52.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 00:52: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: ab0c0e1f-a653-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFiMGMwZTFmLWE2NTMtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDA2Mzc1LjU5ODU2NCwic2VuZGVyIjoicG1sYWRla0BzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732006375; x=1732611175; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=qaBG3Z7R9DOuiOybc185RSD4M8rIPEBBhrkZgjFmOxU=;
        b=EcXXDSSAMbOvvbP0jHn20k1oHp0OZR1pOF1riOyFVmNjlTF1WJ/yd0jQHGKJb0WpTE
         7ywgztr6deXbHJ3f2gunz5bFOtc/x9nLQHPhWd5QyPWMGz6jvFEnxhGh5RGr0h8usN9M
         Z5BD28GwQ4qhIvZxovTr3fehzBtV7XYHE8Ikm+XmnfsKoVgWUhAFbk5CSQcbNMapoX2Q
         8oNrQfyejtUuvAJ6u/Ad1ThjRrA7km7WdqYz5vRkAnO3J9U/Fb2wuuiwPboIjBYHthc/
         YKoX8DCf2MShegC51qWCB8pSPAT4NvaDiFO+2cdpP4GRWn/gDA5WZ62nBB2vi2yo1fd0
         GPlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732006375; x=1732611175;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=qaBG3Z7R9DOuiOybc185RSD4M8rIPEBBhrkZgjFmOxU=;
        b=R3tfrEsLyc4Tfi5jTwwFv/CrA4GY87xOz7jAUEUbbQaTe0PwB48qBuxiUGywr8xV0y
         goWwzn33IjMo1nEGbR8IkRQ3ncp7Nu4tCufixffrY8WGLCoxAVBQKONhYacrd12Dc6M0
         3xwNAXKs2SwKSln5BZWca+fiPQNY36B+/rBvZ/HJpCJEnlWrjFCcduTAXfqtP8RJHeso
         sSoIErOj4WpXTYiUr/8XBoDftWOHoC85lp/CRiwxKqaO4Ah85ePj3yXwYGPngO+t8nwi
         b8yMvSreUPJl64slFaBonnOydbIywT1axZVuQIzkp4GCGdrhJEtJYFxrjtfyERgfrGr4
         ff6w==
X-Forwarded-Encrypted: i=1; AJvYcCVe5kLOF1LzOnmdVTilz88Emi+SS59pbFhwUWIxu50VGOZaAYb+WPMCnDTXcxJYs20qd552UR6oxRc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDdZzK8FNYbwxfHgz7ZtJDTnIeEGOfI4QnFEooEafl8+fo/Syt
	o8H2sgo5/D0LSGDYSIwRCxeaMoR70a82XNsHsY1TOx39xkyQBNJTQ5lyOkpQlWg=
X-Google-Smtp-Source: AGHT+IHrqP9nC2rPwknktgIKbjWoIt1yh0m5e2N0IUvcTBAuP3H8V/AdHOWp2OIw94YWQU//ijQi/A==
X-Received: by 2002:a5d:6d0f:0:b0:382:2492:3218 with SMTP id ffacd0b85a97d-38225aaee39mr12773115f8f.47.1732006374705;
        Tue, 19 Nov 2024 00:52:54 -0800 (PST)
Date: Tue, 19 Nov 2024 09:52:46 +0100
From: Petr Mladek <pmladek@suse.com>
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>,
	Pablo Neira Ayuso <pablo@netfilter.org>,
	Jozsef Kadlecsik <kadlec@netfilter.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Julia Lawall <Julia.Lawall@inria.fr>,
	Nicolas Palix <nicolas.palix@imag.fr>,
	Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Russell King <linux@armlinux.org.uk>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Ofir Bitton <obitton@habana.ai>, Oded Gabbay <ogabbay@kernel.org>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	Thomas =?iso-8859-1?Q?Hellstr=F6m?= <thomas.hellstrom@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Jeroen de Borst <jeroendb@google.com>,
	Praveen Kaligineedi <pkaligineedi@google.com>,
	Shailend Chand <shailend@google.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	James Smart <james.smart@broadcom.com>,
	Dick Kennedy <dick.kennedy@broadcom.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>,
	Jeff Johnson <jjohnson@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jack Wang <jinpu.wang@cloud.ionos.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
	Joe Lawrence <joe.lawrence@redhat.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Russell King <linux+etnaviv@armlinux.org.uk>,
	Christian Gmeiner <christian.gmeiner@gmail.com>,
	Louis Peens <louis.peens@corigine.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Naveen N Rao <naveen@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	cocci@inria.fr, linux-arm-kernel@lists.infradead.org,
	linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-block@vger.kernel.org,
	linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
	linux-mm@kvack.org, linux-bluetooth@vger.kernel.org,
	linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org,
	ceph-devel@vger.kernel.org, live-patching@vger.kernel.org,
	linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org,
	oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org,
	Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 19/21] livepatch: Convert timeouts to secs_to_jiffies()
Message-ID: <ZzxR3uAcWFEPUIUK@pathway.suse.cz>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com>
 <718febc4-59ee-4701-ad62-8b7a8fa7a910@csgroup.eu>
 <Zzsfuuv3AVomkMxn@pathway.suse.cz>
 <96f3b51b-c28c-4ea8-b61e-a4982196215f@linux.microsoft.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <96f3b51b-c28c-4ea8-b61e-a4982196215f@linux.microsoft.com>

On Mon 2024-11-18 10:18:49, Easwar Hariharan wrote:
> On 11/18/2024 3:06 AM, Petr Mladek wrote:
> > On Sat 2024-11-16 11:10:52, Christophe Leroy wrote:
> >>
> >>
> >> Le 15/11/2024 à 22:26, Easwar Hariharan a écrit :
> >>> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> >>>
> >>> Changes made with the following Coccinelle rules:
> >>>
> >>> @@ constant C; @@
> >>>
> >>> - msecs_to_jiffies(C * 1000)
> >>> + secs_to_jiffies(C)
> >>>
> >>> @@ constant C; @@
> >>>
> >>> - msecs_to_jiffies(C * MSEC_PER_SEC)
> >>> + secs_to_jiffies(C)
> >>>
> >>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> >>> ---
> >>>   samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
> >>>   samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
> >>>   samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
> >>>   3 files changed, 7 insertions(+), 7 deletions(-)
> >>>
> >>> diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
> >>> index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
> >>> --- a/samples/livepatch/livepatch-callbacks-busymod.c
> >>> +++ b/samples/livepatch/livepatch-callbacks-busymod.c
> >>> @@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
> >>>   {
> >>>          pr_info("%s\n", __func__);
> >>>          schedule_delayed_work(&work,
> >>> -               msecs_to_jiffies(1000 * 0));
> >>> +               secs_to_jiffies(0));
> >>
> >> Using secs_to_jiffies() is pointless, 0 is universal, should become
> >> schedule_delayed_work(&work, 0);
> > 
> > Yes, schedule_delayed_work(&work, 0) looks like the right solution.
> > 
> > Or even better, it seems that the delayed work might get replaced by
> > a normal workqueue work.
> > 
> > Anyway, I am working on a patchset which would remove this sample
> > module. There is no need to put much effort into the clean up
> > of this particular module. Do whatever is easiest for you.
> > 
> > Best Regards,
> > Petr
> 
> If we're removing the module, I'll drop it from the series. Just to
> clarify, do you mean to remove all of samples/livepatch/* or some
> particular file(s)?

To be precise, I am going to replace:

	samples/livepatch/livepatch-callbacks-demo.c
	samples/livepatch/livepatch-callbacks-mod.c
	samples/livepatch/livepatch-callbacks-busymod.c

with a completely different modules because I am reworking the
callbacks API.

All other sample modules are going to stay.

Feel free to remove livepatch-callbacks-busymod.c from the patchset.
But also feel free to keep it. The API rework goes slowly. I am not
sure if it would be ready for 6.14.

Best Regards,
Petr


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:58:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839758.1255541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDK46-0005Ic-Bc; Tue, 19 Nov 2024 08:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839758.1255541; Tue, 19 Nov 2024 08: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 1tDK46-0005I5-7C; Tue, 19 Nov 2024 08:58:30 +0000
Received: by outflank-mailman (input) for mailman id 839758;
 Tue, 19 Nov 2024 08:58: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=c5Q5=SO=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tDK44-0005G3-Qa
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:58:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6f2817e7-a654-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 09:58: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 0FB36150C;
 Tue, 19 Nov 2024 00:58:54 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C71E43F6A8;
 Tue, 19 Nov 2024 00:58: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: 6f2817e7-a654-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjZmMjgxN2U3LWE2NTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA2NzA1LjEzMTAyNywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 0/4] Prerequisite patches for R82 upstreaming
Date: Tue, 19 Nov 2024 08:58:02 +0000
Message-Id: <20241119085806.805142-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In this serie I've taken out patches from the R82 branch already in the ML[1]
and some new patches I've done based on the current status of staging that will
not impact the current Armv8-R earlyboot work.

[1] https://patchwork.kernel.org/project/xen-devel/cover/20230626033443.2943270-1-Penny.Zheng@arm.com/

Luca Fancellu (3):
  common/vmap: Fall back to simple allocator when !HAS_VMAP
  arm/setup: Move MMU specific extern declarations to mmu/setup.h
  xen/arm: Use vmap_contig instead of __vmap where it's possible

Penny Zheng (1):
  xen/arm: do not give memory back to static heap

 xen/arch/arm/alternative.c           |  3 +-
 xen/arch/arm/arm32/mmu/mm.c          |  4 +-
 xen/arch/arm/cpuerrata.c             |  5 +--
 xen/arch/arm/include/asm/mmu/setup.h | 31 ++++++++++++++
 xen/arch/arm/include/asm/setup.h     | 20 +++------
 xen/arch/arm/kernel.c                |  9 ++--
 xen/arch/arm/livepatch.c             |  3 +-
 xen/arch/arm/mmu/setup.c             |  8 +++-
 xen/arch/arm/setup.c                 | 27 ++++++------
 xen/common/device-tree/bootfdt.c     |  4 +-
 xen/common/device-tree/bootinfo.c    |  2 +-
 xen/common/page_alloc.c              |  5 +++
 xen/include/xen/bootfdt.h            | 14 ++++++-
 xen/include/xen/vmap.h               | 61 ++++++++++++++++------------
 xen/include/xen/xvmalloc.h           | 36 +++++++++++++---
 15 files changed, 156 insertions(+), 76 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mmu/setup.h

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:58:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839757.1255537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDK46-0005GR-45; Tue, 19 Nov 2024 08:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839757.1255537; Tue, 19 Nov 2024 08: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 1tDK46-0005GK-1Q; Tue, 19 Nov 2024 08:58:30 +0000
Received: by outflank-mailman (input) for mailman id 839757;
 Tue, 19 Nov 2024 08:58: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=c5Q5=SO=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tDK44-0005G2-Gm
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:58:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 6fb9daa2-a654-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 09:58:25 +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 0814C1596;
 Tue, 19 Nov 2024 00:58:55 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 500313F6A8;
 Tue, 19 Nov 2024 00:58: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: 6fb9daa2-a654-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjZmYjlkYWEyLWE2NTQtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDA2NzA1LjkzMzgwNiwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/4] common/vmap: Fall back to simple allocator when !HAS_VMAP
Date: Tue, 19 Nov 2024 08:58:03 +0000
Message-Id: <20241119085806.805142-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241119085806.805142-1-luca.fancellu@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When HAS_VMAP is disabled, the xv{malloc,zalloc,...} functions
should fall back to the simple x{malloc,zalloc,...} variant,
implement that because MPU systems won't have virtual memory.

Additionally remove VMAP_VIRT_START from vmap.h guards since
MPU systems won't have it defined and protect with #ifdef
CONFIG_HAS_VMAP all the declaration that won't be used in a
MPU system built without HAS_VMAP.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from v1:
 - put back static inline iounmap
 - changed commit message
 - hide not used declaration for system with !HAS_VMAP
 - correct function declared in xvmalloc.h to be static inline
 - prefer '#ifdef' instead of '#if defined' where possible
---
---
 xen/include/xen/vmap.h     | 61 ++++++++++++++++++++++----------------
 xen/include/xen/xvmalloc.h | 36 ++++++++++++++++++----
 2 files changed, 66 insertions(+), 31 deletions(-)

diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index c1dd7ac22f30..a9f4a07bbb65 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -5,12 +5,19 @@
  * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
  * latter is used when loading livepatches and the former for everything else.
  */
-#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
+#ifndef __XEN_VMAP_H__
 #define __XEN_VMAP_H__
 
 #include <xen/mm-frame.h>
 #include <xen/page-size.h>
 
+/*
+ * MPU systems won't have HAS_VMAP enabled, but will provide implementation
+ * only for some of the functions of this module. So hide the definition for
+ * some of these function to systems where !HAS_VMAP
+ */
+#ifdef CONFIG_HAS_VMAP
+
 /* Identifiers for the linear ranges tracked by vmap */
 enum vmap_region {
     /*
@@ -68,25 +75,6 @@ void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
  */
 void *vmap(const mfn_t *mfn, unsigned int nr);
 
-/*
- * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
- *
- * @param mfn Base mfn of the physical region
- * @param nr  Number of mfns in the physical region
- * @return Pointer to the mapped area on success; NULL otherwise.
- */
-void *vmap_contig(mfn_t mfn, unsigned int nr);
-
-/*
- * Unmaps a range of virtually contiguous memory from one of the vmap regions
- *
- * The system remembers internally how wide the mapping is and unmaps it all.
- * It also can determine the vmap region type from the `va`.
- *
- * @param va Virtual base address of the range to unmap
- */
-void vunmap(const void *va);
-
 /*
  * Allocate `size` octets of possibly non-contiguous physical memory and map
  * them contiguously in the VMAP_DEFAULT vmap region
@@ -112,6 +100,33 @@ void *vzalloc(size_t size);
  */
 void vfree(void *va);
 
+/* Return the number of pages in the mapping starting at address 'va' */
+unsigned int vmap_size(const void *va);
+
+/* Pointer to 1 octet past the end of the VMAP_DEFAULT virtual area */
+void *arch_vmap_virt_end(void);
+
+#endif /* CONFIG_HAS_VMAP */
+
+/*
+ * Maps physically contiguous pages onto the VMAP_DEFAULT vmap region
+ *
+ * @param mfn Base mfn of the physical region
+ * @param nr  Number of mfns in the physical region
+ * @return Pointer to the mapped area on success; NULL otherwise.
+ */
+void *vmap_contig(mfn_t mfn, unsigned int nr);
+
+/*
+ * Unmaps a range of virtually contiguous memory from one of the vmap regions
+ *
+ * The system remembers internally how wide the mapping is and unmaps it all.
+ * It also can determine the vmap region type from the `va`.
+ *
+ * @param va Virtual base address of the range to unmap
+ */
+void vunmap(const void *va);
+
 /*
  * Analogous to vmap_contig(), but for IO memory
  *
@@ -124,9 +139,6 @@ void vfree(void *va);
  */
 void __iomem *ioremap(paddr_t pa, size_t len);
 
-/* Return the number of pages in the mapping starting at address 'va' */
-unsigned int vmap_size(const void *va);
-
 /* Analogous to vunmap(), but for IO memory mapped via ioremap() */
 static inline void iounmap(void __iomem *va)
 {
@@ -135,9 +147,6 @@ static inline void iounmap(void __iomem *va)
     vunmap((void *)(addr & PAGE_MASK));
 }
 
-/* Pointer to 1 octet past the end of the VMAP_DEFAULT virtual area */
-void *arch_vmap_virt_end(void);
-
 /* Initialises the VMAP_DEFAULT virtual range */
 static inline void vm_init(void)
 {
diff --git a/xen/include/xen/xvmalloc.h b/xen/include/xen/xvmalloc.h
index 440d85a284bb..e97a30f61e96 100644
--- a/xen/include/xen/xvmalloc.h
+++ b/xen/include/xen/xvmalloc.h
@@ -40,20 +40,46 @@
     ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
                              __alignof__(typeof(*(ptr)))))
 
+#ifdef CONFIG_HAS_VMAP
+
 /* Free any of the above. */
 void xvfree(void *va);
 
+/* Underlying functions */
+void *_xvmalloc(size_t size, unsigned int align);
+void *_xvzalloc(size_t size, unsigned int align);
+void *_xvrealloc(void *va, size_t size, unsigned int align);
+
+#else /* !CONFIG_HAS_VMAP */
+
+static inline void xvfree(void *va)
+{
+    xfree(va);
+}
+
+static inline void *_xvmalloc(size_t size, unsigned int align)
+{
+    return _xmalloc(size, align);
+}
+
+static inline void *_xvzalloc(size_t size, unsigned int align)
+{
+    return _xzalloc(size, align);
+}
+
+static inline void *_xvrealloc(void *va, size_t size, unsigned int align)
+{
+    return _xrealloc(va, size, align);
+}
+
+#endif /* CONFIG_HAS_VMAP */
+
 /* Free an allocation, and zero the pointer to it. */
 #define XVFREE(p) do { \
     xvfree(p);         \
     (p) = NULL;        \
 } while ( false )
 
-/* Underlying functions */
-void *_xvmalloc(size_t size, unsigned int align);
-void *_xvzalloc(size_t size, unsigned int align);
-void *_xvrealloc(void *va, size_t size, unsigned int align);
-
 static inline void *_xvmalloc_array(
     size_t size, unsigned int align, unsigned long num)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:58:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839760.1255567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDK49-0005zH-12; Tue, 19 Nov 2024 08:58:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839760.1255567; Tue, 19 Nov 2024 08:58: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 1tDK48-0005z4-U3; Tue, 19 Nov 2024 08:58:32 +0000
Received: by outflank-mailman (input) for mailman id 839760;
 Tue, 19 Nov 2024 08:58: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=c5Q5=SO=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tDK47-0005G3-Gd
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:58:31 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 71451b09-a654-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 09:58: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 86E151F60;
 Tue, 19 Nov 2024 00:58:57 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5DB913F6A8;
 Tue, 19 Nov 2024 00:58: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: 71451b09-a654-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjcxNDUxYjA5LWE2NTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA2NzA4LjU0NjM2OCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v2 3/4] xen/arm: Use vmap_contig instead of __vmap where it's possible
Date: Tue, 19 Nov 2024 08:58:05 +0000
Message-Id: <20241119085806.805142-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241119085806.805142-1-luca.fancellu@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently the arm code uses __vmap function in few parts to map
physically contiguous pages, vmap_contig was introduced recently
and does the same because it's a wrapper for __vmap, so use the
latter instead of the direct __vmap function.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes v1:
 - Add ack-by Julien
---
---
 xen/arch/arm/alternative.c | 3 +--
 xen/arch/arm/cpuerrata.c   | 5 ++---
 xen/arch/arm/kernel.c      | 2 +-
 xen/arch/arm/livepatch.c   | 3 +--
 4 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c
index d99b5070937d..fec7dbd2cde9 100644
--- a/xen/arch/arm/alternative.c
+++ b/xen/arch/arm/alternative.c
@@ -209,8 +209,7 @@ void __init apply_alternatives_all(void)
      * The text and inittext section are read-only. So re-map Xen to
      * be able to patch the code.
      */
-    xenmap = __vmap(&xen_mfn, 1U << xen_order, 1, 1, PAGE_HYPERVISOR,
-                    VMAP_DEFAULT);
+    xenmap = vmap_contig(xen_mfn, 1U << xen_order);
     /* Re-mapping Xen is not expected to fail during boot. */
     BUG_ON(!xenmap);
 
diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
index eef9c0ea0e21..17cf134f1b0d 100644
--- a/xen/arch/arm/cpuerrata.c
+++ b/xen/arch/arm/cpuerrata.c
@@ -61,9 +61,8 @@ static bool copy_hyp_vect_bpi(unsigned int slot, const char *hyp_vec_start,
      * Vectors are part of the text that are mapped read-only. So re-map
      * the vector table to be able to update vectors.
      */
-    dst_remapped = __vmap(&dst_mfn,
-                          1UL << get_order_from_bytes(VECTOR_TABLE_SIZE),
-                          1, 1, PAGE_HYPERVISOR, VMAP_DEFAULT);
+    dst_remapped = vmap_contig(dst_mfn,
+                               1UL << get_order_from_bytes(VECTOR_TABLE_SIZE));
     if ( !dst_remapped )
         return false;
 
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 669d143cee1b..293d7efaed9c 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -211,7 +211,7 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
         return -ENOMEM;
     }
     mfn = page_to_mfn(pages);
-    output = __vmap(&mfn, 1 << kernel_order_out, 1, 1, PAGE_HYPERVISOR, VMAP_DEFAULT);
+    output = vmap_contig(mfn, 1 << kernel_order_out);
 
     rc = perform_gunzip(output, input, size);
     clean_dcache_va_range(output, output_size);
diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
index 037746d9528d..3805b2974663 100644
--- a/xen/arch/arm/livepatch.c
+++ b/xen/arch/arm/livepatch.c
@@ -39,8 +39,7 @@ int arch_livepatch_quiesce(void)
      * The text section is read-only. So re-map Xen to be able to patch
      * the code.
      */
-    vmap_of_xen_text = __vmap(&text_mfn, 1U << text_order, 1, 1, PAGE_HYPERVISOR,
-                              VMAP_DEFAULT);
+    vmap_of_xen_text = vmap_contig(text_mfn, 1U << text_order);
 
     if ( !vmap_of_xen_text )
     {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:58:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839759.1255551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDK46-0005W1-Q7; Tue, 19 Nov 2024 08:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839759.1255551; Tue, 19 Nov 2024 08: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 1tDK46-0005TY-Lf; Tue, 19 Nov 2024 08:58:30 +0000
Received: by outflank-mailman (input) for mailman id 839759;
 Tue, 19 Nov 2024 08:58: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=c5Q5=SO=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tDK45-0005G2-6L
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:58:29 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 705d246b-a654-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 09:58:26 +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 1B6D11E7D;
 Tue, 19 Nov 2024 00:58:56 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 498583F6A8;
 Tue, 19 Nov 2024 00:58: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: 705d246b-a654-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjcwNWQyNDZiLWE2NTQtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDA2NzA3LjA1MTI2LCJzZW5kZXIiOiJsdWNhLmZhbmNlbGx1QGFybS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
From: Luca Fancellu <luca.fancellu@arm.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>
Subject: [PATCH v2 2/4] arm/setup: Move MMU specific extern declarations to mmu/setup.h
Date: Tue, 19 Nov 2024 08:58:04 +0000
Message-Id: <20241119085806.805142-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241119085806.805142-1-luca.fancellu@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move some extern declarations related to MMU structures and define
from asm/setup.h to asm/mmu/setup.h, in order to increase encapsulation
and allow the MPU part to build, since it has no clue about them.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from v1:
 - Moved extern to mmu/setup.h instead of mmu/mm.h
 - moved also pte_of_xenaddr()
---
---
 xen/arch/arm/include/asm/mmu/setup.h | 31 ++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/setup.h     | 20 ++++++------------
 2 files changed, 37 insertions(+), 14 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mmu/setup.h

diff --git a/xen/arch/arm/include/asm/mmu/setup.h b/xen/arch/arm/include/asm/mmu/setup.h
new file mode 100644
index 000000000000..3fe752b04c63
--- /dev/null
+++ b/xen/arch/arm/include/asm/mmu/setup.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef __ARM_MMU_SETUP_H__
+#define __ARM_MMU_SETUP_H__
+
+#include <asm/lpae.h>
+#include <asm/mmu/layout.h>
+
+extern lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
+
+#ifdef CONFIG_ARM_64
+extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
+#endif
+extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
+extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
+
+/* Find where Xen will be residing at runtime and return a PT entry */
+lpae_t pte_of_xenaddr(vaddr_t va);
+
+#endif /* __ARM_MMU_SETUP_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 64c227d171fc..a5a80d9b477f 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -6,6 +6,12 @@
 #include <xen/bootfdt.h>
 #include <xen/device_tree.h>
 
+#if defined(CONFIG_MMU)
+# include <asm/mmu/setup.h>
+#elif !defined(CONFIG_MPU)
+# error "Unknown memory management layout"
+#endif
+
 #define MAX_FDT_SIZE SZ_2M
 
 struct map_range_data
@@ -65,20 +71,6 @@ 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 lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
-
-#ifdef CONFIG_ARM_64
-extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
-#endif
-extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
-extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
-
-/* Find where Xen will be residing at runtime and return a PT entry */
-lpae_t pte_of_xenaddr(vaddr_t va);
-
 extern const char __ro_after_init_start[], __ro_after_init_end[];
 
 struct init_info
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 08:58:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 08:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839761.1255577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDK4B-0006HZ-8S; Tue, 19 Nov 2024 08:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839761.1255577; Tue, 19 Nov 2024 08:58: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 1tDK4B-0006HS-5k; Tue, 19 Nov 2024 08:58:35 +0000
Received: by outflank-mailman (input) for mailman id 839761;
 Tue, 19 Nov 2024 08:58: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=c5Q5=SO=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tDK49-0005G3-6G
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 08:58:33 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 722ac493-a654-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 09:58:29 +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 21B7D150C;
 Tue, 19 Nov 2024 00:58:59 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C15323F6A8;
 Tue, 19 Nov 2024 00:58: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: 722ac493-a654-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjcyMmFjNDkzLWE2NTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA2NzEwLjAxNDA3Niwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.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>,
	Jan Beulich <jbeulich@suse.com>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Date: Tue, 19 Nov 2024 08:58:06 +0000
Message-Id: <20241119085806.805142-5-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241119085806.805142-1-luca.fancellu@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

If Xenheap is statically configured in Device Tree, its size is
definite. So, the memory shall not be given back into static heap, like
it's normally done in free_init_memory, etc, once the initialization
is finished.

Extract static_heap flag from init data bootinfo, as it will be needed
after destroying the init data section.
Introduce a new helper xen_is_using_staticheap() to tell whether Xenheap
is statically configured in the Device Tree.

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>
---
Changes from v1:
 - moved static_heap to common/page_alloc.c
 - protect static_heap access with CONFIG_STATIC_MEMORY
 - update comment in arm/kernel.c kernel_decompress()
---
---
 xen/arch/arm/arm32/mmu/mm.c       |  4 ++--
 xen/arch/arm/kernel.c             |  7 ++++---
 xen/arch/arm/mmu/setup.c          |  8 ++++++--
 xen/arch/arm/setup.c              | 27 ++++++++++++++-------------
 xen/common/device-tree/bootfdt.c  |  4 +++-
 xen/common/device-tree/bootinfo.c |  2 +-
 xen/common/page_alloc.c           |  5 +++++
 xen/include/xen/bootfdt.h         | 14 +++++++++++++-
 8 files changed, 48 insertions(+), 23 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/mm.c b/xen/arch/arm/arm32/mmu/mm.c
index 063611412be0..b7ca7c94c9ca 100644
--- a/xen/arch/arm/arm32/mmu/mm.c
+++ b/xen/arch/arm/arm32/mmu/mm.c
@@ -199,7 +199,7 @@ void __init setup_mm(void)
 
     total_pages = ram_size >> PAGE_SHIFT;
 
-    if ( bootinfo.static_heap )
+    if ( xen_is_using_staticheap() )
     {
         const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
 
@@ -246,7 +246,7 @@ void __init setup_mm(void)
 
     do
     {
-        e = bootinfo.static_heap ?
+        e = xen_is_using_staticheap() ?
             fit_xenheap_in_static_heap(pfn_to_paddr(xenheap_pages), MB(32)) :
             consider_modules(ram_start, ram_end,
                              pfn_to_paddr(xenheap_pages),
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 293d7efaed9c..d2245ec9d2ef 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -244,10 +244,11 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
     size += offset;
 
     /*
-     * Free the original kernel, update the pointers to the
-     * decompressed kernel
+     * In case Xen is not using the static heap feature, free the original
+     * kernel, update the pointers to the decompressed kernel
      */
-    fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
+    if ( !xen_is_using_staticheap() )
+        fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
 
     return 0;
 }
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 9664e85ee6c0..83c0a1480447 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -341,8 +341,12 @@ void free_init_memory(void)
     if ( rc )
         panic("Unable to remove the init section (rc = %d)\n", rc);
 
-    init_domheap_pages(pa, pa + len);
-    printk("Freed %ldkB init memory.\n", (long)(__init_end-__init_begin)>>10);
+    if ( !xen_is_using_staticheap() )
+    {
+        init_domheap_pages(pa, pa + len);
+        printk("Freed %ldkB init memory.\n",
+               (long)(__init_end-__init_begin) >> 10);
+    }
 }
 
 /**
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca94..91340d5dc201 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -206,24 +206,25 @@ void __init discard_initial_modules(void)
     struct bootmodules *mi = &bootinfo.modules;
     int i;
 
-    for ( i = 0; i < mi->nr_mods; i++ )
+    if ( !xen_is_using_staticheap() )
     {
-        paddr_t s = mi->module[i].start;
-        paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
-
-        if ( mi->module[i].kind == BOOTMOD_XEN )
-            continue;
+        for ( i = 0; i < mi->nr_mods; i++ )
+        {
+            paddr_t s = mi->module[i].start;
+            paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
 
-        if ( !mfn_valid(maddr_to_mfn(s)) ||
-             !mfn_valid(maddr_to_mfn(e)) )
-            continue;
+            if ( mi->module[i].kind == BOOTMOD_XEN )
+                continue;
 
-        fw_unreserved_regions(s, e, init_domheap_pages, 0);
-    }
+            if ( !mfn_valid(maddr_to_mfn(s)) ||
+                 !mfn_valid(maddr_to_mfn(e)) )
+                continue;
 
-    mi->nr_mods = 0;
+            fw_unreserved_regions(s, e, init_domheap_pages, 0);
+        }
 
-    remove_early_mappings();
+        mi->nr_mods = 0;
+    }
 }
 
 /* Relocate the FDT in Xen heap */
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 927f59c64b0d..6cc9ae146a97 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -403,7 +403,9 @@ static int __init process_chosen_node(const void *fdt, int node,
         if ( rc )
             return rc;
 
-        bootinfo.static_heap = true;
+#ifdef CONFIG_STATIC_MEMORY
+        static_heap = true;
+#endif
     }
 
     printk("Checking for initrd in /chosen\n");
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
index f2e6a1145b7c..1e83d5172938 100644
--- a/xen/common/device-tree/bootinfo.c
+++ b/xen/common/device-tree/bootinfo.c
@@ -386,7 +386,7 @@ void __init populate_boot_allocator(void)
     const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
     paddr_t s, e;
 
-    if ( bootinfo.static_heap )
+    if ( xen_is_using_staticheap() )
     {
         for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
         {
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 33c8c917d984..b1fdb4efcff0 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -164,6 +164,11 @@
 #define PGT_TYPE_INFO_INITIALIZER 0
 #endif
 
+#ifdef CONFIG_STATIC_MEMORY
+/* Flag saved when Xen is using the static heap feature (xen,static-heap) */
+bool __ro_after_init static_heap;
+#endif
+
 unsigned long __read_mostly max_page;
 unsigned long __read_mostly total_pages;
 paddr_t __ro_after_init mem_hotplug;
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 16fa05f38f38..c861590e38c8 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -132,7 +132,6 @@ struct bootinfo {
 #ifdef CONFIG_STATIC_SHM
     struct shared_meminfo shmem;
 #endif
-    bool static_heap;
 };
 
 #ifdef CONFIG_ACPI
@@ -157,6 +156,10 @@ struct bootinfo {
 
 extern struct bootinfo bootinfo;
 
+#ifdef CONFIG_STATIC_MEMORY
+extern bool static_heap;
+#endif
+
 bool check_reserved_regions_overlap(paddr_t region_start,
                                     paddr_t region_size);
 
@@ -206,4 +209,13 @@ static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
 }
 #endif
 
+static inline bool xen_is_using_staticheap(void)
+{
+#ifdef CONFIG_STATIC_MEMORY
+    return static_heap;
+#else
+    return false;
+#endif
+}
+
 #endif /* XEN_BOOTFDT_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 09:05:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 09:05:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839806.1255586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDKAJ-0001MV-Sk; Tue, 19 Nov 2024 09:04:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839806.1255586; Tue, 19 Nov 2024 09:04: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 1tDKAJ-0001MO-Pv; Tue, 19 Nov 2024 09:04:55 +0000
Received: by outflank-mailman (input) for mailman id 839806;
 Tue, 19 Nov 2024 09:04: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=Pc1c=SO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tDKAJ-0001HZ-7v
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 09:04:55 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20612.outbound.protection.outlook.com
 [2a01:111:f403:260c::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55b8fc64-a655-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 10:04:51 +0100 (CET)
Received: from DB8P191CA0025.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::35)
 by GV1PR08MB8177.eurprd08.prod.outlook.com (2603:10a6:150:93::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24; Tue, 19 Nov
 2024 09:04:46 +0000
Received: from DB3PEPF0000885A.eurprd02.prod.outlook.com
 (2603:10a6:10:130:cafe::a8) by DB8P191CA0025.outlook.office365.com
 (2603:10a6:10:130::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23 via Frontend
 Transport; Tue, 19 Nov 2024 09:04:45 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB3PEPF0000885A.mail.protection.outlook.com (10.167.242.5) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Tue, 19 Nov 2024 09:04:43 +0000
Received: ("Tessian outbound 6970ca6dd121:v490");
 Tue, 19 Nov 2024 09:04:43 +0000
Received: from L3c8844d4f5ec.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 2BFCF45F-08FF-4E45-9EC8-9F2A55D8D34D.1; 
 Tue, 19 Nov 2024 09:04:36 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L3c8844d4f5ec.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 19 Nov 2024 09:04:36 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by VI1PR08MB5422.eurprd08.prod.outlook.com (2603:10a6:803:12e::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20; Tue, 19 Nov
 2024 09:04:33 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%5]) with mapi id 15.20.8158.023; Tue, 19 Nov 2024
 09:04: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: 55b8fc64-a655-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwYzo6NjEyIiwiaGVsbyI6IkVVUjAzLVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU1YjhmYzY0LWE2NTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA3MDkxLjc0MjU3Nywic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=fpk0BiHRMXQGgUplIFvioCoJo/o9L3gPojUbbQYawG7K9Gie4wrTCwzVSd4xbdfHk9VTulyrS6tdVhv28wrk/WQwZLy45oQ2odYpp8X8p5qSfeMr5cBUCAxKJI20PiRDswuiL0PfgZuQqChrqXEB8RxC82iAWdTAeGohQrpj0O9Etys3bcqQUuWKTTFy+VV0TJmA9ay87wOjLLm8hQa5diHhzHsn59ZTwzIzjnLvCzbmEoQnKSVj/U4dMsY9vL+6JxIok3vzEhBXZmQcyNUSSSYEGGjuAWWvGNk239Q+FhFYFla6x19b88N+Y673WSHyjQR+oPlR6o598KjeP0SrFA==
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=1vACK1HSaHzL/mz7Rr6i7agxoMX1IUmNc6nweGCO74o=;
 b=QqeJDLgtSInF9JfVmut7S9zGboFvtHQB4gDKVQoEWND/wPM1SuzDPdL7uO7ycWznqBp68EZ3RxCoSz918XgJmOaENZmlUNjgSoOK8t/PcqRe4IEPcuzUY6O3Opb4mYXUxNOcoMHLPHnZylIz993K2XyiIF5Z6SCiv1U3OmWUeZ4/3oPf12KQgtpKwZJf85HMU0YPa/XXL/X9jN7XCc/mbQfBfIhXvH4oZjtbZGbMoNDs6+BJybyXhgckQmPAXPYT1EMPXm6f8EKd9psmm/HrS/BdmI6JNpZSUgdPBkd45V3Qec8SMz9jpPjCFa3X9ipythAk9rCacPriAjxEJYmuxw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=1vACK1HSaHzL/mz7Rr6i7agxoMX1IUmNc6nweGCO74o=;
 b=alLP63mJeIEdt/xuC3nvSGn+PWFAYdFyQSebUp0+qzlAqCl6hY5r+kgmh2FJuNH1W48lCJzFho+nX6bR7P/Dbc6r5mvoShxVN9ZZYj255PdYeNIIGzm10HirB6ImxzYnR/nRFqUKIr27YtIirxO8iBAnzvoUnNhxIFElO2XqtD4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: d40c58b972382904
X-TessianGatewayMetadata: k9aeK/jiTMdtLpBfZcfDiYZVPqzF6i+UWoS5YGYn9Imv3J8/lA7DQ9TZ4jhOKOg+ewNznLyKyDWrRH4vpRVC/dwSHz1uix+3ccL+uxelfbnEAv3JrHG/RwExQM0KAuR+RSpgE/Ou8uvaexxFxmUP1d8rzDZcLkVHv0vY4h7vy30=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cpfdek2v1mrhOkPpP1H/hhK0LOlM/PN4do4N4OYB8VDl8NYq61EHCxiY06gOwzG9AmFgzNGJAaB2dt5BaoAwufrnqtnvdpcn66fZ2fudLWZpDrrY7O7ROEDM1NxiNs0Ui5ymblu+WUglxSAaAxZcEbDXrpVqn5402d0cctzXt5Squ2O8xk7lwpZTme4GYjAcgW0HOQz1YAW1T++qy5i6wfXDSYXzHk3QHKIfhUryXtf0hqmVo/8oeG45nudRilxIPk/yIGfeQlO9neNIhtgH5BHcGg6+S07lO9ktXpwVN672lKnpHzdsCYkBIgEqYBifbNb/o8s2tDgU9IQqHdAvmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1vACK1HSaHzL/mz7Rr6i7agxoMX1IUmNc6nweGCO74o=;
 b=mtP5KvSqJuCcUmK+z8efwoUQzQ6b/xWbIkG1rgVFmQ+dAgsl27QzXDJzk8YOnkUpDNvXL13MXv/4UctN2LYI4tWhu6RjaZ9JmzBcWoTW+zTNO1CrJNlAaWqIqToJxjg88RvJqlvaKggnhxgQg+v9RSsulSHU1IgIpzKpS/rqzqaLY4ch5n1O2t6zqfBM7GNohGrIF7phjEeVujXkxOLE6LFzP+OiMR62HjNz4wXlsBezYz5l3qNodRecP0cF2KhJPaRAhSBuezDl+877RV35tDJg//KByGT80tpsEDA2KXEKx76V8SfUKDz0exz+rmwBqLBJhVgOWUwyCJgQ7CkGJQ==
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=1vACK1HSaHzL/mz7Rr6i7agxoMX1IUmNc6nweGCO74o=;
 b=alLP63mJeIEdt/xuC3nvSGn+PWFAYdFyQSebUp0+qzlAqCl6hY5r+kgmh2FJuNH1W48lCJzFho+nX6bR7P/Dbc6r5mvoShxVN9ZZYj255PdYeNIIGzm10HirB6ImxzYnR/nRFqUKIr27YtIirxO8iBAnzvoUnNhxIFElO2XqtD4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Ayan Kumar Halder <ayankuma@amd.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Michal Orzel <michal.orzel@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Artem Mygaiev
	<artem_mygaiev@epam.com>, Munakata Hisao <hisao.munakata.vt@renesas.com>
Subject: Re: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
Thread-Topic: [PATCH] docs: fusa: Add dom0less domain configuration
 requirements
Thread-Index: AQHbIXWuBuVgfl53Mk+cNah5xpYpeLK1GpsAgAPBuwCAAPyRAIAEqDkA
Date: Tue, 19 Nov 2024 09:04:33 +0000
Message-ID: <1E89C10B-2307-4076-A018-0E1722DD22EC@arm.com>
References: <20241018155144.3433395-1-ayan.kumar.halder@amd.com>
 <4dbf2c4d-f7bd-4032-b52f-29c24e3ec055@xen.org>
 <22282f26-5c66-444b-b63a-d5442e6fcdad@amd.com>
 <04a358de-ed76-46b4-bc09-f3f343e09186@xen.org>
In-Reply-To: <04a358de-ed76-46b4-bc09-f3f343e09186@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.3826.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|VI1PR08MB5422:EE_|DB3PEPF0000885A:EE_|GV1PR08MB8177:EE_
X-MS-Office365-Filtering-Correlation-Id: e1630d13-4efd-47eb-e9a9-08dd0879359e
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|10070799003|376014|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?xG3gPvJ5ABDyk3hyugPfovF1QQTYEcEawmvsLGFr5WW5ttft0eI2sTCog+yA?=
 =?us-ascii?Q?t7zP83gV0I0Ux12htykaixA34p6njQx5yRy1kaXfpFuxDb3I+ErsLx3tROhI?=
 =?us-ascii?Q?Z7u2I0hM+m2eztho9z1VtpRgp4EMGdJWnVRaBR6ENxmhck9WkR1TNC68jKVJ?=
 =?us-ascii?Q?6j1pjPVoGcVAnPfQsxmobSW2I1GgRaThKD5WoLbVbbsoZx5g8Z5UXPcMe77O?=
 =?us-ascii?Q?YKbLXicGJDBuTd0RBHFrjiRzIjE29zfx8vPOzYVSUF1Lp/0Uwy1M9WMxU6n8?=
 =?us-ascii?Q?5CzhwNBA7fdd7+sTqtoJ8+u+eOv0cUcEQ5DF1/vOkEXlDMixbPYV47WcbsGZ?=
 =?us-ascii?Q?WvdMVY+2yawZBeW7bBbqtS/T/Kr4+x7LaEQnevAawfkVNB8/XBGjP55V4Fkn?=
 =?us-ascii?Q?aWaBrfuVh8r+QRsy+H51CNpgL5BOLGllJRDB3XFfQ+wW5u+6lSWXp+pH87bl?=
 =?us-ascii?Q?QDQWyqIlgv/I4wNSId0IBy7wD1kynySAKxP1VCp/0fOY29UVTust89HAdyig?=
 =?us-ascii?Q?DxGNKJ0Od5AtUk1C0Pf0nHGlhsSm9cNsekPMwWVUut8upA0+AZ+eSBX7b0Fq?=
 =?us-ascii?Q?fqL3kJlupWZScht381jCtdXeLroPljREh1+oK+G1AV5boP21aDM9q3MICixa?=
 =?us-ascii?Q?Ohvgj5xEJwPHq1Abv8m7Le8ZGFk17ManrHUISWoHPuWhnarwVupUjbA5+RV5?=
 =?us-ascii?Q?dY1lyf6XF9NDHK8b7jfjP4jzvll2R6fSKY+fIv3mtFR+b95kYbHfsD76kFBd?=
 =?us-ascii?Q?piO7urKk3/utmpuk3pCfBv7Pqa6g9gmywJdaLKzoRJCDtu87H0aeHP2aQfsN?=
 =?us-ascii?Q?XII118QDF4A7MMGsfvuN2+LvcXiVRhqGe3qHhoHfddg7hlvkbrpHJM48TRDV?=
 =?us-ascii?Q?5ba29iHaUR5Eh5p+UL98vzP550RRnMSkq65nmzgZ+PdkpEZP+Z2QOwL4uLuC?=
 =?us-ascii?Q?r65LLBiEpIMTHlSGf967yAUkWw/AoAnJ3fp6Tevm2IUQKof4YAGGevycWA0w?=
 =?us-ascii?Q?YIJ88NN8D3Al3IgM4r8qjenZ2bdL5XvZtvHKYzeiAAqsD/eI83ubHj0J8D0g?=
 =?us-ascii?Q?pk0Hi4153WH3PhVGhlttFN88Fkzq3asXnC64AG+rliGf9WFWel4T9Si422oy?=
 =?us-ascii?Q?o3sthtb4XRt2ZY6Tm3BdzRD8xE1wXyChYvzbP1SdTDJbJAn0Ia+RKk6L06ys?=
 =?us-ascii?Q?RqXimOR8VbxSnQIhfVxqcpa0hYyhz3ezv6jhYrFgjuFCwa1URYsy/MB5xX4R?=
 =?us-ascii?Q?nMIK3gx7GIpoVcl1Fwr++iMdJ6kAKn24zTW89Yy8vr3+aG9TxmUoyuwxNvUf?=
 =?us-ascii?Q?b6YbVSU0/jFv5DYM6QmiBL7Ax93jB+feNy83VxSJmY60j83sbYhz8unw326s?=
 =?us-ascii?Q?Iu5+AfE=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <B72F8A50F23E944C931EB6F828D3A444@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5422
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:25a::24];domain=DB9PR08MB6588.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF0000885A.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ebb6e536-3132-4c64-d00a-08dd08792f21
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|1800799024|36860700013|82310400026|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?zoh1vIWVLanp9j/6lFk6jo3m0ljPIggDFqKSJEuqIpIInBQ4lv6RzvHjPptg?=
 =?us-ascii?Q?Raw7vXnvZufNcS5MYjBWPA2if+8srtluvYuiJKFTjmKt4Y+6ide6DIQlNpWi?=
 =?us-ascii?Q?7c1v4P6ZbEiOLrVDVgvJybpPt04fPfXpboHd/g/Nhmm9w/i1lox82GFo6hHw?=
 =?us-ascii?Q?+7AGdJG2/t+3ZN0yyCTee4EDOpvEAik3OcEgFTz+hw3UQIzOQgPbr9sW1x82?=
 =?us-ascii?Q?fSDJSpsgAXhtm5JnKtmOWRQ7JNO+86rm9A4CWziq6p2JCOGLN1Y4i+13hF5W?=
 =?us-ascii?Q?UnQ0LEVG226m1AebvChPM0Txa+G5fKBj0rYdORz5Z7s81rLgB5D/sL1zlSz6?=
 =?us-ascii?Q?Dzg24wPtensgnYBsajmw8zmzteKE+4dfdy6rlmyxbim7ZGvp6xskHr22tTW6?=
 =?us-ascii?Q?9YPqaU2zaD0abhj/0EDxE4bW7P5h4eEvLPI4ImZHXuZ4hgwgISQ3Q3GkqRgp?=
 =?us-ascii?Q?cx1OT7MTlMPCl/TH9UOuxK9uRhDQq2Lo0RdjfucQkWPlWosh4zLgnOdlSy4D?=
 =?us-ascii?Q?UUxya8B6UQA8e5lgAKF410U2IxpZWZFZad+u9JS49ujJgJBk/1Pvke3Epv8t?=
 =?us-ascii?Q?3HDSq8ykU+bP2CFyE97yvhRMLcZeYRwh62xwzeXOhaR6MRRTtZZ8W9ghN5Qu?=
 =?us-ascii?Q?pIw4z1Bo3lzNt5Css1U/p7HO4oAXDgIT7IfEx9Dhqig4dLFFdWZJEGHUaJ7O?=
 =?us-ascii?Q?xIdbesu8upxpHnp8E4C5wBWi6EToujcB6GnUwhQZPD8X+YJNyib9OKcu0sDm?=
 =?us-ascii?Q?vvdpOgA3/eDnYPjxVroylWKrSkBga2aTXmRyfB3PAWySjWBJHrDVKM9XZnqc?=
 =?us-ascii?Q?HCM8ZfT6vBW4kb8EigEcdjTq+nUtej8HgOxKndR8k3rVaGJ3HlcZlLId9tc7?=
 =?us-ascii?Q?bbhuO0nPfjVK5oGIOjVWOGKqYB+7dlAVCljjTeVWj4/tLlzIHjgK2x1hzrGx?=
 =?us-ascii?Q?aUyiHDSGLwmF/EvmqunopDe/14dH86cTSi2YK6rHw4lukCIqs2enZGQg6IBh?=
 =?us-ascii?Q?IyjgTQizdYXlMbGoSB9kcDUJuymH0WWZKc5J9r8ASVWZZ+YwqDSQrBUpfCfC?=
 =?us-ascii?Q?0hJKhgqE3jNWcvXV2nDkRTt4Yf6gIR5QGATNIl7rQVRyADYiNb+MAXoMU6R1?=
 =?us-ascii?Q?tXcAOPqow0V7DlT1aCuHnMoU2jLpdXC47vsu4KIU83kp1BiAtuazustLsBeG?=
 =?us-ascii?Q?ZLTXbbsj9latgWxIJ9nit1aGMQovKqG7esqtaqdhxRqFH1GOFE+RiiDYsh8A?=
 =?us-ascii?Q?ECq5QL8q4ONLfOUTvv+9P4/+Wa4kyQ4l6rAs5OD4eSWYtEBbeJ6lvwQFdr6z?=
 =?us-ascii?Q?hL1EljdOOOS1Pn6EMyqyL5JevOMuVsnsmJ8eaIIYG3zTNqQleM5vQQ+D5uxy?=
 =?us-ascii?Q?xWHSfe2yjDJIyexCw4LUbqRZ+rBWH5br6k5apJyTzvhybiGw8w=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(14060799003)(376014)(1800799024)(36860700013)(82310400026)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 09:04:43.9525
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e1630d13-4efd-47eb-e9a9-08dd0879359e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB3PEPF0000885A.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8177

Hi Ayan and Julien,

> On 16 Nov 2024, at 10:57, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Ayan,
>=20
> On 15/11/2024 18:53, Ayan Kumar Halder wrote:
>>>> +Assign vCPUs from CPU pool
>>>> +--------------------------
>>>> +
>>>> +`XenSwdgn~arm64_assign_vcpus_cpu_pool~1`
>>>> +
>>>> +Description:
>>>> +Xen shall assign vCPUs to a domain from a CPU pool.
>>>=20
>>> Same remark about the wording. You create a domain with N vCPUs and *as=
sign* a CPU pool to a domain.
>> Ok, so all the previous 3 requirements can be merged into
>> Xen shall create a domain with N vCPUs and assign a CPU pool to a domain=
.
>> Or
>> Xen shall create a domain with N vCPUs.
>=20
> I think this one is better because it is not mandatory for the user to se=
lect a CPU pool and you will have it ...
>=20
>> (which of the two looks better to you if we keep the next requirement ?)
>=20
> ... by the next one.
>=20
>> Comments:
>> Here N is determined by the device tree configuration provided by the us=
er.
>>> You also assign pCPU to a CPU pool.
>>>=20
>>> But I am not sure about if this requirement is actually necessary given=
 ...
>>>=20
>>>> +
>>>> +Rationale:
>>>> +
>>>> +Comments:
>>>> +
>>>> +Covers:
>>>> + - `XenProd~static_domains_configuration~1`
>>>> +
>>>> +Specify CPU pool scheduler
>>>> +--------------------------
>>>> +
>>>> +`XenSwdgn~arm64_specify_cpu_pool_scheduler~1`
>>>> +
>>>> +Description:
>>>> +Xen shall assign a CPU pool scheduler to a domain.
>>>=20
>>> ... you have th is one.
>> So, we can keep it as it is.
>>>=20
>>>> +
>>>> +Rationale:
>>>> +
>>>> +Comments:
>>>> +
>>>> +Covers:
>>>> + - `XenProd~static_domains_configuration~1`
>>>> +
>>>> +Assign virtual UART
>>>> +-------------------
>>>> +
>>>> +`XenSwdgn~arm64_assign_virtual_uart~1`
>>>> +
>>>> +Description:
>>>> +Xen shall assign a virtual UART to a domain.
>>>=20
>>> Are we talking about the virtual PL011 or the fake emulation of the rea=
l UART we do?
>> virtual PL011.
>=20
> Is it possible to specify it in the market requirements?
>=20
> [...]
>=20
>>>> +
>>>> +Static VM definition
>>>> +--------------------
>>>> +
>>>> +`XenMkt~static_vm_definition~1`
>>>> +
>>>> +Description:
>>>> +Xen shall support specifying resources for a domain.
>>>=20
>>> Compare to the other requirements, this is quite a vague. Should we lis=
t the resources?
>> The list of resources depends on what the user has provided in the devic=
e tree configuration.
>> But the requirement is correct as it is. Xen allows direct assignment of=
 devices to domains (ie passthrough).
>> How do you want to write it ?
>=20
> This is probably a better question for Bertrand. I don't know how market =
requirements are usually described. I was making a comparison with the othe=
r where you explicitely listed the expected resources (e.g. CPU, Memory, de=
vice).

I definitely agree with Julien here, this requirement is not clear as "reso=
urces" is not specified or defined.
I would highly suggest to be more specific by listing what we mean by resou=
rces and maybe even split this requirement in several to make testing and l=
inking easier.

Cheers
Bertrand

>=20
> Cheers,
>=20
> --=20
> Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 09:10:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 09:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839817.1255597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDKFG-0002St-HT; Tue, 19 Nov 2024 09:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839817.1255597; Tue, 19 Nov 2024 09:10: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 1tDKFG-0002SI-Dy; Tue, 19 Nov 2024 09:10:02 +0000
Received: by outflank-mailman (input) for mailman id 839817;
 Tue, 19 Nov 2024 09:10: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=w6aJ=SO=suse.cz=mbenes@srs-se1.protection.inumbo.net>)
 id 1tDKFF-0002KQ-Ej
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 09:10:01 +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 0be9aad4-a656-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 10:09:57 +0100 (CET)
Received: from pobox.suse.cz (unknown [10.100.2.14])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id D475321901;
 Tue, 19 Nov 2024 09:09: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: 0be9aad4-a656-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5NS4xMzUuMjIzLjEzMCIsImhlbG8iOiJzbXRwLW91dDEuc3VzZS5kZSJ9
X-Custom-Transaction: eyJpZCI6IjBiZTlhYWQ0LWE2NTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA3Mzk3LjMwNjczLCJzZW5kZXIiOiJtYmVuZXNAc3VzZS5jeiIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1732007396; 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;
	bh=d3ZUiM0v/u9S5PwB6Ydqo1vhiAlHB49FGA/7ikHpEDE=;
	b=SIRiPqohnfZsfiR8rWfugglV6kBt9WZNkpsbbr+OOaRL3B/gLbNYdP82bjB0S/Sjpyp4Dh
	6DaUo1iD8tvsOcOGm8MLnAkvlYyhNoN/BKk+Nu5/yLAfPrF9/Eu//yrmX3tKwCADYf1zxx
	7juTShWa4+8m5I6ysJKabU6DZBznQQA=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1732007396;
	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;
	bh=d3ZUiM0v/u9S5PwB6Ydqo1vhiAlHB49FGA/7ikHpEDE=;
	b=eLQee8Kl//Z+uAJMSQ8O/3uMhn0cIi08Nnfcslit1gjRhYGbaqZ6swdcVqziESyeoUyf0K
	N0AZng7gJdnO9PAg==
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa;
	t=1732007396; 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;
	bh=d3ZUiM0v/u9S5PwB6Ydqo1vhiAlHB49FGA/7ikHpEDE=;
	b=SIRiPqohnfZsfiR8rWfugglV6kBt9WZNkpsbbr+OOaRL3B/gLbNYdP82bjB0S/Sjpyp4Dh
	6DaUo1iD8tvsOcOGm8MLnAkvlYyhNoN/BKk+Nu5/yLAfPrF9/Eu//yrmX3tKwCADYf1zxx
	7juTShWa4+8m5I6ysJKabU6DZBznQQA=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;
	s=susede2_ed25519; t=1732007396;
	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;
	bh=d3ZUiM0v/u9S5PwB6Ydqo1vhiAlHB49FGA/7ikHpEDE=;
	b=eLQee8Kl//Z+uAJMSQ8O/3uMhn0cIi08Nnfcslit1gjRhYGbaqZ6swdcVqziESyeoUyf0K
	N0AZng7gJdnO9PAg==
Date: Tue, 19 Nov 2024 10:09:55 +0100 (CET)
From: Miroslav Benes <mbenes@suse.cz>
To: Petr Mladek <pmladek@suse.com>
cc: Easwar Hariharan <eahariha@linux.microsoft.com>, 
    Christophe Leroy <christophe.leroy@csgroup.eu>, 
    Pablo Neira Ayuso <pablo@netfilter.org>, 
    Jozsef Kadlecsik <kadlec@netfilter.org>, 
    "David S. Miller" <davem@davemloft.net>, 
    Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, 
    Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>, 
    Julia Lawall <Julia.Lawall@inria.fr>, 
    Nicolas Palix <nicolas.palix@imag.fr>, Daniel Mack <daniel@zonque.org>, 
    Haojian Zhuang <haojian.zhuang@gmail.com>, 
    Robert Jarzmik <robert.jarzmik@free.fr>, 
    Russell King <linux@armlinux.org.uk>, Heiko Carstens <hca@linux.ibm.com>, 
    Vasily Gorbik <gor@linux.ibm.com>, 
    Alexander Gordeev <agordeev@linux.ibm.com>, 
    Christian Borntraeger <borntraeger@linux.ibm.com>, 
    Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
    Oded Gabbay <ogabbay@kernel.org>, 
    Lucas De Marchi <lucas.demarchi@intel.com>, 
    =?ISO-8859-15?Q?Thomas_Hellstr=F6m?= <thomas.hellstrom@linux.intel.com>, 
    Rodrigo Vivi <rodrigo.vivi@intel.com>, 
    Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, 
    Maxime Ripard <mripard@kernel.org>, 
    Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@gmail.com>, 
    Simona Vetter <simona@ffwll.ch>, Jeroen de Borst <jeroendb@google.com>, 
    Praveen Kaligineedi <pkaligineedi@google.com>, 
    Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
    James Smart <james.smart@broadcom.com>, 
    Dick Kennedy <dick.kennedy@broadcom.com>, 
    "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>, 
    "Martin K. Petersen" <martin.petersen@oracle.com>, 
    =?ISO-8859-15?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, 
    Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, 
    Jeff Johnson <jjohnson@kernel.org>, 
    Catalin Marinas <catalin.marinas@arm.com>, 
    Andrew Morton <akpm@linux-foundation.org>, 
    Jack Wang <jinpu.wang@cloud.ionos.com>, 
    Marcel Holtmann <marcel@holtmann.org>, 
    Johan Hedberg <johan.hedberg@gmail.com>, 
    Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
    Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
    Florian Fainelli <florian.fainelli@broadcom.com>, 
    Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, 
    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
    Xiubo Li <xiubli@redhat.com>, Ilya Dryomov <idryomov@gmail.com>, 
    Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
    Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, 
    Takashi Iwai <tiwai@suse.com>, Lucas Stach <l.stach@pengutronix.de>, 
    Russell King <linux+etnaviv@armlinux.org.uk>, 
    Christian Gmeiner <christian.gmeiner@gmail.com>, 
    Louis Peens <louis.peens@corigine.com>, 
    Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
    Naveen N Rao <naveen@kernel.org>, 
    Madhavan Srinivasan <maddy@linux.ibm.com>, netfilter-devel@vger.kernel.org, 
    coreteam@netfilter.org, netdev@vger.kernel.org, 
    linux-kernel@vger.kernel.org, cocci@inria.fr, 
    linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, 
    dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, 
    linux-scsi@vger.kernel.org, xen-devel@lists.xenproject.org, 
    linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, 
    ath11k@lists.infradead.org, linux-mm@kvack.org, 
    linux-bluetooth@vger.kernel.org, linux-staging@lists.linux.dev, 
    linux-rpi-kernel@lists.infradead.org, ceph-devel@vger.kernel.org, 
    live-patching@vger.kernel.org, linux-sound@vger.kernel.org, 
    etnaviv@lists.freedesktop.org, oss-drivers@corigine.com, 
    linuxppc-dev@lists.ozlabs.org, 
    Anna-Maria Behnsen <anna-maria@linutronix.de>
Subject: Re: [PATCH v2 19/21] livepatch: Convert timeouts to
 secs_to_jiffies()
In-Reply-To: <ZzxR3uAcWFEPUIUK@pathway.suse.cz>
Message-ID: <alpine.LSU.2.21.2411191006340.15289@pobox.suse.cz>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com> <20241115-converge-secs-to-jiffies-v2-19-911fb7595e79@linux.microsoft.com> <718febc4-59ee-4701-ad62-8b7a8fa7a910@csgroup.eu> <Zzsfuuv3AVomkMxn@pathway.suse.cz>
 <96f3b51b-c28c-4ea8-b61e-a4982196215f@linux.microsoft.com> <ZzxR3uAcWFEPUIUK@pathway.suse.cz>
User-Agent: Alpine 2.21 (LSU 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="1678380546-1247530484-1732007229=:15289"
Content-ID: <alpine.LSU.2.21.2411191007130.15289@pobox.suse.cz>
X-Spam-Level: 
X-Spamd-Result: default: False [-5.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	CTYPE_MIXED_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-0.20)[-0.998];
	MIME_GOOD(-0.10)[multipart/mixed,text/plain];
	FROM_EQ_ENVFROM(0.00)[];
	ARC_NA(0.00)[];
	REDIRECTOR_URL(0.00)[aka.ms];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[linux.microsoft.com,csgroup.eu,netfilter.org,davemloft.net,google.com,kernel.org,redhat.com,inria.fr,imag.fr,zonque.org,gmail.com,free.fr,armlinux.org.uk,linux.ibm.com,habana.ai,intel.com,linux.intel.com,suse.de,ffwll.ch,lunn.ch,broadcom.com,hansenpartnership.com,oracle.com,citrix.com,kernel.dk,arm.com,linux-foundation.org,cloud.ionos.com,holtmann.org,linuxfoundation.org,perex.cz,suse.com,pengutronix.de,corigine.com,ellerman.id.au,vger.kernel.org,lists.infradead.org,lists.freedesktop.org,lists.xenproject.org,kvack.org,lists.linux.dev,lists.ozlabs.org,linutronix.de];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+];
	TO_MATCH_ENVRCPT_SOME(0.00)[];
	TAGGED_RCPT(0.00)[netdev,etnaviv];
	MID_RHS_MATCH_FROMTLD(0.00)[];
	RCPT_COUNT_GT_50(0.00)[94];
	RCVD_COUNT_ZERO(0.00)[0];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	R_RATELIMIT(0.00)[to_ip_from(RLst1ywfnn8h7y4sspo7cfrpds)];
	DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com,free.fr]
X-Spam-Score: -5.80
X-Spam-Flag: NO

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--1678380546-1247530484-1732007229=:15289
Content-Type: text/plain; CHARSET=ISO-8859-15
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.LSU.2.21.2411191007131.15289@pobox.suse.cz>

On Tue, 19 Nov 2024, Petr Mladek wrote:

> On Mon 2024-11-18 10:18:49, Easwar Hariharan wrote:
> > On 11/18/2024 3:06 AM, Petr Mladek wrote:
> > > On Sat 2024-11-16 11:10:52, Christophe Leroy wrote:
> > >>
> > >>
> > >> Le 15/11/2024 à 22:26, Easwar Hariharan a écrit :
> > >>> [Vous ne recevez pas souvent de courriers de eahariha@linux.microsoft.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> > >>>
> > >>> Changes made with the following Coccinelle rules:
> > >>>
> > >>> @@ constant C; @@
> > >>>
> > >>> - msecs_to_jiffies(C * 1000)
> > >>> + secs_to_jiffies(C)
> > >>>
> > >>> @@ constant C; @@
> > >>>
> > >>> - msecs_to_jiffies(C * MSEC_PER_SEC)
> > >>> + secs_to_jiffies(C)
> > >>>
> > >>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> > >>> ---
> > >>>   samples/livepatch/livepatch-callbacks-busymod.c |  2 +-
> > >>>   samples/livepatch/livepatch-shadow-fix1.c       |  2 +-
> > >>>   samples/livepatch/livepatch-shadow-mod.c        | 10 +++++-----
> > >>>   3 files changed, 7 insertions(+), 7 deletions(-)
> > >>>
> > >>> diff --git a/samples/livepatch/livepatch-callbacks-busymod.c b/samples/livepatch/livepatch-callbacks-busymod.c
> > >>> index 378e2d40271a9717d09eff51d3d3612c679736fc..d0fd801a7c21b7d7939c29d83f9d993badcc9aba 100644
> > >>> --- a/samples/livepatch/livepatch-callbacks-busymod.c
> > >>> +++ b/samples/livepatch/livepatch-callbacks-busymod.c
> > >>> @@ -45,7 +45,7 @@ static int livepatch_callbacks_mod_init(void)
> > >>>   {
> > >>>          pr_info("%s\n", __func__);
> > >>>          schedule_delayed_work(&work,
> > >>> -               msecs_to_jiffies(1000 * 0));
> > >>> +               secs_to_jiffies(0));
> > >>
> > >> Using secs_to_jiffies() is pointless, 0 is universal, should become
> > >> schedule_delayed_work(&work, 0);
> > > 
> > > Yes, schedule_delayed_work(&work, 0) looks like the right solution.
> > > 
> > > Or even better, it seems that the delayed work might get replaced by
> > > a normal workqueue work.
> > > 
> > > Anyway, I am working on a patchset which would remove this sample
> > > module. There is no need to put much effort into the clean up
> > > of this particular module. Do whatever is easiest for you.
> > > 
> > > Best Regards,
> > > Petr
> > 
> > If we're removing the module, I'll drop it from the series. Just to
> > clarify, do you mean to remove all of samples/livepatch/* or some
> > particular file(s)?
> 
> To be precise, I am going to replace:
> 
> 	samples/livepatch/livepatch-callbacks-demo.c
> 	samples/livepatch/livepatch-callbacks-mod.c
> 	samples/livepatch/livepatch-callbacks-busymod.c
> 
> with a completely different modules because I am reworking the
> callbacks API.
> 
> All other sample modules are going to stay.
> 
> Feel free to remove livepatch-callbacks-busymod.c from the patchset.
> But also feel free to keep it. The API rework goes slowly. I am not
> sure if it would be ready for 6.14.

I would propose that Easwar goes on with his work and prepares an updated 
version of the patch based on Christophe's feedback. That is, disregarding 
Petr's rework for now. The patch set has a higher chance to be merged 
sooner. Petr can then easily rebase. If there is a conflict, we will 
handle it as usual. What do you think?

Miroslav
--1678380546-1247530484-1732007229=:15289--


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 09:11:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 09:11:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839826.1255607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDKGZ-0004TO-QT; Tue, 19 Nov 2024 09:11:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839826.1255607; Tue, 19 Nov 2024 09:11: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 1tDKGZ-0004TH-NP; Tue, 19 Nov 2024 09:11:23 +0000
Received: by outflank-mailman (input) for mailman id 839826;
 Tue, 19 Nov 2024 09:11: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=0Kxf=SO=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tDKGY-0004TB-9j
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 09:11:22 +0000
Received: from mail-oo1-xc36.google.com (mail-oo1-xc36.google.com
 [2607:f8b0:4864:20::c36])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b383c35-a656-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 10:11:17 +0100 (CET)
Received: by mail-oo1-xc36.google.com with SMTP id
 006d021491bc7-5ee9dbf1b47so2548161eaf.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 01:11: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: 3b383c35-a656-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMzYiLCJoZWxvIjoibWFpbC1vbzEteGMzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNiMzgzYzM1LWE2NTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA3NDc3LjExNjA1OCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732007475; x=1732612275; 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=o+wyjy6S4Vk/7+Z8rVEFDxGh+R27I+DILsppFFGtcHI=;
        b=BZw5CYstkz2cS+zz3JFW3+AJX8Zwl5RyuJxvG2YTL9I6j5RxdZ2TNNHmuDyFPSrYbi
         1VvMISA4biH78h098cJKbTEUKJBs9WlnyQyeZ+sVeE09nm24fDNmSHGc462O/HfqbWVq
         uOrRAZjVIDxuBzGel4c5HpRoLJbzj7mSI1Sqw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732007476; x=1732612276;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=o+wyjy6S4Vk/7+Z8rVEFDxGh+R27I+DILsppFFGtcHI=;
        b=Fkh5hMvLaUWwhQAKOLn6e+7A00xNdak1NXdJzjeJNPIFEaFjDHB9eIacetxHC9IYfV
         44UwMLAF9zdsfKNjKtDuQRfI9mgPBi6x5gYLEmwz7HH/EYK2ooOOV41I9Byq+L6CH31e
         mXb3WPYWxIBB4Gk+zZGJu6qomUV1OT0CYTU75ryXRcS181f5quiXMSWPb0pJM+Vh4Q+L
         taiLmeday7bE8Dds82YMbP7JIeGDA9seRT5ta06QVCjhtWHwzv7zKS7BsSyZgowfELCf
         L/lGnTd1LWqj7GUKsq9P2I/0qvv83fQ4V4fr8U6NaylTOoqdQdgFHoS/Nwg0fMvi/L7f
         JFbg==
X-Gm-Message-State: AOJu0YwE22EoK2CXiOwue8X42SYVtO0hDiFI4KYNLS+FpoGwE7YAqvP6
	V/GRIqBveGqvtXdc+9cAzysanDmPZTP+MBZkZXGgLsQWVof63EzPfP3qKteU7hUHcIS7gxwMPoL
	cOc3ciX4BhjLH6HwFIl7jYF3rfFlw1alqIdsAGw==
X-Google-Smtp-Source: AGHT+IHiBXfthwAgRQIpe9nbofcyXAAWPPIET9wfoD2ltgFnO9tqm6sWdnOIP7FTBoL67iQApDzaGk+w2083PDc4byM=
X-Received: by 2002:a9d:6a57:0:b0:710:f22b:c825 with SMTP id
 46e09a7af769-71aa693087amr1265236a34.1.1732007475680; Tue, 19 Nov 2024
 01:11:15 -0800 (PST)
MIME-Version: 1.0
References: <20241118171809.2447714-1-andrew.cooper3@citrix.com>
In-Reply-To: <20241118171809.2447714-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Tue, 19 Nov 2024 09:11:04 +0000
Message-ID: <CACHz=ZjJRmreESuVOFf_z_G-d47Xayik1Rp4zW4OqL=X1mbrxw@mail.gmail.com>
Subject: Re: [PATCH] x86/boot: Introduce boot-helpers.h
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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 18, 2024 at 5:18=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> Eclair complains that neither reloc_trampoline{32,64}() can see their
> declarations.
>
> reloc_trampoline32() needs to become asmlinkage, while reloc_trampoline64=
()
> needs declaring properly in a way that both efi-boot.h and reloc-trampoli=
ne.c
> can see.
>
> Introduce boot-helpers.h for the purpose.
>
> 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>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
>
> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1549438881
> ---
>  xen/arch/x86/boot/reloc-trampoline.c    |  4 +++-
>  xen/arch/x86/efi/efi-boot.h             |  4 ++--
>  xen/arch/x86/include/asm/boot-helpers.h | 13 +++++++++++++
>  3 files changed, 18 insertions(+), 3 deletions(-)
>  create mode 100644 xen/arch/x86/include/asm/boot-helpers.h
>
> diff --git a/xen/arch/x86/boot/reloc-trampoline.c b/xen/arch/x86/boot/rel=
oc-trampoline.c
> index d5548eb08f85..e35e7c78aa86 100644
> --- a/xen/arch/x86/boot/reloc-trampoline.c
> +++ b/xen/arch/x86/boot/reloc-trampoline.c
> @@ -2,13 +2,15 @@
>
>  #include <xen/compiler.h>
>  #include <xen/stdint.h>
> +
> +#include <asm/boot-helpers.h>
>  #include <asm/trampoline.h>
>
>  extern const int32_t __trampoline_rel_start[], __trampoline_rel_stop[];
>  extern const int32_t __trampoline_seg_start[], __trampoline_seg_stop[];
>
>  #if defined(__i386__)
> -void reloc_trampoline32(void)
> +void asmlinkage reloc_trampoline32(void)
>  #elif defined (__x86_64__)
>  void reloc_trampoline64(void)
>  #else
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 9d3f2b71447e..1d8902a9a724 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -4,6 +4,8 @@
>   * therefore can define arch specific global variables.
>   */
>  #include <xen/vga.h>
> +
> +#include <asm/boot-helpers.h>
>  #include <asm/e820.h>
>  #include <asm/edd.h>
>  #include <asm/microcode.h>
> @@ -103,8 +105,6 @@ static void __init efi_arch_relocate_image(unsigned l=
ong delta)
>      }
>  }
>
> -void reloc_trampoline64(void);
> -
>  static void __init relocate_trampoline(unsigned long phys)
>  {
>      trampoline_phys =3D phys;
> diff --git a/xen/arch/x86/include/asm/boot-helpers.h b/xen/arch/x86/inclu=
de/asm/boot-helpers.h
> new file mode 100644
> index 000000000000..166f49b4da01
> --- /dev/null
> +++ b/xen/arch/x86/include/asm/boot-helpers.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Declarations for helper functions compiled for both 32bit and 64bit.
> + *
> + * The 32bit forms are called only from assembly, so no declaration is p=
rovide
> + * here.
> + */
> +#ifndef X86_BOOT_HELPERS_H
> +#define X86_BOOT_HELPERS_H

Why not follow the coding style ? IMHO if we don't agree on coding
style we should update it, otherwise we should follow coding style.

Maybe considering this
https://lists.xenproject.org/archives/html/xen-devel/2024-11/msg00658.html
move the file into the boot include directory instead?

> +
> +void reloc_trampoline64(void);
> +
> +#endif /* X86_BOOT_HELPERS_H */

Frediano


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 09:18:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 09:18:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839835.1255617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDKNX-0005Up-GQ; Tue, 19 Nov 2024 09:18:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839835.1255617; Tue, 19 Nov 2024 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 1tDKNX-0005Ui-DO; Tue, 19 Nov 2024 09:18:35 +0000
Received: by outflank-mailman (input) for mailman id 839835;
 Tue, 19 Nov 2024 09:18: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=Pc1c=SO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tDKNV-0005Uc-T5
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 09:18:34 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on20614.outbound.protection.outlook.com
 [2a01:111:f403:260e::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c414f11-a657-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 10:18:27 +0100 (CET)
Received: from DU7P194CA0027.EURP194.PROD.OUTLOOK.COM (2603:10a6:10:553::7) by
 DB4PR08MB8078.eurprd08.prod.outlook.com (2603:10a6:10:386::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8158.23; Tue, 19 Nov 2024 09:18:23 +0000
Received: from DU6PEPF0000A7E2.eurprd02.prod.outlook.com
 (2603:10a6:10:553:cafe::25) by DU7P194CA0027.outlook.office365.com
 (2603:10a6:10:553::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24 via Frontend
 Transport; Tue, 19 Nov 2024 09:18:23 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU6PEPF0000A7E2.mail.protection.outlook.com (10.167.8.42) with
 Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14 via
 Frontend Transport; Tue, 19 Nov 2024 09:18:22 +0000
Received: ("Tessian outbound 6a0f5b372c2e:v490");
 Tue, 19 Nov 2024 09:18:22 +0000
Received: from Lc0b7a44e1a31.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 ECB4F871-C890-434A-AF61-1464B53D036B.1; 
 Tue, 19 Nov 2024 09:18:15 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lc0b7a44e1a31.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 19 Nov 2024 09:18:15 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DU0PR08MB7833.eurprd08.prod.outlook.com (2603:10a6:10:3b6::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.18; Tue, 19 Nov
 2024 09:18:12 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%5]) with mapi id 15.20.8158.023; Tue, 19 Nov 2024
 09:18: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: 3c414f11-a657-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwZTo6NjE0IiwiaGVsbyI6IkVVUjAzLUFNNy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjNjNDE0ZjExLWE2NTctMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDA3OTA3Ljk4ODY1NSwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=LDNg97vumSDN9oSnTmW1vE3dQpcNIquC4fcIp0qsFsanlKh3j2j7WONnuLLY3iGa3C0ZN13tSC+cFkcLZs8D6bk7LVMyIK22ocC4V2/Bur9VE9oN8BsOC0RPBdfXKu91MzS1/FcVDNqrwc2uRAYtvQ76WTDxgiKXFgy+jymD1fnHyIllIjLoflOtZ4tQWyiSivKfMkWETT5vTmMvCUwKFm7aVamTZzwtm9l7D+9UxXjB3ZtWnGjL3roETN26elLcdnSjzZM48Z+zww7bn7nowxAFNQtY6cI4w5+nmlTBdXzOW9psW3rmfavbpkKi4DV5Yhl7cbAq8H4t7wEag2yGPw==
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=GUPiuruflUY973woLs3xzsxWQIgJssVRO/EZEaZQwAw=;
 b=Gc/1RPT+u5Tkodl17iJIYJrrxr31sOP8hbFwtQoi7O5llqBr49jes5vtJ7EpmLUpoJMdaKleZZnINgfLoG+kxoVLzaFanS/cO5USr60Cr7TdxJSO7P9vRQ/X861+5yjNy+0mNXdN9a4kWHrnp5Nh4ByAQygOqXZcj1OYS23dodeZWN0EWwLWol0XmVWpCTORqSb4gYkTxqRIOANTQSUT4voC+4aotspWAiFfy4eQnHJLa3HlVo9uJy7Bq2flaZaVHzpudz2O0b7O1mgJIc4CzXPdEN6ncmdeKDG0buRW3ykzX5BMGnZsoKJpo+Lvd+poR3LkiksD13l16RU1XFfF/Q==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=GUPiuruflUY973woLs3xzsxWQIgJssVRO/EZEaZQwAw=;
 b=QWoM98W7YDMsgfp170T6g+jhvOEg6pdXy7rvGb1Un8GxmOHJ1zMXQycnxS4EbKAtJv6mQXu6NSuFxC7gBFMegYA/Ud+l9aREx2dtthgKQPAQsMll7wJKwU+8TrvGDOAY2f1hvFQm2h/fV8Ip0jckVHsGn8+HnerXDntZ+z48c4Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 9fb23bb16d900091
X-TessianGatewayMetadata: TY/+ICtCHG4/6up3DMHB/wrXi4wPBs3+KsVHfU8f7NMw0QLjJkgAfdK2MsVIvMeXANjad10Uk38Y/GVE+enz2OcsOqQOnoDjRuSFGzYCcSN9LEi4Hmo3r+x2EWhpmNYrLWDjXVLMfewd1Lza/SRlmiF4DvlNPlPpuKpyOpkiNgg=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hv2rKAubCIHJ9OI3iduSLP8yTaJvbzibX7CQlu0dByJ2M1YBGZUUgVr+vJ3pA3Ul0hHtRiy1mL8VxaKEpv4EoYIZrMx1AFVQupbt0mAZ0z/LS/rOJXsHjwM2DkAQX7LceANwqcVUJZ2ytljhs5k5F6tdCDbiaQAojMNssf1ViKfbZkZ1qSKTpyn32dFi/4apwQ/kmBr4GS49EefOADdGuJhC8lYcTlvUWnAwEpEkmbGW/nGW95ERd1qceNtC6YK+vkT37lzJfHbcX9XTQWwtU/oGhqbKKfu4+PF77/QflAJB8fb3DjYOZqbE9oP/vEcYMTfLUAaQcz+yXTzNQPQYnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GUPiuruflUY973woLs3xzsxWQIgJssVRO/EZEaZQwAw=;
 b=lalR7m6yZeUtxgrkN5Zs6iK4rA2CsScKnIHyc2S2lwjwcENoagsawysWVlW1e/PJPYsyQCcrV9a7Przr3OJgmg5xJojpCcdeEZtI/MVAZGJJWUNvjl1OxxUti7APXOfS1VDsTtwrVtVQMUYNNFCxwXiSbRsAk/vcGiJU5Z3fzzYoaJJdhKoRjd/K756y3K0VUFk315/hmHUMMG1NDhuPFV6o9Lr7z8RQUg5EJy4j+02MaGKCuC6jUy4YioCFTGEu2RniPQTD3+B5d76GzrmxgWIk5JrLUkyz1/eIo88S3NhUtlmTPwDoQBSvrX/qadEvWjdcxTQK2mW6OSo9HEkSGg==
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=GUPiuruflUY973woLs3xzsxWQIgJssVRO/EZEaZQwAw=;
 b=QWoM98W7YDMsgfp170T6g+jhvOEg6pdXy7rvGb1Un8GxmOHJ1zMXQycnxS4EbKAtJv6mQXu6NSuFxC7gBFMegYA/Ud+l9aREx2dtthgKQPAQsMll7wJKwU+8TrvGDOAY2f1hvFQm2h/fV8Ip0jckVHsGn8+HnerXDntZ+z48c4Y=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>,
	Artem Mygaiev <artem_mygaiev@epam.com>
Subject: Re: [PATCH] docs: fusa: Add requirements for mapping domain address
 to machine address
Thread-Topic: [PATCH] docs: fusa: Add requirements for mapping domain address
 to machine address
Thread-Index: AQHbLuyoRTuz7iztXUutJtgpv3MjBbK+agEA
Date: Tue, 19 Nov 2024 09:18:10 +0000
Message-ID: <E3099862-A23A-4856-801E-2C2C6B30154F@arm.com>
References: <20241104190608.3036159-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20241104190608.3036159-1-ayan.kumar.halder@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DU0PR08MB7833:EE_|DU6PEPF0000A7E2:EE_|DB4PR08MB8078:EE_
X-MS-Office365-Filtering-Correlation-Id: dd595d7f-7327-44d0-5137-08dd087b1d82
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|1800799024|10070799003|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?aY13O44EhjTJZdGUpi7gP5W+zYyHuANRnZS+u3mK8r66iNdwy+BSIuJVjyaN?=
 =?us-ascii?Q?63Tsrxxt/CHaifGmqD0I93OynA6LvGnB479CJYd/ep+bOiDPfwfcVMn0qIos?=
 =?us-ascii?Q?Zpb+pSABkd6p0Hc5AQAJdoDPhasfsZe0BanpMcS9b6b78qxX8Dsq/W4XF4Xr?=
 =?us-ascii?Q?XV3yq2lPxWR4HjB4EThmGuagFkbELJYtQl2jauiwQ3HwlY8SzTLy8oZedQHz?=
 =?us-ascii?Q?FiVd3naPVGP2W08vfa+et7SOU0psjzDvv+hMKj/rRm2lsaMJ1JE8wKlQJMla?=
 =?us-ascii?Q?oa57jHYdPlzL0Uj8XCXobNMZPvwFwxap7Mn9H4NvjIUMn+Ocj6OGtTrGC5CS?=
 =?us-ascii?Q?kYUU4rm06XEZZv4rALiNz8iFikSZEBsc8tvuMsZ+RMbM/65AOCW6Cnh4za0L?=
 =?us-ascii?Q?5eWKF+slGeEOgYd0KdTCZI+KZVH+C+oIsNrLAb7swJa3yce9OerWplsYLrrr?=
 =?us-ascii?Q?YYuzCXfZA3eILixpkbL3Dk3FRR1VrU2P5/lh2XsbcmCwJDBhtsDdg9/aTRse?=
 =?us-ascii?Q?0b3T5GKbhWo28/dsXcVe849uzv2HnSRDoj+X4F/KY5p62tnXhjduS3NDV9xY?=
 =?us-ascii?Q?6+ZHChCty5LlqwpIu25TISUdanwcKW3HnwDmNx54njdIra3B6aFZco71x0tz?=
 =?us-ascii?Q?JG5DwFHvgaXoJsfIFAeGMViUX8O3JyFgByGgi6SOExmPHdNYOtRYYVzLipAc?=
 =?us-ascii?Q?jcI6o8sUO1ve0Yd+xX1Xpt765xF2x8/xHtQUQe8JvwZbso5mf5SwDxiQG6w6?=
 =?us-ascii?Q?uvXbhZeWJRmY7/Y84DA1g3wTMCoMBUlEAO7XOLBYMe+W8pC4876m7MkXYmf3?=
 =?us-ascii?Q?eNZ7KDnleQEzpMkCrz3s0sF/WckLc4PWnWux47HOTLpM0y9rcb2a4fC84COY?=
 =?us-ascii?Q?3vmOAe0Tx0MXsVoIheqllFmFgPW4OcrE8BG3txh3iM0GB7gKRFevdByqWkFk?=
 =?us-ascii?Q?YVLEgzW80yvL4Tr01Wy9aGe6aCPA326Jlyfeoz/WF3bHowVYyBp4jVpxlQZi?=
 =?us-ascii?Q?qIrhrV3S0DfXEuT3juMDo14udRFLuLNM+yy3W6vu5mF0MouQOjGHVode5jt8?=
 =?us-ascii?Q?R4aK1usejCcm+olajsa70r6Cu9uefI2hNDKXPk2mFFVjxS0/zNIeKpr+TLpS?=
 =?us-ascii?Q?ccxarZ5eyBiBhUSenmzRGysxG+UaxSuu/zn05I4kcHVM6eBJtw3QNaXeTzxI?=
 =?us-ascii?Q?gWwfTiDXQRNiZA0Um/1p24Q6vfVEP893rT6YuzdZd8fo/C5Mwcv7El/T0Xht?=
 =?us-ascii?Q?VvJofwrIOTEevSFbBLegqqwtm5MvQ5znPqydsu1gPAWjoaYWrmsyqJFqkO4P?=
 =?us-ascii?Q?4p9I4eG69WJ1DEj+qyC0mhJ7m6I24APMvFs/jlXZry4y+GkhjeNanQr7lA0t?=
 =?us-ascii?Q?1Dxfel4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(10070799003)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <B3F8DEF35EBF614CA10C90C19D46E6B8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7833
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:25a::24];domain=DB9PR08MB6588.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7E2.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b1999964-8e2d-4c6c-8597-08dd087b165d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|376014|35042699022|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Lbd3iFUslHjdLFrOKuupaLDXO3ipejT+x3CVLGhR/gSaaSN8ZGDoE2N5tu2W?=
 =?us-ascii?Q?ZRB3YxDm0w8O1MowT/DJY0yxdPBJk4t6Gp5Kx7SS4cj73FZ7F1M326FxnlXY?=
 =?us-ascii?Q?cBxGLrz+arobxx+3IFzE3dUb/77+cgCrafkEU7gxioIY+7WekijFHC2p0was?=
 =?us-ascii?Q?AlLBI3f81pQEG1Uw5/ArMpgi9xxFBTduxYvY3yjtml54L7KoogiDhBtK8J3P?=
 =?us-ascii?Q?TdbECp6uF3ufbeiqgtHU0AXY/3pCz6OdxCdp0MWG6o3P6uSk0Glsrx0wS2MC?=
 =?us-ascii?Q?p/7Y0OjrAmp5zHlJj4SVTzXemN/9M2OaR8niQfVcI+l76roFj3V907QavL5K?=
 =?us-ascii?Q?M8bbXOPgRgjtyFLwa4s4uUUD938tJfhzDT0oV8uhAo7eVIZuYwT8qRYuu0hf?=
 =?us-ascii?Q?Zj1Yv8hH2lkmwEAiDB28yMWOJ2NjorbsQk/nRscTRJkX2Q1G6b0+DFo+IbKZ?=
 =?us-ascii?Q?tbKGFkiPdvYbpygnKTuj4tvVlgWtPijGJZ8ohDpVWy1DFtnWXq0fKXUnmf+6?=
 =?us-ascii?Q?r+16BA1CCRE3q7HP4zS/pe1XRhSTP9q55hCEmGBTp4F8CCysSGsO/SAeqJOb?=
 =?us-ascii?Q?7lmymGI+9FJQSffGEQY4E5XLtEikSBoR1/FLbp+jateg7BVKq2QcnRK9s+tS?=
 =?us-ascii?Q?NssY/aeEFEirsbWOUSTG3kZeblmVVsHm3f/ILYaiIzcHpiQwStsjoZ1Z/2KB?=
 =?us-ascii?Q?qm+4OMz3tba+6cuJ4GFaT+mxMFSFiWsG/ovsTYTYe7Y4uUtmt19LZol6BwBB?=
 =?us-ascii?Q?xyaf0jmlSWonYyBTZcexO9oxRyOMiU9RcfpptGabBvzZaCavsCQvG6Pd7xvi?=
 =?us-ascii?Q?lYmBNdZwCKZC9grs+tgCs6dmYIR+GTJzVBIn7KuKtaj6Cx4+CWAd4n/5fYjZ?=
 =?us-ascii?Q?C5Otk3hdtwQ7oY/gk4Xi0jFz8B3EDBKt8xKj62HWs4/GhEat7eB+ififyMPB?=
 =?us-ascii?Q?ixSB0vQM5khLoFBPiu57A6YefmOUFhB3PbRn9fene8SF+B0uCe52pU+OGGLd?=
 =?us-ascii?Q?d9Odb4Q6+W+MPne0HgkzbORWaHX7Z++aGOAsu/cM29D9OZEyWZZVnFHAzNsN?=
 =?us-ascii?Q?i56bhqwBlsR5x1Nq61CKRQ8/7UWfwK8T94ne7nYNOyO5dDQKbBPky7ZKw4xf?=
 =?us-ascii?Q?rrne/oXbdh1DWP6xjW0IVbSaC9mylbTR7rAtSNbzauceP/iiuMqP9xKtpkHQ?=
 =?us-ascii?Q?o5CaENEXN1izL3ArZaAQxraaNjqWsTK3r/WphkBf7zZ2EjSCVwXVPklQE55p?=
 =?us-ascii?Q?08sg51k4Y2+H2LuAJaAcGwUt/Ljk1lt4H7knZ5sTqkQPj9KMOK8MYEqWRMKC?=
 =?us-ascii?Q?Ut6P9Z+Isj3PwIgtBi8kG9/krKjG4qsXuUfEFhDizPXoPXT3uY8SZi5lG62k?=
 =?us-ascii?Q?bpOstaIjdUig1M8d3ZkmNwK3V+K7FdMWWm+km5buNtGI1cjJgQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(376014)(35042699022)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 09:18:22.5557
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dd595d7f-7327-44d0-5137-08dd087b1d82
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000A7E2.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8078

Hi Ayan,

First a general comment: you use some terms such as machine address or doma=
in
address which are a bit undefined to me. This needs some definition first f=
or those to
be clear. Maybe use Virtual, IPA and PA instead all the time.

> On 4 Nov 2024, at 20:06, Ayan Kumar Halder <ayan.kumar.halder@amd.com> wr=
ote:
>=20
> The following are the requirements written mapping :-
> domain virtual address to machine address
> intermediate physical address to machine address
>=20
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> .../design-reqs/arm64/domain_buffer_copy.rst  | 172 ++++++++++++++++++
> docs/fusa/reqs/market-reqs/reqs.rst           |  30 +++
> docs/fusa/reqs/product-reqs/arm64/reqs.rst    |  40 +++-
> 3 files changed, 240 insertions(+), 2 deletions(-)
> create mode 100644 docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rs=
t
>=20
> diff --git a/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst b/do=
cs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
> new file mode 100644
> index 0000000000..67a70a35c4
> --- /dev/null
> +++ b/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
> @@ -0,0 +1,172 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +Translate domain address to machine address
> +-------------------------------------------
> +
> +`XenSwdgn~arm64_translate_domain_addr_to_machine_addr~1`
> +
> +Description:
> +Xen shall translate a domain address to machine address using Address
> +Translation Stage 1+2 Non-Secure Kernel Read/Write registers.

domain address here is a bit unprecise. Do you mean VA or IPA ?

Also is this only in the MPU case ?

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~translate_domain_va_to_ma~1`
> +
> +Get machine address
> +-------------------
> +
> +`XenSwdgn~arm64_get_machine_addr~1`
> +
> +Description:
> +Xen shall be able to get the machine address for a domain by reading
> +the physical address register.

This needs rephrasing to remove the "be able to":
Xen shall use the physical address register to retrieve the machine address=
.

Also what you mean by "machine address" needs to be defined here.

> +
> +Rationale:
> +
> +Comments:
> +It should return the fault information if the translation has failed.

I do not understand this one. Maybe this requirement needs more context to =
be understood.

> +
> +Covers:
> + - `XenProd~translate_domain_va_to_ma~1`
> + - `XenProd~access_check_fetch_page~1`
> +
> +Translate domain address to intermediate physical address
> +---------------------------------------------------------
> +
> +`XenSwdgn~arm64_translate_domain_addr_to_ipa~1`
> +
> +Description:
> +Xen shall translate a domain address to intermediate physical address us=
ing
> +Address Translation Stage 1 Non-Secure Kernel Read/Write registers.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> +Set domain address as intermediate physical address
> +---------------------------------------------------
> +
> +`XenSwdgn~arm64_set_ipa_eq_gva~1`
> +
> +Description:
> +Xen shall set domain virtual address as intermediate physical address wh=
en EL1
> +MMU is disabled.

Here you start using virtual address. I also do not get what is to be set h=
ere.
Do you mean that Xen shall consider VA=3DIPA when EL1 MMU is disabled ?

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> +Walk the domain's stage 1 page tables to translate 4KB domain address to=
 IPA
> +------------------------------------------------------------------------=
----
> +
> +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1`
> +
> +Description:
> +Xen shall walk the stage 1 page tables to translate domain address to
> +intermediate physical address for 4KB page granularity using TTBR0
> +for intermediate physical address size =3D 48 bits.

Is this always the case ? aren't there cases where we should not do that ?

Do we really want in the certified case to accept to have to walk stage 1 p=
age
tables instead of using the hardware way ?

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> +Walk the domain's stage 1 page tables to translate 16KB domain address t=
o IPA
> +------------------------------------------------------------------------=
-----
> +
> +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr0~1`

Req is name 4KB for 16KB

> +
> +Description:
> +Xen shall walk the stage 1 page tables to translate domain address to
> +intermediate physical address for 16KB page granularity using TTBR0 for
> +intermediate physical address size =3D 48 bits.

I am not quite sure that it is a good solution to duplicate for each page t=
able size here.
Do you want to support all possibilities ?

> +
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> +Walk the domain's stage 1 page tables to translate 64KB domain address t=
o IPA
> +------------------------------------------------------------------------=
-----
> +
> +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1`

Same here

> +
> +Description:
> +Xen shall walk the stage 1 page tables to translate domain address to
> +intermediate physical address for 64KB page granularity using TTBR0 for
> +intermediate physical address size =3D 48 bits.

Ditto

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> +Walk the domain's stage 1 page tables to translate 4KB domain address to=
 IPA
> +------------------------------------------------------------------------=
----
> +
> +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1`
> +
> +Description:
> +Xen shall walk the stage 1 page tables to translate domain address to
> +intermediate physical address for 4KB page granularity using TTBR1 for
> +intermediate physical address size =3D 48 bits.
> +

You duplicate the requirement for TTBR1 but do not say when TTBR0 or TTBR1
shall be used.

> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> +Walk the domain's stage 1 page tables to translate 16KB domain address t=
o IPA
> +------------------------------------------------------------------------=
-----
> +
> +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr1~1`
> +
> +Description:
> +Xen shall walk the stage 1 page tables to translate domain address to
> +intermediate physical address for 16KB page granularity using TTBR1 for
> +intermediate physical address size =3D 48 bits.
> +
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> +Walk the domain's stage 1 page tables to translate 64KB domain address t=
o IPA
> +------------------------------------------------------------------------=
-----
> +
> +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1`
> +
> +Description:
> +Xen shall walk the stage 1 page tables to translate domain address to
> +intermediate physical address for 64KB page granularity using TTBR1 for
> +intermediate physical address size =3D 48 bits.
> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenProd~access_check_fetch_page~1`
> +
> diff --git a/docs/fusa/reqs/market-reqs/reqs.rst b/docs/fusa/reqs/market-=
reqs/reqs.rst
> index ca020f9a33..9b6852d746 100644
> --- a/docs/fusa/reqs/market-reqs/reqs.rst
> +++ b/docs/fusa/reqs/market-reqs/reqs.rst
> @@ -60,5 +60,35 @@ Rationale:
>=20
> Comments:
>=20
> +Needs:
> + - XenProd
> +
> +Copy buffer to domain
> +---------------------
> +
> +`XenMkt~copy_buffer_to_domain~1`
> +
> +Description:
> +Xen shall support copying a buffer to a domain.

What kind of buffer ?
This requirement is very generic and not that precise.
At the end this is just saying that Xen shall be able to copy memory.

> +
> +Rationale:
> +
> +Comments:
> +
> +Needs:
> + - XenProd
> +
> +Copy buffer from domain
> +-----------------------
> +
> +`XenMkt~copy_buffer_from_domain~1`
> +
> +Description:
> +Xen shall support copying a buffer from a domain.
> +
> +Rationale:
> +
> +Comments:
> +
> Needs:
>  - XenProd
> \ No newline at end of file
> diff --git a/docs/fusa/reqs/product-reqs/arm64/reqs.rst b/docs/fusa/reqs/=
product-reqs/arm64/reqs.rst
> index 0453dbb862..e2ab5ea43e 100644
> --- a/docs/fusa/reqs/product-reqs/arm64/reqs.rst
> +++ b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
> @@ -53,10 +53,46 @@ Rationale:
>=20
> Comments:
>=20
> +Covers:
> + - `XenMkt~static_vm_definition~1`
> +
> +Needs:
> + - XenSwdgn
> +
> +Translate domain virtual address to machine address
> +---------------------------------------------------
> +
> +`XenProd~translate_domain_va_to_ma~1`
> +
> +Description:
> +Xen shall support translating domain's virtual address to machine addres=
s.

I find the "support" here a bit strange.

Maybe it would be simpler to define that Xen shall have a function named xx=
x to
do this ?

I am not quite convince this is not only a design req.

> +
> Rationale:
>=20
> +Comments:
> +
> Covers:
> - - `XenMkt~static_vm_definition~1`
> + - `XenMkt~copy_buffer_from_domain~1`
> + - `XenMkt~copy_buffer_to_domain~1`
>=20
> Needs:
> - - XenSwdgn
> \ No newline at end of file
> + - XenSwdgn
> +
> +Access check and fetch page from domain
> +---------------------------------------
> +
> +`XenProd~access_check_fetch_page~1`
> +
> +Description:
> +Xen shall support access check and fetching page from a domain.

This should be split in 2 reqs.

> +
> +Rationale:
> +
> +Comments:
> +
> +Covers:
> + - `XenMkt~copy_buffer_from_domain~1`
> + - `XenMkt~copy_buffer_to_domain~1`
> +
> +Needs:
> + - XenSwdgn
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 09:37:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 09:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839848.1255627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDKfV-0001W3-33; Tue, 19 Nov 2024 09:37:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839848.1255627; Tue, 19 Nov 2024 09: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 1tDKfV-0001Vw-0M; Tue, 19 Nov 2024 09:37:09 +0000
Received: by outflank-mailman (input) for mailman id 839848;
 Tue, 19 Nov 2024 09: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=7Qpl=SO=amd.com=Luca.Miccio@srs-se1.protection.inumbo.net>)
 id 1tDKfT-0001VO-CA
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 09:37:07 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20610.outbound.protection.outlook.com
 [2a01:111:f403:240a::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d23eb244-a659-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 10:36:59 +0100 (CET)
Received: from BN9PR03CA0280.namprd03.prod.outlook.com (2603:10b6:408:f5::15)
 by SA1PR12MB6893.namprd12.prod.outlook.com (2603:10b6:806:24c::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Tue, 19 Nov
 2024 09:36:54 +0000
Received: from MN1PEPF0000ECDA.namprd02.prod.outlook.com
 (2603:10b6:408:f5:cafe::a8) by BN9PR03CA0280.outlook.office365.com
 (2603:10b6:408:f5::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23 via Frontend
 Transport; Tue, 19 Nov 2024 09:36:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 MN1PEPF0000ECDA.mail.protection.outlook.com (10.167.242.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 19 Nov 2024 09:36:54 +0000
Received: from [10.252.149.239] (10.180.168.240) 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, 19 Nov
 2024 03:36:52 -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: d23eb244-a659-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwYTo6NjEwIiwiaGVsbyI6Ik5BTTA0LU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQyM2ViMjQ0LWE2NTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA5MDE5LjgzMjgyNCwic2VuZGVyIjoibHVjYS5taWNjaW9AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NugkcZLAA63JwMXDdRkB1yQCMJJSqyO8n1OKynQkEjONjpfJLnAIEL8PaDdjCc804AdrLz9oBmujCHQbvB/ROmJC1H5aJ+EQAjc6ZI/iWsob/q9nSys//H9JJLo/oIm98Q1RDzxMEhRUh1qOLcaOYtM0s/Q+gKmoto76fDu7cUY3kGCWP5XnhU/GLvXocO7VQy34EYDW7JS0JI4p2jFn+SwjHFMkKtZ8TUonaSITlqsnBEnKsWzWsTHSIJ9rYhLiKgrD1Te+fxLxa6XbNtQNErivTAM0kQSZgCbYZyzv2HaraAmvasbTpfZuf3T4mXLO2KWPp598iEatcDPAqSabCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lC8+7P4BZ4TtVH7pSD2h0XJoYBoRY8fes6yNWaAApKs=;
 b=dH1uF9ZqRO439Xe7RBPclkTNhWNVzs5ccRa+SziXxsTdLvOTMrnAvJCHZu0MDb4eocp7rkPftVy+tZbTa0qiIyq38QGxrYt0z7jfrxnUUIxN3Nodfl4AtVAQltnqWsEjFtO6Ina1M1Km9XWlRPXA1PDQam99f0sdLNc9fOZtG+oEotulgnO9bMwiuEVcpaq23LR8A5dhKDGCL8xSjC/8KGQL0l0yODt7U5M/mIZysnE49A8QW91b5PahcNAvcYsY6yTFH5tZ0TC0icoHnysAoFY9lATk9NrE/njStu6/le6Qbbva3Jp3LDF6XORF58IiAOK3keFvC1FYZuWK19EaDA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.12) smtp.rcpttodomain=kernel.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=lC8+7P4BZ4TtVH7pSD2h0XJoYBoRY8fes6yNWaAApKs=;
 b=WFzc5vlyZykuUS3/3Gal8uTobrLyhuTIm1mG2vVjk0/QncDKrtbNlRf1/FQKPZFpN09FrMX6SWQG1u7Og6tOlU3HznE50AkMd7m1ztzzebQ/5yUOVOdHivn3alOW/0QoxRQxjgKWLoaSS5Las7wuzmtIR43Al+ReOQrMFsXLrWE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.12)
 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.12 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.12; helo=SATLEXMB04.amd.com; pr=C
Message-ID: <c489a328-3d21-450c-8f1a-d8235166971a@amd.com>
Date: Tue, 19 Nov 2024 10:36:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder] UBOOT_SOURCE/SCRIPTS variables must always be set
To: Stefano Stabellini <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>
References: <20241118141205.3513831-1-luca.miccio@amd.com>
 <alpine.DEB.2.22.394.2411181620500.1160299@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: "Miccio, Luca" <luca.miccio@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2411181620500.1160299@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDA:EE_|SA1PR12MB6893:EE_
X-MS-Office365-Filtering-Correlation-Id: 55442cec-aa98-4110-8c41-08dd087db40b
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?bS9xOUh2QklGUWNDL2w1SDZJQTNiTXNmT2kzZXBHSFpxVDF6eStWeXNFbDZm?=
 =?utf-8?B?ZW0xQ2RCMGJReS8xWFhLajVxVjAzS1ZYbjBKRGxwUmJuNzN5T2JTdTBEZFRI?=
 =?utf-8?B?SGNRWTB3MEZtaXNUZ2JsUFQvb09xZi9xVnJhbm5qdlduWTM2ekRiQU1FMlRP?=
 =?utf-8?B?VkVaTVhscyt1SDVsTmZacDAzMjJHcGNkV2VETnNyTnF2ZGhyZm5DSlFxd1Iv?=
 =?utf-8?B?aEJkNllwS1V4ZGt5RURqN1hjTmxZdGFXUC96bjZxbE50V092b3dRMCt2dTRx?=
 =?utf-8?B?ankyK205N1Bid3dCN0daUENwc2tiUWc0WjVZdm5ieTBGQVdpK2FHTllMWHpj?=
 =?utf-8?B?TTBmbjRQemx0SWY2Rk9XcnZhUkxrTHRPOW9HR3daYk85d29wUjY4ckpCWlha?=
 =?utf-8?B?VzhuZVQ5MVRybFZtSXJjQzF1ZDFod044c3VQazQzYW9FQXFWY0Z2OEVyck1z?=
 =?utf-8?B?MURFOE1PRHVnWkZxcHA1SlpzaU5QVkRXbkxoSkE4UmlNMytwYUd0U2ZjMkV3?=
 =?utf-8?B?QmtHVlNLQ1dTcVRoWEpQb2tldmo3d1F0YzhIUFpESkxjdGdzWDIzSkc2KzhV?=
 =?utf-8?B?OGNOVUtDbHBaTy9SMlVPc3VBVGZKUVZrYmloRWxQVEZlZFNNNVl1ZVIxRDRL?=
 =?utf-8?B?QkNrOHdTSzZROWYrUE9KOHhKQkQrN0ZueEduaGRTQUlUeXFsbHZQdDVsRVpj?=
 =?utf-8?B?aEl6eXhvNXdvN1RrT3JDUzl5OVI0aVBBNG5JUE1OV0RITmZ4aXZZU2NSaUhE?=
 =?utf-8?B?bzF5cjdRWC9JVGpwbE9JRG5CZk5USUNnSy83MVRNZnQ4Rk00K2JLa2c3NWhO?=
 =?utf-8?B?Mk5BUkkrQ0t0QklXeHZ3bVVGL3c0OHdlODhBWjZmelpkMzZ3ekw0OUpzYTgy?=
 =?utf-8?B?blpHYmtXZjlaU29Oais1WnM4dXdLd3JPbFpCVkd0NUc2ajdEcUpCdjJjb1NH?=
 =?utf-8?B?OHZ3MmErV1RKcGtEc3I4UjlpaHl6bm5mRG1BdEFHWXhDWWZ3NGU3WUh1VHpw?=
 =?utf-8?B?Y2ExcHJBdmpuUDNheU9ocjBDRFVYQTFNeVRIa0tZOGk3YldHcnRTdm5McmtI?=
 =?utf-8?B?NnBheGtubmlUSFdON003VFlzdmZ6RUQ1NksyOWdDRXNwdWVoUmdMajZtNWNH?=
 =?utf-8?B?dzErRzA3NUF0c1ZtZWc0aHlZUlhxR2VoTWg5VU9kc1BVbU1sTzB6dEZ1M0F4?=
 =?utf-8?B?Rnp2NHFDSGloR3JnSFcydGhoN1Q5L2ptbXZ0bTAxRGJmSnZLZTJSR2NMODJa?=
 =?utf-8?B?MUhGTEoyaFUwTURIU01FOVU4MVlzS2FMdVF6ZUEwaDdwVlRHZFdoMHlUcERv?=
 =?utf-8?B?MHZlZzB5YTBZOVlKdTQ4TXBEYUxXNkNjakQzd0p6VS9DWHRyelhKK3Zpdmg5?=
 =?utf-8?B?dEJBMTV2b3VlWnJWaGlTSWl5alV4ek1pVlhsQXFGQmJmbzhyMVdlbE1sNS9X?=
 =?utf-8?B?N3VBTUdVVGJEdjM2VXdHQjZwK21FSUY1VHZ6VUxQdjdZZHhGRlo5bXdvL3Ri?=
 =?utf-8?B?cGhud1c3NGtWUmZTRmdpR3h5QXNUZTN2WSsxTFVwVDVFamJPSzBIWng5SG45?=
 =?utf-8?B?NjRLVHlsUHpTM1dBVjNNeVFibmRQNEFOUTRwSGl0VDlSUTZYS2NkeERkc1V3?=
 =?utf-8?B?VWx1S3c1YUFWYzgweVFRWHFHa0V5UzhqS0pmSk5FMFY3TUVoTk93M1NFdDdx?=
 =?utf-8?B?Z0VLZncyL1d6TFRUMEJRWGsySWhBdEhqVVpMTWVjMlkyY05EYktkNWhPVy9O?=
 =?utf-8?B?WDVlSnN2T1g3bmp4aTU3Q1A4c2phTGJOS2JTNDRDOWFLbWpxUFF2cVk1dG1L?=
 =?utf-8?B?UUpzY2NNNndjTVhhZU9aQi9md2pnV0p1VEpkTzB1OXlmNmY3SVk5bHF5V2gv?=
 =?utf-8?B?UFQ4VThnZUpYczR1TS9FVUZhbjJtdU9uL05WNGd6T0tMS3c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 09:36:54.0130
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55442cec-aa98-4110-8c41-08dd087db40b
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6893

Hi Stefano,

On 11/19/2024 1:23 AM, Stefano Stabellini wrote:
> 
> 
> On Mon, 18 Nov 2024, Luca Miccio wrote:
>> The current README incorrectly omits the need for the UBOOT_SOURCE and
>> UBOOT_SCRIPT variables for uboot-script-gen to function properly.
>> Moreover, the script silently fails if these variables are not set.
>> Return an error if the the UBOOT_SCRIPT variable is not set and
>> correct the documentation accordingly.
>>
>> Signed-off-by: Luca Miccio <luca.miccio@amd.com>
>> ---
>>  README.md                |  3 ++-
>>  scripts/uboot-script-gen | 12 ++++++++++++
>>  2 files changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/README.md b/README.md
>> index 4fcd908..ae2fdfd 100644
>> --- a/README.md
>> +++ b/README.md
>> @@ -272,7 +272,8 @@ Where:
>>
>>  - UBOOT_SOURCE and UBOOT_SCRIPT specify the output. They are optional
>>    as you can pass -o FILENAME to uboot-script-gen as a command line
>> -  parameter
>> +  parameter. It has to be set either in the config file or CLI argument
>> +  though.
>>
>>  - APPEND_EXTRA_CMDS: is optional and specifies the path to a text file
>>    containing extra u-boot commands to be added to the boot script before
>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>> index dcf5bdb..b07cbf1 100755
>> --- a/scripts/uboot-script-gen
>> +++ b/scripts/uboot-script-gen
>> @@ -1210,6 +1210,18 @@ then
>>      UBOOT_SCRIPT="$uboot_out_opt".scr
>>      UBOOT_SOURCE="$uboot_out_opt".source
>>  fi
>> +
>> +if test ! "$UBOOT_SOURCE"
>> +then
>> +    echo "UBOOT_SOURCE not set, either specify it in the config or set it with the -o option"
>> +    exit 1
>> +fi
>> +
>> +if test ! "$UBOOT_SCRIPT"
>> +then
>> +    UBOOT_SCRIPT="$UBOOT_SCRIPT".scr
> 
> This doesn't look right? Did you mean:
> 
>   UBOOT_SCRIPT="${UBOOT_SOURCE%.source}.scr"
> 

Yes you're right. It's a typo. I will send a V2 right away.

> 
>> +fi
>> +
>>  if test "$fit_opt" && ! test "$FIT"
>>  then
>>      FIT="${UBOOT_SOURCE%.source}.fit"
>> --
>> 2.34.1
>>

Thanks,
Luca


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 09:44:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 09:44:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839857.1255637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDKmM-0003sJ-QS; Tue, 19 Nov 2024 09:44:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839857.1255637; Tue, 19 Nov 2024 09:44: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 1tDKmM-0003sC-NS; Tue, 19 Nov 2024 09:44:14 +0000
Received: by outflank-mailman (input) for mailman id 839857;
 Tue, 19 Nov 2024 09:44: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=i5yv=SO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tDKmM-0003s6-BJ
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 09:44:14 +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 d386353e-a65a-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 10:44:09 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5cf6f367f97so5786613a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 01:44:09 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08aa47sm627659066b.196.2024.11.19.01.44.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 01: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: d386353e-a65a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzODYzNTNlLWE2NWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDA5NDQ5Ljk3NjI2Nywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732009449; x=1732614249; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=78JMwFbNvrAHzgEbvZ9xBjCi//I9z1IpKgXwPDkxMos=;
        b=eDfAqckUj/5nqB/d/dQ2upnQlBwWA2by2nob3tDJbR0bALS7hyQObT+GpNxTB+4w4W
         +B2CqvwmnluAsekkT527YKspT+D/L2lgFXe/glPDzpdu6U8X6jJOCD0Fqx0LOik2JW/z
         ier54Lm+O5ucBieW46f5t4UBVeEEEHx/3umhwXajduHdFiTxRw2v5o9dq4zPgaUod6Tw
         9aNGCPYLEdUq8X6fYPILGFpfVwrVYLx2oy+RqxZADYHMEhg3lfrw9PK9riYhE8SIYFLv
         cMKGMub7O6T3qFk3C9aDBteIbXxip1uMM5mX8pNu70D0IG0OSVOobplosidrMbnWce7n
         dqhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732009449; x=1732614249;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=78JMwFbNvrAHzgEbvZ9xBjCi//I9z1IpKgXwPDkxMos=;
        b=Etp0RVyG7wauN0bEAAaqU/9e+td327GCRURUf/OwTgLoMOue8lwMNAPjE+FkJli4lb
         jvZeEOuOUT917YzfdXa0YemtjYXlPur60y+4/9WMV6/0TfLQqaOZel2+LUIEK+70wg+Y
         8Kq3EpwXJKKShFGp/F8Inaep/44FHi9YVuTssLFLQhAcm5MddqS2OBHNnfSvnaDnutNN
         OjLn/MF0ZrK2HWvpR/P4amORrXcBMdQr/re/bYR0kaXC3cfFfOjoEP3ItPp8LHGDzkCT
         GZ+yi6nIuYkwtFHzkevpJEoV2W1Nne9NYCrhAhwXiFbReRwf7hZuEYpcMb/jX/6vN/EN
         33MQ==
X-Forwarded-Encrypted: i=1; AJvYcCXXi+REaokwIPxiaPMNthfwRUkA/+Ge9cLMZepeMcIbC6tIzanPcqUwxcJKB76YUyttuQupwkumtMc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuyI7Tp5YJbJBo83k97RaVRerAaBhGcpz7nWER4C8LlMtCp1HV
	Rd2V5tYo+or326UR6w3lj58SDjQ+tYgV6LKp5lJRL/cDkMK3pGk2buQjxQ==
X-Google-Smtp-Source: AGHT+IHAyJjyf3X2WdomnJ3oz+whLi1oSJW/rJopY7uSxq0rjmQEtTkTuK0ZGtk6V0tGIeuig0Iw5Q==
X-Received: by 2002:a05:6402:3508:b0:5cf:cb0d:1ed with SMTP id 4fb4d7f45d1cf-5cfcb0d02a0mr4866740a12.9.1732009448989;
        Tue, 19 Nov 2024 01:44:08 -0800 (PST)
Message-ID: <4799bbbdfb415dd0ed632227dd7911443b2e10ff.camel@gmail.com>
Subject: Re: [PATCH v3] drivers/char: rename arm-uart.c to uart-init.c
From: oleksii.kurochko@gmail.com
To: Julien Grall <julien@xen.org>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,  Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel	 <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Date: Tue, 19 Nov 2024 10:43:53 +0100
In-Reply-To: <804b2455-27f8-4017-a771-9c76d829d164@xen.org>
References: 
	<b2eed7fed17c9e9a3a9414e6d97360a7deeb2acb.1731671392.git.oleksii.kurochko@gmail.com>
	 <804b2455-27f8-4017-a771-9c76d829d164@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

Hi Julien,

On Sat, 2024-11-16 at 10:11 +0000, Julien Grall wrote:
> Hi Oleksii,
>=20
> On 15/11/2024 12:48, Oleksii Kurochko wrote:
> > Rename the file containing uart_init() to enable reuse across other
> > architectures that utilize device trees or SPCR tables to locate
> > UART
> > information.
> > After locating UART data, {acpi}_device_init() is called to
> > initialize
> > the UART.
> >=20
> > arm_uart_init() is renamed to uart_init() to be reused by other
> > architectures.
> >=20
> > A new configuration option, CONFIG_UART_INIT, is introduced,
> > currently
> > available only for Arm. Enabling CONFIG_UART_INIT on additional
> > architectures will require additional functionality, such as device
> > tree
> > mapping and unflattening, etc.
> >=20
> > The MAINTAINERS file is updated to alphabetically sort files in the
> > "ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE" section following
> > the renaming of arm-uart.c.
> >=20
> > Add `select UART_INIT` for CONFIG_ARM to be sure that randconfig
> > won't
> > disable UART_INIT.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V3:
> > =C2=A0 - Drop blank line in xen/drivers/char/Kconfig.
> > =C2=A0 - Rebase on top of the latest staging.
> > ---
> > Changes in v2:
> > =C2=A0 - Rename arm-uart.c to uart-init.c instead of moving only
> > dt_uart_init() to
> > =C2=A0=C2=A0=C2=A0 separate file.
> > =C2=A0 - Introduce new CONFIG_UART_INIT.
> > =C2=A0 - Rename arm_uart_init() to uart_init().
> > =C2=A0 - Add 'select UART_INIT' for CONFIG_ARM to be sure that
> > randconfig won't
> > =C2=A0=C2=A0=C2=A0 disable UART_INIT.
> > =C2=A0 - Update the commit message.
> > ---
> > =C2=A0 MAINTAINERS=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 2 +-
> > =C2=A0 xen/arch/arm/Kconfig=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 |=C2=A0=C2=A0 1 +
> > =C2=A0 xen/arch/arm/setup.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 |=C2=A0=C2=A0 2 +-
> > =C2=A0 xen/drivers/char/Kconfig=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 10 +++
> > =C2=A0 xen/drivers/char/Makefile=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 2 +-
> > =C2=A0 xen/drivers/char/arm-uart.c=C2=A0 | 145 ------------------------=
------
> > -----
> > =C2=A0 xen/drivers/char/uart-init.c | 145
> > +++++++++++++++++++++++++++++++++++
> > =C2=A0 xen/include/xen/serial.h=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 2=
 +-
> > =C2=A0 8 files changed, 160 insertions(+), 149 deletions(-)
> > =C2=A0 delete mode 100644 xen/drivers/char/arm-uart.c
> > =C2=A0 create mode 100644 xen/drivers/char/uart-init.c
> >=20
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 17fc5f9eec..a237080074 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -245,7 +245,6 @@ S:	Supported
> > =C2=A0 L:	xen-devel@lists.xenproject.org
> > =C2=A0 F:	docs/misc/arm/
> > =C2=A0 F:	xen/arch/arm/
> > -F:	xen/drivers/char/arm-uart.c
> > =C2=A0 F:	xen/drivers/char/cadence-uart.c
> > =C2=A0 F:	xen/drivers/char/exynos4210-uart.c
> > =C2=A0 F:	xen/drivers/char/imx-lpuart.c
> > @@ -254,6 +253,7 @@ F:	xen/drivers/char/mvebu-uart.c
> > =C2=A0 F:	xen/drivers/char/omap-uart.c
> > =C2=A0 F:	xen/drivers/char/pl011.c
> > =C2=A0 F:	xen/drivers/char/scif-uart.c
> > +F:	xen/drivers/char/uart-init.c
>=20
> (No action needed)
>=20
> I think that's fine for now. At some point we will need to consider a
> place where this can be maintained by other arch maintainers because=20
> this is not Arm specific anymore. The only place I can think of is
> THE REST.
Based on what we have in THE REST:

   THE REST
   ...
   F:	*
   F:	*/
   ...
Doesn't it mean that if we drop "F:	xen/drivers/char/uart-init.c"
then
by default any changes for uart-init.c file will be sent to maintainers
mentioned in M: lines of THE REST for review?
Thereby it seems to me we can just drop the change I did above and drop
"xen/drivers/char/arm-uart.c" from "ARM (W/ VIRTUALISATION EXTENSIONS)
ARCHITECTURE".

>=20
> > =C2=A0 F:	xen/drivers/passthrough/arm/
> > =C2=A0 F:	xen/include/public/arch-arm/
> > =C2=A0 F:	xen/include/public/arch-arm.h
> > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> > index 15b2e4a227..e068497361 100644
> > --- a/xen/arch/arm/Kconfig
> > +++ b/xen/arch/arm/Kconfig
> > @@ -17,6 +17,7 @@ config ARM
> > =C2=A0=C2=A0	select HAS_PASSTHROUGH
> > =C2=A0=C2=A0	select HAS_UBSAN
> > =C2=A0=C2=A0	select IOMMU_FORCE_PT_SHARE
> > +	select UART_INIT
> > =C2=A0=20
> > =C2=A0 config ARCH_DEFCONFIG
> > =C2=A0=C2=A0	string
> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> > index 71ebaa77ca..2e27af4560 100644
> > --- a/xen/arch/arm/setup.c
> > +++ b/xen/arch/arm/setup.c
> > @@ -361,7 +361,7 @@ void asmlinkage __init start_xen(unsigned long
> > fdt_paddr)
> > =C2=A0=20
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gic_preinit();
> > =C2=A0=20
> > -=C2=A0=C2=A0=C2=A0 arm_uart_init();
> > +=C2=A0=C2=A0=C2=A0 uart_init();
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 console_init_preirq();
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 console_init_ring();
> > =C2=A0=20
> > diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
> > index e175d07c02..49a06a7859 100644
> > --- a/xen/drivers/char/Kconfig
> > +++ b/xen/drivers/char/Kconfig
> > @@ -93,6 +93,16 @@ config SERIAL_TX_BUFSIZE
> > =C2=A0=20
> > =C2=A0=C2=A0	=C2=A0 Default value is 32768 (32KiB).
> > =C2=A0=20
> > +config UART_INIT
>=20
> NIT Naming: I would consider to add GENERIC in the same. This makes=20
> clearer why x86 doesn't select because they would have their own=20
> implementation.
Agree, perhaps GENERIC_UART_INIT would be better. I'll add GENERIC in
the next patch version.

>=20
> > +	bool "UART initialization for DT and ACPI"
>=20
> Why do we provide a prompt for UART_INIT? This is not something I
> would=20
> expect the user to be able to disable.
Agree, not to much sense in provding a promt for UART_INIT. I'll drop
it.

>=20
> > +	depends on ARM
> > +	default y
> > +	help
> > +	=C2=A0 Provides a generic method for locating UART device tree
> > node when
> > +	=C2=A0 device tree is used, or for finding UART information in
> > SPCR
> > +	=C2=A0 table when using ACPI. Once UART information is located,
> > +	=C2=A0 {acpi}_device_init() is called for UART-specific
> > initialization.
>=20
> The last sentence contains too much implementation details. Kconfig
> is=20
> meant for admin to know what they need to select. I think it should
> be=20
> dropped. That said, if you don't provide any problem, then this
> Kconfig=20
> would just be:
>=20
> config UART_INIT
>=20
> And this is selected by arch.
I don't mind to do in this way. I have only one question shouldn't we
have, at least, bool inside config UART_INIT?
   config UART_INIT
       bool
  =20
And then as you told in Arm's Kconfig "select UART_INIT" inside
CONFIG_ARM?


Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:15:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:15:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839867.1255647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLGg-0002GE-4G; Tue, 19 Nov 2024 10:15:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839867.1255647; Tue, 19 Nov 2024 10: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 1tDLGg-0002G7-1j; Tue, 19 Nov 2024 10:15:34 +0000
Received: by outflank-mailman (input) for mailman id 839867;
 Tue, 19 Nov 2024 10:15: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=3AKc=SO=bounce.vates.tech=bounce-md_30504962.673c653f.v1-ef929aefa4224d2d90be6618ac4f5e6d@srs-se1.protection.inumbo.net>)
 id 1tDLGf-0002Fv-8z
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:15:33 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 333df21e-a65f-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 11:15:29 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xt0k757nGz3sPRrF
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 10:15:27 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ef929aefa4224d2d90be6618ac4f5e6d; Tue, 19 Nov 2024 10:15: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: 333df21e-a65f-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjMzM2RmMjFlLWE2NWYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDExMzI5LjQxODczNSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2M2NTNmLnYxLWVmOTI5YWVmYTQyMjRkMmQ5MGJlNjYxOGFjNGY1ZTZkQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732011327; x=1732271827;
	bh=RIWpJ0A3VZ4bOVwkV3aBkXgnRBJhre0EC0Obc/Sc5m4=;
	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=c4ubLgvBc6kOozdSnOrwV07z33h0cuWIzwD9WKO8I8R9zw2ivje8XocrtTLPhOMua
	 OKle6DW7nUpffV3w/TKDJ6ETpCOOJFwPvi78A1zbr+a7/k6B6KQGu58kw+pbyOH2XO
	 WWpEw/iPjtZx8Zl3eJe+XHhdWuQOpfimFhPw4HY80wkQ8JF1/xn7ZIv1qGBdxnW6te
	 Dsu5rANJWXjWT/AeKV5uWbDhsKxUTLTWmPwtqa8ihRJMHa6EHE+0zJuv9Uixo+UAd8
	 CysuLKiAh9HWL0F5i+cdXt5OHXL3fMaTADmRuuenFOSsYNukcmdplPt9I9SwTZCE7p
	 z3iRSaPEICXww==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732011327; x=1732271827; i=anthony.perard@vates.tech;
	bh=RIWpJ0A3VZ4bOVwkV3aBkXgnRBJhre0EC0Obc/Sc5m4=;
	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=v4TfUeSewpovWRJY9AkRjbvM+LJKx4gZEzVUakhkA244T/hIRlaNDjX4fcy5kQbW9
	 GqYAwpunwwbCpfFZ5hBaCIpmLd5OAWKqsDIMFArutX1o8dY7XdXK9A2/QV0ZYixDZJ
	 JhXXWfFI8QcUsf68xmrEWvrsPRZ7ImJ0Xis20zbWcU4wB7/VSw5lj2XD6ywPjugeMD
	 HpSAC406rhLP9ZgUzaJCQl8Qe1TI2gHhN7W7lMkKQPOyCmGbGVx9nDliv9txKAP9mX
	 IgQSy7WBMZu25iCq2KzBQkWd6lu876278v+LuwQ4MNKzgcNzJItjj5ok139S/dwGdt
	 M4VByl8HgwAww==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=20v2=201/3]=20CI:=20Remove=20deprecated=20"only:variables"=20in=20favor=20of=20"rules:if"?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732011326475
To: xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Stefano Stabellini" <sstabellini@kernel.org>, "Doug Goldstein" <cardoe@cardoe.com>
Message-Id: <20241119101449.49747-2-anthony.perard@vates.tech>
In-Reply-To: <20241119101449.49747-1-anthony.perard@vates.tech>
References: <20241119101449.49747-1-anthony.perard@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.ef929aefa4224d2d90be6618ac4f5e6d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241119:md
Date: Tue, 19 Nov 2024 10:15:27 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Also, this prevent using "rules", like in the ".test-jobs-common"
template.

https://docs.gitlab.com/ee/ci/yaml/#only--except

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/gitlab-ci/test.yaml | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index f5dd4de757..ab5c8be0cd 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -98,9 +98,8 @@
       - '*.log'
       - '*.dtb'
     when: always
-  only:
-    variables:
-      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+  rules:
+    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - xilinx
 
@@ -117,9 +116,8 @@
       - smoke.serial
       - '*.log'
     when: always
-  only:
-    variables:
-      - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+  rules:
+    - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - xilinx
 
@@ -137,9 +135,8 @@
       - smoke.serial
       - '*.log'
     when: always
-  only:
-    variables:
-      - $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+  rules:
+    - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
   tags:
     - qubes-hw2
 
-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:15:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:15:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839868.1255657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLGh-0002UG-Be; Tue, 19 Nov 2024 10:15:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839868.1255657; Tue, 19 Nov 2024 10:15: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 1tDLGh-0002U9-7b; Tue, 19 Nov 2024 10:15:35 +0000
Received: by outflank-mailman (input) for mailman id 839868;
 Tue, 19 Nov 2024 10:15: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=0dmh=SO=bounce.vates.tech=bounce-md_30504962.673c653f.v1-40ce3e99be984ec999e1dd0e97b54b82@srs-se1.protection.inumbo.net>)
 id 1tDLGf-0002Fw-KB
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:15:33 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 333c608c-a65f-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:15:29 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xt0k76LnDz3sNN6m
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 10:15:27 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 40ce3e99be984ec999e1dd0e97b54b82; Tue, 19 Nov 2024 10:15: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: 333c608c-a65f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjMzM2M2MDhjLWE2NWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDExMzI5LjQyNjg5MSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2M2NTNmLnYxLTQwY2UzZTk5YmU5ODRlYzk5OWUxZGQwZTk3YjU0YjgyQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732011327; x=1732271827;
	bh=HR2hDnjhAgEJ8WW/gV410/qk4KVU8YB7FIJYf9zTtIk=;
	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=brGrOgC/vqHmJpXRfLqoxwPJrOKupIJBPT+9ZdyJn3zahw8cEcPb7itKRfueKXIMP
	 UcXEMwm4E/y9FJ8Z6P5JRCWGMCbD/tK31v6Eq6aiojlnDxUMtLA9PA7OadcQutWC3k
	 7XuUPzMrNyjfYjnWiXhbLIEOsLqPexsi/oTL3pi5TU4dlYhef7EHKgAmgWDrM5BMXk
	 h6oQff9D0gRfetHY+Ndwt09kmwcs/jZ9ZudPqEAO65r5f0AvY7ADPvwh31gV/qNLJi
	 1sEVjUFRg+0lkKy1Mqrh5mZMVX4EQ3wVf3OYFPQ891gIjfV6EAEovhapeQaK1Yzk30
	 qg4qmFf046Lew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732011327; x=1732271827; i=anthony.perard@vates.tech;
	bh=HR2hDnjhAgEJ8WW/gV410/qk4KVU8YB7FIJYf9zTtIk=;
	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=t15bFwARbjiUg99xAfxhFT8Zp6jDT0iLJ4wHNxMSGv3N/2ANO1G7qcQntg3yKU1zR
	 0IOIzNbWfEwFv7xSoj8AuJ4xhHAAQJwvYH7T9Zc7nPFDBPHqGcwcf5q+Z3JXQOpKYQ
	 ktl+NXSByRWhNj4Ddhust+cId/01K4kdsBWnD/t7pfDxhOKIfpi4G70lUv9VegUj1h
	 jzEK77x8UzRG4xwSGZgT1ZNBCmgjLCwuEpU5lRRBxpDVW3WwRxyBLfNV3/ioDohi2t
	 sK6uJQMRc/E/bNQ06SGdg5iaGqFnyiZ9uH1z8Oj+tdoq5Vy6jeKTHZGodx57UbX2WW
	 lTZ324UNho5SQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=20v2=202/3]=20CI:=20Define=20XEN=5FREGISTRY=20variable?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732011326911
To: xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Stefano Stabellini" <sstabellini@kernel.org>, "Doug Goldstein" <cardoe@cardoe.com>
Message-Id: <20241119101449.49747-3-anthony.perard@vates.tech>
In-Reply-To: <20241119101449.49747-1-anthony.perard@vates.tech>
References: <20241119101449.49747-1-anthony.perard@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.40ce3e99be984ec999e1dd0e97b54b82?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241119:md
Date: Tue, 19 Nov 2024 10:15:27 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This allow to change the registry used for container in a single
place, and could be controlled via other mean.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 .gitlab-ci.yml                  | 3 +++
 automation/gitlab-ci/build.yaml | 4 ++--
 automation/gitlab-ci/test.yaml  | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ef4484e09a..941e5822e8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,6 @@
+variables:
+  XEN_REGISTRY: registry.gitlab.com/xen-project/xen
+
 workflow:
   rules:
     - if: $CI_COMMIT_BRANCH =~ /^(master|smoke|^coverity-tested\/.*|stable-.*)$/
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ce39b0ee21..1ca6764225 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -1,6 +1,6 @@
 .build-tmpl: &build
   stage: build
-  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
+  image: ${XEN_REGISTRY}/${CONTAINER}
   script:
     - ./automation/scripts/build 2>&1 | tee build.log
   artifacts:
@@ -208,7 +208,7 @@
 
 .yocto-test:
   stage: build
-  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
+  image: ${XEN_REGISTRY}/${CONTAINER}
   script:
     - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index ab5c8be0cd..1822e3ea5f 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -1,6 +1,6 @@
 .test-jobs-common:
   stage: test
-  image: registry.gitlab.com/xen-project/xen/${CONTAINER}
+  image: ${XEN_REGISTRY}/${CONTAINER}
 
 .arm64-test-needs: &arm64-test-needs
   - alpine-3.18-arm64-rootfs-export
-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:15:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:15:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839869.1255667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLGi-0002ig-K7; Tue, 19 Nov 2024 10:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839869.1255667; Tue, 19 Nov 2024 10:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLGi-0002iZ-HJ; Tue, 19 Nov 2024 10:15:36 +0000
Received: by outflank-mailman (input) for mailman id 839869;
 Tue, 19 Nov 2024 10:15: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=lJrM=SO=bounce.vates.tech=bounce-md_30504962.673c6540.v1-777426e5b10b465a963a688c0ea251a7@srs-se1.protection.inumbo.net>)
 id 1tDLGh-0002Fv-B4
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:15:35 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35a34943-a65f-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 11:15:33 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xt0k81qHjz3sNZlL
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 10:15:28 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 777426e5b10b465a963a688c0ea251a7; Tue, 19 Nov 2024 10:15: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: 35a34943-a65f-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjM1YTM0OTQzLWE2NWYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDExMzMzLjM3ODM3NSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2M2NTQwLnYxLTc3NzQyNmU1YjEwYjQ2NWE5NjNhNjg4YzBlYTI1MWE3QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732011328; x=1732271828;
	bh=CTj79Aidpkj+HeXz2gHR27Q6nRmA1BnigZ0Th5dpiY0=;
	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=sZy4lXE5Oa2D6fmKcBLD40opJwb4IexA/aY8//MqDa5ZccqtrNuceBtVM8A+82lsN
	 h9cmPUZEqNDZYPIWY8iGnjj89UcPkz/gu+FFiRbZmaBWRqYaRwTP+LR0pwWMnWMzFF
	 gDa6Yjg2wCsGufec71EYAhxjSU335iLlkqCTLSiNC4KwM6/gXMqhd/jjhxFdjBWB8v
	 uKOu93Xd5uxeISnLaXq8CYOeoqrf9AfJh6gjvwF6l5vbxR7CAwKNsYBSCxjNtWgQip
	 X5rX4V+U9oQZm0w5CZUF6p5Xm0lYY7nUEbxS1DGGk81+vqv3UO2Z/HlVrqZWJb+C5y
	 zsPpVK4ne0aMQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732011328; x=1732271828; i=anthony.perard@vates.tech;
	bh=CTj79Aidpkj+HeXz2gHR27Q6nRmA1BnigZ0Th5dpiY0=;
	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=euz67s3ZbyWB3xrOo73vbxLffaggiB9bULruAz4hT4dIE8cCdk+hxi7IfygdC0hpF
	 UJAgsAf9kyfF9wgZCxNW6zxe3yu3s3P2iF4uxle0l7Hjr2/X/g4Oy7JHFiRz9Lb9WW
	 wwpefZE/+69gJFgsB4XNFMxYI+XvvuVzQX4V3rLoz+uHDE/ETcADw/HaL39hT9SqmW
	 U4Syvc1MhWgSCvGG11pxYCltGhLYku83mJh2EBSdMZj8wx/HY5MBI6cQL0ERxNpAHz
	 2KfWrWiBVltsiPHVf7ULRkk/aBLd14lGxUW4nf72v0WXZ97AzsYWe7OCuLnmoyA2ro
	 1NEmUz/ARiafg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=20v2=203/3]=20CI:=20New=20stage=20"containers"=20to=20rebuild=20some=20containers?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732011327208
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>
Message-Id: <20241119101449.49747-4-anthony.perard@vates.tech>
In-Reply-To: <20241119101449.49747-1-anthony.perard@vates.tech>
References: <20241119101449.49747-1-anthony.perard@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.777426e5b10b465a963a688c0ea251a7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241119:md
Date: Tue, 19 Nov 2024 10:15:28 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
set. This is to be use with a scheduled pipeline.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---

Notes:
    v2:
    - remove the logic to test containers once rebuilt.
    - only include the config with jobs for the "containers" stage wen
      XEN_CI_REBUILD_CONTAINERS is set.

 .gitlab-ci.yml                       | 16 ++++++++++++---
 automation/gitlab-ci/containers.yaml | 29 ++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+), 3 deletions(-)
 create mode 100644 automation/gitlab-ci/containers.yaml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 941e5822e8..5a9b8b7228 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,11 +8,21 @@ workflow:
     - when: always
 
 stages:
+  - containers
   - analyze
   - build
   - test
 
 include:
-  - 'automation/gitlab-ci/analyze.yaml'
-  - 'automation/gitlab-ci/build.yaml'
-  - 'automation/gitlab-ci/test.yaml'
+  - local: 'automation/gitlab-ci/containers.yaml'
+    rules:
+      - if: $XEN_CI_REBUILD_CONTAINERS
+  - local: 'automation/gitlab-ci/analyze.yaml'
+    rules:
+      - if: $XEN_CI_REBUILD_CONTAINERS == null
+  - local: 'automation/gitlab-ci/build.yaml'
+    rules:
+      - if: $XEN_CI_REBUILD_CONTAINERS == null
+  - local: 'automation/gitlab-ci/test.yaml'
+    rules:
+      - if: $XEN_CI_REBUILD_CONTAINERS == null
diff --git a/automation/gitlab-ci/containers.yaml b/automation/gitlab-ci/containers.yaml
new file mode 100644
index 0000000000..25e8bdc34b
--- /dev/null
+++ b/automation/gitlab-ci/containers.yaml
@@ -0,0 +1,29 @@
+.container-build-tmpl:
+  stage: containers
+  image: docker:stable
+  tags:
+    - container-builder
+  rules:
+    - if: $XEN_CI_REBUILD_CONTAINERS
+  services:
+    - docker:dind
+  before_script:
+    - apk add make
+    - docker info
+    - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
+  script:
+    - make -C automation/build PUSH=1 REGISTRY=${XEN_REGISTRY} ${CONTAINER/:/\/}
+  after_script:
+    - docker logout
+
+container-archlinux-current:
+  extends:
+    - .container-build-tmpl
+  variables:
+    CONTAINER: "archlinux:current"
+
+container-opensuse-tumbleweed-x86_64:
+  extends:
+    - .container-build-tmpl
+  variables:
+    CONTAINER: "opensuse:tumbleweed-x86_64"
-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:15:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839871.1255677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLGr-00036E-S4; Tue, 19 Nov 2024 10:15:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839871.1255677; Tue, 19 Nov 2024 10:15: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 1tDLGr-000361-Nz; Tue, 19 Nov 2024 10:15:45 +0000
Received: by outflank-mailman (input) for mailman id 839871;
 Tue, 19 Nov 2024 10:15: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=4ioL=SO=bounce.vates.tech=bounce-md_30504962.673c6549.v1-8302679767524367a79a93a9fe957b94@srs-se1.protection.inumbo.net>)
 id 1tDLGq-0002Fw-JQ
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:15:44 +0000
Received: from mail136-26.atl41.mandrillapp.com
 (mail136-26.atl41.mandrillapp.com [198.2.136.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a872587-a65f-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:15:41 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-26.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xt0kK5QMxzJKF3pv
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 10:15:37 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8302679767524367a79a93a9fe957b94; Tue, 19 Nov 2024 10: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: 3a872587-a65f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yNiIsImhlbG8iOiJtYWlsMTM2LTI2LmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjNhODcyNTg3LWE2NWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDExMzQxLjQ1OTMxMiwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2M2NTQ5LnYxLTgzMDI2Nzk3Njc1MjQzNjdhNzlhOTNhOWZlOTU3Yjk0QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732011337; x=1732271837;
	bh=/DRu8gQgvvfdcVbSOLin4M8g9as0i3t/ZsNNAzxTS+I=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Fxu0UWAG34EwPCtYnMzK1UO8ImEe5XNmR6SyZJHMvQEiQU8LO+zwfv/Hqm6AZjb2U
	 cnNpKoKmrQSOLxEBj0Mi4X5SamJiJTTqTlcR4K2h5CBILOjvn9t7r4oBRzJa+P6EeA
	 RjMHZ9OtGVlOAGb3aLxt/5UwiSD55L+G9oDnQFZFp12Z3IuXsLIXkHtw4GYSqvZzbP
	 EMNPUgozmKDPJRK98HehnKHszWKlfbxmt56WzowIKE8RBd2C5J6tLcIJEwUHQywlUD
	 Uvaa9oQLApQe3eeguK0qu7IHSCwVuZL3VD8VNXyZ3xoIkLRcPiCUUW7RHTKOtYWhk2
	 sqf8ZGci42xcQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732011337; x=1732271837; i=anthony.perard@vates.tech;
	bh=/DRu8gQgvvfdcVbSOLin4M8g9as0i3t/ZsNNAzxTS+I=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=sZnscscAkLVtk4dRwW/+S8zCEusNu4Fi6bFzVRCLY+B3EQIjgQfcOR2N6yuLfFWjM
	 AXNxUeuXD6ujip+Y/Ij/BCD1dmxHv5Iu9Kj+pKMGP3i53TY61emGGu+xeMk9N5dlAA
	 4LyI8+aGWnxCiEWseaCFCJi70AGHyXjr1EJ7nMcle/Z0XzYdR/NHyCCwROjdIqJqXZ
	 8+feEm+ABZEM/jpiSkdHOpD9jNIqQbMVyl3tzxYS4zk2U7ZayUS/3evB5N3y+bp+of
	 K3iHcOlcrUx8lluYbso7DoIUbkAouVRIv9lj+kG7a8lueHv7/ONB0Gus0ha0UUsoF4
	 xGJAH78SadumQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH=20v2=200/3]=20CI:=20Allow=20automatic=20rebuild=20of=20rolling=20release=20containers?=
X-Mailer: git-send-email 2.39.5
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732011325912
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>
Message-Id: <20241119101449.49747-1-anthony.perard@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.8302679767524367a79a93a9fe957b94?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241119:md
Date: Tue, 19 Nov 2024 10:15:37 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Patch series available in this git branch:
https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git br.gitlab-ci-rebuild-arch-container-v2

v2:
- remove the logic to test containers once rebuilt, and only do container build
  in the pipeline.

Hi,

This patch series would allow to setup a scheduled pipeline on GitLab which
would rebuild containers.

To enable this, just running a pipeline with XEN_CI_REBUILD_CONTAINERS=1 will
do.

I intend to add a scheduled pipeline to run once a month.

Thanks,

Anthony PERARD (3):
  CI: Remove deprecated "only:variables" in favor of "rules:if"
  CI: Define XEN_REGISTRY variable
  CI: New stage "containers" to rebuild some containers

 .gitlab-ci.yml                       | 19 +++++++++++++++---
 automation/gitlab-ci/build.yaml      |  4 ++--
 automation/gitlab-ci/containers.yaml | 29 ++++++++++++++++++++++++++++
 automation/gitlab-ci/test.yaml       | 17 +++++++---------
 4 files changed, 54 insertions(+), 15 deletions(-)
 create mode 100644 automation/gitlab-ci/containers.yaml

-- 


Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:30:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839908.1255686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLVF-0007n8-1s; Tue, 19 Nov 2024 10:30:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839908.1255686; Tue, 19 Nov 2024 10:30: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 1tDLVE-0007n1-VO; Tue, 19 Nov 2024 10:30:36 +0000
Received: by outflank-mailman (input) for mailman id 839908;
 Tue, 19 Nov 2024 10:30: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDLVE-0007lh-7b
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:30:36 +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 4d319e2c-a661-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:30:31 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cef772621eso6740003a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:30:31 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfbdfdf4b7sm2472796a12.87.2024.11.19.02.30.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 02:30: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: 4d319e2c-a661-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkMzE5ZTJjLWE2NjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDEyMjMxLjA1OTc0Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732012230; x=1732617030; 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=hZNU35BCTmfnFqUdp69fyr4URSb08OqU4G/sFJbJFeE=;
        b=SJk0DrX3XeGWmoYZUm6Owzal1PgrGlhBgWvDb04xtgUrWH8WJHAPc52g2fU9yMT6jT
         7avv1Kmm9OrshNkeQrvS8KjdV1gHQ17CctVcWPPrUhhGu9vXtE9uXxXpQPIywUPxaHRc
         9pbZyKbfvOlo1cuSRONHY056jni87eeM5LZlo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732012230; x=1732617030;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hZNU35BCTmfnFqUdp69fyr4URSb08OqU4G/sFJbJFeE=;
        b=Kma/K+sQfTEWVl0tR/9sTuaCpZCjahFz1Mg+Pljzl0rcvyTJvPtzhFPFBHw5DYZJIB
         lwhE+eJvUBeMduvbsPfpah4QfHUHJ3EosZ7GMrhvfSxN2x2Fj2IEdd63o0HtR+6FZbNk
         OFYtLLtqVsDFy62dZ7oIMbO/aDFnHtfbgdZ6M4W9tsTAUJeHCU+lPAi9UZ5IfFHtnev/
         i+zVX9AcWRGC3LZW/zPWeo3uttsEbTXO7uPWJAbtq0av/+sZ4x04ZlvluoBnHf87qHRh
         7ajdIdHP4RIImRYE7nqEUCpTOO6/Adk6jQrwVU0h3pGQiPsVs68MExNS5KnSP5047cyl
         7auw==
X-Forwarded-Encrypted: i=1; AJvYcCX6xVgjTKGIqgsFyUnYrITenqptbrHu55POcKqXfGqV7PpWuxRslhxHguLtZTqp/2HUqaTtfAGdo/I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5VCbqOso1u3t4CBEtNsAvO2SsAu6WPu+IPJmHg3sdzF6G9/cm
	0f4q/oyjFKLR+WXyyBgpLaXAcQH8cyXuBmbmKZHlYCx9LYl4iahjfKMTUyKaIBs=
X-Google-Smtp-Source: AGHT+IHNc7+UtkYzIe+IaJp6D2jB0p8WVASB1Ya1eETATrFEigh+mkcDsaM6jWs6vep0Dqe6pEVgOw==
X-Received: by 2002:a05:6402:26d3:b0:5cf:e3eb:5153 with SMTP id 4fb4d7f45d1cf-5cfe3eb5483mr1073552a12.16.1732012230536;
        Tue, 19 Nov 2024 02:30:30 -0800 (PST)
Message-ID: <39488f3a-f653-4083-96f0-2d1604659a6f@citrix.com>
Date: Tue, 19 Nov 2024 10:30:27 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pmstat: deal with Misra 8.4 violations
To: Jan Beulich <jbeulich@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>
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>
References: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@citrix.com>
 <06b4f2c5-8470-4375-9311-c31921d7aaa8@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <06b4f2c5-8470-4375-9311-c31921d7aaa8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 8:12 am, Jan Beulich wrote:
> While the override #define-s in x86_64/platform_hypercall.c are good for
> the consuming side of the compat variants of set_{cx,px}_pminfo(), the
> producers lack the respective declarations. Include pmstat.h early,
> before the overrides are put in place, while adding explicit
> declarations of the compat functions (alongside structure forward
> declarations).
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/arch/x86/x86_64/platform_hypercall.c
> +++ b/xen/arch/x86/x86_64/platform_hypercall.c
> @@ -4,8 +4,8 @@
>  
>  EMIT_FILE;
>  
> -#include <xen/lib.h>
>  #include <xen/hypercall.h>
> +#include <xen/pmstat.h>
>  
>  #define xen_platform_op     compat_platform_op
>  #define xen_platform_op_t   compat_platform_op_t
> --- a/xen/include/xen/pmstat.h
> +++ b/xen/include/xen/pmstat.h
> @@ -7,6 +7,12 @@
>  
>  int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf);
>  long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
> +#ifdef CONFIG_COMPAT
> +struct compat_processor_performance;
> +int compat_set_px_pminfo(uint32_t acpi_id, struct compat_processor_performance *perf);
> +struct compat_processor_power;
> +long compat_set_cx_pminfo(uint32_t acpi_id, struct compat_processor_power *power);
> +#endif
>  uint32_t pmstat_get_cx_nr(unsigned int cpu);
>  int pmstat_get_cx_stat(unsigned int cpu, struct pm_cx_stat *stat);
>  int pmstat_reset_cx_stat(unsigned int cpu);
>

Thanks for the patch.Â  I'll give it a spin along with the other 8.4 fixes.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:34:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:34:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839919.1255703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLZP-0000df-Qz; Tue, 19 Nov 2024 10:34:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839919.1255703; Tue, 19 Nov 2024 10:34: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 1tDLZP-0000cn-LQ; Tue, 19 Nov 2024 10:34:55 +0000
Received: by outflank-mailman (input) for mailman id 839919;
 Tue, 19 Nov 2024 10:34: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDLZO-0000aC-BI
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:34:54 +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 e7ff7b4f-a661-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:34:50 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5cef772621eso6748813a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:34:50 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfe03b9361sm543764a12.15.2024.11.19.02.34.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 02:34: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: e7ff7b4f-a661-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU3ZmY3YjRmLWE2NjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDEyNDkwLjc5NDM1OSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732012489; x=1732617289; 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=vWIEaF0pIOGoMGuUwO2yTz5fJjNUFYhP2+XJD3Uj0QY=;
        b=TuFZMo33CjvkGr4/eljJAus42YbJh60xUjxo6ovx9R4NeX/A/uH0aaOErsbj42Yxc/
         Fgw9xGuUyFijesEc2vGb98XvbQF+5s59K9uvgq5GX5nxjwdhP3A8RH/Ruz5ePbC6ZcHG
         dnXxXSeuz7EY3Fg/PSIekTRLybTFqPhR5FqiM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732012489; x=1732617289;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vWIEaF0pIOGoMGuUwO2yTz5fJjNUFYhP2+XJD3Uj0QY=;
        b=Jfv2dDlNyDbIrnrcQfnVngkWrx+bvQcxuf5jM/FcMauIMaTrxn4CjJlIQD/rxI8xZq
         evxYTxTP/keM8kkuXxKLASQ8X5jc0lgg94VHo7l5pbnmwZFwrA45Y713/wXJfha8Zkbi
         1s4SZtsHln9At91llzEF0vU76ijqe3LAc6HIq8YJTsm7gBaXeczDByZ8NJSwiGb9H/tJ
         P2qMZk06nUCP3iO+hhZhAjN3HlyiM405liHmtBzF3giVVKk3nDgzYmWlGrzEr18dOANQ
         8QLo+zXX4Q/GRKJZGBASn5VCTtDjxS7mMhelUP6vHsnotk6evW7n4r+SLgD++iN9xPpL
         oOvw==
X-Gm-Message-State: AOJu0YzutMzeEdWAC6/49NHxUNVSAT9B4g+FZswLHcJlQuDPX/nkz1p9
	MpLZo/LMGmTglD+jTdbDfsSGHgsvgjcFKw8ICbBbQoQbbfV6dxXcrszwNMTDtVUd1hWDTyf8GqM
	A
X-Google-Smtp-Source: AGHT+IGoCxafmqm7nzSMJXgyGB1Y4iqllqiT9gxA119RwhYY+xc3nQo7PcxGx2C/UI+AMEi494L8tA==
X-Received: by 2002:a05:6402:135a:b0:5cf:b995:112c with SMTP id 4fb4d7f45d1cf-5cfb9951349mr6136286a12.31.1732012489487;
        Tue, 19 Nov 2024 02:34:49 -0800 (PST)
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>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/4] x86/misra: fix remaining violations of rule 20.7
Date: Tue, 19 Nov 2024 11:34:40 +0100
Message-ID: <20241119103444.23296-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Following series attempts to fix the remaining violation for rules 20.7,
and as a result make it blocking on x86 also (as it's already the case
for ARM).

Thanks, Roger.

Roger Pau Monne (4):
  x8&/mm: fix IS_LnE_ALIGNED() to comply with Misra Rule 20.7
  x86/msi: fix Misra Rule 20.7 in msi.h
  x86/uaccess: rework user access speculative harden guards
  automation/eclair: make Misra rule 20.7 blocking for x86 also

 automation/eclair_analysis/ECLAIR/tagging.ecl |  3 +-
 xen/arch/x86/include/asm/msi.h                | 35 ++++++---------
 xen/arch/x86/include/asm/uaccess.h            | 45 +++++++++----------
 xen/arch/x86/mm.c                             |  2 +-
 xen/arch/x86/usercopy.c                       | 26 +++++------
 5 files changed, 52 insertions(+), 59 deletions(-)

-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:34:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:34:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839918.1255697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLZP-0000aU-J1; Tue, 19 Nov 2024 10:34:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839918.1255697; Tue, 19 Nov 2024 10:34: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 1tDLZP-0000aN-F6; Tue, 19 Nov 2024 10:34:55 +0000
Received: by outflank-mailman (input) for mailman id 839918;
 Tue, 19 Nov 2024 10:34: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDLZO-0000aB-4l
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:34:54 +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 e88b4cb5-a661-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 11:34:51 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-aa20c733e92so583494366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:34:51 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0812aesm630324366b.176.2024.11.19.02.34.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 02:34: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: e88b4cb5-a661-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU4OGI0Y2I1LWE2NjEtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDEyNDkxLjY5MTE3LCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732012491; x=1732617291; 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=rJBBbyuIQCYsK6rK43EbpJKOGh50/Oq+iOYqEx2dg9s=;
        b=fXkC5NrZmnM9U7cvOlecLCjenG4Op1/h7rRq2BIMgX/vi62A91Exgoft6bJFJfuxh4
         Hyb0V0ssPfRBKLWWo7iAB7I8rlHbFInsN6LKS/Kg4RyE8B2oC16uDOyyIlH+ABn0a80Z
         40/jjaRaFCBbmYJ931wfkZq6AKkPlYL+4YFg0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732012491; x=1732617291;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rJBBbyuIQCYsK6rK43EbpJKOGh50/Oq+iOYqEx2dg9s=;
        b=mnyLgKrp9NNGvic4IO8x9lPaLKVhUA+WAr7KP7YnpXIelDyDXunQSVUKgXbDi/MiNo
         Y6ElWoNkacHkcVxrbdNgv2VGaRyIami/MrWKFqjo7RR42bM498gTkX76YoENYVP6KqOQ
         J/4lpHqgIGj3v+pUgQ/M1lK9jDLO6MxFWwX5C4XcDj7MLBo3O7EdL3NSI59Uq6d4WNn8
         d+VgUZYxdBzGLiJ2pV7O7crOYxiNOyasYUGSmXWKefJktlEECCrfCnbns9xqaJClQmeT
         phFoXFieaSRltWzokMissfC7d6WENYz1c2xDrNmmBI33EL9HLYgzNsg9N0JvPrWebohP
         cACw==
X-Gm-Message-State: AOJu0Yy46QuJiHtxfH5ebO/jxefnp/+ix3KPT9LWL8Znl7paOaGbE+mi
	unZqqGpE9FTAQDWc2aiUiMKJ0v8GyCW0/JWee+/Cjy16zFurDRU4/n2ysjbcG7GXkrEYyWbMcYy
	T
X-Google-Smtp-Source: AGHT+IEo1WtFxaf15RLq3BAAYzsbXhcsmW7mBp1090g41vITBvFhcqdFiYAEXLtb1V+KvevboAFnrQ==
X-Received: by 2002:a17:907:2cc2:b0:a9a:46f5:d6d7 with SMTP id a640c23a62f3a-aa4833ec1damr1489691666b.5.1732012490846;
        Tue, 19 Nov 2024 02:34:50 -0800 (PST)
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 1/4] x8&/mm: fix IS_LnE_ALIGNED() to comply with Misra Rule 20.7
Date: Tue, 19 Nov 2024 11:34:41 +0100
Message-ID: <20241119103444.23296-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241119103444.23296-1-roger.pau@citrix.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While not strictly needed to guarantee operator precedence is as expected, add
the parentheses to comply with Misra Rule 20.7.

No functional change intended.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Fixes: 5b52e1b0436f ('x86/mm: skip super-page alignment checks for non-present entries')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/mm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 494c14e80ff9..fa21903eb25a 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5498,7 +5498,7 @@ int map_pages_to_xen(
  * be INVALID_MFN, since alignment is only relevant for present entries.
  */
 #define IS_LnE_ALIGNED(v, m, n) ({                              \
-    mfn_t m_ = m;                                               \
+    mfn_t m_ = (m);                                             \
                                                                 \
     ASSERT(!mfn_eq(m_, INVALID_MFN));                           \
     IS_ALIGNED(PFN_DOWN(v) | mfn_x(m_),                         \
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:34:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:34:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839920.1255717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLZS-00014e-1p; Tue, 19 Nov 2024 10:34:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839920.1255717; Tue, 19 Nov 2024 10:34: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 1tDLZR-00014T-UJ; Tue, 19 Nov 2024 10:34:57 +0000
Received: by outflank-mailman (input) for mailman id 839920;
 Tue, 19 Nov 2024 10:34: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDLZP-0000aC-UI
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:34:55 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e924aa79-a661-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:34:52 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9a6b4ca29bso611738766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:34:52 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e044bb8sm633706166b.150.2024.11.19.02.34.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 02:34: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: e924aa79-a661-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU5MjRhYTc5LWE2NjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDEyNDkyLjcxNjM3OSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732012492; x=1732617292; 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=rZ82fMjo7f/+Ug2kFMZ6vDINmL+ZwDvWFTn794Oj1rk=;
        b=XdUF2ZGRLC2BXrdEdZh4ugKZfSWf5g88OzRuNCWVef+jYQUFTa6CpWkM9q2wuB3u0r
         tIqnktK2cbt36yb0iArJdnf1ENSan+R6gyKcG/NDR04KNiA/2LEY3cl2Xi1hqoSlfvuG
         5j6mE7fKSIyXtnwCS7NXXjjOmCbRoEl+ZTy/0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732012492; x=1732617292;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rZ82fMjo7f/+Ug2kFMZ6vDINmL+ZwDvWFTn794Oj1rk=;
        b=iyXV449nmrVz/AvLiKWI2aW8jcUyTWTOEQ9+c4DNMFoL1DN5Xoyj/pk3EJTVrsDZ2B
         J+i3L0ngPnxhz1zISPpRn8IcCwRG1KZMso8W+3lBMotXkJVm6cxJajbjHUlOpd9PRzWm
         Z729YpdVPc7rqGoamE6FFXsQGPhUisdaHV7J0xISlieqs3zkMevRAP3Mqz892y0GO/ao
         kbz16B1cSqZu5Vue49hLffMOwxSU5fvW6KJ5DAKHJhpSTYaawwa6MQM7EiiL3gL94lG6
         oQS/1Z+4LPL3TCYGiT5LJEPj7chjrMCv6/kK0elAw7mCF7Fo1suwZR1x/UInS8pmy4oy
         FjaQ==
X-Gm-Message-State: AOJu0Yx74mEEhRnfjSMHVmLcyKlZrwhFieSD49uxRKTz/fE/ePdzNmNQ
	XFqfDjgd2bEuwl2T16borTm9dPsuK+W8OjRO/ORM8CcFq6PsVQzHPbM5dYyDhv93MIFz47ctLxc
	N
X-Google-Smtp-Source: AGHT+IE9mIPwptfQcOONcgsmg3XZysj9KYiZdM0dzj59xhF/TX7rURgl7iaAvoo81T+LuCAHu+X3nw==
X-Received: by 2002:a17:907:928a:b0:a9a:bbcc:5092 with SMTP id a640c23a62f3a-aa48350b016mr1511216166b.39.1732012491894;
        Tue, 19 Nov 2024 02:34:51 -0800 (PST)
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 2/4] x86/msi: fix Misra Rule 20.7 in msi.h
Date: Tue, 19 Nov 2024 11:34:42 +0100
Message-ID: <20241119103444.23296-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241119103444.23296-1-roger.pau@citrix.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Prune unused macros and adjust the remaining ones to parenthesize macro
arguments.

No functional change intended.

Singed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/msi.h | 35 ++++++++++++++--------------------
 1 file changed, 14 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 748bc3cd6d8b..49a576383288 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -147,33 +147,26 @@ int msi_free_irq(struct msi_desc *entry);
  */
 #define NR_HP_RESERVED_VECTORS 	20
 
-#define msi_control_reg(base)		(base + PCI_MSI_FLAGS)
-#define msi_lower_address_reg(base)	(base + PCI_MSI_ADDRESS_LO)
-#define msi_upper_address_reg(base)	(base + PCI_MSI_ADDRESS_HI)
+#define msi_control_reg(base)		((base) + PCI_MSI_FLAGS)
+#define msi_lower_address_reg(base)	((base) + PCI_MSI_ADDRESS_LO)
+#define msi_upper_address_reg(base)	((base) + PCI_MSI_ADDRESS_HI)
 #define msi_data_reg(base, is64bit)	\
-	( (is64bit == 1) ? base+PCI_MSI_DATA_64 : base+PCI_MSI_DATA_32 )
+	((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
 #define msi_mask_bits_reg(base, is64bit) \
-	( (is64bit == 1) ? base+PCI_MSI_MASK_BIT : base+PCI_MSI_MASK_BIT-4)
+	((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
 #define msi_pending_bits_reg(base, is64bit) \
 	((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
-#define msi_disable(control)		control &= ~PCI_MSI_FLAGS_ENABLE
 #define multi_msi_capable(control) \
-	(1 << ((control & PCI_MSI_FLAGS_QMASK) >> 1))
+	(1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
 #define multi_msi_enable(control, num) \
-	control |= (((fls(num) - 1) << 4) & PCI_MSI_FLAGS_QSIZE);
-#define is_64bit_address(control)	(!!(control & PCI_MSI_FLAGS_64BIT))
-#define is_mask_bit_support(control)	(!!(control & PCI_MSI_FLAGS_MASKBIT))
-#define msi_enable(control, num) multi_msi_enable(control, num); \
-	control |= PCI_MSI_FLAGS_ENABLE
-
-#define msix_control_reg(base)		(base + PCI_MSIX_FLAGS)
-#define msix_table_offset_reg(base)	(base + PCI_MSIX_TABLE)
-#define msix_pba_offset_reg(base)	(base + PCI_MSIX_PBA)
-#define msix_enable(control)	 	control |= PCI_MSIX_FLAGS_ENABLE
-#define msix_disable(control)	 	control &= ~PCI_MSIX_FLAGS_ENABLE
-#define msix_table_size(control) 	((control & PCI_MSIX_FLAGS_QSIZE)+1)
-#define msix_unmask(address)	 	(address & ~PCI_MSIX_VECTOR_BITMASK)
-#define msix_mask(address)		(address | PCI_MSIX_VECTOR_BITMASK)
+	((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
+#define is_64bit_address(control)	!!((control) & PCI_MSI_FLAGS_64BIT)
+#define is_mask_bit_support(control)	!!((control) & PCI_MSI_FLAGS_MASKBIT)
+
+#define msix_control_reg(base)		((base) + PCI_MSIX_FLAGS)
+#define msix_table_offset_reg(base)	((base) + PCI_MSIX_TABLE)
+#define msix_pba_offset_reg(base)	((base) + PCI_MSIX_PBA)
+#define msix_table_size(control) 	(((control) & PCI_MSIX_FLAGS_QSIZE) + 1)
 
 /*
  * MSI Defined Data Structures
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:34:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:34:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839921.1255723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLZS-00019o-F8; Tue, 19 Nov 2024 10:34:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839921.1255723; Tue, 19 Nov 2024 10:34: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 1tDLZS-00017z-8v; Tue, 19 Nov 2024 10:34:58 +0000
Received: by outflank-mailman (input) for mailman id 839921;
 Tue, 19 Nov 2024 10:34: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDLZR-0000aC-Dw
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:34:57 +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 e9dbee06-a661-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:34:53 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cfbeed072dso3287561a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:34:53 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfe84f8207sm120958a12.32.2024.11.19.02.34.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 02:34: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: e9dbee06-a661-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU5ZGJlZTA2LWE2NjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDEyNDkzLjk0MTY3NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732012493; x=1732617293; 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=cO1IumWlbaoJe1bK8+bYKC2sAvhfBGmW90G8QQAFdCE=;
        b=eVgFuNuK4zOZMEcIX90/IN/srdA65LubPwAi2RyzbY0Ouu8BgiEwMpJwGasNglgJjq
         1GeNjtjQvUZFNwtMMOl5GKKfLqk8aGbpJa9b1DW2ll+htD7SlG3duccsKpj6gF/l8dwH
         Yt/Chvuicw+FIw1OFBcVE20sNqYwMUvUxuIRg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732012493; x=1732617293;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cO1IumWlbaoJe1bK8+bYKC2sAvhfBGmW90G8QQAFdCE=;
        b=qFZ4CjIbdRy97FKdEogBJsbOzg0KeaHN/RnfIiJGt08btM5QP8BnAQwb2jayTw/P8Q
         flBkb7PWvDb/oLBFWK84fskKLfiU5oqwTY6ew3qIy0wHF/t/hsilILW6WAP0gozv51pJ
         H3qelQ3hyA1IZ2F+zlYBqLB52YJLtN8iO9fzrzQINUXuheaAX1vY+tN8ZEZdKLq6LRk+
         HQRDt/9yTzGnA1qEF2P4pEWMgOo/mA0KF2mFiE+3yuXNcdcpml8tS/Gxjc19kw83rb2R
         5YGlUs3Q/YO49wNI9Bb9l1MXuSO4aYf9cidWgzco2tttHclSnEaoCqu8BvyDnbonIVmm
         L/Vg==
X-Gm-Message-State: AOJu0Ywz6qZVoKkhOiTDsUlwsGt7Vcj3LCe/32b0hYiaLvETfHff72ZE
	KoiDorRsyRyy7Fn1dJrq0nbYgcaCZ2ZRXqPTHkAnHS0CQN3yY7E+iC/T9xjC6+gpaRHWau6dwjj
	E
X-Google-Smtp-Source: AGHT+IEhPCo9rL4nHhlIZCkWsxczkP0p++tT+Ie2gGjDMV6Jni4r8Vf8Mn4MsSSBp/skTYhP5PNbbw==
X-Received: by 2002:a17:906:6a07:b0:a9e:471e:ce4a with SMTP id a640c23a62f3a-aa4833e8cfbmr1510445266b.11.1732012493031;
        Tue, 19 Nov 2024 02:34:53 -0800 (PST)
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 3/4] x86/uaccess: rework user access speculative harden guards
Date: Tue, 19 Nov 2024 11:34:43 +0100
Message-ID: <20241119103444.23296-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241119103444.23296-1-roger.pau@citrix.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current guards to select whether user accesses should be speculative
hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and can't)
parenthesize the 'args' argument.

Change the logic so the guard is implemented inside the assembly block using
the .if assembly directive.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
The guard check could be moved inside of the guest_access_mask_ptr macro, but
given it's limited usages it's clearer to keep the check in the callers IMO.
---
 xen/arch/x86/include/asm/uaccess.h | 45 +++++++++++++++---------------
 xen/arch/x86/usercopy.c            | 26 ++++++++---------
 2 files changed, 35 insertions(+), 36 deletions(-)

diff --git a/xen/arch/x86/include/asm/uaccess.h b/xen/arch/x86/include/asm/uaccess.h
index 2d01669b9610..6b8150ac221a 100644
--- a/xen/arch/x86/include/asm/uaccess.h
+++ b/xen/arch/x86/include/asm/uaccess.h
@@ -24,9 +24,6 @@ unsigned int copy_from_unsafe_ll(void *to, const void *from, unsigned int n);
 void noreturn __get_user_bad(void);
 void noreturn __put_user_bad(void);
 
-#define UA_KEEP(args...) args
-#define UA_DROP(args...)
-
 /**
  * get_guest: - Get a simple variable from guest space.
  * @x:   Variable to store result.
@@ -104,7 +101,7 @@ void noreturn __put_user_bad(void);
 #define put_unsafe(x, ptr)						\
 ({									\
 	int err_; 							\
-	put_unsafe_size(x, ptr, sizeof(*(ptr)), UA_DROP, err_, -EFAULT);\
+	put_unsafe_size(x, ptr, sizeof(*(ptr)), 0, err_, -EFAULT);      \
 	err_;								\
 })
 
@@ -126,7 +123,7 @@ void noreturn __put_user_bad(void);
 #define get_unsafe(x, ptr)						\
 ({									\
 	int err_; 							\
-	get_unsafe_size(x, ptr, sizeof(*(ptr)), UA_DROP, err_, -EFAULT);\
+	get_unsafe_size(x, ptr, sizeof(*(ptr)), 0, err_, -EFAULT);	\
 	err_;								\
 })
 
@@ -155,9 +152,9 @@ struct __large_struct { unsigned long buf[100]; };
  */
 #define put_unsafe_asm(x, addr, GUARD, err, itype, rtype, ltype, errret) \
 	__asm__ __volatile__(						\
-		GUARD(							\
+		".if " STR(GUARD) "\n"					\
 		"	guest_access_mask_ptr %[ptr], %[scr1], %[scr2]\n" \
-		)							\
+		".endif\n"						\
 		"1:	mov"itype" %"rtype"[val], (%[ptr])\n"		\
 		"2:\n"							\
 		".section .fixup,\"ax\"\n"				\
@@ -165,16 +162,16 @@ struct __large_struct { unsigned long buf[100]; };
 		"	jmp 2b\n"					\
 		".previous\n"						\
 		_ASM_EXTABLE(1b, 3b)					\
-		: [ret] "+r" (err), [ptr] "=&r" (dummy_)		\
-		  GUARD(, [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_))	\
+		: [ret] "+r" (err), [ptr] "=&r" (dummy_),		\
+		  [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_)		\
 		: [val] ltype (x), "m" (__m(addr)),			\
 		  "[ptr]" (addr), [errno] "i" (errret))
 
 #define get_unsafe_asm(x, addr, GUARD, err, rtype, ltype, errret)	\
 	__asm__ __volatile__(						\
-		GUARD(							\
+		".if " STR(GUARD) "\n"					\
 		"	guest_access_mask_ptr %[ptr], %[scr1], %[scr2]\n" \
-		)							\
+		".endif\n"						\
 		"1:	mov (%[ptr]), %"rtype"[val]\n"			\
 		"2:\n"							\
 		".section .fixup,\"ax\"\n"				\
@@ -184,14 +181,15 @@ struct __large_struct { unsigned long buf[100]; };
 		".previous\n"						\
 		_ASM_EXTABLE(1b, 3b)					\
 		: [ret] "+r" (err), [val] ltype (x),			\
-		  [ptr] "=&r" (dummy_)					\
-		  GUARD(, [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_))	\
+		  [ptr] "=&r" (dummy_),					\
+		  [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_)		\
 		: "m" (__m(addr)), "[ptr]" (addr),			\
 		  [errno] "i" (errret))
 
 #define put_unsafe_size(x, ptr, size, grd, retval, errret)                 \
 do {                                                                       \
     retval = 0;                                                            \
+    BUILD_BUG_ON((grd) != 0 && (grd) != 1);                                \
     stac();                                                                \
     switch ( size )                                                        \
     {                                                                      \
@@ -214,11 +212,12 @@ do {                                                                       \
 } while ( false )
 
 #define put_guest_size(x, ptr, size, retval, errret) \
-    put_unsafe_size(x, ptr, size, UA_KEEP, retval, errret)
+    put_unsafe_size(x, ptr, size, 1, retval, errret)
 
 #define get_unsafe_size(x, ptr, size, grd, retval, errret)                 \
 do {                                                                       \
     retval = 0;                                                            \
+    BUILD_BUG_ON((grd) != 0 && (grd) != 1);                                \
     stac();                                                                \
     switch ( size )                                                        \
     {                                                                      \
@@ -233,7 +232,7 @@ do {                                                                       \
 } while ( false )
 
 #define get_guest_size(x, ptr, size, retval, errret)                       \
-    get_unsafe_size(x, ptr, size, UA_KEEP, retval, errret)
+    get_unsafe_size(x, ptr, size, 1, retval, errret)
 
 /**
  * __copy_to_guest_pv: - Copy a block of data into guest space, with less
@@ -333,16 +332,16 @@ copy_to_unsafe(void __user *to, const void *from, unsigned int n)
 
         switch (n) {
         case 1:
-            put_unsafe_size(*(const uint8_t *)from, to, 1, UA_DROP, ret, 1);
+            put_unsafe_size(*(const uint8_t *)from, to, 1, 0, ret, 1);
             return ret;
         case 2:
-            put_unsafe_size(*(const uint16_t *)from, to, 2, UA_DROP, ret, 2);
+            put_unsafe_size(*(const uint16_t *)from, to, 2, 0, ret, 2);
             return ret;
         case 4:
-            put_unsafe_size(*(const uint32_t *)from, to, 4, UA_DROP, ret, 4);
+            put_unsafe_size(*(const uint32_t *)from, to, 4, 0, ret, 4);
             return ret;
         case 8:
-            put_unsafe_size(*(const uint64_t *)from, to, 8, UA_DROP, ret, 8);
+            put_unsafe_size(*(const uint64_t *)from, to, 8, 0, ret, 8);
             return ret;
         }
     }
@@ -374,16 +373,16 @@ copy_from_unsafe(void *to, const void __user *from, unsigned int n)
         switch ( n )
         {
         case 1:
-            get_unsafe_size(*(uint8_t *)to, from, 1, UA_DROP, ret, 1);
+            get_unsafe_size(*(uint8_t *)to, from, 1, 0, ret, 1);
             return ret;
         case 2:
-            get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);
+            get_unsafe_size(*(uint16_t *)to, from, 2, 0, ret, 2);
             return ret;
         case 4:
-            get_unsafe_size(*(uint32_t *)to, from, 4, UA_DROP, ret, 4);
+            get_unsafe_size(*(uint32_t *)to, from, 4, 0, ret, 4);
             return ret;
         case 8:
-            get_unsafe_size(*(uint64_t *)to, from, 8, UA_DROP, ret, 8);
+            get_unsafe_size(*(uint64_t *)to, from, 8, 0, ret, 8);
             return ret;
         }
     }
diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/usercopy.c
index 7ab2009efe4c..d66beecc5507 100644
--- a/xen/arch/x86/usercopy.c
+++ b/xen/arch/x86/usercopy.c
@@ -11,23 +11,23 @@
 #include <asm/uaccess.h>
 
 #ifndef GUARD
-# define GUARD UA_KEEP
+# define GUARD 1
 #endif
 
 unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
 {
-    GUARD(unsigned dummy);
+    unsigned __maybe_unused dummy;
 
     stac();
     asm volatile (
-        GUARD(
+        ".if " STR(GUARD) "\n"
         "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
-        )
+        ".endif\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))
+        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
+          [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy)
         :: "memory" );
     clac();
 
@@ -40,9 +40,9 @@ unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int
 
     stac();
     asm volatile (
-        GUARD(
+        ".if " STR(GUARD) "\n"
         "    guest_access_mask_ptr %[from], %q[scratch1], %q[scratch2]\n"
-        )
+        ".endif\n"
         "1:  rep movsb\n"
         "2:\n"
         ".section .fixup,\"ax\"\n"
@@ -56,15 +56,15 @@ unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int
         ".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))
+          [aux] "=&r" (dummy),
+          [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy)
         :: "memory" );
     clac();
 
     return n;
 }
 
-#if GUARD(1) + 0
+#if GUARD
 
 /**
  * copy_to_guest_pv: - Copy a block of data into PV guest space.
@@ -140,14 +140,14 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
 }
 
 # undef GUARD
-# define GUARD UA_DROP
+# define GUARD 0
 # 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) */
+#endif /* GUARD */
 
 /*
  * Local variables:
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:34:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839922.1255737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLZT-0001Yk-M5; Tue, 19 Nov 2024 10:34:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839922.1255737; Tue, 19 Nov 2024 10:34: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 1tDLZT-0001Xw-Ii; Tue, 19 Nov 2024 10:34:59 +0000
Received: by outflank-mailman (input) for mailman id 839922;
 Tue, 19 Nov 2024 10:34: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDLZS-0000aC-4b
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:34:58 +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 ea9a4c6e-a661-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:34:55 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cefa22e9d5so949603a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:34:55 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfb2ae6e98sm3206096a12.46.2024.11.19.02.34.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 02:34: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: ea9a4c6e-a661-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVhOWE0YzZlLWE2NjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDEyNDk1LjE0MDkyLCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732012494; x=1732617294; 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=EGEGshzGY38tWisNXdt9B5IgeekGw56Bfs63DZJjmS4=;
        b=OTrP9Irh8jo1eshHuV697DsfRIy+mlCcLfpnrzY2T4ZtUodA1O7VdUIsOaTTxeLXHB
         BTkHjPviezgGWIBCVAmbOpVZ9EHVhQ2q8DbMx7ZF8pyFza3DxsQwOhIVIZci9hXaed4B
         c+CAifL7KEVNnIndbjKn2JtR2C+YI9FQCYJEw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732012494; x=1732617294;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=EGEGshzGY38tWisNXdt9B5IgeekGw56Bfs63DZJjmS4=;
        b=Mmy4gGG2kWa2Ub6XWDprPQ6TDV8s9y5elR5S6Za4Mc37HKxuJWeE7aw4nXgLo/CQLM
         EzKmVSI7rcsM7jsVeupcrqlvW2M66FOVNKtDIDehzand2rCgaiSkOXT27lBgbV3lH4P0
         DhYF2heemNA4uO2P3lCvBb8fuzag3aNm9v13oNeQHRKAsjjCHLDha26ZM8pLrNm004MH
         6t+deTfg2yGisrePam0qVvJ6KQGACwZVq+43C/KVYzo4AYlVEqaa5qpiYjThzCdpM4Hx
         3a0wgubl5xFTYaIEhX+0LeffihJ0PL1ISr7rQfFpk7so10ShiD3jz5WyRILBgvuNGaXJ
         zPFw==
X-Gm-Message-State: AOJu0YzjPPMmKDxyivEO54FUFdmm/PBDVKskxhbVbS0eMAM8pz7iRdyR
	cdiQvtGU6Yd0l+9If0VzKkhtMHSW9YBO4E5zF6NWTTRRyEpdlv5E1pGisiA63DpcUW0QEFdzrlL
	j
X-Google-Smtp-Source: AGHT+IF+mTzXLtDza3F7Ib3z/vI+mndFETLYxPvl9yQ8aIPt6jOoWBcfzYa+oAFlla6vtR6vaeO4gQ==
X-Received: by 2002:a05:6402:278d:b0:5cf:c321:d16e with SMTP id 4fb4d7f45d1cf-5cfc321d245mr5998376a12.0.1732012494245;
        Tue, 19 Nov 2024 02:34:54 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 4/4] automation/eclair: make Misra rule 20.7 blocking for x86 also
Date: Tue, 19 Nov 2024 11:34:44 +0100
Message-ID: <20241119103444.23296-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241119103444.23296-1-roger.pau@citrix.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are no violations left, make the rule globally blocking for both x86 and
ARM.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index 9318e5b10ca8..dcddba2e061b 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -79,6 +79,7 @@ MC3R1.R20.2||
 MC3R1.R20.3||
 MC3R1.R20.4||
 MC3R1.R20.6||
+MC3R1.R20.7||
 MC3R1.R20.9||
 MC3R1.R20.11||
 MC3R1.R20.12||
@@ -115,7 +116,7 @@ if(string_equal(target,"x86_64"),
 )
 
 if(string_equal(target,"arm64"),
-    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
+    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6"})
 )
 
 -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:43:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839966.1255746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLhF-0005TF-F1; Tue, 19 Nov 2024 10:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839966.1255746; Tue, 19 Nov 2024 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 1tDLhF-0005T8-CX; Tue, 19 Nov 2024 10:43:01 +0000
Received: by outflank-mailman (input) for mailman id 839966;
 Tue, 19 Nov 2024 10:43: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 1tDLhE-0005T2-7i
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:43: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 1tDLhD-00CnLV-1s;
 Tue, 19 Nov 2024 10:42:59 +0000
Received: from [86.189.51.246] (helo=[172.24.0.40])
 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 1tDLhD-0096Ao-1x;
 Tue, 19 Nov 2024 10:42: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=OuJB1IuxIjPdXAj+1TGjJ+zN0VVh5PuZ1mpM1LfTPvI=; b=KzxQjZlNHShCGOJ2BH+fEe6EG4
	fnXys7gyyO2R6whX3WiS5LY+bQZmh+jUe7DYpD2V//PDO0EKwWl+rLWGHvqTQTcbLiqOOYCeMoItD
	VdN8B9G7sQqxh/z/OqmPsjvrDn4PIVcKxk1keQLNSB45yA9gO5Lb4IFZXZg/3aRX5Kj8=;
Message-ID: <4eb28da1-98e3-4bdf-abf2-fe5aa75a3a1e@xen.org>
Date: Tue, 19 Nov 2024 10:42:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] drivers/char: rename arm-uart.c to uart-init.c
Content-Language: en-GB
To: oleksii.kurochko@gmail.com, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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: <b2eed7fed17c9e9a3a9414e6d97360a7deeb2acb.1731671392.git.oleksii.kurochko@gmail.com>
 <804b2455-27f8-4017-a771-9c76d829d164@xen.org>
 <4799bbbdfb415dd0ed632227dd7911443b2e10ff.camel@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4799bbbdfb415dd0ed632227dd7911443b2e10ff.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Oleksii,

On 19/11/2024 09:43, oleksii.kurochko@gmail.com wrote:
> Hi Julien,
> 
> On Sat, 2024-11-16 at 10:11 +0000, Julien Grall wrote:
>> Hi Oleksii,
>>
>> On 15/11/2024 12:48, Oleksii Kurochko wrote:
>>> Rename the file containing uart_init() to enable reuse across other
>>> architectures that utilize device trees or SPCR tables to locate
>>> UART
>>> information.
>>> After locating UART data, {acpi}_device_init() is called to
>>> initialize
>>> the UART.
>>>
>>> arm_uart_init() is renamed to uart_init() to be reused by other
>>> architectures.
>>>
>>> A new configuration option, CONFIG_UART_INIT, is introduced,
>>> currently
>>> available only for Arm. Enabling CONFIG_UART_INIT on additional
>>> architectures will require additional functionality, such as device
>>> tree
>>> mapping and unflattening, etc.
>>>
>>> The MAINTAINERS file is updated to alphabetically sort files in the
>>> "ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE" section following
>>> the renaming of arm-uart.c.
>>>
>>> Add `select UART_INIT` for CONFIG_ARM to be sure that randconfig
>>> won't
>>> disable UART_INIT.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Changes in V3:
>>>  Â  - Drop blank line in xen/drivers/char/Kconfig.
>>>  Â  - Rebase on top of the latest staging.
>>> ---
>>> Changes in v2:
>>>  Â  - Rename arm-uart.c to uart-init.c instead of moving only
>>> dt_uart_init() to
>>>  Â Â Â  separate file.
>>>  Â  - Introduce new CONFIG_UART_INIT.
>>>  Â  - Rename arm_uart_init() to uart_init().
>>>  Â  - Add 'select UART_INIT' for CONFIG_ARM to be sure that
>>> randconfig won't
>>>  Â Â Â  disable UART_INIT.
>>>  Â  - Update the commit message.
>>> ---
>>>  Â  MAINTAINERSÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  2 +-
>>>  Â  xen/arch/arm/KconfigÂ Â Â Â Â Â Â Â  |Â Â  1 +
>>>  Â  xen/arch/arm/setup.cÂ Â Â Â Â Â Â Â  |Â Â  2 +-
>>>  Â  xen/drivers/char/KconfigÂ Â Â Â  |Â  10 +++
>>>  Â  xen/drivers/char/MakefileÂ Â Â  |Â Â  2 +-
>>>  Â  xen/drivers/char/arm-uart.cÂ  | 145 ------------------------------
>>> -----
>>>  Â  xen/drivers/char/uart-init.c | 145
>>> +++++++++++++++++++++++++++++++++++
>>>  Â  xen/include/xen/serial.hÂ Â Â Â  |Â Â  2 +-
>>>  Â  8 files changed, 160 insertions(+), 149 deletions(-)
>>>  Â  delete mode 100644 xen/drivers/char/arm-uart.c
>>>  Â  create mode 100644 xen/drivers/char/uart-init.c
>>>
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index 17fc5f9eec..a237080074 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -245,7 +245,6 @@ S:	Supported
>>>  Â  L:	xen-devel@lists.xenproject.org
>>>  Â  F:	docs/misc/arm/
>>>  Â  F:	xen/arch/arm/
>>> -F:	xen/drivers/char/arm-uart.c
>>>  Â  F:	xen/drivers/char/cadence-uart.c
>>>  Â  F:	xen/drivers/char/exynos4210-uart.c
>>>  Â  F:	xen/drivers/char/imx-lpuart.c
>>> @@ -254,6 +253,7 @@ F:	xen/drivers/char/mvebu-uart.c
>>>  Â  F:	xen/drivers/char/omap-uart.c
>>>  Â  F:	xen/drivers/char/pl011.c
>>>  Â  F:	xen/drivers/char/scif-uart.c
>>> +F:	xen/drivers/char/uart-init.c
>>
>> (No action needed)
>>
>> I think that's fine for now. At some point we will need to consider a
>> place where this can be maintained by other arch maintainers because
>> this is not Arm specific anymore. The only place I can think of is
>> THE REST.
> Based on what we have in THE REST:
> 
>     THE REST
>     ...
>     F:	*
>     F:	*/
>     ...
> Doesn't it mean that if we drop "F:	xen/drivers/char/uart-init.c"
> then
> by default any changes for uart-init.c file will be sent to maintainers
> mentioned in M: lines of THE REST for review?
> Thereby it seems to me we can just drop the change I did above and drop
> "xen/drivers/char/arm-uart.c" from "ARM (W/ VIRTUALISATION EXTENSIONS)
> ARCHITECTURE".

Yes it should. You can use scripts/get_maintainers.pl to confirm who 
will be CCed.

> 
>>
>>>  Â  F:	xen/drivers/passthrough/arm/
>>>  Â  F:	xen/include/public/arch-arm/
>>>  Â  F:	xen/include/public/arch-arm.h
>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>> index 15b2e4a227..e068497361 100644
>>> --- a/xen/arch/arm/Kconfig
>>> +++ b/xen/arch/arm/Kconfig
>>> @@ -17,6 +17,7 @@ config ARM
>>>  Â Â 	select HAS_PASSTHROUGH
>>>  Â Â 	select HAS_UBSAN
>>>  Â Â 	select IOMMU_FORCE_PT_SHARE
>>> +	select UART_INIT
>>>    
>>>  Â  config ARCH_DEFCONFIG
>>>  Â Â 	string
>>> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
>>> index 71ebaa77ca..2e27af4560 100644
>>> --- a/xen/arch/arm/setup.c
>>> +++ b/xen/arch/arm/setup.c
>>> @@ -361,7 +361,7 @@ void asmlinkage __init start_xen(unsigned long
>>> fdt_paddr)
>>>    
>>>  Â Â Â Â Â  gic_preinit();
>>>    
>>> -Â Â Â  arm_uart_init();
>>> +Â Â Â  uart_init();
>>>  Â Â Â Â Â  console_init_preirq();
>>>  Â Â Â Â Â  console_init_ring();
>>>    
>>> diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
>>> index e175d07c02..49a06a7859 100644
>>> --- a/xen/drivers/char/Kconfig
>>> +++ b/xen/drivers/char/Kconfig
>>> @@ -93,6 +93,16 @@ config SERIAL_TX_BUFSIZE
>>>    
>>>  Â Â 	Â  Default value is 32768 (32KiB).
>>>    
>>> +config UART_INIT
>>
>> NIT Naming: I would consider to add GENERIC in the same. This makes
>> clearer why x86 doesn't select because they would have their own
>> implementation.
> Agree, perhaps GENERIC_UART_INIT would be better. I'll add GENERIC in
> the next patch version.
> 
>>
>>> +	bool "UART initialization for DT and ACPI"
>>
>> Why do we provide a prompt for UART_INIT? This is not something I
>> would
>> expect the user to be able to disable.
> Agree, not to much sense in provding a promt for UART_INIT. I'll drop
> it.
> 
>>
>>> +	depends on ARM
>>> +	default y
>>> +	help
>>> +	Â  Provides a generic method for locating UART device tree
>>> node when
>>> +	Â  device tree is used, or for finding UART information in
>>> SPCR
>>> +	Â  table when using ACPI. Once UART information is located,
>>> +	Â  {acpi}_device_init() is called for UART-specific
>>> initialization.
>>
>> The last sentence contains too much implementation details. Kconfig
>> is
>> meant for admin to know what they need to select. I think it should
>> be
>> dropped. That said, if you don't provide any problem, then this
>> Kconfig
>> would just be:
>>
>> config UART_INIT
>>
>> And this is selected by arch.
> I don't mind to do in this way. I have only one question shouldn't we
> have, at least, bool inside config UART_INIT?
>     config UART_INIT
>         bool

Yes it should.

>     
> And then as you told in Arm's Kconfig "select UART_INIT" inside
> CONFIG_ARM?

Correct.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:52:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:52:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839980.1255757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLql-0008D5-Gz; Tue, 19 Nov 2024 10:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839980.1255757; Tue, 19 Nov 2024 10: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 1tDLql-0008Cy-E6; Tue, 19 Nov 2024 10:52:51 +0000
Received: by outflank-mailman (input) for mailman id 839980;
 Tue, 19 Nov 2024 10: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=0Kxf=SO=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tDLqk-0008Cs-OR
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:52:50 +0000
Received: from mail-ot1-x329.google.com (mail-ot1-x329.google.com
 [2607:f8b0:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 685798d2-a664-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:52:45 +0100 (CET)
Received: by mail-ot1-x329.google.com with SMTP id
 46e09a7af769-7180c7a4e02so427126a34.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:52: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: 685798d2-a664-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC1vdDEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY4NTc5OGQyLWE2NjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDEzNTY1Ljc4NTgsInNlbmRlciI6ImZyZWRpYW5vLnppZ2xpb0BjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732013564; x=1732618364; 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=BxCkrnScSvfn//DVJNwW3Ml6tAJs/0iP2qdpFnESu2A=;
        b=UCzSFjIyMGylQPWE2ZEFVNy9DEie/agD6oqJUXV3UZ2BSXaZFPiYVeAKhDl/2qBK9P
         IKlRj1w7/YgHC6nOP5mlT8+PIuofY9LCmyK6n+Frb7/Fbk9ivbtMyrKoJPITK/GGAsOD
         HpCsvVu2xULwMSSINCRwvMqOOj4j0H9kjKV1A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732013564; x=1732618364;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BxCkrnScSvfn//DVJNwW3Ml6tAJs/0iP2qdpFnESu2A=;
        b=Suuny7mquwiKKlUgNZWoewHNwgVr3MMsDyxfA7++ArQSXcaKl0VKp31xRqNe0YMO6i
         Mimi0Bve9gIpID7+R+5dMeulTr/1vwdAf6FEwq1xx5K72az8nxyV4baFW9Uky0M9hjR4
         qHe/wvHILMB3zkv7RngiAz72MgoKGi1EqBLX+ui20UkKNl/4JZtDODewNaG4vl3OSJau
         RyZmZOY1og+4eC1gjYTPXAG1lmsxoIn3+maxl29uYcOBTH9Y3Ejbq43pqbiO5isDHKpF
         x4cNcxCTDRMxEytTsMOUhxl3Aw/FTETm975ud5LjPuYtCBuyb6zcE8LT9rrDDuywYuld
         7M9g==
X-Gm-Message-State: AOJu0YxYLet9yuFHOUTnj2okj46IwDPD4ggMIKgSHH8Q/+HntQ6KAz8D
	cso7FOUd/MJI9v3YDsGj6gGuE6Ir5vC8GvYUmeGP+kWth/Z65MxnMVgbM9/wu75843+6V7cdiRw
	S/zeMEXGCeKxJfvTAhwzCFwbs7VVRIIRL5Jcn8Q==
X-Google-Smtp-Source: AGHT+IGYsBtfP+me0MbKFuYQAtViohazc9z7mAX7if75tE7qveHJTosGzNwD6bl4xQHVjGPBIy5wxd8tprncqMc1KzQ=
X-Received: by 2002:a05:6830:6217:b0:715:3f20:bd2c with SMTP id
 46e09a7af769-71a77988358mr12411311a34.10.1732013564456; Tue, 19 Nov 2024
 02:52:44 -0800 (PST)
MIME-Version: 1.0
References: <20241119103444.23296-1-roger.pau@citrix.com> <20241119103444.23296-2-roger.pau@citrix.com>
In-Reply-To: <20241119103444.23296-2-roger.pau@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Tue, 19 Nov 2024 10:52:26 +0000
Message-ID: <CACHz=Zg20Sxw_HY6EwXYvhcm=3ZjPwUH7vbdsZtSCU+2_TU7Kw@mail.gmail.com>
Subject: Re: [PATCH 1/4] x8&/mm: fix IS_LnE_ALIGNED() to comply with Misra
 Rule 20.7
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 19, 2024 at 10:35=E2=80=AFAM Roger Pau Monne <roger.pau@citrix.=
com> wrote:
>
> While not strictly needed to guarantee operator precedence is as expected=
, add
> the parentheses to comply with Misra Rule 20.7.
>
> No functional change intended.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Fixes: 5b52e1b0436f ('x86/mm: skip super-page alignment checks for non-pr=
esent entries')
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/mm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 494c14e80ff9..fa21903eb25a 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5498,7 +5498,7 @@ int map_pages_to_xen(
>   * be INVALID_MFN, since alignment is only relevant for present entries.
>   */
>  #define IS_LnE_ALIGNED(v, m, n) ({                              \
> -    mfn_t m_ =3D m;                                               \
> +    mfn_t m_ =3D (m);                                             \
>                                                                  \
>      ASSERT(!mfn_eq(m_, INVALID_MFN));                           \
>      IS_ALIGNED(PFN_DOWN(v) | mfn_x(m_),                         \

Minor, typo in subject: x8& -> x86

Frediano


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 10:56:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 10:56:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.839988.1255767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDLtn-0000O7-Us; Tue, 19 Nov 2024 10:55:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 839988.1255767; Tue, 19 Nov 2024 10: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 1tDLtn-0000O0-RX; Tue, 19 Nov 2024 10:55:59 +0000
Received: by outflank-mailman (input) for mailman id 839988;
 Tue, 19 Nov 2024 10:55: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDLtn-0000Nu-DG
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 10:55:59 +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 d87f1073-a664-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 11:55:53 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9ed49ec0f1so895752466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 02:55:53 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0861d8sm637323566b.191.2024.11.19.02.55.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 02: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: d87f1073-a664-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ4N2YxMDczLWE2NjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDEzNzUzLjI1OTM1Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732013753; x=1732618553; 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=IYnnNCAPqa/8NQVuvnj6wKUwRlPl0Q9xWm41xjvSAEU=;
        b=Id7AZs0Q1zKnSabOE7ehdCTJRX2eSuqqsio5ZxITX3AJK920hXV6yMoQrcEIKPXamV
         c6zw03ZPWTvdvc4uygBRIcnjHRH0Avdc+9ST4Fhxza7W32E2W/EK3C5OnonYgWBgx97T
         bo2itJblzyKOk5oZ+9n2XpYMjTdSYrj1eJMaw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732013753; x=1732618553;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=IYnnNCAPqa/8NQVuvnj6wKUwRlPl0Q9xWm41xjvSAEU=;
        b=XDNS+poYbrG/O6l3iNbqqOKo+xfwo/EWiOj99Dz5t/DmRGPA95CZlZ+g18kuYZRTZ+
         OIlT2i5nhMXF5aHG/dBE92crBpizz0tqgt0WCKCYoWH0FyHtZNS0tSRQMP/oH6QsVw8g
         Nf7Q/mFgO7qqf2XLLH7sw5kRAfBurxfnadt7OVhUGGezsTZ8e8qvojRU3N+mo+k+t3sd
         KB3PZntbhgKRewpL1LdHwicgkgykgMJZPMg9GsBf+sluqY5/fQAUUVzz3jSwYxw0iXlA
         09mg9TYxo2PToUw8fxUXQZ31CNNh7/MDEf7L5Ng7H8BavDZz8ZhPYs/q4lYHAnHk8uAj
         rKkQ==
X-Forwarded-Encrypted: i=1; AJvYcCUVFeiz8FQB5On8oW2G8MaLeYoKZ65evoaAOYlT8NnwQSQ6Vpa1i+cLj+4b0VLsNOV0EeobcQxHwJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfKJeVZ7ya/bl7iJJXrpDaqs+MVD06ZvJYkLghlcqTeUQ5xZeN
	WwtXkdST6yUPdTXinWmK5BIfQFXNDjVnzButYZpN1kbthjmddcurz4jt2msI8BU=
X-Google-Smtp-Source: AGHT+IEzrzQfTkwRxELc02Cj7vjExE0gI9dO3h5sANaHZTg+KD6Ri3nbhdXuWtCPd9hp4qI/t7FbAg==
X-Received: by 2002:a17:907:3e90:b0:a9a:646e:d2f7 with SMTP id a640c23a62f3a-aa48357a8a7mr1379077266b.61.1732013752707;
        Tue, 19 Nov 2024 02:55:52 -0800 (PST)
Message-ID: <1fd77d46-4035-498f-b947-85ad695075ee@citrix.com>
Date: Tue, 19 Nov 2024 10:55:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pmstat: deal with Misra 8.4 violations
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <jbeulich@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>
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>
References: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@citrix.com>
 <06b4f2c5-8470-4375-9311-c31921d7aaa8@suse.com>
 <39488f3a-f653-4083-96f0-2d1604659a6f@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <39488f3a-f653-4083-96f0-2d1604659a6f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 10:30 am, Andrew Cooper wrote:
> On 19/11/2024 8:12 am, Jan Beulich wrote:
>> While the override #define-s in x86_64/platform_hypercall.c are good for
>> the consuming side of the compat variants of set_{cx,px}_pminfo(), the
>> producers lack the respective declarations. Include pmstat.h early,
>> before the overrides are put in place, while adding explicit
>> declarations of the compat functions (alongside structure forward
>> declarations).
>>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/arch/x86/x86_64/platform_hypercall.c
>> +++ b/xen/arch/x86/x86_64/platform_hypercall.c
>> @@ -4,8 +4,8 @@
>>  
>>  EMIT_FILE;
>>  
>> -#include <xen/lib.h>
>>  #include <xen/hypercall.h>
>> +#include <xen/pmstat.h>
>>  
>>  #define xen_platform_op     compat_platform_op
>>  #define xen_platform_op_t   compat_platform_op_t
>> --- a/xen/include/xen/pmstat.h
>> +++ b/xen/include/xen/pmstat.h
>> @@ -7,6 +7,12 @@
>>  
>>  int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf);
>>  long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
>> +#ifdef CONFIG_COMPAT
>> +struct compat_processor_performance;
>> +int compat_set_px_pminfo(uint32_t acpi_id, struct compat_processor_performance *perf);
>> +struct compat_processor_power;
>> +long compat_set_cx_pminfo(uint32_t acpi_id, struct compat_processor_power *power);
>> +#endif
>>  uint32_t pmstat_get_cx_nr(unsigned int cpu);
>>  int pmstat_get_cx_stat(unsigned int cpu, struct pm_cx_stat *stat);
>>  int pmstat_reset_cx_stat(unsigned int cpu);
>>
> Thanks for the patch.Â  I'll give it a spin along with the other 8.4 fixes.

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1550621091
pending to run, with all 8.4 fixes including a prototype fix for the
do_mca() issue too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 11:06:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 11:06:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840000.1255779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDM4A-0003Bs-SK; Tue, 19 Nov 2024 11:06:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840000.1255779; Tue, 19 Nov 2024 11:06: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 1tDM4A-0003Bl-Pk; Tue, 19 Nov 2024 11:06:42 +0000
Received: by outflank-mailman (input) for mailman id 840000;
 Tue, 19 Nov 2024 11: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDM49-0003BA-Gj
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 11:06:41 +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 58bee9b3-a666-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 12:06:38 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cfcf4df87aso2390441a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 03: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
 a640c23a62f3a-aa20e086995sm635712366b.200.2024.11.19.03.06.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 03: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: 58bee9b3-a666-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU4YmVlOWIzLWE2NjYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDE0Mzk4LjU5NTg3OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732014397; x=1732619197; 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=zNeVs6kmWakulWc4KT/4b3PsO7wcEun6xx6Y75i2T6c=;
        b=bwamorxjkm+Ku/XawJqhONcVvtmDmDUAbghKtXBY2aiOUFpuc+gej8zJO8KU0RcxnB
         OnYlj5HrOXzrYQ1c2Rl7xsvSSjuTeO/brkRT6gJeIeJ6JaMdOrmCBbkUXqsEm/JwOD/A
         XetpXmu7c4UJ5HTWVOejKpg1t+lES97+iAHCnKWTNETHBi8yuy+MyuzeFLkzriGhr0/a
         Y362QbgqHVADjfNCo5XoW0xnunP0XcMZqZgM+iWImTlsWSxKepO88EgjqOu6riusE1Dh
         KfnWzPWY5k9J72bqjIdj3h1s2odt221CnR4DuN7gyIIjFSOYwCQTcUYkUxKuBmqSi6sF
         qTyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732014397; x=1732619197;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zNeVs6kmWakulWc4KT/4b3PsO7wcEun6xx6Y75i2T6c=;
        b=ua6G40MEeLZgaprI30k0S/9qoem//KLZLak6vjXqlyAdd2dl8NzCVkkyuZmW00gWjS
         zJJG9VVMjoOFh0JAzbShu1MZsqzcIBNjbaPLRa8HWcuPeDFB2BiSd8QDpv+kLGcYjcRS
         d+3QEoHEC3HeWMigLueYxQVi60HYLktzgvDqUmTIBV23A7cntRPuDQ79qk065TjgnzXK
         5kv5Ioer2teyD9kLiqahepYsXg9BXex9nN5w6dGjtZlPrXeGQILepMLOVe6jR5Hs8Eu8
         iJsl8796JLhixwK193GH9i7ldpC9L5sjFj2FE1WocPxaNLSBpeEa/9TXvGVRKllTb1zt
         54gw==
X-Forwarded-Encrypted: i=1; AJvYcCVi6KAa1gIpSyIK2vahOwb2/Gt8SDbMugF9aOwsZS473j/sWe6D7L2PHSWIJdeNonMjOlrV36Uf/SU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKaM8pmoNsg3zU1FzdqJLqcp1rKZRj9czBLPCzxgyKy0uXM1Hx
	RUCvVeEk1snHokSOKffhBGEywH+ER5NXX2k2FF7jZtuaMTObW2T4q3QoqkgZAg==
X-Google-Smtp-Source: AGHT+IF4mwlShaT+NxAG+nuhg/8oQH2a6obGLi4CxMN1cwFCtq4U9MDElLmc0GIOxMM5dKtgeSAY0A==
X-Received: by 2002:a17:907:60c8:b0:a99:f6ee:1ee3 with SMTP id a640c23a62f3a-aa48350a5a5mr1570202466b.43.1732014397405;
        Tue, 19 Nov 2024 03:06:37 -0800 (PST)
Message-ID: <ed2bbb54-1dba-4680-9279-0648882cecd9@suse.com>
Date: Tue, 19 Nov 2024 12:06:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x8&/mm: fix IS_LnE_ALIGNED() to comply with Misra
 Rule 20.7
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-2-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: <20241119103444.23296-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.11.2024 11:34, Roger Pau Monne wrote:
> While not strictly needed to guarantee operator precedence is as expected, add
> the parentheses to comply with Misra Rule 20.7.
> 
> No functional change intended.
> 
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Fixes: 5b52e1b0436f ('x86/mm: skip super-page alignment checks for non-present entries')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Nov 19 11:52:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 11:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840011.1255792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDMmD-0004H9-5g; Tue, 19 Nov 2024 11:52:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840011.1255792; Tue, 19 Nov 2024 11: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 1tDMmD-0004H2-38; Tue, 19 Nov 2024 11:52:13 +0000
Received: by outflank-mailman (input) for mailman id 840011;
 Tue, 19 Nov 2024 11:52: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=neHs=SO=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tDMmC-0004Gu-18
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 11:52:12 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20621.outbound.protection.outlook.com
 [2a01:111:f403:2412::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2240f17-a66c-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 12:52:06 +0100 (CET)
Received: from BYAPR11CA0080.namprd11.prod.outlook.com (2603:10b6:a03:f4::21)
 by SJ1PR12MB6124.namprd12.prod.outlook.com (2603:10b6:a03:459::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Tue, 19 Nov
 2024 11:52:01 +0000
Received: from MWH0EPF000989E7.namprd02.prod.outlook.com
 (2603:10b6:a03:f4:cafe::d3) by BYAPR11CA0080.outlook.office365.com
 (2603:10b6:a03:f4::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22 via Frontend
 Transport; Tue, 19 Nov 2024 11:52:01 +0000
Received: from SATLEXMB03.amd.com (165.204.84.12) by
 MWH0EPF000989E7.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 19 Nov 2024 11:52:00 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 19 Nov
 2024 05:51:59 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 19 Nov
 2024 05:51:59 -0600
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Tue, 19 Nov 2024 05:51: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: b2240f17-a66c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjIxIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImIyMjQwZjE3LWE2NmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDE3MTI2LjMzMjE2OCwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BpGvROoYf48QwT75cHi0ceBOESrnYJUVcCk9nrRIm4AfRfq9IJ1ewrzr5UvJ6myiRP3aNck/TxQHjLIc1fHpwEkZcBXLlNUt+kZp/PmZ/pNfwZ0U0wz7FbsPJBcNkkZjEEGmLTWHW9aT7AEdQ3BbrVPcgijofmCrRvi70XJRRk9hADEv5+fiM1n0D9c1LhKuM1dbpV/DITnlEewt13sHupZL/57pfMcVrploGoD4MK155qIY++6+66zDz8M1cHkmJY9NK2Ox+gV09SZUg2wRtrDIBsQA4gPJmsdCsRtU37/RLA8x0naGjWTEC9KMom/xgSmyunE5gZmUOy3a5GXjLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qDZr6HYKgYn4piSi0T7rQP20QVZ0vgRurNpnxLL5qj0=;
 b=Q+bOVReoNnGmtviE4lYrnPKOHjW3O++UVmo9+uUG3W9NNrWsHNWwIkgr6/vo9WGqIAA90eULEJ2IQb98B9M/uWfFYZQGu+91fQ6dHqwYNvE3PuI+jtWKaGv5naxwvJyF/w/1io2CmDUwzO9ok/Ku4O18X4T26Bb4MafdDVBx8h0zkWM3VX+CZnWylSQXwISGRCwb9HrVlGmSc5pm69YJsJE4miePTEf0b1he2igV2eR5BchVKyWAzPA/Xvdp7lAijWNhKidwkbWLe3BfePapnXpco2AMDB5v/YHgamlv4V2Ip//qyYT0yA20TaBtrE98gaGWQgjaer16nm135y1dEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.12) 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=qDZr6HYKgYn4piSi0T7rQP20QVZ0vgRurNpnxLL5qj0=;
 b=b8sjZgWTJ9nfFRnGV1U2OJ7GLrXEEJlPuHiyLUmQWeXfWAUy1IypxkMgYRbZGlZ5dRTaGCJSquajr9P8SR6vaRS0vW5J0ijufHAC8R0G5Ki34dIla9LiP2qmwi5VBqcclb6xJpasyLd3DrvWNUpLPlKZ2CVAJExwh4pLiM4wmr8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.12)
 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.12 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.12; helo=SATLEXMB03.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH] bootfdt: Unify early printing of memory ranges endpoints
Date: Tue, 19 Nov 2024 12:51:41 +0100
Message-ID: <20241119115141.72770-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989E7:EE_|SJ1PR12MB6124:EE_
X-MS-Office365-Filtering-Correlation-Id: d4e5f4a0-9c6d-4f3c-53c3-08dd089093ca
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?r/5nO4ZLzTqcUX3zM9dryAj/X5C2aYtUT3rw4UbK9IL5+jvmAu/3QrpkXU8m?=
 =?us-ascii?Q?kTnl6q+LhatiqBsmoBwLXgX7GSRfz0YZoGygtC+pUtfe5uo6Kjll9zu+B71n?=
 =?us-ascii?Q?uAlgk9X8W3AKuGCCdPCArHjyC1Jz3cTTJEDDgZ+ZNDM8DCRzQ3kTu5uhHVeK?=
 =?us-ascii?Q?AdD0ja8wq8SgcL0WCY7MMQlvyqMG3+NggR6uw1nl6JdKHc6flURFCjzdEJyT?=
 =?us-ascii?Q?mTkrCKAqELB2KrHC6FCJfKemlXHaNq/HM0sZiwUf0wbzDg+appEav7NQxq3t?=
 =?us-ascii?Q?5n51kqY3sGu6fjfLnUD75ePuupDgUyZPCl+pk2cdOt/q/UwuHxFWCxS0Cgmr?=
 =?us-ascii?Q?udlKL1SkFDkxsvzrRfarTk1VD5KWKuJQjyP9aHxNmrC5W+UnfLL9uzfcl3X9?=
 =?us-ascii?Q?nXLxp+2UrIlIlnhDvovmgeCG5WB+aXcXg2FB5lJHXiA42mMMRV6mxxQ+KJyL?=
 =?us-ascii?Q?a7CA2uf1lLRUswEL7/3ySMfldBz8x6tIuTbemVVzhArwnKIHQHmD4oa15Zj3?=
 =?us-ascii?Q?jVuesB8Vxjr2B7bvrzO0nVWtHZH2/5MbQHwldfAAtQKesuqQ7vvnJUqbP/QA?=
 =?us-ascii?Q?t/IZpyjxu9ENH4oeHrnwSKHEB+B//Ol2vimtJ1vi7HoK3Sz+6Je406HAAFtq?=
 =?us-ascii?Q?VVJUfVG+QSR/AOZ3vHvTt9fDTJxVvCQ5RhNgxxS7WkFWtqzYdR9BjDQJxb9A?=
 =?us-ascii?Q?ELClmsMkCpLOamEYprJo0zWB/ZE/aLc8DctLEymU9/oLZRj8Cc7Fx2QMX4NZ?=
 =?us-ascii?Q?nnyXout400k/isANnquqIXGQA3aJWT1L8NGSXRgt5GCqFRapTMbmmm6uUma5?=
 =?us-ascii?Q?2txn/k9oc/vwwWII7GEWnmcagmYlepu9Z3mLrp0QWGFcsCcIxLesb0P5qyEz?=
 =?us-ascii?Q?swnRdC8IlHpl6oWe1wfSj+0Yerb58oFAERBkTTBI2lBIGmWZ02omQsQaotG3?=
 =?us-ascii?Q?UQ/oPitJdX+zDPcbNjXLd1D/wkwHtLrQYBG/UCxtnWJ4pUySAzBfQnZgYIMS?=
 =?us-ascii?Q?/4Z8L0tFfMY8cu3eLKaEqO05PvkJxqJVXBZ1tSek445zfSIiSxRIljjGQQvq?=
 =?us-ascii?Q?gUJaXFCNdW9usURzS8vktuUpuxni5QaVzFW0GqRovt57jqJcpPkj36dolvN+?=
 =?us-ascii?Q?FxcOoi1fuRkjSbHvo69HqOq/Bj5Pm98uTpskUCabIz5NrEj8RnRcIhlRAeEY?=
 =?us-ascii?Q?GUGOs1re+zTOCiDTAArmu3QY4QS2fJTz6luLybaVmM/lnpezs6xZLgM+Mo4v?=
 =?us-ascii?Q?nxlBStCgI/vIhS/CoWIWwFKzgg6FR0mKuRjXF0/fkOquXA4DXmY8IQ6y05mU?=
 =?us-ascii?Q?AhovTrsQD3VtelvAgTnVH29qf+QzJ0kuyOz5rpLYQT2MGOUQX3sI+gws+jas?=
 =?us-ascii?Q?Te2ZCvd2UEFpBTSqqjCAnYrUNWpBhOrYpJcRubRtYfAYNlukpg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 11:52:00.2582
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d4e5f4a0-9c6d-4f3c-53c3-08dd089093ca
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.12];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989E7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6124

At the moment, when printing memory ranges during early boot, endpoints
of some ranges are printed as inclusive (RAM, RESVD, SHMEM) and some
as exclusive (Initrd, MODULE). Make the behavior consistent and print
all the endpoints as inclusive.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/common/device-tree/bootfdt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 927f59c64b0d..480644b4b421 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -439,7 +439,7 @@ static int __init process_chosen_node(const void *fdt, int node,
         return -EINVAL;
     }
 
-    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end);
+    printk("Initrd %"PRIpaddr"-%"PRIpaddr"\n", start, end - 1);
 
     add_boot_module(BOOTMOD_RAMDISK, start, end-start, false);
 
@@ -524,7 +524,7 @@ static void __init early_print_info(void)
         printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %-12s\n",
                 i,
                 mods->module[i].start,
-                mods->module[i].start + mods->module[i].size,
+                mods->module[i].start + mods->module[i].size - 1,
                 boot_module_kind_as_string(mods->module[i].kind));
 
     for ( i = 0; i < mem_resv->nr_banks; i++ )
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 12:04:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 12:04:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840024.1255803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDMyD-0006d6-DR; Tue, 19 Nov 2024 12:04:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840024.1255803; Tue, 19 Nov 2024 12:04: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 1tDMyD-0006cz-A8; Tue, 19 Nov 2024 12:04:37 +0000
Received: by outflank-mailman (input) for mailman id 840024;
 Tue, 19 Nov 2024 12:04: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDMyB-0006co-Em
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 12:04:35 +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 6dd3f70d-a66e-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 13:04:29 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9f1d76dab1so905151266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 04:04:29 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa48296dcd9sm547684466b.55.2024.11.19.04.04.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 04: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: 6dd3f70d-a66e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZkZDNmNzBkLWE2NmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDE3ODY5LjI2ODExMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732017869; x=1732622669; 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=D2REHAApkiMHynAK8pwQYCEPo+MFV9EtlJV8VYJzMco=;
        b=oSsUsiUU+ha36sIwOUQOruWfrLkRMCVTy3JJdhKh83CqfV2hdHv1gBagQ6MKweOCIZ
         P72qmUY5uQIEnsaX/doJfe1SGAdtbP/dldjpokP/GJpYtLZ2MSQdaR+70esyoZO9PDWA
         sBNeBCWlX+nmnHrnDEDu0SVgaVcscqPArN0Hk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732017869; x=1732622669;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=D2REHAApkiMHynAK8pwQYCEPo+MFV9EtlJV8VYJzMco=;
        b=iaqM8mpBTDleV3TpLDP+3rK4MAXtckdHF3Vi7TZylC36oHAL3hBY07QnWYtTgVx/Jr
         tD7p4uV8z2VA+duE812J1QIaWxPdSvLIdUAyChqdrmatyiPqs+ERA4i3ryfx0JTDpmWt
         pxTXTY0PfukL22X9As2o5HqcvBp1dXClaqkaWR0EYMVGUtCASvE9PaHctY6Kls9dxguX
         kATC+4DWAkQMHBtvDv1LnRLoEZINPrDEyBh7inySPtuiV020daON6uHcwkG0DY0qikb9
         yNmUlwjTDfR/0outtm9rzSMgQ1LTLstGVTAslXv2RcKpljZcwPPXn7cH5G9uGfgrCnTE
         t12Q==
X-Forwarded-Encrypted: i=1; AJvYcCUgJC6VhqL/rkXZK7B/1XvUjq3Re5Kr7xYtAcJzZpOMHGmHj2Q+ecq57kXUvqWKSPfHpp+5QazCcRk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCxHG0Yt0wvdAZvsg+iNXXgh2DseEU75TXeVNcxWRDAevN0Y4Y
	lu5NNwvF9YWwKWd1sPNI6fZfjKZXjLw3SnKw+fEKBe0t0G2T5+ho/LuF9nFdq4Y=
X-Google-Smtp-Source: AGHT+IEan40QszYBRb3+bvvg7FlHraVcJslHwyCwYt61puqNkw8vXE/of5B52YUdIu7p8LF66e97fA==
X-Received: by 2002:a17:906:ad84:b0:aa4:9ab1:1985 with SMTP id a640c23a62f3a-aa49ab11aacmr894997566b.51.1732017868669;
        Tue, 19 Nov 2024 04:04:28 -0800 (PST)
Message-ID: <d9c1a049-2528-46c0-8d4d-472e6aad7342@citrix.com>
Date: Tue, 19 Nov 2024 12:04:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pmstat: deal with Misra 8.4 violations
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <jbeulich@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>
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>
References: <4de83f5b-5fde-44a9-8943-b1bb3f41d2e3@citrix.com>
 <06b4f2c5-8470-4375-9311-c31921d7aaa8@suse.com>
 <39488f3a-f653-4083-96f0-2d1604659a6f@citrix.com>
 <1fd77d46-4035-498f-b947-85ad695075ee@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1fd77d46-4035-498f-b947-85ad695075ee@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 10:55 am, Andrew Cooper wrote:
> On 19/11/2024 10:30 am, Andrew Cooper wrote:
>> On 19/11/2024 8:12 am, Jan Beulich wrote:
>>> While the override #define-s in x86_64/platform_hypercall.c are good for
>>> the consuming side of the compat variants of set_{cx,px}_pminfo(), the
>>> producers lack the respective declarations. Include pmstat.h early,
>>> before the overrides are put in place, while adding explicit
>>> declarations of the compat functions (alongside structure forward
>>> declarations).
>>>
>>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> --- a/xen/arch/x86/x86_64/platform_hypercall.c
>>> +++ b/xen/arch/x86/x86_64/platform_hypercall.c
>>> @@ -4,8 +4,8 @@
>>>  
>>>  EMIT_FILE;
>>>  
>>> -#include <xen/lib.h>
>>>  #include <xen/hypercall.h>
>>> +#include <xen/pmstat.h>
>>>  
>>>  #define xen_platform_op     compat_platform_op
>>>  #define xen_platform_op_t   compat_platform_op_t
>>> --- a/xen/include/xen/pmstat.h
>>> +++ b/xen/include/xen/pmstat.h
>>> @@ -7,6 +7,12 @@
>>>  
>>>  int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf);
>>>  long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
>>> +#ifdef CONFIG_COMPAT
>>> +struct compat_processor_performance;
>>> +int compat_set_px_pminfo(uint32_t acpi_id, struct compat_processor_performance *perf);
>>> +struct compat_processor_power;
>>> +long compat_set_cx_pminfo(uint32_t acpi_id, struct compat_processor_power *power);
>>> +#endif
>>>  uint32_t pmstat_get_cx_nr(unsigned int cpu);
>>>  int pmstat_get_cx_stat(unsigned int cpu, struct pm_cx_stat *stat);
>>>  int pmstat_reset_cx_stat(unsigned int cpu);
>>>
>> Thanks for the patch.Â  I'll give it a spin along with the other 8.4 fixes.
> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1550621091
> pending to run, with all 8.4 fixes including a prototype fix for the
> do_mca() issue too.

Eclair was happy with the result, so:

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Tested-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 12:46:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 12:46:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840034.1255813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDNcZ-0005EN-DG; Tue, 19 Nov 2024 12:46:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840034.1255813; Tue, 19 Nov 2024 12:46: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 1tDNcZ-0005EG-AE; Tue, 19 Nov 2024 12:46:19 +0000
Received: by outflank-mailman (input) for mailman id 840034;
 Tue, 19 Nov 2024 12:46: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDNcY-0005EA-H6
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 12:46:18 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4283f049-a674-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 13:46:13 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso747341866b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 04:46:13 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dffd7a4sm655957766b.105.2024.11.19.04.46.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 04:46: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: 4283f049-a674-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQyODNmMDQ5LWE2NzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDIwMzczLjYxNjY3MSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732020373; x=1732625173; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=DrDMVNeR0PJfrdMZs5AdGDbZTwJitmhz9VKgAQjSyho=;
        b=Gf6OGihSWNOILHiKprXmC2Qi/RHKSq8JULRTW7Kz8GxGOv4p67QJHtYbyy50CUAEQj
         q7kd4ubD3Mkcpjid+RwL94GGZdZUhRN2iAINmDonTdlU9C7cfZscrIMvW/BdLPQ9Z+Wj
         DVW/giCZJ9saZY4/h+tviO7VQ4pbV8FOy5ZOc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732020373; x=1732625173;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=DrDMVNeR0PJfrdMZs5AdGDbZTwJitmhz9VKgAQjSyho=;
        b=Q9rxQS8tWxZyEcn9b6+g3vlZMt2eDyh9ZEN7x6vmMz9W2hSPfyrKSkUxhmWizz4T31
         zw5tiOgPXz/rUrd4OugW6rhvPfOY96BJcrKPXJDoJDBx+MKasOZ5D2gJXMCV4j5XRRP0
         gHallXFs6CofEN3JNfN8gsVBSrbxW5k9Lb1ZomgOAUeIdWAx++LGbKQ4kTz72aXdSYLZ
         OU3RI5nuw6nr7yN4uYpPWMIj9onZIuTCDakhJGMsW+Lv0/3sxP0649rRfQM3luWLiTTz
         Ro07MAIkd2L0eYe/w92VnwONPB+8baosSCBG96X3SlEpQr83h2ioUG7HntmrD9Y4sszo
         4bLw==
X-Gm-Message-State: AOJu0Yww+VgRUfAaxC2TzRe4OEWcwnxyH6L/MWCP9UHtF8y3H4oWCAqr
	sDW1NoRXa2cIoMHnVSHOrZhaLrBGJhm41k9kkFfxYxaRm44krr7uSX3Geqr33EY=
X-Google-Smtp-Source: AGHT+IEabKzJF9K5CbNxopeoZ6Vinb0HSaEBvARkLnKqk42nSAPh5HZhNNpv+dESMulP9UQ4pcog7w==
X-Received: by 2002:a17:907:3f04:b0:a9e:e1a9:8ddf with SMTP id a640c23a62f3a-aa483476164mr1479333866b.29.1732020372944;
        Tue, 19 Nov 2024 04:46:12 -0800 (PST)
Date: Tue, 19 Nov 2024 13:46:11 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzyIk0KipX8LPZNv@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook>
 <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>

On Mon, Nov 18, 2024 at 06:06:03AM +0000, Chen, Jiqian wrote:
> On 2024/11/15 19:42, Roger Pau MonnÃ© wrote:
> > On Fri, Nov 15, 2024 at 03:04:22AM +0000, Chen, Jiqian wrote:
> >> On 2024/11/15 01:36, Roger Pau MonnÃ© wrote:
> >>> On Thu, Nov 14, 2024 at 04:52:18PM +0100, Roger Pau MonnÃ© wrote:
> >>>> On Thu, Nov 14, 2024 at 06:11:46AM +0000, Chen, Jiqian wrote:
> >>>>> On 2024/11/13 18:30, Roger Pau MonnÃ© wrote:
> >>>>>> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >>>>>>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>>>>>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>>>>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>>>>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>>>>>>> and then cause probing failure.
> >>>>>>>>>
> >>>>>>>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>>>>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>>>>>>> corresponding handler into vpci.
> >>>>>>>>>
> >>>>>>>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>>>>>>
> >>>>>>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>>>>>>> setting the new size.
> >>>>>>>>
> >>>>>>>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>>>>>>> time ago I've made a patch to add support for it, but due to lack of
> >>>>>>>> hardware on my side to test it I've never submitted it.
> >>>>>>>>
> >>>>>>>> My approach would be to detect the presence of the
> >>>>>>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>>>>>>> capability is present force the sizing of BARs each time they are
> >>>>>>>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>>>>>>> the capability itself, as resizing can only happen when memory
> >>>>>>>> decoding is not enabled for the device.  It's enough to fetch the size
> >>>>>>>> of the BARs ahead of each enabling of memory decoding.
> >>>>>>>>
> >>>>>>>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>>>>>>> is already an expensive operation, the extra sizing is unlikely to
> >>>>>>>> make much of a difference performance wise.
> >>>>>>>>
> >>>>>>>> I've found the following on my git tree and rebased on top of staging:
> >>>>>>> OK.
> >>>>>>> Do you need me to validate your patch in my environment?
> >>>>>>
> >>>>>> Yes please, I have no way to test it.  Let's see what others think
> >>>>>> about the different approaches.
> >>>>> There are some errors with your method.
> >>>>> I attached the dmesg and xl dmesg logs.
> >>>>> From the dmesg logs, it seems that 0000:03:00.0 has addresse overlap with 0000:03:00.1
> >>>>
> >>>> Do you have the output of lspci with the BAR sizes/positions before
> >>>> and after the resizing?
> >>>>
> >>>>>
> >>>>> I think there is a place that needs to be modified regarding your method,
> >>>>> although this modification does not help with the above-mentioned errors,
> >>>>> it is that whether to support resizing is specific to which bar, rather than just determining whether there is a Rebar capability.
> >>>>
> >>>> Do we really need such fine-grained information?  It should be
> >>>> harmless (even if not strictly necessary) to size all BARs on the
> >>>> device before enabling memory decoding, even if some of them do not
> >>>> support resizing.
> >>>>
> >>>> I might have to provide a patch with additional messages to see what's
> >>>> going on.
> >>>
> >>> One nit that I've noticed with the patch I gave you previously is that
> >>> the check for a size change in modify_bars() should be done ahead of
> >>> pci_check_bar(), otherwise the check is possibly using an outdated
> >>> size.
> >>>
> >>> I've also added a debug message to notify when a BAR register is
> >>> written and report the new address.  This is done unconditionally, but
> >>> if you think it's too chatty you can limit to only printing for the
> >>> device that has the ReBAR capability.
> >> Errors are the same.
> >> Attached the dmesg, xl dmesg, patch and lspci output.
> >> I will also continue to debug your method on my side to try to get some findings.
> > 
> > Hello,
> > 
> > I've been looking at the output, and it all seems fine, except the
> > 03:00.0 device that becomes broken at some point, note the lspci
> > output lists [virtual] next to the resource sizes.  This means reading
> > for the registers returned 0, so the position and sizes are provided
> > from the internal OS information.
> > 
> > I'm assuming the patch you sent to the list doesn't lead to such errors,
> Yes, the method of my patch doesn't lead to any errors.
> I attached the dmesg, xl dmesg and lspci logs of my method.
> 
> > in which case I can only guess that fetching the size of the
> > BARs in modify_bars() causes issues with the device.
> > 
> > To confirm this, can you try the following patch on top of your original change?  
> I tried below patch with my original patch, it didn't cause any errors.
> And the lspci showed without the "[virtual]".
> So, unfortunately, it is not related to the fetching size of Bars in modify_bars().

I see, I'm at a loss as to what's wrong with my patch.  Do you have
any additional patches on Xen when testing your or my approach?

I sadly don't have any box with a PCI device that exposes the
resizable BAR capability, so I'm not able to test or debug this.

I would like to understand why my approach doesn't work, as otherwise
I feel like I'm missing how ReBAR is supposed to work.  Anyway, if you
can give a try to the diff below, it's the same patch, but with yet
even more debug messages added.

Thanks, and sorry for keeping you testing it.

Regards, Roger.

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ef6c965c081c..dda42ef0b7ff 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -316,6 +316,9 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
 
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
 
+    printk("%pp: modify bars cmd: %x rom_only: %d\n",
+           &pdev->sbdf, cmd, rom_only);
+
     /*
      * Create a rangeset per BAR that represents the current device memory
      * region and compare it against all the currently active BAR memory
@@ -346,6 +349,33 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
              bar->enabled == !!(cmd & PCI_COMMAND_MEMORY) )
             continue;
 
+        if ( bar->type != VPCI_BAR_ROM && header->bars_resizable &&
+             (cmd & PCI_COMMAND_MEMORY) )
+        {
+            uint64_t addr, size;
+
+            pci_size_mem_bar(pdev->sbdf, PCI_BASE_ADDRESS_0 + i * 4,
+                             &addr, &size, 0);
+
+            printk("%pp: BAR%u ReBAR supported addr %#lx -> %#lx size %#lx -> %#lx\n",
+                    &pdev->sbdf, i, bar->addr, addr, bar->size, size);
+
+            if ( bar->addr != addr )
+                printk(XENLOG_G_ERR
+                       "%pp: BAR#%u address mismatch %#lx vs %#lx\n",
+                       &pdev->sbdf, i, bar->addr, addr);
+
+            if ( bar->size != size )
+            {
+                printk(XENLOG_G_DEBUG
+                       "%pp: detected BAR#%u size change (%#lx -> %#lx)\n",
+                       &pdev->sbdf, i, bar->size, size);
+                bar->size = size;
+                end = PFN_DOWN(bar->addr + size - 1);
+                end_guest = PFN_DOWN(bar->guest_addr + size - 1);
+            }
+        }
+
         if ( !pci_check_bar(pdev, _mfn(start), _mfn(end)) )
         {
             printk(XENLOG_G_WARNING
@@ -583,8 +613,6 @@ static void cf_check bar_write(
      */
     if ( bar->enabled )
     {
-        /* If the value written is the current one avoid printing a warning. */
-        if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
             gprintk(XENLOG_WARNING,
                     "%pp: ignored BAR %zu write while mapped\n",
                     &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
@@ -601,6 +629,10 @@ static void cf_check bar_write(
     /* Update guest address, so hardware domain BAR is identity mapped. */
     bar->guest_addr = bar->addr;
 
+    printk("%pp: write BAR%zu val: %#x BAR%zu address: %#lx\n",
+           &pdev->sbdf, bar - pdev->vpci->header.bars, val,
+           bar - pdev->vpci->header.bars + hi, bar->addr);
+
     /* Make sure Xen writes back the same value for the BAR RO bits. */
     if ( !hi )
     {
@@ -870,6 +902,9 @@ static int cf_check init_header(struct pci_dev *pdev)
     if ( pdev->ignore_bars )
         return 0;
 
+    header->bars_resizable = pci_find_ext_capability(pdev->sbdf,
+                                                     PCI_EXT_CAP_ID_REBAR);
+
     cmd = pci_conf_read16(pdev->sbdf, PCI_COMMAND);
 
     /*
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 250ba106dbd3..c543a2b86778 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -459,6 +459,7 @@
 #define PCI_EXT_CAP_ID_ARI	14
 #define PCI_EXT_CAP_ID_ATS	15
 #define PCI_EXT_CAP_ID_SRIOV	16
+#define PCI_EXT_CAP_ID_REBAR	21
 
 /* Advanced Error Reporting */
 #define PCI_ERR_UNCOR_STATUS	4	/* Uncorrectable Error Status */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 41e7c3bc2791..45ebc1bb3356 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -129,6 +129,8 @@ struct vpci {
          * upon to know whether BARs are mapped into the guest p2m.
          */
         bool bars_mapped      : 1;
+        /* Device has the Resizable BARs capability. */
+        bool bars_resizable   : 1;
         /* FIXME: currently there's no support for SR-IOV. */
     } header;
 


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 12:51:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 12:51:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840042.1255822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDNhJ-000727-Sa; Tue, 19 Nov 2024 12:51:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840042.1255822; Tue, 19 Nov 2024 12:51: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 1tDNhJ-000720-Q7; Tue, 19 Nov 2024 12:51:13 +0000
Received: by outflank-mailman (input) for mailman id 840042;
 Tue, 19 Nov 2024 12:51: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDNhI-00071u-BO
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 12:51:12 +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 f26a2707-a674-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 13:51:08 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5c9693dc739so4807298a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 04:51:08 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df515e0sm643578866b.53.2024.11.19.04.51.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 04:51: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: f26a2707-a674-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYyNmEyNzA3LWE2NzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDIwNjY4LjcwMjQ5Miwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732020668; x=1732625468; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=0IKCBg8Wt8HGu2lHeJGsGH5/CDIw8fURbXvfftc4dac=;
        b=gzhx5MuFj7mKFxz55CvycSN4qPZsvDfTT9mNe+UiHNQRRTJEVYceOTwWUsNieMajOY
         eLCuLCrrL8nmXdIId8cAEzDyXyuYEJwAfBf/pjDojjnp9vJz+bvneJsnt7+Xutl6ydZw
         DJYn90hJ6uh9aNZZuNEYm9vCBLYMdv4FrGmxk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732020668; x=1732625468;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0IKCBg8Wt8HGu2lHeJGsGH5/CDIw8fURbXvfftc4dac=;
        b=vVa0XUakCI2D3aSfKQBA/yGvbK1hX4qx9yPOMaBq4BeqNHqisgfVMdXzXMdEa9nb+5
         bRTKx8rCZrsr7kBgWpEzPYCCvCAOcCw5WhOwGdxR4lcoXKceOl02lRDESn6aJckFojKw
         c4Y0lg8ApkvZSlzQjockrOGGKOx9DZknJgM0H8aLUWnGRkrrIMZTr0SMfNAQHU2Ji9Q3
         +hBqkEXpD6I9Wp+Z989ZDTZ1/Omi3zvA8f35gOu+uE6fyCqMf/O4a/DenkeitF8wMK1b
         hF9rKYH8AVG0jHm+zispQKOOgJIgjQWbOXseDH+3D3sYUgs8w/goRhLs5q8nOsOfEuj4
         tStQ==
X-Gm-Message-State: AOJu0Yxb4CNlyFRkI0kim555rAUz7ZEBEGBZ5FahQYVFC335LENZHLct
	Xy8jugVSI8IEd9Ewecw9jMeXuhuUZKSFsDmX8CeyFi1j+3k0ovMcs0KjmYW3H9rbWaoixu/TzWZ
	s
X-Google-Smtp-Source: AGHT+IHlRtBm7ND14xz59rFrp5kNLLKad9h/NwRR7l5/uMbxTpWUyzHOmaOyPWkHw5Z5l7SfT/QhJA==
X-Received: by 2002:a17:907:c22:b0:a99:77f0:51f7 with SMTP id a640c23a62f3a-aa48357dff1mr1406412366b.61.1732020668150;
        Tue, 19 Nov 2024 04:51:08 -0800 (PST)
Date: Tue, 19 Nov 2024 13:51:07 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <ZzyJu9mrwJhDJClE@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20241113080027.244240-1-Jiqian.Chen@amd.com>

On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> +static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
> +                                      unsigned int reg,
> +                                      uint32_t val,
> +                                      void *data)
> +{
> +    uint32_t ctrl, index;
> +    struct vpci_bar *bars = pdev->vpci->header.bars;
> +
> +    ctrl = pci_conf_read32(pdev->sbdf, reg);
> +    if ( ctrl == val )
> +        return;
> +
> +    ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
> +    if ( ctrl != ( val & ~PCI_REBAR_CTRL_BAR_SIZE ) )
> +        return;
> +
> +    index = ctrl & PCI_REBAR_CTRL_BAR_IDX;
> +    bars[index].size = (1 << ((val & PCI_REBAR_CTRL_BAR_SIZE) >>
> +                              PCI_REBAR_CTRL_BAR_SHIFT)) *
> +                       PCI_REBAR_CTRL_BAR_UNIT;

One further comment: you also need to reset addr and guest_addr here
(possibly by reading them from the BAR register), as the specification
states that:

"After writing the BAR Size field, the contents of the corresponding
BAR are undefined"

Hence the cached addr and guest_addr are stale after a write to the
control register.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 12:59:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 12:59:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840050.1255833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDNp3-0007f7-KC; Tue, 19 Nov 2024 12:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840050.1255833; Tue, 19 Nov 2024 12: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 1tDNp3-0007f0-HP; Tue, 19 Nov 2024 12:59:13 +0000
Received: by outflank-mailman (input) for mailman id 840050;
 Tue, 19 Nov 2024 12:59: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDNp2-0007eu-Oi
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 12:59:12 +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 100ef3a0-a676-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 13:59:07 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cef772621eso6989840a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 04:59:07 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfeada3353sm75194a12.78.2024.11.19.04.59.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 04:59: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: 100ef3a0-a676-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEwMGVmM2EwLWE2NzYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDIxMTQ3Ljk3MzIyLCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732021147; x=1732625947; 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=CxQenpaGaMzjrQymcJZ0umdG0FyNusdLvNQQSxeygiw=;
        b=lyUz5uUWdTkw4m2jQyAtFlVQM4yACuiZbTl5ZEcfi+VgzfzX3GUQA2SqulRGK4JHQT
         tDdy8ZnbRY3IkjHTuM8IZ5FI7UJePue4lo4LzViTuqoyH7+lTDaplBSK96z/N9DadKnt
         IdPNqfC4nl5s8QljF4P0hIsesqR2A9rQF4VZU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732021147; x=1732625947;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CxQenpaGaMzjrQymcJZ0umdG0FyNusdLvNQQSxeygiw=;
        b=ZwPRt7Py2QaGPA3teZgc6GnsfpPk+a9Kqm1YDA56NALZKbdrydfclW8etDKOaCKxlN
         P/+Lca/C/f0qk5mP/5v75zcKd6J/5X3DR1U7CdyGGKxQth1W0/L5j/nA+1nUWo5Uk+wn
         rZRO70qpd1Yuw9ItPpZ28yykZKWhGiiLmwjKG9dud9TQB8K4AjoIAOAtBCpihtBdaMK9
         TuQUlIXFzde1izIdzRkbPMU2+afveWP/xgRNyqbh7S+HB36EFbZRftj5zJi+UDbefHQ0
         g+qZNvAJboL2WlMnAPlOfbNCqrsIxmY51H46GMg5tfaEaz2+l1lms6oswGN/rfzc8Xwn
         dZVg==
X-Gm-Message-State: AOJu0YxVGRNfhzyozjq9livV0N7Iwc1JGEVN85l3aO66/kX7nnNm8iQy
	Hj7LjGrWd7wWpUnbC0Z99YsX8/6LKDVUjhE23DxF7pp4LijXpDG8O3YFau3gVVPxqoTYjmcKN5C
	G
X-Google-Smtp-Source: AGHT+IHV4dsppsIcjpFTHAMZ1qHqMhEcLzq0BcxZ0lzSwUGlsJk4kaAb1f+38ufL8k6/6pqJ0e8law==
X-Received: by 2002:a05:6402:234d:b0:5cf:ac34:380a with SMTP id 4fb4d7f45d1cf-5cfac34390amr6856047a12.29.1732021146955;
        Tue, 19 Nov 2024 04:59:06 -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>
Subject: [PATCH] x86/mce: Compile do_mca() for CONFIG_PV only
Date: Tue, 19 Nov 2024 12:59:04 +0000
Message-Id: <20241119125904.2681402-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

Eclair reports a Misra Rule 8.4 violation; that do_mca() can't see it's
declaration.  It turns out that this is a consequence of do_mca() being
PV-only, and the declaration being compiled out in !PV builds.

Therefore, arrange for do_mca() to be compiled out in !PV builds.  This in
turn requires a number of static functions to become static inline.

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>

Bloat-o-meter on a !PV build reports:

  add/remove: 0/6 grow/shrink: 0/0 up/down: 0/-3717 (-3717)
  Function                                     old     new   delta
  x86_mc_mceinject                              31       -     -31
  do_mca.cold                                  117       -    -117
  x86_mc_msrinject                             147       -    -147
  x86_mc_msrinject.cold                        230       -    -230
  do_mc_get_cpu_info                           500       -    -500
  do_mca                                      2692       -   -2692
---
 xen/arch/x86/cpu/mcheck/mce.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 32c1b2756b90..2a88590525f0 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -932,7 +932,7 @@ void x86_mcinfo_dump(struct mc_info *mi)
     } while ( 1 );
 }
 
-static void cf_check do_mc_get_cpu_info(void *v)
+static inline void cf_check do_mc_get_cpu_info(void *v)
 {
     int cpu = smp_processor_id();
     int cindex, cpn;
@@ -1114,7 +1114,7 @@ bool intpose_inval(unsigned int cpu_nr, uint64_t msr)
      (r) <= MSR_IA32_MCx_MISC(per_cpu(nr_mce_banks, cpu) - 1) && \
      ((r) - MSR_IA32_MC0_CTL) % 4) /* excludes MCi_CTL */
 
-static bool x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
+static inline bool x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 {
     const struct cpuinfo_x86 *c = &cpu_data[mci->mcinj_cpunr];
     int i, errs = 0;
@@ -1192,7 +1192,7 @@ static bool x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
     return !errs;
 }
 
-static uint64_t x86_mc_hwcr_wren(void)
+static inline uint64_t x86_mc_hwcr_wren(void)
 {
     uint64_t old;
 
@@ -1207,13 +1207,13 @@ static uint64_t x86_mc_hwcr_wren(void)
     return old;
 }
 
-static void x86_mc_hwcr_wren_restore(uint64_t hwcr)
+static inline void x86_mc_hwcr_wren_restore(uint64_t hwcr)
 {
     if ( !(hwcr & K8_HWCR_MCi_STATUS_WREN) )
         wrmsrl(MSR_K8_HWCR, hwcr);
 }
 
-static void cf_check x86_mc_msrinject(void *data)
+static inline void cf_check x86_mc_msrinject(void *data)
 {
     struct xen_mc_msrinject *mci = data;
     struct mcinfo_msr *msr;
@@ -1244,13 +1244,14 @@ static void cf_check x86_mc_msrinject(void *data)
         x86_mc_hwcr_wren_restore(hwcr);
 }
 
-/*ARGSUSED*/
-static void cf_check x86_mc_mceinject(void *data)
+static inline void cf_check x86_mc_mceinject(void *data)
 {
     printk("Simulating #MC on cpu %d\n", smp_processor_id());
     __asm__ __volatile__("int $0x12");
 }
 
+#ifdef CONFIG_PV /* do_mca() hypercall is PV-only */
+
 #if BITS_PER_LONG == 64
 
 #define ID2COOKIE(id) ((mctelem_cookie_t)(id))
@@ -1654,6 +1655,8 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
     return ret;
 }
 
+#endif /* CONFIG_PV */
+
 static int mcinfo_dumped;
 
 static int cf_check x86_mcinfo_dump_panic(mctelem_cookie_t mctc)

base-commit: 3128d7248f2ad389b8e9a3e252958cbfbd1898ee
prerequisite-patch-id: 46b8fc2e9df2fd6be1bbbd6b50463e0e15a8f94d
prerequisite-patch-id: c122b170f57ab96fe52c37aebf1f4bb366194637
prerequisite-patch-id: 1c2d96bf17c5da0981b6c62939d3b7cc1e05933e
prerequisite-patch-id: b3e43902729416e18b4fada7f529b4cb02b1815e
prerequisite-patch-id: a06452180f71021893259bb3b883185f57742a31
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 13:04:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 13:04:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840064.1255842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDNuS-0001JP-Aj; Tue, 19 Nov 2024 13:04:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840064.1255842; Tue, 19 Nov 2024 13:04: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 1tDNuS-0001JI-89; Tue, 19 Nov 2024 13:04:48 +0000
Received: by outflank-mailman (input) for mailman id 840064;
 Tue, 19 Nov 2024 13:04: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDNuQ-0001JC-Tt
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 13:04:46 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7575cce-a676-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 14:04:42 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2f7657f9f62so9844501fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 05:04:42 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfb962b007sm2905357a12.28.2024.11.19.05.04.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 05: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: d7575cce-a676-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1sajEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ3NTc1Y2NlLWE2NzYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDIxNDgyLjIxNzk2NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732021481; x=1732626281; 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=XwbScXyc4DfZQP6ZIve+wn3XG+BEursfwAm+TjV9Dso=;
        b=S+Pbru0Ptmx4JzggXKvs126QMhYTjZY11VxI6HG0TkDZ+txlogu0ASbD+QFRaF4MZh
         9A/ycwzwuZ4Pac0/mHpltqIYgLE2xLWX0H96e1aupNEwR235xou0Rk7oTCPGAbYgDMLn
         KHeLrvCTLkeHHWnFKQuPqfamEdwlq39INxjSk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732021481; x=1732626281;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=XwbScXyc4DfZQP6ZIve+wn3XG+BEursfwAm+TjV9Dso=;
        b=UqdkqVualE32lRM5LjrJIrSfRXbO/w7wj4sokKcss6phXOnUJTT0sgMSPeVXaua+vm
         rV9cOiE4Hu7KQxaG8JN1W6dRkvXcLLgOVKNgkBstDxxBqsexSlk3slSo7iprmUavPEYQ
         mkgWrvawRpjl7rBDbm9zifiI0s2ix+B3Ee5T9VMB2Niw88hk/1PKquq3Iw30ed5FtuIm
         JiaS50T5SmYGH1lOCL7BsZty3dKlTpAhG49FJXCYBizqADMOoq/HvT1CV8FRqViLYfy8
         3DO9QzywMgZNSzZLraldD0w1yFGEpKKmXkBLP2iD7arBdiXwTWDz7B1zwJZgNKz9ictd
         muQw==
X-Gm-Message-State: AOJu0YyXGTnRgCJ/+RCDsHUcGzulsDW9PIoEP/qya4OL4qwu7i4qz2yd
	12TdgpeVqPaJ3Sf7H3yB/nA2affhnMBog1bExZJ65KyKPMcbEKrk9LAJw2o6iBA7bnLOaVW6+K/
	T
X-Google-Smtp-Source: AGHT+IGg0vy/66kRh5w+NyTFpq5F9OhOdHORd1XNU6rXUQQgE5f3yf1+0+kMTkcHUeUqL2HIaukiCA==
X-Received: by 2002:a05:651c:1147:b0:2fb:5060:7037 with SMTP id 38308e7fff4ca-2ff609bdeefmr68899611fa.41.1732021480667;
        Tue, 19 Nov 2024 05:04:40 -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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>
Subject: [PATCH] MISRA: Mark Rule 8.4 as clean
Date: Tue, 19 Nov 2024 13:04:37 +0000
Message-Id: <20241119130437.2681955-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

All violations have been fixed up, so mark it as clean.

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: consulting@bugseng.com <consulting@bugseng.com>

As I've not committed "xen/bootinfo: Include declaration for
fw_unreserved_regions()" yet, I'm very tempted to drop the churn in the arm64
line and have this as the singular patch adjusting the clean list.
---
 automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index 7944ce2ee3b2..755ea3271fc9 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -47,6 +47,7 @@ MC3R1.R7.4||
 MC3R1.R8.1||
 MC3R1.R8.2||
 MC3R1.R8.3||
+MC3R1.R8.4||
 MC3R1.R8.5||
 MC3R1.R8.6||
 MC3R1.R8.8||
@@ -115,7 +116,7 @@ if(string_equal(target,"x86_64"),
 )
 
 if(string_equal(target,"arm64"),
-    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3R1.R8.4||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
+    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
 )
 
 -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}

base-commit: 3128d7248f2ad389b8e9a3e252958cbfbd1898ee
prerequisite-patch-id: 46b8fc2e9df2fd6be1bbbd6b50463e0e15a8f94d
prerequisite-patch-id: c122b170f57ab96fe52c37aebf1f4bb366194637
prerequisite-patch-id: 1c2d96bf17c5da0981b6c62939d3b7cc1e05933e
prerequisite-patch-id: b3e43902729416e18b4fada7f529b4cb02b1815e
prerequisite-patch-id: 9cb4598ff123c3b153f50f08798ad66a849c1af6
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 13:15:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 13:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840073.1255853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDO4J-0003aG-7I; Tue, 19 Nov 2024 13:14:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840073.1255853; Tue, 19 Nov 2024 13:14: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 1tDO4J-0003a9-4L; Tue, 19 Nov 2024 13:14:59 +0000
Received: by outflank-mailman (input) for mailman id 840073;
 Tue, 19 Nov 2024 13:14: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDO4H-0003a3-Tp
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 13:14:57 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4300c89f-a678-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 14:14:52 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso525742366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 05:14:52 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dfffc00sm655027966b.101.2024.11.19.05.14.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 05:14: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: 4300c89f-a678-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQzMDBjODlmLWE2NzgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDIyMDkyLjQxNDcwNSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732022092; x=1732626892; 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=sHrsABzr4w0CFGNRcPDp0IVPUUmS1bSdGKYktKjUY+k=;
        b=kSSE1RKXc6MOUCUso03mX3Nlb9WW+pf1bnuqAlnyYa75m9tykh5+gPys33HA21FTxt
         /6cyZ9MM0Qyd7SAF+lhMF/axf+rTjHDx2hylAoJhL5zi4UN1ioOeXdJUUHsHmKapM06j
         7DbzHUUm2oRfaAbTsWA8LLvUTm1xp0mk1/3YE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732022092; x=1732626892;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sHrsABzr4w0CFGNRcPDp0IVPUUmS1bSdGKYktKjUY+k=;
        b=rbYh0gZrSbwCK1Vmo9eLn1UutVoRs6ES/f8fO+ijPOnrdbz1QAtIeKuFbNW0+oUZBX
         0qDUjM6AkzxKasWLFHQNmK/va4+hoTeA3AjhIvjkZYH1phZRSowf+ZnUCryFJcOcdmbm
         fGLXTyMg8A2eZMBuqdUk7fJ5hYwsyrogjrmAlxokTwYt6TyO/H797FnrwpJWuqAUO5bu
         Com3ifMYMZPR9mXpa/WyT0hFLvvmdeaUdqY5TkqGauETTsR2QN4+2gENmoUrb6cANtkt
         d26//ttmvalLaO7sl9Lbi2FzS/jrodPMS/zZz/PIFAYU3106aAQRHI1x94qZytJXm4/e
         7rGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUp6+05Qz6R5ZU+rkm25G3G+vrqtK3Y7wCQs77PINe45NwDlrWjl5dVzA/Wwa8fdtsVpWs0vNljyK4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxi8GMLmYH2HhWG5YqQ1Kz/tTiInyMVwwlF78IP9QgxPhKxso00
	cQBKp+CXTxwty9fwp0nGBN9XdOHCdXiR7e+hohqtvQtLp4XIBHB29hQ7+E+CZxs=
X-Google-Smtp-Source: AGHT+IGTTwBlv8nfpduQaa5l/YfP6fUQvIdCcNZ494cB5QxDFo22swPLU8WHQikiRFRLCcnfikGSGA==
X-Received: by 2002:a17:907:2d91:b0:a9e:b68e:909 with SMTP id a640c23a62f3a-aa4834212e5mr1464988466b.15.1732022091780;
        Tue, 19 Nov 2024 05:14:51 -0800 (PST)
Message-ID: <e34a3c7f-b2f0-4682-93b3-51f95407c570@citrix.com>
Date: Tue, 19 Nov 2024 13:14:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Introduce boot-helpers.h
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241118171809.2447714-1-andrew.cooper3@citrix.com>
 <88c486f9-c2f1-44ed-a415-1a1dc3f156b4@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <88c486f9-c2f1-44ed-a415-1a1dc3f156b4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 8:19 am, Jan Beulich wrote:
> On 18.11.2024 18:18, Andrew Cooper wrote:
>> Eclair complains that neither reloc_trampoline{32,64}() can see their
>> declarations.
>>
>> reloc_trampoline32() needs to become asmlinkage, while reloc_trampoline64()
>> needs declaring properly in a way that both efi-boot.h and reloc-trampoline.c
>> can see.
>>
>> Introduce boot-helpers.h for the purpose.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>> --- /dev/null
>> +++ b/xen/arch/x86/include/asm/boot-helpers.h
>> @@ -0,0 +1,13 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Declarations for helper functions compiled for both 32bit and 64bit.
>> + *
>> + * The 32bit forms are called only from assembly, so no declaration is provide
>> + * here.
>> + */
> How certain are you/we that what is said in the 2nd paragraph will remain
> as a pattern?

Unsure, but there needs to be an explanation of why reloc_trampoline32()
isn't here.

It's not clear how we'd even safely get 32bit declarations here.Â  They
would really want to be nocall, so the rest of Xen can't use them
accidentally.

The comment is easy enough to change if the circumstances change.

> Also, nit: s/provide/provided/?

Oops yes, will fix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 13:32:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 13:32:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840081.1255862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOLY-0007jA-LT; Tue, 19 Nov 2024 13:32:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840081.1255862; Tue, 19 Nov 2024 13: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 1tDOLY-0007j3-Ig; Tue, 19 Nov 2024 13:32:48 +0000
Received: by outflank-mailman (input) for mailman id 840081;
 Tue, 19 Nov 2024 13:32: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=c5Q5=SO=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tDOLX-0007ix-6d
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 13:32:47 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170110001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bfaeebc1-a67a-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 14:32:40 +0100 (CET)
Received: from AS9PR06CA0072.eurprd06.prod.outlook.com (2603:10a6:20b:464::10)
 by GV1PR08MB8331.eurprd08.prod.outlook.com (2603:10a6:150:86::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Tue, 19 Nov
 2024 13:32:36 +0000
Received: from AM3PEPF00009B9F.eurprd04.prod.outlook.com
 (2603:10a6:20b:464:cafe::69) by AS9PR06CA0072.outlook.office365.com
 (2603:10a6:20b:464::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23 via Frontend
 Transport; Tue, 19 Nov 2024 13:32:36 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM3PEPF00009B9F.mail.protection.outlook.com (10.167.16.24) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.14
 via Frontend Transport; Tue, 19 Nov 2024 13:32:36 +0000
Received: ("Tessian outbound 99d3b165dfe9:v490");
 Tue, 19 Nov 2024 13:32:36 +0000
Received: from L083105c4e8b4.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 0EFB0671-22A5-404B-891B-62CBE2BF78E3.1; 
 Tue, 19 Nov 2024 13:32:29 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L083105c4e8b4.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 19 Nov 2024 13:32:29 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DB9PR08MB7649.eurprd08.prod.outlook.com (2603:10a6:10:30c::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Tue, 19 Nov
 2024 13:32:26 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8158.023; Tue, 19 Nov 2024
 13: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: bfaeebc1-a67a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6YzIwMDo6MSIsImhlbG8iOiJEQjNQUjAyMDJDVTAwMy5vdXRib3VuZC5wcm90ZWN0aW9uLm91dGxvb2suY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJmYWVlYmMxLWE2N2EtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDIzMTYwLjkwNjI5Nywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=dfyRdR/5iT+qBQ4+QYorYcfrHzOvVuDEZPCf+2xxzVNozrGRBLQcb6osjicXTj/g2bxkRzMY7Kuly6UrH5C9Q2jJhWQ37YgUZ0lDd/YnYERAFk+g3JADzev1YYoamddpqy6l+jImNvjzerZDInqvY6RL7qAZg52kIww6AIYPx9uyw133NPGxaJWQFogH+LgpqRenmY62ue+S4aRY8CnVXkLcZVrtJQ/Gy0yBlHi5b4KxW2x6SuB9dFl+AijxhmBZy/m519US+OUzroVNtJ/8dBtg7BvNJR5wjVOl5a72aDVilGFrtnXUOMUaG9bnyLoLmglI3pk/q2Y4ZL1N8HbTzA==
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=y4tAv/7/vTZygQi185bZEXJBpuLCjoq6TJ5xuCsiaN0=;
 b=oLmBtldbHD4nBUfDDgpjmuf7hq6Na8uTmOfRi8S0DkJyXChnD0HK9BGQRBoPFqaZhj5VOWavSIB0OOFQRgvF2CPjPJ26TCh1uFcXoCNIjkZ4ReRVEHSHtydVC7wpoEoJjMmLoM/MQD4L0tYiuEJV/m3T8nLe4GU0XoLR/wKQ5b8ni5hPTbe1DUAO8NK5GSFnz5RHS+9jtZKN8KqiRrCmNR5ZSOscsiFU6Ny4Q8ytx/VY7TqUV7DxeaRDc2msVM6eTpQfhjQwei3u02sIvWdl1aitmPHBO+kZPoUadaRWnjTZaSV1nD6hoL0H+dw8DV4IW3fkNUe3OQZTR8ozBfX8sA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=y4tAv/7/vTZygQi185bZEXJBpuLCjoq6TJ5xuCsiaN0=;
 b=jm99m+EEdmex+CqL/0SVZNMkiAdtIE+xl+sk5DVcfcCVq0LatWfX43cINuc5raCbEumc2YVnXfA85ndnr4YsNnlmYbOCS7x0mZnp0/VdwfylyJCNSSjFzrWjDbfdleai0HyDo3JorTGAbIiVqXepuLKv8oTqH2xcUE22LErnhvc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 832e815181da1213
X-TessianGatewayMetadata: X4uW1I7cMbF9uJon1QHzyk5qL107KixjdKoqfx2uUJKAB8fFq0PK6G878SOVVs912REronxjdAa2okDZZDoCUj9rH1USoNF4psoRN1WTMAIBU/G12tF0xl1GdlGm3BWt3ZYv9KzYdumQalRB9txJnkDrYufpWcqky4Cv7aH+m58=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=chzRmR0fNQv0+US3UUdFtPHDw6g3YP7tcF5RfIzV40IooGflXZnFW5H8GBp1kVzLkT3nlxBNSDH5fVGedSqivvmxz4r35InWas5wFcNJBJNyIqv/2/MLssh2syCLGvl5kTNcstxNKb2iTHThgo2RgROocwPSmR7+r4mP3hUFnBHMkb5UlfCmnNgBZ0ZuTokI+kMidW1F3fF/leeyY+6HjDPiWtBPMQWNnhJLLoNG3TX5VQmhI6tmFvUYVEq/M3jOW2e0VB4iI6U3DQKczWHZG2gw0+fy4puI8gm9em3vC/8UPxmuk+seVT449CAM7Lssr2xB/xIFyvffohnfa046CA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=y4tAv/7/vTZygQi185bZEXJBpuLCjoq6TJ5xuCsiaN0=;
 b=MD5wMDnb2KppRzv6SB+vFatTDY3rGdlPTd1gyrvmwHDHENvVTkCCSnhs3HLM78KzIX51c9lcyMlGV+1l1wTgk6DKSBl+P80EJaltePjcPGtm54sjiE5aA0vYVP52QAOqqfectbdWea7C6TwDxhnsKGYMCuKNAAB30d/2bhmY5tXr2UB8UihgDS9koZDreY+hipsfGFz8lcePxk1EmHPaSzBnO8bIx71xGwukpz7CpjPDto8sYlD3Ewrwas4DVigbgZ5DnM/xRNhjbgXKk/5fW2QcbnqOI0tI7s9TU9bKmxpybwqEGPE+rBeTzdpnTffqsE6sxKZjuaH+PMKBbg+tmw==
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=y4tAv/7/vTZygQi185bZEXJBpuLCjoq6TJ5xuCsiaN0=;
 b=jm99m+EEdmex+CqL/0SVZNMkiAdtIE+xl+sk5DVcfcCVq0LatWfX43cINuc5raCbEumc2YVnXfA85ndnr4YsNnlmYbOCS7x0mZnp0/VdwfylyJCNSSjFzrWjDbfdleai0HyDo3JorTGAbIiVqXepuLKv8oTqH2xcUE22LErnhvc=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Michal Orzel <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>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>
Subject: Re: [PATCH] bootfdt: Unify early printing of memory ranges endpoints
Thread-Topic: [PATCH] bootfdt: Unify early printing of memory ranges endpoints
Thread-Index: AQHbOnmDmplEO1fGPki1YPRhtPoGCbK+mdoA
Date: Tue, 19 Nov 2024 13:32:26 +0000
Message-ID: <D9477A55-6B55-4CDC-B92D-3FB898DBC505@arm.com>
References: <20241119115141.72770-1-michal.orzel@amd.com>
In-Reply-To: <20241119115141.72770-1-michal.orzel@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DB9PR08MB7649:EE_|AM3PEPF00009B9F:EE_|GV1PR08MB8331:EE_
X-MS-Office365-Filtering-Correlation-Id: a554a083-3705-4e33-05ef-08dd089ea198
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?Ghgryl1pCg5c8Y+dkXbBDQKdHgpO29ZLofyamu1leWVmHozzL26F6XVFrRio?=
 =?us-ascii?Q?44CsYTQ3TSPdEGww+v4TtOaXwUJiujk1mj1X1WnXrrQvw928dAoQoHwMLOO8?=
 =?us-ascii?Q?l7hkLm5m7Asl7d3444l+phu22jn+FdQFzKZnmMKmfx8OAvyxFfB0seIT7r3U?=
 =?us-ascii?Q?M/pMARMmdAS6hvtOZvG3DX0ee8qygkuz+oFBEpFhQP4Ev+piJI/YALQu2v/V?=
 =?us-ascii?Q?xsocugWcPnM/0HCIjkLVWXnrLtNFUT5dHOJ00F9t3RzlMVKu9oVZ1gAusVv1?=
 =?us-ascii?Q?iCl7cbM/FXgGlb6Zs74e7Srb52PGRnzgRMNFIXONJuXTU2t0E2t+tazl70lv?=
 =?us-ascii?Q?BY3njgIhVocBJ2+H7UpxuxiI/D8QwBdny91kaPday3kOUJRqd8a2Hawq3Ibx?=
 =?us-ascii?Q?FkgLrTXU6aurlqjHKsIEgPZUkadqSJZ551gCXF+sOT9dePt1N4rVqzuLjE9J?=
 =?us-ascii?Q?LzkCWaDM0njGNJSipTWrReCNRpdIXt37rV0UfAePfdcjpXnXUs6IrIi4csEG?=
 =?us-ascii?Q?2MXhQ6bwUq0eZrYNSApg3rAMc5+CYKrFDIdeyj6vkH8sHNtQNmOOGQScBA+V?=
 =?us-ascii?Q?yFVXJpq2ZY4qyT/Jj89Rhi3q7ZlhqvhRJv2Ew9Ek4tpBh0AbyGQiMNumwtWS?=
 =?us-ascii?Q?o5krXVVxwgXEfcrJLe9IyRGpHh84CLfcBZwk102Li4WhIXCbo6rysebpT7Yl?=
 =?us-ascii?Q?8YZg/vcsEqRxtP+SseyS9PBVkNx3HIms5FTOlOC6lG1cCNY7uRdBb4gCH0HX?=
 =?us-ascii?Q?im1OWDb0wCMlEvg6B9w50MYeBP3sbmD5bMeUa9mCQG6PElqhdEIwfUFxSLVT?=
 =?us-ascii?Q?SyXA2ZPEQxIq3xx7PtBd9IOVn2fxwEE37VRWpCkCK7BNTlfplH3Y+c3nqINS?=
 =?us-ascii?Q?BL8XUEhy4Vg2eoC1k6JYq7+MMtr63EuPEjRxoB/TktmA0mfnAype99mBBr5J?=
 =?us-ascii?Q?YgAgzivRKPTdwJrBk0RUIKwGynxQ3eRRi6iPQvvhru8ZXZCN0r8mroFuvTHQ?=
 =?us-ascii?Q?odOdKqLbaOL16wG9AVnzw3puFTRywuVkrT/iiPmtjQk5zINeUF+KcSgUtTa6?=
 =?us-ascii?Q?EoWq3WsumZg7zC2klP8wdBBu9x6wqxVes2biYgETwOD6V9AOti3KDh+CTLSi?=
 =?us-ascii?Q?cWtSuGFzJQid3cBk8RXGCdB6/vGWpTo8EoK81yY1YC3fkoyzxZiiODhH1QtF?=
 =?us-ascii?Q?Zn0u6BYcE8owXRF3n1anqYKeqEQviGFJORZ5KZMDsM2nGUaUEmIY21dRmEqZ?=
 =?us-ascii?Q?JUhgf0uatDg9QQ0PeLKrHuMiwYS8MCgb4AP7AZoYO77u3sTMSXUvQKp1cLbV?=
 =?us-ascii?Q?Lz5LYHaxMlfGp51vx2EH4aPq9LI+4htqJYk/uh9bvRzjZ6TK0MvbUGhT5Jg1?=
 =?us-ascii?Q?s8+Qfcg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <8DE6C0171103C8408C2D66A7AE821C55@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7649
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009B9F.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	44bb05c4-8d6a-42c6-9c26-08dd089e9bc6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|36860700013|1800799024|82310400026|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?tvLn8/8kV+YqmPVS8W5I/mdungJuiT92pahaFO1nKexanu2uckfloIOJviWi?=
 =?us-ascii?Q?qT6pjmu/YiQ8vleJ2thp7dqVJ9piHR5SH3cF4wKqaVUYwIByzCHrLJRhc6PC?=
 =?us-ascii?Q?WR15jIGlf70W7g2vcfl7Mzk9abMX0b8eUxeUlySp1eY1Xi4S4J3UXgHSES+c?=
 =?us-ascii?Q?XStr4NDOGflODisBRTSSdSwmz9jfp+15pFOWp6xZhyhCTCN0wAOypdqkMADE?=
 =?us-ascii?Q?E7oNY0BndKEsN2lVklkIa2zhbo0KLfNyynsY9x7cQtKaou9NOMpp5RhfBpj8?=
 =?us-ascii?Q?QsSRZG+2nvdhT8FjRddUO3o14U0cK/Pgul5mHCBUcICpBya3WuoB3KaQ7qQM?=
 =?us-ascii?Q?HnAtrd3vu9ZsA3nAok54Wh5SBq5jVkyLGcSs3WM0C0kzblM8v3f+AFsjlM/C?=
 =?us-ascii?Q?Vdv5zoApwtdtX610nu3rrIUcHrG/iKhNLpiueMJnPgMXkn2tpLryxf6kukP/?=
 =?us-ascii?Q?qZGaV0g/zVqRuK3uw/6SRU5qtJwGPOKF887S2smOYiyGk9eqm/ZDtLKj2F+E?=
 =?us-ascii?Q?z+KBrtl65qZ/UIIS87KcppGS9S3LD0Le4VSzCj1hRaVjcvksTAF0Rf88zual?=
 =?us-ascii?Q?8933OIrSbx4Ul4yx4upeSPgPxMcQGrXjRtqg2qbCIWMmzWN3tvZwNbiyiw1l?=
 =?us-ascii?Q?MZYodjeJ/dBGVrm+g+t+UAEQTnp+6r0NbXDOlsTC16odowpcjUUE55VCzaF2?=
 =?us-ascii?Q?QhTezp5n0cU1beL6/Lyn0RGBh2h58eAPr6PSsDM5dnbz4phWuV+/vE1J097O?=
 =?us-ascii?Q?zkb3nrcaHGrAoMyjz4SsfydhR/p62Zp6qnbhxXe5RuxqsPucrTth2YOSAj6a?=
 =?us-ascii?Q?iZykudoYm6AM8DyI9C8GTtIigd0lOaQF/iE218Dh4EAIChsMCkqvwRnSYjta?=
 =?us-ascii?Q?igDGVzHwml/QcOXb6HnMByWONR+7QGWzEn3ANO+PzoVWx3XOmDy55Mmn5yDx?=
 =?us-ascii?Q?IxFlgFaaOYpbXxl+dxsVxVg/20otH6ogzt6dL3wC+MsftutOhvL+t+9J6Itu?=
 =?us-ascii?Q?iIdMIJtPyE5uGnnw8oeqSdhW8d1WRLb7wDSpRzBsT762V94JLJzbcU/GYm6M?=
 =?us-ascii?Q?fB6VnKb8t8ogXi8l9mCldqX/PdEP043UAIIdmRRX+CHrFbAjynF4N7JeaZ3d?=
 =?us-ascii?Q?32yLHwQKO7Tvct7+7xm/eYl8FWB6AeYW2S7NMzu8BOpbsUGC28dYBeUXKD1d?=
 =?us-ascii?Q?5KKT7PlD/xUMClWx4W4z6rUnSY2fbiNClp4Q6+t8wTOi9ZfEz1jaLQY/0DOs?=
 =?us-ascii?Q?GR9A2WpqnY5rPc2/wzpBHnAvIKrSQdECRbxA2ZOv61kkQ+K9cWtOPqVzUQCb?=
 =?us-ascii?Q?Ayir095b4aK66QhG5f8r5W3nix5MsrQShqncmStyO653zj9ThNARhEiQYve5?=
 =?us-ascii?Q?s3JHfWp0RvjmKrK/9/Z8/6XhN41eBzQZLOtIOIky/Ew8XiXcLA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(14060799003)(376014)(36860700013)(1800799024)(82310400026)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 13:32:36.4959
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a554a083-3705-4e33-05ef-08dd089ea198
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF00009B9F.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8331

Hi Michal,

> On 19 Nov 2024, at 11:51, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> At the moment, when printing memory ranges during early boot, endpoints
> of some ranges are printed as inclusive (RAM, RESVD, SHMEM) and some
> as exclusive (Initrd, MODULE). Make the behavior consistent and print
> all the endpoints as inclusive.
>=20
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---

Looks good to me!

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Outside early boot there are other places where we print exclusive ranges,
do you know if there is any general style we should apply or does it depend=
 on
case by case?

Cheers,
Luca




From xen-devel-bounces@lists.xenproject.org Tue Nov 19 13:38:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 13:38:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840091.1255873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOQk-0008Vc-Bj; Tue, 19 Nov 2024 13:38:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840091.1255873; Tue, 19 Nov 2024 13: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 1tDOQk-0008VV-7k; Tue, 19 Nov 2024 13:38:10 +0000
Received: by outflank-mailman (input) for mailman id 840091;
 Tue, 19 Nov 2024 13:38: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=neHs=SO=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tDOQi-0008VP-Jl
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 13:38:08 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2418::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7fa4641d-a67b-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 14:38:02 +0100 (CET)
Received: from SN7PR04CA0085.namprd04.prod.outlook.com (2603:10b6:806:121::30)
 by SN7PR12MB7835.namprd12.prod.outlook.com (2603:10b6:806:328::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20; Tue, 19 Nov
 2024 13:37:58 +0000
Received: from SN1PEPF000252A3.namprd05.prod.outlook.com
 (2603:10b6:806:121:cafe::b5) by SN7PR04CA0085.outlook.office365.com
 (2603:10b6:806:121::30) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24 via Frontend
 Transport; Tue, 19 Nov 2024 13:37:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 SN1PEPF000252A3.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 19 Nov 2024 13:37:58 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 19 Nov
 2024 07:37:57 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 19 Nov 2024 07:37: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: 7fa4641d-a67b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjFkIiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdmYTQ2NDFkLWE2N2ItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDIzNDgyLjY1MDYzNCwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C5JU4ooAE6dMvNiJ47w+fkfKs6xAGLGtvQNIQ7muodu5koP41dfNhwGYV39LgWo4TgQazOaCBqG3/FGMx8ny1YArp6a9rZJdSgZwtcJv0gWVMG8gpyZ3P+s2ofI4BhBMgXILdpVCnPGfiXjSFiPOHZ25xNOIgYRQ41Ee2NgnmUFkptBQ0GjyhpqdzCzPcLC4h7hF/xwxSrnimsRd1MIkKWt1peTsJ2eTarOzLlf8hOyFc4a83jZuIazByZoAl9TdvimGX0t6BfwfgIJgCE64fovTlFMTufIop2vO0tb8DCHe9GLRqRGiRfICHYF/pq1dokmSJW3KCfeddsDW3LoT0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/6jS/mGGbv7bHeCzXkQuZNpDzTDa2a0olbskBDw3l0c=;
 b=xDZzjRxJU10o7vbAHF8orkJNaXHK7EregMqesWJ4d9Exc2SIUVnCaflB07iIGZ2O31HY5kOgoZIdo0B1l2bMhvNN4qAj4UionrUMkRWTeoUKu2JhCjNUTs26k1q3TjkHqewWltm/mDVNE7ePbgvc3dJ+NbPaMF4wZoddhX3CPSnbQNL1LjFq/gpAnjOvTGRLB4WZy6uqgIX9Ro6BLGXVskxyfrmVwdijDQobyQfo93+y/6k5p3MrI0SFn+XUpSptJCqKEdpJ9l4hsFg6TiB68ywYzTiwZU0JMW7I/kE2tmx7QPOfTNVuzacd5sEOL7oXxTMyaZ3LS216HK63E/slEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.12) 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=/6jS/mGGbv7bHeCzXkQuZNpDzTDa2a0olbskBDw3l0c=;
 b=xWf5aQ8STP+WSPelz73F3wp7nhf+YMsB77/xa59LU6arQDYiY7z9IWM4P+HJ5qtmcB43zFQla/eSaAX2IiGHf8UWp/BfNpbBGRnc2/9LKIf5YdH82Zf9qrm9fZuayTXAboAOl31gGvg53MlHfg+WdFvyXOz/oqNs/Kl77saF+yk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.12)
 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.12 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.12; helo=SATLEXMB04.amd.com; pr=C
Message-ID: <436bfece-0b75-4da3-82bd-a9ad17f599e6@amd.com>
Date: Tue, 19 Nov 2024 14:37:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bootfdt: Unify early printing of memory ranges endpoints
To: Luca Fancellu <Luca.Fancellu@arm.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>
References: <20241119115141.72770-1-michal.orzel@amd.com>
 <D9477A55-6B55-4CDC-B92D-3FB898DBC505@arm.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <D9477A55-6B55-4CDC-B92D-3FB898DBC505@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: SN1PEPF000252A3:EE_|SN7PR12MB7835:EE_
X-MS-Office365-Filtering-Correlation-Id: 8b17e12e-826e-46b0-afed-08dd089f6172
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TkE4YjFnMFY2RW9RaW5Wa2RIY0xBbW1QU3JtVG9wblVubm96MXpsOFl0OTg2?=
 =?utf-8?B?ekxJQjAySXk3NXBEVlNRR3F6Z0x0SlRQM3ZPNVZOR2lqSm5RNmtUZGNraVJL?=
 =?utf-8?B?VFNwc2Z0K2FuSi8rVWVpMXBXUFY2SmhIUk9sWDF2aEtMbnVlTlJQek9hbHor?=
 =?utf-8?B?UTF4RFB6Nk9mY3B3OGxsNEsyOVdyb0FBRHJTYk8rZERMNVJLN3ArYXRKMGFC?=
 =?utf-8?B?V0FKajRsazNSMHdNclR4cEFiZG9IclB4ZjljNUNpbzJNMHFLb0szMG5ZNEly?=
 =?utf-8?B?K3dVZXcvSzAvaldkWmdDVTM1eHVxTGphR2tqeno4dytibXgxRzA4YUJURXRa?=
 =?utf-8?B?RklBMytKYkpEVFdVZ0pKU0JONldqc2wyU0FnU1BGQnRpRDZHUEtzSnYrNTI0?=
 =?utf-8?B?eS9icXRKd3Z6Ulg1NGg4N25MVHE4YWNsR3ovNXd2T20yZGlhTHlkdzArb3Bn?=
 =?utf-8?B?eFBVQThKdUZCZXVzVmpPM01aTlFyL1I2TEUwNC85Y2wrREhESlJCVmtWcjVV?=
 =?utf-8?B?azM2a3pXaHRMbXFKSENtbXZTeTlJSjJUTUg4SGhQdkU4QUdERXZKakttamhN?=
 =?utf-8?B?VmVFT1FZOU5ZMjJ6OFV2Rlp5bGZtOFgxT3EyMzJuNG9LUVF1NUFSMDcwcTNq?=
 =?utf-8?B?a0ZMWEdWeFNuUEUxaFRDRHlzODljWm12RG15RUxxNks1M0grWnJucUpmVXBz?=
 =?utf-8?B?L0IxK0hLT0JLV0dWLzV0d1FKSkozQVRQMEJJem1wdUh3OUJON0hhUEFGc0F3?=
 =?utf-8?B?Wk8vNW9vV2h1Y0t3ZDJIMXNUcDRaYWpQQW9jZTVERFJZMUwyMWN3aU9adGVh?=
 =?utf-8?B?enZYV0htTlUxNXJoT2NwT3V4MnNMVUZ5YmE2Y0czN2FRc2p6cW93bU1PUzdC?=
 =?utf-8?B?K3dPdnNpZmVYT1JrdTg1TUI1L1FsblBTOGxoUTYxOC9tTDVaYXp2NmxxWjZ4?=
 =?utf-8?B?QlpkVldlMithN3ZsdmdCTVRrMktZbkc3Tzl3YjBqcmNXMkl5YlE5Z3RwR0FR?=
 =?utf-8?B?NVNORkplVkdZNVZMR3Bzb3hJSEZidVl6ekNLQW9nMm1OR2E5YStySHI2MmNY?=
 =?utf-8?B?MkdMRFdPU05WSGVvUkphSEw2QWRPVzNvYW5TOVd0VU1tWW9KaTBnTldtbkVv?=
 =?utf-8?B?UitxZFppK0gzb0VPbjA3TGlRenN5dUVnY0s2bWIwZDNidUdmVFZMcGJrOWg2?=
 =?utf-8?B?dU1TODljeG1XaE1DUGR3b0dSc2g3ZU5qMXJHWnozRTZ6SklqeGdjU1lIMEJG?=
 =?utf-8?B?eHdFdTF6TXpveE85dzJIS04vUWhvajltZEdNQ2I4Z1RNRGg0R0pLTGpIZ1la?=
 =?utf-8?B?dVFuWjM0Mkx1dEtxSnAxMGhRT1M0UURFOU5VVElmY2hhanFBQThzUS9BNGJG?=
 =?utf-8?B?RmRZK3RObVpOaU0xdkV1Y2YzNjJyM3ZydjVRTEM1OUhJN2Q2Nk9nZ1B0dDR5?=
 =?utf-8?B?cHdIVFZaeDROc0tHOHU4d1h4Nnhielk0VVlNeFdsWHVqcDliQTdYY0p4Q2lh?=
 =?utf-8?B?QzYvV3p4S0xpcUNDTlQwNC8yTG1nUSs4YW5SakdpWHNDWHc0bnJhbnptL0x2?=
 =?utf-8?B?eU5oVnlWa2xjbGI3VG1RMDZDOVg0Q1RqUHdjc2xTKzEwYWVua0ZaZ1hVUytW?=
 =?utf-8?B?SUhXWGdJTTE0TU9JQVUyNE5zd25oRkExK0dXSUgyRk1keEhhNTczQU1Uczc2?=
 =?utf-8?B?Sno3V0V0d01jS09KaG96ZmpHem5jZy9XT2J2ekV0bzYvUGE3VENYY1l6bkpk?=
 =?utf-8?B?QzYyTXArelc4S1k2Vy96VnhuNnZING1NSFpDaHZOUjNBT1BoN0M0dkdHL2pS?=
 =?utf-8?B?aU5vMmRlM0xodzdrWTlSUUs0blJTYjJpNVJDQnAwYnJLQ3IzSFYwVkR1bHYx?=
 =?utf-8?B?ZWEwWFBURUR6clg4aGpsd1lCeE5PcW5zL01zdzdIU1kxNnc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 13:37:58.3269
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b17e12e-826e-46b0-afed-08dd089f6172
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000252A3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7835



On 19/11/2024 14:32, Luca Fancellu wrote:
> 
> 
> Hi Michal,
> 
>> On 19 Nov 2024, at 11:51, Michal Orzel <michal.orzel@amd.com> wrote:
>>
>> At the moment, when printing memory ranges during early boot, endpoints
>> of some ranges are printed as inclusive (RAM, RESVD, SHMEM) and some
>> as exclusive (Initrd, MODULE). Make the behavior consistent and print
>> all the endpoints as inclusive.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
> 
> Looks good to me!
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> Outside early boot there are other places where we print exclusive ranges,
> do you know if there is any general style we should apply or does it depend on
> case by case?
Yes, there are other places where we print ranges with endpoints exclusive or inclusive
but at least they are grouped together. Here it was quite confusing to find lines next to
each other with different styles. I don't think there is any specific style we should adhere to.

~Michal


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:08:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:08:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840100.1255883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOtz-0005F5-JW; Tue, 19 Nov 2024 14:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840100.1255883; Tue, 19 Nov 2024 14: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 1tDOtz-0005Ey-Fg; Tue, 19 Nov 2024 14:08:23 +0000
Received: by outflank-mailman (input) for mailman id 840100;
 Tue, 19 Nov 2024 14:08: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDOty-0005Eq-B4
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:08:22 +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 b91f88a5-a67f-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:08:17 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cedf5fe237so3946052a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:08:17 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfbcca8abesm2688129a12.44.2024.11.19.06.08.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:08: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: b91f88a5-a67f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI5MWY4OGE1LWE2N2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1Mjk3LjAzNzQ1Miwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732025296; x=1732630096; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=4G/ZnPTlcS4BaCmknAlG1P6W6gWNLWNybjIyJxF5zqA=;
        b=X8pZhUfANvBQcJ83PiJA6xoemQDJEeVjMckxop0C19anhBa5mDKamiYEGgezsL+1Fq
         1QCjS1C9ACkatVafM9Q8zfo4XUGvpNBoQfuqV782cd9fogxur3r6TnbLk5YpXtHag0/h
         p8GFetSTyNB//p+5z1NB+74tXCD1WuZ918oXM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025296; x=1732630096;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=4G/ZnPTlcS4BaCmknAlG1P6W6gWNLWNybjIyJxF5zqA=;
        b=guJA5T0y1AZYeVfZiptEXgGoTi3MHNLUqgO5QeLGEfs8zdRSLJrYf3FAdTA/6B5sjg
         IaVeVfFEhKNrzqkRb4hwKGO11gYxnRk/yFDeSA1/DGr5hPS/+U3vxnUcGRRHUs+gS1z2
         C0F6G/gfXrkRpyrYp9yteekLp3Ex0zWBmziymFko7DBBHZ8k1EyVYMSO9pzkfHI968Qu
         tDXVjAk7PIXH3D88IrorGJq+LJX6891ZH+pxGGPubMAJETXTju3tdr9Idb4PKMEA5wez
         7vRqG0LJHlJiqMQLpcUN8ij2kkaL0SWeq6irbOLie6mSGnZoqkaKL8PDP2NoRVtjDpyX
         0rGw==
X-Gm-Message-State: AOJu0YxeEe6kvxiD37y9yEs3WE98jxI3nigGKXLhZChRE5zyR/7udjrG
	CBCkAQAUIQzO+7gjpuKZVgRDd4e/mzS0OciAMuevdG7rFm6mE+KONB9NaoimOIM=
X-Google-Smtp-Source: AGHT+IHYW288bpwv4Ys/1JSa43FS5a0uAVjBiMt7IcCikQ2XVJQ2hCIzpaOe20sFOr2oSQQstnhnww==
X-Received: by 2002:a50:9346:0:b0:5ce:fa13:2668 with SMTP id 4fb4d7f45d1cf-5cf8fcfbf47mr10976376a12.27.1732025296163;
        Tue, 19 Nov 2024 06:08:16 -0800 (PST)
Date: Tue, 19 Nov 2024 15:08:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Luca Fancellu <luca.fancellu@arm.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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Julien Grall <jgrall@amazon.com>
Subject: Re: [PATCH v2 3/4] xen/arm: Use vmap_contig instead of __vmap where
 it's possible
Message-ID: <Zzybz2WUejRtl1LW@macbook>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-4-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20241119085806.805142-4-luca.fancellu@arm.com>

On Tue, Nov 19, 2024 at 08:58:05AM +0000, Luca Fancellu wrote:
> Currently the arm code uses __vmap function in few parts to map
> physically contiguous pages, vmap_contig was introduced recently
> and does the same because it's a wrapper for __vmap, so use the
> latter instead of the direct __vmap function.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Acked-by: Julien Grall <jgrall@amazon.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:11:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:11:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840107.1255893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOwb-00077U-0B; Tue, 19 Nov 2024 14:11:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840107.1255893; Tue, 19 Nov 2024 14:11: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 1tDOwa-00077N-SN; Tue, 19 Nov 2024 14:11:04 +0000
Received: by outflank-mailman (input) for mailman id 840107;
 Tue, 19 Nov 2024 14:11: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDOwZ-00072S-8C
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:11:03 +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 1a6db899-a680-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:11:00 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9a0ef5179dso158854966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:11:00 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08aa47sm651311566b.196.2024.11.19.06.10.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:10: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: 1a6db899-a680-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFhNmRiODk5LWE2ODAtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI1NDYwLjY1NjEzMywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732025459; x=1732630259; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Dbj4393xKiLG65NLJpzLD53XB3seZWf6XOINGDnrcfI=;
        b=gD025HB34xVkv0pR/Yl3SyfyUJOPf8KP6bvryUWKyJnjHTKA4MZy2tzhT4A7QltJ/E
         JDfgfG2gQ2sKYO+a82OMFu2fItHjOSBFEqAkxqC5JAax3gCBmmRqNOgWMx0GAijTi5Ih
         58iq8wIsRS6mH3HyD6E66z6TB0EYGeimYHC5w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025459; x=1732630259;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Dbj4393xKiLG65NLJpzLD53XB3seZWf6XOINGDnrcfI=;
        b=sZDPpQRTYhSCBm/1Ov78sMN8+f/xVVPEM1EQRlAqjAxTrbDDFluEDhNJpmidYRV7VG
         6B0epGivqfDlDS42Jku93k1xeLn8QNQJ/DOeYZxZ80/rbBDbLY6kh0OF7dQ9o4VRmriw
         Hv7Y7VDvfN27DpN96ht/BtXZbURt+0nwhS8QgsvDwMSeRjXbixvNqJrLZR+42Jzm+XO1
         pC7ZWeP+TE2mYSODrMrfZTVA5eN1ivxDnXhEIBjx2DWafdPQBF5ECxcrww0EcC2Jyuny
         Rl+rEfxjIf+5JEwhJqLjo96h2emSr8ZvV9WXT1cOL9h2oW1exwSafVrY6KNqKjsF/zkb
         MN8A==
X-Gm-Message-State: AOJu0YwYK/LABXn3qAkhoENCd0xf+5v4AyhxoSQGRFtcVvevBtAFtvHb
	X9pybgZ7F0OUlLLNDJgMbAkQeynce/J1IaashRWkcZbIJEwuTfaUEFzbuvUa5BY=
X-Google-Smtp-Source: AGHT+IHoG6lgJycu3VukC+EgoMh//2KsLMuw8P3eGpELcMSY2fNvjG3kqTCXZ8fTbRjnUNHfJj0v8w==
X-Received: by 2002:a17:907:a43:b0:aa1:f73b:be3d with SMTP id a640c23a62f3a-aa48347e853mr1462196166b.27.1732025459557;
        Tue, 19 Nov 2024 06:10:59 -0800 (PST)
Date: Tue, 19 Nov 2024 15:10:58 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/4] x8&/mm: fix IS_LnE_ALIGNED() to comply with Misra
 Rule 20.7
Message-ID: <ZzyccgtimsbbFMHH@macbook>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-2-roger.pau@citrix.com>
 <CACHz=Zg20Sxw_HY6EwXYvhcm=3ZjPwUH7vbdsZtSCU+2_TU7Kw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CACHz=Zg20Sxw_HY6EwXYvhcm=3ZjPwUH7vbdsZtSCU+2_TU7Kw@mail.gmail.com>

On Tue, Nov 19, 2024 at 10:52:26AM +0000, Frediano Ziglio wrote:
> On Tue, Nov 19, 2024 at 10:35â€¯AM Roger Pau Monne <roger.pau@citrix.com> wrote:
> >
> > While not strictly needed to guarantee operator precedence is as expected, add
> > the parentheses to comply with Misra Rule 20.7.
> >
> > No functional change intended.
> >
> > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Fixes: 5b52e1b0436f ('x86/mm: skip super-page alignment checks for non-present entries')
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> >  xen/arch/x86/mm.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> > index 494c14e80ff9..fa21903eb25a 100644
> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> > @@ -5498,7 +5498,7 @@ int map_pages_to_xen(
> >   * be INVALID_MFN, since alignment is only relevant for present entries.
> >   */
> >  #define IS_LnE_ALIGNED(v, m, n) ({                              \
> > -    mfn_t m_ = m;                                               \
> > +    mfn_t m_ = (m);                                             \
> >                                                                  \
> >      ASSERT(!mfn_eq(m_, INVALID_MFN));                           \
> >      IS_ALIGNED(PFN_DOWN(v) | mfn_x(m_),                         \
> 
> Minor, typo in subject: x8& -> x86

Nice, that's what you get when you press shift + 6 on a Spanish
keyboard.  Hope it can be adjusted at commit.

Thanks.


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840123.1255922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOz7-0008HA-Uu; Tue, 19 Nov 2024 14:13:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840123.1255922; Tue, 19 Nov 2024 14:13: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 1tDOz7-0008H3-SE; Tue, 19 Nov 2024 14:13:41 +0000
Received: by outflank-mailman (input) for mailman id 840123;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz6-0007nQ-15
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:40 +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 7805611e-a680-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:13:37 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5cfbeed072dso3603891a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:37 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 7805611e-a680-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc4MDU2MTFlLWE2ODAtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI1NjE3LjMwOTMxMywic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025616; x=1732630416; 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=JSS8OjeN81AaxAwiIdMOBdnmEpWyp3080hfiDG+hD5A=;
        b=nL9leXc7qvT57ecCHIHdMEVs4Flvar5Md8flDiIKJ/OH7TzonpMNiUu3BuB5I2aEVf
         EEY2d8DVILaqrkoYgKdTEhgcQLqFMd/zxqjgXa4sTKSzbYxJSUC6MgRCs5GO+Mjq39Ub
         Y1c0VJc++MxrU2B4Ab/9JQY+4oyD9U6xDhdx3URojpmAHfUW1hD2kF+p3NAgzs7StVqF
         VD4Ld9NoPEkU8z4uYxqdgV47acU82QCBs30vRQ8c5lSOckZp/1aNK9cBwjEY/HXEPGoj
         7EYkKN/cVR3HIWR8gY6lbz9kiY85vWWsLrDwk3bCTxYhCrsyGbhFHAw+wwDYmWt08pz6
         7sKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025616; x=1732630416;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JSS8OjeN81AaxAwiIdMOBdnmEpWyp3080hfiDG+hD5A=;
        b=eCU4uEtELRT94B5NI6VwvnVBUnlgBE44v9GgtN9VtVhw2SY5H+6W1OFDWiVhyJGV/w
         djsLlArBXZixCsHQeqbpmySRZmVkQraOVdPOR3eKfP1BfcI6tRh7oPJNi2uCHdWngMF9
         2iSU9jUmCfRXyLNMuLR25JdNiJ/YTRrdAUu11j7ARZAPGj5dlnF+zcVgC1BwZeA95Fqx
         nDdxukL+3VKOmFQakRXRNrALvRTq0a40NTmRj1nkGMqnXF9UN1yggHS1mBNkCARTUzCU
         9mWb+DhuBFEPV+SWJDRZsT0TsK/JpVJ3sOaxCsnSo6oBaTCQ4crbbMrweQkAHz7bXS49
         LS8Q==
X-Gm-Message-State: AOJu0YyZeLw+t0aSCHCUoi5clM/rhDGz0/LqG0pKdeBj8cnqlerrXWBL
	XBWd3Tyec4WjSwhsIZ0T8/BOSLSvtQt8ma9TRa245aTQ+QLr4rursWD4hBGzxY9G5WIt19r0myM
	l
X-Google-Smtp-Source: AGHT+IEkgnVbNUJaTPmh+VwjKkA+x1O9Oqhen9Z899NT2wb4z8lfP1B5T2xmQDI0/iyRtM7XWu2rig==
X-Received: by 2002:a17:907:f79b:b0:aa4:ce42:fa7f with SMTP id a640c23a62f3a-aa4ce4304fcmr208509866b.7.1732025616541;
        Tue, 19 Nov 2024 06:13:36 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [PATCH v10 04/12] xen/arm: add Dom0 cache coloring support
Date: Tue, 19 Nov 2024 15:13:21 +0100
Message-ID: <20241119141329.44221-5-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a command line parameter to allow the user to set the coloring
configuration for Dom0.
A common configuration syntax for cache colors is introduced and
documented.
Take the opportunity to also add:
 - default configuration notion.
 - function to check well-formed configurations.

Direct mapping Dom0 isn't possible when coloring is enabled, so
CDF_directmap flag is removed when creating it.

Based on original work from: Luca Miccio <lucmiccio@gmail.com>

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
v10:
- fixed array type for colors parameter in check_colors()
v9:
- moved domain_llc_coloring_free() in next patch cause it's never used for dom0
v8:
- added bound check on dom0_num_colors
- default colors array set just once
v7:
- parse_color_config() doesn't accept leading/trailing commas anymore
- removed alloc_colors() helper
v6:
- moved domain_llc_coloring_free() in this patch
- removed domain_alloc_colors() in favor of a more explicit allocation
- parse_color_config() now accepts the size of the array to be filled
- allocate_memory() moved in another patch
v5:
- Carlo Nonato as the new author
- moved dom0 colors parsing (parse_colors()) in this patch
- added dom0_set_llc_colors() to set dom0 colors after creation
- moved color allocation and checking in this patch
- error handling when allocating color arrays
- FIXME: copy pasted allocate_memory() cause it got moved
v4:
- dom0 colors are dynamically allocated as for any other domain
  (colors are duplicated in dom0_colors and in the new array, but logic
  is simpler)
---
 docs/misc/cache-coloring.rst      |  29 ++++++++
 docs/misc/xen-command-line.pandoc |   9 +++
 xen/arch/arm/domain_build.c       |  10 ++-
 xen/common/llc-coloring.c         | 119 +++++++++++++++++++++++++++++-
 xen/include/xen/llc-coloring.h    |   1 +
 5 files changed, 166 insertions(+), 2 deletions(-)

diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
index b608284e9b..c5fb33996c 100644
--- a/docs/misc/cache-coloring.rst
+++ b/docs/misc/cache-coloring.rst
@@ -105,6 +105,35 @@ Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
 +----------------------+-------------------------------+
 | ``llc-nr-ways``      | Set the LLC number of ways    |
 +----------------------+-------------------------------+
+| ``dom0-llc-colors``  | Dom0 color configuration      |
++----------------------+-------------------------------+
+
+Colors selection format
+***********************
+
+Regardless of the memory pool that has to be colored (Xen, Dom0/DomUs),
+the color selection can be expressed using the same syntax. In particular a
+comma-separated list of colors or ranges of colors is used.
+Ranges are hyphen-separated intervals (such as `0-4`) and are inclusive on both
+sides.
+
+Note that:
+
+- no spaces are allowed between values.
+- no overlapping ranges or duplicated colors are allowed.
+- values must be written in ascending order.
+
+Examples:
+
++-------------------+-----------------------------+
+| **Configuration** | **Actual selection**        |
++-------------------+-----------------------------+
+| 1-2,5-8           | [1, 2, 5, 6, 7, 8]          |
++-------------------+-----------------------------+
+| 4-8,10,11,12      | [4, 5, 6, 7, 8, 10, 11, 12] |
++-------------------+-----------------------------+
+| 0                 | [0]                         |
++-------------------+-----------------------------+
 
 Auto-probing of LLC specs
 #########################
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index abd8dae96f..bfdc8b0002 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -963,6 +963,15 @@ Controls for the dom0 IOMMU setup.
 
 Specify a list of IO ports to be excluded from dom0 access.
 
+### dom0-llc-colors (arm64)
+> `= List of [ <integer> | <integer>-<integer> ]`
+
+> Default: `All available LLC colors`
+
+Specify dom0 LLC color configuration. This option is available only when
+`CONFIG_LLC_COLORING` is enabled. If the parameter is not set, all available
+colors are used.
+
 ### dom0_max_vcpus
 
 Either:
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a95376dcdc..01aa9016f5 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2,6 +2,7 @@
 #include <xen/init.h>
 #include <xen/compile.h>
 #include <xen/lib.h>
+#include <xen/llc-coloring.h>
 #include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/domain_page.h>
@@ -2284,6 +2285,7 @@ void __init create_dom0(void)
         .max_maptrack_frames = -1,
         .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
+    unsigned int flags = CDF_privileged;
     int rc;
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
@@ -2311,10 +2313,16 @@ void __init create_dom0(void)
             panic("SVE vector length error\n");
     }
 
-    dom0 = domain_create(0, &dom0_cfg, CDF_privileged | CDF_directmap);
+    if ( !llc_coloring_enabled )
+        flags |= CDF_directmap;
+
+    dom0 = domain_create(0, &dom0_cfg, flags);
     if ( IS_ERR(dom0) )
         panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
 
+    if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
+        panic("Error initializing LLC coloring for domain 0 (rc = %d)", rc);
+
     if ( alloc_dom0_vcpu0(dom0) == NULL )
         panic("Error creating domain 0 vcpu0\n");
 
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 45b001b105..740b5b9e4f 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -20,6 +20,66 @@ static unsigned int __initdata llc_nr_ways;
 integer_param("llc-nr-ways", llc_nr_ways);
 /* Number of colors available in the LLC */
 static unsigned int __ro_after_init max_nr_colors;
+/* Default coloring configuration */
+static unsigned int __ro_after_init default_colors[NR_LLC_COLORS];
+
+static unsigned int __initdata dom0_colors[NR_LLC_COLORS];
+static unsigned int __initdata dom0_num_colors;
+
+/*
+ * Parse the coloring configuration given in the buf string, following the
+ * syntax below.
+ *
+ * COLOR_CONFIGURATION ::= COLOR | RANGE,...,COLOR | RANGE
+ * RANGE               ::= COLOR-COLOR
+ *
+ * Example: "0,2-6,15-16" represents the set of colors: 0,2,3,4,5,6,15,16.
+ */
+static int __init parse_color_config(const char *buf, unsigned int colors[],
+                                     unsigned int max_num_colors,
+                                     unsigned int *num_colors)
+{
+    const char *s = buf;
+
+    *num_colors = 0;
+
+    while ( *s != '\0' )
+    {
+        unsigned int color, start, end;
+
+        start = simple_strtoul(s, &s, 0);
+
+        if ( *s == '-' )    /* Range */
+        {
+            s++;
+            end = simple_strtoul(s, &s, 0);
+        }
+        else                /* Single value */
+            end = start;
+
+        if ( start > end || (end - start) > (UINT_MAX - *num_colors) ||
+             (*num_colors + (end - start)) >= max_num_colors )
+            return -EINVAL;
+
+        /* Colors are range checked in check_colors() */
+        for ( color = start; color <= end; color++ )
+            colors[(*num_colors)++] = color;
+
+        if ( *s == ',' )
+            s++;
+        else if ( *s != '\0' )
+            break;
+    }
+
+    return *s ? -EINVAL : 0;
+}
+
+static int __init parse_dom0_colors(const char *s)
+{
+    return parse_color_config(s, dom0_colors, ARRAY_SIZE(dom0_colors),
+                              &dom0_num_colors);
+}
+custom_param("dom0-llc-colors", parse_dom0_colors);
 
 static void print_colors(const unsigned int colors[], unsigned int num_colors)
 {
@@ -44,9 +104,26 @@ static void print_colors(const unsigned int colors[], unsigned int num_colors)
     printk(" }\n");
 }
 
+static bool __init check_colors(const unsigned int colors[],
+                                unsigned int num_colors)
+{
+    unsigned int i;
+
+    for ( i = 0; i < num_colors; i++ )
+    {
+        if ( colors[i] >= max_nr_colors )
+        {
+            printk(XENLOG_ERR "LLC color %u >= %u\n", colors[i], max_nr_colors);
+            return false;
+        }
+    }
+
+    return true;
+}
+
 void __init llc_coloring_init(void)
 {
-    unsigned int way_size;
+    unsigned int way_size, i;
 
     if ( llc_size && llc_nr_ways )
     {
@@ -83,6 +160,9 @@ void __init llc_coloring_init(void)
     } else if ( max_nr_colors < 2 )
         panic("Number of LLC colors %u < 2\n", max_nr_colors);
 
+    for ( i = 0; i < max_nr_colors; i++ )
+        default_colors[i] = i;
+
     arch_llc_coloring_init();
 }
 
@@ -104,6 +184,43 @@ void domain_dump_llc_colors(const struct domain *d)
     print_colors(d->llc_colors, d->num_llc_colors);
 }
 
+static void __init domain_set_default_colors(struct domain *d)
+{
+    printk(XENLOG_WARNING
+           "LLC color config not found for %pd, using all colors\n", d);
+
+    d->llc_colors = default_colors;
+    d->num_llc_colors = max_nr_colors;
+}
+
+int __init dom0_set_llc_colors(struct domain *d)
+{
+    typeof(*dom0_colors) *colors;
+
+    if ( !dom0_num_colors )
+    {
+        domain_set_default_colors(d);
+        return 0;
+    }
+
+    if ( dom0_num_colors > max_nr_colors ||
+         !check_colors(dom0_colors, dom0_num_colors) )
+    {
+        printk(XENLOG_ERR "%pd:  bad LLC color config\n", d);
+        return -EINVAL;
+    }
+
+    colors = xmalloc_array(typeof(*dom0_colors), dom0_num_colors);
+    if ( !colors )
+        return -ENOMEM;
+
+    memcpy(colors, dom0_colors, sizeof(*colors) * dom0_num_colors);
+    d->llc_colors = colors;
+    d->num_llc_colors = dom0_num_colors;
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
index ad2525e153..9cf49f574e 100644
--- a/xen/include/xen/llc-coloring.h
+++ b/xen/include/xen/llc-coloring.h
@@ -27,6 +27,7 @@ static inline void domain_dump_llc_colors(const struct domain *d) {}
 
 unsigned int get_llc_way_size(void);
 void arch_llc_coloring_init(void);
+int dom0_set_llc_colors(struct domain *d);
 
 #endif /* __COLORING_H__ */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840125.1255936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOz8-0008Se-QT; Tue, 19 Nov 2024 14:13:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840125.1255936; Tue, 19 Nov 2024 14:13: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 1tDOz8-0008RM-Ga; Tue, 19 Nov 2024 14:13:42 +0000
Received: by outflank-mailman (input) for mailman id 840125;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz6-0007nQ-FZ
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:40 +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 78867ec2-a680-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:13:38 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so182977366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:38 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 78867ec2-a680-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc4ODY3ZWMyLWE2ODAtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI1NjE4LjE1MTc0OSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025617; x=1732630417; 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=fz8N6rEQmcVLhleWeld8+zl0xufNV5Tdqiws9rFy5Zo=;
        b=SK+Kge7YO8yDrGOZwpX96Jy91eB6LnqRmmimGxM2cVNknpGKeiL4c2vkYZqYfj1BDs
         qoAb4inyY82kUppdLJfFcozlImLQXrwNIjLg4uUmK6L9FH+T7cA9I3aA1bNb1WTRlEXr
         Z8tLgaBPpfl0ubNRX4XHuhgIiWhgO21N2lDcrkFCooYzrpaPD595j5FLtgaBHqupaEPY
         5yWWg8qczPmgfAJk15u0tZ8hq2raNyLEC92yEAJ0LPUfjHR0np5fLD4Rsp1sxeeok+9X
         hZZI/rEpNJtdsoGpDq+DOSVuoNadev3pqE9o1w84HWVUeA0tBfxuN/xvw1weFdCb8VTN
         5cOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025617; x=1732630417;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=fz8N6rEQmcVLhleWeld8+zl0xufNV5Tdqiws9rFy5Zo=;
        b=ez6eIC/dsS62B6j9zAia2tkVQnNwBQCAFKKicMabDvqXuFNbveCCt8ds1Z4sWIRxoI
         P1zZEMXmYFyH0M83VkEExUBdTu1xGtvw5CcGOKLFtgJwKYC6e1yTZefk2tpwp81s1Hap
         x1I6RPsAZFy8zqyB+Npeax/1f6FLbQWiytPo6pNByTg39vtJNtQlQXlVvJ/O4MiSHvFT
         ho7nMNPLAxVjYvS2XdV4Ob83fKf0/j77xWQnMbxCbSn7+SW7qkCkwkXfEnJWgXANHomz
         htoLgP94H/DpB+vDIOIxhaYjBDKuCMTjy5yv1h8xPOQqu0LjThe0q6wSGv6yp69tq2OX
         E4kA==
X-Gm-Message-State: AOJu0Yyf2QBVZmN7aAyTAx0q87xT0yjfXMiWRZ589O3hKmFZWDrpUHQQ
	KLENvp3mQuRql8iGztxSDFGIek9VeLdOUBwMaqhOg2ZRHr0C9uCtUiGTILPHC4tcWgSvQ+5W6JH
	4
X-Google-Smtp-Source: AGHT+IEEpZYFR/dIQZ8v/Oem3QsH20f3XWA6b6hFh7bocPdOin1qegtrHWJf5/G1mP0ZwEMDRHSjXQ==
X-Received: by 2002:a17:906:c112:b0:a9a:9ab:6233 with SMTP id a640c23a62f3a-aa48348249bmr1232554866b.34.1732025617370;
        Tue, 19 Nov 2024 06:13:37 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 05/12] xen: extend domctl interface for cache coloring
Date: Tue, 19 Nov 2024 15:13:22 +0100
Message-ID: <20241119141329.44221-6-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a new domctl hypercall to allow the user to set LLC coloring
configurations. Colors can be set only once, just after domain creation,
since recoloring isn't supported.

Based on original work from: Luca Miccio <lucmiccio@gmail.com>

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
v10:
- no changes
v9:
- minor printk message changes
- moved domain_llc_coloring_free() in this patch
v8:
- fixed memory leak on error path of domain_set_llc_colors()
v7:
- -EOPNOTSUPP returned in case of hypercall called without llc_coloring_enabled
- domain_set_llc_colors_domctl() renamed to domain_set_llc_colors()
- added padding and input bound checks to domain_set_llc_colors()
- removed alloc_colors() helper usage from domain_set_llc_colors()
v6:
- reverted the XEN_DOMCTL_INTERFACE_VERSION bump
- reverted to uint32 for the guest handle
- explicit padding added to the domctl struct
- rewrote domain_set_llc_colors_domctl() to be more explicit
v5:
- added a new hypercall to set colors
- uint for the guest handle
v4:
- updated XEN_DOMCTL_INTERFACE_VERSION
---
 xen/common/domain.c            |  3 ++
 xen/common/domctl.c            | 10 +++++++
 xen/common/llc-coloring.c      | 55 ++++++++++++++++++++++++++++++++--
 xen/include/public/domctl.h    |  9 ++++++
 xen/include/xen/llc-coloring.h |  4 +++
 5 files changed, 78 insertions(+), 3 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 92263a4fbd..842a23751a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -34,6 +34,7 @@
 #include <xen/xenoprof.h>
 #include <xen/irq.h>
 #include <xen/argo.h>
+#include <xen/llc-coloring.h>
 #include <asm/p2m.h>
 #include <asm/processor.h>
 #include <public/sched.h>
@@ -1276,6 +1277,8 @@ void domain_destroy(struct domain *d)
 {
     BUG_ON(!d->is_dying);
 
+    domain_llc_coloring_free(d);
+
     /* May be already destroyed, or get_domain() can race us. */
     if ( atomic_cmpxchg(&d->refcnt, 0, DOMAIN_DESTROYED) != 0 )
         return;
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index ea16b75910..6387dddbcd 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -8,6 +8,7 @@
 
 #include <xen/types.h>
 #include <xen/lib.h>
+#include <xen/llc-coloring.h>
 #include <xen/err.h>
 #include <xen/mm.h>
 #include <xen/sched.h>
@@ -866,6 +867,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
                 __HYPERVISOR_domctl, "h", u_domctl);
         break;
 
+    case XEN_DOMCTL_set_llc_colors:
+        if ( op->u.set_llc_colors.pad )
+            ret = -EINVAL;
+        else if ( llc_coloring_enabled )
+            ret = domain_set_llc_colors(d, &op->u.set_llc_colors);
+        else
+            ret = -EOPNOTSUPP;
+        break;
+
     default:
         ret = arch_do_domctl(op, d, u_domctl);
         break;
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 740b5b9e4f..3cfd0ce78c 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -5,6 +5,7 @@
  * Copyright (C) 2024, Advanced Micro Devices, Inc.
  * Copyright (C) 2024, Minerva Systems SRL
  */
+#include <xen/guest_access.h>
 #include <xen/keyhandler.h>
 #include <xen/llc-coloring.h>
 #include <xen/param.h>
@@ -104,8 +105,7 @@ static void print_colors(const unsigned int colors[], unsigned int num_colors)
     printk(" }\n");
 }
 
-static bool __init check_colors(const unsigned int colors[],
-                                unsigned int num_colors)
+static bool check_colors(const unsigned int colors[], unsigned int num_colors)
 {
     unsigned int i;
 
@@ -184,7 +184,7 @@ void domain_dump_llc_colors(const struct domain *d)
     print_colors(d->llc_colors, d->num_llc_colors);
 }
 
-static void __init domain_set_default_colors(struct domain *d)
+static void domain_set_default_colors(struct domain *d)
 {
     printk(XENLOG_WARNING
            "LLC color config not found for %pd, using all colors\n", d);
@@ -221,6 +221,55 @@ int __init dom0_set_llc_colors(struct domain *d)
     return 0;
 }
 
+int domain_set_llc_colors(struct domain *d,
+                          const struct xen_domctl_set_llc_colors *config)
+{
+    unsigned int *colors;
+
+    if ( d->num_llc_colors )
+        return -EEXIST;
+
+    if ( !config->num_llc_colors )
+    {
+        domain_set_default_colors(d);
+        return 0;
+    }
+
+    if ( config->num_llc_colors > max_nr_colors )
+        return -EINVAL;
+
+    colors = xmalloc_array(unsigned int, config->num_llc_colors);
+    if ( !colors )
+        return -ENOMEM;
+
+    if ( copy_from_guest(colors, config->llc_colors, config->num_llc_colors) )
+    {
+        xfree(colors);
+        return -EFAULT;
+    }
+
+    if ( !check_colors(colors, config->num_llc_colors) )
+    {
+        printk(XENLOG_ERR "%pd: bad LLC color config\n", d);
+        xfree(colors);
+        return -EINVAL;
+    }
+
+    d->llc_colors = colors;
+    d->num_llc_colors = config->num_llc_colors;
+
+    return 0;
+}
+
+void domain_llc_coloring_free(struct domain *d)
+{
+    if ( !llc_coloring_enabled || d->llc_colors == default_colors )
+        return;
+
+    /* free pointer-to-const using __va(__pa()) */
+    xfree(__va(__pa(d->llc_colors)));
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 353f831e40..e2d392d1e5 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -1236,6 +1236,13 @@ struct xen_domctl_dt_overlay {
 };
 #endif
 
+struct xen_domctl_set_llc_colors {
+    /* IN LLC coloring parameters */
+    uint32_t num_llc_colors;
+    uint32_t pad;
+    XEN_GUEST_HANDLE_64(uint32) llc_colors;
+};
+
 struct xen_domctl {
     uint32_t cmd;
 #define XEN_DOMCTL_createdomain                   1
@@ -1325,6 +1332,7 @@ struct xen_domctl {
 #define XEN_DOMCTL_set_paging_mempool_size       86
 #define XEN_DOMCTL_dt_overlay                    87
 #define XEN_DOMCTL_gsi_permission                88
+#define XEN_DOMCTL_set_llc_colors                89
 #define XEN_DOMCTL_gdbsx_guestmemio            1000
 #define XEN_DOMCTL_gdbsx_pausevcpu             1001
 #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
@@ -1391,6 +1399,7 @@ struct xen_domctl {
 #if defined(__arm__) || defined(__aarch64__)
         struct xen_domctl_dt_overlay        dt_overlay;
 #endif
+        struct xen_domctl_set_llc_colors    set_llc_colors;
         uint8_t                             pad[128];
     } u;
 };
diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
index 9cf49f574e..657f4d0a10 100644
--- a/xen/include/xen/llc-coloring.h
+++ b/xen/include/xen/llc-coloring.h
@@ -17,17 +17,21 @@ extern bool llc_coloring_enabled;
 void llc_coloring_init(void);
 void dump_llc_coloring_info(void);
 void domain_dump_llc_colors(const struct domain *d);
+void domain_llc_coloring_free(struct domain *d);
 #else
 #define llc_coloring_enabled false
 
 static inline void llc_coloring_init(void) {}
 static inline void dump_llc_coloring_info(void) {}
 static inline void domain_dump_llc_colors(const struct domain *d) {}
+static inline void domain_llc_coloring_free(struct domain *d) {}
 #endif
 
 unsigned int get_llc_way_size(void);
 void arch_llc_coloring_init(void);
 int dom0_set_llc_colors(struct domain *d);
+int domain_set_llc_colors(struct domain *d,
+                          const struct xen_domctl_set_llc_colors *config);
 
 #endif /* __COLORING_H__ */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840121.1255903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOz5-0007ne-Db; Tue, 19 Nov 2024 14:13:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840121.1255903; Tue, 19 Nov 2024 14:13: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 1tDOz5-0007nW-9j; Tue, 19 Nov 2024 14:13:39 +0000
Received: by outflank-mailman (input) for mailman id 840121;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz4-0007nQ-6j
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:38 +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 75c80834-a680-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:13:33 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-aa20c733e92so611562566b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:33 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 75c80834-a680-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc1YzgwODM0LWE2ODAtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI1NjEzLjU1NDA1NCwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025613; x=1732630413; 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=9IFvfTjZE6wmZxfoRI0jv/bdIXJXzUe7p3S+8ifjEzU=;
        b=3WK8mNZdeghROw1E1/a5bGIwKJRSDpSjefheO5fFPiqI4exNifERYgOHdcwCUibrlh
         aSAZUtove/mLVNB6Xeh+kfgYWE127nWqAmu2f2ep4++3BdNuqWlyOrOc5jInZppdnHgw
         1cn67j6lvcS05rIleb3NQOjoOx00gDvw/jQhTjhQ4I9K4ykFtP3H1foc/SJ7J/xtlYlA
         QzcY/XylLj66ZVXMM7UUmvN62Ooc4AOdEM6gRrXkZXNlF81WdtPZytYdH3TDTNUaSND8
         tCNWSp2RCMWFKpBAvSVZvSJb6ARRiCmgIGQGkYdu4sbHlUwc8MruhKVFLGaL0RVUFQgG
         M+cQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025613; x=1732630413;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=9IFvfTjZE6wmZxfoRI0jv/bdIXJXzUe7p3S+8ifjEzU=;
        b=Cx0MWo2oL+pNB3z92WdtAM6F4u/3jf1FE0W+FSZYdyqyD3ItBDsOemEyLTHEm8z62b
         kcOqBY/WTkjSUV6hNQmFUL6iRJMj9aVk3wUsHHvMFnVEsyM0T7aXyGma8J4U2xph2KTJ
         J9WPnyrjBUgttzhf+HIqrYbktMuuZgilk+f7fL1te8DxRNLkM0WKPZbaDITTCqFZRR/H
         cg3miinh4EtSZz9Y4d8MthzE7DXUEuLqtfJuXWl+ptangwF5mXjYn4TdBsI7OnLcacFm
         76inmubrYmyhybSMt/7K4QvEYkZn83MdqKWXOgIGkeJ6T4G5rL7TFTMDoDH0ZNBOgbCO
         Uj3g==
X-Gm-Message-State: AOJu0Yx4lIkebsr3609ZkLOI4iEql2QY7z9Apgw0SV6/BTgOL5Aivnnl
	KrviCWT5fAKIRSZ+meOLFTdXtSsmqwrJNP6z2H0Dgz5fL7nG2yQsN6XYQQ8ZQrjh8y1bJO/BSQJ
	x
X-Google-Smtp-Source: AGHT+IFi2huZ1vgA/wPm330M3kEiYKbl7sdhB2jGt1TIt8wrq818YdyBY1bFNvsdL01ImN3BRAQjPw==
X-Received: by 2002:a17:907:1b2a:b0:a9e:b281:a55d with SMTP id a640c23a62f3a-aa48354d7fdmr1804740366b.56.1732025612741;
        Tue, 19 Nov 2024 06:13:32 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v10 00/12] Arm cache coloring
Date: Tue, 19 Nov 2024 15:13:17 +0100
Message-ID: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Shared caches in multi-core CPU architectures represent a problem for
predictability of memory access latency. This jeopardizes applicability
of many Arm platform in real-time critical and mixed-criticality
scenarios. We introduce support for cache partitioning with page
coloring, a transparent software technique that enables isolation
between domains and Xen, and thus avoids cache interference.

When creating a domain, a simple syntax (e.g. `0-3` or `4-11`) allows
the user to define assignments of cache partitions ids, called colors,
where assigning different colors guarantees no mutual eviction on cache
will ever happen. This instructs the Xen memory allocator to provide
the i-th color assignee only with pages that maps to color i, i.e. that
are indexed in the i-th cache partition.

The proposed implementation supports the dom0less feature.
The proposed implementation doesn't support the static-mem feature.
The solution has been tested in several scenarios, including Xilinx Zynq
MPSoCs.

Carlo Nonato (11):
  xen/common: add cache coloring common code
  xen/arm: add initial support for LLC coloring on arm64
  xen/arm: permit non direct-mapped Dom0 construction
  xen/arm: add Dom0 cache coloring support
  xen: extend domctl interface for cache coloring
  tools: add support for cache coloring configuration
  xen/arm: add support for cache coloring configuration via device-tree
  xen/page_alloc: introduce preserved page flags macro
  xen: add cache coloring allocator for domains
  xen/arm: make consider_modules() available for xen relocation
  xen/arm: add cache coloring support for Xen

Luca Miccio (1):
  xen/arm: add Xen cache colors command line parameter

 SUPPORT.md                              |   7 +
 docs/index.rst                          |   1 +
 docs/man/xl.cfg.5.pod.in                |   6 +
 docs/misc/arm/device-tree/booting.txt   |   4 +
 docs/misc/cache-coloring.rst            | 246 +++++++++++++++
 docs/misc/xen-command-line.pandoc       |  70 +++++
 tools/include/libxl.h                   |   5 +
 tools/include/xenctrl.h                 |   9 +
 tools/libs/ctrl/xc_domain.c             |  35 +++
 tools/libs/light/libxl_create.c         |  18 ++
 tools/libs/light/libxl_types.idl        |   1 +
 tools/xl/xl_parse.c                     |  38 ++-
 xen/arch/arm/Kconfig                    |   1 +
 xen/arch/arm/Makefile                   |   1 +
 xen/arch/arm/alternative.c              |  30 +-
 xen/arch/arm/arm32/mmu/mm.c             |  95 +-----
 xen/arch/arm/arm64/mmu/head.S           |  58 +++-
 xen/arch/arm/arm64/mmu/mm.c             |  28 +-
 xen/arch/arm/dom0less-build.c           |  60 +---
 xen/arch/arm/domain_build.c             | 106 ++++++-
 xen/arch/arm/include/asm/domain_build.h |   1 +
 xen/arch/arm/include/asm/mm.h           |   5 +
 xen/arch/arm/include/asm/mmu/layout.h   |   3 +
 xen/arch/arm/include/asm/processor.h    |  16 +
 xen/arch/arm/include/asm/setup.h        |   3 +
 xen/arch/arm/llc-coloring.c             | 141 +++++++++
 xen/arch/arm/mmu/setup.c                | 195 +++++++++++-
 xen/arch/arm/setup.c                    |  13 +-
 xen/common/Kconfig                      |  29 ++
 xen/common/Makefile                     |   1 +
 xen/common/domain.c                     |   3 +
 xen/common/domctl.c                     |  10 +
 xen/common/keyhandler.c                 |   3 +
 xen/common/llc-coloring.c               | 382 ++++++++++++++++++++++++
 xen/common/page_alloc.c                 | 208 ++++++++++++-
 xen/include/public/domctl.h             |   9 +
 xen/include/xen/llc-coloring.h          |  64 ++++
 xen/include/xen/sched.h                 |   5 +
 xen/include/xen/xmalloc.h               |  12 +
 39 files changed, 1749 insertions(+), 173 deletions(-)
 create mode 100644 docs/misc/cache-coloring.rst
 create mode 100644 xen/arch/arm/llc-coloring.c
 create mode 100644 xen/common/llc-coloring.c
 create mode 100644 xen/include/xen/llc-coloring.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840124.1255930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOz8-0008Ka-Ck; Tue, 19 Nov 2024 14:13:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840124.1255930; Tue, 19 Nov 2024 14:13: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 1tDOz8-0008Jz-56; Tue, 19 Nov 2024 14:13:42 +0000
Received: by outflank-mailman (input) for mailman id 840124;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz6-0007nd-AV
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:40 +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 766ce3a3-a680-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:13:34 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aaddeso1136918a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:34 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 766ce3a3-a680-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc2NmNlM2EzLWE2ODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1NjE0LjY1NTA3NSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025614; x=1732630414; 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=A7YiuskXxLELzGY78DIr+JLC6W+rkhk8jWvAskPJRfE=;
        b=LNla5GYypKJ7QlXcZUWtc7/Rh//I0PuNU4956yuleOcPA2p3DvSiXJUbeMxyBsjWAd
         XFN6TgW3Z/p2rzWUm4UfFjErI3K8+0iVCoZkzhiaDThpYY2cuwo72ebxh+xWC63qP/Tm
         NuEDainervDX8uXpnBK1blMHU7ts4Yx/3n1//nOQlqP/TX9mk0wOjqIk/+weoR0Co0K7
         cHvtrs+s68Bp9QTra+GJtIbE1pDH1Q6E5bwq2FkDQQjdaHZT9ZEG+7Wr5aJnArcJGuph
         +BL9qakMydpJ4bfma8MSsThtpvRF/HG8frPhB1nASq0Tw9BzRhBw4nFJtmK02QNgeFxL
         /SbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025614; x=1732630414;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=A7YiuskXxLELzGY78DIr+JLC6W+rkhk8jWvAskPJRfE=;
        b=d7x2+xgganpbI0p39984y6jpLfl8Imj4oaOajwMY7vAV+8LRUdzolECX7Vwp1RozTl
         3o7199y18rq7Daysj75OWmiSaCdmDwxTK9MNcAnz+nj63q2UkfJgf/0gSAFyqvsfbl4z
         HyVuQ7Yc/n/cMMv8lJN7zyHS1qJfoA/8Tb1WcbIdtQl+sY9JFBXR/yycDRSxAD4bkaOG
         Qe1Mq9koxgOtzF33Sd/m336I2+Mpvo9dCKDB3YVQ7k3KOimvYe0KK2nSpVoQTqKEeX+B
         zp+bemjIhLxSlRREvkPE/3UwbVRXwONbrYMjzGb3qx2TNljql9T5lecL2qFN5e4yhC30
         ExVg==
X-Gm-Message-State: AOJu0YzKmkXhRBSw2W8rJfGIOxapqVGJ2pr7IqKM5ivWqW8AnTbEv+CF
	DwClBAYPZp5lDLhjJWB9Z3XJ3/FyHe1HJHAdFzb4SeYM0rJ2Ho96bYKnbvZLTePHzITELa+V4Dp
	3
X-Google-Smtp-Source: AGHT+IFPc//GYzTbbFDlYHWEJfxG8k04K7sKviWfp2DHfOt3uATAojBUjbcjGS4bXGftJIowSg8tLw==
X-Received: by 2002:a17:907:7b8c:b0:a9e:d4a9:2c28 with SMTP id a640c23a62f3a-aa483552c2bmr1481145666b.53.1732025613626;
        Tue, 19 Nov 2024 06:13:33 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 01/12] xen/common: add cache coloring common code
Date: Tue, 19 Nov 2024 15:13:18 +0100
Message-ID: <20241119141329.44221-2-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Last Level Cache (LLC) coloring allows to partition the cache in smaller
chunks called cache colors.

Since not all architectures can actually implement it, add a HAS_LLC_COLORING
Kconfig option.
LLC_COLORS_ORDER Kconfig option has a range maximum of 10 (2^10 = 1024)
because that's the number of colors that fit in a 4 KiB page when integers
are 4 bytes long.

LLC colors are a property of the domain, so struct domain has to be extended.

Based on original work from: Luca Miccio <lucmiccio@gmail.com>

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
---
v10:
- fixed commit message to use LLC_COLORS_ORDER
- added documentation to index.rst
- moved check on CONFIG_NUMA in arch/arm/Kconfig (next patch)
- fixed copyright line
- fixed array type for colors parameter in print_colors()
- added check on (way_size & ~PAGE_MASK)
v9:
- dropped _MAX_ from CONFIG_MAX_LLC_COLORS_ORDER
v8:
- minor documentation fixes
- "llc-coloring=on" is inferred from "llc-nr-ways" and "llc-size" usage
- turned CONFIG_NR_LLC_COLORS to CONFIG_MAX_LLC_COLORS_ORDER, base-2 exponent
- moved Kconfig options to common/Kconfig
- don't crash if computed max_nr_colors is too large
v7:
- SUPPORT.md changes added to this patch
- extended documentation to better address applicability of cache coloring
- "llc-nr-ways" and "llc-size" params introduced in favor of "llc-way-size"
- moved dump_llc_coloring_info() call in 'm' keyhandler (pagealloc_info())
v6:
- moved almost all code in common
- moved documentation in this patch
- reintroduced range for CONFIG_NR_LLC_COLORS
- reintroduced some stub functions to reduce the number of checks on
  llc_coloring_enabled
- moved domain_llc_coloring_free() in same patch where allocation happens
- turned "d->llc_colors" to pointer-to-const
- llc_coloring_init() now returns void and panics if errors are found
v5:
- used - instead of _ for filenames
- removed domain_create_llc_colored()
- removed stub functions
- coloring domain fields are now #ifdef protected
v4:
- Kconfig options moved to xen/arch
- removed range for CONFIG_NR_LLC_COLORS
- added "llc_coloring_enabled" global to later implement the boot-time
  switch
- added domain_create_llc_colored() to be able to pass colors
- added is_domain_llc_colored() macro
---
 SUPPORT.md                        |   7 ++
 docs/index.rst                    |   1 +
 docs/misc/cache-coloring.rst      | 116 ++++++++++++++++++++++++++++++
 docs/misc/xen-command-line.pandoc |  37 ++++++++++
 xen/common/Kconfig                |  21 ++++++
 xen/common/Makefile               |   1 +
 xen/common/keyhandler.c           |   3 +
 xen/common/llc-coloring.c         | 115 +++++++++++++++++++++++++++++
 xen/common/page_alloc.c           |   3 +
 xen/include/xen/llc-coloring.h    |  37 ++++++++++
 xen/include/xen/sched.h           |   5 ++
 11 files changed, 346 insertions(+)
 create mode 100644 docs/misc/cache-coloring.rst
 create mode 100644 xen/common/llc-coloring.c
 create mode 100644 xen/include/xen/llc-coloring.h

diff --git a/SUPPORT.md b/SUPPORT.md
index 82239d0294..998faf5635 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -401,6 +401,13 @@ by maintaining multiple physical to machine (p2m) memory mappings.
     Status, x86 HVM: Tech Preview
     Status, ARM: Tech Preview
 
+### Cache coloring
+
+Allows to reserve Last Level Cache (LLC) partitions for Dom0, DomUs and Xen
+itself.
+
+    Status, Arm64: Experimental
+
 ## Resource Management
 
 ### CPU Pools
diff --git a/docs/index.rst b/docs/index.rst
index ab051a0f38..fad4462bbb 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -65,6 +65,7 @@ Documents in need of some rearranging.
    designs/launch/hyperlaunch-devicetree
    misc/xen-makefiles/makefiles
    misra/index
+   misc/cache-coloring
 
 
 Miscellanea
diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
new file mode 100644
index 0000000000..0fe3830c40
--- /dev/null
+++ b/docs/misc/cache-coloring.rst
@@ -0,0 +1,116 @@
+Xen cache coloring user guide
+=============================
+
+The cache coloring support in Xen allows to reserve Last Level Cache (LLC)
+partitions for Dom0, DomUs and Xen itself. Currently only ARM64 is supported.
+Cache coloring realizes per-set cache partitioning in software and is applicable
+to shared LLCs as implemented in Cortex-A53, Cortex-A72 and similar CPUs.
+
+To compile LLC coloring support set ``CONFIG_LLC_COLORING=y``.
+
+If needed, change the maximum number of colors with
+``CONFIG_LLC_COLORS_ORDER=<n>``.
+
+Runtime configuration is done via `Command line parameters`_.
+
+Background
+**********
+
+Cache hierarchy of a modern multi-core CPU typically has first levels dedicated
+to each core (hence using multiple cache units), while the last level is shared
+among all of them. Such configuration implies that memory operations on one
+core (e.g. running a DomU) are able to generate interference on another core
+(e.g. hosting another DomU). Cache coloring realizes per-set cache-partitioning
+in software and mitigates this, guaranteeing more predictable performances for
+memory accesses.
+Software-based cache coloring is particularly useful in those situations where
+no hardware mechanisms (e.g., DSU-based way partitioning) are available to
+partition caches. This is the case for e.g., Cortex-A53, A57 and A72 CPUs that
+feature a L2 LLC cache shared among all cores.
+
+The key concept underlying cache coloring is a fragmentation of the memory
+space into a set of sub-spaces called colors that are mapped to disjoint cache
+partitions. Technically, the whole memory space is first divided into a number
+of subsequent regions. Then each region is in turn divided into a number of
+subsequent sub-colors. The generic i-th color is then obtained by all the
+i-th sub-colors in each region.
+
+::
+
+                            Region j            Region j+1
+                .....................   ............
+                .                     . .
+                .                       .
+            _ _ _______________ _ _____________________ _ _
+                |     |     |     |     |     |     |
+                | c_0 | c_1 |     | c_n | c_0 | c_1 |
+           _ _ _|_____|_____|_ _ _|_____|_____|_____|_ _ _
+                    :                       :
+                    :                       :...         ... .
+                    :                            color 0
+                    :...........................         ... .
+                                                :
+          . . ..................................:
+
+How colors are actually defined depends on the function that maps memory to
+cache lines. In case of physically-indexed, physically-tagged caches with linear
+mapping, the set index is found by extracting some contiguous bits from the
+physical address. This allows colors to be defined as shown in figure: they
+appear in memory as subsequent blocks of equal size and repeats themselves after
+``n`` different colors, where ``n`` is the total number of colors.
+
+If some kind of bit shuffling appears in the mapping function, then colors
+assume a different layout in memory. Those kind of caches aren't supported by
+the current implementation.
+
+**Note**: Finding the exact cache mapping function can be a really difficult
+task since it's not always documented in the CPU manual. As said Cortex-A53, A57
+and A72 are known to work with the current implementation.
+
+How to compute the number of colors
+###################################
+
+Given the linear mapping from physical memory to cache lines for granted, the
+number of available colors for a specific platform is computed using three
+parameters:
+
+- the size of the LLC.
+- the number of the LLC ways.
+- the page size used by Xen.
+
+The first two parameters can be found in the processor manual, while the third
+one is the minimum mapping granularity. Dividing the cache size by the number of
+its ways we obtain the size of a way. Dividing this number by the page size,
+the number of total cache colors is found. So for example an Arm Cortex-A53
+with a 16-ways associative 1 MiB LLC can isolate up to 16 colors when pages are
+4 KiB in size.
+
+Effective colors assignment
+###########################
+
+When assigning colors, if one wants to avoid cache interference between two
+domains, different colors needs to be used for their memory.
+
+Command line parameters
+***********************
+
+Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
+
++----------------------+-------------------------------+
+| **Parameter**        | **Description**               |
++----------------------+-------------------------------+
+| ``llc-coloring``     | Enable coloring at runtime    |
++----------------------+-------------------------------+
+| ``llc-size``         | Set the LLC size              |
++----------------------+-------------------------------+
+| ``llc-nr-ways``      | Set the LLC number of ways    |
++----------------------+-------------------------------+
+
+Auto-probing of LLC specs
+#########################
+
+LLC size and number of ways are probed automatically by default.
+
+LLC specs can be manually set via the above command line parameters. This
+bypasses any auto-probing and it's used to overcome failing situations, such as
+flawed probing logic, or for debugging/testing purposes.
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 293dbc1a95..abd8dae96f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1708,6 +1708,43 @@ This option is intended for debugging purposes only.  Enable MSR_DEBUGCTL.LBR
 in hypervisor context to be able to dump the Last Interrupt/Exception To/From
 record with other registers.
 
+### llc-coloring (arm64)
+> `= <boolean>`
+
+> Default: `false`
+
+Flag to enable or disable LLC coloring support at runtime. This option is
+available only when `CONFIG_LLC_COLORING` is enabled. See the general
+cache coloring documentation for more info.
+
+### llc-nr-ways (arm64)
+> `= <integer>`
+
+> Default: `Obtained from hardware`
+
+Specify the number of ways of the Last Level Cache. This option is available
+only when `CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used
+to find the number of supported cache colors. By default the value is
+automatically computed by probing the hardware, but in case of specific needs,
+it can be manually set. Those include failing probing and debugging/testing
+purposes so that it's possible to emulate platforms with different number of
+supported colors. If set, also "llc-size" must be set, otherwise the default
+will be used. Note that using both options implies "llc-coloring=on".
+
+### llc-size (arm64)
+> `= <size>`
+
+> Default: `Obtained from hardware`
+
+Specify the size of the Last Level Cache. This option is available only when
+`CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used to find
+the number of supported cache colors. By default the value is automatically
+computed by probing the hardware, but in case of specific needs, it can be
+manually set. Those include failing probing and debugging/testing purposes so
+that it's possible to emulate platforms with different number of supported
+colors. If set, also "llc-nr-ways" must be set, otherwise the default will be
+used. Note that using both options implies "llc-coloring=on".
+
 ### lock-depth-size
 > `= <integer>`
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 90268d9249..b4ec6893be 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -71,6 +71,9 @@ config HAS_IOPORTS
 config HAS_KEXEC
 	bool
 
+config HAS_LLC_COLORING
+	bool
+
 config HAS_PIRQ
 	bool
 
@@ -516,4 +519,22 @@ config TRACEBUFFER
 	  to be collected at run time for debugging or performance analysis.
 	  Memory and execution overhead when not active is minimal.
 
+config LLC_COLORING
+	bool "Last Level Cache (LLC) coloring" if EXPERT
+	depends on HAS_LLC_COLORING
+
+config LLC_COLORS_ORDER
+	int "Maximum number of LLC colors (base-2 exponent)"
+	range 1 10
+	default 7
+	depends on LLC_COLORING
+	help
+	  Controls the build-time size of various arrays associated with LLC
+	  coloring. The value is a base-2 exponent. Refer to cache coloring
+	  documentation for how to compute the number of colors supported by the
+	  platform. This is only an upper bound. The runtime value is autocomputed
+	  or manually set via cmdline parameters.
+	  The default value corresponds to an 8 MiB 16-ways LLC, which should be
+	  more than what's needed in the general case.
+
 endmenu
diff --git a/xen/common/Makefile b/xen/common/Makefile
index b279b09bfb..cba3b32733 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -25,6 +25,7 @@ obj-y += keyhandler.o
 obj-$(CONFIG_KEXEC) += kexec.o
 obj-$(CONFIG_KEXEC) += kimage.o
 obj-$(CONFIG_LIVEPATCH) += livepatch.o livepatch_elf.o
+obj-$(CONFIG_LLC_COLORING) += llc-coloring.o
 obj-$(CONFIG_MEM_ACCESS) += mem_access.o
 obj-y += memory.o
 obj-y += multicall.o
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index 6da291b34e..6ea54838d4 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -5,6 +5,7 @@
 #include <asm/regs.h>
 #include <xen/delay.h>
 #include <xen/keyhandler.h>
+#include <xen/llc-coloring.h>
 #include <xen/param.h>
 #include <xen/sections.h>
 #include <xen/shutdown.h>
@@ -304,6 +305,8 @@ static void cf_check dump_domains(unsigned char key)
 
         arch_dump_domain_info(d);
 
+        domain_dump_llc_colors(d);
+
         rangeset_domain_printk(d);
 
         dump_pageframe_info(d);
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
new file mode 100644
index 0000000000..29b75e0e0d
--- /dev/null
+++ b/xen/common/llc-coloring.c
@@ -0,0 +1,115 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Last Level Cache (LLC) coloring common code
+ *
+ * Copyright (C) 2024, Advanced Micro Devices, Inc.
+ * Copyright (C) 2024, Minerva Systems SRL
+ */
+#include <xen/keyhandler.h>
+#include <xen/llc-coloring.h>
+#include <xen/param.h>
+
+#define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)
+
+static bool __ro_after_init llc_coloring_enabled;
+boolean_param("llc-coloring", llc_coloring_enabled);
+
+static unsigned int __initdata llc_size;
+size_param("llc-size", llc_size);
+static unsigned int __initdata llc_nr_ways;
+integer_param("llc-nr-ways", llc_nr_ways);
+/* Number of colors available in the LLC */
+static unsigned int __ro_after_init max_nr_colors;
+
+static void print_colors(const unsigned int colors[], unsigned int num_colors)
+{
+    unsigned int i;
+
+    printk("{ ");
+    for ( i = 0; i < num_colors; i++ )
+    {
+        unsigned int start = colors[i], end = start;
+
+        printk("%u", start);
+
+        for ( ; i < num_colors - 1 && end + 1 == colors[i + 1]; i++, end++ )
+            ;
+
+        if ( start != end )
+            printk("-%u", end);
+
+        if ( i < num_colors - 1 )
+            printk(", ");
+    }
+    printk(" }\n");
+}
+
+void __init llc_coloring_init(void)
+{
+    unsigned int way_size;
+
+    if ( llc_size && llc_nr_ways )
+    {
+        llc_coloring_enabled = true;
+        way_size = llc_size / llc_nr_ways;
+    }
+    else if ( !llc_coloring_enabled )
+        return;
+    else
+    {
+        way_size = get_llc_way_size();
+        if ( !way_size )
+            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' missing\n");
+    }
+
+    if ( way_size & ~PAGE_MASK )
+        panic("LLC way size must be a multiple of PAGE_SIZE\n");
+
+    /*
+     * The maximum number of colors must be a power of 2 in order to correctly
+     * map them to bits of an address.
+     */
+    max_nr_colors = way_size >> PAGE_SHIFT;
+
+    if ( max_nr_colors & (max_nr_colors - 1) )
+        panic("Number of LLC colors (%u) isn't a power of 2\n", max_nr_colors);
+
+    if ( max_nr_colors > NR_LLC_COLORS )
+    {
+        printk(XENLOG_WARNING
+               "Number of LLC colors (%u) too big. Using configured max %u\n",
+               max_nr_colors, NR_LLC_COLORS);
+        max_nr_colors = NR_LLC_COLORS;
+    } else if ( max_nr_colors < 2 )
+        panic("Number of LLC colors %u < 2\n", max_nr_colors);
+
+    arch_llc_coloring_init();
+}
+
+void dump_llc_coloring_info(void)
+{
+    if ( !llc_coloring_enabled )
+        return;
+
+    printk("LLC coloring info:\n");
+    printk("    Number of LLC colors supported: %u\n", max_nr_colors);
+}
+
+void domain_dump_llc_colors(const struct domain *d)
+{
+    if ( !llc_coloring_enabled )
+        return;
+
+    printk("%u LLC colors: ", d->num_llc_colors);
+    print_colors(d->llc_colors, d->num_llc_colors);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 33c8c917d9..7b911b5ed9 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -126,6 +126,7 @@
 #include <xen/irq.h>
 #include <xen/keyhandler.h>
 #include <xen/lib.h>
+#include <xen/llc-coloring.h>
 #include <xen/mm.h>
 #include <xen/nodemask.h>
 #include <xen/numa.h>
@@ -2626,6 +2627,8 @@ static void cf_check pagealloc_info(unsigned char key)
     }
 
     printk("    Dom heap: %lukB free\n", total << (PAGE_SHIFT-10));
+
+    dump_llc_coloring_info();
 }
 
 static __init int cf_check pagealloc_keyhandler_init(void)
diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
new file mode 100644
index 0000000000..6ccf4613c2
--- /dev/null
+++ b/xen/include/xen/llc-coloring.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Last Level Cache (LLC) coloring common header
+ *
+ * Copyright (C) 2024, Advanced Micro Devices, Inc.
+ * Copyright (C) 2024, Minerva Systems SRL
+ */
+#ifndef __COLORING_H__
+#define __COLORING_H__
+
+#include <xen/sched.h>
+#include <public/domctl.h>
+
+#ifdef CONFIG_LLC_COLORING
+void llc_coloring_init(void);
+void dump_llc_coloring_info(void);
+void domain_dump_llc_colors(const struct domain *d);
+#else
+static inline void llc_coloring_init(void) {}
+static inline void dump_llc_coloring_info(void) {}
+static inline void domain_dump_llc_colors(const struct domain *d) {}
+#endif
+
+unsigned int get_llc_way_size(void);
+void arch_llc_coloring_init(void);
+
+#endif /* __COLORING_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/include/xen/sched.h b/xen/include/xen/sched.h
index 90666576c2..c0e49cd1e7 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -637,6 +637,11 @@ struct domain
 
     /* Holding CDF_* constant. Internal flags for domain creation. */
     unsigned int cdf;
+
+#ifdef CONFIG_LLC_COLORING
+    unsigned int num_llc_colors;
+    const unsigned int *llc_colors;
+#endif
 };
 
 static inline struct page_list_head *page_to_list(
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840126.1255942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOz9-00009U-Dn; Tue, 19 Nov 2024 14:13:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840126.1255942; Tue, 19 Nov 2024 14:13: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 1tDOz9-00005t-37; Tue, 19 Nov 2024 14:13:43 +0000
Received: by outflank-mailman (input) for mailman id 840126;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz7-0007nd-Ab
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:41 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 776cfafe-a680-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:13:36 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-aa4cb5fcc06so134601766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:36 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 776cfafe-a680-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc3NmNmYWZlLWE2ODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1NjE2LjMyOTM2NSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025615; x=1732630415; 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=ShqeUeLuURvoXpfFD6047wJmCbE0pSqdks3ivWaczJ8=;
        b=ao8vplhfrrJTMv8s1+CHh2TTuSbu/AV6Mirt4IUmdF/U+f0Ku3+EiBhx6AdjBkrm6n
         BFtTtiHlrAKHUgRvkdz+NkLBsOCRQeQXkBs+RvjniXQu2tWQknS5C0awmBhJ8dPogNLE
         bHwba9WhS7RIJ1GX1rKIbhlKVBXzF70XRf6+/8Gl0XYSKbtHhavbWBqUIZURT7IsX4CN
         gQd/rvua2jz4PCSW9AS4TOW87xv4UNru+vBC8lsiB28BscxaFmd5uQ1BxS38vV50rGp+
         YhTwazqc+XdTwOBDcGwYx67O0QqxtGKDiLQ7UxqP9sSkfOxGchaHU08KIoXnhTdMgndb
         +Tzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025615; x=1732630415;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ShqeUeLuURvoXpfFD6047wJmCbE0pSqdks3ivWaczJ8=;
        b=lgyTlwxY8fFDHRYPg2B4gc0o4YOUTikLD+GN1BVCJ69qIZ/vCEOiP4whLQosYXZ86V
         9qZiI+oHsB4zAwU9cDH0Y+p4rhKP0M0MB9GwQDQvcWqbPBpDFAtO0ulTStnVWNjTQh3X
         4RW3eNPS8cPLGOJ15EOmmzE6xztmTrhwl1Plr6ytfdyRDLOyC0pJivhzCXlgG5OY9zBZ
         w/aKX3VGfKw0TNWY3vcG/r5zuVXZ+/5ESFn2rb2odHRv3PutAove7NMJsqMTSvLPXJeT
         k+nZX9507IqGm1GIBkSc4LFduMGvH5ZfN9BizPc0h1UVnyoSexqZ9ifjNP2q1hiNfuy5
         wRJw==
X-Gm-Message-State: AOJu0YzdbXUC36xMpGoGnqI/ptlWCRsBegWF6KZh4OfewwmPTnJcrJ/1
	oaKbZbobzaWG+zjRYq75zKeEqrWoyyL8AauLRiSiz584Jw8Cd2NKhMCu9x/a3YhFkKRwN6Peg3e
	P
X-Google-Smtp-Source: AGHT+IG1wuHNdM1zdKEM1V9FwFqHMCAcni3q2IzwxVE1Q59FJRUsbTkKx/Ajwfcz8BYDORPIzKDWXg==
X-Received: by 2002:a17:907:3e0c:b0:a9a:154e:dd86 with SMTP id a640c23a62f3a-aa483487a67mr1551749966b.28.1732025615515;
        Tue, 19 Nov 2024 06:13:35 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	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 v10 03/12] xen/arm: permit non direct-mapped Dom0 construction
Date: Tue, 19 Nov 2024 15:13:20 +0100
Message-ID: <20241119141329.44221-4-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Cache coloring requires Dom0 not to be direct-mapped because of its non
contiguous mapping nature, so allocate_memory() is needed in this case.
8d2c3ab18cc1 ("arm/dom0less: put dom0less feature code in a separate module")
moved allocate_memory() in dom0less_build.c. In order to use it
in Dom0 construction bring it back to domain_build.c and declare it in
domain_build.h.

Take the opportunity to adapt the implementation of allocate_memory() so
that it uses the host layout when called on the hwdom, via
find_unallocated_memory().

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
---
v10:
- fixed a compilation bug that happened when dom0less support was disabled
v9:
- no changes
v8:
- patch adapted to new changes to allocate_memory()
v7:
- allocate_memory() now uses the host layout when called on the hwdom
v6:
- new patch
---
 xen/arch/arm/dom0less-build.c           | 44 ------------
 xen/arch/arm/domain_build.c             | 96 +++++++++++++++++++++++--
 xen/arch/arm/include/asm/domain_build.h |  1 +
 3 files changed, 93 insertions(+), 48 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index d93a85434e..67b1503647 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -49,50 +49,6 @@ bool __init is_dom0less_mode(void)
     return ( !dom0found && domUfound );
 }
 
-static void __init allocate_memory(struct domain *d, struct kernel_info *kinfo)
-{
-    struct membanks *mem = kernel_info_get_mem(kinfo);
-    unsigned int i;
-    paddr_t bank_size;
-
-    printk(XENLOG_INFO "Allocating mappings totalling %ldMB for %pd:\n",
-           /* Don't want format this as PRIpaddr (16 digit hex) */
-           (unsigned long)(kinfo->unassigned_mem >> 20), d);
-
-    mem->nr_banks = 0;
-    bank_size = MIN(GUEST_RAM0_SIZE, kinfo->unassigned_mem);
-    if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(GUEST_RAM0_BASE),
-                               bank_size) )
-        goto fail;
-
-    bank_size = MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
-    if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
-                               bank_size) )
-        goto fail;
-
-    if ( kinfo->unassigned_mem )
-        goto fail;
-
-    for( i = 0; i < mem->nr_banks; i++ )
-    {
-        printk(XENLOG_INFO "%pd BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB)\n",
-               d,
-               i,
-               mem->bank[i].start,
-               mem->bank[i].start + mem->bank[i].size,
-               /* Don't want format this as PRIpaddr (16 digit hex) */
-               (unsigned long)(mem->bank[i].size >> 20));
-    }
-
-    return;
-
-fail:
-    panic("Failed to allocate requested domain memory."
-          /* Don't want format this as PRIpaddr (16 digit hex) */
-          " %ldKB unallocated. Fix the VMs configurations.\n",
-          (unsigned long)kinfo->unassigned_mem >> 10);
-}
-
 #ifdef CONFIG_VGICV2
 static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
 {
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2c30792de8..a95376dcdc 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -416,7 +416,6 @@ static void __init allocate_memory_11(struct domain *d,
     }
 }
 
-#ifdef CONFIG_DOM0LESS_BOOT
 bool __init allocate_domheap_memory(struct domain *d, paddr_t tot_size,
                                     alloc_domheap_mem_cb cb, void *extra)
 {
@@ -508,7 +507,6 @@ bool __init allocate_bank_memory(struct kernel_info *kinfo, gfn_t sgfn,
 
     return true;
 }
-#endif
 
 /*
  * When PCI passthrough is available we want to keep the
@@ -1003,6 +1001,93 @@ out:
     return res;
 }
 
+void __init allocate_memory(struct domain *d, struct kernel_info *kinfo)
+{
+    struct membanks *mem = kernel_info_get_mem(kinfo);
+    unsigned int i, nr_banks = 2;
+    paddr_t bank_start, bank_size;
+    struct membanks *hwdom_ext_regions = NULL;
+
+    printk(XENLOG_INFO "Allocating mappings totalling %ldMB for %pd:\n",
+           /* Don't want format this as PRIpaddr (16 digit hex) */
+           (unsigned long)(kinfo->unassigned_mem >> 20), d);
+
+    mem->nr_banks = 0;
+    /*
+     * Use host memory layout for hwdom. Only case for this is when LLC coloring
+     * is enabled.
+     */
+    if ( is_hardware_domain(d) )
+    {
+        ASSERT(llc_coloring_enabled);
+
+        hwdom_ext_regions = xzalloc_flex_struct(struct membanks, bank,
+                                                NR_MEM_BANKS);
+        if ( !hwdom_ext_regions )
+            goto fail;
+        hwdom_ext_regions->max_banks = NR_MEM_BANKS;
+
+        if ( find_unallocated_memory(kinfo, hwdom_ext_regions) )
+            goto fail;
+
+        nr_banks = hwdom_ext_regions->nr_banks;
+    }
+
+    for ( i = 0; kinfo->unassigned_mem > 0 && nr_banks > 0; i++, nr_banks-- )
+    {
+        if ( is_hardware_domain(d) )
+        {
+            bank_start = hwdom_ext_regions->bank[i].start;
+            bank_size = hwdom_ext_regions->bank[i].size;
+
+            if ( bank_size < min_t(paddr_t, kinfo->unassigned_mem, MB(128)) )
+                continue;
+        }
+        else
+        {
+            if ( i == 0 )
+            {
+                bank_start = GUEST_RAM0_BASE;
+                bank_size = GUEST_RAM0_SIZE;
+            }
+            else if ( i == 1 )
+            {
+                bank_start = GUEST_RAM1_BASE;
+                bank_size = GUEST_RAM1_SIZE;
+            }
+            else
+                goto fail;
+        }
+
+        bank_size = MIN(bank_size, kinfo->unassigned_mem);
+        if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(bank_start), bank_size) )
+            goto fail;
+    }
+
+    if ( kinfo->unassigned_mem )
+        goto fail;
+
+    for( i = 0; i < mem->nr_banks; i++ )
+    {
+        printk(XENLOG_INFO "%pd BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB)\n",
+               d,
+               i,
+               mem->bank[i].start,
+               mem->bank[i].start + mem->bank[i].size,
+               /* Don't want format this as PRIpaddr (16 digit hex) */
+               (unsigned long)(mem->bank[i].size >> 20));
+    }
+
+    xfree(hwdom_ext_regions);
+    return;
+
+fail:
+    panic("Failed to allocate requested domain memory."
+          /* Don't want format this as PRIpaddr (16 digit hex) */
+          " %ldKB unallocated. Fix the VMs configurations.\n",
+          (unsigned long)kinfo->unassigned_mem >> 10);
+}
+
 static int __init handle_pci_range(const struct dt_device_node *dev,
                                    uint64_t addr, uint64_t len, void *data)
 {
@@ -1223,7 +1308,7 @@ int __init make_hypervisor_node(struct domain *d,
 
         ext_regions->max_banks = NR_MEM_BANKS;
 
-        if ( is_domain_direct_mapped(d) )
+        if ( domain_use_host_layout(d) )
         {
             if ( !is_iommu_enabled(d) )
                 res = find_unallocated_memory(kinfo, ext_regions);
@@ -2152,7 +2237,10 @@ static int __init construct_dom0(struct domain *d)
     /* type must be set before allocate_memory */
     d->arch.type = kinfo.type;
 #endif
-    allocate_memory_11(d, &kinfo);
+    if ( is_domain_direct_mapped(d) )
+        allocate_memory_11(d, &kinfo);
+    else
+        allocate_memory(d, &kinfo);
     find_gnttab_region(d, &kinfo);
 
     rc = process_shm_chosen(d, &kinfo);
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index e712afbc7f..5d77af2e8b 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -11,6 +11,7 @@ bool allocate_domheap_memory(struct domain *d, paddr_t tot_size,
                              alloc_domheap_mem_cb cb, void *extra);
 bool allocate_bank_memory(struct kernel_info *kinfo, gfn_t sgfn,
                           paddr_t tot_size);
+void allocate_memory(struct domain *d, struct kernel_info *kinfo);
 int construct_domain(struct domain *d, struct kernel_info *kinfo);
 int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit);
 int make_chosen_node(const struct kernel_info *kinfo);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840122.1255912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOz6-000821-Kp; Tue, 19 Nov 2024 14:13:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840122.1255912; Tue, 19 Nov 2024 14:13: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 1tDOz6-00081r-Gt; Tue, 19 Nov 2024 14:13:40 +0000
Received: by outflank-mailman (input) for mailman id 840122;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz5-0007nd-LM
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:39 +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 76edd0eb-a680-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:13:35 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-aa4833e9c44so120858066b.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:35 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 76edd0eb-a680-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc2ZWRkMGViLWE2ODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1NjE1LjQ4MDIyNiwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025615; x=1732630415; 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=ZZ0Mqo/VVVpodAnrCuD1RTBLK1YlIRTEt2DutSu9Zdo=;
        b=vTzq1uGNqGgh8V1tSlrGUWNrlX55A5fLwVnzuhTzjxC16mEk3ENOB0po7s9C2QWMgB
         VZxlIAZdiiLak8B7LvC/K9tAcrpuxm80Hr7BWNt/zklcWtu5hYUQ++1pAbe0miipRlMY
         3VqGMjaXHN+1Io9iSAtTM8CAzgFb7+evP0nr6g2pOApkXYIH11ZyrtmYleyd0v32KcFA
         EJCke2ZZEJyYCfAKMKtlkpumKouT38ZBso3rLBypbW546c0d7IqiP0FLT+vAIwk9i7NN
         FAY/ghUps+S0MjxPQgIlD/JRJMZMSOQNb5BtlpPoxr6F8yLInqgdj5NGkXUrf1862p/N
         SdOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025615; x=1732630415;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZZ0Mqo/VVVpodAnrCuD1RTBLK1YlIRTEt2DutSu9Zdo=;
        b=gFvYIRfeMTRbRJUjIGxTBaLQKmrZXbRIfTQyH3S7vGmrWrWno8OvFjZP5BxKa3h5X9
         rC+tWx3vsQseFI+OMfrVEc2WvUKBi0FpWD3txInE556ivUSleOUCcESivq8QoHGZEHS3
         kzLdahKb6XIoIgIDlUCfQH6NMX3fbGRjZJebLSeeyklPycxDtUxyoLehkNQrT+H/412G
         Ww95Q2NxoZLA+vX8+MnUwhJUOzoZmkqyRzdXfmTa+v93+8CDDVUIGDmddDzdDZ3z8wAL
         LuzC4mG9T6urkoFDcCHLhAve70tKZ/2f6EW5w00rgXX7erStBtTay6w5zbsTBCy8RLo0
         xdcA==
X-Gm-Message-State: AOJu0Yz7Uw91Nwjjj5CpLW+wVxEFrpMp8hagNwRHDCCKa15Me80s6q8H
	IomhAEzjI47/W9IDyv0ykcVlB5GNDT138ZeO1V7DRCatIEYx0f0UwqgfHYiLStO8ec1doT8vNHQ
	u
X-Google-Smtp-Source: AGHT+IET27SpmU1fFtZs0y0db25/+nd5qOZnnd+Rz1y7eohCrN5Gl7QJHDmK6KH6QMxOO3LdODhs5Q==
X-Received: by 2002:a17:907:3689:b0:a9e:8612:eeca with SMTP id a640c23a62f3a-aa48352b54bmr1502734566b.48.1732025614626;
        Tue, 19 Nov 2024 06:13:34 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [PATCH v10 02/12] xen/arm: add initial support for LLC coloring on arm64
Date: Tue, 19 Nov 2024 15:13:19 +0100
Message-ID: <20241119141329.44221-3-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

LLC coloring needs to know the last level cache layout in order to make the
best use of it. This can be probed by inspecting the CLIDR_EL1 register,
so the Last Level is defined as the last level visible by this register.
Note that this excludes system caches in some platforms.

Static memory allocation and cache coloring are incompatible because static
memory can't be guaranteed to use only colors assigned to the domain.
Panic during DomUs creation when both are enabled.

Based on original work from: Luca Miccio <lucmiccio@gmail.com>

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
---
v10:
- moved CONFIG_NUMA check in arch/arm/Kconfig
v9:
- no changes
v8:
- no changes
v7:
- only minor changes
v6:
- get_llc_way_size() now checks for at least separate I/D caches
v5:
- used - instead of _ for filenames
- moved static-mem check in this patch
- moved dom0 colors parsing in next patch
- moved color allocation and configuration in next patch
- moved check_colors() in next patch
- colors are now printed in short form
v4:
- added "llc-coloring" cmdline option for the boot-time switch
- dom0 colors are now checked during domain init as for any other domain
- fixed processor.h masks bit width
- check for overflow in parse_color_config()
- check_colors() now checks also that colors are sorted and unique
---
 docs/misc/cache-coloring.rst         | 14 +++++
 xen/arch/arm/Kconfig                 |  1 +
 xen/arch/arm/Makefile                |  1 +
 xen/arch/arm/dom0less-build.c        |  6 +++
 xen/arch/arm/include/asm/processor.h | 16 ++++++
 xen/arch/arm/llc-coloring.c          | 78 ++++++++++++++++++++++++++++
 xen/arch/arm/setup.c                 |  3 ++
 xen/common/llc-coloring.c            |  2 +-
 xen/include/xen/llc-coloring.h       |  4 ++
 9 files changed, 124 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/llc-coloring.c

diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
index 0fe3830c40..b608284e9b 100644
--- a/docs/misc/cache-coloring.rst
+++ b/docs/misc/cache-coloring.rst
@@ -111,6 +111,20 @@ Auto-probing of LLC specs
 
 LLC size and number of ways are probed automatically by default.
 
+In the Arm implementation, this is done by inspecting the CLIDR_EL1 register.
+This means that other system caches that aren't visible there are ignored.
+
 LLC specs can be manually set via the above command line parameters. This
 bypasses any auto-probing and it's used to overcome failing situations, such as
 flawed probing logic, or for debugging/testing purposes.
+
+Known issues and limitations
+****************************
+
+"xen,static-mem" isn't supported when coloring is enabled
+#########################################################
+
+In the domain configuration, "xen,static-mem" allows memory to be statically
+allocated to the domain. This isn't possible when LLC coloring is enabled,
+because that memory can't be guaranteed to use only colors assigned to the
+domain.
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..7f0712e674 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_LLC_COLORING if !NUMA
 
 config ARM
 	def_bool y
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index e4ad1ce851..ccbfc61f88 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -35,6 +35,7 @@ obj-$(CONFIG_IOREQ_SERVER) += ioreq.o
 obj-y += irq.o
 obj-y += kernel.init.o
 obj-$(CONFIG_LIVEPATCH) += livepatch.o
+obj-$(CONFIG_LLC_COLORING) += llc-coloring.o
 obj-$(CONFIG_MEM_ACCESS) += mem_access.o
 obj-y += mm.o
 obj-y += monitor.o
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index f328a044e9..d93a85434e 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -5,6 +5,7 @@
 #include <xen/grant_table.h>
 #include <xen/iocap.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/llc-coloring.h>
 #include <xen/sched.h>
 #include <xen/serial.h>
 #include <xen/sizes.h>
@@ -890,7 +891,12 @@ void __init create_domUs(void)
             panic("No more domain IDs available\n");
 
         if ( dt_find_property(node, "xen,static-mem", NULL) )
+        {
+            if ( llc_coloring_enabled )
+                panic("LLC coloring and static memory are incompatible\n");
+
             flags |= CDF_staticmem;
+        }
 
         if ( dt_property_read_bool(node, "direct-map") )
         {
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 8e02410465..ef33ea198c 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -18,6 +18,22 @@
 #define CTR_IDC_SHIFT       28
 #define CTR_DIC_SHIFT       29
 
+/* CCSIDR Current Cache Size ID Register */
+#define CCSIDR_LINESIZE_MASK            _AC(0x7, UL)
+#define CCSIDR_NUMSETS_SHIFT            13
+#define CCSIDR_NUMSETS_MASK             _AC(0x3fff, UL)
+#define CCSIDR_NUMSETS_SHIFT_FEAT_CCIDX 32
+#define CCSIDR_NUMSETS_MASK_FEAT_CCIDX  _AC(0xffffff, UL)
+
+/* CSSELR Cache Size Selection Register */
+#define CSSELR_LEVEL_MASK  _AC(0x7, UL)
+#define CSSELR_LEVEL_SHIFT 1
+
+/* CLIDR Cache Level ID Register */
+#define CLIDR_CTYPEn_SHIFT(n) (3 * ((n) - 1))
+#define CLIDR_CTYPEn_MASK     _AC(0x7, UL)
+#define CLIDR_CTYPEn_LEVELS   7
+
 #define ICACHE_POLICY_VPIPT  0
 #define ICACHE_POLICY_AIVIVT 1
 #define ICACHE_POLICY_VIPT   2
diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
new file mode 100644
index 0000000000..a7e0907816
--- /dev/null
+++ b/xen/arch/arm/llc-coloring.c
@@ -0,0 +1,78 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Last Level Cache (LLC) coloring support for ARM
+ *
+ * Copyright (C) 2024, Advanced Micro Devices, Inc.
+ * Copyright (C) 2024, Minerva Systems SRL
+ */
+#include <xen/llc-coloring.h>
+#include <xen/types.h>
+
+#include <asm/processor.h>
+#include <asm/sysregs.h>
+
+/* Return the LLC way size by probing the hardware */
+unsigned int __init get_llc_way_size(void)
+{
+    register_t ccsidr_el1;
+    register_t clidr_el1 = READ_SYSREG(CLIDR_EL1);
+    register_t csselr_el1 = READ_SYSREG(CSSELR_EL1);
+    register_t id_aa64mmfr2_el1 = READ_SYSREG(ID_AA64MMFR2_EL1);
+    uint32_t ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT;
+    uint32_t ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK;
+    unsigned int n, line_size, num_sets;
+
+    for ( n = CLIDR_CTYPEn_LEVELS; n != 0; n-- )
+    {
+        uint8_t ctype_n = (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
+                          CLIDR_CTYPEn_MASK;
+
+        /* Unified cache (see Arm ARM DDI 0487J.a D19.2.27) */
+        if ( ctype_n == 0b100 )
+            break;
+    }
+
+    if ( n == 0 )
+        return 0;
+
+    WRITE_SYSREG((n - 1) << CSSELR_LEVEL_SHIFT, CSSELR_EL1);
+    isb();
+
+    ccsidr_el1 = READ_SYSREG(CCSIDR_EL1);
+
+    /* Arm ARM: (Log2(Number of bytes in cache line)) - 4 */
+    line_size = 1U << ((ccsidr_el1 & CCSIDR_LINESIZE_MASK) + 4);
+
+    /* If FEAT_CCIDX is enabled, CCSIDR_EL1 has a different bit layout */
+    if ( (id_aa64mmfr2_el1 >> ID_AA64MMFR2_CCIDX_SHIFT) & 0x7 )
+    {
+        ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT_FEAT_CCIDX;
+        ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK_FEAT_CCIDX;
+    }
+
+    /* Arm ARM: (Number of sets in cache) - 1 */
+    num_sets = ((ccsidr_el1 >> ccsidr_numsets_shift) & ccsidr_numsets_mask) + 1;
+
+    printk(XENLOG_INFO "LLC found: L%u (line size: %u bytes, sets num: %u)\n",
+           n, line_size, num_sets);
+
+    /* Restore value in CSSELR_EL1 */
+    WRITE_SYSREG(csselr_el1, CSSELR_EL1);
+    isb();
+
+    return line_size * num_sets;
+}
+
+void __init arch_llc_coloring_init(void)
+{
+}
+
+/*
+ * 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/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca..84fecaabea 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -12,6 +12,7 @@
 #include <xen/device_tree.h>
 #include <xen/domain_page.h>
 #include <xen/grant_table.h>
+#include <xen/llc-coloring.h>
 #include <xen/types.h>
 #include <xen/string.h>
 #include <xen/serial.h>
@@ -326,6 +327,8 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
 
+    llc_coloring_init();
+
     setup_mm();
 
     vm_init();
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 29b75e0e0d..45b001b105 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -11,7 +11,7 @@
 
 #define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)
 
-static bool __ro_after_init llc_coloring_enabled;
+bool __ro_after_init llc_coloring_enabled;
 boolean_param("llc-coloring", llc_coloring_enabled);
 
 static unsigned int __initdata llc_size;
diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
index 6ccf4613c2..ad2525e153 100644
--- a/xen/include/xen/llc-coloring.h
+++ b/xen/include/xen/llc-coloring.h
@@ -12,10 +12,14 @@
 #include <public/domctl.h>
 
 #ifdef CONFIG_LLC_COLORING
+extern bool llc_coloring_enabled;
+
 void llc_coloring_init(void);
 void dump_llc_coloring_info(void);
 void domain_dump_llc_colors(const struct domain *d);
 #else
+#define llc_coloring_enabled false
+
 static inline void llc_coloring_init(void) {}
 static inline void dump_llc_coloring_info(void) {}
 static inline void domain_dump_llc_colors(const struct domain *d) {}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840127.1255958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOzA-0000f9-Oa; Tue, 19 Nov 2024 14:13:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840127.1255958; Tue, 19 Nov 2024 14:13: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 1tDOzA-0000dq-Fh; Tue, 19 Nov 2024 14:13:44 +0000
Received: by outflank-mailman (input) for mailman id 840127;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz8-0007nd-Gi
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:42 +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 79162290-a680-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:13:39 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aa4d257eb68so96839966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:39 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 79162290-a680-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc5MTYyMjkwLWE2ODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1NjE5LjEwNjIzOSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025618; x=1732630418; 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=xGl1NPcoKCzlCr5yeY5HUYbNu793pD/X8ieGOenUdQs=;
        b=F7HlF21GD5WAb9lHwP7IIAK+r7lRl9REDnE7i5susjlG9E8g7qGhF9iaJYe1thgOr7
         u6RuMVB/pT8vKCVlxIyLMkYMp9wF/MXQHXc9PRYeyitzh6FNII4lO75UO/kzWXeoLmNc
         LIMAvlLRLVLpOvZSEsXrUg3fUgVLMcwDztIAPPPBYNS8bk8yItX8m/WJtHAJ7mUgzhIt
         XSPc4B6GQdDS75NKm0KauKK6dEFE/Gf/hSkBdXJcKOjhIgH+1byZf580r7O+uA5ga6eP
         vjWE4dpIJ8DY/1bBekLUukdumXcyPdh0wNSb4BXZ+aRRFEtutRdWZ/bTDl7Sj9fkbyn5
         4Jgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025618; x=1732630418;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xGl1NPcoKCzlCr5yeY5HUYbNu793pD/X8ieGOenUdQs=;
        b=GU7xZO6gLA9xH1WRgOtObQ93wfTlnJuhu9BcyxXu7bNrhLgkzYHQW78D6bvY+yVbfZ
         nAlbwsIHI2Q8hPNA/N7o718s8+/LIijy6VNmu4b+7xQUHUe3Ax7tk1BzVO4PMu36C5gt
         QWGX4FUv0/qX+a0VOjJ3rCQ6DsYru2Q3ijiJRj2jBXIhXeOLhzK6r4B5x9ObLobdUo4c
         d3pOq3l2bVvqIga/7hRkx9rp3S/EmSDFlGM2kQjNgVPELToGBPam3DZ8TP0uiVRJO5ml
         1vkTBEheHD3XO14p/LiNrVqfc0f9uTZCoAdb8w1VKw5alNeXTJ2s/+PiDtxh0HdRsB+G
         mBbQ==
X-Gm-Message-State: AOJu0YxmAd41Fn1d7SG3n7TFq6xCeIo4R9zaztmQ+6IyymMa/dUhhCVg
	QyHTUTADw/jzmqchCzkIrz+6PjPXrZxLU+DG40WHKzUcK4g31JqNVry+215bdNd/36GlY73LYPS
	U
X-Google-Smtp-Source: AGHT+IEqDxwaqbb2cYZOH6tuEZ0+kf/vgPj+5cg51RprfpwnY4qM+R+2mRarAD5ntd+Mvea9Ltzw4A==
X-Received: by 2002:a17:907:1c8d:b0:a99:5587:2a1f with SMTP id a640c23a62f3a-aa4c7e39719mr410109566b.15.1732025618223;
        Tue, 19 Nov 2024 06:13:38 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v10 06/12] tools: add support for cache coloring configuration
Date: Tue, 19 Nov 2024 15:13:23 +0100
Message-ID: <20241119141329.44221-7-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a new "llc_colors" parameter that defines the LLC color assignment for
a domain. The user can specify one or more color ranges using the same
syntax used everywhere else for color config described in the
documentation.
The parameter is defined as a list of strings that represent the color
ranges.

Documentation is also added.

Based on original work from: Luca Miccio <lucmiccio@gmail.com>

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
---
v10:
- no changes
v9:
- turned warning into error in case of coloring not enabled
v8:
- warn the user in case of coloring not supported at hypervisor level
v7:
- removed unneeded NULL check before xc_hypercall_buffer_free() in
  xc_domain_set_llc_colors()
v6:
- no edits
v5:
- added LIBXL_HAVE_BUILDINFO_LLC_COLORS
- moved color configuration in xc_domain_set_llc_colors() cause of the new
  hypercall
v4:
- removed overlapping color ranges checks during parsing
- moved hypercall buffer initialization in libxenctrl
---
 docs/man/xl.cfg.5.pod.in         |  6 +++++
 tools/include/libxl.h            |  5 +++++
 tools/include/xenctrl.h          |  9 ++++++++
 tools/libs/ctrl/xc_domain.c      | 35 +++++++++++++++++++++++++++++
 tools/libs/light/libxl_create.c  | 18 +++++++++++++++
 tools/libs/light/libxl_types.idl |  1 +
 tools/xl/xl_parse.c              | 38 +++++++++++++++++++++++++++++++-
 7 files changed, 111 insertions(+), 1 deletion(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index ac3f88fd57..8e1422104e 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3074,6 +3074,12 @@ raised.
 
 =over 4
 
+=item B<llc_colors=[ "RANGE", "RANGE", ...]>
+
+Specify the Last Level Cache (LLC) color configuration for the guest.
+B<RANGE> can be either a single color value or a hypen-separated closed
+interval of colors (such as "0-4").
+
 =item B<nr_spis="NR_SPIS">
 
 An optional integer parameter specifying the number of SPIs (Shared
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 8d32428ea9..f8fe4afd7d 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1379,6 +1379,11 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src);
  */
 #define LIBXL_HAVE_BUILDINFO_HVM_SYSTEM_FIRMWARE
 
+/*
+ * The libxl_domain_build_info has the llc_colors array.
+ */
+#define LIBXL_HAVE_BUILDINFO_LLC_COLORS 1
+
 /*
  * ERROR_REMUS_XXX error code only exists from Xen 4.5, Xen 4.6 and it
  * is changed to ERROR_CHECKPOINT_XXX in Xen 4.7
diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 29617585c5..aa2b4b04f3 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2667,6 +2667,15 @@ int xc_livepatch_replace(xc_interface *xch, char *name, uint32_t timeout, uint32
 int xc_domain_cacheflush(xc_interface *xch, uint32_t domid,
                          xen_pfn_t start_pfn, xen_pfn_t nr_pfns);
 
+/*
+ * Set LLC colors for a domain.
+ * It can only be used directly after domain creation. An attempt to use it
+ * afterwards will result in an error.
+ */
+int xc_domain_set_llc_colors(xc_interface *xch, uint32_t domid,
+                             const unsigned int *llc_colors,
+                             unsigned int num_llc_colors);
+
 #if defined(__arm__) || defined(__aarch64__)
 int xc_dt_overlay(xc_interface *xch, void *overlay_fdt,
                   uint32_t overlay_fdt_size, uint8_t overlay_op);
diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index e3538ec0ba..4ed339e6e4 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -2195,6 +2195,41 @@ int xc_domain_soft_reset(xc_interface *xch,
     domctl.domain = domid;
     return do_domctl(xch, &domctl);
 }
+
+int xc_domain_set_llc_colors(xc_interface *xch, uint32_t domid,
+                             const unsigned int *llc_colors,
+                             unsigned int num_llc_colors)
+{
+    struct xen_domctl domctl = {};
+    DECLARE_HYPERCALL_BUFFER(uint32_t, local);
+    int ret = -1;
+
+    if ( num_llc_colors )
+    {
+        size_t bytes = sizeof(uint32_t) * num_llc_colors;
+
+        local = xc_hypercall_buffer_alloc(xch, local, bytes);
+        if ( local == NULL )
+        {
+            PERROR("Could not allocate LLC colors for set_llc_colors");
+            ret = -ENOMEM;
+            goto out;
+        }
+        memcpy(local, llc_colors, bytes);
+        set_xen_guest_handle(domctl.u.set_llc_colors.llc_colors, local);
+    }
+
+    domctl.cmd = XEN_DOMCTL_set_llc_colors;
+    domctl.domain = domid;
+    domctl.u.set_llc_colors.num_llc_colors = num_llc_colors;
+
+    ret = do_domctl(xch, &domctl);
+
+out:
+    xc_hypercall_buffer_free(xch, local);
+
+    return ret;
+}
 /*
  * Local variables:
  * mode: C
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index edeadd57ef..e03599ea99 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -747,6 +747,24 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
             /* A new domain now exists */
             *domid = local_domid;
 
+            ret = xc_domain_set_llc_colors(ctx->xch, local_domid,
+                                           b_info->llc_colors,
+                                           b_info->num_llc_colors);
+            if (ret < 0) {
+                if (errno == EOPNOTSUPP) {
+                    if (b_info->num_llc_colors > 0) {
+                        LOGED(ERROR, local_domid,
+                            "LLC coloring not enabled in the hypervisor");
+                        rc = ERROR_FAIL;
+                        goto out;
+                    }
+                } else {
+                    LOGED(ERROR, local_domid, "LLC colors allocation failed");
+                    rc = ERROR_FAIL;
+                    goto out;
+                }
+            }
+
             rc = libxl__is_domid_recent(gc, local_domid, &recent);
             if (rc)
                 goto out;
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 4e65e6fda5..bd4b8721ff 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -616,6 +616,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
     ("ioports",          Array(libxl_ioport_range, "num_ioports")),
     ("irqs",             Array(uint32, "num_irqs")),
     ("iomem",            Array(libxl_iomem_range, "num_iomem")),
+    ("llc_colors",       Array(uint32, "num_llc_colors")),
     ("claim_mode",	     libxl_defbool),
     ("event_channels",   uint32),
     ("kernel",           string),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index e3a4800f6e..3d85be7dd4 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1296,7 +1296,7 @@ void parse_config_data(const char *config_source,
     XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *vtpms,
                    *usbctrls, *usbdevs, *p9devs, *vdispls, *pvcallsifs_devs;
     XLU_ConfigList *channels, *ioports, *irqs, *iomem, *viridian, *dtdevs,
-                   *mca_caps, *smbios;
+                   *mca_caps, *smbios, *llc_colors;
     int num_ioports, num_irqs, num_iomem, num_cpus, num_viridian, num_mca_caps;
     int num_smbios;
     int pci_power_mgmt = 0;
@@ -1304,6 +1304,7 @@ void parse_config_data(const char *config_source,
     int pci_permissive = 0;
     int pci_seize = 0;
     int i, e;
+    int num_llc_colors;
     char *kernel_basename;
 
     libxl_domain_create_info *c_info = &d_config->c_info;
@@ -1447,6 +1448,41 @@ void parse_config_data(const char *config_source,
     if (!xlu_cfg_get_long (config, "maxmem", &l, 0))
         b_info->max_memkb = l * 1024;
 
+    if (!xlu_cfg_get_list(config, "llc_colors", &llc_colors, &num_llc_colors, 0)) {
+        int cur_index = 0;
+
+        b_info->num_llc_colors = 0;
+        for (i = 0; i < num_llc_colors; i++) {
+            uint32_t start = 0, end = 0, k;
+
+            buf = xlu_cfg_get_listitem(llc_colors, i);
+            if (!buf) {
+                fprintf(stderr,
+                        "xl: Can't get element %d in LLC color list\n", i);
+                exit(1);
+            }
+
+            if (sscanf(buf, "%" SCNu32 "-%" SCNu32, &start, &end) != 2) {
+                if (sscanf(buf, "%" SCNu32, &start) != 1) {
+                    fprintf(stderr, "xl: Invalid LLC color range: %s\n", buf);
+                    exit(1);
+                }
+                end = start;
+            } else if (start > end) {
+                fprintf(stderr,
+                        "xl: Start LLC color is greater than end: %s\n", buf);
+                exit(1);
+            }
+
+            b_info->num_llc_colors += (end - start) + 1;
+            b_info->llc_colors = (uint32_t *)realloc(b_info->llc_colors,
+                        sizeof(*b_info->llc_colors) * b_info->num_llc_colors);
+
+            for (k = start; k <= end; k++)
+                b_info->llc_colors[cur_index++] = k;
+        }
+    }
+
     if (!xlu_cfg_get_long (config, "vcpus", &l, 0)) {
         vcpus = l;
         if (libxl_cpu_bitmap_alloc(ctx, &b_info->avail_vcpus, l)) {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840128.1255963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOzB-0000k1-3w; Tue, 19 Nov 2024 14:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840128.1255963; Tue, 19 Nov 2024 14: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 1tDOzA-0000im-Pp; Tue, 19 Nov 2024 14:13:44 +0000
Received: by outflank-mailman (input) for mailman id 840128;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz8-0007nQ-Rd
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:42 +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 7a1e6284-a680-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:13:40 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cfadf851e2so4527804a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:40 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 7a1e6284-a680-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdhMWU2Mjg0LWE2ODAtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI1NjIwLjgxMDAyNSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025620; x=1732630420; 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=uer5hFgR43ABSJ0pS6NmbiLoEW2DGJcmVhOAoFMQvSI=;
        b=ndVbMCmDXLre9XSlOBgDiMX/74K7JHmCu4CMFpsaMlhLpD2urExZAsvk18H/k0ZPCQ
         JRuMgyRQOArILSC2bTgQqInC9qQd/BDwPxgNIEB4PMz7gaBs1tSq3J/I8q7+hDBOo36F
         A9FJbR/k4i1X226ewCGOjAi71852p7xduwMX3Ibm52ZyocLdwnf/bLyfBnJleiFYJnEC
         LAfEaw6W5NBufkVUQSMHk568dmpC4prSdPjbj+EtnVu0MOYXwzk40q+HSK2leqz2GfXL
         sTA6tGJCe2xfetaiHPa/1uroghehoFOOBNcjBaoLmBCLmtBh/M8ZpMm7DuDbviK/BncO
         tf2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025620; x=1732630420;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uer5hFgR43ABSJ0pS6NmbiLoEW2DGJcmVhOAoFMQvSI=;
        b=bdl9c8Zgi7rUflWeW5LuGkEgnefPONso2TGzN8LBF4ycxl7vcCKL1Owxft4l/+Dqvd
         512BjQ6O6KMepkzES+WLh1jBN3xMIBJBcJlwk8HSdhB9oqtCKjweJotj5NP0TZLNkq0D
         xdKkAQEF9su4SfXlcmytuZhpoaiED501NmNLcTbPK3cr+F6jhuTDYwU6OXHPXpXwQvYz
         hBYyTkgZsnKZpDqb1oGP9SEJsAnB22iKeK99BFXgY7Mi7CyEqCjb+NZgMo+qc4TSFA2A
         mEknlZtvnZg+PQsMpTtTAmVIs1gzu5A94jztRBYK0BfF0F01q1GgFY8PyOt+JfWEATLu
         i3vA==
X-Gm-Message-State: AOJu0YzBgA03Iuieov9WvNAMx4wc0wqkw0SaSRyInV6EVJW9SnJRkQB3
	U1+Ljdbrl2RUDmCQvS/1WvvDpLZyoDoARVdWL/IV5MsWKAipaLWMgYeDoZiI+auGDqQUvKNXS/5
	3
X-Google-Smtp-Source: AGHT+IH+9A7o5Ci7KbPH6cwZ0XuRuZEcmB8xC+Qsc7y118QKANgbRI7cqELzvF0XD8c7z0NIxCbZHQ==
X-Received: by 2002:a05:6402:50cf:b0:5cf:c99d:2db3 with SMTP id 4fb4d7f45d1cf-5cfc99d2e36mr5847632a12.29.1732025620020;
        Tue, 19 Nov 2024 06:13:40 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 08/12] xen/page_alloc: introduce preserved page flags macro
Date: Tue, 19 Nov 2024 15:13:25 +0100
Message-ID: <20241119141329.44221-9-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

PGC_static, PGC_extra and PGC_broken need to be preserved when assigning a
page. Define a new macro that groups those flags and use it instead of or'ing
every time.

To make preserved flags even more meaningful, they are kept also when
switching state in mark_page_free().
Enforce the removal of PGC_extra before freeing domain pages as this is
considered an error and can cause ASSERT violations.

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
---
v10:
- fixed commit message
v9:
- add PGC_broken to PGC_preserved
- clear PGC_extra in alloc_domheap_pages() only if MEMF_no_refcount is set
v8:
- fixed PGC_extra ASSERT fail in alloc_domheap_pages() by removing PGC_extra
  before freeing
v7:
- PGC_preserved used also in mark_page_free()
v6:
- preserved_flags renamed to PGC_preserved
- PGC_preserved is used only in assign_pages()
v5:
- new patch
---
 xen/common/page_alloc.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 7b911b5ed9..34cd473150 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -160,6 +160,7 @@
 #endif
 
 #define PGC_no_buddy_merge PGC_static
+#define PGC_preserved (PGC_extra | PGC_static | PGC_broken)
 
 #ifndef PGT_TYPE_INFO_INITIALIZER
 #define PGT_TYPE_INFO_INITIALIZER 0
@@ -1427,12 +1428,11 @@ static bool mark_page_free(struct page_info *pg, mfn_t mfn)
     {
     case PGC_state_inuse:
         BUG_ON(pg->count_info & PGC_broken);
-        pg->count_info = PGC_state_free;
+        pg->count_info = PGC_state_free | (pg->count_info & PGC_preserved);
         break;
 
     case PGC_state_offlining:
-        pg->count_info = (pg->count_info & PGC_broken) |
-                         PGC_state_offlined;
+        pg->count_info = (pg->count_info & PGC_preserved) | PGC_state_offlined;
         pg_offlined = true;
         break;
 
@@ -2366,7 +2366,7 @@ int assign_pages(
 
         for ( i = 0; i < nr; i++ )
         {
-            ASSERT(!(pg[i].count_info & ~(PGC_extra | PGC_static)));
+            ASSERT(!(pg[i].count_info & ~PGC_preserved));
             if ( pg[i].count_info & PGC_extra )
                 extra_pages++;
         }
@@ -2426,7 +2426,7 @@ int assign_pages(
         page_set_owner(&pg[i], d);
         smp_wmb(); /* Domain pointer must be visible before updating refcnt. */
         pg[i].count_info =
-            (pg[i].count_info & (PGC_extra | PGC_static)) | PGC_allocated | 1;
+            (pg[i].count_info & PGC_preserved) | PGC_allocated | 1;
 
         page_list_add_tail(&pg[i], page_to_list(d, &pg[i]));
     }
@@ -2485,6 +2485,14 @@ struct page_info *alloc_domheap_pages(
         }
         if ( assign_page(pg, order, d, memflags) )
         {
+            if ( memflags & MEMF_no_refcount )
+            {
+                unsigned long i;
+
+                for ( i = 0; i < (1UL << order); i++ )
+                    pg[i].count_info &= ~PGC_extra;
+            }
+
             free_heap_pages(pg, order, memflags & MEMF_no_scrub);
             return NULL;
         }
@@ -2539,6 +2547,7 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
                 {
                     ASSERT(d->extra_pages);
                     d->extra_pages--;
+                    pg[i].count_info &= ~PGC_extra;
                 }
             }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840129.1255972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOzB-0000oI-Nr; Tue, 19 Nov 2024 14:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840129.1255972; Tue, 19 Nov 2024 14: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 1tDOzB-0000mR-6H; Tue, 19 Nov 2024 14:13:45 +0000
Received: by outflank-mailman (input) for mailman id 840129;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOz9-0007nQ-2V
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:43 +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 79ab61f7-a680-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:13:40 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cfd3a7e377so2124482a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:40 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 79ab61f7-a680-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc5YWI2MWY3LWE2ODAtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI1NjIwLjA3NjI3OCwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025619; x=1732630419; 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=OF+NdGq6KKo6Z559YF1dCAHgEMawghN3gtyuN/F7QAs=;
        b=KNs3yI5HM745Iu3ZLNIspi+WjIUr6D+DDADi5UvIhS+v3ufVOw8zSmA1cjGK8S8k71
         KT5oO+Lk5xB6bsTxPLZaimtTHJyD/gxSJvvfyDAHLRZDF46Z5y1Zj1Jti7nsuW5j3l4M
         7XC57I1839eTXJV5gs+nVt5UeUqubPOLwuqlPZZuFbnK3qfnxwEdNzycldQaMvE8LmKc
         7KUwR3ZGC00tQJQNBAR7QpE4WKE2GMFH+m5Q+nnIQU4YuLXadO7xOiAemFvH+CgMNA7N
         WdWDerFg9M+I4g450iTQrllT9pCZR3GATPUGvTNUGZWqZGgEM3x4mQ598VZZYZYJGswg
         SkDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025619; x=1732630419;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OF+NdGq6KKo6Z559YF1dCAHgEMawghN3gtyuN/F7QAs=;
        b=Z+nIbnq1vRNDsWFGlpp4gbjglYt4SWjqnoRNhQ16CsU3uJecuQdab4EXsyuuOSOWiU
         AkaTqwwTklptMJv/9gQWYz0zJBwey3d3A7xIl8McCmYtYaafi3V8hSnoxRtXNB2Z3EI+
         x6Xko91rmoUhQ6CxvdlDulr3M3AEDUTw6kxDi7IaR4LIm+3iZ4oUxOyoWoXueJw4T9v4
         5Xvgr62zsLMEPNiiDIjgN5XcFMWkJ0uddVEpwSYY3boAYsFFuk8iZQz2u2RAO497ZJIU
         HNhO8ZBSXtRrXlb9iBJ5yX0q756J3jkSwaVV8HbeJy9/mwS++Gufxud1XZJkILgSsihS
         Kl4Q==
X-Gm-Message-State: AOJu0Yz6GtgK4tJBSLyZECZUy0C2pA6oIw7W09TyCxgF92exfbg0Tdxe
	N6e00ztCPi5jcxNH/6opyeksrSwG3yXrb5vj6VhMqIlS/Xx4blXuXm2vWUrM7XKcBty/RzxxBuw
	h
X-Google-Smtp-Source: AGHT+IFpBXGFVUlxmalyDf2+g+zgL41gO1VVhRtyKzsco1NORamtl2AOSR61oPGAm1wyEP4F+9D+BQ==
X-Received: by 2002:a05:6402:34cf:b0:5cf:c268:1b16 with SMTP id 4fb4d7f45d1cf-5cfc2681cb0mr7039810a12.0.1732025619210;
        Tue, 19 Nov 2024 06:13:39 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	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>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v10 07/12] xen/arm: add support for cache coloring configuration via device-tree
Date: Tue, 19 Nov 2024 15:13:24 +0100
Message-ID: <20241119141329.44221-8-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add the "llc-colors" Device Tree attribute to express DomUs and Dom0less
color configurations.

Based on original work from: Luca Miccio <lucmiccio@gmail.com>

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
Reviewed-by: Jan Beulich <jbeulich@suse.com> # non-Arm
---
v10:
- no changes
v9:
- use best-effort allocation in domain_set_llc_colors_from_str()
v8:
- fixed memory leak on error path of domain_set_llc_colors_from_str()
- realloc colors array after parsing from string to reduce memory usage
v7:
- removed alloc_colors() helper usage from domain_set_llc_colors_from_str()
v6:
- rewrote domain_set_llc_colors_from_str() to be more explicit
v5:
- static-mem check has been moved in a previous patch
- added domain_set_llc_colors_from_str() to set colors after domain creation
---
 docs/misc/arm/device-tree/booting.txt |  4 +++
 docs/misc/cache-coloring.rst          | 48 +++++++++++++++++++++++++++
 xen/arch/arm/dom0less-build.c         | 10 ++++++
 xen/common/llc-coloring.c             | 41 +++++++++++++++++++++++
 xen/include/xen/llc-coloring.h        |  1 +
 xen/include/xen/xmalloc.h             | 12 +++++++
 6 files changed, 116 insertions(+)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index 3a04f5c57f..9085645433 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -162,6 +162,10 @@ with the following properties:
 
     An integer specifying the number of vcpus to allocate to the guest.
 
+- llc-colors
+    A string specifying the LLC color configuration for the guest.
+    Refer to docs/misc/cache_coloring.rst for syntax.
+
 - vpl011
 
     An empty property to enable/disable a virtual pl011 for the guest to
diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
index c5fb33996c..c14b6ee2f4 100644
--- a/docs/misc/cache-coloring.rst
+++ b/docs/misc/cache-coloring.rst
@@ -12,6 +12,7 @@ If needed, change the maximum number of colors with
 ``CONFIG_LLC_COLORS_ORDER=<n>``.
 
 Runtime configuration is done via `Command line parameters`_.
+For DomUs follow `DomUs configuration`_.
 
 Background
 **********
@@ -147,6 +148,53 @@ LLC specs can be manually set via the above command line parameters. This
 bypasses any auto-probing and it's used to overcome failing situations, such as
 flawed probing logic, or for debugging/testing purposes.
 
+DomUs configuration
+*******************
+
+DomUs colors can be set either in the ``xl`` configuration file (documentation
+at `docs/man/xl.cfg.pod.5.in`) or via Device Tree, also for Dom0less
+configurations (documentation at `docs/misc/arm/device-tree/booting.txt`) using
+the ``llc-colors`` option. For example:
+
+::
+
+    xen,xen-bootargs = "console=dtuart dtuart=serial0 dom0_mem=1G dom0_max_vcpus=1 sched=null llc-coloring=on dom0-llc-colors=2-6";
+    xen,dom0-bootargs "console=hvc0 earlycon=xen earlyprintk=xen root=/dev/ram0"
+
+    dom0 {
+        compatible = "xen,linux-zimage" "xen,multiboot-module";
+        reg = <0x0 0x1000000 0x0 15858176>;
+    };
+
+    dom0-ramdisk {
+        compatible = "xen,linux-initrd" "xen,multiboot-module";
+        reg = <0x0 0x2000000 0x0 20638062>;
+    };
+
+    domU0 {
+        #address-cells = <0x1>;
+        #size-cells = <0x1>;
+        compatible = "xen,domain";
+        memory = <0x0 0x40000>;
+        llc-colors = "4-8,10,11,12";
+        cpus = <0x1>;
+        vpl011 = <0x1>;
+
+        module@2000000 {
+            compatible = "multiboot,kernel", "multiboot,module";
+            reg = <0x2000000 0xffffff>;
+            bootargs = "console=ttyAMA0";
+        };
+
+        module@30000000 {
+            compatible = "multiboot,ramdisk", "multiboot,module";
+            reg = <0x3000000 0xffffff>;
+        };
+    };
+
+**Note:** If no color configuration is provided for a domain, the default one,
+which corresponds to all available colors is used instead.
+
 Known issues and limitations
 ****************************
 
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 67b1503647..49d1f14d65 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -817,6 +817,7 @@ void __init create_domUs(void)
     bool iommu = false;
     const struct dt_device_node *cpupool_node,
                                 *chosen = dt_find_node_by_path("/chosen");
+    const char *llc_colors_str = NULL;
 
     BUG_ON(chosen == NULL);
     dt_for_each_child_node(chosen, node)
@@ -965,6 +966,10 @@ void __init create_domUs(void)
 #endif
         }
 
+        dt_property_read_string(node, "llc-colors", &llc_colors_str);
+        if ( !llc_coloring_enabled && llc_colors_str )
+            panic("'llc-colors' found, but LLC coloring is disabled\n");
+
         /*
          * The variable max_init_domid is initialized with zero, so here it's
          * very important to use the pre-increment operator to call
@@ -975,6 +980,11 @@ void __init create_domUs(void)
             panic("Error creating domain %s (rc = %ld)\n",
                   dt_node_name(node), PTR_ERR(d));
 
+        if ( llc_coloring_enabled &&
+             (rc = domain_set_llc_colors_from_str(d, llc_colors_str)) )
+            panic("Error initializing LLC coloring for domain %s (rc = %d)\n",
+                  dt_node_name(node), rc);
+
         d->is_console = true;
         dt_device_set_used_by(node, d->domain_id);
 
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 3cfd0ce78c..14e056fb10 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -5,6 +5,7 @@
  * Copyright (C) 2024, Advanced Micro Devices, Inc.
  * Copyright (C) 2024, Minerva Systems SRL
  */
+#include "xen/xmalloc.h"
 #include <xen/guest_access.h>
 #include <xen/keyhandler.h>
 #include <xen/llc-coloring.h>
@@ -270,6 +271,46 @@ void domain_llc_coloring_free(struct domain *d)
     xfree(__va(__pa(d->llc_colors)));
 }
 
+int __init domain_set_llc_colors_from_str(struct domain *d, const char *str)
+{
+    int err;
+    unsigned int *colors, num_colors;
+
+    if ( !str )
+    {
+        domain_set_default_colors(d);
+        return 0;
+    }
+
+    colors = xmalloc_array(unsigned int, max_nr_colors);
+    if ( !colors )
+        return -ENOMEM;
+
+    err = parse_color_config(str, colors, max_nr_colors, &num_colors);
+    if ( err )
+    {
+        printk(XENLOG_ERR "Error parsing LLC color configuration");
+        xfree(colors);
+        return err;
+    }
+
+    if ( !check_colors(colors, num_colors) )
+    {
+        printk(XENLOG_ERR "%pd: bad LLC color config\n", d);
+        xfree(colors);
+        return -EINVAL;
+    }
+
+    /* Adjust the size cause it was initially set to max_nr_colors */
+    d->llc_colors = xrealloc_array(colors, num_colors);
+    if ( !d->llc_colors )
+        d->llc_colors = colors;
+
+    d->num_llc_colors = num_colors;
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
index 657f4d0a10..76d3cbae0e 100644
--- a/xen/include/xen/llc-coloring.h
+++ b/xen/include/xen/llc-coloring.h
@@ -32,6 +32,7 @@ void arch_llc_coloring_init(void);
 int dom0_set_llc_colors(struct domain *d);
 int domain_set_llc_colors(struct domain *d,
                           const struct xen_domctl_set_llc_colors *config);
+int domain_set_llc_colors_from_str(struct domain *d, const char *str);
 
 #endif /* __COLORING_H__ */
 
diff --git a/xen/include/xen/xmalloc.h b/xen/include/xen/xmalloc.h
index b903fa2e26..f0412fb4e0 100644
--- a/xen/include/xen/xmalloc.h
+++ b/xen/include/xen/xmalloc.h
@@ -37,6 +37,9 @@
     ((_type *)_xmalloc_array(sizeof(_type), __alignof__(_type), _num))
 #define xzalloc_array(_type, _num) \
     ((_type *)_xzalloc_array(sizeof(_type), __alignof__(_type), _num))
+#define xrealloc_array(_ptr, _num)                                  \
+    ((typeof(_ptr))_xrealloc_array(_ptr, sizeof(typeof(*(_ptr))),   \
+                                   __alignof__(typeof(*(_ptr))), _num))
 
 /* Allocate space for a structure with a flexible array of typed objects. */
 #define xzalloc_flex_struct(type, field, nr) \
@@ -98,6 +101,15 @@ static inline void *_xzalloc_array(
     return _xzalloc(size * num, align);
 }
 
+static inline void *_xrealloc_array(
+    void *ptr, unsigned long size, unsigned long align, unsigned long num)
+{
+    /* Check for overflow. */
+    if ( size && num > UINT_MAX / size )
+        return NULL;
+    return _xrealloc(ptr, size * num, align);
+}
+
 /*
  * Pooled allocator interface.
  */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840132.1255986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOzD-0001RY-Ii; Tue, 19 Nov 2024 14:13:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840132.1255986; Tue, 19 Nov 2024 14:13: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 1tDOzD-0001PQ-9E; Tue, 19 Nov 2024 14:13:47 +0000
Received: by outflank-mailman (input) for mailman id 840132;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOzC-0007nQ-5X
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:46 +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 7bdee316-a680-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:13:43 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso534548566b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:43 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 7bdee316-a680-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdiZGVlMzE2LWE2ODAtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI1NjIzLjc1MjUxMSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025623; x=1732630423; 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=RBTToxk1mS2YO+DRgnlJpIRDTUsdrx2zjYH3+/dGtOo=;
        b=dTM0jkGWvaFC8UrTNQeC6DpJcrncJQFqMpyka5vAAZoGxqFaraJqekT2w+BQJWF9kI
         lCC7IkqZ0YgxGxIoFEUQtJpVA0jy6x29zhYugD3FXDfSNL1j/Y/BdUsog7kUaE3XMR1i
         ZR2LluL6/bsIDOM33Yfk4mUXsnaOlqCrThHhOO1ONnLr/IOZ7K92mlTYxmopPFjzzQ2y
         ZWKU2nS7KA0WFtYFqKEwMXasd2MznUs80wRIzMHXJ3OWXepIq3aXabRdOPnnxFsjT5dq
         AlwvGIEXdtDgA3zEItNp9ggv8DU7yZVoP53s6tRJarbVWjORcrW6cOtmZe5OK+JgdSGJ
         KFhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025623; x=1732630423;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=RBTToxk1mS2YO+DRgnlJpIRDTUsdrx2zjYH3+/dGtOo=;
        b=dvuMirXauEkcVL8XR7ptD7IQVh/uDMQ5ZpmqpnkDsN7iWWbiJpo9sBsteZxRpFjjrd
         G6cdJ/4gyDEFAaf3AtIOAW59YHlDTUfkLKrFZBVLdkGyJonJd3019dMn42Hyb1rPRVy0
         1hcT75FBY9U/kP56PxGk/4uPRZNL/BG/8yBVNQLh7/666oQ/aYjifzRBCna12ZNyfkSB
         AHw212BOxyfOqMGvuFd7ZgxIwwLtDmyXNOdeWbw1COFGnUivz6dycu7L2KDXzyI4lSLk
         YlWPFHrWQAVsYj3JwgIGJBQ0jbDusGrEOnLpYbKUk+oerm21FVaWVjGwfRSMAOt4Ecxr
         cqCQ==
X-Gm-Message-State: AOJu0YzBfs+hiNm7pshPbrRHwRV+Jvc/bvC5rqIhX9oslr0xV732YhYl
	PDp1BUrFjm4I1t/BemIBM9LehmdFA/kSBQ2Dg5wFK0PMMiN7jVyNCY/11vbgs50dWa1YLa/1Tcm
	R
X-Google-Smtp-Source: AGHT+IFMRHOLGNsHpdORrZp4QFyDo1uPKYlJ7yuXNhNvA+VfLEmK+UhD2tLcEGET2uiEdn+aKRZxRA==
X-Received: by 2002:a17:907:1c8e:b0:a9a:c57f:964f with SMTP id a640c23a62f3a-aa483421690mr1461666866b.16.1732025622890;
        Tue, 19 Nov 2024 06:13:42 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	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 v10 11/12] xen/arm: make consider_modules() available for xen relocation
Date: Tue, 19 Nov 2024 15:13:28 +0100
Message-ID: <20241119141329.44221-12-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Cache coloring must physically relocate Xen in order to color the hypervisor
and consider_modules() is a key function that is needed to find a new
available physical address.

672d67f339c0 ("xen/arm: Split MMU-specific setup_mm() and related code out")
moved consider_modules() under arm32. Move it to mmu/setup.c and make it
non-static so that it can be used outside.

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
---
v10:
- no changes
v9:
- no changes
v8:
- patch adapted to new changes to consider_modules()
v7:
- moved consider_modules() to arm/mmu/setup.c
v6:
- new patch
---
 xen/arch/arm/arm32/mmu/mm.c      | 95 +------------------------------
 xen/arch/arm/include/asm/setup.h |  3 +
 xen/arch/arm/mmu/setup.c         | 97 ++++++++++++++++++++++++++++++++
 3 files changed, 101 insertions(+), 94 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/mm.c b/xen/arch/arm/arm32/mmu/mm.c
index 063611412b..c5fcd19291 100644
--- a/xen/arch/arm/arm32/mmu/mm.c
+++ b/xen/arch/arm/arm32/mmu/mm.c
@@ -9,6 +9,7 @@
 #include <asm/fixmap.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
+#include <asm/setup.h>
 
 static unsigned long opt_xenheap_megabytes __initdata;
 integer_param("xenheap_megabytes", opt_xenheap_megabytes);
@@ -31,100 +32,6 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
     directmap_virt_end = XENHEAP_VIRT_START + nr_mfns * PAGE_SIZE;
 }
 
-/*
- * Returns the end address of the highest region in the range s..e
- * with required size and alignment that does not conflict with the
- * modules from first_mod to nr_modules.
- *
- * For non-recursive callers first_mod should normally be 0 (all
- * modules and Xen itself) or 1 (all modules but not Xen).
- */
-static paddr_t __init consider_modules(paddr_t s, paddr_t e,
-                                       uint32_t size, paddr_t align,
-                                       int first_mod)
-{
-    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
-#ifdef CONFIG_STATIC_SHM
-    const struct membanks *shmem = bootinfo_get_shmem();
-#endif
-    const struct bootmodules *mi = &bootinfo.modules;
-    int i;
-    int nr;
-
-    s = (s+align-1) & ~(align-1);
-    e = e & ~(align-1);
-
-    if ( s > e ||  e - s < size )
-        return 0;
-
-    /* First check the boot modules */
-    for ( i = first_mod; i < mi->nr_mods; i++ )
-    {
-        paddr_t mod_s = mi->module[i].start;
-        paddr_t mod_e = mod_s + mi->module[i].size;
-
-        if ( s < mod_e && mod_s < e )
-        {
-            mod_e = consider_modules(mod_e, e, size, align, i+1);
-            if ( mod_e )
-                return mod_e;
-
-            return consider_modules(s, mod_s, size, align, i+1);
-        }
-    }
-
-    /*
-     * i is the current bootmodule we are evaluating, across all
-     * possible kinds of bootmodules.
-     *
-     * When retrieving the corresponding reserved-memory addresses, we
-     * need to index the reserved_mem bank starting from 0, and only counting
-     * the reserved-memory modules. Hence, we need to use i - nr.
-     */
-    nr = mi->nr_mods;
-    for ( ; i - nr < reserved_mem->nr_banks; i++ )
-    {
-        paddr_t r_s = reserved_mem->bank[i - nr].start;
-        paddr_t r_e = r_s + reserved_mem->bank[i - nr].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            r_e = consider_modules(r_e, e, size, align, i + 1);
-            if ( r_e )
-                return r_e;
-
-            return consider_modules(s, r_s, size, align, i + 1);
-        }
-    }
-
-#ifdef CONFIG_STATIC_SHM
-    nr += reserved_mem->nr_banks;
-    for ( ; i - nr < shmem->nr_banks; i++ )
-    {
-        paddr_t r_s, r_e;
-
-        r_s = shmem->bank[i - nr].start;
-
-        /* Shared memory banks can contain INVALID_PADDR as start */
-        if ( INVALID_PADDR == r_s )
-            continue;
-
-        r_e = r_s + shmem->bank[i - nr].size;
-
-        if ( s < r_e && r_s < e )
-        {
-            r_e = consider_modules(r_e, e, size, align, i + 1);
-            if ( r_e )
-                return r_e;
-
-            return consider_modules(s, r_s, size, align, i + 1);
-        }
-    }
-#endif
-
-    return e;
-}
-
 /*
  * Find a contiguous region that fits in the static heap region with
  * required size and alignment, and return the end address of the region
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 64c227d171..0c560d141f 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -89,6 +89,9 @@ struct init_info
     unsigned int cpuid;
 };
 
+paddr_t consider_modules(paddr_t s, paddr_t e, uint32_t size, paddr_t align,
+                         int first_mod);
+
 #endif
 /*
  * Local variables:
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 9664e85ee6..1cf62390e3 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -6,7 +6,10 @@
  */
 
 #include <xen/init.h>
+#include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/libfdt/libfdt-xen.h>
+#include <xen/llc-coloring.h>
 #include <xen/sections.h>
 #include <xen/sizes.h>
 #include <xen/vmap.h>
@@ -222,6 +225,100 @@ static void xen_pt_enforce_wnx(void)
     flush_xen_tlb_local();
 }
 
+/*
+ * Returns the end address of the highest region in the range s..e
+ * with required size and alignment that does not conflict with the
+ * modules from first_mod to nr_modules.
+ *
+ * For non-recursive callers first_mod should normally be 0 (all
+ * modules and Xen itself) or 1 (all modules but not Xen).
+ */
+paddr_t __init consider_modules(paddr_t s, paddr_t e,
+                                uint32_t size, paddr_t align,
+                                int first_mod)
+{
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+#ifdef CONFIG_STATIC_SHM
+    const struct membanks *shmem = bootinfo_get_shmem();
+#endif
+    const struct bootmodules *mi = &bootinfo.modules;
+    int i;
+    int nr;
+
+    s = (s+align-1) & ~(align-1);
+    e = e & ~(align-1);
+
+    if ( s > e ||  e - s < size )
+        return 0;
+
+    /* First check the boot modules */
+    for ( i = first_mod; i < mi->nr_mods; i++ )
+    {
+        paddr_t mod_s = mi->module[i].start;
+        paddr_t mod_e = mod_s + mi->module[i].size;
+
+        if ( s < mod_e && mod_s < e )
+        {
+            mod_e = consider_modules(mod_e, e, size, align, i+1);
+            if ( mod_e )
+                return mod_e;
+
+            return consider_modules(s, mod_s, size, align, i+1);
+        }
+    }
+
+    /*
+     * i is the current bootmodule we are evaluating, across all
+     * possible kinds of bootmodules.
+     *
+     * When retrieving the corresponding reserved-memory addresses, we
+     * need to index the reserved_mem bank starting from 0, and only counting
+     * the reserved-memory modules. Hence, we need to use i - nr.
+     */
+    nr = mi->nr_mods;
+    for ( ; i - nr < reserved_mem->nr_banks; i++ )
+    {
+        paddr_t r_s = reserved_mem->bank[i - nr].start;
+        paddr_t r_e = r_s + reserved_mem->bank[i - nr].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            r_e = consider_modules(r_e, e, size, align, i + 1);
+            if ( r_e )
+                return r_e;
+
+            return consider_modules(s, r_s, size, align, i + 1);
+        }
+    }
+
+#ifdef CONFIG_STATIC_SHM
+    nr += reserved_mem->nr_banks;
+    for ( ; i - nr < shmem->nr_banks; i++ )
+    {
+        paddr_t r_s, r_e;
+
+        r_s = shmem->bank[i - nr].start;
+
+        /* Shared memory banks can contain INVALID_PADDR as start */
+        if ( INVALID_PADDR == r_s )
+            continue;
+
+        r_e = r_s + shmem->bank[i - nr].size;
+
+        if ( s < r_e && r_s < e )
+        {
+            r_e = consider_modules(r_e, e, size, align, i + 1);
+            if ( r_e )
+                return r_e;
+
+            return consider_modules(s, r_s, size, align, i + 1);
+        }
+    }
+#endif
+
+    return e;
+}
+
 /*
  * Boot-time pagetable setup.
  * Changes here may need matching changes in head.S
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840133.1255993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOzE-0001Y9-5I; Tue, 19 Nov 2024 14:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840133.1255993; Tue, 19 Nov 2024 14:13: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 1tDOzD-0001Wk-Ra; Tue, 19 Nov 2024 14:13:47 +0000
Received: by outflank-mailman (input) for mailman id 840133;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOzC-0007nd-9x
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:46 +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 7b557aec-a680-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:13:42 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5ced377447bso7885388a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:42 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06: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: 7b557aec-a680-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdiNTU3YWVjLWE2ODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1NjIyLjg2MTc1Miwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025622; x=1732630422; 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=3AJ6okQYUIeSH/YkzEeG8TfAqCBqc7r0nOUuYA65Dfs=;
        b=f5J6aQYanOhIGkoVr0o6GGPIVteYK/H42X5CUU7HSKgE1S89ofcdCIxGUmankLslDd
         KlcEdHFJOqlbEj6xsXcCCOooLYZ8WrR2UFIx169kk49/sKT3jYdl6VPQ4/jovqiRJpck
         jA9vlAfyBQ00zbwUHdopQXA1CaoX2AMVihJ4zGFrFfE+95CNj2pZlxwyJvIeIPxcw6Al
         jB07THOR2ta0FA+fRZ0rEBuLKZh3ibmwF6V6Ruz6pNlc1iTiMLpmInIyn4bfgiEMbECD
         AIVDCJldvjhPysXSVVpz7EJmBf2QTGX1kEgQGEEMwfqL0J4DcE+SLhBbS8bPh178OLtQ
         Ri3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025622; x=1732630422;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=3AJ6okQYUIeSH/YkzEeG8TfAqCBqc7r0nOUuYA65Dfs=;
        b=pQRIX+8y3PEP1YPimWMFyqRulYX6ZjBn0/Jnkoub49mf61QciMM7BGOusPGxczPciA
         R8kuiQjX54hhh+6kTwakAR7EpTL+Dpzr9aRcCSZjRJ+ZgdD2EasvehXPqe2J2x/v8MNy
         RG3ng4xgmD83mzMV5H9vFRSYn+DFboQmdTc56X7Fdre06H7k0qgpeCORkIDhlsqP6uR0
         99PRloTbiHMKQWDAndthEbmt2R8pACYgsRwo+0doHnxyBbcUGGgt4VlFsqXrOGO0YUT5
         Fnzf7MMl4tcgEQBhdM+hZWDl6hRkw/IU4W5mSGj/7gDXJu0LE5My0UdLuuEly1Cmod2k
         yM1g==
X-Gm-Message-State: AOJu0YwF/Eflyqwct7X/qjs/D+bpsDlXcn1lhH3OYMgxFI5RXcWK4jvN
	JS/gf98PPfOapjFDd9W9Nusfwu3axjG2Z5ZalbwmeiQehdq4GHoIYy/vixZI46HQ0rdazUaTJBm
	Q
X-Google-Smtp-Source: AGHT+IHQ/5pea+N6U8Ama8taGDG4dsUijf3lo4Y7emSDPUeo9qTcWRL51/89uNTQls715GmOB2CWrg==
X-Received: by 2002:a05:6402:2688:b0:5cf:bfab:f0ca with SMTP id 4fb4d7f45d1cf-5cfbfabf229mr7009224a12.32.1732025621953;
        Tue, 19 Nov 2024 06:13:41 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Luca Miccio <lucmiccio@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Carlo Nonato <carlo.nonato@minervasys.tech>
Subject: [PATCH v10 10/12] xen/arm: add Xen cache colors command line parameter
Date: Tue, 19 Nov 2024 15:13:27 +0100
Message-ID: <20241119141329.44221-11-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Miccio <lucmiccio@gmail.com>

Add a new command line parameter to configure Xen cache colors.
These colors are dumped together with other coloring info.

Benchmarking the VM interrupt response time provides an estimation of
LLC usage by Xen's most latency-critical runtime task. Results on Arm
Cortex-A53 on Xilinx Zynq UltraScale+ XCZU9EG show that one color, which
reserves 64 KiB of L2, is enough to attain best responsiveness:
- Xen 1 color latency:  3.1 us
- Xen 2 color latency:  3.1 us

Since this is the most common target for Arm cache coloring, the default
amount of Xen colors is set to one.

More colors are instead very likely to be needed on processors whose L1
cache is physically-indexed and physically-tagged, such as Cortex-A57.
In such cases, coloring applies to L1 also, and there typically are two
distinct L1-colors. Therefore, reserving only one color for Xen would
senselessly partitions a cache memory that is already private, i.e.
underutilize it.

Signed-off-by: Luca Miccio <lucmiccio@gmail.com>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
v10:
- no changes
v9:
- no changes
v8:
- added bound check on xen_colors in llc_coloring_init()
v7:
- removed XEN_DEFAULT_COLOR
- XEN_DEFAULT_NUM_COLORS is now used in a for loop to set xen default colors
---
 docs/misc/cache-coloring.rst      |  2 ++
 docs/misc/xen-command-line.pandoc | 10 ++++++++++
 xen/common/llc-coloring.c         | 31 ++++++++++++++++++++++++++++++-
 3 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
index 25f015c2de..f967df7360 100644
--- a/docs/misc/cache-coloring.rst
+++ b/docs/misc/cache-coloring.rst
@@ -113,6 +113,8 @@ Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
 +----------------------+-------------------------------+
 | ``buddy-alloc-size`` | Buddy allocator reserved size |
 +----------------------+-------------------------------+
+| ``xen-llc-colors``   | Xen color configuration       |
++----------------------+-------------------------------+
 
 Colors selection format
 ***********************
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 3a70c49c05..992e1f993e 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2923,6 +2923,16 @@ mode.
 **WARNING: `x2apic_phys` is deprecated and superseded by `x2apic-mode`.
 The latter takes precedence if both are set.**
 
+### xen-llc-colors (arm64)
+> `= List of [ <integer> | <integer>-<integer> ]`
+
+> Default: `0: the lowermost color`
+
+Specify Xen LLC color configuration. This options is available only when
+`CONFIG_LLC_COLORING` is enabled.
+Two colors are most likely needed on platforms where private caches are
+physically indexed, e.g. the L1 instruction cache of the Arm Cortex-A57.
+
 ### xenheap_megabytes (arm32)
 > `= <size>`
 
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 6ba9fb72ca..6e7a652884 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -12,6 +12,7 @@
 #include <xen/param.h>
 
 #define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)
+#define XEN_DEFAULT_NUM_COLORS 1
 
 bool __ro_after_init llc_coloring_enabled;
 boolean_param("llc-coloring", llc_coloring_enabled);
@@ -28,6 +29,9 @@ static unsigned int __ro_after_init default_colors[NR_LLC_COLORS];
 static unsigned int __initdata dom0_colors[NR_LLC_COLORS];
 static unsigned int __initdata dom0_num_colors;
 
+static unsigned int __ro_after_init xen_colors[NR_LLC_COLORS];
+static unsigned int __ro_after_init xen_num_colors;
+
 #define mfn_color_mask              (max_nr_colors - 1)
 #define mfn_to_color(mfn)           (mfn_x(mfn) & mfn_color_mask)
 
@@ -86,7 +90,14 @@ static int __init parse_dom0_colors(const char *s)
 }
 custom_param("dom0-llc-colors", parse_dom0_colors);
 
-static void print_colors(const unsigned int colors[], unsigned int num_colors)
+static int __init parse_xen_colors(const char *s)
+{
+    return parse_color_config(s, xen_colors, ARRAY_SIZE(xen_colors),
+                              &xen_num_colors);
+}
+custom_param("xen-llc-colors", parse_xen_colors);
+
+static void print_colors(const unsigned int *colors, unsigned int num_colors)
 {
     unsigned int i;
 
@@ -167,6 +178,22 @@ void __init llc_coloring_init(void)
     for ( i = 0; i < max_nr_colors; i++ )
         default_colors[i] = i;
 
+    if ( !xen_num_colors )
+    {
+        unsigned int i;
+
+        xen_num_colors = MIN(XEN_DEFAULT_NUM_COLORS, max_nr_colors);
+
+        printk(XENLOG_WARNING
+               "Xen LLC color config not found. Using first %u colors\n",
+               xen_num_colors);
+        for ( i = 0; i < xen_num_colors; i++ )
+            xen_colors[i] = i;
+    }
+    else if ( xen_num_colors > max_nr_colors ||
+              !check_colors(xen_colors, xen_num_colors) )
+        panic("Bad LLC color config for Xen\n");
+
     arch_llc_coloring_init();
 }
 
@@ -177,6 +204,8 @@ void dump_llc_coloring_info(void)
 
     printk("LLC coloring info:\n");
     printk("    Number of LLC colors supported: %u\n", max_nr_colors);
+    printk("    Xen LLC colors (%u): ", xen_num_colors);
+    print_colors(xen_colors, xen_num_colors);
 }
 
 void domain_dump_llc_colors(const struct domain *d)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840134.1256006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOzF-0001qm-LJ; Tue, 19 Nov 2024 14:13:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840134.1256006; Tue, 19 Nov 2024 14:13: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 1tDOzE-0001ov-V4; Tue, 19 Nov 2024 14:13:48 +0000
Received: by outflank-mailman (input) for mailman id 840134;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOzD-0007nd-A2
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:47 +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 7abe0fae-a680-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:13:41 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a9e8522c10bso883628366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:41 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 7abe0fae-a680-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdhYmUwZmFlLWE2ODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1NjIxLjg5NjI1Miwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025621; x=1732630421; 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=VkAgXKh8Koi8z5n6i/kl9t7Sp2mlO1uEGFbwkt4m0bI=;
        b=O5pHYf8/Cux4i/d76RnDN7v/5Ql7QW43HWXjJTYpG1I9ULcsggkiJhbgKEnH4RfNAs
         N9Mv7wGE30tPjgb7LQHcQB33n0AbUz9ytJ/d920f1jJhCorTi9yOU6fFvpes1mrTeGkf
         extQ5AbtxtfaW0k4gddajGmQ3IkJle8QqJfzV0T+jgM4qYiRQ9ek2NWuk8haqDZLPiqf
         ktbji1TLQDLKlOKCap1Wf/WxX2eTsAu+1WC1bOP1PqcAppt3FZYwtwzKrHv7QmiGEApJ
         VmsWtycH9UGq6qlMyVoyy/wFmZmE/ceaAcxg5kVb3mK6NwIQWRNQA+Zx2YxGdK2JlhJs
         Cq6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025621; x=1732630421;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=VkAgXKh8Koi8z5n6i/kl9t7Sp2mlO1uEGFbwkt4m0bI=;
        b=M5qMctarLUwhCBDfnKpOrn4sLYvzwUpQm2EboAHOq37dIpiOB35e5Z02z8UTkSFsH0
         mE/CFDAWh5Q53yelphWycnowmQ0qDyTX7aVX++VPBSHOm/FuwLTuCpTzWto9a/O+Kj65
         8hhMh/i9sCFc9hd1nQ6OY4nr1CkYA8unwjSlF2p/RG1Z0JewXr0g+vA32fAufOZE0a72
         UcpfpvmRP9yQrcVPVwT/3+kcQxbKuv0zbRRL7W6vd3NHjF9CVZp4F7JCCOIq0ErZFeNz
         ZatroCUX+gCoYW06GpZRvDbfG36wdXxy4XWKYJXMkHxIN828Pnb+ijcuRc4CBgfQX28b
         6tww==
X-Gm-Message-State: AOJu0Yxft/1bqumcQPHb7yDS1dLgPHuJPmDgrBAftJ9SdzckPfwYKECG
	ibKF4Cy2SZ4a1hLMXNcmsYigNjJ0etccl0MOqEIPzpI9fUJxD+c69muZM1GJHJ8FwG8XfUYDAMD
	a
X-Google-Smtp-Source: AGHT+IE11x0rEusCWHz6Ptg1lf4VWi8EAPIBSA/VB5+51c7m9FLkGII7BQHg++zMYMeVEgYq+kASJQ==
X-Received: by 2002:a17:907:3687:b0:a99:f777:c6ef with SMTP id a640c23a62f3a-aa4c7dfd87fmr377303066b.3.1732025621004;
        Tue, 19 Nov 2024 06:13:41 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [PATCH v10 09/12] xen: add cache coloring allocator for domains
Date: Tue, 19 Nov 2024 15:13:26 +0100
Message-ID: <20241119141329.44221-10-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a new memory page allocator that implements the cache coloring mechanism.
The allocation algorithm enforces equal frequency distribution of cache
partitions, following the coloring configuration of a domain. This allows
for an even utilization of cache sets for every domain.

Pages are stored in a color-indexed array of lists. Those lists are filled
by a simple init function which computes the color of each page.
When a domain requests a page, the allocator extracts the page from the list
with the maximum number of free pages among those that the domain can access,
given its coloring configuration.

The allocator can only handle requests of order-0 pages. This allows for
easier implementation and since cache coloring targets only embedded systems,
it's assumed not to be a major problem.

The buddy allocator must coexist with the colored one because the Xen heap
isn't colored. For this reason a new Kconfig option and a command line
parameter are added to let the user set the amount of memory reserved for
the buddy allocator. Even when cache coloring is enabled, this memory
isn't managed by the colored allocator.

Colored heap information is dumped in the dump_heap() debug-key function.

Based on original work from: Luca Miccio <lucmiccio@gmail.com>

Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
---
v10:
- stated explicit dependency on CONFIG_LLC_COLORING for buddy-alloc-size
- fix for MISRA rule 20.7 parenthesis
v9:
- added ASSERT(order == 0) when freeing a colored page
- moved buddy_alloc_size initialization logic in Kconfig
v8:
- requests that uses MEMF_* flags that can't be served are now going to fail
- free_color_heap_page() is called directly from free_heap_pages()
v7:
- requests to alloc_color_heap_page() now fail if MEMF_bits is used
v6:
- colored allocator functions are now static
v5:
- Carlo Nonato as the new author
- the colored allocator balances color usage for each domain and it searches
  linearly only in the number of colors (FIXME removed)
- addedd scrub functionality
- removed stub functions (still requires some macro definition)
- addr_to_color turned to mfn_to_color for easier operations
- removed BUG_ON in init_color_heap_pages() in favor of panic()
- only non empty page lists are logged in dump_color_heap()
v4:
- moved colored allocator code after buddy allocator because it now has
  some dependencies on buddy functions
- buddy_alloc_size is now used only by the colored allocator
- fixed a bug that allowed the buddy to merge pages when they were colored
- free_color_heap_page() now calls mark_page_free()
- free_color_heap_page() uses of the frametable array for faster searches
- added FIXME comment for the linear search in free_color_heap_page()
- removed alloc_color_domheap_page() to let the colored allocator exploit
  some more buddy allocator code
- alloc_color_heap_page() now allocs min address pages first
- reduced the mess in end_boot_allocator(): use the first loop for
  init_color_heap_pages()
- fixed page_list_add_prev() (list.h) since it was doing the opposite of
  what it was supposed to do
- fixed page_list_add_prev() (non list.h) to check also for next existence
- removed unused page_list_add_next()
- moved p2m code in another patch
---
 docs/misc/cache-coloring.rst      |  37 ++++++
 docs/misc/xen-command-line.pandoc |  14 +++
 xen/arch/arm/include/asm/mm.h     |   5 +
 xen/common/Kconfig                |   8 ++
 xen/common/llc-coloring.c         |  13 +++
 xen/common/page_alloc.c           | 188 +++++++++++++++++++++++++++++-
 xen/include/xen/llc-coloring.h    |   4 +
 7 files changed, 265 insertions(+), 4 deletions(-)

diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
index c14b6ee2f4..25f015c2de 100644
--- a/docs/misc/cache-coloring.rst
+++ b/docs/misc/cache-coloring.rst
@@ -11,6 +11,9 @@ To compile LLC coloring support set ``CONFIG_LLC_COLORING=y``.
 If needed, change the maximum number of colors with
 ``CONFIG_LLC_COLORS_ORDER=<n>``.
 
+If needed, change the buddy allocator reserved size with
+``CONFIG_BUDDY_ALLOCATOR_SIZE=<n>``.
+
 Runtime configuration is done via `Command line parameters`_.
 For DomUs follow `DomUs configuration`_.
 
@@ -108,6 +111,8 @@ Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
 +----------------------+-------------------------------+
 | ``dom0-llc-colors``  | Dom0 color configuration      |
 +----------------------+-------------------------------+
+| ``buddy-alloc-size`` | Buddy allocator reserved size |
++----------------------+-------------------------------+
 
 Colors selection format
 ***********************
@@ -195,6 +200,17 @@ the ``llc-colors`` option. For example:
 **Note:** If no color configuration is provided for a domain, the default one,
 which corresponds to all available colors is used instead.
 
+Colored allocator and buddy allocator
+*************************************
+
+The colored allocator distributes pages based on color configurations of
+domains so that each domains only gets pages of its own colors.
+The colored allocator is meant as an alternative to the buddy allocator because
+its allocation policy is by definition incompatible with the generic one. Since
+the Xen heap is not colored yet, we need to support the coexistence of the two
+allocators and some memory must be left for the buddy one. Buddy memory
+reservation is configured via Kconfig or via command-line.
+
 Known issues and limitations
 ****************************
 
@@ -205,3 +221,24 @@ In the domain configuration, "xen,static-mem" allows memory to be statically
 allocated to the domain. This isn't possible when LLC coloring is enabled,
 because that memory can't be guaranteed to use only colors assigned to the
 domain.
+
+Cache coloring is intended only for embedded systems
+####################################################
+
+The current implementation aims to satisfy the need of predictability in
+embedded systems with small amount of memory to be managed in a colored way.
+Given that, some shortcuts are taken in the development. Expect worse
+performances on larger systems.
+
+Colored allocator can only make use of order-0 pages
+####################################################
+
+The cache coloring technique relies on memory mappings and on the smallest
+mapping granularity to achieve the maximum number of colors (cache partitions)
+possible. This granularity is what is normally called a page and, in Xen
+terminology, the order-0 page is the smallest one. The fairly simple
+colored allocator currently implemented, makes use only of such pages.
+It must be said that a more complex one could, in theory, adopt higher order
+pages if the colors selection contained adjacent colors. Two subsequent colors,
+for example, can be represented by an order-1 page, four colors correspond to
+an order-2 page, etc.
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index bfdc8b0002..3a70c49c05 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -270,6 +270,20 @@ and not running softirqs. Reduce this if softirqs are not being run frequently
 enough. Setting this to a high value may cause boot failure, particularly if
 the NMI watchdog is also enabled.
 
+### buddy-alloc-size (arm64)
+> `= <size>`
+
+> Default: `64M`
+
+Amount of memory reserved for the buddy allocator when colored allocator is
+active. This option is available only when `CONFIG_LLC_COLORING` is enabled.
+The colored allocator is meant as an alternative to the buddy allocator,
+because its allocation policy is by definition incompatible with the generic
+one. Since the Xen heap systems is not colored yet, we need to support the
+coexistence of the two allocators for now. This parameter, which is optional
+and for expert only, it's used to set the amount of memory reserved to the
+buddy allocator.
+
 ### cet
     = List of [ shstk=<bool>, ibt=<bool> ]
 
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 5abd4b0d1c..c1a5ac7bee 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -145,6 +145,11 @@ struct page_info
 #else
 #define PGC_static     0
 #endif
+#ifdef CONFIG_LLC_COLORING
+/* Page is cache colored */
+#define _PGC_colored      PG_shift(4)
+#define PGC_colored       PG_mask(1, 4)
+#endif
 /* ... */
 /* Page is broken? */
 #define _PGC_broken       PG_shift(7)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index b4ec6893be..bbd4738d4e 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -537,4 +537,12 @@ config LLC_COLORS_ORDER
 	  The default value corresponds to an 8 MiB 16-ways LLC, which should be
 	  more than what's needed in the general case.
 
+config BUDDY_ALLOCATOR_SIZE
+	int "Buddy allocator reserved memory size (MiB)" if LLC_COLORING
+	default "0" if !LLC_COLORING
+	default "64"
+	help
+	  Amount of memory reserved for the buddy allocator to serve Xen heap,
+	  working alongside the colored one.
+
 endmenu
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 14e056fb10..6ba9fb72ca 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -28,6 +28,9 @@ static unsigned int __ro_after_init default_colors[NR_LLC_COLORS];
 static unsigned int __initdata dom0_colors[NR_LLC_COLORS];
 static unsigned int __initdata dom0_num_colors;
 
+#define mfn_color_mask              (max_nr_colors - 1)
+#define mfn_to_color(mfn)           (mfn_x(mfn) & mfn_color_mask)
+
 /*
  * Parse the coloring configuration given in the buf string, following the
  * syntax below.
@@ -311,6 +314,16 @@ int __init domain_set_llc_colors_from_str(struct domain *d, const char *str)
     return 0;
 }
 
+unsigned int page_to_llc_color(const struct page_info *pg)
+{
+    return mfn_to_color(page_to_mfn(pg));
+}
+
+unsigned int get_max_nr_llc_colors(void)
+{
+    return max_nr_colors;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 34cd473150..27431a9bd2 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -159,8 +159,12 @@
 #define PGC_static 0
 #endif
 
-#define PGC_no_buddy_merge PGC_static
-#define PGC_preserved (PGC_extra | PGC_static | PGC_broken)
+#ifndef PGC_colored
+#define PGC_colored 0
+#endif
+
+#define PGC_no_buddy_merge (PGC_static | PGC_colored)
+#define PGC_preserved (PGC_extra | PGC_static | PGC_broken | PGC_colored)
 
 #ifndef PGT_TYPE_INFO_INITIALIZER
 #define PGT_TYPE_INFO_INITIALIZER 0
@@ -1457,6 +1461,8 @@ static bool mark_page_free(struct page_info *pg, mfn_t mfn)
     return pg_offlined;
 }
 
+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)
@@ -1481,6 +1487,15 @@ static void free_heap_pages(
             pg[i].count_info |= PGC_need_scrub;
             poison_one_page(&pg[i]);
         }
+
+        if ( pg->count_info & PGC_colored )
+        {
+            ASSERT(order == 0);
+
+            free_color_heap_page(pg, need_scrub);
+            spin_unlock(&heap_lock);
+            return;
+        }
     }
 
     avail[node][zone] += 1 << order;
@@ -1945,6 +1960,155 @@ static unsigned long avail_heap_pages(
     return free_pages;
 }
 
+/*************************
+ * COLORED SIDE-ALLOCATOR
+ *
+ * Pages are grouped by LLC color in lists which are globally referred to as the
+ * color heap. Lists are populated in end_boot_allocator().
+ * After initialization there will be N lists where N is the number of
+ * available colors on the platform.
+ */
+static struct page_list_head *__ro_after_init _color_heap;
+#define color_heap(color) (&_color_heap[color])
+
+static unsigned long *__ro_after_init free_colored_pages;
+
+/* Memory required for buddy allocator to work with colored one */
+static unsigned long __initdata buddy_alloc_size =
+    MB(CONFIG_BUDDY_ALLOCATOR_SIZE);
+size_param("buddy-alloc-size", buddy_alloc_size);
+
+#ifdef CONFIG_LLC_COLORING
+#define domain_num_llc_colors(d) ((d)->num_llc_colors)
+#define domain_llc_color(d, i)   ((d)->llc_colors[i])
+#else
+#define domain_num_llc_colors(d) 0
+#define domain_llc_color(d, i)   0
+#endif
+
+static void free_color_heap_page(struct page_info *pg, bool need_scrub)
+{
+    unsigned int color;
+
+    color = page_to_llc_color(pg);
+    free_colored_pages[color]++;
+    /*
+     * Head insertion allows re-using cache-hot pages in configurations without
+     * sharing of colors.
+     */
+    page_list_add(pg, color_heap(color));
+}
+
+static struct page_info *alloc_color_heap_page(unsigned int memflags,
+                                               const struct domain *d)
+{
+    struct page_info *pg = NULL;
+    unsigned int i, color = 0;
+    unsigned long max = 0;
+    bool need_tlbflush = false;
+    uint32_t tlbflush_timestamp = 0;
+    bool need_scrub;
+
+    if ( memflags & ~(MEMF_no_refcount | MEMF_no_owner | MEMF_no_tlbflush |
+                      MEMF_no_icache_flush | MEMF_no_scrub) )
+        return NULL;
+
+    spin_lock(&heap_lock);
+
+    for ( i = 0; i < domain_num_llc_colors(d); i++ )
+    {
+        unsigned long free = free_colored_pages[domain_llc_color(d, i)];
+
+        if ( free > max )
+        {
+            color = domain_llc_color(d, i);
+            pg = page_list_first(color_heap(color));
+            max = free;
+        }
+    }
+
+    if ( !pg )
+    {
+        spin_unlock(&heap_lock);
+        return NULL;
+    }
+
+    need_scrub = pg->count_info & PGC_need_scrub;
+    pg->count_info = PGC_state_inuse | (pg->count_info & PGC_preserved);
+    free_colored_pages[color]--;
+    page_list_del(pg, color_heap(color));
+
+    if ( !(memflags & MEMF_no_tlbflush) )
+        accumulate_tlbflush(&need_tlbflush, pg, &tlbflush_timestamp);
+
+    init_free_page_fields(pg);
+
+    spin_unlock(&heap_lock);
+
+    if ( !(memflags & MEMF_no_scrub) )
+    {
+        if ( need_scrub )
+            scrub_one_page(pg);
+        else
+            check_one_page(pg);
+    }
+
+    if ( need_tlbflush )
+        filtered_flush_tlb_mask(tlbflush_timestamp);
+
+    flush_page_to_ram(mfn_x(page_to_mfn(pg)),
+                      !(memflags & MEMF_no_icache_flush));
+
+    return pg;
+}
+
+static void __init init_color_heap_pages(struct page_info *pg,
+                                         unsigned long nr_pages)
+{
+    unsigned int i;
+    bool need_scrub = opt_bootscrub == BOOTSCRUB_IDLE;
+
+    if ( buddy_alloc_size >= PAGE_SIZE )
+    {
+        unsigned long buddy_pages = min(PFN_DOWN(buddy_alloc_size), nr_pages);
+
+        init_heap_pages(pg, buddy_pages);
+        nr_pages -= buddy_pages;
+        buddy_alloc_size -= buddy_pages << PAGE_SHIFT;
+        pg += buddy_pages;
+    }
+
+    if ( !_color_heap )
+    {
+        unsigned int max_nr_colors = get_max_nr_llc_colors();
+
+        _color_heap = xmalloc_array(struct page_list_head, max_nr_colors);
+        free_colored_pages = xzalloc_array(unsigned long, max_nr_colors);
+        if ( !_color_heap || !free_colored_pages )
+            panic("Can't allocate colored heap. Buddy reserved size is too low");
+
+        for ( i = 0; i < max_nr_colors; i++ )
+            INIT_PAGE_LIST_HEAD(color_heap(i));
+    }
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        pg[i].count_info = PGC_colored;
+        free_color_heap_page(&pg[i], need_scrub);
+    }
+}
+
+static void dump_color_heap(void)
+{
+    unsigned int color;
+
+    printk("Dumping color heap info\n");
+    for ( color = 0; color < get_max_nr_llc_colors(); color++ )
+        if ( free_colored_pages[color] > 0 )
+            printk("Color heap[%u]: %lu pages\n",
+                   color, free_colored_pages[color]);
+}
+
 void __init end_boot_allocator(void)
 {
     unsigned int i;
@@ -1964,7 +2128,13 @@ void __init end_boot_allocator(void)
     for ( i = nr_bootmem_regions; i-- > 0; )
     {
         struct bootmem_region *r = &bootmem_region_list[i];
-        if ( r->s < r->e )
+
+        if ( r->s >= r->e )
+            continue;
+
+        if ( llc_coloring_enabled )
+            init_color_heap_pages(mfn_to_page(_mfn(r->s)), r->e - r->s);
+        else
             init_heap_pages(mfn_to_page(_mfn(r->s)), r->e - r->s);
     }
     nr_bootmem_regions = 0;
@@ -2460,7 +2630,14 @@ struct page_info *alloc_domheap_pages(
     if ( memflags & MEMF_no_owner )
         memflags |= MEMF_no_refcount;
 
-    if ( !dma_bitsize )
+    /* Only domains are supported for coloring */
+    if ( d && llc_coloring_enabled )
+    {
+        /* Colored allocation must be done on 0 order */
+        if ( order || (pg = alloc_color_heap_page(memflags, d)) == NULL )
+            return NULL;
+    }
+    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);
@@ -2686,6 +2863,9 @@ static void cf_check dump_heap(unsigned char key)
             continue;
         printk("Node %d has %lu unscrubbed pages\n", i, node_need_scrub[i]);
     }
+
+    if ( llc_coloring_enabled )
+        dump_color_heap();
 }
 
 static __init int cf_check register_heap_trigger(void)
diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
index 76d3cbae0e..90daf214cd 100644
--- a/xen/include/xen/llc-coloring.h
+++ b/xen/include/xen/llc-coloring.h
@@ -34,6 +34,10 @@ int domain_set_llc_colors(struct domain *d,
                           const struct xen_domctl_set_llc_colors *config);
 int domain_set_llc_colors_from_str(struct domain *d, const char *str);
 
+struct page_info;
+unsigned int page_to_llc_color(const struct page_info *pg);
+unsigned int get_max_nr_llc_colors(void);
+
 #endif /* __COLORING_H__ */
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:13:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:13:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840136.1256021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDOzI-0002aF-0N; Tue, 19 Nov 2024 14:13:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840136.1256021; Tue, 19 Nov 2024 14:13: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 1tDOzH-0002Yz-Ru; Tue, 19 Nov 2024 14:13:51 +0000
Received: by outflank-mailman (input) for mailman id 840136;
 Tue, 19 Nov 2024 14:13: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDOzF-0007nd-Nb
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:13:49 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c8d92c1-a680-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:13:44 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2ff550d37a6so12281521fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:13:44 -0800 (PST)
Received: from carlo-ubuntu.home.arpa
 (host-95-230-250-178.business.telecomitalia.it. [95.230.250.178])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm655228166b.42.2024.11.19.06.13.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:13: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: 7c8d92c1-a680-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmQiLCJoZWxvIjoibWFpbC1sajEteDIyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdjOGQ5MmMxLWE2ODAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI1NjI0Ljg4MTk2NSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732025624; x=1732630424; 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=sIzn16Kzx1OAqbREsuzLO9Z1PTTznhR63PBiSsjzj3E=;
        b=cRtdXIMdmELj0JBNCvsvq8jeAbb1vzbY3fv/OpYKphaerQIEbZamR+seybANpaPDWF
         mWQ3uk6NoJXbLEtC6vKMf+7/yHqXZv7BZ0lWAwsfdFu5PUL880fzRejyl53rkfP2c1ic
         oEamNnghdwe+e1O4MOxplmx0DfsDvhI+T/5KP781zndfQM45ZC43zRrwJrDVu1A+zhYs
         iz7HxaFzPTYDskWSwxC7TPrnf2lAr+J6ng9uTDd3tYdeM6oKDmOxbQQBsFX847hc1IeT
         M0wzmSD0HNhuBehk7epn17IVOzDi2FxbTC81bKmF3w2QNkkcaBRSx5PJR9Zjt00Q8wzt
         9V+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732025624; x=1732630424;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sIzn16Kzx1OAqbREsuzLO9Z1PTTznhR63PBiSsjzj3E=;
        b=Zf3FjydCoB7txI4GTAayQ/eh2jXQqMZY3o7yoP3dWIVO8FQ5Xe+mSQ16xmA7ZXk8Q3
         +D8URYBGU/cJoUUVPipc9WHzFxxAVChyuNBvNoC+jddXkhdttbItsMwm6PsN2WMt+un/
         8RIrvd0xbv8ymvyxiZ3RqTn2SCPPXp1Zhbs2C9hNDZTAo5xBN1uMwI7FC4KBlDxc1Xlk
         GJ2fbRJ1AdGc2/tEJFOtdM818zm5DDoewF4Zc8tYoQWxLyJB7J+gEN6pw6tMEzP9MZGo
         TJfD8/lE1AbYQCfj39nINyFsjMn2VL4a5aOc2hSj6aNO6uqc0qEAe8OmmmSgj6tZbVK0
         dLTg==
X-Gm-Message-State: AOJu0YyRI0QIMHkpPMP6TNr8q0sOR8aXGkzQNqQN0ZR+GXx5MYTNHkPq
	k/p/okqSdA4qIXBFBnXPmNrRPSiy3kHekqJrVXMA1dX8xkAuwFWMAtun/zWwzMBnCq9wrkRa+7W
	k
X-Google-Smtp-Source: AGHT+IGsSkdVD6oSuZgmlkqrPldLeWrJOBZ0eWPwYhHZgQYHC9G85by8VIFzILuEPsYnRS3CChAB4A==
X-Received: by 2002:a05:651c:1543:b0:2fc:b10c:df4 with SMTP id 38308e7fff4ca-2ff6093369fmr69936461fa.20.1732025623871;
        Tue, 19 Nov 2024 06:13:43 -0800 (PST)
From: Carlo Nonato <carlo.nonato@minervasys.tech>
To: xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech,
	marco.solieri@minervasys.tech,
	Carlo Nonato <carlo.nonato@minervasys.tech>,
	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>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v10 12/12] xen/arm: add cache coloring support for Xen
Date: Tue, 19 Nov 2024 15:13:29 +0100
Message-ID: <20241119141329.44221-13-carlo.nonato@minervasys.tech>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add the cache coloring support for Xen physical space.

Since Xen must be relocated to a new physical space, some relocation
functionalities must be brought back:
- the virtual address of the new space is taken from 0c18fb76323b
  ("xen/arm: Remove unused BOOT_RELOC_VIRT_START").
- relocate_xen() and get_xen_paddr() are taken from f60658c6ae47
  ("xen/arm: Stop relocating Xen").

setup_pagetables() must be adapted for coloring and for relocation. Runtime
page tables are used to map the colored space, but they are also linked in
boot tables so that the new space is temporarily available for relocation.
This implies that Xen protection must happen after the copy.

Finally, since the alternative framework needs to remap the Xen text and
inittext sections, this operation must be done in a coloring-aware way.
The function xen_remap_colored() is introduced for that.

Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
---
v10:
- no changes
v9:
- patch adapted to changes to setup_pagetables()
v8:
- moved xen_colored_map_size() to arm/llc-coloring.c
v7:
- added BUG_ON() checks to arch_llc_coloring_init() and
  create_llc_coloring_mappings()
v6:
- squashed with BOOT_RELOC_VIRT_START patch
- consider_modules() moved in another patch
- removed psci and smpboot code because of new idmap work already handles that
- moved xen_remap_colored() in alternative.c since it's only used there
- removed xen_colored_temp[] in favor of xen_xenmap[] usage for mapping
- use of boot_module_find_by_kind() to remove the need of extra parameter in
  setup_pagetables()
- moved get_xen_paddr() in arm/llc-coloring.c since it's only used there
v5:
- FIXME: consider_modules copy pasted since it got moved
v4:
- removed set_value_for_secondary() because it was wrongly cleaning cache
- relocate_xen() now calls switch_ttbr_id()
---
 xen/arch/arm/alternative.c            | 30 +++++++-
 xen/arch/arm/arm64/mmu/head.S         | 58 +++++++++++++++-
 xen/arch/arm/arm64/mmu/mm.c           | 28 ++++++--
 xen/arch/arm/include/asm/mmu/layout.h |  3 +
 xen/arch/arm/llc-coloring.c           | 63 +++++++++++++++++
 xen/arch/arm/mmu/setup.c              | 98 +++++++++++++++++++++++----
 xen/arch/arm/setup.c                  | 10 ++-
 xen/common/llc-coloring.c             | 18 +++++
 xen/include/xen/llc-coloring.h        | 13 ++++
 9 files changed, 300 insertions(+), 21 deletions(-)

diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c
index d99b507093..0fcf4e451d 100644
--- a/xen/arch/arm/alternative.c
+++ b/xen/arch/arm/alternative.c
@@ -9,6 +9,7 @@
 #include <xen/init.h>
 #include <xen/types.h>
 #include <xen/kernel.h>
+#include <xen/llc-coloring.h>
 #include <xen/mm.h>
 #include <xen/vmap.h>
 #include <xen/smp.h>
@@ -191,6 +192,27 @@ static int __apply_alternatives_multi_stop(void *xenmap)
     return 0;
 }
 
+static void __init *xen_remap_colored(mfn_t xen_mfn, paddr_t xen_size)
+{
+    unsigned int i;
+    void *xenmap;
+    mfn_t *xen_colored_mfns, mfn;
+
+    xen_colored_mfns = xmalloc_array(mfn_t, xen_size >> PAGE_SHIFT);
+    if ( !xen_colored_mfns )
+        panic("Can't allocate LLC colored MFNs\n");
+
+    for_each_xen_colored_mfn ( xen_mfn, mfn, i )
+    {
+        xen_colored_mfns[i] = mfn;
+    }
+
+    xenmap = vmap(xen_colored_mfns, xen_size >> PAGE_SHIFT);
+    xfree(xen_colored_mfns);
+
+    return xenmap;
+}
+
 /*
  * This function should only be called during boot and before CPU0 jump
  * into the idle_loop.
@@ -209,8 +231,12 @@ void __init apply_alternatives_all(void)
      * The text and inittext section are read-only. So re-map Xen to
      * be able to patch the code.
      */
-    xenmap = __vmap(&xen_mfn, 1U << xen_order, 1, 1, PAGE_HYPERVISOR,
-                    VMAP_DEFAULT);
+    if ( llc_coloring_enabled )
+        xenmap = xen_remap_colored(xen_mfn, xen_size);
+    else
+        xenmap = __vmap(&xen_mfn, 1U << xen_order, 1, 1, PAGE_HYPERVISOR,
+                        VMAP_DEFAULT);
+
     /* Re-mapping Xen is not expected to fail during boot. */
     BUG_ON(!xenmap);
 
diff --git a/xen/arch/arm/arm64/mmu/head.S b/xen/arch/arm/arm64/mmu/head.S
index 665a51a337..a1fc9a82f1 100644
--- a/xen/arch/arm/arm64/mmu/head.S
+++ b/xen/arch/arm/arm64/mmu/head.S
@@ -428,6 +428,61 @@ FUNC_LOCAL(fail)
         b     1b
 END(fail)
 
+/*
+ * Copy Xen to new location and switch TTBR
+ * x0    ttbr
+ * x1    source address
+ * x2    destination address
+ * x3    length
+ *
+ * Source and destination must be word aligned, length is rounded up
+ * to a 16 byte boundary.
+ *
+ * MUST BE VERY CAREFUL when saving things to RAM over the copy
+ */
+ENTRY(relocate_xen)
+        /*
+         * Copy 16 bytes at a time using:
+         *   x9: counter
+         *   x10: data
+         *   x11: data
+         *   x12: source
+         *   x13: destination
+         */
+        mov     x9, x3
+        mov     x12, x1
+        mov     x13, x2
+
+1:      ldp     x10, x11, [x12], #16
+        stp     x10, x11, [x13], #16
+
+        subs    x9, x9, #16
+        bgt     1b
+
+        /*
+         * Flush destination from dcache using:
+         *   x9: counter
+         *   x10: step
+         *   x11: vaddr
+         *
+         * This is to ensure data is visible to the instruction cache
+         */
+        dsb   sy
+
+        mov   x9, x3
+        ldr   x10, =dcache_line_bytes /* x10 := step */
+        ldr   x10, [x10]
+        mov   x11, x2
+
+1:      dc    cvac, x11
+
+        add   x11, x11, x10
+        subs  x9, x9, x10
+        bgt   1b
+
+        /* No need for dsb/isb because they are alredy done in switch_ttbr_id */
+        b switch_ttbr_id
+
 /*
  * Switch TTBR
  *
@@ -453,7 +508,8 @@ FUNC(switch_ttbr_id)
 
         /*
          * 5) Flush I-cache
-         * This should not be necessary but it is kept for safety.
+         * This should not be necessary in the general case, but it's needed
+         * for cache coloring because code is relocated in that case.
          */
         ic     iallu
         isb
diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index 671eaadbc1..3732d5897e 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <xen/init.h>
+#include <xen/llc-coloring.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
 
@@ -138,27 +139,46 @@ void update_boot_mapping(bool enable)
 }
 
 extern void switch_ttbr_id(uint64_t ttbr);
+extern void relocate_xen(uint64_t ttbr, void *src, void *dst, size_t len);
 
 typedef void (switch_ttbr_fn)(uint64_t ttbr);
+typedef void (relocate_xen_fn)(uint64_t ttbr, void *src, void *dst, size_t len);
 
 void __init switch_ttbr(uint64_t ttbr)
 {
-    vaddr_t id_addr = virt_to_maddr(switch_ttbr_id);
-    switch_ttbr_fn *fn = (switch_ttbr_fn *)id_addr;
+    vaddr_t vaddr, id_addr;
     lpae_t pte;
 
+    if ( llc_coloring_enabled )
+        vaddr = (vaddr_t)relocate_xen;
+    else
+        vaddr = (vaddr_t)switch_ttbr_id;
+
+    id_addr = virt_to_maddr(vaddr);
+
     /* Enable the identity mapping in the boot page tables */
     update_identity_mapping(true);
 
     /* Enable the identity mapping in the runtime page tables */
-    pte = pte_of_xenaddr((vaddr_t)switch_ttbr_id);
+    pte = pte_of_xenaddr(vaddr);
     pte.pt.table = 1;
     pte.pt.xn = 0;
     pte.pt.ro = 1;
     write_pte(&xen_third_id[third_table_offset(id_addr)], pte);
 
     /* Switch TTBR */
-    fn(ttbr);
+    if ( llc_coloring_enabled )
+    {
+        relocate_xen_fn *fn = (relocate_xen_fn *)id_addr;
+
+        fn(ttbr, _start, (void *)BOOT_RELOC_VIRT_START, _end - _start);
+    }
+    else
+    {
+        switch_ttbr_fn *fn = (switch_ttbr_fn *)id_addr;
+
+        fn(ttbr);
+    }
 
     /*
      * Disable the identity mapping in the runtime page tables.
diff --git a/xen/arch/arm/include/asm/mmu/layout.h b/xen/arch/arm/include/asm/mmu/layout.h
index a3b546465b..19c0ec63a5 100644
--- a/xen/arch/arm/include/asm/mmu/layout.h
+++ b/xen/arch/arm/include/asm/mmu/layout.h
@@ -30,6 +30,7 @@
  *  10M -  12M   Fixmap: special-purpose 4K mapping slots
  *  12M -  16M   Early boot mapping of FDT
  *  16M -  18M   Livepatch vmap (if compiled in)
+ *  16M -  24M   Cache-colored Xen text, data, bss (temporary, if compiled in)
  *
  *   1G -   2G   VMAP: ioremap and early_ioremap
  *
@@ -74,6 +75,8 @@
 #define BOOT_FDT_VIRT_START     (FIXMAP_VIRT_START + FIXMAP_VIRT_SIZE)
 #define BOOT_FDT_VIRT_SIZE      _AT(vaddr_t, MB(4))
 
+#define BOOT_RELOC_VIRT_START   (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
+
 #ifdef CONFIG_LIVEPATCH
 #define LIVEPATCH_VMAP_START    (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
 #define LIVEPATCH_VMAP_SIZE    _AT(vaddr_t, MB(2))
diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
index a7e0907816..18362d2317 100644
--- a/xen/arch/arm/llc-coloring.c
+++ b/xen/arch/arm/llc-coloring.c
@@ -10,6 +10,7 @@
 
 #include <asm/processor.h>
 #include <asm/sysregs.h>
+#include <asm/setup.h>
 
 /* Return the LLC way size by probing the hardware */
 unsigned int __init get_llc_way_size(void)
@@ -63,8 +64,70 @@ unsigned int __init get_llc_way_size(void)
     return line_size * num_sets;
 }
 
+/**
+ * get_xen_paddr - get physical address to relocate Xen to
+ *
+ * Xen is relocated to as near to the top of RAM as possible and
+ * aligned to a XEN_PADDR_ALIGN boundary.
+ */
+static paddr_t __init get_xen_paddr(paddr_t xen_size)
+{
+    const struct membanks *mem = bootinfo_get_mem();
+    paddr_t min_size, paddr = 0;
+    unsigned int i;
+
+    min_size = (xen_size + (XEN_PADDR_ALIGN-1)) & ~(XEN_PADDR_ALIGN-1);
+
+    /* Find the highest bank with enough space. */
+    for ( i = 0; i < mem->nr_banks; i++ )
+    {
+        const struct membank *bank = &mem->bank[i];
+        paddr_t s, e;
+
+        if ( bank->size >= min_size )
+        {
+            e = consider_modules(bank->start, bank->start + bank->size,
+                                 min_size, XEN_PADDR_ALIGN, 0);
+            if ( !e )
+                continue;
+
+#ifdef CONFIG_ARM_32
+            /* Xen must be under 4GB */
+            if ( e > GB(4) )
+                e = GB(4);
+            if ( e < bank->start )
+                continue;
+#endif
+
+            s = e - min_size;
+
+            if ( s > paddr )
+                paddr = s;
+        }
+    }
+
+    if ( !paddr )
+        panic("Not enough memory to relocate Xen\n");
+
+    printk("Placing Xen at 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
+           paddr, paddr + min_size);
+
+    return paddr;
+}
+
+static paddr_t __init xen_colored_map_size(void)
+{
+    return ROUNDUP((_end - _start) * get_max_nr_llc_colors(), XEN_PADDR_ALIGN);
+}
+
 void __init arch_llc_coloring_init(void)
 {
+    struct bootmodule *xen_bootmodule = boot_module_find_by_kind(BOOTMOD_XEN);
+
+    BUG_ON(!xen_bootmodule);
+
+    xen_bootmodule->size = xen_colored_map_size();
+    xen_bootmodule->start = get_xen_paddr(xen_bootmodule->size);
 }
 
 /*
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 1cf62390e3..bf6334dbd4 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -23,6 +23,9 @@
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
 
+#define virt_to_reloc_virt(virt) \
+    (((vaddr_t)virt) - XEN_VIRT_START + BOOT_RELOC_VIRT_START)
+
 /* Main runtime page tables */
 
 /*
@@ -72,6 +75,7 @@ static void __init __maybe_unused build_assertions(void)
     /* 2MB aligned regions */
     BUILD_BUG_ON(XEN_VIRT_START & ~SECOND_MASK);
     BUILD_BUG_ON(FIXMAP_ADDR(0) & ~SECOND_MASK);
+    BUILD_BUG_ON(BOOT_RELOC_VIRT_START & ~SECOND_MASK);
     /* 1GB aligned regions */
 #ifdef CONFIG_ARM_32
     BUILD_BUG_ON(XENHEAP_VIRT_START & ~FIRST_MASK);
@@ -141,6 +145,9 @@ static void __init __maybe_unused build_assertions(void)
 
 lpae_t __init pte_of_xenaddr(vaddr_t va)
 {
+    if ( llc_coloring_enabled )
+        va = virt_to_reloc_virt(va);
+
     return mfn_to_xen_entry(virt_to_mfn(va), MT_NORMAL);
 }
 
@@ -319,9 +326,44 @@ paddr_t __init consider_modules(paddr_t s, paddr_t e,
     return e;
 }
 
+static void __init create_llc_coloring_mappings(void)
+{
+    lpae_t pte;
+    unsigned int i;
+    struct bootmodule *xen_bootmodule = boot_module_find_by_kind(BOOTMOD_XEN);
+    mfn_t start_mfn = maddr_to_mfn(xen_bootmodule->start), mfn;
+
+    for_each_xen_colored_mfn ( start_mfn, mfn, i )
+    {
+        pte = mfn_to_xen_entry(mfn, MT_NORMAL);
+        pte.pt.table = 1; /* level 3 mappings always have this bit set */
+        xen_xenmap[i] = pte;
+    }
+
+    for ( i = 0; i < XEN_NR_ENTRIES(2); i++ )
+    {
+        vaddr_t va = BOOT_RELOC_VIRT_START + (i << XEN_PT_LEVEL_SHIFT(2));
+
+        pte = mfn_to_xen_entry(virt_to_mfn(xen_xenmap +
+                                           i * XEN_PT_LPAE_ENTRIES),
+                               MT_NORMAL);
+        pte.pt.table = 1;
+        write_pte(&boot_second[second_table_offset(va)], pte);
+    }
+}
+
 /*
- * Boot-time pagetable setup.
+ * Boot-time pagetable setup with coloring support
  * Changes here may need matching changes in head.S
+ *
+ * The cache coloring support consists of:
+ * - Create colored mapping that conforms to Xen color selection in xen_xenmap[]
+ * - Link the mapping in boot page tables using BOOT_RELOC_VIRT_START as vaddr
+ * - pte_of_xenaddr() takes care of translating addresses to the new space
+ *   during runtime page tables creation
+ * - Relocate xen and update TTBR with the new address in the colored space
+ *   (see switch_ttbr())
+ * - Protect the new space
  */
 void __init setup_pagetables(void)
 {
@@ -329,6 +371,9 @@ void __init setup_pagetables(void)
     lpae_t pte, *p;
     int i;
 
+    if ( llc_coloring_enabled )
+        create_llc_coloring_mappings();
+
     arch_setup_page_tables();
 
 #ifdef CONFIG_ARM_64
@@ -356,13 +401,7 @@ void __init setup_pagetables(void)
             break;
         pte = pte_of_xenaddr(va);
         pte.pt.table = 1; /* third level mappings always have this bit set */
-        if ( is_kernel_text(va) || is_kernel_inittext(va) )
-        {
-            pte.pt.xn = 0;
-            pte.pt.ro = 1;
-        }
-        if ( is_kernel_rodata(va) )
-            pte.pt.ro = 1;
+        pte.pt.xn = 0; /* Permissions will be enforced later. Allow execution */
         xen_xenmap[i] = pte;
     }
 
@@ -388,13 +427,48 @@ void __init setup_pagetables(void)
     ttbr = virt_to_maddr(cpu0_pgtable);
 #endif
 
-    switch_ttbr(ttbr);
-
-    xen_pt_enforce_wnx();
-
 #ifdef CONFIG_ARM_32
     per_cpu(xen_pgtable, 0) = cpu0_pgtable;
 #endif
+
+    if ( llc_coloring_enabled )
+        ttbr = virt_to_maddr(virt_to_reloc_virt(THIS_CPU_PGTABLE));
+
+    switch_ttbr(ttbr);
+
+    /* Protect Xen */
+    for ( i = 0; i < XEN_NR_ENTRIES(3); i++ )
+    {
+        vaddr_t va = XEN_VIRT_START + (i << PAGE_SHIFT);
+        lpae_t *entry = xen_xenmap + i;
+
+        if ( !is_kernel(va) )
+            break;
+
+        pte = read_atomic(entry);
+
+        if ( is_kernel_text(va) || is_kernel_inittext(va) )
+        {
+            pte.pt.xn = 0;
+            pte.pt.ro = 1;
+        } else if ( is_kernel_rodata(va) ) {
+            pte.pt.ro = 1;
+            pte.pt.xn = 1;
+        } else {
+            pte.pt.xn = 1;
+            pte.pt.ro = 0;
+        }
+
+        write_pte(entry, pte);
+    }
+
+    /*
+     * We modified live page-tables. Ensure the TLBs are invalidated
+     * before setting enforcing the WnX permissions.
+     */
+    flush_xen_tlb_local();
+
+    xen_pt_enforce_wnx();
 }
 
 void *__init arch_vmap_virt_end(void)
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 84fecaabea..3b3fb49fbd 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -304,8 +304,6 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
     /* Initialize traps early allow us to get backtrace when an error occurred */
     init_traps();
 
-    setup_pagetables();
-
     smp_clear_cpu_maps();
 
     device_tree_flattened = early_fdt_map(fdt_paddr);
@@ -329,6 +327,14 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
 
     llc_coloring_init();
 
+    /*
+     * Page tables must be setup after LLC coloring initialization because
+     * coloring info are required in order to create colored mappings
+     */
+    setup_pagetables();
+    /* Device-tree was mapped in boot page tables, remap it in the new tables */
+    device_tree_flattened = early_fdt_map(fdt_paddr);
+
     setup_mm();
 
     vm_init();
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 6e7a652884..b80a47f8ad 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -34,6 +34,8 @@ static unsigned int __ro_after_init xen_num_colors;
 
 #define mfn_color_mask              (max_nr_colors - 1)
 #define mfn_to_color(mfn)           (mfn_x(mfn) & mfn_color_mask)
+#define get_mfn_with_color(mfn, color) \
+    (_mfn((mfn_x(mfn) & ~mfn_color_mask) | (color)))
 
 /*
  * Parse the coloring configuration given in the buf string, following the
@@ -353,6 +355,22 @@ unsigned int get_max_nr_llc_colors(void)
     return max_nr_colors;
 }
 
+mfn_t __init xen_colored_mfn(mfn_t mfn)
+{
+    unsigned int i, color = mfn_to_color(mfn);
+
+    for ( i = 0; i < xen_num_colors; i++ )
+    {
+        if ( color == xen_colors[i] )
+            return mfn;
+        else if ( color < xen_colors[i] )
+            return get_mfn_with_color(mfn, xen_colors[i]);
+    }
+
+    /* Jump to next color space (max_nr_colors mfns) and use the first color */
+    return get_mfn_with_color(mfn_add(mfn, max_nr_colors), xen_colors[0]);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
index 90daf214cd..bf3e685d63 100644
--- a/xen/include/xen/llc-coloring.h
+++ b/xen/include/xen/llc-coloring.h
@@ -27,6 +27,17 @@ static inline void domain_dump_llc_colors(const struct domain *d) {}
 static inline void domain_llc_coloring_free(struct domain *d) {}
 #endif
 
+/**
+ * Iterate over each Xen mfn in the colored space.
+ * @start_mfn:  the first mfn that needs to be colored.
+ * @mfn:        the current mfn.
+ * @i:          loop index.
+ */
+#define for_each_xen_colored_mfn(start_mfn, mfn, i) \
+    for ( i = 0, mfn = xen_colored_mfn(start_mfn);  \
+          i < (_end - _start) >> PAGE_SHIFT;        \
+          i++, mfn = xen_colored_mfn(mfn_add(mfn, 1)) )
+
 unsigned int get_llc_way_size(void);
 void arch_llc_coloring_init(void);
 int dom0_set_llc_colors(struct domain *d);
@@ -38,6 +49,8 @@ struct page_info;
 unsigned int page_to_llc_color(const struct page_info *pg);
 unsigned int get_max_nr_llc_colors(void);
 
+mfn_t xen_colored_mfn(mfn_t mfn);
+
 #endif /* __COLORING_H__ */
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:21:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840203.1256033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDP6t-0007jH-7i; Tue, 19 Nov 2024 14:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840203.1256033; Tue, 19 Nov 2024 14: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 1tDP6t-0007jA-53; Tue, 19 Nov 2024 14:21:43 +0000
Received: by outflank-mailman (input) for mailman id 840203;
 Tue, 19 Nov 2024 14:21: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDP6s-0007dt-Lb
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:21:42 +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 966b8a53-a681-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:21:37 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a99eb8b607aso127619266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:21:37 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e043316sm656195366b.135.2024.11.19.06.21.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 06:21: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: 966b8a53-a681-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2NmI4YTUzLWE2ODEtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI2MDk3Ljc5MTM3NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732026097; x=1732630897; 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=aLvJ3gMSLd1W/oSfXodJhG+t9ir2LHLsSl1Al3oYzmA=;
        b=M6UrcmZc3d/05iwU331jq0/XoSmL1WpjvN4yu9Tnq/Tab4X54z3/YZFERUjUl7r1Qb
         bv44n9y/4Hr1InE3SWH3aDVJdZkBrYMjEAVx782JKm7TV12UyNTl8dmIQHoxuAY8A++E
         VpfOOZN4okl6kE81kLO15K5MLEvjRCna8R5VY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732026097; x=1732630897;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aLvJ3gMSLd1W/oSfXodJhG+t9ir2LHLsSl1Al3oYzmA=;
        b=pFf9VMy0aEA1jPuI1UhVEddzBIG/BVCltuF0j0OeJbfovWcl9p3EljdJq+RN/ZbR18
         0HuD/OdNVU/wTf6oViPc6/EYaGByMhf8PcWkJCt5rHvl2DJAXHZixpqVUsuyBfv4xE08
         QcUicpo9SrQFthkcMf9AU24zOi37FmqVPSNFsiabR3P6dt/KlakMfoXctw3VIVSX8Qjo
         qrvA84nBP66Dy7A3TN1EiGJcKSv4+UIfVRbu/lB6zDi/cPRHIc8m+i6Da4bwRFgkTyYZ
         YjI8+6cOXPiHcTVmw7G0tMCS6PYYudFtaVF8IY8Y2MJAfd/wxO1aGwzVzakpTBgKJ2Zg
         wsHw==
X-Forwarded-Encrypted: i=1; AJvYcCWpFyeNYeHcCvcJuuL4cfjGj5BiPcMsoWrz3fzb8tGCIKJp2Y4lFoLpCSuJ84ExvfSROqwCLK/xc2E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzxt+QZOXIbQpoekoOVDNDJTVt0xEovBpQw7g1MMGOT8QqEDJHH
	Ggq1HHD5yfdmAxDUm4S68ZDOnhQUWN281pgMxRnm9Cek9+xbBlqXuyLKb1cssZ8=
X-Google-Smtp-Source: AGHT+IEgQU73TcXWqZKsN3ETJG5Le2bVQ0Y2zrc24Y6PPWJwkjhyGZrVZTELzle//NNPgvUoXeCOwQ==
X-Received: by 2002:a17:907:3f98:b0:a9a:26a1:1963 with SMTP id a640c23a62f3a-aa4833f66c5mr1567138966b.7.1732026097185;
        Tue, 19 Nov 2024 06:21:37 -0800 (PST)
Message-ID: <05127810-a5d3-46f7-9a5b-8f5ac1ab8b87@citrix.com>
Date: Tue, 19 Nov 2024 14:21:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/msi: fix Misra Rule 20.7 in msi.h
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241119103444.23296-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 10:34 am, Roger Pau Monne wrote:
> Prune unused macros and adjust the remaining ones to parenthesize macro
> arguments.
>
> No functional change intended.
>
> Singed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

It's a little early for carol season, isn't it?

It would help to identify which macros are being dropped, because the
diff is far from simple to read.

AFAICT, its:

Â  msi_disable()
Â  msi_enable()
Â  msix_enable()
Â  msix_disable()
Â  msix_unmask()
Â  msix_mask()

Splitting this change does make a marginal improvement in the diff, and
a substantial improvement in `git diff --color-word`'s ability to review
this change.

You've also introduced uses of MASK_EXTR() and MASK_INSR(), which at
least ought to be noted in the commit message.Â  Technically I think it's
a bugfix for multi_msi_enable(), because I think it now won't overflow
the 3-bit field if an overly large num is passed in.


Bloat-o-meter reports:

add/remove: 0/0 grow/shrink: 3/1 up/down: 15/-61 (-46)
FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
set_iommu_interrupt_handlerÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  366Â Â Â Â  373Â Â Â Â Â  +7
write_msi_msgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  348Â Â Â Â  352Â Â Â Â Â  +4
init_msiÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  574Â Â Â Â  578Â Â Â Â Â  +4
pci_enable_msiÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1084Â Â Â  1023Â Â Â Â  -61


Taking the first example, that's caused by swapping this:

> iommu->msi.msi.mpos = ( ((!!(control & 0x80)) == 1) ?
> iommu->msi.msi_attrib.pos+16 : iommu->msi.msi_attrib.pos+16 -4);

for this:

> iommu->msi.msi.mpos = ((iommu->msi.msi_attrib.pos) + 16 -
> (((!!((control) & 0x80))) ? 0 : 4));

and code generation changing from a CMOV to straight-line arithmetic.

In write_msi_msg(), we actually drop a conditional branch and replace it
with straight-line arithmetic.

init_msi() gets a substantial restructuring, but it looks like two
branches are dropped.

pci_enable_msi() has the biggest change, but doesn't obviously reduce
the number of branches.Â  There is clearly less register setup around
existing branches, so my best guess is that the new macro forms are more
amenable to common-sub-expression-elimination.


Either way, it's all minor.Â  Staring at the diff for long enough, I'm
pretty sure it's all good.

> ---
>  xen/arch/x86/include/asm/msi.h | 35 ++++++++++++++--------------------
>  1 file changed, 14 insertions(+), 21 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
> index 748bc3cd6d8b..49a576383288 100644
> --- a/xen/arch/x86/include/asm/msi.h
> +++ b/xen/arch/x86/include/asm/msi.h
> @@ -147,33 +147,26 @@ int msi_free_irq(struct msi_desc *entry);
>   */
>  #define NR_HP_RESERVED_VECTORS 	20
>  
> -#define msi_control_reg(base)		(base + PCI_MSI_FLAGS)
> -#define msi_lower_address_reg(base)	(base + PCI_MSI_ADDRESS_LO)
> -#define msi_upper_address_reg(base)	(base + PCI_MSI_ADDRESS_HI)
> +#define msi_control_reg(base)		((base) + PCI_MSI_FLAGS)
> +#define msi_lower_address_reg(base)	((base) + PCI_MSI_ADDRESS_LO)
> +#define msi_upper_address_reg(base)	((base) + PCI_MSI_ADDRESS_HI)
>  #define msi_data_reg(base, is64bit)	\
> -	( (is64bit == 1) ? base+PCI_MSI_DATA_64 : base+PCI_MSI_DATA_32 )
> +	((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
>  #define msi_mask_bits_reg(base, is64bit) \
> -	( (is64bit == 1) ? base+PCI_MSI_MASK_BIT : base+PCI_MSI_MASK_BIT-4)
> +	((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
>  #define msi_pending_bits_reg(base, is64bit) \
>  	((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
> -#define msi_disable(control)		control &= ~PCI_MSI_FLAGS_ENABLE
>  #define multi_msi_capable(control) \
> -	(1 << ((control & PCI_MSI_FLAGS_QMASK) >> 1))
> +	(1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
>  #define multi_msi_enable(control, num) \
> -	control |= (((fls(num) - 1) << 4) & PCI_MSI_FLAGS_QSIZE);
> -#define is_64bit_address(control)	(!!(control & PCI_MSI_FLAGS_64BIT))
> -#define is_mask_bit_support(control)	(!!(control & PCI_MSI_FLAGS_MASKBIT))
> -#define msi_enable(control, num) multi_msi_enable(control, num); \
> -	control |= PCI_MSI_FLAGS_ENABLE
> -
> -#define msix_control_reg(base)		(base + PCI_MSIX_FLAGS)
> -#define msix_table_offset_reg(base)	(base + PCI_MSIX_TABLE)
> -#define msix_pba_offset_reg(base)	(base + PCI_MSIX_PBA)
> -#define msix_enable(control)	 	control |= PCI_MSIX_FLAGS_ENABLE
> -#define msix_disable(control)	 	control &= ~PCI_MSIX_FLAGS_ENABLE
> -#define msix_table_size(control) 	((control & PCI_MSIX_FLAGS_QSIZE)+1)
> -#define msix_unmask(address)	 	(address & ~PCI_MSIX_VECTOR_BITMASK)
> -#define msix_mask(address)		(address | PCI_MSIX_VECTOR_BITMASK)
> +	((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
> +#define is_64bit_address(control)	!!((control) & PCI_MSI_FLAGS_64BIT)
> +#define is_mask_bit_support(control)	!!((control) & PCI_MSI_FLAGS_MASKBIT)

You need to retain the outermost brackets for other MISRA reasons.

I'm happy to fix up on commit, even splitting the patch (seeing as I've
already done the split in order to review the rest).

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:23:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840241.1256042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDP91-0000X7-My; Tue, 19 Nov 2024 14:23:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840241.1256042; Tue, 19 Nov 2024 14: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 1tDP91-0000X0-KU; Tue, 19 Nov 2024 14:23:55 +0000
Received: by outflank-mailman (input) for mailman id 840241;
 Tue, 19 Nov 2024 14: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=PDt+=SO=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tDP8z-0000Ws-W9
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:23:53 +0000
Received: from mail-il1-x12b.google.com (mail-il1-x12b.google.com
 [2607:f8b0:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e511b93c-a681-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:23:50 +0100 (CET)
Received: by mail-il1-x12b.google.com with SMTP id
 e9e14a558f8ab-3a6c2077afcso3529725ab.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:23: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: e511b93c-a681-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1pbDEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU1MTFiOTNjLWE2ODEtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI2MjMwLjQxNzY5Mywic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732026229; x=1732631029; 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=nbHSjBYmkmM1jutoPn3CtmLMhYMymb2+df1ssYEt8bU=;
        b=Jjhchvgf4sOaTXUFDResGwDoF8xb/XVQVQCB69PgPxJQL73Ky8W75G6k9abb0Txue5
         7eoFEQdIioRrX3cH/QqOnf6NDOZ6q7u7Sslr5HYQXT1D3wUQr+FxdWkUbITpMZhpkof6
         XdlEHQdVNso19I+MTeiiVikusyP1ljBU8CUS+IEgegH6e+F3bIE2WfcXjFI8lol7aS5U
         zpCK/Xt60wGo8IPeZmGrSUkarSadh6DeOn+VKmo+PEF6SX9z4lP5FNcMhJOuR6a5gjXn
         +UhP5OB3DKxNE2bXDMaoUJ0/QynK2A+VLXMpgcuN7GAVSDfEisf+y5qKcn+8t9LF+FND
         qaJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732026229; x=1732631029;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nbHSjBYmkmM1jutoPn3CtmLMhYMymb2+df1ssYEt8bU=;
        b=kswtZJDtAdcwrg1ca2K5cEL7xGVoNif17/8e5GrVBSpKtTcqWFymWLjJ/DVpWdYqqQ
         VRKTDZ6OeiyaZ9MAI9laEbHRtV1iSEN+xgjHE9OJF1PXPuUJRLskvgm4JMAdFWmhKgUu
         Yp/IrT1wNa3mc5diPrcdQhAQNxwXGHkj0stzRtcU90uPvf1+toamlaP4GD/o7W4BZq8p
         6ecVMqEjazwF2jgUBfVG1ms3mXlxwSccHGyFlWgAem2XxFWsfilyB2Bh/cis1MuNMvjP
         DkVX1bO3vnuvDcM9xFdyY5cmCxmZh7sXUCWU/Jb8mzknFiN5GHHDxO6CCcfQvdEBhBaD
         BwWQ==
X-Gm-Message-State: AOJu0YwB5KM6Zhyx9vT/Gz8vtsuSIyNH0b9q//fps+bJxIj5/IIDqrh6
	dMnRxhpcBen4PL3KsZGxmClK3uj8HodFxL+osJqspZwIKD1DKRk2TD9PS8RfXbkSeQ3rfKiNs5T
	IazFR1EaDejSMWrFgoXRO051hvhG9O44xFwXwKQ==
X-Google-Smtp-Source: AGHT+IFMe79JiybuXpZ4Jya9V7wWE3FTMJP+UnoJwcfzbW7/WeBYO9e9dD6N1x4vgHnPk2mZl20ee5et5n9MGYbVpow=
X-Received: by 2002:a05:6602:27c1:b0:835:45f9:c2ee with SMTP id
 ca18e2360f4ac-83e6c272e56mr1705233839f.4.1732026228928; Tue, 19 Nov 2024
 06:23:48 -0800 (PST)
MIME-Version: 1.0
References: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
In-Reply-To: <CAMacjJzO+Oa1_BEBrV3J=L4=5vsxZRV8DGuiuho96qLqM-QWcA@mail.gmail.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Tue, 19 Nov 2024 15:23:37 +0100
Message-ID: <CAG+AhRW8FczMC1S2bzUsGLZozBiKXM1c5DALcAOc4=wuCGYc0Q@mail.gmail.com>
Subject: Re: Xen 4.20 Development Update [August-October]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Kelly Choi <kelly.choi@cloud.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,

I would like to see "Arm cache coloring" in 4.20. I just sent v10.

Best regards.

- Carlo Nonato

On Tue, Nov 12, 2024 at 5:16=E2=80=AFPM Oleksii Kurochko
<oleksii.kurochko@gmail.com> wrote:
>
> Hello everyone,
>
> This email only tracks big items for xen.git tree. Please reply for items=
 you
> would like to see in 4.20 so that people have an idea what is going on an=
d
> prioritise accordingly.
>
> You're welcome to provide description and use cases of the feature you're
> working on.
>
> =3D Timeline =3D
>
> ---> We are here
> * Last posting date: Nov 29, 2024
> * Feature freeze date: Dec 20, 2024
> * Hard code freeze: Jan 17, 2025
> * RC1: TBD
> * Release: Feb 21, 2025
> ( current release schedule: https://wiki.xenproject.org/wiki/Xen_Project_=
X.YY_Release_Notes )
>
> All patches that wish to go into 4.20 must be posted no later than the la=
st posting
> date. All patches posted after that date will be automatically queued
> into next release.
>
> RCs will be arranged immediately after freeze.
>
> =3D Projects =3D
>
> =3D=3D Hypervisor =3D=3D
>
> *  Remove the directmap (v4)
>   -  Elias El Yandouzi
>   -  https://lore.kernel.org/xen-devel/f6973275-0d7e-4db4-b949-f21e530e1d=
fc@citrix.com/T/#m9733aa717edf032db0cf8f8f6763537b4f30c1f8
>
> *  remove libxenctrl usage from xenstored (v1)
>   -  Juergen Gross
>   -  https://lore.kernel.org/xen-devel/20241023131005.32144-1-jgross@suse=
.com/T/#md016c48a0889740d1822aa68f7f33d4ad48f4805
>
> *  automation: Refresh the remaining Debian containers (v2)
>   -  Javi Merino
>   -  https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@c=
loud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e
>
> *  Move gic_preinit() to common code (v2)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/2fe01b5a-aebb-4141-9cdd-887b5984d6=
b8@suse.com/T/#m8144a030ef64a479068482c864c9258a5cb43a87
>
> *  stubdom: reduce xenstore library dependencies (v1)
>   -  Juergen Gross
>   -  https://lore.kernel.org/xen-devel/20241010155459.22389-1-jgross@suse=
.com/T/#m8b5af386e2d288961bb6e8f7839650e0cab96a83
>
> *  xen: address violations of MISRA C Rule 13.6 (v2)
>   -  Federico Serafini
>   -  https://lore.kernel.org/xen-devel/cover.1727690180.git.federico.sera=
fini@bugseng.com/T/#mbec702db211240305e0d35649e65627d9fa75a29
>
> =3D=3D=3D x86 =3D=3D=3D
>
> *  Expose consistent topology to guests (v7)
>   -  Alejandro Vallejo
>   -  https://lore.kernel.org/xen-devel/20241021154600.11745-1-alejandro.v=
allejo@cloud.com/T/#m6033f95c660675039d7789d3af1ba2f292a3a69b
>
> *  Boot modules for Hyperlaunch (v8)
>   -  Daniel P. Smith
>   -  https://lore.kernel.org/xen-devel/20241102172551.17233-1-dpsmith@ape=
rtussolutions.com/T/#m94a2f6b9d410c6d624aaebd7c2bf85584c74383e
>
> *  x86/mm: miscellaneous fixes (v2)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/Zyyo8qMobqQT-rA5@macbook/T/#m2df34=
239b793501c6246c85c4b00e52f9c439ac0
>
> *  x86/ucode: Simplify/fix loading paths further (v1)
>   -  Andrew Cooper
>   -  https://lore.kernel.org/xen-devel/20241107122117.4073266-1-andrew.co=
oper3@citrix.com/T/#m76304334081e6b4b0976c6c474f1f0772e0625d1
>
> *  Address Space Isolation FPU preparations (v2)
>   -  Alejandro Vallejo
>   -  https://lore.kernel.org/xen-devel/20241105143310.28301-1-alejandro.v=
allejo@cloud.com/T/#mbca5192d7e5636ef5ea005a083e5ff28ebe6317d
>
> *  Fix module-handling use-after-free's (v2)
>   -  Andrew Cooper
>   -  https://lore.kernel.org/xen-devel/20241106003938.3453243-1-andrew.co=
oper3@citrix.com/T/#mdf923bdf63b034a6493bf62beeead280b92a38ed
>
> *  Reuse 32 bit C code more safely (v4)
>   -  Frediano Ziglio
>   -  https://lore.kernel.org/xen-devel/20241014085332.3254546-1-frediano.=
ziglio@cloud.com/T/#m53e36815ddec2511ddd1fa8d1a7ed9a27c0cd0f7
>
> *  x86/alternatives: Adjust all insn-relative fields (v2)
>   -  Andrew Cooper
>   -  https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.co=
oper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
>
> *  x86: address violations of MISRA C Rule 16.3 (v1)
>   -  Federico Serafini
>   -  https://lore.kernel.org/xen-devel/cover.1725958416.git.federico.sera=
fini@bugseng.com/T/#m46c991ed7ea7a6fe505056facddfcc684be01ab6
>
> *  Support device passthrough when dom0 is PVH on Xen (v16)
>   -  Jiqian Chen
>   -  https://lore.kernel.org/xen-devel/20240930034250.2682265-1-Jiqian.Ch=
en@amd.com/T/#m5d557d76f290ff5b5550c1443cab5774d397e526
>
> *  x86emul: misc additions (v5)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/0b9a0ae8-a39c-49d8-b4e7-f2a4631280=
58@suse.com/T/#m5aae1045eb07d85fb029bdef12a78cdb6bfe780e
>
> *  x86/HVM: drop stdvga caching mode (v2)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/dc3faf7d-0690-46e6-8fbc-67a177a1e1=
71@suse.com/T/#mc8ca51cdbfb6ba26ea6b4624059d40ea075c2117
>
> *  x86/HVM: emulation (MMIO) improvements (v1)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/31906cba-8646-4cf9-ab31-1d23654df8=
d1@suse.com/T/#mdae2f21b929170d60a8640e82857700c940e65c7
>
> =3D=3D=3D ARM =3D=3D=3D
>
> *  Enable early bootup of AArch64 MPU systems (v5)
>   -  Ayan Kumar Halder
>   -  https://lore.kernel.org/xen-devel/20241107150330.181143-1-ayan.kumar=
.halder@amd.com/T/#m9cfd8bed109cc703b6ae8b8b6faaa116c08598ee
>
> *  Add support for S32CC platforms and LINFlexD UART (v2)
>   -  Andrei Cherechesu
>   -  https://lore.kernel.org/xen-devel/20240930114715.642978-1-andrei.che=
rechesu@oss.nxp.com/T/#m8452ac342fdcf989fc1e498c097812b50157f2cc
>
> *  Arm cache coloring (v9)
>   -  Carlo Nonato
>   -  https://lore.kernel.org/xen-devel/20241025095014.42376-1-carlo.nonat=
o@minervasys.tech/T/#md18fb02842c4ad2cd61b456be89020affcc452a3
>
> *  ffa: Improvements and fixes (v2)
>   -  Bertrand Marquis
>   -  https://lore.kernel.org/xen-devel/cover.1729066788.git.bertrand.marq=
uis@arm.com/T/#mb0c8aab97d46f9c9e933b3b9b0eef7e717e1f2e5
>
> *  Add Virtio-PCI for dom0less on ARM (v1)
>   -  Edgar E. Iglesias
>   -  https://lore.kernel.org/xen-devel/20240924162359.1390487-1-edgar.igl=
esias@gmail.com/T/#mfa148991b9408f223a079d4cef610244d5b04c2b
>
> =3D=3D=3D RISCV =3D=3D=3D
>
> *  Setup memory management (v5)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1731344883.git.oleksii.kuroc=
hko@gmail.com/T/#m9f76f1b685896ea603a2b153e05104c7405a7d28
>
> =3D=3D=3D PPC =3D=3D=3D
>
> *  Early Boot Allocation on Power (v5)
>   -  Shawn Anastasio
>   -  https://lore.kernel.org/xen-devel/cover.1727388925.git.sanastasio@ra=
ptorengineering.com/T/#m8cac91a93b56a359fa2d5f08596c4be61dca290d
>
> =3D=3D Completed =3D=3D
>
> =3D=3D=3D Hypervisor =3D=3D=3D
>
> *  libxl: Implement QEMU command line probe (v1)
>   -  Anthony PERARD
>   -  https://lore.kernel.org/xen-devel/20240827100328.23216-1-anthony.per=
ard@vates.tech/T/#mdef23cefc2532ab0c9d7460290cef26780cf97cb
>
> *  xen/bitops: hweight() cleanup/improvements (v3)
>   -  Andrew Cooper
>   -  https://lore.kernel.org/xen-devel/20240904225530.3888315-1-andrew.co=
oper3@citrix.com/T/#me22e08f7477be725122dd9b97d29d272e3b586c4
>
> *  Move percpu code to common (v2)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1727185495.git.oleksii.kuroc=
hko@gmail.com/T/#mf93394c46f15cbdcfc873de2d52d862a8b70da7f
>
> *  xen/livepatch: improvements to loading (v3)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/20240926101431.97444-1-roger.pau@c=
itrix.com/T/#ma3f65948b065dc443aea2192873a3b3dfa52a2d7
>
> *  Move {acpi_}device_init() and device_get_class() to common code (v5)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/17c7d988e45d7c82448b81fe66b01a5cec=
a0c15e.camel@gmail.com/T/#m68bd00d4f8b3724e83ba13024e94b15b58a28829
>
> *  blkif: reconcile protocol specification with in-use implementations (v=
1)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/20240903141923.72241-1-roger.pau@c=
itrix.com/
>
> =3D=3D=3D x86 =3D=3D=3D
>
> *  Drop Xeon Phi support (v1)
>   -  Jan Beulich
>   -  https://lore.kernel.org/xen-devel/44147507-65a4-4f21-aada-fa647f53ff=
d0@suse.com/
>
> *  Utilize ucode_force and remove opt_ucode_allow_same (v7)
>   -  Fouad Hilly
>   -  https://lore.kernel.org/xen-devel/20240822130426.492931-4-fouad.hill=
y@cloud.com/
>
> *  Switch flat driver to use phys dst for ext ints (v2)
>   -  Matthew Barnes
>   -  https://lore.kernel.org/xen-devel/0db68e62ffc428f553a30397df1e79068d=
26bb5f.1728311378.git.matthew.barnes@cloud.com/
>
> *  x86/shutdown: change default reboot method preference (v1)
>   -  Roger Pau Monne
>   -  https://lore.kernel.org/xen-devel/20240802105613.99197-1-roger.pau@c=
itrix.com/
>
> =3D=3D=3D ARM =3D=3D=3D
>
> *  iommu/ipmmu-vmsa: Add Renesas R8A779G0 (R-Car V4H) support (v1)
>   -  Grygorii Strashko
>   -  https://lore.kernel.org/xen-devel/6ab4ad29-404d-4f5c-8582-5d2f492fd5=
49@xen.org/T/#t
>
> *  xen/arm: dt overlay fixes (v2)
>   -  Michal Orzel
>   -  https://lore.kernel.org/xen-devel/20241004122220.234817-1-michal.orz=
el@amd.com/T/#md51a060b93fe72f17637d6d72e3d4e2296cb4078
>
> =3D=3D=3D RISC-V =3D=3D=3D
>
> *  initialize bootinfo from dtb (v2)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1728481578.git.oleksii.kuroc=
hko@gmail.com/T/#m543bf84d47f0ea738938a9a442cd144bb34f7316
>
> *  Register Xen's load address as a boot module (v3)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1728472163.git.oleksii.kuroc=
hko@gmail.com/T/#t
>
> *  device tree mapping (v9)
>   -  Oleksii Kurochko
>   -  https://lore.kernel.org/xen-devel/cover.1727781468.git.oleksii.kuroc=
hko@gmail.com/T/#t


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:30:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:30:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840285.1256052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPF2-00033g-BO; Tue, 19 Nov 2024 14:30:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840285.1256052; Tue, 19 Nov 2024 14:30: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 1tDPF2-00033Z-8Y; Tue, 19 Nov 2024 14:30:08 +0000
Received: by outflank-mailman (input) for mailman id 840285;
 Tue, 19 Nov 2024 14:30: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDPF0-0002y9-Nb
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:30:06 +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 c2380e5b-a682-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:30:01 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3824aef833bso1372191f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:30: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-432dac0ae45sm197489585e9.30.2024.11.19.06.29.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 06:29: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: c2380e5b-a682-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzQiLCJoZWxvIjoibWFpbC13cjEteDQzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMyMzgwZTViLWE2ODItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI2NjAxLjYyNjY3Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732026600; x=1732631400; 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=x/bddkpy4qWW31Eozqd4IaMdwqroiR1plc0bvYJpFzI=;
        b=H2fHw8rFD3U6aG9XAzIEfmgV07QNyaET8hldhpsKMTFkmYb9Fq2jE4AbOYmKxaUlV+
         lnPsEdoeavWetPohHj7X5kG49J2n5EfP8Dvmw/2vgXEykgdw2JgLbpID/1kCb1UBP98e
         knp8dvMeCf3cofNeTx++CsRR8zsA/pXHzxYQlv4ffEKG4iANDryvofvXGV5RbJ30pN3Z
         4xo0SsXdTzyf0wFEcJyIy7GeJMWSyKz+hD8nr7LC0HCA2jZ9MhxD5iyw8yn9v2FOBJdd
         +9/SLdnrf0S/LY15TUgVmfniELcHd/5lvrs3ymkPfjFwS6cd6qfK5o0S9BV5y2pXcarH
         /bsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732026600; x=1732631400;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x/bddkpy4qWW31Eozqd4IaMdwqroiR1plc0bvYJpFzI=;
        b=AHjBx5gXh1Q/mBFSd9L5Y6NGh0Hv7QaClv5tjMekca3BSQvAog4lD/SzYXQ8LFHURB
         VdaWnGdid7cKoO5T+E/ZQ6iJXaecmUEvGgW+mqjwFobn1X54kb25Gct32FcfXyIH4zgA
         dj8RJM6/uXc55kp8JKgQm77MzgKTIDue/oZivRS1l3Z7tyBJRVwNo9fpRb2e9FPUS9Oi
         TSkYcaqTnwpDIEyNUsaDQFMuSdHjuGoyl7nXZWlqF6c7curTclxoD4hAlAyOCdVojzcZ
         Y8zrKhVrPTW74pE9s9euUd3exmvjwNx/cvDrh2nPa1V/LZHq7FspMFQHvJoit3WcWqJs
         Q5qw==
X-Forwarded-Encrypted: i=1; AJvYcCWT2WIN/IWeV29K9mTTgpO+D/99P5F+e4RKA92rv1kTALse8BNhtYQast/SVcQfQRa0PB1jsXCz79k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJfJz28d5Gbq/umm71SVy0+ibzfWrsn+9NLWtNU7i69LytAx64
	5LEtzxNa8wQHL3gWf4FLlXCLbkW5nHiR37wc7M7s38rnqOIEDCVcQKsJaTvhs/FFls7YTIRg+6A
	=
X-Google-Smtp-Source: AGHT+IFJwvS6Q8S/Z4Aawi3jfDc/sC9LiLydZZgBdo8xmhurMzqT3qBwOmIKQcdz5Ar536dcDPbCLw==
X-Received: by 2002:a05:6000:400b:b0:382:450c:2607 with SMTP id ffacd0b85a97d-382450c29f3mr6932599f8f.4.1732026600182;
        Tue, 19 Nov 2024 06:30:00 -0800 (PST)
Message-ID: <f733e721-f9b8-4fef-8145-176ebcbdaa01@suse.com>
Date: Tue, 19 Nov 2024 15:29:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] x86/uaccess: rework user access speculative harden
 guards
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-4-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: <20241119103444.23296-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 11:34, Roger Pau Monne wrote:
> The current guards to select whether user accesses should be speculative
> hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and can't)
> parenthesize the 'args' argument.
> 
> Change the logic so the guard is implemented inside the assembly block using
> the .if assembly directive.

Hmm, interesting idea. I don't overly like emitting stuff to pre-processed
and even assembly files, but doing so is probably warranted here. Nevertheless:
Did we consider at all to deviate these macros instead?

> --- a/xen/arch/x86/usercopy.c
> +++ b/xen/arch/x86/usercopy.c
> @@ -11,23 +11,23 @@
>  #include <asm/uaccess.h>
>  
>  #ifndef GUARD
> -# define GUARD UA_KEEP
> +# define GUARD 1
>  #endif

At least in cases like this one I think a comment is necessary, perhaps as
terse as /* Keep */ (and /* Drop */ further down).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:34:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840298.1256063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPJ8-0005AU-R3; Tue, 19 Nov 2024 14:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840298.1256063; Tue, 19 Nov 2024 14:34: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 1tDPJ8-0005AN-O2; Tue, 19 Nov 2024 14:34:22 +0000
Received: by outflank-mailman (input) for mailman id 840298;
 Tue, 19 Nov 2024 14:34: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=UMhk=SO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDPJ7-0005AH-EL
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:34:21 +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 5c013af6-a683-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:34:18 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-382433611d0so2358047f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:34: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-38246b7db13sm6486982f8f.91.2024.11.19.06.34.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 06:34: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: 5c013af6-a683-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVjMDEzYWY2LWE2ODMtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI2ODU4LjgxMDIzMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732026858; x=1732631658; 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=XcmnzsAoLOw/iAf1TPFm4c897+oHJKMZZOqnZsweXEU=;
        b=WrOt1man0ZHWXEweoYlQB8RbMIt5/Pci0vyOa9uAXe/dPtK13L6bzwfQywLMqYO+51
         PWEUkxfqPsZ/3vAoCKmjhFidw4LiZ0ebaM5XOaUm5t2tmi6cVUwZK6Dq6Z7EzH+b9Bxd
         Uxt/B1VhwP0vn7T40cftqM3+NifD1D0bqYQCGOyeVMWSdwfrdZQd29CeEwLsxSkUXuWa
         A1/xZVVzLXeJrTPuV1qJlSCapxxLig7twEjQ/kQLhpHQ0DR7YELfuhXgW1RvC4tSJiA9
         fcynjgH6SOoFo0B/Ow84MjCf0+ZOiTjA3AKuEXiP4VQRmH1YbPDYiG6gdj74+1EWLx8j
         TFeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732026858; x=1732631658;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XcmnzsAoLOw/iAf1TPFm4c897+oHJKMZZOqnZsweXEU=;
        b=PntKoOdP4OsAQGOtDLLJBORCmKydg0NkP2U0hxd+0WdFwTu3PdcHAqHz7Conh95z8T
         pRtWkE0dY4bG3z3JOoi8036tcc6ThkLLJpb8bW4+2gNJQpY105TY+XiPJYBxjr1K2/wT
         87+wqNJ/3iLlI438qkCYySkaAgWAV8xVAKJwGK0AH9xxqSumnOiIWQ2TBYHZimYSPPns
         hIzTV8N7qVL4zPDXxkA6T+3+JoQI6oEOQDiGq/h1BUFjpiC/LH9ZJrCohYgHn5Yu9GbF
         9n31nv7oWipiPy4Hl2aahYx3GabICyFKKY9iPqyFhVBr/tmxnprjJpp46bQceAnlchj6
         w14g==
X-Forwarded-Encrypted: i=1; AJvYcCV9HGxYBcifoqV5GvPBc+K4JojbOeUyOogzyuq0S81kEURvnWt/r3CHJGPvbypevZYVa6UIXY3RC5k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/JbnztTaASvJufGIMjdmgfxKP9HJ7UGhK2FUXm7QphL6EH0Ap
	aG6pWZx5hY+bnKyUmJGoIIjv7rlUyMqa9dd5sL/JAtCRGJ1a1QIXwKr+SPAlLg==
X-Google-Smtp-Source: AGHT+IFf3sEtLDaRyfpZTWdHzxwwtPEUFzBES16yB/VqDITda14p4KmP7jpxv9GG4wCO5iXcd/5PGg==
X-Received: by 2002:a05:6000:2d82:b0:382:5141:f63d with SMTP id ffacd0b85a97d-3825141f7f2mr841256f8f.53.1732026858182;
        Tue, 19 Nov 2024 06:34:18 -0800 (PST)
Message-ID: <d92cf59a-a798-4223-9439-85ae215b7daa@suse.com>
Date: Tue, 19 Nov 2024 15:34:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mce: Compile do_mca() for CONFIG_PV only
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241119125904.2681402-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: <20241119125904.2681402-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.11.2024 13:59, Andrew Cooper wrote:
> Eclair reports a Misra Rule 8.4 violation; that do_mca() can't see it's
> declaration.  It turns out that this is a consequence of do_mca() being
> PV-only, and the declaration being compiled out in !PV builds.
> 
> Therefore, arrange for do_mca() to be compiled out in !PV builds.  This in
> turn requires a number of static functions to become static inline.

Which generally we advocate against. The #ifdef variant you pointed at on
Matrix wasn't all that bad. Plus ...

> 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>
> 
> Bloat-o-meter on a !PV build reports:
> 
>   add/remove: 0/6 grow/shrink: 0/0 up/down: 0/-3717 (-3717)
>   Function                                     old     new   delta
>   x86_mc_mceinject                              31       -     -31
>   do_mca.cold                                  117       -    -117
>   x86_mc_msrinject                             147       -    -147
>   x86_mc_msrinject.cold                        230       -    -230
>   do_mc_get_cpu_info                           500       -    -500
>   do_mca                                      2692       -   -2692

... what's the effect of the addition of "inline" on a PV=y build? By
using the keyword, we may end up talking the compiler into inlining of
code that better wouldn't be inlined.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:39:44 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:39:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840307.1256074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPOE-000654-Ec; Tue, 19 Nov 2024 14:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840307.1256074; Tue, 19 Nov 2024 14:39: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 1tDPOE-00064x-9q; Tue, 19 Nov 2024 14:39:38 +0000
Received: by outflank-mailman (input) for mailman id 840307;
 Tue, 19 Nov 2024 14: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDPOC-00064r-L3
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:39:36 +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 16961fd5-a684-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 15:39:31 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5cfddb70965so1490170a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:39:31 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cfdbba50ecsm1095315a12.83.2024.11.19.06.39.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:39: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: 16961fd5-a684-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE2OTYxZmQ1LWE2ODQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDI3MTcxLjgzOTA1Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732027171; x=1732631971; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=46V6yXTOiqZXRFj/oeBE1xj8PyZEbjNAzpTXo/gxHkQ=;
        b=G3OfT+UJOXZSLwzoovqizuj3FIonEHDpeOlSyZ5FZKKdAEDVlW4cTsW1iRoQPBnRjV
         U0pgzmOHp3mbrQRKOvsfl00nJ1LhudgCvRLmfvFph2d1mE0Md2/oX4+K6uvfmuzI11PY
         diQkI/czgVrECLetSbmdQPXx4LL1SFj6RLWTM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732027171; x=1732631971;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=46V6yXTOiqZXRFj/oeBE1xj8PyZEbjNAzpTXo/gxHkQ=;
        b=tYgNdEdAGObo5FV+4xOCDh8nQ9AkaO0Z9+tR6KAuay74aeMJd0l6MyI2oZuTWLEape
         5JlhcJhIDlay28fnNJV3XCsHHZMNxsLLwN251Bo18tCXkSV1KmVAcXXofxHFzKP9BmbJ
         sdaP/25ZdJm26Un2c73kxVannxyY23Wd9fvl6SD8/k2s8JbwyOv1Mr8Qtwvy+qU1VM4R
         qwxQMa1RX+NwaOO33mtSzOoXQyDeaX8LNf+hGXgUxmMnEbvl98F4dtv2vjz6Wx9X4gEh
         7bmGQ/1NZwf15//xWacrVcLcaL6Pd1MrPLY9btXQu7JoSFtQYs5xGViW38YDqaZxsceR
         uAEg==
X-Gm-Message-State: AOJu0YwRdluEkakCfG0d+kmLkctmO84FlIz7Y2WO7j+4KBMKjRLQJCWF
	jvqA6wk27mwMLq1bQuTFHLz/6j48CeCWxL5kKuVnS4OilkeftGWuDMQ7JxeZXQA=
X-Google-Smtp-Source: AGHT+IHQRlOf4Cjo/GwctiEeq/jQpx+SLtC35jtYBRm79xaQ4924XzuyVoh2sj1VIVYsetZ1FQd+7g==
X-Received: by 2002:aa7:d615:0:b0:5cf:bf0b:d2ce with SMTP id 4fb4d7f45d1cf-5cfbf0bd4d4mr5489286a12.21.1732027171222;
        Tue, 19 Nov 2024 06:39:31 -0800 (PST)
Date: Tue, 19 Nov 2024 15:39:30 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 2/4] x86/msi: fix Misra Rule 20.7 in msi.h
Message-ID: <ZzyjIgx0faIV31kM@macbook>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-3-roger.pau@citrix.com>
 <05127810-a5d3-46f7-9a5b-8f5ac1ab8b87@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <05127810-a5d3-46f7-9a5b-8f5ac1ab8b87@citrix.com>

On Tue, Nov 19, 2024 at 02:21:35PM +0000, Andrew Cooper wrote:
> On 19/11/2024 10:34 am, Roger Pau Monne wrote:
> > Prune unused macros and adjust the remaining ones to parenthesize macro
> > arguments.
> >
> > No functional change intended.
> >
> > Singed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> It's a little early for carol season, isn't it?
> 
> It would help to identify which macros are being dropped, because the
> diff is far from simple to read.
> 
> AFAICT, its:
> 
> Â  msi_disable()
> Â  msi_enable()
> Â  msix_enable()
> Â  msix_disable()
> Â  msix_unmask()
> Â  msix_mask()
> 
> Splitting this change does make a marginal improvement in the diff, and
> a substantial improvement in `git diff --color-word`'s ability to review
> this change.

Hm, yes, it would likely be easier to parse, I just went on a spree to
clean it up.

> You've also introduced uses of MASK_EXTR() and MASK_INSR(), which at
> least ought to be noted in the commit message.Â  Technically I think it's
> a bugfix for multi_msi_enable(), because I think it now won't overflow
> the 3-bit field if an overly large num is passed in.

Hm, I've become used to MASK_{EXTR,INSR}(), so the change felt natural
since I was already adjusting the code.

> 
> Bloat-o-meter reports:
> 
> add/remove: 0/0 grow/shrink: 3/1 up/down: 15/-61 (-46)
> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
> set_iommu_interrupt_handlerÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  366Â Â Â Â  373Â Â Â Â Â  +7
> write_msi_msgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  348Â Â Â Â  352Â Â Â Â Â  +4
> init_msiÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  574Â Â Â Â  578Â Â Â Â Â  +4
> pci_enable_msiÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1084Â Â Â  1023Â Â Â Â  -61
> 
> 
> Taking the first example, that's caused by swapping this:
> 
> > iommu->msi.msi.mpos = ( ((!!(control & 0x80)) == 1) ?
> > iommu->msi.msi_attrib.pos+16 : iommu->msi.msi_attrib.pos+16 -4);
> 
> for this:
> 
> > iommu->msi.msi.mpos = ((iommu->msi.msi_attrib.pos) + 16 -
> > (((!!((control) & 0x80))) ? 0 : 4));
> 
> and code generation changing from a CMOV to straight-line arithmetic.
> 
> In write_msi_msg(), we actually drop a conditional branch and replace it
> with straight-line arithmetic.
> 
> init_msi() gets a substantial restructuring, but it looks like two
> branches are dropped.
> 
> pci_enable_msi() has the biggest change, but doesn't obviously reduce
> the number of branches.Â  There is clearly less register setup around
> existing branches, so my best guess is that the new macro forms are more
> amenable to common-sub-expression-elimination.
> 
> 
> Either way, it's all minor.Â  Staring at the diff for long enough, I'm
> pretty sure it's all good.

Thanks.

> > ---
> >  xen/arch/x86/include/asm/msi.h | 35 ++++++++++++++--------------------
> >  1 file changed, 14 insertions(+), 21 deletions(-)
> >
> > diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
> > index 748bc3cd6d8b..49a576383288 100644
> > --- a/xen/arch/x86/include/asm/msi.h
> > +++ b/xen/arch/x86/include/asm/msi.h
> > @@ -147,33 +147,26 @@ int msi_free_irq(struct msi_desc *entry);
> >   */
> >  #define NR_HP_RESERVED_VECTORS 	20
> >  
> > -#define msi_control_reg(base)		(base + PCI_MSI_FLAGS)
> > -#define msi_lower_address_reg(base)	(base + PCI_MSI_ADDRESS_LO)
> > -#define msi_upper_address_reg(base)	(base + PCI_MSI_ADDRESS_HI)
> > +#define msi_control_reg(base)		((base) + PCI_MSI_FLAGS)
> > +#define msi_lower_address_reg(base)	((base) + PCI_MSI_ADDRESS_LO)
> > +#define msi_upper_address_reg(base)	((base) + PCI_MSI_ADDRESS_HI)
> >  #define msi_data_reg(base, is64bit)	\
> > -	( (is64bit == 1) ? base+PCI_MSI_DATA_64 : base+PCI_MSI_DATA_32 )
> > +	((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
> >  #define msi_mask_bits_reg(base, is64bit) \
> > -	( (is64bit == 1) ? base+PCI_MSI_MASK_BIT : base+PCI_MSI_MASK_BIT-4)
> > +	((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
> >  #define msi_pending_bits_reg(base, is64bit) \
> >  	((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
> > -#define msi_disable(control)		control &= ~PCI_MSI_FLAGS_ENABLE
> >  #define multi_msi_capable(control) \
> > -	(1 << ((control & PCI_MSI_FLAGS_QMASK) >> 1))
> > +	(1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
> >  #define multi_msi_enable(control, num) \
> > -	control |= (((fls(num) - 1) << 4) & PCI_MSI_FLAGS_QSIZE);
> > -#define is_64bit_address(control)	(!!(control & PCI_MSI_FLAGS_64BIT))
> > -#define is_mask_bit_support(control)	(!!(control & PCI_MSI_FLAGS_MASKBIT))
> > -#define msi_enable(control, num) multi_msi_enable(control, num); \
> > -	control |= PCI_MSI_FLAGS_ENABLE
> > -
> > -#define msix_control_reg(base)		(base + PCI_MSIX_FLAGS)
> > -#define msix_table_offset_reg(base)	(base + PCI_MSIX_TABLE)
> > -#define msix_pba_offset_reg(base)	(base + PCI_MSIX_PBA)
> > -#define msix_enable(control)	 	control |= PCI_MSIX_FLAGS_ENABLE
> > -#define msix_disable(control)	 	control &= ~PCI_MSIX_FLAGS_ENABLE
> > -#define msix_table_size(control) 	((control & PCI_MSIX_FLAGS_QSIZE)+1)
> > -#define msix_unmask(address)	 	(address & ~PCI_MSIX_VECTOR_BITMASK)
> > -#define msix_mask(address)		(address | PCI_MSIX_VECTOR_BITMASK)
> > +	((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
> > +#define is_64bit_address(control)	!!((control) & PCI_MSI_FLAGS_64BIT)
> > +#define is_mask_bit_support(control)	!!((control) & PCI_MSI_FLAGS_MASKBIT)
> 
> You need to retain the outermost brackets for other MISRA reasons.

I was borderline on dropping those braces, as I was expecting Misra to
require them.

> I'm happy to fix up on commit, even splitting the patch (seeing as I've
> already done the split in order to review the rest).

Fine, by split I think you mean the pruning of unused macros vs the
fixing of the parentheses?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:42:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:42:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840320.1256083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPQt-0007uG-Tq; Tue, 19 Nov 2024 14:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840320.1256083; Tue, 19 Nov 2024 14: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 1tDPQt-0007u9-QL; Tue, 19 Nov 2024 14:42:23 +0000
Received: by outflank-mailman (input) for mailman id 840320;
 Tue, 19 Nov 2024 14: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDPQs-0007sn-E5
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:42: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 7aa61723-a684-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:42:19 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so189179366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:42:19 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df265bbsm656457166b.38.2024.11.19.06.42.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:42: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: 7aa61723-a684-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdhYTYxNzIzLWE2ODQtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI3MzM5LjcwODY2Niwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732027339; x=1732632139; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=f389CgUQbnI3ljAJVhUSroeSUtVjEeFdvFsma6weh3c=;
        b=s7M7ehMxV6n8IjTIzYd5g0BXxHD3J7amIKCSpIrTwYbAg3seUpR1W0oTlSvzfeKxwu
         WSA1vjnJ7Kojpma/OPWhovjR4WbbC62JZm8Utukt00JTi1Bgc5k7jVo3iQo9y0gjS817
         2MR8KdEtzoivBIZZfRKbev6LBIYPfsF6EA9C4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732027339; x=1732632139;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f389CgUQbnI3ljAJVhUSroeSUtVjEeFdvFsma6weh3c=;
        b=ErH9zTdgKa16qxTLe4ojxTmsWIG4OGKmjwT3wWMBq+v6o9OfvRiAgmXUGsVzfvrfYH
         u52lzd6OhoxZcC5m2vgEu9kKs8wCyeXA+vrknMouFPrxCliaEXBtQ5+pAQgmcAE7aehZ
         NoyebX4YPK+pKu1cs0GVKMPrzNmMPoXrRT1zcvmJMtpqqboQXQM9PkUoNYbyd+SJUESC
         i4V6R6GzjXOs7wmhaz4EeUgMsKzDUAAQtxVI0IPMpeEDtaQTHYOe1jYB+2eqaP/VKnjR
         hzVsB55hKA/23OMvhTx7bW8kV2ciXA9I1dJtkaIxRO/iGWMTVHgN0GdKjLS3iW5mREL+
         5Dsg==
X-Forwarded-Encrypted: i=1; AJvYcCUhc+AY5r2VkPowmCbVc+cRPjq7BHIWagiBWGMs2tkcDh1vImdTDF93od5xznvyrbP68fUAzsYVbQY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyS9hEdeGj6TIg1t7/ww36WgVMXECMR20AHHlQwnBVL7pByO5fY
	dnkNd/qGcuBrRK9gwq3zN8gHu0g1XV4vbhsTa8O9ain5v23/EXaTl9Et5p60qULOw2pKK0GClUj
	o
X-Google-Smtp-Source: AGHT+IFuhFVNPpwlcad7jfV9jV0WmiXhFFKZ/oSqDrsEIRaCRJ4uGwsBWHpJszp4cw2fqNkNSZtM5g==
X-Received: by 2002:a17:907:3f07:b0:a9d:e01e:ffa9 with SMTP id a640c23a62f3a-aa483482118mr1453777566b.33.1732027339172;
        Tue, 19 Nov 2024 06:42:19 -0800 (PST)
Date: Tue, 19 Nov 2024 15:42:18 +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 3/4] x86/uaccess: rework user access speculative harden
 guards
Message-ID: <ZzyjyvxP0CmBJaD4@macbook>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-4-roger.pau@citrix.com>
 <f733e721-f9b8-4fef-8145-176ebcbdaa01@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <f733e721-f9b8-4fef-8145-176ebcbdaa01@suse.com>

On Tue, Nov 19, 2024 at 03:29:58PM +0100, Jan Beulich wrote:
> On 19.11.2024 11:34, Roger Pau Monne wrote:
> > The current guards to select whether user accesses should be speculative
> > hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and can't)
> > parenthesize the 'args' argument.
> > 
> > Change the logic so the guard is implemented inside the assembly block using
> > the .if assembly directive.
> 
> Hmm, interesting idea. I don't overly like emitting stuff to pre-processed
> and even assembly files, but doing so is probably warranted here. Nevertheless:
> Did we consider at all to deviate these macros instead?

I think the proposal is not overly ugly, as I would otherwise simply
suggest to deviate.  I'm assuming the preference is to attempt to fix
when possible rather than deviate.

> > --- a/xen/arch/x86/usercopy.c
> > +++ b/xen/arch/x86/usercopy.c
> > @@ -11,23 +11,23 @@
> >  #include <asm/uaccess.h>
> >  
> >  #ifndef GUARD
> > -# define GUARD UA_KEEP
> > +# define GUARD 1
> >  #endif
> 
> At least in cases like this one I think a comment is necessary, perhaps as
> terse as /* Keep */ (and /* Drop */ further down).

Right, can adjust if we agree this is the way forward.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:55:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:55:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840330.1256093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPdp-00046X-1n; Tue, 19 Nov 2024 14:55:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840330.1256093; Tue, 19 Nov 2024 14:55: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 1tDPdo-00046Q-Ue; Tue, 19 Nov 2024 14:55:44 +0000
Received: by outflank-mailman (input) for mailman id 840330;
 Tue, 19 Nov 2024 14: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=i5yv=SO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tDPdn-00046K-2K
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:55:43 +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 579c0080-a686-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:55:39 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-53da3b911b9so5056873e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:55:39 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff69959a19sm12079481fa.50.2024.11.19.06.55.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06: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: 579c0080-a686-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMjkiLCJoZWxvIjoibWFpbC1sZjEteDEyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU3OWMwMDgwLWE2ODYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI4MTM5LjgyMjE4NCwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732028139; x=1732632939; 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=TGutgDHVAggsVLyXv1WdSAjed2SlV2/TD2qDemO8/9Y=;
        b=ksWYUfceUjW+GI5rIN7wOaRt4y5UJm8Aw9r21gO2XQnPbvrZ3kVOIIjbVBeWXnUd93
         oBk8kQoicWKu7m8R4EFfAedN528tXg0CnNQ8oHRZEYRYzyD5O5J3y8IKCnSwTbNLwdOI
         PSyFs0H1jO5OuZ6ZmVK2tjJrL2z37jOzMVVB110h6ZRUE75bk3nL+WjrvlU2GccHhHUX
         T0m02qNM5ZKaSobZenE1ziTXsnQqsWEQvGQQKcHdD2HcAdhFpGZ82gMJJ4ASROUuBnPF
         DvBEjOUJFq0sskS3uusiOmF7JaZo7U881jnwvxFWA0SzsuRvj4dxpWWNAPyyaEVigHMZ
         lCOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732028139; x=1732632939;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=TGutgDHVAggsVLyXv1WdSAjed2SlV2/TD2qDemO8/9Y=;
        b=GZwUMZF3OgQMQ/Z+XlIQ7VdgXzpSFooRPiw8f2btJYyDBa9XytzNsCV4aFmkYz0R1p
         NVEKJsr7ICPevAGpMFv4qc4Cs2nGyG9/q3bvUTKJlvC/OwoCx/95WvpBSypqCiNtQtOa
         9FVFzrFKk5Hs5w4aotnfVkqjBzKulPn+6jxBQ8u4JCDUI14ChWe6+q3q6TqG5LNu+SQ/
         Gxxwi3kCklKxSWtcaPloBn5MabxCh8RHXD5uPRjeDubKUH9ANFWco2kNI6KX8/zvj6/1
         QTz0vQUdP9sb7D17CY2OkTHYKfyUPVZGWzKp/6uAxloYse9v3RvWJ2af6ehIBPoZ42j+
         XPVQ==
X-Gm-Message-State: AOJu0YyGIohYEA93t2bB2gtW7F+aMMawUBRqVu3DL8tF8FeRrzicQuK2
	VxFyMAkfd/SSgpkADzJ8B1ENh7LnERZq4rGSghYT0lzUogypwDD2oe1DnQ==
X-Google-Smtp-Source: AGHT+IHKw1FWRLMKK+auX+aPwJo1Ot7LtSKQ4HftfwDtM/GU5haMroVnfEZgO0/ID0xjSQoMVQXLxQ==
X-Received: by 2002:a2e:be89:0:b0:2fb:8de8:7f9e with SMTP id 38308e7fff4ca-2ff6064de25mr72801141fa.1.1732028138664;
        Tue, 19 Nov 2024 06:55:38 -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>,
	Jan Beulich <jbeulich@suse.com>,
	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>
Subject: [PATCH v4] drivers/char: rename arm-uart.c to uart-init.c
Date: Tue, 19 Nov 2024 15:55:32 +0100
Message-ID: <f168e76eacc2fd2e6da559a38c33e187da515614.1732027276.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rename the file containing uart_init() to enable reuse across other
architectures that utilize device trees or SPCR tables to locate UART
information.
After locating UART data, {acpi}_device_init() is called to initialize
the UART.

arm_uart_init() is renamed to uart_init() to be reused by other
architectures.

A new configuration option, CONFIG_GENERIC_UART_INIT, is introduced,
currently available only for Arm. Enabling CONFIG_UART_INIT on additional
architectures will require additional functionality, such as device tree
mapping and unflattening, etc.

arm-uart.c is removed from "ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE"
section in the MAINTAINERS file, as it is no longer Arm-specific and can
now be maintained by maintainers of other architectures.

Use GENERIC_UART_INIT for CONFIG_ARM by adding `select GENERIC_UART_INIT`
to CONFIG_ARM.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V4:
 - Rename UART_INIT config to GENERIC_UART_INIT.
 - Update defintion of GENERIC_UART_INIT config in char/Kconfig:
   drop prompt, help and `depends on` as CONFIG_GENERIC_UART_INIT isn't expected
   to be disabled/enabled by user thereby make GENERIC_UART_INIT config invisible.
 - Add SPDX tag and update the comment in uart-init.c.
 - Update the commit message.
---
Changes in V3:
 - Drop blank line in xen/drivers/char/Kconfig.
 - Rebase on top of the latest staging.
---
Changes in v2:
 - Rename arm-uart.c to uart-init.c instead of moving only dt_uart_init() to
   separate file.
 - Introduce new CONFIG_UART_INIT.
 - Rename arm_uart_init() to uart_init().
 - Add 'select UART_INIT' for CONFIG_ARM to be sure that randconfig won't
   disable UART_INIT.
 - Update the commit message.
---
 MAINTAINERS                  |   1 -
 xen/arch/arm/Kconfig         |   1 +
 xen/arch/arm/setup.c         |   2 +-
 xen/drivers/char/Kconfig     |   3 +
 xen/drivers/char/Makefile    |   2 +-
 xen/drivers/char/arm-uart.c  | 145 -----------------------------------
 xen/drivers/char/uart-init.c | 138 +++++++++++++++++++++++++++++++++
 xen/include/xen/serial.h     |   2 +-
 8 files changed, 145 insertions(+), 149 deletions(-)
 delete mode 100644 xen/drivers/char/arm-uart.c
 create mode 100644 xen/drivers/char/uart-init.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 17fc5f9eec..026aa25a53 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -245,7 +245,6 @@ S:	Supported
 L:	xen-devel@lists.xenproject.org
 F:	docs/misc/arm/
 F:	xen/arch/arm/
-F:	xen/drivers/char/arm-uart.c
 F:	xen/drivers/char/cadence-uart.c
 F:	xen/drivers/char/exynos4210-uart.c
 F:	xen/drivers/char/imx-lpuart.c
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..23bbc91aad 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -12,6 +12,7 @@ config ARM_64
 config ARM
 	def_bool y
 	select FUNCTION_ALIGNMENT_4B
+	select GENERIC_UART_INIT
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE
 	select HAS_PASSTHROUGH
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca..2e27af4560 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -361,7 +361,7 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
 
     gic_preinit();
 
-    arm_uart_init();
+    uart_init();
     console_init_preirq();
     console_init_ring();
 
diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index e175d07c02..e6e12bb413 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -1,3 +1,6 @@
+config GENERIC_UART_INIT
+	bool
+
 config HAS_NS16550
 	bool "NS16550 UART driver" if ARM
 	default n if RISCV
diff --git a/xen/drivers/char/Makefile b/xen/drivers/char/Makefile
index d3b987da1d..8cbbffdca8 100644
--- a/xen/drivers/char/Makefile
+++ b/xen/drivers/char/Makefile
@@ -11,7 +11,7 @@ obj-$(CONFIG_HAS_EHCI) += ehci-dbgp.o
 obj-$(CONFIG_XHCI) += xhci-dbc.o
 obj-$(CONFIG_HAS_IMX_LPUART) += imx-lpuart.o
 obj-$(CONFIG_HAS_LINFLEX) += linflex-uart.o
-obj-$(CONFIG_ARM) += arm-uart.o
+obj-$(CONFIG_GENERIC_UART_INIT) += uart-init.o
 obj-y += serial.o
 obj-$(CONFIG_XEN_GUEST) += xen_pv_console.o
 obj-$(CONFIG_PV_SHIM) += consoled.o
diff --git a/xen/drivers/char/arm-uart.c b/xen/drivers/char/arm-uart.c
deleted file mode 100644
index 91f13a4136..0000000000
--- a/xen/drivers/char/arm-uart.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * xen/drivers/char/arm-uart.c
- *
- * Generic uart retrieved via the device tree or ACPI
- *
- * Julien Grall <julien.grall@linaro.org>
- * Copyright (c) 2013 Linaro Limited.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <asm/device.h>
-
-#include <xen/console.h>
-#include <xen/device_tree.h>
-#include <xen/param.h>
-#include <xen/serial.h>
-#include <xen/errno.h>
-#include <xen/acpi.h>
-
-/*
- * Configure UART port with a string:
- * path:options
- *
- * @path: full path used in the device tree for the UART. If the path
- * doesn't start with '/', we assuming that it's an alias.
- * @options: UART speficic options (see in each UART driver)
- */
-static char __initdata opt_dtuart[256] = "";
-string_param("dtuart", opt_dtuart);
-
-static void __init dt_uart_init(void)
-{
-    struct dt_device_node *dev;
-    int ret;
-    const char *devpath = opt_dtuart;
-    const char *options;
-    char *split;
-
-    if ( !console_has("dtuart") )
-        return; /* Not for us */
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
-
-        if ( chosen )
-        {
-            const char *stdout;
-
-            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
-            if ( ret >= 0 )
-            {
-                printk("Taking dtuart configuration from /chosen/stdout-path\n");
-                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
-                     >= sizeof(opt_dtuart) )
-                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
-            }
-            else if ( ret != -EINVAL /* Not present */ )
-                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
-        }
-    }
-
-    if ( !strcmp(opt_dtuart, "") )
-    {
-        printk("No dtuart path configured\n");
-        return;
-    }
-
-    split = strchr(opt_dtuart, ':');
-    if ( split )
-    {
-        split[0] = '\0';
-        options = split + 1;
-    }
-    else
-        options = "";
-
-    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
-    if ( *devpath == '/' )
-        dev = dt_find_node_by_path(devpath);
-    else
-        dev = dt_find_node_by_alias(devpath);
-
-    if ( !dev )
-    {
-        printk("Unable to find device \"%s\"\n", devpath);
-        return;
-    }
-
-    ret = device_init(dev, DEVICE_SERIAL, options);
-
-    if ( ret )
-        printk("Unable to initialize dtuart: %d\n", ret);
-}
-
-#ifdef CONFIG_ACPI
-static void __init acpi_uart_init(void)
-{
-    struct acpi_table_spcr *spcr = NULL;
-    int ret;
-
-    acpi_get_table(ACPI_SIG_SPCR, 0, (struct acpi_table_header **)&spcr);
-
-    if ( spcr == NULL )
-    {
-        printk("Unable to get spcr table\n");
-    }
-    else
-    {
-        ret = acpi_device_init(DEVICE_SERIAL, NULL, spcr->interface_type);
-
-        if ( ret )
-            printk("Unable to initialize acpi uart: %d\n", ret);
-    }
-}
-#else
-static void __init acpi_uart_init(void) { }
-#endif
-
-void __init arm_uart_init(void)
-{
-    if ( acpi_disabled )
-        dt_uart_init();
-    else
-        acpi_uart_init();
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/drivers/char/uart-init.c b/xen/drivers/char/uart-init.c
new file mode 100644
index 0000000000..a218139938
--- /dev/null
+++ b/xen/drivers/char/uart-init.c
@@ -0,0 +1,138 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+/*
+ * Derived from:
+ * xen/drivers/char/arm-uart.c
+ *
+ * Generic uart retrieved via the device tree or ACPI
+ *
+ * Julien Grall <julien.grall@linaro.org>
+ * Copyright (c) 2013 Linaro Limited.
+ */
+
+#include <asm/device.h>
+
+#include <xen/console.h>
+#include <xen/device_tree.h>
+#include <xen/param.h>
+#include <xen/serial.h>
+#include <xen/errno.h>
+#include <xen/acpi.h>
+
+/*
+ * Configure UART port with a string:
+ * path:options
+ *
+ * @path: full path used in the device tree for the UART. If the path
+ * doesn't start with '/', we assuming that it's an alias.
+ * @options: UART speficic options (see in each UART driver)
+ */
+static char __initdata opt_dtuart[256] = "";
+string_param("dtuart", opt_dtuart);
+
+static void __init dt_uart_init(void)
+{
+    struct dt_device_node *dev;
+    int ret;
+    const char *devpath = opt_dtuart;
+    const char *options;
+    char *split;
+
+    if ( !console_has("dtuart") )
+        return; /* Not for us */
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        const struct dt_device_node *chosen = dt_find_node_by_path("/chosen");
+
+        if ( chosen )
+        {
+            const char *stdout;
+
+            ret = dt_property_read_string(chosen, "stdout-path", &stdout);
+            if ( ret >= 0 )
+            {
+                printk("Taking dtuart configuration from /chosen/stdout-path\n");
+                if ( strlcpy(opt_dtuart, stdout, sizeof(opt_dtuart))
+                     >= sizeof(opt_dtuart) )
+                    printk("WARNING: /chosen/stdout-path too long, truncated\n");
+            }
+            else if ( ret != -EINVAL /* Not present */ )
+                printk("Failed to read /chosen/stdout-path (%d)\n", ret);
+        }
+    }
+
+    if ( !strcmp(opt_dtuart, "") )
+    {
+        printk("No dtuart path configured\n");
+        return;
+    }
+
+    split = strchr(opt_dtuart, ':');
+    if ( split )
+    {
+        split[0] = '\0';
+        options = split + 1;
+    }
+    else
+        options = "";
+
+    printk("Looking for dtuart at \"%s\", options \"%s\"\n", devpath, options);
+    if ( *devpath == '/' )
+        dev = dt_find_node_by_path(devpath);
+    else
+        dev = dt_find_node_by_alias(devpath);
+
+    if ( !dev )
+    {
+        printk("Unable to find device \"%s\"\n", devpath);
+        return;
+    }
+
+    ret = device_init(dev, DEVICE_SERIAL, options);
+
+    if ( ret )
+        printk("Unable to initialize dtuart: %d\n", ret);
+}
+
+#ifdef CONFIG_ACPI
+static void __init acpi_uart_init(void)
+{
+    struct acpi_table_spcr *spcr = NULL;
+    int ret;
+
+    acpi_get_table(ACPI_SIG_SPCR, 0, (struct acpi_table_header **)&spcr);
+
+    if ( spcr == NULL )
+    {
+        printk("Unable to get spcr table\n");
+    }
+    else
+    {
+        ret = acpi_device_init(DEVICE_SERIAL, NULL, spcr->interface_type);
+
+        if ( ret )
+            printk("Unable to initialize acpi uart: %d\n", ret);
+    }
+}
+#else
+static void __init acpi_uart_init(void) { }
+#endif
+
+void __init uart_init(void)
+{
+    if ( acpi_disabled )
+        dt_uart_init();
+    else
+        acpi_uart_init();
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 3d21207a3d..63a82b032d 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -166,7 +166,7 @@ void xhci_dbc_uart_init(void);
 static void inline xhci_dbc_uart_init(void) {}
 #endif
 
-void arm_uart_init(void);
+void uart_init(void);
 
 struct physdev_dbgp_op;
 int dbgp_op(const struct physdev_dbgp_op *op);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 14:56:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 14:56:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840337.1256102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPew-0004c2-9P; Tue, 19 Nov 2024 14:56:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840337.1256102; Tue, 19 Nov 2024 14:56: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 1tDPew-0004bv-6m; Tue, 19 Nov 2024 14:56:54 +0000
Received: by outflank-mailman (input) for mailman id 840337;
 Tue, 19 Nov 2024 14:56: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=i5yv=SO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tDPeu-0004bm-Sn
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 14:56:52 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8169e222-a686-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 15:56:49 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ff5d2b8f0eso40483341fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 06:56:49 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ff6985119csm11897141fa.8.2024.11.19.06.56.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 06:56: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: 8169e222-a686-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmUiLCJoZWxvIjoibWFpbC1sajEteDIyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgxNjllMjIyLWE2ODYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI4MjA5Ljk2MDMxMywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732028209; x=1732633009; 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=z6Ug0ZbHZNV2xFrmo7L+ZSB8sgvSeVlh42Jguj5Nn9A=;
        b=T95jOYT7Qf4XV6qKFgkMkw4Jc6Eth84OcTNpmp5GLbGY/vGshd14fK9CpX46M1W1H7
         C7ksOQson/b04NEcQ2ncIOm9vu8TRjF9cbsBeRLslsDtVJ1huqPtKnLRpNJk7t4c76fg
         HJJC7zxT2n709C2S6sD40j4AqSor4hrW8MODfz3hQU46537poScLbHq8Vta7EbEMiEr6
         KkDbq5wmIyZo/AU6y4iDTyR83sQrQcvtzNvz4wW9yGTlq2AMU26+PYNrGATN1DR91UmQ
         4FFEu5RQEx9oUsvSJVtOFlsi6Q8u1C4J7VcVh1kqwIHFL5qXqfmekVurLxKpzKOem4Y8
         Payg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732028209; x=1732633009;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=z6Ug0ZbHZNV2xFrmo7L+ZSB8sgvSeVlh42Jguj5Nn9A=;
        b=oR2LZAxcyyF4fjjxMY6ls8DB2kN2Cg87kValNvrL7UsRHqNUmHnBJxTieoUE8LePMD
         exwlpPLIIl3uo0osywBngrZKduVmkvkNuCO7cqVRuRb+QR+KV8I4I+A6LgdqMmtRlJCq
         MGQqG1YD4g4UMjTM/tiPY7yixLk1pKewAJWWUPK9adHJ06vJIPzHJVdixnLmgNdCilZx
         CsGIH+zNvMCwSS8yLsOxbl3cOKfuhYf+HBsVTNSwVFYj6xP7t1qWd/AsAvM+XIcnPMAO
         cgORVi2iIc2TxHD+NF9lLHEbop0XRW1rN//t6ZqDJqTx1wHX1obXMlL0STvkN+AC5WdA
         SIPw==
X-Gm-Message-State: AOJu0YxQOelCcOsBkBXFS87DAfbG/7imxVp6v0pZ5Dr49GgrdX4iCoPA
	b73Uwwd3CA9CbxSlWu45L6TDERVbJHqRkarL31d2Uyf9apTTZ0OK2CwA7A==
X-Google-Smtp-Source: AGHT+IHSyVLJekL0XVTgtj8MqleA3AseEnHlI0eVCxgbK+8L7MaAEQDi8nutjOCuRTS1tDkC/zw/Qw==
X-Received: by 2002:a05:651c:12cb:b0:2fa:c0fc:e3d8 with SMTP id 38308e7fff4ca-2ff606fd9bfmr76109241fa.38.1732028208937;
        Tue, 19 Nov 2024 06:56:48 -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 v4] xen/common: Move gic_dt_preinit() to common code
Date: Tue, 19 Nov 2024 15:56:46 +0100
Message-ID: <54d0ff689e167b3f3137afea45307f762ce0a974.1732027385.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce intc_dt_preinit() in the common codebase, as it is not
architecture-specific and can be reused by both PPC and RISC-V.
This function identifies the node with the interrupt-controller property
in the device tree and calls device_init() to handle architecture-specific
initialization of the interrupt controller.

Make minor adjustments compared to the original ARM implementation of
gic_dt_preinit():
 - Remove the local rc variable in gic_dt_preinit() since it is only used once.
 - Change the prefix from gic to intc to clarify that the function is not
   specific to ARMâ€™s GIC, making it suitable for other architectures as well.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Add SPDX tag in intc.c
 - s/num_gics/num_intc
 - Update the comment: s/GIC/interrupt controller.
---
Changes in v3:
 - s/ic/intc.
 - Update the commit message.
 - Move intc_dt_preinit() to common/device-tree/intc.c.
 - Add declaration of intc_dt_preinit() in xen/device_tree.h.
 - Revert intc_preinit()-related changes and just back gic_preinit() in
   Arm's gic.c.
 - Revert ACPI-related changes.
---
Changes in v2:
 - Revert changes connected to moving of gic_acpi_preinit() to common code as
   it isn't really architecture indepent part.
 - Update the commit message.
 - Move stub of ic_acpi_preinit() to <asm-generic/device.h> for the case when
   CONFIG_ACPI=n.
---
 xen/arch/arm/gic.c              | 32 +-----------------------------
 xen/common/device-tree/Makefile |  1 +
 xen/common/device-tree/intc.c   | 35 +++++++++++++++++++++++++++++++++
 xen/include/xen/device_tree.h   |  6 ++++++
 4 files changed, 43 insertions(+), 31 deletions(-)
 create mode 100644 xen/common/device-tree/intc.c

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 3eaf670fd7..acf61a4de3 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -214,36 +214,6 @@ int gic_map_hwdom_extra_mappings(struct domain *d)
     return 0;
 }
 
-static void __init gic_dt_preinit(void)
-{
-    int rc;
-    struct dt_device_node *node;
-    uint8_t num_gics = 0;
-
-    dt_for_each_device_node( dt_host, node )
-    {
-        if ( !dt_get_property(node, "interrupt-controller", NULL) )
-            continue;
-
-        if ( !dt_get_parent(node) )
-            continue;
-
-        rc = device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL);
-        if ( !rc )
-        {
-            /* NOTE: Only one GIC is supported */
-            num_gics = 1;
-            break;
-        }
-    }
-    if ( !num_gics )
-        panic("Unable to find compatible GIC in the device tree\n");
-
-    /* Set the GIC as the primary interrupt controller */
-    dt_interrupt_controller = node;
-    dt_device_set_used_by(node, DOMID_XEN);
-}
-
 #ifdef CONFIG_ACPI
 static void __init gic_acpi_preinit(void)
 {
@@ -269,7 +239,7 @@ static void __init gic_acpi_preinit(void) { }
 void __init gic_preinit(void)
 {
     if ( acpi_disabled )
-        gic_dt_preinit();
+        intc_dt_preinit();
     else
         gic_acpi_preinit();
 }
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 58052d074e..7c549be38a 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -2,3 +2,4 @@ obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
 obj-y += device-tree.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
+obj-y += intc.o
diff --git a/xen/common/device-tree/intc.c b/xen/common/device-tree/intc.c
new file mode 100644
index 0000000000..d2bcbc2d5e
--- /dev/null
+++ b/xen/common/device-tree/intc.c
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+
+void __init intc_dt_preinit(void)
+{
+    struct dt_device_node *node;
+    uint8_t num_intc = 0;
+
+    dt_for_each_device_node( dt_host, node )
+    {
+        if ( !dt_get_property(node, "interrupt-controller", NULL) )
+            continue;
+
+        if ( !dt_get_parent(node) )
+            continue;
+
+        if ( !device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL) )
+        {
+            /* NOTE: Only one interrupt controller is supported */
+            num_intc = 1;
+            break;
+        }
+    }
+
+    if ( !num_intc )
+        panic("Unable to find compatible interrupt contoller"
+              "in the device tree\n");
+
+    /* Set the interrupt controller as the primary interrupt controller */
+    dt_interrupt_controller = node;
+    dt_device_set_used_by(node, DOMID_XEN);
+}
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index e6287305a7..33d70b9594 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -238,6 +238,12 @@ extern rwlock_t dt_host_lock;
 struct dt_device_node *
 dt_find_interrupt_controller(const struct dt_device_match *matches);
 
+#ifdef CONFIG_HAS_DEVICE_TREE
+void intc_dt_preinit(void);
+#else
+static inline void intc_dt_preinit(void) { }
+#endif
+
 #define dt_prop_cmp(s1, s2) strcmp((s1), (s2))
 #define dt_node_cmp(s1, s2) strcasecmp((s1), (s2))
 #define dt_compat_cmp(s1, s2) strcasecmp((s1), (s2))
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 15:01:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 15:01:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840351.1256113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPjM-0006MT-TM; Tue, 19 Nov 2024 15:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840351.1256113; Tue, 19 Nov 2024 15:01: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 1tDPjM-0006MM-Qf; Tue, 19 Nov 2024 15:01:28 +0000
Received: by outflank-mailman (input) for mailman id 840351;
 Tue, 19 Nov 2024 15:01: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=7Qpl=SO=amd.com=Luca.Miccio@srs-se1.protection.inumbo.net>)
 id 1tDPjL-0006MA-4h
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 15:01:27 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20605.outbound.protection.outlook.com
 [2a01:111:f403:2406::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 219fbf2c-a687-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 16:01:19 +0100 (CET)
Received: from BN9PR03CA0389.namprd03.prod.outlook.com (2603:10b6:408:f7::34)
 by MN0PR12MB6247.namprd12.prod.outlook.com (2603:10b6:208:3c1::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Tue, 19 Nov
 2024 15:01:13 +0000
Received: from BL6PEPF0001AB4C.namprd04.prod.outlook.com
 (2603:10b6:408:f7:cafe::5) by BN9PR03CA0389.outlook.office365.com
 (2603:10b6:408:f7::34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24 via Frontend
 Transport; Tue, 19 Nov 2024 15:01:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 BL6PEPF0001AB4C.mail.protection.outlook.com (10.167.242.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8158.14 via Frontend Transport; Tue, 19 Nov 2024 15:01:12 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 19 Nov
 2024 09:01:12 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 19 Nov
 2024 09:01:11 -0600
Received: from xsjlumiccio40x.xilinx.com (10.180.168.240) by
 SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Tue, 19 Nov 2024 09:01:11 -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: 219fbf2c-a687-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNjo6NjA1IiwiaGVsbyI6Ik5BTTAyLVNOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjIxOWZiZjJjLWE2ODctMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI4NDc5Ljg1ODk0Niwic2VuZGVyIjoibHVjYS5taWNjaW9AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l20bwZWr7CU7mN6bCO0ApHpxfq4H1cYv2/9WRupGVa64j5ipe6Tlkc+k3uI3K1Oa3v8duArTxgXHPdZC7YVecWRA4bad21gMClvy05MshUYD6QR4t1IoRFJKO7I87d6Q2gb+0/bkx39Jtx8f5c+XpS4DYdRUWTbNMAJk2bQfYAK3IorbRNwhN5pPRtN/9mYFN+kVIjs3I9lX2Q1MSnsVyNEpJVBnNb/QKXiJlFS0ToLGFnXP0CmD15wgSKuHXYcwLG2XpNDvvVsXkhdh1wLepteEDQBjVyD/dMPdURSj/R0KLJwiGMkTBVMfnc56AkxvImmM4sgKygFpe84y3gPDTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BgX1RG63i7eS+LqYlHg9yb4nVKr5zAHP3y8gE1F5F4A=;
 b=Ltr08MRltq3eb9oFs6/XuUVnlH5nwUoWgx6Sc18VH5Z3x0LgJEfaw+w28Mi2toRMhFKoT+BS2P/zvmrEnjhMhZtcEDjMezp0Lb+yGbMtpAbgSyZi2KNUo47TeXV+z9pALfBbRtcYCYH2AXoRUiVwpYTmOQPkQivxJCVUYzQwNu6UzYbL5qbr5fRlfcFq/fYdgG2Sk9AYMg0WcoDmT0GSLeHidgmqXeaQN2VrC2sBdmh5/jjNwWA2McSavxpFSlmKHBEIVoo2DHFiAcx38Q9k/DwphQmuJVpPd164vsDwzS01GKl/JE+X7Vls4LRrkwZ182jgFN3+suj+iESNOlkT0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.12) 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=BgX1RG63i7eS+LqYlHg9yb4nVKr5zAHP3y8gE1F5F4A=;
 b=a4VA/KG90tTfiS/jNmD1qE727KDGQ4Ucmg7quoeyDho4G0lINKmqOR7WbVZ57IVjHwsedTQ3nTCdWu2T+MWCc+Vpxt/mxM1/tUEqwWh4gi2YSq3u47+6TEKc+jEAPxhKHkveep8XN65C5rMgB4umyLqw7KwrNeOrP+/oFVtsTLI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.12)
 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.12 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.12; helo=SATLEXMB04.amd.com; pr=C
From: Luca Miccio <luca.miccio@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>
Subject: [ImageBuilder] [PATCH V2] UBOOT_SOURCE/SCRIPTS variables must always be set
Date: Tue, 19 Nov 2024 07:01:11 -0800
Message-ID: <20241119150111.3569267-1-luca.miccio@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: luca.miccio@amd.com does not designate
 permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4C:EE_|MN0PR12MB6247:EE_
X-MS-Office365-Filtering-Correlation-Id: e1e68807-8f6a-46ac-2c62-08dd08ab0242
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?WldhSl9mUQqMIVzjRT1SNYQq2sHkPWAwQv203TCEi5eX1g2Q+H/eqmmy6Y0/?=
 =?us-ascii?Q?McvaZ36SkH06ZNsdei+pUzK+RKy08oiuJbMm0bIuCjXC/zuGlg1gBI8r9YEK?=
 =?us-ascii?Q?LocIRioYsoWm5hrCZJ6+tUri+8m4aPZuSiA0dOj4fiFEIbf5YUim6Hu6oO03?=
 =?us-ascii?Q?13wIPyQCJGoMh/8G7ZUecHRPAQ2Toz9u7ukS6ejvI3zvJZQo3oPr4nIqbCeI?=
 =?us-ascii?Q?KeFIBcHtUxM81hkQyeketTzVqTp14fnWhtJouP3POwMJAeIRcQ+0qfmrcA8M?=
 =?us-ascii?Q?YsBCngwYV5d09NIeR+tFnbfT9cmCLkd/ebslJ5d9Nvcmsa2iRb3bshJSHUv7?=
 =?us-ascii?Q?LOjKurNKjxqpLOThBKmAP/nNHNuverZzfaksYbHV+t4zhMmsZX0uUjQkaj4t?=
 =?us-ascii?Q?td7lcZAzx7W5q+Xd95iuS4SFOzNb0DwyWWTREoMbfw4Ls8Bm+A0bScv8UWD/?=
 =?us-ascii?Q?WuyIcGH6JfZ38opG+DVmmEWvlVHGvVovO9C3H6FEHhkfS5Vdx3HxUWKn3gsb?=
 =?us-ascii?Q?xpIKMXR4wb0miJjCerV/ciJmNNRjNhRxGshInU5BOVW7fpbP2PnvnW9QoPcq?=
 =?us-ascii?Q?+r1iDn31rn4dEu9EOTUQySPvESM5Tnu8TaK1mNdJAhgD4nFaYIJC3EtMw9ad?=
 =?us-ascii?Q?q8lJWMisaI29N/CtS2vRjlMHs7KL4vPS6aiRDV/mGnklFpiusxHC5jx/uLw2?=
 =?us-ascii?Q?7I4AfBJdIJfF44tVyT+5HZeVmO+veNfeTIVejZYon1SKdP6dD6jnz80itfc9?=
 =?us-ascii?Q?ORK0/SoEYq7WT4Iv4R6/7L40EmwlTnhA5nPxLPqUmegrMVtsat4q7Y0dpHpY?=
 =?us-ascii?Q?T1bC+EGSHIvHzImbXWMeKD9emjz2/iSvxwFd/GNfwz1FClQ31zQ7JC94agzx?=
 =?us-ascii?Q?3gOxgTA+/pRnB3ysM2YJ7vtxioBYpaOdn/zZ8tyTjnLCN94+JEUTLRIpqFw1?=
 =?us-ascii?Q?+fG9k+BJFBjA7clyPlQx3AO41L0Ug7VyF6kiTBSHhGccV1oTeLNWU9t5upqF?=
 =?us-ascii?Q?cSKCoYj3Ol3n769uPD/dh1FKhzRqK4uooIFB/2K+xCP3Q8WMvKgj9dulbuR7?=
 =?us-ascii?Q?cXLrQuB/wM6N+vJIDWCjkr6eEAW/Y7NRPpWWzybs6JscZa3JfZSJEZ19MteP?=
 =?us-ascii?Q?HV2DOkkDuaUtJpykcWcZPTH60InI1GB0MFHORK2e8okO4HKQrDgJISfAjO+h?=
 =?us-ascii?Q?S/GUUFxObr99XTSLD9V79vvUR0u2oSTO0D8ItEBBzKm2qB+CYYFLZlxNEkwS?=
 =?us-ascii?Q?GXR5zudVjrnVTHLEeo/jM6sBnXjvWYlHQpHpA56C4BDsE6buGoB/LtZNmjeh?=
 =?us-ascii?Q?3xCKT5H9DWHiAdf4KFCFRV1xx7oYbI6SpSsXK5hGbTfgrPNzQ/iARfmg+sZH?=
 =?us-ascii?Q?C1qUGwZHeMUVvmGy9fLoEBKyrtP0f1iBZmWSXnVIBgV/4I+itQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 15:01:12.6018
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e1e68807-8f6a-46ac-2c62-08dd08ab0242
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6247

The current README incorrectly omits the need for the UBOOT_SOURCE and
UBOOT_SCRIPT variables for uboot-script-gen to function properly.
Moreover, the script silently fails if these variables are not set.
Return an error if the the UBOOT_SCRIPT variable is not set and
correct the documentation accordingly.

Signed-off-by: Luca Miccio <luca.miccio@amd.com>
---
 README.md                |  3 ++-
 scripts/uboot-script-gen | 12 ++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 4fcd908..ae2fdfd 100644
--- a/README.md
+++ b/README.md
@@ -272,7 +272,8 @@ Where:
 
 - UBOOT_SOURCE and UBOOT_SCRIPT specify the output. They are optional
   as you can pass -o FILENAME to uboot-script-gen as a command line
-  parameter
+  parameter. It has to be set either in the config file or CLI argument
+  though.
 
 - APPEND_EXTRA_CMDS: is optional and specifies the path to a text file
   containing extra u-boot commands to be added to the boot script before
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index dcf5bdb..fc63702 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1210,6 +1210,18 @@ then
     UBOOT_SCRIPT="$uboot_out_opt".scr
     UBOOT_SOURCE="$uboot_out_opt".source
 fi
+
+if test ! "$UBOOT_SOURCE"
+then
+    echo "UBOOT_SOURCE not set, either specify it in the config or set it with the -o option"
+    exit 1
+fi
+
+if test ! "$UBOOT_SCRIPT"
+then
+    UBOOT_SCRIPT="${UBOOT_SOURCE%.source}.scr"
+fi
+
 if test "$fit_opt" && ! test "$FIT"
 then
     FIT="${UBOOT_SOURCE%.source}.fit"
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 15:17:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 15:17:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840364.1256123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDPyU-00026r-6N; Tue, 19 Nov 2024 15:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840364.1256123; Tue, 19 Nov 2024 15: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 1tDPyU-00026k-2K; Tue, 19 Nov 2024 15:17:06 +0000
Received: by outflank-mailman (input) for mailman id 840364;
 Tue, 19 Nov 2024 15:17: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=d4NG=SO=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tDPyT-00026e-GL
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 15:17:05 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on20616.outbound.protection.outlook.com
 [2a01:111:f403:2608::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 52c62a5b-a689-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 16:17:00 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA6PR03MB10241.eurprd03.prod.outlook.com
 (2603:10a6:102:3c8::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.21; Tue, 19 Nov
 2024 15:16:57 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8158.013; Tue, 19 Nov 2024
 15:16: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: 52c62a5b-a689-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwODo6NjE2IiwiaGVsbyI6IkVVUjAyLURCNS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUyYzYyYTViLWE2ODktMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDI5NDIwLjYxNTE5LCJzZW5kZXIiOiJ2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lInCq9fRawhins7fXhgf3HL7XEEssozG9oPaTdu+sKm/sTtpqXHE0BYMov2kODClFxQtwDgHFb8uLdNWrlAzqabn8W1U/slwbWnIkeFe6mWbgKXbEHGME66CV3te8yne07i7Q+pQatoClFjI2tDQ3dBjxj4g0zz0kEiTJ+EcY3QzUi7AuBdZcaEfW62dlLYNLnidqkObzXV/TmkutgRSnBh7X1ZQhkPuCDij06pf6Qai2cgT4RoVzN8L9EC7QBF3TJBK3aUHLadqRNoUuHNVuOH3qCdOzP8hHUlhTZlSnm5ECB84J44FGFTiClBf18zsHgS3/W/E8aSlKgzZHo2C6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S0esZiHgRpQ5BIk+owbZ3pSV+3GbEw3mv/LcZeWMX50=;
 b=S9viVa6y1AGpoD4thbiqOyE3Nz1N7YtDDfSmPzOwaflTg20ms0OkUbJYaA7kdRabmUdNolW5CIc2g4cV2Hpe4QQI+bIULPaBJxPNHxqkHvl3HrZN18qUB/SldRgZkFGLREt2tcIV4mgALK5MLTQadhW/Nq8Vr+LcYJBfqmvI6rsLxd9ng6okyA4B6zUvNYgF5aCNLBfi+zw9Yu6KO+TXQjmojJMlwZx9CYClbBB7S4fmScBvyM9BWO+YIhV6PaDzPCUAqiwyvO/+l/XeuXVKAwZ1m19runuyiMYZn4/m1aLKX5lJBg2/45TwtL9GWt7R43zLPrAg5+VglSzX78QxHg==
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=S0esZiHgRpQ5BIk+owbZ3pSV+3GbEw3mv/LcZeWMX50=;
 b=H+4vekZPdFGlmXdAvQd35eNtda+0PO5dzNDgGLa3QFt2YZVJfv38AafkgWVuA1m2cuKt+Lrp8qdpu3vsJhwWz1VWOHeHGYhLacDYk+dWG1Z7RDE0GCltb8Sdwa0l7YoYSqtOj0R6S5fw2uNVZ/8S+wwHCw5hU/eMaVODNAi+lR8Yhx+pVCszkfuRKkCI3jlptdQ457Qtz9BT47F9jBiJDZnwAh/wc31hqzl7L0WeD0EOxJ4pmfS+REsAQj+NyPmF6XhcPLTJHhbwm861fA4B/B+SZBMO4uhZzqRTIPKfBv+BgCUG7OeQB9LojLa/Kh9igus5hxTPrEeWH6k9CMo+xA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@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>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, Juergen
 Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Index: AQHbNucXRmUX3Y7lRUGcS7d55ZSXhw==
Date: Tue, 19 Nov 2024 15:16:56 +0000
Message-ID: <875xojmexk.fsf@epam.com>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
	<alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
	(Stefano Stabellini's message of "Mon, 18 Nov 2024 17:46:20 -0800	(PST)")
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: GV1PR03MB10456:EE_|PA6PR03MB10241:EE_
x-ms-office365-filtering-correlation-id: 8851a33d-a86d-480b-d88f-08dd08ad34c6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?zxy+mADM9YbHPYHC5oh0RvoduvS2zQ+X/WuXo84Hp/I0thOvojOPJD8u5n?=
 =?iso-8859-1?Q?kyxckmjcaaiDNATVwrfNQoG3EV6ga+LGfnjJd8fyFtu4KykhpLyCX7LAkc?=
 =?iso-8859-1?Q?pye6H6ajrRSUHh9aPUnWhHbqasAiNypE2E/otU7YF06dvDShWb6edVnJ9s?=
 =?iso-8859-1?Q?SE4K1nhrv6UKY8lUESMzILA8ZrJ90okyzaprlD4sVE+qPj8ZMA1ZaWRsNj?=
 =?iso-8859-1?Q?chjwRhAIMRROyVPvZfVlAdL5KPkk6q+g6YhmNTleRLiJivdoVOgojmYNEQ?=
 =?iso-8859-1?Q?9uhGCQUP7PlInjiwggqgL7TuO6BLNIl+7U2MykIvgV9spzqEdrSBdzLGcY?=
 =?iso-8859-1?Q?rVnWqBDFh9mn/sVnC5cA1yPECoCuwal4K+APXN7nb1rLt9YvxRUyxaJn71?=
 =?iso-8859-1?Q?FeHo8Dsa+f+pzxOAzOgoGFxSgifrp7u5f2+d1Tdum5LdR7cG03EKMXqLHM?=
 =?iso-8859-1?Q?irVIg/TjW6sKsYNluDj1gg7mF9hP2t136cwVETUmvltJ1Med9esfwqxKon?=
 =?iso-8859-1?Q?QTHxjWQ+0AOk0m0oCkmXyLmJhnleDWuGSUyRna25JHm45Mi/dqCyoBoTqv?=
 =?iso-8859-1?Q?3R2RgAFoTCVihkV+KqJyKpyWnwpISQS9GXpz+OBs9KdytRgPT6KIsyXVky?=
 =?iso-8859-1?Q?XdgmFQVwgsDD1APs1nNSVzrpoADaltrFb3L0mJ8q92D9cwASSEX/x2CBe6?=
 =?iso-8859-1?Q?LppJZBATbYXw2FMKN+0dVEqjg4XujnWM4kvkSxjKqFNB3eAvpbjXm4EwQV?=
 =?iso-8859-1?Q?eitMm6pDbygiTLFbPWG7kDY1YGHMk3tFw4DTDw/bN2fgouJPqSmdKatp9l?=
 =?iso-8859-1?Q?Dp/0xICkKUylko0XdClwvOZ6/UcHL/tHJL58404NhP1h7N3k6nnL1SLsOQ?=
 =?iso-8859-1?Q?9dALgUUBokuX03H3ffK80pv2yhnyG3bTq3O36WcODaMKo69zdKCStbzFtz?=
 =?iso-8859-1?Q?53A4iVVhap7y5T6gCQ/zr5C55La3FwdKsYgbLEegVgZ1cNE9ycSCx99qGZ?=
 =?iso-8859-1?Q?0aoqr1W8BkjBLlUw5E09Pi+9cHopW/KXBqC/AGdMjOM0ze+rVm0HVdj4Cy?=
 =?iso-8859-1?Q?/NYZElV/p2DbjXVX/ju1aHlsFXxoGDnOgad0Q0K7U9sP9o7VvPVwvlUB0i?=
 =?iso-8859-1?Q?CgZcVBHTKsxAOrBEOWRDvYQtAZ+oNGhuVhYiTv5XPVwe4FMEBsDEJv4BeH?=
 =?iso-8859-1?Q?HFLFa1ewpf8BXVT2TMRMAW4imsZrpPIgm3WDnKFgVMaTAVQqnCJzLI8H7+?=
 =?iso-8859-1?Q?uphYFDgXHqjz2c3s+Qo3Gx7ijZAf6xni4DfVViyLN6dVRPKGMQ/ZuDLjFS?=
 =?iso-8859-1?Q?ptunTzKFn88R2WqmvbCZPJnahpuIqEMjLJxV167Q5OyqTtkWcbUE3JlZek?=
 =?iso-8859-1?Q?k89u3kh/DK?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?kE+PgFsbYvLztEvEkPyZjgke9//9ir3gZj4doJQdlVKB9HNEt2DBJdQYO9?=
 =?iso-8859-1?Q?Yowuwo13ihPQHqBxlZ3xlHwlO+9F+e+N+xYrQBmwgNMgDzpnpfKrNGsN8u?=
 =?iso-8859-1?Q?9wNKkd837YcmOAzOK6GfojjSlBkTzsnTLmGae4ojdOKzi0k4aNwIqns4wo?=
 =?iso-8859-1?Q?Cs3GSFRT0pcOxWTUfKO8cD2PxbLoIo2c53eX1n1Z8g1KvMejAMGzbemPJX?=
 =?iso-8859-1?Q?knee/mGLjDQkLh0ui+Y9xaEpMUbeHwtaH75KmkK4efNyMc39VHgehkwvs3?=
 =?iso-8859-1?Q?gl6vhwI77jnxJuSaWXao5fLyU8NY1RlXAzMD1otUOMuB8ppFoINTc+9ijT?=
 =?iso-8859-1?Q?hz7FEEroT8ZWgbPEwvhMenzPkyRx4ubR/JoRPbMX9pHZpm9HAfNvFs/zjo?=
 =?iso-8859-1?Q?fUEk5z/WEDVZyl+bw0qScYksP63R/f/r5HV5Yj6gNS2mF3HW7zPSEGpfzH?=
 =?iso-8859-1?Q?fy3NQY3NpCIrQMR8zkrc1JGX32b1o9s8NosWlWGCE6sCAiWji4iywRQHqj?=
 =?iso-8859-1?Q?XDrWTgXbRMvenLt9A3yCgHGFZotxI5//BoklnNgZLzJBdSO61Z6mK+EOTJ?=
 =?iso-8859-1?Q?ER9AoE/T8/QKo0MfplJKgLWM8oqptbl6TPw8FLBTVuo4V+mECXCIRgeGBA?=
 =?iso-8859-1?Q?3UghLWeDvQunif2JzWvO7qFlfsJpUmAmRsz7KSQBsje2lZRWDo+wU2zptM?=
 =?iso-8859-1?Q?SJ+C+WqiS2v+sz7437LxDQBj6WfFxJ3cDKQMML4XBoh7DuW0dsqqF9b496?=
 =?iso-8859-1?Q?wHFljasEqNVxLXSpnOrcm1gUV/ShraqJ14b1qiVt9/njyiGb2U5uX0pe5i?=
 =?iso-8859-1?Q?WcCgzGaole3vU1+Zl1QXRAFbmONA+qPRvIgWX6akg1Yx542VwedmhUEjd6?=
 =?iso-8859-1?Q?YcfgoCoWQvakUj9Fn4EaIFZcp2TQxnWvtda815ayu82RFS5gkYv7FAKWH4?=
 =?iso-8859-1?Q?JEwS7MIBFV+MG22EpvopENRfvtNkXCEpqygbfoMgv2Xqgnx+FDiF9at1II?=
 =?iso-8859-1?Q?DkKOOqjodZPuu8a+w9C/NSfqXozijGKbhu95eUCwvhAoRz1J8NGOCp2KP1?=
 =?iso-8859-1?Q?H+HdLKUQUa68acFG2yhv47wy2jdaF2SgzWwZ4biNG+sEIkI/Rv8OgqVJFB?=
 =?iso-8859-1?Q?ahFEOWjFEgypSi+Dg0mVJ4mnwxtTGB4fFyrOD7fq8GAY26oVjcW9g8zqG+?=
 =?iso-8859-1?Q?rrDGXhzvVzPiBrJ9FJaM51U8Z9HGbIOtRH/dGzZtzGm371DjISo1GVwtVz?=
 =?iso-8859-1?Q?jiVEBR3qwnSKWUDeOX7i3zH8qAt4DZLre6tKz2Pkd0jC6eJGetipGvXMGZ?=
 =?iso-8859-1?Q?TOOs1f2wTe3yG/j3IGracD/A812dCwCq+aR2qf0QPqyf53DZY5BEz4FrTI?=
 =?iso-8859-1?Q?/yShntXneabmNsk1SPU5cr4+NLDSD7WCsmIhyoT2W8iohfPvibnwYiGPD9?=
 =?iso-8859-1?Q?+nbkWXVfSb4z9gIJBFa/HWkxe64gzHi1uZS98gzJOx1hQ3tXDasi7i0Mfp?=
 =?iso-8859-1?Q?lezZDeFgGUm7FLt0adFbCeiaZ+r0mz1wNg8UlxCRIH4ERf1l/PjrWvFxwW?=
 =?iso-8859-1?Q?e+gZDK0kyFwa436Fkh7Cbl0PlNb9UIuOApGtxGJTs2mNT5UtpdwXzsoKRp?=
 =?iso-8859-1?Q?vqL62HfqehPheOVXVyasx4U2wFJgZsPZR2G8Qcl8oEYHAeiPXRa0nTTQ?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8851a33d-a86d-480b-d88f-08dd08ad34c6
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2024 15:16:56.3767
 (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: AxPv0cCiYa4iQ0u9WmJkKAZUw+rk5YHRkYKIWm+aTICEyNBsqVKCJY6mTvkhyR3PgtWHhzGSMgzUpqj1d6pxzFPnNiyQr/qxzlf/hIR8l3o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10241


Hi Stefano,

Stefano Stabellini <sstabellini@kernel.org> writes:

> On Thu, 14 Nov 2024, Volodymyr Babchuk wrote:

[...]

>> +Building LibAFL-QEMU based fuzzer
>> +---------------------------------
>> +
>> +Fuzzer is written in Rust, so you need Rust toolchain and `cargo` tool
>> +in your system. Please refer to your distro documentation on how to
>> +obtain them.
>> +
>> +Once Rust is ready, fetch and build the fuzzer::
>> +
>> + # git clone
>> https://github.com/xen-troops/xen-fuzzer-rs
>> +  # cd xen-fuzzer-rs
>> +  # cargo build
>
> Is this the only way to trigger the fuzzer? Are there other ways (e.g.
> other languages or scripts)? If this is the only way, do we expect it to
> grow much over time, or is it just a minimal shim only to invoke the
> fuzzer (so basically we need an x86 version of it but that's pretty much
> it in terms of growth)?

Well, original AFL++ is written in C. And I planned to use it
initially. I wanted to make plugin for QEMU to do the basically same
thing that LibAFL does - use QEMU to emulate target platform, create
snapshot before running a test, restore it afterwards.

But then I found LibAFL. It is a framework for creating fuzzers, it
implements the same algorithms as original AFL++ but it is more
flexible. And it already had QEMU support. Also, it seems it is quite
easy to reconfigure it for x86 support. I didn't tried tested this yet,
but looks like I need only to change one option in Cargo.toml.

This particular fuzzer is based on LibAFL example, but I am going to
tailor it for Xen Project-specific needs, like CI integration you
mentioned below.

As for test harness, I am using Zephyr currently. My first intention was
to use XTF, but it is x86-only... I am still considering using XTF for
x86 runs.

Zephyr was just the easiest and fastest way to trigger hypercalls. At
first I tried to use Linux kernel, but it was hard to cover all possible
failure paths. Zephyr is much simpler in this regard. Even better is to
use MiniOS or XTF. But ARM support in MiniOS is in sorry state and XTF
does not work on ARM at all.

[...]

>>  void call_psci_cpu_off(void)
>>  {
>> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
>> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
>> +#endif
>
> I think we should add a wrapper with an empty implementation in the
> regular case and the call to libafl_qemu_end when the fuzzer is enabled.
> So that here it becomes just something like:
>
>   fuzzer_success();

I considered this. In the next version I'll add fuzzer.h with inline wrappe=
rs.


[...]

>> @@ -1452,6 +1456,10 @@ static long do_poll(const struct sched_poll *sche=
d_poll)
>>      if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )
>>          return -EFAULT;
>>
>> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
>> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
>> +#endif
>
> I am not sure about this one, why is this a success?

vCPU get blocked here basically forever. So test harness can't call
libafl_qemu_end(LIBAFL_QEMU_END_OK) from it's side because it is never
scheduled after this point.

> Honestly, aside from these two comments, this looks quite good. I would
> suggest adding a GitLab CI job to exercise this, if nothing else, to
> serve as an integration point since multiple components are required for
> this to work.

I was considering this as well. Problem is that fuzzing should be
running for a prolonged periods of time. There is no clear consensus on
"how long", but most widely accepted time period is 24 hours. So looks
like it should be something like "nightly build" task. Fuzzer code
needs to be extended to support some runtime restriction, because right
now it runs indefinitely, until user stops it.

I am certainly going to implement this, but this is a separate topic,
because it quires changes in the fuzzer app. Speaking on which... Right
now both fuzzer and test harness reside in our github repo, as you
noticed. I believe it is better to host it on xenbits as an official
part of the Xen Project.

--
WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 15:31:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 15:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840374.1256132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDQCe-0006oT-Bn; Tue, 19 Nov 2024 15:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840374.1256132; Tue, 19 Nov 2024 15:31: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 1tDQCe-0006oM-9L; Tue, 19 Nov 2024 15:31:44 +0000
Received: by outflank-mailman (input) for mailman id 840374;
 Tue, 19 Nov 2024 15:31: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDQCd-0006me-C9
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 15:31:43 +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 5d7ffdef-a68b-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 16:31:37 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2fb4af0b6beso49134071fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 07:31:37 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dffbaf8sm667686666b.122.2024.11.19.07.31.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 07:31: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: 5d7ffdef-a68b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmYiLCJoZWxvIjoibWFpbC1sajEteDIyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVkN2ZmZGVmLWE2OGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDMwMjk3LjI2NjQwMywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732030296; x=1732635096; 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=HndC8XrotjRyo85dZwX65ZIQAKa8dPh8VRGWQEf/h4k=;
        b=acF1nePEsvBHUmU7+Oja6UPJee7hxrYSSTLQMXHPGbOeER+PNiK4emqUeC1JtS5EG8
         Of2GroZku8p8VhJYym+HHavTm/G0P0iYiEVXsI6ueVZotwyTtOzqvH+Dv+Fy+cd+pg6/
         FH9/Wguhym9MJvlCJ6hel2B4CtKKBHw3RAyv8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732030296; x=1732635096;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HndC8XrotjRyo85dZwX65ZIQAKa8dPh8VRGWQEf/h4k=;
        b=QpEJ2rBzo9g2pea/jtqrE+OUgB+eGn33HrfuCCw64Pke9Abr5o59DRV3XLD3C8yE6b
         oGxpUra7ryADAcKQStcVARE7GvQTWy+aj2HwWy7lLSCFUC52lkL4KasTPQAkuJMZudF7
         yjTWDhxlnPJ+s99t1Q0fOee6am1ExMGgRGEuIL9vfTN8wJoyszR8nT13ePxmMFhnC++9
         gvROflWIgaBbciu6R+9EPCsxgkbYYqa8DABNsXsDNQ/vVSqb4Udpf7hdE9fJe0UxI4/7
         7q5n0XX5rb1M+0IS9PZ7PTRQiLTewBrrg1hg6sDOVu7SHHvFNfvXd3hlD7C61/4paUZz
         ZMaQ==
X-Forwarded-Encrypted: i=1; AJvYcCWznt60Yx1qTZZdJ19y0jv5Jymr8JLn8W3y9ySF5ej9jcb4kZme+HsNl6Y7QPi5iXWkvdWy40E+MvA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoakruSNAMt8LYTqiT3bQXgiOTjofh4iCaHsZwdDODN5j27GYi
	9Y7mtOErwUOqBS4+oFmPobGSXZ11xawlZeF6BcJ4bv0nmRPne3YsYis+uzL6jxSYaSX+lMRR3il
	d
X-Google-Smtp-Source: AGHT+IEiSUxh0Pw+LQ9WbYbuC6ViU8OHDbgFGyQlPTaytzNeFKyJv2VGDiWe0h6iupgpCT1BLa/0ew==
X-Received: by 2002:a2e:be9e:0:b0:2ff:559e:c877 with SMTP id 38308e7fff4ca-2ff606f8091mr132085111fa.33.1732030296545;
        Tue, 19 Nov 2024 07:31:36 -0800 (PST)
Message-ID: <9cf6ea3e-b6b5-4fc8-a0f1-53c1b2f7ab31@citrix.com>
Date: Tue, 19 Nov 2024 15:31:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] x86/uaccess: rework user access speculative harden
 guards
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-4-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241119103444.23296-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 10:34 am, Roger Pau Monne wrote:
> The current guards to select whether user accesses should be speculative
> hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and can't)
> parenthesize the 'args' argument.
>
> Change the logic so the guard is implemented inside the assembly block using
> the .if assembly directive.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
> The guard check could be moved inside of the guest_access_mask_ptr macro, but
> given it's limited usages it's clearer to keep the check in the callers IMO.

Overall this is far more legible, and I'm tempted to take it on that
justification alone.Â  But this is Jan's pile of magic.

There is a weird effect from this change:

add/remove: 2/0 grow/shrink: 2/2 up/down: 740/-739 (1)
FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
build_symbol_tableÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  -Â Â Â Â  686Â Â Â  +686
build_symbol_table.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  -Â Â Â Â Â  48Â Â Â Â  +48
pv_map_ldt_shadow_pageÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  641Â Â Â Â  644Â Â Â Â Â  +3
pv_emulate_gate_opÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2919Â Â Â  2922Â Â Â Â Â  +3
livepatch_op.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  557Â Â Â Â  509Â Â Â Â  -48
livepatch_opÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  5952Â Â Â  5261Â Â Â  -691

which is clearly changing inlining decisions.Â  I suspect it's related to...

> diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/usercopy.c
> index 7ab2009efe4c..d66beecc5507 100644
> --- a/xen/arch/x86/usercopy.c
> +++ b/xen/arch/x86/usercopy.c
> @@ -11,23 +11,23 @@
>  #include <asm/uaccess.h>
>  
>  #ifndef GUARD
> -# define GUARD UA_KEEP
> +# define GUARD 1
>  #endif
>  
>  unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
>  {
> -    GUARD(unsigned dummy);
> +    unsigned __maybe_unused dummy;

... this.Â  This doesn't need to be __maybe_unused, because ...

>  
>      stac();
>      asm volatile (
> -        GUARD(
> +        ".if " STR(GUARD) "\n"
>          "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
> -        )
> +        ".endif\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))
> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
> +          [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy)

... these parameters are referenced unconditionally.

However, it does mean the compiler is spilling the scratch registers
even when guard is 0.Â  I expect this is what is affecting the inlining
decisions.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 15:33:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 15:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840384.1256143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDQDv-0007Wo-PS; Tue, 19 Nov 2024 15:33:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840384.1256143; Tue, 19 Nov 2024 15:33: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 1tDQDv-0007Wh-MN; Tue, 19 Nov 2024 15:33:03 +0000
Received: by outflank-mailman (input) for mailman id 840384;
 Tue, 19 Nov 2024 15:33: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDQDu-0007WZ-P2
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 15:33:02 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8dfbec5b-a68b-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 16:32:58 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-53b13ea6b78so5557597e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 07:32:58 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df50041sm657515166b.43.2024.11.19.07.32.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 07: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: 8dfbec5b-a68b-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhkZmJlYzViLWE2OGItMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDMwMzc4LjUyNzI2Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732030378; x=1732635178; 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=N4D/wXfRzeOdtDZqfTpqIydxBPLig7mBWZGz+UPhk3Q=;
        b=bShf2+/Ngao4xuBD2wsGKIU9H6utckKSwgebAhJD+x/hBq3dgR7j5dZErkAFosaQZ4
         tzv2NiS5/ZHP123UrLYwjC4huNZ/U7AZCet73GFqgRSp6qXMem+Hwcx5xN5xBblJjDio
         Q/qcJwSZD17qrNftHJUMeStdfliAq4QFjwsws=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732030378; x=1732635178;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N4D/wXfRzeOdtDZqfTpqIydxBPLig7mBWZGz+UPhk3Q=;
        b=RtVQF4jZeXkmtfVTN3u1/AwmbJjXqeskx/EeDDkY8sdVlZ1VHiOYI2HDgnHG+fiNcV
         L1QUKseSnBSS1Jib69Kf3rI3e+yoa2Tg5Tl4Ks00kZd0hdkHndRh54Azoxyny5UPk0I5
         31lD72JF1ziL/iryLtFZAp8nzCnnYsK3gJHO8gOb2lvxRc1G/IBpNjBQnLC74eye/myS
         KE6UnojxLc/E53so9VU06mu3uKR1Fo6PVLsCcqj16Rg2n+7A/gAk4Txd9RNV5ZrXSV/4
         XwPzm6R0zp9LmbA2ytJysQsG/Dm2No/Q2+nHBXzj2FF4IHaxuOFE87swu3NAfcpgeZOR
         iIdQ==
X-Forwarded-Encrypted: i=1; AJvYcCV7XBk87G8ZJMif12UOkX3akvTrxRfEMF7Vu2eMbik1O0QyhbdunosWkegNnEbi/07IZyKHi2VJufk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykD/yIjvFV7kFtX5G5g63A6S1AEmvBxmBiKKkGTupFVgGMw9pD
	StajH1levEnC8FA+kzK3Top/r/j1oIS2RZDyR31vr3Hnn5EYdGbkfIAvn19bkRQARSs+JZ1rlLC
	N
X-Google-Smtp-Source: AGHT+IHlyRP7WCdZWF9TtLv0MvyRixzuKvzTkRsTmcnh8ffemxFr9xO/b/S5kgLdoKLvGxQJYTZflg==
X-Received: by 2002:a05:6512:224b:b0:53d:a16e:3684 with SMTP id 2adb3069b0e04-53dab3b16ebmr11942664e87.41.1732030377968;
        Tue, 19 Nov 2024 07:32:57 -0800 (PST)
Message-ID: <f7be7236-f479-4d42-8c81-bdcc7b2bc7bc@citrix.com>
Date: Tue, 19 Nov 2024 15:32:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] automation/eclair: make Misra rule 20.7 blocking for
 x86 also
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Simone Ballarin <simone.ballarin@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-5-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241119103444.23296-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 10:34 am, Roger Pau Monne wrote:
> There are no violations left, make the rule globally blocking for both x86 and
> ARM.
>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Obviously subject to all the other patches going in.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 15:35:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 15:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840464.1256153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDQGW-00008B-5Z; Tue, 19 Nov 2024 15:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840464.1256153; Tue, 19 Nov 2024 15:35: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 1tDQGW-00007w-2q; Tue, 19 Nov 2024 15:35:44 +0000
Received: by outflank-mailman (input) for mailman id 840464;
 Tue, 19 Nov 2024 15:35: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDQGU-00007L-HQ
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 15:35:42 +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 ec82de9b-a68b-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 16:35:37 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5ced377447bso8028010a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 07:35:37 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e043b9bsm660231766b.151.2024.11.19.07.35.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 07:35: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: ec82de9b-a68b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVjODJkZTliLWE2OGItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDMwNTM3LjIxNDk0Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732030536; x=1732635336; 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=rbLd4sK5vaBvKPoxPp6lAZqVFWoJ7KuiwCfnK3TQztk=;
        b=ppj3er/tIN9d4E9+RRDaDA5VZPUkyE/4V+UGoZ1D2KJE4FKpftIkIkdfhv8tAAreCD
         hsqhWLeBxmIg3ccvZ1ZISGpAOxtzrjd5olVKRuk6IIW/E4nUjxYbledzzYCrD8/urzOD
         GkwdIJMyatsEXjbzoV+rE3t5s1rbKH8JQ1bcU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732030536; x=1732635336;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rbLd4sK5vaBvKPoxPp6lAZqVFWoJ7KuiwCfnK3TQztk=;
        b=bhfiJYrHwCyQHe4t41ZsxY7WcStnuMz3x6vHYwvhvK7L/SJACNnk6VigesVXMkGgUf
         35/6V52xQo+vvb5D0hGuFUInL6gWRni/0R3Y3dR1coUdJaHSB3AYvXsnCX3kUwUTqhFO
         fExTP4tIKCid12k6JJS0qxb0q+cjI91uZZyglWoUJX+YAq0NU8cLb7pL2+6hvq3tXJwp
         WN5zp7rePj0q8esW+yCKc5eBVwCoiyAyabZqOxHHAT8fvg3TnNNlls3Yc5NhsnpwbhsV
         voQs2cZvIAGMCGEpJ2QWoQQgWJ9mkbBZMRizA3uFcU7TPXAC3w4YAtVA7U24Ww7nAMQI
         44CA==
X-Gm-Message-State: AOJu0YzqrmFmLM+4gYIntzFBFd5VUTmUZkxnfGH79SRO69pqbMkHhYLv
	YdQynS/wJS2UUS1w7T/Iri1KIfHwl2OAeqGk3dPWxtZxpm+KApt0Ancya57oOa9XbpJ5ALrJi6c
	V
X-Google-Smtp-Source: AGHT+IGfcALRY1XdxVidzXcAUhW+3ukUnivFMn0UVBUwBjvhflPiz9jWzrP/jTLioe6oxJvf4Z1TYg==
X-Received: by 2002:a17:907:809:b0:a99:5021:bcf0 with SMTP id a640c23a62f3a-aa483454541mr1437799266b.34.1732030536642;
        Tue, 19 Nov 2024 07:35:36 -0800 (PST)
Message-ID: <d6d2cd7f-35ba-4480-b21a-b3ddef0e6d73@citrix.com>
Date: Tue, 19 Nov 2024 15:35:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/msi: fix Misra Rule 20.7 in msi.h
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-3-roger.pau@citrix.com>
 <05127810-a5d3-46f7-9a5b-8f5ac1ab8b87@citrix.com> <ZzyjIgx0faIV31kM@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <ZzyjIgx0faIV31kM@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 2:39 pm, Roger Pau MonnÃ© wrote:
> On Tue, Nov 19, 2024 at 02:21:35PM +0000, Andrew Cooper wrote:
>> On 19/11/2024 10:34 am, Roger Pau Monne wrote:
>>> Prune unused macros and adjust the remaining ones to parenthesize macro
>>> arguments.
>>>
>>> No functional change intended.
>>>
>>> Singed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> It's a little early for carol season, isn't it?
>>
>> It would help to identify which macros are being dropped, because the
>> diff is far from simple to read.
>>
>> AFAICT, its:
>>
>> Â  msi_disable()
>> Â  msi_enable()
>> Â  msix_enable()
>> Â  msix_disable()
>> Â  msix_unmask()
>> Â  msix_mask()
>>
>> Splitting this change does make a marginal improvement in the diff, and
>> a substantial improvement in `git diff --color-word`'s ability to review
>> this change.
> Hm, yes, it would likely be easier to parse, I just went on a spree to
> clean it up.
>
>> You've also introduced uses of MASK_EXTR() and MASK_INSR(), which at
>> least ought to be noted in the commit message.Â  Technically I think it's
>> a bugfix for multi_msi_enable(), because I think it now won't overflow
>> the 3-bit field if an overly large num is passed in.
> Hm, I've become used to MASK_{EXTR,INSR}(), so the change felt natural
> since I was already adjusting the code.
>
>> Bloat-o-meter reports:
>>
>> add/remove: 0/0 grow/shrink: 3/1 up/down: 15/-61 (-46)
>> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
>> set_iommu_interrupt_handlerÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  366Â Â Â Â  373Â Â Â Â Â  +7
>> write_msi_msgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  348Â Â Â Â  352Â Â Â Â Â  +4
>> init_msiÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  574Â Â Â Â  578Â Â Â Â Â  +4
>> pci_enable_msiÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1084Â Â Â  1023Â Â Â Â  -61
>>
>>
>> Taking the first example, that's caused by swapping this:
>>
>>> iommu->msi.msi.mpos = ( ((!!(control & 0x80)) == 1) ?
>>> iommu->msi.msi_attrib.pos+16 : iommu->msi.msi_attrib.pos+16 -4);
>> for this:
>>
>>> iommu->msi.msi.mpos = ((iommu->msi.msi_attrib.pos) + 16 -
>>> (((!!((control) & 0x80))) ? 0 : 4));
>> and code generation changing from a CMOV to straight-line arithmetic.
>>
>> In write_msi_msg(), we actually drop a conditional branch and replace it
>> with straight-line arithmetic.
>>
>> init_msi() gets a substantial restructuring, but it looks like two
>> branches are dropped.
>>
>> pci_enable_msi() has the biggest change, but doesn't obviously reduce
>> the number of branches.Â  There is clearly less register setup around
>> existing branches, so my best guess is that the new macro forms are more
>> amenable to common-sub-expression-elimination.
>>
>>
>> Either way, it's all minor.Â  Staring at the diff for long enough, I'm
>> pretty sure it's all good.
> Thanks.
>
>>> ---
>>>  xen/arch/x86/include/asm/msi.h | 35 ++++++++++++++--------------------
>>>  1 file changed, 14 insertions(+), 21 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
>>> index 748bc3cd6d8b..49a576383288 100644
>>> --- a/xen/arch/x86/include/asm/msi.h
>>> +++ b/xen/arch/x86/include/asm/msi.h
>>> @@ -147,33 +147,26 @@ int msi_free_irq(struct msi_desc *entry);
>>>   */
>>>  #define NR_HP_RESERVED_VECTORS 	20
>>>  
>>> -#define msi_control_reg(base)		(base + PCI_MSI_FLAGS)
>>> -#define msi_lower_address_reg(base)	(base + PCI_MSI_ADDRESS_LO)
>>> -#define msi_upper_address_reg(base)	(base + PCI_MSI_ADDRESS_HI)
>>> +#define msi_control_reg(base)		((base) + PCI_MSI_FLAGS)
>>> +#define msi_lower_address_reg(base)	((base) + PCI_MSI_ADDRESS_LO)
>>> +#define msi_upper_address_reg(base)	((base) + PCI_MSI_ADDRESS_HI)
>>>  #define msi_data_reg(base, is64bit)	\
>>> -	( (is64bit == 1) ? base+PCI_MSI_DATA_64 : base+PCI_MSI_DATA_32 )
>>> +	((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
>>>  #define msi_mask_bits_reg(base, is64bit) \
>>> -	( (is64bit == 1) ? base+PCI_MSI_MASK_BIT : base+PCI_MSI_MASK_BIT-4)
>>> +	((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
>>>  #define msi_pending_bits_reg(base, is64bit) \
>>>  	((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
>>> -#define msi_disable(control)		control &= ~PCI_MSI_FLAGS_ENABLE
>>>  #define multi_msi_capable(control) \
>>> -	(1 << ((control & PCI_MSI_FLAGS_QMASK) >> 1))
>>> +	(1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
>>>  #define multi_msi_enable(control, num) \
>>> -	control |= (((fls(num) - 1) << 4) & PCI_MSI_FLAGS_QSIZE);
>>> -#define is_64bit_address(control)	(!!(control & PCI_MSI_FLAGS_64BIT))
>>> -#define is_mask_bit_support(control)	(!!(control & PCI_MSI_FLAGS_MASKBIT))
>>> -#define msi_enable(control, num) multi_msi_enable(control, num); \
>>> -	control |= PCI_MSI_FLAGS_ENABLE
>>> -
>>> -#define msix_control_reg(base)		(base + PCI_MSIX_FLAGS)
>>> -#define msix_table_offset_reg(base)	(base + PCI_MSIX_TABLE)
>>> -#define msix_pba_offset_reg(base)	(base + PCI_MSIX_PBA)
>>> -#define msix_enable(control)	 	control |= PCI_MSIX_FLAGS_ENABLE
>>> -#define msix_disable(control)	 	control &= ~PCI_MSIX_FLAGS_ENABLE
>>> -#define msix_table_size(control) 	((control & PCI_MSIX_FLAGS_QSIZE)+1)
>>> -#define msix_unmask(address)	 	(address & ~PCI_MSIX_VECTOR_BITMASK)
>>> -#define msix_mask(address)		(address | PCI_MSIX_VECTOR_BITMASK)
>>> +	((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
>>> +#define is_64bit_address(control)	!!((control) & PCI_MSI_FLAGS_64BIT)
>>> +#define is_mask_bit_support(control)	!!((control) & PCI_MSI_FLAGS_MASKBIT)
>> You need to retain the outermost brackets for other MISRA reasons.
> I was borderline on dropping those braces, as I was expecting Misra to
> require them.
>
>> I'm happy to fix up on commit, even splitting the patch (seeing as I've
>> already done the split in order to review the rest).
> Fine, by split I think you mean the pruning of unused macros vs the
> fixing of the parentheses?

Split pruning out into another patch, fold the bracket fix into this one.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 15:59:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 15:59:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840678.1256180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDQcz-0006fs-AE; Tue, 19 Nov 2024 15:58:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840678.1256180; Tue, 19 Nov 2024 15:58: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 1tDQcz-0006fl-6G; Tue, 19 Nov 2024 15:58:57 +0000
Received: by outflank-mailman (input) for mailman id 840678;
 Tue, 19 Nov 2024 15:58: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDQcy-0006ff-F4
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 15:58:56 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2be5d131-a68f-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 16:58:52 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4A9625C05FC;
 Tue, 19 Nov 2024 15:58:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17B7DC4CED0;
 Tue, 19 Nov 2024 15:58:49 +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: 2be5d131-a68f-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjJiZTVkMTMxLWE2OGYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDMxOTMzLjEyOTE3Nywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732031931;
	bh=noXrjoKp9mRrdVhk4goMiofKEedi8RZSqzTr95AtCIw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jqZMNpVPRHaiJM7emF+IyBzssiCRApPO5oalfSSB3vUXNymL7nKqbxwwjvb6KRgzc
	 bDjdkTMoPb3RFusM0CYYcXvxX4sLIEbBXeT9vUuRz2e31xBiPA2WDf3kGzs5YRaqui
	 Wz2ZPbYiJSre/CLJq8RF+kGTgMc5AnGt3hWIfXOuh4bobqGnEW/r4hAv3wMk1QgmRi
	 s10SoSysHt4YQ6yj89KpfP9gnflnMXTkUObc3gzRTegA3XZu2J48HgUd0EzNyR2KYb
	 Crjrpe1bxWkyyADHNzCiRNefDljsIbzI7AOVuzxKNsVNf3EtkGt54N+V2vb4Zo8gyH
	 iarQ0RhKvBGFA==
Date: Tue, 19 Nov 2024 07:58:48 -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>, Julien Grall <julien@xen.org>, 
    "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH] MISRA: Mark Rule 8.4 as clean
In-Reply-To: <20241119130437.2681955-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411190758100.1160299@ubuntu-linux-20-04-desktop>
References: <20241119130437.2681955-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-151164455-1732031911=:1160299"
Content-ID: <alpine.DEB.2.22.394.2411190758470.1160299@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-151164455-1732031911=:1160299
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2411190758471.1160299@ubuntu-linux-20-04-desktop>

On Tue, 19 Nov 2024, Andrew Cooper wrote:
> All violations have been fixed up, so mark it as clean.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> 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: consulting@bugseng.com <consulting@bugseng.com>
> 
> As I've not committed "xen/bootinfo: Include declaration for
> fw_unreserved_regions()" yet, I'm very tempted to drop the churn in the arm64
> line and have this as the singular patch adjusting the clean list.
> ---
>  automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index 7944ce2ee3b2..755ea3271fc9 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -47,6 +47,7 @@ MC3R1.R7.4||
>  MC3R1.R8.1||
>  MC3R1.R8.2||
>  MC3R1.R8.3||
> +MC3R1.R8.4||
>  MC3R1.R8.5||
>  MC3R1.R8.6||
>  MC3R1.R8.8||
> @@ -115,7 +116,7 @@ if(string_equal(target,"x86_64"),
>  )
>  
>  if(string_equal(target,"arm64"),
> -    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3R1.R8.4||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
> +    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
>  )
>  
>  -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
> 
> base-commit: 3128d7248f2ad389b8e9a3e252958cbfbd1898ee
> prerequisite-patch-id: 46b8fc2e9df2fd6be1bbbd6b50463e0e15a8f94d
> prerequisite-patch-id: c122b170f57ab96fe52c37aebf1f4bb366194637
> prerequisite-patch-id: 1c2d96bf17c5da0981b6c62939d3b7cc1e05933e
> prerequisite-patch-id: b3e43902729416e18b4fada7f529b4cb02b1815e
> prerequisite-patch-id: 9cb4598ff123c3b153f50f08798ad66a849c1af6
> -- 
> 2.39.5
> 
--8323329-151164455-1732031911=:1160299--


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 16:36:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 16:36:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840695.1256189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDRCt-0006Jk-14; Tue, 19 Nov 2024 16:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840695.1256189; Tue, 19 Nov 2024 16:36: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 1tDRCs-0006Jd-TM; Tue, 19 Nov 2024 16:36:02 +0000
Received: by outflank-mailman (input) for mailman id 840695;
 Tue, 19 Nov 2024 16:36: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDRCr-0006JX-8z
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 16:36:01 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a3b59ed-a694-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 17:35:57 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-53b13ea6b78so5696288e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 08:35:57 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df50a97sm674638866b.61.2024.11.19.08.35.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 08:35: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: 5a3b59ed-a694-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVhM2I1OWVkLWE2OTQtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDM0MTU3LjI0MjE1NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732034156; x=1732638956; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ysVWFhommthHijw5t3FYm9q+ziPEYzY7OHekTeCaiv0=;
        b=rhuHvDVP9rWEjyXp368u8oHudxSgzNNo1KI8HqndWDCwUz0kg96hxiR5/v8lowe3L9
         Sk/ajfx58j/SDVgXSzdEfP5JKVv68nN+DqcC1gARGwZFHvFB1VN0MZAnS20i0TZNX0eA
         Yx0uJF6btfmmWcUGzB1YIAnZzNuZtkIJBeO2s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732034156; x=1732638956;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ysVWFhommthHijw5t3FYm9q+ziPEYzY7OHekTeCaiv0=;
        b=Wf+aTFYXu0eEsZYenuskOcltuerwijeDix0Jr8kQ359KoQemKL4FjinWh0FJCzhQzG
         zGhYlKxRcq7VWexFsZj5x4VzV74D+qBSVLtPr7gD6If20oOf6vBln6Wnzd/kebb+Ola8
         DShGI/1quDFbAajUXXbbDudMWpsJJYqHqXBTzXLiS5hTlJN6PO7IfhSNPsf8w+J3iQeP
         S8N48/693Y+bVzkCjWwsA9fqaoaTDMQJy+kR+NUEORa1V3E28OwAU0wTEhEMMhlspqBz
         JmwZ8yHHkzNmDKUfoFVKwpYRdBliE+9tNpr6anafJpgWsHWoIqGDUxYuE7jQcr/9BsP0
         YXWw==
X-Gm-Message-State: AOJu0Yz5reQuc8/m44IN+2B7phbnsDCkH54wCSpmNYIpA6EAPMVVlCUt
	o/r3c6C1EJ1K8kMPtMz2vq392urYiEwNrakj9JM6NFjZbhRlDfVxRHi3UWqvvQVH210/UEGbDWK
	A
X-Google-Smtp-Source: AGHT+IFPwEOQKRAnrMVjoNlDR94BbHP/tZRXL1e3y/Q9yLIMbdElQj1HP6QNRsq39nu9mlTyV3HLWg==
X-Received: by 2002:a05:6512:b1e:b0:53d:a504:9334 with SMTP id 2adb3069b0e04-53dab3b1718mr9326493e87.44.1732034156547;
        Tue, 19 Nov 2024 08:35:56 -0800 (PST)
Date: Tue, 19 Nov 2024 17:35:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 3/4] x86/uaccess: rework user access speculative harden
 guards
Message-ID: <Zzy-az2gE2PP3zSD@macbook>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-4-roger.pau@citrix.com>
 <9cf6ea3e-b6b5-4fc8-a0f1-53c1b2f7ab31@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9cf6ea3e-b6b5-4fc8-a0f1-53c1b2f7ab31@citrix.com>

On Tue, Nov 19, 2024 at 03:31:34PM +0000, Andrew Cooper wrote:
> On 19/11/2024 10:34 am, Roger Pau Monne wrote:
> > The current guards to select whether user accesses should be speculative
> > hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and can't)
> > parenthesize the 'args' argument.
> >
> > Change the logic so the guard is implemented inside the assembly block using
> > the .if assembly directive.
> >
> > No functional change intended.
> >
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> > The guard check could be moved inside of the guest_access_mask_ptr macro, but
> > given it's limited usages it's clearer to keep the check in the callers IMO.
> 
> Overall this is far more legible, and I'm tempted to take it on that
> justification alone.Â  But this is Jan's pile of magic.
> 
> There is a weird effect from this change:
> 
> add/remove: 2/0 grow/shrink: 2/2 up/down: 740/-739 (1)
> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
> build_symbol_tableÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  -Â Â Â Â  686Â Â Â  +686
> build_symbol_table.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  -Â Â Â Â Â  48Â Â Â Â  +48
> pv_map_ldt_shadow_pageÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  641Â Â Â Â  644Â Â Â Â Â  +3
> pv_emulate_gate_opÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2919Â Â Â  2922Â Â Â Â Â  +3
> livepatch_op.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  557Â Â Â Â  509Â Â Â Â  -48
> livepatch_opÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  5952Â Â Â  5261Â Â Â  -691

So build_symbol_table() is no longer inlined in load_payload_data()
and thus livepatch_op().

> which is clearly changing inlining decisions.Â  I suspect it's related to...
> 
> > diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/usercopy.c
> > index 7ab2009efe4c..d66beecc5507 100644
> > --- a/xen/arch/x86/usercopy.c
> > +++ b/xen/arch/x86/usercopy.c
> > @@ -11,23 +11,23 @@
> >  #include <asm/uaccess.h>
> >  
> >  #ifndef GUARD
> > -# define GUARD UA_KEEP
> > +# define GUARD 1
> >  #endif
> >  
> >  unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
> >  {
> > -    GUARD(unsigned dummy);
> > +    unsigned __maybe_unused dummy;
> 
> ... this.Â  This doesn't need to be __maybe_unused, because ...

This is a leftover from when I attempted to use preprocessor #if GUARD
below, and the compiler would then complain about dummy being
unused.

I can fix if there's agreement on the basis of the change.

> >  
> >      stac();
> >      asm volatile (
> > -        GUARD(
> > +        ".if " STR(GUARD) "\n"
> >          "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
> > -        )
> > +        ".endif\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))
> > +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
> > +          [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy)
> 
> ... these parameters are referenced unconditionally.
> 
> However, it does mean the compiler is spilling the scratch registers
> even when guard is 0.Â  I expect this is what is affecting the inlining
> decisions.

That's my understanding yes, the registers will be spilled.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 16:37:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 16:37:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840705.1256199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDREG-0006tS-Cp; Tue, 19 Nov 2024 16:37:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840705.1256199; Tue, 19 Nov 2024 16:37: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 1tDREG-0006tL-9S; Tue, 19 Nov 2024 16:37:28 +0000
Received: by outflank-mailman (input) for mailman id 840705;
 Tue, 19 Nov 2024 16:37: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=o1Xh=SO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDREF-0006tD-0G
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 16:37:27 +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 8e2adce5-a694-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 17:37:24 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-53b34ed38easo1285693e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 08:37:24 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dffd7cbsm664196366b.117.2024.11.19.08.37.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 08:37: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: 8e2adce5-a694-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhlMmFkY2U1LWE2OTQtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDM0MjQ0LjQyMTA1MSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732034244; x=1732639044; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=QSOuZprL5vzhvSM/FcpDoSesmRoOSSFJWyMwk0w1i1c=;
        b=GRX24/w9LVYFXxvYNgnL8BStyNlDTflHjD7TbW8INw2rf1DGd4PFBThEX8d+rxbs3b
         E72o9SneDpM8GWT5TWA1E1c94ehlzfU4ki1w65wraUhQua0U0bFTlGIQtufqenctvKum
         qbhYrwUsc1mD/rpnzGwWeF1PUUp9BKQXnoDYo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732034244; x=1732639044;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=QSOuZprL5vzhvSM/FcpDoSesmRoOSSFJWyMwk0w1i1c=;
        b=MRFw/OhKfmCRg7jS/AfixQOqifnR3rkyp01HiOEf6bc13og/vtTW+utsU6Gv8V/E+l
         HDbnY7NZ/+dLxwI0UbrfzuwR4x19sfreWjCOJYvCHgVrEM/C55yTVK9T67gJFEuwAhJ0
         qW+oUV4syx7ONiDrJIHmGgLsuGa6+n6kSFgoeW8QNLfCxpHuXfvg446xD2iuhsgaZKCE
         2cvmitRqXEd33hSOIB5CyHiAn3QRsQv3pGFSH16mChhO8/3ajVpHykRsIn2spJEImgvU
         VWfM7TncFi1JWts3/3EL8tGYVi68h5qEktROtI/XVh7dp7EDO7Iz+CLpwovwbvTdOcP7
         PPyQ==
X-Gm-Message-State: AOJu0Yx+aZAfvdyGT/PfyPPVqhoTKNPQ6G+b64wvkBCoekPRmmrxruwQ
	qoP53OPutjwsL3EkOOsG2ddxqyxiIWsxSX9PQ/dbF2qCEaJ11MLywuZ54k/gx44=
X-Google-Smtp-Source: AGHT+IHV9Jw4FBSrTHtLTHZ96DzBydTJEgNfLDu/vdqr/3Du4veD5x+KbaV5WCX01pByTY/8TmN3Ow==
X-Received: by 2002:a19:6405:0:b0:53d:abd2:d564 with SMTP id 2adb3069b0e04-53dabd2d5b2mr6059161e87.24.1732034243760;
        Tue, 19 Nov 2024 08:37:23 -0800 (PST)
Date: Tue, 19 Nov 2024 17:37:22 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 2/4] x86/msi: fix Misra Rule 20.7 in msi.h
Message-ID: <Zzy-woJaXwW27wkd@macbook>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-3-roger.pau@citrix.com>
 <05127810-a5d3-46f7-9a5b-8f5ac1ab8b87@citrix.com>
 <ZzyjIgx0faIV31kM@macbook>
 <d6d2cd7f-35ba-4480-b21a-b3ddef0e6d73@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d6d2cd7f-35ba-4480-b21a-b3ddef0e6d73@citrix.com>

On Tue, Nov 19, 2024 at 03:35:34PM +0000, Andrew Cooper wrote:
> On 19/11/2024 2:39 pm, Roger Pau MonnÃ© wrote:
> > On Tue, Nov 19, 2024 at 02:21:35PM +0000, Andrew Cooper wrote:
> >> On 19/11/2024 10:34 am, Roger Pau Monne wrote:
> >>> ---
> >>>  xen/arch/x86/include/asm/msi.h | 35 ++++++++++++++--------------------
> >>>  1 file changed, 14 insertions(+), 21 deletions(-)
> >>>
> >>> diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
> >>> index 748bc3cd6d8b..49a576383288 100644
> >>> --- a/xen/arch/x86/include/asm/msi.h
> >>> +++ b/xen/arch/x86/include/asm/msi.h
> >>> @@ -147,33 +147,26 @@ int msi_free_irq(struct msi_desc *entry);
> >>>   */
> >>>  #define NR_HP_RESERVED_VECTORS 	20
> >>>  
> >>> -#define msi_control_reg(base)		(base + PCI_MSI_FLAGS)
> >>> -#define msi_lower_address_reg(base)	(base + PCI_MSI_ADDRESS_LO)
> >>> -#define msi_upper_address_reg(base)	(base + PCI_MSI_ADDRESS_HI)
> >>> +#define msi_control_reg(base)		((base) + PCI_MSI_FLAGS)
> >>> +#define msi_lower_address_reg(base)	((base) + PCI_MSI_ADDRESS_LO)
> >>> +#define msi_upper_address_reg(base)	((base) + PCI_MSI_ADDRESS_HI)
> >>>  #define msi_data_reg(base, is64bit)	\
> >>> -	( (is64bit == 1) ? base+PCI_MSI_DATA_64 : base+PCI_MSI_DATA_32 )
> >>> +	((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
> >>>  #define msi_mask_bits_reg(base, is64bit) \
> >>> -	( (is64bit == 1) ? base+PCI_MSI_MASK_BIT : base+PCI_MSI_MASK_BIT-4)
> >>> +	((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
> >>>  #define msi_pending_bits_reg(base, is64bit) \
> >>>  	((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
> >>> -#define msi_disable(control)		control &= ~PCI_MSI_FLAGS_ENABLE
> >>>  #define multi_msi_capable(control) \
> >>> -	(1 << ((control & PCI_MSI_FLAGS_QMASK) >> 1))
> >>> +	(1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
> >>>  #define multi_msi_enable(control, num) \
> >>> -	control |= (((fls(num) - 1) << 4) & PCI_MSI_FLAGS_QSIZE);
> >>> -#define is_64bit_address(control)	(!!(control & PCI_MSI_FLAGS_64BIT))
> >>> -#define is_mask_bit_support(control)	(!!(control & PCI_MSI_FLAGS_MASKBIT))
> >>> -#define msi_enable(control, num) multi_msi_enable(control, num); \
> >>> -	control |= PCI_MSI_FLAGS_ENABLE
> >>> -
> >>> -#define msix_control_reg(base)		(base + PCI_MSIX_FLAGS)
> >>> -#define msix_table_offset_reg(base)	(base + PCI_MSIX_TABLE)
> >>> -#define msix_pba_offset_reg(base)	(base + PCI_MSIX_PBA)
> >>> -#define msix_enable(control)	 	control |= PCI_MSIX_FLAGS_ENABLE
> >>> -#define msix_disable(control)	 	control &= ~PCI_MSIX_FLAGS_ENABLE
> >>> -#define msix_table_size(control) 	((control & PCI_MSIX_FLAGS_QSIZE)+1)
> >>> -#define msix_unmask(address)	 	(address & ~PCI_MSIX_VECTOR_BITMASK)
> >>> -#define msix_mask(address)		(address | PCI_MSIX_VECTOR_BITMASK)
> >>> +	((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
> >>> +#define is_64bit_address(control)	!!((control) & PCI_MSI_FLAGS_64BIT)
> >>> +#define is_mask_bit_support(control)	!!((control) & PCI_MSI_FLAGS_MASKBIT)
> >> You need to retain the outermost brackets for other MISRA reasons.
> > I was borderline on dropping those braces, as I was expecting Misra to
> > require them.
> >
> >> I'm happy to fix up on commit, even splitting the patch (seeing as I've
> >> already done the split in order to review the rest).
> > Fine, by split I think you mean the pruning of unused macros vs the
> > fixing of the parentheses?
> 
> Split pruning out into another patch, fold the bracket fix into this one.

If you want I can do that myself, as I will likely need to resend #3
to drop the unneeded __maybe_unused attribute.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 18:03:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 18:03:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840721.1256209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDSZ6-0002kV-BZ; Tue, 19 Nov 2024 18:03:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840721.1256209; Tue, 19 Nov 2024 18:03: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 1tDSZ6-0002kO-7e; Tue, 19 Nov 2024 18:03:04 +0000
Received: by outflank-mailman (input) for mailman id 840721;
 Tue, 19 Nov 2024 18:03: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDSZ5-0002kI-GU
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 18:03:03 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8161676f-a6a0-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 19:02:56 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso813213666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 10:02:56 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e043b84sm674592466b.137.2024.11.19.10.02.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 10:02: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: 8161676f-a6a0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgxNjE2NzZmLWE2YTAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDM5Mzc2LjkzNzQ4Miwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732039376; x=1732644176; 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=qRDj+yjLmbyk5MnwWXYW36P2dTgdrMGOefuv1V9b2yo=;
        b=jw5x7bElD8JCM1g/QpU9avKqtXlKRzg7JJ9Jyq4Hx1/VXw+mZDTH0rqee+aG7YOZ9S
         YkmHhEfuz36/MoDuoE+S2tBa/Bm8OaQo2Oi1bewq1Gyr368TcjNFDNeiAdLLKWXBVlNs
         nwOAaLU5fRgaJgGKEDWya9Nnw/7QOS1Sxh2Gs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732039376; x=1732644176;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qRDj+yjLmbyk5MnwWXYW36P2dTgdrMGOefuv1V9b2yo=;
        b=EdA7kBcTv6x88LvYrvnZxTCdSRckWsmcz94GEPAy6x7BvVc2xv8CGorDoTaLv1zCWy
         UdLozPJbfO/shrXxORi6ua90Bf0N/WZ2ElGJe2NbrIY2wC6wox8/3egoj6D6TWekhTVJ
         NvYXmprE07dgvaeiAtSy9Kd7xwKzx1MJNIv8lNADyDvh+eT8CzmTFP1jI4QEuf70jrcq
         lOBiYqFS0vcB/JigHF79NuuK6Nevku38appnEUye+oC4v7MWWbY2h39tou4SkoibZqO5
         DJTvEJpbqel7kRqBr1N1kpSmszWpWABPPUaO7pnn1CBYlG3LYFnU8Ldn5BkJNTORCe30
         tzMg==
X-Gm-Message-State: AOJu0Yyl//dA350X5NwL6Lwf8WXPEC4zzNWItn0FSYHMVtcZtze6ZN5f
	/LGmz6bTXeWO5v1AVpjJfDEdZt7SPukSyxaSaI7KITjllfZ4zEjrzvuw9hOzfs8=
X-Google-Smtp-Source: AGHT+IHaZE4z6YY8JfwmddimrgJoDzR+/fGeHTUn56Kq4TIpSquv/8ibAQJjXv3C7vsr20prkUHUAQ==
X-Received: by 2002:a17:907:2d0a:b0:a99:e82a:87ee with SMTP id a640c23a62f3a-aa48354d154mr1853971866b.57.1732039376143;
        Tue, 19 Nov 2024 10:02:56 -0800 (PST)
Message-ID: <ae2dbe98-57cf-4aba-bc48-6d7212cfc859@citrix.com>
Date: Tue, 19 Nov 2024 18:02:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
To: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
 <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/11/2024 1:46 am, Stefano Stabellini wrote:
> On Thu, 14 Nov 2024, Volodymyr Babchuk wrote:
>> diff --git a/xen/arch/arm/libafl_qemu.c b/xen/arch/arm/libafl_qemu.c
>> new file mode 100644
>> index 0000000000..58924ce6c6
>> --- /dev/null
>> +++ b/xen/arch/arm/libafl_qemu.c
>> @@ -0,0 +1,152 @@
>> +/* SPDX-License-Identifier: Apache-2.0 */

I am afraid that we cannot accept this submission.

While the Apache-2.0 license is compatible with GPLv3, it is
incompatible with GPLv2, and therefore with Xen.


Where precisely did this come from?

The LibAFL project says it is explicitly dual-licensed Apache-2.0 and
MIT, and MIT is compatible with GPLv2, so this likely can be made to work.

Assuming the source really is both Apache-2.0 and MIT, then the SPDX
header needs to state both, but this needs to be checked carefully.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 18:22:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 18:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840731.1256219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDSsD-0005vO-Tt; Tue, 19 Nov 2024 18:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840731.1256219; Tue, 19 Nov 2024 18:22: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 1tDSsD-0005vH-R0; Tue, 19 Nov 2024 18:22:49 +0000
Received: by outflank-mailman (input) for mailman id 840731;
 Tue, 19 Nov 2024 18:22: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDSsC-0005vB-HI
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 18:22:48 +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 447c090d-a6a3-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 19:22:43 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9e8522c10bso9210066b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 10:22:43 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e08625asm685108766b.187.2024.11.19.10.22.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 10:22: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: 447c090d-a6a3-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ0N2MwOTBkLWE2YTMtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDQwNTYzLjIyNjUyNiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732040563; x=1732645363; 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=+L9M5rjRulALgCVbmT+2eWrSNIu/UFYXBmq/PL8Nj1I=;
        b=IjzUM3cZho2wzzAVMrc6zIe9FWrJ2rL0A3DHb8i82vHMdstv+vjYDCFvnigrajZYla
         szQVqvbQVEC71KoLHru06AGk03ouRMk9EVPyzEVegZlCr/Px/n16oajZTMS3FHzytjzP
         M6GbW1SGV+oE9HIBKaa58Y0gXKVa6OwfCNMBs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732040563; x=1732645363;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+L9M5rjRulALgCVbmT+2eWrSNIu/UFYXBmq/PL8Nj1I=;
        b=LRrYXlqq7Rz6n4YwujhOrJxyhif0zzP3bjRz7BRRcD7MbeREcqAQScdUCJ2UxB8TNH
         YtAULZToKmfabE62p2AQiE4/NlSSw5tohrdV5AaPLjgKPNyWlEq+YOm+0ZhmEaZKPQPH
         fapFsi74PpyLw5JMSdu5jogJrmRckcwU39J44A+OmLrRVDhqVImxhx9dvt0hVkhPXOTO
         1NuuRJu5cL5QRo0/oisSBFUhv7plGGYx5yl3HbmDHliZUMfUkZu8PzrPbnSw+ggB6hyw
         toB2KhWYv5QRg11fLShRIR1ZvvrUclxwUYIYdhcH+Kbp9+waNxGsljeOvoS+6e0G8uBX
         bw0w==
X-Forwarded-Encrypted: i=1; AJvYcCVEZVs1IDWqlxdNq1QNekGd/yCjOq+5LLL6fnstfcHlp9p5ESEXc6lOZU12g/mcRrvS/5pVqeZYBc0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBJG0sMnt30t4+Mgs2CYlNDSi4Rq4WWb4hK0yUqp7PgODIjXe5
	ddjPUZ7814p1hrd5XeKAxj9TISmN9DVfR+1QLkk9fyEf21AOJnIi1Q6GZKvADGI=
X-Google-Smtp-Source: AGHT+IHaSnxBlT/qgX4iMVlPIDK7xIuc/feJ3keDRwgE/raE+GcU+8BUmkJeqa7juEZrydTJlIl0Ow==
X-Received: by 2002:a17:907:268e:b0:a99:fbb6:4972 with SMTP id a640c23a62f3a-aa4dcd5dd20mr1762866b.25.1732040562703;
        Tue, 19 Nov 2024 10:22:42 -0800 (PST)
Message-ID: <00fa3d65-d598-474f-b9ee-7b63db2d3b40@citrix.com>
Date: Tue, 19 Nov 2024 18:22:40 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mce: Compile do_mca() for CONFIG_PV only
To: Jan Beulich <jbeulich@suse.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>
References: <20241119125904.2681402-1-andrew.cooper3@citrix.com>
 <d92cf59a-a798-4223-9439-85ae215b7daa@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <d92cf59a-a798-4223-9439-85ae215b7daa@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/11/2024 2:34 pm, Jan Beulich wrote:
> On 19.11.2024 13:59, Andrew Cooper wrote:
>> Eclair reports a Misra Rule 8.4 violation; that do_mca() can't see it's
>> declaration.  It turns out that this is a consequence of do_mca() being
>> PV-only, and the declaration being compiled out in !PV builds.
>>
>> Therefore, arrange for do_mca() to be compiled out in !PV builds.  This in
>> turn requires a number of static functions to become static inline.
> Which generally we advocate against.

It's `static inline` or `static __maybe_unused`, but I refer you to to
the Matrix conversation on June 24th on the matter.


>  The #ifdef variant you pointed at on
> Matrix wasn't all that bad.

It worked as a test, but ifdefary like that is a maintenance nightmare.

>  Plus ...
>
>> 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>
>>
>> Bloat-o-meter on a !PV build reports:
>>
>>   add/remove: 0/6 grow/shrink: 0/0 up/down: 0/-3717 (-3717)
>>   Function                                     old     new   delta
>>   x86_mc_mceinject                              31       -     -31
>>   do_mca.cold                                  117       -    -117
>>   x86_mc_msrinject                             147       -    -147
>>   x86_mc_msrinject.cold                        230       -    -230
>>   do_mc_get_cpu_info                           500       -    -500
>>   do_mca                                      2692       -   -2692
> ... what's the effect of the addition of "inline" on a PV=y build? By
> using the keyword, we may end up talking the compiler into inlining of
> code that better wouldn't be inlined.

xen.git/xen$ ../scripts/bloat-o-meter xen-syms-{before,after}
add/remove: 0/0 grow/shrink: 0/0 up/down: 0/0 (0)
FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
Total: Before=3901801, After=3901801, chg +0.00%
xen.git/xen$ diff -u dis-{before,after}
--- dis-beforeÂ Â Â  2024-11-19 18:08:02.284091931 +0000
+++ dis-afterÂ Â Â  2024-11-19 18:08:24.491035756 +0000
@@ -1,5 +1,5 @@
Â 
-xen-syms-before:Â Â Â Â  file format elf64-x86-64
+xen-syms-after:Â Â Â Â  file format elf64-x86-64
Â 
Â 
Â Disassembly of section .text:

xen.git/xen$


Which is not surprising because at -O2, the keyword is effectively
ignored because of the various -finline-*

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 18:32:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 18:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840741.1256228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDT1k-0007fI-Q0; Tue, 19 Nov 2024 18:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840741.1256228; Tue, 19 Nov 2024 18: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 1tDT1k-0007fB-N7; Tue, 19 Nov 2024 18:32:40 +0000
Received: by outflank-mailman (input) for mailman id 840741;
 Tue, 19 Nov 2024 18: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDT1j-0007f2-He
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 18:32:39 +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 a5467930-a6a4-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 19:32:35 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-539f2b95775so4045653e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 10:32:35 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e043b84sm677228766b.137.2024.11.19.10.32.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Nov 2024 10:32: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: a5467930-a6a4-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmYiLCJoZWxvIjoibWFpbC1sZjEteDEyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE1NDY3OTMwLWE2YTQtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDQxMTU1LjAxNTc0Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732041154; x=1732645954; 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=j+UQ/L3sES3BCQtbRVuMz93+SPhoXcvmWWH5kLblqvQ=;
        b=c0y1k/BasCpXTjsZf8bJFZMt8gV5qVxDZzjQZ/Q54dId/X57h7XW2TCvD29RR5lA2G
         i9VvCQ9LaToytQm1g0svdFcO37gy9UHGIfxE+Oobs0sGv5R0aqmek3rapctirBp6q3Mg
         zzRCx4OGRNtSuZrtf2oVvXRRCKgaPilX+AsmU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732041154; x=1732645954;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j+UQ/L3sES3BCQtbRVuMz93+SPhoXcvmWWH5kLblqvQ=;
        b=jkU7hCb0sklwp09ZPZgDM84nmiFKQIxetibc+QS38havqGiTFaS3nTuaj13QHBKec4
         zzf4Us5ELHJxxPyvT4ckfkyICoF0G4+o8TG/AS/2z0rbHQpWn8zlK+iiY3eTITcjkFLC
         6VzNqrVduub3WeuGFXnXmLFmI5zMDBlbgOWTZEQbXlp1U+ybr59I797LvVxgxsOEuVYm
         L74ywr0vi8w9yskQ4rf1yTgL42TgYdBlqh2P9yTEiF5yxhldsRz6lDuN/NwtdcykIFel
         PkXH+n17PsuEro4fyTzQml2fCgoRWsaGR14GCfObONAu/3TydKaMGJ7T3PMFkS7LGXvM
         YFCA==
X-Gm-Message-State: AOJu0YwViD0akzhctBD7AfZk/g6VtcqCOmdX+2D5RfsIwoohGh8k9lEe
	7b99qSlU5LIQxpGBKzRnMcSK5AoOyTP3rz/SU4wKatSmClW7aWhMI65v5o8ejj0=
X-Google-Smtp-Source: AGHT+IF0E4/mm0C3QOyWOlZ6OMaMuaD+RcZudjd6XnwK0cWYIvrlE3vLs6rL8v3BmpyxU85gsG+4aA==
X-Received: by 2002:a05:6512:ac7:b0:536:542e:ce1f with SMTP id 2adb3069b0e04-53dab29eb5fmr10851461e87.18.1732041154426;
        Tue, 19 Nov 2024 10:32:34 -0800 (PST)
Message-ID: <d9aa57ed-228e-4099-8a3f-cca365e50eca@citrix.com>
Date: Tue, 19 Nov 2024 18:32:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
 <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
 <875xojmexk.fsf@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <875xojmexk.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/11/2024 3:16 pm, Volodymyr Babchuk wrote:
>> On Thu, 14 Nov 2024, Volodymyr Babchuk wrote:
> As for test harness, I am using Zephyr currently. My first intention was
> to use XTF, but it is x86-only... I am still considering using XTF for
> x86 runs.

I need to get back to fixing this.

My in-progress ARM (and RISC-V) branch can make a prink() (console IO
hypercall) and clean shutdown (schedop).

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 20:46:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 20:46:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840763.1256266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDV7O-0006n8-9w; Tue, 19 Nov 2024 20:46:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840763.1256266; Tue, 19 Nov 2024 20:46: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 1tDV7O-0006n1-7D; Tue, 19 Nov 2024 20:46:38 +0000
Received: by outflank-mailman (input) for mailman id 840763;
 Tue, 19 Nov 2024 20:46: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=d4NG=SO=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tDV7N-0006mt-6n
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 20:46:37 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20600.outbound.protection.outlook.com
 [2a01:111:f403:2606::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b067d4a-a6b7-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 21:46:32 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by VI2PR03MB10935.eurprd03.prod.outlook.com
 (2603:10a6:800:27d::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Tue, 19 Nov
 2024 20:46:26 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8158.013; Tue, 19 Nov 2024
 20:46: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: 5b067d4a-a6b7-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwNjo6NjAwIiwiaGVsbyI6IkVVUjAyLUFNMC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjViMDY3ZDRhLWE2YjctMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDQ5MTkyLjA0NjE1OCwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=spdFOaV8Qcwr7rM4qe6AUj37qXnSQqXJ+K8V8QRZiuOxoO74ef4Sw3Y+n1VXcVx7zJntereuyGLWD6CtX/38NUJ/rurErDU1khIq/EXuTSdfwC70eRzN1+Oj/FKt0+Vkn8rCukWKOMEh2i3pLGBRWI3VWcVlFL/vjuhQ+7bAirvE5V6q3L4Tb4bhFK0ESQpxuHHV8GrQdbYCj5+BDXKyxEYGufac6lHutryhkkU7+od8uwoRHAuKyY+FjWFaLOJFhp4NpqwTUvu24iAy3tFqaWP/EzGWWGNC1/dg0bV2w4VhP61DZisEPSjtb+Z1uTWLQ8wcICnKe2D9Dhv3+i6/xQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rJruq0yoNzq1N1/lEG0ezfuppAu8FAcuid+Q3OYVsLk=;
 b=n3XpVkl6rB0ifIlhqAe7eFtUsX8eyUMhLqcTPOjFQJYanfL90hm7YBXJF7LnfP3tT9DMnob9P2m3ucPxWaBOT6mc3am6k4eh8uXjrQXp8X3YxKBQSxVZMAwtz4imWUWVrd1dnASwAtHVLwuTPFqvmalnB9RWIjpZRPM4wjK24pgB9Daaic2f1w+9DZAQTMLW448k6PQGqh+O2cMzWsyHmUqSia9GKEEtaT0Eqwg708Uc5bQIf5AM5KViUay3PY5Y2ys5+mPfJ2o8OOTxd9kNI2nPA3vjXeROGUaMcM4Ew+UHFgFLBN8oikWv59AgMN/8UNPwLTIg1EomvtwarnD0EQ==
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=rJruq0yoNzq1N1/lEG0ezfuppAu8FAcuid+Q3OYVsLk=;
 b=RehoCY0CAyQrA8ekyJjieeiTqzbrSnpFKjkYeHIY1xM1QIhnRCiohFNy6iI7Fzm4F0d2jJieYTmbx1Fp7B+mC/x++8S4goOdol1mZymbJ3RKcjarIpPuSM4diYCOy+FQndwD1497E45NXGErQB343MvY9ylbcGOLfUc43cPQ4ltqQX8+5vOy0JISwjrvpS8202ZcSlE94pzkmksHU4wAFaHPGuCfoFEVFl89yhSJGBHkgPwV7RPaatz9feyaC1ugZ9BY+IQw0pHOOwnG7JfBwIL4rRdZ1avXuQB0HAmuZnZJ1N6CQZbwu+d/jJEhSMv0INSpwsVScMhi0D3nLif7IA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Dario
 Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Index: AQHbNucXRmUX3Y7lRUGcS7d55ZSXhw==
Date: Tue, 19 Nov 2024 20:46:25 +0000
Message-ID: <87ttc3kl3z.fsf@epam.com>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
	<alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
	<875xojmexk.fsf@epam.com>	<d9aa57ed-228e-4099-8a3f-cca365e50eca@citrix.com>
In-Reply-To: <d9aa57ed-228e-4099-8a3f-cca365e50eca@citrix.com> (Andrew
	Cooper's message of "Tue, 19 Nov 2024 18:32:32 +0000")
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: GV1PR03MB10456:EE_|VI2PR03MB10935:EE_
x-ms-office365-filtering-correlation-id: 55a6e0f4-7d5b-4231-a9d6-08dd08db3c17
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?gcl3T0n57qKJI4H8RrpG8NUDoESEcIdxUEoGYK0p9kXsA98KXidCrNWu3O?=
 =?iso-8859-1?Q?TRTpz1KbRsRy9u7M+2jl1t9UETQ+1U+4CN+GfBewoh75Tc2oPaSkIhTj+I?=
 =?iso-8859-1?Q?XdXZVOR01detmzqzA9Dp4aUhz762ugTFlWkV256twdCUKHgLYdnv2IMXq8?=
 =?iso-8859-1?Q?6LtYQxKTFh9rhYufSIwYOK48XaA8XTVqXWaQVXpBiTUI22D7OpjujVh19o?=
 =?iso-8859-1?Q?uqlIwMIVvfFW/CzRrlhbwnsMIeHoyp7GHpDiymPkiMWIKVitgBRVd5zSZE?=
 =?iso-8859-1?Q?4esrBWLjgdH1Hla7xrEnimt21iVoVSeoe+YFj8WMduOQK+rKV44FlvQtma?=
 =?iso-8859-1?Q?96XkN02Gaq4rIC0zbMCHQz1Qr406zxManuShmYau6Xjw8x6nalPnLY5qw/?=
 =?iso-8859-1?Q?TaqH4zaE978ziSKcZTk930zFdbOvFUtSyM4s6vMrQg0bLhtj1d02qvjOGg?=
 =?iso-8859-1?Q?jdNAlZAIvZUTrXpG7yvu7r6eDr7E/ECseYX+swDCO2rRI91wveEUUfX8Ye?=
 =?iso-8859-1?Q?cb9+YVe4eSW7EGVgsCUzTnOK/uXfvvg6jOORxmMQtNVbg0MR19FxNKeJyj?=
 =?iso-8859-1?Q?pZjvrfxbHII91y2A4TWCe411umhIUl90GRkKjUnKO9CGVbjsbjbXWBWmvZ?=
 =?iso-8859-1?Q?kskntUvRuXVdzAW62uM2y5zXwAznfGyROVB3LYbTDN4YfT6gYgPsDijfw5?=
 =?iso-8859-1?Q?Mk8kgL94H509QUM9FK4sBmUvEgdT30BcL3dP9j/cj8bF1ghs6knrtaY9Xo?=
 =?iso-8859-1?Q?J5Zs97/sTFK101fqOgHhOobuqPGGiNoH72Vov+q+/IWf9H44Po8XFian0S?=
 =?iso-8859-1?Q?sNuKSBd/DM3e7Kvdlg9qucwYTOUuzUg25rOXVlnUx+56JRfquyFpJDqY19?=
 =?iso-8859-1?Q?bzxR1nqbtUrWgh0MyQoW8BgIJrxvu/JNlSWJbs/8kV18AWUX3xAFXAF89O?=
 =?iso-8859-1?Q?vkF9gmYed7SUcMaYWKcQpNJsX2n+mS35YQO16owk1alU98GCjOUOXJ/iyl?=
 =?iso-8859-1?Q?7oMsu6kGr5SLKGkyTvlevCX5o8R48F0bAFpXWmYw8WBBS/+bkRLD+ZW5yT?=
 =?iso-8859-1?Q?jSCVyaGcLx4u3rN4tpg43nEH9X0+/x882umfZBTLC9uECdp5aDnxC/Ofni?=
 =?iso-8859-1?Q?bnze5pxbpb0pjhEnk3a6zf+C9aX0kA1Q8HyqHuMTkLnG7pxspLOEu1HyfV?=
 =?iso-8859-1?Q?ARcgj8Cc2Mc4VonwT5tqoGFBppW08V83WQJTjDt213m23Q3jpd7Xf1Ve6Z?=
 =?iso-8859-1?Q?NdczNRyk9AOwr1U/pxy+Jy2DMGLUYA4CWHq8F1kC2+/usCL/S2y4lC7I6v?=
 =?iso-8859-1?Q?tX4ZAqLnpeeL521Qaa5Xbah1s2l5p8SdxoErMG28JatLR+6w5CgUD6n9Ex?=
 =?iso-8859-1?Q?Nkh0NT4eoc9XRXVtIm7p3GRL+2P6o3pw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?p3WdwllnstiOw+5cNhCpIgh8+LCsNyG/+9PfvkGzkpC6oY3sLml+6H7Be/?=
 =?iso-8859-1?Q?ZHqp3UWlNB77fDshUglsHAWl0SJo9L7TDJ2slt/79B9Hs9w9P2a0EfOVBu?=
 =?iso-8859-1?Q?u8P+UdjR6mDWasxn6wmWT4aPs3kolinPeDplvx2MXVVGoVqaPEU4QmzOZq?=
 =?iso-8859-1?Q?YOTN2yBaWOvkMtSLY7wD4SmmyHwUWcPy4nMF4QPRmy2liKtbRvd7J/L0rz?=
 =?iso-8859-1?Q?+jV8zugOlGyZhEXPsY+X5GqyL2glZ0BFsnV1e8ZAP8w6dYkSb5eouWuLLr?=
 =?iso-8859-1?Q?v5Q668wasPStGunGu0DMTizOjomR8b0JvE29aoQZy8XLBp0olitT6OvqWz?=
 =?iso-8859-1?Q?FuJzohfzwVyToM95xR0HVPHhIt41qt2X+A/Orlg4DnozmvrBlME2AU8yCA?=
 =?iso-8859-1?Q?FXltVJY1B4h5bvn9mRS/m84AQ9M+P3/9wNqFiAu+2Ng7SRKXZ/veesINqc?=
 =?iso-8859-1?Q?zW/IkXyHRmUq6++BBvQBehvtJYsFJkb8VlHBdirZ1dNaCtGHj1Pz6IVSwq?=
 =?iso-8859-1?Q?yOjxqImF1H3Jn4RkSlKTxW42OnAjov6J4D0Qq6vEHrVLzaU9rd8Eut6mFK?=
 =?iso-8859-1?Q?PA1sxlQTcW64du2pM7xe0/i3lK8usdHrPa5RFHW/0otMHaEm87O+nh15I9?=
 =?iso-8859-1?Q?lmbre5/QFnH4xVWFci/xm3YQEboLlfgYVslMefRG5uxQkdGN+spER5vHD9?=
 =?iso-8859-1?Q?3lxaVwZUC/wr5lvRZMLCtqYXH8a4aVBcyDtlHS2zcsdgKgWHVjj7KQ57X0?=
 =?iso-8859-1?Q?zv99fplYbtImh03IRSMm9dGIiEutSrtkSPIVeVcF51LzEWVUHnpkdQUml6?=
 =?iso-8859-1?Q?U9wKZHfkfJfFGmYM1upinc9XhcL7uQJfwtabp5EF9ZzDBt4Kj/YkmXqUXO?=
 =?iso-8859-1?Q?Pvma6R3p4MP9xKQ+necvCUS3c6Wuv+GCNADbiUoBsQ9eOgduaAZkapL/9f?=
 =?iso-8859-1?Q?/tfBrdI2nii76OtFBcZOzn6tOM3IFDnpbeOUEpfso+P8rVaFjO+uhFUVH+?=
 =?iso-8859-1?Q?W/tQwafevP6S9G+2H8Gy+rtVEJeRL7zSYlnPssIJn8dwWfjQkKfPg5RqGE?=
 =?iso-8859-1?Q?A4yd+bht2l1hoTv5zcpxdJxnLvJm+hnW0+YONeCkx5ihk+cwuN6s6B5SlP?=
 =?iso-8859-1?Q?pUupohiCI+9qlXCe2qroeFVgbgt9Nf/bTHactfFQ/EFqFwShxiwQWYAljM?=
 =?iso-8859-1?Q?DZKQirMeLPM+9gLotfoxtPPvGZCR+kBqmEpF8A2APHeaKnIJ6mT7LWVMbH?=
 =?iso-8859-1?Q?Twr5KMQXNYLTGspTc7GJX969EEk/MvOxlQYEHW+vbNSHGXE5GKGL738VDA?=
 =?iso-8859-1?Q?IKc9X/rlkZYGm7q79SuocTJFOkSOmEqk0TfnvOL2xdhTgIffqmEK9XyllU?=
 =?iso-8859-1?Q?QIF2n33JkhOXDFnkI2BMOidAvZtRXWV0eHTXhiftfNd3juqRzylNKofY2/?=
 =?iso-8859-1?Q?QuN5AnRwiGV5guQMBJ9PR0+Hiy1liij7iKcFUpVZLAbiVjS5+BLKDP0yTX?=
 =?iso-8859-1?Q?v8RMlCAR6wTil09/wJvTpFnZO2AqGP692Ye7y/AhzMbN49IKlksnexbznH?=
 =?iso-8859-1?Q?8U46U+F6vIGJfj7o3jYsTTxCpL3infslJ4GGzdLlK/1r+KG8HQiDDFrjmY?=
 =?iso-8859-1?Q?V/CjyDfC3WYPEkhJFefUH3WSGkSOQ0nS6iMr5LPqR8AnV90F8wBH7m6Q?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 55a6e0f4-7d5b-4231-a9d6-08dd08db3c17
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2024 20:46:25.4922
 (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: kh3C/mrmBlE1oTq0z6EwHg2J2tK2vEw+MhLtuIKjDTJbRcqgR6XdiR3F22G22OVn1qk41dDshwjWkerP+M4L1ptTibUZ7OnxQYkNpc8nnrI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10935


Hi Andrew,

Andrew Cooper <andrew.cooper3@citrix.com> writes:

> On 19/11/2024 3:16 pm, Volodymyr Babchuk wrote:
>>> On Thu, 14 Nov 2024, Volodymyr Babchuk wrote:
>> As for test harness, I am using Zephyr currently. My first intention was
>> to use XTF, but it is x86-only... I am still considering using XTF for
>> x86 runs.
>
> I need to get back to fixing this.
>
> My in-progress ARM (and RISC-V) branch can make a prink() (console IO
> hypercall) and clean shutdown (schedop).

If you can share your branch, I'll try to use it as a test
harness. Also, it came to my attention that there is XTF with ARM
support, hosted on gitlab ([1]).

As for the licensing, you are right LibAFL is dual licensed, so we can
use MIT. I re-checked header files ([2]) which I used as a base. They have
no SPDX identifier, so I believe it it safe to use the clause from the
main README.md file ([3]).

[1] https://gitlab.com/xen-project/fusa/xtf/-/commits/xtf-arm?ref_type=3Dhe=
ads
[2] https://github.com/AFLplusplus/LibAFL/tree/main/libafl_qemu/runtime
[3] https://github.com/AFLplusplus/LibAFL/blob/main/README.md
--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 21:17:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 21:17:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840779.1256305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDVbR-0002eg-UY; Tue, 19 Nov 2024 21:17:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840779.1256305; Tue, 19 Nov 2024 21: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 1tDVbR-0002eZ-Qt; Tue, 19 Nov 2024 21:17:41 +0000
Received: by outflank-mailman (input) for mailman id 840779;
 Tue, 19 Nov 2024 21:16: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=0CE/=SO=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1tDVag-0002dS-Az
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 21:16:54 +0000
Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com
 [2607:f8b0:4864:20::f33])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96a7baaa-a6bb-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 22:16:49 +0100 (CET)
Received: by mail-qv1-xf33.google.com with SMTP id
 6a1803df08f44-6d382677c92so26448716d6.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 13:16:49 -0800 (PST)
Received: from ip-172-31-19-182.us-east-2.compute.internal
 (ec2-18-219-201-45.us-east-2.compute.amazonaws.com. [18.219.201.45])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6d4380db2edsm865966d6.36.2024.11.19.13.16.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 13:16: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: 96a7baaa-a6bb-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpmMzMiLCJoZWxvIjoibWFpbC1xdjEteGYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2YTdiYWFhLWE2YmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDUxMDA5LjU1NDE0Niwic2VuZGVyIjoiYWxleGFuZGVyQGVkZXJhLmRldiIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1732051008; x=1732655808; 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=Eg7OcnGXpKtgXWaHwtGS+ToZC8TTTiMcCPq5ZYxyLCo=;
        b=MCdyx9uTe5jSoJ1q9u0wq1q/XWvpfWXzLTChrklTLJuvniTV55EFMJoxSGggzTYhBd
         oeY8TBAmu19v0zmjHeQY7Yp1qY67iiLLWSuFL+mProY7MmkySEeIzsxbFOazyuVodvgV
         mb9OT3H7FXV07+aZQcsWfOZ0CVtndPYcg4YHtjb0clB097Wd5bNNEdkf1crqKVDuTwmW
         HZiJHYFbbw7mnKuvQfWt6ODO11WHvIJC7ecw1XhOKsTrpsJGlKDMAZ5srfvVpM0gWN1M
         QShQOfKVSy071PxVpToRx+vSzfPboBS96+fvqT0cBif/2ltBGOcaOpcZgafzVbpct9Ko
         zi7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732051008; x=1732655808;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Eg7OcnGXpKtgXWaHwtGS+ToZC8TTTiMcCPq5ZYxyLCo=;
        b=UNfeRwxzTX5hvkXmLPmXYiOh5AHW2SXnBEHXcguV2X2jfHDw0y0QBs8DfkFNQJ94zI
         zV8rtMcJ1v82UuV8EvBbumMycYRIb0IunV3uGGn2LzLRHoAgCcBpcYlAJJRIl08/RmKH
         2OF6n6SW1jXxIpwFHmMhdzh/5cq4hpDqhoODNzi/6ZDjRTzBKbFR5d395ZHr39qmIIG8
         S1DtY0R3hUB93zesIYNkwrUCse40hd4kezZWoJBfe1Wg4PSu4ZsFpU7kHmR1xH9QNRvs
         BDhpPsFyssZ2ohALobTu/KsDM1CFflA9I80eg2AZL2pcZLZJaYkF+L92uS7+DZsqHAJ4
         5uHQ==
X-Forwarded-Encrypted: i=1; AJvYcCWVGp7nggq5tCOn536VG1KCzv3d5X01t+egptN1bvbr0j2pEDTdUv6aXXeQZYY5V4s9LEQ2eSFs22A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYyzQDcCcL8p7qMFffDUcb1LPsyUXG2Bidnb1zHyH4+3lRfRT2
	9zCFyAJPGhJPjRwXusXcbNoJslsIrlys4WeO10zLaMdF9lYixAWn4xDlZH3RD98=
X-Google-Smtp-Source: AGHT+IHB3u2/l2rZG0k9ZOUXZliIL+D2FSwQjxK7a12SP+D4OKLAIj7VApFTPwlDLTNgD+mrpxyQ9A==
X-Received: by 2002:a05:6214:5004:b0:6d4:2778:ecb6 with SMTP id 6a1803df08f44-6d4377a118bmr7865406d6.18.1732051008401;
        Tue, 19 Nov 2024 13:16:48 -0800 (PST)
From: Alexander Merritt <alexander@edera.dev>
To: v9fs@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: Eric Van Hensbergen <ericvh@kernel.org>,
	Latchesar Ionkov <lucho@ionkov.net>,
	Dominique Martinet <asmadeus@codewreck.org>,
	Christian Schoenebeck <linux_oss@crudebyte.com>,
	Simon Horman <horms@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Alex Zenla <alex@edera.dev>,
	Alexander Merritt <alexander@edera.dev>,
	Ariadne Conill <ariadne@ariadne.space>
Subject: [PATCH] 9p/xen: fix init sequence
Date: Tue, 19 Nov 2024 21:16:33 +0000
Message-ID: <20241119211633.38321-1-alexander@edera.dev>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Alex Zenla <alex@edera.dev>

Large amount of mount hangs observed during hotplugging of 9pfs devices. The
9pfs Xen driver attempts to initialize itself more than once, causing the
frontend and backend to disagree: the backend listens on a channel that the
frontend does not send on, resulting in stalled processing.

Only allow initialization of 9p frontend once.

Fixes: c15fe55d14b3b ("9p/xen: fix connection sequence")
Signed-off-by: Alex Zenla <alex@edera.dev>
Signed-off-by: Alexander Merritt <alexander@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
 net/9p/trans_xen.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c
index dfdbe1ca5338..0304e8a1616d 100644
--- a/net/9p/trans_xen.c
+++ b/net/9p/trans_xen.c
@@ -465,6 +465,7 @@ static int xen_9pfs_front_init(struct xenbus_device *dev)
 		goto error;
 	}
 
+	xenbus_switch_state(dev, XenbusStateInitialised);
 	return 0;
 
  error_xenbus:
@@ -512,8 +513,10 @@ static void xen_9pfs_front_changed(struct xenbus_device *dev,
 		break;
 
 	case XenbusStateInitWait:
-		if (!xen_9pfs_front_init(dev))
-			xenbus_switch_state(dev, XenbusStateInitialised);
+		if (dev->state != XenbusStateInitialising)
+			break;
+
+		xen_9pfs_front_init(dev);
 		break;
 
 	case XenbusStateConnected:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 21:40:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 21:40:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840790.1256315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDVxU-0006bd-Ms; Tue, 19 Nov 2024 21:40:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840790.1256315; Tue, 19 Nov 2024 21:40: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 1tDVxU-0006bW-Iw; Tue, 19 Nov 2024 21:40:28 +0000
Received: by outflank-mailman (input) for mailman id 840790;
 Tue, 19 Nov 2024 21:40: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDVxT-0006Yk-Ac
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 21:40:27 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e08a72c0-a6be-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 22:40:22 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id AEAF15C58E0;
 Tue, 19 Nov 2024 21:39:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE40EC4CECF;
 Tue, 19 Nov 2024 21:40:19 +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: e08a72c0-a6be-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6ImUwOGE3MmMwLWE2YmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDUyNDIyLjM4NjYzLCJzZW5kZXIiOiJzc3RhYmVsbGluaUBrZXJuZWwub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732052420;
	bh=rj2XHGTg6XjXGo+8aPdYHecbgCq2/Q+2IG0qEUSuJyI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=IYsdDkznHEcxfVpHiqsnD9OgdJjBdycBy5IdoCvCMKNtBI8GNYMwcBgmxhxnTOMYV
	 QIUJpllWuSsvUFPXbP8bulFc7JZD61fHqtWk/4xk07Lf1G16PEW655m4ilG9yawESy
	 Nj6s+X1NebCjdBIBi/ZKo8rrkGwv7+wplQ3S9vbhrNKkD3WXAoZRmIB1Yljs6HnIDi
	 JXgBXM3YgGgEvA6i8+N/GBEIRPQQ7hQLcTmQH4Mdhu5UF8LE7uEBX87c+Sqz24s7n8
	 1iXt+V8qgdUXfkM0rEmks5I6xyNsC6ox1AAQvvJnxpMkNj/qQRFf8jVOwrGYYcmEYO
	 P+dvXncwdeutA==
Date: Tue, 19 Nov 2024 13:40:18 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Miccio <luca.miccio@amd.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org
Subject: Re: [ImageBuilder] [PATCH V2] UBOOT_SOURCE/SCRIPTS variables must
 always be set
In-Reply-To: <20241119150111.3569267-1-luca.miccio@amd.com>
Message-ID: <alpine.DEB.2.22.394.2411191340110.1160299@ubuntu-linux-20-04-desktop>
References: <20241119150111.3569267-1-luca.miccio@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 19 Nov 2024, Luca Miccio wrote:
> The current README incorrectly omits the need for the UBOOT_SOURCE and
> UBOOT_SCRIPT variables for uboot-script-gen to function properly.
> Moreover, the script silently fails if these variables are not set.
> Return an error if the the UBOOT_SCRIPT variable is not set and
> correct the documentation accordingly.
> 
> Signed-off-by: Luca Miccio <luca.miccio@amd.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
>  README.md                |  3 ++-
>  scripts/uboot-script-gen | 12 ++++++++++++
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/README.md b/README.md
> index 4fcd908..ae2fdfd 100644
> --- a/README.md
> +++ b/README.md
> @@ -272,7 +272,8 @@ Where:
>  
>  - UBOOT_SOURCE and UBOOT_SCRIPT specify the output. They are optional
>    as you can pass -o FILENAME to uboot-script-gen as a command line
> -  parameter
> +  parameter. It has to be set either in the config file or CLI argument
> +  though.
>  
>  - APPEND_EXTRA_CMDS: is optional and specifies the path to a text file
>    containing extra u-boot commands to be added to the boot script before
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index dcf5bdb..fc63702 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -1210,6 +1210,18 @@ then
>      UBOOT_SCRIPT="$uboot_out_opt".scr
>      UBOOT_SOURCE="$uboot_out_opt".source
>  fi
> +
> +if test ! "$UBOOT_SOURCE"
> +then
> +    echo "UBOOT_SOURCE not set, either specify it in the config or set it with the -o option"
> +    exit 1
> +fi
> +
> +if test ! "$UBOOT_SCRIPT"
> +then
> +    UBOOT_SCRIPT="${UBOOT_SOURCE%.source}.scr"
> +fi
> +
>  if test "$fit_opt" && ! test "$FIT"
>  then
>      FIT="${UBOOT_SOURCE%.source}.fit"
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 21:45:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 21:45:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840799.1256325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDW1z-0007DG-5w; Tue, 19 Nov 2024 21:45:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840799.1256325; Tue, 19 Nov 2024 21: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 1tDW1z-0007D9-31; Tue, 19 Nov 2024 21:45:07 +0000
Received: by outflank-mailman (input) for mailman id 840799;
 Tue, 19 Nov 2024 21: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDW1y-0007D3-5W
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 21:45:06 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 882db508-a6bf-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 22:45:03 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4774A5C58DF;
 Tue, 19 Nov 2024 21:44:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 30CABC4CECF;
 Tue, 19 Nov 2024 21:45: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: 882db508-a6bf-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6Ijg4MmRiNTA4LWE2YmYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDUyNzAzLjY2MjM0MSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732052702;
	bh=/X8Zg/NDCBod+QnJw819U18bUnGT10QiBVdKqxDThN4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PKs+rScheHP6kg6FAiB38rFrNhmJscxOVPusrlqsEh0rMvIkJ3N2X1JtxE8+qfOl0
	 peW9CmyqBGq2viUezSZgxrikDkLH7+LmR8e/HGPQAFW8kSBzJFXZLeM1xB0RfCMLus
	 FbhqhRZUY3SYtbP9CuZj/AP0n0DRLsbbjxzH1inS5qvo9z9qTtgoo+vTrADimMBFgs
	 KyNDEhPWXER3MRRHSERO3qj6tmHKpd/n+p6YeO4TFX9zh7hpX4bKKCwNa1KFIUqEfu
	 QDqJ8XRiMkSvnFPKGW89/rvvPxkm2Zyhb6vreK5OxZ9rQn+gYjwj/4TMdLnRIFRTjC
	 fHct6kONYuGOA==
Date: Tue, 19 Nov 2024 13:44:59 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <Luca.Fancellu@arm.com>
cc: Michal Orzel <michal.orzel@amd.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>
Subject: Re: [PATCH] bootfdt: Unify early printing of memory ranges
 endpoints
In-Reply-To: <D9477A55-6B55-4CDC-B92D-3FB898DBC505@arm.com>
Message-ID: <alpine.DEB.2.22.394.2411191344530.1160299@ubuntu-linux-20-04-desktop>
References: <20241119115141.72770-1-michal.orzel@amd.com> <D9477A55-6B55-4CDC-B92D-3FB898DBC505@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 19 Nov 2024, Luca Fancellu wrote:
> Hi Michal,
> 
> > On 19 Nov 2024, at 11:51, Michal Orzel <michal.orzel@amd.com> wrote:
> > 
> > At the moment, when printing memory ranges during early boot, endpoints
> > of some ranges are printed as inclusive (RAM, RESVD, SHMEM) and some
> > as exclusive (Initrd, MODULE). Make the behavior consistent and print
> > all the endpoints as inclusive.
> > 
> > Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> > ---
> 
> Looks good to me!
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 21:47:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 21:47:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840807.1256335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDW4E-0007mJ-IU; Tue, 19 Nov 2024 21:47:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840807.1256335; Tue, 19 Nov 2024 21:47: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 1tDW4E-0007mC-FN; Tue, 19 Nov 2024 21:47:26 +0000
Received: by outflank-mailman (input) for mailman id 840807;
 Tue, 19 Nov 2024 21:47: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDW4D-0007m6-OW
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 21:47:25 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da25e93f-a6bf-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 22:47:20 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id DABEDA42DCC;
 Tue, 19 Nov 2024 21:45:25 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D05AC4CED1;
 Tue, 19 Nov 2024 21:47:18 +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: da25e93f-a6bf-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImRhMjVlOTNmLWE2YmYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDUyODQwLjkzNTkxMiwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732052839;
	bh=NvhvTrOQGhKWvo+EZTTdLqtDmik+1cDvTPHERAJKn6Y=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PIyP2McXG6jV+E9gms+bYS/qzlfsA+m9/YlHmTnS1hyHKyHhpkJWVj0J4fh+AbBMg
	 K7d0jQCOhfCU1MsiimML1P/k9AmFtVbhjP+sFG+WO+ch5Zohl5VsZrXcTwGQ07CV2K
	 3QMRdGTnBodGdJJH2Ar7as7OugZFSNQDaf/9+Q5h7sbXpGJKS1J589aQfOazAb1pE0
	 QUoBUN5THrfUwIl0fFMT9ZcOpKRMLMwKaV+0tbqcJLB93L8Co9cc6ItXCpm1r/MNMB
	 gZ/lxOymURJIlYbUp7l78hb4UMriS+XqJi/8P0NDxpxApnEisabX/ZI4VdaGXHf+QK
	 SkVqGpXmdUjvg==
Date: Tue, 19 Nov 2024 13:47:16 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Anthony PERARD <anthony.perard@vates.tech>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 3/3] CI: New stage "containers" to rebuild some
 containers
In-Reply-To: <20241119101449.49747-4-anthony.perard@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2411191347100.1160299@ubuntu-linux-20-04-desktop>
References: <20241119101449.49747-1-anthony.perard@vates.tech> <20241119101449.49747-4-anthony.perard@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 19 Nov 2024, Anthony PERARD wrote:
> Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
> set. This is to be use with a scheduled pipeline.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> 
> Notes:
>     v2:
>     - remove the logic to test containers once rebuilt.
>     - only include the config with jobs for the "containers" stage wen
>       XEN_CI_REBUILD_CONTAINERS is set.
> 
>  .gitlab-ci.yml                       | 16 ++++++++++++---
>  automation/gitlab-ci/containers.yaml | 29 ++++++++++++++++++++++++++++
>  2 files changed, 42 insertions(+), 3 deletions(-)
>  create mode 100644 automation/gitlab-ci/containers.yaml
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 941e5822e8..5a9b8b7228 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -8,11 +8,21 @@ workflow:
>      - when: always
>  
>  stages:
> +  - containers
>    - analyze
>    - build
>    - test
>  
>  include:
> -  - 'automation/gitlab-ci/analyze.yaml'
> -  - 'automation/gitlab-ci/build.yaml'
> -  - 'automation/gitlab-ci/test.yaml'
> +  - local: 'automation/gitlab-ci/containers.yaml'
> +    rules:
> +      - if: $XEN_CI_REBUILD_CONTAINERS
> +  - local: 'automation/gitlab-ci/analyze.yaml'
> +    rules:
> +      - if: $XEN_CI_REBUILD_CONTAINERS == null
> +  - local: 'automation/gitlab-ci/build.yaml'
> +    rules:
> +      - if: $XEN_CI_REBUILD_CONTAINERS == null
> +  - local: 'automation/gitlab-ci/test.yaml'
> +    rules:
> +      - if: $XEN_CI_REBUILD_CONTAINERS == null
> diff --git a/automation/gitlab-ci/containers.yaml b/automation/gitlab-ci/containers.yaml
> new file mode 100644
> index 0000000000..25e8bdc34b
> --- /dev/null
> +++ b/automation/gitlab-ci/containers.yaml
> @@ -0,0 +1,29 @@
> +.container-build-tmpl:
> +  stage: containers
> +  image: docker:stable
> +  tags:
> +    - container-builder
> +  rules:
> +    - if: $XEN_CI_REBUILD_CONTAINERS
> +  services:
> +    - docker:dind
> +  before_script:
> +    - apk add make
> +    - docker info
> +    - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
> +  script:
> +    - make -C automation/build PUSH=1 REGISTRY=${XEN_REGISTRY} ${CONTAINER/:/\/}
> +  after_script:
> +    - docker logout
> +
> +container-archlinux-current:
> +  extends:
> +    - .container-build-tmpl
> +  variables:
> +    CONTAINER: "archlinux:current"
> +
> +container-opensuse-tumbleweed-x86_64:
> +  extends:
> +    - .container-build-tmpl
> +  variables:
> +    CONTAINER: "opensuse:tumbleweed-x86_64"
> -- 
> 
> 
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 21:57:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 21:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840822.1256345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDWDo-0001EZ-HK; Tue, 19 Nov 2024 21:57:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840822.1256345; Tue, 19 Nov 2024 21:57: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 1tDWDo-0001ES-Ds; Tue, 19 Nov 2024 21:57:20 +0000
Received: by outflank-mailman (input) for mailman id 840822;
 Tue, 19 Nov 2024 21:57: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDWDn-0001EM-3g
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 21:57:19 +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 3adda19a-a6c1-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 22:57:12 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-aa1e51ce601so689298966b.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 13:57:12 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e0452a0sm692540766b.148.2024.11.19.13.57.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 13:57: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: 3adda19a-a6c1-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNhZGRhMTlhLWE2YzEtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDUzNDMyLjAxNzAzOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732053431; x=1732658231; 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=tDB4Q6Fpgs0F21zxVvvrfRkRmnN4g+9lC2tT8CV1vyQ=;
        b=XGCOG2cYs9ZYHmMMi+vTljIRSB6Mh+rJZvvUec/sLRK5IH4OpEbINloDF+f5Z4uH1U
         QSCCPiwRGUIcV9xYA0hSXdNmh86Huz/J8H2GTgQiGCmMZYfs4hfYI6YdvHYjQtLzeNgl
         F1NyJL3GcR/8c+IxxFRxGHAMYjyghdOnr3E+8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732053431; x=1732658231;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=tDB4Q6Fpgs0F21zxVvvrfRkRmnN4g+9lC2tT8CV1vyQ=;
        b=Mz7ld/vsHD17FoO2OcElckJX+V1ovc+eabGWQpYLM/ZTBYPAHM4ohIMsvdxeZINic3
         +6kfuCf3mH/g76NG0SHgPhlQDRqN5kEKkLMt3x3tIatJFvH2+nFhwtpiR0h5O1718EC1
         1r7ap9cFzbKF1NyA/uOJBa9isu82ZzTEvED41dougUhEQAj+AKnK/McqaWkT8nfp4DNM
         WmHEI98OGw+CR3VDWOaNBZCz5/IvZDSNNEFL3VTTbpvcQ2cQNluEOBU8clm6P5tf0H9q
         QsFT0K5m4uNvBq/mvYhpiSC22ki2vUpIIut/zp/ddcSaFHLemwBlHkvmoi5cFxGwWNg9
         KQ7g==
X-Gm-Message-State: AOJu0YwalT3jFtcYUeN5lqZTU705Nyrx4sAsLOXO3jJaTJx9eZQr4aYr
	49hECGqiIhrCpzcHTP+Obz2swe58TEzxOhFyVlQjMBoIUHnwxYnhZ84EZWWstQJOlO38u10FCA+
	L
X-Google-Smtp-Source: AGHT+IEjIZPq/OqvZ+iC2d0lNSRTQ4NUy7LgaI6WLw1gR552jXEfGS/4eWq8ypIewZVkYC3c/sfeCA==
X-Received: by 2002:a17:907:dac:b0:a99:8a5c:a357 with SMTP id a640c23a62f3a-aa4dd766d81mr39252266b.58.1732053430999;
        Tue, 19 Nov 2024 13:57: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>,
	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] x86/boot: Load microcode much earlier on boot
Date: Tue, 19 Nov 2024 21:57:08 +0000
Message-Id: <20241119215708.2890691-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

Following commit cd7cc5320bb2 ("x86/boot: add start and size fields to struct
boot_module"), bootstrap_map*() works as soon as boot_info is populated.

Resolve the todo, and move microcode loading to be the eariest action after
establishing a console.

A sample boot now looks like:

  (XEN) Xen version 4.20-unstable (andrew@eng.citrite.net) (gcc (Debian 12.2.0-14) 12.2.0) debug=y Tue Nov 19 21:44:46 GMT 2024
  (XEN) Latest ChangeSet: Wed Dec 6 21:54:55 2023 git:1ab612848a23
  (XEN) build-id: 52fe616d1b3a2a2cb44775815507d02cca73315d
  (XEN) CPU Vendor: AMD, Family 25 (0x19), Model 1 (0x1), Stepping 1 (raw 00a00f11)
  (XEN) BSP microcode revision: 0x0a001137
  (XEN) microcode: CPU0 updated from revision 0xa001137 to 0xa0011d7, date = 2024-09-06
  (XEN) Bootloader: GRUB 2.06

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/setup.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 1239e91b83b0..d8661d7ca699 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1160,6 +1160,13 @@ void asmlinkage __init noreturn __start_xen(void)
     xhci_dbc_uart_init();
     console_init_preirq();
 
+    /*
+     * Try to load microcode as early as possible, although wait until after
+     * configuring the console(s).
+     */
+    early_cpu_init(true);
+    early_microcode_init(bi);
+
     if ( pvh_boot )
         pvh_print_info();
 
@@ -1312,9 +1319,6 @@ void asmlinkage __init noreturn __start_xen(void)
     else
         panic("Bootloader provided no memory information\n");
 
-    /* This must come before e820 code because it sets paddr_bits. */
-    early_cpu_init(true);
-
     /* Choose shadow stack early, to set infrastructure up appropriately. */
     if ( !boot_cpu_has(X86_FEATURE_CET_SS) )
         opt_xen_shstk = 0;
@@ -1416,12 +1420,6 @@ void asmlinkage __init noreturn __start_xen(void)
         if ( bi->mods[i].start & (PAGE_SIZE - 1) )
             panic("Bootloader didn't honor module alignment request\n");
 
-    /*
-     * TODO: load ucode earlier once multiboot modules become accessible
-     * at an earlier stage.
-     */
-    early_microcode_init(bi);
-
     if ( xen_phys_start )
     {
         struct boot_module *xen = &bi->mods[bi->nr_modules];
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 21:58:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 21:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840830.1256355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDWF2-0001ke-Pb; Tue, 19 Nov 2024 21:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840830.1256355; Tue, 19 Nov 2024 21:58: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 1tDWF2-0001kX-MV; Tue, 19 Nov 2024 21:58:36 +0000
Received: by outflank-mailman (input) for mailman id 840830;
 Tue, 19 Nov 2024 21:58: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=ydLn=SO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDWF1-0001j1-6J
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 21:58: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 6a2adf61-a6c1-11ef-a0ca-8be0dac302b0;
 Tue, 19 Nov 2024 22:58:31 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5cf9ef18ae9so438815a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Nov 2024 13:58:31 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4b9357088sm257347366b.23.2024.11.19.13.58.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Nov 2024 13:58: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: 6a2adf61-a6c1-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhMmFkZjYxLWE2YzEtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDUzNTExLjQzMzM3Mywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732053510; x=1732658310; 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=T4Tx40p/pcQzp9i9bKe4qDKeOuzdAJlJfoFrtC7E+UY=;
        b=pxmtX3FNwVR07DuuA/Mg9qTQST3WDa+GN5Pvdp4JF0LAp2VqJSHutg/6cb5VL+Gb30
         kwImlM8Pl2j7Z5KhLcmMucuoTOi56eOXjRITg/kHF6zXkldl6wlGVlEpJT9nTuhq4BlA
         VU/EddOPltrPOr++v8jC1NRFB/R/Rd0RV+Qro=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732053510; x=1732658310;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=T4Tx40p/pcQzp9i9bKe4qDKeOuzdAJlJfoFrtC7E+UY=;
        b=IH8SCyRdP+cZMsJNAre0pJoXhENwTwfpgVfdtkyqhzb14uqKS3cgnLCDmzRXY3jtqc
         KF4/d+QfVXtpg3Byhp69AKfPgel/UOdno/DM9qnFOQ+8RedpkaNptSSFQbHEiyvPzvYC
         Ad6w4xq7r+7kF17dDvn1GOC6rizHBlbWd7nTV6ATTKloUFqaWrQm1mjDXhqx6qKBNbYQ
         Bh8lnC2DdgCrO196LcNNSV1qDQDbjHTBYi60nAn8WYLtG8dpjq5ONsRmrc+GZNT1DBQk
         6pJ3OcoOKK/jg7MxRUrf1Oz+D4esZK6yi6ywuk8WvfwYM1usil75yWnBXaiWI3ruSKZn
         T39Q==
X-Gm-Message-State: AOJu0YxftQfxchlZDhE29JC9WsvCSQJwGcQKYA/0F6NS8PWbJg6qGO4n
	0otC6bvWzLa676GypLS8ftNm63ryQKBlBxZFD62f0WKehlD07ED6InGbWcA41/FE+tyjHZ366qa
	N
X-Google-Smtp-Source: AGHT+IG4Lp1bXImRAxW8kuCUc3FPutR9gAMOMnEhrrNflgK5ZvBxgTWjJtLjSTLIIGIWZhZKruAkeg==
X-Received: by 2002:a17:907:3f10:b0:a99:4045:c88a with SMTP id a640c23a62f3a-aa4dc4f9cfcmr66146866b.0.1732053509841;
        Tue, 19 Nov 2024 13:58:29 -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/ucode: Only rescan features on successful microcode load
Date: Tue, 19 Nov 2024 21:58:27 +0000
Message-Id: <20241119215827.2891332-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

There's no point rescanning if we didn't load something new.  Take the
opportunity to make the comment a bit more concise.

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/microcode/core.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 4811b5ffb11c..2bf462bf0c2e 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -860,6 +860,10 @@ static int __init early_microcode_load(struct boot_info *bi)
 
     rc = ucode_ops.apply_microcode(patch, 0);
 
+    if ( rc == 0 )
+        /* Rescan CPUID/MSR features, which may have changed after a load. */
+        early_cpu_init(false);
+
  unmap:
     bootstrap_unmap();
 
@@ -911,14 +915,5 @@ int __init early_microcode_init(struct boot_info *bi)
 
     rc = early_microcode_load(bi);
 
-    /*
-     * Some CPUID leaves and MSRs are only present after microcode updates
-     * on some processors. We take the chance here to make sure what little
-     * state we have already probed is re-probed in order to ensure we do
-     * not use stale values. tsx_init() in particular needs to have up to
-     * date MSR_ARCH_CAPS.
-     */
-    early_cpu_init(false);
-
     return rc;
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 19 22:02:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 22:02:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840842.1256365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDWIK-0003bJ-7W; Tue, 19 Nov 2024 22:02:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840842.1256365; Tue, 19 Nov 2024 22:02: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 1tDWIK-0003bC-4D; Tue, 19 Nov 2024 22:02:00 +0000
Received: by outflank-mailman (input) for mailman id 840842;
 Tue, 19 Nov 2024 22:01: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDWII-0003an-3Y
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 22:01:58 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2e3b131-a6c1-11ef-99a3-01e77a169b0f;
 Tue, 19 Nov 2024 23:01:54 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id C1462A42B64;
 Tue, 19 Nov 2024 21:59:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27555C4CECF;
 Tue, 19 Nov 2024 22:01:52 +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: e2e3b131-a6c1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImUyZTNiMTMxLWE2YzEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDUzNzE0Ljc2OTI4NSwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732053712;
	bh=lTlfeIOSAzIhyBHQGmZg0AapZZvGe063U5NjxPjY3jA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=e2Y0MA6iFULsN6edcy8HNZYf/SdouaEXOahA6r9qEG8fwcyaPGYqAzCQ+yiyLFPMW
	 iFCXGHmnfVU0SUrg32rJg2UzHB76gXSWIe26hSsTCmn4PPhsDeEPZOYBe7D40Sj7cd
	 Qqu4DmttClo6HNDWEDPpa6It2XlOMpQ+noe2xdYOHpEpK2dRDl+EOp/EkhUZsLn8jx
	 66m2jFaVAYzPZXu0jwPtak6pzEGBunxMBh0Yz3h4fQ6jiYGIcr+/CTcYkMrZiTk+L+
	 SAXbhBAPPAaat4OEEi0TmZjkoZkw315lS6Ikok9Elo36DlbO83i3oHOHki6p4sTJ0L
	 crW6/ceoXey/A==
Date: Tue, 19 Nov 2024 14:01:50 -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: 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>, 
    Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/mce: Compile do_mca() for CONFIG_PV only
In-Reply-To: <00fa3d65-d598-474f-b9ee-7b63db2d3b40@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411191400340.1160299@ubuntu-linux-20-04-desktop>
References: <20241119125904.2681402-1-andrew.cooper3@citrix.com> <d92cf59a-a798-4223-9439-85ae215b7daa@suse.com> <00fa3d65-d598-474f-b9ee-7b63db2d3b40@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1880775059-1732053712=:1160299"

  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-1880775059-1732053712=:1160299
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 19 Nov 2024, Andrew Cooper wrote:
> On 19/11/2024 2:34 pm, Jan Beulich wrote:
> > On 19.11.2024 13:59, Andrew Cooper wrote:
> >> Eclair reports a Misra Rule 8.4 violation; that do_mca() can't see it's
> >> declaration.  It turns out that this is a consequence of do_mca() being
> >> PV-only, and the declaration being compiled out in !PV builds.
> >>
> >> Therefore, arrange for do_mca() to be compiled out in !PV builds.  This in
> >> turn requires a number of static functions to become static inline.
> > Which generally we advocate against.
> 
> It's `static inline` or `static __maybe_unused`, but I refer you to to
> the Matrix conversation on June 24th on the matter.
> 
> 
> >  The #ifdef variant you pointed at on
> > Matrix wasn't all that bad.
> 
> It worked as a test, but ifdefary like that is a maintenance nightmare.
> 
> >  Plus ...
> >
> >> 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>
> >>
> >> Bloat-o-meter on a !PV build reports:
> >>
> >>   add/remove: 0/6 grow/shrink: 0/0 up/down: 0/-3717 (-3717)
> >>   Function                                     old     new   delta
> >>   x86_mc_mceinject                              31       -     -31
> >>   do_mca.cold                                  117       -    -117
> >>   x86_mc_msrinject                             147       -    -147
> >>   x86_mc_msrinject.cold                        230       -    -230
> >>   do_mc_get_cpu_info                           500       -    -500
> >>   do_mca                                      2692       -   -2692
> > ... what's the effect of the addition of "inline" on a PV=y build? By
> > using the keyword, we may end up talking the compiler into inlining of
> > code that better wouldn't be inlined.
> 
> xen.git/xen$ ../scripts/bloat-o-meter xen-syms-{before,after}
> add/remove: 0/0 grow/shrink: 0/0 up/down: 0/0 (0)
> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
> Total: Before=3901801, After=3901801, chg +0.00%
> xen.git/xen$ diff -u dis-{before,after}
> --- dis-beforeÂ Â Â  2024-11-19 18:08:02.284091931 +0000
> +++ dis-afterÂ Â Â  2024-11-19 18:08:24.491035756 +0000
> @@ -1,5 +1,5 @@
> Â 
> -xen-syms-before:Â Â Â Â  file format elf64-x86-64
> +xen-syms-after:Â Â Â Â  file format elf64-x86-64
> Â 
> Â 
> Â Disassembly of section .text:
> 
> xen.git/xen$
> 
> 
> Which is not surprising because at -O2, the keyword is effectively
> ignored because of the various -finline-*

Given this, and also given that this patch with the static inline looks
nice, I prefer this version:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1880775059-1732053712=:1160299--


From xen-devel-bounces@lists.xenproject.org Tue Nov 19 23:23:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Nov 2024 23:23:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840858.1256396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDXZA-0005lS-4O; Tue, 19 Nov 2024 23:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840858.1256396; Tue, 19 Nov 2024 23: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 1tDXZA-0005lL-02; Tue, 19 Nov 2024 23:23:28 +0000
Received: by outflank-mailman (input) for mailman id 840858;
 Tue, 19 Nov 2024 23:23: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=IGE8=SO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDXZ8-0005lF-Tm
 for xen-devel@lists.xenproject.org; Tue, 19 Nov 2024 23:23:26 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 449da44c-a6cd-11ef-a0ca-8be0dac302b0;
 Wed, 20 Nov 2024 00:23:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 8D2CC5C5924;
 Tue, 19 Nov 2024 23:22:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3089C4CECF;
 Tue, 19 Nov 2024 23:23:19 +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: 449da44c-a6cd-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NjQxOmM1MDA6OjEiLCJoZWxvIjoiZGZ3LnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjQ0OWRhNDRjLWE2Y2QtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDU4NjAzLjQwNjM4OCwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732058601;
	bh=OO6YlgIMzlEdt2qE7NBDYG/UQOC9OMFaQlZbxPuOXQI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LgP1u9YZ+kNUcJh7SI9pYfq0r0F22pQV0o6qjZYQW4BKFPTIoJQNKrcBcaUr3CKtN
	 kLWKiK9pfniwwphG1acvnZ8GZmBhhnRZwFZvZTtC0QaRzBQp8F/yzem0GRt5aCWHy0
	 B58EBqH7fGKIDU8twlFiYoKcf6v119VEBDNpN0yPvwVTu24XcpbtI/Ye0t093s7KQX
	 mtKmdDQdsJ/+9EblsI4tduFiTxv7fG0hWCFxOkpF8sWImIeWvn1cg0OSxHofBj1aeb
	 owBgsVqCEQp3ebysAW+cRfqMBdKo882iY3udX29l633AtrlwPQs9ypf1tUZgKqp8pJ
	 PSGOdrwjfUy+A==
Date: Tue, 19 Nov 2024 15:23:18 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, 
    Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
In-Reply-To: <875xojmexk.fsf@epam.com>
Message-ID: <alpine.DEB.2.22.394.2411191409140.1160299@ubuntu-linux-20-04-desktop>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com> <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop> <875xojmexk.fsf@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 19 Nov 2024, Volodymyr Babchuk wrote:
> Hi Stefano,
> 
> Stefano Stabellini <sstabellini@kernel.org> writes:
> 
> > On Thu, 14 Nov 2024, Volodymyr Babchuk wrote:
> 
> [...]
> 
> >> +Building LibAFL-QEMU based fuzzer
> >> +---------------------------------
> >> +
> >> +Fuzzer is written in Rust, so you need Rust toolchain and `cargo` tool
> >> +in your system. Please refer to your distro documentation on how to
> >> +obtain them.
> >> +
> >> +Once Rust is ready, fetch and build the fuzzer::
> >> +
> >> + # git clone
> >> https://github.com/xen-troops/xen-fuzzer-rs
> >> +  # cd xen-fuzzer-rs
> >> +  # cargo build
> >
> > Is this the only way to trigger the fuzzer? Are there other ways (e.g.
> > other languages or scripts)? If this is the only way, do we expect it to
> > grow much over time, or is it just a minimal shim only to invoke the
> > fuzzer (so basically we need an x86 version of it but that's pretty much
> > it in terms of growth)?
> 
> Well, original AFL++ is written in C. And I planned to use it
> initially. I wanted to make plugin for QEMU to do the basically same
> thing that LibAFL does - use QEMU to emulate target platform, create
> snapshot before running a test, restore it afterwards.
> 
> But then I found LibAFL. It is a framework for creating fuzzers, it
> implements the same algorithms as original AFL++ but it is more
> flexible. And it already had QEMU support. Also, it seems it is quite
> easy to reconfigure it for x86 support. I didn't tried tested this yet,
> but looks like I need only to change one option in Cargo.toml.
> 
> This particular fuzzer is based on LibAFL example, but I am going to
> tailor it for Xen Project-specific needs, like CI integration you
> mentioned below.

Is my understanding correct that we only need to invoke LibAFL as you
are doing already, and that's pretty much it? We need a better
configuration specific for Xen, and we need one more way to invoke it to
cover x86 but that's it? So, the expectation is that the code currently
under https://github.com/xen-troops/xen-fuzzer-rs will not grow much?


> As for test harness, I am using Zephyr currently. My first intention was
> to use XTF, but it is x86-only... I am still considering using XTF for
> x86 runs.
> 
> Zephyr was just the easiest and fastest way to trigger hypercalls. At
> first I tried to use Linux kernel, but it was hard to cover all possible
> failure paths. Zephyr is much simpler in this regard. Even better is to
> use MiniOS or XTF. But ARM support in MiniOS is in sorry state and XTF
> does not work on ARM at all.

There is a not-yet-upstream XTF branch that works on ARM here:
https://gitlab.com/xen-project/fusa/xtf/-/tree/xtf-arm?ref_type=heads


> [...]
> 
> >>  void call_psci_cpu_off(void)
> >>  {
> >> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> >> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
> >> +#endif
> >
> > I think we should add a wrapper with an empty implementation in the
> > regular case and the call to libafl_qemu_end when the fuzzer is enabled.
> > So that here it becomes just something like:
> >
> >   fuzzer_success();
> 
> I considered this. In the next version I'll add fuzzer.h with inline wrappers.
> 
> 
> [...]
> 
> >> @@ -1452,6 +1456,10 @@ static long do_poll(const struct sched_poll *sched_poll)
> >>      if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )
> >>          return -EFAULT;
> >>
> >> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
> >> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
> >> +#endif
> >
> > I am not sure about this one, why is this a success?
> 
> vCPU get blocked here basically forever. So test harness can't call
> libafl_qemu_end(LIBAFL_QEMU_END_OK) from it's side because it is never
> scheduled after this point.
> 
> > Honestly, aside from these two comments, this looks quite good. I would
> > suggest adding a GitLab CI job to exercise this, if nothing else, to
> > serve as an integration point since multiple components are required for
> > this to work.
> 
> I was considering this as well. Problem is that fuzzing should be
> running for a prolonged periods of time. There is no clear consensus on
> "how long", but most widely accepted time period is 24 hours. So looks
> like it should be something like "nightly build" task. Fuzzer code
> needs to be extended to support some runtime restriction, because right
> now it runs indefinitely, until user stops it.

We can let it run for 48 hours continuously every weekend using the
Gitlab runners


> I am certainly going to implement this, but this is a separate topic,
> because it quires changes in the fuzzer app. Speaking on which... Right
> now both fuzzer and test harness reside in our github repo, as you
> noticed. I believe it is better to host it on xenbits as an official
> part of the Xen Project.

Yes we can create repos under gitlab.com/xen-project for this, maybe a
new subgroup gitlab.com/xen-project/fuzzer


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 00:51:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 00:51:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840870.1256405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDYvs-0008It-G4; Wed, 20 Nov 2024 00:51:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840870.1256405; Wed, 20 Nov 2024 00: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 1tDYvs-0008Im-Ca; Wed, 20 Nov 2024 00:51:00 +0000
Received: by outflank-mailman (input) for mailman id 840870;
 Wed, 20 Nov 2024 00: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=o+QZ=SP=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tDYvr-0008Ig-AG
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 00:50:59 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20612.outbound.protection.outlook.com
 [2a01:111:f403:2607::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f85d349-a6d9-11ef-a0ca-8be0dac302b0;
 Wed, 20 Nov 2024 01:50:55 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB8012.eurprd03.prod.outlook.com
 (2603:10a6:20b:43f::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Wed, 20 Nov
 2024 00:50:52 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8158.013; Wed, 20 Nov 2024
 00:50: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: 7f85d349-a6d9-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwNzo6NjEyIiwiaGVsbyI6IkVVUjAyLVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdmODVkMzQ5LWE2ZDktMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDYzODU1LjQ5NzksInNlbmRlciI6InZvbG9keW15cl9iYWJjaHVrQGVwYW0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xdfov1l0pZ+q4r0YsozIVpxDDgteXEwhVMtafJEBoJixbzM4+x/lO6YV/acFrFpXm2nuDD4CI1ai7bY/20zhEbD0h0kDK59QvMixpvJ8w7Xnt0BN7A1HzjGAQpBjKHwIrGvHHD5DOuIbthJuYwjfURQCGktS1JahkFDyOv4oc7a61x6Yn1AAx2+TCiCpl0gmkYadXVEC1AgcJGvPCSkH+/Mgw225RCFUJ2XVEbrY6wYQdUfh6K5vvG2GeFCReUW/30VJwZrBB31RZDD75MkHKLn4zw0wk1/GMA7FJKAcVY5LhmcNY5WAjYjjadK2MKNKsY7t05wrnf6CwKHIeSD9nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KmxZ6FV2YMTwcziKVLlTHHg6upRflqixpmJ/Uq9Nel8=;
 b=RdOQPWUS7PR3iKlVTOZCt+9H1wlhtoeCD3yAxr766A5PSX5HofX+GsRSn7WXIxGaEM3OtFfTkN1xO2u8SrFS2gG7C9rtTUnD6F3LUjF5CoQ48g2YgtKHOhBwBRhQlhVqy/iCbAAne84EgbeV9qZAwKcyNa9WSDwOxd0vTisF/gkLr7/xAEmxz6UumuWgK+dveypaEnYczS9RkiylxdCRYJsuuvnjLGBxIsBErW4HOgGVXlSlUEZXVKcRmRKlHAwjsp0WloNVQDdIfOrcu80rjZaYzsQumWaQ7WiYrDpTGDr4bBGizRQn2kS17rbYTpoVqmtVcGpOSN8zCocCxFJa4g==
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=KmxZ6FV2YMTwcziKVLlTHHg6upRflqixpmJ/Uq9Nel8=;
 b=IdUoM3bHkVNfH54zhX7by2nwQh1I1wgGk0YvCelx3gts/yFzuAjbYHemTy5M3OyYbfA+ZYeNmCri9Lio0itAjXAPP+gd+wy3R3VjDDjMNuMhsbAPAUMUwvgghwcqP8HnSBIPjACP13jsYPDy7Xf76FW8ctLnq/1XRXdP413i+XnF8W2H7MDLtQa6Zo914ktHGqADpW3IV2PFtD//NzZF+MXMHHcatvI2SJU3pwxqbHdCtklCwfgZbRSbDy0HhwSkfkqi6skfepWyTeLwnnXCYq2m1gakzxbBAusU1aJoxIDI/ktW0Wmv3HQbRj29Pj50xV3DiNhLIx34L99pAhZQYA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@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>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, Juergen
 Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Index: AQHbNucXRmUX3Y7lRUGcS7d55ZSXhw==
Date: Wed, 20 Nov 2024 00:50:52 +0000
Message-ID: <87iksilod0.fsf@epam.com>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
	<alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
	<875xojmexk.fsf@epam.com>
	<alpine.DEB.2.22.394.2411191409140.1160299@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2411191409140.1160299@ubuntu-linux-20-04-desktop>
	(Stefano Stabellini's message of "Tue, 19 Nov 2024 15:23:18 -0800	(PST)")
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: GV1PR03MB10456:EE_|AM9PR03MB8012:EE_
x-ms-office365-filtering-correlation-id: ac9ab90d-cdd0-4d28-5fb0-08dd08fd621c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?4ylTQstu/VIoJHpgp+67m7Eeq/15vqRsT20xkd1phMe6M4X5//xomasfL9?=
 =?iso-8859-1?Q?Go0hYpjdGsOQe1USjQIefDfeaaJZbCRpLcc3ldj94acb3f3p6j3pL7kBGR?=
 =?iso-8859-1?Q?hEbzYQ2+LEhcb1See66xlcUgg/jmObWV9LulNf2pkPv2DNfOdc6gVSF1ig?=
 =?iso-8859-1?Q?hm+IYyOcM3jReDbPXQfotdqtQmVCbtvlHhat8GI88lKZhth/d2Zfv8j2MZ?=
 =?iso-8859-1?Q?zQzcenprKc0NaEwyZLTeTynoxlus/x+gnc+ulf0ccEM89UzA/0ylAgCAZl?=
 =?iso-8859-1?Q?bPobG2QKCus69yQzLym8rgm8z9yLW5Pby1cUwsMebVvDrd8I5R85zh5BSE?=
 =?iso-8859-1?Q?4UTCUGLErCXPY69U+BrVd81nK37wed31PMBq4BM5MCo7PInTsVDP7oOcgT?=
 =?iso-8859-1?Q?woafYQXJW4+ZYWNeLkIN9YRoR3dl4+BYaDFzxZn1wNhrXpdli72UzPoQFy?=
 =?iso-8859-1?Q?TpT6ktKCUYFaYITC5B/h3HEEZX+TQ0AmvdhgxgsfaKJl8NYQpAEKQOM50Y?=
 =?iso-8859-1?Q?NJj53VGtoVkWzEeSuw2ZCaaXWyes/+LwMuabf2Ru3pTqrwKPuREsp+dkZ8?=
 =?iso-8859-1?Q?1tob0zQJYcCQqPxxFlmd7+kUt7Ic0387uStiB7SPeNYCz7IpUSR696MAJ3?=
 =?iso-8859-1?Q?Pmh06vv29lVilJQ32KFRNd+lpVQaD9TWSDcG6qStyAtVk8OIU5/0yLxAtR?=
 =?iso-8859-1?Q?dQetbMaAEMJp54EEJtzvKxnqBq294sEhU4fBjL5/yVWr6F6gawVXKV3U6Y?=
 =?iso-8859-1?Q?glaY4dxFprZIYy6FMhIpFmgtPiBa06IaIaXR175ynZCR9UgdXS8JFQ5hs1?=
 =?iso-8859-1?Q?oih7NlVJg5QLFIKYe0DVdV1M/UD8VNyWibOAfWflvY67GuVIS8I32w/Ogl?=
 =?iso-8859-1?Q?OIkDNwJI84OX7VTJN90Ivh9VKiAzdwyJUQD2rXOp3EN34kApWq1CxWYzyH?=
 =?iso-8859-1?Q?uKFyRUP/t1kGhwz+jFFY7VMGemU7AXd4XOTgrGzWtdS5LHvGZ8X4OtqJnS?=
 =?iso-8859-1?Q?24SIFx950/j9IQz8QFsbaas/xnvz6Xa0sz4r7Xs/8cg9knrEyZDXmbG4ZI?=
 =?iso-8859-1?Q?xeOz2xl81UfFdv56nnSOFeCSy3smer1nabWqp2jRnyisJXniTKP31WXY94?=
 =?iso-8859-1?Q?Wsny71ZtJhwK+QnPm1pHEFuystHL+mClvs/UbwTfVHZRcls5u8ldLqYPpt?=
 =?iso-8859-1?Q?suM1FWcOfKF6ljkO95OJFj7c1p2nK8cZw784aKPYGfvPV2Di5HLmINCE1i?=
 =?iso-8859-1?Q?WmngcGZuvFmcUUT9dDEbhjzcHzq/oYt0zQmMLXgxz2gFuB/6I2z9TFD1cH?=
 =?iso-8859-1?Q?sd2nCvC3JEwEqIqxfnsjb1TXUZBguCIiCcOLB3NY4ab8hMaJt9xW+x2GE9?=
 =?iso-8859-1?Q?qlPQp1/0MF?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?sPfSDRJLSwNlQfIgIjTSuh334jCGuUdXo3MxQYAdD8r/K1Kj5Wycb35sc3?=
 =?iso-8859-1?Q?IjqMI4TJe4R96k+eA/bc5fuIHuQZniLSkpHCbctN+V1Osn0BpnSgtl3B8u?=
 =?iso-8859-1?Q?Or5QyC/WZ9UhX/dwaweyqTEy5zBrptVQcwYmAk38RJUbL3qFdeSkKJ8xjQ?=
 =?iso-8859-1?Q?FjpIuHylG9EU8aqAgMC0kwTGGE53eRjK3t+ny+7gX7QccgPwnxKTiVFPLD?=
 =?iso-8859-1?Q?wIS4XiMsaFkuJ9Xr8nogpxC9rx2d1CFdcKIBOMQsHKzVu6UmRPpMV3QtzY?=
 =?iso-8859-1?Q?NxbUDJKsOKEthhKBDhRquRwiHapy84glVsq6kMnQP9nbFJpxvbZ9o4N8zX?=
 =?iso-8859-1?Q?g3IUOpaOxuBJlo5GVxjMegv2Zxj3j0aUX4QKxpNLIb20065BkQYxMFYB1K?=
 =?iso-8859-1?Q?X5kJDQNBzQs6bfPFN2ZOI4PUJF8W3er5yGNqB2KRRSkwYZWm3W3kZd44Pf?=
 =?iso-8859-1?Q?LRj0/iNV6ULeeC+/wa0Wf9JIb+fmv2PQvrhx/Kzysd0uJ6J6V70SfdUuUA?=
 =?iso-8859-1?Q?usoaasHM0p7JF9nmLKrfiCBUCWFo5YFBDDD2FbVEsK3lDdcaFv0fDyj/Fq?=
 =?iso-8859-1?Q?sC8eLoVXi0Uybi+HiP/MBJewG7H0zO0X7jxbK6ejGCtheAjrrGa8D6wgDx?=
 =?iso-8859-1?Q?xFiH4b/QypRKm+vbedSZCtVY+yIyc9FRICQkJ0Pj803SfWUzOqucYBpdyi?=
 =?iso-8859-1?Q?q3pP5dY1/s2jLkzn0IXW/bTQtwvBx/NzMA1Qpf7K5Ew67rUAZDvJ1p/XwY?=
 =?iso-8859-1?Q?Pvq7U9gJ2YsYpRtaXhrO7KieXp0wnBA7uC1FR3ijN1OqSTL85qjhT6PMV2?=
 =?iso-8859-1?Q?urPXy4UCkbiuasb7vEjg4DZglkXxzYL2ocgcBa81xaDnaAUgzxenNFMXDq?=
 =?iso-8859-1?Q?aD7FeWxjLIUsRV/CppUitd6wP14blt6+BZPjxGaTmE1M+bdKtMDknUD9K2?=
 =?iso-8859-1?Q?CNPAj3cUP9V5lMIfZgnMVaTio7fatN8YXyO9ubrCEkFgFx1OMn/QFXuWS8?=
 =?iso-8859-1?Q?LSyOU6JQjHKvO2OC0sUILWJe+XM4841O/YPpVqPciRLDE2CfIWDIMxKQxV?=
 =?iso-8859-1?Q?otWQRTiDFfquKrA5VR3Xtef3eS1z1soMaKHLLB53wp/V5Kl37p6pEM67Ya?=
 =?iso-8859-1?Q?n9NQYNYGb671t9oxK++ql1Q12OTsl59D+rp3ollJSISZGdRamNqZZeSCQj?=
 =?iso-8859-1?Q?2ZN+cgX5jFbJQp+Xy1OUBDRWRHO/JeElPk//TKGv4zTdVgmIB+FzxG4ibP?=
 =?iso-8859-1?Q?UzNDem9utx253q1039ZU+dQdfLuiW/3o195lAW25iZo6WhJtmNWRSW/mCr?=
 =?iso-8859-1?Q?e2f+dGZ6vywz2az5dBICAma7UgWtvRu3wV2yOATaqUnpwuzcUjpiNykrfE?=
 =?iso-8859-1?Q?Ld3rSkejwxe3rEbc5uZ0bjwu5qcHXEGhjsagq+ImYqyXKcNiqUJasaZ9T4?=
 =?iso-8859-1?Q?csTo5shKCVPe7WMmjlXCG/r5uB1DqH1wn4rvjuVuzqlR2FJK2vRHLxPdap?=
 =?iso-8859-1?Q?g343zyJ6TSirGXj+IQJmWJb4VT3VRNOrkVwr9l8iThvviXE8NwQPNkI4VH?=
 =?iso-8859-1?Q?nhUjkGbi2rEunYOuWeUj1LPHoJLvnffhwgJDSu5N73rzGSKHzaBErxXQFv?=
 =?iso-8859-1?Q?fZ/FWcjqEzT+VhkxzADgn20e9LL/hmE1czgu/H25jj8Trqqbpwv9BLzQ?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ac9ab90d-cdd0-4d28-5fb0-08dd08fd621c
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2024 00:50:52.1671
 (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: DxBlH3QG4MboB7tIVU5Jsa8gTyE7j9y3PCz2HluTEvTr6w6rr2Zg+9r2FJ11WK00FIDbdQZpeYTYjJzEBt0N7/me4OorarNUr+J6DQADCRQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB8012


Hi Stefano,

(sorry, hit wrong Reply-To option, re-sending for wider audience)

Stefano Stabellini <sstabellini@kernel.org> writes:

> On Tue, 19 Nov 2024, Volodymyr Babchuk wrote:
>> Hi Stefano,
>>
>> Stefano Stabellini <sstabellini@kernel.org> writes:
>>
>> > On Thu, 14 Nov 2024, Volodymyr Babchuk wrote:
>>
>> [...]
>>
>> >> +Building LibAFL-QEMU based fuzzer
>> >> +---------------------------------
>> >> +
>> >> +Fuzzer is written in Rust, so you need Rust toolchain and `cargo` to=
ol
>> >> +in your system. Please refer to your distro documentation on how to
>> >> +obtain them.
>> >> +
>> >> +Once Rust is ready, fetch and build the fuzzer::
>> >> +
>> >> + # git clone
>> >> https://github.com/xen-troops/xen-fuzzer-rs
>> >> +  # cd xen-fuzzer-rs
>> >> +  # cargo build
>> >
>> > Is this the only way to trigger the fuzzer? Are there other ways (e.g.
>> > other languages or scripts)? If this is the only way, do we expect it =
to
>> > grow much over time, or is it just a minimal shim only to invoke the
>> > fuzzer (so basically we need an x86 version of it but that's pretty mu=
ch
>> > it in terms of growth)?
>>
>> Well, original AFL++ is written in C. And I planned to use it
>> initially. I wanted to make plugin for QEMU to do the basically same
>> thing that LibAFL does - use QEMU to emulate target platform, create
>> snapshot before running a test, restore it afterwards.
>>
>> But then I found LibAFL. It is a framework for creating fuzzers, it
>> implements the same algorithms as original AFL++ but it is more
>> flexible. And it already had QEMU support. Also, it seems it is quite
>> easy to reconfigure it for x86 support. I didn't tried tested this yet,
>> but looks like I need only to change one option in Cargo.toml.
>>
>> This particular fuzzer is based on LibAFL example, but I am going to
>> tailor it for Xen Project-specific needs, like CI integration you
>> mentioned below.
>
> Is my understanding correct that we only need to invoke LibAFL as you
> are doing already, and that's pretty much it? We need a better
> configuration specific for Xen, and we need one more way to invoke it to
> cover x86 but that's it? So, the expectation is that the code currently
> under
> https://github.com/xen-troops/xen-fuzzer-rs
> will not grow much?
>

Yes, it basically configures different bits of LibAFL and integrates
them together. So yes, it will not grow much. I am planning to add some
QoL things like ability to re-run specific input so it will be easier to
debug discovered issues. Or maybe tune some fuzzing algorithms
settings... But nothing big.


>
>> As for test harness, I am using Zephyr currently. My first intention was
>> to use XTF, but it is x86-only... I am still considering using XTF for
>> x86 runs.
>>
>> Zephyr was just the easiest and fastest way to trigger hypercalls. At
>> first I tried to use Linux kernel, but it was hard to cover all possible
>> failure paths. Zephyr is much simpler in this regard. Even better is to
>> use MiniOS or XTF. But ARM support in MiniOS is in sorry state and XTF
>> does not work on ARM at all.
>
> There is a not-yet-upstream XTF branch that works on ARM here:
> https://gitlab.com/xen-project/fusa/xtf/-/tree/xtf-arm?ref_type=3Dheads

Ah, thanks. I'll try to use it as a harness.

[...]

>
>>
>> I was considering this as well. Problem is that fuzzing should be
>> running for a prolonged periods of time. There is no clear consensus on
>> "how long", but most widely accepted time period is 24 hours. So looks
>> like it should be something like "nightly build" task. Fuzzer code
>> needs to be extended to support some runtime restriction, because right
>> now it runs indefinitely, until user stops it.
>
> We can let it run for 48 hours continuously every weekend using the
> Gitlab runners

Great idea. Anyways, I need to add option to limit runtime to the fuzzer
and invent some method for reporting discovered crashes to the CI first.

>
>> I am certainly going to implement this, but this is a separate topic,
>> because it quires changes in the fuzzer app. Speaking on which... Right
>> now both fuzzer and test harness reside in our github repo, as you
>> noticed. I believe it is better to host it on xenbits as an official
>> part of the Xen Project.
>
> Yes we can create repos under gitlab.com/xen-project for this, maybe a
> new subgroup gitlab.com/xen-project/fuzzer

Good. Whom should I ask to do this?

--
WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 01:21:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 01:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840886.1256416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDZP2-00031k-SZ; Wed, 20 Nov 2024 01:21:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840886.1256416; Wed, 20 Nov 2024 01:21: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 1tDZP2-00031d-OC; Wed, 20 Nov 2024 01:21:08 +0000
Received: by outflank-mailman (input) for mailman id 840886;
 Wed, 20 Nov 2024 01:21: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=xlhZ=SP=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1tDZP1-00031X-P8
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 01:21:07 +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 b286d2ad-a6dd-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 02:20:59 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.stl.internal (Postfix) with ESMTP id C77DA114016B;
 Tue, 19 Nov 2024 20:20:57 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Tue, 19 Nov 2024 20:20:58 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 19 Nov 2024 20:20: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: b286d2ad-a6dd-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTQ3IiwiaGVsbyI6ImZvdXQtYjQtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIyODZkMmFkLWE2ZGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDY1NjU5LjYwMzkwOSwic2VuZGVyIjoibWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=1732065657;
	 x=1732152057; bh=04YXZq3yZT+PFGzFZmaOgkjeqd4tZMpfOGbDn6YR6BY=; b=
	NhYoITUhq30R58wm5V94FcISFXdvxfqzBGTx5UysyKiXWnlDBVX5/xLd8bic99u6
	cMrpAxrrQAUebDhhJaAMX/VF53FWZgwMm6W7R9R1qk35CJv+gZCWQYBIZW0006Xe
	C3qgUr/w8wYTcmDFhP6ZH8ettf/LA/GGLDNDuvAJ3xBHm33ThUG7QyyRZLjU77Sw
	LxaMxuh0ZZ5sW+VLDMcugON0OqD84wU+PD5gOVxyemwmFYMg+WtS5aH5qlioc57t
	dkjkrom8aq9O984S1Fe7r4vV6zK0nvFgdBkxHrrQV+dI9vyTC7T08JVXFhF50KNl
	/jDrHwZWjmdVxsnunW/w3w==
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=fm3; t=
	1732065657; x=1732152057; bh=04YXZq3yZT+PFGzFZmaOgkjeqd4tZMpfOGb
	Dn6YR6BY=; b=aml+nCDgWnuhYz1zzIrwM6pP3Wx4J8fj5kPXUNK4KXG2Z8xRqbE
	eKwc6E8tcuQJuMpvnQN1n3WBrMF1Z3rlczAoEgVi9d3r0HYyQ8Meinw40C+nWouo
	kACkV+otgVFIEi7R6dtikSV1XIv0Yl/2K497CgWsm6eGw2QglIyj8CUM4IzU2xyK
	qn21T8NczCpxm9ICjHEdiLS+VAg39Npa9ERnv01izLXukXftg8KaTYfphPnId7tM
	ZEpolpMvV8WVZZpSeu1ibXRgdOmgWq8uAQcU64pPgImaCsTlTZI2ET3YYgoQ4EZ5
	fGjYoHKQgrB5wMui0Tn05xNFM5VTvQ3k6TQ==
X-ME-Sender: <xms:eTk9Z4LWiWx5kLCJ5bf87xKdXbuCaKRSnB-TTFrW1gVdP9wNQ_E23g>
    <xme:eTk9Z4I9N9GlcU5HBcC5OXJhXRF6v1LyXnwo9HCRjTRdeFZXxhSFzPL17sEoAlhXW
    emhNKDgRggd9g>
X-ME-Received: <xmr:eTk9Z4tUAB1xpL26SVb0-J6oI3FLlrvLri4MVs1NqFW1SNZnAwFG2HuDtKSGGEijIRbThPc4GNZsNGdjxvt3d6IhIbI7aRiJQw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrfeefgdefudcutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr
    tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth
    hsucdlqddutddtmdenucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecu
    hfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrg
    hrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffr
    rghtthgvrhhnpefgudelteefvefhfeehieetleeihfejhfeludevteetkeevtedtvdegue
    etfeejudenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhm
    pehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsg
    gprhgtphhtthhopeduuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepvhholhho
    ugihmhihrhgpsggrsggthhhukhesvghprghmrdgtohhmpdhrtghpthhtohepshhsthgrsg
    gvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepgigvnhdquggvvhgvlhes
    lhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrd
    gtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehjsggvuhhlihgthhes
    shhushgvrdgtohhmpdhrtghpthhtohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpth
    htohepsggvrhhtrhgrnhgurdhmrghrqhhuihhssegrrhhmrdgtohhmpdhrtghpthhtohep
    mhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepughfrghgghhioh
    hlihesshhushgvrdgtohhm
X-ME-Proxy: <xmx:eTk9Z1ZNIGRss0wTbb7zLMz0Al6H_WRe-BBlFAHw9KVNwsWfpvxNiA>
    <xmx:eTk9Z_b1x8IqtiqT9Nd-AZ9K1PvVE7nCv4GoTH3VAA8DT9oAVDD4bw>
    <xmx:eTk9ZxBazSkJ-cY2QGUUHB-ODTNNWla7W7X8Yd4gSjqiecG8UBONGA>
    <xmx:eTk9Z1ZKt6TYvVi-uqsmbb6ln1kowZwSuzohlLZTgh10KikWbIrMyQ>
    <xmx:eTk9Z8Txj0iJHMOSdhjz1tbvRm2jqSvug2qT1FxDv1RxT41kXXUurlYT>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 20 Nov 2024 02:20:50 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
Message-ID: <Zz05dJdAOvaKKrag@mail-itl>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
 <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
 <875xojmexk.fsf@epam.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="MBWhVwDka29qAHhA"
Content-Disposition: inline
In-Reply-To: <875xojmexk.fsf@epam.com>


--MBWhVwDka29qAHhA
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 20 Nov 2024 02:20:50 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support

On Tue, Nov 19, 2024 at 03:16:56PM +0000, Volodymyr Babchuk wrote:
> > Honestly, aside from these two comments, this looks quite good. I would
> > suggest adding a GitLab CI job to exercise this, if nothing else, to
> > serve as an integration point since multiple components are required for
> > this to work.
>=20
> I was considering this as well. Problem is that fuzzing should be
> running for a prolonged periods of time. There is no clear consensus on
> "how long", but most widely accepted time period is 24 hours. So looks
> like it should be something like "nightly build" task. Fuzzer code
> needs to be extended to support some runtime restriction, because right
> now it runs indefinitely, until user stops it.

Regardless of the actual fuzzing (which takes time), I'd suggest to add
a gitlab job that does sanity test, checks if stuff still builds etc. It
can probably be limited to 1min fuzzing or such.

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

--MBWhVwDka29qAHhA
Content-Type: application/pgp-signature; name="signature.asc"

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmc9OXQACgkQ24/THMrX
1yySFAf/Yt/m3i2IykunM9aiQfcCNvZ/dmNzA1ULoAGKKR01yk+opYGWoIfyFCYt
Cz7/2TnBoUN9NBJq5Beft94o1DVhn5/kaeU/mGPQl7XWgiHFhMmmgfVkDulp56mw
gUfMBh77azvah86Dl7j/9nSEafpZOxjW+5KElJpKBaFIZBeFj7IV6AgUd/DTHfl/
jbnTSnYHYXbs38ZCvlHeu0D4gezgnuFDaKw81x/5DcZ+tE6E9WjTGNCuDpNnCt+f
2gBKAfUPtl1xF2FSr2+YUPuwnDyjow3IRNkl5ZVKyUA5gVD9hwmML3cQ5/7yiMdO
RBBKZEIxsnqT8FqKhEGbh928kIsCtQ==
=HmpQ
-----END PGP SIGNATURE-----

--MBWhVwDka29qAHhA--


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 02:26:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 02:26:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840896.1256424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDaQU-0003e1-GY; Wed, 20 Nov 2024 02:26:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840896.1256424; Wed, 20 Nov 2024 02:26: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 1tDaQU-0003du-Dv; Wed, 20 Nov 2024 02:26:42 +0000
Received: by outflank-mailman (input) for mailman id 840896;
 Wed, 20 Nov 2024 02:26: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=Jnlo=SP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tDaQS-0003di-7v
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 02:26:40 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2412::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd460775-a6e6-11ef-a0ca-8be0dac302b0;
 Wed, 20 Nov 2024 03:26:35 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CYXPR12MB9337.namprd12.prod.outlook.com (2603:10b6:930:d8::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24; Wed, 20 Nov
 2024 02:26:31 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.023; Wed, 20 Nov 2024
 02:26: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: dd460775-a6e6-11ef-a0ca-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjFiIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRkNDYwNzc1LWE2ZTYtMTFlZi1hMGNhLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDY5NTk1Ljk0MjksInNlbmRlciI6ImppcWlhbi5jaGVuQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ytpnHX0A3Y7ZaRY0Bq+c50kQ+njQ8Ix8hWgHRMsM1zPzL8aecKYJoHBD+xdL6kPLr4r+Fn5bRqBg4k2Xc2i/JTmU5JZh+jKIHUHsy405CnhcevAbeRUAaNZYqeH49q5AkzVY2OjbfQpvcFtBQQykZJ4J+9moCBogjVS9zd5vrQD+dFqv6mJTtQI+4spv0CbPyDCdvM4sfr1mkvjdrPuSJRY/wJvp7BVbSxd1RxeytMux7xIiSPjfSYSg0jqq6+5wVtcF9dD5h8I6TBANPEvyRiDEfFURXWVOA/3TchWeXGgUimz2e8jXQ3bVJE5YoyBsFUTmgDRDc52yEE0j6V5/Tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0MSe6sa1RvT6UfK+OdO7ZXPRNAP9Igyyd6U3Ooo+X2Q=;
 b=tnk9nIHypUpRqT6uFVEoETMHZU9Bk4RzE6zd4JVRwpGeM9TAptE9lEc2kXjeww82U0q+02LzmUwIh7CwYOaPJiU85VBe8LKCwET5zqESevgBow5VldEVY08itZdUEK/zEoix8j8Q8zLlN1SXi3JM92YVnN+j4JMfTaBoe+f8ntwc3ftssvJK8QiD3DvAiVMN8IwY2HVLLSRjzxTWBNT6KIjFx7yr6GlUka6XfBO21AoQGAejhoUsMnHG3qkG/YoEsgLO8NvXqfinAqZVj2oZRJn5fus+rpolydkC8/v3xcTmNRUfqT6C8aewjz9fTYKi9Gx0ueHwig5Wb9SzrFYr+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=0MSe6sa1RvT6UfK+OdO7ZXPRNAP9Igyyd6U3Ooo+X2Q=;
 b=PMlzEcNVHkTTtsp2WSfNcdTmWF6QbrU3W7OWwnmYJKsskd4Oj2zVLuXlglSAko6oy4qdT1bk/gZE6ksgDP8766jrhhSDWGGPkrSsj3E7yeDG7azfWPOyrEm4GKDLPYg19yBky4v+IsINNDTYzhC97wsP1hWOSZ9eVggnJ+AtMQI=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index: AQHbNaIlMxf8mJcywkeNRFmHEai1qbK82tSAgAHkIwD//4OCAIABvicA
Date: Wed, 20 Nov 2024 02:26:31 +0000
Message-ID:
 <BL1PR12MB5849199069AA4C9F3837031CE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzsUL3dnjl5x0-si@macbook>
 <BL1PR12MB5849F6F7A4E86E0209AB152AE7202@BL1PR12MB5849.namprd12.prod.outlook.com>
 <5262adaf-2ff7-47ea-8c13-c544b31e4115@suse.com>
In-Reply-To: <5262adaf-2ff7-47ea-8c13-c544b31e4115@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CYXPR12MB9337:EE_
x-ms-office365-filtering-correlation-id: c2cf2f32-a774-472f-ef22-08dd090abed7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MDBLSHRNL3drT0NmdDlyd2ltM3lVUmFWU0s4ZFIyNmp1UGNmMUZSZHd4R1Nt?=
 =?utf-8?B?Y2NRcW0wbmx1cEkxTXhTUlJGRGtuSmpZNGF6aTVyZHUzVHR2bFY5UzBScEZa?=
 =?utf-8?B?UVZ5T3B3ZGNibG5ZNjNDM3BOWlBaeWsyM3l3MXd4S2RTWlVLTlhWQW5TTEgv?=
 =?utf-8?B?YWhiMHp3bWZIUnd4Qnp6S1FoaE5PemVSck4xQXpmMGdBRzlyVXBONCt1dkds?=
 =?utf-8?B?SHQrRStCaVJsNDNlR05BYnU4ZkxkaThXdzFWMGYyWnk0S1N1aW85TXZvOVVS?=
 =?utf-8?B?bjZhUzJGWmZBcC9wcE5vN3BZUE10cTNxeEdYSXBzR2V5NDF4VzVwVUJqQ3hs?=
 =?utf-8?B?Nm9oWDFkdDd2N1ZKdXFReEVFcHRSL0FtR3daUW5qNmtIMGxZa0wvWDk2ZjNq?=
 =?utf-8?B?UnNlZjlZeDVwQzZwZHAyZU1iUURObWxnUURoQmFrcW9VbGw3Q3E3ZXVieXhz?=
 =?utf-8?B?dk9KQW5jSW1TNVdvZklBRGN2bytsdXJtTllTNTZpd1dlZ0dOVU95Z0VtWXc3?=
 =?utf-8?B?OEI4Ky9ub1ovTkhqQmEyZkpNeFMrakVLb2c1ODNwbVZRUEJSQzB5RnpaSlp6?=
 =?utf-8?B?L3llSUQwUk96c1hndVk4azBNV0pEWFRYdXMwTm96T3ZFbisvYndDQnkzZHFi?=
 =?utf-8?B?UEh4Mk5nOWgvTXhtZGZ1V0J2RjhsWk5sY29sbkpoVnBKa2IxZUwrMXJJY0ND?=
 =?utf-8?B?cjlwS0dwN0RYTXdLVmlBRmUzekplRElNczdoRS85SWNpUmdnQndOZGxFV2w5?=
 =?utf-8?B?NWRxQWM5TVdGL251NitxbloyaUJiQmx3L1FVTEhrM2lLRTVtbFhwTWV0VTVS?=
 =?utf-8?B?ZS9jall6MmtuZTBLODd0MUF4c1A4RnBUK1RsUFVDNGIzajlFWmlTTWxzenBD?=
 =?utf-8?B?M0dubi9vZzIzeExNZkdReEtINDRmWmVpdCtIZ2hORVdpSEsxNE8xWnA0T2x3?=
 =?utf-8?B?R1BZbDVHTGg5alZiRjY2WUN0QVNVS1RYekE5WEhFOFBnL1Q4dDFJYkVGaktI?=
 =?utf-8?B?UGxXOXVVaE5WSFZyVFgvek9LZG1XZU5RYmt5RWFDM2ZYUjVVSGNHeVNMaGZt?=
 =?utf-8?B?anVGZ2trdUpCeERTWG9XMnVPVzNJdFhMLzBMYmkzRnlpWjJ5KzFmRWJMZ3Qw?=
 =?utf-8?B?eHAwcy9SUndsVXJoTGFzYnBOSENpZ0U2d2I4Umw3aVlyS1F1V2U3TElEdkNB?=
 =?utf-8?B?YzJYU21zT0NBdUR5RXJHOVJXeXhJaFVSTmRsMk5uT0RpVW9ZbFMxSkhjbGlN?=
 =?utf-8?B?ZGFybUxCL1U2c2dPWmlQdkoyRkx4NTN2L2ZJaWZ5V2VLNkR2QW1rUitXN2dn?=
 =?utf-8?B?enJ6UXFSSndrczNBTVYzaWZJRG1MakNlT1MrODRmNkVyUWNGM3JoUkxrQ3VU?=
 =?utf-8?B?QXZZYS8wUlhHak5XM2REVHM3SnNjdEE1cjZWejByUTJWOHJMU2xlTFBKcUt0?=
 =?utf-8?B?UVI2djhoNVFEZ003RzlKZWtIUllVVEpGU0tGaHNYNjRiSXBsOGU3elE0b1BE?=
 =?utf-8?B?MlZrK2l5aHJqUE9jdHU3L2tFYlZDeDhLOHJ5TlIybDluSVVTVTlUbHFxTW1J?=
 =?utf-8?B?STNpNkwvdnBzMUl2ZlFJQTIxN0dXUGg3RzMzUTBOYU1McEFUZHY0Q1IrdFhh?=
 =?utf-8?B?amRVekd5REhaWjRwd1hqU283QWUrQzArWXc0YlFvOTRCV3ZWZktzUVgvWTZw?=
 =?utf-8?B?MXpPVW16bjYvQjc2RlVwTFFqZkU4UXcvYVRnL1lHS3BnV0FYSFdJdHVZc01t?=
 =?utf-8?B?SFp1VnhJMmFhNHdHNCt2VFBmbzFIMVFKQ2QvZ0oxRGkxVHBtVHRkYkdONFBJ?=
 =?utf-8?Q?Bjg++cnV/u8nKqOJ+jDYU9FcFVxv0PlEqrBFE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?djIybXgzTmJ1RHdFYnVEbmtQUVVDbHNaN3hKZ2wzMjBrRXEyVTM5eDRuUUpn?=
 =?utf-8?B?b2l2L1c0RVBtY2hEeEdWWUVPY0tZRTdPenBNWUozY0dWU05lRFRUaVNvRWRs?=
 =?utf-8?B?eUl6TTJRZUxUdVFocUFrQUY1d1BFeFNiWkdDMGFQY1BONzhsUUY0eFpWb1lv?=
 =?utf-8?B?OHNXRnBXdlhORmR1T1Zua21NZ2ZCdURHWFFsM3NodDl0QWM2TWd1MTlmd29x?=
 =?utf-8?B?TEUzYlhWZTFHR2FZZE9FWk80NDFmaDB1QWIzanZ0Ti9UbndPazdleDZGck1S?=
 =?utf-8?B?YUYwdU1jMW0wRGdXa2x6TE4yNXhMeXArVWZ5SDBXNDFuaUExMWY5OUh2ZE5T?=
 =?utf-8?B?eUsxNkI2L0NReFg0SVVqU29NQlovMFdlWXhyOXE0cmRkQWhPYjNxeGNJZmxN?=
 =?utf-8?B?M2Znd1pxTjQwaEV3dXg1cGxXNm1vbXNHZTQxLzNRM05rY0FyMm1lYVFPY0J2?=
 =?utf-8?B?Mmx4VkVTYllRamVVd2xjZVZiTGgxRld3SHpvMEN1cVBRdjBmSDJIT1FwdVA1?=
 =?utf-8?B?bUl3VnB2cWlvSElUMW1zclhhUzdpQWh6ZWFOSjZUZldMMHJ4WC8wZnRqWDBK?=
 =?utf-8?B?UFFwQzVxU2JTSFpVcmM2SHgxU1cyckFhSC9DTEFmRTArTkl0QkVCVm5ETllT?=
 =?utf-8?B?Y2lSZnoxWnB4ajl6dkhObFRqSjVHUjhtTkZzRkd3UkJCSy9PczBsc056Z3Qr?=
 =?utf-8?B?SEd3OHgzdk5CWVVoM1lkUXFtWkVZY1RsekkvczJxWW41WEpRWWZHZFg5ZVVJ?=
 =?utf-8?B?QmhXcGhLQkNYUjViM2RVNG81elZzeFFtNC94Ti9tSjBXcVVrUDhrUVBqVWZx?=
 =?utf-8?B?clNmeFNrakpOQ0pTUDdhNmx6amg4VmFJMWRvUGpwUVB3S3JUU1h3WlFCem1n?=
 =?utf-8?B?V3NBYmtzWk5ZWlIyUVZ1dWVQOENUdFg2ZXBYSnpwU2tGaEhqZkMva0hYZExW?=
 =?utf-8?B?c1ZlQ2dYSDFUVG96MkxlSGhQUGJFMlZwYzZLSHpmSjg5UXhFcWV6MUtLZHJn?=
 =?utf-8?B?dHMxNmxOdmFIVFQ2MHZMRnJKbyttcVRxaTdhOGJkazMvL0d3S2dGSGZOaldz?=
 =?utf-8?B?ZGRZYWdaMDNXcUNhMkNiR3FvM3ZGVEVjNDZKQ21kbHlZZnpLUVF3ZGRzRnZP?=
 =?utf-8?B?SzB2cFp0UXk2L05tWkZMOW9jcEFZQUt6bmt5UEpFeWZZL1VLMlZrc1gyN2JO?=
 =?utf-8?B?SW5aTmJ3eWFGR3VuVk42YmFmWnlOcGRWNktFMjB4d1BMdnBIQjYvdHhiTklH?=
 =?utf-8?B?aUc5NzBVb1I2QWgvRjR4NHVQWWtlYUZodzNWZXlZdFNYWUVPMjZ5R0l5eXdT?=
 =?utf-8?B?cTVSaWpLY1hxWWZWbW13MFJLYUNkWndVQmw3UWZUdUcxdGRXTHF1ZUROeDVY?=
 =?utf-8?B?UW9MUDY0aG0xd25lcDEydW5OekN0NUkya2dlM3hzUU1mdkMybDlsRXNwa0pn?=
 =?utf-8?B?ck56b3hTL3VTaFgrMnBFbDNxMVlwb2I4OS80WHI2UENaNHlwaDRtUjBQaXBT?=
 =?utf-8?B?Wm1EMnVPOUgzMVNtTGsvdjlXZmxvMUhsakRRR2J6b0RDbWk3NHllRlNLSHdS?=
 =?utf-8?B?S1Q1NzU5ck5QOTA4THRVVGNWa1RSK2lrNEVnOWVabUQxNU1RZDVJT2VmTmhy?=
 =?utf-8?B?K2VvSFBsVjRRMC8razU3ZVo0aVFZb3FPRHRVL1pweEIvaGNhTmYvT0pwdi9H?=
 =?utf-8?B?WUdpc01yK0Z6VzN1M0RxV2pHZUdpMlRURTd1MEdtS0JJcDRTZ1JMdmFSUlh2?=
 =?utf-8?B?dGNtRlFxczdqalg0QW1lZnZsazhXeFVWdW04WSszdjJEamlweWpxNXU2VzNs?=
 =?utf-8?B?VUZDQVlteTRvdTV0WGZsR3dwY2dwYnZDMXQzMnJERVN1clBaNWdRR2hKQnhF?=
 =?utf-8?B?TUlCZ1JWMlkxUHZFNDEzaGlQeUxZVXRpaCswdUZwd0RFYzRJaHRpWVlLRzVP?=
 =?utf-8?B?Sy9rUUoyTmR0UWpWK1NuMEtVeDBWd1p2Y2xldlZjL3hHcFFmdHQwcElxb2Y5?=
 =?utf-8?B?K0hoa0QxM1JEaDBaRXJybStsRE1XMFJrRC9Gd28xNjZqbDlsSUxSQnBZTFZ4?=
 =?utf-8?B?RjhKY3k5UTRTQkgycmdyVDVCTGJya3NHZHN1YVYxN29lTTdCeVFXS2JRR1Vo?=
 =?utf-8?Q?oJA8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <FC23FE7C4848EB499BA26A820F2EFED0@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c2cf2f32-a774-472f-ef22-08dd090abed7
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2024 02:26:31.2336
 (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: LP+rmddj1kKfgdzj0QQAfsPpGDNDfre3vRc1n5nAZzRwxQYGlZFLODQesxZfhgW7lb04bC7f98TYR6cD1AhUDg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9337

T24gMjAyNC8xMS8xOSAxNTo0NCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDE5LjExLjIwMjQg
MDg6MzEsIENoZW4sIEppcWlhbiB3cm90ZToNCj4+IE9uIDIwMjQvMTEvMTggMTg6MTcsIFJvZ2Vy
IFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4gT24gV2VkLCBOb3YgMTMsIDIwMjQgYXQgMDQ6MDA6MjdQ
TSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+Pj4+ICtzdGF0aWMgdm9pZCBjZl9jaGVjayBy
ZWJhcl9jdHJsX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KPj4+PiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+PiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWwsDQo+Pj4+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpDQo+Pj4+
ICt7DQo+Pj4+ICsgICAgdWludDMyX3QgY3RybCwgaW5kZXg7DQo+Pj4NCj4+PiBpbmRleCBzaG91
bGQgYmV0dGVyIGJlIHVuc2lnbmVkIGludCwgYXMgaXQncyB0aGUgQkFSIGluZGV4IFswLCA1XSwg
YW5kDQo+Pj4gc28gZml0cyBwZXJmZWN0bHkgaW4gYW4gdW5zaWduZWQgaW50Lg0KPj4+DQo+Pj4+
ICsgICAgc3RydWN0IHZwY2lfYmFyICpiYXJzID0gcGRldi0+dnBjaS0+aGVhZGVyLmJhcnM7DQo+
Pj4NCj4+PiBZb3UgY291bGQgcGFzcyBiYXJzIGFzIHRoZSBkYXRhIHBhcmFtZXRlci4NCj4+Pg0K
Pj4+IEFkZGl0aW9uYWxseSB5b3UgbmVlZCB0byBjaGVjayB0aGF0IG1lbW9yeSBkZWNvZGluZyBp
cyBub3QgZW5hYmxlZCBmb3INCj4+PiB0aGUgZGV2aWNlLCBvdGhlcndpc2UgYXR0ZW1wdGluZyB0
byBjaGFuZ2UgdGhlIEJBUiBzaXplIHdpbGwgbGVhZCB0bw0KPj4+IHRoZSBhY3RpdmUgcDJtIG1h
cHBpbmdzIGdldHRpbmcgb3V0IG9mIHN5bmMgdy5yLnQuIHRoZSBuZXcgQkFSIHNpemUuDQo+Pj4N
Cj4+Pj4gKw0KPj4+PiArICAgIGN0cmwgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgcmVn
KTsNCj4+Pj4gKyAgICBpZiAoIGN0cmwgPT0gdmFsICkNCj4+Pj4gKyAgICAgICAgcmV0dXJuOw0K
Pj4+DQo+Pj4gSSB3b3VsZCBzdGlsbCBjYXJyeSBvdXQgdGhlIHdyaXRlIGluIHRoaXMgY2FzZSwg
YXMgdGhhdCdzIHdoYXQgdGhlDQo+Pj4gb3duZXIgb2YgdGhlIGRldmljZSByZXF1ZXN0ZWQuDQo+
Pj4NCj4+Pj4gKw0KPj4+PiArICAgIGN0cmwgJj0gflBDSV9SRUJBUl9DVFJMX0JBUl9TSVpFOw0K
Pj4+PiArICAgIGlmICggY3RybCAhPSAoIHZhbCAmIH5QQ0lfUkVCQVJfQ1RSTF9CQVJfU0laRSAp
ICkNCj4+PiAgICAgICAgICAgICAgICAgICAgICBeIGV4dHJhIHNwYWNlIGhlcmUgYW5kICAgICAg
ICAgXiBoZXJlDQo+Pj4+ICsgICAgICAgIHJldHVybjsNCj4+Pg0KPj4+IFRoZSBmZWF0dXJlIG9u
bHkgYmVpbmcgZXhwb3NlZCB0byBkb20wIEFUTSwgSSB3b3VsZCBzdWdnZXN0IHdlIGFsbG93DQo+
Pj4gaXQgdG8gd3JpdGUgYW55IGJpdHMgaXQgd2FudHMgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXIs
IGFzIHRoYXQgd291bGQNCj4+PiBiZSB3aGF0IHRoZSBPUyB3b3VsZCBkbyB3aGVuIG5vdCBydW5u
aW5nIGFzIGEgZ3Vlc3QuDQo+PiBCdXQgb25seSBQQ0lfUkVCQVJfQ1RSTF9CQVJfU0laRSBiaXRz
IG9mIFJFQkFSX0NUUkwgcmVnaXN0ZXIgYXJlIFJXLCBvdGhlcnMgYXJlIFJPLg0KPj4gSXMgcmVt
b3ZpbmcgdGhlIGNoZWNrIGhlcmUgZmluZT8NCj4gDQo+IEEgbmF0aXZlIGtlcm5lbCB3b3VsZCB3
cml0ZSB0aGUgZnVsbCByZWdpc3RlciAod2l0aCByL28gYml0cyBzaW1wbHkgbm90DQo+IGdldHRp
bmcgdXBkYXRlZCkuIEhlbmNlIGZvciBEb20wIHdlIG91Z2h0IHRvIGRvIHRoZSBzYW1lLCBqdXN0
IGluIGNhc2UNCj4gZS5nLiBzb21lIGZ1dHVyZSBzcGVjIGRlY2xhcmVzIHNvbWUgb3RoZXIgYml0
KHMpIHdyaXRhYmxlLg0KR290IGl0LCB0aGFua3MgZm9yIGV4cGxhaW5pbmcuDQoNCj4gDQo+Pj4+
ICsNCj4+Pj4gKyAgICBpbmRleCA9IGN0cmwgJiBQQ0lfUkVCQVJfQ1RSTF9CQVJfSURYOw0KPj4+
DQo+Pj4gU29tZSBzYW5pdHkgY2hlY2tpbmcgb2YgdGhlIEJBUiBpbmRleCBtaWdodCBiZSBnb29k
LiAgQXQgbGVhc3QgYSBjaGVjaw0KPj4+IHRoYXQgdGhlIEJBUiBpcyBvZiB0eXBlIFZQQ0lfQkFS
X01FTTY0X0xPIG9yIFZQQ0lfQkFSX01FTTMyLg0KPj4gQnV0IHRoZSBpbmZvcm1hdGlvbiBvZiB0
aGUgQkFSIHRoYXQgc3VwcG9ydCByZXNpemluZyBpcyBmcm9tIGhhcmR3YXJlKHdoZW4gaW5pdF9y
ZWJhciksIHRoYXQgc2hvdWxkbid0IGhhdmUgYW55IHByb2JsZW1zIGFuZCBkb2Vzbid0IG5lZWQg
dG8gY2hlY2sgdGhlIEJBUidzIGluZm8uDQo+IA0KPiBSaWdodCwgYnV0IGFsc28gYmV0dGVyIHRv
IGF2b2lkIGNvbmZ1c2luZyBvdXJzZWx2ZXMgb3ZlciBib2d1cyBoYXJkd2FyZS4NCk9LLCB3aWxs
IGFkZCBzb21lIGNoZWNrIGZvciB0aGUgaW5kZXggcmFuZ2UgYW5kIHRoZSBiYXIncyB0eXBlLg0K
DQo+IA0KPj4+PiArICAgIGJhcnNbaW5kZXhdLnNpemUgPSAoMSA8PCAoKHZhbCAmIFBDSV9SRUJB
Ul9DVFJMX0JBUl9TSVpFKSA+Pg0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UENJX1JFQkFSX0NUUkxfQkFSX1NISUZUKSkgKg0KPj4+PiArICAgICAgICAgICAgICAgICAgICAg
ICBQQ0lfUkVCQVJfQ1RSTF9CQVJfVU5JVDsNCj4+Pg0KPj4+IFRoaXMgd291bGQgYmV0dGVyIGJl
IGEgbWFjcm8gaW4gcGNpX3JlZ3MuaCBJIHRoaW5rLCBhbmQgeW91IG5lZWQgdG8NCj4+PiB1c2Ug
MVVMLCBwbHVzIHVzaW5nIE1BU0tfRVhUUigpIHNpbXBsaWZpZXMgaXQ6DQo+Pj4NCj4+PiBQQ0lf
UkVCQVJfQ1RSTF9TSVpFKHYpICgxVUwgPDwgKE1BU0tfRVhUUih2LCBQQ0lfUkVCQVJfQ1RSTF9C
QVJfU0laRSkgKyAyMCkpDQo+PiBPSywgYW5vdGhlciBxdWVzdGlvbjogU2hvdWxkIEkgbmVlZCB0
byBjaGVjayB0aGUgc2l6ZSBpcyBhbGxvd2VkIGJ5IGhhcmR3YXJlKHRoZSBQQ0lfUkVCQVJfQ0FQ
X1NJWkVTIGJpdHMgaW4gUENJX1JFQkFSX0NBUCk/DQo+IA0KPiBQcm9iYWJseSBiZXR0ZXIgdG8g
ZG8gc28sIHllcy4gV2hldGhlciB0byByZWplY3QgYm9ndXMgYXR0ZW1wdHMgb3INCj4gbWVyZWx5
IHdhcm4gYWJvdXQgdGhlbSBJJ20gbGVzcyBjZXJ0YWluOiBJdCdzIChzZWUgYWJvdmUpIERvbTAs
IGFmdGVyDQo+IGFsbC4NCkkgd291bGQgbGlrZSB0byBpZiB0aGUgbmV3IHNpemUgaXMgYWxsb3dl
ZCBieSBoYXJkd2FyZSwgdGhlbiB1cGRhdGUgdGhlIHNpemUsIG90aGVyd2lzZSBkbyBub3RoaW5n
Lg0KDQo+IA0KPiBKYW4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 02:30:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 02:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840904.1256435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDaUL-0005FE-Vo; Wed, 20 Nov 2024 02:30:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840904.1256435; Wed, 20 Nov 2024 02:30: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 1tDaUL-0005F7-Sy; Wed, 20 Nov 2024 02:30:41 +0000
Received: by outflank-mailman (input) for mailman id 840904;
 Wed, 20 Nov 2024 02:30: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=Jnlo=SP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tDaUK-0005F0-10
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 02:30:40 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2413::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c68bcd1-a6e7-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 03:30:37 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CYXPR12MB9337.namprd12.prod.outlook.com (2603:10b6:930:d8::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24; Wed, 20 Nov
 2024 02:30:33 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.023; Wed, 20 Nov 2024
 02: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>
X-Inumbo-ID: 6c68bcd1-a6e7-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjJjIiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZjNjhiY2QxLWE2ZTctMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDY5ODM3LjAxMjA1OSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=m6Y6GO7HzzK96TdXmVy5v/H0j+d0Gvexg3Skx8d4l90gPJWGGeqfDERFdHZwhQjegX1FTuswht7dqOFDuzAUO2xsiogy/KYuNc9Pu/9JZSULYWL95J5+Tborjeoz3XsULiQ8SIlvsy8mA9LRQtOHH4uwB1ukfV8ixzziblUQ1ILEXllck+sR7x6GpuaZTE0sDwxvtkJMbDOysOUiHU1zyyO4XmfoldUkdj8ZmTRu3VqdNoyKAL+Eu3/pdVUyPPfLYhrNwFNdhRlwmDiCwK6djk/FJ5Fd5oUCwviI8etI4mm/bmdVazJwEcMkjTHrWHVH9Iu2y4welMCW0mDbUo09Uw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4jPBUrTd06Wur0MXGVdCn8qfBtXDMUIBvpmPwnvCJAo=;
 b=lWo3+7E9cyC7/lwkJD3RVx95GZ3sLtMSBeilMptHpTWnx4t/MZ1BURDbMYosu2HkpAG1PWxhqnEAUq88fnzsoxhX7INtFs+SwGQnZu3AhjQsQgW/k/+V7HjrQrLONMNzek4aOCYXwyczW6ma0L4l4xc3uXJ7Mfvrd/lBmhEhocZ25jkXYP8QupQQtniCDRsWZsZWyfFzCOPVvBOIC2pf8sm1FqutemSUx0YYLX1N5iVSuAv96aCuj8DWvWhTTxrfJ58wvDwO/1JmcTLzmiRM12FD5gtuEDGxmFyoF79wbiaX507fuGZIHYyPM6jXzmYFPqjyX27q5OnxWVDfsp7CMA==
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=4jPBUrTd06Wur0MXGVdCn8qfBtXDMUIBvpmPwnvCJAo=;
 b=CK9sZwNtAkhTJVUEX5nWtDRjGnQcBdPKwOcpVDriQeCiTX8hxlKjlZR2jLUUfLpPdRYJw422s0WjqX+Mx3D9PHYkmiFcJLxi2xoKdPi+/q5WPiqwwLf6FzCdRWYjQ5uH7E5OwaJrL+FeLmalqJNIsl8BoWgz0hT3lFFRBYO5V24=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index: AQHbNaIlMxf8mJcywkeNRFmHEai1qbK+mCKAgAFqAAA=
Date: Wed, 20 Nov 2024 02:30:33 +0000
Message-ID:
 <BL1PR12MB58495B6D78F5D63180552BACE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzyJu9mrwJhDJClE@macbook>
In-Reply-To: <ZzyJu9mrwJhDJClE@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CYXPR12MB9337:EE_
x-ms-office365-filtering-correlation-id: 7bb66072-d3c0-4511-4486-08dd090b4f27
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?L2dXL3pqQksxdHZxTmwzZjR1UG9sMWNVa1ZWdGl4UWpISXRCeUFUT2Y3WUxs?=
 =?utf-8?B?UkRTR0pnNnJaQWovN01xdmFOd3lpYXdhR3BYYVhtaVQ2RXBxRERuL3VDRFdy?=
 =?utf-8?B?ZUUycUdrNEFZWkVKdHNxUVJQREZFenBOcXpvd3FyRVZwUHBLSXhxTzlQS05i?=
 =?utf-8?B?bE5wZ1F6aGg1QnlFbHEwSVdYTHowTk80L2FMVk1VL0lhbzQ2T29mRzMxVjJq?=
 =?utf-8?B?WGtKWXZaOVJBRHgzVmc2NkI1NGVSQTM3d29MdmRudnJzTHFFOHJYcWsrQUJs?=
 =?utf-8?B?eldtQjhnYWNxRkQ0Vy9LRjhiMEp5aSs2V1RyOTJ0MUx4NDd2QndERG9FclhB?=
 =?utf-8?B?amwvM21nOExhNUZVZnIyRVI4bHFQNFZiWnVIUmJwclRXMDVVZEtLcFNYcjM4?=
 =?utf-8?B?LzRxWnhHOUJXUHU5SVJhY3BoZ1R4ek4rUXRydXd3enY0ZW42dktZS0FZYitX?=
 =?utf-8?B?SElETnpWTXBYdVh3RExac09EMVRXTDVMV2wwbnFlN0RhU1duVWlBUGY5U0V4?=
 =?utf-8?B?Y0FLUUs1clFZNDRYVmN0RU5WZGw1dy8wTkFVMElTYmRWdU1VYW4xdzBtbkRI?=
 =?utf-8?B?MndXbjZKV2kxWkFYRUJVeHN6b3l6c1EyZlhBL2d6U2pkbmN3dXprRnppeGZP?=
 =?utf-8?B?L2lRUTRQcFZXeUFMQ2FSV1czOHBjWnRXYVd4eDE3SGJ3VFRJbmROcjF2STh6?=
 =?utf-8?B?cmJSaFlhUXFERHNQK2xUWlZzR3dnSm85Z3M4NkFpOHhlQTBjOTlNQncvR01r?=
 =?utf-8?B?U0Q5MDRzcXgvUDc0VGM5Sk5YYmVqbzlvUWZjc0FtUlpKVllvbW5TSlplQ1d3?=
 =?utf-8?B?VUNvVVp4TWhmeEl3Z1BGSlpteC93ZEg0QmhnN1FZalhRbVRHNnpZRFpLT3V2?=
 =?utf-8?B?RVBKY3NiUmtJWUhkcXBmUGV6c1FOelRSSDZnZU92Y0NoMTZ6bGt2VENqclZX?=
 =?utf-8?B?V3dYTi9KVVVOT2pXNE9tVU1lWncyQ1BkcFNiYngrU3d0Z081eUhwc2VsVi9v?=
 =?utf-8?B?Sm56ZDFMbXYrQjlXNmx2TzlvNVpTaFNuKzU5NUkyUGhwU0NJVTkwcEZxRGRH?=
 =?utf-8?B?ZG5ZaU11bmpXakhDbk1MVHh3NDliTnZKdmFtRmZQOXdaTWx1WCtkUnVlQzFY?=
 =?utf-8?B?TjEyaU43cFlUdENkQnhnUWtEUXFnUEhHbnlvaSt6azJtYVlIZlRsYkp4dkhn?=
 =?utf-8?B?WmhLT2JraGV2dUVCMGZrVTBJTG9qN0lLa3JuOWx1RE5PYnppdk56QXZJeFdu?=
 =?utf-8?B?RUxVRlM3L0M4MHpSWEl1UUVOQjAzVDMrQk50aFc5YkpxVC9sQUozbEFiWGZW?=
 =?utf-8?B?RTV0SHVIclF6dkJDSWc3dHMyTWpUS0c2dDZmT3V4T1pGdUFxdDhqcTQyKzBq?=
 =?utf-8?B?RUJrOWEweDhRMjJmeC9BNlRZc3ppeFBBenRDSFM4VWlsbU1iM3dEd1JORThQ?=
 =?utf-8?B?RlZmbVZxQnczUVhCOG15Sm1adEl6dnFDWTVIQW1wZGEzOGZjYUt1aENKMGdt?=
 =?utf-8?B?ZGQ4UTNsbFZMVVh5UHU2QUFReUQwK0NMSUYwR21jTHMxTmRKVGJlVHRBUk5F?=
 =?utf-8?B?RzkvS2NuTEl2bUI3aEthZmNXRzhkUmowUXhVZk9JTjVnRHIzc0xiMUpVaFJU?=
 =?utf-8?B?amUxQUxNanRKQmdJeTltVXhOR0p2RU5rUC92aWNEMXJkcUN6dDk5ZHZHTEVS?=
 =?utf-8?B?TVRQTm1MbVM2aFhDTWpqVUxwRUVDNGxxOGlKMVljYVdGNDVGeDYzTk1TbW5J?=
 =?utf-8?B?UllkbFVZQmI5WElIMkNDWWgwZzFOb1NwNEUrSzVCZjZ1MmFjYWRuK3VmSXU5?=
 =?utf-8?Q?dXRe6k5qogtVYjoNGb/EjCDl4TuwkO/rxDFgA=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?U3BqQlRDUDdUVFUweG41L1R4enBtMmxxbkZ5WGJUMUxLa2dQdUR6K2VKd1Zq?=
 =?utf-8?B?T3VEOVBYa1lIVlhQc0tEaW9Sb0ZlMmFIbmptNjNZOENZVERvVWg1ZHlVNXpi?=
 =?utf-8?B?a2N6NVp2Qmhja1NLT3ZLVlB5S04reHpuN0V2dzlkSlVBUVdRZCtNT2VyVjRv?=
 =?utf-8?B?Ny9PbVlDZ0JSOXJwak0rTSt5dG8vRmkrdXIvUUI5anFHWGxhQVhyVlNGS1Bo?=
 =?utf-8?B?ME9nT0VvOUpta3JYR1dRdnpyNjVSNlNRbDd0OFAvTUJ1dmNrT09jdC9yNldo?=
 =?utf-8?B?bERuSzRjQmVnVks5MVVSZE55dEpvYmZjNEtXZktUTU5Kb0xscmpabjA0SHdx?=
 =?utf-8?B?dVEwZ0tmdU9ld1F6b214SVRKOUl4djJMWkViRUh3bVN5Q00ySEVFTGl2dTBn?=
 =?utf-8?B?V0JjL0hRRFlNaDZNVWp5eGNqVmlzZmcxRXVHNTVMc1RyUE9XK2I4TEpFRmt1?=
 =?utf-8?B?dWw5UUdyZjQ5UUw5Vk9CYUdMcE9NN1dVVFowL1dXcGc4cWJGQ21NTDBoTkhq?=
 =?utf-8?B?V1NqYWx6NDF3ckx0ZUNia2x5cGxxZ3dJS2FxcU5Jb0NCYXZJb3RZR0hmdURy?=
 =?utf-8?B?Mzg4a2I2NzVMUmsxQm1HbXVYZWE3ZE9ieWlqV2NiV01FcDBjbjYrWFU4MFNT?=
 =?utf-8?B?cG9iVjk2bjFqcWd5OERocFhFa2Rwa0kzSDB0MHpETXAzMnMyYThRbHUvNU9S?=
 =?utf-8?B?QzZMREdQalIwaXAvZnNsRjlDOFZCM0EybGNGYys5N2kxNHQrdTZramFHL3Fp?=
 =?utf-8?B?NTVEWTVka2VWZlR6N2FpR1VMZHlXL3NrajMwUFlsM0VmWEZ0eWR4b1QzVENE?=
 =?utf-8?B?SlpDQjQwSXlBOVJjbEozdmhVNFhCU2pMNXFLWko4eVVqOVlZbUw1aGxWSmpi?=
 =?utf-8?B?VzZOWFpWa1FETjNGWmhrT3h0OUJ0MysyOFhOVnFUTnJhdDdOSUFhby90N2hK?=
 =?utf-8?B?UmNZQmJUQSsvWjZSSnlFWnVrWXdZbCtNODZld2lzcTNob296TC8zdXA4QXFU?=
 =?utf-8?B?bXhvQWZtYmY5aUlRR0JlNHhJbFhyd1F5REJKalBsZGNzeGJKenQwTW8ydlpq?=
 =?utf-8?B?S0N5M25sWENVc1RXZVNQY2NlZ0RLckpoZjhjQjBmU3F2NUpWWkZ0UTBuenB5?=
 =?utf-8?B?dTR3b0VlVStEOWNPUTd6Qk5hRkRHOWRIUENVTDlZbW5kUlR3Q2I2TkVhQXcv?=
 =?utf-8?B?S3JTMThTMTlma0RyTzAwaWR2enIrMHRURzR1TGgvMTlrNW5GS1dMNEd6ZjJp?=
 =?utf-8?B?T3daQS9tVHBOeEpHQjZNOFJsOHpLdk9BQk9OblVTMGk3bW84eFdjcGphVTZD?=
 =?utf-8?B?c3Q1VHBiajRIblY5SzhBWHZaSFJuUWZDZU9aYzlsVDBEWTBiV09iSnY3WC9R?=
 =?utf-8?B?NGp1YkZTODBKYUxqYU1CVlpNRWY3dWtaREszajk5Y1JmM1RqOW8wZHNXK1FX?=
 =?utf-8?B?NnQyTTcybTRuS2FBWDlIMExqTXdwcnZTRWFON1lMZ2RPWDFFL0RBTzBVM3Nq?=
 =?utf-8?B?b1lwdVJ2YSs5aDhvTGc5SDBGU2Zmd01PNmRQSjloWkxZZVM1WGIxQmpWckVN?=
 =?utf-8?B?dlJqUFBUYVBCK01qY1NWbDFHS3JJQ2VTWXJuZXN2MkFoZ0hVVHF6TkVlZFdN?=
 =?utf-8?B?K3ZFbUdKRHpkZmhPRzlNZ2d0RGp1cTlDby9uTzNucTd0UUUvQ2RhUFE0bWVj?=
 =?utf-8?B?Um9DeUU0Ukc1SktGZzM1VkovSE05c2ZWUjJBQ0NRdTRqbkc5aEs3NDdTY0dI?=
 =?utf-8?B?dFpSZGRBZWQxVnkzN2ZBcGIxU3JrRUU4NTR6LzFsYXZmMmxUM2RZSE9MaFVX?=
 =?utf-8?B?d1lRT2xrN1ZtNG5hLzB4M0F3MExycTBsSUNYWWtSdTdCdzJMd0pQSHd2Sk1h?=
 =?utf-8?B?TEptYkt3MWEwaExTMjczVW1XNUFXSlJFYWZuQlluUVF2ang4VVl1OWdOV2pT?=
 =?utf-8?B?MTgraUdtMlFUZmtFL3hWQVRMM081WVJoVGtmZkl0ZjZQUEhSaitybjRwTzMy?=
 =?utf-8?B?YTVma2w4Qk5HbmtZZDNnaXVCdkNWRHRIV1gyOVZqREJlQm5xcWYrRG5OK1Nt?=
 =?utf-8?B?WSt1cFVxVTB4TFlHbUdNWm1wbXk4RHM1SnFlNS9wT09rYXprcDlCd3FFK0Fk?=
 =?utf-8?Q?bF/k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7FCE89703588224690079B2246B32DAA@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7bb66072-d3c0-4511-4486-08dd090b4f27
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2024 02:30:33.3723
 (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: amMHdqVMXs6Tj0emqLOCrI/gbR9U2yeFs1py2xa73IoGONIHsOu8yNc18DkPsppSzmWTVAq1NgmDa2F7NjAteg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9337

T24gMjAyNC8xMS8xOSAyMDo1MSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBO
b3YgMTMsIDIwMjQgYXQgMDQ6MDA6MjdQTSArMDgwMCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiAr
c3RhdGljIHZvaWQgY2ZfY2hlY2sgcmViYXJfY3RybF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2Rl
diAqcGRldiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCByZWcsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50MzJfdCB2YWwsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
b2lkICpkYXRhKQ0KPj4gK3sNCj4+ICsgICAgdWludDMyX3QgY3RybCwgaW5kZXg7DQo+PiArICAg
IHN0cnVjdCB2cGNpX2JhciAqYmFycyA9IHBkZXYtPnZwY2ktPmhlYWRlci5iYXJzOw0KPj4gKw0K
Pj4gKyAgICBjdHJsID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIHJlZyk7DQo+PiArICAg
IGlmICggY3RybCA9PSB2YWwgKQ0KPj4gKyAgICAgICAgcmV0dXJuOw0KPj4gKw0KPj4gKyAgICBj
dHJsICY9IH5QQ0lfUkVCQVJfQ1RSTF9CQVJfU0laRTsNCj4+ICsgICAgaWYgKCBjdHJsICE9ICgg
dmFsICYgflBDSV9SRUJBUl9DVFJMX0JBUl9TSVpFICkgKQ0KPj4gKyAgICAgICAgcmV0dXJuOw0K
Pj4gKw0KPj4gKyAgICBpbmRleCA9IGN0cmwgJiBQQ0lfUkVCQVJfQ1RSTF9CQVJfSURYOw0KPj4g
KyAgICBiYXJzW2luZGV4XS5zaXplID0gKDEgPDwgKCh2YWwgJiBQQ0lfUkVCQVJfQ1RSTF9CQVJf
U0laRSkgPj4NCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfUkVCQVJfQ1RS
TF9CQVJfU0hJRlQpKSAqDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBQQ0lfUkVCQVJfQ1RS
TF9CQVJfVU5JVDsNCj4gDQo+IE9uZSBmdXJ0aGVyIGNvbW1lbnQ6IHlvdSBhbHNvIG5lZWQgdG8g
cmVzZXQgYWRkciBhbmQgZ3Vlc3RfYWRkciBoZXJlDQo+IChwb3NzaWJseSBieSByZWFkaW5nIHRo
ZW0gZnJvbSB0aGUgQkFSIHJlZ2lzdGVyKSwgYXMgdGhlIHNwZWNpZmljYXRpb24NCj4gc3RhdGVz
IHRoYXQ6DQpIb3cgYWJvdXQganVzdCBzZXQgdGhlbSB0byAwLCBzaW5jZSB0aGUgYWRkciB3aWxs
IGJlIHJlLWFzc2lnbmVkIGJ5IHN5c3RlbSBhbmQgdGhlIGFkZHIgb2YgQkFSIHJlZ2lzdGVyIGlz
IGFsc28gb3V0IG9mIGRhdGUuDQoNCj4gDQo+ICJBZnRlciB3cml0aW5nIHRoZSBCQVIgU2l6ZSBm
aWVsZCwgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb3JyZXNwb25kaW5nDQo+IEJBUiBhcmUgdW5kZWZp
bmVkIg0KPiANCj4gSGVuY2UgdGhlIGNhY2hlZCBhZGRyIGFuZCBndWVzdF9hZGRyIGFyZSBzdGFs
ZSBhZnRlciBhIHdyaXRlIHRvIHRoZQ0KPiBjb250cm9sIHJlZ2lzdGVyLg0KPiANCj4gVGhhbmtz
LCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 03:02:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 03:02:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840917.1256445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDayq-0000x8-Dx; Wed, 20 Nov 2024 03:02:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840917.1256445; Wed, 20 Nov 2024 03: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 1tDayq-0000x1-B3; Wed, 20 Nov 2024 03:02:12 +0000
Received: by outflank-mailman (input) for mailman id 840917;
 Wed, 20 Nov 2024 03: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=Jnlo=SP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tDayo-0000wv-VM
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 03:02:11 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20614.outbound.protection.outlook.com
 [2a01:111:f403:2418::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0270811-a6eb-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 04:02:02 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH0PR12MB8774.namprd12.prod.outlook.com (2603:10b6:510:28e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Wed, 20 Nov
 2024 03:01:58 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.023; Wed, 20 Nov 2024
 03:01: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: d0270811-a6eb-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjE0IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQwMjcwODExLWE2ZWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDcxNzIyLjU4MjQ4OSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rIQHqwcnNftBDdgWxBUXDl0wpUHeAIoo7rzMsK97YzkbXoTxAiUxfp81SEmscs3rAxrBF9QP4uy+Wj0QiJB/AM5Dve34yAhbSkgtewAY+O3l8xqpayfJ7V1cIhGpSfoWfH3hJ0m+/yJbaNljbJ/xqqKMrQHUzx9J+Yp0zOeaKEC3YUoiVPosvFY8hSup7YIFsygRLrPaeVBQc9GMuy04/KK0LKridh1Te+QBB+YnU0HYKDugk6X75BmkgjIi6e3nan0ssBtH6VnAKFYZAtSwtSOcNpPIO3j7xzld6dTgqHHfQtXONF141HO1nJjrXOOK7t33qfDu2d1stpLGY9PBYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=woPpgveSaXtwXTOYxrh55XJcQMCJ/psui+1+hKAoaTE=;
 b=EWAf8d2568L143oauxcQPPPWBJULXdaiz91XHLXYk1ScLIVhbUmgDDYJAlWKbm+9xm33Mpe6Jdo9ZNGyT1bjiQnGtsVfUZWloIxZJNVQZ31PMkPCClralH1JTf1lLlwLmkVNlQrTC7/hVeSQV5hFEb8EnYRyUZuIH5ARCvg6zNiyCNDAL1jz5EYCVE8owQMBDhY34GYAgtzaNiRT57g6fFp1J9elB9NMCRhnGJbJboKex0gylDkfTUyqIZU09IQw037duB8hExMgBLC0l68UhnHpGws+XtxbOhfTn8n10xZ6OL3l2T/lAvvZDzXR6SICzhJ7n9HcITpytMrREPAhOQ==
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=woPpgveSaXtwXTOYxrh55XJcQMCJ/psui+1+hKAoaTE=;
 b=yVxoQbFaI3S5Ono8h+d4hU5V3wQGySpc3l0n097Kz5afrIJLUVUsWFfe09M1Z6kn5qi7EXcTQcuq9QItRVzXtPF1KdnD5OQQ2TdvByIWFOigI5QixAx3KcRUTM0OxZQXgog4Q64L2EBOG/KC83gvkwxzmmVAFlNwuvmsoXKAtdg=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAIABfwWAgAFxTQA=
Date: Wed, 20 Nov 2024 03:01:57 +0000
Message-ID:
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzRxqO3_GEgs7W1I@macbook>
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
In-Reply-To: <ZzyIk0KipX8LPZNv@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|PH0PR12MB8774:EE_
x-ms-office365-filtering-correlation-id: 1cff5bbc-8f2d-47e3-ee93-08dd090fb284
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?YnBBek5pYlBzSkFPQXlvVkxvc2ljaW9CbGQ1QmRSUjJBZ2VkMmswNmhMOUVT?=
 =?utf-8?B?WTJwZmF3ZS8yWldjVU9QbkFrT2FDWnlyb3NkUzB5RWhlSzBVMUp3WkRSdzdx?=
 =?utf-8?B?ZTFoUmpYSE9yek16NERyRlBDcHRQdm5WM2doUmJRdUYvaVNJbC96a2VPOFlB?=
 =?utf-8?B?U2g2Uk14ZFhseFBCOFlQcEtFZU14bVVzaUovYjhPYVJRZ1AvbXkvTzByazgy?=
 =?utf-8?B?SzNoU1Y2VFZxRk5nNVhxU05wb1ZHUkZpT0U0MVh3VnovREhZZi9NZnpQbWxj?=
 =?utf-8?B?ZFVmK1BXM0ZHYnpuRjdvL2hGVTNycExNYzloOUUzNysxYkxmNG9xUmxKWDI2?=
 =?utf-8?B?NlBUTi80dGkzN2JmM1NPcU5BKzkwbExIZi9GOUFoSHY2YXBqWnJPc2ZBUTh0?=
 =?utf-8?B?UEdtTTdzMDloQUV2c1hET3FZelVkOVo4eXA2YThaTkVNb1Fsd2NNTEI5Skwx?=
 =?utf-8?B?UmtnUzhsUU9IelFuWXZ4eDdram9OYjNOcTdtZ2YrczJLSStiRU1qd01RbUc3?=
 =?utf-8?B?WEw1TlhyQ1RuRlE1QTQwd1FCeUhobTlzYmxtYTN2cXJRM0JlNUJNSWo4dmc2?=
 =?utf-8?B?T2RxT25HaDM5bUFqSmJIMnF6ZU42WEcyR2YwL2FoTDA1c2FBSlRkZEd0dE83?=
 =?utf-8?B?RUdOK3dRbWNsNDRNb3l1RVhpRjVWZ0FRdjByL2xaTzRvUlM2RHFxdFpvUi9y?=
 =?utf-8?B?WFNRT2VPR3I1dVJJV2Rpam5TVTcwQ3loOUtJWm5rOFBFRjhUeTBtUWpUUjFD?=
 =?utf-8?B?emR5bEJFQlkvelJvY01xVzRvbCs0aXlreUMwYndaWnlJb2dwR2dHckRlSGZW?=
 =?utf-8?B?ZVBvMm50cUlUd3VYVlExSWg5cGluUjg1MnNUOFdvUFJQMHA5b21aUTFWclBq?=
 =?utf-8?B?Qkh0aWNaOTVhK3FBNExLWnVxanpUOWdpREFDbWZlNzdEUXpnMzNUcTVxOU84?=
 =?utf-8?B?bjEvanc3OWJwb3o3cUZmcXVoNnVsLzZSd0Z4bEU5MFMweGlSVjloK0dtMFBq?=
 =?utf-8?B?NHdPcDJnWDNrcmpWN2lYREpvK3IrMWpSUURVdUNQM0M2SmZKSXBJSm1rVzF3?=
 =?utf-8?B?T2pYV1ZmdE9vajdiUWVzU1NDQ1lreXAwUEhtTjh2N2FoS0Ntak1YRjZuczBL?=
 =?utf-8?B?ekVOVUY1bXQrdWFJUWo2a2UwSzdXc1B6c3lzTUw4bFhiNW1yaXpGSG9xT2tq?=
 =?utf-8?B?NG14RmdBdVZSVTZIWGE3RDhSTktBZlI4NU1lNDZtZnFFYXdTSU1VM1RNL3FR?=
 =?utf-8?B?d3NHQnVkUzVzNDlFMjh0UXoraXJzcWg0Vm4vdmJYUmttdGVLcXZnSWxuWjNa?=
 =?utf-8?B?K0tLb3g3cmxOd0s5OXlOeUZacUE1d3pkajhCMzVRcGVaaCtMUVdWZlI1S1Y3?=
 =?utf-8?B?Z3ptdmFaeVlpcDF2U1VCMENLaHk3N0M2UUkxcXlRbnVUNnBYWWg5UFdHZzJ1?=
 =?utf-8?B?d0RUNkN0Mld1RDFOdzZKVVlOd3FXZ1hHSUxmR1FmZTVvYjIrNTBLSTZ4bm5D?=
 =?utf-8?B?UGZVQUNvZG9QaWxJWnFYdjhYV21OVFZBM3J3SW5xbkJ1Z2ZiS3RhRW5Gc1VH?=
 =?utf-8?B?emtnT3ViaFVoQjlWVmI1QkFRNEIrWHY3KzFCWEJiTDhPYzJmNk5IRHBZYkpM?=
 =?utf-8?B?SzZ4anRKbnhiWUx4SGNCWFh1Sjdmcnl4WXhHMWJzYjBIZk9EMThieVZVTWVG?=
 =?utf-8?B?Qy8zQzNoUU9JQlpBam9BYmdNTHV3K0F6dzRyMVZKbDgyWkhqczhueUVub0Y0?=
 =?utf-8?B?RnlpQVBnUkgvZXFUWHoyNWxMWVR6SEw3bG1vUTlGd0swMTNCeDBicWZYbWxl?=
 =?utf-8?B?eTlDN2t3WFFzcjRCZWx2RzhralljNGx1STdyeVIvUmtDUWdZUnM5eTRUendR?=
 =?utf-8?Q?VCvvx2NR6IN9P?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?a05WNEh4b1VnQ1NTOFBWUnZKQm5NeW1vd2NQL2xMcmhRYWxYdmFrMTZDSmVF?=
 =?utf-8?B?eUY3clErVTM4T2UxMzFDNXVYc3dsRzAvb2pRQ0hOdkRlNEQ5Y2dxclhDRnpU?=
 =?utf-8?B?ZERVenZ2WjF4ZE9ybzRpVEZXZlh1V2NabVlWajByWHNiMklYWFVZa2JVUVA2?=
 =?utf-8?B?UEpEUVU2OUlDS0N4UURlaW91UU5SUU04cUIzVVJsWUxTcE8yQWk5UG9GZ2dO?=
 =?utf-8?B?QmdsVE9FVlI4RU9TeFF5TnVmU2h1blhLWERNb011WktpOWt3Vy9ldWdzSll2?=
 =?utf-8?B?MmNEM3BNazNrRDEwSlhXWTYrZE51dUZISDZvMVlFUkNyN2V2R290K2Z6bGxX?=
 =?utf-8?B?T1l0VEpzU3F5VS9rVHdmZmZ0NjJBR3FtWHlONklRK3hHWCs0QVBCOVVKS0pP?=
 =?utf-8?B?bHY5Nm4xR01KZDVRN1ZtOE1SKzlBakd4NXEzU0dUcDkrZmVXRjYwR0N3MkVX?=
 =?utf-8?B?OEZOUHJIanNYa20vYVhrRVN2aEV2cG9qRlFHb2ZMZXpFWGpNcW84RDIvTTF6?=
 =?utf-8?B?dnAwaEhxTEZjc3c4OFhUU2QvcXRkOFJuby9NNWw3LzFEcTcxRzROY09Ybmt1?=
 =?utf-8?B?QUZEU1E3NlBzNS9ET0NYb2lUQUY4UDZERkhUQ3grVEt1eDg0SEdWMVFERVpN?=
 =?utf-8?B?Mko5aTZvOXJWV055K0gzUjcrRnZIWk51b0NVWHd5ckdVR1owcDJ0RHlwZWNT?=
 =?utf-8?B?bGIvZWw3ejVCMXFmTlVNVGVHV1I0UkswazdVa3JQdlJGbTdVdFgrb0RBTUZ1?=
 =?utf-8?B?QkFZMUJOWFJNWUh1bFU0VGRXbnVPMCtLaUJCUE1kcVN5cVFJYmMyTzZ1ZUI0?=
 =?utf-8?B?OHJDT3RKTDZxUzViZmtSSWIxeHREbWp0cENNWllGQkp4RE9hK1pTYTdEamp4?=
 =?utf-8?B?SEdTeWllV3plSzdoUDlIa1k4Mm9LeUN3aXFZSFYrY00xQzg3OHlKVHdLN0tj?=
 =?utf-8?B?VDd4Z3FoOXA4bEVLRUFqZGZDZjNjWHUxeWtBNXFGbDMvSDBxZVc1Szd2c0Fv?=
 =?utf-8?B?cVo4TGgzWlZNMkllTllwVDNPQmJrQVYrTkdjNVBBTGZDb0xaeVN1b1hnUzBX?=
 =?utf-8?B?VmJaZ0IrOFVxZ2ZWNkhUTWZxby9kanNoU3F0anNoT2xkSmV3a29ZbmVWb0xa?=
 =?utf-8?B?L0pGVEd5dW9pVnRnbjJjbkNRaWs5MUhJRnZsV3puY2VUblZaWThFeklXdXh2?=
 =?utf-8?B?ZW5GTWZ4enJEbUdmalpHNnhEVzNtZHhrNFk3Q3ZsOUdjNGVMRSs1a2xrSG04?=
 =?utf-8?B?YW9YSWpGMGg1bHdIQ0ZIS0NIWEpPRm8rckNkY0JrVzhFTzh2T2srTlZoYllC?=
 =?utf-8?B?U0NJa3BwNlBsa3BMcUV5dWFIU2JtS2xpMnVBaUxvYVowNG5mclBUR1VVTmFC?=
 =?utf-8?B?K2FvZlZoOUJ3bjg3SlZIdSt6Y2hQM1VJNnhNQ0xSMytYM0QxNkdPNHFiZllU?=
 =?utf-8?B?TndkZGpvamZOYmtLdGNNMjFkVnZ5dFRvWGU5STJVYUFnLzBCSTU0ckhYbGt3?=
 =?utf-8?B?d0lhTy9nUzFqYXhjM3BFeWZFZE5YTDJLMzg3Q3lRdFd0aVpuZ0Rmei9MN2VW?=
 =?utf-8?B?MVdCUDdmY3JFQlRuYnc0Ti81VTNsaURKUXJMVHJpUFAwREg1ek5kMWRRSk5M?=
 =?utf-8?B?amRTcmRoODRVa3hNQ01Jc3BublFKcjdHZnhvTzhFSFlQNjFKSjFuR1o1S1Bi?=
 =?utf-8?B?c1lwTlV4YWFGUmtBVDJLdHF5eTY2dG9MbXoyU0FOdGVYV0M0VjJaUzBzQUNX?=
 =?utf-8?B?L2F0TUl3djFZQXN5NWV2R0NsS2Z6WmwxN0c0R3FPK1BTRGZZS3ZSRk5HT1dJ?=
 =?utf-8?B?RVRFWkExZ3Y0R2kvTUExcWlYY1RoZUJmckNUbGR6WWdTcTBRNlpwTFRtWGM4?=
 =?utf-8?B?aGc5NEhpYVBOYThkYVRraU5odU1lbU5wNHorWnYxb081TXF5WTk2U1N3RlZr?=
 =?utf-8?B?a0lRNzZRekxCZ2xRNWNGRlc5cWsvS0ZrajhnUHhick1HZmZuOWxKSkhDWFo3?=
 =?utf-8?B?ZW9tOWtlOGZBbjhicVFVNGk2Z0ZYeXEwK1hhRUl5RDNpMmVTZ094aG1pYnVp?=
 =?utf-8?B?aUl0MitGTlBSYXFTRWg0OHNDaHh4ckhBVWlzZlVKdHhFUVBoWGRCdndnYkNV?=
 =?utf-8?Q?OkIk=3D?=
Content-Type: multipart/mixed;
	boundary="_002_BL1PR12MB5849FC514034CDFC2F68BA6FE7212BL1PR12MB5849namp_"
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1cff5bbc-8f2d-47e3-ee93-08dd090fb284
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2024 03:01:58.0114
 (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: A0RfZYiwzw6X/x7mDg0oPsZbBQ4HygkartGD8Z6k4agTPxzXHFeawBT3dQeGh+qRay8eghJq1Th0JZX6UEB7ug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8774

--_002_BL1PR12MB5849FC514034CDFC2F68BA6FE7212BL1PR12MB5849namp_
Content-Type: text/plain; charset="utf-8"
Content-ID: <B0796E37FE9A1B4D92F9526315287615@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64

T24gMjAyNC8xMS8xOSAyMDo0NiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gTW9uLCBO
b3YgMTgsIDIwMjQgYXQgMDY6MDY6MDNBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyNC8xMS8xNSAxOTo0MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBGcmks
IE5vdiAxNSwgMjAyNCBhdCAwMzowNDoyMkFNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+IE9uIDIwMjQvMTEvMTUgMDE6MzYsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBP
biBUaHUsIE5vdiAxNCwgMjAyNCBhdCAwNDo1MjoxOFBNICswMTAwLCBSb2dlciBQYXUgTW9ubsOp
IHdyb3RlOg0KPj4+Pj4+IE9uIFRodSwgTm92IDE0LCAyMDI0IGF0IDA2OjExOjQ2QU0gKzAwMDAs
IENoZW4sIEppcWlhbiB3cm90ZToNCj4+Pj4+Pj4gT24gMjAyNC8xMS8xMyAxODozMCwgUm9nZXIg
UGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+Pj4+IE9uIFdlZCwgTm92IDEzLCAyMDI0IGF0IDEwOjAw
OjMzQU0gKzAwMDAsIENoZW4sIEppcWlhbiB3cm90ZToNCj4+Pj4+Pj4+PiBPbiAyMDI0LzExLzEz
IDE3OjMwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+Pj4+PiBPbiBXZWQsIE5vdiAx
MywgMjAyNCBhdCAwNDowMDoyN1BNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+Pj4+Pj4+
Pj4+IFNvbWUgZGV2aWNlcywgbGlrZSBkaXNjcmV0ZSBHUFUgb2YgYW1kLCBzdXBwb3J0IHJlc2l6
YWJsZSBiYXIgY2FwYWJpbGl0eSwNCj4+Pj4+Pj4+Pj4+IGJ1dCB2cGNpIG9mIFhlbiBkb2Vzbid0
IHN1cHBvcnQgdGhpcyBmZWF0dXJlLCBzbyB0aGV5IGZhaWwgdG8gcmVzaXplIGJhcnMNCj4+Pj4+
Pj4+Pj4+IGFuZCB0aGVuIGNhdXNlIHByb2JpbmcgZmFpbHVyZS4NCj4+Pj4+Pj4+Pj4+DQo+Pj4+
Pj4+Pj4+PiBBY2NvcmRpbmcgdG8gUENJZSBzcGVjLCBlYWNoIGJhciB0aGF0IHN1cHBvcnQgcmVz
aXppbmcgaGFzIHR3byByZWdpc3RlcnMsDQo+Pj4+Pj4+Pj4+PiBQQ0lfUkVCQVJfQ0FQIGFuZCBQ
Q0lfUkVCQVJfQ1RSTCwgc28gYWRkIHRoZXNlIHR3byByZWdpc3RlcnMgYW5kIHRoZWlyDQo+Pj4+
Pj4+Pj4+PiBjb3JyZXNwb25kaW5nIGhhbmRsZXIgaW50byB2cGNpLg0KPj4+Pj4+Pj4+Pj4NCj4+
Pj4+Pj4+Pj4+IFBDSV9SRUJBUl9DQVAgaXMgUk8sIG9ubHkgcHJvdmlkZSByZWFkaW5nLg0KPj4+
Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+IFBDSV9SRUJBUl9DVFJMIG9ubHkgaGFzIGJhciBzaXplIGlz
IFJXLCBzbyBhZGQgd3JpdGUgZnVuY3Rpb24gdG8gc3VwcG9ydA0KPj4+Pj4+Pj4+Pj4gc2V0dGlu
ZyB0aGUgbmV3IHNpemUuDQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IEkgdGhpbmsgdGhlIGxvZ2lj
IHRvIGhhbmRsZSByZXNpemFibGUgQkFSIGNvdWxkIGJlIG11Y2ggc2ltcGxlci4gIFNvbWUNCj4+
Pj4+Pj4+Pj4gdGltZSBhZ28gSSd2ZSBtYWRlIGEgcGF0Y2ggdG8gYWRkIHN1cHBvcnQgZm9yIGl0
LCBidXQgZHVlIHRvIGxhY2sgb2YNCj4+Pj4+Pj4+Pj4gaGFyZHdhcmUgb24gbXkgc2lkZSB0byB0
ZXN0IGl0IEkndmUgbmV2ZXIgc3VibWl0dGVkIGl0Lg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBN
eSBhcHByb2FjaCB3b3VsZCBiZSB0byBkZXRlY3QgdGhlIHByZXNlbmNlIG9mIHRoZQ0KPj4+Pj4+
Pj4+PiBQQ0lfRVhUX0NBUF9JRF9SRUJBUiBjYXBhYmlsaXR5IGluIGluaXRfaGVhZGVyKCksIGFu
ZCBpZiB0aGUNCj4+Pj4+Pj4+Pj4gY2FwYWJpbGl0eSBpcyBwcmVzZW50IGZvcmNlIHRoZSBzaXpp
bmcgb2YgQkFScyBlYWNoIHRpbWUgdGhleSBhcmUNCj4+Pj4+Pj4+Pj4gbWFwcGVkIGluIG1vZGlm
eV9iYXJzKCkuICBJIGRvbid0IHRoaW5rIHdlIG5lZWQgdG8gdHJhcCBhY2Nlc3NlcyB0bw0KPj4+
Pj4+Pj4+PiB0aGUgY2FwYWJpbGl0eSBpdHNlbGYsIGFzIHJlc2l6aW5nIGNhbiBvbmx5IGhhcHBl
biB3aGVuIG1lbW9yeQ0KPj4+Pj4+Pj4+PiBkZWNvZGluZyBpcyBub3QgZW5hYmxlZCBmb3IgdGhl
IGRldmljZS4gIEl0J3MgZW5vdWdoIHRvIGZldGNoIHRoZSBzaXplDQo+Pj4+Pj4+Pj4+IG9mIHRo
ZSBCQVJzIGFoZWFkIG9mIGVhY2ggZW5hYmxpbmcgb2YgbWVtb3J5IGRlY29kaW5nLg0KPj4+Pj4+
Pj4+Pg0KPj4+Pj4+Pj4+PiBOb3RlIHRoYXQgbWVtb3J5IGRlY29kaW5nIGltcGxpZXMgbWFwcGlu
ZyB0aGUgQkFScyBpbnRvIHRoZSBwMm0sIHdoaWNoDQo+Pj4+Pj4+Pj4+IGlzIGFscmVhZHkgYW4g
ZXhwZW5zaXZlIG9wZXJhdGlvbiwgdGhlIGV4dHJhIHNpemluZyBpcyB1bmxpa2VseSB0bw0KPj4+
Pj4+Pj4+PiBtYWtlIG11Y2ggb2YgYSBkaWZmZXJlbmNlIHBlcmZvcm1hbmNlIHdpc2UuDQo+Pj4+
Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IEkndmUgZm91bmQgdGhlIGZvbGxvd2luZyBvbiBteSBnaXQgdHJl
ZSBhbmQgcmViYXNlZCBvbiB0b3Agb2Ygc3RhZ2luZzoNCj4+Pj4+Pj4+PiBPSy4NCj4+Pj4+Pj4+
PiBEbyB5b3UgbmVlZCBtZSB0byB2YWxpZGF0ZSB5b3VyIHBhdGNoIGluIG15IGVudmlyb25tZW50
Pw0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IFllcyBwbGVhc2UsIEkgaGF2ZSBubyB3YXkgdG8gdGVzdCBp
dC4gIExldCdzIHNlZSB3aGF0IG90aGVycyB0aGluaw0KPj4+Pj4+Pj4gYWJvdXQgdGhlIGRpZmZl
cmVudCBhcHByb2FjaGVzLg0KPj4+Pj4+PiBUaGVyZSBhcmUgc29tZSBlcnJvcnMgd2l0aCB5b3Vy
IG1ldGhvZC4NCj4+Pj4+Pj4gSSBhdHRhY2hlZCB0aGUgZG1lc2cgYW5kIHhsIGRtZXNnIGxvZ3Mu
DQo+Pj4+Pj4+IEZyb20gdGhlIGRtZXNnIGxvZ3MsIGl0IHNlZW1zIHRoYXQgMDAwMDowMzowMC4w
IGhhcyBhZGRyZXNzZSBvdmVybGFwIHdpdGggMDAwMDowMzowMC4xDQo+Pj4+Pj4NCj4+Pj4+PiBE
byB5b3UgaGF2ZSB0aGUgb3V0cHV0IG9mIGxzcGNpIHdpdGggdGhlIEJBUiBzaXplcy9wb3NpdGlv
bnMgYmVmb3JlDQo+Pj4+Pj4gYW5kIGFmdGVyIHRoZSByZXNpemluZz8NCj4+Pj4+Pg0KPj4+Pj4+
Pg0KPj4+Pj4+PiBJIHRoaW5rIHRoZXJlIGlzIGEgcGxhY2UgdGhhdCBuZWVkcyB0byBiZSBtb2Rp
ZmllZCByZWdhcmRpbmcgeW91ciBtZXRob2QsDQo+Pj4+Pj4+IGFsdGhvdWdoIHRoaXMgbW9kaWZp
Y2F0aW9uIGRvZXMgbm90IGhlbHAgd2l0aCB0aGUgYWJvdmUtbWVudGlvbmVkIGVycm9ycywNCj4+
Pj4+Pj4gaXQgaXMgdGhhdCB3aGV0aGVyIHRvIHN1cHBvcnQgcmVzaXppbmcgaXMgc3BlY2lmaWMg
dG8gd2hpY2ggYmFyLCByYXRoZXIgdGhhbiBqdXN0IGRldGVybWluaW5nIHdoZXRoZXIgdGhlcmUg
aXMgYSBSZWJhciBjYXBhYmlsaXR5Lg0KPj4+Pj4+DQo+Pj4+Pj4gRG8gd2UgcmVhbGx5IG5lZWQg
c3VjaCBmaW5lLWdyYWluZWQgaW5mb3JtYXRpb24/ICBJdCBzaG91bGQgYmUNCj4+Pj4+PiBoYXJt
bGVzcyAoZXZlbiBpZiBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5KSB0byBzaXplIGFsbCBCQVJzIG9u
IHRoZQ0KPj4+Pj4+IGRldmljZSBiZWZvcmUgZW5hYmxpbmcgbWVtb3J5IGRlY29kaW5nLCBldmVu
IGlmIHNvbWUgb2YgdGhlbSBkbyBub3QNCj4+Pj4+PiBzdXBwb3J0IHJlc2l6aW5nLg0KPj4+Pj4+
DQo+Pj4+Pj4gSSBtaWdodCBoYXZlIHRvIHByb3ZpZGUgYSBwYXRjaCB3aXRoIGFkZGl0aW9uYWwg
bWVzc2FnZXMgdG8gc2VlIHdoYXQncw0KPj4+Pj4+IGdvaW5nIG9uLg0KPj4+Pj4NCj4+Pj4+IE9u
ZSBuaXQgdGhhdCBJJ3ZlIG5vdGljZWQgd2l0aCB0aGUgcGF0Y2ggSSBnYXZlIHlvdSBwcmV2aW91
c2x5IGlzIHRoYXQNCj4+Pj4+IHRoZSBjaGVjayBmb3IgYSBzaXplIGNoYW5nZSBpbiBtb2RpZnlf
YmFycygpIHNob3VsZCBiZSBkb25lIGFoZWFkIG9mDQo+Pj4+PiBwY2lfY2hlY2tfYmFyKCksIG90
aGVyd2lzZSB0aGUgY2hlY2sgaXMgcG9zc2libHkgdXNpbmcgYW4gb3V0ZGF0ZWQNCj4+Pj4+IHNp
emUuDQo+Pj4+Pg0KPj4+Pj4gSSd2ZSBhbHNvIGFkZGVkIGEgZGVidWcgbWVzc2FnZSB0byBub3Rp
Znkgd2hlbiBhIEJBUiByZWdpc3RlciBpcw0KPj4+Pj4gd3JpdHRlbiBhbmQgcmVwb3J0IHRoZSBu
ZXcgYWRkcmVzcy4gIFRoaXMgaXMgZG9uZSB1bmNvbmRpdGlvbmFsbHksIGJ1dA0KPj4+Pj4gaWYg
eW91IHRoaW5rIGl0J3MgdG9vIGNoYXR0eSB5b3UgY2FuIGxpbWl0IHRvIG9ubHkgcHJpbnRpbmcg
Zm9yIHRoZQ0KPj4+Pj4gZGV2aWNlIHRoYXQgaGFzIHRoZSBSZUJBUiBjYXBhYmlsaXR5Lg0KPj4+
PiBFcnJvcnMgYXJlIHRoZSBzYW1lLg0KPj4+PiBBdHRhY2hlZCB0aGUgZG1lc2csIHhsIGRtZXNn
LCBwYXRjaCBhbmQgbHNwY2kgb3V0cHV0Lg0KPj4+PiBJIHdpbGwgYWxzbyBjb250aW51ZSB0byBk
ZWJ1ZyB5b3VyIG1ldGhvZCBvbiBteSBzaWRlIHRvIHRyeSB0byBnZXQgc29tZSBmaW5kaW5ncy4N
Cj4+Pg0KPj4+IEhlbGxvLA0KPj4+DQo+Pj4gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhlIG91dHB1
dCwgYW5kIGl0IGFsbCBzZWVtcyBmaW5lLCBleGNlcHQgdGhlDQo+Pj4gMDM6MDAuMCBkZXZpY2Ug
dGhhdCBiZWNvbWVzIGJyb2tlbiBhdCBzb21lIHBvaW50LCBub3RlIHRoZSBsc3BjaQ0KPj4+IG91
dHB1dCBsaXN0cyBbdmlydHVhbF0gbmV4dCB0byB0aGUgcmVzb3VyY2Ugc2l6ZXMuICBUaGlzIG1l
YW5zIHJlYWRpbmcNCj4+PiBmb3IgdGhlIHJlZ2lzdGVycyByZXR1cm5lZCAwLCBzbyB0aGUgcG9z
aXRpb24gYW5kIHNpemVzIGFyZSBwcm92aWRlZA0KPj4+IGZyb20gdGhlIGludGVybmFsIE9TIGlu
Zm9ybWF0aW9uLg0KPj4+DQo+Pj4gSSdtIGFzc3VtaW5nIHRoZSBwYXRjaCB5b3Ugc2VudCB0byB0
aGUgbGlzdCBkb2Vzbid0IGxlYWQgdG8gc3VjaCBlcnJvcnMsDQo+PiBZZXMsIHRoZSBtZXRob2Qg
b2YgbXkgcGF0Y2ggZG9lc24ndCBsZWFkIHRvIGFueSBlcnJvcnMuDQo+PiBJIGF0dGFjaGVkIHRo
ZSBkbWVzZywgeGwgZG1lc2cgYW5kIGxzcGNpIGxvZ3Mgb2YgbXkgbWV0aG9kLg0KPj4NCj4+PiBp
biB3aGljaCBjYXNlIEkgY2FuIG9ubHkgZ3Vlc3MgdGhhdCBmZXRjaGluZyB0aGUgc2l6ZSBvZiB0
aGUNCj4+PiBCQVJzIGluIG1vZGlmeV9iYXJzKCkgY2F1c2VzIGlzc3VlcyB3aXRoIHRoZSBkZXZp
Y2UuDQo+Pj4NCj4+PiBUbyBjb25maXJtIHRoaXMsIGNhbiB5b3UgdHJ5IHRoZSBmb2xsb3dpbmcg
cGF0Y2ggb24gdG9wIG9mIHlvdXIgb3JpZ2luYWwgY2hhbmdlPyAgDQo+PiBJIHRyaWVkIGJlbG93
IHBhdGNoIHdpdGggbXkgb3JpZ2luYWwgcGF0Y2gsIGl0IGRpZG4ndCBjYXVzZSBhbnkgZXJyb3Jz
Lg0KPj4gQW5kIHRoZSBsc3BjaSBzaG93ZWQgd2l0aG91dCB0aGUgIlt2aXJ0dWFsXSIuDQo+PiBT
bywgdW5mb3J0dW5hdGVseSwgaXQgaXMgbm90IHJlbGF0ZWQgdG8gdGhlIGZldGNoaW5nIHNpemUg
b2YgQmFycyBpbiBtb2RpZnlfYmFycygpLg0KPiANCj4gSSBzZWUsIEknbSBhdCBhIGxvc3MgYXMg
dG8gd2hhdCdzIHdyb25nIHdpdGggbXkgcGF0Y2guICBEbyB5b3UgaGF2ZQ0KPiBhbnkgYWRkaXRp
b25hbCBwYXRjaGVzIG9uIFhlbiB3aGVuIHRlc3RpbmcgeW91ciBvciBteSBhcHByb2FjaD8NCk5v
LCBqdXN0IG15IHBhdGNoIG9yIHlvdXIgcGF0Y2gsIGJhc2Ugb24gdXBzdHJlYW0gY29kZXMoa2Vy
bmVsIGJyYW5jaCBpcyBsaW51eC1uZXh0IGFuZCB4ZW4gYnJhbmNoIGlzIHN0YWdpbmcpLg0KDQo+
IA0KPiBJIHNhZGx5IGRvbid0IGhhdmUgYW55IGJveCB3aXRoIGEgUENJIGRldmljZSB0aGF0IGV4
cG9zZXMgdGhlDQo+IHJlc2l6YWJsZSBCQVIgY2FwYWJpbGl0eSwgc28gSSdtIG5vdCBhYmxlIHRv
IHRlc3Qgb3IgZGVidWcgdGhpcy4NCj4gDQo+IEkgd291bGQgbGlrZSB0byB1bmRlcnN0YW5kIHdo
eSBteSBhcHByb2FjaCBkb2Vzbid0IHdvcmssIGFzIG90aGVyd2lzZQ0KPiBJIGZlZWwgbGlrZSBJ
J20gbWlzc2luZyBob3cgUmVCQVIgaXMgc3VwcG9zZWQgdG8gd29yay4gIEFueXdheSwgaWYgeW91
DQo+IGNhbiBnaXZlIGEgdHJ5IHRvIHRoZSBkaWZmIGJlbG93LCBpdCdzIHRoZSBzYW1lIHBhdGNo
LCBidXQgd2l0aCB5ZXQNCj4gZXZlbiBtb3JlIGRlYnVnIG1lc3NhZ2VzIGFkZGVkLg0KQXR0YWNo
ZWQgdGhlIHhsIGRtZXNnLg0KDQo+IA0KPiBUaGFua3MsIGFuZCBzb3JyeSBmb3Iga2VlcGluZyB5
b3UgdGVzdGluZyBpdC4NClRoYXQncyBmaW5lLCBmZWVsIGZyZWUgdG8gc2VuZCBtZSBpZiB5b3Ug
bmVlZCBtb3JlIHRlc3QgaW5mb3JtYXRpb24uDQpBY3R1YWxseSBJIGFtIHN0aWxsIGNvbnRpbnVp
bmcgdG8gZGVidWcgeW91ciBwYXRjaCBhbmQgYWxzbyBjdXJpb3VzIGFib3V0IHdoeSB5b3VyIHBh
dGNoIGRvZXMgbm90IHdvcmsuDQoNClRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiBvdXIgbWV0
aG9kcyBpcyB0aGUgdGltaW5nIG9mIHVwZGF0aW5nIHRoZSBzaXplLg0KWW91cnMgaXMgbGF0ZXIg
dGhhbiBtaW5lIGJlY2F1c2UgeW91IHVwZGF0ZWQgdGhlIHNpemUgd2hlbiB0aGUgZHJpdmVyIHJl
LWVuYWJsZWQgbWVtb3J5IGRlY29kaW5nLCB3aGlsZSBJIHVwZGF0ZWQgdGhlIHNpemUgaW4gdGlt
ZSB3aGVuIGRyaXZlciByZXNpemUgaXQuDQpJIHN1c3BlY3QgdGhhdCB0aGUgZHJpdmVyIG9yIGh5
cGVydmlzb3IgbWF5IGhhdmUgZG9uZSBzb21ldGhpbmcgaW4gYmV0d2VlbiBhbmQgcmVhZCBvdXRk
YXRlZCBpbmZvcm1hdGlvbi4NCkkgYW0gZGVidWdnaW5nIHRoZSBkcml2ZXIgY29kZXMuDQoNCj4g
DQo+IFJlZ2FyZHMsIFJvZ2VyLg0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kv
aGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+IGluZGV4IGVmNmM5NjVjMDgx
Yy4uZGRhNDJlZjBiN2ZmIDEwMDY0NA0KPiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5j
DQo+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4gQEAgLTMxNiw2ICszMTYsOSBA
QCBzdGF0aWMgaW50IG1vZGlmeV9iYXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50
MTZfdCBjbWQsIGJvb2wgcm9tX29ubHkpDQo+ICANCj4gICAgICBBU1NFUlQocndfaXNfd3JpdGVf
bG9ja2VkKCZwZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7DQo+ICANCj4gKyAgICBwcmludGsoIiVw
cDogbW9kaWZ5IGJhcnMgY21kOiAleCByb21fb25seTogJWRcbiIsDQo+ICsgICAgICAgICAgICZw
ZGV2LT5zYmRmLCBjbWQsIHJvbV9vbmx5KTsNCj4gKw0KPiAgICAgIC8qDQo+ICAgICAgICogQ3Jl
YXRlIGEgcmFuZ2VzZXQgcGVyIEJBUiB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgZGV2aWNl
IG1lbW9yeQ0KPiAgICAgICAqIHJlZ2lvbiBhbmQgY29tcGFyZSBpdCBhZ2FpbnN0IGFsbCB0aGUg
Y3VycmVudGx5IGFjdGl2ZSBCQVIgbWVtb3J5DQo+IEBAIC0zNDYsNiArMzQ5LDMzIEBAIHN0YXRp
YyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90IGNt
ZCwgYm9vbCByb21fb25seSkNCj4gICAgICAgICAgICAgICBiYXItPmVuYWJsZWQgPT0gISEoY21k
ICYgUENJX0NPTU1BTkRfTUVNT1JZKSApDQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4gIA0K
PiArICAgICAgICBpZiAoIGJhci0+dHlwZSAhPSBWUENJX0JBUl9ST00gJiYgaGVhZGVyLT5iYXJz
X3Jlc2l6YWJsZSAmJg0KPiArICAgICAgICAgICAgIChjbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkp
ICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsNCj4g
Kw0KPiArICAgICAgICAgICAgcGNpX3NpemVfbWVtX2JhcihwZGV2LT5zYmRmLCBQQ0lfQkFTRV9B
RERSRVNTXzAgKyBpICogNCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZHIs
ICZzaXplLCAwKTsNCj4gKw0KPiArICAgICAgICAgICAgcHJpbnRrKCIlcHA6IEJBUiV1IFJlQkFS
IHN1cHBvcnRlZCBhZGRyICUjbHggLT4gJSNseCBzaXplICUjbHggLT4gJSNseFxuIiwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIGksIGJhci0+YWRkciwgYWRkciwgYmFyLT5z
aXplLCBzaXplKTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKCBiYXItPmFkZHIgIT0gYWRkciAp
DQo+ICsgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUg0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAiJXBwOiBCQVIjJXUgYWRkcmVzcyBtaXNtYXRjaCAlI2x4IHZzICUjbHhcbiIs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBpLCBiYXItPmFkZHIsIGFk
ZHIpOw0KPiArDQo+ICsgICAgICAgICAgICBpZiAoIGJhci0+c2l6ZSAhPSBzaXplICkNCj4gKyAg
ICAgICAgICAgIHsNCj4gKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgIiVwcDogZGV0ZWN0ZWQgQkFSIyV1IHNpemUgY2hhbmdl
ICglI2x4IC0+ICUjbHgpXG4iLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAmcGRldi0+c2Jk
ZiwgaSwgYmFyLT5zaXplLCBzaXplKTsNCj4gKyAgICAgICAgICAgICAgICBiYXItPnNpemUgPSBz
aXplOw0KPiArICAgICAgICAgICAgICAgIGVuZCA9IFBGTl9ET1dOKGJhci0+YWRkciArIHNpemUg
LSAxKTsNCj4gKyAgICAgICAgICAgICAgICBlbmRfZ3Vlc3QgPSBQRk5fRE9XTihiYXItPmd1ZXN0
X2FkZHIgKyBzaXplIC0gMSk7DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgIH0NCj4gKw0K
PiAgICAgICAgICBpZiAoICFwY2lfY2hlY2tfYmFyKHBkZXYsIF9tZm4oc3RhcnQpLCBfbWZuKGVu
ZCkpICkNCj4gICAgICAgICAgew0KPiAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX1dBUk5J
TkcNCj4gQEAgLTU4Myw4ICs2MTMsNiBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBiYXJfd3JpdGUo
DQo+ICAgICAgICovDQo+ICAgICAgaWYgKCBiYXItPmVuYWJsZWQgKQ0KPiAgICAgIHsNCj4gLSAg
ICAgICAgLyogSWYgdGhlIHZhbHVlIHdyaXR0ZW4gaXMgdGhlIGN1cnJlbnQgb25lIGF2b2lkIHBy
aW50aW5nIGEgd2FybmluZy4gKi8NCj4gLSAgICAgICAgaWYgKCB2YWwgIT0gKHVpbnQzMl90KShi
YXItPmFkZHIgPj4gKGhpID8gMzIgOiAwKSkgKQ0KPiAgICAgICAgICAgICAgZ3ByaW50ayhYRU5M
T0dfV0FSTklORywNCj4gICAgICAgICAgICAgICAgICAgICAgIiVwcDogaWdub3JlZCBCQVIgJXp1
IHdyaXRlIHdoaWxlIG1hcHBlZFxuIiwNCj4gICAgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNi
ZGYsIGJhciAtIHBkZXYtPnZwY2ktPmhlYWRlci5iYXJzICsgaGkpOw0KPiBAQCAtNjAxLDYgKzYy
OSwxMCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBiYXJfd3JpdGUoDQo+ICAgICAgLyogVXBkYXRl
IGd1ZXN0IGFkZHJlc3MsIHNvIGhhcmR3YXJlIGRvbWFpbiBCQVIgaXMgaWRlbnRpdHkgbWFwcGVk
LiAqLw0KPiAgICAgIGJhci0+Z3Vlc3RfYWRkciA9IGJhci0+YWRkcjsNCj4gIA0KPiArICAgIHBy
aW50aygiJXBwOiB3cml0ZSBCQVIlenUgdmFsOiAlI3ggQkFSJXp1IGFkZHJlc3M6ICUjbHhcbiIs
DQo+ICsgICAgICAgICAgICZwZGV2LT5zYmRmLCBiYXIgLSBwZGV2LT52cGNpLT5oZWFkZXIuYmFy
cywgdmFsLA0KPiArICAgICAgICAgICBiYXIgLSBwZGV2LT52cGNpLT5oZWFkZXIuYmFycyArIGhp
LCBiYXItPmFkZHIpOw0KPiArDQo+ICAgICAgLyogTWFrZSBzdXJlIFhlbiB3cml0ZXMgYmFjayB0
aGUgc2FtZSB2YWx1ZSBmb3IgdGhlIEJBUiBSTyBiaXRzLiAqLw0KPiAgICAgIGlmICggIWhpICkN
Cj4gICAgICB7DQo+IEBAIC04NzAsNiArOTAyLDkgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbml0
X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4gICAgICBpZiAoIHBkZXYtPmlnbm9yZV9i
YXJzICkNCj4gICAgICAgICAgcmV0dXJuIDA7DQo+ICANCj4gKyAgICBoZWFkZXItPmJhcnNfcmVz
aXphYmxlID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGRldi0+c2JkZiwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0VYVF9DQVBf
SURfUkVCQVIpOw0KPiArDQo+ICAgICAgY21kID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYs
IFBDSV9DT01NQU5EKTsNCj4gIA0KPiAgICAgIC8qDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVk
ZS94ZW4vcGNpX3JlZ3MuaCBiL3hlbi9pbmNsdWRlL3hlbi9wY2lfcmVncy5oDQo+IGluZGV4IDI1
MGJhMTA2ZGJkMy4uYzU0M2EyYjg2Nzc4IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4v
cGNpX3JlZ3MuaA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vcGNpX3JlZ3MuaA0KPiBAQCAtNDU5
LDYgKzQ1OSw3IEBADQo+ICAjZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX0FSSQkxNA0KPiAgI2RlZmlu
ZSBQQ0lfRVhUX0NBUF9JRF9BVFMJMTUNCj4gICNkZWZpbmUgUENJX0VYVF9DQVBfSURfU1JJT1YJ
MTYNCj4gKyNkZWZpbmUgUENJX0VYVF9DQVBfSURfUkVCQVIJMjENCj4gIA0KPiAgLyogQWR2YW5j
ZWQgRXJyb3IgUmVwb3J0aW5nICovDQo+ICAjZGVmaW5lIFBDSV9FUlJfVU5DT1JfU1RBVFVTCTQJ
LyogVW5jb3JyZWN0YWJsZSBFcnJvciBTdGF0dXMgKi8NCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs
dWRlL3hlbi92cGNpLmggYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQo+IGluZGV4IDQxZTdjM2Jj
Mjc5MS4uNDVlYmMxYmIzMzU2IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vdnBjaS5o
DQo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgNCj4gQEAgLTEyOSw2ICsxMjksOCBAQCBz
dHJ1Y3QgdnBjaSB7DQo+ICAgICAgICAgICAqIHVwb24gdG8ga25vdyB3aGV0aGVyIEJBUnMgYXJl
IG1hcHBlZCBpbnRvIHRoZSBndWVzdCBwMm0uDQo+ICAgICAgICAgICAqLw0KPiAgICAgICAgICBi
b29sIGJhcnNfbWFwcGVkICAgICAgOiAxOw0KPiArICAgICAgICAvKiBEZXZpY2UgaGFzIHRoZSBS
ZXNpemFibGUgQkFScyBjYXBhYmlsaXR5LiAqLw0KPiArICAgICAgICBib29sIGJhcnNfcmVzaXph
YmxlICAgOiAxOw0KPiAgICAgICAgICAvKiBGSVhNRTogY3VycmVudGx5IHRoZXJlJ3Mgbm8gc3Vw
cG9ydCBmb3IgU1ItSU9WLiAqLw0KPiAgICAgIH0gaGVhZGVyOw0KPiAgDQoNCi0tIA0KQmVzdCBy
ZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=

--_002_BL1PR12MB5849FC514034CDFC2F68BA6FE7212BL1PR12MB5849namp_
Content-Type: text/plain; name="rebar_xl_dmesg.txt"
Content-Description: rebar_xl_dmesg.txt
Content-Disposition: attachment; filename="rebar_xl_dmesg.txt"; size=43495;
	creation-date="Fri, 15 Nov 2024 02:57:34 GMT";
	modification-date="Wed, 20 Nov 2024 03:01:55 GMT"
Content-Transfer-Encoding: base64

IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgIF9fXyAgICAgICAgICAgICAgICAgICAg
IF8gICAgICAgIF8gICAgIF8KIFwgXC8gL19fXyBfIF9fICAgfCB8fCB8ICB8X19fIFwgLyBfIFwg
ICAgXyAgIF8gXyBfXyAgX19ffCB8XyBfXyBffCB8X18gfCB8IF9fXwogIFwgIC8vIF8gXCAnXyBc
ICB8IHx8IHxfICAgX18pIHwgfCB8IHxfX3wgfCB8IHwgJ18gXC8gX198IF9fLyBfYCB8ICdfIFx8
IHwvIF8gXAogIC8gIFwgIF9fLyB8IHwgfCB8X18gICBffCAvIF9fL3wgfF98IHxfX3wgfF98IHwg
fCB8IFxfXyBcIHx8IChffCB8IHxfKSB8IHwgIF9fLwogL18vXF9cX19ffF98IHxffCAgICB8X3wo
XylfX19fX3xcX19fLyAgICBcX18sX3xffCB8X3xfX18vXF9fXF9fLF98Xy5fXy98X3xcX19ffAoK
KFhFTikgWGVuIHZlcnNpb24gNC4yMC11bnN0YWJsZSAoY2pxQCkgKGdjYyAoVWJ1bnR1IDExLjQu
MC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4wKSBkZWJ1Zz15IFdlZCBOb3YgMjAgMTA6Mzc6NTkgQ1NU
IDIwMjQKKFhFTikgTGF0ZXN0IENoYW5nZVNldDogRnJpIE5vdiAxNSAxMDoyNzo0OCAyMDI0ICsw
ODAwIGdpdDoxNmU2NGViYzM1CihYRU4pIGJ1aWxkLWlkOiBhY2JmNThkMTIwYzAwNDY2ZTE4YWIy
YmJkZmVlOTRlN2ZlMDc5MmQxCihYRU4pIEJvb3Rsb2FkZXI6IEdSVUIgMi4wNi0ydWJ1bnR1MTQu
NAooWEVOKSBDb21tYW5kIGxpbmU6IHBsYWNlaG9sZGVyIGRvbTA9cHZoIGRvbTBfbWVtPTZHIGxv
Z2x2bD1hbGwgbm8tcmVhbC1tb2RlIGVkZD1vZmYKKFhFTikgWGVuIGltYWdlIGxvYWQgYmFzZSBh
ZGRyZXNzOiAweGM2YzAwMDAwCihYRU4pIFZpZGVvIGluZm9ybWF0aW9uOgooWEVOKSAgVkdBIGlz
IGdyYXBoaWNzIG1vZGUgMjU2MHgxNDQwLCAzMiBicHAKKFhFTikgRGlzYyBpbmZvcm1hdGlvbjoK
KFhFTikgIEZvdW5kIDAgTUJSIHNpZ25hdHVyZXMKKFhFTikgIEZvdW5kIDEgRUREIGluZm9ybWF0
aW9uIHN0cnVjdHVyZXMKKFhFTikgQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkgMjMgKDB4MTcpLCBN
b2RlbCA5NiAoMHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkKKFhFTikgRUZJIFJBTSBt
YXA6CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAwMDA5ZWZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwMDAwMDlmMDAwLCAwMDAwMDAwMDAwMGJmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAwMDAwMDAwOWFmZmZmZl0gKHVzYWJsZSkKKFhFTikg
IFswMDAwMDAwMDA5YjAwMDAwLCAwMDAwMDAwMDA5ZGZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBb
MDAwMDAwMDAwOWUwMDAwMCwgMDAwMDAwMDAwOWVmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAw
MDAwMDA5ZjAwMDAwLCAwMDAwMDAwMDA5ZjBmZmZmXSAoQUNQSSBOVlMpCihYRU4pICBbMDAwMDAw
MDAwOWYxMDAwMCwgMDAwMDAwMDBiYjQ2NWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGJi
NDY2MDAwLCAwMDAwMDAwMGJjNTY1ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBiYzU2
NjAwMCwgMDAwMDAwMDBjODc3ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGM4NzdmMDAw
LCAwMDAwMDAwMGNhZjdlZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBjYWY3ZjAwMCwg
MDAwMDAwMDBjY2Y3ZWZmZl0gKEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwY2NmN2YwMDAsIDAw
MDAwMDAwY2NmZmVmZmZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAwMDAwMDBjY2ZmZjAwMCwgMDAw
MDAwMDBjY2ZmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGNkMDAwMDAwLCAwMDAwMDAw
MGNkZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBm
N2ZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmRlMDAwMDAsIDAwMDAwMDAwZmRl
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAx
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZm
Zl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVjMjAwMDAsIDAwMDAwMDAwZmVjMjBmZmZd
IChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDgwMDAwLCAwMDAwMDAwMGZlZDgxZmZmXSAo
cmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWRjMDAwMCwgMDAwMDAwMDBmZWRkZmZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVlMDAwMDAsIDAwMDAwMDAwZmVlMDBmZmZdIChyZXNl
cnZlZCkKKFhFTikgIFswMDAwMDAwMGZmMDAwMDAwLCAwMDAwMDAwMGZmZjFmZmZmXSAocmVzZXJ2
ZWQpCihYRU4pICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAwMDAwMDgwZjMzZmZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwODBmMzQwMDAwLCAwMDAwMDAwODJmZmZmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pIEJTUCBtaWNyb2NvZGUgcmV2aXNpb246IDB4MDg2MDAxMDkKKFhFTikgQUNQSTogUlNEUCBD
Q0ZGRTAxNCwgMDAyNCAocjIgQU1EICAgKQooWEVOKSBBQ1BJOiBYU0RUIENDRkRFMTg4LCAwMTU0
IChyMSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDIgICAgICAgMTAwMDAxMykKKFhFTikgQUNQSTog
RkFDUCBDQ0ZFNjAwMCwgMDExNCAocjYgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAg
NDAwMDApCihYRU4pIEFDUEk6IERTRFQgQ0NGRDQwMDAsIDkwQkYgKHIxIEFNRCAgICBDZWxhZG9u
ICAgICAgICAgMiBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBGQUNTIENDRUYxMDAwLCAwMDQw
CihYRU4pIEFDUEk6IFVFRkkgQ0NGN0UwMDAsIDAyMzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkY1MDAwLCA3MjNDIChyMiBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogSVZSUyBD
Q0ZGNDAwMCwgMDFBNCAocjIgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IFNTRFQgQ0NGRjAwMDAsIDM3NEEgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVGMDAwLCAwMjI4IChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQkVSVCBD
Q0ZFRTAwMCwgMDAzMCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEVJTkogQ0NGRUMwMDAsIDAxNTAgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVCMDAwLCAwNDZEIChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogVFBNMiBD
Q0ZFQTAwMCwgMDAzNCAocjQgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEFTRiEgQ0NGRTgwMDAsIDAwQTUgKHIzMiBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQk9PVCBDQ0ZFNzAwMCwgMDAyOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IEhQRVQg
Q0NGRTUwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBBUElDIENDRkU0MDAwLCAwMTM4IChyNCBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogTUNGRyBDQ0ZFMzAwMCwgMDAzQyAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNMSUMg
Q0NGRTIwMDAsIDAxNzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBXU01UIENDRkRGMDAwLCAwMDI4IChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCBDQ0ZGRDAwMCwgMDA4MCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQg
Q0NGQzUwMDAsIDAxNjQgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgMTAwMCBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBTU0RUIENDRkMyMDAwLCAyQjgwIChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQ1JBVCBDQ0ZDMTAwMCwgMEJBOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IENESVQg
Q0NGQzAwMDAsIDAwMjkgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBWRkNUIENDRkE3MDAwLCAxOENBMCAocjEgQU1EICAgIENlbGFkb24gICAg
ICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRDMwMDAsIDAxMzkgKHIx
IEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBIRVNU
IENDRjk2MDAwLCAxMDg3NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRUQwMDAsIDAyOEQgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkQyMDAwLCAwRDM3IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZEMDAwMCwgMTBBQiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0YwMDAsIDAxNzkgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkNEMDAwLCAxNTRGIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZDQjAwMCwgMTBCMyAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0EwMDAsIDAxQzAgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkM2MDAwLCAzMEM4IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogRlBE
VCBDQ0Y5NTAwMCwgMDA0NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IEJHUlQgQ0NGOTQwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkUxMDAwLCAwMDdEIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZFMDAwMCwgMEY5NiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGOTMwMDAsIDA1MTcgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBTeXN0ZW0gUkFNOiAzMjEwMk1CICgzMjg3Mjc2
NGtCKQooWEVOKSBObyBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKKFhFTikgRmFraW5nIGEgbm9k
ZSBhdCAwMDAwMDAwMDAwMDAwMDAwLTAwMDAwMDA4MGYzNDAwMDAKKFhFTikgRG9tYWluIGhlYXAg
aW5pdGlhbGlzZWQKKFhFTikgdmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDAwMDAwMGZjNzAwMDAw
MDAsIG1hcHBlZCB0byAweGZmZmY4MmMwMDAyMDMwMDAsIHVzaW5nIDE0NDAwaywgdG90YWwgMTQ0
MDBrCihYRU4pIHZlc2FmYjogbW9kZSBpcyAyNTYweDE0NDB4MzIsIGxpbmVsZW5ndGg9MTAyNDAs
IGZvbnQgOHgxNgooWEVOKSB2ZXNhZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0y
NDoxNjo4OjAKKFhFTikgU01CSU9TIDMuMSBwcmVzZW50LgooWEVOKSBVc2luZyBBUElDIGRyaXZl
ciBkZWZhdWx0CihYRU4pIEFDUEk6IFBNLVRpbWVyIElPIFBvcnQ6IDB4NDA4ICgzMiBiaXRzKQoo
WEVOKSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6MF0sIHN0YXR1c1swOjBdCihYRU4p
IEFDUEk6IFNMRUVQIElORk86IHBtMXhfY250WzE6NDA0LDE6MF0sIHBtMXhfZXZ0WzE6NDAwLDE6
MF0KKFhFTikgQUNQSTogMzIvNjRYIEZBQ1MgYWRkcmVzcyBtaXNtYXRjaCBpbiBGQURUIC0gY2Nl
ZjEwMDAvMDAwMDAwMDAwMDAwMDAwMCwgdXNpbmcgMzIKKFhFTikgQUNQSTogICAgICAgICAgICAg
d2FrZXVwX3ZlY1tjY2VmMTAwY10sIHZlY19zaXplWzIwXQooWEVOKSBBQ1BJOiBMb2NhbCBBUElD
IGFkZHJlc3MgMHhmZWUwMDAwMAooWEVOKSBPdmVycmlkaW5nIEFQSUMgZHJpdmVyIHdpdGggYmln
c21wCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBnc2lf
YmFzZVswXSkKKFhFTikgSU9BUElDWzBdOiBhcGljX2lkIDMzLCB2ZXJzaW9uIDMzLCBhZGRyZXNz
IDB4ZmVjMDAwMDAsIEdTSSAwLTIzCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMl0gYWRkcmVz
c1sweGZlYzAxMDAwXSBnc2lfYmFzZVsyNF0pCihYRU4pIElPQVBJQ1sxXTogYXBpY19pZCAzNCwg
dmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUKKFhFTikgQUNQSTogSU5U
X1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMCBnbG9iYWxfaXJxIDIgZGZsIGRmbCkKKFhFTikgQUNQ
STogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgOSBnbG9iYWxfaXJxIDkgbG93IGxldmVsKQoo
WEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTIgdXNlZCBi
eSBvdmVycmlkZS4KKFhFTikgQUNQSTogSVJROSB1c2VkIGJ5IG92ZXJyaWRlLgooWEVOKSBBQ1BJ
OiBIUEVUIGlkOiAweDEwMjI4MjEwIGJhc2U6IDB4ZmVkMDAwMDAKKFhFTikgUENJOiBNQ0ZHIGNv
bmZpZ3VyYXRpb24gMDogYmFzZSBmMDAwMDAwMCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSA3Zgoo
WEVOKSBQQ0k6IE1DRkcgYXJlYSBhdCBmMDAwMDAwMCByZXNlcnZlZCBpbiBFODIwCihYRU4pIFBD
STogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03ZgooWEVOKSBIRVNUOiBUYWJs
ZSBwYXJzaW5nIGhhcyBiZWVuIGluaXRpYWxpemVkCihYRU4pIEFDUEk6IEJHUlQ6IGludmFsaWRh
dGluZyB2MSBpbWFnZSBhdCAweGMzMmIwMDAwCihYRU4pIFVzaW5nIEFDUEkgKE1BRFQpIGZvciBT
TVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgooWEVOKSBTTVA6IEFsbG93aW5nIDE2IENQVXMg
KDQgaG90cGx1ZyBDUFVzKQooWEVOKSBJUlEgbGltaXRzOiA1NiBHU0ksIDI0NDAgTVNJL01TSS1Y
CihYRU4pIFplbmJsZWVkIG1pdGlnYXRpb24gLSB1c2luZyBjaGlja2VuYml0CihYRU4pIENQVTA6
IDE0MDAgLi4uIDMwMDAgTUh6CihYRU4pIHhzdGF0ZTogc2l6ZTogMHgzODAgYW5kIHN0YXRlczog
MHgyMDcKKFhFTikgQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFi
bGVkCihYRU4pIFNwZWN1bGF0aXZlIG1pdGlnYXRpb24gZmFjaWxpdGllczoKKFhFTikgICBIYXJk
d2FyZSBoaW50czogSUJSU19GQVNUIElCUlNfU0FNRV9NT0RFCihYRU4pICAgSGFyZHdhcmUgZmVh
dHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JECihYRU4pICAgQ29tcGlsZWQtaW4gc3VwcG9ydDog
SU5ESVJFQ1RfVEhVTksgU0hBRE9XX1BBR0lORyBIQVJERU5fQVJSQVkgSEFSREVOX0JSQU5DSCBI
QVJERU5fR1VFU1RfQUNDRVNTIEhBUkRFTl9MT0NLCihYRU4pICAgWGVuIHNldHRpbmdzOiBCVEkt
VGh1bms6IFJFVFBPTElORSwgU1BFQ19DVFJMOiBJQlJTLSBTVElCUCsgU1NCRC0sIE90aGVyOiBC
UkFOQ0hfSEFSREVOCihYRU4pICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNSX1NQRUNfQ1RSTCBN
U1JfVklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkKKFhFTikgICBTdXBwb3J0IGZvciBQViBW
TXM6IElCUEItZW50cnkKKFhFTikgICBYUFRJICg2NC1iaXQgUFYgb25seSk6IERvbTAgZGlzYWJs
ZWQsIERvbVUgZGlzYWJsZWQgKHdpdGhvdXQgUENJRCkKKFhFTikgICBQViBMMVRGIHNoYWRvd2lu
ZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZAooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNN
UCBDcmVkaXQgU2NoZWR1bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIEluaXRpYWxpemluZyBDcmVk
aXQyIHNjaGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2Fk
X3dpbmRvd19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAoo
WEVOKSAgb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJy
YW5nZW1lbnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1z
CihYRU4pIGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIFBs
YXRmb3JtIHRpbWVyIGlzIDE0LjMxOE1IeiBIUEVUCihYRU4pIERldGVjdGVkIDI5OTQuMzYzIE1I
eiBwcm9jZXNzb3IuCihYRU4pIEZyZWVkIDEwMjBrQiB1bnVzZWQgQlNTIG1lbW9yeQooWEVOKSBF
RkkgbWVtb3J5IG1hcDoKKFhFTikgIDAwMDAwMDAwMDAwMDAtMDAwMDAwMDAwM2ZmZiB0eXBlPTIg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAwMDA0MDAwLTAwMDAwMDAwOGVmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwMDA4ZjAwMC0wMDAwMDAw
MDllZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDAwOWYwMDAt
MDAwMDAwMDA5ZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAw
MTAwMDAwLTAwMDAwMDRhYzNmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDAwNGFjNDAwMC0wMDAwMDA5YWZmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwMDliMDAwMDAtMDAwMDAwOWRmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMDA5ZTAwMDAwLTAwMDAwMDllZmZmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwOWYwMDAwMC0wMDAwMDA5ZjBmZmZmIHR5cGU9MTAg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDA5ZjEwMDAwLTAwMDAwNzhkM2FmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA3OGQzYjAwMC0wMDAwMDdm
ZmZlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwN2ZmZmYwMDAt
MDAwMDBiNmU4OGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI2
ZTg5MDAwLTAwMDAwYjcxMDNmZmYgdHlwZT0xIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDBiNzEwNDAwMC0wMDAwMGI3MzdlZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwYjczN2YwMDAtMDAwMDBiNzM5ZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMGI3MzlmMDAwLTAwMDAwYjczZjdmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiNzNmODAwMC0wMDAwMGI3NjE5ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYjc2MWEwMDAtMDAwMDBiNzY2N2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI3NjY4MDAwLTAwMDAwYmFm
ODZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYWY4NzAwMC0w
MDAwMGJhZmE1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmFm
YTYwMDAtMDAwMDBiYWZmN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAw
MDAwMGJhZmY4MDAwLTAwMDAwYmIwNWRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgoo
WEVOKSAgMDAwMDBiYjA1ZTAwMC0wMDAwMGJiNDY1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYKKFhFTikgIDAwMDAwYmI0NjYwMDAtMDAwMDBiYzU2NWZmZiB0eXBlPTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTY2MDAwLTAwMDAwYmM1NmZmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzU3MDAwMC0wMDAwMGJjNTc5ZmZmIHR5
cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmM1N2EwMDAtMDAwMDBiYzU3
Y2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTdkMDAwLTAw
MDAwYmM2YThmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzZh
OTAwMC0wMDAwMGJjNzdlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAw
MDAwYmM3N2YwMDAtMDAwMDBjMzE2MGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihY
RU4pICAwMDAwMGMzMTYxMDAwLTAwMDAwYzMyYTFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZgooWEVOKSAgMDAwMDBjMzJhMjAwMC0wMDAwMGMzMmFiZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzMyYWMwMDAtMDAwMDBjMzJhY2ZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGMzMmFkMDAwLTAwMDAwYzMyYWRmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjMzJhZTAwMC0wMDAwMGM2Nzdl
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzY3N2YwMDAtMDAw
MDBjNmRmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGM2ZTAw
MDAwLTAwMDAwYzcxZjdmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDBjNzFmODAwMC0wMDAwMGM3MzdhZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwYzczN2IwMDAtMDAwMDBjODc3ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmCihYRU4pICAwMDAwMGM4NzdmMDAwLTAwMDAwYzhmN2VmZmYgdHlwZT01IGF0dHI9ODAwMDAw
MDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjOGY3ZjAwMC0wMDAwMGM5ZjdlZmZmIHR5cGU9NiBhdHRy
PTgwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzlmN2YwMDAtMDAwMDBjYWY3ZWZmZiB0eXBl
PTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNhZjdmMDAwLTAwMDAwY2NmN2Vm
ZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwY2NmN2YwMDAtMDAw
MDBjY2ZmZWZmZiB0eXBlPTkgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNjZmZm
MDAwLTAwMDAwY2NmZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDEwMDAwMDAwMC0wMDAwODBmMzNmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwMDAwYTAwMDAtMDAwMDAwMDBiZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAw
MDAwCihYRU4pICAwMDAwMGNkMDAwMDAwLTAwMDAwY2RmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAw
MDAwMDAwMDAwMAooWEVOKSAgMDAwMDBmMDAwMDAwMC0wMDAwMGY3ZmZmZmZmIHR5cGU9MTEgYXR0
cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZkZTAwMDAwLTAwMDAwZmRlZmZmZmYgdHlw
ZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmVjMDAwMDAtMDAwMDBmZWMw
MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDBmZWMxMDAwMC0w
MDAwMGZlYzEwZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZl
YzIwMDAwLTAwMDAwZmVjMjBmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikg
IDAwMDAwZmVkODAwMDAtMDAwMDBmZWQ4MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAw
MQooWEVOKSAgMDAwMDBmZWRjMDAwMC0wMDAwMGZlZGRmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAw
MDAwMDAwMDAxCihYRU4pICAwMDAwMGZlZTAwMDAwLTAwMDAwZmVlMDBmZmYgdHlwZT0xMSBhdHRy
PTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmYwMDAwMDAtMDAwMDBmZmYxZmZmZiB0eXBl
PTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDgwZjM0MDAwMC0wMDAwODJmZmZm
ZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMDAKKFhFTikgYWx0IHRhYmxlIGZmZmY4MmQw
NDA0OWMxYjggLT4gZmZmZjgyZDA0MDRhZWNhNAooWEVOKSBBTUQtVmk6IElPTU1VIEV4dGVuZGVk
IEZlYXR1cmVzOgooWEVOKSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVlc3QKKFhFTikg
LSB4MkFQSUMKKFhFTikgLSBOWCBiaXQKKFhFTikgLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kCihY
RU4pIC0gR3Vlc3QgQVBJQwooWEVOKSAtIFBlcmZvcm1hbmNlIENvdW50ZXJzCihYRU4pIC0gSG9z
dCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNpemU6IDB4MgooWEVOKSAtIEd1ZXN0IEFkZHJlc3MgVHJh
bnNsYXRpb24gU2l6ZTogMAooWEVOKSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAweDEK
KFhFTikgLSBNYXhpbXVtIFBBU0lEOiAweGYKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyOiAw
eDEKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAweDEKKFhFTikgLSBHdWVzdCBW
aXJ0dWFsIEFQSUMgTW9kZXM6IDB4MQooWEVOKSAtIER1YWwgUFBSIExvZzogMHgyCihYRU4pIC0g
RHVhbCBFdmVudCBMb2c6IDB4MgooWEVOKSAtIFVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVj
dGlvbgooWEVOKSAtIERldmljZSBUYWJsZSBTZWdtZW50YXRpb246IDB4MwooWEVOKSAtIFBQUiBM
b2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZwooWEVOKSAtIFBQUiBBdXRvbWF0aWMgUmVzcG9uc2UK
KFhFTikgLSBNZW1vcnkgQWNjZXNzIFJvdXRpbmcgYW5kIENvbnRyb2w6IDAKKFhFTikgLSBCbG9j
ayBTdG9wTWFyayBNZXNzYWdlCihYRU4pIC0gUGVyZm9ybWFuY2UgT3B0aW1pemF0aW9uCihYRU4p
IC0gTVNJIENhcGFiaWxpdHkgTU1JTyBBY2Nlc3MKKFhFTikgLSBHdWVzdCBJL08gUHJvdGVjdGlv
bgooWEVOKSAtIEVuaGFuY2VkIFBQUiBIYW5kbGluZwooWEVOKSAtIEF0dHJpYnV0ZSBGb3J3YXJk
CihYRU4pIC0gSW52YWxpZGF0ZSBJT1RMQiBUeXBlCihYRU4pIC0gVk0gVGFibGUgU2l6ZTogMAoo
WEVOKSAtIEd1ZXN0IEFjY2VzcyBCaXQgVXBkYXRlIERpc2FibGUKKFhFTikgQU1ELVZpOiBEaXNh
YmxlZCBIQVAgbWVtb3J5IG1hcCBzaGFyaW5nIHdpdGggSU9NTVUKKFhFTikgQU1ELVZpOiBJT01N
VSAwIEVuYWJsZWQuCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4pICAtIERv
bTAgbW9kZTogUmVsYXhlZAooWEVOKSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQKKFhFTikg
bnJfc29ja2V0czogMgooWEVOKSBFbmFibGluZyBBUElDIG1vZGUuICBVc2luZyAyIEkvTyBBUElD
cwooWEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMKKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
aG9kCihYRU4pIC4uVElNRVI6IHZlY3Rvcj0weEYwIGFwaWMxPTAgcGluMT0yIGFwaWMyPS0xIHBp
bjI9LTEKKFhFTikgV2FsbGNsb2NrIHNvdXJjZTogRUZJCihYRU4pIEFsbG9jYXRlZCBjb25zb2xl
IHJpbmcgb2YgMTI4IEtpQi4KKFhFTikgbXdhaXQtaWRsZTogZG9lcyBub3QgcnVuIG9uIGZhbWls
eSAyMyBtb2RlbCA5NgooWEVOKSBIVk06IEFTSURzIGVuYWJsZWQuCihYRU4pIFNWTTogU3VwcG9y
dGVkIGFkdmFuY2VkIGZlYXR1cmVzOgooWEVOKSAgLSBOZXN0ZWQgUGFnZSBUYWJsZXMgKE5QVCkK
KFhFTikgIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uCihYRU4pICAt
IE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQKKFhFTikgIC0gVk1DQiBDbGVhbiBCaXRzCihYRU4p
ICAtIFRMQiBmbHVzaCBieSBBU0lECihYRU4pICAtIERlY29kZUFzc2lzdHMKKFhFTikgIC0gVmly
dHVhbCBWTUxPQUQvVk1TQVZFCihYRU4pICAtIFZpcnR1YWwgR0lGCihYRU4pICAtIFBhdXNlLUlu
dGVyY2VwdCBGaWx0ZXIKKFhFTikgIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlciBUaHJlc2hvbGQK
KFhFTikgIC0gVFNDIFJhdGUgTVNSCihYRU4pICAtIE1TUl9TUEVDX0NUUkwgdmlydHVhbGlzYXRp
b24KKFhFTikgSFZNOiBTVk0gZW5hYmxlZAooWEVOKSBIVk06IEhhcmR3YXJlIEFzc2lzdGVkIFBh
Z2luZyAoSEFQKSBkZXRlY3RlZAooWEVOKSBIVk06IEhBUCBwYWdlIHNpemVzOiA0a0IsIDJNQiwg
MUdCCihYRU4pIGFsdCB0YWJsZSBmZmZmODJkMDQwNDljMWI4IC0+IGZmZmY4MmQwNDA0YWVjYTQK
KFhFTikgQnJvdWdodCB1cCAxMiBDUFVzCihYRU4pIFNjaGVkdWxpbmcgZ3JhbnVsYXJpdHk6IGNw
dSwgMSBDUFUgcGVyIHNjaGVkLXJlc291cmNlCihYRU4pIEluaXRpYWxpemluZyBDcmVkaXQyIHNj
aGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2FkX3dpbmRv
d19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAooWEVOKSAg
b3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJyYW5nZW1l
bnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1zCihYRU4p
IGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIEFkZGluZyBj
cHUgMCB0byBydW5xdWV1ZSAwCihYRU4pICBGaXJzdCBjcHUgb24gcnVucXVldWUsIGFjdGl2YXRp
bmcKKFhFTikgQWRkaW5nIGNwdSAxIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAyIHRv
IHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAzIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5n
IGNwdSA0IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA1IHRvIHJ1bnF1ZXVlIDAKKFhF
TikgQWRkaW5nIGNwdSA2IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA3IHRvIHJ1bnF1
ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA4IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA5
IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAxMCB0byBydW5xdWV1ZSAwCihYRU4pIEFk
ZGluZyBjcHUgMTEgdG8gcnVucXVldWUgMAooWEVOKSBtY2hlY2tfcG9sbDogTWFjaGluZSBjaGVj
ayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuCihYRU4pIFJ1bm5pbmcgc3R1YiByZWNvdmVyeSBzZWxm
dGVzdHMuLi4KKFhFTikgRml4dXAgI1VEWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJk
MDdmZmZlMDQ0XSAtPiBmZmZmODJkMDQwMzhjZDVjCihYRU4pIEZpeHVwICNHUFswMDAwXTogZmZm
ZjgyZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgyZDA0MDM4Y2Q1YwooWEVO
KSBGaXh1cCAjU1NbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDQgW2ZmZmY4MmQwN2ZmZmUwNDRdIC0+
IGZmZmY4MmQwNDAzOGNkNWMKKFhFTikgRml4dXAgI0JQWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ1
IFtmZmZmODJkMDdmZmZlMDQ1XSAtPiBmZmZmODJkMDQwMzhjZDVjCihYRU4pIE5YIChFeGVjdXRl
IERpc2FibGUpIHByb3RlY3Rpb24gYWN0aXZlCihYRU4pICoqKiBCdWlsZGluZyBhIFBWSCBEb20w
ICoqKgooWEVOKSAwMDAwOjAwOjAxLjE6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAw
MDAwOjAwOjA4LjE6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAw
OjA4LjI6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6
IG1vZGlmeSBiYXJzIGNtZDogNDAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMzogbW9k
aWZ5IGJhcnMgY21kOiBmIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDE6MDAuMDogbW9kaWZ5IGJh
cnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDI6MDAuMDogbW9kaWZ5IGJhcnMgY21k
OiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDM6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA2IHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDM6MDAuMDogQkFSMCBSZUJBUiBzdXBwb3J0ZWQgYWRkciAw
eGZjOTAwMDAwMDAgLT4gMHhmYzkwMDAwMDAwIHNpemUgMHgxMDAwMDAwMCAtPiAweDEwMDAwMDAw
CihYRU4pIDAwMDA6MDM6MDAuMDogQkFSMiBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGZjYTAwMDAw
MDAgLT4gMHhmY2EwMDAwMDAwIHNpemUgMHgyMDAwMDAgLT4gMHgyMDAwMDAKKFhFTikgMDAwMDow
MzowMC4wOiBCQVI1IFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4ZDA2MDAwMDAgLT4gMHhkMDYwMDAw
MCBzaXplIDB4MTAwMDAwIC0+IDB4MTAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMTogbW9kaWZ5IGJh
cnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDQ6MDAuMDogbW9kaWZ5IGJhcnMgY21k
OiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDU6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihY
RU4pIDAwMDA6MDU6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAw
MDA6MDU6MDAuNDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6
MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNjog
bW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMDogbW9kaWZ5
IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMg
Y21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9v
bmx5OiAwCihYRU4pIERvbTAgbWVtb3J5IGFsbG9jYXRpb24gc3RhdHM6CihYRU4pIG9yZGVyICAw
IGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyICAxIGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVy
ICAyIGFsbG9jYXRpb25zOiAzCihYRU4pIG9yZGVyICAzIGFsbG9jYXRpb25zOiAzCihYRU4pIG9y
ZGVyICA0IGFsbG9jYXRpb25zOiA1CihYRU4pIG9yZGVyICA1IGFsbG9jYXRpb25zOiA0CihYRU4p
IG9yZGVyICA2IGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyICA3IGFsbG9jYXRpb25zOiA0CihY
RU4pIG9yZGVyICA4IGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyICA5IGFsbG9jYXRpb25zOiA0
CihYRU4pIG9yZGVyIDEwIGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyIDExIGFsbG9jYXRpb25z
OiA0CihYRU4pIG9yZGVyIDEyIGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyIDEzIGFsbG9jYXRp
b25zOiA0CihYRU4pIG9yZGVyIDE0IGFsbG9jYXRpb25zOiAyCihYRU4pIG9yZGVyIDE1IGFsbG9j
YXRpb25zOiAzCihYRU4pIG9yZGVyIDE2IGFsbG9jYXRpb25zOiAzCihYRU4pIG9yZGVyIDE3IGFs
bG9jYXRpb25zOiAzCihYRU4pIG9yZGVyIDE4IGFsbG9jYXRpb25zOiAzCihYRU4pIEVMRjogcGhk
cjogcGFkZHI9MHgxMDAwMDAwIG1lbXN6PTB4MTk1ZjY2OAooWEVOKSBFTEY6IHBoZHI6IHBhZGRy
PTB4MmEwMDAwMCBtZW1zej0weDk2ZjAwMAooWEVOKSBFTEY6IHBoZHI6IHBhZGRyPTB4MzM2ZjAw
MCBtZW1zej0weDM5MDAwCihYRU4pIEVMRjogcGhkcjogcGFkZHI9MHgzM2E4MDAwIG1lbXN6PTB4
MTQ1ODAwMAooWEVOKSBFTEY6IG1lbW9yeTogMHgxMDAwMDAwIC0+IDB4NDgwMDAwMAooWEVOKSBF
TEY6IG5vdGU6IFBIWVMzMl9SRUxPQyBhbGlnbjogMHgyMDAwMDAgbWluOiAweDEwMDAwMDAgbWF4
OiAweDNmZmZmZmZmCihYRU4pIEVMRjogbm90ZTogUEhZUzMyX0VOVFJZID0gMHgxMDAwYTIwCihY
RU4pIEVMRjogbm90ZTogR1VFU1RfT1MgPSAibGludXgiCihYRU4pIEVMRjogbm90ZTogR1VFU1Rf
VkVSU0lPTiA9ICIyLjYiCihYRU4pIEVMRjogbm90ZTogWEVOX1ZFUlNJT04gPSAieGVuLTMuMCIK
KFhFTikgRUxGOiBub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZmODAwMDAwMDAKKFhFTikgRUxG
OiBub3RlOiBJTklUX1AyTSA9IDB4ODAwMDAwMDAwMAooWEVOKSBFTEY6IG5vdGU6IEVOVFJZID0g
MHhmZmZmZmZmZjgzM2JjNjIwCihYRU4pIEVMRjogbm90ZTogRkVBVFVSRVMgPSAiIXdyaXRhYmxl
X3BhZ2VfdGFibGVzIgooWEVOKSBFTEY6IG5vdGU6IFBBRV9NT0RFID0gInllcyIKKFhFTikgRUxG
OiBub3RlOiBMMV9NRk5fVkFMSUQKKFhFTikgRUxGOiBub3RlOiBNT0RfU1RBUlRfUEZOID0gMHgx
CihYRU4pIEVMRjogbm90ZTogUEFERFJfT0ZGU0VUID0gMAooWEVOKSBFTEY6IG5vdGU6IEhZUEVS
Q0FMTF9QQUdFID0gMHhmZmZmZmZmZjgxZjM4MDAwCihYRU4pIEVMRjogbm90ZTogU1VQUE9SVEVE
X0ZFQVRVUkVTID0gMHg4ODAxCihYRU4pIEVMRjogbm90ZTogTE9BREVSID0gImdlbmVyaWMiCihY
RU4pIEVMRjogbm90ZTogU1VTUEVORF9DQU5DRUwgPSAweDEKKFhFTikgRUxGOiBGb3VuZCBQVkgg
aW1hZ2UKKFhFTikgRUxGOiBhZGRyZXNzZXM6CihYRU4pICAgICB2aXJ0X2Jhc2UgICAgICAgID0g
MHgwCihYRU4pICAgICBlbGZfcGFkZHJfb2Zmc2V0ID0gMHgwCihYRU4pICAgICB2aXJ0X29mZnNl
dCAgICAgID0gMHgwCihYRU4pICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHgxMDAwMDAwCihYRU4p
ICAgICB2aXJ0X2tlbmQgICAgICAgID0gMHg0ODAwMDAwCihYRU4pICAgICB2aXJ0X2VudHJ5ICAg
ICAgID0gMHgxMDAwYTIwCihYRU4pICAgICBwMm1fYmFzZSAgICAgICAgID0gMHg4MDAwMDAwMDAw
CihYRU4pIEVMRjogcGhkciAwIGF0IDB4MTAwMDAwMCAtPiAweDI5NWY2NjgKKFhFTikgRUxGOiBw
aGRyIDEgYXQgMHgyYTAwMDAwIC0+IDB4MzM2ZjAwMAooWEVOKSBFTEY6IHBoZHIgMiBhdCAweDMz
NmYwMDAgLT4gMHgzM2E4MDAwCihYRU4pIEVMRjogcGhkciAzIGF0IDB4MzNhODAwMCAtPiAweDQ4
MDAwMDAKKFhFTikgRG9tMCBtZW1vcnkgbWFwOgooWEVOKSAgWzAwMDAwMDAwMDAwMDAwMDAsIDAw
MDAwMDAwMDAwOWVmZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDAwMDA5ZjAwMCwgMDAwMDAw
MDAwMDBiZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwMDAxMDAwMDAsIDAwMDAwMDAw
MDlhZmZmZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDAwOWIwMDAwMCwgMDAwMDAwMDAwOWRm
ZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwMDllMDAwMDAsIDAwMDAwMDAwMDllZmZm
ZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDAwOWYwMDAwMCwgMDAwMDAwMDAwOWYwZmZmZl0g
KEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwMDlmMTAwMDAsIDAwMDAwMDAwYmI0NjVmZmZdICh1
c2FibGUpCihYRU4pICBbMDAwMDAwMDBiYjQ2NjAwMCwgMDAwMDAwMDBiYzU2NWZmZl0gKHJlc2Vy
dmVkKQooWEVOKSAgWzAwMDAwMDAwYmM1NjYwMDAsIDAwMDAwMDAwYzg3N2VmZmZdICh1c2FibGUp
CihYRU4pICBbMDAwMDAwMDBjODc3ZjAwMCwgMDAwMDAwMDBjYWY3ZWZmZl0gKHJlc2VydmVkKQoo
WEVOKSAgWzAwMDAwMDAwY2FmN2YwMDAsIDAwMDAwMDAwY2NmN2VmZmZdIChBQ1BJIE5WUykKKFhF
TikgIFswMDAwMDAwMGNjZjdmMDAwLCAwMDAwMDAwMGNjZmZlZmZmXSAoQUNQSSBkYXRhKQooWEVO
KSAgWzAwMDAwMDAwY2NmZmYwMDAsIDAwMDAwMDAwY2NmZmZkZDddICh1c2FibGUpCihYRU4pICBb
MDAwMDAwMDBjY2ZmZmRkOCwgMDAwMDAwMDBjY2ZmZmVlZl0gKEFDUEkgZGF0YSkKKFhFTikgIFsw
MDAwMDAwMGNkMDAwMDAwLCAwMDAwMDAwMGNkZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAw
MDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBmN2ZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAw
MDAwZmRlMDAwMDAsIDAwMDAwMDAwZmRlZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAw
MGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAxZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBm
ZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVj
MjAwMDAsIDAwMDAwMDAwZmVjMjBmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDgw
MDAwLCAwMDAwMDAwMGZlZDgxZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWRjMDAw
MCwgMDAwMDAwMDBmZWRkZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVlMDAwMDAs
IDAwMDAwMDAwZmVlMDBmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZmMDAwMDAwLCAw
MDAwMDAwMGZmZjFmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAw
MDAwMDFiOGNmMGZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMWI4Y2YxMDAwLCAwMDAwMDAw
ODBmMzNmZmZmXSAodW51c2FibGUpCihYRU4pICBbMDAwMDAwMDgwZjM0MDAwMCwgMDAwMDAwMDgy
ZmZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSBJbml0aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hv
bGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4KKFhFTikgU2NydWJiaW5nIEZyZWUgUkFNIGluIGJhY2tn
cm91bmQKKFhFTikgU3RkLiBMb2dsZXZlbDogQWxsCihYRU4pIEd1ZXN0IExvZ2xldmVsOiBBbGwK
KFhFTikgWGVuIGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNvbGUuCihYRU4pICoqKiBTZXJpYWwg
aW5wdXQgdG8gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0Y2ggaW5wdXQp
CihYRU4pIEZyZWVkIDY1MmtCIGluaXQgbWVtb3J5CihYRU4pIGQwdjA6IHVwY2FsbCB2ZWN0b3Ig
ZjMKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMC4wCihYRU4pIFBDSSBhZGQgZGV2aWNl
IDAwMDA6MDA6MDAuMgooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAxLjAKKFhFTikgMDAw
MDowMDowMS4xOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDow
MS4xOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBtb2RpZnkgYmFycyBjbWQ6IDcg
cm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMS4xCihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6MDA6MDIuMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNt
ZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyBy
b21fb25seTogMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25s
eTogMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAw
MDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRk
IGRldmljZSAwMDAwOjAwOjAyLjQKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowOC4wCihY
RU4pIDAwMDA6MDA6MDguMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAw
MDA6MDA6MDguMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6
MDguMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MDguMTog
bW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MDguMTogbW9kaWZ5
IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MDguMTogbW9kaWZ5IGJhcnMg
Y21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDguMQooWEVO
KSAwMDAwOjAwOjA4LjI6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAw
OjAwOjA4LjI6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4
LjI6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4LjI6IG1v
ZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4LjI6IG1vZGlmeSBi
YXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4LjI6IG1vZGlmeSBiYXJzIGNt
ZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA4LjIKKFhFTikg
MDAwMDowMDoxNC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQwMCByb21fb25seTogMAooWEVOKSAwMDAw
OjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNtZDogNDAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6
MTQuMDogbW9kaWZ5IGJhcnMgY21kOiA0MDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDoxNC4w
OiBtb2RpZnkgYmFycyBjbWQ6IDQwMyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6IG1v
ZGlmeSBiYXJzIGNtZDogNDAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMDogbW9kaWZ5
IGJhcnMgY21kOiA0MDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDoxNC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDQwMCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNt
ZDogNDAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMDogbW9kaWZ5IGJhcnMgY21kOiA0
MDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDoxNC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQwMyBy
b21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNtZDogNDAwIHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMDogbW9kaWZ5IGJhcnMgY21kOiA0MDMgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowMDoxNC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQwMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNtZDogNDAzIHJvbV9vbmx5OiAwCihYRU4p
IFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTQuMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBi
YXJzIGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNt
ZDogZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyBy
b21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25s
eTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25seTogMAooWEVOKSAw
MDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAw
OjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6
IG1vZGlmeSBiYXJzIGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlm
eSBiYXJzIGNtZDogZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJz
IGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDog
ZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyByb21f
b25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25seTog
MAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjMKKFhFTikgUENJIGFkZCBkZXZpY2Ug
MDAwMDowMDoxOC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguMQooWEVOKSBQQ0kg
YWRkIGRldmljZSAwMDAwOjAwOjE4LjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4z
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguNAooWEVOKSBQQ0kgYWRkIGRldmljZSAw
MDAwOjAwOjE4LjUKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC42CihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6MDA6MTguNwooWEVOKSAwMDAwOjAxOjAwLjA6IG1vZGlmeSBiYXJzIGNt
ZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IHdyaXRlIEJBUjAgdmFsOiAweGZm
ZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjAxOjAwLjA6IHdyaXRl
IEJBUjAgdmFsOiAweGQwODAwMDAwIEJBUjAgYWRkcmVzczogMHhkMDgwMDAwMAooWEVOKSAwMDAw
OjAxOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAw
LjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IG1v
ZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IG1vZGlmeSBi
YXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IG1vZGlmeSBiYXJzIGNt
ZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAxOjAwLjAKKFhFTikg
MDAwMDowMjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
MjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4w
OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4wOiBtb2Rp
ZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6
IDcgcm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMjowMC4wCihYRU4pIDAw
MDA6MDM6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDM6
MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZjZmZmZmZm
ZjAKKFhFTikgMDAwMDowMzowMC4wOiB3cml0ZSBCQVIwIHZhbDogMHg5MDAwMDAwMCBCQVIwIGFk
ZHJlc3M6IDB4ZmM5MDAwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdyaXRlIEJBUjAgdmFsOiAw
eGZmZmZmZmZmIEJBUjEgYWRkcmVzczogMHhmZmZmZmZmZjkwMDAwMDAwCihYRU4pIDAwMDA6MDM6
MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4ZmMgQkFSMSBhZGRyZXNzOiAweGZjOTAwMDAwMDAKKFhF
TikgMDAwMDowMzowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDYgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowMzowMC4wOiBCQVIwIFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4ZmM5MDAwMDAwMCAtPiAweGZj
OTAwMDAwMDAgc2l6ZSAweDEwMDAwMDAwIC0+IDB4MTAwMDAwMDAKKFhFTikgMDAwMDowMzowMC4w
OiBCQVIyIFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4ZmNhMDAwMDAwMCAtPiAweGZjYTAwMDAwMDAg
c2l6ZSAweDIwMDAwMCAtPiAweDIwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjUgUmVCQVIg
c3VwcG9ydGVkIGFkZHIgMHhkMDYwMDAwMCAtPiAweGQwNjAwMDAwIHNpemUgMHgxMDAwMDAgLT4g
MHgxMDAwMDAKKFhFTikgMDAwMDowMzowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowMzowMC4wOiB3cml0ZSBCQVIyIHZhbDogMHhmZmZmZmZmMCBCQVIyIGFk
ZHJlc3M6IDB4ZmNmZmZmZmZmMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdyaXRlIEJBUjIgdmFsOiAw
eGEwMDAwMDAwIEJBUjIgYWRkcmVzczogMHhmY2EwMDAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDog
d3JpdGUgQkFSMiB2YWw6IDB4ZmZmZmZmZmYgQkFSMyBhZGRyZXNzOiAweGZmZmZmZmZmYTAwMDAw
MDAKKFhFTikgMDAwMDowMzowMC4wOiB3cml0ZSBCQVIyIHZhbDogMHhmYyBCQVIzIGFkZHJlc3M6
IDB4ZmNhMDAwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNiByb21f
b25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhm
YzkwMDAwMDAwIC0+IDB4ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAwMDAwMAoo
WEVOKSAwMDAwOjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2EwMDAwMDAw
IC0+IDB4ZmNhMDAwMDAwMCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAwMDA6MDM6
MDAuMDogQkFSNSBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2MDAwMDAg
c2l6ZSAweDEwMDAwMCAtPiAweDEwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJz
IGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDog
NiByb21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFk
ZHIgMHhmYzkwMDAwMDAwIC0+IDB4ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAw
MDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2Ew
MDAwMDAwIC0+IDB4ZmNhMDAwMDAwMCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAw
MDA6MDM6MDAuMDogQkFSNSBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2
MDAwMDAgc2l6ZSAweDEwMDAwMCAtPiAweDEwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlm
eSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdyaXRlIEJBUjUg
dmFsOiAweGZmZmZmZmYwIEJBUjUgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjAzOjAw
LjA6IHdyaXRlIEJBUjUgdmFsOiAweGQwNjAwMDAwIEJBUjUgYWRkcmVzczogMHhkMDYwMDAwMAoo
WEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNiByb21fb25seTogMAooWEVOKSAw
MDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmYzkwMDAwMDAwIC0+IDB4
ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAwMDAwMAooWEVOKSAwMDAwOjAzOjAw
LjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2EwMDAwMDAwIC0+IDB4ZmNhMDAwMDAw
MCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDogQkFSNSBSZUJB
UiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2MDAwMDAgc2l6ZSAweDEwMDAwMCAt
PiAweDEwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25s
eTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNiByb21fb25seTogMAoo
WEVOKSAwMDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmYzkwMDAwMDAw
IC0+IDB4ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAwMDAwMAooWEVOKSAwMDAw
OjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2EwMDAwMDAwIC0+IDB4ZmNh
MDAwMDAwMCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDogQkFS
NSBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2MDAwMDAgc2l6ZSAweDEw
MDAwMCAtPiAweDEwMDAwMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAzOjAwLjAKKFhFTikg
MDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
MzowMC4xOiB3cml0ZSBCQVIwIHZhbDogMHhmZmZmZmZmMCBCQVIwIGFkZHJlc3M6IDB4ZmZmZmZm
ZjAKKFhFTikgMDAwMDowMzowMC4xOiB3cml0ZSBCQVIwIHZhbDogMHhkMDcwMDAwMCBCQVIwIGFk
ZHJlc3M6IDB4ZDA3MDAwMDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMg
cm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29u
bHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAK
KFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikg
MDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
MzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4x
OiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2Rp
ZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFy
cyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6
IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhF
TikgUENJIGFkZCBkZXZpY2UgMDAwMDowMzowMC4xCihYRU4pIDAwMDA6MDQ6MDAuMDogbW9kaWZ5
IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDQ6MDAuMDogd3JpdGUgQkFSMCB2
YWw6IDB4ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDQ6MDAu
MDogd3JpdGUgQkFSMCB2YWw6IDB4ZDA1MDAwMDAgQkFSMCBhZGRyZXNzOiAweGQwNTAwMDAwCihY
RU4pIDAwMDA6MDQ6MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZmYgQkFSMSBhZGRyZXNz
OiAweGZmZmZmZmZmZDA1MDAwMDAKKFhFTikgMDAwMDowNDowMC4wOiB3cml0ZSBCQVIwIHZhbDog
MCBCQVIxIGFkZHJlc3M6IDB4ZDA1MDAwMDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6
IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNDowMC4wOiB3cml0ZSBCQVI0IHZhbDogMHhmZmZmZmZmMCBCQVI0IGFkZHJlc3M6IDB4ZmZm
ZmZmZjAKKFhFTikgMDAwMDowNDowMC4wOiB3cml0ZSBCQVI0IHZhbDogMHhkMDUwNDAwMCBCQVI0
IGFkZHJlc3M6IDB4ZDA1MDQwMDAKKFhFTikgMDAwMDowNDowMC4wOiB3cml0ZSBCQVI0IHZhbDog
MHhmZmZmZmZmZiBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZmZkMDUwNDAwMAooWEVOKSAwMDAwOjA0
OjAwLjA6IHdyaXRlIEJBUjQgdmFsOiAwIEJBUjUgYWRkcmVzczogMHhkMDUwNDAwMAooWEVOKSAw
MDAwOjA0OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjA0
OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjA0OjAwLjA6
IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAw
OjA0OjAwLjAKKFhFTikgMDAwMDowNTowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4wOiB3cml0ZSBCQVIwIHZhbDogMHhmZmZmZmZmMCBCQVIwIGFk
ZHJlc3M6IDB4ZmNmZmZmZmZmMAooWEVOKSAwMDAwOjA1OjAwLjA6IHdyaXRlIEJBUjAgdmFsOiAw
eDcwMDAwMDAwIEJBUjAgYWRkcmVzczogMHhmYzcwMDAwMDAwCihYRU4pIDAwMDA6MDU6MDAuMDog
d3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZmYgQkFSMSBhZGRyZXNzOiAweGZmZmZmZmZmNzAwMDAw
MDAKKFhFTikgMDAwMDowNTowMC4wOiB3cml0ZSBCQVIwIHZhbDogMHhmYyBCQVIxIGFkZHJlc3M6
IDB4ZmM3MDAwMDAwMAooWEVOKSAwMDAwOjA1OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNyByb21f
b25seTogMAooWEVOKSAwMDAwOjA1OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTog
MAooWEVOKSAwMDAwOjA1OjAwLjA6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZmZmYwIEJBUjIgYWRk
cmVzczogMHhmY2ZmZmZmZmYwCihYRU4pIDAwMDA6MDU6MDAuMDogd3JpdGUgQkFSMiB2YWw6IDB4
ODAwMDAwMDAgQkFSMiBhZGRyZXNzOiAweGZjODAwMDAwMDAKKFhFTikgMDAwMDowNTowMC4wOiB3
cml0ZSBCQVIyIHZhbDogMHhmZmZmZmZmZiBCQVIzIGFkZHJlc3M6IDB4ZmZmZmZmZmY4MDAwMDAw
MAooWEVOKSAwMDAwOjA1OjAwLjA6IHdyaXRlIEJBUjIgdmFsOiAweGZjIEJBUjMgYWRkcmVzczog
MHhmYzgwMDAwMDAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAw
CihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4p
IDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6
MDU6MDAuMDogd3JpdGUgQkFSNSB2YWw6IDB4ZmZmZmZmZjAgQkFSNSBhZGRyZXNzOiAweGZmZmZm
ZmYwCihYRU4pIDAwMDA6MDU6MDAuMDogd3JpdGUgQkFSNSB2YWw6IDB4ZDA0MDAwMDAgQkFSNSBh
ZGRyZXNzOiAweGQwNDAwMDAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAw
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1v
ZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IHdyaXRlIEJB
UjAgdmFsOiAweGZmZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA1
OjAwLjE6IHdyaXRlIEJBUjAgdmFsOiAweGQwNGM4MDAwIEJBUjAgYWRkcmVzczogMHhkMDRjODAw
MAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVO
KSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAw
OjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAw
LjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1v
ZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBi
YXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNt
ZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCBy
b21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25s
eTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAw
MDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1
OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjA1OjAwLjEKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTow
MC4yOiB3cml0ZSBCQVIyIHZhbDogMHhmZmZmZmZmMCBCQVIyIGFkZHJlc3M6IDB4ZmZmZmZmZjAK
KFhFTikgMDAwMDowNTowMC4yOiB3cml0ZSBCQVIyIHZhbDogMHhkMDMwMDAwMCBCQVIyIGFkZHJl
c3M6IDB4ZDAzMDAwMDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTow
MC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4yOiB3
cml0ZSBCQVI1IHZhbDogMHhmZmZmZmZmMCBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikg
MDAwMDowNTowMC4yOiB3cml0ZSBCQVI1IHZhbDogMHhkMDRjYzAwMCBCQVI1IGFkZHJlc3M6IDB4
ZDA0Y2MwMDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgUENJ
IGFkZCBkZXZpY2UgMDAwMDowNTowMC4yCihYRU4pIDAwMDA6MDU6MDAuMzogbW9kaWZ5IGJhcnMg
Y21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMzogd3JpdGUgQkFSMCB2YWw6IDB4
ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDU6MDAuMzogd3Jp
dGUgQkFSMCB2YWw6IDB4ZDAyMDAwMDAgQkFSMCBhZGRyZXNzOiAweGQwMjAwMDAwCihYRU4pIDAw
MDA6MDU6MDAuMzogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZmYgQkFSMSBhZGRyZXNzOiAweGZm
ZmZmZmZmZDAyMDAwMDAKKFhFTikgMDAwMDowNTowMC4zOiB3cml0ZSBCQVIwIHZhbDogMCBCQVIx
IGFkZHJlc3M6IDB4ZDAyMDAwMDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6
IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTow
MC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcg
cm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNTowMC4zCihYRU4pIDAwMDA6
MDU6MDAuNDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAu
NDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihY
RU4pIDAwMDA6MDU6MDAuNDogd3JpdGUgQkFSMCB2YWw6IDB4ZDAxMDAwMDAgQkFSMCBhZGRyZXNz
OiAweGQwMTAwMDAwCihYRU4pIDAwMDA6MDU6MDAuNDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZm
ZmYgQkFSMSBhZGRyZXNzOiAweGZmZmZmZmZmZDAxMDAwMDAKKFhFTikgMDAwMDowNTowMC40OiB3
cml0ZSBCQVIwIHZhbDogMCBCQVIxIGFkZHJlc3M6IDB4ZDAxMDAwMDAKKFhFTikgMDAwMDowNTow
MC40OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDcg
cm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29u
bHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAK
KFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikg
MDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
NTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40
OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAw
MDowNTowMC40CihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZjAgQkFSMCBh
ZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDU6MDAuNTogd3JpdGUgQkFSMCB2YWw6IDB4
ZDA0ODAwMDAgQkFSMCBhZGRyZXNzOiAweGQwNDgwMDAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9k
aWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJh
cnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21k
OiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihY
RU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAw
MDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6
MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTog
bW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5
IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMg
Y21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuNQooWEVOKSAwMDAw
OjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAw
LjY6IHdyaXRlIEJBUjAgdmFsOiAweGZmZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAoo
WEVOKSAwMDAwOjA1OjAwLjY6IHdyaXRlIEJBUjAgdmFsOiAweGQwNGMwMDAwIEJBUjAgYWRkcmVz
czogMHhkMDRjMDAwMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21f
b25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTog
MAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVO
KSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAw
OjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAw
LjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1v
ZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBi
YXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNt
ZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCBy
b21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25s
eTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSBQ
Q0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjYKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6
IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjow
MC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiB3cml0ZSBCQVI1IHZhbDogMHhm
ZmZmZmZmMCBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikgMDAwMDowNjowMC4wOiB3cml0
ZSBCQVI1IHZhbDogMHhkMDA4NTAwMCBCQVI1IGFkZHJlc3M6IDB4ZDAwODUwMDAKKFhFTikgMDAw
MDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjow
MC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBt
b2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDow
NjowMC4wCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAw
CihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4p
IDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6
MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAu
MTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9k
aWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJh
cnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21k
OiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihY
RU4pIDAwMDA6MDY6MDAuMTogd3JpdGUgQkFSNSB2YWw6IDB4ZmZmZmZmZjAgQkFSNSBhZGRyZXNz
OiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDY6MDAuMTogd3JpdGUgQkFSNSB2YWw6IDB4ZDAwODQw
MDAgQkFSNSBhZGRyZXNzOiAweGQwMDg0MDAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJh
cnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21k
OiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJv
bV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDY6MDAuMQooWEVOKSAwMDAwOjA2
OjAwLjI6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjI6
IHdyaXRlIEJBUjAgdmFsOiAweGZmZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVO
KSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjAgdmFsOiAweGQwMDYwMDAwIEJBUjAgYWRkcmVzczog
MHhkMDA2MDAwMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25s
eTogMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjEgdmFsOiAweGZmZmZmZmYwIEJBUjEgYWRkcmVz
czogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjEgdmFsOiAweGQwMDQw
MDAwIEJBUjEgYWRkcmVzczogMHhkMDA0MDAwMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBi
YXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBiYXJzIGNt
ZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjIgdmFsOiAweGZm
ZmZmZmYwIEJBUjIgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRl
IEJBUjIgdmFsOiAweGQwMDgyMDAwIEJBUjIgYWRkcmVzczogMHhkMDA4MjAwMAooWEVOKSAwMDAw
OjA2OjAwLjI6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZmZmZmIEJBUjMgYWRkcmVzczogMHhmZmZm
ZmZmZmQwMDgyMDAwCihYRU4pIDAwMDA6MDY6MDAuMjogd3JpdGUgQkFSMiB2YWw6IDAgQkFSMyBh
ZGRyZXNzOiAweGQwMDgyMDAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAw
CihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4p
IDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6
MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAu
MjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDY6MDAuMgooWEVOKSAwMDAwOjA2OjAwLjM6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25s
eTogMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjAgdmFsOiAweGZmZmZmZmYwIEJBUjAg
YWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjAgdmFsOiAw
eGQwMDIwMDAwIEJBUjAgYWRkcmVzczogMHhkMDAyMDAwMAooWEVOKSAwMDAwOjA2OjAwLjM6IG1v
ZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjM6IG1vZGlmeSBi
YXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjEgdmFs
OiAweGZmZmZmZmYwIEJBUjEgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjM6
IHdyaXRlIEJBUjEgdmFsOiAweGQwMDAwMDAwIEJBUjEgYWRkcmVzczogMHhkMDAwMDAwMAooWEVO
KSAwMDAwOjA2OjAwLjM6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAw
OjA2OjAwLjM6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAw
LjM6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZmZmYwIEJBUjIgYWRkcmVzczogMHhmZmZmZmZmMAoo
WEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjIgdmFsOiAweGQwMDgwMDAwIEJBUjIgYWRkcmVz
czogMHhkMDA4MDAwMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZm
ZmZmIEJBUjMgYWRkcmVzczogMHhmZmZmZmZmZmQwMDgwMDAwCihYRU4pIDAwMDA6MDY6MDAuMzog
d3JpdGUgQkFSMiB2YWw6IDAgQkFSMyBhZGRyZXNzOiAweGQwMDgwMDAwCihYRU4pIDAwMDA6MDY6
MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzog
bW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5
IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMg
Y21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAw
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDY6MDAuMwooWEVOKSBhcmNoL3g4Ni9odm0vc3Zt
L3N2bS5jOjE4ODk6ZDB2MCBSRE1TUiAweGMwMDEwMDU4IHVuaW1wbGVtZW50ZWQKKFhFTikgYXJj
aC94ODYvaHZtL3N2bS9zdm0uYzoxODg5OmQwdjAgUkRNU1IgMHhjMDAxMDI5YiB1bmltcGxlbWVu
dGVkCihYRU4pIGFyY2gveDg2L2h2bS9zdm0vc3ZtLmM6MTg4OTpkMHYwIFJETVNSIDB4YzAwMTAy
OWEgdW5pbXBsZW1lbnRlZAooWEVOKSBjb21tb24vZ3JhbnRfdGFibGUuYzoxOTA5OmQwdjMgRXhw
YW5kaW5nIGQwIGdyYW50IHRhYmxlIGZyb20gMSB0byAyIGZyYW1lcwooWEVOKSAwMDAwOjAzOjAw
LjA6IG1vZGlmeSBiYXJzIGNtZDogNSByb21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdy
aXRlIEJBUjAgdmFsOiAwIEJBUjAgYWRkcmVzczogMHhmYzAwMDAwMDAwCihYRU4pIDAwMDA6MDM6
MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4YSBCQVIxIGFkZHJlc3M6IDB4YTAwMDAwMDAwCihYRU4p
IDAwMDA6MDM6MDAuMDogd3JpdGUgQkFSMiB2YWw6IDAgQkFSMiBhZGRyZXNzOiAweGZjMDAwMDAw
MDAKKFhFTikgMDAwMDowMzowMC4wOiB3cml0ZSBCQVIyIHZhbDogMHg5IEJBUjMgYWRkcmVzczog
MHg5MDAwMDAwMDAKKFhFTikgMDAwMDowMzowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29u
bHk6IDAKKFhFTikgMDAwMDowMzowMC4wOiBCQVIwIFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4YTAw
MDAwMDAwIC0+IDB4YTAwMDAwMDAwIHNpemUgMHgxMDAwMDAwMCAtPiAweDIwMDAwMDAwMAooWEVO
KSAwMDAwOjAzOjAwLjA6IGRldGVjdGVkIEJBUiMwIHNpemUgY2hhbmdlICgweDEwMDAwMDAwIC0+
IDB4MjAwMDAwMDAwKQooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFk
ZHIgMHg5MDAwMDAwMDAgLT4gMHg5MDAwMDAwMDAgc2l6ZSAweDIwMDAwMCAtPiAweDIwMDAwMAoo
WEVOKSAwMDAwOjAzOjAwLjA6IEJBUjUgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhkMDYwMDAwMCAt
PiAweGQwNjAwMDAwIHNpemUgMHgxMDAwMDAgLT4gMHgxMDAwMDAKKFhFTikgZDB2NSAwMDAwOjAz
OjAwLjA6IGlnbm9yZWQgQkFSIDMgd3JpdGUgd2hpbGUgbWFwcGVkCihYRU4pIGQwdjUgMDAwMDow
MzowMC4wOiBpZ25vcmVkIEJBUiAzIHdyaXRlIHdoaWxlIG1hcHBlZAooWEVOKSBkMHY1IDAwMDA6
MDM6MDAuMDogaWdub3JlZCBCQVIgMyB3cml0ZSB3aGlsZSBtYXBwZWQKKFhFTikgZDB2NSAwMDAw
OjAzOjAwLjA6IGlnbm9yZWQgQkFSIDMgd3JpdGUgd2hpbGUgbWFwcGVkCihYRU4pIGQwdjUgMDAw
MDowMzowMC4wOiBpZ25vcmVkIEJBUiAzIHdyaXRlIHdoaWxlIG1hcHBlZAooWEVOKSBkMHY1IDAw
MDA6MDM6MDAuMDogaWdub3JlZCBCQVIgMyB3cml0ZSB3aGlsZSBtYXBwZWQKKFhFTikgZDB2NSAw
MDAwOjAzOjAwLjA6IGlnbm9yZWQgQkFSIDMgd3JpdGUgd2hpbGUgbWFwcGVkCihYRU4pIGQwdjUg
MDAwMDowMzowMC4wOiBpZ25vcmVkIEJBUiAzIHdyaXRlIHdoaWxlIG1hcHBlZAooWEVOKSBkMHY1
IDAwMDA6MDM6MDAuMDogaWdub3JlZCBCQVIgMyB3cml0ZSB3aGlsZSBtYXBwZWQKKFhFTikgZDB2
NSAwMDAwOjAzOjAwLjA6IGlnbm9yZWQgQkFSIDMgd3JpdGUgd2hpbGUgbWFwcGVkCihYRU4pIGQw
djUgMDAwMDowMzowMC4wOiBpZ25vcmVkIEJBUiAzIHdyaXRlIHdoaWxlIG1hcHBlZAooWEVOKSBk
MHY1IDAwMDA6MDM6MDAuMDogaWdub3JlZCBCQVIgMSB3cml0ZSB3aGlsZSBtYXBwZWQKKFhFTikg
ZDB2NSAwMDAwOjAzOjAwLjA6IGlnbm9yZWQgQkFSIDEgd3JpdGUgd2hpbGUgbWFwcGVkCihYRU4p
IGQwdjUgMDAwMDowMzowMC4wOiBpZ25vcmVkIEJBUiAxIHdyaXRlIHdoaWxlIG1hcHBlZAooWEVO
KSBkMHY1IDAwMDA6MDM6MDAuMDogaWdub3JlZCBCQVIgMSB3cml0ZSB3aGlsZSBtYXBwZWQKKFhF
TikgZDB2NSAwMDAwOjAzOjAwLjA6IGlnbm9yZWQgQkFSIDEgd3JpdGUgd2hpbGUgbWFwcGVkCihY
RU4pIGQwdjUgMDAwMDowMzowMC4wOiBpZ25vcmVkIEJBUiAxIHdyaXRlIHdoaWxlIG1hcHBlZAoo
WEVOKSBkMHY1IDAwMDA6MDM6MDAuMDogaWdub3JlZCBCQVIgMSB3cml0ZSB3aGlsZSBtYXBwZWQK
KFhFTikgZDB2NSAwMDAwOjAzOjAwLjA6IGlnbm9yZWQgQkFSIDEgd3JpdGUgd2hpbGUgbWFwcGVk
CihYRU4pIGQwdjUgMDAwMDowMzowMC4wOiBpZ25vcmVkIEJBUiAxIHdyaXRlIHdoaWxlIG1hcHBl
ZAooWEVOKSBkMHY1IDAwMDA6MDM6MDAuMDogaWdub3JlZCBCQVIgMSB3cml0ZSB3aGlsZSBtYXBw
ZWQKKFhFTikgZDB2NSAwMDAwOjAzOjAwLjA6IGlnbm9yZWQgQkFSIDEgd3JpdGUgd2hpbGUgbWFw
cGVkCg==

--_002_BL1PR12MB5849FC514034CDFC2F68BA6FE7212BL1PR12MB5849namp_--


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 08:07:04 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 08:07:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840938.1256454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDfja-00026m-OA; Wed, 20 Nov 2024 08:06:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840938.1256454; Wed, 20 Nov 2024 08:06: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 1tDfja-00026f-LT; Wed, 20 Nov 2024 08:06:46 +0000
Received: by outflank-mailman (input) for mailman id 840938;
 Wed, 20 Nov 2024 08:06: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=E1p6=SP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDfjZ-00026Z-1H
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 08:06:45 +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 5f07beec-a716-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 09:06:39 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-aa1e6ecd353so313340966b.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 00:06:40 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cff453e53fsm526737a12.61.2024.11.20.00.06.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Nov 2024 00:06: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: 5f07beec-a716-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVmMDdiZWVjLWE3MTYtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDg5OTk5Ljk1ODUyNywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732089999; x=1732694799; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=tRXxDYXtttUmygedL/iA4y/BzhFVMPguzG8BHAYhXBY=;
        b=FdpM9IP9e65zO8XQ1F+nakFEjjG9TYI9QCVMStbgsyDdOPmKSelPMR0nYdPZTKxMAx
         mQYZx4/UXifaveCh+K1KheHDbkuF1fl91t+DIXewmSK0tyZ6iSC1HL3oSMn+BMfLFIrq
         sR/ivtuPKA+k3MED6qj5f6E3ZYBdBOpRA+088=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732089999; x=1732694799;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=tRXxDYXtttUmygedL/iA4y/BzhFVMPguzG8BHAYhXBY=;
        b=R4OVybiB+VpseihDpW96+YFziHTESYh1TZU3h9PwXFZUNugq5RvB6KuMzuNf0CYcH3
         o6YPV7GzxiyCRD29Y1bC7mLiIIJfzB00QGKU6ka+Fbe/+71X32LxTmbdFWZcZEdTAG6G
         Dw0rDnaQn1os7w0J+Izsw84IspP/rdfvqWvi+4l6BzuxJI5509Va9MJXLgxGGjlMclRZ
         G/uzt0W1Vu4zwn3k7XcO0TCcFmGmeT+SV+cQ1oQwqeztIMg3n9udXwlmod0hTwY/bd/U
         YmCOBosFOnKNboS//3DX+LNGsnKRZbu3vqz5n4pmHIDLvNm/fbzbVeiH1VIIzNhlJtdn
         TZ+A==
X-Forwarded-Encrypted: i=1; AJvYcCU9U9dIwH1wJzT2f5y4bBlb7yV1EV/laTr8n+iUSzikekCmU97cvPRHq8D2NhSRH/gHQJqb1X77mUc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxU0N6JyEoM7ojdjhCIBz0osmPTTAOYEIknTWjE8LKnMSilaEZa
	4RHfQt8Ql9XHGAIZTIs4byXJICgM7dOfjS1PgVASqTkLXs9+fuSsE9KYQm6vdAxBpjBVl0xlvw4
	C
X-Google-Smtp-Source: AGHT+IEoK5gfY81dj9x21Eh+PyoFlR/7y/ec2B//6IqcDJp0Xq5R/nQbcwx1naLdS+vi4sGy6PyiuA==
X-Received: by 2002:a05:6402:3511:b0:5ce:de19:472a with SMTP id 4fb4d7f45d1cf-5cff4c3474emr1452537a12.16.1732089999476;
        Wed, 20 Nov 2024 00:06:39 -0800 (PST)
Date: Wed, 20 Nov 2024 09:06:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <Zz2YjdWyyVgu1xhl@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzsUL3dnjl5x0-si@macbook>
 <BL1PR12MB5849F6F7A4E86E0209AB152AE7202@BL1PR12MB5849.namprd12.prod.outlook.com>
 <5262adaf-2ff7-47ea-8c13-c544b31e4115@suse.com>
 <BL1PR12MB5849199069AA4C9F3837031CE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849199069AA4C9F3837031CE7212@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Nov 20, 2024 at 02:26:31AM +0000, Chen, Jiqian wrote:
> On 2024/11/19 15:44, Jan Beulich wrote:
> > On 19.11.2024 08:31, Chen, Jiqian wrote:
> >> On 2024/11/18 18:17, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>> +static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
> >>>> +                                      unsigned int reg,
> >>>> +                                      uint32_t val,
> >>>> +                                      void *data)
> >>>> +{
> >>>> +    uint32_t ctrl, index;
> >>>
> >>> index should better be unsigned int, as it's the BAR index [0, 5], and
> >>> so fits perfectly in an unsigned int.
> >>>
> >>>> +    struct vpci_bar *bars = pdev->vpci->header.bars;
> >>>
> >>> You could pass bars as the data parameter.
> >>>
> >>> Additionally you need to check that memory decoding is not enabled for
> >>> the device, otherwise attempting to change the BAR size will lead to
> >>> the active p2m mappings getting out of sync w.r.t. the new BAR size.
> >>>
> >>>> +
> >>>> +    ctrl = pci_conf_read32(pdev->sbdf, reg);
> >>>> +    if ( ctrl == val )
> >>>> +        return;
> >>>
> >>> I would still carry out the write in this case, as that's what the
> >>> owner of the device requested.
> >>>
> >>>> +
> >>>> +    ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
> >>>> +    if ( ctrl != ( val & ~PCI_REBAR_CTRL_BAR_SIZE ) )
> >>>                      ^ extra space here and         ^ here
> >>>> +        return;
> >>>
> >>> The feature only being exposed to dom0 ATM, I would suggest we allow
> >>> it to write any bits it wants in the control register, as that would
> >>> be what the OS would do when not running as a guest.
> >> But only PCI_REBAR_CTRL_BAR_SIZE bits of REBAR_CTRL register are RW, others are RO.
> >> Is removing the check here fine?
> > 
> > A native kernel would write the full register (with r/o bits simply not
> > getting updated). Hence for Dom0 we ought to do the same, just in case
> > e.g. some future spec declares some other bit(s) writable.
> Got it, thanks for explaining.
> 
> > 
> >>>> +
> >>>> +    index = ctrl & PCI_REBAR_CTRL_BAR_IDX;
> >>>
> >>> Some sanity checking of the BAR index might be good.  At least a check
> >>> that the BAR is of type VPCI_BAR_MEM64_LO or VPCI_BAR_MEM32.
> >> But the information of the BAR that support resizing is from hardware(when init_rebar), that shouldn't have any problems and doesn't need to check the BAR's info.
> > 
> > Right, but also better to avoid confusing ourselves over bogus hardware.
> OK, will add some check for the index range and the bar's type.
> 
> > 
> >>>> +    bars[index].size = (1 << ((val & PCI_REBAR_CTRL_BAR_SIZE) >>
> >>>> +                              PCI_REBAR_CTRL_BAR_SHIFT)) *
> >>>> +                       PCI_REBAR_CTRL_BAR_UNIT;
> >>>
> >>> This would better be a macro in pci_regs.h I think, and you need to
> >>> use 1UL, plus using MASK_EXTR() simplifies it:
> >>>
> >>> PCI_REBAR_CTRL_SIZE(v) (1UL << (MASK_EXTR(v, PCI_REBAR_CTRL_BAR_SIZE) + 20))
> >> OK, another question: Should I need to check the size is allowed by hardware(the PCI_REBAR_CAP_SIZES bits in PCI_REBAR_CAP)?
> > 
> > Probably better to do so, yes. Whether to reject bogus attempts or
> > merely warn about them I'm less certain: It's (see above) Dom0, after
> > all.
> I would like to if the new size is allowed by hardware, then update the size, otherwise do nothing.

I'm of the opinion that dom0 shouldn't be restricted like this: dom0
might have more information than Xen about the device.  Xen might
detect the size as invalid, but dom0 might have extra information (or
quirks) about this specific device that make the size valid.

I would just add a warning.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 08:09:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 08:09:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840945.1256465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDfmc-0002lQ-5L; Wed, 20 Nov 2024 08:09:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840945.1256465; Wed, 20 Nov 2024 08:09: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 1tDfmc-0002lJ-2b; Wed, 20 Nov 2024 08:09:54 +0000
Received: by outflank-mailman (input) for mailman id 840945;
 Wed, 20 Nov 2024 08:09: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=E1p6=SP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDfmb-0002lD-6V
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 08:09:53 +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 d03a42e3-a716-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 09:09:49 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a9ed0ec0e92so562372766b.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 00:09:49 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e046b28sm736601666b.164.2024.11.20.00.09.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Nov 2024 00:09: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: d03a42e3-a716-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQwM2E0MmUzLWE3MTYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDkwMTg5Ljg0MTc2NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732090189; x=1732694989; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Z4BZchq1cHyEbG4XTqODtrWgv2g5y6AN63FP/MyOct4=;
        b=i/DrNk1Mj3XEBVbaFWm16emWb+JX/2LMar2fVy54nfaUgHtveestl+hSLcYotScDZ6
         Ym+p+O7Ezwi6Q5+KoXMT2MfnPEE5FsCRVUTwN+Zr8bOvjf+wL7Dp7s6HkMQLPelKf9WT
         LJt/vhTZ3kPncUcX2/euScDeoCwt+HxIms9T4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732090189; x=1732694989;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Z4BZchq1cHyEbG4XTqODtrWgv2g5y6AN63FP/MyOct4=;
        b=CBnUEALIb49ePlkE0jOpSozGHtBj0pVcYPUGVPHLjWReF6SEzlReHN/qnl9Ttk9eV8
         liFkMGjzZFtReFjLJAIIvd/WuXFjnlrM0V10eIiEYoyGLVodjQHh3TlV4rguENYWyh2T
         xzpxVKbZT5KlATTM8E/lJVP2MRWVQltMMUuXMqPdRbG0toWlla9Xaoy+f7rAG8mAe+6R
         YFxtZ1jg5x9DbZgKH/akUHcm+hpZUHKSOsPkDywXmzrNunp+0cPt/LrDKNAA//BjpDu1
         XyyFzArMSuvO34htx6g9tl48knznM2qQE8YpYpC0UFeYaHG8gthfVdIcuVAEVrQ9gZOt
         OfDg==
X-Gm-Message-State: AOJu0Yx0FkvsBfg41hfhIlcYyxc7r7R8hFKV8wIpqGrEgq+noklXl1Fk
	UwIVhzSmnrQaBHdyN4KSDjsc0UL3M5bbVBdYfMFQwpwPyLtfzpZuycJMNjfTbrI=
X-Google-Smtp-Source: AGHT+IGrCVR21yv0Wrgu4tubEKkGjfRMagzGKrd7m+fwQYvH2m4wd/LBToiZqbGbXTwcNIFkquGeFw==
X-Received: by 2002:a17:906:da81:b0:a9a:85b5:2aba with SMTP id a640c23a62f3a-aa4dd56ae2dmr150625866b.21.1732090189224;
        Wed, 20 Nov 2024 00:09:49 -0800 (PST)
Date: Wed, 20 Nov 2024 09:09:48 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <Zz2ZTD7ugA9MVzjO@macbook>
References: <20241113080027.244240-1-Jiqian.Chen@amd.com>
 <ZzyJu9mrwJhDJClE@macbook>
 <BL1PR12MB58495B6D78F5D63180552BACE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB58495B6D78F5D63180552BACE7212@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Nov 20, 2024 at 02:30:33AM +0000, Chen, Jiqian wrote:
> On 2024/11/19 20:51, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >> +static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
> >> +                                      unsigned int reg,
> >> +                                      uint32_t val,
> >> +                                      void *data)
> >> +{
> >> +    uint32_t ctrl, index;
> >> +    struct vpci_bar *bars = pdev->vpci->header.bars;
> >> +
> >> +    ctrl = pci_conf_read32(pdev->sbdf, reg);
> >> +    if ( ctrl == val )
> >> +        return;
> >> +
> >> +    ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
> >> +    if ( ctrl != ( val & ~PCI_REBAR_CTRL_BAR_SIZE ) )
> >> +        return;
> >> +
> >> +    index = ctrl & PCI_REBAR_CTRL_BAR_IDX;
> >> +    bars[index].size = (1 << ((val & PCI_REBAR_CTRL_BAR_SIZE) >>
> >> +                              PCI_REBAR_CTRL_BAR_SHIFT)) *
> >> +                       PCI_REBAR_CTRL_BAR_UNIT;
> > 
> > One further comment: you also need to reset addr and guest_addr here
> > (possibly by reading them from the BAR register), as the specification
> > states that:
> How about just set them to 0, since the addr will be re-assigned by system and the addr of BAR register is also out of date.

Seems good, I assume Xen would also get 0 as the BAR register address
after having changed the size.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 09:02:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 09:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840957.1256474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDgb6-0002aJ-Qf; Wed, 20 Nov 2024 09:02:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840957.1256474; Wed, 20 Nov 2024 09: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 1tDgb6-0002aC-Ny; Wed, 20 Nov 2024 09:02:04 +0000
Received: by outflank-mailman (input) for mailman id 840957;
 Wed, 20 Nov 2024 09:02: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=E1p6=SP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDgb5-0002a4-0i
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 09:02:03 +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 184bc2dc-a71e-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 10:01:57 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cffb4d7d9dso242267a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 01:01:57 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e048f12sm742539466b.173.2024.11.20.01.01.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Nov 2024 01: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: 184bc2dc-a71e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE4NGJjMmRjLWE3MWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDkzMzE3LjIyNTA0NSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732093316; x=1732698116; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=/LgngNeKwC27cPz0lxxyz3TNcUMAaxfAOjCXqTyQA3s=;
        b=KtYp0TDftxPXokpsTskVpO1bYxb1VB4Ijp3ph8R1nTOiKZM1vc+DQYEhTpPIgRSU1/
         TbQUFkVpakxP+xYTk9E9WkdoGF05NADv1aQEKnIPWKIctXU/7XacNjpyH0hDaTg+vIVU
         bwERycK0H6FLDft5A9LRSUF3gtsEUet87UaMo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732093316; x=1732698116;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=/LgngNeKwC27cPz0lxxyz3TNcUMAaxfAOjCXqTyQA3s=;
        b=jx+I/J1aaQpoB+0KOoU9ZfPpva2V/USKEzxpZjw0vuK/kIp2zPoSgxEhD2SfINW0gs
         Km7bjrZ6r2LF90BZOMcfxfIrcj/SnP9XQR8qGjpM6WVIfxPeo9x5Yz/nMWU8g9svzV0q
         jo2i6StjKE6zio3X4mqvmAWFWxAnniYnqy1P+BhTtiQ0bgPY9+az3P8R2RTZgkSGm386
         jnvoINW+OYe2uOkrySMUw85ZI4epcnXWEx2I2o5pJcBFux5I2id/cdXXrvX45ADdHsc1
         nu54JjcUf2ipE6eoVfv9mi/HDG6aVfZW3RfI1lvycr8jS1MUfIKkEm9cFoTynis8gTRq
         rCXQ==
X-Gm-Message-State: AOJu0Yz9Cg/dwAfBIdG3Jsmo+4RLH5O+Q9HC9xXDBuRL40Cwgba8GXi/
	HHbF9FdiFkPyJ5yNcUgTviVQptfWZI5im89uTsnL2P4xOaJNfTxukHV0TE9UBF6mTbNySR+psnX
	B
X-Google-Smtp-Source: AGHT+IEfuvQcE4K1Mu8x7+ZwbXPnwWMt6m0/fi2E+HqN+2mfIAqwjK3HZAU3v9xOE6Os6GfSQSaz8w==
X-Received: by 2002:a17:907:9617:b0:a9e:e1a5:9746 with SMTP id a640c23a62f3a-aa4dd6b3c39mr158358566b.34.1732093316523;
        Wed, 20 Nov 2024 01:01:56 -0800 (PST)
Date: Wed, 20 Nov 2024 10:01:54 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <Zz2lgkjgRoZ7Sr5Q@macbook>
References: <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook>
 <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Nov 20, 2024 at 03:01:57AM +0000, Chen, Jiqian wrote:
> On 2024/11/19 20:46, Roger Pau MonnÃ© wrote:
> > On Mon, Nov 18, 2024 at 06:06:03AM +0000, Chen, Jiqian wrote:
> >> On 2024/11/15 19:42, Roger Pau MonnÃ© wrote:
> >>> On Fri, Nov 15, 2024 at 03:04:22AM +0000, Chen, Jiqian wrote:
> >>>> On 2024/11/15 01:36, Roger Pau MonnÃ© wrote:
> >>>>> On Thu, Nov 14, 2024 at 04:52:18PM +0100, Roger Pau MonnÃ© wrote:
> >>>>>> On Thu, Nov 14, 2024 at 06:11:46AM +0000, Chen, Jiqian wrote:
> >>>>>>> On 2024/11/13 18:30, Roger Pau MonnÃ© wrote:
> >>>>>>>> On Wed, Nov 13, 2024 at 10:00:33AM +0000, Chen, Jiqian wrote:
> >>>>>>>>> On 2024/11/13 17:30, Roger Pau MonnÃ© wrote:
> >>>>>>>>>> On Wed, Nov 13, 2024 at 04:00:27PM +0800, Jiqian Chen wrote:
> >>>>>>>>>>> Some devices, like discrete GPU of amd, support resizable bar capability,
> >>>>>>>>>>> but vpci of Xen doesn't support this feature, so they fail to resize bars
> >>>>>>>>>>> and then cause probing failure.
> >>>>>>>>>>>
> >>>>>>>>>>> According to PCIe spec, each bar that support resizing has two registers,
> >>>>>>>>>>> PCI_REBAR_CAP and PCI_REBAR_CTRL, so add these two registers and their
> >>>>>>>>>>> corresponding handler into vpci.
> >>>>>>>>>>>
> >>>>>>>>>>> PCI_REBAR_CAP is RO, only provide reading.
> >>>>>>>>>>>
> >>>>>>>>>>> PCI_REBAR_CTRL only has bar size is RW, so add write function to support
> >>>>>>>>>>> setting the new size.
> >>>>>>>>>>
> >>>>>>>>>> I think the logic to handle resizable BAR could be much simpler.  Some
> >>>>>>>>>> time ago I've made a patch to add support for it, but due to lack of
> >>>>>>>>>> hardware on my side to test it I've never submitted it.
> >>>>>>>>>>
> >>>>>>>>>> My approach would be to detect the presence of the
> >>>>>>>>>> PCI_EXT_CAP_ID_REBAR capability in init_header(), and if the
> >>>>>>>>>> capability is present force the sizing of BARs each time they are
> >>>>>>>>>> mapped in modify_bars().  I don't think we need to trap accesses to
> >>>>>>>>>> the capability itself, as resizing can only happen when memory
> >>>>>>>>>> decoding is not enabled for the device.  It's enough to fetch the size
> >>>>>>>>>> of the BARs ahead of each enabling of memory decoding.
> >>>>>>>>>>
> >>>>>>>>>> Note that memory decoding implies mapping the BARs into the p2m, which
> >>>>>>>>>> is already an expensive operation, the extra sizing is unlikely to
> >>>>>>>>>> make much of a difference performance wise.
> >>>>>>>>>>
> >>>>>>>>>> I've found the following on my git tree and rebased on top of staging:
> >>>>>>>>> OK.
> >>>>>>>>> Do you need me to validate your patch in my environment?
> >>>>>>>>
> >>>>>>>> Yes please, I have no way to test it.  Let's see what others think
> >>>>>>>> about the different approaches.
> >>>>>>> There are some errors with your method.
> >>>>>>> I attached the dmesg and xl dmesg logs.
> >>>>>>> From the dmesg logs, it seems that 0000:03:00.0 has addresse overlap with 0000:03:00.1
> >>>>>>
> >>>>>> Do you have the output of lspci with the BAR sizes/positions before
> >>>>>> and after the resizing?
> >>>>>>
> >>>>>>>
> >>>>>>> I think there is a place that needs to be modified regarding your method,
> >>>>>>> although this modification does not help with the above-mentioned errors,
> >>>>>>> it is that whether to support resizing is specific to which bar, rather than just determining whether there is a Rebar capability.
> >>>>>>
> >>>>>> Do we really need such fine-grained information?  It should be
> >>>>>> harmless (even if not strictly necessary) to size all BARs on the
> >>>>>> device before enabling memory decoding, even if some of them do not
> >>>>>> support resizing.
> >>>>>>
> >>>>>> I might have to provide a patch with additional messages to see what's
> >>>>>> going on.
> >>>>>
> >>>>> One nit that I've noticed with the patch I gave you previously is that
> >>>>> the check for a size change in modify_bars() should be done ahead of
> >>>>> pci_check_bar(), otherwise the check is possibly using an outdated
> >>>>> size.
> >>>>>
> >>>>> I've also added a debug message to notify when a BAR register is
> >>>>> written and report the new address.  This is done unconditionally, but
> >>>>> if you think it's too chatty you can limit to only printing for the
> >>>>> device that has the ReBAR capability.
> >>>> Errors are the same.
> >>>> Attached the dmesg, xl dmesg, patch and lspci output.
> >>>> I will also continue to debug your method on my side to try to get some findings.
> >>>
> >>> Hello,
> >>>
> >>> I've been looking at the output, and it all seems fine, except the
> >>> 03:00.0 device that becomes broken at some point, note the lspci
> >>> output lists [virtual] next to the resource sizes.  This means reading
> >>> for the registers returned 0, so the position and sizes are provided
> >>> from the internal OS information.
> >>>
> >>> I'm assuming the patch you sent to the list doesn't lead to such errors,
> >> Yes, the method of my patch doesn't lead to any errors.
> >> I attached the dmesg, xl dmesg and lspci logs of my method.
> >>
> >>> in which case I can only guess that fetching the size of the
> >>> BARs in modify_bars() causes issues with the device.
> >>>
> >>> To confirm this, can you try the following patch on top of your original change?  
> >> I tried below patch with my original patch, it didn't cause any errors.
> >> And the lspci showed without the "[virtual]".
> >> So, unfortunately, it is not related to the fetching size of Bars in modify_bars().
> > 
> > I see, I'm at a loss as to what's wrong with my patch.  Do you have
> > any additional patches on Xen when testing your or my approach?
> No, just my patch or your patch, base on upstream codes(kernel branch is linux-next and xen branch is staging).
> 
> > 
> > I sadly don't have any box with a PCI device that exposes the
> > resizable BAR capability, so I'm not able to test or debug this.
> > 
> > I would like to understand why my approach doesn't work, as otherwise
> > I feel like I'm missing how ReBAR is supposed to work.  Anyway, if you
> > can give a try to the diff below, it's the same patch, but with yet
> > even more debug messages added.
> Attached the xl dmesg.
> 
> > 
> > Thanks, and sorry for keeping you testing it.
> That's fine, feel free to send me if you need more test information.
> Actually I am still continuing to debug your patch and also curious about why your patch does not work.
> 
> The only difference between our methods is the timing of updating the size.
> Yours is later than mine because you updated the size when the driver re-enabled memory decoding, while I updated the size in time when driver resize it.

Indeed, my last guess is the stale cached size is somehow used in my
approach, and that leads to the failures.  One last (possibly dummy?)
thing to try might be to use your patch to detect writes to the resize
control register, but update the BAR sizes in modify_bars(), while
keeping the traces of when the operations happen.

> I suspect that the driver or hypervisor may have done something in between and read outdated information.
> I am debugging the driver codes.

Thanks for doing this.

I have a couple of side unrelated notes, something I've noticed from
the trace you provided, taking device 0000:03:00.1 as an example:

(XEN) 0000:03:00.1: modify bars cmd: 0 rom_only: 0
(XEN) 0000:03:00.1: write BAR0 val: 0xfffffff0 BAR0 address: 0xfffffff0
(XEN) 0000:03:00.1: write BAR0 val: 0xd0700000 BAR0 address: 0xd0700000
(XEN) 0000:03:00.1: modify bars cmd: 3 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 0 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 3 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 0 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 3 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 0 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 3 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 0 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 3 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 0 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 3 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 0 rom_only: 0
(XEN) 0000:03:00.1: modify bars cmd: 3 rom_only: 0
(XEN) PCI add device 0000:03:00.1

Linux toggles memory decoding individually for sizing each BAR.  This
is very costly when running virtualized (as least on Xen), as toggling
the memory decoding bit implies tearing down or creating p2m mappings
for all the BARs of the device.  It would be much better if Linux
toggled memory decoding, sized all the BARs of the device, and then
enabled memory decoding again.  If done that way you could probably
reduce boot time of Linux PVH dom0 noticeably.

Secondly, the call to "PCI add device" is too late.  It works now
because Xen scans for PCI devices, so those are already known and
setup by Xen.  But if it's a hotplug device (or a device that somehow
is not discovered by Xen at boot), doing the PHYSDEVOP_pci_device_add
hypercall after sizing the device is wrong, the hypercall should be
done ahead of Linux interacting with the device in any meaningful way.
The checks done for device discovery are fine are obviously fine to be
done ahead of the PHYSDEVOP_pci_device_add call.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 10:00:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 10:00:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840969.1256485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDhV6-0001Nc-RF; Wed, 20 Nov 2024 09:59:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840969.1256485; Wed, 20 Nov 2024 09:59: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 1tDhV6-0001NV-OG; Wed, 20 Nov 2024 09:59:56 +0000
Received: by outflank-mailman (input) for mailman id 840969;
 Wed, 20 Nov 2024 09:59: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=5Fky=SP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDhV5-0001NP-3v
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 09:59:55 +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 2e99242a-a726-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 10:59:50 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-38248b810ffso1298022f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 01:59: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-3825490529fsm1646537f8f.4.2024.11.20.01.59.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 01:59: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: 2e99242a-a726-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmMiLCJoZWxvIjoibWFpbC13cjEteDQyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJlOTkyNDJhLWE3MjYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDk2NzkwLjYxNzk1OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732096790; x=1732701590; 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=Af2hnQ+JZB567IdlSSYwS6xLyLikGdFms2r2dlJMcSI=;
        b=fAk0BN60xtaZnGaVbTPF22rztsht/zQ3ycjJwdzRjt4FkQkL7h6lu/dZY280wvYQMn
         9L/7dzawFT6u5Z12iDwr2VUAYoJz2cTYEXqTO2x6cox8mNUOSVkXL/ZAou7tfW3qqb8h
         S/VQzqidh/nT2uvaQszcaffzLbqDgFk0f0qNZdCghDiSJTc++MJ3wgwUFZXGeXTjNdW5
         dhTIO3PqxWzQfY4YwZsZbGM3jsMCVo6XRee6CJokwnNFc4G8iYCKVbLdlcQO1a/gJysa
         CKPZo6fKGayOSQ36KvXj2+aqjx6g1eooTyaaZsx4h86iBOGDKeCiWIz6y2S1z2FlafCK
         OAOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732096790; x=1732701590;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Af2hnQ+JZB567IdlSSYwS6xLyLikGdFms2r2dlJMcSI=;
        b=tHu3vpFtXUq2HEu64ikJsFV8R3wf3GyPx5qPAGIiyHAjxMrGordbyKG1sFiNsthRuv
         aUTggv1TNQcYh4FbdeGQ65Lp0d+aT4Do9NflzP2Z9XSWtcuR4dzh29DTxQ1Tw/mbXbse
         B7p/LPbNIwhV37ufAyxqCVYXuO+IXy+aX/FPV1fOeyWiuCMYKf293LWd4BG0VbzEoD43
         UYDfB6s44LgMasMcOnqIrvN79BKp2reVMSoNg3FyTpo5JhNxXjwAqCixl/x0qUjGwD2l
         Cct3IspbuuAy4Ne13uuBDzcO4mtMZet2zgAmJ6exblg6P8EJ77j4q6C6Kd6CvV740Cxt
         Jh2g==
X-Forwarded-Encrypted: i=1; AJvYcCVN0ZM/y7DWp2BN7+GyDT08g2S0ByDMntrg1zTL/H8aE2b3iEksGOitt6TlExIEdhCZB3aZP24Aj5c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJrwCoIE/ZwcXydcOtq0qF+CGLrqzwAUu5L/CuYGOdJQys3Ya+
	Xa/I8pfWDPNoY8NDEXBNntlFq43/7JL0byyTiRfx18Y9XvM1nKV29kWF4r/WKQ==
X-Google-Smtp-Source: AGHT+IF1PyP2rjNDS6BD34lSoKQkj6gHXdrf+S+w/tybg78EacFP3QF65bexwxZ6L4NnKmJWbrm/7w==
X-Received: by 2002:a05:6000:2a83:b0:382:46d2:52ae with SMTP id ffacd0b85a97d-38254af4f9bmr1201201f8f.21.1732096789960;
        Wed, 20 Nov 2024 01:59:49 -0800 (PST)
Message-ID: <a414bde4-54fe-4be3-8ab5-98f04d3eaaa0@suse.com>
Date: Wed, 20 Nov 2024 10:59:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mce: Compile do_mca() for CONFIG_PV only
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>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241119125904.2681402-1-andrew.cooper3@citrix.com>
 <d92cf59a-a798-4223-9439-85ae215b7daa@suse.com>
 <00fa3d65-d598-474f-b9ee-7b63db2d3b40@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: <00fa3d65-d598-474f-b9ee-7b63db2d3b40@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.11.2024 19:22, Andrew Cooper wrote:
> On 19/11/2024 2:34 pm, Jan Beulich wrote:
>> On 19.11.2024 13:59, Andrew Cooper wrote:
>>> Eclair reports a Misra Rule 8.4 violation; that do_mca() can't see it's
>>> declaration.  It turns out that this is a consequence of do_mca() being
>>> PV-only, and the declaration being compiled out in !PV builds.
>>>
>>> Therefore, arrange for do_mca() to be compiled out in !PV builds.  This in
>>> turn requires a number of static functions to become static inline.
>> Which generally we advocate against.
> 
> It's `static inline` or `static __maybe_unused`, but I refer you to to
> the Matrix conversation on June 24th on the matter.

Well, and the outcome was __maybe_unused there. For consistency I'd therefore
like to ask that you use __maybe_unused then here, too.

As an aside, it would have helped if you had said which channel that discussion
had been on. Scrolling back this far sadly doesn't work very nicely on the
element.io interface (or I simply don't know how to make it go to a specific
date), and I ended up trying XenDevel, then the committers channel, and only
then the x86 one.

>>  The #ifdef variant you pointed at on
>> Matrix wasn't all that bad.
> 
> It worked as a test, but ifdefary like that is a maintenance nightmare.
> 
>>  Plus ...
>>
>>> 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>
>>>
>>> Bloat-o-meter on a !PV build reports:
>>>
>>>   add/remove: 0/6 grow/shrink: 0/0 up/down: 0/-3717 (-3717)
>>>   Function                                     old     new   delta
>>>   x86_mc_mceinject                              31       -     -31
>>>   do_mca.cold                                  117       -    -117
>>>   x86_mc_msrinject                             147       -    -147
>>>   x86_mc_msrinject.cold                        230       -    -230
>>>   do_mc_get_cpu_info                           500       -    -500
>>>   do_mca                                      2692       -   -2692
>> ... what's the effect of the addition of "inline" on a PV=y build? By
>> using the keyword, we may end up talking the compiler into inlining of
>> code that better wouldn't be inlined.
> 
> xen.git/xen$ ../scripts/bloat-o-meter xen-syms-{before,after}
> add/remove: 0/0 grow/shrink: 0/0 up/down: 0/0 (0)
> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
> Total: Before=3901801, After=3901801, chg +0.00%
> xen.git/xen$ diff -u dis-{before,after}
> --- dis-beforeÂ Â Â  2024-11-19 18:08:02.284091931 +0000
> +++ dis-afterÂ Â Â  2024-11-19 18:08:24.491035756 +0000
> @@ -1,5 +1,5 @@
> Â 
> -xen-syms-before:Â Â Â Â  file format elf64-x86-64
> +xen-syms-after:Â Â Â Â  file format elf64-x86-64
> Â 
> Â 
> Â Disassembly of section .text:
> 
> xen.git/xen$

Good. Preferably with __maybe_unused
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 10:06:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 10:06:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840980.1256495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDhb9-0003BG-KJ; Wed, 20 Nov 2024 10:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840980.1256495; Wed, 20 Nov 2024 10:06: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 1tDhb9-0003B9-Gc; Wed, 20 Nov 2024 10:06:11 +0000
Received: by outflank-mailman (input) for mailman id 840980;
 Wed, 20 Nov 2024 10:06: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=5Fky=SP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDhb8-0003B3-S7
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 10:06:10 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fae7e31-a727-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 11:06:08 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3824aef833bso2128762f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 02:06: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-382549113f9sm1590982f8f.61.2024.11.20.02.06.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 02:06: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: 0fae7e31-a727-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBmYWU3ZTMxLWE3MjctMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDk3MTY4LjQyNzMzNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732097167; x=1732701967; 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=oBxOsk0SV+PRxnXVAgOdgY8X7czssmPACRjLVpOXpc0=;
        b=ZFv55sEPm3nafvxgBFrhYvWjp0cvN5Jfsl1K8Ia5X0YXT35OtGFT2OQsrDCPDAUCsn
         YvCE3lXCOTms7MV7guk2JE++tGo7N2/zR5DWeb2ywH5BnmgB3kD+cTnuL5cMS5PUDfLo
         R1uuCxcU8IT1h2YUO8czX9riQxb65IGG8TGYYCbXtyLWqomMgd9sv9uyr8tzRt6a6ktA
         Ujf2W5/liQCA/PGlfsbiUavWER5TDYtDs3Stf0khDdb2h6pKlqAWhuHzy6VSSo/l028k
         S08a6Rmsd6/CySx15VPb3ka1ZGNxL783lsTmxebqhvIB8cPhFmzgNM1jH+mxv5DvfGq6
         b7ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732097167; x=1732701967;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oBxOsk0SV+PRxnXVAgOdgY8X7czssmPACRjLVpOXpc0=;
        b=c/LWeI+4vBtdDGQHG4TAqcdI/SpRJ3hV0rF7pskw+W/eSzPhkiLccYSyui6bAgMI5f
         Gx8+aoKAd3Xb9Gmq6n7IGpprBKA6scMdWt5Xko1jxpbEKgjQmR0VIrR5BM2yPAOYbZhy
         XBxnl5/EG4mOXs0nwKDLOuxRlTcApQTNhPUZPWRFnrrZWicMIWcda3BNHAC4PZ6gAnuv
         60tjtYcUgTHUljDEScpekpmjAGwwi05LV/TUBLBMCNGlSiEz1zqWKE1/pW2TJtzcBzKq
         60hlqAQdTD/3YDDZ3segVY0lZSHkIF0trEqPSG+Q2lMaznGaeOb8nCs2SuZ7UQ2soXxK
         Rvkg==
X-Gm-Message-State: AOJu0YxggFeZs9ZPaUXwMCPa4pb7ubcaAuQHYxy8Ev79NgxBKme6S9Ye
	U/x9Z8XNFkTX4CTZTIjeJuPn0usmqEryvfCDQpzRdUhTrW+sBv3aODrMy7hw6Q==
X-Google-Smtp-Source: AGHT+IFxkegj2f76rFGC5TA+HjvIzgJJ5m0KDiJmJ4hEMDFtKn+Vrwc3pnPDsAiUD2hz/wf7p+MXvg==
X-Received: by 2002:a05:6000:2c6:b0:382:4b2e:d42d with SMTP id ffacd0b85a97d-38254b03e10mr1541019f8f.30.1732097167598;
        Wed, 20 Nov 2024 02:06:07 -0800 (PST)
Message-ID: <200086ff-9c4f-4f8a-ae20-598c04e5d887@suse.com>
Date: Wed, 20 Nov 2024 11:06:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vpci: Add resizable bar support
To: Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 "Chen, Jiqian" <Jiqian.Chen@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
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: <Zz2lgkjgRoZ7Sr5Q@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2024 10:01, Roger Pau MonnÃ© wrote:
> Secondly, the call to "PCI add device" is too late.  It works now
> because Xen scans for PCI devices, so those are already known and
> setup by Xen.  But if it's a hotplug device (or a device that somehow
> is not discovered by Xen at boot), doing the PHYSDEVOP_pci_device_add
> hypercall after sizing the device is wrong, the hypercall should be
> done ahead of Linux interacting with the device in any meaningful way.
> The checks done for device discovery are fine are obviously fine to be
> done ahead of the PHYSDEVOP_pci_device_add call.

Let's make the Linux maintainers more explicitly aware of this.

Jan



From xen-devel-bounces@lists.xenproject.org Wed Nov 20 10:25:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 10:25:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.840991.1256504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDhu7-00066v-52; Wed, 20 Nov 2024 10:25:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 840991.1256504; Wed, 20 Nov 2024 10:25: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 1tDhu7-00066o-1t; Wed, 20 Nov 2024 10:25:47 +0000
Received: by outflank-mailman (input) for mailman id 840991;
 Wed, 20 Nov 2024 10:25: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=Jnlo=SP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tDhu5-00066g-FX
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 10:25:45 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20618.outbound.protection.outlook.com
 [2a01:111:f403:2415::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca2d4e35-a729-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 11:25:41 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS7PR12MB6168.namprd12.prod.outlook.com (2603:10b6:8:97::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8158.23; Wed, 20 Nov 2024 10:25:37 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.023; Wed, 20 Nov 2024
 10:25: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: ca2d4e35-a729-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjE4IiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNhMmQ0ZTM1LWE3MjktMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDk4MzQxLjI3NzUzOSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TCUOhEGUTZ8XogUsGTzskkofBvlOTCN5u6Dt2SNk7jfH2JqXuBFP5eluqtt+4ZrDthQtwaSDJWvED/i0Y7F7h/Za3h6siw3abYt79ghYouGFR32y5LoLl11b2bw0Mv1tzGsMxG66W0qgRWEec7u3xi5dNVA0Ee+hQ/eVKK44iLPpC6t7JK4hawcdKq7AzG/jjsHwvoQd9IiA/n4ZUCDOoJOvlVSdxA76nwmXUUix1/C4o9CnG+2H9NvNRy3Bo9LvQDvJNg9ZEuf3XCnyw/GHU1S2BC5rkxLAxFZoktUJU2Xeui5ggWQI6y964J5cZuILY0JJ+2+5RuOIFBiEBPttNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5YpXkv2pSRg1kChKvZWa/dY/10JeD4lKybzdNeiY2PI=;
 b=wleEN6uiV8vBmWDRJRIAJqYaXQKQsHbje13aNcg+ZHRsz9zOeGT+bG3Hqql+bB35mRCHxAdeu4/huVsF1Hm+ru9kTp4neMrVc0zGFDtqmYXI4zE/liSDSHsL54K8bZhY558jdWoWBCu2GS06p77u2/PIk96xx6hTOoymQPvQvZ9GQnQxdv5pZFgsdOIcGJEDexKc4lUnOo0jUxniO7TaT7tIdgDSodWBOzrZsxpxUaL/4GCBJK6LnO/a+92HDqWTaV9uY2ATUh0i4jI1qKafghOjn/9xMCdDrpkBfEMthJjCmH6cSrtxTqZHYLKGTH59SQcEkcL/3Pi1uBdeZHPQAQ==
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=5YpXkv2pSRg1kChKvZWa/dY/10JeD4lKybzdNeiY2PI=;
 b=iEy04zjjm9G1Llp1iAkglJ9b61F95VIVj1QJIn8jOmywV0F27sjg/8z/yG0ede/V+0iI7HirA5UTnRPHFSBF+snElBiwIpAcHUjh/K6oAqI4BfxLMTGfUJYF1/Bi79SRZaV6IGtjPk6I35S2H5RjORipqBXJKgtYTE/alWbit50=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAIABfwWAgAFxTQD//+JeAIAAnFuA
Date: Wed, 20 Nov 2024 10:25:37 +0000
Message-ID:
 <BL1PR12MB5849141A68E8EEDCB55F1A5BE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
References:
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
In-Reply-To: <Zz2lgkjgRoZ7Sr5Q@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|DS7PR12MB6168:EE_
x-ms-office365-filtering-correlation-id: b204c67c-eeea-4dc9-ca5b-08dd094dacc0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cEpjbzN5VkJEOHV6dDVCbEp1ZDB6cFJidmw0eHZKUzhzUmdQU2R0NXNtOUU1?=
 =?utf-8?B?dEJXNU41Tm5jMHVIVmc4MGgrOEtpWGlhTjlVcThpRVJ2bFBkUXlnMG84aUVI?=
 =?utf-8?B?T04rdk9NWmRtemVsTUsrVjQyNHVqRXV2MndnMjhTakhTYUgrYjJGdXNMbGwv?=
 =?utf-8?B?eDZaLzNSUy8vYTZzZnVOTXgzQmo2SzNlWWVaMWUzVEhnYjM2dUtxSlFGRW5z?=
 =?utf-8?B?aS9CVSsyY3hlT3pRUm11U0JmemZEN1JnblRrK0ZTU1dCT0xEcmgySVlPcE01?=
 =?utf-8?B?Nlp6QWxNNWNjWkJuL0Ruc2pjcC9SeFQ0MmJIVDI4dFlYYmVVVTN2WE43Ympv?=
 =?utf-8?B?TlNIWlk0YUVFVjVDVmdQVlQ4aS8yaXAyVnRGREdldTJ3UklhUXlFSDNlVEY1?=
 =?utf-8?B?N1N2QTN6YnIyZmk1VnhBVXVDRzg4NE9SQU9SbkQwTWxBVEhiaTRmcThzT0ow?=
 =?utf-8?B?N0JDeklCQnR1V0duRGpWNGtvTHIrb25YdjFyR1prTDlrT2Q4ZFZIRjJraDlV?=
 =?utf-8?B?UFhmWnFHeENlaDV0N2d6ZUJnQlh2cDRWQjdialgzL2dhazlmWHJHYTd0YWlF?=
 =?utf-8?B?VnFvemRQSXJxTC8wYk1VU1hIRnN4L3FYenJJRHluSlN2ekE2VG1LY1U1dmxJ?=
 =?utf-8?B?eFhlZW9FZXU2NjhMZkVVZnBzU3Q2WE5oYzQrQ1Y0N1VMNTc4YzNPR2V6Z05S?=
 =?utf-8?B?UHUvMjlpNlZIbEhBZEh0bVZlK0lwZGZvaU1HTm9SOXdpQnNieW1tYXZWWDhr?=
 =?utf-8?B?UFNSOHVaMXU0VmR3dXJtTHN5TFdtTU12SGxFem9GeTJKbnVPNFRkMUhMTUJr?=
 =?utf-8?B?VE9yRTBMclovQ0pxekhsRy9rcDQ0dDkyOEt0ZXBGYWo5QUFaK0RXWEJuNVZS?=
 =?utf-8?B?VE4zYTBTajc4dVFPMWEyak9IMlFidllQQUtyY0VlQjQwNTZGd3BqWHRmeUR6?=
 =?utf-8?B?dU9RMGN3K3Vub1htTXVUTE5qbkx2OFBkSFRZK2Z2OUllYk0yaWh4cGRBNDll?=
 =?utf-8?B?dkV2MXJ6d3Z6NldUbytMbmlJcnQvMXp3aDFpVUZSMUFDMHM5ZS9ESXphaDdy?=
 =?utf-8?B?UWEwR09EYXAzNEh0TnppcWRUTjFENkQyV2svVXZZUVZJaWlOL0JvTDExaFZI?=
 =?utf-8?B?K29MRmR6cUtDNUhPcTAyc29uMmtTcUltbnM4MEtoVEJoV2o2elJSY3lUMjE1?=
 =?utf-8?B?K1Yyalc4cnM2V3NRSTd0Ritua0dFVTA5cHRxRHdvbkhWcXJEcUh1ejBJVVRW?=
 =?utf-8?B?dlhSaVVRNEZVZlhHNDZjYzA1VHJBbExLQm5jcWNJbWtYUjlHKytxS2RySm1T?=
 =?utf-8?B?c3F0eFF6eGlzVER6VVA1MzdUQWQ1djBjTnU0WVl0NktUakhwcUhtdHNKNzRm?=
 =?utf-8?B?dFQ0Z3RFVnJvcGpHVHo2Q2paek5nZDgxeUk2cUpSTWw2eHJCK2dHaW1zcmVL?=
 =?utf-8?B?UzhPMmpuVnlaaFlvRmtqd011U3MxcjF1MHpsN2lIaTlKTlh3eWJrRmRDcjlw?=
 =?utf-8?B?eUkzNXgzSU9XQ1ljYnExeVhxUnFsQk0yWUc3WVV6VlJJM0JuK2RSR2VjZnd3?=
 =?utf-8?B?NzZleXdCMzNZbzg2dE13ZGdvSFFublB4c0pPcHdRU0tkNkh0dGswNVdwVkY1?=
 =?utf-8?B?dUx3T2dVMkNHK0RxY2RiM09ZeVhpblZ2NHE1elRTQklGOVlMZDJ2R3ZtZXdB?=
 =?utf-8?B?VnV1OUk1Ynhsc2REUll6dWtEbHRQcE43M1hQVTdXWnlqL2NGSWhKQldvQkQ0?=
 =?utf-8?B?MFY1OEcvbjRWSjVJUksxK3ZCZDk1N3RlUkpPNVdNUjcyUUE0UnJUaWpXR3dB?=
 =?utf-8?Q?6+Pg8SsS/11WDNF5j68TYC0hpI2SCLgjYlGUI=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aHpCbDFpSzhiRytUUW01aFBMbDltRmRNaDdBWjcrSTVKcDMzSVFLcURLdGxV?=
 =?utf-8?B?dFczc3M2NUNoMUhPY2ZtRkFwaVpSOEM4REduNGhqcVJZbmtZYzNqcVc0K2Jw?=
 =?utf-8?B?aGU1THFJcU5DQjcrcFJqdStGaEJFQjUvRUdqQ2VoYUwzRVNqaU5uY0MyMTMy?=
 =?utf-8?B?WlU2azNuNE1XWndkODRMbzE2ZGpEbktjUGEyTTR3K21kWC9xTHoyMDEyQnRt?=
 =?utf-8?B?YUkvUGtLbXdoamprTnlGSTB2T2ZQSENUcnYwOVExRnhISjBxYUl2OWdaNnFP?=
 =?utf-8?B?NlRaSEhHMkFxNGJzQjVtcVZOV3JuN1NZbVNLa2tJcEFBd1dFWGxDVStuZHBq?=
 =?utf-8?B?ZUlkMzhJaWZ4UUYzbnh5Q1ZHSXd5emtLcmMvaDNzemdQMjFxRzQvamVPSmVo?=
 =?utf-8?B?V3NvNFpOQ3RrMElOT0FNdU9kdllDc3BsdTh3VHRVNVRlNGNIT3phN1FNVXVN?=
 =?utf-8?B?eTRmOEFqUDF5TVFsQ0I3NzVnMjVXMjdGck9RNitYMkdVSFlWSHdQZ2pPVWND?=
 =?utf-8?B?K1NuNk1pYUdXKzIxMnJqSU9FVWMxbW5EU3ZTYUsySDRWSlU1b1djNlBpeWxS?=
 =?utf-8?B?N1RHRFN0cER3WHdEVjQ3NUtBemJ4QXdUTFZ3OHYzT011cHlGVFJkWUlXSlhJ?=
 =?utf-8?B?TytiZFhlNTgvUUlXR0ZrQWVzZm9UMFVoQ1hxSkhjalVwOHgyTDNBM0xta0xw?=
 =?utf-8?B?eVRMWDI0cUhnRlhzbnUwUkNaTkRuS3QvQ0hMQUY1LzB1bHI4NnBiTmt6VDVK?=
 =?utf-8?B?b0xNMVh4R3VDNlpxVjNOYk9uRDhNREtTSlJ4MmdzeE9WQU5hV0FTbSs4YlY4?=
 =?utf-8?B?M2FZQ1llNFNsT0VWd1dwaWk0cWtwcklBbnBvYXovelJ2SG9JSXB0TCtlTHJX?=
 =?utf-8?B?bFUzd0F5WVlhVG1PeGlMM2ZTSjY0NUp5UVV4QlhaL2E5OFBVR0VIMWhUdDFU?=
 =?utf-8?B?OXd2dW5sL2hGeU9FN1RJN1E5L2V3bkpUaFZwUTlycjM1WWhMWEFxVmNacGli?=
 =?utf-8?B?WGpZMDlKcUpvYllzaFgrTkhxNDVvMUwvZzBFMFVOeDRGNGhId0dYRzZHeCtn?=
 =?utf-8?B?WWhjNUtaUXY4S3VVQk56M01PMjk3R1ZDM0VxTXlZbm1HYjl5VC9PQUlmK3Rk?=
 =?utf-8?B?eFBPZ1JoOGhjN21rNVVWaHVpdkxVYnpiTjF0elJEOHBNUHNEQk1hRU0zWi9I?=
 =?utf-8?B?Vnd2d3pTcEM0aFRoV0g1RlFBU1U5RVM0aUdlVEdpZCtmY0g3aTBSNkRIdWNC?=
 =?utf-8?B?SXlHSjFlbTRiMWR3OTJvS3NDTi8vQXZMZ0UyeWZtTmVRenBSMWxzUjh1dEhW?=
 =?utf-8?B?a3VwTTIyWHBUakVOdTZNaElDM0dHaXROa25lMDV3L0dWQm5ETDFuNktlMDdz?=
 =?utf-8?B?ejNuUjZxL2VVVUdPYkQ1UWtYTkhUWFRiVUxwYytST3BoRFB3MlNvUTVwd1U2?=
 =?utf-8?B?M2tsaWsvOS92eVhFTDBCa2RPcG1pdmUrbEtXSVZJU3EwQ3RpVXNRMXJqNjJm?=
 =?utf-8?B?b09idUtQUFVadHo1ek5LcVVHMXFGQmt6c1Y5ZDhTWDQ1NEROT2FOLy9JN1BI?=
 =?utf-8?B?SEwzNFdsR1ZqZjAzWXRkN3BSNnB4WVc1SXlYZHdySmFuRTlXQUxoWVIzTUJW?=
 =?utf-8?B?SFdRaGhIMVpxT0lBbWViUTZiMkpEZWJVWjFWcjNJcFFQeGh3NkJMUmQ4YVhj?=
 =?utf-8?B?Tkg2YXFPNlgzbzBXMXc4N203S1JwV2ZpTnhSaXNYZjZ1TmRjSm03YW9UMUov?=
 =?utf-8?B?cnh5Y1h1b0tXS1QyTU9BOEVrQlVINFl5aFdodnc1dm1WN2Rkekthd2RrMWZ3?=
 =?utf-8?B?Wk5jUzRJcXJJdG85K1hPQTNXWm95MVRTa2poamJudVZvSlJOSG1Pc0x1WThO?=
 =?utf-8?B?a2dqTDc2ZnVYZmhONGxyTG5KRzNVNnArcU51Ymx4aEhRWU43Z0lVejliNXpX?=
 =?utf-8?B?azVGQzhzSEJCeTRNQ0ZlK1hONTlHTEUzVGZkU2pxdjcrN2xBQ3BYeVltOVVM?=
 =?utf-8?B?eEdJdmJVTkxJU2hiZmpMa3FzOU1jelJGN1d6V2gyWHBUM3VkMzU0dk9BUWtP?=
 =?utf-8?B?bVUrRUNZVitoTHdmMUJLSWxtNEVXenBRTjhWQ1JWNmRQSmJDWWlOZWRPM1Nz?=
 =?utf-8?Q?4HKo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4082644573FC5D4AB3E23E28BB406A30@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b204c67c-eeea-4dc9-ca5b-08dd094dacc0
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2024 10:25:37.1432
 (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: uICUNFoKCkmweJWT1fFAfOb8La9wHt/pICgbEfgIQZ5IUmyobcLqA0lQoA4lA2ARJkX8JYxWpR9FnRr4D3/JNw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6168

T24gMjAyNC8xMS8yMCAxNzowMSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBO
b3YgMjAsIDIwMjQgYXQgMDM6MDE6NTdBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyNC8xMS8xOSAyMDo0NiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBNb24s
IE5vdiAxOCwgMjAyNCBhdCAwNjowNjowM0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+IE9uIDIwMjQvMTEvMTUgMTk6NDIsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBP
biBGcmksIE5vdiAxNSwgMjAyNCBhdCAwMzowNDoyMkFNICswMDAwLCBDaGVuLCBKaXFpYW4gd3Jv
dGU6DQo+Pj4+Pj4gT24gMjAyNC8xMS8xNSAwMTozNiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToN
Cj4+Pj4+Pj4gT24gVGh1LCBOb3YgMTQsIDIwMjQgYXQgMDQ6NTI6MThQTSArMDEwMCwgUm9nZXIg
UGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+Pj4+IE9uIFRodSwgTm92IDE0LCAyMDI0IGF0IDA2OjEx
OjQ2QU0gKzAwMDAsIENoZW4sIEppcWlhbiB3cm90ZToNCj4+Pj4+Pj4+PiBPbiAyMDI0LzExLzEz
IDE4OjMwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+Pj4+PiBPbiBXZWQsIE5vdiAx
MywgMjAyNCBhdCAxMDowMDozM0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+Pj4+Pj4+
Pj4+PiBPbiAyMDI0LzExLzEzIDE3OjMwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+
Pj4+Pj4+IE9uIFdlZCwgTm92IDEzLCAyMDI0IGF0IDA0OjAwOjI3UE0gKzA4MDAsIEppcWlhbiBD
aGVuIHdyb3RlOg0KPj4+Pj4+Pj4+Pj4+PiBTb21lIGRldmljZXMsIGxpa2UgZGlzY3JldGUgR1BV
IG9mIGFtZCwgc3VwcG9ydCByZXNpemFibGUgYmFyIGNhcGFiaWxpdHksDQo+Pj4+Pj4+Pj4+Pj4+
IGJ1dCB2cGNpIG9mIFhlbiBkb2Vzbid0IHN1cHBvcnQgdGhpcyBmZWF0dXJlLCBzbyB0aGV5IGZh
aWwgdG8gcmVzaXplIGJhcnMNCj4+Pj4+Pj4+Pj4+Pj4gYW5kIHRoZW4gY2F1c2UgcHJvYmluZyBm
YWlsdXJlLg0KPj4+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4+PiBBY2NvcmRpbmcgdG8gUENJZSBz
cGVjLCBlYWNoIGJhciB0aGF0IHN1cHBvcnQgcmVzaXppbmcgaGFzIHR3byByZWdpc3RlcnMsDQo+
Pj4+Pj4+Pj4+Pj4+IFBDSV9SRUJBUl9DQVAgYW5kIFBDSV9SRUJBUl9DVFJMLCBzbyBhZGQgdGhl
c2UgdHdvIHJlZ2lzdGVycyBhbmQgdGhlaXINCj4+Pj4+Pj4+Pj4+Pj4gY29ycmVzcG9uZGluZyBo
YW5kbGVyIGludG8gdnBjaS4NCj4+Pj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+Pj4gUENJX1JFQkFS
X0NBUCBpcyBSTywgb25seSBwcm92aWRlIHJlYWRpbmcuDQo+Pj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+
Pj4+Pj4+IFBDSV9SRUJBUl9DVFJMIG9ubHkgaGFzIGJhciBzaXplIGlzIFJXLCBzbyBhZGQgd3Jp
dGUgZnVuY3Rpb24gdG8gc3VwcG9ydA0KPj4+Pj4+Pj4+Pj4+PiBzZXR0aW5nIHRoZSBuZXcgc2l6
ZS4NCj4+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4+IEkgdGhpbmsgdGhlIGxvZ2ljIHRvIGhhbmRs
ZSByZXNpemFibGUgQkFSIGNvdWxkIGJlIG11Y2ggc2ltcGxlci4gIFNvbWUNCj4+Pj4+Pj4+Pj4+
PiB0aW1lIGFnbyBJJ3ZlIG1hZGUgYSBwYXRjaCB0byBhZGQgc3VwcG9ydCBmb3IgaXQsIGJ1dCBk
dWUgdG8gbGFjayBvZg0KPj4+Pj4+Pj4+Pj4+IGhhcmR3YXJlIG9uIG15IHNpZGUgdG8gdGVzdCBp
dCBJJ3ZlIG5ldmVyIHN1Ym1pdHRlZCBpdC4NCj4+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4+IE15
IGFwcHJvYWNoIHdvdWxkIGJlIHRvIGRldGVjdCB0aGUgcHJlc2VuY2Ugb2YgdGhlDQo+Pj4+Pj4+
Pj4+Pj4gUENJX0VYVF9DQVBfSURfUkVCQVIgY2FwYWJpbGl0eSBpbiBpbml0X2hlYWRlcigpLCBh
bmQgaWYgdGhlDQo+Pj4+Pj4+Pj4+Pj4gY2FwYWJpbGl0eSBpcyBwcmVzZW50IGZvcmNlIHRoZSBz
aXppbmcgb2YgQkFScyBlYWNoIHRpbWUgdGhleSBhcmUNCj4+Pj4+Pj4+Pj4+PiBtYXBwZWQgaW4g
bW9kaWZ5X2JhcnMoKS4gIEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byB0cmFwIGFjY2Vzc2VzIHRv
DQo+Pj4+Pj4+Pj4+Pj4gdGhlIGNhcGFiaWxpdHkgaXRzZWxmLCBhcyByZXNpemluZyBjYW4gb25s
eSBoYXBwZW4gd2hlbiBtZW1vcnkNCj4+Pj4+Pj4+Pj4+PiBkZWNvZGluZyBpcyBub3QgZW5hYmxl
ZCBmb3IgdGhlIGRldmljZS4gIEl0J3MgZW5vdWdoIHRvIGZldGNoIHRoZSBzaXplDQo+Pj4+Pj4+
Pj4+Pj4gb2YgdGhlIEJBUnMgYWhlYWQgb2YgZWFjaCBlbmFibGluZyBvZiBtZW1vcnkgZGVjb2Rp
bmcuDQo+Pj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+PiBOb3RlIHRoYXQgbWVtb3J5IGRlY29kaW5n
IGltcGxpZXMgbWFwcGluZyB0aGUgQkFScyBpbnRvIHRoZSBwMm0sIHdoaWNoDQo+Pj4+Pj4+Pj4+
Pj4gaXMgYWxyZWFkeSBhbiBleHBlbnNpdmUgb3BlcmF0aW9uLCB0aGUgZXh0cmEgc2l6aW5nIGlz
IHVubGlrZWx5IHRvDQo+Pj4+Pj4+Pj4+Pj4gbWFrZSBtdWNoIG9mIGEgZGlmZmVyZW5jZSBwZXJm
b3JtYW5jZSB3aXNlLg0KPj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+Pj4gSSd2ZSBmb3VuZCB0aGUg
Zm9sbG93aW5nIG9uIG15IGdpdCB0cmVlIGFuZCByZWJhc2VkIG9uIHRvcCBvZiBzdGFnaW5nOg0K
Pj4+Pj4+Pj4+Pj4gT0suDQo+Pj4+Pj4+Pj4+PiBEbyB5b3UgbmVlZCBtZSB0byB2YWxpZGF0ZSB5
b3VyIHBhdGNoIGluIG15IGVudmlyb25tZW50Pw0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBZZXMg
cGxlYXNlLCBJIGhhdmUgbm8gd2F5IHRvIHRlc3QgaXQuICBMZXQncyBzZWUgd2hhdCBvdGhlcnMg
dGhpbmsNCj4+Pj4+Pj4+Pj4gYWJvdXQgdGhlIGRpZmZlcmVudCBhcHByb2FjaGVzLg0KPj4+Pj4+
Pj4+IFRoZXJlIGFyZSBzb21lIGVycm9ycyB3aXRoIHlvdXIgbWV0aG9kLg0KPj4+Pj4+Pj4+IEkg
YXR0YWNoZWQgdGhlIGRtZXNnIGFuZCB4bCBkbWVzZyBsb2dzLg0KPj4+Pj4+Pj4+IEZyb20gdGhl
IGRtZXNnIGxvZ3MsIGl0IHNlZW1zIHRoYXQgMDAwMDowMzowMC4wIGhhcyBhZGRyZXNzZSBvdmVy
bGFwIHdpdGggMDAwMDowMzowMC4xDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gRG8geW91IGhhdmUgdGhl
IG91dHB1dCBvZiBsc3BjaSB3aXRoIHRoZSBCQVIgc2l6ZXMvcG9zaXRpb25zIGJlZm9yZQ0KPj4+
Pj4+Pj4gYW5kIGFmdGVyIHRoZSByZXNpemluZz8NCj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4NCj4+Pj4+
Pj4+PiBJIHRoaW5rIHRoZXJlIGlzIGEgcGxhY2UgdGhhdCBuZWVkcyB0byBiZSBtb2RpZmllZCBy
ZWdhcmRpbmcgeW91ciBtZXRob2QsDQo+Pj4+Pj4+Pj4gYWx0aG91Z2ggdGhpcyBtb2RpZmljYXRp
b24gZG9lcyBub3QgaGVscCB3aXRoIHRoZSBhYm92ZS1tZW50aW9uZWQgZXJyb3JzLA0KPj4+Pj4+
Pj4+IGl0IGlzIHRoYXQgd2hldGhlciB0byBzdXBwb3J0IHJlc2l6aW5nIGlzIHNwZWNpZmljIHRv
IHdoaWNoIGJhciwgcmF0aGVyIHRoYW4ganVzdCBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZXJlIGlz
IGEgUmViYXIgY2FwYWJpbGl0eS4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBEbyB3ZSByZWFsbHkgbmVl
ZCBzdWNoIGZpbmUtZ3JhaW5lZCBpbmZvcm1hdGlvbj8gIEl0IHNob3VsZCBiZQ0KPj4+Pj4+Pj4g
aGFybWxlc3MgKGV2ZW4gaWYgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSkgdG8gc2l6ZSBhbGwgQkFS
cyBvbiB0aGUNCj4+Pj4+Pj4+IGRldmljZSBiZWZvcmUgZW5hYmxpbmcgbWVtb3J5IGRlY29kaW5n
LCBldmVuIGlmIHNvbWUgb2YgdGhlbSBkbyBub3QNCj4+Pj4+Pj4+IHN1cHBvcnQgcmVzaXppbmcu
DQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gSSBtaWdodCBoYXZlIHRvIHByb3ZpZGUgYSBwYXRjaCB3aXRo
IGFkZGl0aW9uYWwgbWVzc2FnZXMgdG8gc2VlIHdoYXQncw0KPj4+Pj4+Pj4gZ29pbmcgb24uDQo+
Pj4+Pj4+DQo+Pj4+Pj4+IE9uZSBuaXQgdGhhdCBJJ3ZlIG5vdGljZWQgd2l0aCB0aGUgcGF0Y2gg
SSBnYXZlIHlvdSBwcmV2aW91c2x5IGlzIHRoYXQNCj4+Pj4+Pj4gdGhlIGNoZWNrIGZvciBhIHNp
emUgY2hhbmdlIGluIG1vZGlmeV9iYXJzKCkgc2hvdWxkIGJlIGRvbmUgYWhlYWQgb2YNCj4+Pj4+
Pj4gcGNpX2NoZWNrX2JhcigpLCBvdGhlcndpc2UgdGhlIGNoZWNrIGlzIHBvc3NpYmx5IHVzaW5n
IGFuIG91dGRhdGVkDQo+Pj4+Pj4+IHNpemUuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IEkndmUgYWxzbyBh
ZGRlZCBhIGRlYnVnIG1lc3NhZ2UgdG8gbm90aWZ5IHdoZW4gYSBCQVIgcmVnaXN0ZXIgaXMNCj4+
Pj4+Pj4gd3JpdHRlbiBhbmQgcmVwb3J0IHRoZSBuZXcgYWRkcmVzcy4gIFRoaXMgaXMgZG9uZSB1
bmNvbmRpdGlvbmFsbHksIGJ1dA0KPj4+Pj4+PiBpZiB5b3UgdGhpbmsgaXQncyB0b28gY2hhdHR5
IHlvdSBjYW4gbGltaXQgdG8gb25seSBwcmludGluZyBmb3IgdGhlDQo+Pj4+Pj4+IGRldmljZSB0
aGF0IGhhcyB0aGUgUmVCQVIgY2FwYWJpbGl0eS4NCj4+Pj4+PiBFcnJvcnMgYXJlIHRoZSBzYW1l
Lg0KPj4+Pj4+IEF0dGFjaGVkIHRoZSBkbWVzZywgeGwgZG1lc2csIHBhdGNoIGFuZCBsc3BjaSBv
dXRwdXQuDQo+Pj4+Pj4gSSB3aWxsIGFsc28gY29udGludWUgdG8gZGVidWcgeW91ciBtZXRob2Qg
b24gbXkgc2lkZSB0byB0cnkgdG8gZ2V0IHNvbWUgZmluZGluZ3MuDQo+Pj4+Pg0KPj4+Pj4gSGVs
bG8sDQo+Pj4+Pg0KPj4+Pj4gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhlIG91dHB1dCwgYW5kIGl0
IGFsbCBzZWVtcyBmaW5lLCBleGNlcHQgdGhlDQo+Pj4+PiAwMzowMC4wIGRldmljZSB0aGF0IGJl
Y29tZXMgYnJva2VuIGF0IHNvbWUgcG9pbnQsIG5vdGUgdGhlIGxzcGNpDQo+Pj4+PiBvdXRwdXQg
bGlzdHMgW3ZpcnR1YWxdIG5leHQgdG8gdGhlIHJlc291cmNlIHNpemVzLiAgVGhpcyBtZWFucyBy
ZWFkaW5nDQo+Pj4+PiBmb3IgdGhlIHJlZ2lzdGVycyByZXR1cm5lZCAwLCBzbyB0aGUgcG9zaXRp
b24gYW5kIHNpemVzIGFyZSBwcm92aWRlZA0KPj4+Pj4gZnJvbSB0aGUgaW50ZXJuYWwgT1MgaW5m
b3JtYXRpb24uDQo+Pj4+Pg0KPj4+Pj4gSSdtIGFzc3VtaW5nIHRoZSBwYXRjaCB5b3Ugc2VudCB0
byB0aGUgbGlzdCBkb2Vzbid0IGxlYWQgdG8gc3VjaCBlcnJvcnMsDQo+Pj4+IFllcywgdGhlIG1l
dGhvZCBvZiBteSBwYXRjaCBkb2Vzbid0IGxlYWQgdG8gYW55IGVycm9ycy4NCj4+Pj4gSSBhdHRh
Y2hlZCB0aGUgZG1lc2csIHhsIGRtZXNnIGFuZCBsc3BjaSBsb2dzIG9mIG15IG1ldGhvZC4NCj4+
Pj4NCj4+Pj4+IGluIHdoaWNoIGNhc2UgSSBjYW4gb25seSBndWVzcyB0aGF0IGZldGNoaW5nIHRo
ZSBzaXplIG9mIHRoZQ0KPj4+Pj4gQkFScyBpbiBtb2RpZnlfYmFycygpIGNhdXNlcyBpc3N1ZXMg
d2l0aCB0aGUgZGV2aWNlLg0KPj4+Pj4NCj4+Pj4+IFRvIGNvbmZpcm0gdGhpcywgY2FuIHlvdSB0
cnkgdGhlIGZvbGxvd2luZyBwYXRjaCBvbiB0b3Agb2YgeW91ciBvcmlnaW5hbCBjaGFuZ2U/ICAN
Cj4+Pj4gSSB0cmllZCBiZWxvdyBwYXRjaCB3aXRoIG15IG9yaWdpbmFsIHBhdGNoLCBpdCBkaWRu
J3QgY2F1c2UgYW55IGVycm9ycy4NCj4+Pj4gQW5kIHRoZSBsc3BjaSBzaG93ZWQgd2l0aG91dCB0
aGUgIlt2aXJ0dWFsXSIuDQo+Pj4+IFNvLCB1bmZvcnR1bmF0ZWx5LCBpdCBpcyBub3QgcmVsYXRl
ZCB0byB0aGUgZmV0Y2hpbmcgc2l6ZSBvZiBCYXJzIGluIG1vZGlmeV9iYXJzKCkuDQo+Pj4NCj4+
PiBJIHNlZSwgSSdtIGF0IGEgbG9zcyBhcyB0byB3aGF0J3Mgd3Jvbmcgd2l0aCBteSBwYXRjaC4g
IERvIHlvdSBoYXZlDQo+Pj4gYW55IGFkZGl0aW9uYWwgcGF0Y2hlcyBvbiBYZW4gd2hlbiB0ZXN0
aW5nIHlvdXIgb3IgbXkgYXBwcm9hY2g/DQo+PiBObywganVzdCBteSBwYXRjaCBvciB5b3VyIHBh
dGNoLCBiYXNlIG9uIHVwc3RyZWFtIGNvZGVzKGtlcm5lbCBicmFuY2ggaXMgbGludXgtbmV4dCBh
bmQgeGVuIGJyYW5jaCBpcyBzdGFnaW5nKS4NCj4+DQo+Pj4NCj4+PiBJIHNhZGx5IGRvbid0IGhh
dmUgYW55IGJveCB3aXRoIGEgUENJIGRldmljZSB0aGF0IGV4cG9zZXMgdGhlDQo+Pj4gcmVzaXph
YmxlIEJBUiBjYXBhYmlsaXR5LCBzbyBJJ20gbm90IGFibGUgdG8gdGVzdCBvciBkZWJ1ZyB0aGlz
Lg0KPj4+DQo+Pj4gSSB3b3VsZCBsaWtlIHRvIHVuZGVyc3RhbmQgd2h5IG15IGFwcHJvYWNoIGRv
ZXNuJ3Qgd29yaywgYXMgb3RoZXJ3aXNlDQo+Pj4gSSBmZWVsIGxpa2UgSSdtIG1pc3NpbmcgaG93
IFJlQkFSIGlzIHN1cHBvc2VkIHRvIHdvcmsuICBBbnl3YXksIGlmIHlvdQ0KPj4+IGNhbiBnaXZl
IGEgdHJ5IHRvIHRoZSBkaWZmIGJlbG93LCBpdCdzIHRoZSBzYW1lIHBhdGNoLCBidXQgd2l0aCB5
ZXQNCj4+PiBldmVuIG1vcmUgZGVidWcgbWVzc2FnZXMgYWRkZWQuDQo+PiBBdHRhY2hlZCB0aGUg
eGwgZG1lc2cuDQo+Pg0KPj4+DQo+Pj4gVGhhbmtzLCBhbmQgc29ycnkgZm9yIGtlZXBpbmcgeW91
IHRlc3RpbmcgaXQuDQo+PiBUaGF0J3MgZmluZSwgZmVlbCBmcmVlIHRvIHNlbmQgbWUgaWYgeW91
IG5lZWQgbW9yZSB0ZXN0IGluZm9ybWF0aW9uLg0KPj4gQWN0dWFsbHkgSSBhbSBzdGlsbCBjb250
aW51aW5nIHRvIGRlYnVnIHlvdXIgcGF0Y2ggYW5kIGFsc28gY3VyaW91cyBhYm91dCB3aHkgeW91
ciBwYXRjaCBkb2VzIG5vdCB3b3JrLg0KPj4NCj4+IFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2Vl
biBvdXIgbWV0aG9kcyBpcyB0aGUgdGltaW5nIG9mIHVwZGF0aW5nIHRoZSBzaXplLg0KPj4gWW91
cnMgaXMgbGF0ZXIgdGhhbiBtaW5lIGJlY2F1c2UgeW91IHVwZGF0ZWQgdGhlIHNpemUgd2hlbiB0
aGUgZHJpdmVyIHJlLWVuYWJsZWQgbWVtb3J5IGRlY29kaW5nLCB3aGlsZSBJIHVwZGF0ZWQgdGhl
IHNpemUgaW4gdGltZSB3aGVuIGRyaXZlciByZXNpemUgaXQuDQo+IA0KPiBJbmRlZWQsIG15IGxh
c3QgZ3Vlc3MgaXMgdGhlIHN0YWxlIGNhY2hlZCBzaXplIGlzIHNvbWVob3cgdXNlZCBpbiBteQ0K
PiBhcHByb2FjaCwgYW5kIHRoYXQgbGVhZHMgdG8gdGhlIGZhaWx1cmVzLiAgT25lIGxhc3QgKHBv
c3NpYmx5IGR1bW15PykNCj4gdGhpbmcgdG8gdHJ5IG1pZ2h0IGJlIHRvIHVzZSB5b3VyIHBhdGNo
IHRvIGRldGVjdCB3cml0ZXMgdG8gdGhlIHJlc2l6ZQ0KPiBjb250cm9sIHJlZ2lzdGVyLCBidXQg
dXBkYXRlIHRoZSBCQVIgc2l6ZXMgaW4gbW9kaWZ5X2JhcnMoKSwgd2hpbGUNCj4ga2VlcGluZyB0
aGUgdHJhY2VzIG9mIHdoZW4gdGhlIG9wZXJhdGlvbnMgaGFwcGVuLg0KVGhpcyBzZWVtcyB0byBi
ZSB0aGUgc2FtZSBhcyB5b3VyIG1ldGhvZC4NCkJ1dCBJIHdpbGwgdGFrZSBhIHRyeS4NCg0KPiAN
Cj4+IEkgc3VzcGVjdCB0aGF0IHRoZSBkcml2ZXIgb3IgaHlwZXJ2aXNvciBtYXkgaGF2ZSBkb25l
IHNvbWV0aGluZyBpbiBiZXR3ZWVuIGFuZCByZWFkIG91dGRhdGVkIGluZm9ybWF0aW9uLg0KPj4g
SSBhbSBkZWJ1Z2dpbmcgdGhlIGRyaXZlciBjb2Rlcy4NCj4gDQo+IFRoYW5rcyBmb3IgZG9pbmcg
dGhpcy4NCj4gDQo+IEkgaGF2ZSBhIGNvdXBsZSBvZiBzaWRlIHVucmVsYXRlZCBub3Rlcywgc29t
ZXRoaW5nIEkndmUgbm90aWNlZCBmcm9tDQo+IHRoZSB0cmFjZSB5b3UgcHJvdmlkZWQsIHRha2lu
ZyBkZXZpY2UgMDAwMDowMzowMC4xIGFzIGFuIGV4YW1wbGU6DQo+IA0KPiAoWEVOKSAwMDAwOjAz
OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMA0KPiAoWEVOKSAwMDAwOjAzOjAw
LjE6IHdyaXRlIEJBUjAgdmFsOiAweGZmZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMA0K
PiAoWEVOKSAwMDAwOjAzOjAwLjE6IHdyaXRlIEJBUjAgdmFsOiAweGQwNzAwMDAwIEJBUjAgYWRk
cmVzczogMHhkMDcwMDAwMA0KPiAoWEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDog
MyByb21fb25seTogMA0KPiAoWEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCBy
b21fb25seTogMA0KPiAoWEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21f
b25seTogMA0KPiAoWEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25s
eTogMA0KPiAoWEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTog
MA0KPiAoWEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMA0K
PiAoWEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMA0KPiAo
WEVOKSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMA0KPiAoWEVO
KSAwMDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMA0KPiAoWEVOKSAw
MDAwOjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMA0KPiAoWEVOKSAwMDAw
OjAzOjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMA0KPiAoWEVOKSAwMDAwOjAz
OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMA0KPiAoWEVOKSAwMDAwOjAzOjAw
LjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMA0KPiAoWEVOKSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjAzOjAwLjENCj4gDQo+IExpbnV4IHRvZ2dsZXMgbWVtb3J5IGRlY29kaW5nIGluZGl2
aWR1YWxseSBmb3Igc2l6aW5nIGVhY2ggQkFSLiAgVGhpcw0KPiBpcyB2ZXJ5IGNvc3RseSB3aGVu
IHJ1bm5pbmcgdmlydHVhbGl6ZWQgKGFzIGxlYXN0IG9uIFhlbiksIGFzIHRvZ2dsaW5nDQo+IHRo
ZSBtZW1vcnkgZGVjb2RpbmcgYml0IGltcGxpZXMgdGVhcmluZyBkb3duIG9yIGNyZWF0aW5nIHAy
bSBtYXBwaW5ncw0KPiBmb3IgYWxsIHRoZSBCQVJzIG9mIHRoZSBkZXZpY2UuICBJdCB3b3VsZCBi
ZSBtdWNoIGJldHRlciBpZiBMaW51eA0KPiB0b2dnbGVkIG1lbW9yeSBkZWNvZGluZywgc2l6ZWQg
YWxsIHRoZSBCQVJzIG9mIHRoZSBkZXZpY2UsIGFuZCB0aGVuDQo+IGVuYWJsZWQgbWVtb3J5IGRl
Y29kaW5nIGFnYWluLiAgSWYgZG9uZSB0aGF0IHdheSB5b3UgY291bGQgcHJvYmFibHkNCj4gcmVk
dWNlIGJvb3QgdGltZSBvZiBMaW51eCBQVkggZG9tMCBub3RpY2VhYmx5Lg0KVGhhbmtzLCBpdCBp
cyBoZWxwZnVsIHNpbmNlIEkgd2lsbCBuZWVkIHRvIHJlZHVjZSB0aGUgYm9vdCB0aW1lIGluIGZ1
dHVyZS4NCg0KPiANCj4gU2Vjb25kbHksIHRoZSBjYWxsIHRvICJQQ0kgYWRkIGRldmljZSIgaXMg
dG9vIGxhdGUuICBJdCB3b3JrcyBub3cNCj4gYmVjYXVzZSBYZW4gc2NhbnMgZm9yIFBDSSBkZXZp
Y2VzLCBzbyB0aG9zZSBhcmUgYWxyZWFkeSBrbm93biBhbmQNCj4gc2V0dXAgYnkgWGVuLiAgQnV0
IGlmIGl0J3MgYSBob3RwbHVnIGRldmljZSAob3IgYSBkZXZpY2UgdGhhdCBzb21laG93DQo+IGlz
IG5vdCBkaXNjb3ZlcmVkIGJ5IFhlbiBhdCBib290KSwgZG9pbmcgdGhlIFBIWVNERVZPUF9wY2lf
ZGV2aWNlX2FkZA0KPiBoeXBlcmNhbGwgYWZ0ZXIgc2l6aW5nIHRoZSBkZXZpY2UgaXMgd3Jvbmcs
IHRoZSBoeXBlcmNhbGwgc2hvdWxkIGJlDQo+IGRvbmUgYWhlYWQgb2YgTGludXggaW50ZXJhY3Rp
bmcgd2l0aCB0aGUgZGV2aWNlIGluIGFueSBtZWFuaW5nZnVsIHdheS4NCj4gVGhlIGNoZWNrcyBk
b25lIGZvciBkZXZpY2UgZGlzY292ZXJ5IGFyZSBmaW5lIGFyZSBvYnZpb3VzbHkgZmluZSB0byBi
ZQ0KPiBkb25lIGFoZWFkIG9mIHRoZSBQSFlTREVWT1BfcGNpX2RldmljZV9hZGQgY2FsbC4NCj4g
DQo+IFRoYW5rcywgUm9nZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 10:36:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 10:36:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841003.1256515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDi4M-00081t-5X; Wed, 20 Nov 2024 10:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841003.1256515; Wed, 20 Nov 2024 10:36: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 1tDi4M-00081m-2N; Wed, 20 Nov 2024 10:36:22 +0000
Received: by outflank-mailman (input) for mailman id 841003;
 Wed, 20 Nov 2024 10:36: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=uiNg=SP=bounce.vates.tech=bounce-md_30504962.673dbb9d.v1-5b22aaac3f6847c9ac33542cd5e1380b@srs-se1.protection.inumbo.net>)
 id 1tDi4K-00081g-LZ
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 10:36:20 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4434438a-a72b-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 11:36:15 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4Xtd7d1WX9z3sPRqZ
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 10:36:13 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5b22aaac3f6847c9ac33542cd5e1380b; Wed, 20 Nov 2024 10:36: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: 4434438a-a72b-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjQ0MzQ0MzhhLWE3MmItMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDk4OTc1LjE0ODE1OCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2RiYjlkLnYxLTViMjJhYWFjM2Y2ODQ3YzlhYzMzNTQyY2Q1ZTEzODBiQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732098973; x=1732359473;
	bh=CTl+oQL607saCMY7it/Nb12fMfn5nfirlTEQZcHciXQ=;
	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=TffVtotLeaQQhLMAYGtSzmZjhFGs976s3bEhMOa3XgYXQpfMF00t1Hsn260Yh7c1z
	 QSLtK97L4YLzH/f/6ceNtW53R4++dIrI9CH3JGcToYxEM947qD+8TXlzLvkKO4OoyV
	 x4hDkApq6yK7kq4HMYf9cw5XBLWkdb1I/PEwSifEkQAjBj3arZljQfbpSbW15rGE3p
	 pwSRebJYmSNWPqsSfIFN8i0mK1+pSqBVPZrn+TxYEGesNvfjePrlHorsYFYdlEGt3V
	 LO/ojCILgAYQN7OCj5D8K3y/ob3SoPXeRGGLBfyDzBkq57gOveym8Gq+5hXDIjhWMF
	 jGAvkpIFgeQ/g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732098973; x=1732359473; i=anthony.perard@vates.tech;
	bh=CTl+oQL607saCMY7it/Nb12fMfn5nfirlTEQZcHciXQ=;
	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=1LY4nGzwLbuFpUy1StucxD1NW4jUjJsfGn5yFfMIEaHAJw4y+P2Ta6AoB0iTZ9kIl
	 Qwqo8I6SA0KDBIldUJSE2dlPol78VAnkf2S/icaegdLdK4JxTTkXGAUQvNE1g9jniD
	 tQ7UjRyt4o/AhNOhK5hVMOua/BInMgv4Tph8qQHTR0dPlS1lhbglMvZ2kFw/X6xbS6
	 m+cpZvvyFakCmj9Tqu8bJOigrqnEXS//t5PJYH9PNQX5DtAvY88F5BYzKtnXyGULU0
	 fj2ZS0ipnYp3XRm6hJxOzQEUNC6a84/jnIMGi8DhUguSzEISKePOqbV1o79n+b6tA0
	 kcYP98YC/IjXw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH=20v2=203/3]=20CI:=20New=20stage=20"containers"=20to=20rebuild=20some=20containers?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732098971823
To: "Stefano Stabellini" <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Doug Goldstein" <cardoe@cardoe.com>, committers@xenproject.org
Message-Id: <Zz27m452NC9gDlWo@l14>
References: <20241119101449.49747-1-anthony.perard@vates.tech> <20241119101449.49747-4-anthony.perard@vates.tech> <alpine.DEB.2.22.394.2411191347100.1160299@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2411191347100.1160299@ubuntu-linux-20-04-desktop>
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.5b22aaac3f6847c9ac33542cd5e1380b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241120:md
Date: Wed, 20 Nov 2024 10:36:13 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Nov 19, 2024 at 01:47:16PM -0800, Stefano Stabellini wrote:
> On Tue, 19 Nov 2024, Anthony PERARD wrote:
> > Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
> > set. This is to be use with a scheduled pipeline.
> > 
> > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks!

I've scheduled a pipeline to run once a month so the Arch Linux and
Tumbleweed containers we'll get rebuilt regularly. Both container are
already up-to-date because I failed to use a different registry during
one of my test, but the build-jobs still works.

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 Nov 20 10:44:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 10:44:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841012.1256525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDiBu-0001WH-T0; Wed, 20 Nov 2024 10:44:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841012.1256525; Wed, 20 Nov 2024 10:44: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 1tDiBu-0001WA-Pp; Wed, 20 Nov 2024 10:44:10 +0000
Received: by outflank-mailman (input) for mailman id 841012;
 Wed, 20 Nov 2024 10:44: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=5Fky=SP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDiBt-0001W4-5G
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 10:44:09 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5cfca258-a72c-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 11:44:05 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-539f1292a9bso2373790e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 02:44: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-433b45d178esm14542145e9.8.2024.11.20.02.44.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 02:44: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: 5cfca258-a72c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVjZmNhMjU4LWE3MmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMDk5NDQ1LjM0NTk1Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732099445; x=1732704245; 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=AVb9RqPJ6u+aeso1HssXLb7aeoNWaj+KGHtJlU0nEpc=;
        b=AojjPxjpUmab8eQFjkDvlBlAot7fF7Mum/vYD8MMWWxelSgPBBLJsfdovXPF1+XmLL
         jm7Z7prIOSvvR9rFlsj95NT6YkmFMr5RMqkp1bD5YixMc58J+Vk9QM2CA+7EMD6BGB6t
         rfXd6dV9LBJho67duqqaOE0hOelviskB1cAJBDA4C3mHpajb3gnBYQwIorOtJBlSJ1i4
         HkNFxEQ4wkXfH1sOVU0QWEqTxO6DUc6AZ+28n8Glofbic1VW8mHmsoSTm2G+Pcjtfvvh
         ERsoDEUoxc+0KESmDLS4RFw0fiSM8Qxfd3Wz5fyRcdD+c30EEqbfPg8/10+5M/nFxBdl
         Lb5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732099445; x=1732704245;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AVb9RqPJ6u+aeso1HssXLb7aeoNWaj+KGHtJlU0nEpc=;
        b=kCzfT0JNAtU/UXeHOWAD1vMelmH62JKjH/iKpLoAi1OpPhbMQk9BwtdnhwXwgkagcz
         GBr80pYbujQXnIpWFVz4XPww7HPFztX6CGrFMNSgLoqLvXBRxtdxkAj1FGrRue/B32W6
         PIrqkS8ZvVk0lU1qfkl8azB3zRwGGfrIuTQ1K9xpMI6qqFBB0eQKaKbbD+TorUZOqXzl
         wSt+EKIlzZ2HB484FZVEoqrhPjZK9wuTHoD6JIEVAjBTfMkBr8hN/hNE33TT0hC7TT6/
         PsFQmAA3zn5vWJ1e9S3z00lza6lf/kGIpMkGB40fkfqQND5s7yEAJGMbXdp5PVOrsAGd
         ezrg==
X-Forwarded-Encrypted: i=1; AJvYcCVkrcdOjDDKhl4QEmSALcEOrvAdvb1Th3jRryixr136KtsHfs8EqSj69scrE4OcWFZH+qH4+/ghIwI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+13AGLo7vHFcySFiydMri63lsUwLhEDVnSN3QqqgRxVP4Pjb2
	IMf6sr9NTUxTu6/bFUJTNDdT5+/G4iQdeWrcSmuNCI+90JmTDVtfcZrowfcaZjFbJ0M7q9ataaA
	=
X-Google-Smtp-Source: AGHT+IEaq0iW3IZGrLgPpx0+AMedGpJ/Ax0lOFS2wMOi973frHxR/pIDQmnNeEhIkXp3EN01YGuLZA==
X-Received: by 2002:a05:6512:3d8f:b0:53d:ab15:1aee with SMTP id 2adb3069b0e04-53dc136dc37mr915879e87.49.1732099444582;
        Wed, 20 Nov 2024 02:44:04 -0800 (PST)
Message-ID: <7ffe1d78-188b-495b-914a-663181d9faa8@suse.com>
Date: Wed, 20 Nov 2024 11:44:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Load microcode much earlier on boot
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241119215708.2890691-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: <20241119215708.2890691-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 22:57, Andrew Cooper wrote:
> Following commit cd7cc5320bb2 ("x86/boot: add start and size fields to struct
> boot_module"), bootstrap_map*() works as soon as boot_info is populated.

I'm struggling with following where this connection is coming from. Before
Daniel's work (e.g. in 4.19) we have

    if ( pvh_boot )
    {
        ASSERT(mbi_p == 0);
        pvh_init(&mbi, &mod);
    }
    else
    {
        mbi = __va(mbi_p);
        mod = __va(mbi->mods_addr);
    }

Leaving aside the issue with the PVH side, what would have stood in the way
of accessing any of the modules (e.g. ucode) right afterwards?

The question is also relevant when considering the potential need for
backporting this functionality (even if not directly this change, as the
dependency on Daniel's work would then need stripping off): There might
conceivably be a point where for security needs way may need to have this
as early as you now put it.

> Resolve the todo, and move microcode loading to be the eariest action after
> establishing a console.

So yes, this is merely strengthening a dependency we already have:
bootstrap_map_addr() arranging to avoid allocating any page table memory.
Yet don't we rather need to move away from this? We don't know what's in
the excess space we map, and hence we better wouldn't have any (cachable)
mappings thereof.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 10:50:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 10:50:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841023.1256534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDiIO-0003JW-H9; Wed, 20 Nov 2024 10:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841023.1256534; Wed, 20 Nov 2024 10: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 1tDiIO-0003JP-EL; Wed, 20 Nov 2024 10:50:52 +0000
Received: by outflank-mailman (input) for mailman id 841023;
 Wed, 20 Nov 2024 10: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=5Fky=SP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tDiIN-0003IW-Bj
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 10:50:51 +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 4d39cba7-a72d-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 11:50:48 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43162cf1eaaso57112905e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 02:50: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-382549108c8sm1714188f8f.54.2024.11.20.02.50.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 02:50: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: 4d39cba7-a72d-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRkMzljYmE3LWE3MmQtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMDk5ODQ4LjU4ODQ5Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732099848; x=1732704648; 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=fie6Y9rIOuxwiMWPwAvhoE5N7KVI2j2P/aDF73pN8TU=;
        b=DRW3XhJTTOTSupBAVfkUKniJqD/zf/RAGtKYkSJjcLi5cP0KY8Gh6iRFKNVBJOh2KK
         vj3nm5sBOo5aanMnKOWMQyjGqHV9IdG6pjdIb/atkmSqALdupohccwXEhz2G9llc9Z3R
         Duw7w5bko00OUHNkV+DYwiXtlxu1TIb1irDknerT6snJENqpWx+iWAmkLncdfBC/sqYx
         bq8m7fvV/lR9ix4Yzs1B15y1640JUgC41OREK7uEeR0XjriuUSgUvMQKvnOg81gI2Uqc
         lKipj3RBb3WJbulpV0c8nUIVJF0dxQltmY/n90qgIcrNfpAkaJxiv4HP0S3OwHX+PbOF
         dsMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732099848; x=1732704648;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fie6Y9rIOuxwiMWPwAvhoE5N7KVI2j2P/aDF73pN8TU=;
        b=n4tMTGSQPKXb4FSNxIKw5IaJ6x+hTr8r/nA3LaJB8juW1J9g9nCaBQzFOuZ7s71jPc
         TzB5N1TrLvjQs55rxVi5di4tS24vF0nhiQ0qIuf5/PtuWxIpf4QGbASyGsPkJL0EAjtV
         HjSNLkS2ZBD+SeEzjl0lRfIRmmEws59Kb6jCBowgUkwD9/Hb4E45Bh/QZ2mFpiSUJTtW
         m3iFGtR1D1KSRFHdf7S+W+fZwWcgq3m0odnbyfvuh187KZoYjxQFZT/2oiB3FWZ++ePK
         Dy9WjRG7I8+Yonq6r/GVuusm3ypVVth4QM3Akf5ylGllvKtxeItSeWmh/CMNZ3n91QOE
         yMCQ==
X-Forwarded-Encrypted: i=1; AJvYcCUj3nu7odTNhlDBGQxfu+Czeqr39UuIOYjhhPO+E09ejSGYt4YKSaT8i/4nnXazaZSWaLHDnATgjeA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgRRxFa/ceSXSWN4CoNbXbomdK9oEvwfhhz8K/cnmUi/oR1BQP
	E2yQUe0ARWGaisejUJl5S9HHUR8/2M+9VSHuMQhDk0y2QPB5PFanOfJe4aAeGg==
X-Google-Smtp-Source: AGHT+IED0Z0ZTbe5gnThEjS8KKmJ2FxBH2EnaxIDHvHZ/p/U90VVs29zdHIvHWGiQ5jCaabLQTuZ4A==
X-Received: by 2002:a5d:6c63:0:b0:382:4f7a:7a87 with SMTP id ffacd0b85a97d-38254b1b530mr1995262f8f.48.1732099847837;
        Wed, 20 Nov 2024 02:50:47 -0800 (PST)
Message-ID: <590cc46e-c4e2-44bc-b339-6ffc609314ce@suse.com>
Date: Wed, 20 Nov 2024 11:50:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Only rescan features on successful microcode
 load
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: <20241119215827.2891332-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: <20241119215827.2891332-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 22:58, Andrew Cooper wrote:
> There's no point rescanning if we didn't load something new.  Take the
> opportunity to make the comment a bit more concise.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> @@ -911,14 +915,5 @@ int __init early_microcode_init(struct boot_info *bi)
>  
>      rc = early_microcode_load(bi);
>  
> -    /*
> -     * Some CPUID leaves and MSRs are only present after microcode updates
> -     * on some processors. We take the chance here to make sure what little
> -     * state we have already probed is re-probed in order to ensure we do
> -     * not use stale values. tsx_init() in particular needs to have up to
> -     * date MSR_ARCH_CAPS.
> -     */
> -    early_cpu_init(false);
> -
>      return rc;
>  }

In principle with this rc could be dropped from the function. It's then further
unclear why early_microcode_load() needs to be a separate function, rather than
simply being inlined here (as I expect the compiler is going to do anyway). But
yes, one thing at a time ...

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 11:25:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 11:25:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841034.1256544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDipE-0007lq-V0; Wed, 20 Nov 2024 11:24:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841034.1256544; Wed, 20 Nov 2024 11:24: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 1tDipE-0007lj-SX; Wed, 20 Nov 2024 11:24:48 +0000
Received: by outflank-mailman (input) for mailman id 841034;
 Wed, 20 Nov 2024 11:24: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=8JZW=SP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDipD-0007ld-RL
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 11:24:47 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 07d124e3-a732-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 12:24:39 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso950148366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 03:24:39 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df4e7bfsm759572766b.42.2024.11.20.03.24.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 03:24: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: 07d124e3-a732-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA3ZDEyNGUzLWE3MzItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTAxODc5LjUyMTk2Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732101879; x=1732706679; 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=nEidrNIIKyj9cg+1/5aijPsY+kQKUdZX0n92ri2i0BA=;
        b=PRSDvEwucWjqXL0mQlLtDZGOcldqXttl7+tBWOntsxFUFwjBB/+Os3YBupgW9mDCAg
         dPuoLHU4NYhWwtEWZdOtMyQm5H64t/UGHKnPmxji6uZrO23OpeUcuLd1xkDHDXDP8q4W
         BQUkE5n80ytqFqUDollEX7tYijsaw9RIrw/vU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732101879; x=1732706679;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nEidrNIIKyj9cg+1/5aijPsY+kQKUdZX0n92ri2i0BA=;
        b=N+XoPjRCY6J2alH4xcrsbx+kAH1vixOx1p9xX1WOCXKOvsaAPtioQyq4PDJhsjLBoR
         t/JQLT8Um2beTewFERxz5G9SKm1itOAm8gsYzCreDIKr8vi0XtxszDE+Ie3l95Wb+mrd
         EzOPkjyyIXZsqg8KBAPU4xektmklyqlzv6aRZS3FQEkMgF8DwFrMgi0OtXj3XIetSV3F
         WutS0crGzkX6TMvhLfN+fTkOffO79aUYuguHwKuf+1tqpRueMThHxWI0O/0vPW2XBgdz
         3F5lGUniSVvHuSTdR5BRm+rd5BJSTn2QTrV3n+9T4dF7doXWCO9RCn48hDJlx8bPCPKe
         KbbQ==
X-Forwarded-Encrypted: i=1; AJvYcCWj9yU+pc2EzLVdMQJq/WPama23zr3tCiSDSw1zuoVaZNUD1KzjbAUF+BXn9CPQtNshTueZNgPqrkk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhCJTzZ6Q0o61aMJpxmhU5m8olbdWKbS/KC8QCMai/RNcSy3xU
	YeTghuRe8dE3xduDNigTKQRVaBFK9HmJpZCawO/39wxqNVmG0kX5E6J2QqwKicQ=
X-Google-Smtp-Source: AGHT+IGKgRQ4hYgkgwIXEnteTVpv7NZOGrBfJbdI75s/lanaamxXtLMZU8lbbyCd/PeVYVW+tjcudA==
X-Received: by 2002:a17:906:4793:b0:a99:fb56:39cc with SMTP id a640c23a62f3a-aa4dd71e7famr230956466b.38.1732101878962;
        Wed, 20 Nov 2024 03:24:38 -0800 (PST)
Message-ID: <39c24cf2-73ac-4da2-84e3-8caee653e83d@citrix.com>
Date: Wed, 20 Nov 2024 11:24:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Load microcode much earlier on boot
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241119215708.2890691-1-andrew.cooper3@citrix.com>
 <7ffe1d78-188b-495b-914a-663181d9faa8@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <7ffe1d78-188b-495b-914a-663181d9faa8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/11/2024 10:44 am, Jan Beulich wrote:
> On 19.11.2024 22:57, Andrew Cooper wrote:
>> Following commit cd7cc5320bb2 ("x86/boot: add start and size fields to struct
>> boot_module"), bootstrap_map*() works as soon as boot_info is populated.
> I'm struggling with following where this connection is coming from.

Specifically, the final hunk:

> @@ -1416,12 +1420,6 @@ void asmlinkage __init noreturn
> __start_xen(void) if ( bi->mods[i].start & (PAGE_SIZE - 1) )
> panic("Bootloader didn't honor module alignment request\n"); - /* - *
> TODO: load ucode earlier once multiboot modules become accessible - *
> at an earlier stage. - */ - early_microcode_init(bi); - if (
> xen_phys_start ) { struct boot_module *xen = &bi->mods[bi->nr_modules];

The context with panic() used to read:

Â Â Â  panic("Bootloader didn't honor module alignment request\n");
Â Â Â  bi->mods[i].mod->mod_end -= bi->mods[i].mod->mod_start;
Â Â Â  bi->mods[i].mod->mod_start >>= PAGE_SHIFT;

and calling bootstrap_map() prior to that mapped junk because the start
is wrong by PAGE_SHIFT.

This is why the TODO was inserted the last time around when we couldn't
move loading as early as wanted.


I suppose in principle this could be backported if we took
bootstrap_map_addr() (which is a self-contained patch), and adjusted
early_microcode_init() to avoid using bootstrap_map(), but it feels
rather fragile, and still depends on most of the ucode fixes.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 11:36:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 11:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841042.1256554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDj08-00016A-UF; Wed, 20 Nov 2024 11:36:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841042.1256554; Wed, 20 Nov 2024 11:36: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 1tDj08-000163-RO; Wed, 20 Nov 2024 11:36:04 +0000
Received: by outflank-mailman (input) for mailman id 841042;
 Wed, 20 Nov 2024 11:36: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=E1p6=SP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDj07-00015r-6g
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 11:36:03 +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 9d231f9a-a733-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 12:35:59 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5cfd2978f95so3933816a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 03:35:59 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dfffdb0sm768906066b.125.2024.11.20.03.35.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Nov 2024 03:35: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: 9d231f9a-a733-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkMjMxZjlhLWE3MzMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTAyNTU5LjQ5MjMyMiwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732102559; x=1732707359; 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=hQ46npOWgx/WbIOYgHqPXYUeHgCtD6U4gQy/xG8N7wY=;
        b=knl5M0fSsdlpWK4x5d1SdI+k4YZB+bCfHnud+R/SQUXmOiRgUgS2RNXmGS27KyqlIl
         y5LX1Ao65ImMPUju59DpL29jtDvUMfrLta0VQzRHn6Wm1Ol0nNR+v4k5gkBhPImkJhq+
         I444OFPxSFdv3swj+16+4K7pkWRNB2pVi7J44=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732102559; x=1732707359;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=hQ46npOWgx/WbIOYgHqPXYUeHgCtD6U4gQy/xG8N7wY=;
        b=GEWzvokhqAJXruVQTDnOTIMGNMCEhLFd5q2gXy/zp8ZEPp4UuxRwKdIiQhqPiaBLGo
         3Jd9yyhDYA02cdjqso4CHOwqWYEKqnbV6l4f7jWiAxYI+ThklIQ7GaHZtNsXPw+XpVAc
         3kPKclH9MrXSFIEKEFvK4ZtHYV5cUxEnxmMqZ38OBuC+x3BCA7L6ATSqI/ZFCsYDCdP5
         jDOPHoXNBUTShNhVC9m61J4C7eFFLZSHw3Bi+t194NBtm1gz51aqEjWwVwZErgaymZ2H
         f0jKrSMKmKBZPmJR0WOxKe0B9nOeV/b273QWBhH7FDLyRiG476fdt1nDoJ5CMybJH70O
         s1AQ==
X-Gm-Message-State: AOJu0YzLgnjBDsqX2Mf6QB3OORwf7uFNhn0Zaa8tUbNOtJNZeRW2q5Ag
	FrF4l6aTAgifFegyoHYcszRWmpNHYqPe9DS8FeDrYehkPFa0ANisAkJ2Kug1kZi2PqWTbENaR9+
	D
X-Google-Smtp-Source: AGHT+IEemFG57UORNq0u0yeCst6K8CkUmxTMtpYDDk4WTfHuyNbOOth7yIiVUUt4nL6m8cumJ3HgBw==
X-Received: by 2002:a17:907:1b02:b0:a99:f0f4:463d with SMTP id a640c23a62f3a-aa4dd59e494mr247555966b.26.1732102558664;
        Wed, 20 Nov 2024 03:35:58 -0800 (PST)
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 0/2] x86/irq: fix calculation of maximum pIRQs for dom0
Date: Wed, 20 Nov 2024 12:35:53 +0100
Message-ID: <20241120113555.38146-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

First patch is a fix for the calculation of the max number of pIRQs
allowed to dom0, second patch fixes the print of dom0 pIRQ limits so
it's also printed for a PVH dom0.

Thanks, Roger.

Roger Pau Monne (2):
  x86/irq: fix calculation of max PV dom0 pIRQs
  x86/pvh: also print hardware domain pIRQ limit for PVH

 xen/arch/x86/io_apic.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 20 11:36:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 11:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841043.1256559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDj09-00018v-6S; Wed, 20 Nov 2024 11:36:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841043.1256559; Wed, 20 Nov 2024 11:36: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 1tDj09-000184-1n; Wed, 20 Nov 2024 11:36:05 +0000
Received: by outflank-mailman (input) for mailman id 841043;
 Wed, 20 Nov 2024 11:36: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=E1p6=SP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDj07-00015s-HJ
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 11:36:03 +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 9dd6be19-a733-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 12:36:00 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9aa8895facso355704066b.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 03:36:00 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e086058sm766537066b.184.2024.11.20.03.35.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Nov 2024 03:35: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: 9dd6be19-a733-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkZDZiZTE5LWE3MzMtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTAyNTYwLjY2Mjc0MSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732102560; x=1732707360; 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=86sTbQPzilf+WSdJgcVW1D6hKA0N+3C25zpjw6B93xw=;
        b=bFjDmi0csSktofm3JPgjwCD5E5oET0MZ+rgZiyMZxelvtGht12oBDocUgiSI+HezQ9
         X6b1c9WPA9iCh6YZcidxpg5XgJyeU0sv3PGK7Fen86pSf2rPynYZ2SJluMS37fqjIMbW
         KS2weP2Y0+w5PHZfMFaZRbxQXR1ojFWT8lEQ8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732102560; x=1732707360;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=86sTbQPzilf+WSdJgcVW1D6hKA0N+3C25zpjw6B93xw=;
        b=QqeqD/nlMOFDTo+/UzXXfmUYPHlhWJPiTwrN+hHKX7oCnYcqyFlNcqx/1/t1icafTP
         vwD2IEZvHWOcAV3kR6uTG8U8RwBuVB7Ge+snYOyYhhGOs7ilUpxOor5p6A5Qc9ip5fWn
         rtVnLIRypgrcWS8/Qfdw+EZ6VEjz8XyoMom2ga1ryvlf1co7/Mt4oeHF8IL2lWZu3bt7
         a1wtI+HAzfYq0rS/jGv6nR3whb4WvdoWhgrVwkBr8QBUiX3OpgmfPRIecDQB0PSKsIaL
         NVR337Iz+vbqRZ0dmTbq5HOdEo+2cRS+hRR5Cnv5L9R45n1qxueV5k0eoIRii6npqoEb
         A38g==
X-Gm-Message-State: AOJu0YyX+qiingvUNdaoXQ19gyHhmtaAUISFAri0wg+VJt2gL32vsk63
	BzZRZJxxXZY6GjvfPQFeSEZyFkoUVzF6VgMugeWnKSXQxm3A0yHqNyJVoY1bbMZmdMNAEzhrdI2
	Y
X-Google-Smtp-Source: AGHT+IFo4N9LnGujJoDz1RqufZwRegILqY9+Yy/YBA3+QwwcYfB0R6VoUFM8Z5hR6fBQ0o0l2/PjjQ==
X-Received: by 2002:a17:907:2da2:b0:a9f:450:48eb with SMTP id a640c23a62f3a-aa4dd71a2c0mr206835866b.45.1732102559783;
        Wed, 20 Nov 2024 03:35:59 -0800 (PST)
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 1/2] x86/irq: fix calculation of max PV dom0 pIRQs
Date: Wed, 20 Nov 2024 12:35:54 +0100
Message-ID: <20241120113555.38146-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241120113555.38146-1-roger.pau@citrix.com>
References: <20241120113555.38146-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current calculation of PV dom0 pIRQs uses:

n = min(fls(num_present_cpus()), dom0_max_vcpus());

The usage of fls() is wrong, as num_present_cpus() already returns the number
of present CPUs, not the bitmap mask of CPUs.

Fix by removing the usage of fls().

Fixes: 7e73a6e7f12a ('have architectures specify the number of PIRQs a hardware domain gets')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/io_apic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index d44d2c9a4173..bd5ad61c85e4 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2744,7 +2744,7 @@ void __init ioapic_init(void)
 
 unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
 {
-    unsigned int n = fls(num_present_cpus());
+    unsigned int n = num_present_cpus();
     /* Bounding by the domain pirq EOI bitmap capacity. */
     const unsigned int max_irqs = min_t(unsigned int, nr_irqs,
                                         PAGE_SIZE * BITS_PER_BYTE);
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 20 11:36:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 11:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841044.1256574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDj0A-0001Yv-Gu; Wed, 20 Nov 2024 11:36:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841044.1256574; Wed, 20 Nov 2024 11:36: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 1tDj0A-0001Yo-E7; Wed, 20 Nov 2024 11:36:06 +0000
Received: by outflank-mailman (input) for mailman id 841044;
 Wed, 20 Nov 2024 11: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=E1p6=SP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tDj0A-00015s-2q
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 11:36:06 +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 9e80d060-a733-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 12:36:01 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-aa4b439c5e8so562294566b.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 03:36:01 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20df2649esm755526366b.39.2024.11.20.03.36.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Nov 2024 03:36: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: 9e80d060-a733-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjllODBkMDYwLWE3MzMtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTAyNTYxLjc3NzUzMSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732102561; x=1732707361; 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=RQSY1kHyaToiV6Map5orTQSUjEPRAZ9huo43+UBo760=;
        b=dY5e27T7SfsMrhD7Nzcmx+9VLT88sAw7FU4V3A2f+6fPE9shIYisIH/1Et2CoroHf2
         t+5a8jV+8nz7VPZdp8j+N/7CFs8QSkPW9k5FrzduEzbMyAUZyDS7c6ujgLpyGTyUaWgt
         xUgEHAsgD5vnnz0CymjeRdg+hsMA8bBaFyW6E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732102561; x=1732707361;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=RQSY1kHyaToiV6Map5orTQSUjEPRAZ9huo43+UBo760=;
        b=QfoFjtfmwjfAND+BGOGiyIs67VFNPFoI/HvSsQL1qatp4MhqFRRkOUJK8aCvOA0Snq
         9lzx17t6diWLFWBKssfIr51/SzOK39Fxqv0bBt4FJmmlxVkPiqZug8wZXaEgd29G17AD
         Us/ciLaqo+x5Os9/Dt6vXnozswlqwZLKIwj8EV1LjFe0KKKudPNR700fD1azSB45ePLp
         LcJ32ZbFwGFdYao5s3TmYi+rHxfD3s5KnwNgjGLxGqbIFbQiga6FA7nSInnbHHqy/jIq
         j/4eohf06Ie+0PIKS25bHaEh6/tED6um2oN3Nfk/fSfZnE3IIfvFlHu1/IsJV2nCUTvi
         UIaQ==
X-Gm-Message-State: AOJu0YzWyDTFGfBBA0HingArRDHwnNnfSBag5+Z1YdOuKTpg5EToM2Hu
	EKYi05ZBOZYmRFZ7zvC587VEhgbDqQb0Q9QplVLgdCpPU1qMUCmwSChGhFbRW25U1qit8pP7I/B
	7
X-Google-Smtp-Source: AGHT+IGpZBq/GRWTh1h/9HD7eEUOqw/KxHkCjxJBMTWI/j6IunYPvvZdkZpWu6/W1mvxx1/CyuPH5A==
X-Received: by 2002:a17:906:fe0d:b0:aa4:777d:73b5 with SMTP id a640c23a62f3a-aa4dd551bd2mr213101866b.21.1732102560951;
        Wed, 20 Nov 2024 03:36:00 -0800 (PST)
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 2/2] x86/pvh: also print hardware domain pIRQ limit for PVH
Date: Wed, 20 Nov 2024 12:35:55 +0100
Message-ID: <20241120113555.38146-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241120113555.38146-1-roger.pau@citrix.com>
References: <20241120113555.38146-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Do not return early in the PVH/HVM case, so that the number of pIRQs is also
printed.

Fixes: 17f6d398f765 ('cmdline: document and enforce "extra_guest_irqs" upper bounds')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/io_apic.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index bd5ad61c85e4..d9db2efc4f58 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2754,11 +2754,13 @@ unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
 
     /* PVH (generally: HVM) can't use PHYSDEVOP_pirq_eoi_gmfn_v{1,2}. */
     if ( is_hvm_domain(d) )
-        return nr_irqs;
-
-    if ( !d->domain_id )
-        n = min(n, dom0_max_vcpus());
-    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
+        n = nr_irqs;
+    else
+    {
+        if ( !d->domain_id )
+            n = min(n, dom0_max_vcpus());
+        n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
+    }
 
     printk("%pd has maximum %u PIRQs\n", d, n);
 
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 20 11:45:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 11:45:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841069.1256584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDj9a-0004P6-CW; Wed, 20 Nov 2024 11:45:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841069.1256584; Wed, 20 Nov 2024 11:45: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 1tDj9a-0004Oz-9w; Wed, 20 Nov 2024 11:45:50 +0000
Received: by outflank-mailman (input) for mailman id 841069;
 Wed, 20 Nov 2024 11:45: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=8JZW=SP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDj9Z-0004Ot-K8
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 11:45:49 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa187f19-a734-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 12:45:44 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5cfc19065ffso2398609a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 03:45:44 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cff4502155sm755371a12.53.2024.11.20.03.45.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 03:45: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: fa187f19-a734-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZhMTg3ZjE5LWE3MzQtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTAzMTQ0Ljk2Njk1NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732103144; x=1732707944; 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=l4QqAT9QYb/0rcRwuH6NbblO/Yrq97+qublWBnXh680=;
        b=F/DtTYxb38JUkYrW4RRuKWOu086qicSXIMsNcV7OFFLTl5ykstK7VPKttGPBBslOQO
         G6lvm2JDxeHnGXSlwleNnO1ZWToT6b/9GamuT2pNI1s/Bw6RSOikuyuvFH+S8UpO9Gs5
         QAFnY9HvYq+uqjkwCgRhkfoUfrnc6rPPZ2JSQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732103144; x=1732707944;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l4QqAT9QYb/0rcRwuH6NbblO/Yrq97+qublWBnXh680=;
        b=fiReSK/A2vCUspAizkT0YnJu8huQGuBN2vao1VNszbKRALjX7HM92HdTP1GP0GKNPf
         RxuC5DhLqHu1rF1vO9uCrDr4nJco9BTp/qnFxObw/j64NDGv7ZdBYPeTXsGEfdqOZLwc
         slpv9FUIZxf3OVjRpSY+bXZtCcmP1nqDQ4VLlqsy1mA7m0iRwZc+AavoefkqCm9j1sGK
         gmbrt1HSt/5eDzxtO26kFBeyQQDFNf5IP9Qg13p6qe4LNCGM2xqaWGpt+Mjh+6Sid/PK
         m62wXRkvgjxZYJ8KfVEWaVe1egYkaSeyFBPiDSd0A8KPxwmOS8GCGoRN2xepdouqgo0T
         xUbA==
X-Forwarded-Encrypted: i=1; AJvYcCWmvxeCSBYX2RMFdEhkqISLKwkD9BN3hN3gSK8jUdbks9OIrY0qhOg3PEvagIvY5WfV7d/wZimV5Uk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwgGKYmCSS3iVCbbsSJ2zc3Ohp8qfwmjB5zCXO38i/upPovoIdZ
	CqhTnJFGoI9G0fj7LAdtGMyvTPuCiDcHgd5hEPa7A9DUlUenOMb3KBhIZ8mqRFQ=
X-Gm-Gg: ASbGncugUiXhatTAPxG8g0X0FIM4WOeThG7oyTWQwBfSzuXDZFRcOa2ZE01PigoyEiM
	HeZN31IosbzBqXLijZx8wK6EqiG28AbyWhCkzRzCMF1iAJ3guBFPoGOOQ95ZqUZ7txzYpG+j6jw
	/2tUfAaeURTCTOKrII2JYICAuI2NJb3g0wL1sHvfsznj48r8niHgGKSj4pxLBFXHgO04EZ53lEv
	ojqXWxUmTnj8i9GLbqxqqFyIKGmp9795i9TZ4nf7RycFFVrD41P/YROBfujy4w=
X-Google-Smtp-Source: AGHT+IG09PPdFYjq1oBATAIfCf3gaEKUK66kW3XUdtL2qkZlcG8Ck4Riukr9Pudy3NUOYojLjOPFDA==
X-Received: by 2002:a05:6402:2813:b0:5cf:8f10:44fb with SMTP id 4fb4d7f45d1cf-5cff4ce0abamr1711270a12.30.1732103144318;
        Wed, 20 Nov 2024 03:45:44 -0800 (PST)
Message-ID: <5fa8e6a1-ba06-4961-a067-5c6e2715dfef@citrix.com>
Date: Wed, 20 Nov 2024 11:45:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/pvh: also print hardware domain pIRQ limit for
 PVH
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241120113555.38146-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/11/2024 11:35 am, Roger Pau Monne wrote:
> Do not return early in the PVH/HVM case, so that the number of pIRQs is also
> printed.
>
> Fixes: 17f6d398f765 ('cmdline: document and enforce "extra_guest_irqs" upper bounds')
> 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 Nov 20 12:07:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 12:07:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841091.1256594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDjU1-00088f-AT; Wed, 20 Nov 2024 12:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841091.1256594; Wed, 20 Nov 2024 12:06: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 1tDjU1-00088Y-80; Wed, 20 Nov 2024 12:06:57 +0000
Received: by outflank-mailman (input) for mailman id 841091;
 Wed, 20 Nov 2024 12:06: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=8JZW=SP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDjTz-00088P-9F
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 12:06:55 +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 ec0a1f7a-a737-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 13:06:49 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a9aa8895facso360479166b.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 04:06:49 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20e081574sm764898166b.179.2024.11.20.04.06.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 04:06: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: ec0a1f7a-a737-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVjMGExZjdhLWE3MzctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTA0NDA5Ljg3OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732104409; x=1732709209; 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=mZt4WzbXSGVnoNwUN9VSlqfqaDPaLVeH7dy3QiCAhSM=;
        b=ktlD4hFHB/0UJICYMWGe5FZ6qL7Or4kYZUX1t6GmQEVATUkPNZVYydiMneDGf2Rper
         YWzUd6o6xNuBxZutEjkdXY3tNB28xZrE0jWsk6jVzbekIUogEnE6TB5/YGkwdYz1VgYm
         0nU8A78lOvQl+aw1Ps0vBkJVBLX2Y3uFmqmqc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732104409; x=1732709209;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mZt4WzbXSGVnoNwUN9VSlqfqaDPaLVeH7dy3QiCAhSM=;
        b=Y4sPfrDyZfLsQql2twDU8JEyoKHbmak3YTL1kO6vZk8h0GI+nG4aSjXDhvqyR6NC5o
         yAWjDwU+vUjsiCV8/tuhpysEIkwxWaMCfJopdFrrCboPc2JhJLn5G55/oYjBlsy+Nkd2
         Q3/ocljqkqt25cUy61ke42d40y4pszU8WEgu8b2t1PB21fP02oh+WB16/58oPViioKv7
         m/5Paob1A7MmwGGiuyaeeIBtvMSprU4PmJ0j7UmaztxdhG6w8/A2RN5jW1pLC19A979B
         FvF+o/YKkUbuaAbn7uPagYQv99I7wuHAGcW9AV2J+eNjId+8XTyTetmFDA/S4orb2Vy2
         cNlA==
X-Forwarded-Encrypted: i=1; AJvYcCUXZq7CkNyCpMuczraANRzOsss2WaES8SSSqo/vgcreafVrdhLfctbedRlBKhj3pGAt3m6di5cVFFM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlBouXGZn/Ov2crrXf3GCgVeCAnKsm8h/msR71Xme0JNOX0QFB
	1a/kgcgdZbS/pa1/Umiw6cMI4PGuII9e7bAmetlHNMoeqDeG7CLpEa4GbvdaYb4=
X-Google-Smtp-Source: AGHT+IEg/HBXjv7Am1nQjxuwlRsP5bNrV133PGOyz6ldIWjfu6UCvLmf+Vz1v937XiwwRzm2a5VIog==
X-Received: by 2002:a17:906:ef03:b0:aa4:a810:79c2 with SMTP id a640c23a62f3a-aa4dd57ce42mr239737466b.31.1732104409280;
        Wed, 20 Nov 2024 04:06:49 -0800 (PST)
Message-ID: <b9772a66-ee5f-4cfc-ae55-8d53788f8456@citrix.com>
Date: Wed, 20 Nov 2024 12:06:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/irq: fix calculation of max PV dom0 pIRQs
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-2-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241120113555.38146-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/11/2024 11:35 am, Roger Pau Monne wrote:
> The current calculation of PV dom0 pIRQs uses:
>
> n = min(fls(num_present_cpus()), dom0_max_vcpus());
>
> The usage of fls() is wrong, as num_present_cpus() already returns the number
> of present CPUs, not the bitmap mask of CPUs.
>
> Fix by removing the usage of fls().
>
> Fixes: 7e73a6e7f12a ('have architectures specify the number of PIRQs a hardware domain gets')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Yeah, that fls() fails the dimensional analysis sniff test.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Is there any hint as to what the reasoning was?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 13:51:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 13:51:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841116.1256625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDl6V-0005TN-PF; Wed, 20 Nov 2024 13:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841116.1256625; Wed, 20 Nov 2024 13:50: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 1tDl6V-0005TG-MI; Wed, 20 Nov 2024 13:50:47 +0000
Received: by outflank-mailman (input) for mailman id 841116;
 Wed, 20 Nov 2024 13:50: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=8JZW=SP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tDl6U-0005TA-3i
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 13:50:46 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6de40b1b-a746-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 14:50:40 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-53da353eb2eso7041328e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 05:50:40 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa20dffba13sm767786066b.95.2024.11.20.05.50.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Nov 2024 05:50: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: 6de40b1b-a746-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1sZjEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZkZTQwYjFiLWE3NDYtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTEwNjQwLjc1NDA3LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732110640; x=1732715440; 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=zRouNAdArKjkjWjWS904hWd8Zi/vPRCjmMKGrFcSI9s=;
        b=jROCh8JU4ONqjtkUcs2l0x8xCT06xm25FaPEWjj+0a0vK2wGq54ABXx45NA6KRgXzq
         YzskGkJewSho30h3iFQrqlKFAcprOoMJv2Zm7QemUMFmReeMAqnbn7+9VgEBk39ZVFOa
         BPt3bP1v/MsTKYEV9N3XBg3qMMwndbxiWKzms=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732110640; x=1732715440;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zRouNAdArKjkjWjWS904hWd8Zi/vPRCjmMKGrFcSI9s=;
        b=o1fkLh2v5Cke3PIvFFAizw18OLbiGmgGsmonNC86nN3OchD1zAsTS2xRTBIoXr5jWO
         ZpD3eqBz+0D0hR0kXayksTyEcPaOTMIACHz2vf0cPWUqm0RWtH1yz+1XlQFmgSbQkNPx
         OhiwZGVNVDEFsHAr5mTUsRun2rTFyDlaRVaY4I4a/4ll8xtaVaUvG24WTukJGxsozQwF
         anWbZTQObNCAh+KQoXYgMJBqCdFnRxzfdUmPWfXv8d6KT/vOwxZBIhCEV0yE8ZepNyYj
         Q7X/TYnsFRh6RVJnw7Wz+HDd2PXBifRD9dZoa/F2CEOpVjPFG3D6lAfNcCZ/3I4e6p1T
         78tQ==
X-Forwarded-Encrypted: i=1; AJvYcCW+t0zhepWeTFXv9WyeWj7/CLT+HZue1vnlQ+Hz56AwoId0jdIo5V+P7i7odjjRTmQb9+6bVO8hgeU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwDUdymvPrYTC7FZDYEEQsQj7m6ZTyL6rbEHmKL3NFOXW5jz9b4
	uJUYizjhgee2YjoGR9q/Puoe/AKpTBb9vczXvg7969IglRhFvHX8ocjtwL63XxUreddH5IyH5P/
	r
X-Google-Smtp-Source: AGHT+IE5eLNOTuU1jYAmgeWZXPmc+xGzkDP910R1qlv29Vic+7iZ7tX0CWtPVdkkrRv3jeLv1fOmWA==
X-Received: by 2002:a05:6512:a8e:b0:53d:a0a7:1a8d with SMTP id 2adb3069b0e04-53dc136377amr2176776e87.46.1732110639774;
        Wed, 20 Nov 2024 05:50:39 -0800 (PST)
Message-ID: <b8776e87-0975-43a6-886c-95ec98d0c357@citrix.com>
Date: Wed, 20 Nov 2024 13:50:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Only rescan features on successful microcode
 load
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241119215827.2891332-1-andrew.cooper3@citrix.com>
 <590cc46e-c4e2-44bc-b339-6ffc609314ce@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <590cc46e-c4e2-44bc-b339-6ffc609314ce@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/11/2024 10:50 am, Jan Beulich wrote:
> On 19.11.2024 22:58, Andrew Cooper wrote:
>> There's no point rescanning if we didn't load something new.  Take the
>> opportunity to make the comment a bit more concise.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
>> @@ -911,14 +915,5 @@ int __init early_microcode_init(struct boot_info *bi)
>>  
>>      rc = early_microcode_load(bi);
>>  
>> -    /*
>> -     * Some CPUID leaves and MSRs are only present after microcode updates
>> -     * on some processors. We take the chance here to make sure what little
>> -     * state we have already probed is re-probed in order to ensure we do
>> -     * not use stale values. tsx_init() in particular needs to have up to
>> -     * date MSR_ARCH_CAPS.
>> -     */
>> -    early_cpu_init(false);
>> -
>>      return rc;
>>  }
> In principle with this rc could be dropped from the function.

Oh, so it can.Â  I think I did so in an earlier attempt, prior to
deciding to go down the route that is partially committed.

I'm happy to fold in the removal.Â  The incremental diff is:

@@ -873,7 +873,6 @@ static int __init early_microcode_load(struct
boot_info *bi)
Â int __init early_microcode_init(struct boot_info *bi)
Â {
Â Â Â Â  const struct cpuinfo_x86 *c = &boot_cpu_data;
-Â Â Â  int rc = 0;
Â 
Â Â Â Â  switch ( c->x86_vendor )
Â Â Â Â  {
@@ -913,7 +912,5 @@ int __init early_microcode_init(struct boot_info *bi)
Â Â Â Â Â Â Â Â  return -ENODEV;
Â Â Â Â  }
Â 
-Â Â Â  rc = early_microcode_load(bi);
-
-Â Â Â  return rc;
+Â Â Â  return early_microcode_load(bi);
Â }


> It's then further
> unclear why early_microcode_load() needs to be a separate function, rather than
> simply being inlined here (as I expect the compiler is going to do anyway).

Both cognitive and code complexity.

"Probe and install hooks" is separate from "try to load new ucode if we
can".

They've now got entirely disjoint local variables, and the latter has
some non-trivial control flow in it.Â  It's liable to get even more
complex if we try to allow CPIO in an explicitly nominated module.

More generally, a separate function and internal return statements can
express control flow which can only be done with gotos at the outer
level, even if we fully intend the compiler to fold the two together.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 16:25:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 16:25:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841150.1256657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDnWG-0006vz-HE; Wed, 20 Nov 2024 16:25:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841150.1256657; Wed, 20 Nov 2024 16:25: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 1tDnWG-0006vs-Em; Wed, 20 Nov 2024 16:25:32 +0000
Received: by outflank-mailman (input) for mailman id 841150;
 Wed, 20 Nov 2024 16: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=OIcg=SP=bounce.vates.tech=bounce-md_30504962.673e0d75.v1-50da2c6bacbe48d09100b11880c22bc2@srs-se1.protection.inumbo.net>)
 id 1tDnWE-0006vk-S4
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 16:25:31 +0000
Received: from mail180-8.suw31.mandrillapp.com
 (mail180-8.suw31.mandrillapp.com [198.2.180.8])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c7b51bb-a75c-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 17:25:26 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-8.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4XtmtY3m3jz3sNJZX
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 16:25:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 50da2c6bacbe48d09100b11880c22bc2; Wed, 20 Nov 2024 16:25: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: 0c7b51bb-a75c-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC44IiwiaGVsbyI6Im1haWwxODAtOC5zdXczMS5tYW5kcmlsbGFwcC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjBjN2I1MWJiLWE3NWMtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTE5OTI3LjAzOTQ3MSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2UwZDc1LnYxLTUwZGEyYzZiYWNiZTQ4ZDA5MTAwYjExODgwYzIyYmMyQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732119925; x=1732380425;
	bh=4OekPSrvmM16fuMteoQFp4SJuFkojtxbg/ck2sPRHOU=;
	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=VI4NnuifsDK62pFW7UcRuswKcoQ6J8aLe6DEojwTK6Ec6fP4tz+nawjL+SWI/RLhG
	 4HnFPRr4xt+zfpW2eMHKM1kRpXJWz4WuziFdu6VoTVp+5EWxkAx1BRHLuMGzIplNeq
	 uTw8xB/njk+WbLKwz/yhNylIAzpdi/jtKNh5E3e7lseP0iKdJmVZf49DbGQpY5o5K1
	 LhVALorNqzmxbPkszG/kcd9m2geP6coIje2qWdDOnQaeihUPGSykfCbV7s293JrnH6
	 WV5Bq+T2jrcLxjX6MJ0pm7/QntaWgBikRCVwkkRVAvf81Ly4TbEsM/+zkf0cJDt08A
	 O08/z3Z+/lKzQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732119925; x=1732380425; i=anthony.perard@vates.tech;
	bh=4OekPSrvmM16fuMteoQFp4SJuFkojtxbg/ck2sPRHOU=;
	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=LAqklu9DEEfn6GGiPw8yOQCbrlvcPMkhRqS9lDqRunFoQodyk9AsRy9U+yOI9MMtO
	 bzh4GyNj92yFMyR6+p1QZc909HGm58GUuNcSnXABcW1kbEp9IL+V9SrTKeJfnoRUq3
	 XM6/rFH+Bb/txrOwxtIFjJd2xQhVKygfBBrv1virrJuvKLXAh5u+AGe9UU7z6D4pke
	 b3Uew78NGX+bYh53SZFIArwzN4odMZyO7gbhes2WZDMN3SqLxcApNQNqre+MrgzXWa
	 IgUnfg1sGVySt4pqexd0SNBJnyarvXvWBcVXunDqRZyoDfUc5WD8d4FNAUi4hi9b5m
	 MECLu5EX+mHyw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v10=2006/12]=20tools:=20add=20support=20for=20cache=20coloring=20configuration?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732119924614
To: "Carlo Nonato" <carlo.nonato@minervasys.tech>
Cc: xen-devel@lists.xenproject.org, andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech, "Juergen Gross" <jgross@suse.com>
Message-Id: <Zz4NdBcbMLx3HywA@l14>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech> <20241119141329.44221-7-carlo.nonato@minervasys.tech>
In-Reply-To: <20241119141329.44221-7-carlo.nonato@minervasys.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.50da2c6bacbe48d09100b11880c22bc2?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241120:md
Date: Wed, 20 Nov 2024 16:25:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi Carlo,

On Tue, Nov 19, 2024 at 03:13:23PM +0100, Carlo Nonato wrote:
> diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
> index e3538ec0ba..4ed339e6e4 100644
> --- a/tools/libs/ctrl/xc_domain.c
> +++ b/tools/libs/ctrl/xc_domain.c
> @@ -2195,6 +2195,41 @@ int xc_domain_soft_reset(xc_interface *xch,
>      domctl.domain = domid;
>      return do_domctl(xch, &domctl);
>  }
> +
> +int xc_domain_set_llc_colors(xc_interface *xch, uint32_t domid,
> +                             const unsigned int *llc_colors,

The hypercall seems to take a buffer of `uint32_t` for `llc_colors`, but
the parameter of the function is `unsigned int` instead, is there any
reason for them to be different?

> +                             unsigned int num_llc_colors)
> +{
> +    struct xen_domctl domctl = {};
> +    DECLARE_HYPERCALL_BUFFER(uint32_t, local);
> +    int ret = -1;
> +
> +    if ( num_llc_colors )
> +    {
> +        size_t bytes = sizeof(uint32_t) * num_llc_colors;
> +
> +        local = xc_hypercall_buffer_alloc(xch, local, bytes);
> +        if ( local == NULL )
> +        {
> +            PERROR("Could not allocate LLC colors for set_llc_colors");
> +            ret = -ENOMEM;

I think we are supposed to return -1 in case of error, see:
    https://elixir.bootlin.com/xen/v4.19.0/source/tools/include/xenctrl.h#L101

And there's nothing else to do, xc_hypercall_buffer_alloc() should
already have set `errno`, and PERROR() preserves it.

> +            goto out;
> +        }

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 Nov 20 16:49:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 16:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841160.1256667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDnt2-0001cJ-Ah; Wed, 20 Nov 2024 16:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841160.1256667; Wed, 20 Nov 2024 16:49: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 1tDnt2-0001cC-7q; Wed, 20 Nov 2024 16:49:04 +0000
Received: by outflank-mailman (input) for mailman id 841160;
 Wed, 20 Nov 2024 16:49: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=zSsS=SP=bounce.vates.tech=bounce-md_30504962.673e12fa.v1-52ba16cc775d4f4c914961779348c020@srs-se1.protection.inumbo.net>)
 id 1tDnt1-0001c6-Bo
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 16:49:03 +0000
Received: from mail136-26.atl41.mandrillapp.com
 (mail136-26.atl41.mandrillapp.com [198.2.136.26])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 56c12424-a75f-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 17:48:59 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-26.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4XtnPk1h9kzJKF3Nk
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 16:48:58 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 52ba16cc775d4f4c914961779348c020; Wed, 20 Nov 2024 16:48: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: 56c12424-a75f-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yNiIsImhlbG8iOiJtYWlsMTM2LTI2LmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU2YzEyNDI0LWE3NWYtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTIxMzM5Ljk4ODAxLCJzZW5kZXIiOiJib3VuY2UtbWRfMzA1MDQ5NjIuNjczZTEyZmEudjEtNTJiYTE2Y2M3NzVkNGY0YzkxNDk2MTc3OTM0OGMwMjBAYm91bmNlLnZhdGVzLnRlY2giLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732121338; x=1732381838;
	bh=n383fJwjjwDmkzpGwEHPWPXyzKzhg8Lb4s4ITp10An0=;
	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=uHIHWR4hgjNM+GsmQIgOvK2XHlZfHYhYr32sF5k8vfGWK1X1hCQytu1PXGGiL7r2G
	 DuAzHXNLSO/hqndH7/rjWXzss09fXpPGXwJyYBpPT9o8o0lHH/M60KPr5zTKlaAG2L
	 FUCyDWpj4fhcnJhghNxR0L1+sZ1Vnh33QzivJYQCOnBp9TOA5U1QuiKTXVzd1qiLON
	 21hIYYxjyQWeRQTBcH4HTA2y1hq+YZsVsxOyIb2u5HFChXgnhOe0KGDcwSi+HsoWv+
	 fn7atmdQUvKniR5AvPdkwAkNbYaAWq1F6SwpfHpGzeOUwYvISRgDJ35wBfHFPEnfO1
	 x29eCyZHuthhw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732121338; x=1732381838; i=anthony.perard@vates.tech;
	bh=n383fJwjjwDmkzpGwEHPWPXyzKzhg8Lb4s4ITp10An0=;
	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=lvufldy8jR2U1kEna6rPPztzdeLqjEepXZZc6jCm2/NnJYzTIbiBxAioxNdQF3KNI
	 +VKpwBP3bsz5XICckYp7n2hIKhEgVPgiiGaQPgXWYZUbrWKeyZGj3t7qqw439ucttf
	 KPGtSkKiRdLiHiuyJDSo3mwrTHvMmqBgzFICmBKZv0YLug2Xg//9HyRqM5Sp2x0bgo
	 qjTtkSll3PBBo5iG65EQmR8dBlU69iVS5WAjcEtsTErOGIdwH3F3h1HR824A5bXqQM
	 R52BDtANcUdkEgRVwNi/nupsvSCloYCyK+pm1jqJI7VrKhsuiJ6shMWm6cImozEYMF
	 zg6fz3yp+iMHg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v10=2006/12]=20tools:=20add=20support=20for=20cache=20coloring=20configuration?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732121337618
To: "Carlo Nonato" <carlo.nonato@minervasys.tech>
Cc: xen-devel@lists.xenproject.org, andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech, "Juergen Gross" <jgross@suse.com>
Message-Id: <Zz4S-AQO66YVK6i2@l14>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech> <20241119141329.44221-7-carlo.nonato@minervasys.tech>
In-Reply-To: <20241119141329.44221-7-carlo.nonato@minervasys.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.52ba16cc775d4f4c914961779348c020?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241120:md
Date: Wed, 20 Nov 2024 16:48:58 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Nov 19, 2024 at 03:13:23PM +0100, Carlo Nonato wrote:
>  tools/libs/light/libxl_types.idl |  1 +

An other thing I've completely forgot, with this IDL changed there will
be a need to regen some other files in the repo, namely:
    tools/golang/xenlight/helpers.gen.go
    tools/golang/xenlight/types.gen.go

Running this following command should be enough, even if you don't have
golang installed.

    make -C tools/golang/xenlight helpers.gen.go types.gen.go

If you send an update of the patch series, it would be nice to include
the regenerated files.

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 Nov 20 17:57:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 17:57:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841171.1256677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDox4-0001hv-52; Wed, 20 Nov 2024 17:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841171.1256677; Wed, 20 Nov 2024 17: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 1tDox4-0001ho-1k; Wed, 20 Nov 2024 17:57:18 +0000
Received: by outflank-mailman (input) for mailman id 841171;
 Wed, 20 Nov 2024 17: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=2WWF=SP=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tDox2-0001hi-PQ
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 17:57:17 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd1a9ee0-a768-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 18:57:11 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732125422196538.9325786026111;
 Wed, 20 Nov 2024 09:57: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: dd1a9ee0-a768-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRkMWE5ZWUwLWE3NjgtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTI1NDMxLjcyNTU5NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732125425; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Jj6ciEEQvTe9I2GHJHYET/y3s93c7LOTJw9Fyp3HJK5eDoFIYzMiMMcIMS2HOoJdZZMsEiecNAXiDOfxEAHqFwdTyihxSpNDh06DJM1SUVbzExkse7fcru7+Wgt1TOjZ9MSdxTiFT/1cNwEEMP7hQh6CgP5JUYmG4aEf4xiY424=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732125425; 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=kQ6olA6ycDUzdknzdvQsYS8zfK6eHIl7YvgFnBXveHY=; 
	b=Pp30L4s300zeUewWWxThJ83EduLrvbbPJc3QYe5Hha4q7UR+7ZzJmFttizdQFy+25ftQmBuXsXYxlrsqGtJxnKJPrECbf+pqiSgIiUUhOqSMahhN5p9ENXm9wAz7MZmBP1FE5xdRq8pl+BxuJEwraXI6xu3ITyld5mX9O1eDbhA=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732125425;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:Cc:Cc:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=kQ6olA6ycDUzdknzdvQsYS8zfK6eHIl7YvgFnBXveHY=;
	b=ewEfCyZewRmQnLR7TZSCdcFLa5wEzVOwKZPt4cOYkO+cY1cbFkhnW4ryVmiz07a0
	VNXCWpjBD7U660VaN0/j7CVVe4mVvK0FoSJPN1ZbR1jUsnRfGZMvForgU3MS3ObXXJt
	hg1mTQ8h9ret3Xvrut9UuMHmPlu9561cr6A/bJDg=
Message-ID: <a7b7ec58-73f6-4463-97c8-f9acdedec7af@apertussolutions.com>
Date: Wed, 20 Nov 2024 12:57:00 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 6/6] x86/boot: add cmdline to struct boot_domain
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: christopher.w.clark@gmail.com, stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-7-dpsmith@apertussolutions.com>
 <c4b37832-efaa-4a26-8bbf-a3cf7caa3468@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <c4b37832-efaa-4a26-8bbf-a3cf7caa3468@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 11/15/24 13:20, Jason Andryuk wrote:
> On 2024-11-15 08:12, Daniel P. Smith wrote:
>> Add a container for the "cooked" command line for a domain. This 
>> provides for
>> the backing memory to be directly associated with the domain being 
>> constructed.
>> This is done in anticipation that the domain construction path may 
>> need to be
>> invoked multiple times, thus ensuring each instance had a distinct memory
>> allocation.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> 
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 533a1e2bbe05..b9ca9c486fe5 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -963,10 +963,31 @@ static unsigned int __init copy_bios_e820(struct 
>> e820entry *map, unsigned int li
>> Â Â Â Â Â  return n;
>> Â  }
>> -static struct domain *__init create_dom0(struct boot_info *bi)
>> +static size_t __init domain_cmdline_size(
>> +Â Â Â  struct boot_info *bi, struct boot_domain *bd)
>> Â  {
>> -Â Â Â  static char __initdata cmdline[MAX_GUEST_CMDLINE];
>> +Â Â Â  size_t s = 0;
>> +
>> +Â Â Â  s += bi->kextra ? strlen(bi->kextra) : 0;
>> +Â Â Â  s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel- 
>> >cmdline_pa)) : 0;
>> +Â Â Â  /* Should only be called if one of extra or cmdline_pa are valid */
>> +Â Â Â  ASSERT(s > 0);
>> +
>> +Â Â Â  /*
>> +Â Â Â Â  * Add additional space for the following cases:
>> +Â Â Â Â  *Â  - 7 chars for " noapic"
>> +Â Â Â Â  *Â  - 13 chars for longest acpi opiton, " acpi=verbose"
> 
> option
> 
>> +Â Â Â Â  *Â  - 1 char to hold \0
>> +Â Â Â Â  */
>> +Â Â Â  s += 7 + 13 + 1;
> 
> Seems a little fragile.Â  Sizing but also depending on code elsewhere. 
> Interesting - "verbose" wouldn't actually get updated into acpi_param. 
> Anyway, using sizeof(acpi_param) seems better.Â  Maybe:
> 
>  Â Â Â Â Â Â Â  s += strlen(" noapic") + strlen(" acpi=") + sizeof(acpi_param) 
> + 1;

True, the strlen() is more reasonable and self documenting. Yes, I 
overlooked the return in the option parser that would not copy verbose, 
plus sizeof(acpi_param) will ensure adequate spacing.

>> +
>> +Â Â Â  return s;
>> +}
>> +
>> +static struct domain *__init create_dom0(struct boot_info *bi)
>> +{
>> +Â Â Â  char *cmdline = NULL;
>> Â Â Â Â Â  struct xen_domctl_createdomain dom0_cfg = {
>> Â Â Â Â Â Â Â Â Â  .flags = IS_ENABLED(CONFIG_TBOOT) ? 
>> XEN_DOMCTL_CDF_s3_integrity : 0,
>> Â Â Â Â Â Â Â Â Â  .max_evtchn_port = -1,
>> @@ -1008,17 +1029,23 @@ static struct domain *__init 
>> create_dom0(struct boot_info *bi)
>> Â Â Â Â Â  /* Grab the DOM0 command line. */
>> Â Â Â Â Â  if ( bd->kernel->cmdline_pa || bi->kextra )
> 
>  From your other email, since you don't need the length, just non-zero:
> 
>  Â Â Â  if ( (bd->kernel->cmdline_pa && __va(bd->kernel->cmdline_pa)[0]) ||
>  Â Â Â Â Â Â Â Â Â  bi->kextra )

Ack.

>> Â Â Â Â Â  {
>> +Â Â Â Â Â Â Â  size_t cmdline_size = domain_cmdline_size(bi, bd);
>> +
>> +Â Â Â Â Â Â Â  if ( !(cmdline = xzalloc_array(char, cmdline_size)) )
> 
> Just xmalloc_array since it'll be overwritten immediately?

Yes and no, the concern I was worried about is that the allocation may 
end up being slight bigger than what is copied in to the buffer. If we 
do not zero the buffer, then those trailing bytes will have random data 
in them. In a perfect world, nothing should ever reach those bytes based 
on the current usage of the buffer. But from my perspective, it would be 
safer to zero the buffer than rely on the world being perfect. I am not 
fixed on not switching, just providing my 2 cents,

>> +Â Â Â Â Â Â Â Â Â Â Â  panic("Error allocating cmdline buffer for %pd\n", d);
>> +
>> Â Â Â Â Â Â Â Â Â  if ( bd->kernel->cmdline_pa )
>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcpy(cmdline,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cmdline_cook(__va(bd->kernel->cmdline_pa), 
>> bi->loader));
>> +Â Â Â Â Â Â Â Â Â Â Â  strlcpy(cmdline,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cmdline_cook(__va(bd->kernel->cmdline_pa),bi- 
>> >loader),
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cmdline_size);
>> Â Â Â Â Â Â Â Â Â  if ( bi->kextra )
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  /* kextra always includes exactly one leading space. */
>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, bi->kextra);
>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, bi->kextra, cmdline_size);
>> Â Â Â Â Â Â Â Â Â  /* Append any extra parameters. */
>> Â Â Â Â Â Â Â Â Â  if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, " noapic");
>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, " noapic", cmdline_size);
>> Â Â Â Â Â Â Â Â Â  if ( (strlen(acpi_param) == 0) && acpi_disabled )
>> Â Â Â Â Â Â Â Â Â  {
>> @@ -1028,17 +1055,21 @@ static struct domain *__init 
>> create_dom0(struct boot_info *bi)
>> Â Â Â Â Â Â Â Â Â  if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
>> Â Â Â Â Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, " acpi=");
>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, acpi_param);
>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, " acpi=", cmdline_size);
>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, acpi_param, cmdline_size);
>> Â Â Â Â Â Â Â Â Â  }
>> -Â Â Â Â Â Â Â  bd->kernel->cmdline_pa = __pa(cmdline);
>> +Â Â Â Â Â Â Â  bd->cmdline = cmdline;
>> +Â Â Â Â Â Â Â  bd->kernel->cmdline_pa = __pa(bd->cmdline);
> 
> Should cmdline_pa go away if we now have a valid cmdline variable?

In the PVH dom0 case, we are still relying on cmdline_pa as the 
reference to get at the command line in the function pvh_load_kernel(). 
With the introduction of cmdline to boot_domain, I could convert the 
interface of pvh_load_kernel() to take the boot_domain instance, 
removing the need to update cmdline_pa. Not sure if you were asking 
this, but as for cmdline_pa going completely away, that is not possible. 
First the sequence of events do not allow it, and there is an one-off 
case for PVH dom0 where the cmdline_pa of the initrd module is copied 
into the domain.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 18:33:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 18:33:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841186.1256696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDpVc-0007K5-U8; Wed, 20 Nov 2024 18:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841186.1256696; Wed, 20 Nov 2024 18: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 1tDpVc-0007Jy-RP; Wed, 20 Nov 2024 18:33:00 +0000
Received: by outflank-mailman (input) for mailman id 841186;
 Wed, 20 Nov 2024 18: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=JQNB=SP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tDpVb-0007Js-AB
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 18:32:59 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc83cf92-a76d-11ef-a0cb-8be0dac302b0;
 Wed, 20 Nov 2024 19:32:56 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-539f53973fdso18860e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Nov 2024 10:32:56 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dbd4671e4sm719746e87.166.2024.11.20.10.32.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Nov 2024 10: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: dc83cf92-a76d-11ef-a0cb-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRjODNjZjkyLWE3NmQtMTFlZi1hMGNiLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTI3NTc2LjU0NzgzMywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732127575; x=1732732375; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oB2+1tG6zHZKnmnNyLh/GrzjxFyzxy1VqAJd59CsJ7I=;
        b=QVy/hn4TCDD7AFik/jdxUoS50w/j/Qzbd0S6OUoLvrq6nTRZez7W9vTuz/oWZEGdE2
         CxDEP/N8jwmUo3mpSZ/vRGx5JbEri6zI7/PcJBiNMHtxPMdyRETeOg6CGbQwS/yl++iU
         mHQirc+nRT+/3yd+m/0NlHtl3i6ikZtA0KE+DvWT1y1XcJaCz5hLev7I+AwvvMGwK2vd
         suAumcy8ZoOhJmKNBIDttLM02XR7xAK/uiIjWPeJQh56Kqu+0qz2wP9ocfWxgKswwcir
         iDDPiIXUBVZrkQvoBZrWtahGLO9SWjYVSwEe1TGNWAlZCfg+vXy3UaLi0J5n2oNugh5L
         94ZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732127575; x=1732732375;
        h=mime-version:user-agent:content-transfer-encoding:date:cc:to:from
         :subject:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oB2+1tG6zHZKnmnNyLh/GrzjxFyzxy1VqAJd59CsJ7I=;
        b=riXzAQj+a1TKVp8INv6YrZyTZcS/wqVb/7VCiXutUcq8EPG7jyYAg0IU2/S+9/Dc7f
         Z4NXhGq8QOcQqXKRnVK6g43fWAE/DRoo2F+RtXiK6h3KnrOWbW8xYYC6nVetagZ3Rxm2
         Hp9lzY5fhWhczuQvkvWDF0nLuxCa65rv5aukNQSfEsPnbE9N1GgR2TzGg17PAkuLtliS
         Lil8RkbVCl6oWJ6OzeKWon0Y0DW5Abhiak1VSauy8Sq1VJVgdylxYxYCyFFmZ5iLNanK
         n2dzCbKF/+P/qo2x3p6fniMKOL+btKt55BH+Wx81Bw5uXwhSBAB+HnOev/BrZISPR5Uy
         Xugg==
X-Gm-Message-State: AOJu0YwMxrCKmJxoY3BJhKXXHky02IlEjvKM4/X1LbHOlozcJZ4FTlI4
	EaCHx83DoBJAu0SGXB4+rUH0t8pJadmdwvOL0eLr5T9f/aNUD/RQcn/8/A==
X-Google-Smtp-Source: AGHT+IHIYNNtaSm6x5amg6tEOi15MNuSIo8Z8FL7OhOgzb5RCHJypB1GppgzkxKuPlEAhQNx88NsUA==
X-Received: by 2002:a19:7508:0:b0:53d:bd50:a0f8 with SMTP id 2adb3069b0e04-53dc614c502mr116587e87.3.1732127575025;
        Wed, 20 Nov 2024 10:32:55 -0800 (PST)
Message-ID: <46bd08b50326613bb67b7076490af956e1c7bbbc.camel@gmail.com>
Subject: Last posting date for Xen 4.20 is  Fri Nov 29, 2024
From: oleksii.kurochko@gmail.com
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Kelly Choi <kelly.choi@cloud.com>, "committers@xenproject.org"
	 <committers@xenproject.org>
Date: Wed, 20 Nov 2024 19:32:53 +0100
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

Hi all,

I would like to remind everyone that the last posting date for Xen 4.20
is Fri Nov 29, 2024. If you want your features to be
included for the release, please make sure they are posted for the
first time before Fri Nov 29, 2024.

The current schedule can be found here:
https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes

Best regards,
 Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 22:06:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 22:06:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841203.1256706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDsq0-0006LO-Dh; Wed, 20 Nov 2024 22:06:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841203.1256706; Wed, 20 Nov 2024 22:06: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 1tDsq0-0006LH-Aj; Wed, 20 Nov 2024 22:06:16 +0000
Received: by outflank-mailman (input) for mailman id 841203;
 Wed, 20 Nov 2024 22:06: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=Zf15=SP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDspz-0006L8-71
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 22:06:15 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a18474e1-a78b-11ef-a0cc-8be0dac302b0;
 Wed, 20 Nov 2024 23:06:03 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 7CCD1A4340F;
 Wed, 20 Nov 2024 22:04:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0FE8EC4CECD;
 Wed, 20 Nov 2024 22:05:59 +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: a18474e1-a78b-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NWQxOmVjMDA6OjMiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImExODQ3NGUxLWE3OGItMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTQwMzYzLjUyNDE2OCwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732140361;
	bh=u0UT7MrgCrfxHbyxFukhOG6IJ6tvCIYsrvxY9PZs+KM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CAtV3i0XN+Ahy1eLxvkYOXcwf8OsLNLjT7yLp8FxYTwLP+AL9oeUtvGpPPckOeBf6
	 8Hj7MlnAkjqjS09/B0qKIs2Adg5iku+rgYWPNrRDs8NoNEgQz6Wv1INvwnVVOcZWwn
	 /SnwVDDzJYtspnT1z0n7fq+12WjwR11JCy/2uxvGN5TmWDYD7HNzsJOAsLweslWN8Q
	 pyUiA44dgLPBKYxLMf4iyelcekGbdA97gk2tFoWQA+HFev93+/aYaiiGswK4X9N0UK
	 +4r6cUPEb2ZUl2wIjliIWaYFeCXLsWavysZqVbqc1MLs7AtlxzwBKm7pQRaOMOEpcK
	 2RRyReX6JylxA==
Date: Wed, 20 Nov 2024 14:05:56 -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: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, 
    Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
In-Reply-To: <Zz05dJdAOvaKKrag@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2411201405510.3516911@ubuntu-linux-20-04-desktop>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com> <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop> <875xojmexk.fsf@epam.com> <Zz05dJdAOvaKKrag@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1286687619-1732140361=:3516911"

  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-1286687619-1732140361=:3516911
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 20 Nov 2024, Marek Marczykowski-GÃ³recki wrote:
> On Tue, Nov 19, 2024 at 03:16:56PM +0000, Volodymyr Babchuk wrote:
> > > Honestly, aside from these two comments, this looks quite good. I would
> > > suggest adding a GitLab CI job to exercise this, if nothing else, to
> > > serve as an integration point since multiple components are required for
> > > this to work.
> > 
> > I was considering this as well. Problem is that fuzzing should be
> > running for a prolonged periods of time. There is no clear consensus on
> > "how long", but most widely accepted time period is 24 hours. So looks
> > like it should be something like "nightly build" task. Fuzzer code
> > needs to be extended to support some runtime restriction, because right
> > now it runs indefinitely, until user stops it.
> 
> Regardless of the actual fuzzing (which takes time), I'd suggest to add
> a gitlab job that does sanity test, checks if stuff still builds etc. It
> can probably be limited to 1min fuzzing or such.

+1
--8323329-1286687619-1732140361=:3516911--


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 22:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 22:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841209.1256716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDsrb-0006qt-Mn; Wed, 20 Nov 2024 22:07:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841209.1256716; Wed, 20 Nov 2024 22:07: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 1tDsrb-0006qm-K9; Wed, 20 Nov 2024 22:07:55 +0000
Received: by outflank-mailman (input) for mailman id 841209;
 Wed, 20 Nov 2024 22:07: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=Zf15=SP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tDsra-0006qe-QG
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 22:07:54 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e21013e9-a78b-11ef-a0cc-8be0dac302b0;
 Wed, 20 Nov 2024 23:07:51 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3861E5C5EA4;
 Wed, 20 Nov 2024 22:07:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D812C4CECD;
 Wed, 20 Nov 2024 22:07: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: e21013e9-a78b-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6ImUyMTAxM2U5LWE3OGItMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTQwNDcxLjk3ODk2Nywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732140469;
	bh=fU/vacAEi1m2S92rWJM9qMHiFtrIXNfDJtfD7Oh13+s=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kAvSwFMWXuUjeUs6fPEhKBm38lgTz5h5CA4nH9OOEJKMxOc+z38WWHdCNwobaStUT
	 PMejl/uunGsafmqVb8lPGQ8xbvigUFlCEudF3p42TCWPriEXJZzhPKnVfJfVWuA5um
	 2vQdANpXTt+wdiNws63+gh3MLHvaM4EOZAeGZ+XkLMUiGJwPKB/G4W37wBlhpbMSpf
	 ETMmYVJMEFByPW1Z/XkmD1h5giijwPhvNPLFEOZUe9sCWLpP5mGUt9DE6hTk0M7yhB
	 fi2nFM9mfxyD+npGdI/7w/MDYjYp6WYMkH/wQ7NFqzyu2+9KwzmId4vCVRLBD+UXAO
	 HfunD/tgjKcdg==
Date: Wed, 20 Nov 2024 14:07:47 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, 
    Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
In-Reply-To: <87iksilod0.fsf@epam.com>
Message-ID: <alpine.DEB.2.22.394.2411201406060.3516911@ubuntu-linux-20-04-desktop>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com> <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop> <875xojmexk.fsf@epam.com> <alpine.DEB.2.22.394.2411191409140.1160299@ubuntu-linux-20-04-desktop>
 <87iksilod0.fsf@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, 20 Nov 2024, Volodymyr Babchuk wrote:
> Hi Stefano,
> 
> (sorry, hit wrong Reply-To option, re-sending for wider audience)
> 
> Stefano Stabellini <sstabellini@kernel.org> writes:
> 
> > On Tue, 19 Nov 2024, Volodymyr Babchuk wrote:
> >> Hi Stefano,
> >>
> >> Stefano Stabellini <sstabellini@kernel.org> writes:
> >>
> >> > On Thu, 14 Nov 2024, Volodymyr Babchuk wrote:
> >>
> >> [...]
> >>
> >> >> +Building LibAFL-QEMU based fuzzer
> >> >> +---------------------------------
> >> >> +
> >> >> +Fuzzer is written in Rust, so you need Rust toolchain and `cargo` tool
> >> >> +in your system. Please refer to your distro documentation on how to
> >> >> +obtain them.
> >> >> +
> >> >> +Once Rust is ready, fetch and build the fuzzer::
> >> >> +
> >> >> + # git clone
> >> >> https://github.com/xen-troops/xen-fuzzer-rs
> >> >> +  # cd xen-fuzzer-rs
> >> >> +  # cargo build
> >> >
> >> > Is this the only way to trigger the fuzzer? Are there other ways (e.g.
> >> > other languages or scripts)? If this is the only way, do we expect it to
> >> > grow much over time, or is it just a minimal shim only to invoke the
> >> > fuzzer (so basically we need an x86 version of it but that's pretty much
> >> > it in terms of growth)?
> >>
> >> Well, original AFL++ is written in C. And I planned to use it
> >> initially. I wanted to make plugin for QEMU to do the basically same
> >> thing that LibAFL does - use QEMU to emulate target platform, create
> >> snapshot before running a test, restore it afterwards.
> >>
> >> But then I found LibAFL. It is a framework for creating fuzzers, it
> >> implements the same algorithms as original AFL++ but it is more
> >> flexible. And it already had QEMU support. Also, it seems it is quite
> >> easy to reconfigure it for x86 support. I didn't tried tested this yet,
> >> but looks like I need only to change one option in Cargo.toml.
> >>
> >> This particular fuzzer is based on LibAFL example, but I am going to
> >> tailor it for Xen Project-specific needs, like CI integration you
> >> mentioned below.
> >
> > Is my understanding correct that we only need to invoke LibAFL as you
> > are doing already, and that's pretty much it? We need a better
> > configuration specific for Xen, and we need one more way to invoke it to
> > cover x86 but that's it? So, the expectation is that the code currently
> > under
> > https://github.com/xen-troops/xen-fuzzer-rs
> > will not grow much?
> >
> 
> Yes, it basically configures different bits of LibAFL and integrates
> them together. So yes, it will not grow much. I am planning to add some
> QoL things like ability to re-run specific input so it will be easier to
> debug discovered issues. Or maybe tune some fuzzing algorithms
> settings... But nothing big.
 
OK then
 

> >> As for test harness, I am using Zephyr currently. My first intention was
> >> to use XTF, but it is x86-only... I am still considering using XTF for
> >> x86 runs.
> >>
> >> Zephyr was just the easiest and fastest way to trigger hypercalls. At
> >> first I tried to use Linux kernel, but it was hard to cover all possible
> >> failure paths. Zephyr is much simpler in this regard. Even better is to
> >> use MiniOS or XTF. But ARM support in MiniOS is in sorry state and XTF
> >> does not work on ARM at all.
> >
> > There is a not-yet-upstream XTF branch that works on ARM here:
> > https://gitlab.com/xen-project/fusa/xtf/-/tree/xtf-arm?ref_type=heads
> 
> Ah, thanks. I'll try to use it as a harness.
> 
> [...]
> 
> >
> >>
> >> I was considering this as well. Problem is that fuzzing should be
> >> running for a prolonged periods of time. There is no clear consensus on
> >> "how long", but most widely accepted time period is 24 hours. So looks
> >> like it should be something like "nightly build" task. Fuzzer code
> >> needs to be extended to support some runtime restriction, because right
> >> now it runs indefinitely, until user stops it.
> >
> > We can let it run for 48 hours continuously every weekend using the
> > Gitlab runners
> 
> Great idea. Anyways, I need to add option to limit runtime to the fuzzer
> and invent some method for reporting discovered crashes to the CI first.
> 
> >
> >> I am certainly going to implement this, but this is a separate topic,
> >> because it quires changes in the fuzzer app. Speaking on which... Right
> >> now both fuzzer and test harness reside in our github repo, as you
> >> noticed. I believe it is better to host it on xenbits as an official
> >> part of the Xen Project.
> >
> > Yes we can create repos under gitlab.com/xen-project for this, maybe a
> > new subgroup gitlab.com/xen-project/fuzzer
> 
> Good. Whom should I ask to do this?

I created gitlab.com/xen-project/fuzzer as an empty group. What
repositories do you need under it?


From xen-devel-bounces@lists.xenproject.org Wed Nov 20 22:32:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Nov 2024 22:32:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841220.1256726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDtFK-0002NK-K3; Wed, 20 Nov 2024 22:32:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841220.1256726; Wed, 20 Nov 2024 22:32: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 1tDtFK-0002ND-Gw; Wed, 20 Nov 2024 22:32:26 +0000
Received: by outflank-mailman (input) for mailman id 841220;
 Wed, 20 Nov 2024 22:32: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=HGtN=SP=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tDtFJ-0002N7-9R
 for xen-devel@lists.xenproject.org; Wed, 20 Nov 2024 22:32:25 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20626.outbound.protection.outlook.com
 [2a01:111:f403:2418::626])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d57d848-a78f-11ef-99a3-01e77a169b0f;
 Wed, 20 Nov 2024 23:32:20 +0100 (CET)
Received: from CH2PR07CA0005.namprd07.prod.outlook.com (2603:10b6:610:20::18)
 by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.15; Wed, 20 Nov
 2024 22:32:12 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:20:cafe::bc) by CH2PR07CA0005.outlook.office365.com
 (2603:10b6:610:20::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24 via Frontend
 Transport; Wed, 20 Nov 2024 22:32:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8182.16 via Frontend Transport; Wed, 20 Nov 2024 22:32:12 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 20 Nov
 2024 16:32:11 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 20 Nov
 2024 16:32:11 -0600
Received: from [172.29.146.152] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 20 Nov 2024 16:32: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: 4d57d848-a78f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjI2IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjRkNTdkODQ4LWE3OGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTQxOTQwLjE5NDg5Nywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TUSF7zT8VXdkWI5WN6i3dTRyW4jLbOViCPJ+lcHsup7npdEI6unR51Y/6W5Gr4/XUDuUaUZMuvnoxtLfTQFzbhzD6ZVxoXmJZhLtXeI6yoAUgxnj6G9pD8P8utMwcYboyV+kXK49h56VwCINDVRPUgGutXVBdjVl0oIJKUkCfNNrDFhMH+OvItuoQmtxRi5nusbRzUFNO5s7dCNc02yYbwQrxkHPfNHpB4q6+SL8djkZr21BqO6JNxvr1wHUHxQsnYVkzHWUkaaEvwtWM5oD6W4Iz0FDjtDE5JWsXXao3r9f8BfAXBot0IPVlWeBtcZGEieOPddF6r9K9QlHpl4XYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p8xm1btvpe9AmkygMgkrN7BtLT7Iickdu4+9Xrkjp0I=;
 b=bgYS91ljo+NcG/URBnu7Hpm0Qrd1Nb4dTd5wx7sXxihKLedaAqrL+Sl/l8+I1LM7IEMKLw8sb/H2IqqmQqgvG3Fll+5bXpbHhgJ4nj7p7JBw7jGhy0c8P5niNBkiY2yvB3RlrrX1r0rHOCkj4WD13yXnz3IiskkhFFw/XB7YgBzVltKsJTHyxIYNTWniszqnnCDA4hIcDlicuzWOXal4rAJNWBNxjZCXVlJGAa50p9fVhUpZoZTM9hPsmPOshp6Kc3dJai+E4AICZi/icRIjnTPWJ4Me2pULlRthy4iu77Oh0ZmHRxk4Vpf8e/BabWxOL4sKYtSA0Rj9N5vQtUpa9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.12) smtp.rcpttodomain=apertussolutions.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=p8xm1btvpe9AmkygMgkrN7BtLT7Iickdu4+9Xrkjp0I=;
 b=gdACDHCOx9rq9Zz+7X2m6Y9qcJXUmMryINzdpLyeKMkSFZ3Nz+wqV0lA09GfY9UzhED/bjp6wriDv2i7FGttQmo8rbgLy2DlmCVQCicAMYtrAIPaKxdRiw7EC4Nxsc1c1JKW82rK0f3DE/1q0FqVLhpIX3maN4qIp0uZSk8QaZI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.12)
 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.12 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.12; helo=SATLEXMB04.amd.com; pr=C
Message-ID: <3736a7c0-694a-4741-b4d3-a821d3785646@amd.com>
Date: Wed, 20 Nov 2024 17:32:06 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 6/6] x86/boot: add cmdline to struct boot_domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-7-dpsmith@apertussolutions.com>
 <c4b37832-efaa-4a26-8bbf-a3cf7caa3468@amd.com>
 <a7b7ec58-73f6-4463-97c8-f9acdedec7af@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <a7b7ec58-73f6-4463-97c8-f9acdedec7af@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|SA1PR12MB8742:EE_
X-MS-Office365-Filtering-Correlation-Id: 1b5fbfa1-a6a7-4843-7b96-08dd09b32d88
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Szc3a09lT0ZqU2w5NGhBQndQOTliNlprVWtpZWdPYUZkVGlxZzEwNEVlUHR3?=
 =?utf-8?B?MWNSQXZBUXFEZVlhOVB5aHhsdDlrMFdIMnBMckszaFErNFRZNmQ5NE9tTm4z?=
 =?utf-8?B?UGJIc01oYlVDSFQ2ckh5cG0zT0lnczBGLzVQNVJ0RnNHVk5maDk2NHZocjRz?=
 =?utf-8?B?UXdZblhmMFpGZ2dZRmlXbEJ1TmtMZjdrQmNqNmpZUTZuaVl1eHlWMHlFWXpk?=
 =?utf-8?B?T0RTYjhWdmUva0R2Zjlpd3BHb2ltVVdIRFZJcG5KUjI4SzdaVG1pWlN0SFQy?=
 =?utf-8?B?WnZrbHpxd1Zyb1NKQk1odkZIME8wNlNoYm84dUJSNFhvSnRYMG9IUGxwOVc0?=
 =?utf-8?B?WUNNdFFLN1JIcUpkWUFBeEhhdThYL3VpR2QwSUlsVGRSRWUwRjd0cXBvNG5k?=
 =?utf-8?B?WDFCWlJpTjMxSXhoUmV3QVlpdXBIOEdrQ09XeG4vVVZtRUhsREl2Q3pVNmxi?=
 =?utf-8?B?SW1HNlU3QkozUXovN2ROeXhJN1ZLTXYvNlRlL1JZSzl0eGhHalAxTkVXR0l4?=
 =?utf-8?B?T0VPaGplWlRtZ1RxRURSUWdTaGVkV2pnMVB1ZHBmTUNqM3JlWjdsd29lNHZv?=
 =?utf-8?B?MGRZZm5kVVJzREdTR2pQRjNYTm1IK0lzckoyVGZxUDlJaGNTaGZEcjZGRnpl?=
 =?utf-8?B?K1h4Z0pzNE9KdHFjQ1VlWCtsOWRmWkRqWUZMOFczV1kzSFhJamtsN2ZoNC96?=
 =?utf-8?B?OE9CbjkvYmloNDMzZ2dXSzREZGtDVkQ1aUVucHdlWm1DckRzMXh0emJnSU12?=
 =?utf-8?B?WEMwU0lvMzlqYStmL3doVlVVczZ6S0hrWnY5UXArQzR0d0FQN3NoQmRrQXZ3?=
 =?utf-8?B?ZkhqdjlnVHFsYWE4b0ZvclpnNTBId1p4OFhxOUozMEpQL0gxUWlvK1Vpc2J2?=
 =?utf-8?B?NDc3bHVlcFhQRWI3NVNyUkhGTE1IUEMvS3pmT0dJUFFuVkpwODBxYzdtSTJP?=
 =?utf-8?B?cU1MM2l3bWlrZERDckYxNUcyOGtraUdzcUlSbmwrV3NlcHVrUkl4Q3lHa054?=
 =?utf-8?B?MGFITjZMdkxXOWpTaGVXcjhib0tiQ2VtZXhIMjJVS1F5M3NySnF3SGRMVlpC?=
 =?utf-8?B?YmVyRTZhRTFjcktUK0dIVkFKODhta1NreHI5TFJIRnFTN0RWZU5sWVNHRjEx?=
 =?utf-8?B?cUJ3Nm1aem1oSWcvNXRRcjRwSWpKQ0k4bkduOUtzR01yZnVFcjlhUTZDKzl4?=
 =?utf-8?B?L3QrelBrOHhDbW13TkZ5SEdRL3gzSUFlWDJYU1JjT0dVMWNkUkNMcDZpV1NF?=
 =?utf-8?B?RTRwZGNZbThpZjEyV29RdGl1aXlRb21wcm8vMWU5UHZ0Z25KNzlBNVhWVGVy?=
 =?utf-8?B?RFJnbHN1TjV4ZTZFVWYwWHVGNHhJZEtNZG1qV1VVdSthL1pyeHg2NWlaQUFl?=
 =?utf-8?B?QWZxUGJtbkpaVytrRFNHYllvYVpTdFl5WkJmTFRNMzJiK0NlTmd3dy9Ld2J3?=
 =?utf-8?B?ZWtRZ3dZZDNFS3NrNHhoUXpoZ2o0dWpQb1JxUWFrUDVxNU1ueGsySkJkbHVh?=
 =?utf-8?B?QzlBYytCY2drQm9WQ2hzM3NzcTR6bWdnOGF4VVhVbjJLZTFIbmhiNk5BTEZp?=
 =?utf-8?B?b1RtL2xUUVFCcTBWSFhZQmVYUldScWtUOWo1aVdPdG9QYkpKaXQrVU9XV1Zv?=
 =?utf-8?B?Q0pPWXI1eUp4L2MwMDBocmxMU1llMFFMNlhlcFVsRG9VUFdQNEJscWtMN3Jy?=
 =?utf-8?B?REQvaUZlNTlmNSt1NExqaEpZc2lEQk43L25RUDBXMUw4Y0REUlcyY1VpNGQr?=
 =?utf-8?B?a3oxWVl1c0UvYk9NYTBtcG9weXMvNkZBeENDOXpDYWpUQ2NyeCtEQUxUMnJM?=
 =?utf-8?B?ZEcvMTV2bnZXMXVsY0RIUGhoWWoxYTllNzVDMTJNZXd5Wm9MckIxVnA0SGJo?=
 =?utf-8?B?aVlJWGRiRzdpZXdSeVBickJUc0o2UitJdkpNMllMNjRXSGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2024 22:32:12.3568
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b5fbfa1-a6a7-4843-7b96-08dd09b32d88
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742

On 2024-11-20 12:57, Daniel P. Smith wrote:
> On 11/15/24 13:20, Jason Andryuk wrote:
>> On 2024-11-15 08:12, Daniel P. Smith wrote:>>
>> Just xmalloc_array since it'll be overwritten immediately?
> 
> Yes and no, the concern I was worried about is that the allocation may 
> end up being slight bigger than what is copied in to the buffer. If we 
> do not zero the buffer, then those trailing bytes will have random data 
> in them. In a perfect world, nothing should ever reach those bytes based 
> on the current usage of the buffer. But from my perspective, it would be 
> safer to zero the buffer than rely on the world being perfect. I am not 
> fixed on not switching, just providing my 2 cents,

I only looked at the PVH case, but strlen() is used there to obtain the 
copy length.  I think it's unnecessary and the code doesn't require a 
zeroed buffer.  But I also realize it's safer to start from zeroed.

>>> +Â Â Â Â Â Â Â Â Â Â Â  panic("Error allocating cmdline buffer for %pd\n", d);
>>> +
>>> Â Â Â Â Â Â Â Â Â  if ( bd->kernel->cmdline_pa )
>>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcpy(cmdline,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cmdline_cook(__va(bd->kernel->cmdline_pa), 
>>> bi->loader));
>>> +Â Â Â Â Â Â Â Â Â Â Â  strlcpy(cmdline,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cmdline_cook(__va(bd->kernel->cmdline_pa),bi- 
>>> >loader),

Also I just noticed a missing space: "cmdline_pa),bi"

>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cmdline_size);
>>> Â Â Â Â Â Â Â Â Â  if ( bi->kextra )
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  /* kextra always includes exactly one leading space. */
>>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, bi->kextra);
>>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, bi->kextra, cmdline_size);
>>> Â Â Â Â Â Â Â Â Â  /* Append any extra parameters. */
>>> Â Â Â Â Â Â Â Â Â  if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
>>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, " noapic");
>>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, " noapic", cmdline_size);
>>> Â Â Â Â Â Â Â Â Â  if ( (strlen(acpi_param) == 0) && acpi_disabled )
>>> Â Â Â Â Â Â Â Â Â  {
>>> @@ -1028,17 +1055,21 @@ static struct domain *__init 
>>> create_dom0(struct boot_info *bi)
>>> Â Â Â Â Â Â Â Â Â  if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
>>> Â Â Â Â Â Â Â Â Â  {
>>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, " acpi=");
>>> -Â Â Â Â Â Â Â Â Â Â Â  safe_strcat(cmdline, acpi_param);
>>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, " acpi=", cmdline_size);
>>> +Â Â Â Â Â Â Â Â Â Â Â  strlcat(cmdline, acpi_param, cmdline_size);
>>> Â Â Â Â Â Â Â Â Â  }
>>> -Â Â Â Â Â Â Â  bd->kernel->cmdline_pa = __pa(cmdline);
>>> +Â Â Â Â Â Â Â  bd->cmdline = cmdline;
>>> +Â Â Â Â Â Â Â  bd->kernel->cmdline_pa = __pa(bd->cmdline);
>>
>> Should cmdline_pa go away if we now have a valid cmdline variable?
> 
> In the PVH dom0 case, we are still relying on cmdline_pa as the 
> reference to get at the command line in the function pvh_load_kernel(). 
> With the introduction of cmdline to boot_domain, I could convert the 
> interface of pvh_load_kernel() to take the boot_domain instance, 
> removing the need to update cmdline_pa. Not sure if you were asking 
> this, but as for cmdline_pa going completely away, that is not possible. 
> First the sequence of events do not allow it, and there is an one-off 
> case for PVH dom0 where the cmdline_pa of the initrd module is copied 
> into the domain.

I was thinking from this point forward only boot_domain->cmdline is 
necessary.  Maybe even zero-ing cmdline_pa?  With a valid pointer in 
cmdline, cmdline_pa shouldn't be necessary anymore.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 03:05:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 03:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841238.1256736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tDxVZ-0008G9-3j; Thu, 21 Nov 2024 03:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841238.1256736; Thu, 21 Nov 2024 03: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 1tDxVZ-0008G2-0r; Thu, 21 Nov 2024 03:05:29 +0000
Received: by outflank-mailman (input) for mailman id 841238;
 Thu, 21 Nov 2024 03:05: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=JFsw=SQ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tDxVX-0008Fw-Ep
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 03:05:27 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2416::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7029cb55-a7b5-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 04:05:20 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by IA0PR12MB7627.namprd12.prod.outlook.com (2603:10b6:208:437::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.21; Thu, 21 Nov
 2024 03:05:14 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.023; Thu, 21 Nov 2024
 03:05: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: 7029cb55-a7b5-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjBmIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjcwMjljYjU1LWE3YjUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTU4MzIwLjM4NDI1NSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DC7IWgj53dQafBU/d6IYH2g9NEONre5pt/0AIn/20cwrrL9+yNOJdPWQfePE3euEXcL8EyS8BVjUn1tQxbeXgFKQTfFX72L/mXFmfKc+fknvFLe0EE184Fuq2DKmFLudpk8ya1gI8/+Y4VB5AH+4o+bN22FkIurN68i+/mIIlHoz8du+s4mAvokh1YgCI/z78aX+VToZfELiFBd0MxUbC8OxrdEWTq0YJUSn3yfgQ0Az0O9doste4UIWH9qdPxT3BZAuN2CObE1XtfxkQ/pIOAde4l12jLZ/pr///pnlsLXG+xdBi3LRH4bqgPyVkjzv6mWNFJdotwlO3gb4L35VYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mhqu8/W+pFtKyKzE+BRLMZ4QVAxhR3VAwRKov0gvA2A=;
 b=l5v7RPO03BgGUlBeHX30/KLL6Enw111pFMybNfHkjRcMz1OwJ3w4Jq797T0CxZScS/2XoaYgJ6zou30X5JOVZ1Q0Ya3aZhgT1BjtLRKZ/gkSEq8zKRyyZN4G2h3RTrghvYeF6As/+ZYYpdPBoylKNLXLFzmFDHTA7i6zn8bgjR8bUwqTlw+yIUmPUaHIAHNnCgsPVgSN+8cdWewcvqN/XmKXWV1IrLeHqvvf/R75kwLaEWYGjQWK2aGa39DRv4yQWZj5AmK0Df58SKVMCaQm8QDbmiKyCqc/EZcXtO+FJ10k/oZ++2lBDKEpmQsUTiOxzzUGIE1V81RxsVbAsbb6TA==
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=Mhqu8/W+pFtKyKzE+BRLMZ4QVAxhR3VAwRKov0gvA2A=;
 b=iowpwajclONw+R8Tlilc7Q+D+TIS3c0MAmNDCc3kc4JMDeJdPL30FJzcteVOiGNa+kG/YQk1fDqCT686cbhYxtsyfb1M66zkFlWLiwB8R+ycVHUNYhsFK1R9+zfxrju0EfvhC3y/Ec/3Uoa8Cw/ZKkNRJM41qBNg4srS79fUM7E=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAIABfwWAgAFxTQD//+JeAIABss4A
Date: Thu, 21 Nov 2024 03:05:14 +0000
Message-ID:
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
References:
 <BL1PR12MB5849AB0F258C07AD72EFDB29E75A2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzR_wlY0wXjqec8T@macbook>
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
In-Reply-To: <Zz2lgkjgRoZ7Sr5Q@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|IA0PR12MB7627:EE_
x-ms-office365-filtering-correlation-id: edf7d04e-d214-431d-465e-08dd09d9520f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?ajF6K25wQWVMV1oybU5UemZNYWoyZE50bzJGOWVWTFNCQW8vSGFIb04zVlJr?=
 =?utf-8?B?QWMyVkRWeWJVSys5bWNSZys3RG1YZ2tucXp1SWNhS1A1K1V1UTk0UzJpeFVm?=
 =?utf-8?B?bjNLd1VWeG1PRDNTUENuVXpMWU1TMG1NMTc3Y0FEQk1kZ1oyUnJNYktNdVMx?=
 =?utf-8?B?MUd4TVlsbkNoRVlmZDBrK3k2d2I2WjFFTUhmaTV4ZXVNOHZVekdpWmZlS1FF?=
 =?utf-8?B?cGZWTGNmaTdwUkR2M2o3R2xTdDZJbDRLQjc2dHVmbUgvS0w1eExUejNBbVRq?=
 =?utf-8?B?UlhUeHJFWTNVRHc2U2o2dTZRMUQyS2dCK1pEVm5SbitVb3lLNlF2SFRVZ2w2?=
 =?utf-8?B?cUgxMGlvWUxleVovWkJwNjFEWXUvZS9TT1dhemtQMktnQTlHNzNLK3pON2t3?=
 =?utf-8?B?eU9lcjh6dUFyc3dkWGxPQTlhcmM2NU03UEtCVGIxYXRnMXRwWHNrd3JKNU4x?=
 =?utf-8?B?bkFTSW54SDJTWHVNdUM3TDBEd0MvWW8zcDYyZkVTZ2l1cUkyNjNsc1hyK21v?=
 =?utf-8?B?dkdSYkQvMTdRYVVEOUhLdE9oeXJqNWRTdDNhN0o4OGdLQ0s3dWhOWktJUmRQ?=
 =?utf-8?B?Zi9vZk1Zc0ZDMEJlb2k0S0ROTHRhcnNNa1hWK1JjK2tLOXA0UmhRS0pLUnhy?=
 =?utf-8?B?cklURkkrZk9wR1NQQk1sUm5zbXowYURLS1VjRE9rQmgzNFdKb1BFcndxTEZB?=
 =?utf-8?B?WEJ0QkJEZDFhVEpMSUxlTXZHajhZbXlUNGJCYy9RNnIxUWM4L1BXanJNWGZH?=
 =?utf-8?B?cCtHSkdKNnFMb0pmRnBnSStWZE1uZTN4ck83d0x6NEZQeVFLSVNEM2JxTUs5?=
 =?utf-8?B?akk0RWl3emZvaUJGSlE2SGZmSmZ2bytYRUNQa0RaZ1MwdkR0REp2WlNWRnFx?=
 =?utf-8?B?OGF1VmRMcmloeW1PcGZRYVIzVFlRTTJ3ME13WnY1bXJVQlV6WXlMV2xHL2tJ?=
 =?utf-8?B?WitGcEI2aHVwajY4TnVienM1L0h0V3RiMFBwMlRWSi9EcnFzeGJPWElPcGxN?=
 =?utf-8?B?NGduVCt2STBreVpPbEgyeEViOXM2ZVRBLzVIeW9FNkc1dENOUUNTT3dMbjVC?=
 =?utf-8?B?WEQvKzlySWlDZkVBK2ZhQkQxNTJGUTRlYmgwa1l1R1J1d3NjNnA5RkY5bXMy?=
 =?utf-8?B?WHBaVVdZbUYreWpuWkdMV1l2N1lDaVZaTDRkalhTeklNZk5CUkYweE9QcEtz?=
 =?utf-8?B?THVtbW1KL1diNERmbVNSZjl2dzVLUmRuViszMitUbERTN09GcWJiNmxwOGpL?=
 =?utf-8?B?OXh6bi9iUlhrRGxRQmJrNEYxdXlKUmxPOHlodmtZUmYzblRjRlZEaTRSK2FT?=
 =?utf-8?B?L3ZETWhMUWMxN0hNNVZ5ODRrcXRZMmM2QkIzT0xsakJVOFIxYmFxOURmU3BX?=
 =?utf-8?B?TlBSenpieStGeGNEdFVVbm5vMGtLMDlPRDRUZ0ppTzl2cHJKMFM3dGlQeENX?=
 =?utf-8?B?eHJUY3pDVjBvZXhXL1NxM0hseFJqV2FCNGQ5Njk3NC92U0sxV3RHQ2JRUjM4?=
 =?utf-8?B?ODVjcUpMbzlVaUdMWWNPVG5WdmlPbzZlSjd3RjluWlJXZ0FzS0xLV2N4RjZh?=
 =?utf-8?B?emtDZDJPMzRWWC8ya3UwNXl5NG9XdXhoZ1l1eXd0TlRnSG4wbUNENGpvTmFi?=
 =?utf-8?B?Qm5LblRacWdDaWhtNFBlc2xQT2c1YXJTNUt3U3U1eUxMcE9hWmJmOTZoWkVx?=
 =?utf-8?B?V0hZdWFUY1pxUndSVXMweVBCVVhzb3RVL25UV0lCeFlmY04vWmlqbms2dkZw?=
 =?utf-8?B?ZHB4TEc5UXFjaHBwcnl3LzN3MXZSVlBrOXU3VnBhd3JEQzhBYUI2bFRjWHVN?=
 =?utf-8?B?VzhUL1BLVzVvZjhEcVlpNWh0a002bUJlTk1KTGhIZ2hzSWtGQ0ZQbDVaUkxF?=
 =?utf-8?Q?G8LHM+kvg7QkZ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?S3p1Ymg3eXVZeE9rd3k3aTVjalpWZDdVYU5aZ2NQdTNSZFdFRjVFcHYwZ3VQ?=
 =?utf-8?B?cjNmZVRlN3lQZ0pqNXZNMTR3UWl2VEFsTHJHZG1LT0dIOXZLcjM0N0JDa1pl?=
 =?utf-8?B?R0hBZDZIQ1h5YTlzYVUwUlplOHdxMEt6T1JWUGJIaEk0RWo1a0JacEcrQmJE?=
 =?utf-8?B?MU5walVMWjZHOFNHU09pbHJrQVVIdi9aNU9XeTRZeUhESklLSG1IRFh2eDU1?=
 =?utf-8?B?bXIwK1ZlR2J3SlpEWEZMWHRJYW5JQmI4NmFoajV3S0d2YlUwbDlXTHlyWDRG?=
 =?utf-8?B?aXp3b21aTC8yUC9TTGROZVV0ZHlITFRhcXlLdUZPbVA5U2RNb0dRZVh6Rmlx?=
 =?utf-8?B?eVNiaVdKb1V3SzhuZWZxbTdYNFliNVhDRUlMQVNQaWlzekthU2NJbU1NY1B3?=
 =?utf-8?B?V1RLYUU3OHB1Zmg3NXFZVmVKVHR0R3pGcysxYmV5Zk01SEVuancySEVIUUxY?=
 =?utf-8?B?K0ZML1dXcDhSY05NcVh6dFplSDB5bmkvNHZKcFNNWEtZMzZHRXE0eHNQWVBE?=
 =?utf-8?B?bXNKdE91N3VqOGVsVEdyaDRraVZ2TzltTTdFSzY4QzlQL2d5R2NsNTNGV3hU?=
 =?utf-8?B?TUdXRUNmamIydlU1OC85N1RFQndUbGloeHFNS3B2cDBWUE1ORlFQcWVXdGR0?=
 =?utf-8?B?cjVma0k0NVBKY0tJR29GK1cydmZmR1dYNVoyN2MwTjhGTmFXUHM3UWwyZ2dH?=
 =?utf-8?B?K3FhL2hzQ2VKMHdhNnFWT2x5NTl2WWMvYjViYWNiVUlybE4wOXBuYXREQzVi?=
 =?utf-8?B?eThVMG1PZEIwc3p4N1c3NGwxUy84MDEzcDlVNE04Z0pmQkU3YkFqeEJjblU0?=
 =?utf-8?B?M25CdHg3Q0ZpZmNDT3R6aUEwK3FDU05WTVd4Sm1QZGdlajNKemFoL3NDR1Av?=
 =?utf-8?B?SUlUdkVTcVR1K2h3NXdoUG96aVpESTA1dHBscTI1Z1ZqMXdjbDEwVUdXN3Ir?=
 =?utf-8?B?WHduVmFhVjErS1lmbDhkQnlvNlJITHFUbHBWbU9lSTJKc0duR0dmQzE0TVk0?=
 =?utf-8?B?N3NmMUVvQmEzSHIxYXMvRWNFTEg0VGlnUlpHbFN1bFdkL2ZwdHIxdDhMa1l1?=
 =?utf-8?B?b2gxamZiaUNxUmVHTkw4UnJOVXltOHo4SHowQzhqMTZYRXNxcFVKL3R3RDky?=
 =?utf-8?B?SG9GWEtJd29vYlNUL2tKbWVqNmFPT01yVXVWeU02NVF2eWVDN0tNOUdUZ1lI?=
 =?utf-8?B?ZHBNVWIxejNaaTh4ZFRyY3pyYmFlenRqNC9wbm9ITXBhTU83OU92cFFkUkZp?=
 =?utf-8?B?Sk9GcXhoeFVkcStkd2VCd1R0YXEzR1l1M1JKdEZZNjk4MVErbzNyR21LeTZp?=
 =?utf-8?B?MVdNVUNzdnYySDdiSHpVZEt3T2l1d1BraFpZWkd3TC9FaWpXZnlVMnh0MmJr?=
 =?utf-8?B?Yk9wcGdETndTOGpkOUNHSjBLNkFvTFlYUVovdnd3cy9uNjhJUld0QjdkV0VP?=
 =?utf-8?B?OHcrLzY4anNscXorOUc1RTNmSVgva1JpS3ZOVHpzM29KRzJ3S3ZVM1FrRUlj?=
 =?utf-8?B?TFUwZ2I4aHpvWjlua3QySzFDSktGVFpSVGF2OS9XWGp2c3BhOC96MTdoMEM1?=
 =?utf-8?B?ZTBhM1VOZVgzTUpIcE9mL1gvMHc1azdOSVlpTWtlWEdJRHZKVjR1ZDlpei9L?=
 =?utf-8?B?czNocGNaTFd1aXJiZmRkYk5VN2tvQ2loaTVVVzZDa2c2d0t5cko2VFBqdkI3?=
 =?utf-8?B?bnYybmxoV1Qwa2xuZ0VLNTg1ZkF0M2hBZUcwYWc1dmN3dGJ4bGpQREhOS1VO?=
 =?utf-8?B?akpNTmpwb2xSTDdMS2VKUWtSbGZzWHcweWtwczFha2tKV2hNY1pLUXliT3NT?=
 =?utf-8?B?TWJqS201bjBkQTlVZnhHQUR0UWVMdWZBVEV0OHlyS3FwbzVDRnBRcWw1Uitr?=
 =?utf-8?B?S29qZzJLYzYvRi9Wb3FhTkdieitjeUlnYUx3eXNJaGRiR09YMExlNCtMYjVq?=
 =?utf-8?B?WG02MEtkV3EvQmpMcy9USkFiUGJ3SGp5MEc0d1hQL2xMVVQ2NkVnS1IrZ0tV?=
 =?utf-8?B?Zlc4cXZjUkVpVVViMGw4YmdYTmlKR3kzWHpKT0NnT0tXT2tVRHQvT1RmTmIw?=
 =?utf-8?B?a2o4dkRNa2dVSjVIVVBSMStyaVlGNmIyUUhNcVAzdGZqMzAxMGR6MTdqdGRp?=
 =?utf-8?Q?Pvo0=3D?=
Content-Type: multipart/mixed;
	boundary="_003_BL1PR12MB5849F5382CF3A03C080C4CA4E7222BL1PR12MB5849namp_"
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: edf7d04e-d214-431d-465e-08dd09d9520f
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2024 03:05:14.5378
 (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: lNn5JhxO6jR1D3N5cYbGw+SLNJEkGmp3R8WUnKyoheHVopIjkRjaYIBOEAF6B6GVkZVakczJuqat1FqpQntqsQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7627

--_003_BL1PR12MB5849F5382CF3A03C080C4CA4E7222BL1PR12MB5849namp_
Content-Type: text/plain; charset="utf-8"
Content-ID: <E3D9E2C0D9BE1B48BB7D0CB3311B5137@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64

T24gMjAyNC8xMS8yMCAxNzowMSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gV2VkLCBO
b3YgMjAsIDIwMjQgYXQgMDM6MDE6NTdBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
VGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIG91ciBtZXRob2RzIGlzIHRoZSB0aW1pbmcgb2Yg
dXBkYXRpbmcgdGhlIHNpemUuDQo+PiBZb3VycyBpcyBsYXRlciB0aGFuIG1pbmUgYmVjYXVzZSB5
b3UgdXBkYXRlZCB0aGUgc2l6ZSB3aGVuIHRoZSBkcml2ZXIgcmUtZW5hYmxlZCBtZW1vcnkgZGVj
b2RpbmcsIHdoaWxlIEkgdXBkYXRlZCB0aGUgc2l6ZSBpbiB0aW1lIHdoZW4gZHJpdmVyIHJlc2l6
ZSBpdC4NCj4gDQo+IEluZGVlZCwgbXkgbGFzdCBndWVzcyBpcyB0aGUgc3RhbGUgY2FjaGVkIHNp
emUgaXMgc29tZWhvdyB1c2VkIGluIG15DQo+IGFwcHJvYWNoLCBhbmQgdGhhdCBsZWFkcyB0byB0
aGUgZmFpbHVyZXMuICBPbmUgbGFzdCAocG9zc2libHkgZHVtbXk/KQ0KPiB0aGluZyB0byB0cnkg
bWlnaHQgYmUgdG8gdXNlIHlvdXIgcGF0Y2ggdG8gZGV0ZWN0IHdyaXRlcyB0byB0aGUgcmVzaXpl
DQo+IGNvbnRyb2wgcmVnaXN0ZXIsIGJ1dCB1cGRhdGUgdGhlIEJBUiBzaXplcyBpbiBtb2RpZnlf
YmFycygpLCB3aGlsZQ0KPiBrZWVwaW5nIHRoZSB0cmFjZXMgb2Ygd2hlbiB0aGUgb3BlcmF0aW9u
cyBoYXBwZW4uDQo+IA0KVGhpcyBjYW4gd29yaywgY29tYmluZSBvdXIgbWV0aG9kLCB1c2UgbXkg
cGF0Y2ggdG8gZGV0ZWN0IGFuZCB3cml0ZSB0aGUgc2l6ZSBpbnRvIGhhcmR3YXJlIHJlZ2lzdGVy
LCBhbmQgdXNlIHlvdXIgcGF0Y2ggdG8gdXBkYXRlIGJhcltpXS5zaXplIGluIG1vZGlmeV9iYXJz
KCkuDQpBdHRhY2hlZCB0aGUgY29tYmluZWQgcGF0Y2ggYW5kIHRoZSB4bCBkbWVzZy4NCg0KLS0g
DQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==

--_003_BL1PR12MB5849F5382CF3A03C080C4CA4E7222BL1PR12MB5849namp_
Content-Type: text/plain; name="rebar_xl_dmesg.txt"
Content-Description: rebar_xl_dmesg.txt
Content-Disposition: attachment; filename="rebar_xl_dmesg.txt"; size=42138;
	creation-date="Thu, 21 Nov 2024 02:57:25 GMT";
	modification-date="Thu, 21 Nov 2024 03:05:12 GMT"
Content-Transfer-Encoding: base64

IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgIF9fXyAgICAgICAgICAgICAgICAgICAg
IF8gICAgICAgIF8gICAgIF8KIFwgXC8gL19fXyBfIF9fICAgfCB8fCB8ICB8X19fIFwgLyBfIFwg
ICAgXyAgIF8gXyBfXyAgX19ffCB8XyBfXyBffCB8X18gfCB8IF9fXwogIFwgIC8vIF8gXCAnXyBc
ICB8IHx8IHxfICAgX18pIHwgfCB8IHxfX3wgfCB8IHwgJ18gXC8gX198IF9fLyBfYCB8ICdfIFx8
IHwvIF8gXAogIC8gIFwgIF9fLyB8IHwgfCB8X18gICBffCAvIF9fL3wgfF98IHxfX3wgfF98IHwg
fCB8IFxfXyBcIHx8IChffCB8IHxfKSB8IHwgIF9fLwogL18vXF9cX19ffF98IHxffCAgICB8X3wo
XylfX19fX3xcX19fLyAgICBcX18sX3xffCB8X3xfX18vXF9fXF9fLF98Xy5fXy98X3xcX19ffAoK
KFhFTikgWGVuIHZlcnNpb24gNC4yMC11bnN0YWJsZSAoY2pxQCkgKGdjYyAoVWJ1bnR1IDExLjQu
MC0xdWJ1bnR1MX4yMi4wNCkgMTEuNC4wKSBkZWJ1Zz15IFRodSBOb3YgMjEgMTA6NDE6MDMgQ1NU
IDIwMjQKKFhFTikgTGF0ZXN0IENoYW5nZVNldDogVGh1IE5vdiAyMSAxMDoyMDo0NyAyMDI0ICsw
ODAwIGdpdDpkOTEwMzA5NTY4CihYRU4pIGJ1aWxkLWlkOiA0NDRhMjFjMDJhZDBjMDM0ODQxZTVh
NjhmZDIzZjdlN2VlZTEzZTExCihYRU4pIEJvb3Rsb2FkZXI6IEdSVUIgMi4wNi0ydWJ1bnR1MTQu
NAooWEVOKSBDb21tYW5kIGxpbmU6IHBsYWNlaG9sZGVyIGRvbTA9cHZoIGRvbTBfbWVtPTZHIGxv
Z2x2bD1hbGwgbm8tcmVhbC1tb2RlIGVkZD1vZmYKKFhFTikgWGVuIGltYWdlIGxvYWQgYmFzZSBh
ZGRyZXNzOiAweGM2YzAwMDAwCihYRU4pIFZpZGVvIGluZm9ybWF0aW9uOgooWEVOKSAgVkdBIGlz
IGdyYXBoaWNzIG1vZGUgMjU2MHgxNDQwLCAzMiBicHAKKFhFTikgRGlzYyBpbmZvcm1hdGlvbjoK
KFhFTikgIEZvdW5kIDAgTUJSIHNpZ25hdHVyZXMKKFhFTikgIEZvdW5kIDEgRUREIGluZm9ybWF0
aW9uIHN0cnVjdHVyZXMKKFhFTikgQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkgMjMgKDB4MTcpLCBN
b2RlbCA5NiAoMHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkKKFhFTikgRUZJIFJBTSBt
YXA6CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAwMDA5ZWZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwMDAwMDlmMDAwLCAwMDAwMDAwMDAwMGJmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAwMDAwMDAwOWFmZmZmZl0gKHVzYWJsZSkKKFhFTikg
IFswMDAwMDAwMDA5YjAwMDAwLCAwMDAwMDAwMDA5ZGZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBb
MDAwMDAwMDAwOWUwMDAwMCwgMDAwMDAwMDAwOWVmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAw
MDAwMDA5ZjAwMDAwLCAwMDAwMDAwMDA5ZjBmZmZmXSAoQUNQSSBOVlMpCihYRU4pICBbMDAwMDAw
MDAwOWYxMDAwMCwgMDAwMDAwMDBiYjQ2NWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGJi
NDY2MDAwLCAwMDAwMDAwMGJjNTY1ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBiYzU2
NjAwMCwgMDAwMDAwMDBjODc3ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGM4NzdmMDAw
LCAwMDAwMDAwMGNhZjdlZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBjYWY3ZjAwMCwg
MDAwMDAwMDBjY2Y3ZWZmZl0gKEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwY2NmN2YwMDAsIDAw
MDAwMDAwY2NmZmVmZmZdIChBQ1BJIGRhdGEpCihYRU4pICBbMDAwMDAwMDBjY2ZmZjAwMCwgMDAw
MDAwMDBjY2ZmZmZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMGNkMDAwMDAwLCAwMDAwMDAw
MGNkZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBm
N2ZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmRlMDAwMDAsIDAwMDAwMDAwZmRl
ZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAx
ZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZm
Zl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVjMjAwMDAsIDAwMDAwMDAwZmVjMjBmZmZd
IChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDgwMDAwLCAwMDAwMDAwMGZlZDgxZmZmXSAo
cmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWRjMDAwMCwgMDAwMDAwMDBmZWRkZmZmZl0gKHJl
c2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVlMDAwMDAsIDAwMDAwMDAwZmVlMDBmZmZdIChyZXNl
cnZlZCkKKFhFTikgIFswMDAwMDAwMGZmMDAwMDAwLCAwMDAwMDAwMGZmZjFmZmZmXSAocmVzZXJ2
ZWQpCihYRU4pICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAwMDAwMDgwZjMzZmZmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwODBmMzQwMDAwLCAwMDAwMDAwODJmZmZmZmZmXSAocmVzZXJ2ZWQpCihY
RU4pIEJTUCBtaWNyb2NvZGUgcmV2aXNpb246IDB4MDg2MDAxMDkKKFhFTikgQUNQSTogUlNEUCBD
Q0ZGRTAxNCwgMDAyNCAocjIgQU1EICAgKQooWEVOKSBBQ1BJOiBYU0RUIENDRkRFMTg4LCAwMTU0
IChyMSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDIgICAgICAgMTAwMDAxMykKKFhFTikgQUNQSTog
RkFDUCBDQ0ZFNjAwMCwgMDExNCAocjYgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAg
NDAwMDApCihYRU4pIEFDUEk6IERTRFQgQ0NGRDQwMDAsIDkwQkYgKHIxIEFNRCAgICBDZWxhZG9u
ICAgICAgICAgMiBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBGQUNTIENDRUYxMDAwLCAwMDQw
CihYRU4pIEFDUEk6IFVFRkkgQ0NGN0UwMDAsIDAyMzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkY1MDAwLCA3MjNDIChyMiBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogSVZSUyBD
Q0ZGNDAwMCwgMDFBNCAocjIgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IFNTRFQgQ0NGRjAwMDAsIDM3NEEgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVGMDAwLCAwMjI4IChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQkVSVCBD
Q0ZFRTAwMCwgMDAzMCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEVJTkogQ0NGRUMwMDAsIDAxNTAgKHIxIEFNRCAgICBDZWxhZG9uICAgICAg
ICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkVCMDAwLCAwNDZEIChyMSBB
TUQgICAgQ2VsYWRvbiAgICAgIDEwMDAgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogVFBNMiBD
Q0ZFQTAwMCwgMDAzNCAocjQgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDAp
CihYRU4pIEFDUEk6IEFTRiEgQ0NGRTgwMDAsIDAwQTUgKHIzMiBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQk9PVCBDQ0ZFNzAwMCwgMDAyOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IEhQRVQg
Q0NGRTUwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBBUElDIENDRkU0MDAwLCAwMTM4IChyNCBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogTUNGRyBDQ0ZFMzAwMCwgMDAzQyAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNMSUMg
Q0NGRTIwMDAsIDAxNzYgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMiBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBXU01UIENDRkRGMDAwLCAwMDI4IChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDIgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NEVCBDQ0ZGRDAwMCwgMDA4MCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQg
Q0NGQzUwMDAsIDAxNjQgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgMTAwMCBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBTU0RUIENDRkMyMDAwLCAyQjgwIChyMSBBTUQgICAgQ2VsYWRvbiAgICAg
ICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogQ1JBVCBDQ0ZDMTAwMCwgMEJBOCAocjEg
QU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IENESVQg
Q0NGQzAwMDAsIDAwMjkgKHIxIEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAw
KQooWEVOKSBBQ1BJOiBWRkNUIENDRkE3MDAwLCAxOENBMCAocjEgQU1EICAgIENlbGFkb24gICAg
ICAgICAxIEFDUEkgICAgNDAwMDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRDMwMDAsIDAxMzkgKHIx
IEFNRCAgICBDZWxhZG9uICAgICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBIRVNU
IENDRjk2MDAwLCAxMDg3NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGRUQwMDAsIDAyOEQgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkQyMDAwLCAwRDM3IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZEMDAwMCwgMTBBQiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0YwMDAsIDAxNzkgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkNEMDAwLCAxNTRGIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZDQjAwMCwgMTBCMyAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGQ0EwMDAsIDAxQzAgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkM2MDAwLCAzMEM4IChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogRlBE
VCBDQ0Y5NTAwMCwgMDA0NCAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAyIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IEJHUlQgQ0NGOTQwMDAsIDAwMzggKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBBQ1BJOiBTU0RUIENDRkUxMDAwLCAwMDdEIChy
MSBBTUQgICAgQ2VsYWRvbiAgICAgICAgIDEgQUNQSSAgICA0MDAwMCkKKFhFTikgQUNQSTogU1NE
VCBDQ0ZFMDAwMCwgMEY5NiAocjEgQU1EICAgIENlbGFkb24gICAgICAgICAxIEFDUEkgICAgNDAw
MDApCihYRU4pIEFDUEk6IFNTRFQgQ0NGOTMwMDAsIDA1MTcgKHIxIEFNRCAgICBDZWxhZG9uICAg
ICAgICAgMSBBQ1BJICAgIDQwMDAwKQooWEVOKSBTeXN0ZW0gUkFNOiAzMjEwMk1CICgzMjg3Mjc2
NGtCKQooWEVOKSBObyBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQKKFhFTikgRmFraW5nIGEgbm9k
ZSBhdCAwMDAwMDAwMDAwMDAwMDAwLTAwMDAwMDA4MGYzNDAwMDAKKFhFTikgRG9tYWluIGhlYXAg
aW5pdGlhbGlzZWQKKFhFTikgdmVzYWZiOiBmcmFtZWJ1ZmZlciBhdCAweDAwMDAwMGZjNzAwMDAw
MDAsIG1hcHBlZCB0byAweGZmZmY4MmMwMDAyMDMwMDAsIHVzaW5nIDE0NDAwaywgdG90YWwgMTQ0
MDBrCihYRU4pIHZlc2FmYjogbW9kZSBpcyAyNTYweDE0NDB4MzIsIGxpbmVsZW5ndGg9MTAyNDAs
IGZvbnQgOHgxNgooWEVOKSB2ZXNhZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0y
NDoxNjo4OjAKKFhFTikgU01CSU9TIDMuMSBwcmVzZW50LgooWEVOKSBVc2luZyBBUElDIGRyaXZl
ciBkZWZhdWx0CihYRU4pIEFDUEk6IFBNLVRpbWVyIElPIFBvcnQ6IDB4NDA4ICgzMiBiaXRzKQoo
WEVOKSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6MF0sIHN0YXR1c1swOjBdCihYRU4p
IEFDUEk6IFNMRUVQIElORk86IHBtMXhfY250WzE6NDA0LDE6MF0sIHBtMXhfZXZ0WzE6NDAwLDE6
MF0KKFhFTikgQUNQSTogMzIvNjRYIEZBQ1MgYWRkcmVzcyBtaXNtYXRjaCBpbiBGQURUIC0gY2Nl
ZjEwMDAvMDAwMDAwMDAwMDAwMDAwMCwgdXNpbmcgMzIKKFhFTikgQUNQSTogICAgICAgICAgICAg
d2FrZXVwX3ZlY1tjY2VmMTAwY10sIHZlY19zaXplWzIwXQooWEVOKSBBQ1BJOiBMb2NhbCBBUElD
IGFkZHJlc3MgMHhmZWUwMDAwMAooWEVOKSBPdmVycmlkaW5nIEFQSUMgZHJpdmVyIHdpdGggYmln
c21wCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBnc2lf
YmFzZVswXSkKKFhFTikgSU9BUElDWzBdOiBhcGljX2lkIDMzLCB2ZXJzaW9uIDMzLCBhZGRyZXNz
IDB4ZmVjMDAwMDAsIEdTSSAwLTIzCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgyMl0gYWRkcmVz
c1sweGZlYzAxMDAwXSBnc2lfYmFzZVsyNF0pCihYRU4pIElPQVBJQ1sxXTogYXBpY19pZCAzNCwg
dmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUKKFhFTikgQUNQSTogSU5U
X1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMCBnbG9iYWxfaXJxIDIgZGZsIGRmbCkKKFhFTikgQUNQ
STogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgOSBnbG9iYWxfaXJxIDkgbG93IGxldmVsKQoo
WEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTIgdXNlZCBi
eSBvdmVycmlkZS4KKFhFTikgQUNQSTogSVJROSB1c2VkIGJ5IG92ZXJyaWRlLgooWEVOKSBBQ1BJ
OiBIUEVUIGlkOiAweDEwMjI4MjEwIGJhc2U6IDB4ZmVkMDAwMDAKKFhFTikgUENJOiBNQ0ZHIGNv
bmZpZ3VyYXRpb24gMDogYmFzZSBmMDAwMDAwMCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSA3Zgoo
WEVOKSBQQ0k6IE1DRkcgYXJlYSBhdCBmMDAwMDAwMCByZXNlcnZlZCBpbiBFODIwCihYRU4pIFBD
STogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03ZgooWEVOKSBIRVNUOiBUYWJs
ZSBwYXJzaW5nIGhhcyBiZWVuIGluaXRpYWxpemVkCihYRU4pIEFDUEk6IEJHUlQ6IGludmFsaWRh
dGluZyB2MSBpbWFnZSBhdCAweGMzMmIwMDAwCihYRU4pIFVzaW5nIEFDUEkgKE1BRFQpIGZvciBT
TVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgooWEVOKSBTTVA6IEFsbG93aW5nIDE2IENQVXMg
KDQgaG90cGx1ZyBDUFVzKQooWEVOKSBJUlEgbGltaXRzOiA1NiBHU0ksIDI0NDAgTVNJL01TSS1Y
CihYRU4pIFplbmJsZWVkIG1pdGlnYXRpb24gLSB1c2luZyBjaGlja2VuYml0CihYRU4pIENQVTA6
IDE0MDAgLi4uIDMwMDAgTUh6CihYRU4pIHhzdGF0ZTogc2l6ZTogMHgzODAgYW5kIHN0YXRlczog
MHgyMDcKKFhFTikgQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFi
bGVkCihYRU4pIFNwZWN1bGF0aXZlIG1pdGlnYXRpb24gZmFjaWxpdGllczoKKFhFTikgICBIYXJk
d2FyZSBoaW50czogSUJSU19GQVNUIElCUlNfU0FNRV9NT0RFCihYRU4pICAgSGFyZHdhcmUgZmVh
dHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JECihYRU4pICAgQ29tcGlsZWQtaW4gc3VwcG9ydDog
SU5ESVJFQ1RfVEhVTksgU0hBRE9XX1BBR0lORyBIQVJERU5fQVJSQVkgSEFSREVOX0JSQU5DSCBI
QVJERU5fR1VFU1RfQUNDRVNTIEhBUkRFTl9MT0NLCihYRU4pICAgWGVuIHNldHRpbmdzOiBCVEkt
VGh1bms6IFJFVFBPTElORSwgU1BFQ19DVFJMOiBJQlJTLSBTVElCUCsgU1NCRC0sIE90aGVyOiBC
UkFOQ0hfSEFSREVOCihYRU4pICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNSX1NQRUNfQ1RSTCBN
U1JfVklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkKKFhFTikgICBTdXBwb3J0IGZvciBQViBW
TXM6IElCUEItZW50cnkKKFhFTikgICBYUFRJICg2NC1iaXQgUFYgb25seSk6IERvbTAgZGlzYWJs
ZWQsIERvbVUgZGlzYWJsZWQgKHdpdGhvdXQgUENJRCkKKFhFTikgICBQViBMMVRGIHNoYWRvd2lu
ZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZAooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNN
UCBDcmVkaXQgU2NoZWR1bGVyIHJldjIgKGNyZWRpdDIpCihYRU4pIEluaXRpYWxpemluZyBDcmVk
aXQyIHNjaGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2Fk
X3dpbmRvd19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAoo
WEVOKSAgb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJy
YW5nZW1lbnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1z
CihYRU4pIGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIFBs
YXRmb3JtIHRpbWVyIGlzIDE0LjMxOE1IeiBIUEVUCihYRU4pIERldGVjdGVkIDI5OTQuMzY1IE1I
eiBwcm9jZXNzb3IuCihYRU4pIEZyZWVkIDEwMjBrQiB1bnVzZWQgQlNTIG1lbW9yeQooWEVOKSBF
RkkgbWVtb3J5IG1hcDoKKFhFTikgIDAwMDAwMDAwMDAwMDAtMDAwMDAwMDAwM2ZmZiB0eXBlPTIg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAwMDA0MDAwLTAwMDAwMDAwOGVmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwMDA4ZjAwMC0wMDAwMDAw
MDllZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwMDAwOWYwMDAt
MDAwMDAwMDA5ZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDAw
MTAwMDAwLTAwMDAwMDRhYzZmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDAwNGFjNzAwMC0wMDAwMDA5YWZmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwMDliMDAwMDAtMDAwMDAwOWRmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMDA5ZTAwMDAwLTAwMDAwMDllZmZmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDAwOWYwMDAwMC0wMDAwMDA5ZjBmZmZmIHR5cGU9MTAg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMDA5ZjEwMDAwLTAwMDAwNzkxMzdmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDA3OTEzODAwMC0wMDAwMDdm
ZmZlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwN2ZmZmYwMDAt
MDAwMDBiNmU4OGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI2
ZTg5MDAwLTAwMDAwYjcxMDNmZmYgdHlwZT0xIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAg
MDAwMDBiNzEwNDAwMC0wMDAwMGI3MzdlZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYK
KFhFTikgIDAwMDAwYjczN2YwMDAtMDAwMDBiNzM5ZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmCihYRU4pICAwMDAwMGI3MzlmMDAwLTAwMDAwYjczZjdmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiNzNmODAwMC0wMDAwMGI3NjE5ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYjc2MWEwMDAtMDAwMDBiNzY2N2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGI3NjY4MDAwLTAwMDAwYmFm
ODZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYWY4NzAwMC0w
MDAwMGJhZmE1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmFm
YTYwMDAtMDAwMDBiYWZmN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAw
MDAwMGJhZmY4MDAwLTAwMDAwYmIwNWRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgoo
WEVOKSAgMDAwMDBiYjA1ZTAwMC0wMDAwMGJiNDY1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYKKFhFTikgIDAwMDAwYmI0NjYwMDAtMDAwMDBiYzU2NWZmZiB0eXBlPTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTY2MDAwLTAwMDAwYmM1NmZmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzU3MDAwMC0wMDAwMGJjNTc5ZmZmIHR5
cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYmM1N2EwMDAtMDAwMDBiYzU3
Y2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGJjNTdkMDAwLTAw
MDAwYmM2YThmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBiYzZh
OTAwMC0wMDAwMGJjNzdlZmZmIHR5cGU9MSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAw
MDAwYmM3N2YwMDAtMDAwMDBjMzE2MGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihY
RU4pICAwMDAwMGMzMTYxMDAwLTAwMDAwYzMyYTFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZgooWEVOKSAgMDAwMDBjMzJhMjAwMC0wMDAwMGMzMmFiZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzMyYWMwMDAtMDAwMDBjMzJhY2ZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGMzMmFkMDAwLTAwMDAwYzMyYWRmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjMzJhZTAwMC0wMDAwMGM2Nzdl
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzY3N2YwMDAtMDAw
MDBjNmRmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGM2ZTAw
MDAwLTAwMDAwYzcxZjdmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDBjNzFmODAwMC0wMDAwMGM3MzdhZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwYzczN2IwMDAtMDAwMDBjODc3ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmCihYRU4pICAwMDAwMGM4NzdmMDAwLTAwMDAwYzhmN2VmZmYgdHlwZT01IGF0dHI9ODAwMDAw
MDAwMDAwMDAwZgooWEVOKSAgMDAwMDBjOGY3ZjAwMC0wMDAwMGM5ZjdlZmZmIHR5cGU9NiBhdHRy
PTgwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwYzlmN2YwMDAtMDAwMDBjYWY3ZWZmZiB0eXBl
PTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNhZjdmMDAwLTAwMDAwY2NmN2Vm
ZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhFTikgIDAwMDAwY2NmN2YwMDAtMDAw
MDBjY2ZmZWZmZiB0eXBlPTkgYXR0cj0wMDAwMDAwMDAwMDAwMDBmCihYRU4pICAwMDAwMGNjZmZm
MDAwLTAwMDAwY2NmZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZgooWEVOKSAgMDAw
MDEwMDAwMDAwMC0wMDAwODBmMzNmZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYKKFhF
TikgIDAwMDAwMDAwYTAwMDAtMDAwMDAwMDBiZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAw
MDAwCihYRU4pICAwMDAwMGNkMDAwMDAwLTAwMDAwY2RmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAw
MDAwMDAwMDAwMAooWEVOKSAgMDAwMDBmMDAwMDAwMC0wMDAwMGY3ZmZmZmZmIHR5cGU9MTEgYXR0
cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZkZTAwMDAwLTAwMDAwZmRlZmZmZmYgdHlw
ZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmVjMDAwMDAtMDAwMDBmZWMw
MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDBmZWMxMDAwMC0w
MDAwMGZlYzEwZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAwMDAxCihYRU4pICAwMDAwMGZl
YzIwMDAwLTAwMDAwZmVjMjBmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDEKKFhFTikg
IDAwMDAwZmVkODAwMDAtMDAwMDBmZWQ4MWZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAw
MQooWEVOKSAgMDAwMDBmZWRjMDAwMC0wMDAwMGZlZGRmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAw
MDAwMDAwMDAxCihYRU4pICAwMDAwMGZlZTAwMDAwLTAwMDAwZmVlMDBmZmYgdHlwZT0xMSBhdHRy
PTgwMDAwMDAwMDAwMDAwMDEKKFhFTikgIDAwMDAwZmYwMDAwMDAtMDAwMDBmZmYxZmZmZiB0eXBl
PTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQooWEVOKSAgMDAwMDgwZjM0MDAwMC0wMDAwODJmZmZm
ZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMDAKKFhFTikgYWx0IHRhYmxlIGZmZmY4MmQw
NDA0OWMxYjggLT4gZmZmZjgyZDA0MDRhZWNhNAooWEVOKSBBTUQtVmk6IElPTU1VIEV4dGVuZGVk
IEZlYXR1cmVzOgooWEVOKSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVlc3QKKFhFTikg
LSB4MkFQSUMKKFhFTikgLSBOWCBiaXQKKFhFTikgLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kCihY
RU4pIC0gR3Vlc3QgQVBJQwooWEVOKSAtIFBlcmZvcm1hbmNlIENvdW50ZXJzCihYRU4pIC0gSG9z
dCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNpemU6IDB4MgooWEVOKSAtIEd1ZXN0IEFkZHJlc3MgVHJh
bnNsYXRpb24gU2l6ZTogMAooWEVOKSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAweDEK
KFhFTikgLSBNYXhpbXVtIFBBU0lEOiAweGYKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyOiAw
eDEKKFhFTikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAweDEKKFhFTikgLSBHdWVzdCBW
aXJ0dWFsIEFQSUMgTW9kZXM6IDB4MQooWEVOKSAtIER1YWwgUFBSIExvZzogMHgyCihYRU4pIC0g
RHVhbCBFdmVudCBMb2c6IDB4MgooWEVOKSAtIFVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVj
dGlvbgooWEVOKSAtIERldmljZSBUYWJsZSBTZWdtZW50YXRpb246IDB4MwooWEVOKSAtIFBQUiBM
b2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZwooWEVOKSAtIFBQUiBBdXRvbWF0aWMgUmVzcG9uc2UK
KFhFTikgLSBNZW1vcnkgQWNjZXNzIFJvdXRpbmcgYW5kIENvbnRyb2w6IDAKKFhFTikgLSBCbG9j
ayBTdG9wTWFyayBNZXNzYWdlCihYRU4pIC0gUGVyZm9ybWFuY2UgT3B0aW1pemF0aW9uCihYRU4p
IC0gTVNJIENhcGFiaWxpdHkgTU1JTyBBY2Nlc3MKKFhFTikgLSBHdWVzdCBJL08gUHJvdGVjdGlv
bgooWEVOKSAtIEVuaGFuY2VkIFBQUiBIYW5kbGluZwooWEVOKSAtIEF0dHJpYnV0ZSBGb3J3YXJk
CihYRU4pIC0gSW52YWxpZGF0ZSBJT1RMQiBUeXBlCihYRU4pIC0gVk0gVGFibGUgU2l6ZTogMAoo
WEVOKSAtIEd1ZXN0IEFjY2VzcyBCaXQgVXBkYXRlIERpc2FibGUKKFhFTikgQU1ELVZpOiBEaXNh
YmxlZCBIQVAgbWVtb3J5IG1hcCBzaGFyaW5nIHdpdGggSU9NTVUKKFhFTikgQU1ELVZpOiBJT01N
VSAwIEVuYWJsZWQuCihYRU4pIEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkCihYRU4pICAtIERv
bTAgbW9kZTogUmVsYXhlZAooWEVOKSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQKKFhFTikg
bnJfc29ja2V0czogMgooWEVOKSBFbmFibGluZyBBUElDIG1vZGUuICBVc2luZyAyIEkvTyBBUElD
cwooWEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMKKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
aG9kCihYRU4pIC4uVElNRVI6IHZlY3Rvcj0weEYwIGFwaWMxPTAgcGluMT0yIGFwaWMyPS0xIHBp
bjI9LTEKKFhFTikgV2FsbGNsb2NrIHNvdXJjZTogRUZJCihYRU4pIEFsbG9jYXRlZCBjb25zb2xl
IHJpbmcgb2YgMTI4IEtpQi4KKFhFTikgbXdhaXQtaWRsZTogZG9lcyBub3QgcnVuIG9uIGZhbWls
eSAyMyBtb2RlbCA5NgooWEVOKSBIVk06IEFTSURzIGVuYWJsZWQuCihYRU4pIFNWTTogU3VwcG9y
dGVkIGFkdmFuY2VkIGZlYXR1cmVzOgooWEVOKSAgLSBOZXN0ZWQgUGFnZSBUYWJsZXMgKE5QVCkK
KFhFTikgIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uCihYRU4pICAt
IE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQKKFhFTikgIC0gVk1DQiBDbGVhbiBCaXRzCihYRU4p
ICAtIFRMQiBmbHVzaCBieSBBU0lECihYRU4pICAtIERlY29kZUFzc2lzdHMKKFhFTikgIC0gVmly
dHVhbCBWTUxPQUQvVk1TQVZFCihYRU4pICAtIFZpcnR1YWwgR0lGCihYRU4pICAtIFBhdXNlLUlu
dGVyY2VwdCBGaWx0ZXIKKFhFTikgIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlciBUaHJlc2hvbGQK
KFhFTikgIC0gVFNDIFJhdGUgTVNSCihYRU4pICAtIE1TUl9TUEVDX0NUUkwgdmlydHVhbGlzYXRp
b24KKFhFTikgSFZNOiBTVk0gZW5hYmxlZAooWEVOKSBIVk06IEhhcmR3YXJlIEFzc2lzdGVkIFBh
Z2luZyAoSEFQKSBkZXRlY3RlZAooWEVOKSBIVk06IEhBUCBwYWdlIHNpemVzOiA0a0IsIDJNQiwg
MUdCCihYRU4pIGFsdCB0YWJsZSBmZmZmODJkMDQwNDljMWI4IC0+IGZmZmY4MmQwNDA0YWVjYTQK
KFhFTikgQnJvdWdodCB1cCAxMiBDUFVzCihYRU4pIFNjaGVkdWxpbmcgZ3JhbnVsYXJpdHk6IGNw
dSwgMSBDUFUgcGVyIHNjaGVkLXJlc291cmNlCihYRU4pIEluaXRpYWxpemluZyBDcmVkaXQyIHNj
aGVkdWxlcgooWEVOKSAgbG9hZF9wcmVjaXNpb25fc2hpZnQ6IDE4CihYRU4pICBsb2FkX3dpbmRv
d19zaGlmdDogMzAKKFhFTikgIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogMAooWEVOKSAg
b3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IC0zCihYRU4pICBydW5xdWV1ZXMgYXJyYW5nZW1l
bnQ6IHNvY2tldAooWEVOKSAgY2FwIGVuZm9yY2VtZW50IGdyYW51bGFyaXR5OiAxMG1zCihYRU4p
IGxvYWQgdHJhY2tpbmcgd2luZG93IGxlbmd0aCAxMDczNzQxODI0IG5zCihYRU4pIEFkZGluZyBj
cHUgMCB0byBydW5xdWV1ZSAwCihYRU4pICBGaXJzdCBjcHUgb24gcnVucXVldWUsIGFjdGl2YXRp
bmcKKFhFTikgQWRkaW5nIGNwdSAxIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAyIHRv
IHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAzIHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5n
IGNwdSA0IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA1IHRvIHJ1bnF1ZXVlIDAKKFhF
TikgQWRkaW5nIGNwdSA2IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA3IHRvIHJ1bnF1
ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA4IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSA5
IHRvIHJ1bnF1ZXVlIDAKKFhFTikgQWRkaW5nIGNwdSAxMCB0byBydW5xdWV1ZSAwCihYRU4pIEFk
ZGluZyBjcHUgMTEgdG8gcnVucXVldWUgMAooWEVOKSBtY2hlY2tfcG9sbDogTWFjaGluZSBjaGVj
ayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuCihYRU4pIFJ1bm5pbmcgc3R1YiByZWNvdmVyeSBzZWxm
dGVzdHMuLi4KKFhFTikgRml4dXAgI1VEWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJk
MDdmZmZlMDQ0XSAtPiBmZmZmODJkMDQwMzhjZWVjCihYRU4pIEZpeHVwICNHUFswMDAwXTogZmZm
ZjgyZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgyZDA0MDM4Y2VlYwooWEVO
KSBGaXh1cCAjU1NbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDQgW2ZmZmY4MmQwN2ZmZmUwNDRdIC0+
IGZmZmY4MmQwNDAzOGNlZWMKKFhFTikgRml4dXAgI0JQWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ1
IFtmZmZmODJkMDdmZmZlMDQ1XSAtPiBmZmZmODJkMDQwMzhjZWVjCihYRU4pIE5YIChFeGVjdXRl
IERpc2FibGUpIHByb3RlY3Rpb24gYWN0aXZlCihYRU4pICoqKiBCdWlsZGluZyBhIFBWSCBEb20w
ICoqKgooWEVOKSAwMDAwOjAwOjAxLjE6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAw
MDAwOjAwOjA4LjE6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAw
OjA4LjI6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6
IG1vZGlmeSBiYXJzIGNtZDogNDAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMzogbW9k
aWZ5IGJhcnMgY21kOiBmIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDE6MDAuMDogbW9kaWZ5IGJh
cnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDI6MDAuMDogbW9kaWZ5IGJhcnMgY21k
OiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDM6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA2IHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDM6MDAuMDogQkFSMCBSZUJBUiBzdXBwb3J0ZWQgYWRkciAw
eGZjOTAwMDAwMDAgLT4gMHhmYzkwMDAwMDAwIHNpemUgMHgxMDAwMDAwMCAtPiAweDEwMDAwMDAw
CihYRU4pIDAwMDA6MDM6MDAuMDogQkFSMiBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGZjYTAwMDAw
MDAgLT4gMHhmY2EwMDAwMDAwIHNpemUgMHgyMDAwMDAgLT4gMHgyMDAwMDAKKFhFTikgMDAwMDow
MzowMC4wOiBCQVI1IFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4ZDA2MDAwMDAgLT4gMHhkMDYwMDAw
MCBzaXplIDB4MTAwMDAwIC0+IDB4MTAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMTogbW9kaWZ5IGJh
cnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDQ6MDAuMDogbW9kaWZ5IGJhcnMgY21k
OiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDU6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihY
RU4pIDAwMDA6MDU6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAw
MDA6MDU6MDAuNDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6
MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNjog
bW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMDogbW9kaWZ5
IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMg
Y21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9v
bmx5OiAwCihYRU4pIERvbTAgbWVtb3J5IGFsbG9jYXRpb24gc3RhdHM6CihYRU4pIG9yZGVyICAw
IGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyICAxIGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVy
ICAyIGFsbG9jYXRpb25zOiAzCihYRU4pIG9yZGVyICAzIGFsbG9jYXRpb25zOiAzCihYRU4pIG9y
ZGVyICA0IGFsbG9jYXRpb25zOiA1CihYRU4pIG9yZGVyICA1IGFsbG9jYXRpb25zOiA0CihYRU4p
IG9yZGVyICA2IGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyICA3IGFsbG9jYXRpb25zOiA0CihY
RU4pIG9yZGVyICA4IGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyICA5IGFsbG9jYXRpb25zOiA0
CihYRU4pIG9yZGVyIDEwIGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyIDExIGFsbG9jYXRpb25z
OiA0CihYRU4pIG9yZGVyIDEyIGFsbG9jYXRpb25zOiA0CihYRU4pIG9yZGVyIDEzIGFsbG9jYXRp
b25zOiA0CihYRU4pIG9yZGVyIDE0IGFsbG9jYXRpb25zOiAyCihYRU4pIG9yZGVyIDE1IGFsbG9j
YXRpb25zOiAzCihYRU4pIG9yZGVyIDE2IGFsbG9jYXRpb25zOiAzCihYRU4pIG9yZGVyIDE3IGFs
bG9jYXRpb25zOiAzCihYRU4pIG9yZGVyIDE4IGFsbG9jYXRpb25zOiAzCihYRU4pIEVMRjogcGhk
cjogcGFkZHI9MHgxMDAwMDAwIG1lbXN6PTB4MTk1ZjYyOAooWEVOKSBFTEY6IHBoZHI6IHBhZGRy
PTB4MmEwMDAwMCBtZW1zej0weDk2ZjAwMAooWEVOKSBFTEY6IHBoZHI6IHBhZGRyPTB4MzM2ZjAw
MCBtZW1zej0weDM5MDAwCihYRU4pIEVMRjogcGhkcjogcGFkZHI9MHgzM2E4MDAwIG1lbXN6PTB4
MTQ1ODAwMAooWEVOKSBFTEY6IG1lbW9yeTogMHgxMDAwMDAwIC0+IDB4NDgwMDAwMAooWEVOKSBF
TEY6IG5vdGU6IFBIWVMzMl9SRUxPQyBhbGlnbjogMHgyMDAwMDAgbWluOiAweDEwMDAwMDAgbWF4
OiAweDNmZmZmZmZmCihYRU4pIEVMRjogbm90ZTogUEhZUzMyX0VOVFJZID0gMHgxMDAwYTIwCihY
RU4pIEVMRjogbm90ZTogR1VFU1RfT1MgPSAibGludXgiCihYRU4pIEVMRjogbm90ZTogR1VFU1Rf
VkVSU0lPTiA9ICIyLjYiCihYRU4pIEVMRjogbm90ZTogWEVOX1ZFUlNJT04gPSAieGVuLTMuMCIK
KFhFTikgRUxGOiBub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZmODAwMDAwMDAKKFhFTikgRUxG
OiBub3RlOiBJTklUX1AyTSA9IDB4ODAwMDAwMDAwMAooWEVOKSBFTEY6IG5vdGU6IEVOVFJZID0g
MHhmZmZmZmZmZjgzM2JjNjIwCihYRU4pIEVMRjogbm90ZTogRkVBVFVSRVMgPSAiIXdyaXRhYmxl
X3BhZ2VfdGFibGVzIgooWEVOKSBFTEY6IG5vdGU6IFBBRV9NT0RFID0gInllcyIKKFhFTikgRUxG
OiBub3RlOiBMMV9NRk5fVkFMSUQKKFhFTikgRUxGOiBub3RlOiBNT0RfU1RBUlRfUEZOID0gMHgx
CihYRU4pIEVMRjogbm90ZTogUEFERFJfT0ZGU0VUID0gMAooWEVOKSBFTEY6IG5vdGU6IEhZUEVS
Q0FMTF9QQUdFID0gMHhmZmZmZmZmZjgxZjNhMDAwCihYRU4pIEVMRjogbm90ZTogU1VQUE9SVEVE
X0ZFQVRVUkVTID0gMHg4ODAxCihYRU4pIEVMRjogbm90ZTogTE9BREVSID0gImdlbmVyaWMiCihY
RU4pIEVMRjogbm90ZTogU1VTUEVORF9DQU5DRUwgPSAweDEKKFhFTikgRUxGOiBGb3VuZCBQVkgg
aW1hZ2UKKFhFTikgRUxGOiBhZGRyZXNzZXM6CihYRU4pICAgICB2aXJ0X2Jhc2UgICAgICAgID0g
MHgwCihYRU4pICAgICBlbGZfcGFkZHJfb2Zmc2V0ID0gMHgwCihYRU4pICAgICB2aXJ0X29mZnNl
dCAgICAgID0gMHgwCihYRU4pICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHgxMDAwMDAwCihYRU4p
ICAgICB2aXJ0X2tlbmQgICAgICAgID0gMHg0ODAwMDAwCihYRU4pICAgICB2aXJ0X2VudHJ5ICAg
ICAgID0gMHgxMDAwYTIwCihYRU4pICAgICBwMm1fYmFzZSAgICAgICAgID0gMHg4MDAwMDAwMDAw
CihYRU4pIEVMRjogcGhkciAwIGF0IDB4MTAwMDAwMCAtPiAweDI5NWY2MjgKKFhFTikgRUxGOiBw
aGRyIDEgYXQgMHgyYTAwMDAwIC0+IDB4MzM2ZjAwMAooWEVOKSBFTEY6IHBoZHIgMiBhdCAweDMz
NmYwMDAgLT4gMHgzM2E4MDAwCihYRU4pIEVMRjogcGhkciAzIGF0IDB4MzNhODAwMCAtPiAweDQ4
MDAwMDAKKFhFTikgRG9tMCBtZW1vcnkgbWFwOgooWEVOKSAgWzAwMDAwMDAwMDAwMDAwMDAsIDAw
MDAwMDAwMDAwOWVmZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDAwMDA5ZjAwMCwgMDAwMDAw
MDAwMDBiZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwMDAxMDAwMDAsIDAwMDAwMDAw
MDlhZmZmZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDAwOWIwMDAwMCwgMDAwMDAwMDAwOWRm
ZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwMDllMDAwMDAsIDAwMDAwMDAwMDllZmZm
ZmZdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDAwOWYwMDAwMCwgMDAwMDAwMDAwOWYwZmZmZl0g
KEFDUEkgTlZTKQooWEVOKSAgWzAwMDAwMDAwMDlmMTAwMDAsIDAwMDAwMDAwYmI0NjVmZmZdICh1
c2FibGUpCihYRU4pICBbMDAwMDAwMDBiYjQ2NjAwMCwgMDAwMDAwMDBiYzU2NWZmZl0gKHJlc2Vy
dmVkKQooWEVOKSAgWzAwMDAwMDAwYmM1NjYwMDAsIDAwMDAwMDAwYzg3N2VmZmZdICh1c2FibGUp
CihYRU4pICBbMDAwMDAwMDBjODc3ZjAwMCwgMDAwMDAwMDBjYWY3ZWZmZl0gKHJlc2VydmVkKQoo
WEVOKSAgWzAwMDAwMDAwY2FmN2YwMDAsIDAwMDAwMDAwY2NmN2VmZmZdIChBQ1BJIE5WUykKKFhF
TikgIFswMDAwMDAwMGNjZjdmMDAwLCAwMDAwMDAwMGNjZmZlZmZmXSAoQUNQSSBkYXRhKQooWEVO
KSAgWzAwMDAwMDAwY2NmZmYwMDAsIDAwMDAwMDAwY2NmZmZkZDddICh1c2FibGUpCihYRU4pICBb
MDAwMDAwMDBjY2ZmZmRkOCwgMDAwMDAwMDBjY2ZmZmVlZl0gKEFDUEkgZGF0YSkKKFhFTikgIFsw
MDAwMDAwMGNkMDAwMDAwLCAwMDAwMDAwMGNkZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAw
MDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBmN2ZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAw
MDAwZmRlMDAwMDAsIDAwMDAwMDAwZmRlZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAw
MGZlYzAwMDAwLCAwMDAwMDAwMGZlYzAxZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBm
ZWMxMDAwMCwgMDAwMDAwMDBmZWMxMGZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVj
MjAwMDAsIDAwMDAwMDAwZmVjMjBmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDgw
MDAwLCAwMDAwMDAwMGZlZDgxZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZWRjMDAw
MCwgMDAwMDAwMDBmZWRkZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwZmVlMDAwMDAs
IDAwMDAwMDAwZmVlMDBmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZmMDAwMDAwLCAw
MDAwMDAwMGZmZjFmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAw
MDAwMDFiOGNmMGZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMWI4Y2YxMDAwLCAwMDAwMDAw
ODBmMzNmZmZmXSAodW51c2FibGUpCihYRU4pICBbMDAwMDAwMDgwZjM0MDAwMCwgMDAwMDAwMDgy
ZmZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSBJbml0aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hv
bGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4KKFhFTikgU2NydWJiaW5nIEZyZWUgUkFNIGluIGJhY2tn
cm91bmQKKFhFTikgU3RkLiBMb2dsZXZlbDogQWxsCihYRU4pIEd1ZXN0IExvZ2xldmVsOiBBbGwK
KFhFTikgWGVuIGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNvbGUuCihYRU4pICoqKiBTZXJpYWwg
aW5wdXQgdG8gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0Y2ggaW5wdXQp
CihYRU4pIEZyZWVkIDY1MmtCIGluaXQgbWVtb3J5CihYRU4pIGQwdjA6IHVwY2FsbCB2ZWN0b3Ig
ZjMKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMC4wCihYRU4pIFBDSSBhZGQgZGV2aWNl
IDAwMDA6MDA6MDAuMgooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAxLjAKKFhFTikgMDAw
MDowMDowMS4xOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDow
MS4xOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDowMS4xOiBtb2RpZnkgYmFycyBjbWQ6IDcg
cm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMS4xCihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6MDA6MDIuMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNt
ZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyBy
b21fb25seTogMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25s
eTogMAooWEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAw
MDAwOjAwOjAyLjQ6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRk
IGRldmljZSAwMDAwOjAwOjAyLjQKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDowOC4wCihY
RU4pIDAwMDA6MDA6MDguMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAw
MDA6MDA6MDguMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6
MDguMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MDguMTog
bW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MDguMTogbW9kaWZ5
IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MDguMTogbW9kaWZ5IGJhcnMg
Y21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDguMQooWEVO
KSAwMDAwOjAwOjA4LjI6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAw
OjAwOjA4LjI6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4
LjI6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4LjI6IG1v
ZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4LjI6IG1vZGlmeSBi
YXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjA4LjI6IG1vZGlmeSBiYXJzIGNt
ZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA4LjIKKFhFTikg
MDAwMDowMDoxNC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQwMCByb21fb25seTogMAooWEVOKSAwMDAw
OjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNtZDogNDAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6
MTQuMDogbW9kaWZ5IGJhcnMgY21kOiA0MDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDoxNC4w
OiBtb2RpZnkgYmFycyBjbWQ6IDQwMyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6IG1v
ZGlmeSBiYXJzIGNtZDogNDAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMDogbW9kaWZ5
IGJhcnMgY21kOiA0MDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDoxNC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDQwMCByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNt
ZDogNDAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMDogbW9kaWZ5IGJhcnMgY21kOiA0
MDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMDoxNC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQwMyBy
b21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNtZDogNDAwIHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDA6MTQuMDogbW9kaWZ5IGJhcnMgY21kOiA0MDMgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowMDoxNC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQwMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjE0LjA6IG1vZGlmeSBiYXJzIGNtZDogNDAzIHJvbV9vbmx5OiAwCihYRU4p
IFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTQuMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBi
YXJzIGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNt
ZDogZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyBy
b21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25s
eTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyByb21fb25seTogMAoo
WEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25seTogMAooWEVOKSAw
MDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAw
OjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6
IG1vZGlmeSBiYXJzIGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlm
eSBiYXJzIGNtZDogZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJz
IGNtZDogYyByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDog
ZiByb21fb25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogYyByb21f
b25seTogMAooWEVOKSAwMDAwOjAwOjE0LjM6IG1vZGlmeSBiYXJzIGNtZDogZiByb21fb25seTog
MAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjMKKFhFTikgUENJIGFkZCBkZXZpY2Ug
MDAwMDowMDoxOC4wCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguMQooWEVOKSBQQ0kg
YWRkIGRldmljZSAwMDAwOjAwOjE4LjIKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4z
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguNAooWEVOKSBQQ0kgYWRkIGRldmljZSAw
MDAwOjAwOjE4LjUKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC42CihYRU4pIFBDSSBh
ZGQgZGV2aWNlIDAwMDA6MDA6MTguNwooWEVOKSAwMDAwOjAxOjAwLjA6IG1vZGlmeSBiYXJzIGNt
ZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IHdyaXRlIEJBUjAgdmFsOiAweGZm
ZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjAxOjAwLjA6IHdyaXRl
IEJBUjAgdmFsOiAweGQwODAwMDAwIEJBUjAgYWRkcmVzczogMHhkMDgwMDAwMAooWEVOKSAwMDAw
OjAxOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAw
LjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IG1v
ZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IG1vZGlmeSBi
YXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAxOjAwLjA6IG1vZGlmeSBiYXJzIGNt
ZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAxOjAwLjAKKFhFTikg
MDAwMDowMjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
MjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4w
OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4wOiBtb2Rp
ZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6
IDcgcm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowMjowMC4wCihYRU4pIDAw
MDA6MDM6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDM6
MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZjZmZmZmZm
ZjAKKFhFTikgMDAwMDowMzowMC4wOiB3cml0ZSBCQVIwIHZhbDogMHg5MDAwMDAwMCBCQVIwIGFk
ZHJlc3M6IDB4ZmM5MDAwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdyaXRlIEJBUjAgdmFsOiAw
eGZmZmZmZmZmIEJBUjEgYWRkcmVzczogMHhmZmZmZmZmZjkwMDAwMDAwCihYRU4pIDAwMDA6MDM6
MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4ZmMgQkFSMSBhZGRyZXNzOiAweGZjOTAwMDAwMDAKKFhF
TikgMDAwMDowMzowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDYgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowMzowMC4wOiBCQVIwIFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4ZmM5MDAwMDAwMCAtPiAweGZj
OTAwMDAwMDAgc2l6ZSAweDEwMDAwMDAwIC0+IDB4MTAwMDAwMDAKKFhFTikgMDAwMDowMzowMC4w
OiBCQVIyIFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4ZmNhMDAwMDAwMCAtPiAweGZjYTAwMDAwMDAg
c2l6ZSAweDIwMDAwMCAtPiAweDIwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjUgUmVCQVIg
c3VwcG9ydGVkIGFkZHIgMHhkMDYwMDAwMCAtPiAweGQwNjAwMDAwIHNpemUgMHgxMDAwMDAgLT4g
MHgxMDAwMDAKKFhFTikgMDAwMDowMzowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowMzowMC4wOiB3cml0ZSBCQVIyIHZhbDogMHhmZmZmZmZmMCBCQVIyIGFk
ZHJlc3M6IDB4ZmNmZmZmZmZmMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdyaXRlIEJBUjIgdmFsOiAw
eGEwMDAwMDAwIEJBUjIgYWRkcmVzczogMHhmY2EwMDAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDog
d3JpdGUgQkFSMiB2YWw6IDB4ZmZmZmZmZmYgQkFSMyBhZGRyZXNzOiAweGZmZmZmZmZmYTAwMDAw
MDAKKFhFTikgMDAwMDowMzowMC4wOiB3cml0ZSBCQVIyIHZhbDogMHhmYyBCQVIzIGFkZHJlc3M6
IDB4ZmNhMDAwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNiByb21f
b25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhm
YzkwMDAwMDAwIC0+IDB4ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAwMDAwMAoo
WEVOKSAwMDAwOjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2EwMDAwMDAw
IC0+IDB4ZmNhMDAwMDAwMCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAwMDA6MDM6
MDAuMDogQkFSNSBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2MDAwMDAg
c2l6ZSAweDEwMDAwMCAtPiAweDEwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJz
IGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDog
NiByb21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFk
ZHIgMHhmYzkwMDAwMDAwIC0+IDB4ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAw
MDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2Ew
MDAwMDAwIC0+IDB4ZmNhMDAwMDAwMCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAw
MDA6MDM6MDAuMDogQkFSNSBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2
MDAwMDAgc2l6ZSAweDEwMDAwMCAtPiAweDEwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlm
eSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdyaXRlIEJBUjUg
dmFsOiAweGZmZmZmZmYwIEJBUjUgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjAzOjAw
LjA6IHdyaXRlIEJBUjUgdmFsOiAweGQwNjAwMDAwIEJBUjUgYWRkcmVzczogMHhkMDYwMDAwMAoo
WEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNiByb21fb25seTogMAooWEVOKSAw
MDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmYzkwMDAwMDAwIC0+IDB4
ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAwMDAwMAooWEVOKSAwMDAwOjAzOjAw
LjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2EwMDAwMDAwIC0+IDB4ZmNhMDAwMDAw
MCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDogQkFSNSBSZUJB
UiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2MDAwMDAgc2l6ZSAweDEwMDAwMCAt
PiAweDEwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25s
eTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNiByb21fb25seTogMAoo
WEVOKSAwMDAwOjAzOjAwLjA6IEJBUjAgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmYzkwMDAwMDAw
IC0+IDB4ZmM5MDAwMDAwMCBzaXplIDB4MTAwMDAwMDAgLT4gMHgxMDAwMDAwMAooWEVOKSAwMDAw
OjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhmY2EwMDAwMDAwIC0+IDB4ZmNh
MDAwMDAwMCBzaXplIDB4MjAwMDAwIC0+IDB4MjAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDogQkFS
NSBSZUJBUiBzdXBwb3J0ZWQgYWRkciAweGQwNjAwMDAwIC0+IDB4ZDA2MDAwMDAgc2l6ZSAweDEw
MDAwMCAtPiAweDEwMDAwMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAwOjAzOjAwLjAKKFhFTikg
MDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
MzowMC4xOiB3cml0ZSBCQVIwIHZhbDogMHhmZmZmZmZmMCBCQVIwIGFkZHJlc3M6IDB4ZmZmZmZm
ZjAKKFhFTikgMDAwMDowMzowMC4xOiB3cml0ZSBCQVIwIHZhbDogMHhkMDcwMDAwMCBCQVIwIGFk
ZHJlc3M6IDB4ZDA3MDAwMDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMg
cm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29u
bHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAK
KFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikg
MDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
MzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4x
OiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2Rp
ZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFy
cyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6
IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowMzowMC4xOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhF
TikgUENJIGFkZCBkZXZpY2UgMDAwMDowMzowMC4xCihYRU4pIDAwMDA6MDQ6MDAuMDogbW9kaWZ5
IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDQ6MDAuMDogd3JpdGUgQkFSMCB2
YWw6IDB4ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDQ6MDAu
MDogd3JpdGUgQkFSMCB2YWw6IDB4ZDA1MDAwMDAgQkFSMCBhZGRyZXNzOiAweGQwNTAwMDAwCihY
RU4pIDAwMDA6MDQ6MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZmYgQkFSMSBhZGRyZXNz
OiAweGZmZmZmZmZmZDA1MDAwMDAKKFhFTikgMDAwMDowNDowMC4wOiB3cml0ZSBCQVIwIHZhbDog
MCBCQVIxIGFkZHJlc3M6IDB4ZDA1MDAwMDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6
IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNDowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNDowMC4wOiB3cml0ZSBCQVI0IHZhbDogMHhmZmZmZmZmMCBCQVI0IGFkZHJlc3M6IDB4ZmZm
ZmZmZjAKKFhFTikgMDAwMDowNDowMC4wOiB3cml0ZSBCQVI0IHZhbDogMHhkMDUwNDAwMCBCQVI0
IGFkZHJlc3M6IDB4ZDA1MDQwMDAKKFhFTikgMDAwMDowNDowMC4wOiB3cml0ZSBCQVI0IHZhbDog
MHhmZmZmZmZmZiBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZmZkMDUwNDAwMAooWEVOKSAwMDAwOjA0
OjAwLjA6IHdyaXRlIEJBUjQgdmFsOiAwIEJBUjUgYWRkcmVzczogMHhkMDUwNDAwMAooWEVOKSAw
MDAwOjA0OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSAwMDAwOjA0
OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTogMAooWEVOKSAwMDAwOjA0OjAwLjA6
IG1vZGlmeSBiYXJzIGNtZDogNyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmljZSAwMDAw
OjA0OjAwLjAKKFhFTikgMDAwMDowNTowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4wOiB3cml0ZSBCQVIwIHZhbDogMHhmZmZmZmZmMCBCQVIwIGFk
ZHJlc3M6IDB4ZmNmZmZmZmZmMAooWEVOKSAwMDAwOjA1OjAwLjA6IHdyaXRlIEJBUjAgdmFsOiAw
eDcwMDAwMDAwIEJBUjAgYWRkcmVzczogMHhmYzcwMDAwMDAwCihYRU4pIDAwMDA6MDU6MDAuMDog
d3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZmYgQkFSMSBhZGRyZXNzOiAweGZmZmZmZmZmNzAwMDAw
MDAKKFhFTikgMDAwMDowNTowMC4wOiB3cml0ZSBCQVIwIHZhbDogMHhmYyBCQVIxIGFkZHJlc3M6
IDB4ZmM3MDAwMDAwMAooWEVOKSAwMDAwOjA1OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNyByb21f
b25seTogMAooWEVOKSAwMDAwOjA1OjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNCByb21fb25seTog
MAooWEVOKSAwMDAwOjA1OjAwLjA6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZmZmYwIEJBUjIgYWRk
cmVzczogMHhmY2ZmZmZmZmYwCihYRU4pIDAwMDA6MDU6MDAuMDogd3JpdGUgQkFSMiB2YWw6IDB4
ODAwMDAwMDAgQkFSMiBhZGRyZXNzOiAweGZjODAwMDAwMDAKKFhFTikgMDAwMDowNTowMC4wOiB3
cml0ZSBCQVIyIHZhbDogMHhmZmZmZmZmZiBCQVIzIGFkZHJlc3M6IDB4ZmZmZmZmZmY4MDAwMDAw
MAooWEVOKSAwMDAwOjA1OjAwLjA6IHdyaXRlIEJBUjIgdmFsOiAweGZjIEJBUjMgYWRkcmVzczog
MHhmYzgwMDAwMDAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAw
CihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4p
IDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6
MDU6MDAuMDogd3JpdGUgQkFSNSB2YWw6IDB4ZmZmZmZmZjAgQkFSNSBhZGRyZXNzOiAweGZmZmZm
ZmYwCihYRU4pIDAwMDA6MDU6MDAuMDogd3JpdGUgQkFSNSB2YWw6IDB4ZDA0MDAwMDAgQkFSNSBh
ZGRyZXNzOiAweGQwNDAwMDAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMDogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAw
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1v
ZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IHdyaXRlIEJB
UjAgdmFsOiAweGZmZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA1
OjAwLjE6IHdyaXRlIEJBUjAgdmFsOiAweGQwNGM4MDAwIEJBUjAgYWRkcmVzczogMHhkMDRjODAw
MAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVO
KSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAw
OjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAw
LjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1v
ZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBi
YXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNt
ZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCBy
b21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25s
eTogMAooWEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAw
MDAwOjA1OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1
OjAwLjE6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjA1OjAwLjEKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTow
MC4yOiB3cml0ZSBCQVIyIHZhbDogMHhmZmZmZmZmMCBCQVIyIGFkZHJlc3M6IDB4ZmZmZmZmZjAK
KFhFTikgMDAwMDowNTowMC4yOiB3cml0ZSBCQVIyIHZhbDogMHhkMDMwMDAwMCBCQVIyIGFkZHJl
c3M6IDB4ZDAzMDAwMDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTow
MC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4yOiB3
cml0ZSBCQVI1IHZhbDogMHhmZmZmZmZmMCBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikg
MDAwMDowNTowMC4yOiB3cml0ZSBCQVI1IHZhbDogMHhkMDRjYzAwMCBCQVI1IGFkZHJlc3M6IDB4
ZDA0Y2MwMDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDAgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4yOiBtb2RpZnkgYmFycyBjbWQ6IDMgcm9tX29ubHk6IDAKKFhFTikgUENJ
IGFkZCBkZXZpY2UgMDAwMDowNTowMC4yCihYRU4pIDAwMDA6MDU6MDAuMzogbW9kaWZ5IGJhcnMg
Y21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuMzogd3JpdGUgQkFSMCB2YWw6IDB4
ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDU6MDAuMzogd3Jp
dGUgQkFSMCB2YWw6IDB4ZDAyMDAwMDAgQkFSMCBhZGRyZXNzOiAweGQwMjAwMDAwCihYRU4pIDAw
MDA6MDU6MDAuMzogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZmYgQkFSMSBhZGRyZXNzOiAweGZm
ZmZmZmZmZDAyMDAwMDAKKFhFTikgMDAwMDowNTowMC4zOiB3cml0ZSBCQVIwIHZhbDogMCBCQVIx
IGFkZHJlc3M6IDB4ZDAyMDAwMDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6
IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTow
MC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC4zOiBtb2RpZnkgYmFycyBjbWQ6IDcg
cm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDowNTowMC4zCihYRU4pIDAwMDA6
MDU6MDAuNDogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAu
NDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZjAgQkFSMCBhZGRyZXNzOiAweGZmZmZmZmYwCihY
RU4pIDAwMDA6MDU6MDAuNDogd3JpdGUgQkFSMCB2YWw6IDB4ZDAxMDAwMDAgQkFSMCBhZGRyZXNz
OiAweGQwMTAwMDAwCihYRU4pIDAwMDA6MDU6MDAuNDogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZm
ZmYgQkFSMSBhZGRyZXNzOiAweGZmZmZmZmZmZDAxMDAwMDAKKFhFTikgMDAwMDowNTowMC40OiB3
cml0ZSBCQVIwIHZhbDogMCBCQVIxIGFkZHJlc3M6IDB4ZDAxMDAwMDAKKFhFTikgMDAwMDowNTow
MC40OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDcg
cm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29u
bHk6IDAKKFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAK
KFhFTikgMDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikg
MDAwMDowNTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDow
NTowMC40OiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNTowMC40
OiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAw
MDowNTowMC40CihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogd3JpdGUgQkFSMCB2YWw6IDB4ZmZmZmZmZjAgQkFSMCBh
ZGRyZXNzOiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDU6MDAuNTogd3JpdGUgQkFSMCB2YWw6IDB4
ZDA0ODAwMDAgQkFSMCBhZGRyZXNzOiAweGQwNDgwMDAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9k
aWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJh
cnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21k
OiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihY
RU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAw
MDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6
MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTog
bW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5
IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMg
Y21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDU6MDAuNTogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuNQooWEVOKSAwMDAw
OjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAw
LjY6IHdyaXRlIEJBUjAgdmFsOiAweGZmZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAoo
WEVOKSAwMDAwOjA1OjAwLjY6IHdyaXRlIEJBUjAgdmFsOiAweGQwNGMwMDAwIEJBUjAgYWRkcmVz
czogMHhkMDRjMDAwMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21f
b25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTog
MAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVO
KSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAw
OjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAw
LjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1v
ZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBi
YXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNt
ZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCBy
b21fb25seTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25s
eTogMAooWEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjA1OjAwLjY6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSBQ
Q0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjYKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFy
cyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6
IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9t
X29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6
IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhF
TikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAw
MDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjow
MC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBt
b2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkg
YmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBtb2RpZnkgYmFycyBj
bWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiB3cml0ZSBCQVI1IHZhbDogMHhm
ZmZmZmZmMCBCQVI1IGFkZHJlc3M6IDB4ZmZmZmZmZjAKKFhFTikgMDAwMDowNjowMC4wOiB3cml0
ZSBCQVI1IHZhbDogMHhkMDA4NTAwMCBCQVI1IGFkZHJlc3M6IDB4ZDAwODUwMDAKKFhFTikgMDAw
MDowNjowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjow
MC4wOiBtb2RpZnkgYmFycyBjbWQ6IDQgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowNjowMC4wOiBt
b2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgUENJIGFkZCBkZXZpY2UgMDAwMDow
NjowMC4wCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAw
CihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4p
IDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6
MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAu
MTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9k
aWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJh
cnMgY21kOiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21k
OiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJv
bV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJvbV9vbmx5
OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA0IHJvbV9vbmx5OiAwCihY
RU4pIDAwMDA6MDY6MDAuMTogd3JpdGUgQkFSNSB2YWw6IDB4ZmZmZmZmZjAgQkFSNSBhZGRyZXNz
OiAweGZmZmZmZmYwCihYRU4pIDAwMDA6MDY6MDAuMTogd3JpdGUgQkFSNSB2YWw6IDB4ZDAwODQw
MDAgQkFSNSBhZGRyZXNzOiAweGQwMDg0MDAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJh
cnMgY21kOiA3IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21k
OiA0IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMTogbW9kaWZ5IGJhcnMgY21kOiA3IHJv
bV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDY6MDAuMQooWEVOKSAwMDAwOjA2
OjAwLjI6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjI6
IHdyaXRlIEJBUjAgdmFsOiAweGZmZmZmZmYwIEJBUjAgYWRkcmVzczogMHhmZmZmZmZmMAooWEVO
KSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjAgdmFsOiAweGQwMDYwMDAwIEJBUjAgYWRkcmVzczog
MHhkMDA2MDAwMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25s
eTogMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAoo
WEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjEgdmFsOiAweGZmZmZmZmYwIEJBUjEgYWRkcmVz
czogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjEgdmFsOiAweGQwMDQw
MDAwIEJBUjEgYWRkcmVzczogMHhkMDA0MDAwMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBi
YXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjI6IG1vZGlmeSBiYXJzIGNt
ZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRlIEJBUjIgdmFsOiAweGZm
ZmZmZmYwIEJBUjIgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjI6IHdyaXRl
IEJBUjIgdmFsOiAweGQwMDgyMDAwIEJBUjIgYWRkcmVzczogMHhkMDA4MjAwMAooWEVOKSAwMDAw
OjA2OjAwLjI6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZmZmZmIEJBUjMgYWRkcmVzczogMHhmZmZm
ZmZmZmQwMDgyMDAwCihYRU4pIDAwMDA6MDY6MDAuMjogd3JpdGUgQkFSMiB2YWw6IDAgQkFSMyBh
ZGRyZXNzOiAweGQwMDgyMDAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAw
CihYRU4pIDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4p
IDAwMDA6MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6
MDY6MDAuMjogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAu
MjogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDY6MDAuMgooWEVOKSAwMDAwOjA2OjAwLjM6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25s
eTogMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjAgdmFsOiAweGZmZmZmZmYwIEJBUjAg
YWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjAgdmFsOiAw
eGQwMDIwMDAwIEJBUjAgYWRkcmVzczogMHhkMDAyMDAwMAooWEVOKSAwMDAwOjA2OjAwLjM6IG1v
ZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjM6IG1vZGlmeSBi
YXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjEgdmFs
OiAweGZmZmZmZmYwIEJBUjEgYWRkcmVzczogMHhmZmZmZmZmMAooWEVOKSAwMDAwOjA2OjAwLjM6
IHdyaXRlIEJBUjEgdmFsOiAweGQwMDAwMDAwIEJBUjEgYWRkcmVzczogMHhkMDAwMDAwMAooWEVO
KSAwMDAwOjA2OjAwLjM6IG1vZGlmeSBiYXJzIGNtZDogMyByb21fb25seTogMAooWEVOKSAwMDAw
OjA2OjAwLjM6IG1vZGlmeSBiYXJzIGNtZDogMCByb21fb25seTogMAooWEVOKSAwMDAwOjA2OjAw
LjM6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZmZmYwIEJBUjIgYWRkcmVzczogMHhmZmZmZmZmMAoo
WEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjIgdmFsOiAweGQwMDgwMDAwIEJBUjIgYWRkcmVz
czogMHhkMDA4MDAwMAooWEVOKSAwMDAwOjA2OjAwLjM6IHdyaXRlIEJBUjIgdmFsOiAweGZmZmZm
ZmZmIEJBUjMgYWRkcmVzczogMHhmZmZmZmZmZmQwMDgwMDAwCihYRU4pIDAwMDA6MDY6MDAuMzog
d3JpdGUgQkFSMiB2YWw6IDAgQkFSMyBhZGRyZXNzOiAweGQwMDgwMDAwCihYRU4pIDAwMDA6MDY6
MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzog
bW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5
IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMg
Y21kOiAwIHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAz
IHJvbV9vbmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAwIHJvbV9v
bmx5OiAwCihYRU4pIDAwMDA6MDY6MDAuMzogbW9kaWZ5IGJhcnMgY21kOiAzIHJvbV9vbmx5OiAw
CihYRU4pIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDY6MDAuMwooWEVOKSBhcmNoL3g4Ni9odm0vc3Zt
L3N2bS5jOjE4ODk6ZDB2MCBSRE1TUiAweGMwMDEwMDU4IHVuaW1wbGVtZW50ZWQKKFhFTikgYXJj
aC94ODYvaHZtL3N2bS9zdm0uYzoxODg5OmQwdjAgUkRNU1IgMHhjMDAxMDI5YiB1bmltcGxlbWVu
dGVkCihYRU4pIGFyY2gveDg2L2h2bS9zdm0vc3ZtLmM6MTg4OTpkMHYwIFJETVNSIDB4YzAwMTAy
OWEgdW5pbXBsZW1lbnRlZAooWEVOKSAwMDAwOjAzOjAwLjA6IG1vZGlmeSBiYXJzIGNtZDogNSBy
b21fb25seTogMAooWEVOKSAwMDAwOjAzOjAwLjA6IHdyaXRlIEJBUjAgdmFsOiAwIEJBUjAgYWRk
cmVzczogMHhmYzAwMDAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDogd3JpdGUgQkFSMCB2YWw6IDB4
YSBCQVIxIGFkZHJlc3M6IDB4YTAwMDAwMDAwCihYRU4pIDAwMDA6MDM6MDAuMDogd3JpdGUgQkFS
MiB2YWw6IDAgQkFSMiBhZGRyZXNzOiAweGZjMDAwMDAwMDAKKFhFTikgMDAwMDowMzowMC4wOiB3
cml0ZSBCQVIyIHZhbDogMHg5IEJBUjMgYWRkcmVzczogMHg5MDAwMDAwMDAKKFhFTikgMDAwMDow
MzowMC4wOiBtb2RpZnkgYmFycyBjbWQ6IDcgcm9tX29ubHk6IDAKKFhFTikgMDAwMDowMzowMC4w
OiBCQVIwIFJlQkFSIHN1cHBvcnRlZCBhZGRyIDB4YTAwMDAwMDAwIC0+IDB4YTAwMDAwMDAwIHNp
emUgMHgxMDAwMDAwMCAtPiAweDIwMDAwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IGRldGVjdGVk
IEJBUiMwIHNpemUgY2hhbmdlICgweDEwMDAwMDAwIC0+IDB4MjAwMDAwMDAwKQooWEVOKSAwMDAw
OjAzOjAwLjA6IEJBUjIgUmVCQVIgc3VwcG9ydGVkIGFkZHIgMHg5MDAwMDAwMDAgLT4gMHg5MDAw
MDAwMDAgc2l6ZSAweDIwMDAwMCAtPiAweDIwMDAwMAooWEVOKSAwMDAwOjAzOjAwLjA6IEJBUjUg
UmVCQVIgc3VwcG9ydGVkIGFkZHIgMHhkMDYwMDAwMCAtPiAweGQwNjAwMDAwIHNpemUgMHgxMDAw
MDAgLT4gMHgxMDAwMDAK

--_003_BL1PR12MB5849F5382CF3A03C080C4CA4E7222BL1PR12MB5849namp_
Content-Type: application/octet-stream; name="0001-combine-two-method.patch"
Content-Description: 0001-combine-two-method.patch
Content-Disposition: attachment; filename="0001-combine-two-method.patch";
	size=8137; creation-date="Thu, 21 Nov 2024 02:57:06 GMT";
	modification-date="Thu, 21 Nov 2024 03:05:14 GMT"
Content-Transfer-Encoding: base64

RnJvbSA2OGQxMTEzOGJlYzYzNzgzZDI0NTg0YzFmN2UwMjkxNzRkZjNlZTJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4KRGF0
ZTogVGh1LCAyMSBOb3YgMjAyNCAxMDo1NjoxNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMS8xXSBj
b21iaW5lIHR3byBtZXRob2QKCi0tLQogeGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZSAgfCAgMiAr
LQogeGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyAgfCAzOSArKysrKysrKysrKysrKysrKy0KIHhl
bi9kcml2ZXJzL3ZwY2kvcmViYXIuYyAgIHwgODQgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysKIHhlbi9pbmNsdWRlL3hlbi9wY2lfcmVncy5oIHwgMTEgKysrKysKIHhlbi9p
bmNsdWRlL3hlbi92cGNpLmggICAgIHwgIDIgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMzUgaW5zZXJ0
aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vZHJpdmVycy92
cGNpL3JlYmFyLmMKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL01ha2VmaWxlIGIveGVu
L2RyaXZlcnMvdnBjaS9NYWtlZmlsZQppbmRleCAxYTE0MTNiOTNlNzYuLmE3YzhhMzBhODk1NiAx
MDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZQorKysgYi94ZW4vZHJpdmVycy92
cGNpL01ha2VmaWxlCkBAIC0xLDIgKzEsMiBAQAotb2JqLXkgKz0gdnBjaS5vIGhlYWRlci5vCitv
YmoteSArPSB2cGNpLm8gaGVhZGVyLm8gcmViYXIubwogb2JqLSQoQ09ORklHX0hBU19QQ0lfTVNJ
KSArPSBtc2kubyBtc2l4Lm8KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMg
Yi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCmluZGV4IGVmNmM5NjVjMDgxYy4uZGRhNDJlZjBi
N2ZmIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCisrKyBiL3hlbi9kcml2
ZXJzL3ZwY2kvaGVhZGVyLmMKQEAgLTMxNiw2ICszMTYsOSBAQCBzdGF0aWMgaW50IG1vZGlmeV9i
YXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29u
bHkpCiAKICAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZwZGV2LT5kb21haW4tPnBjaV9s
b2NrKSk7CiAKKyAgICBwcmludGsoIiVwcDogbW9kaWZ5IGJhcnMgY21kOiAleCByb21fb25seTog
JWRcbiIsCisgICAgICAgICAgICZwZGV2LT5zYmRmLCBjbWQsIHJvbV9vbmx5KTsKKwogICAgIC8q
CiAgICAgICogQ3JlYXRlIGEgcmFuZ2VzZXQgcGVyIEJBUiB0aGF0IHJlcHJlc2VudHMgdGhlIGN1
cnJlbnQgZGV2aWNlIG1lbW9yeQogICAgICAqIHJlZ2lvbiBhbmQgY29tcGFyZSBpdCBhZ2FpbnN0
IGFsbCB0aGUgY3VycmVudGx5IGFjdGl2ZSBCQVIgbWVtb3J5CkBAIC0zNDYsNiArMzQ5LDMzIEBA
IHN0YXRpYyBpbnQgbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQx
Nl90IGNtZCwgYm9vbCByb21fb25seSkKICAgICAgICAgICAgICBiYXItPmVuYWJsZWQgPT0gISEo
Y21kICYgUENJX0NPTU1BTkRfTUVNT1JZKSApCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAg
ICAgICBpZiAoIGJhci0+dHlwZSAhPSBWUENJX0JBUl9ST00gJiYgaGVhZGVyLT5iYXJzX3Jlc2l6
YWJsZSAmJgorICAgICAgICAgICAgIChjbWQgJiBQQ0lfQ09NTUFORF9NRU1PUlkpICkKKyAgICAg
ICAgeworICAgICAgICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsKKworICAgICAgICAgICAgcGNp
X3NpemVfbWVtX2JhcihwZGV2LT5zYmRmLCBQQ0lfQkFTRV9BRERSRVNTXzAgKyBpICogNCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZHIsICZzaXplLCAwKTsKKworICAgICAgICAg
ICAgcHJpbnRrKCIlcHA6IEJBUiV1IFJlQkFSIHN1cHBvcnRlZCBhZGRyICUjbHggLT4gJSNseCBz
aXplICUjbHggLT4gJSNseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIGks
IGJhci0+YWRkciwgYWRkciwgYmFyLT5zaXplLCBzaXplKTsKKworICAgICAgICAgICAgaWYgKCBi
YXItPmFkZHIgIT0gYWRkciApCisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUgor
ICAgICAgICAgICAgICAgICAgICAgICAiJXBwOiBCQVIjJXUgYWRkcmVzcyBtaXNtYXRjaCAlI2x4
IHZzICUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBpLCBiYXIt
PmFkZHIsIGFkZHIpOworCisgICAgICAgICAgICBpZiAoIGJhci0+c2l6ZSAhPSBzaXplICkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIiVwcDogZGV0ZWN0ZWQgQkFSIyV1IHNpemUgY2hhbmdlICglI2x4
IC0+ICUjbHgpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgaSwgYmFy
LT5zaXplLCBzaXplKTsKKyAgICAgICAgICAgICAgICBiYXItPnNpemUgPSBzaXplOworICAgICAg
ICAgICAgICAgIGVuZCA9IFBGTl9ET1dOKGJhci0+YWRkciArIHNpemUgLSAxKTsKKyAgICAgICAg
ICAgICAgICBlbmRfZ3Vlc3QgPSBQRk5fRE9XTihiYXItPmd1ZXN0X2FkZHIgKyBzaXplIC0gMSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBpZiAoICFwY2lfY2hlY2tfYmFy
KHBkZXYsIF9tZm4oc3RhcnQpLCBfbWZuKGVuZCkpICkKICAgICAgICAgewogICAgICAgICAgICAg
cHJpbnRrKFhFTkxPR19HX1dBUk5JTkcKQEAgLTU4Myw4ICs2MTMsNiBAQCBzdGF0aWMgdm9pZCBj
Zl9jaGVjayBiYXJfd3JpdGUoCiAgICAgICovCiAgICAgaWYgKCBiYXItPmVuYWJsZWQgKQogICAg
IHsKLSAgICAgICAgLyogSWYgdGhlIHZhbHVlIHdyaXR0ZW4gaXMgdGhlIGN1cnJlbnQgb25lIGF2
b2lkIHByaW50aW5nIGEgd2FybmluZy4gKi8KLSAgICAgICAgaWYgKCB2YWwgIT0gKHVpbnQzMl90
KShiYXItPmFkZHIgPj4gKGhpID8gMzIgOiAwKSkgKQogICAgICAgICAgICAgZ3ByaW50ayhYRU5M
T0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAgIiVwcDogaWdub3JlZCBCQVIgJXp1IHdy
aXRlIHdoaWxlIG1hcHBlZFxuIiwKICAgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIGJh
ciAtIHBkZXYtPnZwY2ktPmhlYWRlci5iYXJzICsgaGkpOwpAQCAtNjAxLDYgKzYyOSwxMCBAQCBz
dGF0aWMgdm9pZCBjZl9jaGVjayBiYXJfd3JpdGUoCiAgICAgLyogVXBkYXRlIGd1ZXN0IGFkZHJl
c3MsIHNvIGhhcmR3YXJlIGRvbWFpbiBCQVIgaXMgaWRlbnRpdHkgbWFwcGVkLiAqLwogICAgIGJh
ci0+Z3Vlc3RfYWRkciA9IGJhci0+YWRkcjsKIAorICAgIHByaW50aygiJXBwOiB3cml0ZSBCQVIl
enUgdmFsOiAlI3ggQkFSJXp1IGFkZHJlc3M6ICUjbHhcbiIsCisgICAgICAgICAgICZwZGV2LT5z
YmRmLCBiYXIgLSBwZGV2LT52cGNpLT5oZWFkZXIuYmFycywgdmFsLAorICAgICAgICAgICBiYXIg
LSBwZGV2LT52cGNpLT5oZWFkZXIuYmFycyArIGhpLCBiYXItPmFkZHIpOworCiAgICAgLyogTWFr
ZSBzdXJlIFhlbiB3cml0ZXMgYmFjayB0aGUgc2FtZSB2YWx1ZSBmb3IgdGhlIEJBUiBSTyBiaXRz
LiAqLwogICAgIGlmICggIWhpICkKICAgICB7CkBAIC04NzAsNiArOTAyLDkgQEAgc3RhdGljIGlu
dCBjZl9jaGVjayBpbml0X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikKICAgICBpZiAoIHBk
ZXYtPmlnbm9yZV9iYXJzICkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBoZWFkZXItPmJhcnNf
cmVzaXphYmxlID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGRldi0+c2JkZiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0VYVF9DQVBf
SURfUkVCQVIpOworCiAgICAgY21kID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9D
T01NQU5EKTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL3JlYmFyLmMg
Yi94ZW4vZHJpdmVycy92cGNpL3JlYmFyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi5mZTBkMDI0NjNkZDYKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vZHJpdmVycy92
cGNpL3JlYmFyLmMKQEAgLTAsMCArMSw4NCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6
IEdQTC0yLjAtb3ItbGF0ZXIgKi8KKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQg
TWljcm8gRGV2aWNlcywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIEF1dGhvcjog
SmlxaWFuIENoZW4gPEppcWlhbi5DaGVuQGFtZC5jb20+CisgKi8KKworI2luY2x1ZGUgPHhlbi9o
eXBlcmNhbGwuaD4KKyNpbmNsdWRlIDx4ZW4vdnBjaS5oPgorCitzdGF0aWMgdm9pZCBjZl9jaGVj
ayByZWJhcl9jdHJsX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmVnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpCit7CisgICAgdWludDY0X3Qgc2l6
ZTsKKyAgICB1bnNpZ25lZCBpbnQgaW5kZXg7CisgICAgc3RydWN0IHZwY2lfYmFyICpiYXJzID0g
ZGF0YTsKKworICAgIGlmICggcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9DT01NQU5E
KSAmIFBDSV9DT01NQU5EX01FTU9SWSApCisgICAgICAgIHJldHVybjsKKworICAgIGluZGV4ID0g
cGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIHJlZykgJiBQQ0lfUkVCQVJfQ1RSTF9CQVJfSURY
OworICAgIGlmICggaW5kZXggPj0gUENJX0hFQURFUl9OT1JNQUxfTlJfQkFSUyApCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICggYmFyc1tpbmRleF0udHlwZSAhPSBWUENJX0JBUl9NRU02NF9M
TyAmJgorICAgICAgICAgYmFyc1tpbmRleF0udHlwZSAhPSBWUENJX0JBUl9NRU0zMiApCisgICAg
ICAgIHJldHVybjsKKworICAgIHNpemUgPSBQQ0lfUkVCQVJfQ1RSTF9TSVpFKHZhbCk7CisgICAg
aWYgKCAhKChzaXplID4+IDIwKSAmCisgICAgICAgICBNQVNLX0VYVFIocGNpX2NvbmZfcmVhZDMy
KHBkZXYtPnNiZGYsIHJlZyAtIDQpLCBQQ0lfUkVCQVJfQ0FQX1NJWkVTKSkgKQorICAgICAgICBn
cHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICIlcHA6IG5ldyBzaXplICUj
bHggZm9yIEJBUiV1IGlzbid0IHN1cHBvcnRlZFxuIiwKKyAgICAgICAgICAgICAgICAmcGRldi0+
c2JkZiwgc2l6ZSwgaW5kZXgpOworCisgICAgLy8gYmFyc1tpbmRleF0uc2l6ZSA9IHNpemU7Cisg
ICAgLy8gYmFyc1tpbmRleF0uYWRkciA9IDA7CisgICAgLy8gYmFyc1tpbmRleF0uZ3Vlc3RfYWRk
ciA9IDA7CisgICAgcGNpX2NvbmZfd3JpdGUzMihwZGV2LT5zYmRmLCByZWcsIHZhbCk7Cit9CisK
K3N0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9yZWJhcihzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sK
KyAgICB1aW50MzJfdCBjdHJsOworICAgIHVuc2lnbmVkIGludCByZWJhcl9vZmZzZXQsIG5iYXJz
OworCisgICAgcmViYXJfb2Zmc2V0ID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGRldi0+c2Jk
ZiwgUENJX0VYVF9DQVBfSURfUkVCQVIpOworCisgICAgaWYgKCAhcmViYXJfb2Zmc2V0ICkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBjdHJsID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYs
IHJlYmFyX29mZnNldCArIFBDSV9SRUJBUl9DVFJMKTsKKyAgICBuYmFycyA9IE1BU0tfRVhUUihj
dHJsLCBQQ0lfUkVCQVJfQ1RSTF9OQkFSX01BU0spOworCisgICAgZm9yICggdW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgbmJhcnM7IGkrKywgcmViYXJfb2Zmc2V0ICs9IFBDSV9SRUJBUl9DVFJMICkK
KyAgICB7CisgICAgICAgIGludCByYzsKKworICAgICAgICByYyA9IHZwY2lfYWRkX3JlZ2lzdGVy
KHBkZXYtPnZwY2ksIHZwY2lfaHdfcmVhZDMyLCByZWJhcl9jdHJsX3dyaXRlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlYmFyX29mZnNldCArIFBDSV9SRUJBUl9DVFJMLCA0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYtPnZwY2ktPmhlYWRlci5iYXJzKTsK
KyAgICAgICAgaWYgKCByYyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHByaW50aygiJXBwOiBh
ZGQgcmVnaXN0ZXIgZm9yIFBDSV9SRUJBUl9DVFJMIGZhaWxlZCAlZFxuIiwKKyAgICAgICAgICAg
ICAgICAgICAmcGRldi0+c2JkZiwgcmMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KK1JFR0lTVEVSX1ZQQ0lfSU5JVChpbml0X3JlYmFy
LCBWUENJX1BSSU9SSVRZX0xPVyk7CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2Rl
OiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFi
LXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0t
Z2l0IGEveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmggYi94ZW4vaW5jbHVkZS94ZW4vcGNpX3Jl
Z3MuaAppbmRleCAyNTBiYTEwNmRiZDMuLmQyZGVjZTYzNDA5ZiAxMDA2NDQKLS0tIGEveGVuL2lu
Y2x1ZGUveGVuL3BjaV9yZWdzLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmgKQEAg
LTQ1OSw2ICs0NTksNyBAQAogI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9BUkkJMTQKICNkZWZpbmUg
UENJX0VYVF9DQVBfSURfQVRTCTE1CiAjZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX1NSSU9WCTE2Cisj
ZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX1JFQkFSCTIxCiAKIC8qIEFkdmFuY2VkIEVycm9yIFJlcG9y
dGluZyAqLwogI2RlZmluZSBQQ0lfRVJSX1VOQ09SX1NUQVRVUwk0CS8qIFVuY29ycmVjdGFibGUg
RXJyb3IgU3RhdHVzICovCkBAIC01NDEsNiArNTQyLDE2IEBACiAjZGVmaW5lICBQQ0lfVk5EUl9I
RUFERVJfUkVWKHgpCSgoKHgpID4+IDE2KSAmIDB4ZikKICNkZWZpbmUgIFBDSV9WTkRSX0hFQURF
Ul9MRU4oeCkJKCgoeCkgPj4gMjApICYgMHhmZmYpCiAKKy8qIFJlc2l6YWJsZSBCQVJzICovCisj
ZGVmaW5lIFBDSV9SRUJBUl9DQVAJCTQJLyogY2FwYWJpbGl0eSByZWdpc3RlciAqLworI2RlZmlu
ZSAgUENJX1JFQkFSX0NBUF9TSVpFUwkJMHhGRkZGRkZGMCAgLyogc3VwcG9ydGVkIEJBUiBzaXpl
cyAqLworI2RlZmluZSBQQ0lfUkVCQVJfQ1RSTAkJOAkvKiBjb250cm9sIHJlZ2lzdGVyICovCisj
ZGVmaW5lICBQQ0lfUkVCQVJfQ1RSTF9CQVJfSURYCTB4MDAwMDAwMDcgIC8qIEJBUiBpbmRleCAq
LworI2RlZmluZSAgUENJX1JFQkFSX0NUUkxfTkJBUl9NQVNLCTB4MDAwMDAwRTAgIC8qICMgb2Yg
cmVzaXphYmxlIEJBUnMgKi8KKyNkZWZpbmUgIFBDSV9SRUJBUl9DVFJMX0JBUl9TSVpFCTB4MDAw
MDFGMDAgIC8qIEJBUiBzaXplICovCisjZGVmaW5lICBQQ0lfUkVCQVJfQ1RSTF9TSVpFKHYpIFwK
KyAgICAgICAgICAgICgxVUwgPDwgKE1BU0tfRVhUUih2LCBQQ0lfUkVCQVJfQ1RSTF9CQVJfU0la
RSkgKyAyMCkpCisKIC8qCiAgKiBIeXBlcnRyYW5zcG9ydCBzdWIgY2FwYWJpbGl0eSB0eXBlcwog
ICoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92cGNpLmggYi94ZW4vaW5jbHVkZS94ZW4v
dnBjaS5oCmluZGV4IDQxZTdjM2JjMjc5MS4uNDVlYmMxYmIzMzU2IDEwMDY0NAotLS0gYS94ZW4v
aW5jbHVkZS94ZW4vdnBjaS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgKQEAgLTEyOSw2
ICsxMjksOCBAQCBzdHJ1Y3QgdnBjaSB7CiAgICAgICAgICAqIHVwb24gdG8ga25vdyB3aGV0aGVy
IEJBUnMgYXJlIG1hcHBlZCBpbnRvIHRoZSBndWVzdCBwMm0uCiAgICAgICAgICAqLwogICAgICAg
ICBib29sIGJhcnNfbWFwcGVkICAgICAgOiAxOworICAgICAgICAvKiBEZXZpY2UgaGFzIHRoZSBS
ZXNpemFibGUgQkFScyBjYXBhYmlsaXR5LiAqLworICAgICAgICBib29sIGJhcnNfcmVzaXphYmxl
ICAgOiAxOwogICAgICAgICAvKiBGSVhNRTogY3VycmVudGx5IHRoZXJlJ3Mgbm8gc3VwcG9ydCBm
b3IgU1ItSU9WLiAqLwogICAgIH0gaGVhZGVyOwogCi0tIAoyLjM0LjEKCg==

--_003_BL1PR12MB5849F5382CF3A03C080C4CA4E7222BL1PR12MB5849namp_--


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 09:52:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 09:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841260.1256745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE3r8-0005Fc-Hf; Thu, 21 Nov 2024 09:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841260.1256745; Thu, 21 Nov 2024 09:52: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 1tE3r8-0005FV-Ey; Thu, 21 Nov 2024 09:52:10 +0000
Received: by outflank-mailman (input) for mailman id 841260;
 Thu, 21 Nov 2024 09:52: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tE3r7-0005FP-BF
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 09:52:09 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4336f2c8-a7ee-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 10:52:04 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9e71401844so103706366b.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 01:52:04 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f4181361sm60969366b.81.2024.11.21.01.52.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 01:52: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: 4336f2c8-a7ee-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQzMzZmMmM4LWE3ZWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTgyNzI0LjUxNDQ0NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732182724; x=1732787524; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=fLRYiSUO2F5QilBu2mjpt5BGL99+b2+kmRRF5ZFIFQc=;
        b=NZHWOdE2n3gh+dx6xUmyinWVXvhpd2juJRSPTw7puHQr+EwovsZ6Fyl92E5epflGpt
         I/vwPidhrDobXDIAMtF8CngnzJj0mFuLZxtMbComTjtlAPfV5bk3oGTGvPgNda4p7CyO
         d44e04DO7VYO6rzlnWucsSA8GNLxp0NfcsEnI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732182724; x=1732787524;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=fLRYiSUO2F5QilBu2mjpt5BGL99+b2+kmRRF5ZFIFQc=;
        b=TEZghy1yqcmhZBadtzD3k2A4MZs5y4wLrRYjDbF2leHylB+1QHyEDtdYute57V8FkS
         K/hbgvmAbyl11DVlIlQsRzNBPUM6GDoUCdAkbI8B6rj/X2Y9srRXzphK0TCOru71y2KC
         9lewmDGk9vnCgES42OBWiAbkaUAJwMdrnfKo3hprIYwjdS7KJQHBdU0k3RqSsSCGq4vw
         dEFi40t2Kr6gSBKKiKBCLMpUQi9VEqPf9eQxj6+C5szypR361d8gG2ZDSWoaUOenJmop
         CxWF2Ihu3GEYBxlgQ7sqkoQWAEjvenTQhRVA7yMpVT0+QRc0mgYh/5K/KiDF9K3GNJUA
         +GPw==
X-Gm-Message-State: AOJu0Yym78oZzrgaFMMrIRiqvCHetDb2kDBWKJeEbtP1eB7H90D3oxUA
	wLr24vSRQTrBV7y2dN4yOwOtUUkdSyn49HNClxmznD4cLZsd8ihQiz5VtxCaJFM=
X-Google-Smtp-Source: AGHT+IGXbWpOB1uSU1pynnjjNcseCZvtuhOeIR2O7lo90R7HoEPEmdLo/rMFR//KwZFlCQoxZUR4XQ==
X-Received: by 2002:a17:907:97c4:b0:a99:e4db:4909 with SMTP id a640c23a62f3a-aa4dd551b37mr600714766b.15.1732182723918;
        Thu, 21 Nov 2024 01:52:03 -0800 (PST)
Date: Thu, 21 Nov 2024 10:52:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <Zz8Cwj3KJ1BIBEg_@macbook>
References: <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook>
 <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>

On Thu, Nov 21, 2024 at 03:05:14AM +0000, Chen, Jiqian wrote:
> On 2024/11/20 17:01, Roger Pau MonnÃ© wrote:
> > On Wed, Nov 20, 2024 at 03:01:57AM +0000, Chen, Jiqian wrote:
> >> The only difference between our methods is the timing of updating the size.
> >> Yours is later than mine because you updated the size when the driver re-enabled memory decoding, while I updated the size in time when driver resize it.
> > 
> > Indeed, my last guess is the stale cached size is somehow used in my
> > approach, and that leads to the failures.  One last (possibly dummy?)
> > thing to try might be to use your patch to detect writes to the resize
> > control register, but update the BAR sizes in modify_bars(), while
> > keeping the traces of when the operations happen.
> > 
> This can work, combine our method, use my patch to detect and write the size into hardware register, and use your patch to update bar[i].size in modify_bars().
> Attached the combined patch and the xl dmesg.

This is even weirder, so the attached patch works fine?  The only
difference with my proposal is that you trap the CTRL registers, but
the sizing is still done in modify_bars().

What happens if (based on the attached patch) you change
rebar_ctrl_write() to:

static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
                                      unsigned int reg,
                                      uint32_t val,
                                      void *data)
{
    pci_conf_write32(pdev->sbdf, reg, val);
}

And if you don't trap any PCI_REBAR_CTRL at all?

I'm mostly interested in figuring put which part of the code in
rebar.c makes this work (as compared to my original approach).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 10:15:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 10:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841271.1256755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4E2-00088s-8H; Thu, 21 Nov 2024 10:15:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841271.1256755; Thu, 21 Nov 2024 10: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 1tE4E2-00088l-5e; Thu, 21 Nov 2024 10:15:50 +0000
Received: by outflank-mailman (input) for mailman id 841271;
 Thu, 21 Nov 2024 10: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=r7dD=SQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tE4E1-00088f-FE
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 10:15:49 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20613.outbound.protection.outlook.com
 [2a01:111:f403:2409::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 902acc19-a7f1-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 11:15:43 +0100 (CET)
Received: from SA1P222CA0130.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c2::21)
 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.8158.27; Thu, 21 Nov
 2024 10:15:38 +0000
Received: from SN1PEPF0002BA4F.namprd03.prod.outlook.com
 (2603:10b6:806:3c2:cafe::fa) by SA1P222CA0130.outlook.office365.com
 (2603:10b6:806:3c2::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.24 via Frontend
 Transport; Thu, 21 Nov 2024 10:15:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.12) by
 SN1PEPF0002BA4F.mail.protection.outlook.com (10.167.242.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8182.16 via Frontend Transport; Thu, 21 Nov 2024 10:15:36 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 21 Nov
 2024 04:15:36 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Nov 2024 04:15: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: 902acc19-a7f1-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwOTo6NjEzIiwiaGVsbyI6Ik5BTTA0LURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkwMmFjYzE5LWE3ZjEtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTg0MTQzLjQyODkxNiwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oRLfN8ljKm1lKNErHdK5wMcfh3wL+evS/oIs4eouQmwMjHHkvak0qTa7Yza99qpTvTyIOhKc0ROoHov82XEEScv5hxAD5k2Bw/kbyQs7+D5YZHVLAHmRYNFs0/VGOc4kSLVG9AL0UTkeVF7GjhGFPxgyQPtorKs2FUA8ETlXCuda4+DBVgd4CZ010eMSYvEOAD+wolGJdpGFYDyGBKdNvNfQpdRLdbBqVl6ievCb/QDBKUQ72Lg7eQ0d42aIBJbsDIX8b3pjaDNye3dwFCxb6D1qNRnOdlRLmQB35U3sjTy3J8nDBN9LrigM5ZasAAcbDHxyWXwF9F2HaNXOGmsk8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wVKJdkh0tJBUz2++OsFRnh1jMvQosXEbRL98KFukEo8=;
 b=T5oxtOito5z6pudK7IpoeTBMTsdcUXKk+wcR02WgRo8cs1QUCHuoTNDJ7OApyI1TGn3Fo/c4AnO09l6fxrzMUeG5Vb3fUdHHjBtqYlum3FMbjNdaf49VnZdggTBzXgALtZ3VpZKuf2vbTPd996uS+RHXGlayQx25J7aYVyRNnCxtZBHkPBz4wIyBwup6PDnTxgO4DnguSQTGWZFia+1z05nHI7b/FPkJaK7NnlDmZdq2LSc+dT00951H+gBHim+I2qN5jkX9NH3N9GsMoz2y7tXRzai/VYwyvmQyc0Rk8v+xZUv7Lfw7R39mrvUnMfQwUbrcg1Ld6+RD17wYKyfKFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip
 is 165.204.84.12) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com;
 dmarc=temperror 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=wVKJdkh0tJBUz2++OsFRnh1jMvQosXEbRL98KFukEo8=;
 b=cbYCLyopHReDKJMRATRECS2fESIsfkrDidXxLwuj6Vu7CfyQdSr55mEz7sWJ/889hngYxJKHNXXm28z8fMeEnA0UsCUsPOR5CjtIqmeEef2xM4ZmuLD26m5KG5r7uoKvH0/GEtPWl34q6aBC6FbtD4l5e4DJETf99PTefRJ5NFE=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 165.204.84.12) smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=temperror action=none header.from=amd.com;
Received-SPF: TempError (protection.outlook.com: error in processing during
 lookup of amd.com: DNS Timeout)
Message-ID: <5378bc2e-3cdc-4b5a-9a81-9f8346417fda@amd.com>
Date: Thu, 21 Nov 2024 11:15:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] drivers/char: rename arm-uart.c to uart-init.c
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <f168e76eacc2fd2e6da559a38c33e187da515614.1732027276.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <f168e76eacc2fd2e6da559a38c33e187da515614.1732027276.git.oleksii.kurochko@gmail.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: SN1PEPF0002BA4F:EE_|MW6PR12MB8663:EE_
X-MS-Office365-Filtering-Correlation-Id: d0e27894-c63e-4305-66c5-08dd0a157173
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NjJPVFFaRlB1TlU4R05XbjZjUEplRWx2Z0hhZDV4UC9rYjBMSzhRUzYzMHdp?=
 =?utf-8?B?Z05JSHV3YnNWYWpGSVBiYm94by9xT25vTzM5KzhVbkxtT05NUjJycVE3U2ZF?=
 =?utf-8?B?MVR4blp0VmlQL0FMdmpZTmJOY1dqcU9NcTJCc0lOdCtyajR6eWJBTnF6eTkx?=
 =?utf-8?B?VVhVQVBOZ1l3MjhEVXl3K3NVSXFuZUhQdmdSakdWYjNZVXE4T1BTU3RiMHoz?=
 =?utf-8?B?Nll3YjE5YzB1dVViN1ZCalBhN2lXVGhUQWt1NXl5WXR1Z0hTdDE4U3B2RUhm?=
 =?utf-8?B?WXBQVkhIZUpmcDhHL285TDlDNGlRRU5GL3ZRakVSekJiUW13amo1cVhFc05a?=
 =?utf-8?B?bmVQU0lTY05PS0o0OGZsRGgwMkh3c1ZtSjhZeHhuMFZKQnpJbWIxSEh6RGJH?=
 =?utf-8?B?aWF1L28xTVRQQVdHQ1p0Uk5WSUNFZUhIZnZUZFZJUDdqV0t2V0YzM09vZDkv?=
 =?utf-8?B?dm5ZRVpZdDN4LzcrM3Rta2p4MTRHa3d0TmMyUERjT0hFK1hCQUJiTHg3V0U4?=
 =?utf-8?B?Z0Nyb2VyWHRNSGplT3NWejBGWmVFWkJOOVZ5U3diQUp5NUlONlljck1BNGZt?=
 =?utf-8?B?ZlNKRkZuenZZcnlscUJHb21CMWZWWVl5Tk16cWEwYUgxbG1pUUhtOTdnclI4?=
 =?utf-8?B?ckowZURDWlVwbk1ZR0lrTzNNbFdzN0tvYlU2WG55ZkJhRmkyN3l1dldxaDMv?=
 =?utf-8?B?eXFYdlRYRXFRYnhmYkIwTEJ2N2ZpR0RIeEFEeDNMM2hBTCs0RnMvUUJCSUtI?=
 =?utf-8?B?dGhJeVVINzFXWUxnbUo3a2picDh0YlFnTnZLQ0xWVDNycW56cDFvRHVrbENk?=
 =?utf-8?B?VEFIUnFzYzhKbStSSmdPSnFCNmFYRlVrblJTTUEweWxtWlM0VlFkTWp3cEtE?=
 =?utf-8?B?UmU5eldMMWc5YjRWSE1Wd3hmMWM1eHk3VnFBNUJYRVNiaGJVTUxsUUsxVFNE?=
 =?utf-8?B?bytkVFpJcmNwRXpLUEE0S3lRVGNjeUl4WG9Ham5vY0NrdGhzZTdTaTdNTTd5?=
 =?utf-8?B?Qkdsbk1OSU56THBqOEpoT0NLYkg3Zk1uOTV1d3BjR2w3V0drZGZOZ2k2SkpX?=
 =?utf-8?B?NHRHYXY4VGJjeVRBdkU5NEVUem1Lb3FsVllIaXFFZE1ZWVFZVGpuWlIwZnFp?=
 =?utf-8?B?TDlZbW5tZHJSR01RazJlRGYvTVFNcWUyRTRRdCtKbVpYWTVkUXB3Nm9WbDVW?=
 =?utf-8?B?c0ZES3daWUNYb3RMSFZZNGJkL3dyTm9vK2VwMGdRaWRZb2J4Ri9xQkdSR1Vu?=
 =?utf-8?B?VVJ3Z1k2akw0dUc5K1ZLdzVKaVJ5cUNjTGIzRGVOUUR2cVdhZ0ovaG9sUDZW?=
 =?utf-8?B?d2EzT2xrVWJRZTI2UmQwN3RBWmgrTlF4SktvR2V6YlQyd0NjZlVaM0lBOVE0?=
 =?utf-8?B?RlhEMkZuVXZIWDU3bmVCT0htam9PRXUxV0xxNEN1M0lxczBiU0UvVFp1RHJj?=
 =?utf-8?B?NjN5NXJwT2dIYVN3c1RFWkpENmZhS21rV2xpeHZObU41YlBaK1VCL25lc0o3?=
 =?utf-8?B?RU56Njg4NTl0UzZvTXh6ZURTcTM2Vjlmcnc0ckdnZ1ZhRmZzTkdwcVZudWJP?=
 =?utf-8?B?OXVVOTZvM2lEaVNuNlBBS0RyWHBWbWZhRmJyUW5SODdSd3JYZ1gvUnE5cyt6?=
 =?utf-8?B?WDhZZkpLUTd4ZWJYOGxLdS9MK21jejVpYmpnb0NCS1JlSzl4bUU5d0hqQzhw?=
 =?utf-8?B?MEJkY2t4VW0wMk1VSmxYRjd4SC95cTlKcWFFZmR2SVNKaU5LcmdQbFFaUWU0?=
 =?utf-8?B?RTZTK1lKMlBCNWZVNEYrSHdvYzFCdWpwMFEydDFVMjFoUmNyZTFtcjFxTmwz?=
 =?utf-8?B?aUVENzdWZUtua1BFSngzOTNSVEdMS2lxZEdIcFhSaWNTMUxUS2U0RldsY2ly?=
 =?utf-8?B?WU80RWVrcWUwdkFiNGtMYTh4bXlTdnRDZzYwTWYzWGcvWGc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2024 10:15:36.9520
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d0e27894-c63e-4305-66c5-08dd0a157173
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.12];Helo=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA4F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8663



On 19/11/2024 15:55, Oleksii Kurochko wrote:
> 
> 
> Rename the file containing uart_init() to enable reuse across other
> architectures that utilize device trees or SPCR tables to locate UART
> information.
> After locating UART data, {acpi}_device_init() is called to initialize
> the UART.
> 
> arm_uart_init() is renamed to uart_init() to be reused by other
> architectures.
> 
> A new configuration option, CONFIG_GENERIC_UART_INIT, is introduced,
> currently available only for Arm. Enabling CONFIG_UART_INIT on additional
> architectures will require additional functionality, such as device tree
> mapping and unflattening, etc.
> 
> arm-uart.c is removed from "ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE"
> section in the MAINTAINERS file, as it is no longer Arm-specific and can
> now be maintained by maintainers of other architectures.
> 
> Use GENERIC_UART_INIT for CONFIG_ARM by adding `select GENERIC_UART_INIT`
> to CONFIG_ARM.
> 
> 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 Nov 21 10:27:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 10:27:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841281.1256766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4PZ-0001Nl-8c; Thu, 21 Nov 2024 10:27:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841281.1256766; Thu, 21 Nov 2024 10:27: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 1tE4PZ-0001Ne-5e; Thu, 21 Nov 2024 10:27:45 +0000
Received: by outflank-mailman (input) for mailman id 841281;
 Thu, 21 Nov 2024 10:27: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=r7dD=SQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tE4PY-0001NY-Ac
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 10:27:44 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20602.outbound.protection.outlook.com
 [2a01:111:f403:2415::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c0d21ba-a7f3-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 11:27:40 +0100 (CET)
Received: from MW4PR03CA0241.namprd03.prod.outlook.com (2603:10b6:303:b4::6)
 by DM4PR12MB6398.namprd12.prod.outlook.com (2603:10b6:8:b5::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Thu, 21 Nov
 2024 10:27:34 +0000
Received: from CO1PEPF000044F3.namprd05.prod.outlook.com
 (2603:10b6:303:b4:cafe::77) by MW4PR03CA0241.outlook.office365.com
 (2603:10b6:303:b4::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23 via Frontend
 Transport; Thu, 21 Nov 2024 10:27:34 +0000
Received: from SATLEXMB03.amd.com (165.204.84.12) by
 CO1PEPF000044F3.mail.protection.outlook.com (10.167.241.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8182.16 via Frontend Transport; Thu, 21 Nov 2024 10:27:33 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 21 Nov
 2024 04:27:33 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Nov 2024 04:27:31 -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: 3c0d21ba-a7f3-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjAyIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjNjMGQyMWJhLWE3ZjMtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTg0ODYwLjAyNDY5NSwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sA6gjVI97pJWR3VqCwai4yssfB9Jl1/XhklJWQ+nGlZjEOJLA9gmr9JBISf3hoXoKZJXpoFCsj70PATf98iwy7uoc0csatZd0n9/rBPuaWyNCHeVlsO8K0p7DHLCPmdwhNI8QZfJEMstfIs1R9QWPK+aQKf/4/rUexSfwMB7CHoDmTyijgjHFXX3iplQtXOuqAV3nPDjiyID3fuE2NlHrtqt6XPcD1vwEPqzdwxGXvtwXi/4BuujnGFlYE8ta9W9Qa/fuiMGTI2XhVD1h/MlXM+C/d5mWEQ3uLSMx+dETMjW30bNKtERFuL6Fj/JtCkoo18LpjYvaHMWA9SNzgi8hw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XIXn4ITrUG/XnG2Fc3dZysNG4aJEGMa3yR8pa6UN9pg=;
 b=faaJkzWM2UpEvz0/JtdJKqe7GqenJMZ1C5ozdZ7AWVBA68ISTckWh6Jfcq9ODf+WtMJMER2p/14K5IXWM+2pSLzaTk+WyATsVYoqnxtRLC6CrPjVGOy3yA22xXWTnnDKonxA4UsR+54Y4sBCoLPym6j32hC76F17X50UlW6D4k8ADAaBpbZPBROc//+Kk0b1M1LdylquuvLDUIAHqgy+Lqmw5XpJBcwvSBgFInRSZpWS43aq1cSBgauTGAIJX7PyLaOidLFjI76uAWfhjlx4T7wF/LitttlwJZZqHPX66Dv/Bq853j8++1heh9P0uqHL9KT98odVq49y97XHxfu+yA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.12) 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=XIXn4ITrUG/XnG2Fc3dZysNG4aJEGMa3yR8pa6UN9pg=;
 b=Od3f/ZUFTluOtvZ5TYQqw2YvDdqQIXs5klU8KUG60xy5tEra5J4HbUh+dxCZrPnSSIVGmWpkC1OSN3o6x6iTHRlk5Cj4uCFG3qq3AKIjlRnuw2/qH0eJoU19NZbk96gG2eCj0lr8H9fxHNbb8fPkk4fDe5oS4O8lkdBw7Wx3x6I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.12)
 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.12 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.12; helo=SATLEXMB03.amd.com; pr=C
Message-ID: <74f837dc-eaeb-495f-89ca-296eb56ad36b@amd.com>
Date: Thu, 21 Nov 2024 11:27:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/common: Move gic_dt_preinit() to common code
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>
References: <54d0ff689e167b3f3137afea45307f762ce0a974.1732027385.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <54d0ff689e167b3f3137afea45307f762ce0a974.1732027385.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F3:EE_|DM4PR12MB6398:EE_
X-MS-Office365-Filtering-Correlation-Id: ffdde05e-7e18-4c9b-450d-08dd0a171ce1
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?b0R2b2hPbmlsaVM0VTcydkdRbWhmM2JuSTBaMFhZS2h6Qm5GMGp4cGkvQTJR?=
 =?utf-8?B?VTlBUC9SbFpqeE4zOTB2YVRQUDNncm9HSXNoQ2Y3YUdQQTg3VGRJM0ZuQlFx?=
 =?utf-8?B?NGthVDJvalgxYUJoczdERXJqUGl5aUwzd1poTEZCQzRhM1ZNS3ExK1ZsdWYw?=
 =?utf-8?B?dStkZlVsK05UQzQzUjlLOVd2bmF6cUZ4TmtuWVZwU2JoTXBjWkpjOHlScm5C?=
 =?utf-8?B?eU9mZktVa2xDVHo3QU1teDlzR1dCQjRWU0VIVDN5VUhkcVdzUzR1MTNvZjlv?=
 =?utf-8?B?TVdiS2hKOGdMVThaNDNtVnMwSUs1dTJPNnJQQmhLWjNKM2NhYnplQTV4Ly8v?=
 =?utf-8?B?MW5oV1hqSnNSUXFYc2UyeUpLbTFFSjA1Y0ExOEt2eU1mRitWU1NOQkJxYVMx?=
 =?utf-8?B?dnhRMDZsdTIyYTFtQ0VJYVRoeFA1TG91dDgySzZ1SGJvR1dUOS9kMUREdmc5?=
 =?utf-8?B?ajU0LysxWkFMbTdzeUJqckZoSktGbDNvSFBXRmgyUWRDRzNDNFEzK1pibnlO?=
 =?utf-8?B?MHJaSVdLa3dKdnRGSjZHMndtYk5xMm8wRGt0NndBbTdnRlF3QUJoVzEweFQy?=
 =?utf-8?B?aHJxTXlCbHNXeTMrOGM3RTdkanNkVVFkYjNGZ25CU25iUHRORmY1Q2pVRHNS?=
 =?utf-8?B?UmJwVE8yaXY5WkFPeG5Edi9DcW91M3dPbWtrMkdLcTJZUjhITGlLQ3RJWWln?=
 =?utf-8?B?NUQ0bDdBdFlYcUkvV2I3NURYYkFSUUM5NlZkVmozeFMxb3krWFpTdFdLU1N3?=
 =?utf-8?B?SDdwSEQ2WExPYWVhdEJ1aGZmOHoxRER3OWdYUjhRR1NJTlVJYWFhSENBRFB2?=
 =?utf-8?B?NEdIK0NXb3lsUjQ5d005azhvcjN5dHEzWVZUZUdyYVh0YXdCV211ZGFVdVVy?=
 =?utf-8?B?K1NNbytsSm9OK1ZqTVJMaTNudEVvUWFNUzdPcXNPblEvZlBRSUIzb3dDUWNk?=
 =?utf-8?B?eDVDNklwME5rdFpJRS9obVBJdUg1SmJPaTZ6dk1wMTNYNGVMUVpwZjlOV0I2?=
 =?utf-8?B?dWw2TUlscHl5VWQvUjh2empoSE9kQjNRTjJ6a2pMc2hiNHhTb0kwOXN0NTdE?=
 =?utf-8?B?Q0FHZ1g1Z1FvNk5sZHJveCtUVWxDWGJLc1Y0WDIvSGgrSUpLTHpkUmJLVjBn?=
 =?utf-8?B?THhFM2VDaUJCTTFWUkxXZ1Brcjc1cnQ3ZU9yb3psa2pQZ2ZkZGthQ3RlVjZB?=
 =?utf-8?B?VW5LVEhIM00xaVdYNjA3c09BdUtrdDJ6OTNnb2R5NlppNldVbG5HeUEvL3Mw?=
 =?utf-8?B?V2hUSzhHNWNhK3JzTTlFa3ZHZVJIU3RodWFDWEwrVGZvZ1k5MUZFb0IxcEJ2?=
 =?utf-8?B?N2U1b1ZlT2dKVjE0WEloNmYzYk1NYkpoUW5BS0pwSHROMUx6ODZZM1c1Si82?=
 =?utf-8?B?ZUNUYjRoQU9BRHZVYU1hTUdvTFc5NUV6S09KZTU3VG13eENRL2xhOW5zSVl4?=
 =?utf-8?B?a2RoZ0t6WnQwcVgxVCtSbWc2cG9Hak9PY08wUkppbG5jYmFwMW0vWDYzNnU0?=
 =?utf-8?B?Sk42dWZnK3RmZ1A1MkFHK3pPQjZPWlZJdFFEaHl4OG8yYWVsUWpMampzSGVG?=
 =?utf-8?B?ejhMNlNUSEptTTRySmVrTjJqK3N2K3ZmUGMyWi9idWtpK1N6ZmtvUTdFQVlY?=
 =?utf-8?B?Tkp5NTdTTEJOZytwK1BiMzNZdG10ME4wVDhzWnhxRkwyWS9VZ21LeER0Q2Ju?=
 =?utf-8?B?YWlnRGRtZ1JadkxvVTJjTlFlMjREZGFQN1dkSWtwWHo2b3lqSXNreldVU000?=
 =?utf-8?B?OGVCVVBHMmhGWFBTYkpEN3N6RU9OWUMvU0x5aXA4THpOZldVWGpzbTNoeUJJ?=
 =?utf-8?B?MEI0TVYxN3pMbStWdUFycWxBZlJ0R1AwWVRxQ081RXIyWUt2QlZpVVcxQm51?=
 =?utf-8?B?WjBLZnQzWC92RFZiZ0lza1UvZmpWTXByM3V5YUN3bFBwZ2c9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2024 10:27:33.9654
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ffdde05e-7e18-4c9b-450d-08dd0a171ce1
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.12];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6398



On 19/11/2024 15:56, Oleksii Kurochko wrote:
> 
> 
> Introduce intc_dt_preinit() in the common codebase, as it is not
> architecture-specific and can be reused by both PPC and RISC-V.
> This function identifies the node with the interrupt-controller property
> in the device tree and calls device_init() to handle architecture-specific
> initialization of the interrupt controller.
> 
> Make minor adjustments compared to the original ARM implementation of
> gic_dt_preinit():
>  - Remove the local rc variable in gic_dt_preinit() since it is only used once.
>  - Change the prefix from gic to intc to clarify that the function is not
>    specific to ARMâ€™s GIC, making it suitable for other architectures as well.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v4:
>  - Add SPDX tag in intc.c
>  - s/num_gics/num_intc
>  - Update the comment: s/GIC/interrupt controller.
> ---
> Changes in v3:
>  - s/ic/intc.
>  - Update the commit message.
>  - Move intc_dt_preinit() to common/device-tree/intc.c.
>  - Add declaration of intc_dt_preinit() in xen/device_tree.h.
>  - Revert intc_preinit()-related changes and just back gic_preinit() in
>    Arm's gic.c.
>  - Revert ACPI-related changes.
> ---
> Changes in v2:
>  - Revert changes connected to moving of gic_acpi_preinit() to common code as
>    it isn't really architecture indepent part.
>  - Update the commit message.
>  - Move stub of ic_acpi_preinit() to <asm-generic/device.h> for the case when
>    CONFIG_ACPI=n.
> ---
>  xen/arch/arm/gic.c              | 32 +-----------------------------
>  xen/common/device-tree/Makefile |  1 +
>  xen/common/device-tree/intc.c   | 35 +++++++++++++++++++++++++++++++++
>  xen/include/xen/device_tree.h   |  6 ++++++
>  4 files changed, 43 insertions(+), 31 deletions(-)
>  create mode 100644 xen/common/device-tree/intc.c
> 
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index 3eaf670fd7..acf61a4de3 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -214,36 +214,6 @@ int gic_map_hwdom_extra_mappings(struct domain *d)
>      return 0;
>  }
> 
> -static void __init gic_dt_preinit(void)
> -{
> -    int rc;
> -    struct dt_device_node *node;
> -    uint8_t num_gics = 0;
> -
> -    dt_for_each_device_node( dt_host, node )
> -    {
> -        if ( !dt_get_property(node, "interrupt-controller", NULL) )
> -            continue;
> -
> -        if ( !dt_get_parent(node) )
> -            continue;
> -
> -        rc = device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL);
> -        if ( !rc )
> -        {
> -            /* NOTE: Only one GIC is supported */
> -            num_gics = 1;
> -            break;
> -        }
> -    }
> -    if ( !num_gics )
> -        panic("Unable to find compatible GIC in the device tree\n");
> -
> -    /* Set the GIC as the primary interrupt controller */
> -    dt_interrupt_controller = node;
> -    dt_device_set_used_by(node, DOMID_XEN);
> -}
> -
>  #ifdef CONFIG_ACPI
>  static void __init gic_acpi_preinit(void)
>  {
> @@ -269,7 +239,7 @@ static void __init gic_acpi_preinit(void) { }
>  void __init gic_preinit(void)
>  {
>      if ( acpi_disabled )
> -        gic_dt_preinit();
> +        intc_dt_preinit();
>      else
>          gic_acpi_preinit();
>  }
> diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
> index 58052d074e..7c549be38a 100644
> --- a/xen/common/device-tree/Makefile
> +++ b/xen/common/device-tree/Makefile
> @@ -2,3 +2,4 @@ obj-y += bootfdt.init.o
>  obj-y += bootinfo.init.o
>  obj-y += device-tree.o
>  obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
> +obj-y += intc.o
> diff --git a/xen/common/device-tree/intc.c b/xen/common/device-tree/intc.c
> new file mode 100644
> index 0000000000..d2bcbc2d5e
> --- /dev/null
> +++ b/xen/common/device-tree/intc.c
> @@ -0,0 +1,35 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <xen/device_tree.h>
> +#include <xen/init.h>
> +#include <xen/lib.h>
> +
> +void __init intc_dt_preinit(void)
> +{
> +    struct dt_device_node *node;
> +    uint8_t num_intc = 0;
> +
> +    dt_for_each_device_node( dt_host, node )
> +    {
> +        if ( !dt_get_property(node, "interrupt-controller", NULL) )
> +            continue;
> +
> +        if ( !dt_get_parent(node) )
> +            continue;
> +
> +        if ( !device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL) )
> +        {
> +            /* NOTE: Only one interrupt controller is supported */
> +            num_intc = 1;
> +            break;
> +        }
> +    }
> +
> +    if ( !num_intc )
> +        panic("Unable to find compatible interrupt contoller"
> +              "in the device tree\n");
Don't split printk messages. Also the split is incorrect as it'll result in "contollerin" (i.e. no space in between).
Also s/contoller/controller/
 
> +
> +    /* Set the interrupt controller as the primary interrupt controller */
> +    dt_interrupt_controller = node;
> +    dt_device_set_used_by(node, DOMID_XEN);
> +}
Missing EMACS block at the end of file.

> diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
> index e6287305a7..33d70b9594 100644
> --- a/xen/include/xen/device_tree.h
> +++ b/xen/include/xen/device_tree.h
> @@ -238,6 +238,12 @@ extern rwlock_t dt_host_lock;
>  struct dt_device_node *
>  dt_find_interrupt_controller(const struct dt_device_match *matches);
> 
> +#ifdef CONFIG_HAS_DEVICE_TREE
> +void intc_dt_preinit(void);
> +#else
> +static inline void intc_dt_preinit(void) { }
> +#endif
Is it really needed to provide the stub and guards? Other DT related functions in this header are not
protected and AFAICT the inclusion of this header only works if CONFIG_HAS_DEVICE_TREE=y.

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 10:30:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 10:30:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841292.1256776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4S5-0002sJ-PI; Thu, 21 Nov 2024 10:30:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841292.1256776; Thu, 21 Nov 2024 10:30: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 1tE4S5-0002sC-La; Thu, 21 Nov 2024 10:30:21 +0000
Received: by outflank-mailman (input) for mailman id 841292;
 Thu, 21 Nov 2024 10:30: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE4S3-0002rL-Sb
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 10:30:19 +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 982f3e75-a7f3-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 11:30:14 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4316cce103dso8285865e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 02:30: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-433b45d395asm49942745e9.19.2024.11.21.02.30.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 02:30: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: 982f3e75-a7f3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk4MmYzZTc1LWE3ZjMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg1MDE0LjU4ODYxMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732185014; x=1732789814; 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=bKEAH3fAy+SlsSI3d4/qlK+dwWIag00PjqkGCn3prh8=;
        b=ePzwQFOZo+ZJrrTTp7slxm1GMQDkUH25DAyqYZtlnU6FeNt7Bfmh8x0LloQX4S/kbq
         aX5S2DlwZWr9qoiOjwry5/4hjMbaPdTqj5GOOwrvjbUw4FcI7GuoWqt+JJcgErnJAfAB
         NsBCaUT8eTSqRjvvKjF6URScX6FFOXVAVSHAyOp9Ixdwvj/foe1OvFq3CjhUgWhF1WI/
         /gDmguYXwPcIn7ZnGWFXA0tXJk+fuWwQApwkI6zivXysr4HM7S13kuF7aiG69tFmrU0i
         kapQ82rqekk/6kzFi0tAbgs9mNQGcgqfErdVPplrmRp6R9vJbeKALrWhJPH/fSUXJx9a
         ktvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732185014; x=1732789814;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bKEAH3fAy+SlsSI3d4/qlK+dwWIag00PjqkGCn3prh8=;
        b=rXtGhpvXJo+BlaTsY93jFlzLws2zYLNLUbNyPsSF14r0qXzk98l23myVWGR3S7QZMu
         TjWQVMmZOdEE4Kd0RdPp+qTU6oBVQYIk0F8RiTAaPTOXa+ExogbX/7dA5QDj+NaF7EmY
         V5msyXNJHllmxD1u7SUMPqMEHDc2Vq3ph3sneRFkpJtqwzP9ktdAE45DdERVQeJ7vMqJ
         gtuBgzqazvEIrHlctCfTOEztWzwMdzEEL9c7VFAtj0Se7TVcGprtvbqr9FG1HNoMDqkE
         jYWtjWp3BD/9aE4HF8Uv8iokdFzbeFbgPKqDXfvS4LBp8eXI/uJQPoliv6Dibz7TRVQX
         J2Gg==
X-Forwarded-Encrypted: i=1; AJvYcCXoRjocNYf2/FtiadEOmwDLbEDQVq6G95JSYvhFEdK8maTgfezI7k+ZTOaEKsBBENINdRZoR3NZ27g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYrXTQsJG4iYTFmlybp5IQxAUiYk6+MH95+bm7810V2S5RCVhR
	XSw5TV+WcZunNI2E7Zon2JfX5/SPsdtorRQuLl88AITqeRxSFX3S5Re/rXBZNQ==
X-Google-Smtp-Source: AGHT+IH31Kmv6MVgR2tUbT7xfZO0FCHDan2dBlQ4TDGD+BEv/0j8X1CCPNQTtua8Z28I2iLkA73d2w==
X-Received: by 2002:a05:600c:4ec6:b0:431:5465:8072 with SMTP id 5b1f17b1804b1-4334f01d8cdmr66607015e9.31.1732185014002;
        Thu, 21 Nov 2024 02:30:14 -0800 (PST)
Message-ID: <ca243df6-ccd8-434b-ad93-abd58f85cfc1@suse.com>
Date: Thu, 21 Nov 2024 11:30:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Load microcode much earlier on boot
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241119215708.2890691-1-andrew.cooper3@citrix.com>
 <7ffe1d78-188b-495b-914a-663181d9faa8@suse.com>
 <39c24cf2-73ac-4da2-84e3-8caee653e83d@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: <39c24cf2-73ac-4da2-84e3-8caee653e83d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2024 12:24, Andrew Cooper wrote:
> On 20/11/2024 10:44 am, Jan Beulich wrote:
>> On 19.11.2024 22:57, Andrew Cooper wrote:
>>> Following commit cd7cc5320bb2 ("x86/boot: add start and size fields to struct
>>> boot_module"), bootstrap_map*() works as soon as boot_info is populated.
>> I'm struggling with following where this connection is coming from.
> 
> Specifically, the final hunk:
> 
>> @@ -1416,12 +1420,6 @@ void asmlinkage __init noreturn
>> __start_xen(void) if ( bi->mods[i].start & (PAGE_SIZE - 1) )
>> panic("Bootloader didn't honor module alignment request\n"); - /* - *
>> TODO: load ucode earlier once multiboot modules become accessible - *
>> at an earlier stage. - */ - early_microcode_init(bi); - if (
>> xen_phys_start ) { struct boot_module *xen = &bi->mods[bi->nr_modules];
> 
> The context with panic() used to read:
> 
> Â Â Â  panic("Bootloader didn't honor module alignment request\n");
> Â Â Â  bi->mods[i].mod->mod_end -= bi->mods[i].mod->mod_start;
> Â Â Â  bi->mods[i].mod->mod_start >>= PAGE_SHIFT;
> 
> and calling bootstrap_map() prior to that mapped junk because the start
> is wrong by PAGE_SHIFT.
> 
> This is why the TODO was inserted the last time around when we couldn't
> move loading as early as wanted.

Hmm, I see. It wasn't really that they were inaccessible, it merely was
that adjustments of internally maintained data would have been needed.
Which could have been as easy as instantiating a local mod variable,
fill it with suitably adjusted data, and pass an address thereof to
bootstrap_map().

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

I'm surprised though that you didn't comment at all on the other aspect
I raised.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 10:31:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 10:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841303.1256786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4TH-0003ZH-2b; Thu, 21 Nov 2024 10:31:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841303.1256786; Thu, 21 Nov 2024 10:31: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 1tE4TG-0003ZA-VE; Thu, 21 Nov 2024 10:31:34 +0000
Received: by outflank-mailman (input) for mailman id 841303;
 Thu, 21 Nov 2024 10:31: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE4TF-0002rL-2w
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 10:31:33 +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 c4f3a3d3-a7f3-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 11:31:29 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4315839a7c9so6340945e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 02:31: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-433b463abbfsm53074365e9.32.2024.11.21.02.31.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 02:31: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: c4f3a3d3-a7f3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM0ZjNhM2QzLWE3ZjMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg1MDg5LjY5NTYyMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732185089; x=1732789889; 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=4WNq5nSdRGoU4dZQkTnmTjSNjuiFjZFs91toyRlB4FA=;
        b=fuEz0glHEbFBw9Qlbbz/t7CUBf2SJhYOJYBlup/jmsnFuMoFbsI5xQxF8rKop4H7LU
         4y7KBZ+t+QnDYMhaL5SVB0X1WK+hslz5LHlIumTfymWNFWWpOifDsZVxrkY3jwaLbur4
         t1KNSvFX1SN2wSst9ziexfPKA+3LKWWwh5nnEEVvLfCA1eXbM+PAzcRqDc0MQc+ohtJ6
         e0rybIPyTKgnhClmjBoWEfRI25+fbie2h27VjKF2+9ykzfNuxIB7JdEXnfuV63o2VKXJ
         C+pqaX8n57a/qbfxEz+en8+ZwrnKQiizmfTArdIfhO/CrFkUrWBVRl+fI/o6QRPKvV5A
         /waw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732185089; x=1732789889;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4WNq5nSdRGoU4dZQkTnmTjSNjuiFjZFs91toyRlB4FA=;
        b=vKOyC+j1PeaWqJD0+adzg9w6azKqhSoar8NRoXq7qxuLLmS4cELD8mX2WK4/Dq/fFZ
         +4yH1W0/rTUlDgaWjCkzJWQYJrwcNFWkfLacfDtfOnnt3xjjMffHthOtH7VpLlUP6aNP
         2xuZtc1dMr6aNgdjP2m4j8AcQvUIMHCGG6PVUQBjFBixW4FHmdypQvcgjrYzZjWwhRsR
         BlNeWzCUCgC1YdHtURmURTfNeUqvMSHLuWNOeGHKAzhT/xR/I/5D2ri//bCuI2w21Uyp
         Fx0PE8E5cKWNVhjBsIoMnVZO3b08KV6zS6KuaZzO6MZ4AdfEckXgk+Ase4dJN485bYf3
         PHmg==
X-Forwarded-Encrypted: i=1; AJvYcCULullm7AWjQP8HL3eZUeFogxyO6284QMQItTfVfrH/3McDYJiRSbN38+bA0RvAQ4sy8K5aTDB8+iU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYwDX2V4jtfWyHXHQ2cmGOlRNC3g6UvYz6vi0KEs2c2eSvymwk
	YpJs+y4MP1xOV59Yqb8zaBtyr2lp+1X+BxjyPcHAtu/IT/RpNw4H9Keq4B6L2g==
X-Gm-Gg: ASbGncuTcRg7C3P6EGZzio2n29p1Pio1JHkjzuqIFvMMl6s4e0/YdAbAGMGvc189NPI
	4ZsSZmSCXq+KNX+h+MsaYl047HQ6R+yJYLxqX5SV3zhZuXO5hPi6khLkvGvpp4op/P4oh4AWU9T
	YoAg8GtNl2zbCPbNifgBdTd013P9lVhmvkae0KAYl17uQkd/krFyMeluuorMrjkWkjrDd0rLltf
	vbMD1ZeIha0vTN+dPArfwt/wjB+UIrnJ2cV1lGg6M3zRnGDDtKaZtGfP3WFy+qhM4MHa6C03T/c
	iRh+gaQQ5jIOHSiu66vUO3YrM1jktz/pduE=
X-Google-Smtp-Source: AGHT+IFjTCOuqaAtS4ExEVofWtXNHOjNADRBNcS3Y/Et6LfEDIiOiZ0pNwAxgb3tMIiU1a8wA4W5zg==
X-Received: by 2002:a05:600c:3ba6:b0:431:5df7:b337 with SMTP id 5b1f17b1804b1-433489b3414mr51873285e9.8.1732185088403;
        Thu, 21 Nov 2024 02:31:28 -0800 (PST)
Message-ID: <ec976c12-6f7c-4a52-810c-b0f23ef465fd@suse.com>
Date: Thu, 21 Nov 2024 11:31:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Only rescan features on successful microcode
 load
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: <20241119215827.2891332-1-andrew.cooper3@citrix.com>
 <590cc46e-c4e2-44bc-b339-6ffc609314ce@suse.com>
 <b8776e87-0975-43a6-886c-95ec98d0c357@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: <b8776e87-0975-43a6-886c-95ec98d0c357@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2024 14:50, Andrew Cooper wrote:
> On 20/11/2024 10:50 am, Jan Beulich wrote:
>> On 19.11.2024 22:58, Andrew Cooper wrote:
>>> There's no point rescanning if we didn't load something new.  Take the
>>> opportunity to make the comment a bit more concise.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks.
> 
>>
>>> @@ -911,14 +915,5 @@ int __init early_microcode_init(struct boot_info *bi)
>>>  
>>>      rc = early_microcode_load(bi);
>>>  
>>> -    /*
>>> -     * Some CPUID leaves and MSRs are only present after microcode updates
>>> -     * on some processors. We take the chance here to make sure what little
>>> -     * state we have already probed is re-probed in order to ensure we do
>>> -     * not use stale values. tsx_init() in particular needs to have up to
>>> -     * date MSR_ARCH_CAPS.
>>> -     */
>>> -    early_cpu_init(false);
>>> -
>>>      return rc;
>>>  }
>> In principle with this rc could be dropped from the function.
> 
> Oh, so it can.Â  I think I did so in an earlier attempt, prior to
> deciding to go down the route that is partially committed.
> 
> I'm happy to fold in the removal.Â  The incremental diff is:
> 
> @@ -873,7 +873,6 @@ static int __init early_microcode_load(struct
> boot_info *bi)
> Â int __init early_microcode_init(struct boot_info *bi)
> Â {
> Â Â Â Â  const struct cpuinfo_x86 *c = &boot_cpu_data;
> -Â Â Â  int rc = 0;
> Â 
> Â Â Â Â  switch ( c->x86_vendor )
> Â Â Â Â  {
> @@ -913,7 +912,5 @@ int __init early_microcode_init(struct boot_info *bi)
> Â Â Â Â Â Â Â Â  return -ENODEV;
> Â Â Â Â  }
> Â 
> -Â Â Â  rc = early_microcode_load(bi);
> -
> -Â Â Â  return rc;
> +Â Â Â  return early_microcode_load(bi);
> Â }

Please do.

>> It's then further
>> unclear why early_microcode_load() needs to be a separate function, rather than
>> simply being inlined here (as I expect the compiler is going to do anyway).
> 
> Both cognitive and code complexity.
> 
> "Probe and install hooks" is separate from "try to load new ucode if we
> can".
> 
> They've now got entirely disjoint local variables, and the latter has
> some non-trivial control flow in it.Â  It's liable to get even more
> complex if we try to allow CPIO in an explicitly nominated module.
> 
> More generally, a separate function and internal return statements can
> express control flow which can only be done with gotos at the outer
> level, even if we fully intend the compiler to fold the two together.

Fair enough.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 10:35:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 10:35:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841311.1256796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4Wh-000489-Gg; Thu, 21 Nov 2024 10:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841311.1256796; Thu, 21 Nov 2024 10:35: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 1tE4Wh-000482-Dc; Thu, 21 Nov 2024 10:35:07 +0000
Received: by outflank-mailman (input) for mailman id 841311;
 Thu, 21 Nov 2024 10:35: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=r7dD=SQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tE4Wf-00047u-ND
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 10:35:05 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20609.outbound.protection.outlook.com
 [2a01:111:f403:2414::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43f4f40e-a7f4-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 11:35:02 +0100 (CET)
Received: from MN2PR05CA0022.namprd05.prod.outlook.com (2603:10b6:208:c0::35)
 by SA3PR12MB7976.namprd12.prod.outlook.com (2603:10b6:806:312::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Thu, 21 Nov
 2024 10:34:58 +0000
Received: from BN1PEPF00004689.namprd05.prod.outlook.com
 (2603:10b6:208:c0:cafe::6e) by MN2PR05CA0022.outlook.office365.com
 (2603:10b6:208:c0::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.16 via Frontend
 Transport; Thu, 21 Nov 2024 10:34:57 +0000
Received: from SATLEXMB03.amd.com (165.204.84.12) by
 BN1PEPF00004689.mail.protection.outlook.com (10.167.243.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8182.16 via Frontend Transport; Thu, 21 Nov 2024 10:34:57 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 21 Nov
 2024 04:34:57 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 21 Nov
 2024 04:34:56 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Nov 2024 04:34:55 -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: 43f4f40e-a7f4-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNDo6NjA5IiwiaGVsbyI6Ik5BTTExLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQzZjRmNDBlLWE3ZjQtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTg1MzAyLjc5NTE3Nywic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SPMRTSV1EoRy4ib3mwRtmXJJ+n62S4yVl9MyCPajiJwneBJuTHgDIOkjUUMLaPAI8gG+MaJwhqUT+YlHUsoZmsIq9w4MP7v4TScmIVPsfiwxpBWpGE02OEqkh8wj2bNiEDtN07I6FmN8V1I/9AyHymX2/jMGMVCj8SSj7MgPQQ0UKd1qC+E0kpoXATLiGUMjY1e/W7pP50GcpUoCbrf7cG2g9QYmI8bNJ7GWtduyY/kaF+2Va5yc+SoPFTOluqILclcLMWy6jX9XADQOhYmS2tp6TQKdyfqeHHltRgMNz1ivGcVxBwMjrQMmDbyEf1CXbqsfzKnzVZ5+Cv6ElrVc5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nyye7zCAIduZ2SNXx/CiL7pvut+dZo7ljCt3hKJ/hHA=;
 b=YrQHhoNHEGwF9lEzvfV+9EeQp2N6WACKZOWhvkx+9ZstBdwhT3Iqmh0UPjTT/RNOoQTNUoiO/3O8tDajcdlyS9n3g1qpguzDXtSb2XFVdFduYmLUbOtplmTbRjBfOT9IRtJWvOBnyXMHDwGxm3lp20viCVoM9jm05VS18KB7sEsHRjSJcTGbTXb+nWFzLAZjMla3B+5zI0QIpOfKxVAvfCCUEIKB4ce+tIwF7sJmAiLpKVtO5/Thz0YE9sZEOyqanNvmFKCM0X/UG9iXoFqnBbv4BpRddIsxoFRC8or5h0TcZe/n9llCIPzFDFWu8T5gexRtLjDGMBVnws6ZeuVXjw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.12) smtp.rcpttodomain=amazon.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=Nyye7zCAIduZ2SNXx/CiL7pvut+dZo7ljCt3hKJ/hHA=;
 b=QiKj0+8POAjaHig3ZTY7AsgzSQirZZ1ZOQAzBgE/7vaaz4nIok3UGkF7L71Xzy024mXUZJBxmOKlpAaS0W1j+f5ASK0Ie5Q8ROzjIzrm7hr4cDGwSAL2iuevg7AxkjvfoM1xQVecBK1vLRPiDNEC2ceRljxD2o91o8nxdpa8xo0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.12)
 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.12 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.12; helo=SATLEXMB03.amd.com; pr=C
Message-ID: <def0e1b7-69a3-4158-a8f8-cb5de82b83bc@amd.com>
Date: Thu, 21 Nov 2024 11:34:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH V4 12/15] xen/arm32: mm: Rename 'first' to 'root' in
 init_secondary_pagetables()
To: Elias El Yandouzi <eliasely@amazon.com>, <xen-devel@lists.xenproject.org>
CC: <julien@xen.org>, <pdurrant@amazon.com>, <dwmw@amazon.com>, Julien Grall
	<jgrall@amazon.com>
References: <20241111131148.52568-1-eliasely@amazon.com>
 <20241111131148.52568-13-eliasely@amazon.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241111131148.52568-13-eliasely@amazon.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004689:EE_|SA3PR12MB7976:EE_
X-MS-Office365-Filtering-Correlation-Id: 46a57a13-78ca-459b-6995-08dd0a182543
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aEh6c1QvTW0xVHVEMzdIUjhhNDFZcG1hUEg1eUdwYXhTVjdPQjgzbFdoZnEv?=
 =?utf-8?B?SFdwVzZRWTYvdHBLUEx6Vk14T2FvUVo5Z0REazZ4Y3lpSFBnZyt5VmNOSnhx?=
 =?utf-8?B?VjBUdjJPa1JoT3l1d1FnaTlrNkZJTXltM0t2dVJsYUpUVCsxVmIwV3FRdXZJ?=
 =?utf-8?B?LzlCdG1YYUI5OUcwSTlFK1FvczdnV3RIV2NLbTNpcHdKMmpjeWowSmluYlNV?=
 =?utf-8?B?Y3VuTHpaN0cyL045NGhPSHpmVzRJMks0dG84czVEMFdzWFVjanIvbXQxWDRo?=
 =?utf-8?B?ZGlZZG9yQ2FKSG5DQVNyMDJId09uN0JWbnBwN2VtSXQrK0d5b0huZkNjbFZj?=
 =?utf-8?B?YWpXVmxLbFBoMHd0N1RJWktRdTRRamVVRVk0UlJZMEVpSm1ZTURuWkVMRkVL?=
 =?utf-8?B?N1I5WVZCbDRPbHprZHpSOUZPU3FtQitnekRpRVIreFdvUUowME5vSnBPOU03?=
 =?utf-8?B?QmZFcFpHYUhQWUtoUEMvNGRST0JkRkIyV0g1WklINVVEcEd0TVMyWG9mam5a?=
 =?utf-8?B?VjRnYVFOYVpsRktRY1huL2ZQeUlaSGthTjJqbDRUOFZkZ0h0Yk1rbEdSdjlO?=
 =?utf-8?B?VGR5NWZDV2x3UFRLL1lFRlo2UnU3S2pBZFFlaDFWc2NmSDNVZ3Z5UEd1bDlR?=
 =?utf-8?B?TjBPWDNma1dQVG5kaWNNSkwrb2VXT0pjZXR4VXo2MzgyRzRiMk45bUt3Rlc4?=
 =?utf-8?B?T2hnWVFxTXlmaUJ0R2JoSStpYVBJbzVDcEZCK2N6SXJrT0FVdVJwUlhJZkRi?=
 =?utf-8?B?UWRUaFhXcmFBSXFuK1MvVXRiMjh2ZmRac1c1TVpGWU1jaWgwOHhxR3VnMzJr?=
 =?utf-8?B?K2h0VmpDZWdzek9GRGhLV1BrbjNGQi9vdVM3czd3aVRoeDZlNWhzT2dEUTNv?=
 =?utf-8?B?RzJKOTV1NjlOK0hZbERGZ3VHSTF2b25HY2c3MnM5b1JyOUZDbTRqZDlKQjhI?=
 =?utf-8?B?SkFQZ1BSR01qeVpNcnV0a05BZHUxVXZhekNHMlFzTGFreUROeldESWZ3QTNC?=
 =?utf-8?B?eFdTYTYwY3BrU1ZIOHRhK3dUVVJubDRLZmZvMXhGWW4wcXJpV3FzYXU0Nmxw?=
 =?utf-8?B?dGwxYWRxcCt4ZExCSlhaN0tYdXk1YWtnem01a1VzckNLNHJpd3BJc2NINGtS?=
 =?utf-8?B?L1QxcGErZXdDWTBWY1lndUY3d2ZRbEQ3V3BJTDZrNHk5QS9yTEZWZzRyODdv?=
 =?utf-8?B?dkxjblZ1dU05Y3F5UWlvSjdNWjlCdVArTXRuRUJSRnpGbklMc2ZROXVyMlFT?=
 =?utf-8?B?K3B6RFhBczIvSFZqYXBWQWlUbU9PWnhQTkRjVFRBbXpZeGsweDh0NWQ1UXNR?=
 =?utf-8?B?Tkpla1I0cnNaWWJBV1FRa0tuOWxDQjJ2TVJjcUZSOWk0YStLME5mWlR4VUZo?=
 =?utf-8?B?YUFjWXdDb1JiWlEyVlgwNTZQemtIWlRHcy8waUFpSU5qMWxvdGN1SU1hUnRt?=
 =?utf-8?B?ZVJmSG1iWjR3YjR0SXlIQ3V2d2p5NnB2UmRTUFBVK0xtT1hmclJEalFFR2Fh?=
 =?utf-8?B?N25CV1diMlF2YzRuVlQ4NTQvdHBwRUU1aHNMTmxkc1hkbXZHbFdla2Q1TFlQ?=
 =?utf-8?B?aFBXSTZhTDF0bTlIQysxN3owWEFKV1ZSczliaFFYcU1CRW85Qmg3bWV1UTB4?=
 =?utf-8?B?OEdicDJYVCtwZS9MVHpMYVZCZGlpMEJwMlZuakgxa3dVRkNxNC9ob0dqRTZ2?=
 =?utf-8?B?anRIZEVDRUE2d202TCsvYWx5TzdCMktuVU1rdXJtWHl1NGgyYlZ0NDRvbnFE?=
 =?utf-8?B?ZE9DVzBIeFVjUkJKSmNMdi9tcmwrQUxUb2RpL0FlT2JZSWh2TzNTNG5WU1pG?=
 =?utf-8?B?R2JLN2JsOUdEV0ZnbXBmRmgzcHlWVFpkSHU2U0VCT2hBOC9HZ0tLTWVpSTRD?=
 =?utf-8?B?VlMxRHBoR0s4VWRyOFpJWDA4MHRGaGw4L0dVNG5LeVltOHc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.12;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:atlvpn-bp.amd.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2024 10:34:57.6365
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 46a57a13-78ca-459b-6995-08dd0a182543
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.12];Helo=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004689.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7976



On 11/11/2024 14:11, Elias El Yandouzi wrote:
> 
> 
> From: Julien Grall <jgrall@amazon.com>
> 
> The arm32 version of init_secondary_pagetables() will soon be re-used
> for arm64 as well where the root table starts at level 0 rather than level 1.
> 
> So rename 'first' to 'root'.
> 
> Signed-off-by: Julien Grall <jgrall@amazon.com>
> Signed-off-by: Elias El Yandouzi <eliasely@amazon.com>
> 
> ----
NIT: 3 dashes instead of 4. Otherwise this will end up in a commit msg.

This patch can be merged right away as it's not dependent on other patches.

Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 10:49:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 10:49:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841323.1256806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4kz-00063t-FC; Thu, 21 Nov 2024 10:49:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841323.1256806; Thu, 21 Nov 2024 10: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 1tE4kz-00063m-BO; Thu, 21 Nov 2024 10:49:53 +0000
Received: by outflank-mailman (input) for mailman id 841323;
 Thu, 21 Nov 2024 10:49: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE4kx-00063g-9n
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 10:49:51 +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 532a4362-a7f6-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 11:49:47 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-53da3545908so819555e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 02:49: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-433b4643194sm50113525e9.40.2024.11.21.02.49.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 02:49: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: 532a4362-a7f6-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1sZjEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjUzMmE0MzYyLWE3ZjYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg2MTg3LjIwMDQxLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732186186; x=1732790986; 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=fY/U65CTknhe6PuAffa5IRGg8E4YaKHX+C5Pzh5N4To=;
        b=BaqUzKSLUKuEQhD+9rf6IQkk2bd/GH5m9auTJykJAK4WR2+Fze0xKuySmjF3+6uAyt
         S2Z/1VKu/3aSiYu0FeOohjmHecdwqW2FQ3uUO95ng7IoGgljrp5pBOzv3LK5ghYGjjz3
         qtLoOjttP/16tOzsIx1rx1/LS1N5xQyYDG1Gtk2Q5i3979AFJxn45mN/7MxSxoWuXeLH
         Uz+Eozwu8wmE4noiSKzODaMcPeXIq3ggGlXYxpmxUksI7X4sU0qMg8stRSJoW81NpIst
         wPStS+1wH9DbjD7qgx7JGqaYzEXTnJbyY8ipA55tPKVL/O/VeDyIOqQ6iQ9O7qHeLzsR
         ruPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732186186; x=1732790986;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fY/U65CTknhe6PuAffa5IRGg8E4YaKHX+C5Pzh5N4To=;
        b=sxTCdMyk0Y2rmzXaLQDPcL5IHUGbmOmM2myz9qbv2n5i6qVcFWFUjTR0cTyMfIQCa6
         Ka5Tl+62rkkef4+0urc6beC8f/+ANStkZ5Hfqz46gYZHHVsSEvQcgt8aZi2ztPtYp0TZ
         lJaFn9dVtOaHoe1hxZ1SU+59AO/J5P9AsRNk5t+ilzx72c3un92OdqL9a/i3QGL8jnZP
         4gaGGd9UGHK1s1vTK123Alkp5PSfFTa6T6dlqwfroZ3iGyQNSLqVAid5rd/dBZ1nKXJi
         kZILXT8hVj07tBwh5L0yguW3BG/i2zbAr+ml+3tmti2WsHE3hT31piK26fZNHrfN52TW
         L1Kg==
X-Forwarded-Encrypted: i=1; AJvYcCW6hacUK8ylJ2S6Oe19a3x2vceJQqn6g7SqmsFkQjJ629v0CKxLbvf6/iUTZB7lBw+ox/agcDUIKjk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQHyYWMnAzn5AsvTCdL8/e7c7VSmkk0Ql3kF8gh3szLGTsu+ch
	vDeo7u8vg1eNouj1O8r3pwamFvYfFKuVvlAnbX69IkhvE221LdOSJxFf9WQPlg==
X-Gm-Gg: ASbGnctjmGrZOc2RjxFYj9eIU0Zfzif1e5JXlxpTS2y2Bep4vbrK6Ycby++YnsP9jqH
	ITtzDSlnwO6IpXXSERzhEW8oPLRYKQAgc5n5guTsj6PEoET+y17tHtNvy5lBUo9iwZQ6zxmK90r
	sX/oXyc+hjwQ7FYCE5bsgIykcGSGlSC4pFpnWXyYtYfdBlDFyyazNIrwPnIZgLrkuA31b6Ziibe
	Aa9DkU269q2gTTV4OENZ8N79F7chnsSbfaberLKe7k4YT1mpLHfuMqyjNqdGdTx6F75rBaDOaKE
	dBRy6gwNJn6NeGFGHvM3Mqge7Er+Vx31vvk=
X-Google-Smtp-Source: AGHT+IEieXfPBjWaix4OmNIlTdoFR3WuCaYfN9gPEE+Xz60eMFN52iDIPyklR7mIkQBcQe4zraejXg==
X-Received: by 2002:a05:6512:20a:b0:536:a50a:3c25 with SMTP id 2adb3069b0e04-53dc1328c39mr2333975e87.12.1732186186549;
        Thu, 21 Nov 2024 02:49:46 -0800 (PST)
Message-ID: <b849f46d-501a-4083-aecd-fdf0c4319eda@suse.com>
Date: Thu, 21 Nov 2024 11:49:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/irq: fix calculation of max PV dom0 pIRQs
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-2-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: <20241120113555.38146-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2024 12:35, Roger Pau Monne wrote:
> The current calculation of PV dom0 pIRQs uses:
> 
> n = min(fls(num_present_cpus()), dom0_max_vcpus());
> 
> The usage of fls() is wrong, as num_present_cpus() already returns the number
> of present CPUs, not the bitmap mask of CPUs.

Hmm. Perhaps that use of fls() should have been accompanied by a comment, but
I think it might have been put there intentionally, to avoid linear growth.
Which isn't to say that I mind the adjustment, especially now that we don't
use any clustered modes anymore for I/O interrupts. I'm merely questioning
the Fixes: tag, and with that whether / how far to backport.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 10:55:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 10:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841335.1256816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4pt-0007tP-5A; Thu, 21 Nov 2024 10:54:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841335.1256816; Thu, 21 Nov 2024 10: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 1tE4pt-0007tI-2D; Thu, 21 Nov 2024 10:54:57 +0000
Received: by outflank-mailman (input) for mailman id 841335;
 Thu, 21 Nov 2024 10:54: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE4ps-0007tC-8z
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 10:54:56 +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 08e1f50f-a7f7-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 11:54:52 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3823e45339bso590972f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 02:54: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-38254933d39sm4750361f8f.83.2024.11.21.02.54.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 02:54: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: 08e1f50f-a7f7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA4ZTFmNTBmLWE3ZjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg2NDkyLjE1NjAzLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732186491; x=1732791291; 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=54Bo96MKWLNTw6NxwyaGGj7N9kGQ6B+p66118aKot90=;
        b=EKJIgwmcWYW/ont0eEQfjO7a6gbfUeeoUoXZdzIQB1Qd3R9cp8W3jdmpmhV1aRvu+1
         ARD/lfamL3odSMb89Da+f/NThO5N0BmBhyoBKk97K9OJrQBCNJwF8CkSOfYgt4Bll23C
         Ef9ddApgQk8NQo8fRP4ckNU7z2ODpYn/u3jSnijTLPDHmPg08YcWWr9gZsnrPIigeW8Y
         rbf42KfwNmc6pjr2GznUsB7TRGBPuaV/TBXZ5S0ouHbI7sjs6ihf4agzw+ZMXfAemt6z
         CAqZjo5Y+ilkS3qlgIeasLVrYkcbkFJmiugUCTyTPdllU7b+ZycIygOsTgdydPw2Eub3
         5bLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732186491; x=1732791291;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=54Bo96MKWLNTw6NxwyaGGj7N9kGQ6B+p66118aKot90=;
        b=ukU1aS8XCwtSw4KB4kqw7twxlsq62jnipUpQ4W4HjfgP0kGiUSk/x9t/kthz0ha/ky
         blxw25USmKfWmZUxmz3Wn2/6kgQNmKNu3WWLh1rFrXihXRzNPu0y3U+kCUHCCpPjbV5I
         GY/RIDcv9U3zWrVhskGnf8eqhki3/QzID865MRL9+fUfbmAKrCf0qQbBHP3ighy0amRR
         cMguBRHxE1KhR/3+idYfY5R3cxzn/G+tZLKdvi338kBF+0CXhuiaqNAhWK2I47bzwF8I
         Jod+sQyZA2FaNHeWuSjdb+zd7hCVxR4jy7tF8A+N7MvPuYorltsOPkAbCbevwC9aXxmq
         Mc/A==
X-Forwarded-Encrypted: i=1; AJvYcCWWgSxvMgp0Sge1k3ECkogrDxWrihWpbYENsFkK6DS5KlZjMIsq2UQcNIMhm/klICthjPKWCu3/Irg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4vY9PmIV/ErN2AKyNoiyTrDocQHaLQ9wmC3Q2AFBGDFGKyChB
	cXRUwHuEGd6Y5i/U0IaHI0wkO0/znOuRp5Jo6ybbu7E51gX8O4O2xmVtMG1kUw==
X-Gm-Gg: ASbGnctlyPPYpFmWx5a4SFDiSZaryQZ1uXbepEfGrZQaUEUUV3z47bGivo0OJmDyWWF
	Mj+BNeIxXKWvWaBhzCWs16BQjV6XbkdUMTK69aJyc6dDQG180Y28jpqE8EkxLRthuSFmmgEyCrb
	GEc+Fxsm0zu4EOrLCKOWX4u1uylfnzvP1fy6cyN228vTTPkoOR820jyzkH8cUS4KkpLPqRwSZXf
	SF6LOyeokviP7whGvwwn4B6os/g8BpBK7kanjwU7FJEky/8ppR0X/a28PJOMSP1YeRhJwp2azsC
	IeP9ZIOb18lUUfL39Nfe5uS7n0rnonUMQCo=
X-Google-Smtp-Source: AGHT+IGTW4zYU0NipV/07Q9JtqqvJqVAW9hJYON/sKBOZTAZSvwG5/qr1++FzRAsvpdNdOGCZQmCJQ==
X-Received: by 2002:a05:6000:2c8:b0:382:2e9e:d688 with SMTP id ffacd0b85a97d-38254b290bfmr4891291f8f.51.1732186491485;
        Thu, 21 Nov 2024 02:54:51 -0800 (PST)
Message-ID: <25fb7dfe-50e0-446a-9057-050fd3c2edb2@suse.com>
Date: Thu, 21 Nov 2024 11:54:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/pvh: also print hardware domain pIRQ limit for
 PVH
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-3-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: <20241120113555.38146-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2024 12:35, Roger Pau Monne wrote:
> Do not return early in the PVH/HVM case, so that the number of pIRQs is also
> printed.

What you're printing ...

> Fixes: 17f6d398f765 ('cmdline: document and enforce "extra_guest_irqs" upper bounds')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/arch/x86/io_apic.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
> index bd5ad61c85e4..d9db2efc4f58 100644
> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -2754,11 +2754,13 @@ unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
>  
>      /* PVH (generally: HVM) can't use PHYSDEVOP_pirq_eoi_gmfn_v{1,2}. */
>      if ( is_hvm_domain(d) )
> -        return nr_irqs;
> -
> -    if ( !d->domain_id )
> -        n = min(n, dom0_max_vcpus());
> -    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
> +        n = nr_irqs;

... is rather the number of IRQs we picked for the system. That may happen to
end up being the upper bound for PVH Dom0, yet not logging this at all was
because of the limited use pIRQ-s have there. Granted at the time I was still
under the impression they have no use there at all, so this isn't really an
objection to the change. I would have been nice though if the description had
mentioned why significance pIRQ-s actually have in PVH Dom0.

Jan

> +    else
> +    {
> +        if ( !d->domain_id )
> +            n = min(n, dom0_max_vcpus());
> +        n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
> +    }
>  
>      printk("%pd has maximum %u PIRQs\n", d, n);
>  



From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:04:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:04:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841346.1256830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE4zD-0001JJ-3B; Thu, 21 Nov 2024 11:04:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841346.1256830; Thu, 21 Nov 2024 11:04: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 1tE4zC-0001JC-V7; Thu, 21 Nov 2024 11:04:34 +0000
Received: by outflank-mailman (input) for mailman id 841346;
 Thu, 21 Nov 2024 11:04: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tE4zC-0001J6-9A
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:04:34 +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 60598ab0-a7f8-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 12:04:28 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5cef772621eso1017214a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:04:28 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cff5fc4c81sm1669080a12.74.2024.11.21.03.04.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 03:04: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: 60598ab0-a7f8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYwNTk4YWIwLWE3ZjgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg3MDY4LjM2MTA3Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732187068; x=1732791868; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=gKWTJKkOXf+hc7colOQ5XONjN0bpky/NtpvB9PGwIEI=;
        b=FUknSULt7ZF9wgVdxuQ79mX9VhdB2Zp+2n5kCqWNIH630f3uCL5bCcWIPaKZWdPSx6
         pf7apgJebxMtGBKT50cUcXO0i/cYfmGBx2Aj+0uHqhslGQ1jdbhymdNpU/Uf++V+l7QT
         Bp0rw5ATdpDMmxiK58xzJcJiv0KDIoxAOn4hg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732187068; x=1732791868;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gKWTJKkOXf+hc7colOQ5XONjN0bpky/NtpvB9PGwIEI=;
        b=mXjAPIaUO3UrF2kXCBd1Psofd6vqpZxc1JhHasRROfsqVyfeM1CUAnHOqrhA+9uUM+
         cSuEwT4Lt8pq47LXO+QQr3QR2mQntPJaqB2KSaiIbl/DeFXwbf9/mL4MVIgOIe4JtZaQ
         yMHiFzqrMtj+4dupA98pIQL7K9KwmdrsRvrlE/OL6KfVksK9HF90VlFQGjctX0yhd4ja
         ew5c2VEVaqQk4HqJ+M8kSWxqPNDfTRK+oTBjUTefyDVHMdug5fz+v1Sk9F/hlJRQXb/F
         Dj15NNiMf+oKVTZKJbxDp6pSzL5rOdcd+o73TPklywLcsaGkOAchqmXS2EI8zllWBIdf
         zEKA==
X-Forwarded-Encrypted: i=1; AJvYcCWTV/L2CMUvYX2VahKDT/PcPQG4BS5emFtvB9fR48B+oPqA8lTmF9+9RWbhT1JiMxh80LXqtURQqxE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzv9eKaeRk2F30JGIgRWDyoNPBM9oka7lnW5yxgDuiEjEB5FMsh
	fcP1Kt+rh1ZJWair8bs+a/WKRZmI6nvlrPg9Ow+I3/3YMvOVZKtkhgkbVC9dklU=
X-Google-Smtp-Source: AGHT+IFkT9NNIPJqtMfmoLh8Zw23JSWyh4tss8meXHSfpoShQis73sWaRozMJSBRsqdOmpMvo1L0og==
X-Received: by 2002:a50:d79b:0:b0:5d0:a43:cf40 with SMTP id 4fb4d7f45d1cf-5d00a43d055mr1079044a12.4.1732187067759;
        Thu, 21 Nov 2024 03:04:27 -0800 (PST)
Date: Thu, 21 Nov 2024 12:04:26 +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 1/2] x86/irq: fix calculation of max PV dom0 pIRQs
Message-ID: <Zz8Tugu22NPzAQUo@macbook>
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-2-roger.pau@citrix.com>
 <b849f46d-501a-4083-aecd-fdf0c4319eda@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <b849f46d-501a-4083-aecd-fdf0c4319eda@suse.com>

On Thu, Nov 21, 2024 at 11:49:44AM +0100, Jan Beulich wrote:
> On 20.11.2024 12:35, Roger Pau Monne wrote:
> > The current calculation of PV dom0 pIRQs uses:
> > 
> > n = min(fls(num_present_cpus()), dom0_max_vcpus());
> > 
> > The usage of fls() is wrong, as num_present_cpus() already returns the number
> > of present CPUs, not the bitmap mask of CPUs.
> 
> Hmm. Perhaps that use of fls() should have been accompanied by a comment, but
> I think it might have been put there intentionally, to avoid linear growth.
> Which isn't to say that I mind the adjustment, especially now that we don't
> use any clustered modes anymore for I/O interrupts. I'm merely questioning
> the Fixes: tag, and with that whether / how far to backport.

Hm, sorry I've assumed the fls() was a typo.  It seems wrong to cap
dom0 vCPUs with the fls of the present CPUs number.  For consistency,
if the intention was to use fls to limit growth, I would have expected
to also be applied to the dom0 number of vCPUs.  And a comment would
have been nice indeed :).

In any case this is hurting XenServer now: we got reports of pIRQ
exhaustion on some systems.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:08:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:08:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841353.1256839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE538-0001sv-IU; Thu, 21 Nov 2024 11:08:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841353.1256839; Thu, 21 Nov 2024 11:08: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 1tE538-0001so-Eo; Thu, 21 Nov 2024 11:08:38 +0000
Received: by outflank-mailman (input) for mailman id 841353;
 Thu, 21 Nov 2024 11:08: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tE537-0001si-3o
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:08:37 +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 f3113674-a7f8-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 12:08:34 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9a977d6cc7so53880466b.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:08:34 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f431890bsm67837766b.135.2024.11.21.03.08.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 03:08: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: f3113674-a7f8-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYzMTEzNjc0LWE3ZjgtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTg3MzE0LjQ5NjY4NSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732187314; x=1732792114; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ROnYd64rE6h4KD6m2oKnsy8stDQbnXo/C9dYZHNhfRE=;
        b=sYswj+xQPRRCshtQhZmci20GXooVXanD0ZmbsfpcPzPshlkyu9sns4DA/168yXu8jV
         zhbX8PSXc80sEJlbidCEJ3PSgNM32F81nmkaj/j3JxogrZksJ9pe9rtb36qvlvm+rm7O
         /NP0nMzpD2DtxA6m8TubAc4EHwlX9/LywaIo0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732187314; x=1732792114;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ROnYd64rE6h4KD6m2oKnsy8stDQbnXo/C9dYZHNhfRE=;
        b=GVj6uabnQHFTUViGEPfKo9UriF0Ma46r08Pp45FeqZdVbuCf6i/oL7iRgBMZuOj+/t
         SlTTYexarOR94sUUO0LLC/m5TG7kpDPSdvO//WCZspFZ7xXyytvvpylFpnWSc6IjywqF
         8+0nt+8wrfIBr/jantP7a6HHBwzWiORgaxGnpjrpZ+dWCKhzV23ukpp10OkKc5O1M77l
         IvZ6GAE5Hxd8/vkPsSJv1CIAb95T1dSncm2BEmnye1X3JwAqJ+TIvtens9fY4rzrdYlK
         sXBRhlRmC8M+B05Yt+oK+uEBE+zCAvfCDu4tKvr4gMa1iyUsYGblpXsHgw+kPFrNTLGp
         5rdA==
X-Forwarded-Encrypted: i=1; AJvYcCV5+XQgY2TSZ9IYS1fa4uYpnaF7sYL1GEAQ/oUZpmX2CvSf8SXBntGIoLLI2I7wJHplBUi+35aXwLw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIfFtV1vwOJ5+D+UwiXsqEbDQhFWl6PIW2kvECRAiP4E2c95e6
	QTcuLS6Gn3uQ+frbNGV+TRaNFDgh/CNDT+/wUqF2eGh/XpxKqD9keOi6K+1sLux1DAmyOIdl1ZS
	R
X-Google-Smtp-Source: AGHT+IFdLI6UfhBlCJSUTheHCByZVCa38MAICxrCnUia6H1Z7HDVQLE0qxsrf5bJkSlYckrk0e2GtQ==
X-Received: by 2002:a05:6402:274b:b0:5cf:c22f:524a with SMTP id 4fb4d7f45d1cf-5cff4b1440bmr6050878a12.8.1732187313558;
        Thu, 21 Nov 2024 03:08:33 -0800 (PST)
Date: Thu, 21 Nov 2024 12:08:32 +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 2/2] x86/pvh: also print hardware domain pIRQ limit for
 PVH
Message-ID: <Zz8UsJ4nJXyExQ53@macbook>
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-3-roger.pau@citrix.com>
 <25fb7dfe-50e0-446a-9057-050fd3c2edb2@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <25fb7dfe-50e0-446a-9057-050fd3c2edb2@suse.com>

On Thu, Nov 21, 2024 at 11:54:49AM +0100, Jan Beulich wrote:
> On 20.11.2024 12:35, Roger Pau Monne wrote:
> > Do not return early in the PVH/HVM case, so that the number of pIRQs is also
> > printed.
> 
> What you're printing ...
> 
> > Fixes: 17f6d398f765 ('cmdline: document and enforce "extra_guest_irqs" upper bounds')
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> >  xen/arch/x86/io_apic.c | 12 +++++++-----
> >  1 file changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
> > index bd5ad61c85e4..d9db2efc4f58 100644
> > --- a/xen/arch/x86/io_apic.c
> > +++ b/xen/arch/x86/io_apic.c
> > @@ -2754,11 +2754,13 @@ unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
> >  
> >      /* PVH (generally: HVM) can't use PHYSDEVOP_pirq_eoi_gmfn_v{1,2}. */
> >      if ( is_hvm_domain(d) )
> > -        return nr_irqs;
> > -
> > -    if ( !d->domain_id )
> > -        n = min(n, dom0_max_vcpus());
> > -    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
> > +        n = nr_irqs;
> 
> ... is rather the number of IRQs we picked for the system. That may happen to
> end up being the upper bound for PVH Dom0, yet not logging this at all was
> because of the limited use pIRQ-s have there. Granted at the time I was still
> under the impression they have no use there at all, so this isn't really an
> objection to the change. I would have been nice though if the description had
> mentioned why significance pIRQ-s actually have in PVH Dom0.

Sure, what about adding to the commit message:

"While PVH dom0 doesn't have access to the hypercalls to manage pIRQs
itself, neither the knowledge to do so, pIRQs are still used by Xen to
map and bind interrupts to a PVH dom0 behind its back.  Hence the
pIRQ limit is still relevant for a PVH dom0."

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:12:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841365.1256849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE57E-0003Vw-3M; Thu, 21 Nov 2024 11:12:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841365.1256849; Thu, 21 Nov 2024 11:12: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 1tE57E-0003Vp-0O; Thu, 21 Nov 2024 11:12:52 +0000
Received: by outflank-mailman (input) for mailman id 841365;
 Thu, 21 Nov 2024 11:12: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tE57C-0003Vj-1i
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:12:50 +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 895967f3-a7f9-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 12:12:46 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9a0ef5179dso143634766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:12:46 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f4152b6dsm68468266b.7.2024.11.21.03.12.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 03:12: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: 895967f3-a7f9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg5NTk2N2YzLWE3ZjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg3NTY2LjY4ODI1Niwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732187566; x=1732792366; 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=tfW8sK5CwWflaMl6LKuOhOmD5Yp50rt2vxii7w2V5/s=;
        b=LyIzyMUXPNryhXfA9HK5pJeZ9WH62VUaOYi6PzCWVK+2KvlEhKrHcwufWnUwhgnOAp
         xFApZhvcH7ufSD9JrsG+YFBRV7xA7L154XRuNX/ydgv1NKVeWzeO72ALoKDdCFLCAKuS
         +WicH/FkU2iFlnp1WJSJV/e4C9LzfD0sfkshU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732187566; x=1732792366;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=tfW8sK5CwWflaMl6LKuOhOmD5Yp50rt2vxii7w2V5/s=;
        b=D161E69t2SfJnaNHe+4I77XL8GcHVQcmna0vS78qOOz67XBDeLpo1VQSiFKy9kPMwq
         HTcNRCpoyTieUw7AhGjMla7C6mxCiWf6K+ZBawljWndF4M42xREzD522fvZ3/vb3kK9O
         7bqTuoPEFGg+X4dbTzXu4hgx0BT3zyQAxI3qbg9XcJtw9Oj4Qm8su7dD6hsVJv28hTHf
         9KDtAv01VfgmyRQQb+LDyYHtsbINk2/Ao+SCC6T5TPokl0e3+sn+wIDUCjR5w/1D1oH7
         7zacdzfdOgDEaPdRH87g9VFX2CoRqCNg4FVNsUnI8PMvij2WSf6aG0+JlbyRAnLfGyf8
         CUZA==
X-Gm-Message-State: AOJu0Yw/FtfFBjSJRTr1PRNHX5NlEeioOP8xO9mjNXLr5JswKN6m+DFk
	MLJeihe/oFF1qqgSNlEv/J0thZv2PswuJBOG67C8IFNFX9S034X40tNT4PoeLhQm4t74iJErimR
	n
X-Gm-Gg: ASbGncujHJ5qGQ5GoVTzJ+Je0dK76FIRQCV3MszmUkDN7tW6lD4IapgNPvuAN2yhncl
	X32Y0GCYh3GXuFtCkEitekCpY1vQN8KWpcX5xFyGHNzpcOSQWItG8FwIjbttOQNV0hHAVF3qVHT
	FLc1Uqou+eupiJILR4s6x9SoI0lcdoqMmvAMcK0HZCH8aQtRzbUxxYwNzns2v7sPMSoi7/83ad6
	w4ZWSHPvktiQBxYxLkp3H4LDTLzuojbgtGMRgIeTmVWPTBIvWxC/ur7wkY=
X-Google-Smtp-Source: AGHT+IHRF2CXIiAi+N3StihUf8aAGLidqvRRyY5TSCgv/k5EI2l7sqT6fWhj+z6oIsvRZ6wA5qyPkw==
X-Received: by 2002:a17:907:2cc2:b0:a9a:bbcd:e63 with SMTP id a640c23a62f3a-aa4dd54842cmr620018666b.14.1732187565771;
        Thu, 21 Nov 2024 03:12:45 -0800 (PST)
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/pv: limit GDT and LDT mappings areas to max number of vCPUs
Date: Thu, 21 Nov 2024 12:12:18 +0100
Message-ID: <20241121111218.50984-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The allocation of the paging structures in the per-domain area for mapping the
guest GDT and LDT can be limited to the maximum number of vCPUs the guest can
have.  The maximum number of vCPUs is available at domain creation since commit
4737fa52ce86.

Limiting to the actual number of vCPUs avoids wasting memory for paging
structures that will never be used.  Current logic unconditionally uses 513
pages, one page for the L3, plus 512 L1 pages.  For guests with equal or less
than 16 vCPUs only 2 pages are used (each guest vCPU GDT/LDT can only consume
32 L1 slots).

No functional change intended, all possible domain vCPUs should have the GDT
and LDT paging structures allocated and setup at domain creation, just like
before the change.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/pv/domain.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index d5a8564c1cbe..e861e3ce71d9 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -346,7 +346,7 @@ void pv_domain_destroy(struct domain *d)
     pv_l1tf_domain_destroy(d);
 
     destroy_perdomain_mapping(d, GDT_LDT_VIRT_START,
-                              GDT_LDT_MBYTES << (20 - PAGE_SHIFT));
+                              d->max_vcpus << GDT_LDT_VCPU_SHIFT);
 
     XFREE(d->arch.pv.cpuidmasks);
 
@@ -377,7 +377,7 @@ int pv_domain_initialise(struct domain *d)
         goto fail;
 
     rc = create_perdomain_mapping(d, GDT_LDT_VIRT_START,
-                                  GDT_LDT_MBYTES << (20 - PAGE_SHIFT),
+                                  d->max_vcpus << GDT_LDT_VCPU_SHIFT,
                                   NULL, NULL);
     if ( rc )
         goto fail;
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:14:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:14:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841372.1256859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE58q-0004IL-Eo; Thu, 21 Nov 2024 11:14:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841372.1256859; Thu, 21 Nov 2024 11:14: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 1tE58q-0004IE-B1; Thu, 21 Nov 2024 11:14:32 +0000
Received: by outflank-mailman (input) for mailman id 841372;
 Thu, 21 Nov 2024 11:14: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tE58p-0004I6-8K
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:14: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 c49e4e02-a7f9-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 12:14:26 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9ef275b980so131662666b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:14:26 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f42d31fbsm68394966b.98.2024.11.21.03.14.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 03:14: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: c49e4e02-a7f9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM0OWU0ZTAyLWE3ZjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg3NjY2LjEwNTk5MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732187665; x=1732792465; 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=Vshi0zBKDSnXJmh5OBPnmLtzODhuYoL72uY4hMwlCec=;
        b=hjDCqdwQ+m1bHv1aBhTA6HTWfPQW6D5NKhZWuB/bySmR/t82hcXoSzygqEgUL29d81
         CeeVFY7XNNGyrvJmAsVp1qo8Vdz2tderpjDAWmX3VbDilaocEKbt4YT/INGeQeB0RunM
         WGXK67bmZDwcDCT2wf3JRdTKpKwhAl46pkhFE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732187665; x=1732792465;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vshi0zBKDSnXJmh5OBPnmLtzODhuYoL72uY4hMwlCec=;
        b=EJr2BRWMQewJB0QxIihtqWLmUqtlvh+cg57PjvuuIl6FPfPjYpssiMYG1gB34la3DZ
         VgRzD/c1DIZ7yOxgQ4feHPTZ8FU98qu3iG90eIisyV5FMhek7jHTvC2282yObfWjSV03
         0NvXBgowrgQhH2RtxlfUFqybq2xM9FDnUXvxIlSv7A84qc8Dx1dvTD8MtfOtGx+xZSfs
         n4qSx5hGLTy2VH7HPmziuRBrqVoDP0oXzydYwz7YmcSU6qwykziLMniMkoSUUBHlu0TL
         qhV/pi2DLTupE+Rsr2YTYmsQHj4+VYEdCbkMxWsYR4weGdsQiftRv24wCOnLgDMu/OQf
         ySvA==
X-Gm-Message-State: AOJu0Yw9Dyjax7jZqSCBnBsZ2knfDlzzKS8Nk7a5JtrXncgMYDOspTTS
	qY8qXknHdBYr2ivSKw2QEaFJ5DWwLuayo1GEcEv3G1MLbTrw6YhgSL5Kpz8mTF8=
X-Google-Smtp-Source: AGHT+IHwFhkIV3CCOdONAlErrWUbHKTYX88Jw1TxSFhlDDQ/lbRCFc+ZOVwQE8EuL5ESACAhNgbruw==
X-Received: by 2002:a17:906:fd88:b0:a9a:c57f:9666 with SMTP id a640c23a62f3a-aa4dd530d20mr461626566b.2.1732187665549;
        Thu, 21 Nov 2024 03:14:25 -0800 (PST)
Message-ID: <28111c22-e4f6-4714-a112-f07109bb5940@citrix.com>
Date: Thu, 21 Nov 2024 11:14:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/pvh: also print hardware domain pIRQ limit for
 PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-3-roger.pau@citrix.com>
 <25fb7dfe-50e0-446a-9057-050fd3c2edb2@suse.com> <Zz8UsJ4nJXyExQ53@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Zz8UsJ4nJXyExQ53@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/11/2024 11:08 am, Roger Pau MonnÃ© wrote:
> On Thu, Nov 21, 2024 at 11:54:49AM +0100, Jan Beulich wrote:
>> On 20.11.2024 12:35, Roger Pau Monne wrote:
>>> Do not return early in the PVH/HVM case, so that the number of pIRQs is also
>>> printed.
>> What you're printing ...
>>
>>> Fixes: 17f6d398f765 ('cmdline: document and enforce "extra_guest_irqs" upper bounds')
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> ---
>>>  xen/arch/x86/io_apic.c | 12 +++++++-----
>>>  1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
>>> index bd5ad61c85e4..d9db2efc4f58 100644
>>> --- a/xen/arch/x86/io_apic.c
>>> +++ b/xen/arch/x86/io_apic.c
>>> @@ -2754,11 +2754,13 @@ unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
>>>  
>>>      /* PVH (generally: HVM) can't use PHYSDEVOP_pirq_eoi_gmfn_v{1,2}. */
>>>      if ( is_hvm_domain(d) )
>>> -        return nr_irqs;
>>> -
>>> -    if ( !d->domain_id )
>>> -        n = min(n, dom0_max_vcpus());
>>> -    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
>>> +        n = nr_irqs;
>> ... is rather the number of IRQs we picked for the system. That may happen to
>> end up being the upper bound for PVH Dom0, yet not logging this at all was
>> because of the limited use pIRQ-s have there. Granted at the time I was still
>> under the impression they have no use there at all, so this isn't really an
>> objection to the change. I would have been nice though if the description had
>> mentioned why significance pIRQ-s actually have in PVH Dom0.
> Sure, what about adding to the commit message:
>
> "While PVH dom0 doesn't have access to the hypercalls to manage pIRQs
> itself, neither the knowledge to do so, pIRQs are still used by Xen to
> map and bind interrupts to a PVH dom0 behind its back.  Hence the
> pIRQ limit is still relevant for a PVH dom0."

Minor grammar point.Â  You want "nor" rather than "neither" in this
context, because it's introducing the second of two negative things.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:24:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:24:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841386.1256869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5I9-0006Ml-CN; Thu, 21 Nov 2024 11:24:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841386.1256869; Thu, 21 Nov 2024 11:24: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 1tE5I9-0006Me-9R; Thu, 21 Nov 2024 11:24:09 +0000
Received: by outflank-mailman (input) for mailman id 841386;
 Thu, 21 Nov 2024 11:24: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tE5I7-0006MX-PC
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:24:07 +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 1cf6d60d-a7fb-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 12:24:03 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so143484966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:24:03 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f436c412sm68859566b.179.2024.11.21.03.24.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 03: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: 1cf6d60d-a7fb-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFjZjZkNjBkLWE3ZmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg4MjQzLjc5OTA4NSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732188243; x=1732793043; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=0p218K9I9zN5KU5q8757L3mNS/VyiKfWvaj2ATDf/64=;
        b=IroeISjnYYhsvsNyOwWtqbg13Fs8yqqR0ymjQCWf1LeDKmviW58W6KBack9Gx0BZ76
         QWHzjXHirpFByM8cEhox8rpM19tqdbF3uCsuP/MbsCxhz6wRn8o8JD3rjNC1pfz2MLIu
         QP+7Lzwb2GtMrBfvT0Q/cpRGmebddJUbKcYyM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732188243; x=1732793043;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0p218K9I9zN5KU5q8757L3mNS/VyiKfWvaj2ATDf/64=;
        b=f165pSLg1IzZjtRh9HRTMDXr5I9+AT33nXDLMAsqaN2kWHxoZ2iGM+4Ct1LcpEMMJP
         uW8bIey3UH+tc2kw4DFuVyPN9HpJaB0rpX4FfFjJ4arb1qRVELe71Lm1W9s2qPAjWifH
         IcOKeV8orJ2rsZhCzRlVKtHLJoFCFwk01KK1AlRoSskR590fJFQAaNQCQRyY3O7UpgjI
         y/xPbQnu7BKAuC8LcjW3DH8l78mVTX7Kn5uK2fq1IUViH2cVZSHpO7LG/lvRqVRlfNk+
         r2ZUpmQaBQCSNxniSnEYI4ru6GK9/h+k7aB8KGEFtR5hq5dts6II3wc1YIukM83mOluB
         mBmw==
X-Forwarded-Encrypted: i=1; AJvYcCWBUQDZqByyTm1U+iSZZzLPH0oqUyWd9S6HsP6LHEQEvlhPwU7NcGcPnGokSdiB5PaF5kDTC+rhTu0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxrfkK8sWazDlChC02Vpkoq4OaidmpePiFL+cXDncKmmOPNFLbg
	4No8fVrWeVcoBzD57oKEZzRFsS2Uh/p4nBnlxvjUKf74Cub0B9SPZDpiBgRnVL4zvN3KBAk+kcF
	A
X-Gm-Gg: ASbGncuBJUp1PQvJCrbpy8To8qht7LO2khtj8JBHzsp2C/pY5CWLyajAh32oTzStgWv
	vYCKRaNdRuVFovSDGkm2UijJ2iIFLSbb0zlKm6BgOseb49hEXcZQ3rx/z1cpgH4IH8zKzMe6+3C
	ZOoqjo+1eqRZnDA1wwTYCXRXtU0o0ki32T+p3OleLzqp4UM5A6sJTrhgZgFN5Brbncv94JF/B4G
	jUD4/IcZRTzSX2w1qMrZ81nQfTW30lOc5rFmMSWHOEbavLnXRakX42gfjU=
X-Google-Smtp-Source: AGHT+IFdU/Zcpi+MzfLI/6ZH6jzzxttcSEIrazvaCGSNzU9fxV2LoBbcbp7AcvjEM4U+FlKi/c0Cyg==
X-Received: by 2002:a17:906:fe4a:b0:a9a:835b:fc8e with SMTP id a640c23a62f3a-aa4dd748bacmr589226866b.54.1732188243211;
        Thu, 21 Nov 2024 03:24:03 -0800 (PST)
Date: Thu, 21 Nov 2024 12:24:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] x86/pvh: also print hardware domain pIRQ limit for
 PVH
Message-ID: <Zz8YUrSf-asxPGXJ@macbook>
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-3-roger.pau@citrix.com>
 <25fb7dfe-50e0-446a-9057-050fd3c2edb2@suse.com>
 <Zz8UsJ4nJXyExQ53@macbook>
 <28111c22-e4f6-4714-a112-f07109bb5940@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <28111c22-e4f6-4714-a112-f07109bb5940@citrix.com>

On Thu, Nov 21, 2024 at 11:14:23AM +0000, Andrew Cooper wrote:
> On 21/11/2024 11:08 am, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 21, 2024 at 11:54:49AM +0100, Jan Beulich wrote:
> >> On 20.11.2024 12:35, Roger Pau Monne wrote:
> >>> Do not return early in the PVH/HVM case, so that the number of pIRQs is also
> >>> printed.
> >> What you're printing ...
> >>
> >>> Fixes: 17f6d398f765 ('cmdline: document and enforce "extra_guest_irqs" upper bounds')
> >>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >>> ---
> >>>  xen/arch/x86/io_apic.c | 12 +++++++-----
> >>>  1 file changed, 7 insertions(+), 5 deletions(-)
> >>>
> >>> diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
> >>> index bd5ad61c85e4..d9db2efc4f58 100644
> >>> --- a/xen/arch/x86/io_apic.c
> >>> +++ b/xen/arch/x86/io_apic.c
> >>> @@ -2754,11 +2754,13 @@ unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
> >>>  
> >>>      /* PVH (generally: HVM) can't use PHYSDEVOP_pirq_eoi_gmfn_v{1,2}. */
> >>>      if ( is_hvm_domain(d) )
> >>> -        return nr_irqs;
> >>> -
> >>> -    if ( !d->domain_id )
> >>> -        n = min(n, dom0_max_vcpus());
> >>> -    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
> >>> +        n = nr_irqs;
> >> ... is rather the number of IRQs we picked for the system. That may happen to
> >> end up being the upper bound for PVH Dom0, yet not logging this at all was
> >> because of the limited use pIRQ-s have there. Granted at the time I was still
> >> under the impression they have no use there at all, so this isn't really an
> >> objection to the change. I would have been nice though if the description had
> >> mentioned why significance pIRQ-s actually have in PVH Dom0.
> > Sure, what about adding to the commit message:
> >
> > "While PVH dom0 doesn't have access to the hypercalls to manage pIRQs
> > itself, neither the knowledge to do so, pIRQs are still used by Xen to
> > map and bind interrupts to a PVH dom0 behind its back.  Hence the
> > pIRQ limit is still relevant for a PVH dom0."
> 
> Minor grammar point.Â  You want "nor" rather than "neither" in this
> context, because it's introducing the second of two negative things.

Thanks!  Could one of you adjust at commit if Jan agrees with adding
the paragraph?

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:26:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841393.1256879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5KN-0006wJ-NM; Thu, 21 Nov 2024 11:26:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841393.1256879; Thu, 21 Nov 2024 11: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 1tE5KN-0006wC-Kh; Thu, 21 Nov 2024 11:26:27 +0000
Received: by outflank-mailman (input) for mailman id 841393;
 Thu, 21 Nov 2024 11:26: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tE5KM-0006w5-Mr
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:26:26 +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 6f3472b3-a7fb-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 12:26:21 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5cfe5da1251so1034621a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:26:21 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cff442a162sm1757172a12.0.2024.11.21.03.26.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 03:26: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: 6f3472b3-a7fb-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzQiLCJoZWxvIjoibWFpbC1lZDEteDUzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZmMzQ3MmIzLWE3ZmItMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTg4MzgxLjgwODY2MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732188381; x=1732793181; 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=Mr/uEuTuwaVtK7fPqMj1nrNWUcYuzlJf5lqdivEiiu8=;
        b=sv5WG2+SCsfDUHxwMBZGdSq05no78MpxarOMzOb/iCXLF5V1Cy7fxpJuu+DBhxHtT7
         6Cp4hgZSn2VQw1Mcl7Pa/RWn8Ml18GRK8DIRu7BLrIGkJkjzZYvtK981wNWd/B7tjLwR
         RlWX+FPzcX8YG4i9cKSKkc8XBfZk1i+B+vnYU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732188381; x=1732793181;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mr/uEuTuwaVtK7fPqMj1nrNWUcYuzlJf5lqdivEiiu8=;
        b=bF00ouNkXZOHBCV3e8O8fcWnUo5V0OELZF9fZEsjhpI2aFGl47PL6C8UwOvuMBIJsA
         JG7ZpYd3HyV52xMGIUHP8HmU0RlYCBWIPwzH9vDXCczq75UDNijp1LflB72uZktQGtk0
         2XZeEUn4Btv0qbYWbKaGXcvMO51mhh+3oJF78NcxBqjC0om+Ae5kHZ12nSlANz26FDD0
         iTZUX2rOzXJqIGCHTgx5Nir1z6TxsysN1xA8J1nzJ0vUUohCMHZONSBARH0HeYkP5CGr
         9nDVAxqYaRFwwXSNFk+lVAHkL25gv371i+1A/rCrCRr7s4vcRIkqwfz+6TekdCCzGk35
         uRkg==
X-Forwarded-Encrypted: i=1; AJvYcCUrup3XW7uYPLigoZyNWbrc9i2wr6hBg4/xQNFJSTTpTtpyQkCFqkb2aOzdlxfqw3UBditNBl+4J9I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yze7wbI8ZGgjSwq+X4x23AbnRWr5l1eexDcQpS+hYUOpyzSgVzl
	zvs0g8oHYxw5vesR6efj3U9FJcZVkKSmrZJgSyRa9lqD7/dUdcayJ401njF3ro8=
X-Google-Smtp-Source: AGHT+IEcdmxGCSfm272Ko8HtpRoWYJdkGIxzeQjM9KMmnHs5/Ryn2EmyDypdbk4gqCDqoT41unT6Sg==
X-Received: by 2002:a05:6402:5253:b0:5cf:9cd1:1f77 with SMTP id 4fb4d7f45d1cf-5cff4c52b03mr3724929a12.8.1732188381144;
        Thu, 21 Nov 2024 03:26:21 -0800 (PST)
Message-ID: <03053e3b-c101-4cc2-9f59-604e84f92ea0@citrix.com>
Date: Thu, 21 Nov 2024 11:26:19 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: limit GDT and LDT mappings areas to max number of
 vCPUs
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20241121111218.50984-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241121111218.50984-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/11/2024 11:12 am, Roger Pau Monne wrote:
> The allocation of the paging structures in the per-domain area for mapping the
> guest GDT and LDT can be limited to the maximum number of vCPUs the guest can
> have.  The maximum number of vCPUs is available at domain creation since commit
> 4737fa52ce86.
>
> Limiting to the actual number of vCPUs avoids wasting memory for paging
> structures that will never be used.  Current logic unconditionally uses 513
> pages, one page for the L3, plus 512 L1 pages.  For guests with equal or less
> than 16 vCPUs only 2 pages are used (each guest vCPU GDT/LDT can only consume
> 32 L1 slots).
>
> No functional change intended, all possible domain vCPUs should have the GDT
> and LDT paging structures allocated and setup at domain creation, just like
> before the change.
>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Ooh, that's a optimisation I'd not considered when doing the work.

But, is it really only the the LDT/GDT area which can benefit from
this?Â  The XLAT area seems like another good candidate.

> ---
>  xen/arch/x86/pv/domain.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> index d5a8564c1cbe..e861e3ce71d9 100644
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -346,7 +346,7 @@ void pv_domain_destroy(struct domain *d)
>      pv_l1tf_domain_destroy(d);
>  
>      destroy_perdomain_mapping(d, GDT_LDT_VIRT_START,
> -                              GDT_LDT_MBYTES << (20 - PAGE_SHIFT));
> +                              d->max_vcpus << GDT_LDT_VCPU_SHIFT);

Probably not for this patch, but, should we really be passing in a size
here?

Don't we just want to tear down everything in the relevant slot?

>  
>      XFREE(d->arch.pv.cpuidmasks);
>  
> @@ -377,7 +377,7 @@ int pv_domain_initialise(struct domain *d)
>          goto fail;
>  
>      rc = create_perdomain_mapping(d, GDT_LDT_VIRT_START,
> -                                  GDT_LDT_MBYTES << (20 - PAGE_SHIFT),
> +                                  d->max_vcpus << GDT_LDT_VCPU_SHIFT,
>                                    NULL, NULL);

I'd suggest putting a note here saying that the maximum bound for PV
vCPUs is governed by GDT_LDT_MBYTES.

Or alternatively, we could have create_perdomain_mapping() fail if it
tries to allocate more than one slot's worth of mappings?Â Â  It feels
like an acceptable safety net.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:27:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:27:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841400.1256889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5LW-0007Vp-05; Thu, 21 Nov 2024 11:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841400.1256889; Thu, 21 Nov 2024 11:27: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 1tE5LV-0007Vi-T8; Thu, 21 Nov 2024 11:27:37 +0000
Received: by outflank-mailman (input) for mailman id 841400;
 Thu, 21 Nov 2024 11:27: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE5LV-0006w5-20
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:27:37 +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 9a2c008c-a7fb-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 12:27:33 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3823194a879so503909f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:27: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-38254949cd0sm4772477f8f.107.2024.11.21.03.27.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 03:27: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: 9a2c008c-a7fb-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlhMmMwMDhjLWE3ZmItMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTg4NDUzLjg4NzU1Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732188453; x=1732793253; 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=jq89gAcKR5aqlGaCYSB4+8DC2hQooPxpX2gMZb1gROY=;
        b=L0cwcwU9UY5skbM80/HXi/fUXHG4QQXJfybql+p82f45CP7OSOZcw1uqzFTVnCsPl8
         QOo0V2xsKEiefXFMZXRsT4Xva+wIkXy4h8GBZ29VeCxsEx2enAMy107KL4Wt2NQoV30T
         Pv5yzpRh6u4cD/hqP4Fy/W/5JryZCzR2P+sqS4nTFv9+rY8/Gz1Yy9MpihIviImvh1kx
         V3A1XDM0jHm8vuYnjfu1ObgjEenYbBGNY3JiDye0KxkMn4URlPQgnSYrg5mX9hVkbkrs
         rzFFdpeJimrbIW0K4SrOrjcBjygdub6hx/bENcB/psVS7XUrf5E2bHK0AvWX6DLFI448
         ONtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732188453; x=1732793253;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jq89gAcKR5aqlGaCYSB4+8DC2hQooPxpX2gMZb1gROY=;
        b=T4hgfZFXvuiiew6ddmAuSm/qBG0kFjRcWNcakg+CYZ1kDbP/kxRA57qlpUwXieuGgc
         yEYdw0lOTvkXwnYSIp0GwG6ePYNi05jtzguI9wQCdM+Wy+yaCEyiOHeXXFghrQZlCut6
         RA21+T8L41vuPP0+XADqgTQr0abFwnWDlAVt/FFak7q7WDqWi9TlO2gsLcAvP0Zmie/B
         VAAIVlrHvG120AQX272ySDKmrYP9eoJj1L0uk6w9/f4yzGynYoeZWF72q//UyAtmjNUd
         KY1/9OkFU7O5k7xtSoIZyguycyD1dCCijM8D5ZDMf8lniJjCYXGBiTiDAhuR+APW6CZn
         7o8w==
X-Gm-Message-State: AOJu0YySLb9go2ffBJKC8Z95AoyRmoVWETeUk9/cxlVIFgMpNzdRN2Zv
	6407o5ptrdaJ7Qcfl8+YsdBYoII6rvSCdTWyoCk3HHK2GtD6gp7jiXkQNnmA9w==
X-Google-Smtp-Source: AGHT+IHRzCLAHhh/ekqkOng6a//shq1A0AxbLuz06GoLr6gA7TTb2mHMadBfbjPKWFS+AV1nOlSQ2Q==
X-Received: by 2002:a5d:64ab:0:b0:382:5af:e990 with SMTP id ffacd0b85a97d-38254b1c8b0mr4367048f8f.49.1732188453417;
        Thu, 21 Nov 2024 03:27:33 -0800 (PST)
Message-ID: <5bd5ded0-65fa-42db-ba73-b4fa44e2466e@suse.com>
Date: Thu, 21 Nov 2024 12:27:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/pvh: also print hardware domain pIRQ limit for
 PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-3-roger.pau@citrix.com>
 <25fb7dfe-50e0-446a-9057-050fd3c2edb2@suse.com> <Zz8UsJ4nJXyExQ53@macbook>
 <28111c22-e4f6-4714-a112-f07109bb5940@citrix.com> <Zz8YUrSf-asxPGXJ@macbook>
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: <Zz8YUrSf-asxPGXJ@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2024 12:24, Roger Pau MonnÃ© wrote:
> On Thu, Nov 21, 2024 at 11:14:23AM +0000, Andrew Cooper wrote:
>> On 21/11/2024 11:08 am, Roger Pau MonnÃ© wrote:
>>> On Thu, Nov 21, 2024 at 11:54:49AM +0100, Jan Beulich wrote:
>>>> On 20.11.2024 12:35, Roger Pau Monne wrote:
>>>>> Do not return early in the PVH/HVM case, so that the number of pIRQs is also
>>>>> printed.
>>>> What you're printing ...
>>>>
>>>>> Fixes: 17f6d398f765 ('cmdline: document and enforce "extra_guest_irqs" upper bounds')
>>>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>> ---
>>>>>  xen/arch/x86/io_apic.c | 12 +++++++-----
>>>>>  1 file changed, 7 insertions(+), 5 deletions(-)
>>>>>
>>>>> diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
>>>>> index bd5ad61c85e4..d9db2efc4f58 100644
>>>>> --- a/xen/arch/x86/io_apic.c
>>>>> +++ b/xen/arch/x86/io_apic.c
>>>>> @@ -2754,11 +2754,13 @@ unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
>>>>>  
>>>>>      /* PVH (generally: HVM) can't use PHYSDEVOP_pirq_eoi_gmfn_v{1,2}. */
>>>>>      if ( is_hvm_domain(d) )
>>>>> -        return nr_irqs;
>>>>> -
>>>>> -    if ( !d->domain_id )
>>>>> -        n = min(n, dom0_max_vcpus());
>>>>> -    n = min(nr_irqs_gsi + n * NR_DYNAMIC_VECTORS, max_irqs);
>>>>> +        n = nr_irqs;
>>>> ... is rather the number of IRQs we picked for the system. That may happen to
>>>> end up being the upper bound for PVH Dom0, yet not logging this at all was
>>>> because of the limited use pIRQ-s have there. Granted at the time I was still
>>>> under the impression they have no use there at all, so this isn't really an
>>>> objection to the change. I would have been nice though if the description had
>>>> mentioned why significance pIRQ-s actually have in PVH Dom0.
>>> Sure, what about adding to the commit message:
>>>
>>> "While PVH dom0 doesn't have access to the hypercalls to manage pIRQs
>>> itself, neither the knowledge to do so, pIRQs are still used by Xen to
>>> map and bind interrupts to a PVH dom0 behind its back.  Hence the
>>> pIRQ limit is still relevant for a PVH dom0."
>>
>> Minor grammar point.Â  You want "nor" rather than "neither" in this
>> context, because it's introducing the second of two negative things.
> 
> Thanks!  Could one of you adjust at commit if Jan agrees with adding
> the paragraph?

Sounds good, and certainly not a problem to add while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:32:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:32:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841414.1256899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5Q3-000103-Hu; Thu, 21 Nov 2024 11:32:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841414.1256899; Thu, 21 Nov 2024 11:32: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 1tE5Q3-0000zw-EL; Thu, 21 Nov 2024 11:32:19 +0000
Received: by outflank-mailman (input) for mailman id 841414;
 Thu, 21 Nov 2024 11:32: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE5Q1-0000zk-MI
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:32:17 +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 41128e37-a7fc-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 12:32:13 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43193678216so7092505e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:32: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-38254933d44sm4919103f8f.76.2024.11.21.03.32.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 03: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: 41128e37-a7fc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQxMTI4ZTM3LWE3ZmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg4NzMzLjk0MDU5MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732188733; x=1732793533; 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=zmNxiIfkePwWBq/8UwHfjCG+tC//fXrMixapAsauELU=;
        b=P9uj1XS7MLs0Hfo9AlcMBTWi2hwLZ1wbwVj/0gU+hEw7wXeQ10/SBBJZcAO5+ibNF3
         FNQP/0WNjwNC6Q4k6NDCEra6iRYJHASFTSJ2lP1NcPzZFaRLxPHIxUMzrXlQXqq7K92l
         YQQBO8HSPPQoeYgOZZFQiuyZDC7eD1hpaDpaI/UTcqG/qIzCRLOm/pvhogfFy/uIp6Cd
         WatnQsKDc3csQNhrtEglmXaAFHLcpHFAYeE6NN0Wz8CLWiFt4whNNSLBYOrvLHm/wO57
         G4kpUX7K0kFY4qC6v/pcDTIISiOthF+8XokTRzFFYlssIY/rW0/95POrBkyHv6ginPaK
         1oFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732188733; x=1732793533;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zmNxiIfkePwWBq/8UwHfjCG+tC//fXrMixapAsauELU=;
        b=GQb9EbdASpsoi7hs0nQS70wWI3rLZZXVf1fTBQyNjYNV8YthawhU9IIg5VlWtpVJVu
         igFWr1Pdzm1YZPhgFnt0zbpTeIj+wmD5jjnmCNeMv3pjiw0glHJ2x1gmrR2V0UQl8OS0
         l8GU1t6kqQ24ev8PPMT395K5NXsoCHp7uCKTCMAL7AhPiebsrmokL2gSyfUDanchDOrC
         JlIiD2WyUT5ejfvpqFFXUCt6nNla+C0dRnVZQ0WFdccQ1GVRYKibzxDvfu9n2ugGs/K9
         t4KysciYnQvDW86mw1PHLmMp45uoVsnUwAPaaAwFNveNxtEXOMvN1e1P0OmmnpXywxBT
         rnTw==
X-Forwarded-Encrypted: i=1; AJvYcCWL/I/BWB0ameSEC3SGOKTWVDcI9IQ/9x/Mg6h/LzQ78g5FlOH80VDXPcXDrpRj68sYAGlBXE95MnM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYJM+je6Xa61CASGexojPQOcpbDpB3r3lhdiLvlgCZfTTsIR8v
	/0ouancYvSY5P3uLdx/ZsZNIGzmUaBrC80/5iL5AqY431ISBfox/jGtZ18+VvQ==
X-Gm-Gg: ASbGncuYQnBl67OdOsEoO+SMNFTsTdOicFZlC9ELqW8eP2tIbwaVMWkGLE1YJTrlQyw
	nYXDaxhDnj41TDkyDY+5B0Kc7D2cMqkgnZJ3TivlMbG8271nMT6YKmsoBJg54f5tvtT1wPr6dEN
	TahfaRWlBnNSA6J3/5xPk68boNh/3QhBy7qZpESNctDKYD1j/FHSa0fa5BYEiRex5RKw5aCMRrA
	vG/acHaTasiAUSNJ3/gDEEZT3+FCW4QkxO84lILV3KoHwrxdoHGAmB7uXcn0yrtuuAi+nyd3jPJ
	JEz6WaLbnPlxhla+pZCHVofnAuA56vj+bjs=
X-Google-Smtp-Source: AGHT+IFh/X+SuVWD5f+A/Xfdz4LWk6Qn0wzKP3GcgyDz8cQQc6PNyaXuXPuPY3dXMqbOCfNpeX3V7w==
X-Received: by 2002:a05:600c:3b25:b0:42c:e0da:f15c with SMTP id 5b1f17b1804b1-4334f018a5amr48557245e9.20.1732188733250;
        Thu, 21 Nov 2024 03:32:13 -0800 (PST)
Message-ID: <628d213e-aeda-4311-9366-09f5a18508fc@suse.com>
Date: Thu, 21 Nov 2024 12:32:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: limit GDT and LDT mappings areas to max number of
 vCPUs
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241121111218.50984-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: <20241121111218.50984-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2024 12:12, Roger Pau Monne wrote:
> The allocation of the paging structures in the per-domain area for mapping the
> guest GDT and LDT can be limited to the maximum number of vCPUs the guest can
> have.  The maximum number of vCPUs is available at domain creation since commit
> 4737fa52ce86.
> 
> Limiting to the actual number of vCPUs avoids wasting memory for paging
> structures that will never be used.  Current logic unconditionally uses 513
> pages, one page for the L3, plus 512 L1 pages.  For guests with equal or less
> than 16 vCPUs only 2 pages are used (each guest vCPU GDT/LDT can only consume
> 32 L1 slots).
> 
> No functional change intended, all possible domain vCPUs should have the GDT
> and LDT paging structures allocated and setup at domain creation, just like
> before the change.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
perhaps with the small adjustment Andrew has asked for.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:39:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:39:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841426.1256919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5Wl-0001uB-Im; Thu, 21 Nov 2024 11:39:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841426.1256919; Thu, 21 Nov 2024 11:39: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 1tE5Wl-0001u4-FL; Thu, 21 Nov 2024 11:39:15 +0000
Received: by outflank-mailman (input) for mailman id 841426;
 Thu, 21 Nov 2024 11:39: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tE5Wk-0001ft-2j
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:39:14 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37e5181f-a7fd-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 12:39:08 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9ed7d8d4e0so122135266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:39:08 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f4152dcbsm70757366b.9.2024.11.21.03.39.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 03:39: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: 37e5181f-a7fd-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM3ZTUxODFmLWE3ZmQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg5MTQ4LjkyODEzOSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732189147; x=1732793947; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ahAHrUvfG7RrmD2ptXSzUVzn9gbWCOiC7B9AQQZwrYw=;
        b=X+unA3OMYs3YNN8OXlhQA4Uzf8pj2Iq1ZQFAnfzf623rZZ3Z6Wd1UA1cp9+tpAW1IJ
         UbzdC4Y2kMj3wP8x2ETpIOvjYIgxOyYG0HNPnW6Y1CzVDeeQyD/qEPWSAw6jMpON1L9I
         x3lWAoazlpGFgZbEzRiy+xTQl57PoovkNe+Oo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732189147; x=1732793947;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ahAHrUvfG7RrmD2ptXSzUVzn9gbWCOiC7B9AQQZwrYw=;
        b=H66VGjDgE1Na96RDl0CrmZ6UoIP6w0lCkik5dA6jr7OOcPuYRZsGnXeSF3jMuJSS99
         pFPViQDhLMC2LQvCy28TiOO7utwYlXy/79d+x9jOjvpWkagjXxUABRYpd9BdZBUVUnwF
         s0Ctq64d9b/UITMHoTBkOF5TymrT09fKrFTbDBmWB4tgIAjbQqLAsU6KNDHsAjTOUcct
         PPnPtvVq2F3XTOS925T6vFqezGvp0Eqxo5h5aQKGEQ2RNY8S7gybvDeuxyEEK7kMxElZ
         +XEluYgrE/eP2HgxqnDfDiRi+DoW8aFidKxPKS07HdlXmjWa3dFRtBlKLYxQebjLbssn
         DaVw==
X-Gm-Message-State: AOJu0YxxZFPL+Usw8ktq9CI+B+kQvO4N7Xb4IMnLC9DMfbqtPpwljHMK
	DD9I4cmWMW3umXyIGm/p5PNLL7Q312urtuP6F96gHLH6oWjxo2H5T/K7Si185vg=
X-Gm-Gg: ASbGnctpFFqoqlABa55VRXNlCrMMhNmgZTN/oiyBY5ZfUlzXYB9GPnSh2vN5QY3WfW1
	dUJHIdui4aLw2LarBLp7+6DBpUCHvD7t2DPKdj59YE/ife3sFmBVQw5CIgAwae6lD8P6fcWRyff
	UolzEYwM2OLrts2inT6evyB6/xGniSqQJG81LiFWySRZ4oK/oEua6N+Sncz0XDxjcbiRQiF5QsF
	672p2E9V+71SIl2pJvP0TCxfVATbWK9DnKz7cxTRPOET9oNr5ux+aEids4=
X-Google-Smtp-Source: AGHT+IGtr2dZDlqtKYwgYn6y/rq2HzMu6mLQtIX+bt4ujFoxzlTgLfphR5gqKc29UYFkOELh0z9upg==
X-Received: by 2002:a17:907:7ba3:b0:a9e:b471:8308 with SMTP id a640c23a62f3a-aa4dd764962mr494956066b.49.1732189147281;
        Thu, 21 Nov 2024 03:39:07 -0800 (PST)
Date: Thu, 21 Nov 2024 12:39:06 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] x86/pv: limit GDT and LDT mappings areas to max number
 of vCPUs
Message-ID: <Zz8b2u5KJBlFr1qa@macbook>
References: <20241121111218.50984-1-roger.pau@citrix.com>
 <03053e3b-c101-4cc2-9f59-604e84f92ea0@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <03053e3b-c101-4cc2-9f59-604e84f92ea0@citrix.com>

On Thu, Nov 21, 2024 at 11:26:19AM +0000, Andrew Cooper wrote:
> On 21/11/2024 11:12 am, Roger Pau Monne wrote:
> > The allocation of the paging structures in the per-domain area for mapping the
> > guest GDT and LDT can be limited to the maximum number of vCPUs the guest can
> > have.  The maximum number of vCPUs is available at domain creation since commit
> > 4737fa52ce86.
> >
> > Limiting to the actual number of vCPUs avoids wasting memory for paging
> > structures that will never be used.  Current logic unconditionally uses 513
> > pages, one page for the L3, plus 512 L1 pages.  For guests with equal or less
> > than 16 vCPUs only 2 pages are used (each guest vCPU GDT/LDT can only consume
> > 32 L1 slots).
> >
> > No functional change intended, all possible domain vCPUs should have the GDT
> > and LDT paging structures allocated and setup at domain creation, just like
> > before the change.
> >
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Ooh, that's a optimisation I'd not considered when doing the work.
> 
> But, is it really only the the LDT/GDT area which can benefit from
> this?Â  The XLAT area seems like another good candidate.

I don't see XLAT being pre-allocated like the GDT/LDT area is, it's
only populated on a per-vCPU basis in setup_compat_arg_xlat() which is
already bounded to the number of initialized vCPUs.

> > ---
> >  xen/arch/x86/pv/domain.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> > index d5a8564c1cbe..e861e3ce71d9 100644
> > --- a/xen/arch/x86/pv/domain.c
> > +++ b/xen/arch/x86/pv/domain.c
> > @@ -346,7 +346,7 @@ void pv_domain_destroy(struct domain *d)
> >      pv_l1tf_domain_destroy(d);
> >  
> >      destroy_perdomain_mapping(d, GDT_LDT_VIRT_START,
> > -                              GDT_LDT_MBYTES << (20 - PAGE_SHIFT));
> > +                              d->max_vcpus << GDT_LDT_VCPU_SHIFT);
> 
> Probably not for this patch, but, should we really be passing in a size
> here?
> 
> Don't we just want to tear down everything in the relevant slot?

Hm, I've considered leaving that alone and keep passing GDT_LDT_MBYTES
to destroy the whole slot.  The performance advantage of not iterating
over the known empty slots is negligible IMO.  No strong opinion, I
can leave as-is if it's considered better.

> >  
> >      XFREE(d->arch.pv.cpuidmasks);
> >  
> > @@ -377,7 +377,7 @@ int pv_domain_initialise(struct domain *d)
> >          goto fail;
> >  
> >      rc = create_perdomain_mapping(d, GDT_LDT_VIRT_START,
> > -                                  GDT_LDT_MBYTES << (20 - PAGE_SHIFT),
> > +                                  d->max_vcpus << GDT_LDT_VCPU_SHIFT,
> >                                    NULL, NULL);
> 
> I'd suggest putting a note here saying that the maximum bound for PV
> vCPUs is governed by GDT_LDT_MBYTES.

Yeah, MAX_VIRT_CPUS is already calculated based on GDT_LDT_MBYTES.

> Or alternatively, we could have create_perdomain_mapping() fail if it
> tries to allocate more than one slot's worth of mappings?Â Â  It feels
> like an acceptable safety net.

I would rather use something like:

if ( (d->max_vcpus << GDT_LDT_VCPU_SHIFT) >
     (PERDOMAIN_SLOT_MBYTES << (20 - PAGE_SHIFT)) )
    ASSERT_UNREACHABLE();
    return -EINVAL;
}

As it should be impossible to call pv_domain_initialise() with a
number of vCPUs past what fits in the GDT/LDT slot.
arch_sanitise_domain_config() should have filtered such attempt before
it gets into pv_domain_initialise().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:39:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:39:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841425.1256909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5Wk-0001gB-Ag; Thu, 21 Nov 2024 11:39:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841425.1256909; Thu, 21 Nov 2024 11:39: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 1tE5Wk-0001g3-7h; Thu, 21 Nov 2024 11:39:14 +0000
Received: by outflank-mailman (input) for mailman id 841425;
 Thu, 21 Nov 2024 11: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE5Wj-0001ft-Dt
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:39:13 +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 38cabce2-a7fd-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 12:39:09 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5cfcf4df87aso1054333a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:39: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
 4fb4d7f45d1cf-5cff44de5easm1749201a12.11.2024.11.21.03.39.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 03:39: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: 38cabce2-a7fd-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM4Y2FiY2UyLWE3ZmQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTg5MTQ5LjQ4NDQxLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732189149; x=1732793949; 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=sQQYFckKR7i8Pp7p+uENb6vD4qdhzRZ2nVmgvgxnsJI=;
        b=XRnO9W86mKVP0pfFpw76WOfwRekd9p86LgJMOWyYh7Q5OXmGZor5ubQtKFWPHwxHHG
         tSOwxE7jvQBynF4iwwUpdrrD8PA+vNbHFGLKogV6YSe4FYTNTSIdI3tJoJ0mMMg/efh/
         tXNjBaoTeLnOWhZazbSjlnM6Ycy1RPBI3R1sX5OWZi1R1QaUul0plj6oBPnvL/tF5e5Q
         MrcboFan7PrkgbxkJVfM7UWMsXLEV95LXsu8531tUFlamwhKu3/+3S4UrVbR/F3ovUKB
         WdPpI62QyiWrOICIxcvgvAH4qd+a0zHmjlQu5CvrJIPClf1c6UDhcSBigQ6+62nD24EE
         9KvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732189149; x=1732793949;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sQQYFckKR7i8Pp7p+uENb6vD4qdhzRZ2nVmgvgxnsJI=;
        b=RKdTmNhymsl5jZ65+dlXLbkyRNBkGq+SOmAu+PXJbEJw29gC6Zlop1vjR8DfYxSZHy
         vB61xdiqRhH1rRKyuRQKouVbKJvaatgBTdA8QGTDAoN5rGsiHTpCGvumeoF45sO7Mg+g
         h/P0JX0rRouxY8/mX/MYbEsORuM2B2+U437yfWxboH11pfxnHvX/vrRSs9U7LgUTOD/J
         MFi8Jl4PAaoK5zsGzVTrYH/fELeLcfSmB02yzXnrnfWnBRTZQlGPSjiuoeMo8S/N0zn/
         3wpWA4ZnI5K0UQ6BWtgzHBi6C+IDfsieMY8Jzu4Tl3DbjUp8v1hqrgLoo2uSBlxvJ1Ha
         BS5g==
X-Forwarded-Encrypted: i=1; AJvYcCW5aLTnhRMH0jqNH67+lnULLxcVrWNhFKai40uw05lpkq2pz7dqOMvR74feoNVBVdNpjOo38rwSG2g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysuEU1lNZMX6/bm7kyc8Evg+i1HXJiy2mn5m5ymucpJjUbIIfo
	k6WFWYeTuZ0t9C4r4pAR2f5I5rUcjR4aXBMyyP2f1Q9NVS8nbm+//Hbr/9OBGg==
X-Google-Smtp-Source: AGHT+IE/WHDsBF7A8Nl4XdZMrjrMccybyNAX2IEyxMfeDyg3LK6hqgbgoUYi6QULdLgazAN8FPZiRg==
X-Received: by 2002:a17:907:9709:b0:a9a:478:2ee3 with SMTP id a640c23a62f3a-aa4dd71e851mr650827266b.40.1732189148931;
        Thu, 21 Nov 2024 03:39:08 -0800 (PST)
Message-ID: <f0c0cdca-e6a8-47c9-934a-85a91609e9e7@suse.com>
Date: Thu, 21 Nov 2024 12:39:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/irq: fix calculation of max PV dom0 pIRQs
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: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-2-roger.pau@citrix.com>
 <b849f46d-501a-4083-aecd-fdf0c4319eda@suse.com> <Zz8Tugu22NPzAQUo@macbook>
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: <Zz8Tugu22NPzAQUo@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2024 12:04, Roger Pau MonnÃ© wrote:
> On Thu, Nov 21, 2024 at 11:49:44AM +0100, Jan Beulich wrote:
>> On 20.11.2024 12:35, Roger Pau Monne wrote:
>>> The current calculation of PV dom0 pIRQs uses:
>>>
>>> n = min(fls(num_present_cpus()), dom0_max_vcpus());
>>>
>>> The usage of fls() is wrong, as num_present_cpus() already returns the number
>>> of present CPUs, not the bitmap mask of CPUs.
>>
>> Hmm. Perhaps that use of fls() should have been accompanied by a comment, but
>> I think it might have been put there intentionally, to avoid linear growth.
>> Which isn't to say that I mind the adjustment, especially now that we don't
>> use any clustered modes anymore for I/O interrupts. I'm merely questioning
>> the Fixes: tag, and with that whether / how far to backport.
> 
> Hm, sorry I've assumed the fls() was a typo.  It seems wrong to cap
> dom0 vCPUs with the fls of the present CPUs number.  For consistency,
> if the intention was to use fls to limit growth, I would have expected
> to also be applied to the dom0 number of vCPUs.

FTR: My vague recollection (it has been nearly 10 years) is that I first had
it there, too. Until I realized that it hardly ever would have any effect,
because of the min(). And for Dom0-s with extremely few vCPU-s it seemed
reasonable to not apply that cap there.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 11:49:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 11:49:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841444.1256928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5gR-0004I9-Eb; Thu, 21 Nov 2024 11:49:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841444.1256928; Thu, 21 Nov 2024 11:49: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 1tE5gR-0004I2-BZ; Thu, 21 Nov 2024 11:49:15 +0000
Received: by outflank-mailman (input) for mailman id 841444;
 Thu, 21 Nov 2024 11:49: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=/nFy=SQ=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tE5gP-0004Hw-HJ
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 11:49:13 +0000
Received: from mail-il1-x12a.google.com (mail-il1-x12a.google.com
 [2607:f8b0:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9de1a8f4-a7fe-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 12:49:09 +0100 (CET)
Received: by mail-il1-x12a.google.com with SMTP id
 e9e14a558f8ab-3a761a622dcso2841275ab.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 03:49: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: 9de1a8f4-a7fe-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1pbDEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkZTFhOGY0LWE3ZmUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTg5NzQ5LjM3Njg0Mywic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732189748; x=1732794548; 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=ipCwza2qpCe31GGwzVZrk29THAAWEinyR8NnYO4Dmxc=;
        b=MO95ZruSHgtbz0Z6CJsL2TQD2mitvqmd92wKphIbwq3VhhEztwRxgITxCeFMuVOSxQ
         en4fvGOBM2bS+v84TVrb0ukhSE+kC/p5NjMS/axTXy2kWh5224p+jlkQwrRDfWoTFCux
         Qkyj66rzsAMckKR58x+h4lxg6cwsDGQrC5t9wqHNfQQwlxQFeTZvQa3SWh4R1Z2WWWCJ
         xSgk7n2ojgZMZOu7XgiFARWeaIjk43eABK5qfUpTD/6b9JMC2uhHucD5Qx5auWDRx1eL
         XYOvCZKEYGiB99sHRKKIshtAyiRa3jyTe0nwmFSYmBjMQP+zUhKBYoIm7qAVT4k9w/Pz
         HtyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732189748; x=1732794548;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ipCwza2qpCe31GGwzVZrk29THAAWEinyR8NnYO4Dmxc=;
        b=EodjN3zNNTeo64PGIzfiIcRNV5Dml98qlzurTcrV5juIgFrzY9+5eleljktRjNLIU6
         fdjq2RUwzG4CdvMFeiZpCNG2ZEimGTZUvt1titDO2C7E/6k0Kg2stjXr9MX1LmJQ+V7m
         TRqBl9IUnM3krO9zyFj6lOGog9r32B4hBQxQSeOqnZH+jZtVd9AsVdE75nNU9fDXv4nG
         I/TPoSgXZqGRTdeYTTfrwDg32ysATVSwpnPF278Z3ylvU4wpThzQeOjRFMf9QoW2Jpi4
         PqyD2cFpSmw+ws3KHJ+Q/STligs2shqoTBZjLIccMxfa+O6Pnm3oDdt1V14h7bJdgBsK
         nKGg==
X-Gm-Message-State: AOJu0YwjkaUjqOCdGgKqhtiEQKFBeeanTB2BD+2xMDsx3hplVHS++nEd
	FblM1WUajmtB677q9HTQW2Y2kd6y9O+XGUCLugWnt8E/MC2c5+zp93tghzu3yvfzyUWzYNH5it0
	qPdeONBuse+V+TTrY6SIX+vrho87FO0lSvU9wtPowzL2pzdTXjvI=
X-Google-Smtp-Source: AGHT+IE2HvsIccc5b6QfpoJ1zxeNHfDiLtHmVBC/xsBgnBkpVtZ7uwQGgK+JwJEE+LkuAq+oYGeZDKbgR4ka8rZ3how=
X-Received: by 2002:a05:6602:3c5:b0:82c:e4e1:2e99 with SMTP id
 ca18e2360f4ac-83eb6043957mr706380339f.11.1732189748266; Thu, 21 Nov 2024
 03:49:08 -0800 (PST)
MIME-Version: 1.0
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-7-carlo.nonato@minervasys.tech> <Zz4NdBcbMLx3HywA@l14>
In-Reply-To: <Zz4NdBcbMLx3HywA@l14>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Thu, 21 Nov 2024 12:48:56 +0100
Message-ID: <CAG+AhRVUr=8ZjAM98RSoDxeu15GktsykJoE2rmyCM7-s5yL5hA@mail.gmail.com>
Subject: Re: [PATCH v10 06/12] tools: add support for cache coloring configuration
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, andrea.bastoni@minervasys.tech, 
	marco.solieri@minervasys.tech, Juergen Gross <jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Anthony,

On Wed, Nov 20, 2024 at 5:25=E2=80=AFPM Anthony PERARD
<anthony.perard@vates.tech> wrote:
>
> Hi Carlo,
>
> On Tue, Nov 19, 2024 at 03:13:23PM +0100, Carlo Nonato wrote:
> > diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
> > index e3538ec0ba..4ed339e6e4 100644
> > --- a/tools/libs/ctrl/xc_domain.c
> > +++ b/tools/libs/ctrl/xc_domain.c
> > @@ -2195,6 +2195,41 @@ int xc_domain_soft_reset(xc_interface *xch,
> >      domctl.domain =3D domid;
> >      return do_domctl(xch, &domctl);
> >  }
> > +
> > +int xc_domain_set_llc_colors(xc_interface *xch, uint32_t domid,
> > +                             const unsigned int *llc_colors,
>
> The hypercall seems to take a buffer of `uint32_t` for `llc_colors`, but
> the parameter of the function is `unsigned int` instead, is there any
> reason for them to be different?

I don't remember anymore, but I think it should be uint32_t also for the
parameter.

> > +                             unsigned int num_llc_colors)
> > +{
> > +    struct xen_domctl domctl =3D {};
> > +    DECLARE_HYPERCALL_BUFFER(uint32_t, local);
> > +    int ret =3D -1;
> > +
> > +    if ( num_llc_colors )
> > +    {
> > +        size_t bytes =3D sizeof(uint32_t) * num_llc_colors;
> > +
> > +        local =3D xc_hypercall_buffer_alloc(xch, local, bytes);
> > +        if ( local =3D=3D NULL )
> > +        {
> > +            PERROR("Could not allocate LLC colors for set_llc_colors")=
;
> > +            ret =3D -ENOMEM;
>
> I think we are supposed to return -1 in case of error, see:
>     https://elixir.bootlin.com/xen/v4.19.0/source/tools/include/xenctrl.h=
#L101
>
> And there's nothing else to do, xc_hypercall_buffer_alloc() should
> already have set `errno`, and PERROR() preserves it.

You're right.

>> > +            goto out;
> > +        }
>
> Thanks,
>
> --
>
> Anthony Perard | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
> web: https://vates.tech

(answering the other mail)

On Wed, Nov 20, 2024 at 5:48=E2=80=AFPM Anthony PERARD
<anthony.perard@vates.tech> wrote:
>
> On Tue, Nov 19, 2024 at 03:13:23PM +0100, Carlo Nonato wrote:
> >  tools/libs/light/libxl_types.idl |  1 +
>
> An other thing I've completely forgot, with this IDL changed there will
> be a need to regen some other files in the repo, namely:
>     tools/golang/xenlight/helpers.gen.go
>     tools/golang/xenlight/types.gen.go
>
> Running this following command should be enough, even if you don't have
> golang installed.
>
>     make -C tools/golang/xenlight helpers.gen.go types.gen.go
>
> If you send an update of the patch series, it would be nice to include
> the regenerated files.

Yes, will do that.

> Cheers,
>
> --
>
> Anthony Perard | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech

 Thanks.

- Carlo


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 12:01:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 12:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841455.1256939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE5rZ-0007Vy-Jk; Thu, 21 Nov 2024 12:00:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841455.1256939; Thu, 21 Nov 2024 12:00: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 1tE5rZ-0007Vr-G1; Thu, 21 Nov 2024 12:00:45 +0000
Received: by outflank-mailman (input) for mailman id 841455;
 Thu, 21 Nov 2024 12:00: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=JH7e=SQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tE5rX-0007NN-Nn
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 12:00:43 +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 3a258195-a800-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 13:00:40 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43168d9c6c9so6995875e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 04:00:40 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3825490bfd6sm4799041f8f.25.2024.11.21.04.00.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 04: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: 3a258195-a800-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNhMjU4MTk1LWE4MDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTkwNDQwLjI3ODE5OSwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732190440; x=1732795240; 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=EO9H7L51gE6cPNefBYVK5KHtIK+HLO0v1Tul0wks2V0=;
        b=aAsXBWCn+B0uufBmTbtY0VYvVsZnRQhNxq9Iv/zf8na3yZkhX5iRikS8+oqx65k62j
         hb16Ted1bKCdvPBiTKMp2lkyQiNJDeMBYlU9Wv4wAwk02kwuG0xDpAjByu2y9Mc3GUHY
         +g+iwJCiizcWHhOuT9o7kFz3kxLDXyNhoomhwb0B590AIamavZM2nX1VpfjExKVkwMZv
         2nlEaGFaY0kEzHpKM5NU7g8Z2QQ+ZoScgxiK8wp3UpCHq7vgVLMtFVnN06r+1MS34Pkq
         vtBGpCGsGko6z2AepeoWIaLwkznbZuFM/c+Wc+0d+C+l0vCkd97yjNXqeDZRzwz3A+oe
         tAjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732190440; x=1732795240;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=EO9H7L51gE6cPNefBYVK5KHtIK+HLO0v1Tul0wks2V0=;
        b=Sl8iFnSTX1aJxqqySONVpeFQTCMBLmJNh6bggBEdOfCLSfzWMQa4xTD1uHbVn0OaZ0
         TH18M6EtQBkc/miKLvXgZ2jur0IFWvsuNptaIWNv4CRwJ9FV9C3nsJQ7gQbSJzkU4nea
         ZOmlyEhrFGBh7crfkMf9TGsXIg/bQI6FF5iurT3wL4eGvFiy+Fb5iiIecrZZZjDYdIlJ
         V5DRKjt4ADAxzMn8zEONRFzc1SZEXxlKS+0WKUO2pTN58EXKYyyNAwLpWrjw//MdEDKL
         nHPLorxLopzYVPm96i5eqlSouPwkrhL9AN5aN+p14sEQxi18dFjvw6vZ3tiYJ5Itq4YP
         ledQ==
X-Forwarded-Encrypted: i=1; AJvYcCUC9EbLhfP6QOTUhQahL4XIgwSZGTPxqvFX95NmEUaORYYdHyAh0/z8bksVBDINIqev8sLMT9c7x/U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXx290QLr0OM2QIsL2Ct/EhJDbAbWuPV1MIDRM6KGQy+78kkR7
	BsQQgMel3Elt1Zb7JdmzmWQ8/CZ1q/urdu2JzkAwGsbSBfqMvY5+xzJPQp+X/ZY=
X-Gm-Gg: ASbGnctDxXcfWolLryM8IEGqmnyu/O6NkaEhDYs8wsRvpCpc0DWNtswjUstJvqmko9i
	8EHMRL2ZbqM1+hnnsqIBZ2jMYDiHRMVOtNHI4rly2lq5xiuHO/7d7iURZu+sXthruMUAhDOm3bv
	bxpkmfS6ySJILZBxHgdD9y3X4egWbcrqLRXeNLfqFEs11Y6cSUcwLAtbSuIn+lsUdbqjbbY/PSY
	1PGAtSj1BflY+xycFtzN/i4sMnekL3/NSst4vXkAw+AVLajCTbZEKWSuJmlbrAPsc081kxDJ+gC
	OoYmm5sEDPsArx3nxxYTssmid2OUSkD6zlDA4038XuMyz+Vdgkab4G0Z4tJfmq7BllNGzf3TSxU
	=
X-Google-Smtp-Source: AGHT+IH/3NH9JKgLe2HMj+sVAVSzV5oHzHhIknlp/HwTvLcOeg4S3MgtK3eWa+wQPxuOZjcu3rfShQ==
X-Received: by 2002:a05:600c:444f:b0:42c:b4f2:7c30 with SMTP id 5b1f17b1804b1-4334f017137mr48829815e9.23.1732190439548;
        Thu, 21 Nov 2024 04:00:39 -0800 (PST)
Message-ID: <82dbba56-e803-4332-81f7-225e35048e1e@suse.com>
Date: Thu, 21 Nov 2024 13:00:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: fix init sequence
To: Alexander Merritt <alexander@edera.dev>, v9fs@lists.linux.dev,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Cc: Eric Van Hensbergen <ericvh@kernel.org>,
 Latchesar Ionkov <lucho@ionkov.net>,
 Dominique Martinet <asmadeus@codewreck.org>,
 Christian Schoenebeck <linux_oss@crudebyte.com>,
 Simon Horman <horms@kernel.org>, Alex Zenla <alex@edera.dev>,
 Ariadne Conill <ariadne@ariadne.space>
References: <20241119211633.38321-1-alexander@edera.dev>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20241119211633.38321-1-alexander@edera.dev>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 19.11.24 22:16, Alexander Merritt wrote:
> From: Alex Zenla <alex@edera.dev>
> 
> Large amount of mount hangs observed during hotplugging of 9pfs devices. The
> 9pfs Xen driver attempts to initialize itself more than once, causing the
> frontend and backend to disagree: the backend listens on a channel that the
> frontend does not send on, resulting in stalled processing.
> 
> Only allow initialization of 9p frontend once.
> 
> Fixes: c15fe55d14b3b ("9p/xen: fix connection sequence")
> Signed-off-by: Alex Zenla <alex@edera.dev>
> Signed-off-by: Alexander Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 12:24:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 12:24:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841468.1256949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE6ER-0002QM-9p; Thu, 21 Nov 2024 12:24:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841468.1256949; Thu, 21 Nov 2024 12: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 1tE6ER-0002QF-6s; Thu, 21 Nov 2024 12:24:23 +0000
Received: by outflank-mailman (input) for mailman id 841468;
 Thu, 21 Nov 2024 12: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=zSRA=SQ=codewreck.org=asmadeus@srs-se1.protection.inumbo.net>)
 id 1tE6EO-0002Q9-QT
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 12:24:21 +0000
Received: from submarine.notk.org (submarine.notk.org [62.210.214.84])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 867927fd-a803-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 13:24:16 +0100 (CET)
Received: from gaia.codewreck.org (localhost [127.0.0.1])
 by submarine.notk.org (Postfix) with ESMTPS id B831D14C1E1;
 Thu, 21 Nov 2024 13:24:12 +0100 (CET)
Received: from localhost (gaia.codewreck.org [local])
 by gaia.codewreck.org (OpenSMTPD) with ESMTPA id 4797f817;
 Thu, 21 Nov 2024 12:24:11 +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: 867927fd-a803-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjYyLjIxMC4yMTQuODQiLCJoZWxvIjoic3VibWFyaW5lLm5vdGsub3JnIn0=
X-Custom-Transaction: eyJpZCI6Ijg2NzkyN2ZkLWE4MDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTkxODU2LjgyOTMwOCwic2VuZGVyIjoiYXNtYWRldXNAY29kZXdyZWNrLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codewreck.org;
	s=2; t=1732191855;
	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=xHgJ4eJ5XwEZ8MzTd18+kcOaEGlva/2F8o2ACTeVRNM=;
	b=yxoUOOXyCcnrIh5MIGLKt+gFezI6s3szXY5vlOZNbxeXF6Gzn4daTY6w5q/yYvMcYaa60+
	plYDZWqx/gIwpHnaPuMpWb73F4XS3RvEAUfi1IMJQYN7Fi1mo5op7fhaFAtV+D6d+xlE0j
	hJzfNaUXbNgN9cuSH5NixX1sBzWD2Jj2rbeW0kOdVUvNEBkdTXq5ZGsGoOgG1rDp43DLK9
	T5l/xFT2+d3oomX4FHO1rNan20HsNAcRuC42xVDU6QuaadI8HISO4Y0cwhZUdykraEFaH3
	PzT0H+Z+XH969qj/PL0KJK2SFq3wfPlmyWOgO/xK2WiA40MyaH/qe1gjDQlDWg==
Date: Thu, 21 Nov 2024 21:23:55 +0900
From: Dominique Martinet <asmadeus@codewreck.org>
To: Alexander Merritt <alexander@edera.dev>
Cc: v9fs@lists.linux.dev, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Eric Van Hensbergen <ericvh@kernel.org>,
	Latchesar Ionkov <lucho@ionkov.net>,
	Christian Schoenebeck <linux_oss@crudebyte.com>,
	Simon Horman <horms@kernel.org>, Juergen Gross <jgross@suse.com>,
	Alex Zenla <alex@edera.dev>, Ariadne Conill <ariadne@ariadne.space>
Subject: Re: [PATCH] 9p/xen: fix init sequence
Message-ID: <Zz8mWwLQBNq6eopG@codewreck.org>
References: <20241119211633.38321-1-alexander@edera.dev>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20241119211633.38321-1-alexander@edera.dev>

Alexander Merritt wrote on Tue, Nov 19, 2024 at 09:16:33PM +0000:
> From: Alex Zenla <alex@edera.dev>
> 
> Large amount of mount hangs observed during hotplugging of 9pfs devices. The
> 9pfs Xen driver attempts to initialize itself more than once, causing the
> frontend and backend to disagree: the backend listens on a channel that the
> frontend does not send on, resulting in stalled processing.
> 
> Only allow initialization of 9p frontend once.

I'm not familiar with the xen bringup so I don't understand how the
patch guarantees this -- otherend_changed calls are guaranted to be
seralized for a given frontend?
I guess that at least it guaratees that we won't restart the init
process after init's been done on our side and before the remote side
sends the ack, so if you've all tested this I'll just trust you and
Juergen's review and take it as an improvement.

Queued to 9p-next; will send this to Linus in ~1week

Thanks!
-- 
Dominique


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 12:28:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 12:28:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841474.1256960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE6Hv-000306-PB; Thu, 21 Nov 2024 12:27:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841474.1256960; Thu, 21 Nov 2024 12:27: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 1tE6Hv-0002zz-Ky; Thu, 21 Nov 2024 12:27:59 +0000
Received: by outflank-mailman (input) for mailman id 841474;
 Thu, 21 Nov 2024 12:27: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=JH7e=SQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tE6Hu-0002zd-QB
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 12:27:58 +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 08ef537a-a804-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 13:27:55 +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 A517B1F802;
 Thu, 21 Nov 2024 12:27:53 +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 3F5D5137CF;
 Thu, 21 Nov 2024 12:27:53 +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 68ZaDUknP2cFFQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 21 Nov 2024 12:27: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: 08ef537a-a804-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5NS4xMzUuMjIzLjEzMSIsImhlbG8iOiJzbXRwLW91dDIuc3VzZS5kZSJ9
X-Custom-Transaction: eyJpZCI6IjA4ZWY1MzdhLWE4MDQtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMTkyMDc1LjgxMzI0Miwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1732192074; 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=qwpG+MzRFnosETW0RsDUt6W6ccUKwupUoSfDi5RaLvg=;
	b=FXGODWnFAQy1W0OCEnytAT8+pRVLpp+CQ59D80qn9WDccvPmNKbQ12bakCs/CE2RL44R8u
	CfFzhBR9VXdfXNdDL93DaOgPy3qycrCAnQdCgQn9YyZaS/kGs5j7e3i5FuLP55L3iEaads
	6K0dJikDZ2sLLCThMlyVmYXGr0+n2yU=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=njwRCcco
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1732192073; 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=qwpG+MzRFnosETW0RsDUt6W6ccUKwupUoSfDi5RaLvg=;
	b=njwRCcco0X4Wn294nGdYJVOhBxqZF19ndmAw704eRoHbnyOBc9HRZeD81k05H1JLkH741T
	O/iP1wUWpVAlHGazWgRrvvbtC7P8RXSiAEfjougPBi288LT89hfo0rhDnxJiewuu3Vowar
	MKnpFApQiLFFqPDyBLIS5I3fbD1l5jI=
Message-ID: <a15245c9-9be6-4de7-84a8-693931b1b3aa@suse.com>
Date: Thu, 21 Nov 2024 13:27:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: fix init sequence
To: Dominique Martinet <asmadeus@codewreck.org>,
 Alexander Merritt <alexander@edera.dev>
Cc: v9fs@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Eric Van Hensbergen <ericvh@kernel.org>,
 Latchesar Ionkov <lucho@ionkov.net>,
 Christian Schoenebeck <linux_oss@crudebyte.com>,
 Simon Horman <horms@kernel.org>, Alex Zenla <alex@edera.dev>,
 Ariadne Conill <ariadne@ariadne.space>
References: <20241119211633.38321-1-alexander@edera.dev>
 <Zz8mWwLQBNq6eopG@codewreck.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: <Zz8mWwLQBNq6eopG@codewreck.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------pWhOdIHTfcriqb5dR0RO5EIB"
X-Rspamd-Queue-Id: A517B1F802
X-Spam-Score: -5.41
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-5.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MX_GOOD(-0.01)[];
	FROM_HAS_DN(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[11];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:dkim,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,edera.dev:email]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Flag: NO
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------pWhOdIHTfcriqb5dR0RO5EIB
Content-Type: multipart/mixed; boundary="------------9tX3PFuueVCcM4XprYP4c0qq";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Dominique Martinet <asmadeus@codewreck.org>,
 Alexander Merritt <alexander@edera.dev>
Cc: v9fs@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Eric Van Hensbergen <ericvh@kernel.org>,
 Latchesar Ionkov <lucho@ionkov.net>,
 Christian Schoenebeck <linux_oss@crudebyte.com>,
 Simon Horman <horms@kernel.org>, Alex Zenla <alex@edera.dev>,
 Ariadne Conill <ariadne@ariadne.space>
Message-ID: <a15245c9-9be6-4de7-84a8-693931b1b3aa@suse.com>
Subject: Re: [PATCH] 9p/xen: fix init sequence
References: <20241119211633.38321-1-alexander@edera.dev>
 <Zz8mWwLQBNq6eopG@codewreck.org>
In-Reply-To: <Zz8mWwLQBNq6eopG@codewreck.org>

--------------9tX3PFuueVCcM4XprYP4c0qq
Content-Type: multipart/mixed; boundary="------------57mrBXBXago0ujHXGEypnBxv"

--------------57mrBXBXago0ujHXGEypnBxv
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjEuMTEuMjQgMTM6MjMsIERvbWluaXF1ZSBNYXJ0aW5ldCB3cm90ZToNCj4gQWxleGFu
ZGVyIE1lcnJpdHQgd3JvdGUgb24gVHVlLCBOb3YgMTksIDIwMjQgYXQgMDk6MTY6MzNQTSAr
MDAwMDoNCj4+IEZyb206IEFsZXggWmVubGEgPGFsZXhAZWRlcmEuZGV2Pg0KPj4NCj4+IExh
cmdlIGFtb3VudCBvZiBtb3VudCBoYW5ncyBvYnNlcnZlZCBkdXJpbmcgaG90cGx1Z2dpbmcg
b2YgOXBmcyBkZXZpY2VzLiBUaGUNCj4+IDlwZnMgWGVuIGRyaXZlciBhdHRlbXB0cyB0byBp
bml0aWFsaXplIGl0c2VsZiBtb3JlIHRoYW4gb25jZSwgY2F1c2luZyB0aGUNCj4+IGZyb250
ZW5kIGFuZCBiYWNrZW5kIHRvIGRpc2FncmVlOiB0aGUgYmFja2VuZCBsaXN0ZW5zIG9uIGEg
Y2hhbm5lbCB0aGF0IHRoZQ0KPj4gZnJvbnRlbmQgZG9lcyBub3Qgc2VuZCBvbiwgcmVzdWx0
aW5nIGluIHN0YWxsZWQgcHJvY2Vzc2luZy4NCj4+DQo+PiBPbmx5IGFsbG93IGluaXRpYWxp
emF0aW9uIG9mIDlwIGZyb250ZW5kIG9uY2UuDQo+IA0KPiBJJ20gbm90IGZhbWlsaWFyIHdp
dGggdGhlIHhlbiBicmluZ3VwIHNvIEkgZG9uJ3QgdW5kZXJzdGFuZCBob3cgdGhlDQo+IHBh
dGNoIGd1YXJhbnRlZXMgdGhpcyAtLSBvdGhlcmVuZF9jaGFuZ2VkIGNhbGxzIGFyZSBndWFy
YW50ZWQgdG8gYmUNCj4gc2VyYWxpemVkIGZvciBhIGdpdmVuIGZyb250ZW5kPw0KDQpZZXMu
IFRoZXkgYXJlIGFsbCBleGVjdXRlZCBieSBhIHNpbmdsZSBrZXJuZWwgdGhyZWFkLg0KDQoN
Ckp1ZXJnZW4NCg==
--------------57mrBXBXago0ujHXGEypnBxv
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-----

--------------57mrBXBXago0ujHXGEypnBxv--

--------------9tX3PFuueVCcM4XprYP4c0qq--

--------------pWhOdIHTfcriqb5dR0RO5EIB
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/Ey8FAmc/J0gFAwAAAAAACgkQsN6d1ii/Ey+m
3gf/ccmyB0yN+92nNEjRCgrB1RxEW9RyRgoR2jbQX6Th4UAMvGOGCSvLgtaWT/f1zVvKRyma2io7
/v0G+HQ5l5Wl7JmHjnF2OJk3QP7ZJ7XkSM1gHvhuBtvtighvyTT4gbogsqAJimtQbGlNnKqziWKu
VSXWg488p20RpW5/6Kq7omRqXPZm2mX7CF1AjY9tPCZ5kNrxUlYfx56R3iydI3SBJJF7lfo4cRM5
rta8fE7CfTJkmuT/9+L/woBsDF00rCr2c3pYzwJR2zyYf5I4eoBsASBwrzfj7WHOLVDN3UybDkb7
7mIwHtGeHuZPRTcoHcj/mew57WMzl8pG+PeOtzB30w==
=W35D
-----END PGP SIGNATURE-----

--------------pWhOdIHTfcriqb5dR0RO5EIB--


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 12:31:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 12:31:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841482.1256969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE6LN-0004ih-6F; Thu, 21 Nov 2024 12:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841482.1256969; Thu, 21 Nov 2024 12: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 1tE6LN-0004ia-3W; Thu, 21 Nov 2024 12:31:33 +0000
Received: by outflank-mailman (input) for mailman id 841482;
 Thu, 21 Nov 2024 12:31: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE6LL-0004iU-RY
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 12:31:31 +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 878146ca-a804-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 13:31:28 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so1028538a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 04:31: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
 a640c23a62f3a-aa4f43804b8sm74664466b.192.2024.11.21.04.31.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 04:31: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: 878146ca-a804-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg3ODE0NmNhLWE4MDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTkyMjg4LjAxNzMxNCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732192287; x=1732797087; 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=GM94cePoMwgOwGo6f8OylyDYk3VBlIp+ay66kLsiCxc=;
        b=FGlYnLuJsDLiCMq0XKmUuNyjcgeNty2g2XPg30EfajcWw/1VlXOMqbCnoSz703PimU
         jjhKdt58lzT/ElGdyJQQ2ZPzREjdQQmw5b6O2mFNLBSI1lmvceXxhPuz27CbRZ0ECsUz
         dZXuDLVCLvzwUooSltDBnRMnaH4SA4SO0+EIiTNkhTqSEpDBXs2XueLjDupNdjw9bLgl
         ZIIKmRUyVZQZ050gtDNHZ3BPFWE+l1tH3I7u9hNZmQXX8CK7FVgA64oBS+DGoLUd/GYe
         7APrMRToD6uJVkNME6ppx2Jw+Hxyig3MOfYuRZbqzbYNlP+lYlBkHpOJe5KD8C61RV+B
         mjLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732192287; x=1732797087;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GM94cePoMwgOwGo6f8OylyDYk3VBlIp+ay66kLsiCxc=;
        b=erGeCX1hhYS9mqIoXOYcWxbiWo+sHQO4cqxLWs7xGVWp6LBuqeYQN2880qHdeahSer
         taVmMxC9JJZwh/GTwiIzwt6tHuCKefkcA65QvBwJ4hEubisMkOnFl9MccFYhnwkcOu5r
         XWMECJ/QrnI61HbUzp2W2kjGW/nkwvXXQXx5lZwsjERLIjKR/o9TO+8ROEIIE4TfVHpC
         5lBBL/bymD28fbapCYSss/CGGHJU4tSDrzQ9TCmFQmDHD5dlVn2f2N6kUf5Jvb0yLzJO
         Gzd+Bh+DIPxRqmNYbTPOVkXMAlyHbAYn2wotV78x6xi1+Qxzo0dPxjXvEwNLthlaMdzm
         Y9fg==
X-Forwarded-Encrypted: i=1; AJvYcCWQ5kg63G492PlU9FLkH941dx92NA+ngNNpv4cd/LsXz1LTdG2zAY4nGMIKxdczzt1jKu47K/jh6dw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNaBEZcELJvFAFpNwUfHQlBiGWNbsPosa8jWvEx+4pGdcSGrSD
	RDVcopJ0G5d8l8Vigmjnvc5wtlizAlBw/I+AfGO+AdIOM2LgFnhRwwnPOaTxAg==
X-Gm-Gg: ASbGncs61AkHXifLl36lnbC38cBVWmA6AtFYqUfrREDE/PxqjL4HX8Wx1ly9DPf8b7n
	PXYr4iJENa3EhKWtn2/r81Iq9p45lfKb+4wRpRGZO478mhkWj7Qb96mLnrt4HILPG/5yPafu/k7
	ALMfzzS/OdsDnyT3tQPkI/208AYdR3Ck6MCWCBMJSER1y7WHp6cL8sVX9FymWLWobB8GkwoF4yt
	jhJOWhZbqDS/5piakSXHeNQlK75/7p5GGaTXbTu/rj2N01fcMDeVGDEuil4tcMnj6mWAUb6WDiN
	/n5lZKVm0463pctI6aoE4CmonqMqVz6vPSg=
X-Google-Smtp-Source: AGHT+IG4uhZFj2XDsdJdKs2Hk6BCAiR6xINtkEHtwllqiCwcAHyLLT8et5bNpcyY8LAWPxejpPr//w==
X-Received: by 2002:a05:6402:3587:b0:5cf:a830:d84f with SMTP id 4fb4d7f45d1cf-5cff4c42cefmr4841891a12.15.1732192287344;
        Thu, 21 Nov 2024 04:31:27 -0800 (PST)
Message-ID: <d041eb0c-9339-4280-8a10-5a267ca950fd@suse.com>
Date: Thu, 21 Nov 2024 13:31:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.20 release schedule
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: oleksii.kurochko@gmail.com, Xen-devel <xen-devel@lists.xenproject.org>
References: <e470822f190a41b2f1600821b81d7ad158ed33db.camel@gmail.com>
 <227db2a2-d36f-453e-8886-b8ef0d5f9616@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: <227db2a2-d36f-453e-8886-b8ef0d5f9616@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.10.2024 14:25, Andrew Cooper wrote:
> On 21/10/2024 1:02 pm, oleksii.kurochko@gmail.com wrote:
>> Hello everyone,
>>
>> As there were no objections to the proposed release schedule
>> (https://lore.kernel.org/xen-devel/CAMacjJxEi6PThwH2=NwG3He8eQn39aiaxZCw3bQF7i4YcmjuNw@mail.gmail.com/
>> ), I've updated the wiki with the schedule for Xen 4.20 release
>> (https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes), and
>> it is now accessible from
>> https://xenbits.xen.org/docs/unstable-staging/support-matrix.html.
> 
> I have a blocker to raise (against myself...) and no good idea of how to
> proceed.
> 
> The for_each_bit work has a unexpected bug.
> 
> Â Â Â  for_each_bit ( ... )
> Â Â Â  {
> Â Â  Â Â Â Â  if ( ... )
> Â Â Â  Â Â  Â  Â Â  break;
> Â Â Â  }
> 
> will fall into an infinite loop.Â  This is caused by for_each_bit()
> hiding a double for() loop, in order to declare two scope-local
> variables of different types.
> 
> The two variables are one copy of the source expression (really quite
> important to keep), and one unsigned int iterator (improved optimisation
> capability by not using a wider-scope variable).
> 
> Options are (off the top of my head)
> 
> 1) Always take the iterator from outer scope
> 2) Iterator always the same type as the source expression
> 3) Figure out some way of expressing "once" in the outer loop
> 
> Or anything else that I've missed.

How about requiring the use of another auxiliary construct in place of "break"
inside such loop bodies:

#define for_each_bit_break ({ __v = 0; break; })

? Of course the risk remains that people might forget that plain break can't
be used there.

If we expected such may want/need using elsewhere as well, introduce

#define BREAK(stmt...) ({ stmt; break; })

and then use that for for_each_bit_break. Albeit the latter may face your
opposition as to using a statement as macro argument; you didn't like such
in my ASSERT_UNREACHABLE() extension proposal.

Another option, requiring such conditions to come ahead of anything changing
state, would be to require use of "continue" in place of "break". That would
result in a number of useless loop iterations, though. Plus it would require
the exit condition to hold for all subsequent values of "iter", too. IOW not
something I'd seriously consider ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 12:54:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 12:54:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841496.1256979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE6hC-00082G-2M; Thu, 21 Nov 2024 12:54:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841496.1256979; Thu, 21 Nov 2024 12: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 1tE6hB-000829-Vq; Thu, 21 Nov 2024 12:54:05 +0000
Received: by outflank-mailman (input) for mailman id 841496;
 Thu, 21 Nov 2024 12:54: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=yn03=SQ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tE6hA-000821-Oa
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 12:54:04 +0000
Received: from mail-oi1-x233.google.com (mail-oi1-x233.google.com
 [2607:f8b0:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad73cb04-a807-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 13:54:00 +0100 (CET)
Received: by mail-oi1-x233.google.com with SMTP id
 5614622812f47-3e6104701ffso529814b6e.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 04:54: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: ad73cb04-a807-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoyMzMiLCJoZWxvIjoibWFpbC1vaTEteDIzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImFkNzNjYjA0LWE4MDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTkzNjQwLjg2NzM0NCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732193639; x=1732798439; 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=VLPa+qQyIO24nnTKnhVPUqe2MzOVpFhfno5x/j5Xi0Q=;
        b=QzoswdoBQulZ3Grci5ufza9523cj4oUl3LFqtdA4w3sWQSbx5LilmOXP9bAyXr6t1S
         QitEdkKwIqQcwbzeRHCMq9UwurFACCBDlJ2VJ3+pJdWMw9dSd1PnUYAffKBZ9rg3zvvg
         DwaNiReFFdp/pWP/VFaNdJkBOIBpOGP78P2cc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732193639; x=1732798439;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=VLPa+qQyIO24nnTKnhVPUqe2MzOVpFhfno5x/j5Xi0Q=;
        b=H+2+4rGcK40nUiJD2KqLhlDcmfu877Frtf7N8aGPnUM8KAW1BJqUZikJCSwkRtuyZ/
         lYpkvXqefvnna35+xW1VPC+2tuiuFfRoRzz0RE/fuSLykhdMnRD9+5dJoEn9Zk54EAQy
         8nOssA3u47gT4+fXGMnylGJFF6m1Jt6l6TlMXu3eDuHQ3UTQJ4wVa3uDyio6clnl8xhe
         XZpTTFcC8t6jsw1rgEpD2Fk8/DhPTctLHo6Sfxr9xpE7G3kopa2p7iOiWuoMMKQ4oovQ
         J+uD1RcLp+s34N8t3Fm2RUC220KxksHRvp6DRWR7AgFlT3s0HxN+eDOBZCg/kqGltAWa
         5wZw==
X-Forwarded-Encrypted: i=1; AJvYcCW7NDynEG9B8ge4oRd/j4nUgkQFkcEFHLPbZH5FSpm6pHZRnkPovt31/mj7oRxPPRSwEUi46Bw8dNQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFP0ffuF2Xeah2pERfvuAeTSzUnpIb6KaeXHvua5o34VN3ef9Z
	nw9OqJnN1N1U+uXTkrVaJ6ez25Z64c4gGU3bzg80F1mPurfq2vG967RlDTpZHX/ijbEHTqWeBTn
	QT0uVgq83bADTsEY0zUNT2+nIAWhMZoM5NuZAQg==
X-Gm-Gg: ASbGncsjaKqTbkgBivL7GTmel9gfrFpvRBwqrsYBq+niU+qgX8OL16G3OKOjPZCC6FM
	42CrhqdOnZXb9EOw/7BG7XD0hZsFQI+SZSw==
X-Google-Smtp-Source: AGHT+IFOmCUreIG0NoTBI7BBYX0sf6zyXXLFu7pJYpzd5rkcHzsMuzuq4SHX9Lr6ocqwaL2DFuxAX3VrhtwD8HIyH5o=
X-Received: by 2002:a05:6808:144c:b0:3e5:f656:dd19 with SMTP id
 5614622812f47-3e7eb6f1e6bmr6737995b6e.19.1732193639483; Thu, 21 Nov 2024
 04:53:59 -0800 (PST)
MIME-Version: 1.0
References: <e470822f190a41b2f1600821b81d7ad158ed33db.camel@gmail.com> <227db2a2-d36f-453e-8886-b8ef0d5f9616@citrix.com>
In-Reply-To: <227db2a2-d36f-453e-8886-b8ef0d5f9616@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Thu, 21 Nov 2024 12:53:48 +0000
Message-ID: <CACHz=ZjnfL_MorLcwduhJpUjFLX2y3KtQE8Pd4s=V68OgiV_rA@mail.gmail.com>
Subject: Re: Xen 4.20 release schedule
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: oleksii.kurochko@gmail.com, Xen-devel <xen-devel@lists.xenproject.org>, 
	Community Manager <community.manager@xenproject.org>, 
	"committers @ xenproject . org" <committers@xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Oct 30, 2024 at 1:25=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> On 21/10/2024 1:02 pm, oleksii.kurochko@gmail.com wrote:
> > Hello everyone,
> >
> > As there were no objections to the proposed release schedule
> > (https://lore.kernel.org/xen-devel/CAMacjJxEi6PThwH2=3DNwG3He8eQn39aiax=
ZCw3bQF7i4YcmjuNw@mail.gmail.com/
> > ), I've updated the wiki with the schedule for Xen 4.20 release
> > (https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes), and
> > it is now accessible from
> > https://xenbits.xen.org/docs/unstable-staging/support-matrix.html.
>
> I have a blocker to raise (against myself...) and no good idea of how to
> proceed.
>
> The for_each_bit work has a unexpected bug.
>
>     for_each_bit ( ... )
>     {
>         if ( ... )
>             break;
>     }
>
> will fall into an infinite loop.  This is caused by for_each_bit()
> hiding a double for() loop, in order to declare two scope-local
> variables of different types.
>
> The two variables are one copy of the source expression (really quite
> important to keep), and one unsigned int iterator (improved optimisation
> capability by not using a wider-scope variable).
>
> Options are (off the top of my head)
>
> 1) Always take the iterator from outer scope
> 2) Iterator always the same type as the source expression
> 3) Figure out some way of expressing "once" in the outer loop
>
> Or anything else that I've missed.
>
> ~Andrew
>

Something like

#define for_each_set_bit(iter, val)                     \
    for ( typeof(val) __v =3D (val), __c=3D1; __c; __c=3D0)   \
        for ( unsigned int (iter);                      \
              __v && ((iter) =3D ffs_g(__v) - 1, true);   \
              __v &=3D __v - 1 )

?

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 13:40:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 13:40:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841504.1256988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE7Pm-00065g-Cm; Thu, 21 Nov 2024 13:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841504.1256988; Thu, 21 Nov 2024 13: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 1tE7Pm-00065Z-AD; Thu, 21 Nov 2024 13:40:10 +0000
Received: by outflank-mailman (input) for mailman id 841504;
 Thu, 21 Nov 2024 13: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE7Pk-00065T-B1
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 13:40:08 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cf89ba9-a80e-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 14:40:04 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a99f3a5a44cso137831466b.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 05:40: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
 a640c23a62f3a-aa4f4368728sm81853266b.175.2024.11.21.05.40.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 05:40: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: 1cf89ba9-a80e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFjZjg5YmE5LWE4MGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTk2NDA0LjI0OTk3NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732196404; x=1732801204; 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=rER2P1S97qYIe3gE3lSaUMaeg+LUuhJHScG/Xzp1hAU=;
        b=Y7QpoFAltNLp4Jnxmwq/GSmGWKEJu5bbiq6TU8HdwIJ4ZGlTkx5Wlh3WhLDzTizQDl
         hxMrn/iQ6Ex8ofl0gGOsI0vW9Yq7H08X7Ui6flrsByVPaeG579EbYlMD0yTpoS1I7RWN
         Z7RkHiMCCSJIngeq10E9YTH3fKU8fJGKd6NRsTEn76/5zYQxUV8HVGZlEMqnKF/VSuuy
         2NjfTCpcTeOPINpcdDH3PDvz+3xenjt1EViU2PDbtchaI79s8j02JlUDPeBYfpMqW0Sp
         4Wrxrf/oxPmt0wL+qxE3H3JBzz61vStfBNprJmJ75A27FQDZEzVUdxEvcnfePFIwg8OH
         GR4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732196404; x=1732801204;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rER2P1S97qYIe3gE3lSaUMaeg+LUuhJHScG/Xzp1hAU=;
        b=dcWkCEHtiO+W3enVDMnDuxh3UoD8ikAfP1gBNgROmmoW/3XlgU9GApbwNbTyjntV78
         injIi9m55jBR4AGaOpyf3lRUFChdOZK42Cv6A4cz9k+43Tsx6GKVBpvQnDTCHtr9oY7r
         Ca10jbEpnd7kJXLMOn3TFOu3LC0kCWejk60JTpK86dUB1x9FtNFh8r1DVDyN0JpWIAWj
         uhcsn3LNYuG3iQX/cJuE5L3atC22dRFFFJGowSpEQ9uRIHjhsQnQSPHGJeo2KogHWGHo
         9PpPkFIpWjloGJFnFbP1wiJZOCZk2Ei9AXnK0J98+EDjmy9f7Mv8PtWiAetdSSFfmKqf
         LCYA==
X-Forwarded-Encrypted: i=1; AJvYcCV/DzttepeWQd0whnNIifPX3YcY4vLcujCl/Do/OwTD3DqmhVv5AB4t24ARhMzKDxAHHRWFYGBQ6s4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOWSMfWwuzFS/8UtKrA2WCVz5qkIWXGPdTLT8kK6xiTvcln2Qj
	+DMube2Ie3kcxNjkRcVo0NUF21bE5IkwIewkPou6n7CGtq+GzR1ROXG28y4LDQ==
X-Gm-Gg: ASbGncupkxY85hnxtoDJK6fb+qLo75YlK6nNO5QCgPoTs95M3h8uJWMIYzrtuSQiCot
	D8cb65O7G4raxicOf8Wa+NIxhTt7GvheRaI/ghnd9ad7MMameuTq2+6FR5QKZB+nrVLERgwrCT6
	UqxDDx98P5eyML6u+ZgoTYya3po3DkF7kdTgjXh7SQ0v2xN0CDITDgQ3+ohoFJ9WmfkpDJkGfm+
	bHDEJdodOFweKXK+/ezEE1VzsO8New6rkOxXSg/j4Jg+OkXxBH67Gy5JUxlWcWsv+RG0IeLsLdn
	dXUxY20UWpAWElresI81ejrfeiMhqnIU1P8=
X-Google-Smtp-Source: AGHT+IH1Jau7BJ+jBfLtqR5Y4JObGIflkGNWWF1rVezWjxrlVcOrGvnSSMoLVDFhkOMhcXXpfbR3mw==
X-Received: by 2002:a17:907:7f8f:b0:a99:ec3c:15cd with SMTP id a640c23a62f3a-aa4dd74b6ffmr580996466b.54.1732196403593;
        Thu, 21 Nov 2024 05:40:03 -0800 (PST)
Message-ID: <21cfb919-9150-4276-b613-d972a4b1d864@suse.com>
Date: Thu, 21 Nov 2024 14:40:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.20 release schedule
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: oleksii.kurochko@gmail.com, Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers @ xenproject . org" <committers@xenproject.org>
References: <e470822f190a41b2f1600821b81d7ad158ed33db.camel@gmail.com>
 <227db2a2-d36f-453e-8886-b8ef0d5f9616@citrix.com>
 <CACHz=ZjnfL_MorLcwduhJpUjFLX2y3KtQE8Pd4s=V68OgiV_rA@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: <CACHz=ZjnfL_MorLcwduhJpUjFLX2y3KtQE8Pd4s=V68OgiV_rA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2024 13:53, Frediano Ziglio wrote:
> On Wed, Oct 30, 2024 at 1:25â€¯PM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>
>> On 21/10/2024 1:02 pm, oleksii.kurochko@gmail.com wrote:
>>> Hello everyone,
>>>
>>> As there were no objections to the proposed release schedule
>>> (https://lore.kernel.org/xen-devel/CAMacjJxEi6PThwH2=NwG3He8eQn39aiaxZCw3bQF7i4YcmjuNw@mail.gmail.com/
>>> ), I've updated the wiki with the schedule for Xen 4.20 release
>>> (https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes), and
>>> it is now accessible from
>>> https://xenbits.xen.org/docs/unstable-staging/support-matrix.html.
>>
>> I have a blocker to raise (against myself...) and no good idea of how to
>> proceed.
>>
>> The for_each_bit work has a unexpected bug.
>>
>>     for_each_bit ( ... )
>>     {
>>         if ( ... )
>>             break;
>>     }
>>
>> will fall into an infinite loop.  This is caused by for_each_bit()
>> hiding a double for() loop, in order to declare two scope-local
>> variables of different types.
>>
>> The two variables are one copy of the source expression (really quite
>> important to keep), and one unsigned int iterator (improved optimisation
>> capability by not using a wider-scope variable).
>>
>> Options are (off the top of my head)
>>
>> 1) Always take the iterator from outer scope
>> 2) Iterator always the same type as the source expression
>> 3) Figure out some way of expressing "once" in the outer loop
>>
>> Or anything else that I've missed.
>>
>> ~Andrew
>>
> 
> Something like
> 
> #define for_each_set_bit(iter, val)                     \
>     for ( typeof(val) __v = (val), __c=1; __c; __c=0)   \
>         for ( unsigned int (iter);                      \
>               __v && ((iter) = ffs_g(__v) - 1, true);   \
>               __v &= __v - 1 )
> 
> ?

Hmm, right, but then we don't even need a 2nd variable, do we?

#define for_each_set_bit(iter, val)                     \
    for ( typeof(val) __v = (val); __v; __v = 0 )       \
        for ( unsigned int (iter);                      \
              __v && ((iter) = ffs_g(__v) - 1, true);   \
              __v &= __v - 1 )

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 13:48:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 13:48:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841513.1256999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE7XI-0006mz-4B; Thu, 21 Nov 2024 13:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841513.1256999; Thu, 21 Nov 2024 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 1tE7XI-0006ms-1V; Thu, 21 Nov 2024 13:47:56 +0000
Received: by outflank-mailman (input) for mailman id 841513;
 Thu, 21 Nov 2024 13:47: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=yn03=SQ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tE7XG-0006mk-Mf
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 13:47:54 +0000
Received: from mail-oi1-x235.google.com (mail-oi1-x235.google.com
 [2607:f8b0:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31bcffb4-a80f-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 14:47:49 +0100 (CET)
Received: by mail-oi1-x235.google.com with SMTP id
 5614622812f47-3e5ffbc6acbso570398b6e.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 05:47: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: 31bcffb4-a80f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1vaTEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMxYmNmZmI0LWE4MGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTk2ODY5LjIzNjU1Nywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732196868; x=1732801668; 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=lktt4rpgGO68szIijmKgn4n1uRFXqIXG3qCErjJvxvM=;
        b=EVdTHVt+bPCCpSkHAywydrwRCkzBJMP4uRE9oHJM6QwNZkAsq3JxOOEmGdpGr49kcE
         /XF65569N13KtDl2UVtgEtXncdiFP/viXEhMXHW33WDJlz34pULtb1h4JsOYPRCj55NE
         Z85ArGef+UZQf8bKpAfyDQK4tWB9+QqXLc1HY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732196868; x=1732801668;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lktt4rpgGO68szIijmKgn4n1uRFXqIXG3qCErjJvxvM=;
        b=rWB/2i0wAXSxGkrEgddrC3m9C+a3/Mw6ilamlqZSDqVes775yybWmqyPv1NFy/U2sI
         /6s40af5mX5YI0y21TiKFTQrEsFkGH6rmxX5AYOJ8e5oGV2eqZ1UK+1MywFxsHVI8zl1
         t3oHpUn0cnCRLcQm9K5AdK9MZYaX28voAjm/w4+M3wY6vI5Ba6f6BRY4t8TBotOGS/MR
         tEwWdFew+Nl2WdosMDQYNgqudoT95W79lkQQdvvXST8kF72EkAL0OiK+fubMxOl1VYCX
         VmrxYvXtNjwajfr0qg6k1Qkt5vPqa0q6TRRGGWS/LYEXCGj266LvFqi0QZjGcsLDhhkF
         W7nQ==
X-Forwarded-Encrypted: i=1; AJvYcCXyrFqJ1BvR3sIq3moPYM47mGrz/C1TLkdAh+caJWZA112qIQR5KCJtiZZG7Jvoxb/0Sl2oXnNd+vo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5OoqkvAzsib1LaoHa9RUU5vpvH/tjXYb6S3MaTzCAgzO/5fln
	Anqx9T2Wekl403FYhDlNURiPpy/VaxAHB3qUlsuz3jDsY+XdgkvkHsWYE5DYo9FgL3Q8/Mxnuzs
	ewu6GvaUcGM86sy2u4c7uEWqshdUBVuY8LS4w7A==
X-Gm-Gg: ASbGncvaYqFICJayTVt0oQ+Ea5g5plLWxt0N/SAHoLeaIOHCSBzuFC8f+aQSHcV/h9n
	pRl8exD3XvtSc66H0DSXvLRIGu5rdwTSjiQ==
X-Google-Smtp-Source: AGHT+IHYMF04+CLdS72p7w8qGSmoBkMwDkkJSxlS2G8gM46ZEjEKol1CSouIa+nuVqZlgo7pLSx6uPM8McCC1l3JYpw=
X-Received: by 2002:a05:6808:f11:b0:3e5:c7f8:ad7d with SMTP id
 5614622812f47-3e7eb7d4648mr6547344b6e.39.1732196867915; Thu, 21 Nov 2024
 05:47:47 -0800 (PST)
MIME-Version: 1.0
References: <e470822f190a41b2f1600821b81d7ad158ed33db.camel@gmail.com>
 <227db2a2-d36f-453e-8886-b8ef0d5f9616@citrix.com> <CACHz=ZjnfL_MorLcwduhJpUjFLX2y3KtQE8Pd4s=V68OgiV_rA@mail.gmail.com>
 <21cfb919-9150-4276-b613-d972a4b1d864@suse.com>
In-Reply-To: <21cfb919-9150-4276-b613-d972a4b1d864@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Thu, 21 Nov 2024 13:47:36 +0000
Message-ID: <CACHz=Zhf6Gh62eeWj-jBTcMrOpa1g+_dC-uT-D8vF2BLbFwX0Q@mail.gmail.com>
Subject: Re: Xen 4.20 release schedule
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, oleksii.kurochko@gmail.com, 
	Xen-devel <xen-devel@lists.xenproject.org>, 
	Community Manager <community.manager@xenproject.org>, 
	"committers @ xenproject . org" <committers@xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 21, 2024 at 1:40=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 21.11.2024 13:53, Frediano Ziglio wrote:
> > On Wed, Oct 30, 2024 at 1:25=E2=80=AFPM Andrew Cooper <andrew.cooper3@c=
itrix.com> wrote:
> >>
> >> On 21/10/2024 1:02 pm, oleksii.kurochko@gmail.com wrote:
> >>> Hello everyone,
> >>>
> >>> As there were no objections to the proposed release schedule
> >>> (https://lore.kernel.org/xen-devel/CAMacjJxEi6PThwH2=3DNwG3He8eQn39ai=
axZCw3bQF7i4YcmjuNw@mail.gmail.com/
> >>> ), I've updated the wiki with the schedule for Xen 4.20 release
> >>> (https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes), an=
d
> >>> it is now accessible from
> >>> https://xenbits.xen.org/docs/unstable-staging/support-matrix.html.
> >>
> >> I have a blocker to raise (against myself...) and no good idea of how =
to
> >> proceed.
> >>
> >> The for_each_bit work has a unexpected bug.
> >>
> >>     for_each_bit ( ... )
> >>     {
> >>         if ( ... )
> >>             break;
> >>     }
> >>
> >> will fall into an infinite loop.  This is caused by for_each_bit()
> >> hiding a double for() loop, in order to declare two scope-local
> >> variables of different types.
> >>
> >> The two variables are one copy of the source expression (really quite
> >> important to keep), and one unsigned int iterator (improved optimisati=
on
> >> capability by not using a wider-scope variable).
> >>
> >> Options are (off the top of my head)
> >>
> >> 1) Always take the iterator from outer scope
> >> 2) Iterator always the same type as the source expression
> >> 3) Figure out some way of expressing "once" in the outer loop
> >>
> >> Or anything else that I've missed.
> >>
> >> ~Andrew
> >>
> >
> > Something like
> >
> > #define for_each_set_bit(iter, val)                     \
> >     for ( typeof(val) __v =3D (val), __c=3D1; __c; __c=3D0)   \
> >         for ( unsigned int (iter);                      \
> >               __v && ((iter) =3D ffs_g(__v) - 1, true);   \
> >               __v &=3D __v - 1 )
> >
> > ?
>
> Hmm, right, but then we don't even need a 2nd variable, do we?
>
> #define for_each_set_bit(iter, val)                     \
>     for ( typeof(val) __v =3D (val); __v; __v =3D 0 )       \
>         for ( unsigned int (iter);                      \
>               __v && ((iter) =3D ffs_g(__v) - 1, true);   \
>               __v &=3D __v - 1 )
>
> Jan

In theory it should work too, not sure if the variable aliasing would
compromise the assembly output. We depend on the compiler doing some
optimizations.

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 13:52:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 13:52:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841521.1257008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE7bn-0008RI-Kt; Thu, 21 Nov 2024 13:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841521.1257008; Thu, 21 Nov 2024 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 1tE7bn-0008RB-IH; Thu, 21 Nov 2024 13:52:35 +0000
Received: by outflank-mailman (input) for mailman id 841521;
 Thu, 21 Nov 2024 13:52: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tE7bm-0008R5-O2
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 13:52:34 +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 d8aab804-a80f-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 14:52:28 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5d00e24d874so709585a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 05:52:28 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f419dd9dsm84298166b.90.2024.11.21.05.52.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 05:52: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: d8aab804-a80f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ4YWFiODA0LWE4MGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTk3MTQ4LjY0NDkzLCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732197148; x=1732801948; 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=C1GO73gRzh4/IL3dMWuUkssDz5TlqQQuoYV3X0iBIrM=;
        b=CmWpoc93viM6Gk5LlyhN+Z4C+24bzVpMV+nw8lGRSRUB1SleKZp3lf1i919iutPbeg
         MI6L787VmJLG9usQNTcJDNz28xdhVdYbl3IqwVSbER39RmgU5Wa9KI92Of9AMBLE1DKv
         aSbrFZh2vAi5QGZt6N/rHttOJbPuH8T5ldhRQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732197148; x=1732801948;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C1GO73gRzh4/IL3dMWuUkssDz5TlqQQuoYV3X0iBIrM=;
        b=do7qDv6bRuK6hH23NbtzCdec4Ii8SFhEL+gDI4vwgMF0eUlBaHtVNc8VKkek0RqST8
         3xE7XKoSx/CQHBcpvWYcBmgse1/8na7X93ZEXmFVFwpQgEz1AlM7Y6OR6BZ3MsDIreCs
         fMlnBDAz+kVe0NztVQYt68nCuMF6QxrlI5v8AIgB/Xx3k1iVK7u7fiT/W6iljp3JvOSf
         /j+sZ0qop80PMnMFoSHyLj9WvrclyC+JT3fvBsaXmJqgCY6BtGtBlyitjZLkYIHkJRdV
         m5Jf+Fb4RyHYIVzoibHq6NSYj6MyATPM606I6+zFA4xZLFjUYIsWdAvPCjZbBW+BRDKd
         fFSQ==
X-Forwarded-Encrypted: i=1; AJvYcCWaf4DGKaULJeb8SmTTN7k5gv3EP3xcJivStFOvY8SE5g+FS7JMvzHAdA1lW20uBFq8RUegEbQeqfU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1ZG/MIZ/TmPP1G3fiTkQyqF+FYw7n9NSUcTrbSl9ND9JIYlYN
	NT6CqRsQQbNSM9rQxke37g9WRbaSVxsGYLCccl96emKXlxDm00EhfsTfNkfWGlCpbGD4pA7VdxM
	W
X-Gm-Gg: ASbGncs1tWXprLbPfvrfoSiZ42TnVa7QEGo6T1duKnnu1sZNPMDGbJt7IJWYogqa3gu
	R1iJ9cl0BqHO8+WjlWvTrmf9tdJCpVg7AizyxZznF4fFboeVXzG8+z16CqKCFpf1MbFZQr16jTG
	/gjqArlJEfviGuR2jVts8YpRJcs5ZzqwuUu4IBYGtaFP/NnUt5v2o4McZ772zcxRH+cmlybqYbf
	M0a0uc9kXYyRpILuDaExabzT4FsEV0gyIX2Z65U1ON58r+EaNLh39zTVpZf3l0=
X-Google-Smtp-Source: AGHT+IHZ5Titzq8tKB6Lyri4gRzr48V5OEkOSeEr+k6N83DC7BpGc1wiicRN8t0VOkkeAcm8JmbQAg==
X-Received: by 2002:a17:907:7f9e:b0:a99:482c:b2b9 with SMTP id a640c23a62f3a-aa4dd6b1b7emr610186166b.29.1732197148113;
        Thu, 21 Nov 2024 05:52:28 -0800 (PST)
Message-ID: <28d69ba9-7f10-443d-88ca-71971140f108@citrix.com>
Date: Thu, 21 Nov 2024 13:52:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Load microcode much earlier on boot
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241119215708.2890691-1-andrew.cooper3@citrix.com>
 <7ffe1d78-188b-495b-914a-663181d9faa8@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <7ffe1d78-188b-495b-914a-663181d9faa8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/11/2024 10:44 am, Jan Beulich wrote:
> On 19.11.2024 22:57, Andrew Cooper wrote:
>> Resolve the todo, and move microcode loading to be the eariest action after
>> establishing a console.
> So yes, this is merely strengthening a dependency we already have:
> bootstrap_map_addr() arranging to avoid allocating any page table memory.
> Yet don't we rather need to move away from this? We don't know what's in
> the excess space we map, and hence we better wouldn't have any (cachable)
> mappings thereof.

I don't see it this way.

Yes it is somewhat dodgy that bootstrap_map*() blindly uses 2M pages.

It's a problem with cacheability (in theory at least; TLBs tend to
splinter mappings on MTRR mismatch).Â  It's a hard problem with the RMP
table (AMD SEV-SNP), where any access into the page yields #PF[Rsvd] if
there's any overlap with the RMP (locked in place by firmware and not
always 2M aligned).

But, any fix to this needs to fix *all* users of bootstrap_map*(),
including the move_memory() loop.

So I don't see any interaction with how early or late the early-map
infrastructure is used.

~Andrew

P.S. I have a few ideas on how to address this.

With only 2 extra pagetables in .init.bss, we can support any arbitrary
single mapping with 4k alignment.

move_memory() is the only user that makes multiple mappings, and it's
broken anyway.Â  I'm now certain that it does get memmove() wrong if the
move has a partial overlap.

However, move_memory() always has a good destination pointer in the
directmap, so I've got a crazy idea to fix the memmove() problem by also
hooking the bootmap into idle_pg_table[511] creating a high alias of the
mapping, and the source pointer can choose whichever of the aliases are
the correct side of the directmap.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 13:56:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 13:56:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841533.1257019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE7fy-0000eL-82; Thu, 21 Nov 2024 13:56:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841533.1257019; Thu, 21 Nov 2024 13:56: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 1tE7fy-0000eE-4t; Thu, 21 Nov 2024 13:56:54 +0000
Received: by outflank-mailman (input) for mailman id 841533;
 Thu, 21 Nov 2024 13:56: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tE7fx-0000e8-D2
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 13:56:53 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72e9a985-a810-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 14:56:47 +0100 (CET)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-2f75c56f16aso11001951fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 05:56:47 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cff44de5easm1862316a12.11.2024.11.21.05.56.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 05:56: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: 72e9a985-a810-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmMiLCJoZWxvIjoibWFpbC1sajEteDIyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcyZTlhOTg1LWE4MTAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMTk3NDA3LjQ0MTc1NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732197407; x=1732802207; 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=zqLC8Pz2gcau834AtUw4JojvAPpbkb4hEOalyD/543Y=;
        b=KeKWN+R1NmgCO/A+1g+YuGhMPGUH0C7S9xwUQ4yfXblEJCKHTFOo0AnV4vwm/ZQMkR
         INgiEYplUnsjbd00wMJ4VAwrjbtzAi1DxdOO32rHlNEdZCDm/hQH9krO6fdOAEBmF9hi
         U/TKdwtrM6pw3SBVih8F5vl4jKv7m/T7iaB4k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732197407; x=1732802207;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zqLC8Pz2gcau834AtUw4JojvAPpbkb4hEOalyD/543Y=;
        b=l4HQvUY2/dFO+3Y11AuGykkpEwuR3mtplmW7e+ufUXmxdDhXeZDnY6aHB00Rora4j3
         gXRx+hmuD85bXqIJavb5KU63b0a7WefMr5F/n9EqSW08qTVDiUquWSInwDUr//N8fBfF
         wOCFtcG26Nhqy8NpbjaUv2F7mPCjdVJFnqkHjGUFxGu4mIRKBJrhResGRDqSu8Rj54yh
         XpzA/eX8s/l4AtBRovpKKx9rrdAVlUfSyFmsBXW+WKS5O5H0Zb2w+6p6ziGqWcvJXv2C
         UMtl72NAHSZ29xqzrGXiKr8uAz1sw0kEbuF3OQHYpg4ybqzQ2QxCC3PbcGPa5ji019SC
         o/Iw==
X-Forwarded-Encrypted: i=1; AJvYcCVJ2el7Q5u25qYMRYzqju8DOFtjkEJkM/8zK/mJlg4Q81Id/81eNAxkUxCqmv2eFK7SKWMvKOMOqw4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgeyexS5+aJXYnuGzc+Y8Qd5aleDlACMaG/mg1/Gi+Rf9tB7u1
	nPlnxvUMngSOCy5swxdGP10yBuAi4dvh+aQlNXF7nchjKttTxRcPnwW5S7A+0V4=
X-Gm-Gg: ASbGncvWlG41UiyHHmZbjtWkRcJYSIXS6eFz1odR0982a2TRBhMdynZ7hP9kNgeztHG
	bDuFJt6sNjU5U+4eT3Jqv9q1AXTc9j2PIZ8KvXLHUbjq2vZAfNz9aIC6KtTEeOhmZrmRo6QcNrt
	rR8DyfeI1eXeN4fUklFt0oubwdf0NSQEczPrZxS70xAp59dtTnp2qyTFhf2gGeVRsePyoUcutwT
	aoVLK04fliVWgtIG4mS1iIKBM3lRB6OEstXakM4I8hV6/DBiGuMn1AfarQDFmg=
X-Google-Smtp-Source: AGHT+IEC7lMkZVWOhiiNZMndp6Y06EpGsFlH0QRxGCLPRwiGHxTS+GBiM4h/a6rVJyQ9/G3SXF+AHQ==
X-Received: by 2002:a2e:a906:0:b0:2fb:51a2:4f63 with SMTP id 38308e7fff4ca-2ff8dc89e2cmr40003191fa.34.1732197406741;
        Thu, 21 Nov 2024 05:56:46 -0800 (PST)
Message-ID: <604cf91c-0ccf-48d6-a2fa-cfaa320a163c@citrix.com>
Date: Thu, 21 Nov 2024 13:56:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.20 release schedule
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: oleksii.kurochko@gmail.com, Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers @ xenproject . org" <committers@xenproject.org>
References: <e470822f190a41b2f1600821b81d7ad158ed33db.camel@gmail.com>
 <227db2a2-d36f-453e-8886-b8ef0d5f9616@citrix.com>
 <CACHz=ZjnfL_MorLcwduhJpUjFLX2y3KtQE8Pd4s=V68OgiV_rA@mail.gmail.com>
 <21cfb919-9150-4276-b613-d972a4b1d864@suse.com>
 <CACHz=Zhf6Gh62eeWj-jBTcMrOpa1g+_dC-uT-D8vF2BLbFwX0Q@mail.gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <CACHz=Zhf6Gh62eeWj-jBTcMrOpa1g+_dC-uT-D8vF2BLbFwX0Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/11/2024 1:47 pm, Frediano Ziglio wrote:
> On Thu, Nov 21, 2024 at 1:40â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>> On 21.11.2024 13:53, Frediano Ziglio wrote:
>>> On Wed, Oct 30, 2024 at 1:25â€¯PM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>>> On 21/10/2024 1:02 pm, oleksii.kurochko@gmail.com wrote:
>>>>> Hello everyone,
>>>>>
>>>>> As there were no objections to the proposed release schedule
>>>>> (https://lore.kernel.org/xen-devel/CAMacjJxEi6PThwH2=NwG3He8eQn39aiaxZCw3bQF7i4YcmjuNw@mail.gmail.com/
>>>>> ), I've updated the wiki with the schedule for Xen 4.20 release
>>>>> (https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes), and
>>>>> it is now accessible from
>>>>> https://xenbits.xen.org/docs/unstable-staging/support-matrix.html.
>>>> I have a blocker to raise (against myself...) and no good idea of how to
>>>> proceed.
>>>>
>>>> The for_each_bit work has a unexpected bug.
>>>>
>>>>     for_each_bit ( ... )
>>>>     {
>>>>         if ( ... )
>>>>             break;
>>>>     }
>>>>
>>>> will fall into an infinite loop.  This is caused by for_each_bit()
>>>> hiding a double for() loop, in order to declare two scope-local
>>>> variables of different types.
>>>>
>>>> The two variables are one copy of the source expression (really quite
>>>> important to keep), and one unsigned int iterator (improved optimisation
>>>> capability by not using a wider-scope variable).
>>>>
>>>> Options are (off the top of my head)
>>>>
>>>> 1) Always take the iterator from outer scope
>>>> 2) Iterator always the same type as the source expression
>>>> 3) Figure out some way of expressing "once" in the outer loop
>>>>
>>>> Or anything else that I've missed.
>>>>
>>>> ~Andrew
>>>>
>>> Something like
>>>
>>> #define for_each_set_bit(iter, val)                     \
>>>     for ( typeof(val) __v = (val), __c=1; __c; __c=0)   \
>>>         for ( unsigned int (iter);                      \
>>>               __v && ((iter) = ffs_g(__v) - 1, true);   \
>>>               __v &= __v - 1 )
>>>
>>> ?

Yes, that was the option 3 I was thinking about, although I'd not got as
far as doing the thinking bit yet.

>> Hmm, right, but then we don't even need a 2nd variable, do we?
>>
>> #define for_each_set_bit(iter, val)                     \
>>     for ( typeof(val) __v = (val); __v; __v = 0 )       \
>>         for ( unsigned int (iter);                      \
>>               __v && ((iter) = ffs_g(__v) - 1, true);   \
>>               __v &= __v - 1 )

This does look like a better option.

>>
>> Jan
> In theory it should work too, not sure if the variable aliasing would
> compromise the assembly output. We depend on the compiler doing some
> optimizations.

We already depend on some optimisation to get rid of the double loop
(both -O2 and -O1 cope).

I'll double check the result here too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 14:50:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 14:50:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841544.1257029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE8VY-0008CP-0F; Thu, 21 Nov 2024 14:50:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841544.1257029; Thu, 21 Nov 2024 14:50: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 1tE8VX-0008CI-Sw; Thu, 21 Nov 2024 14:50:11 +0000
Received: by outflank-mailman (input) for mailman id 841544;
 Thu, 21 Nov 2024 14:50: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tE8VW-0008CA-St
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 14:50:10 +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 e4d18fd4-a817-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 15:50:05 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5cfa1ec3b94so1255904a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 06:50:05 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5cff454f905sm1918263a12.87.2024.11.21.06.50.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 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: e4d18fd4-a817-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzYiLCJoZWxvIjoibWFpbC1lZDEteDUzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU0ZDE4ZmQ0LWE4MTctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjAwNjA1LjE4MTYwMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732200604; x=1732805404; 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=FLxDW78Evs4vbLxthbNP1M7wd0kSNpfLNBWorWpiKos=;
        b=C8TJ4FOBb80fKfsx28PRYakhufCdGZvEXmsj1ejhTbNx66nBuNVx1b0/7OoDDpulzS
         DhP39irY5o2OLVMEN1IjnJDclzaP69nPubQ5PycqA6WoWLY9lbgq8kzhYaxMDTma225U
         Iq3Ic2X3gHRK1xnJEhe9tv9fSSr2JGNWf3d1Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732200604; x=1732805404;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=FLxDW78Evs4vbLxthbNP1M7wd0kSNpfLNBWorWpiKos=;
        b=ANulgsZ3B5tYAHs9QWpvvSwD8CVS5Pibs9QBG9HY+KW3GWV/0O+NvaBikDftOK8oBF
         7z4nZEHnXJu/M6v0GQRjJQOlQVOMM7q7oYvSDRhcLoOasRT5jhA3zqz3mXQMul3oHwrg
         BFG1Xe60hAFgrOpx7Jgu+rds1EQyAfgm0kmL8NXKv3MabMuZjlrconCEkWMn22lvZ3Iq
         G5xLWTqzYcXUVbVcCbwDpGRTiI0NWRV98lZAPib5o3coBwXFwKLU+NWcrK67lkeZWIZy
         sl1Zl4KJs4vXCN8KTJGUhJtPI1/afnHCdfq2xCdY7+SlWZekMCVl7Q/XB3M+yfU17Rjg
         dDuA==
X-Gm-Message-State: AOJu0YyOHpgHcOcCInMIm+LOeCPPLKojFjgkPcwyE4okdPEPZKb8a//i
	u9DeQfSjlHIL02wJSHmHWguaBJyQg4PmNPY6EI+j89sP87kM6YjEYSWJZvncCQ8zfpfR8vqpMvn
	X
X-Gm-Gg: ASbGncvVDimULJZ86OWSZO0YsC1WdH37CAie4D/EwWpTNc8rWlTLZxl5Ixq6aCWmNv9
	U3Paunt82ECQZ8423CpRvYbAM79e1A25F/fmKqNMRC6unNja6sj2lcz1pG4d65/Hnxd+814a+0Q
	F1w8TdGx6SiEw7kril+EJmtAXxG+LGUvAiLS03qREkEhveE+GBL8pXQv0dLmatJzufG9gTe8upR
	qDJc3UDsN5IGzWnjrXCIECjdstnk3omZ0B5Uv6FqFJF3Pdpn7CX9fhAqTScolhE9ogISyaSOifi
X-Google-Smtp-Source: AGHT+IFNGquWo6o+yBJEmIMazjnVvxeA0Nv7KGN3vii+yokFL/TCuYl8xtfmk0/Am5op9UihAJeVjw==
X-Received: by 2002:a05:6402:42c6:b0:5cf:a1c1:526e with SMTP id 4fb4d7f45d1cf-5cff4b1ffdfmr5763646a12.10.1732200604494;
        Thu, 21 Nov 2024 06:50:04 -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>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
Date: Thu, 21 Nov 2024 14:50:00 +0000
Message-Id: <20241121145000.3107723-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

for_each_set_bit()'s use of a double for loop had an accidental bug with a
break in the inner loop leading to an infinite outer loop.

Adjust for_each_set_bit() to avoid this behaviour, and add extend
test_for_each_set_bit() with a test case for this.

Fixes: ed26376f20bf ("xen/bitops: Introduce for_each_set_bit()")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

Both GCC and Clang seem happy with this, even at -O1:

  https://godbolt.org/z/o6ohjrzsY
---
 xen/common/bitops.c      | 16 ++++++++++++++++
 xen/include/xen/bitops.h |  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/xen/common/bitops.c b/xen/common/bitops.c
index 91ae961440af..0edd62d25c28 100644
--- a/xen/common/bitops.c
+++ b/xen/common/bitops.c
@@ -110,6 +110,22 @@ static void __init test_for_each_set_bit(void)
 
     if ( ull != ull_res )
         panic("for_each_set_bit(uint64) expected %#"PRIx64", got %#"PRIx64"\n", ull, ull_res);
+
+    /* Check that we break from the middle of the loop */
+    ui = HIDE(0x80001008U);
+    ui_res = 0;
+    for_each_set_bit ( i, ui )
+    {
+        static __initdata unsigned int count;
+
+        if ( count++ > 1 )
+            break;
+
+        ui_res |= 1U << i;
+    }
+
+    if ( ui_res != 0x1008 )
+        panic("for_each_set_bit(break) expected 0x1008, got %#x\n", ui_res);
 }
 
 static void __init test_multiple_bits_set(void)
diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
index 79615fb89d04..448b2d3e0937 100644
--- a/xen/include/xen/bitops.h
+++ b/xen/include/xen/bitops.h
@@ -299,7 +299,7 @@ static always_inline attr_const unsigned int fls64(uint64_t x)
  * A copy of @val is taken internally.
  */
 #define for_each_set_bit(iter, val)                     \
-    for ( typeof(val) __v = (val); __v; )               \
+    for ( typeof(val) __v = (val); __v; __v = 0 )       \
         for ( unsigned int (iter);                      \
               __v && ((iter) = ffs_g(__v) - 1, true);   \
               __v &= __v - 1 )

base-commit: e0058760a0c7935ad0690d8b9babb9050eceedf0
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 21 15:19:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 15:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841553.1257038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE8y8-0002jK-4j; Thu, 21 Nov 2024 15:19:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841553.1257038; Thu, 21 Nov 2024 15:19: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 1tE8y8-0002jD-21; Thu, 21 Nov 2024 15:19:44 +0000
Received: by outflank-mailman (input) for mailman id 841553;
 Thu, 21 Nov 2024 15:19: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=yn03=SQ=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tE8y6-0002j7-SI
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 15:19:42 +0000
Received: from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com
 [2607:f8b0:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06588c42-a81c-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 16:19:39 +0100 (CET)
Received: by mail-ot1-x32c.google.com with SMTP id
 46e09a7af769-7180d9d0dcbso404108a34.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 07:19: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: 06588c42-a81c-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC1vdDEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA2NTg4YzQyLWE4MWMtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjAyMzc5Ljk0MjMyNCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732202378; x=1732807178; 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=epc54H0L/TvUkPOir4wXfx1YWjE2SF2iefNB/ll5zI0=;
        b=A0KbLvUXhZ8mikTxdXAAaHVVvOOsRuwodztLRWYLNie40+Y4QB5akzeTYoWytWsypZ
         QSt0OojAxusww5edPwbbK7E5TVACp+DcgefepmYC/AUGnmoGTzi/OJ6cCv8NynRKH07k
         lmHql9Vt1yPeXyAJHVRqriR6SEZ+OubnV8A2s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732202378; x=1732807178;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=epc54H0L/TvUkPOir4wXfx1YWjE2SF2iefNB/ll5zI0=;
        b=xE9curQ12dAlA0nhf0p93cj3cyV+o2+meBdL3510fB7V0qSn53fEUF0FQCfjGGoFrq
         ThMg7XvCzEWC6jSbQthwez6/QnKR5cqSwK6x1rKHhtPHyvmx75Hfr9WOrpak0UeGo/dS
         wi7Oy0pLdhcS11bUVua4pGUVxp7Br7HZ1JhCe85hiI7YhooaurNFP00n3n+VEGjd5QUB
         je4g/lqp8md4nVTZrM9qym6GfJ4p566CZ4QXU9N6unaXDvfO32Hp/CcIVXbVRPq1xF4C
         n25dnylAl9uONgWnAj8HQVcE3iRgVav55MojfILEtjBuAPIjKCNUDC8dEv9nyR99mYEr
         S4Nw==
X-Gm-Message-State: AOJu0YwI5MqpMCOBGKS3z1Wwa4sLkXa1B0mnITNqaY7BIG5tuaQSKzLD
	YKcjDHpUmdnNGwy1oixpe4ClhkmDmFOOPjoc466xIyt1Pl7JjMS5YGWoBoSa0SpNdoOA8lh+ASO
	aOOyqieVHOyyhBc1kd4xQP2rQmE4QrCWGDtceCQ==
X-Gm-Gg: ASbGnctKTYUPrxI/K0NIU+MMCtBcBC09Jsy1spqupHQClc6Xu67CWmJSKtK4234wJs5
	bKlG2XiG9ParCOwUBGexiRmRuYJ1il2c=
X-Google-Smtp-Source: AGHT+IEA37AFSzW+IDtlAWmb1g2fxQKwn1vtI1hFI2f+RbK8HTWh5EG6815+Uez9ViG7mepZMxYsxT6EyHf9DpeDZOc=
X-Received: by 2002:a9d:6a98:0:b0:717:d48c:59f with SMTP id
 46e09a7af769-71ab31ed413mr6673281a34.21.1732202378488; Thu, 21 Nov 2024
 07:19:38 -0800 (PST)
MIME-Version: 1.0
References: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
In-Reply-To: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Thu, 21 Nov 2024 15:19:27 +0000
Message-ID: <CACHz=Zh+qvzgrXBZPbSR=5oTEk2kz9b+zfZHEk8pwmGmrVpAmw@mail.gmail.com>
Subject: Re: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
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>, Julien Grall <julien@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 21, 2024 at 2:50=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> for_each_set_bit()'s use of a double for loop had an accidental bug with =
a
> break in the inner loop leading to an infinite outer loop.
>
> Adjust for_each_set_bit() to avoid this behaviour, and add extend
> test_for_each_set_bit() with a test case for this.
>
> Fixes: ed26376f20bf ("xen/bitops: Introduce for_each_set_bit()")
> 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>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
>
> Both GCC and Clang seem happy with this, even at -O1:
>
>   https://godbolt.org/z/o6ohjrzsY
> ---
>  xen/common/bitops.c      | 16 ++++++++++++++++
>  xen/include/xen/bitops.h |  2 +-
>  2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/bitops.c b/xen/common/bitops.c
> index 91ae961440af..0edd62d25c28 100644
> --- a/xen/common/bitops.c
> +++ b/xen/common/bitops.c
> @@ -110,6 +110,22 @@ static void __init test_for_each_set_bit(void)
>
>      if ( ull !=3D ull_res )
>          panic("for_each_set_bit(uint64) expected %#"PRIx64", got %#"PRIx=
64"\n", ull, ull_res);
> +
> +    /* Check that we break from the middle of the loop */
> +    ui =3D HIDE(0x80001008U);
> +    ui_res =3D 0;
> +    for_each_set_bit ( i, ui )
> +    {
> +        static __initdata unsigned int count;
> +
> +        if ( count++ > 1 )
> +            break;
> +
> +        ui_res |=3D 1U << i;
> +    }
> +
> +    if ( ui_res !=3D 0x1008 )
> +        panic("for_each_set_bit(break) expected 0x1008, got %#x\n", ui_r=
es);
>  }
>
>  static void __init test_multiple_bits_set(void)
> diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
> index 79615fb89d04..448b2d3e0937 100644
> --- a/xen/include/xen/bitops.h
> +++ b/xen/include/xen/bitops.h
> @@ -299,7 +299,7 @@ static always_inline attr_const unsigned int fls64(ui=
nt64_t x)
>   * A copy of @val is taken internally.
>   */
>  #define for_each_set_bit(iter, val)                     \
> -    for ( typeof(val) __v =3D (val); __v; )               \
> +    for ( typeof(val) __v =3D (val); __v; __v =3D 0 )       \
>          for ( unsigned int (iter);                      \
>                __v && ((iter) =3D ffs_g(__v) - 1, true);   \
>                __v &=3D __v - 1 )
>
> base-commit: e0058760a0c7935ad0690d8b9babb9050eceedf0

Not a fun of static variables but it's just in the test,

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 15:56:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 15:56:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841562.1257049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE9Xv-0007hW-RO; Thu, 21 Nov 2024 15:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841562.1257049; Thu, 21 Nov 2024 15:56: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 1tE9Xv-0007hP-On; Thu, 21 Nov 2024 15:56:43 +0000
Received: by outflank-mailman (input) for mailman id 841562;
 Thu, 21 Nov 2024 15:56: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tE9Xu-0007hJ-BB
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 15:56:42 +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 30fa229e-a821-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 16:56:38 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-a9f1d76dab1so192346766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 07:56:38 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f4319b75sm95378466b.148.2024.11.21.07.56.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 07:56: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: 30fa229e-a821-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwZmEyMjllLWE4MjEtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjA0NTk4LjMyMzc3Niwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732204597; x=1732809397; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=kxuEjEsh36RGixj1gtqJiNt7nF+wuQJGFevrh/T9/EM=;
        b=Sce3CMUYiUFRxsVGmfumTTx6rLXPY7PPXVZ/nD0+g/xM223i6nv2fxsxt2QnxxD7EL
         LG8sHc2X/XHDMfX6kXJl+PxTAtHUDF+qcf11bz8s9VKgpYIL2P90wMYY7/t0zu4NoMnZ
         OmB8yOxPk0sdRMQe6/QpVxj2Jn6vsbsdPjCqI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732204597; x=1732809397;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kxuEjEsh36RGixj1gtqJiNt7nF+wuQJGFevrh/T9/EM=;
        b=FY+LkEGNmKnv0DiVtKfpOQmqMmjTRsxWMJbVSZduHoOe16/dbxhzWcqarVAMBBNYpM
         sxS7VqyrU/SC8OVB5mvNmeEDWboEXSGsG6jPkeWHfdm1FyOVEjVkBq76cBelAUjfad3G
         KvCDh8OU+aw7SeV3v/Dn9rkn9Aj/C7ihZxk4RZupEDz1StHZYulwra5IWBGTAwR1ws0z
         s+T4o+F4jF4BBVfZbfD5XbjVB0L0f1dlaHDg4whPzaw+dzt6n2Umjtkb6j4TdhTj3pgQ
         1ke+QKvQdjOCgbH7sC/CNqmYvGXeKeXEp5trgkYtMwOZZdPGlgoufTi2UN5AcBy4aBdy
         aVvw==
X-Gm-Message-State: AOJu0YwD72WZGXeYK316lmxnFcMo4x8ZNa+5ErQb7gC2iIrd98dB59qt
	pUk56DHUJ+Q6Ji/LmxL9OSx0ILuqLyIQT+A24KAxTcVMoKj3jX7+Bm+0xKlYl4qFJyqFrrg8oP0
	F
X-Gm-Gg: ASbGnctD2WtoEaUat5InfvqeA/BtiMoQvzP3XQb+d6Ze1Di8FJZxNtN56z2phoEcAOO
	npw+r3ORfbiV1FKGdB8mE8oI65G1PgFC1pUozJOBKAISsuzxGsIEqmfUH+T44vJ5a8GIxendLJj
	zWGPBQSv3s9aixX2bteLB3qBTSrHiApfIDpvGOEEKi7DtxwuNxX+vL1oLKIPMHGJix2IpINXzTs
	JsL7yRP+jGYFvO4ykgm9NrRQW0gm0FuH2a+IH3fayb2uONUTX8KU3tsdkU=
X-Google-Smtp-Source: AGHT+IEd/ZbIedRyAJs0kOsvuEViLz1lXYM/YjJq2XIDDvCOsTtdy4RChc2oIClAc0wYubW+3tSdRw==
X-Received: by 2002:a17:907:789:b0:a9a:80cc:d7b0 with SMTP id a640c23a62f3a-aa4dd72bd71mr682890666b.44.1732204597417;
        Thu, 21 Nov 2024 07:56:37 -0800 (PST)
Date: Thu, 21 Nov 2024 16:56:35 +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/pv: limit GDT and LDT mappings areas to max number
 of vCPUs
Message-ID: <Zz9YM_MB1AoLqSIE@macbook>
References: <20241121111218.50984-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20241121111218.50984-1-roger.pau@citrix.com>

On Thu, Nov 21, 2024 at 12:12:18PM +0100, Roger Pau Monne wrote:
> The allocation of the paging structures in the per-domain area for mapping the
> guest GDT and LDT can be limited to the maximum number of vCPUs the guest can
> have.  The maximum number of vCPUs is available at domain creation since commit
> 4737fa52ce86.
> 
> Limiting to the actual number of vCPUs avoids wasting memory for paging
> structures that will never be used.  Current logic unconditionally uses 513
> pages, one page for the L3, plus 512 L1 pages.

This is not true, I was confused with the logic in
create_perdomain_mapping().  When create_perdomain_mapping() is called
with pl1tab == NULL and ppg == NULL it just allocates the L2, but not
the L1 tables.

So the purpose of the create_perdomain_mapping(d, GDT_LDT_VIRT_START,
...) in pv_domain_initialise() is even more dubious now - as it just
allocates a page to use as L2.  I'm tempted to just remove it if you
agree, since I don't consider this useful.  The allocation will
already be done at vCPU initialization.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 15:59:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 15:59:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841571.1257058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE9at-0008J4-Bh; Thu, 21 Nov 2024 15:59:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841571.1257058; Thu, 21 Nov 2024 15:59: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 1tE9at-0008Ix-96; Thu, 21 Nov 2024 15:59:47 +0000
Received: by outflank-mailman (input) for mailman id 841571;
 Thu, 21 Nov 2024 15:59: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tE9as-0008Ir-0x
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 15:59:46 +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 9d721112-a821-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 16:59:40 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9ed49edd41so198624666b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 07:59:40 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f437ff46sm97529566b.189.2024.11.21.07.59.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 07:59: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: 9d721112-a821-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkNzIxMTEyLWE4MjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjA0NzgwLjIzNDczMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732204780; x=1732809580; 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=VdH+thfqZelFVASrjRhsY4bCjuF+9L41q89tWe1sRFI=;
        b=f+ec8DLMsffHWhanTGZNQZ9yKJG58SzwM1COttDMdDZTLZn6bceo7woTcAMoanOvXF
         7X3c6MpAzM6khddA158UB95SphK6xTR3y4Tx3ltfG5czh9rDpIS2cmbv9qnrFAPqV68G
         DxId3mdYFfsaSPmN3n0IaDQHmG4h5N+Juf0BE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732204780; x=1732809580;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VdH+thfqZelFVASrjRhsY4bCjuF+9L41q89tWe1sRFI=;
        b=FuWXM7raF52T7iDCR8X5qhxdYe83xk5iwVKbhRVSvRE+r/RwuW9X8yB9XryyRHaXVE
         o4SPVCQ+QOH/PQ7OKi/1EN7LqUar+87MyY1J7LmJPmnldv+HFMcru8j/EpCq6kiIqpTN
         2G7CJZ1v034v3mBcyCJm77kj8A3zbbUglFse8FUPNT5O6i6q5YV7oxeP5gXPhqxXJX9+
         MUX9dgdgCp2jmMUdBSZvSD9RqqpNVEH6pOF5lZT3OeNmPVVaUWT8Njxm7+9GYclJf4mh
         10q2Hhvmg3uGPpGMAjVt5lEK8eUweVE4ImPuSJV1w/Ym/nKf4wDFUz8XFtTMhTxvGanf
         OJSQ==
X-Gm-Message-State: AOJu0YxhZkAal525KyEK/UGmHOB4iYugSDUM9t5unsfrGwn1S41fe3PG
	Ts4hPQM0vIIfJICbYA+uRrav0IrjZ3R7V/CrGQWPEmJvqJvsJ2ylqx3ynyELAHk=
X-Gm-Gg: ASbGncsM9170fGk5sqC8WOWI31V5pX2MaGZUfi/D3srD7Xe4+BPdoSl8s9kstOyT1MK
	LC/Jm0rjgllDMf/ct9+VibCUW206xBPk8SsZvzAkrKK6sxa46Pwh9eW7NOB96I6DL9adNyuTRN+
	TOk8Kr66qHjb6Hq2F9BQ66OW/WhUE3JzIe0qKSI1rSkGPDKckylyDrpqTTPqdtADt3+LTFaOjQy
	XFw60+MjZkhCYDoV9DZfBnPk4wUKAjc3F3iUk/g7N2ceXxzbMguf7pQtXiBHe8=
X-Google-Smtp-Source: AGHT+IEq5Cw1BecZsrctK3/USlyu3+DFcxMasXPsHxaD7fHqG8y8N2QDGyiltfvZQ+sh1od8+2ICqw==
X-Received: by 2002:a17:907:9452:b0:a9a:67a9:dc45 with SMTP id a640c23a62f3a-aa4dd50a559mr761322866b.3.1732204779630;
        Thu, 21 Nov 2024 07:59:39 -0800 (PST)
Message-ID: <8a4d1e32-ea48-491e-8ea2-c8cf4c1f934c@citrix.com>
Date: Thu, 21 Nov 2024 15:59:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
To: Frediano Ziglio <frediano.ziglio@cloud.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>,
 Julien Grall <julien@xen.org>
References: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
 <CACHz=Zh+qvzgrXBZPbSR=5oTEk2kz9b+zfZHEk8pwmGmrVpAmw@mail.gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <CACHz=Zh+qvzgrXBZPbSR=5oTEk2kz9b+zfZHEk8pwmGmrVpAmw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/11/2024 3:19 pm, Frediano Ziglio wrote:
> On Thu, Nov 21, 2024 at 2:50â€¯PM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> for_each_set_bit()'s use of a double for loop had an accidental bug with a
>> break in the inner loop leading to an infinite outer loop.
>>
>> Adjust for_each_set_bit() to avoid this behaviour, and add extend
>> test_for_each_set_bit() with a test case for this.
>>
>> Fixes: ed26376f20bf ("xen/bitops: Introduce for_each_set_bit()")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Julien Grall <julien@xen.org>
>>
>> Both GCC and Clang seem happy with this, even at -O1:
>>
>>   https://godbolt.org/z/o6ohjrzsY
>> ---
>>  xen/common/bitops.c      | 16 ++++++++++++++++
>>  xen/include/xen/bitops.h |  2 +-
>>  2 files changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/common/bitops.c b/xen/common/bitops.c
>> index 91ae961440af..0edd62d25c28 100644
>> --- a/xen/common/bitops.c
>> +++ b/xen/common/bitops.c
>> @@ -110,6 +110,22 @@ static void __init test_for_each_set_bit(void)
>>
>>      if ( ull != ull_res )
>>          panic("for_each_set_bit(uint64) expected %#"PRIx64", got %#"PRIx64"\n", ull, ull_res);
>> +
>> +    /* Check that we break from the middle of the loop */
>> +    ui = HIDE(0x80001008U);
>> +    ui_res = 0;
>> +    for_each_set_bit ( i, ui )
>> +    {
>> +        static __initdata unsigned int count;
>> +
>> +        if ( count++ > 1 )
>> +            break;
>> +
>> +        ui_res |= 1U << i;
>> +    }
>> +
>> +    if ( ui_res != 0x1008 )
>> +        panic("for_each_set_bit(break) expected 0x1008, got %#x\n", ui_res);
>>  }
>>
>>  static void __init test_multiple_bits_set(void)
>> diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h
>> index 79615fb89d04..448b2d3e0937 100644
>> --- a/xen/include/xen/bitops.h
>> +++ b/xen/include/xen/bitops.h
>> @@ -299,7 +299,7 @@ static always_inline attr_const unsigned int fls64(uint64_t x)
>>   * A copy of @val is taken internally.
>>   */
>>  #define for_each_set_bit(iter, val)                     \
>> -    for ( typeof(val) __v = (val); __v; )               \
>> +    for ( typeof(val) __v = (val); __v; __v = 0 )       \
>>          for ( unsigned int (iter);                      \
>>                __v && ((iter) = ffs_g(__v) - 1, true);   \
>>                __v &= __v - 1 )
>>
>> base-commit: e0058760a0c7935ad0690d8b9babb9050eceedf0
> Not a fun of static variables but it's just in the test,

Oh, I guess I can do it with just a local variable.Â  Incremental diff is:

@@ -86,7 +86,7 @@ static void __init test_fls(void)
Â 
Â static void __init test_for_each_set_bit(void)
Â {
-Â Â Â  unsigned intÂ  ui,Â  ui_res = 0;
+Â Â Â  unsigned intÂ  ui,Â  ui_res = 0, tmp;
Â Â Â Â  unsigned long ul,Â  ul_res = 0;
Â Â Â Â  uint64_tÂ Â Â Â Â  ull, ull_res = 0;
Â 
@@ -113,12 +113,11 @@ static void __init test_for_each_set_bit(void)
Â 
Â Â Â Â  /* Check that we break from the middle of the loop */
Â Â Â Â  ui = HIDE(0x80001008U);
+Â Â Â  tmp = 0;
Â Â Â Â  ui_res = 0;
Â Â Â Â  for_each_set_bit ( i, ui )
Â Â Â Â  {
-Â Â Â Â Â Â Â  static __initdata unsigned int count;
-
-Â Â Â Â Â Â Â  if ( count++ > 1 )
+Â Â Â Â Â Â Â  if ( tmp++ > 1 )
Â Â Â Â Â Â Â Â Â Â Â Â  break;
Â 
Â Â Â Â Â Â Â Â  ui_res |= 1U << i;


> Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Thanks.Â  This turns out to be a whole lot easier than I was fearing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 16:03:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 16:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841582.1257069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE9eg-00025a-RM; Thu, 21 Nov 2024 16:03:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841582.1257069; Thu, 21 Nov 2024 16: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 1tE9eg-00025T-Ol; Thu, 21 Nov 2024 16:03:42 +0000
Received: by outflank-mailman (input) for mailman id 841582;
 Thu, 21 Nov 2024 16:03: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE9ef-00025L-Gd
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 16:03:41 +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 2b386a43-a822-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 17:03:38 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43193678216so9772305e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 08:03: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-433b4642b8dsm60759255e9.41.2024.11.21.08.03.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 08:03: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: 2b386a43-a822-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJiMzg2YTQzLWE4MjItMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjA1MDE4LjE0NzE5Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732205017; x=1732809817; 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=LzVz0zJp0BozBPebvSWuaRM2ULwnW/TLOLQgwOJr0/M=;
        b=WgoWqLHRVKjjw+MtAJTZwF+nnTaJlMvHXc1IiZiod/6n+fvbRzQL7HU9Pp1rPrbns0
         OS8d04Cy3WUo9+E0LKlRXhFCX2+RIJl20FeD6TEOjmIJc1ituggBo0KMXr4AUYrJlaFj
         z281tafIaBRrAd3tK30HjcO8PAVyNoXbL49OHGUas12uA2F4aDNiztVJXZMgNruPTYqQ
         tlIgRLncWNhGLxl/T8fPZyt9MDs82hvsYUNy7J6U2OQ/DVV/Od02DjR4zHv7I10X1+P6
         HNVj5IJYHoYXGTpeL/RPCPgeH0ANz3QVWyUWR+wkbFlVKD+vh7IAyk1tsUxPVFk8+imt
         CYJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732205017; x=1732809817;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LzVz0zJp0BozBPebvSWuaRM2ULwnW/TLOLQgwOJr0/M=;
        b=UCotNDFElR7nZ+I7p05EAxB2HM/8U4djzCobJzl+ZkzeOpr2vJ+9jrAa1bqW+Exioe
         /auc0qw666vhHnHb7pROvWjH0gyAWFDC95vGxDH89q8Va3qGY/6JdYJ1tc2MYNf9tEGJ
         ep4OjU5jZiUCfL/p8KWmTxIK4APPpYnMChPuL/GJD8Rz4h1+hduT6c72CiNWYREq7T+w
         tPdhit7uuIFsxQs7YoqQarEZKVDF081uBHyXXFJOe38DD+RbuQxdPy9K71G7lCPN+u/5
         RJjTsobNyWCWUOGn07PzJMCE8PeNlNTQj+kIhjl29M18lumC5c925gRUMN9aQY8dHGoC
         sSpg==
X-Forwarded-Encrypted: i=1; AJvYcCWpgBhmYwvBmUm0K/qqT4B6XIFJD7hCgS8yW2Sv2jJnnZUXx6I9nKpw8W34ITO6npn1wl1FTkVbv0g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXQuEVq4bzRFTiP8jwkG5CiJrx3uHODj7zCbzVyBgZChP1mcF5
	qKSDOPtiiGLeZJGVbC4+7UunEETsubR3SFA/tBbSfp9LJExNP6DqrOhh+6LGFw==
X-Gm-Gg: ASbGncveoAEuCeKHYBsufOgTbOGsyI+O/9OiBJaB0rpF4cBNDU4QoJ5KKD0XqswMwDO
	Jl1opXHAJSXsgtosyYW2NDwpTiLrHIEksHaMxz8oM2ACtZf4ZrxgrbaL/ujqldwCV6jfbd4Cs6/
	fMWFckF3qJjTO9TozaQlgxzCzRjura7vvAYS3ZzQWCmA35rrTCZzrTA6jRh9A8W6FpxL+5zv3kp
	KQrEuSCRU4dsi1dP7c/vVnilcMEWsoJBgI7+rxYWVVTXX/TJvoJjTGpwX0zhG3EMjLbvO/OAbsK
	joanPKE3kNG78kwZXR2h5cNILpJUYSvHE1I=
X-Google-Smtp-Source: AGHT+IH6Uee5YVk+qhQXlWBe12ZSvTjTP34XhoL7Xq875/JZ3/jPaJSyvBMivIsmGEndHTTPjmazIQ==
X-Received: by 2002:a05:600c:4685:b0:431:1868:417f with SMTP id 5b1f17b1804b1-433489d577dmr72172035e9.17.1732205005785;
        Thu, 21 Nov 2024 08:03:25 -0800 (PST)
Message-ID: <b2d3a42f-b599-455f-ad15-716dd7552208@suse.com>
Date: Thu, 21 Nov 2024 17:03:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: limit GDT and LDT mappings areas to max number of
 vCPUs
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: <20241121111218.50984-1-roger.pau@citrix.com>
 <Zz9YM_MB1AoLqSIE@macbook>
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: <Zz9YM_MB1AoLqSIE@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2024 16:56, Roger Pau MonnÃ© wrote:
> On Thu, Nov 21, 2024 at 12:12:18PM +0100, Roger Pau Monne wrote:
>> The allocation of the paging structures in the per-domain area for mapping the
>> guest GDT and LDT can be limited to the maximum number of vCPUs the guest can
>> have.  The maximum number of vCPUs is available at domain creation since commit
>> 4737fa52ce86.
>>
>> Limiting to the actual number of vCPUs avoids wasting memory for paging
>> structures that will never be used.  Current logic unconditionally uses 513
>> pages, one page for the L3, plus 512 L1 pages.
> 
> This is not true, I was confused with the logic in
> create_perdomain_mapping().  When create_perdomain_mapping() is called
> with pl1tab == NULL and ppg == NULL it just allocates the L2, but not
> the L1 tables.
> 
> So the purpose of the create_perdomain_mapping(d, GDT_LDT_VIRT_START,
> ...) in pv_domain_initialise() is even more dubious now - as it just
> allocates a page to use as L2.  I'm tempted to just remove it if you
> agree, since I don't consider this useful.  The allocation will
> already be done at vCPU initialization.

If it's done implicitly there, removing is likely fine. It feels like it may
have been necessary to do this explicitly earlier on.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 16:07:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 16:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841590.1257079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tE9iR-0002fh-9u; Thu, 21 Nov 2024 16:07:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841590.1257079; Thu, 21 Nov 2024 16:07: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 1tE9iR-0002fa-6y; Thu, 21 Nov 2024 16:07:35 +0000
Received: by outflank-mailman (input) for mailman id 841590;
 Thu, 21 Nov 2024 16:07: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=0oSv=SQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tE9iP-0002f9-J1
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 16:07: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 b58e20a5-a822-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 17:07:30 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4314fa33a35so9045515e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 08:07: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-433b01e1170sm62988635e9.3.2024.11.21.08.07.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 08:07: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: b58e20a5-a822-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI1OGUyMGE1LWE4MjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjA1MjUwLjIyNTMwMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732205249; x=1732810049; 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=DdLAAEO5PDWJDXAZxFxXEb+XutM7Xnb/2tIpqcGTVT0=;
        b=ACL8ika5R/5YlROe+tHARN6/1eTJhHAoKjsbl4VA+FEEF8ObuztFA53JWjb/q0N457
         L5BkqDESb3Iwt17edSH0wJVFhaLNRGHDADyuEJpekTFjwvchVrThy9gtyD6lmAlbBId3
         uiJeZXslh+XZKlMZPBiCvdY0bojKSs3kWzIL/2QNWvYhte2EL+E3Ygr8VyRQ8xHZck+Q
         cTSnI+9a7SAikfuk4nKj/5VY0XDPtmD1eNTfsk+3k9YnBys649XQ6Nnk306J1s6v4ePv
         0o8w+yIQfy1sONx0VPS3saf4N+9EkpP8W6PDcZjv9cq1F7v/rm84dJaF1iqSYvZSxPdW
         EtLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732205249; x=1732810049;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DdLAAEO5PDWJDXAZxFxXEb+XutM7Xnb/2tIpqcGTVT0=;
        b=LpzGxbKz/rVqtl4Fp+C3SGMNB9vpWksImmM/R4oqTtnfvDkXqwOtaH8Wvll5BgDRuj
         TIv/t5CRGLfocGyGx++1FrZODToJA4lKfvMBYwGC1mHK4T01RR6/M1dYv2pKDE8Vf29w
         7HIsVu2OInxpBGysk/730gFp0etmG48E5Ong+IOIx141D1vgEvvqhXCtcLKFmJL0yMXM
         sG9tjq0LxG0+Yhkrr4rrypVGbKV2nI41pEyICYlbgWDh0uveVAiEvvRP8/ICU2C0PuDE
         agAn0kZnD1jw9tMPs30ubN46OfMC9F4uDyeB8oM+TySWutF2mCa3EHrzdWsS3X0Y6vgV
         9Rjw==
X-Forwarded-Encrypted: i=1; AJvYcCWJp7OOPOeG1qTdPMhQ0X6ykVnde4fBaaud3Gk8F4JuNsleiW4sZ/Ha4u5/9HFeY24RE+/gpz1FFgk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0Zf2cD7h4y00LS5Z92+Mmvk+menFwa4hHxzs427HFgUXVe8RM
	my7WoMujeWkV8B5mHrcffgs5uqqBQvJxzRZri3/uEV28xHcjtd9RxOMcn119G4/xeHNvM+GYsbw
	=
X-Gm-Gg: ASbGncu35vr3RE+yVinr2XYi8buqUuD9J68pI9QQu7MfOcSyvQCsPbrY876NLMA5x8b
	6a06HgHn/oMDpIQ9rfVQvFC6xwNkVsrOJobUkPQjVA5Y0IQ9IhDSZaPWTJHCzNk16lJJWcPEznP
	I3lV0H5DfgCV6OJTJvYcJPUeo3piWAIBS2dFxa6URBbwuWcj72U4/40iym+LKgEMpEPT40XMBdJ
	ZioyEhFF5nbfGbVBgSjUoe0o/+IUFsnDgKhquldIpiQAOh70vIYilAx1BOB2iFk0lOtQ0lSMWs/
	x9nNDt/4DKK5CZQXmmH8i1ORnf7o2BUCJ8s=
X-Google-Smtp-Source: AGHT+IGjxecNIlHQDEvJBuOUoibpN6fBFJQ+4/f5KDrzH4VOihzPAa+7CUZGtwFzuPaJJns7/N5gUA==
X-Received: by 2002:a05:600c:34cf:b0:431:5a93:4e3c with SMTP id 5b1f17b1804b1-433489d4d84mr70668465e9.16.1732205239981;
        Thu, 21 Nov 2024 08:07:19 -0800 (PST)
Message-ID: <8e233118-ed75-4b85-b753-a815952661f2@suse.com>
Date: Thu, 21 Nov 2024 17:07:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241121145000.3107723-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: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2024 15:50, Andrew Cooper wrote:
> for_each_set_bit()'s use of a double for loop had an accidental bug with a
> break in the inner loop leading to an infinite outer loop.
> 
> Adjust for_each_set_bit() to avoid this behaviour, and add extend
> test_for_each_set_bit() with a test case for this.
> 
> Fixes: ed26376f20bf ("xen/bitops: Introduce for_each_set_bit()")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Nit: In the title, isn't it supposed to be "within"? And in the 2md paragraph
there looks to be a stray "add".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 16:29:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 16:29:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841600.1257088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEA3x-0005rI-15; Thu, 21 Nov 2024 16:29:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841600.1257088; Thu, 21 Nov 2024 16:29: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 1tEA3w-0005rB-Ua; Thu, 21 Nov 2024 16:29:48 +0000
Received: by outflank-mailman (input) for mailman id 841600;
 Thu, 21 Nov 2024 16:29: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tEA3v-0005r3-HA
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 16:29:47 +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 cf389488-a825-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 17:29:41 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aa4d257eb68so214799666b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 08:29:41 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f418013asm99076166b.52.2024.11.21.08.29.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 08:29: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: cf389488-a825-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNmMzg5NDg4LWE4MjUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjA2NTgxLjc4NzI1OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732206581; x=1732811381; 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=9aHdvwX988vk5mlLHeu+Yjomrq9AQNhIoFzhGtqF/w0=;
        b=Fe71BrkBeQ6sMPy8HJUYkuMlPGYSR3qsfioRi4AjISptTPju9zQKyviFkXlPqvGmPK
         rf53jhTqH1Eoq0qyvtMNKy0NRJnF8DoyOBjtwofJLQXLPH+rtsHAVkMafJ+Px9Bq5OwF
         9DqGzeffl8zvjTdWz+ZtOdSEFbl230VLKow1Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732206581; x=1732811381;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9aHdvwX988vk5mlLHeu+Yjomrq9AQNhIoFzhGtqF/w0=;
        b=aCdnUQi5nQTiOzc54lXDBqDNHMbPOzrRHBjWrdP08FqCynnlFWjDnXXgwRxllRdX1Y
         Gko7qkfi3TpRqcu96Abd/xJVg6neNxQwdUALhDlkQsk031KbrIc8P3RCxeHR6uo96WaW
         /6ExMmAXkwaMgOkErrE5Nu/7o+gajrak6Z++PuXqpvc/nuLbsenOnmZdUQ234+Gtt1ZQ
         j79aUhwnv5ky1Sbsoqw/LurXdK3FWKDwSeBBzuiKDh4YNU2m5ojwMMANAJ8Fkkf+mRqT
         jfahXHwLm/Nn9KnHYnoJBr+Lxwmqb8Wbf5r9Z746bV1sRmilq8teamogedh6LeVXiF05
         d+1w==
X-Forwarded-Encrypted: i=1; AJvYcCVQqpfDoyZDjjXiqOypZdtUDgMHf6eO3BCEvnnM1Yz+syP+28686PtdquMePFdIWR7SeX4K1b5XhVY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEvTGm85GfElWB5npHx3U8QQxjOrGvR9c+2NCidDnBg2DJ0p85
	/Dy3pHs4xc00Vqfi9HVocibu6+StryBYDtL/q3KuroClEXsXa2crXVKiGGgrGjE=
X-Gm-Gg: ASbGncv7bYnFRMkYV9EpLuALExeBHUcmPR+pQO/ZEte+bhzlTj2n+XPmht28rEzueF0
	bdlxRmU3WRG7Hn7RGzunnZpsX1kE/KhWNZMdZS/LM5vsTAoaHXmgkWDRVvM0J6A2lnC4fs0l4do
	VlcQAweUXcLkRluZzTr6L5JnZTJa5zAhnnNEel+MULppDxc0infMePy/xWmEqVBJyKZHrpCzybG
	ANmqfUKhSY8M4idtG2DUAaUayEX6aw2KHviLXb3hchSi0KlSwLCvCWtX1plBn8=
X-Google-Smtp-Source: AGHT+IFZMWDq6q5Km0WYanb3LiYNHbrq/yfqRN2QDTQS9sJQCIP0L766MfWUxj8/4IH5sCowvjT+FQ==
X-Received: by 2002:a17:907:7208:b0:a9e:b5d0:4714 with SMTP id a640c23a62f3a-aa4efd9b8a6mr374033266b.21.1732206579598;
        Thu, 21 Nov 2024 08:29:39 -0800 (PST)
Message-ID: <1d161521-8f4d-45b1-8974-d34b99b44cf0@citrix.com>
Date: Thu, 21 Nov 2024 16:29:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
 <8e233118-ed75-4b85-b753-a815952661f2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <8e233118-ed75-4b85-b753-a815952661f2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21/11/2024 4:07 pm, Jan Beulich wrote:
> On 21.11.2024 15:50, Andrew Cooper wrote:
>> for_each_set_bit()'s use of a double for loop had an accidental bug with a
>> break in the inner loop leading to an infinite outer loop.
>>
>> Adjust for_each_set_bit() to avoid this behaviour, and add extend
>> test_for_each_set_bit() with a test case for this.
>>
>> Fixes: ed26376f20bf ("xen/bitops: Introduce for_each_set_bit()")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> Nit: In the title, isn't it supposed to be "within"?

Yes, already noticed and fixed.

>  And in the 2md paragraph
> there looks to be a stray "add".

Will fix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 16:32:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 16:32:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841611.1257099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEA6S-0007eK-H6; Thu, 21 Nov 2024 16:32:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841611.1257099; Thu, 21 Nov 2024 16:32: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 1tEA6S-0007eD-EE; Thu, 21 Nov 2024 16:32:24 +0000
Received: by outflank-mailman (input) for mailman id 841611;
 Thu, 21 Nov 2024 16:32: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tEA6R-0007e7-Pq
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 16:32:23 +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 2d9063c9-a826-11ef-99a3-01e77a169b0f;
 Thu, 21 Nov 2024 17:32:20 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5cfddb70965so1425291a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 08:32:19 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f4181356sm97750866b.77.2024.11.21.08.32.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 08:32: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: 2d9063c9-a826-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MjkiLCJoZWxvIjoibWFpbC1lZDEteDUyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJkOTA2M2M5LWE4MjYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjA2NzQwLjAxMDc1Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732206739; x=1732811539; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=kHKWbJiJFqtT9wBmn+jqWFMHxa0tn4fA09CBCKuj4e8=;
        b=sntC8xd4SlKCjMVrVyk98iI9GBUxbOEfWp9+OpUAx+k8LGgBNKiwQlTid+zuFiK9/Q
         56VQFzS3Cx+ncrB5Da5/ZEBR22Si55XD0VD/eM/sVOXvCJc7/xlVbVwZIBtphUdEYXG5
         5SSip0Cc01nEtGeU49bRskHNAUr3h1CptS2kc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732206739; x=1732811539;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=kHKWbJiJFqtT9wBmn+jqWFMHxa0tn4fA09CBCKuj4e8=;
        b=eCXhXYkX53Fs1u/sCajYWCDFJESEB58VPqzGguW2SzJUC2V9Hl39xx7lN5Wrxe/8+7
         pao9ZOm3Baff9ECGLqz39fkPpDiOo9WzRKtfL+uCCxr4EKj+bpcFXaCUVeRbd+/M9VGC
         6NSnmT/70YNtBsuGpZhkylQYYbYVd8d1fOe+fnLMKzVYWJGfCfhvCKRIsu8pM+UYea7I
         7K4QHzp7wI1QIRFpvgXfDOkQ+SgRq88v4Bgyy7YWsmYb4gURzMu1NF6mRHa13xPhACJC
         yTZslMv1Xd8JOMOyO7un3llJ+eKOQj43s4YqizyGYazIlRwYbqOrJcrOFkKaUdmtjcR5
         ApqQ==
X-Gm-Message-State: AOJu0YyGmJob9JIVGDfaBL/HniT3Pv1DRSZQh1VR3hzJMu2JDDWngqJY
	5KRTKeEs6kAUA9yhh7tOfd9u6mEwMYISTn5+YkMXcBz3ECK54kef0OzmjU7GuRk9PLSwVToT0+d
	N
X-Gm-Gg: ASbGncvHIXe3xg+FIrPHY1s9sFZEJXF2VeURJnHnKzIlslR7OYK5MAd8GyKLS03qAEz
	n1t/01D0Ei2RiASN60W1UxY5E+YZW6uuxaH8KWNqV2PiRsQpZvMOnNuzV6n7R5rXE9jPiA3M9kj
	YbXIHKo7mBKLmAoRhrmBVdM6NXZTcaF9OxSGfy0Ix96wPcP0jqYhjMc5s4W1NFq0sr23+oqIgdU
	WJJkgN2wrBNEHTmH8nYF4AymOced8yjG8l+8Cqxe+Zbu7Mjb2XNrdvAx0s=
X-Google-Smtp-Source: AGHT+IFGejFU/mssoKX8A3e0Zt9KewwePmPt2HQaEhwFN1sWc6QsvfXGYqXfGgTi3RCE+RJmUIqNXQ==
X-Received: by 2002:a17:906:da85:b0:aa3:1ee3:2ac8 with SMTP id a640c23a62f3a-aa4dd56e59amr708662766b.25.1732206739441;
        Thu, 21 Nov 2024 08:32:19 -0800 (PST)
Date: Thu, 21 Nov 2024 17:32:18 +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>,
	Jan Beulich <JBeulich@suse.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: Re: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
Message-ID: <Zz9gkhQgsOtJUA0I@macbook>
References: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20241121145000.3107723-1-andrew.cooper3@citrix.com>

On Thu, Nov 21, 2024 at 02:50:00PM +0000, Andrew Cooper wrote:
> for_each_set_bit()'s use of a double for loop had an accidental bug with a
> break in the inner loop leading to an infinite outer loop.
> 
> Adjust for_each_set_bit() to avoid this behaviour, and add extend
> test_for_each_set_bit() with a test case for this.
> 
> Fixes: ed26376f20bf ("xen/bitops: Introduce for_each_set_bit()")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

I have to admit it took me a while to understand what was going on.

Subject should likely be "Fix break usage in for_each_set_bit() loop"

Or similar?

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> 
> Both GCC and Clang seem happy with this, even at -O1:
> 
>   https://godbolt.org/z/o6ohjrzsY
> ---
>  xen/common/bitops.c      | 16 ++++++++++++++++
>  xen/include/xen/bitops.h |  2 +-
>  2 files changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/common/bitops.c b/xen/common/bitops.c
> index 91ae961440af..0edd62d25c28 100644
> --- a/xen/common/bitops.c
> +++ b/xen/common/bitops.c
> @@ -110,6 +110,22 @@ static void __init test_for_each_set_bit(void)
>  
>      if ( ull != ull_res )
>          panic("for_each_set_bit(uint64) expected %#"PRIx64", got %#"PRIx64"\n", ull, ull_res);
> +
> +    /* Check that we break from the middle of the loop */
> +    ui = HIDE(0x80001008U);
> +    ui_res = 0;
> +    for_each_set_bit ( i, ui )
> +    {
> +        static __initdata unsigned int count;

Preferably as you suggested without the static variable, I may suggest
that you use ui_tmp instead of plain tmp as the variable name?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 17:11:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 17:11:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841623.1257108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEAiH-0004Rb-BB; Thu, 21 Nov 2024 17:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841623.1257108; Thu, 21 Nov 2024 17: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 1tEAiH-0004R3-8A; Thu, 21 Nov 2024 17:11:29 +0000
Received: by outflank-mailman (input) for mailman id 841623;
 Thu, 21 Nov 2024 17:11: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tEAiG-0004Qx-DJ
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 17:11:28 +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 a2d5dfa2-a82b-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 18:11:24 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9a6acac4c3so209374366b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 09:11:24 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f4368c12sm100656466b.177.2024.11.21.09.11.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 09:11: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: a2d5dfa2-a82b-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImEyZDVkZmEyLWE4MmItMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjA5MDg0LjMwMjg4NSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732209084; x=1732813884; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=yyZzh2Ogl+3p13LwNAsbOxgCiYq7nOJGL01u1B7IFUA=;
        b=RkVIvU5gprBVcOW+3X6Z2A+VsLyDUCGiPZLwjgMqh2nj6T1nN1UgMLhDECwVEoPPMr
         twrIPmaLdweDZfiTib5CCyBaLmn7ihrM8OzvtcyAandsfKrYd0wz5Ih5UTZ6rd28NspH
         niDayTg5D9j5ywOvIZBW8Yi5E/Gc+kXkoPQZo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732209084; x=1732813884;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yyZzh2Ogl+3p13LwNAsbOxgCiYq7nOJGL01u1B7IFUA=;
        b=BtrEkzQnzGF/5cBlBrBgh01P6Bu0Ef750/ZobEClhK7p2N2XddteVhyXWpFGEFxkXS
         wwT6fcfQoHjCKdUCIuMltsUzk3LKyLEums0tWfQwCZyj5SCuf9JMB2az/c32hV1fqqHd
         lOZuVI2LqKkYwBsnZa9zeHe2Wpi6shvOLu1D48/Df0laKy2Ua5HTIpVJu+ibQlEcb/8f
         wXx+OL6kRms+LLw5BYNsafONeXJwWLXhjs7QortWxnC2uz8nXhWeM4nnjy1C1Ra9usZC
         QJF3SdnM4ln2XTczRKXZnjgpdrxlM5yz47dqSfNCGKljM58ZCQBxh9UkfAgNGWs2hFve
         YcWw==
X-Forwarded-Encrypted: i=1; AJvYcCX0PCPNTw/OIqU995PBdvY6685ExGa7CqBbWZGf7fvzH37xyxKfnlwzdLfalzJJCMWPY/JZhT/JKoU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaW7etea6izwsLpbQPgGEaerzrB8ncRBoEFfg2gCx2g1bdnJVi
	vKrg1KAA69Y4IadX8oB3gy/K0KMhlrxdSl5zQLx+bDzKMJFloT/1DRk7vKi/iPw=
X-Gm-Gg: ASbGncts+ixZHpWoBDUeD3ZxKhlwh5xG3zbJFLSZYsqF1NsoiLzKl2U8I33nw7nZbny
	tnT6KfIhrccraMHkNcURyF0FMMfJi4isZVsThTHhYEfVZHKyyOEtmWFFvyi9RTlbFc8wT68ZMrB
	6fZZGHiU7sjFLWBjVbtLM2SPvP1hJSSKVYpTX9sQ/PerOZCJzuUgO2YnqneC9LEb8Y1RTxOHhP+
	aOJ/FVayeRXZ/UEGMKg4nvEQ0u1IFMHma1FEP+iRs9ArDv+0lMBOavY538=
X-Google-Smtp-Source: AGHT+IEVjC3zVmsyZckboYUrguWOc7/n6lPRPQxd4WGy4w4VYezBeqPuodK3nrGKL+pZR2K2tB/Whg==
X-Received: by 2002:a17:906:daca:b0:a9a:17b9:77a4 with SMTP id a640c23a62f3a-aa4dd5521d1mr754416866b.20.1732209083679;
        Thu, 21 Nov 2024 09:11:23 -0800 (PST)
Date: Thu, 21 Nov 2024 18:11:22 +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/pv: limit GDT and LDT mappings areas to max number
 of vCPUs
Message-ID: <Zz9pumdfsaBUP_27@macbook>
References: <20241121111218.50984-1-roger.pau@citrix.com>
 <Zz9YM_MB1AoLqSIE@macbook>
 <b2d3a42f-b599-455f-ad15-716dd7552208@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b2d3a42f-b599-455f-ad15-716dd7552208@suse.com>

On Thu, Nov 21, 2024 at 05:03:21PM +0100, Jan Beulich wrote:
> On 21.11.2024 16:56, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 21, 2024 at 12:12:18PM +0100, Roger Pau Monne wrote:
> >> The allocation of the paging structures in the per-domain area for mapping the
> >> guest GDT and LDT can be limited to the maximum number of vCPUs the guest can
> >> have.  The maximum number of vCPUs is available at domain creation since commit
> >> 4737fa52ce86.
> >>
> >> Limiting to the actual number of vCPUs avoids wasting memory for paging
> >> structures that will never be used.  Current logic unconditionally uses 513
> >> pages, one page for the L3, plus 512 L1 pages.
> > 
> > This is not true, I was confused with the logic in
> > create_perdomain_mapping().  When create_perdomain_mapping() is called
> > with pl1tab == NULL and ppg == NULL it just allocates the L2, but not
> > the L1 tables.
> > 
> > So the purpose of the create_perdomain_mapping(d, GDT_LDT_VIRT_START,
> > ...) in pv_domain_initialise() is even more dubious now - as it just
> > allocates a page to use as L2.  I'm tempted to just remove it if you
> > agree, since I don't consider this useful.  The allocation will
> > already be done at vCPU initialization.
> 
> If it's done implicitly there, removing is likely fine. It feels like it may
> have been necessary to do this explicitly earlier on.

Possibly before you introduced the create_perdomain_mapping() the
initialization and allocation of the L2 was needed in
pv_domain_initialise().

I have a patch to remove it, and as expected nothing seems to explode,
so I will send it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 17:15:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 17:15:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841630.1257120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEAlx-00050a-Rn; Thu, 21 Nov 2024 17:15:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841630.1257120; Thu, 21 Nov 2024 17:15: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 1tEAlx-00050T-Mz; Thu, 21 Nov 2024 17:15:17 +0000
Received: by outflank-mailman (input) for mailman id 841630;
 Thu, 21 Nov 2024 17:15: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=A3MJ=SQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tEAlw-00050N-HD
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 17:15:16 +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 2b947cb7-a82c-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 18:15:13 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cfa9979cd1so2003144a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 09:15:13 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa4f42d2f86sm100805166b.110.2024.11.21.09.15.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 09:15: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: 2b947cb7-a82c-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJiOTQ3Y2I3LWE4MmMtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjA5MzEzLjkyNDI5NSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732209313; x=1732814113; 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=Qf+rhY3gob46gd7mrmGyvYrcqtND5JxDHsXGngonTSI=;
        b=RGZdK50Nzo99o9FIAmLZ1Q4PHpLcCkkGBIybsa5IXlFm3g0ZYQUztvxYf+cCXaj6BC
         oOsFuP1acyb2pDEKfMF9nx7qyJbyDi4WGwx4AmATM+/bgiI+yCCWSOTs8iwnVba6jFh0
         KUVYr4HPFPCY/BOq4BQujJF4JEsHZlsfBdx68=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732209313; x=1732814113;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Qf+rhY3gob46gd7mrmGyvYrcqtND5JxDHsXGngonTSI=;
        b=Zu5/HwhliJ0EtEdPl1ZQB4F+szd0a6jGKNtO5Pxq7nP7B3LPw4BQJzDBUGDWCAxAa+
         wTDj+UGgwEH4YBn+kvTiH3W9VfJ0/IwE5ELYkWEmmD9Rbjkse7jpqL+/6zEP4zdkm0Oy
         d0zPdb3ozwX4tkyChIBw1yYAU7Z5xQRCsWA6BNmH3a7ZzkHa9Mu50FYpydimHNrlYMN4
         DBf2tv+pjWXzbs26xAyuEh1/kcWMnCHjw2RQQeR22vZuszVVRi0hM16/kMNyxPbQR/gs
         ejDVhWhi/iBnkOG+BaeGBBnqjzIypEs3ZXVyZgrzV35XFuBCUhOjnyFE16g5co6njcXl
         yWBg==
X-Gm-Message-State: AOJu0YyvtU3wPiSdxoFhrxW8PRtezZc+uW4WhxqIjFXeAmCf1be9UK8P
	E7YQxuASRE1JTut1x5RTc020aTBznfHHIbhJajCA0IZUVuM4d6EKOGjhx/8W6Rfgz7uKSv+xndP
	O
X-Gm-Gg: ASbGncvnLCsZR4mj/vqG23qUFpZ4QVBoB4gV58iTeJc3FJZ2aAA5g4MbHVXoKiTsp+O
	5vCnFuhxE3Tq6OoDNBid9QlOkeZZzBFw0IHWyiKj94teQjP41JXeVKdSWsirkTPnOsJbn6OmWhe
	jDezSHurJ/OeGSVb7hmtIKZ3xz6F0zTzWsJSw4Urqg3qka4h5v95gpB/HXhPlBsleeYZqcGLZV9
	zC4BBt/GGLgzh631MwsFkLM3vSfHI/SLcLY4ppl5EkqUoLJRRokd/R+qbU=
X-Google-Smtp-Source: AGHT+IEODiv8l1AgqaimR8WrrdJD0Fg4sY2O+Xorwib649Syv1InrpPoHazPaxe7xghmhfr2In7YJg==
X-Received: by 2002:a05:6402:354d:b0:5cf:c1b2:c6ae with SMTP id 4fb4d7f45d1cf-5d007cb8018mr4193953a12.17.1732209312850;
        Thu, 21 Nov 2024 09:15:12 -0800 (PST)
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/pv: don't populate the GDT/LDT L3 slot at domain creation
Date: Thu, 21 Nov 2024 18:15:04 +0100
Message-ID: <20241121171504.55383-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current code in pv_domain_initialise() populates the L3 slot used for the
GDT/LDT, however that's not needed, since the create_perdomain_mapping() in
pv_create_gdt_ldt_l1tab() will already take care of allocating an L2 and
populating the L3 entry if not present.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/pv/domain.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index d5a8564c1cbe..7aef628f55be 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -376,12 +376,6 @@ int pv_domain_initialise(struct domain *d)
          (d->arch.pv.cpuidmasks = xmemdup(&cpuidmask_defaults)) == NULL )
         goto fail;
 
-    rc = create_perdomain_mapping(d, GDT_LDT_VIRT_START,
-                                  GDT_LDT_MBYTES << (20 - PAGE_SHIFT),
-                                  NULL, NULL);
-    if ( rc )
-        goto fail;
-
     d->arch.ctxt_switch = &pv_csw;
 
     if ( !is_pv_32bit_domain(d) && use_invpcid && cpu_has_pcid )
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 21 17:35:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 17:35:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841642.1257129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEB5V-0007rr-Cs; Thu, 21 Nov 2024 17:35:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841642.1257129; Thu, 21 Nov 2024 17:35: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 1tEB5V-0007rk-9a; Thu, 21 Nov 2024 17:35:29 +0000
Received: by outflank-mailman (input) for mailman id 841642;
 Thu, 21 Nov 2024 17:35: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=XSdi=SQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tEB5T-0007rd-9X
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 17:35:27 +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 fa291fa7-a82e-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 18:35:19 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2f7657f9f62so12564281fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 09:35:19 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d2f9a3asm20314a12.0.2024.11.21.09.35.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 09:35: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: fa291fa7-a82e-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzYiLCJoZWxvIjoibWFpbC1sajEteDIzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZhMjkxZmE3LWE4MmUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjEwNTE5LjI0MDg0Mywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732210519; x=1732815319; 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=wXXakLYoF97BXBj5v7CgjEOwh8KoQ2gpscStqUJXiVw=;
        b=MUkKg9YU3e6jiV3aSEKvvw1XtjCnaZIPGp9ay1YwqptsNBGgn7uRH5oIk2y9VZ+2Am
         36Ewm/SYlFlekrUqCEFh4VHc5jJzvqUaPG9Z5ul68C0jhfzPqt03PonzrlMs/j2jqUcF
         PUqQymsGR2nyOaj9v0/2RdCDcl6E7gdpZFDv4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732210519; x=1732815319;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wXXakLYoF97BXBj5v7CgjEOwh8KoQ2gpscStqUJXiVw=;
        b=M6EwT6D07IDa8XjknenBjiE6EoM7voc3/vm4b1BCJF4Ung0JQWBv1cu1mnZ1gJOiMV
         kPPNtqPXJcnfNc8kuQ/fzlbkNVTlylx80CKsIl2IcgwkPlxlcFCGG0qdAIx8U0UFarsx
         GCw0htLWTEa1kqMbcYtxNXSFKTBC0ratnVP3isjWSqktpNNaQg8u1ZTvx6QoAKkfCHD5
         pqYLmSZ5A2ybhG65SlMjFjp897OyETV09z8d/hkiqcQgUTZKSUNkmo723ul5TG89emDh
         XzCkxDArj1yaSsRGltk320eGypKO/tX52zkgqf/q6WYnAAffznae0ncFDZke48zKDOPL
         ygVQ==
X-Gm-Message-State: AOJu0Ywb3L2MDJ950nKYnX4z59erO+paXa3Hqi46u4IoTCnqIx1yrrOy
	3A8wuioMlakSbSBVCvmxwoEKifhXU/KzpXcpievLtZ37K+UmEtL4ohYUjgUk6D0=
X-Gm-Gg: ASbGncttjQt4UMjzJOHwTIYoa4WQCh55RJLvVhv4ecSa4A44XHTEPViZ4PKDWxBw/Tj
	9xaFr7bscVns4HswlP5Y++GRtWNWKmcCZqgQyf/8e4dl4L1B1mrk0lDNl6lRCgUu3B+A7wn7VIV
	ojOxK/z8oz9juQZ4beam+9mqx7mhqXBQUwJIKXjwBjAXK1FfYT5js2pR+GUCHhy4i+xSzTnCql7
	Y3+miJ2xHV+hMVAwLMQkCpEros0YVuCMdTIIoe8aSt48HsWNkpES0eRVLpGjb0=
X-Google-Smtp-Source: AGHT+IEeko8JLxJLsoVU2mvp1liAyjj1RnFjffExJNeKYTR7GfEIMJbWwL6HQuNJoVHLABqLPFkDFg==
X-Received: by 2002:a05:651c:553:b0:2f3:a06a:4c5 with SMTP id 38308e7fff4ca-2ff8dc89b77mr50044481fa.29.1732210518591;
        Thu, 21 Nov 2024 09:35:18 -0800 (PST)
Message-ID: <bb6736b2-ec3e-4e72-bd6c-fabeccc3654b@citrix.com>
Date: Thu, 21 Nov 2024 17:35:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>, Frediano Ziglio
 <frediano.ziglio@cloud.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>
References: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
 <Zz9gkhQgsOtJUA0I@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Zz9gkhQgsOtJUA0I@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/11/2024 4:32 pm, Roger Pau MonnÃ© wrote:
> On Thu, Nov 21, 2024 at 02:50:00PM +0000, Andrew Cooper wrote:
>> for_each_set_bit()'s use of a double for loop had an accidental bug with a
>> break in the inner loop leading to an infinite outer loop.
>>
>> Adjust for_each_set_bit() to avoid this behaviour, and add extend
>> test_for_each_set_bit() with a test case for this.
>>
>> Fixes: ed26376f20bf ("xen/bitops: Introduce for_each_set_bit()")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks.

>
> I have to admit it took me a while to understand what was going on.
>
> Subject should likely be "Fix break usage in for_each_set_bit() loop"
>
> Or similar?

I'll adjust.

>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> CC: Frediano Ziglio <frediano.ziglio@cloud.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Julien Grall <julien@xen.org>
>>
>> Both GCC and Clang seem happy with this, even at -O1:
>>
>>   https://godbolt.org/z/o6ohjrzsY
>> ---
>>  xen/common/bitops.c      | 16 ++++++++++++++++
>>  xen/include/xen/bitops.h |  2 +-
>>  2 files changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/common/bitops.c b/xen/common/bitops.c
>> index 91ae961440af..0edd62d25c28 100644
>> --- a/xen/common/bitops.c
>> +++ b/xen/common/bitops.c
>> @@ -110,6 +110,22 @@ static void __init test_for_each_set_bit(void)
>>  
>>      if ( ull != ull_res )
>>          panic("for_each_set_bit(uint64) expected %#"PRIx64", got %#"PRIx64"\n", ull, ull_res);
>> +
>> +    /* Check that we break from the middle of the loop */
>> +    ui = HIDE(0x80001008U);
>> +    ui_res = 0;
>> +    for_each_set_bit ( i, ui )
>> +    {
>> +        static __initdata unsigned int count;
> Preferably as you suggested without the static variable, I may suggest
> that you use ui_tmp instead of plain tmp as the variable name?

For this, I'd prefer not to.

For ui, ul and ull, there are a pair of variables with precise usage.

This is one random number that gets as far as 2.Â  And it's test code.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 17:47:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 17:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841651.1257139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEBGk-00018t-EU; Thu, 21 Nov 2024 17:47:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841651.1257139; Thu, 21 Nov 2024 17:47: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 1tEBGk-00018m-Af; Thu, 21 Nov 2024 17:47:06 +0000
Received: by outflank-mailman (input) for mailman id 841651;
 Thu, 21 Nov 2024 17:47: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=BPai=SQ=bounce.vates.tech=bounce-md_30504962.673f7213.v1-a95a4a8b39304e3ba3aaa3fbb27082e6@srs-se1.protection.inumbo.net>)
 id 1tEBGj-00018g-Lf
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 17:47:05 +0000
Received: from mail134-5.atl141.mandrillapp.com
 (mail134-5.atl141.mandrillapp.com [198.2.134.5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c65c7d7-a830-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 18:47:01 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-5.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4XvQfC5rvVzG0CBVQ
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 17:46:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a95a4a8b39304e3ba3aaa3fbb27082e6; Thu, 21 Nov 2024 17:46: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: 9c65c7d7-a830-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNC41IiwiaGVsbyI6Im1haWwxMzQtNS5hdGwxNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjljNjVjN2Q3LWE4MzAtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjExMjIxLjc2ODA3NSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3M2Y3MjEzLnYxLWE5NWE0YThiMzkzMDRlM2JhM2FhYTNmYmIyNzA4MmU2QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732211219; x=1732471719;
	bh=4HrLBiDweoVZkUTDxCbNJhCB9u/XYHeFmjaL4uZGXqA=;
	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=LdSa6SJ4CQl/Hz5XbX23TlR6nUR2Wjdya/+n1WXDUkixV/Z/EtYKGpC1FI9o6krjc
	 B/XgLzXVurZOdnDm57C0gFfvcwk70trtRde/myO1aLAUulnVKFeQo1PrRcZWkyu1O9
	 pb4x1xCyY92BPNi8jLKD5Dwq6JjMdepDput3OE7plCfO+lIdVyPB3CaA8wvXcWdR2O
	 g4xTzNLUci6sCJsCm7wFduozu4NQ4kMPyuF/OJK0huK3BdOF6axxzfIFecxeTpqThg
	 h3Qk5J6xPWtpjr2Ljs0EdX4NcHGsUhF9rfKNJ8QQlKHMlpeWV0/IA6Bs1EkL4FmkBy
	 tArTvW8TwTWPQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732211219; x=1732471719; i=anthony.perard@vates.tech;
	bh=4HrLBiDweoVZkUTDxCbNJhCB9u/XYHeFmjaL4uZGXqA=;
	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=RDsQ6p8GUBNCl/FUI70wia0sj2YzdzX0EP96lw4/qjMaoYEwIGGAPYGMIg1d3PSuX
	 MpXLU78TH4GF69HXnvojNOW/MhjEfL2HpkYpJaPtP2OyzVGoAJsHyMQbfZ994m5S5b
	 EVbz0+KZni3aFwod+Cv6RJwMOPxkbJyGVBjEA0bNgFMVoY3NO6FIBbOI9vTczVKidG
	 jTm/s1HiZBtRjfZeFScjhXT5yQC1gnykloPklqis2aP9lwvIEzWBtECejhRglNumGQ
	 ObJygLbbiMAOLx2xvI7IWrtPMjUCiWenaiNF0fRUCSPHfJwQT111WKAhteSW4UxvZM
	 N5YlS5jgiS8+A==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2000/25]=20Introduce=20xenbindgen=20to=20autogen=20hypercall=20structs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732211218271
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Christian Lindig" <christian.lindig@citrix.com>, "David Scott" <dave@recoil.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Michal Orzel" <michal.orzel@amd.com>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Samuel Thibault" <samuel.thibault@ens-lyon.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "Tim Deegan" <tim@xen.org>, "Lukasz Hawrylko" <lukasz@hawrylko.pl>, =?utf-8?Q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>, "Doug Goldstein" <cardoe@cardoe.com>, "Teddy Astie" <teddy.astie@vates.tech>, "Yann Dirson" <yann.dirson@vates.tech>
Message-Id: <Zz9yEUj1_t1SSKE_@l14>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
In-Reply-To: <20241115115200.2824-1-alejandro.vallejo@cloud.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.a95a4a8b39304e3ba3aaa3fbb27082e6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241121:md
Date: Thu, 21 Nov 2024 17:46:59 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi Alejandro,

Nice work :-).

On Fri, Nov 15, 2024 at 11:51:29AM +0000, Alejandro Vallejo wrote:
> This series is the result of my "Interfacing Rust with Xen" talk in Xen Summit.
> It adds a hypercall ABI IDL parser and generator to the xen tree, replaces a
> couple of existing hypercalls, creates a Rust crate with autogenerated contents
> an creates a CI job to ensure nothing goes out of sync.
>
> The changes are fairly invasive because the various autogenerated items appear
> in many places (specially the domaincreate flags). However, the changes to the
> hypervisor are all mechanical and not functional (not intentionally so, at
> least).

I tried to build QEMU with this series applied, and the build failed. In
this case nothing important, the "autogen" directory just need to be
installed. But I fear the changes introduce to the API (like change
of case for the flags) will also be done to other API that project
outside of the xen repo use, and thus introduce unneeded breakage.
Should the changes also introduce a compatibility with the previous API?

> I've split the generator in reasonably small pieces, but it's still not a small
> tool. The Rust backend remains monolithic in a single patch until the RFC goes
> further. It mirrors the C backend for the most part.
> 
> The hypercall ABI is specified in a schema of TOML. Most of it should be fairly
> obvious as to what it does and means, with the possible exception of the "typ"
> field. That has the look of a dictionary because that helps the deserializer to
> automatically resolve the typ to a convenient Rust enum type (Typ). In time,
> that will become something nicer to write, but that's fairly far in my list of
> priorities at the moment.

Instead of creating your own IDL specification, did you look for
existing project that would do just that? That is been able to describe
the existing ABI in IDL and use an existing project to generate C and
Rust headers.

I kind of look into this, but there's quite a few project to explore and
I didn't really spend enough time. Also, there's probably quite a lot
that are for client-server interfaces rather than syscall/hypercalls, or
they impose a data format.


Next, on the file format choice, is TOML the best for describing an ABI,
or would other existing file format make it a bit easier to read, like
JSON or YAML? (I quite like using YAML so I have a bias toward it :-),
and that's the format used for the CI). I don't think it mater much for
Serde which file format is used.

> After the series sysctl::readconsole and domctl::createdomain are autogenerated
> from their formalized forms. In the course of formalizing the ABI it became
> apparent readconsole has a different ABI in 32 and 64 bits. While benign in
> that particular case, it's yet one more reason to formalize the ABI in a
> language agnostic way and have it machine-checked.
> 
> ======== The Plan ===========
> 
> So, the idea of the series is to adjust 2 meaningful hypercalls to TOML-based
> specifications (sysctl::readconsole and domctl::createdomain). The series is
> organised in the following chunks of work
> 
>   1. Sanitise domctl::createdomain to remove packed subfields.
>   2. Introduce xenbindgen (IDL parser and generator for C).
>   3. Specify hypercalls in TOML, and replace the hand-crafted public bits.
>   4. Introduce Rust generator for xenbindgen.
>   5. Introduce a xen-sys crate, with the autogenerated Rust constructs.
>   6. Introduce CI checks for Rust linters, ABI validation and autogenerated
>      file consistency.
> 
> Future work involves migrating more hypercalls, in the same way patch 12 does.
> Most hypercalls should not take the amount of churn createdomain did. With the
> foundations laid down the involved work should be simple.
> 
> I have considered integrating the hypercall generation in the build process.
> That forces the Rust toolchain to be in the list of build dependencies for
> downstreams, which might be complicated or annoying. For the time being, I
> think checking in the autogenerated files and confirming in CI that they are
> in-sync is (imo) more than enough.

Having the generated header files been committed sound like a good idea
for now. For better or for worth we've got a few of those already, so
it isn't a first.

But the way the different pieces are spread out in the repository in
this patch series will make it difficult for future contributor to update
the hypercall ABI. They'll be meet with an "autogenerated file, don't
modify" with little clue as to how actually regenerate them. For that I
think it would be better to have the IDL description (TOML files) in
that "xen/public/include" directory or at the very least in "xen/".
Second, with "xenbindgen" been in in "tools/", this introduce a soft
dependency of "xen" on "tools", which should be avoided even if the
build system of "xen/" doesn't call into xenbindgen today. So I think it
would be better to have xenbindgen either live in "xen/" or in a
different directory at the root of the repo. There's already Kconfig in
"xen/" so xenbindgen isn't going to be the first parser/generator in
"xen/" directory.

> ======== Patch grouping ===========
> 
> Patches 1 and 2 remove packed subfields to allow encoding it in the TOML specs
> (e.g: see patch 13, replace hand-crafted altp2m_mode). It's non-functional
> changes aiming to reach simpler representability.
> 
>   Patch 1.  xen/domctl: Refine grant_opts into max_grant_version
>   Patch 2.  xen/domctl: Replace altp2m_opts with altp2m_mode
> 
> Patches 3 to 10 are xenbindgen (with the C generator backend only). The
> Cargo.lock file in patch 4 is required for build reproducibility and is
> recommended to have checked in the repo.
> 
>   Patch 3.  tools/xenbindgen: Introduce a Xen hypercall IDL generator
>   Patch 4.  tools/xenbindgen: Add a TOML spec reader
>   Patch 5.  tools/xenbindgen: Add basic plumbing for the C backend
>   Patch 6.  tools/xenbindgen: Add xenbindgen's Cargo.lock file
>   Patch 7.  tools/xenbindgen: Add support for structs in TOML specs
>   Patch 8.  tools/xenbindgen: Add support for enums in TOML specs
>   Patch 9.  tools/xenbindgen: Add support for bitmaps in TOML specs
>   Patch 10. tools/xenbindgen: Add support for includes in the TOML specs
> 
> Patch 11 goes a step beyond and validates the ABI has no implicit padding and
> that all names are unique. In the future, when we define rules for stable ABIs,
> all of those can be checked here, at generation time.
> 
>   Patch 11. tools/xenbindgen: Validate ABI rules at generation time
> 
> Patches 12 to 19 replace current items in the C headers with autogenerated
> versions. They should all be mechanical translations.
> 
>   Patch 12. xen: Replace sysctl/readconsole with autogenerated version
>   Patch 13. xen: Replace hand-crafted altp2m_mode descriptions with
>             autogenerated ones
>   Patch 14. xen: Replace common bitmaps in domctl.createdomain with
>             autogenerated versions
>   Patch 15. xen/arm: Replace hand-crafted xen_arch_domainconfig with
>             autogenerated one

I feel like you write "hand-crafted" in those patch description as if it
is a bad thing. Yet, you replace the hand-crafted C headers by
hand-crafted IDL. I think a better title could be "Translate
xen_arch_domainconfig into IDL" to avoid what I feel like is a
pejorative term.

Also, would it be possible to separate changes to the existing API from
the patch that introduce the newly generated headers? I think it would
be much easier to review that the generated headers don't introduce
any changes over the current one.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 22:51:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 22:51:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841675.1257172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEG1S-0001t2-Bv; Thu, 21 Nov 2024 22:51:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841675.1257172; Thu, 21 Nov 2024 22: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 1tEG1S-0001sv-8t; Thu, 21 Nov 2024 22:51:38 +0000
Received: by outflank-mailman (input) for mailman id 841675;
 Thu, 21 Nov 2024 22:51: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=5rRg=SQ=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1tEG1Q-0001so-Vc
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 22:51:37 +0000
Received: from mail-oo1-xc2d.google.com (mail-oo1-xc2d.google.com
 [2607:f8b0:4864:20::c2d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 264cb036-a85b-11ef-a0cc-8be0dac302b0;
 Thu, 21 Nov 2024 23:51:31 +0100 (CET)
Received: by mail-oo1-xc2d.google.com with SMTP id
 006d021491bc7-5ee55fa4b31so800609eaf.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 14:51:31 -0800 (PST)
Received: from ip-172-31-19-182.us-east-2.compute.internal
 (ec2-18-220-54-129.us-east-2.compute.amazonaws.com. [18.220.54.129])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4653c3ee43esm4203971cf.22.2024.11.21.14.51.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 14:51: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: 264cb036-a85b-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpjMmQiLCJoZWxvIjoibWFpbC1vbzEteGMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI2NGNiMDM2LWE4NWItMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjI5NDkxLjgwNDQ5NCwic2VuZGVyIjoiYWxleGFuZGVyQGVkZXJhLmRldiIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1732229490; x=1732834290; 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=M5KMmAvOf7yexbO07PqanGNRWx1lbfxWV65SvdMYhlY=;
        b=CdWHpEB32jQMMq64s4pgBPJBzhOMFIDcFa5ESxxNSHz+acWPrgNfv1mumt4OefwATX
         /H0goDZBSyxbCjZYg6RXze7pN5VGWC/pr0yZjWECiTAlfkMnDOVxEeyo7cCzmD+wLy3h
         sYlcnswybD1Zxoh6mFwgmMZq2E2MM2/g5rYWf+cK6HnjoCuDiSM8WfdCLSoX4pFUutO0
         HRgypmBw/cdDQm1+bgJAqaOHMwKt9lODJUTW4XhsiGh10E1VGeZ1EGXv//VaUTveh4Dx
         jRK5hCq4GCDLbQwoEuYz1Hd6/rUh0jd8cCVB61wcjMoYl2OQz112xwsIHie/HwLgl4p5
         ujWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732229490; x=1732834290;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=M5KMmAvOf7yexbO07PqanGNRWx1lbfxWV65SvdMYhlY=;
        b=vTP+liFuQEY7CycxRgCsApX142YOPILtHfGPKvCz+F9+BMrT6DPHGthkwoFjs31GxG
         CdLrpIFkyjSbed4p8rFGGZ37+/YKSxLWnlZOhalPIlr035BjD9+A7muAvVpnj9/rrFkE
         vAGhF6ZMEgPm5gVoukfXXgNG23nK6mykqNLCuaoirgmyvz3nFAgRUfSwztMheCl8H3KU
         8tnnp8uSqXBzXY2S/Bzfb1VIN2VyVr1YzWjB7CpWBDZ2peB6p08ngQ2InZlVqz3fGO1O
         GLOBpbfs+HXFz7Ho6LhFez61uKLni0fwsMS03pDbfsXPP6JlGj3F2DcGr9YUoFgXoAhK
         YjeA==
X-Forwarded-Encrypted: i=1; AJvYcCXy8n4r756MRSbXgmAF+ieC/wzX128MKQfUy9XCixV8gUSqR1y64pBiCLzTaglnllvPz3vVO4+3jB8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzW7MN1tjxbGT3lHFdONFi5lyRFMnV6g2MUrTQ5+qeUvqYIoY3G
	JbEb2BDiToQbFs8xukT4+q9zKj+w+Dl9RVwe0gk3xCddviFj2KFWu+JAZSjtFkc=
X-Gm-Gg: ASbGnctWjkiCFYl9xjE7mpoMy26lQckuWHmpq1mk4d8ZFPXnHjKtIlWDiVUBZtdD7Bz
	uq5yYMA26oB6W6dMeLunk/A96QB2nLSWNLYxUNAZDBhT3eJ9taMS8Gl3BpN4hACutzaPwJXAsyZ
	YMK6DkN3VTjyV8VutI+D1+LM0gw1cfJIEXskcEYCTyPbZ4zoh5I9UiOa3IYT1a+anGM4YfkqnWW
	bHZyANHHMQy3HxC0FX/KHOa7gRuXjRxAFGMlm14CLxEUC+vIecdoWfeEh+Bca+npnVf7JLZpNMD
	fJxHfPanUU/CEK4IhbmIlWMSzBhtK53CVYON9BJYdZbQbrrFii5rhrT0dkTeyxIQ9tiBfJg=
X-Google-Smtp-Source: AGHT+IHRfgZ/zJdkaYat35UYAnjiCdb2X4OLEmzJdr9rSEx2OpMGZ9tm7YvUi1s+NAeKvDBAkLpcQw==
X-Received: by 2002:a05:6358:c02a:b0:1bc:7c1c:9fc2 with SMTP id e5c5f4694b2df-1ca7970dff8mr121232955d.6.1732229490351;
        Thu, 21 Nov 2024 14:51:30 -0800 (PST)
From: Alexander Merritt <alexander@edera.dev>
To: v9fs@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: Eric Van Hensbergen <ericvh@kernel.org>,
	Latchesar Ionkov <lucho@ionkov.net>,
	Dominique Martinet <asmadeus@codewreck.org>,
	Christian Schoenebeck <linux_oss@crudebyte.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alex Zenla <alex@edera.dev>,
	Alexander Merritt <alexander@edera.dev>,
	Ariadne Conill <ariadne@ariadne.space>
Subject: [PATCH] 9p/xen: fix release of IRQ
Date: Thu, 21 Nov 2024 22:51:00 +0000
Message-ID: <20241121225100.5736-1-alexander@edera.dev>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Alex Zenla <alex@edera.dev>

Kernel logs indicate an IRQ was double-freed.

Pass correct device ID during IRQ release.

Fixes: 71ebd71921e45 ("xen/9pfs: connect to the backend")
Signed-off-by: Alex Zenla <alex@edera.dev>
Signed-off-by: Alexander Merritt <alexander@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
 net/9p/trans_xen.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c
index dfdbe1ca5338..198d46d79d84 100644
--- a/net/9p/trans_xen.c
+++ b/net/9p/trans_xen.c
@@ -286,7 +286,8 @@ static void xen_9pfs_front_free(struct xen_9pfs_front_priv *priv)
 		if (!priv->rings[i].intf)
 			break;
 		if (priv->rings[i].irq > 0)
-			unbind_from_irqhandler(priv->rings[i].irq, priv->dev);
+			unbind_from_irqhandler(priv->rings[i].irq, ring);
+		priv->rings[i].evtchn = priv->rings[i].irq = 0;
 		if (priv->rings[i].data.in) {
 			for (j = 0;
 			     j < (1 << priv->rings[i].intf->ring_order);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 21 23:15:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 23:15:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841686.1257183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEGON-0004jb-9d; Thu, 21 Nov 2024 23:15:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841686.1257183; Thu, 21 Nov 2024 23:15: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 1tEGON-0004jU-72; Thu, 21 Nov 2024 23:15:19 +0000
Received: by outflank-mailman (input) for mailman id 841686;
 Thu, 21 Nov 2024 23:15: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=7QOI=SQ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tEGOM-0004jO-6C
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 23:15:18 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100000.outbound.protection.outlook.com
 [2a01:111:f403:c201::])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76ecb06e-a85e-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 00:15:14 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM7PR03MB6580.eurprd03.prod.outlook.com
 (2603:10a6:20b:1b4::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Thu, 21 Nov
 2024 23:15:11 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.016; Thu, 21 Nov 2024
 23:15: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: 76ecb06e-a85e-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6YzIwMTo6IiwiaGVsbyI6IkFNMFBSODNDVTAwNS5vdXRib3VuZC5wcm90ZWN0aW9uLm91dGxvb2suY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc2ZWNiMDZlLWE4NWUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjMwOTE0Ljc5NjE1NSwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q8F7QsoV1XOBJP+XHy0Gkt37vtZ4wjTcl+a+bGg4NYZ5iTZh6XmuJpwn9r01OE8Sk+0hJeTjTI2nWTsrwOPTJ1F+XO+kwjzkb45DveLFLw2RXMMhFh/1Rv62lymQo1gtTteV9S2oxmWKvJaJgmCnvx2IYTBaLiHdiVTUJg+JdUI51M9Tht1rojgU46gQOqDZcht79EcxDmynAARg0QCYpjlorxQDsRqe8LdSPUNq4EYOm6fvwnnCby193KKTc4EkbteZpBpJCKxS/iz09tbYwf4XHsYd6ojHf8qt/0svfQiX37NQINri8BsYZ/tTosiFdPnP70F+hN5drE9caFN6Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T8g1FN93vkyr39bHXONf8ecLUmiuGlm7IOmyfDjStso=;
 b=A1kBNJ46Y7ZvkntN/eDuUZD/r7YSLzHEtetDqJl167MRVJtzmRmGew8YofaK9XITLhZf+BGJx0ILLwQbXMz8mNgqV3pNvYjEIyGrHB4euKq8ihNCoLUoxm/qOdGT1eXt4NZ8aNafamNl3DLxH1tNJTe5Yin9Dcq31XyGzqCjgQNUiIQpZovkVc6F05KvJgefuBsJTv8c7cnTLP3HbJ3427j7y+q/1X1uRNAogJf/8oJ+TpnGUKOELbonGDmhsL+iLLNwLotnOadhOXv6Pq90xHk+s6J9iENczRe/rLPworHqbzNsCzYAGTfh+dv42WmyII9cGrn5Uv1A24v1W5iaWQ==
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=T8g1FN93vkyr39bHXONf8ecLUmiuGlm7IOmyfDjStso=;
 b=Cg+PHeu3O6DowCD3Gt4B6e9jkLEYNyfoAoUcWit2T7i68t+AhCC4XSJ6UHMweDUevU9wBBWFBr9MLC0rccAwGF/M++XTf0X3H8Wc2jYfJaGegAE2685diCqxFCDkpmgvZ8ExrLcs9zx0J9rbo2V/C8KOMdASnEcbPtz1KNwmybNTIwhQLXB8DsUP8qaMISJ7Em6na2auzrbKlrXEitnrA/ookoE4A8nZe0vE8fwuY4G4wGuHTD342MPbN9EPN9C3w8aoxlylTzHx3f9n86pR4WS+VSTPhmliaw7QNmoXcmYHpL+IQP+y37AFsFuxVR4nYh7yD92j02NARQ27uTd9aA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@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>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, Juergen
 Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Index: AQHbNucXRmUX3Y7lRUGcS7d55ZSXhw==
Date: Thu, 21 Nov 2024 23:15:10 +0000
Message-ID: <871pz4kwle.fsf@epam.com>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
	<alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
	<875xojmexk.fsf@epam.com>
	<alpine.DEB.2.22.394.2411191409140.1160299@ubuntu-linux-20-04-desktop>
	<87iksilod0.fsf@epam.com>
	<alpine.DEB.2.22.394.2411201406060.3516911@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2411201406060.3516911@ubuntu-linux-20-04-desktop>
	(Stefano Stabellini's message of "Wed, 20 Nov 2024 14:07:47 -0800	(PST)")
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: GV1PR03MB10456:EE_|AM7PR03MB6580:EE_
x-ms-office365-filtering-correlation-id: 37d362e7-1168-4aa7-affb-08dd0a8258ce
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7bnchV5TWjspcasC1X950r0I/u7rp6tQ+kGh9+H+az9t25sxt22gOva76C?=
 =?iso-8859-1?Q?IOR18kmn7bqYOqaLC71IazV4Aq21uXHahGFtQ+N11njWU8BCryxXaGgSA5?=
 =?iso-8859-1?Q?jyJMVGmr3Zr1j1eAw2Sk/5OhitCS1nxO5IlBMsJllFvfYuM7yxDG4dHcWT?=
 =?iso-8859-1?Q?dzK13Ss5EoABley6YxnXnwf6xPcuVTEPdpm+IGyw3mo1ouhpedwlRTlxSX?=
 =?iso-8859-1?Q?J4C1ixcr30SkplAddK4vHkzKMsDx9QhQNzU/sZlV6a2j0vZowwhKrrJWEW?=
 =?iso-8859-1?Q?gyw6v/FWV5EPeHsb5/qs4RxmkOkW6OFn3/rQspbXpPQeNsVHx15sAMeioN?=
 =?iso-8859-1?Q?SfDKEt0g8iiD1fWNXwXhe0O9Pn9t4xpxvB9+i/f2qU0bqs0YYz6exWINUP?=
 =?iso-8859-1?Q?4vV42nldQnnJdIzsv/17sQgHKSQ4PyiY5PL3nymr0ynrLgpKbnja9dgSPu?=
 =?iso-8859-1?Q?pfIx/aG2Sr80TIA4134ZZLuHQnueJeQ3V7rIwTjTC+06Jh/eTlRfqioX5c?=
 =?iso-8859-1?Q?/ZUmPqEkoaaJlXtRzK2QrukiMH8hoICaqAKWKTvnhrQAlhOvYdWSGH/0TV?=
 =?iso-8859-1?Q?X3cj3SgV0JNr7SZ6pbjyX7U/bXzgJYg7H+PpVGQBbqbNzHBvMckcH9+D6Q?=
 =?iso-8859-1?Q?lZpMyoJ5RqYQD0VgP8Pwcqad9qKmkuRLmpavlZtLkOW6cu1MKtkH7Kao20?=
 =?iso-8859-1?Q?/vhM8qDvv0RlWcrnV+xNEKmyFAImT1lqCpTjCKwvifUnflOPDVFJ7VD3J6?=
 =?iso-8859-1?Q?eUJ+FzfWGz/3k48rnGtW10S1IYstbFRSU8lMBmMgUCcDio5eSqWVYc/KND?=
 =?iso-8859-1?Q?BS20+24HZ71jwnR5wpJvidAgjUyAzZs3maXvTTjAZNkPGzpuXAd5D5XLgg?=
 =?iso-8859-1?Q?t9xvCuxJ3pNjXFFFaVHKHnEEgFyPR0YBKAJAgAstdSLc8Q82jf+RoCf5uW?=
 =?iso-8859-1?Q?qKp3d7gdfuIJ4/LKRckLwHz67bx7C6LvoCbZa03wELQHkh6y3TChEP86l/?=
 =?iso-8859-1?Q?dWoQLncfFcDEETSv51UvKZEkEiBtpCKEtWKsKQlDwSr9pFIvGGPJcZNVmu?=
 =?iso-8859-1?Q?e+jnY4PlMROnRW0v4wqGbk7SJ9oLPNzdoqE4U91/20oTM5azDsiqkQCCHe?=
 =?iso-8859-1?Q?EWRgFNV63pjNB5EOVhzSNZ/E2dFv6+604aia62jdBr0nediuowdOSytiNU?=
 =?iso-8859-1?Q?pSnk0OqctZes6VuK93OWNB5UusE9+w6feG9f0E/yhGFLn3n1XDghF9hgeH?=
 =?iso-8859-1?Q?+SuNINQFr2YrTrv4eIlM0Ynpa5blE5ryxpsue9mNBfRZrC9q9YYyOo6PYJ?=
 =?iso-8859-1?Q?AUKw4F60qXJ+EkSFOLkFRrEGibj/ql3QwH1TkP243Jo+rezSmQ6ABDBJln?=
 =?iso-8859-1?Q?XUWks1sZxl?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?VNtUZvakmUAvTenyOm6+0HM9VXNAYnZXHYRkimKlXIqL/wndode7v+YAaM?=
 =?iso-8859-1?Q?1FkBfS/9b0UV3Bhc0PBylIe00DdenD6W2jL5vut5NEXYPN7VjsIs26l1xf?=
 =?iso-8859-1?Q?W40GpUHlVsQWACeUlVdsDrTDv9Ii/85mtHfl05Qgixx1Pvo0XmYzncrHg1?=
 =?iso-8859-1?Q?2lI20TnO2iSW2b+ng3jascflV7g//5eXjrgJxivM3udwmUDAxyakgLTzAO?=
 =?iso-8859-1?Q?bCa8AD5OKf1YFI/NxjSz/ekVvd4RcaWjz+e2ekRBYbZj5X08XMw16bhF4U?=
 =?iso-8859-1?Q?a9xVtHRFg5+BE02L4d0xDWA/snis7KEIblpoTS+7Xc85lBs7sR/q/CYt83?=
 =?iso-8859-1?Q?RxMYmSi97vw3KZAk8Y51+K8i7zxQlUgNWR1LIJ0bUs9AjAAnUsV9Puxak7?=
 =?iso-8859-1?Q?mkXRzEY4TLv8RmJn6rWx7JkSk9fpiAEAHWLtvxjinDxyL02e3ZvDXdgaAV?=
 =?iso-8859-1?Q?3F/AnnATkG2NXAvCyuC3pDUk6coYm875yLrkqhx25hMpX4xRQe2QKPYR4w?=
 =?iso-8859-1?Q?4X/GN2oxIcpvzcA/GbjPkjBK6Lz2lW6S2FviF4sowaaSH5G9JgAiF0jMi7?=
 =?iso-8859-1?Q?kNnXfemuD/zTyICEzoFecaBttRRG0bVmMRgmiyiGhtjeP3Y0vNbYo9tMtr?=
 =?iso-8859-1?Q?PLn4t9m+Pun1MlX3d1w2pGSliqlO2vX3sqkrct4rn9JINBIZxKcrMC1ung?=
 =?iso-8859-1?Q?BdCNNS7wQIb+hsDe3aK4kGySaUUew0xMCLOuNX8JlQxN+wkuMH0La6U9P2?=
 =?iso-8859-1?Q?LXYgcaN7MhOXMX4daiT1kfj1TdSrk9Pfu6dl9w73LWnofdKxsz1ZwS6Bsz?=
 =?iso-8859-1?Q?x6SXRAb6+NMHOcRAAJyPt2hWAZqjh1R5Qw4VK10o4v5zbwKBrhk3AfJyvw?=
 =?iso-8859-1?Q?CnM+Gp2vpVdsORqlCzxCgTXYNWRJbBmYQxM7iOsV4NxN3LdexeqlcBLMie?=
 =?iso-8859-1?Q?hxgPDGcWiJylMnwXf9QouBWxi0V12HRMQ1HLAOLHpINR4TH9HBJd3Pt0lT?=
 =?iso-8859-1?Q?QQtsyCHKadd7uN+SsKDvh1O1C+Gb5LWCMUDmMufrMuN9Mmuo05UOtq6BhC?=
 =?iso-8859-1?Q?Fz0rMwXiaUcKBXl5w9OmkdX9DCJrB5aWdrEPzbXf885RhF+GWdiO96o+j7?=
 =?iso-8859-1?Q?YWtUcgMAVI72J6wpQyizy2KAO7F0mqqJLikj1LgJdcT2o34wOUKsjTSlEk?=
 =?iso-8859-1?Q?Kwos4YdxMcs1VOpG/Fw5GxCgvNebuPqZvoo9w2UDx/SsNOfwF5oT/pXQyE?=
 =?iso-8859-1?Q?MoRuB9MP0vFxLsUhMhE+RynH3xbv5lPdTWTt2gakQFjDi7Jvxoo7SKS1Ma?=
 =?iso-8859-1?Q?1n54dH1BLALl21c3uxrArDfxqlrGHdfexxk+B0laTMHZfMV12LJBlKAfyt?=
 =?iso-8859-1?Q?dPcSEHibq7SRBep31rmKpb/2BBcglWJVEKc0XK1Z8Lkn334vG8qguc9iZS?=
 =?iso-8859-1?Q?4vkDKxcmtVNs0C5nqArAguIPTFqXQgWgv5qi0jC2148UUb2T2djvsh9b3k?=
 =?iso-8859-1?Q?Yl5xxR3+D3pHRWjGLFcHz0+O88xnfHpvEZGmr4nbdfKWOrkv9Ij5slMsSS?=
 =?iso-8859-1?Q?aQ1+1IQwiq5+FbrPui6TZXU2K6gLVF/Iz3flMHG8QhwRBlyW92U5vhHp74?=
 =?iso-8859-1?Q?CGRNii08qz/sOHiorO66Dsnb+hA1CvfbPXTLLufFyHqi40yxf7LvOvzw?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37d362e7-1168-4aa7-affb-08dd0a8258ce
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2024 23:15:10.7922
 (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: HMKVbvSLzNiz6491zvbsog/WK303T+0ziMNDE6lRHtqza5n9EdTYgS0okLvPMPmjXLk8cyA86ypGMCw/9EpTPX/pY7iUVqWOzMvv3/yV9JE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6580

Hi Stefano,

Stefano Stabellini <sstabellini@kernel.org> writes:

> On Wed, 20 Nov 2024, Volodymyr Babchuk wrote:
>> Hi Stefano,
>>=20
>> (sorry, hit wrong Reply-To option, re-sending for wider audience)
>>=20
>> Stefano Stabellini <sstabellini@kernel.org> writes:
>>=20
>> > On Tue, 19 Nov 2024, Volodymyr Babchuk wrote:
>> >> Hi Stefano,
>> >>
>> >> Stefano Stabellini <sstabellini@kernel.org> writes:
>> >>

[...]

>> >>
>> >> I was considering this as well. Problem is that fuzzing should be
>> >> running for a prolonged periods of time. There is no clear consensus =
on
>> >> "how long", but most widely accepted time period is 24 hours. So look=
s
>> >> like it should be something like "nightly build" task. Fuzzer code
>> >> needs to be extended to support some runtime restriction, because rig=
ht
>> >> now it runs indefinitely, until user stops it.
>> >
>> > We can let it run for 48 hours continuously every weekend using the
>> > Gitlab runners
>>=20
>> Great idea. Anyways, I need to add option to limit runtime to the fuzzer
>> and invent some method for reporting discovered crashes to the CI first.
>>=20
>> >
>> >> I am certainly going to implement this, but this is a separate topic,
>> >> because it quires changes in the fuzzer app. Speaking on which... Rig=
ht
>> >> now both fuzzer and test harness reside in our github repo, as you
>> >> noticed. I believe it is better to host it on xenbits as an official
>> >> part of the Xen Project.
>> >
>> > Yes we can create repos under gitlab.com/xen-project for this, maybe a
>> > new subgroup gitlab.com/xen-project/fuzzer
>>=20
>> Good. Whom should I ask to do this?
>
> I created gitlab.com/xen-project/fuzzer as an empty group. What
> repositories do you need under it?

Right now it is only the fuzzer itself
(https://github.com/xen-troops/xen-fuzzer-rs). If we are going to use
XTF then we don't need additional repo for the the harness.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Nov 21 23:45:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Nov 2024 23:45:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841696.1257193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEGrT-0000HZ-BL; Thu, 21 Nov 2024 23:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841696.1257193; Thu, 21 Nov 2024 23:45: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 1tEGrT-0000HS-8A; Thu, 21 Nov 2024 23:45:23 +0000
Received: by outflank-mailman (input) for mailman id 841696;
 Thu, 21 Nov 2024 23: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=zSRA=SQ=codewreck.org=asmadeus@srs-se1.protection.inumbo.net>)
 id 1tEGrQ-0000FZ-N3
 for xen-devel@lists.xenproject.org; Thu, 21 Nov 2024 23:45:22 +0000
Received: from submarine.notk.org (submarine.notk.org [62.210.214.84])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id a890ffed-a862-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 00:45:16 +0100 (CET)
Received: from gaia.codewreck.org (localhost [127.0.0.1])
 by submarine.notk.org (Postfix) with ESMTPS id 3FFB014C1E1;
 Fri, 22 Nov 2024 00:45:12 +0100 (CET)
Received: from localhost (gaia.codewreck.org [local])
 by gaia.codewreck.org (OpenSMTPD) with ESMTPA id 4c7bd5de;
 Thu, 21 Nov 2024 23:45: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: a890ffed-a862-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjYyLjIxMC4yMTQuODQiLCJoZWxvIjoic3VibWFyaW5lLm5vdGsub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImE4OTBmZmVkLWE4NjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjMyNzE2LjI0Mjg4MSwic2VuZGVyIjoiYXNtYWRldXNAY29kZXdyZWNrLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codewreck.org;
	s=2; t=1732232715;
	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=u8f+LwLszrHbolnXZg0ayVqT0diIxwr+pKK0O36nMkc=;
	b=TCI0vHQCYt9Ne5WwZakn3LuGnVwTUvRvp9HbK3hL08JRMIEqVU4Z7hNN4kzh0FVPwjAywi
	6O2LwTnY39QT6MRKEFrIm9uGYcDoWuq4dQf0a4aUjR833EJy/yeN2Mdk8c+bfe2WcqtUeu
	oAYPLqA2/lsSbaWQOfoekEjym6gncUNJbeT54wSJJvPfhpDFgN9l3WaVuyX2dFabERrGS9
	Hm2w+ZiwnSt5fGV+olA5QUn3EqcgnwI7F/z4A5HpQYVV1rFbMGUrylqptro+d5JCF2kNcv
	iWbMtn1rwVDyyXM3q1xNGfag91TQzAA8bQAcpofwEFJ6sMQy33q0gAVyvIJNsw==
Date: Fri, 22 Nov 2024 08:44:55 +0900
From: Dominique Martinet <asmadeus@codewreck.org>
To: Alexander Merritt <alexander@edera.dev>
Cc: v9fs@lists.linux.dev, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Eric Van Hensbergen <ericvh@kernel.org>,
	Latchesar Ionkov <lucho@ionkov.net>,
	Christian Schoenebeck <linux_oss@crudebyte.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alex Zenla <alex@edera.dev>, Ariadne Conill <ariadne@ariadne.space>
Subject: Re: [PATCH] 9p/xen: fix release of IRQ
Message-ID: <Zz_F9wMda68xhvKa@codewreck.org>
References: <20241121225100.5736-1-alexander@edera.dev>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20241121225100.5736-1-alexander@edera.dev>

Alexander Merritt wrote on Thu, Nov 21, 2024 at 10:51:00PM +0000:
> From: Alex Zenla <alex@edera.dev>
> 
> Kernel logs indicate an IRQ was double-freed.

Nit: if you still have the log it'd be great to include it in the commit
message, rather than paragraphing it.

The rationale is that someone with the same problem will likely just
search for the error as is first, and having it in the commit log will
be an easy hit.

(This alone wouldn't need a resend, I can add it if you just reply to
the mail with it; it's also fine if you no longer have the log, that'll
be a remark for the next patch)


> 
> Pass correct device ID during IRQ release.
> 
> Fixes: 71ebd71921e45 ("xen/9pfs: connect to the backend")
> Signed-off-by: Alex Zenla <alex@edera.dev>
> Signed-off-by: Alexander Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>



> ---
>  net/9p/trans_xen.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c
> index dfdbe1ca5338..198d46d79d84 100644
> --- a/net/9p/trans_xen.c
> +++ b/net/9p/trans_xen.c
> @@ -286,7 +286,8 @@ static void xen_9pfs_front_free(struct xen_9pfs_front_priv *priv)
>  		if (!priv->rings[i].intf)
>  			break;
>  		if (priv->rings[i].irq > 0)
> -			unbind_from_irqhandler(priv->rings[i].irq, priv->dev);
> +			unbind_from_irqhandler(priv->rings[i].irq, ring);
> +		priv->rings[i].evtchn = priv->rings[i].irq = 0;

(style) I don't recall seeing much `a = b = 0` in the kernel, and
looking at it checkpatch seems to complain:
CHECK: multiple assignments should be avoided
#114: FILE: net/9p/trans_xen.c:290:
+		priv->rings[i].evtchn = priv->rings[i].irq = 0;

Please run checkpatch on the patches you send (b4 can do it for you if
you want to start using it)


code-wise,
I also don't see where unbinf_from_irqhandler would free the evtchn, so
is it leaking here, or is it implicit from something else?
We only free it explicitly on error binding the irq.



Thanks,
-- 
Dominique Martinet | Asmadeus


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 00:37:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 00:37:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841707.1257202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEHfk-0007Az-5p; Fri, 22 Nov 2024 00:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841707.1257202; Fri, 22 Nov 2024 00: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 1tEHfk-0007As-3C; Fri, 22 Nov 2024 00:37:20 +0000
Received: by outflank-mailman (input) for mailman id 841707;
 Fri, 22 Nov 2024 00:37: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=1Ip/=SR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tEHfj-0007Am-Hy
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 00:37:19 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eaee56b3-a869-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 01:37:15 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 63CED5C5760;
 Fri, 22 Nov 2024 00:36:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 930BEC4CECC;
 Fri, 22 Nov 2024 00:37:11 +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: eaee56b3-a869-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6ImVhZWU1NmIzLWE4NjktMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjM1ODM1LjQ0NDEwMywic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732235832;
	bh=WrbaMMR8M+Xuh2tTtQnAsa5FVX7rmPLphpJOMDqroBs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KXRssVsCB6uh5sC6M67y+6h/62RNKNCUmPa5lv3OuB9gAMQFiQpf4gg54sngbZRsl
	 WmReZBf67o0tTf7UWgrxNOwhk9V2QE3sSgHxdPAm5rabJ5VBZyY6yr0MPPZEw0+wNk
	 TePvj+rp0CcSe6j4lw7ORgHWVwh0rzazLhvYisNfteRBP0522aDgmsHyhG6u2Npmdb
	 Jb2HZNvA5Tct2z3kR+m+NiNw8KJ94smBRSmoJ6psZhhkz1ek7mkxwU62xna+hGWojx
	 yb2EzatEUZd5vbgtxRDJ9zCrtbXJdI/Z74M+vEAC3yRAMG0BEwsm3bzEFFyBIhKipK
	 aqaGoLmpkMokw==
Date: Thu, 21 Nov 2024 16:37:10 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, 
    Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
In-Reply-To: <871pz4kwle.fsf@epam.com>
Message-ID: <alpine.DEB.2.22.394.2411211637060.3516911@ubuntu-linux-20-04-desktop>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com> <alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop> <875xojmexk.fsf@epam.com> <alpine.DEB.2.22.394.2411191409140.1160299@ubuntu-linux-20-04-desktop> <87iksilod0.fsf@epam.com>
 <alpine.DEB.2.22.394.2411201406060.3516911@ubuntu-linux-20-04-desktop> <871pz4kwle.fsf@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, 21 Nov 2024, Volodymyr Babchuk wrote:
> Hi Stefano,
> 
> Stefano Stabellini <sstabellini@kernel.org> writes:
> 
> > On Wed, 20 Nov 2024, Volodymyr Babchuk wrote:
> >> Hi Stefano,
> >> 
> >> (sorry, hit wrong Reply-To option, re-sending for wider audience)
> >> 
> >> Stefano Stabellini <sstabellini@kernel.org> writes:
> >> 
> >> > On Tue, 19 Nov 2024, Volodymyr Babchuk wrote:
> >> >> Hi Stefano,
> >> >>
> >> >> Stefano Stabellini <sstabellini@kernel.org> writes:
> >> >>
> 
> [...]
> 
> >> >>
> >> >> I was considering this as well. Problem is that fuzzing should be
> >> >> running for a prolonged periods of time. There is no clear consensus on
> >> >> "how long", but most widely accepted time period is 24 hours. So looks
> >> >> like it should be something like "nightly build" task. Fuzzer code
> >> >> needs to be extended to support some runtime restriction, because right
> >> >> now it runs indefinitely, until user stops it.
> >> >
> >> > We can let it run for 48 hours continuously every weekend using the
> >> > Gitlab runners
> >> 
> >> Great idea. Anyways, I need to add option to limit runtime to the fuzzer
> >> and invent some method for reporting discovered crashes to the CI first.
> >> 
> >> >
> >> >> I am certainly going to implement this, but this is a separate topic,
> >> >> because it quires changes in the fuzzer app. Speaking on which... Right
> >> >> now both fuzzer and test harness reside in our github repo, as you
> >> >> noticed. I believe it is better to host it on xenbits as an official
> >> >> part of the Xen Project.
> >> >
> >> > Yes we can create repos under gitlab.com/xen-project for this, maybe a
> >> > new subgroup gitlab.com/xen-project/fuzzer
> >> 
> >> Good. Whom should I ask to do this?
> >
> > I created gitlab.com/xen-project/fuzzer as an empty group. What
> > repositories do you need under it?
> 
> Right now it is only the fuzzer itself
> (https://github.com/xen-troops/xen-fuzzer-rs). If we are going to use
> XTF then we don't need additional repo for the the harness.

Please see:
https://gitlab.com/xen-project/fuzzer/xen-fuzzer

Before pushing the master of https://github.com/xen-troops/xen-fuzzer-rs
to https://gitlab.com/xen-project/fuzzer/xen-fuzzer, we need to make
sure that an appropriate Open Source license is clearly specified for
the project either with a top level COPYING file, or with an SPDX tag on
top of each source file, or both. MIT is a good candidate as LibAFL is
dual licensed as MIT.


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 04:04:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 04:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841721.1257212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEKu1-0004Mb-HL; Fri, 22 Nov 2024 04:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841721.1257212; Fri, 22 Nov 2024 04: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 1tEKu1-0004MU-E6; Fri, 22 Nov 2024 04:04:17 +0000
Received: by outflank-mailman (input) for mailman id 841721;
 Fri, 22 Nov 2024 04:04: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=qp79=SR=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tEKtz-0004MO-Pc
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 04:04:16 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20604.outbound.protection.outlook.com
 [2a01:111:f403:2418::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d333c57e-a886-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 05:04:10 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SA1PR12MB6822.namprd12.prod.outlook.com (2603:10b6:806:25d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.23; Fri, 22 Nov
 2024 04:04:06 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8158.024; Fri, 22 Nov 2024
 04:04: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: d333c57e-a886-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjA0IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQzMzNjNTdlLWE4ODYtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjQ4MjUwLjYyNDgwNCwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J91b0C8zbNf3BhGHob60HFDVqZQ+gt1cqZWnprsIZZehdK1UrFQVEP0731hCFzXWgoa2flT0qT5KHgpHKKDpywe+wVqxBMLIU+ws71d/ijmCAnQlp01qTt5I13+wljLyXhwBT2UePmFhTSMWWpXzlSZazXtOk75Bmp/W61pkjpaQzk6sq6ReDGq1zPp/lNQfI55tO8BwYGlshx3/gPvXNFoI7zaxpF1MTdc5LN0kJdTk4rtM68DmOC40+iGU4AuDX+o707Ihly3JddG40aOPYNZvL3sw13ZNXklGjWP63pnpj0N+7C0iRWrZTEjSbp5g+eKmfRe53g3kgBr+56vV+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=mDIcTKJ/go7ZVc4NvHftzsocvz89//26lnWjQuq+xx8=;
 b=XylZoXc0o0S5lgLPfMzhftdujqoL/s3KlGDReif7KDU2Gq8dvZ/dHemo03dmypV3K3nUbbHL4yD6uHeouyaJ8zm1ZIU1Ex764N90HkmcMMsOnXiw76B9rJ/idkpJ+JrpIuzrkJ8mbgrKXu9XZ2yFDGLvt3yoTghVK45sWDIN1+LjP06BhmcboHNLJnaNSsCUpFPuMKS5jMdOBb2VGlf9OpnM27AZnmXaK7suKNCUDH1NzTiMUzi8HtXBfyZWQkl1VhfepUWeKSEINIqEHbDjLjHwru2SI2nKGhdzhiBobDm9KujYG97fU5irG93HUWt1JEu2iIMnJ1/XD4cxDfbBlw==
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=mDIcTKJ/go7ZVc4NvHftzsocvz89//26lnWjQuq+xx8=;
 b=yxYX5n4vm045lzikVSREXF/8zRATxD8wq7mvb9njOVkUfX9DTBr7vAegqtGEYZH/pbfhj7JZX9Shdsa6jrS6jItFok+wUcWNPl7BT69NY4R/kavt03FFdukC5mah41t0UtzqtR3vG8S7O+CmONulVKE2LsCV0XUpjLI2q8RvsTo=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAIABfwWAgAFxTQD//+JeAIABss4A///tiAAANs/tAA==
Date: Fri, 22 Nov 2024 04:04:05 +0000
Message-ID:
 <BL1PR12MB5849786A66C48A85202F40C5E7232@BL1PR12MB5849.namprd12.prod.outlook.com>
References:
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz8Cwj3KJ1BIBEg_@macbook>
In-Reply-To: <Zz8Cwj3KJ1BIBEg_@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8158.023)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|SA1PR12MB6822:EE_
x-ms-office365-filtering-correlation-id: 92e1d46c-43b2-4023-38c4-08dd0aaab508
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?RWtpRmlVazBwcDVNd2dTblU5WnR5VXBNalExcEVHOCtIMGZ5bkF5eERvM0Ji?=
 =?utf-8?B?czk4ZlEyL2lLS1V4Ym5FYTdEaVdZM1lwSC9CSW4vTEZZMzV3cUxvcHZPaXRt?=
 =?utf-8?B?VEVMczNRd0taeGVid3U0MTA4Tk1qT0Q0Zmk1QUhRSUx3d3ZnelJNYldlMmNR?=
 =?utf-8?B?bnE2bVRKM1FubHk0bXJnYXJhQWtsaGFoUlNRbDFLRFUvN3kwVkgyVWNKY2x2?=
 =?utf-8?B?Z0ZKRi9HOUlsd25yNml5TElBS1hVSUI2VnhrM1ZObkR0ZGxHYThrbVNISWFv?=
 =?utf-8?B?eWtjVVBkajNzeU54K05seWpOVkdRSUdtNUZTdkJVS1IvMWpzenhvR2VuVllr?=
 =?utf-8?B?b29sbGVHSXBjR2lNSmRyQ3FqVStaNzRidVVTa1AzRFlYMXRQVU9PTGlkVE1C?=
 =?utf-8?B?K2J0akN4M2xDUWIreFNTNG9UNmU4bVhHRnZrcG83SHdKV1FsdkxyQ0J4dEQ4?=
 =?utf-8?B?NUsxc242V0dlaHlWYWVqMk1rZi9kczV3TURwcThsakhVYy9aK1R0eGlTaVRH?=
 =?utf-8?B?Q204T3BHZy9Xa0s0TXY0VGlJaTQwWUpMQ29nbmZiRyswaEVhUVVOcWx5ZVJy?=
 =?utf-8?B?OVZ6dlR6MzgvQTY1cmFPZG1sRStxNzVKVGVoZEJFMU5HRG9zM1Z4L3c3enJn?=
 =?utf-8?B?bnFrUnRUSmdnckpYbWJybWNhWnRMdFJWQmRuOVVLbnd6aFAzdDhyNTVpSW1x?=
 =?utf-8?B?dkh4WUhlbVhNQTFiQVppSTJXci80ZFFkVFZ3YlVCUHk1eWNoY3BYM3hnMEJV?=
 =?utf-8?B?UmRYSXNRbzVrMmVlNWM2cnpjNm02L2gzK3RkdU5OTi9hUGpMK1ArcURsc3M3?=
 =?utf-8?B?b0pCdjkrcG5CTGFuUGVlL1AxWG5tYjJDckhEdjl2RFFaTXgwNWVlRnE2NVFL?=
 =?utf-8?B?aTVmSTREY0djWnVSb1VYUXBYR0V3REpUbDgwL2FiTjhoei9XRjlUMjlxczRs?=
 =?utf-8?B?bjdoYjNLWGNiNzVDcGR0L2laUjJqcmpWY0ZWZjJBMWlkRDJ3YWRua1FlRVB5?=
 =?utf-8?B?Qlg2cnZJYVNDOWxlOWsyUlBHYUo3bUJRK011REkvbGFKMjdrZGdicG52alRB?=
 =?utf-8?B?STFodHRrczJMYlppdkt3dGJPN3A3VW15ZFM4S1N3UjVVUkRvb1ZEK2l6R1lC?=
 =?utf-8?B?cWJRNVdaWHFLU2xZWktQRHR5RmNDdGRwOVJHUVljT3BtQ3JXSUlVKy9lSXVl?=
 =?utf-8?B?dnNYRXhWb2haUndaNVFFNHhKQy9tWGVSQXRVNEdNRmh6b1ZtNTk3UDhqNDV1?=
 =?utf-8?B?bTVnN1Y5aklxclNNMG1PUHhFWUhaNkdYcFVjdFZWT3hRZE0xYlFyc3NBN1hC?=
 =?utf-8?B?L0VkSkNJd2ZQRHNHcVdGU2xqOUVyd1FLVUxEN3ZHK29aL1N3U2xlS0dDdkJ3?=
 =?utf-8?B?Y2RELzdvYlZoRmhCN29HczJCZjVPUkhJRlc3cUp0V3B1ZVAzZ3JKaU1hdDVj?=
 =?utf-8?B?ZWQ3alJwbDQza0paTE5KaEhPUW9NUXRsY0I2d1BZZTROK29wTWtTdGExMzlU?=
 =?utf-8?B?RVFPNnFKNll0dFhoUHBBd2UxZVhRWm1FOUlVeG9BalpqVmFXTjdiVTBOK0JU?=
 =?utf-8?B?ODZTdUxnV1duY0xrUlYxMFJ6VHNqZCsvYXY4RU9URmNLaklEZ1F3TzB6aXZw?=
 =?utf-8?B?TzlSRkZpbGhvcGl3c3RZQ3JvQlFJWU5FdnNiR2d4bkhnRDJ3Z1psT0x1Yk05?=
 =?utf-8?B?aDd0RmhYOVRpUFdHMUlPVmhGZHNHL2lHQWppZUlJZUR3K21SOUJpcGVnc1Fl?=
 =?utf-8?B?RXJhbmtJUUJka3V3REx4bElWUC8rQVZhRFQvUTBFTktJUGZuZWFCWVM4M2Q4?=
 =?utf-8?Q?VnS7XhwMCt+R7uCqy/z0cQMKhJ9RaWDTFOm5s=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bGFoNXFEdDQ1N2VBSmgyWFpob0ZYdE05Mzk1aE43ejJHQjY1bEYyZUdzQS9O?=
 =?utf-8?B?SE1NTnNFOXVJZGpCZmNhMlczZ0xyWEJ6TmwzczFIQWUyemF5YmNnOVJNWjB6?=
 =?utf-8?B?ZmFONFNlc0JVTzhmaE9kN2VxNzhQcHVXOVRoa3JMamtiRHhDNGJySXhzcE5q?=
 =?utf-8?B?c0VLaG41SHc2N3hNMUhLNEdWVWp4QTBRRnI5ZTYyLytxM0tyTWdkSWhjMC9E?=
 =?utf-8?B?TTZmMmRCWmZwc2lZenQ0QnNDc2lBbDd3bmxreGtxK3VmeExBczN5a2xPaXlw?=
 =?utf-8?B?RjFWODNGQ3dOZGNBN1U1bVRYajRpblY4ZytnQTRKOHhxYzh3THI5UjRsSk5H?=
 =?utf-8?B?NHdMbVlWYkZoanB5SW9iQS9CSHdRVDR6cGdxN2JsUWVlTlVUNW50R3NqTVUz?=
 =?utf-8?B?UGo4QW9JdW5wUnMxS2pteEl0Zm5Gak81a01JZzdDVWFLbHZzbmtHVXBUZHZz?=
 =?utf-8?B?R0dtK1IvaXZROVVIdmVMV3NRTlJWQmhub24wMHNwRUt2NXZGSjlmaWs1MEd4?=
 =?utf-8?B?c2F0TVlXa1lEMUZjU2N4U2dzSzJZSi96WHh3eHhUSU5sQzI3dmxRMFRvdHpz?=
 =?utf-8?B?a09JamhxeDF1cjdUbXJxNitqTXhOc1ZOenU1RHlUU3RuSSs3aGNzVFpPeWh1?=
 =?utf-8?B?NXo1S0N1bmQ0MDNIc0UwZ3N6KzhqZjFtMXJWU2FpRk0wN3JIb0JEYmNTUUt0?=
 =?utf-8?B?dW5BWEthTVhXSFBOL3Y5eE9zSWhvTndiM25YTXd0UkJhRjlwTzVyenNCaTVX?=
 =?utf-8?B?SzNtYmdlVHZtaFZNOEgwSVRBdUp4TEFvV2I5aVFXRGdpcFdKOEJFSTRxcmd3?=
 =?utf-8?B?NktJU0dvWTgrTlN4OGxzTzJYazJWd0VPQjM0Z0dzNFNWRWM3dFZaOWNBQUhk?=
 =?utf-8?B?QXJSSFdnQTBBZDVDYzlMNW1PR25ENklETThNam0yYWx0M0NoNURwNnZ1dGpi?=
 =?utf-8?B?Nm5zN1BTUE9OaXpKZWJmaFJKZ0tLUTV1cHlzRmIxNkNFQk40K1FJbk45bGsx?=
 =?utf-8?B?ZDZwUHJTZVNZV2k5Y1FVaDlXcVd1dGJsMGpRRmYzSCtEUXFMMzNPb09BSWlU?=
 =?utf-8?B?Q05mOEV6am5vMTJ3ZnRCY0wyalcvTnpHa2tnQ1hjbkE4VmFQeDlsZXBZUW9C?=
 =?utf-8?B?SnRtaWhXWXVSL1cvTDFvSU4yWXUvdUROWkdCVys2UHBYRzUxNTRGa0NoWW1o?=
 =?utf-8?B?d3B2MURPcUVWdXE0WEVCZ3hsRjZueFljSU9JdHNmTy9DQk9jUUFZMU5vM0ds?=
 =?utf-8?B?T2ZLdHAyNWxNeDVnQlZQVkgvMXZma1ZJMWFHYlRBenBML3lIcm43eW8xRDFJ?=
 =?utf-8?B?OGF4alVzWVE0dURGYmtiV3ltR3M1dkc4RjRzc0k0UzJJTHJYUDlGK1RiVEhv?=
 =?utf-8?B?cnFieE5KczQvWE50OVNrWENCM044YjQ4V3dweDhIdDlxSGV0MmtkMlBMV3Zt?=
 =?utf-8?B?NTgzZlhJMFRXRTdUejB6UStwU2pWR3pWdUtQd0d4ZVdnUGdDTGNlN1NCKzlR?=
 =?utf-8?B?bzI4MW5aN0s4K1ZBWnI5S1hmZ3pvNGtKK01DQlRoS3JXWjBtOCt5Uzc1RTNp?=
 =?utf-8?B?S2xmT2FROXJhSWNoK0R0OCttcE0rZFllWWxVUUVYM1lvMWw0MGIzZDBPaDBt?=
 =?utf-8?B?a2Jwa3FULzFueEVOaG5PcDRIbDRLU1BTVCtHSHY2MWRSRmlWNTNndE9pMTJV?=
 =?utf-8?B?bW9UQjFxZ2tnMzA4UHRnamtRTmxVQzl2UlAzSFU2ZmtyK3I4TVFweWNRN3N1?=
 =?utf-8?B?cDBkTkcrNkg2VnpOWURETTNua1FwOElVSDIvT25mV1VWT3BpeUtvS2JhV2lR?=
 =?utf-8?B?cWZWdm5VTlVsWThlWVlITEhQS1VzRTNvemNrQ0Z4SjJPdUxxd0VFZ3hjazNO?=
 =?utf-8?B?SlR2UURWMk1MaW5pYWduNGo2WTFaK1JSK3ZRQnVvcmRmbkRGWUEvSXpsZCtm?=
 =?utf-8?B?TDVCQzlyT1BSQlkrMVpIOFV2eHZiRWg0SmZkdDVqaFJOM0xqeWhsUjl4dkNZ?=
 =?utf-8?B?UTJUYUxiWXB5dG5hM2JYVEtMVm9rVW5sN01xNkNqYkp5SDVUa2NzQjI1YzlN?=
 =?utf-8?B?dnpmTGp5amdiSzhsaHUvSWNIV3lNaVVXWnpZcGVhRmJCSi9rSWkzdFJhVEFR?=
 =?utf-8?Q?T5VE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <EEBF930B7478A646ADFCACDAE38FFCFA@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 92e1d46c-43b2-4023-38c4-08dd0aaab508
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2024 04:04:05.4389
 (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: C1SKjewz0brVe3ClCPZ3b/Qd96fOv2/UIoobgMz41Ze8QlJ38aUAMqy3zlRIrahmdFddyvk7knxF5flYqJ7f4Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6822

T24gMjAyNC8xMS8yMSAxNzo1MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gVGh1LCBO
b3YgMjEsIDIwMjQgYXQgMDM6MDU6MTRBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyNC8xMS8yMCAxNzowMSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBXZWQs
IE5vdiAyMCwgMjAyNCBhdCAwMzowMTo1N0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+IFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiBvdXIgbWV0aG9kcyBpcyB0aGUgdGltaW5n
IG9mIHVwZGF0aW5nIHRoZSBzaXplLg0KPj4+PiBZb3VycyBpcyBsYXRlciB0aGFuIG1pbmUgYmVj
YXVzZSB5b3UgdXBkYXRlZCB0aGUgc2l6ZSB3aGVuIHRoZSBkcml2ZXIgcmUtZW5hYmxlZCBtZW1v
cnkgZGVjb2RpbmcsIHdoaWxlIEkgdXBkYXRlZCB0aGUgc2l6ZSBpbiB0aW1lIHdoZW4gZHJpdmVy
IHJlc2l6ZSBpdC4NCj4+Pg0KPj4+IEluZGVlZCwgbXkgbGFzdCBndWVzcyBpcyB0aGUgc3RhbGUg
Y2FjaGVkIHNpemUgaXMgc29tZWhvdyB1c2VkIGluIG15DQo+Pj4gYXBwcm9hY2gsIGFuZCB0aGF0
IGxlYWRzIHRvIHRoZSBmYWlsdXJlcy4gIE9uZSBsYXN0IChwb3NzaWJseSBkdW1teT8pDQo+Pj4g
dGhpbmcgdG8gdHJ5IG1pZ2h0IGJlIHRvIHVzZSB5b3VyIHBhdGNoIHRvIGRldGVjdCB3cml0ZXMg
dG8gdGhlIHJlc2l6ZQ0KPj4+IGNvbnRyb2wgcmVnaXN0ZXIsIGJ1dCB1cGRhdGUgdGhlIEJBUiBz
aXplcyBpbiBtb2RpZnlfYmFycygpLCB3aGlsZQ0KPj4+IGtlZXBpbmcgdGhlIHRyYWNlcyBvZiB3
aGVuIHRoZSBvcGVyYXRpb25zIGhhcHBlbi4NCj4+Pg0KPj4gVGhpcyBjYW4gd29yaywgY29tYmlu
ZSBvdXIgbWV0aG9kLCB1c2UgbXkgcGF0Y2ggdG8gZGV0ZWN0IGFuZCB3cml0ZSB0aGUgc2l6ZSBp
bnRvIGhhcmR3YXJlIHJlZ2lzdGVyLCBhbmQgdXNlIHlvdXIgcGF0Y2ggdG8gdXBkYXRlIGJhcltp
XS5zaXplIGluIG1vZGlmeV9iYXJzKCkuDQo+PiBBdHRhY2hlZCB0aGUgY29tYmluZWQgcGF0Y2gg
YW5kIHRoZSB4bCBkbWVzZy4NCj4gDQo+IFRoaXMgaXMgZXZlbiB3ZWlyZGVyLCBzbyB0aGUgYXR0
YWNoZWQgcGF0Y2ggd29ya3MgZmluZT8gDQpZZXMsIGl0IHdvcmtzIGZpbmUuDQpBbmQgSSB3aWxs
IGRvdWJsZSBjaGVjay4NCg0KPiBUaGUgb25seSBkaWZmZXJlbmNlIHdpdGggbXkgcHJvcG9zYWwg
aXMgdGhhdCB5b3UgdHJhcCB0aGUgQ1RSTCByZWdpc3RlcnMsIGJ1dA0KPiB0aGUgc2l6aW5nIGlz
IHN0aWxsIGRvbmUgaW4gbW9kaWZ5X2JhcnMoKS4NCj4gDQo+IFdoYXQgaGFwcGVucyBpZiAoYmFz
ZWQgb24gdGhlIGF0dGFjaGVkIHBhdGNoKSB5b3UgY2hhbmdlDQo+IHJlYmFyX2N0cmxfd3JpdGUo
KSB0bzoNCj4gDQo+IHN0YXRpYyB2b2lkIGNmX2NoZWNrIHJlYmFyX2N0cmxfd3JpdGUoY29uc3Qg
c3RydWN0IHBjaV9kZXYgKnBkZXYsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50IHJlZywNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCB2YWwsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCAqZGF0YSkNCj4gew0KPiAgICAgcGNpX2NvbmZfd3JpdGUzMihwZGV2LT5zYmRm
LCByZWcsIHZhbCk7DQo+IH0NCldpbGwgdHJ5Lg0KDQo+IA0KPiBBbmQgaWYgeW91IGRvbid0IHRy
YXAgYW55IFBDSV9SRUJBUl9DVFJMIGF0IGFsbD8NCldoYXQgZG8geW91IG1lYW4/IElmIEkgZG9u
J3QgdHJhcCBhbnkgcmViYXJfY3RybCwgaG93IGNhbiBJIGNhbGwgcmViYXJfY3RybF93cml0ZT8N
Cg0KPiANCj4gSSdtIG1vc3RseSBpbnRlcmVzdGVkIGluIGZpZ3VyaW5nIHB1dCB3aGljaCBwYXJ0
IG9mIHRoZSBjb2RlIGluDQo+IHJlYmFyLmMgbWFrZXMgdGhpcyB3b3JrIChhcyBjb21wYXJlZCB0
byBteSBvcmlnaW5hbCBhcHByb2FjaCkuDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQotLSANCkJl
c3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 07:42:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 07:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841730.1257222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEOIP-0003CT-03; Fri, 22 Nov 2024 07:41:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841730.1257222; Fri, 22 Nov 2024 07: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 1tEOIO-0003CM-TD; Fri, 22 Nov 2024 07:41:40 +0000
Received: by outflank-mailman (input) for mailman id 841730;
 Fri, 22 Nov 2024 07:41: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=CazJ=SR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tEOIN-0003CG-EB
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 07:41:39 +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 3342de81-a8a5-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 08:41:35 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so259867766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 23:41:35 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b28fe1bsm66384366b.28.2024.11.21.23.41.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Nov 2024 23:41: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: 3342de81-a8a5-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmEiLCJoZWxvIjoibWFpbC1lajEteDYyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMzNDJkZTgxLWE4YTUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjYxMjk1LjY2MTEyOSwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732261295; x=1732866095; 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=IBHoeELbwDLkucIgeo0FolILCzjYH65AZPyoPhvFLo0=;
        b=XY0L7T/oYPHUO75/OtJiTSRCG4+kX8i1yk6k7+c5sgNoguoMV1BFh6fGQyZbaf8crY
         fmeVUkpMNd6ncSs/qZeyeK7p/uuq0gHKZlIzejX+xILSyandKjwSLBOTxwAsa7fNGSWa
         CPI+r/BILdaKs9fyiaFZppQcu4IizMoI1PYg90WTVgyuz73/Vlwuw7QpVoVYhbDMQwcC
         QNLd4uQIv5PyCXWAj6sRgBfRjKjcUJaBQ4mY4MYdW1xMeVMiqMtgro8j90iSS83cqEZQ
         83x/1pN26tX5bmQmtMfuHYOb11bavARUahUKM6vyWcERiVwDmx7a9CLINKQ+YFgVKTlT
         9ZdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732261295; x=1732866095;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=IBHoeELbwDLkucIgeo0FolILCzjYH65AZPyoPhvFLo0=;
        b=m7MBR7Hh9TDar/6I5pMXb2ZOnctxD4zXwsqlp+2hBFGZea1/WY+UQmjZMOWwUqQWdj
         +dwZoiAy4DEJjZHDo7n/U7ETyG5McBO8rne/Cx7dTs2QTqzMdk9PfuMezvR2AoTOiq7w
         oAUrqkKnOtta9/E//5xloM85mjgABIg86amhoMCkggoN30KbZO6iYX3nS5QsnfE0edEV
         wfeCgTKCQzv/sf2/pXAf66HkCRKdNTbyoVV8g8VEUuxUMIK6foed8F3HOvJAFExKe7my
         wm9jrheMx053CJrRP/Ops0EnG+T9MX/w9Fu/A8WIAGQThJ4uL9291617AYwjwHiLrTPZ
         PCDw==
X-Forwarded-Encrypted: i=1; AJvYcCUCVZml4NNd1WAR54zdHfSEUjvTbP6WVbWzeXrWxBfTTusaQSnTS79woTKJVFzdmAL68H0NlZgh4aQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyefy5gesREOjFGHqcHoHRh3442bcs08hfiTWxhbqA0wfDcclx9
	z6V4W4EoeS6fWiCnFR92VwAwGuZBkNP4G/izRVbfHFfbi7XLpGrI0ENXdxnNTbw=
X-Gm-Gg: ASbGncs24m902ufdCpBpIliV8/g2vDTvlmOKEb0fX9UpXgrIV8KGYCF6cmoY3KaAydv
	zRiS/i/mqOkhpv/27TcbdTrMRczkk9nEcd9evnHsF2A8FfV7PzSjfIBVyczlFRWgG9M2dIByFx7
	wl4GzWnXmrVrB34TemaiCOY6ih2/jZWmMOqRkcAV4lf94GqpdGvffJt9W5wmXBNgy9+hgQ4m4Po
	iGx3wQG+Yn61zU03GoQ1XCjfOXbKqJBvrouwcwFkngio4bB88Ldp99Q21gEn7IZIYrT04BVm3Jt
	wE8htrR2QHu8VQDraUOnah8Op07SWXWalE2GlNoZszIAOwTNlWHRcPIztjyOLzlI88ufuz3H1Jk
	=
X-Google-Smtp-Source: AGHT+IF52r/fIQbL1oofxnzTPJf9FWebVRq//EG7R9cwJOhSaBapeMtbsLC2alc3Bk+yr83btzoIrg==
X-Received: by 2002:a17:906:9d2:b0:aa4:fc7c:ea78 with SMTP id a640c23a62f3a-aa50997efb1mr140885766b.23.1732261295072;
        Thu, 21 Nov 2024 23:41:35 -0800 (PST)
Message-ID: <f65fe715-2ef7-4171-8bae-b78438656dcf@suse.com>
Date: Fri, 22 Nov 2024 08:41:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: fix release of IRQ
To: Alexander Merritt <alexander@edera.dev>, v9fs@lists.linux.dev,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Cc: Eric Van Hensbergen <ericvh@kernel.org>,
 Latchesar Ionkov <lucho@ionkov.net>,
 Dominique Martinet <asmadeus@codewreck.org>,
 Christian Schoenebeck <linux_oss@crudebyte.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>,
 Ariadne Conill <ariadne@ariadne.space>
References: <20241121225100.5736-1-alexander@edera.dev>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
In-Reply-To: <20241121225100.5736-1-alexander@edera.dev>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 21.11.24 23:51, Alexander Merritt wrote:
> From: Alex Zenla <alex@edera.dev>
> 
> Kernel logs indicate an IRQ was double-freed.
> 
> Pass correct device ID during IRQ release.
> 
> Fixes: 71ebd71921e45 ("xen/9pfs: connect to the backend")
> Signed-off-by: Alex Zenla <alex@edera.dev>
> Signed-off-by: Alexander Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 07:54:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 07:54:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841738.1257233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEOVA-0004t8-3U; Fri, 22 Nov 2024 07:54:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841738.1257233; Fri, 22 Nov 2024 07:54: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 1tEOVA-0004t1-0y; Fri, 22 Nov 2024 07:54:52 +0000
Received: by outflank-mailman (input) for mailman id 841738;
 Fri, 22 Nov 2024 07:54: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=PYSV=SR=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tEOV8-0004sv-Vi
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 07:54:51 +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 0ac3837c-a8a7-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 08:54:46 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cec9609303so2057851a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 23:54:46 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b57c1e6sm65579366b.157.2024.11.21.23.54.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 23:54: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: 0ac3837c-a8a7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBhYzM4MzdjLWE4YTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjYyMDg2LjczOTI4OCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732262086; x=1732866886; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=0wllQQcW9IV92W3o3FO1lZKoZou2H3eOmasZCp2hnNA=;
        b=rVH//zglI7gYuzQMfDwBVdlkaAbYzX62YZRaEvl1mm+pxU1M+6l3kEuqyQdWNOiVqY
         QnLbY+mX3AYebkDdSDCNjJCOxyNpqnxevanDtJ9uq9zCyp0OnFcmJobmlmfQo+SUWWRJ
         0+ZKTKdTwPdeMQdVEPVXEBRSZUvyhX3XXRO/w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732262086; x=1732866886;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0wllQQcW9IV92W3o3FO1lZKoZou2H3eOmasZCp2hnNA=;
        b=SBU7zJULnSoALIiv+M5S0s+KtcYAQUPGTRN7+4KLBNcxpyyMV/J2J9DxAi+xRFYMtf
         wNabgMPkBnZqPhWvrL8gKvVuUJeJW6r9e7rkz2Mug2WKn1M3lsxo/KFKksmt9iRIpUc2
         AqGmjPETbpbh2T3oupd0PKUwmUa1NtKHD31eRc5QvVH8JJS74t3+Hko/mWgfRgo5g3VH
         wISbdsGps8B9rglYFuClDlR9XCNK8eQM5dH3tsRcsS9jDeL9XiN04ItAVu0C+qcauQW+
         pjh/GBBpynvrklpxfekRg2ux7dWPLyHhikmLBVfDsLkfK9GUVF+uOuug7YWT9gZISFVY
         CulA==
X-Gm-Message-State: AOJu0Yybtw7sSXBwUGkc4hk2qjZdZOymNMPvurZ/hij8EgPkceLqpKBI
	pIxwBnUhhKyXYloFfQYqR+TOipyviGkpZuvmyGt70xTE/U5tBe9xeAvCZ7q38c4=
X-Gm-Gg: ASbGncu4a9cBrr3t3G5hBXlGaRQvxt5unl6YBnsRVPSY2WX/ln18rWEPRPd/uYqsqSC
	3y3Ub4u41w21bvKzUaQo2lsxanCVoPW85ePJpr49KHVKHgvJit4Z6C5UePtxSVDFHr+ZbpoZE1t
	TcNeTUbDiigd5HHrVBTaQ6i7ywI1TXDHD0QZf2nWeuZUQEM90/lMHl59LtMxwffOvspAGeTb2R6
	q0a+ECwiGKs9YooqjVi4vOXDcklez5WEM/JiuGA1U1zRx4VMLRUGLz5tgk=
X-Google-Smtp-Source: AGHT+IEoc8oAuVw+ExICcF2A+w2ZLxPd8xYd7sxHBmFqyUQzSIxgqWtlFaOvj7b8AIcmB18VvVjeXA==
X-Received: by 2002:a17:907:2718:b0:a9e:b86f:c478 with SMTP id a640c23a62f3a-aa509a0388bmr162467366b.36.1732262086077;
        Thu, 21 Nov 2024 23:54:46 -0800 (PST)
Date: Fri, 22 Nov 2024 08:54:44 +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>,
	Jan Beulich <JBeulich@suse.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: Re: [PATCH] xen/bitops: Fix break with in a for_each_set_bit() loop
Message-ID: <Z0A4xER41zciSbiW@macbook>
References: <20241121145000.3107723-1-andrew.cooper3@citrix.com>
 <Zz9gkhQgsOtJUA0I@macbook>
 <bb6736b2-ec3e-4e72-bd6c-fabeccc3654b@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bb6736b2-ec3e-4e72-bd6c-fabeccc3654b@citrix.com>

On Thu, Nov 21, 2024 at 05:35:16PM +0000, Andrew Cooper wrote:
> On 21/11/2024 4:32 pm, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 21, 2024 at 02:50:00PM +0000, Andrew Cooper wrote:
> >> diff --git a/xen/common/bitops.c b/xen/common/bitops.c
> >> index 91ae961440af..0edd62d25c28 100644
> >> --- a/xen/common/bitops.c
> >> +++ b/xen/common/bitops.c
> >> @@ -110,6 +110,22 @@ static void __init test_for_each_set_bit(void)
> >>  
> >>      if ( ull != ull_res )
> >>          panic("for_each_set_bit(uint64) expected %#"PRIx64", got %#"PRIx64"\n", ull, ull_res);
> >> +
> >> +    /* Check that we break from the middle of the loop */
> >> +    ui = HIDE(0x80001008U);
> >> +    ui_res = 0;
> >> +    for_each_set_bit ( i, ui )
> >> +    {
> >> +        static __initdata unsigned int count;
> > Preferably as you suggested without the static variable, I may suggest
> > that you use ui_tmp instead of plain tmp as the variable name?
> 
> For this, I'd prefer not to.
> 
> For ui, ul and ull, there are a pair of variables with precise usage.
> 
> This is one random number that gets as far as 2.Â  And it's test code.

My suggestion was on the basis that we might need to add more 'tmp'
variables of different types in the future maybe?  No strong opinion
anyway, I'm fine if you prefer to leave as plain 'tmp'.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 07:58:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 07:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841746.1257243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEOYn-0005T7-I7; Fri, 22 Nov 2024 07:58:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841746.1257243; Fri, 22 Nov 2024 07:58: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 1tEOYn-0005T0-Fd; Fri, 22 Nov 2024 07:58:37 +0000
Received: by outflank-mailman (input) for mailman id 841746;
 Fri, 22 Nov 2024 07:58: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=PYSV=SR=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tEOYm-0005Su-OU
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 07:58:36 +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 9236b862-a8a7-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 08:58:33 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-aa20c733e92so226295266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Nov 2024 23:58:33 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b52fd20sm66029666b.111.2024.11.21.23.58.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Nov 2024 23:58: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: 9236b862-a8a7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkyMzZiODYyLWE4YTctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjYyMzEzLjk0MTcxLCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732262313; x=1732867113; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=xljAT8OSq2IJPduuPZt1Xo4ThQPmaTdw1vaue2jdPzw=;
        b=FgFelfEdkf7ln9MIgveoxRucJv1fl8GGALczKsU0zbYZQZZ/5Px9M93EgtmX3TuF0W
         xnXYCAoI8I/cZ9hqCjEABOB2hjqfb7BBoahP1AoIffBCS9ZzlxaMUirnUZP0GwdTzJD/
         bGdsMZAfyTEclIvvDXuH2psIeMsTdBgHZYua8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732262313; x=1732867113;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=xljAT8OSq2IJPduuPZt1Xo4ThQPmaTdw1vaue2jdPzw=;
        b=OH49hn61iXpCATn4C2vvytK3JobI17b7aiA/9UsEylX+dsXPiH8G7SIGxdf3Er8qv0
         4lZFt8VOKGEBzE+cJQJaa6EbeGTgPqmLWwiYTj0XHJLKgRw3EN83cs/1+N/l2yMFhLOR
         +XDSBQniJB9nZhM4JzAcD+k0Bis8pGgJhVFPmsipBohCmNxNAygcA2rhWZVyo8yUx6Me
         ARm7FlfPospDZR9gb+QbV2l5L0R+atzzRb97ArzVt4o6uRqRV+iCaq08lxvlkzeGnaqX
         JQH0NLF64uI03jE7y6Ibwy8RMxMdYcD3RgezjYwcmmKRCvOankbTe8iAIw8dqoJBOmoK
         31qA==
X-Gm-Message-State: AOJu0YzpacAKoGLrUBIAh/Z/vaRrQeXcVt5yl6T52q1kDyLiHN897psm
	3P47YAyFUtaKUoRDaVpQVep0t/g5mmchTrYEzsAEa7tKv1MW16tjpRy8idLoFZ0=
X-Gm-Gg: ASbGncvtRmoYBBQSQolEBnlLWE9UjTfy6unlZFT214P7nkT5QAlBAyJB5kpmaL9cNNE
	rRx56KhYwdxwocpCqCobWNg1+h4QhLTd/ylmaeUAscD/rWMDW3zIAhH1gKMvCebPdf0TKh7sisK
	EAhJJAKGvT+VKky9LL2HDxZntD0qMd+Lr21W8mNXkFkgvYLfi6RbJjIkvciPmSVwtMF1FkoBW/R
	a22x8T5nptRK0xve3m4Wx/3nHaDVa6dmZWnLy45IBQ0wezwp0oXCbLfems=
X-Google-Smtp-Source: AGHT+IFwfmv2teB7NhwKeZl2XyE+GpnJRho31qpcmbuhUPJpKPJ7w64IL4sBXbjP8lprAWLWS47cvQ==
X-Received: by 2002:a17:907:2cf0:b0:a99:da6c:f607 with SMTP id a640c23a62f3a-aa509d2138bmr149829566b.44.1732262313355;
        Thu, 21 Nov 2024 23:58:33 -0800 (PST)
Date: Fri, 22 Nov 2024 08:58:32 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <Z0A5qHd2AqrsuRFr@macbook>
References: <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz8Cwj3KJ1BIBEg_@macbook>
 <BL1PR12MB5849786A66C48A85202F40C5E7232@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB5849786A66C48A85202F40C5E7232@BL1PR12MB5849.namprd12.prod.outlook.com>

On Fri, Nov 22, 2024 at 04:04:05AM +0000, Chen, Jiqian wrote:
> On 2024/11/21 17:52, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 21, 2024 at 03:05:14AM +0000, Chen, Jiqian wrote:
> >> On 2024/11/20 17:01, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 20, 2024 at 03:01:57AM +0000, Chen, Jiqian wrote:
> >>>> The only difference between our methods is the timing of updating the size.
> >>>> Yours is later than mine because you updated the size when the driver re-enabled memory decoding, while I updated the size in time when driver resize it.
> >>>
> >>> Indeed, my last guess is the stale cached size is somehow used in my
> >>> approach, and that leads to the failures.  One last (possibly dummy?)
> >>> thing to try might be to use your patch to detect writes to the resize
> >>> control register, but update the BAR sizes in modify_bars(), while
> >>> keeping the traces of when the operations happen.
> >>>
> >> This can work, combine our method, use my patch to detect and write the size into hardware register, and use your patch to update bar[i].size in modify_bars().
> >> Attached the combined patch and the xl dmesg.
> > 
> > This is even weirder, so the attached patch works fine? 
> Yes, it works fine.
> And I will double check.
> 
> > The only difference with my proposal is that you trap the CTRL registers, but
> > the sizing is still done in modify_bars().
> > 
> > What happens if (based on the attached patch) you change
> > rebar_ctrl_write() to:
> > 
> > static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
> >                                       unsigned int reg,
> >                                       uint32_t val,
> >                                       void *data)
> > {
> >     pci_conf_write32(pdev->sbdf, reg, val);
> > }
> Will try.
> 
> > 
> > And if you don't trap any PCI_REBAR_CTRL at all?
> What do you mean? If I don't trap any rebar_ctrl, how can I call rebar_ctrl_write?

Well, that's part of the question, is just trapping PCI_REBAR_CTRL
enough to make this work?

At the moment it's unclear to me what makes your approach work and not
mine.  And I would like to understand why your code works, otherwise
I fear I'm not understanding how the capability works, and hence our
support for it might not be reliable.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 08:01:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 08:01:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841760.1257253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEObu-0007mc-8B; Fri, 22 Nov 2024 08:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841760.1257253; Fri, 22 Nov 2024 08: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 1tEObu-0007mU-5W; Fri, 22 Nov 2024 08:01:50 +0000
Received: by outflank-mailman (input) for mailman id 841760;
 Fri, 22 Nov 2024 08:01: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=PYSV=SR=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tEObs-0007mE-TJ
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 08:01:48 +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 042b5971-a8a8-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 09:01:45 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cecbddb574so2436709a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 00:01:45 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b2f5fdesm66436966b.72.2024.11.22.00.01.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 00:01: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: 042b5971-a8a8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA0MmI1OTcxLWE4YTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjYyNTA1LjE3NzkwMSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732262504; x=1732867304; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Q2SNqoc8LwplQFWOejGczCAemWc52Gqe/r3udNnShXk=;
        b=mf8whRDW+Si1jI4IbdYdhIgto5oFZiQ0lQCjUD9SofRIyvYYlFM+MuwuPjvVoqErNx
         46y9FZPaYUWFtH/H2Z8JTOjAmI+yp4Gk0zRv80yMhjiHIJDs5jmdO70q1kscTycNuPTM
         6efdMrvYc2zJstcGY1Kx34WFaHnEs+7GTe8fg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732262504; x=1732867304;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Q2SNqoc8LwplQFWOejGczCAemWc52Gqe/r3udNnShXk=;
        b=Kezojc/mnN2FUYSoj9YzdBSaROn2jQc/1ROc+V72x6M+V5a8yR47t1i9OVOylgjqaT
         nZQrpvPDc4czbDCUbAlgp3vCvAuAeMma8MvAfm2psbjwn5VLoiqQ41iFQnpHKsJoE1Xn
         q55PtDcwnWyDAWJi4jXH8Ml6mfvriuBMNRC55b3FypUCaMjiZKBI0uBoiTYLkUElkX5C
         CEV+9yln6YYLG0i6Nk0Rtjygt3TgSqy21YlQPAhG4sLSJnq0zuD8vkjgmwff1YnA9lcV
         eGuhClNBNwOz6fyK0MPt5HicCopj+xQSVryekCS8MxP0tKTXCAWd4iC9cydkllDOYIfb
         vOfQ==
X-Forwarded-Encrypted: i=1; AJvYcCUeJEm9LxLbkDORQwFEpt78ElCdR3zRCvF2pwrghEuko9eobxpUCcp6aMx+Q5Ml3Me5ov+FQGYZj8o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywix31gn6G0jcIszBMMvxiLYljhAedgikR++aiRF4mSmGIUxR60
	nIh+7UOWxcMywZ63QSjkD/31Dm2Lb0NwYjzWZ3fF2JjNAUEPCqON8yX1PODZsKQ=
X-Gm-Gg: ASbGncurbICEg7xk71TMoFdUnQ25/owWTgznlzHUKDYBBDgGVpevEyHsrHhANf24sC3
	YT+uM6uKFRgBxv54LbVJQKWwPesDHVZ+N62S5Q/hJsqNB0InD8D3WcK1kKOD+6+Tb1hiotxsX3v
	fQopzKN2JWNkKItGdFMICuhwrvlaJolK5xE//2uff9VEM3tGJd+fYyV1gSzU3ONogWgSo/GfRh+
	rLd/SyDb9JtINexARQ/ok6SyUTId6sQecfCNh9IvCoUr4eYGo/xJqhOak4=
X-Google-Smtp-Source: AGHT+IH5wK+l444JZTJAKi1BGJoAcgSCoWa+YFRASkeDj13FtZS0QzkgrjPGZCkA2wGXaw00UnHCtw==
X-Received: by 2002:a05:6402:5109:b0:5cf:e291:6279 with SMTP id 4fb4d7f45d1cf-5d0205a80dbmr1227430a12.1.1732262504391;
        Fri, 22 Nov 2024 00:01:44 -0800 (PST)
Date: Fri, 22 Nov 2024 09:01:43 +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 1/2] x86/irq: fix calculation of max PV dom0 pIRQs
Message-ID: <Z0A6Zz06bg3l0wju@macbook>
References: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-2-roger.pau@citrix.com>
 <b849f46d-501a-4083-aecd-fdf0c4319eda@suse.com>
 <Zz8Tugu22NPzAQUo@macbook>
 <f0c0cdca-e6a8-47c9-934a-85a91609e9e7@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f0c0cdca-e6a8-47c9-934a-85a91609e9e7@suse.com>

On Thu, Nov 21, 2024 at 12:39:06PM +0100, Jan Beulich wrote:
> On 21.11.2024 12:04, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 21, 2024 at 11:49:44AM +0100, Jan Beulich wrote:
> >> On 20.11.2024 12:35, Roger Pau Monne wrote:
> >>> The current calculation of PV dom0 pIRQs uses:
> >>>
> >>> n = min(fls(num_present_cpus()), dom0_max_vcpus());
> >>>
> >>> The usage of fls() is wrong, as num_present_cpus() already returns the number
> >>> of present CPUs, not the bitmap mask of CPUs.
> >>
> >> Hmm. Perhaps that use of fls() should have been accompanied by a comment, but
> >> I think it might have been put there intentionally, to avoid linear growth.
> >> Which isn't to say that I mind the adjustment, especially now that we don't
> >> use any clustered modes anymore for I/O interrupts. I'm merely questioning
> >> the Fixes: tag, and with that whether / how far to backport.
> > 
> > Hm, sorry I've assumed the fls() was a typo.  It seems wrong to cap
> > dom0 vCPUs with the fls of the present CPUs number.  For consistency,
> > if the intention was to use fls to limit growth, I would have expected
> > to also be applied to the dom0 number of vCPUs.
> 
> FTR: My vague recollection (it has been nearly 10 years) is that I first had
> it there, too. Until I realized that it hardly ever would have any effect,
> because of the min(). And for Dom0-s with extremely few vCPU-s it seemed
> reasonable to not apply that cap there.

I don't have a strong opinion regarding the fixes tag, but would like
to get this sorted as soon as possible.  If you prefer just drop the
fixes tag.  I think this wants backporting to all supported releases,
because it's an issue XenServer has hit on real servers when dom0 is
sized to use 16 vCPUs at most.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 08:21:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 08:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841771.1257263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEOuX-0002Ma-Oj; Fri, 22 Nov 2024 08:21:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841771.1257263; Fri, 22 Nov 2024 08:21: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 1tEOuX-0002MT-La; Fri, 22 Nov 2024 08:21:05 +0000
Received: by outflank-mailman (input) for mailman id 841771;
 Fri, 22 Nov 2024 08:21: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=JvYz=SR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tEOuV-0002Lc-SG
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 08:21:03 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4647b12-a8aa-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 09:20:59 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-53dd57589c8so273655e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 00:20:59 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd2480ec1sm278883e87.166.2024.11.22.00.20.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 00:20: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: b4647b12-a8aa-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzEiLCJoZWxvIjoibWFpbC1sZjEteDEzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI0NjQ3YjEyLWE4YWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjYzNjU5Ljc0Mjg1MSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732263659; x=1732868459; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=dlm0jt+dN8a/gRZ8O0P+wi8OQsPuuJfFFMYmHv7xq/s=;
        b=BuHHPlG/ul0YeK61ZjW1DL4nDh+/pSeKnJjyiWgs9kDJ5Fy8HCyY7sEQl3yy/A97ZD
         43RrINfpGL7NTeT7EHFUL7sInpIRUh/tAx6x5x8twzpm/ry2zSHh53YODUbAJPmysN6S
         4Uk10F6Pq8zLc/3Ubo6+Y1EvS+G7ltoLCAzSJIHjItM074p01oNbUoWeohAptZdYABOl
         iATfrirQFTetuedCy3DlqSRkP4nYcYrrzuQ8EETqgpgF7InVOn56+SVKPfCWrR0Yxztx
         IqURitjpa63/kmLdkQXxNEE02tZfPOrE2FBQzylNfB8v0vzfsP5pfu1BKAefxYcf9km8
         TihA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732263659; x=1732868459;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dlm0jt+dN8a/gRZ8O0P+wi8OQsPuuJfFFMYmHv7xq/s=;
        b=Zm15LuXQWJ2fSh1CzRk5oMfwrB2ikPI6kRuMGfUrXI9DgZdzOsOnmjXjY3r+dmkGvL
         sOxLCfS/WS604nC+Vu1ipVc5yrfV4w6H/4H4DiCyQH7KaLK4UFFkHetAexAJlSa+OP6c
         teTjt5C8MXXkYZAxQpU/UJNOTNQAV+YS0wUmHcx1gKUkvWYO6LNl3sfN0NJhE/ByWZbS
         nmt96Y5ns2aaYUgB9JGUcif9THXzs++rQWHMl1bZeELwEqQqEH8B8ct5c4OFqIa6bA6v
         vzlJ1z7iZcVgJdenLO4lxrXXJwL7QFD0axs6z/9wZp5AnXpMesdIZacUXgxRfzesx20l
         oeWg==
X-Forwarded-Encrypted: i=1; AJvYcCW3bnQt+KTK5WwcoXVz7a8NbQVYsF6gpuNm5dExnmIk4YfJz8YEgdLkcDFFbaO14hLfYdX7BgTSDNw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+mgLklkcJXNKpKEkoscEGcSv4/HWappuADJnNAmvuZEf+19/B
	kKes93Np5Qqz0AcJaBzqDCvgy6niBZRYY8gJs2M31t6BHHmBN5gN
X-Gm-Gg: ASbGncvhL9SLrWcOLMs/o/TnB0T5vRdhcBeDyRDbW9nwSboquwzgH8IdrkJe1sXjnW1
	Eru9b1l7hXLJ9MCoIhusWKWP9zRlhdAxO+XS9hvs8GyU7fKJIeVwJpOc1Xo/y2tSN0s0SWWQIWS
	QvB5w60UQWeyMqR1yGGao6taf1Rv40x6uQeyWl3pnvo+jIMUrw42ucCHNsH3vXW7zpH4X+PhZAw
	g0Gg5i8o2Px77eKlifI86i5ZLSl//lZ9zLOUAWzrvgUasu4FeTCcBcXRxGgJuE=
X-Google-Smtp-Source: AGHT+IHJiZgdo0h1T7wRdD/ObYglhLWT6JsHfUm1GFmgUMbvphZT08+hdiGA11TkD7PkzXC1ATXQMw==
X-Received: by 2002:a05:6512:234f:b0:53d:d09c:27cc with SMTP id 2adb3069b0e04-53dd29c43abmr671230e87.1.1732263658778;
        Fri, 22 Nov 2024 00:20:58 -0800 (PST)
Message-ID: <4b7780e0ad9ca5fac5be2382c060c06ef3697274.camel@gmail.com>
Subject: Re: [PATCH v4] xen/common: Move gic_dt_preinit() to common code
From: oleksii.kurochko@gmail.com
To: Michal Orzel <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>
Date: Fri, 22 Nov 2024 09:20:57 +0100
In-Reply-To: <74f837dc-eaeb-495f-89ca-296eb56ad36b@amd.com>
References: 
	<54d0ff689e167b3f3137afea45307f762ce0a974.1732027385.git.oleksii.kurochko@gmail.com>
	 <74f837dc-eaeb-495f-89ca-296eb56ad36b@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Thu, 2024-11-21 at 11:27 +0100, Michal Orzel wrote:
>=20
>=20
> On 19/11/2024 15:56, Oleksii Kurochko wrote:
> >=20
> >=20
> > Introduce intc_dt_preinit() in the common codebase, as it is not
> > architecture-specific and can be reused by both PPC and RISC-V.
> > This function identifies the node with the interrupt-controller
> > property
> > in the device tree and calls device_init() to handle architecture-
> > specific
> > initialization of the interrupt controller.
> >=20
> > Make minor adjustments compared to the original ARM implementation
> > of
> > gic_dt_preinit():
> > =C2=A0- Remove the local rc variable in gic_dt_preinit() since it is
> > only used once.
> > =C2=A0- Change the prefix from gic to intc to clarify that the function
> > is not
> > =C2=A0=C2=A0 specific to ARM=E2=80=99s GIC, making it suitable for othe=
r
> > architectures as well.
> >=20
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in v4:
> > =C2=A0- Add SPDX tag in intc.c
> > =C2=A0- s/num_gics/num_intc
> > =C2=A0- Update the comment: s/GIC/interrupt controller.
> > ---
> > Changes in v3:
> > =C2=A0- s/ic/intc.
> > =C2=A0- Update the commit message.
> > =C2=A0- Move intc_dt_preinit() to common/device-tree/intc.c.
> > =C2=A0- Add declaration of intc_dt_preinit() in xen/device_tree.h.
> > =C2=A0- Revert intc_preinit()-related changes and just back
> > gic_preinit() in
> > =C2=A0=C2=A0 Arm's gic.c.
> > =C2=A0- Revert ACPI-related changes.
> > ---
> > Changes in v2:
> > =C2=A0- Revert changes connected to moving of gic_acpi_preinit() to
> > common code as
> > =C2=A0=C2=A0 it isn't really architecture indepent part.
> > =C2=A0- Update the commit message.
> > =C2=A0- Move stub of ic_acpi_preinit() to <asm-generic/device.h> for th=
e
> > case when
> > =C2=A0=C2=A0 CONFIG_ACPI=3Dn.
> > ---
> > =C2=A0xen/arch/arm/gic.c=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 | 32 +----------------------------
> > -
> > =C2=A0xen/common/device-tree/Makefile |=C2=A0 1 +
> > =C2=A0xen/common/device-tree/intc.c=C2=A0=C2=A0 | 35
> > +++++++++++++++++++++++++++++++++
> > =C2=A0xen/include/xen/device_tree.h=C2=A0=C2=A0 |=C2=A0 6 ++++++
> > =C2=A04 files changed, 43 insertions(+), 31 deletions(-)
> > =C2=A0create mode 100644 xen/common/device-tree/intc.c
> >=20
> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> > index 3eaf670fd7..acf61a4de3 100644
> > --- a/xen/arch/arm/gic.c
> > +++ b/xen/arch/arm/gic.c
> > @@ -214,36 +214,6 @@ int gic_map_hwdom_extra_mappings(struct domain
> > *d)
> > =C2=A0=C2=A0=C2=A0=C2=A0 return 0;
> > =C2=A0}
> >=20
> > -static void __init gic_dt_preinit(void)
> > -{
> > -=C2=A0=C2=A0=C2=A0 int rc;
> > -=C2=A0=C2=A0=C2=A0 struct dt_device_node *node;
> > -=C2=A0=C2=A0=C2=A0 uint8_t num_gics =3D 0;
> > -
> > -=C2=A0=C2=A0=C2=A0 dt_for_each_device_node( dt_host, node )
> > -=C2=A0=C2=A0=C2=A0 {
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !dt_get_property(node,=
 "interrupt-controller", NULL)
> > )
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 con=
tinue;
> > -
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !dt_get_parent(node) )
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 con=
tinue;
> > -
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rc =3D device_init(node, DE=
VICE_INTERRUPT_CONTROLLER, NULL);
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !rc )
> > -=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 /* =
NOTE: Only one GIC is supported */
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 num=
_gics =3D 1;
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bre=
ak;
> > -=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 if ( !num_gics )
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("Unable to find compa=
tible GIC in the device
> > tree\n");
> > -
> > -=C2=A0=C2=A0=C2=A0 /* Set the GIC as the primary interrupt controller =
*/
> > -=C2=A0=C2=A0=C2=A0 dt_interrupt_controller =3D node;
> > -=C2=A0=C2=A0=C2=A0 dt_device_set_used_by(node, DOMID_XEN);
> > -}
> > -
> > =C2=A0#ifdef CONFIG_ACPI
> > =C2=A0static void __init gic_acpi_preinit(void)
> > =C2=A0{
> > @@ -269,7 +239,7 @@ static void __init gic_acpi_preinit(void) { }
> > =C2=A0void __init gic_preinit(void)
> > =C2=A0{
> > =C2=A0=C2=A0=C2=A0=C2=A0 if ( acpi_disabled )
> > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gic_dt_preinit();
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 intc_dt_preinit();
> > =C2=A0=C2=A0=C2=A0=C2=A0 else
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gic_acpi_preinit();
> > =C2=A0}
> > diff --git a/xen/common/device-tree/Makefile b/xen/common/device-
> > tree/Makefile
> > index 58052d074e..7c549be38a 100644
> > --- a/xen/common/device-tree/Makefile
> > +++ b/xen/common/device-tree/Makefile
> > @@ -2,3 +2,4 @@ obj-y +=3D bootfdt.init.o
> > =C2=A0obj-y +=3D bootinfo.init.o
> > =C2=A0obj-y +=3D device-tree.o
> > =C2=A0obj-$(CONFIG_OVERLAY_DTB) +=3D dt-overlay.o
> > +obj-y +=3D intc.o
> > diff --git a/xen/common/device-tree/intc.c b/xen/common/device-
> > tree/intc.c
> > new file mode 100644
> > index 0000000000..d2bcbc2d5e
> > --- /dev/null
> > +++ b/xen/common/device-tree/intc.c
> > @@ -0,0 +1,35 @@
> > +/* SPDX-License-Identifier: GPL-2.0-or-later */
> > +
> > +#include <xen/device_tree.h>
> > +#include <xen/init.h>
> > +#include <xen/lib.h>
> > +
> > +void __init intc_dt_preinit(void)
> > +{
> > +=C2=A0=C2=A0=C2=A0 struct dt_device_node *node;
> > +=C2=A0=C2=A0=C2=A0 uint8_t num_intc =3D 0;
> > +
> > +=C2=A0=C2=A0=C2=A0 dt_for_each_device_node( dt_host, node )
> > +=C2=A0=C2=A0=C2=A0 {
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !dt_get_property(node,=
 "interrupt-controller", NULL)
> > )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 con=
tinue;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !dt_get_parent(node) )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 con=
tinue;
> > +
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !device_init(node, DEV=
ICE_INTERRUPT_CONTROLLER, NULL)
> > )
> > +=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 /* =
NOTE: Only one interrupt controller is supported */
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 num=
_intc =3D 1;
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bre=
ak;
> > +=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 if ( !num_intc )
> > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 panic("Unable to find compa=
tible interrupt contoller"
> > +=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 "in the device tree\n");
> Don't split printk messages. Also the split is incorrect as it'll
> result in "contollerin" (i.e. no space in between).
> Also s/contoller/controller/
> =C2=A0
> > +
> > +=C2=A0=C2=A0=C2=A0 /* Set the interrupt controller as the primary inte=
rrupt
> > controller */
> > +=C2=A0=C2=A0=C2=A0 dt_interrupt_controller =3D node;
> > +=C2=A0=C2=A0=C2=A0 dt_device_set_used_by(node, DOMID_XEN);
> > +}
> Missing EMACS block at the end of file.
>=20
> > diff --git a/xen/include/xen/device_tree.h
> > b/xen/include/xen/device_tree.h
> > index e6287305a7..33d70b9594 100644
> > --- a/xen/include/xen/device_tree.h
> > +++ b/xen/include/xen/device_tree.h
> > @@ -238,6 +238,12 @@ extern rwlock_t dt_host_lock;
> > =C2=A0struct dt_device_node *
> > =C2=A0dt_find_interrupt_controller(const struct dt_device_match
> > *matches);
> >=20
> > +#ifdef CONFIG_HAS_DEVICE_TREE
> > +void intc_dt_preinit(void);
> > +#else
> > +static inline void intc_dt_preinit(void) { }
> > +#endif
> Is it really needed to provide the stub and guards? Other DT related
> functions in this header are not
> protected and AFAICT the inclusion of this header only works if
> CONFIG_HAS_DEVICE_TREE=3Dy.
I think you are right and we can really drop stub and guards. I'll send
a new patch version applying this and the comments above.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 09:28:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 09:28:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841783.1257272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEPx8-0001re-GX; Fri, 22 Nov 2024 09:27:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841783.1257272; Fri, 22 Nov 2024 09:27: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 1tEPx8-0001rX-Da; Fri, 22 Nov 2024 09:27:50 +0000
Received: by outflank-mailman (input) for mailman id 841783;
 Fri, 22 Nov 2024 09:27: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=6WyI=SR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tEPx7-0001rP-Hr
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 09:27:49 +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 07e825ac-a8b4-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 10:27:45 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4319399a411so17169925e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 01:27: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-433b45d4dd6sm88812465e9.24.2024.11.22.01.27.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Nov 2024 01:27: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: 07e825ac-a8b4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA3ZTgyNWFjLWE4YjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjY3NjY1LjQxOTQzNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732267665; x=1732872465; 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=3wTxd7G4B571njimj8AnWFbc8X0fFqJDoNtkHyMl0XU=;
        b=DsQmvgKFuR9+MNeEW6gZbZP3M8EqyayIt++1q0C1JqNyxBIieFMYIuK9pZ/0oVWPkw
         VpwYoGU8Il3JbK+/eo7ZAcRqEOUmFXtx/e7SO/qa3tKHMZP1OQ0XyXX23vrii94CVPxD
         nUlpdRsXtbl+p8kvlN7CVHTS3TB0w89iiRakf87xd5h5tmZE83u6Del7EmHVAwGnj02H
         DxISCNWSlsxmYEeCfB4cCocustPB3f1p4Z0hvJTc/h7tiopuAWO8EnPhRD9Obm892y4g
         tviJMMN1WxxlhApViPWnkGvN7xKwX4Tlkm0ZPWih3JUosfzW/0SQbCzSee6tTj9w3RLI
         j9vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732267665; x=1732872465;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3wTxd7G4B571njimj8AnWFbc8X0fFqJDoNtkHyMl0XU=;
        b=XnGdKWGbI7yycau0VZ2flL4jEI71vN2fm7Xu0O0o8kz7xZ9o+HH/6MMsymTa+eHoJn
         wtxRdEaoYYI8VsG/TtJImJugZUdD2QF88eHzGnC2NXGUEDbhmtRfIgBQybEzgaMSVy3p
         C8f3y3GxlfDUopP8IUxKN6zdWJNCibK96kuILdfbcEGYphHDNLR0Ke6vZAIfZgd5uQ5V
         tUPjOWJa4W5F4UDPktYTXwOIS/84rIriQS9OtsNPun+MscOnt7ugsVY4tJGpPCjZzxm+
         bCR16Zza/eX2hKXjw5DVUyVJyXUqy1h+bPl8O5G6ARWDpldaQAXAWnjtOrnwcy3FdqBy
         eB4A==
X-Forwarded-Encrypted: i=1; AJvYcCU/Vcu5lCOz7rJH6ex0+sDBuoKSaVpcHZ1QieRh/REz2+HPkWEK2CMmcvf+Om4KEuBiKusPP4j4l7U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcqYgOXI2UklMocmXLcv39/HrrDhjrSky95pFwtLYGUgirVKa0
	z6mpwuyQ6V+gmVeh7BNlwFqTcAfyjRm3Le+TdoPMRvgxmqEgMf2dwG3q79BrPQ==
X-Gm-Gg: ASbGncthO2jKjiijWlR8LVPQoCuwialyNp4aSU1JskdzOBJPte5VgL4qmBKloT00esH
	CAE8j0NXM0EWRA6i5E+q06CxQr7A7dApL+zxIIYGTGgRiJ0DVowY1/QG9Z25Rq7FrijZhLqg8r7
	aE+1ABAuOI1Cv6F2wAYyQOdv350a0tzB43ZoqDu7AuBbcslo/WwY2kXbIV9xJsW8bpstRPesNI8
	nhd6/88K6vqOZfHxlDEMqaQUHzi2czV4/a8gZhoTL7qkLwGuf57zvnogjnKy6I2CgqSwpwaGK1r
	Kigfu1cgNsTPwhDxj0giDhatt2zbAbPZ/T0=
X-Google-Smtp-Source: AGHT+IFVZPM+4i89oByI1nwfHU7rOkKw99q2oYaI6JlT2ELLldopzTYxsgHtkYvwK/70lCbJHipjbA==
X-Received: by 2002:a05:600c:4f4e:b0:431:12a8:7f1a with SMTP id 5b1f17b1804b1-433ce426837mr19715075e9.16.1732267664733;
        Fri, 22 Nov 2024 01:27:44 -0800 (PST)
Message-ID: <f6439d68-0f10-4e7a-9135-73f7036aeeae@suse.com>
Date: Fri, 22 Nov 2024 10:27:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/irq: fix calculation of max PV dom0 pIRQs
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: <20241120113555.38146-1-roger.pau@citrix.com>
 <20241120113555.38146-2-roger.pau@citrix.com>
 <b849f46d-501a-4083-aecd-fdf0c4319eda@suse.com> <Zz8Tugu22NPzAQUo@macbook>
 <f0c0cdca-e6a8-47c9-934a-85a91609e9e7@suse.com> <Z0A6Zz06bg3l0wju@macbook>
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: <Z0A6Zz06bg3l0wju@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.11.2024 09:01, Roger Pau MonnÃ© wrote:
> On Thu, Nov 21, 2024 at 12:39:06PM +0100, Jan Beulich wrote:
>> On 21.11.2024 12:04, Roger Pau MonnÃ© wrote:
>>> On Thu, Nov 21, 2024 at 11:49:44AM +0100, Jan Beulich wrote:
>>>> On 20.11.2024 12:35, Roger Pau Monne wrote:
>>>>> The current calculation of PV dom0 pIRQs uses:
>>>>>
>>>>> n = min(fls(num_present_cpus()), dom0_max_vcpus());
>>>>>
>>>>> The usage of fls() is wrong, as num_present_cpus() already returns the number
>>>>> of present CPUs, not the bitmap mask of CPUs.
>>>>
>>>> Hmm. Perhaps that use of fls() should have been accompanied by a comment, but
>>>> I think it might have been put there intentionally, to avoid linear growth.
>>>> Which isn't to say that I mind the adjustment, especially now that we don't
>>>> use any clustered modes anymore for I/O interrupts. I'm merely questioning
>>>> the Fixes: tag, and with that whether / how far to backport.
>>>
>>> Hm, sorry I've assumed the fls() was a typo.  It seems wrong to cap
>>> dom0 vCPUs with the fls of the present CPUs number.  For consistency,
>>> if the intention was to use fls to limit growth, I would have expected
>>> to also be applied to the dom0 number of vCPUs.
>>
>> FTR: My vague recollection (it has been nearly 10 years) is that I first had
>> it there, too. Until I realized that it hardly ever would have any effect,
>> because of the min(). And for Dom0-s with extremely few vCPU-s it seemed
>> reasonable to not apply that cap there.
> 
> I don't have a strong opinion regarding the fixes tag, but would like
> to get this sorted as soon as possible.  If you prefer just drop the
> fixes tag.  I think this wants backporting to all supported releases,
> because it's an issue XenServer has hit on real servers when dom0 is
> sized to use 16 vCPUs at most.

In which case yes, I guess we want to keep the Fixes:.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 09:34:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 09:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841796.1257315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEQ3V-00042r-Ch; Fri, 22 Nov 2024 09:34:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841796.1257315; Fri, 22 Nov 2024 09: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 1tEQ3V-00041W-5j; Fri, 22 Nov 2024 09:34:25 +0000
Received: by outflank-mailman (input) for mailman id 841796;
 Fri, 22 Nov 2024 09: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=o6Qa=SR=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tEQ3T-0003h5-Ts
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 09:34:23 +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 f33284cc-a8b4-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 10:34:20 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43168d9c6c9so16785675e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 01:34:20 -0800 (PST)
Received: from localhost.localdomain ([87.115.149.99])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde16abasm21427775e9.19.2024.11.22.01.34.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 01:34: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: f33284cc-a8b4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYzMzI4NGNjLWE4YjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjY4MDYwLjE0NjMyNCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732268059; x=1732872859; 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=S9P+7ZFehIpPa+fzpjshgI13fOA+PXjg5ryC8YmcWr4=;
        b=Il5WZ2+8NYx/DNyb9RgrRxOSmxSRVqphu9Y8+GBARLKiqEJ4IIskLZkDGLP026/foB
         V8eySMFYsa1RwK0gQX1y+PUsNyS/fCrD61k8DNTRbCxh5VTV4+nVKulD96X5x6RdW6jJ
         T5oCbNxYMha0y3dm1TfMCO7ccxLbdGEj9b2U8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732268059; x=1732872859;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=S9P+7ZFehIpPa+fzpjshgI13fOA+PXjg5ryC8YmcWr4=;
        b=pehJEpyecBnboSc6cUOPhzi4Y57l6RtsG+wfdVsxKVmYSh9A90t4JMCy53viBu7iJW
         8dD5DQf1wVN64rEZ6vUGmYGxg/IHuESEYSOtEWZH+DcHyLc3B9z9Zkuhnaz0ZUTEueAK
         Wl+cCvnrlw4ypo2HH6RxGWxh1ZMN/OOlOBnsWmBTmmxAng/sS0ag4Lg7lbI0kYhnun6r
         rAiFXfTltANnz/EgQ2i3FM3WnGaHq3gW9Uyk0OiPv7Ns+farmkJK205Y/mwv8tbuiNE1
         4tnQsQ8EQBuLtL1Zz6n4bhaxXhUhJ6kbI07SSVeLTK6ZCW7dnbHVGsfSwmR4QJ8T8U/V
         yJ2Q==
X-Gm-Message-State: AOJu0Yyj+E7V5/teMxBMlv3pwwsY+PwwPyV/qZfXD2zS6DtzRj3d4Ruw
	mw6WvpvFZRgspf+whgpMcXFkOsi/kWM2q10eMLdjnpjiyc4qMsIA/mE6EfpLbYO3fEm3El2G5PI
	t6DE=
X-Gm-Gg: ASbGnctM+rZGzqY/pJIgJtX5/2/bz67zUrLdeV12y85Ee4rrA1Cu4RNARsJNbhpJMhy
	5gyNXqatps9LIHIXF9fOfySfxnbNlBhuuc12RHBCxQ3c56jaoHCeDxMKE7f+q0VLY0anYghAWDH
	VFllJEMQiVx8QKc6Ngj+nlS7bkDn1gDUlxHBONDzsjuIHWFiETMG3bwGeOxn+n++WZPvpoRyPLu
	EYG3MuXj9bX/yY4AQ2EC5PGykRvizas99NR0NaujTau8Ov30vGKyJG7pt4EYS1Xl1DjbQ==
X-Google-Smtp-Source: AGHT+IHquO76tm3Afjb8UWXeMVBPqDiBL7+TVDSGOJO4rtyIk5MtI0LS7cuGChe6gYm0cm3DnxCoqw==
X-Received: by 2002:a05:600c:3b94:b0:433:6cf9:5e65 with SMTP id 5b1f17b1804b1-433ce4af3bfmr15568005e9.29.1732268059305;
        Fri, 22 Nov 2024 01:34:19 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2 3/4] x86/boot: Move some settings to C
Date: Fri, 22 Nov 2024 09:33:57 +0000
Message-Id: <20241122093358.478774-4-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241122093358.478774-1-frediano.ziglio@cloud.com>
References: <20241122093358.478774-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Initialise multiboot_ptr and pvh_start_info_pa from C code.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S           |  3 +++
 xen/arch/x86/boot/head.S                  | 10 --------
 xen/arch/x86/boot/reloc.c                 | 28 ++++++++++++++++++-----
 xen/arch/x86/include/asm/guest/pvh-boot.h |  1 +
 4 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index 1e59732edd..1726c17c88 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -51,6 +51,9 @@ SECTIONS
         DECLARE_IMPORT(__trampoline_seg_stop);
         DECLARE_IMPORT(trampoline_phys);
         DECLARE_IMPORT(boot_vid_info);
+        DECLARE_IMPORT(multiboot_ptr);
+        DECLARE_IMPORT(pvh_boot);
+        DECLARE_IMPORT(pvh_start_info_pa);
         . = . + GAP;
         *(.text)
         *(.text.*)
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 1b3bd16fe5..510b3cfe6c 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -517,16 +517,6 @@ trampoline_setup:
         /*      reloc(magic/eax, info/edx) using fastcall. */
         call    reloc
 
-#ifdef CONFIG_PVH_GUEST
-        cmpb    $0, sym_esi(pvh_boot)
-        je      1f
-        mov     %eax, sym_esi(pvh_start_info_pa)
-        jmp     2f
-#endif
-1:
-        mov     %eax, sym_esi(multiboot_ptr)
-2:
-
         /* Interrogate CPU extended features via CPUID. */
         mov     $1, %eax
         cpuid
diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index 7a375ad41c..8f757813ee 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -17,13 +17,15 @@
 #include <xen/types.h>
 
 #include <xen/kconfig.h>
-#include <xen/multiboot.h>
 #include <xen/multiboot2.h>
 #include <xen/page-size.h>
+#include <xen/bug.h>
 
 #include <asm/trampoline.h>
+#include <asm/setup.h>
 
 #include <public/arch-x86/hvm/start_info.h>
+#include <asm/guest/pvh-boot.h>
 
 #ifdef CONFIG_VIDEO
 # include "video.h"
@@ -347,27 +349,41 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, memctx *ctx)
 }
 
 /* SAF-1-safe */
-void *reloc(uint32_t magic, uint32_t in)
+void reloc(uint32_t magic, uint32_t in)
 {
     memctx ctx = { trampoline_phys + TRAMPOLINE_HEAP_END };
 
+    void *res;
+
     switch ( magic )
     {
     case MULTIBOOT_BOOTLOADER_MAGIC:
-        return mbi_reloc(in, &ctx);
+        res = mbi_reloc(in, &ctx);
+        break;
 
     case MULTIBOOT2_BOOTLOADER_MAGIC:
-        return mbi2_reloc(in, &ctx);
+        res = mbi2_reloc(in, &ctx);
+        break;
 
     case XEN_HVM_START_MAGIC_VALUE:
         if ( IS_ENABLED(CONFIG_PVH_GUEST) )
-            return pvh_info_reloc(in, &ctx);
+        {
+            res = pvh_info_reloc(in, &ctx);
+            break;
+        }
         /* Fallthrough */
 
     default:
         /* Nothing we can do */
-        return NULL;
+        res = NULL;
     }
+
+#ifdef CONFIG_PVH_GUEST
+    if ( pvh_boot )
+        pvh_start_info_pa = (unsigned long)res;
+#endif
+
+    multiboot_ptr = (unsigned long)res;
 }
 
 /*
diff --git a/xen/arch/x86/include/asm/guest/pvh-boot.h b/xen/arch/x86/include/asm/guest/pvh-boot.h
index 247ba6899e..b5ad2b11a4 100644
--- a/xen/arch/x86/include/asm/guest/pvh-boot.h
+++ b/xen/arch/x86/include/asm/guest/pvh-boot.h
@@ -13,6 +13,7 @@
 #ifdef CONFIG_PVH_GUEST
 
 extern bool pvh_boot;
+extern uint32_t pvh_start_info_pa;
 
 void pvh_init(multiboot_info_t **mbi, module_t **mod);
 void pvh_print_info(void);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 09:34:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 09:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841793.1257293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEQ3T-0003fL-Ej; Fri, 22 Nov 2024 09:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841793.1257293; Fri, 22 Nov 2024 09:34: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 1tEQ3T-0003fB-Al; Fri, 22 Nov 2024 09:34:23 +0000
Received: by outflank-mailman (input) for mailman id 841793;
 Fri, 22 Nov 2024 09:34: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=o6Qa=SR=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tEQ3S-0003Ql-8q
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 09:34:22 +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 f2476440-a8b4-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 10:34:18 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-382423e1f7aso1238562f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 01:34:18 -0800 (PST)
Received: from localhost.localdomain ([87.115.149.99])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde16abasm21427775e9.19.2024.11.22.01.34.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 01:34: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: f2476440-a8b4-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MjkiLCJoZWxvIjoibWFpbC13cjEteDQyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYyNDc2NDQwLWE4YjQtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjY4MDU4LjYwNDM5NSwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732268057; x=1732872857; 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=y0Aj5W+j63+NuGcn0ZB3t9CEq3oH9AJf5/KiiQiC1a0=;
        b=DltuG8wiFM11m+gahYtY7Dw01gyRWqw99t3Wbn3+JpQSMuf7D5p5E04UP7Lmq+C7iw
         rKsXZw+5/yegJ/nynOgejcDNI/gCAeRQ9+hoiJ2LFehgIPw41csRv9/E50pB3r5P5JTr
         +g9+sCrsYdDjFnU0AG5LM6b7OrYqyJAvlV2rw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732268057; x=1732872857;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=y0Aj5W+j63+NuGcn0ZB3t9CEq3oH9AJf5/KiiQiC1a0=;
        b=K658k3WzL8xo2M7Psx+PEYc4yNmDh0zcFA4AQk8d18mZim4IFRWaQFy+hbTxzHbjtP
         8HIyCcON5qcM3uE3KwPlp79OLTO8SiE6q/7DUGhM6QfOgPSEDyL6sFY+ov84fx7D1//E
         sX/t3sJYyyv75XG6b+FfsTYcHjlEaZiffuWjVeEvXaZNksK8DR3MuqOa+FIU14F28xw/
         K5TRgPl7beUDiOpvsytYUfKdxFzneHVtgwyrcahHyTQPAtYLjXPePt3AAIRURVzQhfAK
         KPMOnvT3K5NDDUgjdk4GrJrcvKX/4FO0bMVrvab10OEFPxKM0Yk6v2SQO5eu7kcUmodD
         84hw==
X-Gm-Message-State: AOJu0YzCfoA5NhOdowC+On3Aqhz8PfksH2ozl1Q3HyTm+sN0OrOPWUKw
	yamx6QVC6T/c4ILceIXC6JGUoq4Lm5D4Xnnf09ERYv4MWivuJoP5VXecd/DXrox7yA9/3bNs/WV
	8F5I=
X-Gm-Gg: ASbGncsRR0vQBkNNKqZOKvQOT9WUkzERoIHO8tUfzAEWuK7NomQUMxYRoybJQapzBsz
	zC62gpxl46AJaz7DOeI99Nr75yQbbPgsh+WVcR/vrgsaFIbM5uUgZNv0RCF2/cHEb8+Iys5pgBt
	8I933IBkBZfBqjC5szTc3VBYdtVw+ueTPk578N1TSK/jhjRjrLz4lA4LKqltCQda5tzBfxw1w3R
	iOogXNKevoflcMFd432YHa3U45nPlpkmmYmEOxuoSl2/RtXpmPMjDtGEKa/Eyr+C1Spwg==
X-Google-Smtp-Source: AGHT+IEoKDi872bJ7XgCPBqMWAU668/ao8l/n2sRLkR94Hw3rysbJY3JLdtZx/GavkwDxgBVA/W7lA==
X-Received: by 2002:a05:6000:389:b0:382:37b2:87ee with SMTP id ffacd0b85a97d-38260b581b7mr1949072f8f.21.1732268057653;
        Fri, 22 Nov 2024 01:34:17 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2 1/4] Use an include/boot directory to override headers for boot code
Date: Fri, 22 Nov 2024 09:33:55 +0000
Message-Id: <20241122093358.478774-2-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241122093358.478774-1-frediano.ziglio@cloud.com>
References: <20241122093358.478774-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Not all headers can be used by 32 bit boot code.
Allows to override some headers, we don't want to mess up with
main headers as most of the code is only 64 bit so the easy stuff should
be done for 64 bit declarations.
Boot headers should be 64 bit compatibles to avoid having multiple
declarations.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index d457876659..13d4583173 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -18,7 +18,7 @@ CFLAGS_x86_32 := $(subst -m64,-m32 -march=i686,$(XEN_TREEWIDE_CFLAGS))
 $(call cc-options-add,CFLAGS_x86_32,CC,$(EMBEDDED_EXTRA_CFLAGS))
 CFLAGS_x86_32 += -Werror -fno-builtin -g0 -msoft-float -mregparm=3
 CFLAGS_x86_32 += -nostdinc -include $(filter %/include/xen/config.h,$(XEN_CFLAGS))
-CFLAGS_x86_32 += $(filter -I% -O%,$(XEN_CFLAGS)) -D__XEN__
+CFLAGS_x86_32 += -I$(srctree)/arch/x86/include/boot $(filter -I% -O%,$(XEN_CFLAGS)) -D__XEN__
 
 # override for 32bit binaries
 $(obj32): CFLAGS_stack_boundary :=
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 09:34:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 09:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841792.1257283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEQ3S-0003Qy-4j; Fri, 22 Nov 2024 09:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841792.1257283; Fri, 22 Nov 2024 09:34: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 1tEQ3S-0003Qr-1j; Fri, 22 Nov 2024 09:34:22 +0000
Received: by outflank-mailman (input) for mailman id 841792;
 Fri, 22 Nov 2024 09:34: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=o6Qa=SR=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tEQ3Q-0003Ql-Jx
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 09:34:20 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1c8e8bf-a8b4-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 10:34:17 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-53da209492cso2458122e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 01:34:17 -0800 (PST)
Received: from localhost.localdomain ([87.115.149.99])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde16abasm21427775e9.19.2024.11.22.01.34.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 01:34: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: f1c8e8bf-a8b4-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYxYzhlOGJmLWE4YjQtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjY4MDU3LjY0NjYwNywic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732268057; x=1732872857; 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=cdhs4jcbDFlFFzmNHEzzHfFqOMcAoZVWgm6V10iGPu4=;
        b=QMTRpoHFYgRrpOMWC3oZO60pDCAJS22h5rGO7gYU5xY1ZujQO4wXO5qkK1RKiUSsg7
         fWh+Nxq7AvLlzTNYaECzSLvhsX/qoNtWnp0nj/TBHduV9dWpjMtzR24ahf4Nhv/B8Lva
         vnlrwPorsvkUG9AY+IyHG3E1Q0lN3jMU9CLNo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732268057; x=1732872857;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=cdhs4jcbDFlFFzmNHEzzHfFqOMcAoZVWgm6V10iGPu4=;
        b=XigVV+a5dgjtjaBgmc4wBBokuVGDXJ5fwDqQVZ49tAqpFRabhVlXCu8JRU/6q+JIHC
         5wVnUTB6sb2vumInwDg1ieYyYzPThSPoesnWEdGtFrWMvZ46fW+8f7QqdA00RymhzKMw
         SHn29JgxwdWdpfUYmYSFaqHqutJbi2SYMB5klSUjABgLBk14Om8l2SQO4NvmpQEA+XXm
         glnk8X2uWzQMXMcav/VQIo9uvbM6iNMG95akl47mxVrU27WnRHRZW3VDadAacA00zqSs
         LXjv83Napeqx8d1GXJi2UaZdkP9DW/lP0FDh1a48GdqEsAKTSEohs4rzaL8qc0r6vntk
         7p5A==
X-Gm-Message-State: AOJu0YyPvYrqgHz4TMjwhBA9iHmOECfneLWkZhSQeORY3lLeXNbD1Xxv
	d5oLOuiiPDMYRymnH9vLvsq8qTQtiTFQEbcfkKCW2n9YrlNd9xTh/uZA6yDbenNz487z7kDw1NS
	k3SM=
X-Gm-Gg: ASbGncv1wqQblWQ6xxa27IL0bxGN15pUI8cQK4AnbGkDp/s0Nwaq8t/9jZIDAM/lm1G
	fpGJqRkps4U1e8LZF6tDi/U0pOdLmVr4KNxZlBPoQm8UDEWyFyZ8ohYpXP8OQI5H/rZMIVLgUfs
	lWchQLpejnNIqh8RlVamZZDqNo1HSFZb3C4+lwJd3yziWJvHSpwOYU/6yEwP6KA2JfH3WIccSPJ
	BuUgfrSCEUqGS8YGhV2Baz6ksA/xMvujU8M0R228iUlXLrLWZGXRnyrpKcZ3tKWvVp9dg==
X-Google-Smtp-Source: AGHT+IEV8aYIw9TpSIaQ5E1RHmGBfEw1kHFU5jxaLvXe6o5R5KYuVzDDQx+VVnWOhcQqblWwoFIc6w==
X-Received: by 2002:a05:6512:1089:b0:53d:d8c8:8324 with SMTP id 2adb3069b0e04-53dd8c88400mr281401e87.53.1732268056866;
        Fri, 22 Nov 2024 01:34:16 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2 0/4] Move some boot code from assembly to C
Date: Fri, 22 Nov 2024 09:33:54 +0000
Message-Id: <20241122093358.478774-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As a continuation of this series start sorting out the issue of headers
not compatible with 32 bit.
Instead of having to change headers which are almost only used for 64 bit
allows to override headers or move reusable definitions to new shared
headers.
This results in less changes.

Changes since v1:
- rebased (with conflicts).

Frediano Ziglio (4):
  Use an include/boot directory to override headers for boot code
  x86/boot: Use header to allows inclusion of public xen.h header
  x86/boot: Move some settings to C
  x86/boot: Use external symbols from cmdline_parse_early

 xen/arch/x86/boot/Makefile                |  2 +-
 xen/arch/x86/boot/build32.lds.S           |  4 ++++
 xen/arch/x86/boot/cmdline.c               | 14 ++++++++++--
 xen/arch/x86/boot/head.S                  | 19 +--------------
 xen/arch/x86/boot/reloc.c                 | 28 ++++++++++++++++++-----
 xen/arch/x86/boot/trampoline.S            |  2 +-
 xen/arch/x86/include/asm/guest/pvh-boot.h |  1 +
 xen/arch/x86/include/asm/setup.h          |  2 ++
 xen/arch/x86/include/boot/public/xen.h    | 28 +++++++++++++++++++++++
 xen/arch/x86/include/boot/xen/cpumask.h   |  1 +
 xen/arch/x86/include/boot/xen/string.h    | 10 ++++++++
 11 files changed, 83 insertions(+), 28 deletions(-)
 create mode 100644 xen/arch/x86/include/boot/public/xen.h
 create mode 100644 xen/arch/x86/include/boot/xen/cpumask.h
 create mode 100644 xen/arch/x86/include/boot/xen/string.h

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 09:34:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 09:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841794.1257303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEQ3U-0003ua-Lo; Fri, 22 Nov 2024 09:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841794.1257303; Fri, 22 Nov 2024 09:34: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 1tEQ3U-0003uP-IM; Fri, 22 Nov 2024 09:34:24 +0000
Received: by outflank-mailman (input) for mailman id 841794;
 Fri, 22 Nov 2024 09:34: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=o6Qa=SR=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tEQ3T-0003Ql-7W
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 09:34:23 +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 f2a44511-a8b4-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 10:34:19 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43167ff0f91so16514805e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 01:34:19 -0800 (PST)
Received: from localhost.localdomain ([87.115.149.99])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde16abasm21427775e9.19.2024.11.22.01.34.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 01:34: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: f2a44511-a8b4-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYyYTQ0NTExLWE4YjQtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjY4MDU5LjIyMzU0OCwic2VuZGVyIjoiZnJlZGlhbm8uemlnbGlvQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732268058; x=1732872858; 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=2manZp1AIdPBh7iI0RBUSq4id6SrxSe85LAkzhSm0W8=;
        b=XOI1klEeYh4Ya34UH/Ooh2fkq+ZFq682EaW1u4SC9LeyFv6hHtjtIapeAdMMaHrLmH
         UJYUCFbmzdumvMFjULcEOa2oqHqQdxCrHxLOyR18SzpSqZeQnfN8YfM6MEV+IwDjTY0q
         B9Xoig8R97go2H9lcZihh2admbXX6JK5OInPg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732268058; x=1732872858;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2manZp1AIdPBh7iI0RBUSq4id6SrxSe85LAkzhSm0W8=;
        b=GSmIRxw5rbFxPAqMyByMVHaODaJMNeRWnwZJ49iteUfQWSTfEICDJi2NtsPDvM2QPz
         yrHK104kj5jveqnhJ/pTkbLH/Gqndyd7QQMbeDBwYa6pc8BMW0Xz3Zdk5T+JrA+m2dRg
         awlU4Aqx6pyu7A3D0chTGTZF1vMiAW/iQUBCl0qPdgWD+XBdySWzd6wQealX+QyXOuIF
         1vp9fgJhILm/15W5beXfYYg7nD879Ufs3Lm51NumN/uyPlyE7n5iQBKVLHtVLg6T0mAV
         gsA/YZNDQo1rPjKbvSZYfa8i3HaQ+uHw/iazU9FynitLzmDdMJhKblXsha4gjZyCs29M
         coZw==
X-Gm-Message-State: AOJu0YykPvZJEeGSGUnyxG5bjMRpJH1RgZ8NzrosuxPRN8LsSCIUK8VJ
	j3zg7eJOdRcx1T7jmp/jAEpHPKKJ6iLqIUbrgBxa/mmz9Jg6eIyhHxU5lw8rtIag3GBirdT+Is7
	L8Ic=
X-Gm-Gg: ASbGncuFkW9G9U7uBYU/2jfniDdrr7cbnIuhJ6CizjH+nsljnMhRESjUqebsmJKBDJI
	6+wD88b70uKV09cwxHowATRvtKr+S3vcysA5/kiup169noYcURPf3EbTNJsAEw1nk9ivenT1KsW
	BCrfFB1jEpkIQ7sxwWmFbF70TadfbavS4FJ4G97bAPPj7Ivcb5KjVIlm33Gg4Wk1NfJ6ifm5ZTi
	G9h9WNYYlCcIt5SGw7e0IVQP8uyU/lL68MqwESmkHTcJyQnGHclBIDymco/zacxc6DpvQ==
X-Google-Smtp-Source: AGHT+IFodxhFSGMz2wPZzJH0OfLJPHqvn9QSN/CUVAgp9yNsRWl2t3/+UqXtcApCXoDULXHfzVqjrg==
X-Received: by 2002:a05:600c:4507:b0:42c:b5f1:44ff with SMTP id 5b1f17b1804b1-433ce48f8c5mr16629935e9.24.1732268058468;
        Fri, 22 Nov 2024 01:34:18 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2 2/4] x86/boot: Use header to allows inclusion of public xen.h header
Date: Fri, 22 Nov 2024 09:33:56 +0000
Message-Id: <20241122093358.478774-3-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241122093358.478774-1-frediano.ziglio@cloud.com>
References: <20241122093358.478774-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This allows to include other headers and avoid duplicated declarations.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/include/boot/public/xen.h | 28 ++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 xen/arch/x86/include/boot/public/xen.h

diff --git a/xen/arch/x86/include/boot/public/xen.h b/xen/arch/x86/include/boot/public/xen.h
new file mode 100644
index 0000000000..399b86b5e5
--- /dev/null
+++ b/xen/arch/x86/include/boot/public/xen.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+/* This header allows the inclusion of public xen.h */
+
+#ifndef BOOT__PUBLIC__XEN_H
+#define BOOT__PUBLIC__XEN_H
+
+#if !defined(__XEN__) || defined(__XEN_TOOLS__) || __XEN__ != 1
+#error Unexpected defines
+#endif
+
+#include <xen/types.h>
+
+#ifdef __i386__
+
+# define __XEN_TOOLS__ 1
+# undef __XEN__
+# include <public/arch-x86/xen.h>
+# define __XEN__ 1
+# undef __XEN_TOOLS__
+
+#else
+
+# include <public/arch-x86/xen.h>
+
+#endif
+
+#endif /* BOOT__PUBLIC__XEN_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 09:34:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 09:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841795.1257307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEQ3U-0003xI-VI; Fri, 22 Nov 2024 09:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841795.1257307; Fri, 22 Nov 2024 09:34: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 1tEQ3U-0003wD-QK; Fri, 22 Nov 2024 09:34:24 +0000
Received: by outflank-mailman (input) for mailman id 841795;
 Fri, 22 Nov 2024 09:34: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=o6Qa=SR=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1tEQ3T-0003Ql-G6
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 09:34:23 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3c6f407-a8b4-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 10:34:21 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2fb561f273eso21419161fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 01:34:20 -0800 (PST)
Received: from localhost.localdomain ([87.115.149.99])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde16abasm21427775e9.19.2024.11.22.01.34.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 01:34: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: f3c6f407-a8b4-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzQiLCJoZWxvIjoibWFpbC1sajEteDIzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYzYzZmNDA3LWE4YjQtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjY4MDYxLjAwMDg4LCJzZW5kZXIiOiJmcmVkaWFuby56aWdsaW9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732268060; x=1732872860; 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=clkfofX0J3fQFkdU29C0Xri5NVrLAF8Z8Fjb/kEwIZk=;
        b=Dma3tjPv0YP5AJqWv9hKS05qHGVQX8qvHcb5++A2jGyjwzMAp3idfL+5RhbC509tWz
         WdG9azBSQ16n9T11xzeAIXN+TDuNAtCa8WU0gcov1XubghOCzaGLFoq/BYhYpoCTd+H9
         zxyEzus2TauhpDZOswWjHO7USGxhdznGTMfH8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732268060; x=1732872860;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=clkfofX0J3fQFkdU29C0Xri5NVrLAF8Z8Fjb/kEwIZk=;
        b=BpLBfBKlZbYOhl7gEJy9LbVvqhp3nuYG+nQkHoci5G2+uVEbxf3d8SxwNoc3IK2AFX
         UZKMMdQmSnICGGUqYclhA/q0kqY6wUOenW/3JzH/2/i6OqfUQwzep91j5dryj0tawWva
         5vB2Xj8bYDV9rGpD2TlfrvWRSaAcrAQitqf+KrvFy6c557vViRzRsCVUN7UduMNFDU6O
         7L3yOFdDe/mPhIAAFtfGzEZFhehchWXKRYibLw1L3kT0Kkkkb1wqJgsuNk7Nz2QZXv1W
         zOGykndht6eurVTML4VHefvsWxivLs6Bzj/g5ASsWY32m6hT1xvgTyZB/maGF5SDcolq
         K4fg==
X-Gm-Message-State: AOJu0YxEQEkOvYFS7SoMEL3TCYVm0d07Dy+kL92+mdPqgD6jZ4ixRCrJ
	soJqHLgnP94AwYd/5jc58pSB65haCfmHY25z19t/hMoVyC+gvzu3bec8AhKoWTCyBzDUawjVEFo
	Hft4=
X-Gm-Gg: ASbGncvrOhmOApumJcQXz5OxRsZ3ZQMlRN9Y275rpOWRdp+U7dTi3UPi6GhpyrP3uWZ
	fZ7NhRLLhG6y6qvkHwBzdxvKp/0uyvt7TFpz0U89NOorjaTOtRxA+rvCbedqugnk95L27mT5Bfg
	qQQ8dbdYE64wD1v6AWMPIbe/Wwi5iOZep534lV9PLij3trVHA5rlvgGN3Qutn7qlNbLlO/tFQ5U
	y3ia7VZzGjVOtS9zCpULxfOLryBmqSz9apW3kzPl3HyEPijZQ+Jnq5FebM5RtpWTO309A==
X-Google-Smtp-Source: AGHT+IFWNhUfxz6SzEBDhFQYxqPUTQB9b5y15PAsd+iSkDTyNeK7GmIgCcorcvcRJz/Jv7TNTiPKqg==
X-Received: by 2002:a2e:7a0e:0:b0:2ff:a928:a23e with SMTP id 38308e7fff4ca-2ffa928a3ebmr5385491fa.25.1732268060088;
        Fri, 22 Nov 2024 01:34:20 -0800 (PST)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.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 v2 4/4] x86/boot: Use external symbols from cmdline_parse_early
Date: Fri, 22 Nov 2024 09:33:58 +0000
Message-Id: <20241122093358.478774-5-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241122093358.478774-1-frediano.ziglio@cloud.com>
References: <20241122093358.478774-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move some assembly code to C.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S         |  1 +
 xen/arch/x86/boot/cmdline.c             | 14 ++++++++++++--
 xen/arch/x86/boot/head.S                |  9 +--------
 xen/arch/x86/boot/trampoline.S          |  2 +-
 xen/arch/x86/include/asm/setup.h        |  2 ++
 xen/arch/x86/include/boot/xen/cpumask.h |  1 +
 xen/arch/x86/include/boot/xen/string.h  | 10 ++++++++++
 7 files changed, 28 insertions(+), 11 deletions(-)
 create mode 100644 xen/arch/x86/include/boot/xen/cpumask.h
 create mode 100644 xen/arch/x86/include/boot/xen/string.h

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index 1726c17c88..652f951e52 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -54,6 +54,7 @@ SECTIONS
         DECLARE_IMPORT(multiboot_ptr);
         DECLARE_IMPORT(pvh_boot);
         DECLARE_IMPORT(pvh_start_info_pa);
+        DECLARE_IMPORT(early_boot_opts);
         . = . + GAP;
         *(.text)
         *(.text.*)
diff --git a/xen/arch/x86/boot/cmdline.c b/xen/arch/x86/boot/cmdline.c
index 196c580e91..7a8a3ed97f 100644
--- a/xen/arch/x86/boot/cmdline.c
+++ b/xen/arch/x86/boot/cmdline.c
@@ -22,6 +22,9 @@
 #include <xen/kconfig.h>
 #include <xen/macros.h>
 #include <xen/types.h>
+#include <xen/multiboot.h>
+
+#include <asm/setup.h>
 
 #include "video.h"
 
@@ -39,6 +42,8 @@ typedef struct __packed {
 #endif
 } early_boot_opts_t;
 
+extern early_boot_opts_t early_boot_opts;
+
 /* Avoid pulling in all of ctypes.h for this. */
 #define tolower(c)	((c) | 0x20)
 
@@ -335,10 +340,15 @@ static void vga_parse(const char *cmdline, early_boot_opts_t *ebo)
 #endif
 
 /* SAF-1-safe */
-void cmdline_parse_early(const char *cmdline, early_boot_opts_t *ebo)
+void cmdline_parse_early(void)
 {
-    if ( !cmdline )
+    early_boot_opts_t *ebo = &early_boot_opts;
+    struct multiboot_info *mbi = (void *)multiboot_ptr;
+    const char *cmdline;
+
+    if ( !(mbi->flags & MBI_CMDLINE) || !mbi->cmdline )
         return;
+    cmdline = (void *)mbi->cmdline;
 
     ebo->skip_realmode = skip_realmode(cmdline);
     ebo->opt_edd = edd_parse(cmdline);
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 510b3cfe6c..49bacee225 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -675,14 +675,7 @@ trampoline_setup:
         cmpb    $0, sym_esi(efi_platform)
         jnz     1f
 
-        /* Bail if there is no command line to parse. */
-        mov     sym_esi(multiboot_ptr), %ebx
-        testl   $MBI_CMDLINE,MB_flags(%ebx)
-        jz      1f
-
-        lea     sym_esi(early_boot_opts), %edx
-        mov     MB_cmdline(%ebx), %eax
-        /*      cmdline_parse_early(cmdline/eax, opts/edx) using fastcall. */
+        /*      cmdline_parse_early using fastcall. */
         call    cmdline_parse_early
 
 1:
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 924bda37c1..204c9bc889 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -255,7 +255,7 @@ trampoline_boot_cpu_entry:
 
         .align  2
 /* Keep in sync with cmdline.c:early_boot_opts_t type! */
-early_boot_opts:
+GLOBAL(early_boot_opts)
 skip_realmode:
         .byte   0
 opt_edd:
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 5c2391a868..c461d5d3a7 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -16,6 +16,8 @@ extern uint64_t boot_tsc_stamp;
 extern void *stack_start;
 extern unsigned int multiboot_ptr;
 
+struct domain;
+
 void early_cpu_init(bool verbose);
 void early_time_init(void);
 
diff --git a/xen/arch/x86/include/boot/xen/cpumask.h b/xen/arch/x86/include/boot/xen/cpumask.h
new file mode 100644
index 0000000000..046b862b78
--- /dev/null
+++ b/xen/arch/x86/include/boot/xen/cpumask.h
@@ -0,0 +1 @@
+/* Empty. */
diff --git a/xen/arch/x86/include/boot/xen/string.h b/xen/arch/x86/include/boot/xen/string.h
new file mode 100644
index 0000000000..6556d3b4af
--- /dev/null
+++ b/xen/arch/x86/include/boot/xen/string.h
@@ -0,0 +1,10 @@
+#ifndef BOOT__XEN__STRING_H
+#define BOOT__XEN__STRING_H
+
+#include <xen/types.h>	/* for size_t */
+
+void *memset(void *s, int c, size_t n);
+void *memcpy(void *dest, const void *src, size_t n);
+void *memmove(void *dest, const void *src, size_t n);
+
+#endif /* BOOT__XEN__STRING_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 10:52:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 10:52:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841846.1257333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tERH0-0007Pa-TY; Fri, 22 Nov 2024 10:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841846.1257333; Fri, 22 Nov 2024 10:52: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 1tERH0-0007PT-Qt; Fri, 22 Nov 2024 10:52:26 +0000
Received: by outflank-mailman (input) for mailman id 841846;
 Fri, 22 Nov 2024 10:52: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=4B48=SR=bounce.vates.tech=bounce-md_30504962.67406263.v1-07f9e00b588f4df99a2fd6f276c1fd97@srs-se1.protection.inumbo.net>)
 id 1tERGz-0007PN-3z
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 10:52:25 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8934881-a8bf-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 11:52:20 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4XvsPH120HzG0CPcc
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 10:52:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 07f9e00b588f4df99a2fd6f276c1fd97; Fri, 22 Nov 2024 10:52: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: d8934881-a8bf-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQ4OTM0ODgxLWE4YmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjcyNzQwLjgzNDUxOSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDA2MjYzLnYxLTA3ZjllMDBiNTg4ZjRkZjk5YTJmZDZmMjc2YzFmZDk3QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732272739; x=1732533239;
	bh=smmuDVP83Q/T5yQyCOpmokMl4WpHxoRVO6RI1XA0pXo=;
	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=ubnKIMK9v+pv/lW6JqRmtMxtuBc2k0yz+PKVJiGT8cS30vipmtwyrXAMY+KziSjpx
	 zRKlgMe3UZt/KO7J492ohASN5LwR2yxGAygVgNxXqIPUFuJtnsxqMuADeTHHjkclzN
	 qD4dQDFIfjKzv+1+bw5YO3wwlfGbZ7MTzdS4pgX607JsH9oKtvsA9rbs514KTiZ5UZ
	 CQdK/9N4B+Jqoc1hlltenlH68hrlafP71njB7oAJ3Kh9H+32vqfsytlKo4AkIwsWYl
	 +b4oTTY/oy3i0sfAgylGErZeo4qLo04CVgumArjzL0si1ljWvcEniQTBQCm7kyF/LA
	 DkYCSOV7Ou8Jw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732272739; x=1732533239; i=teddy.astie@vates.tech;
	bh=smmuDVP83Q/T5yQyCOpmokMl4WpHxoRVO6RI1XA0pXo=;
	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=v3tIvwCvUyJvY7Cph/278tSo1IKvC0gxTJKwz9PsFLnbrkITJq2UWnkp+mLDj4Wd7
	 27diPoHjtUc7R+rsEmJ0eF06S9GyNTSY3oJeqcyPX12BWUzQOt3LST4aQTUfS0LVoY
	 qA7eKFOzOD/d1nFsj9V9T+5/4pnfdzfJ24di+oLYOCU+FIj0IUj/1t1L9j3GAdskii
	 ByfBT7NvbdNC8YHV2ev/eLpblqhTXiN9KzkpEsCMRvm+nCrMT/oEgSg8+WP3koq0V3
	 I2VUEl6rY+Me5Sj6wYvevG7TPQgNgJBb/2C5HlrQlny1F7sC358DNJgpfpo576a4NP
	 icxKPgo3h3x5g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2000/25]=20Introduce=20xenbindgen=20to=20autogen=20hypercall=20structs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732272738337
Message-Id: <5a3c8a6e-fee7-4dba-8d86-506aa7b3c2de@vates.tech>
To: "Anthony PERARD" <anthony.perard@vates.tech>, "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
Cc: xen-devel@lists.xenproject.org
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com> <Zz9yEUj1_t1SSKE_@l14>
In-Reply-To: <Zz9yEUj1_t1SSKE_@l14>
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.07f9e00b588f4df99a2fd6f276c1fd97?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241122:md
Date: Fri, 22 Nov 2024 10:52:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 21/11/2024 =C3=A0 18:46, Anthony PERARD a =C3=A9crit=C2=A0:
> Instead of creating your own IDL specification, did you look for
> existing project that would do just that? That is been able to describe
> the existing ABI in IDL and use an existing project to generate C and
> Rust headers.
> 
> I kind of look into this, but there's quite a few project to explore and
> I didn't really spend enough time. Also, there's probably quite a lot
> that are for client-server interfaces rather than syscall/hypercalls, or
> they impose a data format.
> 

I think a such IDL would be C headers, but it's easy to make C headers 
that are hard to deal with in other languages. I checked briefly, and 
there is Fuchsia IDL that could be interesting in that matter but is 
much more complex than what we may be looking for.

> 
> Next, on the file format choice, is TOML the best for describing an ABI,
> or would other existing file format make it a bit easier to read, like
> JSON or YAML? (I quite like using YAML so I have a bias toward it =F0=9F=
=99=82,
> and that's the format used for the CI). I don't think it mater much for
> Serde which file format is used.

It can be decided by making examples of IDL files in various formats and 
deciding on which one would be the most readable/easy to deal with.

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 Nov 22 13:12:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 13:12:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841863.1257343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tETSb-0006JB-B0; Fri, 22 Nov 2024 13:12:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841863.1257343; Fri, 22 Nov 2024 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 1tETSb-0006J4-8Q; Fri, 22 Nov 2024 13:12:33 +0000
Received: by outflank-mailman (input) for mailman id 841863;
 Fri, 22 Nov 2024 13:12: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=KMXp=SR=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tETSZ-0006Iy-Pe
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 13:12:31 +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 6b4b4ff4-a8d3-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 14:12:26 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4315c1c7392so18629195e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 05:12:26 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde8fb6csm27111145e9.28.2024.11.22.05.12.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Nov 2024 05:12: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: 6b4b4ff4-a8d3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZiNGI0ZmY0LWE4ZDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjgxMTQ2LjYwMjAyOCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732281146; x=1732885946; darn=lists.xenproject.org;
        h=in-reply-to:references:cc:to:from:subject:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OJdU2uoyhGXNdHO4/ckna+U7ru3MKPip5SbgCQY/Q0A=;
        b=eRqhyf2hl/aIFE7vt9zUtnyE/eU+8X9AVrR51UeP3R8miHawu8UGk8uGq45sizFjkf
         CBYJA7//AOjVEu3eWllto09HUMwcblVffgO4J2kpXKDiblFPrzxpGVuh+A1E5S21TKBg
         RuRwpcE368WBJ2A4iawxrdI/alVY2XOtwzxgA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732281146; x=1732885946;
        h=in-reply-to:references:cc:to:from:subject:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=OJdU2uoyhGXNdHO4/ckna+U7ru3MKPip5SbgCQY/Q0A=;
        b=HXEMwLGbOfzDMfL9N13/H08W9m9gL4CzK7ruzSWgcxw+b9rLHEwNA7esNO2VslOB6D
         8wmSB2g4VSMeriPdjduu8RttNF/D7Kr4K0wB+A/n7vdR2hmntwjgtIcONwgQ2HNcAmT3
         m600qHNncTcJCpBBKxj8MCoI5//Gb6fW60Icbbs8Hw8rRVPGadg65eZ6y36CAuhKmh2f
         GB/PvUcqDmBZ2BoFHBTPPh/QdZTqolp9lZv9tOk/Q7OIfuDDIDABGwA62Fx5RRNTugVj
         R2NhliEBwJV8HDI9J/zQADTVXHjINiUSh1QglyQfDqb8X6nGXLCLuTyg12S25lkkYvxg
         cIxw==
X-Gm-Message-State: AOJu0YzDrNh72CGJVnPAlBoRAFx/W9/YF+rL4S0Z8BdzDB6vScc4lodv
	m7puMKutFm24+kNA1+vvNPJk/z4OD3zWHDlHDjONp3rkhASuP1tbSwEAvPlek4E=
X-Gm-Gg: ASbGncs5CYCtOPEeKnqjAfzlVD3IxunLMeKkpbYoiYvaD+OQUlO562R14VCgYrOCHMp
	3IecbbfFUoQlL9SjE8pWCKAyG1r2y162ivvM77pNscZdZ2LSTwAB/hV7+wljqapA20ZZBL4Dwmt
	clJRiGoTG/wv1qk++KjjKipR0Ipk6aUfvtRLrmWDJvIEt2nXVihRmjLO88ebr7ftp151r7UfkTP
	SB71umJSCWIRgLlrKGF5O5bCsPcLR3I/3GGJNdA7z2y4umB9MOzp8PnHg+ebIWfmIzY0ZHQL38O
	exv3
X-Google-Smtp-Source: AGHT+IFhJhUt0S8+IjNR/CwAZvtFXo9ZeCLX+WoXM7BjTA3C5DEyZ8F8s9qZ0y9qfi+gk8VQkfnB9w==
X-Received: by 2002:a05:600c:1c9a:b0:431:57e5:b251 with SMTP id 5b1f17b1804b1-433ce4d4c15mr20348255e9.28.1732281145761;
        Fri, 22 Nov 2024 05:12:25 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 22 Nov 2024 13:12:24 +0000
Message-Id: <D5SQEZIL2SZV.QR3X5MRVQJJP@cloud.com>
Subject: Re: [RFC PATCH 00/25] Introduce xenbindgen to autogen hypercall
 structs
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Anthony PERARD" <anthony.perard@vates.tech>
Cc: <xen-devel@lists.xenproject.org>, "Juergen Gross" <jgross@suse.com>,
 "Julien Grall" <julien@xen.org>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Christian Lindig"
 <christian.lindig@citrix.com>, "David Scott" <dave@recoil.org>,
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, "Bertrand Marquis"
 <bertrand.marquis@arm.com>, "Michal Orzel" <michal.orzel@amd.com>,
 "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Samuel Thibault"
 <samuel.thibault@ens-lyon.org>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, "Tim Deegan" <tim@xen.org>, "Lukasz
 Hawrylko" <lukasz@hawrylko.pl>, =?utf-8?q?Mateusz_M=C3=B3wka?=
 <mateusz.mowka@intel.com>, "Doug Goldstein" <cardoe@cardoe.com>, "Teddy
 Astie" <teddy.astie@vates.tech>, "Yann Dirson" <yann.dirson@vates.tech>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <Zz9yEUj1_t1SSKE_@l14>
In-Reply-To: <Zz9yEUj1_t1SSKE_@l14>

On Thu Nov 21, 2024 at 5:47 PM GMT, Anthony PERARD wrote:

Hi,

> Hi Alejandro,
>
> Nice work :-).

Cheers! And thanks for having a look.

>
> On Fri, Nov 15, 2024 at 11:51:29AM +0000, Alejandro Vallejo wrote:
> > This series is the result of my "Interfacing Rust with Xen" talk in Xen=
 Summit.
> > It adds a hypercall ABI IDL parser and generator to the xen tree, repla=
ces a
> > couple of existing hypercalls, creates a Rust crate with autogenerated =
contents
> > an creates a CI job to ensure nothing goes out of sync.
> >
> > The changes are fairly invasive because the various autogenerated items=
 appear
> > in many places (specially the domaincreate flags). However, the changes=
 to the
> > hypervisor are all mechanical and not functional (not intentionally so,=
 at
> > least).
>
> I tried to build QEMU with this series applied, and the build failed. In
> this case nothing important, the "autogen" directory just need to be
> installed. But I fear the changes introduce to the API (like change
> of case for the flags) will also be done to other API that project
> outside of the xen repo use, and thus introduce unneeded breakage.

That's bizarre, I run the series in CI and it came out green.

  https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/154340210=
0

And I can do `make dist` without issues locally.

There might be some flaky dependency somewhere. I admit I'm not sure how th=
e
headers are installed for the QEMU build.

> Should the changes also introduce a compatibility with the previous API?

Jan mentioned something to that effect when I first proposed the change to
grant_opts, but at the time the why was a bit lacking in substance. I then =
sent
this whole thing to show the why in context.

A more compatible alternative would be to retroactively widen the single
subfield inside *_opts to occupy the whole field. Then we can suitably exte=
nd
the masking macros to u32, keep them around for compatibility (outside the
autogenerated stuff; say, in xen.h) and the API would be preserved.

Does that sound like a better approach?

That said, I was under the impression the API to be maintained was in libxl=
 and
everything else was fair game so long as libxc et al. were suitably updated=
.

What do we actually promise externally?

>
> > I've split the generator in reasonably small pieces, but it's still not=
 a small
> > tool. The Rust backend remains monolithic in a single patch until the R=
FC goes
> > further. It mirrors the C backend for the most part.
> >=20
> > The hypercall ABI is specified in a schema of TOML. Most of it should b=
e fairly
> > obvious as to what it does and means, with the possible exception of th=
e "typ"
> > field. That has the look of a dictionary because that helps the deseria=
lizer to
> > automatically resolve the typ to a convenient Rust enum type (Typ). In =
time,
> > that will become something nicer to write, but that's fairly far in my =
list of
> > priorities at the moment.
>
> Instead of creating your own IDL specification, did you look for
> existing project that would do just that? That is been able to describe
> the existing ABI in IDL and use an existing project to generate C and
> Rust headers.
>
> I kind of look into this, but there's quite a few project to explore and
> I didn't really spend enough time. Also, there's probably quite a lot
> that are for client-server interfaces rather than syscall/hypercalls, or
> they impose a data format.
>

I looked a fair bit. Alas, the biggest case for this is web microservices, =
so
the overwhelming majority of IDL projects focus on end-to-end RPC. That is,
given pairs of functions for producers/consumers and a byte-based comms cha=
nnel
(typically a socket), they create their own ABI serialising on one side and
deserialising on the other. That's not adequate here because we care about =
the
precise semantics of the ABI at the hypercall boundary to avoid pushing a
deserialiser in the hypervisor.

Protocol buffers, flatbuffers and Cap'n Proto all fall in this category, an=
d
gRPC is a higher level construct using protocol buffers or flatbuffers. So =
all
those are off the table, and virtually all others suffer from the same sin.

A notable exception is Kaitai Struct (https://kaitai.io/), because it was
designed to represent binary formats. I really wanted to use it, but Rust i=
s
not officially supported and the last release dates from 2022. All in all, =
it
doesn't sound like something alive enough for use in a serious existing
project.

>
> Next, on the file format choice, is TOML the best for describing an ABI,
> or would other existing file format make it a bit easier to read, like
> JSON or YAML? (I quite like using YAML so I have a bias toward it :-),
> and that's the format used for the CI). I don't think it mater much for
> Serde which file format is used.

Sure. I don't really care which. I can use serde to convert anything to
anything else anyway. I happened to already have something set up for TOML,=
 so
I shamelessly reused it. But I'm happy to use something else.

I'm halfway through formalising evtchn atm (with a few addition to the
generator), but I'll try migrating the specs to YAML and JSON to see how th=
ey
look like.

I'm only frontally opposed to XML :)

>
> > After the series sysctl::readconsole and domctl::createdomain are autog=
enerated
> > from their formalized forms. In the course of formalizing the ABI it be=
came
> > apparent readconsole has a different ABI in 32 and 64 bits. While benig=
n in
> > that particular case, it's yet one more reason to formalize the ABI in =
a
> > language agnostic way and have it machine-checked.
> >=20
> > =3D=3D=3D=3D=3D=3D=3D=3D The Plan =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >=20
> > So, the idea of the series is to adjust 2 meaningful hypercalls to TOML=
-based
> > specifications (sysctl::readconsole and domctl::createdomain). The seri=
es is
> > organised in the following chunks of work
> >=20
> >   1. Sanitise domctl::createdomain to remove packed subfields.
> >   2. Introduce xenbindgen (IDL parser and generator for C).
> >   3. Specify hypercalls in TOML, and replace the hand-crafted public bi=
ts.
> >   4. Introduce Rust generator for xenbindgen.
> >   5. Introduce a xen-sys crate, with the autogenerated Rust constructs.
> >   6. Introduce CI checks for Rust linters, ABI validation and autogener=
ated
> >      file consistency.
> >=20
> > Future work involves migrating more hypercalls, in the same way patch 1=
2 does.
> > Most hypercalls should not take the amount of churn createdomain did. W=
ith the
> > foundations laid down the involved work should be simple.
> >=20
> > I have considered integrating the hypercall generation in the build pro=
cess.
> > That forces the Rust toolchain to be in the list of build dependencies =
for
> > downstreams, which might be complicated or annoying. For the time being=
, I
> > think checking in the autogenerated files and confirming in CI that the=
y are
> > in-sync is (imo) more than enough.
>
> Having the generated header files been committed sound like a good idea
> for now. For better or for worth we've got a few of those already, so
> it isn't a first.

So long as CI checks for consistency (and it does here), it shouldn't be a
problem and helps a lot with review. I have noticed a few times regressions
while developing merely because it became apparent in `git status`.

>
> But the way the different pieces are spread out in the repository in
> this patch series will make it difficult for future contributor to update
> the hypercall ABI. They'll be meet with an "autogenerated file, don't
> modify" with little clue as to how actually regenerate them. For that I
> think it would be better to have the IDL description (TOML files) in
> that "xen/public/include" directory or at the very least in "xen/".

I can move the specs to <root>/xen/abi, or something like that. Having it i=
n
the include folder might risk installing them on the targets, and while tha=
t
shouldn't matter it's better if we only ship .h files there.

Regardless of this, I should add a bit more context to the message in the
headers they reference where the spec lives and some README.

> Second, with "xenbindgen" been in in "tools/", this introduce a soft
> dependency of "xen" on "tools", which should be avoided even if the
> build system of "xen/" doesn't call into xenbindgen today. So I think it
> would be better to have xenbindgen either live in "xen/" or in a
> different directory at the root of the repo. There's already Kconfig in
> "xen/" so xenbindgen isn't going to be the first parser/generator in
> "xen/" directory.

I don't disagree, but what do I do with xen-sys then? Should I put it with =
the
hypervisor somewhere in <root>/xen? <root>/xen/rust/xen-sys, maybe?

Otherwise the same coupling exists between xen and tools, except in the oth=
er
direction.

>
> > =3D=3D=3D=3D=3D=3D=3D=3D Patch grouping =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
> >=20
> > Patches 1 and 2 remove packed subfields to allow encoding it in the TOM=
L specs
> > (e.g: see patch 13, replace hand-crafted altp2m_mode). It's non-functio=
nal
> > changes aiming to reach simpler representability.
> >=20
> >   Patch 1.  xen/domctl: Refine grant_opts into max_grant_version
> >   Patch 2.  xen/domctl: Replace altp2m_opts with altp2m_mode
> >=20
> > Patches 3 to 10 are xenbindgen (with the C generator backend only). The
> > Cargo.lock file in patch 4 is required for build reproducibility and is
> > recommended to have checked in the repo.
> >=20
> >   Patch 3.  tools/xenbindgen: Introduce a Xen hypercall IDL generator
> >   Patch 4.  tools/xenbindgen: Add a TOML spec reader
> >   Patch 5.  tools/xenbindgen: Add basic plumbing for the C backend
> >   Patch 6.  tools/xenbindgen: Add xenbindgen's Cargo.lock file
> >   Patch 7.  tools/xenbindgen: Add support for structs in TOML specs
> >   Patch 8.  tools/xenbindgen: Add support for enums in TOML specs
> >   Patch 9.  tools/xenbindgen: Add support for bitmaps in TOML specs
> >   Patch 10. tools/xenbindgen: Add support for includes in the TOML spec=
s
> >=20
> > Patch 11 goes a step beyond and validates the ABI has no implicit paddi=
ng and
> > that all names are unique. In the future, when we define rules for stab=
le ABIs,
> > all of those can be checked here, at generation time.
> >=20
> >   Patch 11. tools/xenbindgen: Validate ABI rules at generation time
> >=20
> > Patches 12 to 19 replace current items in the C headers with autogenera=
ted
> > versions. They should all be mechanical translations.
> >=20
> >   Patch 12. xen: Replace sysctl/readconsole with autogenerated version
> >   Patch 13. xen: Replace hand-crafted altp2m_mode descriptions with
> >             autogenerated ones
> >   Patch 14. xen: Replace common bitmaps in domctl.createdomain with
> >             autogenerated versions
> >   Patch 15. xen/arm: Replace hand-crafted xen_arch_domainconfig with
> >             autogenerated one
>
> I feel like you write "hand-crafted" in those patch description as if it
> is a bad thing. Yet, you replace the hand-crafted C headers by
> hand-crafted IDL. I think a better title could be "Translate
> xen_arch_domainconfig into IDL" to avoid what I feel like is a
> pejorative term.

Far from my intent. I merely meant "non-autogenerated". But point taken.

>
> Also, would it be possible to separate changes to the existing API from
> the patch that introduce the newly generated headers? I think it would
> be much easier to review that the generated headers don't introduce
> any changes over the current one.
>
> Cheers,

Sure, I can do that. createdomainflags is particularly nasty in that sense =
:/

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 13:26:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 13:26:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841874.1257353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tETgS-00080b-Gs; Fri, 22 Nov 2024 13:26:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841874.1257353; Fri, 22 Nov 2024 13:26: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 1tETgS-00080U-D4; Fri, 22 Nov 2024 13:26:52 +0000
Received: by outflank-mailman (input) for mailman id 841874;
 Fri, 22 Nov 2024 13:26: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=KMXp=SR=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tETgR-00080O-Ex
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 13:26: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 6aa7700e-a8d5-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 14:26:44 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4315eeb2601so24317085e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 05:26:44 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde8fbe6sm27015265e9.27.2024.11.22.05.26.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Nov 2024 05:26: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: 6aa7700e-a8d5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZhYTc3MDBlLWE4ZDUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjgyMDA0LjQ2MTY5Nywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732282004; x=1732886804; darn=lists.xenproject.org;
        h=in-reply-to:references:cc:to:from:subject:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2P7V0WczIKMwHImY+eNpzEk5PxhmoH3sB89ni8KmzZ4=;
        b=TuxXxqNpMSv0bhxzHHaVhxTSt7UI6lgI4a5DJwNT2lP2zY/LLChI1sPhJf6X7qcBxg
         VZGtBeoaPMd9KbvhOttdClPw9gRfqHpfQkNVrDii7IJnFTbRq1MUPoG3sLiTceGveC/M
         lE9cpBhPNka8U+7C2lOTYsw5xvuuoJvzkTS7Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732282004; x=1732886804;
        h=in-reply-to:references:cc:to:from:subject:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=2P7V0WczIKMwHImY+eNpzEk5PxhmoH3sB89ni8KmzZ4=;
        b=mTKyxwKynIeBQMUxDRyBInZKXAtNqrkBGibcUt1hPoViKL8yhlLtnjgRbODfA5NwcT
         g2rMQNahVwWmuIFBAqY8mRoEu0+G0Kl13QI5WvI7e7N5dqlqKvFKzL3J7LwgjHivVEat
         H+j8e3l1D4eJvFYE111N/8Vot+XlfeP4vlHP7PJTVqKr70MNqvHET+ZqB1h+Juy0IOdF
         aN89XbVlCXIZxQS4OBlFWJRimCWgrbJozcQiPH/t1LLz00tlbGfd96zcQwEUURU96ddQ
         VHCQPqgsgRzdoZS8oBNX83SmATu4kN9lTQoGxupafnHXTKTwZRSj6DOk4/DagBUtOO/H
         0/5A==
X-Gm-Message-State: AOJu0YxbJUEJugvWkiMDQAxKXTAOfp48LkoyT5RgLQ9UIJISEwZEW7Iu
	BuExmFThPHobhiPP34PlMG5NUWe5KujcSsNCnFXCH0d28wmBIz7tbzyBnZOu4ts10GGb2ixwwwS
	0
X-Gm-Gg: ASbGnctI/zRDoAijh8rQdNvDXljICSsuuVlVXy7UeSPE8zhv1qbRPVFZP4lA4N7PAWL
	4T2ZGuLTiO4XdqBtv/O5XBwK1YW5ZKffjvVjL6X2Pt59zbeEjRpRCZK06oX+Mhz4k7Zrr2FV9ff
	KKwIfe27ItvuEKssC7VKLnvbVPIioP4OoYxtvhtVUyf8MURrzHx9mfB+jef5wbO6TMw0fx2QHZ7
	unNkfLM15neD7mbMz3AMxIoOkd4lVe1KiZxnBp8tHNWhWJKvLuJKwVdN5jyhKJ5ppZlvaCdkCk4
	JH8J
X-Google-Smtp-Source: AGHT+IHec0vr31XKe/XUzhH5QOPx+/KHifOpQNkXDgXAQQLxhvpCb5J1z2EMJPGaJ4n3t8I5UoTrsw==
X-Received: by 2002:a05:600c:4507:b0:432:d735:cc71 with SMTP id 5b1f17b1804b1-433ce48fe52mr23721505e9.25.1732282003893;
        Fri, 22 Nov 2024 05:26:43 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 22 Nov 2024 13:26:42 +0000
Message-Id: <D5SQPY0SVMIA.QQ6497HZAJJ5@cloud.com>
Subject: Re: [RFC PATCH 00/25] Introduce xenbindgen to autogen hypercall
 structs
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD"
 <anthony.perard@vates.tech>
Cc: <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <Zz9yEUj1_t1SSKE_@l14> <5a3c8a6e-fee7-4dba-8d86-506aa7b3c2de@vates.tech>
In-Reply-To: <5a3c8a6e-fee7-4dba-8d86-506aa7b3c2de@vates.tech>

On Fri Nov 22, 2024 at 10:52 AM GMT, Teddy Astie wrote:
> Le 21/11/2024 =C3=A0 18:46, Anthony PERARD a =C3=A9crit=C2=A0:
> > Instead of creating your own IDL specification, did you look for
> > existing project that would do just that? That is been able to describe
> > the existing ABI in IDL and use an existing project to generate C and
> > Rust headers.
> >
> > I kind of look into this, but there's quite a few project to explore an=
d
> > I didn't really spend enough time. Also, there's probably quite a lot
> > that are for client-server interfaces rather than syscall/hypercalls, o=
r
> > they impose a data format.
> >
>
> I think a such IDL would be C headers, but it's easy to make C headers
> that are hard to deal with in other languages.

Well, that's how x86_64 and x86_32 came to have different ABIs. Have a look=
 at
xen/include/public/ and xen/include/compat/

As it turns out, C is very deceptive. And the AST doesn't codify many
invariants we'd like to preserve and write down so languages capable of
enforcing them can do so. One example I'm working on now is evtchn_status. =
It
contains a tagged union with a external status field (used as the union tag=
).
In C this relationship is basically unenforced and stated via comments. For
other languages to know about it it ought to be formalized.

IOW, if we were to simply transpile C it's impossible to restrict C to only=
 use
safe constructs in other languages.

> I checked briefly, and
> there is Fuchsia IDL that could be interesting in that matter but is
> much more complex than what we may be looking for.

Fuchsia IDL in in the same camp as Protocol Buffers, Smithy and others, I
think. It's a protocol specification rather than an ABI specification, with=
 the
specific twist that it's tailored for Zircon channels. I don't think it cre=
ates
structs.

>
> >
> > Next, on the file format choice, is TOML the best for describing an ABI=
,
> > or would other existing file format make it a bit easier to read, like
> > JSON or YAML? (I quite like using YAML so I have a bias toward it =F0=
=9F=99=82,
> > and that's the format used for the CI). I don't think it mater much for
> > Serde which file format is used.
>
> It can be decided by making examples of IDL files in various formats and
> deciding on which one would be the most readable/easy to deal with.

Yeah, I'll probably do that.

>
> Teddy
>
>
> Teddy Astie | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 13:54:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 13:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841885.1257362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEU6w-0003UT-K8; Fri, 22 Nov 2024 13:54:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841885.1257362; Fri, 22 Nov 2024 13: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 1tEU6w-0003UM-Gu; Fri, 22 Nov 2024 13:54:14 +0000
Received: by outflank-mailman (input) for mailman id 841885;
 Fri, 22 Nov 2024 13:54: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=CazJ=SR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tEU6v-0003UG-7O
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 13:54:13 +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 3ee4232a-a8d9-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 14:54:09 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-382423f4082so1397365f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 05:54:09 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3825fafe147sm2443852f8f.30.2024.11.22.05.54.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Nov 2024 05: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: 3ee4232a-a8d9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNlZTQyMzJhLWE4ZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjgzNjQ5LjEyNjE5Mywic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732283648; x=1732888448; 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=XhDueBRm6/e/F4NHneCkoQbJKjaJRbqVYbhdC3iIX08=;
        b=dcmQczH4YN3ol7x5vPgpUC4N2U1+74YdTDUdyLNYVOeZmP0azuBMD+8RYc3RwcOe+4
         77vOogqmokPp+K4mIkXIMFBIs85BJOJBRxBEENHYw2mgIbD37xTvSF2AT2lbGPfoVWW+
         UfSRNN5vY9oSh6hjk+eZEon8f08thlhNULxWL16sxWnDk2PH9UkJ3G6yFp1eKoudg5QE
         U7Jtd1fm9bbqczp0UONHcy5OQXi6XBv9kUlqbuArz4RLmiaRLVXFYOXXhLl+LGBH/6Nq
         K9gz141xF+hGmJFbJHWNZssC8sjz6I9eE9XL5+E/mtgh5DRkYIUlBcLZYjJ9h1ogrw4m
         0pdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732283648; x=1732888448;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=XhDueBRm6/e/F4NHneCkoQbJKjaJRbqVYbhdC3iIX08=;
        b=Pjg8jTkRgO5p4ogmmNmpT0WZZ1mH9NeFmbbgu9yoPQa9Apzps2vf5wbBex2yFIK39+
         LdMWjqnHx0lJjot+t3RQKI2mfKI/jL4VqkbglOxCaz/my1qSqD1NwWYXx6iWi8HdeaXj
         laDrkJVJ2/xjNIVbsWOREaxypuClf5WEnUJmHrgBdTSrsR3nvjbQgF9IY1yC13FotqOs
         dgVN1PqizOAwDs2ZQK4dtX7/Jn427hKGNQ5gce89+5flitDJ7RqJ54WtopR4eNmUVpdV
         c76fQy/7d4EaqhGfMbKK6cFzp8SG89YrA7wov7rzeCIY66UMTNz4597TFTDiNaMFc89Z
         ZLsw==
X-Forwarded-Encrypted: i=1; AJvYcCXfvh3l0U3r2va0T3CtGPLG65pay3jzrc1GeWaOkJRjllaYAG2k/XLV/ekPDXe8GvOBy2vPAQvKPcc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1z5meCN2Uo9QQhLrq/yUdw+ANUFyscLl8+WEgrJUFPVktarL8
	Lr/29ry16TNGWg65qxn06A7e9sQYrwipscq3gv2/ej1Sy2EX+7IPRTULeEU9D54=
X-Gm-Gg: ASbGncvcXwn2ZC7b7Iwq7e1RNqDSDqdIhddCvkoyl92aSvzwv1T8uZg5TzBmn/BAmIx
	jpbL4MTS6rdnT0Tgfz2S+vgqQYQ0MQrJ+TZhohqvPUiJ+PQeNfO4ET6MLaYw6oJhCa3i5sw3ZJa
	eS/7893o5jMAKzKxFygWNrWQq3aeJqwL4SlhR37wy5h75v2PGHNEI7NlrwFbWyz/H8kbQ4bs8bD
	EBNm4+kqQsX6EziLekqlSOzapQiYYWzCtDcAwpCaW+LmIiRJoDmm03x4koKchXDiH8v0/HqB5P0
	So1LSpPStSIkGKRDAzOer3k6BWD1wWmvpQya0l2rIqw9QXp0tzqvNBodxtN4TPuLH7QEx6vPnIw
	=
X-Google-Smtp-Source: AGHT+IEgnAdMMxgnTxCDj06rnj+QxKz4Nm1h/mTObW0SrAHslDOcyRZvOd0timHcitZ4fp4F4v1GJg==
X-Received: by 2002:a5d:584f:0:b0:382:4b69:9c75 with SMTP id ffacd0b85a97d-38260bcbb36mr2364283f8f.43.1732283648227;
        Fri, 22 Nov 2024 05:54:08 -0800 (PST)
Message-ID: <a6570b47-217c-4e92-a64c-16fc34494e3e@suse.com>
Date: Fri, 22 Nov 2024 14:54:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] 9p/xen: fix release of IRQ
To: Dominique Martinet <asmadeus@codewreck.org>,
 Alexander Merritt <alexander@edera.dev>
Cc: v9fs@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Eric Van Hensbergen <ericvh@kernel.org>,
 Latchesar Ionkov <lucho@ionkov.net>,
 Christian Schoenebeck <linux_oss@crudebyte.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>,
 Ariadne Conill <ariadne@ariadne.space>
References: <20241121225100.5736-1-alexander@edera.dev>
 <Zz_F9wMda68xhvKa@codewreck.org>
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: <Zz_F9wMda68xhvKa@codewreck.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Nk0vB0TxZPrkl6QvVkr8wsTT"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Nk0vB0TxZPrkl6QvVkr8wsTT
Content-Type: multipart/mixed; boundary="------------OWLn70UB2fIu0Y9aFiUC05De";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Dominique Martinet <asmadeus@codewreck.org>,
 Alexander Merritt <alexander@edera.dev>
Cc: v9fs@lists.linux.dev, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Eric Van Hensbergen <ericvh@kernel.org>,
 Latchesar Ionkov <lucho@ionkov.net>,
 Christian Schoenebeck <linux_oss@crudebyte.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Alex Zenla <alex@edera.dev>,
 Ariadne Conill <ariadne@ariadne.space>
Message-ID: <a6570b47-217c-4e92-a64c-16fc34494e3e@suse.com>
Subject: Re: [PATCH] 9p/xen: fix release of IRQ
References: <20241121225100.5736-1-alexander@edera.dev>
 <Zz_F9wMda68xhvKa@codewreck.org>
In-Reply-To: <Zz_F9wMda68xhvKa@codewreck.org>

--------------OWLn70UB2fIu0Y9aFiUC05De
Content-Type: multipart/mixed; boundary="------------C01w8BPyR5Yj4NMZLXVKi1ad"

--------------C01w8BPyR5Yj4NMZLXVKi1ad
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjIuMTEuMjQgMDA6NDQsIERvbWluaXF1ZSBNYXJ0aW5ldCB3cm90ZToNCj4gQWxleGFu
ZGVyIE1lcnJpdHQgd3JvdGUgb24gVGh1LCBOb3YgMjEsIDIwMjQgYXQgMTA6NTE6MDBQTSAr
MDAwMDoNCj4+IEZyb206IEFsZXggWmVubGEgPGFsZXhAZWRlcmEuZGV2Pg0KPj4NCj4+IEtl
cm5lbCBsb2dzIGluZGljYXRlIGFuIElSUSB3YXMgZG91YmxlLWZyZWVkLg0KPiANCj4gTml0
OiBpZiB5b3Ugc3RpbGwgaGF2ZSB0aGUgbG9nIGl0J2QgYmUgZ3JlYXQgdG8gaW5jbHVkZSBp
dCBpbiB0aGUgY29tbWl0DQo+IG1lc3NhZ2UsIHJhdGhlciB0aGFuIHBhcmFncmFwaGluZyBp
dC4NCj4gDQo+IFRoZSByYXRpb25hbGUgaXMgdGhhdCBzb21lb25lIHdpdGggdGhlIHNhbWUg
cHJvYmxlbSB3aWxsIGxpa2VseSBqdXN0DQo+IHNlYXJjaCBmb3IgdGhlIGVycm9yIGFzIGlz
IGZpcnN0LCBhbmQgaGF2aW5nIGl0IGluIHRoZSBjb21taXQgbG9nIHdpbGwNCj4gYmUgYW4g
ZWFzeSBoaXQuDQo+IA0KPiAoVGhpcyBhbG9uZSB3b3VsZG4ndCBuZWVkIGEgcmVzZW5kLCBJ
IGNhbiBhZGQgaXQgaWYgeW91IGp1c3QgcmVwbHkgdG8NCj4gdGhlIG1haWwgd2l0aCBpdDsg
aXQncyBhbHNvIGZpbmUgaWYgeW91IG5vIGxvbmdlciBoYXZlIHRoZSBsb2csIHRoYXQnbGwN
Cj4gYmUgYSByZW1hcmsgZm9yIHRoZSBuZXh0IHBhdGNoKQ0KPiANCj4gDQo+Pg0KPj4gUGFz
cyBjb3JyZWN0IGRldmljZSBJRCBkdXJpbmcgSVJRIHJlbGVhc2UuDQo+Pg0KPj4gRml4ZXM6
IDcxZWJkNzE5MjFlNDUgKCJ4ZW4vOXBmczogY29ubmVjdCB0byB0aGUgYmFja2VuZCIpDQo+
PiBTaWduZWQtb2ZmLWJ5OiBBbGV4IFplbmxhIDxhbGV4QGVkZXJhLmRldj4NCj4+IFNpZ25l
ZC1vZmYtYnk6IEFsZXhhbmRlciBNZXJyaXR0IDxhbGV4YW5kZXJAZWRlcmEuZGV2Pg0KPj4g
U2lnbmVkLW9mZi1ieTogQXJpYWRuZSBDb25pbGwgPGFyaWFkbmVAYXJpYWRuZS5zcGFjZT4N
Cj4gDQo+IA0KPiANCj4+IC0tLQ0KPj4gICBuZXQvOXAvdHJhbnNfeGVuLmMgfCAzICsrLQ0K
Pj4gICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+
Pg0KPj4gZGlmZiAtLWdpdCBhL25ldC85cC90cmFuc194ZW4uYyBiL25ldC85cC90cmFuc194
ZW4uYw0KPj4gaW5kZXggZGZkYmUxY2E1MzM4Li4xOThkNDZkNzlkODQgMTAwNjQ0DQo+PiAt
LS0gYS9uZXQvOXAvdHJhbnNfeGVuLmMNCj4+ICsrKyBiL25ldC85cC90cmFuc194ZW4uYw0K
Pj4gQEAgLTI4Niw3ICsyODYsOCBAQCBzdGF0aWMgdm9pZCB4ZW5fOXBmc19mcm9udF9mcmVl
KHN0cnVjdCB4ZW5fOXBmc19mcm9udF9wcml2ICpwcml2KQ0KPj4gICAJCWlmICghcHJpdi0+
cmluZ3NbaV0uaW50ZikNCj4+ICAgCQkJYnJlYWs7DQo+PiAgIAkJaWYgKHByaXYtPnJpbmdz
W2ldLmlycSA+IDApDQo+PiAtCQkJdW5iaW5kX2Zyb21faXJxaGFuZGxlcihwcml2LT5yaW5n
c1tpXS5pcnEsIHByaXYtPmRldik7DQo+PiArCQkJdW5iaW5kX2Zyb21faXJxaGFuZGxlcihw
cml2LT5yaW5nc1tpXS5pcnEsIHJpbmcpOw0KPj4gKwkJcHJpdi0+cmluZ3NbaV0uZXZ0Y2hu
ID0gcHJpdi0+cmluZ3NbaV0uaXJxID0gMDsNCj4gDQo+IChzdHlsZSkgSSBkb24ndCByZWNh
bGwgc2VlaW5nIG11Y2ggYGEgPSBiID0gMGAgaW4gdGhlIGtlcm5lbCwgYW5kDQo+IGxvb2tp
bmcgYXQgaXQgY2hlY2twYXRjaCBzZWVtcyB0byBjb21wbGFpbjoNCj4gQ0hFQ0s6IG11bHRp
cGxlIGFzc2lnbm1lbnRzIHNob3VsZCBiZSBhdm9pZGVkDQo+ICMxMTQ6IEZJTEU6IG5ldC85
cC90cmFuc194ZW4uYzoyOTA6DQo+ICsJCXByaXYtPnJpbmdzW2ldLmV2dGNobiA9IHByaXYt
PnJpbmdzW2ldLmlycSA9IDA7DQo+IA0KPiBQbGVhc2UgcnVuIGNoZWNrcGF0Y2ggb24gdGhl
IHBhdGNoZXMgeW91IHNlbmQgKGI0IGNhbiBkbyBpdCBmb3IgeW91IGlmDQo+IHlvdSB3YW50
IHRvIHN0YXJ0IHVzaW5nIGl0KQ0KPiANCj4gDQo+IGNvZGUtd2lzZSwNCj4gSSBhbHNvIGRv
bid0IHNlZSB3aGVyZSB1bmJpbmZfZnJvbV9pcnFoYW5kbGVyIHdvdWxkIGZyZWUgdGhlIGV2
dGNobiwgc28NCj4gaXMgaXQgbGVha2luZyBoZXJlLCBvciBpcyBpdCBpbXBsaWNpdCBmcm9t
IHNvbWV0aGluZyBlbHNlPw0KPiBXZSBvbmx5IGZyZWUgaXQgZXhwbGljaXRseSBvbiBlcnJv
ciBiaW5kaW5nIHRoZSBpcnEuDQoNCnVuYmluZF9mcm9tX2lycWhhbmRsZXIoKQ0KICAgdW5i
aW5kX2Zyb21faXJxKCkNCiAgICAgX191bmJpbmRfZnJvbV9pcnEoKQ0KICAgICAgIGNsb3Nl
X2V2dGNobigpDQoNCg0KSnVlcmdlbg0K
--------------C01w8BPyR5Yj4NMZLXVKi1ad
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-----

--------------C01w8BPyR5Yj4NMZLXVKi1ad--

--------------OWLn70UB2fIu0Y9aFiUC05De--

--------------Nk0vB0TxZPrkl6QvVkr8wsTT
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/Ey8FAmdAjP4FAwAAAAAACgkQsN6d1ii/Ey/X
AQgAnEPHcjShbIOAFbogh8d7tg+wk/TFewFy1WodIc8EpJ9msRua8BRLXcZTK6G3OX8g9B71AsLB
zKBpHnhfI/HXUFZQvWccbzEZCESx/XMYaP1aAY0s26LBqjWcmU80LgNUWcm7uCtGzJ75BmoHaRCC
1FQXLwZZYRhqSAdapdFgDO3aifgkTcWmQBYjxrgPNbGLSffIQ3LWrF7txcmmKTPAdSPopmLhgHtH
Vm2cNXX2G96+B42wolHCqJbEZde7y1NSggCJQUSq6PLJYCOPRsTp3Z8G++M8+U9vPL14pWANliXn
8gWyDVv21vC224l/XuL6RS2LTwmF6KMqSRff9bdt5A==
=CpVu
-----END PGP SIGNATURE-----

--------------Nk0vB0TxZPrkl6QvVkr8wsTT--


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 13:55:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 13:55:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841895.1257373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEU7t-00042h-4h; Fri, 22 Nov 2024 13:55:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841895.1257373; Fri, 22 Nov 2024 13:55: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 1tEU7t-00042a-0Y; Fri, 22 Nov 2024 13:55:13 +0000
Received: by outflank-mailman (input) for mailman id 841895;
 Fri, 22 Nov 2024 13:55: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=NurD=SR=bounce.vates.tech=bounce-md_30504962.67408d36.v1-6fab0bcfe4e146b3806f4c83637ae662@srs-se1.protection.inumbo.net>)
 id 1tEU7s-0003mr-8U
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 13:55:12 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fbadc48-a8d9-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 14:55:05 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4XvxS61WynzG0CBMG
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 13:55:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6fab0bcfe4e146b3806f4c83637ae662; Fri, 22 Nov 2024 13:55: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: 5fbadc48-a8d9-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjVmYmFkYzQ4LWE4ZDktMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjgzNzA1LjUxMzgxMSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDA4ZDM2LnYxLTZmYWIwYmNmZTRlMTQ2YjM4MDZmNGM4MzYzN2FlNjYyQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732283702; x=1732544202;
	bh=9k3/DMACJm5rbUm93fEdJecSBKBpnbjgBpz56WowbWo=;
	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=F3rgZhJKjlkYT9cbmlRFdrKIe34GxzZtrNpuZ4KzKByNmkNe3rMRlqTs9gQdqOEGL
	 8Yb7qSYj6y4X11y9A0BY9iU7Z9krqvqwPBIgJ/jNjmIMLcUXoZ3YA5gh/GEky+lzSD
	 iEkAzxNoXwlPgO1SN2axfghjR4DAIT5oJVWLDrLuNbhCdGIu1VRvEIyFc/eTN+3BQB
	 Zuf7BjYNv60rNJThN0OWtUxdWwhT+5QdqfO5FFVSFQxgzsbJEYxILkILQYIFQ/HymF
	 HcXPpqEDULgg9dyoBdFRZxM9AKMHcI7pBU450MDZKPFBsMT+gs134aplXzW0JP7bz/
	 CyfOdf9v9stzg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732283702; x=1732544202; i=anthony.perard@vates.tech;
	bh=9k3/DMACJm5rbUm93fEdJecSBKBpnbjgBpz56WowbWo=;
	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=G0eBFRgRwOwm/NKHp6P3wY6yVjHibc28rfW/R6uNfQkBKXOJbiYvxwgO01wRP5a1D
	 VQhzJT+7SyXs9a1DwpqDnFT0psSW9vitOqIZr+l0jxPfXczvwsLQh5n9SmN1Grw8Bq
	 jHAS3NlyXcmiuzenLF3mH0BNmrVnOuviACP9kgYDf9NP0L4YrgoZcvLs7Dlu5IGf3F
	 jVtLzmI3F3hXg1bv11RzJ89W8W5K0pCGRitMRNi63ZQMpQNBSTwSNnqtogvFClF87Y
	 LvtGpjbTVjXnKR9GcFW64KdKPmXLw+q5SFkXgVfxyL9d3zYefsJAoQr/T4B5SQqa2I
	 iIm8cjYYOFWTQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=204/6]=20tools/libs:=20add=20a=20new=20libxenmanage=20library?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732283701601
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <Z0CNNdezcIbUelrk@l14>
References: <20241023131005.32144-1-jgross@suse.com> <20241023131005.32144-5-jgross@suse.com>
In-Reply-To: <20241023131005.32144-5-jgross@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.6fab0bcfe4e146b3806f4c83637ae662?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241122:md
Date: Fri, 22 Nov 2024 13:55:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi Juergen,

On Wed, Oct 23, 2024 at 03:10:03PM +0200, Juergen Gross wrote:
> In order to have a stable interface in user land for using stable
> domctl and possibly later sysctl interfaces, add a new library
> libxenmanage.

What this new library could do? What sort of operation could be added in
the future? Domain creation? I'm trying to get convince that "manage" is
the right name for it.

To me, "manage" could be something higher level to take care of a domain
from it's creation to its demise.

So for this lib have get_domain_info() to query about a single domain,
and get_changed_domain() which seems to be a state synchronisation
operation. (For that second function, it resemble an operation of the
Matrix API calling "https://.../sync" which return all the new event
since the last time it was called. But back to the new function name, a
get* function which returns a different value every time you call it
might not actually be the right name for it, maybe other functions that
do something similar, or at least tell when there's a new event, would
be poll() and select(), so maybe poll_changed_domain() would be slightly
better at describing the kind of function that it is?)

So, those two functions only query about the states of domains, without
making any modification is seems, so is "manage" still the right name?
At least, it both function doesn't seems to fit in existing stable
libraries so having a new one seems the right call. So the name
depends of what other operation could be added to the library, as such,
a description of the library would be nice, but at least thanks for
documenting every functions!

> diff --git a/tools/include/xenmanage.h b/tools/include/xenmanage.h
> new file mode 100644
> index 0000000000..2e6c3dedaa
> --- /dev/null
> +++ b/tools/include/xenmanage.h
> @@ -0,0 +1,98 @@
> +/*
> + * Copyright (c) 2024 SUSE Software Solutions Germany GmbH
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation;
> + * version 2.1 of the License.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library; If not, see <http://www.gnu.org/licenses/>.

Shall we use SPDX tags instead of this boilerplate?

> + */
> +#ifndef XENMANAGE_H
> +#define XENMANAGE_H
> +
> +#include <stdint.h>
> +
> +/* Callers who don't care don't need to #include <xentoollog.h> */
> +struct xentoollog_logger;

More like, callers who care will need to include xentoollog.h. Here, we
just avoid the need to include xentoollog.h in xenmanage.h by declaring
the minimum.

If every time I wanted to include an header, I needed to figure which
header needed to be include before, that would be very annoying. Often,
headers include the needed headers.

If you want to have a comment, how about "Avoid the need to include
<xentoollog.h>", that way the comment tell why "struct
xentoollog_logger" is here, where it came from, and is more explicit.


> diff --git a/tools/libs/manage/core.c b/tools/libs/manage/core.c
> new file mode 100644
> index 0000000000..0c9199f829
> --- /dev/null
> +++ b/tools/libs/manage/core.c
> @@ -0,0 +1,170 @@
...
> +
> +#define __XEN_TOOLS__ 1

This define might be better in the Makefile(.common), or even in libs.mk? So far,
only libxenhypfs does define this in source code, all the other defines
are in CFLAGS or there because xenctrl.h is included.


> +static int xenmanage_do_domctl_get_domain_state(xenmanage_handle *hdl,
> +                                                unsigned int domid_in,
> +                                                unsigned int *domid_out,
> +                                                unsigned int *state,
> +                                                uint64_t *unique_id)
> +{
> +    struct xen_domctl *buf;
> +    struct xen_domctl_get_domain_state *st;
> +    int saved_errno;
> +    int ret;
> +
...
> +
> +    ret = xencall1(hdl->xcall, __HYPERVISOR_domctl, (unsigned long)buf);
> +    saved_errno = errno;
> +    if ( !ret )
> +    {
> +        st = &buf->u.get_domain_state;

You could define *st here.
struct xen_domctl_get_domain_state *st = &...;

Or even with ".. *const st" but maybe that's not common enough in C
code.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 14:01:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 14:01:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841905.1257383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEUE8-0005n7-NK; Fri, 22 Nov 2024 14:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841905.1257383; Fri, 22 Nov 2024 14:01: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 1tEUE8-0005n0-JP; Fri, 22 Nov 2024 14:01:40 +0000
Received: by outflank-mailman (input) for mailman id 841905;
 Fri, 22 Nov 2024 14:01: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=Pt5e=SR=bounce.vates.tech=bounce-md_30504962.67408ebd.v1-287a498457444c1f939bb637caa01303@srs-se1.protection.inumbo.net>)
 id 1tEUE8-0005mu-4R
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 14:01:40 +0000
Received: from mail134-5.atl141.mandrillapp.com
 (mail134-5.atl141.mandrillapp.com [198.2.134.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48bdf5b1-a8da-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 15:01:35 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-5.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4Xvxbd54mJzG0CJtY
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 14:01:33 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 287a498457444c1f939bb637caa01303; Fri, 22 Nov 2024 14:01: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: 48bdf5b1-a8da-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNC41IiwiaGVsbyI6Im1haWwxMzQtNS5hdGwxNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ4YmRmNWIxLWE4ZGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjg0MDk1Ljg2MTI0NCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDA4ZWJkLnYxLTI4N2E0OTg0NTc0NDRjMWY5MzliYjYzN2NhYTAxMzAzQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732284093; x=1732544593;
	bh=jWuIepqC8yaWMkVG+vgwEXX3z5Z3/zOLNl3TS3kIncc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=IUUXvgIDDsqeWZqJmIHD1gEibcp2TaTt4ZhgUKFk0tBwCDR9ee/BBS/2a+P9xGAJ7
	 1CeahGg5RG6OuArYq/e53l6vJBd3tKWwTrZCfx88zE++5u8Rvi65m/Ruc0Hypyks2Q
	 ghmeyB7XuSC8VxsL4nweN0NaXbm4b8HBfGy28NwaR70tHE03oUqWqdvh5WqT2qNhmj
	 hsQkGLXidsROeIsZRZvE8OMBkqB3CcaYRlQI/rLWbUxLZn+wgIoH2bXVxbKAZfyOUO
	 cjWtNGgTxIu0twEbZRfHMhsYgeK9ShloRFprihXOpejO6pBN5pfKFbGcdJVNzoxbts
	 XRCPqIrv02dKQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732284093; x=1732544593; i=teddy.astie@vates.tech;
	bh=jWuIepqC8yaWMkVG+vgwEXX3z5Z3/zOLNl3TS3kIncc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=kb7atfSoLkhf+3B2nxXJjH6JXnkSXeVKt+narDrrQtuZjnexDG7ItWxwxISG6PFo2
	 TJaJOv0tZZlpITbhdLRV18IX1KZPL26eGep/SFjByy+8bwkeSdcXJCwJki6BRPrNLI
	 ccKVBNW1fsjTR5xhMo+jk82GNnLbXjLscHYkyL9LWnmz5FnmYbOAoI0lNB6y32EFW1
	 bm3mJVX6MzFZezd3lKArgM04+OvSbgPk7QHGiVaeqyCAK3bJIjQjMukJliEBxRbuSd
	 lLmjYCywsblkxecY8jqYxWbrVOHNSn8noUf6QaynZoltB3GwT6nseQu9Z2oxI/edNX
	 v3GWMGbF/Vnyg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20XEN=20PATCH]=20docs/designs:=20Add=20a=20design=20document=20for=20'xen'=20Rust=20crate?=
X-Mailer: git-send-email 2.45.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732284092312
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <c0f88345e1ee870dc10a209e3840ae98b2ac1386.1732283549.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.287a498457444c1f939bb637caa01303?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241122:md
Date: Fri, 22 Nov 2024 14:01:33 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Add a design document for the 'xen' rust crate.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
Follows Alejandro works with https://lore.kernel.org/xen-devel/D5SQEZIL2SZV.QR3X5MRVQJJP@cloud.com/T/#t
There is also a WIP branch at https://gitlab.com/TSnake41/xen/-/tree/rust-rfc
---
 docs/designs/xen-rust-crate.md | 199 +++++++++++++++++++++++++++++++++
 1 file changed, 199 insertions(+)
 create mode 100644 docs/designs/xen-rust-crate.md

diff --git a/docs/designs/xen-rust-crate.md b/docs/designs/xen-rust-crate.md
new file mode 100644
index 0000000000..5eab603d4d
--- /dev/null
+++ b/docs/designs/xen-rust-crate.md
@@ -0,0 +1,199 @@
+# Rust 'xen' crate interface design
+
+See [1] for more context.
+
+This RFC proposes parts of the 'xen' crate interface that would directly or indirectly
+(through internal wrappers) be used by users.
+Those users could be a userland toolstack, a unikernel application (e.g XTF, Unikraft),
+some other freestanding environment (e.g OVMF, Linux, Redox OS), ...
+
+These users can have a very different execution environment, this crate aims to provide
+a uniform interface while allowing flexibility for exposing platform-specific bits.
+
+## Design philosophy
+
+This crate should feel natural for a Rust developper, thus, any Rust developper with some
+understanding on the Xen hypercall operations should be able to use this crate.
+Moreover, we want this crate to be maintainable and feel "idiomatic", and not introduce
+confusing behavior onto the user. Note that this crate will heavily use unsafe code.
+
+Some principles are proposed :
+
+Use or provide idiomatic abstractions when relevant (reuse standard traits).
+
+Examples:
+  Provide (optional) Future<...> abstractions for event channels
+  Provide a iterator-based (Stream ? [2]) abstraction for guest console.
+
+Don't restrict features to some execution environment, use modular abstractions (e.g traits)
+to allow the user to specify the missing bits himself / provide its own implementation.
+Note that it doesn't prevent us from exposing the platform-specific bits onto the
+types themselves (e.g UnixXenEventChannel can still expose its file descriptor).
+
+Example:
+  If we provide a event channel abstraction based on hypercall but it doesn't implement Future<...>,
+  the user can still implement its own type on top of the hypercall implementation, and
+  use its own async runtime (e.g based on interrupts) to implement Future<...> himself.
+  There could be 2 traits for varying needs :
+    EventChannel (base trait) and AsyncEventChannel (await-able EventChannel)
+
+  We can have both RawEventChannel based on XenHypercall that only implements EventChannel
+  and another type TokioEventChannel that provides both EventChannel and AsyncEventChannel
+  and integrates with tokio runtime.
+
+Safe wrappers must be "sound" and unsafe code shall not cause undefined behavior.
+- safe wrappers must not cause undefined behavior on their own
+- unsafe code should not cause undefined behavior if properly used
+
+This is a bit tricky due to some Xen specificities, but we expect hypercall to be well
+formed (we can add validation tools for that) including have its parameter indirectly
+respect the aliasing rules [3].
+Although, we assume that Xen is well-behaving regarding its ABI.
+We don't define misuse of a hypercall that can harm the guest himself, but we care
+about not causing a undefined behavior (e.g by passing a buggy pointer) through the
+hypercall interface that can overwrite unrelated/arbitrary kernel memory.
+
+## Hypercall interface
+
+We introduce a XenHypercall trait that exposes a raw primitive for making hypercalls.
+This interface supposes nothing on the ABI used in Xen, and its the responsibility
+of the user of such interface (often safe wrappers) that the hypercall made is
+meaningful.
+
+This interface is mostly to only be used by the crate developpers to build safe
+wrappers on top, or by advanced user for using non-exposed/WIP hypercall interfaces
+or bypassing the safe wrappers.
+
+We can implement this interface for freestanding platforms using direct native hypercalls
+(e.g using inline assembly) for freestanding platforms or in userland using special devices
+like privcmd/xencall on most Unix platforms.
+
+```rust
+pub trait XenHypercall: Sized {
+    unsafe fn hypercall5(&self, cmd: usize, param: [usize; 5]) -> usize;
+
+    unsafe fn hypercall4(&self, cmd: usize, param: [usize; 4]) -> usize;
+    unsafe fn hypercall3(&self, cmd: usize, param: [usize; 3]) -> usize;
+    unsafe fn hypercall2(&self, cmd: usize, param: [usize; 2]) -> usize;
+    unsafe fn hypercall1(&self, cmd: usize, param: usize) -> usize;
+    unsafe fn hypercall0(&self, cmd: usize) -> usize;
+
+    /* ... */
+}
+```
+
+### Hypercall-safe buffers
+
+One difficulty is that in a freestanding environment, we need to use pointers to
+original data. But in a hosted environment, we need to make special buffers instead
+for that.
+
+We introduce the Xen{Const/Mut}Buffer generic trait that wraps a reference in a
+"hypercall-safe" buffer that may or may not be a bounce buffer.
+
+```rust
+/// Wrapper of a reference into a hypercall-safe buffer.
+pub trait XenConstBuffer<T> {
+    /// Get a hypercall-safe reference to underlying data.
+    fn as_hypercall_ptr(&self) -> *const T;
+}
+
+/// Wrapper of a mutable reference into a mutable hypercall-safe buffer.
+pub trait XenMutBuffer<T> {
+    /// Get a hypercall-safe mutable reference to underlying data.
+    fn as_hypercall_ptr(&mut self) -> *mut T;
+
+    /// Update original reference with new data.
+    unsafe fn update(&mut self);
+}
+
+// The user will make those wrappers using dedicated functions in XenHypercall trait.
+
+trait XenHypercall: Sized {
+    /* ... */
+    type Error;
+
+    fn make_const_object<T: Copy + ?Sized>(
+        &self,
+        buffer: &T,
+    ) -> Result<impl XenConstBuffer<T>, Self::Error>;
+
+    fn make_mut_buffer<T: Copy + ?Sized>(
+        &self,
+        buffer: &mut T,
+    ) -> Result<impl XenMutBuffer<T>, Self::Error>;
+
+    fn make_const_slice<T: Copy + Sized>(
+        &self,
+        slice: &[T],
+    ) -> Result<impl XenConstBuffer<T>, Self::Error>;
+
+    fn make_mut_slice<T: Copy + Sized>(
+        &self,
+        slice: &mut [T],
+    ) -> Result<impl XenMutBuffer<T>, Self::Error>;
+}
+```
+
+Example use:
+
+```rust
+fn demo_hypercall<H: XenHypercall>(interface: &H, buffer: &mut [u8]) -> Result<(), H::Error> {
+    let buffer_size = buffer.len();
+    // make a hypercall-safe wrapper of `buffer`
+    let hyp_buffer = interface.make_mut_slice(buffer)?;
+
+    let op = SomeHypercallStruct {
+        buffer: hyp_buffer.as_hypercall_ptr(),
+        buffer_size: buffer_size as _,
+    };
+    // Do the same for hyp_op
+    let hyp_op = interface.make_const_object(&op)?;
+
+    unsafe {
+        interface.hypercall1(SOME_CMD, hyp_op.as_hypercall_ptr().addr());
+        // assume success
+        hyp_buffer.update(); // update buffer back
+    }
+
+    Ok(())
+}
+```
+
+Note that freestanding case, we can use a thin zero-copy wrapper :
+```rust
+/// Constant xen buffer that passes the reference as-is.
+pub(super) struct DirectConstXenBuffer<'a, T>(&'a T);
+
+impl<T> XenConstBuffer<T> for DirectConstXenBuffer<'_, T> {
+    fn as_hypercall_ptr(&self) -> *const T {
+        self.0
+    }
+}
+// ...
+```
+
+TODO:
+Do we need to clarify the lifetimes (e.g should trait indicate a lifetime binding with
+original data) ? Try to answer with RPITIT and Rust 2024 capture rules [4].
+
+Try to unify make_const_object and make_const_slice (along with mut variant). `*const [T]`
+is a bit more subtle to create and we cannot trivially cast a address into a pointer and
+need to use special functions for that (`core::ptr::slice_from_raw_parts` ?).
+But for that, we need to know that T is actually a slice before using this function.
+
+## Event channels
+
+TODO
+
+[1] - Interfacing Rust with Xen - Alejandro Vallejo, XenServer BU, Cloud Software Group
+https://youtu.be/iFh4n2kbAwM
+
+[2] - The Stream Trait
+https://rust-lang.github.io/async-book/05_streams/01_chapter.html
+
+[3] - Aliasing
+https://doc.rust-lang.org/nomicon/aliasing.html
+
+[4] - https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html
+https://rust-lang.github.io/rfcs/3498-lifetime-capture-rules-2024.html
-- 
2.45.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 Nov 22 14:36:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 14:36:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841923.1257393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEUlh-0001dV-01; Fri, 22 Nov 2024 14:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841923.1257393; Fri, 22 Nov 2024 14: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 1tEUlg-0001dO-T3; Fri, 22 Nov 2024 14:36:20 +0000
Received: by outflank-mailman (input) for mailman id 841923;
 Fri, 22 Nov 2024 14:36: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=M8TA=SR=codewreck.org=asmadeus@srs-se1.protection.inumbo.net>)
 id 1tEUlf-0001dI-2x
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 14:36:20 +0000
Received: from submarine.notk.org (submarine.notk.org [2001:bc8:3310:100::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 1ffad40e-a8df-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 15:36:14 +0100 (CET)
Received: from gaia.codewreck.org (localhost [127.0.0.1])
 by submarine.notk.org (Postfix) with ESMTPS id E1E2B14C1E1;
 Fri, 22 Nov 2024 15:36:09 +0100 (CET)
Received: from localhost (gaia.codewreck.org [local])
 by gaia.codewreck.org (OpenSMTPD) with ESMTPA id df0f998c;
 Fri, 22 Nov 2024 14:36: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: 1ffad40e-a8df-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMDE6YmM4OjMzMTA6MTAwOjoxIiwiaGVsbyI6InN1Ym1hcmluZS5ub3RrLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjFmZmFkNDBlLWE4ZGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjg2MTc0LjczMzc4Niwic2VuZGVyIjoiYXNtYWRldXNAY29kZXdyZWNrLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codewreck.org;
	s=2; t=1732286173;
	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=w8v3+aQO1zVNTDKznW1DiFi9l9+YX7MeVTMpaVHPOvE=;
	b=H9pW8oao5PKjueGtaVXyFvQ8wm/8qmT4yo9QeGkV5eRrBUvsTVNtF2Oqqy7rpW04CjGwiq
	y9/5ObirE/rFJocrKksXYSnhCpP0FfhO6QwaIR92CiD2R8r45kdnGbjfkFDOuuIuoRqUV9
	h6Wj8QVbhjQF/pcolpMhMNKrS3IlRV5PqjFapY528TnG9TaFOZkBRh1jhjuh/yodWfrA7B
	+vBZdEFa2XLDDxNgBdoWvoFMcERcTn0tz5CQmOn0RSCmFHaVpTfWxICqiaUSL0XyEUSCWl
	wCRswW2eU430Xw3NhFtdT5xTD+yOaj+4000L6gpSEvMosWAaqb+NLaqKNB4f0A==
Date: Fri, 22 Nov 2024 23:35:53 +0900
From: Dominique Martinet <asmadeus@codewreck.org>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Alexander Merritt <alexander@edera.dev>, v9fs@lists.linux.dev,
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	Eric Van Hensbergen <ericvh@kernel.org>,
	Latchesar Ionkov <lucho@ionkov.net>,
	Christian Schoenebeck <linux_oss@crudebyte.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alex Zenla <alex@edera.dev>, Ariadne Conill <ariadne@ariadne.space>
Subject: Re: [PATCH] 9p/xen: fix release of IRQ
Message-ID: <Z0CWyXuMiifOv7HO@codewreck.org>
References: <20241121225100.5736-1-alexander@edera.dev>
 <Zz_F9wMda68xhvKa@codewreck.org>
 <a6570b47-217c-4e92-a64c-16fc34494e3e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a6570b47-217c-4e92-a64c-16fc34494e3e@suse.com>

JÃ¼rgen GroÃŸ wrote on Fri, Nov 22, 2024 at 02:54:06PM +0100:
> > (style) I don't recall seeing much `a = b = 0` in the kernel, and
> > looking at it checkpatch seems to complain:
> > CHECK: multiple assignments should be avoided
> > #114: FILE: net/9p/trans_xen.c:290:
> > +		priv->rings[i].evtchn = priv->rings[i].irq = 0;
> > 
> > Please run checkpatch on the patches you send (b4 can do it for you if
> > you want to start using it)
> > 
> > 
> > code-wise,
> > I also don't see where unbinf_from_irqhandler would free the evtchn, so
> > is it leaking here, or is it implicit from something else?
> > We only free it explicitly on error binding the irq.
> 
> unbind_from_irqhandler()
>   unbind_from_irq()
>     __unbind_from_irq()
>       close_evtchn()

Thank you, I didn't go far enough.

And also, bah; I just spent 30 minutes thinking why would setting irq to
zero prevent anything, but the bulk of the patch was using the correct
device for unbind (as the commit correctly says, I just saw double-free
and setting something to 0 after free as being related)
I'll just remove this darned line, as the free function can't walk a
ring twice anyway.


Also this made me notice xen_9pfs_front_init calls xen_9pfs_front_free()
on error, but that init is part of a front_changed call and I'd bet
xen_9pfs_front_remove() will still be called afterwards.
If init failure ought to free then it probably should unset drvdata
first like remove, and remove (and possibly many other dev_get_drvdata
calls) should check for null; otherwise it's probably best to leave it
to remove to call free exactly once...

-- 
Dominique Martinet | Asmadeus


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 15:12:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 15:12:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841933.1257402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEVKm-0006uL-L1; Fri, 22 Nov 2024 15:12:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841933.1257402; Fri, 22 Nov 2024 15:12: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 1tEVKm-0006uE-Ht; Fri, 22 Nov 2024 15:12:36 +0000
Received: by outflank-mailman (input) for mailman id 841933;
 Fri, 22 Nov 2024 15:12: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=CazJ=SR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tEVKk-0006u8-UJ
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 15:12:35 +0000
Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com
 [2a00:1450:4864:20::242])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3024a9cc-a8e4-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 16:12:28 +0100 (CET)
Received: by mail-lj1-x242.google.com with SMTP id
 38308e7fff4ca-2fb59652cb9so24860911fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 07:12:28 -0800 (PST)
Received: from ?IPV6:2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c?
 (p200300e5872eb100d3c7e0c05e3baa1c.dip0.t-ipconnect.de.
 [2003:e5:872e:b100:d3c7:e0c0:5e3b:aa1c])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3a342asm1007101a12.15.2024.11.22.07.12.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Nov 2024 07:12: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: 3024a9cc-a8e4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyNDIiLCJoZWxvIjoibWFpbC1sajEteDI0Mi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwMjRhOWNjLWE4ZTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjg4MzQ4LjY5ODI0Niwic2VuZGVyIjoiamdyb3NzQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732288348; x=1732893148; 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=74Ph7kh+W5x7/AcL1lQiJ4oXIO7Zaf5Kz+1+y8dO/iE=;
        b=XQlpuWFuTjXamrjTl2l7NOLu3HJG2E5X6IDotCsUbLp0pOdZgQhQjEzaSu1JGUF1mX
         rTVKhf7PEhFs+yGL966kwxqYfZsTOJTC2YSElnjW1Emu4ZGciVG4sBjr7VGekYRp2qoE
         UaoPNly2rknTT389Y33s5F/v/7T8fF/AjBbaCun4jpadYa90iMleQvnrGko1e+luJ22k
         zWejuIHTv9rOqivkucOVQanWmruvNKWPDyweMb8TYD5wRCuu3ji0VMzm35JBxZg9pwPP
         X94SMLgrltBMDHHmn7L2YD8qWpyYpR9O96SvmBcLy6wk3klSf9CE0MeweCXUkhrJs9MD
         KehQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732288348; x=1732893148;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=74Ph7kh+W5x7/AcL1lQiJ4oXIO7Zaf5Kz+1+y8dO/iE=;
        b=vVferwwWUEjFa+6U9pc4GRX4A8QOhH/izsMDUEkTee6JqO69QlVWXBEotUHiIvTMot
         Y1AmjVHUAEHMcIIbL2mWS82LzvmzTEXjd9YHLUYCQbqbJV2i6VenyDKtDKuWZ8/vCsHD
         Q3ZyxakV06KU3LrfxpRTUxLi0kWpqjO4wlsV5Rpg6evOKHL0+ieeY69mXZQXj9YNe8PU
         0tgFA1078TNiYOi4f49FliOY5gRto1zT0At9YhmAdSlA1K6s4ELfXkVS8MMhtcZTvJbS
         zSTDtcRP8KML5qu+7ErrcgKV+lw6XzF4PCmwNmcSTe3sPMtlJLvRU0GU2bxLh9bj51JE
         VB6Q==
X-Gm-Message-State: AOJu0YxNBihAxQmQe/UAlnyvu+AoEXCwvcnwoPUL2znkCGcjrXkHs2Iw
	EShty8K3N0ssjjyyYghTLraNOWahaWHAytUAH6get34VPIcXQgGSxpalj3lJx8Q=
X-Gm-Gg: ASbGnctPuBRAhmX5JIogxgSD3V2KicaeRETfVRcPYMGNeSXSb/9/sj3HR8v7whQfAC8
	bPLol63SdzP78uekQewDN00CKhWkSJ7NiF3oaL2KyEyQItFSMpe0kZZZUVHeZFjWQ3lBluVkN4s
	iDzktjQozcS9mpzeL0sn4MbQ/PMiD4HRXuYuUOx0WFLNbRuR/5F+NpmQqr2yedlZOIAwPGfKhRf
	pmqzbsTpKtCEMWtGZW+u+UNuiKQm1XxmUIlF7dGi3d9JgsDZpsxXQemi3364MqfKNpNykAEcqpG
	6lv8OB3tEetKM+P3fgsPMOMEERNdsBrl/rjSTl1pV2/T2xMtCOc1obrc/hFVQu8LFj5bY1LLAk0
	=
X-Google-Smtp-Source: AGHT+IGX3uEqVA5Bn8+el9xIKhxlOcf4TbH0RVjzwSN3sSvPAB9Nr6b47LT2V7aDVCxQGUg1BbRz0Q==
X-Received: by 2002:a2e:bccd:0:b0:2fb:593c:2bf2 with SMTP id 38308e7fff4ca-2ffa70f6ab8mr17490101fa.3.1732288346426;
        Fri, 22 Nov 2024 07:12:26 -0800 (PST)
Message-ID: <1846da14-f942-4414-8776-d76019fba37f@suse.com>
Date: Fri, 22 Nov 2024 16:12:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] tools/libs: add a new libxenmanage library
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-5-jgross@suse.com> <Z0CNNdezcIbUelrk@l14>
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: <Z0CNNdezcIbUelrk@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------7vZZ8Ma8IvEewoJjirfu16xp"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------7vZZ8Ma8IvEewoJjirfu16xp
Content-Type: multipart/mixed; boundary="------------cMmNDwkHVjn9UBzf50Zt0uHz";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org
Message-ID: <1846da14-f942-4414-8776-d76019fba37f@suse.com>
Subject: Re: [PATCH 4/6] tools/libs: add a new libxenmanage library
References: <20241023131005.32144-1-jgross@suse.com>
 <20241023131005.32144-5-jgross@suse.com> <Z0CNNdezcIbUelrk@l14>
In-Reply-To: <Z0CNNdezcIbUelrk@l14>

--------------cMmNDwkHVjn9UBzf50Zt0uHz
Content-Type: multipart/mixed; boundary="------------tY0GMx6V2FOO044swXVOa1i5"

--------------tY0GMx6V2FOO044swXVOa1i5
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gMjIuMTEuMjQgMTQ6NTUsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBIaSBKdWVyZ2Vu
LA0KPiANCj4gT24gV2VkLCBPY3QgMjMsIDIwMjQgYXQgMDM6MTA6MDNQTSArMDIwMCwgSnVl
cmdlbiBHcm9zcyB3cm90ZToNCj4+IEluIG9yZGVyIHRvIGhhdmUgYSBzdGFibGUgaW50ZXJm
YWNlIGluIHVzZXIgbGFuZCBmb3IgdXNpbmcgc3RhYmxlDQo+PiBkb21jdGwgYW5kIHBvc3Np
Ymx5IGxhdGVyIHN5c2N0bCBpbnRlcmZhY2VzLCBhZGQgYSBuZXcgbGlicmFyeQ0KPj4gbGli
eGVubWFuYWdlLg0KPiANCj4gV2hhdCB0aGlzIG5ldyBsaWJyYXJ5IGNvdWxkIGRvPyBXaGF0
IHNvcnQgb2Ygb3BlcmF0aW9uIGNvdWxkIGJlIGFkZGVkIGluDQo+IHRoZSBmdXR1cmU/IERv
bWFpbiBjcmVhdGlvbj8gSSdtIHRyeWluZyB0byBnZXQgY29udmluY2UgdGhhdCAibWFuYWdl
IiBpcw0KPiB0aGUgcmlnaHQgbmFtZSBmb3IgaXQuDQoNCkl0IGlzIHRob3VnaHQgdG8gZW5j
YXBzdWxhdGUgYWxsIChmdXR1cmUpIHN0YWJsZSBoeXBlcmNhbGxzIHJlcGxhY2luZw0KY3Vy
cmVudCBzeXNjdGwgYW5kIGRvbWN0bCBvcGVyYXRpb25zLg0KDQo+IFRvIG1lLCAibWFuYWdl
IiBjb3VsZCBiZSBzb21ldGhpbmcgaGlnaGVyIGxldmVsIHRvIHRha2UgY2FyZSBvZiBhIGRv
bWFpbg0KPiBmcm9tIGl0J3MgY3JlYXRpb24gdG8gaXRzIGRlbWlzZS4NCg0KWWVzLCBhbmQg
dG8gbWFuYWdlIHRoZSBob3N0Lg0KDQo+IFNvIGZvciB0aGlzIGxpYiBoYXZlIGdldF9kb21h
aW5faW5mbygpIHRvIHF1ZXJ5IGFib3V0IGEgc2luZ2xlIGRvbWFpbiwNCj4gYW5kIGdldF9j
aGFuZ2VkX2RvbWFpbigpIHdoaWNoIHNlZW1zIHRvIGJlIGEgc3RhdGUgc3luY2hyb25pc2F0
aW9uDQo+IG9wZXJhdGlvbi4gKEZvciB0aGF0IHNlY29uZCBmdW5jdGlvbiwgaXQgcmVzZW1i
bGUgYW4gb3BlcmF0aW9uIG9mIHRoZQ0KPiBNYXRyaXggQVBJIGNhbGxpbmcgImh0dHBzOi8v
Li4uL3N5bmMiIHdoaWNoIHJldHVybiBhbGwgdGhlIG5ldyBldmVudA0KPiBzaW5jZSB0aGUg
bGFzdCB0aW1lIGl0IHdhcyBjYWxsZWQuIEJ1dCBiYWNrIHRvIHRoZSBuZXcgZnVuY3Rpb24g
bmFtZSwgYQ0KPiBnZXQqIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYSBkaWZmZXJlbnQgdmFs
dWUgZXZlcnkgdGltZSB5b3UgY2FsbCBpdA0KPiBtaWdodCBub3QgYWN0dWFsbHkgYmUgdGhl
IHJpZ2h0IG5hbWUgZm9yIGl0LCBtYXliZSBvdGhlciBmdW5jdGlvbnMgdGhhdA0KPiBkbyBz
b21ldGhpbmcgc2ltaWxhciwgb3IgYXQgbGVhc3QgdGVsbCB3aGVuIHRoZXJlJ3MgYSBuZXcg
ZXZlbnQsIHdvdWxkDQo+IGJlIHBvbGwoKSBhbmQgc2VsZWN0KCksIHNvIG1heWJlIHBvbGxf
Y2hhbmdlZF9kb21haW4oKSB3b3VsZCBiZSBzbGlnaHRseQ0KPiBiZXR0ZXIgYXQgZGVzY3Jp
YmluZyB0aGUga2luZCBvZiBmdW5jdGlvbiB0aGF0IGl0IGlzPykNCg0KRmluZSB3aXRoIG1l
LiBJJ20gYWx3YXlzIGluIGZhdm9yIG9mIGRlc2NyaXB0aXZlIG5hbWVzLg0KDQo+IFNvLCB0
aG9zZSB0d28gZnVuY3Rpb25zIG9ubHkgcXVlcnkgYWJvdXQgdGhlIHN0YXRlcyBvZiBkb21h
aW5zLCB3aXRob3V0DQo+IG1ha2luZyBhbnkgbW9kaWZpY2F0aW9uIGlzIHNlZW1zLCBzbyBp
cyAibWFuYWdlIiBzdGlsbCB0aGUgcmlnaHQgbmFtZT8NCj4gQXQgbGVhc3QsIGl0IGJvdGgg
ZnVuY3Rpb24gZG9lc24ndCBzZWVtcyB0byBmaXQgaW4gZXhpc3Rpbmcgc3RhYmxlDQo+IGxp
YnJhcmllcyBzbyBoYXZpbmcgYSBuZXcgb25lIHNlZW1zIHRoZSByaWdodCBjYWxsLiBTbyB0
aGUgbmFtZQ0KPiBkZXBlbmRzIG9mIHdoYXQgb3RoZXIgb3BlcmF0aW9uIGNvdWxkIGJlIGFk
ZGVkIHRvIHRoZSBsaWJyYXJ5LCBhcyBzdWNoLA0KPiBhIGRlc2NyaXB0aW9uIG9mIHRoZSBs
aWJyYXJ5IHdvdWxkIGJlIG5pY2UsIGJ1dCBhdCBsZWFzdCB0aGFua3MgZm9yDQo+IGRvY3Vt
ZW50aW5nIGV2ZXJ5IGZ1bmN0aW9ucyENCg0KSSBjYW4gYWRkIG1vcmUgY29tbWVudHMsIG9m
IGNvdXJzZS4gVGhpcyB3YXMganVzdCBhIGZpcnN0IGl0ZXJhdGlvbiB0bw0KZ2V0IHNvbWUg
ZmVlZGJhY2sgd2hldGhlciB0aGUgZ2VuZXJhbCBhcHByb2FjaCBpcyBva2F5Lg0KDQo+IA0K
Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUveGVubWFuYWdlLmggYi90b29scy9pbmNs
dWRlL3hlbm1hbmFnZS5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAw
MDAwMDAwMC4uMmU2YzNkZWRhYQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvdG9vbHMv
aW5jbHVkZS94ZW5tYW5hZ2UuaA0KPj4gQEAgLTAsMCArMSw5OCBAQA0KPj4gKy8qDQo+PiAr
ICogQ29weXJpZ2h0IChjKSAyMDI0IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkg
R21iSA0KPj4gKyAqDQo+PiArICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KPj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCj4+ICsgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOw0KPj4g
KyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLg0KPj4gKyAqDQo+PiArICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsDQo+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YNCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQ0KPj4gKyAqIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+PiArICoNCj4+
ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljDQo+PiArICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiANCj4g
U2hhbGwgd2UgdXNlIFNQRFggdGFncyBpbnN0ZWFkIG9mIHRoaXMgYm9pbGVycGxhdGU/DQoN
Ck15IHRoaW5raW5nIHdhcyB0byBhdm9pZCB0aGF0IGZvciAib2ZmaWNpYWwiIGhlYWRlciBm
aWxlcywgYXMgdGhvc2UgbWlnaHQNCmJlIGNvcGllZCB2ZXJiYXRpbSB0byBvdGhlciBwcm9q
ZWN0cywgd2hpY2ggbWlnaHQgbm90IHVzZSBTUERYLiBTbyBoYXZpbmcNCnRoZSBsaWNlbnNl
IHRleHQgdmVyYmF0aW0gYXZvaWRzIGFueSBwcm9ibGVtcyBpbiB0aGlzIHJlZ2FyZC4NCg0K
PiANCj4+ICsgKi8NCj4+ICsjaWZuZGVmIFhFTk1BTkFHRV9IDQo+PiArI2RlZmluZSBYRU5N
QU5BR0VfSA0KPj4gKw0KPj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4+ICsNCj4+ICsvKiBD
YWxsZXJzIHdobyBkb24ndCBjYXJlIGRvbid0IG5lZWQgdG8gI2luY2x1ZGUgPHhlbnRvb2xs
b2cuaD4gKi8NCj4+ICtzdHJ1Y3QgeGVudG9vbGxvZ19sb2dnZXI7DQo+IA0KPiBNb3JlIGxp
a2UsIGNhbGxlcnMgd2hvIGNhcmUgd2lsbCBuZWVkIHRvIGluY2x1ZGUgeGVudG9vbGxvZy5o
LiBIZXJlLCB3ZQ0KPiBqdXN0IGF2b2lkIHRoZSBuZWVkIHRvIGluY2x1ZGUgeGVudG9vbGxv
Zy5oIGluIHhlbm1hbmFnZS5oIGJ5IGRlY2xhcmluZw0KPiB0aGUgbWluaW11bS4NCj4gDQo+
IElmIGV2ZXJ5IHRpbWUgSSB3YW50ZWQgdG8gaW5jbHVkZSBhbiBoZWFkZXIsIEkgbmVlZGVk
IHRvIGZpZ3VyZSB3aGljaA0KPiBoZWFkZXIgbmVlZGVkIHRvIGJlIGluY2x1ZGUgYmVmb3Jl
LCB0aGF0IHdvdWxkIGJlIHZlcnkgYW5ub3lpbmcuIE9mdGVuLA0KPiBoZWFkZXJzIGluY2x1
ZGUgdGhlIG5lZWRlZCBoZWFkZXJzLg0KPiANCj4gSWYgeW91IHdhbnQgdG8gaGF2ZSBhIGNv
bW1lbnQsIGhvdyBhYm91dCAiQXZvaWQgdGhlIG5lZWQgdG8gaW5jbHVkZQ0KPiA8eGVudG9v
bGxvZy5oPiIsIHRoYXQgd2F5IHRoZSBjb21tZW50IHRlbGwgd2h5ICJzdHJ1Y3QNCj4geGVu
dG9vbGxvZ19sb2dnZXIiIGlzIGhlcmUsIHdoZXJlIGl0IGNhbWUgZnJvbSwgYW5kIGlzIG1v
cmUgZXhwbGljaXQuDQoNCk9rYXkuDQoNCj4+IGRpZmYgLS1naXQgYS90b29scy9saWJzL21h
bmFnZS9jb3JlLmMgYi90b29scy9saWJzL21hbmFnZS9jb3JlLmMNCj4+IG5ldyBmaWxlIG1v
ZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi4wYzkxOTlmODI5DQo+PiAtLS0gL2Rl
di9udWxsDQo+PiArKysgYi90b29scy9saWJzL21hbmFnZS9jb3JlLmMNCj4+IEBAIC0wLDAg
KzEsMTcwIEBADQo+IC4uLg0KPj4gKw0KPj4gKyNkZWZpbmUgX19YRU5fVE9PTFNfXyAxDQo+
IA0KPiBUaGlzIGRlZmluZSBtaWdodCBiZSBiZXR0ZXIgaW4gdGhlIE1ha2VmaWxlKC5jb21t
b24pLCBvciBldmVuIGluIGxpYnMubWs/IFNvIGZhciwNCj4gb25seSBsaWJ4ZW5oeXBmcyBk
b2VzIGRlZmluZSB0aGlzIGluIHNvdXJjZSBjb2RlLCBhbGwgdGhlIG90aGVyIGRlZmluZXMN
Cj4gYXJlIGluIENGTEFHUyBvciB0aGVyZSBiZWNhdXNlIHhlbmN0cmwuaCBpcyBpbmNsdWRl
ZC4NCg0KWWVzLCB0aGF0J3MgYmV0dGVyLg0KDQo+PiArc3RhdGljIGludCB4ZW5tYW5hZ2Vf
ZG9fZG9tY3RsX2dldF9kb21haW5fc3RhdGUoeGVubWFuYWdlX2hhbmRsZSAqaGRsLA0KPj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBkb21pZF9pbiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmRvbWlkX291dCwNCj4+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
KnN0YXRlLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQ2NF90ICp1bmlxdWVfaWQpDQo+PiArew0KPj4gKyAgICBzdHJ1Y3QgeGVu
X2RvbWN0bCAqYnVmOw0KPj4gKyAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRfZG9tYWluX3N0
YXRlICpzdDsNCj4+ICsgICAgaW50IHNhdmVkX2Vycm5vOw0KPj4gKyAgICBpbnQgcmV0Ow0K
Pj4gKw0KPiAuLi4NCj4+ICsNCj4+ICsgICAgcmV0ID0geGVuY2FsbDEoaGRsLT54Y2FsbCwg
X19IWVBFUlZJU09SX2RvbWN0bCwgKHVuc2lnbmVkIGxvbmcpYnVmKTsNCj4+ICsgICAgc2F2
ZWRfZXJybm8gPSBlcnJubzsNCj4+ICsgICAgaWYgKCAhcmV0ICkNCj4+ICsgICAgew0KPj4g
KyAgICAgICAgc3QgPSAmYnVmLT51LmdldF9kb21haW5fc3RhdGU7DQo+IA0KPiBZb3UgY291
bGQgZGVmaW5lICpzdCBoZXJlLg0KPiBzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRfZG9tYWluX3N0
YXRlICpzdCA9ICYuLi47DQo+IA0KPiBPciBldmVuIHdpdGggIi4uICpjb25zdCBzdCIgYnV0
IG1heWJlIHRoYXQncyBub3QgY29tbW9uIGVub3VnaCBpbiBDDQo+IGNvZGUuDQoNCk9rYXks
IEknbGwgbW92ZSB0aGUgZGVmaW5pdGlvbiBkb3duLg0KDQoNCkp1ZXJnZW4NCg==
--------------tY0GMx6V2FOO044swXVOa1i5
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-----

--------------tY0GMx6V2FOO044swXVOa1i5--

--------------cMmNDwkHVjn9UBzf50Zt0uHz--

--------------7vZZ8Ma8IvEewoJjirfu16xp
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/Ey8FAmdAn1kFAwAAAAAACgkQsN6d1ii/Ey/K
zAf/cQyrrcV/l1J/m8ALw3xRMjG1+BUANyfL9NaqPQsP9SlvSUGTdSDLIcuaD61i0bfWSV+wEllU
yZ+PIsmKNodYEXXtIK6AT4ut/9b6GImxI3z1YaH7dXQto8l/G28T0f8L6sfh3iJtIr0Wyd/xsmYe
eoeEJuOsKhVk3+9IwbOK9hhQOr+gxTJWI6M+bBbRxynPRE11qAR6g371C+wlz1NrulR2Nc5U44hL
F9kFX552aTNJr8He/e/0D0sjfTHJC0amh1/Pmf6TVas3FbQivigBOVIF4SiFA+ugjy8TfmRzEA7x
nEHLztxU5byh2ZxsEToaZjlpeum7R1WLSa0dO6Bwuw==
=UL8T
-----END PGP SIGNATURE-----

--------------7vZZ8Ma8IvEewoJjirfu16xp--


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 15:19:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 15:19:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841944.1257414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEVRi-0007aM-F5; Fri, 22 Nov 2024 15:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841944.1257414; Fri, 22 Nov 2024 15:19: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 1tEVRi-0007aF-AQ; Fri, 22 Nov 2024 15:19:46 +0000
Received: by outflank-mailman (input) for mailman id 841944;
 Fri, 22 Nov 2024 15:19: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=JvYz=SR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tEVRg-0007a9-Bm
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 15:19:44 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30599a52-a8e5-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 16:19:38 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2fb5111747cso26806091fa.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 07:19:38 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b52fe94sm110268766b.96.2024.11.22.07.19.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 07:19: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: 30599a52-a8e5-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzIiLCJoZWxvIjoibWFpbC1sajEteDIzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjMwNTk5YTUyLWE4ZTUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjg4Nzc4LjUxMjgyMywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732288778; x=1732893578; 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=nuM013zxcMBhaTjQpIKcYjopYLoD/j3oW8CjHL2l0N8=;
        b=Livl4zuF7O0waKy7XHUqJkzbXXOriX+keoLPEntKehvSgMmy8JjLVVLDiXf8VrzcRe
         7gPlKYw7ynri4wA+rlynT99BBY6H8FNkpSXX/1Xkjr2xgFmMbCzste3iYqcaVA6nZ7oz
         1/ImefnE/wRCuiedF1s6+s3I0vLcO5Cz0NgjHnCFEy8eTFS34aRFYZhsnxF/4Izdwssx
         nWDwHcdZvInB6iqe/qNoLchH/j2bGYhBd4zpzFFbvItVFnLnFp4EJ/9nqhMiFqAwH7Wg
         79V0ACeHgZO57o5A+PxPQL8qgY9QAt1vpOTXAKWIRNGsC65hKVGxyy/rhJUkjHNf3KLf
         Y64w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732288778; x=1732893578;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=nuM013zxcMBhaTjQpIKcYjopYLoD/j3oW8CjHL2l0N8=;
        b=qeL+afZd9ogIKW4C8UwUezDt+d04KAAhWPlGGckEd4CSztqKVsAK9YMKXOJxV7+QV4
         3OqKYP1pkvTznIZCH8n2AGVnbc0lEqZT1y7QIUgpt/g0u5hUAjuxnezx+TQQdn8cAGz+
         3FBX/2bhnDIXsg7ucEaJIzMyYEEumtIObS7+urvTkSP6Yu/YDetq3HR9U20O2JP6ZSnF
         ul6vcKPadMG2mmv10vbqcCfZuQ1+1XoNIxAxzjf9LWcwBADCLbbq5FlavZlVHO2grMab
         aFxEexhY022HlnJD3AJuwqhgYwz32QNHCrx0dt02x5+XeCOg8onvoyaqLvsrhDSlCXpq
         uiSg==
X-Gm-Message-State: AOJu0YxDueNnMoHqLjwQopCXxE3/2JdoTI0aLeOk5BRsgL42JWlO0Ma5
	kNIG3bfpAiVAiTIjpoDApmUTffu+3/XxqPI4A2loLWeEpyCcK/NTouR7AA==
X-Gm-Gg: ASbGncvO1/gTMAhLBFcyfbRn7z1gvu8gEAd9EqoG1ATe8/i+tpFAiA6gz4ZxgGu+wHj
	fE0KEks3EQJ3BRKdQQBZF+BjxjBMkUgPkUvaAvLsynwvVJNkJqNKmLkPkGvxB05y7qMZlhfQWuU
	xD97Zue0jLyo6ePH4zA/YNaXRTBkZx3FzkotZO/oqjmvkfSCO0eWYiJ+++QIvCQylIrMCZ2XZyU
	P6x0lW7qnUKrGkGDEDQz4vmsUsnY7eIHr5JozgBs6h97ccMAVA=
X-Google-Smtp-Source: AGHT+IHJUYEGAhWPSkkJT6y3hsJZ0p+KvGum3Vld0p0jzMZ973GaXmq03iaVKM0OJAsyarysJC7dlA==
X-Received: by 2002:a2e:be8b:0:b0:2fb:6465:3198 with SMTP id 38308e7fff4ca-2ffa70f6acfmr18106261fa.5.1732288777319;
        Fri, 22 Nov 2024 07:19:37 -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 v5] xen/common: Move gic_dt_preinit() to common code
Date: Fri, 22 Nov 2024 16:19:34 +0100
Message-ID: <151ac176ff02d2ff9b7f87e3c02b9ce0472720fa.1732288620.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce intc_dt_preinit() in the common codebase, as it is not
architecture-specific and can be reused by both PPC and RISC-V.
This function identifies the node with the interrupt-controller property
in the device tree and calls device_init() to handle architecture-specific
initialization of the interrupt controller.

Make minor adjustments compared to the original ARM implementation of
gic_dt_preinit():
 - Remove the local rc variable in gic_dt_preinit() since it is only used once.
 - Change the prefix from gic to intc to clarify that the function is not
   specific to ARMâ€™s GIC, making it suitable for other architectures as well.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5:
 - Fix a typo in panic()'s message: s/contoller/controller/
 - Remove splitting of panic() message.
 - Add EMACS block at the end of intc.c.
 - Drop stub and guards around declaration of intc_dt_preinit() in
   xen/device_tree.h.
---
Changes in v4:
 - Add SPDX tag in intc.c
 - s/num_gics/num_intc
 - Update the comment: s/GIC/interrupt controller.
---
Changes in v3:
 - s/ic/intc.
 - Update the commit message.
 - Move intc_dt_preinit() to common/device-tree/intc.c.
 - Add declaration of intc_dt_preinit() in xen/device_tree.h.
 - Revert intc_preinit()-related changes and just back gic_preinit() in
   Arm's gic.c.
 - Revert ACPI-related changes.
---
Changes in v2:
 - Revert changes connected to moving of gic_acpi_preinit() to common code as
   it isn't really architecture indepent part.
 - Update the commit message.
 - Move stub of ic_acpi_preinit() to <asm-generic/device.h> for the case when
   CONFIG_ACPI=n.
---
 xen/arch/arm/gic.c              | 32 +-----------------------
 xen/common/device-tree/Makefile |  1 +
 xen/common/device-tree/intc.c   | 43 +++++++++++++++++++++++++++++++++
 xen/include/xen/device_tree.h   |  2 ++
 4 files changed, 47 insertions(+), 31 deletions(-)
 create mode 100644 xen/common/device-tree/intc.c

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 3eaf670fd7..acf61a4de3 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -214,36 +214,6 @@ int gic_map_hwdom_extra_mappings(struct domain *d)
     return 0;
 }
 
-static void __init gic_dt_preinit(void)
-{
-    int rc;
-    struct dt_device_node *node;
-    uint8_t num_gics = 0;
-
-    dt_for_each_device_node( dt_host, node )
-    {
-        if ( !dt_get_property(node, "interrupt-controller", NULL) )
-            continue;
-
-        if ( !dt_get_parent(node) )
-            continue;
-
-        rc = device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL);
-        if ( !rc )
-        {
-            /* NOTE: Only one GIC is supported */
-            num_gics = 1;
-            break;
-        }
-    }
-    if ( !num_gics )
-        panic("Unable to find compatible GIC in the device tree\n");
-
-    /* Set the GIC as the primary interrupt controller */
-    dt_interrupt_controller = node;
-    dt_device_set_used_by(node, DOMID_XEN);
-}
-
 #ifdef CONFIG_ACPI
 static void __init gic_acpi_preinit(void)
 {
@@ -269,7 +239,7 @@ static void __init gic_acpi_preinit(void) { }
 void __init gic_preinit(void)
 {
     if ( acpi_disabled )
-        gic_dt_preinit();
+        intc_dt_preinit();
     else
         gic_acpi_preinit();
 }
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 58052d074e..7c549be38a 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -2,3 +2,4 @@ obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
 obj-y += device-tree.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
+obj-y += intc.o
diff --git a/xen/common/device-tree/intc.c b/xen/common/device-tree/intc.c
new file mode 100644
index 0000000000..b09fbf6a49
--- /dev/null
+++ b/xen/common/device-tree/intc.c
@@ -0,0 +1,43 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+
+void __init intc_dt_preinit(void)
+{
+    struct dt_device_node *node;
+    uint8_t num_intc = 0;
+
+    dt_for_each_device_node( dt_host, node )
+    {
+        if ( !dt_get_property(node, "interrupt-controller", NULL) )
+            continue;
+
+        if ( !dt_get_parent(node) )
+            continue;
+
+        if ( !device_init(node, DEVICE_INTERRUPT_CONTROLLER, NULL) )
+        {
+            /* NOTE: Only one interrupt controller is supported */
+            num_intc = 1;
+            break;
+        }
+    }
+
+    if ( !num_intc )
+        panic("Unable to find compatible interrupt controller in the device tree\n");
+
+    /* Set the interrupt controller as the primary interrupt controller */
+    dt_interrupt_controller = node;
+    dt_device_set_used_by(node, DOMID_XEN);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index e6287305a7..5ff763bb80 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -238,6 +238,8 @@ extern rwlock_t dt_host_lock;
 struct dt_device_node *
 dt_find_interrupt_controller(const struct dt_device_match *matches);
 
+void intc_dt_preinit(void);
+
 #define dt_prop_cmp(s1, s2) strcmp((s1), (s2))
 #define dt_node_cmp(s1, s2) strcasecmp((s1), (s2))
 #define dt_compat_cmp(s1, s2) strcasecmp((s1), (s2))
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 16:34:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 16:34:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841958.1257422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEWbn-0000po-Mb; Fri, 22 Nov 2024 16:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841958.1257422; Fri, 22 Nov 2024 16:34: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 1tEWbn-0000ph-Jx; Fri, 22 Nov 2024 16:34:15 +0000
Received: by outflank-mailman (input) for mailman id 841958;
 Fri, 22 Nov 2024 16:34: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=Ep2p=SR=bounce.vates.tech=bounce-md_30504962.6740b27e.v1-a31070d2a5534cdba6a139ac35c3f248@srs-se1.protection.inumbo.net>)
 id 1tEWbl-0000pb-RY
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 16:34:14 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97c9157c-a8ef-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 17:34:07 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xw0zf1FwnzG0CSN8
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 16:34:06 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a31070d2a5534cdba6a139ac35c3f248; Fri, 22 Nov 2024 16:34: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: 97c9157c-a8ef-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk3YzkxNTdjLWE4ZWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMjkzMjQ3Ljg2MTA5Niwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDBiMjdlLnYxLWEzMTA3MGQyYTU1MzRjZGJhNmExMzlhYzM1YzNmMjQ4QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732293246; x=1732553746;
	bh=CxIlHsYgIuCCv+drcwRIX/K6ZdsEnVb652U/edEcHGw=;
	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=GOUSOOjTXKDKp8RC2QvTFsSr4FkDBrI2VNVX5EKJxEiQXbi/kk1IyqHMPs7QS/gPA
	 ChraVFWaMgibP8oTEwFVE6I/WhXsTOVemtrcQ1tjPBnyilFwPXCdKCB2UWYUJ7GedC
	 biHmWUOCpFh0oHCHfUoaBwVYXwFmFffkCQ2hO375xkB9lOkP6Bl5UTczdOCmiKS8LV
	 Vtt2KslpEN6CdiaRMtYTASKP7rnDj2J5txQvsmh/Zequb9Y60nz0xUs+4cxkFz51z/
	 WtEHvcyt/GaWbMt2ByhmxLsNeCmRmsxtcUwOiQiyaKBgf5BRY6JnBJM/kCgsQe6lI4
	 KphQaVjGej05A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732293246; x=1732553746; i=anthony.perard@vates.tech;
	bh=CxIlHsYgIuCCv+drcwRIX/K6ZdsEnVb652U/edEcHGw=;
	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=oC+1naX7hOLsmCztL/822fuVDZNuMGscYGRJIQTPF0wXEwNoxby1H18H1xgu4cHY+
	 kdwSlwtn4Klq+GAP8SGjTIJVudVE2/j9hahR3fu7KAkvSWwcBu3+nX5RyIcypdESRA
	 igPfDOFJqcN/nPVG3ngSpIdj4kjHWiBfxAvWIuKZRCEu91brliCgdlSqZ2dIRkrglb
	 0g+zU1OlBGEBshvfuyhWt+Fh5DNeRcbE1V65bv4AOQMPWSxX3eVy7uurlOC5L5BJZ9
	 huWyoutzO06kONrN2oKQq5bXnopPNdLX2SgPYL0WIBgxJ+pki0GBJRnWbT23g++VnC
	 EePnHeeHpxpQA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2000/25]=20Introduce=20xenbindgen=20to=20autogen=20hypercall=20structs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732293244525
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Christian Lindig" <christian.lindig@citrix.com>, "David Scott" <dave@recoil.org>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Michal Orzel" <michal.orzel@amd.com>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, =?utf-8?Q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Samuel Thibault" <samuel.thibault@ens-lyon.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "Tim Deegan" <tim@xen.org>, "Lukasz Hawrylko" <lukasz@hawrylko.pl>, =?utf-8?Q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>, "Doug Goldstein" <cardoe@cardoe.com>, "Teddy Astie" <teddy.astie@vates.tech>, "Yann Dirson" <yann.dirson@vates.tech>
Message-Id: <Z0Cye-0TEzvdu61W@l14>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com> <Zz9yEUj1_t1SSKE_@l14> <D5SQEZIL2SZV.QR3X5MRVQJJP@cloud.com>
In-Reply-To: <D5SQEZIL2SZV.QR3X5MRVQJJP@cloud.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.a31070d2a5534cdba6a139ac35c3f248?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241122:md
Date: Fri, 22 Nov 2024 16:34:06 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Nov 22, 2024 at 01:12:24PM +0000, Alejandro Vallejo wrote:
> On Thu Nov 21, 2024 at 5:47 PM GMT, Anthony PERARD wrote:
> > On Fri, Nov 15, 2024 at 11:51:29AM +0000, Alejandro Vallejo wrote:
> > > This series is the result of my "Interfacing Rust with Xen" talk in Xen Summit.
> > > It adds a hypercall ABI IDL parser and generator to the xen tree, replaces a
> > > couple of existing hypercalls, creates a Rust crate with autogenerated contents
> > > an creates a CI job to ensure nothing goes out of sync.
> > >
> > > The changes are fairly invasive because the various autogenerated items appear
> > > in many places (specially the domaincreate flags). However, the changes to the
> > > hypervisor are all mechanical and not functional (not intentionally so, at
> > > least).
> >
> > I tried to build QEMU with this series applied, and the build failed. In
> > this case nothing important, the "autogen" directory just need to be
> > installed. But I fear the changes introduce to the API (like change
> > of case for the flags) will also be done to other API that project
> > outside of the xen repo use, and thus introduce unneeded breakage.
> 
> That's bizarre, I run the series in CI and it came out green.
> 
>   https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/1543402100
> 
> And I can do `make dist` without issues locally.
> 
> There might be some flaky dependency somewhere. I admit I'm not sure how the
> headers are installed for the QEMU build.

So, I'm pretty sure the CI have QEMU been built via Xen's build system.
As such, we set $PKG_CONFIG_PATH to "tools/pkg-config". And I think
QEMU's build system will just use that pkgconfig and exctract the
include path from it, and it point to the in-tree include directory,
which has the "autogen" symlink.

What I often do is `make dist`, and then build QEMU with that created
dist directory. It's almost like installing Xen on my system and trying
to build QEMU.

> > Should the changes also introduce a compatibility with the previous API?
> 
> Jan mentioned something to that effect when I first proposed the change to
> grant_opts, but at the time the why was a bit lacking in substance. I then sent
> this whole thing to show the why in context.

Yes, I've seen that other series after this one, and it help to explain
why some change help. Like the one changing the case of the flags.

> A more compatible alternative would be to retroactively widen the single
> subfield inside *_opts to occupy the whole field. Then we can suitably extend
> the masking macros to u32, keep them around for compatibility (outside the
> autogenerated stuff; say, in xen.h) and the API would be preserved.
> 
> Does that sound like a better approach?

I don't know. For flags, having macro/define/const with the old name
would be fairly easy to provide. For new fields on the other end, it
might just be better to break the build and require some adjustment.

> That said, I was under the impression the API to be maintained was in libxl and
> everything else was fair game so long as libxc et al. were suitably updated.
> 
> What do we actually promise externally?

I don't know to be honest, breaking the API might be ok. Quite often,
whenever we want to interface with Xen, we copy the Xen's header into
that project (OVMF for sure, Linux and FreeBSD I guess). For QEMU,
there's also header been copied, for the PV devices. I don't know why
QEMU includes domctl.h from outside the project (this is how I
discovered autogen directory was missing). It might just be included via
the header of one of the library.

> > > I've split the generator in reasonably small pieces, but it's still not a small
> > > tool. The Rust backend remains monolithic in a single patch until the RFC goes
> > > further. It mirrors the C backend for the most part.
> > > 
> > > The hypercall ABI is specified in a schema of TOML. Most of it should be fairly
> > > obvious as to what it does and means, with the possible exception of the "typ"
> > > field. That has the look of a dictionary because that helps the deserializer to
> > > automatically resolve the typ to a convenient Rust enum type (Typ). In time,
> > > that will become something nicer to write, but that's fairly far in my list of
> > > priorities at the moment.
> >
> > Instead of creating your own IDL specification, did you look for
> > existing project that would do just that? That is been able to describe
> > the existing ABI in IDL and use an existing project to generate C and
> > Rust headers.
> >
> > I kind of look into this, but there's quite a few project to explore and
> > I didn't really spend enough time. Also, there's probably quite a lot
> > that are for client-server interfaces rather than syscall/hypercalls, or
> > they impose a data format.
> >
> 
> I looked a fair bit. Alas, the biggest case for this is web microservices, so
> the overwhelming majority of IDL projects focus on end-to-end RPC. That is,
> given pairs of functions for producers/consumers and a byte-based comms channel
> (typically a socket), they create their own ABI serialising on one side and
> deserialising on the other. That's not adequate here because we care about the
> precise semantics of the ABI at the hypercall boundary to avoid pushing a
> deserialiser in the hypervisor.
> 
> Protocol buffers, flatbuffers and Cap'n Proto all fall in this category, and
> gRPC is a higher level construct using protocol buffers or flatbuffers. So all
> those are off the table, and virtually all others suffer from the same sin.
> 
> A notable exception is Kaitai Struct (https://kaitai.io/), because it was
> designed to represent binary formats. I really wanted to use it, but Rust is
> not officially supported and the last release dates from 2022. All in all, it
> doesn't sound like something alive enough for use in a serious existing
> project.

Thanks!

Yeah, Kaitai looks almost like it could do the job, but it doesn't look
to be available in Debian repo. So yes, xenbindgen sounds like a better
candidate. At least, it gives us an other example on a way to describe
binary struct, and it's YAML :-), more or less.

But I'm all in for xenbindgen now.

> >
> > Next, on the file format choice, is TOML the best for describing an ABI,
> > or would other existing file format make it a bit easier to read, like
> > JSON or YAML? (I quite like using YAML so I have a bias toward it :-),
> > and that's the format used for the CI). I don't think it mater much for
> > Serde which file format is used.
> 
> Sure. I don't really care which. I can use serde to convert anything to
> anything else anyway. I happened to already have something set up for TOML, so
> I shamelessly reused it. But I'm happy to use something else.
> 
> I'm halfway through formalising evtchn atm (with a few addition to the
> generator), but I'll try migrating the specs to YAML and JSON to see how they
> look like.
> 
> I'm only frontally opposed to XML :)

:-), I agree.

I'm not going to be the primary consumer of those files so I don't mind
too much. It just that I don't like having to repeat
'[[structs.fields]]' sooo many times, I'm not familiar enough with TOML
to know if it is a limitation of the format, or not. I would think that
in YAML or JSON, we could avoid this repeats, with something like:

    structs:
    - name: xen_sysctl_readconsole
      description: "..."
      fields:
        - name: clear
          description: "..."
          typ: u8
        - name: incremental
          typ: u8
        - name: buffer
          typ:
            tag: ptr
            args: u8

Not sure it's valid YAML for "buffer", but otherwise, we can probably
something similar in JSON, with just a few {} and loads of "".

> > > After the series sysctl::readconsole and domctl::createdomain are autogenerated
> > > from their formalized forms. In the course of formalizing the ABI it became
> > > apparent readconsole has a different ABI in 32 and 64 bits. While benign in
> > > that particular case, it's yet one more reason to formalize the ABI in a
> > > language agnostic way and have it machine-checked.
> > > 
> > > ======== The Plan ===========
> > > 
> > > So, the idea of the series is to adjust 2 meaningful hypercalls to TOML-based
> > > specifications (sysctl::readconsole and domctl::createdomain). The series is
> > > organised in the following chunks of work
> > > 
> > >   1. Sanitise domctl::createdomain to remove packed subfields.
> > >   2. Introduce xenbindgen (IDL parser and generator for C).
> > >   3. Specify hypercalls in TOML, and replace the hand-crafted public bits.
> > >   4. Introduce Rust generator for xenbindgen.
> > >   5. Introduce a xen-sys crate, with the autogenerated Rust constructs.
> > >   6. Introduce CI checks for Rust linters, ABI validation and autogenerated
> > >      file consistency.
> > > 
> > > Future work involves migrating more hypercalls, in the same way patch 12 does.
> > > Most hypercalls should not take the amount of churn createdomain did. With the
> > > foundations laid down the involved work should be simple.
> > > 
> > > I have considered integrating the hypercall generation in the build process.
> > > That forces the Rust toolchain to be in the list of build dependencies for
> > > downstreams, which might be complicated or annoying. For the time being, I
> > > think checking in the autogenerated files and confirming in CI that they are
> > > in-sync is (imo) more than enough.
> >
> > Having the generated header files been committed sound like a good idea
> > for now. For better or for worth we've got a few of those already, so
> > it isn't a first.
> 
> So long as CI checks for consistency (and it does here), it shouldn't be a
> problem and helps a lot with review. I have noticed a few times regressions
> while developing merely because it became apparent in `git status`.

Having CI check from the start is a good idea. I kind of tried to do
that for the autoconf and the *.gen.go files, but that not done (and I
think I've sent something to the list).

> > But the way the different pieces are spread out in the repository in
> > this patch series will make it difficult for future contributor to update
> > the hypercall ABI. They'll be meet with an "autogenerated file, don't
> > modify" with little clue as to how actually regenerate them. For that I
> > think it would be better to have the IDL description (TOML files) in
> > that "xen/public/include" directory or at the very least in "xen/".
> 
> I can move the specs to <root>/xen/abi, or something like that. Having it in
> the include folder might risk installing them on the targets, and while that
> shouldn't matter it's better if we only ship .h files there.
> 
> Regardless of this, I should add a bit more context to the message in the
> headers they reference where the spec lives and some README.

Sounds good.

> > Second, with "xenbindgen" been in in "tools/", this introduce a soft
> > dependency of "xen" on "tools", which should be avoided even if the
> > build system of "xen/" doesn't call into xenbindgen today. So I think it
> > would be better to have xenbindgen either live in "xen/" or in a
> > different directory at the root of the repo. There's already Kconfig in
> > "xen/" so xenbindgen isn't going to be the first parser/generator in
> > "xen/" directory.
> 
> I don't disagree, but what do I do with xen-sys then? Should I put it with the
> hypervisor somewhere in <root>/xen? <root>/xen/rust/xen-sys, maybe?
> 
> Otherwise the same coupling exists between xen and tools, except in the other
> direction.

Coupling in one direction is fine, but going back and fort is not.
Unless we had a single non-recursive build system, but that not the
case, will never be, as the build system for "xen/" is fine and doesn't
need to be shared with anything else (or at least that my point of view).

As for "xen-sys", that just another "tools/libs", so that can live in
"tools/".

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 16:49:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 16:49:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841969.1257433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEWqM-0002Wr-U1; Fri, 22 Nov 2024 16:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841969.1257433; Fri, 22 Nov 2024 16: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 1tEWqM-0002Wk-R4; Fri, 22 Nov 2024 16:49:18 +0000
Received: by outflank-mailman (input) for mailman id 841969;
 Fri, 22 Nov 2024 16:49: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=BIkc=SR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tEWqM-0002We-1D
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 16:49:18 +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 b3828c50-a8f1-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 17:49:12 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-aa20944ce8cso617981966b.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 08:49:12 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d02062428fsm968130a12.40.2024.11.22.08.49.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 08:49: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: b3828c50-a8f1-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIzODI4YzUwLWE4ZjEtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjk0MTUyLjY1MzQ3Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732294151; x=1732898951; 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=xrcWAann3R6IDE6zHfTBtKUS+KytYgvo2ehzs9crA9o=;
        b=YJqWJGbYoo7paonbdHpzJCVQnYH7AERXN3/OPXfsqoPjCDdijRu4DkHLgrxp9nUTnm
         5pVug/3BB4KD1KQjy4G9bIZnuVBHV2YFLPN38yvuxDmkfk7eqR4/xoB4fi6y+IJrQHSQ
         Ur3smmeg6dTKgn+3+PbCETG9cCvi3ENcrEgEk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732294151; x=1732898951;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=xrcWAann3R6IDE6zHfTBtKUS+KytYgvo2ehzs9crA9o=;
        b=WnlFOnJZtA6tw1fsBrBIOMO/Vy04bxYOqYdzqioa1kLGscPtNZ3hmP/6mk2dmqpxA7
         4qIZmBwNtzaM8ICgT1bfLkLsl8MYJqIyeKXW1wmvca52hEJcN2qnnDhYNAquMEy2kI7P
         0fxJAdHdd1jHo0lzdR2oE6qRWBVa5+B0w1OMQ6uI9G5RPMfYLQQ6nO93ljBcB4yf+D6t
         yLFAXNxv2B9KhgQQgxVDoQAeDp3FQzx7jhsnx8TnwHRJKE/ep98Xbole6ytp2IaOcAHT
         98ytM7ClJpSva3KIWD6Bj3+8LyRufCB+MBp8bXDK10zj7QNp/Q9xBO2sW03V86jkHeW9
         K5bQ==
X-Gm-Message-State: AOJu0YwmwlHjiq6dw2Qnf/A4zekM24vXv6tUd/BBccnIS7snB5yrLKOo
	w9Ujhr7e9f0lRzP19bbBRWX+PlIqatBKTOiBCF2v9uyhu8/26tDOdi6av+eEud/m+QgwGj20pzv
	L
X-Gm-Gg: ASbGncvuW4zVDMTBuXxSgVaPqrUOmx8Uoczdqp/O85v7Yho8cZjzekno3Bp1S+E9mhe
	Z/lr4dLT0ZAE9ERc3LO6H+ufq3rPXvWq6IY5slV63/vYFkny2yAN5aSOjU93z2TwQrrgz68gCMJ
	HdUMCV4mEVg0RFqZFjZw1JkUeBTIDLzmE4axqLqiX7rDRXTuU2a2XeCsmK/Qbls783uzK6he72B
	aro46NOqSSl9iz3kMw0ewL56lErYCMTGYtikztiFavLydWR8B3VNEemfKa71ledvLlBnSg/8+dV
X-Google-Smtp-Source: AGHT+IEICu4NjLuTMxk8i0SQ9MTEbyZUOyVgBP3B/GeXRlcEn33f3WcE5wc944/iNHm9QQm9PaAKug==
X-Received: by 2002:a17:907:3685:b0:a9a:6c41:50a8 with SMTP id a640c23a62f3a-aa4efb762ffmr845829166b.17.1732294151459;
        Fri, 22 Nov 2024 08:49: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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] docs/sphinx: Fix FUSA indexing
Date: Fri, 22 Nov 2024 16:49:08 +0000
Message-Id: <20241122164908.3240056-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Sphinx complains:

  docs/fusa/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs'
  docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/market-reqs'
  docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/product-reqs'
  docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/design-reqs/arm64'

  docs/fusa/index.rst: WARNING: document isn't included in any toctree
  docs/fusa/reqs/design-reqs/arm64/generic-timer.rst: WARNING: document isn't included in any toctree
  docs/fusa/reqs/design-reqs/arm64/sbsa-uart.rst: WARNING: document isn't included in any toctree
  docs/fusa/reqs/index.rst: WARNING: document isn't included in any toctree
  docs/fusa/reqs/market-reqs/reqs.rst: WARNING: document isn't included in any toctree
  docs/fusa/reqs/product-reqs/arm64/reqs.rst: WARNING: document isn't included in any toctree

Fix the toctrees.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

I'm also going to prioritise getting a docs test in Gitlab CI.
---
 docs/fusa/index.rst      | 2 +-
 docs/fusa/reqs/index.rst | 7 ++++---
 docs/index.rst           | 1 +
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/docs/fusa/index.rst b/docs/fusa/index.rst
index 13bf4e8e23f1..5f1e8acfc429 100644
--- a/docs/fusa/index.rst
+++ b/docs/fusa/index.rst
@@ -6,4 +6,4 @@ Functional Safety documentation
 .. toctree::
    :maxdepth: 2
 
-   reqs
+   reqs/index
diff --git a/docs/fusa/reqs/index.rst b/docs/fusa/reqs/index.rst
index 183f183b1f8c..8a4dae6fb249 100644
--- a/docs/fusa/reqs/index.rst
+++ b/docs/fusa/reqs/index.rst
@@ -7,6 +7,7 @@ Requirements documentation
    :maxdepth: 2
 
    intro
-   market-reqs
-   product-reqs
-   design-reqs/arm64
+   market-reqs/reqs
+   product-reqs/arm64/reqs
+   design-reqs/arm64/generic-timer
+   design-reqs/arm64/sbsa-uart
diff --git a/docs/index.rst b/docs/index.rst
index ab051a0f3833..1d44796d7296 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -65,6 +65,7 @@ Documents in need of some rearranging.
    designs/launch/hyperlaunch-devicetree
    misc/xen-makefiles/makefiles
    misra/index
+   fusa/index
 
 
 Miscellanea

base-commit: c0bf8816c9e2a4701c925d8b23abfda5990a0087
prerequisite-patch-id: c6d7da051cd408c9f38d32ecdd24807bfbe619d1
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 16:51:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 16:51:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.841979.1257442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEWsC-0004Ar-Aa; Fri, 22 Nov 2024 16:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 841979.1257442; Fri, 22 Nov 2024 16:51: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 1tEWsC-0004Ak-7w; Fri, 22 Nov 2024 16:51:12 +0000
Received: by outflank-mailman (input) for mailman id 841979;
 Fri, 22 Nov 2024 16:51: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=BIkc=SR=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tEWsA-0004AY-Pb
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 16:51:10 +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 f76e8385-a8f1-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 17:51:06 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-a9ed49ec0f1so381875166b.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 08:51:06 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b28f8a1sm118743866b.41.2024.11.22.08.51.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 22 Nov 2024 08:51: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: f76e8385-a8f1-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY3NmU4Mzg1LWE4ZjEtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMjk0MjY2LjUyMTQ1NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732294265; x=1732899065; 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=81E9chfxVe/haFwsGpGAYWMCWngQMTzLIgGBkui4lPg=;
        b=kQ8VcNAt6ew0at402QRPYhjeto0145A2UCIQiz/mxrh05Ch1QkRJJgOLy1zhrwyObi
         5GfJbwTtWd6yS3Ojh9EFeu3HrZExOg7Rm2H3FvCTz3D8RR75nKleW9DU0i0ieD+XjpQH
         lX9n33IbbymC2iLyP6DZDnckV6sEuRQV+hGSE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732294265; x=1732899065;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=81E9chfxVe/haFwsGpGAYWMCWngQMTzLIgGBkui4lPg=;
        b=lR0OsWBIwYMARZ2cbMxgin4yK7Vhl2159Ye6ZhH2UV07G/6om8Vzv6vxF+tTlWTFl+
         cfVxUBoWDq8eQA4bOptduxrcPwXGVvvORo4hRJmNISSR7EvwndkwKuIIgugxglT2dFgf
         85ucwxfRAgtuhWsz8KG1Iqn1mQSUgtDSKibv1aCLhwSxCsvsfwyqfLK1P/b2VCjjqelA
         uQH49Jt2wuKi4xCL0ccE+gr4L5mjMWyznjeML1vW2uoyRhOm01jCEwn+1BYg3Y3R56qE
         m24e083eJcUQJdoXFAtwG42fIvsGXMT4z+MBoGkL6kt64yySF/4Ef/ji7uE7JJSDSKQn
         Jf2w==
X-Gm-Message-State: AOJu0Yyr+iwZ5Ds3pVoUPJb7F1+DeTdJF+KuD70Mn81iNUacEAOXj4eC
	0KcEIBiHO1QcHMKeoXnG5Y9cvkj89dMSV89FzbZUD7U9UphM413IfKpIqlyfjf15Yr6cJiVMzi8
	C
X-Gm-Gg: ASbGncs4ZDD9GOZQeryBIoRzIEPZRjQt1NuOjeTXJNOin3D7/DMsRplKtePnrzOOtQw
	hP93dgX06DTSL54XBzT1QZuNU9xS/IOLlDFSWWel1mHzgBO8RxCqwUZxBza4slr4xSa6fgJ1ERk
	1sqG7Lh6Ztj7VoXuDIeOEi79qT6G1uO8Z8DVOWU6ot3oFaK4EYgntlghOVokQXbINf7FGZmoHrB
	ggOjsHQyBtGCsO7AOt9cYKQ3UGstza0+UVwRVS8l6/ut+vl05FCrpvu5CBoXkrW9hSHt6Lhz9dl
X-Google-Smtp-Source: AGHT+IEyKZi7aOMN1UcA6IIzOe+i6MNwwZgL1QrkGh7fEy+e6RoCOwlRo4gnUlUSXBo2D8ImLkRMfA==
X-Received: by 2002:a17:906:314c:b0:a9a:2a56:91e with SMTP id a640c23a62f3a-aa509975d39mr288237666b.6.1732294265581;
        Fri, 22 Nov 2024 08:51: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>,
	Jan Beulich <JBeulich@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
Subject: [PATCH] docs/sphinx: Refresh config for newer Sphinx
Date: Fri, 22 Nov 2024 16:51:02 +0000
Message-Id: <20241122165102.3240758-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Sphinx 5.0 and newer objects to language = None.  Switch to 'en'.

Also update the copyright year.  Use %Y to avoid this problem in the future,
and provide compatibility for versions of Sphinx prior to 8.1 which don't
support the syntax.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

This is in prepartion to get a Gitlab CI docs job, and to activate Sphinx's
-Werror equivelent.
---
 docs/conf.py | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 50e41501db8f..5d2e97944900 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -3,9 +3,8 @@
 #
 # Configuration file for the Sphinx documentation builder.
 #
-# This file does only contain a selection of the most common options. For a
-# full list see the documentation:
-# http://www.sphinx-doc.org/en/master/config
+# For the full list of built-in configuration values, see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
 
 # -- Path setup --------------------------------------------------------------
 
@@ -19,11 +18,18 @@
 
 
 # -- Project information -----------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
+
+import sphinx
 
 project = u'Xen'
-copyright = u'2019, The Xen development community'
+copyright = u'2019-%Y, The Xen development community'
 author = u'The Xen development community'
 
+if sphinx.version_info < (8, 1):
+    from datetime import datetime
+    copyright = datetime.today().strftime(copyright)
+
 # Pull the Xen version straight out of the Makefile
 try:
     xen_ver = xen_subver = xen_extra = None
@@ -45,6 +51,7 @@ finally:
         version = release = u"unknown version"
 
 # -- General configuration ---------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
 
 # If your documentation needs a minimal Sphinx version, state it here.
 #
@@ -69,10 +76,7 @@ master_doc = 'index'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
+language = 'en'
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
@@ -86,6 +90,7 @@ primary_domain = 'c'
 highlight_language = 'none'
 
 # -- Options for HTML output -------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.

base-commit: c0bf8816c9e2a4701c925d8b23abfda5990a0087
prerequisite-patch-id: b4ef4fc3ee5669c078aa0b9c7501ac7ef673966c
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 22 21:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 21:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842003.1257473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEasT-0007QE-5j; Fri, 22 Nov 2024 21:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842003.1257473; Fri, 22 Nov 2024 21:07: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 1tEasT-0007Q2-18; Fri, 22 Nov 2024 21:07:45 +0000
Received: by outflank-mailman (input) for mailman id 842003;
 Fri, 22 Nov 2024 21:07: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=Tm/o=SR=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tEasS-0006xA-FC
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 21:07:44 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20624.outbound.protection.outlook.com
 [2a01:111:f403:2614::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0226e3e-a915-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 22:07:42 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAWPR03MB9738.eurprd03.prod.outlook.com
 (2603:10a6:102:2ed::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20; Fri, 22 Nov
 2024 21:07:33 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.016; Fri, 22 Nov 2024
 21:07: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: d0226e3e-a915-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjI0IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQwMjI2ZTNlLWE5MTUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzA5NjYyLjQyMjQzNiwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ByzlH/mC/RxZMcA3Jn7WlK2C4XWE8REKDsqGHfRgSnr/0Po/17BWtfFqpY2BvucsxaDYL5jkUTE75MNQgeOb6wr4jiDSdk9hXPaQ5BX/CPOq95euYk3xIOOe/vS88vYFOFuXbesritFa1eEC2EX7B4Lozfm26dcaOvC60+VsHVJQW3mjY43VrdHjytMWXJSmJ4QBt5DW5OvNXcSXO9/FokxljoTmkaPe+I0lmHxHvoJre6gp6zz5oKsaH/a8J3r8UYyTWFVMkAXWPN4PcfIT6T8MoRWXxpxCbsdItu6q0vizdHW0La0Z1y5Ltiw8oeVjOURHbnYJTC8IExeDCtav/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=hKhc6MOCXjks3p+mF1Hok1MhyOqzBUachJYh4VSNAfA=;
 b=pzOchMNl+fLT32dCQV7r01lAII9BvuvkhjInQ/RNH5X/xrJRs3aB4lXVCWE/n4OaWoFdbIwu5pKWfjAPCRg4LRhNxdH1+DcoTmh3pxINE8k4RYcTSZa2vqXoUxUNkWnPbtUXBBXSpDGTTPcAJRxdkWWUgu1nctjMAnr8geautjgOtGmdhTK29moic0FmmTxkh9N/49yos88deeSdMRFGpiP2AMFWmLyA5bmSUrHYz7QJwML9Q4I4B72B5ZDiFxs+PKbTWhc7wkwzzjHbC9Zrqgmz36aqSa4ziq6msKF5CiCFHIxBjxA87gv8cUwMCl0x3CnCL2DGapZ4g5aV/mS3xQ==
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=hKhc6MOCXjks3p+mF1Hok1MhyOqzBUachJYh4VSNAfA=;
 b=pt5H47fIUyJkZlZPkYguX3OnwuVCPvbRHPgulL39nx2yB/2tQrEmEx92hxjB3eEJ6bBNpiwi3BB/ZT+fAuK2GYdMCNfKCnIJNjDqkYsnz5rjHoC9XVGHyP/u1cWbLUnB17vxEAyT8FTGkGCeKVVjklEnLC/3yA0pxfM920Z8cAdjdnWZPcAJsCiFDqHoYeCKpuqFxZg4AboDPvHLYEczbX6xiWvc+rae41QTplfCbUKk+2HksElq5xEyVH4ZCNUCro6Uc2rkYB+pkjIy9tFm0EXU2N6Luu5w27oP+1u4RGuiBczL/77/pFpbahcUUf4qx3FX0H28ayH9P/63iJczpw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 2/3] xen: arm: enable stack protector feature
Thread-Topic: [PATCH 2/3] xen: arm: enable stack protector feature
Thread-Index: AQHbPSKKppr5gbUiFkmSWcjt2gLITQ==
Date: Fri, 22 Nov 2024 21:07:29 +0000
Message-ID: <20241122210719.2572072-3-volodymyr_babchuk@epam.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAWPR03MB9738:EE_
x-ms-office365-filtering-correlation-id: 0ae32b17-3bee-4fa5-71ba-08dd0b39af41
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?+579lqAQJn6kfrGeZZuax79w41sh3ApDnHGJe3ih1gow+1IKiJy3sgXoer?=
 =?iso-8859-1?Q?EFdPAfetsNuDfx5B5/xoxgILkRvUgr5lzKkaZr58nG2AV3liptaBOh9w4S?=
 =?iso-8859-1?Q?emvuDzcdDWw//RgpaW6bIlEGAtTVJz8JetJAD0EXrUUpzAK27IBwBt38RG?=
 =?iso-8859-1?Q?W72K6lh3PYr17acSIsq2fKyBzBzLHl+vg+YeqYNz6ZZhdAJrUVI6cvL7mq?=
 =?iso-8859-1?Q?yfepkpzrtcg45VE+Sd1AygZlaMecLAaFMWmkoc72W1EC1IyFbC79R0kFV5?=
 =?iso-8859-1?Q?ZAwhsL+/vvXn4qpvnZY3aloxNK8WN+Y0UOMPFqtoRyQYASVCP8HIQe0n77?=
 =?iso-8859-1?Q?iN/WEbtT7al/YxGDIaODIyz7yTYRVGBVWSoGckMao00hPWUmac2YGpzwdR?=
 =?iso-8859-1?Q?7zhdA4O5wf8ojRZrjYHzPt70BxHa+cHuHphA5N749WWRuOl3uW4IYPSNuU?=
 =?iso-8859-1?Q?pM8l2+l3EqAeQQbhSqhZm/TMYTEjQsSvGQZ4l5W7cn9B2QwFaZT0sNx2QA?=
 =?iso-8859-1?Q?aUJ74tpC33OSiiVHyJOLEiJ2i2MPPy/laOreq/gxDubResRwEzFnx7C6BZ?=
 =?iso-8859-1?Q?PIPL/4lOpIJPhJrBwtIjPf/7u8o3fdtw/aBGvBc37QgZcC2fVMwbQjs75N?=
 =?iso-8859-1?Q?eK0b6xYhNSmkNAUw3I/LbIe8XyJ5FBHk7TL/9xLqZS0kyLJctSQX7hcBaM?=
 =?iso-8859-1?Q?wlC8TXoWT2E6AH5xDM+ewNIX5dJd8dY/dQUuJbqs1L1sxD8eic5nztonfb?=
 =?iso-8859-1?Q?IZQcWzjgrpVWUYXKUKciUP2LGmhZjHz4VJ7hsOHsFPNqJwjPV0eICwu1AN?=
 =?iso-8859-1?Q?60rsomAKE9cGC9gnx/wdAgysEC2SutqnMbxPR4oDUCWNFFAKQDqY5DrGlG?=
 =?iso-8859-1?Q?wi0YNboCyLrUeiJ6w2OOGmcExFFfMJteQ924iXf5Rysjivxh5pSyziQ+sc?=
 =?iso-8859-1?Q?+yrjgoGndRdjKYPpdcMRZaY+b8nq8PAVL/TLwQNN0cxlllf6dnxOaTs+Zm?=
 =?iso-8859-1?Q?DJ2/pg/Xno1bCn5gDJ8bzSo6FZ1Hk0vFx1YFzJ4Z5M6mxh9US75yRu7Zk9?=
 =?iso-8859-1?Q?V351HaOBvcc4PoUKVrYYy900dkSN8q9APbzIi86jpbWm3gtwOr++MJKVmJ?=
 =?iso-8859-1?Q?qAOf6jlDcgmaqHtysM1gxPp39tgfSjuv+prOdJ1PtKMoTUr7knUd8yqu7z?=
 =?iso-8859-1?Q?s81VII06J8MI1G90kEezS8DGw1A3MWZyvXuCB1nVhnt5Us7rY2Nbd7RD+y?=
 =?iso-8859-1?Q?jVXfzT9MX3n8VQu2eqeONua7aCTGmrny1wA8t/I+vEgKCH5QCEItVY4QmX?=
 =?iso-8859-1?Q?TgwHRGaLxqUUwVuZjU+ufuQWKZVRRKME2oL3nFN8m8yCKvpbvoSEN/tgeu?=
 =?iso-8859-1?Q?/m8S6/rwOr0e0hvKm3u9Tl77dJhtMIjSPAQT31l1Dh+9v5j7PS7BQ=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/+Tecr5i2su+bV/AdY0bINogBkte2JNwP1tioneadIsb8AnAlKUmqeR7z0?=
 =?iso-8859-1?Q?4aPheOU9L3yj31MUB5WIzVr5LFH1HqBoi98v+f+jqZFbKkJJlvwa7IwmWZ?=
 =?iso-8859-1?Q?ToL207uEoCDpGWVLnL81mXU1g7nhbGsnh8Trw7VEv6sWa2CCVv4umeq0T0?=
 =?iso-8859-1?Q?ZD4k03xv7Fjet9b/cSh7JIbahxGiuy04BIH+yjc9TA6A8aELBhj5dWRoAO?=
 =?iso-8859-1?Q?MWImesC1UoX7dah8bABP50+YCuvFN61zgGyP6cCmiMcLeNJyvUTomxFQhG?=
 =?iso-8859-1?Q?P7e+U5dAQ69jycjqFxolt+IllSp1FEvOjJ8a5VpdGgstSbg5CfrEu49rLE?=
 =?iso-8859-1?Q?HdZKfW4ARrpJQDtHQWfkgOO4hsaagswpjCyuW39fdEEPSAQU/CMfqD8BY3?=
 =?iso-8859-1?Q?OJofNhnI0DVWwwOTJVBX87eFD9RsGzWIGlS2ZcmSsIax+cDtZLJgAWZVSD?=
 =?iso-8859-1?Q?0Ny/rBPXMXd/U3F1G33By0SHw269WEDMY/L3aBifG0LerMvU+zKnSWJBYT?=
 =?iso-8859-1?Q?ZFlzpnuUwHh+/2fG/V35Zpx/1monOxeir7+R0rf/EMCX3tUR7p/SAH+gLe?=
 =?iso-8859-1?Q?y1x2gE4svTsLi3SiSxVsvOGDfV3d1jYT4+saPovM3ORfIFdb940RBI5cSw?=
 =?iso-8859-1?Q?uNQFB5erOS8WBwBwXoNVPkZxQ41f7btJcyOIk69scGJ4OFkISu3TYnT8ox?=
 =?iso-8859-1?Q?x/cWqPEhb6W0MfyjGd8yqG1LGxPtz3UYwrPcLtbsY66M6eRLo+Jau6PLtB?=
 =?iso-8859-1?Q?D5LRrotk1Pju87gvmZlRZ9RpZVRrKweZnzgycDCm0RgN8kAworcE67wA1/?=
 =?iso-8859-1?Q?YhtxIzkIZBK83ugAjAb2zRUpI0j6cy8Yv7JgXfNhUtklfJ3KJnpvlqkxaL?=
 =?iso-8859-1?Q?qtPtsHGkiq8Oqd7x+4JnuT/gVerveY31fzfUOyB9qm/kxEbUTty6ns5Zzf?=
 =?iso-8859-1?Q?97Cq1ESytUi8I9cuBVbz1MjXSv8qXW2BddPSso8Ohw8kQEL1ZExql0H7Yr?=
 =?iso-8859-1?Q?dqR4KP2u0DGWQvRTzw0Ig7fVmVwFccXf+8QXZUyyoyIXCNAqMTE78vDwiL?=
 =?iso-8859-1?Q?3hz6qo5NI9g7kERxOR/2JdpsPOp9NHOCpf85QXaKbFL+9fwFd7y5XDZ4EE?=
 =?iso-8859-1?Q?Xu+MAcs+FM2nnsxsPGAfrban13syx5jbEfrQxNxi05m2Q4ob7Cr/kMYywB?=
 =?iso-8859-1?Q?rBF7OAL4cDRipV5MXD8kZm/nFXOabJucKO5Zxt7NOEedljgulLIvfPJFz6?=
 =?iso-8859-1?Q?oi7LOoi3vvmH/NjhI1bpKxMxRzoim1hzcuymPKRLYcYGU4l43ha73oLrU/?=
 =?iso-8859-1?Q?/Sz4xLSDd7ZvRnUDxNRKwgssL65glqtMp4/TJ36+E7gYQ1r2HZl49YChg+?=
 =?iso-8859-1?Q?+LDyu1TIhBi/YNnbanZNX0tIstvP6a7d1wjUYLFuYFuuy4RxTz2nV3K71T?=
 =?iso-8859-1?Q?B1BMME54P/uU5GdnlGQDl1fpnmgizelprw8/ukrfFwAwcu4M7LJPs09k0e?=
 =?iso-8859-1?Q?iaxLHIyDkPMKxbOmy+5Iq/J2Whpdn90P1v/TxhTf6q8PkhMSi9WFeqom2l?=
 =?iso-8859-1?Q?7dq5shtD0MyJF+JsotuLs8cIkGKy4D0nWsZNFK6uz+v8qBvtSG76nB+3c8?=
 =?iso-8859-1?Q?guZoE40SJX+bPXO0CDFd7JdiyNfGXqjzwet+3VIAeV+I4F/LTIyGei2w?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ae32b17-3bee-4fa5-71ba-08dd0b39af41
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2024 21:07:29.9392
 (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: KMYuHsr6PE5ZEiu/DOeB5dDQSh190D8NrYXaktEnim0720bVzcySTr9s6Qj2Hb7DHt+64EoTnf4mzTZNWsusZIQUUnRzFWryflWdUh4mgm0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9738

Enable previously added CONFIG_STACK_PROTECTOR feature for ARM
platform. Here we can call boot_stack_chk_guard_setup() in start_xen()
function, because it never returns, so stack protector code will not
be triggered because of changed canary.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/arch/arm/Kconfig | 1 +
 xen/arch/arm/setup.c | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..8fbb31bc07 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -17,6 +17,7 @@ config ARM
 	select HAS_PASSTHROUGH
 	select HAS_UBSAN
 	select IOMMU_FORCE_PT_SHARE
+	select HAS_STACK_PROTECTOR
=20
 config ARCH_DEFCONFIG
 	string
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca..2bd3caf90b 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -13,6 +13,7 @@
 #include <xen/domain_page.h>
 #include <xen/grant_table.h>
 #include <xen/types.h>
+#include <xen/stack_protector.h>
 #include <xen/string.h>
 #include <xen/serial.h>
 #include <xen/sched.h>
@@ -341,6 +342,8 @@ void asmlinkage __init start_xen(unsigned long fdt_padd=
r)
      */
     system_state =3D SYS_STATE_boot;
=20
+    boot_stack_chk_guard_setup();
+
     if ( acpi_disabled )
     {
         printk("Booting using Device Tree\n");
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 21:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 21:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842004.1257483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEasV-0007gH-BJ; Fri, 22 Nov 2024 21:07:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842004.1257483; Fri, 22 Nov 2024 21:07: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 1tEasV-0007g8-8G; Fri, 22 Nov 2024 21:07:47 +0000
Received: by outflank-mailman (input) for mailman id 842004;
 Fri, 22 Nov 2024 21:07: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=Tm/o=SR=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tEasU-0006xA-Fy
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 21:07:46 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20624.outbound.protection.outlook.com
 [2a01:111:f403:2614::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d15de20e-a915-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 22:07:44 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAWPR03MB9738.eurprd03.prod.outlook.com
 (2603:10a6:102:2ed::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20; Fri, 22 Nov
 2024 21:07:34 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.016; Fri, 22 Nov 2024
 21:07: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: d15de20e-a915-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjI0IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQxNWRlMjBlLWE5MTUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzA5NjY0LjQ4NDcwNSwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cc08jIfohAxGrqPd2m7uaZ+ID4ut1zGkoJJgv1sDdyz37eaOi4mnR4zlGaldvffp4fYHiHzvnBcrInp0TykLtMsxscvszdcEsTA02mrWWjdcHVHBqUI+2P1rlA7tMgAKVYdVZrENh0TyVNtrkHHObePxYxXGUwggUf+YDmbJnw23iSxZSw5GEEjY68eTdo0CEzHq2lXLHFoTZHh5WMweSx6HMtc+FmEpkR/lPI0MzI2TfQrhmTFqqYjDdSGjYlnDbhhIvg/kPEIxaeqQpHejXju87s5PgkAE3IZ/Ic+gOzRb6u1kj0C3//4f5JROQm6CWCHHPukEEbdEl0S10RLPHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KNLjq8vKDQdOVp6utg+lFA4xZstRQk7PIXTXtcimxyI=;
 b=E01hlIWj/eTOKonvNibrbU4UYzF+vMb2XwJFwoOfk/8BPJAgjYEnxdJkTwfPAdGaYYZTAAWNK7V7byG7LOYTiN4X3tCTzv1F88h9GEpObquM1koSDRM+j/Nw0m9l8jwuFI6xyxbz56QGrz+4GkGE0rUapPnNXHyqBO1WW6VuAj0SCwg8rUubt6Msx+kpYvy0MkvbNz3tbOwr1LfTeqlNP0i7HwAZJ2dExXXBxWfNwJEBxpzPfPTsl0m6YblnFUE722pE+ZP8RtoviQjDh7hINlRs1uwWH8uEpWEsSgjFrucLzlJOllxBE30LJj2hh/yKAu4tGBgvzbjn8fLBZ+X1bA==
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=KNLjq8vKDQdOVp6utg+lFA4xZstRQk7PIXTXtcimxyI=;
 b=h80nxDy5HnoCjpqdz+JfSKd+vZrddveWYASYi+Ke/OaBT2JcOfxz1snkQKO/WDdnPhsGepIyPe6+EyKn/hDZ8QoFvNeBy1RwNkgVBm1L6pVWkuWAVSwqAdgzzvov16/7IAeZu5aSI9FZ3cOG4meV8t0jZvuCAuZDJDIn3aAXVUIXg9r9tk4RZLiBwHc+wYsLK4404Ixzfn/UexW8rhlvsqzWSXKLyqyjoao6kmpdMLshknyouEATJTxe87cAIm1fG7xL9DG1FAudUlCEpv6sESG0/a8vLGNWIKLvzSA0iFWZBAZZpIZH77q3uogQSMEvQrT67t0Pf49w2mRM03uQ4A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 3/3] xen: riscv: enable stack protector feature
Thread-Topic: [PATCH 3/3] xen: riscv: enable stack protector feature
Thread-Index: AQHbPSKK7LmLMh+hFUu+rgI8SvJulg==
Date: Fri, 22 Nov 2024 21:07:30 +0000
Message-ID: <20241122210719.2572072-4-volodymyr_babchuk@epam.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAWPR03MB9738:EE_
x-ms-office365-filtering-correlation-id: 9021afc3-c04b-4a6e-27e7-08dd0b39af7d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?gfvSFmTDN0jJASxjgOGw44tKspQvz4vljlKLduxbZ023iMxbWImwdl/njf?=
 =?iso-8859-1?Q?BCXCV7pJyul+SVUS1mUPm0jWLENspPZUN2WwtGNzACxXhF60PFwtnB+NyQ?=
 =?iso-8859-1?Q?ApR0ZQ0Pdh8eHj8+R79R1HwuoXQb3G/fO241bxvz+r9o1lj/pKaC7nFB63?=
 =?iso-8859-1?Q?EZPFg7uDNeojHwtYDz11tLkoySEdzcShIAM4/XldOUwUwY4yadQsHj8t+g?=
 =?iso-8859-1?Q?m8SERasOTIEV0PwM6EYH9krnlUfTCcq+Dd9IfhaVPyqUBfaJRKLT6e1Zn6?=
 =?iso-8859-1?Q?oG9gPokRfNDM/NCDfAzeXfRIKaFt+VtLuSdR7h1FZYq9TshE34/yD715hp?=
 =?iso-8859-1?Q?s/zHVBBZN+q2B7cvdSqdENeyYchRuDocTL54PD1c2bIIaknxHX9SX7/tA8?=
 =?iso-8859-1?Q?GQ1fpG7kzEST7iYUK0G2EIWcjm/4gIGlSQqHDtlS7iIqwRLGgoZgggGn8U?=
 =?iso-8859-1?Q?jXUWPX7MZrpB3HvD8QjMBYTNXFwEJnrkLo4DtaXIJP78ra3tpEKicxFQQN?=
 =?iso-8859-1?Q?opdTj+hgwDQH1lZmR6AFArB+NFykXmGfe8pII51IWOe7IU1U+wXEamTCZk?=
 =?iso-8859-1?Q?8eH6Mtir9AkKtj0OynjuJ+Wcnat/90H4aZIGzncKauAlGJLPxqk8j6Ik4n?=
 =?iso-8859-1?Q?Q2Ej0Ya6dNzFSiK3v/Vz2qpmv+wBO3jst4UNOq1WknC/0NtwNnxM0gAMYa?=
 =?iso-8859-1?Q?bspgPBWUX+H6AjBiQ0YAb8oQ0s9l4wgFNFQc772TU4t3CYTG5NnADwcvaJ?=
 =?iso-8859-1?Q?1eBYaMxe9Mvv+Geu6nNdYolPANSGIn5wdZVwiymm+B+vDrx5uGGvgIpKP0?=
 =?iso-8859-1?Q?hmchAJztNyuzS7S1igB1evaHzwBdEALi/Oej/18FqB6oVrmK97+YVTZ1j1?=
 =?iso-8859-1?Q?0nkWrg+0LxDsieD6Td5bF8hHD8E2J7EHac0HGDPgP/OOQQU/9rmUmM2ZN6?=
 =?iso-8859-1?Q?EpKU26bnG7fA6AuPGRJdY6uNmlNnOFBivA9hxyMO0Gp2DVp3iKZxbx70y6?=
 =?iso-8859-1?Q?DbMyvRhp5YUFQNp3o4UXFRorf5lF34+dDNVksLPtd+/7HUygxUt0f0/sPe?=
 =?iso-8859-1?Q?EXq91Nc7uy+p2GJzJpcvZ6ViCYiB9Z4GlwSI9aYV8ypjDk09xbwAUy/QSL?=
 =?iso-8859-1?Q?aUeG0YEkGhGybleLRHjGqpjUuxCK5yO/TDwet/0jQfMggHa5buC2L4k4r4?=
 =?iso-8859-1?Q?esy4vId6GarXc4/K7b4m9rW5WkxL/YvJnh6ieb1SD3qnG/SIPQ8ApD9OV/?=
 =?iso-8859-1?Q?BOR10jhua6GignkWJGZQ2Muqwv576RF7KHuRYF/Hrtr2ZSwlAcFIvqH4RL?=
 =?iso-8859-1?Q?jLoRFp3919VSHfT2yajnQ4goOxz5zUTSaYy4FXju6/HCJAam/My9cjbdXv?=
 =?iso-8859-1?Q?YSf1bgCgf8/D3BPbpGYveTnG/1uodpaQLTna8MQIqJ2vw8pjpnRvc=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?TVkB6YN8SxXyDh3744jI/T8IGN96a0VTC4bClbj5l89rpKt0n04jckaw6Y?=
 =?iso-8859-1?Q?sUFRQ9y+zcBoSSxc8iaFNnKY6lE+QLuPIlaZ3G6LTWAjRZB8SUT/lTJ8qm?=
 =?iso-8859-1?Q?VWtZGrCWDv9PyP7zyjrzcRUFFUTu0gsxD3p4PCcx3AelSO26I47bGE/4oX?=
 =?iso-8859-1?Q?zqHS48f/uLl1wGVRZ0UnTLDKCjZd3G4Fsp3Px/remgA/yKn2FB9MqPvTYK?=
 =?iso-8859-1?Q?r66yqw5CDZPkYDvD5H+lCmUzj7P9d6YxdEdOuhlOZxgWk9g3wmHG4XSaP0?=
 =?iso-8859-1?Q?YOWkyCtv/gryyRiQsodTwfqoacG728uczKPBiJ/vhF5VTSUCp5TIal2va3?=
 =?iso-8859-1?Q?v+Dd+9HvseVGTa3KvEpR6c/xe3Fsu90Mz94lOo+MKUwqKyosr413iDPn4p?=
 =?iso-8859-1?Q?YmZAwfd+fpUiBSaP5MWiqDFpUixZ1WnzGMPCLF1+NYNFT3WJdXNLibMAeo?=
 =?iso-8859-1?Q?x7De+I+S3MZO2dQ+Ar8zPL4ERpNBZSvozx2PObwa5AnX9ewhz9bm77XAjU?=
 =?iso-8859-1?Q?23SD9XhX5ooWHX6IoEvB5DTjY2N3vBpWPMGctURhJV34evbUNK4ITTpwCY?=
 =?iso-8859-1?Q?c2urPcX/XrGm3MOkIC92wnZGbumeGDR1v1lNRfteVqhWN8YlvrR/+D+M6/?=
 =?iso-8859-1?Q?TjsRhHguu7zeqYW6Ik55YFOruey1y3Mq1HqaGtUD1iim+rkU4a9aqDtWsX?=
 =?iso-8859-1?Q?CddECnloN0Bj3HDzV0vrGnIdCn3OwAejsiSQkvRhKEHriuCVE380z5hdCO?=
 =?iso-8859-1?Q?MfVmXipe3dJljuFOr2T7o3YgSvvcch+S7BWmvX42t4mVIBevy9tMWNZTI5?=
 =?iso-8859-1?Q?F0jcAqJekBFAALu/1z97IFoev1Yju/RasCrB71cqCGSUIiKhVLGvuux7VR?=
 =?iso-8859-1?Q?V4WlLeZfWJtey6KSdVWrkbvVvKTI9qFVBlt+CpkIDngTMxbk9oUSSZEt8A?=
 =?iso-8859-1?Q?su6YQKCTIHYfOW1doSumev7mZ2q/S95Ot5QthP3g52LGkWXQpAyqIwucbE?=
 =?iso-8859-1?Q?K2etWL0WWfP9y1dPaIsG4kG8CGxtR1L99+YmhZi0PbEfvWd8a+rnVZX9Q0?=
 =?iso-8859-1?Q?gr9VyiSXTfcXM2x9bZC0/6+9ddWI1MKtvFaffLC1AvuznNBn1mE7LGGSZS?=
 =?iso-8859-1?Q?Ky2HsEmuaZQr2q0cIRt0C2TAO7iIKBHiFuTK/krcoM+nyzoNL1KuDxAt14?=
 =?iso-8859-1?Q?6Gne7LqDBmnj/DhttfXWziX4UDF9udT+1bwg0/98nTce3g9X3RStZpADAq?=
 =?iso-8859-1?Q?8cnlPqpOTmPxAK2/plglRDg7Gx4GVMdWPnNfauO/F8oBxGTeAXkzyf4n0v?=
 =?iso-8859-1?Q?/u6TQitmYYHPmuNmm6wei+Rq4SGAlH6nbAVoaV+bMWgOa+PDzo4Xvmy0Eo?=
 =?iso-8859-1?Q?n/kxMVorlEYZGSDNy8+7aP2id5CbXlJfyA2Ki2OavbYN1gQ0QXLmTf3dJN?=
 =?iso-8859-1?Q?jOAE546fOWQOpb/DbmnDI7o9s2MeLUB/N7bACRQhQYZ8M6eH/rm+lPsf37?=
 =?iso-8859-1?Q?m5rgDACruWGhmKMqEB6mfuGDnW3Oe3bmhePgZg76/U4OueDi63bpc7Awbj?=
 =?iso-8859-1?Q?oi+9N0fuMzBk3FJPFkAsfapgHgJHuSX0HOf2Ff3t5QAPiMzmJpO++zkV6E?=
 =?iso-8859-1?Q?LMHksXbXegWvsyxPSNeJil1acLJA/vrMBRPl+3AVAgmMoqVq4enB+rBw?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9021afc3-c04b-4a6e-27e7-08dd0b39af7d
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2024 21:07:30.2212
 (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: UpOkUQd1/b95pJhxZaWSKVqshQsDw9zPAr01nWxFrfcWuqYH8y3u2rA1sC7EQYNL2y7hlaolqaTRK2PxKfIqdA3WczEvrgXIEFenQ7cKo24=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9738

Enable previously added CONFIG_STACK_PROTECTOR feature for RISC-V
platform. Here we can call boot_stack_chk_guard_setup() in start_xen()
function, because it never returns, so stack protector code will not
be triggered because of changed canary.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

I tested this patch for buildability, but didn't verified that Xen
really boots on RISC-V when this feature is enabled. So I am asking
RISC-V maintainers to provide feedback on it.
---
 xen/arch/riscv/Kconfig | 1 +
 xen/arch/riscv/setup.c | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 1858004676..1481f23b66 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -5,6 +5,7 @@ config RISCV
 	select HAS_DEVICE_TREE
 	select HAS_PMAP
 	select HAS_VMAP
+	select HAS_STACK_PROTECTOR
=20
 config RISCV_64
 	def_bool y
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e29bd75d7c..cd71748d2c 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
+#include <xen/stack_protector.h>
=20
 #include <public/version.h>
=20
@@ -55,6 +56,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     if ( !boot_fdt_info(device_tree_flattened, dtb_addr) )
         BUG();
=20
+    boot_stack_chk_guard_setup();
+
     cmdline =3D boot_fdt_cmdline(device_tree_flattened);
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 21:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 21:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842002.1257463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEasR-0007BX-OC; Fri, 22 Nov 2024 21:07:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842002.1257463; Fri, 22 Nov 2024 21:07: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 1tEasR-0007BQ-Kw; Fri, 22 Nov 2024 21:07:43 +0000
Received: by outflank-mailman (input) for mailman id 842002;
 Fri, 22 Nov 2024 21:07: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=Tm/o=SR=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tEasQ-0006xA-Cp
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 21:07:42 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20624.outbound.protection.outlook.com
 [2a01:111:f403:2614::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cded252b-a915-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 22:07:38 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAWPR03MB9738.eurprd03.prod.outlook.com
 (2603:10a6:102:2ed::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20; Fri, 22 Nov
 2024 21:07:33 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.016; Fri, 22 Nov 2024
 21:07: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: cded252b-a915-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjI0IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNkZWQyNTJiLWE5MTUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzA5NjU4LjcxODkwMiwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KOhZIL40V/Nn3Nr8jf7dyQjk78wYeb7xRrCxGc/tHb3ui5uRjtOmc1Mno5oZBuCQugk1pomgajMBOZJHTkFExDDjNXZNiTLBq4yPFC5eNg/gR/aH6MnVBbbs0hc8yVOmNRd0bQobbBJfdE786Gb5HUBdPNtaTg5AfnQlOdxAu0upPLbpAauHZbTlVHHp9Y5SOrLeb441Jfkx4yQ8R0yHaLiuEpYqbsNx501ju9fkbpI9Z1cOIaT9D1212Fy4AmRPwLtVbVdN6Tj6QwfQ632bc7a7+P5pHOX4JDHSFdICpvjFk6gjxvQB5xs22DNp7ZHIf2GfTQ+amCHCaFul42ZjzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FNlNjXvfJVm1fbN8Mlag5X39oGFDKabRNL8lFdyjINQ=;
 b=ETfWokfsftBTMWlAP2/XzVckgU0HSJ+jX7Lm02TZhCrgq6flzj+s/R0qUfRiyJADrMk9Em8VAgzbDbxrvJ27hFXn2oSdqnhwlxTrR3cTkFrOdYsEQ0Q6zmk9oyvhzBD2pG0WRLroeXyIehvhrcMswsuMSZftbvX2tB45V9E89YqoPDEAW0uIGaPbUFVq5qYRfVZvCGyOn5L74TZTZOVfAUVlomLTat4Fvl0sU7rvUf0ki3EEoeowTlItbRzo4TuiADcBAM+UMQHz/xZRWACBpooEUAzIi8uadYd+x2nRf1y6zsJVdZVwmPKATL7h3904H6GMUcYYNkd4tim0csu7uw==
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=FNlNjXvfJVm1fbN8Mlag5X39oGFDKabRNL8lFdyjINQ=;
 b=DMMeYNkOxbZ63EYB8U867/Ri28w2iqf4yLgi9C6wnY+3OGD6qda4OZh5YHmOOM8XjkZ6Dn5hFN5ZYh42WGCzGrxQwJNCsB56TWKkXnDVDLiQSruAR37IAMlHlI7i7wlIfa+FMzPCY/1vtBqE8Ry7PhYv9QzXDLg+bo0IRdxzXOyWGlikqnZQ+ep1AL8cXbRueeKZEoLey16nG6Pi05BnEEpDxlonkUyxAB2DH4PhGhZZXidj4ryXEoFLH9fp9MQmTkpZ3c/S3uP0XndDuSvQZaLbdRws8IspzR6tT00uzhpwpoj/OkT3gV3/n2eNTvXE/CVzL5DtYRGdKRrcCYFAng==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH 1/3] xen: common: add ability to enable stack protector
Thread-Topic: [PATCH 1/3] xen: common: add ability to enable stack protector
Thread-Index: AQHbPSKKCRg4722UIUuMGLA9PEEyZg==
Date: Fri, 22 Nov 2024 21:07:29 +0000
Message-ID: <20241122210719.2572072-2-volodymyr_babchuk@epam.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAWPR03MB9738:EE_
x-ms-office365-filtering-correlation-id: b0bbdf27-da14-4f83-6faa-08dd0b39af00
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?DKQUg+TzQpo7IG5DnsdqPQbmPA+uelJ8+lUk/CUrhsgqFveQlfih7Hiyum?=
 =?iso-8859-1?Q?J7a7+WAvqr/PlW83ZNsCRwpeluSwR7tcyW53Wi4ZU/+pe/6olSpTnbTZsO?=
 =?iso-8859-1?Q?FxUqSsj8889gcYw9auQPozOjTQUriMKwIPfp/im/gn51yXHt2F89dR2t7J?=
 =?iso-8859-1?Q?X3KtJDTWzP9t59lRRGuzlUdyZj6fxfLv7uhoG8LSVCzZ5J+2gYSqMQDBho?=
 =?iso-8859-1?Q?p1sfsIxrPWJHNjb/TObyfYW03jly3Llm9Z+PXecGdp1PrfsLT6e1n1DEbl?=
 =?iso-8859-1?Q?OT89yeyT6AcBBTNFNzop28ukPf6p28XbF7JNPdP6VImyvI59Edmuxxo5Fj?=
 =?iso-8859-1?Q?4SrChCQWZXzEYMc46tT6EkePVNxOaj55UMCdg7XoMNrD5JX2vDKGzkym0u?=
 =?iso-8859-1?Q?x8hZORVDjNPdKbGMwTaYGwUWxIEpLkLBpMoV2W7aj6wAZS42Q3bcm4uT9W?=
 =?iso-8859-1?Q?yh7FLvDor26veWeQiUlCgYgNAuDsdzMbbdgeOi6jh8cBJawE0/074oqRhn?=
 =?iso-8859-1?Q?bJzSWrX/vt5jY3TfiG8aqj7JN7nRHmWVqzHELJmXS2PuE97hzT2Kbgq/Qv?=
 =?iso-8859-1?Q?KGsqEtoTwHye/P3bJ2i2OpZQHND0JbQ+PPtG1BvI9TufRL1tcD4VaJ6J93?=
 =?iso-8859-1?Q?HeMocA26fLaCZaGlm7AnxTmJdZNIej+T/MNRkbgw9TPS2pwLT9lUD6QGEz?=
 =?iso-8859-1?Q?tigrb6sqPU1CCJCZALF29ErlsMwifE/CzuKt7f4vrV9eyM3mftcMYs7t5N?=
 =?iso-8859-1?Q?8/h1NR2RiECxNvtd9eFh21W0FYJDg7+y/qEBhpgbq+uKB3IBFMxjXkQjUo?=
 =?iso-8859-1?Q?PO/nZPVBbnwSSNNvIZXjCK84hk6bNuYYGPszqp8veJ+Uxbnqb5h8CaWyaj?=
 =?iso-8859-1?Q?RLIEyWp3xCKAU91i9sQnDepWrM93cRB20DL6SnVfCsKKgmQulqBj9wuXyd?=
 =?iso-8859-1?Q?JWtc91+/l3Q+5vb4LFerhhcCFhPKdYwtrpXf4s5Lhccm495j6l1dEDMbQP?=
 =?iso-8859-1?Q?zAVIK2utkvZbAIhXi3Mbkq7SqJ5KGyvtEtxu50gn4ihddkPbSwNq2HUdNt?=
 =?iso-8859-1?Q?fy9CioL9pnlK7cbEk8q+ddoKi7ufVS4GgDb33vnJGFF2TyAjvPEXPsle5w?=
 =?iso-8859-1?Q?SVTcpVCOW/ZUmcfE7RgTCyKOHZOXEngRsUhlZ7MQ6recSU45Z+18hcBSbR?=
 =?iso-8859-1?Q?NnsDw2cikGZ7etOMNnd04Js6Vh6GjDOQZrGuo1P5euH7To8UFAktIqeYkA?=
 =?iso-8859-1?Q?ccnjZW1ZnmAUO8pwgBpol+x2xncgWqEo7vPqmYpSXwWytx4LjA05OBTVBa?=
 =?iso-8859-1?Q?fC0ja4FpO674WMFeg/BlWy15RiX2A9SM9DnRW09nLdZKM+p3UZrBMethQv?=
 =?iso-8859-1?Q?tJciEK+ZgQ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?vj0VqqDdUDo4X3IZXk197zOxV7GKHVIwcibUexws1BOQRvJPwBsOV0vprL?=
 =?iso-8859-1?Q?nNXTlwdri6k53ngQFmUazmb7mJuB2v37vOlxBuuVBqDSjfFPZZTwuSyFah?=
 =?iso-8859-1?Q?RXQNaipwLzEqOJPtPskjPr/HDpK8oGx47wL1d8pt2uRakChgtxyoj87gqT?=
 =?iso-8859-1?Q?1iGchD0E5uZbAcbbAPPRK5REbNwcMDoMbdrFGNoJIYtoQi2EoaR8HbbWNt?=
 =?iso-8859-1?Q?f2b28qOgS3nKqN8CIWUu4BhT3paHQDuFZl895H4aQTe6vmIcfwiO0q+KGU?=
 =?iso-8859-1?Q?Hq1nUyPvqNXU2YIT8gbbifYHZKkVRmdzwXMbj/KZuPkHl+oYY5C/xc502A?=
 =?iso-8859-1?Q?mWiyNTV9T0STyjrE2juKQoSH81hS2+mIynVnF5eyurtjB0+g4kMg1bhOca?=
 =?iso-8859-1?Q?T3ARsBVmvCowKXX4uUPVrkQlnqhjNcfqBQwehHRtiZzHQxbkf7v6YkE2jo?=
 =?iso-8859-1?Q?uCd1BQ2d/ZbYt+2Bveq2SErWKd6GUyP8kTUkq+ZBCdWcEIBBljWKG51TLO?=
 =?iso-8859-1?Q?sedU0MNb16MMARtKnwQgckTeRox3O3zwi7yVj36XqjTyoLHSXuXwAWNEu1?=
 =?iso-8859-1?Q?3QDGR4OInac4UsHVzvgrnyOXmHomzpHN9m4zfxF6cQX5/FEz7YJQ7Br8JE?=
 =?iso-8859-1?Q?zLXeg5a2JPNUN6NEqCSJmaBzuryyImWUlRRlXyDtidBZv67lip7ZH6aHRu?=
 =?iso-8859-1?Q?HErnMApARIUTKdE9ANPSuinszRyp/K3ldXz/plAk4OcQxaF3qX63TuXVYJ?=
 =?iso-8859-1?Q?IIPkvdnpmUeM57O5010zTGfxBo6kWvJWsBAHSD31hI09V554EDOflpIi2L?=
 =?iso-8859-1?Q?qcIvQPsrioF1k+7AqjH1jGAgnADecli2PD17YOgfOXYt3qtY42P4V8BzzV?=
 =?iso-8859-1?Q?AEf8IsIoxHa7gsSCelD8r7MXkamBNPaRUT3kQGwkvnnHvgc+tCCQUU6E+S?=
 =?iso-8859-1?Q?tGRfF4U9Y0CgtGyvI45cGGJWuqeEN3dREtg5QyVKycV8Tk4Gba1FJnEnwq?=
 =?iso-8859-1?Q?ebHDtmxUFjQcaYKJuLjs3hiDiFVvquyvolT7TM+R+tClMzKKD0DjbwsE3h?=
 =?iso-8859-1?Q?JePpFdumyx/nlEE8PLdGRSBlfPzmW0oM2SBBqVIz8tYrVfqsp10wT2wtna?=
 =?iso-8859-1?Q?Ir0wkRMAR/U9SLduOpgkkGOvR3KQTEDjmQdDzIVvJFKt54CbGm5rg9ZyAL?=
 =?iso-8859-1?Q?MPDGoYxB6oPP9t6ClGu4FfioZNSkVootbK2DWPC5aKmckD+ou89uORWb6T?=
 =?iso-8859-1?Q?6MKlcu66KuDUu0GATwKdPRV+xpp+xlBOJyJQJ9GiYOc5KwcrCe2C3xmyst?=
 =?iso-8859-1?Q?IGXNcM65/m+jU2CyE/Q5VnadKbjAYF376fTg1MNVY+Q6e4cO2lGq7G4DJv?=
 =?iso-8859-1?Q?VrYxRKJzO/DxixC1Ylr0ZjYBLNSHdBPwUro5z0rzqON/X3ZfZRqOJegC9l?=
 =?iso-8859-1?Q?z0yFI/kSN/ymGLeLI7b5nVotHJYR7DFhHx8lLD0ccZg/2IdqhC31/kjPIM?=
 =?iso-8859-1?Q?XfmQaS4JTWmcbbmJOANFPIJlufO012/76N2Q9Sp61HZdTr6SL08ED44sS9?=
 =?iso-8859-1?Q?zXdrUo4Wutmg5QsZuSETztNOmiLx3aKknOeWKc4Au4rEpdmujSP6+b7/G+?=
 =?iso-8859-1?Q?Tmoz122NqaoR08no9S74WgRiPO6hHSmqdCcCuPY9kGtL2/AO4Pik0AdA?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b0bbdf27-da14-4f83-6faa-08dd0b39af00
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2024 21:07:29.6659
 (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: igXOCkrOe4Tzz2Nto8WxFLZSW9QJuA3B5aSPjw/Qi2duMO3zOp1ofuQrO+6V+PR3YgNhZof61iQQ6cBY8KKuS1CkOt4BYBzJW4yng1xaWhg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9738

Both GCC and Clang support -fstack-protector feature, which add stack
canaries to functions where stack corruption is possible. This patch
makes general preparations to enable this feature on different
supported architectures:

 - "-fno-stack-protector" is removed from global config
 - Added CONFIG_HAS_STACK_PROTECTOR option so each architecture
   can enable this feature individually
 - Added user-selectable CONFIG_STACK_PROTECTOR option
 - Implemented code that sets up random stack canary and a basic
   handler for stack protector failures

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 Config.mk                            |  2 +-
 stubdom/Makefile                     |  2 ++
 tools/firmware/Rules.mk              |  2 ++
 tools/tests/x86_emulator/testcase.mk |  2 ++
 xen/Makefile                         |  6 ++++++
 xen/common/Kconfig                   | 13 ++++++++++++
 xen/common/Makefile                  |  1 +
 xen/common/stack_protector.c         | 16 +++++++++++++++
 xen/include/xen/stack_protector.h    | 30 ++++++++++++++++++++++++++++
 9 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 xen/common/stack_protector.c
 create mode 100644 xen/include/xen/stack_protector.h

diff --git a/Config.mk b/Config.mk
index f1eab9a20a..c9fef4659f 100644
--- a/Config.mk
+++ b/Config.mk
@@ -190,7 +190,7 @@ endif
 APPEND_LDFLAGS +=3D $(foreach i, $(APPEND_LIB), -L$(i))
 APPEND_CFLAGS +=3D $(foreach i, $(APPEND_INCLUDES), -I$(i))
=20
-EMBEDDED_EXTRA_CFLAGS :=3D -fno-pie -fno-stack-protector -fno-stack-protec=
tor-all
+EMBEDDED_EXTRA_CFLAGS :=3D -fno-pie
 EMBEDDED_EXTRA_CFLAGS +=3D -fno-exceptions -fno-asynchronous-unwind-tables
=20
 XEN_EXTFILES_URL ?=3D https://xenbits.xen.org/xen-extfiles
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 2a81af28a1..41424f6aca 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -54,6 +54,8 @@ TARGET_CFLAGS +=3D $(CFLAGS)
 TARGET_CPPFLAGS +=3D $(CPPFLAGS)
 $(call cc-options-add,TARGET_CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
=20
+$(call cc-option-add,TARGET_CFLAGS,CC,-fno-stack-protector)
+
 # Do not use host headers and libs
 GCC_INSTALL =3D $(shell LANG=3DC gcc -print-search-dirs | sed -n -e 's/ins=
tall: \(.*\)/\1/p')
 TARGET_CPPFLAGS +=3D -U __linux__ -U __FreeBSD__ -U __sun__
diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
index d3482c9ec4..b3f29556b7 100644
--- a/tools/firmware/Rules.mk
+++ b/tools/firmware/Rules.mk
@@ -15,6 +15,8 @@ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
=20
 $(call cc-option-add,CFLAGS,CC,-fcf-protection=3Dnone)
=20
+$(call cc-option-add,CFLAGS,CC,-fno-stack-protector)
+
 # Do not add the .note.gnu.property section to any of the firmware objects=
: it
 # breaks the rombios binary and is not useful for firmware anyway.
 $(call cc-option-add,CFLAGS,CC,-Wa$$(comma)-mx86-used-note=3Dno)
diff --git a/tools/tests/x86_emulator/testcase.mk b/tools/tests/x86_emulato=
r/testcase.mk
index fc95e24589..49a7a8dee9 100644
--- a/tools/tests/x86_emulator/testcase.mk
+++ b/tools/tests/x86_emulator/testcase.mk
@@ -4,6 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
=20
+$(call cc-option-add,CFLAGS,CC,-fno-stack-protector)
+
 CFLAGS +=3D -fno-builtin -g0 $($(TESTCASE)-cflags)
=20
 LDFLAGS_DIRECT +=3D $(shell { $(LD) -v --warn-rwx-segments; } >/dev/null 2=
>&1 && echo --no-warn-rwx-segments)
diff --git a/xen/Makefile b/xen/Makefile
index 2e1a925c84..0de0101fd0 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -432,6 +432,12 @@ else
 CFLAGS_UBSAN :=3D
 endif
=20
+ifeq ($(CONFIG_STACK_PROTECTOR),y)
+CFLAGS +=3D -fstack-protector
+else
+CFLAGS +=3D -fno-stack-protector
+endif
+
 ifeq ($(CONFIG_LTO),y)
 CFLAGS +=3D -flto
 LDFLAGS-$(CONFIG_CC_IS_CLANG) +=3D -plugin LLVMgold.so
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 90268d9249..0ffd825510 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -86,6 +86,9 @@ config HAS_UBSAN
 config HAS_VMAP
 	bool
=20
+config HAS_STACK_PROTECTOR
+	bool
+
 config MEM_ACCESS_ALWAYS_ON
 	bool
=20
@@ -516,4 +519,14 @@ config TRACEBUFFER
 	  to be collected at run time for debugging or performance analysis.
 	  Memory and execution overhead when not active is minimal.
=20
+config STACK_PROTECTOR
+	bool "Stack protection"
+	depends on HAS_STACK_PROTECTOR
+	help
+	  Use compiler's option -fstack-protector (supported both by GCC
+	  and clang) to generate code that checks for corrupted stack
+	  and halts the system in case of any problems.
+
+	  Please note that this option will impair performance.
+
 endmenu
diff --git a/xen/common/Makefile b/xen/common/Makefile
index b279b09bfb..a9f2d05476 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -45,6 +45,7 @@ obj-y +=3D shutdown.o
 obj-y +=3D softirq.o
 obj-y +=3D smp.o
 obj-y +=3D spinlock.o
+obj-$(CONFIG_STACK_PROTECTOR) +=3D stack_protector.o
 obj-y +=3D stop_machine.o
 obj-y +=3D symbols.o
 obj-y +=3D tasklet.o
diff --git a/xen/common/stack_protector.c b/xen/common/stack_protector.c
new file mode 100644
index 0000000000..de7c20f682
--- /dev/null
+++ b/xen/common/stack_protector.c
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <xen/lib.h>
+#include <xen/random.h>
+
+#ifndef CONFIG_X86
+/*
+ * GCC uses TLS to store stack canary value on x86.
+ * All other platforms use this global variable.
+ */
+unsigned long __stack_chk_guard;
+#endif
+
+void __stack_chk_fail(void)
+{
+	panic("Detected stack corruption\n");
+}
diff --git a/xen/include/xen/stack_protector.h b/xen/include/xen/stack_prot=
ector.h
new file mode 100644
index 0000000000..97f1eb5ac0
--- /dev/null
+++ b/xen/include/xen/stack_protector.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN__STACK_PROTECTOR_H
+#define XEN__STACK_PROTECTOR_H
+
+#ifdef CONFIG_STACKPROTECTOR
+
+#ifndef CONFIG_X86
+extern unsigned long __stack_chk_guard;
+#endif
+
+/*
+ * This function should be always inlined. Also it should be called
+ * from a function that never returns.
+ */
+static inline void boot_stack_chk_guard_setup(void)
+{
+	__stack_chk_guard =3D get_random();
+	if (BITS_PER_LONG =3D=3D 64)
+		__stack_chk_guard |=3D ((unsigned long)get_random()) << 32;
+}
+
+#else
+
+static inline void boot_stack_chk_guard_setup(void) {}
+
+#endif /* CONFIG_STACKPROTECTOR  */
+
+#endif /* XEN__STACK_PROTECTOR_H */
+
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 21:07:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 21:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842001.1257453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEasP-0006xQ-GD; Fri, 22 Nov 2024 21:07:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842001.1257453; Fri, 22 Nov 2024 21:07: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 1tEasP-0006xJ-D0; Fri, 22 Nov 2024 21:07:41 +0000
Received: by outflank-mailman (input) for mailman id 842001;
 Fri, 22 Nov 2024 21:07: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=Tm/o=SR=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tEasN-0006xA-MN
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 21:07:39 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20624.outbound.protection.outlook.com
 [2a01:111:f403:2614::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cbf583f7-a915-11ef-a0cc-8be0dac302b0;
 Fri, 22 Nov 2024 22:07:35 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAWPR03MB9738.eurprd03.prod.outlook.com
 (2603:10a6:102:2ed::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.20; Fri, 22 Nov
 2024 21:07:29 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.016; Fri, 22 Nov 2024
 21:07: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: cbf583f7-a915-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjI0IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImNiZjU4M2Y3LWE5MTUtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzA5NjU1LjgyODIzNiwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dkP2TPxSWigLeV6ImjKyUswMrA88KogGfDnUdcKvcTU0aE0gp81+LjLZQuwJ0AEMIdP1zlR9l8XCx16q+W1ApGRL0cEunxSQ8kZjQWWZ/kJe5HU+PTq+pjzok2ly2a9/sVMQg6ZJ7Nex061uo7di3vNhjk1wwLzA1wQqmqs8N86ZPGYrL5A3bclQN60fo//e7GXyTElFs1a1LGp5ewJvc5+G2DN8ZK+2hq9n8VWT/CcG23v4K2P7bceXf488K7xc7Wz2KxLlhPF2+vtM0knYfbgIpYWd0JhvNR5AsUuNZONjbBuRCS15Dt2Ec6NEZoseEmfDPWfK0L94aTbc+p+UiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SMx/mwcK5hU6KcgFvnAc6iQo9AVCd9WSH/e8jGDjjvY=;
 b=mUpXtnfBajurR1r/njEq70+wdI8R8qNx2GeVWePeZHGVFrVzpWZVIv6Qh0FwBdJz6saU0DMNHqFZNPhWPXxHhLzRrpZBBI45Mk+HD5Z8ZxhiQQVOWc/whDbl0uHzwAoQadFVnpIrpWsLwcxHnrOEqsDXRpOWAT5/mxwLjh+YtOYoj0MIuVsUPrmb1u8fhhe5FrDXD9f6nj7rW3jHtBAcDM2ttyQN6e3K7omHC9R2Yk+fIY/sJt9KvqZnEZSyrE618KpW3yNCCTe9qesJvJxpOxbI2bdXgiChv52gQQnGCQMnGm7s6CU0Qd3gOLm4H+WqOUFndtxbE5k7hNjlkBAGmw==
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=SMx/mwcK5hU6KcgFvnAc6iQo9AVCd9WSH/e8jGDjjvY=;
 b=YEAeyDfcbp3NPA6vY7nNj94lu2mxujGT3Uapzew0x9vVkjjlaY/X6ki5Uo1Roy8cHJS+7jzcYjxn9KHPuOnF6+sgcPDo+/dOuzcA6qZ/CONsQDe9EBZLzxlTuLtJ/ItLto0zFJ2e8Dw6/14hNqIKrSgWVntbzxqCK4w2F2TLAX7tyS443jn+ZPA6j2yTxJJDRBhkqN0ADWnYv4HmcDjDzFLSlUn4MdYpJ3GFnpXXKr0TU2H2PCXSY4q+XDsEZG+qPuNQVUD29oZh+Alus8zSZZRr5gXF/gelRQRDYUOffRot3L0F0ewGvUwj8rzQQC+8i1URr51Z/HNJ4YfE0fgEBQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, 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>
Subject: [PATCH 0/3] Add stack protector
Thread-Topic: [PATCH 0/3] Add stack protector
Thread-Index: AQHbPSKJvmf4+DJbxEu3vjqcFnhN7Q==
Date: Fri, 22 Nov 2024 21:07:29 +0000
Message-ID: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAWPR03MB9738:EE_
x-ms-office365-filtering-correlation-id: 0ea95a58-1046-4d54-20ce-08dd0b39ac7c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?TRHphPECUlSe/aaEWzduhgqDpQNY4ntR5bMWhpzeFTDV7JYEvzYU7Q9gu5?=
 =?iso-8859-1?Q?VAWDxogDnN7yscfQLtZa5CLhVkBQthrnOidCSmpGMnHQ1mZkGeK2Bn0qH4?=
 =?iso-8859-1?Q?PkVLF0v/u+ToHIRf9uBFt8nQwCqWWWsy30Imy5mG8dMvXJLE6UDhgD6V96?=
 =?iso-8859-1?Q?THwPPFR868pc7tX2eVTJsuCLw2XIiKoEJ3BOX6RQe3QCzai5oI/MTkOMps?=
 =?iso-8859-1?Q?Q0jtcS7MjrBGad+pmjsjtn0lHVQYvRqi/Z3BXRMhHUOSfSBlVQO1sM2ETB?=
 =?iso-8859-1?Q?KcDSSSsLlUAcq2BgeEStholhXxvokQBcXLO7a13mIVv8GWkbH4pQsRBhHu?=
 =?iso-8859-1?Q?ub6Fff4sOh7kC7nbA52gh3UhBUswTCtNT9ZrEu6QdP8qJEH2wm1XNW+sZF?=
 =?iso-8859-1?Q?FtaDcp5/WaT0efaTnX6cRZH0Ad1kUerBcRCdr6rJMbWQLFo9CuJlHu6mjL?=
 =?iso-8859-1?Q?83jyu2XKOZTNvWqa0wxcmW8h5N1m+qOOhPsTc+ASa6PT+LPzeEAoCXRMcq?=
 =?iso-8859-1?Q?q9Keiu/JKYhv1NcYgcmmsg/NtIVc+F7bEPX3zhbIqx0wiE42g7wb8lb+x+?=
 =?iso-8859-1?Q?stdEc+BJ1tV0PBuO8qjhFuHuRjeT40C6NjWtNGhKUZ/qyhkMcNhLl1VxB7?=
 =?iso-8859-1?Q?Dsb8dPLJIkFSyaymLVrYt57C6E9xaMhWugY9Gk/mmEv8k/mYzWa3tOKNnZ?=
 =?iso-8859-1?Q?oCcyrRGTv80cp4gHQfI4KFzvE+VE/v3tqLtGJiEj8XLjg6PG+9qn1on+5B?=
 =?iso-8859-1?Q?GIX4uwx+b64jupp8C8eHBZvqBUOcaWP8r7kVlcopmvLQJrS7LXD+fB2+2Y?=
 =?iso-8859-1?Q?PbDF6bSsVUq7BOQJYEY6NROl1NitFyYJ3s+9pu2JZxt39Bv4ehZt5BWyw0?=
 =?iso-8859-1?Q?B5wgoQQaSkaBbEIEJLolgURNdQswciGvWBKCpWwGSHSZAN6z231b7FSAQu?=
 =?iso-8859-1?Q?IsoN6LnM3X5vsdht6wEDivht+hzNiJDFAm1/bAxLI8REpyAvVK/9fR3JSr?=
 =?iso-8859-1?Q?M9fKmbflyTrBPozOW7Z/In2N6pbuASCh7BS0eIJpSMbZA9L4xYlxQch0R/?=
 =?iso-8859-1?Q?H2eFnomoFjD+mSDy91QgcTVPnbJr/9HnxZpeyS6l8BWj2cx/x2cL/Nz8Xc?=
 =?iso-8859-1?Q?JSmi0Gw5eV2knvU729WpZEedpikGERnOTrE+F/WesNmTj6S1Cj+rjc2QvS?=
 =?iso-8859-1?Q?3xJznNGy01NhUjjJkSjC1UnZOK2bfyj3PhSpcVZyTAIFUZspkDZfgYSmB0?=
 =?iso-8859-1?Q?1wAdNLymNgMqH5UhccOjJdYUuQEw9G7GZoCEsZqCF5gBocGN4v38AstfOK?=
 =?iso-8859-1?Q?etI3y77kpTRvvFtCMigz5e4m+optGKwU2peGpKvV1f+LUYxZrHtgWTReGK?=
 =?iso-8859-1?Q?pRK6JTtob5B9Aq4FfzzYLrrQpDiFfPyHY9jq3+V9w3FfRpL3FoJGA=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?VTFR4i6muhibFOShnM6jTUA+QHOXGmUOYYbnGZ/jZudnDJl6Ffa6T9Vi81?=
 =?iso-8859-1?Q?NC0aTf94Ot3xesgdZc7imHscTfM5VtI/kkLVyl0zmOroLwuXmMLcRAG4lI?=
 =?iso-8859-1?Q?KttnxMZ7E3EqFEzrgZEWFpwrGrLyJv8dZC04jXGvChBSDfj20D+a807TLR?=
 =?iso-8859-1?Q?sZFSDGP2qtTD1uVTNlxspmszqoxRuWPkYTI11WZ8xPIo844riZjR1FnWCI?=
 =?iso-8859-1?Q?G/o0jD6+6PJhm2hmeke63jE6YUOeoX5Ybh/wOcIvUGZrPlBOye0STZuL0V?=
 =?iso-8859-1?Q?e5EH78OraRWgpMS48xr/f/FMNimlrNCxkP381FeRmNbs19h2lNE/IH6qNL?=
 =?iso-8859-1?Q?3f1vKs6j5oXyGg2GF0d7iPa4e5VAlwPbHqWT5xYRh3vD15WdadnP2zsLnf?=
 =?iso-8859-1?Q?M+/1fHv829Ev79SUMkGwPqSzooi86kIiCxYYCs0ZBzCrDQ53mV2J41m9BW?=
 =?iso-8859-1?Q?tuTjn4wVjIIqJZljQjA83+B1mtqGmxunqv5R0I8Gw6mBILVlJEYuwE7Weu?=
 =?iso-8859-1?Q?1jIQT4mg1ZoQwcKd9M+ombHnCiDROaomXWA+q6Jkm7Q5pXK6WuYFast09p?=
 =?iso-8859-1?Q?E+MEIJ72twI7atFpCAuTSrhJnhZaA7BCwj+YWEXJVRmXbAFEWqFXFDzSkB?=
 =?iso-8859-1?Q?RTUuKSnUbzMtRn/Z1wew0nmTaSRLiFUBT+C/SXzPz6Cl/+l3AnLC4x5YvP?=
 =?iso-8859-1?Q?wv3qKffIx9P3cLI+yQrcH3+kpHPnmk9+QRdp2UswO31V2qdnmVa4oY3Ket?=
 =?iso-8859-1?Q?o2/oVSQP+mVxIk8wLydm5T6L25Em0owdDDJwh2X/LV4in+Eyq0YXvczf2y?=
 =?iso-8859-1?Q?v2Di2cvI1t1vLFO9QI1qoAYYafF5xiBh/ppzc322G5h3y2rV7NU3KSBTVu?=
 =?iso-8859-1?Q?PcmcFyr3n3kYJ9d2IIK6aEDIo/ETa4rGWLuIJRJCSapJ2ILPrwSrwKrsmC?=
 =?iso-8859-1?Q?cpKKER/a8oYF3uDkXbEKbwODcIcWbsA9+xc5hP8sdHWqDjDcHV2eZD65aM?=
 =?iso-8859-1?Q?q4e4cyBfRXzk9U8ekdXauOJ4rWhly3IrCLCedVJ76YXFoP4PaWXWCrVz/8?=
 =?iso-8859-1?Q?st97aA7rRbxErMxcvg41/PuQAP09F5Tr93rsPVEDDZj87UHJg/zr5Cg9f8?=
 =?iso-8859-1?Q?3+2rtsb5Y+5DphqGi6GFyt0SB9SZB0lkacMMpeJcsULSLJX3dFv/cty+pl?=
 =?iso-8859-1?Q?CQ4F8KbsjgRmYvM5XDRaZn5XPfckepthrDOJzPny/vTIY1MRVWD9UB2xj8?=
 =?iso-8859-1?Q?8jZPbOh4Wanhg1N3FuKN28m46Lao4xaqABatRldFZQ1yj95v3pPxJ33Cnw?=
 =?iso-8859-1?Q?jebex6hvqa2vjjoH/M3snck4JBCyLJAJ93EUmzAhUKovBlFT91dRE9L4wT?=
 =?iso-8859-1?Q?/tup2LcS0tn526y6WqpS4BdhTVknHEfMhxajM/4lB2e2mlMgAcMIBtSkjk?=
 =?iso-8859-1?Q?3Fb2/BPXQ+qOVfc/izUJSD/ME7l3HbqA6bxwm8W3drTplf5DeoCT2Rkmk2?=
 =?iso-8859-1?Q?1Muwc6TQWUdAuQABCTTZgf6IrcNKbg3zMv3BTvNplO2z3wA36WcqU6uh75?=
 =?iso-8859-1?Q?P23q4W6q1Ye+Q4N11Iv2rGHPc3UV7wuO9N/IycSOIRMX/O9okggAomuF+8?=
 =?iso-8859-1?Q?xCnLU4CAs8m+TDmhRm9K/tQcKr9T6E//TW7Wvo6xtlDyGi0NnpIvCkPg?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ea95a58-1046-4d54-20ce-08dd0b39ac7c
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2024 21:07:29.1312
 (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: h/Mnn3ykmu5Rlc3cWISliAFH7S+t9DRgycId1yKHpgssN2f9ujHq39G0iBXmrYmCkg7fDlujskuPLf51tHIlPzCrgtmZnPs4VHMKzLmDxV8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9738

Both GCC and Clang support -fstack-protector feature, which add stack
canaries to functions where stack corruption is possible. This series
makes possible to use this feature in Xen. I tested this on ARM64 and
it is working as intended. Tested both with GCC and Clang.

My aim was to enable it on x86 also, but it appears that on x86 GCC
stores canary value in TLS, exactly at fs:40, which is hardcoded. As
Xen does not setup fs register for itself, any attempt to enable stack
protector leads to paging abort.

I also tested build-ability for RISCV platform, but didn't tested that
it does not break anything, so we will need RISCV maintainer's
approval.

Volodymyr Babchuk (3):
  xen: common: add ability to enable stack protector
  xen: arm: enable stack protector feature
  xen: riscv: enable stack protector feature

 Config.mk                            |  2 +-
 stubdom/Makefile                     |  2 ++
 tools/firmware/Rules.mk              |  2 ++
 tools/tests/x86_emulator/testcase.mk |  2 ++
 xen/Makefile                         |  6 ++++++
 xen/arch/arm/Kconfig                 |  1 +
 xen/arch/arm/setup.c                 |  3 +++
 xen/arch/riscv/Kconfig               |  1 +
 xen/arch/riscv/setup.c               |  3 +++
 xen/common/Kconfig                   | 13 ++++++++++++
 xen/common/Makefile                  |  1 +
 xen/common/stack_protector.c         | 16 +++++++++++++++
 xen/include/xen/stack_protector.h    | 30 ++++++++++++++++++++++++++++
 13 files changed, 81 insertions(+), 1 deletion(-)
 create mode 100644 xen/common/stack_protector.c
 create mode 100644 xen/include/xen/stack_protector.h

--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 22 21:55:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Nov 2024 21:55:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842044.1257493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEbcQ-0006to-Jz; Fri, 22 Nov 2024 21:55:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842044.1257493; Fri, 22 Nov 2024 21:55: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 1tEbcQ-0006th-GO; Fri, 22 Nov 2024 21:55:14 +0000
Received: by outflank-mailman (input) for mailman id 842044;
 Fri, 22 Nov 2024 21:55: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=KMXp=SR=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tEbcP-0006tb-0u
 for xen-devel@lists.xenproject.org; Fri, 22 Nov 2024 21:55:13 +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 6ffd0bca-a91c-11ef-99a3-01e77a169b0f;
 Fri, 22 Nov 2024 22:55:07 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43155abaf0bso23200155e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 13:55:07 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-433cde070easm40270455e9.5.2024.11.22.13.55.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Nov 2024 13:55: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: 6ffd0bca-a91c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZmZmQwYmNhLWE5MWMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMzEyNTA3LjczODM2Mywic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732312507; x=1732917307; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eO0BjKQdgLpzBtDQuFZ5cTsAXwezue3qAJZ4xqI4D6Q=;
        b=hGxuc3JLclbSB8JE7zi2VTWlQDaK/6Z/N7Ddovx9PdaPwuxPyUZZ/1EW7xjjUIaq0G
         fUnisut+UOrwX8/oI2zMS7osdoBuEFHxM9bHWL/8WjLkTFgNgE7uuhSbqUnuviubeXgf
         uX0lisBq+ajqtyspOPOfjcfHKteMP835OJfnU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732312507; x=1732917307;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=eO0BjKQdgLpzBtDQuFZ5cTsAXwezue3qAJZ4xqI4D6Q=;
        b=XzE2S/sUToLlRP5AIH9u5Nm6PL6nLGg3OED0804QVUjZa5uuC49P+04IcYGbgF4JFT
         L0lg2cApOxK7CirA+bSnNH1M6fO72gSj98zTh7iwCmYGfAMZKHBenYjXiL8o7MXR8cxR
         Zl6LVch+AYhwFRVl71TmzK6yP8BIOL2GmtdZvRfYZUChBrAXfUKr6omNuZ0EJqbjdkIg
         qMk8zNMvrfCTz2AdVfwbHgzsbOE9+2zXg+LdQn9ezJhHSygCjzOYn9bVh3YGI8vLS2mx
         6qQM/y5/DFBvObjxO/3gefByC6p+PdfXWBg7ffKIgwJA5lf62w1snp90GGBF8qydgNO1
         qxrw==
X-Forwarded-Encrypted: i=1; AJvYcCVidzyBRaRRa0Ju1BqdgL/LQZtJJDOKdnNxyxQD/jsl/pfN7cYfMW6xGVXM+/yH2rSJ1hj+oHlg6Q8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzB+HhMxwSBTve5S/LOvKZ6h+qLIjL12NzoCc3D6BO1O/YiSm4T
	YYitZRdIAmJtFnpOy+eOo2k6OnsMG2J9CUFQXzqztJONfOwAEoRL/saOCWU2rAqqrlyYlx+WRzR
	a
X-Gm-Gg: ASbGncvHx6t7+yYnuQlaacJ3iLO87f8K20qfbfGKJXOIOVMnme8sGi+HJtEHcNsHC9a
	eCgk6rC2lTyanvCVPZXEEF4Hk/B4WSviVF4nxE+ZN6c9jVB/5qC17h37B435aonRWlkzozp3V65
	tkJMIQ3rzdeWrl0SDF84P7z6gvR2ZfOefePHiD2OcmYuRojb9yoVGHy3KikWGNHENpo/AloBFyk
	SVR9LjTwbQv5fAKi+eXdVk8OW5Q9SF4250lk7n+4dJPW6BmW7ZqCxOiQte5Sx18KQpvb2edkZHH
	L1i5
X-Google-Smtp-Source: AGHT+IG5U/ecmZiuczBPP8iu+abpreSr6cfUbtYm8UVGjX5CtHoxhoTSIp33Ar9PzlHBFHofqW1XjA==
X-Received: by 2002:a05:600c:45c7:b0:431:518a:683b with SMTP id 5b1f17b1804b1-434891a1e57mr26338495e9.18.1732312506841;
        Fri, 22 Nov 2024 13:55:06 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 22 Nov 2024 21:55:04 +0000
Message-Id: <D5T1J6D9918L.1TO68X0HW9QMS@cloud.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich"
 <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini"
 <sstabellini@kernel.org>, "Anthony PERARD" <anthony.perard@vates.tech>
Subject: Re: [RFC XEN PATCH] docs/designs: Add a design document for 'xen'
 Rust crate
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <c0f88345e1ee870dc10a209e3840ae98b2ac1386.1732283549.git.teddy.astie@vates.tech>
In-Reply-To: <c0f88345e1ee870dc10a209e3840ae98b2ac1386.1732283549.git.teddy.astie@vates.tech>

Hi,

I've given some feedback on the primitives for buffers and some questions o=
n
the choice of aggressive use of traits.

On Fri Nov 22, 2024 at 2:01 PM GMT, Teddy Astie wrote:
> Add a design document for the 'xen' rust crate.
>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> Follows Alejandro works with https://lore.kernel.org/xen-devel/D5SQEZIL2S=
ZV.QR3X5MRVQJJP@cloud.com/T/#t
> There is also a WIP branch at https://gitlab.com/TSnake41/xen/-/tree/rust=
-rfc
> ---
>  docs/designs/xen-rust-crate.md | 199 +++++++++++++++++++++++++++++++++
>  1 file changed, 199 insertions(+)
>  create mode 100644 docs/designs/xen-rust-crate.md
>
> diff --git a/docs/designs/xen-rust-crate.md b/docs/designs/xen-rust-crate=
.md
> new file mode 100644
> index 0000000000..5eab603d4d
> --- /dev/null
> +++ b/docs/designs/xen-rust-crate.md
> @@ -0,0 +1,199 @@
> +# Rust 'xen' crate interface design
> +
> +See [1] for more context.
> +
> +This RFC proposes parts of the 'xen' crate interface that would directly=
 or indirectly
> +(through internal wrappers) be used by users.
> +Those users could be a userland toolstack, a unikernel application (e.g =
XTF, Unikraft),
> +some other freestanding environment (e.g OVMF, Linux, Redox OS), ...
> +
> +These users can have a very different execution environment, this crate =
aims to provide
> +a uniform interface while allowing flexibility for exposing platform-spe=
cific bits.
> +
> +## Design philosophy
> +
> +This crate should feel natural for a Rust developper, thus, any Rust dev=
elopper with some
> +understanding on the Xen hypercall operations should be able to use this=
 crate.
> +Moreover, we want this crate to be maintainable and feel "idiomatic", an=
d not introduce
> +confusing behavior onto the user. Note that this crate will heavily use =
unsafe code.
> +
> +Some principles are proposed :
> +
> +Use or provide idiomatic abstractions when relevant (reuse standard trai=
ts).
> +
> +Examples:
> +  Provide (optional) Future<...> abstractions for event channels
> +  Provide a iterator-based (Stream ? [2]) abstraction for guest console.
> +
> +Don't restrict features to some execution environment, use modular abstr=
actions (e.g traits)
> +to allow the user to specify the missing bits himself / provide its own =
implementation.
> +Note that it doesn't prevent us from exposing the platform-specific bits=
 onto the
> +types themselves (e.g UnixXenEventChannel can still expose its file desc=
riptor).

Traits are superhelpful for dynamic dispatch and building type constraints.
Sometimes for enforcing interfaces if they are not all built at the same ti=
me.

What exactly are the benefits of subjecting all interfaces to traits? What =
do
they enable that cannot otherwise be done by extending the interface export=
ed
by some struct (say, an opaque filedesc wrapper)?

> +
> +Example:
> +  If we provide a event channel abstraction based on the hypercall but i=
t doesn't implement Future<...>,
> +  the user can still implement its own type on top of the hypercall impl=
ementation, and
> +  use its own async runtime (e.g based on interrupts) to implement Futur=
e<...> himself.
> +  There could be 2 traits for varying needs :
> +    EventChannel (base trait) and AsyncEventChannel (await-able EventCha=
nnel)
> +
> +  We can have both RawEventChannel based on XenHypercall that only imple=
ments EventChannel
> +  and another type TokioEventChannel that provides both EventChannel and=
 AsyncEventChannel
> +  and integrates with tokio runtime.

Not sure why traits would be essential here either. It's hard to assess wit=
hout
looking at a particular case where using traits effectively simplifies the
problem.

> +
> +Safe wrappers must be "sound" and unsafe code shall not cause undefined =
behavior.
> +- safe wrappers must not cause undefined behavior on their own
> +- unsafe code should not cause undefined behavior if properly used

I agree. The external interface must be soundly safe as far as reasonably
possible. And unsafe code must be adequately annotated with the cares that =
the
caller must have.

> +
> +This is a bit tricky due to some Xen specificities, but we expect hyperc=
all to be well
> +formed (we can add validation tools for that) including have its paramet=
er indirectly
> +respect the aliasing rules [3].

> +Although, we assume that Xen is well-behaving regarding its ABI.
> +We don't define misuse of a hypercall that can harm the guest himself, b=
ut we care
> +about not causing a undefined behavior (e.g by passing a buggy pointer) =
through the
> +hypercall interface that can overwrite unrelated/arbitrary kernel memory=
.
> +
> +## Hypercall interface
> +
> +We introduce a XenHypercall trait that exposes a raw primitive for makin=
g hypercalls.
> +This interface supposes nothing on the ABI used in Xen, and its the resp=
onsibility
> +of the user of such interface (often safe wrappers) that the hypercall m=
ade is
> +meaningful.
> +
> +This interface is mostly to only be used by the crate developpers to bui=
ld safe
> +wrappers on top, or by advanced user for using non-exposed/WIP hypercall=
 interfaces
> +or bypassing the safe wrappers.
> +
> +We can implement this interface for freestanding platforms using direct =
native hypercalls
> +(e.g using inline assembly) for freestanding platforms or in userland us=
ing special devices
> +like privcmd/xencall on most Unix platforms.
> +
> +```rust
> +pub trait XenHypercall: Sized {
> +    unsafe fn hypercall5(&self, cmd: usize, param: [usize; 5]) -> usize;
> +
> +    unsafe fn hypercall4(&self, cmd: usize, param: [usize; 4]) -> usize;
> +    unsafe fn hypercall3(&self, cmd: usize, param: [usize; 3]) -> usize;
> +    unsafe fn hypercall2(&self, cmd: usize, param: [usize; 2]) -> usize;
> +    unsafe fn hypercall1(&self, cmd: usize, param: usize) -> usize;
> +    unsafe fn hypercall0(&self, cmd: usize) -> usize;
> +
> +    /* ... */
> +}
> +```
> +
> +### Hypercall-safe buffers
> +
> +One difficulty is that in a freestanding environment, we need to use poi=
nters to
> +original data. But in a hosted environment, we need to make special buff=
ers instead
> +for that.
> +
> +We introduce the Xen{Const/Mut}Buffer generic trait that wraps a referen=
ce in a
> +"hypercall-safe" buffer that may or may not be a bounce buffer.
> +
> +```rust
> +/// Wrapper of a reference into a hypercall-safe buffer.
> +pub trait XenConstBuffer<T> {
> +    /// Get a hypercall-safe reference to underlying data.
> +    fn as_hypercall_ptr(&self) -> *const T;
> +}
> +
> +/// Wrapper of a mutable reference into a mutable hypercall-safe buffer.
> +pub trait XenMutBuffer<T> {
> +    /// Get a hypercall-safe mutable reference to underlying data.
> +    fn as_hypercall_ptr(&mut self) -> *mut T;
> +
> +    /// Update original reference with new data.
> +    unsafe fn update(&mut self);
> +}

Rather than trying to wrap the borrows I think it makes more sense to wrap
ownership. If we provide a xen::Box<T> type (not necessarily tied to a stan=
dard
allocator) that wraps ownership of its content then we can use the same typ=
e
for const and mut references (because it's just &T and &mut T after Deref a=
nd
DerefMut are implemented). Getting the pointers for hypercalls can be done =
via
the references. Like so:

  puf foo(p: *mut u8) {
      // something
  }

  puf main() {
      let mut var =3D 8;
      foo(&mut var);
  }

This is tip-toeing on UB by getting a *mut from a &mut, but
because the &mut is coerced into a *mut on function call this is both safe =
and
sound. Miri is happy with it too because it obeys stacked borrows.

That's for inputs. Pointer outputs are profoundly unsafe and I'm really hop=
ing
there's nothing that requires it. Fingers crossed...

> +
> +// The user will make those wrappers using dedicated functions in XenHyp=
ercall trait.
> +
> +trait XenHypercall: Sized {
> +    /* ... */
> +    type Error;
> +
> +    fn make_const_object<T: Copy + ?Sized>(
> +        &self,
> +        buffer: &T,
> +    ) -> Result<impl XenConstBuffer<T>, Self::Error>;
> +
> +    fn make_mut_buffer<T: Copy + ?Sized>(
> +        &self,
> +        buffer: &mut T,
> +    ) -> Result<impl XenMutBuffer<T>, Self::Error>;
> +
> +    fn make_const_slice<T: Copy + Sized>(
> +        &self,
> +        slice: &[T],
> +    ) -> Result<impl XenConstBuffer<T>, Self::Error>;
> +
> +    fn make_mut_slice<T: Copy + Sized>(
> +        &self,
> +        slice: &mut [T],
> +    ) -> Result<impl XenMutBuffer<T>, Self::Error>;
> +}
> +```

This is what I meant at the beginning. What's the advantage of having
XenConstBuffer (et al.) being a trait rather than a struct? You can access =
it's
interior via Deref and DerefMut (like Box<T> and Mutex<T> do) already, so t=
hey
can implement the same interface as T.

> +
> +Example use:
> +
> +```rust
> +fn demo_hypercall<H: XenHypercall>(interface: &H, buffer: &mut [u8]) -> =
Result<(), H::Error> {
> +    let buffer_size =3D buffer.len();
> +    // make a hypercall-safe wrapper of `buffer`
> +    let hyp_buffer =3D interface.make_mut_slice(buffer)?;
> +
> +    let op =3D SomeHypercallStruct {
> +        buffer: hyp_buffer.as_hypercall_ptr(),
> +        buffer_size: buffer_size as _,
> +    };
> +    // Do the same for hyp_op
> +    let hyp_op =3D interface.make_const_object(&op)?;
> +
> +    unsafe {
> +        interface.hypercall1(SOME_CMD, hyp_op.as_hypercall_ptr().addr())=
;
> +        // assume success
> +        hyp_buffer.update(); // update buffer back
> +    }
> +
> +    Ok(())
> +}
> +```

One of the bits I liked about the original libxen I showed at Xen Summit we=
re
the `IsSysCtl` and `IsDomctl` traits. We can generate them from xenbindgen
itself and use them as constraints so you don't try to use an invalid type =
for
a hypercall. It'll need tweaking, I guess. But the interface cannot be safe
until you can't mess up the arguments.

evtchn and gntops work differently, but the same idea ought to work.

> +need to use special functions for that (`core::ptr::slice_from_raw_parts=
` ?).
> +But for that, we need to know that T is actually a slice before using th=
is function.
> +
> +## Event channels
> +
> +TODO
> +
> +[1] - Interfacing Rust with Xen - Alejandro Vallejo, XenServer BU, Cloud=
 Software Group
> +https://youtu.be/iFh4n2kbAwM
> +
> +[2] - The Stream Trait
> +https://rust-lang.github.io/async-book/05_streams/01_chapter.html
> +
> +[3] - Aliasing
> +https://doc.rust-lang.org/nomicon/aliasing.html
> +
> +[4] - https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html
> +https://rust-lang.github.io/rfcs/3498-lifetime-capture-rules-2024.html

I think it'll be a while under we settle on a design.

My latest advances with xenbindgen involve formalizing evtchn, and that sho=
uld
be a fantastic playing ground for experimenting. I suspect we'll struggle t=
o
see the big picture until the foundational stuff is in place and we try to
expose real hypercalls.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Sat Nov 23 00:14:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 00:14:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842061.1257503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEdn0-0006bL-Fc; Sat, 23 Nov 2024 00:14:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842061.1257503; Sat, 23 Nov 2024 00:14: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 1tEdn0-0006bE-CI; Sat, 23 Nov 2024 00:14:18 +0000
Received: by outflank-mailman (input) for mailman id 842061;
 Sat, 23 Nov 2024 00:14: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=VklA=SS=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tEdmz-0006b6-2Z
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 00:14:17 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dca08cf6-a92f-11ef-99a3-01e77a169b0f;
 Sat, 23 Nov 2024 01:14:10 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 604EDA417BD;
 Sat, 23 Nov 2024 00:12:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4865EC4CECE;
 Sat, 23 Nov 2024 00: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: dca08cf6-a92f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6ImRjYTA4Y2Y2LWE5MmYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMzIwODUxLjIyNDgxNiwic2VuZGVyIjoic3N0YWJlbGxpbmlAa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732320849;
	bh=L4k5/BUZwAqxiFlJjfgkFBaLuaJWJbaI2TkCJ56pTAU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PXCmBawGxC2C2eylGbv+mZ7kHzneGY3ltGaHWguzhJGyOw93lwwe/yo2uKtSElVVn
	 Hc9lvECqouxn/Kxim+IeoCunqbNl6zFSfgYdQkY9qpKnKN1W4zCRenB7ajJvW2EgsZ
	 kBx7Fc9LOYSJ2NZwVAhOlfGFrJ37Ld7XRYTa58xvYgCOaVLYehi+dBMgGYqbD0AFjt
	 /0UcKFfhfMItKy5zRKUC6hfh+chQ/6Vd5oQSz2PHpPG9gSs3lsJuAYkwIGr5EOgFTD
	 hl+K7Y4Wp9xmBJeHMRRaJpPBfbdMgFEUZASqk0cwOafAlk2uDe+WHcSFOotW8fgrzV
	 M3P8zr+crKudg==
Date: Fri, 22 Nov 2024 16:14:04 -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>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH] docs/sphinx: Refresh config for newer Sphinx
In-Reply-To: <20241122165102.3240758-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411221613380.11605@ubuntu-linux-20-04-desktop>
References: <20241122165102.3240758-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, 22 Nov 2024, Andrew Cooper wrote:
> Sphinx 5.0 and newer objects to language = None.  Switch to 'en'.
> 
> Also update the copyright year.  Use %Y to avoid this problem in the future,
> and provide compatibility for versions of Sphinx prior to 8.1 which don't
> support the syntax.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> 
> This is in prepartion to get a Gitlab CI docs job, and to activate Sphinx's
> -Werror equivelent.
> ---
>  docs/conf.py | 21 +++++++++++++--------
>  1 file changed, 13 insertions(+), 8 deletions(-)
> 
> diff --git a/docs/conf.py b/docs/conf.py
> index 50e41501db8f..5d2e97944900 100644
> --- a/docs/conf.py
> +++ b/docs/conf.py
> @@ -3,9 +3,8 @@
>  #
>  # Configuration file for the Sphinx documentation builder.
>  #
> -# This file does only contain a selection of the most common options. For a
> -# full list see the documentation:
> -# http://www.sphinx-doc.org/en/master/config
> +# For the full list of built-in configuration values, see the documentation:
> +# https://www.sphinx-doc.org/en/master/usage/configuration.html
>  
>  # -- Path setup --------------------------------------------------------------
>  
> @@ -19,11 +18,18 @@
>  
>  
>  # -- Project information -----------------------------------------------------
> +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
> +
> +import sphinx
>  
>  project = u'Xen'
> -copyright = u'2019, The Xen development community'
> +copyright = u'2019-%Y, The Xen development community'
>  author = u'The Xen development community'
>  
> +if sphinx.version_info < (8, 1):
> +    from datetime import datetime
> +    copyright = datetime.today().strftime(copyright)
> +
>  # Pull the Xen version straight out of the Makefile
>  try:
>      xen_ver = xen_subver = xen_extra = None
> @@ -45,6 +51,7 @@ finally:
>          version = release = u"unknown version"
>  
>  # -- General configuration ---------------------------------------------------
> +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
>  
>  # If your documentation needs a minimal Sphinx version, state it here.
>  #
> @@ -69,10 +76,7 @@ master_doc = 'index'
>  
>  # The language for content autogenerated by Sphinx. Refer to documentation
>  # for a list of supported languages.
> -#
> -# This is also used if you do content translation via gettext catalogs.
> -# Usually you set "language" from the command line for these cases.
> -language = None
> +language = 'en'
>  
>  # List of patterns, relative to source directory, that match files and
>  # directories to ignore when looking for source files.
> @@ -86,6 +90,7 @@ primary_domain = 'c'
>  highlight_language = 'none'
>  
>  # -- Options for HTML output -------------------------------------------------
> +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
>  
>  # The theme to use for HTML and HTML Help pages.  See the documentation for
>  # a list of builtin themes.
> 
> base-commit: c0bf8816c9e2a4701c925d8b23abfda5990a0087
> prerequisite-patch-id: b4ef4fc3ee5669c078aa0b9c7501ac7ef673966c
> -- 
> 2.39.5
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 23 00:15:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 00:15:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842068.1257513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEdny-00074x-OK; Sat, 23 Nov 2024 00:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842068.1257513; Sat, 23 Nov 2024 00:15: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 1tEdny-00074q-LH; Sat, 23 Nov 2024 00:15:18 +0000
Received: by outflank-mailman (input) for mailman id 842068;
 Sat, 23 Nov 2024 00:15: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=VklA=SS=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tEdny-00074X-5I
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 00:15:18 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0348455d-a930-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 01:15:15 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 83C85A417BD;
 Sat, 23 Nov 2024 00:13:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FA1EC4CECE;
 Sat, 23 Nov 2024 00:15: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: 0348455d-a930-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjAzNDg0NTVkLWE5MzAtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzIwOTE1LjkyODk2LCJzZW5kZXIiOiJzc3RhYmVsbGluaUBrZXJuZWwub3JnIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732320914;
	bh=YlHkbIybHaKke3z7OEd0iJd4bQeYwuyD02PPiOGWLs4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=sVGMWeJm9w8AJKJbbU8mQFdqfnfin7Bc1PzvYMV31kR68ykKUXZvea+9SisQMIdvD
	 fD7DEDvHkKN+JgM+LlabPuVbjrbeBT/AHy/NFAGysyRwt2tnF6rLtVB/GUkmegth4n
	 HRP/KxOjDWT3dOboZOLwAyYi5gOreIw1OWKaV/IEzVg/eQ/IXE0ikccrFUjmizNoJv
	 nQv5uI9zYq8vGJqal8ci3MecgmGcdNuWB33F9AQkGn9kV98lG6WYTHfw8Q9hvtg7Eg
	 ieYniguknSsul0HwGMKcloIMvUgXZE5OGKEpzy/FMrhtqhPK4j8g7d6XwFnaKKSyHU
	 ftNxWAtmEt3Cw==
Date: Fri, 22 Nov 2024 16:15:12 -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>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    ayankuma@amd.com
Subject: Re: [PATCH] docs/sphinx: Fix FUSA indexing
In-Reply-To: <20241122164908.3240056-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2411221614530.11605@ubuntu-linux-20-04-desktop>
References: <20241122164908.3240056-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

+Ayan

On Fri, 22 Nov 2024, Andrew Cooper wrote:
> Sphinx complains:
> 
>   docs/fusa/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs'
>   docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/market-reqs'
>   docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/product-reqs'
>   docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/design-reqs/arm64'
> 
>   docs/fusa/index.rst: WARNING: document isn't included in any toctree
>   docs/fusa/reqs/design-reqs/arm64/generic-timer.rst: WARNING: document isn't included in any toctree
>   docs/fusa/reqs/design-reqs/arm64/sbsa-uart.rst: WARNING: document isn't included in any toctree
>   docs/fusa/reqs/index.rst: WARNING: document isn't included in any toctree
>   docs/fusa/reqs/market-reqs/reqs.rst: WARNING: document isn't included in any toctree
>   docs/fusa/reqs/product-reqs/arm64/reqs.rst: WARNING: document isn't included in any toctree
> 
> Fix the toctrees.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> 
> I'm also going to prioritise getting a docs test in Gitlab CI.
> ---
>  docs/fusa/index.rst      | 2 +-
>  docs/fusa/reqs/index.rst | 7 ++++---
>  docs/index.rst           | 1 +
>  3 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/docs/fusa/index.rst b/docs/fusa/index.rst
> index 13bf4e8e23f1..5f1e8acfc429 100644
> --- a/docs/fusa/index.rst
> +++ b/docs/fusa/index.rst
> @@ -6,4 +6,4 @@ Functional Safety documentation
>  .. toctree::
>     :maxdepth: 2
>  
> -   reqs
> +   reqs/index
> diff --git a/docs/fusa/reqs/index.rst b/docs/fusa/reqs/index.rst
> index 183f183b1f8c..8a4dae6fb249 100644
> --- a/docs/fusa/reqs/index.rst
> +++ b/docs/fusa/reqs/index.rst
> @@ -7,6 +7,7 @@ Requirements documentation
>     :maxdepth: 2
>  
>     intro
> -   market-reqs
> -   product-reqs
> -   design-reqs/arm64
> +   market-reqs/reqs
> +   product-reqs/arm64/reqs
> +   design-reqs/arm64/generic-timer
> +   design-reqs/arm64/sbsa-uart
> diff --git a/docs/index.rst b/docs/index.rst
> index ab051a0f3833..1d44796d7296 100644
> --- a/docs/index.rst
> +++ b/docs/index.rst
> @@ -65,6 +65,7 @@ Documents in need of some rearranging.
>     designs/launch/hyperlaunch-devicetree
>     misc/xen-makefiles/makefiles
>     misra/index
> +   fusa/index
>  
>  
>  Miscellanea
> 
> base-commit: c0bf8816c9e2a4701c925d8b23abfda5990a0087
> prerequisite-patch-id: c6d7da051cd408c9f38d32ecdd24807bfbe619d1
> -- 
> 2.39.5
> 


From xen-devel-bounces@lists.xenproject.org Sat Nov 23 07:42:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 07:42:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842083.1257523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEkmJ-0004KR-Cw; Sat, 23 Nov 2024 07:42:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842083.1257523; Sat, 23 Nov 2024 07:42: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 1tEkmJ-0004KK-9j; Sat, 23 Nov 2024 07:42:03 +0000
Received: by outflank-mailman (input) for mailman id 842083;
 Sat, 23 Nov 2024 07: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=U4h7=SS=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tEkmH-0004KE-RJ
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 07:42:01 +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 6906ecc1-a96e-11ef-99a3-01e77a169b0f;
 Sat, 23 Nov 2024 08:41:54 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3822ec43fb0so2211909f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 22 Nov 2024 23:41:54 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3825faf9f59sm4480231f8f.34.2024.11.22.23.41.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Nov 2024 23:41: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: 6906ecc1-a96e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY5MDZlY2MxLWE5NmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMzQ3NzE0Ljc5MjQ0OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732347714; x=1732952514; 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=BHtiFrlnk5wNQ2xcKnNmkcEGMOHMkcIDcdpbC7dGDSo=;
        b=V+HpdQ3am5JFyYSmo/cGvE+dmV3w/sSaWZPLY9OgnV2xSrFg7Ne6i3Kh/iAPjFor77
         lH9VMR+weghbZQ5RvrfyW6x+7dgC4pfZ0QZZlp+Qwasy0zJsgAk77fYEKZ45feQ9EAW8
         uuA0iKuWKdDMwIEZuA7oVjDWLkfZuIXlEin/k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732347714; x=1732952514;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BHtiFrlnk5wNQ2xcKnNmkcEGMOHMkcIDcdpbC7dGDSo=;
        b=Z40pDj3CtubvvM8MYnl7Dm3he8yTSOj7METAbpWiF0saxOpN9adAdweAUy4VnuQuLe
         qp67dmLysFF8A60Ott40rj9cko12l3BdKWJaUpeQJneVSqsrEOhIo8hc3zm0N4EGKiBr
         8Jy8Yw8QudQwosGdM2VfM+1s7LmzFetHHSsFk/KUdkBPzEsCWq5kJ3f3t5Y6sNsieQ8/
         EAsTrE0B6mQDiVWZfCWHtKufGikGycb2AT38kPe/u6AI1qepm95bqt4GNrD4QgBz2z+o
         SAP9pHP4NmAEkSrEbZtuDbCiBsKpcEkE6pySfJDgp71LChS2ldkGEVGOD31CsTMM0GsO
         qVIA==
X-Forwarded-Encrypted: i=1; AJvYcCU8LiJbkpLtzofXnc5UMJuTomdN39o7YtQgOAvaqf0y8NwfeW8HS/BbtPwRitA6bX/0z1Nhg8yK/fk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgLkQOhRsUZsgVItkvMKtUzZVU3krIeUZVDbQ2f36QLgJjZE0o
	bu5wsugfq3l1UdSmmQFikukAoLrMLvnpcUESfX6FEQI8U9deHBJnQZrFX9kra0k=
X-Gm-Gg: ASbGncvdm61qZjw2rnWlth7pZfQKsZVFNZLWyYcMu2u0py7muYgtDKZCjXk9Go5qpJG
	xHpwIKatt1AHQleLgqj5un4MTH4m8OP5SicAo5W+i1262SoEObHBRqKsocwaza2YG2g5aWd9Qcs
	G0biMEcVcQICi6k2pHU3MFzWesDM+f53Kv0JJRKSj4/+1X3ZFQlVjUQ1teCo5ppa37YMY5CRxGo
	fEAr34da7U6mo3nrA5qs33NjI5RAfCsK5ZPOX9AXEvnPNPZB4zVKkyKyXK8h33ti/wXYVKDH0wm
	cdGCVi/26L89Yg==
X-Google-Smtp-Source: AGHT+IHli3gx8osuPd7o6qYuw2BpJ0B3JryQsLmqWDY+w9IJvpsF+i2Hhngscr6so58rch9oCtr5Cg==
X-Received: by 2002:a05:6000:1acc:b0:382:58b7:e538 with SMTP id ffacd0b85a97d-38260b44c73mr4236083f8f.4.1732347714140;
        Fri, 22 Nov 2024 23:41:54 -0800 (PST)
Message-ID: <1c3f9ae2-cde3-4e7e-aff3-63ec36bb5b4a@citrix.com>
Date: Sat, 23 Nov 2024 07:41:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] Add stack protector
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.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>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/11/2024 9:07 pm, Volodymyr Babchuk wrote:
> Both GCC and Clang support -fstack-protector feature, which add stack
> canaries to functions where stack corruption is possible. This series
> makes possible to use this feature in Xen. I tested this on ARM64 and
> it is working as intended. Tested both with GCC and Clang.
>
> My aim was to enable it on x86 also, but it appears that on x86 GCC
> stores canary value in TLS, exactly at fs:40, which is hardcoded. As
> Xen does not setup fs register for itself, any attempt to enable stack
> protector leads to paging abort.

It's rather worse than a #PF, if a devious PV guest decides to map
memory at 0.

There's a long and complicated history with stack-protector on x86.

It is %fs:40 by default, but this becomes %gs:40 with -mcmodel=kernel
(which Xen doesn't use, but is necessary to know if anyone wants to look
at how Linux does this.)

Xen on x86 uses neither %fs nor %gs for per-cpu variables, because PV
guests do.Â  This happens to have saved us from a number of privilege
escalation corner cases that exist in the x86 architecture.Â  I'm very
reluctant to open ourselves up to such problems just to support
stack-protector.


With GCC 8.1, we get -mstack-protector-{guard,reg,offset} to fine-tune
things a whole lot more.Â  I am not sure when these got into Clang.

In particular, -mstack-protector-guard=global lets us have a scheme that
seems to be the same as the ARM/RISCV, which is probably good enough to
start with, although it involves restarting the toolchain debate and is
probably not something you want to do in this series.

See
https://lore.kernel.org/lkml/20241105155801.1779119-1-brgerst@gmail.com/T/#u
for most of the gory details.

> I also tested build-ability for RISCV platform, but didn't tested that
> it does not break anything, so we will need RISCV maintainer's
> approval.

There's a RISC-V smoke test in gitlab CI, but you can run it locally too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:21:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842120.1257532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuku-0005pb-BW; Sat, 23 Nov 2024 18:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842120.1257532; Sat, 23 Nov 2024 18:21: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 1tEuku-0005pU-7v; Sat, 23 Nov 2024 18:21:16 +0000
Received: by outflank-mailman (input) for mailman id 842120;
 Sat, 23 Nov 2024 18:21: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEuks-0005pL-5F
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:21:14 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2de7249-a9c7-11ef-99a3-01e77a169b0f;
 Sat, 23 Nov 2024 19:21:05 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386051024795.9445222351329;
 Sat, 23 Nov 2024 10:20: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: b2de7249-a9c7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIyZGU3MjQ5LWE5YzctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMzg2MDY1LjU1Nzk0LCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1732386055; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=cyr6SphN1TzNA5gVS8DhTzUN93cgAFFXdGuRoThv4ntaDTU6ssmkHmFgQuSRZmuVSbqPQ9fVoUlyVgZqbRxkEUeJR2SB40gfmtA+2uDPLQCk/rOGavH5rsZGBl8Rm94HAnPXdkLvWiPpNa54LKIoDJXk44oEEbfytr16NWp5DKs=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386055; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=VWLTMeVY/BgSfVokbokg8/c1048zkf8Kiscp++nQonw=; 
	b=npSU/XQdxDzvPR/l1F/F1APkuEE7dQg9ixQEt/UsOa3NmdBnaYMy7tqym5EISH9yJBRGd7ckQomj08uZ9JJl6bHlPP74M8RwbmD78xD4iHJjFYAPgw86QQEehC5ZlXWoMUF0OcesZis1QCc/p/nkaqqKUrCVVzYpfJbcOu3C2ss=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386055;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=VWLTMeVY/BgSfVokbokg8/c1048zkf8Kiscp++nQonw=;
	b=YrPGO1rFkrHMxnhLbVDapM+uuoQIq8730l1DXntjuEDkp7ZQ5SdAvKEMRnEvrlEo
	Y+3OMQCUJXmvgPAXaz12YQ4pLEDlMi7HhvnC5QfLFk9Ihcgt2gur4M5QGdhO4ffRsxc
	bhLOK28V73NP+o1OmdT/H17FnHRPeURzKpOOjC1s=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@amd.com
Subject: [PATCH 00/15] Hyperlaunch device tree for dom0
Date: Sat, 23 Nov 2024 13:20:29 -0500
Message-Id: <20241123182044.30687-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The Hyperlaunch device tree for dom0 series is the second split out for the
introduction of the Hyperlaunch domain builder logic. These changes focus on
introducing the ability to express a domain configuration that is then used to
populate the struct boot_domain structure for dom0. This ability to express a
domain configuration provides the next step towards a general domain builder.

The splitting of Hyperlaunch into a set of series are twofold, to reduce the
effort in reviewing a much larger series, and to reduce the effort in handling
the knock-on effects to the construction logic from requested review changes.

Much thanks to AMD for supporting this work.

Documentation on Hyperlaunch:
https://wiki.xenproject.org/wiki/Hyperlaunch

Original Hyperlaunch v1 patch series:
https://lists.xenproject.org/archives/html/xen-devel/2022-07/msg00345.html

V/r,
Daniel P. Smith

Daniel P. Smith (15):
  x86/boot: introduce boot domain
  x86/boot: introduce domid field to struct boot_domain
  x86/boot: add cmdline to struct boot_domain
  kconfig: introduce option to independently enable libfdt
  kconfig: introduce domain builder config option
  x86/hyperlaunch: introduce the domain builder
  x86/hyperlaunch: initial support for hyperlaunch device tree
  x86/hyperlaunch: locate dom0 kernel with hyperlaunch
  x86/hyperlaunch: obtain cmdline from device tree
  x86/hyperlaunch: locate dom0 initrd with hyperlaunch
  x86/hyperlaunch: add domain id parsing to domain config
  x86/hyperlaunch: specify dom0 mode with device tree
  x86/hyperlaunch: add memory parsing to domain config
  x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
  x86/hyperlaunch: add capabilities to boot domain

 xen/arch/x86/Kconfig                     |   2 +
 xen/arch/x86/Makefile                    |   2 +
 xen/arch/x86/dom0_build.c                |  19 +-
 xen/arch/x86/domain_builder/Kconfig      |  15 +
 xen/arch/x86/domain_builder/Makefile     |   3 +
 xen/arch/x86/domain_builder/core.c       | 109 +++++++
 xen/arch/x86/domain_builder/fdt.c        | 395 +++++++++++++++++++++++
 xen/arch/x86/domain_builder/fdt.h        |  94 ++++++
 xen/arch/x86/hvm/dom0_build.c            |  23 +-
 xen/arch/x86/include/asm/bootdomain.h    |  53 +++
 xen/arch/x86/include/asm/bootinfo.h      |  15 +-
 xen/arch/x86/include/asm/dom0_build.h    |   6 +-
 xen/arch/x86/include/asm/domainbuilder.h |  12 +
 xen/arch/x86/include/asm/setup.h         |   4 +-
 xen/arch/x86/pv/dom0_build.c             |  28 +-
 xen/arch/x86/setup.c                     | 140 +++++---
 xen/common/Kconfig                       |   4 +
 xen/common/Makefile                      |   2 +-
 18 files changed, 836 insertions(+), 90 deletions(-)
 create mode 100644 xen/arch/x86/domain_builder/Kconfig
 create mode 100644 xen/arch/x86/domain_builder/Makefile
 create mode 100644 xen/arch/x86/domain_builder/core.c
 create mode 100644 xen/arch/x86/domain_builder/fdt.c
 create mode 100644 xen/arch/x86/domain_builder/fdt.h
 create mode 100644 xen/arch/x86/include/asm/bootdomain.h
 create mode 100644 xen/arch/x86/include/asm/domainbuilder.h

-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:21:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842121.1257543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEul1-000651-J2; Sat, 23 Nov 2024 18:21:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842121.1257543; Sat, 23 Nov 2024 18:21: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 1tEul1-00064u-FE; Sat, 23 Nov 2024 18:21:23 +0000
Received: by outflank-mailman (input) for mailman id 842121;
 Sat, 23 Nov 2024 18:21: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEul0-0005pL-Jp
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:21:22 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id badd0d31-a9c7-11ef-99a3-01e77a169b0f;
 Sat, 23 Nov 2024 19:21:18 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386053316340.2128762400505;
 Sat, 23 Nov 2024 10: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: badd0d31-a9c7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJhZGQwZDMxLWE5YzctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMzg2MDc4Ljk3ODE3Miwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386057; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=gIkAybyGGgWyc6umRoRbvZTAKVhMfEJcebmS9OHYeFLPXUpjP8wOomQrZWAMCR02A7BLyEVzob1xcuWTVzzw5nqXLvWXzz84cXWaw37PTPtELauvB0iSDzMwXzQN2idYXBn2zhHSCLY0sxRi0mrYuQZcVUcs3XFtonLCiINgoHA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386057; h=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=M7ik0aSzKPd3BJHMKYDz05cECtsesKuj5O3Ckc6jgOI=; 
	b=ah5rvWfHS8BpdbspXOS5Hljr1Nd22/AsN8W43IRtkhql2whVluUmWXz4u29CaOQCmLN98oDPGod9ZupKc6GyRE9NNCs/EuwGDuOfKYBHzn4IPMhyXxnxXXNhP0svV2rknZFaws+n9CxCk0WIEyw60shltSgHAjl1j+jWLKSBPNE=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386057;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=M7ik0aSzKPd3BJHMKYDz05cECtsesKuj5O3Ckc6jgOI=;
	b=MO187BFOEfivCgIzO/ESTHGOMXBN4URPneHKSYgOhHBIDwVU2cGLYEI86cQKRmW7
	wGL8iuwRg0qhdyqccHeePK4wiwSVJOuJdG+b20PzcsdzLaeOTwYd+0J1Om1tnYCYu6u
	rywHp7kcaVs1FWMFfmjnIK1yUtsVg6NiL8G2bILI=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 01/15] x86/boot: introduce boot domain
Date: Sat, 23 Nov 2024 13:20:30 -0500
Message-Id: <20241123182044.30687-2-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

To begin moving toward allowing the hypervisor to construct more than one
domain at boot, a container is needed for a domain's build information.
Introduce a new header, <xen/asm/bootdomain.h>, that contains the initial
struct boot_domain that encapsulate the build information for a domain.

Add a kernel and ramdisk boot module reference along with a struct domain
reference to the new struct boot_domain. This allows a struct boot_domain
reference to be the only parameter necessary to pass down through the domain
construction call chain.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

---
Changes since boot modules v9
- dropped unlikely

Changes since v8:
- code style correction
---
 xen/arch/x86/dom0_build.c             |  8 ++++---
 xen/arch/x86/hvm/dom0_build.c         | 17 +++++----------
 xen/arch/x86/include/asm/bootdomain.h | 31 +++++++++++++++++++++++++++
 xen/arch/x86/include/asm/bootinfo.h   |  5 +++++
 xen/arch/x86/include/asm/dom0_build.h |  6 +++---
 xen/arch/x86/include/asm/setup.h      |  4 ++--
 xen/arch/x86/pv/dom0_build.c          | 24 +++++++--------------
 xen/arch/x86/setup.c                  | 24 +++++++++------------
 8 files changed, 69 insertions(+), 50 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/bootdomain.h

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index e8f5bf5447bc..c231191faec7 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -13,6 +13,7 @@
 #include <xen/softirq.h>
 
 #include <asm/amd.h>
+#include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
 #include <asm/guest.h>
 #include <asm/hpet.h>
@@ -596,9 +597,10 @@ int __init dom0_setup_permissions(struct domain *d)
     return rc;
 }
 
-int __init construct_dom0(struct boot_info *bi, struct domain *d)
+int __init construct_dom0(struct boot_domain *bd)
 {
     int rc;
+    const struct domain *d = bd->d;
 
     /* Sanity! */
     BUG_ON(!pv_shim && d->domain_id != 0);
@@ -608,9 +610,9 @@ int __init construct_dom0(struct boot_info *bi, struct domain *d)
     process_pending_softirqs();
 
     if ( is_hvm_domain(d) )
-        rc = dom0_construct_pvh(bi, d);
+        rc = dom0_construct_pvh(bd);
     else if ( is_pv_domain(d) )
-        rc = dom0_construct_pv(bi, d);
+        rc = dom0_construct_pv(bd);
     else
         panic("Cannot construct Dom0. No guest interface available\n");
 
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index ce5b5c31b318..a9384af14304 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1301,26 +1301,19 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
     }
 }
 
-int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
+int __init dom0_construct_pvh(struct boot_domain *bd)
 {
     paddr_t entry, start_info;
-    struct boot_module *image;
-    struct boot_module *initrd = NULL;
-    unsigned int idx;
+    struct boot_module *image = bd->kernel;
+    struct boot_module *initrd = bd->ramdisk;
+    struct domain *d = bd->d;
     int rc;
 
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
 
-    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( idx >= bi->nr_modules )
+    if ( image == NULL )
         panic("Missing kernel boot module for %pd construction\n", d);
 
-    image = &bi->mods[idx];
-
-    idx = first_boot_module_index(bi, BOOTMOD_RAMDISK);
-    if ( idx < bi->nr_modules )
-        initrd = &bi->mods[idx];
-
     if ( is_hardware_domain(d) )
     {
         /*
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
new file mode 100644
index 000000000000..12c19ab37bd8
--- /dev/null
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2024 Apertus Solutions, LLC
+ * Author: Daniel P. Smith <dpsmith@apertussolutions.com>
+ * Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
+ */
+
+#ifndef __XEN_X86_BOOTDOMAIN_H__
+#define __XEN_X86_BOOTDOMAIN_H__
+
+struct boot_module;
+struct domain;
+
+struct boot_domain {
+    struct boot_module *kernel;
+    struct boot_module *ramdisk;
+
+    struct domain *d;
+};
+
+#endif
+
+/*
+ * 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/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index f8b422913063..9f65e2c8f62d 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -11,10 +11,14 @@
 #include <xen/init.h>
 #include <xen/multiboot.h>
 #include <xen/types.h>
+#include <asm/bootdomain.h>
 
 /* Max number of boot modules a bootloader can provide in addition to Xen */
 #define MAX_NR_BOOTMODS 63
 
+/* Max number of boot domains that Xen can construct */
+#define MAX_NR_BOOTDOMS 1
+
 /* Boot module binary type / purpose */
 enum bootmod_type {
     BOOTMOD_UNKNOWN,
@@ -78,6 +82,7 @@ struct boot_info {
 
     unsigned int nr_modules;
     struct boot_module mods[MAX_NR_BOOTMODS + 1];
+    struct boot_domain domains[MAX_NR_BOOTDOMS];
 };
 
 /*
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 2d67b17213dc..8c94e87dc576 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -13,9 +13,9 @@ unsigned long dom0_compute_nr_pages(struct domain *d,
                                     unsigned long initrd_len);
 int dom0_setup_permissions(struct domain *d);
 
-struct boot_info;
-int dom0_construct_pv(struct boot_info *bi, struct domain *d);
-int dom0_construct_pvh(struct boot_info *bi, struct domain *d);
+struct boot_domain;
+int dom0_construct_pv(struct boot_domain *bd);
+int dom0_construct_pvh(struct boot_domain *bd);
 
 unsigned long dom0_paging_pages(const struct domain *d,
                                 unsigned long nr_pages);
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 5c2391a8684b..b517da6144de 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -26,8 +26,8 @@ void subarch_init_memory(void);
 
 void init_IRQ(void);
 
-struct boot_info;
-int construct_dom0(struct boot_info *bi, struct domain *d);
+struct boot_domain;
+int construct_dom0(struct boot_domain *bd);
 
 void setup_io_bitmap(struct domain *d);
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index f54d1da5c6f4..e0709a1c1a7a 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -355,7 +355,7 @@ static struct page_info * __init alloc_chunk(struct domain *d,
     return page;
 }
 
-static int __init dom0_construct(struct boot_info *bi, struct domain *d)
+static int __init dom0_construct(struct boot_domain *bd)
 {
     unsigned int i;
     int rc, order, machine;
@@ -371,14 +371,15 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
     struct page_info *page = NULL;
     unsigned int flush_flags = 0;
     start_info_t *si;
+    struct domain *d = bd->d;
     struct vcpu *v = d->vcpu[0];
 
-    struct boot_module *image;
-    struct boot_module *initrd = NULL;
+    struct boot_module *image = bd->kernel;
+    struct boot_module *initrd = bd->ramdisk;
     void *image_base;
     unsigned long image_len;
     void *image_start;
-    unsigned long initrd_len = 0;
+    unsigned long initrd_len = initrd ? initrd->size : 0;
 
     l4_pgentry_t *l4tab = NULL, *l4start = NULL;
     l3_pgentry_t *l3tab = NULL, *l3start = NULL;
@@ -416,22 +417,13 @@ static int __init dom0_construct(struct boot_info *bi, struct domain *d)
 
     printk(XENLOG_INFO "*** Building a PV Dom%d ***\n", d->domain_id);
 
-    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( i >= bi->nr_modules )
+    if ( !image )
         panic("Missing kernel boot module for %pd construction\n", d);
 
-    image = &bi->mods[i];
     image_base = bootstrap_map_bm(image);
     image_len = image->size;
     image_start = image_base + image->headroom;
 
-    i = first_boot_module_index(bi, BOOTMOD_RAMDISK);
-    if ( i < bi->nr_modules )
-    {
-        initrd = &bi->mods[i];
-        initrd_len = initrd->size;
-    }
-
     d->max_pages = ~0U;
 
     if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
@@ -1078,7 +1070,7 @@ out:
     return rc;
 }
 
-int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
+int __init dom0_construct_pv(struct boot_domain *bd)
 {
     unsigned long cr4 = read_cr4();
     int rc;
@@ -1096,7 +1088,7 @@ int __init dom0_construct_pv(struct boot_info *bi, struct domain *d)
         write_cr4(cr4 & ~X86_CR4_SMAP);
     }
 
-    rc = dom0_construct(bi, d);
+    rc = dom0_construct(bd);
 
     if ( cr4 & X86_CR4_SMAP )
     {
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d8661d7ca699..460157def8ea 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -977,16 +977,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
         },
     };
+    struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
     domid_t domid;
-    struct boot_module *image;
-    unsigned int idx;
-
-    idx = first_boot_module_index(bi, BOOTMOD_KERNEL);
-    if ( idx >= bi->nr_modules )
-        panic("Missing kernel boot module for building domain\n");
-
-    image = &bi->mods[idx];
 
     if ( opt_dom0_pvh )
     {
@@ -1013,11 +1006,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         panic("Error creating d%uv0\n", domid);
 
     /* Grab the DOM0 command line. */
-    if ( image->cmdline_pa || bi->kextra )
+    if ( bd->kernel->cmdline_pa || bi->kextra )
     {
-        if ( image->cmdline_pa )
-            safe_strcpy(
-                cmdline, cmdline_cook(__va(image->cmdline_pa), bi->loader));
+        if ( bd->kernel->cmdline_pa )
+            safe_strcpy(cmdline,
+                        cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader));
 
         if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
@@ -1039,10 +1032,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             safe_strcat(cmdline, acpi_param);
         }
 
-        image->cmdline_pa = __pa(cmdline);
+        bd->kernel->cmdline_pa = __pa(cmdline);
     }
 
-    if ( construct_dom0(bi, d) != 0 )
+    bd->d = d;
+    if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
     return d;
@@ -1249,6 +1243,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     /* Dom0 kernel is always first */
     bi->mods[0].type = BOOTMOD_KERNEL;
+    bi->domains[0].kernel = &bi->mods[0];
 
     if ( pvh_boot )
     {
@@ -2110,6 +2105,7 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
+        bi->domains[0].ramdisk = &bi->mods[initrdidx];
         if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMODS )
             printk(XENLOG_WARNING
                    "Multiple initrd candidates, picking module #%u\n",
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:21:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842124.1257553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEulE-0006SW-PH; Sat, 23 Nov 2024 18:21:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842124.1257553; Sat, 23 Nov 2024 18: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 1tEulE-0006SP-MN; Sat, 23 Nov 2024 18:21:36 +0000
Received: by outflank-mailman (input) for mailman id 842124;
 Sat, 23 Nov 2024 18:21: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEulD-0005pL-As
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:21:35 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2b5ba2c-a9c7-11ef-99a3-01e77a169b0f;
 Sat, 23 Nov 2024 19:21:31 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386055104491.61463410551505;
 Sat, 23 Nov 2024 10:20: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: c2b5ba2c-a9c7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMyYjViYTJjLWE5YzctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMzg2MDkyLjAwODkwOSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386059; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=K1uAHTeIGO53ndbxGR7cK3NhvO+SlT0YVCMHCF/6G4dQGk0stnrh82Fb3T1qksxCO0/NTDxgdUc+A9jShaYCesweNCaQ181aebLdEM+++gSnXTfFWAWYeIfTnK5fyNKCU56BIFJ8/8+1B6lsl1+EYVQx9IrP18FkDDHwghuaUGQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386059; h=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=GLAmJCFT18dTLQQRusDt7pLXOrCOqVBeVV2VQ8odAtI=; 
	b=cJp0c6uC6f9nfJP5dgY43HBqatEJ0qg8ZBFKOfL8VOMyE/hj/lQC7lMjDqzW/bHmudXnT4mOAa9mVkqFVKRLr8Br0b11119ttDajioKmBmhr0/U/mX30/NZ6jhKaI7QduZhSDi7JChJSS4PS5T8nzZWcPltFx5o9B9rGjIozNy0=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386059;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=GLAmJCFT18dTLQQRusDt7pLXOrCOqVBeVV2VQ8odAtI=;
	b=VLMLQ98dtFyNI0B5nEKpGCmeOPnUdRMmOWSidv9KwJX+Y6tmWvULyeji/8Vsuvco
	TuAL9LKgjV3YLCt+hqlCjIWVgzJdp3T049lHVaEcdkK1EUERc6JIVtB77eBVtpV3DRW
	W8ZsB82Z0dmQcL9UdwK+MzA8o0gddX5DdAk9rbJE=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 02/15] x86/boot: introduce domid field to struct boot_domain
Date: Sat, 23 Nov 2024 13:20:31 -0500
Message-Id: <20241123182044.30687-3-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add a domid field to struct boot_domain to hold the assigned domain id for the
domain. During initialization, ensure all instances of struct boot_domain have
the invalid domid to ensure that the domid must be set either by convention or
configuration.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
Changes since v9 boot modules
- missing include for domid_t def
---
 xen/arch/x86/include/asm/bootdomain.h |  4 ++++
 xen/arch/x86/setup.c                  | 12 +++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 12c19ab37bd8..bcbf36b13f25 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -5,6 +5,8 @@
  * Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
  */
 
+#include <public/xen.h>
+
 #ifndef __XEN_X86_BOOTDOMAIN_H__
 #define __XEN_X86_BOOTDOMAIN_H__
 
@@ -12,6 +14,8 @@ struct boot_module;
 struct domain;
 
 struct boot_domain {
+    domid_t domid;
+
     struct boot_module *kernel;
     struct boot_module *ramdisk;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 460157def8ea..a2178d5e8cc5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -339,6 +339,9 @@ static struct boot_info *__init multiboot_fill_boot_info(
     /* Variable 'i' should be one entry past the last module. */
     bi->mods[i].type = BOOTMOD_XEN;
 
+    for ( i = 0; i < MAX_NR_BOOTDOMS; i++ )
+        bi->domains[i].domid = DOMID_INVALID;
+
     return bi;
 }
 
@@ -979,7 +982,6 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     };
     struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
-    domid_t domid;
 
     if ( opt_dom0_pvh )
     {
@@ -995,15 +997,15 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
     /* Create initial domain.  Not d0 for pvshim. */
-    domid = get_initial_domain_id();
-    d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    bd->domid = get_initial_domain_id();
+    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
     if ( IS_ERR(d) )
-        panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
+        panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
     init_dom0_cpuid_policy(d);
 
     if ( alloc_dom0_vcpu0(d) == NULL )
-        panic("Error creating d%uv0\n", domid);
+        panic("Error creating d%uv0\n", bd->domid);
 
     /* Grab the DOM0 command line. */
     if ( bd->kernel->cmdline_pa || bi->kextra )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:21:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842130.1257562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEulP-0006xs-04; Sat, 23 Nov 2024 18:21:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842130.1257562; Sat, 23 Nov 2024 18: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 1tEulO-0006xl-TK; Sat, 23 Nov 2024 18:21:46 +0000
Received: by outflank-mailman (input) for mailman id 842130;
 Sat, 23 Nov 2024 18:21: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEulN-0006MT-Oc
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:21:45 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c946c568-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:21:42 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386056772694.2528303649441;
 Sat, 23 Nov 2024 10:20: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: c946c568-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5NDZjNTY4LWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTAyLjk1MjAxMywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386061; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=nI9yP9H+KknU1cIqdsrbidXbV1o40VvzQL3RE4LJI+Fr5xGAhl7MZWvJvgPIYKxSNfJipf9pA4qKnV0ux7TlWHJmMH4O7HN6pT3rJg2TAocrbNlhWUjGJMmda07mLANZOs0d4Ioe+xX2dlmTCh85cIk+8M4YuezMk/exDcwrT2U=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386061; h=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=I+F0axhJZN1WzppDStYP9VFrjwWkiiTOqoo1NlWCXfk=; 
	b=YiqmIjUKSJaCs2BEEjAkEfs99nKq0ZpZlq+pvoIFthNAWQ7EsPx6axFdGDc6Ltd9DGIHSNsZ6VEcAA3u4g4RjslLYG90ZhIYRZqEGCCyTawF55siXX+f+vggXRWNKp/E/e5xHGxmNTf2X9+owvq0jq4uUP/RYGH0MBZkmirTvJc=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386061;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=I+F0axhJZN1WzppDStYP9VFrjwWkiiTOqoo1NlWCXfk=;
	b=d6V8YTvs5eP4xhtYlkBLMJpwEM0w4OCwmAha/7+q2Y0nMvaSXAa54KvO+fhbeaWg
	QhB7WMkB6QV1/iLi3288NIdoBGXApKIOC6sfChEP4zoxYrqe9opynyY6O8ePBuGpbCv
	i6MPKMiFaSuN6Qc1g7vK/ghCOWKZpbETZqqf7EIo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 03/15] x86/boot: add cmdline to struct boot_domain
Date: Sat, 23 Nov 2024 13:20:32 -0500
Message-Id: <20241123182044.30687-4-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add a container for the "cooked" command line for a domain. This provides for
the backing memory to be directly associated with the domain being constructed.
This is done in anticipation that the domain construction path may need to be
invoked multiple times, thus ensuring each instance had a distinct memory
allocation.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes since v9 boot modules:
- convert pvh_load_kernel to boot domain to directly use cmdline
- adjustments to domain_cmdline_size
  - remove ASSERT and return 0 instead
  - use strlen() of values instead of hardcoded sizes
- update cmdline parsing check to inspect multiboot string and not just pointer
- add goto to skip cmdline processing if domain_cmdline_size returns 0
- drop updating cmdline_pa with dynamic buffer with change of its last consumer
  pvh_load_kernel

Changes since v8:
- switch to a dynamically allocated buffer
- dropped local cmdline var in pv dom0_construct()

Changes since v7:
- updated commit message to expand on intent and purpose
---
 xen/arch/x86/hvm/dom0_build.c         | 12 +++---
 xen/arch/x86/include/asm/bootdomain.h |  2 +
 xen/arch/x86/pv/dom0_build.c          |  4 +-
 xen/arch/x86/setup.c                  | 54 ++++++++++++++++++++++-----
 4 files changed, 54 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index a9384af14304..cbc365d678d2 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -644,9 +644,11 @@ static bool __init check_and_adjust_load_address(
 }
 
 static int __init pvh_load_kernel(
-    struct domain *d, struct boot_module *image, struct boot_module *initrd,
-    paddr_t *entry, paddr_t *start_info_addr)
+    struct boot_domain *bd, paddr_t *entry, paddr_t *start_info_addr)
 {
+    struct domain *d = bd->d;
+    struct boot_module *image = bd->kernel;
+    struct boot_module *initrd = bd->ramdisk;
     void *image_base = bootstrap_map_bm(image);
     void *image_start = image_base + image->headroom;
     unsigned long image_len = image->size;
@@ -1304,14 +1306,12 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
 int __init dom0_construct_pvh(struct boot_domain *bd)
 {
     paddr_t entry, start_info;
-    struct boot_module *image = bd->kernel;
-    struct boot_module *initrd = bd->ramdisk;
     struct domain *d = bd->d;
     int rc;
 
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
 
-    if ( image == NULL )
+    if ( bd->kernel == NULL )
         panic("Missing kernel boot module for %pd construction\n", d);
 
     if ( is_hardware_domain(d) )
@@ -1351,7 +1351,7 @@ int __init dom0_construct_pvh(struct boot_domain *bd)
         return rc;
     }
 
-    rc = pvh_load_kernel(d, image, initrd, &entry, &start_info);
+    rc = pvh_load_kernel(bd, &entry, &start_info);
     if ( rc )
     {
         printk("Failed to load Dom0 kernel\n");
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index bcbf36b13f25..ffda1509a63f 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -14,6 +14,8 @@ struct boot_module;
 struct domain;
 
 struct boot_domain {
+    const char *cmdline;
+
     domid_t domid;
 
     struct boot_module *kernel;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index e0709a1c1a7a..580f2703a154 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -972,8 +972,8 @@ static int __init dom0_construct(struct boot_domain *bd)
     }
 
     memset(si->cmd_line, 0, sizeof(si->cmd_line));
-    if ( image->cmdline_pa )
-        strlcpy((char *)si->cmd_line, __va(image->cmdline_pa), sizeof(si->cmd_line));
+    if ( bd->cmdline )
+        strlcpy((char *)si->cmd_line, bd->cmdline, sizeof(si->cmd_line));
 
 #ifdef CONFIG_VIDEO
     if ( !pv_shim && fill_console_start_info((void *)(si + 1)) )
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index a2178d5e8cc5..e6580382d247 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -965,10 +965,29 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
     return n;
 }
 
-static struct domain *__init create_dom0(struct boot_info *bi)
+static size_t __init domain_cmdline_size(
+    struct boot_info *bi, struct boot_domain *bd)
 {
-    static char __initdata cmdline[MAX_GUEST_CMDLINE];
+    size_t s = bi->kextra ? strlen(bi->kextra) : 0;
+
+    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
+
+    if ( s == 0 )
+        return s;
+
+    /*
+     * Certain parameters from the Xen command line may be added to the dom0
+     * command line. Add additional space for the possible cases along with one
+     * extra char to hold \0.
+     */
+    s += strlen(" noapic") + strlen(" acpi=") + sizeof(acpi_param) + 1;
+
+    return s;
+}
 
+static struct domain *__init create_dom0(struct boot_info *bi)
+{
+    char *cmdline = NULL;
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
@@ -1008,19 +1027,30 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         panic("Error creating d%uv0\n", bd->domid);
 
     /* Grab the DOM0 command line. */
-    if ( bd->kernel->cmdline_pa || bi->kextra )
+    if ( (bd->kernel->cmdline_pa &&
+          ((char *)__va(bd->kernel->cmdline_pa))[0]) ||
+         bi->kextra )
     {
+        size_t cmdline_size = domain_cmdline_size(bi, bd);
+
+        if ( cmdline_size == 0 )
+            goto skip_cmdline;
+
+        if ( !(cmdline = xzalloc_array(char, cmdline_size)) )
+            panic("Error allocating cmdline buffer for %pd\n", d);
+
         if ( bd->kernel->cmdline_pa )
-            safe_strcpy(cmdline,
-                        cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader));
+            strlcpy(cmdline,
+                    cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),
+                    cmdline_size);
 
         if ( bi->kextra )
             /* kextra always includes exactly one leading space. */
-            safe_strcat(cmdline, bi->kextra);
+            strlcat(cmdline, bi->kextra, cmdline_size);
 
         /* Append any extra parameters. */
         if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
-            safe_strcat(cmdline, " noapic");
+            strlcat(cmdline, " noapic", cmdline_size);
 
         if ( (strlen(acpi_param) == 0) && acpi_disabled )
         {
@@ -1030,17 +1060,21 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
         if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
         {
-            safe_strcat(cmdline, " acpi=");
-            safe_strcat(cmdline, acpi_param);
+            strlcat(cmdline, " acpi=", cmdline_size);
+            strlcat(cmdline, acpi_param, cmdline_size);
         }
 
-        bd->kernel->cmdline_pa = __pa(cmdline);
+        bd->cmdline = cmdline;
     }
 
+ skip_cmdline:
     bd->d = d;
     if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
+    if ( cmdline )
+        xfree(cmdline);
+
     return d;
 }
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:21:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842135.1257573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEulY-0007QZ-CF; Sat, 23 Nov 2024 18:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842135.1257573; Sat, 23 Nov 2024 18:21: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 1tEulY-0007QO-82; Sat, 23 Nov 2024 18:21:56 +0000
Received: by outflank-mailman (input) for mailman id 842135;
 Sat, 23 Nov 2024 18:21: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEulW-0006MT-CX
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:21:54 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ceeccf12-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:21:52 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386058592745.5673185331648;
 Sat, 23 Nov 2024 10:20: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: ceeccf12-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNlZWNjZjEyLWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTEyLjU2Mjg1LCJzZW5kZXIiOiJkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; t=1732386062; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=SnFo088t2rfUVSWrOoGKtu1gmKKaiQm9jnSngpa10SC2uFNfMP6eh2Ijhg4M1QzZ4eZA0RRvWK9Ha996hzzUq4Wz7xnIyQ7voOwqJGdqapAb7y1TOn1juJwX92F3+W2jBfFjyQWSfhR19OBSYZafPkwMuwj1hA+Jl3CoWsL6wJA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386062; h=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=7kQp6O2mc6cHBoZxlvkzYOcwjpPdg5e+ctsTL3O8uUc=; 
	b=aIKQMKIxIOGZ7cnv7741xU4l+9Ty3TFGW0RPn3m2kC01WEJK8DOwEL/ANY9tX7clAEc5pd/qcNWTuKHKm3zvqDuTF19mqktmmZiVOKBEN9j9g8VxPImkUhJuMtGzMEf40bp2HNlSXivt9r/YJESA/vYu24l3/kBq21pzKrpWEPA=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386062;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=7kQp6O2mc6cHBoZxlvkzYOcwjpPdg5e+ctsTL3O8uUc=;
	b=tGgFlmFjTwLuS/GwUqS49R+PuhQxKEw82ykmASFJLgWAiZMfZg09YQKHEJf53o7y
	Frnd97WcgeQCwWtqF7+qgb3qQQmSTNNfkxjanjRRFON+2puENB5WrMInHGTqEDCwjku
	hNlqyZqdBa+ecHdkhsY1E7l8J4bmzjs9cpn0sOvo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@amd.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 04/15] kconfig: introduce option to independently enable libfdt
Date: Sat, 23 Nov 2024 13:20:33 -0500
Message-Id: <20241123182044.30687-5-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Currently the inclusion of libfdt is controlled by the CONFIG_HAS_DEVICE_TREE
kconfig flag. This flag also changes behvaior in a few places, such as boot
module processing for XSM. To support the ability to include libfdt without
changing these behaviors, introduce CONFIG_LIB_DEVICE_TREE. The inclusion of
libfdt is then moved under CONFIG_LIB_DEVICE_TREE.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/common/Kconfig  | 4 ++++
 xen/common/Makefile | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 90268d92499a..5c592dbdc703 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -53,8 +53,12 @@ config HAS_ALTERNATIVE
 config HAS_COMPAT
 	bool
 
+config LIB_DEVICE_TREE
+    bool
+
 config HAS_DEVICE_TREE
 	bool
+    select LIB_DEVICE_TREE
 
 config HAS_DIT # Data Independent Timing
 	bool
diff --git a/xen/common/Makefile b/xen/common/Makefile
index b279b09bfb2b..ff1795de5dda 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -78,7 +78,7 @@ obj-y += sched/
 obj-$(CONFIG_UBSAN) += ubsan/
 
 obj-$(CONFIG_NEEDS_LIBELF) += libelf/
-obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/
+obj-$(CONFIG_LIB_DEVICE_TREE) += libfdt/
 
 CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(objtree)/)$(KCONFIG_CONFIG)
 $(obj)/config.gz: $(CONF_FILE)
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:23:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:23:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842146.1257583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEunP-0008OY-NF; Sat, 23 Nov 2024 18:23:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842146.1257583; Sat, 23 Nov 2024 18:23: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 1tEunP-0008OR-KC; Sat, 23 Nov 2024 18:23:51 +0000
Received: by outflank-mailman (input) for mailman id 842146;
 Sat, 23 Nov 2024 18:23: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEunN-0008OL-R3
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:23:49 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12f8c85e-a9c8-11ef-99a3-01e77a169b0f;
 Sat, 23 Nov 2024 19:23:46 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386076488696.0833111040206;
 Sat, 23 Nov 2024 10:21: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: 12f8c85e-a9c8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEyZjhjODVlLWE5YzgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyMzg2MjI2LjQ3NTY0NSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386081; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=T+mA76iBA1TcOBLOKRxAmyDYO7cT37goqM0wyAVnB3jGTpFBGMJH+CYXP1vptb902FhHAtSkWBsayFvWYTQdBJMdDplLYQBXkCNjRLM5R0z0YGm40Vij4auGCI2N5/m1rw64g2OMBIqb38CP69q15OrRGtg7gbDquayuwJ+zm2U=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386081; h=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=kGDrQzVGJffHLng67CVtl7JaehFGVtrHTRbUgIidSbY=; 
	b=Gh0kjY7wAwKetrAzgASO0zmvpK5j7LEtxYZ8E0ZncQlONLliPcwV2Rxb+7alua6NQYqDJER2emMob9O6cBTxZ4CWXVvQK6JgJaJ+8OFrpM78yWILtf8hXTKnpabQRbbe3Kym2yPg6zxYWlum/YGbRMcvJmvSJV1bZHwIw656hCg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386081;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=kGDrQzVGJffHLng67CVtl7JaehFGVtrHTRbUgIidSbY=;
	b=pp1Zn23W/AezqSEvTrK72Wd0GClkVvC62Eov5f65Kgog1ZaEBMu+l0OZQaEsUIgk
	iWV1cAb27Cnmbl1Tf7kMPYmDpw8DbYnNnq5dXsDQX9Z7xfNe51hRASm3cpUTqh3HYDY
	IZ+q4OSbjePDCpdYzWjwqS5RzLydJrxSOUzPn1/Y=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 15/15] x86/hyperlaunch: add capabilities to boot domain
Date: Sat, 23 Nov 2024 13:20:44 -0500
Message-Id: <20241123182044.30687-16-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the ability to assign capabilities to a domain via its definition in
device tree. The first capability enabled to select is the control domain
capability. The capability property is a bitfield in both the device tree and
`struct boot_domain`.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain_builder/core.c    |  2 +-
 xen/arch/x86/domain_builder/fdt.c     | 13 +++++++++++++
 xen/arch/x86/include/asm/bootdomain.h |  4 ++++
 xen/arch/x86/setup.c                  |  6 +++++-
 4 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
index 95cab06e6159..eaa019472724 100644
--- a/xen/arch/x86/domain_builder/core.c
+++ b/xen/arch/x86/domain_builder/core.c
@@ -93,9 +93,9 @@ void __init builder_init(struct boot_info *bi)
         i = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
         bi->mods[i].type = BOOTMOD_KERNEL;
         bi->domains[0].kernel = &bi->mods[i];
+        bi->domains[0].capabilities |= BUILD_CAPS_CONTROL;
         bi->nr_domains = 1;
     }
-
 }
 
 /*
diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index d24e265f2378..9499e337938c 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -209,6 +209,19 @@ static int __init process_domain_node(
             bd->max_vcpus = val;
             printk("  max vcpus: %d\n", bd->max_vcpus);
         }
+        if ( match_fdt_property(fdt, prop, "capabilities" ) )
+        {
+            if ( fdt_prop_as_u32(prop, &bd->capabilities) != 0 )
+            {
+                printk("  failed processing domain id for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+            printk("  caps: ");
+            if ( bd->capabilities & BUILD_CAPS_CONTROL )
+                printk("c");
+            printk("\n");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index d144d6173400..51ebf1f68189 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -18,6 +18,10 @@ struct boot_domain {
 
     domid_t domid;
 
+#define BUILD_CAPS_NONE          (0)
+#define BUILD_CAPS_CONTROL       (1 << 0)
+    uint32_t capabilities;
+
                                           /* On     | Off    */
 #define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
 #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index dae25721994d..28e750a420e8 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -992,6 +992,7 @@ static size_t __init domain_cmdline_size(
 static struct domain *__init create_dom0(struct boot_info *bi)
 {
     char *cmdline = NULL;
+    int create_flags = 0;
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
@@ -1023,7 +1024,10 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     /* Create initial domain.  Not d0 for pvshim. */
     if ( bd->domid == DOMID_INVALID )
         bd->domid = get_initial_domain_id();
-    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    if ( bd->capabilities & BUILD_CAPS_CONTROL )
+            create_flags |= CDF_privileged;
+    d = domain_create(bd->domid, &dom0_cfg,
+                      pv_shim ? 0 : create_flags);
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842161.1257597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEutp-0001eb-HR; Sat, 23 Nov 2024 18:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842161.1257597; Sat, 23 Nov 2024 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 1tEutp-0001eD-Dt; Sat, 23 Nov 2024 18:30:29 +0000
Received: by outflank-mailman (input) for mailman id 842161;
 Sat, 23 Nov 2024 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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEun4-0006MT-E1
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:23:30 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 080b27b4-a9c8-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:23:28 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386073413790.5767891836485;
 Sat, 23 Nov 2024 10:21: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: 080b27b4-a9c8-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA4MGIyN2I0LWE5YzgtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MjA4LjM5MDI3NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386077; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Fr24IfvJgyLHtBIZMvNA8kHeL2+RsVYv0RhJ4yAxFJyTlxqYn2D4FRww19YzzMwu76LQkFoybkoEwI17HCd0Sa+xTIQ/d7UE41XZumujoS7XXWmnVttuLPBumDhYyajuwiQfMivW/9rJRhyBG5dV7jwKZg3kdnTTu8vkUbbj93o=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386077; h=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=cScA2Yfp0/eaEM0ZCMnKxC8CljJcPTHUxp3FhbTB/C4=; 
	b=dDB77pWuYRQ2YVkbG3j4HZSjXhguTE57cU6E8ID9VY+4YqlJSNsYLlDUGdbOyf80Es+2Pk7R6Q0TuK7luoRHkvYzkChBFTTEAms+bIQvSYafRzMAWPpSdOjeA1Drlvn/l6BJyQklEDBq/MHbylFj0McbR9nU10KceRSsDp8reB4=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386077;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=cScA2Yfp0/eaEM0ZCMnKxC8CljJcPTHUxp3FhbTB/C4=;
	b=U77LMkFA0Ehw9RB61uLGdSeicuHgW1VBgmtWneKnZbKmT+ikxCJcAJhJ8y+m7anF
	Q16kWVHgNeS6bhrYJybjBlGJ8oAXS7ysJx3L+iPSPxKamzdV06KMvleaWDtvHOv2OOq
	19dhIMoUpNk5YdSGHbk+wFtdwj/SBrABg6zrlbec=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 13/15] x86/hyperlaunch: add memory parsing to domain config
Date: Sat, 23 Nov 2024 13:20:42 -0500
Message-Id: <20241123182044.30687-14-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add three properties, memory, mem-min, and mem-max, to the domain node device
tree parsing to define the memory allocation for a domain. All three fields are
expressed in kb and written as a u64 in the device tree entries.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c             |  8 ++++++
 xen/arch/x86/domain_builder/fdt.c     | 37 +++++++++++++++++++++++++++
 xen/arch/x86/domain_builder/fdt.h     |  9 +++++++
 xen/arch/x86/include/asm/bootdomain.h |  4 +++
 4 files changed, 58 insertions(+)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index c231191faec7..1c3b7ff0e658 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -609,6 +609,14 @@ int __init construct_dom0(struct boot_domain *bd)
 
     process_pending_softirqs();
 
+    /* If param dom0_size was not set and HL config provided memory size */
+    if ( !get_memsize(&dom0_size, LONG_MAX) && bd->mem_pages )
+        dom0_size.nr_pages = bd->mem_pages;
+    if ( !get_memsize(&dom0_min_size, LONG_MAX) && bd->min_pages )
+        dom0_size.nr_pages = bd->min_pages;
+    if ( !get_memsize(&dom0_max_size, LONG_MAX) && bd->max_pages )
+        dom0_size.nr_pages = bd->max_pages;
+
     if ( is_hvm_domain(d) )
         rc = dom0_construct_pvh(bd);
     else if ( is_pv_domain(d) )
diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index 09e72d96a752..b8ace5c18c6a 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -7,6 +7,7 @@
 #include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
 #include <xen/rangeset.h> /* required for asm/setup.h */
+#include <xen/sizes.h>
 
 #include <asm/bootinfo.h>
 #include <asm/guest.h>
@@ -160,6 +161,42 @@ static int __init process_domain_node(
             else
                 printk("PV\n");
         }
+        if ( match_fdt_property(fdt, prop, "memory" ) )
+        {
+            uint64_t kb;
+            if ( fdt_prop_as_u64(prop, &kb) != 0 )
+            {
+                printk("  failed processing memory for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+            bd->mem_pages = PFN_DOWN(kb * SZ_1K);
+            printk("  memory: %ld\n", bd->mem_pages << PAGE_SHIFT);
+        }
+        if ( match_fdt_property(fdt, prop, "mem-min" ) )
+        {
+            uint64_t kb;
+            if ( fdt_prop_as_u64(prop, &kb) != 0 )
+            {
+                printk("  failed processing memory for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+            bd->min_pages = PFN_DOWN(kb * SZ_1K);
+            printk("  min memory: %ld\n", bd->min_pages << PAGE_SHIFT);
+        }
+        if ( match_fdt_property(fdt, prop, "mem-max" ) )
+        {
+            uint64_t kb;
+            if ( fdt_prop_as_u64(prop, &kb) != 0 )
+            {
+                printk("  failed processing memory for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+            bd->max_pages = PFN_DOWN(kb * SZ_1K);
+            printk("  max memory: %ld\n", bd->max_pages << PAGE_SHIFT);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
diff --git a/xen/arch/x86/domain_builder/fdt.h b/xen/arch/x86/domain_builder/fdt.h
index 06ead05a2583..73d02019b3c7 100644
--- a/xen/arch/x86/domain_builder/fdt.h
+++ b/xen/arch/x86/domain_builder/fdt.h
@@ -36,6 +36,15 @@ static inline int __init fdt_prop_as_u32(
     return fdt_cell_as_u32((fdt32_t *)prop->data, val);
 }
 
+static inline int __init fdt_prop_as_u64(
+    const struct fdt_property *prop, uint64_t *val)
+{
+    if ( !prop || fdt32_to_cpu(prop->len) < sizeof(u64) )
+        return -EINVAL;
+
+    return fdt_cell_as_u64((fdt32_t *)prop->data, val);
+}
+
 static inline bool __init match_fdt_property(
     const void *fdt, const struct fdt_property *prop, const char *s)
 {
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 50c33d183e07..9a5ba2931665 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -24,6 +24,10 @@ struct boot_domain {
 #define BUILD_MODE_LONG          (1 << 2) /* 64 BIT | 32 BIT  */
     uint32_t mode;
 
+    unsigned long mem_pages;
+    unsigned long min_pages;
+    unsigned long max_pages;
+
     struct boot_module *kernel;
     struct boot_module *ramdisk;
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842162.1257613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEutr-00027W-Oj; Sat, 23 Nov 2024 18:30:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842162.1257613; Sat, 23 Nov 2024 18:30: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 1tEutr-00027E-Ky; Sat, 23 Nov 2024 18:30:31 +0000
Received: by outflank-mailman (input) for mailman id 842162;
 Sat, 23 Nov 2024 18:30: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEumZ-0006MT-Es
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:22:59 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f5953219-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:22:57 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386068616924.1851128683724;
 Sat, 23 Nov 2024 10:21: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: f5953219-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY1OTUzMjE5LWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTc3LjIzOTQyNiwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386073; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=O2H3MgRv1sOoO7bTYKOWHf8SEqYjZeaNb5QEwUVLaWUHqNNdDCPCkbuqq7zVs3nu6PG9d4gvzo06ME8I+UxlgNFoYKpGzAyC5GvNutgNa0XxQvhYdrcqb9JvRZTpbuPUO/SXy26XlYLfZ83UtkbFH7YSHKZzbGxJCN/v4ZtGOTY=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386073; h=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=scVK3BeFw1PvCPw+5+IJFV23lyxFsbSuS2LWmdnsIGU=; 
	b=WAGg98RlGwHi+eBGWTjI5a90lKB1xyPtHab/BmbdRdNDmBkc2ksi57bRXLazi/m4ff9ELwyyHl4/Ij/c+m++6+oWEndd2qHJ7NB1dORxkfkW5stb0qJm4656027ZhFe0bp5k3ZANNRXojTTbzl8LM9BxHp1xi/NaqKQ6wlb5k1s=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386072;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=scVK3BeFw1PvCPw+5+IJFV23lyxFsbSuS2LWmdnsIGU=;
	b=oPaf+LuNH1U8j4O9iPJgi844HDJIy9ob5SKz5Wr0pVlo5NtUYgxp5NElWPVH7fAA
	FisYz8cvC9diNy6SLXC1e904Q0zFGaGpeRViEXaTfmp8xA1xAV41cn9yY9CCghsXbQS
	ZSs1/rXeeu3zWQmXY0rxYLbDxTu9czevbKf5RQiA=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 10/15] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
Date: Sat, 23 Nov 2024 13:20:39 -0500
Message-Id: <20241123182044.30687-11-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Look for a subnode of type `multiboot,ramdisk` within a domain node. If
found, process the reg property for the MB1 module index.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain_builder/fdt.c | 25 ++++++++++++++++++++++
 xen/arch/x86/setup.c              | 35 +++++++++++++++++--------------
 2 files changed, 44 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index f8ddb11b339e..bc8054a80ec1 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -152,6 +152,31 @@ static int __init process_domain_node(
                 if ( ret > 0 )
                     bd->kernel->fdt_cmdline = true;
             }
+
+            continue;
+        }
+        if ( fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )
+        {
+            int idx = dom0less_module_node(fdt, node, size_size, address_size);
+            if ( idx < 0 )
+            {
+                printk("  failed processing ramdisk module for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+
+            if ( idx > bi->nr_modules )
+            {
+                printk("  invalid ramdisk module index for domain node (%d)\n",
+                       bi->nr_domains);
+                return -EINVAL;
+            }
+
+            printk("  ramdisk: boot module %d\n", idx);
+            bi->mods[idx].type = BOOTMOD_RAMDISK;
+            bd->ramdisk = &bi->mods[idx];
+
+            continue;
         }
     }
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index fda4fc71e205..eaac87b02f78 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1094,7 +1094,7 @@ void asmlinkage __init noreturn __start_xen(void)
     char *kextra;
     void *bsp_stack;
     struct cpu_info *info = get_cpu_info(), *bsp_info;
-    unsigned int initrdidx, num_parked = 0;
+    unsigned int num_parked = 0;
     struct boot_info *bi;
     unsigned long nr_pages, raw_max_page;
     int i, j, e820_warn = 0, bytes = 0;
@@ -2137,22 +2137,25 @@ void asmlinkage __init noreturn __start_xen(void)
            cpu_has_nx ? XENLOG_INFO : XENLOG_WARNING "Warning: ",
            cpu_has_nx ? "" : "not ");
 
-    /*
-     * At this point all capabilities that consume boot modules should have
-     * claimed their boot modules. Find the first unclaimed boot module and
-     * claim it as the initrd ramdisk. Do a second search to see if there are
-     * any remaining unclaimed boot modules, and report them as unusued initrd
-     * candidates.
-     */
-    initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
-    if ( initrdidx < MAX_NR_BOOTMODS )
+    if ( !bi->hyperlaunch_enabled )
     {
-        bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
-        bi->domains[0].ramdisk = &bi->mods[initrdidx];
-        if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMODS )
-            printk(XENLOG_WARNING
-                   "Multiple initrd candidates, picking module #%u\n",
-                   initrdidx);
+        /*
+         * At this point all capabilities that consume boot modules should have
+         * claimed their boot modules. Find the first unclaimed boot module and
+         * claim it as the initrd ramdisk. Do a second search to see if there are
+         * any remaining unclaimed boot modules, and report them as unusued initrd
+         * candidates.
+         */
+        unsigned int initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
+        if ( initrdidx < MAX_NR_BOOTMODS )
+        {
+            bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
+            bi->domains[0].ramdisk = &bi->mods[initrdidx];
+            if ( first_boot_module_index(bi, BOOTMOD_UNKNOWN) < MAX_NR_BOOTMODS )
+                printk(XENLOG_WARNING
+                       "Multiple initrd candidates, picking module #%u\n",
+                       initrdidx);
+        }
     }
 
     /*
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842159.1257593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEutp-0001cd-AZ; Sat, 23 Nov 2024 18:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842159.1257593; Sat, 23 Nov 2024 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 1tEutp-0001cW-7X; Sat, 23 Nov 2024 18:30:29 +0000
Received: by outflank-mailman (input) for mailman id 842159;
 Sat, 23 Nov 2024 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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEumj-0006MT-A4
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:23:09 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb581bfc-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:23:06 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386070200329.6100039493838;
 Sat, 23 Nov 2024 10:21: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: fb581bfc-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZiNTgxYmZjLWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTg3LjI2NzE5Nywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386074; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ZWs7IeWmT+umhUvpU7XzMc5NSNYPa2xdZ//G3vlWJrGcHG+XLZKlJskDcaCplPQL7sAuY51YkBhay6Qm0GACCLbOJiA2wu+pr5XqDgTkK/dFge4znJDFzHc1+yx42GZOSCy/RubAX7ILpCMTWGWHPk2/EHAfit3IsZtZyNbuiSU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386074; h=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=rShRbMHkLlgH633oW5JK+yICpJ3QPlDKQOW5Dw/tj1E=; 
	b=c+QTZlnWB/6t8ESve8HX/NXxfaFSjKuCJMf9kcI4yJECTug1cNu361+SlG01/4bxF1kumkbeGBQ2LTZk+lq2zA8/CccfGt8IU2I5R833Zo6dPEVPUerhWfYVbCOoIIfdi0veRCzCCHYTJ50cPW5iOiX8/ljDHza66+LvsnpF3j0=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386074;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=rShRbMHkLlgH633oW5JK+yICpJ3QPlDKQOW5Dw/tj1E=;
	b=C4oxj/A5x5OlBNpLcZe+QXpmLmgtDOfUiweDTX8bQixEYJseDHIBjKvSv9+/VE1i
	TYXjfP+3gFZaibMYg0RZ2MiBzS7Qer5govgBP2pvfRrtIZwfDV4KeJxQUZfwsEYN9nm
	KqyUvUXqM1OYu38WNr/wmzpd9JNSSy+AP1omBBf4=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 11/15] x86/hyperlaunch: add domain id parsing to domain config
Date: Sat, 23 Nov 2024 13:20:40 -0500
Message-Id: <20241123182044.30687-12-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the ability to specify the desired domain id for the domain
definition. The domain id will be populated in the domid property of the domain
node in the device tree configuration.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain_builder/fdt.c | 31 ++++++++++++++++++++++++++++++-
 xen/arch/x86/domain_builder/fdt.h | 18 ++++++++++++++++++
 xen/arch/x86/setup.c              |  3 ++-
 3 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index bc8054a80ec1..3a6b4fbc09a9 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -9,6 +9,7 @@
 #include <xen/rangeset.h> /* required for asm/setup.h */
 
 #include <asm/bootinfo.h>
+#include <asm/guest.h>
 #include <asm/page.h>
 #include <asm/setup.h>
 
@@ -107,7 +108,7 @@ static int __init dom0less_module_node(
 static int __init process_domain_node(
     struct boot_info *bi, void *fdt, int dom_node)
 {
-    int node;
+    int node, property;
     struct boot_domain *bd = &bi->domains[bi->nr_domains];
     const char *name = fdt_get_name(fdt, dom_node, NULL);
     int address_size = fdt_address_cells(fdt, dom_node);
@@ -120,6 +121,28 @@ static int __init process_domain_node(
         return -EINVAL;
     }
 
+    fdt_for_each_property_offset(property, fdt, dom_node)
+    {
+        const struct fdt_property *prop;
+
+        prop = fdt_get_property_by_offset(fdt, property, NULL);
+        if ( !prop )
+            continue; /* silently skip */
+
+        if ( match_fdt_property(fdt, prop, "domid" ) )
+        {
+            uint32_t val = DOMID_INVALID;
+            if ( fdt_prop_as_u32(prop, &val) != 0 )
+            {
+                printk("  failed processing domain id for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+            bd->domid = (domid_t)val;
+            printk("  domid: %d\n", bd->domid);
+        }
+    }
+
     fdt_for_each_subnode(node, fdt, dom_node)
     {
         if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
@@ -186,6 +209,12 @@ static int __init process_domain_node(
         return -EFAULT;
     }
 
+    if ( bd->domid == DOMID_INVALID )
+        bd->domid = get_initial_domain_id();
+    else
+        if ( bd->domid != get_initial_domain_id() )
+            printk(XENLOG_WARNING "WARN: unsuported booting not using initial domid\n");
+
     return 0;
 }
 
diff --git a/xen/arch/x86/domain_builder/fdt.h b/xen/arch/x86/domain_builder/fdt.h
index ab2b43872e25..06ead05a2583 100644
--- a/xen/arch/x86/domain_builder/fdt.h
+++ b/xen/arch/x86/domain_builder/fdt.h
@@ -27,6 +27,24 @@ static inline int __init fdt_cell_as_u64(const fdt32_t *cell, uint64_t *val)
     return 0;
 }
 
+static inline int __init fdt_prop_as_u32(
+    const struct fdt_property *prop, uint32_t *val)
+{
+    if ( !prop || fdt32_to_cpu(prop->len) < sizeof(u32) )
+        return -EINVAL;
+
+    return fdt_cell_as_u32((fdt32_t *)prop->data, val);
+}
+
+static inline bool __init match_fdt_property(
+    const void *fdt, const struct fdt_property *prop, const char *s)
+{
+    int slen, len = strlen(s);
+    const char *p = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &slen);
+
+    return p && (slen == len) && (memcmp(p, s, len) == 0);
+}
+
 static inline int __init fdt_cmdline_prop_size(const void *fdt, int offset)
 {
     int ret;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index eaac87b02f78..317349b80ac6 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1020,7 +1020,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
     /* Create initial domain.  Not d0 for pvshim. */
-    bd->domid = get_initial_domain_id();
+    if ( bd->domid == DOMID_INVALID )
+        bd->domid = get_initial_domain_id();
     d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842170.1257623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuu3-0002ij-6a; Sat, 23 Nov 2024 18:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842170.1257623; Sat, 23 Nov 2024 18:30: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 1tEuu3-0002ic-2l; Sat, 23 Nov 2024 18:30:43 +0000
Received: by outflank-mailman (input) for mailman id 842170;
 Sat, 23 Nov 2024 18: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEuln-0006MT-9s
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:22:11 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8eb2951-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:22:08 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386060588445.6400500771855;
 Sat, 23 Nov 2024 10:21: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: d8eb2951-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ4ZWIyOTUxLWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTI5LjMzMTY5NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386064; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=LuKtf6yGrosFtvb+ZQDDnHtqkFccL6yvnBuL7iLv4HM+7KvvSt/33sBY0MF+skZy/ryyb+b0S+GX3Ka+8TenUsNLvVMZWwP7LvuQoYW7QfGYWpX4TCZS4uxtz53N6O772TeQei+PR8IiXfCGI2NdFzXv+3s7LEY8oJR49PL/NpU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386064; h=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=lbJ1kYoT11hAmwZ4EpUrvdMfSFs0q+QjdARR8BxX4a0=; 
	b=HRP2q0nhKt7/tNLQfZkFss67cRQhCbW8x5Z5PQpvaMUZ7r6gKmkQq9QezLKxIyPsp5yfvhyCj5e7jF+HMlb6Z9To/0yeRY5i6BGzk8RVEp5wT/hDe9j35fHskqylWqIwEshmbwIrHILxY23+7Mlr45JdaRGlwPwv2qVwhpH4wIg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386064;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=lbJ1kYoT11hAmwZ4EpUrvdMfSFs0q+QjdARR8BxX4a0=;
	b=k7Wy/bENWPhRGKEvUdRPIm3xlLwULPPWHkSVOrfQ4QVzm++6BtfUHQw+V8UDJTcV
	XQl/jMz1DtIqVeS9mxL4Db0RNl52G7/CKN2Oq4hQN6fAyRtkkGxuM82xP+AJIdL52Qu
	ri/GcnolgcqI1hFaVbETq2B3k7jAcNQm+HJiPh30=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 05/15] kconfig: introduce domain builder config option
Date: Sat, 23 Nov 2024 13:20:34 -0500
Message-Id: <20241123182044.30687-6-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Hyperlaunch domain builder will be the consolidated boot time domain building
logic framework. Introduces the config option to enable this domain builder to
and turn on the ability to load the domain configuration via a flattened device
tree.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/Kconfig                |  2 ++
 xen/arch/x86/domain_builder/Kconfig | 15 +++++++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 xen/arch/x86/domain_builder/Kconfig

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 9cdd04721afa..25b9b75423c5 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -383,6 +383,8 @@ config ALTP2M
 
 	  If unsure, stay with defaults.
 
+source "arch/x86/domain_builder/Kconfig"
+
 endmenu
 
 source "common/Kconfig"
diff --git a/xen/arch/x86/domain_builder/Kconfig b/xen/arch/x86/domain_builder/Kconfig
new file mode 100644
index 000000000000..7be2ec3ed00f
--- /dev/null
+++ b/xen/arch/x86/domain_builder/Kconfig
@@ -0,0 +1,15 @@
+
+menu "Domain Builder Features"
+
+config DOMAIN_BUILDER
+	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
+	select LIB_DEVICE_TREE
+	help
+      Enables the domain builder capability to configure boot domain
+	  construction using a flattened device tree.
+
+	  This feature is currently experimental.
+
+	  If unsure, say N.
+
+endmenu
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842177.1257633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuu8-0003Gl-Hw; Sat, 23 Nov 2024 18:30:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842177.1257633; Sat, 23 Nov 2024 18:30: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 1tEuu8-0003GV-C5; Sat, 23 Nov 2024 18:30:48 +0000
Received: by outflank-mailman (input) for mailman id 842177;
 Sat, 23 Nov 2024 18:30: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEulw-0006MT-W4
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:22:20 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de2a0ddc-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:22:17 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386062160265.24358577296607;
 Sat, 23 Nov 2024 10:21: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: de2a0ddc-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRlMmEwZGRjLWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTM3LjkzOTA1Mywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386066; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=H+dMhTBoYUtWdhM3m74cTXrvpda8DA5/1bDAw/EyU2CSeG4YCOd1fGn0JE3nWQM8PpDDsPlTrVSMEaODlz3G4zp+A/WNNUMEFHAcc11r4vZpyI3k6Sy0jVGIOFIDxKG179aeHR+3sNmLRRYcv9Gz5mjgGqpIOnMykBy33Vde7IA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386066; h=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=1omJKkP+0j2puNPs37j9yE6XvhKUdiF+dq26Zr7hacg=; 
	b=JeLh95NbMZSpzhJu1hYVvS0go3wyIYJiq7r4po+59ui2I4zwFi2Ig7ygJjemBmUorIVdG3hGrLC+hkmzHd0qUGjKMaJJw3TIQCezXPRaW5C2NmKBE5pyXsyAA11bmH4WSsKJRklnBt/4g8bhIIng0TwcbXIcduV/Puh+K8nIsKM=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386066;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=1omJKkP+0j2puNPs37j9yE6XvhKUdiF+dq26Zr7hacg=;
	b=VWrA8SJwlmdSKe1AfY6ugrp2XtiQtRcPOzsNe8Q7u4THShckrXilzrrLAZVDGDKl
	+vyuem+zfwY8zZFlxf7LEiOKGigokLImLXbvLkXu8ofMNJ4HTkNZLiDjpKY8BzjmeEQ
	+O2Tsb2UpWbj3yZUYuxmbrjT99W3xgYkmQnBeby0=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 06/15] x86/hyperlaunch: introduce the domain builder
Date: Sat, 23 Nov 2024 13:20:35 -0500
Message-Id: <20241123182044.30687-7-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the domain builder which is capable of consuming a device tree as the
first boot module. If it finds a device tree as the first boot module, it will
set its type to BOOTMOD_FDT. This change only detects the boot module and
continues to boot with slight change to the boot convention that the dom0
kernel is no longer first boot module but is the second.

No functional change intended.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/Makefile                    |  2 +
 xen/arch/x86/domain_builder/Makefile     |  3 ++
 xen/arch/x86/domain_builder/core.c       | 55 ++++++++++++++++++++++++
 xen/arch/x86/domain_builder/fdt.c        | 38 ++++++++++++++++
 xen/arch/x86/domain_builder/fdt.h        | 21 +++++++++
 xen/arch/x86/include/asm/bootinfo.h      |  3 ++
 xen/arch/x86/include/asm/domainbuilder.h |  8 ++++
 xen/arch/x86/setup.c                     | 18 +++++---
 8 files changed, 142 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/x86/domain_builder/Makefile
 create mode 100644 xen/arch/x86/domain_builder/core.c
 create mode 100644 xen/arch/x86/domain_builder/fdt.c
 create mode 100644 xen/arch/x86/domain_builder/fdt.h
 create mode 100644 xen/arch/x86/include/asm/domainbuilder.h

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index b35fd5196ce2..45e4c963edcd 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -81,6 +81,8 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 obj-y += sysctl.o
 endif
 
+obj-y += domain_builder/
+
 extra-y += asm-macros.i
 extra-y += xen.lds
 
diff --git a/xen/arch/x86/domain_builder/Makefile b/xen/arch/x86/domain_builder/Makefile
new file mode 100644
index 000000000000..309a0c4bdd9e
--- /dev/null
+++ b/xen/arch/x86/domain_builder/Makefile
@@ -0,0 +1,3 @@
+obj-$(CONFIG_DOMAIN_BUILDER) += fdt.init.o
+obj-y += core.init.o
+
diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
new file mode 100644
index 000000000000..211359895d84
--- /dev/null
+++ b/xen/arch/x86/domain_builder/core.c
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2024, Apertus Solutions, LLC
+ */
+#include <xen/err.h>
+#include <xen/init.h>
+#include <xen/kconfig.h>
+#include <xen/lib.h>
+
+#include <asm/bootinfo.h>
+
+#include "fdt.h"
+
+void __init builder_init(struct boot_info *bi)
+{
+    if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
+    {
+        int ret;
+
+        switch ( ret = has_hyperlaunch_fdt(bi) )
+        {
+        case 0:
+            printk("Hyperlaunch device tree detected\n");
+            bi->hyperlaunch_enabled = true;
+            bi->mods[0].type = BOOTMOD_FDT;
+            break;
+        case -EINVAL:
+            printk("Hyperlaunch device tree was not detected\n");
+            bi->hyperlaunch_enabled = false;
+            break;
+        case -ENOENT:
+            fallthrough;
+        case -ENODATA:
+            printk("Device tree found, but not hyperlaunch (%d)\n", ret);
+            bi->hyperlaunch_enabled = false;
+            bi->mods[0].type = BOOTMOD_FDT;
+            break;
+        default:
+            printk("Unknown error (%d) occured checking for hyperlaunch device tree\n",
+                   ret);
+            bi->hyperlaunch_enabled = false;
+        }
+
+    }
+}
+
+/*
+ * 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/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
new file mode 100644
index 000000000000..3f9dda8c34c3
--- /dev/null
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2024, Apertus Solutions, LLC
+ */
+#include <xen/err.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/rangeset.h> /* required for asm/setup.h */
+
+#include <asm/bootinfo.h>
+#include <asm/page.h>
+#include <asm/setup.h>
+
+#include "fdt.h"
+
+int __init has_hyperlaunch_fdt(struct boot_info *bi)
+{
+    int ret = 0;
+    void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    if ( fdt_check_header(fdt) < 0 )
+        ret = -EINVAL;
+
+    bootstrap_unmap();
+
+    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/domain_builder/fdt.h b/xen/arch/x86/domain_builder/fdt.h
new file mode 100644
index 000000000000..1c1569a9c633
--- /dev/null
+++ b/xen/arch/x86/domain_builder/fdt.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef __XEN_X86_FDT_H__
+#define __XEN_X86_FDT_H__
+
+#include <xen/init.h>
+
+#include <asm/bootinfo.h>
+
+/* hyperlaunch fdt is required to be module 0 */
+#define HYPERLAUNCH_MODULE_IDX 0
+
+#ifdef CONFIG_DOMAIN_BUILDER
+int has_hyperlaunch_fdt(struct boot_info *bi);
+#else
+static inline int __init has_hyperlaunch_fdt(struct boot_info *bi)
+{
+    return -EINVAL;
+}
+#endif
+
+#endif /* __XEN_X86_FDT_H__ */
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 9f65e2c8f62d..208bec90913d 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -27,6 +27,7 @@ enum bootmod_type {
     BOOTMOD_RAMDISK,
     BOOTMOD_MICROCODE,
     BOOTMOD_XSM_POLICY,
+    BOOTMOD_FDT,
 };
 
 struct boot_module {
@@ -80,6 +81,8 @@ struct boot_info {
     paddr_t memmap_addr;
     size_t memmap_length;
 
+    bool hyperlaunch_enabled;
+
     unsigned int nr_modules;
     struct boot_module mods[MAX_NR_BOOTMODS + 1];
     struct boot_domain domains[MAX_NR_BOOTDOMS];
diff --git a/xen/arch/x86/include/asm/domainbuilder.h b/xen/arch/x86/include/asm/domainbuilder.h
new file mode 100644
index 000000000000..aedc2b49f7c9
--- /dev/null
+++ b/xen/arch/x86/include/asm/domainbuilder.h
@@ -0,0 +1,8 @@
+#ifndef __XEN_X86_DOMBUILDER_H__
+#define __XEN_X86_DOMBUILDER_H__
+
+#include <asm/bootinfo.h>
+
+void builder_init(struct boot_info *bi);
+
+#endif
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index e6580382d247..8041aeb3dcfd 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -33,6 +33,7 @@
 #endif
 #include <xen/bitops.h>
 #include <asm/bootinfo.h>
+#include <asm/domainbuilder.h>
 #include <asm/smp.h>
 #include <asm/processor.h>
 #include <asm/mpspec.h>
@@ -1277,9 +1278,12 @@ void asmlinkage __init noreturn __start_xen(void)
                bi->nr_modules);
     }
 
-    /* Dom0 kernel is always first */
-    bi->mods[0].type = BOOTMOD_KERNEL;
-    bi->domains[0].kernel = &bi->mods[0];
+    builder_init(bi);
+
+    /* Find first unknown boot module to use as Dom0 kernel */
+    i = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
+    bi->mods[i].type = BOOTMOD_KERNEL;
+    bi->domains[0].kernel = &bi->mods[i];
 
     if ( pvh_boot )
     {
@@ -1466,8 +1470,9 @@ void asmlinkage __init noreturn __start_xen(void)
         xen->size  = __2M_rwdata_end - _stext;
     }
 
-    bi->mods[0].headroom =
-        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].size);
+    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    bi->mods[i].headroom =
+        bzimage_headroom(bootstrap_map_bm(&bi->mods[i]), bi->mods[i].size);
     bootstrap_unmap();
 
 #ifndef highmem_start
@@ -1591,7 +1596,8 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
-    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
+    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
+    if ( bi->mods[i].headroom && !bi->mods[0].relocated )
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842178.1257644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuu9-0003We-QE; Sat, 23 Nov 2024 18:30:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842178.1257644; Sat, 23 Nov 2024 18:30: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 1tEuu9-0003WV-KD; Sat, 23 Nov 2024 18:30:49 +0000
Received: by outflank-mailman (input) for mailman id 842178;
 Sat, 23 Nov 2024 18:30: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEum5-0006MT-VJ
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:22:29 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4057396-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:22:27 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386063716280.39222882890044;
 Sat, 23 Nov 2024 10:21: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: e4057396-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU0MDU3Mzk2LWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTQ3Ljk3MzA3Mywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386067; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=CA5ufyF49tWEw6HEUKFlIdTnFNCFdZM9fXV1eeYpdEbCK6N7KMzLSeDqTUZrS5+3pKut7pguGip938h0kqikUEAOplpK68wphBChOJurChqxS67tHTXXmHmt6lTnZlYTRz0w1jTsXZ8U8Oi26SGzvjCH/naS4BqGnCpB7VfJwio=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386067; h=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=50hQ5FtSJpLrNxu6yxxP08QLa9SwhIW1DEp9JlMJYIs=; 
	b=UXqmBAFUJ7uDZn4U+5B6DZLlS73amZ1gkzctwzvcc2q60vVLmd3edUpZmKd2xmf/LMjba/lv0DXt6/2oXzq92mmeOASV7+UlqkaW5/gSK1tK1uEshsRCJ/gtH39qQLmw0SxdvkfoDXFnSsTjW5qfP0/+ipBzxWIznt6bju2mvqc=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386067;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=50hQ5FtSJpLrNxu6yxxP08QLa9SwhIW1DEp9JlMJYIs=;
	b=P21QJxxpnZoyOpzGdmbggaKgpYfpOewE+2FBhkAQvoVEHzTlAEdgTs0yqajshgQS
	NMlJJuBQc5dZqOKAcjjt2p53AWJM+LcqjVfyDaNfQibVCuYNpylegvDipB1he5ekNYy
	MsnipOwGC0SIgYPfX2feb2t1CL0SbTEDTDhdydNQ=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 07/15] x86/hyperlaunch: initial support for hyperlaunch device tree
Date: Sat, 23 Nov 2024 13:20:36 -0500
Message-Id: <20241123182044.30687-8-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add the ability to detect both a formal hyperlaunch device tree or a dom0less
device tree. If the hyperlaunch device tree is found, then count the number of
domain entries, reporting if more than one is found.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain_builder/core.c  | 14 +++++++
 xen/arch/x86/domain_builder/fdt.c   | 64 ++++++++++++++++++++++++++++-
 xen/arch/x86/domain_builder/fdt.h   |  5 +++
 xen/arch/x86/include/asm/bootinfo.h |  1 +
 4 files changed, 83 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
index 211359895d84..a80f3711c306 100644
--- a/xen/arch/x86/domain_builder/core.c
+++ b/xen/arch/x86/domain_builder/core.c
@@ -40,7 +40,21 @@ void __init builder_init(struct boot_info *bi)
                    ret);
             bi->hyperlaunch_enabled = false;
         }
+    }
+
+    if ( bi->hyperlaunch_enabled )
+    {
+        int ret;
+
+        printk(XENLOG_INFO "Hyperlauch configuration:\n");
+        if ( (ret = walk_hyperlaunch_fdt(bi)) < 0 )
+        {
+            printk(XENLOG_INFO "  walk of device tree failed (%d)\n", ret);
+            bi->hyperlaunch_enabled = false;
+            return;
+        }
 
+        printk(XENLOG_INFO "  Number of domains: %d\n", bi->nr_domains);
     }
 }
 
diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index 3f9dda8c34c3..ff1ba58b6907 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -14,14 +14,76 @@
 
 #include "fdt.h"
 
+static int __init find_hyperlaunch_node(void *fdt)
+{
+    int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
+    if ( hv_node >= 0 )
+    {
+        /* Anything other than zero indicates no match */
+        if ( fdt_node_check_compatible(fdt, hv_node, "hypervisor,xen") )
+            return -ENODATA;
+        else
+            return hv_node;
+    }
+    else
+    {
+        /* Lood for dom0less config */
+        int node, chosen_node = fdt_path_offset(fdt, "/chosen");
+        if ( chosen_node < 0 )
+            return -ENOENT;
+
+        fdt_for_each_subnode(node, fdt, chosen_node)
+        {
+            if ( fdt_node_check_compatible(fdt, node, "xen,domain") == 0 )
+                return chosen_node;
+        }
+    }
+
+    return -ENODATA;
+}
+
 int __init has_hyperlaunch_fdt(struct boot_info *bi)
 {
     int ret = 0;
     void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
 
-    if ( fdt_check_header(fdt) < 0 )
+    if ( !fdt || fdt_check_header(fdt) < 0 )
         ret = -EINVAL;
+    else
+        ret = find_hyperlaunch_node(fdt);
+
+    bootstrap_unmap();
+
+    return ret < 0 ? ret : 0;
+}
+
+int __init walk_hyperlaunch_fdt(struct boot_info *bi)
+{
+    int ret = 0, hv_node, node;
+    void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    if ( unlikely(!fdt) )
+        return -EINVAL;
+
+    hv_node = find_hyperlaunch_node(fdt);
+    if ( hv_node < 0 )
+    {
+        ret = hv_node;
+        goto err_out;
+    }
+
+    fdt_for_each_subnode(node, fdt, hv_node)
+    {
+        ret = fdt_node_check_compatible(fdt, node, "xen,domain");
+        if ( ret == 0 )
+            bi->nr_domains++;
+    }
+
+    /* Until multi-domain construction is added, throw an error */
+    if ( !bi->nr_domains || bi->nr_domains > 1 )
+        printk(XENLOG_ERR "Hyperlaunch only supports dom0 construction\n");
 
+ err_out:
     bootstrap_unmap();
 
     return ret;
diff --git a/xen/arch/x86/domain_builder/fdt.h b/xen/arch/x86/domain_builder/fdt.h
index 1c1569a9c633..84126db208ea 100644
--- a/xen/arch/x86/domain_builder/fdt.h
+++ b/xen/arch/x86/domain_builder/fdt.h
@@ -11,11 +11,16 @@
 
 #ifdef CONFIG_DOMAIN_BUILDER
 int has_hyperlaunch_fdt(struct boot_info *bi);
+int walk_hyperlaunch_fdt(struct boot_info *bi);
 #else
 static inline int __init has_hyperlaunch_fdt(struct boot_info *bi)
 {
     return -EINVAL;
 }
+static int __init walk_hyperlaunch_fdt(struct boot_info *bi)
+{
+    return -EINVAL;
+}
 #endif
 
 #endif /* __XEN_X86_FDT_H__ */
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 208bec90913d..683ca9dbe2e0 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -84,6 +84,7 @@ struct boot_info {
     bool hyperlaunch_enabled;
 
     unsigned int nr_modules;
+    unsigned int nr_domains;
     struct boot_module mods[MAX_NR_BOOTMODS + 1];
     struct boot_domain domains[MAX_NR_BOOTDOMS];
 };
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842185.1257652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuuB-0003vb-VN; Sat, 23 Nov 2024 18:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842185.1257652; Sat, 23 Nov 2024 18:30: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 1tEuuB-0003vP-Rt; Sat, 23 Nov 2024 18:30:51 +0000
Received: by outflank-mailman (input) for mailman id 842185;
 Sat, 23 Nov 2024 18:30: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEunD-0006MT-Hw
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:23:39 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d839d35-a9c8-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:23:37 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386074952625.5918532207943;
 Sat, 23 Nov 2024 10:21: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: 0d839d35-a9c8-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBkODM5ZDM1LWE5YzgtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MjE3LjU3MDk5Nywic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386079; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=JfjUzRuVdgu03JmMJ5s2O0voxRwbLJ4CBYjs3PrFIMUo88e9iNtvVL1L+OFGNHhYT94FoIq72vGrI96jmy8ArAJRs/qmc7JA1n0W2fw185eflojlr2SEhNgFRfFzbrCTznDSV5j+Fud7r3rtxLeoKfV89Sc4R6h0IY+GH702ttg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386079; h=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=QKzJS5eFtECZxvuLdDMttAltTe8m1ybZIito+adUWcs=; 
	b=lVOALTE35FkFWXsyQ6e06tDp/mGh/sYIAdoEicwRCaEG4zFWBJejQkbWE3+OX7KRD59N5TcKr2MigVEDzY0ZK2Ifid8u3ASewIIJmpI7yiv2Jysik0cnoQo7qDW/nstV7Wk+KPjyQTdkkovK+sn6CMFldF/KjSKM48XwI0ALVyo=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386079;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=QKzJS5eFtECZxvuLdDMttAltTe8m1ybZIito+adUWcs=;
	b=M6pe5kk4JKInmhmAxvKDezN1KYBLvsWBIvhyOjWo/VOpWSiKjFOrcWrWJyLq8NyA
	kzfE57oAC+F0MgaULEbNNFxcxOWNy5mBFMdWD/AjnwzjgfSgqUIYfcIFCML4gJC9f4L
	P2h3DHF+2yUBF3PtHqNfhmCXX0nR65guQvqqkpoM=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 14/15] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
Date: Sat, 23 Nov 2024 13:20:43 -0500
Message-Id: <20241123182044.30687-15-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the `cpus` property, named as such for dom0less compatibility, that
represents the maximum number of vpcus to allocate for a domain. In the device
tree, it will be encoded as a u32 value.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c             |  3 +++
 xen/arch/x86/domain_builder/fdt.c     | 12 ++++++++++++
 xen/arch/x86/include/asm/bootdomain.h |  2 ++
 3 files changed, 17 insertions(+)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 1c3b7ff0e658..7ff052016bfd 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -617,6 +617,9 @@ int __init construct_dom0(struct boot_domain *bd)
     if ( !get_memsize(&dom0_max_size, LONG_MAX) && bd->max_pages )
         dom0_size.nr_pages = bd->max_pages;
 
+    if ( opt_dom0_max_vcpus_max == UINT_MAX && bd->max_vcpus )
+        opt_dom0_max_vcpus_max = bd->max_vcpus;
+
     if ( is_hvm_domain(d) )
         rc = dom0_construct_pvh(bd);
     else if ( is_pv_domain(d) )
diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index b8ace5c18c6a..d24e265f2378 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -197,6 +197,18 @@ static int __init process_domain_node(
             bd->max_pages = PFN_DOWN(kb * SZ_1K);
             printk("  max memory: %ld\n", bd->max_pages << PAGE_SHIFT);
         }
+        if ( match_fdt_property(fdt, prop, "cpus" ) )
+        {
+            uint32_t val = UINT_MAX;
+            if ( fdt_prop_as_u32(prop, &val) != 0 )
+            {
+                printk("  failed processing max_vcpus for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+            bd->max_vcpus = val;
+            printk("  max vcpus: %d\n", bd->max_vcpus);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 9a5ba2931665..d144d6173400 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -28,6 +28,8 @@ struct boot_domain {
     unsigned long min_pages;
     unsigned long max_pages;
 
+    unsigned int max_vcpus;
+
     struct boot_module *kernel;
     struct boot_module *ramdisk;
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:30:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:30:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842192.1257663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuuG-0004Tw-DS; Sat, 23 Nov 2024 18:30:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842192.1257663; Sat, 23 Nov 2024 18:30: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 1tEuuG-0004To-87; Sat, 23 Nov 2024 18:30:56 +0000
Received: by outflank-mailman (input) for mailman id 842192;
 Sat, 23 Nov 2024 18: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEumP-0006MT-7t
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:22:49 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef8dcde2-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:22:46 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386066952250.35025180529567;
 Sat, 23 Nov 2024 10: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: ef8dcde2-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVmOGRjZGUyLWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTY3LjEyMDI3NCwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386071; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=nW7sXvRohpjbWo9DOULba7c3yNZXlSaTIi6cPllaObd24azcYKZy9UD8gkMqIod7vOTnfhmFFN5hZO/PHETfD1K8pMLRcB97CL4cmLU03haha1F5MpVoGX4j1Dz3dv1H/dUyioNrS2L+dp+di1DzqHDI0Zn54nuRHlJg0cM5jTI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386071; h=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=6nktQzed9lDrO9uE3JtQT7owTGCSLDNcsYsfTAI8TMA=; 
	b=UVkq2JeulPhigV6ZmU1QmwTo6m3L+QCzMxf/fEJPG0olKftcIpqniOC6EDCTo+KpNuRu0BJ6B6K1OGSzLwpnexyQ3hYTBM+ki1VGu5kL+CZ0viAIKe8N9w2VWo/oRNbg1+3XcfI+XvOnheqAWAJqFNFnDpt/3cUhy6GSTOIUzWI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386071;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=6nktQzed9lDrO9uE3JtQT7owTGCSLDNcsYsfTAI8TMA=;
	b=molRG/TKbVQA+zX3mdPTgB1F02AjyWJbd50jFynNFlgXrIsNqv4UcrjEaghqozcc
	Of2hmdwC8XZ/VPvd+6XJOyzP/q3dlyArtycuO0FZnxIESPh+CdEijCgkOgJAFq0aSy6
	8WjludgyR2X9ciI+9qJXw1EHfk4hVnShywAqE1WQ=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 09/15] x86/hyperlaunch: obtain cmdline from device tree
Date: Sat, 23 Nov 2024 13:20:38 -0500
Message-Id: <20241123182044.30687-10-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

If a command line is not provided through the bootloader's mechanism, e.g.
muiltboot module string field, then use one from the device tree if present.
The device tree command line is located in the bootargs property of the
`multiboot,kernel` node.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain_builder/core.c       | 28 +++++++++++++++++++
 xen/arch/x86/domain_builder/fdt.c        | 34 ++++++++++++++++++++++++
 xen/arch/x86/domain_builder/fdt.h        | 24 +++++++++++++++++
 xen/arch/x86/include/asm/bootinfo.h      |  6 +++--
 xen/arch/x86/include/asm/domainbuilder.h |  4 +++
 xen/arch/x86/setup.c                     | 10 +++++--
 6 files changed, 102 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
index 9335f3a9ebef..95cab06e6159 100644
--- a/xen/arch/x86/domain_builder/core.c
+++ b/xen/arch/x86/domain_builder/core.c
@@ -8,9 +8,37 @@
 #include <xen/lib.h>
 
 #include <asm/bootinfo.h>
+#include <asm/setup.h>
 
 #include "fdt.h"
 
+size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset)
+{
+#ifdef CONFIG_DOMAIN_BUILDER
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    int size = fdt_cmdline_prop_size(fdt, offset);
+
+    bootstrap_unmap();
+    return size < 0 ? 0 : (size_t) size;
+#else
+    return 0;
+#endif
+}
+
+int __init builder_get_cmdline(
+    struct boot_info *bi, int offset, char *cmdline, size_t size)
+{
+#ifdef CONFIG_DOMAIN_BUILDER
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    int ret = fdt_cmdline_prop_copy(fdt, offset, cmdline, size);
+
+    bootstrap_unmap();
+    return ret;
+#else
+    return 0;
+#endif
+}
+
 void __init builder_init(struct boot_info *bi)
 {
     if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index 6bf1c4a297fe..f8ddb11b339e 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -57,6 +57,30 @@ static inline int __init fdt_get_prop_as_reg(
     return 0;
 }
 
+static int __init fdt_get_prop_as_offset(
+    const void *fdt, int node, const char *name, unsigned long *a)
+{
+    int ret, poffset;
+    const char *pname;
+    size_t nsize = strlen(name);
+
+    fdt_for_each_property_offset(poffset, fdt, node)
+    {
+        fdt_getprop_by_offset(fdt, poffset, &pname, &ret);
+
+        if ( ret < 0 || strlen(pname) != nsize )
+            continue;
+
+        if ( !strncmp(pname, name, nsize) )
+        {
+            *a = poffset;
+            return nsize;
+        }
+    }
+
+    return -ENOENT;
+}
+
 static int __init dom0less_module_node(
     void *fdt, int node, int size_size, int address_size)
 {
@@ -118,6 +142,16 @@ static int __init process_domain_node(
             printk("  kernel: boot module %d\n", idx);
             bi->mods[idx].type = BOOTMOD_KERNEL;
             bd->kernel = &bi->mods[idx];
+
+            /* If bootloader didn't set cmdline, see if FDT provides one. */
+            if ( bd->kernel->cmdline_pa &&
+                 !((char *)__va(bd->kernel->cmdline_pa))[0] )
+            {
+                int ret = fdt_get_prop_as_offset(
+                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
+                if ( ret > 0 )
+                    bd->kernel->fdt_cmdline = true;
+            }
         }
     }
 
diff --git a/xen/arch/x86/domain_builder/fdt.h b/xen/arch/x86/domain_builder/fdt.h
index 558d00a994fa..ab2b43872e25 100644
--- a/xen/arch/x86/domain_builder/fdt.h
+++ b/xen/arch/x86/domain_builder/fdt.h
@@ -27,6 +27,30 @@ static inline int __init fdt_cell_as_u64(const fdt32_t *cell, uint64_t *val)
     return 0;
 }
 
+static inline int __init fdt_cmdline_prop_size(const void *fdt, int offset)
+{
+    int ret;
+
+    fdt_get_property_by_offset(fdt, offset, &ret);
+
+    return ret;
+}
+
+static inline int __init fdt_cmdline_prop_copy(
+    const void *fdt, int offset, char *cmdline, size_t size)
+{
+    int ret;
+    const struct fdt_property *prop =
+        fdt_get_property_by_offset(fdt, offset, &ret);
+
+    if ( ret < 0 )
+        return ret;
+
+    ASSERT(size > ret);
+
+    return strlcpy(cmdline, prop->data, ret);
+}
+
 int has_hyperlaunch_fdt(struct boot_info *bi);
 int walk_hyperlaunch_fdt(struct boot_info *bi);
 #else
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 683ca9dbe2e0..433a0e66121b 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -35,11 +35,13 @@ struct boot_module {
 
     /*
      * Module State Flags:
-     *   relocated: indicates module has been relocated in memory.
-     *   released:  indicates module's pages have been freed.
+     *   relocated:   indicates module has been relocated in memory.
+     *   released:    indicates module's pages have been freed.
+     *   fdt_cmdline: indicates module's cmdline is in the FDT.
      */
     bool relocated:1;
     bool released:1;
+    bool fdt_cmdline:1;
 
     /*
      * A boot module may need decompressing by Xen.  Headroom is an estimate of
diff --git a/xen/arch/x86/include/asm/domainbuilder.h b/xen/arch/x86/include/asm/domainbuilder.h
index aedc2b49f7c9..21221d8df8ec 100644
--- a/xen/arch/x86/include/asm/domainbuilder.h
+++ b/xen/arch/x86/include/asm/domainbuilder.h
@@ -3,6 +3,10 @@
 
 #include <asm/bootinfo.h>
 
+size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset);
+int __init builder_get_cmdline(
+    struct boot_info *bi, int offset, char *cmdline, size_t size);
+
 void builder_init(struct boot_info *bi);
 
 #endif
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d6e9d4c1769c..fda4fc71e205 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -971,7 +971,10 @@ static size_t __init domain_cmdline_size(
 {
     size_t s = bi->kextra ? strlen(bi->kextra) : 0;
 
-    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
+    if ( bd->kernel->fdt_cmdline )
+        s += builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
+    else
+        s += strlen(__va(bd->kernel->cmdline_pa));
 
     if ( s == 0 )
         return s;
@@ -1040,7 +1043,10 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         if ( !(cmdline = xzalloc_array(char, cmdline_size)) )
             panic("Error allocating cmdline buffer for %pd\n", d);
 
-        if ( bd->kernel->cmdline_pa )
+        if ( bd->kernel->fdt_cmdline )
+            builder_get_cmdline(
+                bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
+        else
             strlcpy(cmdline,
                     cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),
                     cmdline_size);
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:31:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:31:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842208.1257673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuuS-0005TZ-Nc; Sat, 23 Nov 2024 18:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842208.1257673; Sat, 23 Nov 2024 18:31: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 1tEuuS-0005TO-JV; Sat, 23 Nov 2024 18:31:08 +0000
Received: by outflank-mailman (input) for mailman id 842208;
 Sat, 23 Nov 2024 18:31: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEumF-0006MT-7b
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:22:39 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e98ddbdb-a9c7-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:22:36 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386065328293.98410454837483;
 Sat, 23 Nov 2024 10:21: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: e98ddbdb-a9c7-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU5OGRkYmRiLWE5YzctMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTU3LjA2MDMwNSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386069; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Vwle6eevgHpVpwva1S5/KjZzrgrwePyomr2PCP5A9cXSVI1k9uMR996qaHiUA3QSRPeGcGrsor6FzgVGbOxzieotIB9HM/AGm+CifFLukqMHjC6/seNTsM8lej+szxqBbPVjoXT9y+M+j/qJvskmrhIfNGpV1XFMTZEuBqrYIX4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386069; h=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=ZWZK/83JdulzZ9aZB923YFMwC874tCiPARHq42V04YE=; 
	b=dv/6J1B6t7xkTRyk8Xo2an2jKddwFkKuLr2uHjeDTi7hIsSb+yzWivACghLc12WLwjzmr6DPnMio3qM8YCY9V1StFr9j5HK0auUKwzk/HPhpK5PPvQ19oXuZbHyvJBcKVrQJ4cLuouUCrq1EY15MMib1Sdkxam6U0snjUmTpycI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386069;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=ZWZK/83JdulzZ9aZB923YFMwC874tCiPARHq42V04YE=;
	b=uPhrkV4TmISWfSUjqeji4UWrKAWKAmGlU2b62L6lskCmIOAWT4UGMsTmmSS5ghOF
	ibTjpWt4LW8NHMijieoZ60MQ8S+guAS5reeRSWIcjU8eSvyRLgI6Xl2I6TVUV6R/1AO
	BL8GK94FbqJNwOVIKGQdPbJna3MKdrYciVx8PHcw=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 08/15] x86/hyperlaunch: locate dom0 kernel with hyperlaunch
Date: Sat, 23 Nov 2024 13:20:37 -0500
Message-Id: <20241123182044.30687-9-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Look for a subnode of type `multiboot,kernel` within a domain node. If found,
process the reg property for the MB1 module index. If the bootargs property is
present and there was not an MB1 string, then use the command line from the
device tree definition.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain_builder/core.c |  12 +++
 xen/arch/x86/domain_builder/fdt.c  | 126 +++++++++++++++++++++++++++++
 xen/arch/x86/domain_builder/fdt.h  |  17 ++++
 xen/arch/x86/setup.c               |   5 --
 4 files changed, 155 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
index a80f3711c306..9335f3a9ebef 100644
--- a/xen/arch/x86/domain_builder/core.c
+++ b/xen/arch/x86/domain_builder/core.c
@@ -56,6 +56,18 @@ void __init builder_init(struct boot_info *bi)
 
         printk(XENLOG_INFO "  Number of domains: %d\n", bi->nr_domains);
     }
+    else
+    {
+        int i;
+
+        /* Find first unknown boot module to use as Dom0 kernel */
+        printk("Falling back to using first boot module as dom0\n");
+        i = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
+        bi->mods[i].type = BOOTMOD_KERNEL;
+        bi->domains[0].kernel = &bi->mods[i];
+        bi->nr_domains = 1;
+    }
+
 }
 
 /*
diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index ff1ba58b6907..6bf1c4a297fe 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -14,6 +14,122 @@
 
 #include "fdt.h"
 
+static inline int __init fdt_get_prop_as_reg(
+    const void *fdt, int node, const char *name, unsigned int ssize,
+    unsigned int asize, uint64_t *size, uint64_t *addr)
+{
+    int ret;
+    const struct fdt_property *prop;
+    fdt32_t *cell;
+
+    /* FDT spec max size is 4 (128bit int), but largest arch int size is 64 */
+    if ( ssize > 2 || asize > 2 )
+        return -EINVAL;
+
+    prop = fdt_get_property(fdt, node, name, &ret);
+    if ( !prop || ret < sizeof(u32) )
+        return ret < 0 ? ret : -EINVAL;
+
+    /* read address field */
+    cell = (fdt32_t *)prop->data;
+
+    if ( asize == 1 )
+    {
+        uint32_t val;
+        fdt_cell_as_u32(cell, &val);
+        *addr = (uint64_t)val;
+    }
+    else
+        fdt_cell_as_u64(cell, addr);
+
+    /* read size field */
+    cell += asize;
+
+    if ( ssize == 1 )
+    {
+        uint32_t val;
+        fdt_cell_as_u32(cell, &val);
+        *size = (uint64_t)val;
+    }
+    else
+        fdt_cell_as_u64(cell, size);
+
+    return 0;
+}
+
+static int __init dom0less_module_node(
+    void *fdt, int node, int size_size, int address_size)
+{
+    uint64_t size, addr;
+    int ret = fdt_get_prop_as_reg(fdt, node, "reg", size_size, address_size,
+                                  &size, &addr);
+    /* An FDT error value may have been returned, translate to -EINVAL */
+    if ( ret < 0 )
+        return -EINVAL;
+
+    if ( size != 0 )
+        return -EOPNOTSUPP;
+
+    if ( addr > MAX_NR_BOOTMODS )
+        return -ERANGE;
+
+    /*
+     * MAX_NR_BOOTMODS cannot exceed the max for MB1, represented by a u32,
+     * thus the cast down to a u32 will be safe due to the prior check.
+     */
+    return (int)addr;
+}
+
+static int __init process_domain_node(
+    struct boot_info *bi, void *fdt, int dom_node)
+{
+    int node;
+    struct boot_domain *bd = &bi->domains[bi->nr_domains];
+    const char *name = fdt_get_name(fdt, dom_node, NULL);
+    int address_size = fdt_address_cells(fdt, dom_node);
+    int size_size = fdt_size_cells(fdt, dom_node);
+
+    if ( address_size < 0 || size_size < 0 )
+    {
+        printk("  failed processing #address or #size for domain %s)\n",
+               name == NULL ? "unknown" : name);
+        return -EINVAL;
+    }
+
+    fdt_for_each_subnode(node, fdt, dom_node)
+    {
+        if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
+        {
+            int idx = dom0less_module_node(fdt, node, size_size, address_size);
+            if ( idx < 0 )
+            {
+                printk("  failed processing kernel module for domain %s)\n",
+                       name == NULL ? "unknown" : name);
+                return idx;
+            }
+
+            if ( idx > bi->nr_modules )
+            {
+                printk("  invalid kernel module index for domain node (%d)\n",
+                       bi->nr_domains);
+                return -EINVAL;
+            }
+
+            printk("  kernel: boot module %d\n", idx);
+            bi->mods[idx].type = BOOTMOD_KERNEL;
+            bd->kernel = &bi->mods[idx];
+        }
+    }
+
+    if ( !bd->kernel )
+    {
+        printk(XENLOG_ERR "ERR: no kernel assigned to domain\n");
+        return -EFAULT;
+    }
+
+    return 0;
+}
+
 static int __init find_hyperlaunch_node(void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
@@ -74,9 +190,19 @@ int __init walk_hyperlaunch_fdt(struct boot_info *bi)
 
     fdt_for_each_subnode(node, fdt, hv_node)
     {
+        if ( bi->nr_domains >= MAX_NR_BOOTDOMS )
+        {
+            printk(XENLOG_WARNING "WARN: more domains defined than max allowed");
+            break;
+        }
+
         ret = fdt_node_check_compatible(fdt, node, "xen,domain");
         if ( ret == 0 )
+        {
+            if ( (ret = process_domain_node(bi, fdt, node)) < 0 )
+                break;
             bi->nr_domains++;
+        }
     }
 
     /* Until multi-domain construction is added, throw an error */
diff --git a/xen/arch/x86/domain_builder/fdt.h b/xen/arch/x86/domain_builder/fdt.h
index 84126db208ea..558d00a994fa 100644
--- a/xen/arch/x86/domain_builder/fdt.h
+++ b/xen/arch/x86/domain_builder/fdt.h
@@ -3,6 +3,7 @@
 #define __XEN_X86_FDT_H__
 
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 
 #include <asm/bootinfo.h>
 
@@ -10,6 +11,22 @@
 #define HYPERLAUNCH_MODULE_IDX 0
 
 #ifdef CONFIG_DOMAIN_BUILDER
+
+static inline int __init fdt_cell_as_u32(const fdt32_t *cell, uint32_t *val)
+{
+    *val = fdt32_to_cpu(*cell);
+
+    return 0;
+}
+
+static inline int __init fdt_cell_as_u64(const fdt32_t *cell, uint64_t *val)
+{
+    *val = ((uint64_t)fdt32_to_cpu(cell[0]) << 32) |
+           (uint64_t)fdt32_to_cpu(cell[1]);
+
+    return 0;
+}
+
 int has_hyperlaunch_fdt(struct boot_info *bi);
 int walk_hyperlaunch_fdt(struct boot_info *bi);
 #else
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 8041aeb3dcfd..d6e9d4c1769c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1280,11 +1280,6 @@ void asmlinkage __init noreturn __start_xen(void)
 
     builder_init(bi);
 
-    /* Find first unknown boot module to use as Dom0 kernel */
-    i = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
-    bi->mods[i].type = BOOTMOD_KERNEL;
-    bi->domains[0].kernel = &bi->mods[i];
-
     if ( pvh_boot )
     {
         /* pvh_init() already filled in e820_raw */
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 18:31:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 18:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842209.1257677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEuuT-0005X4-2J; Sat, 23 Nov 2024 18:31:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842209.1257677; Sat, 23 Nov 2024 18:31: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 1tEuuS-0005Wm-SE; Sat, 23 Nov 2024 18:31:08 +0000
Received: by outflank-mailman (input) for mailman id 842209;
 Sat, 23 Nov 2024 18:31: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=waGT=SS=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tEumt-0006MT-Ib
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 18:23:19 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 019bc668-a9c8-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 19:23:17 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732386071864907.6802124955447;
 Sat, 23 Nov 2024 10:21: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: 019bc668-a9c8-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAxOWJjNjY4LWE5YzgtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyMzg2MTk3LjYyNTczMSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732386076; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=jiDTkyhg1PvFAUImU9Eo45XMlkkg3TroZ5+v4MjHS3CahYpFLkwPj3f22Zx/0497GWdS3WnROUVhPfMTq438fM8CeTa/RSAGbDTcyPdxNq5vf5FeU5EVuBadu3mu2ucFEbeLEAeRIGl4FKXLUb2MljtXUbTthVvqWnlbaEzS9ug=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732386076; h=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=P31ngclTABjM2fHDD0BXApDz5VKpKh+1+vkjeCGngCQ=; 
	b=Y9xbEq5vXvq8Xg1tPQmj+65BEzwe0hZEMedD3bDtdI6U19BSiq92TqKEn5cnIVQUvRFLqRyEulHaltnWAwV0mliJWIuNsuMqIC4TH/ZNBhK5B5G8zTWsTTV+yk4qz6vHZDX0hY5+tYY8EAHV1CbipDz90H4t8WLPVZRzUSNLLn8=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732386076;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=P31ngclTABjM2fHDD0BXApDz5VKpKh+1+vkjeCGngCQ=;
	b=kORFGEXrPEW+vOCh1FJPls/nJ1VRBxFBecSurziXVRVg71GWTDZAGQ9G6uS61+F3
	TmxBqBlcfXJvQhlO/3ix3o7m31RBYD/kieijkBIXuIG7SJCYyHU+EIaapgHLUfAorLX
	wIC1TVruiDFgnEHLQGha1Z3iScFVVtmc3mz1QTck=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	christopher.w.clark@gmail.com,
	stefano.stabellini@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 12/15] x86/hyperlaunch: specify dom0 mode with device tree
Date: Sat, 23 Nov 2024 13:20:41 -0500
Message-Id: <20241123182044.30687-13-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Enable selecting the mode in which the domain will be built and ran. This
includes:

- whether it will be either a 32/64 bit domain
- if it will be run as a PV or HVM domain
- and if it will require a device model (not applicable for dom0)

In the device tree, this will be represented as a bit map that will be carried
through into struct boot_domain.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain_builder/fdt.c     | 19 +++++++++++++++++++
 xen/arch/x86/include/asm/bootdomain.h |  6 ++++++
 xen/arch/x86/setup.c                  |  3 ++-
 3 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
index 3a6b4fbc09a9..09e72d96a752 100644
--- a/xen/arch/x86/domain_builder/fdt.c
+++ b/xen/arch/x86/domain_builder/fdt.c
@@ -141,6 +141,25 @@ static int __init process_domain_node(
             bd->domid = (domid_t)val;
             printk("  domid: %d\n", bd->domid);
         }
+        if ( match_fdt_property(fdt, prop, "mode" ) )
+        {
+            if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
+            {
+                printk("  failed processing mode for domain %s\n",
+                       name == NULL ? "unknown" : name);
+                return -EINVAL;
+            }
+
+            printk("  mode: ");
+            if ( !(bd->mode & BUILD_MODE_PARAVIRT) ) {
+                if ( bd->mode & BUILD_MODE_ENABLE_DM )
+                    printk("HVM\n");
+                else
+                    printk("PVH\n");
+            }
+            else
+                printk("PV\n");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index ffda1509a63f..50c33d183e07 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -18,6 +18,12 @@ struct boot_domain {
 
     domid_t domid;
 
+                                          /* On     | Off    */
+#define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
+#define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
+#define BUILD_MODE_LONG          (1 << 2) /* 64 BIT | 32 BIT  */
+    uint32_t mode;
+
     struct boot_module *kernel;
     struct boot_module *ramdisk;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 317349b80ac6..dae25721994d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1006,7 +1006,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
 
-    if ( opt_dom0_pvh )
+    if ( opt_dom0_pvh ||
+         (bi->hyperlaunch_enabled && !(bd->mode & BUILD_MODE_PARAVIRT)) )
     {
         dom0_cfg.flags |= (XEN_DOMCTL_CDF_hvm |
                            ((hvm_hap_supported() && !opt_dom0_shadow) ?
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Nov 23 22:45:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Nov 2024 22:45:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842275.1257694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tEysR-0008Py-2a; Sat, 23 Nov 2024 22:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842275.1257694; Sat, 23 Nov 2024 22:45: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 1tEysQ-0008Pr-Tx; Sat, 23 Nov 2024 22:45:18 +0000
Received: by outflank-mailman (input) for mailman id 842275;
 Sat, 23 Nov 2024 22:45: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=iYdR=SS=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tEysO-0008Pk-UZ
 for xen-devel@lists.xenproject.org; Sat, 23 Nov 2024 22:45:17 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20616.outbound.protection.outlook.com
 [2a01:111:f403:2415::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9955056a-a9ec-11ef-a0cc-8be0dac302b0;
 Sat, 23 Nov 2024 23:45:12 +0100 (CET)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SA3PR12MB7952.namprd12.prod.outlook.com (2603:10b6:806:316::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.18; Sat, 23 Nov
 2024 22:45:07 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%6]) with mapi id 15.20.8158.021; Sat, 23 Nov 2024
 22:45: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: 9955056a-a9ec-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjE2IiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk5NTUwNTZhLWE5ZWMtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNDAxOTEyLjQ2MTU0OCwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h9LgAiHnG4jtGtRH+iKa3uJGm6jItq030xwuRvbwtxval6AqJIreQhTMvcSEOA2oUJC3uoPoAVfMoR+Ricl8v7/TxqsNMzGLANW70UkghLx7LWrhR0LGgw4bpK95n4Rb5pt5/U1GVhq94a9XWWQcqSmmCPqRtf1aU8PV1xxdddlHHRwxjFoIFbV/TmU9ubOpN1z1iY7O7VWaQBSIHzLcdxQ8XTvmofeQme+oP+eN1yj17lE/ONvtQUnzR58J1uC285UyoBwAeuYr7ufucFVIOWamq8dAhcSWiqyoZILBRv5jPFN18pbac9tZ8/Jy25aKYoPsz5i9E4lbfSEBYA1ttA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DIsUFxLWVgrt9rFh1IDI86ze+7+xzkVzf2F9JNyc0xw=;
 b=NSvBjwW06LjgR2Ec9qip9+AYX5gopxNIwOz1QPIuX1aJICtKWlw9/ss8at8lFDwX1t1aZBkqtswqxqClXLTACAGzTBbqOxYA6X7dxyox364kn9jI6z8MWfGvQpLBVszyhN45lMJUlTkgInAStxs26iTveqOnYUCUSfw+sQoEJrE3hw1Lxlqq+LY+LcAAOR2em86OGVW53cAc27q3qfG9oc2JncU6bYo3R1wgr8cVhB6R2Yoz8+umLgkJ8NR22swkk4chQma8KtGMwPW6ONwR/N/ffNyZAf+bDxsou8QZ30R6q74ly1zEKAl7nxNactLeflJJ6CKSH+ntTOCy2hPnmQ==
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=DIsUFxLWVgrt9rFh1IDI86ze+7+xzkVzf2F9JNyc0xw=;
 b=fHyBcHs9cltxwizFDTZ0mLtJ5J0BoVYnBQbU7LSBQC6HBQQp6etzjeajzbfWA1mT8J7xXN/cOLYqtUyMKaRARlVSbgmiAzidOv7DF+1pTidMUh1ikFJCuur4rKpjO3f0bjBwCu5+XS/4lxVeE4eXbbXiKEEyfq96l9cW2tRlg5s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <0b58ff6d-e3ed-43dd-8700-83fe989b5d7f@amd.com>
Date: Sun, 24 Nov 2024 02:44:58 +0400
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/sphinx: Fix FUSA indexing
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
References: <20241122164908.3240056-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <20241122164908.3240056-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PNYP287CA0047.INDP287.PROD.OUTLOOK.COM
 (2603:1096:c01:23e::24) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SA3PR12MB7952:EE_
X-MS-Office365-Filtering-Correlation-Id: 286f6f8a-a5fc-4bec-9dad-08dd0c107a7d
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?c0xVUHN3M3BjZWNWaGQxaFkvdzlwV095QmkwQTZWMmRzUm45QWs3L2lBS1pG?=
 =?utf-8?B?UWlZU0h4REhXelZhUlpiTld2QU54MjFpQjdUSWRxM3QvZ2szOUdWTGY4SndZ?=
 =?utf-8?B?NkxIUC83Nks2cElZYkFhbkt0WXpEQnZ5cnFpNEx3VmU5K09pbVprRDZSUUdq?=
 =?utf-8?B?dFZBbi84OUcxeENDaHVPRVZ2ajVTTXVUS0hXaGQyMVdaeUNLNXZSc25WUVNN?=
 =?utf-8?B?NTE3ZHI1NStpdHZQNmVkQ0ZpUkJscXpQc1d2cjZ5YUc4Z1hkNkFhcFNRQ2FU?=
 =?utf-8?B?UzlYMjBNZXJ6QmlMT1RkNlArZWU5SVdrYnp3U3AvWGdud0dPUlN6QU5YWS8v?=
 =?utf-8?B?Z3pzdE5NZGlwNVZFSThwcCsyNHhNQmU2bksxcHdtOW9Zbjc4dTVmWjExYXVL?=
 =?utf-8?B?eGVaMi9LckZrN2JxWVdUNGh3eERTTllxazZMa3BMdEkvWEEyWjA3QUhHMytV?=
 =?utf-8?B?Y0tZQlZhSW1sZGVnR3k5SXlvdUE4NEhiWkxHdnIvWWx1bWU0SFRNWXFGTjk4?=
 =?utf-8?B?TElGYkdzZ0xlWUtveDJUK0tSNDVZM2NocFBlMnQzdExDZndVRGF2YzBFcWY3?=
 =?utf-8?B?Uk1TMk84bVdnZjMrNXFBSGFHRkQzYjJYeDdJTzRpZE0xckw0K2tUbDZ2TUVx?=
 =?utf-8?B?VG4zK0EwK0d0MnR5NS9Ma0RzRXhTdEl3REtTTGNYNmQ2UlNDeHlVQitNVHJx?=
 =?utf-8?B?bXhjWStJM1ZJaVNZanV3TkVKTk1lN0wxN2pNVWlGVDR0d3BWbVRsdFAxS0pE?=
 =?utf-8?B?OVkyWTEvbFRZSEtFUVc2MzRBeXR2ODljS1BETUs4RVNjMFNQbGJXZHd5bmZr?=
 =?utf-8?B?czBoQmlzUkVTNWh1OXVGNzdCYUl4VmtoYjdHQnVxeHRyNjVKMlhQQmw3TmNH?=
 =?utf-8?B?R204eU9GTkNnZEYvclNzczFwZDB4cE1NMmp4SXA2aTVCTWpLSDdyOXdPcWZP?=
 =?utf-8?B?eDQ2VG5IYzlnVDg4aXQ1MlpDL1hGWDdrMDQzVkE5QjlWbi9oaGM1SkxsRnNt?=
 =?utf-8?B?UXo0V0lzRkxwMEIvemlrayt5c0pZOVB4enlaR0JrVHdCazhCZjhXVGhGaEEr?=
 =?utf-8?B?SmVyd0ZrUW1pYXVXZXBxMEE0czBwaDZ5MEFOOHU4RHJiMEVwR040OFNpN21R?=
 =?utf-8?B?b0hlSzRQQTlzM094OC90MmVYZDczVE42dTZ5d1ByQ2JQOGlveWRBd0p0dDA1?=
 =?utf-8?B?cmVEV3JkVkVaSVpkZlc2WFA4MWxibjRwc1A2VlJVU2pSTmZUK0NrOXMwQ2sr?=
 =?utf-8?B?a1VyREhheWFmbVdIZmROOGl4WW1USFRoKzRkZ0JYVkVzUk9id2hYUmZJOXlW?=
 =?utf-8?B?MHNrSTRSVmJyL1FrZExpMjZ4aFZtWW5nRTl5elpoYy9jTnlEUWRYVXl4ZEd2?=
 =?utf-8?B?SVJEaC93Q01XQ2VJeVdzOVRIUFEvU1N6VmZJSGRZbEZIVHlqam05ZFJuMmIr?=
 =?utf-8?B?ckZjUHVyL0cxOUkrd3pubGw5Zldwc3FuSkhtYkNDTDBCRVlNMWVJMHlyeS9W?=
 =?utf-8?B?eEF2NG5JY1VXU2RYU1M0RlRkc2ZmSytpZW5nWTR5N2ZUTk05VHd0eE9kZ3JI?=
 =?utf-8?B?aitKcURkMlRta25EWWE5bGdoS2tEekgvN0xpZDhqNzVTd0s0VzZIbERBaVp2?=
 =?utf-8?B?WmZaWlBHSnYwK2JDZC9QNFpUMmhpM0dsSWMyRzVaZ1JMcENjN1M0UmNpRXd1?=
 =?utf-8?B?OVVRRERWNnlPb1MrREFLRUR0cUkwYVF6Q0VMbm80RzY3R1I2V0o2SDhVUmJm?=
 =?utf-8?B?aE9QbStsbXR1eW9RcTBPb1owMjY3c0VsejZuTkdsZ0dOaW1xZWhoQ3F6ZERj?=
 =?utf-8?B?RnZ1TUZjWGJTK2V1YkpxQT09?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR12MB7326.namprd12.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?ZzRFK05qcldNQS9acjBxcHpGcWp0YW1LYUJLK3oxdFZwVmxIL2cvcFNRaVpl?=
 =?utf-8?B?M3lmbm5pR2x3cG9nNUVpc2pCdVFRWnF5YWwrYlZmTFZnU01oU3ZneHhJRUE5?=
 =?utf-8?B?TTU2UTM3MTVWOEViaFdhcTA5aUthOTAxTHFHNGpYeGVOclM4UTJHMHVrdUN5?=
 =?utf-8?B?SldqazUycFJnQk1KUVZ4a2lhOUhHOFNKYVNDUTc3bG5pcEdrdVZSVEhJZFdu?=
 =?utf-8?B?STZhUFU5VE01ZGM5Y3BCaHk2UjdWcXMyZ0x5eHRHcDVkcE5kWDRnQ1NBUkhD?=
 =?utf-8?B?S3EzQ1JaWGdINGpZTzlsMzVRdG1iUGsyclZMVHY2SEM3MFkveDVsV2h3Z3FP?=
 =?utf-8?B?a0dRKzlzbFNyVUs5VVBheVdQTE9FZ1AzOENoblRMWEVNKzNoUi9UNmRyc3Zv?=
 =?utf-8?B?b3hjVEJES25PczViU3k2UXMxZGwyb29uRU5XMkdhZCs4UjZXWFY2TS9YY0hq?=
 =?utf-8?B?NkxTZU1OZXhYQTRHMnc4NElpVlFuc3dzNWNIYnhxU2hvc3JBdUMrMnJLSG45?=
 =?utf-8?B?T01SamhldjlkblhNRGRqVjdPU2MrS2tFeUU0dmFkZWpjVEhZMVgreWRSeCt0?=
 =?utf-8?B?MFJlUTJNbHI1YURVclFJNSs3dktnckpOREViQWRmWHo5U3VlRlE4UVZHZ3Vo?=
 =?utf-8?B?Q05hbFBMMG84WWZuT3JXSlJPMHBOWUdhbmwzNzVzclhLdCs2aUJOeGVOR1h3?=
 =?utf-8?B?bGo5L2FGQ010QVFGSnIzN3NQL1NyMXZwM0UzbEdod1Z6QXJublg5QWpkR2pC?=
 =?utf-8?B?dEdhSFBNc1BHRWFxL1dBQVZDYTd0WU5EVTAyZG1RWUJxa2ZPNEFacXpDVjgx?=
 =?utf-8?B?MTM1SllFclk1UlpRL1hvNlBFblNOTnAxZWdIYUdhcXBsd1l4NGlLNC80bzUw?=
 =?utf-8?B?K3VscENYVFBsRzBBemVjYjlocFZLL0hiQmVVK2J2ckUyRWdKQnZ0RVJkSW45?=
 =?utf-8?B?dzAyNzVwdHo2OS9qZFRJVVpLV3NhY3dxdlJBbCtscDBxejJqOU9ZVmUxSGpi?=
 =?utf-8?B?YUFBYlBhbnVyYyt0K2QwM1I2MHNSUklrdUxyWkRFWnRYS3A5SEx0RUExOFVE?=
 =?utf-8?B?SExVUm1aWk44d1Bqck1lQlVjSys3VnV6U3NCNGhPaFFVbnR6VjlFTkRwS0hK?=
 =?utf-8?B?dFNwUzhCNURTODh0aU5JakdIbWNONDNHeGt6U1dLVjNQeHlIeHl1dmQ3c3FS?=
 =?utf-8?B?ZkNOZ1Q2NGdtYVhCK3oyVEV2ckxnQjVZTVpDaGk5MU9FNEpqZzN5S3RnaWRU?=
 =?utf-8?B?MDhsMkRTZzdmRlZpZHA2b0d1UFpxYTJBaE5EZ0FxWFhmM2VQK0I4eDdDVXVG?=
 =?utf-8?B?a2VlNGxTejJWQU13RE14TW1qM0ZxQWJ0MGJFbFVtKzk4WFNEOG94blRRRk9r?=
 =?utf-8?B?c0NsWFBzaVY5K2xBL1E2Ymk2dmllQnF6ZTJIV0N3VGR2Q093S3ZqUFh4TS9p?=
 =?utf-8?B?TGhSQ25CbkZQZ2xRSk9HaDlFVWdYdEF0cWNidlYzamMvNk03b3p2ZFExeFFa?=
 =?utf-8?B?eTMxL3hJdGU5ajluWFloVUtSaGY4bU9IN1psK0JhK1N3b2t4ZU1FRDdZWkNn?=
 =?utf-8?B?bW9EUHJnRDNKQldzOExSWXRxUk5OMGZQKzdqMU10YnBvSW15VHJId0MxZTNI?=
 =?utf-8?B?dlBWTjh3NVJkTHJNRzFzQ3YyOERlamNFRmpHR3BBRGxuSHY1cW12SWdmOWNm?=
 =?utf-8?B?dFFwdzZ4ZGZhc0Q3UFl3ZWVUSFpIYjNiRW5SaktNRDdvTGI1d2Mrb1dYOEE0?=
 =?utf-8?B?KzVUaGFvWFpzNjRpS01nUW8zdDZOL2kyb2ZOMHRGeWVWSk5BdGkrZTY3Y1Rn?=
 =?utf-8?B?enFXaVJSNEIvWE1lNUhueHp6L2tBYllZdWUyV0YvUG5ZdzQwaHlFQUZKbnRE?=
 =?utf-8?B?bGd4bDlXVFpGbHVMR3puYzlGTUdZVmlRSXladSttTXlnRXZqYWNiL1NCK2V1?=
 =?utf-8?B?VnM3bmpSLzhMb2JVRlQ5YUNqUWY3QWhqYzdIMzc3dDNaMGdVZHlZNVV3ZXVq?=
 =?utf-8?B?NjExTUZnbmtCMTF6TGZEVFk0WStlLzJwSEFKWEZlWG9UcTJvaWt1SFlETFZk?=
 =?utf-8?B?cVJsVVV2ejgzV3o4bmZnM1JHNGt2NmZ0SWZGRFZOS0JFNzdmdzMrb2pBeU9L?=
 =?utf-8?Q?++/FFCodxhN36Bty1mIyenbUX?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 286f6f8a-a5fc-4bec-9dad-08dd0c107a7d
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2024 22:45:07.4148
 (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: 9dYCEwFEY+8ALDjBUWbAjSy7i/q3fkbudmmabmMVJ+dvleN/98i1cUbSSbfpyntmV0CH9jMAmQisQ3Gqhph3Fg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7952


On 22/11/2024 20:49, Andrew Cooper wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> Sphinx complains:
>
>    docs/fusa/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs'
>    docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/market-reqs'
>    docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/product-reqs'
>    docs/fusa/reqs/index.rst:6: WARNING: toctree contains reference to nonexisting document 'fusa/reqs/design-reqs/arm64'
>
>    docs/fusa/index.rst: WARNING: document isn't included in any toctree
>    docs/fusa/reqs/design-reqs/arm64/generic-timer.rst: WARNING: document isn't included in any toctree
>    docs/fusa/reqs/design-reqs/arm64/sbsa-uart.rst: WARNING: document isn't included in any toctree
>    docs/fusa/reqs/index.rst: WARNING: document isn't included in any toctree
>    docs/fusa/reqs/market-reqs/reqs.rst: WARNING: document isn't included in any toctree
>    docs/fusa/reqs/product-reqs/arm64/reqs.rst: WARNING: document isn't included in any toctree
>
> Fix the toctrees.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 03:45:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 03:45:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842319.1257703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFQ26-0001lg-WD; Mon, 25 Nov 2024 03:45:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842319.1257703; Mon, 25 Nov 2024 03:45: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 1tFQ26-0001lY-Qg; Mon, 25 Nov 2024 03:45:06 +0000
Received: by outflank-mailman (input) for mailman id 842319;
 Mon, 25 Nov 2024 03:45: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=rOK8=SU=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tFQ25-0001lS-GZ
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 03:45:05 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20629.outbound.protection.outlook.com
 [2a01:111:f403:2009::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3425bf9-aadf-11ef-a0cc-8be0dac302b0;
 Mon, 25 Nov 2024 04:44:58 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 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.8182.20; Mon, 25 Nov
 2024 03:44:52 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8182.019; Mon, 25 Nov 2024
 03: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: a3425bf9-aadf-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjI5IiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImEzNDI1YmY5LWFhZGYtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTA2Mjk4LjE4NTgxMSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dHD0PdW+GpW3qhJx1nPCYgaWjsY3tT3E7wXHIGrlyZ4YWVUSimAbGo+VyMhyNmejYWsKOidS5PJyLDww5O6OdKcUid/hVdtax3JYUMhf5eMrKBTyW/G3Hzv3lrHcHRXtEgNtb9ihrVBPTYWYsZEVddmrvM7MsuY+BiSRJ+gL5q5NSgpRORjvBL1MozZ9mBJIlsLRj+U8F8a2z8js7i26Edo3jm4eTKjaytj/i8gyj+IodxciDBiu+8+zhkhek1z9d8pwvppCteD0pBRnwVHz9tdWkSt2Y/u6+2jVuiiAcUzrEfYHAEQxc5MHMGwSVaxUdH2pDB6nF3XpRjNYFUHACA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kUDaNk2JcwCEVOf8M2jImzF0xKE5N8uU/OBY+gCzBoc=;
 b=xUpUHDvgZaryYxhBqbP767o+jJD4WlHRL0C9y4pUCdSCIs6U/jwH3NnRnRxE9MMqyLrpaSVR9pXJ0zz+DlBEZ0CTXz7da65l+n1ytqZPyvMf9pMkNJ57fj0gD3FgmzukdCAv6Jv+ww2iJKrPkEfUzqdxedtswt+7hc+aPquupMCkVQ9j+aPufxbq6x1tp1J9MDwr7T+GsBoA01zg/QOAu23eEdhwZkhlgNBqxHqmIkVEzGj9XwpL43z+XsMRsvZvTvTfgxODUeybCfRxKPYxNjgfdZSVqOW82kaVrY8Y2bjP4dY1513bOEGqVaH2mkDLLY7PmhnhwC81qCUNc7ReoQ==
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=kUDaNk2JcwCEVOf8M2jImzF0xKE5N8uU/OBY+gCzBoc=;
 b=bOMup2WqUQxgKPAheYxx2qZBOrfCOAatKM7dlyj7NvRHEhHdeRSbgVRexlvYdQ0XnaWf6BcOewHA0bFfBkFI5RGkFyFgT2LWmPAg0rLjmlDozHhh5m/vqw41wmg5POk7iMGIGkTMHv+yIbLoe321dVZnsVT6FuQOrqsVQW5Yvbc=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAIABfwWAgAFxTQD//+JeAIABss4A///tiAAAzKybgA==
Date: Mon, 25 Nov 2024 03:44:52 +0000
Message-ID:
 <BL1PR12MB584977971D2C0A00443A1A79E72E2@BL1PR12MB5849.namprd12.prod.outlook.com>
References:
 <BL1PR12MB5849F0606930076AC8CC66ADE75B2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzYcskZ-GZ8HsXfU@macbook> <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz8Cwj3KJ1BIBEg_@macbook>
In-Reply-To: <Zz8Cwj3KJ1BIBEg_@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8182.018)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|PH0PR12MB8032:EE_
x-ms-office365-filtering-correlation-id: 2acd737c-69d1-4791-051d-08dd0d038541
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?fekoFvrS0NZ5YNVSurcZ3o13BeaAVoEshZF3CCvwzKdcAbgbiFNFFWgUAF?=
 =?iso-8859-1?Q?4USeKwDQR19X8UOWVwe31YvHO2+NZSCascDMqyu0U8HmiKbiC05VOAivq3?=
 =?iso-8859-1?Q?w75eZlkQRC/ecGDcFWT7uyZ31NkvLFlcakJQuc86Xw3hEr8j/hmMlh6iiR?=
 =?iso-8859-1?Q?qSo2Ax9s2v7hT+oTrt/W39Xrj2QNZHBNcwHeoUPgmiGnh8/CX2UOs5x436?=
 =?iso-8859-1?Q?Z2dTdP5Zpt+b7WFg2557bP5Vydkk9SOQAk1sp/p1Ton8CDYnOJxhfAEeqb?=
 =?iso-8859-1?Q?isCARW+EKHjQw/IkNPXo48sy1itoCAu12zBbUG0gjhrwm+vHtxzna8gCJc?=
 =?iso-8859-1?Q?AqlSgSmuLiGYiHtu7vHMuc62PmboTwBcUHRHRWb2QmSgzb/X3RO7AY+ks+?=
 =?iso-8859-1?Q?7vyer+fKNMeJSXUTZ+sU9izRqGlQqFENFqtSciuzhv0sySgLeWfREtvq1d?=
 =?iso-8859-1?Q?Xdy+XdA1A2qy/7CHynb82RSdnpI6MI9hg70w/Dg/lxJuTAR25E0eObC7sQ?=
 =?iso-8859-1?Q?8Ipiq25GAEAlUT2tAZblt8RBctYu+nitfoa6nbMsQHQbrAQV2sWPTS3SP7?=
 =?iso-8859-1?Q?lnfnG8pfZxvbIkZc2mZfK7YwrNt00wF0F5n+u7u1bUKxAhswN2MzgbvvWP?=
 =?iso-8859-1?Q?GPhcUkvG1b2hFWyJHdo58iIPonC8x/fazEIhxyAY7dWqA+I0XcU5W0UwqO?=
 =?iso-8859-1?Q?5HGDjSevHq9BqT/fzZg54PqarXZkaEI4nZoSGwNsFDRcL5E5YeeEUSgS91?=
 =?iso-8859-1?Q?Mh1VEWC43W69R3OpW2qcvU2L2eIJFUjvhFPHO/nmPt+nodwBeOkCTi9NAZ?=
 =?iso-8859-1?Q?qWqArV0LsJAcmBb49gdymLTk7TsNPIULzl9uY4f/BDFYRoGPgSCVb+lEIK?=
 =?iso-8859-1?Q?/tBUM0bsS0exjnRzZemJV1l1+CjGkfOfZxdOxqWN+0edxgAlwA2b+cLDcC?=
 =?iso-8859-1?Q?h05qdzhoiwqzsywkrrdnCTprdwpD8ubc/tEUGeRtCxTwkoEs2oDcmeQx11?=
 =?iso-8859-1?Q?u6YFBeQM3Cpa3a/VERmDvxn1T5/GJH4HByffkIQB/fG9oHgXZ5w/H5CScy?=
 =?iso-8859-1?Q?gajBqJZFA5o48v0+vqp5gCWfOYgwBB/xf5dFSD79fhgzIDotWVAiRuNIwq?=
 =?iso-8859-1?Q?mCWLvrTXY6IitW/PlQvPpcq8qAFNkaU8UFMZMiJb3185lgMGuRA1BlBXFv?=
 =?iso-8859-1?Q?ymy6SMJEiotr45xErGCuNT4R6pyKyqtTHomvErpbpvgRk6ayklswLTjLgm?=
 =?iso-8859-1?Q?qkusPS8ef+pVzpLbO+YP+gWLaInt3r9j3nDKcl8d2wvQ/g8NvB6YUV9dT9?=
 =?iso-8859-1?Q?yf9fsZMoNh0pwiuf2ME5XWeZaPlCNZKSvSj91i0R4ImxqJVBxQxjimNS5S?=
 =?iso-8859-1?Q?iJTfJS80ARGg86972/ce/xVY2JgScx3asuG38dypH7LQjU56k+Mxh9gd2s?=
 =?iso-8859-1?Q?l8gA0S9fMu1HDGVHtdqFweTRfNQSKsfxubsgzg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?2ZyhdR4qmxQ+jQ0LmeuLv0n8LwCHNWcX3wNRMjJ7XEOzPB3pJ7yOx4z834?=
 =?iso-8859-1?Q?nzcFW+zzuXjd9H/bJ500h6tI7FrdirTpz+HsM9qDhJveoTvHkpzPgv0Rw4?=
 =?iso-8859-1?Q?cxS3RKqHpMKNzh2kutSdKDS6KfKIyqSUsHyS53HxmRdBaDqGnXZDNmgKNU?=
 =?iso-8859-1?Q?nf7kivIK+vLMIk9yCFh5ZYG/5kv9v43w4tihpnb0qZu1V4wl9JrBc4U4VZ?=
 =?iso-8859-1?Q?m+e8A9DDOHl02eynZsvohq/lP00VgZdNzUAZn2J2mCVtFYi+rVVIm6JYnT?=
 =?iso-8859-1?Q?JhrPA8M4j0JxVYpmkzEjfc93RDY8jwBX6p8suK5j3f95+QatgvKwqlwxlt?=
 =?iso-8859-1?Q?Lo/iPcQSRd9MUBIyo1Wl3EpUD2sylyswqZRXMtJEnjdCQPNGWa783Pxd0b?=
 =?iso-8859-1?Q?/HyvMMUR8np6gjyX9x6WCFKenz13/fBvrzLpSb9EFsMQ3X+L0uTi22HWvD?=
 =?iso-8859-1?Q?pAtnn9hl3SqA10YRr/d7+mmOfxOGUIJO5hfGA7mXtqrt5l5KTMQESWGt86?=
 =?iso-8859-1?Q?OqbyKU0DjLxWb7GuIqtaJyrd1JYXO3fm4bh+kMnjLps8NmkPQqwz001aJF?=
 =?iso-8859-1?Q?UoccpFxpyNGmCJjH6R3z0koxBVoGvDdPXU06Q9Yn1VybJGa1T8rAXqiOxt?=
 =?iso-8859-1?Q?l2xccT2q6VZ2ifbx7SR7nwECQacbsy+e3otDwmFq2BtTMgKlGwx0tvcaNn?=
 =?iso-8859-1?Q?HnKvbfqhgnBlMgiMc+TN2oA3C/kOKRNKvMij9ImaZ+nkBI80FB/Gyh8eGC?=
 =?iso-8859-1?Q?UxU88qEmHKxelN4lOnBmQoGU0i0ubcn5MmnDf6nCELSQnCigLFTUoD20lk?=
 =?iso-8859-1?Q?G7L8Vbi2l6Mv7XMxq4c8epNnavTqlBks7l5P9+1OYTweSi9UKru5pFECtj?=
 =?iso-8859-1?Q?NYkeF2+AhQbFRTln9p4g/i4I2xv2OT85OFOOopG2a6Vi4kwgyKIQhWsvcv?=
 =?iso-8859-1?Q?vcwy2kbfSKzuaHBuK0rF1soIPtbc4nRMZ+GnD7qlUW06PkFAhBe8EY0/C9?=
 =?iso-8859-1?Q?HJ4VAn4aBN9PAf5ftfkXF/zLkgZEhSVxHach0Q93dWqCyh/rtENfD2YzCU?=
 =?iso-8859-1?Q?IyJm3An6LHAqlmquHwh6KK8SIlg+rIYDtghBKRwNdnQ7FNFQ9kbAAr4NVc?=
 =?iso-8859-1?Q?rw685SnYHB1fGStoTYzmCcOsHi+a2hNlPfbiI8Qlu6i3xJBeihopXD/LMq?=
 =?iso-8859-1?Q?T2ykMHMhXHETmjbgsQS6j7iyXBE8OWUl45PpCohKbLaBwtGN08iJ1+uKPe?=
 =?iso-8859-1?Q?6KZWANG4ifBHhFR6b/FWiEofXLCegNK03ESols3nBmT0PglATpwyKZd0e1?=
 =?iso-8859-1?Q?3S4YzUb3RP4jjrQ9j4C6kr9W9ADvmvdPYb50uAOIWDqNDx+rwGgIvDJxcF?=
 =?iso-8859-1?Q?tH528GjsCtXYTIbf7IwAVarRIg0JLPot3j/WoWjjVYedb2BU4raF8NH/L8?=
 =?iso-8859-1?Q?rXF6KZQnVDsk8lj3qFQnHA/jEw7/hBOhlvOXpQ24AAUVD+uYrxsVmZ2M8B?=
 =?iso-8859-1?Q?tCXFWnslokytKTRhuVckW8kR4BrLCgJXF96HdwBGHuYtTKMXG1NRGcarBF?=
 =?iso-8859-1?Q?yKfbCNFnBhPI/K6C6zey6VsJuynSskEyrNmp06xM0QXeDEG8n4gPJv/7YF?=
 =?iso-8859-1?Q?exMHxNiPFPhKM=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <306478791964E344A7D8AC1881E8A571@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2acd737c-69d1-4791-051d-08dd0d038541
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2024 03:44:52.8031
 (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: XErXOlioSnLA67lwaIBabrQVPLHrgYYgGKYvaqKLD9Z22FLm+8BKhp39tCLgiMieQQPnARS6aJfArnYAw1R3zg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8032

On 2024/11/21 17:52, Roger Pau Monn=E9 wrote:
> On Thu, Nov 21, 2024 at 03:05:14AM +0000, Chen, Jiqian wrote:
>> On 2024/11/20 17:01, Roger Pau Monn=E9 wrote:
>>> On Wed, Nov 20, 2024 at 03:01:57AM +0000, Chen, Jiqian wrote:
>>>> The only difference between our methods is the timing of updating the =
size.
>>>> Yours is later than mine because you updated the size when the driver =
re-enabled memory decoding, while I updated the size in time when driver re=
size it.
>>>
>>> Indeed, my last guess is the stale cached size is somehow used in my
>>> approach, and that leads to the failures.  One last (possibly dummy?)
>>> thing to try might be to use your patch to detect writes to the resize
>>> control register, but update the BAR sizes in modify_bars(), while
>>> keeping the traces of when the operations happen.
>>>
>> This can work, combine our method, use my patch to detect and write the =
size into hardware register, and use your patch to update bar[i].size in mo=
dify_bars().
>> Attached the combined patch and the xl dmesg.
>=20
> This is even weirder, so the attached patch works fine?  The only
> difference with my proposal is that you trap the CTRL registers, but
> the sizing is still done in modify_bars().
>=20
> What happens if (based on the attached patch) you change
> rebar_ctrl_write() to:
>=20
> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>                                       unsigned int reg,
>                                       uint32_t val,
>                                       void *data)
> {
>     pci_conf_write32(pdev->sbdf, reg, val);
> }
>=20
If I change rebar_ctrl_write() to:
static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
                                      unsigned int reg,
                                      uint32_t val,
                                      void *data)
{
    printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sbdf, r=
eg, val);
    pci_conf_write32(pdev->sbdf, reg, val);
}

I can see three time prints, it can't work.
(XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
(XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
(XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 528, val 102

If I change rebar_ctrl_write() to:
static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
                                      unsigned int reg,
                                      uint32_t val,
                                      void *data)
{
    if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY )
        return;
    printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sbdf, r=
eg, val);
    pci_conf_write32(pdev->sbdf, reg, val);
}=20

I can only see one time print:
(XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40

The check prevented the two times incorrect write actions.
    if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY )
        return;

And why my original patch can work too, the check:
+    ctrl =3D pci_conf_read32(pdev->sbdf, reg);
+    if ( ctrl =3D=3D val )
+        return;
happened to play the same role as PCI_COMMAND_MEMORY check.

> Thanks, Roger.

--=20
Best regards,
Jiqian Chen.


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 07:41:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 07:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842330.1257714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFTiX-0002pF-HW; Mon, 25 Nov 2024 07:41:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842330.1257714; Mon, 25 Nov 2024 07:41: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 1tFTiX-0002p8-DM; Mon, 25 Nov 2024 07:41:09 +0000
Received: by outflank-mailman (input) for mailman id 842330;
 Mon, 25 Nov 2024 07:41: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=Axd7=SU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tFTiW-0002p2-7n
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 07:41:08 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20623.outbound.protection.outlook.com
 [2a01:111:f403:2407::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d187ba5-ab00-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 08:41:00 +0100 (CET)
Received: from SN7PR04CA0199.namprd04.prod.outlook.com (2603:10b6:806:126::24)
 by SA3PR12MB7859.namprd12.prod.outlook.com (2603:10b6:806:305::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.18; Mon, 25 Nov
 2024 07:40:56 +0000
Received: from SN1PEPF00026369.namprd02.prod.outlook.com
 (2603:10b6:806:126:cafe::6e) by SN7PR04CA0199.outlook.office365.com
 (2603:10b6:806:126::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.19 via Frontend
 Transport; Mon, 25 Nov 2024 07:40:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00026369.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8182.16 via Frontend Transport; Mon, 25 Nov 2024 07:40:56 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 25 Nov
 2024 01:40:55 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 01:40: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: 9d187ba5-ab00-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNzo6NjIzIiwiaGVsbyI6Ik5BTTAyLUJOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjlkMTg3YmE1LWFiMDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTIwNDYwLjYyODI3NCwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p1Ee0LPAoHkffC/nRmTwrwvtHVhOItZim05Tvb+zgHinE5fWSZWEEagrglx3Wo/dckeZNMFMA5jMD/OxDROi3OJooDjyGzOHiOsEoiMdZwItQi5TwFziK3GZZESiBzDd0Yc0azNT20hjHIL6KSE81ZOWg3K0b/GMShnxARsoTnGuZSH5VQkDXhzsocSF9SwQ0jlDe9tL0PUSntBslzmAhcimnoBW6OY/zU5qlAaAUYmtsDxTq1Lu0Mpt2Hlux2hIEzfO9aNep65/rZWF1bLO7DuHEyYAiQmy6NzhYXGNmppGKME7HL5O1FCRJu3Ck4/6WabF1/CnX/U/+uVvGRDb8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FGI4QZ3NnjGlHsrU14t9hERHIiYS15v85k5p7oHJtO8=;
 b=wMo6hpZ7IRyKwZZGlHOPlT2wNfkk/txmvSZuklDsOsj7FwBCnFqKAk9G3ikb+KrPA3FPbk96yyrUndGpoYAEHTLtDQAJJ6jw1snklyrLgS1rv4XmvOYj9HnMN4+An7Bz8K+oCT8voJGZFWeCP9s7OIziv4h2EgiZcnoOGB/sevfMACx1FGpwxkEn00wLe82/Bi0h7gzrur2AuwLjPL9H2UBV+KT7Oj03NWR8fhNbuLTWz7FtJPOaZFTU1LlhvS9x5Qgr3epp0T+jlx39vlCrs2y7nt/lpePyM6vqFO03lddRvGXYVe6kJYTYNQYU8NgkDiJ+yIYETgOxEUtGQ4T99g==
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=FGI4QZ3NnjGlHsrU14t9hERHIiYS15v85k5p7oHJtO8=;
 b=AFywZe+/06S6sj7+TCOUnb85WH1kxkchBGy6MVWeMCzvevdted7qJz1rk1B9l9/xTR8XtLOAop7JdIglmbA04j4rAak7R572aoJKYSn00vTfOzfSCw/TRgJJAyQrBxVfzZL9PSKnTRlM/a6CrnjHQHBiNgeS5EDGRSPzQk6jKL0=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <03620cbe-a251-46f1-8d48-2ea04b3ed3fa@amd.com>
Date: Mon, 25 Nov 2024 08:40:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen/common: Move gic_dt_preinit() to common code
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>
References: <151ac176ff02d2ff9b7f87e3c02b9ce0472720fa.1732288620.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <151ac176ff02d2ff9b7f87e3c02b9ce0472720fa.1732288620.git.oleksii.kurochko@gmail.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: SN1PEPF00026369:EE_|SA3PR12MB7859:EE_
X-MS-Office365-Filtering-Correlation-Id: e3ac9508-444a-42e9-bfb7-08dd0d247f52
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T3JOOEd3Yit1Qzl4bkJqSi9vdlVkbG5yMkNLUU1PdFphM1ErZmN0Q0Zublhj?=
 =?utf-8?B?d0NWZk5GQkN0MlVDTmcrQ0dNbk9qMWttMUtvMUtjVW5aUEhyZnNJbzdLRVp1?=
 =?utf-8?B?aVNkTjU3Z2ZURFFxYlM4MnNtRjgvWHlsQmpjTktoSGlINmJ5dm1DRFhXRm1h?=
 =?utf-8?B?clRzVTZzeXFBTlE2SW5xOEhtd2phVWlWZjNsYzY5UXRXWTR3YUNUeHhnaXRJ?=
 =?utf-8?B?N292YlpoZzBBVFVxSExhaFNINzFHZjRyT1l1bU91dUYzbHR6ZUwrV0R0VTFF?=
 =?utf-8?B?SUpFZWl5dWFNTXFoM1ljN0tTZEhRQi9uTjUxTzZnSWp0cFBQRjRKSk5CYnR3?=
 =?utf-8?B?Y05QdUVaKzZPQ25lOTllaUdKUkk2bHNOSW40SGNVTTZXb0E4ajR6RlFZNW9L?=
 =?utf-8?B?dmVMNHlFY0d0b2pRUVVBbE9qRDFCeE9CUlcxbnk4Z0VwRGZsVUVNdVR4ZHdO?=
 =?utf-8?B?RGZGMUdUN0w1cjhHOHBRMnJrVXIzWGpmS2ZXZDNDQUVVM2t3aG8wSU1RMU5D?=
 =?utf-8?B?aTZtOXVYYWVmTkkrSW1tN1hFZ3IyZDRYUGdkL0tDRzRDWlZheXJMZmMrMS9p?=
 =?utf-8?B?VUkwWjhDc2VRMlY1OWVXQUZWOFpIR3ZNRGYrdm40NWx5S0NhMStRTDVSVWJo?=
 =?utf-8?B?aW9yM05xVWkyMlVvRFUxa0pJdUR5dkJvQ1pucS90NFBZbERWVE5WWWVRYXJ3?=
 =?utf-8?B?T2FVeU1aaXByRjJKQmlGUTQwQmIzZUd4TzJtOG5DbnlQNmhVOG5UZW92YTF2?=
 =?utf-8?B?Wko5N2N5NzdrUEcwWVJIU3hLcEp3YUN3YitTcXJkV0N5a0lGanpCeUFNZ3NS?=
 =?utf-8?B?Y2RUY0VEZ0Q3L2p3NGRtdHRXQ1VLMnhjUGZXay9TN0V4SlorL1dNUkxIZXdU?=
 =?utf-8?B?UkU0ZWZiM28rT3NlSFdFa2JxbWlManVId1NkZ0JFNmhITG9FMEFzMTRhT012?=
 =?utf-8?B?SUN2VVorcHRrVVYrTTRPQnNNWk85WVpxRkdRU21CZzZ0YlZCQTdhS2Y0bjR3?=
 =?utf-8?B?cjFoS09HVjFCSzJzSGcxNllaQ2lZVmEwWDVjN3oyZWR5SjgwK1JqYUdxcnB2?=
 =?utf-8?B?ZWh1UHJoTzg1cUlmNzV6UWt0RGpmTzlqcmtlaXl1aG9TYnhiYWJ2WWRVbElV?=
 =?utf-8?B?Sm9JRHBtKytUZ0krMm5DNEtBRVkrV2djODhPQllobEI4Z1lKeU55YVZ2UkRj?=
 =?utf-8?B?S0p4TlFLL0k1Q2NyZWtxRXc2SmtZRlNRay93RU1lSlRmTHhqT05jTlplRUkw?=
 =?utf-8?B?ZVJLajd0REdoYVpqei8wcXdiSytnSk1lVGt6Wk1mTDgraDd0WE45amttbTVq?=
 =?utf-8?B?a1pRdEcxVmFpQ0FVOWhZVHAxVTVlUXpucFJUWExsK2VlNXRFc0FXVkZsa0pH?=
 =?utf-8?B?aTE2L0w1amNGbjJqQ3NFamY2Vno5RFc3VHduWU5jcFhCTTc3M3pVbHZ0K2ND?=
 =?utf-8?B?cUV1ay83STJyb2pSYW5zSUxqT01hYm4vanhRUDNRSEJ0NGZZL0s4aWRYbGts?=
 =?utf-8?B?aTVRZTNrNXlPa00rek9GdEhBdHI0d0dBM2tMN0t1bkEyejVpa3hkcFNqamJ2?=
 =?utf-8?B?TWNaektLZ0tVMVBCZStqUkV6ZThRdlV3Wm40NVNyTThPUW43eTROU3o3RWtW?=
 =?utf-8?B?Vng4cG1XNG1oVTd4eW9yYldHTWc5R09RREs5Y2tEcHNONTBFNjdjK2RoWStl?=
 =?utf-8?B?ZWJYQUo1aUhYYkFtSUU1NHVUVmRWTkVDcmpKUUxxYWRNY1g2QkNycDMxRExj?=
 =?utf-8?B?ekxkT29scUg0OWV4REltYVFDcTNaZmxTRk8yS2JkcGhaV09SY212V3NxZzl6?=
 =?utf-8?B?Y1Q2czRXSmtrMVdnMXc4Nm5sMUR6bTdPOTBmLy9YMit6ZkhObjdmcE1zNVho?=
 =?utf-8?B?UXVWc0FoT0lhRTdzNTFIOVRpU2l5NnN1S1B0NnB2UHBVSElWalBVdFFYN09s?=
 =?utf-8?Q?38XOhOmV9kH1UI8NK/TxwjISJUv6lvG1?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 07:40:56.1810
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e3ac9508-444a-42e9-bfb7-08dd0d247f52
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00026369.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7859

NIT: In commit title s/common/device-tree/ but I wouldn't send a respin for that.

On 22/11/2024 16:19, Oleksii Kurochko wrote:
> 
> 
> Introduce intc_dt_preinit() in the common codebase, as it is not
> architecture-specific and can be reused by both PPC and RISC-V.
> This function identifies the node with the interrupt-controller property
> in the device tree and calls device_init() to handle architecture-specific
> initialization of the interrupt controller.
> 
> Make minor adjustments compared to the original ARM implementation of
> gic_dt_preinit():
>  - Remove the local rc variable in gic_dt_preinit() since it is only used once.
>  - Change the prefix from gic to intc to clarify that the function is not
>    specific to ARMâ€™s GIC, making it suitable for other architectures as well.
> 
> 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 Mon Nov 25 08:43:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 08:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842343.1257723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFUgZ-0001yX-2I; Mon, 25 Nov 2024 08:43:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842343.1257723; Mon, 25 Nov 2024 08:43: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 1tFUgY-0001yQ-Vu; Mon, 25 Nov 2024 08:43:10 +0000
Received: by outflank-mailman (input) for mailman id 842343;
 Mon, 25 Nov 2024 08:43: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFUgY-0001yK-Gv
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 08:43:10 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4a27cca3-ab09-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 09:43:06 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9a0ef5179dso612895166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 00:43: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
 a640c23a62f3a-aa50b52f92fsm438327566b.107.2024.11.25.00.43.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 00:43: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: 4a27cca3-ab09-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjRhMjdjY2EzLWFiMDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTI0MTg2LjEwNDQ5Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732524185; x=1733128985; 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=1s7kXdhejbuTso3M6ZjaLVuS1QvRbDfQD6biuH5z+Yw=;
        b=Nh3lMDzuzsjKVxCtRGp8YDts9Ny2IgFSmvrQVuehpXIuBYfyLHzWAzCxRHGll2kv5u
         JSWEQ6jI7ZLDjPcaTcezujJOJ3MYohafVcDXonpKamMmRLQ9lMQ6XxHtnbjoXq5TA+AC
         imb4ndV7uD/9sfI0f4MoI5i/iYQocSvwYA+NNJ1/xpzfKyfrylimPnMZLJUn0xcyOqbS
         NGvPPU1+HjNVSb7TREg1NNTt8mulQpF2G9SY+A1xAx99gHB2Q0uqnDnibhDINKIPWXxh
         BzZG67HIe/YQFX+GfPyl4IETkJfk0jcTVpgqrT8gmnueL2jF62gCf97QGFxxKRInqB5m
         8vAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732524185; x=1733128985;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1s7kXdhejbuTso3M6ZjaLVuS1QvRbDfQD6biuH5z+Yw=;
        b=pwJH7qgL2S07WiWubLGDOiqf4tJbxEnKBLQOOuqoKBplUfRsPf6xB6jRQzwt+nUCsN
         TsiGbfLz0sqMAJIPmfujTKq32a9m18l3PVMNXB5RFARmLOd9IgVLnJCeQ6B5U7a4r4vR
         ZXK5k08uuZ4z2a4Bu/gXnv0Q08o1eAmEh8dtl9pToy3Xdsg3jxSHO5LLC4a8IA0OSB3m
         lpgJHs6FdTG2oD0gQgZKSdL8gtqaG4oPd53GM8yLrTfnfjUOHAQU3xpowEA7Ahjiy6n5
         DVLQ7exxuDIoxsoZ+UUaJCSoNqOQ2JswK7wxpJKxQl3RoSz+bZ9LuN6yGmjQSvEk5+Bj
         ZIPA==
X-Forwarded-Encrypted: i=1; AJvYcCVxzoiyAYqfwpL7xkNsPi54Umonsp3zXKL+MRKtv6CEROldhznZhnBmYgBuVYTP0lK208iAEe7Edp0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzo9K6ZQbwDfGcDn7RPNK631FFuqWtR116dm1YKMLo7AHlpMyNx
	Nx9v6D65tkPHnXw1mYlgKNP8EexkrYUSfGbn5eIRI9/kjVKa2+IievMqRh84ew==
X-Gm-Gg: ASbGncv6k1xW7tQpFRZFvd/cq7UAr5hab/7reEuXIMsHNpdauehX4J7ekCApphV1bpL
	zhKHEhe6PjWElaSG50k/4VeoE9xgeJlFz3X3H4bxXJkEoOSm6uVyHgbU0ug2X069LyUbEyS4RgY
	tsVgO58ZiObbNepg+MAuWHRP91m5ek2whOyGj8TcsNWeHbkLkmVWxPGunb6isDsnnZiYa2cyHnx
	ct8dMBUBIYCbjJmEV+Foyg7+ClJEYpsHVYg4M7Sm3FLVG3s3QWaf2wLqnm8SA2aMdeGLNAN+wyu
	CiU4/RJ2/cuZs1PaBtMZcy0hNiix3ukKj4A=
X-Google-Smtp-Source: AGHT+IGKwYka8V+kNdb396G59GyKfBilhYr01CpxR/w7TYrsLYQ1URrbzSHaXH76chnMbr9N1fsQ5g==
X-Received: by 2002:a17:906:2181:b0:aa5:451c:ce1f with SMTP id a640c23a62f3a-aa5451cd09bmr342393866b.59.1732524185488;
        Mon, 25 Nov 2024 00:43:05 -0800 (PST)
Message-ID: <af59ffcb-8601-4e42-acb8-0908587d81a3@suse.com>
Date: Mon, 25 Nov 2024 09:43:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xen: riscv: enable stack protector feature
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
 <20241122210719.2572072-4-volodymyr_babchuk@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: <20241122210719.2572072-4-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.11.2024 22:07, Volodymyr Babchuk wrote:
> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -5,6 +5,7 @@ config RISCV
>  	select HAS_DEVICE_TREE
>  	select HAS_PMAP
>  	select HAS_VMAP
> +	select HAS_STACK_PROTECTOR

Please maintain alphabetic sorting here (perhaps similarly in the Arm change).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 10:01:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 10:01:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842361.1257733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFVuL-0002hy-77; Mon, 25 Nov 2024 10:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842361.1257733; Mon, 25 Nov 2024 10: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 1tFVuL-0002hr-3e; Mon, 25 Nov 2024 10:01:29 +0000
Received: by outflank-mailman (input) for mailman id 842361;
 Mon, 25 Nov 2024 10:01: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=PSqa=SU=bounce.vates.tech=bounce-md_30504962.67444aef.v1-98824f30ea2d4a0c9572f3d96cace06c@srs-se1.protection.inumbo.net>)
 id 1tFVuJ-0002hl-K9
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 10:01:27 +0000
Received: from mail134-5.atl141.mandrillapp.com
 (mail134-5.atl141.mandrillapp.com [198.2.134.5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3865c4b0-ab14-11ef-a0cc-8be0dac302b0;
 Mon, 25 Nov 2024 11:01:21 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-5.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4Xxh73525rzG0CBWQ
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 10:01:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 98824f30ea2d4a0c9572f3d96cace06c; Mon, 25 Nov 2024 10:01: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: 3865c4b0-ab14-11ef-a0cc-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNC41IiwiaGVsbyI6Im1haWwxMzQtNS5hdGwxNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM4NjVjNGIwLWFiMTQtMTFlZi1hMGNjLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTI4ODgxLjU5Nzg5Niwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDQ0YWVmLnYxLTk4ODI0ZjMwZWEyZDRhMGM5NTcyZjNkOTZjYWNlMDZjQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732528879; x=1732789379;
	bh=v5AKMnpp0zrdkE39OdxBx/dSkJn58UrtlQXd6ajVqqA=;
	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=qBy2o5Liz6TIwiAhs2K7Kxugnk/lDnV4tS0UmAwxZmJlQJKcN7syYKpXU4r6kp8mJ
	 9XPtlbPjHMAsKXAEh1NtM0TKtHIwhcdCgG9qvhaqF+CXDcey3ryQBy2yMY11BEDS+m
	 8iGMUhixGwtewxrzC7laWIfMXbAWtaCQQzsRsksJxbEZkwXavtd171SX/YRjDYgC4H
	 +y10vTd4CKHOn+mzUByHnpF4WKunDUUyQP21NUOYRxwMX7OQAHZib7rnJwhuOJUgPC
	 Gk4xcN6dypmscnW4d8skYqhgleQ21YMuZzy4HShsPuRdml/YW4CyJmzD3k5ke9MxJc
	 xZI5Sql8cHCyQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732528879; x=1732789379; i=teddy.astie@vates.tech;
	bh=v5AKMnpp0zrdkE39OdxBx/dSkJn58UrtlQXd6ajVqqA=;
	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=HoSAI5RFQomUDRP+axF87tyQSah0o+beLXWxDVbuFryX986j68VEqxq0OX8uQQzwU
	 jYNIj5KlduhisJ0pU+CuohgShkkrwwWUzZgnJAAh1UjV7Ging6MBCADCFAWviqbuaR
	 nDoJhkE/O7LRxNyPsd5BNaqo/W0Y9UyTHUG+XjMvrXnJYexA/9irbP38jrGxEroO3/
	 DJLe6JLNPlhm/OUD7gNdkmI8VhIdWDaLhlczqGmXyYxI9dXKPzB47GVY49qtLBTTws
	 djbuYPVeW/HevwR5y4fPPQUshiZ8eAm1LzYG48N/k5Nz6BRjj3nSeiIXAUQSjAevYq
	 rcez15AuMWMDA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20XEN=20PATCH]=20docs/designs:=20Add=20a=20design=20document=20for=20'xen'=20Rust=20crate?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732528878266
Message-Id: <897d4e9a-d3f5-4cb4-996d-6c57f50a2606@vates.tech>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Anthony PERARD" <anthony.perard@vates.tech>
References: <c0f88345e1ee870dc10a209e3840ae98b2ac1386.1732283549.git.teddy.astie@vates.tech> <D5T1J6D9918L.1TO68X0HW9QMS@cloud.com>
In-Reply-To: <D5T1J6D9918L.1TO68X0HW9QMS@cloud.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.98824f30ea2d4a0c9572f3d96cace06c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241125:md
Date: Mon, 25 Nov 2024 10:01:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Alejandro,

Thanks for the review !

Le 22/11/2024 =C3=A0 22:55, Alejandro Vallejo a =C3=A9crit=C2=A0:
>> +Some principles are proposed :
>> +
>> +Use or provide idiomatic abstractions when relevant (reuse standard tra=
its).
>> +
>> +Examples:
>> +  Provide (optional) Future<...> abstractions for event channels
>> +  Provide a iterator-based (Stream ? [2]) abstraction for guest console=
.
>> +
>> +Don't restrict features to some execution environment, use modular abst=
ractions (e.g traits)
>> +to allow the user to specify the missing bits himself / provide its own=
 implementation.
>> +Note that it doesn't prevent us from exposing the platform-specific bit=
s onto the
>> +types themselves (e.g UnixXenEventChannel can still expose its file des=
criptor).
> 
> Traits are superhelpful for dynamic dispatch and building type constraint=
s.
> Sometimes for enforcing interfaces if they are not all built at the same =
time.
> 
> What exactly are the benefits of subjecting all interfaces to traits? Wha=
t do
> they enable that cannot otherwise be done by extending the interface expo=
rted
> by some struct (say, an opaque filedesc wrapper)?
> 

>> +
>> +Example:
>> +  If we provide a event channel abstraction based on the hypercall but =
it doesn't implement Future<...>,
>> +  the user can still implement its own type on top of the hypercall imp=
lementation, and
>> +  use its own async runtime (e.g based on interrupts) to implement Futu=
re<...> himself.
>> +  There could be 2 traits for varying needs :
>> +    EventChannel (base trait) and AsyncEventChannel (await-able EventCh=
annel)
>> +
>> +  We can have both RawEventChannel based on XenHypercall that only impl=
ements EventChannel
>> +  and another type TokioEventChannel that provides both EventChannel an=
d AsyncEventChannel
>> +  and integrates with tokio runtime.
> 
> Not sure why traits would be essential here either. It's hard to assess w=
ithout
> looking at a particular case where using traits effectively simplifies th=
e
> problem.
> 

Some xen primitives are exposed differently depending on the 
platform/context, for instance, event channels in a freestanding context 
are exposed by hypercalls while in a hosted context, they are often 
exposed from a file descriptor that we can make with '/dev/xen/evtchn'.

While they work differently, they actually share some behavior : e.g 
they all have some event channel operations you can do, and you may be 
able to wait for a event (or not).

To not make assumption on how the platform/context works and what it 
provides/expects, I use traits to define a "shared interface" that will
be followed by all platforms (and expose some platform specificities 
like how you prepare a pointer to the hypercall).

(event channels is a bit more complex, because xenctrl/xenevtchn has 
actually 2 different ways of making event channels, one using 
/dev/xen/evtchn, and another using evtchn_op hypercalls; we can expose 
both by having one relying on XenHypercall (that exists in hosted) while 
the other relies on evtchn device)

Behind the scenes, it's still going to be structs, and by impl Traits, 
it's going to be statically dispatched (e.g the impl Type is replaced 
with the actual type).

>> +
>> +Safe wrappers must be "sound" and unsafe code shall not cause undefined=
 behavior.
>> +- safe wrappers must not cause undefined behavior on their own
>> +- unsafe code should not cause undefined behavior if properly used
> 
> I agree. The external interface must be soundly safe as far as reasonably
> possible. And unsafe code must be adequately annotated with the cares tha=
t the
> caller must have.
> 
>> +
>> +This is a bit tricky due to some Xen specificities, but we expect hyper=
call to be well
>> +formed (we can add validation tools for that) including have its parame=
ter indirectly
>> +respect the aliasing rules [3].
> 
>> +Although, we assume that Xen is well-behaving regarding its ABI.
>> +We don't define misuse of a hypercall that can harm the guest himself, =
but we care
>> +about not causing a undefined behavior (e.g by passing a buggy pointer)=
 through the
>> +hypercall interface that can overwrite unrelated/arbitrary kernel memor=
y.
>> +
>> +## Hypercall interface
>> +
>> +We introduce a XenHypercall trait that exposes a raw primitive for maki=
ng hypercalls.
>> +This interface supposes nothing on the ABI used in Xen, and its the res=
ponsibility
>> +of the user of such interface (often safe wrappers) that the hypercall =
made is
>> +meaningful.
>> +
>> +This interface is mostly to only be used by the crate developpers to bu=
ild safe
>> +wrappers on top, or by advanced user for using non-exposed/WIP hypercal=
l interfaces
>> +or bypassing the safe wrappers.
>> +
>> +We can implement this interface for freestanding platforms using direct=
 native hypercalls
>> +(e.g using inline assembly) for freestanding platforms or in userland u=
sing special devices
>> +like privcmd/xencall on most Unix platforms.
>> +
>> +```rust
>> +pub trait XenHypercall: Sized {
>> +    unsafe fn hypercall5(&self, cmd: usize, param: [usize; 5]) -> usize=
;
>> +
>> +    unsafe fn hypercall4(&self, cmd: usize, param: [usize; 4]) -> usize=
;
>> +    unsafe fn hypercall3(&self, cmd: usize, param: [usize; 3]) -> usize=
;
>> +    unsafe fn hypercall2(&self, cmd: usize, param: [usize; 2]) -> usize=
;
>> +    unsafe fn hypercall1(&self, cmd: usize, param: usize) -> usize;
>> +    unsafe fn hypercall0(&self, cmd: usize) -> usize;
>> +
>> +    /* ... */
>> +}
>> +```
>> +
>> +### Hypercall-safe buffers
>> +
>> +One difficulty is that in a freestanding environment, we need to use po=
inters to
>> +original data. But in a hosted environment, we need to make special buf=
fers instead
>> +for that.
>> +
>> +We introduce the Xen{Const/Mut}Buffer generic trait that wraps a refere=
nce in a
>> +"hypercall-safe" buffer that may or may not be a bounce buffer.
>> +
>> +```rust
>> +/// Wrapper of a reference into a hypercall-safe buffer.
>> +pub trait XenConstBuffer<T> {
>> +    /// Get a hypercall-safe reference to underlying data.
>> +    fn as_hypercall_ptr(&self) -> *const T;
>> +}
>> +
>> +/// Wrapper of a mutable reference into a mutable hypercall-safe buffer=
.
>> +pub trait XenMutBuffer<T> {
>> +    /// Get a hypercall-safe mutable reference to underlying data.
>> +    fn as_hypercall_ptr(&mut self) -> *mut T;
>> +
>> +    /// Update original reference with new data.
>> +    unsafe fn update(&mut self);
>> +}
> 
> Rather than trying to wrap the borrows I think it makes more sense to wra=
p
> ownership. If we provide a xen::Box<T> type (not necessarily tied to a st=
andard
> allocator) that wraps ownership of its content then we can use the same t=
ype
> for const and mut references (because it's just &T and &mut T after Deref=
 and
> DerefMut are implemented). Getting the pointers for hypercalls can be don=
e via
> the references. Like so:
> 
>    puf foo(p: *mut u8) {
>        // something
>    }
> 
>    puf main() {
>        let mut var =3D 8;
>        foo(&mut var);
>    }
> 
> This is tip-toeing on UB by getting a *mut from a &mut, but
> because the &mut is coerced into a *mut on function call this is both saf=
e and
> sound. Miri is happy with it too because it obeys stacked borrows.
> 
> That's for inputs. Pointer outputs are profoundly unsafe and I'm really h=
oping
> there's nothing that requires it. Fingers crossed...
> 

Wrapping ownership would be useful but I don't think it is better than 
mapping borrows. If we expects the user to use xen::Box<T> as 
input/output, it may not be practical to use. And using xen::Box<T> 
internally implies having some custom way of allocating data, which may 
be platform specific (freestanding that may not have a xen-aware allocator)=
.

>> +
>> +// The user will make those wrappers using dedicated functions in XenHy=
percall trait.
>> +
>> +trait XenHypercall: Sized {
>> +    /* ... */
>> +    type Error;
>> +
>> +    fn make_const_object<T: Copy + ?Sized>(
>> +        &self,
>> +        buffer: &T,
>> +    ) -> Result<impl XenConstBuffer<T>, Self::Error>;
>> +
>> +    fn make_mut_buffer<T: Copy + ?Sized>(
>> +        &self,
>> +        buffer: &mut T,
>> +    ) -> Result<impl XenMutBuffer<T>, Self::Error>;
>> +
>> +    fn make_const_slice<T: Copy + Sized>(
>> +        &self,
>> +        slice: &[T],
>> +    ) -> Result<impl XenConstBuffer<T>, Self::Error>;
>> +
>> +    fn make_mut_slice<T: Copy + Sized>(
>> +        &self,
>> +        slice: &mut [T],
>> +    ) -> Result<impl XenMutBuffer<T>, Self::Error>;
>> +}
>> +```
> 
> This is what I meant at the beginning. What's the advantage of having
> XenConstBuffer (et al.) being a trait rather than a struct? You can acces=
s it's
> interior via Deref and DerefMut (like Box<T> and Mutex<T> do) already, so=
 they
> can implement the same interface as T.
> 

Some additional context

/// Wrapper of a reference into a hypercall-safe buffer.
pub trait XenConstBuffer<T> {
     /// Get a hypercall-safe reference to underlying data.
     fn as_hypercall_ptr(&self) -> *const T;
}

/// Wrapper of a mutable reference into a mutable hypercall-safe buffer.
pub trait XenMutBuffer<T> {
     /// Get a hypercall-safe mutable reference to underlying data.
     fn as_hypercall_ptr(&mut self) -> *mut T;

     /// Update original reference with new data.
     unsafe fn update(&mut self);
}

---

For freestanding
https://gitlab.com/TSnake41/xen/-/blob/rust-rfc/tools/rust/xen/src/hypercal=
l/none/mod.rs?ref_type=3Dheads

/// Constant xen buffer that passes the reference as-is.
pub(super) struct DirectConstXenBuffer<'a, T>(&'a T);

impl<T> XenConstBuffer<T> for DirectConstXenBuffer<'_, T> {
     fn as_hypercall_ptr(&self) -> *const T {
         self.0
     }
}

pub(super) struct DirectConstXenSlice<'a, T>(&'a [T]);

impl<T> XenConstBuffer<T> for DirectConstXenSlice<'_, T> {
     fn as_hypercall_ptr(&self) -> *const T {
         self.0.as_ptr()
     }
}

/// Mutable xen buffer that passes the reference as-is.
pub(super) struct DirectMutXenBuffer<'a, T>(&'a mut T);

impl<T> XenMutBuffer<T> for DirectMutXenBuffer<'_, T> {
     fn as_hypercall_ptr(&mut self) -> *mut T {
         self.0
     }

     unsafe fn update(&mut self) {
         // The buffer is passed as is, we don't need to bounce the changes=
.
     }
}

pub(super) struct DirectMutXenSlice<'a, T>(&'a mut [T]);

impl<T> XenMutBuffer<T> for DirectMutXenSlice<'_, T> {
     fn as_hypercall_ptr(&mut self) -> *mut T {
         self.0.as_mut_ptr()
     }

     unsafe fn update(&mut self) {
         // The buffer is passed as is, we don't need to bounce the changes=
.
     }
}


---

For Unix platforms (bounce buffer)
https://gitlab.com/TSnake41/xen/-/blob/rust-rfc/tools/rust/xen/src/hypercal=
l/unix/buffer.rs?ref_type=3Dheads

pub struct XenCallBuffer<'hyp, T> {
     interface: PhantomData<&'hyp UnixXenHypercall>,
     ptr: NonNull<T>, // aligned
     page_count: usize,
     length: usize,
}

pub struct UnixConstXenBuffer<'a, 'hyp, T: Copy + ?Sized> {
     // As const objects are actually being copied they actually don't
     // need to hold a reference to their original counterpart.
     // Use a PhantomData to make the borrow checker happy.
     pub(super) original: PhantomData<&'a T>,
     pub(super) buffer: XenCallBuffer<'hyp, T>,
}

pub struct UnixMutXenBuffer<'a, 'hyp, T: Copy + ?Sized> {
     pub(super) original: &'a mut T,
     pub(super) buffer: XenCallBuffer<'hyp, T>,
}

impl<T: Copy + ?Sized> XenConstBuffer<T> for UnixConstXenBuffer<'_, '_, T> =
{
     fn as_hypercall_ptr(&self) -> *const T {
         self.buffer.ptr.as_ptr()
     }
}

impl<T: Copy + ?Sized> XenMutBuffer<T> for UnixMutXenBuffer<'_, '_, T> {
     fn as_hypercall_ptr(&mut self) -> *mut T {
         self.buffer.ptr.as_ptr()
     }

     unsafe fn update(&mut self) {
         // SAFETY: Caller must ensure that data pointed in `buffer` is 
valid for T.
         *self.original =3D self.buffer.read();
     }
}

It can add additional operations to have what's needed to have a usable 
pointer to the data (e.g making a bounce buffer for hosted/amd-sev).
As it may or may not be needed, may rely on external things, I kept it 
as a trait to let the implementor define how it actually works.

>> +
>> +Example use:
>> +
>> +```rust
>> +fn demo_hypercall<H: XenHypercall>(interface: &H, buffer: &mut [u8]) ->=
 Result<(), H::Error> {
>> +    let buffer_size =3D buffer.len();
>> +    // make a hypercall-safe wrapper of `buffer`
>> +    let hyp_buffer =3D interface.make_mut_slice(buffer)?;
>> +
>> +    let op =3D SomeHypercallStruct {
>> +        buffer: hyp_buffer.as_hypercall_ptr(),
>> +        buffer_size: buffer_size as _,
>> +    };
>> +    // Do the same for hyp_op
>> +    let hyp_op =3D interface.make_const_object(&op)?;
>> +
>> +    unsafe {
>> +        interface.hypercall1(SOME_CMD, hyp_op.as_hypercall_ptr().addr()=
);
>> +        // assume success
>> +        hyp_buffer.update(); // update buffer back
>> +    }
>> +
>> +    Ok(())
>> +}
>> +```
> 
> One of the bits I liked about the original libxen I showed at Xen Summit =
were
> the `IsSysCtl` and `IsDomctl` traits. We can generate them from xenbindge=
n
> itself and use them as constraints so you don't try to use an invalid typ=
e for
> a hypercall. It'll need tweaking, I guess. But the interface cannot be sa=
fe
> until you can't mess up the arguments.
> 
> evtchn and gntops work differently, but the same idea ought to work.
> 

I think it depends on what we want to expose to the user, whether it is 
the safer variant of raw hypercalls or something less similar.

>> +need to use special functions for that (`core::ptr::slice_from_raw_part=
s` ?).
>> +But for that, we need to know that T is actually a slice before using t=
his function.
>> +
>> +## Event channels
>> +
>> +TODO
>> +
>> +[1] - Interfacing Rust with Xen - Alejandro Vallejo, XenServer BU, Clou=
d Software Group
>> +https://youtu.be/iFh4n2kbAwM
>> +
>> +[2] - The Stream Trait
>> +https://rust-lang.github.io/async-book/05_streams/01_chapter.html
>> +
>> +[3] - Aliasing
>> +https://doc.rust-lang.org/nomicon/aliasing.html
>> +
>> +[4] - https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.htm=
l
>> +https://rust-lang.github.io/rfcs/3498-lifetime-capture-rules-2024.html
> 
> I think it'll be a while under we settle on a design.
> 
> My latest advances with xenbindgen involve formalizing evtchn, and that s=
hould
> be a fantastic playing ground for experimenting. I suspect we'll struggle=
 to
> see the big picture until the foundational stuff is in place and we try t=
o
> expose real hypercalls.
> 

Yes, we need to experiment and discuss on what would be best.
Regarding event channels, I tried to design a interface that works with 
either hypercalls or with evtchn device in a similar fashion to what we 
can do with xenctrl/xenevtchn.
https://gitlab.com/TSnake41/xen/-/tree/rust-rfc/tools/rust/xen/src/event

> Cheers,
> Alejandro

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 Nov 25 10:08:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 10:08:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842370.1257742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFW1P-0003JU-Rd; Mon, 25 Nov 2024 10:08:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842370.1257742; Mon, 25 Nov 2024 10:08: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 1tFW1P-0003JN-P3; Mon, 25 Nov 2024 10:08:47 +0000
Received: by outflank-mailman (input) for mailman id 842370;
 Mon, 25 Nov 2024 10:08: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=8/Yv=SU=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tFW1O-0003JH-Cr
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 10:08:46 +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 3fc6b25e-ab15-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 11:08:42 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-aa549f2f9d2so149475966b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 02:08:42 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b28dd72sm448858666b.21.2024.11.25.02.08.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 Nov 2024 02:08: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: 3fc6b25e-ab15-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmQiLCJoZWxvIjoibWFpbC1lajEteDYyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNmYzZiMjVlLWFiMTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTI5MzIyLjYwODE5MSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732529322; x=1733134122; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=e3g2EivWzN4m0Vp+gsK7zXQUhZ+7+mXJ43tz7vBCduw=;
        b=npNRrWi+dkToBm0Dtr3Rf62CtWq5lTz2tHd9s0wHgnnthA3MTvHX4MZczSyuqGtDjb
         PjSDkna4vtDi1vgEN3gRRVyiLNbKrEoBTJrHX4TiYT+HYsv9A1DD7nvxvcjsMqJ2fErn
         VKByYIDc41EVEx3cZ8gg2BmT6jMxWuZmStEf36OF6tylAQF+mU0B7omFnXLxQiUPmAQk
         4oCNEOWmkF4EfgjVOs7Nvvck7RxP7tarr91flCdyvVFz3+861AzzE8OlhImU5VOgykMz
         CKcm1qL+vtDhGlEykAdFzOcQ3DrFNh4v6Ydl0i7qOOh/V7s66DLbIadrdsuMRI2DfjrQ
         p1Cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732529322; x=1733134122;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=e3g2EivWzN4m0Vp+gsK7zXQUhZ+7+mXJ43tz7vBCduw=;
        b=AJzVYjS0fH8Y0bG3ChoBhXg+Li4EaB48bfoKoUv6hta11OnuTc7G6UohQEALjVEJuU
         BFpxic6WxcOn7VZ4ScULFvbJwMeetPL3KoPxmTYcYQzPreige6DzwECsHma7PIlmUgkz
         RxmbaemC8OKYV0QBWReE1zJUQsYghT4I/XoNAZv7mqlrn+3l5Zu7+txpu93oAqcdg5ws
         EvoNUqNzyTPorKWw/vwM/05+5IWblog9FE5DXg2+9IAIy6rUjXAcKaBKpmMGRlZaAiEJ
         ndY2kfF2YGn3o6W/mr2CjxWjC1QEjSiBCB4OD/5RhmnR5CaXq2ww3FtAjiNDRK9+JbEF
         cPBw==
X-Forwarded-Encrypted: i=1; AJvYcCXj1lRMJUrLB1O6JT8kGtGQUriwxVkyOdOkLNX0z1kS1cPHMQ+mqZe7qW9tsfvoim4pMk+chWMcOdE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1ikZdBwYvSILXGnMQcyntkdwHjAu1NBMtAWrpuhReGFVzOyUA
	iSW+68+fP/vjeC95jl4t8aeHmBB6ORisSowcRz0ewk46rA3WWkZr
X-Gm-Gg: ASbGncvDoprW6vb7mtiGEE1acY4aTVFGYAJO0jJ4oNEaqfhz7GsojoGffZIHDT0tJ/I
	GLDpM21kQeCjcAJ2Et7zwcDfWsqzWc6rMjlaDvRT16ltpj/hVxIMJW+EKvkosRLQrTnV5O2Sha/
	99wCyW8dT60Pxrw0UkK6SMwyen/Tm+Ae7ZEjl5PxqfxbtYqsJXDs/xSC2O3eLxIgg5lpaWiCk+p
	hhNmvs4c3Bb8RGIDY+JygQa1VprVLf+9Y7phPvgFgEnAUqiN92XzSYVA/vWzqQ=
X-Google-Smtp-Source: AGHT+IEJV+fNYaqQUMulFX3hEzu0aWiCD/bsH+WGDJwjQKgbvkYMVyfbN0nAHZhmHv2BjpaTZj48Ow==
X-Received: by 2002:a17:907:780f:b0:aa5:241a:dc71 with SMTP id a640c23a62f3a-aa5241adf23mr931801466b.41.1732529321808;
        Mon, 25 Nov 2024 02:08:41 -0800 (PST)
Message-ID: <bd0adc17a2c288f0ab0a076def649b2d0d6bec4a.camel@gmail.com>
Subject: Re: [PATCH 3/3] xen: riscv: enable stack protector feature
From: oleksii.kurochko@gmail.com
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
 "xen-devel@lists.xenproject.org"
	 <xen-devel@lists.xenproject.org>
Cc: Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman	
 <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Andrew
 Cooper	 <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall	 <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Date: Mon, 25 Nov 2024 11:08:40 +0100
In-Reply-To: <20241122210719.2572072-4-volodymyr_babchuk@epam.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
	 <20241122210719.2572072-4-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Fri, 2024-11-22 at 21:07 +0000, Volodymyr Babchuk wrote:
> Enable previously added CONFIG_STACK_PROTECTOR feature for RISC-V
> platform. Here we can call boot_stack_chk_guard_setup() in
> start_xen()
> function, because it never returns, so stack protector code will not
> be triggered because of changed canary.
>=20
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>=20
> ---
>=20
> I tested this patch for buildability, but didn't verified that Xen
> really boots on RISC-V when this feature is enabled. So I am asking
> RISC-V maintainers to provide feedback on it.
> ---
I've tested on staging and on downstream branches everything is fine:
Tested-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii

> =C2=A0xen/arch/riscv/Kconfig | 1 +
> =C2=A0xen/arch/riscv/setup.c | 3 +++
> =C2=A02 files changed, 4 insertions(+)
>=20
> diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
> index 1858004676..1481f23b66 100644
> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -5,6 +5,7 @@ config RISCV
> =C2=A0	select HAS_DEVICE_TREE
> =C2=A0	select HAS_PMAP
> =C2=A0	select HAS_VMAP
> +	select HAS_STACK_PROTECTOR
> =C2=A0
> =C2=A0config RISCV_64
> =C2=A0	def_bool y
> diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
> index e29bd75d7c..cd71748d2c 100644
> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -7,6 +7,7 @@
> =C2=A0#include <xen/init.h>
> =C2=A0#include <xen/mm.h>
> =C2=A0#include <xen/shutdown.h>
> +#include <xen/stack_protector.h>
> =C2=A0
> =C2=A0#include <public/version.h>
> =C2=A0
> @@ -55,6 +56,8 @@ void __init noreturn start_xen(unsigned long
> bootcpu_id,
> =C2=A0=C2=A0=C2=A0=C2=A0 if ( !boot_fdt_info(device_tree_flattened, dtb_a=
ddr) )
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 BUG();
> =C2=A0
> +=C2=A0=C2=A0=C2=A0 boot_stack_chk_guard_setup();
> +
> =C2=A0=C2=A0=C2=A0=C2=A0 cmdline =3D boot_fdt_cmdline(device_tree_flatten=
ed);
> =C2=A0=C2=A0=C2=A0=C2=A0 printk("Command line: %s\n", cmdline);
> =C2=A0=C2=A0=C2=A0=C2=A0 cmdline_parse(cmdline);



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:04:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:04:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842438.1257961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFXpA-0001vl-6e; Mon, 25 Nov 2024 12:04:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842438.1257961; Mon, 25 Nov 2024 12:04: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 1tFXpA-0001ve-2o; Mon, 25 Nov 2024 12:04:16 +0000
Received: by outflank-mailman (input) for mailman id 842438;
 Mon, 25 Nov 2024 12:04: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=Z5yF=SU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tFXp9-0001vY-Az
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:04:15 +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 60fd34c5-ab25-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 13:04:10 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-aa539d2b4b2so268374766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:04:10 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa51ae7e5a3sm418487266b.160.2024.11.25.04.04.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 Nov 2024 04:04: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: 60fd34c5-ab25-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYwZmQzNGM1LWFiMjUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTM2MjUwLjM3MjY1NSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732536249; x=1733141049; 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=baQsv/hOgPhHVgAbaWjlDOjzfwq6MJI0fQja5QTMRwM=;
        b=M6GugG1v26r/nw6cyePjqVcgPSxf/qmtCv7Kzf2GaTZNzFPNhDfuNtXHOuokQO2Ud9
         Q+ry6XZ0yH5ClgNzshqeG9amlqmaY4MrMFBG4sUrSVhoNfBNfQUt0aw8/oJHFEBd4QoQ
         x5qmbMe6WQQaq/FTRAJl2SAITNX3TRstd+weg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732536249; x=1733141049;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=baQsv/hOgPhHVgAbaWjlDOjzfwq6MJI0fQja5QTMRwM=;
        b=xA2/HkjdDNxptS7Z7KsWi7exrxDIlE45IfZ7eFQPMaemy9ZZQyf4XlyHV24nVGIPWL
         ulfSsgzGb5IQr52yo63q2vpeVv4nnuib3Y2IJLh0C4MTG6M0PoWJmMlMfaryRRGb/CKZ
         7dLS255gDG6UiozUCRvl5UR8ex5Dm8NMZJuFpgIqhbOklUvwUlbrkmbox5aN8bLCAJpo
         a0Qw6eEIHnc34XDW+BjuWbVzplFHacAP1poE0DSnxOrn1hniTQ3Q0h0mhJHmsfIb+EWH
         1ZZyMmEROD7hBzL7BEdldhr1QZ3A2+Ipv3sZfS+97zohGytntdxVi4EeRp2E60a9povm
         JO6A==
X-Gm-Message-State: AOJu0Yw8aONq8xSukBvTau5fxB9A61LkSXDZgFsaVT27D1ylyI7YWJHm
	3nxRobcCJbCHO/geO82FyVCcT8aYIluWUhkV7gkEQ1WlhXV6lYyhM1amxiG2qJkr27106j0R9lI
	P
X-Gm-Gg: ASbGncuVpNhr3sGiqBtaK42fZAYELTYi7xY5cDEFZ5Mt+8gZGLmP6VUI8NqOpoal3Qp
	uwPgWvLsrDJlHgjsMmCBVEwMzuPPyjdtQ4Dv0TydyzQYP5Zm1pS5itO7/iLkFzW5DFIDYj7ReNH
	nYJQa4L8bwvSgV/bDT51au+OOTLkIi/KvHHGzNLy8PsjBW1GU2dv8wk1xm7AyA/AsaYl3T/R3aB
	+FlAU9FEoqX9sz8gLLi7DKyuCEvY4rICdhFYH22M1tR4wJ8ErBWe3QDhwY2plEpnkwyO0ZugJfr
X-Google-Smtp-Source: AGHT+IE+pNlKzAr7O2PP3lK0+fqqaB/la+cBea1ioHcDl8KnROfnsB5jyGiQhchD1XJ4GJDLmYZqDQ==
X-Received: by 2002:a17:906:3098:b0:aa5:26ac:18e2 with SMTP id a640c23a62f3a-aa526ac1a18mr760026666b.23.1732536249323;
        Mon, 25 Nov 2024 04:04:09 -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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] build: Remove -fno-stack-protector-all from EMBEDDED_EXTRA_CFLAGS
Date: Mon, 25 Nov 2024 12:04:06 +0000
Message-Id: <20241125120406.3258813-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This seems to have been introduced in commit f8beb54e2455 ("Disable PIE/SSP
features when building Xen, if GCC supports them.") in 2004.

However, neither GCC nor Clang appear to have ever supported taking the
negated form of -fstack-protector-all, meaning this been useless ever since
its introduction.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
---
 Config.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Config.mk b/Config.mk
index f1eab9a20a66..fa0414055b93 100644
--- a/Config.mk
+++ b/Config.mk
@@ -190,7 +190,7 @@ endif
 APPEND_LDFLAGS += $(foreach i, $(APPEND_LIB), -L$(i))
 APPEND_CFLAGS += $(foreach i, $(APPEND_INCLUDES), -I$(i))
 
-EMBEDDED_EXTRA_CFLAGS := -fno-pie -fno-stack-protector -fno-stack-protector-all
+EMBEDDED_EXTRA_CFLAGS := -fno-pie -fno-stack-protector
 EMBEDDED_EXTRA_CFLAGS += -fno-exceptions -fno-asynchronous-unwind-tables
 
 XEN_EXTFILES_URL ?= https://xenbits.xen.org/xen-extfiles

base-commit: 2e853c19204e2d660a8becf4b377cc99216854dd
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:05:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:05:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842445.1257970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFXqj-0002Sx-G4; Mon, 25 Nov 2024 12:05:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842445.1257970; Mon, 25 Nov 2024 12:05: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 1tFXqj-0002Sq-DY; Mon, 25 Nov 2024 12:05:53 +0000
Received: by outflank-mailman (input) for mailman id 842445;
 Mon, 25 Nov 2024 12:05: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFXqi-0002Sh-6A
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:05:52 +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 9baf5d49-ab25-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 13:05:48 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3823f1ed492so2941118f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:05: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-3825fbc44f7sm10473723f8f.82.2024.11.25.04.05.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 04:05: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: 9baf5d49-ab25-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjliYWY1ZDQ5LWFiMjUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTM2MzQ4Ljc4Nzc3Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732536348; x=1733141148; 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=bhTUQvWK+IbBPczmdne1syuVVX03IKsz/I++qDCzcdY=;
        b=M09v7tW0r3HVvRyOT2/Ez+hzZUl3d5bmLCiInqdr4u96zah0Al7WzgaR0Vqtf1GfMo
         3VC83C34AOWZdiGsTIMdPqyai3XR/lpRrEp4quSSAxyxzEv1/7u6gqwnqRmOjAXwpEpE
         9lipwMIN1gkXNBdLTaVje8GnWSSXqFxM+nZNL2eKwoZIIsZvB8SufpkkPqF5ieRadaft
         NaiW3Ln6ZdjZhnAgmEumtQdYU88tbNLKD92rw4CsqS3vMhpparg+TW2dVPKD2oQp8bUG
         Q6DRwX1sts0GZqNSXNxP0v+GwSg1xvBHglQ2NAua+cVYVZlqsmiqKtw2BnNR6+8v4BlD
         Uvew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732536348; x=1733141148;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bhTUQvWK+IbBPczmdne1syuVVX03IKsz/I++qDCzcdY=;
        b=U6KFO8c0vk3/WnyDheEtUbPWfWkhoDfRHLp+LbclO2M8HuJzgPGRTSGZkLuNEyjvic
         QwllhlkJfG85a8pBUFypyJIqUEDfdVJe9GfAZutZW2sz+JLVLAFrwBZ3yOX9WMyQYqXR
         lTZFr88FqPnae2DKfcm0e2zlpjnBE7uy7e75xdJahtcKL8Ycm/vBcl86REzeg61dRAgU
         LVic4Q55z+nMmIir9xh1Rq0Q79ouhHxj5lkE6fmkCaMaynJSyFtvO4oFjYCWad8r93LM
         eLJYZA3OoEdJXNPFefiNFCTEkzRKAo4I30bCUBcF1Ew3PkyfcpW5fEps3KIamAeHCR4W
         n2FQ==
X-Forwarded-Encrypted: i=1; AJvYcCVyBYxKKhy0R5T6NCute/FFcgS0Wqonyy8Cld+whFsZCPW/5MpMmuveD9EC03eycNSiWLO+dE0kXFo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKc6UJMd9eQ8CsX7yrJc6Ta1OYFAajDewj3Szonh83Q3a1eXao
	/Y7oh7iydgI+Wn3sghYo+hiAHpi9w2QoUML8cV/DekMCgDfueDz2ryMPBKXkaw==
X-Gm-Gg: ASbGncsePKXztm8PtDCW1rN5nh/+6V0Cl7E65xAgvYxgIh15601c7QfEor//iZYC75T
	CPy1Swxkb9Q06GOtMCtjAx5qKvI5TV9rhtqGC7xRMB7K2IBBy6vvtBYfJdYGkG2bRnU3q9gpXYZ
	LAGkFwoENjgyV+R7l15LXLiIggJfRPLpCIgliDGNfHwIir88mou6a+vuRZTXF7tKGgJgQkM4hyX
	87DlZdslC5G0f+LpGMmhWgqTNIVsmT2Qj37CkfweaSbQdpcQuut3vmMsfPxOyEhVxAZ6TwDElxH
	yMHPl8jWczJnWzKZ+7TQmbzTwMUW7Zh2UGs=
X-Google-Smtp-Source: AGHT+IE/WY9xHTfVTMWqiS9iwg5D+2gbkz2+G1cCwSFwB1fl9iRAOFQ1LmIxjQTn3TD+hEogTFfBVA==
X-Received: by 2002:a5d:64ce:0:b0:37d:34e7:6d24 with SMTP id ffacd0b85a97d-38259d2b848mr13227256f8f.18.1732536348158;
        Mon, 25 Nov 2024 04:05:48 -0800 (PST)
Message-ID: <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
Date: Mon, 25 Nov 2024 13:05:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@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: <20241115115200.2824-13-alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 12:51, Alejandro Vallejo wrote:
> Describe sysctl/readconsole as a TOML specification, remove old
> hand-coded version and replace it with autogenerated file.
> 
> While at it, transform the console driver to use uint8_t rather than
> char in order to mandate the type to be unsigned and ensure the ABI is
> not defined with regards to C-specific types.

Yet the derived C representation imo then should still be using char, not
uint8_t. In particular it would be a good sign if the Xen sources wouldn't
need to change, unlike happens here (altering types of a few internals of
the console machinery).

> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
>  stubdom/Makefile                              |  2 +-
>  tools/rust/Makefile                           | 19 ++++++++
>  .../xenbindgen/extra/sysctl/readconsole.toml  | 43 +++++++++++++++++++
>  xen/drivers/char/console.c                    | 12 +++---
>  xen/include/public/autogen/sysctl.h           | 35 +++++++++++++++

In the build tree, having an autogen subdir under public/ _may_ be okay
(personally I dislike even that). I didn't manage to spot adjustments to
how files are eventually installed, yet at that point there clearly
shouldn't be any autogen subdir(s) anymore. How the individual files come
into existence is, imo, nothing consumers of the interface ought to (need
to) care about.

> --- /dev/null
> +++ b/tools/rust/xenbindgen/extra/sysctl/readconsole.toml
> @@ -0,0 +1,43 @@
> +[[structs]]
> +name = "xen_sysctl_readconsole"
> +description = "Read console content from Xen buffer ring."
> +
> +[[structs.fields]]
> +name = "clear"
> +description = "IN: Non-zero -> clear after reading."
> +typ = { tag = "u8" }
> +
> +[[structs.fields]]
> +name = "incremental"
> +description = "IN: Non-zero -> start index specified by `index` field."
> +typ = { tag = "u8" }
> +
> +[[structs.fields]]
> +name = "_pad"
> +description = "Unused."
> +typ = { tag = "u16" }
> +
> +[[structs.fields]]
> +name = "index"
> +description = """
> +IN:  Start index for consuming from ring buffer (if @incremental);
> +OUT: End index after consuming from ring buffer."""
> +typ = { tag = "u32" }
> +
> +[[structs.fields]]
> +name = "buffer"
> +description = """
> +IN: Virtual address to write console data.
> +
> +NOTE: The pointer itself is IN, but the contents of the buffer are OUT."""
> +typ = { tag = "ptr", args = { tag = "u8" } }
> +
> +[[structs.fields]]
> +name = "count"
> +description = "IN: Size of buffer; OUT: Bytes written to buffer."
> +typ = { tag = "u32" }
> +
> +[[structs.fields]]
> +name = "rsvd0_a"
> +description = "Tail padding reserved to zero."
> +typ = { tag = "u32" }

Up to here I wasn't able to spot any documentation on what it to be written
in which way. I already struggle with the double square brackets. The TOML
doc I found when searching the web doesn't have such. Taking just the example
above also doesn't allow me to conclude how e.g. nested structures would be
specified. Really, when talk was of some form of IDL, I expected to see
something IDLish (im particular closer to typical programming languages we
use). Whereas TOML, aiui, is more an easy language for config files of all
sorts.

What I have in mind wouldn't allow for descriptions, yet I'm not sure that's
relevant. The description ought to, first of all, live in the primary source
(i.e. the IDL itself) anyway. Commentary there might be possible to extract
into proper (machine generated/derived) documentation.

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -42,6 +42,8 @@
>  #include <asm/vpl011.h>
>  #endif
>  
> +#include <public/xen.h>

Why would this be needed all of the sudden?

> --- /dev/null
> +++ b/xen/include/public/autogen/sysctl.h
> @@ -0,0 +1,35 @@
> +/*
> + * sysctl
> + *
> + * AUTOGENERATED. DO NOT MODIFY
> + */
> +#ifndef __XEN_AUTOGEN_SYSCTL_H
> +#define __XEN_AUTOGEN_SYSCTL_H
> +
> +/* Read console content from Xen buffer ring. */
> +struct xen_sysctl_readconsole {
> +    /* IN: Non-zero -> clear after reading. */
> +    uint8_t clear;
> +    /* IN: Non-zero -> start index specified by `index` field. */
> +    uint8_t incremental;
> +    /* Unused. */
> +    uint16_t _pad;
> +    /*
> +     * IN:  Start index for consuming from ring buffer (if @incremental);
> +     * OUT: End index after consuming from ring buffer.
> +     */
> +    uint32_t index;
> +    /*
> +     * IN: Virtual address to write console data.
> +     *
> +     * NOTE: The pointer itself is IN, but the contents of the buffer are OUT.
> +     */
> +    XEN_GUEST_HANDLE_64(uint8) buffer;
> +    /* IN: Size of buffer; OUT: Bytes written to buffer. */
> +    uint32_t count;
> +    /* Tail padding reserved to zero. */
> +    uint32_t rsvd0_a;
> +};
> +
> +#endif /* __XEN_AUTOGEN_SYSCTL_H */
> +

If this file is auto-generated, why would it need committing? And yes, there
is the connected question: Will everyone then need to have a Rust compiler
available?

Nit: For anything that is committed, it would be nice if those files were as
tidy as possible style-wise. Most of the above looks entirely okay, just
that there is an unnecessary trailing blank line.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:09:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:09:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842457.1257980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFXtv-000346-UL; Mon, 25 Nov 2024 12:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842457.1257980; Mon, 25 Nov 2024 12:09: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 1tFXtv-00033z-Rm; Mon, 25 Nov 2024 12:09:11 +0000
Received: by outflank-mailman (input) for mailman id 842457;
 Mon, 25 Nov 2024 12:09: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFXtu-00033t-JZ
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:09:10 +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 125d97ad-ab26-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 13:09:07 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4315e9e9642so39825755e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:09: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-434a07ecf88sm19942745e9.1.2024.11.25.04.09.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 04:09: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: 125d97ad-ab26-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjEyNWQ5N2FkLWFiMjYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTM2NTQ3Ljk3ODE2NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732536547; x=1733141347; 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=UZS27RWxq7A2PBYi1WDCjAMc5+ZhlfnhwsFWiPghie4=;
        b=flOhO+O/9EyHJaPshMxM72Is3RKDsefbhp0JXHcLLMzwmRjPHrTrFwHHsFG/3YlCTG
         i313uSH5g7CF1P8GH3E/tFNljjM+6ovW6egzAHaLAaM2dPzSt695cHdyEzZeLkrMamck
         4ilDgKYHQET3TR28lEDBJwHo5HNqtK36MPwNVq/nWQ5j3Ict6MHDx1EgnSZDd/ofASMx
         n4mrzKNg9qWKkmAWokfYSpxlsWmGI6srrQiKG6rl+TegpXCzmCg+KR+5kcGCinP7hh5j
         MLARdoW3kqIekB278f1FR0zzJgnlY1u5znZaW1GIv33OfXPHP2FUORzn27Q0y1OjejDd
         Lvfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732536547; x=1733141347;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UZS27RWxq7A2PBYi1WDCjAMc5+ZhlfnhwsFWiPghie4=;
        b=gfl31D2YQAt8o2MKXUUOLWZcBFf/LWAdV47A0tZkrz2NblN5HOFGZdnrO4VHZm9NNG
         4PCPf65d1Faaj0iE4zXHMV7pkIWYgGJWQpT5IHj0J7T4faEtZzSXULGmuMJSWrkTzEkW
         K1R+9HyVHMjNNtg/8ImTaXx3/Qis7ygMFWAbqxLc/9Ck89xAQ4LfGGrDu9U1GayHuxNh
         MO6oSzk3af5lCbqsx6s9LveSjLY8sWV5zMa1euP9S0Jel8AykYCF6MN7niGM9X/89eX0
         X/D1lVVu/2sOFGBo8oQPl04m925yDiQ8GcDGi++7ygzGpQYuTlZnYGckj0K2KmkqhxF8
         iA5A==
X-Forwarded-Encrypted: i=1; AJvYcCUSwlHMN3LVBPHeFI8lT16Wa26wDkEQ3XPky7f9QXcWjv0gIJd34Q7rAEHVUV2fPm7eN/O6MKuj4d4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyxud6CVJ24f8Kmu4bu8m1H2gx0srzPpEyB0DwOotrtmw9YGyw9
	IOnddxRwgK8SupviIgzSHrf6f9PAX47u5RSmEiC7Qlg5r52CA45eOgsOUuQYFw==
X-Gm-Gg: ASbGncv8ExQTXRrhvS3NVc8Wj1cqMcZAeKJ8CMg17cwTAvWGv8pRoFbUaUIh/WWFHV5
	NYd1i7q0yaf7CpbvetpzoHKryBOV+7o49VR/UTl0nBMgyuv7P7tx1VUjaFfnDg5jrtEX33Tv6gI
	t4jnukxgI5Jdei3/i6Fbq15AtFsPRwLi4aUm6dHR+Xl3ypJnCVXKDYXM213MutjnDy1xac+0JA5
	5m3mHawBmXrnFHiqXKTP9qsev3rbbOwHk8AkqChK8jim5cKCARN2anC4PDUHr99X4dtxVQKi3Jm
	4xJNs2rJdNwDIaq/tHFcSDT68tyYsN6mb/g=
X-Google-Smtp-Source: AGHT+IFySCpnpclATnq3g/arzN2N/WvERfwci2zgw0BmZdEOtqzEhvzq35JxFMse26WaOAN8AaC1ZQ==
X-Received: by 2002:a05:600c:4fd6:b0:434:a1d3:a326 with SMTP id 5b1f17b1804b1-434a1d3a436mr9719765e9.6.1732536547338;
        Mon, 25 Nov 2024 04:09:07 -0800 (PST)
Message-ID: <f0c46c9a-9ff1-4627-9692-13e2483f7187@suse.com>
Date: Mon, 25 Nov 2024 13:09:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 16/25] xen/x86: Replace hand-crafted
 xen_arch_domainconfig with autogenerated one
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-17-alejandro.vallejo@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: <20241115115200.2824-17-alejandro.vallejo@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 12:51, Alejandro Vallejo wrote:
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
>  tools/libs/light/libxl_x86.c                  |  4 +-
>  tools/ocaml/libs/xc/xenctrl_stubs.c           |  4 +-
>  .../extra/arch-x86/domainconfig.toml          | 87 +++++++++++++++++++
>  .../xenbindgen/extra/domctl/createdomain.toml |  6 ++
>  xen/arch/x86/domain.c                         |  8 +-
>  xen/arch/x86/include/asm/domain.h             |  4 +-
>  xen/arch/x86/setup.c                          |  2 +-
>  xen/include/public/arch-x86/xen.h             | 51 -----------
>  xen/include/public/autogen/arch_x86.h         | 52 +++++++++++

Nit: If at all possible, please avoid underscores in the names of new files.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:14:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842465.1257992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFXyV-0004l5-G2; Mon, 25 Nov 2024 12:13:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842465.1257992; Mon, 25 Nov 2024 12:13: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 1tFXyV-0004ky-C1; Mon, 25 Nov 2024 12:13:55 +0000
Received: by outflank-mailman (input) for mailman id 842465;
 Mon, 25 Nov 2024 12:13: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFXyT-0004kq-Kf
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:13:53 +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 ba809aaf-ab26-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 13:13:49 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-434a10588f3so4352005e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:13: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-433b45bdb61sm189603145e9.16.2024.11.25.04.13.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 04:13: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: ba809aaf-ab26-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMjkiLCJoZWxvIjoibWFpbC13bTEteDMyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJhODA5YWFmLWFiMjYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTM2ODI5Ljk5MzI5OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732536829; x=1733141629; 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=NQhSxktwgLf/mF+cm3iPw2kTeMDMDzF9G4E7pBu8hCU=;
        b=RrKhoRggGWdCRb1BfcO/VVKiIOgCZ2tudBOa+CmNubviivRK1ceo3Fp4aXQzIzCBJN
         lDhKapYS2QAXkB4l/d+43BEBpAhK4QwAPyChUMhDodPVt/uVFsFTX+xFXMtFp1VXWeCz
         iEOjLQvoWg0S9mHJT5wJg0XMNtvdSlL/pSHuFG1rQyFBI3TxmEsgJJ78IgXEgFOLHEqZ
         l9KKzHjL5eUwKcFsth5lSvxIky73WpSsMWAv2CIBDa0txVKKWl6434fYZVjtazXv+Kn2
         PprNkHexGPLy7zoOdmYThfGgeqDNe4j/n19L1nT+HaeMpPArJ6X/oGkoe0DdTOVhYvVu
         4gAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732536829; x=1733141629;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NQhSxktwgLf/mF+cm3iPw2kTeMDMDzF9G4E7pBu8hCU=;
        b=LeV0GpkDMPiQuS/Ria0HySKgid6xeb4i9xfK3/Z0VDDz8Bt9aM2ehN//ShKyO96gps
         cXhZWwv0CN/PrIyTHESo+BALFfgag5wRR0OB+wUn/6MDTNlEK2QU+Ve6JhiqNknuLF+I
         /SNXwq4IZB5mhi8f5b2KuRr75RWztHWFpXZ1wwvqpqb3o2g0IJTwwHajim4sqf2wf/Bb
         edWSMZYYe/e/qTCKbuGNDaA32oJCf/wdGv9QrbtG7y/Td4DrW6Wvl3PdJFXNxtx+/6rO
         1OUdpit/iY9X1ja1FpJm0vV8rl1VPdkGTXVVMJe7ET/5yaOvYaHSG6TK7js2ZKb/4mMQ
         iKMg==
X-Forwarded-Encrypted: i=1; AJvYcCWXxmygs8+NCMotSRk6Znf0jOfdtZrpiBOAeF1RwlL0yKH1mFS/CVc+RXdOPdD8lbVR9UhWe2ZZrnI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz78Kze1D+DSDMeOeAvPxgUr9+O3NOI4Nv/w0cB9XQoAtQCJNx2
	b8/qLH4BvjA366Ck9tb5hVN8w+h/TYCiyxc1D3ktv2jYLeSKiM/jScfbjAVrVg==
X-Gm-Gg: ASbGncvG9DVI4Ok24X/oD8G29e/Cwct0EWVevvYrv6eBXMQb6N3FQzqAkNtnFahGZv9
	cAvIvX/68c8e1F+fNhqOMVVXKQBWmevBcpTemOgolkSSWIl+XqMg3jWi61+oa0Veeph1jNq1CAY
	rk/n3rS7vZcz0VhP20BtNc+pAN1gaFuBfjvtqF+ZAgtPtOqkEGm2gZyZ2D9hvwIe75S9jYWpfNU
	luFz0wmesjXFDx+pW+wQTyOMAwPRIPSdKbkEmyGGAvL1QB61ZKg2ii4qH2DxjQESsjURQOTrbET
	CdZCjxzHq0AnDD/2HdTCvPRkZFQx1BQX97Q=
X-Google-Smtp-Source: AGHT+IFG0jUXbdTb6NZ/gooqb2ScnBYXT8pJfopxzP3WnIfn1f0XWixSmRttl/8kd8AD4zLRadj7oA==
X-Received: by 2002:a05:600c:34cb:b0:431:6060:8b22 with SMTP id 5b1f17b1804b1-433ce4256cemr123934555e9.10.1732536829378;
        Mon, 25 Nov 2024 04:13:49 -0800 (PST)
Message-ID: <48ea9f3f-952a-4b9f-802d-63ab35036e24@suse.com>
Date: Mon, 25 Nov 2024 13:13:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] build: Remove -fno-stack-protector-all from
 EMBEDDED_EXTRA_CFLAGS
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241125120406.3258813-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: <20241125120406.3258813-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 13:04, Andrew Cooper wrote:
> This seems to have been introduced in commit f8beb54e2455 ("Disable PIE/SSP
> features when building Xen, if GCC supports them.") in 2004.
> 
> However, neither GCC nor Clang appear to have ever supported taking the
> negated form of -fstack-protector-all, meaning this been useless ever since
> its introduction.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:17:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:17:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842478.1258001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFY28-0005Q1-2x; Mon, 25 Nov 2024 12:17:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842478.1258001; Mon, 25 Nov 2024 12:17: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 1tFY27-0005Pu-W2; Mon, 25 Nov 2024 12:17:39 +0000
Received: by outflank-mailman (input) for mailman id 842478;
 Mon, 25 Nov 2024 12:17: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFY26-0005Po-Qd
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:17: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 411bc4da-ab27-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 13:17:36 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-382423f4082so3087366f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:17: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-4349ef99e7dsm41653405e9.2.2024.11.25.04.17.34
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 04:17: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: 411bc4da-ab27-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzUiLCJoZWxvIjoibWFpbC13cjEteDQzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQxMWJjNGRhLWFiMjctMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTM3MDU2LjA2MDIwMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732537055; x=1733141855; darn=lists.xenproject.org;
        h=content-transfer-encoding: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=wj4oi9nBII6PLbwfcW4SNmieD45YE6m6L6T2OV8DT6E=;
        b=WC6HXFz/yU+RHz9gsNtfPzy3WzaETUL1LaQl8PZp7ZGXS5eahVNHnqFQ4q0+xMYdNJ
         TP2kRNAiQRU/66SzJdHpU3PkDlt0lgksCU8rKRl9C6nCTMEOgzEupvGnHbKfDBh3uyxU
         VmYjNq0mewsfysWobOymuZbriK1kKXTlKIHqyA4lZmUXkokaU/lfKP4YdIKpZpfdvhHR
         92XInIwzStRuiDDsb5WxA5YIzZxZ9H5XECTgLwC0gX5ckTQJowWGppoTa7Vhld5LajKg
         TJmK09L3LHpiNUR+dzq2iRO+LmPkRjvS/0OhkZKwskDByglEBuDK6jD5bTWHV73IC3jE
         SwXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732537055; x=1733141855;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=wj4oi9nBII6PLbwfcW4SNmieD45YE6m6L6T2OV8DT6E=;
        b=GMXL2boe2PE6010BuvScFij/m37Ea37mrdRoSnpn/+ui0RJPNc4VGd25KTi9auT/3g
         YnfaXAPAhuNWjED8pmnzGp2q3o/LN7W9AOm9LD3A+RMAbaZ5MUz9tC8dV9O/pWTXkoC/
         15+cJ2uVGRoorWsCiwIWBBafDC5IrVb6MHzj7g0prkTYTqxIn1g3Sop8+GPqH77KUaBl
         jajH8/lrqxBpbiFOz54d5GhQNkK5/AcskSxpAQwjlpYsgbrQU1+n6FkSp/q271xfzwzh
         WT66AZAQz2cbTZuYRy6V/9DSPbH2iVhYKsP4d2lspyWafJN+qQhh+HdwYfv4gD203jRb
         PLTA==
X-Gm-Message-State: AOJu0Yx3LXUv6Vcmi+afrAG3IXVF/I7f+dGElLLUOemK/M3LVDtuneaF
	H5O9cphMtkQRBiflitnJfE/tvpJxbgyivy2uWgs76tShO4uge8JeqmqhgGq9+8z4UOOSp9fcFWg
	=
X-Gm-Gg: ASbGncteQmMoGM2OXgubwEGUIpG9rzvEPMx4wugABRnJNNP8HBJKAHIztc3K5w5DOzX
	CX4qsU+5MprMbNn8E78b2Cnl7XuNkBiVS+mLNE3ebTlxN6QIA2vv9YQ4OAYaFwWrYd9Op+wteU/
	rDcKSTlOe8EC1gAfxREKzrwTcXo5VKvl+zHjWk9dZtw4SWbtNNOq2tBiO7YMymAInLwvsmrbrjx
	5SqYfC1O/1CXpB2rvdWbx+wercOqzpdsXv31y84VzxlvqN1A8qZEllS84T67aD+jSYdAuB5y9Oe
	l37wPm/uBwXb58xSC2bExlshQSvu1LP4jmM=
X-Google-Smtp-Source: AGHT+IHsWy1DxN6dxHv1d703qvEHyPb/b8HbjVDgLgbhYwC4GuJr6q+n8tcImz51w+REd7r2qKl0Mg==
X-Received: by 2002:a5d:6483:0:b0:382:3c7b:9ae with SMTP id ffacd0b85a97d-38260b589d4mr10628018f8f.16.1732537055222;
        Mon, 25 Nov 2024 04:17:35 -0800 (PST)
Message-ID: <9ad17178-b6c9-4aec-8f67-7f1db1a85276@suse.com>
Date: Mon, 25 Nov 2024 13:17:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: xen | Failed pipeline for staging | 2e853c19
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <67446a18cdb7b_2e311cddc121912@gitlab-sidekiq-catchall-v2-65d69c5784-4rjws.mail>
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: <67446a18cdb7b_2e311cddc121912@gitlab-sidekiq-catchall-v2-65d69c5784-4rjws.mail>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 13:14, GitLab wrote:
> 
> 
> Pipeline #1558962580 has failed!
> 
> Project: xen ( https://gitlab.com/xen-project/hardware/xen )
> Branch: staging ( https://gitlab.com/xen-project/hardware/xen/-/commits/staging )
> 
> Commit: 2e853c19 ( https://gitlab.com/xen-project/hardware/xen/-/commit/2e853c19204e2d660a8becf4b377cc99216854dd )
> Commit Message: xen/common: Move gic_dt_preinit() to common cod...
> Commit Author: Oleksii Kurochko ( https://gitlab.com/olkur )
> Committed by: Jan Beulich ( https://gitlab.com/jbeulich )
> 
> 
> Pipeline #1558962580 ( https://gitlab.com/xen-project/hardware/xen/-/pipelines/1558962580 ) triggered by Jan Beulich ( https://gitlab.com/jbeulich )
> had 1 failed job.
> 
> Job #8461870351 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/8461870351/raw )
> 
> Stage: build
> Name: debian-11-riscv64-gcc

ERROR: Job failed: failed to pull image "registry.gitlab.com/xen-project/xen/debian:11-riscv64" with specified policies [always]: Error response from daemon: Get "https://registry.gitlab.com/v2/": dial tcp: lookup registry.gitlab.com on 127.0.0.53:53: read udp 127.0.0.1:53667->127.0.0.53:53: read: connection refused (manager.go:251:0s)

i.e. nothing on the side of what's under test. I'm afraid I don't even know
what to do in such a case, to get things moving again.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:24:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:24:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842491.1258028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFY8c-0007LO-U8; Mon, 25 Nov 2024 12:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842491.1258028; Mon, 25 Nov 2024 12: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 1tFY8c-0007LH-Pa; Mon, 25 Nov 2024 12:24:22 +0000
Received: by outflank-mailman (input) for mailman id 842491;
 Mon, 25 Nov 2024 12: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=Z5yF=SU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tFY8c-0007LB-3y
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:24:22 +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 2f60f8a8-ab28-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 13:24:15 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-aa51bf95ce1so429546666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:24:15 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa534232086sm316567666b.42.2024.11.25.04.24.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 04:24: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: 2f60f8a8-ab28-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJmNjBmOGE4LWFiMjgtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTM3NDU1LjUzOTI4MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732537455; x=1733142255; 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=hfm1ExUQ/8Jn4+mZEHN5mQaAmYauZk4TrBhqQzL27js=;
        b=c7jWHucWThVoXfiu8CP6IEOlvtEQD4cgfv6eFyQmq3YBbSh8Ipq3h99n50IItr/uj0
         n22G2MKGvdF8aZ8nHw3FpKXGpnCes0hjAtV2fE+0wr82IBGcGmZQ69g6PNM1mVduCTYq
         ps0alHUhtnAONvyzkpYVm4nDA9gU4kQksVeHM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732537455; x=1733142255;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hfm1ExUQ/8Jn4+mZEHN5mQaAmYauZk4TrBhqQzL27js=;
        b=HK1K7dzGQnzu/x7vHEqxFf0lk0JN3EMgxS3CQvVFD578/nGFH6+JJuSeZDeaYmEXQf
         7R8xWamc+IGSN/oGtL8bdG+US1kPbFZ+eizDrKzcxgBVU8PL9ktRzTCQFXDfGmQqDMJv
         g5gpI5bpVDgCIrdxX2v3cEQa3nB+Ie31ZtqX4OrluuOIo4JXcAUVKBVNAeHH8n+pWANp
         wnNK67GHFlgh3Arqi9l18HGhYQrHKN2tPTrHC4PSu45QuPNekj8Tj0FV7j7Ibgp18Iaq
         TdTXlSimDoNs+un77qy4s0rMEweetXekl00yHNUnLQ87o3TjqHCUde0i4PCtk6wUXfOR
         YCSA==
X-Forwarded-Encrypted: i=1; AJvYcCWj+yiyNjBBWFnsFNNOvyOYcWHN4E9+X6yiYSMf35cemplabfqopZ0xAcHUx6EL54JGGx7DDww04iw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxaZKGA38iX8iSpVtsZ15Wg5yQTQ1M/Pwe3GP/+4Lz3gg4SpnyG
	yLdGKJPIbRQXNBZ74XbyplfxBDWOEwKdeckOAAZtt7SCMAz64+gOzurxv8d8ytU=
X-Gm-Gg: ASbGncsKDMRtYISw5prBTa0WnWYGd42NXpGMwETAzX8UtA86SwXuJwytPyPYHPpXYrs
	yQ3ryFqiRhsdXPmyZQ+rTM+2e9zDKhuKVa54dpeykh+2forap4eNkDsktwhZa4HRRDbGw1h9+kR
	WivfabvEPXVyxC5UqjtVjcNwCwk8LjnX6vecJOXG5nmXC2fo1D0xStjX7xu2h9hQMvEXKtKU15J
	NBwqXGCJFiqCpTCVNTcBsNgcZXxm6qtG2dF69ljLTSlFVMbFu+u06g/0Tb0gcs=
X-Google-Smtp-Source: AGHT+IGGcnnhD8KESB32D4vLfERniD8kzn0TN/Up5OYa8CSNMGXkirnEB4JafpGkHtg2uq8607zvGg==
X-Received: by 2002:a17:906:cca:b0:aa5:c28:6eb6 with SMTP id a640c23a62f3a-aa50c286f60mr1017577066b.27.1732537454910;
        Mon, 25 Nov 2024 04:24:14 -0800 (PST)
Message-ID: <284fc770-88e0-4bd2-bd04-8de97613153c@citrix.com>
Date: Mon, 25 Nov 2024 12:24:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen: common: add ability to enable stack protector
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
 <20241122210719.2572072-2-volodymyr_babchuk@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241122210719.2572072-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/11/2024 9:07 pm, Volodymyr Babchuk wrote:
> diff --git a/Config.mk b/Config.mk
> index f1eab9a20a..c9fef4659f 100644
> --- a/Config.mk
> +++ b/Config.mk
> @@ -190,7 +190,7 @@ endif
>  APPEND_LDFLAGS += $(foreach i, $(APPEND_LIB), -L$(i))
>  APPEND_CFLAGS += $(foreach i, $(APPEND_INCLUDES), -I$(i))
>  
> -EMBEDDED_EXTRA_CFLAGS := -fno-pie -fno-stack-protector -fno-stack-protector-all
> +EMBEDDED_EXTRA_CFLAGS := -fno-pie
>  EMBEDDED_EXTRA_CFLAGS += -fno-exceptions -fno-asynchronous-unwind-tables
>  
>  XEN_EXTFILES_URL ?= https://xenbits.xen.org/xen-extfiles
> diff --git a/stubdom/Makefile b/stubdom/Makefile
> index 2a81af28a1..41424f6aca 100644
> --- a/stubdom/Makefile
> +++ b/stubdom/Makefile
> @@ -54,6 +54,8 @@ TARGET_CFLAGS += $(CFLAGS)
>  TARGET_CPPFLAGS += $(CPPFLAGS)
>  $(call cc-options-add,TARGET_CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
>  
> +$(call cc-option-add,TARGET_CFLAGS,CC,-fno-stack-protector)
> +

I'd suggest splitting this into two patches, so removing the flags from
EMBEDDED_EXTRA_CFLAGS is separate from the new infrastructure.

Also, we're losing -fno-stack-protector-all, with no discussion.

AFAICT, it was introduced in c/s f8beb54e245 in 2004, alongside
-fno-stack-protector.Â  But further investigation shows that it is not,
nor has ever been, a valid option to GCC or Clang.

I've submitted a patch in isolation to drop this.Â  (And Jan has reviewed
it while I've been writing the rest of the email, so I'll get it
committed in due course).

> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 90268d9249..0ffd825510 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -86,6 +86,9 @@ config HAS_UBSAN
>  config HAS_VMAP
>  	bool
>  
> +config HAS_STACK_PROTECTOR
> +	bool
> +
>  config MEM_ACCESS_ALWAYS_ON
>  	bool
>  
> @@ -516,4 +519,14 @@ config TRACEBUFFER
>  	  to be collected at run time for debugging or performance analysis.
>  	  Memory and execution overhead when not active is minimal.
>  
> +config STACK_PROTECTOR
> +	bool "Stack protection"
> +	depends on HAS_STACK_PROTECTOR
> +	help
> +	  Use compiler's option -fstack-protector (supported both by GCC
> +	  and clang) to generate code that checks for corrupted stack

Clang

> +	  and halts the system in case of any problems.
> +
> +	  Please note that this option will impair performance.
> +

I think we probably want a top-level Hardening menu.Â  Or maybe a
Compiler Options?

There are multiple levels of stack protector, not to mention other
options such as trivial-auto-var-init that we want in due course.


>  endmenu
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index b279b09bfb..a9f2d05476 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -45,6 +45,7 @@ obj-y += shutdown.o
>  obj-y += softirq.o
>  obj-y += smp.o
>  obj-y += spinlock.o
> +obj-$(CONFIG_STACK_PROTECTOR) += stack_protector.o
>  obj-y += stop_machine.o
>  obj-y += symbols.o
>  obj-y += tasklet.o
> diff --git a/xen/common/stack_protector.c b/xen/common/stack_protector.c
> new file mode 100644
> index 0000000000..de7c20f682
> --- /dev/null
> +++ b/xen/common/stack_protector.c

stack-protector.c please.

> @@ -0,0 +1,16 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +#include <xen/lib.h>
> +#include <xen/random.h>
> +
> +#ifndef CONFIG_X86
> +/*
> + * GCC uses TLS to store stack canary value on x86.
> + * All other platforms use this global variable.
> + */
> +unsigned long __stack_chk_guard;
> +#endif

Don't bother excluding x86 like this.Â  Leave that to whomever adds x86
support.

Especially as the global form is the only one we're liable to want to
introduce in the first place.

> +
> +void __stack_chk_fail(void)
> +{
> +	panic("Detected stack corruption\n");
> +}

Xen style, not Linux please.


> diff --git a/xen/include/xen/stack_protector.h b/xen/include/xen/stack_protector.h
> new file mode 100644
> index 0000000000..97f1eb5ac0
> --- /dev/null
> +++ b/xen/include/xen/stack_protector.h
> @@ -0,0 +1,30 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef XEN__STACK_PROTECTOR_H
> +#define XEN__STACK_PROTECTOR_H
> +
> +#ifdef CONFIG_STACKPROTECTOR
> +
> +#ifndef CONFIG_X86
> +extern unsigned long __stack_chk_guard;
> +#endif
> +
> +/*
> + * This function should be always inlined. Also it should be called
> + * from a function that never returns.
> + */
> +static inline void boot_stack_chk_guard_setup(void)

You must use always_inline if you need it to be always inline.

But, the rest of the comment isn't entirely accurate.Â  It can also be
from a function with stack-protector disabled.

But the best option is to initialise __stack_chk_guard from asm before
calling into C.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:28:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:28:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842502.1258037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFYCx-0007vX-Ch; Mon, 25 Nov 2024 12:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842502.1258037; Mon, 25 Nov 2024 12:28: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 1tFYCx-0007vQ-9i; Mon, 25 Nov 2024 12:28:51 +0000
Received: by outflank-mailman (input) for mailman id 842502;
 Mon, 25 Nov 2024 12:28: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=Z5yF=SU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tFYCw-0007vK-5b
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:28:50 +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 cfeddeb5-ab28-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 13:28:44 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cf9ef18ae9so10218165a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:28:44 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3c052fsm4073171a12.44.2024.11.25.04.28.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 04:28: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: cfeddeb5-ab28-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNmZWRkZWI1LWFiMjgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTM3NzI0Ljg5NDI5OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732537724; x=1733142524; darn=lists.xenproject.org;
        h=content-transfer-encoding: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=embojS4IjDDsPnguFr4MdhbSnmkJKNqXjs8bsz5CVqY=;
        b=diUhsnShE6wKd/rBQTskrvcnSpgbOkCpA+VgDYDJt5k2ApXMIdnjf5YJJ4s4z2euiI
         5kjt0psGLgX5HYVC1Voyn8gfR3XjSMKbJ5zuTciaApUIsvj+fi8hJ/B0bp5QotZmEBZM
         gf9MlxVJhJ/hC1jAFE08Knz1agHqtBtaixf9s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732537724; x=1733142524;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=embojS4IjDDsPnguFr4MdhbSnmkJKNqXjs8bsz5CVqY=;
        b=XI18bN2Sfg2mcMCy63Zo+Ygy3AyRry9UppHjmoD+FgP1kbyPtURU1t3G+Wzof84HoW
         JONcnF8XzuS30AWUEFi2AJ2aUYLrmA87W3D5kUYOePxb7BKdzdcyb/gP5Io/bRkxGqry
         h0QxYEZUfAxMLl4QsRZYuRrgue9wcnZbt1MOXEAs9YwiVSY2zH4fl+WobK/VkQNe2o3e
         7OGz8TlZAyBHXCc7jlcpLz8pwzGvRZBMa6Lug067ZCWID42+GUr8gVIUGwhg40ZAVuLS
         55zg7mDnIlOpYpl05drLMsWjF551cuLaSI4z3lfY63kcJEQwSy429eRP0fyoaa6W1Jmp
         ihCQ==
X-Forwarded-Encrypted: i=1; AJvYcCWgSqKBaHK4/BqzaZA80xpbQnVW4V4BjniYWAKPHVWn0qx9RH4Bfk8JlwdVc6KZou6NYaGERPcO4y0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw98i6P//ufYlCK7711Sdt0OEfQtlN36OiMGwfAZc57NYOuAO6A
	Sz9sL6O0iVCAbuaPM0lotTmjluKLeQIObXvRhW1CyXaxee/nKbWvk2tB8EFxMiI=
X-Gm-Gg: ASbGncuWZHLJIAuauoDkPT2hDy30c5L8cuMyZPCVNiAocHfOqgD6g8xIB0AEEpFZ61W
	Mfl93TtX61E3xiM079XFOyOF8bfNOccJcRTRLyb2XexNcwViXmvHWTpCMjo1Kacn/4F8DQyYv+Q
	Purl/tqfvgCfp7lxuQf9oE8mW5JSr1aXRjo2GCNdj4qCHecZMczmxN/51C5Qh12u7jFJYBuHMiR
	11ySHxESmj/zaZgSuEk4UYoDWVnFd5BBZD7qCsL+me0AR6CL/AGj9BCTmKwKxQ=
X-Google-Smtp-Source: AGHT+IE1ggMdCNkqaCM2s7vOvz6Z5TvTbTaJ1VuUSeLyh/8WjcpnIWRcy2tx86pBycVeic9jx7lm5g==
X-Received: by 2002:a05:6402:358b:b0:5cf:cd5d:f119 with SMTP id 4fb4d7f45d1cf-5d007bfb44dmr15595137a12.4.1732537724354;
        Mon, 25 Nov 2024 04:28:44 -0800 (PST)
Message-ID: <cb5e988c-0774-4881-81c9-e4a1a830d64d@citrix.com>
Date: Mon, 25 Nov 2024 12:28:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: xen | Failed pipeline for staging | 2e853c19
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <67446a18cdb7b_2e311cddc121912@gitlab-sidekiq-catchall-v2-65d69c5784-4rjws.mail>
 <9ad17178-b6c9-4aec-8f67-7f1db1a85276@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <9ad17178-b6c9-4aec-8f67-7f1db1a85276@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2024 12:17 pm, Jan Beulich wrote:
> On 25.11.2024 13:14, GitLab wrote:
>>
>> Pipeline #1558962580 has failed!
>>
>> Project: xen ( https://gitlab.com/xen-project/hardware/xen )
>> Branch: staging ( https://gitlab.com/xen-project/hardware/xen/-/commits/staging )
>>
>> Commit: 2e853c19 ( https://gitlab.com/xen-project/hardware/xen/-/commit/2e853c19204e2d660a8becf4b377cc99216854dd )
>> Commit Message: xen/common: Move gic_dt_preinit() to common cod...
>> Commit Author: Oleksii Kurochko ( https://gitlab.com/olkur )
>> Committed by: Jan Beulich ( https://gitlab.com/jbeulich )
>>
>>
>> Pipeline #1558962580 ( https://gitlab.com/xen-project/hardware/xen/-/pipelines/1558962580 ) triggered by Jan Beulich ( https://gitlab.com/jbeulich )
>> had 1 failed job.
>>
>> Job #8461870351 ( https://gitlab.com/xen-project/hardware/xen/-/jobs/8461870351/raw )
>>
>> Stage: build
>> Name: debian-11-riscv64-gcc
> ERROR: Job failed: failed to pull image "registry.gitlab.com/xen-project/xen/debian:11-riscv64" with specified policies [always]: Error response from daemon: Get "https://registry.gitlab.com/v2/": dial tcp: lookup registry.gitlab.com on 127.0.0.53:53: read udp 127.0.0.1:53667->127.0.0.53:53: read: connection refused (manager.go:251:0s)
>
> i.e. nothing on the side of what's under test. I'm afraid I don't even know
> what to do in such a case, to get things moving again.

It seems Gitlab is having networking problems.

Hit the retry button.Â  (top right hand side, 2 arrows in a circle, white
on blue background).

I've rerun this test for now, but I expect others will fail.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 12:39:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842512.1258047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFYN4-0001Uz-A5; Mon, 25 Nov 2024 12:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842512.1258047; Mon, 25 Nov 2024 12:39: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 1tFYN4-0001Us-6q; Mon, 25 Nov 2024 12:39:18 +0000
Received: by outflank-mailman (input) for mailman id 842512;
 Mon, 25 Nov 2024 12:39: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=Uxrf=SU=bounce.vates.tech=bounce-md_30504962.67446fed.v1-9fbbdb30330a4bae8dd0e343e4975130@srs-se1.protection.inumbo.net>)
 id 1tFYN2-0001Uk-Fm
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:39:16 +0000
Received: from mail134-5.atl141.mandrillapp.com
 (mail134-5.atl141.mandrillapp.com [198.2.134.5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45560e73-ab2a-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 13:39:12 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-5.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4Xxld92xC7zG0CByw
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 12:39:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9fbbdb30330a4bae8dd0e343e4975130; Mon, 25 Nov 2024 12:39: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: 45560e73-ab2a-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNC41IiwiaGVsbyI6Im1haWwxMzQtNS5hdGwxNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ1NTYwZTczLWFiMmEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTM4MzUyLjI5NTI4Nywic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDQ2ZmVkLnYxLTlmYmJkYjMwMzMwYTRiYWU4ZGQwZTM0M2U0OTc1MTMwQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732538349; x=1732798849;
	bh=IXR2piY85zWK0osdoMrnuuiokPxa8VpFHcies5EH5BM=;
	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=yEa76uop03EMATv5HPw4SG5j8zlR1VYB0qt4YO1XnAlPoKlQ7/mFRoV3QdQSx8vq5
	 lKppxMt7dcIT0wHWvYXGY5Wkohb+EAvvvkG1aqaC4FpT8mU3DvoJXvgh2q2CFnK3tj
	 9pgf7J2Bd0kd3BlbOumYDBt1F7POegiagaazBYrvAUcTusX0408S7pexwFzLOW78IV
	 6j8Rsq4KdkhHLSIWhql6eEj34hRlErZl/eZWy7QdEt419j070+N9hiQ2wajExqWe7b
	 ZIzG3d1bSyL8TSgO6JNFbTP2a4HcHlIF9DyxBWzwn3LItY+mQk/oGPsMThZSCIFS4b
	 HSPKOeiGLGHUw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732538349; x=1732798849; i=teddy.astie@vates.tech;
	bh=IXR2piY85zWK0osdoMrnuuiokPxa8VpFHcies5EH5BM=;
	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=ERMHdxyrI7KIqbyrPDXAItBwb55v2IShvYVSqpSi22m3+rH8U4M6lc/ShmI37qCoL
	 V/YsjRhgSLG8sJf0RCfQEf9/TJB4/pIb1jJsu1FW/k1LQa7UT2d4f/90Djo2oNQc3N
	 1FVD3bltLf/5qRdRbcf0YsB+QaiPIyHTZNCGvcDWTrpRA+RdlFz9kKT7a/zVene98y
	 6ifRfZ48n28IFSiwY2W5NU33m0ExkmE/Zh5nAzJRLd26Uc1kdKhSV9j2jng5pcbm+4
	 68N5kuKzd2I2OFN8kKmcnSmCFtkbMAWItrpJvShSoMSqfd+FEaGSDIxm6+VakdJr2q
	 CMCXxepEsPTRQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2007/25]=20tools/xenbindgen:=20Add=20support=20for=20structs=20in=20TOML=20specs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732538348441
Message-Id: <8dcd8297-d9d9-4106-ba6d-eefd5df6f69a@vates.tech>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson" <yann.dirson@vates.tech>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com> <20241115115200.2824-8-alejandro.vallejo@cloud.com>
In-Reply-To: <20241115115200.2824-8-alejandro.vallejo@cloud.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.9fbbdb30330a4bae8dd0e343e4975130?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241125:md
Date: Mon, 25 Nov 2024 12:39:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Alejandro,

Le 15/11/2024 =C3=A0 12:51, Alejandro Vallejo a =C3=A9crit=C2=A0:
> Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> ---
>   tools/rust/xenbindgen/src/c_lang.rs | 56 ++++++++++++++++++++++++-
>   tools/rust/xenbindgen/src/spec.rs   | 64 ++++++++++++++++++++++++++++-
>   2 files changed, 117 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/rust/xenbindgen/src/c_lang.rs b/tools/rust/xenbindgen/=
src/c_lang.rs
> index f05e36bb362f..597e0ed41362 100644
> --- a/tools/rust/xenbindgen/src/c_lang.rs
> +++ b/tools/rust/xenbindgen/src/c_lang.rs
> @@ -17,9 +17,10 @@
>   
>   use std::fmt::Write;
>   
> -use crate::spec::OutFileDef;
> +use crate::spec::{OutFileDef, StructDef, Typ};
>   
>   use convert_case::{Case, Casing};
> +use log::{debug, trace};
>   
>   /// An abstract indentation level. 0 is no indentation, 1 is [`INDENT_W=
IDTH`]
>   /// and so on.
> @@ -29,6 +30,39 @@ struct Indentation(usize);
>   /// Default width of each level of indentation
>   const INDENT_WIDTH: usize =3D 4;
>   
> +/// Create a C-compatible struct field. Without the terminating semicolo=
n.
> +fn structfield(typ: &Typ, name: &str) -> String {
> +    match typ {
> +        Typ::Ptr(x) =3D> {
> +            let t: &Typ =3D x;
> +            format!(
> +                "XEN_GUEST_HANDLE_64({}) {name}",
> +                match t {
> +                    Typ::U8 =3D> "uint8",
> +                    Typ::U16 =3D> "uint16",
> +                    Typ::U32 =3D> "uint32",
> +                    Typ::U64 =3D> "uint64_aligned_t",
> +                    Typ::I8 =3D> "int8",
> +                    Typ::I16 =3D> "int16",
> +                    Typ::I32 =3D> "int32",
> +                    Typ::I64 =3D> "int64_aligned_t",
> +                    _ =3D> panic!("foo {t:?}"),
> +                }
> +            )
> +        }
> +        Typ::Struct(x) =3D> format!("struct {x} {name}"),
> +        Typ::Array(x, len) =3D> format!("{}{name}[{len}]", structfield(x=
, "")),
> +        Typ::U8 =3D> format!("uint8_t {name}"),
> +        Typ::U16 =3D> format!("uint16_t {name}"),
> +        Typ::U32 =3D> format!("uint32_t {name}"),
> +        Typ::U64 =3D> format!("uint64_aligned_t {name}"),
> +        Typ::I8 =3D> format!("int8_t {name}"),
> +        Typ::I16 =3D> format!("int16_t {name}"),
> +        Typ::I32 =3D> format!("int32_t {name}"),
> +        Typ::I64 =3D> format!("int64_aligned_t {name}"),
> +    }
> +}
> +

I think _t are missing in the Ptr cases (we are currently generating 
XEN_GUEST_HANDLE_64(uint8) which I don't think is valid).
Aside that, wouldn't it be better to have a separate function for 
converting the type to its C representation ?

Something like

impl Typ { // or blanket trait
     fn c_repr(&self) -> String {
         match self {
             /* ... */
         }
     }
}

fn structfield(typ: &Typ, name: &str) -> String {
     format!("{} {name}", typ.c_repr());
}

We can also consider Typ::Struct or Typ::Array cases to call recursively 
to c_repr on its inner type to get its representation.

That way, we can have XEN_GUEST_HANDLE_64(struct something).

Cheers

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 Nov 25 12:47:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 12:47:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842525.1258057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFYUy-0003YZ-5B; Mon, 25 Nov 2024 12:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842525.1258057; Mon, 25 Nov 2024 12:47: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 1tFYUy-0003YS-1N; Mon, 25 Nov 2024 12:47:28 +0000
Received: by outflank-mailman (input) for mailman id 842525;
 Mon, 25 Nov 2024 12:47: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=p6X4=SU=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tFYUv-0003YM-RW
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 12:47:25 +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 69d795f3-ab2b-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 13:47:22 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso719716166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 04:47:22 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b3457basm459236766b.89.2024.11.25.04.47.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 Nov 2024 04:47: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: 69d795f3-ab2b-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY5ZDc5NWYzLWFiMmItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTM4ODQyLjExNjAyMywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732538842; x=1733143642; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=c/MZ7qQPDZn9WoacarwXEZFSPAJiR4wFq7rrJBnJSPc=;
        b=Wfe1AKFTERSq5w0rlc3L81Zu+68qZoYTksxIX+Hf4lINjqpA3BbVBb4FFthw06pZA/
         ZS9C6WXnXlVek+je9oMuU+YRJl5yUnQcVgwEliByDVSRQm69dfXpaFQwnDs+1lXKYZGZ
         O/AJ3hroIBLJEtqtVIVyX7xFSFDH20k2TSkY4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732538842; x=1733143642;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=c/MZ7qQPDZn9WoacarwXEZFSPAJiR4wFq7rrJBnJSPc=;
        b=TctTwPNXKUyeFAs0JYCWjDK/JPLPZtxvg6AgR2BXRQWt+MjZqWBKpO0/oggSD0YqpY
         OxpZPHRYpMkz8FblYJkUQG+NyBcg14Qm9xE4YrZxJO3z7/jvs/V5cwPjbqj8CrwQO6X2
         BTWbKjmZ3ip9HYmCUxibDLWHIL9RV2/kynR+/0eOxkHGQbMDLidoc/k3G7WfUuCErFCZ
         i90LISaMHncJv7PCYjmJtMN9Q6bB2Htk3q0wsOIIPCMsVNVfuRol5vrA6w82rQt1iBHS
         PulWtsnJNPZR0NCdYv9S3y5TKudrIiTSdZvmyjCY6dYFeAqGzII6clBsz6tFzaMiHaFW
         GxFA==
X-Gm-Message-State: AOJu0YxUPGprL/MuVLmSN1jeysCqwb6hun+Gp12atOie4EUM6XuUHGys
	vWa/zGjiRVWG5CzxKYNEwIm4agqdx2qawh8bDCkfJzk6fX5P48yfnem9T4uRpzotdYeaKE1u0GO
	e
X-Gm-Gg: ASbGncsrsQjhaiUkT73izuRulZCscy+/uEtE5THjBNbYRkGJZ8mN6X8Vi3bVvUgWNi1
	K6P3HeiQqCsSOMaPflq2o7gKLs9raHL0cZ8hfuSrK5K0mO8G4DsrznzOCsMp2Oh1KeGYRCkAbxb
	PJ13rDRHTWytMJoBFcdixXhevagP4utryd9ZFbDCwykjIuLtzhZWGYBDwZL69N8Z+Mpol22gQSz
	mhC5S8a929F6xRfxouqdqQS0Z+GG/bnobxCvZLRI/kujuXE4Q5JUoVF6EQ=
X-Google-Smtp-Source: AGHT+IHqV+ajEDv5I+yDuledBOFjyNwnB2We4iC4jejfiGmbRyn0J7/gFRy4CrYrZsvXoQv9hBJYhw==
X-Received: by 2002:a17:906:31c1:b0:aa5:1d68:1ec8 with SMTP id a640c23a62f3a-aa51d681fc8mr1023719566b.7.1732538841988;
        Mon, 25 Nov 2024 04:47:21 -0800 (PST)
Date: Mon, 25 Nov 2024 13:47:20 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] vpci: Add resizable bar support
Message-ID: <Z0Rx2IXqqvrLaIIq@macbook>
References: <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz8Cwj3KJ1BIBEg_@macbook>
 <BL1PR12MB584977971D2C0A00443A1A79E72E2@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB584977971D2C0A00443A1A79E72E2@BL1PR12MB5849.namprd12.prod.outlook.com>

On Mon, Nov 25, 2024 at 03:44:52AM +0000, Chen, Jiqian wrote:
> On 2024/11/21 17:52, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 21, 2024 at 03:05:14AM +0000, Chen, Jiqian wrote:
> >> On 2024/11/20 17:01, Roger Pau MonnÃ© wrote:
> >>> On Wed, Nov 20, 2024 at 03:01:57AM +0000, Chen, Jiqian wrote:
> >>>> The only difference between our methods is the timing of updating the size.
> >>>> Yours is later than mine because you updated the size when the driver re-enabled memory decoding, while I updated the size in time when driver resize it.
> >>>
> >>> Indeed, my last guess is the stale cached size is somehow used in my
> >>> approach, and that leads to the failures.  One last (possibly dummy?)
> >>> thing to try might be to use your patch to detect writes to the resize
> >>> control register, but update the BAR sizes in modify_bars(), while
> >>> keeping the traces of when the operations happen.
> >>>
> >> This can work, combine our method, use my patch to detect and write the size into hardware register, and use your patch to update bar[i].size in modify_bars().
> >> Attached the combined patch and the xl dmesg.
> > 
> > This is even weirder, so the attached patch works fine?  The only
> > difference with my proposal is that you trap the CTRL registers, but
> > the sizing is still done in modify_bars().
> > 
> > What happens if (based on the attached patch) you change
> > rebar_ctrl_write() to:
> > 
> > static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
> >                                       unsigned int reg,
> >                                       uint32_t val,
> >                                       void *data)
> > {
> >     pci_conf_write32(pdev->sbdf, reg, val);
> > }
> > 
> If I change rebar_ctrl_write() to:
> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>                                       unsigned int reg,
>                                       uint32_t val,
>                                       void *data)
> {
>     printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sbdf, reg, val);
>     pci_conf_write32(pdev->sbdf, reg, val);
> }
> 
> I can see three time prints, it can't work.
> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 528, val 102
> 
> If I change rebar_ctrl_write() to:
> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>                                       unsigned int reg,
>                                       uint32_t val,
>                                       void *data)
> {
>     if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY )
>         return;
>     printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sbdf, reg, val);
>     pci_conf_write32(pdev->sbdf, reg, val);
> } 
> 
> I can only see one time print:
> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
> 
> The check prevented the two times incorrect write actions.
>     if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY )
>         return;
> 
> And why my original patch can work too, the check:
> +    ctrl = pci_conf_read32(pdev->sbdf, reg);
> +    if ( ctrl == val )
> +        return;
> happened to play the same role as PCI_COMMAND_MEMORY check.

Thank you very much for figuring this out.  So in the end it's a bug
in the driver that plays with PCI_REBAR_CTRL with memory decoding
enabled.

Won't this also cause issues when running natively without Xen?

I think we have no other option but to trap accesses to the capability
registers themselves in order to ensure a minimum amount of sanity
(iow: no writes to the ReBAR control registers decoding is enabled).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 14:24:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842611.1258283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFa10-0001KY-Su; Mon, 25 Nov 2024 14:24:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842611.1258283; Mon, 25 Nov 2024 14: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 1tFa10-0001KR-Pg; Mon, 25 Nov 2024 14:24:38 +0000
Received: by outflank-mailman (input) for mailman id 842611;
 Mon, 25 Nov 2024 14:24: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa0z-0001KL-Lt
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:24:37 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe070939-ab38-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 15:24:34 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-38245e072e8so4518549f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:24: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-3825fb4ecd8sm10512288f8f.60.2024.11.25.06.24.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:24: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: fe070939-ab38-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZlMDcwOTM5LWFiMzgtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ0Njc0LjMwMDA4OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732544673; x=1733149473; 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=E7rL2p+3PZJcbrmWuAkJoQaV4Nffxc4O4oIoBSP8VR8=;
        b=VzgCmLL5T7uHb7sAXNvwncFMJEzzLGCXxUqap8h9g4ZqZtr8kDWmKm2FfriQq4tAIc
         Eo6D6slZ/L7BfM17JqZ4eS1WLfcyfboCjUZEp3Cgc79LMI8m4zk7EeNdADLRxfzgqdPK
         /3wvgUquRgs0eawjbEQpgkktUy/fqwB58p5CCccFPw5KW4R/j6/38RPRY6SKUUd2Wubr
         XfzMbpUcTjPlnS+E2xW/b9K6Pf4j3DeAW+tlySoFApkKq4zOgQ70SgF+muHbYCDwtP3v
         vnbQ4Kbeol4LOEjFDcHVXuFveL16z4rPB7RfZthftU3jhj32pcq1spDnRMXVLILriqhz
         vSjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732544673; x=1733149473;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=E7rL2p+3PZJcbrmWuAkJoQaV4Nffxc4O4oIoBSP8VR8=;
        b=OPULzvNvG5425QnOCjuXPCUrk4/qSiu7lTGc5o24HXaUdSP6qbZJ1derpBS5SvwP4V
         5tyRrakM/BAx+dwUOmAgd8NBZs+Q6hQ0aKQI5xeYb3JQR0Hmkyc+1mRyJj/Ou9pg8Hb2
         MyViclLQHtodwIY+h4mcyptkA+3/vcepLDcKS41M/+LDq8etjlVFdM/u0hKmi1RbFBKo
         TzyKiIwwkI6CZeoEQKpoH62+KOsrnVAFuhc7GqhEbHXhfIYaPs1Luw5hezwQimh9Nzxt
         2Y5XxyZq1Ar6ADGE/hcBh0P6BH7FkuHzGsHz0SScbd2fz4akBY2dhjCPTXTRouCT0Awb
         8fNQ==
X-Gm-Message-State: AOJu0YyEa5JpCg2afSL39jzsUYUkOkCCW5ZJvNElFumQzlClvWAlK301
	0YZs2L1kf7cEsTKaL4Xr+KVB/30ZS9XY1VJdQmEZ6Wd/4thKLaj74sr8YCGV0NZiWVvSLAW6YcA
	=
X-Gm-Gg: ASbGncsW+Q48vd51YfeqbleZv5ZG2ztVtWSsFgAued2GYXYi29SWu9hrQ8xe279kbdP
	MaMaQ9yv3B/9Q81vgzHNHSEbgLDpW/fT790GTrDh8TddkLykT9HY/S9zzubsOaypxpOG6Da/o3i
	k3nsecf4oDhkMl0c40G5HYB4cd3S1DnWgpx6/HqQqlcYKGqkZWSYC6xJbx+D5F00uNdMeIuKzGR
	y7yfM/DXV4mZQWka70GVRkqVP0VLW+7aAALLD27X08f9OH2KB+LVhPmgGPMmSlsbIbJ3QL3Utk6
	FI7HRnDg4x9pGreSk2t2y4MObq8kBen8RX4=
X-Google-Smtp-Source: AGHT+IFbDjFkcbPwQ+hwRaxzAKz3tD8yviJe4bXIIHr/D5MChjCedX3qf70+Ub/KxDtrubFUS7mCHg==
X-Received: by 2002:a05:6000:381:b0:382:4ab4:b3e5 with SMTP id ffacd0b85a97d-3826088e2b0mr13174440f8f.0.1732544673591;
        Mon, 25 Nov 2024 06:24:33 -0800 (PST)
Message-ID: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Date: Mon, 25 Nov 2024 15:24:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3 0/7] x86: memcpy() / memset() (non-)ERMS flavors plus
 fallout
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?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

While the performance varies quite a bit on older (pre-ERMS) and newer
(ERMS) hardware, so far we've been going with just a single flavor of
these two functions, and oddly enough with ones not consistent with one
another. Using plain memcpy() / memset() on MMIO (video frame buffer)
is generally okay, but the ERMS variant of memcpy() turned out to
regress (boot) performance in a way easily visible to the human eye.

v3, apart from the new 1st patch, submitted mainly upon request, as
otherwise there was just some re-basing over the 3.5 years since v2.

01: x86: suppress ERMS for internal use when MISC_ENABLE.FAST_STRING is clear
02: x86: re-work memset()
03: x86: re-work memcpy()
04: x86: control memset() and memcpy() inlining
05: x86: introduce "hot" and "cold" page clearing functions
06: page-alloc: make scrub_on_page() static
07: mm: allow page scrubbing routine(s) to be arch controlled

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 14:27:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:27:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842620.1258293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFa45-0001uO-C3; Mon, 25 Nov 2024 14:27:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842620.1258293; Mon, 25 Nov 2024 14: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 1tFa45-0001uH-8M; Mon, 25 Nov 2024 14:27:49 +0000
Received: by outflank-mailman (input) for mailman id 842620;
 Mon, 25 Nov 2024 14:27: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa44-0001uB-DI
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:27:48 +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 6fc3251b-ab39-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 15:27:45 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-382296631f1so3581378f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:27: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-4349ef99e7dsm45167965e9.2.2024.11.25.06.27.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:27: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: 6fc3251b-ab39-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZmYzMyNTFiLWFiMzktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ0ODY1LjAyNzUxNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732544864; x=1733149664; 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=NRReWrcJj5Da4Nc3bL9CexPuuLrnGBxMVpXbGbnV/ww=;
        b=TLh8nSy0YZK9xc2iIT7vmX/J4LPc+X2OPTIjvMtb8KZNaIHyPnOebwbGwZd4NMkDRo
         hliHPB5Z3yDkvpFkxBjeJf8KkTwQ4FfwPMDPQkEGbzT1D+NZTHQ6+NRsPg//dl+eosJc
         3ks3Lo9x57A4LJlJ9QJeQAZ7NNhlMyTwegG076Hn27965E7Wwt1vtS4bNH0fnK0EeAhq
         Y+IIG7LA+rcMW64tLcmuMl40Y+MysKfuWRLbFA3XU+FOJn9a5Jr5/RrzQR21KN1cBjTr
         Z22S9xra9xq+iuMCp1qH4Ak1mds9ITDS7RpqGmkOYaN6zFoNLg87mQvwuwQAsE4paAzt
         p6+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732544864; x=1733149664;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NRReWrcJj5Da4Nc3bL9CexPuuLrnGBxMVpXbGbnV/ww=;
        b=elFb8X5/xPFKwCwB9JKY5XE0wVAqf8QJJYn8BDVqjeSYeICA+AJi8yqNWX3B3aqIwo
         m33j242kTPE0yvSGq8uP9eVN6gA51tQASOJ6S0Eks1s3UjOO4Aipn8iZkI/M0UQrXMgu
         TcGDDBnd6u8ehk1peC/6gh3Bi8pzxTREUx/I7hgGkUSs3Fi8If0CsjOYj1geE0RTfIdg
         +c8wOU+cJGJAbfxlbmEx03ID6CcKIKIpk0L6cqK3VSP0W+8t12aeuW4GKQe1UksprsDq
         OMXnz3tyCpmoXQFfhGrPPdRFWjRONNrWoM9sTW2zFHj/JwgjcDstePQqdnqQXVZTe+sU
         VxxA==
X-Gm-Message-State: AOJu0YyCtuTXMedya1ztvRQvT0V4+1WXKvMCGqkEP4wv6rqCt3EKBJRy
	wFmQ/9Vxyb9udtUXAq6CC8ncu7DN8s3t94OWMu2Exb7URKT0W++KQ58gfO6qsvla1p+eD5HUlfk
	=
X-Gm-Gg: ASbGncsCvoHS4wOrm/kMazwj5+TNuNeLMFc4ZHqZBaH2BRiDAhI8yD3/RG7pUQlieaS
	Yy4z7D8wOYdfRW8hCYi9NBQxcPNicef5pHSPBpoBOTpbQzxuvF/gCfNTRGRLAcKRZYTR6WQ6Sht
	OhwKGG7raX31mmRzZUWYFGTks1flMdVLs0+8lyfkTTz4kBnupi36RxlZotv3fRbKnPYsOgQHPMy
	5pApfzNTQAJGZF6rJEbgDZlEt8B8SpHduvRiek1o07OBJ5zPAtF9K+H+hT6Yb2OjyAegFvcq3ma
	At96ZMtEq2ldpDDE5vgpmefoiSvbFs7NiRY=
X-Google-Smtp-Source: AGHT+IE6gt4wT+roPSloQYVmoFkwiASYMWeOV0KJOla1Cq94LDvTW82s8b6OaaAN+L3KINOG478PmQ==
X-Received: by 2002:a05:6000:1a85:b0:382:4f34:ef7f with SMTP id ffacd0b85a97d-38260b8070amr10286575f8f.31.1732544864395;
        Mon, 25 Nov 2024 06:27:44 -0800 (PST)
Message-ID: <66aa8b0c-c811-483b-839e-49ca817a4672@suse.com>
Date: Mon, 25 Nov 2024 15:27:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 1/7] x86: suppress ERMS for internal use when
 MISC_ENABLE.FAST_STRING is clear
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: <e7314ac8-ed09-4da8-b915-09409b01fe77@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Before we start actually adjusting behavior when ERMS is available,
follow Linux commit 161ec53c702c ("x86, mem, intel: Initialize Enhanced
REP MOVSB/STOSB") and zap the CPUID-derived feature flag when the MSR
bit is clear. Don't extend the artificial clearing to guest view,
though: Guests can take their own decision in this regard, as they can
read (most of) MISC_ENABLE.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
TBD: Would be nice if "cpuid=no-erms" propagated to guest view (for
     "cpuid=" generally meaning to affect guests as well as Xen), but
     since both disabling paths use setup_clear_cpu_cap() they're
     indistinguishable in guest_common_feature_adjustments(). A separate
     boolean could take care of this, but would look clumsy to me.
---
v3: New.

--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -337,8 +337,18 @@ static void cf_check early_init_intel(st
 		paddr_bits = 36;
 
 	if (c == &boot_cpu_data) {
+		uint64_t misc_enable;
+
 		check_memory_type_self_snoop_errata();
 
+		/*
+		 * If fast string is not enabled in IA32_MISC_ENABLE for any reason,
+		 * clear the enhanced fast string CPU capability.
+		 */
+		rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
+		if (!(misc_enable & MSR_IA32_MISC_ENABLE_FAST_STRING))
+			setup_clear_cpu_cap(X86_FEATURE_ERMS);
+
 		intel_init_levelling();
 	}
 
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -590,6 +590,15 @@ static void __init guest_common_feature_
      */
     if ( host_cpu_policy.feat.ibrsb )
         __set_bit(X86_FEATURE_IBPB, fs);
+
+    /*
+     * We expose MISC_ENABLE to guests, so our internal clearing of ERMS when
+     * FAST_STRING is not set should not propagate to guest view.  Guests can
+     * judge on their own whether to ignore the CPUID bit when the MSR bit is
+     * clear.
+     */
+    if ( raw_cpu_policy.feat.erms )
+        __set_bit(X86_FEATURE_ERMS, fs);
 }
 
 static void __init calculate_pv_max_policy(void)
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -489,6 +489,7 @@
 #define MSR_IA32_THERM_INTERRUPT	0x0000019b
 #define MSR_IA32_THERM_STATUS		0x0000019c
 #define MSR_IA32_MISC_ENABLE		0x000001a0
+#define MSR_IA32_MISC_ENABLE_FAST_STRING  (1<<0)
 #define MSR_IA32_MISC_ENABLE_PERF_AVAIL   (1<<7)
 #define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL  (1<<11)
 #define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1<<12)



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 14:28:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:28:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842625.1258302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFa4Q-0002Ig-If; Mon, 25 Nov 2024 14:28:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842625.1258302; Mon, 25 Nov 2024 14: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 1tFa4Q-0002IX-Fv; Mon, 25 Nov 2024 14:28:10 +0000
Received: by outflank-mailman (input) for mailman id 842625;
 Mon, 25 Nov 2024 14:28: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa4P-0001uB-D7
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:28:09 +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 7c3d527f-ab39-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 15:28:05 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3823cae4be1so2786470f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:28: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-433b464320csm193000285e9.38.2024.11.25.06.28.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:28: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: 7c3d527f-ab39-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdjM2Q1MjdmLWFiMzktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ0ODg1Ljk2OTY3OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732544885; x=1733149685; 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=rBm6En5vnfhn1uyQpWAd/QeNo0+rMT72pPFEcsiUxNw=;
        b=UOrB6dBXraaXtjHSACHcDR+eNcvF2cSlwv/YU6Hn9qoW9F9ILXaRA+df0DwIshKR0l
         lGL2VE9JucjsvWAB/vB+o1D8SHItpLCs4vPHcF1XittvU+Dctyami4nC8Ha7x8r7j0nS
         JyBIwuF2h8o6QyrFYp4k7uwRmGLvHkEQ8uj8jA/RBTygBSkC/jrlhGBsAKgf4jmW8RZ1
         sFSVTNjiv6KqydzkcvO3O6xKfRYyDBgoP3bruEqUGuauqa1YdqfKXo4ICEFuMrTGlqSz
         j3liXD/IasoiNlbxeZBNLDThGpkCtPkO/65yDxwxnf0zeBoBdUBtmOMkqV4NpQ2sHpS4
         3SRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732544885; x=1733149685;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=rBm6En5vnfhn1uyQpWAd/QeNo0+rMT72pPFEcsiUxNw=;
        b=rRt9tSPq9XkieKPxlf7dhToQzMotxxhLhVinUWdrHTaXXKHCRr2GRUVf0OU6AOWB0t
         ab82tPk1F1ne0brkxRNT5EqL4p8lNEnWKIvMSvzVH7mtgxKJFcJ2rC1XssKPATDa6HZZ
         tJv/tbcA+ztWFSjQoN+hIHkKENP4pGaqGxlP/Kxi+azSpJpl47iGIKg01lkNdY8L+jAa
         /PdM0puF0JlnFT9BUPF/FxwQme8r7dL5Y3WueKsN0hzmTMcrd/pbnoqRWi8ge6hSQJR8
         bjDcEWNGAipCvbL9aMVkoQ2g6DXvWSi+9wdnpqeeV0jMDs+ip1QU49Bp95DkT12yhBMC
         StMg==
X-Gm-Message-State: AOJu0YzLIHRlWW/Fa4w1rKKqpGVWpZ+blPfeLoEav+xxQ2Y/oT8ca4Yl
	Q3znycmoxtGbOQyud+uOQeV4ii50vUFq1VzGDv20W0yH53HyEsgyrjfs3AqNhL2Zp5jaJl2PkKA
	=
X-Gm-Gg: ASbGncteal7aRHslrnsqkBXRRGSpAItfKZxdxh8ey+QCm3llhv8sHDf7L1kEnDWKoJC
	Z4phHpTdewoO/ET7kQOIsy0kJ/Xn2wt9C9rR54ZTj3Ai5ePBciEHIaDAMnjIxw13g9DEgluS3nQ
	l0CkqIskXbgOmUjx2qjc4DWHNYp/R6qB1dbF7BmFDxFE850xAditkixFjsgphoLmhmiRPmrGhVf
	+LMFblhFPr6ko9fqkfNyPsE3Pa1K79PAcnx6dXWpRxaKtEzG7vcD8OOHnG6pTJVf7IA8zptqDcP
	nuh+Q2skTtd7nDkD5JoTCFbaLoWGsQKrmfg=
X-Google-Smtp-Source: AGHT+IHvwjLd5kmzGRQkoFoMcHYIYh6Q+DJWXj9akEU7qg/AZ4TkwT5HYdaZYSe5itUO6AvXuuQLQA==
X-Received: by 2002:a05:6000:4028:b0:382:31a2:17fd with SMTP id ffacd0b85a97d-38260be5360mr11353125f8f.55.1732544885400;
        Mon, 25 Nov 2024 06:28:05 -0800 (PST)
Message-ID: <62b3403f-3800-4c1e-a7a2-165ebfac04c0@suse.com>
Date: Mon, 25 Nov 2024 15:28:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 2/7] x86: re-work memset()
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Move the function to its own assembly file. Having it in C just for the
entire body to be an asm() isn't really helpful. Then have two flavors:
A "basic" version using qword steps for the bulk of the operation, and an
ERMS version for modern hardware, to be substituted in via alternatives
patching.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
We may want to consider branching over the REP STOSQ as well, if the
number of qwords turns out to be zero.
We may also want to consider using non-REP STOS{L,W,B} for the tail.
---
v3: Re-base.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -48,6 +48,7 @@ obj-$(CONFIG_INDIRECT_THUNK) += indirect
 obj-$(CONFIG_PV) += ioport_emulate.o
 obj-y += irq.o
 obj-$(CONFIG_KEXEC) += machine_kexec.o
+obj-y += memset.o
 obj-y += mm.o x86_64/mm.o
 obj-$(CONFIG_HVM) += monitor.o
 obj-y += mpparse.o
--- /dev/null
+++ b/xen/arch/x86/memset.S
@@ -0,0 +1,30 @@
+#include <asm/asm_defns.h>
+
+.macro memset
+        and     $7, %edx
+        shr     $3, %rcx
+        movzbl  %sil, %esi
+        mov     $0x0101010101010101, %rax
+        imul    %rsi, %rax
+        mov     %rdi, %rsi
+        rep stosq
+        or      %edx, %ecx
+        jz      0f
+        rep stosb
+0:
+        mov     %rsi, %rax
+        ret
+.endm
+
+.macro memset_erms
+        mov     %esi, %eax
+        mov     %rdi, %rsi
+        rep stosb
+        mov     %rsi, %rax
+        ret
+.endm
+
+FUNC(memset)
+        mov     %rdx, %rcx
+        ALTERNATIVE memset, memset_erms, X86_FEATURE_ERMS
+END(memset)
--- a/xen/arch/x86/string.c
+++ b/xen/arch/x86/string.c
@@ -22,19 +22,6 @@ void *(memcpy)(void *dest, const void *s
     return dest;
 }
 
-void *(memset)(void *s, int c, size_t n)
-{
-    long d0, d1;
-
-    asm volatile (
-        "rep stosb"
-        : "=&c" (d0), "=&D" (d1)
-        : "a" (c), "1" (s), "0" (n)
-        : "memory");
-
-    return s;
-}
-
 void *(memmove)(void *dest, const void *src, size_t n)
 {
     long d0, d1, d2;



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 14:28:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842636.1258312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFa4s-0002tC-VW; Mon, 25 Nov 2024 14:28:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842636.1258312; Mon, 25 Nov 2024 14:28: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 1tFa4s-0002t5-Sv; Mon, 25 Nov 2024 14:28:38 +0000
Received: by outflank-mailman (input) for mailman id 842636;
 Mon, 25 Nov 2024 14:28: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa4r-0002BZ-9S
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:28:37 +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 8d555639-ab39-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 15:28:34 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-434a1833367so3685865e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:28: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-433cde98b4dsm131217735e9.43.2024.11.25.06.28.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:28: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: 8d555639-ab39-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC13bTEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhkNTU1NjM5LWFiMzktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ0OTE0LjcyMTI0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732544914; x=1733149714; 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=vwlIgFVepcsl+wzf8H/Zlc/IIxMm7m4dGrhI8Xxv5zE=;
        b=M5hXbPDRh7iyHm+X3wDjyTvi9xwBjTqdrePUnjtUsFEEwprNE0h51MAaiP6pp9JVSt
         FCy88yeW/Ip6NrSYmDhMLAX5Q3wwOXw12ZFLQGVEJXJhDAxPnjqk7OLZNA8vhJptAjq4
         WUm8lhLn2QPhrYb4g55JjjHi9PTTHepy0DQjML8syfS+fVuZyvplISTdxPbS21ZOEoVF
         D5edL+tU7mwyjf/Opf2aA0gDaOtUzTkqPJUzno0PFOR6XCfgQ0JmTE5v31LI2i05CcsN
         VXS3PICm9zrjS4L5QdsNBQ9euAeBIFj2B6tQ+1oG0UFC0Pa7P44dkIcSbu4+TdE5NA4U
         sp/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732544914; x=1733149714;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vwlIgFVepcsl+wzf8H/Zlc/IIxMm7m4dGrhI8Xxv5zE=;
        b=Ux23qgZiGaocMPDwjTX7RKLTPoSBUtjj6ki6fRiNu5gI0Vg+qgPNJAq72ARbD/ru7s
         lXp8X5+48TLgVVlROhEmB+XRmc+y63RB7eLkSsVvdlkn7xDrxrG8VgcbxVneDNrIWF3a
         weQe026THYF1XKrL+8jzmnhR0ng2WVi+QInDzNUnL3couWvsjJLs4Oo5SPnKFeVjT4c8
         k/jjNJElMvuX1zj1F3iMBK/y+Ddc22EWsPbqPksr0xwC7IUyXIF9AD0YOKyG5EgtdtD3
         gQCOnEuu02KafAHmMbYnZzP3vzlz9AA3t65Y1Cj8p82cK47GhJWgmQw2DzvXf/+WfyCF
         AlLQ==
X-Gm-Message-State: AOJu0YxbcacRb7Xn23HmIrUoE5Fp3EKZKiVUuSJFlxv8Evst6NVeRMnv
	tSfVJ9uC2sYIV1F/ZKjDUQEejEcN7R699Vh6QtCbpwQ37Gm2B6kyB3SQIp5r9Y1fUsKKwaRIKcQ
	=
X-Gm-Gg: ASbGncvKoH3ug/jeLdwD5i7gB3aSarC/6iGtyGE8H6jE+2Ji6un+oGR+EaOp5MtJgpR
	yLhxObEUooP7TZMI/31vidOUU0BizeybLqHZgMrNfcxjnO5fgRsAHRNHjAI8b4+/JkGD1eP71LX
	TAU4caJGjxxOrJ5V3DqY6fTbgNl69OEvbH42i4wXMP/iOyEIxqiiXBlYiXmqFBLEs+XR22FOy+N
	oRaN48IVgxhREhuP+Xm645abTQ9LrNmlQ1wEEkEZeN4gO9v091UWwlHFvqKE78vBJNKvilfhXHp
	PvLK6LfrqctHbvCpddP/+YSYCowpC2Fhg4E=
X-Google-Smtp-Source: AGHT+IHPn1srSHSV7z2sj7na7mK2217CiVbc+5xmZIdsmUArj24h1U7+RKTrIR8v9j85uE3ZZ14vZw==
X-Received: by 2002:a05:600c:3ace:b0:431:57cf:f13d with SMTP id 5b1f17b1804b1-433cda09dbcmr110868235e9.3.1732544913895;
        Mon, 25 Nov 2024 06:28:33 -0800 (PST)
Message-ID: <c2aa4307-230b-4287-b9e4-6d7d84dba490@suse.com>
Date: Mon, 25 Nov 2024 15:28:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 3/7] x86: re-work memcpy()
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Move the function to its own assembly file. Having it in C just for the
entire body to be an asm() isn't really helpful. Then have two flavors:
A "basic" version using qword steps for the bulk of the operation, and an
ERMS version for modern hardware, to be substituted in via alternatives
patching.

Alternatives patching, however, requires an extra precaution: It uses
memcpy() itself, and hence the function may patch itself. Luckily the
patched-in code only replaces the prolog of the original function. Make
sure this remains this way.

Additionally alternatives patching, while supposedly safe via enforcing
a control flow change when modifying already prefetched code, may not
really be. Afaict a request is pending to drop the first of the two
options in the SDM's "Handling Self- and Cross-Modifying Code" section.
Insert a serializing instruction there.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
We may want to consider branching over the REP MOVSQ as well, if the
number of qwords turns out to be zero.
We may also want to consider using non-REP MOVS{L,W,B} for the tail.

TBD: We may further need a workaround similar to Linux'es 8ca97812c3c8
     ("x86/mce: Work around an erratum on fast string copy
     instructions").
---
v3: Re-base.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -48,6 +48,7 @@ obj-$(CONFIG_INDIRECT_THUNK) += indirect
 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_HVM) += monitor.o
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -153,12 +153,14 @@ void init_or_livepatch add_nops(void *in
  * executing.
  *
  * "noinline" to cause control flow change and thus invalidate I$ and
- * cause refetch after modification.
+ * cause refetch after modification.  While the SDM continues to suggest this
+ * is sufficient, it may not be - issue a serializing insn afterwards as well.
  */
 static void init_or_livepatch noinline
 text_poke(void *addr, const void *opcode, size_t len)
 {
     memcpy(addr, opcode, len);
+    cpuid_eax(0);
 }
 
 extern void *const __initdata_cf_clobber_start[];
--- /dev/null
+++ b/xen/arch/x86/memcpy.S
@@ -0,0 +1,20 @@
+#include <asm/asm_defns.h>
+
+FUNC(memcpy)
+        mov     %rdx, %rcx
+        mov     %rdi, %rax
+        /*
+         * We need to be careful here: memcpy() is involved in alternatives
+         * patching, so the code doing the actual copying (i.e. past setting
+         * up registers) may not be subject to patching (unless further
+         * precautions were taken).
+         */
+        ALTERNATIVE "and $7, %edx; shr $3, %rcx", \
+                    "rep movsb; ret", X86_FEATURE_ERMS
+        rep movsq
+        or      %edx, %ecx
+        jz      1f
+        rep movsb
+1:
+        ret
+END(memcpy)
--- a/xen/arch/x86/string.c
+++ b/xen/arch/x86/string.c
@@ -7,21 +7,6 @@
 
 #include <xen/lib.h>
 
-void *(memcpy)(void *dest, const void *src, size_t n)
-{
-    long d0, d1, d2;
-
-    asm volatile (
-        "   rep ; movs"__OS" ; "
-        "   mov %k4,%k3      ; "
-        "   rep ; movsb        "
-        : "=&c" (d0), "=&D" (d1), "=&S" (d2)
-        : "0" (n/BYTES_PER_LONG), "r" (n%BYTES_PER_LONG), "1" (dest), "2" (src)
-        : "memory" );
-
-    return dest;
-}
-
 void *(memmove)(void *dest, const void *src, size_t n)
 {
     long d0, d1, d2;



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 14:29:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:29:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842642.1258323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFa5M-0003Ru-8T; Mon, 25 Nov 2024 14:29:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842642.1258323; Mon, 25 Nov 2024 14: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 1tFa5M-0003Rn-4Y; Mon, 25 Nov 2024 14:29:08 +0000
Received: by outflank-mailman (input) for mailman id 842642;
 Mon, 25 Nov 2024 14:29: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa5K-0002BZ-8Y
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:29:06 +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 9ecc9735-ab39-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 15:29:03 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-434a1fe2b43so3893185e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:29: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-433b463abbfsm200763465e9.32.2024.11.25.06.29.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:29: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: 9ecc9735-ab39-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjllY2M5NzM1LWFiMzktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ0OTQzLjk0MTA1Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732544943; x=1733149743; 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=Ik+kdwvsn5sI13Sqvs0LoMAnkH/bBuVd5/sAq0CDmGU=;
        b=Il3rTUUPchL5fOtlOteck2i3OpbcWvYwakRA9DhY1Kc0+eA8WEgCjFa4rtXp1f+Y9S
         unahajGuthcGZwm5mwB63aSBaPtQLfkefaqOSgmno2CWOWwYug0z7GSlPs1FetnaHtt0
         jKObspLYoBjNCO5J8Jvq0VnZ5RbcEkzq8TQMk6uy2c+fryPnS5Exlr/BpSJd04NEQZWl
         hEC+HN/pIm8jbdx5JwSGC87vXYNoVR/VJj0CQSBi/zPFKFCusBKvVkgtzkd5kgzkG7u/
         YVLQnU+DWBsGQ9xSrJDFtwsrlTjQQZ5PDxwnm07E/lYquTgapkEE0Lm+rn+yw4ZWPB9G
         XUpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732544943; x=1733149743;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Ik+kdwvsn5sI13Sqvs0LoMAnkH/bBuVd5/sAq0CDmGU=;
        b=Pu5w1aAsEg21seTO5RMr//K/FvMR3XVXIerxflBG7luyTdDrpzuIVb0jCgQWITImpC
         yr+ltuEtvKlAb7jsWs9Bmf1hoviLnXwJrAS9Lhn93xFnheSoUzQmJHgEM21e4JWK5rFH
         ekl8zCoPxxI+Xqi5QvlYFLduCHIhNtyVAFKS+cUSqdmasXOhv0ACSBFURqHXuVYncHQm
         JU+nkoxJn6ZVjuiDPHlO7WTzhjQzyjfoa3UysBushnxwjcRvPXDrJHJJW9VkqpUbRkNY
         KBNIpzrf7vkaNjpwDpR15ijP9rYB3iEhYu8sW/DT7/rgAtycT/JwENrJ976fwCTn63ls
         LV0Q==
X-Gm-Message-State: AOJu0YxZt7kQIKGhg8RDANlbDvvs9S7QjBG/vyzveZWSiqBgbNE/2x4d
	Lg6IZ0b3evX7HpszupXTfd0M4ZJ2ET2wtHIGFVmZpr4oS+xHpSVxoZv0VIKD0OSm5Y2Lh+HTLjk
	=
X-Gm-Gg: ASbGncvb3uVYWAeSEtdmop8ecD229pcZYZ9t3wgcgGlDDT2DuC+vv53q+QDxiWM1REi
	z4RgQ33rEZgC38rJuF93yayTr3gHm5gwuydyAqy7mZScIbMPYt0Rk2qhjZbSwjB2Q6eZsxBoF5D
	Q2wmsBn+KK5NOkvJH4sHap30h5+gdfo2ueHrvqAClAW5LRxVsFd3dcX2TyFg6OGHGsqK62XHNGE
	jOVH7pSJDvHNHCIjahS0BlcrC3HpG/Cxv5ECozfKmi6WB/fN0FdJSKQJjKpj7TRhyTkB/t6RWZH
	1J3ssWntmvLQRNFyO3vr/H4aM4Z8lL7whzU=
X-Google-Smtp-Source: AGHT+IHUshLW1UH2BD/cE563Qw8MRdVLVfUzlOYqpiV9f+lqWs3Om2jqwXsYN5ldzFhj2qZ8FQFuJA==
X-Received: by 2002:a05:600c:4447:b0:42c:e0da:f15c with SMTP id 5b1f17b1804b1-433ce495857mr101725265e9.20.1732544941872;
        Mon, 25 Nov 2024 06:29:01 -0800 (PST)
Message-ID: <1c935aba-a185-43de-9806-6781b1a7fcf9@suse.com>
Date: Mon, 25 Nov 2024 15:29:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 4/7] x86: control memset() and memcpy() inlining
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: <e7314ac8-ed09-4da8-b915-09409b01fe77@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Stop the compiler from inlining non-trivial memset() and memcpy() (for
memset() see e.g. map_vcpu_info() or kimage_load_segments() for
examples). This way we even keep the compiler from using REP STOSQ /
REP MOVSQ when we'd prefer REP STOSB / REP MOVSB (when ERMS is
available).

With gcc10 this yields a modest .text size reduction (release build) of
around 2k.

Unfortunately these options aren't understood by the clang versions I
have readily available for testing with; I'm unaware of equivalents.

Note also that using cc-option-add is not an option here, or at least I
couldn't make things work with it (in case the option was not supported
by the compiler): The embedded comma in the option looks to be getting
in the way.

Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: Re-base.
v2: New.
---
The boundary values are of course up for discussion - I wasn't really
certain whether to use 16 or 32; I'd be less certain about using yet
larger values.

Similarly whether to permit the compiler to emit REP STOSQ / REP MOVSQ
for known size, properly aligned blocks is up for discussion.

--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -65,6 +65,9 @@ endif
 $(call cc-option-add,CFLAGS_stack_boundary,CC,-mpreferred-stack-boundary=3)
 export CFLAGS_stack_boundary
 
+CFLAGS += $(call cc-option,$(CC),-mmemcpy-strategy=unrolled_loop:16:noalign$(comma)libcall:-1:noalign)
+CFLAGS += $(call cc-option,$(CC),-mmemset-strategy=unrolled_loop:16:noalign$(comma)libcall:-1:noalign)
+
 ifeq ($(CONFIG_UBSAN),y)
 # Don't enable alignment sanitisation.  x86 has efficient unaligned accesses,
 # and various things (ACPI tables, hypercall pages, stubs, etc) are wont-fix.



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 14:29:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:29:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842648.1258333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFa5u-0003z6-Fw; Mon, 25 Nov 2024 14:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842648.1258333; Mon, 25 Nov 2024 14:29: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 1tFa5u-0003yz-D4; Mon, 25 Nov 2024 14:29:42 +0000
Received: by outflank-mailman (input) for mailman id 842648;
 Mon, 25 Nov 2024 14:29: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa5t-0002BZ-R1
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:29:41 +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 b3c14311-ab39-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 15:29:39 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3824709ee03so3233939f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:29: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-3825fb25d74sm10672707f8f.47.2024.11.25.06.29.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:29: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: b3c14311-ab39-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmMiLCJoZWxvIjoibWFpbC13cjEteDQyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImIzYzE0MzExLWFiMzktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ0OTc5LjA5ODQ1OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732544978; x=1733149778; 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=Bo1b/k71KJVmsVTKGv+xBBoI5XLp0eOf8O7yEx73nPg=;
        b=gIeUyoxZiSDAkarMXGors94wUDeoN2odcO7sZOsqCLCXBe7GcH/4pj8x1PfH3kI+yg
         s5CCQBVSk6lnue5IZZuvqB/j2aaYq7TySXb0DPoxisqJ6jAJONPuvcGFQVNty3h4lxWO
         wnLdnF8s+Qok+PVYaEc1i4meRyXawvCPpln1xEo8SkS4rGOCWsSfSx9ugR7Bq3EpbcoC
         oN2qOaTLpDhMWLqpSxtDu7nNsgWAgNT7kPQd6P1Ew5hm/fBWRoESJzWdoPN9bVPZ28Az
         qJ+stMyXm1vhTrbeR5WPAXRSb2cJ1UBO/a1uP6vH6N83JQFvxTfNv8Sp6ziYHK5/FQMs
         LPcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732544978; x=1733149778;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Bo1b/k71KJVmsVTKGv+xBBoI5XLp0eOf8O7yEx73nPg=;
        b=SaZKCjeP3S4E3mKgi3xXOf2BKezXatMYRRLnG/XPi2dJL4IJemf1qKnkiJKbF3vsry
         eDQN10isnCaKtczzyG/eewgWPDeZy77fRK4TPejpBfIAecv36LGiSBEG+8P+0D0RLchW
         w7uAnY1fmrojV8srD4RQPS4Rw7wgK8RdiCVp8d5O0wIfpoU1NUqjg0zIpOESmKK62yEK
         nWFVjd+kmxEEqco4tpcfjXO+EtY5Wv4n8F51blln4PqnSVmRpU3+Uvk540cZ7QvMRLt3
         j774g1rrKxXlCibth7wBMgT6E29zrqbnqU2mM45bPv09mdmKJRTWlk9YD98DUq9kBrc7
         sOiQ==
X-Gm-Message-State: AOJu0YzT1UCjWXSHj90jjTcAzObXQ3mRGcaRFkirNUQRGByJ4FSVU5+Y
	tKLJ7/wvgVPFo4DhXf6n3EbvpRtnhZ4D+79BrtRpmONl8vXjPcURnvPwbA+AlpmhCSO37jSst70
	=
X-Gm-Gg: ASbGncsawxuG4umbXFSOVjqk9HzMJ6snXU3AA50TLlFY+09i1l/CWmfAkzKuxH5ou5d
	PAdV3mPxUeZ+VQbOhtb3VakbXAxJFty8FDWv03+QSN6Bk6uYEKs+AkGWEPZPJSklv/ezr3+FeuJ
	cWS41xTEJQagZZx+QNCH/sQkcofxUrSjEG3UJvvpI15CoSnNI4tFJMHlukRpbf/AwnyPED/kLeV
	eO3pJevK9TNEbLCWp9PuDNA9t72+ZfBb1T2ffoQEFtBDzQOjomkraE6I0VZxPbT56xzT5X5KmRS
	fguTWrOZ7mg6lIaf9Fd9reMuoUXMDAOkp0M=
X-Google-Smtp-Source: AGHT+IGhPzzgGIa5DYDvO52WnZ8bAedlRMF9/46N7NpobcNH5E5vqf1siOpkme2EfIvBbgirB/+gYg==
X-Received: by 2002:a05:6000:156b:b0:382:2e9e:d68c with SMTP id ffacd0b85a97d-38260bcd9c3mr12875662f8f.38.1732544978522;
        Mon, 25 Nov 2024 06:29:38 -0800 (PST)
Message-ID: <250d879a-2e2e-4283-b943-0ae4835c55f0@suse.com>
Date: Mon, 25 Nov 2024 15:29:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 5/7] x86: introduce "hot" and "cold" page clearing
 functions
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: <e7314ac8-ed09-4da8-b915-09409b01fe77@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The present clear_page_sse2() is useful in case a page isn't going to
get touched again soon, or if we want to limit churn on the caches.
Amend it by alternatively using CLZERO, which has been found to be quite
a bit faster on Zen2 hardware at least. Note that to use CLZERO, we need
to know the cache line size, and hence a feature dependency on CLFLUSH
gets introduced.

For cases where latency is the most important aspect, or when it is
expected that sufficiently large parts of a page will get accessed again
soon after the clearing, introduce a "hot" alternative. Again use
alternatives patching to select between a "legacy" and an ERMS variant.

Don't switch any callers just yet - this will be the subject of
subsequent changes.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: Re-base.
v2: New.
---
Note: Ankur indicates that for ~L3-size or larger regions MOVNT/CLZERO
      is better even latency-wise.

--- a/xen/arch/x86/clear_page.S
+++ b/xen/arch/x86/clear_page.S
@@ -1,9 +1,9 @@
         .file __FILE__
 
-#include <xen/linkage.h>
-#include <asm/page.h>
+#include <xen/page-size.h>
+#include <asm/asm_defns.h>
 
-FUNC(clear_page_sse2)
+        .macro clear_page_sse2
         mov     $PAGE_SIZE/32, %ecx
         xor     %eax,%eax
 
@@ -17,4 +17,43 @@ FUNC(clear_page_sse2)
 
         sfence
         ret
-END(clear_page_sse2)
+        .endm
+
+        .macro clear_page_clzero
+        mov     %rdi, %rax
+        mov     $PAGE_SIZE/64, %ecx
+        .globl clear_page_clzero_post_count
+clear_page_clzero_post_count:
+
+0:      clzero
+        sub     $-64, %rax
+        .globl clear_page_clzero_post_neg_size
+clear_page_clzero_post_neg_size:
+        sub     $1, %ecx
+        jnz     0b
+
+        sfence
+        ret
+        .endm
+
+FUNC(clear_page_cold)
+        ALTERNATIVE clear_page_sse2, clear_page_clzero, X86_FEATURE_CLZERO
+END(clear_page_cold)
+
+        .macro clear_page_stosb
+        mov     $PAGE_SIZE, %ecx
+        xor     %eax,%eax
+        rep stosb
+        ret
+        .endm
+
+        .macro clear_page_stosq
+        mov     $PAGE_SIZE/8, %ecx
+        xor     %eax, %eax
+        rep stosq
+        ret
+        .endm
+
+FUNC(clear_page_hot)
+        ALTERNATIVE clear_page_stosq, clear_page_stosb, X86_FEATURE_ERMS
+END(clear_page_hot)
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -58,6 +58,9 @@ DEFINE_PER_CPU(bool, full_gdt_loaded);
 
 DEFINE_PER_CPU(uint32_t, pkrs);
 
+extern uint32_t clear_page_clzero_post_count[];
+extern int8_t clear_page_clzero_post_neg_size[];
+
 void __init setup_clear_cpu_cap(unsigned int cap)
 {
 	const uint32_t *dfs;
@@ -355,8 +358,38 @@ void __init early_cpu_init(bool verbose)
 
 	edx &= ~cleared_caps[FEATURESET_1d];
 	ecx &= ~cleared_caps[FEATURESET_1c];
-	if (edx & cpufeat_mask(X86_FEATURE_CLFLUSH))
-		c->x86_cache_alignment = ((ebx >> 8) & 0xff) * 8;
+	if (edx & cpufeat_mask(X86_FEATURE_CLFLUSH)) {
+		unsigned int size = ((ebx >> 8) & 0xff) * 8;
+
+		c->x86_cache_alignment = size;
+
+		/*
+		 * Patch in parameters of clear_page_cold()'s CLZERO
+		 * alternative. Note that for now we cap this at 128 bytes.
+		 * Larger cache line sizes would still be dealt with
+		 * correctly, but would cause redundant work done.
+		 */
+		if (size > 128)
+			size = 128;
+		if (size && !(size & (size - 1))) {
+			/*
+			 * Need to play some games to keep the compiler from
+			 * recognizing the negative array index as being out
+			 * of bounds. The labels in assembler code really are
+			 * _after_ the locations to be patched, so the
+			 * negative index is intentional.
+			 */
+			uint32_t *pcount = clear_page_clzero_post_count;
+			int8_t *neg_size = clear_page_clzero_post_neg_size;
+
+			OPTIMIZER_HIDE_VAR(pcount);
+			OPTIMIZER_HIDE_VAR(neg_size);
+			pcount[-1] = PAGE_SIZE / size;
+			neg_size[-1] = -size;
+		}
+		else
+			setup_clear_cpu_cap(X86_FEATURE_CLZERO);
+	}
 	/* Leaf 0x1 capabilities filled in early for Xen. */
 	c->x86_capability[FEATURESET_1d] = edx;
 	c->x86_capability[FEATURESET_1c] = ecx;
--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -20,6 +20,10 @@
     .byte 0x0f, 0x01, 0xdd
 .endm
 
+.macro clzero
+    .byte 0x0f, 0x01, 0xfc
+.endm
+
 /*
  * Call a noreturn function.  This could be JMP, but CALL results in a more
  * helpful backtrace.  BUG is to catch functions which do decide to return...
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -219,10 +219,11 @@ typedef struct { u64 pfn; } pagetable_t;
 #define pagetable_from_paddr(p) pagetable_from_pfn((p)>>PAGE_SHIFT)
 #define pagetable_null()        pagetable_from_pfn(0)
 
-void clear_page_sse2(void *pg);
+void clear_page_hot(void *pg);
+void clear_page_cold(void *pg);
 void copy_page_sse2(void *to, const void *from);
 
-#define clear_page(_p)      clear_page_sse2(_p)
+#define clear_page(_p)      clear_page_cold(_p)
 #define copy_page(_t, _f)   copy_page_sse2(_t, _f)
 
 /* Convert between Xen-heap virtual addresses and machine addresses. */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -212,6 +212,10 @@ def crunch_numbers(state):
         # the first place.
         APIC: [X2APIC, TSC_DEADLINE, EXTAPIC],
 
+        # The CLZERO insn requires a means to determine the cache line size,
+        # which is tied to the CLFLUSH insn.
+        CLFLUSH: [CLZERO],
+
         # AMD built MMXExtentions and 3DNow as extentions to MMX.
         MMX: [MMXEXT, _3DNOW],
 



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 14:32:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:32:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842662.1258342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFa8c-0005ir-PF; Mon, 25 Nov 2024 14:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842662.1258342; Mon, 25 Nov 2024 14: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 1tFa8c-0005ik-Mg; Mon, 25 Nov 2024 14:32:30 +0000
Received: by outflank-mailman (input) for mailman id 842662;
 Mon, 25 Nov 2024 14:32: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa8c-0005ie-7F
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:32: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 17451e63-ab3a-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 15:32:26 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-434a1833367so3718805e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:32: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
 5b1f17b1804b1-434932dbc7esm78932905e9.37.2024.11.25.06.32.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:32: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: 17451e63-ab3a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE3NDUxZTYzLWFiM2EtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ1MTQ2LjA3MDcwNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732545145; x=1733149945; 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=q3dfeu1CINxWaia0Kmp6+ReqAbfDxHiKGmjMUR9eVkU=;
        b=FCM2l/DQwvuoDW6aDoYeY26pvtoP7DsDgEMX+mryQn+7qu+H0U/kw3BdhhD6PmZRRx
         wUgkGvilthsZ/942t5/Vc6uHcsVewph66Iwg7/phKYGU5C9by82QivN8Jys/hOhzzQ95
         Cc/1Katoug3Kf2/wOfXMAj/qUzBdXUql8PU07fhjC8ZxHlWt8JW5muz8luAxVoKcDbW9
         qwEMhUCN9tOaXvk7hXILnVANRYU64HBtJ835s+VDK9xWZfIzzUoYMw/XhMG8TqTO4m3h
         ESYoze3egggDDiRQC7Zeq+7BdD6e+O8RGlFAd+Y+MaCDJv9bEgWSFi4t2z/Xuq8s3dcm
         M6TA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732545145; x=1733149945;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=q3dfeu1CINxWaia0Kmp6+ReqAbfDxHiKGmjMUR9eVkU=;
        b=iSpQHfn72owrKIfrgXQupTX/W8cBHSgaom2O/wglPxXOy/YpEPZdj/t3zJcd8oVTed
         cBSR5T3yZN3l301E7p91mB6WKkM6WG5aLjfbdpKTd1IKx3XkRagNnFkSxNUqzW1vl6yH
         qVlZ6OWPCyjzmphZiD1RVlCUO3xcocT3dtMfdQGdvV2DkJYphQ46AwCfJJMZVJRULRDd
         eT2dtrqUe+KtpfA4FQvAtiUrqxOfsQR/u4Mwop9Tpn9rhqQAKFpj06p0WYRyPqCE6EKW
         h6g/3CWpJKSdo/1HhsXzfBYDjKERjND1JfhKt8lgykIRSXrdEeV89bzfK5esdnc/VDf9
         iDRQ==
X-Gm-Message-State: AOJu0YxGp+6P4sqKtPhpwo1AGuwveIRmyCQnCp//Qyt9kiaFbmdHB05x
	YgUUBPycHR0/ugOQjsdg/LUqsZKM0hDTO3zmbdYMQasey52au6ETLmsJTCRtV+I7SLN9JLH3AIw
	=
X-Gm-Gg: ASbGnctgoddRQ/GmF6mkY83hHUu1ohHcfPaSxQIXtzlTHRi6NUW0lHwnW4fLEoNzH5i
	R6YGw40fBKRi3u7VDaBmHI2jfMS9aYlTBfNv4iQwttkRAK6h/2iD9a6+IksKVlwOV6GYXHkuLt/
	BTUmED+Smoj8skznGxCbGFJdueKfoovbmryCZmPeDqIE8sWmmOSKfPOzLJb91SuXPVy4Q+wVr5O
	IBqf52n3q1+EswlCUWSOop3qf5VyoaO4F8TFDONGUqcOGanMuqEPbJeWl4vQbs05cHbhykC6r+b
	TWa00ZQBTD42MKJSWetdI1Y1Fyo3I3bU+7M=
X-Google-Smtp-Source: AGHT+IGQ9LvePiJOOWXSL7hKIUlIZvi7wl/hKr+3yGcjstEyQOOan4WbQMaxLph2Hw0aOyX5GFq8wQ==
X-Received: by 2002:a05:600c:3b27:b0:431:9340:77e0 with SMTP id 5b1f17b1804b1-433cdb0b3b6mr104045795e9.9.1732545145422;
        Mon, 25 Nov 2024 06:32:25 -0800 (PST)
Message-ID: <49b0a003-3fae-4908-ba63-a1c764293755@suse.com>
Date: Mon, 25 Nov 2024 15:32:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 7/7] mm: allow page scrubbing routine(s) to be arch
 controlled
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, 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>, Bobby Eshleman
 <bobbyeshleman@gmail.com>, Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Especially when dealing with large amounts of memory, memset() may not
be very efficient; this can be bad enough that even for debug builds a
custom function is warranted. We additionally want to distinguish "hot"
and "cold" cases (with, as initial heuristic, "hot" being for any
allocations a domain does for itself, assuming that in all other cases
the page wouldn't be accessed [again] soon). The goal is for accesses
of "cold" pages to not disturb caches (albeit finding a good balance
between this and the higher latency looks to be difficult).

Keep the default fallback to clear_page_*() in common code; this may
want to be revisited down the road.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: Re-base.
v2: New.
---
The choice between hot and cold in scrub_one_page()'s callers is
certainly up for discussion / improvement.

--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -144,6 +144,12 @@ extern size_t dcache_line_bytes;
 
 #define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
 
+#define clear_page_hot  clear_page
+#define clear_page_cold clear_page
+
+#define scrub_page_hot(page) memset(page, SCRUB_BYTE_PATTERN, PAGE_SIZE)
+#define scrub_page_cold      scrub_page_hot
+
 static inline size_t read_dcache_line_bytes(void)
 {
     register_t ctr;
--- a/xen/arch/ppc/include/asm/page.h
+++ b/xen/arch/ppc/include/asm/page.h
@@ -190,6 +190,12 @@ static inline void invalidate_icache(voi
 #define clear_page(page) memset(page, 0, PAGE_SIZE)
 #define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
 
+#define clear_page_hot  clear_page
+#define clear_page_cold clear_page
+
+#define scrub_page_hot(page) memset(page, SCRUB_BYTE_PATTERN, PAGE_SIZE)
+#define scrub_page_cold      scrub_page_hot
+
 /* TODO: Flush the dcache for an entire page. */
 static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
 {
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -156,6 +156,12 @@ static inline void invalidate_icache(voi
 #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
 #define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
 
+#define clear_page_hot  clear_page
+#define clear_page_cold clear_page
+
+#define scrub_page_hot(page) memset(page, SCRUB_BYTE_PATTERN, PAGE_SIZE)
+#define scrub_page_cold      scrub_page_hot
+
 /* TODO: Flush the dcache for an entire page. */
 static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
 {
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -59,6 +59,7 @@ 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
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -226,6 +226,11 @@ void copy_page_sse2(void *to, const void
 #define clear_page(_p)      clear_page_cold(_p)
 #define copy_page(_t, _f)   copy_page_sse2(_t, _f)
 
+#ifdef CONFIG_DEBUG
+void scrub_page_hot(void *);
+void scrub_page_cold(void *);
+#endif
+
 /* Convert between Xen-heap virtual addresses and machine addresses. */
 #define __pa(x)             (virt_to_maddr(x))
 #define __va(x)             (maddr_to_virt(x))
--- /dev/null
+++ b/xen/arch/x86/scrub_page.S
@@ -0,0 +1,39 @@
+        .file __FILE__
+
+#include <asm/asm_defns.h>
+#include <xen/page-size.h>
+#include <xen/scrub.h>
+
+FUNC(scrub_page_cold)
+        mov     $PAGE_SIZE/32, %ecx
+        mov     $SCRUB_PATTERN, %rax
+
+0:      movnti  %rax,   (%rdi)
+        movnti  %rax,  8(%rdi)
+        movnti  %rax, 16(%rdi)
+        movnti  %rax, 24(%rdi)
+        add     $32, %rdi
+        sub     $1, %ecx
+        jnz     0b
+
+        sfence
+        ret
+END(scrub_page_cold)
+
+        .macro scrub_page_stosb
+        mov     $PAGE_SIZE, %ecx
+        mov     $SCRUB_BYTE_PATTERN, %eax
+        rep stosb
+        ret
+        .endm
+
+        .macro scrub_page_stosq
+        mov     $PAGE_SIZE/8, %ecx
+        mov     $SCRUB_PATTERN, %rax
+        rep stosq
+        ret
+        .endm
+
+FUNC(scrub_page_hot)
+        ALTERNATIVE scrub_page_stosq, scrub_page_stosb, X86_FEATURE_ERMS
+END(scrub_page_hot)
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -134,6 +134,7 @@
 #include <xen/pfn.h>
 #include <xen/types.h>
 #include <xen/sched.h>
+#include <xen/scrub.h>
 #include <xen/sections.h>
 #include <xen/softirq.h>
 #include <xen/spinlock.h>
@@ -767,27 +768,31 @@ static void page_list_add_scrub(struct p
         page_list_add(pg, &heap(node, zone, order));
 }
 
-/* SCRUB_PATTERN needs to be a repeating series of bytes. */
-#ifndef NDEBUG
-#define SCRUB_PATTERN        0xc2c2c2c2c2c2c2c2ULL
-#else
-#define SCRUB_PATTERN        0ULL
+/*
+ * While in debug builds we want callers to avoid relying on allocations
+ * returning zeroed pages, for a production build, clear_page_*() is the
+ * fastest way to scrub.
+ */
+#ifndef CONFIG_DEBUG
+# undef  scrub_page_hot
+# define scrub_page_hot clear_page_hot
+# undef  scrub_page_cold
+# define scrub_page_cold clear_page_cold
 #endif
-#define SCRUB_BYTE_PATTERN   (SCRUB_PATTERN & 0xff)
 
-static void scrub_one_page(const struct page_info *pg)
+static void scrub_one_page(const struct page_info *pg, bool cold)
 {
+    void *ptr;
+
     if ( unlikely(pg->count_info & PGC_broken) )
         return;
 
-#ifndef NDEBUG
-    /* Avoid callers relying on allocations returning zeroed pages. */
-    unmap_domain_page(memset(__map_domain_page(pg),
-                             SCRUB_BYTE_PATTERN, PAGE_SIZE));
-#else
-    /* For a production build, clear_page() is the fastest way to scrub. */
-    clear_domain_page(_mfn(page_to_mfn(pg)));
-#endif
+    ptr = __map_domain_page(pg);
+    if ( cold )
+        scrub_page_cold(ptr);
+    else
+        scrub_page_hot(ptr);
+    unmap_domain_page(ptr);
 }
 
 static void poison_one_page(struct page_info *pg)
@@ -1067,12 +1072,14 @@ static struct page_info *alloc_heap_page
     if ( first_dirty != INVALID_DIRTY_IDX ||
          (scrub_debug && !(memflags & MEMF_no_scrub)) )
     {
+        bool cold = d && d != current->domain;
+
         for ( i = 0; i < (1U << order); i++ )
         {
             if ( test_and_clear_bit(_PGC_need_scrub, &pg[i].count_info) )
             {
                 if ( !(memflags & MEMF_no_scrub) )
-                    scrub_one_page(&pg[i]);
+                    scrub_one_page(&pg[i], cold);
 
                 dirty_cnt++;
             }
@@ -1337,7 +1344,7 @@ bool scrub_free_pages(void)
                 {
                     if ( test_bit(_PGC_need_scrub, &pg[i].count_info) )
                     {
-                        scrub_one_page(&pg[i]);
+                        scrub_one_page(&pg[i], true);
                         /*
                          * We can modify count_info without holding heap
                          * lock since we effectively locked this buddy by
@@ -2042,7 +2049,7 @@ static void __init cf_check smp_scrub_he
         if ( !mfn_valid(_mfn(mfn)) || !page_state_is(pg, free) )
             continue;
 
-        scrub_one_page(pg);
+        scrub_one_page(pg, true);
     }
 }
 
@@ -2735,7 +2742,7 @@ void unprepare_staticmem_pages(struct pa
         if ( need_scrub )
         {
             /* TODO: asynchronous scrubbing for pages of static memory. */
-            scrub_one_page(pg);
+            scrub_one_page(pg, true);
         }
 
         pg[i].count_info |= PGC_static;
--- /dev/null
+++ b/xen/include/xen/scrub.h
@@ -0,0 +1,24 @@
+#ifndef __XEN_SCRUB_H__
+#define __XEN_SCRUB_H__
+
+#include <xen/const.h>
+
+/* SCRUB_PATTERN needs to be a repeating series of bytes. */
+#ifdef CONFIG_DEBUG
+# define SCRUB_PATTERN       _AC(0xc2c2c2c2c2c2c2c2,ULL)
+#else
+# define SCRUB_PATTERN       _AC(0,ULL)
+#endif
+#define SCRUB_BYTE_PATTERN   (SCRUB_PATTERN & 0xff)
+
+#endif /* __XEN_SCRUB_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 Mon Nov 25 14:40:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 14:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842686.1258352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaGc-0007mU-J5; Mon, 25 Nov 2024 14:40:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842686.1258352; Mon, 25 Nov 2024 14:40: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 1tFaGc-0007mN-GX; Mon, 25 Nov 2024 14:40:46 +0000
Received: by outflank-mailman (input) for mailman id 842686;
 Mon, 25 Nov 2024 14:40: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFa6h-0002BZ-Vu
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 14:30:31 +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 d1efdd90-ab39-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 15:30:29 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-382325b0508so2975238f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 06:30: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-3825fad5fa2sm10803070f8f.1.2024.11.25.06.30.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 06:30: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: d1efdd90-ab39-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmQiLCJoZWxvIjoibWFpbC13cjEteDQyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQxZWZkZDkwLWFiMzktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ1MDI5LjcyNjY2NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732545029; x=1733149829; 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=1/WL1L2329FGbKiM5mFrIl564uR7QFJdztoThD/xDoA=;
        b=Y384DTsQi02MUHEf4d1EZYGCGrNpdsrGfObIdtfBmtDty/DxgLYCLABCdlEi8X6df8
         DX4OfaqfD6GuPbbpzZFGtO+0X4YhJhHPH4p6MO5fs80PAaIwN2INYtA2lYc9yC1bXDmh
         gluQDM5DpThjHsF7FplvmBA2Ht2dmjulkWENi/2PzKPSEKJHHgPJEpPei4uxrkMVl3ey
         10SQEdtGij/Xv63W4E2GOEQuyfRwSU/lo5dbZaIsL9kJLIfFu9V5cc73RDMVyIO/ggw2
         HteAZFPDTDsn/a5q/GoXwlIc/jSMVO0E0i/mOUm6pTR5wiqU7i4zI6TvRxDJnymLQwQI
         Ockw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732545029; x=1733149829;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=1/WL1L2329FGbKiM5mFrIl564uR7QFJdztoThD/xDoA=;
        b=KMwYGyU79mCaLXBZZgxp+rwHxkO465GhbNO0ML1ySYG1lpuyW2FHyx0JpPpP+zzq13
         k8YrrwwhtOP5yNASukjamfefWHP9QCvKveAD8TnK++NkfC4Gn0HrGfU4Dj9Ycnh+ZZPe
         i2SZ19j1wpH4zoGE8sTOPuCQMakTbgKPwC9BOPKcOB/88m/a3Y//bscNm45j+FteTzP1
         su03Xj6AaWdVyLj9WOPtc4sg66bvp/apW5KCgmnZSRQJfrPRsWpTsUZ/APBYl92LXmXS
         AkUQZG62hAWS/wYB9V9vnS/MVyKAy9a5ZC6zVpqXr+VCvvGiNXg1FLocaRZxwX8BJSZg
         wsIw==
X-Gm-Message-State: AOJu0YxxTXlqFp+Ae9Jmq5SKYiqPeRKEZ00nE2h9hxMqDXlPBiDnCJIF
	D07s5j5bzy6ayd16j2K8XJ+4bBVt49HmRY7wokMdMVsLMU0nXctBXWsiS/jWredoNWJuBAdrb4o
	=
X-Gm-Gg: ASbGnctxxKpLiFiKCJRm8rz9KsBq22X8GbmOHC2R53giMgvE4tsU/29YfbqOc4OqELS
	Dozsx4jup5Csm97gPG8Z08BncjQSZhyZCsecmKj9boWXMWotYl/qpFYyuJ1GcXmwFGDOnm0gwH2
	hTsPl3lyPt/fm6IP0Sjt19X+y/ip7Tc+E3YoT2KkoLZGtlktzPnAtTRTOYjfrHxcPpLXh2gC7vn
	utl/gjp//Z89+6TB1nNOZNp77gX2LH5Op/6/FhK2QNUyO4z/MTWjnJq3+Vpl4q307lZvS9buukv
	S/tIdtLlX9Kzvnz3u1Jep5LVVssVRmtzfCU=
X-Google-Smtp-Source: AGHT+IEP5xw4wZLAanWgtdLiNIYvsXKiTQDyHGAK04XDdEBs+h/JexWpmUCaXWJK0giEUVFMt7t1eQ==
X-Received: by 2002:a5d:59a2:0:b0:382:516e:271b with SMTP id ffacd0b85a97d-38260bfada9mr8904700f8f.58.1732545029096;
        Mon, 25 Nov 2024 06:30:29 -0800 (PST)
Message-ID: <f0307505-8260-4955-86f7-95bc6f31669f@suse.com>
Date: Mon, 25 Nov 2024 15:30:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v3 6/7] page-alloc: make scrub_one_page() static
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Before starting to alter its properties, restrict the function's
visibility. The only external user is mem-paging, which we can
accommodate by different means.

Also move the function up in its source file, so we won't need to
forward-declare it. Constify its parameter at the same time.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: Re-base.
v2: New.

--- a/xen/arch/x86/mm/mem_paging.c
+++ b/xen/arch/x86/mm/mem_paging.c
@@ -304,9 +304,6 @@ static int evict(struct domain *d, gfn_t
     ret = p2m_set_entry(p2m, gfn, INVALID_MFN, PAGE_ORDER_4K,
                         p2m_ram_paged, a);
 
-    /* Clear content before returning the page to Xen */
-    scrub_one_page(page);
-
     /* Track number of paged gfns */
     atomic_inc(&d->paged_pages);
 
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -137,6 +137,7 @@
 #include <xen/sections.h>
 #include <xen/softirq.h>
 #include <xen/spinlock.h>
+#include <xen/vm_event.h>
 
 #include <asm/flushtlb.h>
 #include <asm/page.h>
@@ -774,6 +775,21 @@ static void page_list_add_scrub(struct p
 #endif
 #define SCRUB_BYTE_PATTERN   (SCRUB_PATTERN & 0xff)
 
+static void scrub_one_page(const struct page_info *pg)
+{
+    if ( unlikely(pg->count_info & PGC_broken) )
+        return;
+
+#ifndef NDEBUG
+    /* Avoid callers relying on allocations returning zeroed pages. */
+    unmap_domain_page(memset(__map_domain_page(pg),
+                             SCRUB_BYTE_PATTERN, PAGE_SIZE));
+#else
+    /* For a production build, clear_page() is the fastest way to scrub. */
+    clear_domain_page(_mfn(page_to_mfn(pg)));
+#endif
+}
+
 static void poison_one_page(struct page_info *pg)
 {
 #ifdef CONFIG_SCRUB_DEBUG
@@ -2548,10 +2564,12 @@ void free_domheap_pages(struct page_info
             /*
              * Normally we expect a domain to clear pages before freeing them,
              * if it cares about the secrecy of their contents. However, after
-             * a domain has died we assume responsibility for erasure. We do
-             * scrub regardless if option scrub_domheap is set.
+             * a domain has died or if it has mem-paging enabled we assume
+             * responsibility for erasure. We do scrub regardless if option
+             * scrub_domheap is set.
              */
-            scrub = d->is_dying || scrub_debug || opt_scrub_domheap;
+            scrub = d->is_dying || mem_paging_enabled(d) ||
+                    scrub_debug || opt_scrub_domheap;
         }
         else
         {
@@ -2635,22 +2653,6 @@ static __init int cf_check pagealloc_key
 }
 __initcall(pagealloc_keyhandler_init);
 
-
-void scrub_one_page(struct page_info *pg)
-{
-    if ( unlikely(pg->count_info & PGC_broken) )
-        return;
-
-#ifndef NDEBUG
-    /* Avoid callers relying on allocations returning zeroed pages. */
-    unmap_domain_page(memset(__map_domain_page(pg),
-                             SCRUB_BYTE_PATTERN, PAGE_SIZE));
-#else
-    /* For a production build, clear_page() is the fastest way to scrub. */
-    clear_domain_page(_mfn(page_to_mfn(pg)));
-#endif
-}
-
 static void cf_check dump_heap(unsigned char key)
 {
     s_time_t      now = NOW();
--- a/xen/arch/x86/include/asm/mem_paging.h
+++ b/xen/arch/x86/include/asm/mem_paging.h
@@ -12,12 +12,6 @@
 
 int mem_paging_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_paging_op_t) arg);
 
-#ifdef CONFIG_MEM_PAGING
-# define mem_paging_enabled(d) vm_event_check_ring((d)->vm_event_paging)
-#else
-# define mem_paging_enabled(d) false
-#endif
-
 #endif /*__ASM_X86_MEM_PAGING_H__ */
 
 /*
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -532,8 +532,6 @@ static inline unsigned int get_order_fro
     return order;
 }
 
-void scrub_one_page(struct page_info *pg);
-
 #ifndef arch_free_heap_page
 #define arch_free_heap_page(d, pg) \
     page_list_del(pg, page_to_list(d, pg))
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1203,6 +1203,12 @@ static always_inline bool is_iommu_enabl
     return evaluate_nospec(d->options & XEN_DOMCTL_CDF_iommu);
 }
 
+#ifdef CONFIG_MEM_PAGING
+# define mem_paging_enabled(d) vm_event_check_ring((d)->vm_event_paging)
+#else
+# define mem_paging_enabled(d) false
+#endif
+
 extern bool sched_smt_power_savings;
 extern bool sched_disable_smt_switching;
 



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:03:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:03:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842697.1258363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFacH-0002Zz-BN; Mon, 25 Nov 2024 15:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842697.1258363; Mon, 25 Nov 2024 15:03: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 1tFacH-0002Zs-8F; Mon, 25 Nov 2024 15:03:09 +0000
Received: by outflank-mailman (input) for mailman id 842697;
 Mon, 25 Nov 2024 15:03: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=MivI=SU=bounce.vates.tech=bounce-md_30504962.674491a5.v1-376656317dec4576900ce02877570898@srs-se1.protection.inumbo.net>)
 id 1tFacF-0002Zm-33
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:03:07 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5dcbe779-ab3e-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:03:03 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xxpq92gPCzG0CQpF
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 15:03:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 376656317dec4576900ce02877570898; Mon, 25 Nov 2024 15:03: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: 5dcbe779-ab3e-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjVkY2JlNzc5LWFiM2UtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ2OTgzLjQ2NDAzNCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDQ5MWE1LnYxLTM3NjY1NjMxN2RlYzQ1NzY5MDBjZTAyODc3NTcwODk4QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732546981; x=1732807481;
	bh=fMlKSa8F3exCFtR5iKzZxxZqR3FfSoPfF9ErHR6aFmc=;
	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=O6LlnDPvuRbnjBGC7Y+HLpgCgL2I+ZioLZtEOMVRLxgAM7Qjb5T8gZbwZAH23fRbx
	 AfDeRFu9SWQdJ5IC4buDkXu2cPB4KeJSv24Yjm1ZiiOrRM/p4GemB74EUV2Ct0jPqO
	 fJiK2ej3TkEL+kw0rgeTdGCdcl6mC9rrtKbo79Eg1JqhcSyZXQ8BiIFzSwL32l8oCl
	 K/3cpD3+31YX1RCmJ6ukbzRfZ2NbebCuvEWHDSMJkDPrkI9zpHfu30s6X3tYqFakBj
	 a5uHhZRBQi85hnjwqBINpExbBbDMzcgibWphb59uNPSFeLbpmbEKugq00Z0pwWzLpZ
	 r7X7N1ejg31dg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732546981; x=1732807481; i=teddy.astie@vates.tech;
	bh=fMlKSa8F3exCFtR5iKzZxxZqR3FfSoPfF9ErHR6aFmc=;
	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=Yz7vk0F+skvy0ziL77Z9bJhe7qlFDT6a1K9CElq6ycLjTqIcPZ74EZuANgr3ctMkH
	 RDq1sSqTp4ArEuZB/QCNUqmP1ytB/hMab1Wy4ud56woIwkrWwnz3qViBxCXMJBn71/
	 V8gpqfzl2Eq93H3RuQ64ES5t3r+BPAeAIExKMysAYIFCDpwq5J2FNMaM5JmzTjAF1a
	 G375u9YNCdswx8wSUgafib9JRPdpWvbeU+ZbfHKLyMOY3nKDchhm8L10t0qZJctw1K
	 WFb8pV1R5NWEAAb0d9dzuQf6vWqXYChqO4YzVYNB+/Jt2VPOL5tOpLGypRc/fUPNKA
	 AJznC+w7bnZrw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2007/25]=20tools/xenbindgen:=20Add=20support=20for=20structs=20in=20TOML=20specs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732546980388
Message-Id: <d98f8aa1-b0ba-4fb5-8c5d-ab18cc40fb01@vates.tech>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson" <yann.dirson@vates.tech>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com> <20241115115200.2824-8-alejandro.vallejo@cloud.com>
In-Reply-To: <20241115115200.2824-8-alejandro.vallejo@cloud.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.376656317dec4576900ce02877570898?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241125:md
Date: Mon, 25 Nov 2024 15:03:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi,

> +/// An IDL type. A type may be a primitive integer, a pointer to an IDL type,
> +/// an array of IDL types or a struct composed of IDL types. Every integer must
> +/// be aligned to its size.
> +///
> +/// FIXME: This enumerated type is recovered as-is from the `typ` field in the
> +/// TOML files. Ideally, that representation should be more ergonomic and the
> +/// parser instructed to deal with it.
> +#[allow(clippy::missing_docs_in_private_items)]
> +#[derive(Debug, serde::Deserialize, PartialEq)]
> +#[serde(rename_all = "lowercase", tag = "tag", content = "args")]
> +pub enum Typ {
> +    Struct(String),
> +    U8,
> +    U16,
> +    U32,
> +    U64,
> +    I8,
> +    I16,
> +    I32,
> +    I64,
> +    Ptr(Box<Typ>),
> +    Array(Box<Typ>, usize),
> +}
> +

I think we can name it Type (it doesn't clash with a keyword actually)

> +
> +/// Deserialized form of a field within a hypercall struct (see [`StructDef`])
> +#[derive(Debug, serde::Deserialize)]
> +pub struct FieldDef {
> +    /// Name of the field
> +    pub name: String,
> +    /// Description of what the field is for. This string is added as a comment
> +    /// on top of the autogenerated field.
> +    pub description: String,
> +    /// Type of the field.
> +    pub typ: Typ,
> +}
> +

regarding this "typ" name, we can either use the "raw identifier" syntax 
with r#type to have it "technically" named 'type' or use
#[serde(rename = "type")]
to have it named "type" during deserialization even if the field is 
still "typ"

Cheers
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 Nov 25 15:05:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842704.1258373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaeJ-00037a-Mz; Mon, 25 Nov 2024 15:05:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842704.1258373; Mon, 25 Nov 2024 15:05: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 1tFaeJ-00037T-Jn; Mon, 25 Nov 2024 15:05:15 +0000
Received: by outflank-mailman (input) for mailman id 842704;
 Mon, 25 Nov 2024 15:05: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFaeH-00037N-IF
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:05:13 +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 a9b943ea-ab3e-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:05:09 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5d01db666ceso4316658a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07: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
 a640c23a62f3a-aa50b28dd59sm472346266b.7.2024.11.25.07.05.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:05: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: a9b943ea-ab3e-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE5Yjk0M2VhLWFiM2UtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3MTA5LjcxNzc0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547109; x=1733151909; 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=AHQrPgDLFge4x/7fwo43s+2wgrV0HGSrmV/YErP3WjU=;
        b=RbAjeyVOBxpMh91jFcpqBFrSg0/CaArA9+IHPejfWmEaxenpGEOaOlXW58R6HfMeqZ
         twbSIWQlqUFeUSMVSH6dadMJwtRgRtWtYePBTfSeTeBc/NRp1FkLUXdWCBKfWGaENVDE
         +K7zPNPf4WGdNXaAH/jNT6bdZ+MKMgZ6kOCRNhiWTRyaw/KeoKYCM63Z3DGmOIiXdSIc
         YOew0N2ar+iufi0qNgNFQumP7Hhy82dPkRCCenzg/T2jRkhbsbUrhc63d/jnthb2Iws+
         uXefWZ+3YTEr/bdo3Sd59PnxdUAIscSTBhPk5FnWa12cNEQGHECwsT0TIzv1cy3Anl/B
         qdew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547109; x=1733151909;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AHQrPgDLFge4x/7fwo43s+2wgrV0HGSrmV/YErP3WjU=;
        b=R1YZVp0M4qDqQZXhgjjzVcP5nlL2gHUv4YA+rHInYh15bzvIzvT8BkPuHux0G/7EZC
         dFK2JZ+vfReFCvWWgyNAgpzjOd6PwWI5xwY+LbkjggUA7YMPqqzZalMYIX9IGFsRxWnv
         TYe8NC5IEhQxgzayHm27n3We4cviqd2b1XlzGn+KuLuBT/o+QA5tJ1BA82w/y5Cr3Wqi
         /7KuP7w1AakuG/mKhcaKl6A/xMo7/OChKwdXCvSpE1ig/+8xHIx10A9OjcnW1niSZqeo
         0qamfqBRnptri7dLe4qLJ+ZQ8tQKRxKM8f9RIHPV7bG+DSUX7FC/avmL/fDybyO1kgA0
         GjoQ==
X-Gm-Message-State: AOJu0Ywm2X/NQWtQrjwTpORT66Qoj7NisSZYrUIItR6Ewu8cyAC7vUHQ
	PeUGQVqYSDX8m7sX85u4DRQg0W5/j98dzvq+/nsakf0lDGCygEQASjw9vku87OjqxR5Lb3LFiHs
	=
X-Gm-Gg: ASbGnctqxoHXNwC9v6aA0jp1Nn/hGMxtoK1SYO8sHPb4W7LY7vlNba+sb4mEegyDBhd
	HftQkYybNf+fIiKXI1bXdIR1xVKiHkJq5HbuAoebvc+M2dMAM65wxQaCuQcMQeJZgZIg3g5Lxxk
	eJ5BeMD1vFOmz+n6Ser5r/u8UZIINTEGopKQjzSO2LEg82dfQNWNBIrrIJhFsD1hCG1aWAqShPc
	RTbNKSUaVbglWaUgpuo9za0JV1WJFRUNOL4Jit3HAjOGe2ymZQVD5IyOisL1b4K1fnJ98Anwm/V
	uIEG/zZkQYdLdJX5TYqwwKDx9zUk6WYLr9I=
X-Google-Smtp-Source: AGHT+IGTar6Ny5us3jHGxZ+Heo78lSJGMNWVhJ1a6Ju/vnosPCBCHyjAoBbv28tGy7LSgOCSSoF/Fw==
X-Received: by 2002:a17:906:1bb1:b0:aa5:4ca6:11b1 with SMTP id a640c23a62f3a-aa54ca61205mr426941566b.52.1732547105074;
        Mon, 25 Nov 2024 07:05:05 -0800 (PST)
Message-ID: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Date: Mon, 25 Nov 2024 16:05:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v7 0/7] x86emul: misc additions
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: x86emul: support LKGS
2: x86emul+VMX: support {RD,WR}MSRLIST
3: x86emul: support USER_MSR instructions
4: x86/cpu-policy: re-arrange no-VMX logic
5: VMX: support USER_MSR
6: x86emul: support MSR_IMM instructions
7: x86emul: support non-SIMD MOVRS

Due to lack of specification the VMX counterpart for MSR_IMM is still
missing (unlike USER_MSR).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:06:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:06:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842710.1258382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaf8-0003d9-V1; Mon, 25 Nov 2024 15:06:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842710.1258382; Mon, 25 Nov 2024 15:06: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 1tFaf8-0003d2-SQ; Mon, 25 Nov 2024 15:06:06 +0000
Received: by outflank-mailman (input) for mailman id 842710;
 Mon, 25 Nov 2024 15:06: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFaf8-0003aM-9p
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:06:06 +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 c9bede5e-ab3e-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:06:03 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-aa545dc7105so243793566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:06: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
 a640c23a62f3a-aa50b2f045asm469719466b.53.2024.11.25.07.06.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:06: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: c9bede5e-ab3e-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5YmVkZTVlLWFiM2UtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3MTYzLjQ1MDU5Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547163; x=1733151963; 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=yqkCIJ2tVmJv728wU5gdz5zznvh4/8W2wXL6EHceXqU=;
        b=GDftf+MmeG/dgWfHmzhxgJ7COpD8oMSh+RvPDhLNSOmVjEA9zZdh/2qVweV7Uo4vyE
         YeWfN/u4PYux299bMv5asrFJG7fkomWZFRYw4m9yko4OX6tu4Kmfo14MHNsoTKGzgUmw
         sXF4L5Ze8bkmtxA+ibphuR/V71UCcuo75Mhp/3SQihkBWdP2Yi7t9yGxU/cPojTI06WS
         R+32HFgYKAnQuovGkfGgS0wvoaxKV6QNAx2A1M5csO3xq7MMHOHsBXaKL49ND+IJ4nnQ
         7NVCesradE9gxfl5A2IE3qe2DU838S6OsTS9y+7cj17SYC5bvavVZK+46fBgXhJk6eAL
         7mYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547163; x=1733151963;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=yqkCIJ2tVmJv728wU5gdz5zznvh4/8W2wXL6EHceXqU=;
        b=R4/cWR7VNhAq/Qd9uA/HFG9UTpLIWmd+n8xUDZ/K/biOQCEEks/ZRFjR25GNbLIX1o
         yf5/deNhYvTSQOkP68pz7uB0mFPlJNSMEIL7c7TXXF/agg+M3dWO73+nIVqUd1Jh2GOL
         mf6W+8oRBNgxW93phEvq0wqIz93q3xPN6H180lBE0yWA2ZTiEOeccf03d6sgId8lly5Q
         geMmGeQ30kdDuPUcvJprRDfNx4Gs6eupjxeB5lC6rASBMUZrts2B1VbjrKHtK9C2kaLV
         qi3pl/5GeGzUKYqN0fhPCi/RGOM+gkpn9jG+Iq5g+lS8h8zQUb5UcXs1XuwORZaz7Wvq
         IS/A==
X-Gm-Message-State: AOJu0YzuUdNyV3dJ3NRgjIa20iKDmqX8vaY6b+cnO+n8GQIRmSJ3NWKn
	UuQTIwoW3OTPv06LTPfAvrNG7sMxwSmC37Z+RE+7qRgTbJ1CDhVPkrSrQ0jQ2p1SXjjj44fhW60
	=
X-Gm-Gg: ASbGncvo7g0ewGh2cftMKeKktzEyQL8iVCUBzsAiBlktoWcawdRvymxj9myaEqLYXxf
	J60pOe09KUOtouUSboh051KYHTFCc8wo/4yy8XOceTdTOlDa/5YTFpvjD4G4G2UUETOt6EvcPWg
	0Wjo/sVVQ3VzcorY1TMAveCdDVF5WT0Is/OoicQzLbab5TZluF9i+K8YkBe+e5W8qPLRTD9s3qX
	qiuLE3QAQfbEk/tD+TGL4z0hD3BT3vxVp4ZZGXujzp3Ek+ajTzHwFuEpaN4Zt8X5GE5qIaQ754l
	nzwDdhFuVoJdKCouPVdJJGaG+wHBXh/NkNs=
X-Google-Smtp-Source: AGHT+IHeQXIDvY2DZDnTK8x+no1UFPpn2IpLx4376TCdBzhJCJZ15QjPuhcRxIvZruQ+mOzCvwpAGA==
X-Received: by 2002:a17:906:4c2:b0:aa5:da4:3c0a with SMTP id a640c23a62f3a-aa50da43c96mr857035166b.59.1732547162453;
        Mon, 25 Nov 2024 07:06:02 -0800 (PST)
Message-ID: <ba406332-b9d8-4ee3-8d07-4777d62f199f@suse.com>
Date: Mon, 25 Nov 2024 16:06:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v7 1/7] x86emul: support LKGS
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Provide support for this insn, which is a prereq to FRED. CPUID-wise
introduce both its, FRED's, and the NMI_SRC bit at this occasion, thus
allowing to also express the dependency right away.

While adding a testcase, also add a SWAPGS one. In order to not affect
the behavior of pre-existing tests, install write_{segment,msr} hooks
only transiently.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Instead of ->read_segment() we could of course also use ->read_msr() to
fetch the original GS base. I don't think I can see a clear advantage of
either approach; the way it's done it matches how we handle SWAPGS.

For PV save_segments() would need adjustment, but the insn being
restricted to ring 0 means PV guests can't use it anyway (unless we
wanted to emulate it as another privileged insn).
---
v6: Use MSR constants in test harness. S->s in cpufeatureset.h. Add
    NMI_SRC feature bits. Re-base.
v5: Re-base.
v3: Add dependency on LM. Re-base.
v2: Use X86_EXC_*. Add comments.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -326,6 +326,7 @@ static const struct {
     { { 0x00, 0x18 }, { 2, 2 }, T, R }, /* ltr */
     { { 0x00, 0x20 }, { 2, 2 }, T, R }, /* verr */
     { { 0x00, 0x28 }, { 2, 2 }, T, R }, /* verw */
+    { { 0x00, 0x30 }, { 0, 2 }, T, R, pfx_f2 }, /* lkgs */
     { { 0x01, 0x00 }, { 2, 2 }, F, W }, /* sgdt */
     { { 0x01, 0x08 }, { 2, 2 }, F, W }, /* sidt */
     { { 0x01, 0x10 }, { 2, 2 }, F, R }, /* lgdt */
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -672,6 +672,10 @@ static int blk(
     return x86_emul_blk((void *)offset, p_data, bytes, eflags, state, ctxt);
 }
 
+#ifdef __x86_64__
+static unsigned long gs_base, gs_base_shadow;
+#endif
+
 static int read_segment(
     enum x86_segment seg,
     struct segment_register *reg,
@@ -681,8 +685,30 @@ static int read_segment(
         return X86EMUL_UNHANDLEABLE;
     memset(reg, 0, sizeof(*reg));
     reg->p = 1;
+
+#ifdef __x86_64__
+    if ( seg == x86_seg_gs )
+        reg->base = gs_base;
+#endif
+
+    return X86EMUL_OKAY;
+}
+
+#ifdef __x86_64__
+static int write_segment(
+    enum x86_segment seg,
+    const struct segment_register *reg,
+    struct x86_emulate_ctxt *ctxt)
+{
+    if ( !is_x86_user_segment(seg) )
+        return X86EMUL_UNHANDLEABLE;
+
+    if ( seg == x86_seg_gs )
+        gs_base = reg->base;
+
     return X86EMUL_OKAY;
 }
+#endif
 
 static int read_msr(
     unsigned int reg,
@@ -695,6 +721,20 @@ static int read_msr(
         *val = ctxt->addr_size > 32 ? EFER_LME | EFER_LMA : 0;
         return X86EMUL_OKAY;
 
+#ifdef __x86_64__
+    case MSR_GS_BASE:
+        if ( ctxt->addr_size < 64 )
+            break;
+        *val = gs_base;
+        return X86EMUL_OKAY;
+
+    case MSR_SHADOW_GS_BASE:
+        if ( ctxt->addr_size < 64 )
+            break;
+        *val = gs_base_shadow;
+        return X86EMUL_OKAY;
+#endif
+
     case MSR_TSC_AUX:
 #define TSC_AUX_VALUE 0xCACACACA
         *val = TSC_AUX_VALUE;
@@ -704,6 +744,31 @@ static int read_msr(
     return X86EMUL_UNHANDLEABLE;
 }
 
+#ifdef __x86_64__
+static int write_msr(
+    unsigned int reg,
+    uint64_t val,
+    struct x86_emulate_ctxt *ctxt)
+{
+    switch ( reg )
+    {
+    case MSR_GS_BASE:
+        if ( ctxt->addr_size < 64 || !is_canonical_address(val) )
+            break;
+        gs_base = val;
+        return X86EMUL_OKAY;
+
+    case MSR_SHADOW_GS_BASE:
+        if ( ctxt->addr_size < 64 || !is_canonical_address(val) )
+            break;
+        gs_base_shadow = val;
+        return X86EMUL_OKAY;
+    }
+
+    return X86EMUL_UNHANDLEABLE;
+}
+#endif
+
 #define INVPCID_ADDR 0x12345678
 #define INVPCID_PCID 0x123
 
@@ -1338,6 +1403,41 @@ int main(int argc, char **argv)
         printf("%u bytes read - ", bytes_read);
         goto fail;
     }
+    printf("okay\n");
+
+    emulops.write_segment = write_segment;
+    emulops.write_msr     = write_msr;
+
+    printf("%-40s", "Testing swapgs...");
+    instr[0] = 0x0f; instr[1] = 0x01; instr[2] = 0xf8;
+    regs.eip = (unsigned long)&instr[0];
+    gs_base = 0xffffeeeecccc8888UL;
+    gs_base_shadow = 0x0000111122224444UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.eip != (unsigned long)&instr[3]) ||
+         (gs_base != 0x0000111122224444UL) ||
+         (gs_base_shadow != 0xffffeeeecccc8888UL) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing lkgs 2(%rdx)...");
+    instr[0] = 0xf2; instr[1] = 0x0f; instr[2] = 0x00; instr[3] = 0x72; instr[4] = 0x02;
+    regs.eip = (unsigned long)&instr[0];
+    regs.edx = (unsigned long)res;
+    res[0]   = 0x00004444;
+    res[1]   = 0x8888cccc;
+    i = cpu_policy.extd.nscb; cpu_policy.extd.nscb = true; /* for AMD */
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.eip != (unsigned long)&instr[5]) ||
+         (gs_base != 0x0000111122224444UL) ||
+         gs_base_shadow )
+        goto fail;
+
+    cpu_policy.extd.nscb = i;
+    emulops.write_segment = NULL;
+    emulops.write_msr     = NULL;
 #endif
     printf("okay\n");
 
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -85,6 +85,7 @@ bool emul_test_init(void)
     cpu_policy.feat.invpcid = true;
     cpu_policy.feat.adx = true;
     cpu_policy.feat.rdpid = true;
+    cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
     cpu_policy.extd.clzero = true;
 
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -744,8 +744,12 @@ decode_twobyte(struct x86_emulate_state
         case 0:
             s->desc |= DstMem | SrcImplicit | Mov;
             break;
+        case 6:
+            if ( !(s->modrm_reg & 1) && mode_64bit() )
+            {
         case 2: case 4:
-            s->desc |= SrcMem16;
+                s->desc |= SrcMem16;
+            }
             break;
         }
         break;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -594,6 +594,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_avx_vnni()    (ctxt->cpuid->feat.avx_vnni)
 #define vcpu_has_avx512_bf16() (ctxt->cpuid->feat.avx512_bf16)
 #define vcpu_has_cmpccxadd()   (ctxt->cpuid->feat.cmpccxadd)
+#define vcpu_has_lkgs()        (ctxt->cpuid->feat.lkgs)
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -2873,8 +2873,35 @@ x86_emulate(
                 break;
             }
             break;
-        default:
-            generate_exception_if(true, X86_EXC_UD);
+        case 6: /* lkgs */
+            generate_exception_if((modrm_reg & 1) || vex.pfx != vex_f2,
+                                  X86_EXC_UD);
+            generate_exception_if(!mode_64bit() || !mode_ring0(), X86_EXC_UD);
+            vcpu_must_have(lkgs);
+            fail_if(!ops->read_segment || !ops->read_msr ||
+                    !ops->write_segment || !ops->write_msr);
+            if ( (rc = ops->read_msr(MSR_SHADOW_GS_BASE, &msr_val,
+                                     ctxt)) != X86EMUL_OKAY ||
+                 (rc = ops->read_segment(x86_seg_gs, &sreg,
+                                         ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.orig_val = sreg.base; /* Preserve full GS Base. */
+            if ( (rc = protmode_load_seg(x86_seg_gs, src.val, false, &sreg,
+                                         ctxt, ops)) != X86EMUL_OKAY ||
+                 /* Write (32-bit) base into SHADOW_GS. */
+                 (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
+                                      ctxt)) != X86EMUL_OKAY )
+                goto done;
+            sreg.base = dst.orig_val; /* Reinstate full GS Base. */
+            if ( (rc = ops->write_segment(x86_seg_gs, &sreg,
+                                          ctxt)) != X86EMUL_OKAY )
+            {
+                /* Best effort unwind (i.e. no real error checking). */
+                if ( ops->write_msr(MSR_SHADOW_GS_BASE, msr_val,
+                                    ctxt) == X86EMUL_EXCEPTION )
+                    x86_emul_reset_event(ctxt);
+                goto done;
+            }
             break;
         }
         break;
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -307,7 +307,10 @@ XEN_CPUFEATURE(CMPCCXADD,    10*32+ 7) /
 XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
 XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
 XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
+XEN_CPUFEATURE(FRED,         10*32+17) /*   Flexible Return and Event Delivery */
+XEN_CPUFEATURE(LKGS,         10*32+18) /*s  Load Kernel GS Base */
 XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
+XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-source reporting */
 XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
 XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
 
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -274,7 +274,8 @@ def crunch_numbers(state):
         # superpages, PCID and PKU are only available in 4 level paging.
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
-        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD],
+        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
+             LKGS],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.
@@ -343,6 +344,9 @@ def crunch_numbers(state):
         # computational instructions.  All further AMX features are built on top
         # of AMX-TILE.
         AMX_TILE: [AMX_BF16, AMX_INT8, AMX_FP16, AMX_COMPLEX],
+
+        # FRED builds on the LKGS instruction.
+        LKGS: [FRED],
     }
 
     deep_features = tuple(sorted(deps.keys()))



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:06:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:06:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842717.1258394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFafb-00048d-BS; Mon, 25 Nov 2024 15:06:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842717.1258394; Mon, 25 Nov 2024 15:06: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 1tFafb-00048W-78; Mon, 25 Nov 2024 15:06:35 +0000
Received: by outflank-mailman (input) for mailman id 842717;
 Mon, 25 Nov 2024 15:06: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFafZ-00046A-VL
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:06:34 +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 d950ad8a-ab3e-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 16:06:29 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5cfa9979cd1so7735053a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:06: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
 4fb4d7f45d1cf-5d01d3b88a7sm4211173a12.31.2024.11.25.07.06.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 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: d950ad8a-ab3e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ5NTBhZDhhLWFiM2UtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ3MTg5LjU5MzgwNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547189; x=1733151989; 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=+hWy38W0INr0fT1Z/7Hmh80yQ4AbDhr+rRbWKgFup8E=;
        b=XB18dayD33JexyuoVp+YMMzVrTg6VL5tQipWXP/tBf6FBodRgt5+7eCNr+5sFGYlEO
         rM6+rOQmEklHnM8IxkU+YlfCmTWcCRU+CSE4gXzvwrXitgS9U6PKawmt+nqfV/1QhjTw
         N9ANUtSmdG+FQ0PkRCyApyi7RAUOUrghOvJL6E3+XzBdnZgUb/nM1PUv94RvakKsUlWC
         pT0fa2vvW2FxVErFHYGViJHhrNYVuqrzc3zPq8IBQBfHM0TO/t0kzoRBlsdtXwF8t4rf
         wDU8/UdPH7XTvu6dkPgzx2VhzZ10y11csHXx6fJPYabb0qXR4zAayTLhM++3R04l9qbo
         A9Mg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547189; x=1733151989;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+hWy38W0INr0fT1Z/7Hmh80yQ4AbDhr+rRbWKgFup8E=;
        b=mssTCJJwdlePsR1gKT/Z/XAg8cgiXCf7Tqwmaww9HvH8wws5xVvAjKM3jxobgTWAsN
         46AvBCYgyAJNQcIuIt6oZk9lOu3GKxoXYypxxlnLYB+dttj9AGTrKLNSIJJKTYSnVwPK
         IuqkqxDeYId9tYcL7Rb1wJHLwlXunya6i0b3MBFIEZQyQIH6acOrMOdu3Fdvfv6LO96P
         TMDfiA3OKtZTGL7qzru5Lhh4sa3Hs9KqLrviL0nBzSWkDj9q/BpfWtRCueUZj7Zyd3GK
         TKamPvh+48Vun4psBBp5ItH7/0Uvg84yOR9NY6UKVYdUUJJvton1afzQnvKBYWhRU36Z
         9v3w==
X-Gm-Message-State: AOJu0YyS+xqo0EeNNTqbssKl9B2IaXTjCyJDCoY+kDHX5kwvybq5jpqE
	Iy2+rLWCDUjtbG5TV7RiYhwACAhNUtIS22vPyVtrhqdXgcrSBjVBKw4C3e5Efmr03TqIivD32c8
	=
X-Gm-Gg: ASbGncvL+oe5o4OTNMWrs4vqNcjcjpT1FbP/x5kts2UgnQ0CjdI70Pa6fhkQQFabvYD
	8k30eJ77ybc9AiBZ8QW/xcxqzd7Cca/nOi++UpdrTITy8buRKT3MS8wyXAavyZz8epP878GFwxf
	TzclIABfMLXdExSIrNtrs2ibi6r3wTJX2Ipx2dfgLm2QTMPaMMOx2NgeuSFvxeNRHPSVPIm5WSv
	910t2rQ+JaCOg4wbGJrEMYw9DX1xGUxDxsk9BnbKdRyBE2z39stZRu1CziCAMzkL2+I/igLui0K
	lc3TVmB+222TITaeVkEQhsbMmKvZRg++wsE=
X-Google-Smtp-Source: AGHT+IGKvoKBVrSLlwqk7iHuCe3HXxksXBDo2yFoYhXAjgpwsOioPmHzS0m4iurwYnBzwV5rKlYIAA==
X-Received: by 2002:a05:6402:1e94:b0:5cf:ab49:8439 with SMTP id 4fb4d7f45d1cf-5d007c5a855mr16133365a12.9.1732547181035;
        Mon, 25 Nov 2024 07:06:21 -0800 (PST)
Message-ID: <30368e5d-67ce-43de-9c46-3d263e11afd4@suse.com>
Date: Mon, 25 Nov 2024 16:06:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v7 2/7] x86emul+VMX: support {RD,WR}MSRLIST
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

These are "compound" instructions to issue a series of RDMSR / WRMSR
respectively. In the emulator we can therefore implement them by using
the existing msr_{read,write}() hooks. The memory accesses utilize that
the HVM ->read() / ->write() hooks are already linear-address
(x86_seg_none) aware (by way of hvmemul_virtual_to_linear() handling
this case).

Preemption is being checked for in WRMSRLIST handling only, as only MSR
writes are expected to possibly take long.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: In vmx_vmexit_handler() handling is forwarded to the emulator
     blindly. Alternatively we could consult the exit qualification and
     process just a single MSR at a time (without involving the
     emulator), exiting back to the guest after every iteration. (I
     don't think a mix of both models makes a lot of sense.)

The precise behavior of MSR_BARRIER is still not spelled out in ISE 050,
so the (minimal) implementation continues to be a guess for now.

Wouldn't calculate_hvm_max_policy() for MPX better behave the same way
as done here, at least from an abstract perspective (assuming that AMD
won't add such functionality now that Intel have deprecated it)?
---
v6: Use MSR constants in test harness. Re-base.
v5: Add missing vmx_init_vmcs_config() and construct_vmcs() adjustments.
    Avoid unnecessary uses of r(). Re-base.
v3: Add dependency on LM. Limit exposure to HVM. Utilize new info from
    ISE 050. Re-base.
v2: Use X86_EXC_*. Add preemption checking to WRMSRLIST handling. Remove
    the feature from "max" when the VMX counterpart isn't available.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -342,6 +342,8 @@ static const struct {
     { { 0x01, 0xc4 }, { 2, 2 }, F, N }, /* vmxoff */
     { { 0x01, 0xc5 }, { 2, 2 }, F, N }, /* pconfig */
     { { 0x01, 0xc6 }, { 2, 2 }, F, N }, /* wrmsrns */
+    { { 0x01, 0xc6 }, { 0, 2 }, F, W, pfx_f2 }, /* rdmsrlist */
+    { { 0x01, 0xc6 }, { 0, 2 }, F, R, pfx_f3 }, /* wrmsrlist */
     { { 0x01, 0xc8 }, { 2, 2 }, F, N }, /* monitor */
     { { 0x01, 0xc9 }, { 2, 2 }, F, N }, /* mwait */
     { { 0x01, 0xca }, { 2, 2 }, F, N }, /* clac */
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -625,7 +625,7 @@ static int write(
     if ( verbose )
         printf("** %s(%u, %p,, %u,)\n", __func__, seg, (void *)offset, bytes);
 
-    if ( !is_x86_user_segment(seg) )
+    if ( !is_x86_user_segment(seg) && seg != x86_seg_none )
         return X86EMUL_UNHANDLEABLE;
     memcpy((void *)offset, p_data, bytes);
     return X86EMUL_OKAY;
@@ -717,6 +717,10 @@ static int read_msr(
 {
     switch ( reg )
     {
+    case MSR_BARRIER:
+        *val = 0;
+        return X86EMUL_OKAY;
+
     case MSR_EFER:
         *val = ctxt->addr_size > 32 ? EFER_LME | EFER_LMA : 0;
         return X86EMUL_OKAY;
@@ -1434,9 +1438,53 @@ int main(int argc, char **argv)
          (gs_base != 0x0000111122224444UL) ||
          gs_base_shadow )
         goto fail;
+    printf("okay\n");
 
     cpu_policy.extd.nscb = i;
     emulops.write_segment = NULL;
+
+    printf("%-40s", "Testing rdmsrlist...");
+    instr[0] = 0xf2; instr[1] = 0x0f; instr[2] = 0x01; instr[3] = 0xc6;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = (unsigned long)(res + 0x80);
+    regs.rdi = (unsigned long)(res + 0x80 + 0x40 * 2);
+    regs.rcx = 0x0002000100008000UL;
+    gs_base_shadow = 0x0000222244446666UL;
+    memset(res + 0x80, ~0, 0x40 * 8 * 2);
+    res[0x80 + 0x0f * 2] = MSR_GS_BASE;
+    res[0x80 + 0x0f * 2 + 1] = 0;
+    res[0x80 + 0x20 * 2] = MSR_SHADOW_GS_BASE;
+    res[0x80 + 0x20 * 2 + 1] = 0;
+    res[0x80 + 0x31 * 2] = MSR_BARRIER;
+    res[0x80 + 0x31 * 2 + 1] = 0;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[4]) ||
+         regs.rcx ||
+         (res[0x80 + (0x40 + 0x0f) * 2] != (unsigned int)gs_base) ||
+         (res[0x80 + (0x40 + 0x0f) * 2 + 1] != (gs_base >> (8 * sizeof(int)))) ||
+         (res[0x80 + (0x40 + 0x20) * 2] != (unsigned int)gs_base_shadow) ||
+         (res[0x80 + (0x40 + 0x20) * 2 + 1] != (gs_base_shadow >> (8 * sizeof(int)))) ||
+         res[0x80 + (0x40 + 0x31) * 2] || res[0x80 + (0x40 + 0x31) * 2 + 1] )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing wrmsrlist...");
+    instr[0] = 0xf3; instr[1] = 0x0f; instr[2] = 0x01; instr[3] = 0xc6;
+    regs.eip = (unsigned long)&instr[0];
+    regs.rsi -= 0x11 * 8;
+    regs.rdi -= 0x11 * 8;
+    regs.rcx = 0x0002000100000000UL;
+    res[0x80 + 0x0f * 2] = MSR_SHADOW_GS_BASE;
+    res[0x80 + 0x20 * 2] = MSR_GS_BASE;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[4]) ||
+         regs.rcx ||
+         (gs_base != 0x0000222244446666UL) ||
+         (gs_base_shadow != 0x0000111122224444UL) )
+        goto fail;
+
     emulops.write_msr     = NULL;
 #endif
     printf("okay\n");
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -87,6 +87,7 @@ bool emul_test_init(void)
     cpu_policy.feat.rdpid = true;
     cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
+    cpu_policy.feat.msrlist = true;
     cpu_policy.extd.clzero = true;
 
     if ( cpu_has_xsave )
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -757,6 +757,9 @@ static void __init calculate_hvm_max_pol
             __clear_bit(X86_FEATURE_XSAVES, fs);
     }
 
+    if ( !cpu_has_vmx_msrlist )
+        __clear_bit(X86_FEATURE_MSRLIST, fs);
+
     /*
      * Xen doesn't use PKS, so the guest support for it has opted to not use
      * the VMCS load/save controls for efficiency reasons.  This depends on
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -366,7 +366,8 @@ static int vmx_init_vmcs_config(bool bsp
 
     if ( _vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_TERTIARY_CONTROLS )
     {
-        uint64_t opt = TERTIARY_EXEC_VIRT_SPEC_CTRL;
+        uint64_t opt = TERTIARY_EXEC_ENABLE_MSRLIST |
+                       TERTIARY_EXEC_VIRT_SPEC_CTRL;
 
         _vmx_tertiary_exec_control = adjust_vmx_controls2(
             "Tertiary Exec Control", 0, opt,
@@ -1119,7 +1120,8 @@ static int construct_vmcs(struct vcpu *v
         v->arch.hvm.vmx.exec_control |= CPU_BASED_RDTSC_EXITING;
 
     v->arch.hvm.vmx.secondary_exec_control = vmx_secondary_exec_control;
-    v->arch.hvm.vmx.tertiary_exec_control  = vmx_tertiary_exec_control;
+    v->arch.hvm.vmx.tertiary_exec_control  = vmx_tertiary_exec_control &
+                                             ~TERTIARY_EXEC_ENABLE_MSRLIST;
 
     /*
      * Disable features which we don't want active by default:
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -871,6 +871,20 @@ static void cf_check vmx_cpuid_policy_ch
     else
         vmx_set_msr_intercept(v, MSR_PKRS, VMX_MSR_RW);
 
+    if ( cp->feat.msrlist )
+    {
+        vmx_clear_msr_intercept(v, MSR_BARRIER, VMX_MSR_RW);
+        v->arch.hvm.vmx.tertiary_exec_control |= TERTIARY_EXEC_ENABLE_MSRLIST;
+        vmx_update_tertiary_exec_control(v);
+    }
+    else if ( v->arch.hvm.vmx.tertiary_exec_control &
+              TERTIARY_EXEC_ENABLE_MSRLIST )
+    {
+        vmx_set_msr_intercept(v, MSR_BARRIER, VMX_MSR_RW);
+        v->arch.hvm.vmx.tertiary_exec_control &= ~TERTIARY_EXEC_ENABLE_MSRLIST;
+        vmx_update_tertiary_exec_control(v);
+    }
+
  out:
     vmx_vmcs_exit(v);
 
@@ -3728,6 +3742,22 @@ gp_fault:
     return X86EMUL_EXCEPTION;
 }
 
+static bool cf_check is_msrlist(
+    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
+{
+
+    if ( ctxt->opcode == X86EMUL_OPC(0x0f, 0x01) )
+    {
+        unsigned int rm, reg;
+        int mode = x86_insn_modrm(state, &rm, &reg);
+
+        /* This also includes WRMSRNS; should be okay. */
+        return mode == 3 && rm == 6 && !reg;
+    }
+
+    return false;
+}
+
 static void vmx_do_extint(struct cpu_user_regs *regs)
 {
     unsigned long vector;
@@ -4535,6 +4565,17 @@ void asmlinkage vmx_vmexit_handler(struc
         }
         break;
 
+    case EXIT_REASON_RDMSRLIST:
+    case EXIT_REASON_WRMSRLIST:
+        if ( vmx_guest_x86_mode(v) != 8 || !currd->arch.cpuid->feat.msrlist )
+        {
+            ASSERT_UNREACHABLE();
+            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
+        }
+        else if ( !hvm_emulate_one_insn(is_msrlist, "MSR list") )
+            hvm_inject_hw_exception(X86_EXC_GP, 0);
+        break;
+
     case EXIT_REASON_VMXOFF:
     case EXIT_REASON_VMXON:
     case EXIT_REASON_VMCLEAR:
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -267,6 +267,7 @@ extern u32 vmx_secondary_exec_control;
 #define TERTIARY_EXEC_EPT_PAGING_WRITE          BIT(2, UL)
 #define TERTIARY_EXEC_GUEST_PAGING_VERIFY       BIT(3, UL)
 #define TERTIARY_EXEC_IPI_VIRT                  BIT(4, UL)
+#define TERTIARY_EXEC_ENABLE_MSRLIST            BIT(6, UL)
 #define TERTIARY_EXEC_VIRT_SPEC_CTRL            BIT(7, UL)
 extern uint64_t vmx_tertiary_exec_control;
 
@@ -391,6 +392,9 @@ extern u64 vmx_ept_vpid_cap;
 #define cpu_has_vmx_notify_vm_exiting \
     (IS_ENABLED(CONFIG_INTEL_VMX) && \
      vmx_secondary_exec_control & SECONDARY_EXEC_NOTIFY_VM_EXITING)
+#define cpu_has_vmx_msrlist \
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     (vmx_tertiary_exec_control & TERTIARY_EXEC_ENABLE_MSRLIST))
 
 #define VMCS_RID_TYPE_MASK              0x80000000U
 
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -201,6 +201,8 @@ static inline void pi_clear_sn(struct pi
 #define EXIT_REASON_XRSTORS             64
 #define EXIT_REASON_BUS_LOCK            74
 #define EXIT_REASON_NOTIFY              75
+#define EXIT_REASON_RDMSRLIST           78
+#define EXIT_REASON_WRMSRLIST           79
 /* Remember to also update VMX_PERF_EXIT_REASON_SIZE! */
 
 /*
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -24,6 +24,8 @@
 #define  APIC_BASE_ENABLE                   (_AC(1, ULL) << 11)
 #define  APIC_BASE_ADDR_MASK                _AC(0x000ffffffffff000, ULL)
 
+#define MSR_BARRIER                         0x0000002f
+
 #define MSR_TEST_CTRL                       0x00000033
 #define  TEST_CTRL_SPLITLOCK_DETECT         (_AC(1, ULL) << 29)
 #define  TEST_CTRL_SPLITLOCK_DISABLE        (_AC(1, ULL) << 31)
--- a/xen/arch/x86/include/asm/perfc_defn.h
+++ b/xen/arch/x86/include/asm/perfc_defn.h
@@ -6,7 +6,7 @@ PERFCOUNTER_ARRAY(exceptions,
 
 #ifdef CONFIG_HVM
 
-#define VMX_PERF_EXIT_REASON_SIZE 76
+#define VMX_PERF_EXIT_REASON_SIZE 80
 #define VMEXIT_NPF_PERFC 143
 #define SVM_PERF_EXIT_REASON_SIZE (VMEXIT_NPF_PERFC + 1)
 PERFCOUNTER_ARRAY(vmexits,              "vmexits",
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -74,6 +74,12 @@ int guest_rdmsr(struct vcpu *v, uint32_t
     case MSR_AMD_PPIN:
         goto gp_fault;
 
+    case MSR_BARRIER:
+        if ( !cp->feat.msrlist )
+            goto gp_fault;
+        *val = 0;
+        break;
+
     case MSR_IA32_FEATURE_CONTROL:
         /*
          * Architecturally, availability of this MSR is enumerated by the
@@ -347,6 +353,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t
         uint64_t rsvd;
 
         /* Read-only */
+    case MSR_BARRIER:
     case MSR_IA32_PLATFORM_ID:
     case MSR_CORE_CAPABILITIES:
     case MSR_INTEL_CORE_THREAD_COUNT:
--- a/xen/arch/x86/x86_emulate/0f01.c
+++ b/xen/arch/x86/x86_emulate/0f01.c
@@ -11,6 +11,7 @@
 #include "private.h"
 
 #ifdef __XEN__
+#include <xen/event.h>
 #include <asm/prot-key.h>
 #endif
 
@@ -28,6 +29,7 @@ int x86emul_0f01(struct x86_emulate_stat
     switch ( s->modrm )
     {
         unsigned long base, limit, cr0, cr0w, cr4;
+        unsigned int n;
         struct segment_register sreg;
         uint64_t msr_val;
 
@@ -42,6 +44,64 @@ int x86emul_0f01(struct x86_emulate_stat
                                 ((uint64_t)regs->r(dx) << 32) | regs->eax,
                                 ctxt);
             goto done;
+
+        case vex_f3: /* wrmsrlist */
+            vcpu_must_have(msrlist);
+            generate_exception_if(!mode_64bit(), X86_EXC_UD);
+            generate_exception_if(!mode_ring0() || (regs->esi & 7) ||
+                                  (regs->edi & 7),
+                                  X86_EXC_GP, 0);
+            fail_if(!ops->write_msr);
+            while ( regs->r(cx) )
+            {
+                n = __builtin_ffsl(regs->r(cx)) - 1;
+                if ( (rc = ops->read(x86_seg_none, regs->r(si) + n * 8,
+                                     &msr_val, 8, ctxt)) != X86EMUL_OKAY )
+                    break;
+                generate_exception_if(msr_val != (uint32_t)msr_val,
+                                      X86_EXC_GP, 0);
+                base = msr_val;
+                if ( (rc = ops->read(x86_seg_none, regs->r(di) + n * 8,
+                                     &msr_val, 8, ctxt)) != X86EMUL_OKAY ||
+                     (rc = ops->write_msr(base, msr_val, ctxt)) != X86EMUL_OKAY )
+                    break;
+                regs->r(cx) &= ~(1UL << n);
+
+#ifdef __XEN__
+                if ( regs->r(cx) && local_events_need_delivery() )
+                {
+                    rc = X86EMUL_RETRY;
+                    break;
+                }
+#endif
+            }
+            goto done;
+
+        case vex_f2: /* rdmsrlist */
+            vcpu_must_have(msrlist);
+            generate_exception_if(!mode_64bit(), X86_EXC_UD);
+            generate_exception_if(!mode_ring0() || (regs->esi & 7) ||
+                                  (regs->edi & 7),
+                                  X86_EXC_GP, 0);
+            fail_if(!ops->read_msr || !ops->write);
+            while ( regs->r(cx) )
+            {
+                n = __builtin_ffsl(regs->r(cx)) - 1;
+                if ( (rc = ops->read(x86_seg_none, regs->r(si) + n * 8,
+                                     &msr_val, 8, ctxt)) != X86EMUL_OKAY )
+                    break;
+                generate_exception_if(msr_val != (uint32_t)msr_val,
+                                      X86_EXC_GP, 0);
+                if ( (rc = ops->read_msr(msr_val, &msr_val,
+                                         ctxt)) != X86EMUL_OKAY ||
+                     (rc = ops->write(x86_seg_none, regs->r(di) + n * 8,
+                                      &msr_val, 8, ctxt)) != X86EMUL_OKAY )
+                    break;
+                regs->r(cx) &= ~(1UL << n);
+            }
+            if ( rc != X86EMUL_OKAY )
+                ctxt->regs->r(cx) = regs->r(cx);
+            goto done;
         }
         generate_exception(X86_EXC_UD);
 
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -597,6 +597,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_lkgs()        (ctxt->cpuid->feat.lkgs)
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
+#define vcpu_has_msrlist()     (ctxt->cpuid->feat.msrlist)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
 #define vcpu_has_avx_vnni_int16() (ctxt->cpuid->feat.avx_vnni_int16)
--- a/xen/arch/x86/x86_emulate/util.c
+++ b/xen/arch/x86/x86_emulate/util.c
@@ -100,6 +100,9 @@ bool cf_check x86_insn_is_mem_access(con
         break;
 
     case X86EMUL_OPC(0x0f, 0x01):
+        /* {RD,WR}MSRLIST */
+        if ( mode_64bit() && s->modrm == 0xc6 )
+            return s->vex.pfx >= vex_f3;
         /* Cover CLZERO. */
         return (s->modrm_rm & 7) == 4 && (s->modrm_reg & 7) == 7;
     }
@@ -160,7 +163,11 @@ bool cf_check x86_insn_is_mem_write(cons
         case 0xff: /* Grp5 */
             break;
 
-        case X86EMUL_OPC(0x0f, 0x01): /* CLZERO is the odd one. */
+        case X86EMUL_OPC(0x0f, 0x01):
+            /* RDMSRLIST */
+            if ( mode_64bit() && s->modrm == 0xc6 )
+                return s->vex.pfx == vex_f2;
+            /* CLZERO is another odd one. */
             return (s->modrm_rm & 7) == 4 && (s->modrm_reg & 7) == 7;
 
         default:
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -313,6 +313,7 @@ XEN_CPUFEATURE(WRMSRNS,      10*32+19) /
 XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-source reporting */
 XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
 XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
+XEN_CPUFEATURE(MSRLIST,      10*32+27) /*s  MSR list instructions */
 
 /* AMD-defined CPU features, CPUID level 0x80000021.eax, word 11 */
 XEN_CPUFEATURE(NO_NEST_BP,         11*32+ 0) /*A  No Nested Data Breakpoints */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -275,7 +275,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS],
+             LKGS, MSRLIST],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:06:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:06:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842724.1258404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFafw-0004YF-K5; Mon, 25 Nov 2024 15:06:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842724.1258404; Mon, 25 Nov 2024 15: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 1tFafw-0004Y8-Fk; Mon, 25 Nov 2024 15:06:56 +0000
Received: by outflank-mailman (input) for mailman id 842724;
 Mon, 25 Nov 2024 15: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFafv-0003aM-6u
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:06:55 +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 e6b0eec3-ab3e-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:06:52 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-53dde9acbb1so1817917e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:06: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
 a640c23a62f3a-aa50b52f9b9sm480606666b.105.2024.11.25.07.06.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:06: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: e6b0eec3-ab3e-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU2YjBlZWMzLWFiM2UtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3MjEyLjAyNzk5NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547211; x=1733152011; 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=SoVH3MwY0RUX3XqGxyZqqcb8lwV+lcFjaKnW23S4eFc=;
        b=TbmoNnVsKMlhYW3VKCDgxEayNpLMzHBMM2r/LkLJkO/ftjBCcrMZKIm36e4s+V0ikd
         l6xki11KrDqIxqYHwSpBsttoIE5GfIqHAtr7JIfNbT9g5Epa3/hEF1YfjP4+mun80Qr7
         72TfslsmoBYJokxPxAzVueyP0czcRhvRBLuzfr7yNEFxEWsCN2FfRo2k+BVi9t8ysoYF
         ti1xDn7WQvkvmN558U5UZDxI62d8XvufMBpAPVcCW35h0/xj6gojjDXDzxNMsXyAs2rW
         z0gX1lGimywG4wOL/9ulGAX+lZP9M7dpap9ZLL0io0EjiLR+Vxxwr5n9ZslksmGLVsM/
         q8Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547211; x=1733152011;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SoVH3MwY0RUX3XqGxyZqqcb8lwV+lcFjaKnW23S4eFc=;
        b=TOb8xnECT4vpZF4Z6t9q6tlOJPOMmFXptAkiF8xEMKuSRQ7AF4VhQBBHUB97hv6oPJ
         OvRd88VWPZg3ppT0pZyZnBha92lBYUpw876Ot12YsX927ZtIDCsQnzaBKzlKTPnprQkg
         2fBqz2Blb6U51Ie1Ivo52ioY1Yfx3PefH0vUCZxuQzpq6ImZ+tDFRr5ZtxNsb1imgXxB
         A1NFnhVULqyedjAtz+dLtOqIoWnYQC0wj+T1fL8DKoxpAX0cWjzlosWrpFnaVXi0JI6M
         GUPL+XUytrfjWui7WL4WyTfNU7gzzw3IKzgNXCSusS5tZYhPqVMUgHMT/Zj21p2NqTaP
         Vbig==
X-Gm-Message-State: AOJu0YxZKjxjoq593SC0K5B1wJai/JJrFK26jXrjGWmw5g/18UTZBrb2
	0dQ/UOBo6hEtIJ7YrCAsBbeecOWjCknD+g8uQA2fIfjWDGSpPGEfUeWsSkzRYdlpfppQohwoub0
	=
X-Gm-Gg: ASbGncvS8TyDIOuk77gRbJeMwzG+IrRp8hfy6oGoHJPgREs6A+n85xc5mMZtlg+Eg05
	Eq1EwkqQeMcOy9lv6PrpJ8BcvePU41OhKdN40HElQwj6jX36znyPe95Mu+26Em7gLJlOpcZfQex
	6JscJAki0hRmHzLXWDL9s2um/GkIWd9Hi1qgkov5WeJyXG8/LZYGxxs/IS3gIJ1rIh165sLj+tS
	JgKhmqi6fkNWS/0vHcBgUGQBRu4ef+nmKlWVRHYpHRwSJQ7vhVlVeT0fIOs4jYDgprcBFp1HVSj
	5tzv3MeivgCtcjRHM35y6IYIQYll9DT3as8=
X-Google-Smtp-Source: AGHT+IHxT7tXiF/0sBA9HmrNzzQ9rtoZ+pop7tuopoEp0ZQbNK3rLVTVoChoxoNS2VblF8daDuRyZw==
X-Received: by 2002:a05:6512:33cf:b0:53d:e4d2:bb2 with SMTP id 2adb3069b0e04-53de4d20dfcmr1557748e87.50.1732547210904;
        Mon, 25 Nov 2024 07:06:50 -0800 (PST)
Message-ID: <55bbfdf5-3f4b-47d6-bcbf-557e9c52de6c@suse.com>
Date: Mon, 25 Nov 2024 16:06:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v7 3/7] x86emul: support USER_MSR instructions
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While UWRMSR probably isn't of much use as long as we don't support
UINTR, URDMSR may well be useful to guests even without that (depending
on what OSes are willing to permit access to).

Since the two VEX encodings introduce a lonely opcode point in map 7,
for now don't bother introducing a full 256-entry table.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The retaining of (possible) #PF from the bitmap access is "speculative"
(the spec doesn't mention #PF as a possible exception; conceivably this
might also need converting to #GP).

I'm a little wary of the "MSRs Writeable by UWRMSR" table that the spec
has, and that our code thus also enforces: As new MSRs are added to that
table, we'll need piecemeal updates to that switch() statement.
---
v7: Add missing vcpu_must_have() and override in emul_test_init(). Use
    MSR constants even more.
v6: Add MSR_UINTR_TIMER to header. Use MSR constants in test harness.
    Re-base.
v5: Correct ModR/M.reg check for VEX-encoded forms. Cosmetic test
    harness adjustment. Re-base.
v4: MSR index input regs are 64-bit (albeit only the APX spec has it
    this way for now).
v3: New.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -864,7 +864,9 @@ static const struct {
     { { 0xf6 }, { 2, 2 }, T, R, pfx_66 }, /* adcx */
     { { 0xf6 }, { 2, 2 }, T, R, pfx_f3 }, /* adox */
     { { 0xf8 }, { 2, 2 }, F, W, pfx_66 }, /* movdir64b */
+    { { 0xf8, 0xc0 }, { 0, 2 }, F, N, pfx_f3 }, /* uwrmsr */
     { { 0xf8 }, { 2, 2 }, F, W, pfx_f3 }, /* enqcmds */
+    { { 0xf8, 0xc0 }, { 0, 2 }, F, N, pfx_f2 }, /* urdmsr */
     { { 0xf8 }, { 2, 2 }, F, W, pfx_f2 }, /* enqcmd */
     { { 0xf9 }, { 2, 2 }, F, W }, /* movdiri */
 };
@@ -1516,6 +1518,9 @@ static const struct vex {
     { { 0xde }, 3, T, R, pfx_66, W0, L0 }, /* vsm3rnds2 */
     { { 0xdf }, 3, T, R, pfx_66, WIG, Ln }, /* vaeskeygenassist */
     { { 0xf0 }, 3, T, R, pfx_f2, Wn, L0 }, /* rorx */
+}, vex_map7[] = {
+    { { 0xf8, 0xc0 }, 6, F, N, pfx_f3, W0, L0 }, /* uwrmsr */
+    { { 0xf8, 0xc0 }, 6, F, N, pfx_f2, W0, L0 }, /* urdmsr */
 };
 
 static const struct {
@@ -1525,6 +1530,10 @@ static const struct {
     { vex_0f,   ARRAY_SIZE(vex_0f) },
     { vex_0f38, ARRAY_SIZE(vex_0f38) },
     { vex_0f3a, ARRAY_SIZE(vex_0f3a) },
+    { NULL,     0 }, /* map 4 */
+    { NULL,     0 }, /* map 5 */
+    { NULL,     0 }, /* map 6 */
+    { vex_map7, ARRAY_SIZE(vex_map7) },
 };
 
 static const struct xop {
@@ -2420,7 +2429,8 @@ void predicates_test(void *instr, struct
 
                 if ( vex[x].tbl[t].w == WIG || (vex[x].tbl[t].w & W0) )
                 {
-                    memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                    memcpy(ptr, vex[x].tbl[t].opc,
+                           MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L0) )
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
@@ -2430,7 +2440,8 @@ void predicates_test(void *instr, struct
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L1) )
                     {
                         ptr[-1] |= 4;
-                        memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                        memcpy(ptr, vex[x].tbl[t].opc,
+                               MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
                                 vex[x].tbl[t].modrm ? (void *)ptr - instr + 1 : 0,
@@ -2441,7 +2452,8 @@ void predicates_test(void *instr, struct
                 if ( vex[x].tbl[t].w == WIG || (vex[x].tbl[t].w & W1) )
                 {
                     ptr[-1] = 0xf8 | vex[x].tbl[t].pfx;
-                    memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                    memcpy(ptr, vex[x].tbl[t].opc,
+                           MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L0) )
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
@@ -2451,7 +2463,8 @@ void predicates_test(void *instr, struct
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L1) )
                     {
                         ptr[-1] |= 4;
-                        memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                        memcpy(ptr, vex[x].tbl[t].opc,
+                               MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
                                 vex[x].tbl[t].modrm ? (void *)ptr - instr + 1 : 0,
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -674,6 +674,7 @@ static int blk(
 
 #ifdef __x86_64__
 static unsigned long gs_base, gs_base_shadow;
+static unsigned long uintr_timer;
 #endif
 
 static int read_segment(
@@ -708,6 +709,15 @@ static int write_segment(
 
     return X86EMUL_OKAY;
 }
+
+static const uint8_t __attribute__((aligned(0x1000))) umsr_bitmap[0x1000] = {
+#define RD(msr) [(msr) >> 3] = 1 << ((msr) & 7)
+#define WR(msr) [0x800 + ((msr) >> 3)] = 1 << ((msr) & 7)
+    RD(MSR_IA32_APERF),
+    WR(MSR_UINTR_TIMER),
+#undef WR
+#undef RD
+};
 #endif
 
 static int read_msr(
@@ -717,10 +727,22 @@ static int read_msr(
 {
     switch ( reg )
     {
+#ifdef __x86_64__
+    case MSR_USER_MSR_CTL:
+        *val = (unsigned long)umsr_bitmap | 1;
+        return X86EMUL_OKAY;
+#endif
+
     case MSR_BARRIER:
         *val = 0;
         return X86EMUL_OKAY;
 
+    case MSR_IA32_APERF:
+#define APERF_LO_VALUE 0xAEAEAEAE
+#define APERF_HI_VALUE 0xEAEAEAEA
+        *val = ((uint64_t)APERF_HI_VALUE << 32) | APERF_LO_VALUE;
+        return X86EMUL_OKAY;
+
     case MSR_EFER:
         *val = ctxt->addr_size > 32 ? EFER_LME | EFER_LMA : 0;
         return X86EMUL_OKAY;
@@ -756,6 +778,12 @@ static int write_msr(
 {
     switch ( reg )
     {
+    case MSR_UINTR_TIMER:
+        if ( ctxt->addr_size < 64 )
+            break;
+        uintr_timer = val;
+        return X86EMUL_OKAY;
+
     case MSR_GS_BASE:
         if ( ctxt->addr_size < 64 || !is_canonical_address(val) )
             break;
@@ -1484,6 +1512,63 @@ int main(int argc, char **argv)
          (gs_base != 0x0000222244446666UL) ||
          (gs_base_shadow != 0x0000111122224444UL) )
         goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing urdmsr %rdx,%rcx...");
+    instr[0] = 0xf2; instr[1] = 0x0f; instr[2] = 0x38; instr[3] = 0xf8; instr[4] = 0xd1;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rdx = MSR_IA32_APERF;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[5]) ||
+         (regs.rcx != (((uint64_t)APERF_HI_VALUE << 32) | APERF_LO_VALUE)) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing urdmsr $MSR_IA32_APERF,%rdx...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7b; instr[3] = 0xf8; instr[4] = 0xc2;
+    *(uint32_t *)&instr[5] = MSR_IA32_APERF;
+    regs.rip = (unsigned long)&instr[0];
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (regs.rdx != (((uint64_t)APERF_HI_VALUE << 32) | APERF_LO_VALUE)) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing uwrmsr %rdi,%rsi...");
+    instr[0] = 0xf3; instr[1] = 0x0f; instr[2] = 0x38; instr[3] = 0xf8; instr[4] = 0xf7;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = MSR_UINTR_TIMER;
+    regs.rdi = 0x0011223344556677UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[5]) ||
+         (uintr_timer != 0x0011223344556677UL) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing uwrmsr %rsi,$MSR_UINTR_TIMER...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7a; instr[3] = 0xf8; instr[4] = 0xc6;
+    *(uint32_t *)&instr[5] = MSR_UINTR_TIMER;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = 0x8877665544332211UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (uintr_timer != 0x8877665544332211UL) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing uwrmsr %rsi,$MSR_UARCH_MISC_CTRL...");
+    *(uint32_t *)&instr[5] = MSR_UARCH_MISC_CTRL;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = 0;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_EXCEPTION) ||
+         (regs.rip != (unsigned long)&instr[0]) ||
+         (uintr_timer != 0x8877665544332211UL) )
+        goto fail;
 
     emulops.write_msr     = NULL;
 #endif
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -88,6 +88,7 @@ bool emul_test_init(void)
     cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
     cpu_policy.feat.msrlist = true;
+    cpu_policy.feat.user_msr = true;
     cpu_policy.extd.clzero = true;
 
     if ( cpu_has_xsave )
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -24,6 +24,10 @@
 #define  APIC_BASE_ENABLE                   (_AC(1, ULL) << 11)
 #define  APIC_BASE_ADDR_MASK                _AC(0x000ffffffffff000, ULL)
 
+#define MSR_USER_MSR_CTL                    0x0000001c
+#define  USER_MSR_ENABLE                    (_AC(1, ULL) <<  0)
+#define  USER_MSR_ADDR_MASK                 0xfffffffffffff000ULL
+
 #define MSR_BARRIER                         0x0000002f
 
 #define MSR_TEST_CTRL                       0x00000033
@@ -192,6 +196,8 @@
 #define  MCU_CONTROL_DIS_MCU_LOAD           (_AC(1, ULL) <<  1)
 #define  MCU_CONTROL_EN_SMM_BYPASS          (_AC(1, ULL) <<  2)
 
+#define MSR_UINTR_TIMER                     0x00001b00
+
 #define MSR_UARCH_MISC_CTRL                 0x00001b01
 #define  UARCH_CTRL_DOITM                   (_AC(1, ULL) <<  0)
 
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -903,7 +903,7 @@ decode_0f38(struct x86_emulate_state *s,
     {
     case 0x00 ... 0xef:
     case 0xf2 ... 0xf5:
-    case 0xf7 ... 0xf8:
+    case 0xf7:
     case 0xfa ... 0xff:
         s->op_bytes = 0;
         /* fall through */
@@ -948,6 +948,18 @@ decode_0f38(struct x86_emulate_state *s,
     case X86EMUL_OPC_VEX_F2(0, 0xf7): /* shrx */
         break;
 
+    case 0xf8:
+        if ( s->modrm_mod == 3 ) /* u{rd,wr}msr */
+        {
+            s->desc = DstMem | SrcReg | Mov;
+            s->op_bytes = 8;
+            s->simd_size = simd_none;
+        }
+        else /* movdir64b / enqcmd{,s} */
+            s->op_bytes = 0;
+        ctxt->opcode |= MASK_INSR(s->vex.pfx, X86EMUL_OPC_PFX_MASK);
+        break;
+
     default:
         s->op_bytes = 0;
         break;
@@ -1246,6 +1258,16 @@ int x86emul_decode(struct x86_emulate_st
                          */
                         d = twobyte_table[0x38].desc;
                         break;
+
+                    case vex_map7:
+                        opcode |= MASK_INSR(7, X86EMUL_OPC_EXT_MASK);
+                        /*
+                         * No table lookup here for now, as there's only a single
+                         * opcode point (0xf8) populated in map 7.
+                         */
+                        d = DstMem | SrcImm | ModRM | Mov;
+                        s->op_bytes = 8;
+                        break;
                     }
                 }
                 else if ( s->ext < ext_8f08 + ARRAY_SIZE(xop_table) )
@@ -1602,6 +1624,7 @@ int x86emul_decode(struct x86_emulate_st
             s->simd_size = ext8f09_table[b].simd_size;
             break;
 
+        case ext_map7:
         case ext_8f08:
         case ext_8f0a:
             /*
@@ -1816,6 +1839,7 @@ int x86emul_decode(struct x86_emulate_st
 
     case ext_map5:
     case ext_map6:
+    case ext_map7:
     case ext_8f09:
     case ext_8f0a:
         break;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -189,6 +189,7 @@ enum vex_opcx {
     vex_0f3a,
     evex_map5 = 5,
     evex_map6,
+    vex_map7,
 };
 
 enum vex_pfx {
@@ -245,6 +246,7 @@ struct x86_emulate_state {
         ext_0f3a = vex_0f3a,
         ext_map5 = evex_map5,
         ext_map6 = evex_map6,
+        ext_map7 = vex_map7,
         /*
          * For XOP use values such that the respective instruction field
          * can be used without adjustment.
@@ -601,6 +603,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
 #define vcpu_has_avx_vnni_int16() (ctxt->cpuid->feat.avx_vnni_int16)
+#define vcpu_has_user_msr()    (ctxt->cpuid->feat.user_msr)
 
 #define vcpu_must_have(feat) \
     generate_exception_if(!vcpu_has_##feat(), X86_EXC_UD)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -7037,10 +7037,68 @@ x86_emulate(
         state->simd_size = simd_none;
         break;
 
-    case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 */
-    case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 */
+    case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 / uwrmsr r64,r32 */
+    case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 / urdmsr r32,r64 */
+        if ( ea.type == OP_MEM )
+            goto enqcmd;
+        imm1 = src.val;
+        /* fall through */
+    case X86EMUL_OPC_VEX_F3(7, 0xf8): /* uwrmsr r64,imm32 */
+    case X86EMUL_OPC_VEX_F2(7, 0xf8): /* urdmsr imm32,r64 */
+        generate_exception_if(!mode_64bit() || ea.type != OP_REG, X86_EXC_UD);
+        generate_exception_if(vex.l || vex.w, X86_EXC_UD);
+        generate_exception_if(vex.opcx && ((modrm_reg & 7) || vex.reg != 0xf),
+                              X86_EXC_UD);
+        vcpu_must_have(user_msr);
+        fail_if(!ops->read_msr);
+        if ( ops->read_msr(MSR_USER_MSR_CTL, &msr_val, ctxt) != X86EMUL_OKAY )
+        {
+            x86_emul_reset_event(ctxt);
+            msr_val = 0;
+        }
+        generate_exception_if(!(msr_val & USER_MSR_ENABLE), X86_EXC_UD);
+        generate_exception_if(imm1 & ~0x3fff, X86_EXC_GP, 0);
+
+        /* Check the corresponding bitmap. */
+        ea.mem.off = msr_val & ~0xfff;
+        if ( vex.pfx != vex_f2 )
+            ea.mem.off += 0x800;
+        ea.mem.off += imm1 >> 3;
+        if ( (rc = ops->read(x86_seg_sys, ea.mem.off, &b, 1,
+                             ctxt)) != X86EMUL_OKAY )
+            goto done;
+        generate_exception_if(!(b & (1 << (imm1 & 7))), X86_EXC_GP, 0);
+
+        /* Carry out the actual MSR access. */
+        if ( vex.pfx == vex_f2 )
+        {
+            /* urdmsr */
+            if ( (rc = ops->read_msr(imm1, &msr_val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.val = msr_val;
+            ASSERT(dst.type == OP_REG);
+            dst.bytes = 8;
+        }
+        else
+        {
+            /* uwrmsr */
+            switch ( imm1 )
+            {
+            case 0x1b00: /* UINTR_TIMER */
+            case 0x1b01: /* UARCH_MISC_CTL */
+                break;
+            default:
+                generate_exception(X86_EXC_GP, 0);
+            }
+            fail_if(!ops->write_msr);
+            if ( (rc = ops->write_msr(imm1, dst.val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.type = OP_NONE;
+        }
+        break;
+
+    enqcmd:
         host_and_vcpu_must_have(enqcmd);
-        generate_exception_if(ea.type != OP_MEM, X86_EXC_UD);
         generate_exception_if(vex.pfx != vex_f2 && !mode_ring0(), X86_EXC_GP, 0);
         src.val = truncate_ea(*dst.reg);
         generate_exception_if(!is_aligned(x86_seg_es, src.val, 64, ctxt, ops),
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -350,6 +350,7 @@ XEN_CPUFEATURE(AVX_NE_CONVERT,     15*32
 XEN_CPUFEATURE(AMX_COMPLEX,        15*32+ 8) /*   AMX Complex Instructions */
 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(USER_MSR,           15*32+15) /*   U{RD,WR}MSR Instructions */
 XEN_CPUFEATURE(CET_SSS,            15*32+18) /*   CET Supervisor Shadow Stacks safe to use */
 
 /* Intel-defined CPU features, MSR_ARCH_CAPS 0x10a.eax, word 16 */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -275,7 +275,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS, MSRLIST],
+             LKGS, MSRLIST, USER_MSR],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:08:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842739.1258413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFahU-0005MT-3F; Mon, 25 Nov 2024 15:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842739.1258413; Mon, 25 Nov 2024 15:08: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 1tFahU-0005MM-0a; Mon, 25 Nov 2024 15:08:32 +0000
Received: by outflank-mailman (input) for mailman id 842739;
 Mon, 25 Nov 2024 15:08: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFahT-0005MC-E8
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:08:31 +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 20289239-ab3f-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:08:28 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-aa560a65fd6so52214566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:08: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
 a640c23a62f3a-aa50b28dd72sm479487566b.21.2024.11.25.07.08.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:08: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: 20289239-ab3f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIwMjg5MjM5LWFiM2YtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3MzA4LjQyNTU0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547308; x=1733152108; 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=IMtIFcxsrxnwCJTbW27jQnYHHEis1wyd3Vha5aHhCE4=;
        b=T/m9NTfp6ulugJwNYM++2arWEV0BZ93JntSWUIlwb89IFeoY+E9iO7CP7uW51Um9sq
         5PyYibQMcZ7OiHDTtUqlb8u5XmYiBSaPw6tpAj2ZqGjkbwYCUaNBFfGocBqTrLaLK9Ug
         8S4pMsrRWsa7BZtg9qD90rOEhs9bcI4vWtl5VtqAxoBjsv/vBv2g+QEwOIewJRmp3deH
         Fe8brXA6cMMyyq92Ngl74NAzSwqSQiX6XY3wFYhUDsllO/x8as7AuwmDabyh2SrvGZ+u
         PczvLXZpvBKGWJLDYLhFEvQuuzIQWiaSo3GOgR2Frri1c3CPFM3GcAmiyJRjdBEJlP7E
         N9Mg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547308; x=1733152108;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=IMtIFcxsrxnwCJTbW27jQnYHHEis1wyd3Vha5aHhCE4=;
        b=sDEDtg3kZ4bkEFHrlJDPBoDSlWHasyqcv4HBOD5S8xw8S/VyxkahreZqeaZsHVBeh1
         nxKtwHOnpAxTUMUxsaFV0zevmJieafgLKiw/534q+kySCx29HfUtlRuViDh4nZobcwRd
         plWdBFdVyJ2ngInSsBdvPO5AzmOI0pXppQsNnXT8FgECu1Te4yLxaImOqV+zuBBUM1wJ
         7r46tWn/w3xTdSTAQf5OcjfoLcbWnTys8+Flq7x9H2ghxir9yaRfRLm9vvKku/VXSD9Y
         k2Cjcue8s4D2rarr3sFG5mxz8NhA4ZOmja1AikS/O1fQJB7F7KyKw8scY7n75HQ/e7FE
         sN2w==
X-Gm-Message-State: AOJu0YzWQRJdvFhgC8hVz37R4ivg8MSCCOQ/8dlYrUyJx4S5gH+tWR9k
	dB6Q3UohrjZ2gtcuXhQDE3gbHDDZrgO3co6AiTBH3JBScWGgBoPyIEBP0pjgLzeFFAqo82AgiMY
	=
X-Gm-Gg: ASbGnctA2raDKQ4DzUBQsZUC7SOrjr+8xrgVVFxB9yS6tmkLg45QY0YS5Zz5Q4IqK9L
	yrLM4grutc+uueoySkV3KU5o1Mche28V1aoHVJAoKJNh/6GJQB4DOFouk7T1XFX41ew6aao15eZ
	2/p+QaGOJ8ytI/cpFITReWZPUegAj38NrOyZHocvz6LcOXQsVO83Dc7mg7bhxtSdIKzHO89Ye4V
	DIR70KZW+qYMDSXla13UF9Ww0gHeOApXJtuEwMoLZ9nfSxo1OIT3oHF9R1aICTZuY63JoPE344y
	dCC8DT7vS5aYqXF8yeZY+HbdpnHYdpZVzJw=
X-Google-Smtp-Source: AGHT+IHNE3PydLlr4DMgUuf9kqcenwS3uOILtyIfx0cSj7RCpVxCLKaFQAQjsNCejKbKNTpzoAnU7A==
X-Received: by 2002:a17:906:314f:b0:a9e:85f8:2a3a with SMTP id a640c23a62f3a-aa509984a5dmr1385908966b.2.1732547307838;
        Mon, 25 Nov 2024 07:08:27 -0800 (PST)
Message-ID: <8540f7ca-c004-4781-8ae2-d8a552620799@suse.com>
Date: Mon, 25 Nov 2024 16:08:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v7 6/7] x86emul: support MSR_IMM instructions
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Encoding-wise these are very similar to URDMSR/UWRMSR, so existing logic
is easy to extend.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC only for now, as the VMX part is missing: The existing intercepts
can't be re-used unmodified, as those require the MSR index to be
fetched from guest ECX.
---
v7: New.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -1519,6 +1519,8 @@ static const struct vex {
     { { 0xdf }, 3, T, R, pfx_66, WIG, Ln }, /* vaeskeygenassist */
     { { 0xf0 }, 3, T, R, pfx_f2, Wn, L0 }, /* rorx */
 }, vex_map7[] = {
+    { { 0xf6, 0xc0 }, 6, F, N, pfx_f3, W0, L0 }, /* wrmsrns */
+    { { 0xf6, 0xc0 }, 6, F, N, pfx_f2, W0, L0 }, /* rdmsr */
     { { 0xf8, 0xc0 }, 6, F, N, pfx_f3, W0, L0 }, /* uwrmsr */
     { { 0xf8, 0xc0 }, 6, F, N, pfx_f2, W0, L0 }, /* urdmsr */
 };
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1569,6 +1569,30 @@ int main(int argc, char **argv)
          (regs.rip != (unsigned long)&instr[0]) ||
          (uintr_timer != 0x8877665544332211UL) )
         goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing rdmsr $MSR_GS_BASE,%rdx...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7b; instr[3] = 0xf6; instr[4] = 0xc2;
+    *(uint32_t *)&instr[5] = MSR_GS_BASE;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rdx = ~gs_base;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (regs.rdx != gs_base) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing wrmsrns %rsi,$MSR_SHADOW_GS_BASE...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7a; instr[3] = 0xf6; instr[4] = 0xc6;
+    *(uint32_t *)&instr[5] = MSR_SHADOW_GS_BASE;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = 0x665544332211UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (gs_base_shadow != 0x665544332211UL) )
+        goto fail;
 
     emulops.write_msr     = NULL;
 #endif
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -88,6 +88,7 @@ bool emul_test_init(void)
     cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
     cpu_policy.feat.msrlist = true;
+    cpu_policy.feat.msr_imm = true;
     cpu_policy.feat.user_msr = true;
     cpu_policy.extd.clzero = true;
 
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -1262,8 +1262,9 @@ int x86emul_decode(struct x86_emulate_st
                     case vex_map7:
                         opcode |= MASK_INSR(7, X86EMUL_OPC_EXT_MASK);
                         /*
-                         * No table lookup here for now, as there's only a single
-                         * opcode point (0xf8) populated in map 7.
+                         * No table lookup here for now, as there are only two
+                         * (very similar) opcode points (0xf6, 0xf8) populated
+                         * in map 7.
                          */
                         d = DstMem | SrcImm | ModRM | Mov;
                         s->op_bytes = 8;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -600,6 +600,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
 #define vcpu_has_msrlist()     (ctxt->cpuid->feat.msrlist)
+#define vcpu_has_msr_imm()     (ctxt->cpuid->feat.msr_imm)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
 #define vcpu_has_avx_vnni_int16() (ctxt->cpuid->feat.avx_vnni_int16)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -7037,6 +7037,34 @@ x86_emulate(
         state->simd_size = simd_none;
         break;
 
+    case X86EMUL_OPC_VEX_F3(7, 0xf6): /* wrmsrns r64,imm32 */
+    case X86EMUL_OPC_VEX_F2(7, 0xf6): /* rdmsr imm32,r64 */
+        generate_exception_if(!mode_64bit() || ea.type != OP_REG, X86_EXC_UD);
+        generate_exception_if(vex.l || vex.w, X86_EXC_UD);
+        generate_exception_if(vex.opcx && ((modrm_reg & 7) || vex.reg != 0xf),
+                              X86_EXC_UD);
+        vcpu_must_have(msr_imm);
+        generate_exception_if(!mode_ring0(), X86_EXC_GP, 0);
+        if ( vex.pfx == vex_f2 )
+        {
+            /* urdmsr */
+            fail_if(!ops->read_msr);
+            if ( (rc = ops->read_msr(imm1, &msr_val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.val = msr_val;
+            ASSERT(dst.type == OP_REG);
+            dst.bytes = 8;
+        }
+        else
+        {
+            /* wrmsrns */
+            fail_if(!ops->write_msr);
+            if ( (rc = ops->write_msr(imm1, dst.val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.type = OP_NONE;
+        }
+        break;
+
     case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 / uwrmsr r64,r32 */
     case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 / urdmsr r32,r64 */
         if ( ea.type == OP_MEM )
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -343,6 +343,7 @@ XEN_CPUFEATURE(BHI_CTRL,           13*32
 XEN_CPUFEATURE(MCDT_NO,            13*32+ 5) /*A  MCDT_NO */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.ecx, word 14 */
+XEN_CPUFEATURE(MSR_IMM,            14*32+ 5) /*s  RDMSR/WRMSRNS with immediate operand */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.edx, word 15 */
 XEN_CPUFEATURE(AVX_VNNI_INT8,      15*32+ 4) /*A  AVX-VNNI-INT8 Instructions */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -275,7 +275,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS, MSRLIST, USER_MSR],
+             LKGS, MSRLIST, USER_MSR, MSR_IMM],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:08:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:08:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842743.1258423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFahn-0005kH-Cu; Mon, 25 Nov 2024 15:08:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842743.1258423; Mon, 25 Nov 2024 15:08: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 1tFahn-0005jg-8F; Mon, 25 Nov 2024 15:08:51 +0000
Received: by outflank-mailman (input) for mailman id 842743;
 Mon, 25 Nov 2024 15:08: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFahm-0005MC-7b
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:08: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 2bc48ddd-ab3f-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:08:47 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so5680739a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:08: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
 4fb4d7f45d1cf-5d01d3fc777sm4241191a12.68.2024.11.25.07.08.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:08: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: 2bc48ddd-ab3f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJiYzQ4ZGRkLWFiM2YtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3MzI3Ljg5MDk3Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547327; x=1733152127; 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=vMJ3nD3oKVSxJ6DebQ2MnZ/5Mpu0pbIHajJpb6pnss4=;
        b=ARYnI6ZWOtek8yx9mG7LHSJ2etAF+ivcNDv1cwpaPmdsGBBpK6K04lQk2j/wsupmHD
         dEEvll+W5KRKadAKi+8SkBaUUjfoH36+59hu51Jf1w1UhXsoDM5kLi/kP056WiyxN1OH
         NDOu8uZNPvj0jllLy6+0AcW9ix1Rn2TD0NVKLoZg6nBbcQMgA0MILMMJ/isnizWVoBOp
         5mrJtIbvw2KQaPFiEzreul8sGbHjO832yEvav5U/8sVAP/NavQbPKwR+uzhqM5faBsn8
         nymQ1TSYtTy68CBPOU5n9IKm8o8nnKrDb/KaVuZ8W6C41S3JrwK/T1vkUd4ihgH3hg4r
         lNtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547327; x=1733152127;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vMJ3nD3oKVSxJ6DebQ2MnZ/5Mpu0pbIHajJpb6pnss4=;
        b=R9eKt2ZIUhcKEjnXJ6PYJ1qrvjNIDxNp75HgMT3e5+mV6lA1jQTXFe88+THdbW2z+h
         Ti90Zau6HtMatNEEEIxZjpHS7LhbPFza4VCXOHvKOc1/HB7kH8YjxBS3eJ1hGvkd8E46
         jH9C89PW2EuKjz4cwnrH6O+bBSvgaYbymcMF9/a3MfAE3eJHbp+GNDNTtbKkS7gJ7nWC
         Im/3fvDDdMIIPzhFwXrWAu9AdDRvWivZ7rsJbDTNu2OCC9QDhKueY0u5DKn2GD1oGXH9
         ucc9jfRCjEtIUB1kczloERM5wtBDWGRGUZq3kflt0cvoWKB44ySSLJWzXe/RtGIh5cPa
         w6/g==
X-Gm-Message-State: AOJu0YwYghbEdKhIqFdy8XkF5v6kA3hpYU97+vb3fmhdUMVKELAk0Pzd
	HwOT9WDnw1A25cTRrIl00hZlPyw/f3B1i8hW8ccdA3fJ2bdKGd46rtKQdZRip+CzOpFgvgIowMk
	=
X-Gm-Gg: ASbGncs9PZ6XJlOShsGVQ4RUuA1jJsWlkTVqsWGNhAyMaskG5BbP0w8whmyUYe+XbsQ
	p6tZHJos3LL83uC+G0VmJwsv9/lopgnHNK99N6Kj/VZmMyJW7YjAlGTHwdnYVKEQSraC0AociFD
	2PD6xs1XTT/Mf9g82HyCAiJGd29v8lKX60F/rNbH67SJYzeS6HRarpOXzuk3YyQK7aKvmGi/8wX
	amF0+mTH5K9v6ut2zumeLb36t3gWwv/5nMryZ/BmE5TPsYsFUYWVveRpzAOE0+ngTwR4QiCEO00
	hUAPHMDJ2Fxpt5XvBYroNzCa6fTMZrZWTqo=
X-Google-Smtp-Source: AGHT+IEvrrblXIuhRKqzlcEf+hyAoxalwdpP27w/SMOLuII8r5QjF3HFfrX9VELiuhg//manfbsrow==
X-Received: by 2002:a05:6402:1ed2:b0:5cf:e13b:eec1 with SMTP id 4fb4d7f45d1cf-5d0205a80cfmr14247020a12.3.1732547327253;
        Mon, 25 Nov 2024 07:08:47 -0800 (PST)
Message-ID: <b44232f8-5175-4365-9542-f1fae44b7aaa@suse.com>
Date: Mon, 25 Nov 2024 16:08:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v7 7/7] x86emul: support non-SIMD MOVRS
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

As we ignore cachability aspects of insns, they're treated like simple
MOVs.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v7: New.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -843,6 +843,9 @@ static const struct {
     { { 0x80 }, { 2, 2 }, T, R, pfx_66 }, /* invept */
     { { 0x81 }, { 2, 2 }, T, R, pfx_66 }, /* invvpid */
     { { 0x82 }, { 2, 2 }, T, R, pfx_66 }, /* invpcid */
+    { { 0x8a }, { 2, 2 }, T, R, pfx_no }, /* movrsb */
+    { { 0x8b }, { 2, 2 }, T, R, pfx_no }, /* movrs{d,q} */
+    { { 0x8b }, { 2, 2 }, T, R, pfx_66 }, /* movrsw */
     { { 0xc8 }, { 2, 2 }, T, R, pfx_no }, /* sha1nexte */
     { { 0xc9 }, { 2, 2 }, T, R, pfx_no }, /* sha1msg1 */
     { { 0xca }, { 2, 2 }, T, R, pfx_no }, /* sha1msg2 */
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1864,6 +1864,29 @@ int main(int argc, char **argv)
     }
     else
         printf("skipped\n");
+
+    {
+        /* For the non-SIMD forms the emulator doesn't itself use MOVRS. */
+        bool movrs = cpu_policy.feat.movrs;
+
+        cpu_policy.feat.movrs = true;
+
+        printf("%-40s", "Testing movrs 6(%rdi),%si...");
+        instr[0] = 0x66; instr[1] = 0x0f; instr[2] = 0x38;
+        instr[3] = 0x8b; instr[4] = 0x77; instr[5] = 0x06;
+        regs.rip = (unsigned long)&instr[0];
+        regs.rsi = 0x8888777766665555UL;
+        regs.rdi = (unsigned long)res;
+        res[1]   = 0x88777788U;
+        rc = x86_emulate(&ctxt, &emulops);
+        if ( (rc != X86EMUL_OKAY) ||
+             (regs.eip != (unsigned long)&instr[6]) ||
+             (regs.rsi != 0x8888777766668877UL) )
+            goto fail;
+        printf("okay\n");
+
+        cpu_policy.feat.movrs = movrs;
+    }
 #endif /* x86-64 */
 
     printf("%-40s", "Testing shld $1,%ecx,(%edx)...");
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -901,7 +901,8 @@ decode_0f38(struct x86_emulate_state *s,
 {
     switch ( ctxt->opcode & X86EMUL_OPC_MASK )
     {
-    case 0x00 ... 0xef:
+    case 0x00 ... 0x89:
+    case 0x8c ... 0xef:
     case 0xf2 ... 0xf5:
     case 0xf7:
     case 0xfa ... 0xff:
@@ -912,6 +913,13 @@ decode_0f38(struct x86_emulate_state *s,
         ctxt->opcode |= MASK_INSR(s->vex.pfx, X86EMUL_OPC_PFX_MASK);
         break;
 
+    case 0x8a ... 0x8b: /* movrs */
+        s->desc = DstReg | SrcMem | Mov;
+        if ( !(ctxt->opcode & 1) )
+            s->desc |= ByteOp;
+        s->simd_size = simd_none;
+        break;
+
     case X86EMUL_OPC_VEX_66(0, 0x2d): /* vmaskmovpd */
         s->simd_size = simd_packed_fp;
         break;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -600,6 +600,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
 #define vcpu_has_msrlist()     (ctxt->cpuid->feat.msrlist)
+#define vcpu_has_movrs()       (ctxt->cpuid->feat.movrs)
 #define vcpu_has_msr_imm()     (ctxt->cpuid->feat.msr_imm)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -6336,6 +6336,16 @@ x86_emulate(
         fault_suppression = false;
         goto avx512f_no_sae;
 
+#endif /* !X86EMUL_NO_SIMD */
+
+    case X86EMUL_OPC(0x0f38, 0x8a)
+     ... X86EMUL_OPC(0x0f38, 0x8b): /* movrs */
+        vcpu_must_have(movrs);
+        dst.val = src.val;
+        break;
+
+#ifndef X86EMUL_NO_SIMD
+
     case X86EMUL_OPC_VEX_66(0x0f38, 0x8c): /* vpmaskmov{d,q} mem,{x,y}mm,{x,y}mm */
     case X86EMUL_OPC_VEX_66(0x0f38, 0x8e): /* vpmaskmov{d,q} {x,y}mm,{x,y}mm,mem */
         generate_exception_if(ea.type != OP_MEM, X86_EXC_UD);
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -314,6 +314,7 @@ XEN_CPUFEATURE(NMI_SRC,      10*32+20) /
 XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
 XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
 XEN_CPUFEATURE(MSRLIST,      10*32+27) /*s  MSR list instructions */
+XEN_CPUFEATURE(MOVRS,        10*32+31) /*a  MOV-read-shared instructions */
 
 /* AMD-defined CPU features, CPUID level 0x80000021.eax, word 11 */
 XEN_CPUFEATURE(NO_NEST_BP,         11*32+ 0) /*A  No Nested Data Breakpoints */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -275,7 +275,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS, MSRLIST, USER_MSR, MSR_IMM],
+             LKGS, MSRLIST, USER_MSR, MSR_IMM, MOVRS],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:10:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:10:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842760.1258433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFajL-0007Q5-N4; Mon, 25 Nov 2024 15:10:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842760.1258433; Mon, 25 Nov 2024 15:10: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 1tFajL-0007Py-JF; Mon, 25 Nov 2024 15:10:27 +0000
Received: by outflank-mailman (input) for mailman id 842760;
 Mon, 25 Nov 2024 15:10: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFagl-0003aM-9Q
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:07:47 +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 05eb6631-ab3f-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:07:44 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-aa545dc7105so244119866b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:07:44 -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
 a640c23a62f3a-aa54cbaa621sm177626566b.155.2024.11.25.07.07.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:07: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: 05eb6631-ab3f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmUiLCJoZWxvIjoibWFpbC1lajEteDYyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA1ZWI2NjMxLWFiM2YtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3MjY0LjQxODQ5LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547264; x=1733152064; 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=ZAoCUfuRnq4jXBISUIJcs2jTxi4STjB4NfPJQJ4cO1c=;
        b=GZuevLl6WB10JRv9SFa03MEWU8YBIympQ7hB3hdwlBdV6YHdnAKGgq99SfAy8WoVyV
         XV57jq+NA3WksZ+aEkX4K0W4g3MHgTSGH7NV+hZqgp8QTkOdFDMDBgPkP/XnR9BKTf6d
         sacsP1tbHhkXmPBsswCK97vfF8YyAYI1NOY+0RVkBBsax1juS+1icGxcM8q9urooebOO
         B8S0N77JcQAld4Nxu5hC2vIvhaa9x/JPKrEVLYFaLAkTHqHydpgYxg19u+NqtfjYTEhX
         xX9TIqoz25UtdscrKpAKFxoMg2YIRIe+Uh914Gcov3SiRXmFE7afJTqtD11HClQIHpj6
         rs6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547264; x=1733152064;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZAoCUfuRnq4jXBISUIJcs2jTxi4STjB4NfPJQJ4cO1c=;
        b=hHhcwiVM0rAEmtWbGMAlVCkqfuDAxF6gOOMa7G2DDI/DHTsBJrvjf8CZFKrig1z3JV
         miQhAYUlGiYZzShvCS2ZYpPDTJYAP9nUYNvoRu0OA1H/2BAQXn+ifZiabxXzEovWS3O5
         i5gTXaQzuaa5VQ6ve72q2d01gPfZNnokax9nDorCknv0F9U9bT3je0+FSaBVThgKxxEk
         U4w9KZUBQ3BLX+InVQM9FS2zVSPx4vSzQaryVsmXVpFEsnVeFNpXpm4ojsmzQRrhXIvG
         ufivyBgSSW6ovsmGXJa7PDLhNUGQAxbjK3VJRAmyL4UwJLcgqZ+xKagejah8cDJMP/Dl
         pHyA==
X-Gm-Message-State: AOJu0YzGaYcImhYzPpqR6DUQzOWIRFoT2u5cd5/Ax/ItxPe/moeCwxmq
	Oa8TINTGWKhsbcx7JPg4usehb2Nf1ChxXuC1LcWAAQmO/SOfCT1qRc1IWmGMH4TW1u3OdzDPAmQ
	=
X-Gm-Gg: ASbGnctJpDqg920YRh/kDHY9pIESxuzpy9YhvvPsNCj/AfXgHCR2W9VHIAVqIIlZ5V1
	jZu6HHAJcsns/2NmdaOg8TPYHgMntA/azkTGwBrpvVwZYOFq2nT1w9O2zs9R+idnfrvpAC815tE
	9F7LqWBqfj0Pj27S6Q/MBbIwZK3GcTscOYlIE4HlDJ/Qlh2GJ1jA0Lj4r1IAmHAMwNQNxUkV3j0
	mHCNyOVlHYdHIaiyxCIWkUewkr6c6OTehQ0VqpE3A0sdlZfSLEjItHiFQzi7D4CNhb4+2hX81gD
	HF9FXJDYOLBFzskPpTDiiSrSR/Cpft6utTg=
X-Google-Smtp-Source: AGHT+IEfW8zDJMgDAqX3r/EOFNGnz+HslBpn9JqoXo2pHC5+m20f9lCHxklvmYcwATrw5QjkgvMILg==
X-Received: by 2002:a17:906:2189:b0:aa5:2d9a:1525 with SMTP id a640c23a62f3a-aa52d9a1605mr726104566b.35.1732547263710;
        Mon, 25 Nov 2024 07:07:43 -0800 (PST)
Message-ID: <bd15681f-7de2-4604-9ab9-048f5dfb33a5@suse.com>
Date: Mon, 25 Nov 2024 16:07:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v7 5/7] VMX: support USER_MSR
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hook up the new VM exit codes and handle guest accesses, context switch,
and save/restore. At least for now don't allow the guest direct access
to the control MSR; this may need changing if guests were to frequently
access it (e.g. on their own context switch path).

While there also correct a one-off in union ldt_or_tr_instr_info's
comment.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Needing to change two places in hvm.c continues to be unhelpful; I
recall I already did forget to also adjust hvm_load_cpu_msrs() for XFD.
Considering that MSRs typically arrive in the order the table has it,
couldn't we incrementally look up the incoming MSR index there, falling
back to a full lookup only when the incremental lookup failed (and thus
not normally re-iterating through the initial part of the array)?

Said comment in union ldt_or_tr_instr_info is further odd (same for
union gdt_or_idt_instr_info's) in that Instruction Information is only a
32-bit field. Hence bits 32-63 aren't undefined, but simply don't exist.

RFC: The wee attempt to "deal" with nested is likely wrong, but I'm
     afraid I simply don't know where such enforcement would be done
     properly. Returning an error there is also commented out, for
     domain_cpu_policy_changed() returning void without "x86/xstate:
     re-size save area when CPUID policy changes" in place.
---
v5: Introduce user_msr_gpr().
v4: New.

--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -765,6 +765,12 @@ static void __init calculate_hvm_max_pol
          * situations until someone has cross-checked the behaviour for safety.
          */
         __clear_bit(X86_FEATURE_PKS, fs);
+
+        /*
+         * Don't expose USER_MSR until it is known how (if at all) it is
+         * virtualized on SVM.
+         */
+        __clear_bit(X86_FEATURE_USER_MSR, fs);
     }
 
     if ( !cpu_has_vmx_msrlist )
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -447,6 +447,10 @@ void domain_cpu_policy_changed(struct do
         }
     }
 
+    /* Nested doesn't have the necessary processing, yet. */
+    if ( nestedhvm_enabled(d) && p->feat.user_msr )
+        return /* -EINVAL */;
+
     for_each_vcpu ( d, v )
     {
         cpu_policy_updated(v);
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1374,6 +1374,7 @@ static int cf_check hvm_load_cpu_xsave_s
 
 #define HVM_CPU_MSR_SIZE(cnt) offsetof(struct hvm_msr, msr[cnt])
 static const uint32_t msrs_to_send[] = {
+    MSR_USER_MSR_CTL,
     MSR_SPEC_CTRL,
     MSR_INTEL_MISC_FEATURES_ENABLES,
     MSR_PKRS,
@@ -1528,6 +1529,7 @@ static int cf_check hvm_load_cpu_msrs(st
         {
             int rc;
 
+        case MSR_USER_MSR_CTL:
         case MSR_SPEC_CTRL:
         case MSR_INTEL_MISC_FEATURES_ENABLES:
         case MSR_PKRS:
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -676,13 +676,18 @@ static void cf_check vmx_vcpu_destroy(st
 }
 
 /*
- * To avoid MSR save/restore at every VM exit/entry time, we restore
- * the x86_64 specific MSRs at domain switch time. Since these MSRs
- * are not modified once set for para domains, we don't save them,
- * but simply reset them to values set in percpu_traps_init().
+ * To avoid MSR save/restore at every VM exit/entry time, we restore the
+ * x86_64 specific MSRs at vcpu switch time. Since these MSRs are not
+ * modified once set for para domains, we don't save them, but simply clear
+ * them or reset them to values set in percpu_traps_init().
  */
-static void vmx_restore_host_msrs(void)
+static void vmx_restore_host_msrs(const struct vcpu *v)
 {
+    const struct vcpu_msrs *msrs = v->arch.msrs;
+
+    if ( msrs->user_msr_ctl.enable )
+        wrmsrl(MSR_USER_MSR_CTL, 0);
+
     /* No PV guests?  No need to restore host SYSCALL infrastructure. */
     if ( !IS_ENABLED(CONFIG_PV) )
         return;
@@ -736,6 +741,9 @@ static void vmx_restore_guest_msrs(struc
 
     if ( cp->feat.pks )
         wrpkrs(msrs->pkrs);
+
+    if ( msrs->user_msr_ctl.enable )
+        wrmsrl(MSR_USER_MSR_CTL, msrs->user_msr_ctl.raw);
 }
 
 void vmx_update_cpu_exec_control(struct vcpu *v)
@@ -1178,7 +1186,7 @@ static void cf_check vmx_ctxt_switch_fro
     if ( !v->arch.fully_eager_fpu )
         vmx_fpu_leave(v);
     vmx_save_guest_msrs(v);
-    vmx_restore_host_msrs();
+    vmx_restore_host_msrs(v);
     vmx_save_dr(v);
 
     if ( v->domain->arch.hvm.pi_ops.flags & PI_CSW_FROM )
@@ -4076,6 +4084,14 @@ static int vmx_handle_apic_write(void)
     return vlapic_apicv_write(current, exit_qualification & 0xfff);
 }
 
+static unsigned int user_msr_gpr(void)
+{
+    user_msr_instr_info_t info;
+
+    __vmread(VMX_INSTRUCTION_INFO, &info.raw);
+    return info.gpr;
+}
+
 static void undo_nmis_unblocked_by_iret(void)
 {
     unsigned long guest_info;
@@ -4576,6 +4592,41 @@ void asmlinkage vmx_vmexit_handler(struc
             hvm_inject_hw_exception(X86_EXC_GP, 0);
         break;
 
+    case EXIT_REASON_URDMSR:
+    {
+        uint64_t msr_content = 0;
+
+        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        switch ( hvm_msr_read_intercept(exit_qualification, &msr_content) )
+        {
+        case X86EMUL_OKAY:
+            *decode_gpr(regs, user_msr_gpr()) = msr_content;
+            update_guest_eip(); /* Safe: URDMSR */
+            break;
+
+        case X86EMUL_EXCEPTION:
+            hvm_inject_hw_exception(X86_EXC_GP, 0);
+            break;
+        }
+        break;
+    }
+
+    case EXIT_REASON_UWRMSR:
+        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        switch ( hvm_msr_write_intercept(exit_qualification,
+                                         *decode_gpr(regs, user_msr_gpr()),
+                                         true) )
+        {
+        case X86EMUL_OKAY:
+            update_guest_eip(); /* Safe: UWRMSR */
+            break;
+
+        case X86EMUL_EXCEPTION:
+            hvm_inject_hw_exception(X86_EXC_GP, 0);
+            break;
+        }
+        break;
+
     case EXIT_REASON_VMXOFF:
     case EXIT_REASON_VMXON:
     case EXIT_REASON_VMCLEAR:
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -203,6 +203,8 @@ static inline void pi_clear_sn(struct pi
 #define EXIT_REASON_NOTIFY              75
 #define EXIT_REASON_RDMSRLIST           78
 #define EXIT_REASON_WRMSRLIST           79
+#define EXIT_REASON_URDMSR              80
+#define EXIT_REASON_UWRMSR              81
 /* Remember to also update VMX_PERF_EXIT_REASON_SIZE! */
 
 /*
@@ -674,8 +676,18 @@ typedef union ldt_or_tr_instr_info {
         base_reg_invalid        :1,  /* bit 27 - Base register invalid */
         instr_identity          :1,  /* bit 28 - 0:LDT, 1:TR */
         instr_write             :1,  /* bit 29 - 0:store, 1:load */
-                                :34; /* bits 31:63 - Undefined */
+                                :34; /* bits 30:63 - Undefined */
     };
 } ldt_or_tr_instr_info_t;
 
+/* VM-Exit instruction info for URDMSR and UWRMSR */
+typedef union user_msr_instr_info {
+    unsigned long raw;
+    struct {
+        unsigned int            :3,  /* Bits 0:2 - Undefined */
+        gpr                     :4,  /* Bits 3:6 - Source/Destination register */
+                                :25; /* bits 7:31 - Undefined */
+    };
+} user_msr_instr_info_t;
+
 #endif /* __ASM_X86_HVM_VMX_VMX_H__ */
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -301,6 +301,20 @@ uint64_t msr_spec_ctrl_valid_bits(const
 struct vcpu_msrs
 {
     /*
+     * 0x0000001c - MSR_USER_MSR_CTL
+     *
+     * Value is guest chosen, and always loaded in vcpu context.
+     */
+    union {
+        uint64_t raw;
+        struct {
+            bool enable:1;
+            unsigned int :11;
+            unsigned long bitmap:52;
+        };
+    } user_msr_ctl;
+
+    /*
      * 0x00000048 - MSR_SPEC_CTRL
      * 0xc001011f - MSR_VIRT_SPEC_CTRL (if X86_FEATURE_AMD_SSBD)
      *
--- a/xen/arch/x86/include/asm/perfc_defn.h
+++ b/xen/arch/x86/include/asm/perfc_defn.h
@@ -6,7 +6,7 @@ PERFCOUNTER_ARRAY(exceptions,
 
 #ifdef CONFIG_HVM
 
-#define VMX_PERF_EXIT_REASON_SIZE 80
+#define VMX_PERF_EXIT_REASON_SIZE 82
 #define VMEXIT_NPF_PERFC 143
 #define SVM_PERF_EXIT_REASON_SIZE (VMEXIT_NPF_PERFC + 1)
 PERFCOUNTER_ARRAY(vmexits,              "vmexits",
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -206,6 +206,12 @@ int guest_rdmsr(struct vcpu *v, uint32_t
         *val = msrs->xss.raw;
         break;
 
+    case MSR_USER_MSR_CTL:
+        if ( !cp->feat.user_msr )
+            goto gp_fault;
+        *val = msrs->user_msr_ctl.raw;
+        break;
+
     case 0x40000000 ... 0x400001ff:
         if ( is_viridian_domain(d) )
         {
@@ -536,6 +542,19 @@ int guest_wrmsr(struct vcpu *v, uint32_t
         msrs->xss.raw = val;
         break;
 
+    case MSR_USER_MSR_CTL:
+        if ( !cp->feat.user_msr )
+            goto gp_fault;
+
+        if ( (val & ~(USER_MSR_ENABLE | USER_MSR_ADDR_MASK)) ||
+             !is_canonical_address(val) )
+            goto gp_fault;
+
+        msrs->user_msr_ctl.raw = val;
+        if ( v == curr )
+            wrmsrl(MSR_USER_MSR_CTL, val);
+        break;
+
     case 0x40000000 ... 0x400001ff:
         if ( is_viridian_domain(d) )
         {
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -350,7 +350,7 @@ XEN_CPUFEATURE(AVX_NE_CONVERT,     15*32
 XEN_CPUFEATURE(AMX_COMPLEX,        15*32+ 8) /*   AMX Complex Instructions */
 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(USER_MSR,           15*32+15) /*   U{RD,WR}MSR Instructions */
+XEN_CPUFEATURE(USER_MSR,           15*32+15) /*s  U{RD,WR}MSR Instructions */
 XEN_CPUFEATURE(CET_SSS,            15*32+18) /*   CET Supervisor Shadow Stacks safe to use */
 
 /* Intel-defined CPU features, MSR_ARCH_CAPS 0x10a.eax, word 16 */



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:13:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842781.1258455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFamb-0008IX-A5; Mon, 25 Nov 2024 15:13:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842781.1258455; Mon, 25 Nov 2024 15:13: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 1tFamb-0008IQ-6z; Mon, 25 Nov 2024 15:13:49 +0000
Received: by outflank-mailman (input) for mailman id 842781;
 Mon, 25 Nov 2024 15:13: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=S6fv=SU=bounce.vates.tech=bounce-md_30504962.67449426.v1-93126cd645704ad5bb1b1a23db6f04ca@srs-se1.protection.inumbo.net>)
 id 1tFamZ-0008IK-VO
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:13:48 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dbafef5c-ab3f-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 16:13:43 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xxq3V2HmFzG0CBW5
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 15:13:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 93126cd645704ad5bb1b1a23db6f04ca; Mon, 25 Nov 2024 15:13: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: dbafef5c-ab3f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRiYWZlZjVjLWFiM2YtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ3NjIzLjk2NzM2NSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDQ5NDI2LnYxLTkzMTI2Y2Q2NDU3MDRhZDViYjFiMWEyM2RiNmYwNGNhQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732547622; x=1732808122;
	bh=UdPbVs7tbxw8m3eHi70yWcYvKPvOycgYxhz4owZZVHE=;
	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=s9nHozNQnCeoYPkd3sW6406E6DVSYTjJab5/S5uDQBQJ0VAZXnam0qmHdz9Cf4bcs
	 P6Bivbz9hgP6XCESCkT2g8K5EGYwMAjNLAhtVjGs+hhDkvMEVszCpKG6+Hm2yX38Fk
	 RerzR1hUYIoy9i1GHD1lj4ZyL/yz57cV6HxNEUw0maFGeVge67sx94t7s3rlK/twrO
	 6OaUrejYcbr1Xlr7KxMmXsD5VnXI0v6/CPgxSzosBVSNkbDJun8M/V2RNhhh69DR34
	 qqIo8RPCmepo6V5jp2baQQ2NoGrXiRLC/2nvwpTNso8q3LMBogzBcDD/iNwTMmlOdR
	 MY5htkAHx2npg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732547622; x=1732808122; i=teddy.astie@vates.tech;
	bh=UdPbVs7tbxw8m3eHi70yWcYvKPvOycgYxhz4owZZVHE=;
	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=tqS1+CIbJO1umTzcMDJ0/gTyEU7C1BznDDacGLJhmrXBTOLjutIgX4GBwf5ZrdtBo
	 MuarQrPqJUJst+3W9F0Rcs1pmQkAUT7zXvU4HBmsdyLuinuc/GE/Jau5juMfvBfYp2
	 EC7XS2/5iXq9WKqy1NKm/GfSAegX3+ozPSCVrziWK2iGcyrzY/yF2xkxmoTEZfrhKZ
	 ZO7scAla3Z3NKifolyA2i9NySyW6bkBcoveIE99OkWv21NX6sfm3bgh151DjU7mPuc
	 qzU+8KgWpGk2N/g0++3JGNS3bEbdH70j2OEh6r+R/sMQIJ6uKzbeT4KmRFmYfDgEvU
	 ZdVYNdD8nwoXg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2004/25]=20tools/xenbindgen:=20Add=20a=20TOML=20spec=20reader?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732547621616
Message-Id: <aa5ed051-3696-42f1-9eec-d7cbd21d9882@vates.tech>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson" <yann.dirson@vates.tech>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com> <20241115115200.2824-5-alejandro.vallejo@cloud.com>
In-Reply-To: <20241115115200.2824-5-alejandro.vallejo@cloud.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.93126cd645704ad5bb1b1a23db6f04ca?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241125:md
Date: Mon, 25 Nov 2024 15:13:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi,

> +    let _specification = match spec::Spec::new(&cli.indir) {
> +        Ok(x) => x,
> +        Err(spec::Error::Toml(x)) => {
> +            error!("TOML parsing error:");
> +            error!("{x:#?}");
> +            std::process::exit(1);
> +        }
> +        Err(spec::Error::Io(x)) => {
> +            error!("IO error:");
> +            error!("{x:#?}");
> +            std::process::exit(1);
> +        }
> +    };

I think it can be replaced with .unwrap() (or making the main function 
returns a Result<T, E>) as long as our internal error implements Display.

> +/// Internal error type for every error spec parsing could encounter
> +#[derive(Debug)]
> +pub enum Error {
> +    /// Wrapper around IO errors
> +    Io(std::io::Error),
> +    /// Wrapper around deserialization errors
> +    Toml(toml::de::Error),
> +}
> +
> +/// Maps an [`std::io::Error`] onto a [`Error`] type for easier propagation
> +fn from_ioerr<T>(t: std::io::Result<T>) -> Result<T, Error> {
> +    t.map_err(Error::Io)
> +}
> +

May be worth a
impl From<std::io::Error> for super::Error
such as ? operator can automatically convert it to our internal error type

Cheers
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 Nov 25 15:14:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:14:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842789.1258466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFanQ-0000MC-Iq; Mon, 25 Nov 2024 15:14:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842789.1258466; Mon, 25 Nov 2024 15:14: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 1tFanQ-0000M5-EJ; Mon, 25 Nov 2024 15:14:40 +0000
Received: by outflank-mailman (input) for mailman id 842789;
 Mon, 25 Nov 2024 15:14: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFanO-0000Ec-JV
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:14:38 +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 fb71dd82-ab3f-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:14:36 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-434a099ba95so7248935e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:14: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-433cde8fcdfsm130278935e9.32.2024.11.25.07.14.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:14: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: fb71dd82-ab3f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC13bTEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZiNzFkZDgyLWFiM2YtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3Njc2LjM0NTQ2NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547676; x=1733152476; 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=YyuD4K1sHrhw+y8DqTrBQovFbOZHn/VYVv9g7sH6d+k=;
        b=OlvlgKSwrulkzEYPshpDK/Bg23PHvEW6MruWKJOLlz3bn1CxQ9/NuSS5y4FzJMUdDd
         uS/g2nZM2OrBA72TpmP3layGFc8HWvp2vkJ7uKXnHj+64PgouM2znPubPi7/SIs4dCQG
         /xQDCn0VQEy/kNgB0rdmyD+GzTi+tx0r4TVWz0cCLue9ufhDrtFNdfMu0ZDJJyRC6W7d
         7lcXN/Y9M0RVi6M08VyGRZNwX7BnEqQtX7v2tVeI+ZSt8VxSP0s9m6j+xqIWPhpZVVZ5
         Cp/uTb55UnwfFeM6MN/RUfva3mit3PMQr29xfD3F1PngfKVoJlDr/GA/mn6SMhu+AS1u
         ZRYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547676; x=1733152476;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=YyuD4K1sHrhw+y8DqTrBQovFbOZHn/VYVv9g7sH6d+k=;
        b=V2fCuaJN9zeYbvvwBIO2a/lwsBzhxL5rJNgu6cztFZiMCRM1DocvT++vRTNjy/ISR8
         p5Jt2SMwTOtpu/NVFTfmpK7F3mgpwWZzQsy+4+ma3LMe5P0Jfv6BBYHyc9oZqbbkgOuo
         NwpSqMmND+tur4doq6TzDStOSSYqngMpKyqI181F17VBOc4o2q6tdhtIrTIc9in8sXGh
         lZ3GLXxXSgHZR2a5S83dyG2pFUqNSXkbeWed3+UTxq4hCmdLymoMGfauNPUi7GPtmNqA
         40/h8UWAnxWQ5GCqN+ehURpwClw7fSPp+ELq9vhB4oZSrF7Fycs3N55m3hk9IfkNIx8g
         zixQ==
X-Gm-Message-State: AOJu0YzLDpqJ7xUyvaSvmoWCTfKbEqjdA7vPCxR9/4XIt5VYVIH4Q4Lw
	iJHFA9E3jExUQFl8E5q3u8UQzAiGRrP/VHPH+xzZIgT0lKQqB3JFiC99tZkb0DRGwomwsFoTRjk
	=
X-Gm-Gg: ASbGncu9kHoiRI7rz7Praa3IBqfPSVPLHgcbNJD4w14tVGWJ87xUm5qY8N6KDsM2DQ2
	yFaEEhET4Y+5l4VUXBLooM20aE2iB0fO9vUtCGJZB7Pc/RI21NTt4C6PXiHr7VjODa6TiYUKggB
	cmqMXpfEH8Oo1H4ZtALBWbX2NWxcYw2PHTWAKi6sU3I9mBKnMm1zRSlmgiPEzZEJq1HdQlMXmfo
	wBdhapR74ZEVoPa6C2AgTzgpw5aqFe1BqQCMAMIbIGM0T7hFDyh9S485+7Zdlw5l60ufjOZ6Q8f
	pIwS4Ku6nIbqd6gjVy42/SpYU9oirMb48vw=
X-Google-Smtp-Source: AGHT+IHstv5PaZ7AFicsKmR3JZmDTlRaVdSVrDsBKGIlLOO6RWiimS45vcD5259Hxo9XBf9JfTFwTw==
X-Received: by 2002:a05:600c:5805:b0:432:a36b:d896 with SMTP id 5b1f17b1804b1-434872f56a9mr95328135e9.26.1732547675677;
        Mon, 25 Nov 2024 07:14:35 -0800 (PST)
Message-ID: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@suse.com>
Date: Mon, 25 Nov 2024 16:14:34 +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>,
 Juergen Gross <jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] libxl/ACPI: address observations from XSA-464
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: don't hard-code guest page size
2: bound RSDP allocation

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:15:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842796.1258474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaoK-00010Q-Pj; Mon, 25 Nov 2024 15:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842796.1258474; Mon, 25 Nov 2024 15:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaoK-00010J-NB; Mon, 25 Nov 2024 15:15:36 +0000
Received: by outflank-mailman (input) for mailman id 842796;
 Mon, 25 Nov 2024 15:15: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFaoJ-000108-TL
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:15: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 1ca04a54-ab40-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 16:15:32 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-432d9b8558aso31859015e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:15: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-3825fbc38afsm10578877f8f.67.2024.11.25.07.15.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:15: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: 1ca04a54-ab40-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFjYTA0YTU0LWFiNDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ3NzMyLjA0Njc3Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547731; x=1733152531; 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=TGRkgRXpIK18BrPBydpyw7bMQqZHWSHjK9VFOA2LsgU=;
        b=Z2/y9KLFnk+Ji0Fq6trGwrskKYb/MHr5tx4d+HERI7P2dhqsGqZC16mikhzS4rT9Kn
         HEvSQLDfXP/CiYy7pBZov8Cx0S3KM81AY1AgwZDoTiF45JX6zofkdGkMtLgZCSa0cTz3
         7E+ThnnK5naXu6dMqWywvJMfas2PolPPOVCijTnp8gwgNUP48nptVuyPXI6DKK0WwCX7
         1Yje6UIcokzHwpgGZy7fF4rTZSuLO8za2URTLNpmWwerOXbWNjttuv70qTWCN3Gt2SOM
         mej/TvnRZ+39978Vd5e4/zSk81/huz4CVeJ6BjkK0EPQcMKf/OKTXATKgjidKq6iOsob
         NXYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547731; x=1733152531;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=TGRkgRXpIK18BrPBydpyw7bMQqZHWSHjK9VFOA2LsgU=;
        b=aoq1iVb5Ft0Iegx528LHypi9+47t9Yo90Ce/DGVkFL2Th0bwmI7u3r4bBpqaRxALqa
         //MgKwy5c9CdRurjyDQqrfCKIa5HX5nswa+OCIH54JmsVo0IjKP8Vjz+bQLNtcDP4bgl
         jhUEaozP7zhVtvlYc9XPdUV8FJoHwPPOZOyh7wqWo0JRmMUcpGP5vJl1oJOAiqBFIyXk
         9toKY8IkAa/Su4bBg5ZuJ900Z6UnivHCPOHDf+incQoL9UlfiJMMV2iKeKnQ6Z4dbOcm
         mMNBxorXgFrRxeeh8/vqnrd2CNGEGyvCnmx02Ytbkfi616Re/aehCc72fRmtd9VgodPw
         DLFA==
X-Gm-Message-State: AOJu0YwFsutvBapFaCyklO5Vb9MkA9q0xE7sgCPFOhNfdc81HNSIaUYW
	/p/HQka16oJAwvX2pNk16avp+1qaoXyGmzM3Z5kP1M1wJbjQ14oDBuiA8XCQy5Fz14inzCvw0bA
	=
X-Gm-Gg: ASbGncvbWHEpuNOG0Irije7ywsLQugQlkcwVSTP6lYXq5xVYR/9s9oN2S/RhHg98Aj9
	fw4Rt5ODVT3qVaAxE6e9KnTJcj/fWrHFnMnX3YjBA67Y9NkND4JLJItXBNBZ6pLwHKwx+Uj+rc4
	GsZfn0aDGczDEo8TieAZw+PGqdPIMDdaOgD0AL7+4+NQXNKKs4RfRYMG7OFhDsRCp4MyGovDCHh
	fcVa550pr2aUJp0mVqY9y1wKMJ75F+m0EhloFwLpHTyKcKLp5g+CwIonmU8EJZZ8TqJip+3Hlby
	Z014YS1JkRqSygRFjsMzi0brTFHg+lW0gvA=
X-Google-Smtp-Source: AGHT+IGPj/0qEdeUlaY1455oF82V8Slr3195f0Xx9Hr3o5MCdEhyzG3ilHWB2pxtvz0kKbiL/xRXyw==
X-Received: by 2002:a05:6000:2c8:b0:382:3211:6b7e with SMTP id ffacd0b85a97d-3826061faefmr10747933f8f.31.1732547729929;
        Mon, 25 Nov 2024 07:15:29 -0800 (PST)
Message-ID: <9eca264f-57b3-45d3-8017-cd11af0b6cf7@suse.com>
Date: Mon, 25 Nov 2024 16:15:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] libxl/ACPI: don't hard-code guest page size
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
References: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@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: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

We have libxl_ctxt.page_size for this purpose; use it to eliminate a
latent buffer overrun.

Fixes: 14c0d328da2b ("libxl/acpi: Build ACPI tables for HVMlite guests")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Yet better might be to limit the size to what's actually used (libacpi's
struct acpi_info). That would then also have avoided the respective part
of XSA-???.

--- a/tools/libs/light/libxl_x86_acpi.c
+++ b/tools/libs/light/libxl_x86_acpi.c
@@ -218,7 +218,7 @@ int libxl__dom_load_acpi(libxl__gc *gc,
         dom->acpi_modules[0].guest_addr_out = 0x100000 - 64;
 
     dom->acpi_modules[1].data = (void *)config.infop;
-    dom->acpi_modules[1].length = 4096;
+    dom->acpi_modules[1].length = libxl_ctxt.page_size;
     dom->acpi_modules[1].guest_addr_out = ACPI_INFO_PHYSICAL_ADDRESS;
 
     dom->acpi_modules[2].data = libxl_ctxt.buf;



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:15:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:15:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842798.1258485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaod-0001Nf-1y; Mon, 25 Nov 2024 15:15:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842798.1258485; Mon, 25 Nov 2024 15:15:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaoc-0001NX-V2; Mon, 25 Nov 2024 15:15:54 +0000
Received: by outflank-mailman (input) for mailman id 842798;
 Mon, 25 Nov 2024 15:15: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFaob-0001NF-UJ
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:15:53 +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 2819672f-ab40-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:15:51 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-434a1639637so5766675e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:15: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-43499bdfc0fsm73468575e9.19.2024.11.25.07.15.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07: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: 2819672f-ab40-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI4MTk2NzJmLWFiNDAtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3NzUxLjI3NzUsInNlbmRlciI6ImpiZXVsaWNoQHN1c2UuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547751; x=1733152551; 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=6Rt7SMGZpWzGl0ygHzpmt9iX7x/9cyy3QYKd49U7x4A=;
        b=Pgk1r2+qTEhIKSfo4KXN1fr0FkXYjrjh+4Nn7jcfpmzzciMHTg11yz+RQA5LKyaBNK
         SarxrteHJgwUSR4MmpuEIrYQsyoiefTZW6Mzt7squpC80p/tzL4sYilKvv3GVjLNgEZo
         bVtkZRwVa5ZM4JzByMJ5RPOacTWVVDs3rbUnVyhRoh3qVv7w4+DA3eyx/8aQNz/w9ddg
         zFizeZ5gjbP/WMOeOfLZ/SVI/BT2my6Ba8MUSuE5MpYpKutnfEWDS9fhQns7Ij3mU3FV
         IJkbIGOJGKiXs/DecOKIyH7FM1C2NA0A4KLQa5B+wK2IAWjx+LJVz/C5xpm0WX+ET6T5
         SEYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547751; x=1733152551;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6Rt7SMGZpWzGl0ygHzpmt9iX7x/9cyy3QYKd49U7x4A=;
        b=LSbQrAEBivm8yVc1/0kW1X5GHx99XzRMSTjW6bSH6PzUagh+XhMuuAJWKaV7sAIyNb
         NfdZ7W6RD+FlFsgxEmlePT0Y2p0WBGEY8RI7rGLrt0vsTWjX0PAElnzIujmWIk71Dua9
         4lt011vyI2z8FImxsXxFKmPsVgOnBW2bKt7e1+dzcy9L4z0yi30805aoBwVCMVPxWAU/
         npfpCUh50Bycko1+i9Mj+/9CUp542yPiarUOGyLYeGi7uBASP0mk6D6bIcu1tTskJZv+
         ZcylReXGP+j9Q7S0fK+ZTjFribPJ0N9Q6Eyi/Sephb0DrT/bZnZ1hh9FoOB7MI7fQOsf
         DAlg==
X-Gm-Message-State: AOJu0YykQ4ZoqZRsCYr15HZXmLUnB/y8A+yIUGF+SQsZrlSPncHjLwOH
	XHfJbOCDfQGAOBYhXmxgsm9p5iLchFlo/jZ3EjS4scdO3VMQXlj8/ZREOHzhrseU1HGjCZ4qIJc
	=
X-Gm-Gg: ASbGnct8tYh0RRlKRf2jT83s5bizulms5hndZ/LxhMDRgokQ55BMFE91lxX9KWvspom
	GOtpA4f2HA44kZ0Ytp7p6Gmg/Xz/YZzYe0wEsVGBCHWomP5rIAr0G0+HqIvOFaLQZwsVdyNjrKz
	LfiI5G9AT1p5C+5P9QZ/1e4cnUg4sRG/bTrWodtQHOUk+UaKL9ZgJ9dcbEaIRv7j1fXrOuLA2Nc
	IUgtIL5UcwE3tuRgkREoj2D3odwbInurETBa3zo/pBQVlpeFh6JtnAGkqIPbfC7ED4aY+9pUg53
	jcELWJdGU+EpVi3eFBkpmNj7C86V5HkYTAo=
X-Google-Smtp-Source: AGHT+IHIdwO1/kmBMbSzRc2tO32O71nDHVfl2hV7/GbvC6N2YVBcLBl0tlbMu0lm0aFGyeaEHjC9FQ==
X-Received: by 2002:a05:600c:1d0f:b0:432:d735:cc73 with SMTP id 5b1f17b1804b1-433ce424ff9mr110023085e9.11.1732547750515;
        Mon, 25 Nov 2024 07:15:50 -0800 (PST)
Message-ID: <e995156e-c84a-426f-8d20-bebc8ccb3961@suse.com>
Date: Mon, 25 Nov 2024 16:15:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] libxl/ACPI: bound RSDP allocation
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
References: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@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: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

First instroduce a manifest constant, to avoid open-coding 64 in several
places. Then use this constant to bound the allocation.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Similarly bounding the info "page" allocation would be nice, but would
require knowing libacpi's struct acpi_info size here.

--- a/tools/libs/light/libxl_x86_acpi.c
+++ b/tools/libs/light/libxl_x86_acpi.c
@@ -20,6 +20,8 @@
 
  /* Number of pages holding ACPI tables */
 #define NUM_ACPI_PAGES 16
+/* Hard-coded size of RSDP */
+#define RSDP_LEN 64
 #define ALIGN(p, a) (((p) + ((a) - 1)) & ~((a) - 1))
 
 struct libxl_acpi_ctxt {
@@ -177,7 +179,7 @@ int libxl__dom_load_acpi(libxl__gc *gc,
     }
 
     /* These are all copied into guest memory, so use zero-ed memory. */
-    config.rsdp = (unsigned long)libxl__zalloc(gc, libxl_ctxt.page_size);
+    config.rsdp = (unsigned long)libxl__zalloc(gc, RSDP_LEN);
     config.infop = (unsigned long)libxl__zalloc(gc, libxl_ctxt.page_size);
     /* Pages to hold ACPI tables */
     libxl_ctxt.buf = libxl__zalloc(gc, NUM_ACPI_PAGES *
@@ -204,18 +206,18 @@ int libxl__dom_load_acpi(libxl__gc *gc,
                       libxl_ctxt.guest_start) >> libxl_ctxt.page_shift;
 
     dom->acpi_modules[0].data = (void *)config.rsdp;
-    dom->acpi_modules[0].length = 64;
+    dom->acpi_modules[0].length = RSDP_LEN;
     /*
      * Some Linux versions cannot properly process hvm_start_info.rsdp_paddr
      * and so we need to put RSDP in location that can be discovered by ACPI's
-     * standard search method, in R-O BIOS memory (we chose last 64 bytes)
+     * standard search method, in R-O BIOS memory (we chose last RSDP_LEN bytes)
      */
     if (strcmp(xc_dom_guest_os(dom), "linux") ||
         xc_dom_feature_get(dom, XENFEAT_linux_rsdp_unrestricted))
         dom->acpi_modules[0].guest_addr_out = ACPI_INFO_PHYSICAL_ADDRESS +
             (1 + acpi_pages_num) * libxl_ctxt.page_size;
     else
-        dom->acpi_modules[0].guest_addr_out = 0x100000 - 64;
+        dom->acpi_modules[0].guest_addr_out = 0x100000 - RSDP_LEN;
 
     dom->acpi_modules[1].data = (void *)config.infop;
     dom->acpi_modules[1].length = libxl_ctxt.page_size;



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:18:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:18:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842824.1258495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFaqu-0002FZ-EN; Mon, 25 Nov 2024 15:18:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842824.1258495; Mon, 25 Nov 2024 15:18: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 1tFaqu-0002FS-BU; Mon, 25 Nov 2024 15:18:16 +0000
Received: by outflank-mailman (input) for mailman id 842824;
 Mon, 25 Nov 2024 15:18: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFagM-0003aM-Nd
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:07:22 +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 f789e8a3-ab3e-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:07:20 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5ceb03aadb1so6230989a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:07: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
 4fb4d7f45d1cf-5d01d3b88a7sm4211936a12.31.2024.11.25.07.07.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:07: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: f789e8a3-ab3e-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY3ODllOGEzLWFiM2UtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ3MjQwLjI3NDc1NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547240; x=1733152040; 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=k+1d1eHTAbN7qx8eZxxGuToNd+oa2jtDcMn6UWnYD5k=;
        b=Bl44DEnHcf2inRdL5baHlRuyPMVfm+ebTM0EQ/I6xwvyHGIQfAdnbO+QZaW+Jo6rOu
         glhsjr31a2UMNZ3rj/xQuv73TTQvhkqGQVLlu/I04szdYuVYIqGQqtAXSmAq80w+xccX
         cwbz9hJGP2L6mWnXDC6+99JRbCJ9bMomRvzN5BxsXsHW6RUJX9GcOeZunV9x7dHdWGTc
         8iau9xSvQX4eQVP1h70/VvUYuzGNXt/xXpszTUn932d2zR4GGTTruOJlWUJ/JTrkTxc2
         rhThZJdnBQnzrOcNvmGo2ijp4YBeFeLqEbsXu54bC5txKJQQgUQj075q4EBqyNlDaOXL
         GnAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547240; x=1733152040;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=k+1d1eHTAbN7qx8eZxxGuToNd+oa2jtDcMn6UWnYD5k=;
        b=K9lra+f0Nj5N3q5eFBQwp1t/+4mAVmOzvAwOuxmw7LiL4lF9WroSTtFVzSRAsOzF9o
         Mb3iovEqDwvBc1viqcUOzhvn7z8VgmLar4gerMYJ3b50EtoHi/N4In+o/yv8HAEDWJQ6
         4jBjiB1gslrrqnQ7o2S+If/pm8pvFbDsoxAZbAslrHJu01gabE8Y90Ag//Vf+/Z2VWMM
         GLw6iXFrGO3SgzE09WQZnU6XKjEFdcfqt0Y2eQ+Hna0MDz5EerfZHsK+hocn3HDOCApS
         x1FI6BtyznqtSpHd7uzCI6TAq8lX1BxRrhlGqeSwSzTqBeo5ml049GDyjiX0C0K7SCsI
         3NhA==
X-Gm-Message-State: AOJu0YzPo94wNKPLQD3LA+ZjZyM9oe/LHp/DBfTtW+BLyqr5CYG7YVN2
	MoU4KTyPZeox1m7gbHPLciBKKni9Q0WUVj53B92IcKNfBPmrkTMYIfeSVQqyzM3rr6O3G+daH1s
	=
X-Gm-Gg: ASbGnctIymFQtTDy8Kxll4GSXmFl7DZyPFMNn6ttAOYtGh9yIiy5z+dc1vHuam430fm
	G1OLFHaJ0NE0AgXlpAjFDqPRJI2of9JHDBc+O45etm1yt2OBsCPSPjE4dqbAuWk2VYZ02ATU5nL
	o6BzhgGExIKW5w31vHZeLo39bTMQNR2Ex/eB8nJba2mzOi9ttCYo+gSyX6ZLWFWaTnVKi2dENp9
	UomPJqjE5La95B4j8SXmujAJoVrmGOnz0ZAnKPXdww7+jwJYuq33EIPGmMWRrR3+enxvRKqFPt9
	M+c9xJFFtOxH9hUL7dtOiOp62C3kbkPgPTk=
X-Google-Smtp-Source: AGHT+IHbPhNiogIELLJ6cjXrvcWfeM5Il4LLgbQ3SkT0Fk+63R+PZDTuXBm6j3vc+bR/y0Wh5uomdw==
X-Received: by 2002:a05:6402:27c8:b0:5cf:657b:bf0 with SMTP id 4fb4d7f45d1cf-5d0207c1530mr9370345a12.29.1732547238555;
        Mon, 25 Nov 2024 07:07:18 -0800 (PST)
Message-ID: <df9668f1-7d26-4c14-a8d2-0f2107f68ca2@suse.com>
Date: Mon, 25 Nov 2024 16:07:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v7 4/7] x86/cpu-policy: re-arrange no-VMX logic
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Move the PKS check into an "else" for the corresponding "if()", such
that further adjustments (like for USER_MSR) can easily be put there as
well.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v5: Re-base.
v4: New.

--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -756,19 +756,20 @@ static void __init calculate_hvm_max_pol
         if ( !cpu_has_vmx_xsaves )
             __clear_bit(X86_FEATURE_XSAVES, fs);
     }
+    else
+    {
+        /*
+         * Xen doesn't use PKS, so the guest support for it has opted to not use
+         * the VMCS load/save controls for efficiency reasons.  This depends on
+         * the exact vmentry/exit behaviour, so don't expose PKS in other
+         * situations until someone has cross-checked the behaviour for safety.
+         */
+        __clear_bit(X86_FEATURE_PKS, fs);
+    }
 
     if ( !cpu_has_vmx_msrlist )
         __clear_bit(X86_FEATURE_MSRLIST, fs);
 
-    /*
-     * Xen doesn't use PKS, so the guest support for it has opted to not use
-     * the VMCS load/save controls for efficiency reasons.  This depends on
-     * the exact vmentry/exit behaviour, so don't expose PKS in other
-     * situations until someone has cross-checked the behaviour for safety.
-     */
-    if ( !cpu_has_vmx )
-        __clear_bit(X86_FEATURE_PKS, fs);
-
     /* 
      * Make adjustments to possible (nested) virtualization features exposed
      * to the guest



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:19:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:19:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842834.1258505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFarh-0002t0-PE; Mon, 25 Nov 2024 15:19:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842834.1258505; Mon, 25 Nov 2024 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 1tFarh-0002sr-MN; Mon, 25 Nov 2024 15:19:05 +0000
Received: by outflank-mailman (input) for mailman id 842834;
 Mon, 25 Nov 2024 15:19: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFarg-0002ed-2j
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:19:04 +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 9912bfbd-ab40-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 16:19:00 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43163667f0eso40907375e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:19: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-433cde98b4dsm132705555e9.43.2024.11.25.07.18.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07:18: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: 9912bfbd-ab40-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk5MTJiZmJkLWFiNDAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ3OTQwLjgxNDM0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732547940; x=1733152740; 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=Bbzl4+WdF2uCFxZFiU3I43axHjlGKuMk0FeLDNxovys=;
        b=HffpTL2H8oENuruUV13AYX3TKdBdG8CieOEBiLTz5GiwEnz3kw9ZbWe3qG0K3gJ4jg
         zFOr1Xrq4yloyNyMNpv5woSMBUVf1g8oPAGrwevoatd5HLl7vqgFsPsOZ38PwcCGOppa
         mQbQXHr4mol8JGcgM4+2EKZSNPVrcf0yEXXMzILoK8Yb8hXdkGNIb8HjMKJnBQC180Bx
         A57lu5nxI8e6sHwAA/3+ryGtHDR/uerQJCLYRLZRgenrSLQ/jr11wGOkcfoiupj9KYaF
         gDnPNopHU2hTrT6bCRVtsXppFwqfvIziuWIn5gIQ6jpzrUQ6ufrx4b0b8wuxP7x4Qe6U
         8VrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732547940; x=1733152740;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bbzl4+WdF2uCFxZFiU3I43axHjlGKuMk0FeLDNxovys=;
        b=q/WcdMAHTPJQInZJcMT9lGSsCpJxu6fIh76FrsHq2qNuZwVCA++ApeGNKyp/gCMH0l
         EqRIeRRvB97pyz4a1HG26hRkLcHB5Ly2CYI09YHyYMKfsdNkPqHdvi04/gTnkYTcNBGg
         faA/Vwlej2iEJxFgedjQvx8aRCqa3PYj4DiFHLFtd8wUwlvwxC6jIf+Js/rQeuZaUkmv
         m2XrHQBlemj2HK+h4Rd/g/FqH6FYM4W6yW+AqpDmyK6MNe2wf+T7tFCuL+03XdKah+8a
         AqcdslHe67nMV4wkzfVuG2NZnKGpKlBn8GTgGAWf/boojO13Pmlrz2M01hCDEOMiC4vs
         uh7A==
X-Forwarded-Encrypted: i=1; AJvYcCU6himAwL8HlV3A846nn2ZLn5QxOv5eiQdElS96f2qKFCobTddOu2z40POW/521vZKqapjCwmezmbk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YziQEQXjjcIsx1ta5as4VBkuIh/QGPRzjyX9xfkO7S/rDEY+04/
	mM6cXnrk6fSjLQwK8AEOP1fvMAXjjVc1pE8TQ2Y7H6E+vcz5RP0WK+YoZ/EC/g==
X-Gm-Gg: ASbGncsG+jCHTQYA12p7t4vkVCKQ7IEZaA0tfkC29HrUDOcrzJRL6oiWV1pT0baGP/k
	RiE6rcM2EFwLmXo+PFR/3T4UgIGcqX8iKDH9sbWCudpGvCRFbJae5Yupixi44KmA2tyFMK0gppV
	4KPrNnag4QSWwOLRRUONuH9krlbgv7ruCrrNTHEYC4OV+FKo+wmA6B1XN3IL9H0jbajud4gunsI
	fKZfSOj6j8gXI8m1guuSBa8t2Yvf5ycz+VmyhDn0tjq7tEG/bLyNSDl+fdZr2ZZEJrzgsHGXgDj
	WtKhhIr3IitYn4VeDPVzxN4xBT27tm8hSM8=
X-Google-Smtp-Source: AGHT+IFZSvI10ODL8rU+rszr/9jzKHlhkzvR+dY/mPY0TikooRIWjPIp8s0uT+OGSAmbtpMdNl0W7w==
X-Received: by 2002:a05:600c:3d8d:b0:432:d82d:6a6c with SMTP id 5b1f17b1804b1-433ce4e74f4mr122093825e9.30.1732547940238;
        Mon, 25 Nov 2024 07:19:00 -0800 (PST)
Message-ID: <095d7f9b-ca64-4241-a268-ae481dec4535@suse.com>
Date: Mon, 25 Nov 2024 16:18:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pv: don't populate the GDT/LDT L3 slot at domain
 creation
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20241121171504.55383-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: <20241121171504.55383-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2024 18:15, Roger Pau Monne wrote:
> The current code in pv_domain_initialise() populates the L3 slot used for the
> GDT/LDT, however that's not needed, since the create_perdomain_mapping() in
> pv_create_gdt_ldt_l1tab() will already take care of allocating an L2 and
> populating the L3 entry if not present.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:37:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842850.1258514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFb8p-0006u0-5q; Mon, 25 Nov 2024 15:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842850.1258514; Mon, 25 Nov 2024 15:36: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 1tFb8p-0006tt-3B; Mon, 25 Nov 2024 15:36:47 +0000
Received: by outflank-mailman (input) for mailman id 842850;
 Mon, 25 Nov 2024 15:36: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=caTh=SU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFb8n-0006tn-Eq
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:36:45 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20610.outbound.protection.outlook.com
 [2a01:111:f403:2412::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e24abc7-ab43-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 16:36:37 +0100 (CET)
Received: from BN1PR10CA0026.namprd10.prod.outlook.com (2603:10b6:408:e0::31)
 by SA1PR12MB6996.namprd12.prod.outlook.com (2603:10b6:806:24f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.18; Mon, 25 Nov
 2024 15:36:29 +0000
Received: from MN1PEPF0000F0DE.namprd04.prod.outlook.com
 (2603:10b6:408:e0:cafe::b2) by BN1PR10CA0026.outlook.office365.com
 (2603:10b6:408:e0::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Mon,
 25 Nov 2024 15:36:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000F0DE.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Mon, 25 Nov 2024 15:36:28 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 25 Nov
 2024 09:36:28 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 09:36: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: 0e24abc7-ab43-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjEwIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjBlMjRhYmM3LWFiNDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ4OTk3LjgxNzM0NSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nt9RxlGt5khm3daM8Ebmq0v8WdjL6LkronvbXqlI+GIoQ3GlkIdHa61DeWCk7HiEvWV1XTddRdaxHmULooKBsOs7x3OpkWHTDyTzBrlI18GnG+OdYumpXMRTfeY0SYpoO34MwXvhGd7Rn/dn7UqyTMVuMFKQgCbiiayUwOJeqN22VS3Tug47CFtpZ4fxGtssnK1sSloE0YFKVkqryc/M2BpdmZzBMcyNl5EeHdnAlmisjuPXOyWXKMPWfHgAUkXOWti3mE6NVF45TgeB9AJLwgvN8JyRxClbCg3Md6aGdexFbSXwDyi/cpqCN3AswsNS3/qCNE3tMA116GyiLkrgYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4J51+lDHhNwh6NrcVtc/YQ0yJh+FbGCdIjYLSuiOjXc=;
 b=qQ3juLHeirTNHex3FtWxMW8Sl74U6vSOqDZnKCVHzLVBqgqObbGS+tyP8M+bEmMrDbkUsgNOlhhwVBhsi1OUSrTOg5seHUTNUD6wyWWCBbblSEcNXAipMbeLAGN6ZEa9gK9oTc2BZ3MkjmsgnRdjvQk/HxBlsY9ebyr2rcKrc+unuJXJ4XEeNBpMAHZD+kNKfd0eTskCEjhaCTgBDBwfsNHwgnuRe2Ki2hueIjOw7ktLutbt45T7WNz2PqRJm9QJiKdYnJeipES0qT2Tu70sRm1fbGrMQY4YquOmIbBdiRBsUE1J+DocZF9x1wqOH4XrtKi8h2stbFEMbOBG1Olhvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=4J51+lDHhNwh6NrcVtc/YQ0yJh+FbGCdIjYLSuiOjXc=;
 b=ccLPmBtk8ooL4nPdzLEzSJnjAZCHTT4d21mqJCKdBx4d/mcIeDuq0YlQYIt/CXK1Jkfck64a7kD3o2yboUF9MdfYjT4zLUjp4ummKmF51xxcOW7LTjxeGiGppKNUzsHUCzxWMeIRtzKEEJffgH5GN7I+iLi3pzExdluf8xHNOb4=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <bc643da9-fba5-42f1-8e25-0d197fe25cae@amd.com>
Date: Mon, 25 Nov 2024 10:36:27 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/15] x86/boot: add cmdline to struct boot_domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-4-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-4-dpsmith@apertussolutions.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: MN1PEPF0000F0DE:EE_|SA1PR12MB6996:EE_
X-MS-Office365-Filtering-Correlation-Id: f9c1dd2f-2843-48eb-f89b-08dd0d66ee01
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?MDdkcElnMGFjTjg4YTdydHplSmtlNXJtMW92YUVZak5KbCtzc01OeFRxOXNy?=
 =?utf-8?B?QlRsMklRelJQNzRqZ1VUU1ZxTnAzcTNtVDEyYUpaZDRuTUdKZDhGcW15VHBn?=
 =?utf-8?B?RGhxSWs2d3I3emNyT0dLckVTRjlnVVRKaWptSEpJaXdIaE1GYVA0bkgvU3R0?=
 =?utf-8?B?T3JaRmVMVmpvZ3lOcWpiSnptK2ppRk1ZSjg0Yzl5MXhSb3JGemhFaVlQdmsr?=
 =?utf-8?B?Y21GKzFwQTlPZGZnZHFEQ3hHQkdBaTNPRG9JSlJEMTB0a3lhL01rTDJUdG1S?=
 =?utf-8?B?ZFY3RjlsSEpjcFZJTTEvZ3UzaU9NbzJYUDZCWWxhZ0hMQmdETC9xNk5SNUlG?=
 =?utf-8?B?QTNzc1RzK3J5ZGFsd0J6OVdCQzlvNFVHdFc5ZE5LYituQzBNYUdrR0diWlFV?=
 =?utf-8?B?c3gwblk5aUdkUFllem9BLzVycjI4dUdqbWV3eXF6UlN6dk9mcm56eDFiMHBl?=
 =?utf-8?B?Wis2U0lpK045Y25MUjd6L2pXWUVtR2w3TUZIV2Y4TWo3UWNUWTRYbzRMdWZZ?=
 =?utf-8?B?ZkZpM09RWjVJaWlGaGQ5bXRCN1lqTXZ1V0xRRE8wVW1IWnZTRzFzSGhhNFJI?=
 =?utf-8?B?bmRpeDcrZzNDTXkrTk9yTEs4ZURBZkJZVFNYRFl1TUswLzZGcWs5c2NOZUVk?=
 =?utf-8?B?czZxdmUzVFVoeG1sdlZJWE93alVpOUNvdzNnUmREcDVsS3lXUnlONmdyTHB3?=
 =?utf-8?B?RStzTm95UFlRQkhCV1pBazB3K0VjRDVvZkd2RmJqM2pvQWxVdlZ3SmhUWmt3?=
 =?utf-8?B?QjJnR2pNaGIzamJnTndqdWVXdTF6S0tNUDJYcFVZVDhwQWRYUFM2QVVGVDNu?=
 =?utf-8?B?YzlsdW0xcW56TmhMRThYWWlrbVZTdUhGZDg0cDVKMDk4Um1va0ZxU3FSVFFW?=
 =?utf-8?B?QWg5dmM5L2pZNytpcG8wcHlVcWgzSi9sQ1pJOTRUZ2lYZ1lheVpUTTJ0Qmtu?=
 =?utf-8?B?MEc1Y2lWc0daRWF5NGwvZzF5V1d0c09hYmRBdVlmcjNIemw1YXhCMW9pL2Zq?=
 =?utf-8?B?WDFHV2N2WnhPR1VwMjFBdE5YSFMrMjFJQjZrajNGUXBJZlRIVmNXdk5zekFI?=
 =?utf-8?B?Z1NwUDN5UVJMMFhEZGJnaUFGQlg2blhtNEJwM1kvdnp1ZG1GYWZrR1BVRG9x?=
 =?utf-8?B?bTFsMUNRNXhBc3lkdWZ0eEo2OTA2NnpNOVdIQWhPQ3pldHh3ZFdoS20yTFd1?=
 =?utf-8?B?c0hIL1ovM0RnNHNvUVhNUVNWMnZWeVI2UDBFVjJxUjlkN0FIOGQrUjBzcEEr?=
 =?utf-8?B?Q1BRSjNMYXlnZ21qR0xVekt4Wm1wRnBiTkF5Z2RyRWFCcytQMGwxT0VlMUx4?=
 =?utf-8?B?bFpIRERhVVFMS3Q1Q3N4MkZWUWxheEcyUjBuWnpSWXBKNXJXa3o2ZU9hRExh?=
 =?utf-8?B?eStqeTFKSDlYSVk5TXpjTEtLeGp4UVVnbW9rMjY3bCtCSHRWdVhTYUN6Rlcx?=
 =?utf-8?B?MWxUTmVDcHFXYUFza2drS0ptZXltbHVtMHRubzA3bTlSaFdiKzJpdWZmVGhz?=
 =?utf-8?B?VllLeGp2KzN1WExReEJXMUN0QUw0QW5KWHc4K1ZETU5DNkRFUVRWNXRKRit1?=
 =?utf-8?B?b0l3Ri9TOUU2K1J2TStjcXpLZ25KQkV0cEV4THZuTjBrWGlkcHF4VTlpNVRr?=
 =?utf-8?B?YTU3RjMwbWM5b0RQNk1hRGRVMUlUNHZiVC9WTG1GN25QaDhGcHBEbzI4ektQ?=
 =?utf-8?B?bnQ0OXdSRFdBanlEdEc3S2NRVlF3Tnp1V1F2MXFMWjEvNzJNNEhsUDZTUzRX?=
 =?utf-8?B?MWo4RVpTSWFlVk8vbWcrNkdjbmplV25RL0xobGNwcUx2aEZTUk90dnJrNGxU?=
 =?utf-8?B?bEc5MEZiWDVYMGs0TmxzUzlMVkdrcnZ2RW41RVFPdDYwOTFCd21lSXE3V0xv?=
 =?utf-8?B?cnNtOGVBL0RHR20vYi90d01kSzN1bWk3bVR1OUFpb2M4WTg4YkUzUGZ1dTZL?=
 =?utf-8?Q?OO/T6G643USayUpAJ0mwGXZLBlsQl2mm?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 25 Nov 2024 15:36:28.6785
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9c1dd2f-2843-48eb-f89b-08dd0d66ee01
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0DE.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6996

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Add a container for the "cooked" command line for a domain. This provides for
> the backing memory to be directly associated with the domain being constructed.
> This is done in anticipation that the domain construction path may need to be
> invoked multiple times, thus ensuring each instance had a distinct memory
> allocation.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes since v9 boot modules:
> - convert pvh_load_kernel to boot domain to directly use cmdline
> - adjustments to domain_cmdline_size
>    - remove ASSERT and return 0 instead
>    - use strlen() of values instead of hardcoded sizes
> - update cmdline parsing check to inspect multiboot string and not just pointer
> - add goto to skip cmdline processing if domain_cmdline_size returns 0
> - drop updating cmdline_pa with dynamic buffer with change of its last consumer
>    pvh_load_kernel
> 
> Changes since v8:
> - switch to a dynamically allocated buffer
> - dropped local cmdline var in pv dom0_construct()
> 
> Changes since v7:
> - updated commit message to expand on intent and purpose
> ---
>   xen/arch/x86/hvm/dom0_build.c         | 12 +++---
>   xen/arch/x86/include/asm/bootdomain.h |  2 +
>   xen/arch/x86/pv/dom0_build.c          |  4 +-
>   xen/arch/x86/setup.c                  | 54 ++++++++++++++++++++++-----
>   4 files changed, 54 insertions(+), 18 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index a9384af14304..cbc365d678d2 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -644,9 +644,11 @@ static bool __init check_and_adjust_load_address(
>   }
>   
>   static int __init pvh_load_kernel(
> -    struct domain *d, struct boot_module *image, struct boot_module *initrd,
> -    paddr_t *entry, paddr_t *start_info_addr)
> +    struct boot_domain *bd, paddr_t *entry, paddr_t *start_info_addr)
>   {
> +    struct domain *d = bd->d;
> +    struct boot_module *image = bd->kernel;
> +    struct boot_module *initrd = bd->ramdisk;
>       void *image_base = bootstrap_map_bm(image);
>       void *image_start = image_base + image->headroom;
>       unsigned long image_len = image->size;

cmdline_pa is used just outside of view below here.

const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) : NULL;

> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index a2178d5e8cc5..e6580382d247 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -965,10 +965,29 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
>       return n;
>   }
>   
> -static struct domain *__init create_dom0(struct boot_info *bi)
> +static size_t __init domain_cmdline_size(
> +    struct boot_info *bi, struct boot_domain *bd)
>   {
> -    static char __initdata cmdline[MAX_GUEST_CMDLINE];
> +    size_t s = bi->kextra ? strlen(bi->kextra) : 0;
> +
> +    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
> +	
> +    if ( s == 0 )
> +        return s;
> +
> +    /*
> +     * Certain parameters from the Xen command line may be added to the dom0
> +     * command line. Add additional space for the possible cases along with one
> +     * extra char to hold \0.
> +     */
> +    s += strlen(" noapic") + strlen(" acpi=") + sizeof(acpi_param) + 1;
> +
> +    return s;
> +}
>   
> +static struct domain *__init create_dom0(struct boot_info *bi)
> +{
> +    char *cmdline = NULL;
>       struct xen_domctl_createdomain dom0_cfg = {
>           .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
>           .max_evtchn_port = -1,
> @@ -1008,19 +1027,30 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>           panic("Error creating d%uv0\n", bd->domid);
>   
>       /* Grab the DOM0 command line. */
> -    if ( bd->kernel->cmdline_pa || bi->kextra )
> +    if ( (bd->kernel->cmdline_pa &&
> +          ((char *)__va(bd->kernel->cmdline_pa))[0]) ||
> +         bi->kextra )

Here you are checking pointers.

>       {
> +        size_t cmdline_size = domain_cmdline_size(bi, bd);

Internally, domain_cmdline_size() checks the pointers.

> +
> +        if ( cmdline_size == 0 )
> +            goto skip_cmdline;
> +

Maybe just use:

cmdline_size = domain_cmdline_size(bi, bd);
if ( cmdline_size )
{

and eliminate the goto?

> +        if ( !(cmdline = xzalloc_array(char, cmdline_size)) )
> +            panic("Error allocating cmdline buffer for %pd\n", d);
> +
>           if ( bd->kernel->cmdline_pa )
> -            safe_strcpy(cmdline,
> -                        cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader));
> +            strlcpy(cmdline,
> +                    cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),
> +                    cmdline_size);
>   
>           if ( bi->kextra )
>               /* kextra always includes exactly one leading space. */
> -            safe_strcat(cmdline, bi->kextra);
> +            strlcat(cmdline, bi->kextra, cmdline_size);
>   
>           /* Append any extra parameters. */
>           if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
> -            safe_strcat(cmdline, " noapic");
> +            strlcat(cmdline, " noapic", cmdline_size);
>   
>           if ( (strlen(acpi_param) == 0) && acpi_disabled )
>           {
> @@ -1030,17 +1060,21 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>   
>           if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
>           {
> -            safe_strcat(cmdline, " acpi=");
> -            safe_strcat(cmdline, acpi_param);
> +            strlcat(cmdline, " acpi=", cmdline_size);
> +            strlcat(cmdline, acpi_param, cmdline_size);
>           }
>   
> -        bd->kernel->cmdline_pa = __pa(cmdline);
> +        bd->cmdline = cmdline;

As mentioned above, it looks like you still inadvertently use 
bd->kernel->cmdline_pa and not the new bd->cmdline.  I think clearing 
bd->kernel->cmdline_pa would have helped identify that.  Or do you want 
to retain cmdline_pa for some reason?  It's less error prone if only one 
is usable at a time.

>       }
>   
> + skip_cmdline:
>       bd->d = d;
>       if ( construct_dom0(bd) != 0 )
>           panic("Could not construct domain 0\n");
>   
> +    if ( cmdline )
> +        xfree(cmdline);

You can drop the if - xfree() handles NULL.

Regards,
Jason

> +
>       return d;
>   }
>   



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:42:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842859.1258524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbEB-0000YA-Ok; Mon, 25 Nov 2024 15:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842859.1258524; Mon, 25 Nov 2024 15:42: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 1tFbEB-0000Y3-M3; Mon, 25 Nov 2024 15:42:19 +0000
Received: by outflank-mailman (input) for mailman id 842859;
 Mon, 25 Nov 2024 15:42: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=caTh=SU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFbEA-0000Wk-Iv
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:42:18 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20623.outbound.protection.outlook.com
 [2a01:111:f403:2415::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d63de508-ab43-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 16:42:15 +0100 (CET)
Received: from CH0PR03CA0033.namprd03.prod.outlook.com (2603:10b6:610:b3::8)
 by LV3PR12MB9168.namprd12.prod.outlook.com (2603:10b6:408:19a::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.19; Mon, 25 Nov
 2024 15:42:06 +0000
Received: from CH2PEPF0000009D.namprd02.prod.outlook.com
 (2603:10b6:610:b3:cafe::8e) by CH0PR03CA0033.outlook.office365.com
 (2603:10b6:610:b3::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.24 via Frontend Transport; Mon,
 25 Nov 2024 15:42:06 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Mon, 25 Nov 2024 15:42:06 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Mon, 25 Nov
 2024 09:42:06 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 09:42:05 -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: d63de508-ab43-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjIzIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQ2M2RlNTA4LWFiNDMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTQ5MzM1LjY3Nzg5Niwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UcpTBbfmn3BnMot70tfJmy7Oye+5105EQ4qzi9vU2k8TKa4nqj1fd6/xHsMdy5p8RUst1qm/HRJkTfN3cOimVkYkzKW3ANBiVDR7RaqjPgO406Ywk/wGfgOS4ZUO8GWigLhRM9D5XVIitdX7TKZx/aoXylT5shsT/8+G+QllCEgql/QZFOsWV3ZUokXkIAwtK+HE4yE55GCd/eLaPcH/m5yuaR3scxCNN7gfV3eGojMn+IQF47nnzJymMdQV7NmjOR8HRv5bUuL1euKjDJEiUYn6MWQUHNJcz8y75phGpDMX4N2UOTq9aN9DpoIc27c9Fcm2qzIDzsgwk2sTSQ4HCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pcRWqvfZs6PV81YuTl+FNAb/lwx4e71osOa5QMHpj9c=;
 b=H+YNIIjQbOMpMMcCc7puv5cKmhBLDUlW6Zqq42LEKe6Gzr/yTkcqvMGo6Wo3bm5IZ0X/Q8YY+JCTnNOZbzwlpzMFzaz9qddkRNLde+Ds0RYglYMiJS6cK7T+xtsfi69AbbBWxvQVlbyUPG7rYaUNk1PitVQZlCqbdPnm6h0UoFCaz5SU1EyGf45+RL38gM0q3cVcbG/VC+1+tSaonrz3I9LQZSJE+ufet95tSzdW2DfTflMSZsQsAOBZ5RgFLHXYo5Imvi7JeYBt+qpNT2/0SAXJpCN3tWaOlxWxZanxyNnBxSm96ZC9sz8FtSSBt0jGyzSHHfCIXYb5MQ1eS4Wfdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=pcRWqvfZs6PV81YuTl+FNAb/lwx4e71osOa5QMHpj9c=;
 b=dAWwxILc1JLpYPml8zOtZnyIGxYDEqzTTqq8oMGyaDymFMvJm8eVO5qGQ4x3NM/1z6P5qVTMe5FCGDmkeQiX7T+Jb7WEMVCKDdBMO5NWbl5Q4Bttw8qi1BJlMEi4Fnwgc9dlkmGIiXkrKJW/AXMaAsqqP+Q7K55i4h3VIOEFoEc=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <20753f5c-bdf5-4f87-aa94-6a32a96f4b94@amd.com>
Date: Mon, 25 Nov 2024 10:42:05 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/15] kconfig: introduce option to independently enable
 libfdt
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-5-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-5-dpsmith@apertussolutions.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: CH2PEPF0000009D:EE_|LV3PR12MB9168:EE_
X-MS-Office365-Filtering-Correlation-Id: d23cf07e-b258-4be3-1fe9-08dd0d67b771
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZWloNVU4ZEoyQjZvV1ZZQzFEbEl0THN3V2lvSVVXaEt1dURKa1BIcDRybXdq?=
 =?utf-8?B?ZDQ2Sjg4Skpnb0MwY0FDbDJHTTJBRkw0N215K1Uya25zZGszRHBhQlNLdUJk?=
 =?utf-8?B?L3BCVTU2amhqMys1N0NzNlU1YkwwTEtmcER0MXJzdExUNm5kTjhQWWNZWFFz?=
 =?utf-8?B?UmY5SGQ4L1RWZ3pIQnBXbVlucmkrMERJaXNPU0FidUo4ZmIzM3o1NzllaEtD?=
 =?utf-8?B?QTgwdTFQRWJYWVExUUpOSk0yV0dab1NBaUV1SndTUTByY3BVR093V3VjMnVx?=
 =?utf-8?B?bjl4MVJqYzBxRWpmUWJTYnl5aytrWHhLdytweTZuVHUyKzVZNDI1aTIwUFFE?=
 =?utf-8?B?bVRQbUtFTFVVTW44ZmJ0M0JwamNBM01IOEJ3Y1NOZ2d6b0d2SVY5S25pajYx?=
 =?utf-8?B?RUFMZE9wYUs2ZmNvT0h3VWRGbno5WEFzR0FNS3JFemkzUEZ2Z2c4Y1orTXdx?=
 =?utf-8?B?V3hoMHl3cFZ5UXMvck5xQmtCQzEyWHFnQ1dCckVNa1lVQzkwMEZhSzVrUndZ?=
 =?utf-8?B?YTRaalJYNFNDVStMcTdTVmpBVmJWSVYvdXBWTlVYWTFmMktFa2NncHJZZGpX?=
 =?utf-8?B?MFFaaDFLT3RJcElGQ21lYUg2eFF2b25MQThTRHpIa0gyRDJRbHB4NmNpbld4?=
 =?utf-8?B?U2FlQkdneGdSMmRYVW5RejROSHo3aTdTRWNJZm1hWXEzaUNmbzZXS1JiZjAv?=
 =?utf-8?B?NThRV0RBRWJVODlFMHljMUhVQ0RPSWJnNGFWVjVNR2VPYXRoMnJjRGpFNnFW?=
 =?utf-8?B?bVFnNy91N0Z0dWpOVXFNYnVBKzNsdktXZU8wVExqVXErTUFrU2RLa3M0bmEw?=
 =?utf-8?B?Y1E1VTNFVlc0b1k3RExIVzdENFlKT0gwMFZ0NE1VYnVkY0hJQ3J4aG5TQVdj?=
 =?utf-8?B?Q0RwYWZ1ZGZsamNMT1hQQUswZ3RUcUhac2hIakpVVXJNSlFnL0VUKzVvMXhk?=
 =?utf-8?B?WitIeGFINkJjVUEzeXhTM1c4MkxaSjVBQ20rSW9tQUJIMTZ4cko2VEMvR0pi?=
 =?utf-8?B?WHpFcktCQitVYXpVQVNXclFobHZQRVRJL0ljcUt6U2FOREtuVk1xQlVGbkRJ?=
 =?utf-8?B?S3VPNGxOb2s5bE5JSlgydDRoVUh4Sk9WdGRTaG1lNFBDdHhycXJpRlAwZFQw?=
 =?utf-8?B?NUh5QXVUVnlISVcybGY1UjBvY2ZSSDlESHV1R3IxakRnMEhSZmdpb3Y1SlNk?=
 =?utf-8?B?ZkJnWDBVV3RCSFFtTzZYMCs4U01nSThqRzlwR3IyMXdQT0xLSUhyQm81QUVM?=
 =?utf-8?B?aUpiSzlvT1NyTTdhNkVZVW9wbHhuTE14bDA4WnNyZG0zZktab3NEVFdOZnZM?=
 =?utf-8?B?bTlpMzJXMmsxZUIxZm5ISGR6cm9HNWFoY1RWRkNkTWdrYmFrS1A5VDdxajZE?=
 =?utf-8?B?M3RnbEZBNkNlV2RSbTlNb1BsaS9sY0RmL0xpeG5XVDNyVU5RSHlEeWJLVUhQ?=
 =?utf-8?B?b2ZPZ0E4ajd3M0RxZmdwakNqQ3c4eVdvZ2wvTjBrdVZtanZHTEk1RjQ5UDc0?=
 =?utf-8?B?bkRRQlNxbFBsdHZqcUVaSk5Kd3BiUGNOa2xUSStuaUVBYklOblEvZWN4VHpu?=
 =?utf-8?B?MGUxSU00LzhRSzA3cGdOdWNIekk3V3BTSjBKVnBkRm1lUnZtU2Zvc25NZXpJ?=
 =?utf-8?B?ZXgrTWdzaVR2QnVxZkg1aktkUStVeEptNC9rVVFkNjFkU2MySkhxL1FKY1BK?=
 =?utf-8?B?QUlET2M5UWRsM09WYVBZY3N2WXNsWFVsNjdmeTllZEtOazA3Y052VUJOakFr?=
 =?utf-8?B?U0pQTnJQMTBVNFA4NlFpQUlvcTU5WDUyZUJIc3dONHJ3OVhUa3hPbFVhUUQw?=
 =?utf-8?B?TzVUekYwRUdXYk9SQ3prRVFnZDlZOUNwVnpjbHh2MGIrbHBpVVAwd1Z5aEU1?=
 =?utf-8?B?ZmZjNFNVSVlGYXVsRnljMFR5aENIOGNDRktRbFUvcURwTW1lditMUGNFYkc1?=
 =?utf-8?Q?73TpB1GxnrPnfR/F9R6c3g5HazjYh12s?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 15:42:06.6133
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d23cf07e-b258-4be3-1fe9-08dd0d67b771
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=[SATLEXMB03.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: LV3PR12MB9168

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Currently the inclusion of libfdt is controlled by the CONFIG_HAS_DEVICE_TREE
> kconfig flag. This flag also changes behvaior in a few places, such as boot

behavior

> module processing for XSM. To support the ability to include libfdt without
> changing these behaviors, introduce CONFIG_LIB_DEVICE_TREE. The inclusion of
> libfdt is then moved under CONFIG_LIB_DEVICE_TREE.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:50:12 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:50:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842872.1258535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbLi-00025T-Hz; Mon, 25 Nov 2024 15:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842872.1258535; Mon, 25 Nov 2024 15: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 1tFbLi-00025M-F9; Mon, 25 Nov 2024 15:50:06 +0000
Received: by outflank-mailman (input) for mailman id 842872;
 Mon, 25 Nov 2024 15: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFbLh-0001t1-9h
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:50:05 +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 ee247df9-ab44-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 16:50:01 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-382610c7116so2291048f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07: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
 ffacd0b85a97d-3825fbedeb3sm10604401f8f.95.2024.11.25.07.50.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07: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: ee247df9-ab44-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVlMjQ3ZGY5LWFiNDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTQ5ODAxLjUyNjc0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732549801; x=1733154601; 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=NcMFGQApEPC1H/vPQaVJ5HH1rFOd2IH9EgRCs+bvlN8=;
        b=Vbru51jAvyT0/yVcjPatnjGQR/XVzHjX8oWmXvWIVCoYU+KKTJrvDMT613X2MfAR0G
         f+8T5b3uGGxe8RufyWByf5N5/5166HxDSsBEd7L3iwKfsB0ccN4QADk1QljPFz7iQ7Lj
         EEuDAmlCSa6rUQy1RUA/9PGHdTKQmoZBCERWvR+36wi/qgEi0vPexJzKpb//wBikHUQl
         ldz8PuR3TQvJ0kogazxgEkzFEi9ToeVubY60FChpShi+fJXBvufJ3xBpdPFRiJgnKIYW
         7fDTpH6QDbdWN9L1Czn0TMs6kb//vM5p01EGo14E2By5tUirRiNH+NfjaNJjCveDBE88
         4qJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732549801; x=1733154601;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NcMFGQApEPC1H/vPQaVJ5HH1rFOd2IH9EgRCs+bvlN8=;
        b=ch5v08BxfZi4iQohRhEBaxLR+NW4AD98jR9WrK28DnEl+TjI3UouI2SUUgVKopzzYE
         UNM4iJM25AJ34mi5NXosMrhab1NkYcBx5QEhnLfz2OT3sf6IKucIXH2sEA+Rjf6YT0wt
         r7f446Ok08hJWxpDdnqhbjbYJ6yS5uSDFQpaaxueFnliegtY82+cnffAkEO36+KWmJC8
         Puxx6/hSIU487xA/0usolVss+UBo385Eh7I6r2IifOS5T3P6v0sWgQYc4UJ5MbHm/Uda
         FhYvXJWExzuQfnK8YHIGN8UdseAPbCs9elWJ1ZNLBEWcrZ5CBTCBPcActJ898j/Lcixp
         tYOw==
X-Forwarded-Encrypted: i=1; AJvYcCWZZ0GmjRBOV2YD4T3msGabJoPrM70Uah053n/87fY/mTy8WHuspGCY4PZ79yhgA6xYICxnu9YsCYM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoE4bcoPelXauze1p7xoox8Oc6AmqL5dDk/XXS6Gs+iaerZCRR
	NmBJbc0pDsls237kUC7x6bUul+S+ofppHzX5ZSE6IGa0rSiZ0AThq8hLW47nXQ==
X-Gm-Gg: ASbGncuDuVnBQAkAcG/4f2i1sUR29+qImYlM3J6YiMQr44445xFjJ07B/Wszc31YQgg
	/I1mLKlg0CC8rWNQbMj3dr7XXVObXyFnb0j88bcJy0WeTSFVa9ab/HvzUsOnQqVl9O/J+gzP/PE
	05FaHA9upaMI5Fyic7TeFdL4HSyzZjn5v87DTCpwEo7XRjsEwvG5bXXBv8/HKSJwxmL+ZCq8h/D
	kfuwJTFHFd5wGfhFd22faHqmQbm9KQ5A3q0I/IrwCW23Tz/pRyzFP1ObtK5vgVpNLpm44TX9Vq6
	a1WcHxop1t26RmJBO2NV/zuYeJYUZDBgvn8=
X-Google-Smtp-Source: AGHT+IFrV0T5TpmrTjj2tDWFleJallVoIpJttzSWGds9mJaSmt2WiPy4fJBOwTcoKKTb+pU+lOwA0A==
X-Received: by 2002:a5d:6da7:0:b0:382:49a5:2229 with SMTP id ffacd0b85a97d-38260bcd7eamr10908073f8f.39.1732549800930;
        Mon, 25 Nov 2024 07:50:00 -0800 (PST)
Message-ID: <fb5c12b0-5bc1-4129-a4e9-9716ffd4685c@suse.com>
Date: Mon, 25 Nov 2024 16:49:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/3] xen/riscv: introduce setup_mm()
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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731672668.git.oleksii.kurochko@gmail.com>
 <1ebb209f191e3e2323840acfe3714a597aa7be6c.1731672668.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: <1ebb209f191e3e2323840acfe3714a597aa7be6c.1731672668.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 13:47, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -90,6 +90,7 @@
>  #define DIRECTMAP_SLOT_START    200
>  #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
>  #define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) - SLOTN(DIRECTMAP_SLOT_START))
> +#define DIRECTMAP_VIRT_END      (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE - 1)

While it is of course okay to have this value be inclusive (matching
FRAMETABLE_VIRT_END), I'd like to point out that
- on x86 *_END are exclusive (i.e. there's some risk of confusion),
- RISC-V's DIRECTMAP_SIZE appears to assume DIRECTMAP_SLOT_END is
  exclusive, when from all I can tell (in particular the table in the
  earlier comment) it's inclusive.

> @@ -25,8 +27,12 @@
>  
>  static inline void *maddr_to_virt(paddr_t ma)
>  {
> -    BUG_ON("unimplemented");
> -    return NULL;
> +    unsigned long va_offset = maddr_to_directmapoff(ma);
> +
> +    ASSERT(va_offset >= DIRECTMAP_VIRT_START - directmap_virt_start);
> +    ASSERT(va_offset <= DIRECTMAP_VIRT_END - directmap_virt_start);
> +
> +    return (void *)(directmap_virt_start + va_offset);
>  }

If you added in directmap_virt_start right when setting the variable,
you'd simplify the assertions. The unsigned long arithmetic is going to
be okay either way. (The variable may want renaming if doing so, perhaps
simply to "va".)

Preferably with the latter adjustment and pending clarification on the
intentions wrt the comment further up
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 15:54:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 15:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842880.1258544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbQ3-0003Nd-3M; Mon, 25 Nov 2024 15:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842880.1258544; Mon, 25 Nov 2024 15: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 1tFbQ3-0003NW-0p; Mon, 25 Nov 2024 15:54:35 +0000
Received: by outflank-mailman (input) for mailman id 842880;
 Mon, 25 Nov 2024 15: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFbQ1-0003NQ-V4
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 15:54:33 +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 8e38f3a1-ab45-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 16:54:30 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43497839b80so14947365e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 07:54: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-4349496abe1sm79614585e9.11.2024.11.25.07.54.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 07: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: 8e38f3a1-ab45-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhlMzhmM2ExLWFiNDUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTUwMDcwLjE1MTgzOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732550069; x=1733154869; 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=q/8+mNUi1zkQfTB0TIHQzSjbv9DcNNX0QOobIkUNubw=;
        b=SBqg+q4BZOdXHeZo9KtYnHBtwf2fPcCJfWHKml37mQfWT42JTJQu1cRRxQ7GUkQ1SQ
         KFfEI10WOaONskorkCjihwkrygGDwsBVZjKA48eFWb5c96/+EPc86hBXepbbTFmfKdQ7
         iQOYihNpk+nCcwCFfnDQtRrBJ3TA5eMZ5bcMjcOrnVzQy9dy1hSlSy+0XlqPZ2SNsauE
         RVnCRGbONJmS87+ADvQkVwli1TQ38b3K1QBO+KsJ0pSB0KopvJXHgEDhudf7i7c8TX9A
         5qO34LLJ6TGkzqREVkqIFrwYXcv1/b+4UaCsiBu4jg8tFVRxcaFYJPlYxeKEFATLL7DY
         ShzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732550069; x=1733154869;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=q/8+mNUi1zkQfTB0TIHQzSjbv9DcNNX0QOobIkUNubw=;
        b=Rk9p981tjCchFtgt8ZOoJiV9olSw7/oUk2g0EVCYGm3lhi1WlsBdextcCw/dGld0Si
         KEECOcZS4sSkwIP4lnnh+vKtdEBiIchGZPXqSEzb2miSOb7f80P/m4dE31C5b7xKLBPp
         6w+HyGOWc0ZQsCe7qn6gPI5M1Qugg/2AnPvzQzLHU5wVXu2tmByUsgn50dLYcLfTwO/X
         VKLP/v4AdMFT3Cx3AxP2nLL5cQ1P0bHZKvzhFBi2Sv7Tz6+4m9GWJxL5I6w/YdnZtnlO
         RNDlhdB23az0eGUjXAmXxUaKtWGO/34P1PNfeYR3tZo5plcAplN0Im4wle4/tT8oF7gF
         c+kQ==
X-Gm-Message-State: AOJu0YwDpxtHxi2/in0gGMVc0g0IMIMjCwriNtqHkJ/n2h4Blzgb6M7o
	+iELUkYDZSVUjcAAfMx3biTtvJ1eA+IQOq9x7t4FdE5gTvcJL46cGnBhL3gPQA==
X-Gm-Gg: ASbGncvciH/fBLCfl8SQfO2vlK5AOgJfYTxrj2dbiy0tNaEdTGns7qiHCIeLKs0h9dC
	sizq37ydQxN6eWamdnjoNbyQjXgm6PmVl5TCsSM5M0/uV0T1HRkUN/+oqPzpWAlyq+DJQ4Hblfe
	mduriW5gBCjNmVQXZQxAU235Y7YCwHWjq5F7HgkFPX/RzHzhAx7w1S5epx53TzhUICm09rZDYUt
	hz409qeC+KHZi6vpLVIPJd9TD2vX0wDhbGhetRoU6EptvPxTm03l2DhUiG29EmESn4tttunCXCr
	qcrNsO4r8eeN5l1r9RFIfdmdz2aRN0/MUsk=
X-Google-Smtp-Source: AGHT+IGEYKH1oNFjzoj/N9bbJUQtATtcPMf4iBylIfqSKcfGD5E3mFNun9OITnGDJpDtPE60wYoH9w==
X-Received: by 2002:a05:600c:3589:b0:434:a4b3:5ebe with SMTP id 5b1f17b1804b1-434a4b35f4amr1406455e9.24.1732550068156;
        Mon, 25 Nov 2024 07:54:28 -0800 (PST)
Message-ID: <a23c6ad4-d72f-4f18-afb6-a0fbffa91b88@suse.com>
Date: Mon, 25 Nov 2024 16:54:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] x86/uaccess: rework user access speculative harden
 guards
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>
References: <20241119103444.23296-1-roger.pau@citrix.com>
 <20241119103444.23296-4-roger.pau@citrix.com>
 <9cf6ea3e-b6b5-4fc8-a0f1-53c1b2f7ab31@citrix.com>
Content-Language: en-US
Cc: 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: <9cf6ea3e-b6b5-4fc8-a0f1-53c1b2f7ab31@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.11.2024 16:31, Andrew Cooper wrote:
> On 19/11/2024 10:34 am, Roger Pau Monne wrote:
> Overall this is far more legible, and I'm tempted to take it on that
> justification alone.Â  But this is Jan's pile of magic.
> 
> There is a weird effect from this change:
> 
> add/remove: 2/0 grow/shrink: 2/2 up/down: 740/-739 (1)
> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
> build_symbol_tableÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  -Â Â Â Â  686Â Â Â  +686
> build_symbol_table.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  -Â Â Â Â Â  48Â Â Â Â  +48
> pv_map_ldt_shadow_pageÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  641Â Â Â Â  644Â Â Â Â Â  +3
> pv_emulate_gate_opÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2919Â Â Â  2922Â Â Â Â Â  +3
> livepatch_op.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  557Â Â Â Â  509Â Â Â Â  -48
> livepatch_opÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  5952Â Â Â  5261Â Â Â  -691
> 
> which is clearly changing inlining decisions.Â  I suspect it's related to...
> 
>> --- a/xen/arch/x86/usercopy.c
>> +++ b/xen/arch/x86/usercopy.c
>> @@ -11,23 +11,23 @@
>>  #include <asm/uaccess.h>
>>  
>>  #ifndef GUARD
>> -# define GUARD UA_KEEP
>> +# define GUARD 1
>>  #endif
>>  
>>  unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
>>  {
>> -    GUARD(unsigned dummy);
>> +    unsigned __maybe_unused dummy;
> 
> ... this.Â  This doesn't need to be __maybe_unused, because ...
> 
>>  
>>      stac();
>>      asm volatile (
>> -        GUARD(
>> +        ".if " STR(GUARD) "\n"
>>          "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
>> -        )
>> +        ".endif\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))
>> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
>> +          [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy)
> 
> ... these parameters are referenced unconditionally.
> 
> However, it does mean the compiler is spilling the scratch registers
> even when guard is 0.Â  I expect this is what is affecting the inlining
> decisions.

Or the increased number of newlines that the asm() expands to (or the
combination of both).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:08:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:08:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842892.1258554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbdM-00067x-6v; Mon, 25 Nov 2024 16:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842892.1258554; Mon, 25 Nov 2024 16:08: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 1tFbdM-00067q-4D; Mon, 25 Nov 2024 16:08:20 +0000
Received: by outflank-mailman (input) for mailman id 842892;
 Mon, 25 Nov 2024 16:08: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFbdK-00067k-Gm
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:08:18 +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 797ba0c7-ab47-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 17:08:14 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5ceca0ec4e7so5755643a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 08:08: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
 4fb4d7f45d1cf-5d01d3fc777sm4284085a12.68.2024.11.25.08.08.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 08:08: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: 797ba0c7-ab47-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc5N2JhMGM3LWFiNDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTUwODk0LjI5ODUxNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732550894; x=1733155694; 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=fvlmYYBlKKPQcgag3pzc6nmwLlKCitIK8hEIfIiz/fU=;
        b=Cq8wsJi1L5b/rPw4ity4zbX5hvBQMf3FvQnEV3W7URMHmVZHgmNa1nEu7EaBIIvjrz
         3/zL4WeKrZ0GVwpOrXO4cqOq+RRcfbSCIvZMWECfokCp7gi+qRjGycfLehmOA8u0vShX
         LxdZy5CgnhXU9iesNlunVKHtJE+kYJ0vPgtollbXkHTup7Bestrwlx7Z3eZaZhjt3jL+
         Ao84HptLvE/xYF2YdvGUFkdB0xjOcTD+z07K2TewVZ+VhPGgw3PVh9HOB+QS6M7f/Pgv
         AgR+Q5nD3q1gp1OnF+2hDXli6/75PTRnhUUVaNJ1j4H4ZiR0c85z2brUEC1BKJ708GwY
         cVzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732550894; x=1733155694;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fvlmYYBlKKPQcgag3pzc6nmwLlKCitIK8hEIfIiz/fU=;
        b=ODYz7HywnVLR0Qw+Omd+HOQX8RB8WyXauvH5IMcswGS/NHegUlMwDbtXE3zoeT5y/C
         0DTqojZvda4JJcoZBqIZlJP3qihrY1hyyz5e/gMvpn3j4ztZehyBFy7CS/LwHMwznwlY
         NTA4g8LZ3Vfbzs8YTPIOo8qvhbKyVSpVTMuDI5u3FHVsr26NhI3RXMz3vdD8MVl2/JMW
         jUlk9I9g4x7aC/hvXC1PcKSkU09DKxyNYxcjC4ewkLqlSwhnw9pCBHauUY5W95V3BbQI
         BcE1f9rlkgURpVc3YfjvBF5zY99FvKB1K0WV8CYNWYILaZYRjBUSis8uZMJY1ZbAxH8j
         FOlA==
X-Forwarded-Encrypted: i=1; AJvYcCVIC3Xov6mPkly6ExL7G2+MEOdwxTZ3h54b6PL4rs8mS4rNJFLGN2NJobTEb21ashrYXXFsJpRBhBs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3rMcit0ABvI5Jgiufry7J2nbU0hl3CM+JKG8igV81ZYxIBdOz
	e3b22cWWoNg9ftj7+fqJztI8KsL4E6ILhajgurReaQSG4FAtFm6O9Gdw5sDucNZ2FvbUuBn+yhU
	=
X-Gm-Gg: ASbGncsWgyFUghe/XXrVtHeB+0TC+SAjPczIrT0cjCSEPXcd5FMreNahSHpVESzrAUk
	fyUq+dM0tRMQSMMg28glcPGLS9ugefZDNAszOYLrIUmGlGyFRtCd1PY3VjpS+hxYMi0Qdo8H5Za
	Xe/6nY3P+Q9WKqp9hawMSIvl2T41I+VoLFtKxcSEGCS5hEgRI+0nQjPy/5C25vucbO8zDyRSxw3
	H1GDGL38Htx3tRv9KZmanPhHgk17oisY5pcLODYSoFC/fPKonPrszeKYio2lEAkcYzfuukG9KU9
	oOF/CxKz7PoVuJ8DwolbtAgJf0dQwNS6gPk=
X-Google-Smtp-Source: AGHT+IG9sXlbF0rT2nSeazX98Vy20eNs+j5tQK9iuzDf1kFoXT3v1zkHGZCv8Ko4cUqrKKr3FUSwEQ==
X-Received: by 2002:a05:6402:5186:b0:5cf:4f4:95dc with SMTP id 4fb4d7f45d1cf-5d0207b135bmr11629118a12.29.1732550893612;
        Mon, 25 Nov 2024 08:08:13 -0800 (PST)
Message-ID: <4fca39e6-6c59-49cc-9f76-9fc226c49f8b@suse.com>
Date: Mon, 25 Nov 2024 17:08:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/3] xen/pci: introduce PF<->VF links
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241115160905.551224-1-stewart.hildebrand@amd.com>
 <20241115160905.551224-2-stewart.hildebrand@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: <20241115160905.551224-2-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 17:09, Stewart Hildebrand wrote:
> Add links between a VF's struct pci_dev and its associated PF struct
> pci_dev.
> 
> The hardware domain is expected to remove the associated VFs before
> removing the PF. If removal happens out of order, print a warning and
> return an error. This means that VFs can only exist with an associated
> PF.
> 
> Additionally, if the hardware domain attempts to remove a PF with VFs
> still present, mark the PF and VFs broken, because Linux Dom0 has been
> observed to not respect the error returned.
> 
> Move the calls to pci_get_pdev() and pci_add_device() down to avoid
> dropping and re-acquiring the pcidevs_lock().
> 
> Check !pdev->pf_pdev before adding the VF to the list to guard against
> adding it multiple times.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

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

> @@ -698,12 +691,48 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>      if ( info )
>      {
>          pdev->info = *info;
> -        /*
> -         * VF's 'is_extfn' field is used to indicate whether its PF is an
> -         * extended function.
> -         */
>          if ( pdev->info.is_virtfn )
> -            pdev->info.is_extfn = pf_is_extfn;
> +        {
> +            struct pci_dev *pf_pdev =
> +                pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus,
> +                                            info->physfn.devfn));
> +
> +            if ( !pf_pdev )
> +            {
> +                ret = pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
> +                                     NULL, node);
> +                if ( ret )
> +                {
> +                    printk(XENLOG_WARNING
> +                           "Failed to add SR-IOV device PF %pp for VF %pp\n",
> +                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
> +                           &pdev->sbdf);
> +                    free_pdev(pseg, pdev);
> +                    goto out;
> +                }
> +                pf_pdev = pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus,
> +                                                      info->physfn.devfn));
> +                if ( !pf_pdev )
> +                {
> +                    printk(XENLOG_ERR
> +                           "Inconsistent PCI state: failed to find newly added PF %pp for VF %pp\n",
> +                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
> +                           &pdev->sbdf);
> +                    ASSERT_UNREACHABLE();
> +                    free_pdev(pseg, pdev);
> +                    ret = -EILSEQ;
> +                    goto out;
> +                }
> +            }
> +
> +            if ( !pdev->pf_pdev )
> +            {
> +                /* VF inherits its 'is_extfn' from PF */
> +                pdev->info.is_extfn = pf_pdev->info.is_extfn;
> +                list_add(&pdev->vf_list, &pf_pdev->vf_list);
> +                pdev->pf_pdev = pf_pdev;

As a general pattern, I think filling fields before adding to lists is preferable.
For now it doesn't really matter here (lock held here and while removing), yet
still: Thoughts towards flipping the last two lines above, perhaps while committing?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:09:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842900.1258565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbeJ-0006eA-FX; Mon, 25 Nov 2024 16:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842900.1258565; Mon, 25 Nov 2024 16:09: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 1tFbeJ-0006e3-Cf; Mon, 25 Nov 2024 16:09:19 +0000
Received: by outflank-mailman (input) for mailman id 842900;
 Mon, 25 Nov 2024 16:09: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFbeI-00067k-Bv
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:09:18 +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 9d9f45a1-ab47-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 17:09:14 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5cfc19065ffso6062542a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 08:09: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
 4fb4d7f45d1cf-5d01f9c2dd2sm4160595a12.18.2024.11.25.08.09.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 08:09: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: 9d9f45a1-ab47-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzMiLCJoZWxvIjoibWFpbC1lZDEteDUzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkOWY0NWExLWFiNDctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTUwOTU0LjkwOTE4Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732550954; x=1733155754; 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=DwU0tSV4nmmIocAUnM4latcUelkP2qtQby9QcjOLxBc=;
        b=cN/WdQeFGFurdEv4xWY75E/0Oq7DI2pK7+bZyTLZBBpONfWRq1yhXw7P/UBKvy/Pwf
         Eq7N8iQsUQGEJzS0qU6BxR27qgBpZZqs6Bwsf1pfKfO7Ga+Ql4E8aYe7lKnLFqihWKCj
         4BeP1SQPUFHF2Av83dTrVpditVG7g/RUWLv8Jab1C4PQxCinosnYSP9YjTaEkFsLbCMl
         omSTIRVVIprVqq/37z/abkYGjd7GT0tUvwhXAlghhldncBukdxJdqrGEwP5WTbgRaYlr
         QOUfyFsk7CEXmQG2r9lqdB2G/9gACjfBEo0+hfWAkHGXWtfTlIQLxC3+MRHmz0bpu2Ss
         lKJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732550954; x=1733155754;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DwU0tSV4nmmIocAUnM4latcUelkP2qtQby9QcjOLxBc=;
        b=POawDF4qGOXiUo7RY49/TpnCxn/xUFcGfpoApM3D1eDEzPVWUNVddgjT42yCO/m/Sv
         q4uCiS2815pRPjvsMcD8K5Cf/WkQ6pNdgGWU5MHqZY0ZIoGfX1vXu5xq4LkYHNGGzJsY
         BQOJvKtIgonPR5IVbBsglR7Yx5FuERk0XPy6BV7eOwEzftvbOeOI6CFyPnEKrSYA3nap
         LEpCF619st+INkO2Juu3J/vnURjRA/zT9JriRsJtbOnC8DFGVaDS6sruBsqoINnbX2JZ
         QBUGWbhb9muwvcXJJj9+Q1y9XSubMRAQZ3mr09TOGTIP/rZ3xe/NEBoz5D0jeC3PFyQH
         ej3g==
X-Forwarded-Encrypted: i=1; AJvYcCUOyo/YqXpTaNzWjuEeP3bogc+6jLj+yNG62lNYIxeK6OYq+1pPW8kGf7SnSxN5Mx82AaT2imEA02s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZZo1ztoVHdjYqW14c6d1qEjs0hFMJDRT3BvLyQgF8ZbItw5SE
	tsM6HFMyRFELAD63eurE7aFzFnCXJubgCgkD1lKdkaf0zx4swuNTXkETPbTX012ZPImmD0RFo2g
	=
X-Gm-Gg: ASbGncti/+MlzwCCbS/YHj3Y+Bs+EpL47U5w56YjuW/ZNyVqTFllM2TaSKOi4xMIjRp
	76y5OWOj/m7XWPkIbyxshEaamEQjY6HNeaTB+BzC2UjBWWctZSpRJOpGS6NJiJRS/8XZBS3tmXm
	zHMaZioqJdBkRDYP4ZCTBbWblrXg++QsKppn13001Ma/H8xDUN/QmHJ+ahQcslZ9hqhGCwTQlod
	2AWJr3cu8ciVLtkRYVjq9VDah0JNH9+Pn3acfUKNrT3nrwvdk/4lmhDeBI5M3ZOZ9y3Bv/Zd4Wv
	4K+ijJc030lmb6Zr0AG4JNHYTU8XUpHeKnQ=
X-Google-Smtp-Source: AGHT+IFB6SuVxcN8tK2i+SaZLoO1G7vbcaiwIH3PVk0sOdFqOp0FOold0PH0LCj8YzRg7LrMqEtGQw==
X-Received: by 2002:a05:6402:35cb:b0:5cf:cf81:c3a8 with SMTP id 4fb4d7f45d1cf-5d0205dc765mr10311577a12.10.1732550954317;
        Mon, 25 Nov 2024 08:09:14 -0800 (PST)
Message-ID: <9ca9040a-9b20-4576-93d7-9f8537bd8f94@suse.com>
Date: Mon, 25 Nov 2024 17:09:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 3/3] xen/pci: remove logic catering to adding VF
 without PF
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20241115160905.551224-1-stewart.hildebrand@amd.com>
 <20241115160905.551224-4-stewart.hildebrand@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: <20241115160905.551224-4-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 17:09, Stewart Hildebrand wrote:
> The hardware domain is expected to add a PF first before adding
> associated VFs. If adding happens out of order, print a warning and
> return an error. Drop the recursive call to pci_add_device().
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:14:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:14:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842912.1258575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbjZ-0000HJ-78; Mon, 25 Nov 2024 16:14:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842912.1258575; Mon, 25 Nov 2024 16:14: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 1tFbjZ-0000HC-3B; Mon, 25 Nov 2024 16:14:45 +0000
Received: by outflank-mailman (input) for mailman id 842912;
 Mon, 25 Nov 2024 16:14: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFbjX-0000H1-Tn
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:14:43 +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 5f8b5e7c-ab48-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 17:14:40 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-434a45f05feso1899815e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 08:14: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-3825fbc4173sm11136631f8f.72.2024.11.25.08.14.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 08:14: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: 5f8b5e7c-ab48-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVmOGI1ZTdjLWFiNDgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTUxMjgwLjI5MTU4OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732551279; x=1733156079; 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=8Wyno8rPphA47VwZWsDgvpOflEOQIPKyxvAA9fVLgyk=;
        b=EGnw4gGUp5BYH07JYE1mHH64iY8/rgQIQtPdb7Q7ERQp2ObfWfYpfoASzNVYXonZBo
         zNL/7HKT+ke9bXTPhO/5Jt0OGIpdarZJ3cQGCBAIqUfiZs+NC9gcKvd/VFW+SSbfsIXx
         eE8cXZqvzrRtQxBNgczobVmiQgpsMQLjw1XjXjd/NLnTqZNu8V+yIDPUXhcjxdOrblL4
         GpdwQdQKnh4/cuBZiBRF/hk8Z1GaYKydYrVGk9mZ9GDmbjiztKW3L55Jy0c1SUvIlbjV
         4+1sVv3ZxZhKF8jvMNxU7l0gtWxiSDwUEWS7C5DiNGg16i/iN2f6OKwFjhXH5nk9id8i
         +2Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732551279; x=1733156079;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8Wyno8rPphA47VwZWsDgvpOflEOQIPKyxvAA9fVLgyk=;
        b=LfS2Y+OW+MKVZfLZSJfb6GqzANPRNYBzPl5WPblChL9p8JicMwJxsQ/ppqPBhMoO2t
         kfDdH5tTM09TmA2kesZixx24En95f++3GgZwJ1ewS6qijSlmUvra/IdVEBs6KlqizKQz
         HHOU3AM78AxkIywpAGtFUBQmXjiOPpldCHXUpI/Rw8/U2GcPKlwPK6KQR2SD4tXJMb1/
         CVw2JWBRnWUKNlthGF1K/VHeDjijRt17ms4x+AILYEFDUgQoknK2SVlZlRO1o45jY5u5
         jzJn2TsZitAFGDl2Vl+SW+2cUm9Cqha+dAk7gbq781ffDcnWqDMmmqLYb1cHpA1rpQ7d
         XPWA==
X-Forwarded-Encrypted: i=1; AJvYcCXG4iD/Q8jbfvZTmdzhmsFVAhkuiLYets8hc6jELuYyu6yG6Ljcba/E8Qp6WwvS+M7fTpVVRNtM0aU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyD81O+tkKE7USXqfTr1q2eCGNVjh3ZPCy4lo6RK8m9BvvdB0o3
	GhHc02c9k5JJqLmf0MwXEAMY66Su4W++5q8r5vsFazFK72m/5lnjIqZ9zua/LA==
X-Gm-Gg: ASbGncslT202a7nwCUVUmgnRA0iak6sNVbjWTL1mJQ2X+OAvYBmLjvto9QaL6UpHNa4
	QVOEB3enr/05aqlJ3MRyFfpiBSZ0BZlI5jWWO6wkrUvGr+uJACV7P8k6iu8B4phE3N7s+gw8plE
	oDeNzjxP5auM4eMqhlEfbigvjqkKUknVK0X7Zwa8BCjlj+aobM3FTmTzRxw+oH1kMmdXphfqBtz
	ym3WY9ov2BOqabNC+Pf0DpnUUw67a33FoV9rKytR+Oav0FjXIr+lm6d3A5UVauwPHgvqtg4dCK4
	wKm+rbs0TcBSv8RkVmxSklJgwwD1gpJJDSw=
X-Google-Smtp-Source: AGHT+IGyydkoOndetPELQHO73VSuO0/OZh7bCS0VHvKSDSYncf2ElQPgLgwlwEUkdIyVUaixOBZjLQ==
X-Received: by 2002:a5d:59ae:0:b0:37d:4833:38f5 with SMTP id ffacd0b85a97d-38260b813ecmr11140229f8f.30.1732551279657;
        Mon, 25 Nov 2024 08:14:39 -0800 (PST)
Message-ID: <7a0ee883-8542-4e17-adeb-9c1d83f58657@suse.com>
Date: Mon, 25 Nov 2024 17:14:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v3 0/2] configurable stdvga & pmtimer emulation
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731961652.git.Sergiy_Kibrik@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.1731961652.git.Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 21:34, Sergiy Kibrik wrote:
> Introduce build options for stdvga and ACPI PM timer emulation drivers to make
> them configurable with possibility to be disabled for finer-tuned setups that
> don't need this code.
> 
> New config options reside in separate sub-menu, checks of emulation flags are
> added so that domain can't be created if it requires devices that had been
> disabled.
> Minor changes since previous series, details provided in per-patch changelogs.
> 
> v2 series here:
> https://lore.kernel.org/xen-devel/cover.1730887415.git.Sergiy_Kibrik@epam.com/
> 
>   -Sergiy
> 
> Sergiy Kibrik (2):
>   x86/hvm: introduce config option for ACPI PM timer
>   x86/hvm: introduce config option for stdvga emulation

>From how things are done I'm okay with these two changes now. Yet I'm still
unconvinced as to whether we actually want to move in this direction. I'd
like to ask for the other x86 maintainers' input - Andrew, Roger?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:20:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:20:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842924.1258584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbov-0001nf-Jc; Mon, 25 Nov 2024 16:20:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842924.1258584; Mon, 25 Nov 2024 16:20: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 1tFbov-0001nY-Ga; Mon, 25 Nov 2024 16:20:17 +0000
Received: by outflank-mailman (input) for mailman id 842924;
 Mon, 25 Nov 2024 16:20: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=OOuq=SU=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tFbou-0001nS-VU
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:20:17 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2415::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24b76c93-ab49-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 17:20:12 +0100 (CET)
Received: from YT4P288CA0031.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::9) by
 BL3PR12MB6644.namprd12.prod.outlook.com (2603:10b6:208:3b1::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Mon, 25 Nov
 2024 16:20:06 +0000
Received: from CH2PEPF000000A0.namprd02.prod.outlook.com (2603:10b6:b01:d3::4)
 by YT4P288CA0031.outlook.office365.com (2603:10b6:b01:d3::9) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.21
 via Frontend Transport; Mon, 25 Nov 2024 16:20:05 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF000000A0.mail.protection.outlook.com (10.167.244.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Mon, 25 Nov 2024 16:20:05 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Mon, 25 Nov
 2024 10:20:05 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 10:20:04 -0600
Received: from [172.30.86.253] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 10:20:03 -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: 24b76c93-ab49-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjFiIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI0Yjc2YzkzLWFiNDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTUxNjEyLjIxNTE5OSwic2VuZGVyIjoic3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dByhgXLebWfI2TS/CidApe4zKf4U4C+GI8WdHHJ6wKGECcV050xsMIna2rq8CtLI4R8rcH612isaZR9h+m5o+uMXJEXHFIVF5OwNlouPj0wWn6U5rfzwFRUCtEaFg6/YQwB4cUQbLdGOvjnccb6Ek9ZRf6pzLbr+JsQRbcbOjHjqASi9czmPR+mC45d5HozgTp/22Ph1XrZ5fLSjvDsv8q7GSj/YyXMfSr4VnDBsrcalxfGeTVJCvBWetTKAWuh9qxQ/FGnQar0xvFgkuhAMqAE8FkC/SrziJcWw2UhKq49u4vDcFpami5cJgcYibh0pknwifX1yUTEF/pB06PV6UQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=56FSmCZmzqkiLDtcIj/w388Am0xxIzp7LIQ1gUTN+3c=;
 b=LmQVJFPrWXsuMPIzpb6afbxxNyzO2Jl102dCEf05Hjo6BjDObGITQkmLxLsP23Nq9sYqmHIE5W+hrKOrrSN/BIx0+n7Cd2TqXt20HR6aVsjjCQ3z9cHNP1YxkuImJy/+7HFWS0+D8aDGWq9EzKIiEQ31yTghgX1L0E2MkxTk7PzXBSxkFhaHuZu71TbF2suNutiT+xoTphBbKoasJ09C1FzU2txazR7JvLYJbHDQbVSKpYPFibVjmJuUJNdGfLTJ3iGy0A390/S9X6NNBTUat2yyA3Xs8RXhzk+L1WM4sLgN16zrRkFG0zgdsrtyoO58JvBSaTGpGYEg0TiChSX1Zg==
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=56FSmCZmzqkiLDtcIj/w388Am0xxIzp7LIQ1gUTN+3c=;
 b=TEG9MAEImpJcfX3ep9lO7G+qviQiOuuDAYE3c95wT/9FPXc27SoNWajSGF2Jp8+gMohEXfEB66HGohRo2XhcSIpArUvwcuQ7wxTPZR6iSqd6pUg8r1bMaZc9EgMOLjxrtupjznAbGt/XZWIFsg2Z3c2ShwArQcvf+UtmjNnzW9A=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <c3eb63eb-6f00-4fc8-9a60-4174199ae7d2@amd.com>
Date: Mon, 25 Nov 2024 11:20:03 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/3] xen/pci: introduce PF<->VF links
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>
References: <20241115160905.551224-1-stewart.hildebrand@amd.com>
 <20241115160905.551224-2-stewart.hildebrand@amd.com>
 <4fca39e6-6c59-49cc-9f76-9fc226c49f8b@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <4fca39e6-6c59-49cc-9f76-9fc226c49f8b@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF000000A0:EE_|BL3PR12MB6644:EE_
X-MS-Office365-Filtering-Correlation-Id: cbcb99ba-28ce-4066-1922-08dd0d6d05e9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R3VqblcxaGt4ckhITUJtMzF6dmVvdjZoOFcrUzkxS2YrbXdJV3pEMUFnWHJG?=
 =?utf-8?B?N0lqQ1dKT1ZUdjRJejd4ZXhVMXBISktpZTZCZW84aklkNkg0WnBwY21SRFdS?=
 =?utf-8?B?TTVGR2lYRTlVWWdINTdoNnZMTlMvU2VVQVBkUW9hS3pxNTBsUWV1MXdtWXN2?=
 =?utf-8?B?bnRhM1J3N3k2clU4T1d4MWl4bzFOaWVtd3ErTHZpQ3FWS0w5bURqdmhBWUtG?=
 =?utf-8?B?UnFxVWdOV3l2c1NqQyttRnZHdVJrbXNvNjFqSFZ2ZGp4SVBjaTNPaVgwL0hv?=
 =?utf-8?B?Rk0wWUZiTHM3RTZMdGZqQ211MGFkdStXNVpVMUJ1Y01CR1pnRWZpNVlQZzkw?=
 =?utf-8?B?SFFyWUJqL09nQzFWMEhUT1pUbFBvVlNqcnNBL3ROamdsVlROSE5jNytmZ2NK?=
 =?utf-8?B?NUNweWc5RldFdTlmVWRkR3NyWHdnejFKSzNwU1hFdG5WemVvc0N6bElLTkVL?=
 =?utf-8?B?UFRaQjZmSzkzVDJKZmw3NWR4enJhMTlsK01LTGd2b2tQMzEyOFNkNXFUZ0ZL?=
 =?utf-8?B?WFBrNkM3Rm9HODlPYUN3cnZiaXJ1RzBhd01hNU5PcDkvL3A4WU1tenlXUkxQ?=
 =?utf-8?B?MjBDakVyWkZGOTlVL25teWtIaGlMVVdscWFEd3dlS3k1VzBwOG9mamFiekwr?=
 =?utf-8?B?UUdzcUtGZG0rTldMR1hZcmJJeHI3T1JNQnNWMDVGem1PbFZrUXpaSklZVkdY?=
 =?utf-8?B?d051eEdCK3ZqcncxNVBHWEtoelg3TkZBR2hHTHVIV0h2U0FTRnpLclF2Mkdv?=
 =?utf-8?B?bjliK3RTUDl1alZkZHVIT0RwREt1ZDhWWTVyNGZoTHVqODlDTnZ6d3hFVG9v?=
 =?utf-8?B?bkZ4UEpmbDQ5U2drVjYrbTg1aTRKcURrcGx6SURVYnhDNVAzdEN2eC94M0Y3?=
 =?utf-8?B?TDVxYjl4TmtEUFNxSXdhOUJ3TVp5NGFpLzBmRVRRNndpeVc0OWVVY3JFN2VZ?=
 =?utf-8?B?emdPWCszUWZOeEt1cW15RlVLRnJ2ZW5Wb05VMVNSSXFqRndFUGl0cmkvSHJK?=
 =?utf-8?B?K1ltM01EOXpnQnMxZTQ2Z1B6c01yY0FQdFd6ZzB4b094aG90a3lLL1RvVWh0?=
 =?utf-8?B?YzZvOGMwS2tFNVVKdzdrakVZNmZsQm5UN0JzMkdvV0twOStEVGZRMWlZcWQ4?=
 =?utf-8?B?VHF4cnN3cUJHWmNZaXgxRzFYaHliL1ZmRVB3V0UrbEtIbEYxNXA4ZUdVY2Fp?=
 =?utf-8?B?YVZVNzdRc0RydkxVSDd0UWVxQkp3bXlNN3FHQnNoWWV2NnM0RjFzQ3FQQ0Y1?=
 =?utf-8?B?VTI4NkNVdGV0VkpMQ3V6cTdhNUhJZTRzTythSllxQkVsZlZpcE51YmdnS3Zk?=
 =?utf-8?B?RmJiWGE1ZEhTQjVwdGQ2MWc2cDhQc2NVdnFRZHNwNHVkamxUOTI0T3JZTWtk?=
 =?utf-8?B?REJQQXAyQ3FPMGVsYSs5T211cFlpSmlEdzVIdmJQbk4rdWVWYzVHR2Z2eXNo?=
 =?utf-8?B?U3J2R1l1aEdCNkpsdEpDYkVYdFRxT2QvZUNRSU5mNkpvWm5BZDlEcDk0UlYy?=
 =?utf-8?B?MHVIM3JmVnVZRVRqVE0wL0Myb0tpcjR2ZFV4RVhhZjM3OXVEZC9ScFB0Q0l3?=
 =?utf-8?B?WTZJRkdZNzhzOHprZTF4blJYNVFkQ0s3VkQ3Z0ptMStGaEpwcDFQNmR1dDJr?=
 =?utf-8?B?L3dUaERZeUhuUDVSZS9FUlN2b3BTRXlqVE14ZXNid1VxV3BHcGMyYm1UdmlI?=
 =?utf-8?B?TFRFcEs2d2pickxoQWVCRUdJWVU0endDYlZ2Vkc4ZDVka3djWXpzMGxHTFBz?=
 =?utf-8?B?MWE5cTEwbHNCTWYzaUo0WFZMMm5ld1FiV3BGc0RCRFA2UU03Vlp0YUdra2lw?=
 =?utf-8?B?SHBaNGtub2JNcDhGbHlCQTJGOE5hNjNDdmtqSGw5SW1mVFVwRWd0UXhLenFR?=
 =?utf-8?B?bXBhbUdJWFZDOVZKNnhzWXNlcFZZV2tqSEZ0ZHhjckxWVDU2VlNYZlo1R2hM?=
 =?utf-8?Q?9ABAeQX5XK2XTG0rYYUB/45QNj3Qtysu?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 16:20:05.7455
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cbcb99ba-28ce-4066-1922-08dd0d6d05e9
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF000000A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6644

On 11/25/24 11:08, Jan Beulich wrote:
> On 15.11.2024 17:09, Stewart Hildebrand wrote:
>> Add links between a VF's struct pci_dev and its associated PF struct
>> pci_dev.
>>
>> The hardware domain is expected to remove the associated VFs before
>> removing the PF. If removal happens out of order, print a warning and
>> return an error. This means that VFs can only exist with an associated
>> PF.
>>
>> Additionally, if the hardware domain attempts to remove a PF with VFs
>> still present, mark the PF and VFs broken, because Linux Dom0 has been
>> observed to not respect the error returned.
>>
>> Move the calls to pci_get_pdev() and pci_add_device() down to avoid
>> dropping and re-acquiring the pcidevs_lock().
>>
>> Check !pdev->pf_pdev before adding the VF to the list to guard against
>> adding it multiple times.
>>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks!

>> @@ -698,12 +691,48 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>>      if ( info )
>>      {
>>          pdev->info = *info;
>> -        /*
>> -         * VF's 'is_extfn' field is used to indicate whether its PF is an
>> -         * extended function.
>> -         */
>>          if ( pdev->info.is_virtfn )
>> -            pdev->info.is_extfn = pf_is_extfn;
>> +        {
>> +            struct pci_dev *pf_pdev =
>> +                pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus,
>> +                                            info->physfn.devfn));
>> +
>> +            if ( !pf_pdev )
>> +            {
>> +                ret = pci_add_device(seg, info->physfn.bus, info->physfn.devfn,
>> +                                     NULL, node);
>> +                if ( ret )
>> +                {
>> +                    printk(XENLOG_WARNING
>> +                           "Failed to add SR-IOV device PF %pp for VF %pp\n",
>> +                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
>> +                           &pdev->sbdf);
>> +                    free_pdev(pseg, pdev);
>> +                    goto out;
>> +                }
>> +                pf_pdev = pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus,
>> +                                                      info->physfn.devfn));
>> +                if ( !pf_pdev )
>> +                {
>> +                    printk(XENLOG_ERR
>> +                           "Inconsistent PCI state: failed to find newly added PF %pp for VF %pp\n",
>> +                           &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn),
>> +                           &pdev->sbdf);
>> +                    ASSERT_UNREACHABLE();
>> +                    free_pdev(pseg, pdev);
>> +                    ret = -EILSEQ;
>> +                    goto out;
>> +                }
>> +            }
>> +
>> +            if ( !pdev->pf_pdev )
>> +            {
>> +                /* VF inherits its 'is_extfn' from PF */
>> +                pdev->info.is_extfn = pf_pdev->info.is_extfn;
>> +                list_add(&pdev->vf_list, &pf_pdev->vf_list);
>> +                pdev->pf_pdev = pf_pdev;
> 
> As a general pattern, I think filling fields before adding to lists is preferable.
> For now it doesn't really matter here (lock held here and while removing), yet
> still: Thoughts towards flipping the last two lines above, perhaps while committing?

I'm OK with that, feel free to do so.


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:21:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:21:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842931.1258595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbqK-0002PI-U7; Mon, 25 Nov 2024 16:21:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842931.1258595; Mon, 25 Nov 2024 16:21: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 1tFbqK-0002PB-QY; Mon, 25 Nov 2024 16:21:44 +0000
Received: by outflank-mailman (input) for mailman id 842931;
 Mon, 25 Nov 2024 16:21: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFbqJ-0002P3-GA
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:21: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 5a46e467-ab49-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 17:21:40 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-434a1833367so4654815e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 08:21: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-4349b70aa23sm74285045e9.14.2024.11.25.08.21.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 08:21: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: 5a46e467-ab49-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVhNDZlNDY3LWFiNDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTUxNzAwLjkyODgxLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732551700; x=1733156500; 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=jKoh8DZ5i15BHU7/k/txJ5V1zxpriWLfDBvd90F2WOU=;
        b=Mc+fWzJPdjtZBWgi/ne54xrDNUvp3zBhEDnGQqa3ONnB3z3Ln/XWeBQOJw3bz1ALR/
         WWecCW5VNzDFTKnHA3EUy16jL81S0/+z49rDVXtLLnW/VL/pL6mOywmglVLuYwJYMzU+
         4DW5Q0++xAiFoaX7UAitmPC/mGFSSnLZxsuaIfxrnMO2HtMHSzHHhbO3mJ/+zwpGUQDv
         XfQpVPwdWag3JnX/a6e3JjgvtlThaBssAIYt3klnhRTl6hGNqA3uthie7zRC6glmYBAQ
         sVSiogOUY0+lZFfPGxNd12N/AGBj0jnqAGfy2KHrd+Ahzy9/cI/Qw3USG21L9h4A7K4/
         V6TA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732551700; x=1733156500;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jKoh8DZ5i15BHU7/k/txJ5V1zxpriWLfDBvd90F2WOU=;
        b=opoB0B39JOBlLxT6HE6DuA7QuebPfWtTfJLTVlIjW1SLF8IfWbrmUcjo3byIykw0/4
         x1a/fHJOxroFsOU2ptQAttJA8yUnaIZK84RqItMu+SZFgmZM9gTat6zxB0jjxpzJxDGn
         sn0xa4fapejEeRrltTgjwJwle3y2z6NMpPdLqidSGmCDmEgS6i2OsN1+/8NA2PiTBUTe
         tRfr03qEGDXTd3x5clhE39gijIfhTNQtw2evOF2Nmtf9E/5jQa6hSn21Ee2l50Hw6kwt
         Hb54DkgNjKibjPCviEv5ZyCtU+owZ8nbQdFTsxUIts1vzooMfitFb/Rmvm6Iq48A0gWa
         HJ1Q==
X-Forwarded-Encrypted: i=1; AJvYcCW9sSlbbuP57BTUDuk2IK8ahsH42NmN2V/O0wKhVBf6NcL3SDop83loKczcDwx4kiZav44bPfkrGT0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxolJHxrBdKlqKwbuoE4u9Tfae+FPdHw4O8EMTY7em4YLo/6W/L
	cRH995yDXiw+QhxcwtwmOXk1L6MAjgKl55nHtjGVkj397BPKuIzRnZ87xrBHmA==
X-Gm-Gg: ASbGncuvWRHe43SKBrhT7iWYIadIztvXqSGiSOo7pbVktWDHpcXO+dziWnq3+OUloX/
	U6A163om/aXzEqNMQJos0dtKx1V2pEJo9jrbD5jFOC8ZaPLQ0JiU16xRszUIXxi0ws9dLPIwE6U
	jMfOuz8/BxS052CW1FnoLNalpJDYhZ2n3HtV6INblQLY0z+0HFkNcuujzpAXmW2byj+sljw8qQT
	1va96cICRHzinGsJI61f0vxCiitAR1Igi2bskB+H31pBPrZeF01oJ4ae7cDHzgslEnatxVVSy9R
	VP0jz93WR9+kW60GKvkk4vxDQfZeeec55bQ=
X-Google-Smtp-Source: AGHT+IF8hT2oKN3QS+7m/RM8wXkyyesduYrfzUrCrctwmC1xpbZ0qWXqo4pCu+3Uh162MTKvxoPjCg==
X-Received: by 2002:a7b:cc9a:0:b0:434:a33d:ba44 with SMTP id 5b1f17b1804b1-434a33dbae2mr11145595e9.15.1732551700375;
        Mon, 25 Nov 2024 08:21:40 -0800 (PST)
Message-ID: <d2243aaf-d2f7-4975-a6e5-1db81414a509@suse.com>
Date: Mon, 25 Nov 2024 17:21:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-2-luca.fancellu@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: <20241119085806.805142-2-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 09:58, Luca Fancellu wrote:
> --- a/xen/include/xen/vmap.h
> +++ b/xen/include/xen/vmap.h
> @@ -5,12 +5,19 @@
>   * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
>   * latter is used when loading livepatches and the former for everything else.
>   */
> -#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
> +#ifndef __XEN_VMAP_H__
>  #define __XEN_VMAP_H__
>  
>  #include <xen/mm-frame.h>
>  #include <xen/page-size.h>
>  
> +/*
> + * MPU systems won't have HAS_VMAP enabled, but will provide implementation
> + * only for some of the functions of this module. So hide the definition for
> + * some of these function to systems where !HAS_VMAP
> + */
> +#ifdef CONFIG_HAS_VMAP

What you're hiding are declarations, not definitions. While this may feel like
splitting hair, the question really is: Do the declarations actually need
hiding? IOW won't it suffice to have the definitions unavailable? While this
would mean that wrong uses are flagged only when linking, we do such all the
time when we expect e.g. DCE to remove actual uses of respective identifiers.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:30:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:30:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842944.1258604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFbyo-0004I9-Mw; Mon, 25 Nov 2024 16:30:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842944.1258604; Mon, 25 Nov 2024 16: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 1tFbyo-0004I2-KF; Mon, 25 Nov 2024 16:30:30 +0000
Received: by outflank-mailman (input) for mailman id 842944;
 Mon, 25 Nov 2024 16: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=WzRA=SU=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tFbyn-0004Hw-Jy
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:30:29 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on20625.outbound.protection.outlook.com
 [2a01:111:f403:2608::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92fdcc73-ab4a-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 17:30:25 +0100 (CET)
Received: from DB8PR03CA0007.eurprd03.prod.outlook.com (2603:10a6:10:be::20)
 by AS8PR08MB10150.eurprd08.prod.outlook.com (2603:10a6:20b:62a::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.27; Mon, 25 Nov
 2024 16:30:18 +0000
Received: from DB5PEPF00014B95.eurprd02.prod.outlook.com
 (2603:10a6:10:be:cafe::91) by DB8PR03CA0007.outlook.office365.com
 (2603:10a6:10:be::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.19 via Frontend
 Transport; Mon, 25 Nov 2024 16:30:15 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5PEPF00014B95.mail.protection.outlook.com (10.167.8.233) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.16
 via Frontend Transport; Mon, 25 Nov 2024 16:30:13 +0000
Received: ("Tessian outbound 70f2252b2aaa:v490");
 Mon, 25 Nov 2024 16:30:13 +0000
Received: from Lb685cba4cdab.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 49CA2A71-7C16-489F-A4E9-A06508A4A3ED.1; 
 Mon, 25 Nov 2024 16:30:06 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lb685cba4cdab.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Mon, 25 Nov 2024 16:30:06 +0000
Received: from VE1PR08MB5807.eurprd08.prod.outlook.com (2603:10a6:800:1b2::22)
 by AM0PR08MB5522.eurprd08.prod.outlook.com (2603:10a6:208:18c::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Mon, 25 Nov
 2024 16:30:04 +0000
Received: from VE1PR08MB5807.eurprd08.prod.outlook.com
 ([fe80::ee39:f31e:3c63:985a]) by VE1PR08MB5807.eurprd08.prod.outlook.com
 ([fe80::ee39:f31e:3c63:985a%4]) with mapi id 15.20.8182.019; Mon, 25 Nov 2024
 16:30: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: 92fdcc73-ab4a-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwODo6NjI1IiwiaGVsbyI6IkVVUjAyLURCNS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjkyZmRjYzczLWFiNGEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTUyMjI1Ljk1NzY5NSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Jr8wHWgvzDgai/is2aMyugd8I+n3+Tz1Pc5EQxl3JBJpJnLq15rdDZU2Ugto404lBQxJA4OPje/9VCUPE6/zqWzo7RZ3zvAmgPVmo87a5kvscqwLw9/Cb6va0oXCQTq+SdsviI5LVf+hxUh3hKXIQSGEkTrTXyDeW5wW5OSx1WKxvlMFwr8f3m+rfIUE1q2E7ahwIrEocpiXfGb3HAJJ2euTvjkmS7s9X17YocFXJynY2HVw5rTJXfyV2ekcmUvXB8Je8qeh2hCtfwecTJaBMvHgjSa+Ry8siFq47zAd5YG1MsLbgtaORI0kT4JB71WBuVzWeqGf0cy9F9PZCedlpA==
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=BpQRabkWGjn7Z5I94H8240NDLwxcjDruRmPz0q+Ya2g=;
 b=VEk+jQFMfTbdqULZDHz5FM5nthXeeO1Llwwyzd9Geh4Cdt4XU53rkNcUE8ZrhJtnoeEqSBtcjBWgqb1kDUMpoWe0hwBY5FOkjLCAb26j8znCNQlzflTqt3n0vL2lWfq7TyffQpIsvfK1/nHybMBE5AkaFBDquBM9cWITV7P+yywMwnIebGQoUeFtYL4Cwa7Kw9Yua9QcvR5oj6pNQvcKyojVqoQbmaaGPJgdtDo+5YM+aQcn9mfhAYhehuNxYQqHiszOfq38P5G0T9OAPBiBW9eAQe1mjrlgucHfndagEbjdqPUXhSrSXetbAUzfQolboQDIMAQfyT1DFdG36ubHYg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=BpQRabkWGjn7Z5I94H8240NDLwxcjDruRmPz0q+Ya2g=;
 b=ZHph7CWtX2KB38/YdSL1ADgqCzBQuLpKna+QT6lBIOp1WTz9i9BbP0dZ/sVZX6wQjAVli4FLMqkFF4PN+czaqf1/gAC0V/3nHopG4hC3l0zs8/RJLCBxUBCy+O1+zUfxyT+q7xjRgZrXF/UAu3FE3ceHxIa+LjoJ4yZgAJ8NfY4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 5c469885eb5f3e67
X-TessianGatewayMetadata: r6XCOIicKbTZAK5dIsQqjMqXwpSVV+ibQentGBh4QEv1zIkeyT8FXogGNb8YfL0eRbOTHvhVoasx8ZIcTDTcIYicL4n5aTeUha0nqiQxyTcvkW/rrU2qO4TX3By2kLYwayxffBeYsiZhtyHitb57JgBESLVisNFZSz5pgAykCeY=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZflqJ79JCqCHyYBZiVeocl26N/bk6iD3I3zOzaEis1sJfgMmsE0YQjwbaTGwvrY3RMu6iLrWBoHqOqCuSFU4FwZxeZs4PMgtTVCRT09l6kSsOs1MMRROPzAbvG8S3R4Fw8HozarTgYwxn2iQokaEQjeKuwUt10mRhsPXoCg38ObMYkgffxBIVzjYb+ee9Mt0tfYIIu9FL/jNgUPK8JAHitMn5yb68sNJd/HxQsOqf+HDQQKPS4jDtPjttGcGClXLLxsSFULnvnnxtsCeThlF0SmAxsxQrt5HC+ssUwEAK+7gKUQSZnSeEY7Cj4NQsco1otgQ4VmbMSFZV9lxaOxHOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BpQRabkWGjn7Z5I94H8240NDLwxcjDruRmPz0q+Ya2g=;
 b=dy9kOS144pd0nuiHGrEmOAt+Xjr1IGgN+rucQxItXulSaNXQTfawIbbU6UvPz2KHtR+AVknucFIqJybymTawt1eSt2S45SB1k1t5Jsz2I0Q35a7EUTtnwfCMY/jo64iuny/ULxZiYeHdS9y5QqM26SiPJ7vxeF3r3hkRRXAHevfieWtSUiicoaodKTPSir5OkIP2QRFneSlsO//tuJp0FKOInLSG2MO/Tait76S7IIlwu4kUf9yZGq2vjhos4tzZqao/NPNcpaRcxAn4huR8FyYh9LavMiVebEwkMFebXUTVgixaYX/CfMiBbPgComTQHwJ5IZ5gYVwvk+YbuCmVsg==
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=BpQRabkWGjn7Z5I94H8240NDLwxcjDruRmPz0q+Ya2g=;
 b=ZHph7CWtX2KB38/YdSL1ADgqCzBQuLpKna+QT6lBIOp1WTz9i9BbP0dZ/sVZX6wQjAVli4FLMqkFF4PN+czaqf1/gAC0V/3nHopG4hC3l0zs8/RJLCBxUBCy+O1+zUfxyT+q7xjRgZrXF/UAu3FE3ceHxIa+LjoJ4yZgAJ8NfY4=
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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/4] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH v2 1/4] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbOmE7YtVMCPerGUiym/x0EBbXBrLIN3IAgAACNoA=
Date: Mon, 25 Nov 2024 16:30:04 +0000
Message-ID: <482AE5CD-CBC9-446F-B249-E5272CE7ECA3@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-2-luca.fancellu@arm.com>
 <d2243aaf-d2f7-4975-a6e5-1db81414a509@suse.com>
In-Reply-To: <d2243aaf-d2f7-4975-a6e5-1db81414a509@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	VE1PR08MB5807:EE_|AM0PR08MB5522:EE_|DB5PEPF00014B95:EE_|AS8PR08MB10150:EE_
X-MS-Office365-Filtering-Correlation-Id: c0471116-7d24-4264-c3c7-08dd0d6e7054
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?VUdjclhuUmRyTUR6dkowekxMallCMVlMcno4TkxJV1lscmhPQzgxU2hZNVdZ?=
 =?utf-8?B?MndwcGRnOVdzeVZOYUlNOUE2bFlkTzFLL1JHNnNXbzJ2b2lOakxUQWMzRVg1?=
 =?utf-8?B?UU5FZzJLbkxFRml2ZjZodm84K0JscjdkZGpMcW00YjJYV1VlM2R6NGVqclM3?=
 =?utf-8?B?M08xT2x6YUp0WlBRa0VsV2FEdTgzb05JTk04TjAvcUczNkEwa0lVQ2RTenJV?=
 =?utf-8?B?bnRGQTQzTDB4bTY1SnZwbTg3R1daRjZoZzRKWHl4NnRMZGlPNG4yOGNNamNJ?=
 =?utf-8?B?OTl4ejhXRXlKSS9ON24rMUZoaENtSXJ1Z0V2TjE2V0RVenozZFhaY1hLdTZh?=
 =?utf-8?B?K2Nva3BJNjNEMTg0MjF3eU1NOEphbTZsWXZNc1hDU2VneExhbnhsN2VJL0xk?=
 =?utf-8?B?MnRhbElVamxWZVZVZDh4N2lDNzBsbm5Sb3AyVktBMy9KZjZwS0VVQ1pMaWtj?=
 =?utf-8?B?UzdNR2ZsTXZGZ3pPM3Z1SUNtdnVUcjJ3aVZzQTJKUHZnVEhOVHF4UTZJN3pV?=
 =?utf-8?B?VmloNE4waTZhVlpnYW5zbndZS2lDUS90RDVYaEVJaXlHT3RvMWJJOXB6cTZB?=
 =?utf-8?B?ak01Y29sckVJT3MxYTdFOFpsdUNKdG0zK0xpd2NoTnBwRDd2N0ZYZUplTlVB?=
 =?utf-8?B?ai9qLzJBdFZyUlRyOWJlVEQ3eE9zb1p0YkE5MnRBWENkSGxMK2Q2WEE0ZUlx?=
 =?utf-8?B?MVBsVFYrekdvMDB2YzNNRGJMa1hieWNOYUpuWFY0bUhPU3RTaS83NE1GaHd4?=
 =?utf-8?B?NWhlS00yODNwMXNxaWVtRktObEVEaVNhT3BpTFA1N0lDaU4wbHMxdktoNEht?=
 =?utf-8?B?dTI4ODdSZkYrUzl2NHJpblF1N2ZGVWdNN0NqYWtlWEQwdk1EVXNwN2c2dHl6?=
 =?utf-8?B?TG80WE56Q3hUUUFUdEhGVUdnbEJrQjMwbFArWWlROXpZc2h1SEhCNVFNRUhw?=
 =?utf-8?B?YjFLeHRkY2VTMFQyVzMvQ0tJUGwwRXRrNExHNDM1MVlEVTBEOWRzUWhqTkxQ?=
 =?utf-8?B?Y1M4R0FPdlZDK1VwNmU2WlAzTWpVNExVZEtJR3poTGJUaG0zY0ZEby8xQ1FE?=
 =?utf-8?B?cExBbFRrUXp4TnNjY0lBU25hTGhrWTJlOCtHQUdNcko4a2Z2NDVlUEJUcUl6?=
 =?utf-8?B?SWU4cGkvUWVjcllhV25VY2ZvVWFYYVFXT3VPZVd1QWhMTmdNSXN1aFA0ZDBS?=
 =?utf-8?B?aktPOXZZd0NrUmNid0tqWjF6NWNjTUhIbllzdzdwMTNxRkd2Z3F3OWVwdmMv?=
 =?utf-8?B?V29wMTlPRlJvM1h4ejIrWlVDcEtFNENyL1NEMDNKUWZHSmhQb0xxanFrdmU0?=
 =?utf-8?B?a3Z5bjhvWmI2MjVWR1RJZ2JuVW1EMVZVTHJ0VEdtODVWMmZZMGQwRXp6S0Nt?=
 =?utf-8?B?Q1daVnZSS3BnZnR0WlJJZDR2OUpwZDYwQ1Y3NkU0eUh3dzFQaURjWG9obndT?=
 =?utf-8?B?djZNM1lyL2NnWjk0emRsb1JKN053RFpMbUY4S3VwWU5ZclhpQ2VmRFNpRG1L?=
 =?utf-8?B?Um80MlRJZDUzMDNOcXF4NWZFOGUxRWI3WHdHSUZDcmRTL1ZnczlTTTRTb3lT?=
 =?utf-8?B?dkx2TXoveHY2Vlk1UGpkekEvc2lNQTJLQTZrYXJYL3c0ZTg2YzR6NnIvc3dp?=
 =?utf-8?B?eUt3T3ArK3hMMEk1Y1FPM29zREpGcXJlcWo1UUo3bUtkTmNjVkk0VlRuSzBT?=
 =?utf-8?B?QURBYVhyTDZMeUw5OEVVUGx3MzJmVU04NGliSmJDcnlDTEpvRmNGMlJTd0pl?=
 =?utf-8?B?TlZJOHRpbXErRGtDckdPcmwrajhrSmdEeWJBNWVGbStyeTdsSXBJTWhreUVI?=
 =?utf-8?B?enBSQ3B1aGl1dlQyaVd6c2t1Q1ZkNXlNMWJ5c1h0VUxjbFMwRkdOd1hDdUU4?=
 =?utf-8?B?VFVLd0VobGtGQlhwYzlOUFMxWklrRjlwckRONmJXN0E1WXc9PQ==?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR08MB5807.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <83CF42637104D14B9AAB090675284EAD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5522
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:800:1b2::22];domain=VE1PR08MB5807.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B95.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a5a9009a-4c8a-4814-1be5-08dd0d6e6acb
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|82310400026|35042699022|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Vkc0VFdHMEkvR2dqaFBIT1dCRXNpQ3RoV2tZb0VWUUROVllTV1gzM1FzemJy?=
 =?utf-8?B?RHBCbVpBUEJMZnVQem9waXc2eVcxelBtOGRVc3hhdlMyK25ETk95VHRRRHNv?=
 =?utf-8?B?QmFQekF6NDlFRlB0ekxBejhnNDArQWVsaWNmbE13KytuSHRtcHYyMWNOaE9h?=
 =?utf-8?B?Y2E2UUdsakgyVENMejJ3VGVndHJvUWlpK2x6a0Q4YTdhd0Zpamp3Zm9tMUxT?=
 =?utf-8?B?MjFUbk1EMU8yVTRjY2NNRlBvb1dPK1dITlBQTDVnZ0orSDROd3Jsa1pJL2Yw?=
 =?utf-8?B?Y0hUZ3NBVjIrQ1RzNkp6V2RvUXd4QlNUOFFCVkxIOTFqbHVaZE5zOS9jK3Zy?=
 =?utf-8?B?TklaV1VxQy9ZWGlCY24yTkFEZzdFUTRtTy9weG1MaDA1cWZxYVlDRzZacWtG?=
 =?utf-8?B?ZkJJRVBEVkF4eng2NXUxNE5YbEdKRTc1S2VEU1ovYmRvS0NteXdYaFJ0VlFH?=
 =?utf-8?B?cXBqd3Exb25ZdnlnRUh2dGlFQUNFbFJhSTJ4cEprd1hTZittRGdOK0ZSN3g0?=
 =?utf-8?B?cnNEYlZRSTY0ZW5qU0tlanhpeFZ5ZlB5U1YvUmsvbGxISVRVUURJY1VzMXJ3?=
 =?utf-8?B?am1yQnk5L3NHL05qakd3K2Q1blhHOXA2a3ZjTllSdnpZWlQyUG5PalgzSHlr?=
 =?utf-8?B?eVMyL3lFV0xGeVdzb2dkcDNwSDk0WEJrR1NJbGZSMzVKQUZNeVNjdGozSlFZ?=
 =?utf-8?B?bGVmdTJPU05SdlJncm0vSzdTYWgwa2I4RnRvaS8zd0svSG9NdnRvaHd5Z3Bv?=
 =?utf-8?B?eWVPYVV4OENqUkpCQ0gvSEYrMk1Pd24wSU90TkJsSlpuNkhCWVZGMTZBSm1B?=
 =?utf-8?B?MkhhQTM3TTFuc1Fqc1RjRGRiRG9sdTZkYzhvVm5Qc3E5L3dEMEt6ZVJqdllN?=
 =?utf-8?B?UklFNnVkVEF0TU40UDFaeG1Sb0grbUhqSmNMeEdHbHhIVmN5dDlUd3psTUxk?=
 =?utf-8?B?UTZQejJDR000NjlQa20wQVFGb3JXYnMxaE05S0dISmM3VTBydnZSOHhiQUFr?=
 =?utf-8?B?SnkzNE5XVkFzZlFTUW82Ym9tN0lKcnBuWU1kTS9jL1AzRHVYNXBhNWJjdVFD?=
 =?utf-8?B?UXdpUC84aGdvNi9KYWFtbEUvdElxclgxUXpCUC9jaFJpNHlXaXJWWTNuTTN3?=
 =?utf-8?B?RVozbHV3MGFHVEVYRDBqVW1VdDNsTVM4WFJCaHMxdzE3eGl6K0RUQlBRN1pL?=
 =?utf-8?B?WmhiemF3S21nWWlYUWRsRkdZOUVhZVorK0VRNGRVWHN1SlcwZGFLdm5oSDlG?=
 =?utf-8?B?NDAxWnZKZlpWSE1hc2pOTnlrRDg3SFNVSTNqTzVUdzl0dnoyWEhxZ1dNb0VO?=
 =?utf-8?B?Mi83OFgrUVJiNXBwSUx4N25vVnVLUjVOK3k0TVBWQzFqL2ptSXM0YXNrUWti?=
 =?utf-8?B?bzlZZGRVWmh4WUZWeU5Idy83SGZTMWVWamw1MkhUZzhvVE1Nc1hTNkxTeEV2?=
 =?utf-8?B?MndxNXBoSlJBVDR1Z3VuSEFTS1lxdHpBQk93ZUh4WVlBWHhiMFZKdXNGYWE3?=
 =?utf-8?B?Q2c2TFNGZUxiQ25aSDgwNHBHNHUvaGNGOFpSeEduK3VacDZDcUVod21mVGpI?=
 =?utf-8?B?L2ZXSUxMVGpDR0hkaVUyVVZBNGQ5ZmVIWWo4bUhIMVYrcEZvNDVzY2xNbTdt?=
 =?utf-8?B?TVM1SGE1TjdkdzFDUTVnMFN2QUpCcGMxa1NqNXFZMW1mT1YrSVUwTVdLa2NL?=
 =?utf-8?B?V0pVeGg1OHVZaVdmQzhpWEpCKzNYRjF1UFAvVHhEOXBsQkJEZjJwbDYvbjgx?=
 =?utf-8?B?MUczWGs1d2ZmYy9FcWZmdkV0L2FKTzM5RGRrUW1BTHFlVEdhUVdZS1A4OEFQ?=
 =?utf-8?B?Vk4wclAvUHh3VC90YXpKajdldW9GbGVKOHpPakoyOFREa0xIQXNDQ3lTMmtk?=
 =?utf-8?B?eE1kUnVFWnB6bmJBUVo5VEk5L3QwQXc5dmtiTTF6VXlFZGh1OXFaSjdaSmo5?=
 =?utf-8?Q?UZZgXTKrSIGP8ykFB2AcT8zfzO8Bo9KX?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(14060799003)(376014)(82310400026)(35042699022)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 16:30:13.8332
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c0471116-7d24-4264-c3c7-08dd0d6e7054
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B95.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB10150

SGkgSmFuLA0KDQo+IE9uIDI1IE5vdiAyMDI0LCBhdCAxNjoyMSwgSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPiB3cm90ZToNCj4gDQo+IE9uIDE5LjExLjIwMjQgMDk6NTgsIEx1Y2EgRmFu
Y2VsbHUgd3JvdGU6DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vdm1hcC5oDQo+PiArKysgYi94
ZW4vaW5jbHVkZS94ZW4vdm1hcC5oDQo+PiBAQCAtNSwxMiArNSwxOSBAQA0KPj4gICogcHVycG9z
ZSBhcmVhIChWTUFQX0RFRkFVTFQpIGFuZCBhIGxpdmVwYXRjaC1zcGVjaWZpYyBhcmVhIChWTUFQ
X1hFTikuIFRoZQ0KPj4gICogbGF0dGVyIGlzIHVzZWQgd2hlbiBsb2FkaW5nIGxpdmVwYXRjaGVz
IGFuZCB0aGUgZm9ybWVyIGZvciBldmVyeXRoaW5nIGVsc2UuDQo+PiAgKi8NCj4+IC0jaWYgIWRl
ZmluZWQoX19YRU5fVk1BUF9IX18pICYmIGRlZmluZWQoVk1BUF9WSVJUX1NUQVJUKQ0KPj4gKyNp
Zm5kZWYgX19YRU5fVk1BUF9IX18NCj4+ICNkZWZpbmUgX19YRU5fVk1BUF9IX18NCj4+IA0KPj4g
I2luY2x1ZGUgPHhlbi9tbS1mcmFtZS5oPg0KPj4gI2luY2x1ZGUgPHhlbi9wYWdlLXNpemUuaD4N
Cj4+IA0KPj4gKy8qDQo+PiArICogTVBVIHN5c3RlbXMgd29uJ3QgaGF2ZSBIQVNfVk1BUCBlbmFi
bGVkLCBidXQgd2lsbCBwcm92aWRlIGltcGxlbWVudGF0aW9uDQo+PiArICogb25seSBmb3Igc29t
ZSBvZiB0aGUgZnVuY3Rpb25zIG9mIHRoaXMgbW9kdWxlLiBTbyBoaWRlIHRoZSBkZWZpbml0aW9u
IGZvcg0KPj4gKyAqIHNvbWUgb2YgdGhlc2UgZnVuY3Rpb24gdG8gc3lzdGVtcyB3aGVyZSAhSEFT
X1ZNQVANCj4+ICsgKi8NCj4+ICsjaWZkZWYgQ09ORklHX0hBU19WTUFQDQo+IA0KPiBXaGF0IHlv
dSdyZSBoaWRpbmcgYXJlIGRlY2xhcmF0aW9ucywgbm90IGRlZmluaXRpb25zLg0KDQp5ZXMsIEkg
cmVhbGlzZWQgdGhlIG1pc3Rha2UgYWZ0ZXIgc2VuZGluZw0KDQo+IFdoaWxlIHRoaXMgbWF5IGZl
ZWwgbGlrZQ0KPiBzcGxpdHRpbmcgaGFpciwgdGhlIHF1ZXN0aW9uIHJlYWxseSBpczogRG8gdGhl
IGRlY2xhcmF0aW9ucyBhY3R1YWxseSBuZWVkDQo+IGhpZGluZz8gSU9XIHdvbid0IGl0IHN1ZmZp
Y2UgdG8gaGF2ZSB0aGUgZGVmaW5pdGlvbnMgdW5hdmFpbGFibGU/IFdoaWxlIHRoaXMNCj4gd291
bGQgbWVhbiB0aGF0IHdyb25nIHVzZXMgYXJlIGZsYWdnZWQgb25seSB3aGVuIGxpbmtpbmcsIHdl
IGRvIHN1Y2ggYWxsIHRoZQ0KPiB0aW1lIHdoZW4gd2UgZXhwZWN0IGUuZy4gRENFIHRvIHJlbW92
ZSBhY3R1YWwgdXNlcyBvZiByZXNwZWN0aXZlIGlkZW50aWZpZXJzLg0KDQpJIG1pc3VuZGVyc3Rv
b2QgeW91ciBjb21tZW50IG9uIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGFuZCBJIHRob3VnaHQgeW91
ciBwcmVmZXJlbmNlDQp3YXMgdG8gaGlkZSB0aGUgZGVjbGFyYXRpb25zLiBJ4oCZbGwgdHJ5IHdp
dGhvdXQgaGlkaW5nIHRoZW0gYW5kIEnigJlsbCBzZW5kIHRoZSBjaGFuZ2Ugc29vbi4NCg0KQ2hl
ZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:32:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:32:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842956.1258614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFc0g-0005Fa-6G; Mon, 25 Nov 2024 16:32:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842956.1258614; Mon, 25 Nov 2024 16:32: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 1tFc0g-0005FT-3l; Mon, 25 Nov 2024 16:32:26 +0000
Received: by outflank-mailman (input) for mailman id 842956;
 Mon, 25 Nov 2024 16: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFc0e-0005E4-N1
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:32:24 +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 d840d32a-ab4a-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 17:32:21 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43155abaf0bso43076875e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 08:32: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-4349f9eca01sm42460805e9.29.2024.11.25.08.32.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 08:32: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: d840d32a-ab4a-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ4NDBkMzJhLWFiNGEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTUyMzQxLjc4Nzk2Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732552341; x=1733157141; 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=+aUzzZ4EoRwBDIUqEAHn5XCekDXQD4QhemrWFLVbiKo=;
        b=KtJFMIGgqQ4azMdZ5Wwa7AwJ5Pkfh+gU90/thwCdu5dUFmNr64Kvb8GN6CFQCf2urw
         jJhZPvs3UUngH3qs/ZjQP29XFm07U90aQl71JPNjVQnFuDm6Fqk+NkVZqn8Pn6l/9hKS
         oNdTp1qrGFF8gWVAe8mY1RyMSLpLIbNdSEdgjXuWZiXHg+yeNoBGP5GPFvOUuHWRTX+w
         ntAsQlCIPs7uGb+Epg4nKcEcnUYD4KLbLxj0cHX1/unD+l4v8zeLfB8ZoDWiR6PhdB8+
         ZdVqqFl+giFY4l+/gWBkp0CaB8PIQ+faXUmE8iLfDNjoJlaHJLk5ffbqggtHgZdmNMmc
         +uXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732552341; x=1733157141;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+aUzzZ4EoRwBDIUqEAHn5XCekDXQD4QhemrWFLVbiKo=;
        b=YZ0mjQBJbRr39/HbZ3iOHsu+ZtLiPY8ht5LViK5wepyaonJI0ZCs5PFjXl+PNlB7aG
         6kNQJqQQg5fgSgtB8h/Ju5YIODXavRDkVoFEKJiJjBbZYbMrjQAS2d/K5bR/OUOWng0h
         qOjKyVEW/REtcBF2IAx+C2m9ArpOwZ7H4WvSYLWVnryRqpErsbRBgEXMMQxdfozZ20t6
         Fc4AxDeFu0J9t9hhJjx5wM8uYDv6zeTiQPYJ9DdFkL/8u9vkUrTATjLSu4zkEIwu2mhG
         bRrln3SgnRkdnMP9gzXuZ7v6uaWC3dVLB6lpXuyAxDGtInJ+sEDr58Yh8gGeMUa+QqyB
         NOUQ==
X-Forwarded-Encrypted: i=1; AJvYcCXL07KtqzzWB69xlJLMQDLWOHr6cZtVPZ9GjvWg8Iod1Be9AjduLl08zzOlIhPhlAu0HUDlPIJCnsI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQvAwdkNHL25x44haaWFvfYDleBixBuQSDddeuHjfu6iY9cqGs
	tthslUwbhSS57iDQ/BzUnrTaV3f6gzIWG6a+IsEqv1vkJ2/z92R/ZMXsval3mw==
X-Gm-Gg: ASbGncuO/s1+P8e8aDvlSNgspiKQKNuKTo3FSmS6EAi4nGK7g12q7I7xrJ3YYMcn70Q
	yulviDVRu5zbW5ywQ8VaGTOdBLhfZKj4RvVxhxf++pkD8454DWTKQwVZukND74N8nD97NL8OH4g
	BeJN/KKcR50zCZYnZoEYjqhA6fwE8pB4bWWEROSDRERivxWC4qe1jhQ2Si8TmlKnfMMaaf8oG0s
	T6C7ssXbfX1JTAQTrmLjG8Aqo2ZFWHdehdr306k+Ku2EPnZ7V6DH6Dwa9vSnvKtJwEweYmng6UZ
	aWK7MZSL6DLsGEfuJR+RGGxgKrmPnWTDrpk=
X-Google-Smtp-Source: AGHT+IE+KCSJIM7CGWuvjyTd8vVpl+/3Viv1CBrUzjlsjV3FBPZN+qI5xUGl0ONUEHv83d97j6bpHA==
X-Received: by 2002:a05:600c:3ac9:b0:431:537d:b3b4 with SMTP id 5b1f17b1804b1-433ce42548fmr114932625e9.11.1732552341158;
        Mon, 25 Nov 2024 08:32:21 -0800 (PST)
Message-ID: <ca91b717-47c3-4f92-af6a-cb740ef6e91d@suse.com>
Date: Mon, 25 Nov 2024 17:32:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
To: Luca Fancellu <luca.fancellu@arm.com>, Penny Zheng <Penny.Zheng@arm.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>, Wei Chen <wei.chen@arm.com>,
 xen-devel@lists.xenproject.org
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-5-luca.fancellu@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: <20241119085806.805142-5-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 09:58, Luca Fancellu wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> If Xenheap is statically configured in Device Tree, its size is
> definite. So, the memory shall not be given back into static heap, like
> it's normally done in free_init_memory, etc, once the initialization
> is finished.

I'm somewhat confused by the use of "back" here? Isn't the change all
about init-time behavior, i.e. memory that's handed to the allocator for
the very first time? Else I may be misunderstanding something here, in
which case I'd like to ask for the description to be refined.

> --- a/xen/include/xen/bootfdt.h
> +++ b/xen/include/xen/bootfdt.h
> @@ -132,7 +132,6 @@ struct bootinfo {
>  #ifdef CONFIG_STATIC_SHM
>      struct shared_meminfo shmem;
>  #endif
> -    bool static_heap;
>  };
>  
>  #ifdef CONFIG_ACPI
> @@ -157,6 +156,10 @@ struct bootinfo {
>  
>  extern struct bootinfo bootinfo;
>  
> +#ifdef CONFIG_STATIC_MEMORY
> +extern bool static_heap;
> +#endif

Just to double check Misra-wise: Is there a guarantee that this header will
always be included by page-alloc.c, so that the definition of the symbol
has an earlier declaration already visible? I ask because this header
doesn't look like one where symbols defined in page-alloc.c would normally
be declared. And I sincerely hope that this header isn't one of those that
end up being included virtually everywhere.

> @@ -206,4 +209,13 @@ static inline struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
>  }
>  #endif
>  
> +static inline bool xen_is_using_staticheap(void)
> +{
> +#ifdef CONFIG_STATIC_MEMORY
> +    return static_heap;
> +#else
> +    return false;
> +#endif
> +}

As to naming: How about using_static_heap()? The xen_ prefix doesn't look to
be carrying any useful information, and the then remaining is_ prefix would
be largely redundant with "using". Plus there surely wants to be a separator
between "static" and "heap".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:39:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842966.1258625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFc7S-0005t3-Sn; Mon, 25 Nov 2024 16:39:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842966.1258625; Mon, 25 Nov 2024 16:39: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 1tFc7S-0005sw-Pq; Mon, 25 Nov 2024 16:39:26 +0000
Received: by outflank-mailman (input) for mailman id 842966;
 Mon, 25 Nov 2024 16:39: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=UNn4=SU=bounce.vates.tech=bounce-md_30504962.6744a834.v1-a4d5ed2962b94439b4fd949b86b0f42a@srs-se1.protection.inumbo.net>)
 id 1tFc7R-0005sq-En
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:39:25 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0461ce7-ab4b-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 17:39:18 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4XxryD71TQzG0CRCX
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 16:39:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a4d5ed2962b94439b4fd949b86b0f42a; Mon, 25 Nov 2024 16:39: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: d0461ce7-ab4b-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImQwNDYxY2U3LWFiNGItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTUyNzU4LjY2NjYxLCJzZW5kZXIiOiJib3VuY2UtbWRfMzA1MDQ5NjIuNjc0NGE4MzQudjEtYTRkNWVkMjk2MmI5NDQzOWI0ZmQ5NDliODZiMGY0MmFAYm91bmNlLnZhdGVzLnRlY2giLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732552757; x=1732813257;
	bh=o0akXVytT6ksnrZVyuLyVe3FmuKaCupmX1SmgZHztv0=;
	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=CCTXDwbgr8W74Nqw4xzZl8arFpXiovfnkmATOVuPcc4Hm2Vo+ahfyuoe1BFs2+cNt
	 ElWRtnZciiEgK/9J29BagSFSvOW3JxDYe/J/31WEbjQQYEGSc3DD+j9ROZuy2pQWz2
	 9xTLCsSwW453sVSlSr23JzHTUonnoSu1P80WYjaB5MDlcx1V0sAtLTGJnnc5HPOv/2
	 kPjbFnHH/zYC41kFnrn4jGCBUL8pqyTSaaU/ltS03BqzZwzwPC5FFrlaf1Z/5mqwtq
	 JDV3dUXNJcH95ovLa4atgk6rEMlgskvib/xYXh6Z9xUp7t2cFz+70rTSTVR09hsUZK
	 B3+NKBDdBRgcQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732552757; x=1732813257; i=teddy.astie@vates.tech;
	bh=o0akXVytT6ksnrZVyuLyVe3FmuKaCupmX1SmgZHztv0=;
	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=edEM8gaxojTgBfCNc10x+GETC3qASjAK6i3rSYs/ES1vOFdGm8rFtXRfGOILlzT5d
	 Vu1i1R8+uHFsdep0pamc9vMtBN1IOq0bdzmBVJhHQwNAm+uJCNhaK7L4HK/iOI3LUr
	 T0qGI9++gFmLknAnonWWxqpXqDi4Fw3n2BO+VLsiK3BRqNBqx8U22YwmrpjtqlK6mH
	 9XewPo+X+4Vdkdfy2/xgxEZRaz4OKAjp0UMZWYIjkKZzTSj7UecRQJCHsAF4SnFlFo
	 fM54XB7m+HCHCAAPe2ixBOd9HTpJ7LYRNg9wK6qbHfNGvtdpmD8fZx5Pjlj109pvCn
	 GVjpwGcFgSjhA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2008/25]=20tools/xenbindgen:=20Add=20support=20for=20enums=20in=20TOML=20specs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732552756104
Message-Id: <b4776dd0-9b4e-457c-9108-88fa2e575e7d@vates.tech>
To: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson" <yann.dirson@vates.tech>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com> <20241115115200.2824-9-alejandro.vallejo@cloud.com>
In-Reply-To: <20241115115200.2824-9-alejandro.vallejo@cloud.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.a4d5ed2962b94439b4fd949b86b0f42a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241125:md
Date: Mon, 25 Nov 2024 16:39:16 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello,

> +
>   /// A language-agnostic specification.
>   #[derive(Debug, serde::Deserialize)]
>   struct InFileDef {
>       /// List of structs described in this input specification.
>       structs: Option<Vec<StructDef>>,
> +    /// List of lang-agnostic enumerated descriptions.
> +    enums: Option<Vec<EnumDef>>,
>   }
>   

Alike for struct/..., I think we can merge that with OutFileDef using 
the default attribute in serde :
#[serde(default)]
https://serde.rs/field-attrs.html#default

That way, when there is no structs/... entry in the file, it is parsed 
as a empty vec![] instead of failing which allows us to remove this 
wrapper struct.

Cheers

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 Nov 25 16:51:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:51:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842976.1258635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFcJN-0000c4-UH; Mon, 25 Nov 2024 16:51:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842976.1258635; Mon, 25 Nov 2024 16: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 1tFcJN-0000bx-Rg; Mon, 25 Nov 2024 16:51:45 +0000
Received: by outflank-mailman (input) for mailman id 842976;
 Mon, 25 Nov 2024 16:51: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=toQe=SU=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFcJN-0000br-5h
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:51:45 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a8b9c86-ab4d-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 17:51:39 +0100 (CET)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2ffb5b131d0so21836901fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 08:51:39 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3b032esm4257497a12.19.2024.11.25.08.51.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 08:51: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: 8a8b9c86-ab4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMjkiLCJoZWxvIjoibWFpbC1sajEteDIyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhhOGI5Yzg2LWFiNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTUzNDk5Ljc4MTM2Miwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732553499; x=1733158299; darn=lists.xenproject.org;
        h=in-reply-to:references:subject:cc:to:from:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wzepjfH+q3/6KBH49DhoICOV6voO0/yK4Z8MIs3mFvg=;
        b=BTUzTZG5ex0UIiekm3gNvOea7weULQe8GhJIXzkuwgSYG5x8lBn6uS69+oCUJ0JEAf
         u+nAAHPm2qKXyY8iuEGi5GPPRY7XncZQMXp3SEr7bSVLEzeVfJWA02N3TPcf8/T+1i/F
         2YpqTX0CxzJM9ZiVqa7rsh1yQjSSxwZfU4bS0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732553499; x=1733158299;
        h=in-reply-to:references:subject:cc:to:from:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=wzepjfH+q3/6KBH49DhoICOV6voO0/yK4Z8MIs3mFvg=;
        b=Yb1G3DMgWVBGjYBY0mulEltTGeJL0ijeS2IU7t6WGXavxWe1DbywfuQxvrdtktN923
         NAXjG09liDdxBCk/4kBuiQBjhjgYUP/f18D6upHx8OlkMZziQ+UwbXJFeVPjujVXfJG2
         7DlSqdkcBo/A8BkIjllyWzcsYxEwRTw5SiQ2RlWVJrpU+Qrh84BHGBVfowHe06Bk897B
         YkhxK1oUT92aPDu2lxolUrdHHtS4+gpHCBFElv611r6OO3zc+CgUxZqHtglsa3wOyO4Q
         5v36FJ+d+FA3TjWO8AckZP4JE50BrKs0145rUsU2SBRq71RNggOqSuyOL81qTTowuvGb
         J6+w==
X-Forwarded-Encrypted: i=1; AJvYcCVrilZ48aINw0j+7MWxT3xSrYXkVSAILSh/AU+Qxprjgsz+t0G9IGpTHWhYISRu8CtDOGh62elQG40=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxymEtShXID+jkez9kRPPzHVUC/ZN8SIEh8keNJosYZX1421uLA
	weMWAwGxE+o0t62P3GnmodOlBELz2P+pW5v8Rggqfu0Dym65xWVCoYQjTcRme12h9Lc+2XYUC0k
	H
X-Gm-Gg: ASbGncvcobWvVGfkq95z9WbhHLAT7BHvECjrBw0nbMJ5XRkmxxP/JJ14M2sLtFwgRWn
	L7Nj9lUdbT3MSj2dqeJlYNBdeN8QAyi3rT+wNEMkjaJbD8a3tFsaV+uSaPzIkirrIPEb8vvWoxF
	OT1oi5G8mrI4g68iWwuyNVRnXzJLWnOVXLvqeDLb2Ysx0ieZTppn29liGw51brEWFPALPqMGyia
	WfAXtF96LzG1HlAmZRaVmqQCccD3mKgzbW7kSWuUMOdY9emQsEJvTs0
X-Google-Smtp-Source: AGHT+IHMVintiZhNak7S1kjzfe/vS7utaWHqj922saQa0EAZqRZeOlZC5SDrP1N7XGOhs6Us10icNQ==
X-Received: by 2002:a2e:b8d1:0:b0:2ff:58e5:af0f with SMTP id 38308e7fff4ca-2ffa711ff87mr62163391fa.19.1732553499244;
        Mon, 25 Nov 2024 08:51:39 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 25 Nov 2024 16:51:34 +0000
Message-Id: <D5VEYFJOCITG.3RPS1UQFDNY25@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson"
 <yann.dirson@vates.tech>
Subject: Re: [RFC PATCH 04/25] tools/xenbindgen: Add a TOML spec reader
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-5-alejandro.vallejo@cloud.com>
 <aa5ed051-3696-42f1-9eec-d7cbd21d9882@vates.tech>
In-Reply-To: <aa5ed051-3696-42f1-9eec-d7cbd21d9882@vates.tech>

On Mon Nov 25, 2024 at 3:13 PM GMT, Teddy Astie wrote:
> Hi,
>
> > +    let _specification =3D match spec::Spec::new(&cli.indir) {
> > +        Ok(x) =3D> x,
> > +        Err(spec::Error::Toml(x)) =3D> {
> > +            error!("TOML parsing error:");
> > +            error!("{x:#?}");
> > +            std::process::exit(1);
> > +        }
> > +        Err(spec::Error::Io(x)) =3D> {
> > +            error!("IO error:");
> > +            error!("{x:#?}");
> > +            std::process::exit(1);
> > +        }
> > +    };
>
> I think it can be replaced with .unwrap() (or making the main function=20
> returns a Result<T, E>) as long as our internal error implements Display.

Oh, I wasn't aware E: Display was honoured on exit. I thought it always use=
d E:
Debug. That ought to be a lot nicer.

>
> > +/// Internal error type for every error spec parsing could encounter
> > +#[derive(Debug)]
> > +pub enum Error {
> > +    /// Wrapper around IO errors
> > +    Io(std::io::Error),
> > +    /// Wrapper around deserialization errors
> > +    Toml(toml::de::Error),
> > +}
> > +
> > +/// Maps an [`std::io::Error`] onto a [`Error`] type for easier propag=
ation
> > +fn from_ioerr<T>(t: std::io::Result<T>) -> Result<T, Error> {
> > +    t.map_err(Error::Io)
> > +}
> > +
>
> May be worth a
> impl From<std::io::Error> for super::Error
> such as ? operator can automatically convert it to our internal error typ=
e
>
> Cheers
> Teddy
>
>
> Teddy Astie | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech

Yes, I replaced all this faff in my internal branch with From<std::io::Erro=
r>
and From<toml::de::Error> shortly after sending the RFC. It is indeed a lot
tidier.

Cheers,
Alejandro



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 16:54:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 16:54:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842984.1258645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFcLh-00019w-AD; Mon, 25 Nov 2024 16:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842984.1258645; Mon, 25 Nov 2024 16: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 1tFcLh-00019p-7W; Mon, 25 Nov 2024 16:54:09 +0000
Received: by outflank-mailman (input) for mailman id 842984;
 Mon, 25 Nov 2024 16:54: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=bTcJ=SU=bounce.vates.tech=bounce-md_30504962.6744aba8.v1-923f503bf8d1455887d6cbac0db9dd8b@srs-se1.protection.inumbo.net>)
 id 1tFcLg-00019j-DX
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 16:54:08 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df25ed3b-ab4d-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 17:54:02 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4XxsHD6KQMzG0CT9p
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 16:54:00 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 923f503bf8d1455887d6cbac0db9dd8b; Mon, 25 Nov 2024 16:54: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: df25ed3b-ab4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRmMjVlZDNiLWFiNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTUzNjQyLjY4MzQ0Miwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDRhYmE4LnYxLTkyM2Y1MDNiZjhkMTQ1NTg4N2Q2Y2JhYzBkYjlkZDhiQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732553640; x=1732814140;
	bh=omW5yMXMgseSyf8ib7wjp+EAatzve5bYK/DdFmQA4zs=;
	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=Ja+kjBbzjq1IF26MUbAgINz8CIFIfE818dQPvMwI5OyVxfA4aHSAVMNa6B5QSEZDM
	 WctxU3jrPsFoXdYw3/Wf4yyTuPKend3k3mcC/3gGStu/zNJ48cvLC/833AlgjDicd0
	 a/QKM383fRGX66sNkA5XTSREalvD1MGkR335U9ogEkxsujtUfdaLOc1aNJ1Q/mwP0I
	 Z5/zEWxIo2Xwp3yqIU+nuFdgyRF04ph4FnvreP0H7CANt5ucHf4BMNv7yrdyyDBE8f
	 ddE9ldFuTrv2Qd3grkjCdxv4pEvVrE8NCp7rRVUs9Z+Tv+gbtF3kWSIUT73ZBBpgWS
	 2oz+95aWBjWJw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732553640; x=1732814140; i=anthony.perard@vates.tech;
	bh=omW5yMXMgseSyf8ib7wjp+EAatzve5bYK/DdFmQA4zs=;
	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=E7FVtmd1jGHmxd71cyfNWBCpYzbJu9LSqXcL/HQQ6OTR31nGxsUQGPRY7TGKArFmA
	 rmMfOSKZqiuOM/RfwZNBcLT6FPJBU51rZIDJ4xTjYI2xZlVaCdVTIXoHyUL1GwgAEd
	 XPKVfYNVWjwL9lswgd8pGeknVGTz0HGvUvoz7VAnGtpcgUbf4bHPEEa5K49jP0loN9
	 Cpfkrd80Qsn7m+oNi2BIFsToyCemInZ6ZE4wzg/eucgoNh2tKgHpmVgzwevfvzmxp7
	 118nq9LZT6iAFBHefHAm/XbO1yG5fzVVuK3Q/4QrqYqDjOGihOBpHqXyj/fu8D4Ttv
	 NUTnllo7NL1jw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/2]=20libxl/ACPI:=20don't=20hard-code=20guest=20page=20size?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732553640217
To: "Jan Beulich" <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <Z0Srp0Ag0y4AQQiE@l14>
References: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@suse.com> <9eca264f-57b3-45d3-8017-cd11af0b6cf7@suse.com>
In-Reply-To: <9eca264f-57b3-45d3-8017-cd11af0b6cf7@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.923f503bf8d1455887d6cbac0db9dd8b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241125:md
Date: Mon, 25 Nov 2024 16:54:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Nov 25, 2024 at 04:15:28PM +0100, Jan Beulich wrote:
> We have libxl_ctxt.page_size for this purpose; use it to eliminate a
> latent buffer overrun.

The 4096 here might actually refer to the size used to allocate
`config.infop`, which is `libxl_ctxt.page_size`. So I don't if the
explanation is correct, but at least now the same value is used for both
zmalloc() and .lenght.

> Fixes: 14c0d328da2b ("libxl/acpi: Build ACPI tables for HVMlite guests")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

> ---
> Yet better might be to limit the size to what's actually used (libacpi's
> struct acpi_info). That would then also have avoided the respective part
> of XSA-???.

It's kind of hard to tell here how `infop` is going to be used from this
function, so changing the lenght just here might not do the right thing.

> --- a/tools/libs/light/libxl_x86_acpi.c
> +++ b/tools/libs/light/libxl_x86_acpi.c
> @@ -218,7 +218,7 @@ int libxl__dom_load_acpi(libxl__gc *gc,
>          dom->acpi_modules[0].guest_addr_out = 0x100000 - 64;
>  
>      dom->acpi_modules[1].data = (void *)config.infop;
> -    dom->acpi_modules[1].length = 4096;
> +    dom->acpi_modules[1].length = libxl_ctxt.page_size;
>      dom->acpi_modules[1].guest_addr_out = ACPI_INFO_PHYSICAL_ADDRESS;
>  
>      dom->acpi_modules[2].data = libxl_ctxt.buf;

Thanks,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 17:02:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 17:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.842997.1258655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFcU7-0002s4-4f; Mon, 25 Nov 2024 17:02:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 842997.1258655; Mon, 25 Nov 2024 17:02: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 1tFcU7-0002rx-0w; Mon, 25 Nov 2024 17:02:51 +0000
Received: by outflank-mailman (input) for mailman id 842997;
 Mon, 25 Nov 2024 17:02: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=mqqh=SU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFcU5-0002rr-OM
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 17:02:49 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17bc28b2-ab4f-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 18:02:46 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-53dde5262fdso2246838e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 09:02: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
 4fb4d7f45d1cf-5d01d41af02sm4288477a12.87.2024.11.25.09.02.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 09:02: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: 17bc28b2-ab4f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE3YmMyOGIyLWFiNGYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTU0MTY2LjE0NjQ5Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732554165; x=1733158965; 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=U5fZgSYLTOoaY0Y2ERGQC8XjxzOjjg1layygbVCyDB4=;
        b=UgTaqdYo+iSlXSBhHj/1/is0vNqHL/mPmVAOw2q90EAOeTl3cOuIdRIJdp/FXu0GsS
         FaaWahApz3JI0SFI6cXqJ2a3zK6fQsz8QY76h/DWs3UG8ONvXtAoK5ohT4nNk1/69Zqs
         rMnEdyDci+eT8uj9++SHCmzB6uBa9Ded7DkgjLxG6gFr4Fz35q1sA5RZYCGtmsGrou3E
         rRroeV/GPYt2goTGGkd1lvGtI/6LR+TXR7Zi8m1Zq6+/oPWA3TJb0fuWfo1P8ObL0ZeG
         hIP4uJRPgEi4x1LRnNP+cCssSKeqaS0fgDNhD9ZIhgbjevvvGY9gUy+ML8YFWF/EHNm/
         vt+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732554165; x=1733158965;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=U5fZgSYLTOoaY0Y2ERGQC8XjxzOjjg1layygbVCyDB4=;
        b=H6GRIYTFbYa39WP2o2KVKALfmZmO9F7tMErngKGNL9AfRdpuCDEotLBzEtON1wIdCF
         b9+faAVGgYUGSZx3aqRZ71CaGOrqq/0Vi2ym5cgnucmqNz6WLy9Zo2yjU5j4vnbZwRfj
         OFTt6MYsSDrQiZO7Zdfro7VnpvWbx9BQo7NUrd9xYQX+zfyfewXgXivBtz78v+C7jtQA
         0EP4qE5yKXgV8WXDFW8bRUOYKGXyBRNltvdJumVWfhvdBzqUZ0VsVtRJkaG5qKVUVHeu
         HRSt46lUKkbj2ICq1m/w9SIGhmqhZfWzkkazIFzaP/bHEE+dfkVwHilYMcf0i+BFQ2NM
         WG4A==
X-Gm-Message-State: AOJu0YyuvIKmidBQDgt3q+m0YRacmh0t1/TqMe0Q9eFkplUwRry8NXX4
	d0uCpepM4AXPkaXWfNVTtGewhCzkTsbxeNYuRTg8xYAJT1IodT2wPm4Opm+reg==
X-Gm-Gg: ASbGncvczYbiENZioQ1DOXHPKILPKPWI2WuLtfeJnKXjCZdmrWhf3OVqH1SySj8MkUt
	ZTVDehLXXcYflL893gZ60X0f+Bji0gdu5oAeWqPwy666O8d7lB+FQ3w6ciewj/zMPIorqzGtW6X
	u1OKFzA2IjfxEEF1xnQQqVnDPT1cpgSLS0uV5BTzQNSP7EnPdNdmEGkXgMBd2jN4c5gpAyJ6Sy0
	ckeI9md/O6/3oNSirfjucn//4bAjm+82+w6tDdC/urn2VX7HlbiEQjJ6chWAYM9no6BrR7K1rP6
	kRO20mT8040CqLbDrc7hou+2fJaYR+C3Tvc=
X-Google-Smtp-Source: AGHT+IGt3FsQ2uRWz5jdUgBHX3oBYJwy3UK1RzRp+LTl2nKRcjuSH2fD+91wYeDXy7Sbs/sFYh8y1g==
X-Received: by 2002:a05:6512:3c8c:b0:53d:d957:9f93 with SMTP id 2adb3069b0e04-53dd9579fcamr5918959e87.0.1732554165307;
        Mon, 25 Nov 2024 09:02:45 -0800 (PST)
Message-ID: <e7dab79f-2884-4f60-8f98-2c671dbe7963@suse.com>
Date: Mon, 25 Nov 2024 18:02:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x86: Add Intel architectural LBR featureset bits
To: ngoc-tu.dinh@vates.tech
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
 <20241118084914.22268-2-ngoc-tu.dinh@vates.tech>
Content-Language: en-US
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.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: <20241118084914.22268-2-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 09:49, ngoc-tu.dinh@vates.tech wrote:
> From: Tu Dinh <ngoc-tu.dinh@vates.tech>
> 
> Expose ARCH_LBR feature to guests.
> 
> Extend CPU featureset with 3 words for CPUID leaf 0x1c.
> 
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>

First a general remark: Please Cc maintainers on patch submissions.

> --- a/tools/libs/guest/xg_cpuid_x86.c
> +++ b/tools/libs/guest/xg_cpuid_x86.c
> @@ -656,7 +656,7 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool restore,
>              p->policy.feat.mpx = test_bit(X86_FEATURE_MPX, host_featureset);
>          }
>  
> -        p->policy.basic.max_leaf = min(p->policy.basic.max_leaf, 0xdu);
> +        p->policy.basic.max_leaf = min(p->policy.basic.max_leaf, 0x1cu);

We'll need to update this again and again (AMXC, AVX10) if we continue using
literal numbers here. This wants switching to ARRAY_SIZE(), and imo ideally
in a separate prereq patch (which could likely go straight in).

> --- a/tools/misc/xen-cpuid.c
> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -271,6 +271,8 @@ static void recalculate_misc(struct cpu_policy *p)
>  
>      p->basic.raw[0xc] = EMPTY_LEAF;
>  
> +    zero_leaves(p->basic.raw, 0xe, 0x1b);
> +
>      p->extd.e1d &= ~CPUID_COMMON_1D_FEATURES;
>  
>      /* Most of Power/RAS hidden from guests. */
> @@ -303,6 +305,7 @@ static void recalculate_misc(struct cpu_policy *p)
>          zero_leaves(p->basic.raw, 0x2, 0x3);
>          memset(p->cache.raw, 0, sizeof(p->cache.raw));
>          zero_leaves(p->basic.raw, 0x9, 0xa);
> +        p->basic.raw[0x1c] = EMPTY_LEAF;

I'm not convinced this wants to live here. The leaf rather wants clearing
when the feature isn't there in the policy. See e.g. [1] and [2].

> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -505,6 +505,13 @@ static void generic_identify(struct cpuinfo_x86 *c)
>  			    &c->x86_capability[FEATURESET_Da1],
>  			    &tmp, &tmp, &tmp);
>  
> +	if (c->cpuid_level >= 0x1c)
> +		cpuid(0x1c,
> +			  &c->x86_capability[FEATURESET_1Ca],
> +			  &c->x86_capability[FEATURESET_1Cb],
> +			  &c->x86_capability[FEATURESET_1Cc],
> +			  &tmp);

Nit: Indentation (arguments want to align vertically).

> --- a/xen/include/public/arch-x86/cpufeatureset.h
> +++ b/xen/include/public/arch-x86/cpufeatureset.h
> @@ -284,7 +284,7 @@ XEN_CPUFEATURE(SERIALIZE,     9*32+14) /*A  SERIALIZE insn */
>  XEN_CPUFEATURE(HYBRID,        9*32+15) /*   Heterogeneous platform */
>  XEN_CPUFEATURE(TSXLDTRK,      9*32+16) /*a  TSX load tracking suspend/resume insns */
>  XEN_CPUFEATURE(PCONFIG,       9*32+18) /*   PCONFIG instruction */
> -XEN_CPUFEATURE(ARCH_LBR,      9*32+19) /*   Architectural Last Branch Record */
> +XEN_CPUFEATURE(ARCH_LBR,      9*32+19) /*S  Architectural Last Branch Record */

'S' is too early. You first need to implement everything, and only then
you can make the feature visible to guests. It'll also only be by that
time that it'll be (halfway) clear whether 'S' is appropriate, or whether
for starters it wouldn't better be 's'. Same for the other markers below.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 17:04:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 17:04:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843008.1258666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFcW7-0003eP-KQ; Mon, 25 Nov 2024 17:04:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843008.1258666; Mon, 25 Nov 2024 17:04: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 1tFcW7-0003eI-G6; Mon, 25 Nov 2024 17:04:55 +0000
Received: by outflank-mailman (input) for mailman id 843008;
 Mon, 25 Nov 2024 17:04: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=vfyn=SU=bounce.vates.tech=bounce-md_30504962.6744ae31.v1-05f36f47a52545869d6a78627153ea17@srs-se1.protection.inumbo.net>)
 id 1tFcW6-0003eC-64
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 17:04:54 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61670c00-ab4f-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 18:04:50 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4XxsWj15gjzG0CHK6
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 17:04:49 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 05f36f47a52545869d6a78627153ea17; Mon, 25 Nov 2024 17:04: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: 61670c00-ab4f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjYxNjcwYzAwLWFiNGYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTU0MjkwLjUyNDc1OCwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDRhZTMxLnYxLTA1ZjM2ZjQ3YTUyNTQ1ODY5ZDZhNzg2MjcxNTNlYTE3QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732554289; x=1732814789;
	bh=ztA/BXOeYTCThuZggH/Y8Uq70iOgJntRaZUW0x7CJQE=;
	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=eXEK4/I74YkXuAKA0GsfwTKlpPhFCVgmDnOpkqoGIPmrsxrg3ON1XBOtFxaRzsCEL
	 OX8CYA2jfA+r/1zl8swcA9A8EaGlb7DFSg5AHgFGJhzQH4sn56lbYHPChIq3qjrzrE
	 Kgz+9IiYYRibTZmAN+shCcHO3UnFKyaEnY0ucGJUa5rfq6gkxgAyGnxKZlMx/IYAuE
	 qi3nOGMz6iHh4PooCmMgtGQ1p80ts+p/7eVmhp9zpfnZvh2nMgdGSwt+TXOUkoZiRm
	 ylT+DHHWJp++xRgpxdNhw8ts1Qs53O9DW0fSq7hVhEsWRB+MP0SGin04TR6FGnfnew
	 IcAUS9GZIfiOQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732554289; x=1732814789; i=anthony.perard@vates.tech;
	bh=ztA/BXOeYTCThuZggH/Y8Uq70iOgJntRaZUW0x7CJQE=;
	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=k6mvl/dyahNd9lYt2z/xU5i5op8odQtijsAWirb/DnwX5nP1q6rbMUdgHLt5eKu9R
	 ajoopDrhu60mc8BxMG1X3uZnfGg0C9bYJkGq0oSjCcksK+rk6GeDb63SUJHK+f7uvu
	 SFbn2l/0oQAeNUUGk2cFPk20gJZLLAfY8xMtmhX/81r30avQwum4i6es3C74Ga5rBD
	 KJRymkw0cHR0fY6cn6w89uEFIg8Dq8wnNukAWBoOSzdMahhkA+/91CEnZxgcgmSnf5
	 9p/DGw3ZbYL9MckSIcAOcGRzFXM0q9wwQivYpxUiFiTVbOn6qjOl/QPu9GzORgg2nM
	 p1jJWmCG+uNUQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=202/2]=20libxl/ACPI:=20bound=20RSDP=20allocation?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732554288611
To: "Jan Beulich" <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <Z0SuMDXVzrf4OHpQ@l14>
References: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@suse.com> <e995156e-c84a-426f-8d20-bebc8ccb3961@suse.com>
In-Reply-To: <e995156e-c84a-426f-8d20-bebc8ccb3961@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.05f36f47a52545869d6a78627153ea17?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241125:md
Date: Mon, 25 Nov 2024 17:04:49 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Nov 25, 2024 at 04:15:49PM +0100, Jan Beulich wrote:
> First instroduce a manifest constant, to avoid open-coding 64 in several
> places. Then use this constant to bound the allocation.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Hopefully, `struct acpi_20_rsdp` isn't going to be bigger that 64, but
it would probably not work well anyway seen how `config.rsdp` is used
here.

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

> ---
> Similarly bounding the info "page" allocation would be nice, but would
> require knowing libacpi's struct acpi_info size here.

Or register the allocation size in `config`, so acpi_build_tables() can
check if there's enough space. Something like `config.info_size`.

Thanks,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 17:08:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 17:08:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843016.1258675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFcZF-0004Ic-01; Mon, 25 Nov 2024 17:08:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843016.1258675; Mon, 25 Nov 2024 17:08: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 1tFcZE-0004IV-TR; Mon, 25 Nov 2024 17:08:08 +0000
Received: by outflank-mailman (input) for mailman id 843016;
 Mon, 25 Nov 2024 17:08: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=toQe=SU=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFcZD-0004IP-FR
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 17:08:07 +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 d3eddb2c-ab4f-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 18:08:01 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-aa560a65fd6so78114566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 09:08:01 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b28dd59sm484161866b.7.2024.11.25.09.08.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 09:08: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: d3eddb2c-ab4f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQzZWRkYjJjLWFiNGYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTU0NDgxLjk2OTQ5OSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732554481; x=1733159281; darn=lists.xenproject.org;
        h=in-reply-to:references:subject:cc:to:from:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=alvCs7tOjQO9flrv6NVIShFbMcQqOcPC3L3qeFzVreM=;
        b=LCVykWjA4w11rLiheloTvZPVSjPLiVLib7iuD+8fwKP4gUWD6ngoJwP9NL6aDPsQvx
         DOZCdgoK9ZTG6kpWCGQuVkCPR7/4QsysA+zZWIfUdQFi1YbbXSeoEaIFt9vYNDPLKaB+
         vRXf45KJ6N4tR8QL6FHslQO9HUxgiRPrS3nGg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732554481; x=1733159281;
        h=in-reply-to:references:subject:cc:to:from:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=alvCs7tOjQO9flrv6NVIShFbMcQqOcPC3L3qeFzVreM=;
        b=dou5vsDYEr+nYi0dV67Yl8XidqPrib2wTyEare/h/DqgO3HxNAmwgWCQBLjl1Z2WPy
         d3+lpVWcwECGzDyKzgD9nT99wG8wgrPi+IEGq3tDDRrV6nmASc1JSmetHfxvsrc7h0WU
         XIapCQHRvFNCCGtw8aB/vc3FUE2nVaWGHZ8Ftpb29sbRhW3CwZpmV5mx/xBW1NKjKyoU
         JKAiayHR6RPH8FZRBuTCMMCMVN7e6DqJd8NWkn5MHmoJxWpYJ91WVU80Bxb+Lxlrfz/Y
         cOw8c/N9YLSatMSHMfY1HCqoSwkkXpsxylV3NOqVe45wpKuDKFSmB0pgkD/86RVxKujy
         ZV2w==
X-Forwarded-Encrypted: i=1; AJvYcCWhS2O5OvyFN+Vhxd/iMy/gptNKOECtxhQbK5SrjZP+s/CKCMQtKYyv9MKROZGxUPGmZA3gAYIh9KI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyuex/mPcLKKE+pzaBIeV6lpPAVqmTZMUf0pFg7lCarg7VXtjkr
	QSSSaR1eghiIQcQrYhCQZixHteRMUViorqH4heY1XSEkAaFmHHYKtguNYqIHeu4=
X-Gm-Gg: ASbGncsESTrBpXv1sq2OWnQcoHbgsah0PPaZOyz3byMCrQ6T+B4rKK4+u2N6fVrvuAM
	r6ofa77XRunRzl1ne+OCi57tvjSL3MVXFJ7p4YvADXnojo+vyT6Rpz5OVtdGsY4SZ4oL75udntz
	h7u9BGwCVsg8hJr8GtRpCtiVQldlU5aji6Wtaji0MeZM/Y3pNZ0WISdSGAet9ipqbrgq8VSkZPM
	eD7vEikZ2zp+iwVPlp2GByfwcFOnF5l6ioBxG4jaC852seLguq4+555
X-Google-Smtp-Source: AGHT+IHKP3Lg4eUIBlcCjPhkpszbMFr+ItauMW7prJgZAW6Owm//vqM0gQZJyjIkJbscUqyuucBZdg==
X-Received: by 2002:a17:906:cc4e:b0:aa5:2cff:ede2 with SMTP id a640c23a62f3a-aa5648b90bamr16608566b.26.1732554481218;
        Mon, 25 Nov 2024 09:08:01 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 25 Nov 2024 17:07:57 +0000
Message-Id: <D5VFAZ01ONWK.2H3VDANBDRQR5@cloud.com>
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson"
 <yann.dirson@vates.tech>
Subject: Re: [RFC PATCH 07/25] tools/xenbindgen: Add support for structs in
 TOML specs
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-8-alejandro.vallejo@cloud.com>
 <8dcd8297-d9d9-4106-ba6d-eefd5df6f69a@vates.tech>
In-Reply-To: <8dcd8297-d9d9-4106-ba6d-eefd5df6f69a@vates.tech>

On Mon Nov 25, 2024 at 12:39 PM GMT, Teddy Astie wrote:
> Hi Alejandro,
>
> Le 15/11/2024 =C3=A0 12:51, Alejandro Vallejo a =C3=A9crit=C2=A0:
> > Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > ---
> >   tools/rust/xenbindgen/src/c_lang.rs | 56 ++++++++++++++++++++++++-
> >   tools/rust/xenbindgen/src/spec.rs   | 64 ++++++++++++++++++++++++++++=
-
> >   2 files changed, 117 insertions(+), 3 deletions(-)
> >
> > diff --git a/tools/rust/xenbindgen/src/c_lang.rs b/tools/rust/xenbindge=
n/src/c_lang.rs
> > index f05e36bb362f..597e0ed41362 100644
> > --- a/tools/rust/xenbindgen/src/c_lang.rs
> > +++ b/tools/rust/xenbindgen/src/c_lang.rs
> > @@ -17,9 +17,10 @@
> >
> >   use std::fmt::Write;
> >
> > -use crate::spec::OutFileDef;
> > +use crate::spec::{OutFileDef, StructDef, Typ};
> >
> >   use convert_case::{Case, Casing};
> > +use log::{debug, trace};
> >
> >   /// An abstract indentation level. 0 is no indentation, 1 is [`INDENT=
_WIDTH`]
> >   /// and so on.
> > @@ -29,6 +30,39 @@ struct Indentation(usize);
> >   /// Default width of each level of indentation
> >   const INDENT_WIDTH: usize =3D 4;
> >
> > +/// Create a C-compatible struct field. Without the terminating semico=
lon.
> > +fn structfield(typ: &Typ, name: &str) -> String {
> > +    match typ {
> > +        Typ::Ptr(x) =3D> {
> > +            let t: &Typ =3D x;
> > +            format!(
> > +                "XEN_GUEST_HANDLE_64({}) {name}",
> > +                match t {
> > +                    Typ::U8 =3D> "uint8",
> > +                    Typ::U16 =3D> "uint16",
> > +                    Typ::U32 =3D> "uint32",
> > +                    Typ::U64 =3D> "uint64_aligned_t",
> > +                    Typ::I8 =3D> "int8",
> > +                    Typ::I16 =3D> "int16",
> > +                    Typ::I32 =3D> "int32",
> > +                    Typ::I64 =3D> "int64_aligned_t",
> > +                    _ =3D> panic!("foo {t:?}"),
> > +                }
> > +            )
> > +        }
> > +        Typ::Struct(x) =3D> format!("struct {x} {name}"),
> > +        Typ::Array(x, len) =3D> format!("{}{name}[{len}]", structfield=
(x, "")),
> > +        Typ::U8 =3D> format!("uint8_t {name}"),
> > +        Typ::U16 =3D> format!("uint16_t {name}"),
> > +        Typ::U32 =3D> format!("uint32_t {name}"),
> > +        Typ::U64 =3D> format!("uint64_aligned_t {name}"),
> > +        Typ::I8 =3D> format!("int8_t {name}"),
> > +        Typ::I16 =3D> format!("int16_t {name}"),
> > +        Typ::I32 =3D> format!("int32_t {name}"),
> > +        Typ::I64 =3D> format!("int64_aligned_t {name}"),
> > +    }
> > +}
> > +
>
> I think _t are missing in the Ptr cases (we are currently generating
> XEN_GUEST_HANDLE_64(uint8) which I don't think is valid).

It is intentional. The handles are presently missing those _t in Xen's publ=
ic
headers, but that's something I'll be changing in the interest of sanity. T=
hat
way we can just recurse to the inner type.


> Aside that, wouldn't it be better to have a separate function for
> converting the type to its C representation ?
>
> Something like
>
> impl Typ { // or blanket trait
>      fn c_repr(&self) -> String {
>          match self {
>              /* ... */
>          }
>      }
> }

That's roughhly what typ_rs() does, and indeed what typ_c() used to do. The=
re's
a complication though...

>
> fn structfield(typ: &Typ, name: &str) -> String {
>      format!("{} {name}", typ.c_repr());
> }
>
> We can also consider Typ::Struct or Typ::Array cases to call recursively
> to c_repr on its inner type to get its representation.
>
> That way, we can have XEN_GUEST_HANDLE_64(struct something).

Initially structfield() was typ_c() (like the Rust backend). Then arrays
happened... Size and typename surround the name of the field (e.g: uint8_t
handle[16]) so I stopped doing it like that because I thought I couldn't.

I have since then noticed I can cheat! The following two fields are identic=
al.
Except the first one is a heck of a lot simpler to generate.

  __typeof__(uint8_t[16]) handle;
  uint8_t handle[16];

My latest branch simplifies all this by s/structfield/typ_c/ and using that
typeof trick.

>
> Cheers
>
> Teddy
>
>
>
> Teddy Astie | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 17:16:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 17:16:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843029.1258684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFchY-0006Es-ON; Mon, 25 Nov 2024 17:16:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843029.1258684; Mon, 25 Nov 2024 17:16: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 1tFchY-0006El-Lo; Mon, 25 Nov 2024 17:16:44 +0000
Received: by outflank-mailman (input) for mailman id 843029;
 Mon, 25 Nov 2024 17:16: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=toQe=SU=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFchX-0006Ef-Rq
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 17:16:43 +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 071d0dc1-ab51-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 18:16:37 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aa54adcb894so186039266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 09:16:37 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b57bda2sm489473466b.146.2024.11.25.09.16.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 09:16: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: 071d0dc1-ab51-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA3MWQwZGMxLWFiNTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTU0OTk3LjM2ODM3NCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732554997; x=1733159797; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ukh5gY3bqEEKYOlfiHn5RMNn60HNLLGftpYT9pSeOF4=;
        b=kF1joOu5337CaJkvLXA61Sp5RPHbBtQ1HuDIWaf1Lhz0EK0BdZYEoT3qgrv10gJty6
         Ogj6lDv+ncVYkj5/5TKOBGKYiC1U3wrCvrih7v/68KA2ZnVQWxHUs5O91k6DKePUn2zU
         J3drWFDHhDjEw4xFbdMZnpucx3sUtzzwedWas=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732554997; x=1733159797;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Ukh5gY3bqEEKYOlfiHn5RMNn60HNLLGftpYT9pSeOF4=;
        b=BYMnQm9jh25Yq1h8+8gBUtOhvfxw89+N1bpDUXk9kaP0hqhcn0YNfSzgfDPsLFZiNv
         glLUqJuKkDM87fYbLCa70Xtu/Z03RJIDAesYlwODFTWjxgg3CBbvhuIln+Tz1s5JjwhV
         7GIJ4bGWbxUbx5VQp0qDa55KeWBUdVZYNN/zEJaWG/SjTdIY8W/onUO49CBs5TXua2lG
         BYoyX/yP1czAO6lHVPRVn1YXaZLo1uZEGPsYtnqK16XLFGOAX55uPKlQxEPbtQe5tvrI
         hl/MKB56a2U2dnu/hzidXthoEbv3tDes+9OpCqRVBlXnrQBJ5PUeCIG/xtYGEZAff9Mf
         sbFw==
X-Forwarded-Encrypted: i=1; AJvYcCWhJMNU3Y0EYpMsVQeJSnC8LtM+DWeG1tb4buu6J3tKS6paRllP+SPfmgTqPNuwTwLpt+u20tCiPJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8vuheQpMaiRwhqvwo1SKghn+WGrSiJMQf2BD/O9L/NSwDVlQl
	TLpUna3iBgFW4r51QEsa+31fwttQomqf4WkRFtAB/XjwwOMMcD+dHvwepN+Bzo8=
X-Gm-Gg: ASbGncsumH81Snxm0NSuj1M4ZoSyI72EiA/XeNIibLXBqqF4KsBvisCDrR2WtlZBy75
	hAf1hmheanXtcy+IcUAb1CH0FBWF0OjZ7+M6F6etd9t4X42xlC836URjU/i4cPcduk/Lkr01nEL
	mO+H71CZxh9+U+0U1aZqFxH0hDt+4U4gw6Mb1E/FThwUVi4NEcqCtVtRRpjzfKhsJPZVZCwuhnv
	QjBs3oqi6mXHyxz7YrWVYdmZLopF7ZHUJZhjoid87mTjLiB8g8OIC9z
X-Google-Smtp-Source: AGHT+IFJ5iQFb9Oc+J7JuMW8wRyAMHcleQDFGSb2YbA+/0HU7AHHq6ZL35Beh4AzNKhDpi4329iHXQ==
X-Received: by 2002:a17:906:18a1:b0:aa5:392a:f5a7 with SMTP id a640c23a62f3a-aa5392af5c3mr732468566b.57.1732554996631;
        Mon, 25 Nov 2024 09:16:36 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 25 Nov 2024 17:16:32 +0000
Message-Id: <D5VFHJSU153B.BB6IU74AECCA@cloud.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson"
 <yann.dirson@vates.tech>
Subject: Re: [RFC PATCH 07/25] tools/xenbindgen: Add support for structs in
 TOML specs
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-8-alejandro.vallejo@cloud.com>
 <d98f8aa1-b0ba-4fb5-8c5d-ab18cc40fb01@vates.tech>
In-Reply-To: <d98f8aa1-b0ba-4fb5-8c5d-ab18cc40fb01@vates.tech>

On Mon Nov 25, 2024 at 3:03 PM GMT, Teddy Astie wrote:
> Hi,
>
> > +/// An IDL type. A type may be a primitive integer, a pointer to an ID=
L type,
> > +/// an array of IDL types or a struct composed of IDL types. Every int=
eger must
> > +/// be aligned to its size.
> > +///
> > +/// FIXME: This enumerated type is recovered as-is from the `typ` fiel=
d in the
> > +/// TOML files. Ideally, that representation should be more ergonomic =
and the
> > +/// parser instructed to deal with it.
> > +#[allow(clippy::missing_docs_in_private_items)]
> > +#[derive(Debug, serde::Deserialize, PartialEq)]
> > +#[serde(rename_all =3D "lowercase", tag =3D "tag", content =3D "args")=
]

FYI, this serde config is something I've also changed since the RFC. The
explicit tag and content are gone, because they complicate things and they =
are
actively harmful

Before (with explicit tag+content):

  typ =3D { tag =3D "u16" }
  typ =3D { tag =3D "struct", content =3D "foobar" }
  typ =3D { tag =3D "ptr", content =3D { tag =3D "u8" } }
  typ =3D { tag =3D "ptr", content =3D { tag =3D "struct", content =3D "foo=
bar" } }

After (without explicit tag+content):

  typ =3D "u16"
  typ =3D { struct =3D "foobar" }
  typ =3D { ptr =3D "u8" }
  typ =3D { ptr =3D { struct =3D "foobar" } }

> > +pub enum Typ {
> > +    Struct(String),
> > +    U8,
> > +    U16,
> > +    U32,
> > +    U64,
> > +    I8,
> > +    I16,
> > +    I32,
> > +    I64,
> > +    Ptr(Box<Typ>),
> > +    Array(Box<Typ>, usize),
> > +}
> > +
>
> I think we can name it Type (it doesn't clash with a keyword actually)

Sure. I just wanted it to mirror the field name (because `type` is reserved=
).
In the big scheme of things it's not terribly important to do so.

>
> > +
> > +/// Deserialized form of a field within a hypercall struct (see [`Stru=
ctDef`])
> > +#[derive(Debug, serde::Deserialize)]
> > +pub struct FieldDef {
> > +    /// Name of the field
> > +    pub name: String,
> > +    /// Description of what the field is for. This string is added as =
a comment
> > +    /// on top of the autogenerated field.
> > +    pub description: String,
> > +    /// Type of the field.
> > +    pub typ: Typ,
> > +}
> > +
>
> regarding this "typ" name, we can either use the "raw identifier" syntax=
=20
> with r#type to have it "technically" named 'type' or use

I'd really rather not. Feels like playing with hot fire.

> #[serde(rename =3D "type")]
> to have it named "type" during deserialization even if the field is=20
> still "typ"

This I like. I forgot I could do that.

>
> Cheers
> Teddy
>
>
> Teddy Astie | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 17:19:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 17:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843037.1258695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFcjn-0006nM-4p; Mon, 25 Nov 2024 17:19:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843037.1258695; Mon, 25 Nov 2024 17:19: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 1tFcjn-0006nF-16; Mon, 25 Nov 2024 17:19:03 +0000
Received: by outflank-mailman (input) for mailman id 843037;
 Mon, 25 Nov 2024 17:19: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=toQe=SU=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFcjl-0006n9-Kt
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 17:19:01 +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 596fd4f8-ab51-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 18:18:55 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-a9e44654ae3so641235466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 09:18:55 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa545ab0c3dsm235059366b.43.2024.11.25.09.18.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 09:18: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: 596fd4f8-ab51-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzUiLCJoZWxvIjoibWFpbC1lajEteDYzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU5NmZkNGY4LWFiNTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTU1MTM1LjQ1ODg2OSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732555135; x=1733159935; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2d8RiDIgkFgDGgiWjGOVwNiSEX4PGoaxf2Ni4ujGWa8=;
        b=BsgXxiKts4dhfoLUTwyE61xjqp1Q2pJXv6kaphyQEHYzyppEmS+eN/mNVbn42Ut22w
         kEc5/8CwbDGDKZ9WupCJV/3miiyhaNMO8Yke/V5CX2bpXqLZde0qQs/uljEeRjGqkQ3Q
         O27mpHvJIP31XQZkPAJMglmhMpgWBc+9QC/4k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732555135; x=1733159935;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=2d8RiDIgkFgDGgiWjGOVwNiSEX4PGoaxf2Ni4ujGWa8=;
        b=dtGg2bQoJXYKg4Qlub1q/n3ahpLQ7RPTWVuWcgZXanD+oG90aOqXTqH1fouB8+fXNL
         DIXclvVw4V+RQb9gFH5GA+UcBlREtBbHXTs6SZnOUfsb8aZvpgkP+gpfRQiuFk16N45z
         NnE+r8klGJTr7WcTOldD9pu0Hff0Z1VJ4ZeB7rbrbyIikVoBGsUBDCvIOoiunQuFBUFV
         7gE2M9jTsXc0HNogb5q3y0P5GC/6OE1Gylo5x+lW7yf49dIFcsYf6rn2VgNCZfxznSpL
         tsnC7iICyokhS1UtDUa5i23qIhOTSHjB9hdLWtevj+5AQzq0xnGC1GeifrtagzeFwFTZ
         AFKA==
X-Forwarded-Encrypted: i=1; AJvYcCUdCamPjBsooVIybFj38rjqye2JTeCvGFdSy+IDJN58w5x77/bJdHxWQEf9ROWARygS5ha8l/1+s/8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPnV/g49nx0w1H70HiYeoyMSgOIFIUXNwzDlJrp3A1rUfsxQKv
	i17FAX4+K3yOBjnJokt0L2hviDst6Ih/a1uAD5YjcRy17Dnc37XKja1MqBN6Ie0=
X-Gm-Gg: ASbGncsG7yxvkObyAqa35DUHulTo07c4A5AAbyo67f2FC9MHktJbDNFHEmWjKhoIoIO
	4lwNRQjBoujNyFn++2EB5kvej8G+ye8HZz9nmfwAcqKbLbVcPxRdEkaITGeDrZ+vDNIQj+SPWTz
	SaCfcP6QwAGvavLmkBJ+o7lpKSzncm/OTA94FpoDavXlREvE3qIYsN8/3ts69tZGcDiOpiX7RtS
	GBUdmOi5rZQxFXfjS+WzxEQHHjRjqdyD2ud/oKhOp5qYqTGBWXXGuCM
X-Google-Smtp-Source: AGHT+IGFMeCrlCkv210bE4FsUStaceiBkgHxA1tADgg855BzLx9E5d3FwSF+s5gfTJHn+UkF3ReZ1A==
X-Received: by 2002:a17:906:31c5:b0:aa5:225f:47d9 with SMTP id a640c23a62f3a-aa5225fb282mr938102266b.29.1732555134906;
        Mon, 25 Nov 2024 09:18:54 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 25 Nov 2024 17:18:51 +0000
Message-Id: <D5VFJBBZV0Q8.2LZQYX9EYBBUU@cloud.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Yann Dirson"
 <yann.dirson@vates.tech>
Subject: Re: [RFC PATCH 08/25] tools/xenbindgen: Add support for enums in
 TOML specs
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Teddy Astie" <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-9-alejandro.vallejo@cloud.com>
 <b4776dd0-9b4e-457c-9108-88fa2e575e7d@vates.tech>
In-Reply-To: <b4776dd0-9b4e-457c-9108-88fa2e575e7d@vates.tech>

On Mon Nov 25, 2024 at 4:39 PM GMT, Teddy Astie wrote:
> Hello,
>
> > +
> >   /// A language-agnostic specification.
> >   #[derive(Debug, serde::Deserialize)]
> >   struct InFileDef {
> >       /// List of structs described in this input specification.
> >       structs: Option<Vec<StructDef>>,
> > +    /// List of lang-agnostic enumerated descriptions.
> > +    enums: Option<Vec<EnumDef>>,
> >   }
> >  =20
>
> Alike for struct/..., I think we can merge that with OutFileDef using=20
> the default attribute in serde :
> #[serde(default)]
> https://serde.rs/field-attrs.html#default
>
> That way, when there is no structs/... entry in the file, it is parsed=20
> as a empty vec![] instead of failing which allows us to remove this=20
> wrapper struct.

I didn't know about that setting. Option<T> was indeed a clutch to avoid ha=
ving
to define enums =3D [] explicitly. I like your suggestion better.

>
> Cheers
>
> Teddy
>
>
>
> Teddy Astie | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 17:53:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 17:53:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843049.1258705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFdGq-0004CE-Dg; Mon, 25 Nov 2024 17:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843049.1258705; Mon, 25 Nov 2024 17:53: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 1tFdGq-0004C7-9r; Mon, 25 Nov 2024 17:53:12 +0000
Received: by outflank-mailman (input) for mailman id 843049;
 Mon, 25 Nov 2024 17:53: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=caTh=SU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFdGp-0004C1-8u
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 17:53:11 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061e.outbound.protection.outlook.com
 [2a01:111:f403:200a::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d74bd29-ab56-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 18:53:04 +0100 (CET)
Received: from CH0PR03CA0218.namprd03.prod.outlook.com (2603:10b6:610:e7::13)
 by PH8PR12MB7349.namprd12.prod.outlook.com (2603:10b6:510:217::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.18; Mon, 25 Nov
 2024 17:52:57 +0000
Received: from DS3PEPF000099D8.namprd04.prod.outlook.com
 (2603:10b6:610:e7:cafe::1f) by CH0PR03CA0218.outlook.office365.com
 (2603:10b6:610:e7::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Mon,
 25 Nov 2024 17:52:55 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099D8.mail.protection.outlook.com (10.167.17.9) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Mon, 25 Nov 2024 17:52:54 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Mon, 25 Nov
 2024 11:52:53 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 11:52:52 -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: 1d74bd29-ab56-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjFlIiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFkNzRiZDI5LWFiNTYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTU3MTg0LjU1NjI0NSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Bdg6X2sqDOGHQAdcEnXrFCQKxJBu8SELlXk8yh9EpLKfpjN0kIKh4p2g2waaKgmnkHonHuqWGAMdWix6gOMtnSAUJBQ7FoH33t3nT2LMM0qcKXTQROE1/WBz8wyZyG0gYWYECFHnWYbHeXF9p0I1SlNQrUudSmKi6B1A/kG9Sqe40hs19sOLN8OF9g2Xmi19xRLAWLeS6Mn47zGuNXTo4gEUDoATubyuksLb3IrYA8095BbmhJoJn6dMfculPXYKKsAEY5ljpYXAzCYGOAc2Ul2cFrg8dA5WQzZ7j7/kS0EM8HYR4r4LpGeBFqjz+LKc7qRiRAyseiPG9FXkXqBS+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=VrgUs7lPAGpzni9S9U9C04OF3xn6sf7zYxtAAzgPhYw=;
 b=avZxKUOJvI95BZmrXUXX6O62teShn8HjszFuA1+sDF9pRWvWlIakLi7rY8+iKFpAFIFqKaux1rnZ3SMMJzDphCAc6iU+75eZ8kRMcw4KIfAQSomLnLScHNg64lMHIjC2pQ3JTBvxURyB2zJSg8TemH8y3rcAcRnYFI9W3yy0SV56OyaCbz/lAwB08Hm+ILC6sJkWddo+APB6qVn8IOAmJAmgZE3W4YsopCNU4/kaDcRt23IEfFrAfj5f7gKuWN4x7GQrYUsXutiV94QbD9Cn/qssL+6rh5GWXo6NS8lWF2bhcEFfY5EeKwOSLmS4HBlOkO8jf6zmoQZOKbaTr6fIGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=VrgUs7lPAGpzni9S9U9C04OF3xn6sf7zYxtAAzgPhYw=;
 b=TFEIheEL8m/0z5xuXsfaOqlyJTy+LteSca3NB4zMhHjwQ8j3P119/n9z5gET6FDu8CF/+VQKWHR6HJsM5H0McMLE0DDVCVQgluumq+GWsgvUwFhxEC9zr9a1CPSkSOm2N+qTP/v/dj+R5yVlPbW4yxvUshq0zPSVVNY2Dzwfcrw=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <f8f375d6-2b77-4d76-ac69-89d850ac4733@amd.com>
Date: Mon, 25 Nov 2024 12:52:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/15] x86/hyperlaunch: introduce the domain builder
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-7-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-7-dpsmith@apertussolutions.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: DS3PEPF000099D8:EE_|PH8PR12MB7349:EE_
X-MS-Office365-Filtering-Correlation-Id: 50e5f222-8ad4-498f-2380-08dd0d79fcfe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RUxjVFFPWXk3cFdtb0VNelJwTmwvVy9mVStxVjV3TmxrNUo3OE4xNFdLTS9O?=
 =?utf-8?B?ZTJ4NjdRNUh2WlB0bHFKZ1VEbjV6QUV6K09lUjkreVQyMUZZU05yR2NwMVlD?=
 =?utf-8?B?VnZsRllLYXVZTnF6Y1BhdUpSQmZ3MEg4WnZZeGRyUS9PWnd5REhpREkzVVNJ?=
 =?utf-8?B?enJ0YUdjSklRdTZQVU1XZHQ3ck13K3dYMjdBSjJIa2lBMzZybk5pOWcwVzBM?=
 =?utf-8?B?R0gyQzRmRW9BK1p1MTlpYnk0eEZrMGxJZWtBTVdKU1NuTituZ1NTU3BLZDlw?=
 =?utf-8?B?Qm44UXVoSThjSEIyMFFqZnZITWxOU2xLcTRZVmpEdld4dzVZd0VrTVlQbkxa?=
 =?utf-8?B?VEk1SW9haUErU0VDQXBmQTJvUjV5V2xsNE8vbVdQMGhBZzA2dlQyZk9uOEVy?=
 =?utf-8?B?bzhidER0bVFxbDhNeWcvR1F3UHRxSzRrNFBPQ0F4UGlZcEEvN3pwYUluRFEy?=
 =?utf-8?B?ZCtKU1hIcnFWOXJOa1hmZ2lDcjJKNHNBdVRJUXV4L3RuRk9UaWtCT3F3cHFi?=
 =?utf-8?B?TDZOVnNOc3BMRE05U05YVHNrckFobVZWamtJcGQrOXBZN1J1V2E0ZHdjazJC?=
 =?utf-8?B?SkJOWU1HbXVQSXJzS0pXb3dUL1d4Nkd4SzJuMzdIWXRJcitYMFZFcTVvY1dF?=
 =?utf-8?B?Tkd1dzZDZWQzWFVxMlFaYkxiS2tpK1E5L0N6R0QrWGNDMUwrT3p3YmVOelZF?=
 =?utf-8?B?MDBydVlFeVNPT3c2ZTRycXBVaU1DSCtJcU1ueUpiaDNQNTdCZDd1SFg1QlJy?=
 =?utf-8?B?TDZwejFhR1A5VXhyN2xTbllMYkgvSi96T2hVTk5LZWNwQzkvclcxWlpRSit4?=
 =?utf-8?B?Z0ZjdksyQk1vNFhIekFjb1lXaUtlK1hrSFdmakQyenpTcDJWOTNFTllkSTZu?=
 =?utf-8?B?OWRlOWN0U1NRK1BWdkZmUVM5bkc1b3RyS3hRMzhvVTQrbWkzUFIzMXdjblk4?=
 =?utf-8?B?U3ByVGtXNE5aUkZYVjVhMVE0R3RMY2p1aU5uWmtpRnZ0U2xqSHhkeGdhY2Ex?=
 =?utf-8?B?cVJwTElLRjRVeHJjRE8rUFZWNWhpTTExQlZ3eGNSMlRkYnlWdExoWmRKME9w?=
 =?utf-8?B?RUFndzhHTFV0SG9ibGVqRm11K0dxRmhLOFkyZnUzTlgyYWZERDFSTGFGN3gx?=
 =?utf-8?B?TzJ3T05DYmhWYXNiRUhGRXlRWHJrRVZHZ3BEUjZBaDRxQzQrWVU0dGE4YXpp?=
 =?utf-8?B?bTUwb3Q1TVM5Y21ZU3RxVFRmQm5vQW9TcUwyTmc4aUhZQnJQYnNncmo2Y0Iw?=
 =?utf-8?B?ODBMQjVYZU9HQ2hoUVlocmg1Zzd0V2ZZQWdNTDUvMUJUemp2M2FBdXlBTEJv?=
 =?utf-8?B?MmIvYWpQZ3h2WjBrL1lEV1E5ZUs1NHZqekpNVHJEVWRETldMNTlhYmF6Sk5K?=
 =?utf-8?B?NURteGMvTnBMbG4rN0ZRaEJyMS9tRG1uaS9TSmJtcnZVYldGSU15L0RRT21m?=
 =?utf-8?B?SDA0bDZRc0x5eUVNOE5aM1pRTWp4cnhrSjVvbHllM3JSRWpoV3Z6RzlzUTYx?=
 =?utf-8?B?Y0NUZGJFdzJNS1Budml5aGtPRXF4YU0rQkFJWGYyaXJKU0xvbEtqYkY2Nll3?=
 =?utf-8?B?bi9mOWFBa0ptWnFwWUhORE9neCtHTEl3Y0tDVzlNSWlJVHZPMzg4bVNnVC9x?=
 =?utf-8?B?RnNLVUJXTWRLOHljM3ljeS9pSm96UXlXSVZNL2xRbzdBVVdwZFBUZzdUZE1V?=
 =?utf-8?B?Rlo0KzFFYmlGcG1UcHh0WEQ2UDFtSkFyM1lnZmp4L2RLWmtUUEFGeDFJeVpN?=
 =?utf-8?B?M2FHMFZwM0lST3Nrb2RQczBjekFpbU5kVkRUWSsvQk84dFJuakZzaUpHOW1D?=
 =?utf-8?B?bm1tMXIzb0JqZVg1bWpOQ0dGYVJlSnc4SW5kOFdkQnpMcjI0SmFyeVBHUlky?=
 =?utf-8?B?dGcxa1M3Z2lNek9GeTdFbTVJUW0rUHZOTGlGWFdQbVFSTzZVaGhrNS9iaUF0?=
 =?utf-8?Q?w0G8XhHmWYXsmr54j3MZXKlXEpAkUkeK?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 17:52:54.2258
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 50e5f222-8ad4-498f-2380-08dd0d79fcfe
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099D8.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7349

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Introduce the domain builder which is capable of consuming a device tree as the
> first boot module. If it finds a device tree as the first boot module, it will
> set its type to BOOTMOD_FDT. This change only detects the boot module and
> continues to boot with slight change to the boot convention that the dom0
> kernel is no longer first boot module but is the second.
> 
> No functional change intended.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index b35fd5196ce2..45e4c963edcd 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -81,6 +81,8 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
>   obj-y += sysctl.o
>   endif
>   
> +obj-y += domain_builder/

I kinda expected:
obj-$(CONFIG_DOMAIN_BUILDER) += domain_builder/

then ...

> +
>   extra-y += asm-macros.i
>   extra-y += xen.lds
>   

> diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
> new file mode 100644
> index 000000000000..211359895d84
> --- /dev/null
> +++ b/xen/arch/x86/domain_builder/core.c
> @@ -0,0 +1,55 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/err.h>
> +#include <xen/init.h>
> +#include <xen/kconfig.h>
> +#include <xen/lib.h>
> +
> +#include <asm/bootinfo.h>
> +
> +#include "fdt.h"
> +
> +void __init builder_init(struct boot_info *bi)
> +{
> +    if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )

... then this extra level of indent isn't necessary (with an empty 
static inline builder_init()).

I guess this way, this small part is compiled even when 
CONFIG_DOMAIN_BUILDER is disabled.  But it's only a piece, so I'm not 
sure if it's worth it.

> +    {
> +        int ret;
> +
> +        switch ( ret = has_hyperlaunch_fdt(bi) )
> +        {
> +        case 0:
> +            printk("Hyperlaunch device tree detected\n");
> +            bi->hyperlaunch_enabled = true;
> +            bi->mods[0].type = BOOTMOD_FDT;
> +            break;
> +        case -EINVAL:
> +            printk("Hyperlaunch device tree was not detected\n");
> +            bi->hyperlaunch_enabled = false;
> +            break;
> +        case -ENOENT:
> +            fallthrough;
> +        case -ENODATA:
> +            printk("Device tree found, but not hyperlaunch (%d)\n", ret);
> +            bi->hyperlaunch_enabled = false;
> +            bi->mods[0].type = BOOTMOD_FDT;
> +            break;
> +        default:
> +            printk("Unknown error (%d) occured checking for hyperlaunch device tree\n",
> +                   ret);
> +            bi->hyperlaunch_enabled = false;
> +        }
> +

Stray blank line

> +    }
> +}
> +
> +/*
> + * 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/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
> new file mode 100644
> index 000000000000..3f9dda8c34c3
> --- /dev/null
> +++ b/xen/arch/x86/domain_builder/fdt.c
> @@ -0,0 +1,38 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/err.h>
> +#include <xen/init.h>
> +#include <xen/lib.h>
> +#include <xen/libfdt/libfdt.h>
> +#include <xen/rangeset.h> /* required for asm/setup.h */

Should asm/setup.h just be changed?

> +
> +#include <asm/bootinfo.h>
> +#include <asm/page.h>
> +#include <asm/setup.h>
> +
> +#include "fdt.h"
> +

> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index e6580382d247..8041aeb3dcfd 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c

> @@ -1591,7 +1596,8 @@ void asmlinkage __init noreturn __start_xen(void)
>   #endif
>       }
>   
> -    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
> +    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
> +    if ( bi->mods[i].headroom && !bi->mods[0].relocated )

Switch .relocated index to i?

Regards,
Jason

>           panic("Not enough memory to relocate the dom0 kernel image\n");
>       for ( i = 0; i < bi->nr_modules; ++i )
>       {



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 17:55:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 17:55:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843060.1258715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFdJ9-0004oY-Uv; Mon, 25 Nov 2024 17:55:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843060.1258715; Mon, 25 Nov 2024 17:55: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 1tFdJ9-0004oQ-RW; Mon, 25 Nov 2024 17:55:35 +0000
Received: by outflank-mailman (input) for mailman id 843060;
 Mon, 25 Nov 2024 17:55: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=caTh=SU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFdJ8-0004oI-IQ
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 17:55:34 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20607.outbound.protection.outlook.com
 [2a01:111:f403:200a::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72e9dae1-ab56-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 18:55:29 +0100 (CET)
Received: from BL1PR13CA0447.namprd13.prod.outlook.com (2603:10b6:208:2c3::32)
 by BY5PR12MB4164.namprd12.prod.outlook.com (2603:10b6:a03:207::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Mon, 25 Nov
 2024 17:55:21 +0000
Received: from BL6PEPF0001AB77.namprd02.prod.outlook.com
 (2603:10b6:208:2c3:cafe::fc) by BL1PR13CA0447.outlook.office365.com
 (2603:10b6:208:2c3::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.11 via Frontend Transport; Mon,
 25 Nov 2024 17:55:21 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0001AB77.mail.protection.outlook.com (10.167.242.170) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Mon, 25 Nov 2024 17:55:20 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Mon, 25 Nov
 2024 11:55:20 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 11:55:20 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 11:55: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: 72e9dae1-ab56-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjA3IiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjcyZTlkYWUxLWFiNTYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTU3MzI5LjkyODg4MSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CTzlyi2pnKdDR+pMVDVnUxVOXJACPwrGJJ/0pzoo7zEb7EypOomAkpSHBJI7Z95KfmcPvzErQ2EuNfxRRuVR+nX5wZRTKJC2fUGJ6otptaswSSmlQ4cgriSwXQcP7RWI6xwpgKI7w7FmYCgSIc8gvnGiem/lFx9Lee0XW5xDHHk3Rft0HpLH3vKCDnBj2xjhPADhzq81+8tLu7igXE6ZuYOYYE0gilWjbbp3aE6IKdQYVSiYRcGwEqm4f5uPkWSpsUgElFhn94LrdtQCRg9bkDf+CyhmAg9Qq1qRwogzFHyKwGmAxADUlhdNFXKsxe0J+qo/NEu80gIjoSxOM4MmDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ai7hpG1VukTCVVPk/93Qdiv7ymWV1QyORPiAMvXuHJ4=;
 b=Pzdl/99bgEUmSgl+d8k7D4/P4qbRhxGTH3F25eL7beB+j2SjWDwTZ4J9AKXMkutrOWHvIwr2XrA56b2dlejrHcnLrDrx4sgYe3DM6108TWFZ2GPsZBKw+Kdm3Q0Hj+8xb+Hiod4LHrqGz9bJEXhwVWMibXxKr0MGhEBIMXuPAPS95mm6mLZ8oHPF72iA6yVhMQdabARoEJvgBHBHJ+eoxJyWx5RPJ1U8HHAhKLbfzi79HpjNLufcTRaSl/pCRV788pe7weASiFSUFr7LfJhOG5PHwMEwWuOuFOclv4CPQXEkz1Ejgj8I/UE5kYTNHeLkvMuedF/lbw8F+eXN1gQwwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=ai7hpG1VukTCVVPk/93Qdiv7ymWV1QyORPiAMvXuHJ4=;
 b=a72RErsvV+xQfHe/d5+TYk1mB1RK1gBxmncjEmg4g1A6l93VJsIwvE2kFipsSgzavb45XZVadO7SwawEf1jHahqNV6ZrpW5FlnGGa10xUuQDys7DIcV2z0rqb5yQNgyd9tKJzRuNZsvEgvkCuimqHUp3RWOj8RP1aUbX54BXrkQ=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <45787e79-87e3-4583-aecb-4155195ab230@amd.com>
Date: Mon, 25 Nov 2024 12:55:18 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/15] kconfig: introduce domain builder config option
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-6-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-6-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB77:EE_|BY5PR12MB4164:EE_
X-MS-Office365-Filtering-Correlation-Id: dbeed52e-fd68-45c6-6ef4-08dd0d7a546e
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?b01uVlFHd1JKaGZ1Lzg5eURnSEl4MnBwSkxVZ0hCZVM1RVpSMFNJSkpsUjBn?=
 =?utf-8?B?SVRQbW95V05zMDJRc3o0NE1CZThBRGE5NXFKblNMTXpFZk5kbjBRMU1rZ3di?=
 =?utf-8?B?YUdWbVI4dXcrdzFKd2VveENQZHBZcGhaWHFVTUdnNnExcU5yNldNdkw0NTRB?=
 =?utf-8?B?S2xmc0tuSGM3Nkl6Zjl1S0RpRlRrUmFKOXF5VEU2OHZ4bVJFMXhoeFJNN2tJ?=
 =?utf-8?B?Q2o4SFo3WVRDclIrRGgxZ2VIQWR1VmJkdWw3Z080UFNCSFQ2VUNhbXM3NTEy?=
 =?utf-8?B?T1ViYWRTYjlha003Y3NTYWt4SjJ0TnZuMEdjVFNsbkdBb1IyNy9QWXQ3SDBq?=
 =?utf-8?B?Z280QmdWcjVBWFlydnF3SmxvZ3J2eEUxVmFXQ3BhcUt5alYzSVR5ai91eUpm?=
 =?utf-8?B?ZkxvcUJDdGxURForRzBOVy9XNXVxaG02RW5WNHBZSktrMXBWdXlMWVZmY3F6?=
 =?utf-8?B?NVF2b3ZWb3BSMStWRU5LdDB5WjkvRDNVSVhFbW5yVERMeml0c0RpTUtHNVQ0?=
 =?utf-8?B?aUhrekRaZE5JOXpqZ0tWaTVET0NZTXpFNW91Qmh4SXBVNEhIbXQzR3ZyMjVI?=
 =?utf-8?B?L2xzd2Jpb0M3RTFTM3dyRXlEbmJZa1ZxV1pTVkYvd0VhSkUrY0VXcm9SSEVW?=
 =?utf-8?B?eXN0bnE1MThRZnN3bW44UUNOajAzVk4xWXhxZTgxYlRzN2h6QUhXSWtKSlQv?=
 =?utf-8?B?ZlZxaEpYcCtIWmZZYU1TUFJhWkJNL0pZV203WnEyVnJ4cVVBMVpDc0NzanNJ?=
 =?utf-8?B?aDRlNnljQkVUdE9hQ1ZHbFBIM3RvSkRQUThjSEI0eHNldmZXR0RVWnVYTG5h?=
 =?utf-8?B?eVZrRzFkMVNXMlhsWlZOVmplVnRmUWYvTDVTamswdTN4S3krTGdUODNFZGM2?=
 =?utf-8?B?Tm9kU3lJeHZlN1VOeEI0ZXdxaFNMblEycmZuMDFjWXZ6L1YxRlgza0l2cHdZ?=
 =?utf-8?B?QkNRTkwxUDRCR3VvNmlNcU5kZEVneVQ2VU9QdW1EbHR4aHAyOHJqaEVJTVNV?=
 =?utf-8?B?MndueWZBK1VUajEzWkVLSGEwSXRKWE5aQjdsczdMeThBejg4elNvRnlJSGs0?=
 =?utf-8?B?S1ZqcUJpaVNVZlhQdTZmNWRkM3ZWbnZtcXFtanliTThrSXNGek1LUE04Lzg3?=
 =?utf-8?B?S1o5a0M3dG9vNjRYVXJWZHVBWWd5Y21JOEp2c0lFZVFFclJmeUxGU3B2NTkz?=
 =?utf-8?B?VVJQMzdodWNkak9yTWJmNUFncTY2U0JpLytLd0xzUlU0c2VJU2FrbzhyVkRm?=
 =?utf-8?B?elNBWUtDdmJ4ZUhPT1lWdVFEK1Jib1NjVVc0d0lsUVE0MjhEeWpEMDRha2Np?=
 =?utf-8?B?RmIwY2JOSG1GQjNKem1wK2NYbVh6bHdpS0VvdnFzUFBzRlQvamtweGgxNU54?=
 =?utf-8?B?blh2SmlyNWpnbFN1RDNmRHc5Q1ZsdlNZcnRlazNzbTlZMmRuUnBFK1J5S1hH?=
 =?utf-8?B?d0Z3Q00zU0NIUnQ5bnh2bUVQSGJzRFNvV1J3M3BWbWVxTHlPY1VpV1F6WkR6?=
 =?utf-8?B?QzYrZGs2UHdMSXhucUQ0ODRwYjBGaVRENWtMa1lwbnhoRFkwR2trSWRXdG8z?=
 =?utf-8?B?a3AyOEpUV29aRlFTd1k1cjgxWW14aVVmcmVPVmdkdy80SUR0bXJrY3lyMUFC?=
 =?utf-8?B?QWp3MlF2N29aT2JvSVVvb28rZTZGTm44NzZKNFVwd25tVTdjTG9TUk84SjNH?=
 =?utf-8?B?UXQyemhKQWpvM0NwR0RLanUxZGN1MUl3MC9hMnFnK000UWpRUDlpSmlUUG40?=
 =?utf-8?B?VXB4QnR3NEJLazVuc0Y2Q1JuMFhBY05tNFRBSGY5TmZpWE9MV0p3TU1QZ3VY?=
 =?utf-8?B?N3dwZktLWUV6WGkwR1ZHbHpPcVhFazd6Z1NTUGNTdmFyT1ROOU5iR0gySC8z?=
 =?utf-8?B?SlRTSldkZDRvZjJUcXlBakR0Q3lYaDJwNk9Fbnc3OHh0blZiSVNaT0ExZjVW?=
 =?utf-8?Q?Qz0T5oi/7T4cn7rqHlsgSMsdd+04fScn?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 25 Nov 2024 17:55:20.8923
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dbeed52e-fd68-45c6-6ef4-08dd0d7a546e
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB77.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4164

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Hyperlaunch domain builder will be the consolidated boot time domain building
> logic framework. Introduces the config option to enable this domain builder to
> and turn on the ability to load the domain configuration via a flattened device

"to and"?

> tree.

Maybe:
"Hyperlaunch is the boot time domain building framework where domain 
configuration is loaded via a flattened device tree.  Introduce a 
kconfig variable to control the feature."

> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

> diff --git a/xen/arch/x86/domain_builder/Kconfig b/xen/arch/x86/domain_builder/Kconfig
> new file mode 100644
> index 000000000000..7be2ec3ed00f
> --- /dev/null
> +++ b/xen/arch/x86/domain_builder/Kconfig
> @@ -0,0 +1,15 @@
> +
> +menu "Domain Builder Features"
> +
> +config DOMAIN_BUILDER
> +	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
> +	select LIB_DEVICE_TREE
> +	help
> +      Enables the domain builder capability to configure boot domain

Indent is off.

> +	  construction using a flattened device tree.
> +
> +	  This feature is currently experimental.

Does this need to be unsupported and experimental?  What makes this more 
experimental and/or unsupported than any other new feature?

At least with the commit message and indent fixes:

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

> +
> +	  If unsure, say N.
> +
> +endmenu



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 18:08:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 18:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843072.1258725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFdVo-0006oc-1h; Mon, 25 Nov 2024 18:08:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843072.1258725; Mon, 25 Nov 2024 18:08: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 1tFdVn-0006oV-Tv; Mon, 25 Nov 2024 18:08:39 +0000
Received: by outflank-mailman (input) for mailman id 843072;
 Mon, 25 Nov 2024 18:08: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=caTh=SU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFdVm-0006oP-78
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 18:08:38 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2413::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46deb260-ab58-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 19:08:31 +0100 (CET)
Received: from BN0PR04CA0090.namprd04.prod.outlook.com (2603:10b6:408:ea::35)
 by DM4PR12MB8475.namprd12.prod.outlook.com (2603:10b6:8:190::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Mon, 25 Nov
 2024 18:08:23 +0000
Received: from BL6PEPF00022573.namprd02.prod.outlook.com
 (2603:10b6:408:ea:cafe::c) by BN0PR04CA0090.outlook.office365.com
 (2603:10b6:408:ea::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Mon,
 25 Nov 2024 18:08:23 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Mon, 25 Nov 2024 18:08:23 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Mon, 25 Nov
 2024 11:52:53 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 11:52:52 -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: 46deb260-ab58-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjFiIiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ2ZGViMjYwLWFiNTgtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTU4MTExLjgxNTM0Miwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Bdg6X2sqDOGHQAdcEnXrFCQKxJBu8SELlXk8yh9EpLKfpjN0kIKh4p2g2waaKgmnkHonHuqWGAMdWix6gOMtnSAUJBQ7FoH33t3nT2LMM0qcKXTQROE1/WBz8wyZyG0gYWYECFHnWYbHeXF9p0I1SlNQrUudSmKi6B1A/kG9Sqe40hs19sOLN8OF9g2Xmi19xRLAWLeS6Mn47zGuNXTo4gEUDoATubyuksLb3IrYA8095BbmhJoJn6dMfculPXYKKsAEY5ljpYXAzCYGOAc2Ul2cFrg8dA5WQzZ7j7/kS0EM8HYR4r4LpGeBFqjz+LKc7qRiRAyseiPG9FXkXqBS+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=VrgUs7lPAGpzni9S9U9C04OF3xn6sf7zYxtAAzgPhYw=;
 b=avZxKUOJvI95BZmrXUXX6O62teShn8HjszFuA1+sDF9pRWvWlIakLi7rY8+iKFpAFIFqKaux1rnZ3SMMJzDphCAc6iU+75eZ8kRMcw4KIfAQSomLnLScHNg64lMHIjC2pQ3JTBvxURyB2zJSg8TemH8y3rcAcRnYFI9W3yy0SV56OyaCbz/lAwB08Hm+ILC6sJkWddo+APB6qVn8IOAmJAmgZE3W4YsopCNU4/kaDcRt23IEfFrAfj5f7gKuWN4x7GQrYUsXutiV94QbD9Cn/qssL+6rh5GWXo6NS8lWF2bhcEFfY5EeKwOSLmS4HBlOkO8jf6zmoQZOKbaTr6fIGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=VrgUs7lPAGpzni9S9U9C04OF3xn6sf7zYxtAAzgPhYw=;
 b=TFEIheEL8m/0z5xuXsfaOqlyJTy+LteSca3NB4zMhHjwQ8j3P119/n9z5gET6FDu8CF/+VQKWHR6HJsM5H0McMLE0DDVCVQgluumq+GWsgvUwFhxEC9zr9a1CPSkSOm2N+qTP/v/dj+R5yVlPbW4yxvUshq0zPSVVNY2Dzwfcrw=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <f8f375d6-2b77-4d76-ac69-89d850ac4733@amd.com>
Date: Mon, 25 Nov 2024 12:52:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/15] x86/hyperlaunch: introduce the domain builder
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-7-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-7-dpsmith@apertussolutions.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: BL6PEPF00022573:EE_|DM4PR12MB8475:EE_
X-MS-Office365-Filtering-Correlation-Id: 921ea573-470e-4719-2fca-08dd0d7c26c9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dXBBa0FiaG41RzZSOXhjREQrejVUR25HeFArVlJYZFZiK0VKd3FkdXJ3elll?=
 =?utf-8?B?dXZ5TXlvbDZHWUZJQjMyNFJza0FDc0Z5Qm1nY0pMRFRORThYandOR1lqVmNB?=
 =?utf-8?B?TmpDd2pINUFVWUk5ZDliT1g4MVJ3RDdoWmY1NXRMMUJCOUdGNVAxWFNUZWJS?=
 =?utf-8?B?QVMxSVl6aUhEUXhDaE82dzlzNDY3NXhiNmpZTEltK09CaXFNRFUrSnRnVG5i?=
 =?utf-8?B?aXBhWlEyQ0x2SHlJLytWUjR1MTk5RlYzd3h2TkxyT3IrYmlJSUFPeVVtWXRl?=
 =?utf-8?B?NVAyc20vMGVMbmtNL1dYUVBBVzlCaDJSRHdPcU5GZVUzQWRuaDhpUWxKOUpo?=
 =?utf-8?B?YkFDalR3TXJUYUlCd05vMVlyVGdNZ3VtUmVIVlZma1pBWHp0RmFsZllQZTRn?=
 =?utf-8?B?QnBscit5THNVOVlZMTY1MStpcHBUWkVRY2lyR25RM25rNFZONWRBWURpdDRR?=
 =?utf-8?B?U1luRXNBRW9tdXBjbzQwNmVOTGVPSkROcnZ6NVFrbytPSXYvTjRzS091Yzd3?=
 =?utf-8?B?Z1JCVzN1c29kaGN6UGRoRUdyUFBNWlJFTXAzU3VjWU9HcHZmbllLd0RYZkcr?=
 =?utf-8?B?djdJZC9EcFZKTU84R2pwOWQ5elRmUTRmUWtqUzJTT1I1Y1Y1NWI1UCtOb2Ix?=
 =?utf-8?B?YTVOdWRHTmw1bVh3Sm9CaUZZZ3lDM01wb3hacFVHNTk4bFpTancyZFE5eVdJ?=
 =?utf-8?B?TEkrcS9KUEwvZVhnQUhKOFBDYlRTZ3ZvN0VUQ0NPUUhXcVdCaTN2OGt5UERW?=
 =?utf-8?B?ZHZwc0RNM3U2SUhYVlpXL01LblcxM3pNYThXOVhPZGFMeEZTWDlwUThmSTZW?=
 =?utf-8?B?TnZYZXluN3VWRUdpWnJPNXJoMzRMYmd4ZWFBYngvcGEyNG1BU1VIdEZnNU5K?=
 =?utf-8?B?TUdMcTUzMmVxUjRCNzhFSUxqKzg1R2lTcm1wQ3MwNHFmaFRrenlTa2hlbzF5?=
 =?utf-8?B?STFET3NBc1Bxc245USs4VDF6N25INVQzTWJxQUpHZWFHZWRmODZWSVI0M2kw?=
 =?utf-8?B?ZitsbmxZalNXUnlSaSt5aHEzUmxyaFB5bXh3dVdQRWpkMkJ6Y2M2SWUyZGs0?=
 =?utf-8?B?aTZ0MmhZcmhvMnVqbjdVUVgxeHp4dlY2Y0JMTDFpdXFraDY5andVNmJJaGNB?=
 =?utf-8?B?ckFPeW9XelJ3U1ZQQ3MremJSbXNGWUxkWnRVZDVHYXlESEZZK3hCckMvcjJE?=
 =?utf-8?B?RWFLR1RnV2NJYTlJMTcyNlB0Z1Rlem0vUG4ySDZlZzhxQkF5U0Z2Y3hRaUZQ?=
 =?utf-8?B?dnJ1bmtaZ3dDbHdoMlBIbS96N2Vvb0NhMlczcUlnSXBxK1lzQTg3cUZTVTJl?=
 =?utf-8?B?K2YxMUk3c2NnSHYzTEwxY2dVcEIxdzExam9IMytSMlhWb1l1R3phaWh5TmtK?=
 =?utf-8?B?YS9zclJoUWNxMFRsWnlpamQxSmltVEd3bWw4Y0I2Mnp6YU5leWJGL2JKZHUr?=
 =?utf-8?B?aUozK3hpb3lLcGRkTXRPSnQ1amtwNEx1dGRjQkFLM0toRWZmOVhmSmRTem1M?=
 =?utf-8?B?OEkxbktxMzU3RnBuZmJCbFdVYXFCM0kxQ0lSMHJ4SEVOc25oemd0Z1hyeXRn?=
 =?utf-8?B?bi84TzBRdWx5bGE2UGlQQy9ScHhQUUhhV1ZORjhiL0VJOXlCd2h3UlNWeUZM?=
 =?utf-8?B?SWNuWERVa0p6Y01uZjBnd01FNmRram8weVdTQ3ZnVFlETFg5ZW9vR0grSklL?=
 =?utf-8?B?YzlLdHZOTVltSXJ1Q3ZTRXI1ZkVDZ3dPK1lWeFZHOEZ1TjBaUjFzRk1icW05?=
 =?utf-8?B?bkltbmNDQjZMVmZ2d1daaSt6c2IyWWJyUzZvV05xOEIyanFWMk5uR04zTkpI?=
 =?utf-8?B?UFl5Y0NlT1BVaXkzOTBTU0xiVE1XVnZmTmxGYnZMME10V1B2M1JIcllTdWRE?=
 =?utf-8?B?SzlVK2VaNVI2ZkNqdEs0S3E3R1k1WVdFRlJzbzRWVXQvYWRNVldPbXV1UEJt?=
 =?utf-8?Q?tS2dIthMkMBOtCCEtas623gi26lRygN3?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 18:08:23.3678
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 921ea573-470e-4719-2fca-08dd0d7c26c9
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00022573.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8475

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Introduce the domain builder which is capable of consuming a device tree as the
> first boot module. If it finds a device tree as the first boot module, it will
> set its type to BOOTMOD_FDT. This change only detects the boot module and
> continues to boot with slight change to the boot convention that the dom0
> kernel is no longer first boot module but is the second.
> 
> No functional change intended.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index b35fd5196ce2..45e4c963edcd 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -81,6 +81,8 @@ obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
>   obj-y += sysctl.o
>   endif
>   
> +obj-y += domain_builder/

I kinda expected:
obj-$(CONFIG_DOMAIN_BUILDER) += domain_builder/

then ...

> +
>   extra-y += asm-macros.i
>   extra-y += xen.lds
>   

> diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
> new file mode 100644
> index 000000000000..211359895d84
> --- /dev/null
> +++ b/xen/arch/x86/domain_builder/core.c
> @@ -0,0 +1,55 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/err.h>
> +#include <xen/init.h>
> +#include <xen/kconfig.h>
> +#include <xen/lib.h>
> +
> +#include <asm/bootinfo.h>
> +
> +#include "fdt.h"
> +
> +void __init builder_init(struct boot_info *bi)
> +{
> +    if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )

... then this extra level of indent isn't necessary (with an empty 
static inline builder_init()).

I guess this way, this small part is compiled even when 
CONFIG_DOMAIN_BUILDER is disabled.  But it's only a piece, so I'm not 
sure if it's worth it.

> +    {
> +        int ret;
> +
> +        switch ( ret = has_hyperlaunch_fdt(bi) )
> +        {
> +        case 0:
> +            printk("Hyperlaunch device tree detected\n");
> +            bi->hyperlaunch_enabled = true;
> +            bi->mods[0].type = BOOTMOD_FDT;
> +            break;
> +        case -EINVAL:
> +            printk("Hyperlaunch device tree was not detected\n");
> +            bi->hyperlaunch_enabled = false;
> +            break;
> +        case -ENOENT:
> +            fallthrough;
> +        case -ENODATA:
> +            printk("Device tree found, but not hyperlaunch (%d)\n", ret);
> +            bi->hyperlaunch_enabled = false;
> +            bi->mods[0].type = BOOTMOD_FDT;
> +            break;
> +        default:
> +            printk("Unknown error (%d) occured checking for hyperlaunch device tree\n",
> +                   ret);
> +            bi->hyperlaunch_enabled = false;
> +        }
> +

Stray blank line

> +    }
> +}
> +
> +/*
> + * 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/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
> new file mode 100644
> index 000000000000..3f9dda8c34c3
> --- /dev/null
> +++ b/xen/arch/x86/domain_builder/fdt.c
> @@ -0,0 +1,38 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/err.h>
> +#include <xen/init.h>
> +#include <xen/lib.h>
> +#include <xen/libfdt/libfdt.h>
> +#include <xen/rangeset.h> /* required for asm/setup.h */

Should asm/setup.h just be changed?

> +
> +#include <asm/bootinfo.h>
> +#include <asm/page.h>
> +#include <asm/setup.h>
> +
> +#include "fdt.h"
> +

> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index e6580382d247..8041aeb3dcfd 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c

> @@ -1591,7 +1596,8 @@ void asmlinkage __init noreturn __start_xen(void)
>   #endif
>       }
>   
> -    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
> +    i = first_boot_module_index(bi, BOOTMOD_KERNEL);
> +    if ( bi->mods[i].headroom && !bi->mods[0].relocated )

Switch .relocated index to i?

Regards,
Jason

>           panic("Not enough memory to relocate the dom0 kernel image\n");
>       for ( i = 0; i < bi->nr_modules; ++i )
>       {



From xen-devel-bounces@lists.xenproject.org Mon Nov 25 18:51:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 18:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843082.1258735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFeBH-0004oB-37; Mon, 25 Nov 2024 18:51:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843082.1258735; Mon, 25 Nov 2024 18:51: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 1tFeBH-0004o4-0G; Mon, 25 Nov 2024 18:51:31 +0000
Received: by outflank-mailman (input) for mailman id 843082;
 Mon, 25 Nov 2024 18:51: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=toQe=SU=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFeBF-0004ny-NJ
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 18:51:29 +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 439322d9-ab5e-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 19:51:22 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4314f38d274so60315265e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 10:51:22 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3bfa27sm4321365a12.37.2024.11.25.10.51.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 10:51: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: 439322d9-ab5e-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQzOTMyMmQ5LWFiNWUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTYwNjgyLjM0MTU0Niwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732560681; x=1733165481; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wb46oBOebjFb43MCtBtE5N1mN0Cq0rZVW/IK9z6L43c=;
        b=Wsn8srZtpmXYVsdxbCX4lnVIr29XQY5r5Da9F/6z7MzvuZkmTq6fLwPUhEP0902FQT
         hp+6MaY5pIAUcwwJ97rTxVgWMC376Ijf23vZdYdG01ewtFOpUsc7Dy6ur/k798bY5Mo5
         J0hBXB0LuQzip6E+ZOhPde5IpHKArH8kWEx2c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732560681; x=1733165481;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=wb46oBOebjFb43MCtBtE5N1mN0Cq0rZVW/IK9z6L43c=;
        b=txxRX3MnhJ04havVAzR1x5B6lFA0e5ymMUqS+pwInqcPi9ARjMFfJgEYrQeRM67g2Z
         Z/6OyHe4IhpKicfj782irJ5Qntb7NbzocvvaEVglqGoJpQjbigLjS8NDRZvlXANEiJNC
         Jww+NRcasF1cGNB7B2S+KuZ1IYZrAg7VzWCl1G+TXxeFH/5nRV7m0X02SnUDU02s/lgP
         mS3hTwe30gHChcgKLoR2EUq27VdPcgzHYexjeUC84PMM/Bf4vQf387HOVbD9s1exubvK
         gRVBEIH+6SADLiqFzU5S7tPbY81fOwAKOgAZ65HWnc+KbesRlWlrngKCPNmVzBQGVzRA
         wgmg==
X-Forwarded-Encrypted: i=1; AJvYcCUMdjHsVHRUA0ANu8NEzPdj5/wFbwoQAbyufmtWdqNMm7hI0u8FNblr/WjNUPQSLm3hg2gAM2gan00=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVDdyMYkolOFvIT14559hpw+v5UhnfES9rvEfOHah0RLS99/P6
	5HV+0Kjln/Lt/ELFbsAdyN69kJhQhkO3JYXc/LE8ychIXDRbfTRS+mbqpl//6KA=
X-Gm-Gg: ASbGncud4t0H2HNSMUnwjldP3P41Slqn8Q37vtk5aeNhM/Y1bMeaZotbVuVDo4VL4Vj
	nzZEpnmNvp0wpbCKAoY/gW8t4jLFdjek7/D9ESJZbPz6gkk5fu80Rr+PsJYbw3SveIBkT4BcKFl
	PEKMTa66E5Ue0cvx9ncl5AcI4rIPQwVvDCOZ5AJRB8IF3MqJiWWOTg5Bjq+szN0pQSI4PpFvX/h
	1cPevU6hyjwbl3DGi4Omx+Kz6dzz7g9MB0pB4TXe3ONoTpABvAarv5s
X-Google-Smtp-Source: AGHT+IGxHM4ypUeRI8xtUBo3kaWy/gIh7z2BZqxyrjcpO6CwNrm6V+w3aDAwBzSpqphHWs6DSEBGJA==
X-Received: by 2002:a05:6000:2d06:b0:382:4fee:c263 with SMTP id ffacd0b85a97d-38260b5385emr11345253f8f.20.1732560681555;
        Mon, 25 Nov 2024 10:51:21 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 25 Nov 2024 18:51:16 +0000
Message-Id: <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Samuel Thibault"
 <samuel.thibault@ens-lyon.org>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@cloud.com>
 <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
In-Reply-To: <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>

Hi Jan,

Thanks for having a look.

On Mon Nov 25, 2024 at 12:05 PM GMT, Jan Beulich wrote:
> On 15.11.2024 12:51, Alejandro Vallejo wrote:
> > Describe sysctl/readconsole as a TOML specification, remove old
> > hand-coded version and replace it with autogenerated file.
> >=20
> > While at it, transform the console driver to use uint8_t rather than
> > char in order to mandate the type to be unsigned and ensure the ABI is
> > not defined with regards to C-specific types.
>
> Yet the derived C representation imo then should still be using char, not
> uint8_t.

There's 2 issued addressed by this patch.

  1. The removal of char from the external headers (and the Xen driver).
  2. The replacement of the existing struct by the autogenerated one.

(1) wants doing irrespective of (2). char has neither a fixed width nor a f=
ixed
sign. Which is irrelevant for ABI purposes in this case because what we rea=
lly
meant is "give me a pointer" in this hypercall, but it may be important in
other cases.

IOW, char should've never made it to the definition of the public ABI, and =
I'm
merely taking the chance to take it out. Happy to extract this patch and se=
nd
it separately.

> In particular it would be a good sign if the Xen sources wouldn't
> need to change, unlike happens here (altering types of a few internals of
> the console machinery).

And that would be the case if Xen had uniform naming conventions and its AB=
I
was fully unambiguous. The process of uniformizing the naming convention an=
d
disambiguating the ABI is bound to cause (non-functional) changes, mostly i=
n
the naming conventions side of things.

Naming conventions can be _MOSTLY_ sorted by creating compat #defines and
typedefs that match the old types. I can do that, but note that even then s=
ome
code would have to change in order to i.e: s/struct OLD_NAME/NEW_NAME_T/

If this is deemed important for backporting changes, I can do it for invasi=
ve
replacements, like the createdomain flags.

On the topic of changing types, The present case is an ABI inconsistency ca=
se.
My intention is to keep the ABI fixed as a matter of principle (if anything=
,
because the domU ABI cannot be changed). However, changing the way C repres=
ents
said ABI is a requirement if the current definition is ambiguous. In those
cases we ought to change C to ensure there's one and only one way of
interpreting it.

>
> > Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > ---
> >  stubdom/Makefile                              |  2 +-
> >  tools/rust/Makefile                           | 19 ++++++++
> >  .../xenbindgen/extra/sysctl/readconsole.toml  | 43 +++++++++++++++++++
> >  xen/drivers/char/console.c                    | 12 +++---
> >  xen/include/public/autogen/sysctl.h           | 35 +++++++++++++++
>
> In the build tree, having an autogen subdir under public/ _may_ be okay
> (personally I dislike even that). I didn't manage to spot adjustments to
> how files are eventually installed, yet at that point there clearly
> shouldn't be any autogen subdir(s) anymore. How the individual files come
> into existence is, imo, nothing consumers of the interface ought to (need
> to) care about.

Anthony already mentioned an error while building QEMU, which I'm guessing
comes from the same problem. The stitching is definitely up for discussion.=
 I
got far enough to allow the compilation of `dist` to go through, but didn't
think incredibly hard about the finer details (like the install targets).

In principle, renaming `autogen` to `abi` and adding its contents to the li=
st of
installed headers ought to sort that particular concern?=20

>
> > --- /dev/null
> > +++ b/tools/rust/xenbindgen/extra/sysctl/readconsole.toml
> > @@ -0,0 +1,43 @@
> > +[[structs]]
> > +name =3D "xen_sysctl_readconsole"
> > +description =3D "Read console content from Xen buffer ring."
> > +
> > +[[structs.fields]]
> > +name =3D "clear"
> > +description =3D "IN: Non-zero -> clear after reading."
> > +typ =3D { tag =3D "u8" }
> > +
> > +[[structs.fields]]
> > +name =3D "incremental"
> > +description =3D "IN: Non-zero -> start index specified by `index` fiel=
d."
> > +typ =3D { tag =3D "u8" }
> > +
> > +[[structs.fields]]
> > +name =3D "_pad"
> > +description =3D "Unused."
> > +typ =3D { tag =3D "u16" }
> > +
> > +[[structs.fields]]
> > +name =3D "index"
> > +description =3D """
> > +IN:  Start index for consuming from ring buffer (if @incremental);
> > +OUT: End index after consuming from ring buffer."""
> > +typ =3D { tag =3D "u32" }
> > +
> > +[[structs.fields]]
> > +name =3D "buffer"
> > +description =3D """
> > +IN: Virtual address to write console data.
> > +
> > +NOTE: The pointer itself is IN, but the contents of the buffer are OUT=
."""
> > +typ =3D { tag =3D "ptr", args =3D { tag =3D "u8" } }
> > +
> > +[[structs.fields]]
> > +name =3D "count"
> > +description =3D "IN: Size of buffer; OUT: Bytes written to buffer."
> > +typ =3D { tag =3D "u32" }
> > +
> > +[[structs.fields]]
> > +name =3D "rsvd0_a"
> > +description =3D "Tail padding reserved to zero."
> > +typ =3D { tag =3D "u32" }
>
> Up to here I wasn't able to spot any documentation on what it to be writt=
en
> in which way.

You're right that the specification is not itself specified. I neglected to=
 do
so to avoid having to rewrite it should we settle on a different markup
language.

Much of your confusion seems to stem from simultanuously looking at a new
markup language and a new schema for it. Let me try to unpick some of that.=
..

> I already struggle with the double square brackets. The TOML
> doc I found when searching the web doesn't have such. Taking just the exa=
mple
> above also doesn't allow me to conclude how e.g. nested structures would =
be
> specified.

The schema is represented by the contents of `spec.rs`. All structs with a
Deserialize attribute (i.e: #[derive(Foo, Bar, Deserialize)]) map to some
"table" in TOML.

When I say "struct" now I mean a struct inside the generator that represent=
s
the input file (_NOT_ a struct representing a hypercall).

The rules are as follows. The whole file is deserialized in a single struct
(InFileDef). When there's a single square bracket (which I don't think I've
required yet), that means that what follows is a "table" with the name betw=
een
the brackets. There's several ways to represent table

    Regular tables:           [foo]
                              bar =3D "some_bar"
                              baz =3D "some_baz"

                              [foo2]
                              bar =3D "blergh"

    Inline tables:            foo =3D { bar =3D "some_bar", baz =3D "some_b=
az" }
                              foo2 =3D { bar =3D "blergh" }

Both of those deserialize to the same thing (it's C for ease of explaining =
it
here, but it's actually Rust in the generator).

                struct infiledef {
                    struct {
                        char *bar; // points to "some_bar"
                        char *baz; // points to "some_baz"
                    } foo;
                    struct {
                        char *bar; // points to "blergh"
                    } foo2;
                };

The double brackets are adding one more element to a "list"

That is. This TOML...

                             [[foos]]
                             bar =3D "some_bar"
                             baz =3D "some_baz"

                             [[foos]]
                             bar =3D "some_bar"
                             baz =3D "some_baz"

... deserializes to...

                struct foodef {
                    char *bar;
                    char *baz;
                }

                struct infiledef {
                    struct foodef *foos;
                };

The last bit of relevant information is that you can identify which table y=
ou
want to add to with dots. So [[structs.fields]] is saying "Add this field t=
o
the list of fields of the current hypercall struct".

The "typ" field is a bit quirky (I have a solution to simplify it), but tha=
t
uses inline tables.

> Really, when talk was of some form of IDL, I expected to see
> something IDLish (im particular closer to typical programming languages w=
e
> use). Whereas TOML, aiui, is more an easy language for config files of al=
l
> sorts.

I might've been unclear in the talk. One of my goals is to _not_ define a n=
ew
language. Or I'll just exchange one problem for two. Maybe I should've call=
ed
it an Interface Definition Schema, rather than Language.

The key benefit here is that, while the generators can be tricky, the parse=
r is
all done and strictly specified. We can experiment with YAML (Anthony alrea=
dy
asked about it). But it really is a matter of getting used to. TOML is
fantastic for saving horizontal space. And multi-line comments are neatly
organized.

>
> What I have in mind wouldn't allow for descriptions, yet I'm not sure tha=
t's
> relevant. The description ought to, first of all, live in the primary sou=
rce
> (i.e. the IDL itself) anyway. Commentary there might be possible to extra=
ct
> into proper (machine generated/derived) documentation.

Not sure I follow, these TOML files _are_ the IDL itself.

The descriptions here are propagated to the generated code, so they are
infinitely helpful when reaching the type via e.g: cscope, LSPs, etc.

>
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -42,6 +42,8 @@
> >  #include <asm/vpl011.h>
> >  #endif
> > =20
> > +#include <public/xen.h>
>
> Why would this be needed all of the sudden?
>

Because of the new XEN_GUEST_HANDLE_64(uint8) type. The macro is quite ugly=
 and
requires being declared ahead.

> > --- /dev/null
> > +++ b/xen/include/public/autogen/sysctl.h
> > @@ -0,0 +1,35 @@
> > +/*
> > + * sysctl
> > + *
> > + * AUTOGENERATED. DO NOT MODIFY
> > + */
> > +#ifndef __XEN_AUTOGEN_SYSCTL_H
> > +#define __XEN_AUTOGEN_SYSCTL_H
> > +
> > +/* Read console content from Xen buffer ring. */
> > +struct xen_sysctl_readconsole {
> > +    /* IN: Non-zero -> clear after reading. */
> > +    uint8_t clear;
> > +    /* IN: Non-zero -> start index specified by `index` field. */
> > +    uint8_t incremental;
> > +    /* Unused. */
> > +    uint16_t _pad;
> > +    /*
> > +     * IN:  Start index for consuming from ring buffer (if @incrementa=
l);
> > +     * OUT: End index after consuming from ring buffer.
> > +     */
> > +    uint32_t index;
> > +    /*
> > +     * IN: Virtual address to write console data.
> > +     *
> > +     * NOTE: The pointer itself is IN, but the contents of the buffer =
are OUT.
> > +     */
> > +    XEN_GUEST_HANDLE_64(uint8) buffer;
> > +    /* IN: Size of buffer; OUT: Bytes written to buffer. */
> > +    uint32_t count;
> > +    /* Tail padding reserved to zero. */
> > +    uint32_t rsvd0_a;
> > +};
> > +
> > +#endif /* __XEN_AUTOGEN_SYSCTL_H */
> > +
>
> If this file is auto-generated, why would it need committing? And yes, th=
ere
> is the connected question: Will everyone then need to have a Rust compile=
r
> available?

Committing it is required precisely so that no one needs to have a Rust
compiler available. The last patch in the series checks the generated code
matches the specs byte by byte. It has the nice benefit that you can git-gr=
ep
for it and tags work even without compiling first. You also get all
architectures upfront and it's a lot easier to review changes to the genera=
tor
because CI will scream to you if the outputs diverge.

>
> Nit: For anything that is committed, it would be nice if those files were=
 as
> tidy as possible style-wise. Most of the above looks entirely okay, just
> that there is an unnecessary trailing blank line.

I did go out of my way to prettify the output.

The trailing newline was intentional to make it C++03-compatible. I can get=
 rid
of it, as it doesn't matter a whole lot.

>
> Jan

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 18:53:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 18:53:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843094.1258744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFeD2-0005ON-G5; Mon, 25 Nov 2024 18:53:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843094.1258744; Mon, 25 Nov 2024 18:53: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 1tFeD2-0005OG-DN; Mon, 25 Nov 2024 18:53:20 +0000
Received: by outflank-mailman (input) for mailman id 843094;
 Mon, 25 Nov 2024 18:53: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=toQe=SU=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFeD1-0005O8-5w
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 18:53:19 +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 8585b984-ab5e-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 19:53:13 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5cfc035649bso6398547a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 10:53:12 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d401f64sm4365437a12.70.2024.11.25.10.53.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 10:53: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: 8585b984-ab5e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg1ODViOTg0LWFiNWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTYwNzkzLjc4MDk5Miwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732560792; x=1733165592; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wl3zhNmZgTRvTEReqGu5Ux58qMzkLcJXeOsEPoFIVR4=;
        b=gi3g3L/r5O8Fg++KFm9hzvWaF4ORwPFzBPwT22HKUtKIyHli8qUTKoIIRAYpo60gf+
         9zB0s5ZKc4tVMRFpnd9Si36lhfbzP+sCOptuFpgDje84oOPfHxXUqjOrAlr2mHDlPgPP
         I9iOurZnhv+Zw7JTtGtxUIicBhgqbAhnatnSE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732560792; x=1733165592;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Wl3zhNmZgTRvTEReqGu5Ux58qMzkLcJXeOsEPoFIVR4=;
        b=nLdssG5k4hhRW3b6v+1wtjfns5SBl8qSl0K6bBna+hSxHEgbFH6g31QucEG0F25+oc
         9XEOdAB4iINdPZ5qwYzASJ60G5slFXzp8XhwtCXBC+NoDFDJV9FPtrJVaUuwRujJfc2p
         qjAgMQYGnNNq98T2+MDvgAHcG+vh+sls/f87a0BjEDkZBpuX4SuKmFNDlQtPxFRegPWi
         VBN5nbSLQy77jtaEdq5/J9sYn1oCE3zThgJJIdk4idxbiTnc8kQRKivmKaxwB6C30ZkN
         bh3A58Ya6BUox1a0IpxAtV6o3zXnpFhVMTculRIWEZMpvtgU3hmmGyZK2eUaRsU4Zf43
         6r6g==
X-Forwarded-Encrypted: i=1; AJvYcCXkMMx4fTu0f6ZNXtJ4vASubZLw1KF96Oi1lKBkE72jXl7+f9O5alSafyWUjSwpkCpd5OBSk4075DY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcP2ax9OlweMN34gY6QiTtVOxJ4xGy3zYQRaBv9VV5ozrtltRa
	aPeZMbnfbrG/BqC1DIPbRuuMUTTQdFIO0HZh17jCDduvIOrnrIzc1kHQraYzrV8=
X-Gm-Gg: ASbGncsSOMCMV3NOBId7cVk1IJhDGlkGTj7Hb1ZBD7KVrmkUm25SBAiT/a8p0ZLPcCo
	7I8UtWk5TcIsWV4zlY4/1xF7BJvhOg9RyKVozHueyBWsVPOwe+BuKY/ezLgGWYndCHbw3ZnDuiM
	fCHiQvDGH8AvSSBTSFFyx4AKO48GYMQ7KEPCS11PFT24TZwYTIqrSq/VUybrHS1910u3C9LqUq8
	PfTIub4TAwGvHOkvCtgcI7nUmpjgcdkpUhRQ8/htNhVcuwlFaElxSJh
X-Google-Smtp-Source: AGHT+IGE/wLutvKwe0fsXlxo5GI/m1IDeDPgOVZFy7vCbNDSb4tw/tv3m4Ml3pY3Qlu1jKjWTQ5WZw==
X-Received: by 2002:a05:6402:5256:b0:5ce:bb32:ccac with SMTP id 4fb4d7f45d1cf-5d020695138mr10264907a12.26.1732560792237;
        Mon, 25 Nov 2024 10:53:12 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 25 Nov 2024 18:53:06 +0000
Message-Id: <D5VHJHKS0N3P.3KJG9X9PU0MT1@cloud.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross"
 <jgross@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien
 Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>,
 "Christian Lindig" <christian.lindig@citrix.com>, "David Scott"
 <dave@recoil.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 16/25] xen/x86: Replace hand-crafted
 xen_arch_domainconfig with autogenerated one
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-17-alejandro.vallejo@cloud.com>
 <f0c46c9a-9ff1-4627-9692-13e2483f7187@suse.com>
In-Reply-To: <f0c46c9a-9ff1-4627-9692-13e2483f7187@suse.com>

On Mon Nov 25, 2024 at 12:09 PM GMT, Jan Beulich wrote:
> On 15.11.2024 12:51, Alejandro Vallejo wrote:
> > Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> > ---
> >  tools/libs/light/libxl_x86.c                  |  4 +-
> >  tools/ocaml/libs/xc/xenctrl_stubs.c           |  4 +-
> >  .../extra/arch-x86/domainconfig.toml          | 87 +++++++++++++++++++
> >  .../xenbindgen/extra/domctl/createdomain.toml |  6 ++
> >  xen/arch/x86/domain.c                         |  8 +-
> >  xen/arch/x86/include/asm/domain.h             |  4 +-
> >  xen/arch/x86/setup.c                          |  2 +-
> >  xen/include/public/arch-x86/xen.h             | 51 -----------
> >  xen/include/public/autogen/arch_x86.h         | 52 +++++++++++
>
> Nit: If at all possible, please avoid underscores in the names of new fil=
es.
>
> Jan

Sure, re-casing it is easy.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 20:12:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 20:12:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843108.1258754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFfR0-0006wY-0M; Mon, 25 Nov 2024 20:11:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843108.1258754; Mon, 25 Nov 2024 20: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 1tFfQz-0006wR-TZ; Mon, 25 Nov 2024 20:11:49 +0000
Received: by outflank-mailman (input) for mailman id 843108;
 Mon, 25 Nov 2024 20:11: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=caTh=SU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFfQy-0006wL-Hj
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 20:11:48 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20610.outbound.protection.outlook.com
 [2a01:111:f403:2009::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77e83e6d-ab69-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 21:11:35 +0100 (CET)
Received: from BL1PR13CA0116.namprd13.prod.outlook.com (2603:10b6:208:2b9::31)
 by PH8PR12MB7157.namprd12.prod.outlook.com (2603:10b6:510:22b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Mon, 25 Nov
 2024 20:11:28 +0000
Received: from BN2PEPF000055DC.namprd21.prod.outlook.com
 (2603:10b6:208:2b9:cafe::57) by BL1PR13CA0116.outlook.office365.com
 (2603:10b6:208:2b9::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Mon,
 25 Nov 2024 20:11:27 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.8230.0 via Frontend Transport; Mon, 25 Nov 2024 20:11:27 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 25 Nov
 2024 14:11:27 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 14:11:27 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 14:11: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: 77e83e6d-ab69-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjEwIiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijc3ZTgzZTZkLWFiNjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTY1NDk1LjU1NzU5NSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xB+U9jxqvCZN3SfHS8hUxQ0t9XQkDh0T/hu+UYlmhwaXrMPnBZX68TNp+eoWoH/LPqiEpync8X/v4/Etwrze3XeAQ5xM/PjP4xkRjSqnUKUTjjNmI5Z2YEHxPwaguBFYy5sbyroImIriSZY7JAGnT1FIX7Kg7s3/8KOfYOHm14PD2zsYJgQfqwnZPYgLytQYZiCKku5GuPeH26oe13fDNc7PdWNZ1mei12guVajFNAHqVuexlX2E5ZGtNW8wdZ8lRQEYyO4oqytlLNr9Z7ULbFn+5rIcwJP0thPUgBXutaa4mj6qI5EVIranR0vTope7OjCOKLK7msorACfemlb4OQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cOkL4Ftoq3m9YfETrTq4SDo/nceuuCAqJDazHjut+Sw=;
 b=KwjAXA6v6GTRaWxgwfYRqpatplPznHa4x0RumnAzftFyGAwlXZ2Ev8pxgV8aBliK/woKi9mwK/ibhknNYhLe8H5y0bbq9Hxg4x/1/yYhWsOiGB0nEtRAsJ9m6JrirWora+TSwWZN/QgTD37JiJVoSd0oMb/ps+lKqf+wi+dV7LdfXKvuiQYjULbrH8dKyYoGb8v/xj4/sddcHxxdKtfn0OCXPOr28t5MVV7KJOi3yCnsRcrne+qcYccJxm6pbi43e2MZ7stFuT07JKHvUCVuIP3CYH8n81P4QBmfQ7ZIqGNdFGhYHUdrkYA3SQbs3c0TuekOhvKjX6Ogw+DvqrZhXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=cOkL4Ftoq3m9YfETrTq4SDo/nceuuCAqJDazHjut+Sw=;
 b=jQsDLKLyoqrXal88eKWoaVNMdOwi3dfjfemEUd4fsZUh4M7B7hucNEzBG77Gd45cK7LLXt97zWBCFdFAPMw8tnBTaceP5xDUZ2mK8iaG0A/NwWGdN9+tGoqYGRhsqkpd4ylDwNPGvGKJgHdGqziCnr5uWRquySL++H3Lt+QoGX8=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <6843e4c8-1b72-4b3f-be45-1854051dbd40@amd.com>
Date: Mon, 25 Nov 2024 15:11:18 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/15] x86/hyperlaunch: initial support for hyperlaunch
 device tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-8-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-8-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DC:EE_|PH8PR12MB7157:EE_
X-MS-Office365-Filtering-Correlation-Id: 81d6aae9-8b63-4c69-738f-08dd0d8d5844
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?cE9BQ1l3S3ZqRnRDQityVkw3aThOOWdvUzFjYWQ4bVp2SDkwOFRPSUtDL2ti?=
 =?utf-8?B?cVQ1RWVwckUydmpTMjY4TlExMHd4VGw2SzFtVVhERTFDM3FWNTEyaTNJbjgx?=
 =?utf-8?B?ZEFGN3Z0Y3FDSzJlVU1Pb28yOWphd3E3Nk44Ty9lUXB0Zmk3V3FjN05paG1p?=
 =?utf-8?B?WE9Oc1hXYUU0Y2NwSFQ1VTA0c1lmYlVkOXpERVRkbnJvbHhFdzhFZHNZSzgw?=
 =?utf-8?B?TzdFVWJRQVhpbzAwcVFKd3JQR1AzVG9PNVJLTlQ4RHhGenRaaFNiVzBkdjF4?=
 =?utf-8?B?R1N0VWcvblVLSTFHRC9lS1JZVFRQS2lPZVU3RU1oRVZYR0NjUzQ4YndEcDgr?=
 =?utf-8?B?YmxIdlpBOTJnS1FjTi9TaE15akFlTmo1SklWRlpaZ29kZXpLMS9NY2QxN2d3?=
 =?utf-8?B?b3ljSWFib2REMU8zeGJEa1diMVAwZmw4TFI3L1RJOTE2TDUvR3d6RU1xNVlK?=
 =?utf-8?B?eTc5OGl5NExMMEhaNGJPUno3aFViN3lzU3IraWt0anMzKy9JYVNkdmp6WmxS?=
 =?utf-8?B?SVVNeWtRNEpKZEJNZStpS1VZcmRTZjIrYVd2dEFaemIwQXV4K1VWREh6dUJN?=
 =?utf-8?B?dUtTYWo4M0NnZy9NZkI3UlZSMTBFZUYwa2x5eUd2UW5oV00vZ1FiMUJiNUp2?=
 =?utf-8?B?RWVIRHovZDNEUnRhNW9WU0t1cG5RektRbitsM09VaDFNcXJGWEdTNHVzUGZZ?=
 =?utf-8?B?ZFUyNVpqR1RHUk82VlFGZWtlclJKQ0lVVS94YVl2dUFsMStUaldzQVl2ZElp?=
 =?utf-8?B?eW9BK1ZQWW94cThLTGZvYkJhc3N5QXlUbmtOKzJqanNoVTJIUUUrdVlDL0NG?=
 =?utf-8?B?SEZkWkt1Y1YyVHpLWmF3V1pjYXZkRnk1RWxuenFLaW9TQ1lvN2h3Zlp6MTFS?=
 =?utf-8?B?Tm5sdTZnZVhMMWVUem5PUDY1aFVjUkU5Q2JYMlJhUmorSHZ4RHc4QXRua0hj?=
 =?utf-8?B?R3k2MG91M2dibjRiWU1qWENYVTZRTEZKNm8wMUdPTEdTb2FjaXR6dUc4K05S?=
 =?utf-8?B?SlhFZHZiamwybTlFenA4QXRBcDNtLzM5MW0rS1g2azNaWGNxZGtFNGtNdm8z?=
 =?utf-8?B?cnU4YkpuOExJZ2dDa0NaL2cyd0xaNVdwOUZFVjJ1OVppais4TTdjbW9VY2cr?=
 =?utf-8?B?ZWNtTnV6YWRncGo2aU1wbUFLcUZSZklxMU1BSWsyWWlOU25vQkFXWk5DbEts?=
 =?utf-8?B?aE5ETHRjcjl6bndiREx2WHdvNGlxbTZnQmlvcFl3T1MyU3BwaHU5b0o0VXVF?=
 =?utf-8?B?UjB6RlFONDVtUkdreXNTSXV6UnIyTURscUl1WWpZOE0rMFpBZ2FSWE1YTkNB?=
 =?utf-8?B?R2Y5UENQRW41NkplZFE3ZEl4aXgxcC92cWFXUFdqYzN4cTYwOEVpZU9vZC9u?=
 =?utf-8?B?RS8xRkpSYnNMaDZ5cXdlWjZ4eXUxbnhKa3gxSmQ3MXhkcXJwWk5OU09LQk5u?=
 =?utf-8?B?UlZodGtqL2RIRFpFSy9vK000UGtsdmxyMEZCbDJwa092YjM5MzVMK0xxeTBE?=
 =?utf-8?B?UHNrNTlvN3FnYkxROEU2N0ltR0x2VWtvMzVsT0MvYlNsV1czeEUzeU1ZVlhk?=
 =?utf-8?B?Uk1PdVNWaTl3VFlWQUZuQVk1SmIzTDA2bjdFWTJZTW9sYUdPSUwwMW1LQXpr?=
 =?utf-8?B?blVWVGVoaFZiU2FUTENNaXYxM2FoUFdzQXZFa0ROTkpKeTlZMjJyMlpjV0F6?=
 =?utf-8?B?MXlsUWZ5SEFhbHJHV2xXNlQ3MEwxZ1ZBaTVzaHFPZHpFRUM4Y3M1TXdKM1dh?=
 =?utf-8?B?cjkvMFF5ZDRaK1FoR1NvWFlrclZqdGcwR0FoM1ZXdUszQVVvY0NzSmRNejVv?=
 =?utf-8?B?V2lsWklTck5QNTg1Y3JTcTdPc0xaM1hFTTNkUTZaaTBCREpxTE9NWVg1dEZQ?=
 =?utf-8?B?amRuMmhPa3hDZWMwYmxZWGtBaVI0aXAvTU1vamt0UVllR1JjWHV0dStWdlNk?=
 =?utf-8?Q?wJQ3GD472aAG8UrzUmatYESKeGdi5dm4?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 25 Nov 2024 20:11:27.8230
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 81d6aae9-8b63-4c69-738f-08dd0d8d5844
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=[SATLEXMB04.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: PH8PR12MB7157

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Add the ability to detect both a formal hyperlaunch device tree or a dom0less
> device tree. If the hyperlaunch device tree is found, then count the number of
> domain entries, reporting if more than one is found.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/domain_builder/core.c  | 14 +++++++
>   xen/arch/x86/domain_builder/fdt.c   | 64 ++++++++++++++++++++++++++++-
>   xen/arch/x86/domain_builder/fdt.h   |  5 +++
>   xen/arch/x86/include/asm/bootinfo.h |  1 +
>   4 files changed, 83 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
> index 211359895d84..a80f3711c306 100644
> --- a/xen/arch/x86/domain_builder/core.c
> +++ b/xen/arch/x86/domain_builder/core.c
> @@ -40,7 +40,21 @@ void __init builder_init(struct boot_info *bi)
>                      ret);
>               bi->hyperlaunch_enabled = false;
>           }
> +    }
> +
> +    if ( bi->hyperlaunch_enabled )
> +    {
> +        int ret;
> +
> +        printk(XENLOG_INFO "Hyperlauch configuration:\n");

Hyperlaunch

> +        if ( (ret = walk_hyperlaunch_fdt(bi)) < 0 )
> +        {
> +            printk(XENLOG_INFO "  walk of device tree failed (%d)\n", ret);
> +            bi->hyperlaunch_enabled = false;
> +            return;
> +        }
>   
> +        printk(XENLOG_INFO "  Number of domains: %d\n", bi->nr_domains);
>       }
>   }
>   
> diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
> index 3f9dda8c34c3..ff1ba58b6907 100644
> --- a/xen/arch/x86/domain_builder/fdt.c
> +++ b/xen/arch/x86/domain_builder/fdt.c

> +int __init walk_hyperlaunch_fdt(struct boot_info *bi)
> +{
> +    int ret = 0, hv_node, node;
> +    void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
> +
> +    if ( unlikely(!fdt) )
> +        return -EINVAL;
> +
> +    hv_node = find_hyperlaunch_node(fdt);
> +    if ( hv_node < 0 )
> +    {
> +        ret = hv_node;
> +        goto err_out;
> +    }
> +
> +    fdt_for_each_subnode(node, fdt, hv_node)
> +    {
> +        ret = fdt_node_check_compatible(fdt, node, "xen,domain");
> +        if ( ret == 0 )
> +            bi->nr_domains++;
> +    }
> +
> +    /* Until multi-domain construction is added, throw an error */
> +    if ( !bi->nr_domains || bi->nr_domains > 1 )
> +        printk(XENLOG_ERR "Hyperlaunch only supports dom0 construction\n");

You continue execution - is that intended?  It'll take the next module 
as the kernel and try to boot?  Would you rather panic?

Regards,
Jason

>   
> + err_out:
>       bootstrap_unmap();
>   
>       return ret;


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 20:15:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 20:15:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843116.1258764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFfUG-0007Vu-DP; Mon, 25 Nov 2024 20:15:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843116.1258764; Mon, 25 Nov 2024 20:15: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 1tFfUG-0007Vn-Ai; Mon, 25 Nov 2024 20:15:12 +0000
Received: by outflank-mailman (input) for mailman id 843116;
 Mon, 25 Nov 2024 20:15:11 +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 1tFfUE-0007Vh-WC
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 20:15:11 +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 1tFfUE-0053Cp-1N;
 Mon, 25 Nov 2024 20:15:10 +0000
Received: from [2a02:8012:3a1:0:29f6:ead8:34fc:5066]
 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 1tFfUE-005C1G-0y;
 Mon, 25 Nov 2024 20:15: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>
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=h4A2y/4uBrKZJSLvFzQd2sHwJMlNO5gUQaXoieof/dc=; b=OsTNHTS77ol0KNvH56tNkTPalj
	A7I3H+4TRrtYeWwj585Ok2x6KhbS1ggkr6umP+c0HasdkKNzCZ9CI7L1FvdxqHXSK23Q8xayF220b
	ALfRTV94/TW3NzDsA+VFgxLpeMzjId6apJPcRtWSGXWbiZJnTSUztEp78pioKV+WT6mU=;
Message-ID: <7026ab4b-11b9-4ca1-9d33-581fc46b11e9@xen.org>
Date: Mon, 25 Nov 2024 20:15:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 07/11] Arm32: use new-style entry annotations for
 library code
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: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <658f0a05-742e-44ed-bf3f-bd6bb8c694a7@suse.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <658f0a05-742e-44ed-bf3f-bd6bb8c694a7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

Sorry for the late answer.

On 01/10/2024 16:16, Jan Beulich wrote:
> No functional change, albeit all globals now become hidden, and aliasing
> symbols (__aeabi_{u,}idiv) as well as __memzero lose their function-ness
> and size.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> If the function-ness is important, some new construct would need
> inventing. Not setting size for the aliases may even be desirable, as
> I'm uncertain whether it is really legal in ELF that two entities
> overlap in space.

I can't think of a reason where we would need the "function-ness".

> 
> I fear I'm breaking __memzero(), as I don't understand the purpose of
> the ".word 0" next to where the FUNC_LOCAL() appears.

I am not entirely sure either. AFAIK, "0" is not a valid instruction.

This code was taken from Linux, the history doesn't give much clue 
because it seems the ".word 0" was added before Linux used git.

However, it looks like Linux replace __memzero with memset() 6 years ago 
on arm32. So maybe we should get rid of it? This would at least avoid 
worrying on the purpose of ".word 0".

The rest of the patch looks good to me.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 20:23:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 20:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843128.1258775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFfcN-0000og-73; Mon, 25 Nov 2024 20:23:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843128.1258775; Mon, 25 Nov 2024 20:23: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 1tFfcN-0000oZ-41; Mon, 25 Nov 2024 20:23:35 +0000
Received: by outflank-mailman (input) for mailman id 843128;
 Mon, 25 Nov 2024 20:23: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=caTh=SU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFfcM-0000oT-1U
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 20:23:34 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20628.outbound.protection.outlook.com
 [2a01:111:f403:2412::628])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f01b113-ab6b-11ef-99a3-01e77a169b0f;
 Mon, 25 Nov 2024 21:23:26 +0100 (CET)
Received: from BN8PR04CA0049.namprd04.prod.outlook.com (2603:10b6:408:d4::23)
 by IA0PR12MB7579.namprd12.prod.outlook.com (2603:10b6:208:43c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Mon, 25 Nov
 2024 20:23:17 +0000
Received: from BL02EPF0001A0FB.namprd03.prod.outlook.com
 (2603:10b6:408:d4:cafe::c3) by BN8PR04CA0049.outlook.office365.com
 (2603:10b6:408:d4::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Mon,
 25 Nov 2024 20:23:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A0FB.mail.protection.outlook.com (10.167.242.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Mon, 25 Nov 2024 20:23:17 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 25 Nov
 2024 14:23:16 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 14:23:16 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 14:23: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: 1f01b113-ab6b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjI4IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFmMDFiMTEzLWFiNmItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTY2MjA2LjAyMzkyMSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ui3BaD3lADjIh1VQHtw6YraMhdLf1nGFuT1Cy70vEeL0IyzSRs3mVL545kbrvBAVZPGSCLFuYu2j8b0EIWpsgl54MVtt/ORtgW8SPu7iNVGQE6ZAV3ufumNXT+gi2yYbnbKMwsd+YKGksX4eqR4o08BDBbOwNdBJ1mAZrH2iwqhWZQUhOtIky7fg7/xraohNH7E/zCfIIJQk1lmI57W1h/JZSjps7ObxnDmlsHDMWR+lampRqb2l2R/ne3ZartgMiujXuW4UbWGhPFOGuKMUMrtklusJSXLwmNoQiiNj8nbOUX3NChhMRzgHao6Y7jeHoIq/xfNACjnylHicikS8mw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Z2IBpHKf/FfD+ytFu+hb1KXEoec18VgnUzjoAPbkAns=;
 b=VUlACeoFqCTECbLNctJlUvpkGOAM8LjBfo9h06k6nstlpYrVEmKd9aN9i7DSwAvpjms4xst0IxaA6cPXvgVTRexgoS4dMHQR+J7eVeMjnJ1ih+jFZvtT/XOhQmsWOUTbVFjWjlzHiFKx5vfIeiMsUO39MNyv3NLM0xPbgMi0VosA4Og45THmTzRZ89zIv6vgiZo47d7N1/nXxvLfUhk1CtjNYnFTKq7wjYvtFdLGuLXu+kTijlxcEJ4Jzows06mBOG20he73ZEH4huOgakddOQzFqI9scw0tC61uS2sRUR/F2We4k9nrQifmo2tIv/heFxtD8oCH18P6LzgRgS/4eg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=Z2IBpHKf/FfD+ytFu+hb1KXEoec18VgnUzjoAPbkAns=;
 b=gCZicZoVlVBQRpHQR5e/4DwfUyxzI/oyTfIMLp0pSa2iFtB4DdslG7LspvT8QkAcrHSpboRZLjhDxdIzXppLrv/8Jg0TjVfBXZqftrGnQ5PDoTuzkUQq7uHSrU68BTYSVHa0vZHJPKARPJ/UX8icQCExih7ziJ3olAfoxtvBLxo=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <acce4c7c-f9da-4b89-bfb6-1967f4eae41c@amd.com>
Date: Mon, 25 Nov 2024 15:23:14 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/15] x86/hyperlaunch: introduce the domain builder
From: Jason Andryuk <jason.andryuk@amd.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-7-dpsmith@apertussolutions.com>
 <f8f375d6-2b77-4d76-ac69-89d850ac4733@amd.com>
Content-Language: en-US
In-Reply-To: <f8f375d6-2b77-4d76-ac69-89d850ac4733@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FB:EE_|IA0PR12MB7579:EE_
X-MS-Office365-Filtering-Correlation-Id: 48b70e16-6fbf-4ea3-4456-08dd0d8eff15
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QnlQekFkRis2UTF4UUFrNmVETklmWURaNngyY0RnZzFSMEI0OHp6a1ZCNzdt?=
 =?utf-8?B?SzI3dk1RM1pLcllMMW5zV2NaWXl4RDNvaDQ4dGxjWVlCd3NtY3IwdGN5SWJk?=
 =?utf-8?B?MXhVWFpTZHB4bU9EK01Wd3M3UkZucWxYbWYydGlVYmpGa0VjREU0QnNWYnBi?=
 =?utf-8?B?Q3VZQmVHYUErLzFpMVdwVW9NN21YV2Z3MkF2SG5OcHdvN2puWVhTZ3R1VTUv?=
 =?utf-8?B?SW5tSmx5QjdhL3kyclRVUWw3c2JMSHFsVUVSOVcyMUVwVGVVVXRvTkk2aW5Y?=
 =?utf-8?B?K1hRWno0Yk5vWWpCc0NVN3IyZWN3RWlFS2gvaDdocmpaQmIwZWhOVGFsK0dL?=
 =?utf-8?B?d3IvMGl6QWJBMi8wencvS004QkxRU3g5ZXZJaXNPbnNNZVFuM2pRZVRlL2tx?=
 =?utf-8?B?dzBSRmdnZTFBUHFJM0loSDEzNmhEZkRCdVhaMzUvRkFzd1NaT1JGUVdHV1Zj?=
 =?utf-8?B?S29XZkJmZkZBOUVGSjBuMmJlaEp5OVh5cE5qbFZobTNoYVpWUEkyQWY3Y2xk?=
 =?utf-8?B?UU45bHYrQVBONzBNK0daTDFVU3VOZ0tScUd1UUlEa3ZxOGI1eXh5SDhoOXdY?=
 =?utf-8?B?eEZFV1dKTyt5TlByejJpVWxPWkRyV3ZKdElJQnNuZ3RVSzU4YmZpQjVnSnVV?=
 =?utf-8?B?S1NrOXpEOERHMFJGRzNuODR0QTkybSs5WThBYWxZUlZEbkdsYzFSeEVyYm10?=
 =?utf-8?B?UEdQdHp4WUEzS3M2WTlGcU9LNHJsWmM0ZS9SY2p3MFlGenRTR2JJYW40TUhi?=
 =?utf-8?B?Y3FXTkRLK2xuckhQZWM3eEMzRUExMUQ3UU9sM3VkczlidVNlUUJpQ0g3Uml4?=
 =?utf-8?B?MkJqRTVaamNzRXloNkpZWFkwMkt6VDFsejExdG9ZR3M5RTdxS09mbnlWOE1O?=
 =?utf-8?B?RHBlQ2JFUEkxU21oWnJBeGpkbkJVcXRWOW1ublhxRlNrWEVFMzVhcHNVM2M5?=
 =?utf-8?B?VU5nWjNCS1VHZjduOUlqUDFXVThyT2pCZ1FCdVJpOUkzYW42S1o2Qkc0L0RO?=
 =?utf-8?B?dlg3blkwb3hLeWpTQUQ1eWFmU0I2MHgwbXluSlBwdWxLN09VeXorQ1RqOGlE?=
 =?utf-8?B?WlcrL0I1NmZIcy9yR3RTU2oza2FXL0tQa2tCamlFMlg2UGFHWE1XTWpPdUNU?=
 =?utf-8?B?RE1VVDI4azlja3hnN3pjS292MXVmVlVyclgvT2p4U1hjbVJvVS96Y3RYZVBs?=
 =?utf-8?B?amxHQks1Qk9xRnVRaGRDQU1BN3FVbWI4MXhURmpBd29yUGI1NlFRRXpFTXR6?=
 =?utf-8?B?RXdNTjJoQjgzWnBnU3N4Q3Q1ZmxpYVcrSm9YUjZvcGRDcWVlL2xLVGU1RE8w?=
 =?utf-8?B?R1RtREhEOU8xa2lZazZXZXBNMy9YNFJpejZjbndsTEQyMHFpV3dVZXlQR1Zp?=
 =?utf-8?B?MjdidGFxd21jdmllNGNQaUEyOGNYUkdRN0R0Szk4MU0xNG1sVTFiNFVPaXpi?=
 =?utf-8?B?MUpCdmJuMzZhZk5qaFBGUjVka29mNU11QW1RZElRWTdjUHFrRytKb1FCQXZx?=
 =?utf-8?B?ZEEwYkFER3ZLeGVadEYxdTBzd2l3OS94NEE3RFNTZHBjRk9aOTN2YUNLNkV2?=
 =?utf-8?B?VkI4NXgzd2hCSFIwRHE4MlhBMEd5K0E1ZWJXU203aVdWRFI0aXNIYkUyLzY5?=
 =?utf-8?B?dEFCYXZSUldiQVV1TFNueE9GbnNSMktpYi9OTHltaFRMQ0dldUhNMU9lK0Ux?=
 =?utf-8?B?RFNvNzYreUR0UFpFKzZRa0xUdDZFbEw0akdDZHRXcTNXcTd0Z1Q0YVpyaDUy?=
 =?utf-8?B?ZnIxZkVrbThUNDdXK3B4aGpFSk5YcmI2TE1lcHNKRk4wWkp4OXFGeXZOQjhN?=
 =?utf-8?B?R2MyK1J4Tmo1NDQ4MW9UTk16YUVuWFdBdGJQVWU1RUQ5SC9SR0RPU0FYR1Yz?=
 =?utf-8?B?dVhaZFlET2s4VkpITGk2OWNwd3lEbXE5RWtzNEdGWWJSOUtKbkNVd2hyMmFm?=
 =?utf-8?Q?xnN8RvtTEJ3Ux0Q7El5xLWVjCk3F72pl?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 20:23:17.1954
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 48b70e16-6fbf-4ea3-4456-08dd0d8eff15
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7579

On 2024-11-25 12:52, Jason Andryuk wrote:
> On 2024-11-23 13:20, Daniel P. Smith wrote:
>> +void __init builder_init(struct boot_info *bi)
>> +{
>> +Â Â Â  if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
> 
> ... then this extra level of indent isn't necessary (with an empty 
> static inline builder_init()).
> 
> I guess this way, this small part is compiled even when 
> CONFIG_DOMAIN_BUILDER is disabled.Â  But it's only a piece, so I'm not 
> sure if it's worth it.

Later in the series, I see more code is added here for non-Hyperlaunch. 
Disregard this comment.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 20:25:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 20:25:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843138.1258785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFfdq-0001Or-KG; Mon, 25 Nov 2024 20:25:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843138.1258785; Mon, 25 Nov 2024 20:25: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 1tFfdq-0001Ok-H3; Mon, 25 Nov 2024 20:25:06 +0000
Received: by outflank-mailman (input) for mailman id 843138;
 Mon, 25 Nov 2024 20:25:05 +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 1tFfdp-0001OO-Af
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 20:25:05 +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 1tFfdo-0053ZU-2O;
 Mon, 25 Nov 2024 20:25:05 +0000
Received: from [2a02:8012:3a1:0:29f6:ead8:34fc:5066]
 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 1tFfdo-005gc3-25;
 Mon, 25 Nov 2024 20:25: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=KxUIR/LzK9waCB9D2MJ9wzDUQC3gXKaA5JteXUUVQOE=; b=6/gy3hPZIPmfWTnNIL06Dif838
	TbfScOW5Itt3iB9yXAe0F56qTXZ0CQlfEaWNGhyThIIXPZjsGwG7TosT0ZSghoaUP5wyxkO0j70tc
	nmyFKV8UoLPdFilMEdOk12E5YUAVYafEQWIOVA/5lYNGLzRDnigKMOPtogqrdrZ7+wSA=;
Message-ID: <777d2832-76e2-4d59-88b7-ea9226bf8225@xen.org>
Date: Mon, 25 Nov 2024 20:25:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 09/11] Arm32: use new-style entry annotations for entry
 code
Content-Language: en-GB
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: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <74c761c9-41b1-4397-aec2-95558d53a7cc@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <74c761c9-41b1-4397-aec2-95558d53a7cc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 01/10/2024 16:17, Jan Beulich wrote:
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Should the GLOBAL()s also be replaced?

What would you replace them with?

> ---
> v7: New.
> 
> --- a/xen/arch/arm/arm32/entry.S
> +++ b/xen/arch/arm/arm32/entry.S
> @@ -31,7 +31,7 @@
>    *  r4: Set to a non-zero value if a pending Abort exception took place.
>    *      Otherwise, it will be set to zero.
>    */
> -prepare_context_from_guest:
> +FUNC_LOCAL(prepare_context_from_guest)
>   #ifdef CONFIG_ARM32_HARDEN_BRANCH_PREDICTOR
>           /*
>            * Restore vectors table to the default as it may have been
> @@ -140,7 +140,7 @@ abort_guest_exit_end:
>   
>   skip_check:
>           b   enter_hypervisor_from_guest_preirq
> -ENDPROC(prepare_context_from_guest)
> +END(prepare_context_from_guest)
>   
>           /*
>            * Macro to define a trap entry.
> @@ -362,13 +362,13 @@ trap_irq:
>   trap_fiq:
>           vector fiq
>   
> -return_from_trap:
> +LABEL_LOCAL(return_from_trap)

OOI, why do we need to annotate return_from_trap?

>           /*
>            * Restore the stack pointer from r11. It was saved on exception
>            * entry (see __DEFINE_TRAP_ENTRY).
>            */
>           mov sp, r11
> -ENTRY(return_to_new_vcpu32)
> +LABEL(return_to_new_vcpu32)

I am a bit confused why this is a LABEL rather than a FUNC. But I wonder 
if either of them are corrrect? The code above is meant to fall into 
this one. So I think at least the alignment should be 0.

>           ldr r11, [sp, #UREGS_cpsr]
>           and r11, #PSR_MODE_MASK
>           cmp r11, #PSR_MODE_HYP
> @@ -426,6 +426,7 @@ return_to_hypervisor:
>           clrex
>           eret
>           sb
> +END(return_from_trap)
>   
>   /*
>    * struct vcpu *__context_switch(struct vcpu *prev, struct vcpu *next)
> @@ -435,12 +436,13 @@ return_to_hypervisor:
>    *
>    * Returns prev in r0
>    */
> -ENTRY(__context_switch)
> +FUNC(__context_switch)
>           add     ip, r0, #VCPU_arch_saved_context
>           stmia   ip!, {r4 - sl, fp, sp, lr}      /* Save register state */
>   
>           add     r4, r1, #VCPU_arch_saved_context
>           ldmia   r4, {r4 - sl, fp, sp, pc}       /* Load registers and return */
> +END(__context_switch)
>   
>   /*
>    * Local variables:
> 

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 20:28:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 20:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843150.1258795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFfh7-0001zw-UI; Mon, 25 Nov 2024 20:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843150.1258795; Mon, 25 Nov 2024 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 1tFfh7-0001zp-RE; Mon, 25 Nov 2024 20:28:29 +0000
Received: by outflank-mailman (input) for mailman id 843150;
 Mon, 25 Nov 2024 20:28: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 1tFfh7-0001zj-0S
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 20:28: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 1tFfh6-0053hx-11;
 Mon, 25 Nov 2024 20:28:28 +0000
Received: from [2a02:8012:3a1:0:29f6:ead8:34fc:5066]
 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 1tFfh6-005rcl-1Q;
 Mon, 25 Nov 2024 20:28: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>
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=bOm+C/tBt+jBD83jAEjbj7V9PJAYOkSlFfPfPL1FVXU=; b=dWhAr9b1ovs4T67gGy5Z4ALeNJ
	fMCAmC1o3jgzQF8IyJiA/obmlQKoA27zTIraZw9hLJN/K4bAOHMUmnfa/SZ9kuelmDuA8onvhOl1q
	RLFotd/LSJoqWhLF3/GEjsUI/F8pGaJADJjGuccZeT1ZFpDOEuBfbeLOcUy0BvuawFmg=;
Message-ID: <9acc6647-17a2-4a0d-97c7-85e8e9543e5d@xen.org>
Date: Mon, 25 Nov 2024 20:28:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 10/11] Arm32: use new-style entry annotations in head.S
Content-Language: en-GB
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: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <01eb936e-71f4-43b3-b753-5b8a6ecf5d66@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <01eb936e-71f4-43b3-b753-5b8a6ecf5d66@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 01/10/2024 16:17, Jan Beulich wrote:
> Locally override SYM_PUSH_SECTION() to retain the intended section
> association.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v7: New.
> 
> --- a/xen/arch/arm/arm32/head.S
> +++ b/xen/arch/arm/arm32/head.S
> @@ -48,13 +48,20 @@
>   
>           .section .text.header, "ax", %progbits
>           .arm
> +/*
> + * Code below wants to all live in the section established above.  Annotations
> + * from xen/linkage.h therefore may not switch sections (honoring
> + * CONFIG_CC_SPLIT_SECTIONS).  Override the respective macro.
> + */
> +#undef SYM_PUSH_SECTION
> +#define SYM_PUSH_SECTION(name, attr)

Are you suggesting the code in arch/*/head.S has a latent bug?

The rest lgtm to me pending the clarification.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 20:29:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 20:29:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843157.1258805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFfhx-0002V8-5H; Mon, 25 Nov 2024 20:29:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843157.1258805; Mon, 25 Nov 2024 20: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 1tFfhx-0002V1-2K; Mon, 25 Nov 2024 20:29:21 +0000
Received: by outflank-mailman (input) for mailman id 843157;
 Mon, 25 Nov 2024 20:29:19 +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 1tFfhv-0002Up-M0
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 20:29:19 +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 1tFfhv-0053jF-0S;
 Mon, 25 Nov 2024 20:29:19 +0000
Received: from [2a02:8012:3a1:0:29f6:ead8:34fc:5066]
 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 1tFfhv-005su6-0P;
 Mon, 25 Nov 2024 20: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>
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=p8yEpaQzvk6D4E4fmfvWNzVBA7rXdWZTQvzyyt2cKjI=; b=rMY+0N+R27i18EtP6Jrrgmtn+D
	3uILuDrPwEJVME3AV++sfxqe+vH9VmzNKsPGGhcaFmfmW4MQJYsttuA0Bup3Pub+K8r1SWr+nPdrt
	tmRR4l4hxeS87DdwkDRqm+5Av6REcd8jh4QKKmD8FCs5dgpqeGM5fHhU2IyeFWEYUmgM=;
Message-ID: <b2fcd57a-dd69-4a2f-ac2a-c566605758a1@xen.org>
Date: Mon, 25 Nov 2024 20:29:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 11/11] Arm: purge ENTRY(), ENDPROC(), and ALIGN
Content-Language: en-GB
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: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <07da5e97-42f6-49cc-8309-5ea64e2d3567@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <07da5e97-42f6-49cc-8309-5ea64e2d3567@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 01/10/2024 16:18, Jan Beulich wrote:
> They're no longer used. This also makes it unnecessary to #undef two of
> them in the linker script.
> 
> 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 Nov 25 20:36:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 20:36:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843168.1258815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFfop-0004Fa-Qm; Mon, 25 Nov 2024 20:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843168.1258815; Mon, 25 Nov 2024 20:36: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 1tFfop-0004FT-NO; Mon, 25 Nov 2024 20:36:27 +0000
Received: by outflank-mailman (input) for mailman id 843168;
 Mon, 25 Nov 2024 20:36: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 1tFfoo-0004FG-0O
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 20:36: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 1tFfon-00540G-1O;
 Mon, 25 Nov 2024 20:36:25 +0000
Received: from [2a02:8012:3a1:0:29f6:ead8:34fc:5066]
 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 1tFfon-006IiT-1h;
 Mon, 25 Nov 2024 20:36: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=JI9h7VJ5yAkpw9iwbgmGEitHW5CVD3+jJSjOdNxpL2U=; b=ap6ARBDcjHjJ2FvaX16wDz2JVT
	MkRhtSuY0r98WN2S7JI91yuPY1eSZvM4fTyh0+v8o6Z2ozB5gfAvN/hg+tNyQS/7e1pXsA6wQuRmn
	QRF/q/SJoDFV9mWWnqIzzR/ftAgW2h2lXOdhJVSzCgdPIl9Gc9qjDI6lejUjCMfTaaBM=;
Message-ID: <20d65a5d-dfdc-4622-b066-fc6de705af57@xen.org>
Date: Mon, 25 Nov 2024 20:36:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen: common: add ability to enable stack protector
Content-Language: en-GB
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
 <20241122210719.2572072-2-volodymyr_babchuk@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241122210719.2572072-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

Hi Volodymyr,

On 22/11/2024 21:07, Volodymyr Babchuk wrote:
> diff --git a/xen/include/xen/stack_protector.h b/xen/include/xen/stack_protector.h
> new file mode 100644
> index 0000000000..97f1eb5ac0
> --- /dev/null
> +++ b/xen/include/xen/stack_protector.h
> @@ -0,0 +1,30 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef XEN__STACK_PROTECTOR_H
> +#define XEN__STACK_PROTECTOR_H
> +
> +#ifdef CONFIG_STACKPROTECTOR
> +
> +#ifndef CONFIG_X86
> +extern unsigned long __stack_chk_guard;

Is this variable meant to change after boot? If not, then can you tag it 
with __ro_after_init?

> +#endif
> +
> +/*
> + * This function should be always inlined. Also it should be called
> + * from a function that never returns.
> + */
> +static inline void boot_stack_chk_guard_setup(void)
> +{
> +	__stack_chk_guard = get_random();
> +	if (BITS_PER_LONG == 64)
> +		__stack_chk_guard |= ((unsigned long)get_random()) << 32;
> +}
> +
> +#else
> +
> +static inline void boot_stack_chk_guard_setup(void) {}
> +
> +#endif /* CONFIG_STACKPROTECTOR  */
> +
> +#endif /* XEN__STACK_PROTECTOR_H */
> +

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 22:04:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 22:04:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843183.1258824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFhBX-0007at-DX; Mon, 25 Nov 2024 22:03:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843183.1258824; Mon, 25 Nov 2024 22:03: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 1tFhBX-0007am-Ae; Mon, 25 Nov 2024 22:03:59 +0000
Received: by outflank-mailman (input) for mailman id 843183;
 Mon, 25 Nov 2024 22:03: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 1tFhBW-0007ag-5w
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 22:03: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 1tFhBV-0057FG-2C;
 Mon, 25 Nov 2024 22:03:57 +0000
Received: from [2a02:8012:3a1:0:29f6:ead8:34fc:5066]
 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 1tFhBV-00AFgP-1o;
 Mon, 25 Nov 2024 22:03: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=ZyINfjGWU+EytS1THV9cIC0ENnHYLcE/T7lFtfxkE6M=; b=i419bsRvXHA2S2u4WpZ01iC3LW
	BCcwdDkWsIpeqo8zBNLBLt1PlhWmeNPZLk7K7BEAPt+po/EopXTe2xczBCvyNfsjGRjAPedK+SpuV
	5/YMfR8cujQDwm2khJNoxI9tjIJzM772rrf/lRlQmIVaPTDuhfz91WEzqVFhS1MW8/BM=;
Message-ID: <1b22f358-21c0-4d96-bd37-6336536f88a5@xen.org>
Date: Mon, 25 Nov 2024 22:03:55 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/7] page-alloc: make scrub_one_page() static
Content-Language: en-GB
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <f0307505-8260-4955-86f7-95bc6f31669f@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f0307505-8260-4955-86f7-95bc6f31669f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 25/11/2024 14:30, Jan Beulich wrote:
> Before starting to alter its properties, restrict the function's
> visibility. The only external user is mem-paging, which we can
> accommodate by different means.
> 
> Also move the function up in its source file, so we won't need to
> forward-declare it. Constify its parameter at the same time.
> 
> 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 Nov 25 22:17:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 22:17:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843192.1258835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFhOR-0000pM-IN; Mon, 25 Nov 2024 22:17:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843192.1258835; Mon, 25 Nov 2024 22:17: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 1tFhOR-0000pF-Ea; Mon, 25 Nov 2024 22:17:19 +0000
Received: by outflank-mailman (input) for mailman id 843192;
 Mon, 25 Nov 2024 22:17:18 +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 1tFhOQ-0000p9-2u
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 22:17:18 +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 1tFhOP-0057hM-0S;
 Mon, 25 Nov 2024 22:17:17 +0000
Received: from [2a02:8012:3a1:0:29f6:ead8:34fc:5066]
 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 1tFhOP-00Aqxq-0U;
 Mon, 25 Nov 2024 22:17: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Y1pk54JwOb+OSfEWcov/2hgqR880Ot+FzZRvqMDsQdg=; b=sb5XXg5gY4GAInN1+Zu05kmsL7
	L0MrEy8k/UCK3yIUrhOM1fW6WBbv6EQ+32Gwl70aTip5QvqjUSVoYJ7ciHBJsABrVVTXn9yqxdE9L
	MThsSLOB1ysrCNpQLBbmsCXlciQnx7YQ38t44FvpitDK1oGhKSb5OyimiJKGTzdougqE=;
Message-ID: <70389f10-5706-4fb4-a186-984a9fd52d76@xen.org>
Date: Mon, 25 Nov 2024 22:17:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] mm: allow page scrubbing routine(s) to be arch
 controlled
Content-Language: en-GB
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Bobby Eshleman
 <bobbyeshleman@gmail.com>, Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <49b0a003-3fae-4908-ba63-a1c764293755@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <49b0a003-3fae-4908-ba63-a1c764293755@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 25/11/2024 14:32, Jan Beulich wrote:
> Especially when dealing with large amounts of memory, memset() may not
> be very efficient; this can be bad enough that even for debug builds a
> custom function is warranted. We additionally want to distinguish "hot"
> and "cold" cases (with, as initial heuristic, "hot" being for any
> allocations a domain does for itself, assuming that in all other cases
> the page wouldn't be accessed [again] soon). The goal is for accesses
> of "cold" pages to not disturb caches (albeit finding a good balance
> between this and the higher latency looks to be difficult).
> 
> Keep the default fallback to clear_page_*() in common code; this may
> want to be revisited down the road.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: Re-base.
> v2: New.
> ---
> The choice between hot and cold in scrub_one_page()'s callers is
> certainly up for discussion / improvement.
> 
> --- a/xen/arch/arm/include/asm/page.h
> +++ b/xen/arch/arm/include/asm/page.h
> @@ -144,6 +144,12 @@ extern size_t dcache_line_bytes;
>   
>   #define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
>   
> +#define clear_page_hot  clear_page
> +#define clear_page_cold clear_page
> +
> +#define scrub_page_hot(page) memset(page, SCRUB_BYTE_PATTERN, PAGE_SIZE)
> +#define scrub_page_cold      scrub_page_hot

This block seems to be common between all the arch but x86. Should we 
add an header in asm generic?

The rest looks fine to me.

Cheers,

-- 
Julien Grall


From xen-devel-bounces@lists.xenproject.org Mon Nov 25 23:23:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Nov 2024 23:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843202.1258845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFiQW-0000hq-8q; Mon, 25 Nov 2024 23:23:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843202.1258845; Mon, 25 Nov 2024 23: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 1tFiQW-0000hj-5M; Mon, 25 Nov 2024 23:23:32 +0000
Received: by outflank-mailman (input) for mailman id 843202;
 Mon, 25 Nov 2024 23:23: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=MJiL=SU=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tFiQV-0000hd-Dc
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 23:23:31 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2614::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 462755eb-ab84-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 00:23:27 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7996.eurprd03.prod.outlook.com
 (2603:10a6:20b:43f::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Mon, 25 Nov
 2024 23:23:24 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Mon, 25 Nov 2024
 23:23: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: 462755eb-ab84-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjJlIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjQ2Mjc1NWViLWFiODQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTc3MDA3Ljg3NjAzMiwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JIR68V+R56z1PyadVHUJTtemopaB/G9WQwUednhbwRIgYKkkDUfAELUbTfEoOXRPx//ZrTR+d2Cn3BzfrwK6lI27EyDIAXRtSKln4I8J3NZn1jISZA2Y4qDWXlNhvgHa+DbwfjKHSm3KMdoskMjXCSnADui6fmQTDmQfGWLeDyhGGVyZ5DlNymJOeoMdnsFxiWveRgEVIOEMXA9Hmeq/poqO1a9oISYPBRr1zdhvrWO+b+nlh5dD9icfi2qul+j1hA/gEWmmnCY1bi09rQv8yBPsWdG7hBvwcVTz4IeQvRJyk8m3o6OjE8LR98BbReRYJGEuAmBilhkb/iE4bp/JWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+ypn+xtdaSRVSPn1xCrFQb32fWsefaxuIODkRrFmWc=;
 b=MszWDG1UaIIVw2SpidNGn+BDVW0OCjO3d+0ukuaFczQAd0lqY4dnJGAEDrT+KClOTnr7qypNaFqYqf384TBkvJlc5A9RiVA3HUrI1526pHLWVsxbrU5+rQZa652EHk/HxouI+Luuq9uM0d1rRpO2g7OoRMcRfkTI5+rmqOmGFioj+4kssQQao/O6Gi4qJcCx17rx0HIT3zq91UvyYMVHrJetwlgUM7Y4gDXn6VUxO8czeL5pAb+O+o61pZ3pwn+9tW9TF6k7KiVXNboIq+zsgPYFmL0DdYL7qE+8pgXS0ry64HgyRD3bHIvcyFtDYuvV2a2K0ZHUO7uo3ZTV6awXCw==
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=J+ypn+xtdaSRVSPn1xCrFQb32fWsefaxuIODkRrFmWc=;
 b=JCQkqvqFYR4s2eccYRxmO59+T3QbDtPj7CZoaDgX4YqIZrrtvj+RrstR3sJNn4O9qCdD5dLDMz1MRXz1mE/ARMt9bjFx0nIwtA1wDZv/zCLtorEHoTdk3AE0L7NMZAh6aKLIjlx86rn/7SmwbSZ0caMMWhBP2mDgi4uK0oQN6vRElhUwCZmaqaRPja7jUf3/hLET0o6nvqr/7bssN3bV23vbBdjowkSEdjZhmfStmXR0jhbXCrZDgmTarb6iGf5UYLy8Ewg3x+0ux22E+QXmWjRdSgWz+qMYeX1HFAJ4yMEr1EPTfY85uvaY3UdQjoYBpu0IWW2DjPYo01Hig2HF9w==
From: Volodymyr Babchuk <Volodymyr_Babchuk@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>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Dario Faggioli <dfaggioli@suse.com>, Juergen
 Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH] xen: add libafl-qemu fuzzer support
Thread-Index: AQHbNucXRmUX3Y7lRUGcS7d55ZSXhw==
Date: Mon, 25 Nov 2024 23:23:23 +0000
Message-ID: <87plmikidx.fsf@epam.com>
References: <20241114224636.1942089-1-volodymyr_babchuk@epam.com>
	<alpine.DEB.2.22.394.2411181737570.1160299@ubuntu-linux-20-04-desktop>
	<875xojmexk.fsf@epam.com>
	<alpine.DEB.2.22.394.2411191409140.1160299@ubuntu-linux-20-04-desktop>
	<87iksilod0.fsf@epam.com>
	<alpine.DEB.2.22.394.2411201406060.3516911@ubuntu-linux-20-04-desktop>
	<871pz4kwle.fsf@epam.com>
	<alpine.DEB.2.22.394.2411211637060.3516911@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2411211637060.3516911@ubuntu-linux-20-04-desktop>
	(Stefano Stabellini's message of "Thu, 21 Nov 2024 16:37:10 -0800	(PST)")
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: GV1PR03MB10456:EE_|AM9PR03MB7996:EE_
x-ms-office365-filtering-correlation-id: 53340122-3235-4cc7-175d-08dd0da82866
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?K1bsQtRRwQWbUwE+qMtHBl0PFW5ay8QNLxLy3UdhwOgVXc96YYFSGKc823?=
 =?iso-8859-1?Q?EgV7lphGIU9zBFMgyePa+78ZfwcE3dLP5lSHcXPPPHaz6oQp+Lzc00Z2Uy?=
 =?iso-8859-1?Q?XNcngX+Y6QXowtOCd4gfvtsBclzaaNXCaojj7ajCs6IpY51xCzNumP4mbK?=
 =?iso-8859-1?Q?I6FWXr2lSiCyXuvyJtzdt7KkScypBmovdFHDkgVVBDQjW2KxElRyoh1YBR?=
 =?iso-8859-1?Q?rtd2xcaRiagPi2IzZkjposgUMczk7HFZSYw02JWv/mwk2thKnvE3IdTmHM?=
 =?iso-8859-1?Q?0ywPvewGM3Ds1iSNeGI7R9iEes7Rq4gIBakw2c5BU0vIuiBB510PtkwhQ1?=
 =?iso-8859-1?Q?vJ8bILVcn6Co4MRKqd3RXmdjQZ65At4jZUr4ceXaULcibiiWO4uXi44orr?=
 =?iso-8859-1?Q?RmJtgDdodTub+Mu0XDLiNpDCnM07vekbRXbgDshbOlPvExK+ZPtPoMPN/B?=
 =?iso-8859-1?Q?DGXgudDhhssltsXObuK7b0AD9TE0TLV6o52HIKPoUcvFMqivsxWuJiDsQL?=
 =?iso-8859-1?Q?wX7gyBxZ4G3NNy3qe7O2Y5z08KghxmMua1TzfZq1wKUt5uGv2DEmaOp9cR?=
 =?iso-8859-1?Q?lDeuTIWoo/ciN7Td1Sw6YJs6+ljW70I4SU844zD2+x6/vb34anFqFPGayp?=
 =?iso-8859-1?Q?wHn/rz7qafyXjtBbcoV/vNnkhT1SD2xt4FvZC5ljTOS5303OaWCOy2N8p3?=
 =?iso-8859-1?Q?K3tx4ppodUmGQIdF102bCLiK2A4KlPwFCW3y4ynUjEpORnNx4Of8Ah8Qzk?=
 =?iso-8859-1?Q?SxnwJhC4PiXyDtSR3E+8gO0EBE0xt6hOL5ViG/tfQecv1dv5i7/MpcyZRc?=
 =?iso-8859-1?Q?9XYsXIgp24Dgo85p2IvjoZYkCrPKTwxl7r7PeTwwKVddIAICnn/2orHpHn?=
 =?iso-8859-1?Q?Z5JzPqpIjgAcogsfJLOafi3kBN89SYVKUDDeVBnrmSFDgdVmXgtrIcs3ln?=
 =?iso-8859-1?Q?+MBURedUyFWseoywIf+rrcfiKZZaZ1peCdOW6DuFhgFSI7vJ+yYNTeR/74?=
 =?iso-8859-1?Q?Y040B/BtZLBOtMED1cmBDqv0KAzRQtf/bFhnS4OMkrrc6X/Sp4gVwyultZ?=
 =?iso-8859-1?Q?UumElzc6yCuEwoEKWxni3l+UjUosqgJcdCQqttP3x2lh6EQ0JV8Uclpuvy?=
 =?iso-8859-1?Q?mh0VYD/bUNnooe6e1xtaQBdXo/p7XdYywm0IOjqpu3UirfZqfQxjQ7UN19?=
 =?iso-8859-1?Q?jkmuEoOWoSbyQB3aLNYm3k1+hER2xEIjX7a9B9M7IvM3MALMsCj3bas2c5?=
 =?iso-8859-1?Q?HuN+trD/5cp3jOnQzqF2KQkHlRAN0jvgciOqPEHvpztmvhVvKktaTPcOVm?=
 =?iso-8859-1?Q?90hzALpskFCZZtkIkKRYvxkuNxLjeAUa4gdvERLr8wmKL5TBav/BkAASVt?=
 =?iso-8859-1?Q?xhzIZbx4SgY8UXTN79PSR4AuOZCDjN+GeSxv/OuXnW3E05qcO7Djc=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?rMI1bafEil7Z7o6lDKDF/olrHDPLGTvxKjU3ZLwAvKZSNORMtdwVIS01aO?=
 =?iso-8859-1?Q?phUDPbU83sxTSiasCrt8bVqWijY0qoONu+m73yCIgYwrs3iLwMPgWKDrTX?=
 =?iso-8859-1?Q?qAYOIIKGtgGgvoVWRfjsIXtXuaaLjS+Xvr88nHI4uDC8jVLrxGSno2YHkj?=
 =?iso-8859-1?Q?gvLvlZOZkaoCSptPnAU9s7icDssBpJYi7uDQdVkoOJYUsQ9tO62YHUBnlx?=
 =?iso-8859-1?Q?mi4YJqzODvaoQjFGQauMpOAQ3D4iTNxyb8Udlx5r1dogzh6Nvkfg7OSypH?=
 =?iso-8859-1?Q?PcU/oO5+6fPc06NcK55sTEzGhFRg2A7g7P1RGuCfdNFuSaMolh15Hn2Ome?=
 =?iso-8859-1?Q?R80dnduFVE+/gVKS80fr8jKwUBNS2kIkHs+vxFILwS5kWeptY4U6/7JOWv?=
 =?iso-8859-1?Q?3KMkFvW8WY1GVi+DX3s0RXlCAQ7jKO5gLgpeiLvmXTKATn17uDVzM9jB8B?=
 =?iso-8859-1?Q?HFB+5bGlJQi6hoCHhz7WyEeX5X3FaJ6jCsWY1CP/NNuVwMhozkxJ95SilQ?=
 =?iso-8859-1?Q?sueDeFb/3IPTZWIKNfXWAGPcaPSW3zEPYGqPRY4mlcbo48vrQWR1AbuT+j?=
 =?iso-8859-1?Q?vGuZ2xEV8t7TfE42Imz1crkXx7ezB6XCdurcqoCWK0jyso1WncK2WIpCjg?=
 =?iso-8859-1?Q?eg4IzQFSsn3RZiACrmNbntRM/oAuS4B+r9dmvIIctcKHXBdoJvjkF/ZnSp?=
 =?iso-8859-1?Q?lfNPJqG9oSISkbJaavmjgVx7idByFY2+P7ngKmy39E45rRE3qowF4lj+Ja?=
 =?iso-8859-1?Q?77FXx24VrVCWyDdRTFHopty17eBhszFIxCGVeitk7ROQuVui22OMVtYc3Z?=
 =?iso-8859-1?Q?BAxbBs/pg9AsrxnckOlTKbPz5meoc8/KfPqk0J6gg/H3nw8vLPZi3lMR96?=
 =?iso-8859-1?Q?07HgHUKWmoSvl1QEpE6oBwHZToeo0qGkA+EhIgkNYmeA2ELji14EVIxDco?=
 =?iso-8859-1?Q?5yKnytBTInrwl4ICjBnEBASnWD3PiTDjCWQrdxPO5Opvnn2yE1MtDVU6r2?=
 =?iso-8859-1?Q?zEUoGBHPB8rjwNp1KS/AtaRpQtSuGnzIrgOpOSr86eeDvK1RYVP4zM2323?=
 =?iso-8859-1?Q?FgS1ZaUsGbJ6+D58qLkfKBMfPG9XiNbdInPU0xyoRcuIg08S7gvEqpFNYx?=
 =?iso-8859-1?Q?KrDl27aUEbXgyfHZq02HTMyC2Jfqfg6xgDSxisaxFFgo/OJN6cwJyhibws?=
 =?iso-8859-1?Q?MwcasjwuPWKIvBRxzh2TRDtAxrV+TO4cVpnlfVQ2DctT11aXGt+10VrJNe?=
 =?iso-8859-1?Q?a/ocz+NM3xsdIK7atf2LMbyjPTarbswbEe6tR/FI51ZPf/RW819RFf7qQy?=
 =?iso-8859-1?Q?M/Tvc45Oj8NgxGVnN62p6/4D5ec8VfiRPZme4U/6+F0QF1S7BroIAEuWz2?=
 =?iso-8859-1?Q?XeOQeJ7zQFYI4G94jTFGXRAJxE0eXV7R4OQ7El7F9ihSJ+KlcH7RJWXoU1?=
 =?iso-8859-1?Q?hDQF6KUCioRK25otLm9dpCIW5MxwihjN6RGGUfU1pxlsYz7vRTTJDpCLwV?=
 =?iso-8859-1?Q?FvZZwCn1a/7EmpmqxIcetCOsV+L8nspzQiyRJJzwAiPxGCKa6DYDewzj0A?=
 =?iso-8859-1?Q?eafin/8nMWWfUzAaJ6ABrWELJZ7/XdAqG3f/nBcoxh+wnPZvjKFBpTs26Q?=
 =?iso-8859-1?Q?oqa9AYKxiEaonwmgaizVvlnltNBcNBMT9sILfjWyo5z0+Bz1ebhWg5ug?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 53340122-3235-4cc7-175d-08dd0da82866
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2024 23:23:23.9653
 (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: Ek5aAGtMh1tAuQRtS6UyhVJNZxZP61eJoucGwwBYvaTxvtR+9xs0CJY8ucbKFmjY9saXXQRXnQ0qzupLzV18uth6jzD8ikOXd4TWNdBm0Nc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7996

Hello Stefano,

Stefano Stabellini <sstabellini@kernel.org> writes:

> On Thu, 21 Nov 2024, Volodymyr Babchuk wrote:
>> Hi Stefano,
>>
>> Stefano Stabellini <sstabellini@kernel.org> writes:
>>
>> > On Wed, 20 Nov 2024, Volodymyr Babchuk wrote:
>> >> Hi Stefano,
>> >>
>> >> (sorry, hit wrong Reply-To option, re-sending for wider audience)
>> >>
>> >> Stefano Stabellini <sstabellini@kernel.org> writes:
>> >>
>> >> > On Tue, 19 Nov 2024, Volodymyr Babchuk wrote:
>> >> >> Hi Stefano,
>> >> >>
>> >> >> Stefano Stabellini <sstabellini@kernel.org> writes:
>> >> >>
>>
>> [...]
>>
>> >> >>
>> >> >> I was considering this as well. Problem is that fuzzing should be
>> >> >> running for a prolonged periods of time. There is no clear consens=
us on
>> >> >> "how long", but most widely accepted time period is 24 hours. So l=
ooks
>> >> >> like it should be something like "nightly build" task. Fuzzer code
>> >> >> needs to be extended to support some runtime restriction, because =
right
>> >> >> now it runs indefinitely, until user stops it.
>> >> >
>> >> > We can let it run for 48 hours continuously every weekend using the
>> >> > Gitlab runners
>> >>
>> >> Great idea. Anyways, I need to add option to limit runtime to the fuz=
zer
>> >> and invent some method for reporting discovered crashes to the CI fir=
st.
>> >>
>> >> >
>> >> >> I am certainly going to implement this, but this is a separate top=
ic,
>> >> >> because it quires changes in the fuzzer app. Speaking on which... =
Right
>> >> >> now both fuzzer and test harness reside in our github repo, as you
>> >> >> noticed. I believe it is better to host it on xenbits as an offici=
al
>> >> >> part of the Xen Project.
>> >> >
>> >> > Yes we can create repos under gitlab.com/xen-project for this, mayb=
e a
>> >> > new subgroup gitlab.com/xen-project/fuzzer
>> >>
>> >> Good. Whom should I ask to do this?
>> >
>> > I created gitlab.com/xen-project/fuzzer as an empty group. What
>> > repositories do you need under it?
>>
>> Right now it is only the fuzzer itself
>> (https://github.com/xen-troops/xen-fuzzer-rs). If
>> we are going to use
>> XTF then we don't need additional repo for the the harness.
>
> Please see:
> https://gitlab.com/xen-project/fuzzer/xen-fuzzer

Thank you!

> Before pushing the master of
> https://github.com/xen-troops/xen-fuzzer-rs
> to
> https://gitlab.com/xen-project/fuzzer/xen-fuzzer,
> we need to make
> sure that an appropriate Open Source license is clearly specified for
> the project either with a top level COPYING file, or with an SPDX tag on
> top of each source file, or both. MIT is a good candidate as LibAFL is
> dual licensed as MIT.

Sure. I added COPYING with MIT license.

--
WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 00:36:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 00:36:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843216.1258855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFjYo-0001GS-OT; Tue, 26 Nov 2024 00:36:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843216.1258855; Tue, 26 Nov 2024 00:36: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 1tFjYo-0001GL-LC; Tue, 26 Nov 2024 00:36:10 +0000
Received: by outflank-mailman (input) for mailman id 843216;
 Tue, 26 Nov 2024 00:36: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFjYn-0001Ft-9O
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 00:36:09 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061a.outbound.protection.outlook.com
 [2a01:111:f403:200a::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 67e385b3-ab8e-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 01:36:00 +0100 (CET)
Received: from BN1PR12CA0013.namprd12.prod.outlook.com (2603:10b6:408:e1::18)
 by DS7PR12MB5717.namprd12.prod.outlook.com (2603:10b6:8:70::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 00:35:51 +0000
Received: from BL02EPF0001A108.namprd05.prod.outlook.com
 (2603:10b6:408:e1:cafe::a7) by BN1PR12CA0013.outlook.office365.com
 (2603:10b6:408:e1::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Tue,
 26 Nov 2024 00:35:51 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A108.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 00:35:51 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Mon, 25 Nov
 2024 18:35:50 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 18:35:50 -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: 67e385b3-ab8e-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjFhIiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjY3ZTM4NWIzLWFiOGUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTgxMzYwLjQ2OTE0LCJzZW5kZXIiOiJqYXNvbi5hbmRyeXVrQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d/RgejOrOcO7a6JoRx6mnkFbvNyUvndsxiBJfL32ApAi/3RmqWLFdOdaxbRXczj6ALk4EtVgsSVBBJLyeDYkbHiV3bUE4MRxTLAVHBeKzKpLffjJMS2F0MRtHNuEsKDvVmDPF4jH9GbtLOe10knZ5WJ4Nemr8srUBcRrYUyn7Qqogs/pOD4WjYwycmnqLEacvnhZJ3HUCkSQ6Se61JLtNW82BfwbAN3x4/NJ7f/KKI2KKVEiLxhNp2uAb1SKw95m3pTjh/JXBV8u6mtdJtGBUaiaiiSxEBkOpRdqhjvJcRG8W/Pt/oPXH/eMrmpXUF4WPzHh4uyQjvKqo77Eh7xTVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lIKEUq1ELeWIZJcSQKrc2rPPYKcO9OvXXkFaJHCJ0ZQ=;
 b=MTSnv7mblCKKle5ANa2T4QB+BbpFglbDpDApZF9wD8PXTJ1slT1odnC/YjWke4GYQQkNiaa7rdqcBHMzDsBdJKOIJi7mrof+u2khCM4iVQFhkU7EW7kKKWVEfalK8VG+8E3owxBL7gjxFJz3vYpQgzbutwS5Rr1tVdgBK3Fs68byd00O+GakgtUfpROg1Bw2+pLI6O631M42pWhvuiaw1azkYcB6ECx5o0Qp2Czs082d6X1tLGNfa/fKQanZopn0vJ5fbKCbF5NExz7gD/DV+gn0LUlZfIKyyLX3EdYWHrTKiXqM8hhxS0GeMElnw3/m25M11X7670JisPU2fXTJHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=lIKEUq1ELeWIZJcSQKrc2rPPYKcO9OvXXkFaJHCJ0ZQ=;
 b=X/6aUlSL1rQkxMPI6khjTLO3ggTesW4nKxB/gbIwCmSE4nuXPWoxA009SejYpAbI+Qe0Trgh9lZvZqdPQgORs2aCp3bVdBXBwfjlQwSgJBhUzCaWEspfkgFxp9r/QjC1dG9EicJ03eJD0tIZDdSxHBIi57p+HSL5udgQ/aEJzIs=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <eb6812c4-fde1-408c-87eb-138a6d5f981c@amd.com>
Date: Mon, 25 Nov 2024 17:54:08 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/15] x86/hyperlaunch: locate dom0 kernel with
 hyperlaunch
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-9-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-9-dpsmith@apertussolutions.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: BL02EPF0001A108:EE_|DS7PR12MB5717:EE_
X-MS-Office365-Filtering-Correlation-Id: 02b8667f-2fa7-4602-84d7-08dd0db247a4
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?UUlvRzVDTUJoZ09EaHJQVmlxZ2traldmcUxYM0Q3Wm5ieU5YcmZwUFlXUWNN?=
 =?utf-8?B?TzlSSkhkMVhOOWZkVG1CV2UyOHBTU1BkZkpiUTVoYUlnSDNxcUVvejJ2TzFM?=
 =?utf-8?B?VkZldEdPZE02eXRQVmhnR1dvMlJtSld4M3UvcjM1VnBkcG80MTFHcVo4OW8x?=
 =?utf-8?B?SmRzSkMrTGdoNG5lM2JDM0ZORzZkZzYrVXFXOW1ucWY3QVJ6YzE3YnkrUERV?=
 =?utf-8?B?M09vbm1HL0V1bmxYOUwrSXRNbUxXYlVrOEJwMkNUSXI0SSsxbGJYYUR1cEZR?=
 =?utf-8?B?cEJ3Y3RUWmFwL0kwWWF2RkxrNWcvV29TdittNXNuQmpmMDd1cmZlckRIUkRK?=
 =?utf-8?B?RlFaUUlMM1FTVndJWUNkSDF1ck5QRnpTeWFRS3RqNW9ob3dPcmNRdDBDNG51?=
 =?utf-8?B?dmFFVVB6NUVrNFhLdThBTHdXYzh1bjBlS0hlbXplYzB1ZHEySjFsTExFMFlR?=
 =?utf-8?B?UTJvcjc0WXgwSG1mSDBUUjVGNExxcStTemora3ZueEhFeEsvNStxM0c4Z1cw?=
 =?utf-8?B?QU8yY29NSmk3Q0NuQkROeDNwN0JkMURhajlVbmtUUDFUODFCWnhBTm9yQWVi?=
 =?utf-8?B?T2ZKSm0zT2lXazVVWHRxZGl6K1pBSGF6d0pEamdDNGpJM1hZNjhhVnNTY2Iz?=
 =?utf-8?B?Z204WHFySzArQktLZU8wSFJkR3R0Z29oRHRBbFJpOTFXMG1RTDc4K2NVUktB?=
 =?utf-8?B?SXNjNnM3YTRiVmNhZ05QSUFwYTM4S0tpM3hmd25sU3Ric1h0MUpBV21RTklE?=
 =?utf-8?B?aTNQSHlPRUwwN0hta2FzWVRjNm1FQ0pUeUk0dER5MHlZWlNoU2FiVzFVZzAr?=
 =?utf-8?B?eXd6STFoODVkYkhsK1ZwZm5lMVB4dmpTYjNrTDhFOFB5M3k5dzZvY1laeFNQ?=
 =?utf-8?B?dlhQbjg5OVNUUnZsUCsvWmlLUXBTeDNNZTZCcUU4ak1WcVFCdzVwakpCZk4x?=
 =?utf-8?B?VHVjSE92cHJQTWNqUmdmSGxia3A1b1hEcTVvSVlSMStVYWIwcEtIY0lUbmdE?=
 =?utf-8?B?VzV0UlV6cWJCVFlrTk1MdWNIbnVWcForZWVlSTZsanNzU2ZmUHFJcVkyRFNm?=
 =?utf-8?B?VzJXY0RCNGNDbmxTalcvNVZNb0s2Q0plNm5EQzdhUnBCNjg1VC9GNmszaWlv?=
 =?utf-8?B?aE5YTy9nN1NUSUI0ekJRbkxLS3grMlVmTzJyUEkxSWkrVHBGYjU5NU1lR3JM?=
 =?utf-8?B?WmN2bktKd05vcDBjUmRCRXpMTVdVMmFQOGlwdFhJRTM2YUhLMEVHUHAzUHQ2?=
 =?utf-8?B?dStJOTh1M2ZNS3ZjWFJvL1pXOERPcVVPaHBhWVdld1Vmb0psYVNwTUxSM0VK?=
 =?utf-8?B?N01Ca3lFZENPOUlRbHo2QWtBQUdreGRubC9oeHNqWTF6RWJFeTR4b3cxVjQ4?=
 =?utf-8?B?RWRDODExUDNzTnF4WlBpcGl6cWdGSVE2cEEwaldzV3JhdVRnZ2dzeWZrRlJz?=
 =?utf-8?B?QUhTZ1pJMmZTRERKUCs4dldzWXFtcUZHbE4yc094MnJ5cU1qMzN5MitsVXJk?=
 =?utf-8?B?dG1PY3B3alJaT1ByRW9vNUdQM29sQm0zMVowRGdHY3g5cTMwZGM0V00xUnYw?=
 =?utf-8?B?c0ZZZXA4eE9CQzA3NVo2RHRGOFB0OEUyRFczR0g1b0g4WDdmNGJqSjJ0UUpS?=
 =?utf-8?B?RFRPV2g3aFpIUTFncnJEL01QRE5ndVZBZStsUWhHSDVTN2czdWsrNnZzWjAy?=
 =?utf-8?B?SWliT3ZKRm5MWmpxcHh4eTIyM2dTQ2ZISFIzUlJwMnFPeUYxU0hwQ1ZtWFpE?=
 =?utf-8?B?K3ZXaTFjRURwdndtL2NLcDVDRXRnVkdsZmFDVThxaHNKK21LN2pHVnF5eXpn?=
 =?utf-8?B?Vm9PSVhkM0pEWDJ3aTFSTmZwSFJqN21CcDk4QmtTRXJKK09ZMUtVWkhWQlJi?=
 =?utf-8?B?Z1UyV1JoQklZbE5IbVd6WVJrVUxRdHkyZTRGZ0d0bXl3bGNkdzZDL3hrM3Vx?=
 =?utf-8?Q?22USaed9QGH8yCjivi5115aSGuieQWes?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 26 Nov 2024 00:35:51.3157
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 02b8667f-2fa7-4602-84d7-08dd0db247a4
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A108.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5717

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Look for a subnode of type `multiboot,kernel` within a domain node. If found,
> process the reg property for the MB1 module index. If the bootargs property is
> present and there was not an MB1 string, then use the command line from the
> device tree definition.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

> diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
> index a80f3711c306..9335f3a9ebef 100644
> --- a/xen/arch/x86/domain_builder/core.c
> +++ b/xen/arch/x86/domain_builder/core.c
> @@ -56,6 +56,18 @@ void __init builder_init(struct boot_info *bi)
>   
>           printk(XENLOG_INFO "  Number of domains: %d\n", bi->nr_domains);
>       }
> +    else
> +    {
> +        int i;
> +
> +        /* Find first unknown boot module to use as Dom0 kernel */
> +        printk("Falling back to using first boot module as dom0\n");
> +        i = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> +        bi->mods[i].type = BOOTMOD_KERNEL;
> +        bi->domains[0].kernel = &bi->mods[i];
> +        bi->nr_domains = 1;
> +    }
> +

extra newline.

>   }
>   
>   /*
> diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
> index ff1ba58b6907..6bf1c4a297fe 100644
> --- a/xen/arch/x86/domain_builder/fdt.c
> +++ b/xen/arch/x86/domain_builder/fdt.c

> +static int __init process_domain_node(
> +    struct boot_info *bi, void *fdt, int dom_node)
> +{
> +    int node;
> +    struct boot_domain *bd = &bi->domains[bi->nr_domains];
> +    const char *name = fdt_get_name(fdt, dom_node, NULL);

const char *name = fdt_get_name(fdt, dom_node, NULL) ?: "unknown";

to avoid...

> +    int address_size = fdt_address_cells(fdt, dom_node);
> +    int size_size = fdt_size_cells(fdt, dom_node);
> +
> +    if ( address_size < 0 || size_size < 0 )
> +    {
> +        printk("  failed processing #address or #size for domain %s)\n",
> +               name == NULL ? "unknown" : name);

...all this duplication in the following patches.

> +        return -EINVAL;
> +    }
> +
> +    fdt_for_each_subnode(node, fdt, dom_node)
> +    {
> +        if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )

I thought you were going to use "module,kernel" and "module,index" as 
u32s for multiboot2?

Regards,
Jason

> +        {
> +            int idx = dom0less_module_node(fdt, node, size_size, address_size);
> +            if ( idx < 0 )
> +            {
> +                printk("  failed processing kernel module for domain %s)\n",
> +                       name == NULL ? "unknown" : name);
> +                return idx;
> +            }
> +
> +            if ( idx > bi->nr_modules )
> +            {
> +                printk("  invalid kernel module index for domain node (%d)\n",
> +                       bi->nr_domains);
> +                return -EINVAL;
> +            }
> +
> +            printk("  kernel: boot module %d\n", idx);
> +            bi->mods[idx].type = BOOTMOD_KERNEL;
> +            bd->kernel = &bi->mods[idx];
> +        }
> +    }
> +
> +    if ( !bd->kernel )
> +    {
> +        printk(XENLOG_ERR "ERR: no kernel assigned to domain\n");
> +        return -EFAULT;
> +    }
> +
> +    return 0;
> +}
> +
>   static int __init find_hyperlaunch_node(void *fdt)
>   {
>       int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 00:54:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 00:54:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843226.1258865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFjqU-00043t-46; Tue, 26 Nov 2024 00:54:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843226.1258865; Tue, 26 Nov 2024 00:54: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 1tFjqU-00043m-1N; Tue, 26 Nov 2024 00:54:26 +0000
Received: by outflank-mailman (input) for mailman id 843226;
 Tue, 26 Nov 2024 00:54: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFjqS-00043g-GY
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 00:54:24 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20629.outbound.protection.outlook.com
 [2a01:111:f403:200a::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5f01b65-ab90-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 01:54:16 +0100 (CET)
Received: from CH0PR04CA0038.namprd04.prod.outlook.com (2603:10b6:610:77::13)
 by DS0PR12MB6439.namprd12.prod.outlook.com (2603:10b6:8:c9::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8182.19; Tue, 26 Nov 2024 00:54:08 +0000
Received: from CH3PEPF0000000F.namprd04.prod.outlook.com
 (2603:10b6:610:77:cafe::3a) by CH0PR04CA0038.outlook.office365.com
 (2603:10b6:610:77::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Tue,
 26 Nov 2024 00:54:08 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 00:54:08 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 25 Nov
 2024 18:54:08 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 18:54:07 -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: f5f01b65-ab90-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjI5IiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImY1ZjAxYjY1LWFiOTAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTgyNDU2LjQzOTE0OSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S98IAb8s77rrsU69amP2A1Qumla6FbP7/yDbywqSlFbVHuDnz/LYmkNoCNaDpBcjYmBLrw6yHGWtLsTM2E0+dYfEZ3egCNdKHWXBUID2FW/GrcoYfFi2COY0iaz3eu/EwhTpmtMgKrhHQ+deoiGvdPDy7HYPyeVa9d/1PidGR/bRc1Gu9B2BYNzhEbWrdke15/HsgVMorWP+QJKHhb9YdgQiXYVnH5qdkWkx8ONZqKz4IJQ+x59WEXRlYh2+dB2PyR1qW8N0+3O369uqN5Ktkc0rzqqCeaeEDtnTxsCQoNh75xPuOhy0FXiOcepG7qGuUiieL1RyZ79tzA3BUNYEJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mHRqSmZ63PNFzToCaS6V3geseK8g2UrZqo9L4RjURac=;
 b=ixQs6TARl5aqLuvVwG4A4MBGV+iYM+zaztyCwoH1XFfeMJNDwi9Q9w+/R4mWEQkKJltbmBrVn+daSS5+C2UFfQcuOJf6jgInO8dd8QsTe9DShmvzjYUeTDRw/53FpxBWoPLAQUVb6NDc1+gjy56wrtuHDl3bKciYyJc2tgHDqidrUZZc0IpqlXkqqMvei+xMCnTpyOvYAQNREaO7KsepbPdUPeNKESFhqVFmVYUDTSUOL8Pyi4i3BfEENLErsvJfNl/uGilnEalYV8l8ZF5oScLtwcKINXMlxJk4ajvByMfqt+oHNHXVIxd4Zt1CCVBy6mUK2W4b87esXbikn4GYZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=mHRqSmZ63PNFzToCaS6V3geseK8g2UrZqo9L4RjURac=;
 b=nQw7tbNLQXRSbeVyF70xUvqIFi/5TbqVI0mRcRJ9sBokpB7cfWLk9TDJJEqPX/P2ooVdYY2vgAKjgBlcbp0AeblmC5KVgyGhwMw+vRm47uZZYwBE3yNbylLmAPOMEcShkWBpV61gSrUYPYYvxngMjQA2B4lSFP60XugntSDqil0=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <b5799558-c9fd-4e45-819e-15157e4451fe@amd.com>
Date: Mon, 25 Nov 2024 18:12:26 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/15] x86/hyperlaunch: obtain cmdline from device tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-10-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-10-dpsmith@apertussolutions.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: CH3PEPF0000000F:EE_|DS0PR12MB6439:EE_
X-MS-Office365-Filtering-Correlation-Id: 61e3a2f5-333c-4444-9aa4-08dd0db4d5a9
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?MWgzTG4vbXN4alFHek0zOUFuRFZ3L2FtdDU3SW1naGJtNi9jL2pGVXlaMmha?=
 =?utf-8?B?SnUzUkFPRzJWRW82NmZvVlc4WUkyek5VbmtCU09wMXhiZTBxZVo0bENQVFhT?=
 =?utf-8?B?UWtVamdpeDJ1OTJYb3VDdXZoTUp3aW9xbzRheWpLcHhOQ2tOamZBTVNRanpn?=
 =?utf-8?B?RFA1aTY4cWw1azBRdnJWcGs2czVONEtmYzNxcGVlYmdBZzhTNmhORFV3cjJK?=
 =?utf-8?B?VTNMMzBQU2VBbk1YQkVGbitFTDh3ZnN4RG90K0IxcnlyQXFoMmdTNHNnZ2Rt?=
 =?utf-8?B?aHlHLzdiVHIwSE9wYWYxYU5XM1VMbDg3Tzc1QnNEaUFRTEZXT005NmpWd0xZ?=
 =?utf-8?B?Mll2blVjUHp2cGNoZlZwNG5KbWpmQlZEUG4xakZFNzRtRVpzWDhQMWE5M0lH?=
 =?utf-8?B?d09IRDBIVW1VWGthM2owV1ZvRGUxV3M5Wi80eXJ5L3JKSGRiQkVEaWEzZHlP?=
 =?utf-8?B?WG5MWjZxR1E4ZEl1VTYvdkYxLzJScG5CS3pQNlBiRDJQaGRjUEhwandQQmEw?=
 =?utf-8?B?TFZOc2RWc0p6YVdPRWZqd2lTeDF0amNHYlFFWHFhamJWZUplMmFmcTFva2k4?=
 =?utf-8?B?VGxGZW1iVEhER3Z1TUUwNUNIcTRDdmVCU0ZZRGg4MlhPcE5rcjgwUzFXb3Na?=
 =?utf-8?B?eVJVc2NJSmRrTUFmbDhFdE1PUGtza2lWMFBVUm1OcDk2WVBiT1pMSHhGYVRx?=
 =?utf-8?B?Wkx2SURCT1VHTFAvZ2hzM05oUDZ6Vy82YTlUa1dWeG5sOEZvRXgvOGNWaCtp?=
 =?utf-8?B?OStRSjVhM2t1bStqTVUxbzNiRllhaFFMdFhSY1I1b2N3cnNmK2ZFR0ovblJl?=
 =?utf-8?B?OTJ4cENZU25LR1RDcDVGK0pUOVlYeDhjSm5neHFFYk9ldkRtSzJjSVBTM0pi?=
 =?utf-8?B?dkZiNTZjQTYrc2dVeW02Rjg5ZDcrdXo0NVozMnpJQmFtZVJhMnJQZEpnSGdi?=
 =?utf-8?B?d21nWWNhY1NQNGMydzBuRUdsdkMvc0RvWWRVVkIzTGhPTGtvZUlmZWMrNEFD?=
 =?utf-8?B?MjVhMzVGbjRZUE12NE9GTWVYNkdZelpQT3k5TFJQbUlpVllMSWZSSFdsYW5W?=
 =?utf-8?B?UXV6UDVvZ1MxZ09qZDQ4Z21ydFZwbFlsdkNNemx4YVpTZk5xYUluOFBqZlpq?=
 =?utf-8?B?MjVyaVloUENKbjdlK3FXb1ppNEJvMFFqbEM5aE94a0EyYTB4Y20yTXNtS1U5?=
 =?utf-8?B?NDF1ajRmTGVSSW1vQk1SVVZXSENGU0hZU0dWOW4zNmlldEo2NWZJWnNMenll?=
 =?utf-8?B?bmF4T1I4WERubzdodDlVUXZPaTJINHg2QmtqZk11VFBoM002WktjTTA1bnRL?=
 =?utf-8?B?ckFrQ1dERUJua3VnSEg3anJiSVZ6K1IvbHVNajVROEpiSEpHS01abXFZRncv?=
 =?utf-8?B?YSsvdSs4ZHVOUzlQdnpsWGVVVDJDejRvS2E1U01Od2NSVW9rUGhSMzF5SFRv?=
 =?utf-8?B?czdMZTdOaTN4RWxzNnlneTFIVndacU8wVklKVmRJcitvZGNkOFFIY2E3a2ZR?=
 =?utf-8?B?dnpnWWJoQ3ZaejN6bTdXcFhVWjEyc204d3gyTk05TzhHYVVmYkVrV0hCbTYz?=
 =?utf-8?B?NEtuMHp2c2w2aVJEUWNvNzBUSFh0d2VyNXh3aEZqQStUVksySSt0azhsQU4z?=
 =?utf-8?B?WDJtdkc1UDY0WlNRYWF6ekg3R3VyVTlGKytkMFFHd1g0bXBHZktyWjFJNDhz?=
 =?utf-8?B?a1NtV2hheHBVVkppOUpEUU9kejhJalIzVG0rNXRvVnVIWHNWSTlzamNwaHFK?=
 =?utf-8?B?Q1JOQlhVOTduQWg4Rno0VFVMTUJlUFRCU3lvWGZvYzE5VnNzT0Qrdkh1RkJl?=
 =?utf-8?B?dDAydm5HNkFEeE1IVVZuNlNZa3dYN2NBdStXL1hmNjg0NVF3bTlUbzRJbkhz?=
 =?utf-8?B?aUlETEZjalBnZ1FVdmVkZ3Z4Z1BMOG9PdnBaVnJjRUhqenJEVlZ4UFFFS3R3?=
 =?utf-8?Q?7ptMwjaRl40eDwrp+Q+1WLsM9EgElmzK?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 26 Nov 2024 00:54:08.5633
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 61e3a2f5-333c-4444-9aa4-08dd0db4d5a9
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=[SATLEXMB04.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: DS0PR12MB6439

On 2024-11-23 13:20, Daniel P. Smith wrote:
> If a command line is not provided through the bootloader's mechanism, e.g.
> muiltboot module string field, then use one from the device tree if present.
> The device tree command line is located in the bootargs property of the
> `multiboot,kernel` node.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/domain_builder/core.c       | 28 +++++++++++++++++++
>   xen/arch/x86/domain_builder/fdt.c        | 34 ++++++++++++++++++++++++
>   xen/arch/x86/domain_builder/fdt.h        | 24 +++++++++++++++++
>   xen/arch/x86/include/asm/bootinfo.h      |  6 +++--
>   xen/arch/x86/include/asm/domainbuilder.h |  4 +++
>   xen/arch/x86/setup.c                     | 10 +++++--
>   6 files changed, 102 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
> index 9335f3a9ebef..95cab06e6159 100644
> --- a/xen/arch/x86/domain_builder/core.c
> +++ b/xen/arch/x86/domain_builder/core.c
> @@ -8,9 +8,37 @@
>   #include <xen/lib.h>
>   
>   #include <asm/bootinfo.h>
> +#include <asm/setup.h>
>   
>   #include "fdt.h"
>   
> +size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset)
> +{
> +#ifdef CONFIG_DOMAIN_BUILDER

I wasnted to suggest:

if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
     return 0;

but that fails to compile for a missing fdt_cmdline_prop_size().

> +    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
> +    int size = fdt_cmdline_prop_size(fdt, offset);
> +
> +    bootstrap_unmap();
> +    return size < 0 ? 0 : (size_t) size;
> +#else
> +    return 0;
> +#endif
> +}
> +
> +int __init builder_get_cmdline(
> +    struct boot_info *bi, int offset, char *cmdline, size_t size)
> +{
> +#ifdef CONFIG_DOMAIN_BUILDER

and here fdt_cmdline_prop_copy().  I'm not sure the addition of more 
stubs offsets these ifdefs, so:

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

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 01:16:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 01:16:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843236.1258875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFkC2-0006Df-S9; Tue, 26 Nov 2024 01:16:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843236.1258875; Tue, 26 Nov 2024 01:16: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 1tFkC2-0006DY-Os; Tue, 26 Nov 2024 01:16:42 +0000
Received: by outflank-mailman (input) for mailman id 843236;
 Tue, 26 Nov 2024 01:16: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFkC1-0006DR-Jk
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 01:16:41 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2009::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1222ae79-ab94-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 02:16:33 +0100 (CET)
Received: from DS7P220CA0070.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:224::33) by
 DS7PR12MB6360.namprd12.prod.outlook.com (2603:10b6:8:93::13) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8182.21; Tue, 26 Nov 2024 01:16:28 +0000
Received: from DS3PEPF000099DA.namprd04.prod.outlook.com
 (2603:10b6:8:224:cafe::90) by DS7P220CA0070.outlook.office365.com
 (2603:10b6:8:224::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.19 via Frontend Transport; Tue,
 26 Nov 2024 01:16:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099DA.mail.protection.outlook.com (10.167.17.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 01:16:28 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 25 Nov
 2024 19:16:23 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 19:16:20 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 19:16: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: 1222ae79-ab94-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjAwIiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjEyMjJhZTc5LWFiOTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTgzNzkzLjIyOTc1Nywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gumWYY/nDHKdn+bGawRqxUo/qh3dOui48v58XGHxmHrPw9GPepV3rkhdGaxddF/8wEYy7hEnCJiIhINkHQ7IgtMRY4U0pUTGPzwx4PGWu0g2HYdIs/j+csoEiRgJapa86na59b+fMykoMnTEcW8tOaPwqvBn4JeGU+Sk7CbkvuaotPIYOYqgMWKSlLn/S899TNRTi105zFrfBQUCU69yYopNe/zN/BupXM0PAxv+bmhzogPwTRI7WWaByWoqPLKHwIdbMXnCgNo0tJVD2zR5XoOmoNIw2vSk/eT3hUZ4dUuuEWg4zFFoMIMNblt3LJAoH308z2ZRkBERb5DawR4Szw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TXvWFCpTil9BzfuAWj8uUkenC1NqcphInLmX4WubRhw=;
 b=QxHufHxwGitlrkGsoNjqeziFgZoMl+rOd8nOktqtDwXr3+ptEzor1SfyqKSqjaqAkExl/3hssAOkUX/L57oHcGKiKtTBa26H5fytpTVp0bXZVHeJdoi1JMlnigFNVKtB4QvrOw84Gn7wtnO+V/WXivWaEiZYsM/8/mUKPTYqUww8gU6OWQkx/p7fFIyG4to+erQ3Gs/YJhtt3kbUvyvfnrq3fwWLskR4KL9vCUjgO2JKPiZJPB1iJWaa47NEtF+waXXuTlc+M8rCvPvGvtqA4oaFXVJ7sL67+QnsMXc5l4q7dYetn6hybsUicpi/CJi5Zhf9sb2kS+tXDLwveNP38A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=TXvWFCpTil9BzfuAWj8uUkenC1NqcphInLmX4WubRhw=;
 b=u9/5S4lu+r4cclXl4t48daUVAstBYu67Cl+2F1bnuAeBgN+roklo2epjzS/r/TYdtRJT7RJCAqgS5jl96XH45/8kNqgrrHDwY0FSs77i9HarNISoeBzzTZmJFM3vrhFwCbXzb96GSsqlAL/VE6/QlUnEr0QZzEOIER0SeTq1uhc=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <4fe95739-1873-401b-b253-5d13c13abc9d@amd.com>
Date: Mon, 25 Nov 2024 18:34:41 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/15] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-11-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-11-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DA:EE_|DS7PR12MB6360:EE_
X-MS-Office365-Filtering-Correlation-Id: 20f6dce5-17f1-4245-63d7-08dd0db7f435
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V2FZZzVCR2NIZDdodE9KL2JqRGs3Ym4rNVpPV0x0aGRveWZEeHJKWDBYNkRB?=
 =?utf-8?B?MWRsRTVyZHptTldVc3VHUTFqZ0lMNTZ5bXlrcmJEK2xkSmphSHJwelBnWUhi?=
 =?utf-8?B?bVRIVFdsdlcvTjQ2dzRIY2Nac3ZPMENBcFVKTWJUbHRWUGp1NmViWDN1Nkl1?=
 =?utf-8?B?bHMxOEROYlVFTXJKNGJRakZGellUYmtvZjhaN1RXSEVNb3hSTW4rT0dpb3Ft?=
 =?utf-8?B?RVY2cU92Y2dSR29jSktaVlozWmZESSt1T1dZcU43alhJbTRvai85dStBa3VN?=
 =?utf-8?B?SlhjQXJPWkpKZTFzTlQ1MTNCdDJsUUowNTZVNEJoRmlxTFJIMnE2b01lUmxO?=
 =?utf-8?B?OWJrNEkvWi9KaWdYNGNSVU40bS9wYkdvTXNXTkRSUHk4dVN4SE11VkRNdXZF?=
 =?utf-8?B?S01QSVpGU2FFS2dXUVlDS1Eza0xQdDU0dFJaVEwzeExhV285aW8rQUkxK2wy?=
 =?utf-8?B?cVB1VW9ySjV1REFkeUlZdU1sdzlkZVZ3VHhqRVBuYUJKUjJnMWc0RHRKc0Jr?=
 =?utf-8?B?aDZKUDk2Mm5kdXMrNFpmR2IrN0VGTnFWR2lTWUlMcTJETWNzU3B2WlZydkdT?=
 =?utf-8?B?V1hjODc2aysyUjBwdjJJTVkwVXo2WkZWaVI1end6ZHhURyt1RUErNldqM1Za?=
 =?utf-8?B?WW1sMThXdTl5R2NXd3FsUjRFdjJvYjA4eWVjYWlJNTFNUmJEbWdLczlBN3dw?=
 =?utf-8?B?dUE0TWgwK0JLeEN1RGFBUTU5dlNDUkZqdWR2WFFMSFQrWnZDVy85R21GS0xH?=
 =?utf-8?B?MzIwNm5zK2dpeGdacFRjWDJvSmxqWEh3U09GL1Z1Z0NDbW00aStDOUtvbGt5?=
 =?utf-8?B?TkF0V3I5ZndDMkxSYktKaTZkbUZHQjhQWmQ3TlpjYVFZcHJWM21Jbm0zMGsw?=
 =?utf-8?B?VWRBWWdoRHRZUW4rT3lXbHROWXkvUGtCcHhNNG9uZDlpdHBwRFlxKzJQUjQx?=
 =?utf-8?B?TCtRZjQ5OWh2YldHSHNaVEozZGJPT0x6RDIwRVlrcDdxdTE1bmdka2VNMHZq?=
 =?utf-8?B?cE1XdU93YXlhTFdzWTNhRWNFdWhrUXJ2VXAvUFptMjlBSTFXN0tURUpFTGhF?=
 =?utf-8?B?N0loYXVpK1k1M0N3OGNEbFVTaHZKZ2tPRk5KK3V1VHhDaURwa1I1M3ZtZnEz?=
 =?utf-8?B?cXZjQU5DMEVqQy96S3Z6UDZmWVNYYVE0S2FIM1l0dUJJTWFISDRsUjhJZVln?=
 =?utf-8?B?YmZwY1pUU0hJSUN3cVdqak5EQ1g4R0ZVVmQydG1jS0UwOFFtUTU0TWhHVmJq?=
 =?utf-8?B?VjJVOEFQeXE4akY5b1JCQ0tFZU8vbnBXZmc3Zjc5M1NzL0RoK0F5RndhVVV5?=
 =?utf-8?B?VWpXQlZMdm5xNFl1d2luZkRoOEVReTlrS1VwcmpkYTlWa00vdFk2VE9DWEZI?=
 =?utf-8?B?Nkh3Yi9udmZmR0NCVHUyRkJ3Ti9aZXowbzY2RFAxd3pGODlsemd6KytrZ0RI?=
 =?utf-8?B?UndjMnQ4TnQwRG5oMjlIMFF1Z2tCNGdXM09pdlVXcFg1REl6VkU0NHV2ai92?=
 =?utf-8?B?cWNKQ3lMREQwWC9OZWozaUg3eXRRWXBrYXcwZkpPWE9aUzQzWS9ldFp2UWkz?=
 =?utf-8?B?am12QmlZNDN1cjVQZUFmbXRISTJONHhEckxHekhyNTZvYUR0RjYwV25ZT2R0?=
 =?utf-8?B?ZEhlLzM4V3FReHNpTC9IcDlpUk9SS2Vjd01FUmYwQTJGbm9CNzhGSHByclZT?=
 =?utf-8?B?Z2RUOEdZU2o1L3F3ejM1U1RQaWtDT25TR2tyK1lydUNYMFVBK3U1L0N3czNx?=
 =?utf-8?B?SXFldHNCVVdVMEZMQ0JMSmhyUFM0MC8vZ2RWdjc3Z0hmZ1pYdVpXMnRyMEVK?=
 =?utf-8?B?Z1hFYUpXeHh6UUpXcDlQWVplS0NBOHJyYmVNcm93WXUrWWk3UkRTR2tnWGdo?=
 =?utf-8?B?cm82TjNySTZBLzlvQm43cVgwM0ZmMGJNS2JBdERNV1Q2Qm5odDViaWJGZ0Vk?=
 =?utf-8?Q?EKHo/ZlZgbtZuDZsONRig4TEg8vFvePn?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 01:16:28.2856
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 20f6dce5-17f1-4245-63d7-08dd0db7f435
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DA.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6360

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Look for a subnode of type `multiboot,ramdisk` within a domain node. If
> found, process the reg property for the MB1 module index.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/domain_builder/fdt.c | 25 ++++++++++++++++++++++
>   xen/arch/x86/setup.c              | 35 +++++++++++++++++--------------
>   2 files changed, 44 insertions(+), 16 deletions(-)
> 
> diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
> index f8ddb11b339e..bc8054a80ec1 100644
> --- a/xen/arch/x86/domain_builder/fdt.c
> +++ b/xen/arch/x86/domain_builder/fdt.c
> @@ -152,6 +152,31 @@ static int __init process_domain_node(
>                   if ( ret > 0 )
>                       bd->kernel->fdt_cmdline = true;
>               }
> +
> +            continue;
> +        }
> +        if ( fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") == 0 )

I think
         continue;
     }
     if

should change to

     } else if

?

Also "module,ramdisk"/"module,index"?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 01:27:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 01:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843249.1258885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFkMZ-000816-SL; Tue, 26 Nov 2024 01:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843249.1258885; Tue, 26 Nov 2024 01: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 1tFkMZ-00080z-Od; Tue, 26 Nov 2024 01:27:35 +0000
Received: by outflank-mailman (input) for mailman id 843249;
 Tue, 26 Nov 2024 01:27: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFkMY-00080t-DZ
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 01:27:34 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20624.outbound.protection.outlook.com
 [2a01:111:f403:2413::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 983f7330-ab95-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 02:27:26 +0100 (CET)
Received: from SJ2PR07CA0019.namprd07.prod.outlook.com (2603:10b6:a03:505::21)
 by SN7PR12MB7853.namprd12.prod.outlook.com (2603:10b6:806:348::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.18; Tue, 26 Nov
 2024 01:27:18 +0000
Received: from MWH0EPF000971E4.namprd02.prod.outlook.com
 (2603:10b6:a03:505:cafe::34) by SJ2PR07CA0019.outlook.office365.com
 (2603:10b6:a03:505::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.21 via Frontend Transport; Tue,
 26 Nov 2024 01:27:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000971E4.mail.protection.outlook.com (10.167.243.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 01:27:17 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 25 Nov
 2024 19:27:12 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 19:27:11 -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: 983f7330-ab95-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjI0IiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijk4M2Y3MzMwLWFiOTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTg0NDQ2LjY5NTI4MSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mflgj/4bhxfbRK3T0yzqGQHW04tLRvFcBuPP+ZxFqWkQ1IqgP4ZwnrnFzuUfTSaQ3PRenIVysNHKFOcGoOy8g/Fgy8It0AaZ4fmDlIqRZodaFSara0yuLGT2kVlWdxvT9FTAhaAwEdlQknSkVSWWo2EaIKcb3nAf7t/v1P4dkIxummoIJZdPYuNnq5XkeB+g9+k2xN3AsuCR5ISAiUZKZu+mlmmtsD66dJ1BUIi0EXHjMnGO/fjDwd6heVIQy2jJUgYHd1Tp6FuTiPlqlKvhE9UF+uOmTPc8CS7tPR/afoROcHOVRumLZ8dfYg/Q/esjUxtf1IY6IZVo+RAWZ5JWjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DpJEO/kqySekkuAb32eDC+Q2VCSsTjdSnNpcQPvQmf4=;
 b=MWYau4hPrLe1KLuhFpYPXKrbA9LOyHLCAYz2OItvK3XBPDzbLm7BCEaXTf8VwLaQ7wPJro2+crcQmzk/QA7TvekBiYkKwkkqKU2Fz9dtvGUpmHk76QPDYG29HrUgBDR0noyp32EZCpjDWdm5ioq253G0qxf9G96B6VppAuv6eZ5rd2YJnllG+Px5xTWMEj87qINFSeU2W5Us+H6ZYBkcGNvJ4os/jtYtSor5LUqLehYm4A5GaCCDRvWcTkSZ7s74bdDVs+ui5CpLsDcFb5mUtjLSdxnK3ETkf6Mbymxe6bxdctY7z5vu1bbWceLaV2O6JURnDDtr22fw+7mrngbfKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=DpJEO/kqySekkuAb32eDC+Q2VCSsTjdSnNpcQPvQmf4=;
 b=qxN20YKxmZMZ5a0Air8xI9DsyPO9dWNj5MdKBVoMZdX0ctW873K8YztDGpoz460yGT1kT1j5EwaOF58sIijwxN/dRyJnQhSvuwuJP/ksM+9Ek1XPhtkwZu3EEjZO5VKeT1QuzFo4kwyC0vPVjGBwZnMbeJUNl91tmdPYv9rx76I=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <99177823-38d9-4aca-af84-150ae6f37a25@amd.com>
Date: Mon, 25 Nov 2024 18:45:34 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/15] x86/hyperlaunch: add domain id parsing to domain
 config
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-12-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-12-dpsmith@apertussolutions.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: MWH0EPF000971E4:EE_|SN7PR12MB7853:EE_
X-MS-Office365-Filtering-Correlation-Id: d07cd58c-6214-48a0-2b8d-08dd0db97737
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?V2Q3dzNjQWRmeThVVkhRRzVINDNTWWpXY0w3cEI3Mm9EWGJCWDg5OWFiYW0y?=
 =?utf-8?B?YVAreGdUNEZneVkrVnJTbXJjWmVYZ2NpeWlDc2I3aC82OWVZcm9IYzEwbHV6?=
 =?utf-8?B?Rm40Mjd5RVFaRzlMNzlwc0c3S0xOQlIyS2h5cHlnMVB3NXRXZ01sSk9yL0Qw?=
 =?utf-8?B?dVpLaE1CSlpDVHVPM0s0ejg0NytPaDdpY2tHS1pFaVV4aENveWUzMm15SFhp?=
 =?utf-8?B?d1FDdzB0cVpLc0kvcGdCc2ZGdWFHdEs3VW9WQU9XaGFQQUo1UWdVSHJtNVRk?=
 =?utf-8?B?Sld5d01VRlpDUzlBK2lXVjNUdjZva25haFpuNi9rNVZtQkFwZms2SDc1cnZl?=
 =?utf-8?B?cnc0MkpCV1BUaE5VTkhJM2kzZGEyTkNycHk1NXcxZStrcDNnQ2d4cEVERWVj?=
 =?utf-8?B?TExHdDYzMk9TbytKOTVXK05MVWdvV1VCVWo5M3hkS1didzAyakFUbys5WU00?=
 =?utf-8?B?ZkdjbmxOeXZ1S0t3SGg5K3dOOGtXTDRDSnQwbE16eWMrc0lNaUJDVmJXRmcz?=
 =?utf-8?B?bXBWWVQxZ3ZrVk9tMU5SaFFTaEhld1BwMm1QcVc2U2RDK0R0UnlwQnU2SEFW?=
 =?utf-8?B?bjJ2RC96dnNtNnA1aGhuUzVwUCsxT0lPYW80WkFYVS94eTdudVFZVVdwM0dl?=
 =?utf-8?B?eXZUK0NhanYrQlBFdGNkU1I4VzF5cVUwdUtyUFVDSk1ieUhSUFVaN0xxZ242?=
 =?utf-8?B?bmZwTGJyTjlFYTk3RmlKTjh6UXJLOTgrTXY5c2d5VTBmb2xJRlEzeVhCY2N5?=
 =?utf-8?B?emU5UHM0dnhIVWZkbnYvUGp2a3YzWFhFVUtlRFlFRXZUemRsYnhrQkVNUWpj?=
 =?utf-8?B?S0hpM3JhTndSZUhTbVAwV3Y0S0JuaFRRSEJaNjhpQUc5TTZUWXNXaXZTU1RX?=
 =?utf-8?B?ZEs4V3Jyd1VpYzljOUl1cjRiSnBnZGNHZ2FhZzlOcDVCNnNOMEVuWXI2VjJy?=
 =?utf-8?B?MEhySjlSeHF5eUVWUEI2NGlBbzNTYTRxYkV2aVhEOHoyS0IrN2xVblg0RkZJ?=
 =?utf-8?B?Y3RzYkFWVWtROE44OE4rZG16dkk0clNQTTY3V3UrQlZkQ1R4Rmx5QnZhRk4z?=
 =?utf-8?B?eTc3ZmlqMFhKYk1KQWNrZmc1NkRSekNxNXJEMmdENnllTXl5M0xod003U1NM?=
 =?utf-8?B?NjlqaFFnLzhaUEtaUXBmMXUrNStIQlBGQTRJM2J3Skg0UDAzNW5WNHMyODc4?=
 =?utf-8?B?cVFnVmlLMEliOWNjWDJBY3RoSERhVXpVc1FRZ3lic1ZqM2VHaE1NMnlFaWpk?=
 =?utf-8?B?OVVYb253M09FSU5zSjgxcWo0VkllOWowUDZPYmVoWnRSSER4aFA3L0owNnZw?=
 =?utf-8?B?czNVTHZlZlNwNk5Rd2EycW5SQ2ZyYWkyU0VnRThGYWczQzhRQmpCUncxQll2?=
 =?utf-8?B?cUZwVFZCVlFMSXROTnNYa0ZyRDlLTy9PV0l2WVR4a1RkU0E1Rm0xRUxHWG9n?=
 =?utf-8?B?R1lwM1A0Q21FYVBwcXRFUERoc1dSbE9iYWNyam4rT0RyWi9GT2hTdEpKcVhi?=
 =?utf-8?B?MlJkRlFZVzFBdUg1NE5iUWlrejd4ZGhTQXdNc3EyejBDcCtMSkFrWVEzR2Mx?=
 =?utf-8?B?WXBZcTFYbU51VXFNNFJsNHB5K1BLa0dvWnZoVXRURzVvQXJFK0tCb3h0RzlW?=
 =?utf-8?B?emROUDBtMGRvNE84aVRvYzhlR0VER1A4RnN5SjVrbk93WG5vRGdka0lGZno5?=
 =?utf-8?B?ZTR3ZWpHS2FWQlVnTXlwSTQ0RTEzUmdHUUhLanRKck1hdXhQWnhETGJNZzVh?=
 =?utf-8?B?eVU5R0JscFVQRmJ6Ni9LYVFuMXFMb0NMeEk5Q3NPNzBad04rcDZRUXg3dTJC?=
 =?utf-8?B?T3RjTnRSNVpLdTRQcC8yTWtJRjhqNmN5WC9ObHp5M2pwUmxXVnp2a3gzRzJt?=
 =?utf-8?B?NStnNTFmVkJONDBQTWl4bFNTVHlSUTJRTGRWN3dsWjFhU1NGOGVmdEJqVDVz?=
 =?utf-8?Q?MNzBbadIK1tUmP3FDnPlvCULZvI/zHFX?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 26 Nov 2024 01:27:17.4974
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d07cd58c-6214-48a0-2b8d-08dd0db97737
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7853

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Introduce the ability to specify the desired domain id for the domain
> definition. The domain id will be populated in the domid property of the domain
> node in the device tree configuration.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/domain_builder/fdt.c | 31 ++++++++++++++++++++++++++++++-
>   xen/arch/x86/domain_builder/fdt.h | 18 ++++++++++++++++++
>   xen/arch/x86/setup.c              |  3 ++-
>   3 files changed, 50 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
> index bc8054a80ec1..3a6b4fbc09a9 100644
> --- a/xen/arch/x86/domain_builder/fdt.c
> +++ b/xen/arch/x86/domain_builder/fdt.c

> @@ -120,6 +121,28 @@ static int __init process_domain_node(
>           return -EINVAL;
>       }
>   
> +    fdt_for_each_property_offset(property, fdt, dom_node)
> +    {
> +        const struct fdt_property *prop;
> +
> +        prop = fdt_get_property_by_offset(fdt, property, NULL);
> +        if ( !prop )
> +            continue; /* silently skip */
> +
> +        if ( match_fdt_property(fdt, prop, "domid" ) )
> +        {
> +            uint32_t val = DOMID_INVALID;
> +            if ( fdt_prop_as_u32(prop, &val) != 0 )
> +            {
> +                printk("  failed processing domain id for domain %s\n",
> +                       name == NULL ? "unknown" : name);
> +                return -EINVAL;
> +            }

Bounds check against DOMID_FIRST_RESERVED?

> +            bd->domid = (domid_t)val;
> +            printk("  domid: %d\n", bd->domid);
> +        }
> +    }
> +
>       fdt_for_each_subnode(node, fdt, dom_node)
>       {
>           if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
> @@ -186,6 +209,12 @@ static int __init process_domain_node(
>           return -EFAULT;
>       }
>   
> +    if ( bd->domid == DOMID_INVALID )
> +        bd->domid = get_initial_domain_id();
> +    else
> +        if ( bd->domid != get_initial_domain_id() )

single line "else if"?

> +            printk(XENLOG_WARNING "WARN: unsuported booting not using initial domid\n");

"unsupported"

Maybe "Booting without initial domid not supported"?

> +
>       return 0;
>   }
>   
> diff --git a/xen/arch/x86/domain_builder/fdt.h b/xen/arch/x86/domain_builder/fdt.h
> index ab2b43872e25..06ead05a2583 100644
> --- a/xen/arch/x86/domain_builder/fdt.h
> +++ b/xen/arch/x86/domain_builder/fdt.h
> @@ -27,6 +27,24 @@ static inline int __init fdt_cell_as_u64(const fdt32_t *cell, uint64_t *val)

> +static inline bool __init match_fdt_property(
> +    const void *fdt, const struct fdt_property *prop, const char *s)
> +{
> +    int slen, len = strlen(s);
> +    const char *p = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &slen);
> +
> +    return p && (slen == len) && (memcmp(p, s, len) == 0);

match_fdt_property() gets called more in later patches.  I wonder if

     const char *p = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), 
&slen);

should move into process_domain_node, and then the string is just 
compared?  Maybe it already gets optimized?

(Is there a way to disassemble .init.text with symbols?)

> +}
> +
>   static inline int __init fdt_cmdline_prop_size(const void *fdt, int offset)
>   {
>       int ret;
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index eaac87b02f78..317349b80ac6 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1020,7 +1020,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>           dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>   
>       /* Create initial domain.  Not d0 for pvshim. */
> -    bd->domid = get_initial_domain_id();
> +    if ( bd->domid == DOMID_INVALID )
> +        bd->domid = get_initial_domain_id();

This seems redundant with the earlier DOMID_INVALID check & setting.  Or 
does this handle the non-hyperlaunch case?  Maybe it should move to 
builder_init() for other non-hyperlaunch configuration?

>       d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
>       if ( IS_ERR(d) )
>           panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 01:34:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 01:34:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843259.1258895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFkT2-0001LJ-Gr; Tue, 26 Nov 2024 01:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843259.1258895; Tue, 26 Nov 2024 01:34: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 1tFkT2-0001LC-E9; Tue, 26 Nov 2024 01:34:16 +0000
Received: by outflank-mailman (input) for mailman id 843259;
 Tue, 26 Nov 2024 01:34: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFkT2-0001L6-1Z
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 01:34:16 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2415::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88a3cc22-ab96-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 02:34:11 +0100 (CET)
Received: from SN4PR0501CA0122.namprd05.prod.outlook.com
 (2603:10b6:803:42::39) by IA1PR12MB7687.namprd12.prod.outlook.com
 (2603:10b6:208:421::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Tue, 26 Nov
 2024 01:34:06 +0000
Received: from SA2PEPF00003F62.namprd04.prod.outlook.com
 (2603:10b6:803:42:cafe::de) by SN4PR0501CA0122.outlook.office365.com
 (2603:10b6:803:42::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.19 via Frontend Transport; Tue,
 26 Nov 2024 01:34:05 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00003F62.mail.protection.outlook.com (10.167.248.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 01:34:05 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 25 Nov
 2024 19:34:03 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 19:33:42 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 19:33:41 -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: 88a3cc22-ab96-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjJlIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijg4YTNjYzIyLWFiOTYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTg0ODUxLjEyMDI4NCwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kmeyu6I3PGiBgdsfXzYzkSbDm0X3ZnY1YKQdE40yKm1SScY3QY7M7o7lDQbrgg7Ewdm8M5rnI2Try3ahhUK9KtJ9ECvx7kAZWG/8Iln88EGjIxsHbf1CCGqTL4DQ0DOU0UMjhfs5wse9pezWX4Z2MxcYOOkIavXqXESMXJ1Fd3Grx6pqH6h0uwwP9g78moQgw7w5N0LvOnH8phlNTQdCkbjjmsuaSfzFStXZ/H+kdgwb6ID07cOAP9blKrsAueCBr6JKgs/WMKR88NS2bacmEMNtBOmrscfCMiijUbgTH5GXEo96AUrQlXI0zNZksPelD+Q+KojdMWigbVIFHMLfyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p+kG8zJDPb7WPuXlzOHlqTnI/QLJOPtaa4Neg0SoxVg=;
 b=Q/Su/PTan1ecVNvlcB4lNpuM1Qt+oZOH6JrGiffR+EHVYghrW8Dy1KRTpy8DpI/M89TBsoriK4sDmXSI6qtk+6xDUgvVabP7BaHYDysuFwqAJUMlYbODgeRkzF/el2H9PqinLAULH0QTxgtM+CkTr3c3Fwjob4UbeL0Ff3Mlg+IquuSTwQdPyU7468Tw5QHmEl9GyQIayxiYKzgJyTI8ohnI+jRjIgZuAq6iqqAhIIV+LBfVFHZB+rVAACN5wS+P/Be+9g2/SFSjAtzDE0XyNgzVPHL4/bunCEg+DCG21M5PcxnY9dEWaepoDP1h5sS72OO0A0JRRJYjIWQD80PXBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=p+kG8zJDPb7WPuXlzOHlqTnI/QLJOPtaa4Neg0SoxVg=;
 b=DKVutg80DnzFx6vNor+m/p8LHsAJ+QglgNGmFGGNnkvgarRaHZgn3GxZY9qsQ9f6FDuZC+U61VETSQaTjCpv/aTzSTIB79GZTR/7o0p/17sLnZE1AevJxfgZGzX6uMbs01BPwDO1Cfe0hG5h2T3hbdlALjYEL2Vp7xB0tGbfz6E=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <d93c041b-7371-46c3-bbe6-e5679ba0c73a@amd.com>
Date: Mon, 25 Nov 2024 18:52:03 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/15] x86/hyperlaunch: specify dom0 mode with device tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-13-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-13-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F62:EE_|IA1PR12MB7687:EE_
X-MS-Office365-Filtering-Correlation-Id: 57ca156e-33e0-4efa-fbb5-08dd0dba6a41
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?TkNTV0tqRFlXMFc2UkZVWEJzWURWdnd5U1YrWjBUcThuRHNtOHUzYXdtTGkv?=
 =?utf-8?B?OVl6ZHZJU29PYzVDVUpoT1R1TFF6eVJIeHV5L3N1TXNPNnVpc0IzR3lrVFg2?=
 =?utf-8?B?WVZUMklMNzZSbHZaNytYTUxPMDZCWVJZemtWM0gyV2lhZC9PTWtJdDZBRytw?=
 =?utf-8?B?MzlBME1PMmhoUkF6SFNVdmh5dEo0dm9sMjFHaXpSTzZnelVwRStiT2M2L3A4?=
 =?utf-8?B?cjUvY1kreHZsU2hnTnNOaWtMTDkybzUyMTVqRDlvcTVLSi8yUWwrT3FBZVk4?=
 =?utf-8?B?WVBWTlpzeWsreW1hR2tHZ1RDcDFML0dVUWY1enJ2TzhpTHgxYWE3V0lvb1pW?=
 =?utf-8?B?WDNGUGN6SDZQVWpEemwyN1pEZUdXT01DK3dzSVAzZDF5K1NrcXNmNVpON3hS?=
 =?utf-8?B?eWs0cDZVN3hoRDhLbjNlVXduOWQ5TTBUdmFTZHJ5QldsTnM3bEw3THJVRXJa?=
 =?utf-8?B?M3lYNWh1OUtTZ3BFY3MrckNqWGxLR0NUTDhjdEc4ajFsZmYyKy9TcENuU2ND?=
 =?utf-8?B?TE9xUVdKRlJZN2lZUUNIcEwxUC9VV09Vd3ZqQ1BIb2ppTkxNN1hKYmdzbVFU?=
 =?utf-8?B?cGI0SkwxSkxNb2pUZmRXaTlTWDhQOFo4bHo3WFJaNm95L3V5WVI0Y2NWVUh6?=
 =?utf-8?B?Q0JkUmdqTWg2U05rbVZzbG10RTYwMnN2NlU5cjdCci9iRGEyTkoraDJocjdw?=
 =?utf-8?B?bitZeW5PandkQVZHUjJKK2pDSkcxL3VSSmQ0d2FENWNpSVpxb3laSnUyVkVI?=
 =?utf-8?B?ZXBtQWlUdGx2T1ZDQ2ExRHhaYTg3VEZnTWRCL1Vtbm9kd1VuY251SEtmaGpr?=
 =?utf-8?B?M2J3VEIyajkxUXVTWXFYbktlb2U3Y0wzSWhZVFRCcCtoeEFoRlVNclU2RDIr?=
 =?utf-8?B?eGpjUHpGVGdDemR3aUlDM0NZUEtFUnFJR2JwSUtLZUlvZ0lHOWxiK2lRczBh?=
 =?utf-8?B?V2hHWll5UkVMVTMwMVNlMlRVN3ZxNG5aL2k5Z0krUDhlOUd3bXZuQ0RrRE1Z?=
 =?utf-8?B?dW9iWnpKc2FOamlJSk9NRTNqSUs4cnVldnFsYVhhTFgrOVc3bWMwcFo3QlFv?=
 =?utf-8?B?NGxwVlhkLzYyNGtaL1NkeXlTRjBmVnJKKy9ySEMydkNIZUpSaWd1WWtkZkJM?=
 =?utf-8?B?N1BkNjFVdGZnaUxTZTk1cHZuZjJJQUE1d1loZjFtTGlUS2U2VU1VS1UzT1or?=
 =?utf-8?B?Mnk4OEUwK2RtNEppTkJjdUUwWkRJeW9RRlBYR0JSR2lYS2RWWW9mNEdsNmNz?=
 =?utf-8?B?ZHZySlZsM1dUMU96NU9mbzdBNUI3NzBMUzNQQ21IWEQ4NXQxS3FOY3lyMmR0?=
 =?utf-8?B?UUowajYvcE1haHFZQUdwT3dzcTJrR2Y5dGRVUmdwQjlaSllKTklIbVFOS2o4?=
 =?utf-8?B?MjhIVWgwdEFhek9MTFZSQmlUdThKRmRkSzNtQWNtT3hhSk1VK21xditSbjl4?=
 =?utf-8?B?ZjRiZUZEbTBLcUcrUjRBRVZrd1c3OENPNUVWSDZuRGNiSmNqMW9na3BOc3Vr?=
 =?utf-8?B?Si9KOWIzVWNqWGNPMFFPOGdxZDdlOWdTNGVNYXE0U0ZVNXJtbmZpSXVScVRq?=
 =?utf-8?B?SENJYlc0Mm1wazloaTJQN2d1SEVXSFMwZUlGT21Ed0ZrQ2JRMjRQdmZZbEF6?=
 =?utf-8?B?aXRXOEFXeTNhVXFDODVFUEZRMlZHd29lWDFsTXZna3EreTJ0TVdERDljb3kx?=
 =?utf-8?B?cTlSejV5MlhqU0c2U2VlVGZGMXMvL3dKTEdHM016WHBVWUdUMFVsZUtweWFz?=
 =?utf-8?B?VFRiZkVYYXN4V1c0eGRHMkVNYWVyYUZWT0FPWEJFaFNySDlNMmpRZSs2dFM0?=
 =?utf-8?B?SFVaWWhiZDNTaVVOa0FadFNwYjljSVpGMEZkL1Y0b1dkQTdzTEJ3TUJ3ak16?=
 =?utf-8?B?VkRtU3JKN1U5bURWQTJYUFJ5Y3k2TEpXeXB1c3dmS3p2T28rb0RKUGxyblds?=
 =?utf-8?Q?BRL5SRb1xLWp5f5yRkRmRRDxJSwCozSm?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 26 Nov 2024 01:34:05.3640
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 57ca156e-33e0-4efa-fbb5-08dd0dba6a41
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F62.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7687

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Enable selecting the mode in which the domain will be built and ran. This
> includes:
> 
> - whether it will be either a 32/64 bit domain
> - if it will be run as a PV or HVM domain
> - and if it will require a device model (not applicable for dom0)
> 
> In the device tree, this will be represented as a bit map that will be carried
> through into struct boot_domain.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

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

32/64 is only applicable for PV.  It might be worth mentioning that.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 01:46:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 01:46:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843268.1258905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFke7-000372-GN; Tue, 26 Nov 2024 01:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843268.1258905; Tue, 26 Nov 2024 01:45: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 1tFke7-00036v-DD; Tue, 26 Nov 2024 01:45:43 +0000
Received: by outflank-mailman (input) for mailman id 843268;
 Tue, 26 Nov 2024 01:45: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFke6-00036p-0l
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 01:45:42 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20626.outbound.protection.outlook.com
 [2a01:111:f403:240a::626])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ed12ed1-ab98-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 02:45:33 +0100 (CET)
Received: from CH5P222CA0017.NAMP222.PROD.OUTLOOK.COM (2603:10b6:610:1ee::21)
 by MN2PR12MB4126.namprd12.prod.outlook.com (2603:10b6:208:199::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 01:45:28 +0000
Received: from CH1PEPF0000A347.namprd04.prod.outlook.com
 (2603:10b6:610:1ee:cafe::d2) by CH5P222CA0017.outlook.office365.com
 (2603:10b6:610:1ee::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.17 via Frontend Transport; Tue,
 26 Nov 2024 01:45:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000A347.mail.protection.outlook.com (10.167.244.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 01:45:27 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 25 Nov
 2024 19:45:22 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 19:45:18 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 19:45:17 -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: 1ed12ed1-ab98-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwYTo6NjI2IiwiaGVsbyI6Ik5BTTA0LU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFlZDEyZWQxLWFiOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTg1NTMzLjAwOTk5LCJzZW5kZXIiOiJqYXNvbi5hbmRyeXVrQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fRWoFvxg8dk8WeMN0SoZjKwM7FUHjYjob++XpdrOCP0rlHpci8DSAnHSD0lY5jPZSmdUVj28c7fS0n2YvYZrAN1r+Bw4fCHcDkquGNwUQMhLn4nuozTTn0RHCrF3H0LhQqBE/0wyEEI+SBkGbZAL3JqJ+EQAWZ43JZjos8GxYKYehp1lHrCM80VRqmvNAoP4QMu7L9tHqoem0JWUIAzDokT3ekNrMmNq4vx5jcOn1udGDQmYDFizJesrfsP1cc8CWZI3+6EAE5xA8gN+7480sLOoqodN58L4778M0lDtvujC+gBV70JFMaiK1/VY20G0V6v3bn91/g6bVnygu8TYZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cj8GRGoNPlvKgmlv/8K9gQzsnT7rvHE3xiVnJPqYCuM=;
 b=GwrSV0iFQfF9iEMZ7/ZnOepbnSPlw9d3WsR+MT3EiNgt8P1YqC6Qqz6KhWN+auSNWyzCF1C3yxD4FdgSvzG2n8hL+D1c3iSumNZXjc8D+gXd8f/Vj0aVjH9guRAjZU04lt70Nraeo5EMJwueTdxKhip6VTrCixbhH2QzeG4uhuF1Y2ryIouROD8HuIpfRM6d78rCsnWoePGJjASeo9m1CNuthCsyLg8r8IV79Ht0JMRhIPcRpo5HLwc6WcMRtN3ej5Vz2Zh2kUdFsk6uckoTTfczALOB7LXzp3CfXJsRsvHcOTtLcOVqnA14Ucbj3Y0NSKOZX4E2cawlma3fdHMQ5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=cj8GRGoNPlvKgmlv/8K9gQzsnT7rvHE3xiVnJPqYCuM=;
 b=dhvNFbdrxUI4SpGOt82uZfSWIG+lpCi4rCEd9DArNLweo4HbW0VVIVyTjmMZ8TIJ0LlZdYlCUXsLG+lCDxB280I9UeLBRML6KdDAGrlphs13Q0PmO3FOPpRqRnDGKdPeyjGARg3xXBXvCeBRg5OPfjrSGSqtlpDPS7N3wVW8T98=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <4c4d8cf0-cc31-4042-8efb-892f56047d11@amd.com>
Date: Mon, 25 Nov 2024 19:03:39 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/15] x86/hyperlaunch: add memory parsing to domain
 config
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-14-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-14-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A347:EE_|MN2PR12MB4126:EE_
X-MS-Office365-Filtering-Correlation-Id: bec65db1-2137-4747-acc4-08dd0dbc0103
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?czZHTVVTQ09lQnU3VnlPQThZUmVodmI3MGxYOGg3R1ZvTlFZMXg4czYrbWFv?=
 =?utf-8?B?RmFqWTNZOWkrREJlYThNdVg2ZytsSXlCRUtYY2hQSklqQkQ1dGtsZnNPUlM5?=
 =?utf-8?B?aEtNQlNSekVTSFV4cnIwWXA4cExMZTZ2cTRDUkw5UFBsVDAwN3cvVmdCZWo0?=
 =?utf-8?B?cENyWnppajI3UXpVc3ZxeE4ySDFkWUZYcjF1SDhjMzY2YzJNbS9ZYk1TRUlq?=
 =?utf-8?B?b3BYbkQreUVVa3QxLy9uOUpxZ0FXeUFCOFNXWE5sbTZTaXZLUVhRZE0wVWlo?=
 =?utf-8?B?VE5ubTJUMkFBYncwSGxoZDJwakZVeE50b3pMTmhDK21pSnlFVFJ4VDN5aXgw?=
 =?utf-8?B?N2hPeWNMTTZlRFBxaU5nWkVxdTI5S0p4VjBraTJUUktNWUNIeUh0c2JsYStW?=
 =?utf-8?B?ZXIzV2NSbmxMYW5KU1FLcHBCVDhubFoyMldjak8yODU4SmZ0R255Rm40MXoy?=
 =?utf-8?B?Rk1ucVFmZ2ZOcVRRRE5hNTdwL1JlZ3RRYnhDUUNuL1RuYXNDNGVUY3E0c3Fr?=
 =?utf-8?B?K0hpbTRGU21iOUp2SUpxWjcrbm5iLzBzSUE5YUtjZWlPNTFOY08wSHBpNXkv?=
 =?utf-8?B?RHNZS2ROR2FvRFd0MEpaeThQVmxnS1ZaMDkzOTV0enJacC84dDdjM1NrS2d2?=
 =?utf-8?B?ZVRkU2doQmNPei9CNi90T3lJZWR5WVBkR2s5bnRIRkh6SDJmQlBEYzlIMDFD?=
 =?utf-8?B?b2wzMk5UK1BkeG94Tm1MczlBOXhFbEFPd0dlZ2NrSndiclV0eC9lREpKUDVC?=
 =?utf-8?B?VVdZVWJybGRkLzBqYTQvaUoxSHFPaTBSYzVZTTl1eDBKNW9vd2M1eXZiTHlQ?=
 =?utf-8?B?NnBmSWUzMkt3c0F5NGE2TmhZaU5KWWVzREoyNTAwaWV2Q1pvNVJMcUlkbDdB?=
 =?utf-8?B?QnMvcjFyS1NwVHh5OWE3Q1Q2Tm45Zi9JSnhBcStYdFAzUTRLcyswMzlXL1ZO?=
 =?utf-8?B?dDMrSHRReHFxRFBPQitPQTZBRytPN1M5YldQdENzSU1QaUdNa0F0SE1DTjlq?=
 =?utf-8?B?bjNwbS8rOUltVnZveE1mQnZ2SmhrclRTanVscm1ueW5WZDVFRmZ1WFA1Nkll?=
 =?utf-8?B?a2p2NmY5WG1aeklYM3cvOW9MZkpkRFpRSHZETEozL0VOa2poNEVTQVpZWFk3?=
 =?utf-8?B?YSs5VnhVL1YxTGYzbW5hRGNjT05ZR1lTYk0vU0dKYVVVekJIVWJCNzBJSGJF?=
 =?utf-8?B?OXp6WW5tbVpHUGVscEdTVWVGN0ZsZXVrd3BwRDY1R1pDTmgrL2xmcnBwbmdX?=
 =?utf-8?B?MlZ5QmEyekJqTGd6K3l4cnRUa1V6WVNiTVI4YXBpQjdkYm1XL0d0eXprNmE3?=
 =?utf-8?B?UEpiUFpPaDVDTElncW1BSG52K3pUVlUzZWlUeEkvcUl1STdyajRLS0VuVFgw?=
 =?utf-8?B?VU9UdE81cW11YUxXVXpnaWhqWWJXNDlQeUMzalBSVWZ1Uy9FanRoOER3VTM1?=
 =?utf-8?B?alNXSjZnbis2RDJVdTV4TU5seUpCNVRmbitwUStZR3VldXZwcEo4UXUvbjhu?=
 =?utf-8?B?Nm9KUTBkdlJkMlFodElYbXJOczF5d1B6U0tUUHF3RHVFRXpxeG90dklkK0Fz?=
 =?utf-8?B?S205RFU2bVlKNVdua29PaGY5SDZxSmlFakh6QXAwYUtoSjdHQXRKSnhxL0lQ?=
 =?utf-8?B?dnlrSHIzaEtZa2JFOHZzdXhnY1Y1WkEzZEYyZlFVSWZQcmgwZGtNVmtHNXY0?=
 =?utf-8?B?UlZXQWxpL2Y3ZFBTV1RPNHVCdkF6UDZtQ2I5eS9KVHlmQWVveVJncng1ODNY?=
 =?utf-8?B?QkRxMi9pbjRQN1BlR1N6a0hIWFB6d2x3ODZaYTdUOEhWemVmY3VXTEIwQWx4?=
 =?utf-8?B?QnU1QUsrLzRMOFVqYlM0R2wrRmZXWmRtNmxRcE5WRndMNC9TeHlyTmlZbVZI?=
 =?utf-8?B?emRNQlNSejdxNEVzdE5CamlrUkE2RkVkR3VQdHdwODNMMndvV2dHR0RxK3RO?=
 =?utf-8?Q?k3m7rqxeH5UBDH8leEi3YL3fYN6jW6VL?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 01:45:27.7728
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bec65db1-2137-4747-acc4-08dd0dbc0103
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A347.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4126

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Add three properties, memory, mem-min, and mem-max, to the domain node device
> tree parsing to define the memory allocation for a domain. All three fields are
> expressed in kb and written as a u64 in the device tree entries.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index c231191faec7..1c3b7ff0e658 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -609,6 +609,14 @@ int __init construct_dom0(struct boot_domain *bd)
>   
>       process_pending_softirqs();
>   
> +    /* If param dom0_size was not set and HL config provided memory size */
> +    if ( !get_memsize(&dom0_size, LONG_MAX) && bd->mem_pages )
> +        dom0_size.nr_pages = bd->mem_pages;
> +    if ( !get_memsize(&dom0_min_size, LONG_MAX) && bd->min_pages )
> +        dom0_size.nr_pages = bd->min_pages;
> +    if ( !get_memsize(&dom0_max_size, LONG_MAX) && bd->max_pages )
> +        dom0_size.nr_pages = bd->max_pages;
> +

This placement seems a little random.  Can this move into 
dom0_compute_nr_pages()?

>       if ( is_hvm_domain(d) )
>           rc = dom0_construct_pvh(bd);
>       else if ( is_pv_domain(d) )


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 01:47:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 01:47:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843280.1258915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFkfo-0003hp-Sy; Tue, 26 Nov 2024 01:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843280.1258915; Tue, 26 Nov 2024 01:47: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 1tFkfo-0003hi-PH; Tue, 26 Nov 2024 01:47:28 +0000
Received: by outflank-mailman (input) for mailman id 843280;
 Tue, 26 Nov 2024 01:47: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFkfn-0003ha-GC
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 01:47:27 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20618.outbound.protection.outlook.com
 [2a01:111:f403:2412::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60b9a0bd-ab98-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 02:47:23 +0100 (CET)
Received: from CH0PR04CA0097.namprd04.prod.outlook.com (2603:10b6:610:75::12)
 by MN2PR12MB4343.namprd12.prod.outlook.com (2603:10b6:208:26f::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Tue, 26 Nov
 2024 01:47:17 +0000
Received: from DS3PEPF0000C37F.namprd04.prod.outlook.com
 (2603:10b6:610:75:cafe::be) by CH0PR04CA0097.outlook.office365.com
 (2603:10b6:610:75::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.15 via Frontend Transport; Tue,
 26 Nov 2024 01:47:17 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF0000C37F.mail.protection.outlook.com (10.167.23.9) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 01:47:17 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Mon, 25 Nov
 2024 19:47:16 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 19:47: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: 60b9a0bd-ab98-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjE4IiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjYwYjlhMGJkLWFiOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTg1NjQzLjU3MjAwMywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Oh86FwKKJqDdx230f21TiH5+Grpw/jHx0/UTd7/VgaG9u8JpHv0mrnETRV1Dtk9N6Ycl1dheQApnvyh45CQhucJg8j+RlC2vw0ofyXvLmMlo0Qti+iGG1DuFMpNoCaGRvIgcidOuyvDEMmHpdCbAPycLf+Uk0hUTguJWwvwFd+0KkHXZMI0ZUKHkUhzy8cUc51JLojW/Ct/XO6YZb6S5l6LVtN/AL6KUbYaZZ4DmJZXbq/JgVqcAX53YfU1K+IJFmuM2TEyyh/QXKpOfxU/8YiLbxEa7RIJ+e7uwA98RgRRYhkmvZjB7Qw/2Ic/tuAbG5SLeM0tXA4X7nGCLQIHulA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bHUzhEc7ag4FYbCYpJ/G5wIKonovNV4qSMljZEScPNk=;
 b=GEkMGSijt7JE13gjyT0w6ICSaVHwv1oHLN9AdhhAKmd8kTm5oGHMTiBxbbLQvjoDicTfmTOeJoZ7VFfgyo4NssP4VEw/hAhe4Q+q+BalyzV7KVu3A+3LCaR/UBpMC3s2O9zbB0Mpw2xr1SnnUjB1QMQIOLD7Pz1kSjuhAL/9i0uJjcBN2KfKwpu5h09pYQ6uQaXpK+vND1b/HOCML3KKhRlUogq6Wbgf12xfw9iQltcwFiNRVc4bx9Dp2zAhrO3tTnyfJwxM46wFNz7S9H/JeaxGHtIaSKI2kVhWqsYn1UkpS7bbcD5M9wyz7qAgnzg9PlV59V98sC9kPzOWSCNxVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=bHUzhEc7ag4FYbCYpJ/G5wIKonovNV4qSMljZEScPNk=;
 b=ve6LJ/DfidwZk2y3NGdcLyUV0PeFXrjgKQRiG/nvYOY4K8fUhAp1yVji15X049rsx0dJEMMmom6+Ss/8BNX6Rd2fb2KGwqjiafZ9pFKp0lGUJYPJ1hwRhvvRhcShXDijV1wpzpOYOw9JfooVooeKGDoge1DU3x1g3YG7Op/UYj8=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <0dc5d92f-5405-4eaa-ae77-bfa6a347d9d8@amd.com>
Date: Mon, 25 Nov 2024 19:05:38 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 14/15] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-15-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-15-dpsmith@apertussolutions.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: DS3PEPF0000C37F:EE_|MN2PR12MB4343:EE_
X-MS-Office365-Filtering-Correlation-Id: a75d43ea-d951-4b8e-63a9-08dd0dbc426d
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?NTgzcWUrNnRUaE9yVkU1UXlETXBQbmZtN1hMVjVDYktIVXM1THJjeTZyd1Zq?=
 =?utf-8?B?N1FzMjlrK01PK3BkaUhZM25TbkxBaUI0K2ZyZWJzY2U5OXNhbnpON3pCaDlo?=
 =?utf-8?B?bEsxaTZpcDFsdDJHbUo3MjBUV29XU29MOE1uMTVBcmVSWnpIcWZJcnBTQUZr?=
 =?utf-8?B?dWxWOEpJcHBYM1FoNjVvVFNXYnVLNWlPMCtyT05OMWtNRGNac1JQdjBrUUJD?=
 =?utf-8?B?bnl5ZU85L2NKbDVrbVk3S0piSUhvSGpDT0F1c3Y1SlJMTUpPd29rSDNMbHZH?=
 =?utf-8?B?QWZkRWFVSVhMOGlCbEo4ckszQ01MZ1lOWFpicnNpd1hRaWlzQlBhZURPWkNt?=
 =?utf-8?B?NUZhYVpvdXNvUUc0ckx0WkRiRy9xWENCdHl2aEZwNEVSbWR0eXFxTVFnSnZy?=
 =?utf-8?B?dVZVd0ErRHE5a2dkdU04VnppTFdraGNQQnViNjhaR05UWkN5VDhleFZVUFNH?=
 =?utf-8?B?VW9LRU45RE1mS2JYRCswTm1vaFdsSEV2UVJBeTF2T2pRRnNCR1l2YVFrTDZ1?=
 =?utf-8?B?aitCc0hSL0dLN2JnOTJIMzJtL25TaXF1bDFMcS85eEkrSzdTeVR0WWRGUC9l?=
 =?utf-8?B?eHY0SVZqdzQ3VzUvN3hCVzBkWWxoRzBXak9LN2Vqd3Vqa0VqelJVU0xkS1lK?=
 =?utf-8?B?MG16Q2p5Z3kxRzNQajBLalJCbmYzL1paT1R5YVA5RExBZjB3ZmJ2ZUlvd09U?=
 =?utf-8?B?ZXZWTERDb1g5Q1BaWno4QzBjVmEwRXN6MTNZMHNPai9iSiszTGgxd25ZZkw1?=
 =?utf-8?B?SFZBY2NkWk85dkdiNXFubVl6QUJudENrelNaK1NsTjRwdlo2SU4yYmhzUE9K?=
 =?utf-8?B?eGFpR293RWdUS0w3dlNYdXlDNllJak9xenhtZFRoZEZTTGdTaG5kcnFNOUls?=
 =?utf-8?B?L1R2NmtBNStjdDgxVzRmbElrZDgvcXNPZnZjNXRSM2UyMUJyYlh6cTVIaGhY?=
 =?utf-8?B?T05ub2Nma25TQVVMbmFSbHcvUVZZVUNvbmVKeDBIbGh5TVFSK2NuektFQklx?=
 =?utf-8?B?SGViaW1FcHdLT2NtSVJVYU5EZ2d4czFtOWNuaktJNTlFdUg3MkRUYUZnZGx1?=
 =?utf-8?B?cHJqKzNQMzJESTB0T2VZSUVxTENpVnRNUHVISS9HWCthSUY2QTNQUUJObVBs?=
 =?utf-8?B?Zk8vWC9BMTZRVzFJQUdPUW1DUG0xQ2EzNGFHU2VUc2ZUYUlaMm9wNzV6alQ1?=
 =?utf-8?B?NWY4ZkFiUjZVT25yaEc0RFVTK1hvTE9lU2Z1VS8yUDBhZHFzU0k4eDg1d3dI?=
 =?utf-8?B?bmZudGNaaGJjWjdlWm5HK2xWWHdnYklBM0VKekNhUWtaS05NM005TElaL3Jz?=
 =?utf-8?B?UCt6T2E3dW9na2t4TFpwbElWeVdRbEFjZE9MbGhoYmRMT3RRcm9vUTNRMXpp?=
 =?utf-8?B?RWlPcGwrZU1PSjVPRzc2ZDRjaXJHeGxndFA1MDBNaGo2eEoxcWVxdnY2WWw4?=
 =?utf-8?B?bG1xVzJxSThydHErMERXWlpOSmJFb002bGJZMWVtdWd1RWljNjlxNTkxTUI5?=
 =?utf-8?B?SDhKcXhJb0JseEpNSzQ3aFlsUWFJdDRHejJFOWM0K2JEdWp2dE5GM2V2a2cy?=
 =?utf-8?B?ZzFVMkNxU2NoN1VicjdKcm5MYytWYzk4Z29VVGpIZlJtVGt1MGJZcXJxcmtD?=
 =?utf-8?B?a3NjbVcvTDNUVTc0OTk5UjJtWWlReFB4bTFlRzdnbjEwc1hxTDMyMzJNbUdq?=
 =?utf-8?B?RjV2bDM5NWFNa3FZSVdtb2tDa0pXUU5oWmNkOXhmLzlPSncySWhZMWdKcmRq?=
 =?utf-8?B?VFFQQmxrQloyeVZUcWk1QWtkSm1SVWRHci9teSs3Vis2NGZHSUJEMGQwTDJQ?=
 =?utf-8?B?OFlBZjlnY2I0OUJCN1hLdDJHYUFDUU5WWUZWVFhzbWhnbFJ6QXlQdmwva2Mx?=
 =?utf-8?B?ZS9xdzQxZm9UZGFVRlBxSnYzbDRHVFJOVW56ZHlxMGwveFNYVVNPUm9sL01H?=
 =?utf-8?Q?2HDOLiDnlcpsa2kLn1ztespuWsD4chy7?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 26 Nov 2024 01:47:17.4862
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a75d43ea-d951-4b8e-63a9-08dd0dbc426d
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF0000C37F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4343

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Introduce the `cpus` property, named as such for dom0less compatibility, that
> represents the maximum number of vpcus to allocate for a domain. In the device
> tree, it will be encoded as a u32 value.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

> diff --git a/xen/arch/x86/domain_builder/fdt.c b/xen/arch/x86/domain_builder/fdt.c
> index b8ace5c18c6a..d24e265f2378 100644
> --- a/xen/arch/x86/domain_builder/fdt.c
> +++ b/xen/arch/x86/domain_builder/fdt.c
> @@ -197,6 +197,18 @@ static int __init process_domain_node(
>               bd->max_pages = PFN_DOWN(kb * SZ_1K);
>               printk("  max memory: %ld\n", bd->max_pages << PAGE_SHIFT);
>           }
> +        if ( match_fdt_property(fdt, prop, "cpus" ) )

I think I forgot to mention it on earlier ones, but I think all these 
match_fdt_property() should be chained together with "else if".

With that

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

> +        {
> +            uint32_t val = UINT_MAX;
> +            if ( fdt_prop_as_u32(prop, &val) != 0 )
> +            {
> +                printk("  failed processing max_vcpus for domain %s\n",
> +                       name == NULL ? "unknown" : name);
> +                return -EINVAL;
> +            }
> +            bd->max_vcpus = val;
> +            printk("  max vcpus: %d\n", bd->max_vcpus);
> +        }
>       }
>   
>       fdt_for_each_subnode(node, fdt, dom_node)


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 01:52:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 01:52:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843290.1258924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFkkR-0005ZC-Bo; Tue, 26 Nov 2024 01:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843290.1258924; Tue, 26 Nov 2024 01: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 1tFkkR-0005Z5-8j; Tue, 26 Nov 2024 01:52:15 +0000
Received: by outflank-mailman (input) for mailman id 843290;
 Tue, 26 Nov 2024 01:52: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFkkP-0005Yz-QY
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 01:52:13 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2009::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b7187fd-ab99-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 02:52:09 +0100 (CET)
Received: from MN2PR16CA0005.namprd16.prod.outlook.com (2603:10b6:208:134::18)
 by DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.18; Tue, 26 Nov
 2024 01:52:04 +0000
Received: from BL02EPF0001A0FE.namprd03.prod.outlook.com
 (2603:10b6:208:134:cafe::53) by MN2PR16CA0005.outlook.office365.com
 (2603:10b6:208:134::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.22 via Frontend Transport; Tue,
 26 Nov 2024 01:52:03 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A0FE.mail.protection.outlook.com (10.167.242.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 01:52:03 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 25 Nov
 2024 19:51:33 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 19:51:06 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 19:51:05 -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: 0b7187fd-ab99-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwOTo6NjBlIiwiaGVsbyI6Ik5BTTEwLUJONy1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjBiNzE4N2ZkLWFiOTktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTg1OTI5LjQ3MTkxMSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OJLbkHSgZgQiM9mjY7ii0B1cdQ6nmOETBcB9OWLW/J5oxOoNxpbB25y0aSq+hDDMJzL8Xsq+SZJkFJBDsLIu0wM0Div9wKs9J9uL7p5Vw+FRBShkUCWjwVFm7NEqOdjbgdzN+trxPQ1Bazm+75V45lP1QemliiUVVk8y1EhXW18c4o8BI2+Xj24gqNR5yVtLYkxOC1GPPKFbcJCE4M5GeHcoVeh1+YdP3HoIXxCJwSwQEFTJjJwSgl1ow/X3PYLUSWA42Hu16EqsH6JELGNzlZEPD7s21ulH24AwD4TDMM0zWqhFzV/aZ4EC5LnyTPjVi+ovDbppPoL1x71q9WOM1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HLbhG34pzc+kefPeUCZBVWGMfUzEB4dTthSOXG3NOyw=;
 b=RVpL5APmO/MH6S6239g+urHRMDzIYo9dQBVDqAfQduGte7tcFkYWSqik013aHbNutaOhM21n72p5YXTpvuGowW3DhKO4NmfgtDru5jYQsF+dUQ4L4hB0utu9kFvsLQc79nTBfGVaMYsm3L9G5KWL1Hk9tN0kFnlpaQNQsVbXQFQA6/arDq1fjXFHgSojnxhlpfpgwY0MasAYPMLgu0P8lKc/qfiWFtN15bIzhsk1gn0ivvXf1+jlJfnA/vdPkuWH00Wmdf1f+ocAsvBMOUAiPXG98H/HBYR8QB9ZBdkaSxNzwSeIBiaYPvIZaBHaTaNzQy+Dt2X+sVdtwKGnektuAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=HLbhG34pzc+kefPeUCZBVWGMfUzEB4dTthSOXG3NOyw=;
 b=arPXu2pOS6S0YoFWk2biHX9E56wnFK1O6oo8CkC0QpTJz76LPgKoYqNPYfeK6FkkFUihDAJz1noNqbmtjVGjf1M06HdqA48Gn/yhwz2IUhCYHTkCWtDPMLZEALQOQQkiIocxbTMni20U8C8/2fdAsuz75Fe/E8+9C5K3METeZIY=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <d68f1b2c-06b1-4065-b81a-82463e060d8c@amd.com>
Date: Mon, 25 Nov 2024 19:09:22 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/15] x86/hyperlaunch: add capabilities to boot domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@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>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-16-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-16-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FE:EE_|DS7PR12MB8202:EE_
X-MS-Office365-Filtering-Correlation-Id: 116da5f6-1d56-413f-2ac2-08dd0dbced10
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M0hOSEc3VVFDbUxXbEZobUl6U2hZM0dUcDdlMjV1RlJMdk0wOU5lOHhXTkRB?=
 =?utf-8?B?Q251MmxjdzlLdEh1OFQ3Q09WZEpqTEhDSm1YWXlzTzd0dlkrSXNHWEt0cktT?=
 =?utf-8?B?eUFad1RDN3o1aEljK2taZDUvaXphZmExU1RjL0szQ2hpSkdLWU56Rnl6a09z?=
 =?utf-8?B?OC93aXRXRk5sNUtnOUsrbUpTejhLSDNiSXk3dlBXK2tHT0NMR2R0MjhsbTA0?=
 =?utf-8?B?dGgvZzVtdERjWFlVSjJDU1RhTWU5Nk94TFlwZ0FmRGhqL3czWmRCOVU2em15?=
 =?utf-8?B?bHJYalhDYUlBTlB4bWduRkFBWG1FelFUbjZNZ1lRaFV5bGdlUkZqVzF5R3hz?=
 =?utf-8?B?YWVnTEZSeHdSMUhqTzQzSGJvY282UFUvMC9YNGlTU1RCeEZJSHhnZjMzenZR?=
 =?utf-8?B?Z3Vrc2ZqZ2hhT0NwcUV5RVhnRHFVaWZCRTJCcy9iaExVT3NnUHZJS3hPb2pq?=
 =?utf-8?B?SDdFNzhjcGlzUlY2NGp0bmVSY09hdUZ3ajNWZkczbmNGbm1KN1F2S2ZKNUM1?=
 =?utf-8?B?bndLeExxQXNFQ3lLWjVERXJwWkppc0JNL3VRMFV1c0ZpOXlrM2ExMkpKeENJ?=
 =?utf-8?B?cUxSWHZVeng2eHBFS084WlZXS3FoMzUwSGtWZjBGTGMzOE1sRVBRU3NJMjhi?=
 =?utf-8?B?S09ZMW4rRG1TdlM2UDlmQnY5R20xOUZicWdqVVlrMjMxaEVoOUUxMmIzZUtH?=
 =?utf-8?B?UWpYWVRxSmJPajl2dVNaMzc5MWlWOGF1M0MwQm8wS21TNk14Wng3U0lKWVdU?=
 =?utf-8?B?R1VRajI0Vk5EMW1MeHVBS0pNUkthZy9Gd0pNZlVDRlJwNXlhUlhvQkpoa1RB?=
 =?utf-8?B?VXl1U3h1Sy9WVG8vaE50UEhtRlNmZzRqRjVPUVl0SW5KcUhTWU9MQUl0Qmwv?=
 =?utf-8?B?QXBaaFpGMlBFRkpwc1pvWW9tOC9zSm05aUJ3MzBLeDBKZlpkM0dWdnVwRTVn?=
 =?utf-8?B?OUxZaVVQOVJYUCtyZ2pldTAvOGVnZmVQQ0drbTZONUpuWU5wMDBRcDlWQUtE?=
 =?utf-8?B?bk95L2RZN1MwVE1FOFRuNjhhVVdwMzVaenR0K3ArT1phS1JQd21BdC9pM29m?=
 =?utf-8?B?d0RqT1BxREU0OU1hRUxhMGdyaDlmSVpUemgrTWhpd0NqOWdvbDl2MFljNFZu?=
 =?utf-8?B?UVpQeFZ1bzZ2WUMwYVhvMjU0b0JpaHcrWHZheXZyNU5ZTTU5QzRrSWdpV2o0?=
 =?utf-8?B?OUhzVHdVaFh2WGxuWlAvajNUMGwxN1htYjh5ZzdGTUMycVhVdGVOL09TTlVj?=
 =?utf-8?B?RjFFSnlPR01PR2FHdGNJSTdBSnQycEZZL3NlWnpBejBJNEZxdU1CSktvQng3?=
 =?utf-8?B?YUw0Q0haMGUvYkMzOXA1R2pKSEhPWjBraGZRdGd5SitTcmlGckpadEd3NlhZ?=
 =?utf-8?B?TWJmRjM4UVdzc3BnUmphRFZPWWxWSzZqdlYzUjBlV0E3bmRWeU93VzQyNTJx?=
 =?utf-8?B?S2xCVVp0a2N0Sk9XS3RITkcxZUREem9ubTV3V1dwbFBkVXpJMG1NTk1IKzAw?=
 =?utf-8?B?Vmp4ejhIVWpobThXVWI0VjkzTWVuTTE4NGQzVFd3ZVg0RWZGcTh2U1JtTWtV?=
 =?utf-8?B?NXFDcGlicGFDNUM1YjR2TUZBT05mK0RVODA2T0dYemE1RjU3RFIyaFlBS3Er?=
 =?utf-8?B?SEprNGliZnkycEFFM2hrMGFOaEZTUGVkM2MxcFhEdFAvc0h6aGV6U3c5MTli?=
 =?utf-8?B?ZlE4NUNWalkxTk1EWnNiU3N0blhndUpyUVV5aitOcDdlQ1dLd1ZpWEZJcCtQ?=
 =?utf-8?B?aXBpb1RlTWl2SW1GdFNPZmYrc1RyQUxIYnVXVy9kZjF3ekp5MVFkUVJVT2VG?=
 =?utf-8?B?eHBPT2J3RExYM2xleGJubU5ndVpId05uQ3dCSVQ5UUdlZVF3RnR3dVd2R1Yv?=
 =?utf-8?B?UE5DZDFnaGdBNEFvYzVOd3VHbG5IWDBET2RYTHlGUGNmRTBpdGRncFkrMHN1?=
 =?utf-8?Q?kNMzstbXvMose7MObyMFiumXCZoFMV8I?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 01:52:03.7969
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 116da5f6-1d56-413f-2ac2-08dd0dbced10
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FE.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8202

On 2024-11-23 13:20, Daniel P. Smith wrote:
> Introduce the ability to assign capabilities to a domain via its definition in
> device tree. The first capability enabled to select is the control domain
> capability. The capability property is a bitfield in both the device tree and
> `struct boot_domain`.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/domain_builder/core.c    |  2 +-
>   xen/arch/x86/domain_builder/fdt.c     | 13 +++++++++++++
>   xen/arch/x86/include/asm/bootdomain.h |  4 ++++
>   xen/arch/x86/setup.c                  |  6 +++++-
>   4 files changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/domain_builder/core.c b/xen/arch/x86/domain_builder/core.c
> index 95cab06e6159..eaa019472724 100644
> --- a/xen/arch/x86/domain_builder/core.c
> +++ b/xen/arch/x86/domain_builder/core.c
> @@ -93,9 +93,9 @@ void __init builder_init(struct boot_info *bi)
>           i = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>           bi->mods[i].type = BOOTMOD_KERNEL;
>           bi->domains[0].kernel = &bi->mods[i];
> +        bi->domains[0].capabilities |= BUILD_CAPS_CONTROL;
>           bi->nr_domains = 1;
>       }
> -

This will get cleaned up earlier.

With that:

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


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 01:53:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 01:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843297.1258935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFklD-00064S-Kf; Tue, 26 Nov 2024 01:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843297.1258935; Tue, 26 Nov 2024 01:53: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 1tFklD-00064L-H6; Tue, 26 Nov 2024 01:53:03 +0000
Received: by outflank-mailman (input) for mailman id 843297;
 Tue, 26 Nov 2024 01:53: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFklB-0005yP-L6
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 01:53:01 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20612.outbound.protection.outlook.com
 [2a01:111:f403:2417::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 283796a1-ab99-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 02:52:58 +0100 (CET)
Received: from SJ0PR13CA0042.namprd13.prod.outlook.com (2603:10b6:a03:2c2::17)
 by PH7PR12MB7939.namprd12.prod.outlook.com (2603:10b6:510:278::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.18; Tue, 26 Nov
 2024 01:52:53 +0000
Received: from SJ1PEPF000023CD.namprd02.prod.outlook.com
 (2603:10b6:a03:2c2:cafe::42) by SJ0PR13CA0042.outlook.office365.com
 (2603:10b6:a03:2c2::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.11 via Frontend Transport; Tue,
 26 Nov 2024 01:52:53 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF000023CD.mail.protection.outlook.com (10.167.244.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 01:52:52 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Mon, 25 Nov
 2024 19:52:43 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Nov
 2024 19:52:43 -0600
Received: from [172.23.96.146] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Nov 2024 19:52:42 -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: 283796a1-ab99-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNzo6NjEyIiwiaGVsbyI6Ik5BTTEyLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI4Mzc5NmExLWFiOTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNTg1OTc4LjAwODEyMywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TbJFEvKL0DNtxpp9t7zJJaj0rj7FFG7iMrYBR7B/UXaSWLF6McTJ9gSHCx/YFuvAhx1tdVtebtMGt61KjMWflOI+aZMbtJ5NMRKfHqNnlLhlsQIDxxjneIkzboTIULNdsYFDmUcJYpG1lkyJDlamgyuGlPKEe9Q7v28OCNjkQ83FKGEvNAgmhRn/MiG1+CTSFj0E3U7WFjCIk4AJGZUCPUgR5OUFdMS3p+gylNm9oe7bROVeSgIZ1wcsf2qdAw2nvYGvw+ucj2PmVVCIKMQAgkgmJKgED+RpyuOpAr3D187XHfnWt9GfYIXmd3H03M30YBcL/cTHxOLjvEs3fS0JEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mPUn3Jo/A2ZL2CVrQ2ghv1LmOegn4bY6NabzGL/9xLI=;
 b=B8uFjTZJxvrWszzELmsu18R5Kza30bsf+W1NPegnJjOC1FOTzuZspQ53EYmORSp+RJtX4oUl7vAlq2cPYkOmopkP/+CBBv0wGBeTbgVSGhfKxQUdHib6Hox8aA/2PVKVxC/RB0YcGHSGS6r2URSudFS0pIAYy9ums90eCC/bDcJ91EuIOr87DizIPwV2baIw6jdcJHua0APE/6H7ZUViwGTeoltZaath19NIMH/NHkosh56EcIac6BRIrHcsPX52rCJRZVv+3nwd3l0BEdcF38+ORrELHZy7ll5HvFoeFyp3SIJMuyregCHrKXkgKKuVNjS6VFE6f/ANDQ9a/fYYtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=mPUn3Jo/A2ZL2CVrQ2ghv1LmOegn4bY6NabzGL/9xLI=;
 b=2LYBlKyjdI2MbgJOPhVoBC/BuH1GnxjpJr4qwrPbzYZbjhGW1y0D4yiO/ZzxrSIdcwjYrpXBnxWZAueUBgaVOuOcd0SWeZdtuAmEpHVjsh2VTca3b2hrIPc5E5YBRtIUxnAfwCPyzaTneWw/llprf4vwQ/8+2nL9vCCcLf3a+90=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <40db3a16-0f02-4b9a-ac1c-8e237b32b006@amd.com>
Date: Mon, 25 Nov 2024 19:11:04 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/15] Hyperlaunch device tree for dom0
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <christopher.w.clark@gmail.com>, <stefano.stabellini@amd.com>
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CD:EE_|PH7PR12MB7939:EE_
X-MS-Office365-Filtering-Correlation-Id: e452c032-5a53-4a0e-c445-08dd0dbd0a2b
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?NUl5VTJ2YzhDQ2IyTkFNQ2hUMEw1dUdkQUdleEdWVFZXV2tSNFVwdWFmd1Nk?=
 =?utf-8?B?emRQT2xleEtpdTY1R0xjRzVvRlVtWEMzTnRCWlQ4RnRPVHdwQW9LckxGSGpW?=
 =?utf-8?B?aEFnRGkvdXArNDVSUUlBNXVNaU1XdFRVbTQ0VWtLalJDY2dKbXlBQUcvUjVh?=
 =?utf-8?B?M1pFclpGRkdEVjVBbFlxRmVqVHBNWTkwdXlVaHF3c2FmdWozVTFkRHBzeFdx?=
 =?utf-8?B?eW9qZ0dMMU9jSktrenZEUTBnb2pPYXlMeEtiQlREQUE0NW5BWmRxZjZ5RDdL?=
 =?utf-8?B?Q1JHNUpOU1lPSURhdkJTblowNWg2ZFVVdXFKOFRWRnU3akNBbjJlOE5FUER0?=
 =?utf-8?B?ZS82a2NjRU00WE01QzRmTjBTN0Y0UEZJUVdYQjFjWU5TTDRpOXJjeHZMNEwr?=
 =?utf-8?B?WVpCOWkvTDc1Ti9tK2Zjd3gwQVR0QjkvNnhuQWM4cTRQYlZpS093R09iTzFQ?=
 =?utf-8?B?TGxqMkJTRWs0ZDRDYnpLaThlWFRoeHl3ME0rSFFrQlhXUHYzMnN4K2lWK01G?=
 =?utf-8?B?ZTUxNUxGYllZTGJuOGFoT3U0WENIdkNIV3dibUo2a3JWQ3lYOHRjdzdIZEVE?=
 =?utf-8?B?K0YyR2o0aXkxS1BBK2ZMay9nZ2E5SVdHTzJpQ3B2ei9PNmE2azVCUktSN2dS?=
 =?utf-8?B?RnRZcGRpS2c1bThXL0VFY20veEs1NU1iZ29xYWlzeXliNVI4WU92THJQR05z?=
 =?utf-8?B?cHprRHQ0SzlzKy9WNUFlUk5iSkJJMVNmUDltYmIrTUNSZU1NWWdMY29EQnc5?=
 =?utf-8?B?THJkMktZM0w4YTJ0ZXlKTzhVekpwejZhOGVNV2h1RmZzRStBd0YvS2hxK2Mr?=
 =?utf-8?B?ZzN6UExPRFgvaU4vM1JsNzVVWjFJS3hFdTdtajArS3cxTy9TeUdGdzNGZXFB?=
 =?utf-8?B?UVJiU1JFQStwYmY4dnhNS0FLM3dpNFM2dW5GT1BJMnlBcmZ2TVlWczZYUjJO?=
 =?utf-8?B?Z1JrWldyZFAray95LzFoejg2aVpTa0lNRVZFS0tMYjF6V2xnMlVBK2NYQ0oy?=
 =?utf-8?B?K2F5V3NKTGxrWksxRGtITjJ1cFhTcXRmbnNnZEltWDRVcHpRVlN5YTIyRG83?=
 =?utf-8?B?UzdMYUdCS2tRd0t6Q1BKUS9FVHZ1S1dGM0dVdVg4RW9UOHZEblc1TjRzNDEv?=
 =?utf-8?B?MGl3UHFNNGttVVhUVkd5SDZzTElSV3RqZkpmajMyZHExUnNxUk5ZREFtT29C?=
 =?utf-8?B?czVFaTV5akYwYnBjZVZuSHFFalNXTDM2RUpTa2xleVEwUklhd25yanJ2em1r?=
 =?utf-8?B?a3FLSWpQejVaN1dZK0NDMmRxa1R2VnpXWnVuRkJpY0NISU16YjgvRlNyUWdI?=
 =?utf-8?B?VlA2Si9hSzN1eDRIeEFDR1JjVnVvSkw3WTlnU2IzRzRXUDBwR05aVWdSaUZN?=
 =?utf-8?B?QmlOaE9UeUJGQlI3TlhvRmUwc040eXRBYU5kMUUwZS9qS3dHbnc5eWJLdlBv?=
 =?utf-8?B?WURVbUhhT1pZS1JaZVRCRHRMWXlVSUZQMWhna1dnSzkzUUtoN1MrV2RhWkty?=
 =?utf-8?B?alB5c2JKak9md2FDM0tHV1hycFQ0bVpZUW9udjAzeGQ5Wm4rZHJMUE56Vytx?=
 =?utf-8?B?UzVrR09Tb3B1Q2JoOEplMVB1WmpaZFNHNHNCZG9WaGRPeDh0akRUVlR2TnNZ?=
 =?utf-8?B?TWVPV3lsN1NiY1VmZXc2OTRtWC9yQmlsYWwwN3Q0dDg2TXBSbEo2K05RdkFa?=
 =?utf-8?B?ZkR1Z2F5NDJzN29uaHZMbktiWUJCalUycS85U3NOS0g3bkk1R2N2KzJDa3Rs?=
 =?utf-8?B?M1dmdjZDRXN5SzkzcW50REZEOVE0cGt0dXRET09Ub2tCaWZoekRhNjdSTHpG?=
 =?utf-8?B?Ti91akhFbnErS3UvdEtoOThLOVFpYnpQc1pDN2IzS3hxVmNta2JFN1BvTFFn?=
 =?utf-8?B?Wmd5dzJXeG9jc3lOeEdnNTZwMTQxOFMrM1Z4UkdJY1M4ckJ2aVNZTVZlUlBo?=
 =?utf-8?Q?TF/nXtCrm72Cb6wR0MfaC2pCNzidNZIO?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 26 Nov 2024 01:52:52.5536
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e452c032-5a53-4a0e-c445-08dd0dbd0a2b
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CD.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7939

On 2024-11-23 13:20, Daniel P. Smith wrote:
> The Hyperlaunch device tree for dom0 series is the second split out for the
> introduction of the Hyperlaunch domain builder logic. These changes focus on
> introducing the ability to express a domain configuration that is then used to
> populate the struct boot_domain structure for dom0. This ability to express a
> domain configuration provides the next step towards a general domain builder.
> 
> The splitting of Hyperlaunch into a set of series are twofold, to reduce the
> effort in reviewing a much larger series, and to reduce the effort in handling
> the knock-on effects to the construction logic from requested review changes.

Having gone through this, I think you want to ensure that 
docs/designs/launch/hyperlaunch-devicetree.rst is updated with each 
patch adding a property to ensure they stay in sync.

Regards,
Jason




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 06:03:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 06:03:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843349.1258961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFoeg-00036F-J9; Tue, 26 Nov 2024 06:02:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843349.1258961; Tue, 26 Nov 2024 06:02: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 1tFoeg-000368-Fv; Tue, 26 Nov 2024 06:02:34 +0000
Received: by outflank-mailman (input) for mailman id 843349;
 Tue, 26 Nov 2024 06:02: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=A/G6=SV=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tFoef-000362-DQ
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 06:02:33 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20613.outbound.protection.outlook.com
 [2a01:111:f403:240a::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03f7a432-abbc-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 07:02:28 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB8826.namprd12.prod.outlook.com (2603:10b6:510:26a::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.19; Tue, 26 Nov
 2024 06:02:21 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8182.019; Tue, 26 Nov 2024
 06:02: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: 03f7a432-abbc-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwYTo6NjEzIiwiaGVsbyI6Ik5BTTA0LU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjAzZjdhNDMyLWFiYmMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjAwOTQ4LjQ5NTE5NCwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=us4jKhQhoQTsh/fzNumeyx/XsUsVrh5uYPhu156IymuDEfAoAjw5EX0vvRTDvGhk05p5ICTqRmQNlr1hH/wk2EZ9it2DIhnxfX/YDBWi9Ixt+kaNJ1+JJh5DNKM8mmCIbd9QPzSLOb2O/C5p41VGqbJMqMKX2UoYB3OgRhzSaoGASx02DoVH1AyoBVvCRJKqiih56kHxQwQhfDPrKkqNdRFmNpO3xHQtLEZwHyc1cXdhdk7IKHXYPxSeKxc2WERx6uw9x4cGmYVmvUFcK16N3EUFlmpVkPPUgqLS4UyBJuf0btWeckZm1Qyp81VUvk60PzcrI1jcJJkZCUea8bkrbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E9k6LndSu4habBBfWJ6W15Wke6T4UEitBbqEMtaU284=;
 b=cBgtFjQejrZMWXkc7VyedohVEPaGOXsIgt6W0V0oF+vprac15cF+bXGceGFuHV67KHwnZHYRoBJ63uNXdyLeEzrnzyOG5X3iW3tFoU2ISMudN+IYz7UMrUbkvpxhKbW1Zymknnpwi5I1qgzWa4i6G9xJTRfYbHKHrijW8YwKt1bIdBDw/gQeAmmB7M4sKSXeraGkf4h/GIbnJ0TjMQKQlVLxvB58V0/GetYw2X0GzNMOwhoHuhNU9GHAASyUlOSBNOcf2vqbQCIfeG6QPqIpLgwDuD1QEGxx/Og9t7eItOpX5vj49xYi7AdD4nRBc7QXIKvz8n+wp5zLMKjCGDeYtg==
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=E9k6LndSu4habBBfWJ6W15Wke6T4UEitBbqEMtaU284=;
 b=R4kPA/wqsOSxGdv3t/ac/d8FPtTiX11OZhRGmg7m2i6lTfCCmFyIygXIjPcSBQ5Yti4t9JaVUabsj2T5LRIERBfZdIoZFgQ7kjr8j/AzN3D5UBoBBxS8sDcvAcH2BRUNTM0982FSzLRSMnFs9ZACWSTuG6OXLB4cycRC2IQe7zA=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAIABfwWAgAFxTQD//+JeAIABss4A///tiAAAzKybgAACnTYAADSCfYA=
Date: Tue, 26 Nov 2024 06:02:14 +0000
Message-ID:
 <BL1PR12MB5849B85C116A74D138FF65AAE72F2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz8Cwj3KJ1BIBEg_@macbook>
 <BL1PR12MB584977971D2C0A00443A1A79E72E2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Z0Rx2IXqqvrLaIIq@macbook>
In-Reply-To: <Z0Rx2IXqqvrLaIIq@macbook>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8182.018)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|PH7PR12MB8826:EE_
x-ms-office365-filtering-correlation-id: be1b0a0f-0b98-46a4-fd32-08dd0ddfe05d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?c3VSTkR1dU5MVHhzUzV0RUJYcDNWMDZ1NStiazhyZ1BIcnlIdllzWE9CTFhJ?=
 =?utf-8?B?YnJRNGxxMG12MkpYUHJDbkxZVUxrNXFWaHN6SGdLRFhXU2V5NFhXZ0VGSS9k?=
 =?utf-8?B?aFBRNVp4c2hzaUQ4OUpKUDhzNUMwdUVqZ3M0VHNLOEhFNW5MOWdXdjZHNlJY?=
 =?utf-8?B?elczQTAyTXkzSjRGekU4M1VBUko4OUJMWmVqbW9yRHV3YWFzNkdPcGFKeldO?=
 =?utf-8?B?QmhVMmNjTFo3ZTMwRGFUb1p2NStGVVRnRGhUcURFS2ptWW4xSzlaVEhXVzhW?=
 =?utf-8?B?eEhjNDVGV243em5PaFdBMlVGOHg1aVRQK3BXUkFnYTlkMnBWaGVqd1cvNW02?=
 =?utf-8?B?UzdBT3RuS0pPUkx6QnM2bEpjSFBiS3FVNmF3dG1lVmxjNFcxTTNzK2hFSFF1?=
 =?utf-8?B?UWk4YW5tWUZXTTE5amEzQWV1WDNhTXZseEhDTGduSzZxV3d2ZGFmT0JIei8z?=
 =?utf-8?B?OG9BOGsrMzdRbENJVmVHMklFZzlLWkN2ZDdCUENQOHBtR2tBV21WZzNrN3hD?=
 =?utf-8?B?SHpaZDlpTnozTVlmSWYvSm92MzVGR0RZcHU4UDVhazNjb0srYjMrNFQ2ZFNi?=
 =?utf-8?B?Y0tncWppOS9hTnA4Y3ZhUjYyK2V2dW9hSC8wTFBHQzJZWW5xRmRiTkFyN3Vq?=
 =?utf-8?B?WkNXWTB1cEo4QmJTMkdTWGt4K1dTdXVIakFobktaMlIxVE5MeEl5ZE0ydUdk?=
 =?utf-8?B?RzVoTDZ0YUxqOFF3M3lTRG1PNlF3U29BZTh6Uk9zUlM5d2cwYktudGFpeDNz?=
 =?utf-8?B?R3VJTjVFeWpyNzdhR3lJZm9FSi9FN244NGpVelo5VDRVVFhKazlmN3MraDkx?=
 =?utf-8?B?LzdTTmgyLytEV3FoalRER2xPRUhQY3FlWnJhNm9iaXpZZkk1ZVNlN1AzWldD?=
 =?utf-8?B?WjNLU1RMa1FFYUhneDI5cHhtdmwxOW05ZFdHZW11VjNZZk0rYzk0M0lqN09j?=
 =?utf-8?B?MUVtbmRhU2EvTDdqblFiSzk3d3RkZGZDREZ5WGdhQ3VwRmVqYm9jWE5OUmZF?=
 =?utf-8?B?STVEYm8vZHZuQjNTajFkK0xSTWU0Umd3ZGl0bGx4S283RktrcWNxSGt3emFs?=
 =?utf-8?B?UUM5Qk9kQnNEczVmdHR2cmwya3hkQ1Z6eW5PTWI2QnVYcEZmUk9rdXp1cDg0?=
 =?utf-8?B?NUNrKzJkSE9iYklUS3hnT3JmNzJHL0ZWYnBGcGpZRjJueFQ1MlJoVE8rVjlD?=
 =?utf-8?B?OU1MSnBxR25MMHlpOXVFc1F5b004dkFCYjR5T2ZCbk50T0tDbnFmbmdDNjdt?=
 =?utf-8?B?ME53d0xuMVFBNHk4YVhHNTJMMXlFTXFiazJxNm8xdG5WbzR4U2FtOFJ4aGNY?=
 =?utf-8?B?RzhmN014a3FOMTNUeHdFQ25jb2taTGhUQTV4cVcxazVNYWpYQkszU3BBWk1h?=
 =?utf-8?B?YzIyMGdMNnYrQmw5U2tocTg4d2RHVGFoM0Y3ODNQazRXTlRjWHpnSUJDSFlj?=
 =?utf-8?B?Y0hnQ2VqWTA5RmhZVGRTS2NjQnYzeDZWRk9wV1JwOEM4aDFmUHNGcElzMjY3?=
 =?utf-8?B?UVYyTHA1Tlk2N0RpUHBjeERJcmVxenp4clRHYjZnaFN1RUd6RWlhVlg0YVlt?=
 =?utf-8?B?cU16eEVteTl4QWlkVTIzSzFqVFN4Zmx3WUN3WHE2R2J1RElWTWFOUlF5RWRv?=
 =?utf-8?B?UmVRWmVPNFhBV1g0djNuTDFNZ3RLUkdaRG1jeFJWc3JZNk9xNHpRNDdCNFlR?=
 =?utf-8?B?cnpyeE0vOCtjSmZpRitJTGEwTjZNcG53SUFQb1hBNWo5UTJBOHFTMXcvWEVC?=
 =?utf-8?B?UWhzY1g3MmcrNEFjakJKU1JSM1EwQjdENE4rL2JLcm1IQ3E4OGp0Qk9kNTF4?=
 =?utf-8?B?VTl0VVFHT3cwcW8zRlBNWmFuWXRXa25aSDhDMU11Qlg5UmtxNml2RjYzNVNl?=
 =?utf-8?B?QUN2eVd6aHFKTkVlVU81R3U2MXZUNmVydHd2WGg4UnAyc3c9PQ==?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RE1WY1Ixamd5OXk2aGRuWmpyZGdYM05za1lqanc5MUhPaG9EUWNKNGp5MUxq?=
 =?utf-8?B?MUxOMk94ZlZ5S1MrdmdaSWpnNmZWRjBxamJwNmJWMHZYM1RDQXFVSU4rMDdj?=
 =?utf-8?B?U1o2b3ZJUFZvWE9ldytIMGQ5N0srSTFJQkVEaVhoOXg5aTlPL1Q4VGtyVnRq?=
 =?utf-8?B?Q1ZGZ1dFZzJYcmxCRzR3dVIrQ1FRQ2NuVjJBTm5sQlkyU0p5Z0ZwOWhQTkxz?=
 =?utf-8?B?dHhYbHFHRVJuTENxdThJQTZHaWEwbTRwYWl0TytINDdQRjBENHE3Y3JwY3Zz?=
 =?utf-8?B?ejRyWWgrZGZ4dUhOMmNKSHc1RWQ5ZS95bkRNVGdXNDZtdWJNUXRWQk1XZTND?=
 =?utf-8?B?Skw3NlltZVRmWVhIU2dTbEVONVZTaDVVM2xMODlFZEF6a1lHblF5T0VuS2pW?=
 =?utf-8?B?NXhaOUd3dEhmRHpVd1ZWTEFrNExlMmRWYXhBK3E0Y1hBQitiNHFmeEY2dXVp?=
 =?utf-8?B?Wml6VXovaEMra1kxa0lPUi8wYUhIbDlmZGhrazgvTGdmYkJmdk92bVhKUm9p?=
 =?utf-8?B?VlNla2tlQjhXOFNtcXBsR3kwTURhWnlMWFJMRS9XRlpCL1IwYVN1V2hvY2hU?=
 =?utf-8?B?UmJDcDQyQXJkZUpLOHpzS2xIWG5NdU42cUlkRTNkNWxpV3pmbWxCM0k5S0hv?=
 =?utf-8?B?UGhzZmNuYzdXS3JTSTRuck5WTXBwRDB1bWVHdmt0Mm9qd21TRXRBNHliMjZz?=
 =?utf-8?B?eDhPTHgvT3FrZEtsOTJqT2h5WmZpc2M0eHIycGJNcVEyTEVJZmpBYStvcCsw?=
 =?utf-8?B?c254MDRURzdFNGpuc0RmcGFmWm81N3pKamJScXkySUgwU1pOeExkRFBZRkcy?=
 =?utf-8?B?UDZhZTBkcTdIcEVWWDhybWZzY0Q0Vkl2RThNMVp5aHBHMXczUTFLcER2RjBG?=
 =?utf-8?B?dnhWS25vVEZpcjUyQW1aanVZTHArWVFURHM0eHl5Q2lJL1BEaUJXaFZ4aE0y?=
 =?utf-8?B?L1hBSHV2U2FVNU5WUEo0SXFpWTQ2WFo0SlQybm1KbGlWTElPMHJETWZzbFdk?=
 =?utf-8?B?YmUzVkJISmxEaWtzL0M3Q3lhVUMvbGdZQnhiMjEramdYRnQ1Q2lhOG9PRVlC?=
 =?utf-8?B?UHkzNFBROG1GOWpzOE9LcUhvSTJzbzgvRjJlUDgzL0lReFA3VFZCMXJzWkhC?=
 =?utf-8?B?clM4YWJCc29PYkxUWWJCSVNmSHBlcFlOQjVUZkNsTWE2bWwzRnZ3SFhhbzRU?=
 =?utf-8?B?YXl5NWppaWhQMkJwbldmQTR3enUrcjYrWUxGQy9TcnJkaGRKMHpWclJ6QzBz?=
 =?utf-8?B?QmtSeDl6Vk5HN0tybHRCNEs3a1lEVzA1a0NZY2Nza3NiQmhzNTJoRGFUdWE3?=
 =?utf-8?B?SWtZZ2xCaEFvMVpxOC80RldCa2JiZnFya2krQ0IwdGpyVjRDTkNQVWV3NzBa?=
 =?utf-8?B?YnFQWS9vMXBrK25STWRaOVF5MWp0QW83Mms2NjVDK0JMV3I5MW9OZ09hSmRM?=
 =?utf-8?B?Qk9GUDhORlV5cmx2TFZKNllaYm5TYnNjU2lPbDBkd3dRdGlndmtqTW5UdXk2?=
 =?utf-8?B?QXdtbC9IeG9rSlB5a0g0Uk5SNEpCOWloUFppVjl3R2RnZXVDci9BbmxLS2oy?=
 =?utf-8?B?RTZERWhFNWtEaGFWaW9mb1dmMm8yMnB4bEZvUVJIZlZpVm8raFhEandlbW5y?=
 =?utf-8?B?UU5TMHhuZ2dlcUVLOHc2SjdUTXkxZWNncTNSM2ZYWng5WUQxNnZNd0V0ME11?=
 =?utf-8?B?U0ovd29XOGZKS1hrc3pKUlMvdWdyV2lmOE1XZ29maGtXa0ZsS1RDa1R5enA2?=
 =?utf-8?B?eXhGcnppZWhmK1ppc05SZENveDlkczZnY1V3WkN4Sk93NGs2TU5QbEtZeEhj?=
 =?utf-8?B?VGpHUWtsT1RpdGNYNkh1azVLZDY1d2U2a216ZC82bE1neUpTQmpJd3c4V2tn?=
 =?utf-8?B?RkFBdmFyQkRCVHpVWUNpMEt2UzdGd0c1UjdVUVIvVkljY0xMOFJKU3lFRjV6?=
 =?utf-8?B?bDZ6WlR4aU9rM3k4YlYxaGxJMEg5U1h0NnA5VGNhK1NCWHFmeG1ZemRUWmw4?=
 =?utf-8?B?OFJRM1VZRWkwaGtUNkJPd3VLRFpaK3VTbHYrclpOZCtIZno3SXhGOXRZRjZN?=
 =?utf-8?B?ZjhaaVdzU0h0WmhFSWxGVlV3Sk5BR0U4eGlVbnMvNFA1N1lmSUQ2SzNCVWFj?=
 =?utf-8?Q?/iGQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7C506A226D31844E890A3B906186B77E@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: be1b0a0f-0b98-46a4-fd32-08dd0ddfe05d
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2024 06:02:14.9024
 (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: zrhlfGTxB9ngQWVFkVGor1mYdRJNE8m7pzagebiBMi3q1blblGKzVEy3hzntxdD2KOiM+2T1h8PczIUEd8meQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8826

T24gMjAyNC8xMS8yNSAyMDo0NywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gTW9uLCBO
b3YgMjUsIDIwMjQgYXQgMDM6NDQ6NTJBTSArMDAwMCwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4g
T24gMjAyNC8xMS8yMSAxNzo1MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBUaHUs
IE5vdiAyMSwgMjAyNCBhdCAwMzowNToxNEFNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+
Pj4+IE9uIDIwMjQvMTEvMjAgMTc6MDEsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+PiBP
biBXZWQsIE5vdiAyMCwgMjAyNCBhdCAwMzowMTo1N0FNICswMDAwLCBDaGVuLCBKaXFpYW4gd3Jv
dGU6DQo+Pj4+Pj4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIG91ciBtZXRob2RzIGlzIHRo
ZSB0aW1pbmcgb2YgdXBkYXRpbmcgdGhlIHNpemUuDQo+Pj4+Pj4gWW91cnMgaXMgbGF0ZXIgdGhh
biBtaW5lIGJlY2F1c2UgeW91IHVwZGF0ZWQgdGhlIHNpemUgd2hlbiB0aGUgZHJpdmVyIHJlLWVu
YWJsZWQgbWVtb3J5IGRlY29kaW5nLCB3aGlsZSBJIHVwZGF0ZWQgdGhlIHNpemUgaW4gdGltZSB3
aGVuIGRyaXZlciByZXNpemUgaXQuDQo+Pj4+Pg0KPj4+Pj4gSW5kZWVkLCBteSBsYXN0IGd1ZXNz
IGlzIHRoZSBzdGFsZSBjYWNoZWQgc2l6ZSBpcyBzb21laG93IHVzZWQgaW4gbXkNCj4+Pj4+IGFw
cHJvYWNoLCBhbmQgdGhhdCBsZWFkcyB0byB0aGUgZmFpbHVyZXMuICBPbmUgbGFzdCAocG9zc2li
bHkgZHVtbXk/KQ0KPj4+Pj4gdGhpbmcgdG8gdHJ5IG1pZ2h0IGJlIHRvIHVzZSB5b3VyIHBhdGNo
IHRvIGRldGVjdCB3cml0ZXMgdG8gdGhlIHJlc2l6ZQ0KPj4+Pj4gY29udHJvbCByZWdpc3Rlciwg
YnV0IHVwZGF0ZSB0aGUgQkFSIHNpemVzIGluIG1vZGlmeV9iYXJzKCksIHdoaWxlDQo+Pj4+PiBr
ZWVwaW5nIHRoZSB0cmFjZXMgb2Ygd2hlbiB0aGUgb3BlcmF0aW9ucyBoYXBwZW4uDQo+Pj4+Pg0K
Pj4+PiBUaGlzIGNhbiB3b3JrLCBjb21iaW5lIG91ciBtZXRob2QsIHVzZSBteSBwYXRjaCB0byBk
ZXRlY3QgYW5kIHdyaXRlIHRoZSBzaXplIGludG8gaGFyZHdhcmUgcmVnaXN0ZXIsIGFuZCB1c2Ug
eW91ciBwYXRjaCB0byB1cGRhdGUgYmFyW2ldLnNpemUgaW4gbW9kaWZ5X2JhcnMoKS4NCj4+Pj4g
QXR0YWNoZWQgdGhlIGNvbWJpbmVkIHBhdGNoIGFuZCB0aGUgeGwgZG1lc2cuDQo+Pj4NCj4+PiBU
aGlzIGlzIGV2ZW4gd2VpcmRlciwgc28gdGhlIGF0dGFjaGVkIHBhdGNoIHdvcmtzIGZpbmU/ICBU
aGUgb25seQ0KPj4+IGRpZmZlcmVuY2Ugd2l0aCBteSBwcm9wb3NhbCBpcyB0aGF0IHlvdSB0cmFw
IHRoZSBDVFJMIHJlZ2lzdGVycywgYnV0DQo+Pj4gdGhlIHNpemluZyBpcyBzdGlsbCBkb25lIGlu
IG1vZGlmeV9iYXJzKCkuDQo+Pj4NCj4+PiBXaGF0IGhhcHBlbnMgaWYgKGJhc2VkIG9uIHRoZSBh
dHRhY2hlZCBwYXRjaCkgeW91IGNoYW5nZQ0KPj4+IHJlYmFyX2N0cmxfd3JpdGUoKSB0bzoNCj4+
Pg0KPj4+IHN0YXRpYyB2b2lkIGNmX2NoZWNrIHJlYmFyX2N0cmxfd3JpdGUoY29uc3Qgc3RydWN0
IHBjaV9kZXYgKnBkZXYsDQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgcmVnLA0KPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgdmFsLA0KPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCAqZGF0YSkNCj4+PiB7DQo+Pj4gICAgIHBjaV9jb25mX3dyaXRlMzIocGRldi0+
c2JkZiwgcmVnLCB2YWwpOw0KPj4+IH0NCj4+Pg0KPj4gSWYgSSBjaGFuZ2UgcmViYXJfY3RybF93
cml0ZSgpIHRvOg0KPj4gc3RhdGljIHZvaWQgY2ZfY2hlY2sgcmViYXJfY3RybF93cml0ZShjb25z
dCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHJlZywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDMyX3QgdmFsLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2b2lkICpkYXRhKQ0KPj4gew0KPj4gICAgIHByaW50aygiY2pxX2RlYnVnICVw
cDogYmFyIGN0cmwgd3JpdGUgcmVnICV1LCB2YWwgJXhcbiIsICZwZGV2LT5zYmRmLCByZWcsIHZh
bCk7DQo+PiAgICAgcGNpX2NvbmZfd3JpdGUzMihwZGV2LT5zYmRmLCByZWcsIHZhbCk7DQo+PiB9
DQo+Pg0KPj4gSSBjYW4gc2VlIHRocmVlIHRpbWUgcHJpbnRzLCBpdCBjYW4ndCB3b3JrLg0KPj4g
KFhFTikgY2pxX2RlYnVnIDAwMDA6MDM6MDAuMDogYmFyIGN0cmwgd3JpdGUgcmVnIDUyMCwgdmFs
IGQ0MA0KPj4gKFhFTikgY2pxX2RlYnVnIDAwMDA6MDM6MDAuMDogYmFyIGN0cmwgd3JpdGUgcmVn
IDUyMCwgdmFsIGQ0MA0KPj4gKFhFTikgY2pxX2RlYnVnIDAwMDA6MDM6MDAuMDogYmFyIGN0cmwg
d3JpdGUgcmVnIDUyOCwgdmFsIDEwMg0KPj4NCj4+IElmIEkgY2hhbmdlIHJlYmFyX2N0cmxfd3Jp
dGUoKSB0bzoNCj4+IHN0YXRpYyB2b2lkIGNmX2NoZWNrIHJlYmFyX2N0cmxfd3JpdGUoY29uc3Qg
c3RydWN0IHBjaV9kZXYgKnBkZXYsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCByZWcsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90IHZhbCwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdm9pZCAqZGF0YSkNCj4+IHsNCj4+ICAgICBpZiAoIHBjaV9jb25mX3JlYWQxNihw
ZGV2LT5zYmRmLCBQQ0lfQ09NTUFORCkgJiBQQ0lfQ09NTUFORF9NRU1PUlkgKQ0KPj4gICAgICAg
ICByZXR1cm47DQo+PiAgICAgcHJpbnRrKCJjanFfZGVidWcgJXBwOiBiYXIgY3RybCB3cml0ZSBy
ZWcgJXUsIHZhbCAleFxuIiwgJnBkZXYtPnNiZGYsIHJlZywgdmFsKTsNCj4+ICAgICBwY2lfY29u
Zl93cml0ZTMyKHBkZXYtPnNiZGYsIHJlZywgdmFsKTsNCj4+IH0gDQo+Pg0KPj4gSSBjYW4gb25s
eSBzZWUgb25lIHRpbWUgcHJpbnQ6DQo+PiAoWEVOKSBjanFfZGVidWcgMDAwMDowMzowMC4wOiBi
YXIgY3RybCB3cml0ZSByZWcgNTIwLCB2YWwgZDQwDQo+Pg0KPj4gVGhlIGNoZWNrIHByZXZlbnRl
ZCB0aGUgdHdvIHRpbWVzIGluY29ycmVjdCB3cml0ZSBhY3Rpb25zLg0KPj4gICAgIGlmICggcGNp
X2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9DT01NQU5EKSAmIFBDSV9DT01NQU5EX01FTU9S
WSApDQo+PiAgICAgICAgIHJldHVybjsNCj4+DQo+PiBBbmQgd2h5IG15IG9yaWdpbmFsIHBhdGNo
IGNhbiB3b3JrIHRvbywgdGhlIGNoZWNrOg0KPj4gKyAgICBjdHJsID0gcGNpX2NvbmZfcmVhZDMy
KHBkZXYtPnNiZGYsIHJlZyk7DQo+PiArICAgIGlmICggY3RybCA9PSB2YWwgKQ0KPj4gKyAgICAg
ICAgcmV0dXJuOw0KPj4gaGFwcGVuZWQgdG8gcGxheSB0aGUgc2FtZSByb2xlIGFzIFBDSV9DT01N
QU5EX01FTU9SWSBjaGVjay4NCj4gDQo+IFRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIGZpZ3VyaW5n
IHRoaXMgb3V0LiAgU28gaW4gdGhlIGVuZCBpdCdzIGEgYnVnDQo+IGluIHRoZSBkcml2ZXIgdGhh
dCBwbGF5cyB3aXRoIFBDSV9SRUJBUl9DVFJMIHdpdGggbWVtb3J5IGRlY29kaW5nDQo+IGVuYWJs
ZWQuDQpZZXMsIEkgdGhpbmsuDQpEdXJpbmcgZHJpdmVyIGluaXRpYXRpb24sIGl0IGNhbGxzIHBj
aV9yZWJhcl9zZXRfc2l6ZSB0byByZXNpemUgQkFScywNCmFmdGVyIHRoYXQsIGl0IGNhbGxzIHBj
aV9yZXN0b3JlX3N0YXRlLT5wY2lfcmVzdG9yZV9yZWJhcl9zdGF0ZSB0byByZXN0b3JlIEJBUnMs
DQp0aGUgcHJvYmxlbSBpcyB3aGVuIGNhbGxpbmcgcGNpX3Jlc3RvcmVfcmViYXJfc3RhdGUsIG1l
bW9yeSBkZW9kaW5nIGlzIGVuYWJsZWQgc3RhdGUuDQpJIHdpbGwgZGlzY3VzcyB3aXRoIG15IGNv
bGxlYWd1ZXMgaW50ZXJuYWxseSB3aGV0aGVyIHRoaXMgbmVlZHMgdG8gYmUgbW9kaWZpZWQgaW4g
YW1kZ3B1IGRyaXZlci4NCg0KPiANCj4gV29uJ3QgdGhpcyBhbHNvIGNhdXNlIGlzc3VlcyB3aGVu
IHJ1bm5pbmcgbmF0aXZlbHkgd2l0aG91dCBYZW4/DQpOYXRpdmUgbGludXggd29ya3MgZmluZSwg
ZG9uJ3Qga25vdyB3aHkuIA0KDQo+IA0KPiBJIHRoaW5rIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9u
IGJ1dCB0byB0cmFwIGFjY2Vzc2VzIHRvIHRoZSBjYXBhYmlsaXR5DQo+IHJlZ2lzdGVycyB0aGVt
c2VsdmVzIGluIG9yZGVyIHRvIGVuc3VyZSBhIG1pbmltdW0gYW1vdW50IG9mIHNhbml0eQ0KPiAo
aW93OiBubyB3cml0ZXMgdG8gdGhlIFJlQkFSIGNvbnRyb2wgcmVnaXN0ZXJzIGRlY29kaW5nIGlz
IGVuYWJsZWQpLg0KR290IGl0LCBJIHdpbGwgc2VuZCBhIFYyIHRoYXQga2VlcHMgdXNpbmcgbXkg
bWV0aG9kLg0KDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkpp
cWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 06:25:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 06:25:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843106.1258971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFp1A-0005t0-Ct; Tue, 26 Nov 2024 06:25:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843106.1258971; Tue, 26 Nov 2024 06: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 1tFp1A-0005st-9B; Tue, 26 Nov 2024 06:25:48 +0000
Received: by outflank-mailman (input) for mailman id 843106;
 Mon, 25 Nov 2024 19:49: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=KbVG=SU=gmail.com=zichenxie0106@srs-se1.protection.inumbo.net>)
 id 1tFf54-0003g2-RT
 for xen-devel@lists.xenproject.org; Mon, 25 Nov 2024 19:49:10 +0000
Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com
 [2607:f8b0:4864:20::841])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54d0354b-ab66-11ef-a0cd-8be0dac302b0;
 Mon, 25 Nov 2024 20:49:07 +0100 (CET)
Received: by mail-qt1-x841.google.com with SMTP id
 d75a77b69052e-466929d6013so12842811cf.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 11:49:07 -0800 (PST)
Received: from localhost.localdomain (mobile-130-126-255-54.near.illinois.edu.
 [130.126.255.54]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4653c3dc08dsm49025411cf.3.2024.11.25.11.49.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 Nov 2024 11:49: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: 54d0354b-ab66-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjo4NDEiLCJoZWxvIjoibWFpbC1xdDEteDg0MS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU0ZDAzNTRiLWFiNjYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNTY0MTQ3Ljc2NDA5MSwic2VuZGVyIjoiemljaGVueGllMDEwNkBnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732564146; x=1733168946; 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=YnQPQy9QUMSA3qSC9VfWBW7KVkhU2YHo+3Vjavlz26Y=;
        b=S/KDu0+/dlvFDGa91q7UQuoeFxwguWIw5ZOLZ3Wai9LX5aa54vWMmhOSe+Sjb0LjP9
         cIuaiEh5IhvM9kkoAKqI89XPwiIr7bSX57duuWBflFGZUDurhKCsDHnZUi9Ql76FsFxg
         uew2u0syPuHlLV+srDThtV9eHFpneZjFRn51QF4hhiXmAY0kHWRdheZ+8vNCFBf87tsV
         xaf7sR+Sdo4yJCCEWUVWd5xT+a6/p5gAN0T7QHJGSxUcBc9bJCGOqb4s/8Pf7XN5CBP5
         y7RsxAlBGJlh8HJWXrdsZf+4ipPV6Jp/WR7obaa/DIGNCenzskG5eoWbVon0Kafh0rcx
         pGDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732564146; x=1733168946;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=YnQPQy9QUMSA3qSC9VfWBW7KVkhU2YHo+3Vjavlz26Y=;
        b=iuWLlBLCOQosS/H223nWDA2AgSjt2S0hwz219g5VblEpsq1pp5hqhNVy/tez/j3aON
         XGoD6NJwaqz2o6oUqm0FOYBPFKKHEO19Nyo3AcQ4kJLuMip/LrYxANp8rKU0q4fi5VZi
         d8ZG2J7hgmeYfSiDPPPNG3KK05MqnzvbW4uN4b9R2/HBmYYaFV7z69Zfrjg8kcZxKA2u
         WpVT/ug5v2I/mUGinDxhP9vZ/iOfuVlEbxwkpjGYYZiMXtkdwcRfbZnzFqRRxp4hQ9nP
         agIi9t8grbxmyk2ZK20sIESf8+ci5k7gsL9IsFeMWtOwt2oE830ESSTaxBPet9/4WP8m
         CTug==
X-Forwarded-Encrypted: i=1; AJvYcCV7aSwxfq/MNWYjXet6m5qAIEHFWXiZ0swttFhtI5lOn2V6zBNhO5qYJJ817sxvPWKIO4bQqIG2Kck=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrUBLMBHRSZe3XDETKIPm0iOrbBu3Tf00u1kGIJvcEWxdqFF7t
	xdX4YP5zECNeleiO7wHVYJ0gwkWXFq+MjePidzCU2itOBFba4ARY
X-Gm-Gg: ASbGncs3ocxVCf6Ub/Sz7zoH6pdyIhe5CRZS/UYPjC1d/gvB44VSNsxcM0lVhDjWK7F
	fDp6doywFveVGcklB6vEdyjPuOjrkGRb/5XpN3UQeWNAOdbBN4JNElpoiLcSpgkZD3d88c2icon
	g54dFpSIfgNNatZvcU/nGcTQhTNArt/rZbyZcdbm2ixF1OMG1uocGmVwFBWtlIJp3YwjH+z+TCl
	e93U/LPE/nB9B+HkFT71x3gudg5J+TBWYj1B+s0oHR+ag57RxiKLHnh7iq5Bu3a3CXfLjRYDGws
	Qwuo4cwCJCtc4O/YciSvhgpudYoDhSq6E+ua
X-Google-Smtp-Source: AGHT+IGASnVlZTy8uOIIeLvm0VVgeI8MN7apGYPIXsgonX7l5aN8h7HkmTpP2xqHs+QhD2knS7irSw==
X-Received: by 2002:a05:622a:391:b0:461:17e6:2651 with SMTP id d75a77b69052e-4653d525977mr210750511cf.8.1732564146425;
        Mon, 25 Nov 2024 11:49:06 -0800 (PST)
From: Gax-c <zichenxie0106@gmail.com>
To: oleksandr_andrushchenko@epam.com,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	tzimmermann@suse.de,
	airlied@gmail.com,
	simona@ffwll.ch,
	matthias.bgg@gmail.com,
	angelogioacchino.delregno@collabora.com
Cc: dri-devel@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Zichen Xie <zichenxie0106@gmail.com>
Subject: [PATCH] drm/xen-front: cast calculation to __u64 in xen_drm_drv_dumb_create()
Date: Mon, 25 Nov 2024 13:48:51 -0600
Message-Id: <20241125194850.14274-1-zichenxie0106@gmail.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Zichen Xie <zichenxie0106@gmail.com>

Like commit b0b0d811eac6 ("drm/mediatek: Fix coverity issue with
unintentional integer overflow"), directly multiply args->pitch and
args->height may lead to integer overflow. Add a cast to avoid it.

Signed-off-by: Zichen Xie <zichenxie0106@gmail.com>
---
 drivers/gpu/drm/xen/xen_drm_front.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index aab79c5e34c2..639aad26f6c9 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -415,7 +415,7 @@ static int xen_drm_drv_dumb_create(struct drm_file *filp,
 	 * For details also see drm_gem_handle_create
 	 */
 	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
-	args->size = args->pitch * args->height;
+	args->size = (__u64)args->pitch * args->height;
 
 	obj = xen_drm_front_gem_create(dev, args->size);
 	if (IS_ERR(obj)) {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 07:29:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 07:29:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843374.1258985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFq0Y-0004oo-Sp; Tue, 26 Nov 2024 07:29:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843374.1258985; Tue, 26 Nov 2024 07:29: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 1tFq0Y-0004oh-QE; Tue, 26 Nov 2024 07:29:14 +0000
Received: by outflank-mailman (input) for mailman id 843374;
 Tue, 26 Nov 2024 07:29: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFq0X-0004oL-DR
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 07:29:13 +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 20ad0547-abc8-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 08:29:10 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4349cc45219so20569135e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Nov 2024 23:29: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
 ffacd0b85a97d-3825fad6723sm12578240f8f.16.2024.11.25.23.29.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Nov 2024 23:29: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: 20ad0547-abc8-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIwYWQwNTQ3LWFiYzgtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjA2MTUwLjM4Mjg4LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732606150; x=1733210950; 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=QyiUH4G3ChJbqNvplGVO/K9BWhi6KFqfYJ1oyCM3nYc=;
        b=f5/wWulHAHrRkM46S8nDT4IfjS/AP24uJAk42ybeFbUqJPpj24hJMmbUkYzGFYZo07
         KpmHkPjoP5F6+vHf0OSI2qvvKHV5x2iwED6C99Ox+o6RyEueqM5AppCDAKECw50lNsUd
         5mUhmt31FTZzuEDvMqpaTcega8km5Li3j4UdmDpJbXpUcrphR75PCQGc+Uhfy/Vv1UC1
         EhAxFr8l+VONMbeOxsroBV4CnbEKtA8VRVJETiagfmbm93jDhEdYPGIIZiJQClXkPq6b
         pZ4Ma4lvYfisb3R3oM+f4FrVuIHxil+3k3zCpEupP7b3hyU7ZHLMh8VhJbtrl9hdyWv3
         O0ZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732606150; x=1733210950;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QyiUH4G3ChJbqNvplGVO/K9BWhi6KFqfYJ1oyCM3nYc=;
        b=DVSqwEdEW9EETLaO9cC0rTTOZhq7pD6pW2LVjgRlHmOWeD8/GQodPkELaEUo6BzVu3
         uAK9RNLgfICxSZIkrQpVVTdSPRpKJeCcgnBuWZPW2J/H1eMhY2qGEappAtbissrV3KJy
         EJh+CGsHKpe6udnhvVwO0N+oy7km1XBLsDZocyQd0mpkcQRsGjK70GJA5lyhGYpFeFuX
         08wEaIV5HxJEyPmLkhDzpgKfUBbd6Ha57HhVORGeUVM6oi8T7nOJbmx34he/SzgUcem+
         95ssajmbNrn2Bm0lXQe0DCoVjBMfIWvPRrbwI96OX9HUpSoD24jk/5PVK13ADluZqLFc
         C8KA==
X-Gm-Message-State: AOJu0Yz7s5Emo6Jny+cNIVo9+caOY+sA00KFf0vLA2HQhBjaLVVvZPDx
	NiF1YiOK1QtRe09SkAuU8MC96irQc++OSODIq+NPijTviCBqlCB+12uuc/IcaQ==
X-Gm-Gg: ASbGncuUGsyqM9o377OoVcihnE0f+sqDMY+t7/BpGRlQZyfUgEY8InuqByB02h8V0rZ
	cqn0/t7NmeMyfWYKbNMzigMoUcvsJ9yHwqygRLDdCkb5t1Tw4/3Y5gL9WddpbuFm+ndQSgMFTap
	4qZvY9XXh4MdYJIJN4IZOSLs57Dwwz80cN1YABBKeQmx82yzFrK7mz405dMSTHJb1h5XI97avy2
	Zfs71SPZo9wRzGxR48O+goFqua6GHPFn6Bc50bfenIG4ZiWGAe6i1w7kS5M0x5cQHjnU9dYBQN0
	2hI/gEMGg76tPKTEGdhxLccFwk2TIGHeL+Q=
X-Google-Smtp-Source: AGHT+IHNh3FofcGINtO5irp3GQZzWPQWrx0mOdfGiWpob/XU0fca/2n4veaTHLbNIqJVLEJUOkPxpw==
X-Received: by 2002:a05:6000:18ae:b0:382:46d2:52ae with SMTP id ffacd0b85a97d-38260b589e0mr15355179f8f.21.1732606149668;
        Mon, 25 Nov 2024 23:29:09 -0800 (PST)
Message-ID: <8a810323-5cfc-4072-a7d4-dbeb2fc41879@suse.com>
Date: Tue, 26 Nov 2024 08:29:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] libxl/ACPI: bound RSDP allocation
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <7455ff48-4bbc-465c-baff-d5c0ff684dfd@suse.com>
 <e995156e-c84a-426f-8d20-bebc8ccb3961@suse.com> <Z0SuMDXVzrf4OHpQ@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: <Z0SuMDXVzrf4OHpQ@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 18:04, Anthony PERARD wrote:
> On Mon, Nov 25, 2024 at 04:15:49PM +0100, Jan Beulich wrote:
>> First instroduce a manifest constant, to avoid open-coding 64 in several
>> places. Then use this constant to bound the allocation.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Hopefully, `struct acpi_20_rsdp` isn't going to be bigger that 64, but
> it would probably not work well anyway seen how `config.rsdp` is used
> here.
> 
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

>> ---
>> Similarly bounding the info "page" allocation would be nice, but would
>> require knowing libacpi's struct acpi_info size here.
> 
> Or register the allocation size in `config`, so acpi_build_tables() can
> check if there's enough space. Something like `config.info_size`.

That would feel kind of backwards. It should be libacpi to specify the
size it needs, yet that won't work as libacpi is the consumer of the
config struct. We could of course add acpi_get_info_size() to libacpi,
for libxl to use. 

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 08:03:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 08:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843388.1258994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFqXA-0001ss-Iu; Tue, 26 Nov 2024 08:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843388.1258994; Tue, 26 Nov 2024 08: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 1tFqXA-0001sl-GC; Tue, 26 Nov 2024 08:02:56 +0000
Received: by outflank-mailman (input) for mailman id 843388;
 Tue, 26 Nov 2024 08:02: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFqX9-0001sf-Jk
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 08:02:55 +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 d53a0854-abcc-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 09:02:51 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-aa51d32fa69so528449766b.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 00:02: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
 a640c23a62f3a-aa52b498ac1sm462867366b.50.2024.11.26.00.02.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 00:02: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: d53a0854-abcc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzYiLCJoZWxvIjoibWFpbC1lajEteDYzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ1M2EwODU0LWFiY2MtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjA4MTcxLjI3NTA4OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732608170; x=1733212970; 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=wB18a7J2z8gFcS2516Qh9Ws996zgJsx94/3rK2Cmf4o=;
        b=BYwDesj5eDltGLYFXZAKYYi27Up+34nsUhef8915KFgG7TZUnqyWJG1txBa8HighIo
         X4Spk3N8ttrqPrjYQmaFuUNkRVrbkVd8LjRP1vAAYqJgufQA66LB+lOXi4BzFPHbSU/D
         8Pj9mIg+f96/ly/YT4GrgCO7TwZvpjEx8fXwQh0FpQLidAVVtlig8cBLu2CGZgu3c0UY
         gzWZf3SS0XSRHH3+rfbZagwLvFmFhlbytbQGCI9tDSbdj+4BYcPjvirbEH5WH+UKf3zW
         63sF6ixHxJEfxz6Qa5RAhSr1xrkDLy3jruTaSZtAs2k5OKW87e7HEXraSXjg4233Qonr
         0XTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732608170; x=1733212970;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wB18a7J2z8gFcS2516Qh9Ws996zgJsx94/3rK2Cmf4o=;
        b=Hod92tYFo8s2FhmBS9qDmFskor3Az+zS0FhwjJroDN+TQDpVKoRJ/MjlnqIO8aF9vf
         srS7HdZzQ4tPjgp0LzN6Sa0jWgFgPX2nX2Kv7WtZwwSQ6+Z48d7bTXZGwG15RR9w/R13
         z+B22K4gGgU7jHvvMUdHqOUgll94IU8Nkbja4nZHlHCRcwJotb4u+IMo49qtaFW3Qo6Z
         xHHo+HXWtkE/ZTJfGj4oR4sTqyW1520LwGYIpPxTjF9/9ezd0puNPzSpEePvfG04LmxH
         UrA+aLmLe8cNA5KgoURCjm+2wzn04+FlY38aGAKuPdESUWWjdxSxASQPQJPWMDk5SS9P
         pPiQ==
X-Forwarded-Encrypted: i=1; AJvYcCU2pQMbeWRuMfLu2lntkskQzJwoSOxW4wrT0EMc+0OcOaEfQZ1hlLVXZ+HAKqFzqx1zzB0wmuBzTyM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8Z7vgwb1Vj1LZ8rl4B55qeKtFqVTxreGazemQxulcgzzSnwb5
	+GkndVbOnjZBgJCE9uri85VAW138TDhXacAv8wfWi/vTMrxT8RPw/Z35oqsSgQ==
X-Gm-Gg: ASbGncvpgx34VlL7iBjI62vfb7a0gemFYNRPJ14QxxREFAehGwu8urEtDOF2ZYhSY94
	NncsdTzKRryBI9uaL4fZI5+x0ffxSE5zwaREvlPme9u41IcAjfy/nAB5W44J03SFYRCi2p34olY
	GxquE3fwweLSt/mxrYICQFuy0DsSjtm9FQNE8Tyyv23hbzMCoGLhP7GMcUOV7sjg1P15QyutfVk
	YRDoCkUszeMQvSLuxc6x9oHjqjztwMb1fO73HxJLekBMkvS/x51OFdpNgwlW0kJBmOH42cCV8gY
	2Fm3chb34uP7QGR5EAvboDl6Rk7mSn7+cfg=
X-Google-Smtp-Source: AGHT+IGRolwIbNU81w9nIvAhHUHQFExoyqTwHrbQQf5Mm/rZgET6MbGJJ1IQlq5AFY+sYqgUlmWNkA==
X-Received: by 2002:a17:907:3da4:b0:aa4:9ab1:19d5 with SMTP id a640c23a62f3a-aa509d3fb30mr1500931366b.42.1732608170551;
        Tue, 26 Nov 2024 00:02:50 -0800 (PST)
Message-ID: <2d3c14c1-d4e8-41a0-98a7-3da1a3a89e24@suse.com>
Date: Tue, 26 Nov 2024 09:02:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] mm: allow page scrubbing routine(s) to be arch
 controlled
To: Julien Grall <julien@xen.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Bobby Eshleman
 <bobbyeshleman@gmail.com>, Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <49b0a003-3fae-4908-ba63-a1c764293755@suse.com>
 <70389f10-5706-4fb4-a186-984a9fd52d76@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: <70389f10-5706-4fb4-a186-984a9fd52d76@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 23:17, Julien Grall wrote:
>> --- a/xen/arch/arm/include/asm/page.h
>> +++ b/xen/arch/arm/include/asm/page.h
>> @@ -144,6 +144,12 @@ extern size_t dcache_line_bytes;
>>   
>>   #define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
>>   
>> +#define clear_page_hot  clear_page
>> +#define clear_page_cold clear_page
>> +
>> +#define scrub_page_hot(page) memset(page, SCRUB_BYTE_PATTERN, PAGE_SIZE)
>> +#define scrub_page_cold      scrub_page_hot
> 
> This block seems to be common between all the arch but x86. Should we 
> add an header in asm generic?

I'd say that largely depends on the intentions of Arm, RISC-V, and PPC.
Personally I've always found it odd that memset() / memcpy() are used for
page clearing / copying. Surely there are better ways, and pretty certainly
about every arch also has distinct means to efficiently do "hot" and "cold"
clearing. Therefore keeping these #define-s in per-arch headers imo serves
as a reminder that something wants doing about them.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 08:41:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 08:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843400.1259010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFr8N-0006mH-AX; Tue, 26 Nov 2024 08:41:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843400.1259010; Tue, 26 Nov 2024 08:41: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 1tFr8N-0006mA-7s; Tue, 26 Nov 2024 08:41:23 +0000
Received: by outflank-mailman (input) for mailman id 843400;
 Tue, 26 Nov 2024 08:41: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFr8M-0006m4-3B
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 08:41:22 +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 34c9ca5b-abd2-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 09:41:19 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-434a766b475so2212505e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 00:41: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-3825fb537d4sm12594749f8f.61.2024.11.26.00.41.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 00:41: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: 34c9ca5b-abd2-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM0YzljYTViLWFiZDItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjEwNDc5LjA4NDE5OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732610478; x=1733215278; 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=69nPffd76CJigFlbnQewr3C0A2liyDSeY3ss5wqzMPg=;
        b=gT4Ojat9dEAC+rIvGOpY+L10q7didHNmzUl93Rw3izGGMo/Ez9OHpwi8obmc2wioP1
         pQozvBY9w/rFXBRCNF8dRvP85kMM33roh85bmK9S1O6LCA2hYL32spG9f3Q/DXEEJI8M
         FPbndTA2c8e7HbtFyAwmi0yBfYGa9bWpJV88G8uaRs4RzaHftVZJLrHvX3Y96IEkLszV
         2O9+i5X3hj3gAC4wy/rL4nJoqgJlqG07spEzLWJUwu2Q1o//ULQRCUBYUJxYYXm97hjL
         GjU++V0LoJYqOyTjYC16sO06twOJr677Ba9diBOcwidnDcaHOAEdU6Y+LSpbhbwjrp9q
         EUZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732610478; x=1733215278;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=69nPffd76CJigFlbnQewr3C0A2liyDSeY3ss5wqzMPg=;
        b=a4FcA+8MeT1WvupNnLT8wwxoZ9HJ6/Y15LT/jOfzCUrYVzQa8x7/s4XSiCyMXh04z2
         o2KPXrVezhdzd1aW46wQiUska+xsVuDqo7wyYGBSoIlxQZ+qg9mnNKzr9VUYTE9TxNyc
         92y25ObCR2RMF7UsXVA4y4gaheIZQxtoFezQU+WmrRg9c7H72zwiXM22epybp3DsPpRI
         GeoJgrb+e0ffWNeVOtpPh+i+nY8UDTNV3A20oiATuJFlRRDzB32w7qbJ+rgTdDUcI4R7
         s5iCPVqjNpgsej6k5h4qK9rOkzHcP7kWhAcf2dQJR0Pzrg/GTUCnlzxBMlfKekJhAeow
         kLOQ==
X-Forwarded-Encrypted: i=1; AJvYcCUqPfJBT1oBe3pYkxaHTbTuh0zWpSnHgl3MsiVqn/YJmujse7CB7cDBEp2PoDXnoGyy0apbE1RrGZ4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbJZdcuVuOLP54OCmK9x5CxMQL5upws2k3kotb02hg3DwgaM4d
	15K+8FQ6kqgnw3WikEqXLEieCMCJnCqMhcQb9EJcxaA+963B0WYjZkOAjYkMbA==
X-Gm-Gg: ASbGnct136triCvJyr2VNiBFmT0oIfH/lrWc56QlubWcKNfD8/pRCm/6ZarI0agPQei
	3GjobXgoxjB+h8crLKmt9a2w9oVNLHKhDVV/ihxuhC0MhCgs/EKBRXBFap9wxBVO//htz/0FCR/
	dy3P8jk31A7C7r4B6jHl7L17CPP2cn0pjfv1RwDfiAeXpmF096KXYctCsH0/k/AJCKFWxVcFY7m
	LGyzD+EYgBnF8gQEqDFiKGMHVYqKgxUMRZW2k3ZrFoM28a6gdP/3Zxr9f/mH5oLyO1UR78+Blw7
	g77L/hmYzJBRtGBKVVBy/94BjC8glXdHMvs=
X-Google-Smtp-Source: AGHT+IEDJBNx+EpCxHwlNRs+ymsuctwuuLdgG45gpT6wDbJGqXAOtos79hijJJzZ5Z0q7hMGAriq+A==
X-Received: by 2002:a05:600c:1f8f:b0:42c:b52b:4335 with SMTP id 5b1f17b1804b1-433ce4210fdmr162050805e9.10.1732610478046;
        Tue, 26 Nov 2024 00:41:18 -0800 (PST)
Message-ID: <2af39ca6-af4a-4686-bc4c-90dfbe9b6c8e@suse.com>
Date: Tue, 26 Nov 2024 09:41:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 07/11] Arm32: use new-style entry annotations for
 library code
To: Julien Grall <julien@xen.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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <658f0a05-742e-44ed-bf3f-bd6bb8c694a7@suse.com>
 <7026ab4b-11b9-4ca1-9d33-581fc46b11e9@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: <7026ab4b-11b9-4ca1-9d33-581fc46b11e9@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 21:15, Julien Grall wrote:
> Hi Jan,
> 
> Sorry for the late answer.
> 
> On 01/10/2024 16:16, Jan Beulich wrote:
>> No functional change, albeit all globals now become hidden, and aliasing
>> symbols (__aeabi_{u,}idiv) as well as __memzero lose their function-ness
>> and size.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> If the function-ness is important, some new construct would need
>> inventing. Not setting size for the aliases may even be desirable, as
>> I'm uncertain whether it is really legal in ELF that two entities
>> overlap in space.
> 
> I can't think of a reason where we would need the "function-ness".

Good, thanks for confirming.

>> I fear I'm breaking __memzero(), as I don't understand the purpose of
>> the ".word 0" next to where the FUNC_LOCAL() appears.
> 
> I am not entirely sure either. AFAIK, "0" is not a valid instruction.
> 
> This code was taken from Linux, the history doesn't give much clue 
> because it seems the ".word 0" was added before Linux used git.

My vague guess is that this is a crude way of arranging for desired
alignment of labels later in the function. That wouldn't require use
of .word (could simply be a nop), yet what specifically is used there
doesn't matter for the patch here.

> However, it looks like Linux replace __memzero with memset() 6 years ago 
> on arm32. So maybe we should get rid of it? This would at least avoid 
> worrying on the purpose of ".word 0".

Certainly an option, yet may I remind you of your replies [1], [2] to
a much older patch of mine, which I still have pending for the
suggested removal never having happened? I fear the patch here may get
stuck over this just like the other one did.

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2022-08/msg01185.html
[2] https://lists.xen.org/archives/html/xen-devel/2022-08/msg01190.html


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 08:54:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 08:54:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843410.1259021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFrKW-0008SW-A3; Tue, 26 Nov 2024 08:53:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843410.1259021; Tue, 26 Nov 2024 08:53: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 1tFrKW-0008SP-7U; Tue, 26 Nov 2024 08:53:56 +0000
Received: by outflank-mailman (input) for mailman id 843410;
 Tue, 26 Nov 2024 08:53: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFrKV-0008SJ-5t
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 08:53:55 +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 f4f15631-abd3-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 09:53:50 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3824a089b2cso3186724f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 00:53: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-3825fb2609csm12843925f8f.44.2024.11.26.00.53.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 00:53: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: f4f15631-abd3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzMiLCJoZWxvIjoibWFpbC13cjEteDQzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY0ZjE1NjMxLWFiZDMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjExMjMwLjk5NDMxNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732611230; x=1733216030; 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=M9Pj19LOv/lvkzPq5ZhXA/9GjxgfRQqPQZoDshak4vw=;
        b=YDMLUvVXUYtiT5JG60rmSxbTN6mX/AL3Tc405h0dtGkiBk2oR8TcfKcrWtuvEGzOO3
         qxYF6iuU1eiJ1Ceo30zLhbNyrVxx+y/NrfCi6AP918Ac+j44PoCCTb8SdsrzPRcrkRs/
         BNwHGPUahsHjloTNECRbSZ1S4f2tu9qB2yX3w1UyAzSlILVcQQ8FYIilkD2NUm8qaI3u
         B/NXBGUefs5uXXZ6bAQdBrGbbbeDGiGAxF2erLAzilmw2fn6fg7wnChej3NTUKnzUK/N
         aauwsJQ9ym+vgCoAIYzEkznQh0DB+5LzbPWAYP4cnumMY5zlG3Ysl142UtjeaIg+RRan
         ST2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732611230; x=1733216030;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=M9Pj19LOv/lvkzPq5ZhXA/9GjxgfRQqPQZoDshak4vw=;
        b=gR6d7fQcgVzW+xm2pDGI0DOrIBVd34dWTw5AgpU4LLtzOhgsdRC6pWODpgmtojOKRy
         Jvewn5lyChJEagYgao3PwhBrb/NLXFTmAIEPYmc8UXu44d5ub4bjCUKMPSGJz265g7Ug
         7M1Z/HFHNmmw+tEQScC9JmVomEmsNX2spEUlP5dk4ucYxYwi5/urvSO3AagBLcNjLa5z
         u+WFmz0SHCAOmOmQrwZXJJ/CNC3xHd+5ukV09whW3ftxJaDpWbXqUHUHpa9255sg1X+i
         6XZNYgxmPGwOquUvl9ksF9GuTsSgoJmXbWZ7tCGInkRX64kw+Wl8h5OZzjNEwI9u89v0
         YpEQ==
X-Forwarded-Encrypted: i=1; AJvYcCWzmPScscFXMRuaHI7gOL4TCcTTPsaRpeOtEWxCAqFMxJEfhASh9gcoxvLGvhaSBjct+Az1ELgqRSM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7nlohrRTxw8dmDTNx2DuFNFpoFOfOWx7ZvUGmxL0ITbLrBHUC
	BkIpZsvnnTpiCFCS8OJYFpFB7W1vEo3KQQNyVO/ubhXJ3xanK6GYtuHkBjt5AQ==
X-Gm-Gg: ASbGncvRh+TQmLpfSAv8KSqmr8AHpsIguJpmk4/TA93yfjAq7WNZKSGwnp04Lv08OiQ
	qM914E3P7HrcASgd8JsmVZ413IjPg5/za3ZrUnr0ucajWk1Y7csuT0QRd+ceFoRPMVjfmdSwE5f
	s814wIQlp+DxwYaffILxxIpyf5PbcR9DhJ9VFG5NUng4C97h4LXPF+EkjYf5aw8i8LSJIYtcjUt
	mR/ULKuRb5+csitOMdpj6saRa/ILdlutcbkFeEDo7zF1uuj0k5OsQnB/uONQIjgzd4dZm0sl5Fm
	YswT7kGvwTdK1uiiQEx644O+PSFGd6HwPKw=
X-Google-Smtp-Source: AGHT+IF4cKoseb3pebSpOSOR6x6zoSZ4FYyCJsUuQJhmGasRJPz8+lXKzrzfrYtCRMFjK+rLfDZlsQ==
X-Received: by 2002:a05:6000:2805:b0:382:3afd:126a with SMTP id ffacd0b85a97d-38260b8766bmr9623098f8f.35.1732611230338;
        Tue, 26 Nov 2024 00:53:50 -0800 (PST)
Message-ID: <6b9b7910-ef5c-4633-8f83-c2748b0114f3@suse.com>
Date: Tue, 26 Nov 2024 09:53:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 09/11] Arm32: use new-style entry annotations for entry
 code
To: Julien Grall <julien@xen.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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <74c761c9-41b1-4397-aec2-95558d53a7cc@suse.com>
 <777d2832-76e2-4d59-88b7-ea9226bf8225@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: <777d2832-76e2-4d59-88b7-ea9226bf8225@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 21:25, Julien Grall wrote:
> On 01/10/2024 16:17, Jan Beulich wrote:
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Should the GLOBAL()s also be replaced?
> 
> What would you replace them with?

LABEL() or, perhaps better, DATA()/END() pairs.

>> @@ -362,13 +362,13 @@ trap_irq:
>>   trap_fiq:
>>           vector fiq
>>   
>> -return_from_trap:
>> +LABEL_LOCAL(return_from_trap)
> 
> OOI, why do we need to annotate return_from_trap?

We don't _need_ to; it's for consistency. Please advise whether you want me
to drop that change (it's the only use of LABEL_LOCAL() throughout the series).
But please be aware that then END(return_from_trap) also needs dropping (i.e.
leaving the range uncovered as far as plain ELF metadata goes).

>>           /*
>>            * Restore the stack pointer from r11. It was saved on exception
>>            * entry (see __DEFINE_TRAP_ENTRY).
>>            */
>>           mov sp, r11
>> -ENTRY(return_to_new_vcpu32)
>> +LABEL(return_to_new_vcpu32)
> 
> I am a bit confused why this is a LABEL rather than a FUNC. But I wonder 
> if either of them are corrrect? The code above is meant to fall into 
> this one.

My take is that function (or object) ranges shouldn't overlap. That's an
abstract reason. There's a practical reason, too: With "common: honor
CONFIG_CC_SPLIT_SECTIONS also for assembly functions" FUNC() will change
sections when CC_SPLIT_SECTIONS=y (which LABEL() won't). Section changes
clearly may not happen when fall-through is intended.

> So I think at least the alignment should be 0.

That would be a change compared to the prior use of ENTRY(). I can certainly
do so, but without having sufficient context my goal was to leave existing
alignment unaltered as far as possible (on the assumption that there's a
reason for it).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 09:02:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 09:02:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843421.1259034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFrST-0001i2-39; Tue, 26 Nov 2024 09:02:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843421.1259034; Tue, 26 Nov 2024 09:02: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 1tFrST-0001hv-0R; Tue, 26 Nov 2024 09:02:09 +0000
Received: by outflank-mailman (input) for mailman id 843421;
 Tue, 26 Nov 2024 09:02: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFrSR-0001hp-Kz
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 09:02: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 1acafa4b-abd5-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 10:02:03 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3823eb7ba72so3586163f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 01:02: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-3825fad6436sm12713252f8f.13.2024.11.26.01.02.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 01:02: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: 1acafa4b-abd5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFhY2FmYTRiLWFiZDUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjExNzIzLjk4NjY2OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732611723; x=1733216523; 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=2flidDSh3nnl1DOPZnqGH9FC3ZPp+UJeemOJLy0XxfI=;
        b=XieTzgeZ3UD8gx9uch8cJ97mbAKvJqBtKrUvv7HklYEb0Z/Qp5nls9R9MUWMFE/MOI
         tk9ASTRbE2AKRIdrO/6CQqoOby7PdVuM6KgCrR/gbJxJ/5wUD9YYf0T9+5Ym1pINBodf
         ki8wdYkoHKc+1Z3p286yFr2tv/v7Op9cEBuzopmBcecZnHHHE30RyRvcuOTPkxWwVLBh
         tTs/6Sner2HrczURRASLob2eA9gHcF84EH1YpfWTwKh9Ef6+fFXDW/OInD1jNcOuZTnX
         QKgz6Vpzc/L+3ZODoufXEPDyY76I0dJQ3iUsJsCybGIuamsAM3vzGU9f7QQwD/zJESP6
         vQPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732611723; x=1733216523;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2flidDSh3nnl1DOPZnqGH9FC3ZPp+UJeemOJLy0XxfI=;
        b=f59IlRAIFbCZVu8gNLBxLODjjWxmbsLze3tru2eNViHCoq4gNnCsVDhIkRDxBsgicz
         1ZAql1Rn9jqQYkutdke7RKnsdtykEAjW3dIW89Qt6na6Ia7S7MC2IvlDa2gm2h870uUF
         zx/jQhOujugiYoHDikF/SXxcSpFqqFusXj7FiiUgBIxZCEObuL83AAUm4GM9Ry76n97A
         yXBw/8Pu5/3x4vcMcJqyjGh7iCY6VRMJogSwsJqs6C/vxQ8m/KHoJaK4JnFRv8/9X+R9
         FuN37sstXP9MgTjIcGZ/qWgtU7xcl+sqv40mP2Q5RzVifLYH/JEK9UAgT44+1UpRi0Tz
         YXKA==
X-Forwarded-Encrypted: i=1; AJvYcCV5xrwyVj4tE6/6WUgebRgH/dJRVdyexVQcNwz3m2QDp/nndYX/ImafFxmN/JMIINbQHNXit52THeI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAgg5AEwcPEpWTzQ32lBkQ9k3DJczXj78oZbNk6k5+DgMnxgXC
	bvAhbjrhoua+14W9sFUVEBaCxyibQROByscDeqVbwSDytvYkxylFheXzuzZV4Q==
X-Gm-Gg: ASbGncvTdsUd8znhB1jpfechcy+BZd69RHg9t93zxXhSP31xbrUThLvnG8PvBxfpigO
	oMaO0sl1sccwQZWyXNp8xnWRAF5tiFPR4NraBJrT23SQsX0IV9p9M1xvtytV8ierldzMHg/0UAp
	3ig/eNAK8pl/1pO+6PSySg/5CiBk9zxRlhQWW7aWlpPisxGH+A6p48wys/sgVGpmmV8cTIvAGZr
	0MsuWxlAz5Sb6pnxIhq9rwx8VreqzOGc4gtMa6WlhCINoSxX8z7t3JjmhlKkDYiMOgHqZe7IM0P
	GAqvjhX2i2qpO7OUPnrdhSCnb6ET04S3wnE=
X-Google-Smtp-Source: AGHT+IGHWyYWkiNGlYcncCmNZlYFAgkT4GpXjt1GyDeIOtb9voX6cN2K7bLS8q6apojh8gpAHaIvmg==
X-Received: by 2002:a05:6000:1566:b0:385:bf55:2e24 with SMTP id ffacd0b85a97d-385bf552e63mr2399153f8f.17.1732611723306;
        Tue, 26 Nov 2024 01:02:03 -0800 (PST)
Message-ID: <f997839d-9ee7-4573-ad34-d8366843500c@suse.com>
Date: Tue, 26 Nov 2024 10:02:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 10/11] Arm32: use new-style entry annotations in head.S
To: Julien Grall <julien@xen.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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <01eb936e-71f4-43b3-b753-5b8a6ecf5d66@suse.com>
 <9acc6647-17a2-4a0d-97c7-85e8e9543e5d@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: <9acc6647-17a2-4a0d-97c7-85e8e9543e5d@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 21:28, Julien Grall wrote:
> On 01/10/2024 16:17, Jan Beulich wrote:
>> Locally override SYM_PUSH_SECTION() to retain the intended section
>> association.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> v7: New.
>>
>> --- a/xen/arch/arm/arm32/head.S
>> +++ b/xen/arch/arm/arm32/head.S
>> @@ -48,13 +48,20 @@
>>   
>>           .section .text.header, "ax", %progbits
>>           .arm
>> +/*
>> + * Code below wants to all live in the section established above.  Annotations
>> + * from xen/linkage.h therefore may not switch sections (honoring
>> + * CONFIG_CC_SPLIT_SECTIONS).  Override the respective macro.
>> + */
>> +#undef SYM_PUSH_SECTION
>> +#define SYM_PUSH_SECTION(name, attr)
> 
> Are you suggesting the code in arch/*/head.S has a latent bug?

I don't think I'd call this a "bug". Code which is sensitive to what precise
section it lives in better is left unaffected by the per-function sections
that CC_SPLIT_SECTIONS=y asks for. Which precise way this is arranged for is
a separate question. You'll find a few more instances of this approach
throughout the series.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 09:35:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 09:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843435.1259048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFryv-0005ld-Lk; Tue, 26 Nov 2024 09:35:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843435.1259048; Tue, 26 Nov 2024 09:35: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 1tFryv-0005lW-Gb; Tue, 26 Nov 2024 09:35:41 +0000
Received: by outflank-mailman (input) for mailman id 843435;
 Tue, 26 Nov 2024 09:35: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=lwvg=SV=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tFryt-0005lG-H5
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 09:35:39 +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 c9a7a83d-abd9-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 10:35:35 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5cfcd99846fso6894886a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 01:35:35 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3a3451sm4950474a12.4.2024.11.26.01.35.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 01:35: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: c9a7a83d-abd9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM5YTdhODNkLWFiZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjEzNzM1LjI4MzU5LCJzZW5kZXIiOiJyb2dlci5wYXVAY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732613734; x=1733218534; 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=Y+amtlMYsFXYHlssVX8JGA/2tl2HvFED7FxYw1wvRYk=;
        b=G8sFKWlVuNbLC8b2I8BoLwXBh/cl20heQ8hZsgCP2vVb4t/gHHbKPUF3rcBLHz/r5W
         rviUxchjMn94RKqQNdfwG/8bo3DmvvpeNU3UDnDp+lXaUAHhPjnlCVqhPzvCRXgnTQrI
         MBt7nyE23Opkp0P77bQMqAo9rJpwvOx7Kb6b0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732613734; x=1733218534;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Y+amtlMYsFXYHlssVX8JGA/2tl2HvFED7FxYw1wvRYk=;
        b=dow0DTg4TLO38SwgWghpnOd++sbgMBBzixoPM8FUQ9fRkmtxFfApI4vSNFuYhfUyuy
         qwedTHF8GiznpJKgHRw20lNS9AKiu6Uab74taBPFZjLYBbX+Ty3PQvWG+r4TyCTnN+Yu
         AuE/nPDpq8xVgDJzMiP8Zq8cC+RHkPTR5rDJvT29vM8MjywimqE1xNTVfrv47KmfEQ5M
         UAaT+qX4T20z2wCatzOUMEbSb4gLQyrr8T8hMS6Hh/F9IWJACoOu/2XSTPGY05mcIFaq
         IbhyPfpkpvPrZvTV4x0+YYcl0HDJ0ak+DSicAPR33pE7wbth+/oJ6dxCXN5bMekm6oT/
         qEdA==
X-Gm-Message-State: AOJu0YxNQoraTfyKzPfVQhhXHJCiEjnOYPLEyC11ciKLpLyjvnL/Pfu/
	/Ye06WJqc6Ao8utbBPSp2cj3JxweLoOazh64Qcek3go/TfbJCNjsh8XX1lchX6M6WzIpp3HVyuv
	V
X-Gm-Gg: ASbGncvFNmf6EqwOz8e0NdS7Zv0GtTFaQzLzGogTJdYtxt1ukieAZLky7Qo8EbB1H8p
	ima7VCEGaot0SN016orjpq6fSKr0mEzAKsQASdOgdvgZBNi+EEoQB1bGJ4EyTaQlnw+He5uTQhz
	1UMbDjH8ZwXfdWIPgUU/rohmNog2WRzqwtyIzLFt0UdkZQhB4X+OU5c8OiT6Zsedi3QIVbvRoBJ
	8HgkA5TM6WDu262GveSBZsNGZbWf2ze4eXvUaLpUiwFouLIYhjpT3KRd9g=
X-Google-Smtp-Source: AGHT+IFfPWgbrcF0H5EM02nXKb0tvkpJyye/cEQv1920pPrwYljVo31KV5CxY5Dnt6a22BUI4OakYQ==
X-Received: by 2002:a05:6402:2353:b0:5cf:d1b5:1b91 with SMTP id 4fb4d7f45d1cf-5d020625987mr14778146a12.15.1732613734317;
        Tue, 26 Nov 2024 01:35:34 -0800 (PST)
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>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/2] x86/misra: fix remaining violation of rule 20.7
Date: Tue, 26 Nov 2024 10:35:06 +0100
Message-ID: <20241126093508.6966-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

This series fixes the remaining violation of rule 20.7, and marks the
rule a blocking for x86 also on the Eclair scan.

An example gitlab job with the rule enabled can be seen at:

https://gitlab.com/xen-project/people/royger/xen/-/jobs/8470641011

Thanks, Roger.

Roger Pau Monne (2):
  x86/uaccess: rework user access speculative harden guards
  automation/eclair: make Misra rule 20.7 blocking for x86 also

 automation/eclair_analysis/ECLAIR/tagging.ecl |  3 +-
 xen/arch/x86/include/asm/uaccess.h            | 45 +++++++++----------
 xen/arch/x86/usercopy.c                       | 26 +++++------
 3 files changed, 37 insertions(+), 37 deletions(-)

-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 09:35:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 09:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843436.1259057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFryw-0005zg-QZ; Tue, 26 Nov 2024 09:35:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843436.1259057; Tue, 26 Nov 2024 09:35: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 1tFryw-0005zZ-NW; Tue, 26 Nov 2024 09:35:42 +0000
Received: by outflank-mailman (input) for mailman id 843436;
 Tue, 26 Nov 2024 09:35: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=lwvg=SV=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tFryv-0005lM-1k
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 09:35:41 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cab2e401-abd9-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 10:35:37 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-53dd0cb9ce3so4947743e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 01:35:37 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa54afde284sm286548966b.17.2024.11.26.01.35.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 01:35: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: cab2e401-abd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNhYjJlNDAxLWFiZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjEzNzM3LjEzNTU4OSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732613736; x=1733218536; 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=muGJeaCKCspLmDwONC81uUfp5RFpWNLMAClB1gqff50=;
        b=XKJXR4S+uifOCG9LIiI05zQOTkI7k6fAaEHAnsncd9gdxuAgdgpsSP2Sl3wHggB4Y6
         pYpy92081J9aWk4/RtvBoECGZgQTOGs4UcqsszHC0jL7amH3rpmijqLxAmwShxVPIkRf
         Rh6xc/HrkDNqhYHA/3hbKy34JGvQXoKzFKA3c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732613736; x=1733218536;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=muGJeaCKCspLmDwONC81uUfp5RFpWNLMAClB1gqff50=;
        b=EaBqCmuPl4O91eCziIVvSz/2B/Zq1IwW1MQ2HDVucMTMtSC0h9byiKlZCk7qLNcBjg
         ai8D5hFVLsMwVpDWLkIyg3tMuqMdGTcUXb6P68CHSWtV5pRW8GTANgxncZG7yjK7JPzc
         FJqCnIRSe6aKFJkQU9QXqtngRHWhR7EzExJ8vGG6mf3TGpTRS28/tqzZ8F3KTNDHoT3O
         ZfnpKqpg6rS9HK8OsgOvpF1hDmXznzARYVCixL6iO9xzmi6Hy+SklK6gUupVC4eoR6QB
         KmeYD4CK4bbwzRcNg2nYNxaKBAVXR+Olsmu/DR3PNFTSdL6NE3dKAgX4Z5d7GS4+gijx
         JJHA==
X-Gm-Message-State: AOJu0YxytF4PgYrJnanhGN1Mz094tJyiwl33Q/n6cH3fIzPEHed63BEO
	x36CccbNFyyCb1yEOZB6KX1oZxa0kLSlcZ0EQYGVHGO1P+i5l8L2Oz5mn0QwwPs7vSXrHrYXSue
	P
X-Gm-Gg: ASbGncuBELUXN+YQ7L8vw9O72ggu5jihg4/4xP43EPn4hQUZeSmctVmrMHXsXieZmw5
	kCebWLntfgq4Frx3laJm44HQYJT81jmtb2710As7i5ozqwRFOou1dsX/8fYy/uXr8++L0aE6MIV
	bBBrWZXFqMs3YvS5v1fomlnxmOuTLOj7hidwoMu5z8j330kJygEApfzSmeBsoHeENNfycfPIXoH
	at5su8wENOGCK8v0nUOlXbDz6L4b7qQLsh/4WEbzUeysFeq0B6SoQDw7gg=
X-Google-Smtp-Source: AGHT+IGN3y98ax/Soil2scVQ7Chur5GO+KPqpKDx+8hRZVTbnceGh74b+4w32KUjritKca2vDV+fCg==
X-Received: by 2002:a05:6512:1303:b0:53d:cb7e:225a with SMTP id 2adb3069b0e04-53dd36aa62cmr8377122e87.24.1732613735572;
        Tue, 26 Nov 2024 01:35:35 -0800 (PST)
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 v2 1/2] x86/uaccess: rework user access speculative harden guards
Date: Tue, 26 Nov 2024 10:35:07 +0100
Message-ID: <20241126093508.6966-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241126093508.6966-1-roger.pau@citrix.com>
References: <20241126093508.6966-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current guards to select whether user accesses should be speculative
hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and can't)
parenthesize the 'args' argument.

Change the logic so the guard is implemented inside the assembly block using
the .if assembly directive.  This results in some register spilling if the
guest_access_mask_ptr assembly macro is removed from the final assembly.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes xince v1:
 - Drop unneeded __maybe_unused.
 - Add comment in GUARD definitions.
 - Mention register spilling in the comment message.
---
 xen/arch/x86/include/asm/uaccess.h | 45 +++++++++++++++---------------
 xen/arch/x86/usercopy.c            | 26 ++++++++---------
 2 files changed, 35 insertions(+), 36 deletions(-)

diff --git a/xen/arch/x86/include/asm/uaccess.h b/xen/arch/x86/include/asm/uaccess.h
index 2d01669b9610..6b8150ac221a 100644
--- a/xen/arch/x86/include/asm/uaccess.h
+++ b/xen/arch/x86/include/asm/uaccess.h
@@ -24,9 +24,6 @@ unsigned int copy_from_unsafe_ll(void *to, const void *from, unsigned int n);
 void noreturn __get_user_bad(void);
 void noreturn __put_user_bad(void);
 
-#define UA_KEEP(args...) args
-#define UA_DROP(args...)
-
 /**
  * get_guest: - Get a simple variable from guest space.
  * @x:   Variable to store result.
@@ -104,7 +101,7 @@ void noreturn __put_user_bad(void);
 #define put_unsafe(x, ptr)						\
 ({									\
 	int err_; 							\
-	put_unsafe_size(x, ptr, sizeof(*(ptr)), UA_DROP, err_, -EFAULT);\
+	put_unsafe_size(x, ptr, sizeof(*(ptr)), 0, err_, -EFAULT);      \
 	err_;								\
 })
 
@@ -126,7 +123,7 @@ void noreturn __put_user_bad(void);
 #define get_unsafe(x, ptr)						\
 ({									\
 	int err_; 							\
-	get_unsafe_size(x, ptr, sizeof(*(ptr)), UA_DROP, err_, -EFAULT);\
+	get_unsafe_size(x, ptr, sizeof(*(ptr)), 0, err_, -EFAULT);	\
 	err_;								\
 })
 
@@ -155,9 +152,9 @@ struct __large_struct { unsigned long buf[100]; };
  */
 #define put_unsafe_asm(x, addr, GUARD, err, itype, rtype, ltype, errret) \
 	__asm__ __volatile__(						\
-		GUARD(							\
+		".if " STR(GUARD) "\n"					\
 		"	guest_access_mask_ptr %[ptr], %[scr1], %[scr2]\n" \
-		)							\
+		".endif\n"						\
 		"1:	mov"itype" %"rtype"[val], (%[ptr])\n"		\
 		"2:\n"							\
 		".section .fixup,\"ax\"\n"				\
@@ -165,16 +162,16 @@ struct __large_struct { unsigned long buf[100]; };
 		"	jmp 2b\n"					\
 		".previous\n"						\
 		_ASM_EXTABLE(1b, 3b)					\
-		: [ret] "+r" (err), [ptr] "=&r" (dummy_)		\
-		  GUARD(, [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_))	\
+		: [ret] "+r" (err), [ptr] "=&r" (dummy_),		\
+		  [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_)		\
 		: [val] ltype (x), "m" (__m(addr)),			\
 		  "[ptr]" (addr), [errno] "i" (errret))
 
 #define get_unsafe_asm(x, addr, GUARD, err, rtype, ltype, errret)	\
 	__asm__ __volatile__(						\
-		GUARD(							\
+		".if " STR(GUARD) "\n"					\
 		"	guest_access_mask_ptr %[ptr], %[scr1], %[scr2]\n" \
-		)							\
+		".endif\n"						\
 		"1:	mov (%[ptr]), %"rtype"[val]\n"			\
 		"2:\n"							\
 		".section .fixup,\"ax\"\n"				\
@@ -184,14 +181,15 @@ struct __large_struct { unsigned long buf[100]; };
 		".previous\n"						\
 		_ASM_EXTABLE(1b, 3b)					\
 		: [ret] "+r" (err), [val] ltype (x),			\
-		  [ptr] "=&r" (dummy_)					\
-		  GUARD(, [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_))	\
+		  [ptr] "=&r" (dummy_),					\
+		  [scr1] "=&r" (dummy_), [scr2] "=&r" (dummy_)		\
 		: "m" (__m(addr)), "[ptr]" (addr),			\
 		  [errno] "i" (errret))
 
 #define put_unsafe_size(x, ptr, size, grd, retval, errret)                 \
 do {                                                                       \
     retval = 0;                                                            \
+    BUILD_BUG_ON((grd) != 0 && (grd) != 1);                                \
     stac();                                                                \
     switch ( size )                                                        \
     {                                                                      \
@@ -214,11 +212,12 @@ do {                                                                       \
 } while ( false )
 
 #define put_guest_size(x, ptr, size, retval, errret) \
-    put_unsafe_size(x, ptr, size, UA_KEEP, retval, errret)
+    put_unsafe_size(x, ptr, size, 1, retval, errret)
 
 #define get_unsafe_size(x, ptr, size, grd, retval, errret)                 \
 do {                                                                       \
     retval = 0;                                                            \
+    BUILD_BUG_ON((grd) != 0 && (grd) != 1);                                \
     stac();                                                                \
     switch ( size )                                                        \
     {                                                                      \
@@ -233,7 +232,7 @@ do {                                                                       \
 } while ( false )
 
 #define get_guest_size(x, ptr, size, retval, errret)                       \
-    get_unsafe_size(x, ptr, size, UA_KEEP, retval, errret)
+    get_unsafe_size(x, ptr, size, 1, retval, errret)
 
 /**
  * __copy_to_guest_pv: - Copy a block of data into guest space, with less
@@ -333,16 +332,16 @@ copy_to_unsafe(void __user *to, const void *from, unsigned int n)
 
         switch (n) {
         case 1:
-            put_unsafe_size(*(const uint8_t *)from, to, 1, UA_DROP, ret, 1);
+            put_unsafe_size(*(const uint8_t *)from, to, 1, 0, ret, 1);
             return ret;
         case 2:
-            put_unsafe_size(*(const uint16_t *)from, to, 2, UA_DROP, ret, 2);
+            put_unsafe_size(*(const uint16_t *)from, to, 2, 0, ret, 2);
             return ret;
         case 4:
-            put_unsafe_size(*(const uint32_t *)from, to, 4, UA_DROP, ret, 4);
+            put_unsafe_size(*(const uint32_t *)from, to, 4, 0, ret, 4);
             return ret;
         case 8:
-            put_unsafe_size(*(const uint64_t *)from, to, 8, UA_DROP, ret, 8);
+            put_unsafe_size(*(const uint64_t *)from, to, 8, 0, ret, 8);
             return ret;
         }
     }
@@ -374,16 +373,16 @@ copy_from_unsafe(void *to, const void __user *from, unsigned int n)
         switch ( n )
         {
         case 1:
-            get_unsafe_size(*(uint8_t *)to, from, 1, UA_DROP, ret, 1);
+            get_unsafe_size(*(uint8_t *)to, from, 1, 0, ret, 1);
             return ret;
         case 2:
-            get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);
+            get_unsafe_size(*(uint16_t *)to, from, 2, 0, ret, 2);
             return ret;
         case 4:
-            get_unsafe_size(*(uint32_t *)to, from, 4, UA_DROP, ret, 4);
+            get_unsafe_size(*(uint32_t *)to, from, 4, 0, ret, 4);
             return ret;
         case 8:
-            get_unsafe_size(*(uint64_t *)to, from, 8, UA_DROP, ret, 8);
+            get_unsafe_size(*(uint64_t *)to, from, 8, 0, ret, 8);
             return ret;
         }
     }
diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/usercopy.c
index 7ab2009efe4c..286080f68f7e 100644
--- a/xen/arch/x86/usercopy.c
+++ b/xen/arch/x86/usercopy.c
@@ -11,23 +11,23 @@
 #include <asm/uaccess.h>
 
 #ifndef GUARD
-# define GUARD UA_KEEP
+# define GUARD 1 /* Keep speculative harden guards. */
 #endif
 
 unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
 {
-    GUARD(unsigned dummy);
+    unsigned dummy;
 
     stac();
     asm volatile (
-        GUARD(
+        ".if " STR(GUARD) "\n"
         "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
-        )
+        ".endif\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))
+        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
+          [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy)
         :: "memory" );
     clac();
 
@@ -40,9 +40,9 @@ unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int
 
     stac();
     asm volatile (
-        GUARD(
+        ".if " STR(GUARD) "\n"
         "    guest_access_mask_ptr %[from], %q[scratch1], %q[scratch2]\n"
-        )
+        ".endif\n"
         "1:  rep movsb\n"
         "2:\n"
         ".section .fixup,\"ax\"\n"
@@ -56,15 +56,15 @@ unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int
         ".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))
+          [aux] "=&r" (dummy),
+          [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy)
         :: "memory" );
     clac();
 
     return n;
 }
 
-#if GUARD(1) + 0
+#if GUARD
 
 /**
  * copy_to_guest_pv: - Copy a block of data into PV guest space.
@@ -140,14 +140,14 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
 }
 
 # undef GUARD
-# define GUARD UA_DROP
+# define GUARD 0 /* Drop speculative harden guards. */
 # 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) */
+#endif /* GUARD */
 
 /*
  * Local variables:
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 09:35:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 09:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843437.1259062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFryx-000624-5H; Tue, 26 Nov 2024 09:35:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843437.1259062; Tue, 26 Nov 2024 09:35: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 1tFryw-000612-Ua; Tue, 26 Nov 2024 09:35:42 +0000
Received: by outflank-mailman (input) for mailman id 843437;
 Tue, 26 Nov 2024 09:35: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=lwvg=SV=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tFryv-0005lG-FT
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 09:35:41 +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 cb3afd48-abd9-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 10:35:37 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aa53ebdf3caso389061866b.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 01:35:37 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b28dd59sm572637066b.7.2024.11.26.01.35.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 01:35: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: cb3afd48-abd9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNiM2FmZDQ4LWFiZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjEzNzM3LjkyODM3NCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732613737; x=1733218537; 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=xd/pSca3c8YVeGWHqsOZkWQWRTsWpJ5XvtvSkIxglfY=;
        b=UdLx4rzA/UvNNIIBLAAIjbymKndGL+/c5lVz7xGwbuV1o8PPQcNwpYaL1X2BHH0KrG
         xYvQ75LfD+eXbiHm3kc75kTz0iov0b5FetGict0ygQW6Wh7c9E0aPDVNZGFYOjbJdVk1
         Xy4divp9OnV8eRobc7AcK8s3e8Ar11HjEchFU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732613737; x=1733218537;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xd/pSca3c8YVeGWHqsOZkWQWRTsWpJ5XvtvSkIxglfY=;
        b=CLCq5GpTfvRAcpJ21Rjdmgz45P20/sQbF90S4euAWrpuSfkmI7XepJ6v2La/iDA6LF
         NfxcPCrx7SjKX7nusLbCmKbbNRFwJMqFS3wY6Wf97DhHF8wX7CZ6i96dNZWiwCrPnt7n
         B3qEZtbwCJTJfvLn7gsReOHBodJi0o5vxkJt1mzaJM7K5O4xncAXuC8/ebT9UCvFf0ph
         5C+FVfmTDVWS42ykUdVBPHZp7TW5IQCNGpLx6GhDmPFvzcGuWToH6V2i3dH/EDrjzBqV
         vQPwpMz6Ozp4CXJn2k/Qalm/XL1aPGl5mVPQO32QEv7ff5AS5lPQFLNJnUplGX+gJjb6
         V4/w==
X-Gm-Message-State: AOJu0YxXYpp+/FKtvR7agsuMo9ZGm+nL2navHsSzdS8KuPIaMpB3WQ9G
	rWQDVayeSuZZ40HJVkawD+5FiQjUKynjbAJHQPhbPQg/j77sMuEcr+isy++AhCS+puh/6rrPiI1
	e
X-Gm-Gg: ASbGncuxUm5NHs+MF9NfQZMzTCXGIhO7PMVa/+pzxhL7IWpFNtKK00WzqyYb68RP64z
	sOOtYV2W9/P9URdj7gzfmZ/tAaET1rI4XgtL5ELndfjORjI4mZmZHwCuwmi7IY50LoPdfd4kE8C
	dceVQAFwYr9MtgeKSUhASjA6Sb4qZ4y3X+kbOcN4ZiwaGZmS3bWS3K9VATiuTovadbYEQKsSPbF
	3qCYeoxhcrk06FstJlxfLtEwkN2NVPwNkgl9Okm5JKh6nAn1bj2aiGEWR0=
X-Google-Smtp-Source: AGHT+IEFe3B88klOATrIN9OwQuazzsoDRPdcbMo9zghMvOH6qVdvk9bb9nJV0b4ZYRu/CsjkSX455g==
X-Received: by 2002:a17:906:cc9:b0:aa5:4ea6:fcae with SMTP id a640c23a62f3a-aa54ea6fec2mr583648366b.28.1732613737089;
        Tue, 26 Nov 2024 01:35:37 -0800 (PST)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 2/2] automation/eclair: make Misra rule 20.7 blocking for x86 also
Date: Tue, 26 Nov 2024 10:35:08 +0100
Message-ID: <20241126093508.6966-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.46.0
In-Reply-To: <20241126093508.6966-1-roger.pau@citrix.com>
References: <20241126093508.6966-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are no violations left, make the rule globally blocking for both x86 and
ARM.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
 automation/eclair_analysis/ECLAIR/tagging.ecl | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index 755ea3271fc9..cb4e233e838d 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -80,6 +80,7 @@ MC3R1.R20.2||
 MC3R1.R20.3||
 MC3R1.R20.4||
 MC3R1.R20.6||
+MC3R1.R20.7||
 MC3R1.R20.9||
 MC3R1.R20.11||
 MC3R1.R20.12||
@@ -116,7 +117,7 @@ if(string_equal(target,"x86_64"),
 )
 
 if(string_equal(target,"arm64"),
-    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6||MC3R1.R20.7"})
+    service_selector({"additional_clean_guidelines","MC3R1.R2.1||MC3R1.R5.3||MC3.R11.2||MC3R1.R16.6"})
 )
 
 -reports+={clean:added,"service(clean_guidelines_common||additional_clean_guidelines)"}
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 09:40:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 09:40:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843461.1259077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFs3T-0008IS-KE; Tue, 26 Nov 2024 09:40:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843461.1259077; Tue, 26 Nov 2024 09: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 1tFs3T-0008IL-HK; Tue, 26 Nov 2024 09:40:23 +0000
Received: by outflank-mailman (input) for mailman id 843461;
 Tue, 26 Nov 2024 09: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFs3S-0008IF-FD
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 09:40:22 +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 707324ee-abda-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 10:40:15 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-434a10588f3so13424135e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 01: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
 ffacd0b85a97d-3825fb537dfsm12740393f8f.63.2024.11.26.01.40.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 01: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: 707324ee-abda-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzEiLCJoZWxvIjoibWFpbC13bTEteDMzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcwNzMyNGVlLWFiZGEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjE0MDE1LjE3NTA5Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732614014; x=1733218814; 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=8w+R585ArY6dj+SymyS1SEpF2eLQMwTzkI580s0ANjE=;
        b=C2C0Jzp5FGVoJEe5W+QuOUpNgk+Lm5UC0AsFz8x0WU8XlNf8xkVFlSXRFDwKIwYlaA
         BsJAw1WFHhdysmShpa2DAjSgUdxvFp1hbeBslt5vmOI0wmTIbxz/6b/CzNs7b6HNhZCy
         +3mamBJodrfb1EFLzaMKdSgfL0sUDzn/VjDevOIyDgZtNGSyFnS0QYkQUYfZ/QwZ6MeF
         uvW6JpbkgYBnPDfQ42Tql5gPwPWg4AtC3BPOjwFSIpndb3TxbZEZyea7R0na5kIa23PK
         sfNKTM5BcOB2p7F9xTpGI4nSo6QXxTPd2qmziFrAoe2xey0rtncBx0WQmXtdqg19ZMi6
         xlpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732614014; x=1733218814;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8w+R585ArY6dj+SymyS1SEpF2eLQMwTzkI580s0ANjE=;
        b=URPuiL5CPFmRlYj4D/E/rOXVf3qzCIG7Juy9SUUVmWTHgTPj76qF+h6+c2PShUeXCV
         QzFdT0m5/8iKJdoWudPfsY4EpiaKdnJHw7oxB/W7g+Z/nsCW2z88yaOmbV2gNlxuhKqL
         yLO+Lm9wjENBeicVl0YlrjBpvw2eNNgzWXT4jS6RG/3lIdVJsDN8XoblTeeHTfG1c/BC
         R2fh0Qufrpk0pJx6lQ14kEZQSHmpy3OgpcQNnXXNAtfgPp6hM8SXQ09pFI9fpy6YmTSQ
         2RtNULzCgavj7UokvYdyTkQIId3DDKfl6Ifaa2qWnufAPTMlaXsRlZKg9lZslxvxW+Ri
         7IrQ==
X-Forwarded-Encrypted: i=1; AJvYcCV4vU4PWKuZZaD/j/E2uguWVor8NGQBvrNRgxDY5LqdMsnmqtI3al6nh7RWj7AhRwykXpOJUD9CN3s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIZ7XLgdEz/X0Y6tu1Uyoo3HuiV+MONKIcYvhjU9qGdSWrHZeB
	oaJ0Sxrhp0YDKuN8h9xRdGhUlRDnObhHDSKLPbFYES/xYnhOP7zyZoT/vJRGUw==
X-Gm-Gg: ASbGncuB5jq6G+kprnto7UO0cVNYQ//dMGPcOoCsZwl0icqNHbEhS1j3Jk5BO4NxF0V
	Lus9gIdclutSd3pndMWoUbLig8g/A8XogMpZbjxmvoH2mLsXwBzAeivLLCWbTa1xOGIxU1Db6e/
	gC6OLwScmD43YY9hFr562+hlLZPsw8p07tKBWXPB9HGZqUtshYE1dWEU6gHEEPZTM99ihdCiptV
	0wLC2+cn3eZNKiUs2PkXzSHLe/iDZdqbh99e/oII1BjJucyn786rxUV8SgDPIyVIAYZhqhSMq89
	c4Gdd/4+BjWuqrVNIonHq55xe6VfjCV1QoQ=
X-Google-Smtp-Source: AGHT+IGr8b17ihGnPIZTev2qFn61YEtRUtJYJZHyGeUv7S/uuj/Zn1TgVo20rdsI0HegcPBoOzqi/g==
X-Received: by 2002:a05:6000:2d06:b0:382:4b83:d4c0 with SMTP id ffacd0b85a97d-38260b486f8mr10807601f8f.3.1732614014398;
        Tue, 26 Nov 2024 01:40:14 -0800 (PST)
Message-ID: <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com>
Date: Tue, 26 Nov 2024 10:40:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@cloud.com>
 <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
 <D5VHI2OA8QTK.1H4ZDUSP5EZX5@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: <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 19:51, Alejandro Vallejo wrote:
> On Mon Nov 25, 2024 at 12:05 PM GMT, Jan Beulich wrote:
>> On 15.11.2024 12:51, Alejandro Vallejo wrote:
>>> Describe sysctl/readconsole as a TOML specification, remove old
>>> hand-coded version and replace it with autogenerated file.
>>>
>>> While at it, transform the console driver to use uint8_t rather than
>>> char in order to mandate the type to be unsigned and ensure the ABI is
>>> not defined with regards to C-specific types.
>>
>> Yet the derived C representation imo then should still be using char, not
>> uint8_t.
> 
> There's 2 issued addressed by this patch.
> 
>   1. The removal of char from the external headers (and the Xen driver).
>   2. The replacement of the existing struct by the autogenerated one.
> 
> (1) wants doing irrespective of (2). char has neither a fixed width nor a fixed
> sign. Which is irrelevant for ABI purposes in this case because what we really
> meant is "give me a pointer" in this hypercall, but it may be important in
> other cases.
> 
> IOW, char should've never made it to the definition of the public ABI, and I'm
> merely taking the chance to take it out. Happy to extract this patch and send
> it separately.

Well, work towards fully getting char out of the public headers may indeed be
worthwhile. Otoh with char being the basic addressing granularity, I think
the ABI is pretty much tied to sizeof(char) == 1, imo limiting the
worthwhile-ness quite a bit.

Signed-ness of plain char doesn't really matter as long as it's used only for
what really are characters (or strings thereof). And that looks the be pretty
much the case throughout the public headers.

>> In particular it would be a good sign if the Xen sources wouldn't
>> need to change, unlike happens here (altering types of a few internals of
>> the console machinery).
> 
> And that would be the case if Xen had uniform naming conventions and its ABI
> was fully unambiguous. The process of uniformizing the naming convention and
> disambiguating the ABI is bound to cause (non-functional) changes, mostly in
> the naming conventions side of things.
> 
> Naming conventions can be _MOSTLY_ sorted by creating compat #defines and
> typedefs that match the old types. I can do that, but note that even then some
> code would have to change in order to i.e: s/struct OLD_NAME/NEW_NAME_T/

Here we already disagree: I think we'd better avoid any typedef-s in the public
interface when they're not strictly needed (e.g. in order to declare associated
handles). Imo we simply shouldn't introduce more into the name space than
actually required.

> If this is deemed important for backporting changes, I can do it for invasive
> replacements, like the createdomain flags.
> 
> On the topic of changing types, The present case is an ABI inconsistency case.
> My intention is to keep the ABI fixed as a matter of principle (if anything,
> because the domU ABI cannot be changed). However, changing the way C represents
> said ABI is a requirement if the current definition is ambiguous. In those
> cases we ought to change C to ensure there's one and only one way of
> interpreting it.

I wonder what concrete cases of ambiguity you're thinking of here.

>>>  xen/include/public/autogen/sysctl.h           | 35 +++++++++++++++
>>
>> In the build tree, having an autogen subdir under public/ _may_ be okay
>> (personally I dislike even that). I didn't manage to spot adjustments to
>> how files are eventually installed, yet at that point there clearly
>> shouldn't be any autogen subdir(s) anymore. How the individual files come
>> into existence is, imo, nothing consumers of the interface ought to (need
>> to) care about.
> 
> Anthony already mentioned an error while building QEMU, which I'm guessing
> comes from the same problem. The stitching is definitely up for discussion. I
> got far enough to allow the compilation of `dist` to go through, but didn't
> think incredibly hard about the finer details (like the install targets).
> 
> In principle, renaming `autogen` to `abi` and adding its contents to the list of
> installed headers ought to sort that particular concern? 

Not really, no. That only gives the child a different name. Imo the original
tree structure shouldn't change. By the end of the conversion work, all-
generated stuff would simply replace all-hand-written stuff.

>>> --- /dev/null
>>> +++ b/tools/rust/xenbindgen/extra/sysctl/readconsole.toml
>>> @@ -0,0 +1,43 @@
>>> +[[structs]]
>>> +name = "xen_sysctl_readconsole"
>>> +description = "Read console content from Xen buffer ring."
>>> +
>>> +[[structs.fields]]
>>> +name = "clear"
>>> +description = "IN: Non-zero -> clear after reading."
>>> +typ = { tag = "u8" }
>>> +
>>> +[[structs.fields]]
>>> +name = "incremental"
>>> +description = "IN: Non-zero -> start index specified by `index` field."
>>> +typ = { tag = "u8" }
>>> +
>>> +[[structs.fields]]
>>> +name = "_pad"
>>> +description = "Unused."
>>> +typ = { tag = "u16" }
>>> +
>>> +[[structs.fields]]
>>> +name = "index"
>>> +description = """
>>> +IN:  Start index for consuming from ring buffer (if @incremental);
>>> +OUT: End index after consuming from ring buffer."""
>>> +typ = { tag = "u32" }
>>> +
>>> +[[structs.fields]]
>>> +name = "buffer"
>>> +description = """
>>> +IN: Virtual address to write console data.
>>> +
>>> +NOTE: The pointer itself is IN, but the contents of the buffer are OUT."""
>>> +typ = { tag = "ptr", args = { tag = "u8" } }
>>> +
>>> +[[structs.fields]]
>>> +name = "count"
>>> +description = "IN: Size of buffer; OUT: Bytes written to buffer."
>>> +typ = { tag = "u32" }
>>> +
>>> +[[structs.fields]]
>>> +name = "rsvd0_a"
>>> +description = "Tail padding reserved to zero."
>>> +typ = { tag = "u32" }
>>
>> Up to here I wasn't able to spot any documentation on what it to be written
>> in which way.
> 
> You're right that the specification is not itself specified. I neglected to do
> so to avoid having to rewrite it should we settle on a different markup
> language.
> 
> Much of your confusion seems to stem from simultanuously looking at a new
> markup language and a new schema for it. Let me try to unpick some of that...
> 
>> I already struggle with the double square brackets. The TOML
>> doc I found when searching the web doesn't have such. Taking just the example
>> above also doesn't allow me to conclude how e.g. nested structures would be
>> specified.
> 
> The schema is represented by the contents of `spec.rs`. All structs with a
> Deserialize attribute (i.e: #[derive(Foo, Bar, Deserialize)]) map to some
> "table" in TOML.
> 
> When I say "struct" now I mean a struct inside the generator that represents
> the input file (_NOT_ a struct representing a hypercall).
> 
> The rules are as follows. The whole file is deserialized in a single struct
> (InFileDef). When there's a single square bracket (which I don't think I've
> required yet), that means that what follows is a "table" with the name between
> the brackets. There's several ways to represent table
> 
>     Regular tables:           [foo]
>                               bar = "some_bar"
>                               baz = "some_baz"
> 
>                               [foo2]
>                               bar = "blergh"
> 
>     Inline tables:            foo = { bar = "some_bar", baz = "some_baz" }
>                               foo2 = { bar = "blergh" }
> 
> Both of those deserialize to the same thing (it's C for ease of explaining it
> here, but it's actually Rust in the generator).
> 
>                 struct infiledef {
>                     struct {
>                         char *bar; // points to "some_bar"
>                         char *baz; // points to "some_baz"
>                     } foo;
>                     struct {
>                         char *bar; // points to "blergh"
>                     } foo2;
>                 };
> 
> The double brackets are adding one more element to a "list"
> 
> That is. This TOML...
> 
>                              [[foos]]
>                              bar = "some_bar"
>                              baz = "some_baz"
> 
>                              [[foos]]
>                              bar = "some_bar"
>                              baz = "some_baz"
> 
> ... deserializes to...
> 
>                 struct foodef {
>                     char *bar;
>                     char *baz;
>                 }
> 
>                 struct infiledef {
>                     struct foodef *foos;
>                 };
> 
> The last bit of relevant information is that you can identify which table you
> want to add to with dots. So [[structs.fields]] is saying "Add this field to
> the list of fields of the current hypercall struct".
> 
> The "typ" field is a bit quirky (I have a solution to simplify it), but that
> uses inline tables.
> 
>> Really, when talk was of some form of IDL, I expected to see
>> something IDLish (im particular closer to typical programming languages we
>> use). Whereas TOML, aiui, is more an easy language for config files of all
>> sorts.
> 
> I might've been unclear in the talk. One of my goals is to _not_ define a new
> language. Or I'll just exchange one problem for two. Maybe I should've called
> it an Interface Definition Schema, rather than Language.
> 
> The key benefit here is that, while the generators can be tricky, the parser is
> all done and strictly specified. We can experiment with YAML (Anthony already
> asked about it). But it really is a matter of getting used to. TOML is
> fantastic for saving horizontal space. And multi-line comments are neatly
> organized.

It may indeed be a matter of getting used to, yet I'm afraid your explanations
above make the situation yet more confusing, at least for the moment. Just to
explain my expectations some: I don't really speak e.g. Python or Perl, but the
languages are self-explanatory above that I can at least roughly follow not
overly involved pieces of code written therein. An interface specification imo
certainly falls in the group of "not overly involved". Yet the (so far small)
pieces of TOML that there aren't as self-explanatory as I'd have expected them
to be.

>> What I have in mind wouldn't allow for descriptions, yet I'm not sure that's
>> relevant. The description ought to, first of all, live in the primary source
>> (i.e. the IDL itself) anyway. Commentary there might be possible to extract
>> into proper (machine generated/derived) documentation.
> 
> Not sure I follow, these TOML files _are_ the IDL itself.
> 
> The descriptions here are propagated to the generated code, so they are
> infinitely helpful when reaching the type via e.g: cscope, LSPs, etc.

Yet they are full-fledged attributes, when normally I'd expect such to be
comments (thus clearly separating "code" from "non-code").

As to propagating to generated code - hmm, yes, for use of cscope and alike
it may indeed be helpful to propagate, if such tools can't associate back
the generated files to their origins. My general take though is that
generated code is something you look at as a human only when actually
dealing with their generation. For all other purposes one would prefer the
"original" source.

>>> --- a/xen/drivers/char/console.c
>>> +++ b/xen/drivers/char/console.c
>>> @@ -42,6 +42,8 @@
>>>  #include <asm/vpl011.h>
>>>  #endif
>>>  
>>> +#include <public/xen.h>
>>
>> Why would this be needed all of the sudden?
>>
> 
> Because of the new XEN_GUEST_HANDLE_64(uint8) type. The macro is quite ugly and
> requires being declared ahead.

How's that different from the earlier XEN_GUEST_HANDLE_PARAM(char)?

>>> --- /dev/null
>>> +++ b/xen/include/public/autogen/sysctl.h
>>> @@ -0,0 +1,35 @@
>>> +/*
>>> + * sysctl
>>> + *
>>> + * AUTOGENERATED. DO NOT MODIFY
>>> + */
>>> +#ifndef __XEN_AUTOGEN_SYSCTL_H
>>> +#define __XEN_AUTOGEN_SYSCTL_H
>>> +
>>> +/* Read console content from Xen buffer ring. */
>>> +struct xen_sysctl_readconsole {
>>> +    /* IN: Non-zero -> clear after reading. */
>>> +    uint8_t clear;
>>> +    /* IN: Non-zero -> start index specified by `index` field. */
>>> +    uint8_t incremental;
>>> +    /* Unused. */
>>> +    uint16_t _pad;
>>> +    /*
>>> +     * IN:  Start index for consuming from ring buffer (if @incremental);
>>> +     * OUT: End index after consuming from ring buffer.
>>> +     */
>>> +    uint32_t index;
>>> +    /*
>>> +     * IN: Virtual address to write console data.
>>> +     *
>>> +     * NOTE: The pointer itself is IN, but the contents of the buffer are OUT.
>>> +     */
>>> +    XEN_GUEST_HANDLE_64(uint8) buffer;
>>> +    /* IN: Size of buffer; OUT: Bytes written to buffer. */
>>> +    uint32_t count;
>>> +    /* Tail padding reserved to zero. */
>>> +    uint32_t rsvd0_a;
>>> +};
>>> +
>>> +#endif /* __XEN_AUTOGEN_SYSCTL_H */
>>> +
>>
>> If this file is auto-generated, why would it need committing? And yes, there
>> is the connected question: Will everyone then need to have a Rust compiler
>> available?
> 
> Committing it is required precisely so that no one needs to have a Rust
> compiler available.

How would that work? If I make a change to what currently is a public header,
I'd still need to have one available, wouldn't I?

> The last patch in the series checks the generated code
> matches the specs byte by byte. It has the nice benefit that you can git-grep
> for it and tags work even without compiling first. You also get all
> architectures upfront and it's a lot easier to review changes to the generator
> because CI will scream to you if the outputs diverge.
> 
>>
>> Nit: For anything that is committed, it would be nice if those files were as
>> tidy as possible style-wise. Most of the above looks entirely okay, just
>> that there is an unnecessary trailing blank line.
> 
> I did go out of my way to prettify the output.
> 
> The trailing newline was intentional to make it C++03-compatible. I can get rid
> of it, as it doesn't matter a whole lot.

I haven't followed the development of C++ very closely; my experience with it
is mostly from far more than 20 years ago. What's that C++03 compatibility
requirement?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 09:48:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 09:48:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843477.1259088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFsAg-0000o1-Fq; Tue, 26 Nov 2024 09:47:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843477.1259088; Tue, 26 Nov 2024 09: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 1tFsAg-0000nu-Bk; Tue, 26 Nov 2024 09:47:50 +0000
Received: by outflank-mailman (input) for mailman id 843477;
 Tue, 26 Nov 2024 09:47: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFsAe-0000no-Iu
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 09:47:48 +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 7cd95408-abdb-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 10:47:45 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3823eb7ba72so3615046f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 01:47: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-3825fb537dfsm12757071f8f.63.2024.11.26.01.47.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 01:47: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: 7cd95408-abdb-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzIiLCJoZWxvIjoibWFpbC13cjEteDQzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjdjZDk1NDA4LWFiZGItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjE0NDY1LjQ1NjI4MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732614465; x=1733219265; 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=YRNxrvGGPv+J7YPiNDTf+hiJYnm6JyW2vOAOkEdMY94=;
        b=Z4ybu+6O4kbbP93yACoKTftQzF2waG3tt+HhNEyj7KnE4x3R1SyndvLRGFAs1okEqk
         Bube2mbtoIQ1w5BiGSGg/l9rtVqJ9dSUPgq8rkHBpPDOW3IBuzYWkp+zKVHX8re7gc7j
         ILVvE+SDcFh5XmtRmDln+rnUwSQe2Zbia5LJTIuxPwqVbVM0goCqT005/eMm5ypCLrQV
         Hd5BPtuhywFMKMm834H1dsCvOV8bvnj0j3w5g2t93S+KMYczlirAmzNNYDpJFoEgPpfQ
         mzs0CwznYy4SPiOsgzt29jP2xDlR/XAkr1W1aFZmLML71IGyV4Vlrv//CC3bfnK/cPsY
         NYPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732614465; x=1733219265;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YRNxrvGGPv+J7YPiNDTf+hiJYnm6JyW2vOAOkEdMY94=;
        b=K5e9mZB0oofu6Tvt1PFqaqAY9K+dYTAHtF6v4FBFupE0JB7i4ViJZ50Cs/rjXM7uGs
         xV4uySaNBSygCG25jarSIB9r5+9NGrbNZCQk35A7AccpLImCso+sEmdCIiwnNkKaWN9b
         w7BjhV3R4r17Tcw855i2j/eN5ZwLo+BrfwzhmNLNCoXwXDL98pIxLIp4jFaNwfoCMyei
         COiWquXr2D8sBXi9c/6PbBzpDzipKMmTt9CD1w+80yptwm8xC3Hvo39kYByN9VqAWAjb
         mRXbOXPHuzXmwSV6FNfiBWqDzSyYByxKsmTdHvOX8MNjoLguyyfpAqVoOq/kz1N7xfWn
         Y55w==
X-Gm-Message-State: AOJu0Yzb2DXKzr7BZQlgUVzLwHMSxLzn0NjzLyS5kMnYYCFa7rfRBfjO
	MRXuO8OpbnwTseTAVJMoS5WRsjzCRPmV/qmrgczep2fKKXz4nuB7ElMid0oyxg==
X-Gm-Gg: ASbGncs1ZiaiSjroVdW/YJMYEMe2GwmrT4gG8Z17yGtQ5uNltX9fj8moaLQHGeuFk74
	vBgKyPVKErhe4I1lJqM1CTqqI69fxdPLsDKcR8pnWs9I/rcYvNIFljNWAqRqbPSRIqsokJqqHIC
	cdERxQgpEadV9fqRlOsdPNdmEP0gdqbji3p1mAkqolLdfOirRAavSNqK2aF48mLs+IquWZzY7BW
	MEO8LTOCVrMgJI0qLDGR9/e7l4GnHKSkzFUlSAmJEgTW1L+rSLtUCBojf1by5EYKLlJYQdd8FCp
	8LgUBeo0uJEzsqoZ+GWjWazj36dKQlG9FPk=
X-Google-Smtp-Source: AGHT+IFPlSyodWeM/ES/GQaMg0Mf88tYP73BTj2SaYvLHYPNMAcfMHR8tyzv17a4LfFf3aWy37o3gQ==
X-Received: by 2002:a5d:588b:0:b0:382:4a9d:28fa with SMTP id ffacd0b85a97d-38260b808edmr12712675f8f.30.1732614464805;
        Tue, 26 Nov 2024 01:47:44 -0800 (PST)
Message-ID: <c8aa7b64-b5b5-4ac3-b0c0-67d74441588e@suse.com>
Date: Tue, 26 Nov 2024 10:47:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vpci: Add resizable bar support
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz8Cwj3KJ1BIBEg_@macbook>
 <BL1PR12MB584977971D2C0A00443A1A79E72E2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Z0Rx2IXqqvrLaIIq@macbook>
 <BL1PR12MB5849B85C116A74D138FF65AAE72F2@BL1PR12MB5849.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: <BL1PR12MB5849B85C116A74D138FF65AAE72F2@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 07:02, Chen, Jiqian wrote:
> On 2024/11/25 20:47, Roger Pau MonnÃ© wrote:
>> On Mon, Nov 25, 2024 at 03:44:52AM +0000, Chen, Jiqian wrote:
>>> On 2024/11/21 17:52, Roger Pau MonnÃ© wrote:
>>>> On Thu, Nov 21, 2024 at 03:05:14AM +0000, Chen, Jiqian wrote:
>>>>> On 2024/11/20 17:01, Roger Pau MonnÃ© wrote:
>>>>>> On Wed, Nov 20, 2024 at 03:01:57AM +0000, Chen, Jiqian wrote:
>>>>>>> The only difference between our methods is the timing of updating the size.
>>>>>>> Yours is later than mine because you updated the size when the driver re-enabled memory decoding, while I updated the size in time when driver resize it.
>>>>>>
>>>>>> Indeed, my last guess is the stale cached size is somehow used in my
>>>>>> approach, and that leads to the failures.  One last (possibly dummy?)
>>>>>> thing to try might be to use your patch to detect writes to the resize
>>>>>> control register, but update the BAR sizes in modify_bars(), while
>>>>>> keeping the traces of when the operations happen.
>>>>>>
>>>>> This can work, combine our method, use my patch to detect and write the size into hardware register, and use your patch to update bar[i].size in modify_bars().
>>>>> Attached the combined patch and the xl dmesg.
>>>>
>>>> This is even weirder, so the attached patch works fine?  The only
>>>> difference with my proposal is that you trap the CTRL registers, but
>>>> the sizing is still done in modify_bars().
>>>>
>>>> What happens if (based on the attached patch) you change
>>>> rebar_ctrl_write() to:
>>>>
>>>> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>>>                                       unsigned int reg,
>>>>                                       uint32_t val,
>>>>                                       void *data)
>>>> {
>>>>     pci_conf_write32(pdev->sbdf, reg, val);
>>>> }
>>>>
>>> If I change rebar_ctrl_write() to:
>>> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>>                                       unsigned int reg,
>>>                                       uint32_t val,
>>>                                       void *data)
>>> {
>>>     printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sbdf, reg, val);
>>>     pci_conf_write32(pdev->sbdf, reg, val);
>>> }
>>>
>>> I can see three time prints, it can't work.
>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 528, val 102
>>>
>>> If I change rebar_ctrl_write() to:
>>> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>>                                       unsigned int reg,
>>>                                       uint32_t val,
>>>                                       void *data)
>>> {
>>>     if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY )
>>>         return;
>>>     printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sbdf, reg, val);
>>>     pci_conf_write32(pdev->sbdf, reg, val);
>>> } 
>>>
>>> I can only see one time print:
>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
>>>
>>> The check prevented the two times incorrect write actions.
>>>     if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY )
>>>         return;
>>>
>>> And why my original patch can work too, the check:
>>> +    ctrl = pci_conf_read32(pdev->sbdf, reg);
>>> +    if ( ctrl == val )
>>> +        return;
>>> happened to play the same role as PCI_COMMAND_MEMORY check.
>>
>> Thank you very much for figuring this out.  So in the end it's a bug
>> in the driver that plays with PCI_REBAR_CTRL with memory decoding
>> enabled.
> Yes, I think.
> During driver initiation, it calls pci_rebar_set_size to resize BARs,
> after that, it calls pci_restore_state->pci_restore_rebar_state to restore BARs,
> the problem is when calling pci_restore_rebar_state, memory deoding is enabled state.
> I will discuss with my colleagues internally whether this needs to be modified in amdgpu driver.

Why would memory decoding be enabled at that time? pci_restore_config_space()
specifically takes care of restoring CMD only after restoring BARs. And
pci_restore_config_space() is invoked by pci_restore_state() quite a bit
later than pci_restore_rebar_state(). So the driver must (wrongly?) be
enabling decoding earlier on?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 09:59:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 09:59:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843487.1259096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFsLW-0002mI-C5; Tue, 26 Nov 2024 09:59:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843487.1259096; Tue, 26 Nov 2024 09:59: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 1tFsLW-0002mB-9S; Tue, 26 Nov 2024 09:59:02 +0000
Received: by outflank-mailman (input) for mailman id 843487;
 Tue, 26 Nov 2024 09: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFsLV-0002m5-3N
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 09:59:01 +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 0dbc7bc4-abdd-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 10:58:58 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5cf6f804233so6285621a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 01:58: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
 4fb4d7f45d1cf-5d01d3c0e2bsm4959421a12.52.2024.11.26.01.58.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 01:58: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: 0dbc7bc4-abdd-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBkYmM3YmM0LWFiZGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjE1MTM4LjAxMzY1NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732615137; x=1733219937; 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=HrIBwtm1zvbGr15cT0+vVk2sAOQSQvRvsuHiR6e54M0=;
        b=fZKDaTo8M43AUJyz4/9ilNVnTQ38xR2gAnoZs8mQVP5g33tDsRWHbDaLOax24ppi3k
         f+pxopqDzTxu1og8pjXuNJkh6cQuCkJKs8qg1AEpeaurMAQDupcqaK7OCy7at3mfIlWy
         /u4q+jej612GgN+isPIoEvJi9Hm3zAeU99WdDEDU47AGDXRK3t+pP6/foq0DP7JIUYED
         AFf1PpFzeq0kfzgexjXVe3Vp1jkcC94c9zNdgaPL9tOxxZqzHeoZX1ys1vkbuiN5rrHu
         9E7DnfM4aui0f8l6JPzWIDiDrqH/XP46D73B5nbYwWnB/cG1WAkhkeYg2GOGvY3lbUQq
         Gd1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732615137; x=1733219937;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HrIBwtm1zvbGr15cT0+vVk2sAOQSQvRvsuHiR6e54M0=;
        b=ZZten+lFHPJ+e/BPjNpnL8H9AiGutY2d+cIociw77q7+HQFHwTzbku46P0ElwjhgZl
         jL1Q5eZ2l3ZUNCjRBw3qhLiDaCwhdQD/HX6bxi5P/Nh4UU14rWZICDNunzoltWEkKVoO
         a9rCHMTuJt19KD2vS0MsjE4WGNpLHJA405Pn+iCWl6tg89UfO1sh0vTH4irQ+RT19S13
         1U2ck6PcmvWgg9jRmlc0ozntAw53QxuuahsKy5C1HtzCn4TEyzS5Hp8XRsk2QHDYUCiN
         +rtNkgCOxM6xFStruaw9Xd2sFitB0e4GpV4md7W0qGcGE1M8PcssriFl8IcI7NJBQSkO
         4NIg==
X-Forwarded-Encrypted: i=1; AJvYcCV7TjiwjjTWOIBhk6AhJNzgL+bWKWcjp9feZm8VrmZiOlJ4DexWEUZjicd/gMcf4TtyFtlRR1ZI2h4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznBZiH4DKUyeup/QNu2NsaZ+G9Lp+3yYtNnxAp7d1JMM1879bt
	V4RsHdsUulFf4wQUSLSBbb2BW5IkxYup/wpbmBdYBn6LWnefWdk0MidhbXNVcQ==
X-Gm-Gg: ASbGncupZyvLyrQBey0TH2cNqRPpsTSFeAlBbmIvYqbsm50poNT3Nm0Q2rQJp74zWfL
	6uQ2Hi3GiAw3P9QwhFBap0I3JeHPeGOw4Tlcsxv/wzyh7v4d6QFUMf8U/Dj/HAbGsLEH4T0iLtI
	JIxyKMesP/aVKnsTBJWS8CEvet++Rl0JKIlSG7/wTVCe2JN7l+ZLTvvHPAMOQqX9uE69CreN+Jw
	xfFh27uCIDLEASWcS50X2lXE1AtOtKpZuEK2KI57m35dW0NGSD3Fomp/xfhliCMaTlvv82wY/RZ
	qeBLX/tAnq8zQgCb4qCOtMCikzlOw6ZJ4eg=
X-Google-Smtp-Source: AGHT+IFmQnlJimCLT/w440j1RlkGdMbjhGxXUw3jZKEvFpBoMFkVInzJXiu2SC+vO4E+ejXfW6vbGA==
X-Received: by 2002:a05:6402:3509:b0:5cf:1b53:1bf4 with SMTP id 4fb4d7f45d1cf-5d020626645mr12468556a12.17.1732615137470;
        Tue, 26 Nov 2024 01:58:57 -0800 (PST)
Message-ID: <cf1f87d1-f616-4944-94fa-69a777249072@suse.com>
Date: Tue, 26 Nov 2024 10:58:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/uaccess: rework user access speculative harden
 guards
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>,
 "consulting@bugseng.com" <consulting@bugseng.com>
References: <20241126093508.6966-1-roger.pau@citrix.com>
 <20241126093508.6966-2-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: <20241126093508.6966-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2024 10:35, Roger Pau Monne wrote:
> The current guards to select whether user accesses should be speculative
> hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and can't)
> parenthesize the 'args' argument.

For my own education: This definitely isn't the only place where we use a
macro with variable arguments, and where the use of the respective macro
parameter can't be parenthesized. Given patch 2, why is e.g.

#define emulate_fpu_insn_stub(bytes...)                                 \
do {                                                                    \
    unsigned int nr_ = sizeof((uint8_t[]){ bytes });                    \
    memcpy(get_stub(stub), ((uint8_t[]){ bytes, 0xc3 }), nr_ + 1);      \
    invoke_stub("", "", "=m" (dummy) : "i" (0));                        \
    put_stub(stub);                                                     \
} while (0)

not an issue? The first use of "bytes" is in figure braces, so probably
fine. Yet the second use is followed by a comma, so unlikely to be okay.

Somewhat similarly for

#define AMD_OSVW_ERRATUM(osvw_id, ...)  osvw_id, __VA_ARGS__, 0

where we're using the C99 form rather than the GNU extension, and where
hence __VA_ARGS__ would - by extrapolation of the Misra rule - need
parenthesizing, when it isn't and can't be.

Isn't it rather the case that variable argument macros need a more general
deviation, if not an adjustment to the Misra rule? Extending the Cc list
some ...

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 10:03:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 10:03:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843496.1259107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFsPV-0004fX-SM; Tue, 26 Nov 2024 10:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843496.1259107; Tue, 26 Nov 2024 10:03: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 1tFsPV-0004fQ-PE; Tue, 26 Nov 2024 10:03:09 +0000
Received: by outflank-mailman (input) for mailman id 843496;
 Tue, 26 Nov 2024 10:03: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFsPT-0004fI-PR
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 10:03:07 +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 a06e693a-abdd-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 11:03:04 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cedf5fe237so6445822a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 02:03: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
 4fb4d7f45d1cf-5d01d3fc7a9sm4967777a12.62.2024.11.26.02.03.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 02:03: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: a06e693a-abdd-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImEwNmU2OTNhLWFiZGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjE1Mzg0LjEwODkxOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732615383; x=1733220183; 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=r8YR7iLaheJ6SeeGNT0bkA+wCorFO/8zes+RnLdy4Qs=;
        b=VZrI2epYk2idLdzwt43ud+y2GSCP3L2WH4y43Ap0hM+Cm4a1WTDJbEugvmYcqWnp5K
         D/Do1VTwLDp41SKA99rzk5VetCOEOytRbySyPirAoYVO+5IaSeVUhazPEI7oOdBzoaO2
         1qeEcj1v5BhhWujrd0N76IvA/pXThn5yrPPcRM9Y/75L59hxPMRJ9eMzCmGoyBAu6WHm
         A0kVcLSmogDG66bvrHw+/+0TkuNklY9fWSwUbJ+k4pvCfuG3jRuqX5nh0q4psbAF25KC
         R3uLqTHfkB9fiCqdMC5uhkVsLtMHJcJDG8NwtYCg/trX49Izrio9PaF3d7gQbtKEahs3
         TEMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732615383; x=1733220183;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r8YR7iLaheJ6SeeGNT0bkA+wCorFO/8zes+RnLdy4Qs=;
        b=Aze/9vI1qBlZuuTxgZOH9FwTQBzdssLy3Oedyo39fofnkIfx9IOtqSvaL2OP+QxLKq
         /BeAhCOWWik/aJUf2vQQQDyxu7vw/4zV9YBiDf5rl0JmE5aIQu6L0Kw4NIOAmlPWMyRU
         1RTPE/H/iqYSvWmhIeIgLDFVIfvkb/pZkr3uI7NUR6huqohTqspY4zm15zFpmoZudHrb
         BCVDpUsY2LbbdzHMsrZfdtexr55ZI/Q49I4L36sy/PE632bKw98cvsVqzoBuktFgOAR2
         BAaV9KdfVtBW/AHl9rIuCpuymCal/ENbHzuBwo/8PXDYLyH415upC/Fj9APgOl7A0+wI
         akYg==
X-Forwarded-Encrypted: i=1; AJvYcCUUUmU9nopaf7aNO6XJGY0ESotd2NQQArss2YpQ9dEHw9SQOjYvwllDl3AGC7CpsqvN3HGeaTpal0k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJyrIu/EsMlBpkPClHVnjuhlW7uh6q3brB9Tod75T8e4BINGOp
	jQSPcMBkQN7F3GE8kG0KtU0qmJGWMHr5f6lIFezkFKvD0MvGrNm8wLGKz8O+8g==
X-Gm-Gg: ASbGncuqhmE8szLnX4GLTiLCkzYWYO2nvexIoNEGj9XE+9JBrspatlELOiC58QlcEnf
	KPPHFFTfdwT7FNqr9KYsmcrtSPgCblpFLZES3xoS+0Deq7GlEHfVLMVok45dA6OZvIfqjhr0Ygm
	JHBoz1pZv6EQAiBcy44XUzcnAJmygumPVNLiUxMGjSrBYhcJyeMA22th16S18nhDdbWjsKUYbDZ
	Tyh0uGf8wXZuSsf8t63LEC9ZlNPNl2yYNs3OYBue2wnifp37Z160Yo7vGb7QiJWStYiv2eGVRgk
	Py+Zv2VI3uPcbELuX+m/dqDnhwL/8MG5cRk=
X-Google-Smtp-Source: AGHT+IE+oZR02BaIQKhUFmaDRVB78suhEwdGdQP0qUuENvAOz1jnuMx9YTKn8D2vy9oYhd+TgCr6vA==
X-Received: by 2002:a05:6402:2793:b0:5cf:e5e3:e0b1 with SMTP id 4fb4d7f45d1cf-5d0207b2aaamr12059272a12.29.1732615383587;
        Tue, 26 Nov 2024 02:03:03 -0800 (PST)
Message-ID: <1c920063-efc9-4004-8670-fa3aae1389ef@suse.com>
Date: Tue, 26 Nov 2024 11:03:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/15] kconfig: introduce option to independently enable
 libfdt
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-5-dpsmith@apertussolutions.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: <20241123182044.30687-5-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.11.2024 19:20, Daniel P. Smith wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -53,8 +53,12 @@ config HAS_ALTERNATIVE
>  config HAS_COMPAT
>  	bool
>  
> +config LIB_DEVICE_TREE
> +    bool

Nit: Indentation is wrong here and ...

>  config HAS_DEVICE_TREE
>  	bool
> +    select LIB_DEVICE_TREE

... here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 10:05:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 10:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843502.1259117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFsRm-0005Fj-7o; Tue, 26 Nov 2024 10:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843502.1259117; Tue, 26 Nov 2024 10:05: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 1tFsRm-0005Fc-4s; Tue, 26 Nov 2024 10:05:30 +0000
Received: by outflank-mailman (input) for mailman id 843502;
 Tue, 26 Nov 2024 10:05: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFsRl-0005FW-JA
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 10:05:29 +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 f4fa40ff-abdd-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 11:05:26 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4349fd77b33so15921715e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 02:05: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-3825fcff017sm12838557f8f.108.2024.11.26.02.05.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 02:05: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: f4fa40ff-abdd-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzIiLCJoZWxvIjoibWFpbC13bTEteDMzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY0ZmE0MGZmLWFiZGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjE1NTI2LjAxNDIwMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732615525; x=1733220325; 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=/bLSBzi23tLlOlfvnet11HoFjOr6yB4syboMHczw9Nw=;
        b=D1F+/VQ3dNyxYSWf5CSytd/O5YMtSWWWAJmVRksxaRWReybwENgjQIx/7bTMX/maMy
         aHIr+PwCpB0C3G4Sej+eU83RYCvohYk4Deah4iiRbMIHsufcUfF2PmbxPX1Vtjik0c5E
         xwl9CSd4Ls3s5HmIXZKIP9Rooaz5x1+yMnn0SQh8VEtuzSa/gmPfzCeHjUFpDPCvj/kX
         jbwXHM8VR5arbHeA9fqdHXrALUz0czpY26m+9GETFlMNdeqnWMNKt4t3jGlWrYdSW1gn
         PLxDZmUxxHWRvhZas6VgOpSWjXVVAGY1ntRQJEaXq9AkYB9tJ0+YKf8HqzS3OzzaCGpo
         pwBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732615525; x=1733220325;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/bLSBzi23tLlOlfvnet11HoFjOr6yB4syboMHczw9Nw=;
        b=I4rDaIcBoVW/ZR09+eXKuoSQVU2aA053+Rdro542G4xQu4RCpBwYnOxRQ7nTaSr+9x
         00czfTN4haz9ruhQuF6bv+l8NF7quZ4ZCfprPN0MOh9+9ySrMXmClzCIjtA3mNb4jt9C
         P2jSRvLwrkrrm7qyWyYH1zXDxk8QjK9+3yw4ANdWJ7opIi0zv/kA2F5suQEuPJSWgGh6
         FyWMQL3zRnKHAgKCpLAzSYEnWRFqNDrhh8QbrGsgtGFgBToseCPKjBkJlyGernX5P9m4
         ARWRJKFpPCm1/y9Rpd99dsM6nBj+veOyLSA7cN6HnDVY++RbjGY4zVi/QMXDYCr6Edav
         cs3Q==
X-Forwarded-Encrypted: i=1; AJvYcCWJhtsaS3VGIKbT7K7vi9cDplQLNrJ0OUjisddry/AUhF/jgiY/q0NPXAL2M/QwVOadufvlKhV0yBs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyX70ax2xPmZLDpleaSW712ev+dZWK2zGyqjd7jnmXeYALEm+H
	cbOa00UBX1H95QUQJ2acyUqqlnCsjJ3sn/q4DrhNsT7StvwN6X0g3IS0B/+BqA==
X-Gm-Gg: ASbGncu16UI+YYIihMQsJk0H5GXPR6dt3pKD5MZPtvZhworsGrdObM/xR0aUYBAVnAi
	84ShFqKTlWPrHobbpY5+Z+i69BrV3i2/y3VS12dXRK3NYdtIuLPhNpiHj94KLBExmcHng3sNEHC
	aEajYn1ym+JvQuc8jJQBP+9yl4Gmq2IPIwgmyxJhACuQOaZveXrM4UyA2dvGmaTcmHo3HinmbI4
	VLZj3AoYPJkZr6IEKpAfmHwGMTehJJi86XDRQDY2Qcv5sPD/E0Su8PStZGijXq/esQQDDR+Ezqq
	IqVp/posThIJPbktdl3u4AuCMl/RLTi+okw=
X-Google-Smtp-Source: AGHT+IH7e9b0SOvEAV9FUiJwOScnaGcxkAHs5uztqM0VdYTAGgOyMTyAHzMH3VLYpQhLjuKFTw54iQ==
X-Received: by 2002:a5d:6c69:0:b0:382:31ca:4dca with SMTP id ffacd0b85a97d-38260b4d679mr13511664f8f.7.1732615525425;
        Tue, 26 Nov 2024 02:05:25 -0800 (PST)
Message-ID: <87779b38-c027-45c3-a7af-f3e2b4b2a0f5@suse.com>
Date: Tue, 26 Nov 2024 11:05:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/15] kconfig: introduce option to independently enable
 libfdt
From: Jan Beulich <jbeulich@suse.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-5-dpsmith@apertussolutions.com>
 <1c920063-efc9-4004-8670-fa3aae1389ef@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: <1c920063-efc9-4004-8670-fa3aae1389ef@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2024 11:03, Jan Beulich wrote:
> On 23.11.2024 19:20, Daniel P. Smith wrote:
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
>> @@ -53,8 +53,12 @@ config HAS_ALTERNATIVE
>>  config HAS_COMPAT
>>  	bool
>>  
>> +config LIB_DEVICE_TREE
>> +    bool
> 
> Nit: Indentation is wrong here and ...
> 
>>  config HAS_DEVICE_TREE
>>  	bool
>> +    select LIB_DEVICE_TREE
> 
> ... here.

Oh, and - please don't put LIB_DEVICE_TREE in the middle of (sorted) HAS_*.
It wants to move past them, before MEM_*.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 10:09:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 10:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843517.1259127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFsVa-0005uf-PC; Tue, 26 Nov 2024 10:09:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843517.1259127; Tue, 26 Nov 2024 10: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 1tFsVa-0005uY-MQ; Tue, 26 Nov 2024 10:09:26 +0000
Received: by outflank-mailman (input) for mailman id 843517;
 Tue, 26 Nov 2024 10:09: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFsVZ-0005uS-AD
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 10:09:25 +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 817716ed-abde-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 11:09:21 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4349e1467fbso18111655e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 02:09: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-434a4d41f9bsm25304605e9.18.2024.11.26.02.09.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 02:09: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: 817716ed-abde-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgxNzcxNmVkLWFiZGUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjE1NzYxLjY5NjE0LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732615761; x=1733220561; 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=7lX9jabNt1n8cU2Vc1vfU+uQxnd+BYj60bQdNXWpFFo=;
        b=QW/jqOfEa8x1Plfp/UTJY5WhsdCbbNvM/dUNekM3mzztOBQThmkPpSWLt5cDz8oBC6
         QP/n48MQG7YgEb7v54/bcMcQDtwSRSt2A9kQYFswQ+bbejRQxJH7CMgOHFTQHZNsjpfB
         gXuK7pJ+19zxqH9TjZUx7zNOPI2krikGV1/Li9rmGF89juWEAhie+4yh5GZSoqsPKx9/
         YRdevPMGAqEPv4qaAs01WhTP7RX02ANR1x8Dn4ul+Ehl2sprfXPU+8YzdX5+GWRJGHGD
         i+WZQ+jkQv1qtHvCvhF5IY9s27CAxMRkq9QuX8K+GFjgs9XIc8yma+yxuphqNbB19e4D
         wvAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732615761; x=1733220561;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7lX9jabNt1n8cU2Vc1vfU+uQxnd+BYj60bQdNXWpFFo=;
        b=FSQox7JqG8nMHr0BWkEfo/+1JTAyFBFb3aVzxUHAH+A/qqq3OePSwGdHtZB3X4rrRN
         QzpcLGeKzhOaeIsjFnb5kSBfL9bkQQjfFSiGI3dA1+bwbmsvlf0QNZztbC/ucenz9sWP
         7XgnYgf6zBlmLfRkcZwEwpQFvG3TSQqhZDTjcRWW65TTADFWsXpM3Es/RmIH+wVP3SZr
         liZ9NCo0AgIjfH2yvd9f8YwRWcv+Y1DFimo7wateqDwBrjSFnQ8cNv3l/rJWIkO6D2ue
         aKS5IKqheEtDUWToBObbjz9PqmBA95caEx1HQ+j5ffnHakfHz9eUv5RZJzA0E7utke9g
         7cvw==
X-Forwarded-Encrypted: i=1; AJvYcCVblyx5uFqsfD+tmGr84/hTlIuMW42bymFjd67ACcTJ5xcPx4MMsZ8SQ1O/TqW4xmQ/mTZqSgWCxTg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztKGdDgx/2rGpEeZRiqwUIlALtEr32krxjf/6m++hy1x9zjqVC
	Cv/uVVCbRHxvb2ipdQQ0tWMj3vrTWJ/TMVgMMqkqWqWDGiic2ISrBFH7FaJofQ==
X-Gm-Gg: ASbGnctj2kUUea1OJLi4NL+bs/XFis4a2I59ggWiCCTBk3+FfDiRGe2xQWKwgQ0vqjz
	D9f/vi9KTtOwcES+JzhYMt7remGFIvEP4efx6hhuqdkUHbyGM0qU/9GKrK45rj0FRlQHBtJfa2n
	T+N92sI39O2pgquWjdC79j8repixjM1Bwn2QJ1q8md9XBLMPaTrumrLLaWVb4sY8NDEi2YCSmnj
	Wjymaelgd2T6xCbCv/GTfM5zuhvsgdnC+b9k1wg1UQxHGS6we8vfYqer1pSpvv5T2zcCwXejw+p
	vvL67qq0qkzAnNdKgOOjnBvni+hgEWb7plk=
X-Google-Smtp-Source: AGHT+IFWoj5mj2bJ+8SADbdIJtMJxf9g6qHkYhbgr34MMmrG2e5YpuRC3YB8axCWOU9VqWXvg5lSjA==
X-Received: by 2002:a05:600c:1c2a:b0:434:a902:97cd with SMTP id 5b1f17b1804b1-434a9029a54mr49165e9.12.1732615761118;
        Tue, 26 Nov 2024 02:09:21 -0800 (PST)
Message-ID: <aa722ea4-304b-47ec-9d93-ee88a03b7b53@suse.com>
Date: Tue, 26 Nov 2024 11:09:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/15] kconfig: introduce domain builder config option
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241123182044.30687-1-dpsmith@apertussolutions.com>
 <20241123182044.30687-6-dpsmith@apertussolutions.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: <20241123182044.30687-6-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.11.2024 19:20, Daniel P. Smith wrote:
> Hyperlaunch domain builder will be the consolidated boot time domain building
> logic framework. Introduces the config option to enable this domain builder to
> and turn on the ability to load the domain configuration via a flattened device
> tree.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>  xen/arch/x86/Kconfig                |  2 ++
>  xen/arch/x86/domain_builder/Kconfig | 15 +++++++++++++++
>  2 files changed, 17 insertions(+)
>  create mode 100644 xen/arch/x86/domain_builder/Kconfig

I think I mentioned this already back when the much bigger series was first
posted: Please no underscores in new file (or directory) names; dashes are
to be preferred.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 10:27:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 10:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843531.1259137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFsmv-0000pI-7N; Tue, 26 Nov 2024 10:27:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843531.1259137; Tue, 26 Nov 2024 10:27: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 1tFsmv-0000pB-4U; Tue, 26 Nov 2024 10:27:21 +0000
Received: by outflank-mailman (input) for mailman id 843531;
 Tue, 26 Nov 2024 10:27: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=4efj=SV=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tFsmt-0000p5-IZ
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 10:27:19 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2415::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff3d3882-abe0-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 11:27:12 +0100 (CET)
Received: from MN2PR07CA0030.namprd07.prod.outlook.com (2603:10b6:208:1a0::40)
 by PH7PR12MB7456.namprd12.prod.outlook.com (2603:10b6:510:20f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 10:27:08 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:208:1a0:cafe::60) by MN2PR07CA0030.outlook.office365.com
 (2603:10b6:208:1a0::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Tue,
 26 Nov 2024 10:27:07 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.8230.0 via Frontend Transport; Tue, 26 Nov 2024 10:27:06 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 26 Nov
 2024 04:27:03 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Nov
 2024 04:27:03 -0600
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Tue, 26 Nov 2024 04:27:01 -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: ff3d3882-abe0-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjFmIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImZmM2QzODgyLWFiZTAtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjE2ODMyLjg2OTI4OSwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TdNy/4gSQxxS+iDPqT9iJOfPzsvXjj4ernPJ87Qo+4B4vKpmvjCou6Aa5qMDqfTryvqPZzSeo7KjkQGoNYYqWuMCVQxsQB7GRN2ITKjqTkiBw7x4ePFzy+NMMKZwXsMIpfMS3faPan/kUQhSMo1GoY/iLvBQiqpfG/XNLL9fTj1uQ3mIh4ZcUCmFrPYWyabyMoGth7MsyEecLLPB7W2GrZ2QhTPOwduTVNTWdMU7y9k/ea7b14B/tlNY3/W5zCnc07t2mvhvCYX12p3wxod5oQCXVn8EogWFz7wYvimhPgxi0Ped+V6oT8PjcbFEZDwAH+l3qnSBeJCYk4Kw0BxMvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G9kBqC5zBD5gUs1hx/Z74wEDICt99TAu9t6elq2LBLU=;
 b=pbPHn2LsYZy+7PoyriNKorFi1aHDQplLYSe74C+MLLi+MRoFP1dWNa+Sa9ZGsQI6NIbsWG2sNAD2qd1aagdyQ2NDgmZqC4Z3vJYRRVx0sMzN17ubofzwWF+P7CJaw+aBlzknR3GqbAdbDruFPUKZS9J/zRv8+wwjBKAuuJ2uOrc52kOVoHcZmtlBQLSzA64vPLQwpi8mmB1mgI0vIsNpyQQEBDoONNKujYH3qJxTSHZpx+0J9V335GLvSFyka47qNKwBusWMdXwBFzkn1bK9kj1jLTtilb8/tMBftHOOSgZ/+aAv5WtDXMq5K+RuB+kbbLaukPmSNpv87+tC0t4gtg==
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=G9kBqC5zBD5gUs1hx/Z74wEDICt99TAu9t6elq2LBLU=;
 b=2CXweczFNQahjRjEKkqUfKfDnBSIWGd/d+C8O7L3uWYYXIYKpUY3YXTYwoYpFFMJVK9bXMezXekwvawZZSOLjxrQi8jqb5w+SSrPYufFIwMs0SX9geMd2E3PUfeB9kWm12EJKi2dJKf8DHb3PZIqWX8gToWhKCyfZtHh+5k8aWA=
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=SATLEXMB04.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>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] domain: Validate __copy_to_guest in VCPUOP_register_runstate_memory_area
Date: Tue, 26 Nov 2024 11:26:53 +0100
Message-ID: <20241126102653.25487-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055E0:EE_|PH7PR12MB7456:EE_
X-MS-Office365-Filtering-Correlation-Id: 609c2cdc-52fc-44e6-5645-08dd0e04e07f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?r2bMdiPUF6UdYbQdk1X4KWWtDX8R+WqkV4dUSGKOx48J5Y35R3hwu25SIqCx?=
 =?us-ascii?Q?Og67vSlXk5OFKOUDtrvDLl2KtBCnV/JlOOLaz+jeorOEfunIWjq3fEA9/2/0?=
 =?us-ascii?Q?OW9tbXLWFduotxPyDA6R+3lTLU6SFZZAQ+B6ALlOyPB7Lok+2VVtOvJ/ML5u?=
 =?us-ascii?Q?n1wRJC6U7LYrMi48c2km4y35l1v5qXE7iZHZpJ/m6anOmah7+9XMnUML3uiF?=
 =?us-ascii?Q?EQhKukTWt/wg+nBKHf8snlR81qSxQ40eQOJGgMjhpN+HMoz+yBowgplQxsFJ?=
 =?us-ascii?Q?jDt7lODAHHu6ZX2goqCjeaHuxEuKLU22koniK/74z/dOTYd/E7kRQo+5oAUw?=
 =?us-ascii?Q?6+dB1bg3JzkHJBfCABJtE3wNi7eEP3bS0+ZM3sQdMYs4xLeepB8+gqevyxvj?=
 =?us-ascii?Q?q8O2GJZPjHzIqvN7sroPcpnoMgssbmiiywrjrrUgDmryc1kzovi51KRdlYnN?=
 =?us-ascii?Q?9cuhqUPQYhB2KC34FAhL2G8EDww57YTovde5gS/luyuIiD3t+Lec8K9vkCrU?=
 =?us-ascii?Q?PxtNmYgSQjCAegXnWtYZAh3wyoMEh0E23ws2dlDkEl7PQtSDNtu+7zv0MnVz?=
 =?us-ascii?Q?g4uvilau9o4fYqCzQCKeAk2vJsKCV+Ekk4U+8FMER/aGuw5tQVT9IAhHmQb6?=
 =?us-ascii?Q?23BkeeZOpnqb++/QCc+Z23FreTXIMOIWDd+R61/aKLyJgMD7fUAaXrM+I1VX?=
 =?us-ascii?Q?aFW9YDcRNiunjj1lqRsVgoE6gSuM6kNlDnJkmIstztv5+CWypN+K32icD7fP?=
 =?us-ascii?Q?spsqeyVZQ8DesSLaq/yW5n/Q/ClhQu/bqGFvTKkwNUc1ki4K3rSyyxcVTsCA?=
 =?us-ascii?Q?5FuJ45TYnqolvVvToAzFjuZbz+zTTMiFhhJpordYmZ+Txb+CW1ODmdi+wT2R?=
 =?us-ascii?Q?TKlsSC0SAQxJ3bclQPwMbu6hFMOozavNYdZuVKOEnKiraZCfjaAnfI0ZwoEj?=
 =?us-ascii?Q?W0dA63yDT7Mp/V04CfHln5rzCXTt4iq2xx3JngHoo7ZUss8/yryYYnr9Llzw?=
 =?us-ascii?Q?DQlouv+R8ViEaum2WpVIBupD6iGNs/nC0JDQL16Jrr+ohyaHso2xkiR+X7uD?=
 =?us-ascii?Q?HYr3bYh7SwkM1TPtwD/0dGa+NPIVKZlJj9s/LdRZOqLiODOXLQ90PsvMZeO+?=
 =?us-ascii?Q?nyX23r0Z/xxdBl+k+sytWrnCEfo9SNbr/a68lv2x863DLf2omPngb8U16nqP?=
 =?us-ascii?Q?04YHjuqm0c2UzRth+nqRj6VD8k0NrI7KLPtscn40hn0d0GVFN3f5E0F98XXz?=
 =?us-ascii?Q?3YxHOZXlwGwDhMtJSNqolEQc9Rv/kk4ovKy03KJ24qFwCzCSSkrPjw+4bYTj?=
 =?us-ascii?Q?M+vNpoPfUgFPuNzDTym9FOd1s0YStGc8BhFZUcdVbLDPQ+wR6IkKSAe4RHfu?=
 =?us-ascii?Q?Lfxmc6xwKPSTNfW4dulfHQXedqWpMnpgMsgxXW4EOF7ugAkd68dRwJqBD5jp?=
 =?us-ascii?Q?GIS2N/6y0Ja4eK3kXOsyHTygxQReiE/v?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 10:27:06.4919
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 609c2cdc-52fc-44e6-5645-08dd0e04e07f
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=[SATLEXMB04.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: PH7PR12MB7456

For guests with paging mode external, guest_handle_okay() always returns
success, even if the guest handle is invalid (e.g. address not in P2M).
In VCPUOP_register_runstate_memory_area, we would then blindly set
runstate_guest() for a given vCPU to invalid handle. Moreover, we don't
check the return value from __copy_to_guest() and return success to the
guest, even in case of a failure during copy. Fix it, by checking the
return value from __copy_to_guest() and set runstate_guest() only on
success.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
I'm not sure what would be the appropriate commit for a Fixes tag. Arm port
only moved this code to common in 8968bafa3170d46d21d8f6ee2d0856f270c864ad,
so if at all, it would be:
Fixes: 8968bafa3170 ("xen: move VCPUOP_register_runstate_memory_area to common code")
---
 xen/common/domain.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 92263a4fbdc5..3f6fb0798fa3 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -2046,19 +2046,21 @@ long common_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( !guest_handle_okay(area.addr.h, 1) )
             break;
 
-        rc = 0;
-        runstate_guest(v) = area.addr.h;
-
         if ( v == current )
         {
-            __copy_to_guest(runstate_guest(v), &v->runstate, 1);
+            if ( __copy_to_guest(area.addr.h, &v->runstate, 1) )
+                break;
         }
         else
         {
             vcpu_runstate_get(v, &runstate);
-            __copy_to_guest(runstate_guest(v), &runstate, 1);
+            if ( __copy_to_guest(area.addr.h, &runstate, 1) )
+                break;
         }
 
+        rc = 0;
+        runstate_guest(v) = area.addr.h;
+
         break;
     }
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 10:40:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 10:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843547.1259175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFszv-00041f-LK; Tue, 26 Nov 2024 10:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843547.1259175; Tue, 26 Nov 2024 10: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 1tFszv-00041Y-Hf; Tue, 26 Nov 2024 10:40:47 +0000
Received: by outflank-mailman (input) for mailman id 843547;
 Tue, 26 Nov 2024 10:40: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFszu-00040H-D4
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 10:40:46 +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 e29b8cd5-abe2-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 11:40:42 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4349cc45219so22106045e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 02:40: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-433b4642b8dsm225168855e9.41.2024.11.26.02.40.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 02:40: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: e29b8cd5-abe2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmUiLCJoZWxvIjoibWFpbC13bTEteDMyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUyOWI4Y2Q1LWFiZTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjE3NjQyLjY2NzY3OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732617642; x=1733222442; 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=7+a6reuUcUA8C33ajglZrnVspJZ1Ux46Py6Q6jFCaD8=;
        b=CfModxsNMcaEUBoG6r/caSOiT11e4A43IT8yk65RPlyaCTtsGLi7Cq+hoOIAROy543
         lQsqAWs1WcsKnYY9YFobtLFJWXz3kgyZAN84DRjKljB2hiUFO/9+5ENOsPcwSUQxCGLM
         mBdjKPQZpnc3UEMhgHjpK8uMVDG+n1lh6l3KYQZO5ry2OFIKPyFWb+NdZqbHQOGXFnyc
         In8ttEhnxbo8DdmXd3hsLaGPSLEAPpg+flTmcV0zRO2ML43ZAHBewsmEwcFyQXL9Qnlj
         tO4xkwZZ/a2/LNPWI6Cy5+b6Z8vnxgnmTS1kkPJaJ8iM+IcEYjJzZpgw34xcBM1e8i8k
         Ecew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732617642; x=1733222442;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7+a6reuUcUA8C33ajglZrnVspJZ1Ux46Py6Q6jFCaD8=;
        b=DsaCVB+5wBLJqdLeNehOMG61C9A/dYv58RMrtNOjv+vAJrfDChg0HlY3CTGUAkoLnE
         ept2xTS3xSxNppQ+ga6pbU9XCoNZbKucEbyq+qS43BJTFZz4lceR1+/nkj20EXifAI9o
         QxE2zsHhgZrmUSioc7SR+9foA3EqQliCUU3zDJNvHfxOXVIjWavUWNTVEzEwMqF4Ld2r
         S5BfitGSfckIfTg1opIKI4MQEyby4NiQJtA4I9C4+t14TnhRWYAiu0XmXE1EKGcJxN3/
         0FwiI242sEH8dT+UsHFS7SzB8R49vDhIwStRSpXTsB4LtEFZL0tZ5slbZWYSLY+BlUo8
         3k0A==
X-Forwarded-Encrypted: i=1; AJvYcCXaCXVpAt2JQSk8K0u5xC0lhp2dLeCE1IjG8u5ni418RgxSHGl1a5AzDP33W0JX9STNsju15Mgm65s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6PXHWPc1CgFtr98ze7q6UdppYX5z9lDZFrf4l4RM9fUvRfAt/
	7928hyJI2TTvY7+tvm/fYlsArrSPQsPpEzKRuTa2AuuKApke3xcjXWPc3tgZYw==
X-Gm-Gg: ASbGnctB0hnacr2XodqptPqwD5IvAN8wmp1LFFNhc6uLhimtrS5mXrR+qWqVhvcnUm9
	4XlfgkwcCqmqN2xC2VtCY4v3HqEB7xXx/PFwiBMyiedlo6EwxNWWD51LcFdxh72DV9hyYmggMJ5
	ZFrPdS3sPo6MTNUtN+wsthdKBZmiVCUYBTZM1cBM5bgDn07JRazadcM3erk0FLeYvRjj8CJr7oN
	KnAJEjPt0Cor9q4GApeJNlNcvW62K0nYgi0t1EX9mYRLDzFRJIPQ379VuUxVT12Sx324TiJT9m9
	kyhgS+nNPfvq/ilnKcqkNpLFIPyHfGa/Rrk=
X-Google-Smtp-Source: AGHT+IEyf++FdIgM+bc8VdI5FYaUkYCTkMuc/PBCDm3Pd0xG16YkxR4kaFSnQa6W83AmDmnGNmRSQQ==
X-Received: by 2002:a05:600c:4f4e:b0:431:12a8:7f1a with SMTP id 5b1f17b1804b1-433ce426837mr161359035e9.16.1732617642060;
        Tue, 26 Nov 2024 02:40:42 -0800 (PST)
Message-ID: <db4de7c6-c955-43fd-ab25-947809f357a2@suse.com>
Date: Tue, 26 Nov 2024 11:40:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: Validate __copy_to_guest in
 VCPUOP_register_runstate_memory_area
To: Michal Orzel <michal.orzel@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241126102653.25487-1-michal.orzel@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: <20241126102653.25487-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2024 11:26, Michal Orzel wrote:
> For guests with paging mode external, guest_handle_okay() always returns
> success, even if the guest handle is invalid (e.g. address not in P2M).
> In VCPUOP_register_runstate_memory_area, we would then blindly set
> runstate_guest() for a given vCPU to invalid handle. Moreover, we don't
> check the return value from __copy_to_guest() and return success to the
> guest, even in case of a failure during copy.

I'm afraid this is all deliberate, providing best effort behavior. For a
paging mode external guest, the handle may become valid subsequently. If
any __copy_to_guest() fail here, subsequent update_runstate_area() may
succeed (and success of the actual copying isn't checked there either).

> Fix it, by checking the
> return value from __copy_to_guest() and set runstate_guest() only on
> success.

_If_ such a change was wanted (despite its potential for regressions,
as guests may leverage present behavior to establish handles before
putting in place mappings), x86'es compat_vcpu_op() would need updating,
too. Plus what about VCPUOP_register_vcpu_time_memory_area, behaving
similarly?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 10:51:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 10:51:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843559.1259184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFtAG-00061H-Il; Tue, 26 Nov 2024 10:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843559.1259184; Tue, 26 Nov 2024 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 1tFtAG-00061A-GH; Tue, 26 Nov 2024 10:51:28 +0000
Received: by outflank-mailman (input) for mailman id 843559;
 Tue, 26 Nov 2024 10: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFtAF-00060y-Hl
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 10:51:27 +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 5ff1efc5-abe4-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 11:51:22 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5cedf5fe237so6492936a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 02:51: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
 a640c23a62f3a-aa50b5b764asm579331466b.175.2024.11.26.02.51.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 02:51: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: 5ff1efc5-abe4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVmZjFlZmM1LWFiZTQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjE4MjgyLjQyNDgyMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732618282; x=1733223082; 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=bI7FLaEX5KDcnaIiBRihvj3CEO0x6mpnyDfr7/6Z4S4=;
        b=OqYoNsc2XdMV+rl3psLLZWQBXVGUK0cnrIVsRvKzv86wrpIsKakgxb6bU/dKZGzBqj
         o+jsfNZ5hSnNpy/zi0UDm+CsmkSyLOIBuAWIqzFxPPc6UJzwgkcm6+sgBWvq0alPK0xk
         HxrvyQ2sz3rH6Zm/K4icnXloynW1w3viZxYC7DXlAKJzW0yYJN0xOlZTwGXCxp0qyWAR
         hVi+KG4MwURZzr6LO3IN1W+TsHhDFYDxwWm89l26Qfxn2Suqfo5V6RxmdA4ZXUzmf2/4
         382A1tKYlhs+jcXx0yehH7EQapy0vK2ujwuNDMEHd+/uwYV1jyAq2/UKMg3rHO4n5B+9
         Zmkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732618282; x=1733223082;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=bI7FLaEX5KDcnaIiBRihvj3CEO0x6mpnyDfr7/6Z4S4=;
        b=xNNoj3xF9YwVcVGRmEYbROVvTyJQ79PY8fnlJ+s13vgOWMUhgoJET73E00Ak6gt2un
         33efxBDiaSr1DQoLzIZfMFpNvivPXhXua2bBNiG5yjLijmzKAwXG9GIOE2omSmGtpAb4
         hPJ22bcpPqoZN4L+IvqGWmSpFR4lVo4/3PNGpIJMA0Q4edpWSspPivyan9JslVj165bs
         zI8FHG5MPwBvu5WtimZbz3PIlnSjV/w25sJkk4fROhX6hoIZQ2Iihltedj6kNyahjsqo
         v8J5Mp3Jzfl++FG6mOMFgcv/m9R6oIoYjbMQofUwjlyw6mz7fhO9IPuuqTCGnVAwHYnv
         bMUg==
X-Gm-Message-State: AOJu0YyieW4VsfOrgR7ox1fHAOyCJjHlWlmHCZ8rH4SK9AQUIywp8/uH
	qBKmBmJVIXzGh6u9hEg6qhIi8egDbto0PxmQNSK81rDO+oH3G7RhS8CyqGWfWA==
X-Gm-Gg: ASbGnctVX/EB+sasZOAa4c4bivO3XWKQO2c3C0AG3rDIqLfHsy9bFRGjw6h7M90Ts71
	pB6sDVrKMZgPzjKmFUz77M6AnmWB+M7Z80XE35AEHg8E2sz9JQuSjfoTstyArmt5UJFCCHU+NvV
	SATeix2sj2ehAYW1+PyT+Wsea8+bL1sNtLAtr0rt+iTgN+Ntalz0yOpOBDrnDYOH5EE5SNYqB5n
	62dpGXDn6+f9PPBZtce3iqugvKQX6fUBF/41bd2w8FuBZ+30Fcm4P3kx08Rta/BWPHDJJmoXc1O
	Gajx7l6YinAZKFqIFV8Y+e/mNyFKe0fZbtc=
X-Google-Smtp-Source: AGHT+IHi8MIGSVzEQSUxROtObNOlximwFyj4XmMqi1jodq9D9t4SpVzvYaqKJwMTiR9ecHAnR7WNpg==
X-Received: by 2002:a17:907:1b27:b0:a9e:c267:78c5 with SMTP id a640c23a62f3a-aa509c00bc8mr1724534266b.55.1732618281887;
        Tue, 26 Nov 2024 02:51:21 -0800 (PST)
Message-ID: <4ba83d42-4f92-4488-bead-04c65eb94408@suse.com>
Date: Tue, 26 Nov 2024 11:51:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86: Add architectural LBR declarations
To: ngoc-tu.dinh@vates.tech
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
 <20241118084914.22268-3-ngoc-tu.dinh@vates.tech>
Content-Language: en-US
Cc: 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: <20241118084914.22268-3-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 09:49, ngoc-tu.dinh@vates.tech wrote:
> --- a/xen/arch/x86/include/asm/msr-index.h
> +++ b/xen/arch/x86/include/asm/msr-index.h
> @@ -304,6 +304,17 @@

Please note this comment around line 250:

/*
 * Legacy MSR constants in need of cleanup.  No new MSRs below this comment.
 */

You want to ...

>  #define MSR_IA32_LASTINTFROMIP		0x000001dd
>  #define MSR_IA32_LASTINTTOIP		0x000001de
>  
> +/* Architectural LBR state MSRs */
> +#define MSR_IA32_LASTBRANCH_CTL		0x000014ce
> +#define  LASTBRANCH_CTL_LBREN		(1<<0) /* Enable LBR recording */
> +#define  LASTBRANCH_CTL_VALID		_AC(0x7f000f, ULL)
> +#define MSR_IA32_LASTBRANCH_DEPTH	0x000014cf
> +#define MSR_IA32_LER_INFO		0x000001e0
> +#define MSR_IA32_LASTBRANCH_0_INFO	0x00001200
> +#define MSR_IA32_LASTBRANCH_0_FROM_IP	0x00001500
> +#define MSR_IA32_LASTBRANCH_0_TO_IP	0x00001600
> +#define MAX_MSR_ARCH_LASTBRANCH_FROM_TO	64

... move your addition up, omit the IA32 infixes, format according to how
other entries there are formatted, and sort numerically (implying these
can't all stay together).

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 10:57:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 10:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843572.1259195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFtFa-0006g0-98; Tue, 26 Nov 2024 10:56:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843572.1259195; Tue, 26 Nov 2024 10:56: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 1tFtFa-0006ft-60; Tue, 26 Nov 2024 10:56:58 +0000
Received: by outflank-mailman (input) for mailman id 843572;
 Tue, 26 Nov 2024 10:56: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=yuIc=SV=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tFtFY-0006fl-A6
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 10:56:56 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20603.outbound.protection.outlook.com
 [2a01:111:f403:260c::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23d2de7a-abe5-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 11:56:51 +0100 (CET)
Received: from AS4P250CA0030.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5e3::20)
 by AS8PR08MB8921.eurprd08.prod.outlook.com (2603:10a6:20b:5b5::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 10:56:45 +0000
Received: from AM4PEPF00025F9B.EURPRD83.prod.outlook.com
 (2603:10a6:20b:5e3:cafe::6d) by AS4P250CA0030.outlook.office365.com
 (2603:10a6:20b:5e3::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.19 via Frontend Transport; Tue,
 26 Nov 2024 10:56:45 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00025F9B.mail.protection.outlook.com (10.167.16.10) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8230.0
 via Frontend Transport; Tue, 26 Nov 2024 10:56:45 +0000
Received: ("Tessian outbound bf1c175f6cbb:v490");
 Tue, 26 Nov 2024 10:56:45 +0000
Received: from L7d5ecba159f6.3
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E68B9CB3-C8F0-4C87-A7E7-1D816B16386E.1; 
 Tue, 26 Nov 2024 10:56:38 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L7d5ecba159f6.3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 26 Nov 2024 10:56:38 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DU0PR08MB10357.eurprd08.prod.outlook.com (2603:10a6:10:414::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Tue, 26 Nov
 2024 10:56:36 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8182.019; Tue, 26 Nov 2024
 10:56: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: 23d2de7a-abe5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwYzo6NjAzIiwiaGVsbyI6IkVVUjAzLVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjIzZDJkZTdhLWFiZTUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjE4NjExLjI5OTM4OSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=o0LTXudQIwlmHHPeT/B4WZsdTgGINxupSUCPrNSCilhUN6GGGNCP1ujblPNRI9QCKpV+enCOhuWmPE9I4cDuf53vRxqDOHio3dRnEQcO5aBH9WBQWIxNoa5vCtY3uxXfCu0UzQHUO8D1Hw+aXEYTQmR6rEOV1PA9XwcNOfMYhIgm6ta25YXoxC1oElBAApMhkUmajg4UcImeHiBWNHqQz2r1f9oPGk92CzHUmxfBeg6EPbESkM64f34GR5qEvuuEEaIDttL5bw10rz/yaOCi3ryy6FpmO9BRL5bJrg6dBJIMbx+kdvGtwQsy3rePU+3vzYbuV6qoc1sdPEEDFbf61Q==
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=axhAz9D3KM7ys6kROUzf6GB7fq76WSSUy47H5z1h78c=;
 b=rfLMAaHJJjPmsqOMLy5MRv1KiJq6WYcUbbio2z5TeB7OI6jJFEm9bxMn3F6ElRcgF/Q5n6BZ6MXnQaPmajfZW7beO+3BeHRIrha5c3k9YA0hBEz6IWaxL7S0gDPwcYMYsmV+nHBcMBWwMpDC2rFvl9z42OvGre3pzPu6QEnGKJx+/vJh+bZULeDsGeprkRDjI/KSGUMXWgIlOX2584dc5DtYleECgKRYtrOXMoa/NnaekHG7atS6qBZ1vKIHqTFAv3EORLcXZlyY+gKwXV/dxBCX64M+Cf7wWOpF19pCcaC2niuu+qVGnwiT48E3aKCOJvYjPEdzg7gRyr3gm1HnHA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=axhAz9D3KM7ys6kROUzf6GB7fq76WSSUy47H5z1h78c=;
 b=kBlKoHv5ryLGiZYs0dnxfY/ZcMUAcVKmu4mTRLq5r600oNV7NUgQV4b8M+hptcIItoUCV5M4gbklGpE9aDyZmt6iQt0FnCvqeI/mTi5zxMDICYW4vIs1xt8h2MadI5WJQIsC27V7ElaP/o1q0i6ti/xHg/6CxOJtDBkJZiZN1lk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 12d656a3b1c3256b
X-TessianGatewayMetadata: w9yZnLv4lPVnQo/fTneX9SxJfO7e9SAwMv7HwMcwAJFIGyPy5VIRtYRrgMVMKaBpnvFYkpykpm+Dw+6XCJHpK4kUJDzBpmb4KmA4LI/zxQK7u6m4qatGm0SeYfEZEdK/z4mKmJ6DFh0qAGvxuwSwySwmWrgbvKWeFY4QFuPujdY=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z/I34G2GzusY5DIep1rW3KZ7S1ntTLvZcv2l1ySuiGOMc04aLFWvU8Evmvh/YwvKKlGivuoadMHuEm2wwW1pdY/Q0qer689VeZH8m5ZqQOVCflKSZsjH2CfwOgh1LH1Q2muFcLEoDOoFjWMROSqhj886RkpSmQW6rzaQlfkR7To6Uy5eQ83NRDuwrgb87VKHkDuAqr6Ixr7Hfk3dVfIpQb61Yh84nl+sIRowM7N7y3AvluXdEoOjnujhKKuyJpyBILhJ9do+VeuA4+9frvPEIDLTdxidwCFXCB+54hGVUt7HZQE/5sExuXalN4Wf6mQnJCoQP1rmBr0sknEg41Yl7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=axhAz9D3KM7ys6kROUzf6GB7fq76WSSUy47H5z1h78c=;
 b=Whh53p1CM+8CGu6/5amu+Kf755+osTUl6ZLAzg7xWxfXqc47+i8BJ/dD24Z7D7hEIYar+YyIuAvVFAm/cGMQ2PuL2iHcebL2w9BcDDmmR25Oz9PhsgPNJo3N1FYJNaUwXXpVQfE+aWGayHVsqbZatNdb7qpm8klVQQ5Bru/cfRGHwe7nx06sEKUHoZJMyQoclVwSpdp6j2SW/QAqKe1IHM6CLhqjn43ynMBfhY3xcq58dZ8pJIr8TnhFnWhbIWHWSkdhiYDJI+bNRGzrFOlWcLJ+BJhygTRmzfQgnhRefIABGWc2JXzvD1hp2sHyER1Pz+R5owCfmE3NSlqYUqptQQ==
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=axhAz9D3KM7ys6kROUzf6GB7fq76WSSUy47H5z1h78c=;
 b=kBlKoHv5ryLGiZYs0dnxfY/ZcMUAcVKmu4mTRLq5r600oNV7NUgQV4b8M+hptcIItoUCV5M4gbklGpE9aDyZmt6iQt0FnCvqeI/mTi5zxMDICYW4vIs1xt8h2MadI5WJQIsC27V7ElaP/o1q0i6ti/xHg/6CxOJtDBkJZiZN1lk=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Penny Zheng <Penny.Zheng@arm.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>, Wei Chen <Wei.Chen@arm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Thread-Topic: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Thread-Index: AQHbOmE/JeWd4mQRXU6E1FRNAbLoQLLIOm6AgAE0ZQA=
Date: Tue, 26 Nov 2024 10:56:36 +0000
Message-ID: <BE895863-B07F-42C2-BD44-D0A1E6150DC4@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-5-luca.fancellu@arm.com>
 <ca91b717-47c3-4f92-af6a-cb740ef6e91d@suse.com>
In-Reply-To: <ca91b717-47c3-4f92-af6a-cb740ef6e91d@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DU0PR08MB10357:EE_|AM4PEPF00025F9B:EE_|AS8PR08MB8921:EE_
X-MS-Office365-Filtering-Correlation-Id: f8335569-7598-43af-1088-08dd0e0904da
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?MzFybHRDejlZb3QwNUgwbVUxSVdHaThxN2FlU1FEV2NrWXNKWHJhUzhFZ3Vx?=
 =?utf-8?B?K0J1UmJhK2piYURBQWpENzlFNU9WMUthc1JTQ2xqaDZ2b2dVMDY4VWZCM243?=
 =?utf-8?B?MkNDNy8vMFZnSE0zYmgzZWZsdDl4K3lRMU9xMC9zT2hGdU4rejhZMWJJemJw?=
 =?utf-8?B?UkpPaitCdWp2WTlrNFBYcU1vNzl0RXRnNVhBUGhEM1ZIUGprWHRuVlRBdDVH?=
 =?utf-8?B?Sm5XR0R4ZXJjaWJUb1JTR1VmRTlnNE0vMGcvRnN2WDU1VG56NFVpTjdJMUxz?=
 =?utf-8?B?Z0R4YWhhN2lwY3V0Sm52aHIzUHdPSGdHaWtuVDczZFhVRzBCekFCSVI3YnBm?=
 =?utf-8?B?Q1R6WFpZM29TNWc0OXZ2aUE5bVNkbzZ5KytQRUl0aE03R1FUVDFrZEdRZUZp?=
 =?utf-8?B?OTdQVlkrYmZhQ2t6dW1LRmQzeXUzWnFqVFpmTE5rZElPSUVUZGgxeWZGWTVD?=
 =?utf-8?B?cTB1eTR3R25xYXlSeDhNckY2eFpFRVdkbzZVdnN5NW9pVWhpSHF0REkwYmR6?=
 =?utf-8?B?cVJzN1dCZVVtOHpRcVA4cUp1enZOQmVpMkhxNFMvYnhGSmwvTW0zV1J3cUVF?=
 =?utf-8?B?UzR2T0didHlYekZETXJ2aGlXWXNmeFlaWndwb0NHbHVDUGtSb013TU1FNUVi?=
 =?utf-8?B?L3JuYnl5ZWswLzdMTFR5ZElpcGVHN1BxV3hrckZPV2tvUFdsRGNpQXFTQVIr?=
 =?utf-8?B?bS9LNkY3QzdkMFdHeUt3ZnRteHRhT0loMVhUdHR2c3BEKzA5c0ZjcVh1ZFdr?=
 =?utf-8?B?a1VLbTRCWlMwN2RZUFpPT0twV1poY1Y3TDVCUlJkRVdsVEVWV0VjUlA4TjJi?=
 =?utf-8?B?bmdiRXdjWWtrdmhmT3Z3YzVVQjl3U0wyYWRuRnl4bGxTeG96TlFST0llai9u?=
 =?utf-8?B?TlVUL1BHTTkvN0NUMDlUdlhxc0ZsdDlYRWJmRlkwQnFvMzhWZ29ScW56V0Nj?=
 =?utf-8?B?NWNYN1Y2L29YaUNjWUFaY1RXS09oS2RZQ3BRWGp2ek9kMFFiUW5pRnRmdDdY?=
 =?utf-8?B?aEpvL04vZnRJRGY4SXNhNGRtKzVmWmVrdlZNWERmMDE0MERUTEFPWnVpMExU?=
 =?utf-8?B?Y2NNSDVvNlFaYmo5ejB6U3JKMXBoZjV3T084YWJiT1E1Z3JwU1dCR2lIOHJw?=
 =?utf-8?B?M1YvRU50MEs2bTBWdlppV0s3b2NtMzgzTlFQVHlRc1puclNxT3ozK1Back1v?=
 =?utf-8?B?eVJ5ZG0zNEhtbXB4c042U05pUjRQOFpZZWk4KzgxbUkzUDltWWorcm5yVmtL?=
 =?utf-8?B?NXdOUDdTTEtaMHpVaWs5Mm04bllmV1FrdW9veUQ0TE42S25VazdkeGR2d2lB?=
 =?utf-8?B?T01uQVRxUHpnTFNKUS9aVDFiMTBpWWZ2Mk4velN0OFNPdndUbUlTRWFTWVFw?=
 =?utf-8?B?VjRqajdrOGZnU0FrWnJnR1VFNlNKMG90S0xTbGJrdHFtTGNzRFJodHkrYjJx?=
 =?utf-8?B?L2MrcFRHTHpoQzgvRkFFOTE0eGNYbm5LMXQzTUxpemgzTkhtcEY4KzVnc2lU?=
 =?utf-8?B?TWNyUzU3djZNVlF5b3ozbDNVaUIwUTJ5QitIYWxyVWtRRVg1QzFIMjducFdh?=
 =?utf-8?B?UjVod3FzdjI3bGNRSzl4MjdWNTd4OWxpUGJMTDVUSDhYc3c3emc5NjRLODB6?=
 =?utf-8?B?ZVIyK0lOR0RWYmZWR2xKT2tvSHJQaE9uRVV5K1dybUgrV0YzSGVIcVpDUVZE?=
 =?utf-8?B?bk95Y3Q3YkNPc2VRY0YwQnNydlE2UE1Ib3NMNDdKandEcWJWLzZiSExMUVNX?=
 =?utf-8?B?TGZMNjJ4NHJpZFRsOWx3Q0g1RStWcStrTytLZkNBaEVBMWRjY1U4RVpWRzBi?=
 =?utf-8?B?bWE2cFFkM3hvWGUxSnpLek9zbnR5YnFpTXdkay9kcUlEbE4vSks4SFZMTkVy?=
 =?utf-8?B?aXh6QklvZ1BLbnFrMExEKzBsaWYyOUhsaE9MejVGR2NMdlE9PQ==?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <8CE0B6A163B75042AAC555BB47E10752@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB10357
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9B.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9c1801c1-779e-41ac-1e3b-08dd0e08ff99
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|36860700013|376014|35042699022|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RndGblRLNXdHekFIUzJCbkFiMzAzaGU0L1NQb3J1dzRjcWxmMlFCQlBDTTV0?=
 =?utf-8?B?eTcramk4d2hLWEJVTHNwcSs4UUN1YWxMSXFBN1BubnBGdktNbzZSQ0hIbkZW?=
 =?utf-8?B?ZVpkVHNFUFZuWEMvS0djc1htNUlJRkh0c3QremJQVCtnWHhJcGZFVjNuMDhF?=
 =?utf-8?B?RktCVmRNdmEwYkZyQ0R5dFRQbllORTdUSGVxMW00MGZTODUrdHQyS2p0YVJr?=
 =?utf-8?B?NHZyUmFNZ3BIRno1SmszOVppRVkzNGV1TUxnMjRFT1BHOEEzbGxHaEN4cFI5?=
 =?utf-8?B?VVhQRFJDbkdOd3FzTnhORHdTblB1OGxJT2Y3VkRRT2MxTEVSUXQwNVZjK3Zq?=
 =?utf-8?B?d0t4Y1NZSnVRK1pDZFNRUGNYZEMwb2x4VUpqTDYwT1JKdjFFWlBMbFdCSjdU?=
 =?utf-8?B?ajZzZTVJbVo1ZmdDMTdRa3M2UzRlcVE0VFFCQSt1WjlQdVZjdjY1Z2VGS20y?=
 =?utf-8?B?cXBZbW0vT1V3aE9PTDdnRUxDbnIvankvbjNFYkdKSXk0eEthL0NxWHByaTBC?=
 =?utf-8?B?QmpqZlJPb2NYZTk3RDZsSWVVSEdiWmczTFhMUUh1QVUxWWVkZ3R4cXJ4Q1d5?=
 =?utf-8?B?aW11RkpzY0lBTGZSUzBncVBROERDTXNxYkVYYzhJUHJ2aDZ2MTMzdDNpdXQy?=
 =?utf-8?B?T05uR0hCdG9UTlp1eUtoc1VmclhwbFdMaytMWGY1cW5QSW5FaExRRW9QT1pG?=
 =?utf-8?B?OUQvNzBsdzBVU041bzA0LzF1Q2syalc3bUlVNmZFQllLRzFmMzJ3cnI3RWRY?=
 =?utf-8?B?bllJS0pTZ2hNMmxmMXp5OUcyMmlVdTBtTG43UEFKa2U0ZEc5Y09DVjFlYitx?=
 =?utf-8?B?RjBWRGl5WXA1S2NIMzAzK1BoZmlic01Ob1ZvbSt4L2gxWkQ0U0d2TlhuVC8w?=
 =?utf-8?B?dXZYM2lUdTM5dXBYK3VNNjN5MkhGYXZBSGo1MXJuSm9FOHFjVUN5KzFPb29j?=
 =?utf-8?B?V0pmYzVTNjErTWVYRERBdW4ySFdIcjZGNkpFNllMVEJrdkJzK3VPWWdrS1VN?=
 =?utf-8?B?MlVweUo0Z1E0KzJyWEpLSG92dHBIRUxLU051WUoydHZwS2NVU1dCcjRJcEo1?=
 =?utf-8?B?SHF3cDN4VzYvc0htbUtnTjE5ck9BbFk1SXgzT04zVjJjYnJmaGZsYnNHeEpt?=
 =?utf-8?B?WnFuN0gxOTJOSkd3NVFDQnBtVVo3UXVjUithSCtLYWNhcWJ5S0R4Q3pUTTVr?=
 =?utf-8?B?QlNDREF0UDRtT2FkNlNPdVdCbXVydS9WR213MXUxT1FKb09zVll6c2xpVk9X?=
 =?utf-8?B?MnlDQ0M4M0RjRlJvN2FnbGtaNUdlejJnaDl0Ym1CRm9WdFN3dXI5M05sTUxj?=
 =?utf-8?B?a1JRUWZhM0xyTllEVUZkTzVVSUZ5S2RLWlFTUVkvaXBnendPcVZ3R05KMWxU?=
 =?utf-8?B?N0gwY3VBT3BJQ1RyMU4rd1JHSE13ZkxObDFjMGVzRGJib3I0Z25Zb0VnL2Vq?=
 =?utf-8?B?eDVkZ0lGNXNCYnJmN2lyNXE4UUNyY09DZHk1ZENrZW9NQmlZdlRvK1RyZ0VU?=
 =?utf-8?B?OXhDa3RZa2dXa3N2TjRTN0FUSWJBM2FvRkZRbXNCSE9VSGVDMHlKa3VTL1dP?=
 =?utf-8?B?TzhkNUdUZWFVNDBkODdRY3VheVhSZGRCeUZXVStIeG1jb043aTl5Q2QvY3Yw?=
 =?utf-8?B?MWo5NmJoYUFvdUJvZzd0TUNzblVMc3BYck15d3VxeC9WZkJBRjJQcStXTndQ?=
 =?utf-8?B?MFA2OHl4UkZxQ2ZiRENsTVFtSDZJQlJjU1pHYVhCN29vOFhDSTJZOWtSdjVj?=
 =?utf-8?B?LzMySVJJMTg2bVlTVWNYUlhCTm5haUR3MnU2ZDh4K2d4TDh6TUMzY3dIa0pK?=
 =?utf-8?B?U1RaY0VCb1NGYXFSb2R0ODRuUEcyOW5CT2VCdnlaTjNjVGhIN3BiZW45QnF5?=
 =?utf-8?B?RHNJRVZKM0hCNGNFVkM2VHA2dnpYd0NnYUg2VlZ5MUE0SzM3ZVNoUFRvNnJm?=
 =?utf-8?Q?YDQfEKPfWFaFVm0m3hi01goBOt1f4rp1?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(36860700013)(376014)(35042699022)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 10:56:45.4747
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f8335569-7598-43af-1088-08dd0e0904da
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9B.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8921

SGkgSmFuLA0KDQp0aGFua3MgZm9yIHlvdXIgcmV2aWV3DQoNCj4gT24gMjUgTm92IDIwMjQsIGF0
IDE2OjMyLCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24g
MTkuMTEuMjAyNCAwOTo1OCwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEZyb206IFBlbm55IFpo
ZW5nIDxQZW5ueS5aaGVuZ0Bhcm0uY29tPg0KPj4gDQo+PiBJZiBYZW5oZWFwIGlzIHN0YXRpY2Fs
bHkgY29uZmlndXJlZCBpbiBEZXZpY2UgVHJlZSwgaXRzIHNpemUgaXMNCj4+IGRlZmluaXRlLiBT
bywgdGhlIG1lbW9yeSBzaGFsbCBub3QgYmUgZ2l2ZW4gYmFjayBpbnRvIHN0YXRpYyBoZWFwLCBs
aWtlDQo+PiBpdCdzIG5vcm1hbGx5IGRvbmUgaW4gZnJlZV9pbml0X21lbW9yeSwgZXRjLCBvbmNl
IHRoZSBpbml0aWFsaXphdGlvbg0KPj4gaXMgZmluaXNoZWQuDQo+IA0KPiBJJ20gc29tZXdoYXQg
Y29uZnVzZWQgYnkgdGhlIHVzZSBvZiAiYmFjayIgaGVyZT8gSXNuJ3QgdGhlIGNoYW5nZSBhbGwN
Cj4gYWJvdXQgaW5pdC10aW1lIGJlaGF2aW9yLCBpLmUuIG1lbW9yeSB0aGF0J3MgaGFuZGVkIHRv
IHRoZSBhbGxvY2F0b3IgZm9yDQo+IHRoZSB2ZXJ5IGZpcnN0IHRpbWU/IEVsc2UgSSBtYXkgYmUg
bWlzdW5kZXJzdGFuZGluZyBzb21ldGhpbmcgaGVyZSwgaW4NCj4gd2hpY2ggY2FzZSBJJ2QgbGlr
ZSB0byBhc2sgZm9yIHRoZSBkZXNjcmlwdGlvbiB0byBiZSByZWZpbmVkLg0KDQpZZXMsIEnigJl2
ZSB0cmllZCB0byByZXBocmFzZSBpdCwgZG8geW91IHRoaW5rIHRoaXMgaXMgbW9yZSBjbGVhcj8N
Cg0KSWYgdGhlIFhlbiBoZWFwIGlzIHN0YXRpY2FsbHkgY29uZmlndXJlZCBpbiBEZXZpY2UgVHJl
ZSwgaXRzIHNpemUgaXMNCmRlZmluaXRlLCBzbyBvbmx5IHRoZSBkZWZpbmVkIG1lbW9yeSBzaGFs
bCBiZSBnaXZlbiB0byB0aGUgYm9vdA0KYWxsb2NhdG9yLiBIYXZlIGEgY2hlY2sgd2hlcmUgaW5p
dF9kb21oZWFwX3BhZ2VzKCkgaXMgY2FsbGVkDQp3aGljaCB0YWtlcyBpbnRvIGFjY291bnQgaWYg
c3RhdGljIGhlYXAgZmVhdHVyZSBpcyB1c2VkLg0KDQo+IA0KPj4gLS0tIGEveGVuL2luY2x1ZGUv
eGVuL2Jvb3RmZHQuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVuL2Jvb3RmZHQuaA0KPj4gQEAg
LTEzMiw3ICsxMzIsNiBAQCBzdHJ1Y3QgYm9vdGluZm8gew0KPj4gI2lmZGVmIENPTkZJR19TVEFU
SUNfU0hNDQo+PiAgICAgc3RydWN0IHNoYXJlZF9tZW1pbmZvIHNobWVtOw0KPj4gI2VuZGlmDQo+
PiAtICAgIGJvb2wgc3RhdGljX2hlYXA7DQo+PiB9Ow0KPj4gDQo+PiAjaWZkZWYgQ09ORklHX0FD
UEkNCj4+IEBAIC0xNTcsNiArMTU2LDEwIEBAIHN0cnVjdCBib290aW5mbyB7DQo+PiANCj4+IGV4
dGVybiBzdHJ1Y3QgYm9vdGluZm8gYm9vdGluZm87DQo+PiANCj4+ICsjaWZkZWYgQ09ORklHX1NU
QVRJQ19NRU1PUlkNCj4+ICtleHRlcm4gYm9vbCBzdGF0aWNfaGVhcDsNCj4+ICsjZW5kaWYNCj4g
DQo+IEp1c3QgdG8gZG91YmxlIGNoZWNrIE1pc3JhLXdpc2U6IElzIHRoZXJlIGEgZ3VhcmFudGVl
IHRoYXQgdGhpcyBoZWFkZXIgd2lsbA0KPiBhbHdheXMgYmUgaW5jbHVkZWQgYnkgcGFnZS1hbGxv
Yy5jLCBzbyB0aGF0IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzeW1ib2wNCj4gaGFzIGFuIGVhcmxp
ZXIgZGVjbGFyYXRpb24gYWxyZWFkeSB2aXNpYmxlPyBJIGFzayBiZWNhdXNlIHRoaXMgaGVhZGVy
DQo+IGRvZXNuJ3QgbG9vayBsaWtlIG9uZSB3aGVyZSBzeW1ib2xzIGRlZmluZWQgaW4gcGFnZS1h
bGxvYy5jIHdvdWxkIG5vcm1hbGx5DQo+IGJlIGRlY2xhcmVkLiBBbmQgSSBzaW5jZXJlbHkgaG9w
ZSB0aGF0IHRoaXMgaGVhZGVyIGlzbid0IG9uZSBvZiB0aG9zZSB0aGF0DQo+IGVuZCB1cCBiZWlu
ZyBpbmNsdWRlZCB2aXJ0dWFsbHkgZXZlcnl3aGVyZS4NCg0KSeKAmXZlIHJlYWQgYWdhaW4gTUlT
UkEgcnVsZSA4LjQgYW5kIHlvdSBhcmUgcmlnaHQsIEkgc2hvdWxkIGhhdmUgaW5jbHVkZWQgYm9v
dGZkdC5oIGluDQpwYWdlLWFsbG9jLmMgaW4gb3JkZXIgdG8gaGF2ZSB0aGUgZGVjbGFyYXRpb24g
dmlzaWJsZSBiZWZvcmUgZGVmaW5pbmcgc3RhdGljX2hlYXAuDQoNCkkgd2lsbCBpbmNsdWRlIHRo
ZSBoZWFkZXIgaW4gcGFnZS1hbGxvYy5jDQoNCj4gDQo+PiBAQCAtMjA2LDQgKzIwOSwxMyBAQCBz
dGF0aWMgaW5saW5lIHN0cnVjdCBzaG1lbV9tZW1iYW5rX2V4dHJhICpib290aW5mb19nZXRfc2ht
ZW1fZXh0cmEodm9pZCkNCj4+IH0NCj4+ICNlbmRpZg0KPj4gDQo+PiArc3RhdGljIGlubGluZSBi
b29sIHhlbl9pc191c2luZ19zdGF0aWNoZWFwKHZvaWQpDQo+PiArew0KPj4gKyNpZmRlZiBDT05G
SUdfU1RBVElDX01FTU9SWQ0KPj4gKyAgICByZXR1cm4gc3RhdGljX2hlYXA7DQo+PiArI2Vsc2UN
Cj4+ICsgICAgcmV0dXJuIGZhbHNlOw0KPj4gKyNlbmRpZg0KPj4gK30NCj4gDQo+IEFzIHRvIG5h
bWluZzogSG93IGFib3V0IHVzaW5nX3N0YXRpY19oZWFwKCk/IFRoZSB4ZW5fIHByZWZpeCBkb2Vz
bid0IGxvb2sgdG8NCj4gYmUgY2FycnlpbmcgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbiwgYW5kIHRo
ZSB0aGVuIHJlbWFpbmluZyBpc18gcHJlZml4IHdvdWxkDQo+IGJlIGxhcmdlbHkgcmVkdW5kYW50
IHdpdGggInVzaW5nIi4gUGx1cyB0aGVyZSBzdXJlbHkgd2FudHMgdG8gYmUgYSBzZXBhcmF0b3IN
Cj4gYmV0d2VlbiAic3RhdGljIiBhbmQgImhlYXAiLg0KDQp5ZXMsIHNvdW5kcyBhIGJldHRlciBu
YW1lLCBJ4oCZbGwgdXNlIGl0DQoNCkNoZWVycywNCkx1Y2E=


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 11:08:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 11:08:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843582.1259205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFtQa-00009b-5Q; Tue, 26 Nov 2024 11:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843582.1259205; Tue, 26 Nov 2024 11:08: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 1tFtQa-00009U-2k; Tue, 26 Nov 2024 11:08:20 +0000
Received: by outflank-mailman (input) for mailman id 843582;
 Tue, 26 Nov 2024 11:08: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFtQY-00009O-DD
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 11:08:18 +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 bbc84597-abe6-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 12:08:15 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aa51b8c5f4dso534720766b.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 03:08: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
 a640c23a62f3a-aa51759737dsm554980166b.81.2024.11.26.03.08.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 03:08: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: bbc84597-abe6-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJiYzg0NTk3LWFiZTYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjE5Mjk1LjQ2NjUxLCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732619295; x=1733224095; 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=qywzHvzGpskN60Me1KczX2j76h0/zXTP/VAEx6uqVhA=;
        b=A7hDxVzGQDZ+NQsjAy1gRIcXIGPaUvv98LR5VFcMWQU8OBKOic6fupOf6bKMdeiatr
         A5jM6KY+mD6LS3gDen2cyLjynRcyGzd/HO90ygo+2PN3H7qGA8pbypzpOcT+MnqPdIKS
         Rk5FNDHjzE5mscyK/gB+xR2hsaSj+vUF23UXjVwC38w1CohN60ijx7+u/SwqBVPOJlFU
         6ooyQtS4neIAU3I9eEx3jlqSzntoBf3inGsXrTlGniRxTOOqkn5YLDPNrdPwLTrqlxe0
         SBBEwq3hOWynDAE7HR//YrEm/1dd9RLLAIf2DTZrrDqktbKWEixb35mFZfrJ96+05Zqq
         ik/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732619295; x=1733224095;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=qywzHvzGpskN60Me1KczX2j76h0/zXTP/VAEx6uqVhA=;
        b=haQvgoBRi73Z8WUPnggBJOxSt+2fhon4fpvytIfBUaq9cMJbTLGnUGhxphh7hDiEO3
         WJUZuI/9p1cn+AXGtIK4VZTirWzgeOwyFCEIXF0VkQ+HwMa2O+k1Aq3lKvc5Sn1tLw46
         Ll/O75ty0bze2d002Tanw3LN5N4f61/Q/CPTOpclIIWgavEZLPCHw3COd2+xaXmxZFu9
         kyHIPgzD5iTLifimNPvg/9koclc1jehKDHJbKEOO+Nr37CJS+WZuOw+QUTTdDnvWfPBd
         IHib3bxJEdmIie64lm4dtQPVymzZriW+2/mcBF5fmlmogZYMMr5eZx2OFOSvxxb5BzZ6
         OUyg==
X-Gm-Message-State: AOJu0YzJzpSuRd8TvqPYqRTxg17yq8tECRqv2piam2hGY6Mt6ReBMgug
	+Cj0L017IhQ9+FnF1pde2H1uWUI7X5vfi1QNWgViLnlpNHYtb0Hxl5PfpHfu1XMUoDOokW9yndc
	=
X-Gm-Gg: ASbGnctICgANAsA9X0vkGmZhXPFDbmXD7q31ccyUQa02g/5u9PXYZKsqeIcGQ7mb+yn
	fl+UWXczoSdtgu6+MXgtfJI2n6GM0s3M3/npPwx2aZe8JmlUBXP1N/7mP8wR5IkgjJ2amQeLEgc
	sGUMjwzA2Kk+Klj9yRybbdiwM136ZMVX6+O/QVs8gilUjeSrxG4Qauj4499Opt1fi/VxVgsNyE8
	9m9xN2H47CEoekU1p82RDgO3bJLEcv6/2XWQxo3oj/PGedJ8iYSEEdRMHXhdcXbD0GafnXhEFqO
	OWEkgDvyMUn/4BxW4jccy+K1/u8VMe7OTyA=
X-Google-Smtp-Source: AGHT+IHyurABKlyFluwxZNWIRjyURz02tdgAa1TN9gOsV+6WrrhJhPPwZyJEv2Y/MGlJwRzV4y2Edg==
X-Received: by 2002:a17:907:77d6:b0:aa5:2c1b:d2cd with SMTP id a640c23a62f3a-aa52c1bd359mr914099366b.34.1732619294874;
        Tue, 26 Nov 2024 03:08:14 -0800 (PST)
Message-ID: <ee8d92f9-289f-43da-bfc1-2632a55de969@suse.com>
Date: Tue, 26 Nov 2024 12:08:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] x86: Adjust arch LBR CPU policy
To: ngoc-tu.dinh@vates.tech
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
 <20241118084914.22268-4-ngoc-tu.dinh@vates.tech>
Content-Language: en-US
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.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: <20241118084914.22268-4-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 09:49, ngoc-tu.dinh@vates.tech wrote:
> From: Tu Dinh <ngoc-tu.dinh@vates.tech>
> 
> Allow virtual arch LBR with a single depth that's equal to that of the
> host. If this is not possible, disable arch LBR altogether.

How will this work across migration?

What does "single depth that's equal to that of the host" mean, when
multiple depths can be advertised as supported? Perhaps I'm irritated
by ...

> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -638,6 +638,36 @@ static void __init calculate_pv_max_policy(void)
>      p->extd.raw[0xa] = EMPTY_LEAF; /* No SVM for PV guests. */
>  }
>  
> +/*
> + * Allow virtual arch LBR with a single depth that's equal to that of the
> + * host. If this is not possible, disable arch LBR altogether.
> + */
> +static void adjust_arch_lbr_depth(uint32_t fs[FEATURESET_NR_ENTRIES])
> +{
> +    uint64_t host_lbr_depth;
> +    bool lbr_supported = true;
> +
> +    rdmsrl(MSR_IA32_LASTBRANCH_DEPTH, host_lbr_depth);

... you reading an MSR here which was never set by Xen. Whatever the firmware
left there should not be relevant to us. 

> +    if ((host_lbr_depth == 0) ||
> +        (host_lbr_depth % 8) ||
> +        (host_lbr_depth > 64))
> +        lbr_supported = false;

Here and below: Please familiarize yourself with Xen coding style. if() and
alike want blanks immediately inside the parentheses.

> +    host_lbr_depth = 1ul << ((host_lbr_depth / 8) - 1);
> +    if ((host_lbr_depth & fs[FEATURESET_1Ca] & 0xff) == 0)
> +        lbr_supported = false;
> +
> +    if (lbr_supported)
> +    {
> +        fs[FEATURESET_1Ca] = (fs[FEATURESET_1Ca] & ~0xffu) | host_lbr_depth;
> +    }
> +    else
> +    {
> +        __clear_bit(X86_FEATURE_ARCH_LBR, fs);
> +        fs[FEATURESET_1Ca] = fs[FEATURESET_1Cb] = fs[FEATURESET_1Cc] = 0;
> +    }
> +}

Hmm, is it really a good idea to fiddle with the featureset, rather than (after
conversion back) with the policy? Cc-ing Andrew. This would then also avoid use
of several plain integer literals.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 11:13:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 11:13:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843591.1259214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFtVC-0001y7-Kv; Tue, 26 Nov 2024 11:13:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843591.1259214; Tue, 26 Nov 2024 11:13: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 1tFtVC-0001y0-IN; Tue, 26 Nov 2024 11:13:06 +0000
Received: by outflank-mailman (input) for mailman id 843591;
 Tue, 26 Nov 2024 11:13: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFtVB-0001xu-A9
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 11:13:05 +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 6643e505-abe7-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 12:13:01 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-aa55171d73cso345438666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 03:13: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
 a640c23a62f3a-aa53c68e113sm387552466b.191.2024.11.26.03.12.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 03:13: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: 6643e505-abe7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY2NDNlNTA1LWFiZTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjE5NTgxLjQ5NzE0Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732619581; x=1733224381; 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=fr1ewOTKegAccMvjfc/v3wKzpqF1clLdI3hxa2ZeyEw=;
        b=QNZ1hhYZs8QSCPT6jYebZoaFaMAAupbBT/PIeNPEpNvtngAY9OnEJ5OElLUsFt8f9+
         kMEbfqezHCrIuVEL646+ie+A5bat2jGlP8zDegkBhM84CIBgI/pHtG9uXPbNLRTDftJq
         xGbDuhZKh5R+jP2yUeBtfCDIuxkFNLd1er5/e+L+pSI7zhrSwB967QP1i7H7xJ1DFI+X
         7A6nA/gF6D5DkGy4Pgdjixdn0gWUBY4LNtKyhm8mj34v4y+ZYMVaMfaXmYkDWPrqYcE1
         SLANQHb0iFpyQQpi6uz4k4KJ4iaB/L7uIB7XsTJoAjGic3HbH2lx2d/JpRAqwPzMxET7
         0fag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732619581; x=1733224381;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fr1ewOTKegAccMvjfc/v3wKzpqF1clLdI3hxa2ZeyEw=;
        b=meHuFxwltocSPFwlTNMFn2MiUrsT1rqT7Nl108+5jHmnC3yhOidHqk3ODQSnvADlOw
         n2Y3LINQDz+/p8oGIEOni8iH2OQY5yYGMCFv6P4yPRYa7rdvvZsCil+lWZeD+g0XL26z
         Yuk9Hxl35VbZYmud3OOs86+l62ba/ftxJlf0nJKTfFDb59t1E+2eW/LF+AoPGeqjRx3Q
         evSrXG5e3J3PpEeidfMsTp0svc4G9jReLilSrROTzu+pmPLbQcokBWrxFSWVUcnvwf6E
         017wTjYEXwQyMFyolJum+BC5hYXSqky2FMJcdGzhoPMFWxf2FVe1gloTrKW0V5dculur
         wX3w==
X-Forwarded-Encrypted: i=1; AJvYcCVN/i0gF9o4cSdHNoi1CMCGV1O0Qm/PzuSFm5kRPu/TwFNAFDLwcFH+wMwwWQq/XC/atB2i2D3WNyM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWB5S+YK1iJ0LovyU7edmv1DpWiqYEQ1UGQglc5eDilmeZwVK9
	r8GnJksmzUlBZbhTomYlIXq/ODYFVYFSI0FF65Eq8Pyqz+GaED6ZgW7xqQDfGQ==
X-Gm-Gg: ASbGncto5iL9Y47TwCqBGBbO4bY4fV8mP9MCVXSn4VX2g7uWjTQuE7Ugz5P4iTK1V5W
	0CIjSPPIw7CZkwgLJ+xkizyfJVIRII3RhAeQqyeV3lHdsHy28haI7/Fa+SM+ojjPNszMGfSfcPi
	F9Cnzs0sPUuw6RPAhMG5qhWc8zgJ3UvYRmJST5TtvUs10uokjf7ZYHLNlijiH/aImWhTeik4X9m
	0MS16F9WopXUXSpcSznwDnQQXXJwgeFGQQuiRvY5wE7n2iF7tYS8tZkRFmhPX0Kdzjo+M4aUKMh
	x9ugr3+B2hjiiK7/KCjlCcSIT1z6pNIuwi8=
X-Google-Smtp-Source: AGHT+IEJzPU1AxIymnefBSacKNC/PVD/9Wke7KIBLzLay49dEKPbgztO7WuXWrAW/00ai1X8DLm+rw==
X-Received: by 2002:a17:906:8449:b0:a9a:616c:459e with SMTP id a640c23a62f3a-aa5648b9623mr248316966b.27.1732619580936;
        Tue, 26 Nov 2024 03:13:00 -0800 (PST)
Message-ID: <e5f0b9e4-80ab-4cf5-8745-4cb83cfe4c7d@suse.com>
Date: Tue, 26 Nov 2024 12:12:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Penny Zheng <Penny.Zheng@arm.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>, Wei Chen <Wei.Chen@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-5-luca.fancellu@arm.com>
 <ca91b717-47c3-4f92-af6a-cb740ef6e91d@suse.com>
 <BE895863-B07F-42C2-BD44-D0A1E6150DC4@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: <BE895863-B07F-42C2-BD44-D0A1E6150DC4@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 11:56, Luca Fancellu wrote:
> Hi Jan,
> 
> thanks for your review
> 
>> On 25 Nov 2024, at 16:32, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 19.11.2024 09:58, Luca Fancellu wrote:
>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>
>>> If Xenheap is statically configured in Device Tree, its size is
>>> definite. So, the memory shall not be given back into static heap, like
>>> it's normally done in free_init_memory, etc, once the initialization
>>> is finished.
>>
>> I'm somewhat confused by the use of "back" here? Isn't the change all
>> about init-time behavior, i.e. memory that's handed to the allocator for
>> the very first time? Else I may be misunderstanding something here, in
>> which case I'd like to ask for the description to be refined.
> 
> Yes, Iâ€™ve tried to rephrase it, do you think this is more clear?
> 
> If the Xen heap is statically configured in Device Tree, its size is
> definite, so only the defined memory shall be given to the boot
> allocator. Have a check where init_domheap_pages() is called
> which takes into account if static heap feature is used.

This reads better, thanks. Follow-on question: Is what is statically
configured for the heap guaranteed to never overlap with anything passed
to init_domheap_pages() in those places that you touch?

>>> --- a/xen/include/xen/bootfdt.h
>>> +++ b/xen/include/xen/bootfdt.h
>>> @@ -132,7 +132,6 @@ struct bootinfo {
>>> #ifdef CONFIG_STATIC_SHM
>>>     struct shared_meminfo shmem;
>>> #endif
>>> -    bool static_heap;
>>> };
>>>
>>> #ifdef CONFIG_ACPI
>>> @@ -157,6 +156,10 @@ struct bootinfo {
>>>
>>> extern struct bootinfo bootinfo;
>>>
>>> +#ifdef CONFIG_STATIC_MEMORY
>>> +extern bool static_heap;
>>> +#endif
>>
>> Just to double check Misra-wise: Is there a guarantee that this header will
>> always be included by page-alloc.c, so that the definition of the symbol
>> has an earlier declaration already visible? I ask because this header
>> doesn't look like one where symbols defined in page-alloc.c would normally
>> be declared. And I sincerely hope that this header isn't one of those that
>> end up being included virtually everywhere.
> 
> Iâ€™ve read again MISRA rule 8.4 and you are right, I should have included bootfdt.h in
> page-alloc.c in order to have the declaration visible before defining static_heap.
> 
> I will include the header in page-alloc.c

Except that, as said, I don't think that header should be included in this file.
Instead I think the declaration wants to move elsewhere.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 11:25:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 11:25:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843613.1259224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFtgl-0003kB-Oi; Tue, 26 Nov 2024 11:25:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843613.1259224; Tue, 26 Nov 2024 11: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 1tFtgl-0003k4-MA; Tue, 26 Nov 2024 11:25:03 +0000
Received: by outflank-mailman (input) for mailman id 843613;
 Tue, 26 Nov 2024 11: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=4efj=SV=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tFtgj-0003jl-Nd
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 11:25:01 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2413::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e5afe76-abe9-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 12:24:53 +0100 (CET)
Received: from SA9PR13CA0095.namprd13.prod.outlook.com (2603:10b6:806:24::10)
 by DM6PR12MB4169.namprd12.prod.outlook.com (2603:10b6:5:215::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Tue, 26 Nov
 2024 11:24:49 +0000
Received: from SA2PEPF00003F65.namprd04.prod.outlook.com
 (2603:10b6:806:24:cafe::f6) by SA9PR13CA0095.outlook.office365.com
 (2603:10b6:806:24::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Tue,
 26 Nov 2024 11:24:49 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003F65.mail.protection.outlook.com (10.167.248.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 11:24:49 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 26 Nov
 2024 05:24:48 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Nov 2024 05:24:47 -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: 0e5afe76-abe9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjJiIiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjBlNWFmZTc2LWFiZTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjIwMjkzLjk5NzMyMiwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IMkXctdOHi/803iF3qSNRiMqyC/2DJUuxsLHEsswm9bzghiJNa0d3EKXrP4yEGIxQ+GRpMTmBS8jJ7ottbBb0hS37VCvRMoqN/hsD7zeVhtd8GhOFaN1+u7QvgbgUY6ByCtjPnJbGHVUtBr2bqCUYkkyJA60sj7YlWYzkP5G59D4KFop2BvHS2qOcoUmh2csjBs/2tXEI21BWec4XnJ5bT0BVpRPTwfRYzMTVF0GmRDLRm1/Qlrwu4QDKh0OSSvTpQTiBcy7wtDMcXa9ey+JHuIVaeZNEXtP2YxaMQ5Sv+4SW99H6qyDfoP2pgu5o5ndexbHvtafNp+QjZqpLSVz8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l5lqJSGgo5KI//ZxXAOKdOP/SSGW4aoYTyRpz20sD+0=;
 b=vuxMeUFNr0tnESPT0evBFQy709zLHmv3mfenAUHJCZemF9JsCKK+DYQYdCKC3/BOuTZKANrOkltcMQtVvJty6yvoVPiCc5xb/RO5imsaD1EI1V6Fsm2lmOm4+G8Uy+sLwY01QP1bNt5drdXLooboUysTqyyc35TSLugK1hLJgCxsMOcCkK6AFWom4ePnyqy5X6mOXSgUsUHXcz3yWao1wz+WDze86XkhsGWlO8k+4BYRvjJg4q6uh253mvkpikqlFlFyys6JBuVM7fCQnPQAJI1HzTF15OW3AvDQqAkcUW2Mu1wl8d4RX2QtvcYqyjqKoOMo448KNs9HNmXN00ZGpA==
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=l5lqJSGgo5KI//ZxXAOKdOP/SSGW4aoYTyRpz20sD+0=;
 b=oSJb0bvLqDeYGC529rwgq4KKB8PMuuHAR5oayAuqUYJb5G0ZNzfEyRwjouZ/899FW78xpHNH09aAidIt1C89PXq3gzQvhxRwOpoguFqSmB5GNz650QXw9Jwlo7Dj6RdPPE3SjNpAOOSU8lvEr/ifS8PO0XLt4Yoy1B09zIO6Ggk=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <16367a7e-86c2-4e2f-8798-e789139a6c63@amd.com>
Date: Tue, 26 Nov 2024 12:24:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: Validate __copy_to_guest in
 VCPUOP_register_runstate_memory_area
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>
References: <20241126102653.25487-1-michal.orzel@amd.com>
 <db4de7c6-c955-43fd-ab25-947809f357a2@suse.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <db4de7c6-c955-43fd-ab25-947809f357a2@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F65:EE_|DM6PR12MB4169:EE_
X-MS-Office365-Filtering-Correlation-Id: 73a86b03-6041-4211-1fcc-08dd0e0cf069
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dTJESDRYb2wwVVh4OGtHWjdKb1JtaGVnQ29IcHRlTGk2VXh4U1ZZVVlwQzA5?=
 =?utf-8?B?Z0U4WThGOVZDZ3VQbVBmT05tWUxyMW1UMlNObXJxNGNYZzdNaVl5S3c4ZTRs?=
 =?utf-8?B?NkJ5VG8vaEVUc1BEOWkreVh2dk5wb3FFNUw1bkFYb3ZpN2JmRDd3NzZQMnVr?=
 =?utf-8?B?TC8vVVdUT01BelBxYWZvalVWN1FWUWp1TkNLbGJlSjdQVjJBeExVcVZNaDhn?=
 =?utf-8?B?K29NZHpGKzdnVW9YK3RBY1dORUVjWXpKRHp0cXlzc25KNitPN2lpQ2tmMEla?=
 =?utf-8?B?MC9LUTgrT3N4WXBvR1pocFRjVnpFVWFBUXlzV1lwbWpRUFVmdUt3R0tKd1gz?=
 =?utf-8?B?NWJlcUNvVGg5WGt5bmdsdG5jV3pYZ2hKSGRsejN2VHRUKytINUVzd3FNekpY?=
 =?utf-8?B?czZodE1Tc3FFd2ZLR3oxYlJKRFFPMTZmSmdoWFcxQ1F1aG1VSzhtT3Q4YURy?=
 =?utf-8?B?UzZ5NG5qYnVqcks2SWdvQXJ2cFZ2RGpEZi9WQjJJaWtMQ3lMeHd2NjdLenpj?=
 =?utf-8?B?aTRBYVQxV3c4ZWl6VjFzY2RFUHlCbFh2R0NsUEtDbnVFaVR5NlQvbjkwRDJv?=
 =?utf-8?B?eGdTNXVmRTI3K2l0dzBVdXZ3YkpKYlVJdGh2SDllbkJPRHlOaDRYSEVYWXZS?=
 =?utf-8?B?MXZjOUdBcWZOZmlRK3NzSkx0WHBlTnhLMXF0Z2FmbDlOdXpEcWFkTVVnRnQ0?=
 =?utf-8?B?YWcvQXBMOEl4aGZuN0V2eUswUU1mWWJ2dVBFL2FHaThGSlVDNEM3Qi9IbDUx?=
 =?utf-8?B?Q0lvME5RcmN2YWZza1lqNUFGclpWRkxGVVFvU1BtT2x3Z3hiVDRZeHB4QVd6?=
 =?utf-8?B?c2pjaS9peTlHNktTRlhHTW1Tb0ZtQWZRN1BrV3FXLzZqRjhiaElDZHd0VTFH?=
 =?utf-8?B?cHZaaVRWZlhTaFI3bGFkTUlNMVcvVFBWN1VDMndZQTZuS2JSZkNkSEVuTGh0?=
 =?utf-8?B?MXVjb2RZZ0FBK3BFSWtsYjdMTVBpc2lONkRnQ1VvSU1PY3JUTFVqWWozRXNu?=
 =?utf-8?B?dnJ4OWRQVzIwWmpVYjhEL2ZpMkw1YzR5T1BBdXIyMkhCdkErbTB1ZytGZ2Zs?=
 =?utf-8?B?Ym5qaTl4RW5mc3h5U2x2ZVlDaFJlaGFXRlNzbUE5TkR0SDIzYUNZbFFVZU5R?=
 =?utf-8?B?N0RoR3o1WEY3RWNwajRhTis2Y1NZdmc2bGlzeUszRVZMWXkrallwcGxNTXUz?=
 =?utf-8?B?dTNNWmtZK3BqNVFRcXhyekVnSU5Cdlk4Ri9HN1pYL2ZxQ0pqaytVaHUvMG1F?=
 =?utf-8?B?Y1p1aDFyYW9PamgvTEVDMGgySWxVWkVqcDJsajVlVVBHUUFPb2Zyc2I3Z2Q2?=
 =?utf-8?B?QjRGU1MyckJYOHRKdFZERndBelNyei96TkdWNVB4Y25WWDVNdFA0UzAwK3Vu?=
 =?utf-8?B?TXNRRVphRHNaMGlYZmxEQmRPZXBWR2lNUzVUdy9sd21aVjJydnF3V0RTMHJX?=
 =?utf-8?B?N1dyVnZQWkR3L29KeEJJM3BpY1QxUHc4b0FMSmVHSkx1MDZUaXVsYWpKTkx4?=
 =?utf-8?B?V2Y2S0svcUhQQmZ6ODdqdjBWSWdYN1Y0RER2R0V5dXJYamRkaHZram9NUFRv?=
 =?utf-8?B?TEJzbXFqc0UyVGpoc0Z3M2w4bWpVS2h2Q2NobEh1R1dVeUQzQmFDbEdGVDhG?=
 =?utf-8?B?TjNVZzNNVGRxU3lJOERpdUhqblFMU2FCMTlDVmRXVFVyTkxCYTRRcWMrL2Vs?=
 =?utf-8?B?dmtnekJYTGtvQ0t3SFFjTFpOYmZnRXFXbEFpNTM0N1YyMG9TSGRDUDJJKzRQ?=
 =?utf-8?B?NS8wajlMeHBaSkk1dHRTc3RUY0xYKzluVXlKYUhWeDdQeXF4dmJHMkMzOWdj?=
 =?utf-8?B?dG1aak5vb25ZL1pvS1RuODcvU25wenZUcmNDekpZTDRUL2c4dmRCV3ZnaWtp?=
 =?utf-8?B?dmhFdVJ5a2NuUjVpT2NjRDF0OWZ5MnFNaHNEamMvSFZiTktWMHFieFFmRk0r?=
 =?utf-8?Q?W/dEwpvSuEffxF9VcNvTgS+ldPFJxb0R?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 11:24:49.1827
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73a86b03-6041-4211-1fcc-08dd0e0cf069
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F65.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4169



On 26/11/2024 11:40, Jan Beulich wrote:
> 
> 
> On 26.11.2024 11:26, Michal Orzel wrote:
>> For guests with paging mode external, guest_handle_okay() always returns
>> success, even if the guest handle is invalid (e.g. address not in P2M).
>> In VCPUOP_register_runstate_memory_area, we would then blindly set
>> runstate_guest() for a given vCPU to invalid handle. Moreover, we don't
>> check the return value from __copy_to_guest() and return success to the
>> guest, even in case of a failure during copy.
> 
> I'm afraid this is all deliberate, providing best effort behavior. For a
> paging mode external guest, the handle may become valid subsequently. If
> any __copy_to_guest() fail here, subsequent update_runstate_area() may
> succeed (and success of the actual copying isn't checked there either).
Hmm, I've never looked at that this way. I always thought that mapping must be in place
before setting up handle. Is this concept really something used (e.g. in Linux) or just a
way for us to provide excuse for not hardening the code because of a fear of regressions, etc.?

> 
>> Fix it, by checking the
>> return value from __copy_to_guest() and set runstate_guest() only on
>> success.
> 
> _If_ such a change was wanted (despite its potential for regressions,
> as guests may leverage present behavior to establish handles before
> putting in place mappings), x86'es compat_vcpu_op() would need updating,
> too. Plus what about VCPUOP_register_vcpu_time_memory_area, behaving
> similarly?
It's up to us. If the concept you mentioned is valid and people are aware of it, then
let's keep as is. I for one was amazed that Xen returned success but structure was not
copied.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 11:33:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 11:33:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843635.1259247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFtov-00061q-Kp; Tue, 26 Nov 2024 11:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843635.1259247; Tue, 26 Nov 2024 11:33: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 1tFtov-00061j-I7; Tue, 26 Nov 2024 11:33:29 +0000
Received: by outflank-mailman (input) for mailman id 843635;
 Tue, 26 Nov 2024 11:33: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=RqN7=SV=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tFtou-00061B-4F
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 11:33:28 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2612::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f32422b-abea-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 12:33:24 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB8PR03MB6268.eurprd03.prod.outlook.com
 (2603:10a6:10:133::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 11:33:21 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Tue, 26 Nov 2024
 11:33: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: 3f32422b-abea-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjJhIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjNmMzI0MjJiLWFiZWEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjIwODA0LjU3MDI3Nywic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UtSVSopLYl6Q1isZ+eFqHaQsquY+lx5wjVB0hMNWBJpR7hRC8YM6EDO4+/lJUnn0cGF1/DeBkCdJyt9duIUqUqw8eyZmnnMOXgbcDskw3/bW7iBs841qSmL9g4BAmaH6AKuQ8/Mol6CnwfhgIxcBl4tz7iQEYjLWk2GScaluPdM6AQ5QLEHp3nl8eDTlvzIkyvwoFT5YtLXhq1covVlVXsNsHiyFKDG+X1/bowXAywbW5yIth4d4Kr8yBmrmccw3ZBAxatLM1d18D9EHZVuC3K9RxYgKcv2oIH38aXa+kj6//H0x9AGQTuBGA8lI5qGiGqYWM/MhQZDZjlcdpl1IAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BONro44LvlcrQMnwueHeP4LdW0F6v65BUBjlsnzObLs=;
 b=qqkRtW92XuYS1ScqfVz+oSdx2rebBnW2ykb9zV8M52j5o8PxAsr8eteU95GkSg90GZAzvMcuaC+AY5i8LHc9VIL1kDOT+17jPIVGShKV3aRirYD9fEBriEx6jitcrmlTntyA6CIPrdD4uLZtUS71Bgi30ENzTheLZwFjdKxulJx/qmas//jA2aU6oSn58U2UafZZEpVkSFZ3sfpFH+WQx+dtK7Dt8kVmUgxBDxvMnTbtwu3gBHbvgpHAi9OCD+fccBgQRLLynd2/jNpIqetNDmPYaDPT/jCC60aTgz4CD9aQyj0kz12Bh1a3Sq5VvGYfrSLKJy59sBIeWrTvG2Mw8A==
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=BONro44LvlcrQMnwueHeP4LdW0F6v65BUBjlsnzObLs=;
 b=l2cTUExw72QbAcNaFEa0xTk3gBDW5pNoXgNdf4HWqfQGmFJo0U4H0vy9mXNxaceNei0VzO0YxdtYyqyBG5ce1R4IPAY9ALrjMJ0a96DNd2RYF4DEzIsG4d0HAR5ZdJqv7v015Qio/AdsvZmaUy79gJ4Jr0Eo75oGkU2qwEOhGkHqeN5MuT/NXPtI7MwfcMut4jFEgk22EOjEn5UR66gY99KfuPR7ORejAMKj4SPDvGbabLAf6+puGMgR4R4NHxhnnfM09Vxr0f8OrtUF3lVk5mk/2nhSLNV89J5DUsQOPokaH+wRNw/Sg1V+1EevZGOtSoYoH3Wz6bjlcIEv1VjR7A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: Re: [PATCH 1/3] xen: common: add ability to enable stack protector
Thread-Topic: [PATCH 1/3] xen: common: add ability to enable stack protector
Thread-Index: AQHbPSKKCRg4722UIUuMGLA9PEEyZg==
Date: Tue, 26 Nov 2024 11:33:20 +0000
Message-ID: <87jzcqjklc.fsf@epam.com>
References: <20241122210719.2572072-1-volodymyr_babchuk@epam.com>
	<20241122210719.2572072-2-volodymyr_babchuk@epam.com>
	<20d65a5d-dfdc-4622-b066-fc6de705af57@xen.org>
In-Reply-To: <20d65a5d-dfdc-4622-b066-fc6de705af57@xen.org> (Julien Grall's
	message of "Mon, 25 Nov 2024 20:36:22 +0000")
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: GV1PR03MB10456:EE_|DB8PR03MB6268:EE_
x-ms-office365-filtering-correlation-id: 3ce904ab-a2fe-4884-93ce-08dd0e0e217d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?k6H88EePXIuC2Fp6gOso5Yy8zvi78E/AnPI4VgQB5x1ZFVz7X1mIb3IzTB?=
 =?iso-8859-1?Q?iFhu1NPnUBYLHU55DHAtZbKrGevczBpbrl+rDAnBL1QaLZ9/Su3xMv7oqO?=
 =?iso-8859-1?Q?yhZUelnTpZtWBSbxi/d0v8jRvgpPNloVtDGuyysi1LLMmNvgMcPZIpiYZQ?=
 =?iso-8859-1?Q?iEf+5AOhIAJeXAml/vw2fFND0SLhb8IXEC2TXs8+tbar8mzczgOk1KpFh1?=
 =?iso-8859-1?Q?Ly+psvbnqicREWno9wlnBYwkuLYxPgVsPqP8TzJfxbMhglb/WKYhitT+mB?=
 =?iso-8859-1?Q?KVUNDP6Hn5gremNN7XpqzOYf/+Z9yt6TlNr1QcFlymkAclnpFeeHdnTsJl?=
 =?iso-8859-1?Q?9Vk3Bl/ijYRObytcdYF2NIWDQO15E2DOP1pcErtzudjbZN42wBe3A+EE2w?=
 =?iso-8859-1?Q?ZqQ5+S0Tg48MbZBFTLQbOvq6I7MNYvZ5Twj342Kt9RWZbmkOL7XJaIQWPn?=
 =?iso-8859-1?Q?3lHlX62UWAe4tKl13kuPKyudLpb/I0rBr0kn6DYay5Bf/sICmqhgIKt++m?=
 =?iso-8859-1?Q?ZQmNQC09fokXVU1XGoecolYS35pGQQo3OwT7aev/QVIx5oyCgToKGiErLs?=
 =?iso-8859-1?Q?ASabTTy4y7uMtL3J1iUf6xx2IcAzl0ROa7gVQ/GgAgcnmhOljruXax4SDy?=
 =?iso-8859-1?Q?1KzyxOKyKkBD6KL9aqEtmYn3kbONJvaXEznH6Z0fEc1yqW8MV9T90YCc71?=
 =?iso-8859-1?Q?iSPG2P/P6uPHOCwc1NWj6a8po6LiiOKDnnZlqxaZQQFgxDydAUcuYGPqBE?=
 =?iso-8859-1?Q?uxqUbfq+gsqS8IZey3NsyOhnLYMl6BWQZE6jOj/+CnUusa/sNGun1OUDGE?=
 =?iso-8859-1?Q?Yc+IkQe9q6iWxQe3cW6vhzwBH4Wrj13b/kUCOrX0yTohXxStjE2id3jcam?=
 =?iso-8859-1?Q?xGnVw0n3BEsdPvkuMSSxSmBTtNmg59N/UEEkCi8hv+tJkRecFuSUROXCjN?=
 =?iso-8859-1?Q?O4p32jIZRsW/GSBnhAF8rsUb6BfOgebD8miuJBk1722/L605o21dalQYUY?=
 =?iso-8859-1?Q?3IcMk8guB9IGJUtn9eI2Mzg1m7Wb7S7HpAQcIOaBiaYTvY+ef5M6M/Aqra?=
 =?iso-8859-1?Q?a+XYyJewaVIu0CQCcn6TZ/dLjSI+nZD0pvWDc69N920i/xhCaEfuRuqEAp?=
 =?iso-8859-1?Q?gWoJEDEGtRGFtwedhDw8lH6Jfzk0JeXDjxzDiWu83qJTbVAebcN98ZpdKK?=
 =?iso-8859-1?Q?REd0epBGuHuU17jL75h1i2VE+On9VK8JkX4YuQ+8qGzdADfTH6m4VNkOlK?=
 =?iso-8859-1?Q?W2m2IvcEzEGP3Gg7Q5dLSKjses3bystQSe15nBNBVbJyozfEyIoxe8PeOm?=
 =?iso-8859-1?Q?9bB/kIu7ExivN3auZbaylu0hhxoimcfIlQvKMcZgcCJMJ2Gc5rxWUzCQg3?=
 =?iso-8859-1?Q?VfYsVHyLQ/aZid24/w5vwAg9SkWqu+ZxpDxGg8Y/67/DxutmpEOOCEMjUC?=
 =?iso-8859-1?Q?tPoOA5sB0Tb3zxdmTIClE4cGNR/4HcEHcJyYpQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Z7TK97Ejggm2OQqFA8uz9kWRsqTTzAxFfn0oLJ37HiI6bL4WY0b6a/Hnak?=
 =?iso-8859-1?Q?zCTykKB6uEqKMQbg0XOkNl61t9gHU9lmZXci/Rg2PnrYf915d6r8EGqS5P?=
 =?iso-8859-1?Q?BOGXVbvTJBcGandE/hOCV+z71clJx4yiDLNje9SIbvtfo3r9DtBjnscCAY?=
 =?iso-8859-1?Q?P8xK272Fu5oSoLdXpvCgEweDwKIaj9vo9kEu+8kmm9CE/HKQzLr3/oJVAr?=
 =?iso-8859-1?Q?M2FCHX2i4mCAD+LiPbIxFNKNHwHWKPZR40VthSZgO1BZw4+hKIt5kZS6bv?=
 =?iso-8859-1?Q?PaOFtyr70tvJ83zYNgOHfUIxSS1ggN8YZZ2WUBZzsXyQ6sW1cN1yTqhy7t?=
 =?iso-8859-1?Q?ZxSNTyPJzDqWawB3q/c0gUeylX6KORwWUJYxOArfErr/ERQAntGCbUnMCl?=
 =?iso-8859-1?Q?91ErUS+2vXlhiw0HvvZS0mbIduoaM2HhL51d09PbyyoxHcB5tBIfL/WiB1?=
 =?iso-8859-1?Q?TdYsdBre+Avg3R3KZp3BNiUBq9zmGWdblReCpSRPp6HpwPv16f8ysNlXMp?=
 =?iso-8859-1?Q?kx49zMgfxZohPRpe7V+b2WRIa/O8Iau1+nGjH4bsxjyGVfLqJyiYjka/oB?=
 =?iso-8859-1?Q?A0zmOPrlTEPw3PM04s2d1UJ0rQxD57az4CvkEE1xhl1YRvfv+LnEuSsO6Z?=
 =?iso-8859-1?Q?vMJ7xMEKTsW35hzPeR0uKD1xs9Tvfy8Jk0Xvdit+OejUwnUfq6wX6K9ESg?=
 =?iso-8859-1?Q?5Z7uG2d+sJTU23QIC7ePuNsSaZzRR9SgL04Y5Xrdnd7CXXAxcsdTp4eayr?=
 =?iso-8859-1?Q?r6Vvv6BFriIPpZhkheTyXkWxz7773yMz4ewQE6/bDRqfaDmkskf+Ki50es?=
 =?iso-8859-1?Q?IlZZTEZ1CHmZNiECZO3eGYdeqdHLsJGlXBGx7hg3CLEGkxoCGo4nu43/+q?=
 =?iso-8859-1?Q?ylQhNjgIZcj1rJF6UYlCD+KfIiAnEWqYWV3JdA6bJkgsCkkTzwrjW+R3Jo?=
 =?iso-8859-1?Q?cSXs31KnFs2o8/LEyZd3h8H9nsPDMM6C1lRNCymWooaYHzC1aWH5BoyE2U?=
 =?iso-8859-1?Q?YKLWjTw8BKH9xaH0JVNb3FBPW8/miNekrZwnvMYDWfAmH/84Oos+8j9UFw?=
 =?iso-8859-1?Q?gRphx11tydoGAL/r5DPgYemB636vEBl2Y/8UioQqval8ID4hmuLQWhajqF?=
 =?iso-8859-1?Q?xeMxCIp+Rvu1qKnu3TtrkUbJnAm/LyOC+BA5cqGEjcy5NI8QvT2pHaHhut?=
 =?iso-8859-1?Q?fRil9xfG9oY8ONNM6Yyl75298vTSrX2jG4H6ViEGI+UgC8/F0Sj6mgKJGv?=
 =?iso-8859-1?Q?dOxZHc/hllFO/USDP6d7Lhcp63nl8pNJ0eXZUJ1uLu3Z9LyQ24v8QGeZW3?=
 =?iso-8859-1?Q?w7aO8+HnxjpfWaa7WfLEy4mIP9eIRZMYftZ2rHRubHyHUUmT/FbpJbFE+Y?=
 =?iso-8859-1?Q?biLifyyZpuhEMTaQRgXZbPquZIRL9zWxoXpJYAPzoiQN9zgpYZ2rl9fQvC?=
 =?iso-8859-1?Q?Q3DUdIbzC7jyJ7lfntIZZ/Y2vZ+hTwPducRGQItJAff4lEIiOdxhkDK12v?=
 =?iso-8859-1?Q?vYSSf6WWlOt1a5vDvykqCynIttweLZaccVnV6St7wDY5OsN4FTrMcMJuqG?=
 =?iso-8859-1?Q?cm74xDq/fCRSk7PcTTD55njmra7bDuEi8mydBvgpDrsAtG3chhAht0edla?=
 =?iso-8859-1?Q?j9b1kOZ+94N/sWFKTK82O0euCGBeTORgR3k+TdgABQ7uD9l4HmS1TyGQ?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ce904ab-a2fe-4884-93ce-08dd0e0e217d
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2024 11:33:21.0140
 (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: j5jaidGfYK+mz80cWXpVNzc13Ch2NMKUX9/BXyNKFHcFH6EnmzOgzhknoohOcr7Gk3wwGqotu5a+F4J6EV8qZzRBisgdmY+lEyJo2DFpMz4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR03MB6268


Hi Julien,

Julien Grall <julien@xen.org> writes:

> Hi,
>
> Hi Volodymyr,
>
> On 22/11/2024 21:07, Volodymyr Babchuk wrote:
>> diff --git a/xen/include/xen/stack_protector.h b/xen/include/xen/stack_p=
rotector.h
>> new file mode 100644
>> index 0000000000..97f1eb5ac0
>> --- /dev/null
>> +++ b/xen/include/xen/stack_protector.h
>> @@ -0,0 +1,30 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#ifndef XEN__STACK_PROTECTOR_H
>> +#define XEN__STACK_PROTECTOR_H
>> +
>> +#ifdef CONFIG_STACKPROTECTOR
>> +
>> +#ifndef CONFIG_X86
>> +extern unsigned long __stack_chk_guard;
>
> Is this variable meant to change after boot? If not, then can you tag
> it with __ro_after_init?
>

No, changing it after boot will lead to a random panic. So yes, it is good
idea to make it RO.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 11:34:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 11:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843646.1259273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFtpe-0006gj-3R; Tue, 26 Nov 2024 11:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843646.1259273; Tue, 26 Nov 2024 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 1tFtpe-0006gc-01; Tue, 26 Nov 2024 11:34:14 +0000
Received: by outflank-mailman (input) for mailman id 843646;
 Tue, 26 Nov 2024 11:34: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFtpd-00061B-5m
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 11:34:13 +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 59e29a9e-abea-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 12:34:09 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5cfddb70965so6830658a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 03:34: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
 4fb4d7f45d1cf-5d01d3fcf86sm5027755a12.63.2024.11.26.03.34.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 03:34: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: 59e29a9e-abea-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmQiLCJoZWxvIjoibWFpbC1lZDEteDUyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU5ZTI5YTllLWFiZWEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjIwODQ5LjIzMDI1NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732620848; x=1733225648; 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=NXEf/dAtJZBLZtMU5kvPCJZklY+UbwtVTARyPY5N0jo=;
        b=L1bLN3k38jRxb/wQFMGHKC1EntlEnH29YEIf6NLSrcLceT5ZlI7OoX9HTBfJANAWTR
         txxuWa1jq4y5lsFTNpPbbyD91Vp6HV4qZzZCsKVNo3ixSun95Sx51wXxU4HvHcr1aA6m
         df93pk13pX+iDTKPIFWMjR60idRBrFCjdRd+ZckKQIs8AWPk8o1lYitz2MP+OJIXLw5A
         JJ8UUQ+jwOFz5nSpDfzPTCqKTeuUIs0m6i5U7Tw2PYQbWIaNp8X00q1JlK4BHfAp5gi5
         2PFFNikgFAIOQPk60ZT/9d3DYxlBmv2tM7CgvSFIHJrAXNjnaytP+w0ZGK9DPhl2E2rH
         uLfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732620848; x=1733225648;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NXEf/dAtJZBLZtMU5kvPCJZklY+UbwtVTARyPY5N0jo=;
        b=t9+BpZ3J42/UGngT4WaQTPZovYQ52CT59MvhxfeCDcBuCs2RN7Zvnin/Nroru7N1Pw
         18x9KnIiHRH5oXsLhHoAgxWmjhZMLXA3Ck7l9qfx2POVcWl8z2sY5ImNsEavrsCzVzE8
         xa46iUav6A2hKtAK7cfl9C/Li/0jnGv7KlIDH+jpzygOCEAXKoqQTOUyuTD+5e1JkBtL
         O+68qs8lBFUcegV7ljlicfv2hhBonz73gEDn9gJAYuCU60TaUF5p/ckplhxf5hQp3AOd
         wnutr4IoAv0kEBMCBbQn7w+BpvivAaZU418VDEDyiEwynQiYZoBVJfqEh+jn8na027K0
         8x6Q==
X-Gm-Message-State: AOJu0YyUx9l+taBUEIko2b39DET8py7FrntiQ/jQsl/aOEx7c3ciybTu
	xpaimiN/2DrXTZtSMazWoE6GZz4PG7Qk9QUPeqdHoirr+fuF7rOgXRwYIy6mhg==
X-Gm-Gg: ASbGncuuoch4+AaCZxxR8ZfHg7/8303jeMCpxrmojJL4U3y9Eic/KrvReAygq4H/mxc
	tQBcFaD6LkF8NFvu1lNUXoBxgYemSrT5ClTFmvkFlkm/0nqlQ6cVdF9ANn+a2TqgaufadlrJRwH
	D3jUG/1MiuYf15oYVnyIbJUc2GmNATjjDCi3c1uR/gIHQeJoCSMBp5kr3xy1Xg9GNadqHUDRu3M
	x7X56HP+GRbVsETXjOErVrvepLKU4S8lM1DK4RyZaGB8DcqQclXJO8iDZOcjb/vjk9wcUgLLe3z
	qaz0CKcMFv4N3ywiNXHH5Icy7uTSV8lAuCY=
X-Google-Smtp-Source: AGHT+IFOuOQoWI0tGQqNUXP6wg+IpkUDCM6h6Fn61fZmqFGJqoAr78iBGoEwNWzigK+2Zt0GgNMsJg==
X-Received: by 2002:a05:6402:26cc:b0:5cf:98d:547b with SMTP id 4fb4d7f45d1cf-5d0205c2684mr14692607a12.5.1732620848607;
        Tue, 26 Nov 2024 03:34:08 -0800 (PST)
Message-ID: <3086afbe-5412-4dc5-bdce-7cd5b90a999d@suse.com>
Date: Tue, 26 Nov 2024 12:34:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86: Add architectural LBR declarations
To: ngoc-tu.dinh@vates.tech
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
 <20241118084914.22268-3-ngoc-tu.dinh@vates.tech>
Content-Language: en-US
Cc: 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: <20241118084914.22268-3-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 09:49, ngoc-tu.dinh@vates.tech wrote:
> --- a/xen/arch/x86/include/asm/msr-index.h
> +++ b/xen/arch/x86/include/asm/msr-index.h
> @@ -304,6 +304,17 @@
>  #define MSR_IA32_LASTINTFROMIP		0x000001dd
>  #define MSR_IA32_LASTINTTOIP		0x000001de
>  
> +/* Architectural LBR state MSRs */
> +#define MSR_IA32_LASTBRANCH_CTL		0x000014ce
> +#define  LASTBRANCH_CTL_LBREN		(1<<0) /* Enable LBR recording */
> +#define  LASTBRANCH_CTL_VALID		_AC(0x7f000f, ULL)
> +#define MSR_IA32_LASTBRANCH_DEPTH	0x000014cf
> +#define MSR_IA32_LER_INFO		0x000001e0
> +#define MSR_IA32_LASTBRANCH_0_INFO	0x00001200
> +#define MSR_IA32_LASTBRANCH_0_FROM_IP	0x00001500
> +#define MSR_IA32_LASTBRANCH_0_TO_IP	0x00001600
> +#define MAX_MSR_ARCH_LASTBRANCH_FROM_TO	64

This is rather NUM than MAX; MAX would be 63.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 11:49:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 11:49:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843657.1259283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFu4d-0000Lk-Ch; Tue, 26 Nov 2024 11:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843657.1259283; Tue, 26 Nov 2024 11: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 1tFu4d-0000Ld-8s; Tue, 26 Nov 2024 11:49:43 +0000
Received: by outflank-mailman (input) for mailman id 843657;
 Tue, 26 Nov 2024 11:49: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFu4b-0000LX-Fj
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 11:49:41 +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 8348177a-abec-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 12:49:37 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-434a7ee3d60so2070405e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 03:49:37 -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-3825fad61b0sm13341133f8f.7.2024.11.26.03.49.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 03:49: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: 8348177a-abec-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmYiLCJoZWxvIjoibWFpbC13bTEteDMyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgzNDgxNzdhLWFiZWMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjIxNzc3Ljc2MTA3Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732621777; x=1733226577; 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=FVQJXT1kS/A88u7MRUw6kjpIXlwjmEIfSnCST/LNQxk=;
        b=gft6HbrA1IpPv3+yN4vE/qOluK2xUd/rlnGyFvVqM25fkJ7FebMvbpafx7GuweLZXZ
         ATn1IRYjwQiJdU7H47dNH+qrBUiLNI/OYnl4W/CmO6sGMhZflQBFOnHuVz2HV6kwmbvb
         skJdWs/qgNrQ/bi8Ds8YJMn0126FVvy9TusA+SpS6Z29kvZR6AvJUhTCrD4/Ruo1bkUP
         cCSE6xqM+ByzD/6OsmefujZqg4eF0GFam+FqHtMWKTtfSYKPcBsLaYLd8Pu8+wJXAAxd
         P7b4PteyNkGEKd0VQUVuEkfRqYgHwNvo/0pjSeEQusBF5O+NmrihFMWOpeVsw1Z4cdMA
         D/Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732621777; x=1733226577;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=FVQJXT1kS/A88u7MRUw6kjpIXlwjmEIfSnCST/LNQxk=;
        b=ItPkZtyNyVDR3M1hIKDzs9IeNkAyNE2fcEEMLm3rvmi2223NdPa+i1SsQW1Qw6VWsz
         mJkWYbXZikNvQh7r/pXHB0rpzayB+LA5LfMbCBF6z4GXIUdjDR8nVML7yZs5oRM8ffrH
         WN84LZKGjIOnp4o4w+r/WGEMAeevok3Xv248NPhe7BFPde7mh/PJ8Zl3D6NYqo+3jLnL
         0Y7anzKW4kzbmckD2QCLpRI0MvQoCvWrxoT75ItA6lXNReltXHOXDp3206Y9a3DktBDa
         M7+/tPy1uIFmsLsVuxR+HVMLDpeGkcoLB1LCfkKWi7VxkIv9GoFtPBMFy/5Zhl2GIqFP
         Duew==
X-Gm-Message-State: AOJu0YyG5TCtR9TwWwPYsuZNwVjs9I8XjgzqjDQ9luRvHhFWfIb4pZWa
	br8P0YoTwW5wW/UHhzQNXCyC5A/sXgFpYjAFASY+azlol5FB/iDlNaQkzb5jCQ==
X-Gm-Gg: ASbGncu06nEolfQv6cs8R/NvzZPVzW3SiAu8ScE8sP6GefiZC1qKZ8hYBYCaUfPizVZ
	CaaWvAtKhkZfu7Q19rMziSJtLYyimk0DbCRQfDVXz7jt3XYh7L3buLpqEoYNwsHNCrtvctlZJm6
	H1K2bVTkDXtXRf7Xdwzt9gaSp4UlIO0ygk9ONpv2uKE+iCXYNjz8lbnC9w0iyXIJ3tLjynLjkGL
	Ul9mN47lKZXtvDIOL/1koipt7U/YDgkpZxbg8rt/tE49nR7ghMBm7TS0iPjbBhgtYWiSoQ9nMml
	LAa3fGBXMTR73FPhgYhwZb/Co3BHUGenhg4=
X-Google-Smtp-Source: AGHT+IF9qsyijDwgGeZyjKvINgM8DRAw9wVTLZ+7y0x9Sh4rym9OYWjj9W7v04NC6D7Nvumde/wgog==
X-Received: by 2002:a5d:64c2:0:b0:382:444f:4eb0 with SMTP id ffacd0b85a97d-385bfaf0d52mr2603374f8f.13.1732621776993;
        Tue, 26 Nov 2024 03:49:36 -0800 (PST)
Message-ID: <7f4f8f53-646e-4489-9fb8-1867a028dcc0@suse.com>
Date: Tue, 26 Nov 2024 12:49:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] x86/vmx: Virtualize architectural LBRs
To: ngoc-tu.dinh@vates.tech
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
 <20241118084914.22268-5-ngoc-tu.dinh@vates.tech>
Content-Language: en-US
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.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: <20241118084914.22268-5-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 09:49, ngoc-tu.dinh@vates.tech wrote:
> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -788,6 +788,9 @@ static void __init calculate_hvm_max_policy(void)
>  
>          if ( !cpu_has_vmx_xsaves )
>              __clear_bit(X86_FEATURE_XSAVES, fs);
> +
> +        if ( !cpu_has_vmx_guest_lbr_ctl )
> +            __clear_bit(X86_FEATURE_ARCH_LBR, fs);

How will this be reflected onto leaf 1C? Patch 3 doesn't check this bit.
In fact I wonder whether patch 1 shouldn't introduce dependencies of all
leaf 1C bits upon this one bit (in tools/gen-cpuid.py).

> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -423,65 +423,96 @@ static int cf_check vmx_pi_update_irte(const struct vcpu *v,
>      return rc;
>  }
>  
> -static const struct lbr_info {
> +struct lbr_info {
>      u32 base, count;
> -} p4_lbr[] = {
> -    { MSR_P4_LER_FROM_LIP,          1 },
> -    { MSR_P4_LER_TO_LIP,            1 },
> -    { MSR_P4_LASTBRANCH_TOS,        1 },
> -    { MSR_P4_LASTBRANCH_0_FROM_LIP, NUM_MSR_P4_LASTBRANCH_FROM_TO },
> -    { MSR_P4_LASTBRANCH_0_TO_LIP,   NUM_MSR_P4_LASTBRANCH_FROM_TO },
> -    { 0, 0 }
> +    u64 initial;

uint64_t please in new code.

> +};
> +
> +static const struct lbr_info p4_lbr[] = {
> +    { MSR_P4_LER_FROM_LIP,          1, 0 },
> +    { MSR_P4_LER_TO_LIP,            1, 0 },
> +    { MSR_P4_LASTBRANCH_TOS,        1, 0 },
> +    { MSR_P4_LASTBRANCH_0_FROM_LIP, NUM_MSR_P4_LASTBRANCH_FROM_TO, 0 },
> +    { MSR_P4_LASTBRANCH_0_TO_LIP,   NUM_MSR_P4_LASTBRANCH_FROM_TO, 0 },
> +    { 0, 0, 0 }

If these adjustments are really needed, I'd wonder whether we wouldn't be
better of switching to C99 initializers instead.

> +static struct lbr_info __ro_after_init architectural_lbr[] = {
> +    { MSR_IA32_LASTINTFROMIP,        1, 0 },
> +    { MSR_IA32_LASTINTTOIP,          1, 0 },
> +    { MSR_IA32_LER_INFO,             1, 0 },
> +    /* to be updated by update_arch_lbr */

Nit: Comment style (start with a capital letter).

> +    { MSR_IA32_LASTBRANCH_0_INFO,    MAX_MSR_ARCH_LASTBRANCH_FROM_TO, 0 },
> +    { MSR_IA32_LASTBRANCH_0_FROM_IP, MAX_MSR_ARCH_LASTBRANCH_FROM_TO, 0 },
> +    { MSR_IA32_LASTBRANCH_0_TO_IP,   MAX_MSR_ARCH_LASTBRANCH_FROM_TO, 0 },
> +    { 0, 0, 0 }
> +};
> +static uint64_t __ro_after_init host_lbr_depth = 0;

No need for the initializer.

> +static void __init update_arch_lbr(void)
> +{
> +    struct lbr_info *lbr = architectural_lbr;
> +
> +    if ( boot_cpu_has(X86_FEATURE_ARCH_LBR) )
> +        rdmsrl(MSR_IA32_LASTBRANCH_DEPTH, host_lbr_depth);

Again you're reading an MSR here which was never written. Are you perhaps
assuming that the reset value is still in place?

> +    ASSERT((host_lbr_depth % 8) == 0 && (host_lbr_depth <= 64));
> +
> +    for ( ; lbr->count; lbr++ ) {
> +        if ( lbr->base == MSR_IA32_LASTBRANCH_0_INFO ||
> +             lbr->base == MSR_IA32_LASTBRANCH_0_FROM_IP ||
> +             lbr->base == MSR_IA32_LASTBRANCH_0_TO_IP )
> +            lbr->count = (u32)host_lbr_depth;

You don't want to use presently undefined bits here which may happen to
become defined on future hardware. IOW a cast is insufficient here.
(Comment applies to patch 2 as well.)

> @@ -3303,25 +3336,36 @@ static void __init ler_to_fixup_check(void)
>      }
>  }
>  
> -static int is_last_branch_msr(u32 ecx)
> +static const struct lbr_info * find_last_branch_msr(struct vcpu *v, u32 ecx)

Nit: Excess blank after the first *, and please take the opportunity to
switch to uint32_t.

>  {
> +    /*
> +     * Model-specific and architectural LBRs are mutually exclusive.
> +     * It's not necessary to check both lbr_info lists.
> +     */
>      const struct lbr_info *lbr = model_specific_lbr;
> +    const struct cpu_policy *cp = v->domain->arch.cpu_policy;
>  
> -    if ( lbr == NULL )
> -        return 0;
> +    if ( lbr == NULL ) {
> +        if ( cp->feat.arch_lbr )
> +            lbr = architectural_lbr;

I'm inclined to think that this should be independent of lbr being NULL.
That would then also eliminate the style issue (with the placement of the
figure brace).

By the end of the patch / series, what I'm missing are context switch and
migration handling. You want to engage XSAVES to cover both (it being the
first XSS component we support, there'll be prereq work necessary, as I
think Andrew did already point out). Or did I overlook anything?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 11:57:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 11:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843669.1259293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFuC0-0002LK-7O; Tue, 26 Nov 2024 11:57:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843669.1259293; Tue, 26 Nov 2024 11:57: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 1tFuC0-0002LD-4g; Tue, 26 Nov 2024 11:57:20 +0000
Received: by outflank-mailman (input) for mailman id 843669;
 Tue, 26 Nov 2024 11:57: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=+J1p=SV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tFuBz-0002L7-Dx
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 11:57:19 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93a578d1-abed-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 12:57:14 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-53deeb6d986so207341e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 03:57:14 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd2499f27sm1982798e87.272.2024.11.26.03.57.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 03:57: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: 93a578d1-abed-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmMiLCJoZWxvIjoibWFpbC1sZjEteDEyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjkzYTU3OGQxLWFiZWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjIyMjM0LjU2ODY4LCJzZW5kZXIiOiJvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732622234; x=1733227034; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=RF5Fb5nT/w300UuK/JeTu1eB3qVWFMEKYzZKmk3KXrI=;
        b=F3Swpg8bFNPit904o4gSEJPSK2PCbAMYCbpPWF3L8d0AyISoDVMr+VqoQSrvNjkJQ6
         X1KstoyheU1JGB8doRfPYcCAckPwuH/Mo/cf1v+nXSi/5Pr549cYUUato83D5c0RmkxX
         Od81QEoxsjC7Z/5v6s4W3tRFsOvZqw7f91oXm2nSfs0wdIfKJKD3XHNAlx2lLe9iQIpu
         pR1C1rrrWKgveOzmqNLsZCfQKkZ+dMJw4MsExXJLHEk3sNzkzpR3CLnnHffnY/wm9FCZ
         iAvTAia4kFXgAhBlhSi/Wxwh4VB92ZBbb9s4jiUCxJbS9suG0TpLjCike+XtGwuvB1Yq
         SpJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732622234; x=1733227034;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=RF5Fb5nT/w300UuK/JeTu1eB3qVWFMEKYzZKmk3KXrI=;
        b=toKFjlO0v0/FFtu2bJ7hXOQmeRpI2UO/ksEp09OPTtxTZQdNrq6Z5T7P20MYJcK51m
         FUpdUWB1wDrJtuo2ova4iKXAE/r/vxuhlxox/is5OAdcaEv3Kxn8RlRN9mX+DrPAhoNX
         75i3UHvlG3+H2ZU+4Kcr9U3JfUbxjnjynoc6M+ATeFait0JRhLZlYZj22Wi6grkse7KC
         bq5eNJtWq/tPjTYJ939Fu360QpqmygA2zSLHimsseuPT/NA/7IaUdf36RU7gfvXtO4yE
         8aBwq+C7d/Bhpdc/jRUuqw9y4Cd6+zFaIUMwPLVlg5Zap6ECCJ+OJm2zZQFd/yFWEFRg
         hqEA==
X-Forwarded-Encrypted: i=1; AJvYcCXRtX9hDE+PFTcWPa/YpzT6G3uIvvSoXR1lxkwUAR0s9mTeJiQ+DOJioxdWRFUamYLDepajm1+et+Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxENVYeHKvJLTPr2sD8UoECNxC2fYYa+aSsARYUJH2SGF+s1KTj
	0D2VuSxZj4bryYRVnCgkcL5BdC1uxjZe+aiM+oiKHXenMk7S2knl
X-Gm-Gg: ASbGnctok+eR7uw2SDYPMFSrJqqeRKg/2ZoVHzbnDXih1twHtfQ9rtZok9/jV52E3S9
	yI7E2JhVXHW7qwGBPH/iOtkI0cX4bFKUdY8vqfN4+IYg91XlGjTP9L//9GHtiukSiWiSFRshqgx
	lpbYbUoQO29L6P+yrCbGDJsGt9YgXs3t9Du7RnGg6NbQUmifh4Y1ZqbNWKxzmHxF6L5j/Pj8Qf1
	s2V+zxSVlnJfL4AyMBDZVJR5b6x0ldVmMUbtXPbzLJXXFfhvqN4j/d+k9B8LSo=
X-Google-Smtp-Source: AGHT+IF+bmpM7o92/Av8m062751BH9J93WQZBFb7AIvc3foIpxfK44shHTtyGmWq1DXFRAKlY08b6A==
X-Received: by 2002:a05:6512:39c3:b0:53d:d957:9f92 with SMTP id 2adb3069b0e04-53dd9579fd5mr7372308e87.9.1732622233789;
        Tue, 26 Nov 2024 03:57:13 -0800 (PST)
Message-ID: <360ce2bf4c418cf8f5c4318435ca3308477a07b6.camel@gmail.com>
Subject: Re: [PATCH v6 1/3] xen/riscv: introduce setup_mm()
From: 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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini	 <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Date: Tue, 26 Nov 2024 12:57:12 +0100
In-Reply-To: <fb5c12b0-5bc1-4129-a4e9-9716ffd4685c@suse.com>
References: <cover.1731672668.git.oleksii.kurochko@gmail.com>
	 <1ebb209f191e3e2323840acfe3714a597aa7be6c.1731672668.git.oleksii.kurochko@gmail.com>
	 <fb5c12b0-5bc1-4129-a4e9-9716ffd4685c@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Mon, 2024-11-25 at 16:49 +0100, Jan Beulich wrote:
> On 15.11.2024 13:47, Oleksii Kurochko wrote:
> > --- a/xen/arch/riscv/include/asm/config.h
> > +++ b/xen/arch/riscv/include/asm/config.h
> > @@ -90,6 +90,7 @@
> > =C2=A0#define DIRECTMAP_SLOT_START=C2=A0=C2=A0=C2=A0 200
> > =C2=A0#define DIRECTMAP_VIRT_START=C2=A0=C2=A0=C2=A0 SLOTN(DIRECTMAP_SL=
OT_START)
> > =C2=A0#define DIRECTMAP_SIZE=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 (SLOTN(DIRECTMAP_SLOT_END) -
> > SLOTN(DIRECTMAP_SLOT_START))
> > +#define DIRECTMAP_VIRT_END=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (DIRECTMAP_VI=
RT_START +
> > DIRECTMAP_SIZE - 1)
>=20
> While it is of course okay to have this value be inclusive (matching
> FRAMETABLE_VIRT_END), I'd like to point out that
> - on x86 *_END are exclusive (i.e. there's some risk of confusion),
> - RISC-V's DIRECTMAP_SIZE appears to assume DIRECTMAP_SLOT_END is
> =C2=A0 exclusive, when from all I can tell (in particular the table in th=
e
> =C2=A0 earlier comment) it's inclusive.
Agree, overlooked that DIRECTMAP_SIZE is exclusive,  the value should
correspond to the table thereby DIRECTMAP_SIZE should be inclusive and
defined as:
#define DIRECTMAP_SIZE (SLOTN(DIRECTMAP_SLOT_END + 1) -
SLOTN(DIRECTMAP_SLOT_START))

and then DIRECTMAP_VIRT_END could be left as it is defined now:
   #define DIRECTMAP_VIRT_END      (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE
   - 1)

Regarding the first one point. Do you think it would be better to
follow x86 approach and have *_END to be exclusive? Then
FRAMETABLE_VIRT_END should be updated too?

>=20
> > @@ -25,8 +27,12 @@
> > =C2=A0
> > =C2=A0static inline void *maddr_to_virt(paddr_t ma)
> > =C2=A0{
> > -=C2=A0=C2=A0=C2=A0 BUG_ON("unimplemented");
> > -=C2=A0=C2=A0=C2=A0 return NULL;
> > +=C2=A0=C2=A0=C2=A0 unsigned long va_offset =3D maddr_to_directmapoff(m=
a);
> > +
> > +=C2=A0=C2=A0=C2=A0 ASSERT(va_offset >=3D DIRECTMAP_VIRT_START -
> > directmap_virt_start);
> > +=C2=A0=C2=A0=C2=A0 ASSERT(va_offset <=3D DIRECTMAP_VIRT_END -
> > directmap_virt_start);
> > +
> > +=C2=A0=C2=A0=C2=A0 return (void *)(directmap_virt_start + va_offset);
> > =C2=A0}
>=20
> If you added in directmap_virt_start right when setting the variable,
> you'd simplify the assertions. The unsigned long arithmetic is going
> to
> be okay either way. (The variable may want renaming if doing so,
> perhaps
> simply to "va".)

Just to be sure that I understand your point correct. Do you mean the
following:
    static inline void *maddr_to_virt(paddr_t ma)
    {
   -    unsigned long va_offset =3D maddr_to_directmapoff(ma);
   +    unsigned long va =3D maddr_to_directmapoff(ma) +
   directmap_virt_start;
   =20
   -    ASSERT(va_offset >=3D DIRECTMAP_VIRT_START -
   directmap_virt_start);
   -    ASSERT(va_offset <=3D DIRECTMAP_VIRT_END - directmap_virt_start);
   +    ASSERT(va >=3D DIRECTMAP_VIRT_START);
   +    ASSERT(va <=3D DIRECTMAP_VIRT_END);
   =20
   -    return (void *)(directmap_virt_start + va_offset);
   +    return (void *)va;
    }

Thanks.

~ Oleksii

>=20
> Preferably with the latter adjustment and pending clarification on
> the
> intentions wrt the comment further up
> Acked-by: Jan Beulich <jbeulich@suse.com>
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 12:03:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 12:03:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843684.1259303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFuHz-0004Mr-VN; Tue, 26 Nov 2024 12:03:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843684.1259303; Tue, 26 Nov 2024 12:03: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 1tFuHz-0004Mk-RZ; Tue, 26 Nov 2024 12:03:31 +0000
Received: by outflank-mailman (input) for mailman id 843684;
 Tue, 26 Nov 2024 12:03: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFuHy-0004Me-Dg
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 12:03:30 +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 71eba37a-abee-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 13:03:27 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-434a2033562so12645235e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 04: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-3825fad6723sm13221455f8f.16.2024.11.26.04.03.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 04: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: 71eba37a-abee-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcxZWJhMzdhLWFiZWUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjIyNjA3LjU3MDQ3NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732622607; x=1733227407; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:cc:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZPFk8VlynJ+ar18atOdhPkuCkjxJ4St2l9dzlWGZulQ=;
        b=VtBT+hP4upruEr9o/sYFTgR+AlwNjl1NIBv7tqR5OwWSvrcsiFi6iu8KIrKn26fzWw
         8pm67t3ayiK1iG3AdHYuc9GAgFPAE061eTM39lDHGWKGh0ZlDkpiIK+FCrRZWkqgkJWN
         XEdbieOwgA01Hr6bnMRLhwW2CAe6ydF8DAD5nDTJdGK9F1QnnnJJXhXyBLLIEjTSVdD8
         bzUmJ/nkfeevqmlzrX/KTbVbovLn5A3xm7YTJ7Q6I9teHu1cQttibmPSJCTzszuCObII
         W0PS1SLNOtEhFx/Z4DGlRgRj9WTCBCaL2/ZqPSAgAIOCt9P3+J6Vx454L0ZWWnBTrp4O
         aq8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732622607; x=1733227407;
        h=content-transfer-encoding:in-reply-to:cc:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZPFk8VlynJ+ar18atOdhPkuCkjxJ4St2l9dzlWGZulQ=;
        b=Dp6bXBh59SEQotwWL9HinwW9JdxJJoWDxMnoyr/mOphw7YXO5KjjiVqV609Zt7spsW
         fsdytRWUv4OqHCbhXgSzWe8DwDoRJ2Pdf4bgH2ASYwVFQs3+c1Q+zxTMZiYfhnwVaabj
         IPeurRtfV9YxRrf1LvkS3iiRZeJfAflMh5aR+ErhAHqpsyuuFTw2J94ov5gP2nn0Si/L
         sEdW2SeznN56aw6BqSbob2ReXsz5jxHtJyv4PoYk2g1jozpXU4e6Dj3D9lif2Md6Ng1+
         6s81KLUnzgAEmcfezyX2X7GyDl1YS4jKGeRezFsBYUlWLH7c/8J8KVnKiGFHEFk7yoLE
         6QPg==
X-Gm-Message-State: AOJu0YxnzM6Ns01Fm58LShzuhdDcVxnE9cZKqJsp197zkz6jz7PPh7/p
	V5UX1pOPG0146ZejvBRxYs1tTl98n4rqmqSxyt/m+m2chfCh6gNRDrCf6cEO7g==
X-Gm-Gg: ASbGncuuC5e88H+Zb2KhHRrg+2TX2ojMq+KUYdPlWN4LHyWuckI6mns/5OE6W+VfRjC
	eWg7DBIJ3PPbsonmcis8Q+g6iwNyz3mQ0Qgx530JAj1tcMuhMs/X4AXbvmhDOGiaxH627iAShZQ
	V5UzyId/f25D7fMXV/ZiEHcSt6JG74PFzE81lssgBqupRI37crsIMn3AcWLAM8OSs9APuGSUU7s
	tzblzhFo3rdjbbS1b2iqxwF2+1VZew2KvwtQWvJZGMwwIcKT4p6wBdmk6HSzgU87pkTi871/An3
	pf40ZKERD3P1koB3xLUxRiDZKb520p1Ozzc=
X-Google-Smtp-Source: AGHT+IGTtHxJzVB4lVnIvLcxLirpwq4W5keCrOSHBu3u0GbbWmbvdxU7qzkMqXW92F7tJnZTWnS/KA==
X-Received: by 2002:a05:6000:1f8c:b0:382:424b:d0a6 with SMTP id ffacd0b85a97d-38260be2ea2mr13798891f8f.55.1732622606866;
        Tue, 26 Nov 2024 04:03:26 -0800 (PST)
Message-ID: <7d115f26-757d-40a6-87ee-76d55042b8d6@suse.com>
Date: Tue, 26 Nov 2024 13:03:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86: Add architectural LBR declarations
To: ngoc-tu.dinh@vates.tech
References: <20241118084914.22268-1-ngoc-tu.dinh@vates.tech>
 <20241118084914.22268-3-ngoc-tu.dinh@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
Cc: xen-devel@lists.xenproject.org
In-Reply-To: <20241118084914.22268-3-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2024 09:49, ngoc-tu.dinh@vates.tech wrote:
> From: Tu Dinh <ngoc-tu.dinh@vates.tech>
> 
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  xen/arch/x86/include/asm/msr-index.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
> index 9cdb5b2625..867deab3c6 100644
> --- a/xen/arch/x86/include/asm/msr-index.h
> +++ b/xen/arch/x86/include/asm/msr-index.h
> @@ -304,6 +304,17 @@
>  #define MSR_IA32_LASTINTFROMIP		0x000001dd
>  #define MSR_IA32_LASTINTTOIP		0x000001de
>  
> +/* Architectural LBR state MSRs */
> +#define MSR_IA32_LASTBRANCH_CTL		0x000014ce

The SDM calls this IA32_LBR_CTL, so we want it to be MSR_LBR_CTL, ...

> +#define  LASTBRANCH_CTL_LBREN		(1<<0) /* Enable LBR recording */
> +#define  LASTBRANCH_CTL_VALID		_AC(0x7f000f, ULL)
> +#define MSR_IA32_LASTBRANCH_DEPTH	0x000014cf

... MSR_LBR_DEPTH, and ...

> +#define MSR_IA32_LER_INFO		0x000001e0
> +#define MSR_IA32_LASTBRANCH_0_INFO	0x00001200
> +#define MSR_IA32_LASTBRANCH_0_FROM_IP	0x00001500
> +#define MSR_IA32_LASTBRANCH_0_TO_IP	0x00001600

... similarly *_LBR_* here.

For these three, as they actually cover groups, in other similar cases we
use function like macros, to ease access to any of the MSRs in the group.
I.e.

#define MSR_LBR_INFO(n) (0x00001200 + (n))

> +#define MAX_MSR_ARCH_LASTBRANCH_FROM_TO	64

Where's this 64 coming from? I understand CPUID permits up to 64, but the
XSAVES area layout covers only up to 32. Is the SDM flawed here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 12:27:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 12:27:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843697.1259313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFufY-0007lM-Rc; Tue, 26 Nov 2024 12:27:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843697.1259313; Tue, 26 Nov 2024 12:27: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 1tFufY-0007lF-Nn; Tue, 26 Nov 2024 12:27:52 +0000
Received: by outflank-mailman (input) for mailman id 843697;
 Tue, 26 Nov 2024 12:27: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=KEbF=SV=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFufX-0007l9-OE
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 12:27:51 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d776df7f-abf1-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 13:27:46 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ffc3f2b3a9so30688511fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 04:27:46 -0800 (PST)
Received: from localhost (0545937c.skybroadband.com. [5.69.147.124])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa533b04d87sm450276766b.97.2024.11.26.04.27.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 04:27: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: d776df7f-abf1-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmEiLCJoZWxvIjoibWFpbC1sajEteDIyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ3NzZkZjdmLWFiZjEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjI0MDY2LjM2OTg3NCwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732624066; x=1733228866; darn=lists.xenproject.org;
        h=in-reply-to:references:from:subject:cc:to:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EXB1EGV+ZOevMMaqUmppIUl5c5hInUzInu2PPh6msWY=;
        b=GnJZ5Anl4yutt16He5uREYrnnhOKDNhfO5zQfNmaE2NXTPTQQ4XqKso70ab4ecaFE9
         +R0Z6m/S7dciw75Lzf8bOmBH9gIPS0MNXiZlpr2ZVT12ZO6SJbtNXzuY41qeaXgEj+Kc
         wQmsyvuDcrKOvj43N1qj3e/oIuDi+Dc6oOMgM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732624066; x=1733228866;
        h=in-reply-to:references:from:subject:cc:to:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=EXB1EGV+ZOevMMaqUmppIUl5c5hInUzInu2PPh6msWY=;
        b=Z6o+PD80VQWWnI+b23Auo1+wjqoP0Achef9n65SqC8uvXz4oBuHwNuWDAzFG7Vqs31
         KPpNqkLIbhMP4USb+amxFjoxKz8iP1VYMD4KuOnE47kSuBQ1W02Gyd7EINw1fpXEU0Wm
         siH5Uf4ekeVjfoyuEmDpVMjk65lHhwN9/azsj20O7Mhof4BKjN4uZIfwfPtuoTg70Z61
         kGqXDNxmH2Bn9edlmf7NgW4lyWt9DwBbfKcDEzpI8GRjhNkPvO9a/GIMC18WmiLCEeQs
         B/1vB9dZfmuwvbXG+nuWkngsqYVSue70BJqrOBwYUp4GNS0ZQY9UcJ+yrZQww6kA+QBO
         e7Rw==
X-Forwarded-Encrypted: i=1; AJvYcCVevirxMh+6Tn269U8SIj9QxBhqLr3QaF3mL72rWx5O2DXHVuzqfXdieV8bxWeEfKOZuE9/U5WZWIo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywgsc//JYLHS/aen9YnVM0AlWf7jATXjGRMsSt3/V3p1jEKaFYp
	TCxWs5LFmFIjsxvBSy0LiEasVjCHWNx2Tb/TntZ8b/TC9csGhiFVEPL2QuU/KJA=
X-Gm-Gg: ASbGncsMhV0SE59nUBA9t3XJMC4/MdKoTRb2F6nTD5sTnrs1H3Q6B883RqqUzzlYI3c
	ZdZIgyNL3j+mW4QI92FHPoZaSa8PFVKdlnJByTFdS6I0JZFCAE51WntHgugRNUFo+U1ETY0hibK
	zB+oCxuFyMocaOnzX/kmTMftBqmapqC1qcTOXOVa5t9F3Msa0NAfogRJzODeZqV4wmhDsxru0Vx
	btkR2dSiMKXBEeXwZMBqOTnaDBYZ787kiiXEBz/VKmtXFK7a+Ec2/ypdhK9K7t7F4lvBEy1vGLB
	DfwB
X-Google-Smtp-Source: AGHT+IH3sgkjD7DjfEDySgT8A2nBLXegLzImJ+T5vrOzzt6ZjAmSzp1la5+DKarZLJmYUbJSnsKvQQ==
X-Received: by 2002:a05:6512:3406:b0:53d:a4e0:c3ca with SMTP id 2adb3069b0e04-53dd39a4eb0mr11460386e87.43.1732624065435;
        Tue, 26 Nov 2024 04:27:45 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 26 Nov 2024 12:27:43 +0000
Message-Id: <D5W3YYDE2F09.IHJMRBUBE6EV@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Samuel Thibault"
 <samuel.thibault@ens-lyon.org>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@cloud.com>
 <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
 <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com>
 <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com>
In-Reply-To: <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com>

On Tue Nov 26, 2024 at 9:40 AM GMT, Jan Beulich wrote:
> On 25.11.2024 19:51, Alejandro Vallejo wrote:
> > On Mon Nov 25, 2024 at 12:05 PM GMT, Jan Beulich wrote:
> >> On 15.11.2024 12:51, Alejandro Vallejo wrote:
> >>> Describe sysctl/readconsole as a TOML specification, remove old
> >>> hand-coded version and replace it with autogenerated file.
> >>>
> >>> While at it, transform the console driver to use uint8_t rather than
> >>> char in order to mandate the type to be unsigned and ensure the ABI i=
s
> >>> not defined with regards to C-specific types.
> >>
> >> Yet the derived C representation imo then should still be using char, =
not
> >> uint8_t.
> >=20
> > There's 2 issued addressed by this patch.
> >=20
> >   1. The removal of char from the external headers (and the Xen driver)=
.
> >   2. The replacement of the existing struct by the autogenerated one.
> >=20
> > (1) wants doing irrespective of (2). char has neither a fixed width nor=
 a fixed
> > sign. Which is irrelevant for ABI purposes in this case because what we=
 really
> > meant is "give me a pointer" in this hypercall, but it may be important=
 in
> > other cases.
> >=20
> > IOW, char should've never made it to the definition of the public ABI, =
and I'm
> > merely taking the chance to take it out. Happy to extract this patch an=
d send
> > it separately.
>
> Well, work towards fully getting char out of the public headers may indee=
d be
> worthwhile. Otoh with char being the basic addressing granularity, I thin=
k
> the ABI is pretty much tied to sizeof(char) =3D=3D 1, imo limiting the
> worthwhile-ness quite a bit.

Let me put it another way. If I were to create a separate patch stripping c=
har
and using uint8_t instead, what are my chances of getting an Acked-by? Or n=
ot a
NAK, at least. (there's other maintainers that I need that from, but one st=
ep
at a time).

>
> Signed-ness of plain char doesn't really matter as long as it's used only=
 for
> what really are characters (or strings thereof). And that looks the be pr=
etty
> much the case throughout the public headers.

Maybe. Still, as a general principle caller and callee ought to agree on si=
ze,
alignment and sign for every type. I'd rather not make exceptions for that
invariant unless truly well motivated. And in this case it's a case of
requiring trivial non-functional changes.

>
> >> In particular it would be a good sign if the Xen sources wouldn't
> >> need to change, unlike happens here (altering types of a few internals=
 of
> >> the console machinery).
> >=20
> > And that would be the case if Xen had uniform naming conventions and it=
s ABI
> > was fully unambiguous. The process of uniformizing the naming conventio=
n and
> > disambiguating the ABI is bound to cause (non-functional) changes, most=
ly in
> > the naming conventions side of things.
> >=20
> > Naming conventions can be _MOSTLY_ sorted by creating compat #defines a=
nd
> > typedefs that match the old types. I can do that, but note that even th=
en some
> > code would have to change in order to i.e: s/struct OLD_NAME/NEW_NAME_T=
/
>
> Here we already disagree: I think we'd better avoid any typedef-s in the =
public
> interface when they're not strictly needed (e.g. in order to declare asso=
ciated
> handles). Imo we simply shouldn't introduce more into the name space than
> actually required.

I really don't want to pollute the spec files with tidbits of how C happene=
d to
case its identifiers originally.

> > If this is deemed important for backporting changes, I can do it for in=
vasive
> > replacements, like the createdomain flags.
> >=20
> > On the topic of changing types, The present case is an ABI inconsistenc=
y case.
> > My intention is to keep the ABI fixed as a matter of principle (if anyt=
hing,
> > because the domU ABI cannot be changed). However, changing the way C re=
presents
> > said ABI is a requirement if the current definition is ambiguous. In th=
ose
> > cases we ought to change C to ensure there's one and only one way of
> > interpreting it.
>
> I wonder what concrete cases of ambiguity you're thinking of here.
>

Anything where the size, alignment or sign of a type might not be up for
interpretation. This "char" case is one. So are things like xen_sysctl_memi=
nfo
due to using raw uint64_t rather than uint64_aligned_t.

> >>>  xen/include/public/autogen/sysctl.h           | 35 +++++++++++++++
> >>
> >> In the build tree, having an autogen subdir under public/ _may_ be oka=
y
> >> (personally I dislike even that). I didn't manage to spot adjustments =
to
> >> how files are eventually installed, yet at that point there clearly
> >> shouldn't be any autogen subdir(s) anymore. How the individual files c=
ome
> >> into existence is, imo, nothing consumers of the interface ought to (n=
eed
> >> to) care about.
> >=20
> > Anthony already mentioned an error while building QEMU, which I'm guess=
ing
> > comes from the same problem. The stitching is definitely up for discuss=
ion. I
> > got far enough to allow the compilation of `dist` to go through, but di=
dn't
> > think incredibly hard about the finer details (like the install targets=
).
> >=20
> > In principle, renaming `autogen` to `abi` and adding its contents to th=
e list of
> > installed headers ought to sort that particular concern?=20
>
> Not really, no. That only gives the child a different name. Imo the origi=
nal
> tree structure shouldn't change. By the end of the conversion work, all-
> generated stuff would simply replace all-hand-written stuff.

I'm afraid that introduces a lot of undue complexity. Putting everything
autogenerated in the same folder where only autogenerated headers live (fro=
m
the same generator) provides for easy ways of checking whether files are st=
ale
or not. Trying to surgically replace C would require either a C parser or m=
agic
tokens in the header (yuck!).

I want to avoid anyone having to explicitly include the new headers, but th=
ey
do definitely want to be installed in the targets alongside the rest of the
public headers. Because they are public headers.

>
> >>> --- /dev/null
> >>> +++ b/tools/rust/xenbindgen/extra/sysctl/readconsole.toml
> >>> @@ -0,0 +1,43 @@
> >>> +[[structs]]
> >>> +name =3D "xen_sysctl_readconsole"
> >>> +description =3D "Read console content from Xen buffer ring."
> >>> +
> >>> +[[structs.fields]]
> >>> +name =3D "clear"
> >>> +description =3D "IN: Non-zero -> clear after reading."
> >>> +typ =3D { tag =3D "u8" }
> >>> +
> >>> +[[structs.fields]]
> >>> +name =3D "incremental"
> >>> +description =3D "IN: Non-zero -> start index specified by `index` fi=
eld."
> >>> +typ =3D { tag =3D "u8" }
> >>> +
> >>> +[[structs.fields]]
> >>> +name =3D "_pad"
> >>> +description =3D "Unused."
> >>> +typ =3D { tag =3D "u16" }
> >>> +
> >>> +[[structs.fields]]
> >>> +name =3D "index"
> >>> +description =3D """
> >>> +IN:  Start index for consuming from ring buffer (if @incremental);
> >>> +OUT: End index after consuming from ring buffer."""
> >>> +typ =3D { tag =3D "u32" }
> >>> +
> >>> +[[structs.fields]]
> >>> +name =3D "buffer"
> >>> +description =3D """
> >>> +IN: Virtual address to write console data.
> >>> +
> >>> +NOTE: The pointer itself is IN, but the contents of the buffer are O=
UT."""
> >>> +typ =3D { tag =3D "ptr", args =3D { tag =3D "u8" } }
> >>> +
> >>> +[[structs.fields]]
> >>> +name =3D "count"
> >>> +description =3D "IN: Size of buffer; OUT: Bytes written to buffer."
> >>> +typ =3D { tag =3D "u32" }
> >>> +
> >>> +[[structs.fields]]
> >>> +name =3D "rsvd0_a"
> >>> +description =3D "Tail padding reserved to zero."
> >>> +typ =3D { tag =3D "u32" }
> >>
> >> Up to here I wasn't able to spot any documentation on what it to be wr=
itten
> >> in which way.
> >=20
> > You're right that the specification is not itself specified. I neglecte=
d to do
> > so to avoid having to rewrite it should we settle on a different markup
> > language.
> >=20
> > Much of your confusion seems to stem from simultanuously looking at a n=
ew
> > markup language and a new schema for it. Let me try to unpick some of t=
hat...
> >=20
> >> I already struggle with the double square brackets. The TOML
> >> doc I found when searching the web doesn't have such. Taking just the =
example
> >> above also doesn't allow me to conclude how e.g. nested structures wou=
ld be
> >> specified.
> >=20
> > The schema is represented by the contents of `spec.rs`. All structs wit=
h a
> > Deserialize attribute (i.e: #[derive(Foo, Bar, Deserialize)]) map to so=
me
> > "table" in TOML.
> >=20
> > When I say "struct" now I mean a struct inside the generator that repre=
sents
> > the input file (_NOT_ a struct representing a hypercall).
> >=20
> > The rules are as follows. The whole file is deserialized in a single st=
ruct
> > (InFileDef). When there's a single square bracket (which I don't think =
I've
> > required yet), that means that what follows is a "table" with the name =
between
> > the brackets. There's several ways to represent table
> >=20
> >     Regular tables:           [foo]
> >                               bar =3D "some_bar"
> >                               baz =3D "some_baz"
> >=20
> >                               [foo2]
> >                               bar =3D "blergh"
> >=20
> >     Inline tables:            foo =3D { bar =3D "some_bar", baz =3D "so=
me_baz" }
> >                               foo2 =3D { bar =3D "blergh" }
> >=20
> > Both of those deserialize to the same thing (it's C for ease of explain=
ing it
> > here, but it's actually Rust in the generator).
> >=20
> >                 struct infiledef {
> >                     struct {
> >                         char *bar; // points to "some_bar"
> >                         char *baz; // points to "some_baz"
> >                     } foo;
> >                     struct {
> >                         char *bar; // points to "blergh"
> >                     } foo2;
> >                 };
> >=20
> > The double brackets are adding one more element to a "list"
> >=20
> > That is. This TOML...
> >=20
> >                              [[foos]]
> >                              bar =3D "some_bar"
> >                              baz =3D "some_baz"
> >=20
> >                              [[foos]]
> >                              bar =3D "some_bar"
> >                              baz =3D "some_baz"
> >=20
> > ... deserializes to...
> >=20
> >                 struct foodef {
> >                     char *bar;
> >                     char *baz;
> >                 }
> >=20
> >                 struct infiledef {
> >                     struct foodef *foos;
> >                 };
> >=20
> > The last bit of relevant information is that you can identify which tab=
le you
> > want to add to with dots. So [[structs.fields]] is saying "Add this fie=
ld to
> > the list of fields of the current hypercall struct".
> >=20
> > The "typ" field is a bit quirky (I have a solution to simplify it), but=
 that
> > uses inline tables.
> >=20
> >> Really, when talk was of some form of IDL, I expected to see
> >> something IDLish (im particular closer to typical programming language=
s we
> >> use). Whereas TOML, aiui, is more an easy language for config files of=
 all
> >> sorts.
> >=20
> > I might've been unclear in the talk. One of my goals is to _not_ define=
 a new
> > language. Or I'll just exchange one problem for two. Maybe I should've =
called
> > it an Interface Definition Schema, rather than Language.
> >=20
> > The key benefit here is that, while the generators can be tricky, the p=
arser is
> > all done and strictly specified. We can experiment with YAML (Anthony a=
lready
> > asked about it). But it really is a matter of getting used to. TOML is
> > fantastic for saving horizontal space. And multi-line comments are neat=
ly
> > organized.
>
> It may indeed be a matter of getting used to, yet I'm afraid your explana=
tions
> above make the situation yet more confusing, at least for the moment. Jus=
t to
> explain my expectations some: I don't really speak e.g. Python or Perl, b=
ut the
> languages are self-explanatory above that I can at least roughly follow n=
ot
> overly involved pieces of code written therein. An interface specificatio=
n imo
> certainly falls in the group of "not overly involved". Yet the (so far sm=
all)
> pieces of TOML that there aren't as self-explanatory as I'd have expected=
 them
> to be.

That's fair. I'll have it translated to YAML for comparison, as  I suspect
it'll be easier on the eye.

>
> >> What I have in mind wouldn't allow for descriptions, yet I'm not sure =
that's
> >> relevant. The description ought to, first of all, live in the primary =
source
> >> (i.e. the IDL itself) anyway. Commentary there might be possible to ex=
tract
> >> into proper (machine generated/derived) documentation.
> >=20
> > Not sure I follow, these TOML files _are_ the IDL itself.
> >=20
> > The descriptions here are propagated to the generated code, so they are
> > infinitely helpful when reaching the type via e.g: cscope, LSPs, etc.
>
> Yet they are full-fledged attributes, when normally I'd expect such to be
> comments (thus clearly separating "code" from "non-code").

A comment in TOML (or YAML) would stay at the markup because the parser wou=
ld
never see it. It must be an attribute so it's brought to it's intended
destination (the .h/.rs files). While it'd be desirable to have a connectio=
n
between the spec files and their generated counterparts at the LSP-level, I=
'm
not aware of any way of doing so. And by and large, unless you're actively
adding another hypercall, you really shouldn't care.

>
> As to propagating to generated code - hmm, yes, for use of cscope and ali=
ke
> it may indeed be helpful to propagate, if such tools can't associate back
> the generated files to their origins. My general take though is that
> generated code is something you look at as a human only when actually
> dealing with their generation. For all other purposes one would prefer th=
e
> "original" source.

I'd say it's the other way around. I only look at the source material when
working on the generation. In general, I care about what was generated (if
anything, because that's where cscope took me while traversing the tree.

Of course, all this assumes all information in the source file has been
propagated to the generated file. And that's the case here.

>
> >>> --- a/xen/drivers/char/console.c
> >>> +++ b/xen/drivers/char/console.c
> >>> @@ -42,6 +42,8 @@
> >>>  #include <asm/vpl011.h>
> >>>  #endif
> >>> =20
> >>> +#include <public/xen.h>
> >>
> >> Why would this be needed all of the sudden?
> >>
> >=20
> > Because of the new XEN_GUEST_HANDLE_64(uint8) type. The macro is quite =
ugly and
> > requires being declared ahead.
>
> How's that different from the earlier XEN_GUEST_HANDLE_PARAM(char)?

I'll have a go at removing it. I wrote that a while ago and I no longer
remember the specifics of why it was required.

>
> >>> --- /dev/null
> >>> +++ b/xen/include/public/autogen/sysctl.h
> >>> @@ -0,0 +1,35 @@
> >>> +/*
> >>> + * sysctl
> >>> + *
> >>> + * AUTOGENERATED. DO NOT MODIFY
> >>> + */
> >>> +#ifndef __XEN_AUTOGEN_SYSCTL_H
> >>> +#define __XEN_AUTOGEN_SYSCTL_H
> >>> +
> >>> +/* Read console content from Xen buffer ring. */
> >>> +struct xen_sysctl_readconsole {
> >>> +    /* IN: Non-zero -> clear after reading. */
> >>> +    uint8_t clear;
> >>> +    /* IN: Non-zero -> start index specified by `index` field. */
> >>> +    uint8_t incremental;
> >>> +    /* Unused. */
> >>> +    uint16_t _pad;
> >>> +    /*
> >>> +     * IN:  Start index for consuming from ring buffer (if @incremen=
tal);
> >>> +     * OUT: End index after consuming from ring buffer.
> >>> +     */
> >>> +    uint32_t index;
> >>> +    /*
> >>> +     * IN: Virtual address to write console data.
> >>> +     *
> >>> +     * NOTE: The pointer itself is IN, but the contents of the buffe=
r are OUT.
> >>> +     */
> >>> +    XEN_GUEST_HANDLE_64(uint8) buffer;
> >>> +    /* IN: Size of buffer; OUT: Bytes written to buffer. */
> >>> +    uint32_t count;
> >>> +    /* Tail padding reserved to zero. */
> >>> +    uint32_t rsvd0_a;
> >>> +};
> >>> +
> >>> +#endif /* __XEN_AUTOGEN_SYSCTL_H */
> >>> +
> >>
> >> If this file is auto-generated, why would it need committing? And yes,=
 there
> >> is the connected question: Will everyone then need to have a Rust comp=
iler
> >> available?
> >=20
> > Committing it is required precisely so that no one needs to have a Rust
> > compiler available.
>
> How would that work? If I make a change to what currently is a public hea=
der,
> I'd still need to have one available, wouldn't I?

If you want to make a change to the public ABI, then yes. But that's reason=
aly
rare. What I want to avoid is _everyone_ needing a Rust compiler just to bu=
ild,
or indeed pushing the Rust dependency as a build-dependency on every
downstream. That might come to pass, as the efforts to Rust-ify the toolsta=
ck
come to fruition, but we're not there yet.

As for one-off changes, it's actually fairly easy to determine what a new f=
ield
in the spec would look like in the final file. You could even write it by h=
and.
CI will validate the C headers match the spec outputs.

When they don't match, CI tells you the diff.

>
> > The last patch in the series checks the generated code
> > matches the specs byte by byte. It has the nice benefit that you can gi=
t-grep
> > for it and tags work even without compiling first. You also get all
> > architectures upfront and it's a lot easier to review changes to the ge=
nerator
> > because CI will scream to you if the outputs diverge.
> >=20
> >>
> >> Nit: For anything that is committed, it would be nice if those files w=
ere as
> >> tidy as possible style-wise. Most of the above looks entirely okay, ju=
st
> >> that there is an unnecessary trailing blank line.
> >=20
> > I did go out of my way to prettify the output.
> >=20
> > The trailing newline was intentional to make it C++03-compatible. I can=
 get rid
> > of it, as it doesn't matter a whole lot.
>
> I haven't followed the development of C++ very closely; my experience wit=
h it
> is mostly from far more than 20 years ago. What's that C++03 compatibilit=
y
> requirement?
>
> Jan

It's really unimportant. -Wnewline-eof, I think it was. There's a pedantic
paragraph in the C++ spec from 2003 that states that if a file is not
newline-terminated it's UB to parse it. I tend to newline-terminate my file=
s
for easy `cat`-ing them together in the rare occasions where that's useful =
for
something.

Regardless, it's trully unimportant, I'll just get rid of that final newlin=
e.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 13:21:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 13:21:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843714.1259323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFvUq-0006qE-OR; Tue, 26 Nov 2024 13:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843714.1259323; Tue, 26 Nov 2024 13:20: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 1tFvUq-0006q7-Kj; Tue, 26 Nov 2024 13:20:52 +0000
Received: by outflank-mailman (input) for mailman id 843714;
 Tue, 26 Nov 2024 13:20: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFvUo-0006px-Sx
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 13:20:50 +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 3e4a2471-abf9-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 14:20:45 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-434a14d6bf4so15614095e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 05:20: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-4349cf7e4fesm94912855e9.22.2024.11.26.05.20.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 05:20: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: 3e4a2471-abf9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmEiLCJoZWxvIjoibWFpbC13bTEteDMyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjNlNGEyNDcxLWFiZjktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjI3MjQ1LjQ4NDgxNSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732627245; x=1733232045; 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=Ie0mWLpOW0oUrSVSj+ll90vwMo8ta7P223PIY0zLVC8=;
        b=bIrQsMtspN7t1IJhMTM4R7yus5V0LXxjNjXm4rxh7I2ubnOOn+Xoa3qKC8a3JIKg56
         G0a89IUWvheA4gqttSRP+4SoFfRhcSLWgNgrnk3x9pIlZdoVryVbOCOhwJmX9Dzt2FU5
         d6AjjF5FqKgQiI8ax8CGvDDsGTGKwCvI0xPt7UepgroajBdTbopB15O9uIJKFKN1tljB
         loN4xlzzKWisnr26UN2GNa8tx7XzyzXw7qHbgf+ddTMQoUn0CwPaJ7OUulJavNP+KAA8
         vhHxA99sRAwzY5Xl/ESpnLAU8HyIHD3GCASF1Kcl8uOEdo2pPcZHUmXjuzP5cjx6mFGV
         7ZkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732627245; x=1733232045;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ie0mWLpOW0oUrSVSj+ll90vwMo8ta7P223PIY0zLVC8=;
        b=NEmqTGiI2QyWIaq6iRu7HtlWA7BnRypo4ssFiqy4G/1qGDHV+1LgC+BVv2U8TOxg8f
         P9MCxb7SPWS3jTQgOfZWncbKs4Egb//hgJZ0eMAxUkBH0jBZUl3GFs8EPEvrIivIJZW2
         tMKbNm0pwJ4L/a1Ru4AYy/k4WkG0A2fbhPstj1aMC9KwyOwQOrIZyRWU2QiSnJGOdAi5
         ugSXdw5cMfSxL+9O6thicCub6zlIxbQ8uRwEwYAYQMITlOgEvkqE+Xf+NK1RTRRxsrVy
         dqti8QIORpT419Nt/AmlfU5//UKdLyXsXd8hJGllJn67WrnhrjjDMs2BZB73hVigftXh
         kQRg==
X-Forwarded-Encrypted: i=1; AJvYcCW73mDPwzkRdxwaq/yiQBsGNTA8aUfOuhbVDcRYztWlSPJ5nvTE0XVKjDDuyw4XRaC1wFkgzvF8vGY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9o8F7Zd866Y68LnpOHdm6xw/wAc2/IlNe44KhnRBcTD17MnFF
	XkXop570Ek+D1LsgIHOwimEx06MovFvkYiTzIemeYqveTOVkd45UGD0dixHCZw==
X-Gm-Gg: ASbGncsCIKZclyUe4zMd7Ax9eSipoN+rK0DATbVi9NWERMVN6AqBe+953wvbY3Q5IcJ
	GIdNO1eW8K7IxXNmHhMLy9f53PvsVqwJ9rPQ2IwiIAwSHDLrb4umWNC/xvdABKld7CTl8dl8Njj
	BgsFnHuE+ln3hNeTewGmWohFuYdsOwvPO2RULUiIzVrLaMurMgmkZZHuANYYKkmF9x51ja4THQS
	02mMkL1uH9KyLcuGciwc8+/uMVvE8gw3HxEcxoKmG/N87a6UFf2yhHUNDI3gVxoZYoBvJPB0lHC
	OwOA0YZtTGZJpKsfkxwTtZ02WM9JkQrKKys=
X-Google-Smtp-Source: AGHT+IHHjCo0uYOwKMuTSNPxSjwrneaiW25NBfmXX4UwudpaXyKhJUzlZAxOhdpeS8Mr2v+jZjoDLg==
X-Received: by 2002:a05:600c:35c4:b0:431:93d8:e1a1 with SMTP id 5b1f17b1804b1-433ce4c1f1bmr143799315e9.27.1732627244765;
        Tue, 26 Nov 2024 05:20:44 -0800 (PST)
Message-ID: <e40ed7c2-6111-468e-8655-884953bd33e7@suse.com>
Date: Tue, 26 Nov 2024 14:20:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@cloud.com>
 <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
 <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com>
 <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com>
 <D5W3YYDE2F09.IHJMRBUBE6EV@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: <D5W3YYDE2F09.IHJMRBUBE6EV@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2024 13:27, Alejandro Vallejo wrote:
> On Tue Nov 26, 2024 at 9:40 AM GMT, Jan Beulich wrote:
>> On 25.11.2024 19:51, Alejandro Vallejo wrote:
>>> On Mon Nov 25, 2024 at 12:05 PM GMT, Jan Beulich wrote:
>>>> On 15.11.2024 12:51, Alejandro Vallejo wrote:
>>>>> Describe sysctl/readconsole as a TOML specification, remove old
>>>>> hand-coded version and replace it with autogenerated file.
>>>>>
>>>>> While at it, transform the console driver to use uint8_t rather than
>>>>> char in order to mandate the type to be unsigned and ensure the ABI is
>>>>> not defined with regards to C-specific types.
>>>>
>>>> Yet the derived C representation imo then should still be using char, not
>>>> uint8_t.
>>>
>>> There's 2 issued addressed by this patch.
>>>
>>>   1. The removal of char from the external headers (and the Xen driver).
>>>   2. The replacement of the existing struct by the autogenerated one.
>>>
>>> (1) wants doing irrespective of (2). char has neither a fixed width nor a fixed
>>> sign. Which is irrelevant for ABI purposes in this case because what we really
>>> meant is "give me a pointer" in this hypercall, but it may be important in
>>> other cases.
>>>
>>> IOW, char should've never made it to the definition of the public ABI, and I'm
>>> merely taking the chance to take it out. Happy to extract this patch and send
>>> it separately.
>>
>> Well, work towards fully getting char out of the public headers may indeed be
>> worthwhile. Otoh with char being the basic addressing granularity, I think
>> the ABI is pretty much tied to sizeof(char) == 1, imo limiting the
>> worthwhile-ness quite a bit.
> 
> Let me put it another way. If I were to create a separate patch stripping char
> and using uint8_t instead, what are my chances of getting an Acked-by? Or not a
> NAK, at least. (there's other maintainers that I need that from, but one step
> at a time).

That would to some degree depend on what other maintainers think. Not a straight
NAK in any event.

>> Signed-ness of plain char doesn't really matter as long as it's used only for
>> what really are characters (or strings thereof). And that looks the be pretty
>> much the case throughout the public headers.
> 
> Maybe. Still, as a general principle caller and callee ought to agree on size,
> alignment and sign for every type. I'd rather not make exceptions for that
> invariant unless truly well motivated. And in this case it's a case of
> requiring trivial non-functional changes.

In how far they're non-functional will need to be seen. You also need to keep
consumers in mind: They may face sudden type disagreement that compilers may
complain about. Yet "stable" for the public headers means not just the ABI
itself being stable, but updated headers also being usable as drop-in
replacements for older versions.

>>>> Nit: For anything that is committed, it would be nice if those files were as
>>>> tidy as possible style-wise. Most of the above looks entirely okay, just
>>>> that there is an unnecessary trailing blank line.
>>>
>>> I did go out of my way to prettify the output.
>>>
>>> The trailing newline was intentional to make it C++03-compatible. I can get rid
>>> of it, as it doesn't matter a whole lot.
>>
>> I haven't followed the development of C++ very closely; my experience with it
>> is mostly from far more than 20 years ago. What's that C++03 compatibility
>> requirement?
> 
> It's really unimportant. -Wnewline-eof, I think it was. There's a pedantic
> paragraph in the C++ spec from 2003 that states that if a file is not
> newline-terminated it's UB to parse it. I tend to newline-terminate my files
> for easy `cat`-ing them together in the rare occasions where that's useful for
> something.

Unimportant or not - there must then be some misunderstanding on either my
side or yours. Even the assembler insists on a final newline, as does plain
C. Yet that means one newline, not two (i.e. not a trailing blank line).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 13:25:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 13:25:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843723.1259333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFvZl-0007QW-9k; Tue, 26 Nov 2024 13:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843723.1259333; Tue, 26 Nov 2024 13:25: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 1tFvZl-0007QP-6F; Tue, 26 Nov 2024 13:25:57 +0000
Received: by outflank-mailman (input) for mailman id 843723;
 Tue, 26 Nov 2024 13:25: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFvZj-0007QJ-SE
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 13:25:55 +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 f50782bf-abf9-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 14:25:51 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5cfa9979cd1so9491667a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 05:25: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
 4fb4d7f45d1cf-5d01d3b0b1fsm5078579a12.32.2024.11.26.05.25.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 05:25: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: f50782bf-abf9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmUiLCJoZWxvIjoibWFpbC1lZDEteDUyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY1MDc4MmJmLWFiZjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjI3NTUxLjk2MTY0Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732627551; x=1733232351; 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=o8kYuxFNQRDbiz+DaCgINnkyhg1GQ5TJaB7QWhGD2bQ=;
        b=NS4hDZkTyyqPUPFbggdSfspyJd2BzZlHXNLu1cwirdkzJMDZseezlrtAqg+aNnWzrW
         68yAApXHCwD93Ku6oWy+uzUqH8G6VDQ6zPKJLaDTMrCF7E0bLCZ7mg6wnELMR0/eG56S
         y7cdgsQvXNevVeaDqGlTibr0KokJXzaZu4n0oro81u8OVkq9RfwLwKAO3tqzjOvWf3Ra
         d6mXhXDuMuY3yAVZm0982f67PCvFkDgPmfrJIDTHnIIUHmdx39iLXtFMmnUWvE0vQ4NE
         MP0xR8b/tMJcOyrHji42n9AD8XFvyUgF064ex0OM5IqpINudri/OX1sG7SCI6HGIAKjI
         bgzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732627551; x=1733232351;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=o8kYuxFNQRDbiz+DaCgINnkyhg1GQ5TJaB7QWhGD2bQ=;
        b=PPwypvZYOJzfbbxUVkI15FLBSOnUVF2Iaj8akVcX2kImxf0hGNB6mppJ5Cdf4rb7Kw
         OEUdim9TM6fkkuzJZfwSyYWL/rus8mWV8fn6G3NgCvHgkSP4yV1J5Qvs8fHPGhbjmZrT
         +9eKrzN9oTNpLpQcANYg0qlgogeF0vt2061FcZF+yRG8cWNMlJuFXjSj4laXavJRx3aG
         4UcdMCjrtgbLGG5zvDtMszO34YCgTwkjMB2UcjGp77wz5wUtkbMJv6UPUNPkkITD8HpW
         hJuu/3yXGMOKYMEAIuqw24P/DLc3PBzjhKztS5CN9vAvKKar9MeQvRWT5drehJuVeNq+
         0FJQ==
X-Forwarded-Encrypted: i=1; AJvYcCXxZh/JCbOX90KIC7DwRnnCoODcGahg66Isr8ug0UD1FwjBwq1rmIpDO2Z4Cjux8s7KF06Cotx22VM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6P+IVgOyTiR8WqTJLt7lvG4b1n9UPJ44d15OsrFZT34hh3Jl9
	u4FAZFJiVVT+uWzlHPoE2KhYXtyvTiqtlvlko8bRAY+Ag2PdAXBwfO0wVtvufA==
X-Gm-Gg: ASbGncs6XioSNjsN1DhJGGWec7zyi3BIvcCfXtIiy49Y2jiyIEEaCbMP+EQfe7YvT30
	ywsrB8UePnZxMPdfACJhRi9QM4sA0c9sgD9hkflVZr8zU6ixKKJGqDIGvwHRj9RXPiKB14zDnme
	oySBxdPPQFjNhPFTnhxYZfS6JdqlaJVaWYirOJ1No11h2gkEJ+Zi/1dShsveIbTQdUvOfJ1yOZS
	pnOZco1f2HSBVbwc+2wPhwyF3QG9jwaMfr44CbbkiOI6hzx+HrGGvglEAQXxzGz4qgfJ4hI4WsR
	bFEii9ddamFkm2dHSlJ8qsEHOUzbduLtF9k=
X-Google-Smtp-Source: AGHT+IHhK1G7vMQoUisVqIxXycGTu2Kq7vWdHHvrOososG5qWcOL1a78DEHwJB81pLHC6GicitiQzw==
X-Received: by 2002:a05:6402:2355:b0:5d0:771e:36de with SMTP id 4fb4d7f45d1cf-5d0771e3794mr1414635a12.7.1732627551313;
        Tue, 26 Nov 2024 05:25:51 -0800 (PST)
Message-ID: <fe4d16ad-a0e4-4948-b268-c48071cbf971@suse.com>
Date: Tue, 26 Nov 2024 14:25:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/3] xen/riscv: introduce setup_mm()
To: 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>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1731672668.git.oleksii.kurochko@gmail.com>
 <1ebb209f191e3e2323840acfe3714a597aa7be6c.1731672668.git.oleksii.kurochko@gmail.com>
 <fb5c12b0-5bc1-4129-a4e9-9716ffd4685c@suse.com>
 <360ce2bf4c418cf8f5c4318435ca3308477a07b6.camel@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: <360ce2bf4c418cf8f5c4318435ca3308477a07b6.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 12:57, oleksii.kurochko@gmail.com wrote:
> On Mon, 2024-11-25 at 16:49 +0100, Jan Beulich wrote:
>> On 15.11.2024 13:47, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/config.h
>>> +++ b/xen/arch/riscv/include/asm/config.h
>>> @@ -90,6 +90,7 @@
>>> Â #define DIRECTMAP_SLOT_STARTÂ Â Â  200
>>> Â #define DIRECTMAP_VIRT_STARTÂ Â Â  SLOTN(DIRECTMAP_SLOT_START)
>>> Â #define DIRECTMAP_SIZEÂ Â Â Â Â Â Â Â Â  (SLOTN(DIRECTMAP_SLOT_END) -
>>> SLOTN(DIRECTMAP_SLOT_START))
>>> +#define DIRECTMAP_VIRT_ENDÂ Â Â Â Â  (DIRECTMAP_VIRT_START +
>>> DIRECTMAP_SIZE - 1)
>>
>> While it is of course okay to have this value be inclusive (matching
>> FRAMETABLE_VIRT_END), I'd like to point out that
>> - on x86 *_END are exclusive (i.e. there's some risk of confusion),
>> - RISC-V's DIRECTMAP_SIZE appears to assume DIRECTMAP_SLOT_END is
>> Â  exclusive, when from all I can tell (in particular the table in the
>> Â  earlier comment) it's inclusive.
> Agree, overlooked that DIRECTMAP_SIZE is exclusive,  the value should
> correspond to the table thereby DIRECTMAP_SIZE should be inclusive and
> defined as:
> #define DIRECTMAP_SIZE (SLOTN(DIRECTMAP_SLOT_END + 1) -
> SLOTN(DIRECTMAP_SLOT_START))
> 
> and then DIRECTMAP_VIRT_END could be left as it is defined now:
>    #define DIRECTMAP_VIRT_END      (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE
>    - 1)
> 
> Regarding the first one point. Do you think it would be better to
> follow x86 approach and have *_END to be exclusive? Then
> FRAMETABLE_VIRT_END should be updated too?

I think it would be better if all ports agreed in this regard. That agreement
may also mean that x86 needs changing. Arm's mmu/layout.h also specifies
DIRECTMAP_VIRT_END as inclusive, for example (and, because of aliasing, also
HYPERVISOR_VIRT_END).

>>> @@ -25,8 +27,12 @@
>>> Â 
>>> Â static inline void *maddr_to_virt(paddr_t ma)
>>> Â {
>>> -Â Â Â  BUG_ON("unimplemented");
>>> -Â Â Â  return NULL;
>>> +Â Â Â  unsigned long va_offset = maddr_to_directmapoff(ma);
>>> +
>>> +Â Â Â  ASSERT(va_offset >= DIRECTMAP_VIRT_START -
>>> directmap_virt_start);
>>> +Â Â Â  ASSERT(va_offset <= DIRECTMAP_VIRT_END -
>>> directmap_virt_start);
>>> +
>>> +Â Â Â  return (void *)(directmap_virt_start + va_offset);
>>> Â }
>>
>> If you added in directmap_virt_start right when setting the variable,
>> you'd simplify the assertions. The unsigned long arithmetic is going
>> to
>> be okay either way. (The variable may want renaming if doing so,
>> perhaps
>> simply to "va".)
> 
> Just to be sure that I understand your point correct. Do you mean the
> following:
>     static inline void *maddr_to_virt(paddr_t ma)
>     {
>    -    unsigned long va_offset = maddr_to_directmapoff(ma);
>    +    unsigned long va = maddr_to_directmapoff(ma) +
>    directmap_virt_start;
>     
>    -    ASSERT(va_offset >= DIRECTMAP_VIRT_START -
>    directmap_virt_start);
>    -    ASSERT(va_offset <= DIRECTMAP_VIRT_END - directmap_virt_start);
>    +    ASSERT(va >= DIRECTMAP_VIRT_START);
>    +    ASSERT(va <= DIRECTMAP_VIRT_END);
>     
>    -    return (void *)(directmap_virt_start + va_offset);
>    +    return (void *)va;
>     }

Yes (and at this point you could even fold the two assertions).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 13:26:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 13:26:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843728.1259344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFvaE-0007tP-JB; Tue, 26 Nov 2024 13:26:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843728.1259344; Tue, 26 Nov 2024 13:26: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 1tFvaE-0007tH-Ds; Tue, 26 Nov 2024 13:26:26 +0000
Received: by outflank-mailman (input) for mailman id 843728;
 Tue, 26 Nov 2024 13:26: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=yuIc=SV=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tFvaD-0007QJ-82
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 13:26:25 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20630.outbound.protection.outlook.com
 [2a01:111:f403:2613::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 060f82cb-abfa-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 14:26:20 +0100 (CET)
Received: from AS4P189CA0023.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5db::11)
 by PAWPR08MB9065.eurprd08.prod.outlook.com (2603:10a6:102:332::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 13:26:16 +0000
Received: from AM4PEPF00027A62.eurprd04.prod.outlook.com
 (2603:10a6:20b:5db:cafe::4f) by AS4P189CA0023.outlook.office365.com
 (2603:10a6:20b:5db::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Tue,
 26 Nov 2024 13:26:16 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A62.mail.protection.outlook.com (10.167.16.71) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12
 via Frontend Transport; Tue, 26 Nov 2024 13:26:15 +0000
Received: ("Tessian outbound 02553984e049:v514");
 Tue, 26 Nov 2024 13:26:15 +0000
Received: from Lb1ad3b11f78d.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 61108D7A-9EBA-4D4D-B0C2-062119AA7E6D.1; 
 Tue, 26 Nov 2024 13:26:04 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lb1ad3b11f78d.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 26 Nov 2024 13:26:04 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 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.8207.12; Tue, 26 Nov
 2024 13:25:59 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8182.019; Tue, 26 Nov 2024
 13:25: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: 060f82cb-abfa-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjMwIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjA2MGY4MmNiLWFiZmEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjI3NTgwLjQ4NDA1OCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=RKWYxGUrftUkAXrfOQvm0vANjSLhqA6ksQXKQF8VxoG++TH0s4BxabHlHgCgMcYtUsCW2vOHoxvrCq6h18lrkrpv8B0RniyJS583a7Zwvxr7feDbkAvfHfkXhS7QA5wYgJJOQloNMcS/p/HHR3Sul8/gmJ3JRuBWVc8J9ZTZS8F0+BcaSXEnrH8BA1vOeK8VJA9pJB3ThC7i4Ix9dXGkWJUW9CjPwdZmYwLyX5Rd1o2h37dFEJRY0PxqqBSRpWOEI3iMk36G4BHBRtFUdLDNo+cvx57ywpJro3k4H84vr5PUR0IP91gU+6VJ3SWCMMDBWMbOxya+OVoi6BAInwj6Pw==
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=WF12mdFPRycqPo7kSem9k2ZQ7xAP9QoZLPj9I1A8qok=;
 b=vtTwppB8kw+FDJgS323WQ/Mfm34hdxRJRCj5qlaZ0YuP7Uihytsk4nV1hdqYfzF6r+gkNUUwmmeGkBR/sRFah8UiQFJQsum2KJ3wvf/psBYHSvHol+sFeOLBlfwc9tjMYFn9AONLq6IO7Mn1f04JeoRRq+EyyI3lByhbOQJo7542DBqmnpgr79u/2AbLzrKa11X9spaRNVYz0eOlVZvu8E4+yzX2brZeGQK3jvOoUC3NkMH2ICTf4iWz/6Am5ulOccdyjovc1YNZg/HJwQUrlUA3Yi9xWsWtMxMpU+diOPlBdOBkSngf0k6hRYSXkzgQBeWtueYEw8nqfdyHKZpMyw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=WF12mdFPRycqPo7kSem9k2ZQ7xAP9QoZLPj9I1A8qok=;
 b=Fir8MTj5wyPzZ3iZ1zKHY+U/Zl2CS8QOKFrmbM8rj9gEnnpiWjje0UhBQBSHDLImMLRJ32AO7VZ4VHJBxZHfx6SNZLbZcVYM7i8yXaVYrF+OCpp+8tyTf53JWRBZBgBsPie4at/4VOWyIVe+kmHkkYmAX16MciPNxD3LTax5WcM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 132b578908f662db
X-TessianGatewayMetadata: sNt8+hzguNfLKt/soRs0FNu1kyo2pZz2FqxMTtXJF+RKQIliocndmJiXFBDCKfLEUX0dkhuEa222sz6A1KhAoVay5GLAar6MsIOqGASFWLwAZaloVAj0MsV295N60qUqMn2sqDABHcGva3sipEVVrxBzfPFPbFEBb3cgx4sNPHg=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Suqi0kYHXobYoiJLpadZ3+Rsn+dsldbq0xumXqOJK3eEH1ZUv0gHeXSabl7ei+Wk5oZ6UycbQfHBUI/ObOdkmrIr5M4WhH2UhVQ0NT3lBcVB7BJx3vX13uclWl1QfVBPfd6QasGOdUEqaO7ioYNj0pxPES9radWVbwbuWhXELT7pogpmtmpeLDm3ozXVYGq/7/A2RIJxN40XKaK1NnxHzE5nqPZkOTIlJUE0twLMjqmNO6ZzdM8YMtN5pIXHQWytCuWZkPIJ7HbObf0dmF/PAzd+svSySqBui4Hg/z7/FOvcP2JkPaOUkKQSdlOKassxsSg5akhaZ19i9ZP9bK7ogg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WF12mdFPRycqPo7kSem9k2ZQ7xAP9QoZLPj9I1A8qok=;
 b=FPXv7Y4hcmeQMOdW1JgoueNSlf3cFU/bpnb33cO8Gk0Oqd7Dom/XGQIKHTe24aagcVnvucovZZQiFfgCwjf6uGqwM9A9i20gm760O3qD6MTPi+G4DzzAMsJ/7pIL/Xi8j1Sgtr0XPxfS9FaFGSxtgzAJ8g4mohE7BkWpGvky4T6aLkaepYOV1xreIbkmeqYHKsxvFjttaxQJ+Ku+DBM8exiq5mges4JWuWBB6OWRUGYPkQYRb0mku5dmmeCXXQ658+hwGvVzE2kIcZ1h8+BspiBcEjiM/9w+AT+nPZwdyhqvb48I5jBSsgAlAt5yDQprMiuocs9kPtoP7ZZ4P0RRCA==
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=WF12mdFPRycqPo7kSem9k2ZQ7xAP9QoZLPj9I1A8qok=;
 b=Fir8MTj5wyPzZ3iZ1zKHY+U/Zl2CS8QOKFrmbM8rj9gEnnpiWjje0UhBQBSHDLImMLRJ32AO7VZ4VHJBxZHfx6SNZLbZcVYM7i8yXaVYrF+OCpp+8tyTf53JWRBZBgBsPie4at/4VOWyIVe+kmHkkYmAX16MciPNxD3LTax5WcM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Penny Zheng <Penny.Zheng@arm.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>, Wei Chen <Wei.Chen@arm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Thread-Topic: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Thread-Index: AQHbOmE/JeWd4mQRXU6E1FRNAbLoQLLIOm6AgAE0ZQCAAAS3gIAAJQWA
Date: Tue, 26 Nov 2024 13:25:59 +0000
Message-ID: <7761CEB9-2304-4588-9ADE-C81B9A5E536C@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-5-luca.fancellu@arm.com>
 <ca91b717-47c3-4f92-af6a-cb740ef6e91d@suse.com>
 <BE895863-B07F-42C2-BD44-D0A1E6150DC4@arm.com>
 <e5f0b9e4-80ab-4cf5-8745-4cb83cfe4c7d@suse.com>
In-Reply-To: <e5f0b9e4-80ab-4cf5-8745-4cb83cfe4c7d@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|PA6PR08MB10419:EE_|AM4PEPF00027A62:EE_|PAWPR08MB9065:EE_
X-MS-Office365-Filtering-Correlation-Id: 86bcbe35-9b4b-4ed0-6763-08dd0e1de796
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|1800799024|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?MFRBaStJeG5uYzIzRXJpd1V4TjVoT202b1BPTEw2NzRxNndLOFYvS2VTaFJ2?=
 =?utf-8?B?cWFxY3pJL25XdkRESXhoZnd6aEF2NjZwN24vdk53SlAxWFR2NzJVd1RYRi9v?=
 =?utf-8?B?SWZScTJDYlloYmhWQkIwbTJkS3NmTXlkekxBVld5VHh0UmFMSVozNXg3NDRi?=
 =?utf-8?B?STZzeEZRY2xibHBJSlA4L014SFlsdzFrVFp1TXdlbjhJOStxUjdGblZCWlVk?=
 =?utf-8?B?MGNrS2t3VG1QaEFxM2QwelEyMzY2cFF6Vi9DWVRybDd5YUJONEZmYlhLRkw2?=
 =?utf-8?B?NXdxS0xsVjBjQnEvTVlJRnBEcFJPTlhzL01vamQ4cjB6RVcxRWJEM0tocUIy?=
 =?utf-8?B?SWMzcDkwV3FOZE02dzdDR1Ruck0vMm9SQUFmVnlqMkJhNmFXdTkwMzdFc0hl?=
 =?utf-8?B?SDRsNWR5Q3liZzdoYkFSS2NFY0gyR1NBa0NYVFlXWnpmSzRSck5XK2VMN0dH?=
 =?utf-8?B?UHZWc1VMTDA0UXpVYXNBQkovQlJUY3VFZGJxOFA1OEdCQ2xacnlaeWZCblFM?=
 =?utf-8?B?YUFJdzRNRHhaMng2b1ZQeHkvbk93NDQyQ0FkR2tGcVh3QWp0SUgrbTdWZzRL?=
 =?utf-8?B?NW5lNUhGcGNwTk1NbXVmdnNEekU4ODNLU1hGc3lMbmp5dlRURDhtU2J1TGxL?=
 =?utf-8?B?RENmam9USnJqbDFuc0ZDU3VpWmFxcnZ0TjlNanM3N2E3MnlnOUJsaUtjN2pH?=
 =?utf-8?B?UFNidlltbWVheGQyTWcxYVQ3OUFZcWErZ2dsc3pzc2VJcTJ3OWFaNStBdlVH?=
 =?utf-8?B?VWcralVVT2hXYkJnRzZFYmI1UzJjQUdlcDA5U0Z6eG5mRm1mVElOSEdWbnNo?=
 =?utf-8?B?NEYxWWxJOGZDamtTY2o0MVhYa0R2S2hGSWJpaWdXYmsrYm5Fc0JuTHBRNHAz?=
 =?utf-8?B?NTlVUCtXcUs0Q0dNNVpDYWlHSm9MYktYRWdaUDRBOU44bERSRk91NnV0TVRl?=
 =?utf-8?B?OEZOVE5LOWVwUDFwVEs2L29xYnhqQ05OeVlnRnM1aWU0VUlnRlVwMFB4NS9S?=
 =?utf-8?B?V1h2dWF6djFiN0I5R2QwWGYyeXdCYzd5eVdHQ05zSGhyL0RKV3ZQVTQwZUYy?=
 =?utf-8?B?YkpySkFSVTNERklaUTN5bzF0L0dVR2FDbDIwdFhrN0F6bXB3K09KZkFQR1lz?=
 =?utf-8?B?U056QTZ6U2JMUFVDQjA0QjFZRFByWlJYUWlmb3RJYzl5VFNnNW5uZHVlRExm?=
 =?utf-8?B?L2M0RHdFQThqWk9aelJURHQwK2kwdkJCcGFZZGZhUkNGSmI3ckYwMldpMFAy?=
 =?utf-8?B?VFNEeEJ6R1I3OHV0SUVOeDd6Rmh3ZkhqMDBuZTI4VFo0NHdnVVVUWHBHd3hk?=
 =?utf-8?B?UEpMcDdvZU9jZTVTUXpjeFg2SFVOckFqTC8yb0pZcFlQbEF3UEdlb3YxU2Nn?=
 =?utf-8?B?QW91Q3BDYUU2RWFRVFhHeURUQmdWY1BzNFJqbjhzRTA2R3ZpdWVYV2dVM2xy?=
 =?utf-8?B?eTZXSld3M3prT2RmMDJpSktoV296YlFQdXQyVENHYkdraFdYZzR2ejhKVFZy?=
 =?utf-8?B?ZnRvcUlldWZQSkJLL2ZEdFg3ZG5UYmJJcjA0K2tBNEQvczcwOWFnbTJhR3Rl?=
 =?utf-8?B?U1k5SDFuZW83UGMwVExOeFFwVDdIa0tMOFJGZjM1Vjk0NmdGZTBEcGlsUUJX?=
 =?utf-8?B?MFltVVJjOWxqakNocnRrWGxsYzhveDlRNGZ0T09LcndaNlUvQ3ZhSWU3L0hI?=
 =?utf-8?B?RmxUMWtWYStOVWQzTXp6a28rQkVLK0hwSWZldnN0R2I2OVBuTU9ndlE0Nk5k?=
 =?utf-8?B?UlFsNWpBQXlObWhQaVE3b2xsWlJsWnNqRUN5L0xNM2JockNoYXJ4Zi8vdjdZ?=
 =?utf-8?B?VThKb1RVODk2WDFjaFFpa0J3UGplTjNJSUFLUXFzSlNmdWV0K2wyblorMmJT?=
 =?utf-8?B?VE11VnNoSVh2S1R6MzFjeGJBUFhGaUdnZUdRRkoxQlNXTmc9PQ==?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <75709E559CC3034DB8D8E9480D80552F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10419
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A62.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0ff5c5d7-48f0-4b9d-c0a9-08dd0e1dddc0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|82310400026|1800799024|14060799003|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eFdRTmNWbmgyNmpNUVorU0xTMEt6cThBYkJYUzBRS2FYR0xwUnVVTXNYUDBT?=
 =?utf-8?B?bUJFS0pYektLUE9TdmEzTy9JSW9mYURxRnVJUUxncTJHc2JHMFlGbHpTRmJi?=
 =?utf-8?B?bnBaZERjWUZ2WlptQmpaZ0lsMWU3MkUrZE54cmEzbEhxeWpBSmxaUFM3dFp4?=
 =?utf-8?B?THJOa3FyRlY2Yy9IbW5MZStjOUpwbzF0QkZhMHNabmpPUi9tWlF4NWdUUU1m?=
 =?utf-8?B?V1NtdnpPR2xJdW1tMHNSQ2QzVmdjZjRYc0p1b2p4Yk8zVWR5K0JqVk13ejlB?=
 =?utf-8?B?NENFSDhmaW05aytycWNRQ3VvZ1hpY01LN2RBZDRIQ3V1ZC9vVVV3M0UyNEd5?=
 =?utf-8?B?TzdYWk1aZkF1NEtER1VqNVBHSW1McU16NEgyNWVDUGt3M2V1NDg1SW8wQ2pC?=
 =?utf-8?B?RkYxWklsczArWm52cnQ3eEJhNmFScUtaWWlLSkxQd2RjbVp2TGQ5aWxCUWRM?=
 =?utf-8?B?WU1TQnBTTVdqQ3RyN1ByUHEySUpCVEI3TmYwbWhHRVJVRXpxZ013dm52YnE4?=
 =?utf-8?B?UGJGbGNkTmI4QWIzU0YxeDh2ZGRyOGcvU1F1MlpjY0d3cUhaNmJTUnB3eFp4?=
 =?utf-8?B?UUhrRzdCeWZUdUxUMVVkL0RndmVDYXFyRS9lM2hIbGdEa2Z2RlhHem8rRVJq?=
 =?utf-8?B?dGZGWStKaERiRjlxT2Q2Tm1FcG1BSlNQcmMyQlZFMlA5aEJVNUhERlhodnY3?=
 =?utf-8?B?MGpOczZKU213SzN4Z2YwdXBsTURMYlFTeWF3ZzZiQWdoM0o2K2w0Y3BwaFJj?=
 =?utf-8?B?dzh0WVRkYUpDWnJRdXkwaVVxYVhqMzhXbmQ5VDRoTFkvcnVIaTdFWmVaQzNo?=
 =?utf-8?B?bSs1UXJRaGMvckhTTGZFcTIwbXJkd3ZXRTJ6T0UrOHF2WWVJUWFnd3N0KzRP?=
 =?utf-8?B?eC9Lb0pCQnNtdUhRMGJ0TzV1OWQyb1ZJSjF0WkVRVHljaXpYcnNTaGU1U2dU?=
 =?utf-8?B?OXJlYnV4Q2Y5dlpWK3dnQjJhWXJpM3FVczRWcCszZGp3bFpkTVZKcjVvRnky?=
 =?utf-8?B?MGhIUlFwNFp6c1lJQUttMWtuN1BVb1doMnRXc2tGVkJGOHJycWxiMERWb25E?=
 =?utf-8?B?VXFTZXBHbkoyNTVlV3RJWGI1blZQL2FtUmpKYWR6Zmg1R1JObGFOMzJxQjc4?=
 =?utf-8?B?UVdMOUNXRUdrTXBBdEFCMEV0ZzdaYWFpUnMvOWFmbExLbms3U0x4RUJDVXpI?=
 =?utf-8?B?TFhubXlycmoyaGRmbGd4ZTZOcCtZb2kwNlpybE81NURZa1BPbVZlWG5qLzJz?=
 =?utf-8?B?Q01qaVJQR3lpUUxvdzBwRkR0M0UrZEtza0xlUnBLTDNrN1IrMldoQmQvSnB3?=
 =?utf-8?B?d0FKSDVmY1FzVkNYMUlNRStDOXNmNzA4c2J2ZnlKZlBreVZXTEkzUlI5L1oy?=
 =?utf-8?B?RUJnRzg5NkJWUWlENWVNaDNEckEwamtYNEJEbWNJdERwVG9ua0VmOVdacS9Z?=
 =?utf-8?B?NUhvU3BJTzVqY2dJS3dDWFNtYW1pUVVIeDJLQm9SSjZHVzljc2ZsTnpSeG12?=
 =?utf-8?B?QUFWeWl3SGRKRnpPSjVLNWw1RmczZ0EyYitiZmxFWFR5V3lxS3EzZ05zaTJn?=
 =?utf-8?B?SFI3ckF2ZElWUmRwZjZQT01XNlRBWGV6MWhEa2puV3VJbEhQWlFCcmFRdVI3?=
 =?utf-8?B?azAyd3BacEdWOVppV1lzVHVhQUEwRzdmM2hRcUZUTDhiMHk0WVRLYlpHQjBl?=
 =?utf-8?B?TTNDZy95NFRmTllheTR5c3Zwd1JOLysrbzkvQ2k1T00wSGVzNThXajhzMVNq?=
 =?utf-8?B?Y3ZxdTZGNTJlVk9NQ2NReDBQTStaTEdwVm1LOEFVZmpVSkRaR0VEZld6RFNS?=
 =?utf-8?B?Y3VhUVZpUG5sQ2F2bzJIUmZ3cS9mTUxsVC9FRkVrUzBDbldwcmRvSnA3NUhk?=
 =?utf-8?B?eVMxQzlVQjhGVXAzQmg0NFRGQlR3TXNIeU1DVzhtV0RVeEhyb1lMTUlsOEs3?=
 =?utf-8?Q?7sZXMNPfgFLetFV5tAUPwtnG+Xmh1q54?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(35042699022)(82310400026)(1800799024)(14060799003)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 13:26:15.8087
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 86bcbe35-9b4b-4ed0-6763-08dd0e1de796
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A62.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9065

SGkgSmFuLA0KDQo+IA0KPiBUaGlzIHJlYWRzIGJldHRlciwgdGhhbmtzLiBGb2xsb3ctb24gcXVl
c3Rpb246IElzIHdoYXQgaXMgc3RhdGljYWxseQ0KPiBjb25maWd1cmVkIGZvciB0aGUgaGVhcCBn
dWFyYW50ZWVkIHRvIG5ldmVyIG92ZXJsYXAgd2l0aCBhbnl0aGluZyBwYXNzZWQNCj4gdG8gaW5p
dF9kb21oZWFwX3BhZ2VzKCkgaW4gdGhvc2UgcGxhY2VzIHRoYXQgeW91IHRvdWNoPw0KDQpJIHRo
aW5rIHNvLCB0aGUgcGxhY2VzIG9mIHRoZSBjaGVjayBhcmUgbWFpbmx5IG1lbW9yeSByZWdpb25z
IHJlbGF0ZWQgdG8gYm9vdCBtb2R1bGVzLA0Kd2hlbiB3ZSBhZGQgYSBib290IG1vZHVsZSB3ZSBh
bHNvIGRvIGEgY2hlY2sgaW4gb3JkZXIgdG8gc2VlIGlmIGl0IGNsYXNoZXMgd2l0aCBhbnkNCnJl
c2VydmVkIHJlZ2lvbnMgYWxyZWFkeSBkZWZpbmVkLCB3aGljaCB0aGUgc3RhdGljIGhlYXAgaXMg
cGFydCBvZi4NCg0KQ291bGQgeW91IGV4cGxhaW4gbWUgd2h5IHRoZSBxdWVzdGlvbj8NCg0KPiAN
Cj4+Pj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2Jvb3RmZHQuaA0KPj4+PiArKysgYi94ZW4vaW5j
bHVkZS94ZW4vYm9vdGZkdC5oDQo+Pj4+IEBAIC0xMzIsNyArMTMyLDYgQEAgc3RydWN0IGJvb3Rp
bmZvIHsNCj4+Pj4gI2lmZGVmIENPTkZJR19TVEFUSUNfU0hNDQo+Pj4+ICAgIHN0cnVjdCBzaGFy
ZWRfbWVtaW5mbyBzaG1lbTsNCj4+Pj4gI2VuZGlmDQo+Pj4+IC0gICAgYm9vbCBzdGF0aWNfaGVh
cDsNCj4+Pj4gfTsNCj4+Pj4gDQo+Pj4+ICNpZmRlZiBDT05GSUdfQUNQSQ0KPj4+PiBAQCAtMTU3
LDYgKzE1NiwxMCBAQCBzdHJ1Y3QgYm9vdGluZm8gew0KPj4+PiANCj4+Pj4gZXh0ZXJuIHN0cnVj
dCBib290aW5mbyBib290aW5mbzsNCj4+Pj4gDQo+Pj4+ICsjaWZkZWYgQ09ORklHX1NUQVRJQ19N
RU1PUlkNCj4+Pj4gK2V4dGVybiBib29sIHN0YXRpY19oZWFwOw0KPj4+PiArI2VuZGlmDQo+Pj4g
DQo+Pj4gSnVzdCB0byBkb3VibGUgY2hlY2sgTWlzcmEtd2lzZTogSXMgdGhlcmUgYSBndWFyYW50
ZWUgdGhhdCB0aGlzIGhlYWRlciB3aWxsDQo+Pj4gYWx3YXlzIGJlIGluY2x1ZGVkIGJ5IHBhZ2Ut
YWxsb2MuYywgc28gdGhhdCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgc3ltYm9sDQo+Pj4gaGFzIGFu
IGVhcmxpZXIgZGVjbGFyYXRpb24gYWxyZWFkeSB2aXNpYmxlPyBJIGFzayBiZWNhdXNlIHRoaXMg
aGVhZGVyDQo+Pj4gZG9lc24ndCBsb29rIGxpa2Ugb25lIHdoZXJlIHN5bWJvbHMgZGVmaW5lZCBp
biBwYWdlLWFsbG9jLmMgd291bGQgbm9ybWFsbHkNCj4+PiBiZSBkZWNsYXJlZC4gQW5kIEkgc2lu
Y2VyZWx5IGhvcGUgdGhhdCB0aGlzIGhlYWRlciBpc24ndCBvbmUgb2YgdGhvc2UgdGhhdA0KPj4+
IGVuZCB1cCBiZWluZyBpbmNsdWRlZCB2aXJ0dWFsbHkgZXZlcnl3aGVyZS4NCj4+IA0KPj4gSeKA
mXZlIHJlYWQgYWdhaW4gTUlTUkEgcnVsZSA4LjQgYW5kIHlvdSBhcmUgcmlnaHQsIEkgc2hvdWxk
IGhhdmUgaW5jbHVkZWQgYm9vdGZkdC5oIGluDQo+PiBwYWdlLWFsbG9jLmMgaW4gb3JkZXIgdG8g
aGF2ZSB0aGUgZGVjbGFyYXRpb24gdmlzaWJsZSBiZWZvcmUgZGVmaW5pbmcgc3RhdGljX2hlYXAu
DQo+PiANCj4+IEkgd2lsbCBpbmNsdWRlIHRoZSBoZWFkZXIgaW4gcGFnZS1hbGxvYy5jDQo+IA0K
PiBFeGNlcHQgdGhhdCwgYXMgc2FpZCwgSSBkb24ndCB0aGluayB0aGF0IGhlYWRlciBzaG91bGQg
YmUgaW5jbHVkZWQgaW4gdGhpcyBmaWxlLg0KPiBJbnN0ZWFkIEkgdGhpbmsgdGhlIGRlY2xhcmF0
aW9uIHdhbnRzIHRvIG1vdmUgZWxzZXdoZXJlLg0KDQpPayBzb3JyeSwgSSBtaXN1bmRlcnN0b29k
IHlvdXIgY29tbWVudCwgSSB0aG91Z2h0IHlvdSB3ZXJlIHN1Z2dlc3RpbmcgdG8gaGF2ZSB0aGUN
CmRlY2xhcmF0aW9uIHZpc2libGUgaW4gdGhhdCBmaWxlIHNpbmNlIHdlIGFyZSBkZWZpbmluZyB0
aGVyZSB0aGUgdmFyaWFibGUuDQoNClNvIEp1bGllbiBzdWdnZXN0ZWQgdGhhdCBmaWxlLCBpdCB3
YXMgaG9zdGVkIGJlZm9yZSBpbiBjb21tb24vZGV2aWNlLXRyZWUvZGV2aWNlLXRyZWUuYywNCnNl
ZSB0aGUgY29tbWVudCBoZXJlOg0KaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0
L3hlbi1kZXZlbC9wYXRjaC8yMDI0MTExNTEwNTAzNi4yMTg0MTgtNi1sdWNhLmZhbmNlbGx1QGFy
bS5jb20vIzI2MTI1MDU0DQoNClNpbmNlIGl0IHNlZW1zIHlvdSBkaXNhZ3JlZSB3aXRoIEp1bGll
biwgY291bGQgeW91IHN1Z2dlc3QgYSBtb3JlIHN1aXRhYmxlIHBsYWNlPw0KDQpDaGVlcnMsDQpM
dWNh


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 13:29:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 13:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843745.1259352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFvd5-0000AY-1j; Tue, 26 Nov 2024 13:29:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843745.1259352; Tue, 26 Nov 2024 13:29: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 1tFvd4-0000AQ-VF; Tue, 26 Nov 2024 13:29:22 +0000
Received: by outflank-mailman (input) for mailman id 843745;
 Tue, 26 Nov 2024 13:29: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFvd4-0000AK-7h
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 13:29:22 +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 70c61c7e-abfa-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 14:29:19 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-aa549f2f9d2so327306866b.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 05:29: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
 a640c23a62f3a-aa50b3426f3sm593519766b.87.2024.11.26.05.29.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 05:29: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: 70c61c7e-abfa-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcwYzYxYzdlLWFiZmEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjI3NzU5LjU1NTgyNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732627759; x=1733232559; 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=g2rbhV4mFP9sJuLroiEfu3GffwJWWkyiE/7UXor4wC8=;
        b=cKXDvyW5HSHEMZzKAO0jhLLhHprmonW+NpR0NsWtl1SnMM4w457Cffhbk8d846IsJ+
         WyXOX8POfjoVaJFWaKIwhGl/IEF2tBbdHGZeUkcqruC412dhCMeychHuIYnnLZBvo90u
         XNiJce6zoAJv9m6gZvragcT/PH58knhb4NMZVgbRwAaROAbmm/bjw3/bZtiw9AgyykZb
         87s15Y1iXE2k0GNnH2rVd6TS7Hj8dljcMfG5ydHflFtIF+7wcpq7pPU2iQAuQWaJbpE4
         aiti0x64QGYM25E1V0q/Jemgx/dxhB/J9iHl0ul0XQsKRLJj1Aohid0F8efVi8Fdl73G
         OBWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732627759; x=1733232559;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g2rbhV4mFP9sJuLroiEfu3GffwJWWkyiE/7UXor4wC8=;
        b=dGhd04suCDnmFUwMbyBiAS1e8PlZR3+3Jb/GtEB1I3Xsfm0sCKYgXWZMKXGtg7B/Yi
         uiCUE5VAFUGT0A/C/xuHVVLQK5knCzoKy2ROolmYEQ/cLMKRx/qlta8vWVrQmIJS874G
         Y9sLrwmtD10NXBXkh/3Fe8HRIvHhEcDqSZ5WqJJTtOoCC6ivP8uXeTFf5wk0U5xOI/R+
         Kh6a0JTKy0bHYSsOGD/8M/Useddo2V55eRyTKhP+cfoKRtZOSbGR+clwCVZ1SSgbrYDH
         QUapkERUvAuzu/0mIw5FIqnHGGdfgetnBFDPDadjLPDFRs/uax/I5+ydPln2GtWCwYmC
         zlWA==
X-Forwarded-Encrypted: i=1; AJvYcCUOQ39KQN6oPcYGbi7K9U7uxqEadt0xn8tonmLViaKdhrbiwXVRkv6epcniG6rFEwPdYufLGMdyDeo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIWdLGYRXNcmZ3UJeo4zry0UBXZ+M2zcK8micUSDgZcU2U3z7p
	L9nUUVIL7OsqUluxUAFZzZ1RKpp2UXNiuBnPcWxkXAXR3TBlaGTiNU+enveModk7YCYu6nu0HDw
	=
X-Gm-Gg: ASbGncvQXRwmfGCkfxYAedd4xSnbRLl3rR2ihlJfKx8AnqbDtq/XugdfSDz5aiKrIbK
	dHfojY42YYRLE5wJO3v7UCBL3GsFzL0tqj/HZVpJr9bE1PpIhWcuEP8us+wl6xOe09mr0CxUb41
	q5QWzSSiBtGdJabdjdaXJgFM9p33IMZGsm9U4rRj9QZrS4TnY0x06aRlzkJe+kTYUFX1/4fPxwv
	Rq2v1zBBuEobd0ytwKJ/0/zfKBkdxPg7M6nexfOn0zKIYlGGx2cFgbmzK54kt/Y3W36XNwm61Vv
	A2lrA+kGoqY1eK3jiw4fkCNG61M7/0RU8is=
X-Google-Smtp-Source: AGHT+IFNNNXWuknww/qnw1xvHI3E+VvD9tcuBIHulnC0NVykiUdhflPznf8i1Gh0DgUh1ZIL9f46Cw==
X-Received: by 2002:a17:906:30ce:b0:aa5:26ac:18d6 with SMTP id a640c23a62f3a-aa526ac1a4bmr1263690466b.43.1732627758993;
        Tue, 26 Nov 2024 05:29:18 -0800 (PST)
Message-ID: <7cc9ad6f-e5f6-444f-994c-b176a93cfb29@suse.com>
Date: Tue, 26 Nov 2024 14:29:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Penny Zheng <Penny.Zheng@arm.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>, Wei Chen <Wei.Chen@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-5-luca.fancellu@arm.com>
 <ca91b717-47c3-4f92-af6a-cb740ef6e91d@suse.com>
 <BE895863-B07F-42C2-BD44-D0A1E6150DC4@arm.com>
 <e5f0b9e4-80ab-4cf5-8745-4cb83cfe4c7d@suse.com>
 <7761CEB9-2304-4588-9ADE-C81B9A5E536C@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: <7761CEB9-2304-4588-9ADE-C81B9A5E536C@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 14:25, Luca Fancellu wrote:
>> This reads better, thanks. Follow-on question: Is what is statically
>> configured for the heap guaranteed to never overlap with anything passed
>> to init_domheap_pages() in those places that you touch?
> 
> I think so, the places of the check are mainly memory regions related to boot modules,
> when we add a boot module we also do a check in order to see if it clashes with any
> reserved regions already defined, which the static heap is part of.
> 
> Could you explain me why the question?

Well, if there was a chance of overlap, then parts of the free region would
need to go one way, and the rest the other way.

>>>>> --- a/xen/include/xen/bootfdt.h
>>>>> +++ b/xen/include/xen/bootfdt.h
>>>>> @@ -132,7 +132,6 @@ struct bootinfo {
>>>>> #ifdef CONFIG_STATIC_SHM
>>>>>    struct shared_meminfo shmem;
>>>>> #endif
>>>>> -    bool static_heap;
>>>>> };
>>>>>
>>>>> #ifdef CONFIG_ACPI
>>>>> @@ -157,6 +156,10 @@ struct bootinfo {
>>>>>
>>>>> extern struct bootinfo bootinfo;
>>>>>
>>>>> +#ifdef CONFIG_STATIC_MEMORY
>>>>> +extern bool static_heap;
>>>>> +#endif
>>>>
>>>> Just to double check Misra-wise: Is there a guarantee that this header will
>>>> always be included by page-alloc.c, so that the definition of the symbol
>>>> has an earlier declaration already visible? I ask because this header
>>>> doesn't look like one where symbols defined in page-alloc.c would normally
>>>> be declared. And I sincerely hope that this header isn't one of those that
>>>> end up being included virtually everywhere.
>>>
>>> Iâ€™ve read again MISRA rule 8.4 and you are right, I should have included bootfdt.h in
>>> page-alloc.c in order to have the declaration visible before defining static_heap.
>>>
>>> I will include the header in page-alloc.c
>>
>> Except that, as said, I don't think that header should be included in this file.
>> Instead I think the declaration wants to move elsewhere.
> 
> Ok sorry, I misunderstood your comment, I thought you were suggesting to have the
> declaration visible in that file since we are defining there the variable.
> 
> So Julien suggested that file, it was hosted before in common/device-tree/device-tree.c,
> see the comment here:
> https://patchwork.kernel.org/project/xen-devel/patch/20241115105036.218418-6-luca.fancellu@arm.com/#26125054
> 
> Since it seems you disagree with Julien, could you suggest a more suitable place?

Anything defined in page-alloc.c should by default have its declaration in
xen/mm.h, imo. Exceptions would need justification.

Obviously a possible alternative is to move the definition, not the declaration.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 13:32:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 13:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843754.1259363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFvgQ-0001uE-Ef; Tue, 26 Nov 2024 13:32:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843754.1259363; Tue, 26 Nov 2024 13:32: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 1tFvgQ-0001u7-Bu; Tue, 26 Nov 2024 13:32:50 +0000
Received: by outflank-mailman (input) for mailman id 843754;
 Tue, 26 Nov 2024 13:32: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFvgO-0001u1-Ky
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 13:32: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 eb234d26-abfa-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 14:32:44 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-38246333e12so5577982f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 05:32:44 -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-3825fafe189sm13376917f8f.32.2024.11.26.05.32.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 05:32: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: eb234d26-abfa-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImViMjM0ZDI2LWFiZmEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjI3OTY0Ljg5NjM0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732627964; x=1733232764; 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=Ra0eIdjYGALw+ZjpwNUNl1qdEmuGXFvvXvKcw/MXBC4=;
        b=fiKjWTjOm9xcEUSazuaaDh6StWlQmUU8FQHEgfyL7tehVtX5c0x1JCAvZqJF2l1p3W
         k5GqWk9v4liHRcf16OpQluXqs4sbyrF4OJFOjRBqaejHPWNJN3TmWlHKQ0yJ6Mye6KUQ
         Z8bPYBnQWriBfeUJNdffXCL5SJDjhfy8ldWEPVRqhNK9erxWa4MbZ9ayrxG9cq1y0wW9
         MAZ0kY0VDn1lqdYGCpmiZmX1TEXRRFT8l9BtFWP380YDix95nW9jzMpWG/4xUw610/+B
         ri4FUIpazYE1c2OxI8EYXqCMAnx7i6wV2hTTYUGYTUpqYjF0CHTviMas3hi6CtJNFRpm
         Ic8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732627964; x=1733232764;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ra0eIdjYGALw+ZjpwNUNl1qdEmuGXFvvXvKcw/MXBC4=;
        b=NGKWdZHmHHicCFeT+b9827RTLxl/UK3lnj7rvwFtboySNq/2C9uTpqO/5TqlD0d4ps
         smNHY6Et1VdDyvunGrE2IJTkgmzlD9VGk59eWuBMUy9gJ9HUO5mLGxfrpk/kPF0vJNwb
         MlTHyxeR+o9mN54wGKOpB6V5/E5QasSE2imSKEpA3KuCjrY/Dok64Dx1pM53Fo7GahEh
         BzsImf0j7kyovmpbsqxRuiilfaj5hrIMuNqCKsJKUWIfgr+XOOzZ0+/8Sq5if5xlJuFm
         Kmvob8tzsQ21skjy3NHBaA2BlIenwmYr4Dt4XFAA84wPjbM9iRvnrUMoxvFbiTK5i5Bg
         Fswg==
X-Forwarded-Encrypted: i=1; AJvYcCVI7BAHmTx5CNbo3ts1+5ty9UzubT4sVw5ZZlCQDPjvEbZDeh9Xi17uh80zTkruAn8mTkLKACPD7wo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyefaSGfCSdlYGdlRLHcCTFmtLWJDoO9EJ/0O+J85FHKBp2oSI8
	dp43lvSwEoa21gF9N9LmPZ7gHUKchvP+CAnixNVkGEQijj5rEUwsd57OUnAD3w==
X-Gm-Gg: ASbGnctL9QcVomMnc90imIUljyNP8sK3gAbJOCf6unkEClLUk6Tv+iJxMTrvZzp90P8
	Bv03Yru6juBTBwt/XJf/0JyQ7wdzQFnqeTucDra7ItrRGno9S9JsycUAEEIZ4fnjXHm1e8UgFPs
	MaWlvOGzJKW91VuJE4q4rvqGPLqmbjQlq+6CHCRrQw1NawQbaftcuPpnhHhYzUcy3GqPzBia58y
	6dlMk7qCc/HsqkoNX+BVt3ZSOQHLliJXxaQ9d02uhN5IbDtyoOlJIU1M35Lpr+6ksJ7oD/9e0NQ
	RwyD+dS5P2PGyAEHU9RDN8frT51mrlXPUUA=
X-Google-Smtp-Source: AGHT+IGp9RfWAQf5sLBg44xbkYL00FVv8ea4U7BpvcPwnaulVHjR4N0QfAp+cRJ/+le3W3Pkp0n/Sg==
X-Received: by 2002:a05:6000:1f86:b0:382:503c:da45 with SMTP id ffacd0b85a97d-38260bc6ba4mr19137499f8f.38.1732627964302;
        Tue, 26 Nov 2024 05:32:44 -0800 (PST)
Message-ID: <1c0befb4-be58-48c4-af8c-680942b32758@suse.com>
Date: Tue, 26 Nov 2024 14:32:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: Validate __copy_to_guest in
 VCPUOP_register_runstate_memory_area
To: Michal Orzel <michal.orzel@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241126102653.25487-1-michal.orzel@amd.com>
 <db4de7c6-c955-43fd-ab25-947809f357a2@suse.com>
 <16367a7e-86c2-4e2f-8798-e789139a6c63@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: <16367a7e-86c2-4e2f-8798-e789139a6c63@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2024 12:24, Michal Orzel wrote:
> On 26/11/2024 11:40, Jan Beulich wrote:
>> On 26.11.2024 11:26, Michal Orzel wrote:
>>> For guests with paging mode external, guest_handle_okay() always returns
>>> success, even if the guest handle is invalid (e.g. address not in P2M).
>>> In VCPUOP_register_runstate_memory_area, we would then blindly set
>>> runstate_guest() for a given vCPU to invalid handle. Moreover, we don't
>>> check the return value from __copy_to_guest() and return success to the
>>> guest, even in case of a failure during copy.
>>
>> I'm afraid this is all deliberate, providing best effort behavior. For a
>> paging mode external guest, the handle may become valid subsequently. If
>> any __copy_to_guest() fail here, subsequent update_runstate_area() may
>> succeed (and success of the actual copying isn't checked there either).
> Hmm, I've never looked at that this way. I always thought that mapping must be in place
> before setting up handle. Is this concept really something used (e.g. in Linux) or just a
> way for us to provide excuse for not hardening the code because of a fear of regressions, etc.?

I'm pretty certain some common guest OS used such "early" registration at
some point. I don't recall whether that was Windows or Linux, nor - for the
latter - whether it was upstream (pv-ops) or the old forward ports from the
2.6.18-xen tree. And I can't say whether that may still be the case
somewhere. Nor that it was specifically the runstate area (it seems more
likely that it was the vCPU info area). Hence my desire for us to be
cautious.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 13:53:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 13:53:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843774.1259373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFw05-00057K-0x; Tue, 26 Nov 2024 13:53:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843774.1259373; Tue, 26 Nov 2024 13:53: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 1tFw04-00057D-UW; Tue, 26 Nov 2024 13:53:08 +0000
Received: by outflank-mailman (input) for mailman id 843774;
 Tue, 26 Nov 2024 13:53: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=yuIc=SV=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tFw02-000577-Pq
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 13:53:06 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170120003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1814830-abfd-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 14:53:03 +0100 (CET)
Received: from DUZPR01CA0354.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b8::6) by DB9PR08MB8435.eurprd08.prod.outlook.com
 (2603:10a6:10:3d5::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 13:53:00 +0000
Received: from DB3PEPF00008860.eurprd02.prod.outlook.com
 (2603:10a6:10:4b8:cafe::d5) by DUZPR01CA0354.outlook.office365.com
 (2603:10a6:10:4b8::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Tue,
 26 Nov 2024 13:53:00 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB3PEPF00008860.mail.protection.outlook.com (10.167.242.11) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12
 via Frontend Transport; Tue, 26 Nov 2024 13:52:59 +0000
Received: ("Tessian outbound 3b1f0cd68b0e:v514");
 Tue, 26 Nov 2024 13:52:59 +0000
Received: from Lcf24810524f2.3
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 532C149F-3C72-4FAB-81BA-9D8F81BFC1E3.1; 
 Tue, 26 Nov 2024 13:52:49 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lcf24810524f2.3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 26 Nov 2024 13:52:49 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DU0PR08MB9078.eurprd08.prod.outlook.com (2603:10a6:10:47a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Tue, 26 Nov
 2024 13:52:45 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8182.019; Tue, 26 Nov 2024
 13:52: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: c1814830-abfd-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6YzIwMDo6MyIsImhlbG8iOiJEVTJQUjAzQ1UwMDIub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImMxODE0ODMwLWFiZmQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjI5MTgzLjcyNjYyMiwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=X+RlBznjauvcapkf43McGJ+F3qnQsGehLnaCIZRQW2viV+ivOSfSotT858KAzn7OlSmh2L7tSUyiJC1Kuz/sy9QDq8mWlDrz9GFw94E1IOlhJ6YBS3faubg6Yx27G45r9lcO565Uo3VqXVdWY4w+A6yJaNpTuHdOh8GGObeg7ZX36YBePmt5L2sIk0gXKGJaM4i7/GrePMM2mpXOdqDvOtsa8B24CT3okFThK0V3ycMTBRcayR7J41fGLzHzPK0QfwryTtYUOQXs9Id9XFBGicZgD7bk5Vy9Vn9dpso0K38MK59PiDxdHwlK7ShOz5KmAltqP7HE8kDdfhhDju/nHQ==
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=/hTtStIm0SWoepj+W/CbKwf2l1KK2PH4O3tUvYRKZLY=;
 b=h8F5bCJoq4M0jmplVpi6YXdOT17rGQ/bu537u+c5Eo1sZoGWTgHoM+oxJZO9QzZs4zJ1g6p0jBx/pJh8SGB6aB1W5t+NcsIgzDfmH/uyauj5WKCIC8oerReLPaoWl5pgkmwfqlJHMn9enBzoO9aRWZnLeVqlZChn9FZl42Sb2jemjBMhJa8yTgPMsbVksMd/+OIKbg7foCeMCowiYEImHi8LV7uRmSKm94ASZPa5Z1WefZLYOYlsmrJFgetyqQFlHlwZp0RDHyeq3ZUJ/sFI/3Do5eCOmLNIDxxah4EVoipIVrlf0SWkUNp+vc/jkp4IR/lIQ/1RVADfwyIaE+0ssg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=/hTtStIm0SWoepj+W/CbKwf2l1KK2PH4O3tUvYRKZLY=;
 b=FnVJ8/UhZuX5YQnl1lC/FOptd1gr7z5q8truaCf6UeP8dcmOVBQt1jkDYGRAxF2rn4AZN0vfz0Jp3p052VOysyBeTfkOkkVcfEQ7e3mKJZI4fJKnIBbBg8D4bI7OFRT6Z9L03Ch6q4CtbC60WPtScB4h4T4MyOaof1n1rGLdVYI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: 3655f75c36574106
X-TessianGatewayMetadata: qC5ubY04GPOD2xbUVbFoykj6S67qXv5qXImSBZH+w9l3xllyb4fDE9V5ibOEY76hFHtCp6E9tj7Zf7QLzGV1TO708vMkP095xjQlEWi+maF1sg/QV4exIFX5vjLM393Vn1fOGfyJzP9I5mxab3eNqgV5wUFW92kkOTHoWYxxb8Q=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gy7Z1QnorIMIZ9PgZjVccYaP7QnMezk+3XMq38PGRc0l1QFhPeH7Xhz1VVJU0T3uL0etMkvpboAK0hoewyfCWgQXbtL3kZwJ4gggUuAt9z9yQdGAdbJtCcPXm4/mh6MPFXEKpgfgSOJAxHuK/XVHyqAHI03qKOp9tmlJJEEuKYvEK5Rj1RdA72FBcHVcvyyipSAmb24Keh42X6+QoWEOtW3po5cFzMr2lMl5Hc3w4alP50LwjML41SKotXN5HSIyP03AKhTRoqna37wTtooEl6tzbDfDftOwGqeS9n//S9Q9jeH4eSp5QzvyGYoD0ZrRs8mFAgUjMzaipr6IaYIZzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/hTtStIm0SWoepj+W/CbKwf2l1KK2PH4O3tUvYRKZLY=;
 b=aqm8GFxQ7L7LCXQhLcWgKDO2OPD6DtY6iAyCyJZDnc4tcSkLtOSHIPwL/6ugmkwU5agARlHvtJk6uPpuJ/rM5YECYhjjE0wSvg01VI2ppdnOAr5WfKkAFRVE/7YzqzVt2vU6FV8wqb/weuAmFarcONLzttoRP6+RSz2rm8YnIXwvstWI3HVaCdEXThNSjLjJzg9JKyFH/wAPPZDCoKIBiUD+MU/iRTObjHJr1rr4NO/hPAyMen1PgkPbf1t/Z5XYuYJzTCLmH/plmBH12Mlhfn5+oS3LV8uEfyjnB/bp/RPs+RfXLc0kpoS15UV5UsKmUOQeFFevOBDUUHDtuhuU9A==
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=/hTtStIm0SWoepj+W/CbKwf2l1KK2PH4O3tUvYRKZLY=;
 b=FnVJ8/UhZuX5YQnl1lC/FOptd1gr7z5q8truaCf6UeP8dcmOVBQt1jkDYGRAxF2rn4AZN0vfz0Jp3p052VOysyBeTfkOkkVcfEQ7e3mKJZI4fJKnIBbBg8D4bI7OFRT6Z9L03Ch6q4CtbC60WPtScB4h4T4MyOaof1n1rGLdVYI=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>
CC: Penny Zheng <Penny.Zheng@arm.com>, Stefano Stabellini
	<sstabellini@kernel.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>, Wei Chen <Wei.Chen@arm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Thread-Topic: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Thread-Index:
 AQHbOmE/JeWd4mQRXU6E1FRNAbLoQLLIOm6AgAE0ZQCAAAS3gIAAJQWAgAABEICAAAZqAA==
Date: Tue, 26 Nov 2024 13:52:44 +0000
Message-ID: <C881D093-C583-49BE-B541-ACE705C2C2C7@arm.com>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-5-luca.fancellu@arm.com>
 <ca91b717-47c3-4f92-af6a-cb740ef6e91d@suse.com>
 <BE895863-B07F-42C2-BD44-D0A1E6150DC4@arm.com>
 <e5f0b9e4-80ab-4cf5-8745-4cb83cfe4c7d@suse.com>
 <7761CEB9-2304-4588-9ADE-C81B9A5E536C@arm.com>
 <7cc9ad6f-e5f6-444f-994c-b176a93cfb29@suse.com>
In-Reply-To: <7cc9ad6f-e5f6-444f-994c-b176a93cfb29@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DU0PR08MB9078:EE_|DB3PEPF00008860:EE_|DB9PR08MB8435:EE_
X-MS-Office365-Filtering-Correlation-Id: d46c123e-a042-4876-ba9b-08dd0e21a399
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?WEtkYzNSb3VhOCtVamt0VEoxOEN3MzJzazJidGJCQndkaEpZTE9hN2k5QmNY?=
 =?utf-8?B?T2ZzeFN5YU9GVHZ5RW1JTlFvMy93bU4vZ1FQNmUxcXY5aHdoQm9yc0dhNXBH?=
 =?utf-8?B?d0kveFJxNnRDc25ZbWR0ZFI4dFoyZHFCYTBLS05pREtxckxmckJ0aVR4czVX?=
 =?utf-8?B?QjRyZkhmYm45N0MwRmZZMHZTS1VyUUt0MjNBMjRaU21RQlRWSDRqcWdYQ0tU?=
 =?utf-8?B?Q0dzM05FNlpZYmFkNjMrTHROVDRVRERqbmhmSHBuQW9EWU1ZYWNiWHVKUVp1?=
 =?utf-8?B?a2k3ak1sR25LemZCMFFsQ2lDcVdDOTYrUWVMZU53bXlQTWZZaGZiR1ZzTlZW?=
 =?utf-8?B?Y0wzNEI3N2M1dGNjejJ3OTU2MTc3UW9odldmR21GQXJKMUUwVWVEM1FueEd6?=
 =?utf-8?B?eTJZUnBveGpQbnA0Y2ZLRkFFbGdMclV4aWtQa3dkWFhGeWxuRlI0Uk16VUR0?=
 =?utf-8?B?aTdIL0kydFpKNVZxM1JITWFBbklHRERETmN0bk5POG5wa0R2MS9WaXBOci9r?=
 =?utf-8?B?MlZCYjNsYlVMVjhTSER2RnpkY1JyK2MrMEFQT3d6NXhyd3pmTEozbDFNRm9m?=
 =?utf-8?B?SnNtQlEvc21sVlhzNitMaHozQUl5YmFyNTUraFNyQWJIbUp5NVVtdzVKZEhH?=
 =?utf-8?B?QVpTbWdZd04yNWp0eURFREtVaFFPMFAyOGpXWEoxdFllbFFiMzVNOXNKUnY0?=
 =?utf-8?B?Zk9kbVlQTm9UenU3ZHZjb1J2NW9jbmtLMER1azJKNGRXMjVsV3RHS0Z6N25i?=
 =?utf-8?B?ZnlqWSszZ29ld25pYXgrc1gyL1RUb1VnZWg0S2JITElNZUEzcHJoK1Zhb05W?=
 =?utf-8?B?Sk1CRWVGYTczL1ZRNFk4R3dqSXZicTdjS1NQVVNEbTd1ek82RHVlZkhmd2xI?=
 =?utf-8?B?enloVVJUQUlacXdXL2owNFlCN0FvOEs5L3l4OXF4NUJlMXMySS9LU0dTVVNI?=
 =?utf-8?B?bGtwVC8wTlNteWZWNVUyZUo3TDNQKy91TUJjSkpBOXU3OVJ1ZmVYZkpwbXUx?=
 =?utf-8?B?S3RtSXM2KzNCQk5KS3BMbGRDTUFJbnJvcjQ0VWVhVWVMU2tLM3pmY2tPYmpy?=
 =?utf-8?B?b2NRSElWWENkZ3JVenk5Ulo4ZEhKOGpOVDhpWjBsVWdGME9vbUF0TUhtd0hT?=
 =?utf-8?B?U3AzbUZjKzJoa2R1OFYvK2xPNklvVHR2NDhzUFFpTEdRcXN0RkhjaFJxY3Bt?=
 =?utf-8?B?YWZKZGFuckZJUWovR1RDUlI4eG5EVzA4OTgvL0FFOWJIc0FJcURIckZFRWRs?=
 =?utf-8?B?dHU5SE5IKzFsNElITTlDeDdES1EydWh5cUt3N2pWUzNoY0JuZVgzbzZ0eUZC?=
 =?utf-8?B?YXdReEtHa1k0VmNDQjVRQmo3bUphM0NqK282Z25HUGZVbFdyNkM2cWZYWnBq?=
 =?utf-8?B?THRDS01kcVFRcGdQcU12aFMvZ0dTQlVKUGV1cENjUGErRXpUS3ZRZHJlZmRs?=
 =?utf-8?B?R1dJV1JCQUpIS3RLZm0rMnR6ay9hYXpKdDFoeHU1TnBDTGJnT3RweTQ5MnFl?=
 =?utf-8?B?ZXA0OFg0NlNDWmg1M2t6b2w1Mm1pRFlDZXlrTmVoZ3RXQ3hMSDVDRnpTWGlG?=
 =?utf-8?B?Y1lOc3BUM2g1KzZMcUJmT0xJWWEvVmRIbnk1QmVqbmdGaGxsSkJlYkQ5cytG?=
 =?utf-8?B?MXNNR2JTc2dnYWJBbXF0d3NkNXhtTjBraFNkUkJIZTJuU05nTFI1d21wcmVl?=
 =?utf-8?B?MldIekkwS2FQa2E3SHFBV3YySVU3K09lOXJQQUp4cmlYL2xmdlorZlFKanVk?=
 =?utf-8?B?RUd5YUEvRkVZQ1VSSGp2ME5oVGtkek9uNXV0Z0J5cFZUaHI4RGd4TUtvL1R6?=
 =?utf-8?B?NDZKdzdTNk56VjlGemVMSnN4N05SMTlYT1lGVUJzUzBVMDF3Tk5IUGs0bjky?=
 =?utf-8?B?S3ZGYjJWY2U5M3ZXSEFEUjNzV0hONkNnNmZqd3FvTWRyUUE9PQ==?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0CB1CF957869A649BBFA71E1E66D9D9E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9078
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF00008860.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f60c7a7a-dd0f-4ec8-0b20-08dd0e219ab2
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|35042699022|14060799003|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z29IblZaWGl1WUJqeS81a1c5SmVKV1lMZ0dneDVNNStBdmN4NnBJNlpQamRw?=
 =?utf-8?B?aVNLRlBBY05td3d5OFlEZ085a2MvaVlBY1c5MndNVnZuanVPdnJDV0hQLzN3?=
 =?utf-8?B?eU5SNnNaK3FIcjhrMlkveXArandrVTJrd09oTHcrbWR1MEpKcFROY2gwMzda?=
 =?utf-8?B?ZXVpZFMrYWVKNXd2RTE2L0I4RnlPVlhnSFE2MExzcUIyOUdEWEFoYUp0d1VF?=
 =?utf-8?B?ZW0wRUs1WDVIdVppbTF0UFRJbWlRQVIzUWR2dC9uMGVxMHFuS3BUMi9oNlRn?=
 =?utf-8?B?cjNSQnluRy9BYWFjT1dBSDZxVFpxZVRORldwYStiTHI5ajk5STU4UXBnZnB4?=
 =?utf-8?B?ZFh1N3UrdTl1WThIa005bGFpdDlkbDNGVC9NOGtKU1Z0RXV3cjliWDhsclVO?=
 =?utf-8?B?cmFBS3BnazhtTFhkTE5RWkNTbU1DRnQ1REhsQ3NZTlJjZDUwUkJrTXhjY0xn?=
 =?utf-8?B?SWdTSDM4Qi90b3VFU0U0b0FaeHBlbFU1M0VKbkoxVGRMdmNoWHh4MHlqVWNv?=
 =?utf-8?B?QjBMYnZRY1hEekxmTkFUT3lEL2FGRlN4NytpZU9hYWlaY0RrT3dIcGR0dWh5?=
 =?utf-8?B?UDBnSG8rTFpYeGphZk9GSFNJVnFQbWpSanM0c29tRFNsZmJyTkU5Ym1xRTc5?=
 =?utf-8?B?NkptcUFTL0tTdXhPOUJhQjd1a2h4K1lMcWQ0a01ZKzhmMVdzTDFrMTBzY3Er?=
 =?utf-8?B?cWw3d01Ld01pak1qZnlTdGE4ZW4wRFFqTXlQNTNpQURSZG1wYURRbzdlYnFq?=
 =?utf-8?B?SzFmWEo2RVZQdjAwUStSRENNdEtkZ3F5MkRwN2gvbFZpWkU2cHJYeXdJdHhq?=
 =?utf-8?B?NEkyZDhkZDNpQWJEYW1IaldEL3Y2SWVMVGJWV0cwT203SWhmbXIwYmZ2RTgy?=
 =?utf-8?B?TWlLOVdhRmY3dzYxRFNaeENFTmNsbUt1QWRyQjZZMHNOUzFJNTV6MmFQMGhP?=
 =?utf-8?B?VGVEdjZuS3EwRXBSNlhPa0MwTDgyaWk4MjdLdW5aZ3E5Rm1KaHJBQkNIWGNB?=
 =?utf-8?B?VnFQN1R6OUh1WmR0YXpFakJza29KRGFXdTIySzk2a3RwekVKWlRuSUhyU2h6?=
 =?utf-8?B?RTFVMlI3VnR3TE1vanR6RVBUNGdpUGpCWDBmOXZCK0YyYlk5b2xGWEN1Y1RK?=
 =?utf-8?B?SUJlejJVdXU5MXgxSWtJRkRDVlhEcS9BOHQ4RTNpRkFqY1N5ZWRLdWtySmZx?=
 =?utf-8?B?Um0vM01aSFRPSTJEYjRubGJhcWdJQWhOYjcrMzY4cG1UeW9kYTlTTTBMNUdR?=
 =?utf-8?B?RzhOUTkyalp5bStUdUt1djI4MGtFaEd2eHFiZDhFV203Sk9TUmFrZDh3L1lD?=
 =?utf-8?B?bkM4aWd5L3dVSnNJbDB0bXl0UUgrTFNZUW1ydFJVU1BIQXFZUTAzRG41VDhp?=
 =?utf-8?B?TE9sMElTcUtCK1AxWmY0UHc0Mkhab0lvaFo4YVpjbFBQek5xQ3ZaUDRBMjVE?=
 =?utf-8?B?c0N4NFNwNERhb1FINzQ5YzJtZ1pZWnpXYmFGM2l2czRUMU11M25PZFZXNmE4?=
 =?utf-8?B?bW1SUkQ3NjVJcm9LaGUvbEVNM25Ldkd1bDJ0bFpvcXhjR2pYSFRkU1c5MHl6?=
 =?utf-8?B?bDZhMSt4ZTBCVkQzMk5aaDlUd2JCc2pobWNWKytRZis2NkdXaitUck1kRm0z?=
 =?utf-8?B?MUx6QWVEaS9hRTRLcHl2S2dobTVMa0ZvWHkwVjZGbit0anFFaVVtcVlRSFN3?=
 =?utf-8?B?SjFjaEdneW9yNDRORDU4SDdMRUdjNHhmcGV6MXNaNlhkbUZuSVc0ZmlQTGlz?=
 =?utf-8?B?VzBZVTZBZC9PbXdyRHhWdFlUdy9nMWU5QnFrR1Rwb2dYT3F5NlVLQm9CQndS?=
 =?utf-8?B?OUtrM3l6dng2NndrdnFMdzZHVXlrTE5EL1lkR0dMYkdhS0F1dDdYTk5EdXFT?=
 =?utf-8?B?NTlXUUJ3NWFJaGdRSlVxb0xHc09FWngvZmZqa2dMV3dhdWRmNHY4eFBBZnEv?=
 =?utf-8?Q?GEYlM9ZRQRCJ7vYetVM8EoUHYZHS1zKT?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(36860700013)(35042699022)(14060799003)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 13:52:59.7636
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d46c123e-a042-4876-ba9b-08dd0e21a399
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB3PEPF00008860.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8435

DQoNCj4gT24gMjYgTm92IDIwMjQsIGF0IDEzOjI5LCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMjYuMTEuMjAyNCAxNDoyNSwgTHVjYSBGYW5jZWxsdSB3
cm90ZToNCj4+PiBUaGlzIHJlYWRzIGJldHRlciwgdGhhbmtzLiBGb2xsb3ctb24gcXVlc3Rpb246
IElzIHdoYXQgaXMgc3RhdGljYWxseQ0KPj4+IGNvbmZpZ3VyZWQgZm9yIHRoZSBoZWFwIGd1YXJh
bnRlZWQgdG8gbmV2ZXIgb3ZlcmxhcCB3aXRoIGFueXRoaW5nIHBhc3NlZA0KPj4+IHRvIGluaXRf
ZG9taGVhcF9wYWdlcygpIGluIHRob3NlIHBsYWNlcyB0aGF0IHlvdSB0b3VjaD8NCj4+IA0KPj4g
SSB0aGluayBzbywgdGhlIHBsYWNlcyBvZiB0aGUgY2hlY2sgYXJlIG1haW5seSBtZW1vcnkgcmVn
aW9ucyByZWxhdGVkIHRvIGJvb3QgbW9kdWxlcywNCj4+IHdoZW4gd2UgYWRkIGEgYm9vdCBtb2R1
bGUgd2UgYWxzbyBkbyBhIGNoZWNrIGluIG9yZGVyIHRvIHNlZSBpZiBpdCBjbGFzaGVzIHdpdGgg
YW55DQo+PiByZXNlcnZlZCByZWdpb25zIGFscmVhZHkgZGVmaW5lZCwgd2hpY2ggdGhlIHN0YXRp
YyBoZWFwIGlzIHBhcnQgb2YuDQo+PiANCj4+IENvdWxkIHlvdSBleHBsYWluIG1lIHdoeSB0aGUg
cXVlc3Rpb24/DQo+IA0KPiBXZWxsLCBpZiB0aGVyZSB3YXMgYSBjaGFuY2Ugb2Ygb3ZlcmxhcCwg
dGhlbiBwYXJ0cyBvZiB0aGUgZnJlZSByZWdpb24gd291bGQNCj4gbmVlZCB0byBnbyBvbmUgd2F5
LCBhbmQgdGhlIHJlc3QgdGhlIG90aGVyIHdheS4NCg0Kb2ggb2ssIHN1cmUgb2YgY291cnNlLCB0
aGFua3MgZm9yIGFuc3dlcmluZy4NCg0KPiANCj4+Pj4+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4v
Ym9vdGZkdC5oDQo+Pj4+Pj4gKysrIGIveGVuL2luY2x1ZGUveGVuL2Jvb3RmZHQuaA0KPj4+Pj4+
IEBAIC0xMzIsNyArMTMyLDYgQEAgc3RydWN0IGJvb3RpbmZvIHsNCj4+Pj4+PiAjaWZkZWYgQ09O
RklHX1NUQVRJQ19TSE0NCj4+Pj4+PiAgIHN0cnVjdCBzaGFyZWRfbWVtaW5mbyBzaG1lbTsNCj4+
Pj4+PiAjZW5kaWYNCj4+Pj4+PiAtICAgIGJvb2wgc3RhdGljX2hlYXA7DQo+Pj4+Pj4gfTsNCj4+
Pj4+PiANCj4+Pj4+PiAjaWZkZWYgQ09ORklHX0FDUEkNCj4+Pj4+PiBAQCAtMTU3LDYgKzE1Niwx
MCBAQCBzdHJ1Y3QgYm9vdGluZm8gew0KPj4+Pj4+IA0KPj4+Pj4+IGV4dGVybiBzdHJ1Y3QgYm9v
dGluZm8gYm9vdGluZm87DQo+Pj4+Pj4gDQo+Pj4+Pj4gKyNpZmRlZiBDT05GSUdfU1RBVElDX01F
TU9SWQ0KPj4+Pj4+ICtleHRlcm4gYm9vbCBzdGF0aWNfaGVhcDsNCj4+Pj4+PiArI2VuZGlmDQo+
Pj4+PiANCj4+Pj4+IEp1c3QgdG8gZG91YmxlIGNoZWNrIE1pc3JhLXdpc2U6IElzIHRoZXJlIGEg
Z3VhcmFudGVlIHRoYXQgdGhpcyBoZWFkZXIgd2lsbA0KPj4+Pj4gYWx3YXlzIGJlIGluY2x1ZGVk
IGJ5IHBhZ2UtYWxsb2MuYywgc28gdGhhdCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgc3ltYm9sDQo+
Pj4+PiBoYXMgYW4gZWFybGllciBkZWNsYXJhdGlvbiBhbHJlYWR5IHZpc2libGU/IEkgYXNrIGJl
Y2F1c2UgdGhpcyBoZWFkZXINCj4+Pj4+IGRvZXNuJ3QgbG9vayBsaWtlIG9uZSB3aGVyZSBzeW1i
b2xzIGRlZmluZWQgaW4gcGFnZS1hbGxvYy5jIHdvdWxkIG5vcm1hbGx5DQo+Pj4+PiBiZSBkZWNs
YXJlZC4gQW5kIEkgc2luY2VyZWx5IGhvcGUgdGhhdCB0aGlzIGhlYWRlciBpc24ndCBvbmUgb2Yg
dGhvc2UgdGhhdA0KPj4+Pj4gZW5kIHVwIGJlaW5nIGluY2x1ZGVkIHZpcnR1YWxseSBldmVyeXdo
ZXJlLg0KPj4+PiANCj4+Pj4gSeKAmXZlIHJlYWQgYWdhaW4gTUlTUkEgcnVsZSA4LjQgYW5kIHlv
dSBhcmUgcmlnaHQsIEkgc2hvdWxkIGhhdmUgaW5jbHVkZWQgYm9vdGZkdC5oIGluDQo+Pj4+IHBh
Z2UtYWxsb2MuYyBpbiBvcmRlciB0byBoYXZlIHRoZSBkZWNsYXJhdGlvbiB2aXNpYmxlIGJlZm9y
ZSBkZWZpbmluZyBzdGF0aWNfaGVhcC4NCj4+Pj4gDQo+Pj4+IEkgd2lsbCBpbmNsdWRlIHRoZSBo
ZWFkZXIgaW4gcGFnZS1hbGxvYy5jDQo+Pj4gDQo+Pj4gRXhjZXB0IHRoYXQsIGFzIHNhaWQsIEkg
ZG9uJ3QgdGhpbmsgdGhhdCBoZWFkZXIgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoaXMgZmlsZS4N
Cj4+PiBJbnN0ZWFkIEkgdGhpbmsgdGhlIGRlY2xhcmF0aW9uIHdhbnRzIHRvIG1vdmUgZWxzZXdo
ZXJlLg0KPj4gDQo+PiBPayBzb3JyeSwgSSBtaXN1bmRlcnN0b29kIHlvdXIgY29tbWVudCwgSSB0
aG91Z2h0IHlvdSB3ZXJlIHN1Z2dlc3RpbmcgdG8gaGF2ZSB0aGUNCj4+IGRlY2xhcmF0aW9uIHZp
c2libGUgaW4gdGhhdCBmaWxlIHNpbmNlIHdlIGFyZSBkZWZpbmluZyB0aGVyZSB0aGUgdmFyaWFi
bGUuDQo+PiANCj4+IFNvIEp1bGllbiBzdWdnZXN0ZWQgdGhhdCBmaWxlLCBpdCB3YXMgaG9zdGVk
IGJlZm9yZSBpbiBjb21tb24vZGV2aWNlLXRyZWUvZGV2aWNlLXRyZWUuYywNCj4+IHNlZSB0aGUg
Y29tbWVudCBoZXJlOg0KPj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hl
bi1kZXZlbC9wYXRjaC8yMDI0MTExNTEwNTAzNi4yMTg0MTgtNi1sdWNhLmZhbmNlbGx1QGFybS5j
b20vIzI2MTI1MDU0DQo+PiANCj4+IFNpbmNlIGl0IHNlZW1zIHlvdSBkaXNhZ3JlZSB3aXRoIEp1
bGllbiwgY291bGQgeW91IHN1Z2dlc3QgYSBtb3JlIHN1aXRhYmxlIHBsYWNlPw0KPiANCj4gQW55
dGhpbmcgZGVmaW5lZCBpbiBwYWdlLWFsbG9jLmMgc2hvdWxkIGJ5IGRlZmF1bHQgaGF2ZSBpdHMg
ZGVjbGFyYXRpb24gaW4NCj4geGVuL21tLmgsIGltby4gRXhjZXB0aW9ucyB3b3VsZCBuZWVkIGp1
c3RpZmljYXRpb24uDQoNCkkgd291bGQgYmUgZmluZSB0byBoYXZlIHRoZSBkZWNsYXJhdGlvbiBp
biB4ZW4vbW0uaCwgSSBqdXN0IG5lZWQgdG8gaW1wb3J0IHhlbi9tbS5oIGluIGJvb3RmZHQuaCBz
byB0aGF0IGl0IGlzIHZpc2libGUgdG8NCuKAnHVzaW5nX3N0YXRpY19oZWFw4oCdLCBASnVsaWVu
IHdvdWxkIHlvdSBiZSBvayB3aXRoIHRoYXQ/DQoNCj4gDQo+IE9idmlvdXNseSBhIHBvc3NpYmxl
IGFsdGVybmF0aXZlIGlzIHRvIG1vdmUgdGhlIGRlZmluaXRpb24sIG5vdCB0aGUgZGVjbGFyYXRp
b24uDQo+IA0KPiBKYW4NCg0KQ2hlZXJzLA0KTHVjYQ==


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 14:28:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 14:28:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843800.1259382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFwXn-0001F6-Kt; Tue, 26 Nov 2024 14:27:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843800.1259382; Tue, 26 Nov 2024 14:27: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 1tFwXn-0001Ez-IK; Tue, 26 Nov 2024 14:27:59 +0000
Received: by outflank-mailman (input) for mailman id 843800;
 Tue, 26 Nov 2024 14:27: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=zdLj=SV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tFwXm-0001Et-V4
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 14:27:59 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9de0e481-ac02-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 15:27:51 +0100 (CET)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-2f75c56f16aso65550991fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 06:27:51 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa533b04d87sm460945266b.97.2024.11.26.06.27.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 06:27: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: 9de0e481-ac02-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzQiLCJoZWxvIjoibWFpbC1sajEteDIzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjlkZTBlNDgxLWFjMDItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjMxMjcxLjIzMjA5NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732631270; x=1733236070; 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=QGKP/zwCz4WgxQ72Ftcf+4KBXBbEGWMRNxUpyv/zSW8=;
        b=Fv76BimyHVteuM7iHjNDKTTB/Nku9c2u5uGLAFO6MmNBZ2pwAm3Wvtg55+cATxscC2
         Hpgg42qPd9Ia4vBK8KmXAYe8gedCBYvJEE5QJ6P86X6lcUaheezjjWY8+XlNVjBKduj2
         0XDGVP576hHAKskeky/Fm9aKLE4cROKZQhM/s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732631270; x=1733236070;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QGKP/zwCz4WgxQ72Ftcf+4KBXBbEGWMRNxUpyv/zSW8=;
        b=IP99h0IhRcwpSVc8STbM+g+YBvEaKnzTF2+UWzZ1B0S2Kvz2tXcl+6wIMgxRpjFRHj
         SqjfCq3E9lgyANlaxZsNezNCXGPgfxSOi4+bQg+xxuPnjr6/ZiKYJv6vcCFtIc5PzGSd
         WfbcBb15yCUOO7G7hdRwiDnhOkpPXONxjRJzlfHPoLQEZx3Wh2cCpc8JgPPtgdoO9Fpu
         f8f71NI3/kEQMTyVbAmwYUaYDxnGuPhqT4XzWcmfY5tcAJCJvDOiIrKnYYuMhccLmVU+
         ekMEeVeLBp2fqh50icql5fX616lGIKFBv1y5QV3N+Y09QDukdHWNCL2GmVd09COAgg2g
         YqIA==
X-Forwarded-Encrypted: i=1; AJvYcCUutzK72bLSinY3XsrA6ZyIxcuNoLGw4ogzdBuDG0jkpVrf6ki0Qj2q6Bes1S73Ru3nA2IwEaXABmE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGuk3Vvid3UAoHdAuZyirUx8QLhP+cKszpkuCiOhZ6LV07ZFzH
	EcMp1yvuHijdPmT3q+0uLQrKQpFzPwhBLFgC4NDeqBjOFpXXKy7to8PfmacvIuc=
X-Gm-Gg: ASbGnctjpCB4fadRp8648NyHMjaGUFBSv2wT8oEQE0M9oQ4UkjNAe5ZkFquKXFk95qB
	TC3s/Pffymlla7J9Nx4y//kcZMCLUxOdTBmMgfwW92dBUkXuKo9XdOOwA2+Aqu+7eRglHiabf+u
	8SWO5PxsiyT3iPLrQDO7KfGSVSouk+QjTHruxAmh4hBlI6SqKM24ao+OGkOkHKlbnhxK7K6imZ2
	/QtDltKdX6hieQ01FgC5ObDwrfUHfKxbakY6u1SpkyJU3nq3PtTLcjo7i9wrE0=
X-Google-Smtp-Source: AGHT+IGCJOhGSr3YEdrk3CjlPaAakogCyoekQZBfZXbaR2z7b51H00axfxSJf9E8J7nfirIWWY8ZfA==
X-Received: by 2002:a05:6512:3b90:b0:53d:c3aa:e4ec with SMTP id 2adb3069b0e04-53dd35a4cfamr8009111e87.1.1732631270449;
        Tue, 26 Nov 2024 06:27:50 -0800 (PST)
Message-ID: <b0678e09-a253-42bb-81c1-6fe17c9caf99@citrix.com>
Date: Tue, 26 Nov 2024 14:27:47 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] x86: suppress ERMS for internal use when
 MISC_ENABLE.FAST_STRING is clear
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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <66aa8b0c-c811-483b-839e-49ca817a4672@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <66aa8b0c-c811-483b-839e-49ca817a4672@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2024 2:27 pm, Jan Beulich wrote:
> Before we start actually adjusting behavior when ERMS is available,
> follow Linux commit 161ec53c702c ("x86, mem, intel: Initialize Enhanced
> REP MOVSB/STOSB") and zap the CPUID-derived feature flag when the MSR
> bit is clear. Don't extend the artificial clearing to guest view,
> though: Guests can take their own decision in this regard, as they can
> read (most of) MISC_ENABLE.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> TBD: Would be nice if "cpuid=no-erms" propagated to guest view (for
>      "cpuid=" generally meaning to affect guests as well as Xen), but
>      since both disabling paths use setup_clear_cpu_cap() they're
>      indistinguishable in guest_common_feature_adjustments(). A separate
>      boolean could take care of this, but would look clumsy to me.
> ---
> v3: New.

I'm not sure this is a terribly wise course of action.Â  First, ...

>
> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -337,8 +337,18 @@ static void cf_check early_init_intel(st
>  		paddr_bits = 36;
>  
>  	if (c == &boot_cpu_data) {
> +		uint64_t misc_enable;
> +
>  		check_memory_type_self_snoop_errata();
>  
> +		/*
> +		 * If fast string is not enabled in IA32_MISC_ENABLE for any reason,
> +		 * clear the enhanced fast string CPU capability.
> +		 */
> +		rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
> +		if (!(misc_enable & MSR_IA32_MISC_ENABLE_FAST_STRING))
> +			setup_clear_cpu_cap(X86_FEATURE_ERMS);


... this is a thread scope MSR, and commonly does have a BIOS option,
and has been observed to be asymmetrically configured.Â  (On Intel at
least.Â  AMD has no equivalent control that I'm aware of.)

It needs checking in init_intel() and on every CPU, and to use plain
clear_cpu_cap().

But, we virtualise MSR_MISC_ENABLE (along with MSR_PLATFORM_INFO) to
*all* guests in order to advertise CPUID Faulting (even on AMD systems
which have an architectural CPUID faulting).Â  This means that all guests
reliably see FAST_STRINGS disabled, even when it happens to be active.

It turns out that Linux will hide ERMS because of this, adversely
affecting Linux's choices in the same way that PVShim is about to be
impacted.


I see no option but to virtualise MSR_MISC_ENABLE more properly on Intel
systems, but it's not without it's complexity.Â  One #MC errata
workaround involves clearing FAST_STRING and leaving it disabled until
the next warm reset (Xen has no knowledge about this, but Linux will if
provoked).

The ability to modify the FAST_STRING bit is without enumeration; It's
simply existed since the P4, and I'm unsure whether we want to honour a
guest's choice to disable fast strings, or simply ignore what the guest
wants and echo it's choice back to it.


Furthermore, ...

> +
>  		intel_init_levelling();
>  	}
>  
> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -590,6 +590,15 @@ static void __init guest_common_feature_
>       */
>      if ( host_cpu_policy.feat.ibrsb )
>          __set_bit(X86_FEATURE_IBPB, fs);
> +
> +    /*
> +     * We expose MISC_ENABLE to guests, so our internal clearing of ERMS when
> +     * FAST_STRING is not set should not propagate to guest view.  Guests can
> +     * judge on their own whether to ignore the CPUID bit when the MSR bit is
> +     * clear.
> +     */
> +    if ( raw_cpu_policy.feat.erms )
> +        __set_bit(X86_FEATURE_ERMS, fs);

... this breaks migration of a VM between hosts with different Fast
String settings.Â  ERMS is perf-hint bit, so wants to be set in the Max
policy, with Default taking the host value.Â  There are several other
examples of this pattern, but I've not made a magic string for it yet.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 14:36:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 14:36:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843813.1259394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFwgL-0002yu-HK; Tue, 26 Nov 2024 14:36:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843813.1259394; Tue, 26 Nov 2024 14:36: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 1tFwgL-0002yn-Bk; Tue, 26 Nov 2024 14:36:49 +0000
Received: by outflank-mailman (input) for mailman id 843813;
 Tue, 26 Nov 2024 14:36: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=KEbF=SV=cloud.com=alejandro.vallejo@srs-se1.protection.inumbo.net>)
 id 1tFwgJ-0002yW-RX
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 14:36:47 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da5e1a47-ac03-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 15:36:42 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2fb4af0b6beso91314951fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 06:36:42 -0800 (PST)
Received: from localhost ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b52fb87sm603987966b.95.2024.11.26.06.36.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 06:36: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: da5e1a47-ac03-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzMiLCJoZWxvIjoibWFpbC1sajEteDIzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRhNWUxYTQ3LWFjMDMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjMxODAyLjEwMDQ1NSwic2VuZGVyIjoiYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732631801; x=1733236601; darn=lists.xenproject.org;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JTssS+aaTG1GgabD+8/QxS9e9rDhNHvzrc6pc9fuxFA=;
        b=RWhMkviDRKYttF7pZDWFA1JxJwSXKDykNj+210/pUM1BR8JRgPjcFxbFhuoOj7J91v
         LyqHIHls/mss3Y39WMTSPfTeQQzEuQDh9E1v8HS1cZRLt+7IvP2vM4l2129IQfwFE9Dl
         2q0QiYCtZB296BCF84+9fj/A7s8Jw7fRcPkos=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732631801; x=1733236601;
        h=in-reply-to:references:to:from:subject:cc:message-id:date
         :content-transfer-encoding:mime-version:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=JTssS+aaTG1GgabD+8/QxS9e9rDhNHvzrc6pc9fuxFA=;
        b=qSQbs7Wn7YDjXddAT/RPh0oUUvug2X/j3jEdEFwcwd/5hkFe6YNBv2/gxbhvVtbSmG
         j7XBkyVzf5BrlXnBH5USFIA9Qxo4DEUGgq/8Kc/fRp+EHzfXFEZdT7xbXgJGjDaklECn
         lKlU0Ib0uUhiIXK/GZAOnj4zOLCrPYDkhUWSHmZPh/DWXf8lwq8kDk/q4ZUSQCc5TUHP
         kCWXXDScWkAKYdiWUYSh2BTn9+sX027cxU4OP2BkOj6C3gdj3iFPkZ9o8N3WpsdbNfLR
         vMPLNW10ii8iOTG0Uja5PeicNYF0dxebB9nH0/9lZdMjMFuG/EknA6iWorqB3So6gyv0
         itew==
X-Forwarded-Encrypted: i=1; AJvYcCVxIhnR5vmOkeEiey+o/AB6/UC/FNIb6MKVdQKBab6krPiZJdIUaKZaTY4IUapyNEk9mOQYuFiWFzc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwB7L27Kq/77sQaI+tQiUe9pTjHtp30LnY1DGd7KS0dfUmPDZyj
	jF2d3UUisdnulVsWhJNj8wo0kYJ0wTOJNobWR9W04K+Enbay8fVw2UdWTS/jZw8=
X-Gm-Gg: ASbGncvguU5tz2DSiOFCpwa9SC/8HH9F+DZhNAiSXOQl1i7/eZoExQ62hSe5BXtV6wD
	JBOxppavIIHTVJyAOoVI94e1t2VNisr9TOMaTOzhSGp4LnjIT0lkdpc05pm2dAYw8HfgebR0QYq
	+OA2GiHUh0CoALkT2GkFVCUo9Ogeqm5gvI1evtiK4H8YhBvljj2Yr5cCeIXd6X3gIRBKQsNAOPy
	v9BqcQKdeZdwacrWzss3Botb5Ye4gqf0PCvUasXMSOyDooHNXuTyBMU
X-Google-Smtp-Source: AGHT+IGSDXhmS5irS/5kkKUrwWGujUvipSx3neVvEQanDW+biXHlf2L6UngsK1ZR0ibRqJwnGq9Wyw==
X-Received: by 2002:a2e:a58b:0:b0:2fb:36df:3b4 with SMTP id 38308e7fff4ca-2ffa7187eb1mr146921241fa.34.1732631801447;
        Tue, 26 Nov 2024 06:36:41 -0800 (PST)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 26 Nov 2024 14:36:37 +0000
Message-Id: <D5W6PN8FJ5CA.378A9JFXP34X7@cloud.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Samuel Thibault"
 <samuel.thibault@ens-lyon.org>, "Andrew Cooper"
 <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Daniel P. Smith"
 <dpsmith@apertussolutions.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
From: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
To: "Jan Beulich" <jbeulich@suse.com>
X-Mailer: aerc 0.18.2
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@cloud.com>
 <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
 <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com>
 <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com>
 <D5W3YYDE2F09.IHJMRBUBE6EV@cloud.com>
 <e40ed7c2-6111-468e-8655-884953bd33e7@suse.com>
In-Reply-To: <e40ed7c2-6111-468e-8655-884953bd33e7@suse.com>

On Tue Nov 26, 2024 at 1:20 PM GMT, Jan Beulich wrote:
> On 26.11.2024 13:27, Alejandro Vallejo wrote:
> > On Tue Nov 26, 2024 at 9:40 AM GMT, Jan Beulich wrote:
> >> On 25.11.2024 19:51, Alejandro Vallejo wrote:
> >>> On Mon Nov 25, 2024 at 12:05 PM GMT, Jan Beulich wrote:
> >>>> On 15.11.2024 12:51, Alejandro Vallejo wrote:
> >>>>> Describe sysctl/readconsole as a TOML specification, remove old
> >>>>> hand-coded version and replace it with autogenerated file.
> >>>>>
> >>>>> While at it, transform the console driver to use uint8_t rather tha=
n
> >>>>> char in order to mandate the type to be unsigned and ensure the ABI=
 is
> >>>>> not defined with regards to C-specific types.
> >>>>
> >>>> Yet the derived C representation imo then should still be using char=
, not
> >>>> uint8_t.
> >>>
> >>> There's 2 issued addressed by this patch.
> >>>
> >>>   1. The removal of char from the external headers (and the Xen drive=
r).
> >>>   2. The replacement of the existing struct by the autogenerated one.
> >>>
> >>> (1) wants doing irrespective of (2). char has neither a fixed width n=
or a fixed
> >>> sign. Which is irrelevant for ABI purposes in this case because what =
we really
> >>> meant is "give me a pointer" in this hypercall, but it may be importa=
nt in
> >>> other cases.
> >>>
> >>> IOW, char should've never made it to the definition of the public ABI=
, and I'm
> >>> merely taking the chance to take it out. Happy to extract this patch =
and send
> >>> it separately.
> >>
> >> Well, work towards fully getting char out of the public headers may in=
deed be
> >> worthwhile. Otoh with char being the basic addressing granularity, I t=
hink
> >> the ABI is pretty much tied to sizeof(char) =3D=3D 1, imo limiting the
> >> worthwhile-ness quite a bit.
> >=20
> > Let me put it another way. If I were to create a separate patch strippi=
ng char
> > and using uint8_t instead, what are my chances of getting an Acked-by? =
Or not a
> > NAK, at least. (there's other maintainers that I need that from, but on=
e step
> > at a time).
>
> That would to some degree depend on what other maintainers think. Not a s=
traight
> NAK in any event.
>
> >> Signed-ness of plain char doesn't really matter as long as it's used o=
nly for
> >> what really are characters (or strings thereof). And that looks the be=
 pretty
> >> much the case throughout the public headers.
> >=20
> > Maybe. Still, as a general principle caller and callee ought to agree o=
n size,
> > alignment and sign for every type. I'd rather not make exceptions for t=
hat
> > invariant unless truly well motivated. And in this case it's a case of
> > requiring trivial non-functional changes.
>
> In how far they're non-functional will need to be seen. You also need to =
keep
> consumers in mind: They may face sudden type disagreement that compilers =
may
> complain about. Yet "stable" for the public headers means not just the AB=
I
> itself being stable, but updated headers also being usable as drop-in
> replacements for older versions.

Would it be fair to say that users of the Xen low-level API strictly go via
xenctrl et al? So long as it's only those libraries being affected the effe=
cts
should not be externally visible. It's just the hypercall boundary that is
adjusted, not the external API.

>
> >>>> Nit: For anything that is committed, it would be nice if those files=
 were as
> >>>> tidy as possible style-wise. Most of the above looks entirely okay, =
just
> >>>> that there is an unnecessary trailing blank line.
> >>>
> >>> I did go out of my way to prettify the output.
> >>>
> >>> The trailing newline was intentional to make it C++03-compatible. I c=
an get rid
> >>> of it, as it doesn't matter a whole lot.
> >>
> >> I haven't followed the development of C++ very closely; my experience =
with it
> >> is mostly from far more than 20 years ago. What's that C++03 compatibi=
lity
> >> requirement?
> >=20
> > It's really unimportant. -Wnewline-eof, I think it was. There's a pedan=
tic
> > paragraph in the C++ spec from 2003 that states that if a file is not
> > newline-terminated it's UB to parse it. I tend to newline-terminate my =
files
> > for easy `cat`-ing them together in the rare occasions where that's use=
ful for
> > something.
>
> Unimportant or not - there must then be some misunderstanding on either m=
y
> side or yours. Even the assembler insists on a final newline, as does pla=
in
> C. Yet that means one newline, not two (i.e. not a trailing blank line).
>
> Jan

Ok, I see what you mean now (only after doing `xxd <file>`). There's indeed=
 an
extra trailing newline. My $EDITOR led me astray.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 14:39:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 14:39:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843823.1259402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFwjJ-0003Y9-S2; Tue, 26 Nov 2024 14:39:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843823.1259402; Tue, 26 Nov 2024 14:39: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 1tFwjJ-0003Y2-P2; Tue, 26 Nov 2024 14:39:53 +0000
Received: by outflank-mailman (input) for mailman id 843823;
 Tue, 26 Nov 2024 14:39: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=t/Rf=SV=bounce.vates.tech=bounce-md_30504962.6745ddae.v1-2cba761cecbd4861a1825b597b692414@srs-se1.protection.inumbo.net>)
 id 1tFwjI-0003Xv-8w
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 14:39:52 +0000
Received: from mail134-5.atl141.mandrillapp.com
 (mail134-5.atl141.mandrillapp.com [198.2.134.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46f23ce4-ac04-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 15:39:44 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-5.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4XyQFp64nNzG0CMGK
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 14:39:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2cba761cecbd4861a1825b597b692414; Tue, 26 Nov 2024 14:39: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: 46f23ce4-ac04-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNC41IiwiaGVsbyI6Im1haWwxMzQtNS5hdGwxNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ2ZjIzY2U0LWFjMDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjMxOTg1LjIwMTg5Nywic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDVkZGFlLnYxLTJjYmE3NjFjZWNiZDQ4NjFhMTgyNWI1OTdiNjkyNDE0QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732631982; x=1732892482;
	bh=r7aSQzsbEY2COy1gzBB7AI0lYDrwujxSApcj0eFQHFQ=;
	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=sf4GVgNYi/GeTyLxzxA8Mop6HYHvweLUQyvK3RJ3FvSf4GCCApfDZRZ7OLN9LEsjA
	 EFmDMc+aF5N5IWUSb1q5L3vhV/AdhnH9Jg0tTBNVcp7RChsynwARPOaSSZDUYcrvDc
	 dQ+MapxIO34WvDQzVQPf36u5FPgS+ZN/EAxjGkuA3iDqOMkIcsRLu1m5liuuKflpSk
	 +44HCjgVHAQ1N+JRSXMLcLD/fWMJLC5olTW9wGTOcgl3JDU+DldMidwk1kXKGSMAj5
	 7JIl75WhZ8xSsozW/L2OnbhCNVeDSAKYNDye5pKwUyLGElGFXlKc3eaa+jfwT0dWsd
	 Aq4uK4qMHYoJw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732631982; x=1732892482; i=teddy.astie@vates.tech;
	bh=r7aSQzsbEY2COy1gzBB7AI0lYDrwujxSApcj0eFQHFQ=;
	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=uMryZygIk4fAIjqAAxhLBK1znBsd8H59TQDWYy1yduPBWR+sISS9rGtxisUCVULVz
	 lHKBeeowtzfWNBNbDvWMWf/C1vYmZUKma4bNhE98ZvOoSkMS4oNNsVUTZlc3qHmtVg
	 Ye9cOg/zgSNeSktaGLRMDF7T2eORujwOeLOyY0PiNHo/heDT3HvXC6O7oGUjvmEErX
	 8zyWE2yVq7Nnm7GTBHH2x6d9aW9C2HmnF5H/0BpejCfgds7HSqxafnEyUxuvYoOxUq
	 1hOJASOeePWW9tQVj39UZMfowHed5H8cbcuJuv7J37/VzO6pmW0ZYB8ns3G5tKO1Wk
	 fvfH4EB/yUBNQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=2012/25]=20xen:=20Replace=20sysctl/readconsole=20with=20autogenerated=20version?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732631981388
Message-Id: <6bba75e1-72d9-482e-be11-40c549651f10@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>, "Alejandro Vallejo" <alejandro.vallejo@cloud.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Samuel Thibault" <samuel.thibault@ens-lyon.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, xen-devel@lists.xenproject.org
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com> <20241115115200.2824-13-alejandro.vallejo@cloud.com> <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com> <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com> <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com> <D5W3YYDE2F09.IHJMRBUBE6EV@cloud.com> <e40ed7c2-6111-468e-8655-884953bd33e7@suse.com>
In-Reply-To: <e40ed7c2-6111-468e-8655-884953bd33e7@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.2cba761cecbd4861a1825b597b692414?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241126:md
Date: Tue, 26 Nov 2024 14:39:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 26/11/2024 =C3=A0 14:20, Jan Beulich a =C3=A9crit=C2=A0:
>>> Signed-ness of plain char doesn't really matter as long as it's used on=
ly for
>>> what really are characters (or strings thereof). And that looks the be =
pretty
>>> much the case throughout the public headers.
>> Maybe. Still, as a general principle caller and callee ought to agree on=
 size,
>> alignment and sign for every type. I'd rather not make exceptions for th=
at
>> invariant unless truly well motivated. And in this case it's a case of
>> requiring trivial non-functional changes.
> In how far they're non-functional will need to be seen. You also need to =
keep
> consumers in mind: They may face sudden type disagreement that compilers =
may
> complain about. Yet "stable" for the public headers means not just the AB=
I
> itself being stable, but updated headers also being usable as drop-in
> replacements for older versions.

I don't think we currently enforce stability on all Xen headers 
(especially not those control-domain related).
For instance

Commit 21e3ef57e0406b6b9a783f721f29df8f91a00f99
x86: Rename {domctl,sysctl}.cpu_policy.{cpuid,msr}_policy fields

actually modifies the name of some fields in a struct of sysctl.h, so I 
suppose modifying the type of fields with more defined variants is 
acceptable.

One thing remain is that if the user is not careful of this change and 
char is silently replaced by uint8_t, could that break something by 
possibly changing the signed-ness ?

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 Nov 26 16:26:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 16:26:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843846.1259421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFyOh-0000Rg-EQ; Tue, 26 Nov 2024 16:26:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843846.1259421; Tue, 26 Nov 2024 16: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 1tFyOh-0000RZ-BO; Tue, 26 Nov 2024 16:26:43 +0000
Received: by outflank-mailman (input) for mailman id 843846;
 Tue, 26 Nov 2024 16: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=+J1p=SV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tFyOg-0000RJ-3m
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 16:26:42 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34bb82dc-ac13-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 17:26:37 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ffa678ddd2so48015031fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 08:26:36 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ffaf7c0c9dsm15210421fa.87.2024.11.26.08.26.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 08:26: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: 34bb82dc-ac13-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzMiLCJoZWxvIjoibWFpbC1sajEteDIzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM0YmI4MmRjLWFjMTMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjM4Mzk3Ljc3OTAzNCwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732638395; x=1733243195; 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=eAi459Rx+AU9UamZBySFkdMVIp2YkVf38zBa8eU1ZCk=;
        b=ZzgSByHZjeeYsMuRXB6WVGN91kRgvL3ilVO5S1cN4lsJP0k+wf6z2L4dLtW4QllBO5
         JHjAcGBryBz6rPj87d1GQ3qM8jYVblCNnm4Z6TxRFP/jQzkQ9psO8w6Q77n0KSlqAaf7
         9eyjQmnHR4L4p6WG+q+W/A7zL3Ky2XN5921E7rIvmWiHmax76aR2/CiB2+/kHKgBi970
         R6i2NQWCX9O7djWo/LQusWWAi9VA2TSOUdsJCiB7Q8VTnwOubha4k4d3nYBQD3OtKUXz
         RNKigMxQ+RuEYPaesaWvlBf+sIKeUxFa6qV6du2rxlnvbz/ucbJjkcOWG4UkbzVl8ryh
         9Hyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732638395; x=1733243195;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=eAi459Rx+AU9UamZBySFkdMVIp2YkVf38zBa8eU1ZCk=;
        b=vcvSew+oL78TMWgGflZ3WLlmhHeQOP9BX+ZmMt5SPbGicCOuFEnp2ZHoRtnYU9Mfp9
         maKysUugCKXWPiN1jurTw9TT9/jFmGTYSoVvIQauYVhIVFdHZG4eLZDOsMYqrjRPtpqL
         fd6hl+vvf5JRcl4YFa9WdZeQWQPWimVevVWBPBO6CCBiY8oZlniFRrAIjzuWyOEHJDFy
         KwLyjZPMcmB7YnKJAe9529XrzNYOCmBwEbe6iA088O2lK0r4he8uXpz0b0gPFq1rkMyO
         D9mHXkSJGFCaUu6otBeHnjjT0JLVnCGHm+Oh5x4ULQI6TpgZp4bfcu6KvtCC7qsMiKbL
         JsKg==
X-Gm-Message-State: AOJu0YwGFI01M6E3feCndoQpOY7wW4lyDKIBPRJGShhFTdCYXxi7cwGZ
	KSeSicqliUgiZs1cCQF5XyOD9v7dfiPn4g5lPBESoHPhzihIrlZfun+Dpw==
X-Gm-Gg: ASbGnctm3fbH/U3wKWpf3lUUcjcqzDcE1kEgwHt18q2YgSbm6pKBg54sWXdHRKrkQnc
	0to2s+x5G77u2z+3n1OwNXo1RpLOb2M+HlyfWzbRT9CWMfVOJ0f6515Z3+SPOUdK9tQrmjTzkRJ
	zCKZuytCCc9y6f9OBUCPdJe5KukbG6TFmLMq/+ZNute2FMUwtFBmBcxwDFvxsVJe/mEVmnqRzyt
	UAubEswKLnSqGVa9rTyLutD3Ael7MV6+SMP4s50/iWaigNdmwQ=
X-Google-Smtp-Source: AGHT+IFeZ9XyGD1vpncfTyg7P3lBGbwIAz/cH0q2ImJ5yjlyazmBq+lu3RVwADS2sFqg5zL1qxuUgg==
X-Received: by 2002:a2e:bd10:0:b0:2f3:eeab:7f17 with SMTP id 38308e7fff4ca-2ffa71d8f22mr78549641fa.41.1732638395044;
        Tue, 26 Nov 2024 08:26:35 -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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 0/3] Setup memory management for RISC-V
Date: Tue, 26 Nov 2024 17:26:29 +0100
Message-ID: <cover.1732637041.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Finish initializing the memory subsystem by mapping the direct map and
frame table.

The frametable_virt_start variable is introduced with substracting
of an offest ( taking into account that RAM start could be not 0 ) to save
virtual address space of FRAMETABLE. Also it simplifies the
calculations and thereby improves performance for page_to_mfn(), mfn_to_page()
as there is no frametable_base_pdx or frametable_base_mfn ( if CONFIG_PDX_COMPRESSION=n);

The directmap_virt_start is introduced and shifted lower in the VA space to
(DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
wasting a large portion of the directmap space, this also allows for simple
VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
(for Sv39; for other MMU mode boundaries will be bigger ) by masking the
bits of the RAM start address to enable the use of superpages in
map_pages_to_xen().

In addition, initialize the VMAP_DEFAULT region, finalize the boot allocator,
and update the system state from early_boot to boot.

Introduce share_xen_page_with_guest() to deal with linkage error which occurs
because of DCE:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

The function maddr_to_virt() is introduced as part of this patch series.

virt_to_maddr() is updated as it is started to use direct_virt_start which is
introduced in this patch series.

Introduce DIRECTMAP_VIRT_END to have a convient way to do some basic
checks of address ranges.

---
Changes in V7:
 - Rebase on top of current staging.
 - refactor maddr_to_virt().
 - Update DIRECTMAP_SIZE to be inclusive.
 - Add Acked-by for the first patch of this patch series.
---
Changes in V6:
 - Rebase on top of current staging.
 - Update the cover letter message.
 - Other changes are only connected to path 1 of the current patch series some
   please look at the changes there.
---
Changes in V5:
 - Rebase on top of current staging.
 - Drop unnecessary local variables.
 - Fix issue with virt_to_maddr() ( used DIRECTMAP_VIRT_START in if-condition
   instead of direct_virt_start ).
 - Update setup_directmap_mappings() and setup_frametable_mappings() ( details
   look in patch 1).
---
Changes in V4:
 - Rebase on top of current staging.
 - Fix issues with setup_frametable_mappings() and setup_directmap_mappings().
 - Drop unnecessary local variables.
 - Minor log messsages fixes.
---
Changes in V3:
 - Update the cover letter message as DIRECTMAP connected things were changed.
 - Update setup_mm(), setup_{directmap,frametable}_mappings.
 - Introduce ROUNDDOWN in <xen/macros.h>
 - All other details please look at the specific patch.
---
Changes in V2:
 - update the cover letter message.
 - merge first 3 patches to "introduce setup_mm()" patch as after setup_mm()
   rework all the things in first two patches of v1 started to use changes
   introduced in "introduce setup_mm()" patch.
 - add Acked-by for some patch series.
 - All other details please look at the specific patch.
---

Oleksii Kurochko (3):
  xen/riscv: introduce setup_mm()
  xen/riscv: initialize the VMAP_DEFAULT virtual range
  xen/riscv: finalize boot allocator and transition to boot state

 xen/arch/riscv/include/asm/config.h |   3 +-
 xen/arch/riscv/include/asm/mm.h     |  19 ++--
 xen/arch/riscv/include/asm/setup.h  |   2 +
 xen/arch/riscv/mm.c                 | 159 ++++++++++++++++++++++++++--
 xen/arch/riscv/pt.c                 |   6 ++
 xen/arch/riscv/setup.c              |  14 +++
 xen/include/xen/macros.h            |   1 +
 7 files changed, 191 insertions(+), 13 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 16:26:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 16:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843848.1259441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFyOj-0000uA-1v; Tue, 26 Nov 2024 16:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843848.1259441; Tue, 26 Nov 2024 16: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 1tFyOi-0000u3-Ut; Tue, 26 Nov 2024 16:26:44 +0000
Received: by outflank-mailman (input) for mailman id 843848;
 Tue, 26 Nov 2024 16: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=+J1p=SV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tFyOh-0000RJ-5n
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 16:26:43 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35344196-ac13-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 17:26:37 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2ffbfee94d7so25289671fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 08:26:36 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ffaf7c0c9dsm15210421fa.87.2024.11.26.08.26.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 08:26: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: 35344196-ac13-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzMiLCJoZWxvIjoibWFpbC1sajEteDIzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM1MzQ0MTk2LWFjMTMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjM4Mzk3Ljc4MzM0Miwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732638396; x=1733243196; 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=BZITMbzFrGo2x+LsolU+1AN80rXxP+fWaE9tn0HZn6c=;
        b=R5yqqWtaRudSSyxgsGn21vu4cJLEBLm78uCtF3c543YG+lJ6brQqyL+GEZVqMeIrG0
         4qB5w4GAmJuahd2gMUm7qHmFkEsMxWYL+YY40Cmuizsc39omlyrB2kRcxgModlN5/KeL
         SGBpVglI27iuiUkEaDfePO+fQY3ETU352T0iRGoL1hRYhyZajEcurkGBWIGHZl/n+Z2Q
         XryXlj+RdNXUfDOtq2D7XK9QStPEI+3RimhZkgZE9j4TBzulY61EnHHtdj87PldAB3I/
         +oK99htSqPvyVMRXDCTdSIZ8YmcbW5hLGSRS2YwNm925+YeEo3PrO4y/M2fdfWwSGlek
         JhxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732638396; x=1733243196;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BZITMbzFrGo2x+LsolU+1AN80rXxP+fWaE9tn0HZn6c=;
        b=k+25mizSHEOiqaOYcmZdhcR624w2NzLqmBobZDfR1lSqg5pgnQ3QAx3mPJSqiSaw8y
         FgTSrmeZ9DRnFsPLDI87jXE+O6MBF4eVw7jx4BfJ71wBQ+O+WJKcIDp4qIfTmv2+vR/b
         Dg7kroKD+wJsz21yNvq6qRf8HRgIaqieZHAZMnBIxG6cYqyJ5UIWqP/YaGuPeKZrb+ZW
         mR4C8ffBuV82jF5fL8WkhtXDJMNnaZuokzAiowsc1whAIrXLdo7JhYwC4Lp6aCYQG+2N
         rgRhwcMx9urt+nZ/wzMw61Z4UHtndmSW3SGi4PEYVL8CqLb7ueqBI74EVjjHTv53EbZ0
         3jsg==
X-Gm-Message-State: AOJu0YyyepDUtCVTlqeFqtpGfFSszNSdoyFg6oxFNpKIbBht9YDlT6Xi
	0tOCub1toYomHk9v/5MLNIQfiLTLu5t+abwnYozfTOkUCLuBMMYBY31uqA==
X-Gm-Gg: ASbGnctXITfVYGP4RNLM78fGEShHd4RNTvbRuiuBLbh+mjPuHlntxnN0qAPQwfax6HA
	SxiiIA1uO73d+XC9db/OBc2XawzQqs++fioRpjiY0gac4WiZTvh2Td3T/4yC++4rxkwNzhvu6B2
	h6EeDI/VzmsT8Xm9woTl8VcCu3qibcnGMDqtdVtPeh1BbojQKwgyIF8X/i99gy8g3BfP/RdrRSt
	PssPCaxV2iN1VVrBHv1OxRCebp6mgiI0zYX0xYsdcoZ3m8p/GM=
X-Google-Smtp-Source: AGHT+IFWAWY1WIHzuD54kLwKxLAOyWVxeWxaJwWDz8EQeex/sMwoqGct0Grcc/Vz4+Cgdugk362/0Q==
X-Received: by 2002:a05:651c:1587:b0:2ff:c3a2:f408 with SMTP id 38308e7fff4ca-2ffc3a2fa61mr37888971fa.12.1732638395832;
        Tue, 26 Nov 2024 08:26:35 -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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 1/3] xen/riscv: introduce setup_mm()
Date: Tue, 26 Nov 2024 17:26:30 +0100
Message-ID: <d5f3f3deeeafc8a35ec6ffdece3bdd3cc09ff30d.1732637041.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732637041.git.oleksii.kurochko@gmail.com>
References: <cover.1732637041.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the implementation of setup_mm(), which includes:
1. Adding all free regions to the boot allocator, as memory is needed
   to allocate page tables used for frame table mapping.
2. Calculating RAM size and the RAM end address.
3. Setting up direct map mappings from each RAM bank and initialize
   directmap_virt_start to keep simple VA <-> PA translation and if
   RAM_start isn't properly aligned then add an additional alignment
   to directmap_virt_start to be properly aligned with RAM
   start to use more superpages to reduce pressure on the TLB.
4. Setting up frame table mappings for range [ram_start, ram_end)
   and initialize properly frametable_virt_start to have simplified
   version of mfn_to_page() and page_to_mfn().
5. Setting up max_page.

Introduce DIRECTMAP_VIRT_END to have a convient way to do some basic
checks of address ranges.

Based on the memory layout mentioned in config.h, DIRECTMAP_SIZE is
expected to be inclusive, i.e., [DIRECTMAP_VIRT_START, DIRECTMAP_VIRT_END].
Therefore, DIRECTMAP_SIZE is updated to reflect this.

Update virt_to_maddr() to use introduced directmap_virt_start and newly
introduced DIRECTMAP_VIRT_END.

Implement maddr_to_virt() function to convert a machine address
to a virtual address. This function is specifically designed to be used
only for the DIRECTMAP region, so a check has been added to ensure that
the address does not exceed DIRECTMAP_VIRT_END.

After the introduction of maddr_to_virt() the following linkage error starts
to occur and to avoid it share_xen_page_with_guest() stub is added:
  riscv64-linux-gnu-ld: prelink.o: in function `tasklet_kill':
  /build/xen/common/tasklet.c:176: undefined reference to
     `share_xen_page_with_guest'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `share_xen_page_with_guest'
    isn't defined riscv64-linux-gnu-ld: final link failed: bad value

Despite the linkger fingering tasklet.c, it's trace.o which has the undefined
refenrece:
  $ find . -name \*.o | while read F; do nm $F | grep share_xen_page_with_guest &&
    echo $F; done
                     U share_xen_page_with_guest
    ./xen/common/built_in.o
                     U share_xen_page_with_guest
    ./xen/common/trace.o
                     U share_xen_page_with_guest
    ./xen/prelink.o

Looking at trace.i, there is call of share_xen_page_with_guest() but in case of
when maddr_to_virt() is defined as stub ("BUG_ON(); return NULL;") DCE happens and
the code is just eliminated.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V7:
 - Refactor maddr_to_virt() to simplify ASSERTS.
 - Merge to ASSERTS into one.
 - Update the commit message.
 - Update DIRECTMAP_SIZE to be inclusive.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6:
 - introduce DIRECTMAP_VIRT_END and use it in maddr_to_virt()
   and virt_to_maddr().
 - Update ASSERTs in maddr_to_virt() to properly varify that
   expected range for passed ma.
 - Drop the check of re-entrance of setup_frametable_mappings().
 - Update the comment above setup_frametable_mappings(): add a comment that it
   is expected to be called only once.
 - Use PFN_DOWN(frametable_size) instead of open-code:
   frametable_size >> PAGE_SHIFT.
 - Add panic() for a check that banks->nr_banks isn't 0 in setup_mm().
 - Update the comment above setup_mm(): update information about frametable as
   it isn't mapped from 0 by default.
 - Update the commit message.
---
Changes in V5:
 - correct the if-condition in virt_to_maddr():
     directmap_virt_start -> DIRECTMAP_VIRT_START
   as `va` argument of virt_to_maddr() is DIRECTMAP_VIRT_START-relative.
 - add initializer to definition/declaration of frametable_virt_start.
 - setup_frametable_mappings() update:
   - add check that setup_frametable_mappings() is called once.
   - add staic variable frametable_mfn_start inside setup_frametable_mappings()
     to handle the case when setup_frametable_mappings() is called more then
     once.
 - setup_directmap_mappings():
   - Update initialization of directmap_virt_start when setup_directmap_mappings()
     is called for the first time.
   - Introduce local variable "mfn_t base_mfn_t = _mfn(base_mfn);" to have
     less mfn_x(...) in the code.
   - Add logging of error code of map_pages_to_xen().
 - Drop ram_size variable in setup_mm() as there is no users of it.
---
Change in V4:
 - s/heap/directmap in log message in setup_directmap_mappings().
 - drop local variable total_pages in setup_mm() as it is not used.
 - call setup_frametable_mappings() for [ram_start,ram_end) range.
 - setup_frametable_mappings(ps, pe):
   - update initialization ( validation/invalidation ) of frame table.
   - add and initialize frameframetable_virt_start variable to cover
     the case that ps ( RAM start ) could be not eqaul 0 so the proper
     calculations are needed in mfn_to_page() and page_to_mfn().
 - setup_directmap_mapping():
   - update the value of directmap_virt_start: add an alignment to the size
     of HYP_PT_ROOT_LEVEL to have proper alignment so more superpages will be
     used for mapping.
   - re-use indirectly directmap_virt_start ( by using mfn_to_virt(base_mfn) )
     during mapping of directmap region for RAM bank to not face an issue with
     possible mapping overlapping during the 2nd invocation of
     setup_directmap_mapping().
 - Update the commit message.
---
Changes in V3:
  - Update the comment the part where DCE should be mentioned and directmap-related
    things are touched.
  - Move ROUNDDOWN to <xen/macros.h>.
  - s/sizeof(struct page_info)/sizeof(*frame_table) in setup_frametable_mapping().
  - Updates in setup_frametable_mapping():
    - align phys_start (ps) up to a page boundary and align phys_end (pe) down
      to a page boundary.
    - Update panic message.
    - Add the comment about alignment of frametable_size and base_mfn.
    - invalidate all frame_table entries and then just init with 0 only valid ones.
  - Double blank lines removing.
  - Initialize directmap_virt_start with DIRECTMAP_VIRT_START.
  - Updates in setup_directmap_mapping():
    - Drop local variable rc as it is used only once.
    - Move directmap_mfn_start definition to setup_directmap_mapping() and
      change __ro_after_init to __initdata.
    - Update the commit message about alignment of directmap_virt_start.
    - Move down directmap_virt_start for (base_addr & ~XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to not waste a lot of directmap space.
    - Map DIRECTMAP_VIRT_START + (base_addr & XEN_PT_LEVEL_SIZE(HYP_PT_ROOT_LEVEL))
      to _mfn(base_mfn).
    - Add log of the range in case directmap mapping failure.
  - Drop XENHEAP_VIRT_START and use directmap_virt_start instead.
  - Update the comment above setup_mm().
  - Update the calculation of bank_start and bank_end in setup_mm() to cover
    the case when a bank doesn't cover full pages.
  - Move share_xen_page_with_guest() to riscv/mm.c instead of riscv/stub.c.
  - Drop inclusion of <xen/pdx.h> in riscv/mm.c as thery is nothing used
    anymore in riscv/mm.c.
  - Move variable directmap_virt_start and setup_mm() outside
    #ifndef CONFIG_RISCV_32 ... #endif as they are likely to be common.
---
 Changes in V2:
  - merge patch 2 ( xen/riscv: implement maddr_to_virt() ) to the current one
    as maddr_to_virt() started to use the thing which are introduced in the
    current patch.
  - merge with patch 1 ( xen/riscv: add stub for share_xen_page_with_guest() )
    as this linkage issue happens during introduction of maddr_to_virt().
  - use mathematical range expressions for log messages.
  - calculate properly amount of mfns in setup_frametable_mapping() taking into
    account that ps and pe can be not properly aligned.
  - drop full stop at the end of debug message.
  - use PFN_DOWN(framsetable_size) instead of frametable_size >> PAGE_SHIFT.
  - round down ram_size when it is being accumulated in setup_mm() to guarantee
    that banks can never have partial pages at their start/end.
  - call setup_directmap_mappings() only for ram bank regions instead of
    mapping [0, ram_end] region.
  - drop directmap_virt_end for now as it isn't used at the moment.
  - update the commit message.
---
 xen/arch/riscv/include/asm/config.h |   3 +-
 xen/arch/riscv/include/asm/mm.h     |  19 ++--
 xen/arch/riscv/include/asm/setup.h  |   2 +
 xen/arch/riscv/mm.c                 | 148 ++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c              |   3 +
 xen/include/xen/macros.h            |   1 +
 6 files changed, 169 insertions(+), 7 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index ad75871283..4954677aff 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -89,7 +89,8 @@
 #define DIRECTMAP_SLOT_END      509
 #define DIRECTMAP_SLOT_START    200
 #define DIRECTMAP_VIRT_START    SLOTN(DIRECTMAP_SLOT_START)
-#define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END) - SLOTN(DIRECTMAP_SLOT_START))
+#define DIRECTMAP_SIZE          (SLOTN(DIRECTMAP_SLOT_END + 1) - SLOTN(DIRECTMAP_SLOT_START))
+#define DIRECTMAP_VIRT_END      (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE - 1)
 
 #define FRAMETABLE_SCALE_FACTOR  (PAGE_SIZE/sizeof(struct page_info))
 #define FRAMETABLE_SIZE_IN_SLOTS (((DIRECTMAP_SIZE / SLOTN(1)) / FRAMETABLE_SCALE_FACTOR) + 1)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index ebb142502e..699ed23f0d 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -12,6 +12,8 @@
 
 #include <asm/page-bits.h>
 
+extern vaddr_t directmap_virt_start;
+
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
 
@@ -25,8 +27,11 @@
 
 static inline void *maddr_to_virt(paddr_t ma)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    unsigned long va = directmap_virt_start + maddr_to_directmapoff(ma);
+
+    ASSERT((va >= DIRECTMAP_VIRT_START) && (va <= DIRECTMAP_VIRT_END));
+
+    return (void *)va;
 }
 
 /*
@@ -38,8 +43,8 @@ static inline void *maddr_to_virt(paddr_t ma)
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
     if ((va >= DIRECTMAP_VIRT_START) &&
-        (va < (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)))
-        return directmapoff_to_maddr(va - DIRECTMAP_VIRT_START);
+        (va <= DIRECTMAP_VIRT_END))
+        return directmapoff_to_maddr(va - directmap_virt_start);
 
     BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
     ASSERT((va >> (PAGETABLE_ORDER + PAGE_SHIFT)) ==
@@ -127,11 +132,13 @@ struct page_info
     };
 };
 
+extern struct page_info *frametable_virt_start;
+
 #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 
 /* Convert between machine frame numbers and page-info structures. */
-#define mfn_to_page(mfn)    (frame_table + mfn_x(mfn))
-#define page_to_mfn(pg)     _mfn((pg) - frame_table)
+#define mfn_to_page(mfn)    (frametable_virt_start + mfn_x(mfn))
+#define page_to_mfn(pg)     _mfn((pg) - frametable_virt_start)
 
 static inline void *page_to_virt(const struct page_info *pg)
 {
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c0214a9bf2..844a2f0ef1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,8 @@
 
 #define max_init_domid (0)
 
+void setup_mm(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 27026d803b..2db1193bac 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -372,6 +372,12 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return -1;
 }
 
+void share_xen_page_with_guest(struct page_info *page, struct domain *d,
+                               enum XENSHARE_flags flags)
+{
+    BUG_ON("unimplemented");
+}
+
 void * __init early_fdt_map(paddr_t fdt_paddr)
 {
     /* We are using 2MB superpage for mapping the FDT */
@@ -423,3 +429,145 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
 
     return fdt_virt;
 }
+
+vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
+
+struct page_info *__ro_after_init frametable_virt_start = frame_table;
+
+#ifndef CONFIG_RISCV_32
+
+/*
+ * Map a frame table to cover physical addresses ps through pe.
+ * This function is expected to be called only once.
+ */
+static void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    paddr_t aligned_ps = ROUNDUP(ps, PAGE_SIZE);
+    paddr_t aligned_pe = ROUNDDOWN(pe, PAGE_SIZE);
+    unsigned long nr_mfns = PFN_DOWN(aligned_pe - aligned_ps);
+    unsigned long frametable_size = nr_mfns * sizeof(*frame_table);
+    mfn_t base_mfn;
+
+    frametable_virt_start -= paddr_to_pfn(aligned_ps);
+
+    if ( frametable_size > FRAMETABLE_SIZE )
+        panic("The frametable cannot cover [%#"PRIpaddr", %#"PRIpaddr")\n",
+              ps, pe);
+
+    /*
+     * align base_mfn and frametable_size to MB(2) to have superpage mapping
+     * in map_pages_to_xen()
+     */
+    frametable_size = ROUNDUP(frametable_size, MB(2));
+    base_mfn = alloc_boot_pages(PFN_DOWN(frametable_size), PFN_DOWN(MB(2)));
+
+    if ( map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
+                          PFN_DOWN(frametable_size),
+                          PAGE_HYPERVISOR_RW) )
+        panic("frametable mappings failed: %#lx -> %#lx\n",
+              FRAMETABLE_VIRT_START, mfn_x(base_mfn));
+
+    memset(&frame_table[0], 0, nr_mfns * sizeof(*frame_table));
+    memset(&frame_table[nr_mfns], -1,
+           frametable_size - (nr_mfns * sizeof(*frame_table)));
+}
+
+/* Map the region in the directmap area. */
+static void __init setup_directmap_mappings(unsigned long base_mfn,
+                                            unsigned long nr_mfns)
+{
+    static mfn_t __initdata directmap_mfn_start = INVALID_MFN_INITIALIZER;
+
+    mfn_t base_mfn_t = _mfn(base_mfn);
+    unsigned long base_addr = mfn_to_maddr(base_mfn_t);
+    unsigned long high_bits_mask = XEN_PT_LEVEL_MAP_MASK(HYP_PT_ROOT_LEVEL);
+    int res;
+
+    /* First call sets the directmap physical and virtual offset. */
+    if ( mfn_eq(directmap_mfn_start, INVALID_MFN) )
+    {
+        directmap_mfn_start = base_mfn_t;
+
+       /*
+        * The base address may not be aligned to the second level
+        * size in case of Sv39 (e.g. 1GB when using 4KB pages).
+        * This would prevent superpage mappings for all the regions
+        * because the virtual address and machine address should
+        * both be suitably aligned.
+        *
+        * Prevent that by offsetting the start of the directmap virtual
+        * address.
+        */
+        directmap_virt_start -= (base_addr & high_bits_mask);
+    }
+
+    if ( base_mfn < mfn_x(directmap_mfn_start) )
+        panic("can't add directmap mapping at %#lx below directmap start %#lx\n",
+              base_mfn, mfn_x(directmap_mfn_start));
+
+    if ( (res = map_pages_to_xen((vaddr_t)mfn_to_virt(base_mfn),
+                          base_mfn_t, nr_mfns,
+                          PAGE_HYPERVISOR_RW)) )
+        panic("Directmap mappings for [%#"PRIpaddr", %#"PRIpaddr") failed: %d\n",
+              mfn_to_maddr(base_mfn_t),
+              mfn_to_maddr(mfn_add(base_mfn_t, nr_mfns)), res);
+}
+
+#else /* CONFIG_RISCV_32 */
+#error setup_{directmap,frametable}_mapping() should be implemented for RV_32
+#endif
+
+/*
+ * Setup memory management
+ *
+ * RISC-V 64 has a large virtual address space (the minimum supported
+ * MMU mode is Sv39, which provides GBs of VA space).
+ *
+ * The directmap_virt_start is shifted lower in the VA space to
+ * (DIRECTMAP_VIRT_START - masked_low_bits_of_ram_start_address) to avoid
+ * wasting a large portion of the directmap space, this also allows for simple
+ * VA <-> PA translations. Also aligns DIRECTMAP_VIRT_START to a GB boundary
+ * (for Sv39; for other MMU mode boundaries will be bigger ) by masking the
+ * bits of the RAM start address to enable the use of superpages in
+ * map_pages_to_xen().
+ *
+ * The frametable is mapped starting from physical address RAM_START, so an
+ * additional offset is applied in setup_frametable_mappings() to initialize
+ * frametable_virt_start to minimize wasting of VA space and simplifying
+ * page_to_mfn() and mfn_to_page() translations.
+ */
+void __init setup_mm(void)
+{
+    const struct membanks *banks = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR;
+    paddr_t ram_end = 0;
+    unsigned int i;
+
+    /*
+     * We need some memory to allocate the page-tables used for the directmap
+     * mappings. But some regions may contain memory already allocated
+     * for other uses (e.g. modules, reserved-memory...).
+     *
+     * For simplicity, add all the free regions in the boot allocator.
+     */
+    populate_boot_allocator();
+
+    if ( !banks->nr_banks )
+        panic("bank->nr_banks shouldn't be zero, check memory node in dts\n");
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_start = ROUNDUP(bank->start, PAGE_SIZE);
+        paddr_t bank_end = ROUNDDOWN(bank->start + bank->size, PAGE_SIZE);
+        unsigned long bank_size = bank_end - bank_start;
+
+        ram_start = min(ram_start, bank_start);
+        ram_end = max(ram_end, bank_end);
+
+        setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
+    }
+
+    setup_frametable_mappings(ram_start, ram_end);
+    max_page = PFN_DOWN(ram_end);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index e29bd75d7c..2887a18c0c 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 
 #include <asm/early_printk.h>
 #include <asm/sbi.h>
+#include <asm/setup.h>
 #include <asm/smp.h>
 #include <asm/traps.h>
 
@@ -59,6 +60,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
 
+    setup_mm();
+
     printk("All set up\n");
 
     machine_halt();
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index 19caaa8026..cd528fbdb1 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -2,6 +2,7 @@
 #define __MACROS_H__
 
 #define ROUNDUP(x, a) (((x) + (a) - 1) & ~((a) - 1))
+#define ROUNDDOWN(x, a) ((x) & ~((a) - 1))
 
 #define IS_ALIGNED(val, align) (!((val) & ((align) - 1)))
 
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 16:26:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 16:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843847.1259426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFyOh-0000UL-Nt; Tue, 26 Nov 2024 16:26:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843847.1259426; Tue, 26 Nov 2024 16: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 1tFyOh-0000Tz-Ix; Tue, 26 Nov 2024 16:26:43 +0000
Received: by outflank-mailman (input) for mailman id 843847;
 Tue, 26 Nov 2024 16: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=+J1p=SV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tFyOg-0000RJ-DZ
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 16:26:42 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35fe1140-ac13-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 17:26:38 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ffb5b131d0so33842991fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 08:26:38 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ffaf7c0c9dsm15210421fa.87.2024.11.26.08.26.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 08:26: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: 35fe1140-ac13-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmUiLCJoZWxvIjoibWFpbC1sajEteDIyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM1ZmUxMTQwLWFjMTMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjM4Mzk4LjI3NjM3Nywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732638397; x=1733243197; 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=+JNmpMEa1I2HbYgq85XJQ8rPr6DFQn2aF6f8rja9RxU=;
        b=PebG24KqJemuFFP7vO/B90sJWiE/ufFcXlzifRa7BiCkrNqZUqB+3JozpQqnPscjNj
         Aiq8DVLys6wZfqzjR2vPkmuFWsK7khhikqxF8X9U2GY2NrFg7Cg95ttgu+JPf9adQleb
         ymX+H68G4HW8FHu5TYsh5pbJ5b5IlQnEz6LHiMR3BpmqQ1GVn2tzbbdwcEDrtjVJo2HJ
         DV8gjmzrrLgk9ipfRHMU8AucH2pRiLuWu6IeldsPftTNJ6gdHbyIZpi5sZl277vaKapD
         w7kPTAfcuFpxBuOuT3Qm+p1dns8M6IxM3Omov3+sr24h/HTlFNGXcZ551ozmlwKaBdKh
         op+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732638397; x=1733243197;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+JNmpMEa1I2HbYgq85XJQ8rPr6DFQn2aF6f8rja9RxU=;
        b=QQ9AoURz+O5fP//ADAC8B/eeDxXC5B98KlTDWPTT6YU23/QDk8wVs8bCwUf1N8j5Vr
         gzCa1LJix2LYJjojinfyNauWYGIxlzgND3SNCr+y5Onh64dmugZ6RWegsyJK8iKO0ypR
         NUsh6WozsKWZC0d0CLdMuoP6eLqwI3vLnd/3L/xhxUIC4+0GAwhUrdue5NfA5hkyvaP0
         0AdmQgfFB4rvdAJ9pgqA9sTWP8HrSzhjGEWlovjXFo4U5KsnlpUR5YrYYS9+SAfRebL/
         5CTpECnQD/K7D10j5slNUJTaTDqrH04fzLYBdbsSLUyjOMW8leaXy2ueTXVNW+1vrKdW
         pkKQ==
X-Gm-Message-State: AOJu0YyiE3LK7oB3FLaBL01twtqGU9V8NwmUQn5Av2aAhlr0FyJJFIj2
	U+Flc8rutAmR1Zr8pFvFXToMLeRae3EOGwMQahHkIi7+7qgbCczNvcwphg==
X-Gm-Gg: ASbGnctoNNZGVj+hyIv08/kyoQkxiwK+wW5M55ippa9HDAXdpA6KYnhU6yL05tow72f
	whhc52URUpqowp3Dhwb6Vt9h6jcgv676e30BeYooqRxxIujdkNqH5TLr1iXgEIR0RQ9yBAq7+O/
	EJXFJUg+zoWjyPJeKxL4b5/de/lBU9VU5K9W0cvNUGEfhOB4IieDgQXKECQ2bNAC2zB41gEsXdo
	agf5q8Hc4WJl0vr5nBIV/0j4KkkIPCC1X/Q8CNuHdgxVxRl9h4=
X-Google-Smtp-Source: AGHT+IE400j2/zlSatUkiV4YI1YpzTqMZIW3TMOMmcWHon2npWmVjg3Xy1do0E3JDpQ6UoUvZBMApg==
X-Received: by 2002:a2e:a548:0:b0:2ff:ce49:111e with SMTP id 38308e7fff4ca-2ffce491362mr14296241fa.39.1732638397290;
        Tue, 26 Nov 2024 08:26: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 3/3] xen/riscv: finalize boot allocator and transition to boot state
Date: Tue, 26 Nov 2024 17:26:32 +0100
Message-ID: <7ba4661fc4a56ce65dbf4e07d1d051f8acbba6b9.1732637041.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732637041.git.oleksii.kurochko@gmail.com>
References: <cover.1732637041.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a call to end_boot_allocator() in start_xen() to finalize the
boot memory allocator, moving free pages to the domain sub-allocator.

After initializing the memory subsystem, update `system_state` from
`SYS_STATE_early_boot` to `SYS_STATE_boot`, signifying the end of the
early boot phase.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V7:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/setup.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 3652cb056d..9680332fee 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -65,6 +65,14 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     vm_init();
 
+    end_boot_allocator();
+
+    /*
+     * The memory subsystem has been initialized, we can now switch from
+     * early_boot -> boot.
+     */
+    system_state = SYS_STATE_boot;
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 16:26:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 16:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843849.1259446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFyOj-0000wn-9H; Tue, 26 Nov 2024 16:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843849.1259446; Tue, 26 Nov 2024 16: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 1tFyOj-0000vR-5D; Tue, 26 Nov 2024 16:26:45 +0000
Received: by outflank-mailman (input) for mailman id 843849;
 Tue, 26 Nov 2024 16:26: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=+J1p=SV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tFyOh-0000RU-F5
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 16:26:43 +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 365d96fe-ac13-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 17:26:38 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ffa8092e34so53866071fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 08:26:38 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-2ffaf7c0c9dsm15210421fa.87.2024.11.26.08.26.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 08:26: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: 365d96fe-ac13-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmUiLCJoZWxvIjoibWFpbC1sajEteDIyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM2NWQ5NmZlLWFjMTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjM4Mzk5LjAwMDM1Nywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732638398; x=1733243198; 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=hSAm2Q09kzTKY3MUbTZpmKeYeDJYD8uiVzRhU5eFlp0=;
        b=euG0KTQ4IlaZu9BC9Dk/xSoC76+qXyDvnELOHM0aVlWjtjNlSkfG//qArGalR248dV
         rOB3EdtrvJf5hikl4W6lzeZKXmlUL0pEjpWSpoUR0WXISbSCwM4G02sk/V7Zqs9+bl76
         CZnY9JHQygsox6Ha2QQy04FgGnGce0PY6UMQNg68PtM3+KyDZLm0YORRAi1ayn1Ey2hy
         lPy9kpJ7dCogNWdA+h6KRFruQ1vHvoL9LWV2HrwdUzolLQX04dYDEmupTi2mmbjpwh4t
         tkWCO7a9iP4pkziD7r7JpdDr4zyV+zAtVwD6BTjCtNDnzyvRbKmJQ8h/UUn5y0t4GwB8
         gEyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732638398; x=1733243198;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hSAm2Q09kzTKY3MUbTZpmKeYeDJYD8uiVzRhU5eFlp0=;
        b=GfpEc6gLBKmGvVbfylwmlV61zEqjYjcdRIi3rL0sG6uFZXfTqAhzsZvMMyn7aMTjqH
         ps14DvAhXpq7t9V5rm/SmdAuGiUQlkWO5hYGZ1hHPHXTdEmT5LLf4dmz+ptJV7zSTM4T
         vNgnJfc87L5tNNNSsIsPK1o5MJqEG4KXMbAQybvNF4Dusu1lFuA3/qW6aqdP5GD2KX4v
         rVCttRLML6hsVp1EIqCbu2xE0mvpvQ+5tIYpSORaWV6Vep/k2YFf0jUsP1sCNyiW7LF/
         /EtM7q7jB5vVobgE/7bVFjRABRKqFo/BnYG2NTb4weaNI+4GKyUEzdG36I2Z0sqxyb2N
         IEqg==
X-Gm-Message-State: AOJu0YwYHeqI73yjCYMGtmwUZ4J9I6++DstmoXwbPL7JMIh49XoJF7j9
	y5FE4cx7ywQArjJdjdxahEdFvAeWWk2aNKkVzlyKbhZ5jV+/mM3smiDHlA==
X-Gm-Gg: ASbGncszAjR/gPGa5lOBl2apmES8yZ3C+AQrA4QHjDibZz3WxjOhddbbIMlcPPCE4J4
	GMsvnCHqbmMXA2gRHmmC+52nAO5DczYjDANBwYJ9QgBVXyXHsXdyzs09Q7Fmz4AoxDiPlRKHRdj
	zm+nH0QHB3UIXYHRq9oODBMzR/pXTAUz7+bqfXOIZu2+5dUM8k8wv5wS5jQCHlI5NX9iIQyXQz6
	nsmoA1pqFtVH9K062L3aHgMAiMp50IuRf9rmEXZBW6rIrWkhCw=
X-Google-Smtp-Source: AGHT+IHPY7TCkLvC2URkmKA/ppO3WAaDmUtxJGu3Arf6JHd4j5Pp6wxauZob/VHBuXiP30YosWqsDw==
X-Received: by 2002:a2e:be83:0:b0:2ff:d2a9:23e6 with SMTP id 38308e7fff4ca-2ffd2a92585mr13804841fa.31.1732638396576;
        Tue, 26 Nov 2024 08:26: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 2/3] xen/riscv: initialize the VMAP_DEFAULT virtual range
Date: Tue, 26 Nov 2024 17:26:31 +0100
Message-ID: <0a7ee643402e4ddcd26dfa6e37b101e08ef3c24f.1732637041.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732637041.git.oleksii.kurochko@gmail.com>
References: <cover.1732637041.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Call vm_init() to initialize the VMAP_DEFAULT virtual range.

To support this, introduce the populate_pt_range() and
arch_vmap_virt_end() functions, which are used by
vm_init()->vm_init_type().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Change in V2-V7:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/mm.c    | 11 +++++------
 xen/arch/riscv/pt.c    |  6 ++++++
 xen/arch/riscv/setup.c |  3 +++
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 2db1193bac..9359dc7f33 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -351,12 +351,6 @@ void arch_dump_shared_mem_info(void)
     BUG_ON("unimplemented");
 }
 
-int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
-{
-    BUG_ON("unimplemented");
-    return -1;
-}
-
 int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
                               union add_to_physmap_extra extra,
                               unsigned long idx, gfn_t gfn)
@@ -571,3 +565,8 @@ void __init setup_mm(void)
     setup_frametable_mappings(ram_start, ram_end);
     max_page = PFN_DOWN(ram_end);
 }
+
+void *__init arch_vmap_virt_end(void)
+{
+    return (void *)(VMAP_VIRT_START + VMAP_VIRT_SIZE);
+}
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index cc5e2d3266..d62aceb36c 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -1,6 +1,7 @@
 #include <xen/bug.h>
 #include <xen/domain_page.h>
 #include <xen/errno.h>
+#include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
@@ -419,3 +420,8 @@ int map_pages_to_xen(unsigned long virt,
 
     return pt_update(virt, mfn, nr_mfns, flags);
 }
+
+int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
+{
+    return pt_update(virt, INVALID_MFN, nr_mfns, PTE_POPULATE);
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 2887a18c0c..3652cb056d 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
+#include <xen/vmap.h>
 
 #include <public/version.h>
 
@@ -62,6 +63,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     setup_mm();
 
+    vm_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 16:28:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 16:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843878.1259462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFyQn-0002cZ-OX; Tue, 26 Nov 2024 16:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843878.1259462; Tue, 26 Nov 2024 16:28: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 1tFyQn-0002cS-LZ; Tue, 26 Nov 2024 16:28:53 +0000
Received: by outflank-mailman (input) for mailman id 843878;
 Tue, 26 Nov 2024 16:28: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFyQm-0002cK-SH
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 16:28:52 +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 83cd499a-ac13-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 17:28:48 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3824a089b2cso3495883f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 08:28: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-433cde8fcdfsm167214035e9.32.2024.11.26.08.28.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 08:28: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: 83cd499a-ac13-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmEiLCJoZWxvIjoibWFpbC13cjEteDQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgzY2Q0OTlhLWFjMTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjM4NTI4Ljk2NzI5Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732638528; x=1733243328; 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=6LbY2/Z8g3yZAlSZ2+2/h3c1vYNCFGWYirCl7GAhQYM=;
        b=EDWar1TBZing8oL3WffM2IQ3OWIKCsPIxa/uPowshDzLVzzjq3g4CmxzEiclC7GUoh
         TKOVz+QzNR8zptFSWUgo3ZFyx/rAld6tFXLk65bgUkV6GoERvKocLgUUYFkIrPSHf1mb
         sXSRxmBnPuHyPF/0eozamoYbGcPSulNsgWvK8hy1P3zQf2epLMsrt9HpVEDm6E6UEEDK
         /BSMS8VYzr+x/LRkzfSR+ADwsgJrQIv3M5HSEeLK7uE+S/0POb2O4mqpwniwwOOoXHNp
         X73f7mnzIs2C+pzUL5iRK9Yv+ES8ETJjdNDLVKMQOJfdNttytrZE3s8KRXDqgiWckT8z
         5wtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732638528; x=1733243328;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6LbY2/Z8g3yZAlSZ2+2/h3c1vYNCFGWYirCl7GAhQYM=;
        b=HM2B+Jkpm09N/3gmtca0Tlg2R6rETa/JQ8gLULjYWCHY/jLNxkTjpCqRhwW3w7zU5E
         aEquVCc3XGp2dW1XE0z4zk5JEq4FqJ1yAo6d/E/HlFCw8EloAbVXg2Topv7nXWhsUVlI
         xE/hr7T8R/g8eH3hEVBwcuzF6ckEdRXJCdgW27PM/stV/6IYZ24Mw0C6Ko7FFzbtlOrq
         hSOfF46EnsABKN9G9NcPGkMYYbGap2vjKnxzlBH4xI63VRXrEiEAom9i1zp6Ga81DIyA
         82g9LG6Rfk9PktCdG/MGc6PnVOh+C/nfm8gpATIu4EY4rK4j809hkvVaQySxsFfYLL2P
         PsUA==
X-Forwarded-Encrypted: i=1; AJvYcCWugr8jxBpiB3AcXIEAePrxAgmzM64VC5PIdc0NYR42kb/zYIRiqnlbz+NwZH9aDAqM0j373ihv52Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygPkTraa1c/oSvRFBwipzK+fDiFo6uymcrxgvBmVk5jXLCe4qY
	3FiJcsRNwVc/gzL5wZ7w2Qb6HfUsF2A1aXkSrBTN0gM8bL7SkpLtmUHZiyrkIg==
X-Gm-Gg: ASbGncsUH1rWBcLJCad/LDvK66Ib/Q2GPI+36D6VCGrgSWSjrz3bsNiiEbKf1r4sXvz
	b/Eog2+o6p+YWZbGjqh+jTIy2FV2ZHSSy7VM0rq+9g6u52EnDWTeqLT87oDubSRsVOfYMbERf5/
	i1jkiOB3Cwy06v+RfGIwHXnyTjeoh9KiBgQhojavci48hxEkstr+JmIWnM8VHftAp40jWFE0m26
	3voJbLP6NahxAZgph84CkVB2rbM87aItxUjuYO6xNu6/Sk9f0jJrYhvsh8/mieQ4HT5zsdS+Zyw
	A9uaFIYwWqJ2GGhtef3v9t2+1ChYH0/tEx0=
X-Google-Smtp-Source: AGHT+IFuwqCo23vZ7CQ2AEXcwrXSl4eUFZb+ZirE/SQjeBEt1ET2dlTeEk9vv6esat38KQBFkVeX7w==
X-Received: by 2002:a5d:64ce:0:b0:382:38e6:1eb3 with SMTP id ffacd0b85a97d-38260b86501mr12498017f8f.30.1732638528340;
        Tue, 26 Nov 2024 08:28:48 -0800 (PST)
Message-ID: <be2c69d0-2d6a-4774-a6b6-a71b44aaa41b@suse.com>
Date: Tue, 26 Nov 2024 17:28:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@cloud.com>
 <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
 <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com>
 <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com>
 <D5W3YYDE2F09.IHJMRBUBE6EV@cloud.com>
 <e40ed7c2-6111-468e-8655-884953bd33e7@suse.com>
 <6bba75e1-72d9-482e-be11-40c549651f10@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: <6bba75e1-72d9-482e-be11-40c549651f10@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 15:39, Teddy Astie wrote:
> Le 26/11/2024 Ã  14:20, Jan Beulich a Ã©critÂ :
>>>> Signed-ness of plain char doesn't really matter as long as it's used only for
>>>> what really are characters (or strings thereof). And that looks the be pretty
>>>> much the case throughout the public headers.
>>> Maybe. Still, as a general principle caller and callee ought to agree on size,
>>> alignment and sign for every type. I'd rather not make exceptions for that
>>> invariant unless truly well motivated. And in this case it's a case of
>>> requiring trivial non-functional changes.
>> In how far they're non-functional will need to be seen. You also need to keep
>> consumers in mind: They may face sudden type disagreement that compilers may
>> complain about. Yet "stable" for the public headers means not just the ABI
>> itself being stable, but updated headers also being usable as drop-in
>> replacements for older versions.
> 
> I don't think we currently enforce stability on all Xen headers 
> (especially not those control-domain related).
> For instance
> 
> Commit 21e3ef57e0406b6b9a783f721f29df8f91a00f99
> x86: Rename {domctl,sysctl}.cpu_policy.{cpuid,msr}_policy fields
> 
> actually modifies the name of some fields in a struct of sysctl.h, so I 
> suppose modifying the type of fields with more defined variants is 
> acceptable.

Context shifted away from what the subject says, towards doing replacement
on _all_ public headers. For domctl/sysctl and other toolstack-only ones
the transformation would indeed be less problematic (it would be mainly us
who need to adjust the wrapper functions in the libraries).

> One thing remain is that if the user is not careful of this change and 
> char is silently replaced by uint8_t, could that break something by 
> possibly changing the signed-ness ?

Well, sure, such a risk exists. Much would depend on how the wrapper
functions were adjusted.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 16:30:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 16:30:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843896.1259473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFySW-0004WF-4W; Tue, 26 Nov 2024 16:30:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843896.1259473; Tue, 26 Nov 2024 16:30: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 1tFySV-0004W8-Vu; Tue, 26 Nov 2024 16:30:39 +0000
Received: by outflank-mailman (input) for mailman id 843896;
 Tue, 26 Nov 2024 16:30: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=zjIj=SV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tFySU-0004W2-JP
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 16:30:38 +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 c2c888de-ac13-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 17:30:34 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-38232cebb0cso4443497f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 08:30: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-3825fad62fasm13669582f8f.15.2024.11.26.08.30.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 08:30: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: c2c888de-ac13-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmUiLCJoZWxvIjoibWFpbC13cjEteDQyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMyYzg4OGRlLWFjMTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjM4NjM0LjYwODUyMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732638634; x=1733243434; 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=+iQsoucG1FbnWYK5dYnT0dzMfVPx6QEiyqOs78wZ2cU=;
        b=X9BszPfvTBwCOgMKjpCAQ5W+wpNumbOpYUqAbA9tdwDyhatupu1R2wleFKpNFY976W
         OBRnaC0hRMRywVqelzwsZ20Ypk/i3/DOzbJh267U+amieZsH8PCwjPtYHU2aUtI+dXKa
         8NIxcu+hHH6u1kzlkOfiepRAOWitcIoV2T0ps0MJJ4KtsCHdYsZGfA6TRt37PliYKO1G
         WrJKmClztC0x51E1v3qoyvYt9FDPKY4j+OWGcOYnIh5j8KkN06oHDYJNyczegHKHgXyJ
         66gip96jGBhKgS5ECsM6u7F29smlUHKFsNVPb7gWaSd2OBTeWFljP9UAgxXMJhdmDtrp
         Hgkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732638634; x=1733243434;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+iQsoucG1FbnWYK5dYnT0dzMfVPx6QEiyqOs78wZ2cU=;
        b=aLewwC2YJtcg3F/RPMrfsG6kP/8wH25zVxVosb53vk21PXM3KrY/iZuCx3oIFTKDqS
         M/SwcvsUiOnhD5FdYToTcskmfYQtetRjf8b8clKjSoGqQDApYHu1eWjekR078sW3etZD
         tfxgcwTbrhqv2mppzS7uL6XWTEJ1ReCD45qh34209HAnLP3fJhzx9PxuLE3NyU056cfb
         /VzhiC/kE0ooiF5CyPpjd3tOkDCaL1Z8vKw+gKAsSR3T8wONZZvqrd3uEz2iyCd/jLPi
         pJkg9Nr9eehjY/7GJbepsMswmnQuLQgN5RXMYOAHA9CP0DqXhf3sbSVnc6qdOcX5We58
         lKMA==
X-Forwarded-Encrypted: i=1; AJvYcCV3mjcx3s7MmocUZz61parC+k+ibzYXZwJ6M2XlCL1Fj9OIs9cJZhkZXqpKYyfJPY+b9e/f7LjNO40=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTc8JhaZH7GdlME2GkuD/so4kOmLs8zhiVC+abgg+P3URQh7xe
	C/UR7XRFi8NHviKAD5OBvZaX148cF/WmPrmCLnXo9Xq8B0xZgXsZTyKnlOuHrw==
X-Gm-Gg: ASbGncvaSSFZEGikZq/uoR9OmXAe+Y/VVP8oEHMVSbt//GVNL7XPIUpoyxv25wlKZXJ
	M86TCfRYF1RMBf54kDsGpDgt60Ld1HoF41kxq8+k5DdOhtAneA1bR5lpadpltnwfIfCC1Jil/ro
	Kzh2zMaLJpH/Ok4/JAfyDrxcDhGzPSoA2KIgRlRR3Bu795ZBpWsn6a7I3zVh+K99PbNWYY9Mq2R
	TJdgDU5JsiRAJ4alhJZDhRvSJ/HJza3yFTcUB1G1Ep95xzjnYM4lzZLvkADxHP0jtpdBPOciAPk
	gRiwUlsEVQZlBgmJkk0WV14atCFcQQDv65Q=
X-Google-Smtp-Source: AGHT+IEd95bTHAZSKLvE9QKPKw+vReSo1DhCpwBxogiPRe6cByDib6fh5tOZ6NVWSzFLA7Tqtp5Vww==
X-Received: by 2002:a5d:5c0e:0:b0:382:4e57:48f8 with SMTP id ffacd0b85a97d-38260bc9755mr16975825f8f.43.1732638633984;
        Tue, 26 Nov 2024 08:30:33 -0800 (PST)
Message-ID: <5707cbdd-00f5-41e8-a376-602976087934@suse.com>
Date: Tue, 26 Nov 2024 17:30:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 12/25] xen: Replace sysctl/readconsole with
 autogenerated version
To: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20241115115200.2824-1-alejandro.vallejo@cloud.com>
 <20241115115200.2824-13-alejandro.vallejo@cloud.com>
 <0a5a66d9-4fd4-4084-b7f9-0923d5a4c6d5@suse.com>
 <D5VHI2OA8QTK.1H4ZDUSP5EZX5@cloud.com>
 <737292fd-1c4a-4fd6-ae98-a701adb0b88e@suse.com>
 <D5W3YYDE2F09.IHJMRBUBE6EV@cloud.com>
 <e40ed7c2-6111-468e-8655-884953bd33e7@suse.com>
 <D5W6PN8FJ5CA.378A9JFXP34X7@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: <D5W6PN8FJ5CA.378A9JFXP34X7@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2024 15:36, Alejandro Vallejo wrote:
> On Tue Nov 26, 2024 at 1:20 PM GMT, Jan Beulich wrote:
>> On 26.11.2024 13:27, Alejandro Vallejo wrote:
>>> On Tue Nov 26, 2024 at 9:40 AM GMT, Jan Beulich wrote:
>>>> On 25.11.2024 19:51, Alejandro Vallejo wrote:
>>>>> On Mon Nov 25, 2024 at 12:05 PM GMT, Jan Beulich wrote:
>>>>>> On 15.11.2024 12:51, Alejandro Vallejo wrote:
>>>>>>> Describe sysctl/readconsole as a TOML specification, remove old
>>>>>>> hand-coded version and replace it with autogenerated file.
>>>>>>>
>>>>>>> While at it, transform the console driver to use uint8_t rather than
>>>>>>> char in order to mandate the type to be unsigned and ensure the ABI is
>>>>>>> not defined with regards to C-specific types.
>>>>>>
>>>>>> Yet the derived C representation imo then should still be using char, not
>>>>>> uint8_t.
>>>>>
>>>>> There's 2 issued addressed by this patch.
>>>>>
>>>>>   1. The removal of char from the external headers (and the Xen driver).
>>>>>   2. The replacement of the existing struct by the autogenerated one.
>>>>>
>>>>> (1) wants doing irrespective of (2). char has neither a fixed width nor a fixed
>>>>> sign. Which is irrelevant for ABI purposes in this case because what we really
>>>>> meant is "give me a pointer" in this hypercall, but it may be important in
>>>>> other cases.
>>>>>
>>>>> IOW, char should've never made it to the definition of the public ABI, and I'm
>>>>> merely taking the chance to take it out. Happy to extract this patch and send
>>>>> it separately.
>>>>
>>>> Well, work towards fully getting char out of the public headers may indeed be
>>>> worthwhile. Otoh with char being the basic addressing granularity, I think
>>>> the ABI is pretty much tied to sizeof(char) == 1, imo limiting the
>>>> worthwhile-ness quite a bit.
>>>
>>> Let me put it another way. If I were to create a separate patch stripping char
>>> and using uint8_t instead, what are my chances of getting an Acked-by? Or not a
>>> NAK, at least. (there's other maintainers that I need that from, but one step
>>> at a time).
>>
>> That would to some degree depend on what other maintainers think. Not a straight
>> NAK in any event.
>>
>>>> Signed-ness of plain char doesn't really matter as long as it's used only for
>>>> what really are characters (or strings thereof). And that looks the be pretty
>>>> much the case throughout the public headers.
>>>
>>> Maybe. Still, as a general principle caller and callee ought to agree on size,
>>> alignment and sign for every type. I'd rather not make exceptions for that
>>> invariant unless truly well motivated. And in this case it's a case of
>>> requiring trivial non-functional changes.
>>
>> In how far they're non-functional will need to be seen. You also need to keep
>> consumers in mind: They may face sudden type disagreement that compilers may
>> complain about. Yet "stable" for the public headers means not just the ABI
>> itself being stable, but updated headers also being usable as drop-in
>> replacements for older versions.
> 
> Would it be fair to say that users of the Xen low-level API strictly go via
> xenctrl et al?

No - recall we're meanwhile talking about all public headers, not just ones
limited to toolstack use. Kernels (and alike, e.g. xtf) obviously won't use
xenctrl.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 16:44:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 16:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843911.1259482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFygG-0006Vp-83; Tue, 26 Nov 2024 16:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843911.1259482; Tue, 26 Nov 2024 16:44: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 1tFygG-0006Vi-4u; Tue, 26 Nov 2024 16:44:52 +0000
Received: by outflank-mailman (input) for mailman id 843911;
 Tue, 26 Nov 2024 16:44: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=v151=SV=bounce.vates.tech=bounce-md_30504962.6745faf9.v1-0688dcd5cbf84ea789141c1879271c86@srs-se1.protection.inumbo.net>)
 id 1tFygE-0006Vc-5a
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 16:44:50 +0000
Received: from mail179-37.suw41.mandrillapp.com
 (mail179-37.suw41.mandrillapp.com [198.2.179.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc2e17d4-ac15-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 17:44:43 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4XyT2159SCzG0CBP9
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 16:44:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0688dcd5cbf84ea789141c1879271c86; Tue, 26 Nov 2024 16: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: bc2e17d4-ac15-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE3OS4zNyIsImhlbG8iOiJtYWlsMTc5LTM3LnN1dzQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImJjMmUxN2Q0LWFjMTUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjM5NDgzLjQwMjkzNywic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDVmYWY5LnYxLTA2ODhkY2Q1Y2JmODRlYTc4OTE0MWMxODc5MjcxYzg2QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732639481; x=1732899981;
	bh=u2edpL9A3CYIADy/5nFGhk+zu8DB9yJIDOSz906iVHQ=;
	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=E/DA2Uc3VkE6FWg1hTDsJcvmB06VBkO6JaPnorJ9YX5i6cTyhMoYrLV8I7YxzeekV
	 0T49cah80iOlKFGq6t8q2OBfNSMa/fFowhQ59+c+2OyDAH0Zbm95pIonTwgHtnySdy
	 3QfXOLOn/QG1pUXhVWZABz70PcvMKRtd9QfOt7ZzhpMCKcLu5CapTBnkRhxPBwh1yM
	 ifwIX6KdsjEQTITGsj1PTVANoQdeZUYF9Cy0EH05OAB+vvdwifbnWObDJfiyGO02C/
	 yJ02QrtkEXS5ok9Ze5fOy31TgyyTkQJygc7g5X/PHddf9OJUQsLK8Mr2ougGqJEiaE
	 N5pt+6nGLlVNw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732639481; x=1732899981; i=anthony.perard@vates.tech;
	bh=u2edpL9A3CYIADy/5nFGhk+zu8DB9yJIDOSz906iVHQ=;
	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=FSFaVkV3h6/EnawpgvEn63nUdKER2KWtVs0JvqONM7gxAbHZVRfFQy1j8OI6xahuU
	 i1MxaNhzIvkseF0i/15D3ypGwsIcRaXbH/LNgous45hjJgVWiGAQnCaW9PpVxnUj/2
	 NMAJdcdTeB5zPq6azyF6Eurswqh8Zv0jlF80Mf1haqygbmQgd93MBz7KhSRlL6B4EP
	 4fHJZ7wcqBVA8counh5xdZR6Nupv3FTYoGTC2Qe1W3A8mmpSomFSvjt1dutnmoW3YM
	 GoglQfeMvA30zpwhbQCI5uru1eDwxeMikdTmIR9PrO0L9fRV83H1MaUYdJSp5piE4R
	 QD9Ch10Q4Ii5w==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=204/6]=20tools/libs:=20add=20a=20new=20libxenmanage=20library?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732639481127
To: =?utf-8?Q?J=C3=BCrgen=20Gro=C3=9F?= <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <Z0X6-EzHQtVjDGs7@l14>
References: <20241023131005.32144-1-jgross@suse.com> <20241023131005.32144-5-jgross@suse.com> <Z0CNNdezcIbUelrk@l14> <1846da14-f942-4414-8776-d76019fba37f@suse.com>
In-Reply-To: <1846da14-f942-4414-8776-d76019fba37f@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.0688dcd5cbf84ea789141c1879271c86?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241126:md
Date: Tue, 26 Nov 2024 16:44:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Nov 22, 2024 at 04:12:25PM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 22.11.24 14:55, Anthony PERARD wrote:
> > On Wed, Oct 23, 2024 at 03:10:03PM +0200, Juergen Gross wrote:
> > > diff --git a/tools/include/xenmanage.h b/tools/include/xenmanage.h
> > > new file mode 100644
> > > index 0000000000..2e6c3dedaa
> > > --- /dev/null
> > > +++ b/tools/include/xenmanage.h
> > > @@ -0,0 +1,98 @@
> > > +/*
> > > + * Copyright (c) 2024 SUSE Software Solutions Germany GmbH
> > > + *
> > > + * This library is free software; you can redistribute it and/or
> > > + * modify it under the terms of the GNU Lesser General Public
> > > + * License as published by the Free Software Foundation;
> > > + * version 2.1 of the License.
> > > + *
> > > + * This library is distributed in the hope that it will be useful,
> > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > > + * Lesser General Public License for more details.
> > > + *
> > > + * You should have received a copy of the GNU Lesser General Public
> > > + * License along with this library; If not, see <http://www.gnu.org/=
licenses/>.
> > 
> > Shall we use SPDX tags instead of this boilerplate?
> 
> My thinking was to avoid that for "official" header files, as those might
> be copied verbatim to other projects, which might not use SPDX. So having
> the license text verbatim avoids any problems in this regard.

Well, this header in particular would be fairly useless, I believe, if it
was copied into an other project, it described a library so need to be
distributed along side the library. Second, this isn't the text of the
license but something describing which license is used and where to
find the text for it. An SPDX tag does nearly the same thing, but can
actually be parse by a computer.

Official headers that would be useful to be copied into other project
already expose the SPDX tags, many/all the headers in
xen/include/public, as well as headers created by `mkheader.py` in this
directory (tools/include).

I've taken a look into my directory "/usr/include", and they are plenty
of headers having the SPDX tag.

So overall, I think we are fine to use SPDX tags here as well. ;-)

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 17:07:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 17:07:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843922.1259491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFz1h-0001KC-Vd; Tue, 26 Nov 2024 17:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843922.1259491; Tue, 26 Nov 2024 17:07: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 1tFz1h-0001K5-Ss; Tue, 26 Nov 2024 17:07:01 +0000
Received: by outflank-mailman (input) for mailman id 843922;
 Tue, 26 Nov 2024 17:07: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=lAfR=SV=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1tFz1g-0001Jz-76
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 17:07:00 +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 d74580a1-ac18-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 18:06:56 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5cfaa02c716so7514163a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 09:06:56 -0800 (PST)
Received: from localhost.localdomain ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3bfa27sm5213946a12.37.2024.11.26.09.06.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 09:06: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: d74580a1-ac18-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ3NDU4MGExLWFjMTgtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjQwODE2LjU0NjM0Niwic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732640816; x=1733245616; 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=fPIZ22ML9suk8fFJ87mEcSpGb1DdtpFHM7NqH1LU+GM=;
        b=cCp2b/O4/SC6w4eIJgTcRQtu0lInWhM/NUOBhkuscDVN7j/TctcoX5LAOuSi//QAh0
         deNvRhVHdPsffaWhwvDsxgC6Puiajx7a7JcHSXnywgUfMLu78n6jwjSU1N8oEhjCDyQ8
         cvEr7TgIwM4f2iHc2D33AIKlBAlLWR4E+Rs6c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732640816; x=1733245616;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fPIZ22ML9suk8fFJ87mEcSpGb1DdtpFHM7NqH1LU+GM=;
        b=xRuSTvc+JODgiZnKl2Our5uZu19CoLXSnQRc1jsSegbpsvBB7j3aEq4kyNKpa6pqN8
         w2jNhxTCy+Y9b1g4zEcjGVZCFiBSvEoNcQGmovlgPRvYARkV45pG283Zaz+Mq+0xrk2/
         3mLblIOMrM2sijKSEx7wARYvb78Zf69NcIzg0xREPj64IOfbdXwoynKTWJi9kt+GHGEG
         eLpnSsxx6u3NP2pvQ6GjmxxSMh9pQeXEpROTc3cPe9DTpQ6C8h4AEG872LQNk/WqoQnv
         H01dxYfQNqQB4eRCEAIu7U/u0TiBS9+8rflis5+fgdv55ad3dZ5owgbLgUS/DwTAzQ9P
         JULQ==
X-Gm-Message-State: AOJu0YwjXj0xHy5l5daBVBm3aVS//Z3aiF8WvVrvP6SeC/dNIsSLcipa
	OL1QhlN/Ows4dX++Rh+PuDuw0s/0Dmf/X+nCY+4B4uM1QT3gjKZ87SzZ5ptbK1bYR1HCGapJ7yI
	67lU=
X-Gm-Gg: ASbGncsn/AwHWPQvauS08ReFQSMM4PfyI/K2ZVTsBnaFFcnriNTB9JSmfwrgEEICiuF
	QH+AwSCXLn8JttoxQffysAKTWm9tehYYRrJK/w7rQUjfzvirnbdwSzuiMah9a/ohbSqvarD0gj9
	ePhxhxzleY5KPo2cae3hAF48Dvr1HlLA7YyjPHxzaECc2qmm7pllB/Sxm6DekoYgWmKQpUc0aWl
	OHP3IyB5fzacfcXLlH/Er5sqsR9B3Af0Di9j4voUAUYAiVetWsLjJIBFztFeimjDQs=
X-Google-Smtp-Source: AGHT+IEP9luS/b6NuZUskIvgfr4LRLAoCXAKoBLd8X7HxE+A/NhS2OGS752I+QmJoX8PBXdT1YHogQ==
X-Received: by 2002:a05:6402:5ce:b0:5cf:3dc3:7a3f with SMTP id 4fb4d7f45d1cf-5d080b7fb81mr34534a12.5.1732640815277;
        Tue, 26 Nov 2024 09:06:55 -0800 (PST)
From: Javi Merino <javi.merino@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Javi Merino <javi.merino@cloud.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: [XEN PATCH v1] x86/APIC: Read Error Status Register correctly
Date: Tue, 26 Nov 2024 17:06:15 +0000
Message-ID: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The logic to read the APIC_ESR was copied from linux in a commit from
2002: 4676bbf96dc8 (bitkeeper revision
1.2 (3ddb79c9KusG02eh7i-uXkgY0IksKA), 2002-11-20).  In linux 3.14,
this logic was fixed to follow the Intel SDM (see commit
60283df7ac26 (x86/apic: Read Error Status Register correctly,
2014-01-14) in the linux kernel).  The Intel(r) 64 and IA-32
Architectures Software Develover's Manual currently says
in Volume 3, Section 12.5.3:

  Before attempt to read from the ESR, software should first write to
  it. (The value written does not affect the values read subsequently;
  only zero may be written in x2APIC mode.) This write clears any
  previously logged errors and updates the ESR with any errors
  detected since the last write to the ESR. This write also rearms the
  APIC error interrupt triggering mechanism.

Update error_interrupt() to remove the first read and follow the Intel
manual.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
---
 xen/arch/x86/apic.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index bb86a1c161b3..b4f542d25918 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -1385,20 +1385,19 @@ static void cf_check error_interrupt(void)
         ", Illegal register address",
     };
     const char *entries[ARRAY_SIZE(esr_fields)];
-    unsigned int v, v1;
+    unsigned int v;
     unsigned int i;
 
     /* First tickle the hardware, only then report what went on. -- REW */
-    v = apic_read(APIC_ESR);
     apic_write(APIC_ESR, 0);
-    v1 = apic_read(APIC_ESR);
+    v = apic_read(APIC_ESR);
     ack_APIC_irq();
 
     for ( i = 0; i < ARRAY_SIZE(entries); ++i )
-        entries[i] = v1 & (1 << i) ? esr_fields[i] : "";
+        entries[i] = v & (1 << i) ? esr_fields[i] : "";
     printk(XENLOG_DEBUG
-           "APIC error on CPU%u: %02x(%02x)%s%s%s%s%s%s%s%s\n",
-           smp_processor_id(), v, v1,
+           "APIC error on CPU%u: %02x%s%s%s%s%s%s%s%s\n",
+           smp_processor_id(), v,
            entries[7], entries[6], entries[5], entries[4],
            entries[3], entries[2], entries[1], entries[0]);
 }
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 17:13:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 17:13:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843934.1259502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFz84-00039t-PD; Tue, 26 Nov 2024 17:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843934.1259502; Tue, 26 Nov 2024 17:13: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 1tFz84-00039m-Lc; Tue, 26 Nov 2024 17:13:36 +0000
Received: by outflank-mailman (input) for mailman id 843934;
 Tue, 26 Nov 2024 17:13: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=zdLj=SV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tFz83-00039g-DA
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 17:13:35 +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 c234db45-ac19-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 18:13:30 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5d01db666ceso5834926a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 09:13:30 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3fc93fsm5302113a12.67.2024.11.26.09.13.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 09:13: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: c234db45-ac19-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzUiLCJoZWxvIjoibWFpbC1lZDEteDUzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMyMzRkYjQ1LWFjMTktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjQxMjEwLjU3OTUxOCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732641210; x=1733246010; 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=K3BFw86DvVDmUcV94J2lC3byHlePeYq8mIg48blZRq0=;
        b=ZMaiWNLVWHlwa9D1wTS220ucZSf8/ZhMsCSBkdPGYVUamkhLIt8PorWYBwxvA0BAE1
         nuipuJplZCnY9b0E4J/+1CpHltnhQdJeIV1QlLIbLxtXGY8XaLYle/3lI+RW5yvHcYkf
         EdQ6j6YQKxdNh1jlkcKed9PMjY2l6YNZUPQgQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732641210; x=1733246010;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K3BFw86DvVDmUcV94J2lC3byHlePeYq8mIg48blZRq0=;
        b=DPPne3wWvqEt4J6+yS1tV3M3bX7olPRwZw4jcWmYhCVLrOiaFHCJSXSt6TYm/3Ag69
         2wxOKBULwiwe8M1+qX0bdbkiXTheF9NXbm5tiPRGO2gFiuok5b5JHKyT/hyznxmqt+hL
         6d7ALU3KX3TGgFMC4TPv1FQKHrKTynrWT4jhxWDq/asXGjgRWLYeVsKr5ewJRjUW9fic
         +nvDnnV9GXXgvNORnvZQPV3fbhlb12m/xUlfg/8xE3eLkwW/0dOEq7TkGTvJf8pttWsx
         jeyYo5ldQjhXsKqIhI1TrsoYICo+FgOuS2YoiIKakDFkKia16diwKIOLThjFPDZg7hgA
         Iksg==
X-Forwarded-Encrypted: i=1; AJvYcCW1Cq4c7yF+pmI/MCdU7h6uaXN3/fowJWipOR5eMNAvudmM6kKIMYtH2ekK8OEVDE+TpDVUM0F6Djw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywrt6yb170aDOrejl4zrMXWkWMzshih3rZNJjPm/rqd2BtF7K0I
	an3J4iSDRo6adnCxk9BmChx6HVnuj8YlRCh8/ONfszUnnEEREh+JOFZXLP4SDUVpyOiTMX9j1Oy
	3
X-Gm-Gg: ASbGncuO4sfkO3PsCridQSyn7S68hHEdcYRL4BmRaUazMVNSZ46ZGpMZ8qW/jUOSVxG
	u+Y+NgYTcBMlHIQaL4L7odgXUbuQCxCJv3ISw9e3XnKL0zoBqrj/DXpehwa0716fDiWriQhje7Z
	oB/wMvD+J1r9oOJyhH7AzBwjENNkJwVrzoRUFuYkzYZyN1ldeiAJB9WfUIiPND1/qDezVuNwNfV
	FWx4Z/efmTggKP4gd40xN+VvC0B/LZdI0E8vjRW8BSkwLSUg+G8n85DRzw1Jfg=
X-Google-Smtp-Source: AGHT+IG8DJ9sClJ+l7KVFcgKex3O5zp/DO0WCF35QDDORtvrRs77HeWYEOksm5y2zr6ePlsgmi5OqQ==
X-Received: by 2002:a05:6402:27d0:b0:5cf:d078:c9dc with SMTP id 4fb4d7f45d1cf-5d080c4868cmr14191a12.22.1732641210036;
        Tue, 26 Nov 2024 09:13:30 -0800 (PST)
Message-ID: <2bc5221d-e54b-47f2-9f2e-ff76c0d74c90@citrix.com>
Date: Tue, 26 Nov 2024 17:13:27 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] x86: re-work memset()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <62b3403f-3800-4c1e-a7a2-165ebfac04c0@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <62b3403f-3800-4c1e-a7a2-165ebfac04c0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2024 2:28 pm, Jan Beulich wrote:
> Move the function to its own assembly file. Having it in C just for the
> entire body to be an asm() isn't really helpful. Then have two flavors:
> A "basic" version using qword steps for the bulk of the operation, and an
> ERMS version for modern hardware, to be substituted in via alternatives
> patching.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

This is far nicer than previous versions with nested alternatives.

> ---
> We may want to consider branching over the REP STOSQ as well, if the
> number of qwords turns out to be zero.

Until FSR{S,M} (Fast Short Rep {STO,MOV}SB), which is far newer than
ERMS, passing 0 into any REP instruction is expensive.

I wonder how often we memset with a size less than 8.

> We may also want to consider using non-REP STOS{L,W,B} for the tail.

Probably, yes.Â  We use this form in non-ERMS cases, where we're advised
to stay away from STOSB entirely.

Interestingly, Linux doesn't have a STOSQ case at all.Â  Or rather, it
was deleted by Linus in 20f3337d350c last year.Â  It was also identified
as causing a performance regression.Â 
https://lore.kernel.org/lkml/CANn89iKUbyrJ=r2+_kK+sb2ZSSHifFZ7QkPLDpAtkJ8v4WUumA@mail.gmail.com/T/#u
although the memset() path was not reverted as part of the fix
(47ee3f1dd93bcb eventually).

Yet ca96b162bfd2 shows that REP MOVSQ is still definitely a win on Rome
CPUs.

I expect we probably do want some non-rep forms in here.

Do you have any benchmarks with this series?

> ---
> v3: Re-base.
>
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -48,6 +48,7 @@ obj-$(CONFIG_INDIRECT_THUNK) += indirect
>  obj-$(CONFIG_PV) += ioport_emulate.o
>  obj-y += irq.o
>  obj-$(CONFIG_KEXEC) += machine_kexec.o
> +obj-y += memset.o
>  obj-y += mm.o x86_64/mm.o
>  obj-$(CONFIG_HVM) += monitor.o
>  obj-y += mpparse.o
> --- /dev/null
> +++ b/xen/arch/x86/memset.S
> @@ -0,0 +1,30 @@
> +#include <asm/asm_defns.h>
> +
> +.macro memset
> +        and     $7, %edx
> +        shr     $3, %rcx
> +        movzbl  %sil, %esi
> +        mov     $0x0101010101010101, %rax
> +        imul    %rsi, %rax
> +        mov     %rdi, %rsi
> +        rep stosq
> +        or      %edx, %ecx
> +        jz      0f
> +        rep stosb
> +0:
> +        mov     %rsi, %rax

Could you use %r8/9/etc instead of %rsi please?Â  This is deceptively
close to looking like a bug, and it took me a while to figure out it's
only correct because STOSB only edits %rdi.

Otherwise, I suspect this can go in.Â  It should be an improvement on
plain REP STOSB on non-ERMS systems, even if there are other
improvements to come.Â  I specifically wouldn't suggest blocking it until
patch 1 is resolved.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 17:20:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 17:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843946.1259522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFzEO-0004tA-Iv; Tue, 26 Nov 2024 17:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843946.1259522; Tue, 26 Nov 2024 17:20: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 1tFzEO-0004t3-G1; Tue, 26 Nov 2024 17:20:08 +0000
Received: by outflank-mailman (input) for mailman id 843946;
 Tue, 26 Nov 2024 17:20: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFzEN-0004Pz-7M
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 17:20:07 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20628.outbound.protection.outlook.com
 [2a01:111:f403:2416::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac2105f9-ac1a-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 18:20:04 +0100 (CET)
Received: from DM6PR02CA0165.namprd02.prod.outlook.com (2603:10b6:5:332::32)
 by CY8PR12MB8411.namprd12.prod.outlook.com (2603:10b6:930:6e::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.19; Tue, 26 Nov
 2024 17:19:59 +0000
Received: from DS1PEPF00017096.namprd05.prod.outlook.com
 (2603:10b6:5:332:cafe::54) by DM6PR02CA0165.outlook.office365.com
 (2603:10b6:5:332::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Tue,
 26 Nov 2024 17:19:58 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS1PEPF00017096.mail.protection.outlook.com (10.167.18.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 17:19:58 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 26 Nov
 2024 11:19:57 -0600
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Tue, 26 Nov 2024 11:19: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: ac2105f9-ac1a-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjI4IiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImFjMjEwNWY5LWFjMWEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjQxNjA0LjQ0MDY4Mywic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FGoTd8PZBTxsibYfTlg5gL9ItuxwWoGfkI7Rqye8kxQH5Il8ID2wwdYDclpZhymDgrjOysyprzHbby8TSm0FCsI62tk9mu6Al3L8Xbm+Ve+dqqTFwRx1gSCuxxnWw3wZES9hzmdzJ2vRoCI1yJ5uO2VHslfG5KkVjXyslYKrdRojPDqYhuoHwOdtGqaIp9EdLeXMwHsT5TaC83rxxwAypKsHSbIzrvAVE1TI0dITsqqAVifS5qDSj44xzaywsu9s0oytTHnl6gkiqHRamak+nAdJXO6pa27W9KqHOvf0DUTCr0axKVflc5WNEjPIv+omKh+L6SJVVwcbNTs1YjL/sg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hhTkzwMxV7eXeFIK7XcXjiaxfIWPWWwchPU8SykcV3U=;
 b=jbO+B0ursgyD7cx4e0NtsOYz3jQHMwD0FYwKItPNTBDpPqDyiQRPq0BCO3aBZQ0ljg0AbYhn9zQsdn43OopohAZFTcofMoupHgwNfZaYvcoTQaBlJ7MtsGmWyBck0kSD/9KABbFotM02GPuW/kPbFE11ZZjgg2lPpxaOXII5pXwk9E0pqgB9RBS6B+c/W33FLOsUumXSG41zLE4RfytqcXyWomQ4P6JiyM8xPmp8Z5uv8arrjVb0b92FJJfHVEZ3b5bPStlDJP9+/ANv3+icGZxbNnwdZmqE8afsstGugdzRYY9aW+nqD+mdaql2EdMdHRwfNKRf9JrjHZIWmzNi3Q==
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=hhTkzwMxV7eXeFIK7XcXjiaxfIWPWWwchPU8SykcV3U=;
 b=hWcLAfsqjNN46rx/RXzHZPIQjHqZekj91PQZB5xhbjnr/CyORc2ZluQ88cq1wdDnUGhtIbbz39J8qMTLsEtQScSVDnejpOOMtyyAskZLXeCYobYm4v4mQvt+RMdQLP/9kpq38PjexuyAd1O/9oM5EItiuceAFcq5f5Cg45wfiHQ=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: =?UTF-8?q?zithro=20/=20Cyril=20R=C3=A9bert?= <slack@rabbit.lu>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v2 2/2] tools/xl: add suspend and resume subcommands
Date: Tue, 26 Nov 2024 12:19:41 -0500
Message-ID: <20241126171941.170897-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241126171941.170897-1-jason.andryuk@amd.com>
References: <20241126171941.170897-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
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: DS1PEPF00017096:EE_|CY8PR12MB8411:EE_
X-MS-Office365-Filtering-Correlation-Id: 54c6437b-a83c-43a8-6c5c-08dd0e3e8dbb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RGhKQzlZVXorcTFMdWF5bUhJcEp0c25VK04wQWNuZVlobzlEZHYzWkQ2SU5n?=
 =?utf-8?B?WFl0Wktvb01ZYkR2SnFVa1luU09LNXpqNmhIYnpsNG1zaTMrS3IrN0dDSmdD?=
 =?utf-8?B?bld4OGp2RGlMTURRRUJxU1M3M1Q5eDFhekFnZitmVlBEMmI0K1dwRVdDdDNR?=
 =?utf-8?B?R0p4NFNza0hVcDNyekQ2MXlqRlIwNHFVM2xhL0EvTzJvMW1QN2VaZGxYR2oy?=
 =?utf-8?B?QmZjVFNJSENpSnZWRjh6cWpVb09lM0FzclZHeXBJdldXRHVPMzdsMTE0aTJB?=
 =?utf-8?B?cEdRckZSYng0dU8vZEc0WVJMV2hkN1BjYkdRd2VXS0k4WDJHOUJ4VFdteGZY?=
 =?utf-8?B?RWxFVFFEM1AxendZK2MyakE5SUlubUFRaFFsT2ZkUlZBU1EzaGZ2ZmpSYTNn?=
 =?utf-8?B?Z0V3bzhZOEwwRVZsdGc0Z0drYjlma1FPVG9DdzFwNWU5Sm9hMnlHMVNUcUNn?=
 =?utf-8?B?SWhFSERtNGhUN25kWmM0OGIrMzlzb0JNU2RTYmhWR1NXTXNmNGNLcGIzbFJs?=
 =?utf-8?B?cjFaemJ1cEZTRkwxOERzbUtDTG41azdXTWpIaFplT2dSQWdLVDhENGE2dkNJ?=
 =?utf-8?B?Ny9DaFoxV3pkVHJlYXNrUUNlZ2VrcUlGdi9taDZTWlNVTFFDUjRGUWdkcmdy?=
 =?utf-8?B?a1M0cWlGZUsydTFKaDZIMDVycytCWkxvcmlqd1ZwZ3NyWnh4M0duUjJubDVR?=
 =?utf-8?B?eTM4VnBRbHVhQXpPTE9kcDBjRjdmU3J5c3NBNjA2L00wUm5yYTdNbWtJTEVu?=
 =?utf-8?B?RGsydTI3VGsrL255RzdvRlByckkwMm03Sm9ZeWJ6dkE3THZNckNRd29FWGU3?=
 =?utf-8?B?VTNqOERtK3hLZVU3UGpaaldTSXFMT01uVDJaUkFYL2ZibXRsQ2tPOUtlOUg0?=
 =?utf-8?B?bWY1L2xuYXgyNGRGWUpDdUZoV3dwSmN3Y28vVGNTbnBKdmQwZFNCbzRzekZr?=
 =?utf-8?B?UEdmM21VRVp4NGNhZkNIMHRrMSt6RHNvOVZEcjVEcUpKU1hHT0ZsZklOT09F?=
 =?utf-8?B?S3Q2bWFoV2RHYXgvY0FFNzgrL3FUbW9xdWVwOVNPY25McXh3UmwrM3c4RGRY?=
 =?utf-8?B?Zzk2R1lQN1hCS0dMUmU5NGtQOSswVzF6eFRoejZ4QW9YdXk4NEhQUzk0cWNi?=
 =?utf-8?B?VTlNVUJJN1U1aWRBYXlaeEYxLzNBeXlmVkY3VjNzdVUzN3F3UlVoVG1UK2NL?=
 =?utf-8?B?L0FJQWlNT0xrNExYWVRBUnkvdkVEWndVVkFwYkZRZUdVRm5YYmtUQXBqUXp6?=
 =?utf-8?B?ZVEwS1k3MmNUTXFuWUh1UlhWRW9pUVc2M0JpQXlLd1Jxc2JrNTdzQmdzYytM?=
 =?utf-8?B?bXlaQm02TXBtUXBEcFpuTHh0YmdsM3NkQ3dJejhyV3lndUJJaWxXVlpab0RT?=
 =?utf-8?B?UTB0MXo2NzJUSkM2ODVySGsyV1ZiYVVTd2FxV2h1cCtvLzJ3S2NiNU5JblVD?=
 =?utf-8?B?Z2d2N1VtM2hEVWJqQUFIWW5hYlY1V2sxbUNtd1FRbEE3d2JVRUxScHcxY1Ba?=
 =?utf-8?B?aDVzaWpuaFJVL0k5a1FlcHZnNDkyK2VMeVdTV05CTlN1dDl4UWdsdStMakdJ?=
 =?utf-8?B?UGFqdVBhQ3pFWXdXT1ZlLzUzZFpBN043MnREMkFkclZ6aEl5eGcwblFzdFNl?=
 =?utf-8?B?NHVCdnVRdXNsMDNySnlzSmFMK1ErUWJDb1ZMS1MwaGJqSnBia0F2Q2J3OXM5?=
 =?utf-8?B?WUlUYTVHTEw2bGJpcit4YUJUMHZKV1U0QUo2bjNZK0VESFFMT3RkSGt6UU03?=
 =?utf-8?B?N0JzSzZXbGhDNzJWa0xzRGs3TFNBQVZnakNEZmFUZStQWjdpbmlPcWdWMENB?=
 =?utf-8?B?MS9VbWkxU1hYYkw1MHFJd1ZKNnc5cW0xbXlRVnZVTXVhTS9VbDlWejR6dG1E?=
 =?utf-8?B?VDFvcjlNNUsxSy9PeDhtZXhYQ2d2ME5ZNkxwMGtGOTM5RkNsTGVZTFFmZG43?=
 =?utf-8?Q?sfwjf4oUi5NjbLgu5Ty/QA7icNlNUVGn?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2024 17:19:58.4016
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54c6437b-a83c-43a8-6c5c-08dd0e3e8dbb
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017096.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8411

From: zithro / Cyril RÃ©bert <slack@rabbit.lu>

The xl command doesn't provide suspend/resume, so add them :
  xl suspend <Domain>
  xl resume <Domain>

This patch follows a discussion on XenDevel: when you want the
virtualized equivalent of "sleep"-ing a host, it's better to
suspend/resume than to pause/unpause a domain.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Suggested-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
Signed-off-by: Cyril RÃ©bert (zithro) <slack@rabbit.lu>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---

Rename command to just "suspend"
Move inside the HAVE_NO_SUSPEND_RESUME
---
 docs/man/xl.1.pod.in    | 12 ++++++++++++
 tools/xl/xl.h           |  2 ++
 tools/xl/xl_cmdtable.c  | 10 ++++++++++
 tools/xl/xl_vmcontrol.c | 36 ++++++++++++++++++++++++++++++++++++
 4 files changed, 60 insertions(+)

diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in
index bed8393473..fe38724b2b 100644
--- a/docs/man/xl.1.pod.in
+++ b/docs/man/xl.1.pod.in
@@ -682,6 +682,10 @@ Pass the VNC password to vncviewer via stdin.
 
 =back
 
+=item B<resume> I<domain-id>
+
+Resume a domain, after having been suspended.
+
 =item B<save> [I<OPTIONS>] I<domain-id> I<checkpointfile> [I<configfile>]
 
 Saves a running domain to a state file so that it can be restored
@@ -760,6 +764,14 @@ in response to this event.
 
 =back
 
+=item B<suspend> I<domain-id>
+
+Suspend a domain.  This is a cooperative operation where the domain must
+respond to the xenstore trigger.  When in a suspended state the domain
+still consumes allocated resources (such as memory), but is not eligible
+for scheduling by the Xen hypervisor.  It is in a shutdown state, but
+not dying.
+
 =item B<sysrq> I<domain-id> I<letter>
 
 Send a <Magic System Request> to the domain, each type of request is
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 967d034cfe..45745f0dbb 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -129,6 +129,8 @@ int main_restore(int argc, char **argv);
 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);
+int main_resume(int argc, char **argv);
 #endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 53fc22d344..06a0039718 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -193,6 +193,16 @@ const struct cmd_spec cmd_table[] = {
       "Restore a domain from a saved state",
       "- for internal use only",
     },
+    { "suspend",
+      &main_suspend, 0, 1,
+      "Suspend a domain to RAM",
+      "<Domain>",
+    },
+    { "resume",
+      &main_resume, 0, 1,
+      "Resume a domain from RAM",
+      "<Domain>",
+    },
 #endif
     { "dump-core",
       &main_dump_core, 0, 1,
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c45d497c28..3160966972 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -42,6 +42,16 @@ static void unpause_domain(uint32_t domid)
     libxl_domain_unpause(ctx, domid, NULL);
 }
 
+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);
+}
+
 static void destroy_domain(uint32_t domid, int force)
 {
     int rc;
@@ -82,6 +92,32 @@ int main_unpause(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
+int main_suspend(int argc, char **argv)
+{
+    int opt;
+
+    SWITCH_FOREACH_OPT(opt, "", NULL, "suspend", 1) {
+        /* No options */
+    }
+
+    suspend_domain(find_domain(argv[optind]));
+
+    return EXIT_SUCCESS;
+}
+
+int main_resume(int argc, char **argv)
+{
+    int opt;
+
+    SWITCH_FOREACH_OPT(opt, "", NULL, "resume", 1) {
+        /* No options */
+    }
+
+    resume_domain(find_domain(argv[optind]));
+
+    return EXIT_SUCCESS;
+}
+
 int main_destroy(int argc, char **argv)
 {
     int opt;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 17:20:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 17:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843945.1259512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFzEM-0004ZX-D7; Tue, 26 Nov 2024 17:20:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843945.1259512; Tue, 26 Nov 2024 17:20: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 1tFzEM-0004ZQ-9r; Tue, 26 Nov 2024 17:20:06 +0000
Received: by outflank-mailman (input) for mailman id 843945;
 Tue, 26 Nov 2024 17:20: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFzEL-0004Pz-JR
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 17:20:05 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20626.outbound.protection.outlook.com
 [2a01:111:f403:2406::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a7b90930-ac1a-11ef-a0cd-8be0dac302b0;
 Tue, 26 Nov 2024 18:19:56 +0100 (CET)
Received: from DS7PR06CA0023.namprd06.prod.outlook.com (2603:10b6:8:2a::14) by
 IA1PR12MB9032.namprd12.prod.outlook.com (2603:10b6:208:3f3::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Tue, 26 Nov
 2024 17:19:50 +0000
Received: from DS1PEPF00017097.namprd05.prod.outlook.com
 (2603:10b6:8:2a:cafe::f5) by DS7PR06CA0023.outlook.office365.com
 (2603:10b6:8:2a::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Tue,
 26 Nov 2024 17:19:50 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Tue, 26 Nov 2024 17:19:49 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 26 Nov
 2024 11:19:49 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Nov
 2024 11:19:48 -0600
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Tue, 26 Nov 2024 11:19:48 -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: a7b90930-ac1a-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNjo6NjI2IiwiaGVsbyI6Ik5BTTAyLVNOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImE3YjkwOTMwLWFjMWEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjQxNTk2LjcyNzg5OSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Lmz4W+cnNuqashzG9E1//MLpO/eop6VvKf4zxIP+0Ul0mteimmCW/vTNL1fKBJF3XMLTpTaV84NSeamg7pXz6xs8MMoX9goHvugYUhDXqaa0pJ3z82HN8Awej0vMt+h9uMDZdNaaJDsTplpBjwJRC/4D6t6z2WOjlq0GfjTewPynD7/2nyihqvs7KyBzuX1mYjfD6KE0HTpyBvtfh5YprwWHNNdZ5D3vSFiEdR38PzoqIoQstVdrHx07ZAgfdU9/ZbeVikXG17wQ/yQ0of/1AUy3KvZul5/b8HoEmHGtdC+I1C/IdT8R09dCfsE0o5Njr2IXs/cZU+AxhHMGhLaUIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lgUbu1p1G8VrX+7vvopPeVN3XfOcljEX1p1X+gAqQc8=;
 b=wtdgL9N0skrOaiWAy8U0o0Asd7N3LQcIIACw5YmzRXu6fgvbWX/myxs2TEYVLTwXuEQQOQtWVXN93lVAgbkmVW4fXj0gV1jH4USfkVFrdrlW7dVUXevtSCMANx3Rwtzf141jxrSiLEmIYU3v6wrCBDUtaB+muwhEWJzWA76c6LvrEM6JHG7WeWkzhNic/aoI0rgzTwrD3K2RSHq177lssXArGLn24r/lo8PwetyViQ7VI8W3LtV2VOCinFLscZykHanGYyFNv1GoHbZvBKEwzO1U6aPNgcTpN6zvxPTLIw4O33tCtqQs7o0rX6mDpq4aggZCkTBVehW2kOoo5Avs+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=lgUbu1p1G8VrX+7vvopPeVN3XfOcljEX1p1X+gAqQc8=;
 b=n0kx32GRdRxwSmiMVi9twAN8F19UecKc7MGCzRozbe6CZQfuzqUtF9z/mvzC4dBNU6YaGunoVRPFXRpoERH+5jfqihyfaJWy6Nz9oxVudUhHTrkADbbIsjnmp8vrSsdTkKhzkYm1iydI9s8LNQsm0InjseYmWoxVjwgRpVcD4Dw=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v2 0/2] xl suspend/resume commands
Date: Tue, 26 Nov 2024 12:19:39 -0500
Message-ID: <20241126171941.170897-1-jason.andryuk@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-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017097:EE_|IA1PR12MB9032:EE_
X-MS-Office365-Filtering-Correlation-Id: f7b654aa-95f1-4ae6-d386-08dd0e3e88a1
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?NjNHeXFrVkViNlZXblAwT29QVkJYKzd6bHdVdTVJbzREUGRRU3lFZUJtSk1C?=
 =?utf-8?B?Zk9ObXFRWkN6V3p3d3dnb2IrazdpRVREUVhaYVJqcDBsSkhaOVUvUkNGd2Z4?=
 =?utf-8?B?K2FuM1ljdDI5amdOVjNSOUV0V2Y4SFM1ODg5ZXVTdkpnTnB5OVU0ekkyK0Ju?=
 =?utf-8?B?Umd2NU00eWxvYmlPMWZGc0N4aFRRN1hEUiswQk0yNXBhTGRpd1p0djBCMGNy?=
 =?utf-8?B?cjY3SWQwajAzbDNVZmM3ZktLL21vOG4zeWcvUWVmQlNRMmdTbTJhaXUrNzY2?=
 =?utf-8?B?MEdUME1DUW5vb09kREwxZmRrcFNrRE9QQ2c3WDNaWXlGNWJsWUYyM3ZPY0Ja?=
 =?utf-8?B?ZTRLeW9lMkFGSTAvY3dUQWttNWY0ZXc4WFllWURqTHhMTkJJWU5abGw5aVB2?=
 =?utf-8?B?U1M4Qk9nanUvdHZFYzhqMDNkRnZiZzYxanJIbi9Db0YrL1JZVFgxamEwb05w?=
 =?utf-8?B?VGprdEN6L25XcFRrQ2o3VlV3MkxIazBybjMrYnIxUkU5dGR4eTdzRzJtU3lR?=
 =?utf-8?B?OVZUVEN1ZlVOcWIzN0NnVllvdDNDc0tPZDluTGhFWUhaUHh6NWxRRTZtRjYx?=
 =?utf-8?B?azdoL25DZkVhNU0zR2hRQ215VzFNbUhZTHd6MnVOS2ViRFRoSVlRUnNtK29l?=
 =?utf-8?B?eVNMMGpUUitUNXIxR1hCVThBeDlnSGk5VFljaTBBYzdEZFJiVkIyVnBLaE1W?=
 =?utf-8?B?YnJsdFNUK1VxMEk0ZUlKMThscmdvVHZ0V2hDZ0RENk9nMlNBZEhvMzhDc05y?=
 =?utf-8?B?azFVZ3U4Yk03V1F5Q3JzSGZmUFl2TGg4VlpLdGQ2Q2lvUDB4aWVrcms5d3Vv?=
 =?utf-8?B?aVBrc1FITmljTFlHenlqUzhXeHNXZXQzTFpOMEFJOXBMMVE5SmFCc0tnWUc2?=
 =?utf-8?B?ZFljNkFRYUJJbk5WeDIyNHB2SEVRUnpVaThyS1grYWs2Y3h0NERJUzB3L3NL?=
 =?utf-8?B?TE50dlRVS2oyYnZqWG05YW5ibXl4NWw3R2NHd3FnM0IzL2JvS2RyWlBkY21y?=
 =?utf-8?B?TUxFdFluUHE4SjV3QkxvMitmUlJkS25LUWxOVzlLQjBSbUhmRlNISDRsSWdG?=
 =?utf-8?B?Rk1pRWRFREJySmF6dStzYmRkdXpLR0s1Qkg3Y1dnbFR4WXp0c0pyWGtHY2w2?=
 =?utf-8?B?WFJxZURyWkphdGJBNzNpTnVoRmZWYSt1K29OMTJ6UStjVUhvcThJU2J6aEY2?=
 =?utf-8?B?UE5iSFU1K0ZoY1hZSzQrWkNhMlpSbTVXTjIwTjJyeTRXRi9pWkdTTFdYT2lh?=
 =?utf-8?B?cmpnbVh5dXZSOTkyV3lXajBOU0hVMG9Xd2lmaC9VMWg1VEo0WU1MQ0p5VG5S?=
 =?utf-8?B?SGlzZ2VvNnVKNzVhbkRMVzN1WVBYOU5CR20wbzRZcTV6TnRHbjZuYXAyYWdP?=
 =?utf-8?B?ZVAvQ0w4RVkxd29uQUFGK01nYlQ1dDV4N01zOXJtNGZDWWhXeHFxdnkwaXlz?=
 =?utf-8?B?cWZBbTBhc1laY3N1c05kRkl4ZFFDZkxyYlVXMG1peEdzeTMwbGVKTFoxaGtB?=
 =?utf-8?B?N2ZmaVE5dTBuOWptb0hrYXRLc29mQUU2OU92bEtvdTRIdlFDTElVcW1LMlRo?=
 =?utf-8?B?Qjdtc2ZLU1NDTnJFM29ITkpvZW00Y29hS0phL0NSUHdxSVdYZjZZR3U4RDMw?=
 =?utf-8?B?Sm1aRnVGNFNTSkYyVE1CWFRBTE5pYkN2Q0grSjJaZjFaWWhrWkd0ZXRyRVV0?=
 =?utf-8?B?YXNYZmEzT3hvMmIxWVlVT01nd0lFVi9jalZuKytneUs3Zmx1Q1R2QTZnNTVG?=
 =?utf-8?B?ZG9JR253Ui92NmdzdndhN1ZJdkdseU5Ud0dkaDdoTllCNllaSWZDQ0dZWVhL?=
 =?utf-8?B?ZmROMVN1SGJ0OTVLTS9UUm1qQ3I0UTN0c1ZYNTNkMDllQ2ZLcWMwVmNQUWZH?=
 =?utf-8?B?Q1d0YXJFUDdDUU8zZzR6WHNOeUVRdTJpVTBsQStoZzIycElXVkh0bUhoMTJX?=
 =?utf-8?Q?5Ir3oRUkpMmaGAmAUyI3es7flXFyqtwQ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 26 Nov 2024 17:19:49.8452
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f7b654aa-95f1-4ae6-d386-08dd0e3e88a1
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=[SATLEXMB03.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: IA1PR12MB9032

This is a v2 of Cyril's implementation of xl suspend/resume.  This is a
cooperative operation like libvirt's suspend.

I renamed suspend-to-ram to just suspend.  xl also needed a fixup to
avoid exiting when the domain suspends.

Jason Andryuk (1):
  xl: Keep monitoring suspended domain

zithro / Cyril RÃ©bert (1):
  tools/xl: add suspend and resume subcommands

 docs/man/xl.1.pod.in    | 12 +++++++++
 tools/xl/xl.h           |  3 +++
 tools/xl/xl_cmdtable.c  | 10 ++++++++
 tools/xl/xl_vmcontrol.c | 54 ++++++++++++++++++++++++++++++++++++++++-
 4 files changed, 78 insertions(+), 1 deletion(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 17:20:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 17:20:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843947.1259526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFzEO-0004vY-QR; Tue, 26 Nov 2024 17:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843947.1259526; Tue, 26 Nov 2024 17:20: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 1tFzEO-0004uv-MS; Tue, 26 Nov 2024 17:20:08 +0000
Received: by outflank-mailman (input) for mailman id 843947;
 Tue, 26 Nov 2024 17:20: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=lzfN=SV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tFzEN-0004k8-9N
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 17:20:07 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2407::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab4bdcd1-ac1a-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 18:20:02 +0100 (CET)
Received: from BLAPR03CA0041.namprd03.prod.outlook.com (2603:10b6:208:32d::16)
 by MW6PR12MB8900.namprd12.prod.outlook.com (2603:10b6:303:244::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Tue, 26 Nov
 2024 17:19:55 +0000
Received: from BN3PEPF0000B06B.namprd21.prod.outlook.com
 (2603:10b6:208:32d:cafe::55) by BLAPR03CA0041.outlook.office365.com
 (2603:10b6:208:32d::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.20 via Frontend Transport; Tue,
 26 Nov 2024 17:19:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B06B.mail.protection.outlook.com (10.167.243.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8230.0 via Frontend Transport; Tue, 26 Nov 2024 17:19:54 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 26 Nov
 2024 11:19:52 -0600
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Nov
 2024 11:19:52 -0600
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Tue, 26 Nov 2024 11:19:52 -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: ab4bdcd1-ac1a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNzo6NjBmIiwiaGVsbyI6Ik5BTTAyLUJOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImFiNGJkY2QxLWFjMWEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjQxNjAyLjYxNjgyMSwic2VuZGVyIjoiamFzb24uYW5kcnl1a0BhbWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yunzMZ21GMUd/h77Vtl5ARGp3smqCcADElWnwjFAsOL5l564FOgeLRyYBAQPeo0mpnqzClvmuXssQej9JXavHmxx+Z8ykwm4Fw4232E+0wbjaVwwGfGt8klngqoiQ2MXuH8Rcoidvg93ebVECMp4rc8/Uw5D8sevObOWB1ki+zgjLrbdPpvfOnBdM9Rro7tpte4ARXkrSPzr1AFDN0TXrpmQYAvcvbtBpQJhTOU67vnGgwROjIHlBir1kpAzZx04Lm8rgPQkvBUdVTdqOentKJGBHxupET37lAZikvESgIUVxATB5V+z71dNi4DJR22Fbz0BFdo51T965lECQuyMMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uu7AKaBE7cQGMVaJpznh0ldBUuYX3CfpL80utGtzydc=;
 b=aCSim3baJZEMxj3tiQqZUrWXJgBNyUsqBRVSAeWC5kBfX96ardZkI4EfTozwA7XDPj9b0NVtQJRIzioGToFPIslZCP789ou00ei9pUZewKBg20fpZvjAYQCmT3EZo1u75mRyCcClDZ1Z3uhcrGdhd2EXDD3j003o7sMZ3uUzCg5rUG67vgheaBwpdizZCFaIdL4BUwzj8HmDxGlgbKXWVRiS/hT5/IFOw8uL83afT0ILTPJCMcip8WaJ1AqctHaOo3Jgx1urtMUYgahOGoFQj1CqnOIFAw6BLWb0WBDXajye4WYZNjuvCWY+HdMMK3hCGit4IejhtXd4TQzWm6T8Dg==
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=uu7AKaBE7cQGMVaJpznh0ldBUuYX3CfpL80utGtzydc=;
 b=a2L/qfJ7d9ZR14WBQdIZUGrGNRqa3IbBew/U5mRWIRCdbw3njicCiJ/DyO/EW4OMExoGF4AK4m8GjyuQYY+sWUPB2Dt3BHZH3KLJRzpbGQETxMPPPuHcbpYlCdZECILTBYvbpWAZ1AL+bxM9kMSok3tH4vHXGuRQBdEy7HzMtKg=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v2 1/2] xl: Keep monitoring suspended domain
Date: Tue, 26 Nov 2024 12:19:40 -0500
Message-ID: <20241126171941.170897-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241126171941.170897-1-jason.andryuk@amd.com>
References: <20241126171941.170897-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: BN3PEPF0000B06B:EE_|MW6PR12MB8900:EE_
X-MS-Office365-Filtering-Correlation-Id: 147dd5bd-b82b-443a-eaae-08dd0e3e8b76
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?5npzX6wCUbq63ixJdcRcao1pPiyeHxd2pm5rjOhPzqENbH73qBffa0Bb2zQk?=
 =?us-ascii?Q?M3qe65qSHdNbo26CltgT9w9RQxwHLoIvt9fFrjdFKzomqWGLIg0mBVeBrzxD?=
 =?us-ascii?Q?tx7LTyyUgMOooR3+tooKpJsbeke2//XmUDoBYX6WhbMsH9hJrvnwN0dAiD+N?=
 =?us-ascii?Q?SN95vsDw/inpSS+u7M+X70e/V79tVOAn7DaKiWSrWRy642PSFFGG1vqlKDEh?=
 =?us-ascii?Q?/o2PCYWuWPL8zWXtwvHwwV3NE70HbNu7Ly9j3nOOUhvdw5+orOq4vuquEUnO?=
 =?us-ascii?Q?ylNa2aq+VOYWobsZGRUwtK1zVpydJzXgg9UeQiCg1ohi4mCNNhOxsBcbhzk1?=
 =?us-ascii?Q?hanQX9pqDRs+1Koh3gvSYqfythe3EFKPZ13ZXCBAkq4Px87/rYvJ9lgurlT2?=
 =?us-ascii?Q?l4V+oKAvJ+6Km1B67WS1xFv+C2H3YFe0tHysxLELEuL2J1yG7ByRzYmV0gaG?=
 =?us-ascii?Q?V46GAkPKbAyQf889a+pETT8GopS3ualWwF33NDrZWuyabK6j6KQE2wVoEZHI?=
 =?us-ascii?Q?z041TaQ+rD5BnK7XxRrj+nNRs44eG2N1OwpGfTALyibTvik9itnnLYyNb1rG?=
 =?us-ascii?Q?XdUbOq6Ml+XfeDAog8J3o4P/AWHo5XR4jyCfLgbtO6+Jg5iqJYiD7h8JlUnJ?=
 =?us-ascii?Q?0ySZ3guZ39Rm/jMfZLHkXLr6x2H89AOOScag6/RFndUTKL4vTt+OxykG+Vrj?=
 =?us-ascii?Q?zsA8mwdxrS6vPNXsbA6H4Pu2rUuO1sii0XhzNh0FuEiHe9cvt7KnCGcMEsmX?=
 =?us-ascii?Q?k6epN7NmNv8boCYYHv5Dh0K8LtqUSZUMA36XMax8SGXnA0NqK/XREMia+hng?=
 =?us-ascii?Q?dORNbhF+Qf47VOIgKN2GGEU2/yLZyCyqZDK5bm53Bk5iWlxJoQ9V/XbrMD52?=
 =?us-ascii?Q?zhALCt14QdHj7uhi87lF/sA/j+hnrHLcBzfVzxRWiKc3PXTvVF9Nf4t3bcCV?=
 =?us-ascii?Q?tH1qWrqysUVISQCPWggayamDB2WSR3d3puyx1/B6iWTQksYOV4ZnSOggvdsl?=
 =?us-ascii?Q?kcyJxUYglq0oLrwp1UHPwuNa6wdItYh2oTNfzCiREEbsRH7p6PkHhUOMSiwZ?=
 =?us-ascii?Q?ORSZCKmvFy5mEAwLdePN+q/0AKvf/FaXGxULk8VjeKy0Xy/JWlhndpdfBpPV?=
 =?us-ascii?Q?q9QwWlYhDOrGZn1terZdtkbeND/YQGYKsR27KzyUiamuQPbx6gGipzQn4rqj?=
 =?us-ascii?Q?2l5ZXSHAgAWdK1DKFI1dPGAWc0lBYngJFFiNvtVduUcvkagr31UJdhftxCzv?=
 =?us-ascii?Q?8aWNPMMDuykx487SWCdq+3Id+I98OYeEEaOQYzszDs7Uz3Wpc3IodWu8+JhC?=
 =?us-ascii?Q?WwE95szjYcrGeG2FrOFoH/oD5NPvVMiLtcsCrH+lrK5ARUm7qklGEKbwin22?=
 =?us-ascii?Q?MBYJLhpssUy4DUXsGSYI5b4WhZfm0IcTtyoNg82/nrWV2EwT/MlwK9YngWFF?=
 =?us-ascii?Q?NPp6VO7wshVIFrDEIJTIE2CkqNS0Znp1?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 26 Nov 2024 17:19:54.6441
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 147dd5bd-b82b-443a-eaae-08dd0e3e8b76
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06B.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8900

When a VM transitioned to LIBXL_SHUTDOWN_REASON_SUSPEND, the xl daemon
was exiting as 0 = DOMAIN_RESTART_NONE "No domain restart".
Later, when the VM actually shutdown, the missing xl daemon meant the
domain wasn't cleaned up properly.

Add a new DOMAIN_RESTART_SUSPENDED to handle the case.  The xl daemon
keeps running to react to future shutdown events.

The domain death event needs to be re-enabled to catch subsequent
events.  The libxl_evgen_domain_death is moved from death_list to
death_reported, and then it isn't found on subsequent iterations through
death_list.  We enable the new event before disabling the old event, to
keep the xenstore watch active.  If it is unregistered and
re-registered, it'll fire immediately for our suspended domain which
will end up continuously re-triggering.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 tools/xl/xl.h           |  1 +
 tools/xl/xl_vmcontrol.c | 18 +++++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 9c86bb1d98..967d034cfe 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -301,6 +301,7 @@ typedef enum {
     DOMAIN_RESTART_NORMAL,       /* Domain should be restarted */
     DOMAIN_RESTART_RENAME,       /* Domain should be renamed and restarted */
     DOMAIN_RESTART_SOFT_RESET,   /* Soft reset should be performed */
+    DOMAIN_RESTART_SUSPENDED,    /* Domain suspended - keep looping */
 } domain_restart_type;
 
 extern void printf_info_sexp(int domid, libxl_domain_config *d_config, FILE *fh);
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index fa1a4420e3..c45d497c28 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -417,7 +417,7 @@ static domain_restart_type handle_domain_death(uint32_t *r_domid,
         break;
     case LIBXL_SHUTDOWN_REASON_SUSPEND:
         LOG("Domain has suspended.");
-        return 0;
+        return DOMAIN_RESTART_SUSPENDED;
     case LIBXL_SHUTDOWN_REASON_CRASH:
         action = d_config->on_crash;
         break;
@@ -1030,6 +1030,7 @@ start:
         }
     }
     while (1) {
+        libxl_evgen_domain_death *deathw2 = NULL;
         libxl_event *event;
         ret = domain_wait_event(domid, &event);
         if (ret) goto out;
@@ -1100,9 +1101,24 @@ start:
                 ret = 0;
                 goto out;
 
+            case DOMAIN_RESTART_SUSPENDED:
+                LOG("Continue waiting for domain %u", domid);
+                /*
+                 * Enable a new event before disabling the old.  This ensures
+                 * the xenstore watch remains active.  Otherwise it'll fire
+                 * immediately on re-registration and find our suspended domain.
+                 */
+                ret = libxl_evenable_domain_death(ctx, domid, 0, &deathw2);
+                if (ret) goto out;
+                libxl_evdisable_domain_death(ctx, deathw);
+                deathw = deathw2;
+                deathw2 = NULL;
+                break;
+
             default:
                 abort();
             }
+            break;
 
         case LIBXL_EVENT_TYPE_DOMAIN_DEATH:
             LOG("Domain %u has been destroyed.", domid);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 17:28:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 17:28:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843977.1259543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tFzMX-0006pb-Qe; Tue, 26 Nov 2024 17:28:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843977.1259543; Tue, 26 Nov 2024 17: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 1tFzMX-0006pU-Ma; Tue, 26 Nov 2024 17:28:33 +0000
Received: by outflank-mailman (input) for mailman id 843977;
 Tue, 26 Nov 2024 17:28: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=58W+=SV=bounce.vates.tech=bounce-md_30504962.67460538.v1-66637e0ed7a34aef89b0ac50fb23cbee@srs-se1.protection.inumbo.net>)
 id 1tFzMW-0006pO-G2
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 17:28:32 +0000
Received: from mail134-5.atl141.mandrillapp.com
 (mail134-5.atl141.mandrillapp.com [198.2.134.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7d8cb93-ac1b-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 18:28:26 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-5.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4XyV0S5JtGzG0CCNb
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 17:28:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 66637e0ed7a34aef89b0ac50fb23cbee; Tue, 26 Nov 2024 17:28: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: d7d8cb93-ac1b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNC41IiwiaGVsbyI6Im1haWwxMzQtNS5hdGwxNDEubWFuZHJpbGxhcHAuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQ3ZDhjYjkzLWFjMWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjQyMTA2LjcxMDg3Niwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDYwNTM4LnYxLTY2NjM3ZTBlZDdhMzRhZWY4OWIwYWM1MGZiMjNjYmVlQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732642104; x=1732902604;
	bh=P+qM1w/y12acB8iR/jp4snyiIcnwcoYsTw8t3cVTlN8=;
	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=lcDJW3d5ojQ/IX5sLj9+9W95CDFdiF64lGC0Rf7bP1DJN/7xSI4syjBGt85uR8KQ9
	 +tqswwyaqEHo+23/ZbG+cHXAU/h151xj0VlTWn0VMUKc98HcXVllYHMCEIxNC0BpYd
	 edJyirTXENmHijh7/pz+QhhHI1deu62SThSTq9bXhtvPSppMWDhyHbcRnEJERzcwUz
	 0r16/Saya0ZG4ydUdD3gH86RULCLwSqOVFv4XFrnyaQBaDr/DLITpv2LU2O03hCe1Z
	 kwBF5nRigk/Pt3ynN5OXVVHmXVFBcTlDHBpE/6YjonthucofAkxr72LKInc2Cbs9ZL
	 4TgzcjXu5m+Ew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732642104; x=1732902604; i=anthony.perard@vates.tech;
	bh=P+qM1w/y12acB8iR/jp4snyiIcnwcoYsTw8t3cVTlN8=;
	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=0UofJUZLgZWlNnk1UFmQRJMRR9k5XnjJqBXPffkxnAmpAJ8sEBFfog5ph9KH/YR/u
	 DadIlSrWfCSPZsnfOl5SsybIaLh0ptqZB3eMT19HoObHClelEjgj2Tg4GoB7FEZ137
	 lPxWM1vY8ubKMSgG/7uwS6EhxCkcJk970z5v72a9cdu0v+HPpYju7QBwLX3u0eJ5mu
	 RvwaPMbPo4Vk9KwxvWUHrZXjUhkKwDvWujcqf2uDkzxY8F+sCUhsBk9NARCm/L3eJZ
	 ni9VeTCWJhE9USFBTb+gE3Dbq5v2IUsmzWxebsGIhkXIcKaSGABYsoQjxrwYc2B4v0
	 o7YKL6EQ6jYxA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=205/6]=20tools:=20add=20a=20dedicated=20header=20file=20for=20barrier=20definitions?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732642104050
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <Z0YFN13jUJMNb-7h@l14>
References: <20241023131005.32144-1-jgross@suse.com> <20241023131005.32144-6-jgross@suse.com>
In-Reply-To: <20241023131005.32144-6-jgross@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.66637e0ed7a34aef89b0ac50fb23cbee?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241126:md
Date: Tue, 26 Nov 2024 17:28:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Oct 23, 2024 at 03:10:04PM +0200, Juergen Gross wrote:
> diff --git a/tools/include/xen-barrier.h b/tools/include/xen-barrier.h
> new file mode 100644
> index 0000000000..62036f528b
> --- /dev/null
> +++ b/tools/include/xen-barrier.h
> @@ -0,0 +1,51 @@
> +/******************************************************************************
> + * xen-barrier.h
> + *
> + * Definition of CPU barriers, part of libxenctrl.

Does it needs to be part of "libxenctrl" ? :-) Since the goal is to be
able to use the header without xenctrl.

> + *
> + * Copyright (c) 2003-2004, K A Fraser.

I'm not sure this copyright line is enough, looking at `git blame`.

Keir introduce xen_barrier macro in 2012, in
8d3f757328e1 ("libxc: Update rmb/wmb for x86.")
Stefano introduced the Arm macro in 2012, in daa314fe1938 ("arm: compile
libxc"), and Ian in 2013 in ae4b6f29a983 ("tools: libxc: arm64
support").
There's been a modification by Andrew in 2020, so Citrix copyright,
in de16a8fa0db7 ("x86: Use LOCK ADD instead of MFENCE for smp_mb()").

So overall, we probably want:
Copyright (C) 2003-2012, K A Fraser.
Copyright (C) 2012-2020 Citrix Systems, Inc.


> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation;
> + * version 2.1 of the License.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library; If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#ifndef XENBARRIER_H
> +#define XENBARRIER_H

With an extra '_' for the '-' in the header filename?
    XEN_BARRIER_H


Otherwise, the rest of the patch looks fine to me, even without the rest
of the series.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 19:16:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 19:16:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.843997.1259551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG12o-0003Cs-0Q; Tue, 26 Nov 2024 19:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 843997.1259551; Tue, 26 Nov 2024 19:16: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 1tG12n-0003Cl-UF; Tue, 26 Nov 2024 19:16:17 +0000
Received: by outflank-mailman (input) for mailman id 843997;
 Tue, 26 Nov 2024 19:16: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=zdLj=SV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tG12m-0003Cf-NL
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 19:16:16 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4dffe08-ac2a-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 20:16:12 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-2ff550d37a6so66462081fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 11:16:10 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b2f5f4dsm623690766b.75.2024.11.26.11.16.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 11:16: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: e4dffe08-ac2a-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmEiLCJoZWxvIjoibWFpbC1sajEteDIyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU0ZGZmZTA4LWFjMmEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjQ4NTcyLjEzNDEwNCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732648569; x=1733253369; 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=th2Dxgt6XLNKQTpifGdPLzm0rzBd+Cd/NWYoZj2UBsc=;
        b=hnUSKGaJGiYInYGX4yU2rZ9WJoq0Bt4KSwrdwuDBIC7aLLMq6SStqor/lxaXkm4lwf
         UuKT8EtcXbfZOiwwlMEcvGN8qUR5wZwiBLCEJ+lK8ZUxiCy9IRH7qVDKENu3OU0ot1wF
         vOUR8C70sXOAItRSALi45GtybA6WDjVAmYQls=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732648569; x=1733253369;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=th2Dxgt6XLNKQTpifGdPLzm0rzBd+Cd/NWYoZj2UBsc=;
        b=V0IpT1YC8B+Lm3MhRRFjlNIxaEJQIzzflMqzpKbd/Lr6KWbrv43JrZmO88aVvI16vN
         /eyhcMl0r0+1u3GAibLrKrIBAuiNkqQG5Cq8J68MrMLJaeCiNeRGenqBJF9DOv3sq4Z1
         Q4VIMsq/0nVqh5wMdgHhD5jyS8IzlMmORfdkNRnMFQ433s+0S1PirF6rsfPhCt9xevJ5
         iU1ovnwpqauhp1sdNygUai+a/GjKFoCHOGjdiWYAtOvYbuCpMAhSolEXS/n0AaxkEbru
         ofUe7s63ELPZ/rvxl0u/Y1M1x6WUC21zJKwhdT4+Qj5IFEG5SmyMNTnx4u8ATaJ/FN1M
         B5Fg==
X-Forwarded-Encrypted: i=1; AJvYcCWSJllK1+Ahio/bGtf43HkI+w4LY/Siz8Y/2iqZ7V+RBUWVZULsAS3bEjEP8s6JPrMbM6qp+k7YqNA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwM8z2ctVM08UGhe59yiKf49xKnDVVOQzIKMhQYqPtneViUJpg4
	53nziBTjyYrMv4TcmNAAku42C71KUXzXBE9nRAPM6pY6Ya03fzLB+kfvlp8C8JE=
X-Gm-Gg: ASbGncuB/4OoV9j0Fz/fahv+FgV+1+iKoCHdyJr6XwYYe6LXfcxbow+2SVcBeD0UC4X
	sHT1/k4QsbAbzzgLxqoS/AMPACzUkQWxFF8HVUAWrgBEPTlw547AYFavBwRo5PPY+18Q0dieTua
	6uIoHSIMV6KhL4mbC5XsvDAyM8Djc/yP6vkrdu80qUYthkpfERPBQ/buIE0u03CNiIpZdoxCqkB
	N0BeAqnIJpsqPw9U2DflG7ZLMghZ6A0YDLGy3UoY+FemJb0WajbIYfAHQfdEuk=
X-Google-Smtp-Source: AGHT+IHyhoVbIOjtgSzj7WbtlUIpmDWBXi4QjdkiqSZWSJ7CtToxt7XyPQ+WECYmgXLd7alWW8Z/Ag==
X-Received: by 2002:a05:6512:b03:b0:52f:d0f0:e37e with SMTP id 2adb3069b0e04-53df00ff809mr125874e87.42.1732648569395;
        Tue, 26 Nov 2024 11:16:09 -0800 (PST)
Message-ID: <2cb12ee6-3acd-4667-9882-4d36466a7da8@citrix.com>
Date: Tue, 26 Nov 2024 19:16:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] x86: re-work memcpy()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <c2aa4307-230b-4287-b9e4-6d7d84dba490@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <c2aa4307-230b-4287-b9e4-6d7d84dba490@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2024 2:28 pm, Jan Beulich wrote:
> Move the function to its own assembly file. Having it in C just for the
> entire body to be an asm() isn't really helpful. Then have two flavors:
> A "basic" version using qword steps for the bulk of the operation, and an
> ERMS version for modern hardware, to be substituted in via alternatives
> patching.
>
> Alternatives patching, however, requires an extra precaution: It uses
> memcpy() itself, and hence the function may patch itself. Luckily the
> patched-in code only replaces the prolog of the original function. Make
> sure this remains this way.
>
> Additionally alternatives patching, while supposedly safe via enforcing
> a control flow change when modifying already prefetched code, may not
> really be. Afaict a request is pending to drop the first of the two
> options in the SDM's "Handling Self- and Cross-Modifying Code" section.
> Insert a serializing instruction there.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> We may want to consider branching over the REP MOVSQ as well, if the
> number of qwords turns out to be zero.
> We may also want to consider using non-REP MOVS{L,W,B} for the tail.

My feedback for patch 2 is largely applicable here too.

>
> TBD: We may further need a workaround similar to Linux'es 8ca97812c3c8
>      ("x86/mce: Work around an erratum on fast string copy
>      instructions").

Ah, so you found that erratum.Â  I'd say there's lower hanging fruit to
go after in the MCE logic before we get to this.

> ---
> v3: Re-base.
>
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -48,6 +48,7 @@ obj-$(CONFIG_INDIRECT_THUNK) += indirect
>  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_HVM) += monitor.o
> --- a/xen/arch/x86/alternative.c
> +++ b/xen/arch/x86/alternative.c
> @@ -153,12 +153,14 @@ void init_or_livepatch add_nops(void *in
>   * executing.
>   *
>   * "noinline" to cause control flow change and thus invalidate I$ and
> - * cause refetch after modification.
> + * cause refetch after modification.  While the SDM continues to suggest this
> + * is sufficient, it may not be - issue a serializing insn afterwards as well.

Did you find a problem in practice, or is this just in case?

I suspect if you are seeing problems, then it's non-atomicity of the
stores into memcpy() rather than serialisation.

>   */
>  static void init_or_livepatch noinline
>  text_poke(void *addr, const void *opcode, size_t len)
>  {
>      memcpy(addr, opcode, len);
> +    cpuid_eax(0);

This whole function is buggy in a couple of ways, starting with the
comments.

The comment about noinline and control flow changes is only really
relevant to 32bit processors; we inherited that comment from Linux, and
they're not applicable to Xen.

AMD64 (both the APM, and SDM) guarantee that Self Modifying Code will be
dealt with on your behalf, with no serialisation needed.

Cross-modifying code needs far more severe serialisation than given
here.Â  We get away with it because alternative_{instructions,branches}()
are pre-SMP, and apply_alternatives() is on livepatches prior to them
becoming live.


I happen to know there's an AMD CPU which has an erratum regarding Self
Modifying Code and genuinely does need a serialising instruction, but I
don't know which exact CPU it is.

If we're going to put a serialising instruction, it should be a write to
CR2.Â  We don't care about 486 compatibility, and it's faster than CPUID
and much much faster if virtualised because it's unlikely to be
intercepted even under shadow paging.

But, it would be nice not to put serialisation in the general case to
begin with, especially not into the livepatching case.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 19:59:11 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 19:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844010.1259562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG1iD-0008Dj-4f; Tue, 26 Nov 2024 19:59:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844010.1259562; Tue, 26 Nov 2024 19: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 1tG1iD-0008Dc-1X; Tue, 26 Nov 2024 19:59:05 +0000
Received: by outflank-mailman (input) for mailman id 844010;
 Tue, 26 Nov 2024 19:59: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=zdLj=SV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tG1iB-0008DW-LE
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 19:59:03 +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 def363e0-ac30-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 20:58:57 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5cfaeed515bso7642017a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 11:58:57 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3a3407sm5346435a12.17.2024.11.26.11.58.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 11:58: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: def363e0-ac30-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmMiLCJoZWxvIjoibWFpbC1lZDEteDUyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRlZjM2M2UwLWFjMzAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjUxMTM3LjMwMzY4Niwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732651137; x=1733255937; 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=0PfQy8GrbMnN+llPZ0OqVIsl+0sz2hlqufB2LNnRrwI=;
        b=lg+VrP6wdFENACHeAKjdvBPnN2mm2eTbKMv9zEj6hriDeB11KiswICcDiowR6YJneg
         pdJnQ+joI7A3ve81ZcI7guQMZJkeqlAPS+KOYR8VpqjcegAGEs7+RAwTczUPJKJo65SO
         ww96TmXG2DBX8J8B3sfcB7SJFiEtwqGbPHJbc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732651137; x=1733255937;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0PfQy8GrbMnN+llPZ0OqVIsl+0sz2hlqufB2LNnRrwI=;
        b=ESyRUnZC8g5UgrsE0azkhCPbKeewKGthRglRR0bkohqorNkBz3CgpY7YKvo3ZYskvt
         76fa2IrNG2AxYprCeUdXNVPRXs5mFQ1iiA6P2BZPhLUmu3iXgewtEsjE6MMY6IpszXbp
         I3dEW0ebs+vwbGJehOCgEZ59hC8psmyQWdSYyNcHJensGTgpY54FQwhXs5H3QygXOjCV
         Bx1RQQAFbWGR4p0dhyKaxzWkIRi9cFNMephL7Gh3A0zzIoJqsgn+bU60AdtrONP8sEyZ
         97au4nQ7Inix4kcC/4qYqq65LItQ+dAd4ruqc2bkM5vc8CAPySSBUbiv7X+z18pJONIq
         naPA==
X-Forwarded-Encrypted: i=1; AJvYcCXRkYzROtCwyQ+CPcV+hvMIcDhbtXFka6FFUrweORQohBmY0F0Y17YJwGROMEiCQINpZ/EO0mScDM8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQPE6ENotJxRzunwGw6vSHZvcni9+WuZwob0z/sPx6ufMr+FiG
	fILGj+0bLT86ShirEFha07jkDYzcOLoXJ4sLjyzxSZM+6E9blLvS6jR1g0FSib6aSyEx7a57AWX
	Z
X-Gm-Gg: ASbGncvWLsjkW4pz0lIgAI/7fXmJc4UvZuuTl9icqCVu7F3oJ8dV5jGekSRSEUl9tUC
	Rw627v4u+yTd/92nrKfOJgL9C5DYKlBDLHAmqrvXplALm8cuZAhfb/lFzRodpL18bCrhisRBMas
	+HOE7R3ueUrx6rqEiynLaSfUhuGLeYKc6BPLFNOuFvLpHNvMkUWeb1OFma9nR8Qb6rqpQ2AgXCx
	OhzBI5jWJdo8ef3sHqDzgXC1nDdVltNdAJH3ZxvLEsqZFnpet1nMmBC/7t2Vvk=
X-Google-Smtp-Source: AGHT+IFBOEuWsEcx/1RqIsiWcm3RYBcBZYjaTBUPIURzEnBQNCxwn3MHDqCapmmQjrrCvls1e9Tziw==
X-Received: by 2002:a05:6402:13d6:b0:5cf:e4b0:2ee1 with SMTP id 4fb4d7f45d1cf-5d080c49768mr472586a12.25.1732651136601;
        Tue, 26 Nov 2024 11:58:56 -0800 (PST)
Message-ID: <3fa4555a-f66f-47c0-ada2-3a5591536432@citrix.com>
Date: Tue, 26 Nov 2024 19:58:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/7] x86: control memset() and memcpy() inlining
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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <1c935aba-a185-43de-9806-6781b1a7fcf9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1c935aba-a185-43de-9806-6781b1a7fcf9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/11/2024 2:29 pm, Jan Beulich wrote:
> Stop the compiler from inlining non-trivial memset() and memcpy() (for
> memset() see e.g. map_vcpu_info() or kimage_load_segments() for
> examples). This way we even keep the compiler from using REP STOSQ /
> REP MOVSQ when we'd prefer REP STOSB / REP MOVSB (when ERMS is
> available).
>
> With gcc10 this yields a modest .text size reduction (release build) of
> around 2k.
>
> Unfortunately these options aren't understood by the clang versions I
> have readily available for testing with; I'm unaware of equivalents.
>
> Note also that using cc-option-add is not an option here, or at least I
> couldn't make things work with it (in case the option was not supported
> by the compiler): The embedded comma in the option looks to be getting
> in the way.
>
> Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: Re-base.
> v2: New.
> ---
> The boundary values are of course up for discussion - I wasn't really
> certain whether to use 16 or 32; I'd be less certain about using yet
> larger values.
>
> Similarly whether to permit the compiler to emit REP STOSQ / REP MOVSQ
> for known size, properly aligned blocks is up for discussion.

I didn't realise there were any options like this.

The result is very different on GCC-12, with the following extremes:

add/remove: 0/0 grow/shrink: 83/71 up/down: 8764/-3913 (4851)
FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
x86_emulateÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  136966Â  139990Â Â  +3024
ptwr_emulated_cmpxchgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  555Â Â Â  1058Â Â Â  +503
hvm_emulate_cmpxchgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1178Â Â Â  1648Â Â Â  +470
hvmemul_do_ioÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1605Â Â Â  2059Â Â Â  +454
hvmemul_linear_mmio_accessÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1060Â Â Â  1324Â Â Â  +264
hvmemul_write_cacheÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  655Â Â Â Â  890Â Â Â  +235
...
do_console_ioÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1293Â Â Â  1170Â Â Â  -123
arch_get_info_guestÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2200Â Â Â  2072Â Â Â  -128
avtab_read_itemÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  821Â Â Â Â  692Â Â Â  -129
acpi_tb_create_local_fadtÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  866Â Â Â Â  714Â Â Â  -152
xz_dec_lzma2_runÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2573Â Â Â  2272Â Â Â  -301
__hvm_copyÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1085Â Â Â Â  737Â Â Â  -348
Total: Before=3902769, After=3907620, chg +0.12%

So there is a mix, but it's in a distinctly upward direction.


As a possibly-related tangent, something I did notice when playing with
-fanalyzer was that even attr(alloc_size/align) helped the code
generation for an inlined memcpy().

e.g. with _xmalloc() only getting
__attribute__((alloc_size(1),alloc_align(2))), functions like
init_domain_cpu_policy() go from:

48 8b 13Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  (%rbx),%rdx
48 8d 78 08Â Â Â Â Â Â Â Â  Â Â Â Â  leaÂ Â Â  0x8(%rax),%rdi
48 89 c1Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rax,%rcx
48 89 deÂ Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rbx,%rsi
48 83 e7 f8Â Â Â Â Â Â Â Â  Â Â Â Â  andÂ Â Â  $0xfffffffffffffff8,%rdi
48 89 10Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rdx,(%rax)
48 29 f9Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  subÂ Â Â  %rdi,%rcx
48 8b 93 b0 07 00 00 Â Â Â  movÂ Â Â  0x7b0(%rbx),%rdx
48 29 ceÂ Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  subÂ Â Â  %rcx,%rsi
81 c1 b8 07 00 00Â Â  Â Â Â Â  addÂ Â Â  $0x7b8,%ecx
48 89 90 b0 07 00 00 Â Â Â  movÂ Â Â  %rdx,0x7b0(%rax)
c1 e9 03Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  shrÂ Â Â  $0x3,%ecx
f3 48 a5Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  rep movsq %ds:(%rsi),%es:(%rdi)

down to simply

48 89 c7Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rax,%rdi
b9 f7 00 00 00Â Â Â Â Â  Â Â Â Â  movÂ Â Â  $0xf7,%ecx
48 89 eeÂ Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rbp,%rsi
f3 48 a5Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  rep movsq %ds:(%rsi),%es:(%rdi)

which is removing the logic to cope with a misaligned destination pointer.


As a possibly unrelated tangent, even __attribute__((malloc)) seems to
have some code gen changes.

In xenctl_bitmap_to_cpumask(), the change is simply to not align the
-ENOMEM basic block, saving 8 bytes.Â  This is quite reasonable because
xmalloc() genuinely failing is 0% of the time to many significant figures.

Mostly though, it's just basic block churn, which seems to be giving a
"likely not NULL" on the return value, therefore shuffling the error paths.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 20:08:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 20:08:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844019.1259571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG1qq-0001X5-Ts; Tue, 26 Nov 2024 20:08:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844019.1259571; Tue, 26 Nov 2024 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 1tG1qq-0001Wy-R6; Tue, 26 Nov 2024 20:08:00 +0000
Received: by outflank-mailman (input) for mailman id 844019;
 Tue, 26 Nov 2024 20:07: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=zdLj=SV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tG1qp-0001Ws-TG
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 20:07:59 +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 1f49fcb8-ac32-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 21:07:54 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5d036963a6eso4682166a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 12:07:54 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b28f8casm625419366b.18.2024.11.26.12.07.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 12:07: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: 1f49fcb8-ac32-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzAiLCJoZWxvIjoibWFpbC1lZDEteDUzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmNDlmY2I4LWFjMzItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjUxNjc0LjY3MzUyOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732651674; x=1733256474; 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=ypYgXA2l9Tk9ltBtd6JPkdonSt4sBhtj+zOsPTroiyw=;
        b=lJosnw7jS2eztCMUgtlRp6lCFuPv5md/uHMYOehP3e3rG9ZAW60TjJcBOI4A4WEHUc
         MhdEQodQM3RXLUF75LrTkznVQ9b26JDyXWrar8PVtlEhrbg9ajn+sG5jUCnMdDZkwtqe
         7q9zZvrAvBmApuzglDL4upWIteWTbC9Me+YQg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732651674; x=1733256474;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ypYgXA2l9Tk9ltBtd6JPkdonSt4sBhtj+zOsPTroiyw=;
        b=ICh/1Djd7xnIYUDwojcBXbbYZWC5qeNmmc6AQVbzqG/cLrBtUlWPdHGSsNo64cvJ9p
         v7Q0LjTBKNpoiNtMx+U4g8AhbVcPEc+Pn3vqs0unxF9KIeCrdQ+6aPKet2G5Tx1tpygF
         hzeMglox1a69hQ2Hy0ypoBuipuHzit1BxoSdTFIYwZkewj3HMtjX5vrmt3BohRDkc4Yv
         U4+eG7zT5Z5klza6NJz/IqczGRdrkuFi4ysDI1DpWNYgruz76SmyrGi3dweKhCAH5pOv
         Pi48JGdVynSuCU2owb2m/ZFjRFursAAjlGAd9X6UQiri2aIaruUFYRVvLmyn0jVt7/u+
         LafA==
X-Forwarded-Encrypted: i=1; AJvYcCV6RTzoHz6l8m2CnDHD5XWmSsvv5I6FASz/Iy9Io3r9m5Dk4/zcMciyU5nT24kxdaECTPviDJBjGTE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywnka4y5hlzrAvsp50evp1Uv/CXdaafS5mAe3T4XzLJlbe96mV6
	a1pMI1gRNDUKIeQgiZM9/Rz5UDGJ27TPjA4dfGdcAHMBuUNa4lW7gFpS9Qr755bi6LHskcub282
	9
X-Gm-Gg: ASbGncvxqfEpQ9p3Utybhy6S24r0CyiCP9hPLBFsS9VrGdv3tFErPucaSoPW9N0AP8U
	W5vD9yC5n4vEpu0r7QMhF2dIX6puKu0F53IzHvMaS5E8chaZEqV/znAK8EHEOtF44pXF2OPwNgq
	FabMM2J5M61N0+XrIQlbCqCMXT7vHyBv6H8QY74I+MykPkPBgYaRW53HArLXMt89TbQpLzJwJPX
	O6iTlCHzuFd+IsBHGYITAKpfa1Y85aTaQLUv7QCstk3KEepMvRrOL6UNE41ZP0=
X-Google-Smtp-Source: AGHT+IHfWMdZFb4djGcEg7ZWieIJ8+qmQckCBfwI+AOuSqeURcRfHegRSY+Mjzzp4CFUzJeIaHtHPg==
X-Received: by 2002:a05:6402:1bcf:b0:5d0:8106:aaf4 with SMTP id 4fb4d7f45d1cf-5d08106af00mr223880a12.21.1732651673993;
        Tue, 26 Nov 2024 12:07:53 -0800 (PST)
Message-ID: <46949b57-242b-4724-8e81-62d205233829@citrix.com>
Date: Tue, 26 Nov 2024 20:07:52 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v1] x86/APIC: Read Error Status Register correctly
To: Javi Merino <javi.merino@cloud.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2024 5:06 pm, Javi Merino wrote:
> The logic to read the APIC_ESR was copied from linux in a commit from
> 2002: 4676bbf96dc8 (bitkeeper revision
> 1.2 (3ddb79c9KusG02eh7i-uXkgY0IksKA), 2002-11-20).  In linux 3.14,
> this logic was fixed to follow the Intel SDM (see commit
> 60283df7ac26 (x86/apic: Read Error Status Register correctly,
> 2014-01-14) in the linux kernel).  The Intel(r) 64 and IA-32
> Architectures Software Develover's Manual currently says
> in Volume 3, Section 12.5.3:
>
>   Before attempt to read from the ESR, software should first write to
>   it. (The value written does not affect the values read subsequently;
>   only zero may be written in x2APIC mode.) This write clears any
>   previously logged errors and updates the ESR with any errors
>   detected since the last write to the ESR. This write also rearms the
>   APIC error interrupt triggering mechanism.
>
> Update error_interrupt() to remove the first read and follow the Intel
> manual.
>
> Signed-off-by: Javi Merino <javi.merino@cloud.com>

In Linux, this bugfix was further corrected with
https://lore.kernel.org/lkml/alpine.LFD.2.11.1404011300010.27402@eddie.linux-mips.org/

However, Xen being 64-bit only doesn't care about the Pentium 3AP errata
with writing to ESR.

I'm tempted to take this patch as-is, then do a followup on top to
remove the remnants of the Pentium errata from Xen.Â  I don't think it's
interesting to take bugfixes to bugfixes simply to delete them right after.

Thoughts?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 26 20:59:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 20:59:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844030.1259582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG2eQ-0007zG-Kp; Tue, 26 Nov 2024 20:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844030.1259582; Tue, 26 Nov 2024 20:59: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 1tG2eQ-0007z9-Gk; Tue, 26 Nov 2024 20:59:14 +0000
Received: by outflank-mailman (input) for mailman id 844030;
 Tue, 26 Nov 2024 20:59: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=zdLj=SV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tG2eO-0007z3-UY
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 20:59:13 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 460a8b45-ac39-11ef-99a3-01e77a169b0f;
 Tue, 26 Nov 2024 21:59:06 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-53de79c2be4so2416944e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 12:59:06 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b52fe71sm634611266b.110.2024.11.26.12.59.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Nov 2024 12: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: 460a8b45-ac39-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmMiLCJoZWxvIjoibWFpbC1sZjEteDEyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ2MGE4YjQ1LWFjMzktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjU0NzQ2LjE2NDUyMiwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732654745; x=1733259545; 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=LnCpP9z2EwL5D6PvnYeqcyj+x2bh3rEMK+pVctjlxSA=;
        b=ipZyVMuhJYTAulwE0GslVANAEtNtfDsrxmDg8dBP4NX1Ty82y9HK8AFuFdFhV85orF
         pfIok9wxZ4YBstbIvzQVO1zKkYHCNDVuOYIZnq37kL2QyRrWgtU3+dszX9RzLi9HsGIT
         M4em1WNQm+qOn8HXoPP1qzAiosLdG+z1hKfe8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732654745; x=1733259545;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=LnCpP9z2EwL5D6PvnYeqcyj+x2bh3rEMK+pVctjlxSA=;
        b=nK28N3XPPvAzrCEelidR/xoHsHJQH3hL2z0jgqn4UCqH9yE+EX5P6bobIAet2GDXod
         auD2VDNNPR8wCgmvbMUfXWNjdmGzY09C1ZnXzaD9rzj+1/9ygTB5VI7KhwMx62RKOg9W
         Od2v+g79KxNPyfHn6wlB7BNwQca5qxSeDVqtdn8Lv/xTQae5HdFaH8m/usg1GjlK9gF1
         KEimy8IHGxyqCCFm7kdRgb5Aa2GeOg46/+4TZBVcKwLzDPSXItK9/ZuHpRKESRbGNUtc
         fmTkUaIWO+CXhUt0hdOE1MsoyLH1F3z+3ySd8y2w7LqPgHQNXVxS51uNLLV67SEpqK0a
         +k+Q==
X-Gm-Message-State: AOJu0YwbJT6CXcmWUMYlUmJRh1bVfvPpi1s6c3NOMjx1bPk9MW3lEasx
	Vs6MmDwyqYgIDpy5wiDzGXO11AKiBuBSoWAT7pi/WyGMyYrkSdw7oBGLDIxGpffDdi7sqIB1srx
	n
X-Gm-Gg: ASbGnct855+ONd2lvv5luwLRx8m/29UmvPssF2J6MHJkTGs3QTeAV1mu6kocK7XExKW
	6azWpbxqz4pbKYWIJXtSvCTFcieb+GNO1jMVuLSIwiw9HMGklFlqPdYlyXPjsqaNbSn3DHFH5I8
	P3lUDLn5TDQw2BaMoMYIzI9a+j4tnZxFpr9evA9XjuY0Ok82p6/D4OI62E4bgNi77Fxh4gshOhm
	JkcxmiQQOQDnm5y087s1vClYkndQuq8HwGx3TIZTTSY3m2c0/Ok07TaguVFhdJ5LFfwYpb23Sav
X-Google-Smtp-Source: AGHT+IH6xVp04axj0HxoP6HVsIrh0zwIBMqNICJmwueDdc2fwhxt/WjeSAGKQBBrtfIb5tliYDvApw==
X-Received: by 2002:a05:6512:3c9d:b0:53d:e948:4c6e with SMTP id 2adb3069b0e04-53df00d02camr235572e87.13.1732654744867;
        Tue, 26 Nov 2024 12:59:04 -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>,
	Javi Merino <javi.merino@cloud.com>
Subject: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
Date: Tue, 26 Nov 2024 20:58:59 +0000
Message-Id: <20241126205859.23090-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The SDM instructs software to write 0 to ESR prior to reading it.  However,
due to an original Pentium erratum, most logic skips the write based on there
being more than 3 LVTs; a stand-in to identify the Pentium.

Xen, being 64bit, doesn't need compatibility for i586 processors.

Introduce a new apic_read_esr() helper, quoting the SDM to explain why a
function named apic_read_esr() has a write in it too.

Use the new helper throughout apic.c and smpboot.c, which allows us to remove
some useless reads of APIC_LVR.  This in turn removes the external callers of
get_maxlvt(), so make it local to apic.c

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>
CC: Javi Merino <javi.merino@cloud.com>

Based on Javi's patch correcting error_interrupt()

Bloat-o-meter reports:

  add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-269 (-269)
  Function                                     old     new   delta
  get_maxlvt                                    48       -     -48
  __cpu_up                                    1465    1417     -48
  clear_local_APIC                            1109    1050     -59
  setup_local_APIC                             942     828    -114
---
 xen/arch/x86/apic.c             | 29 ++++++++++-------------------
 xen/arch/x86/include/asm/apic.h | 24 +++++++++++++++++++++++-
 xen/arch/x86/smpboot.c          | 17 ++++-------------
 3 files changed, 37 insertions(+), 33 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index b4f542d25918..017d97054b06 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -142,7 +142,7 @@ int get_physical_broadcast(void)
         return 0xf;
 }
 
-int get_maxlvt(void)
+static int get_maxlvt(void)
 {
     unsigned int v = apic_read(APIC_LVR);
 
@@ -209,9 +209,7 @@ void clear_local_APIC(void)
         apic_write(APIC_LDR, v);
     }
 
-    if (maxlvt > 3)        /* Due to Pentium errata 3AP and 11AP. */
-        apic_write(APIC_ESR, 0);
-    apic_read(APIC_ESR);
+    apic_read_esr();
 }
 
 void __init connect_bsp_APIC(void)
@@ -488,7 +486,7 @@ static void resume_x2apic(void)
 
 void setup_local_APIC(bool bsp)
 {
-    unsigned long oldvalue, value, maxlvt;
+    unsigned long oldvalue, value;
     int i, j;
 
     BUILD_BUG_ON((SPURIOUS_APIC_VECTOR & 0x0f) != 0x0f);
@@ -614,17 +612,13 @@ void setup_local_APIC(bool bsp)
         value = APIC_DM_NMI | APIC_LVT_MASKED;
     apic_write(APIC_LVT1, value);
 
-    maxlvt = get_maxlvt();
-    if (maxlvt > 3)     /* Due to the Pentium erratum 3AP. */
-        apic_write(APIC_ESR, 0);
-    oldvalue = apic_read(APIC_ESR);
+    oldvalue = apic_read_esr();
 
     value = ERROR_APIC_VECTOR;      // enables sending errors
     apic_write(APIC_LVTERR, value);
-    /* spec says clear errors after enabling vector. */
-    if (maxlvt > 3)
-        apic_write(APIC_ESR, 0);
-    value = apic_read(APIC_ESR);
+
+    value = apic_read_esr();
+
     if (value != oldvalue)
         apic_printk(APIC_VERBOSE,
                     "ESR value before enabling vector: %#lx  after: %#lx\n",
@@ -719,11 +713,9 @@ int lapic_resume(void)
     apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
     apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
     apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
-    apic_write(APIC_ESR, 0);
-    apic_read(APIC_ESR);
+    apic_read_esr();
     apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);
-    apic_write(APIC_ESR, 0);
-    apic_read(APIC_ESR);
+    apic_read_esr();
     local_irq_restore(flags);
     return 0;
 }
@@ -1389,8 +1381,7 @@ static void cf_check error_interrupt(void)
     unsigned int i;
 
     /* First tickle the hardware, only then report what went on. -- REW */
-    apic_write(APIC_ESR, 0);
-    v = apic_read(APIC_ESR);
+    v = apic_read_esr();
     ack_APIC_irq();
 
     for ( i = 0; i < ARRAY_SIZE(entries); ++i )
diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
index d8eda6df6d86..337eb5cf6642 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -151,6 +151,29 @@ static inline u32 get_apic_id(void)
     return x2apic_enabled ? id : GET_xAPIC_ID(id);
 }
 
+static inline uint32_t apic_read_esr(void)
+{
+    /*
+     * The SDM states:
+     *   Before attempt to read from the ESR, software should first write to
+     *   it. (The value written does not affect the values read subsequently;
+     *   only zero may be written in x2APIC mode.) This write clears any
+     *   previously logged errors and updates the ESR with any errors detected
+     *   since the last write to the ESR. This write also rearms the APIC
+     *   error interrupt triggering mechanism.
+     */
+    if ( x2apic_enabled )
+    {
+        apic_wrmsr(APIC_ESR, 0);
+        return apic_rdmsr(APIC_ESR);
+    }
+    else
+    {
+        apic_mem_write(APIC_ESR, 0);
+        return apic_mem_read(APIC_ESR);
+    }
+}
+
 void apic_wait_icr_idle(void);
 
 int get_physical_broadcast(void);
@@ -161,7 +184,6 @@ static inline void ack_APIC_irq(void)
 	apic_write(APIC_EOI, 0);
 }
 
-extern int get_maxlvt(void);
 extern void clear_local_APIC(void);
 extern void connect_bsp_APIC (void);
 extern void disconnect_bsp_APIC (int virt_wire_setup);
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 79a79c54c304..7c77125fe715 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -422,7 +422,7 @@ void asmlinkage start_secondary(void *unused)
 static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
 {
     unsigned long send_status = 0, accept_status = 0;
-    int maxlvt, timeout, i;
+    int timeout, i;
 
     /*
      * Normal AP startup uses an INIT-SIPI-SIPI sequence.
@@ -444,8 +444,7 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
     /*
      * Be paranoid about clearing APIC errors.
      */
-    apic_write(APIC_ESR, 0);
-    apic_read(APIC_ESR);
+    apic_read_esr();
 
     if ( send_INIT )
     {
@@ -495,13 +494,10 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
         }
     }
 
-    maxlvt = get_maxlvt();
-
     for ( i = 0; i < 2; i++ )
     {
         Dprintk("Sending STARTUP #%d.\n", i+1);
-        apic_write(APIC_ESR, 0);
-        apic_read(APIC_ESR);
+        apic_read_esr();
         Dprintk("After apic_write.\n");
 
         /*
@@ -529,12 +525,7 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
             udelay(200);
         }
 
-        /* Due to the Pentium erratum 3AP. */
-        if ( maxlvt > 3 )
-        {
-            apic_write(APIC_ESR, 0);
-        }
-        accept_status = (apic_read(APIC_ESR) & 0xEF);
+        accept_status = apic_read_esr() & 0xEF;
         if ( send_status || accept_status )
             break;
     }

base-commit: c8e3e39085bf97d1afb775d54884d239387e32cd
prerequisite-patch-id: 1f86bfc85bb08e12c21535d5c527f555f192d4e7
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844073.1259715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tu-000339-FV; Tue, 26 Nov 2024 23:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844073.1259715; Tue, 26 Nov 2024 23: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 1tG4tt-0002ym-SD; Tue, 26 Nov 2024 23:23:21 +0000
Received: by outflank-mailman (input) for mailman id 844073;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sj-0000At-DP
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:09 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3cffca5d-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:01 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D57035C5CAB;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 105EDC4CEDB;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 0622ED66B94;
 Tue, 26 Nov 2024 23:21:56 +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: 3cffca5d-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNjZmZjYTVkLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzIxLjgwNDA1LCJzZW5kZXIiOiJkZXZudWxsK2RtdWtoaW4uZm9yZC5jb21Aa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=uX6eDC7J8gnEJzkAK+vFayV4YOh384qGm0SB3/a+eoo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=BsEhuq5RfoZD+6Kjkcdh+1UmQjETVdTMJ1Y9U2a0BhxSmGuQt3As7TUinDnmaYyM0
	 a/EDKlaWVcGHIPALZNARRp16k+Bpka1H7eVoensrfFmkSbJIRpw8n820Azr+rO/XX8
	 f1ZBp0/a8/OrQ3jlqhuaLMdZXZ0RH9JIpGl18X1stfMdpeAx1JCVRGBS35IG+vMprV
	 jfaF++CEmnMSeRgydRq/zIyjkeCac/v19J4Mmar06ksRwNPiCvMJk46mMQGOmHNS76
	 nQi637/zapqi1Gr/BJstnf0UoyCJYBGv2wEzz1ItMaIB61TnS9z+PbBHSqigwVYi7t
	 vwn9B3n1hM2rA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:01 -0800
Subject: [PATCH 11/36] x86/domain: introduce domain_has_vuart()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-11-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=889;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=d8+eK1EX7G4dAD9MTJCuZscRKOX31WZGg59AsNpMxsU=;
 b=uKI8dZysavD1G91oDNk8dSTzasbyQi26nDseOFCosloHlC7ztmtSLUYzwhVsG90ns5k9SkWZh
 VllqUfZyW8DC8F6KDfz9apA7MC8TS7TbnCzh9IG3aeseGrwOtJPD6PM
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Introduce domain_has_vuart() for x86 port to be used in the console driver.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/domain.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index b79d6badd71c4d96279555df62fad75fe817a2b6..c1d0d1f47324e8cc678a4c76c43f86820a89e7b3 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -506,6 +506,9 @@ struct arch_domain
 #define has_pirq(d)        (!!((d)->arch.emulation_flags & X86_EMU_USE_PIRQ))
 #define has_vpci(d)        (!!((d)->arch.emulation_flags & X86_EMU_VPCI))
 
+/* NB: same symbol as in Arm port */
+#define domain_has_vuart(d) false
+
 #define gdt_ldt_pt_idx(v) \
       ((v)->vcpu_id >> (PAGETABLE_ORDER - GDT_LDT_VCPU_SHIFT))
 #define pv_gdt_ptes(v) \

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844052.1259624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tn-0000nZ-Cz; Tue, 26 Nov 2024 23:23:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844052.1259624; Tue, 26 Nov 2024 23:23: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 1tG4tn-0000mE-4r; Tue, 26 Nov 2024 23:23:15 +0000
Received: by outflank-mailman (input) for mailman id 844052;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4se-0000At-CO
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:04 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ae27bca-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id E9453A41665;
 Tue, 26 Nov 2024 23:20:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 56E98C4CED7;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 4A42ED66B84;
 Tue, 26 Nov 2024 23:21: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: 3ae27bca-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNhZTI3YmNhLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE3Ljk3MDI5MSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=hhpepZyC6+B98tKRYu7FEASFfIF/3/TSsCfLQMcZ32A=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=qnzUmTBBnyPw/PBcHJlWArvKyI3BqwPBho6sr0Ljp4rDl716NfDn4W/kR5sa24HeN
	 LfQqL14pYIaW5oKjKa+2wWEQQqLcYQJUaxaX8lFThkeZ4wfrVxqa8riVBoZ+pmXa6G
	 e5DZ+xsajgVkEYhLPPHs2zODp10ZEE9ocsKEsGSx6CBmZRBLJ21xSFiBVJotMKDIci
	 GjXijXXt4ITNwNyav8sKH8kwvnJ4lMB8dPxNL0+/muqV+4hLhgFyb840SKGcF4PKV6
	 WL+APewHdNypUEBBSXUA/yv5fEa67mtK4tUfX8LirE2kXWxb5ury8wvshCHtOYW/jy
	 SbzrPLNILgJtQ==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:53 -0800
Subject: [PATCH 03/36] xen: introduce resource.h
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-3-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=4665;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=Q8GpN19knhkzccfTAV4prViqD1gvBrGqV7AxMvPxGlg=;
 b=R204wyNJVDFwtxunVQ6uTri4iQAm0/nHG/UG64/jv9N7oGTk83gB3DKrDKESdQQu1IVN9xlm7
 3k8U0eTtjb9DPHLtDbGKT5MQ/HAPZ4KbuEtGVkcnzKJn04P8qSywJYz
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Move resource definitions to a new architecture-agnostic shared header file.

It will be used in follow on NS8250 emulator code to describe legacy
PC COM resources.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/common/device-tree/device-tree.c | 21 +------------------
 xen/drivers/passthrough/arm/smmu.c   | 15 +-------------
 xen/include/xen/resource.h           | 40 ++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+), 34 deletions(-)

diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
index d0528c5825651f7cc9ebca0c949229c9083063c6..e8f810b2fe10890c033ed3a9d4ca627010ad019b 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -24,6 +24,7 @@
 #include <xen/ctype.h>
 #include <asm/setup.h>
 #include <xen/err.h>
+#include <xen/resource.h>
 
 const void *device_tree_flattened;
 dt_irq_xlate_func dt_irq_xlate;
@@ -535,26 +536,6 @@ int dt_child_n_size_cells(const struct dt_device_node *parent)
     return __dt_n_size_cells(parent, true);
 }
 
-/*
- * These are defined in Linux where much of this code comes from, but
- * are currently unused outside this file in the context of Xen.
- */
-#define IORESOURCE_BITS         0x000000ff      /* Bus-specific bits */
-
-#define IORESOURCE_TYPE_BITS    0x00001f00      /* Resource type */
-#define IORESOURCE_IO           0x00000100      /* PCI/ISA I/O ports */
-#define IORESOURCE_MEM          0x00000200
-#define IORESOURCE_REG          0x00000300      /* Register offsets */
-#define IORESOURCE_IRQ          0x00000400
-#define IORESOURCE_DMA          0x00000800
-#define IORESOURCE_BUS          0x00001000
-
-#define IORESOURCE_PREFETCH     0x00002000      /* No side effects */
-#define IORESOURCE_READONLY     0x00004000
-#define IORESOURCE_CACHEABLE    0x00008000
-#define IORESOURCE_RANGELENGTH  0x00010000
-#define IORESOURCE_SHADOWABLE   0x00020000
-
 /*
  * Default translator (generic bus)
  */
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 03d22bce1e497e41834c273f9048b98dcbd48a54..aa6a968b574dce7cc753e8070fad3a6e585cd9e7 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -50,6 +50,7 @@
 #include <xen/rbtree.h>
 #include <xen/sched.h>
 #include <xen/sizes.h>
+#include <xen/resource.h>
 #include <asm/atomic.h>
 #include <asm/device.h>
 #include <asm/io.h>
@@ -70,22 +71,8 @@
 #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out))
 #define of_property_read_bool dt_property_read_bool
 #define of_parse_phandle_with_args dt_parse_phandle_with_args
-
-/* Xen: Helpers to get device MMIO and IRQs */
-struct resource
-{
-	paddr_t addr;
-	paddr_t size;
-	unsigned int type;
-};
-
-#define resource_size(res) (res)->size;
-
 #define platform_device dt_device_node
 
-#define IORESOURCE_MEM 0
-#define IORESOURCE_IRQ 1
-
 static struct resource *platform_get_resource(struct platform_device *pdev,
 					      unsigned int type,
 					      unsigned int num)
diff --git a/xen/include/xen/resource.h b/xen/include/xen/resource.h
new file mode 100644
index 0000000000000000000000000000000000000000..4962e17da8387b7f324317482b19cc9fe71433fc
--- /dev/null
+++ b/xen/include/xen/resource.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * System resource description.
+ *
+ * Reference:
+ *   include/linux/ioport.h
+ */
+#if !defined(XEN__RESOURCE_H)
+#define XEN__RESOURCE_H
+
+#define IORESOURCE_BITS         0x000000FFU      /* Bus-specific bits */
+
+#define IORESOURCE_TYPE_BITS    0x00001F00U      /* Resource type */
+#define IORESOURCE_IO           0x00000100U      /* PCI/ISA I/O ports */
+#define IORESOURCE_MEM          0x00000200U
+#define IORESOURCE_REG          0x00000300U      /* Register offsets */
+#define IORESOURCE_IRQ          0x00000400U
+#define IORESOURCE_DMA          0x00000800U
+#define IORESOURCE_BUS          0x00001000U
+
+#define IORESOURCE_PREFETCH     0x00002000U      /* No side effects */
+#define IORESOURCE_READONLY     0x00004000U
+#define IORESOURCE_CACHEABLE    0x00008000U
+#define IORESOURCE_RANGELENGTH  0x00010000U
+#define IORESOURCE_SHADOWABLE   0x00020000U
+
+#define IORESOURCE_UNKNOWN      (~0U)
+
+struct resource {
+    paddr_t addr;
+    paddr_t size;
+    unsigned int type;
+};
+
+#define resource_size(res) (res)->size;
+
+#define foreach_resource(res) \
+    for (; res && res->type != IORESOURCE_UNKNOWN; res++)
+
+#endif /* #if !defined(XEN__RESOURCE_H) */

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844047.1259602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tm-0000S5-Dm; Tue, 26 Nov 2024 23:23:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844047.1259602; Tue, 26 Nov 2024 23:23: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 1tG4tm-0000Qp-7M; Tue, 26 Nov 2024 23:23:14 +0000
Received: by outflank-mailman (input) for mailman id 844047;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sc-0000At-3S
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:02 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3abaf4ed-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id BD963A41660;
 Tue, 26 Nov 2024 23:20:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 47EA8C4CED2;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 37680D66B8A;
 Tue, 26 Nov 2024 23:21: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: 3abaf4ed-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNhYmFmNGVkLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE3Ljg5NTQ0NCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=cKINO/Hsop/bfc6jLIz0xl2D+OXz60jGYySFfpDcAlU=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=q5St0jFa5oFUvjtCcRCeWJmo6nYrhlIHDG52k32aN6SMTRRJ/SPvVvpVGXpn7yJ5C
	 dFdQRzjsTwehBpnCGgLBzkzeOgmKwSRK+TR5NwnZQ0BMxFyUgzADvvckX31MpRHKE4
	 xz48heyE1k5iquEGcUE51LjUw36xlXsaXHEh+UtYPHV2wf7aoXXnb2NxifKhG00N49
	 A55dQF8MPu9VzDAG6cUnEhbKBYRk+AsxkynSiPxMMIK96hvppfssOfNycH3etAiLZi
	 5VvucsQ+xGcrQqXUqotLn1vvutpDF8Z2cpyXJsRMztpKmQa0o6SYDLgYtOWjKokVWW
	 ARdgoCOj25yuQ==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:52 -0800
Subject: [PATCH 02/36] xsm/flask: missing breaks, MISRA rule 16.4
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-2-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1534;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=Om6cdnbe5fxG+CPjXPUOumzF0XPQ191PKf8s/8GFQ90=;
 b=w8ahloFDu924cxnDNLZ4R1wwM6DWcNf1t2DrnlPft9LzkIetQCU1BI/6U654/5ljvXy08gkyR
 0sUOpQD/agmCgTz6kCaQ8aW0762sTvVUZlawmKG9f0feuH2wHd5/HYB
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

While working on console forwarding for virtual NS8250 I stepped into
  flask_domain_alloc_security()
where break statement was missing in default case which violates MISRA
rule 16.4.

Fixed everywhere in hooks.c.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/xsm/flask/hooks.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index dfa23738cd8a9fd91eda23d9c328c3cc55d31418..a79474ffe43af19f602a6c067eab6b40dba0d946 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -198,6 +198,7 @@ static int cf_check flask_domain_alloc_security(struct domain *d)
             else if ( pv_shim )
                 dsec->sid = SECINITSID_DOMU;
         }
+        break;
     }
 
     dsec->self_sid = dsec->sid;
@@ -342,6 +343,7 @@ static int cf_check flask_evtchn_send(struct domain *d, struct evtchn *chn)
         break;
     default:
         rc = avc_unknown_permission("event channel state", chn->state);
+        break;
     }
 
     return rc;
@@ -1310,6 +1312,7 @@ static int cf_check flask_hvm_param(struct domain *d, unsigned long op)
         break;
     default:
         perm = HVM__HVMCTL;
+        break;
     }
 
     return current_has_perm(d, SECCLASS_HVM, perm);
@@ -2013,6 +2016,7 @@ const struct xsm_ops *__init flask_init(
     case FLASK_BOOTPARAM_INVALID:
     default:
         panic("Flask: Invalid value for flask= boot parameter.\n");
+        break;
     }
 
     avc_init();

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844045.1259593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tl-0000MH-Sm; Tue, 26 Nov 2024 23:23:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844045.1259593; Tue, 26 Nov 2024 23:23: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 1tG4tl-0000MA-OX; Tue, 26 Nov 2024 23:23:13 +0000
Received: by outflank-mailman (input) for mailman id 844045;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sb-0000Ao-91
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:01 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a6e18f8-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:21:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id AC7B8A401D8;
 Tue, 26 Nov 2024 23:20:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 3A719C4CED3;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 1D6EAD66B88;
 Tue, 26 Nov 2024 23:21: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: 3a6e18f8-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNhNmUxOGY4LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzE3LjQyMjY3LCJzZW5kZXIiOiJkZXZudWxsK2RtdWtoaW4uZm9yZC5jb21Aa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=Yb0mvdyBQS1c7dAPhUGgIsRh+rcogZBJTDsqTjxJ3hs=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=G379LioZzb3INaF2u6erQbpZ0mHNJM6NtXCtFwfgkkuivFbiPCwplSphDrw9rXnEK
	 j7OIGwcs2UrkkOTWmrjtJMblVivSnLXVA9bV7WRupIUWNdooiGLxvQ3kQzffCypdm8
	 y20BYGp2Fl1E1CXAYVnsNhEjcmYMbPJLdGVKSuULPehJgzwyvVqwroEnrCqRT77a07
	 ZlreXPxqEpm7c0zJCzeowVKqQuzHZHuqAzRDIXcRwRlCazW5ORj/NANrNsfjzQZtGG
	 kUoEi4+2yhntsQCttMPLAXqhUHpq/Kx5CI8j31llSMCXR3I2Vc8hkwEDdiOE+MoZB9
	 2GYYk8Z3fXYEA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:51 -0800
Subject: [PATCH 01/36] x86/setup: fix typo in acpi=off description
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-1-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=913;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=7yTBjRl8lmc1tg+ZFlXhUwzuZwMkcPhVqwc9gw3xsIQ=;
 b=fGhLeTafOQHdmZPBdD9bIVheTVXsfAPHD70yBmhJl2mjqDLgSZD+W7NfTS1UpjOjg5WWyO82s
 3nLC9cTHbFbD0Zur6mUCtIfo/TkKIfkB94RsV1dDD42fBf/p2X0hkh9
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/setup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d8661d7ca699c96f38229c75ad0a8626c6f675d4..0a748e2c14122d6c5d692bc5691e8cbe13a32c81 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -83,7 +83,7 @@ int8_t __initdata opt_probe_port_aliases = -1;
 boolean_param("probe-port-aliases", opt_probe_port_aliases);
 
 /* **** Linux config option: propagated to domain0. */
-/* "acpi=off":    Sisables both ACPI table parsing and interpreter. */
+/* "acpi=off":    Disables both ACPI table parsing and interpreter. */
 /* "acpi=force":  Override the disable blacklist.                   */
 /* "acpi=ht":     Limit ACPI just to boot-time to enable HT.        */
 /* "acpi=noirq":  Disables ACPI interrupt routing.                  */

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844059.1259657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tp-0001Wy-Do; Tue, 26 Nov 2024 23:23:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844059.1259657; Tue, 26 Nov 2024 23:23: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 1tG4tp-0001UA-15; Tue, 26 Nov 2024 23:23:17 +0000
Received: by outflank-mailman (input) for mailman id 844059;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sg-0000At-D7
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:06 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b0f43ea-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 2BCF5A4166A;
 Tue, 26 Nov 2024 23:20:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 8A7ACC4CEE0;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 82931D66B8A;
 Tue, 26 Nov 2024 23:21: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: 3b0f43ea-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NWQxOmVjMDA6OjMiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNiMGY0M2VhLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE4LjQxOTIzNiwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=Mz0LfCOOHYiw5/C9m9hW2cPDEp/vC7dK7lem4N02Sxg=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=aIjU402cJH+SGngOO0S0c6Rj4bK3IJx5aoYni+Vmv0ttkiuk7zUgf5Ov6pmVlYuTq
	 lYMq+ThcZiAhepv24l0dj4PvMButU0KqFWFq3a5QvoK8JIHalQlmstew7fjhEIWmNC
	 hN/pAhCFchm71EpQV5lRA24sS+L9fwb609cOp4AGwbU3te+K+36l0k/X3Git4mCC99
	 VJYRZoUpuk36qiiXIWUYASWa/I09wo9NDWljCaO5a8wHutCFHL1aglM4QfNJUh8v/f
	 i0pulpTWshGNcmhixEmmpgdAJJilIR5OA1kcpyHHnlRVd/GlTj0Es8mPc/frREm3tW
	 LGaXIdaUo+r5Q==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:56 -0800
Subject: [PATCH 06/36] xen/ctype: introduce isconsole()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-6-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=2961;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=AiWQqLZufYvPF2BvW1MH1/m06BTcFm+ZjCUWxGGdDOM=;
 b=Nk3hSzmyiSciOxuFiqeHNmLM17vLHl4dm7GK5e+zTLBVctllzH40H0KiGU9Ltvtt8mndY72w/
 tHnwxiHyr2dCyF6c8DfKcqBWQiThwRjNDVBdSjU+V1SPC00i/smcg7U
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

There are several console drivers which have same checks w.r.t. printable
characters. The check is moved to new isconsole() macro and re-used in
the console drivers.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/vuart.c       | 3 +--
 xen/arch/x86/hvm/hvm.c     | 3 +--
 xen/drivers/char/console.c | 2 +-
 xen/include/xen/ctype.h    | 3 +++
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/vuart.c b/xen/arch/arm/vuart.c
index d5ba483f1e63245e545346ad5045098152b8c152..ac76e2327bb84f05ea5716c6f5550f94812d2827 100644
--- a/xen/arch/arm/vuart.c
+++ b/xen/arch/arm/vuart.c
@@ -79,8 +79,7 @@ static void vuart_print_char(struct vcpu *v, char c)
     struct domain *d = v->domain;
     struct vuart *uart = &d->arch.vuart;
 
-    /* Accept only printable characters, newline, and horizontal tab. */
-    if ( !isprint(c) && (c != '\n') && (c != '\t') )
+    if ( !isconsole(c) )
         return ;
 
     spin_lock(&uart->lock);
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 74e58c653e6f697e7e563fd076bbbafaf257137d..493b699c708949b2109c26573a107565543f5d45 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -561,8 +561,7 @@ static int cf_check hvm_print_line(
     if ( dir != IOREQ_WRITE )
         return X86EMUL_UNHANDLEABLE;
 
-    /* Accept only printable characters, newline, and horizontal tab. */
-    if ( !isprint(c) && (c != '\n') && (c != '\t') )
+    if ( !isconsole(c) )
         return X86EMUL_OKAY;
 
     spin_lock(&cd->pbuf_lock);
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 7da8c5296f3b62c6c45131c58fe5cf0e393e9ef3..bb56953bab681a13da8d41431aba4632f1919df9 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -674,7 +674,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
                 c = *kin++;
                 if ( c == '\n' )
                     break;
-                if ( isprint(c) || c == '\t' )
+                if ( isconsole(c) )
                     *kout++ = c;
             } while ( --kcount > 0 );
 
diff --git a/xen/include/xen/ctype.h b/xen/include/xen/ctype.h
index 773ac27aa44ac65e76e87cdec960450804310249..741bea8ff7ae431e27b05e2b62402f64b3a9cacf 100644
--- a/xen/include/xen/ctype.h
+++ b/xen/include/xen/ctype.h
@@ -4,6 +4,8 @@
 /*
  * NOTE! This ctype does not handle EOF like the standard C
  * library is required to.
+ *
+ * See Rule 21.13 in docs/misra/rules.rst.
  */
 
 #define _U	0x01	/* upper */
@@ -30,6 +32,7 @@ extern const unsigned char _ctype[];
 #define isspace(c)	((__ismask(c)&(_S)) != 0)
 #define isupper(c)	((__ismask(c)&(_U)) != 0)
 #define isxdigit(c)	((__ismask(c)&(_D|_X)) != 0)
+#define isconsole(c)	(isprint(c) || c == '\n' || c == '\t')
 
 #define isascii(c) (((unsigned char)(c))<=0x7f)
 #define toascii(c) (((unsigned char)(c))&0x7f)

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844069.1259703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tt-0002nj-EV; Tue, 26 Nov 2024 23:23:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844069.1259703; Tue, 26 Nov 2024 23:23: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 1tG4ts-0002kw-U1; Tue, 26 Nov 2024 23:23:20 +0000
Received: by outflank-mailman (input) for mailman id 844069;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4si-0000Ao-MC
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:08 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3dbf5b85-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id E47905C5D70;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 1DBFDC4CED7;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 11E83D66B94;
 Tue, 26 Nov 2024 23:21:57 +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: 3dbf5b85-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNkYmY1Yjg1LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzIzLjI1ODE0NSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=xN3Qk4AnkavJDz1+2oRzOsxhatlUANXuldhRbnVqaL0=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=ItYXHoJ/mJNsPDSZ9pf4Ui726UpgFmylp5LAsOGmc2yZqvNzSjIAKc+fMV+PdsJnC
	 RxLCIck1Wfcv7eF+HknLfAxJO3jiVLxxpII/Kl6TpWtC4ct7bFEvLWhMjp+d9vAmHP
	 P3iuRXB3dQJQtffNjDd8pjaYCsMO1maYRtTENwECy0JhRRkr39RkuNR454sLuDH503
	 /egBzxIdcif4Zqt16DnAkRv5CWX5Ye9QkvhYwsm7O42u/G+sGk0WKSUlEAYMnCCCZn
	 sJR8lW7x5wSmgrdL7nhCuJPqJFMoB5Bd1flhz7j4z2RcMg/GJoXQh12ijlgRx/5dmO
	 GYQ8r9hIxUlDg==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:14 -0800
Subject: [PATCH 24/36] xen/console: introduce console_init_owner()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-24-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1949;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=9IHMF1BdeViUoT1r1xwy88EM2J39hJxCdMpf6FUj+oc=;
 b=iU++HT4kXEU4fCx3MfdSPop0eCxgapVBalO1zTfRHftl7NMTURPkAWlnTI41PiCDlyw5pkYq5
 YJOq/CZ6Y6lD6glLNem8Mfog6GMWKqhpPKh/ks4hfwiAJ0sIF3uEIrW
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

console_init_owner() is introduced for selecting the boot-time console owner.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index a8ab5c2bcb98e4cadf9ad2c9ad28d297977d0557..6261bdb5a2ac1075bc89fa408c0fd6cfef380ae6 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -554,6 +554,22 @@ static void console_find_owner(void)
         console_set_owner(DOMID_XEN);
 }
 
+static void console_init_owner(void)
+{
+    domid_t domid;
+
+    /*
+     * If user specifies so, we fool the switch routine to redirect input
+     * straight back to Xen.
+     */
+    if ( opt_conswitch[1] == 'x' )
+        domid = DOMID_XEN;
+    else
+        domid = get_initial_domain_id();
+
+    console_set_owner(domid);
+}
+
 static void __serial_rx(char c)
 {
     switch ( console_owner )
@@ -1143,14 +1159,6 @@ void __init console_endboot(void)
 
     video_endboot();
 
-    /*
-     * If user specifies so, we fool the switch routine to redirect input
-     * straight back to Xen. I use this convoluted method so we still print
-     * a useful 'how to switch' message.
-     */
-    if ( opt_conswitch[1] == 'x' )
-        console_owner = DOMID_XEN;
-
     register_keyhandler('w', dump_console_ring_key,
                         "synchronously dump console ring buffer (dmesg)", 0);
     register_irq_keyhandler('+', &do_inc_thresh,
@@ -1160,8 +1168,7 @@ void __init console_endboot(void)
     register_irq_keyhandler('G', &do_toggle_guest,
                             "toggle host/guest log level adjustment", 0);
 
-    /* Serial input is directed to DOM0 by default. */
-    console_find_owner();
+    console_init_owner();
 }
 
 int __init console_has(const char *device)

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844049.1259616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tn-0000i3-22; Tue, 26 Nov 2024 23:23:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844049.1259616; Tue, 26 Nov 2024 23:23: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 1tG4tm-0000g8-S1; Tue, 26 Nov 2024 23:23:14 +0000
Received: by outflank-mailman (input) for mailman id 844049;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sd-0000At-CO
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:03 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a43e29d-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:56 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 953F4A401CE;
 Tue, 26 Nov 2024 23:20:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 237A6C4CED0;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 0AAF3D66B89;
 Tue, 26 Nov 2024 23:21: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: 3a43e29d-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE0Ny43NS4xOTMuOTEiLCJoZWxvIjoibnljLnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNhNDNlMjlkLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE3LjA3NjY1MSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=1Tgv8W8Bg/t7u7numSd+mYVQFp79uUbY0gFJ5smR4Lk=;
	h=From:Subject:Date:To:Cc:Reply-To:From;
	b=MxC05qFAfdrGXMJupF6DpUCwnsBeGG/dWqvYNpoWMqdbWB7XIPJ/0BsaxJDGiT9oj
	 rKeW35vU4ZCTkwi5OvYSvofXfkDjoOosDWNlqa9tpAcEl1dv/vezZjs+HZ9bdfoqyD
	 tjmh7Ao/As3QGqRA70HjNEx0M8r8wjx4gnspTZL6s3qr3VGTmQyekwG5XvmQgNXME1
	 Ss9D3Nkcyp7W0D1EP1ixpAbnSrHUOEGPw0hU989G1oSExF+dCpiQoeMHi6IxeWGIqB
	 kzb4PXANFrypj2mK4X7XbvMhofmlj8F3PqPgG7qtV7JGuFJHnBFCDo+hkb5yICTfN/
	 GJjcv3acu7YlQ==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Subject: [PATCH 00/36] Introduce NS8250 UART emulator
Date: Tue, 26 Nov 2024 15:21:50 -0800
Message-Id: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIAA5YRmcC/x3MPQqAMAxA4atIZgM2NPhzFXGoGjVLlVaLIN7d4
 vgN7z0QJahE6IoHgiSNuvsMUxYwbc6vgjpnA1VkjSHGdLlwoo8NcYXJIDs7cj05plYgV0eQRe/
 /2A/v+wF3B1M6YQAAAA==
X-Change-ID: 20241125-vuart-ns8250-v1-5a4b57ca529e
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=7092;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=1Tgv8W8Bg/t7u7numSd+mYVQFp79uUbY0gFJ5smR4Lk=;
 b=TMajczvcEwZsVEZSpSBygegHOC6glKacY9NMJVzDrOE6mZAG5Nlxrk9ABAf2L7b1iwKOE+wnP
 f9KyyxjAaIWCU4GkH6hcub7e2wRit1jrLBqZb0DdWFhI1kC1++YP8wr
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

The patch series introduces initial in-hypervisor emulator for
NS8250/NS16x50-compatible UARTs under CONFIG_HAS_VUART_NS8250.

In parallel domain creation scenario (hyperlaunch), NS8520 emulator helps
early guest OS bringup debugging, because it eliminates dependency on the
external emulator being operational by the time domains are created. Also,
there's no early console facility similar to vpl011 to support x86 guest OS
bring up.

The NS8250 emulator is disabled by default.

Series
======
- patches 1-2: some miscellaneous random fixes, added into the series
  because I stepped into those while debugging NS8250 emulator.

- patches 3-14: preparation fixes for xen console and NS8250 emulator.

- patches 15-29: xen console driver cleanup and preparation for enabling
  physical serial console focus assignment to the guest VM w/ virtual NS8250.

- patches 30-36: initial NS8250 emulator. That adds the I/O port emulator
  for legacy PC COM UARTs, Kconfig option, enabling emulator and libxl
  plumbing.

Limitations
===========
- Only x86;
- Only Linux guest tested so far;
- Only legacy COM{1,2,3,4} resources, no customization;
- Only Xen console as a backend, no inter-domain communication (similar to
  vpl011 on Arm);
- Only 8-bit characters;
- Baud rate is not emulated;
- FIFO-less mode is not emulated properly;
- RX FIFO interrupt moderation (FCR) is not emulated properly, TL16C750
  has special FCR handling;
- No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
  friends);
- Assumes no ISA-device IRQ sharing;
- MMIO-based UART is not supported.

Testing
=======

I tested boot of HVM linux guest w/ OVMF as the virtual firmware.

The emulator, if enabled via CONFIG_HAS_VUART_NS8250=y, will use COM1 (0x3f8)
resources by default.

To test w/ virtual COM1, the guest kernel parameters should contain
  earlycon=uart,io,0x3f8,115200n8 console=uart,io,0x3f8,115200n8

Xen is able to forward physical console input to the domain w/ virtual NS8250.
To switch the console focus press Ctrl+aaa. If console= is given to the HVM
kernel, then the user shall be able to see the login prompt on xen console once
console focus is switched to the HVM guest.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Denis Mukhin (36):
      x86/setup: fix typo in acpi=off description
      xsm/flask: missing breaks, MISRA rule 16.4
      xen: introduce resource.h
      xen/irq: introduce NO_IRQ
      xen/xmalloc: add kmalloc() and kfree() aliases
      xen/ctype: introduce isconsole()
      arm/vuart: use guest_printk()
      arm/vuart: make domain_has_vuart() public
      riscv/domain: introduce domain_has_vuart()
      ppc/domain: introduce domain_has_vuart()
      x86/domain: introduce domain_has_vuart()
      x86/domain: print emulation_flags
      xen/domain: add get_initial_domain_id()
      xen/domain: enable max_init_domid for all architectures
      xen/console: move vpl011-related code to vpl011 emulator
      xen/console: rename console_input_domain
      xen/console: rename switch_serial_input() to console_find_owner()
      xen/console: rename console_rx to console_owner
      xen/console: introduce printk_common()
      xen/console: introduce consoled_is_enabled()
      xen/console: introduce use of 'is_console' flag
      xen/console: introduce console_set_owner()
      xen/console: introduce console_owner_domid()
      xen/console: introduce console_init_owner()
      xen/console: introduce handle_keypress_in_domain()
      xen/console: introduce console_write()
      xen/console: introduce hwdom_crashconsole=
      xen/console: simplify console owner switch hint
      xen/console: make console buffer size configurable
      xen/8250-uart: add missing definitions
      x86/hvm: add HVM-specific Kconfig
      x86/hvm: add helpers for raising guest IRQs
      x86/hvm: introduce NS8250 UART emulator
      x86/domain: implement domain_has_vuart()
      xen/console: enable console owners w/ emulated NS8250
      docs/misc: update console documentation

 docs/misc/console.txt                       |   48 +-
 docs/misc/xen-command-line.pandoc           |    5 +
 tools/libs/light/libxl_x86.c                |    6 +-
 tools/ocaml/libs/xc/xenctrl.ml              |    1 +
 tools/ocaml/libs/xc/xenctrl.mli             |    1 +
 tools/python/xen/lowlevel/xc/xc.c           |    4 +-
 xen/arch/arm/include/asm/domain.h           |    9 +
 xen/arch/arm/include/asm/setup.h            |    2 -
 xen/arch/arm/include/asm/vpl011.h           |    2 +-
 xen/arch/arm/setup.c                        |    2 -
 xen/arch/arm/vpl011.c                       |   21 +-
 xen/arch/arm/vuart.c                        |    9 +-
 xen/arch/ppc/include/asm/domain.h           |    2 +
 xen/arch/ppc/include/asm/setup.h            |    2 -
 xen/arch/riscv/include/asm/domain.h         |    2 +
 xen/arch/riscv/include/asm/setup.h          |    2 -
 xen/arch/x86/Kconfig                        |   66 +-
 xen/arch/x86/dom0_build.c                   |    2 +
 xen/arch/x86/domain.c                       |   16 +-
 xen/arch/x86/hvm/Kconfig                    |   77 ++
 xen/arch/x86/hvm/Makefile                   |    1 +
 xen/arch/x86/hvm/hvm.c                      |   10 +-
 xen/arch/x86/hvm/irq.c                      |   24 +
 xen/arch/x86/hvm/vuart_ns8250.c             | 1012 +++++++++++++++++++++++++++
 xen/arch/x86/include/asm/domain.h           |    8 +-
 xen/arch/x86/include/asm/hvm/domain.h       |    5 +
 xen/arch/x86/include/asm/hvm/irq.h          |    3 +
 xen/arch/x86/include/asm/hvm/vuart_ns8250.h |   75 ++
 xen/arch/x86/include/asm/pv/shim.h          |    4 +-
 xen/arch/x86/include/asm/setup.h            |    3 +-
 xen/arch/x86/pv/shim.c                      |    6 +-
 xen/arch/x86/setup.c                        |    2 +-
 xen/common/device-tree/device-tree.c        |   21 +-
 xen/common/domain.c                         |   41 +-
 xen/drivers/char/Kconfig                    |   23 +
 xen/drivers/char/console.c                  |  379 +++++-----
 xen/drivers/char/consoled.c                 |   18 +-
 xen/drivers/passthrough/arm/smmu.c          |   19 +-
 xen/include/public/arch-x86/xen.h           |   14 +-
 xen/include/xen/8250-uart.h                 |   82 ++-
 xen/include/xen/console.h                   |    4 +-
 xen/include/xen/consoled.h                  |   35 +-
 xen/include/xen/ctype.h                     |    3 +
 xen/include/xen/domain.h                    |    4 +
 xen/include/xen/irq.h                       |    1 +
 xen/include/xen/lib.h                       |    3 +
 xen/include/xen/resource.h                  |   40 ++
 xen/include/xen/xmalloc.h                   |    5 +
 xen/xsm/flask/hooks.c                       |    4 +
 49 files changed, 1778 insertions(+), 350 deletions(-)
---
base-commit: c8e3e39085bf97d1afb775d54884d239387e32cd
change-id: 20241125-vuart-ns8250-v1-5a4b57ca529e

Best regards,
-- 
Denis Mukhin <dmukhin@ford.com>




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844065.1259690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tr-0002LY-SW; Tue, 26 Nov 2024 23:23:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844065.1259690; Tue, 26 Nov 2024 23:23: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 1tG4tr-0002JQ-Av; Tue, 26 Nov 2024 23:23:19 +0000
Received: by outflank-mailman (input) for mailman id 844065;
 Tue, 26 Nov 2024 23: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sh-0000Ao-Ls
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:07 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3cfb709a-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:01 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id CDAA85C5CA2;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id AEE08C4CED0;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id A59D2D66B84;
 Tue, 26 Nov 2024 23:21: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: 3cfb709a-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNjZmI3MDlhLWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzIxLjk4NjgzMiwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=xzKcNYqy712oJFpscHzBooZVYYhlKxtUkfpZjPeQnx4=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=nvCSIBHitSEZyYIWJzK4MBz0C/agcVAdwnWHiJ08BO23WAHIavaY+XN4eJLmGaZJc
	 vXsmwi7yJZWJavILa2JrDa2sAk1GMLM2BaoUgXQdcoFwkaJsZP+La9VR3tt9M9vbyM
	 cvOfLMohcc6rfQv0ttXNAZVsCmB17yTzxCTtlTwztiWcNt0RAxkm/jm1kEKNeVnJC3
	 yOt239YHElcdcyI2LWnk9QjS+bwr5LO8GEajYMFhZZGEUU0U9C5WWS4B7I7RPJcpDc
	 YsfJf55EsTCqFeSpfrtKUjywQFM82Jh6FplxBpZEKFvYUXSUd8k/kcufx8YG3VGQ6q
	 N5egw6Aa1qDag==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:58 -0800
Subject: [PATCH 08/36] arm/vuart: make domain_has_vuart() public
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-8-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=2314;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=uCztJF40iiw3Im/nqwTMa7qbljN2JkGzlchQ98JzHsE=;
 b=isneJVgwidpN8rhG/OkAiaRbJdUdO7yE2BwELU9Bp6jwr+k8o9BX8cUFkDWfx0RMKc2FRLugJ
 BGjQU6KqQiuBLLooUpXjSIHbWfvIAg5+S+qgjK4tEdnPv1tizdzO1OC
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Move domain_has_vuart() to arch namespace as preparation code change for
architecture-agnostic way of forwarding physical console to the guest OS w/
in-hypervisor UART emulator.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/include/asm/domain.h | 9 +++++++++
 xen/arch/arm/vpl011.c             | 2 ++
 xen/arch/arm/vuart.c              | 4 ++--
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index f1d72c6e48dfeba347b4cd091ca33603c368b7c0..2bbd3f472176bdcfbc0f95f9d8809343d11965c8 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -119,8 +119,17 @@ struct arch_domain
     void *tee;
 #endif
 
+    /* Emulated devices enabled bitmap. */
+    uint32_t emulation_flags;
+
 }  __cacheline_aligned;
 
+enum {
+    ARM_EMU_VUART           = BIT(0, U),
+};
+
+#define domain_has_vuart(d)     (!!((d)->arch.emulation_flags & ARM_EMU_VUART))
+
 struct arch_vcpu
 {
     struct {
diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 8ade6f2588b8bbcc58fb0f9edc324502a1992ce7..140dca48e0a3901cba289dbc6eb117358134d917 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -730,6 +730,8 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
     register_mmio_handler(d, &vpl011_mmio_handler,
                           vpl011->base_addr, GUEST_PL011_SIZE, NULL);
 
+    d->arch.emulation_flags |= ARM_EMU_VUART;
+
     return 0;
 
 out1:
diff --git a/xen/arch/arm/vuart.c b/xen/arch/arm/vuart.c
index 38ce8cc14fac4132578059b696be952b29fab809..8ca8ae5523a7924846df4324f9e0a81f225756ad 100644
--- a/xen/arch/arm/vuart.c
+++ b/xen/arch/arm/vuart.c
@@ -31,8 +31,6 @@
 
 #include "vuart.h"
 
-#define domain_has_vuart(d) ((d)->arch.vuart.info != NULL)
-
 static int vuart_mmio_read(struct vcpu *v, mmio_info_t *info,
                            register_t *r, void *priv);
 static int vuart_mmio_write(struct vcpu *v, mmio_info_t *info,
@@ -63,6 +61,8 @@ int domain_vuart_init(struct domain *d)
                           d->arch.vuart.info->size,
                           NULL);
 
+    d->arch.emulation_flags |= ARM_EMU_VUART;
+
     return 0;
 }
 

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844046.1259596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tm-0000OO-40; Tue, 26 Nov 2024 23:23:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844046.1259596; Tue, 26 Nov 2024 23:23: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 1tG4tl-0000Ni-VH; Tue, 26 Nov 2024 23:23:13 +0000
Received: by outflank-mailman (input) for mailman id 844046;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sb-0000Ao-I9
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:01 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3aa60ca8-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:21:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 8DBEA5C5C0D;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 79CDAC4CEDD;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 6BC62D66B89;
 Tue, 26 Nov 2024 23:21: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: 3aa60ca8-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNhYTYwY2E4LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzE4LjA5Nzk5Miwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=xRl/VI33XtcNQyJ8toSM7CxORY63SAcLHHhJDp/5VHE=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=RdupsLJVIRafQLWxJMPEhpP/XHYk4ho+6qgZbdxC8XWaZKfDeIdNdkxnFyp5JmVMD
	 bymk/6NP2NGllgK/rnULmAZNoSi9ArJupKYHrs8c7J4eOO87gCwDmpd+kP8TW7chPq
	 GPtg76P4sN/1vs8Wc3mg82ZjzroFo8mLGeCEzAjgM0OZ65hkvaaL8cKSGU9BT2t9tB
	 T8Q92HbKVu7M9XePQndcz3RfJ1J21soYc9KCRwMHiSmGY0C1Uc07qblTocMmoburKs
	 9Yy6Y9xAmpK+dwHCcX9WGZJZjUQUWe8kSEhqaBf9S/XeHwEfsdCpl/P9JTwfUGi8Aq
	 HFQgAR3Tfy4HA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:55 -0800
Subject: [PATCH 05/36] xen/xmalloc: add kmalloc() and kfree() aliases
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-5-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=2077;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=izvZS5PqvGBio87RDretaNG85fhbAWhHk9N0az9Fz9c=;
 b=DxooxiraEmxSjKMVEBBQD4C5YYEkrJbAOK1wZaShOd6buUxM3dQFSSYYVIfElWUereMJvfwLg
 Wj8gFWn4yIjB0TL6qPikxL3D5RpBO5Qg26QYelUQogHdovGoR4kWouc
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Move existing aliases to a common header so those could be used in the new
code.

The code looks simpler w/ kmalloc(): type specification of the
object being allocated is not required, e.g.:
...
  struct my_obj_s *obj;

  obj = kmalloc(sizeof(*obj), 0);
...

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/passthrough/arm/smmu.c | 4 ----
 xen/include/xen/xmalloc.h          | 5 +++++
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index aa6a968b574dce7cc753e8070fad3a6e585cd9e7..b343dbc32282136ccb95654ae2756eaa8a51149f 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -136,11 +136,7 @@ typedef enum irqreturn irqreturn_t;
 #define dev_name(dev) dt_node_full_name(dev_to_dt(dev))
 
 /* Alias to Xen allocation helpers */
-#define kfree xfree
-#define kmalloc(size, flags)		_xmalloc(size, sizeof(void *))
-#define kzalloc(size, flags)		_xzalloc(size, sizeof(void *))
 #define devm_kzalloc(dev, size, flags)	_xzalloc(size, sizeof(void *))
-#define kmalloc_array(size, n, flags)	_xmalloc_array(size, sizeof(void *), n)
 #define devm_kcalloc(dev, n, size, flags)			\
 	_xzalloc_array(size, sizeof(void *), n)
 
diff --git a/xen/include/xen/xmalloc.h b/xen/include/xen/xmalloc.h
index b903fa2e26e198fc80fc6010c3165cc50b1197c7..eea8cced51d9fe784b558201a68648e1672d624f 100644
--- a/xen/include/xen/xmalloc.h
+++ b/xen/include/xen/xmalloc.h
@@ -16,6 +16,11 @@
 #define xmalloc(_type) ((_type *)_xmalloc(sizeof(_type), __alignof__(_type)))
 #define xzalloc(_type) ((_type *)_xzalloc(sizeof(_type), __alignof__(_type)))
 
+#define kfree                           xfree
+#define kmalloc(size, flags)            _xmalloc(size, sizeof(void *))
+#define kzalloc(size, flags)            _xzalloc(size, sizeof(void *))
+#define kmalloc_array(size, n, flags)   _xmalloc_array(size, sizeof(void *), n)
+
 /*
  * Allocate space for a typed object and copy an existing instance.
  *

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844068.1259696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4ts-0002Xb-Cj; Tue, 26 Nov 2024 23:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844068.1259696; Tue, 26 Nov 2024 23: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 1tG4ts-0002TT-3j; Tue, 26 Nov 2024 23:23:20 +0000
Received: by outflank-mailman (input) for mailman id 844068;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4si-0000At-DM
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:08 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3aeb9b32-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A67CF5C5C12;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 9C951C4CEE1;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 91754D66B8E;
 Tue, 26 Nov 2024 23:21: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: 3aeb9b32-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NjQxOmM1MDA6OjEiLCJoZWxvIjoiZGZ3LnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNhZWI5YjMyLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE4LjcxNjY0OSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=8N48N7tGzPRpnph3uUKQy0qYgM/g5Ojg1QgMgxF7sN8=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=dQiHVyRBD3LqER6trrKd4fXaZH8LcYXwkYaUFmwAtsRvWkUpfzaFPNcbGuWwY3qtQ
	 KIsoAI7ZpG7hFxf4VVZYEzhnKLDc94M6d5MWJaGYY6Az3Zmy5qknWXM1Pfc/ofXujB
	 5RlFU/FCcQ8FGcp/draW5YzykDszNR3OtbUJXAhL3gaWwx+dnnitntd5kjnVork2S+
	 6+GWfxNpFIUQbhpl1GTRowa4SSO7qGVRFLCb8VFyep5knS7OwsWP3SldGvoZ/xTX7j
	 T9UA5CppELRY1zoph6nxxN+pf99VedH5EZyN+F4wg2ua8y/9czMsjMd4GSzY+bUsJl
	 AXlTrmRxvg01w==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:57 -0800
Subject: [PATCH 07/36] arm/vuart: use guest_printk()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-7-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1513;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=6dwRL08Xk+9xlKPfi6ImA8lNmAhhTdKU8a+CgXv8hC0=;
 b=qZPve2qjLwadK8wGOIbj7Nd8nbym1+viKPOUXFNAuXOLAB6VxWO9OyEzQ4wvq/o0cAjeApBl8
 nHNN9lxCnELAb4T5ICI1vgTq6DKGkT2jX3/kAZwDT0rQ5syNYVP7mm8
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Use guest_printk() in all current in-hypervisor UART emulators.

That slightly improves the logging as guest_printk() already prints the
domain ID.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/vpl011.c | 2 +-
 xen/arch/arm/vuart.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 1fc3114cce9ddb48cf199834c8e9abe8cfba92b5..8ade6f2588b8bbcc58fb0f9edc324502a1992ce7 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -107,7 +107,7 @@ static void vpl011_write_data_xen(struct domain *d, uint8_t data)
             if ( data != '\n' )
                 intf->out[intf->out_prod++] = '\n';
             intf->out[intf->out_prod++] = '\0';
-            printk("DOM%u: %s", d->domain_id, intf->out);
+            guest_printk(d, "%s", intf->out);
             intf->out_prod = 0;
         }
     }
diff --git a/xen/arch/arm/vuart.c b/xen/arch/arm/vuart.c
index ac76e2327bb84f05ea5716c6f5550f94812d2827..38ce8cc14fac4132578059b696be952b29fab809 100644
--- a/xen/arch/arm/vuart.c
+++ b/xen/arch/arm/vuart.c
@@ -89,7 +89,7 @@ static void vuart_print_char(struct vcpu *v, char c)
         if ( c != '\n' )
             uart->buf[uart->idx++] = '\n';
         uart->buf[uart->idx] = '\0';
-        printk(XENLOG_G_DEBUG "DOM%u: %s", d->domain_id, uart->buf);
+        guest_printk(d, "%s", uart->buf);
         uart->idx = 0;
     }
     spin_unlock(&uart->lock);

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844064.1259675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tq-0001zY-Or; Tue, 26 Nov 2024 23:23:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844064.1259675; Tue, 26 Nov 2024 23: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 1tG4tq-0001vr-BJ; Tue, 26 Nov 2024 23:23:18 +0000
Received: by outflank-mailman (input) for mailman id 844064;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sh-0000At-DJ
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:07 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b4c2a0c-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D661C5C5CAF;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id C21D2C4CEE2;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id BA0CBD66B91;
 Tue, 26 Nov 2024 23:21: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: 3b4c2a0c-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNiNGMyYTBjLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE4Ljk1OTI3NCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=JpvOelHa4b8SSlnyQ1G57JyTx7oZcL2ofFdr2MblKyY=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=YwCJJpa3gtvCn9Qm4iP4NOkC+7XhwtWQDOZWYAA6YMle8/6n+LE81uOUvvvJpTyp6
	 0IBg461zR4gjtHFTMFrbkD+PJEv3ajXrMu2MG+Suzg5q0AoqrEFV1+5xXmtSozQqye
	 2CS307sIfEJ0YF5DV3K46kDexwD5Fa8OhbASvVdjzKD0Dploy+iPY53wjfdDzt3rqf
	 0cZeku7tSyKpj9V+sskg7yQLekpV1th2TjLmj0Cm0SpLp2be6L4RpMFwCXj2mNX3CB
	 uZQvJcebdHLdGawbA2l3kHr1DOZvUWpHZuWjLbmYxU7csWdizWNmKPgovbzABQzA+Z
	 4F3HVY8IByytA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:59 -0800
Subject: [PATCH 09/36] riscv/domain: introduce domain_has_vuart()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-9-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=677;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=Fxckvj4Rq3ciLOXnJC51fJ7legC3d6vrDts1ke6yfmU=;
 b=TSM/n3jP/hKn1R5R46t8lGXKgXQW9Tyfrrj8oA8KSn8tY69MNLUbX+Yv33RoFU6wp81P1amtR
 +jBKzcZRr28AL3WaamkV1l7PcFmGc64Z5+C8v2tVYQqRalGfZwHKDNg
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Introduce domain_has_vuart() for RISC-V port to be used in the console driver.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/riscv/include/asm/domain.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index c3d965a559b6ce3661bf17166d0c51853ff295a2..efbc4f1ea2619a187fe30ede17d96de01e599220 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -10,6 +10,8 @@ struct hvm_domain
     uint64_t              params[HVM_NR_PARAMS];
 };
 
+#define domain_has_vuart(d)         false
+
 struct arch_vcpu_io {
 };
 

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844055.1259633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tn-000115-S7; Tue, 26 Nov 2024 23:23:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844055.1259633; Tue, 26 Nov 2024 23:23: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 1tG4tn-0000za-Ft; Tue, 26 Nov 2024 23:23:15 +0000
Received: by outflank-mailman (input) for mailman id 844055;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4se-0000Ao-LM
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:04 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d68389e-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id EB2D95C5CB9;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 24EECC4CED7;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 19CF7D66B93;
 Tue, 26 Nov 2024 23:21:56 +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: 3d68389e-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNkNjgzODllLWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzIyLjY5OTU3NCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=2WgWqZsNDflVD6JmnKTRAOPbRC5jJUlqppnLV6LXXy4=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=HZNZNKqgwaqz1KQn2n9Opxrj6816OOMoiXpti9Bn7hSOYnvixMKkCUmFKaBaEhzph
	 Sz4VMsj81Hzs/PfkGBnwl+f6KCl5xiQLGLDzNWqr8ekYWoNKoRBzyJ19KXkwGRV06T
	 SVNWyam3s87wCS4a5DrxYg/BcE+CSbW1svyvCFr+BJc+j4gRVp5K3vmm2m6UZBqzer
	 wAj9QvBnHSCX1Jd4Ykhaegh7WQW7FHSjcsXPWEIrdhe0ICveHsM8mu0T26TwWCNvdN
	 AF/WG6mmmxKyYjwQJZ/ouij7VbTQLjifFUNfgm639nZYsmAb/BWxxzS+N+0kXpA7Ez
	 NszparVX9JDtA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:02 -0800
Subject: [PATCH 12/36] x86/domain: print emulation_flags
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-12-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1263;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=732gIMLcaCgGTFTHv9vAjNIT6ES/ZZttjeIUCT3F6PI=;
 b=2D1GntxceEk8CMvCOGVcGx8ZV/nfrqT6w+jxAmtSvt6YKGse6dADcw0/VXr3voTosV5dqLTi0
 bWeqzqNK8CfARQ2L2mPeU6iFTzP8vSKt5Jjr+TxraPvuDidph2v/E57
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Print d->arch.emulation_flags on the console for better traceability while
debugging in-hypervisor hardware emulators.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/domain.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 78a13e6812c9120901d0a70fb3bc1bd6a8b6917d..c88d422a64544531c1e1058fa484364bb4277d1e 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -818,11 +818,15 @@ int arch_domain_create(struct domain *d,
 
     if ( !emulation_flags_ok(d, emflags) )
     {
-        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
+        printk(XENLOG_G_ERR "d%d: Xen does not allow %s %sdomain creation "
                "with the current selection of emulators: %#x\n",
-               d->domain_id, is_hvm_domain(d) ? "HVM" : "PV", emflags);
+               d->domain_id,
+               is_hvm_domain(d) ? "HVM" : "PV",
+               is_hardware_domain(d) ? "(hardware) " : "",
+               emflags);
         return -EOPNOTSUPP;
     }
+    printk(XENLOG_G_INFO "d%d: emulation_flags %#x\n", d->domain_id, emflags);
     d->arch.emulation_flags = emflags;
 
 #ifdef CONFIG_PV32

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844058.1259648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4to-0001ND-Sb; Tue, 26 Nov 2024 23:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844058.1259648; Tue, 26 Nov 2024 23: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 1tG4to-0001Jx-FM; Tue, 26 Nov 2024 23:23:16 +0000
Received: by outflank-mailman (input) for mailman id 844058;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sf-0000Ao-LX
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:05 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d69a0fb-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 09A3E5C5CC2;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 334C8C4CED3;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 2B769D66B8E;
 Tue, 26 Nov 2024 23:21:56 +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: 3d69a0fb-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNkNjlhMGZiLWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzIyLjY3NjYxLCJzZW5kZXIiOiJkZXZudWxsK2RtdWtoaW4uZm9yZC5jb21Aa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=tVwGh2fI891yEmph9JS9g2v7QV1qSjDfL8jnuUT3Tb8=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=YyxtdXZwF5HGKtsKRUm1zirJZMLpJ6oxFzpfDPEYVhiGKIP1H7T25EZjFyX3niXwb
	 dczYRBuH00BGZSQb8psXy3zx+EFN0ehYWA1ZO1fl3xcPeZ7Yw2cqNo3ArJw3ntTkrZ
	 shAqcUXhpXBXDXgi08wJabThKsPPMHH4SMtfKjM4NKAgQ16ga8N9KfqK93Fs2onGTQ
	 i2/kiNBE1eLo5OEolMA86YWULbyEsHEaqVhcbsYRhqlw51KlpdRYGmZT8SWeZmmLIU
	 bfQ6KgLknzBvLRBJD/6AVXbZCYVCgNrGafJSs8ek2U+CUvo60QlUEOdw0AApTeIr60
	 KIGAKZl1h3uxQ==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:03 -0800
Subject: [PATCH 13/36] xen/domain: add get_initial_domain_id()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-13-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=3214;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=e/LNB+9Wk5d4Vu+ImwNmQARBXeefJiOOq9L8JfHstNA=;
 b=p4c6qAznAvJRnp/3HVjjynj1T4WRFFM62MWF06rptmAfMPUraD8W5+8g56LcbD6mMjTtn9dyK
 3ID6rRQiP1UCksYsjKunjlrT8zbD94uIl0NQoksdMflBSXs+VQ4OJ2s
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Move get_initial_domain_id() to a public API and enable for all architectures.
That is pre-requisite change for console focus switch logic cleanup.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/pv/shim.h |  4 ++--
 xen/arch/x86/pv/shim.c             |  4 ++--
 xen/common/domain.c                | 10 ++++++++++
 xen/include/xen/domain.h           |  2 ++
 4 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/pv/shim.h b/xen/arch/x86/include/asm/pv/shim.h
index 6153e27005986881ad87e9db0b555b30edc59fc0..1515ad1b0680aa11ab91a152a1944fc1bb477a79 100644
--- a/xen/arch/x86/include/asm/pv/shim.h
+++ b/xen/arch/x86/include/asm/pv/shim.h
@@ -31,7 +31,7 @@ long cf_check pv_shim_cpu_up(void *data);
 long cf_check pv_shim_cpu_down(void *data);
 void pv_shim_online_memory(unsigned int nr, unsigned int order);
 void pv_shim_offline_memory(unsigned int nr, unsigned int order);
-domid_t get_initial_domain_id(void);
+domid_t pv_shim_initial_domain_id(void);
 uint64_t pv_shim_mem(uint64_t avail);
 void pv_shim_fixup_e820(void);
 const struct platform_bad_page *pv_shim_reserved_pages(unsigned int *size);
@@ -76,7 +76,7 @@ static inline void pv_shim_offline_memory(unsigned int nr, unsigned int order)
 {
     ASSERT_UNREACHABLE();
 }
-static inline domid_t get_initial_domain_id(void)
+static inline domid_t pv_shim_initial_domain_id(void)
 {
     return 0;
 }
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index 81e4a0516d18b359561f471f1d96e38977661ca7..17cb30620290c76cf42251f70cfa4199c0e165d1 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -328,7 +328,7 @@ int pv_shim_shutdown(uint8_t reason)
     }
 
     /* Update domain id. */
-    d->domain_id = get_initial_domain_id();
+    d->domain_id = pv_shim_initial_domain_id();
 
     /* Clean the iomem range. */
     BUG_ON(iomem_deny_access(d, 0, ~0UL));
@@ -1016,7 +1016,7 @@ void pv_shim_offline_memory(unsigned int nr, unsigned int order)
     }
 }
 
-domid_t get_initial_domain_id(void)
+domid_t pv_shim_initial_domain_id(void)
 {
     uint32_t eax, ebx, ecx, edx;
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 92263a4fbdc57159b4a32d9d4ee038f9f37804ed..2f67aa06ed50e69c27cedc8d7f6eb0b469fe81cd 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -45,6 +45,7 @@
 
 #ifdef CONFIG_X86
 #include <asm/guest.h>
+#include <asm/pv/shim.h>
 #endif
 
 /* Linux config option: propageted to domain0 */
@@ -2229,6 +2230,15 @@ int continue_hypercall_on_cpu(
     return 0;
 }
 
+domid_t get_initial_domain_id(void)
+{
+#ifdef CONFIG_X86
+    return pv_shim_initial_domain_id();
+#else
+    return 0;
+#endif
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 3de56352911347a54cce310f0211bcc213d8a08d..601ef431cf621af44c867400499b73b845eb137a 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -171,4 +171,6 @@ extern bool vmtrace_available;
 
 extern bool vpmu_is_available;
 
+domid_t get_initial_domain_id(void);
+
 #endif /* __XEN_DOMAIN_H__ */

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844048.1259606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tm-0000XD-Lc; Tue, 26 Nov 2024 23:23:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844048.1259606; Tue, 26 Nov 2024 23:23: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 1tG4tm-0000V3-Gc; Tue, 26 Nov 2024 23:23:14 +0000
Received: by outflank-mailman (input) for mailman id 844048;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sc-0000At-CM
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:02 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3aa2fa8b-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 78BB95C5BEA;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 6B1C8C4CEDB;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 596E7D66B88;
 Tue, 26 Nov 2024 23:21: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: 3aa2fa8b-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNhYTJmYThiLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE3Ljg5MTk3MSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663315;
	bh=jP7Qo7rqdlhdDtQjECWtHV/Nhjgbh2HMa37UuR2ELXI=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=fa5bqt+h1xnsBmKLWN7RhsQfcSmOrhJvxsFWm7LcFlX4ah/uxa/fA2KRGR0PdI8Vf
	 DdppIqEwozhki1m1+mmysleQ1sjqM/oCYx15QRdFQZdp0BhMBqtU3XIGMsdnkgf9Nl
	 a6lgFHE4Nm9KAnpb4WvEji9B8K5Kx/nFjYu9iaEdkUmCNvid3n2rs/Hx3a4U1Hl9BA
	 e6qxS7fc11oYzkOTDo+DJjbKJU+H8v45MObr+DkF8HTuCzNknL8r+rtKNK0QSLZInB
	 3NzaBj0qmfyv5wZMl73GWH4fIiBML8YQgHe2Zqz8z9XuvUpVN5EVJUPtzcbg7bxp/f
	 jEw+zh0UEunPg==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:21:54 -0800
Subject: [PATCH 04/36] xen/irq: introduce NO_IRQ
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-4-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=616;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=dP3fe+TbEoRyzDIKnwZpy2zc7XNhJoHUDN0gqSrT6Sc=;
 b=ZK/Egrhd1ftyBDG8fHCbgj99AZ9DcnZ5TxuavepL4iKCTofpCdmvmPQJY/yN3M2p29rTI4mg6
 v8M76j0gxtADkBiXTcySpLMh1uQQabkcw/KIGK4vj4s7sXp5Zfzx7iQ
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Introduce definition for IRQ resource checks.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/include/xen/irq.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 95034c0d6bb5f0aa7d5bb572aca59872508a438a..aee878293ecc0de6a938bcfea1140d36b4de745a 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -53,6 +53,7 @@ struct irqaction {
 #define AUTO_ASSIGN_IRQ         (-1)
 #define NEVER_ASSIGN_IRQ        (-2)
 #define FREE_TO_ASSIGN_IRQ      (-3)
+#define NO_IRQ                  (-4)
 
 struct irq_desc;
 

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844056.1259644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4to-0001Ey-Gd; Tue, 26 Nov 2024 23:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844056.1259644; Tue, 26 Nov 2024 23: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 1tG4to-00019f-1g; Tue, 26 Nov 2024 23:23:16 +0000
Received: by outflank-mailman (input) for mailman id 844056;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sf-0000At-Ch
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:05 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b1d5cd9-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:21:58 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BE78C5C5C99;
 Tue, 26 Nov 2024 23:21:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id EC458C4CEDA;
 Tue, 26 Nov 2024 23:21:55 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id E4272D66B8E;
 Tue, 26 Nov 2024 23:21: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: 3b1d5cd9-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNiMWQ1Y2Q5LWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzE4LjY1OTU0MSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=W3lsM6sLlkNO6zjU1lHZ+u6ONjEFm+ba+WSVSjVypa4=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=DWG5xl3PA9EWYt6A1foAYmpaGYGMDxUuqrePoRwb34UBxkzHa5bijAvMJaKswoYGE
	 mGxMhoSwcGciCHgvN7fPLDgFcdZltrZ9IrstLF6xp0Q7Lh4VGnuFKQTjTJ9JxOy2sv
	 kgNn3LK4TBCfKcYlUS482xV5IlxiuafjKkZz9vEBPqAp3xsbXvN537pzwk9xWdkJKC
	 L0qrNyy38R/bxl8vWq4c0OjN29o73zGBrd88pM/A1T9p7MVzirlRw5TAY4NHCzjbkj
	 mzzc6d876TccV6N2sJVcgikRV1N7dapXeam0YqCjLLLER6S8Qk6+TQoIqCE2WDHeig
	 4/ZGBjHRZKwjA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:00 -0800
Subject: [PATCH 10/36] ppc/domain: introduce domain_has_vuart()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-10-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=728;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=t3QJZEOM8PRrx5tFAM37Q5lrsCWx/ouiwIRJrERCogM=;
 b=f8wXFvd3jIkFIxNMBQ/Axu1bbqXBT0SUKFv83mK3ibYkFiQYPB/1CIit84amN75UuJ8kKxZhP
 qoa3sZDsWsYBHULljtv9I1Vynu51trtpjkriYMTMTyEbSz/qdAX7tC/
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Introduce domain_has_vuart() for PPC port to be used in the console driver.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/ppc/include/asm/domain.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/ppc/include/asm/domain.h b/xen/arch/ppc/include/asm/domain.h
index 3a447272c6f28586bf0d610929adbf228579e13f..764978e6a61b9d7220ec10fe0763e3424d07d27a 100644
--- a/xen/arch/ppc/include/asm/domain.h
+++ b/xen/arch/ppc/include/asm/domain.h
@@ -10,6 +10,8 @@ struct hvm_domain
     uint64_t              params[HVM_NR_PARAMS];
 };
 
+#define domain_has_vuart(d)         false
+
 /* TODO: Implement */
 #define guest_mode(r) ({ (void)(r); BUG_ON("unimplemented"); 0; })
 

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844060.1259668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tq-0001jU-9W; Tue, 26 Nov 2024 23:23:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844060.1259668; Tue, 26 Nov 2024 23: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 1tG4tp-0001hF-KO; Tue, 26 Nov 2024 23:23:17 +0000
Received: by outflank-mailman (input) for mailman id 844060;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sg-0000Ao-Lb
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:06 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d87a499-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 550B45C5CF1;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 83748C4CEDD;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 7C9CCD66B8E;
 Tue, 26 Nov 2024 23:21:56 +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: 3d87a499-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NjQxOmM1MDA6OjEiLCJoZWxvIjoiZGZ3LnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNkODdhNDk5LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzIyLjg5ODM2Miwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=Cap5cSdXQnJhIWZIJycGmw66XTO7q8HjNlh67Jy7JB4=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=Roi4bnO89HuQscE/mllmZ4di8KrGNkAEgaFCrZwspwH1JCGP7EeSelMhqJp3FtN2p
	 1vmqcBEY6PtxBqWJW1VUHMpW/bPH5B+YC80zhJx30UowTy+ZgCQQnJEd0hnAn1Hlkt
	 XcGKUReaRSPFHSjEvr5WInFgGkBvQkKepHz1F2TNg2MZxcNVm5HUfJxwzd27u0Wdt2
	 DjdOJziJugSXgtF7Jn3f6bo30Ln6l01S2E8qR9nY0G4TFpac36FqwR/86tOFX/ts/x
	 nKhPwQFQosdNK6Bir87YPHUpd+Dfu25EOC3kfrmlu72LVexy+/k0LtMpla4qGDvOj8
	 CoRT7AHq/AL0A==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:07 -0800
Subject: [PATCH 17/36] xen/console: rename switch_serial_input() to
 console_find_owner()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-17-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1478;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=kkv+AJB+iT69SEANPtdQ4jOx6o8Fe+p28DiGHObsMCE=;
 b=34yyRPfAwR5Xa4Xuz4/BOFOrcATMDRQQnnZ5y9UsR0hdVr18qx/Zq/l4GCrf/HFvgLYIzpxwv
 YVD7bNrxNZHCYCzTZGhZp5eE+8zkM7+FIcjsbE+IX79uUTZFrdW6EHP
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Updated the name to highlight the logic of selection the physical console
owner: existing code does not switch only serial console, it also switches
video console and debugging console (debug I/O port and console hypercall).

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 01fcbd5581d11f8f4f2b23592255b5c744430a3e..f8a7db385c9525cabc69ceb1a84d73f57863aa45 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -485,7 +485,7 @@ struct domain *rcu_lock_domain_console_owner(void)
 }
 #endif
 
-static void switch_serial_input(void)
+static void console_find_owner(void)
 {
     unsigned int next_rx = console_rx;
 
@@ -588,7 +588,7 @@ static void cf_check serial_rx(char c)
         /* We eat CTRL-<switch_char> in groups of 3 to switch console input. */
         if ( ++switch_code_count == 3 )
         {
-            switch_serial_input();
+            console_find_owner();
             switch_code_count = 0;
         }
         return;
@@ -1128,7 +1128,7 @@ void __init console_endboot(void)
                             "toggle host/guest log level adjustment", 0);
 
     /* Serial input is directed to DOM0 by default. */
-    switch_serial_input();
+    console_find_owner();
 }
 
 int __init console_has(const char *device)

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844074.1259729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tv-0003Rx-Uw; Tue, 26 Nov 2024 23:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844074.1259729; Tue, 26 Nov 2024 23:23: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 1tG4tv-0003P1-3y; Tue, 26 Nov 2024 23:23:23 +0000
Received: by outflank-mailman (input) for mailman id 844074;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sj-0000Ao-MS
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:09 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f7c2e3a-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BF25A5C5DA0;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id EE3DBC4CED7;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id E276FD66B94;
 Tue, 26 Nov 2024 23:21:57 +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: 3f7c2e3a-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NjQxOmM1MDA6OjEiLCJoZWxvIjoiZGZ3LnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNmN2MyZTNhLWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI2LjEzODY4OCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663318;
	bh=YfYCHh0nVVhyUMXcW2poOpCSgAUn/qfDmEJPr0RM4oY=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=YTyhPPJYnhy04bo8F7f8koIfZXZgjBfIB05ZmxEwq9aFZ7xlvRaphAT9vt3DANNzx
	 ZQYH1TIFSRdNWl1Nb6i8Iie7rF7zqHQnWnCecWY/crT26czdMnE4zcWsl74guEwAcc
	 ZxVqp0v3u8x38Jt3QCfYCEDjL8gp5rqYK39ujPilLoK42nz9zpvgeA1g1Q6vFJy0mD
	 oUCQCL3czhCJNZBX+CQJs0U5du34E7pDX8CBkXo+/UR76HCQ603mi8YuYS/tZ+6pB0
	 j7lGnUyR49OEM1jSik6LQZpLPhi4vESjyNpZlPjeoWP4OCz1LsnjuHfe+WvfSX7Oeo
	 lu9/mbfi+bjyA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:24 -0800
Subject: [PATCH 34/36] x86/domain: implement domain_has_vuart()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-34-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=7401;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=tfiJLSOur1vSXiemSyjr8enIFIEF26fIRGrdEEwbY18=;
 b=/N/5CYqKcD6seLR4F2jKfzySETrT8B+vZVURCXKxLPT1koQC+NDS1ls5JLia0xD7s5pm/MeaL
 subrLZMun+cCOrcoQyaLAF7u6vvZSXh4d8Ja0x+Pt9dNifh/cn4ke3C
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Add new emulation flag for virtual UART on x86 and plumb it through the stack.

This change enables NS8250 emulator initialization.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 tools/libs/light/libxl_x86.c      |  6 +++++-
 tools/ocaml/libs/xc/xenctrl.ml    |  1 +
 tools/ocaml/libs/xc/xenctrl.mli   |  1 +
 tools/python/xen/lowlevel/xc/xc.c |  4 +---
 xen/arch/x86/domain.c             |  8 +++++---
 xen/arch/x86/include/asm/domain.h |  7 ++++---
 xen/include/public/arch-x86/xen.h | 14 +++++++++++++-
 7 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
index a3164a3077fec7e1b81a34074894dc646954a49a..de5f05e18cb0671bb031b101b9a7159eb0fe0178 100644
--- a/tools/libs/light/libxl_x86.c
+++ b/tools/libs/light/libxl_x86.c
@@ -8,7 +8,11 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
 {
     switch(d_config->c_info.type) {
     case LIBXL_DOMAIN_TYPE_HVM:
-        config->arch.emulation_flags = (XEN_X86_EMU_ALL & ~XEN_X86_EMU_VPCI);
+        config->arch.emulation_flags = XEN_X86_EMU_ALL;
+        config->arch.emulation_flags &= ~XEN_X86_EMU_VPCI;
+        /* Virtual UART is selected at Xen build time */
+        config->arch.emulation_flags &= ~XEN_X86_EMU_VUART;
+
         if (!libxl_defbool_val(d_config->b_info.u.hvm.pirq))
             config->arch.emulation_flags &= ~XEN_X86_EMU_USE_PIRQ;
         break;
diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index 2690f9a92316b812ad3d3ff0e1c36823070adb4a..647239b3e55e88b00eb8e9773a5267894cbbae54 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -47,6 +47,7 @@ type x86_arch_emulation_flags =
   | X86_EMU_PIT
   | X86_EMU_USE_PIRQ
   | X86_EMU_VPCI
+  | X86_EMU_VUART
 
 type x86_arch_misc_flags =
   | X86_MSR_RELAXED
diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
index febbe1f6ae3f10c5abe45eaa3c06a8a67d9ba268..4f5f64c786e83e8a0c3dd3cdb0460f7095de4a62 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -41,6 +41,7 @@ type x86_arch_emulation_flags =
   | X86_EMU_PIT
   | X86_EMU_USE_PIRQ
   | X86_EMU_VPCI
+  | X86_EMU_VUART
 
 type x86_arch_misc_flags =
   | X86_MSR_RELAXED
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 9feb12ae2b16e48cb5d0c3c45044ae226f152f2d..e54308956efc7061d58d2166ec9a95bc1dcd1781 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -159,9 +159,7 @@ static PyObject *pyxc_domain_create(XcObject *self,
 
 #if defined (__i386) || defined(__x86_64__)
     if ( config.flags & XEN_DOMCTL_CDF_hvm )
-        config.arch.emulation_flags = XEN_X86_EMU_ALL &
-                                      ~(XEN_X86_EMU_VPCI |
-                                        XEN_X86_EMU_USE_PIRQ);
+        config.arch.emulation_flags = XEN_X86_EMU_HVM_ALLOWABLE;
 #elif defined (__arm__) || defined(__aarch64__)
     config.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
 #else
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index c88d422a64544531c1e1058fa484364bb4277d1e..439da7adc92a3a8eb481075bf834da5f9670dd54 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -752,10 +752,10 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
         if ( is_hardware_domain(d) &&
              emflags != (X86_EMU_VPCI | X86_EMU_LAPIC | X86_EMU_IOAPIC) )
             return false;
+
+        emflags &= ~X86_EMU_VUART;
         if ( !is_hardware_domain(d) &&
-             /* HVM PIRQ feature is user-selectable. */
-             (emflags & ~X86_EMU_USE_PIRQ) !=
-             (X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ)) &&
+             xen_emflags_allowable(emflags) != XEN_X86_EMU_HVM_ALLOWABLE &&
              emflags != X86_EMU_LAPIC )
             return false;
     }
@@ -806,6 +806,8 @@ int arch_domain_create(struct domain *d,
 
     emflags = config->arch.emulation_flags;
 
+    if ( IS_ENABLED(CONFIG_HAS_VUART_NS8250) && is_hvm_domain(d) )
+        emflags |= XEN_X86_EMU_VUART;
     if ( is_hardware_domain(d) && is_pv_domain(d) )
         emflags |= XEN_X86_EMU_PIT;
 
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index c1d0d1f47324e8cc678a4c76c43f86820a89e7b3..dacea6e1aad46e9f8710b2202bb81203c5e92807 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -484,7 +484,8 @@ struct arch_domain
 #define X86_EMU_VPCI     0
 #endif
 
-#define X86_EMU_PIT     XEN_X86_EMU_PIT
+#define X86_EMU_PIT      XEN_X86_EMU_PIT
+#define X86_EMU_VUART    XEN_X86_EMU_VUART
 
 /* This must match XEN_X86_EMU_ALL in xen.h */
 #define X86_EMU_ALL             (X86_EMU_LAPIC | X86_EMU_HPET |         \
@@ -492,7 +493,7 @@ struct arch_domain
                                  X86_EMU_IOAPIC | X86_EMU_PIC |         \
                                  X86_EMU_VGA | X86_EMU_IOMMU |          \
                                  X86_EMU_PIT | X86_EMU_USE_PIRQ |       \
-                                 X86_EMU_VPCI)
+                                 X86_EMU_VPCI | X86_EMU_VUART)
 
 #define has_vlapic(d)      (!!((d)->arch.emulation_flags & X86_EMU_LAPIC))
 #define has_vhpet(d)       (!!((d)->arch.emulation_flags & X86_EMU_HPET))
@@ -507,7 +508,7 @@ struct arch_domain
 #define has_vpci(d)        (!!((d)->arch.emulation_flags & X86_EMU_VPCI))
 
 /* NB: same symbol as in Arm port */
-#define domain_has_vuart(d) false
+#define domain_has_vuart(d) (!!((d)->arch.emulation_flags & X86_EMU_VUART))
 
 #define gdt_ldt_pt_idx(v) \
       ((v)->vcpu_id >> (PAGETABLE_ORDER - GDT_LDT_VCPU_SHIFT))
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
index fc2487986642a7694578ab9d2f5f16d09761bff8..e7922e3f9ddc1742a464d228807279839df31e52 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -283,13 +283,25 @@ struct xen_arch_domainconfig {
 #define XEN_X86_EMU_USE_PIRQ        (1U<<_XEN_X86_EMU_USE_PIRQ)
 #define _XEN_X86_EMU_VPCI           10
 #define XEN_X86_EMU_VPCI            (1U<<_XEN_X86_EMU_VPCI)
+#define _XEN_X86_EMU_VUART          11
+#define XEN_X86_EMU_VUART           (1U<<_XEN_X86_EMU_VUART)
 
 #define XEN_X86_EMU_ALL             (XEN_X86_EMU_LAPIC | XEN_X86_EMU_HPET |  \
                                      XEN_X86_EMU_PM | XEN_X86_EMU_RTC |      \
                                      XEN_X86_EMU_IOAPIC | XEN_X86_EMU_PIC |  \
                                      XEN_X86_EMU_VGA | XEN_X86_EMU_IOMMU |   \
                                      XEN_X86_EMU_PIT | XEN_X86_EMU_USE_PIRQ |\
-                                     XEN_X86_EMU_VPCI)
+                                     XEN_X86_EMU_VPCI | XEN_X86_EMU_VUART)
+
+/* HVM PIRQ feature is user-selectable (libxl). */
+#define XEN_X86_EMU_HVM_SELECTABLE  (XEN_X86_EMU_VPCI | \
+                                     XEN_X86_EMU_USE_PIRQ | \
+                                     XEN_X86_EMU_VUART)
+
+#define xen_emflags_allowable(x)    ((x) & ~XEN_X86_EMU_HVM_SELECTABLE)
+
+#define XEN_X86_EMU_HVM_ALLOWABLE   xen_emflags_allowable(XEN_X86_EMU_ALL)
+
     uint32_t emulation_flags;
 
 /*

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844077.1259739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4tx-0003r1-NA; Tue, 26 Nov 2024 23:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844077.1259739; Tue, 26 Nov 2024 23:23: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 1tG4tw-0003lM-Qg; Tue, 26 Nov 2024 23:23:24 +0000
Received: by outflank-mailman (input) for mailman id 844077;
 Tue, 26 Nov 2024 23: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sk-0000At-Da
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:10 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d8be5df-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 1A4B55C5CCD;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 49047C4CED8;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 3F95AD66B93;
 Tue, 26 Nov 2024 23:21:56 +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: 3d8be5df-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNkOGJlNWRmLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzIyLjg1NzUyNCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=F18Rd37Hu8IJR5rLsatEBXLaN+jWgrMYc3ZMm20WI7M=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=VYE4ELADIfnpwnRDMGAqRaJfyYr3r+HoxxnkvSN2mCVpFju8wLpHLSaV9O6emyBBx
	 VkqUCDyfZbbqQYFFccxn+7MlD9XvChzMtN79qkZBjcjdkT33JTcClrUiR0yXTaL358
	 1p09hnteFQm2OL/6ZPrMte/mEGkwZeQYGBtdeanb8ceLpVhBNtRCjzWPCoe1NnqP/7
	 dx4ae8mMUODiMtI6BD1bV3MCnrvjQ/1gslKJIrrRiw+8ojaUHEvHVREHAMT2UjB7Lt
	 1pfls+9h8jrZtux4d/nQK+VYDTn1oLD2mj1r+q8d8+lqkHnvvUR25A0kAwejjCLtI2
	 blN5PoPFexw3g==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:04 -0800
Subject: [PATCH 14/36] xen/domain: enable max_init_domid for all
 architectures
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-14-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=3782;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=yaQRDGz2W+Ijh9JWeI+JahaekRUAILaRwxdJICvftvE=;
 b=Cpw86+mRzAjuPvdWy+ql0J5AE4/wZWwSFWswO+Khyo0kNcLmJbm4nSQUK7OJQrG7/wywrPs6V
 +/6vEBR8fRWDpnQsSDMChi/Z7902+RqQjGkmF0v0XR7oR3vrJFrG73O
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Move max_init_domid to a public API and enable for all architectures.
That is pre-requisite change for console focus switch logic cleanup.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/include/asm/setup.h   | 2 --
 xen/arch/arm/setup.c               | 2 --
 xen/arch/ppc/include/asm/setup.h   | 2 --
 xen/arch/riscv/include/asm/setup.h | 2 --
 xen/arch/x86/include/asm/setup.h   | 2 --
 xen/common/domain.c                | 3 +++
 xen/include/xen/domain.h           | 2 ++
 7 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 64c227d171fc7b92e5b62d9fd42e5662871bd12b..d4e1670cd69cdd4475b2a5eb316d2c0601090ed7 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -19,8 +19,6 @@ struct map_range_data
     struct rangeset *irq_ranges;
 };
 
-extern domid_t max_init_domid;
-
 void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
 size_t estimate_efi_size(unsigned int mem_nr_banks);
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca94ab6f5878135406dd3b6d79a59754..b4855ede8876b365101a2d6a146384a39a503382 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -58,8 +58,6 @@ struct cpuinfo_arm __read_mostly system_cpuinfo;
 bool __read_mostly acpi_disabled;
 #endif
 
-domid_t __read_mostly max_init_domid;
-
 static __used void init_done(void)
 {
     int rc;
diff --git a/xen/arch/ppc/include/asm/setup.h b/xen/arch/ppc/include/asm/setup.h
index e4f64879b68ca5aac24bd9544255143e6ef693f3..956fa6985adb23375bd41d3e5d34d9d5f0712bd5 100644
--- a/xen/arch/ppc/include/asm/setup.h
+++ b/xen/arch/ppc/include/asm/setup.h
@@ -1,6 +1,4 @@
 #ifndef __ASM_PPC_SETUP_H__
 #define __ASM_PPC_SETUP_H__
 
-#define max_init_domid (0)
-
 #endif /* __ASM_PPC_SETUP_H__ */
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c0214a9bf295f516572af87841e40ff6aaf79b28..0bbb8ab37cf9af89206a09c0f11767b090814ea9 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -3,8 +3,6 @@
 #ifndef ASM__RISCV__SETUP_H
 #define ASM__RISCV__SETUP_H
 
-#define max_init_domid (0)
-
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 5c2391a8684b66efdf4b092409ed33935db6b40c..296348655b9d146c73acc305cc9edd5fd46f7d47 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -69,6 +69,4 @@ extern bool opt_dom0_verbose;
 extern bool opt_dom0_cpuid_faulting;
 extern bool opt_dom0_msr_relaxed;
 
-#define max_init_domid (0)
-
 #endif
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 2f67aa06ed50e69c27cedc8d7f6eb0b469fe81cd..d8f6829db50dabba7464004b39eea39f6970f800 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -65,6 +65,9 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
 static struct domain *domain_hash[DOMAIN_HASH_SIZE];
 struct domain *domain_list;
 
+/* Last known non-system domain ID. */
+domid_t __read_mostly max_init_domid;
+
 /*
  * Insert a domain into the domlist/hash.  This allows the domain to be looked
  * up by domid, and therefore to be the subject of hypercalls/etc.
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 601ef431cf621af44c867400499b73b845eb137a..6102826a929ff7aad58a4bc40974815071a97446 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -171,6 +171,8 @@ extern bool vmtrace_available;
 
 extern bool vpmu_is_available;
 
+extern domid_t max_init_domid;
+
 domid_t get_initial_domain_id(void);
 
 #endif /* __XEN_DOMAIN_H__ */

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844078.1259745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4ty-00041x-Pg; Tue, 26 Nov 2024 23:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844078.1259745; Tue, 26 Nov 2024 23:23: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 1tG4tx-0003yO-NI; Tue, 26 Nov 2024 23:23:25 +0000
Received: by outflank-mailman (input) for mailman id 844078;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sk-0000Ao-MS
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:10 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f492bb9-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 0054A5C5DA4;
 Tue, 26 Nov 2024 23:21:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 2A80AC4CEDB;
 Tue, 26 Nov 2024 23:21:58 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 21B5FD66B9D;
 Tue, 26 Nov 2024 23:21:58 +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: 3f492bb9-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmNDkyYmI5LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI1LjAwMzU0LCJzZW5kZXIiOiJkZXZudWxsK2RtdWtoaW4uZm9yZC5jb21Aa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663318;
	bh=YBcSY6jiH0oljNDw524ilFoQbBSFGheVZRh8mWFvphc=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=MoYlYSuIPCnu4b1HHhuKXukwkOccdSQUeZFE42H1bU6Wt2EZ6uyaQv+nIwJzW3pE6
	 Bg1CIxMkJ0kVWBwSk35mcZL70XCPj0xIgbWG8W0rWSiO4VQuTGH/c4fn5XFyphjxk1
	 3yD5e4/vVXdjMzA/Qq/uFAOIt1Id6EhdbdO/prkOBLlXgkSv5i0RUc0y3B6MxFDcl9
	 C7ZMyMeFT94Ij8KXqfiqHOA5Xh0h2+TvVj30nuDi3f6qUSuCXLgQBBJOEXKbO3cv3D
	 TU0nzE7hODveOO6yKOeMTiwolRk222khkUESkmRxDElOHVWwYQzzk+zc6rEoq2U3b6
	 Z3ApgaxGuiMOA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:26 -0800
Subject: [PATCH 36/36] docs/misc: update console documentation
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-36-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=5611;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=O/e2TuAbfREf6sK5Rox2Z4H+zlo5Q3N8ksFZglsK7sE=;
 b=XavKhjZA3mfK4h09UVfAzuoD+nqYtkqc4418biMqkmSexlVgea/EgM0/sVOixRT0rGc6Is/Ke
 gmcR6+YgzKOD7ftpuWh53AGZUZYrdt+D/f3ZpAPz7y6T7Ams0JNWAsX
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Minor update related to virtual UART support.

Also:
 s/pv/PV/g
 s/hvm/HVM/g

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 docs/misc/console.txt | 48 +++++++++++++++++++++++++-----------------------
 1 file changed, 25 insertions(+), 23 deletions(-)

diff --git a/docs/misc/console.txt b/docs/misc/console.txt
index 4e180f88ba1312d8fcc47d27622ec347d387ce12..b5411b4d74b6d3d920a4fbb2ce6033a239ec5832 100644
--- a/docs/misc/console.txt
+++ b/docs/misc/console.txt
@@ -4,11 +4,11 @@ Xen PV Console notes
                                         stefano.stabellini@eu.citrix.com
 
 
-Xen traditionally provided a single pv console to pv guests, storing the
+Xen traditionally provided a single PV console to PV guests, storing the
 relevant information in xenstore under /local/domain/$DOMID/console.
 
-Now many years after the introduction of the pv console we have
-multiple pv consoles support for pv and hvm guests; multiple pv
+Now many years after the introduction of the PV console we have
+multiple PV consoles support for PV and HVM guests; multiple PV
 console backends (qemu and xenconsoled, see limitations below) and
 emulated serial cards too.
 
@@ -103,48 +103,50 @@ The supported values are only xenconsoled or ioemu; xenconsoled has
 several limitations: it can only be used for the first PV or virtual UART
 console and it can only connect to a pty.
 
-Emulated serials are provided by qemu-dm only to hvm guests; the number
-of emulated serials depends on how many "-serial" command line options
-are given to qemu. The output of a serial is specified as argument to
-the -serial command line option to qemu. Qemu writes the tty name to
-xenstore in the following path:
+Emulated serials are provided to HVM guests by qemu-dm or in-hypervisor UART
+emulator (Xen needs to be re-compiled).
+
+In qemu-dm case, the number of emulated serials depends on how many "-serial"
+command line options are given to qemu. The output of a serial is specified as
+argument to the -serial command line option to qemu. Qemu writes the tty name
+to xenstore in the following path:
 
 /local/domain/$DOMID/serial/$SERIAL_NUM/tty
 
 xenconsole is the tool to connect to a PV or virtual UART console or an
 emulated serial that has a pty as output. Xenconsole takes a domid as
-parameter plus an optional console type (pv for PV consoles, vuart for
+parameter plus an optional console type (PV for PV consoles, vuart for
 virtual UART or serial for emulated serials) and console number.
 Depending on the type and console number, xenconsole will look for the tty
 node in different xenstore paths, as described above.  If the user doesn't
-specify the console type xenconsole will try to guess: if the guest is a pv
-guest it defaults to PV console, if the guest is an hvm guest it defaults to
+specify the console type xenconsole will try to guess: if the guest is a PV
+guest it defaults to PV console, if the guest is an HVM guest it defaults to
 emulated serial.
 
-By default xl creates a pv console for hvm guests, plus an emulated
+By default xl creates a PV console for HVM guests, plus an emulated
 serial if the user specified 'serial = "pty"' in the VM config file.
-Considering that xenconsole defaults to emulated serials for hvm guests,
+Considering that xenconsole defaults to emulated serials for HVM guests,
 executing xl create -c "domain" causes xenconsole to attach to the
 emulated serial tty. This is most probably what the user wanted because
-currently no bootloaders support xen pv consoles so the only way to
+currently no bootloaders support xen PV consoles so the only way to
 interact with a bootloader like grub over a console is to use the
 emulated serial.
-However the pv console is still easy to use with Linux PV on HVM guests:
+However the PV console is still easy to use with Linux PV on HVM guests:
 the user just need to pass "console=hvc0" to the kernel command line and
 then execute "xl console -t pv <domain>" to connect to it.
 
 When using stubdoms the serial cards are still emulated by qemu (this
 time running in the stubdom), the number of serial cards and where the
 output goes is still specified using qemu command line options.
-The difference is that for each emulated serial card there must be a pv
+The difference is that for each emulated serial card there must be a PV
 console connection between the stubdom and dom0 to export the serial
-output from the stubdom to dom0. The pv console backend for stubdom's pv
-consoles is always ioemu because multiple pv consoles support is a
-requirement in this case, considering that minios has its own pv console
-too. In order to simplify the setup when using stubdoms the hvm guest
-can only have one pv console with xenstored as backend (the stubdom
-could provide pv console backends to the hvm guest but then it would
-need another pv console connection for each console backend to export
+output from the stubdom to dom0. The PV console backend for stubdom's PV
+consoles is always ioemu because multiple PV consoles support is a
+requirement in this case, considering that minios has its own PV console
+too. In order to simplify the setup when using stubdoms the HVM guest
+can only have one PV console with xenstored as backend (the stubdom
+could provide PV console backends to the HVM guest but then it would
+need another PV console connection for each console backend to export
 the pty to dom0).
 
 The xenconsole program supports a very simple protocol to notify parent about

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:23:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844081.1259758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG4u0-0004Rt-UG; Tue, 26 Nov 2024 23:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844081.1259758; Tue, 26 Nov 2024 23: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 1tG4tz-0004Ku-FA; Tue, 26 Nov 2024 23:23:27 +0000
Received: by outflank-mailman (input) for mailman id 844081;
 Tue, 26 Nov 2024 23:22: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sl-0000Ao-Mn
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:11 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f7e5ad1-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 5A14E5C5D97;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 8904BC4CED3;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 80BA4D66B8E;
 Tue, 26 Nov 2024 23:21:57 +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: 3f7e5ad1-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NjQxOmM1MDA6OjEiLCJoZWxvIjoiZGZ3LnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNmN2U1YWQxLWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI1LjM1MDAwMywic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=XhlyTKT6Hlfb0qF61veOPFsm+lhyRH3KNfs5+i2StaA=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=gTcMOlTcS220ZM2r3z/DMYmj2iowjMt3qadytRFodvrayrx+QnwWiMg91clSJiJj+
	 cFJ9n1Ia714FZLG8xgMviWPsttV/UzwdV8NBFJB4mjpO2uDUiQNTUyQy5xHaD7YMpa
	 X9dlVpa8vrb1Usnn89466SRbjYHEZF20hf2ryG9UbH8sDKual57tXsH0eDEzBJLjbM
	 uPCp30t6v+1gI7tXUgvoWcUvmVKobFtQ6hFXWwfsqC2lJAasw7eT7Z6q4MiyYt9Lw4
	 P50S+94VXQgnowVD+aZ89YSKtm1BrODQz7iVNuLVz1TtCfHl6aBZN09AzNyqGt96si
	 yc1pRzOUoiNmg==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:20 -0800
Subject: [PATCH 30/36] xen/8250-uart: add missing definitions
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-30-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=7186;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=oejdv1gxnsCTTpK0zev/wdrMthybKBcbIC8U8s3WUPs=;
 b=/MaDwKP9awtaJDnFOE38qqIxCqUh/XIedVanwgDnvHPxhEduc2YVmEpIhzLVWa/T0f6THEh4s
 nu/8XGQN8rGCDv5+owOfQdvcFbtjw+36ayeQrOU70Rz12/xHWMGYE64
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Added missing definitions needed for NS8250 UART emulator.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/include/xen/8250-uart.h | 82 +++++++++++++++++++++++++++++++++------------
 1 file changed, 61 insertions(+), 21 deletions(-)

diff --git a/xen/include/xen/8250-uart.h b/xen/include/xen/8250-uart.h
index d13352940c13c50bac17d4cdf2f3bf584380776a..51c9b8c5fc3b8d9fa4b93f7722acb963fdf52a3d 100644
--- a/xen/include/xen/8250-uart.h
+++ b/xen/include/xen/8250-uart.h
@@ -32,16 +32,22 @@
 #define UART_MCR          0x04    /* Modem control        */
 #define UART_LSR          0x05    /* line status          */
 #define UART_MSR          0x06    /* Modem status         */
+#define UART_SCR          0x07    /* Scratch pad          */
 #define UART_USR          0x1f    /* Status register (DW) */
 #define UART_DLL          0x00    /* divisor latch (ls) (DLAB=1) */
 #define UART_DLM          0x01    /* divisor latch (ms) (DLAB=1) */
 #define UART_XR_EFR       0x09    /* Enhanced function register (Exar) */
 
+/* ns8250 emulator: range of emulated registers [0..UART_MAX-1] */
+#define UART_MAX          (UART_SCR + 1)
+
 /* Interrupt Enable Register */
 #define UART_IER_ERDAI    0x01    /* rx data recv'd       */
 #define UART_IER_ETHREI   0x02    /* tx reg. empty        */
 #define UART_IER_ELSI     0x04    /* rx line status       */
 #define UART_IER_EMSI     0x08    /* MODEM status         */
+#define UART_IER_MASK \
+    (UART_IER_ERDAI | UART_IER_ETHREI | UART_IER_ELSI | UART_IER_EMSI)
 
 /* Interrupt Identification Register */
 #define UART_IIR_NOINT    0x01    /* no interrupt pending */
@@ -51,12 +57,21 @@
 #define UART_IIR_THR      0x02    /*  - tx reg. empty     */
 #define UART_IIR_MSI      0x00    /*  - MODEM status      */
 #define UART_IIR_BSY      0x07    /*  - busy detect (DW) */
+#define UART_IIR_FE0      BIT(6, U) /* FIFO enable #0 */
+#define UART_IIR_FE1      BIT(7, U) /* FIFO enable #1 */
+#define UART_IIR_FE_MASK  (UART_IIR_FE0 | UART_IIR_FE1)
 
 /* FIFO Control Register */
-#define UART_FCR_ENABLE   0x01    /* enable FIFO          */
-#define UART_FCR_CLRX     0x02    /* clear Rx FIFO        */
-#define UART_FCR_CLTX     0x04    /* clear Tx FIFO        */
-#define UART_FCR_DMA      0x10    /* enter DMA mode       */
+#define UART_FCR_ENABLE     BIT(0, U)   /* enable FIFO          */
+#define UART_FCR_CLRX       BIT(1, U)   /* clear Rx FIFO        */
+#define UART_FCR_CLTX       BIT(2, U)   /* clear Tx FIFO        */
+#define UART_FCR_DMA        BIT(3, U)   /* enter DMA mode       */
+#define UART_FCR_RESERVED0  BIT(4, U)   /* reserved; always 0   */
+#define UART_FCR_RESERVED1  BIT(5, U)   /* reserved; always 0   */
+#define UART_FCR_RTB0       BIT(6, U)   /* receiver trigger bit #0 */
+#define UART_FCR_RTB1       BIT(7, U)   /* receiver trigger bit #1 */
+#define UART_FCR_TRG_MASK   (UART_FCR_RTB0 | UART_FCR_RTB1)
+
 #define UART_FCR_TRG1     0x00    /* Rx FIFO trig lev 1   */
 #define UART_FCR_TRG4     0x40    /* Rx FIFO trig lev 4   */
 #define UART_FCR_TRG8     0x80    /* Rx FIFO trig lev 8   */
@@ -64,17 +79,17 @@
 
 /*
  * Note: The FIFO trigger levels are chip specific:
- *	RX:76 = 00  01  10  11	TX:54 = 00  01  10  11
- * PC16550D:	 1   4   8  14		xx  xx  xx  xx
- * TI16C550A:	 1   4   8  14          xx  xx  xx  xx
- * TI16C550C:	 1   4   8  14          xx  xx  xx  xx
- * ST16C550:	 1   4   8  14		xx  xx  xx  xx
- * ST16C650:	 8  16  24  28		16   8  24  30	PORT_16650V2
- * NS16C552:	 1   4   8  14		xx  xx  xx  xx
- * ST16C654:	 8  16  56  60		 8  16  32  56	PORT_16654
- * TI16C750:	 1  16  32  56		xx  xx  xx  xx	PORT_16750
- * TI16C752:	 8  16  56  60		 8  16  32  56
- * Tegra:	 1   4   8  14		16   8   4   1	PORT_TEGRA
+ *  RX:76 = 00  01  10  11  TX:54 = 00  01  10  11
+ * PC16550D:     1   4   8  14      xx  xx  xx  xx
+ * TI16C550A:    1   4   8  14      xx  xx  xx  xx
+ * TI16C550C:    1   4   8  14      xx  xx  xx  xx
+ * ST16C550:     1   4   8  14      xx  xx  xx  xx
+ * ST16C650:     8  16  24  28      16   8  24  30  PORT_16650V2
+ * NS16C552:     1   4   8  14      xx  xx  xx  xx
+ * ST16C654:     8  16  56  60       8  16  32  56  PORT_16654
+ * TI16C750:     1  16  32  56      xx  xx  xx  xx  PORT_16750
+ * TI16C752:     8  16  56  60       8  16  32  56
+ * Tegra:        1   4   8  14      16   8   4   1  PORT_TEGRA
  */
 #define UART_FCR_R_TRIG_00 0x00
 #define UART_FCR_R_TRIG_01 0x40
@@ -96,11 +111,32 @@
 #define UART_LCR_CONF_MODE_B	0xBF		/* Configuration mode B */
 
 /* Modem Control Register */
-#define UART_MCR_DTR      0x01    /* Data Terminal Ready  */
-#define UART_MCR_RTS      0x02    /* Request to Send      */
-#define UART_MCR_OUT2     0x08    /* OUT2: interrupt mask */
-#define UART_MCR_LOOP     0x10    /* Enable loopback test mode */
-#define UART_MCR_TCRTLR   0x40    /* Access TCR/TLR (TI16C752, EFR[4]=1) */
+#define UART_MCR_DTR            BIT(0, U)   /* Data Terminal Ready  */
+#define UART_MCR_RTS            BIT(1, U)   /* Request to Send      */
+#define UART_MCR_OUT1           BIT(2, U)   /* OUT1: interrupt mask */
+#define UART_MCR_OUT2           BIT(3, U)   /* OUT2: interrupt mask */
+#define UART_MCR_LOOP           BIT(4, U)   /* Enable loopback test mode */
+#define UART_MCR_RESERVED0      BIT(5, U)   /* Reserved #0 */
+#define UART_MCR_RESERVED1      BIT(6, U)   /* Reserved #1 */
+#define UART_MCR_TCRTLR         BIT(6, U)   /* Access TCR/TLR (TI16C752, EFR[4]=1) */
+#define UART_MCR_RESERVED2      BIT(7, U)   /* Reserved #2 */
+#define UART_MCR_MASK \
+    (UART_MCR_DTR | UART_MCR_RTS | \
+     UART_MCR_OUT1 | UART_MCR_OUT2 | \
+     UART_MCR_LOOP)
+
+/* Modem Status Register */
+#define UART_MSR_DCTS           BIT(0, U)   /* Change in CTS */
+#define UART_MSR_DDSR           BIT(1, U)   /* Change in DSR */
+#define UART_MSR_TERI           BIT(2, U)   /* Change in RI */
+#define UART_MSR_DDCD           BIT(3, U)   /* Change in CTS */
+#define UART_MSR_CTS            BIT(4, U)
+#define UART_MSR_DSR            BIT(5, U)
+#define UART_MSR_RI             BIT(6, U)
+#define UART_MSR_DCD            BIT(7, U)
+#define UART_MSR_SHIFT          4
+#define UART_MSR_DELTA \
+    (UART_MSR_DCTS | UART_MSR_DDSR | UART_MSR_TERI | UART_MSR_DDCD)
 
 /* Line Status Register */
 #define UART_LSR_DR       0x01    /* Data ready           */
@@ -111,6 +147,7 @@
 #define UART_LSR_THRE     0x20    /* Xmit hold reg empty  */
 #define UART_LSR_TEMT     0x40    /* Xmitter empty        */
 #define UART_LSR_ERR      0x80    /* Error                */
+#define UART_LSR_MASK     (UART_LSR_OE | UART_LSR_BI)
 
 /* These parity settings can be ORed directly into the LCR. */
 #define UART_PARITY_NONE  (0<<3)
@@ -119,7 +156,10 @@
 #define UART_PARITY_MARK  (5<<3)
 #define UART_PARITY_SPACE (7<<3)
 
-/* Frequency of external clock source. This definition assumes PC platform. */
+/*
+ * Frequency of external UART clock source.
+ * Same as IBM PC master input clock frequency.
+ */
 #define UART_CLOCK_HZ     1843200
 
 /* Bits in Exar specific UART_XR_EFR register */

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:30:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:30:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844188.1259792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG512-0003hl-Hb; Tue, 26 Nov 2024 23:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844188.1259792; Tue, 26 Nov 2024 23:30: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 1tG512-0003he-ET; Tue, 26 Nov 2024 23:30:44 +0000
Received: by outflank-mailman (input) for mailman id 844188;
 Tue, 26 Nov 2024 23:30: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4st-0000At-EW
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:19 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fde0617-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 023A95C5D75;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 2EA58C4CED8;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 26DF0D66B9A;
 Tue, 26 Nov 2024 23:21:57 +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: 3fde0617-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDQ6MTM4MDo0NjQxOmM1MDA6OjEiLCJoZWxvIjoiZGZ3LnNvdXJjZS5rZXJuZWwub3JnIn0=
X-Custom-Transaction: eyJpZCI6IjNmZGUwNjE3LWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI2Ljc1MjkwMywic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=Fe2836fVTLNAm3WsnALDDlo7tZdWGBnob9UKBanM8xI=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=J468pXVt8bOqy5i6t8qfP65xQmcXe+5MRsCF3WbpQP8490hVNvowZ0irJcnakiJKy
	 xqfQHD5GExSMWUtTvk6CjkvYWGd+f1kB/GCid2DX34E/uMtZz2Sqiw3ncPsnKKe+Aw
	 lCqD9pEu0lsqRMXKYR5R4ZIUFjriLbV2shx5VyiRtqo3TB2w2bxS9QUUHpVM2eTTFh
	 POHQcMAIFaDN3qSFzrd41r+QRK0u+B/4k7oVMOWA5MVuOJKSGAgAQjlFhHrf77wNsx
	 c3pbqB4KCwhUK8FaY/ivZNcWcpV7MHMAZMBtTPB1LZujkwzNMx9vnVguBWqzOl5EJs
	 JOdfysywjGVjQ==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:15 -0800
Subject: [PATCH 25/36] xen/console: introduce handle_keypress_in_domain()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-25-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=4030;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=WFmMQGLVJ0pT89tmxZ0ESYKHXHYqZV3StRB9Oqc56Go=;
 b=GoTkJnk83G9LUzBwpX7Aka4GbqCU17s/CyNsDUtmb57uNiKM4uuDJ+oKcwJiPDwset63x3jYN
 YB7yk8Qun2gBof4pKaDDjOz1+GkUp1ER7gJzYPIEFEAEe0lcgNWckUO
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

With introduction of NS8250 emulator for x86, the logic of switching console
focus gets more convoluted: HVM domain w/ NS8205 must be able to receive the
physical console input for guest VM debugging.

Also, existing code does not honor `hardware_dom=` xen command line parameter
(hardware domain ID does _not_ necessarily starts from 0).

Introduce handle_keypress_in_domain() to account for all scenarios of console
input forwarding.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 102 ++++++++++++++++++++++++++-------------------
 1 file changed, 59 insertions(+), 43 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 6261bdb5a2ac1075bc89fa408c0fd6cfef380ae6..4439e00763631969767719053cdc81e67c2cda2c 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -570,54 +570,70 @@ static void console_init_owner(void)
     console_set_owner(domid);
 }
 
-static void __serial_rx(char c)
+static void handle_keypress_in_domain(struct domain *d, char c)
 {
-    switch ( console_owner )
+    int rc = 0;
+
+    /*
+     * Deliver input to the emulated UART.
+     */
+    if ( domain_has_vuart(d) )
     {
-    case DOMID_XEN:
-        return handle_keypress(c, false);
-
-    case 0:
-        /*
-         * Deliver input to the hardware domain buffer, unless it is
-         * already full.
-         */
-        if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
-            serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
-
-        /*
-         * Always notify the hardware domain: prevents receive path from
-         * getting stuck.
-         */
-        send_global_virq(VIRQ_CONSOLE);
-        break;
-
-#ifdef CONFIG_SBSA_VUART_CONSOLE
-    default:
-    {
-        struct domain *d = rcu_lock_domain_by_id(console_owner);
-
-        /*
-         * If we have a properly initialized vpl011 console for the
-         * domain, without a full PV ring to Dom0 (in that case input
-         * comes from the PV ring), then send the character to it.
-         */
-        if ( d != NULL )
-            vpl011_rx_char_xen(d, c);
-        else
-            printk("Cannot send chars to Dom%d: no UART available\n",
-                   console_owner);
-
-        if ( d != NULL )
-            rcu_unlock_domain(d);
-
-        break;
-    }
+#if defined(CONFIG_SBSA_VUART_CONSOLE)
+        rc = vpl011_rx_char_xen(d, c);
 #endif
     }
+    /*
+     * Deliver input to the hardware domain buffer.
+     */
+    else if ( d == hardware_domain )
+    {
+        /*
+         * Deliver input to the PV shim console.
+         */
+        if ( consoled_is_enabled() )
+            rc = consoled_guest_tx(c);
+        else
+        {
+            /*
+             * Deliver input to the hardware domain buffer, unless it is
+             * already full.
+             */
+            if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
+                serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
 
-    if ( consoled_is_enabled() )
-        consoled_guest_tx(c);
+            /*
+             * Always notify the hardware domain: prevents receive path from
+             * getting stuck.
+             */
+            send_global_virq(VIRQ_CONSOLE);
+            rc = 0;
+        }
+    }
+    /*
+     * Deliver input to the PV shim console.
+     */
+    else if ( consoled_is_enabled() )
+        rc = consoled_guest_tx(c);
+
+    if ( rc )
+        printk(KERN_WARNING "console input domain %d: not ready: %d\n",
+               d->domain_id, rc);
+
+}
+
+static void __serial_rx(char c)
+{
+    struct domain *d;
+
+    d = rcu_lock_domain_console_owner();
+    if ( d != NULL )
+    {
+        handle_keypress_in_domain(d, c);
+        rcu_unlock_domain(d);
+    }
+    else
+        handle_keypress(c, false);
 }
 
 static void cf_check serial_rx(char c)

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:31:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844207.1259801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG51j-0004Rh-Oq; Tue, 26 Nov 2024 23:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844207.1259801; Tue, 26 Nov 2024 23:31: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 1tG51j-0004Ra-Lu; Tue, 26 Nov 2024 23:31:27 +0000
Received: by outflank-mailman (input) for mailman id 844207;
 Tue, 26 Nov 2024 23:31: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4ss-0000At-EW
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:18 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4052cc30-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 424AC5C5CDF;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 720A2C4CED0;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 68E9ED66B97;
 Tue, 26 Nov 2024 23:21:56 +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: 4052cc30-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjQwNTJjYzMwLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI2Ljc2MzYwMywic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=Bn46VxfAkAcMhv6DUkrTdMnTNfB+okMDoUD+Om5BMyY=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=m6JM8GCJGhtrmxVQvqrmhKB9kFFTklfeOAlWO5/+UU2fq0kgrPSgUXV6ImmQXliNa
	 TfqmqY4ZmR/6s4p2kAyF3HNG0ut8Z0gsysqmZWF470Wo/ILXdRF3ezJCHsPdh2Mvuw
	 Tk6zBz9+FTdtUMwHsSZgOMn8BREHv9vNoS0fZSD8f6/pg2pf5QRxkbeGBjOeq3BTjD
	 sF7MdJ9TbqgNWk92LP7fd8QPrv/eIJ6QRXFDlpXs1zGpBEdaL1F8GwrjFE0dVR9Y/U
	 x0zD9U98I/Es1TkqFRukmmZtmfM0Eg2O9WikFnfJm8sNmqKEg1LIx8966xPMTllta0
	 I9bwC9b578QoQ==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:06 -0800
Subject: [PATCH 16/36] xen/console: rename console_input_domain
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-16-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=2162;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=//8B6RWBIW7SNgnF2T6+HEA2/O3wgsD0ciOR+76PaLM=;
 b=F6KU38cCC+uW7VC+/FDMuTylh4u51qK5IZuAVjuLIRIwoAHjJEwX1ZcwPeWYsBp7Jcz2UZs+H
 m3VQ/gQTRhgDEAbVrKlIKpMw6P5C7JIWDqUAjxReSCvMICF7iavKNUM
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

console_input_domain() takes an RCU lock to protect domain structure.
That implies call to rcu_unlock_domain() after use.

Rename console_input_domain() to rcu_lock_domain_console_owner() to
highlight the need of calling rcu_unlock_domain().

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/vpl011.c      | 2 +-
 xen/drivers/char/console.c | 2 +-
 xen/include/xen/console.h  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 3e1487b101053891c9c0fb7fb50af1c547d4cbf3..07ef872d72b7881a70f4a938dcd6bea4c30198d9 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -78,7 +78,7 @@ static void vpl011_write_data_xen(struct domain *d, uint8_t data)
     unsigned long flags;
     struct vpl011 *vpl011 = &d->arch.vpl011;
     struct vpl011_xen_backend *intf = vpl011->backend.xen;
-    struct domain *input = console_input_domain();
+    struct domain *input = rcu_lock_domain_console_owner();
 
     VPL011_LOCK(d, flags);
 
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 0af4b551801356f242f1770b3826608136d65653..01fcbd5581d11f8f4f2b23592255b5c744430a3e 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -477,7 +477,7 @@ static unsigned int __read_mostly console_rx = 0;
 
 #ifdef CONFIG_SBSA_VUART_CONSOLE
 /* Make sure to rcu_unlock_domain after use */
-struct domain *console_input_domain(void)
+struct domain *rcu_lock_domain_console_owner(void)
 {
     if ( console_rx == 0 )
             return NULL;
diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h
index 6dfbade3ece36352c74f1124305da945b210f2a7..0e211e44d9703c804e18f52c9743916f8d2a9d4e 100644
--- a/xen/include/xen/console.h
+++ b/xen/include/xen/console.h
@@ -31,7 +31,7 @@ void console_end_sync(void);
 void console_start_log_everything(void);
 void console_end_log_everything(void);
 
-struct domain *console_input_domain(void);
+struct domain *rcu_lock_domain_console_owner(void);
 
 /*
  * Steal output from the console. Returns +ve identifier, else -ve error.

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:31:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:31:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844209.1259807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG51k-0004UY-23; Tue, 26 Nov 2024 23:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844209.1259807; Tue, 26 Nov 2024 23:31: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 1tG51j-0004Ti-Sc; Tue, 26 Nov 2024 23:31:27 +0000
Received: by outflank-mailman (input) for mailman id 844209;
 Tue, 26 Nov 2024 23:31: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sr-0000At-EN
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:17 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4019797e-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 950025C5D22;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id C34ACC4CED7;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id B4ACDD66B8E;
 Tue, 26 Nov 2024 23:21:56 +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: 4019797e-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjQwMTk3OTdlLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI2LjM1NjQ2OCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=50fKjc2QOVuxtHeCWL67mp4YIYRrVBdHtpZLvHIma5E=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=BBoTyplhMIAPEAOnJhFln241XCN141CxblrzJCf0bRaf3R6yqKmOnrTKzlU0yhCaJ
	 L6+hYvAMtPk6+Nv2Ss611hnJD51ZQUDtgCo5B4LvRPpieEBOrdGl6+LBZ9T2XaBrBU
	 UKqv/PKH2bKvM1+Du0mEFXUp0eXEgqDM8TwOxn1b6w7OWODGqHLCCzOlnZ5uVQldgQ
	 xoSmncVBRkZ2ld06R5RYwAszQNZaL7ZL/b7V5lFcb7rXXbsCo22I/e4BsjcnLBxd++
	 awpFMdzAAym2D0wjAK8isiYRERxu94xr6vRbLkamxim8KEK4+AJzVsL9cjSPu1jwI2
	 s06zjdIbGWvyA==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:10 -0800
Subject: [PATCH 20/36] xen/console: introduce consoled_is_enabled()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-20-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=4384;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=dmfspZvPgoI4EGX+YrlzVMe2EpWEao1fcT911zaxlEE=;
 b=b8yT+vorsOT/zpMXLcXELRcjbP8A5xks6ATDBkx57XKFIDY+aHn3Ylyvhm4Z3AH3+ZRx1C8qL
 Jwel3yfp81XClJATR0JRkeqv+Ek2LpNbnP2Vh/Z/EibO0x25KL5xBeT
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

There are few places which check pv_shim console under CONFIG_PV_SHIM in xen
console driver. Instead of #ifdef-ing, use new consoled_is_enabled() to
customize the logic.

Header file now can be included w/o CONFIG_X86.

Signature of consoled_guest_{rx,tx} has changed to account for follow-on
console switch logic cleanup.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c  | 10 +++-------
 xen/drivers/char/consoled.c | 18 ++++++++++++++----
 xen/include/xen/consoled.h  | 35 +++++++++++++++++++++++++++++++++--
 3 files changed, 50 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index f034ce5aab3f3bf59b0df9fa583ee9ce32dbf665..60c055396b697869b04b9132b0dcfa832fabe932 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -33,9 +33,9 @@
 #include <xen/pv_console.h>
 #include <asm/setup.h>
 #include <xen/sections.h>
+#include <xen/consoled.h>
 
 #ifdef CONFIG_X86
-#include <xen/consoled.h>
 #include <asm/guest.h>
 #endif
 #ifdef CONFIG_SBSA_VUART_CONSOLE
@@ -505,11 +505,9 @@ static void console_find_owner(void)
             break;
         }
 
-#ifdef CONFIG_PV_SHIM
-        if ( next_rx == 1 )
+        if ( consoled_is_enabled() && next_rx == 1 )
             domid = get_initial_domain_id();
         else
-#endif
             domid = next_rx - 1;
         d = rcu_lock_domain_by_id(domid);
         if ( d )
@@ -573,10 +571,8 @@ static void __serial_rx(char c)
 #endif
     }
 
-#ifdef CONFIG_X86
-    if ( pv_shim && pv_console )
+    if ( consoled_is_enabled() )
         consoled_guest_tx(c);
-#endif
 }
 
 static void cf_check serial_rx(char c)
diff --git a/xen/drivers/char/consoled.c b/xen/drivers/char/consoled.c
index b415b632cecc0a80e161b701d7b70ba4f3cc5fb8..d6624e7697f56e1a1959b0efa5dca104f34af002 100644
--- a/xen/drivers/char/consoled.c
+++ b/xen/drivers/char/consoled.c
@@ -43,13 +43,13 @@ struct xencons_interface *consoled_get_ring_addr(void)
 static char buf[BUF_SZ + 1];
 
 /* Receives characters from a domain's PV console */
-void consoled_guest_rx(void)
+int consoled_guest_rx(void)
 {
     size_t idx = 0;
     XENCONS_RING_IDX cons, prod;
 
     if ( !cons_ring )
-        return;
+        return 0;
 
     spin_lock(&rx_lock);
 
@@ -91,15 +91,17 @@ void consoled_guest_rx(void)
 
  out:
     spin_unlock(&rx_lock);
+
+    return 0;
 }
 
 /* Sends a character into a domain's PV console */
-void consoled_guest_tx(char c)
+int consoled_guest_tx(char c)
 {
     XENCONS_RING_IDX cons, prod;
 
     if ( !cons_ring )
-        return;
+        return 0;
 
     cons = ACCESS_ONCE(cons_ring->in_cons);
     prod = cons_ring->in_prod;
@@ -118,6 +120,7 @@ void consoled_guest_tx(char c)
 
     cons_ring->in[MASK_XENCONS_IDX(prod++, cons_ring->in)] = c;
 
+
     /* Write to the ring before updating the pointer */
     smp_wmb();
     ACCESS_ONCE(cons_ring->in_prod) = prod;
@@ -125,6 +128,13 @@ void consoled_guest_tx(char c)
  notify:
     /* Always notify the guest: prevents receive path from getting stuck. */
     pv_shim_inject_evtchn(pv_console_evtchn());
+
+    return 0;
+}
+
+bool consoled_is_enabled(void)
+{
+    return pv_shim && pv_console;
 }
 
 /*
diff --git a/xen/include/xen/consoled.h b/xen/include/xen/consoled.h
index bd7ab6329ee8a7c466484021247241ded8ed03c7..b88e3025fde84a52d7027b785b0a51ada8493832 100644
--- a/xen/include/xen/consoled.h
+++ b/xen/include/xen/consoled.h
@@ -3,10 +3,41 @@
 
 #include <public/io/console.h>
 
+#if defined(CONFIG_PV_SHIM)
+
 void consoled_set_ring_addr(struct xencons_interface *ring);
 struct xencons_interface *consoled_get_ring_addr(void);
-void consoled_guest_rx(void);
-void consoled_guest_tx(char c);
+int consoled_guest_rx(void);
+int consoled_guest_tx(char c);
+bool consoled_is_enabled(void);
+
+#else
+
+void consoled_set_ring_addr(struct xencons_interface *ring)
+{
+}
+
+struct xencons_interface *consoled_get_ring_addr(void)
+{
+    return NULL;
+}
+
+int consoled_guest_rx(void)
+{
+    return 0;
+}
+
+int consoled_guest_tx(char c)
+{
+    return 0;
+}
+
+bool consoled_is_enabled(void)
+{
+    return false;
+}
+
+#endif /* #if defined(CONFIG_PV_SHIM) */
 
 #endif /* __XEN_CONSOLED_H__ */
 /*

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:31:38 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:31:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844222.1259822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG51u-00057E-CF; Tue, 26 Nov 2024 23:31:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844222.1259822; Tue, 26 Nov 2024 23:31: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 1tG51u-000575-90; Tue, 26 Nov 2024 23:31:38 +0000
Received: by outflank-mailman (input) for mailman id 844222;
 Tue, 26 Nov 2024 23:31: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sm-0000Ao-Mu
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:12 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3fb763ee-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3D79C5C5D84;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 65829C4CED7;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 5BC36D66B9A;
 Tue, 26 Nov 2024 23:21:57 +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: 3fb763ee-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmYjc2M2VlLWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI1LjU5MzM4Nywic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=P4X+dnER+7JoqwwmELmRNzsru3TR+rJuCDE5NVa75n8=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=LTOb+oAyp07JKXq2KJLVV+d+MoHMeglaDQDpfdyCKHfYf7hokgtzJvzzayeEwnusL
	 xHKXsVFkKdUWVziDvBhvsgLEE6VCg6BVZgJwbo3dSLP4THmQTvfCwtYpm6MtR9vEu6
	 8Zs1a5pzDa3Zwa1yAafV6H1ovtNzVr1OwPRlydFehttigbeFLTNM4XGW8VncIlEjrM
	 aeg0NzHColTIN1EiqOM0a0KvmsToLU1Dz23F7cwgrdyJvEYDzRn2bIirirIbDJcf7P
	 2Ssf20fmV2hDlhO7E69JzPLNLozLDgYy/+FuuBT7BRABn4wGqD5pKuKJwnJb7LcBdH
	 saDtyLBreVxDg==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:18 -0800
Subject: [PATCH 28/36] xen/console: simplify console owner switch hint
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-28-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=881;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=IPN7McCx2GMasxWXQvc4fWV7JKmlK0HvFSHLV2y3YOg=;
 b=oN+IviwIRCqEG8bugGFvwedgL4OLnk6vPm6uROZKAImjHwOcHtL8C/RatenQWqO7uSxuLu4gJ
 ZT0mRsqa0qjA91V6VY/0iAfAWAnoxW6FR+klTt83UV5rUFCDfvYqK8S
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Update the hint w/ the combination of keys to press to switch physical console
to the next owner.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 3d8d3c852e69d8fddd1d978fdd8932eb75551f25..9f67ecb26f5ab1183d17c83631a17b45cfefd5ab 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -526,8 +526,8 @@ int console_set_owner(domid_t domid)
     console_owner = domid;
 
     if ( switch_code )
-        printk(" (type 'CTRL-%c' three times to switch input)",
-               opt_conswitch[0]);
+        printk(" (type 'CTRL-%c%c%c' to switch input)",
+               opt_conswitch[0], opt_conswitch[0], opt_conswitch[0]);
     printk("\n");
 
     return 0;

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:31:46 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844226.1259832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG521-0005Y1-LV; Tue, 26 Nov 2024 23:31:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844226.1259832; Tue, 26 Nov 2024 23:31: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 1tG521-0005XM-H1; Tue, 26 Nov 2024 23:31:45 +0000
Received: by outflank-mailman (input) for mailman id 844226;
 Tue, 26 Nov 2024 23:31: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sv-0000At-Ei
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:21 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fd053c2-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2D1395C5D81;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 5507EC4CED9;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 4D7EAD66B9D;
 Tue, 26 Nov 2024 23:21:57 +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: 3fd053c2-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmZDA1M2MyLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI2LjY3MzkzNCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=MgApai2X2eHnbK37BwNB8ShofCKeQUT/r7C8T0eMz1I=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=Kr4Oa3t4K4Lqehvz16FW6oidxWBNJJCWVcBIING4CPQQMH9bCF60D3lqRB5iZww1s
	 l28HhYztl0EArICqaJohxeYIfob6EHHJVjrgmI+45/CUb+QjdaOQ0BRPiqEAj8EEE7
	 QR3qfxv6Cvi3ETN/EOvruf1iuysj0PGLoPkjKgoSWfuQ3DZmisdxp2K2qieHdyIoMF
	 30P5pX8+TA7oXj+ayjDnuO0aBnAcH/5Dek/9FmSc4Ges+vIoSQTpkvVWosLaHbNArM
	 kwVAA/VwcjQzuLpSB9BGbnm8BeboZTxjip26X+tTrY+5WpL3f9AAHGQnzuLeLgWDBb
	 CMwLNSTQkyy+A==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:17 -0800
Subject: [PATCH 27/36] xen/console: introduce hwdom_crashconsole=
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-27-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=3869;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=JESGJHjMxTvWh9SGyt0+xymQaxEqPkPKVM3b9HUELmI=;
 b=mY7Ag7UTh6FVmqmRN1Vz6+VT0ef9bxlfj+zIyWvTuiQ7Kzug6VSn9jEO79q8KDBzcMJb0BbLg
 SBhaZjR2X43Bt0VtujV+uNAm8/kuyShsWwnARo7ewwDgMfGgasQJAyr
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

The new command line switch `hwdom_crashconsole=BOOL` allows to switch serial
console input focus to xen for machine state inspection using keyhandler
mechanism after the hardware domain crashes.

The new command line switch is aliased via `dom0=...,crashconsole` knob.

Such functionality can be useful while debugging dom0 bringup.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 docs/misc/xen-command-line.pandoc |  5 +++++
 xen/arch/x86/dom0_build.c         |  2 ++
 xen/arch/x86/include/asm/setup.h  |  1 +
 xen/common/domain.c               | 14 +++++++++++++-
 4 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 293dbc1a957ba6e668fd4d55d58e84f643822126..fb77d7dca1ea517f79d6713aa6909422f31e7724 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -806,6 +806,7 @@ Specify the bit width of the DMA heap.
 
 ### dom0
     = List of [ pv | pvh, shadow=<bool>, verbose=<bool>,
+                crashconsole=<bool>,
                 cpuid-faulting=<bool>, msr-relaxed=<bool> ] (x86)
 
     = List of [ sve=<integer> ] (Arm64)
@@ -839,6 +840,10 @@ Controls for how dom0 is constructed on x86 systems.
     information during the dom0 build.  It defaults to the compile time choice
     of `CONFIG_VERBOSE_DEBUG`.
 
+*   The `crashconsole` boolean instructs Xen to drop into emergency console
+    in case of dom0 crash. May be useful for dom0 bringup on a custom
+    hardware.
+
 *   The `cpuid-faulting` boolean is an interim option, is only applicable to
     PV dom0, and defaults to true.
 
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index e8f5bf5447bc47a6daa3d95787106a4c11e80d31..706aeec0ecbb565a415edbfb33ca2fd72967c560 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -286,6 +286,8 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
         opt_dom0_cpuid_faulting = val;
     else if ( (val = parse_boolean("msr-relaxed", s, e)) >= 0 )
         opt_dom0_msr_relaxed = val;
+    else if ( (val = parse_boolean("crashconsole", s, e)) >= 0 )
+        opt_hwdom_crashconsole = !!val;
     else
         return -EINVAL;
 
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 296348655b9d146c73acc305cc9edd5fd46f7d47..5edae2d15cc0a1ad74eb1637a48dd3a74e0c37ee 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -68,5 +68,6 @@ extern bool opt_dom0_pvh;
 extern bool opt_dom0_verbose;
 extern bool opt_dom0_cpuid_faulting;
 extern bool opt_dom0_msr_relaxed;
+extern bool opt_hwdom_crashconsole;
 
 #endif
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 56f5d3b2031c52d567bfcf839740600320d952e9..68112ca6de09d58f3df10b8545fec55583d2bf74 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -56,6 +56,13 @@ unsigned int xen_processor_pmbits = XEN_PROCESSOR_PM_PX;
 bool opt_dom0_vcpus_pin;
 boolean_param("dom0_vcpus_pin", opt_dom0_vcpus_pin);
 
+/*
+ * Hardware domain crash handler: if true, do not halt machine, but switch to
+ * Xen console for debugging.
+ */
+bool opt_hwdom_crashconsole;
+boolean_param("hwdom_crashconsole", opt_hwdom_crashconsole);
+
 /* Protect updates/reads (resp.) of domain_list and domain_hash. */
 DEFINE_SPINLOCK(domlist_update_lock);
 DEFINE_RCU_READ_LOCK(domlist_read_lock);
@@ -1144,7 +1151,12 @@ int domain_shutdown(struct domain *d, u8 reason)
     reason = d->shutdown_code;
 
     if ( is_hardware_domain(d) )
-        hwdom_shutdown(reason);
+    {
+        if ( opt_hwdom_crashconsole )
+            console_set_owner(DOMID_XEN);
+        else
+            hwdom_shutdown(reason);
+    }
 
     if ( d->is_shutting_down )
     {

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:31:58 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:31:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844236.1259842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG52D-0006JF-TU; Tue, 26 Nov 2024 23:31:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844236.1259842; Tue, 26 Nov 2024 23: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 1tG52D-0006J2-Od; Tue, 26 Nov 2024 23:31:57 +0000
Received: by outflank-mailman (input) for mailman id 844236;
 Tue, 26 Nov 2024 23: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sr-0000Ao-NS
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:17 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 404f6775-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 6AF2F5C5D0C;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 98D78C4CED3;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 8F6D5D66B98;
 Tue, 26 Nov 2024 23:21:56 +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: 404f6775-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjQwNGY2Nzc1LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI2Ljc1MjY5LCJzZW5kZXIiOiJkZXZudWxsK2RtdWtoaW4uZm9yZC5jb21Aa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=owjhPqMN/sfHwDFdAwELQ23W67gacGzY3DCmgAbUG18=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=NrMOAdLWUjxpQz3jaTxfnIXSc3yKGQn5VCrM887lJG30+7SRR1m+YUy5YlEcFkp0M
	 OJsvdRn8FAPajpezUSl0Sf87pH2Ogh5aRLuTT9gqp+iK8hccTVgGERmlYTDxgoArhl
	 hv4l1Q/H7aAZZKPUcms8C6n6fhp38uP5oNP5O/6B1Mof6km8+A6KVfrL9JcsmRQkX/
	 FxWeUwazxd3RdPZ71lg3iYfUstVBycrMbCtoMUXZwUEmHlJmiHBnAOxF2o5kv3u4EI
	 BSRVjDxvivfiSX6me7SV92jQNHVDQSsC9Ocmxhl7FXM/u/rPsnMkWaA4jZQ6d9qdMJ
	 C5AQExxiB710g==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:08 -0800
Subject: [PATCH 18/36] xen/console: rename console_rx to console_owner
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-18-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=3503;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=adx3ttDq9DGxs5v/iNqFG/t0SkuLKBWjA23PcHLO1+c=;
 b=IGxjWhFAg7XglUWziOn324G97nMmVYuDMsHVRirzfW0FLmtntUSWMQ0+UUZF6Y5jWsWkcWmKg
 K0SKJ9oAAGaAf7mlgCU66d5Ocl+sy3UFeBq8D1SW6JucgTfyS4RY07A
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Preparation for the follow on change to switch console_owner to
domid_t address space.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index f8a7db385c9525cabc69ceb1a84d73f57863aa45..86bf899ada8f8221ffc77bcffb1f58777a22198e 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -467,11 +467,11 @@ static void cf_check dump_console_ring_key(unsigned char key)
  */
 #define switch_code (opt_conswitch[0]-'a'+1)
 /*
- * console_rx=0 => input to xen
- * console_rx=1 => input to dom0 (or the sole shim domain)
- * console_rx=N => input to dom(N-1)
+ * console_owner=0 => input to xen
+ * console_owner=1 => input to dom0 (or the sole shim domain)
+ * console_owner=N => input to dom(N-1)
  */
-static unsigned int __read_mostly console_rx = 0;
+static unsigned int __read_mostly console_owner = 0;
 
 #define max_console_rx (max_init_domid + 1)
 
@@ -479,15 +479,15 @@ static unsigned int __read_mostly console_rx = 0;
 /* Make sure to rcu_unlock_domain after use */
 struct domain *rcu_lock_domain_console_owner(void)
 {
-    if ( console_rx == 0 )
+    if ( console_owner == 0 )
             return NULL;
-    return rcu_lock_domain_by_id(console_rx - 1);
+    return rcu_lock_domain_by_id(console_owner - 1);
 }
 #endif
 
 static void console_find_owner(void)
 {
-    unsigned int next_rx = console_rx;
+    unsigned int next_rx = console_owner;
 
     /*
      * Rotate among Xen, dom0 and boot-time created domUs while skipping
@@ -500,7 +500,7 @@ static void console_find_owner(void)
 
         if ( next_rx++ >= max_console_rx )
         {
-            console_rx = 0;
+            console_owner = 0;
             printk("*** Serial input to Xen");
             break;
         }
@@ -515,7 +515,7 @@ static void console_find_owner(void)
         if ( d )
         {
             rcu_unlock_domain(d);
-            console_rx = next_rx;
+            console_owner = next_rx;
             printk("*** Serial input to DOM%u", domid);
             break;
         }
@@ -529,7 +529,7 @@ static void console_find_owner(void)
 
 static void __serial_rx(char c)
 {
-    switch ( console_rx )
+    switch ( console_owner )
     {
     case 0:
         return handle_keypress(c, false);
@@ -552,7 +552,7 @@ static void __serial_rx(char c)
 #ifdef CONFIG_SBSA_VUART_CONSOLE
     default:
     {
-        struct domain *d = rcu_lock_domain_by_id(console_rx - 1);
+        struct domain *d = rcu_lock_domain_by_id(console_owner - 1);
 
         /*
          * If we have a properly initialized vpl011 console for the
@@ -563,7 +563,7 @@ static void __serial_rx(char c)
             vpl011_rx_char_xen(d, c);
         else
             printk("Cannot send chars to Dom%d: no UART available\n",
-                   console_rx - 1);
+                   console_owner - 1);
 
         if ( d != NULL )
             rcu_unlock_domain(d);
@@ -1116,7 +1116,7 @@ void __init console_endboot(void)
      * a useful 'how to switch' message.
      */
     if ( opt_conswitch[1] == 'x' )
-        console_rx = max_console_rx;
+        console_owner = max_console_rx;
 
     register_keyhandler('w', dump_console_ring_key,
                         "synchronously dump console ring buffer (dmesg)", 0);

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:32:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:32:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844257.1259851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG52h-0007Lh-40; Tue, 26 Nov 2024 23:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844257.1259851; Tue, 26 Nov 2024 23:32: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 1tG52h-0007La-15; Tue, 26 Nov 2024 23:32:27 +0000
Received: by outflank-mailman (input) for mailman id 844257;
 Tue, 26 Nov 2024 23:32: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sp-0000At-EC
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:15 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f7da23a-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 874FF5C5BF6;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id B79D1C4CED0;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id AB5C4D66B9D;
 Tue, 26 Nov 2024 23:21:57 +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: 3f7da23a-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmN2RhMjNhLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI1LjM2NDIxLCJzZW5kZXIiOiJkZXZudWxsK2RtdWtoaW4uZm9yZC5jb21Aa2VybmVsLm9yZyIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=WDr/PwUo7NPVqK8vVCu/sN3ApYHaNVXqHBFVutTjEsg=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=bkBhss7xSShP7C40xt01FhoPGq5cQEMVzQF4f2cY3ApbZPrWn7RayCwmhkqJRhEhj
	 d6yKiwYR+jFN1eG47mBUGxoEWMABee3dAqxyeK0yi/0MD+1Km5Ebt9i3+JdaS5RJu3
	 aw2qgl3uxapuufS+U+6DSi0HA2ElrQecaX47KVibJZSY+TAx0NohANkA9ZxMHdM7z6
	 jRCwe5WFfl6Ug2eaHwfbVtOur+sA67kkVw//QOvpq7ZQSqCdIM9EWMr3HLEuZuVjlq
	 XiZqAPJ26GgjnQ1c1Qyzc/jfAXYECd8GAN/u5bpwh465T4X/OnTnjuNlD67+T6SoGv
	 d16BKhnKRlEpg==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:22 -0800
Subject: [PATCH 32/36] x86/hvm: add helpers for raising guest IRQs
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-32-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1876;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=7BbjWtYddozrVOKtAkZI0QGQoqm6ofyyNdgxey+37YU=;
 b=ThSK3I1nGSONSUOI8mLhfE3bYgxEWNIeTGmqKGF4Wt0hASsaBfM9mvC9LGsCTP8xT/H1gbzAI
 1Ak2zfg3dNeDPlENUq8QeW8vsLJWhYmLYPD53ex/4VN5v6wLCj5aagQ
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Added convenience wrappers for asserting/de-asserting interrupts in the
hardware emulation code.

That will be used for PCI-based NS8250 emulator.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/hvm/irq.c             | 24 ++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/irq.h |  3 +++
 2 files changed, 27 insertions(+)

diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 1eab44defca4c82ec35769617c66c380cc07d1b6..9e3a50d21dcf281c1015116094e47795c51ed5d0 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -242,6 +242,30 @@ void hvm_isa_irq_deassert(
     spin_unlock(&d->arch.hvm.irq_lock);
 }
 
+void hvm_irq_raise(struct domain *d, unsigned int irq)
+{
+    if ( irq < NR_ISAIRQS )
+    {
+        hvm_isa_irq_assert(d, irq, NULL);
+    }
+    else
+    {
+        hvm_gsi_assert(d, irq);
+    }
+}
+
+void hvm_irq_lower(struct domain *d, unsigned int irq)
+{
+    if ( irq < NR_ISAIRQS )
+    {
+        hvm_isa_irq_deassert(d, irq);
+    }
+    else
+    {
+        hvm_gsi_deassert(d, irq);
+    }
+}
+
 static void hvm_set_callback_irq_level(struct vcpu *v)
 {
     struct domain *d = v->domain;
diff --git a/xen/arch/x86/include/asm/hvm/irq.h b/xen/arch/x86/include/asm/hvm/irq.h
index 87e89993a44f48f366fa84e851688f383cb562d4..27bb9f64171c1b8aac2cf119699e60c91e727177 100644
--- a/xen/arch/x86/include/asm/hvm/irq.h
+++ b/xen/arch/x86/include/asm/hvm/irq.h
@@ -210,6 +210,9 @@ void hvm_maybe_deassert_evtchn_irq(void);
 void hvm_assert_evtchn_irq(struct vcpu *v);
 void hvm_set_callback_via(struct domain *d, uint64_t via);
 
+void hvm_irq_raise(struct domain *d, unsigned int irq);
+void hvm_irq_lower(struct domain *d, unsigned int irq);
+
 struct pirq;
 bool hvm_domain_use_pirq(const struct domain *d, const struct pirq *pirq);
 

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:32:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:32:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844262.1259862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG52l-0007ds-AM; Tue, 26 Nov 2024 23:32:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844262.1259862; Tue, 26 Nov 2024 23:32: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 1tG52l-0007dl-7I; Tue, 26 Nov 2024 23:32:31 +0000
Received: by outflank-mailman (input) for mailman id 844262;
 Tue, 26 Nov 2024 23:32: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sp-0000Ao-NJ
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:15 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f8d82d9-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 77C2A5C5D98;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id A456AC4CEDC;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 99391D66B94;
 Tue, 26 Nov 2024 23:21:57 +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: 3f8d82d9-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmOGQ4MmQ5LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI2LjI2NzQzMSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=3rV9SQVk/30C/uR+xCoEerXgtGQ+GY3Qffyqy2vy1lU=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=SGwS+nVz3R6LTSZsbbawwgPSwG4FaUqt9ctb2YeNyoXD85n0MiuI42uEE5b5dVvSf
	 k14PHNnarznICc31SNfnu1/ana8c+YOCI3ioBTsoOn7EQ2PMwUTqE5ofrq3KAflVK+
	 ltoaNe9+TZth6HkLEnL7A9aMsz69Cp6/UJgIMJc4ugya+bnQssgYtNA9vHg69fdKU1
	 pXxzMWSAq8XhUw6nivMr5iJYAFZoF5DnPvgYqrex4jZsanPoBzBCmSulixr3U+9DTo
	 qfQkjPs8HxlTaDGSUtvD3OoyVQw45FCwx1pl6hLlmOne6RZfaPJiayazr5ZCYihI54
	 ZGcrL2wHwi+3Q==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:21 -0800
Subject: [PATCH 31/36] x86/hvm: add HVM-specific Kconfig
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-31-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=5119;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=xth/C4RssnpHF5d1BFSmQSRG1c+DKNwkoUPEyi1j9F4=;
 b=SOUETyT5mODqIQZsTEddy3lHiDVCjngDNDkNnn32sXy/ZccYCCpVCwy+fm7nrRFJ0PM9nFBaT
 yp2ZeAxEGFSCAl6mI+CVbAxa55bdaoZsW+pk5yz0S5PBRuTMQtP31rr
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Add separate menu for configuring HVM build-time settings.
That will help organizing HVM-specific options under a separate menu.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/Kconfig     | 66 +++---------------------------------------------
 xen/arch/x86/hvm/Kconfig | 63 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 63 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 9cdd04721afa1916c7edd8fdf7d606858c73ce88..5afee9a9f9bafa3c760b06b8601fad4cad3b7191 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -107,42 +107,9 @@ config PV_LINEAR_PT
 
          If unsure, say Y.
 
-config HVM
-	bool "HVM support"
-	depends on !PV_SHIM_EXCLUSIVE
-	default !PV_SHIM
-	select COMPAT
-	select IOREQ_SERVER
-	select MEM_ACCESS_ALWAYS_ON
-	help
-	  Interfaces to support HVM domains.  HVM domains require hardware
-	  virtualisation extensions (e.g. Intel VT-x, AMD SVM), but can boot
-	  guests which have no specific Xen knowledge.
-
-	  This option is needed if you want to run HVM or PVH domains.
-
-	  If unsure, say Y.
-
-config AMD_SVM
-	bool "AMD-V" if EXPERT
-	depends on HVM
-	default y
-	help
-	  Enables virtual machine extensions on platforms that implement the
-	  AMD Virtualization Technology (AMD-V).
-	  If your system includes a processor with AMD-V support, say Y.
-	  If in doubt, say Y.
-
-config INTEL_VMX
-	bool "Intel VT-x" if EXPERT
-	depends on HVM
-	default y
-	select ARCH_VCPU_IOREQ_COMPLETION
-	help
-	  Enables virtual machine extensions on platforms that implement the
-	  Intel Virtualization Technology (Intel VT-x).
-	  If your system includes a processor with Intel VT-x support, say Y.
-	  If in doubt, say Y.
+menu "HVM Support"
+source "arch/x86/hvm/Kconfig"
+endmenu
 
 config XEN_SHSTK
 	bool "Supervisor Shadow Stacks"
@@ -201,25 +168,6 @@ config BIGMEM
 
 	  If unsure, say N.
 
-config HVM_FEP
-	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
-	default DEBUG
-	depends on HVM
-	help
-
-	  Compiles in a feature that allows HVM guest to arbitrarily
-	  exercise the instruction emulator.
-
-	  This feature can only be enabled during boot time with
-	  appropriate hypervisor command line option. Please read
-	  hypervisor command line documentation before trying to use
-	  this feature.
-
-	  This is strictly for testing purposes, and not appropriate
-	  for use in production.
-
-	  If unsure, say N.
-
 config TBOOT
 	bool "Xen tboot support (UNSUPPORTED)"
 	depends on INTEL && UNSUPPORTED
@@ -348,14 +296,6 @@ config HYPERV_GUEST
 
 endif
 
-config MEM_PAGING
-	bool "Xen memory paging support (UNSUPPORTED)" if UNSUPPORTED
-	depends on HVM
-
-config MEM_SHARING
-	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
-	depends on HVM
-
 config REQUIRE_NX
 	bool "Require NX (No eXecute) support"
 	help
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..361bb6572e633f3cf0fc972a3b391e8341c33361
--- /dev/null
+++ b/xen/arch/x86/hvm/Kconfig
@@ -0,0 +1,63 @@
+config HVM
+	bool "HVM support"
+	depends on !PV_SHIM_EXCLUSIVE
+	default !PV_SHIM
+	select COMPAT
+	select IOREQ_SERVER
+	select MEM_ACCESS_ALWAYS_ON
+	help
+	  Interfaces to support HVM domains.  HVM domains require hardware
+	  virtualisation extensions (e.g. Intel VT-x, AMD SVM), but can boot
+	  guests which have no specific Xen knowledge.
+
+	  This option is needed if you want to run HVM or PVH domains.
+
+	  If unsure, say Y.
+
+config AMD_SVM
+	bool "AMD-V" if EXPERT
+	depends on HVM
+	default y
+	help
+	  Enables virtual machine extensions on platforms that implement the
+	  AMD Virtualization Technology (AMD-V).
+	  If your system includes a processor with AMD-V support, say Y.
+	  If in doubt, say Y.
+
+config INTEL_VMX
+	bool "Intel VT-x" if EXPERT
+	depends on HVM
+	default y
+	select ARCH_VCPU_IOREQ_COMPLETION
+	help
+	  Enables virtual machine extensions on platforms that implement the
+	  Intel Virtualization Technology (Intel VT-x).
+	  If your system includes a processor with Intel VT-x support, say Y.
+	  If in doubt, say Y.
+
+config MEM_PAGING
+	bool "Xen memory paging support (UNSUPPORTED)" if UNSUPPORTED
+	depends on HVM
+
+config MEM_SHARING
+	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
+	depends on HVM
+
+config HVM_FEP
+	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
+	default DEBUG
+	depends on HVM
+	help
+
+	  Compiles in a feature that allows HVM guest to arbitrarily
+	  exercise the instruction emulator.
+
+	  This feature can only be enabled during boot time with
+	  appropriate hypervisor command line option. Please read
+	  hypervisor command line documentation before trying to use
+	  this feature.
+
+	  This is strictly for testing purposes, and not appropriate
+	  for use in production.
+
+	  If unsure, say N.

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:33:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:33:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844281.1259871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG53L-0000GG-MC; Tue, 26 Nov 2024 23:33:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844281.1259871; Tue, 26 Nov 2024 23: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 1tG53L-0000G9-JU; Tue, 26 Nov 2024 23:33:07 +0000
Received: by outflank-mailman (input) for mailman id 844281;
 Tue, 26 Nov 2024 23: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sm-0000At-Dq
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:12 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dc3ccbf-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D25375C5D3C;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 08ACFC4CED2;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id F3EF3D66B9A;
 Tue, 26 Nov 2024 23:21:56 +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: 3dc3ccbf-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNkYzNjY2JmLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzIzLjI1NDg4OSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=70k9tJWzxtakueDep8Z1r6BQFS566Fm/qs8rAVna/Is=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=jJCZv7my8H/3lS+3bdlfiB83uaPSOwCH3+jJeeXZZTOAPn2xwqA6s9B26wCFmxouc
	 dJAeEomRCDXxgvwx+zpUOevdODJ/mohAivCKU9vxU+QiTLq9ppACjw6n8z/UA+dpfK
	 gRYAK4fFaGGlqQs9+31gxr2xaXplzaQQGIgEkP6ZawoZJH0sR3/dUTJBXUGxep1S6t
	 1MCs8hCEeBSIhCMHpzrqZlMl2lf+gFok8tyChn/d/baw4rzCZXeWHndR0BiaFdBOKL
	 lQ1o5TU/hdA3uyoDv9FIgouVQTn8whv/LlRl9i+ukJfUpia2TmnrF89dT8EOzJyPga
	 eRmRO2+OXDyHg==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:13 -0800
Subject: [PATCH 23/36] xen/console: introduce console_owner_domid()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-23-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1498;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=B93paIiJy8o1DGD2n2g3KcZoYn4UUAYMMgdZEki+Vh4=;
 b=a1KLhgIP/wkGHh4LRPTxOwbLhltFvdmll2s4Flx4yZG+kptxLNfIi4RPcJXe1hUfAR75LCSDK
 CPqJbPQrUXiBdavoxzNDPIXzGTnXA1tR5jPRZbungeACqaHpREZ+6Ui
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

console_owner_domid() is introduced to obtain the "console owner" domain ID.

The call is used in NS8250 emulator to identify the case when physical xen
console focus is owned by the domain w/ NS8250 emulator, in which case,
messages from guest OS are formatted w/o '(XEN)' prefix.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 5 +++++
 xen/include/xen/console.h  | 1 +
 2 files changed, 6 insertions(+)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 52cf64dbf6fd18d599cb88835d03501a23b3e3c4..a8ab5c2bcb98e4cadf9ad2c9ad28d297977d0557 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -498,6 +498,11 @@ struct domain *rcu_lock_domain_console_owner(void)
     return rcu_lock_domain_console_by_id(console_owner);
 }
 
+domid_t console_owner_domid(void)
+{
+    return console_owner;
+}
+
 static bool console_owner_possible(domid_t domid)
 {
     struct domain *d;
diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h
index 57c482cfbf2da15b011e64841ea086e779f4588d..83be5794aff6630beaad46f910fcc0fc6d833808 100644
--- a/xen/include/xen/console.h
+++ b/xen/include/xen/console.h
@@ -33,6 +33,7 @@ void console_end_log_everything(void);
 
 struct domain *rcu_lock_domain_console_owner(void);
 int console_set_owner(domid_t);
+domid_t console_owner_domid(void);
 
 /*
  * Steal output from the console. Returns +ve identifier, else -ve error.

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:35:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:35:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844299.1259881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG55p-00013n-1a; Tue, 26 Nov 2024 23:35:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844299.1259881; Tue, 26 Nov 2024 23:35: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 1tG55o-00013g-VB; Tue, 26 Nov 2024 23:35:40 +0000
Received: by outflank-mailman (input) for mailman id 844299;
 Tue, 26 Nov 2024 23:35: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sq-0000At-EH
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:16 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 402dbdde-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:07 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 7DC285C5D1E;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id AC684C4CED2;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id A2F71D66B94;
 Tue, 26 Nov 2024 23:21:56 +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: 402dbdde-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjQwMmRiZGRlLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI3LjMxNjU4Nywic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=EehkYBiOP/PXKJY+PdWeOgafO7LhWK+IAcas/cU+rxo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=brD5/9fb2xAuUirBhFjGTHQOyaRnbK6H/SN3nlnc6TLnkymQMAVupzp+jdzWRxx4u
	 ozETwS51ugRZcEeZVAmEQIrcACKEt9AD1g8IOxVtmNczRcwSFDpqiCkvikBAPttGpi
	 LwxUKCvhsbBxF913fbsCaZ+qiS98SfMOs5i4fhdxfvn4C14Hq7z40b5LO4aYS97ItQ
	 x4ax8U+EfQGHnOzEhLXzOaO8qvHjO7mYzD8MMCv2Qtj+XQ2Lzx3WMmU3puNv3+5OgW
	 GlsOZnMeAtpQqTWtVgxJvTMUf5woCC4OmtO7B4ImYvj9FZ3FOinjGMU709Itsc7mHU
	 4X9yxORAq8oew==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:09 -0800
Subject: [PATCH 19/36] xen/console: introduce printk_common()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-19-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1598;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=ZaoWKGFunF1v2fJrLgskSFgg/fFHSsN+iDoAE6XfT9Q=;
 b=qf1Tso16MB8AZmrXNCz9umrGZGM1ODTNxpZz1C5AlhIFFZtIt51Zk7hm0IXDTzpOaQ21aT1Xy
 Bnsh8vhnpDLD2g2jthBGW9Vj4jFyK4LFbJhtEQZuruPSO9haplPlZcM
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Introduce new printk() variant for convenient printouts which skip '(XEN)'
prefix on xen console. This is needed for the case when physical console is
owned by a domain w/ in-hypervisor UART emulation enabled.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 8 ++++++++
 xen/include/xen/lib.h      | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 86bf899ada8f8221ffc77bcffb1f58777a22198e..f034ce5aab3f3bf59b0df9fa583ee9ce32dbf665 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -968,6 +968,14 @@ void printk(const char *fmt, ...)
     va_end(args);
 }
 
+void printk_common(const char *fmt, ...)
+{
+    va_list args;
+    va_start(args, fmt);
+    vprintk_common("", fmt, args);
+    va_end(args);
+}
+
 void guest_printk(const struct domain *d, const char *fmt, ...)
 {
     va_list args;
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index 81b722ea3e801e9089aaf8758249feb3a758c4f7..8a7ff2e8af9089796ff28ef8d01c00e9845782ca 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -61,6 +61,9 @@ debugtrace_printk(const char *fmt, ...) {}
 extern void printk(const char *fmt, ...)
     __attribute__ ((format (printf, 1, 2), cold));
 
+extern void printk_common(const char *fmt, ...)
+    __attribute__ ((format (printf, 1, 2)));
+
 #define printk_once(fmt, args...)               \
 ({                                              \
     static bool __read_mostly once_;            \

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:37:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:37:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844321.1259891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG57b-00026b-CM; Tue, 26 Nov 2024 23:37:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844321.1259891; Tue, 26 Nov 2024 23:37: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 1tG57b-00026U-9u; Tue, 26 Nov 2024 23:37:31 +0000
Received: by outflank-mailman (input) for mailman id 844321;
 Tue, 26 Nov 2024 23:37: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sl-0000At-De
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:11 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dbb8ddd-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A3A9D5C5D31;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id D1560C4CED0;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id C7F4DD66B97;
 Tue, 26 Nov 2024 23:21:56 +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: 3dbb8ddd-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNkYmI4ZGRkLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzIzLjE1Mzg0NCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=3B9kDEeHN3CLeIVggukm2mQ91O/Gp2h/G9Z0+jViCMU=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=cr5zAvq4k8x3uKM38Jz4HtBTKbGja2wbZmF6XG0K8nudD9IEhghKJJwsatgsvTfgE
	 tOj1Rfjh9QoJCdPcOmeDhUm2Wd0De/OFwNguK0cBTTtaavf2k/w66IycgdSxSjdIjV
	 NO+9OHhmcAd+IDzpqJ1Kv8XPf5fqQvTctp7+O2/aJanmDxonEMsyd7f58t0PAknLUC
	 ZnelYJkaDQjj8W6DdjL7doWjMfxXXMAAtHNBelEcAAGeAuyl6MVK4KMViBu4MG3fAJ
	 k+rRYAp88hHzxdNSB0SDgn7Z1pMxblpYPfs9a8W3ZhVB7yVrGiZMtWfJrq4EdljZGl
	 5his4NKZAjZ2A==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:11 -0800
Subject: [PATCH 21/36] xen/console: introduce use of 'is_console' flag
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-21-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=3376;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=ly2NKmV1rm1k90TAwD4huxu/gpF7eMHcF04jNDfnH2A=;
 b=Adf9/uDabysbO97VQCxegMuFHWIbw+k/X5FX4Vsxz0Y+j/VcL+5URcPHM/jpc4NJZyL8kTyY4
 yGmxTV2nxksDqRPybSI7d7nPcT9HN8BKUfsx8LBkoVWN5+6Gsr2vfOd
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

The code now inspects d->is_console flag to decide whether the console focus
should move to the domain w/ console after administrator presses <Ctrl+aaa>.

To do that max_init_domid is updated in domain_create().

Console owner domain switch logic updated accordingly.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/pv/shim.c     |  2 ++
 xen/common/domain.c        | 14 ++++++++++++++
 xen/drivers/char/console.c | 14 ++++++++++----
 3 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index 17cb30620290c76cf42251f70cfa4199c0e165d1..a55c1d2a1e616f8979677a198eb9caabc3afc6bf 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -238,6 +238,8 @@ void __init pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,
      * guest from depleting the shim memory pool.
      */
     d->max_pages = domain_tot_pages(d);
+
+    d->is_console = true;
 }
 
 static void write_start_info(struct domain *d)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index d8f6829db50dabba7464004b39eea39f6970f800..56f5d3b2031c52d567bfcf839740600320d952e9 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -682,6 +682,8 @@ struct domain *domain_create(domid_t domid,
 
         old_hwdom = hardware_domain;
         hardware_domain = d;
+
+        d->is_console = true;
     }
 
     TRACE_TIME(TRC_DOM0_DOM_ADD, d->domain_id);
@@ -818,6 +820,18 @@ struct domain *domain_create(domid_t domid,
 
     memcpy(d->handle, config->handle, sizeof(d->handle));
 
+    /*
+     * Housekeeping for physical console forwarding to the domain.
+     */
+    if ( !is_system_domain(d) && max_init_domid < domid )
+        max_init_domid = domid;
+
+    /*
+     * NB: flag is already set for PV shim and hardware domain, check whether
+     * virtual UART is present.
+     */
+    d->is_console |= domain_has_vuart(d);
+
     return d;
 
  fail:
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 60c055396b697869b04b9132b0dcfa832fabe932..8cbac54c66044ae8581e486a782102b75c8bfaa9 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1,8 +1,8 @@
 /******************************************************************************
  * console.c
- * 
+ *
  * Emergency console I/O for Xen and the domain-0 guest OS.
- * 
+ *
  * Copyright (c) 2002-2004, K A Fraser.
  *
  * Added printf_ratelimit
@@ -509,14 +509,20 @@ static void console_find_owner(void)
             domid = get_initial_domain_id();
         else
             domid = next_rx - 1;
+
         d = rcu_lock_domain_by_id(domid);
-        if ( d )
+        if ( d == NULL )
+            continue;
+
+        if ( d->is_console )
         {
             rcu_unlock_domain(d);
             console_owner = next_rx;
             printk("*** Serial input to DOM%u", domid);
             break;
         }
+
+        rcu_unlock_domain(d);
     }
 
     if ( switch_code )
@@ -814,7 +820,7 @@ static int printk_prefix_check(char *p, char **pp)
     return ((atomic_read(&print_everything) != 0) ||
             (loglvl < lower_thresh) ||
             ((loglvl < upper_thresh) && printk_ratelimit()));
-} 
+}
 
 static int cf_check parse_console_timestamps(const char *s)
 {

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:37:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:37:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844323.1259902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG57f-0002Nq-Kg; Tue, 26 Nov 2024 23:37:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844323.1259902; Tue, 26 Nov 2024 23:37: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 1tG57f-0002Nj-H2; Tue, 26 Nov 2024 23:37:35 +0000
Received: by outflank-mailman (input) for mailman id 844323;
 Tue, 26 Nov 2024 23: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sn-0000Ao-NE
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:13 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3fc4fba5-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 1F59F5C5D77;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 45451C4CED0;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 3B882D66B8E;
 Tue, 26 Nov 2024 23:21:57 +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: 3fc4fba5-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmYzRmYmE1LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI1LjgxMDY0OCwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=5p7FQirypDNvXa/ADc/A3qm2m9f35PQKXZmP0f/F4yM=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=vPwWjyWIjN/ljcfhd3K4w3gyn1iFmZMe/TRHxFN8DZvVAIz/5prMPhINBiaGqzQZz
	 9uEe5ei3yODyUP9cJ2uVHO6ISEktdurzgm7RNtBS4mULVAWdTDQmBp1WyCpeyQ0XoE
	 QfgnSdSQzQeebIYM4HUrqztxN3OIzzNl1Y7eabDWYKyfNG8SSMbHjZiIDARIilMOCt
	 ahAKkPlpuCK5srsQ0IvgjOyI/mLPDUJT86iwSDM+ZVtsYNQ5lhj1GNZERmjScV8MXV
	 Ke1BRLvORdIaANR5/Wf8mOIniodkcTgkgvU2VMGtnMrvsHkXG4usxTxKLrq1RQex+/
	 Pt9f8eaqqaz4w==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:16 -0800
Subject: [PATCH 26/36] xen/console: introduce console_write()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-26-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=4283;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=mC1dfr4+26P41BllPMG6MZbu9F46btGiiA2X1kH3gME=;
 b=hb4ZH7CsrUUdK9/NkrG9FYu22AqGi/bZMiyvvI9e3EZYIzNKn/vse7pJTCknstGu43n9nc68n
 zegv/33ak9sCf0BS87RJVnZ4f1YoDras7AKDidQNrQtdz43jVQn137A
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

PV Linux kernel uses HYPERVISOR_console_io hypercall for early console which
ends up being handled by Xen's console driver's guest_console_write().

guest_console_write() duplicates the code from __putstr(), elimitate code
duplication.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 94 ++++++++++++++++++++++++----------------------
 1 file changed, 50 insertions(+), 44 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 4439e00763631969767719053cdc81e67c2cda2c..3d8d3c852e69d8fddd1d978fdd8932eb75551f25 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -665,6 +665,19 @@ static void cf_check notify_dom0_con_ring(void *unused)
 static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
                                notify_dom0_con_ring, NULL);
 
+static bool console_locks_busted;
+
+static void conring_write(const char *str, size_t len)
+{
+    if ( opt_console_to_ring )
+    {
+        conring_puts(str, len);
+
+        if ( !console_locks_busted )
+            tasklet_schedule(&notify_dom0_con_ring_tasklet);
+    }
+}
+
 #ifdef CONFIG_X86
 static inline void xen_console_write_debug_port(const char *buf, size_t len)
 {
@@ -673,8 +686,43 @@ static inline void xen_console_write_debug_port(const char *buf, size_t len)
                    : "=&S" (tmp), "=&c" (tmp)
                    : "0" (buf), "1" (len), "d" (XEN_HVM_DEBUGCONS_IOPORT) );
 }
+
+static void xen_console_write(const char *str, size_t len)
+{
+    if ( opt_console_xen )
+    {
+        if ( xen_guest )
+            xen_hypercall_console_write(str, len);
+        else
+            xen_console_write_debug_port(str, len);
+    }
+}
+#else
+static void xen_console_write(const char *str, size_t len)
+{
+}
 #endif
 
+/*
+ * Write characters to console.
+ *
+ * That will handle all possible scenarios working w/ console
+ * - serial console;
+ * - video output;
+ * - __HYPERVISOR_console_io hypercall (x86 only);
+ * - debug I/O port (x86 only);
+ * - forward to Xen event channel.
+ */
+static void console_write(const char *str, size_t len)
+{
+    ASSERT(rspin_is_locked(&console_lock));
+
+    console_serial_puts(str, len);
+    video_puts(str, len);
+    xen_console_write(str, len);
+    conring_write(str, len);
+}
+
 static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
                                 unsigned int count)
 {
@@ -695,28 +743,8 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
 
         if ( is_hardware_domain(cd) )
         {
-            /* Use direct console output as it could be interactive */
             nrspin_lock_irq(&console_lock);
-
-            console_serial_puts(kbuf, kcount);
-            video_puts(kbuf, kcount);
-
-#ifdef CONFIG_X86
-            if ( opt_console_xen )
-            {
-                if ( xen_guest )
-                    xen_hypercall_console_write(kbuf, kcount);
-                else
-                    xen_console_write_debug_port(kbuf, kcount);
-            }
-#endif
-
-            if ( opt_console_to_ring )
-            {
-                conring_puts(kbuf, kcount);
-                tasklet_schedule(&notify_dom0_con_ring_tasklet);
-            }
-
+            console_write(kbuf, kcount);
             nrspin_unlock_irq(&console_lock);
         }
         else
@@ -817,31 +845,9 @@ long do_console_io(
  * *****************************************************
  */
 
-static bool console_locks_busted;
-
 static void __putstr(const char *str)
 {
-    size_t len = strlen(str);
-
-    ASSERT(rspin_is_locked(&console_lock));
-
-    console_serial_puts(str, len);
-    video_puts(str, len);
-
-#ifdef CONFIG_X86
-    if ( opt_console_xen )
-    {
-        if ( xen_guest )
-            xen_hypercall_console_write(str, len);
-        else
-            xen_console_write_debug_port(str, len);
-    }
-#endif
-
-    conring_puts(str, len);
-
-    if ( !console_locks_busted )
-        tasklet_schedule(&notify_dom0_con_ring_tasklet);
+    console_write(str, strlen(str));
 }
 
 static int printk_prefix_check(char *p, char **pp)

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:38:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844341.1259913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG589-0003Bb-TP; Tue, 26 Nov 2024 23:38:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844341.1259913; Tue, 26 Nov 2024 23: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 1tG589-0003BU-PF; Tue, 26 Nov 2024 23:38:05 +0000
Received: by outflank-mailman (input) for mailman id 844341;
 Tue, 26 Nov 2024 23: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4so-0000At-E6
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:14 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f621fc5-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id DD2565C5DA1;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 12E37C4CED8;
 Tue, 26 Nov 2024 23:21:58 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 08948D66B9A;
 Tue, 26 Nov 2024 23:21:58 +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: 3f621fc5-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmNjIxZmM1LWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI1Ljk4NTY5OSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663318;
	bh=rm9Rfw2X1emp+k6O3Rfqq3jQzpQZEqHAsm70LmgQdN8=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=fC+fp3S/a4J15BEcEE3UUNrNN0fMF1o8trNXlcTxvSUnRdG91DwKePim4+MCu9ttd
	 bq3sOodnYYTxRoQCAhcykn2MCu6u3qY1mAyTpcrVohK/sqAN47y3KWvsCmuI9B4iAM
	 gZZlV9oUKQuvQj7ZRse5ZBumkeMZzb5v6+6aAoy/JRnIocJz/ivk5Z2H3D728H1q7u
	 dMPDZ94fw2HQ+Pyqg4Vrh60Gpv2mx6mMFMkJo1l+bthtPbqq98iqLI/lQptrCMbemk
	 WXxPVc5Pzj2vkD+WOzvRVrik7VP6AWfOoWgHO9YBRDiKxdBh1snqsYCzLkyp8S4Z2x
	 isEkFAvIINWBw==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:25 -0800
Subject: [PATCH 35/36] xen/console: enable console owners w/ emulated
 NS8250
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-35-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=1133;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=WQSeR36nIyjmpuQo8H1p9/NbRUrGXqQm6ZbcYesml3s=;
 b=CpDYEchPnsqpvivWMdQylePfQPuJSv0/SjOEWfua7YW9lLt1hgiNJ6VsfmU5JHvY35yc3Ople
 waiIIpFcbLcC2C5el3B47d6MtywojYP1vjZQlm+z48MSNaddZKt8lgp
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Enable console focus for domains w/ virtual NS8250.

Code change allows to capture the output from the guest OS now and send it to
the physical console device.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 24a8263045b0e5ecf901d08e627f34a80edd297d..54595b486b9761d0a17831b95481f2fa9bdcfcc7 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -41,6 +41,9 @@
 #ifdef CONFIG_SBSA_VUART_CONSOLE
 #include <asm/vpl011.h>
 #endif
+#if defined(CONFIG_HAS_VUART_NS8250)
+#include <asm/hvm/vuart_ns8250.h>
+#endif
 
 /* console: comma-separated list of console outputs. */
 static char __initdata opt_console[30] = OPT_CONSOLE_STR;
@@ -581,6 +584,8 @@ static void handle_keypress_in_domain(struct domain *d, char c)
     {
 #if defined(CONFIG_SBSA_VUART_CONSOLE)
         rc = vpl011_rx_char_xen(d, c);
+#elif defined(CONFIG_HAS_VUART_NS8250)
+        rc = vuart_putchar(&d->arch.hvm.vuart, c);
 #endif
     }
     /*

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:38:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844355.1259921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG58X-0003qG-7b; Tue, 26 Nov 2024 23:38:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844355.1259921; Tue, 26 Nov 2024 23:38: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 1tG58X-0003q9-4H; Tue, 26 Nov 2024 23:38:29 +0000
Received: by outflank-mailman (input) for mailman id 844355;
 Tue, 26 Nov 2024 23:38: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sn-0000At-E0
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:13 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dbddc90-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:02 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BDF735C5D37;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id E73D3C4CED3;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id DB2FED66B94;
 Tue, 26 Nov 2024 23:21:56 +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: 3dbddc90-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNkYmRkYzkwLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzIzLjE4OTI5Niwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=Msd9ALOQsKWgqYjqZp3vEbU4YxKp+IL/6j5doF/TX4s=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=EjGuXXXvARbSkfc9IeVFfmDHBQewfsHXB2SXcmmGhSEvXVTaV5iWWdnXzabgyJMwH
	 +B5r5Dapx/vEoY/eyz5JhORRlBsB0xnQ2a8FoW5puADacIjjtYIyGkiLIhNX0HjDVC
	 FGkTol8ab/a+6vKnUS41q9cGlMb7mjKysuc2cBgm3N4lzTYJX30pRJko+rhXJfcGYt
	 Jj4SZkbqShKLlqH01xPdfnHWxkxZmXo8hYKCjcawD/AMa7gR9MxMJ7XEfM0gASX3E7
	 dNFMElmgkVxhKRPxT/vr/jXLwNXBsQBhZsjfCtbRCdQY63rpKkATQiAhj3RupE5tkt
	 rldH3hv+7xf/Q==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:12 -0800
Subject: [PATCH 22/36] xen/console: introduce console_set_owner()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-22-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=6105;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=LaoLtTtPVB803Wx66ywoNWCuGefL+9P7BcXWkOi4Ttw=;
 b=4lK/8BHVyfy3woSRpKh5PM02ENnqP+ItqkfEgYigMPj6lRFJWcPJsSQvqyG1yASQpUrz6O30O
 flL6r/RmuUgA0bIlRawQx23oGAn7Yvbn6WD6FIZY6jvjVBKaIN+E4lv
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

console_set_owner() is introduced for setting the new console owner.

Switches console owner to domain ID vs range of integer numbers mapped to
domain IDs.

This a public API to console driver, will be used in the follow on code change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 122 ++++++++++++++++++++++++++-------------------
 xen/include/xen/console.h  |   1 +
 2 files changed, 71 insertions(+), 52 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 8cbac54c66044ae8581e486a782102b75c8bfaa9..52cf64dbf6fd18d599cb88835d03501a23b3e3c4 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -463,82 +463,100 @@ static void cf_check dump_console_ring_key(unsigned char key)
 
 /*
  * CTRL-<switch_char> changes input direction, rotating among Xen, Dom0,
- * and the DomUs started from Xen at boot.
+ * and the DomUs.
  */
 #define switch_code (opt_conswitch[0]-'a'+1)
+
 /*
- * console_owner=0 => input to xen
- * console_owner=1 => input to dom0 (or the sole shim domain)
- * console_owner=N => input to dom(N-1)
+ * Current console owner domain ID: either Xen or domain w/ d->is_console ==
+ * true.
+ *
+ * Initialized in console_endboot().
  */
-static unsigned int __read_mostly console_owner = 0;
+static domid_t __read_mostly console_owner;
 
-#define max_console_rx (max_init_domid + 1)
+static struct domain *rcu_lock_domain_console_by_id(domid_t domid)
+{
+    struct domain *d;
+
+    d = rcu_lock_domain_by_id(domid);
+
+    if ( d == NULL )
+        return NULL;
+
+    if ( d->is_console )
+        return d;
+
+    rcu_unlock_domain(d);
+
+    return NULL;
+}
 
-#ifdef CONFIG_SBSA_VUART_CONSOLE
 /* Make sure to rcu_unlock_domain after use */
 struct domain *rcu_lock_domain_console_owner(void)
 {
-    if ( console_owner == 0 )
-            return NULL;
-    return rcu_lock_domain_by_id(console_owner - 1);
+    return rcu_lock_domain_console_by_id(console_owner);
 }
-#endif
 
-static void console_find_owner(void)
+static bool console_owner_possible(domid_t domid)
 {
-    unsigned int next_rx = console_owner;
-
-    /*
-     * Rotate among Xen, dom0 and boot-time created domUs while skipping
-     * switching serial input to non existing domains.
-     */
-    for ( ; ; )
-    {
-        domid_t domid;
-        struct domain *d;
-
-        if ( next_rx++ >= max_console_rx )
-        {
-            console_owner = 0;
-            printk("*** Serial input to Xen");
-            break;
-        }
-
-        if ( consoled_is_enabled() && next_rx == 1 )
-            domid = get_initial_domain_id();
-        else
-            domid = next_rx - 1;
-
-        d = rcu_lock_domain_by_id(domid);
-        if ( d == NULL )
-            continue;
-
-        if ( d->is_console )
-        {
-            rcu_unlock_domain(d);
-            console_owner = next_rx;
-            printk("*** Serial input to DOM%u", domid);
-            break;
-        }
+    struct domain *d;
 
+    d = rcu_lock_domain_console_by_id(domid);
+    if ( d != NULL )
         rcu_unlock_domain(d);
-    }
+
+    return d != NULL;
+}
+
+int console_set_owner(domid_t domid)
+{
+    if ( domid == DOMID_XEN )
+        printk("*** Serial input to Xen");
+    else if ( console_owner_possible(domid) )
+        printk("*** Serial input to DOM%u", domid);
+    else
+        return -ENOENT;
+
+    console_owner = domid;
 
     if ( switch_code )
         printk(" (type 'CTRL-%c' three times to switch input)",
                opt_conswitch[0]);
     printk("\n");
+
+    return 0;
+}
+
+/*
+ * Switch console input focus.
+ * Rotates input focus among Xen, dom0 and boot-time created domUs while
+ * skipping switching serial input to non existing domains.
+ */
+static void console_find_owner(void)
+{
+    domid_t i, n = max_init_domid + 1;
+
+    if ( console_owner == DOMID_XEN )
+        i = get_initial_domain_id();
+    else
+        i = console_owner + 1;
+
+    for ( ; i < n; i++ )
+        if ( !console_set_owner(i) )
+            break;
+    if ( i == n )
+        console_set_owner(DOMID_XEN);
 }
 
 static void __serial_rx(char c)
 {
     switch ( console_owner )
     {
-    case 0:
+    case DOMID_XEN:
         return handle_keypress(c, false);
 
-    case 1:
+    case 0:
         /*
          * Deliver input to the hardware domain buffer, unless it is
          * already full.
@@ -556,7 +574,7 @@ static void __serial_rx(char c)
 #ifdef CONFIG_SBSA_VUART_CONSOLE
     default:
     {
-        struct domain *d = rcu_lock_domain_by_id(console_owner - 1);
+        struct domain *d = rcu_lock_domain_by_id(console_owner);
 
         /*
          * If we have a properly initialized vpl011 console for the
@@ -567,7 +585,7 @@ static void __serial_rx(char c)
             vpl011_rx_char_xen(d, c);
         else
             printk("Cannot send chars to Dom%d: no UART available\n",
-                   console_owner - 1);
+                   console_owner);
 
         if ( d != NULL )
             rcu_unlock_domain(d);
@@ -1126,7 +1144,7 @@ void __init console_endboot(void)
      * a useful 'how to switch' message.
      */
     if ( opt_conswitch[1] == 'x' )
-        console_owner = max_console_rx;
+        console_owner = DOMID_XEN;
 
     register_keyhandler('w', dump_console_ring_key,
                         "synchronously dump console ring buffer (dmesg)", 0);
diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h
index 0e211e44d9703c804e18f52c9743916f8d2a9d4e..57c482cfbf2da15b011e64841ea086e779f4588d 100644
--- a/xen/include/xen/console.h
+++ b/xen/include/xen/console.h
@@ -32,6 +32,7 @@ void console_start_log_everything(void);
 void console_end_log_everything(void);
 
 struct domain *rcu_lock_domain_console_owner(void);
+int console_set_owner(domid_t);
 
 /*
  * Steal output from the console. Returns +ve identifier, else -ve error.

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:39:02 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:39:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844364.1259931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG593-0004bW-Fy; Tue, 26 Nov 2024 23:39:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844364.1259931; Tue, 26 Nov 2024 23:39: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 1tG593-0004bP-DV; Tue, 26 Nov 2024 23:39:01 +0000
Received: by outflank-mailman (input) for mailman id 844364;
 Tue, 26 Nov 2024 23:38: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4so-0000Ao-NJ
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:14 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f92f938-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4F80A5C5D8A;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 778B7C4CEDB;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 6B238D66B94;
 Tue, 26 Nov 2024 23:21:57 +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: 3f92f938-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmOTJmOTM4LWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI2LjMyOTA4MSwic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=lj/mfdQca1gsUrIVD1+Z6uLYfT5KncbYzGoRr8znGg8=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=lTwL1lLxHQLzdkVdjZUQ3xsKci5v5odyqqMyYMPKv3tGFO3xyeaHNrTYTvvtLdsdK
	 Kvynjxx6BZtaBegtDmSZtYTY23fGx7Dt5weqMf6lE74dy6l2w+E91Ebvl5TFhS3Kbx
	 zusPn0uPxT+H1hzK6yPJdbOlyQI9y3tNoRHN3lwCd+cFp3qftklpB8Zvp98Y0kNlhe
	 puSPncppxvOf7Dv0QwqjN88qOQ3W0KeYfaxfyZKqzlsQ1SONSpcu38a5jctu0NTTVZ
	 39nl21KByRFDIWOh4Eh6lZcueLdEpYChXKnnTzrXr8tBtztdD2igoy0gZLPNDH1riC
	 S05WRt+GoBeKw==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:19 -0800
Subject: [PATCH 29/36] xen/console: make console buffer size configurable
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-29-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=2270;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=AKwyQAvwjj+wQmu1WwmpWDVO3KxHtjslwmqsRTzrAD0=;
 b=2HaC4h5V7Nqz/P9NOv91yjhDKAIlxkFFwtZ/HQqHYBGIHO0FUCz24w2vidaasH3dA1AmaxlAe
 FHROVQWFA36AM3r9ufqu45LJzuW/14PyrFrvxk30PhdkkGk/KDETzzI
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Add new CONRING_LOG_SHIFT Kconfig parameter to specify the boot console buffer
size as a power of 2.

Bump default size to 32 KiB.

Link: https://gitlab.com/xen-project/xen/-/issues/185
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/Kconfig   | 23 +++++++++++++++++++++++
 xen/drivers/char/console.c |  4 ++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index e175d07c022b051c5af4e689061adba72f9b54a0..2c754545cf05e740bd3d59d88de464f3653fb68e 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -93,6 +93,29 @@ config SERIAL_TX_BUFSIZE
 
 	  Default value is 32768 (32KiB).
 
+config CONRING_LOG_SHIFT
+	int "Console buffer size"
+	range 14 25
+	default 15
+	help
+	  Select the boot console buffer size as a power of 2.
+	  Run-time console buffer size is the same as the boot console size,
+	  unless enforced via 'conring_size=' boot parameter.
+
+	  Examples:
+	    25 =>  32 MiB
+	    24 =>  16 MiB
+	    23 =>   8 MiB
+	    22 =>   4 MiB
+	    21 =>   2 MiB
+	    20 =>   1 MiB
+	    19 => 512 KiB
+	    18 => 256 KiB
+	    17 => 128 KiB
+	    16 =>  64 KiB
+	    15 =>  32 KiB
+	    14 =>  16 KiB
+
 config XHCI
 	bool "XHCI DbC UART driver"
 	depends on X86
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 9f67ecb26f5ab1183d17c83631a17b45cfefd5ab..24a8263045b0e5ecf901d08e627f34a80edd297d 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -102,11 +102,11 @@ static int cf_check parse_console_timestamps(const char *s);
 custom_runtime_param("console_timestamps", parse_console_timestamps,
                      con_timestamp_mode_upd);
 
-/* conring_size: allows a large console ring than default (16kB). */
+/* conring_size: allows a large console ring than default (32 KiB). */
 static uint32_t __initdata opt_conring_size;
 size_param("conring_size", opt_conring_size);
 
-#define _CONRING_SIZE 16384
+#define _CONRING_SIZE       (1U << CONFIG_CONRING_LOG_SHIFT)
 #define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
 static char __initdata _conring[_CONRING_SIZE];
 static char *__read_mostly conring = _conring;

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:39:08 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:39:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844368.1259942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG599-0004uU-OH; Tue, 26 Nov 2024 23:39:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844368.1259942; Tue, 26 Nov 2024 23:39: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 1tG599-0004uL-LH; Tue, 26 Nov 2024 23:39:07 +0000
Received: by outflank-mailman (input) for mailman id 844368;
 Tue, 26 Nov 2024 23:39: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4sq-0000Ao-NR
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:16 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f67f983-ac4d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 00:22:04 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A5F395C5C0F;
 Tue, 26 Nov 2024 23:21:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id D40ABC4CED9;
 Tue, 26 Nov 2024 23:21:57 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id C85A3D66B8E;
 Tue, 26 Nov 2024 23:21:57 +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: 3f67f983-ac4d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjNmNjdmOTgzLWFjNGQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjYzMzI1LjIwODEzNywic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663317;
	bh=/g2cVTZs4029JT6EU7g6V/nqyM2bmw6nhq5P6qlv7vQ=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=Xj9/fqjVvD4Y9quSyk6lRCUKC2P3WFyqLi03uL/hekoIcEl17OSB4+21lmWmdeG+a
	 VKB1gDlG8OaYZohhjLAkg7gVwkFXUHEVqEePm5XN6Mf1TfyVd2EWgp1zQKZiKWmEGa
	 FU/pvTqro68ot6DZESlIRIGld1lC6Ae3twN7VUD5vNQqMI+dG2/hcHggJGoSAMgZpD
	 NwZHT7Hg3RWB/dx9hVswU8IFYxiFwzZjL2gjbdBocryZvuV1FFXcguK6lRai7YPrvM
	 hVZXyiYBhPbzR8fIdq3RzGwDOGenVSCdq3dEv7fYv6u9jdvkpPnu+0FSAfxDFcQ0t7
	 PWdwkUqt7/Wew==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:23 -0800
Subject: [PATCH 33/36] x86/hvm: introduce NS8250 UART emulator
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-33-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=33587;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=2mX8SbJHihzdfjvm3RXQXDQVhou/2iajvHj4uEds9xA=;
 b=gWhbfCPeAzsX9QeqHQr0sm6S0gDzWQDK+7IsDJLXHvr6Y6vWGGdoDUiCHJkFLmLXfwJcfAEtZ
 xXRIKBEVaV+BlPlJW1XpSYhxb/LvV860J78+QOI9wzt7FQIPCuxJmK1
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Add initial in-hypervisor emulator for NS8250/NS16x50-compatible UARTs under
CONFIG_HAS_VUART_NS8250.

In parallel domain creation scenario (hyperlaunch), NS8520 emulator helps
early guest OS bringup debugging, because it eliminates dependency on the
external emulator being operational by the time domains are created. Also,
there's no early console facility similar to vpl011 to support x86 guest OS
bring up.

By default, CONFIG_HAS_VUART_NS8250 enables emulatio of NS8250 at I/O port
0x3f8, IRQ#4 in guest OS.

Limitations:
- Only x86;
- Only Linux guest tested so far;
- Only legacy COM{1,2,3,4} resources, no customization;
- Only Xen console as a backend, no inter-domain communication (similar to
  vpl011 on Arm);
- Only 8-bit characters;
- Baud rate is not emulated;
- FIFO-less mode is not emulated properly;
- RX FIFO interrupt moderation (FCR) is not emulated properly, TL16C750
  has special FCR handling;
- No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
  friends);
- Assumes no ISA-device IRQ sharing;
- MMIO-based UART is not supported.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/hvm/Kconfig                    |   14 +
 xen/arch/x86/hvm/Makefile                   |    1 +
 xen/arch/x86/hvm/hvm.c                      |    7 +
 xen/arch/x86/hvm/vuart_ns8250.c             | 1012 +++++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/domain.h       |    5 +
 xen/arch/x86/include/asm/hvm/vuart_ns8250.h |   75 ++
 6 files changed, 1114 insertions(+)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 361bb6572e633f3cf0fc972a3b391e8341c33361..af6e698b8be0d82af94b00c0cfdaf9a2bc24b154 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -61,3 +61,17 @@ config HVM_FEP
 	  for use in production.
 
 	  If unsure, say N.
+
+config HAS_VUART_NS8250
+	bool "NS8250-compatible UART Emulation"
+	depends on HVM && HAS_IOPORTS
+	default n
+	help
+	  In-hypervisor NS8250/NS16x50 UART emulation.
+
+	  Only legacy PC I/O ports are emulated.
+
+	  This is strictly for testing purposes (early HVM guest console), and not
+	  appropriate for use in production.
+
+	  If unsure, say N.
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 4c1fa5c6c2bf75d336b39f343241bfced5b91b09..14761435e0694109f815da63289666c0f1cbf0ce 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -29,3 +29,4 @@ obj-y += vm_event.o
 obj-y += vmsi.o
 obj-y += vpic.o
 obj-y += vpt.o
+obj-$(CONFIG_HAS_VUART_NS8250) += vuart_ns8250.o
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 493b699c708949b2109c26573a107565543f5d45..9449b5005e49c456069fdb256b0d0a8e168fc97f 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -55,6 +55,7 @@
 #include <asm/hvm/monitor.h>
 #include <asm/hvm/viridian.h>
 #include <asm/hvm/vm_event.h>
+#include <asm/hvm/vuart_ns8250.h>
 #include <asm/altp2m.h>
 #include <asm/mtrr.h>
 #include <asm/apic.h>
@@ -679,6 +680,10 @@ int hvm_domain_initialise(struct domain *d,
     if ( rc != 0 )
         goto fail1;
 
+    rc = domain_vuart_init(d);
+    if ( rc != 0 && rc != -ENODEV )
+        goto out_vioapic_deinit;
+
     stdvga_init(d);
 
     rtc_init(d);
@@ -699,6 +704,8 @@ int hvm_domain_initialise(struct domain *d,
     return 0;
 
  fail2:
+    domain_vuart_free(d);
+ out_vioapic_deinit:
     vioapic_deinit(d);
  fail1:
     if ( is_hardware_domain(d) )
diff --git a/xen/arch/x86/hvm/vuart_ns8250.c b/xen/arch/x86/hvm/vuart_ns8250.c
new file mode 100644
index 0000000000000000000000000000000000000000..ecf89ce7159d273597b652ab27f8a1c27ac41af0
--- /dev/null
+++ b/xen/arch/x86/hvm/vuart_ns8250.c
@@ -0,0 +1,1012 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * NS8250-compatible UART Emulator.
+ *
+ * Limitations:
+ * - Only x86;
+ * - Only Linux guest tested so far;
+ * - Only legacy COM{1,2,3,4} resources, no customization;
+ * - Only Xen console as a backend, no inter-domain communication (similar to
+ *   vpl011 on Arm);
+ * - Only 8-bit characters;
+ * - Baud rate is not emulated;
+ * - FIFO-less mode is not emulated properly;
+ * - RX FIFO interrupt moderation (FCR) is not emulated properly, TL16C750
+ *   has special FCR handling;
+ * - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
+ *   friends);
+ * - Assumes no ISA-device IRQ sharing;
+ * - MMIO-based UART is not supported;
+ * - PCI UART is not supported.
+ *
+ * See:
+ * - Serial and UART Tutorial:
+ *     https://download.freebsd.org/doc/en/articles/serial-uart/serial-uart_en.pdf
+ * - UART w/ 16 byte FIFO:
+ *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
+ * - UART w/ 64 byte FIFO:
+ *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
+ */
+
+#define pr_fmt(fmt)         "ns8250: " fmt
+#define pr_log_level        hvm_ns8250_log_level
+
+/* Development debugging */
+#define NS8250_LOG_LEVEL    0
+#undef NS8250_DEBUG
+
+#include <xen/types.h>
+#include <xen/event.h>
+#include <xen/lib.h>
+#include <xen/errno.h>
+#include <xen/sched.h>
+#include <xen/trace.h>
+#include <xen/resource.h>
+#include <xen/ctype.h>
+#include <xen/param.h>
+#if defined(NS8250_DEBUG)
+#include <xen/keyhandler.h>
+#endif
+#include <xen/console.h> /* console_input_domid() */
+#include <asm/setup.h>   /* max_init_domid */
+#include <asm/iocap.h>
+#include <asm/hvm/hvm.h>
+#include <asm/hvm/io.h>
+#include <asm/hvm/vuart_ns8250.h>
+
+#if !defined(pr_fmt)
+#define pr_fmt(fmt) fmt
+#endif
+
+#if !defined(pr_log_level)
+#define pr_log_level 0
+#endif
+
+#define pr_err(fmt, args...) \
+    gprintk(KERN_ERR, pr_fmt(fmt), ## args)
+#define pr_warn(fmt, args...) \
+    if (pr_log_level) gprintk(KERN_WARNING, pr_fmt(fmt), ## args)
+#define pr_info(fmt, args...) \
+    if (pr_log_level) gprintk(KERN_INFO, pr_fmt(fmt), ## args)
+#define pr_debug(fmt, args...) \
+    if (pr_log_level) gprintk(KERN_DEBUG, pr_fmt(fmt), ## args)
+
+/*
+ * NS8250 emulator state machine logging (development only)
+ * FIXME: use similar to parse_guest_loglvl()
+ */
+static unsigned int __read_mostly hvm_ns8250_log_level = NS8250_LOG_LEVEL;
+integer_param("hvm.ns8250.log_level", hvm_ns8250_log_level);
+
+/*
+ * Default emulated NS8250 resources.
+ * If not specified, COM1 (I/O port 0x3f8, IRQ#4) is emulated.
+ * FIXME: follow Linux'es console= syntax or re-use
+ * ns16550_parse_port_config().
+ */
+static char __read_mostly hvm_ns8250_console[64];
+string_param("hvm.ns8250.console", hvm_ns8250_console);
+
+/* I/O access mask */
+static const uint32_t iosize_mask[] = {
+    [0] = 0X00000000ULL,
+    [1] = 0X000000FFULL,
+    [2] = 0X0000FFFFULL,
+    [4] = 0XFFFFFFFFULL,
+};
+
+/*
+ * Legacy IBM PC NS8250 resources.
+ * There are only 4 I/O port ranges, hardcoding all of them here.
+ */
+static const struct {
+    const char *name;
+    const struct resource *res;
+} ns8250_x86_legacy_uarts[4] = {
+    [0] = {
+        .name = "com1",
+        .res = (const struct resource[]){
+            { .type = IORESOURCE_IO,  .addr = 0x3F8, .size = UART_MAX },
+            { .type = IORESOURCE_IRQ, .addr = 4,     .size = 1 },
+            { .type = IORESOURCE_UNKNOWN },
+        },
+    },
+    [1] = {
+        .name = "com2",
+        .res = (const struct resource[]){
+            { .type = IORESOURCE_IO,  .addr = 0x2F8, .size = UART_MAX },
+            { .type = IORESOURCE_IRQ, .addr = 3,     .size = 1 },
+            { .type = IORESOURCE_UNKNOWN },
+        },
+    },
+    [2] = {
+        .name = "com3",
+        .res = (const struct resource[]){
+            { .type = IORESOURCE_IO,  .addr = 0x3E8, .size = UART_MAX },
+            { .type = IORESOURCE_IRQ, .addr = 4,     .size = 1 },
+            { .type = IORESOURCE_UNKNOWN },
+        },
+    },
+    [3] = {
+        .name = "com4",
+        .res = (const struct resource[]){
+            { .type = IORESOURCE_IO,  .addr = 0x2E8, .size = UART_MAX },
+            { .type = IORESOURCE_IRQ, .addr = 3,     .size = 1 },
+            { .type = IORESOURCE_UNKNOWN },
+        },
+    },
+};
+
+static bool ns8250_fifo_rx_empty(struct vuart_ns8250 *vdev)
+{
+    struct xencons_interface *cons = vdev->cons;
+
+    return cons->in_prod == cons->in_cons;
+}
+
+static bool ns8250_fifo_rx_full(struct vuart_ns8250 *vdev)
+{
+    struct xencons_interface *cons = vdev->cons;
+
+    return cons->in_prod - cons->in_cons == sizeof(cons->in);
+}
+
+static void ns8250_fifo_rx_reset(struct vuart_ns8250 *vdev)
+{
+    struct xencons_interface *cons = vdev->cons;
+
+    cons->in_cons = cons->in_prod;
+}
+
+static int ns8250_fifo_rx_getchar(struct vuart_ns8250 *vdev)
+{
+    struct xencons_interface *cons = vdev->cons;
+    int rc = -1;
+
+    if ( !ns8250_fifo_rx_empty(vdev) )
+    {
+        rc = cons->in[MASK_XENCONS_IDX(cons->in_cons, cons->in)];
+        cons->in_cons++;
+    }
+
+    return rc;
+}
+
+static int ns8250_fifo_rx_putchar(struct vuart_ns8250 *vdev, char c)
+{
+    struct xencons_interface *cons = vdev->cons;
+    int rc = 0;
+
+    /*
+     * FIFO-less 8250/16450 UARTs: newly arrived word overwrites the contents
+     * of the THR.
+     */
+    if ( ns8250_fifo_rx_full(vdev) )
+    {
+        ns8250_fifo_rx_reset(vdev);
+        rc = -ENOSPC;
+    }
+
+    cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)] = c;
+    cons->in_prod++;
+
+    return rc;
+}
+
+/*
+ * Flush cached output to Xen console.
+ * Can be called from ns8250_exit().
+ */
+static void ns8250_fifo_tx_reset(struct vuart_ns8250 *vdev)
+{
+    struct xencons_interface *cons = vdev->cons;
+
+    if ( cons->out_prod == 0 )
+        return;
+
+    cons->out[cons->out_prod++] = '\0';
+
+    /*
+     * NB: do not show domain ID if the domain owning the virtual UART also
+     * owns Xen input console.
+     */
+    if ( vdev->owner->domain_id == console_owner_domid() )
+        printk_common("%s", cons->out);
+    else
+        guest_printk(vdev->owner, "%s", cons->out);
+
+    cons->out_prod = 0;
+}
+
+/*
+ * Send a character to Xen console.
+ */
+static void ns8250_fifo_tx_putchar(struct vuart_ns8250 *vdev, char ch)
+{
+    struct xencons_interface *cons = vdev->cons;
+
+    if ( !isconsole(ch) )
+        return;
+
+    cons->out[cons->out_prod] = ch;
+    cons->out_prod++;
+
+    if ( cons->out_prod == ARRAY_SIZE(cons->out) - 1
+            || ch == '\n' || ch == '\0' )
+        ns8250_fifo_tx_reset(vdev);
+}
+
+static bool ns8250_iir_check_lsi(struct vuart_ns8250 *vdev)
+{
+    return  !!( vdev->regs[UART_LSR] & UART_LSR_MASK );
+}
+
+static bool ns8250_iir_check_rda(struct vuart_ns8250 *vdev)
+{
+    return !ns8250_fifo_rx_empty(vdev);
+}
+
+static bool ns8250_iir_check_thr(struct vuart_ns8250 *vdev)
+{
+    return !!( vdev->flags & NS8250_IRQ_THRE_PENDING );
+}
+
+static bool ns8250_iir_check_msi(struct vuart_ns8250 *vdev)
+{
+    return !!( vdev->regs[UART_MSR] & UART_MSR_DELTA );
+}
+
+/*
+ * Interrupt identity reasons by priority.
+ * NB: highest priority are at lower indexes.
+ */
+static const struct {
+    uint8_t ier_mask;
+    uint8_t iir_mask;
+    bool (*iir_check)(struct vuart_ns8250 *vdev);
+} iir_by_prio[] = {
+    [0] = { UART_IER_ELSI,   UART_IIR_LSI, ns8250_iir_check_lsi },
+    [1] = { UART_IER_ERDAI,  UART_IIR_RDA, ns8250_iir_check_rda },
+    [2] = { UART_IER_ETHREI, UART_IIR_THR, ns8250_iir_check_thr },
+    [3] = { UART_IER_EMSI,   UART_IIR_MSI, ns8250_iir_check_msi },
+};
+
+/*
+ * Define the interrupt identity reason.
+ * NB: NS8250 always reports high priority events first.
+ */
+static uint8_t ns8250_irq_reason(struct vuart_ns8250 *vdev)
+{
+    int i;
+
+    ASSERT( spin_is_locked(&vdev->lock) );
+    for ( i = 0; i < ARRAY_SIZE(iir_by_prio); i++ )
+    {
+        if ( (vdev->regs[UART_IER] & iir_by_prio[i].ier_mask)
+                && iir_by_prio[i].iir_check(vdev) )
+            return iir_by_prio[i].iir_mask;
+    }
+
+    return UART_IIR_NOINT;
+}
+
+/*
+ * Assert virtual NS8250 interrupt line.
+ */
+static void ns8250_irq_assert(struct vuart_ns8250 *vdev)
+{
+    uint8_t iir;
+
+    iir = ns8250_irq_reason(vdev);
+    if (iir & UART_IIR_NOINT)
+        hvm_irq_lower(vdev->owner, vdev->irq);
+    else
+        hvm_irq_raise(vdev->owner, vdev->irq);
+
+    pr_debug("IRQ#%d %x %s\n", vdev->irq, iir,
+            !!(iir & UART_IIR_NOINT) ? "lower" : "raise");
+}
+
+/*
+ * Emulate 8-bit write access to NS8250 register.
+ */
+static int ns8250_io_write8(
+    struct vuart_ns8250 *vdev, uint32_t reg, uint8_t *data)
+{
+    uint8_t msr_delta;
+    uint8_t msr;
+    uint8_t val;
+    int rc = 0;
+
+    val = *data;
+
+    switch ( reg )
+    {
+    /* DLAB=0 */
+    case UART_THR:
+        if ( vdev->regs[UART_MCR] & UART_MCR_LOOP )
+        {
+            ns8250_fifo_rx_putchar(vdev, val);
+            vdev->regs[UART_LSR] |= UART_LSR_OE;
+        }
+        else
+            ns8250_fifo_tx_putchar(vdev, val);
+
+        vdev->flags |= NS8250_IRQ_THRE_PENDING;
+
+        break;
+
+    case UART_IER:
+        if ( val & vdev->regs[UART_IER] & UART_IER_ETHREI )
+            vdev->flags |= NS8250_IRQ_THRE_PENDING;
+
+        vdev->regs[UART_IER] = val & UART_IER_MASK;
+
+        break;
+
+    case UART_FCR: /* WO */
+        if ( val & UART_FCR_CLRX )
+            ns8250_fifo_rx_reset(vdev);
+
+        if ( val & UART_FCR_CLTX )
+            ns8250_fifo_tx_reset(vdev);
+
+        if ( !(val & UART_FCR_ENABLE) )
+            val = 0;
+
+        vdev->regs[UART_FCR] = val & (UART_FCR_ENABLE |
+                                      UART_FCR_DMA |
+                                      UART_FCR_TRG_MASK);
+
+        break;
+
+    case UART_LCR:
+        vdev->regs[UART_LCR] = val;
+        break;
+
+    case UART_MCR:
+        msr = 0;
+
+        if ( val & UART_MCR_LOOP )
+        {
+            if ( val & UART_MCR_DTR )
+                msr |= UART_MSR_DSR;
+            if ( val & UART_MCR_RTS )
+                msr |= UART_MSR_CTS;
+            if ( val & UART_MCR_OUT1 )
+                msr |= UART_MSR_RI;
+            if ( val & UART_MCR_OUT2 )
+                msr |= UART_MSR_DCD;
+        }
+        else
+            msr |= UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
+
+        msr_delta = ((msr ^ vdev->regs[UART_MSR]) >> UART_MSR_SHIFT)
+                    & (UART_MSR_DCTS | UART_MSR_DDSR | UART_MSR_DDCD);
+        if ( msr & vdev->regs[UART_MSR] & UART_MSR_RI )
+            msr_delta |= UART_MSR_TERI;
+
+        vdev->regs[UART_MCR] = val & UART_MCR_MASK;
+        vdev->regs[UART_MSR] = msr | msr_delta;
+
+        break;
+
+    case UART_LSR: /* RO */
+    case UART_MSR: /* RO */
+        rc = -EINVAL;
+        break;
+
+    /*
+     * NB: Firmware like OVMF rely on SCR presence to initialize the ns8250
+     * driver.
+     */
+    case UART_SCR:
+        vdev->regs[UART_SCR] = val;
+        break;
+
+    /* DLAB=1 */
+    case UART_MAX + UART_DLL:
+        vdev->dl = (vdev->dl & 0xFF00U) | val;
+        break;
+
+    case UART_MAX + UART_DLM:
+        vdev->dl = (val << 8) | (vdev->dl & 0x00FFU);
+        break;
+
+    default:
+        rc = -EINVAL;
+        break;
+    }
+
+    return rc;
+}
+
+/*
+ * Emulate 16-bit write access to NS8250 register.
+ * NB: some guest OSes use outw() to access UART_DLL.
+ */
+static int ns8250_io_write16(
+    struct vuart_ns8250 *vdev, uint32_t reg, uint16_t *data)
+{
+    int rc;
+
+    switch ( reg )
+    {
+    case UART_MAX + UART_DLL:
+        vdev->dl = *data;
+        rc = 0;
+        break;
+
+    default:
+        rc = -EINVAL;
+        break;
+    }
+
+    return rc;
+}
+
+/*
+ * Emulate write access to NS8250 register.
+ */
+static int ns8250_io_write(
+    struct vuart_ns8250 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
+{
+    int rc = -EINVAL;
+
+    switch ( size )
+    {
+    case 1:
+        rc = ns8250_io_write8(vdev, reg, (uint8_t *)data);
+        break;
+
+    case 2:
+        rc = ns8250_io_write16(vdev, reg, (uint16_t *)data);
+        break;
+
+    default:
+        break;
+    }
+
+    ns8250_irq_assert(vdev);
+
+    return rc;
+}
+
+/*
+ * Emulate 8-bit read access to NS8250 register.
+ */
+static int ns8250_io_read8(
+    struct vuart_ns8250 *vdev, uint32_t reg, uint8_t *data)
+{
+    int rc = 0;
+    uint8_t val;
+
+    switch ( reg )
+    {
+    /* DLAB=0 */
+    case UART_RBR:
+        val = (uint8_t)ns8250_fifo_rx_getchar(vdev);
+        /* NB: do not forget to clear overrun condition */
+        vdev->regs[UART_LSR] &= ~UART_LSR_OE;
+        break;
+
+    case UART_IER: /* RO */
+        val = vdev->regs[UART_IER];
+        break;
+
+    case UART_IIR:
+        val = ns8250_irq_reason(vdev);
+        if ( val & UART_IIR_THR )
+            vdev->flags &= ~NS8250_IRQ_THRE_PENDING;
+
+        if ( vdev->regs[UART_FCR] & UART_FCR_ENABLE )
+            val |= UART_IIR_FE_MASK;
+
+        break;
+
+    case UART_LCR:
+        val = vdev->regs[UART_LCR];
+        break;
+
+    case UART_MCR:
+        val = vdev->regs[UART_MCR];
+        break;
+
+    case UART_LSR:
+        val = vdev->regs[UART_LSR] | UART_LSR_THRE | UART_LSR_TEMT;
+        if ( ns8250_fifo_rx_empty(vdev) )
+            val &= ~UART_LSR_DR;
+        else
+            val |= UART_LSR_DR;
+
+        vdev->regs[UART_LSR] = val & ~UART_LSR_MASK;
+
+        break;
+
+    case UART_MSR:
+        val = vdev->regs[UART_MSR];
+        vdev->regs[UART_MSR] &= ~UART_MSR_DELTA;
+        break;
+
+    case UART_SCR:
+        val = vdev->regs[UART_SCR];
+        break;
+
+    /* DLAB=1 */
+    case UART_MAX + UART_DLL:
+        val = vdev->dl & 0xFFU;
+        break;
+
+    case UART_MAX + UART_DLM:
+        val = vdev->dl >> 8;
+        break;
+
+    default:
+        val = (uint8_t)iosize_mask[1];
+        rc = -EINVAL;
+        break;
+    }
+
+    *data = val;
+
+    return rc;
+}
+
+/*
+ * Emulate 16-bit read access to NS8250 register.
+ */
+static int ns8250_io_read16(
+    struct vuart_ns8250 *vdev, uint32_t reg, uint16_t *data)
+{
+    uint16_t val;
+    int rc;
+
+    switch ( reg )
+    {
+    case UART_MAX + UART_DLL:
+        val = vdev->dl;
+        rc = 0;
+        break;
+
+    default:
+        val = (uint16_t)iosize_mask[2];
+        rc = -EINVAL;
+        break;
+    }
+
+    *data = val;
+
+    return rc;
+}
+
+/*
+ * Emulate read access to NS8250 register.
+ */
+static int ns8250_io_read(
+    struct vuart_ns8250 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
+{
+    int rc;
+
+    switch ( size )
+    {
+    case 1:
+        rc = ns8250_io_read8(vdev, reg, (uint8_t *)data);
+        break;
+
+    case 2:
+        rc = ns8250_io_read16(vdev, reg, (uint16_t *)data);
+        break;
+
+    default:
+        *data = iosize_mask[size];
+        rc = -EINVAL;
+        break;
+    }
+
+    ns8250_irq_assert(vdev);
+
+    return rc;
+}
+
+static const char *ns8250_regname(
+    const struct vuart_ns8250 *vdev, uint32_t reg, int dir)
+{
+    static const char *reg_names[UART_MAX + 2][2] = {
+        /* register                 W      R   */
+        [UART_RBR] =            { "THR", "RBR" },
+        [UART_IER] =            { "IER", "IER" },
+        [UART_IIR] =            { "FCR", "IIR" },
+        [UART_LCR] =            { "LCR", "LCR" },
+        [UART_MCR] =            { "MCR", "MCR" },
+        [UART_LSR] =            { "LSR", "LSR" },
+        [UART_MSR] =            { "MSR", "MSR" },
+        [UART_SCR] =            { "SCR", "SCR" },
+        [UART_MAX + UART_DLL] = { "DLL", "DLL" },
+        [UART_MAX + UART_DLM] = { "DLM", "DLM" },
+    };
+
+    return reg_names[reg][dir];
+}
+
+static void ns8250_dump(struct vuart_ns8250 *vdev)
+{
+#if defined(NS8250_DEBUG)
+    uint8_t val;
+
+    printk("I/O port %02"PRIx64" IRQ %d flags %"PRIx32" owner %d\n",
+            vdev->io_addr, vdev->irq,
+            vdev->flags, vdev->owner->domain_id);
+
+    printk("RX size %ld in_prod %d in_cons %d used %d\n",
+            sizeof(vdev->cons->in),
+            vdev->cons->in_prod, vdev->cons->in_cons,
+            vdev->cons->in_prod - vdev->cons->in_cons);
+
+    printk("TX size %ld out_prod %d out_cons %d used %d\n",
+            sizeof(vdev->cons->out),
+            vdev->cons->out_prod, vdev->cons->out_cons,
+            vdev->cons->out_prod - vdev->cons->out_cons);
+
+    printk("%02x RBR [ %c ] THR [ %c ] DLL %02x DLM %02x\n",
+            UART_RBR,
+            vdev->cons->in[MASK_XENCONS_IDX(vdev->cons->in_prod, vdev->cons)],
+            vdev->cons->out[MASK_XENCONS_IDX(vdev->cons->out_prod, vdev->cons)],
+            vdev->dl & 0xFFU, vdev->dl >> 8);
+
+    printk("%02"PRIx8" IER %02"PRIx8"\n", UART_IER, vdev->regs[UART_IER]);
+
+    val = (vdev->regs[UART_FCR] & UART_FCR_ENABLE) ? UART_IIR_FE_MASK : 0;
+    val |= ns8250_irq_reason(vdev);
+    printk("%02"PRIx8" FCR %02"PRIx8" IIR %02"PRIx8"\n",
+            UART_FCR, vdev->regs[UART_FCR], val);
+
+    printk("%02"PRIx8" LCR %02"PRIx8"\n", UART_LCR, vdev->regs[UART_LCR]);
+    printk("%02"PRIx8" MCR %02"PRIx8"\n", UART_MCR, vdev->regs[UART_MCR]);
+    printk("%02"PRIx8" LSR %02"PRIx8"\n", UART_LSR, vdev->regs[UART_LSR]);
+    printk("%02"PRIx8" MSR %02"PRIx8"\n", UART_MSR, vdev->regs[UART_MSR]);
+#endif
+}
+
+/*
+ * Emulate I/O access to NS8250 register.
+ */
+static int cf_check ns8250_io_handle(
+    int dir, unsigned int addr, unsigned int size, uint32_t *data)
+{
+#define op(dir)     (((dir) == IOREQ_WRITE) ? 'W' : 'R')
+    struct domain *d = rcu_lock_current_domain();
+    struct vuart_ns8250 *vdev = &d->arch.hvm.vuart;
+    uint32_t offset, reg;
+    int rc;
+
+    spin_lock(&vdev->lock);
+
+    BUG_ON( vdev->owner != d );
+
+    if ( !(vdev->flags & NS8250_READY) )
+    {
+        pr_err("%c io 0x%04x %d 0x%08"PRIx32": propagate to external I/O emulator\n",
+                op(dir), addr, size, *data);
+        rc = X86EMUL_UNHANDLEABLE;
+        goto out;
+    }
+
+    reg = addr - vdev->io_addr;
+    BUG_ON( reg >= UART_MAX );
+    /* NB: all NS8250 registers are naturally aligned */
+    if ( reg % size != 0 )
+    {
+        pr_err("%c 0x%04x %d 0x%08"PRIx32": unaligned access\n",
+                op(dir), addr, size, *data & iosize_mask[size]);
+        rc = X86EMUL_OKAY;
+        goto out;
+    }
+
+    /* Redirect access to divisor latch registers */
+    if ( !!(vdev->regs[UART_LCR] & UART_LCR_DLAB)
+            && (reg == UART_DLL || reg == UART_DLM) )
+        offset = UART_MAX + reg;
+    else
+        offset = reg;
+
+    if ( dir == IOREQ_WRITE )
+    {
+        pr_debug("%c 0x%04x %d 0x%08"PRIx32" %s[0x%02"PRIx32"]\n",
+                op(dir), addr, size,
+                *data & iosize_mask[size],
+                ns8250_regname(vdev, offset, dir), reg);
+        rc = ns8250_io_write(vdev, offset, size, data);
+    }
+    else
+    {
+        rc = ns8250_io_read(vdev, offset, size, data);
+        pr_debug("%c 0x%04x %d 0x%08"PRIx32" %s[0x%02"PRIx32"]\n",
+                op(dir), addr, size,
+                *data & iosize_mask[size],
+                ns8250_regname(vdev, offset, dir), reg);
+    }
+    if ( rc )
+        pr_err("%c 0x%04x %d 0x%08"PRIx32": unsupported access\n",
+                op(dir), addr, size, *data & iosize_mask[size]);
+    rc = X86EMUL_OKAY;
+
+out:
+    ns8250_dump(vdev);
+    spin_unlock(&vdev->lock);
+
+    return rc;
+#undef op
+}
+
+/*
+ * Parse virtual NS8250 configuration.
+ *   hvm.ns8250.console=[com1|com2|com3|com4]
+ */
+static const struct resource *ns8250_parse(void)
+{
+    int i;
+
+    for ( i = 0; i < ARRAY_SIZE(ns8250_x86_legacy_uarts); i++ )
+        if ( !strcasecmp(hvm_ns8250_console, ns8250_x86_legacy_uarts[i].name) )
+            return ns8250_x86_legacy_uarts[i].res;
+
+    return ns8250_x86_legacy_uarts[0].res;
+}
+
+/*
+ * Claim virtual NS8250 resources to domain.
+ */
+static int ns8250_claim(
+    struct vuart_ns8250 *vdev, const struct resource *r, struct domain *d)
+{
+    unsigned long size;
+    unsigned long start;
+    unsigned long end;
+
+    vdev->irq = NO_IRQ;
+    vdev->io_addr = IORESOURCE_UNKNOWN;
+    vdev->io_size = IORESOURCE_UNKNOWN;
+
+    foreach_resource(r)
+    {
+        if ( r->type & IORESOURCE_IO )
+        {
+            size = r->size;
+            start = r->addr;
+            end = r->addr + r->size - 1;
+
+            if ( !ioports_access_permitted(d, start, end) )
+                ioports_permit_access(d, start, end);
+
+            register_portio_handler(d, start, size, ns8250_io_handle);
+
+            /* Used to assert I/O port handler */
+            vdev->io_addr = start;
+            vdev->io_size = size;
+        }
+        else if ( r->type & IORESOURCE_IRQ )
+            /* "Claim" virtual IRQ; assumes no ISA-device IRQ sharing */
+            vdev->irq = r->addr;
+        else
+            return -EINVAL;
+    }
+
+    if ( vdev->irq == NO_IRQ
+            || vdev->io_addr == IORESOURCE_UNKNOWN
+            || vdev->io_size == IORESOURCE_UNKNOWN )
+        return -ENODEV;
+
+    return 0;
+}
+
+/*
+ * Unclaim virtual NS8250 resources.
+ */
+static void ns8250_unclaim(struct vuart_ns8250 *vdev, struct domain *d)
+{
+    unsigned long size = vdev->io_size;
+    unsigned long start = vdev->io_addr;
+    unsigned long end = start + size - 1;
+
+    if ( ioports_access_permitted(d, start, end) )
+        ioports_deny_access(d, start, size);
+}
+
+#if defined(NS8250_DEBUG)
+static struct domain *rcu_find_first_domain_with_vuart(void)
+{
+    struct domain *d = NULL;
+    domid_t domid;
+
+    for ( domid = 0; domid < max_init_domid + 1; domid++ )
+    {
+        d = rcu_lock_domain_by_id(domid);
+        if ( d == NULL )
+            continue;
+
+        if ( domain_has_vuart(d) )
+            break;
+
+        rcu_unlock_domain(d);
+    }
+
+    return d;
+}
+
+static void cf_check ns8250_keyhandler_show(unsigned char key)
+{
+    struct vuart_ns8250 *vdev;
+    struct domain *d;
+
+    d = rcu_find_first_domain_with_vuart();
+    if ( d == NULL )
+        return;
+
+    printk("'%c' pressed -> dumping virtual NS8250 state (d%d)\n",
+            key, d->domain_id);
+
+    vdev = &d->arch.hvm.vuart;
+    spin_lock(&vdev->lock);
+    ns8250_dump(vdev);
+    spin_unlock(&vdev->lock);
+
+    rcu_unlock_domain(d);
+}
+
+static void cf_check ns8250_keyhandler_irq(unsigned char key)
+{
+    struct vuart_ns8250 *vdev;
+    struct domain *d;
+
+    d = rcu_find_first_domain_with_vuart();
+    if ( d == NULL )
+        return;
+
+    printk("'%c' pressed -> triggering IRQ on virtual NS8250 (d%d)\n",
+            key, d->domain_id);
+
+    vdev = &d->arch.hvm.vuart;
+    spin_lock(&vdev->lock);
+    ns8250_irq_assert(vdev);
+    spin_unlock(&vdev->lock);
+
+    rcu_unlock_domain(d);
+}
+#endif /* #if defined(NS8250_DEBUG) */
+
+static int ns8250_init(struct domain *d)
+{
+    struct vuart_ns8250 *vdev = &d->arch.hvm.vuart;
+    struct xencons_interface *cons;
+    const struct resource *r;
+    int rc;
+
+    memset(vdev, 0, sizeof(*vdev));
+
+    r = ns8250_parse();
+    if ( r == NULL )
+        return -ENODEV;
+
+    cons = kzalloc(sizeof(*vdev->cons), 0);
+    if ( cons == NULL )
+    {
+        rc = -ENOMEM;
+        goto out;
+    }
+
+    spin_lock_init(&vdev->lock);
+
+    rc = ns8250_claim(vdev, r, d);
+    if ( rc )
+        goto out;
+
+    /* Report 115200 baud rate */
+    vdev->dl = (UART_CLOCK_HZ / 115200) >> 4;
+
+    vdev->owner = d;
+    vdev->cons = cons;
+    vdev->flags = NS8250_READY | NS8250_IRQ_THRE_PENDING;
+
+    hvm_irq_lower(d, vdev->irq);
+
+#if defined(NS8250_DEBUG)
+    register_keyhandler('1', ns8250_keyhandler_show,
+                        "dump virtual NS8250 state", 0);
+    register_keyhandler('2', ns8250_keyhandler_irq,
+                        "trigger IRQ from virtual NS8250", 0);
+#endif /* #if defined(NS8250_DEBUG) */
+
+    return 0;
+
+out:
+    kfree(cons);
+
+    return rc;
+}
+
+static void ns8250_exit(struct domain *d)
+{
+    struct vuart_ns8250 *vdev = &d->arch.hvm.vuart;
+
+    if ( !(vdev->flags & NS8250_READY) )
+        return;
+
+    spin_lock(&vdev->lock);
+
+    ns8250_unclaim(vdev, d);
+
+    ns8250_fifo_tx_reset(vdev);
+    kfree(vdev->cons);
+
+    vdev->owner = NULL;
+    vdev->cons = NULL;
+    vdev->flags = 0;
+
+    spin_unlock(&vdev->lock);
+}
+
+int vuart_putchar(struct vuart_ns8250 *vdev, char ch)
+{
+    int rc;
+
+    spin_lock(&vdev->lock);
+
+    if ( !(vdev->flags & NS8250_READY) )
+    {
+        rc = -ENODEV;
+        goto out;
+    }
+
+    /* Echo the user input on the console */
+    printk("%c", ch);
+
+    /*
+     * Device is in loopback mode; do nothing.
+     */
+    if ( vdev->regs[UART_MCR] & UART_MCR_LOOP )
+    {
+        rc = -EBUSY;
+        goto out;
+    }
+
+    rc = ns8250_fifo_rx_putchar(vdev, ch);
+    if ( rc == -ENOSPC )
+        vdev->regs[UART_LSR] |= UART_LSR_OE | UART_LSR_DR;
+    else
+        /* NB: UART_LSR_DR is also set when UART_LSR is accessed. */
+        vdev->regs[UART_LSR] |= UART_LSR_DR;
+
+    /* FIXME: check FCR when to fire an interrupt */
+    ns8250_irq_assert(vdev);
+
+out:
+    ns8250_dump(vdev);
+    spin_unlock(&vdev->lock);
+
+    return rc;
+}
+
+int domain_vuart_init(struct domain *d)
+{
+    int rc = -ENODEV;
+
+    if ( domain_has_vuart(d) )
+        rc = ns8250_init(d);
+
+    return rc;
+}
+
+void domain_vuart_free(struct domain *d)
+{
+    if ( domain_has_vuart(d) )
+        ns8250_exit(d);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/asm/hvm/domain.h
index 333501d5f2ac01676646b9b277b551f06d43c3a5..d4ce25896259fc9763477e88d56bacbe4f78af5b 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -16,6 +16,7 @@
 #include <asm/hvm/io.h>
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/hvm/svm/vmcb.h>
+#include <asm/hvm/vuart_ns8250.h>
 
 #ifdef CONFIG_MEM_SHARING
 struct mem_sharing_domain
@@ -73,6 +74,10 @@ struct hvm_domain {
     struct hvm_vioapic    **vioapic;
     unsigned int           nr_vioapics;
 
+#if defined(CONFIG_HAS_VUART_NS8250)
+    struct vuart_ns8250    vuart;
+#endif
+
     /*
      * hvm_hw_pmtimer is a publicly-visible name. We will defer renaming
      * it to the more appropriate hvm_hw_acpi until the expected
diff --git a/xen/arch/x86/include/asm/hvm/vuart_ns8250.h b/xen/arch/x86/include/asm/hvm/vuart_ns8250.h
new file mode 100644
index 0000000000000000000000000000000000000000..27d9458c24dfb4c5decea51fefcb73650cc863c6
--- /dev/null
+++ b/xen/arch/x86/include/asm/hvm/vuart_ns8250.h
@@ -0,0 +1,75 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * NS8250-compatible UART Emulator.
+ */
+#if !defined(HVM__VUART_NS8250_H)
+#define HVM__VUART_NS8250_H
+
+#include <xen/spinlock.h>
+#include <xen/8250-uart.h>
+#include <public/io/console.h> /* xencons_interface */
+
+/*
+ * NS8250 emulator operational flags.
+ */
+enum {
+    /* Emulator is ready */
+    NS8250_READY                = BIT(0, U),
+    /* Trigger re-delivery of THRE interrupt */
+    NS8250_IRQ_THRE_PENDING     = BIT(1, U),
+};
+
+/*
+ * Virtual NS8250 device state.
+ */
+struct vuart_ns8250 {
+    uint16_t dl;                    /* Divisor Latch */
+    uint8_t regs[UART_MAX];         /* Registers */
+    uint32_t flags;                 /* Virtual device flags */
+    uint64_t io_addr;               /* Guest I/O region base address */
+    uint64_t io_size;               /* Guest I/O region size */
+    int irq;                        /* Guest IRQ# */
+    struct xencons_interface *cons; /* Emulated RX/TX FIFOs */
+    struct domain *owner;           /* Owner domain */
+    spinlock_t lock;                /* Protection */
+};
+
+#if defined(CONFIG_HAS_VUART_NS8250)
+
+int vuart_putchar(struct vuart_ns8250 *vdev, char ch);
+
+/*
+ * Match the names w/ arch/arm/vuart.h
+ * FIXME: move to common vuart.h
+ */
+int domain_vuart_init(struct domain *d);
+void domain_vuart_free(struct domain *d);
+
+#else
+
+static inline int vuart_putchar(struct vuart_ns8250 *vdev, char ch)
+{
+    return -1;
+}
+
+static inline int domain_vuart_init(struct domain *d)
+{
+    return 0;
+}
+
+static inline void domain_vuart_free(struct domain *d)
+{
+}
+
+#endif /* #if defined(CONFIG_HAS_VUART_NS8250) */
+
+#endif /* #if !defined(HVM__VUART_NS8250_H) */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:39:13 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:39:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844374.1259951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG59F-0005Fm-4L; Tue, 26 Nov 2024 23:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844374.1259951; Tue, 26 Nov 2024 23:39: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 1tG59F-0005Ff-0w; Tue, 26 Nov 2024 23:39:13 +0000
Received: by outflank-mailman (input) for mailman id 844374;
 Tue, 26 Nov 2024 23:39: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=rasV=SV=kernel.org=devnull+dmukhin.ford.com@srs-se1.protection.inumbo.net>)
 id 1tG4su-0000At-Eb
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:22:20 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 406a0290-ac4d-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:22:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2E3E45C5CD9;
 Tue, 26 Nov 2024 23:21:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 5C63EC4CEDA;
 Tue, 26 Nov 2024 23:21:56 +0000 (UTC)
Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org
 (localhost.localdomain [127.0.0.1])
 by smtp.lore.kernel.org (Postfix) with ESMTP id 519D6D66B94;
 Tue, 26 Nov 2024 23:21:56 +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: 406a0290-ac4d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzOS4xNzguODQuMjE3IiwiaGVsbyI6ImRmdy5zb3VyY2Uua2VybmVsLm9yZyJ9
X-Custom-Transaction: eyJpZCI6IjQwNmEwMjkwLWFjNGQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjYzMzI2Ljg4Mjk3Nywic2VuZGVyIjoiZGV2bnVsbCtkbXVraGluLmZvcmQuY29tQGtlcm5lbC5vcmciLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1732663316;
	bh=5YTuUDaV5EVnrers6QrjQT6r8NErcJtABTvZxKp9ABI=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=OMUL/Ri32IOYBUiHifEGwvULrRHLBD3Ipk2Js5lMmkEv2Oa8ighcsJzz0tK4l8P/K
	 RoCI9/VXPg0SJ4e4pGvrPQ/ak0+BOV3LelpEkhklE3O9YQvPr3Se5uX1VW0JzgGYhm
	 lnUmkHu8Yx65dFVR7lanOYhoplKCQIdf/9eA+E91KCN18r3wL4kP6bJ2cABNbBkNaf
	 /gqkyrFnAtdWlqXLvTxU/bO+hrENISGN1bHyiwMhOtpA4Rv0HBtpQxq6bzAeCi2AXv
	 rRw3h9rFzL9Y+vm4HQmojIiZ8MN/Z0Jv02HFKYny/zLCxeMe+xGqkS41qkUnZcMyWM
	 TEcTQmvrWznEw==
From: Denis Mukhin via B4 Relay <devnull+dmukhin.ford.com@kernel.org>
Date: Tue, 26 Nov 2024 15:22:05 -0800
Subject: [PATCH 15/36] xen/console: move vpl011-related code to vpl011
 emulator
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20241126-vuart-ns8250-v1-v1-15-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
To: Jan Beulich <jbeulich@suse.com>, 
 Andrew Cooper <andrew.cooper3@citrix.com>, 
 =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
 "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
 Bertrand Marquis <bertrand.marquis@arm.com>, 
 Michal Orzel <michal.orzel@amd.com>, Rahul Singh <rahul.singh@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>, 
 Shawn Anastasio <sanastasio@raptorengineering.com>, 
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, 
 Christian Lindig <christian.lindig@citrix.com>, 
 David Scott <dave@recoil.org>, 
 =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1732663312; l=3543;
 i=dmukhin@ford.com; s=20241125; h=from:subject:message-id;
 bh=eSoRo4IQpqEF5DX3/57J0/HMwWVyveMZrxkTrUrQksc=;
 b=Ssyod9J853vaDvi8IVQuIiYqz+IJjFLP8x8AMQfyU0pyk/+zh3NLrbs1goiBjJDowTSWQc80I
 ughd7gBeOHeAkJxyo2dIQH83kva3uuUwVA3y9DNqEgntr4GNv0lVs5L
X-Developer-Key: i=dmukhin@ford.com; a=ed25519;
 pk=SsDZ9p39s0fqcpUKQuqKqrbn0rq6EtEAClvpOpzx6+U=
X-Endpoint-Received: by B4 Relay for dmukhin@ford.com/20241125 with
 auth_id=287
X-Original-From: Denis Mukhin <dmukhin@ford.com>
Reply-To: dmukhin@ford.com

From: Denis Mukhin <dmukhin@ford.com>

Xen console driver has vpl011-related logic which shall belong vpl011 emulator
code. Move vpl011-related to vpl011.c.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/include/asm/vpl011.h |  2 +-
 xen/arch/arm/vpl011.c             | 15 ++++++++++++---
 xen/drivers/char/console.c        |  4 +---
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/include/asm/vpl011.h b/xen/arch/arm/include/asm/vpl011.h
index c09abcd7a9b3356d0809743517934adae00087f5..cc838682815c0d049ba33d3bf9966a64b2e527dd 100644
--- a/xen/arch/arm/include/asm/vpl011.h
+++ b/xen/arch/arm/include/asm/vpl011.h
@@ -69,7 +69,7 @@ struct vpl011_init_info {
 int domain_vpl011_init(struct domain *d,
                        struct vpl011_init_info *info);
 void domain_vpl011_deinit(struct domain *d);
-void vpl011_rx_char_xen(struct domain *d, char c);
+int vpl011_rx_char_xen(struct domain *d, char c);
 #else
 static inline int domain_vpl011_init(struct domain *d,
                                      struct vpl011_init_info *info)
diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 140dca48e0a3901cba289dbc6eb117358134d917..3e1487b101053891c9c0fb7fb50af1c547d4cbf3 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -569,14 +569,21 @@ static void vpl011_data_avail(struct domain *d,
  * vpl011_rx_char_xen adds a char to a domain's vpl011 receive buffer.
  * It is only used when the vpl011 backend is in Xen.
  */
-void vpl011_rx_char_xen(struct domain *d, char c)
+int vpl011_rx_char_xen(struct domain *d, char c)
 {
     unsigned long flags;
     struct vpl011 *vpl011 = &d->arch.vpl011;
     struct vpl011_xen_backend *intf = vpl011->backend.xen;
     XENCONS_RING_IDX in_cons, in_prod, in_fifo_level;
 
-    ASSERT(!vpl011->backend_in_domain);
+    /*
+     * If we have a properly initialized vpl011 console for the
+     * domain, without a full PV ring to Dom0 (in that case input
+     * comes from the PV ring), then send the character to it.
+     */
+    if ( vpl011->backend_in_domain || intf == NULL )
+        return -ENODEV;
+
     VPL011_LOCK(d, flags);
 
     in_cons = intf->in_cons;
@@ -584,7 +591,7 @@ void vpl011_rx_char_xen(struct domain *d, char c)
     if ( xencons_queued(in_prod, in_cons, sizeof(intf->in)) == sizeof(intf->in) )
     {
         VPL011_UNLOCK(d, flags);
-        return;
+        return -ENOSPC;
     }
 
     intf->in[xencons_mask(in_prod, sizeof(intf->in))] = c;
@@ -596,6 +603,8 @@ void vpl011_rx_char_xen(struct domain *d, char c)
 
     vpl011_data_avail(d, in_fifo_level, sizeof(intf->in), 0, SBSA_UART_FIFO_SIZE);
     VPL011_UNLOCK(d, flags);
+
+    return 0;
 }
 
 static void vpl011_notification(struct vcpu *v, unsigned int port)
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index bb56953bab681a13da8d41431aba4632f1919df9..0af4b551801356f242f1770b3826608136d65653 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -559,9 +559,7 @@ static void __serial_rx(char c)
          * domain, without a full PV ring to Dom0 (in that case input
          * comes from the PV ring), then send the character to it.
          */
-        if ( d != NULL &&
-             !d->arch.vpl011.backend_in_domain &&
-             d->arch.vpl011.backend.xen != NULL )
+        if ( d != NULL )
             vpl011_rx_char_xen(d, c);
         else
             printk("Cannot send chars to Dom%d: no UART available\n",

-- 
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Nov 26 23:57:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Nov 2024 23:57:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844456.1259962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tG5Qs-0004lJ-Ij; Tue, 26 Nov 2024 23:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844456.1259962; Tue, 26 Nov 2024 23: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 1tG5Qs-0004lC-Fc; Tue, 26 Nov 2024 23:57:26 +0000
Received: by outflank-mailman (input) for mailman id 844456;
 Tue, 26 Nov 2024 23: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=zdLj=SV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tG5Qq-0004ko-Kq
 for xen-devel@lists.xenproject.org; Tue, 26 Nov 2024 23:57:24 +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 2ba763ef-ac52-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 00:57:19 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-38232c6311fso4154153f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 15:57:19 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3825fafe207sm14655667f8f.36.2024.11.26.15.57.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 15:57: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: 2ba763ef-ac52-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJiYTc2M2VmLWFjNTItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjY1NDM5LjQ2NDY4Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732665438; x=1733270238; 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=t+C3y/3deXe5FvWAbGkxXZsARH4fUV6hi+SPx0ceH6Q=;
        b=tsbtJR5dWFhmbLR4R0z7pxBk83rzrk/KGEzXK9T3HqCAQXwjXZb4692pD+Rk8jSJB7
         D/h5OBvqFF1iCqPHkCk4ZLuVOgkvAQhe255V7ocgV1suwo2yGZ3c1Unt8izhNuqzj1qU
         Hv4BYq6c2drO7vG/W4w7CCgY9WvlY2IRuftiQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732665438; x=1733270238;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t+C3y/3deXe5FvWAbGkxXZsARH4fUV6hi+SPx0ceH6Q=;
        b=KaQFrdGdK50wbMuD3fprtP0M51zRX/v/coIz7RPlNkg1trF6etPk3OE4bt5ouu0Pd8
         MEanMRdXGkNvbhw7XjoUytax58dMB/m1xqw1lB8MI49PAQwt8H1rBESeiy3eut+cqAj8
         YghSHXqGe6ENIvIs2ZmGCKP65i2pTLo6Lju8ub+dWF0Am4pjDiQy1UUR5u0Wz3NmbOzo
         3nHuhYI6qQsbXAc+7H2xRvIYjgkpxk+rlBhzcM61SPVZA6p6VcaRSsqZtlogQMqpls69
         kya1OFqiBqKeQKCJ6Pt20EZm9CbmHqAHpFxAxDbc3xO7wtoohw/S03l6Ix/LY+/no05p
         Ntmg==
X-Gm-Message-State: AOJu0Yzz3a8W7hNkVVTpbiBR7EfYFQAjf/W+HVjIyDkGkkLvatEAhim/
	Nx1S7VInnyCb9+LG3iwnqy5+VK0DkX+iiBsJEUoloHalZWz0qMpSKXjjgwwTPxw=
X-Gm-Gg: ASbGnctbPxk2IMMtnd9mOL7HOv35yOBFSlQ+m53qzAdHhOyNZgi5u82EvNK695ezR4Y
	GjhcTuCCmMXDk6IJNIUv1e8JJYDHyBNhK0U2Yt1Fo5Fc0hH0aWA3ofwQ2PDQ/v5gmjwGhNycQdM
	khNGz7TK/Pg/lAkOEjdn3uO+l9eAU10gfD+71o4YZVSOak+Mc9c5iTM/ba3TQJHKsp2TuzsryYj
	V9ze/B3T8tWMt/N6E06on3bgHZhYbpshKmRHrSMaAe1cqZ8L6JA/F3txsL3cUruVKEAmmWxwcQC
	OHg6kz2IkX+CkA==
X-Google-Smtp-Source: AGHT+IH34HGTrZhgHynb4PwHxCnqR+bEOTY/Xpaw1qrIRNkhiEnHiAF+8gjfKixH+15dMuXGj7woug==
X-Received: by 2002:a5d:64c6:0:b0:37d:4706:f728 with SMTP id ffacd0b85a97d-385c6ef476fmr482019f8f.50.1732665438579;
        Tue, 26 Nov 2024 15:57:18 -0800 (PST)
Message-ID: <c08bd940-a2eb-4fb8-9f8d-2c5f3f1fab54@citrix.com>
Date: Tue, 26 Nov 2024 23:57:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/36] Introduce NS8250 UART emulator
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Connor Davis <connojdavis@gmail.com>, Juergen Gross <jgross@suse.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 David Scott <dave@recoil.org>, Rahul Singh <rahul.singh@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/11/2024 11:21 pm, Denis Mukhin via B4 Relay wrote:
> The patch series introduces initial in-hypervisor emulator for
> NS8250/NS16x50-compatible UARTs under CONFIG_HAS_VUART_NS8250.
>
> In parallel domain creation scenario (hyperlaunch), NS8520 emulator helps
> early guest OS bringup debugging, because it eliminates dependency on the
> external emulator being operational by the time domains are created. Also,
> there's no early console facility similar to vpl011 to support x86 guest OS
> bring up.
>
> The NS8250 emulator is disabled by default.
>
> Series
> ======
> - patches 1-2: some miscellaneous random fixes, added into the series
>   because I stepped into those while debugging NS8250 emulator.
>
> - patches 3-14: preparation fixes for xen console and NS8250 emulator.
>
> - patches 15-29: xen console driver cleanup and preparation for enabling
>   physical serial console focus assignment to the guest VM w/ virtual NS8250.
>
> - patches 30-36: initial NS8250 emulator. That adds the I/O port emulator
>   for legacy PC COM UARTs, Kconfig option, enabling emulator and libxl
>   plumbing.
>
> Limitations
> ===========
> - Only x86;
> - Only Linux guest tested so far;
> - Only legacy COM{1,2,3,4} resources, no customization;
> - Only Xen console as a backend, no inter-domain communication (similar to
>   vpl011 on Arm);
> - Only 8-bit characters;
> - Baud rate is not emulated;
> - FIFO-less mode is not emulated properly;
> - RX FIFO interrupt moderation (FCR) is not emulated properly, TL16C750
>   has special FCR handling;
> - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
>   friends);
> - Assumes no ISA-device IRQ sharing;
> - MMIO-based UART is not supported.
>
> Testing
> =======
>
> I tested boot of HVM linux guest w/ OVMF as the virtual firmware.
>
> The emulator, if enabled via CONFIG_HAS_VUART_NS8250=y, will use COM1 (0x3f8)
> resources by default.
>
> To test w/ virtual COM1, the guest kernel parameters should contain
>   earlycon=uart,io,0x3f8,115200n8 console=uart,io,0x3f8,115200n8
>
> Xen is able to forward physical console input to the domain w/ virtual NS8250.
> To switch the console focus press Ctrl+aaa. If console= is given to the HVM
> kernel, then the user shall be able to see the login prompt on xen console once
> console focus is switched to the HVM guest.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Hello,

Thankyou for this.Â  It's an excellent start for first posting to the list.

Two things stand out at a glance.

First, xmalloc/free are the expected functions to use, and kmalloc/free
are not equivalent.Â  We have some drivers ported from Linux, hence the
compatibility, and if it needs to extend beyond smmu.c then there's
linux-compat.h where definitions can live, but we really don't want them
visible generally.

Second and more importantly, I'm afraid this won't pass CI right now.Â 
Your function pointees (e.g. ns8250_iir_check_lsi()/etc) need a cf_check
attribute on them, in order to function when running on CET-IBT capable
hardware.

>From the root of the Xen tree, if you run:

CONTAINER=bookworm-x86_64-gcc-ibt ./automation/scripts/containerize

then you'll get a build environment with suitable diagnostics.Â 
Unfortunately we're still relying on an out-of-tree GCC patch to have a
compiler that can point out the problems at build time, as opposed to
encountering the #CP exceptions at runtime.


I'll try to have a closer look at the rest of the series tomorrow.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 07:16:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 07:16:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844472.1259972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGCHS-0008Fi-Qj; Wed, 27 Nov 2024 07:16:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844472.1259972; Wed, 27 Nov 2024 07:16: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 1tGCHS-0008Fb-NP; Wed, 27 Nov 2024 07:16:10 +0000
Received: by outflank-mailman (input) for mailman id 844472;
 Wed, 27 Nov 2024 07:16: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGCHQ-0008FS-SQ
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 07:16:08 +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 72e99b3a-ac8f-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 08:15:58 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3824709ee03so4647279f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 23:15: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-3825fbc3defsm16004605f8f.70.2024.11.26.23.15.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 23:15: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: 72e99b3a-ac8f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmMiLCJoZWxvIjoibWFpbC13cjEteDQyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjcyZTk5YjNhLWFjOGYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjkxNzU4LjI2MjQwMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732691757; x=1733296557; 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=u9JJasHAmJqecPBIfCvHphvkGatt98NoYrxqBmhg7Sg=;
        b=NYG94KyXSle8IgZwreWgxzET5ZNX6yZnCt9kf2R93PTJpwVk6a0Ehu2rcOH+p80Lpl
         4O54yt/CJbTW7MSgfOhJiPkmJ/EMdrT/xBEgd+YSBMmUsEPil5beXVbTIvkljqBIe/Am
         C+2OnsrXPOdS0RFoJIRVUjsm076rNGeYeup6AUVsWqJcs6SVpogmGcomK5wzZicAm+oc
         hNBT76H8z2+imbCmAv8DWie7dM7pfToYJUJtao8iJfv82F/JHrwoH3FR2fCeNY9kutSS
         rMsGABYwby6K+XJdFw6qHHPDHsdk9WbzXfpbcKcwveDanhaFNueS9Cr6bxiCuaNDYZN/
         BCJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732691757; x=1733296557;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=u9JJasHAmJqecPBIfCvHphvkGatt98NoYrxqBmhg7Sg=;
        b=lHhdEhBUi33WBS0a+QCntLjrTiKP0nHe/cMBmue9/PczKN8Jpke51JjLM0rbVbp+RE
         tRq7O3KdlysxeYI+e4SbGjAyJOcNoIjBKg7etGdE0v/RGWRYnbZX7NrlNNMQs6L8MKfZ
         rK3dv18teMjUNzCT+UakehUsmxRoSDKLYLsLmBOQKli+JZL8e+9hsgd8nFFLrpqV8Ph1
         BKFrE/Kn+bZd/KN4QpeYd0vEr9V3z2VJMesbUuqn79rj10WSaw3WV2CpealMt43mVNrR
         CTWBjHynnjJ9/pU0qjIac3kphcqn1Ta12WD1gvjhSOSMdJcm7Lbts2XZXQRBByWa1UMC
         iX0w==
X-Gm-Message-State: AOJu0YxGLQz/u27P7ezh4jKJHVjFgEZb2luQuZqXUv7HAmv/4ZLmwbwq
	pMMLahTnmYU1cg4W4/S4CdEIs77WGY8i6yyMXF2fAFfJw+4mxFaTeC+6W32jS4Nn6Z1jAm5W9lU
	=
X-Gm-Gg: ASbGncupL0qYI4p1Yqtc+8vdXZ83pST8xXoBL3NYypztRjj9Tj9p6IXkTv5GC3w/sme
	zYGcf+HY3k0AJWzsbwl1kxhfWRt/Pa5y5BFRFjJ4FMrlUpJjfUhQReAdjLy3DYtQfgfyuTUUHtu
	BaPNqQ6TSw+BBl7yJrthbihAyq9CG/yC2gpMNl/DQp2XAmipYlrNkh6av5ITY+1yjJqpvKyM/Bf
	+oVp6D++f5+QtTvMQY2ZZNYCeYb+HxKjvwTS5H6yuHZBFy7nf5fjfayF+5PdtrAg+SPwVo9IPH4
	Scu4rpZcPZ//TzHcAf1Aq42TobgLgoc50+0=
X-Google-Smtp-Source: AGHT+IFRlfNH6hANt8u1x5ACpHREiYdHyBp5PCA/dtYhOVCzb0WR0lt2whbupOgicUNuUj0+X8oWTA==
X-Received: by 2002:a05:6000:18a3:b0:382:5284:989 with SMTP id ffacd0b85a97d-385c6ed74d4mr1404238f8f.46.1732691757587;
        Tue, 26 Nov 2024 23:15:57 -0800 (PST)
Message-ID: <157a6ac0-6929-4e01-8588-7e5591427654@suse.com>
Date: Wed, 27 Nov 2024 08:15:56 +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] x86emul: MOVBE requires a memory operand
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 reg-reg forms should cause #UD; they come into existence only with
APX, where MOVBE also extends BSWAP (for the latter not being "eligible"
to a REX2 prefix).

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

--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -6824,6 +6824,7 @@ x86_emulate(
 
     case X86EMUL_OPC(0x0f38, 0xf0): /* movbe m,r */
     case X86EMUL_OPC(0x0f38, 0xf1): /* movbe r,m */
+        generate_exception_if(ea.type != OP_MEM, X86_EXC_UD);
         vcpu_must_have(movbe);
         switch ( op_bytes )
         {


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 07:26:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 07:26:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844480.1259983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGCRP-0001Td-ON; Wed, 27 Nov 2024 07:26:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844480.1259983; Wed, 27 Nov 2024 07: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 1tGCRP-0001TW-K1; Wed, 27 Nov 2024 07:26:27 +0000
Received: by outflank-mailman (input) for mailman id 844480;
 Wed, 27 Nov 2024 07:26: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGCRN-0001TK-Pk
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 07:26:25 +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 e583b854-ac90-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 08:26:19 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-38241435528so4055968f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 23:26: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-434aa7d1a90sm11745985e9.32.2024.11.26.23.26.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 23:26: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: e583b854-ac90-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzMiLCJoZWxvIjoibWFpbC13cjEteDQzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU1ODNiODU0LWFjOTAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjkyMzc5Ljk4MjE4OCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732692379; x=1733297179; 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=RoJ+SaTNP9GuzWMj+dBTxdESYt9FOdMe9CsWL5Gn4nA=;
        b=DMBYI6Q8PAdRwYfosy9mI5kVSGJd3MRWDNh7iBdk74qoR7E7xPsA14pTV8vV900hUJ
         LJL6ijgPTsMq8773EDI9YxgbvXzqXbxGcGD9GzTnkCbr6TjX+Co9+OXVfx4UCr316zET
         idDKdIw39UJcIhg2QSO8pOUJfHnCm69TNNRWjc3elpLl9HOsklDbAtvKtiQKlCxYdBk1
         aKKOq9osPyMPcyrZeoIS2EB7ZJDHDayTe+KQwJmfoC5YEKEbrKacSIGirnf6M+0Zbtmt
         qohqUIn70ojMkNE8cDm+uFPW26Bd7WSrqj8HRNS2aZ9JFEdFK+9HuJ+UtRg+0O223M2H
         weJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732692379; x=1733297179;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RoJ+SaTNP9GuzWMj+dBTxdESYt9FOdMe9CsWL5Gn4nA=;
        b=nTswctLdIOK1ON5uR6rONvPZxVa++FYRzjKBkg53N6NYbn0Vq/Hyr+vGW2uTCXFDGj
         176MsCcKJmGJkmezaN7YELKjuzXdl0p0Yr3KR+uEFaRee0ngIFBaImZyqFIYUC+nwGFU
         gcM9OtFWHhuDhNgfAgTG3vZ597lWJ73lnXJv9Xkdrvwn4Y/Du7BtUQ8642irEvNkI6WK
         uykVTfSBpwP6vdJDy1a4JUPEG2gA3XsnqWBGKzHE/SwLw3ohNOVNoKI2Dnj9bhZjDuVa
         DxSwToJYet6iimyJQ5QZo+Z2JjNdyS9MWuOQI2FQ8jYcs9oL37q8UwMdcxPs6ERIDGPy
         Ds5w==
X-Gm-Message-State: AOJu0Yz/7FckWHdIrYfaU5VRCNQ4zYgHuRYjuoor/Z7S9olMoAp2QcyT
	XAhw2+/YpyEAy2fj9bxeYeTm4E3S4AzqBjfeBWcVGQ35KDHj5bypLVXMfm1PGw==
X-Gm-Gg: ASbGnctLhvJh+c6lZDzxoY7cWSauH37NFil7G4PBCvXR2KxTEUgI6FpTcR2pQA55/ES
	BORf/3rYde9Xtap7CBZnVOSqZKA1Oy5Iz/UixeHxN6qdy+jM8dXXG2W4CDgm4JerY9ZpM3drGxi
	ch6eD4QDNfghREcMJYR4RxnSHotNaugD1yBAeVHEaEkLFmtf506cfSr7HxcsjCf8dkEDbzDXkd9
	/BxiklL+3s3JcbktcLhoJjK58godoTR3vVobb15LqsO73yfwhGCFaT7JjXiDB2aD0EyItK/8fa7
	LTfx+/fcCMUKXw26FL4RaKzaImVXFrX6PPQ=
X-Google-Smtp-Source: AGHT+IEVxUuITR/wzyFw6qIoT0c3oit0CVnTDSvtSeM3xER/wmrXowTqiP+WvfpMdZAvTPbFh+lgDw==
X-Received: by 2002:a05:6000:2d07:b0:382:372a:5718 with SMTP id ffacd0b85a97d-385c6ec02cemr966412f8f.26.1732692379309;
        Tue, 26 Nov 2024 23:26:19 -0800 (PST)
Message-ID: <298c4fb8-4879-4471-90c0-3a4aa0151686@suse.com>
Date: Wed, 27 Nov 2024 08:26:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/36] Introduce NS8250 UART emulator
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Connor Davis <connojdavis@gmail.com>, Juergen Gross <jgross@suse.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 David Scott <dave@recoil.org>, Rahul Singh <rahul.singh@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
 <c08bd940-a2eb-4fb8-9f8d-2c5f3f1fab54@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: <c08bd940-a2eb-4fb8-9f8d-2c5f3f1fab54@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.11.2024 00:57, Andrew Cooper wrote:
> On 26/11/2024 11:21 pm, Denis Mukhin via B4 Relay wrote:
>> The patch series introduces initial in-hypervisor emulator for
>> NS8250/NS16x50-compatible UARTs under CONFIG_HAS_VUART_NS8250.
>>
>> In parallel domain creation scenario (hyperlaunch), NS8520 emulator helps
>> early guest OS bringup debugging, because it eliminates dependency on the
>> external emulator being operational by the time domains are created. Also,
>> there's no early console facility similar to vpl011 to support x86 guest OS
>> bring up.
>>
>> The NS8250 emulator is disabled by default.
>>
>> Series
>> ======
>> - patches 1-2: some miscellaneous random fixes, added into the series
>>   because I stepped into those while debugging NS8250 emulator.
>>
>> - patches 3-14: preparation fixes for xen console and NS8250 emulator.
>>
>> - patches 15-29: xen console driver cleanup and preparation for enabling
>>   physical serial console focus assignment to the guest VM w/ virtual NS8250.
>>
>> - patches 30-36: initial NS8250 emulator. That adds the I/O port emulator
>>   for legacy PC COM UARTs, Kconfig option, enabling emulator and libxl
>>   plumbing.
>>
>> Limitations
>> ===========
>> - Only x86;
>> - Only Linux guest tested so far;
>> - Only legacy COM{1,2,3,4} resources, no customization;
>> - Only Xen console as a backend, no inter-domain communication (similar to
>>   vpl011 on Arm);
>> - Only 8-bit characters;
>> - Baud rate is not emulated;
>> - FIFO-less mode is not emulated properly;
>> - RX FIFO interrupt moderation (FCR) is not emulated properly, TL16C750
>>   has special FCR handling;
>> - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
>>   friends);
>> - Assumes no ISA-device IRQ sharing;
>> - MMIO-based UART is not supported.
>>
>> Testing
>> =======
>>
>> I tested boot of HVM linux guest w/ OVMF as the virtual firmware.
>>
>> The emulator, if enabled via CONFIG_HAS_VUART_NS8250=y, will use COM1 (0x3f8)
>> resources by default.
>>
>> To test w/ virtual COM1, the guest kernel parameters should contain
>>   earlycon=uart,io,0x3f8,115200n8 console=uart,io,0x3f8,115200n8
>>
>> Xen is able to forward physical console input to the domain w/ virtual NS8250.
>> To switch the console focus press Ctrl+aaa. If console= is given to the HVM
>> kernel, then the user shall be able to see the login prompt on xen console once
>> console focus is switched to the HVM guest.
>>
>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> Hello,
> 
> Thankyou for this.Â  It's an excellent start for first posting to the list.

+1

> Two things stand out at a glance.
> 
> First, xmalloc/free are the expected functions to use,

Small correction - as of their introduction, it's xvmalloc() etc and xvfree()
which are to be used in new code.

One other, more general remark: Please send patches To: the list, with
maintainers Cc-ed. And please compose the Cc: lists per-patch - looking at
patch 2, there should really have been just a single person (Daniel) on Cc.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 07:27:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 07:27:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844492.1259992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGCSi-00023f-52; Wed, 27 Nov 2024 07:27:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844492.1259992; Wed, 27 Nov 2024 07:27: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 1tGCSi-00023Y-1K; Wed, 27 Nov 2024 07:27:48 +0000
Received: by outflank-mailman (input) for mailman id 844492;
 Wed, 27 Nov 2024 07:27: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGCSh-00023S-9L
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 07:27:47 +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 17764bfa-ac91-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 08:27:43 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3823cf963f1so4102176f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Nov 2024 23:27: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-3825fad6270sm15382800f8f.14.2024.11.26.23.27.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Nov 2024 23:27: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: 17764bfa-ac91-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmUiLCJoZWxvIjoibWFpbC13cjEteDQyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE3NzY0YmZhLWFjOTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjkyNDYzLjc3OTM0Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732692463; x=1733297263; 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=9imLK/RWMmt3dOa2HaY/dk0zqUKBQATRJ3bha5+E1D8=;
        b=E8y9c6LQkib29ohNUCjzIR887uhSSutELhrM4oQQBzPdW7U2YEE4Raih6KJsPbILLm
         VaAAhKM+KyMlyopH+dkOaMVLyxaNzoD36ndxci/LQZycb8U5JqnuW+1MfDn3Gkdom2Bo
         TWgM0lOrWZxbGqCeigQUXs5mvCSBHGyo6Ij+0AbVVsouxEF+UKWDdWO34rYBOOrXMRsg
         8lgF2rND/2Ft864AIPqWk92sZl/ujvrfDMSegI4w1P6I5DuycOY+iyGUIz1J+t0589Ei
         0PtN0UmexrPQof+JUxPKMtZ+yqCa18PaCEeZp+HQ1vUVy1dtpaJBnMvIXxlNE1tYaNoK
         MgYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732692463; x=1733297263;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9imLK/RWMmt3dOa2HaY/dk0zqUKBQATRJ3bha5+E1D8=;
        b=d/JnnAStkVm/dglFyne9i3WfxzjHRWRxVwkFSsDKbYCqwKMuOnveflT11KmAHi9+QI
         zqi3CtTfsltzlBvZ8k6ugJQB/7RBKwPRaJ59Wwj5M6wKLvGCYh+nD66aOsHI3XuxwPGD
         uHmad1J8MMgIJRMLtCEFhYUpc9F2tK6lgzv3+zUq6x4MLh7ypS7bXs1Tw8EOyn1fVvit
         kSLLQpvTwpAmAenSh/KCacthIxMRLBJHWdOmbgqlnAq6FKTivq6iqNl05jnene3PXluR
         WuzJ4m4Sl3w9h+I9lJ+e3WgrbsnLbAiUC0Ll4C7unDJ12+f7lLrBJ+45hjH8zxpxyJ0Z
         E6dA==
X-Gm-Message-State: AOJu0Yw3RL6H2TNxqdWJgZ69ozUDAsnpWjiRLcPPC1QJAkZyJO73KOAr
	IhN8u2G6i4AY2zoxZ5uoAOZckIM5teX9h2hQjoXOtoE4rvFPF1EiIEvsMEWDHA==
X-Gm-Gg: ASbGnctzYQRwgaEqVwjpij9CVRBoXAZqPQGR6Ft0dsemZwtNv2tJtCUgy6iB6qB+rrH
	/oDFTKNHXxmCHZX+WvywfeaszCdLjUBTOIcRTcLxv/vk/j6EwHwMroGrXj9C/2QuG/C6J7RgLnK
	DFegyoi43R56/ExAhJuuD2uyc+99QPnh0wycJOs80O6VbjKvN4n2uTn3GrPM+99CjvDRGvL9Zqi
	q8ahQ6pFn8NOAezPmiUxOtEkMOF3dMu0Ydo7npd13FGLaaZRHi4g1us+2hdESgeIwhZv7sEwQsq
	egZhd9rI/ojyws1t8GyJXwaAYnRMBfom9KU=
X-Google-Smtp-Source: AGHT+IG+N9zIJ9z6iykOnERHrSxB2Rx0bVET+rWNJBWASy31bwaVd+9dVnuPqTSiOMs2if7ecb/X+Q==
X-Received: by 2002:a05:6000:481b:b0:382:4f80:1359 with SMTP id ffacd0b85a97d-385c6eb74d4mr1630838f8f.20.1732692463147;
        Tue, 26 Nov 2024 23:27:43 -0800 (PST)
Message-ID: <8a22329c-dee0-4244-b69e-eb55a32f789a@suse.com>
Date: Wed, 27 Nov 2024 08:27:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/36] x86/setup: fix typo in acpi=off description
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
 <20241126-vuart-ns8250-v1-v1-1-87b9a8375b7a@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: <20241126-vuart-ns8250-v1-v1-1-87b9a8375b7a@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

(Cc list reduced)

On 27.11.2024 00:21, Denis Mukhin via B4 Relay wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 08:17:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 08:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844506.1260002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGDEt-0000qM-Oa; Wed, 27 Nov 2024 08:17:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844506.1260002; Wed, 27 Nov 2024 08:17: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 1tGDEt-0000qF-Lk; Wed, 27 Nov 2024 08:17:35 +0000
Received: by outflank-mailman (input) for mailman id 844506;
 Wed, 27 Nov 2024 08:17: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGDEs-0000q9-3S
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 08:17:34 +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 0a5908f5-ac98-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 09:17:28 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-434a90fed23so8641725e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 00:17: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
 ffacd0b85a97d-3825fad62e9sm15946436f8f.6.2024.11.27.00.17.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 00:17: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: 0a5908f5-ac98-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmQiLCJoZWxvIjoibWFpbC13bTEteDMyZC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjBhNTkwOGY1LWFjOTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjk1NDQ4LjI1ODcxOCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732695447; x=1733300247; 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=USh6vXam1LbUEiBfJ2czYuOzGdLb81gSU8rGdvPi/dQ=;
        b=L3o6o8NXlzwdljIIhxGD+/dXaDaPzSSX3GMQ5RfrMpKvpvHDG+ZfKbJDWfI52arhPc
         2g2Z4iipsOnv8oGTekL2E2SdjKUEecxAwSXNrfUJmeObdE1++91gOV6+R6X9SIsRsMCb
         5XAksGGrIECn2MvzN1ijte4oiALuerzhZYxuMMYmmbIRkrrRolfC+e29uBMPMugFzgVr
         SulOarnYupHXbkFBXdOkVQ5EkxMy6TS6i+997LCS7kx8h0asqLNv1lsHksX7IpoDbCmr
         yXZ1zH8aZpLDPBkUfqMy/o4t2YeUwAHYKUx1D75HSMdb/C3Sre8k06/J8mKX+USVL9EX
         /J7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732695447; x=1733300247;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=USh6vXam1LbUEiBfJ2czYuOzGdLb81gSU8rGdvPi/dQ=;
        b=q/CYk0/K080VatSuYL9GJZQx3lQKWqGll050twEybv07h5DAsi+YdgFwHdt9PX4zhl
         cvqxSOb1rNn3Sb/7bLNhyRQwIrTLngUcl/gv2WNRv13/fnTqBtZ7buq5nkhVopx3ZSBl
         sQx2jXdWjXfO8hPfhoaQaQpViITZ+9XWb38dyietMbQoCP+2Z4mgIWugZlT6ew60P2g3
         +IVNE8V+oxAt8iHDWTE4b/bN3YvbHo2jAeAPKNkBCg6C8Eya3fDsqmzHHhpmN7CyEGdK
         Y3XufqqZRMQKNNc1thPXBM9EafFmDvSOU6sWoyc6tuyOvvEPOtO57gVb+isb9w0eG8Ht
         n4mw==
X-Forwarded-Encrypted: i=1; AJvYcCXjlfKWfD2ALocPKrER47SbfoPFlvs43nBAGCRyc9ua9V31sU7l7SlMJXaIQLnRNrdshRRVBJ1wUpo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweA1bCFuG2U/DL303DPUTD9ulYMNfml8qItjy53+4bFcREo/7h
	+l+0NoDI4Dpib7DhlK+BUgrXiVkcViXUzaBKGyNqw4cTF8FXiN77ZpJ4NP8BhA==
X-Gm-Gg: ASbGncsM7l+Y0aHRfz1WZ5a54+HFCaK8ySr2yXohQ7fpGriQidh4ruQerwDu57i7RdX
	JwJbgI4lBI82mObOpewDlEs9jY9GgmjEEoj8tKHgRE1H2cgJrooJuuA7AbSlGGG+l3yWAF4wxvN
	RKpCx44Jbs5MNZOEKvgKDH4PWhLaE4r3AO5XK3Dmn1zmDRCevE64vSLHTpgDWs9TM/xcmEtZnvh
	Z+vINvAzIgbr6UIjSrggFl1KqL53Uz/uXaLhQHqdKJN6TDhEVm1TR/BUCLQNgIc6OkFEiqy78rH
	nQVog1rxmtXOm9ujXRGTjvYGyOUCh7PDMsQ=
X-Google-Smtp-Source: AGHT+IFLVXxoHP2v4PTFZbm0tpfWysjkXHZHg9Za6f3v+ZcRB0TpYOQNp1ZfvBhGLBDL/hcNYhN1wA==
X-Received: by 2002:a05:600c:4e8a:b0:431:5e3c:2ff0 with SMTP id 5b1f17b1804b1-434a9dc5003mr17789795e9.8.1732695447634;
        Wed, 27 Nov 2024 00:17:27 -0800 (PST)
Message-ID: <e0fc3cd0-8684-48c2-8cde-8849a0d085d5@suse.com>
Date: Wed, 27 Nov 2024 09:17:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v1] x86/APIC: Read Error Status Register correctly
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Javi Merino <javi.merino@cloud.com>, xen-devel@lists.xenproject.org
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <46949b57-242b-4724-8e81-62d205233829@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: <46949b57-242b-4724-8e81-62d205233829@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 21:07, Andrew Cooper wrote:
> On 26/11/2024 5:06 pm, Javi Merino wrote:
>> The logic to read the APIC_ESR was copied from linux in a commit from
>> 2002: 4676bbf96dc8 (bitkeeper revision
>> 1.2 (3ddb79c9KusG02eh7i-uXkgY0IksKA), 2002-11-20).  In linux 3.14,
>> this logic was fixed to follow the Intel SDM (see commit
>> 60283df7ac26 (x86/apic: Read Error Status Register correctly,
>> 2014-01-14) in the linux kernel).  The Intel(r) 64 and IA-32
>> Architectures Software Develover's Manual currently says
>> in Volume 3, Section 12.5.3:
>>
>>   Before attempt to read from the ESR, software should first write to
>>   it. (The value written does not affect the values read subsequently;
>>   only zero may be written in x2APIC mode.) This write clears any
>>   previously logged errors and updates the ESR with any errors
>>   detected since the last write to the ESR. This write also rearms the
>>   APIC error interrupt triggering mechanism.
>>
>> Update error_interrupt() to remove the first read and follow the Intel
>> manual.
>>
>> Signed-off-by: Javi Merino <javi.merino@cloud.com>
> 
> In Linux, this bugfix was further corrected with
> https://lore.kernel.org/lkml/alpine.LFD.2.11.1404011300010.27402@eddie.linux-mips.org/
> 
> However, Xen being 64-bit only doesn't care about the Pentium 3AP errata
> with writing to ESR.
> 
> I'm tempted to take this patch as-is, then do a followup on top to
> remove the remnants of the Pentium errata from Xen.Â  I don't think it's
> interesting to take bugfixes to bugfixes simply to delete them right after.

Hmm. I think the adjustment done here is actually removing part of the erratum
workaround, and hence ought to be removed in one go by your patch. The double
read there is - aiui - to be on the safe side wrt that erratum, i.e. to cover
the (at that time) potential case that the erratum would also be present on
CPUs with more than 3 LVTs.

In any event the comment ahead of the code being touched ought to be removed as
well, imo.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 08:20:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 08:20:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844514.1260012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGDIB-0002XG-7E; Wed, 27 Nov 2024 08:20:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844514.1260012; Wed, 27 Nov 2024 08:20: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 1tGDIB-0002X9-3L; Wed, 27 Nov 2024 08:20:59 +0000
Received: by outflank-mailman (input) for mailman id 844514;
 Wed, 27 Nov 2024 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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGDI9-0002X0-Gn
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 08:20:57 +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 85548b4e-ac98-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 09:20:54 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-382325b0508so4123358f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 00: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-3825fad60dasm15459818f8f.21.2024.11.27.00.20.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 00: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: 85548b4e-ac98-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg1NTQ4YjRlLWFjOTgtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjk1NjU0LjYzMTY0LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732695654; x=1733300454; 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=7++azYOEt1PIwkgm9g6gDrBsAQ4AefoT5/taWZCewm8=;
        b=Qc35Q4/hWmlolkMFc3fUPmTjt+8KOsVIUmwgEUSdg2g8z/+HSpfXKRe3Zjmk23U4Wq
         qtpAdOZA9cMfKMBdYg0sAEWHmMksZzXH+U/ZgwqP0v41j6IymoLUFaiXdJxFt05nEq7F
         aQ7mJUMehUshn4sugNZesDUqJvREBnwZW62UVTAgfXy9XpQ2I8rKs7fhrXJk+0Bc73hX
         Evx2Uqj3YTwyPhhENsQgwmmhpAesuZ+CzWjhxq5ZoHuh6yzE1Y3OZRyaBds8qXkxwOZp
         A+xYP9wAOtm0cxgW9fYavZlJsqMMK0Lbdzd/xwHmsSmWfDlmkKdF8SNHTO0Q1LpvUoyU
         PNQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732695654; x=1733300454;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7++azYOEt1PIwkgm9g6gDrBsAQ4AefoT5/taWZCewm8=;
        b=iPzaNtufgZ3QELsQZnrzx4ZS+KmI2MrmgWRKpHBboNBaFNwRupVOruVw8IyJFHTalj
         IFUSiMNbClhV7wo+EEf1fncTD+MbUSQFPjWeo8jP9KAwKWbIBhtuFm63FqcGR7ieHfyL
         HIEA7FRqDImzMUg33FFmxp6axRJ+F+a+jXQ4/1tjDCajHl5ogTXCcB/QZe2LP6A+x0KY
         RMHC9D4EqFtTw1c1qzH2Up5mDBK8LVEHoAviN9pdIYQxxP4lKSXuifjqYUL82S5ZZUxE
         JD+3eJZfp5P1yPn2legm3JKzBtH9ndqR/eXs4aJLDBhalpCFgV9DN3masQ+h7EliLjgS
         0YXg==
X-Forwarded-Encrypted: i=1; AJvYcCUh2PSS8zoSvshkdM/46SATp7nkhS6wDOXFKEV63TDGw9zt3IwFszziIlBW1aptwUAcDKZdg2emJn4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1a4aNkpkFMkxBH2FpEXu39mRpg89SdCzt4c78OGe/GnyFswX6
	XhZvhId8EbkzjH73pGMs/RWhRdPjx1Ku/ARcWQhONRq+kC2kXYSzmRaNYHArhQ==
X-Gm-Gg: ASbGncvhICG8CY9V6LWDxRl7ICigIUepsD/4VlGJZUFwhHdV0sc+jzMG4xD3xVrpLUY
	JoqDTGGvdoaMgnS89j16/nIFj2qlVulOQt6ik5BzZEcvskm2r6M9qdZkbmsHZdEXn7alKuuFhXB
	4KAOvCFMbYsDjNAkD4UdGVzCF4E4FaFNOwF+bFB/LcJhrNK5RY/AzRLRCLA41TojNNxJe/C72Kw
	P7AP5avT1P6/toUj4UVQ/v+QfnFh3JLFD1+bcZD2WpvS9YzbKfqIfrMVILU4jU1uodf4TfJJ6Sp
	LIvRLBOIAgP2YBqTqgSC8iOYrVBFcaNCrAM=
X-Google-Smtp-Source: AGHT+IFMc3rcmhax22J7cwzvNvc5NAq/QI1cq2X0YuPzSlpkXvphKK47SIvet4pz06OC9NekZgOdIA==
X-Received: by 2002:a5d:588e:0:b0:382:41ad:d8e2 with SMTP id ffacd0b85a97d-385c6edd470mr1219374f8f.39.1732695654062;
        Wed, 27 Nov 2024 00:20:54 -0800 (PST)
Message-ID: <a2efdf6c-ab52-4ab6-931e-0801844b4875@suse.com>
Date: Wed, 27 Nov 2024 09:20:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Javi Merino <javi.merino@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-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: <20241126205859.23090-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2024 21:58, Andrew Cooper wrote:
> @@ -1389,8 +1381,7 @@ static void cf_check error_interrupt(void)
>      unsigned int i;
>  
>      /* First tickle the hardware, only then report what went on. -- REW */
> -    apic_write(APIC_ESR, 0);
> -    v = apic_read(APIC_ESR);
> +    v = apic_read_esr();
>      ack_APIC_irq();

As indicated in the earlier reply, I think this comment should be dropped,
plus ...

> --- a/xen/arch/x86/smpboot.c
> +++ b/xen/arch/x86/smpboot.c
> @@ -422,7 +422,7 @@ void asmlinkage start_secondary(void *unused)
>  static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>  {
>      unsigned long send_status = 0, accept_status = 0;
> -    int maxlvt, timeout, i;
> +    int timeout, i;
>  
>      /*
>       * Normal AP startup uses an INIT-SIPI-SIPI sequence.
> @@ -444,8 +444,7 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>      /*
>       * Be paranoid about clearing APIC errors.
>       */
> -    apic_write(APIC_ESR, 0);
> -    apic_read(APIC_ESR);
> +    apic_read_esr();

... the one here. With that and with Javi's change folded into here,
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 08:38:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 08:38:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844525.1260021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGDZN-0004Nh-Ke; Wed, 27 Nov 2024 08:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844525.1260021; Wed, 27 Nov 2024 08:38: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 1tGDZN-0004Na-HQ; Wed, 27 Nov 2024 08:38:45 +0000
Received: by outflank-mailman (input) for mailman id 844525;
 Wed, 27 Nov 2024 08:38: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=p/Ub=SW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tGDZL-0004NT-HO
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 08:38:43 +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 0070375b-ac9b-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 09:38:40 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-a9a0ec0a94fso914790066b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 00:38:40 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b2f045asm673371366b.53.2024.11.27.00.38.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 00:38: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: 0070375b-ac9b-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAwNzAzNzViLWFjOWItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjk2NzIwLjA2OTU2NSwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732696719; x=1733301519; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=OjjvxKboRXZPNee3B/TmfmSTltTUEFR2gR/s08zGRrw=;
        b=jvy2P5K+9f3ePrIsdPzOIcmtDrl5pQz4MH3iQIJTLVsateyYSJQYtOIO430NITHzq+
         Am92zAOfQ1eNWAcfQcaHwxfMz0uNXpPnVGyGTP2JFAgp9vwDpu4k+5xBb+TLpaoQosZF
         bXk2TAzlUP7gT9f4SspFNqkzCTEokD1kdLC44=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732696719; x=1733301519;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=OjjvxKboRXZPNee3B/TmfmSTltTUEFR2gR/s08zGRrw=;
        b=FFOpY/n0aiN9CPjqPD3TAON7IbKh4OHaLxLFWS9nQ92WeZjdwupbK3HkkRnHQxqXWb
         kWpw9f4AiGyUH14YJex1s2fZoCtBLAUdrxgpUGqJd/muDiX02bCCfux4fS5Zk0hd5LHx
         jAkItCWW5unGlhVBGZQDy45bQZeBYpyXmXyPSESGuwjWMXX6lt00JTR3x8XerKaeBJEH
         WtymifHsU2jr5by0zCGBfVQzBhFWvQy4G34a1Ezayfxrt0GMITTXvM42MGAhXSWSFtsm
         StGqxjPGDCN8os/TxQq8WAmvDiIEZKcBIBiC9KFUNZ2r4wOIansHGmAKMGHaMhjOqCA9
         s6AQ==
X-Gm-Message-State: AOJu0Ywgnt/nbtw7SnpppTCc79wXrjP822isNRUxI2Bh+imcsQ9KcKCg
	++CAcchka7tlQhV7HnRbD3mMLifJjqyi9Q+BTFXxJ447zj4CdQUyWSXBCqczEXk=
X-Gm-Gg: ASbGncsxBhXPr9llc+KTSfyCvCaMmmVXtYZhp4qLfKLgjCWcFRR8eXzzHvMcqPCcwUa
	2BH98mQd4xvKfd69qr8EZ6dM/WdDsAU3HqnPHYanrqQhpJZsrkbzeAjykWQRTrI/x6Dv4//q81J
	5DRN9gYPMErpMjjlTBTxmP0Ml+ve8UnLoZbGao0OA7lYGSWoczwD7HP2vxFJUUZ6YuM4UKGsZ0A
	8LFDgbmqVGhCW7iDwJPXvfOKdyVWhXD1+oIzEIgkS8i14bMI1RjMauNmzQ=
X-Google-Smtp-Source: AGHT+IHWmnHvJVcXC/Va7CGjRO8UsRelgZhzA0jTOLPzR2IZCT9Dl4XnRDQf+uRWo5O8ve7V503NRQ==
X-Received: by 2002:a17:906:2181:b0:a9a:bbcf:a3a2 with SMTP id a640c23a62f3a-aa580f57adcmr114571466b.34.1732696719479;
        Wed, 27 Nov 2024 00:38:39 -0800 (PST)
Date: Wed, 27 Nov 2024 09:38:38 +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>,
	Jan Beulich <JBeulich@suse.com>,
	Javi Merino <javi.merino@cloud.com>
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
Message-ID: <Z0bajveZYoKu3qE4@macbook>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20241126205859.23090-1-andrew.cooper3@citrix.com>

On Tue, Nov 26, 2024 at 08:58:59PM +0000, Andrew Cooper wrote:
> The SDM instructs software to write 0 to ESR prior to reading it.  However,
> due to an original Pentium erratum, most logic skips the write based on there
> being more than 3 LVTs; a stand-in to identify the Pentium.
> 
> Xen, being 64bit, doesn't need compatibility for i586 processors.
> 
> Introduce a new apic_read_esr() helper, quoting the SDM to explain why a
> function named apic_read_esr() has a write in it too.
> 
> Use the new helper throughout apic.c and smpboot.c, which allows us to remove
> some useless reads of APIC_LVR.  This in turn removes the external callers of
> get_maxlvt(), so make it local to apic.c
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Just a couple of nits.

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Javi Merino <javi.merino@cloud.com>
> 
> Based on Javi's patch correcting error_interrupt()
> 
> Bloat-o-meter reports:
> 
>   add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-269 (-269)
>   Function                                     old     new   delta
>   get_maxlvt                                    48       -     -48
>   __cpu_up                                    1465    1417     -48
>   clear_local_APIC                            1109    1050     -59
>   setup_local_APIC                             942     828    -114
> ---
>  xen/arch/x86/apic.c             | 29 ++++++++++-------------------
>  xen/arch/x86/include/asm/apic.h | 24 +++++++++++++++++++++++-
>  xen/arch/x86/smpboot.c          | 17 ++++-------------
>  3 files changed, 37 insertions(+), 33 deletions(-)
> 
> diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
> index b4f542d25918..017d97054b06 100644
> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -142,7 +142,7 @@ int get_physical_broadcast(void)
>          return 0xf;
>  }
>  
> -int get_maxlvt(void)
> +static int get_maxlvt(void)

I think returning unsigned would be more natural here, IMO uint8_t
would also be fine since it's the size of the field.

>  {
>      unsigned int v = apic_read(APIC_LVR);
>  
> @@ -209,9 +209,7 @@ void clear_local_APIC(void)
>          apic_write(APIC_LDR, v);
>      }
>  
> -    if (maxlvt > 3)        /* Due to Pentium errata 3AP and 11AP. */
> -        apic_write(APIC_ESR, 0);
> -    apic_read(APIC_ESR);
> +    apic_read_esr();
>  }
>  
>  void __init connect_bsp_APIC(void)
> @@ -488,7 +486,7 @@ static void resume_x2apic(void)
>  
>  void setup_local_APIC(bool bsp)
>  {
> -    unsigned long oldvalue, value, maxlvt;
> +    unsigned long oldvalue, value;

uint32_t would possibly be better here, since those are used to store
the contents of a register, but would need changes in the print
formatters.

>      int i, j;
>  
>      BUILD_BUG_ON((SPURIOUS_APIC_VECTOR & 0x0f) != 0x0f);
> @@ -614,17 +612,13 @@ void setup_local_APIC(bool bsp)
>          value = APIC_DM_NMI | APIC_LVT_MASKED;
>      apic_write(APIC_LVT1, value);
>  
> -    maxlvt = get_maxlvt();
> -    if (maxlvt > 3)     /* Due to the Pentium erratum 3AP. */
> -        apic_write(APIC_ESR, 0);
> -    oldvalue = apic_read(APIC_ESR);
> +    oldvalue = apic_read_esr();
>  
>      value = ERROR_APIC_VECTOR;      // enables sending errors
>      apic_write(APIC_LVTERR, value);
> -    /* spec says clear errors after enabling vector. */
> -    if (maxlvt > 3)
> -        apic_write(APIC_ESR, 0);
> -    value = apic_read(APIC_ESR);
> +
> +    value = apic_read_esr();
> +
>      if (value != oldvalue)
>          apic_printk(APIC_VERBOSE,
>                      "ESR value before enabling vector: %#lx  after: %#lx\n",
> @@ -719,11 +713,9 @@ int lapic_resume(void)
>      apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
>      apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
>      apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
> -    apic_write(APIC_ESR, 0);
> -    apic_read(APIC_ESR);
> +    apic_read_esr();
>      apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);
> -    apic_write(APIC_ESR, 0);
> -    apic_read(APIC_ESR);
> +    apic_read_esr();
>      local_irq_restore(flags);
>      return 0;
>  }
> @@ -1389,8 +1381,7 @@ static void cf_check error_interrupt(void)
>      unsigned int i;
>  
>      /* First tickle the hardware, only then report what went on. -- REW */

I think the comment can be removed now, as there's no "tickle" in this
context anymore?

> -    apic_write(APIC_ESR, 0);
> -    v = apic_read(APIC_ESR);
> +    v = apic_read_esr();
>      ack_APIC_irq();
>  
>      for ( i = 0; i < ARRAY_SIZE(entries); ++i )
> diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
> index d8eda6df6d86..337eb5cf6642 100644
> --- a/xen/arch/x86/include/asm/apic.h
> +++ b/xen/arch/x86/include/asm/apic.h
> @@ -151,6 +151,29 @@ static inline u32 get_apic_id(void)
>      return x2apic_enabled ? id : GET_xAPIC_ID(id);
>  }
>  
> +static inline uint32_t apic_read_esr(void)
> +{
> +    /*
> +     * The SDM states:
> +     *   Before attempt to read from the ESR, software should first write to
> +     *   it. (The value written does not affect the values read subsequently;
> +     *   only zero may be written in x2APIC mode.) This write clears any
> +     *   previously logged errors and updates the ESR with any errors detected
> +     *   since the last write to the ESR. This write also rearms the APIC
> +     *   error interrupt triggering mechanism.
> +     */
> +    if ( x2apic_enabled )
> +    {
> +        apic_wrmsr(APIC_ESR, 0);
> +        return apic_rdmsr(APIC_ESR);
> +    }
> +    else

There's no need for the else case if the previous branch unconditionally
ends with a return.  Can reduce indentation.

> +    {
> +        apic_mem_write(APIC_ESR, 0);
> +        return apic_mem_read(APIC_ESR);
> +    }
> +}
> +
>  void apic_wait_icr_idle(void);
>  
>  int get_physical_broadcast(void);
> @@ -161,7 +184,6 @@ static inline void ack_APIC_irq(void)
>  	apic_write(APIC_EOI, 0);
>  }
>  
> -extern int get_maxlvt(void);
>  extern void clear_local_APIC(void);
>  extern void connect_bsp_APIC (void);
>  extern void disconnect_bsp_APIC (int virt_wire_setup);
> diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
> index 79a79c54c304..7c77125fe715 100644
> --- a/xen/arch/x86/smpboot.c
> +++ b/xen/arch/x86/smpboot.c
> @@ -422,7 +422,7 @@ void asmlinkage start_secondary(void *unused)
>  static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>  {
>      unsigned long send_status = 0, accept_status = 0;
> -    int maxlvt, timeout, i;
> +    int timeout, i;

You could make those unsigned I believe.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 08:44:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 08:44:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844537.1260032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGDer-00069v-AF; Wed, 27 Nov 2024 08:44:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844537.1260032; Wed, 27 Nov 2024 08:44: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 1tGDer-00069o-7d; Wed, 27 Nov 2024 08:44:25 +0000
Received: by outflank-mailman (input) for mailman id 844537;
 Wed, 27 Nov 2024 08:44: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=p/Ub=SW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tGDeq-00069i-Di
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 08:44:24 +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 cb6e9cd2-ac9b-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 09:44:20 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-aa55171d73cso104940166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 00:44:20 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b5c621dsm675173066b.205.2024.11.27.00.44.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 00: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: cb6e9cd2-ac9b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNiNmU5Y2QyLWFjOWItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNjk3MDYwLjY1MTk5Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732697060; x=1733301860; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=VSmPktWq4mIMkqnELRn+ZMLmjAalzVk99B0FpFPEyW0=;
        b=DSpswVYq1DGRZ/cTDEniGVSR1b3ouObP5Gc5OglewFKx6wV+WWN0stu0RaLZmggOh0
         7pvarw2LeFhxYLTDyECjgeyaNDpPhIAXiVCRfFbwWYZ+buJy19qqDdivBlegSN3N/k4i
         6AlHEP/mCek1KGDfWM8ZQfejbfAV/AVq6nJT8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732697060; x=1733301860;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=VSmPktWq4mIMkqnELRn+ZMLmjAalzVk99B0FpFPEyW0=;
        b=HzkzAzwYYQu3KA+LvN8iDwC5LmmZh/rbINH1xTjejN5rdDoUABKCTBZKUAVQ15ziXS
         qvVDB0TQHKCJFNRtUwTFuMyGpyMQdFL+xHLVOzfEJ3bq8qYYzTluE0rlnPyJYA4SWknt
         XujBNf0V/SzJvIpzNqbKeO/eOnM5PUq9NA5yw2XJaAaUBE/J46680cl4JjCZGoM50O/0
         +Y6SgzqZ4fsKqSeUSkfd+SiPUdwpPZ0l+1A/zdEJIczaXERyqCnhuL5hYFa7WnigYuDy
         FDLBpX75bYuoVtjge1q7nDy45xiY0UKsqSU0oEnbBk88SKBsChXipGPqwyl+8dVYYtTP
         k53g==
X-Gm-Message-State: AOJu0YxHieX+SppcG+rPrhi41EkzIwKGSvXvHVLemMi/MUkerismjamm
	9OYbUURDBvTU/7iJ5DE0BVyMxzLBTFhLquHFQUyZ/qgGvFHAw467rOYjSUnVZA8=
X-Gm-Gg: ASbGncugVlMsym5FQ2OSzVlvW3A0ftQybTBd3yTUyXxekyq3VzKgGlmRsjPJ/VydNnS
	trNs+PreGzSxUMk5Da/WRJn83k4Qvbd867e+NTIr1vsJh6T+go2qR130K68dN0RnwB6stYLO6t3
	Mi6biEtdC2kJXsB31OlAIF+63BlYBlHo/5GqW2H7snrzbMMJuAwMBezuzUyWZOgZ7kwfU9zsFJH
	PUidJSZ/kg54B4SXKDgm4OyTr1merSw4oFdLcMmgL729TsvNozsd1M9AyE=
X-Google-Smtp-Source: AGHT+IGgc8XaxwnroXjNBDSqOxXT6f6ChhFWwLeWiFevE4cTuBcRLA/1KkV9+BFShoh5qJOCMP7Xqg==
X-Received: by 2002:a17:907:7711:b0:a9a:eeb:b26a with SMTP id a640c23a62f3a-aa57fa9996dmr233121766b.1.1732697059268;
        Wed, 27 Nov 2024 00:44:19 -0800 (PST)
Date: Wed, 27 Nov 2024 09:44:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Javi Merino <javi.merino@cloud.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [XEN PATCH v1] x86/APIC: Read Error Status Register correctly
Message-ID: <Z0bb4t5AIm_NJkFE@macbook>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>

On Tue, Nov 26, 2024 at 05:06:15PM +0000, Javi Merino wrote:
> The logic to read the APIC_ESR was copied from linux in a commit from
> 2002: 4676bbf96dc8 (bitkeeper revision
> 1.2 (3ddb79c9KusG02eh7i-uXkgY0IksKA), 2002-11-20).  In linux 3.14,
> this logic was fixed to follow the Intel SDM (see commit
> 60283df7ac26 (x86/apic: Read Error Status Register correctly,
> 2014-01-14) in the linux kernel).  The Intel(r) 64 and IA-32
> Architectures Software Develover's Manual currently says
> in Volume 3, Section 12.5.3:
> 
>   Before attempt to read from the ESR, software should first write to
>   it. (The value written does not affect the values read subsequently;
>   only zero may be written in x2APIC mode.) This write clears any
>   previously logged errors and updates the ESR with any errors
>   detected since the last write to the ESR. This write also rearms the
>   APIC error interrupt triggering mechanism.
> 
> Update error_interrupt() to remove the first read and follow the Intel
> manual.
> 
> Signed-off-by: Javi Merino <javi.merino@cloud.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Not sure whether the plan is to squash your commit and Andrews.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 08:54:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 08:54:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844547.1260042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGDo8-0007z0-5t; Wed, 27 Nov 2024 08:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844547.1260042; Wed, 27 Nov 2024 08:54: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 1tGDo8-0007yt-2E; Wed, 27 Nov 2024 08:54:00 +0000
Received: by outflank-mailman (input) for mailman id 844547;
 Wed, 27 Nov 2024 08: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGDo6-0007yn-Qh
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 08:53:58 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2220fc24-ac9d-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 09:53:55 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-53deefc2ceeso1804259e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 00:53: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
 a640c23a62f3a-aa53e293078sm484478466b.125.2024.11.27.00.53.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 00:53: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: 2220fc24-ac9d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjIyMjBmYzI0LWFjOWQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjk3NjM1LjU3MjEwNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732697635; x=1733302435; 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=vWOM9EU/589qDesvGxCx+aZRLeWB2DvMrheW+dYh4ug=;
        b=OMZh9fv+x9EoFykFYmBZjo77CaXJLleIXOvvyfNgB9pvSuMZLpfl9R3R8GrLNDVC1e
         /dapLXovEb8ckhyjjwQsY1ZtCY9Q7vrBd3LFUb0xvXoxk+Zf4zOpCISSaHzcLW4zzFMD
         lSGLNNNgo0XF2sB6T7S6KkftmEXYlt/SAqy3Ye354fbXqeQZhDeIzRHTJgooInppbnWO
         0f2rYcGJxuEkSsNm33/YRFTcO3t9lRlSzNC9Rcrx7d4ygaOaw5iqgTC/Inzm6yyZNE2n
         NAmTSxPw2pExW23iGLDzoCC2wrEy+6cUMa9KdiGnn0Rg9TLVd49EdDNw4LWbDhO6aAr2
         J23g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732697635; x=1733302435;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vWOM9EU/589qDesvGxCx+aZRLeWB2DvMrheW+dYh4ug=;
        b=sb2NjW+U9DVTne4QYtKMJaaczrE1+5M6Xd7TDnG9Q0EoTMdRDDdwW3AmmA4a8t8Qvf
         7aV9x1hsEm5VDgvo7cH/xnaw4maSJhrBhRoELWKpx1sYkUSdEKcnjEgruq95s1PyAZfK
         ePX1/+9docCZVsAcfxNXGyE72lsWADc+BdINzMMVED7w0tSwodMXjN6ngCkHgpOeR/as
         uA/q6SJzXLnlhjEU+nFYp4Hk2e7Mt0eHwO0U8dPWjyCVghoDbJB4NhReH4yxrmtH+rr6
         FvJqmCdUQmRNXnZEu/HIzSx+w2o0Y0v3fd+SlVCNKN91upKlfTJC93N9sy/cKtFDN4VS
         R3Dw==
X-Forwarded-Encrypted: i=1; AJvYcCU06cCR/EKMT5MRvdGotO4jbj4C8DihhvxbP9jzDLhTbue80B2el3rFGTDUoiKqcNjhu2Qx/yLTPPA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzyv1cqwBWKfnYj1+8ycTjdztuu0XquGA+XFWASiV7qS99+MBDA
	hZBwWKu9efW/UvSWRVdYPgKhHEKGli2mNZDu8+eaaDhxeXpY6o70Wwv1i2xrSg==
X-Gm-Gg: ASbGnctr8U0FxOfAEn7FOf+xs5TBab1/iZH0xgxspzwVAgC9cUriIb80WI8RMIlaUGj
	+MQ2fd9Yr/THHxvxnHsRy4+IxQ2GhpjTW5YArNlYLGP53Ohk2ywmu6I096/8FGaWTCVNREJQwrX
	jLnyNLGwz/6he2LU7sNgJ1iQX0r2KtsHywGipWr7aT6qlOed+ckBpWXn/HLP2ksfvkaK5Ot9gI4
	TZQQ/p8O3pPLRoQKB+YKuUwVB9f1ZR38tXpDc6OctFt1+LTAfqlxxk/2C9jFlgG2gWTxUii/DVw
	RVUwKDZz3c1FBRUmF+d5+YY+zcCQXj6Q3sA=
X-Google-Smtp-Source: AGHT+IEDoMFgY2dzFWatDu8KWAJqSfVor54wtkFu3Qu7vWKxMONw5BcCyqiFVYaUlDnagJWFH7mq9w==
X-Received: by 2002:a05:6512:2216:b0:53d:ee0e:b466 with SMTP id 2adb3069b0e04-53df010b19emr1613837e87.38.1732697634877;
        Wed, 27 Nov 2024 00:53:54 -0800 (PST)
Message-ID: <7c6b410d-c397-41a0-9ab9-7fe1bf0c27ec@suse.com>
Date: Wed, 27 Nov 2024 09:53:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] x86: suppress ERMS for internal use when
 MISC_ENABLE.FAST_STRING is clear
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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <66aa8b0c-c811-483b-839e-49ca817a4672@suse.com>
 <b0678e09-a253-42bb-81c1-6fe17c9caf99@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: <b0678e09-a253-42bb-81c1-6fe17c9caf99@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 15:27, Andrew Cooper wrote:
> On 25/11/2024 2:27 pm, Jan Beulich wrote:
>> Before we start actually adjusting behavior when ERMS is available,
>> follow Linux commit 161ec53c702c ("x86, mem, intel: Initialize Enhanced
>> REP MOVSB/STOSB") and zap the CPUID-derived feature flag when the MSR
>> bit is clear. Don't extend the artificial clearing to guest view,
>> though: Guests can take their own decision in this regard, as they can
>> read (most of) MISC_ENABLE.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> TBD: Would be nice if "cpuid=no-erms" propagated to guest view (for
>>      "cpuid=" generally meaning to affect guests as well as Xen), but
>>      since both disabling paths use setup_clear_cpu_cap() they're
>>      indistinguishable in guest_common_feature_adjustments(). A separate
>>      boolean could take care of this, but would look clumsy to me.
>> ---
>> v3: New.
> 
> I'm not sure this is a terribly wise course of action.Â  First, ...

It's been a long time, but I wonder if it wasn't you who pointed me at that
Linux change.

>> --- a/xen/arch/x86/cpu/intel.c
>> +++ b/xen/arch/x86/cpu/intel.c
>> @@ -337,8 +337,18 @@ static void cf_check early_init_intel(st
>>  		paddr_bits = 36;
>>  
>>  	if (c == &boot_cpu_data) {
>> +		uint64_t misc_enable;
>> +
>>  		check_memory_type_self_snoop_errata();
>>  
>> +		/*
>> +		 * If fast string is not enabled in IA32_MISC_ENABLE for any reason,
>> +		 * clear the enhanced fast string CPU capability.
>> +		 */
>> +		rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
>> +		if (!(misc_enable & MSR_IA32_MISC_ENABLE_FAST_STRING))
>> +			setup_clear_cpu_cap(X86_FEATURE_ERMS);
> 
> 
> ... this is a thread scope MSR, and commonly does have a BIOS option,
> and has been observed to be asymmetrically configured.Â  (On Intel at
> least.Â  AMD has no equivalent control that I'm aware of.)
> 
> It needs checking in init_intel() and on every CPU, and to use plain
> clear_cpu_cap().

Except that we have no plain clear_cpu_cap(), and for a good reason: What
would be the use of it when invoked post-boot? All we'd get is an
inconsistent view of the system, as cleared_caps[] is consumed only by
identify_cpu() (and early_cpu_init()).

If we have to fear asymmetry, shouldn't we rather update APs to what the
BSP has?

> But, we virtualise MSR_MISC_ENABLE (along with MSR_PLATFORM_INFO) to
> *all* guests in order to advertise CPUID Faulting (even on AMD systems
> which have an architectural CPUID faulting).

How does CPUID faulting come into the picture here?

>Â  This means that all guests
> reliably see FAST_STRINGS disabled, even when it happens to be active.

DYM "reliably see FAST_STRINGS set to the host value"? For both PV and
HVM we only make some adjustments to the value read from hardware. We
don't fiddle with FAST_STRINGS there either way.

Plus that's nothing the patch here changes, so it's not clear to me
what you expect me to do in this regard.

> It turns out that Linux will hide ERMS because of this, adversely
> affecting Linux's choices in the same way that PVShim is about to be
> impacted.
> 
> 
> I see no option but to virtualise MSR_MISC_ENABLE more properly on Intel
> systems, but it's not without it's complexity.Â  One #MC errata
> workaround involves clearing FAST_STRING and leaving it disabled until
> the next warm reset (Xen has no knowledge about this, but Linux will if
> provoked).

As per above, that's a separate change then. I'm neither changing
MISC_ENABLE here, nor do I do anything affecting what guests would see
there.

> The ability to modify the FAST_STRING bit is without enumeration; It's
> simply existed since the P4, and I'm unsure whether we want to honour a
> guest's choice to disable fast strings, or simply ignore what the guest
> wants and echo it's choice back to it.

Perhaps the latter, at least as a first step. Otherwise we get into
playing with the MSR on context switch.

>> --- a/xen/arch/x86/cpu-policy.c
>> +++ b/xen/arch/x86/cpu-policy.c
>> @@ -590,6 +590,15 @@ static void __init guest_common_feature_
>>       */
>>      if ( host_cpu_policy.feat.ibrsb )
>>          __set_bit(X86_FEATURE_IBPB, fs);
>> +
>> +    /*
>> +     * We expose MISC_ENABLE to guests, so our internal clearing of ERMS when
>> +     * FAST_STRING is not set should not propagate to guest view.  Guests can
>> +     * judge on their own whether to ignore the CPUID bit when the MSR bit is
>> +     * clear.
>> +     */
>> +    if ( raw_cpu_policy.feat.erms )
>> +        __set_bit(X86_FEATURE_ERMS, fs);
> 
> ... this breaks migration of a VM between hosts with different Fast
> String settings.

Isn't this broken already? They'd observe each host's FAST_STRING setting.
I'm extending that brokenness to CPUID, yes, and ...

>Â  ERMS is perf-hint bit, so wants to be set in the Max
> policy, with Default taking the host value.Â  There are several other
> examples of this pattern, but I've not made a magic string for it yet.

... I will certainly switch to this model to avoid doing so. Using raw rather
than host value though as the default, because of the clearing of the feature
in the host policy (implicit from its clearing via setup_clear_cpu_cap()).
I.e. keeping the hunk above as is, but additionally set the bit in the max
policies (in guest_common_max_feature_adjustments()).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 09:08:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 09:08:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844558.1260052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGE1d-0001QV-9q; Wed, 27 Nov 2024 09:07:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844558.1260052; Wed, 27 Nov 2024 09: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 1tGE1d-0001QO-65; Wed, 27 Nov 2024 09:07:57 +0000
Received: by outflank-mailman (input) for mailman id 844558;
 Wed, 27 Nov 2024 09:07: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=WdPy=SW=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tGE1b-0001QI-TT
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 09:07:56 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2416::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13fe876b-ac9f-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 10:07:52 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SJ0PR12MB7476.namprd12.prod.outlook.com (2603:10b6:a03:48d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.13; Wed, 27 Nov
 2024 09:07:47 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8182.019; Wed, 27 Nov 2024
 09:07: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: 13fe876b-ac9f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjBiIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjEzZmU4NzZiLWFjOWYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNjk4NDcyLjI1MDc4NSwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hDyJe/rEG800QLhoLbE3qVv76J3SuUB+29VtHRhjCKEjt7+W2Ra6Luf52+T6qePKwhZWn1PMgCbgHCaGKyb7WL1jVaQZLDEREapLf1tSXtwTDPkbPtVDn6WK6rjI7qydkzweYOXcI4hSfNMuWw/m0Y6YjwhHQZRk5ruPYzcY/rg1ysdWQNvsLEcRhDfBDv+VMuPv1gOo2D/7JZRZ3xeDe8Oyhs2Pa4C8/EKZVKbkWSgECFwDG8o3yk68QLiDdF6LYY6TX6kT91cal5D5P/eZ045d7ZHUXpHIG5BbGE9kJecobv0j9FCl+bYauXC3F3R0BsMA3sa5j0BJy0l6lj0+9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QQ/9DMJ3XSpMo9JbXqbzPoxcqou/vUYdFyXOUC8mhIA=;
 b=TO1Rh5e8QOc0T2morrRY5gFkYZnlCvKXkHU/5eSryZcf79ZUcsg9NK0r0uccagRjZcS+A3YFq3tSZYBN98KNYlD6iIQ3mNmJUn/gEbO6SAoooWcpmAWJhq4lOacBaLEUuT7r2jWDzUkZi34MXGKedhFGR9aPN588Nji+ymLDvjiN+v6wmV+WjbgvZyr7RTnIndPauFxOJzyxqRUP9ju0bT7zE+ffGRKIr2ORbnT/1+/cEoSxIZIf3pvtBzNUGLUyTumvFUE112XMn9+sNljhlFwqmPj/tL7HxMN71KGLKkp63fwf26qsOx53i2/qh/8Q9CLlyQ/8nHVpDG7qZ+BmZA==
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=QQ/9DMJ3XSpMo9JbXqbzPoxcqou/vUYdFyXOUC8mhIA=;
 b=yV2tTsuFdREVbswv8EMnXPJx8Yy2TZ9317l9YNNRjExTg2IlQn9+vgN4BmfpYEecWP6hHS3DNZxX3EXJK+4Gzb17x4XTP4LwaN7ddfuDIfTrnFNokp5QKn6p9V7QN6iVibMLtemeBZTbAGZar/Ke6iDZEMUzPxqaED7mzwWsyFc=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci: Add resizable bar support
Thread-Topic: [PATCH] vpci: Add resizable bar support
Thread-Index:
 AQHbNaIlMxf8mJcywkeNRFmHEai1qbK08gcAgACKfwD//4ZQAIABzRcAgAAfLACAAB0/gIABIxcAgAAMOoCABNwTAIABfwWAgAFxTQD//+JeAIABss4A///tiAAAzKybgAACnTYAADSCfYD//7wRgIABpe2A
Date: Wed, 27 Nov 2024 09:07:46 +0000
Message-ID:
 <BL1PR12MB5849BE8978652C3372C235C8E7282@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <ZzY1O-zrcWB6Ra3q@macbook>
 <BL1PR12MB5849FC8077C7C6035F1D3E15E7242@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzczqznFbixk3Vfu@macbook>
 <BL1PR12MB5849894360DB8D96073AB21EE7272@BL1PR12MB5849.namprd12.prod.outlook.com>
 <ZzyIk0KipX8LPZNv@macbook>
 <BL1PR12MB5849FC514034CDFC2F68BA6FE7212@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz2lgkjgRoZ7Sr5Q@macbook>
 <BL1PR12MB5849F5382CF3A03C080C4CA4E7222@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Zz8Cwj3KJ1BIBEg_@macbook>
 <BL1PR12MB584977971D2C0A00443A1A79E72E2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Z0Rx2IXqqvrLaIIq@macbook>
 <BL1PR12MB5849B85C116A74D138FF65AAE72F2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <c8aa7b64-b5b5-4ac3-b0c0-67d74441588e@suse.com>
In-Reply-To: <c8aa7b64-b5b5-4ac3-b0c0-67d74441588e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8182.018)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|SJ0PR12MB7476:EE_
x-ms-office365-filtering-correlation-id: d4daa21f-f75f-4743-7e8b-08dd0ec2f602
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?jZk/8I5z1iSVBUhRcO9W2dG6CayoBnSFSoaTXwIkorzbRNMO+DdasJLN52?=
 =?iso-8859-1?Q?RBEmf2aFbxFhFmSWldWQl8WsSlM4Y/PS8rlDwhSmayvDEHM6eEYwPg2nJf?=
 =?iso-8859-1?Q?tid30gFKxl7ooPrccRFF47mri//dSv+FfVtm8gFSWXphKUDo906o6CqGCn?=
 =?iso-8859-1?Q?HNK0m7LSxnsWVJdzEhi700pXF5G+SF4cPEaM1lvSSLP6+T+DAsYcRYapBg?=
 =?iso-8859-1?Q?7ugiGJbhEzJD0W3zl23Qf/GJbXiW5H7XXv5WqowpndR43kFtdHyzsEbguU?=
 =?iso-8859-1?Q?YZiXMCAZ8nEOzuh6UgvilQXCAYBPvYSbi1W4Eo/iRSLlH/4oLNYhBCYqp+?=
 =?iso-8859-1?Q?ggOOte+xIhBZxiOyH8BsjBscWpW5RMLWnQoNIeVOtPVqGASNAmq9reu8yk?=
 =?iso-8859-1?Q?qqMC92R4qv0sSWY4yHiXbJJaAjQ6fHbp6WQ3nhwfWS2EAf63scf9G3c4U5?=
 =?iso-8859-1?Q?Vc3aEgAxkaHDcfpOOnke8s6tI0QtQLfBNpl812Y3l94zbqUnjbZEvsjYXj?=
 =?iso-8859-1?Q?wqfdlNfPHLrJU4G83Ca9TzG/EJ7A+3W6Z7uYfi+GDs5Ut7nSz5Qt7pXLZv?=
 =?iso-8859-1?Q?ajIjwkM39a/RV+dnbaBxEQsO958hGpSXe9avWSN8DG+XVRVgxyGYH6oxRi?=
 =?iso-8859-1?Q?Qo/7YDALGycZmEjUYBkJQLLhd5X5BUqrgx5bB7E8DeityZEQuoIpxn/9t7?=
 =?iso-8859-1?Q?glCVq2+dz4f66khkxH22qyCrPQU6Z2ItcVGSaGgAV3v5Tc1S8/qUMdg/Fr?=
 =?iso-8859-1?Q?vvD8KgqK8SAV7jUglaRoN2WDBCblLsaZbUV0UmUxP/wbHZSTXJIwCpHU6M?=
 =?iso-8859-1?Q?o3N+YoQvcqxBBjd1smSAZTz8G+Wqd6yNXZ1pC7XPeft7HtioYRU/iC47Nx?=
 =?iso-8859-1?Q?atIM3PekUNwky1lowVvqEoesIW9aCh+3BagHjC0O9X59A7yMWPmdC/bYvs?=
 =?iso-8859-1?Q?Pdo1yTC5BiNrh4UuuZFXVtbGJl3OjzxR+uCYwi+hpI//ETKCwtQ37JCHvN?=
 =?iso-8859-1?Q?+YO+jDqgl7U7TBU2bHYJhuWst7vS2tRrSxRNvGs3eTivHPDNay4E5G5Fzd?=
 =?iso-8859-1?Q?jzynK7wiyZsf0XsilSvpuHUb/Bky78aiqBvnbEYG0Ud9/P4eWIyHU1YU7x?=
 =?iso-8859-1?Q?dmxi9gZojIqscUjmUrDN+wrPMe7TybF0YSggT8qG/dFS1FK7cwWe2vXz2M?=
 =?iso-8859-1?Q?Ct1GDjCOro8XIn8Xe139UvKEyqGBvC+Pygxx88Dcl8Ml05bZeAOxAYaMnU?=
 =?iso-8859-1?Q?FoPznTLN4KZhCbUGnHySmH5m3emOILCWoWuAu2eDQN0A+svQ4ekD0nY2BH?=
 =?iso-8859-1?Q?cDrPmBufUURZvpCFNO3H59sbf9A9hwMovwy3cOb/o32Ew5sbJ2k4PyT1x5?=
 =?iso-8859-1?Q?6cw68RuH49OIkh4tpGrE5XA7oE5TjQrai3t3AQkQrnAoBSw47PE78wvlYY?=
 =?iso-8859-1?Q?RlCSLAVvYB+VC6Yh46XZNtcpOHRq435tulqdZQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?etoLz6qdZi5H7wxA1uGX31znbgC0CXqVtJvbSRCZE09vP9zzEMqn4ZouSK?=
 =?iso-8859-1?Q?f3qAJxsmc7HjkZo53zKZU3Zsh0/GiltwWIcys4L62dIzZ+eHslhtoJqs3l?=
 =?iso-8859-1?Q?Vz6PfDaIjy5+DEMAVAWfA/T834ClNv0dCwHhIlZXAES8JX6xBPvLRoKa/B?=
 =?iso-8859-1?Q?NHqmNOBF+IcAK6+1RKEVPlCNkvuvyovK7kWfshpo5LuqG6CJwHnXo0EXvZ?=
 =?iso-8859-1?Q?SgNMNzihlx6s4zHPVmtvgjtU4uWqe87JJO8xpMTBQApUJWULe4S6I3QQyW?=
 =?iso-8859-1?Q?+317TXqvIcK78+wbuhGOD7jbgcFmn+u8+Kte54bxcGJybZdTM2QFqFR/nf?=
 =?iso-8859-1?Q?xm/TaFlsLGMhEjH9MFF5f8M+/FUdZMg0X1oz1o5n6pdNmuePBD2CKvIN+t?=
 =?iso-8859-1?Q?Zc8RN5n94w6A67FC79RZHb2b8aVPuzYa7L6rWFH5S5yX4BzTPSirtWjOIj?=
 =?iso-8859-1?Q?+cZ7EuoO6wTn/9mxQc02UB2d0JS+Sy/MAFLdCFTUOmTXp+9x12YIz03Cc8?=
 =?iso-8859-1?Q?XiV0pGIzUVwov5mvf34BGgRaF4gYAUk4SN/pb857n6nG4aRIUa6qiFM3yM?=
 =?iso-8859-1?Q?aSBzxNJrcvu988JTilNz9wx9BLA+m+UP5esy7LHuTdWMIOIoLOjjE4gMNl?=
 =?iso-8859-1?Q?kFrAgcHJFooY2ZMskZoDbkI+xX8C3Ke1k0N3mxlTO9G8RGebyD10aC1Mnk?=
 =?iso-8859-1?Q?ocbrTnXGvXpM5yyA5TziewZpFAfoxj7vrtY4h1HcAqPdAW4Wlt1hAhVL/O?=
 =?iso-8859-1?Q?5R0TzhbPk64rQXavblpFl+TaEX4TIjql6KMQUMnJUseppSrMBS0r0LqFke?=
 =?iso-8859-1?Q?XXahYLfys5DKIG/7EbFFYU9DzOCCFybSJ13+ZWk6yVSeyRWrZL1lYRAFVi?=
 =?iso-8859-1?Q?kwnxSHWNjRQ/Tc7M5qNd+hYS80mo7SlQ0ObH8QOvsqmRQ/V2xd3zRLh1kC?=
 =?iso-8859-1?Q?+tXb817CBuW6oVyjPm5yq8m9Eb50wGO/eKSpp3bYnHJnXSaGnPVUsOlKB6?=
 =?iso-8859-1?Q?x5RNra2AA6HmJveMDn4xFyJvmaJRZ09uRw8yeGrAb2H5qSXDhPRtxhT4pO?=
 =?iso-8859-1?Q?ykXEGVZcOvSXywcGpqth95Kvg7/Aa5hbZY57xq5EWotGBge8ATwoIeysSf?=
 =?iso-8859-1?Q?lEWp0JfT1r/EzqEKsSXu/qspvurWTDQeZcTyKVjNMxsO8dfNXAwAAUQh9e?=
 =?iso-8859-1?Q?NkbTxCoZtctHgi1jh1gKh+ld1eBXL3T5OdA3CpDRx/SzDHZzmOVm5AXerS?=
 =?iso-8859-1?Q?kFkjkvfKeIQ5HFvyR7otDel5Xpbi9P6ADwe+fKaV6TGZipgGYqUR4CYhJY?=
 =?iso-8859-1?Q?pjuFeYmO/iHjm136WmWuCXzVaHsAFCI1UrJ2dLU/Ws5Ox5kzcDEmpmWqG1?=
 =?iso-8859-1?Q?OHpOOm5r7SZgGgrREisT47LkwJ1mJac52Bq0GWkkauXumGSxQc1XYoC7lr?=
 =?iso-8859-1?Q?iDcYQYCD7QljVWF95fMa3YLlNIK6pPiiMqe4FV/2iyjBkWxE66Qku3kCZ+?=
 =?iso-8859-1?Q?0bFAbo8mL5/acv+e/DLKWY9cigyBfAHbdmuvdhHvPU7VSPDtkW5F9seYVj?=
 =?iso-8859-1?Q?AvKqRuZ62qpytYi3SCkgU2JKDrcjOsbTCWosOP9vbCBgH7VKT8FXCCD+qg?=
 =?iso-8859-1?Q?Sz2ES6bNvEF08=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <463D46E9E8AEA14FA0264A3408C4B654@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4daa21f-f75f-4743-7e8b-08dd0ec2f602
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2024 09:07:46.9658
 (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: p4Pn2uVbAXAobJP7M/xk3ix2CVxXIgQ2dfj8DpmXQ0fxSkyxmXj6qfSD9MMScVyp7XhS/uWPOAJimw220TronA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7476

On 2024/11/26 17:47, Jan Beulich wrote:
> On 26.11.2024 07:02, Chen, Jiqian wrote:
>> On 2024/11/25 20:47, Roger Pau Monn=E9 wrote:
>>> On Mon, Nov 25, 2024 at 03:44:52AM +0000, Chen, Jiqian wrote:
>>>> On 2024/11/21 17:52, Roger Pau Monn=E9 wrote:
>>>>> On Thu, Nov 21, 2024 at 03:05:14AM +0000, Chen, Jiqian wrote:
>>>>>> On 2024/11/20 17:01, Roger Pau Monn=E9 wrote:
>>>>>>> On Wed, Nov 20, 2024 at 03:01:57AM +0000, Chen, Jiqian wrote:
>>>>>>>> The only difference between our methods is the timing of updating =
the size.
>>>>>>>> Yours is later than mine because you updated the size when the dri=
ver re-enabled memory decoding, while I updated the size in time when drive=
r resize it.
>>>>>>>
>>>>>>> Indeed, my last guess is the stale cached size is somehow used in m=
y
>>>>>>> approach, and that leads to the failures.  One last (possibly dummy=
?)
>>>>>>> thing to try might be to use your patch to detect writes to the res=
ize
>>>>>>> control register, but update the BAR sizes in modify_bars(), while
>>>>>>> keeping the traces of when the operations happen.
>>>>>>>
>>>>>> This can work, combine our method, use my patch to detect and write =
the size into hardware register, and use your patch to update bar[i].size i=
n modify_bars().
>>>>>> Attached the combined patch and the xl dmesg.
>>>>>
>>>>> This is even weirder, so the attached patch works fine?  The only
>>>>> difference with my proposal is that you trap the CTRL registers, but
>>>>> the sizing is still done in modify_bars().
>>>>>
>>>>> What happens if (based on the attached patch) you change
>>>>> rebar_ctrl_write() to:
>>>>>
>>>>> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>>>>                                       unsigned int reg,
>>>>>                                       uint32_t val,
>>>>>                                       void *data)
>>>>> {
>>>>>     pci_conf_write32(pdev->sbdf, reg, val);
>>>>> }
>>>>>
>>>> If I change rebar_ctrl_write() to:
>>>> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>>>                                       unsigned int reg,
>>>>                                       uint32_t val,
>>>>                                       void *data)
>>>> {
>>>>     printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sb=
df, reg, val);
>>>>     pci_conf_write32(pdev->sbdf, reg, val);
>>>> }
>>>>
>>>> I can see three time prints, it can't work.
>>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
>>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
>>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 528, val 102
>>>>
>>>> If I change rebar_ctrl_write() to:
>>>> static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>>>                                       unsigned int reg,
>>>>                                       uint32_t val,
>>>>                                       void *data)
>>>> {
>>>>     if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY=
 )
>>>>         return;
>>>>     printk("cjq_debug %pp: bar ctrl write reg %u, val %x\n", &pdev->sb=
df, reg, val);
>>>>     pci_conf_write32(pdev->sbdf, reg, val);
>>>> }=20
>>>>
>>>> I can only see one time print:
>>>> (XEN) cjq_debug 0000:03:00.0: bar ctrl write reg 520, val d40
>>>>
>>>> The check prevented the two times incorrect write actions.
>>>>     if ( pci_conf_read16(pdev->sbdf, PCI_COMMAND) & PCI_COMMAND_MEMORY=
 )
>>>>         return;
>>>>
>>>> And why my original patch can work too, the check:
>>>> +    ctrl =3D pci_conf_read32(pdev->sbdf, reg);
>>>> +    if ( ctrl =3D=3D val )
>>>> +        return;
>>>> happened to play the same role as PCI_COMMAND_MEMORY check.
>>>
>>> Thank you very much for figuring this out.  So in the end it's a bug
>>> in the driver that plays with PCI_REBAR_CTRL with memory decoding
>>> enabled.
>> Yes, I think.
>> During driver initiation, it calls pci_rebar_set_size to resize BARs,
>> after that, it calls pci_restore_state->pci_restore_rebar_state to resto=
re BARs,
>> the problem is when calling pci_restore_rebar_state, memory deoding is e=
nabled state.
>> I will discuss with my colleagues internally whether this needs to be mo=
dified in amdgpu driver.
>=20
> Why would memory decoding be enabled at that time? pci_restore_config_spa=
ce()
> specifically takes care of restoring CMD only after restoring BARs. And
> pci_restore_config_space() is invoked by pci_restore_state() quite a bit
> later than pci_restore_rebar_state(). So the driver must (wrongly?) be
> enabling decoding earlier on?
I got some information from my colleague, driver save and restore the devic=
e's state immediately
without disable decoding since the state are the same to fix a bug of drive=
r.
So, it is driver's problem, not Xen or Roger's method. But as Roger said, i=
t is better to trap Rebar_ctrl to prevent similar problems.

>=20
> Jan

--=20
Best regards,
Jiqian Chen.


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 09:38:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 09:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844571.1260062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGEVB-0005mu-LN; Wed, 27 Nov 2024 09:38:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844571.1260062; Wed, 27 Nov 2024 09:38: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 1tGEVB-0005mn-I6; Wed, 27 Nov 2024 09:38:29 +0000
Received: by outflank-mailman (input) for mailman id 844571;
 Wed, 27 Nov 2024 09:38: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGEV9-0005lz-Rv
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 09:38:27 +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 5898d019-aca3-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 10:38:24 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5cefa22e9d5so7722212a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 01:38: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
 a640c23a62f3a-aa547ffb152sm419872066b.62.2024.11.27.01.38.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 01: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: 5898d019-aca3-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU4OThkMDE5LWFjYTMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzAwMzA0LjAxMjYyMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732700303; x=1733305103; 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=9exAmv/Jersz29noNodm0Pe78x0jkVG6BLy0mxEeEks=;
        b=Nu+BtX7pNP2UxRSeEB+xMPbyuXu44MjeobhgVursWy36CWP6oLN+zT/KFOuVgIuGKC
         AwKVmRBCaQqzAVZxECcLdsLw9v2dWnL//yVYPbPDflqxMsvu1IOPRvkxzFxoijXKctTJ
         Bblz56ul/8iEn3w4Anu9BAw4OHLP3QyKUcrZjDLpvHTchjETmCNBgLmDG7JI5Hvd1TSw
         UIiWlV3WJ3xabOW2+E/jTOjngT0HWYx2C2DIREgNu5mUcfZI0jvocM8nzsxDBxAyEz6F
         Ft6vddEhF0vGRusC3zkc7mKOvCKZM5lS12ccxgYK1MQmc+u+ZYGlV2oXkELnhocu12Nq
         kb7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732700303; x=1733305103;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9exAmv/Jersz29noNodm0Pe78x0jkVG6BLy0mxEeEks=;
        b=eCDN0a4AfmBI3dWfO8rWj2VBbDtwvM2toCjVnaWKuGSLoUrFDdHJs7iQcFEj/YIToR
         1Wpm2mlWSNfKKpzzUAydYQO1k4wpKwFZO0cCQTDsXAc8VlYlqQhZwhHnLBID7Vxl8Nk+
         rGohufgOuxeaL0YQLy3pGS4GTqLtccUEL2fueULHdCpwV7sDdKzfa3p4jle3ll+GpSsN
         tirnG5b6Rtw2kv4jhklHhrz+bObnP4d1SUxYo8MXQwQ6usXFeb+rg8YRsRxWrPqBvEtd
         c68kCW99wRkfnpDdiuOGnc97ml05n+9SVojMWvbpow/JDucBeuDGpX09dN/aET1x3ewQ
         stFQ==
X-Forwarded-Encrypted: i=1; AJvYcCVED/NeZuDmjwIXn3Y+XCFtkjfNcMH5balBeq5A3uzI1ihjok4G6ngBjnbHWcOgcFxzpZJz4yYXV+Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXR0RXJ+anj12iiY9rGjCfIkyQCuSPaRIwdWJNhbFGtPjwipfC
	6srTYjs3m6oQPc64Y8jgvhP5p1B2pxakpUS/F8EdJ1DGvUrmb/aXnQkZ8k+Kaw==
X-Gm-Gg: ASbGnct1evl/iNZ/MHQPoBEax0Of4C8eWjRtnNT9WokMpXq4xU2qRes8CDnzCu8EjmJ
	o6rpCF2tOdbAL2PlocA117aXktbO1vqOoQY2OtX5wM+RgRx74ig6Q4qr0lufydC/NS5xv7CDCvI
	ql9Jw1M6YKMVSl78lJopN2xK40syFC9i7n1SNdDX+jAjOPE0Ij+cpWgtzdFHrI53ph5uAJ9w4He
	7ogFl/CmvHiE5ADS49VDapKGHmOikXdmJdVudjKjeRF7gt3CL8emv0/bhNEjuFIekhpMW1F7ZCy
	lr3DAFV5pI3ZIZrwvlSTSmO0hgSXYmge/I8=
X-Google-Smtp-Source: AGHT+IHr2rR11saKPXNTU4WSOsbJ8FeXEsdfLC9R+B/hxLuVpWzneo5dQ5B0UwKfaM0o9tQ0zu4kHw==
X-Received: by 2002:a17:906:3d21:b0:aa5:3fa9:e90c with SMTP id a640c23a62f3a-aa580f56c51mr149533666b.32.1732700303296;
        Wed, 27 Nov 2024 01:38:23 -0800 (PST)
Message-ID: <6c3a913d-5a44-4e35-84cd-ac839369400f@suse.com>
Date: Wed, 27 Nov 2024 10:38:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] x86: re-work memset()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <62b3403f-3800-4c1e-a7a2-165ebfac04c0@suse.com>
 <2bc5221d-e54b-47f2-9f2e-ff76c0d74c90@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: <2bc5221d-e54b-47f2-9f2e-ff76c0d74c90@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 18:13, Andrew Cooper wrote:
> On 25/11/2024 2:28 pm, Jan Beulich wrote:
>> ---
>> We may want to consider branching over the REP STOSQ as well, if the
>> number of qwords turns out to be zero.
> 
> Until FSR{S,M} (Fast Short Rep {STO,MOV}SB), which is far newer than
> ERMS, passing 0 into any REP instruction is expensive.

Is this a request to add such a conditional branch then, perhaps patched
out when FSRS is available? And then perhaps also for the JZ that's
already there?

> I wonder how often we memset with a size less than 8.

Hence why I raised the point, rather than putting the jump there directly.

>> We may also want to consider using non-REP STOS{L,W,B} for the tail.
> 
> Probably, yes.Â  We use this form in non-ERMS cases, where we're advised
> to stay away from STOSB entirely.

Yet then we'll end up with three conditional branches - do we really want
that?

> Interestingly, Linux doesn't have a STOSQ case at all.Â  Or rather, it
> was deleted by Linus in 20f3337d350c last year.Â  It was also identified
> as causing a performance regression.Â 
> https://lore.kernel.org/lkml/CANn89iKUbyrJ=r2+_kK+sb2ZSSHifFZ7QkPLDpAtkJ8v4WUumA@mail.gmail.com/T/#u
> although the memset() path was not reverted as part of the fix
> (47ee3f1dd93bcb eventually).
> 
> Yet ca96b162bfd2 shows that REP MOVSQ is still definitely a win on Rome
> CPUs.
> 
> I expect we probably do want some non-rep forms in here.
> 
> Do you have any benchmarks with this series?

What I specifically measured were the clear_page() variants. I didn't do
any measurements for memset() (or memcpy()), first ad foremost because
any selection of inputs is going to be arbitrary rather than representative.

>> --- /dev/null
>> +++ b/xen/arch/x86/memset.S
>> @@ -0,0 +1,30 @@
>> +#include <asm/asm_defns.h>
>> +
>> +.macro memset
>> +        and     $7, %edx
>> +        shr     $3, %rcx
>> +        movzbl  %sil, %esi
>> +        mov     $0x0101010101010101, %rax
>> +        imul    %rsi, %rax
>> +        mov     %rdi, %rsi
>> +        rep stosq
>> +        or      %edx, %ecx
>> +        jz      0f
>> +        rep stosb
>> +0:
>> +        mov     %rsi, %rax
> 
> Could you use %r8/9/etc instead of %rsi please?Â  This is deceptively
> close to looking like a bug, and it took me a while to figure out it's
> only correct because STOSB only edits %rdi.

Well, I can certainly switch (the number of REX prefixes will remain the
same as it looks), but the fact that STOS, unlike MOVS, doesn't touch
%rsi is a pretty basic one.

Does your request extend to all uses of %rsi (and %esi), or merely the
latter two (across the REP STOS)?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:03:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:03:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844584.1260072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGEth-0001c9-Jk; Wed, 27 Nov 2024 10:03:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844584.1260072; Wed, 27 Nov 2024 10: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 1tGEth-0001c2-Fj; Wed, 27 Nov 2024 10:03:49 +0000
Received: by outflank-mailman (input) for mailman id 844584;
 Wed, 27 Nov 2024 10: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=bcf5=SW=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1tGEtf-0001bw-NO
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:03:47 +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 e3076296-aca6-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 11:03:44 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5cefa22e9d5so7750022a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 02:03:44 -0800 (PST)
Received: from premium-test ([217.156.233.154])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa533b04d87sm548596166b.97.2024.11.27.02.03.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 02: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: e3076296-aca6-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmYiLCJoZWxvIjoibWFpbC1lZDEteDUyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUzMDc2Mjk2LWFjYTYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzAxODI0LjY5NTY1LCJzZW5kZXIiOiJqYXZpLm1lcmlub0BjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732701824; x=1733306624; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=zmbLlkb4NmSUIxKM+PDbkcfS5R5LagIULrwe7hZwjx4=;
        b=No7bWRLTAjhHK76eB+Afrz0kkUlo++GX/22d/rl2yfU+cRnEkGTSiKH6VCWZS+Nwd6
         n9App3ZNjYC9K1Ai9NnNX+wK6VO/LXV/Zxx3QmZ8ki7dkTyuCzeiNeLRNVCVKosk+BD+
         6RGSi08o6LcQepNIKcJThZ+W/k3caIsngEGQE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732701824; x=1733306624;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=zmbLlkb4NmSUIxKM+PDbkcfS5R5LagIULrwe7hZwjx4=;
        b=bcjrExNBJ9aj3ecH09TOEBf0oarSOleomHfeLAcfS2O13c0cMzxyoGPW/8lmTOKSNU
         nOcgh8XkmH8/Nce9BQR9bKBH4OHjZ2PVPoDZESMHaLr8UETf9HrK8kAOx38mOsh6zy5x
         QJ11qMSCON3vTGf0ImgGGmEPC8FwLVFhcXwegGuHStGbkV/aucW2WC6zqyza24KB7WQa
         VmEQixniCgMhhasizc8fikd9Ny9t3zwLdRdAPuB0VWf54ASu9kWGDQHyLvYeLrwAKAMg
         x+uoK5lzorzaiA0L588T7zh6t/TmafTLMSAfflODItB9SsRNK+2Z0LcYxT1AsI+/2No2
         dVEQ==
X-Gm-Message-State: AOJu0YwMys+ytiHJRzlKwVnTMLBS+lrvdmns36ywvAW3Z2YEe7ZfDo+7
	ke+ayqV0gOsiuVGC+vZY+/7wXpXr9537O29JO36tDrK3kWfQUZYRw3sHvkI6GNW9HwRhWY1c8iZ
	GGmg=
X-Gm-Gg: ASbGncvaxJGPCY3K+JlBYc/DpUkCqC8WkNXRzT02iTFfSCFwi9qu15aE+UKTLwRq9es
	FI8BcEKlYNIz3xwigPYZAtmvBLWj2zWvr1IbhKEI44/8GYzfUS9EAlCjG9XgD/d/UUe5xOTVqbj
	huVlyy7zv0RGYiZvj4V8hLkR8Whzw2Nji5Zv5IfgYs/kL9RossSe/hpUQQfCjuCJazdALgZxuBC
	W/v97CazQ648gIHmbEcR7TkDIcrSeXUgDnfyG9xOq4CS1jB4o9Dyrg=
X-Google-Smtp-Source: AGHT+IE5e9Bk1LlDSDkiJ05es4jAKIrYx3W9397tREINncKiQrBRi/fJW7aJjkhkFUltb9lSvI7UPA==
X-Received: by 2002:a17:906:18b1:b0:aa5:3853:5541 with SMTP id a640c23a62f3a-aa581044cc9mr156112866b.41.1732701824000;
        Wed, 27 Nov 2024 02:03:44 -0800 (PST)
Date: Wed, 27 Nov 2024 10:03:43 +0000
From: Javi Merino <javi.merino@cloud.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Jan Beulich <JBeulich@suse.com>, Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
Message-ID: <j743is6qrolxcblkz7q5ta46l2y6vad3e4vetcrgtziqpdpo6y@q7tsoe45ltdf>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20241126205859.23090-1-andrew.cooper3@citrix.com>

On Tue, Nov 26, 2024 at 08:58:59PM +0000, Andrew Cooper wrote:
> The SDM instructs software to write 0 to ESR prior to reading it.  However,
> due to an original Pentium erratum, most logic skips the write based on there
> being more than 3 LVTs; a stand-in to identify the Pentium.
> 
> Xen, being 64bit, doesn't need compatibility for i586 processors.
> 
> Introduce a new apic_read_esr() helper, quoting the SDM to explain why a
> function named apic_read_esr() has a write in it too.
> 
> Use the new helper throughout apic.c and smpboot.c, which allows us to remove
> some useless reads of APIC_LVR.  This in turn removes the external callers of
> get_maxlvt(), so make it local to apic.c
> 
> 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>
> CC: Javi Merino <javi.merino@cloud.com>
> 
> Based on Javi's patch correcting error_interrupt()

Fair enough.  I was only looking at error_interrupt() and missed the
bigger picture. This patch is more comprehensive and this is very nice:

> Bloat-o-meter reports:
> 
>   add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-269 (-269)
>   Function                                     old     new   delta
>   get_maxlvt                                    48       -     -48
>   __cpu_up                                    1465    1417     -48
>   clear_local_APIC                            1109    1050     -59
>   setup_local_APIC                             942     828    -114
> ---
>  xen/arch/x86/apic.c             | 29 ++++++++++-------------------
>  xen/arch/x86/include/asm/apic.h | 24 +++++++++++++++++++++++-
>  xen/arch/x86/smpboot.c          | 17 ++++-------------
>  3 files changed, 37 insertions(+), 33 deletions(-)

Reviewed-by: Javi Merino <javi.merino@cloud.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:05:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844593.1260082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGEv5-00027y-TD; Wed, 27 Nov 2024 10:05:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844593.1260082; Wed, 27 Nov 2024 10:05: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 1tGEv5-00027r-Q6; Wed, 27 Nov 2024 10:05:15 +0000
Received: by outflank-mailman (input) for mailman id 844593;
 Wed, 27 Nov 2024 10:05: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGEv5-0001bw-1F
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:05:15 +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 165e1c15-aca7-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 11:05:10 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3824446d2bcso5849757f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 02:05: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
 ffacd0b85a97d-3825fbf2b29sm15874392f8f.107.2024.11.27.02.05.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 02:05: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: 165e1c15-aca7-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzYiLCJoZWxvIjoibWFpbC13cjEteDQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjE2NWUxYzE1LWFjYTctMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzAxOTEwLjg1MDM2MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732701910; x=1733306710; 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=XbN0fTqnwZN/9GMSVARgsA9xzl0rOvRlu2VemrrXBqo=;
        b=Ha0BcRzyps5jr9eeFyjltz+vIgvbYKobcsOvyYN+uUEhQix7tLAgN9i5P7JrT0pE9k
         zTTPKQLXkomcODBcYAy8hZ9lMkEW/eMkG/5WUbhZkgL8wEmdmbH9OnmbqbipSJ6QJmfb
         hFkRvSQsfhsLnEGlvVHVaxybnxb/aj+m29x7l107KjTP2bKWgPxtzXxJ990cnkEMl91d
         kUUrXPkTvfnX5rTomoS7v9qIGKSpxt71YJtyucMHqDa8mlL0NOFUGaj5pklnfy4fhSOt
         duKAl1erbQEoCb0o4C6BwRN4DHGJ/5PQTh3O7gp4YfbQUIUq6K6n8L+4O+Tvc3kPkOyJ
         mG0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732701910; x=1733306710;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XbN0fTqnwZN/9GMSVARgsA9xzl0rOvRlu2VemrrXBqo=;
        b=VEJmqHp8cmrNX4bHIOZmX0xOofW56jpg3c1DTD2HseqEIoPyn1pWIkjNEl8aQQyAo+
         ACCFKHcV762Qn9aijcrvOb86b7xHAMj2txEUqFTDDspIxouF2lizaMHoY7A+xSEv9aXL
         xhXAKqwyPW7dgjh3Wtz31S++4DB48VR2KXeRBctra0eWFnXZdBTEEjjAPMB3EXKPGyJd
         myWzlwnKoF4fr5I+ORFl1sVekQtYvx4mOPjpgHehkcMgQJDGiMukpeih+fLsrAh9HyX2
         hXbSNv4G3qBJ6vepAhAz4Ogcfb9PVmK8noidtc58hx1yGtRIpgMpMGrLwkckd4pDTFQW
         ZW9g==
X-Forwarded-Encrypted: i=1; AJvYcCV20Aswt0xhZp/mzfpo14OsPELO18yyL6NnEgz79mDdTWv1VFucOTK9KI1C6tSD9Pbe5PebUKsEM8g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzDM64/oJQkkaVcNwqq4fm+Z8u57hHQCCmP4wP8Yjj5CPi6oPK
	HKstpBQ7HL7SM3LtbsaO2caUC+DgwkWcsLNGGKyAFjA2mCk0XpRAbPZ8SpleqQ==
X-Gm-Gg: ASbGnct8Y/xE/s0auZ8SQae0Np10JTf4ABfFVuV/GdSn6UnODzO/l9Fp8SX5wPwElw9
	MGK8KXHqCId3srWmNBDXTldLspCDKGVF8Wbem/Ua8X8X/Qp8aPTsunrINRpLa0GnpE8VJP/bki9
	r8nyrZ43aKJfNw1QdgZLknCtJTGRMzCRkkqhELgJ/TaNEcR9G4nHEtqOD9cHIn6YVgNIUTGbI02
	RZ3puaaOBqA2q6AehHYwEba0DXwp4hZsKx236wGgb3YjumfXghK8mc8RYo8ebwxdXCMi7rH0HAn
	zviMdri/KoRD4JRdwBR0bKMaGY2NHrpnPrQ=
X-Google-Smtp-Source: AGHT+IGncZKls3asm/pUuE5CeZx6sbvc4b8607Ecs9neY3O8quJyH/QidD1ZukbHwCAqPD1UU1Ks7g==
X-Received: by 2002:a5d:584c:0:b0:382:4f7a:7a87 with SMTP id ffacd0b85a97d-385c6edd128mr1965953f8f.48.1732701910172;
        Wed, 27 Nov 2024 02:05:10 -0800 (PST)
Message-ID: <1fccb300-ffec-40c2-8eff-c8a7a97c29c7@suse.com>
Date: Wed, 27 Nov 2024 11:05:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] x86: re-work memcpy()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <c2aa4307-230b-4287-b9e4-6d7d84dba490@suse.com>
 <2cb12ee6-3acd-4667-9882-4d36466a7da8@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: <2cb12ee6-3acd-4667-9882-4d36466a7da8@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 20:16, Andrew Cooper wrote:
> On 25/11/2024 2:28 pm, Jan Beulich wrote:
>> Move the function to its own assembly file. Having it in C just for the
>> entire body to be an asm() isn't really helpful. Then have two flavors:
>> A "basic" version using qword steps for the bulk of the operation, and an
>> ERMS version for modern hardware, to be substituted in via alternatives
>> patching.
>>
>> Alternatives patching, however, requires an extra precaution: It uses
>> memcpy() itself, and hence the function may patch itself. Luckily the
>> patched-in code only replaces the prolog of the original function. Make
>> sure this remains this way.
>>
>> Additionally alternatives patching, while supposedly safe via enforcing
>> a control flow change when modifying already prefetched code, may not
>> really be. Afaict a request is pending to drop the first of the two
>> options in the SDM's "Handling Self- and Cross-Modifying Code" section.
>> Insert a serializing instruction there.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> We may want to consider branching over the REP MOVSQ as well, if the
>> number of qwords turns out to be zero.
>> We may also want to consider using non-REP MOVS{L,W,B} for the tail.
> 
> My feedback for patch 2 is largely applicable here too.

Sure, and I'll apply here whatever we decide to do there.

>> --- a/xen/arch/x86/alternative.c
>> +++ b/xen/arch/x86/alternative.c
>> @@ -153,12 +153,14 @@ void init_or_livepatch add_nops(void *in
>>   * executing.
>>   *
>>   * "noinline" to cause control flow change and thus invalidate I$ and
>> - * cause refetch after modification.
>> + * cause refetch after modification.  While the SDM continues to suggest this
>> + * is sufficient, it may not be - issue a serializing insn afterwards as well.
> 
> Did you find a problem in practice, or is this just in case?

It's been too long, so I can now only guess that it's just in case. The
comment change, otoh, suggests otherwise.

> I suspect if you are seeing problems, then it's non-atomicity of the
> stores into memcpy() rather than serialisation.

How would atomicity (or not) matter here? There shouldn't be any difference
between a single and any number of stores into the (previously executed)
insn stream.

>>   */
>>  static void init_or_livepatch noinline
>>  text_poke(void *addr, const void *opcode, size_t len)
>>  {
>>      memcpy(addr, opcode, len);
>> +    cpuid_eax(0);
> 
> This whole function is buggy in a couple of ways, starting with the
> comments.
> 
> The comment about noinline and control flow changes is only really
> relevant to 32bit processors; we inherited that comment from Linux, and
> they're not applicable to Xen.
> 
> AMD64 (both the APM, and SDM) guarantee that Self Modifying Code will be
> dealt with on your behalf, with no serialisation needed.
> 
> Cross-modifying code needs far more severe serialisation than given
> here.Â  We get away with it because alternative_{instructions,branches}()
> are pre-SMP, and apply_alternatives() is on livepatches prior to them
> becoming live.
> 
> 
> I happen to know there's an AMD CPU which has an erratum regarding Self
> Modifying Code and genuinely does need a serialising instruction, but I
> don't know which exact CPU it is.

Maybe I ran into that on one of the two older AMD systems I routinely
test on every once in a while?

> If we're going to put a serialising instruction, it should be a write to
> CR2.Â  We don't care about 486 compatibility, and it's faster than CPUID
> and much much faster if virtualised because it's unlikely to be
> intercepted even under shadow paging.
> 
> But, it would be nice not to put serialisation in the general case to
> begin with, especially not into the livepatching case.

If you're aware of an erratum there, how can we get away without any
serialization? I can surely switch to a CR2 write, and I can also make
this dependent upon system_state (thus excluding the LP case).

I notice that arch_livepatch_{apply,revert}() indeed use plain memcpy()
with just the noinline "protection". I wonder how well that works if a
livepatch actually touched the tail of either of these functions
(however unlikely that may be).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:18:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844606.1260092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGF7L-0003xh-WD; Wed, 27 Nov 2024 10:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844606.1260092; Wed, 27 Nov 2024 10: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 1tGF7L-0003xa-TM; Wed, 27 Nov 2024 10:17:55 +0000
Received: by outflank-mailman (input) for mailman id 844606;
 Wed, 27 Nov 2024 10:17: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGF7L-0003xU-6w
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:17: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 dc14a17c-aca8-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 11:17:52 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4349fd77b33so25854785e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 02:17: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-434aa7cfb40sm16006435e9.27.2024.11.27.02.17.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 02:17: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: dc14a17c-aca8-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzQiLCJoZWxvIjoibWFpbC13bTEteDMzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRjMTRhMTdjLWFjYTgtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzAyNjcyLjEwMjAwNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732702671; x=1733307471; 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=7e7T4p59YwSRHDoVgOvnbiH4M0w1C6gfOek2eTGu2pw=;
        b=U+VLFFayalPTL0wX8bSD8W0z/lXkIILK3SEcZzdyYrtpaWGvVSsy4lsyGfqgHzQ13l
         lLlcOCCUznplVl5VTW83gxep/40ekY8x6l3QjmlGie2x6SEzY6ahLQOQILbPkXRCO1oq
         h4P5NHeFKcHBlajC8C2BgmOf8naDqkAnGiTe9eCnDWY0alYSGgP7FYtQxym65vcxCsWO
         7JuBeM60Phn1U+hwoNcsNByYx2BaDGmgFeA4aw1UK0vVVnrA5ebFeMREJ5d04aWO/MRo
         ZAMD/6ViD57YZFccznRalZ8IczxNCbrWK2xLRGEtUk79YqyuEUUJ2uK8Cd1xEfMdM4aq
         azzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732702671; x=1733307471;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7e7T4p59YwSRHDoVgOvnbiH4M0w1C6gfOek2eTGu2pw=;
        b=aJc3W5uf97aRUHBJIDKcqFqXiDiWBgAobtMgm2LOn0E2Ke/VSaY9zUowmaM3FgmCWV
         /53rJH+67EuuNTC8okhen5VlBfBfF8M6/wCsTiIFsjKaT/Sx319OJlJK/8ABgfCKXVaR
         8zH2H9zE4QSrc28KhAgfKIW1l+PhVBdvKMdJRkz3vlY5q4w8X7HulHzaSju+w0TJFkDY
         0vMYKbnB8J7+ik86KwKCUb6DciF+bVj5BITFTe2vwURiJJ2XNxem8bPE/xC6axpLJ3/D
         iVczdjBQfybhmsRtHc031FseIOCjQTWBXL2fyTcnoD34cfha2rLKN7JUYRlKHySSmZGw
         ZsaA==
X-Forwarded-Encrypted: i=1; AJvYcCWmSUd3CsznkmMItHAx2iGjcDa+MrGKd53vW6zXzwJ2geaca4xzy9KcL/fEW78YO83LMLGF+a8+jc0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwSP0UMpcV8sTbd5bQqA/sbVtLXaTUPsrBNake1Y4h+R8gYhupd
	WCYhaIrZkGXdF3O5Is90RgtrtOfs3lYxUq0PIaHuUHrjUvI99TcLrQ4xhi3Efw==
X-Gm-Gg: ASbGncsYGuI4yAnXrXOJASibU50bK7ijKTsajpA3S42YAocOYQXnbtNj8XDxcjZQEs3
	ZK7j2l+DEXymfktK6bUw2lgS2vmDJEFhkK7jNjR5wfSZncJPoJtU8sxg3EQAtB7WwuOpm6FNp4l
	E85ZrSd6rkTzGsENc1J8xj7NIw/OHdNX/rGzlfgmN0MiBapMEzm846HFI21aufRQYVyHcA/Pcju
	1GrWwFEemF6ykyK32+NvuhSzT24Qfk4ZIeK/fTXFpF8u1cBgJSKv8iu2qyciMr2+YKgiNOm8z2A
	3qlBghM9Nxj1MuJ1TFSD8cnsdEMKEQ1IVjg=
X-Google-Smtp-Source: AGHT+IF4Cu0XteCz7KZPtdtOGIGoQ/CP2WwJv+0AKhd2iEQBs5irmnKuowRqf4YlPJN313cnFOdinw==
X-Received: by 2002:a05:600c:4f08:b0:434:a39b:5e46 with SMTP id 5b1f17b1804b1-434a9dbbba1mr20170265e9.7.1732702671302;
        Wed, 27 Nov 2024 02:17:51 -0800 (PST)
Message-ID: <8004e261-0ce5-427e-abdb-0cd18121dc6e@suse.com>
Date: Wed, 27 Nov 2024 11:17:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/7] x86: control memset() and memcpy() inlining
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: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <1c935aba-a185-43de-9806-6781b1a7fcf9@suse.com>
 <3fa4555a-f66f-47c0-ada2-3a5591536432@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: <3fa4555a-f66f-47c0-ada2-3a5591536432@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2024 20:58, Andrew Cooper wrote:
> On 25/11/2024 2:29 pm, Jan Beulich wrote:
>> Stop the compiler from inlining non-trivial memset() and memcpy() (for
>> memset() see e.g. map_vcpu_info() or kimage_load_segments() for
>> examples). This way we even keep the compiler from using REP STOSQ /
>> REP MOVSQ when we'd prefer REP STOSB / REP MOVSB (when ERMS is
>> available).
>>
>> With gcc10 this yields a modest .text size reduction (release build) of
>> around 2k.

With this, ...

>> Unfortunately these options aren't understood by the clang versions I
>> have readily available for testing with; I'm unaware of equivalents.
>>
>> Note also that using cc-option-add is not an option here, or at least I
>> couldn't make things work with it (in case the option was not supported
>> by the compiler): The embedded comma in the option looks to be getting
>> in the way.
>>
>> Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> v3: Re-base.
>> v2: New.
>> ---
>> The boundary values are of course up for discussion - I wasn't really
>> certain whether to use 16 or 32; I'd be less certain about using yet
>> larger values.
>>
>> Similarly whether to permit the compiler to emit REP STOSQ / REP MOVSQ
>> for known size, properly aligned blocks is up for discussion.
> 
> I didn't realise there were any options like this.
> 
> The result is very different on GCC-12, with the following extremes:
> 
> add/remove: 0/0 grow/shrink: 83/71 up/down: 8764/-3913 (4851)
> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
> x86_emulateÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  136966Â  139990Â Â  +3024
> ptwr_emulated_cmpxchgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  555Â Â Â  1058Â Â Â  +503
> hvm_emulate_cmpxchgÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1178Â Â Â  1648Â Â Â  +470
> hvmemul_do_ioÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1605Â Â Â  2059Â Â Â  +454
> hvmemul_linear_mmio_accessÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1060Â Â Â  1324Â Â Â  +264
> hvmemul_write_cacheÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  655Â Â Â Â  890Â Â Â  +235
> ...
> do_console_ioÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1293Â Â Â  1170Â Â Â  -123
> arch_get_info_guestÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2200Â Â Â  2072Â Â Â  -128
> avtab_read_itemÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  821Â Â Â Â  692Â Â Â  -129
> acpi_tb_create_local_fadtÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  866Â Â Â Â  714Â Â Â  -152
> xz_dec_lzma2_runÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2573Â Â Â  2272Â Â Â  -301
> __hvm_copyÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1085Â Â Â Â  737Â Â Â  -348
> Total: Before=3902769, After=3907620, chg +0.12%
> 
> So there is a mix, but it's in a distinctly upward direction.

... was this a release or a debug build? Of course I'm not surprised of
there being differences between compiler versions, but the overall change
being clearly in the opposite direction is still a little worrying.

> As a possibly-related tangent, something I did notice when playing with
> -fanalyzer was that even attr(alloc_size/align) helped the code
> generation for an inlined memcpy().
> 
> e.g. with _xmalloc() only getting
> __attribute__((alloc_size(1),alloc_align(2))), functions like
> init_domain_cpu_policy() go from:
> 
> 48 8b 13Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  (%rbx),%rdx
> 48 8d 78 08Â Â Â Â Â Â Â Â  Â Â Â Â  leaÂ Â Â  0x8(%rax),%rdi
> 48 89 c1Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rax,%rcx
> 48 89 deÂ Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rbx,%rsi
> 48 83 e7 f8Â Â Â Â Â Â Â Â  Â Â Â Â  andÂ Â Â  $0xfffffffffffffff8,%rdi
> 48 89 10Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rdx,(%rax)
> 48 29 f9Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  subÂ Â Â  %rdi,%rcx
> 48 8b 93 b0 07 00 00 Â Â Â  movÂ Â Â  0x7b0(%rbx),%rdx
> 48 29 ceÂ Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  subÂ Â Â  %rcx,%rsi
> 81 c1 b8 07 00 00Â Â  Â Â Â Â  addÂ Â Â  $0x7b8,%ecx
> 48 89 90 b0 07 00 00 Â Â Â  movÂ Â Â  %rdx,0x7b0(%rax)
> c1 e9 03Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  shrÂ Â Â  $0x3,%ecx
> f3 48 a5Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  rep movsq %ds:(%rsi),%es:(%rdi)
> 
> down to simply
> 
> 48 89 c7Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rax,%rdi
> b9 f7 00 00 00Â Â Â Â Â  Â Â Â Â  movÂ Â Â  $0xf7,%ecx
> 48 89 eeÂ Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  movÂ Â Â  %rbp,%rsi
> f3 48 a5Â Â Â Â Â Â Â Â Â Â Â  Â Â Â Â  rep movsq %ds:(%rsi),%es:(%rdi)
> 
> which is removing the logic to cope with a misaligned destination pointer.
> 
> 
> As a possibly unrelated tangent, even __attribute__((malloc)) seems to
> have some code gen changes.
> 
> In xenctl_bitmap_to_cpumask(), the change is simply to not align the
> -ENOMEM basic block, saving 8 bytes.Â  This is quite reasonable because
> xmalloc() genuinely failing is 0% of the time to many significant figures.
> 
> Mostly though, it's just basic block churn, which seems to be giving a
> "likely not NULL" on the return value, therefore shuffling the error paths.

Could you clarify for me what of the above is the actionable part, for me
to take care of?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:22:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844618.1260103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGFBx-0005nb-Lq; Wed, 27 Nov 2024 10:22:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844618.1260103; Wed, 27 Nov 2024 10:22: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 1tGFBx-0005nU-Hq; Wed, 27 Nov 2024 10:22:41 +0000
Received: by outflank-mailman (input) for mailman id 844618;
 Wed, 27 Nov 2024 10:22: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGFBw-0005nO-M4
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:22:40 +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 85c9d97f-aca9-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 11:22:36 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-434a852bb6eso11679775e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 02:22: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-3825fbedfccsm15823304f8f.101.2024.11.27.02.22.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 02: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: 85c9d97f-aca9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg1YzlkOTdmLWFjYTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzAyOTU2Ljc3NTAxMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732702956; x=1733307756; 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=GwU0VI/DWcd9IATRJO1XDest4Rb9ifvpjNXE7LPL7XM=;
        b=W7qwCLNNYrZr3zXMgVAhSGNFKb3FEE+9sm1KLXKOucGr0Bp7qgSNC6OV8zkreHrU6e
         JJPAvD/hyS+kOtaOJxBQY1QycQri+o4cHKlyckVTqOy7dCIB5riKdDnhio3w5/bPj9It
         6EliVot3HCtvdihuWpSSyyB2kR72Bb+J5n4LC2v9ogheUTgd8qvOC+uQIXMEjnENbrW4
         hPamnyM2XZcq/8OsIPLjbshFtvnctX7YCYnXDL0mBHIuaCpIsWC8Odr4rCuZU9i52mqb
         p+3YOogkS4t/y+puJi/niHlKwzVa44ZeXPvFPDfWN2N3ezdNByBU1fQVdIbu86EIJ0jy
         AvAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732702956; x=1733307756;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GwU0VI/DWcd9IATRJO1XDest4Rb9ifvpjNXE7LPL7XM=;
        b=vBFJteoNuTRmUGpUakB6FthqPkoB34x48yTHJ7EMlogSREk17CYbyPEjFV6HIjd5AO
         Oy4O+RhSTpKLVbjkmOzHs9hevq7gGDkqooFigJ5wINI3td/jDzm1V7D81Nzmmi+Ofuk0
         f5bWWZ9RPd6RJb16OjEe2pvoJf7RU+l3sN6KMtuDAewI2GeNu08t0ER6KwXQB5mWeRxy
         QTV+ube+9CdM8VhJ4Zv1P8DVteeZ+qA3KhJLGczzJjheDzMYVvSiXb9ytJslsJote67c
         mAVFOhaRCvSoo/K8mlXtYBJE3VNSxAkhB+wFw/slVPfkrxNoDJm2oKZW525NR9TkH/WW
         0a8A==
X-Forwarded-Encrypted: i=1; AJvYcCXYYxyDq8N/n4PfFGpqJp3eb83SSfmq9M+L6sCazTbXMPuQAyD7F+lUUHeZ3zfRnjUkGyfXMBWeeL0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8D0NQO0ZVrv2GitdCahYU9E1QvtmA9Zu7q1HK+cTwzz9XaC2Z
	BMRmLJKc/NXsL9hEAlfMjf/MOPCAzVzwbuRTtO72hthsrkiZZGO0fvMMnIeMqw==
X-Gm-Gg: ASbGncuzNOrK5+XTkc05NQcR93szE6hJuP6ziNMudwZDv9vYJtorF/SQ686j4/9Bare
	eAG3cDIrNgkwFMsCkXjrCmD0SX8LM+EwnEfjQ7QcXp8Tvr14e2lbje53PvMalRzP4w+A98kRqi6
	JIwMsXhzE5QpB8wdfcfCBfDQ2zIySezmZ37puTV62ZxtdHgeNPCj/hg44ZThijR0GKWba2qPI7D
	qVWu/qbZlRWdY4kImCKvJwv4aXDoru9eO8Gem78gBXUZy/6dTk8EoAOGBOm+6JQVyM53v4fbIij
	ToklYVYXKAnHHTxeT8FinMB7r8a4QF/Itu4=
X-Google-Smtp-Source: AGHT+IHmWs6n7aPb3iYgBymdJMU22INGjQDeJUlyZ/mePCE25D4+Xy1VZLAkD1NT29UoQvHouVFnpA==
X-Received: by 2002:a05:6000:4708:b0:382:5010:c8da with SMTP id ffacd0b85a97d-385c6ee187bmr2151923f8f.59.1732702956235;
        Wed, 27 Nov 2024 02:22:36 -0800 (PST)
Message-ID: <6c2defc4-f8ae-4d5a-a9b8-721f168e6520@suse.com>
Date: Wed, 27 Nov 2024 11:22:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 4/6] x86/boot: introduce boot domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-5-dpsmith@apertussolutions.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: <20241115131204.32135-5-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 14:12, Daniel P. Smith wrote:
> --- /dev/null
> +++ b/xen/arch/x86/include/asm/bootdomain.h
> @@ -0,0 +1,31 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Copyright (c) 2024 Apertus Solutions, LLC
> + * Author: Daniel P. Smith <dpsmith@apertussolutions.com>
> + * Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
> + */
> +
> +#ifndef __XEN_X86_BOOTDOMAIN_H__
> +#define __XEN_X86_BOOTDOMAIN_H__
> +
> +struct boot_module;
> +struct domain;

You don't really need these, do you? The uses ...

> +struct boot_domain {
> +    struct boot_module *kernel;
> +    struct boot_module *ramdisk;
> +
> +    struct domain *d;
> +};

... here still introduce the struct tags into global scope, unlike for C++
and unlike ...

> --- a/xen/arch/x86/include/asm/dom0_build.h
> +++ b/xen/arch/x86/include/asm/dom0_build.h
> @@ -13,9 +13,9 @@ unsigned long dom0_compute_nr_pages(struct domain *d,
>                                      unsigned long initrd_len);
>  int dom0_setup_permissions(struct domain *d);
>  
> -struct boot_info;
> -int dom0_construct_pv(struct boot_info *bi, struct domain *d);
> -int dom0_construct_pvh(struct boot_info *bi, struct domain *d);
> +struct boot_domain;
> +int dom0_construct_pv(struct boot_domain *bd);
> +int dom0_construct_pvh(struct boot_domain *bd);

... when used in prototypes.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:32:36 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:32:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844630.1260111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGFLS-0007hP-Eu; Wed, 27 Nov 2024 10:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844630.1260111; Wed, 27 Nov 2024 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 1tGFLS-0007hI-CR; Wed, 27 Nov 2024 10:32:30 +0000
Received: by outflank-mailman (input) for mailman id 844630;
 Wed, 27 Nov 2024 10:32: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGFLQ-0007hC-Qr
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:32:28 +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 e3f89ba3-acaa-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 11:32:24 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-434a2033562so21721135e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 02:32: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-434aa7cdd64sm16505895e9.26.2024.11.27.02.32.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 02:32: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: e3f89ba3-acaa-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmMiLCJoZWxvIjoibWFpbC13bTEteDMyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImUzZjg5YmEzLWFjYWEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzAzNTQ0LjM0NzQzNiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732703543; x=1733308343; 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=wBkBqar7unopO8folyoovjZByPW3iT0Wg/av+QUdAA4=;
        b=Vkh7RNqZW8MNIwMQ7gfZzAtkdSAbdyVNjmax5uoLB0IF838bF0zitqig+nwRfqk6VZ
         WA8ygsZO7/IUMb7ER5ZDo/8fxGpbCclTZT+fGcOJT8sqD2xYV4Pl5T/9CeNYxvksX+br
         oRWub1cOo7uv4jtJ+LZGDdgh9A0dO01cde27rU8YXB5d4k6ugioLnu0MgokpuX8joFG+
         8wiEL1avANRiR93uaLFlc5ltw7fx8BsD2p3gNIz1Vbq5bh8HKPOlevSqOoSOD9PTcsER
         dSnYAo2wMuP287b1wtOqC80MNj8ilL3dqVGQUf7ZtOuJ1SQmXGf2/m2c2lRe5hhVqoFH
         akzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732703543; x=1733308343;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wBkBqar7unopO8folyoovjZByPW3iT0Wg/av+QUdAA4=;
        b=Zz2w13CrHPYUgwzXIusYXi4WPR7RV56QT1dBibgiPx1nZP164ZF2HkWj+d2zfYnqhn
         DaJIyIwfo34A/XedQjdA9Ey8Ah8FHMg3DNrMAmK+m+OEYa2p50xiiduEIBHrWBRCjWPw
         yX3TArGn/TdZRVxDoBW7d6N1aUdWKu8MA0gTFbl/CiHVdamhO1qyRT+8tgB3TEcm43tb
         9Rz+YUc0N7aEt24JXijB4dBp6yUZMDfty8brCecP7GBA6car/9FtAe0uQWCMiOOWzrt7
         13saT6q1skJS5XMXgMYLV2WN14eWwY577AeUSsx65CabW8pirzrE/8DFunDnsm3PFiSQ
         03/g==
X-Forwarded-Encrypted: i=1; AJvYcCWa3+WFTs9an1M6pLg3yVSr0zZe55b1STx71RODNM6GD6bjIL0ep/fco5+g2832CbGZ8jRdgATZaAU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbM6ffQ3HjhlDXfHnPwNmOSIu9YsjyrQwcPFKsDw7cSSIREIhs
	L+6tM6Vnhhnu9iRjFHZH2wjKTccLVs6hjIZyzQDQ9x9DkH80ikKfDtXsnGG8Gg==
X-Gm-Gg: ASbGncura9u1BpBDN74ejI4aD2epuaY1NL6nYaxlqaMEYYup8lFwMvEhDTt2Vgm8QYm
	m5uKPgfk4vppT8vQbvBHUhXfRJwKcRYUGmxTddN2nqGw61Y1OPZxxA0NJS3gkqO9x718lWAtPwu
	sZ4YYKvIo7cb4b33EyMQShpDkztHyH8a4bl0IlwyiktfVJaSXI1eIbS6+R2JukU1tt9ReHHcm/e
	xDWTJy+x8Y2eLDuiqAE2SAG4QLdsBkhr3wsHgrdECTcMReJRjnEBPaRBgx3asdwtz/I+3OeinXW
	vglrOTH7+qfDaW/ysKr+lkD8Ptg1tSe6zlk=
X-Google-Smtp-Source: AGHT+IGT/DuguTEWwIOXFXA23x9ynToqtqp1XWDuB1iZF7zA3+YDZ4GMF0nhZWKfwZAQ7Wy6uU4JoA==
X-Received: by 2002:a05:600c:4f08:b0:434:a39b:5e46 with SMTP id 5b1f17b1804b1-434a9dbbba1mr20577305e9.7.1732703543596;
        Wed, 27 Nov 2024 02:32:23 -0800 (PST)
Message-ID: <bfbd15eb-9888-4988-b9a1-8191a696a4c2@suse.com>
Date: Wed, 27 Nov 2024 11:32:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 5/6] x86/boot: introduce domid field to struct
 boot_domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
 stefano.stabellini@amd.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: <20241115131204.32135-1-dpsmith@apertussolutions.com>
 <20241115131204.32135-6-dpsmith@apertussolutions.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: <20241115131204.32135-6-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2024 14:12, Daniel P. Smith wrote:
> Add a domid field to struct boot_domain to hold the assigned domain id for the
> domain. During initialization, ensure all instances of struct boot_domain have
> the invalid domid to ensure that the domid must be set either by convention or
> configuration.

I'm missing the "why" part here - after all ...

> --- a/xen/arch/x86/include/asm/bootdomain.h
> +++ b/xen/arch/x86/include/asm/bootdomain.h
> @@ -12,6 +12,8 @@ struct boot_module;
>  struct domain;
>  
>  struct boot_domain {
> +    domid_t domid;
> +
>      struct boot_module *kernel;
>      struct boot_module *ramdisk;
>  

... just out of context here there is struct domain *. I can only guess that
the domain ID is needed for the time until the domain pointer was actually
filled.

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -339,6 +339,9 @@ static struct boot_info *__init multiboot_fill_boot_info(
>      /* Variable 'i' should be one entry past the last module. */
>      bi->mods[i].type = BOOTMOD_XEN;
>  
> +    for ( i = 0; i < MAX_NR_BOOTDOMS; i++ )
> +        bi->domains[i].domid = DOMID_INVALID;

Generally I think ARRAY_SIZE() is better to use for loop boundaries. Yet
then - why don't you statically initialize the array in xen_boot_info?

> @@ -977,7 +980,6 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>      };
>      struct boot_domain *bd = &bi->domains[0];
>      struct domain *d;
> -    domid_t domid;
>  
>      if ( opt_dom0_pvh )
>      {
> @@ -993,15 +995,15 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>          dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>  
>      /* Create initial domain.  Not d0 for pvshim. */
> -    domid = get_initial_domain_id();
> -    d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
> +    bd->domid = get_initial_domain_id();
> +    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
>      if ( IS_ERR(d) )
> -        panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
> +        panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));

As to the comment at the top - this change alone certainly doesn't clarify
the "why".

>      init_dom0_cpuid_policy(d);
>  
>      if ( alloc_dom0_vcpu0(d) == NULL )
> -        panic("Error creating d%uv0\n", domid);
> +        panic("Error creating d%uv0\n", bd->domid);

Imo this would better use d->domain_id. And while touching it, %u would also
want swapping for %d.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:49:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:49:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844649.1260143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGFbU-0001To-2K; Wed, 27 Nov 2024 10:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844649.1260143; Wed, 27 Nov 2024 10:49: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 1tGFbT-0001Th-U6; Wed, 27 Nov 2024 10:49:03 +0000
Received: by outflank-mailman (input) for mailman id 844649;
 Wed, 27 Nov 2024 10:49: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=KjDT=SW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tGFbS-0001TW-8F
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:49:02 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20613.outbound.protection.outlook.com
 [2a01:111:f403:2415::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32137867-acad-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 11:48:54 +0100 (CET)
Received: from MN2PR06CA0010.namprd06.prod.outlook.com (2603:10b6:208:23d::15)
 by PH0PR12MB7959.namprd12.prod.outlook.com (2603:10b6:510:282::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Wed, 27 Nov
 2024 10:48:44 +0000
Received: from BN3PEPF0000B374.namprd21.prod.outlook.com
 (2603:10b6:208:23d:cafe::81) by MN2PR06CA0010.outlook.office365.com
 (2603:10b6:208:23d::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Wed,
 27 Nov 2024 10:48:44 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B374.mail.protection.outlook.com (10.167.243.171) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8230.0 via Frontend Transport; Wed, 27 Nov 2024 10:48:43 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 27 Nov
 2024 04:48:43 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Nov 2024 04:48:41 -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: 32137867-acad-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNTo6NjEzIiwiaGVsbyI6Ik5BTTExLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjMyMTM3ODY3LWFjYWQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzA0NTM0LjUyMjY1Mywic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I0JYdSTLvqfPlM1y8MlyisXaS61dXsnjMs324ZIY2ncn22ZzFKdXMuZ/W+hlA43TiynDIIShiv3du3Kogo70b07fX56u+UxPwHc+WsQ0A4ubuf2gDJjf8ZZbd0ujUBO3iVAtYxQgnvI/oJGt1+mIhnRijG1cSP+2lL4/k05ScdZG0QL/YeQEQ0OPRxooFZq3N5/jLPI0FfyV6fZhzJ5+JAj3tocY6vhJ2QIroODncaONm18Jpthtji5or3tWNY3bCY7vp3SB0iyz535apNsQvwLuSPRLlJlfm0dV0Ksnq+ha0lHlKC4qvrCZY5o92YUlIgPDPWa8GkXo/XdpjyXS+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=qajI1uuyRj1jy107yPDQIAaNNMmReIq54wJEnC7Azp8=;
 b=QP4DlZdndNbadwFu/M6XvrIdj+0KX7ffhnsXW6fkuLsy6rO68N2vCp5ogEEGmdpuSkj1EcPltwKsIgmsLqJkYyqVuzgVAla+WdSPp3/oRjCpHFIMWE5hJP6nO7tJCekJktbZ86c76iqCB7UAb0F6JLQDiEpyaI1nNEg5Hea/xpgOv+WYbdLj8/HoQ5WEACJIsKQcKEYCjglc+4AX1LQpdyOxS69gwe8ANUy35BINtGVZMypS16mMS8WS38MZ3k9TNHDBnz5Bq9EmmZCadzuC8BOVLUUOeQYIcsPNW4OnXKFEI/A1kcNizX72PNKCzLz4vUgtVMOf9RiBJEjPcFvGxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=minervasys.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=qajI1uuyRj1jy107yPDQIAaNNMmReIq54wJEnC7Azp8=;
 b=J4mbyzUt8Eqbm76a5ZZqicb46zFL7T7S1IrxXjKvS4bFKmH6blNINMn0fXv5wkaNtq0Kk+7xKHKQA3opKw3X+MMGhTbnRxJzuKiMVRUm/7iG5gCD1u0qbp5Bywuc9DuJjCsWm+AawGvHvUSkCPCpsTFe9RFE7TmojStnL+H/yes=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <93c0a25f-4edc-4d21-8767-48d496cc3575@amd.com>
Date: Wed, 27 Nov 2024 11:48:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 01/12] xen/common: add cache coloring common code
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
	<xen-devel@lists.xenproject.org>
CC: <andrea.bastoni@minervasys.tech>, <marco.solieri@minervasys.tech>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-2-carlo.nonato@minervasys.tech>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241119141329.44221-2-carlo.nonato@minervasys.tech>
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: BN3PEPF0000B374:EE_|PH0PR12MB7959:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d5ba573-5991-4761-93d3-08dd0ed11024
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?TmMrOXZxM1BvZkhkbzNvMmliZ21jazJQb3VsTmZLeGM4OWc4VEV5VDBFTzBw?=
 =?utf-8?B?SGFUbXJpTmVlQVdXdjZUaHZ0T3JXNEZkS1VtVHM2NUo2YWw2eHo5em9ZeGJv?=
 =?utf-8?B?TUROanFlTmdVK24xUnowWW85dytvK0xaMG5ENTZLTFNPS0FzdGVtY25pdHBJ?=
 =?utf-8?B?NHNrNXIxUWRkVHRFaVlBUitST0l3aUlsYW96QWh4ODFJLzhxTnBzeXo1bi9J?=
 =?utf-8?B?R2wxQURlNVE5UWEvUFBpb3lOZHVETHZTd1JxaWtmZTFlbEJ0eDd5Z2h4RG5E?=
 =?utf-8?B?UTJhdlB5cXlROGs3bngwSkh6bEhDUVFHdzF0cy93bkl2a3ExYmNVbm4wMU82?=
 =?utf-8?B?SGVJSEFrWGloMkYxeEc4OTYvT1dhRlQwdGJqN1hNMTMyL3c0MlYwZElOSWtX?=
 =?utf-8?B?alJ5NlBRVTgvNXF1a2wvMVBraWV2WWkwY1RGT0RPYlBDNmNiN1JzZzcwRXhJ?=
 =?utf-8?B?Z1RWajlyWmpuTFNsMHZjUHJxZEIvSjM2cFd0d0M3eU1xZ1FuaGUrbnE0SmdF?=
 =?utf-8?B?UERYK005eXRvb2U0NGJqWU1tbEdjWW94KzJLYWhObXoxUVNybUQxa1U1bmpj?=
 =?utf-8?B?aEFzYWo1YmhCa3dZaVVUanliRVhRbERjZUQ1WGVMRGxXSXVXMEV6a2M5QkdL?=
 =?utf-8?B?dEdYbHNkRGxmbjM3b253Yjk4TmQ3S1cwTGcwdzJtUS84RWhUS25ZejRRMXRF?=
 =?utf-8?B?YjkrVmFkcm9RNVdDeUZ4RGhsZXJudjdjWWVPVDhkNDNmV0puQXdqbGJiY0FK?=
 =?utf-8?B?RXZpb0lVbkRTdi9MUERQMllSS0JOeFhpTGJIR2pZbWZrMldLQUt1dTN5Szhk?=
 =?utf-8?B?bG5sQTRtaGg3QTkvUGtvTHJLY1MrVWFPcnJFaGVvaFFGb3BMRzZBVEtYTmRB?=
 =?utf-8?B?VnA1bTAxYnVxUFl6WjYycit0MkNYbldpeWV1V2JyZDBKejlSZ2E5NStNcEI2?=
 =?utf-8?B?NTJubm9xT3ZuNVZqUllmQ0I4dThtVUlHQThzK1F5bWE0VVh2MHFnTnhGUWJU?=
 =?utf-8?B?aFplMGl0MDI0U28rS0t1Q3IrUlRDNTdXLzFvaHF6OUlMWDBSU2VoZk9wRjdC?=
 =?utf-8?B?bmdRTzdaMWN4clc1OUNFbnI5OTV4d2IzdzdIOVNkVXlhcEgwY1UzTHBnZnJt?=
 =?utf-8?B?S0Z0c3RkbnRDQlRQd2xZSTBWdmV5ZmVibDV3N2I5eVVOTEtXOXF1Q0VQNmdn?=
 =?utf-8?B?Mnh1bzV6bXJzZTRwOE53ckp5MWlSWUg4QTVOQjkxQ3NNZzNTK2xQTVdvWnZ3?=
 =?utf-8?B?Nnh1anFaSU1RVnpHdWY1aitUNWFKMFVNb09jcWJCSGlOUmFNNHVtYitqdjVh?=
 =?utf-8?B?WmF4STNHaUdtRGd0RGo2eTdXSGNzZUdkQWJGVHVMVmxYVDV4Q0JKUGQ2TnBQ?=
 =?utf-8?B?YmxWWmNLcElhQ0dGUVg0RU85ZUE1Wi92eDRrVUxSaXg0RGk3bElSNmxBOTdF?=
 =?utf-8?B?MGxoNllma081dmtsMVBsTmJ3RnZxMTVjaDdoL2F1eFVQZVRGZW8zMUtNcFRE?=
 =?utf-8?B?Vm5BU2Y0WFVNN3hJMitpYmZVeEttQzgvRzM2Yk45T0VnQTdDalR3RE5SbzZ0?=
 =?utf-8?B?Qk5LdHZLMllkNXVlWjY0cytTV21EamhxTGYvUU9wMVpzQWRPS3NNL1NwVWFn?=
 =?utf-8?B?cm8wNTlvZS9uOWdNUThuN2d3U3lFNjEyZzBxbkhnbkgwakltQW93TE9OdUla?=
 =?utf-8?B?a3o5UnUyazJxTzJITk05TlpudmgwU2NlTmlQSGhxcjl5SVJIbFVCREREYTB0?=
 =?utf-8?B?SW9qOTA4L1lFMnNHZENKRE9aWEl0ZFZzWUUvZm5Zai9sT2VDTUgvSUpYQ1hz?=
 =?utf-8?B?NDVyUitScVozaEU1dWU0eUhRb05uODFBTHkwNTJqZCt1dEt0cXFHSkNPb0ZP?=
 =?utf-8?B?NERjR2E4Sm9kZjdQamZoQ0NqdGpqRTRuZXAxZXlNandmUFRiSkhuNkI1YmRl?=
 =?utf-8?Q?wT+DxjBSOBkHls2e2Vr0MnsJx4lchD0S?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 27 Nov 2024 10:48:43.7639
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d5ba573-5991-4761-93d3-08dd0ed11024
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B374.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7959



On 19/11/2024 15:13, Carlo Nonato wrote:
> 
> 
> Last Level Cache (LLC) coloring allows to partition the cache in smaller
> chunks called cache colors.
> 
> Since not all architectures can actually implement it, add a HAS_LLC_COLORING
> Kconfig option.
> LLC_COLORS_ORDER Kconfig option has a range maximum of 10 (2^10 = 1024)
> because that's the number of colors that fit in a 4 KiB page when integers
> are 4 bytes long.
> 
> LLC colors are a property of the domain, so struct domain has to be extended.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> ---
> v10:
> - fixed commit message to use LLC_COLORS_ORDER
> - added documentation to index.rst
> - moved check on CONFIG_NUMA in arch/arm/Kconfig (next patch)
> - fixed copyright line
> - fixed array type for colors parameter in print_colors()
> - added check on (way_size & ~PAGE_MASK)
> v9:
> - dropped _MAX_ from CONFIG_MAX_LLC_COLORS_ORDER
> v8:
> - minor documentation fixes
> - "llc-coloring=on" is inferred from "llc-nr-ways" and "llc-size" usage
> - turned CONFIG_NR_LLC_COLORS to CONFIG_MAX_LLC_COLORS_ORDER, base-2 exponent
> - moved Kconfig options to common/Kconfig
> - don't crash if computed max_nr_colors is too large
> v7:
> - SUPPORT.md changes added to this patch
> - extended documentation to better address applicability of cache coloring
> - "llc-nr-ways" and "llc-size" params introduced in favor of "llc-way-size"
> - moved dump_llc_coloring_info() call in 'm' keyhandler (pagealloc_info())
> v6:
> - moved almost all code in common
> - moved documentation in this patch
> - reintroduced range for CONFIG_NR_LLC_COLORS
> - reintroduced some stub functions to reduce the number of checks on
>   llc_coloring_enabled
> - moved domain_llc_coloring_free() in same patch where allocation happens
> - turned "d->llc_colors" to pointer-to-const
> - llc_coloring_init() now returns void and panics if errors are found
> v5:
> - used - instead of _ for filenames
> - removed domain_create_llc_colored()
> - removed stub functions
> - coloring domain fields are now #ifdef protected
> v4:
> - Kconfig options moved to xen/arch
> - removed range for CONFIG_NR_LLC_COLORS
> - added "llc_coloring_enabled" global to later implement the boot-time
>   switch
> - added domain_create_llc_colored() to be able to pass colors
> - added is_domain_llc_colored() macro
> ---
>  SUPPORT.md                        |   7 ++
>  docs/index.rst                    |   1 +
>  docs/misc/cache-coloring.rst      | 116 ++++++++++++++++++++++++++++++
>  docs/misc/xen-command-line.pandoc |  37 ++++++++++
>  xen/common/Kconfig                |  21 ++++++
>  xen/common/Makefile               |   1 +
>  xen/common/keyhandler.c           |   3 +
>  xen/common/llc-coloring.c         | 115 +++++++++++++++++++++++++++++
>  xen/common/page_alloc.c           |   3 +
>  xen/include/xen/llc-coloring.h    |  37 ++++++++++
>  xen/include/xen/sched.h           |   5 ++
>  11 files changed, 346 insertions(+)
>  create mode 100644 docs/misc/cache-coloring.rst
>  create mode 100644 xen/common/llc-coloring.c
>  create mode 100644 xen/include/xen/llc-coloring.h
> 
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 82239d0294..998faf5635 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -401,6 +401,13 @@ by maintaining multiple physical to machine (p2m) memory mappings.
>      Status, x86 HVM: Tech Preview
>      Status, ARM: Tech Preview
> 
> +### Cache coloring
> +
> +Allows to reserve Last Level Cache (LLC) partitions for Dom0, DomUs and Xen
> +itself.
> +
> +    Status, Arm64: Experimental
> +
>  ## Resource Management
> 
>  ### CPU Pools
> diff --git a/docs/index.rst b/docs/index.rst
> index ab051a0f38..fad4462bbb 100644
> --- a/docs/index.rst
> +++ b/docs/index.rst
> @@ -65,6 +65,7 @@ Documents in need of some rearranging.
>     designs/launch/hyperlaunch-devicetree
>     misc/xen-makefiles/makefiles
>     misra/index
> +   misc/cache-coloring
> 
> 
>  Miscellanea
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> new file mode 100644
> index 0000000000..0fe3830c40
> --- /dev/null
> +++ b/docs/misc/cache-coloring.rst
> @@ -0,0 +1,116 @@
You're missing SPDX tag at the top of the RST file:
.. SPDX-License-Identifier: CC-BY-4.0

> +Xen cache coloring user guide
> +=============================
> +
> +The cache coloring support in Xen allows to reserve Last Level Cache (LLC)
> +partitions for Dom0, DomUs and Xen itself. Currently only ARM64 is supported.
> +Cache coloring realizes per-set cache partitioning in software and is applicable
> +to shared LLCs as implemented in Cortex-A53, Cortex-A72 and similar CPUs.
> +
> +To compile LLC coloring support set ``CONFIG_LLC_COLORING=y``.
> +
> +If needed, change the maximum number of colors with
> +``CONFIG_LLC_COLORS_ORDER=<n>``.
> +
> +Runtime configuration is done via `Command line parameters`_.
> +
> +Background
> +**********
> +
> +Cache hierarchy of a modern multi-core CPU typically has first levels dedicated
> +to each core (hence using multiple cache units), while the last level is shared
> +among all of them. Such configuration implies that memory operations on one
> +core (e.g. running a DomU) are able to generate interference on another core
> +(e.g. hosting another DomU). Cache coloring realizes per-set cache-partitioning
> +in software and mitigates this, guaranteeing more predictable performances for
> +memory accesses.
> +Software-based cache coloring is particularly useful in those situations where
> +no hardware mechanisms (e.g., DSU-based way partitioning) are available to
> +partition caches. This is the case for e.g., Cortex-A53, A57 and A72 CPUs that
> +feature a L2 LLC cache shared among all cores.
> +
> +The key concept underlying cache coloring is a fragmentation of the memory
> +space into a set of sub-spaces called colors that are mapped to disjoint cache
> +partitions. Technically, the whole memory space is first divided into a number
> +of subsequent regions. Then each region is in turn divided into a number of
> +subsequent sub-colors. The generic i-th color is then obtained by all the
> +i-th sub-colors in each region.
> +
> +::
> +
> +                            Region j            Region j+1
> +                .....................   ............
> +                .                     . .
> +                .                       .
> +            _ _ _______________ _ _____________________ _ _
> +                |     |     |     |     |     |     |
> +                | c_0 | c_1 |     | c_n | c_0 | c_1 |
> +           _ _ _|_____|_____|_ _ _|_____|_____|_____|_ _ _
> +                    :                       :
> +                    :                       :...         ... .
> +                    :                            color 0
> +                    :...........................         ... .
> +                                                :
> +          . . ..................................:
> +
> +How colors are actually defined depends on the function that maps memory to
> +cache lines. In case of physically-indexed, physically-tagged caches with linear
> +mapping, the set index is found by extracting some contiguous bits from the
> +physical address. This allows colors to be defined as shown in figure: they
> +appear in memory as subsequent blocks of equal size and repeats themselves after
> +``n`` different colors, where ``n`` is the total number of colors.
> +
> +If some kind of bit shuffling appears in the mapping function, then colors
> +assume a different layout in memory. Those kind of caches aren't supported by
> +the current implementation.
> +
> +**Note**: Finding the exact cache mapping function can be a really difficult
> +task since it's not always documented in the CPU manual. As said Cortex-A53, A57
> +and A72 are known to work with the current implementation.
> +
> +How to compute the number of colors
> +###################################
> +
> +Given the linear mapping from physical memory to cache lines for granted, the
> +number of available colors for a specific platform is computed using three
> +parameters:
> +
> +- the size of the LLC.
> +- the number of the LLC ways.
> +- the page size used by Xen.
> +
> +The first two parameters can be found in the processor manual, while the third
> +one is the minimum mapping granularity. Dividing the cache size by the number of
> +its ways we obtain the size of a way. Dividing this number by the page size,
> +the number of total cache colors is found. So for example an Arm Cortex-A53
> +with a 16-ways associative 1 MiB LLC can isolate up to 16 colors when pages are
> +4 KiB in size.
> +
> +Effective colors assignment
> +###########################
> +
> +When assigning colors, if one wants to avoid cache interference between two
> +domains, different colors needs to be used for their memory.
> +
> +Command line parameters
> +***********************
> +
> +Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
> +
> ++----------------------+-------------------------------+
> +| **Parameter**        | **Description**               |
> ++----------------------+-------------------------------+
> +| ``llc-coloring``     | Enable coloring at runtime    |
> ++----------------------+-------------------------------+
> +| ``llc-size``         | Set the LLC size              |
> ++----------------------+-------------------------------+
> +| ``llc-nr-ways``      | Set the LLC number of ways    |
> ++----------------------+-------------------------------+
> +
> +Auto-probing of LLC specs
> +#########################
> +
> +LLC size and number of ways are probed automatically by default.
> +
> +LLC specs can be manually set via the above command line parameters. This
> +bypasses any auto-probing and it's used to overcome failing situations, such as
> +flawed probing logic, or for debugging/testing purposes.
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index 293dbc1a95..abd8dae96f 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1708,6 +1708,43 @@ This option is intended for debugging purposes only.  Enable MSR_DEBUGCTL.LBR
>  in hypervisor context to be able to dump the Last Interrupt/Exception To/From
>  record with other registers.
> 
> +### llc-coloring (arm64)
> +> `= <boolean>`
> +
> +> Default: `false`
> +
> +Flag to enable or disable LLC coloring support at runtime. This option is
> +available only when `CONFIG_LLC_COLORING` is enabled. See the general
> +cache coloring documentation for more info.
> +
> +### llc-nr-ways (arm64)
> +> `= <integer>`
> +
> +> Default: `Obtained from hardware`
> +
> +Specify the number of ways of the Last Level Cache. This option is available
> +only when `CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used
> +to find the number of supported cache colors. By default the value is
> +automatically computed by probing the hardware, but in case of specific needs,
> +it can be manually set. Those include failing probing and debugging/testing
> +purposes so that it's possible to emulate platforms with different number of
> +supported colors. If set, also "llc-size" must be set, otherwise the default
> +will be used. Note that using both options implies "llc-coloring=on".
I can understand this decision, but ...

[...]

> +    if ( llc_size && llc_nr_ways )
> +    {
> +        llc_coloring_enabled = true;
> +        way_size = llc_size / llc_nr_ways;
> +    }
> +    else if ( !llc_coloring_enabled )
> +        return;
the above code does not seem to be right. When debugging or in general it is useful to have on the cmdline:
llc-size=1M llc-nr-ways=16 llc-coloring=on
and be able to disable it by just switching between on/off in llc-coloring=. However, with your solution,
even if I specify llc-coloring=off, it will be enabled because I specified both llc-size and llc-nr-ways.
I think llc-coloring= should have a precedence.

> +    else
> +    {
> +        way_size = get_llc_way_size();
> +        if ( !way_size )
> +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' missing\n");
> +    }
> +
> +    if ( way_size & ~PAGE_MASK )
> +        panic("LLC way size must be a multiple of PAGE_SIZE\n");
> +
> +    /*
> +     * The maximum number of colors must be a power of 2 in order to correctly
> +     * map them to bits of an address.
> +     */
> +    max_nr_colors = way_size >> PAGE_SHIFT;
> +
> +    if ( max_nr_colors & (max_nr_colors - 1) )
> +        panic("Number of LLC colors (%u) isn't a power of 2\n", max_nr_colors);
> +
> +    if ( max_nr_colors > NR_LLC_COLORS )
> +    {
> +        printk(XENLOG_WARNING
> +               "Number of LLC colors (%u) too big. Using configured max %u\n",
> +               max_nr_colors, NR_LLC_COLORS);
> +        max_nr_colors = NR_LLC_COLORS;
> +    } else if ( max_nr_colors < 2 )
CODING STYLE

> +        panic("Number of LLC colors %u < 2\n", max_nr_colors);
> +
> +    arch_llc_coloring_init();
> +}
> +
> +void dump_llc_coloring_info(void)
> +{
> +    if ( !llc_coloring_enabled )
> +        return;
> +
> +    printk("LLC coloring info:\n");
> +    printk("    Number of LLC colors supported: %u\n", max_nr_colors);
> +}
> +
> +void domain_dump_llc_colors(const struct domain *d)
> +{
> +    if ( !llc_coloring_enabled )
> +        return;
> +
> +    printk("%u LLC colors: ", d->num_llc_colors);
> +    print_colors(d->llc_colors, d->num_llc_colors);
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 33c8c917d9..7b911b5ed9 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -126,6 +126,7 @@
>  #include <xen/irq.h>
>  #include <xen/keyhandler.h>
>  #include <xen/lib.h>
> +#include <xen/llc-coloring.h>
>  #include <xen/mm.h>
>  #include <xen/nodemask.h>
>  #include <xen/numa.h>
> @@ -2626,6 +2627,8 @@ static void cf_check pagealloc_info(unsigned char key)
>      }
> 
>      printk("    Dom heap: %lukB free\n", total << (PAGE_SHIFT-10));
> +
> +    dump_llc_coloring_info();
>  }
> 
>  static __init int cf_check pagealloc_keyhandler_init(void)
> diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
> new file mode 100644
> index 0000000000..6ccf4613c2
> --- /dev/null
> +++ b/xen/include/xen/llc-coloring.h
> @@ -0,0 +1,37 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Last Level Cache (LLC) coloring common header
> + *
> + * Copyright (C) 2024, Advanced Micro Devices, Inc.
> + * Copyright (C) 2024, Minerva Systems SRL
> + */
> +#ifndef __COLORING_H__
> +#define __COLORING_H__
> +
> +#include <xen/sched.h>
You could just forward declare struct domain unless you know you need sched.h for other things too in other patches.

> +#include <public/domctl.h>
Why is this here? It's not needed yet at this point.

> +
> +#ifdef CONFIG_LLC_COLORING
> +void llc_coloring_init(void);
> +void dump_llc_coloring_info(void);
> +void domain_dump_llc_colors(const struct domain *d);
> +#else
> +static inline void llc_coloring_init(void) {}
> +static inline void dump_llc_coloring_info(void) {}
> +static inline void domain_dump_llc_colors(const struct domain *d) {}
> +#endif
> +
> +unsigned int get_llc_way_size(void);
> +void arch_llc_coloring_init(void);
> +
> +#endif /* __COLORING_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/include/xen/sched.h b/xen/include/xen/sched.h
> index 90666576c2..c0e49cd1e7 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -637,6 +637,11 @@ struct domain
> 
>      /* Holding CDF_* constant. Internal flags for domain creation. */
>      unsigned int cdf;
> +
> +#ifdef CONFIG_LLC_COLORING
> +    unsigned int num_llc_colors;
> +    const unsigned int *llc_colors;
> +#endif
>  };
> 
>  static inline struct page_list_head *page_to_list(
> --
> 2.43.0
> 

Otherwise, with the remarks addressed:
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal




From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:55:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844670.1260155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGFhY-0003TL-Ok; Wed, 27 Nov 2024 10:55:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844670.1260155; Wed, 27 Nov 2024 10:55: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 1tGFhY-0003TE-M4; Wed, 27 Nov 2024 10:55:20 +0000
Received: by outflank-mailman (input) for mailman id 844670;
 Wed, 27 Nov 2024 10:55:19 +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 1tGFhX-0003T8-CZ
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:55:19 +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 1tGFhW-008Fr9-24;
 Wed, 27 Nov 2024 10:55:18 +0000
Received: from 54-240-197-232.amazon.com ([54.240.197.232]
 helo=dev-dsk-jgrall-1b-035652ec.eu-west-1.amazon.com)
 by xenbits.xenproject.org with esmtpsa (TLS1.2) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1tGFhW-007nOR-26;
 Wed, 27 Nov 2024 10:55: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=Fa5x1UMLBesQpAwc0wH76erW8DMFqpBeaUOxSYzJg7s=; b=mhroyS
	kg4wI9uUi692AdstHlNZcCqmrVhG7V8tWL7HtXi68Z1D+VwmnWN+MIwMfs7ISru3FarZayDUHu8Zq
	CKdsnIivs/yIw8teCua1DROwVes+UvVXeyh2FxewVffAiTI96o6CSm6YritMWadVhPYivbp4Uomp1
	vCjrwNBJAiU=;
From: Julien Grall <julien@xen.org>
To: xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com,
	Julien Grall <jgrall@amazon.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] xen/arm32: Get rid of __memzero()
Date: Wed, 27 Nov 2024 10:55:12 +0000
Message-Id: <20241127105512.88703-1-julien@xen.org>
X-Mailer: git-send-email 2.40.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Julien Grall <jgrall@amazon.com>

All the code in arch/arm32/lib/ where copied from Linux 3.16
and never re-synced since then.

A few years ago, Linux got rid of __memzero() because the implementation
is very similar to memset(p,0,n) and the current use of __memzero()
interferes with optimization. See full commit message from Linux below.

So it makes sense to get rid of __memzero in Xen as well.

    From ff5fdafc9e9702846480e0cea55ba861f72140a2 Mon Sep 17 00:00:00 2001
    From: Nicolas Pitre <nicolas.pitre@linaro.org>
    Date: Fri, 19 Jan 2018 18:17:46 +0100
    Subject: [PATCH] ARM: 8745/1: get rid of __memzero()

    The __memzero assembly code is almost identical to memset's except for
    two orr instructions. The runtime performance of __memset(p, n) and
    memset(p, 0, n) is accordingly almost identical.

    However, the memset() macro used to guard against a zero length and to
    call __memzero at compile time when the fill value is a constant zero
    interferes with compiler optimizations.

    Arnd found tha the test against a zero length brings up some new
    warnings with gcc v8:

      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82103

    And successively rremoving the test against a zero length and the call
    to __memzero optimization produces the following kernel sizes for
    defconfig with gcc 6:

        text     data     bss       dec       hex  filename
    12248142  6278960  413588  18940690   1210312  vmlinux.orig
    12244474  6278960  413588  18937022   120f4be  vmlinux.no_zero_test
    12239160  6278960  413588  18931708   120dffc  vmlinux.no_memzero

    So it is probably not worth keeping __memzero around given that the
    compiler can do a better job at inlining trivial memset(p,0,n) on its
    own. And the memset code already handles a zero length just fine.

    Suggested-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Nicolas Pitre <nico@linaro.org>
    Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>

Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git ff5fdafc9e97
Signed-off-by: Julien Grall <jgrall@amazon.com>
---
 xen/arch/arm/README.LinuxPrimitives |   3 +-
 xen/arch/arm/arm32/lib/Makefile     |   2 +-
 xen/arch/arm/arm32/lib/memzero.S    | 124 ----------------------------
 xen/arch/arm/include/asm/string.h   |  18 ----
 4 files changed, 2 insertions(+), 145 deletions(-)
 delete mode 100644 xen/arch/arm/arm32/lib/memzero.S

diff --git a/xen/arch/arm/README.LinuxPrimitives b/xen/arch/arm/README.LinuxPrimitives
index 301c0271bbe4..107a01aab743 100644
--- a/xen/arch/arm/README.LinuxPrimitives
+++ b/xen/arch/arm/README.LinuxPrimitives
@@ -108,10 +108,9 @@ linux/arch/arm/lib/memchr.S             xen/arch/arm/arm32/lib/memchr.S
 linux/arch/arm/lib/memcpy.S             xen/arch/arm/arm32/lib/memcpy.S
 linux/arch/arm/lib/memmove.S            xen/arch/arm/arm32/lib/memmove.S
 linux/arch/arm/lib/memset.S             xen/arch/arm/arm32/lib/memset.S
-linux/arch/arm/lib/memzero.S            xen/arch/arm/arm32/lib/memzero.S
 
 for i in copy_template.S memchr.S memcpy.S memmove.S memset.S \
-         memzero.S ; do
+        ; do
     diff -u linux/arch/arm/lib/$i xen/arch/arm/arm32/lib/$i
 done
 
diff --git a/xen/arch/arm/arm32/lib/Makefile b/xen/arch/arm/arm32/lib/Makefile
index b1457c89dc66..18326b284e3b 100644
--- a/xen/arch/arm/arm32/lib/Makefile
+++ b/xen/arch/arm/arm32/lib/Makefile
@@ -1,4 +1,4 @@
-obj-y += memcpy.o memmove.o memset.o memchr.o memzero.o
+obj-y += memcpy.o memmove.o memset.o memchr.o
 obj-y += findbit.o
 obj-y += bitops.o
 obj-y += strchr.o strrchr.o
diff --git a/xen/arch/arm/arm32/lib/memzero.S b/xen/arch/arm/arm32/lib/memzero.S
deleted file mode 100644
index dca5867c24ae..000000000000
--- a/xen/arch/arm/arm32/lib/memzero.S
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- *  linux/arch/arm/lib/memzero.S
- *
- *  Copyright (C) 1995-2000 Russell King
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include "assembler.h"
-
-	.text
-	.align	5
-	.word	0
-/*
- * Align the pointer in r0.  r3 contains the number of bytes that we are
- * mis-aligned by, and r1 is the number of bytes.  If r1 < 4, then we
- * don't bother; we use byte stores instead.
- */
-1:	subs	r1, r1, #4		@ 1 do we have enough
-	blt	5f			@ 1 bytes to align with?
-	cmp	r3, #2			@ 1
-	strltb	r2, [r0], #1		@ 1
-	strleb	r2, [r0], #1		@ 1
-	strb	r2, [r0], #1		@ 1
-	add	r1, r1, r3		@ 1 (r1 = r1 - (4 - r3))
-/*
- * The pointer is now aligned and the length is adjusted.  Try doing the
- * memzero again.
- */
-
-ENTRY(__memzero)
-	mov	r2, #0			@ 1
-	ands	r3, r0, #3		@ 1 unaligned?
-	bne	1b			@ 1
-/*
- * r3 = 0, and we know that the pointer in r0 is aligned to a word boundary.
- */
-	cmp	r1, #16			@ 1 we can skip this chunk if we
-	blt	4f			@ 1 have < 16 bytes
-
-#if ! CALGN(1)+0
-
-/*
- * We need an extra register for this loop - save the return address and
- * use the LR
- */
-	str	lr, [sp, #-4]!		@ 1
-	mov	ip, r2			@ 1
-	mov	lr, r2			@ 1
-
-3:	subs	r1, r1, #64		@ 1 write 32 bytes out per loop
-	stmgeia	r0!, {r2, r3, ip, lr}	@ 4
-	stmgeia	r0!, {r2, r3, ip, lr}	@ 4
-	stmgeia	r0!, {r2, r3, ip, lr}	@ 4
-	stmgeia	r0!, {r2, r3, ip, lr}	@ 4
-	bgt	3b			@ 1
-	ldmeqfd	sp!, {pc}		@ 1/2 quick exit
-/*
- * No need to correct the count; we're only testing bits from now on
- */
-	tst	r1, #32			@ 1
-	stmneia	r0!, {r2, r3, ip, lr}	@ 4
-	stmneia	r0!, {r2, r3, ip, lr}	@ 4
-	tst	r1, #16			@ 1 16 bytes or more?
-	stmneia	r0!, {r2, r3, ip, lr}	@ 4
-	ldr	lr, [sp], #4		@ 1
-
-#else
-
-/*
- * This version aligns the destination pointer in order to write
- * whole cache lines at once.
- */
-
-	stmfd	sp!, {r4-r7, lr}
-	mov	r4, r2
-	mov	r5, r2
-	mov	r6, r2
-	mov	r7, r2
-	mov	ip, r2
-	mov	lr, r2
-
-	cmp	r1, #96
-	andgts	ip, r0, #31
-	ble	3f
-
-	rsb	ip, ip, #32
-	sub	r1, r1, ip
-	movs	ip, ip, lsl #(32 - 4)
-	stmcsia	r0!, {r4, r5, r6, r7}
-	stmmiia	r0!, {r4, r5}
-	movs	ip, ip, lsl #2
-	strcs	r2, [r0], #4
-
-3:	subs	r1, r1, #64
-	stmgeia	r0!, {r2-r7, ip, lr}
-	stmgeia	r0!, {r2-r7, ip, lr}
-	bgt	3b
-	ldmeqfd	sp!, {r4-r7, pc}
-
-	tst	r1, #32
-	stmneia	r0!, {r2-r7, ip, lr}
-	tst	r1, #16
-	stmneia	r0!, {r4-r7}
-	ldmfd	sp!, {r4-r7, lr}
-
-#endif
-
-4:	tst	r1, #8			@ 1 8 bytes or more?
-	stmneia	r0!, {r2, r3}		@ 2
-	tst	r1, #4			@ 1 4 bytes or more?
-	strne	r2, [r0], #4		@ 1
-/*
- * When we get here, we've got less than 4 bytes to zero.  We
- * may have an unaligned pointer as well.
- */
-5:	tst	r1, #2			@ 1 2 bytes or more?
-	strneb	r2, [r0], #1		@ 1
-	strneb	r2, [r0], #1		@ 1
-	tst	r1, #1			@ 1 a byte left over
-	strneb	r2, [r0], #1		@ 1
-	mov	pc, lr			@ 1
-ENDPROC(__memzero)
diff --git a/xen/arch/arm/include/asm/string.h b/xen/arch/arm/include/asm/string.h
index b485e4904419..7cbc8ecc7600 100644
--- a/xen/arch/arm/include/asm/string.h
+++ b/xen/arch/arm/include/asm/string.h
@@ -24,24 +24,6 @@
 #define __HAVE_ARCH_MEMSET
 #define __HAVE_ARCH_MEMCHR
 
-#if defined(CONFIG_ARM_32)
-
-void __memzero(void *ptr, size_t n);
-
-#define memset(p, v, n)                                                 \
-        ({                                                              \
-                void *__p = (p); size_t __n = n;                        \
-                if ((__n) != 0) {                                       \
-                        if (__builtin_constant_p((v)) && (v) == 0)      \
-                                __memzero((__p),(__n));                 \
-                        else                                            \
-                                memset((__p),(v),(__n));                \
-                }                                                       \
-                (__p);                                                  \
-        })
-
-#endif
-
 #endif /* __ARM_STRING_H__ */
 /*
  * Local variables:
-- 
2.40.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 10:58:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 10:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844681.1260165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGFk7-00041m-5L; Wed, 27 Nov 2024 10:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844681.1260165; Wed, 27 Nov 2024 10:57: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 1tGFk7-00041f-2e; Wed, 27 Nov 2024 10:57:59 +0000
Received: by outflank-mailman (input) for mailman id 844681;
 Wed, 27 Nov 2024 10:57:57 +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 1tGFk5-00041Z-Fs
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 10:57:57 +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 1tGFk1-008Fsu-1V;
 Wed, 27 Nov 2024 10:57:53 +0000
Received: from [15.248.3.95] (helo=[10.24.67.15])
 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 1tGFk1-007ngB-1l;
 Wed, 27 Nov 2024 10:57: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>
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=wIVPfv0asLpOkP01L3tYMhc5b/ktGk6Qh7Moq9Beth0=; b=m3RNdL5QpiFhPncXSMr3XunJC6
	7NjkNocaI39NNxvwcrT8M8QrqhXHqFSA4jNzC/HuHTrK9AzFDwTYcsdpuMTYEOVHGPMxAQipvnKjy
	vtYRBU3633iIxpjpt4bRQBuDrxcvOV7dQKVZrE/Q8C1TMSzg4iSbUXUd6OGaejo2/BX4=;
Message-ID: <6233cbef-c5c3-43ac-bc57-e42e79f86f7b@xen.org>
Date: Wed, 27 Nov 2024 10:57:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 07/11] Arm32: use new-style entry annotations for
 library code
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e4bf47ca-2ae6-1fd4-56a6-e4e777150b64@suse.com>
 <98590a41-cee7-4ba3-a723-4e3ee3b55357@suse.com>
 <658f0a05-742e-44ed-bf3f-bd6bb8c694a7@suse.com>
 <7026ab4b-11b9-4ca1-9d33-581fc46b11e9@xen.org>
 <2af39ca6-af4a-4686-bc4c-90dfbe9b6c8e@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2af39ca6-af4a-4686-bc4c-90dfbe9b6c8e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 26/11/2024 08:41, Jan Beulich wrote:
> On 25.11.2024 21:15, Julien Grall wrote:
>> Hi Jan,
>>
>> Sorry for the late answer.
>>
>> On 01/10/2024 16:16, Jan Beulich wrote:
>>> No functional change, albeit all globals now become hidden, and aliasing
>>> symbols (__aeabi_{u,}idiv) as well as __memzero lose their function-ness
>>> and size.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> If the function-ness is important, some new construct would need
>>> inventing. Not setting size for the aliases may even be desirable, as
>>> I'm uncertain whether it is really legal in ELF that two entities
>>> overlap in space.
>>
>> I can't think of a reason where we would need the "function-ness".
> 
> Good, thanks for confirming.
> 
>>> I fear I'm breaking __memzero(), as I don't understand the purpose of
>>> the ".word 0" next to where the FUNC_LOCAL() appears.
>>
>> I am not entirely sure either. AFAIK, "0" is not a valid instruction.
>>
>> This code was taken from Linux, the history doesn't give much clue
>> because it seems the ".word 0" was added before Linux used git.
> 
> My vague guess is that this is a crude way of arranging for desired
> alignment of labels later in the function. That wouldn't require use
> of .word (could simply be a nop), yet what specifically is used there
> doesn't matter for the patch here.
> 
>> However, it looks like Linux replace __memzero with memset() 6 years ago
>> on arm32. So maybe we should get rid of it? This would at least avoid
>> worrying on the purpose of ".word 0".
> 
> Certainly an option, yet may I remind you of your replies [1], [2] to
> a much older patch of mine, which I still have pending for the
> suggested removal never having happened? I fear the patch here may get
> stuck over this just like the other one did.

Here we go 
https://lore.kernel.org/xen-devel/20241127105512.88703-1-julien@xen.org/

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 11:02:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 11:02:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844691.1260175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGFo2-0005ui-Ka; Wed, 27 Nov 2024 11:02:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844691.1260175; Wed, 27 Nov 2024 11:02: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 1tGFo2-0005ub-I2; Wed, 27 Nov 2024 11:02:02 +0000
Received: by outflank-mailman (input) for mailman id 844691;
 Wed, 27 Nov 2024 11:02: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=3yAS=SW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1tGFo0-0005uV-Ff
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 11:02:00 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0411ac7c-acaf-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 12:01:56 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 by support.bugseng.com (Postfix) with ESMTPA id 1BB684EE0739;
 Wed, 27 Nov 2024 12:01: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: 0411ac7c-acaf-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE2Mi41NS4xMzEuNDciLCJoZWxvIjoic3VwcG9ydC5idWdzZW5nLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjA0MTFhYzdjLWFjYWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzA1MzE2LjI4NTM2OCwic2VuZGVyIjoibmljb2xhLnZldHJpbmlAYnVnc2VuZy5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1732705315; bh=WBd8/zexr6RcHfPAd2lmmj/5FoKDu9pU4haEmrSm8Mg=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=w1YNu0BTXKV4HZnERDRzKIc5p9sDObTN4S8AByEFCO/4BGrquRnpaqucJ66cX2cF6
	 45t6gPZsJBMRPSvPj6uckuLoKTl5FuvnlhtiZCn4gS05agcg/kHrIu9h1QucmVnnw5
	 yFCeQpCK3Haz+i0Sh3nBTIdzwR8Mf6xSAlUEPItA2h1xwyKh2LUeqE1lPHW3HyxQ2x
	 BIEWOJmrOMuNAHVxFtlfXeCpTTbNH4t8P1P81+DAJW4Miz04IGxAvBwe+XiT+STszm
	 Jpi7vwEuzGxYgtGEWNZYeL7fc8Y09DvcOTB4oRHN7aHmNRmHbUADjmn6Am4q+qFcVt
	 I6YDen74ElOQQ==
MIME-Version: 1.0
Date: Wed, 27 Nov 2024 12:01:55 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org, Stefano
 Stabellini <sstabellini@kernel.org>, consulting@bugseng.com
Subject: Re: [PATCH v2 1/2] x86/uaccess: rework user access speculative harden
 guards
In-Reply-To: <cf1f87d1-f616-4944-94fa-69a777249072@suse.com>
References: <20241126093508.6966-1-roger.pau@citrix.com>
 <20241126093508.6966-2-roger.pau@citrix.com>
 <cf1f87d1-f616-4944-94fa-69a777249072@suse.com>
Message-ID: <e3ec3dad28dc94436c0b330b2f995120@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 2024-11-26 10:58, Jan Beulich wrote:
> On 26.11.2024 10:35, Roger Pau Monne wrote:
>> The current guards to select whether user accesses should be 
>> speculative
>> hardened violate Misra rule 20.7, as the UA_KEEP() macro doesn't (and 
>> can't)
>> parenthesize the 'args' argument.
> 
> For my own education: This definitely isn't the only place where we use 
> a
> macro with variable arguments, and where the use of the respective 
> macro
> parameter can't be parenthesized. Given patch 2, why is e.g.
> 
> #define emulate_fpu_insn_stub(bytes...)                                 
> \
> do {                                                                    
> \
>     unsigned int nr_ = sizeof((uint8_t[]){ bytes });                    
> \
>     memcpy(get_stub(stub), ((uint8_t[]){ bytes, 0xc3 }), nr_ + 1);      
> \
>     invoke_stub("", "", "=m" (dummy) : "i" (0));                        
> \
>     put_stub(stub);                                                     
> \
> } while (0)
> 
> not an issue? The first use of "bytes" is in figure braces, so probably
> fine. Yet the second use is followed by a comma, so unlikely to be 
> okay.
> 

I didn't look at it in detail, but if bytes is expanded inside an 
initialization list, the configuration allows it iirc. I'll need to 
double check, though.

> Somewhat similarly for
> 
> #define AMD_OSVW_ERRATUM(osvw_id, ...)  osvw_id, __VA_ARGS__, 0
> 
> where we're using the C99 form rather than the GNU extension, and where
> hence __VA_ARGS__ would - by extrapolation of the Misra rule - need
> parenthesizing, when it isn't and can't be.
> 
> Isn't it rather the case that variable argument macros need a more 
> general
> deviation, if not an adjustment to the Misra rule? Extending the Cc 
> list
> some ...
> 

> Jan

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 11:09:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 11:09:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844703.1260186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGFv0-0006Z6-BB; Wed, 27 Nov 2024 11:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844703.1260186; Wed, 27 Nov 2024 11:09: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 1tGFv0-0006Yz-8T; Wed, 27 Nov 2024 11:09:14 +0000
Received: by outflank-mailman (input) for mailman id 844703;
 Wed, 27 Nov 2024 11:09: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=owYM=SW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGFuz-0006Yt-OM
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 11:09:13 +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 068abccc-acb0-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 12:09:09 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso919427166b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 03:09: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
 a640c23a62f3a-aa50b2f5322sm695483066b.70.2024.11.27.03.09.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 03:09: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: 068abccc-acb0-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA2OGFiY2NjLWFjYjAtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzA1NzQ5Ljc0NTMyMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732705749; x=1733310549; 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=DtWUoEJJOTp5dtyTI9bQHOGqEU/+GJdQOs9wTNXQv9o=;
        b=gc5cRh656CFDhnc+q8N5cyYWLMjRalrO3RUqYV/R+2izYh39lrCOVC5GeFdCSydV32
         eYp2DQx+RKw1FuVfnE8oy9NTSercaosQizuhM4f8fhd6sId2HzYYgvkRVDR4o3jOamFn
         WkPzmpkXg/+O5XGBvIAj9wMzQKurBHm57Fo4fx0DibRpKXEWL1OjV68CBK3p5UnlAkxi
         SVNyY2tIAxkf3YO3jrl6dMH2M4glhuxdMKQWKg2CSeEna6vTBFBqo5Ed35ClNBTLrnV4
         BqPhN7/exfzTXH5BYQe3z6Kb03/MACivkMKH6s4tZXDLXCsmhaU/zd8053zWSD/32/sm
         WMMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732705749; x=1733310549;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DtWUoEJJOTp5dtyTI9bQHOGqEU/+GJdQOs9wTNXQv9o=;
        b=OD0L1EimIcHdolpGQG8eAT6Pt6pfC+97DjbebZQCcyBd4F4mu1clJY1Kra1aqsvjNw
         ZVrFMp50GP4SBM4DnXk94UmDhIC5uwdPpvbmf6ndt8yqMkLepoiGLWvFeaVjwEkmpY9o
         xgIHka2nQ44o90dgp946/Tzc8jRT3K451GDyMjGIlqkFGK3zsRR2Ipxs2wGDxU+Elw8w
         7XVEBjuULhwICBUr0jJDm0YqsOVLVefwGlLfyiEe75XUXL2kpstrSBEaaWs8D99TgvBP
         gE4mbL0687TeZLO6fW+fQg3NNtj9S//pn6jcuKyBQPAZawVxqZMSuvySZId1GPbGaqdy
         wvwQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZiNR6E3IDe0HqEztFxFNNIGWcSyncgaTVMTIZJXvp+OGIrT3AJnpo0mIls60/kOGOmtqajEbe7hg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIr6P3Bxa/Yh1jsobLv+gOM6PUQnm8LovTCC9VYklUrG+KK3FD
	KvHdxxY92N3deBj059HarzMFCe1qI/jt5da/WEjza34zQVM5M+Q6l+CP3eQ7fg==
X-Gm-Gg: ASbGncsfjZILHJpN3osN0wOCtXHTO/Unvm1zXZEYSNBM3npCax17mYhjJ0z++MRZDYK
	VCixP7lHkmT04eR1Jbe5j+wW/Ziqq+/UD4uje0sQf1ObR5eCNoEHTkhwRt3XrXWGBuBnL0eZ9vQ
	wj51MNJviVPQaZ6SPVJluUlhxTy/gmBJ+CuGSEF2U3V7okbLEkOs8DUP3htWNChE2a6j3Ycg5qJ
	T4Bx3COMfqa6oXv/zGaUjBx75rTUqnB58oQN4ixAqbqlI+IfuiLTm8EtmmVhZsJ//3GwD0lx3qw
	K+8Wad7QTQvZu+/ZU8uWrGQgjnYo2L5f4+4=
X-Google-Smtp-Source: AGHT+IF1PVTI+Wx/U8AxtylbHPk9jL2YQQRT09KP25tOCwZSTdt7iI9C52lrqybaLv3+6UpUreBnAg==
X-Received: by 2002:a17:906:dc95:b0:a99:543e:94b4 with SMTP id a640c23a62f3a-aa58108aa8cmr218534866b.56.1732705749188;
        Wed, 27 Nov 2024 03:09:09 -0800 (PST)
Message-ID: <0e3ddfc0-af52-4127-a130-76299101f6ec@suse.com>
Date: Wed, 27 Nov 2024 12:09:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm32: Get rid of __memzero()
To: Julien Grall <julien@xen.org>
Cc: Julien Grall <jgrall@amazon.com>,
 Stefano Stabellini <sstabellini@kernel.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: <20241127105512.88703-1-julien@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: <20241127105512.88703-1-julien@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2024 11:55, Julien Grall wrote:
> From: Julien Grall <jgrall@amazon.com>
> 
> All the code in arch/arm32/lib/ where copied from Linux 3.16
> and never re-synced since then.
> 
> A few years ago, Linux got rid of __memzero() because the implementation
> is very similar to memset(p,0,n) and the current use of __memzero()
> interferes with optimization. See full commit message from Linux below.
> 
> So it makes sense to get rid of __memzero in Xen as well.
> 
>     From ff5fdafc9e9702846480e0cea55ba861f72140a2 Mon Sep 17 00:00:00 2001
>     From: Nicolas Pitre <nicolas.pitre@linaro.org>
>     Date: Fri, 19 Jan 2018 18:17:46 +0100
>     Subject: [PATCH] ARM: 8745/1: get rid of __memzero()
> 
>     The __memzero assembly code is almost identical to memset's except for
>     two orr instructions. The runtime performance of __memset(p, n) and
>     memset(p, 0, n) is accordingly almost identical.
> 
>     However, the memset() macro used to guard against a zero length and to
>     call __memzero at compile time when the fill value is a constant zero
>     interferes with compiler optimizations.
> 
>     Arnd found tha the test against a zero length brings up some new
>     warnings with gcc v8:
> 
>       https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82103
> 
>     And successively rremoving the test against a zero length and the call
>     to __memzero optimization produces the following kernel sizes for
>     defconfig with gcc 6:
> 
>         text     data     bss       dec       hex  filename
>     12248142  6278960  413588  18940690   1210312  vmlinux.orig
>     12244474  6278960  413588  18937022   120f4be  vmlinux.no_zero_test
>     12239160  6278960  413588  18931708   120dffc  vmlinux.no_memzero
> 
>     So it is probably not worth keeping __memzero around given that the
>     compiler can do a better job at inlining trivial memset(p,0,n) on its
>     own. And the memset code already handles a zero length just fine.
> 
>     Suggested-by: Arnd Bergmann <arnd@arndb.de>
>     Signed-off-by: Nicolas Pitre <nico@linaro.org>
>     Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>     Acked-by: Arnd Bergmann <arnd@arndb.de>
>     Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
> 
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git ff5fdafc9e97
> Signed-off-by: Julien Grall <jgrall@amazon.com>

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

> --- a/xen/arch/arm/README.LinuxPrimitives
> +++ b/xen/arch/arm/README.LinuxPrimitives
> @@ -108,10 +108,9 @@ linux/arch/arm/lib/memchr.S             xen/arch/arm/arm32/lib/memchr.S
>  linux/arch/arm/lib/memcpy.S             xen/arch/arm/arm32/lib/memcpy.S
>  linux/arch/arm/lib/memmove.S            xen/arch/arm/arm32/lib/memmove.S
>  linux/arch/arm/lib/memset.S             xen/arch/arm/arm32/lib/memset.S
> -linux/arch/arm/lib/memzero.S            xen/arch/arm/arm32/lib/memzero.S
>  
>  for i in copy_template.S memchr.S memcpy.S memmove.S memset.S \
> -         memzero.S ; do
> +        ; do
>      diff -u linux/arch/arm/lib/$i xen/arch/arm/arm32/lib/$i
>  done

Also do away with the line continuation at the same time? E.g.

for i in copy_template.S memchr.S memcpy.S memmove.S memset.S; do
    diff -u linux/arch/arm/lib/$i xen/arch/arm/arm32/lib/$i
done

or

for i in copy_template.S memchr.S memcpy.S memmove.S memset.S
do
    diff -u linux/arch/arm/lib/$i xen/arch/arm/arm32/lib/$i
done

?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 11:48:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 11:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844729.1260224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGGWZ-0004LL-ED; Wed, 27 Nov 2024 11:48:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844729.1260224; Wed, 27 Nov 2024 11: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 1tGGWZ-0004LE-9g; Wed, 27 Nov 2024 11:48:03 +0000
Received: by outflank-mailman (input) for mailman id 844729;
 Wed, 27 Nov 2024 11:48: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=KjDT=SW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tGGWY-0004L8-18
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 11:48:02 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20616.outbound.protection.outlook.com
 [2a01:111:f403:2413::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f66ffda-acb5-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 12:47:54 +0100 (CET)
Received: from MW4P221CA0008.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::13)
 by DS7PR12MB9525.namprd12.prod.outlook.com (2603:10b6:8:251::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.13; Wed, 27 Nov
 2024 11:47:50 +0000
Received: from SJ1PEPF00001CE3.namprd05.prod.outlook.com
 (2603:10b6:303:8b:cafe::bb) by MW4P221CA0008.outlook.office365.com
 (2603:10b6:303:8b::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8182.21 via Frontend Transport; Wed,
 27 Nov 2024 11:47:49 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CE3.mail.protection.outlook.com (10.167.242.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Wed, 27 Nov 2024 11:47:49 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 27 Nov
 2024 05:47:47 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Nov 2024 05:47:46 -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: 6f66ffda-acb5-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjE2IiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjZmNjZmZmRhLWFjYjUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzA4MDc0LjE0Nzk2Miwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UMWZkQgrMCoFrv2ur/dvtjL6tQVhQMjh+XoG4jLTf7m7MDNw0rORaXZPJAtlfkPrUupxKniYgjPe2MXocqt4F5mgvSoe85aAxLIqlqffNiK6RnLI1DRP2P6Wu3BQ7jqtrQ9j9IbPgfZseffc0qaaRhbYELhGnjxLghJDlLIHMqo9jwtJ5VslJtOLRTKN+P5jTkHeOfMlEjPDIqA3S/CPVXth1lCRkq5XtgzCNlGX/mhBkILx8pnYkLu2B/Rwfk2DLPNUSihOftHHkfM+4WuWg+VlO6c7QD8pCCHcwInz2kXFOUqOOcNGhgXMR/9O69z1E+9gs0HqOWeRu6SxJnRRNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cMI2NQsZ6stQEjH0utUjP6bgdByWISlbmqAeVZ5Y1bM=;
 b=Wh314b29HETtsoBVbRf0+Zdk96QBnopS+nwvDjeZBV/nkpya5CC5Xh8kGuYBMUxaTE1+na+in+gRW7PWFPEvW32X8VX+IhG1SN+GyauUbSHYrU00kZX8CdIQR2Q/g+hnhJIvFCwNTgixJGOCyi7KSYHo14uA/Dbzohdma4YcC+yBthMRhY7ycnV+dWyVUpfdpidFLzkbMoTa514jADrnjAIcKVGdFRhq6JxwkIbMbAbBb2Z590NENDTdBuFa4pe1EF9jYiU0JW1fckCw8i23aokgrBz5m0DkEIXtM9Pk7zOGC5H6KD/bgxSE3joXnrCi5SQgNnWAnMuN2SHA/5j4Rw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=cMI2NQsZ6stQEjH0utUjP6bgdByWISlbmqAeVZ5Y1bM=;
 b=NwwVdjMZpzjynIctlRT3Kxvx6CYQEedMfTAciii2vMsKS3gKoEA2cVG0rqP8M9GYBw1xdfIgZrqkiTt05yMsI2AqWNbXLyVkbB/Dp3kPUQqvGoY42pTY3M/kEjuFB+9CPHhkgFlHGPbPgobOamlALE9c+uo2eqU4zzt9bM8XGk4=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <106f7722-2f81-41cf-83a7-c6fe41632a27@amd.com>
Date: Wed, 27 Nov 2024 12:47:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm32: Get rid of __memzero()
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, Julien Grall <jgrall@amazon.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20241127105512.88703-1-julien@xen.org>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241127105512.88703-1-julien@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE3:EE_|DS7PR12MB9525:EE_
X-MS-Office365-Filtering-Correlation-Id: d05f2242-4746-40f0-c310-08dd0ed9516e
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?Qnd6bTU1V2tsTE1ZYjhvTkpFcGNPL2tRUmJGd2F6NmhPVnZoUGVBdHFQQ3hC?=
 =?utf-8?B?TlpnQm11bDlBb216RVdxSkpMVG1ISTE4QlB2WHl0VncyUjRJdG1LUTVZM1JP?=
 =?utf-8?B?ZkNDNktNaVA0ZTVZVFVYZ0pyVEVBdnQ3ZzJJM0VsZHp4bWxSeFd4d3B0SndG?=
 =?utf-8?B?WWo0d1Bwb0drUzlxbDM2YUhhUlI4bmNxcVpHd1o4RTZyUmJrM1Q0NUgxenlj?=
 =?utf-8?B?dStIVjlGYkNxb3RQQ0hucFNuSytHRjJhYWVKNGJzMzVOODZPWXhVN0VRN0NW?=
 =?utf-8?B?MlY0VVNZeDNENGVUdCtZVE54WmVXb1lFb3V1NEE3cXlWYXBKdVVBb1ExaFlw?=
 =?utf-8?B?eEpoMDlaRTNDZFowWFNocW4xd3RST0o5UjNwRVN1Rm11Nk5ScjRXSzBlT3BF?=
 =?utf-8?B?NkZmUko1T2t3dFY4bDR0MlUrTEQ3UGcxWkpPeE56QytYMlZ0SFk0MDBMS3V6?=
 =?utf-8?B?TWJnbllxNUorVHJ4RVlFWmh0RWRmUHNqVFVITmM3bFFxTmFUTnFQditncUli?=
 =?utf-8?B?SnpCSHJKRXZZNjRLc2xPNFBrQ2Mzd3VPcEc1dkVNTWFhOS9GK2ZJbXNhQUpN?=
 =?utf-8?B?cEd0R3ZEWVZWSlVUVGVnSVFLME5URitjUmZqMDRDbFMyNVRmRTBTWTI2eU50?=
 =?utf-8?B?WXUvSFF5T0NneEVUWExOdEFzWFNEcnh2eERsd3FjemZ6VlRTV1pQWmVCb3hP?=
 =?utf-8?B?MVNyT0hYRWRqVk9ubG15dWQ5Nmd3L0w1ZTltSDZGcWhhUGd1UnBaLzdSdW1t?=
 =?utf-8?B?T0lpQ0JnN00rUmEwVWNuZzN6ZEtlOVViS2dpc2U5RGJsTWlGMlFrazZFOVJt?=
 =?utf-8?B?TklqdittaGFiUDcvcGcrdks3dGhjYmg1eXlNMi9LQmk0am01QnJUOFkyR1NO?=
 =?utf-8?B?WUNrdlppWVg3Wldwdkg2OVBrb2llWlhNZXk1RitXTGwzSE9hY05IQi81UTZR?=
 =?utf-8?B?VGN4N3prOWV1T0lCaFFPQmJaSUVRU0VKTGU4K1M3elJudm1qVE00cTE0bVFX?=
 =?utf-8?B?bC9TMG45WW40aktLVzFiQW1PbHdKTkQzN2Rqc1hzZVVDalo5Rkc0cTV6WjF3?=
 =?utf-8?B?Q1dyRzExaWhzdXk0VWtiUm5kem1DeXUwSGNmT1ZoOTRZRERLUWRJRkdpeENG?=
 =?utf-8?B?cW9UOGtIbHpJMDcvUVNGOVZBbnF3QUREUk5iR2VGWW1Eb3dmaU9TMWRVMjR3?=
 =?utf-8?B?OG5kdlpDVzY5Y3hKenpyU0h6dTlMWDR5WVJ4K2YvWm5GcGc5eVBXeU5meVNw?=
 =?utf-8?B?a0J2czQ1OHBQeFpNV3Uwai84K2ExZ3VWN0drdkZlVzZMT0tyWWd0WVptSE83?=
 =?utf-8?B?dzE0bktJKzJtMzlndXR5ekYzSWxpNGJXYURyVGFaWGJBeGF6NlU1UzlMbDl6?=
 =?utf-8?B?a0VaSEVNWnA3QzdabkNQamhJemJQSnJkVk43akFyMTR2TnNCZGVodW5MYko2?=
 =?utf-8?B?b3ZMR2NYbFhrMG9TNVltWEprcFduNDV3OE02V2xrNG9yeHlDcXZ5S2dqNHl2?=
 =?utf-8?B?U01zM1RpeHdPbitqdHVUc3hqcy82R1lIempkNS9HeC9LRFdHNUxqUFNhSjRE?=
 =?utf-8?B?UkFucnlYNVl6TUNMR1ROWG5lVUtxYnFJYjFiVDRhRktQeW9uZm12d3gxdzlY?=
 =?utf-8?B?R2M5czRld0xOWjV5M3FvMlZ6Wmw3VnZ0VE9IV000TWsyVTB4QnJQTkh1NlRJ?=
 =?utf-8?B?VlhFSjZoeW9sczBoY2tvb0tLMzc5d2wxZnpMbGRyODFDTVdXMy9DMktua2dH?=
 =?utf-8?B?cG8rcXRxVXgzVFZmMUdVZlRwUmVLWnlucml5T3RLcVRaK0laZFpLMW9xd09O?=
 =?utf-8?B?cE9aYVdFc3ExWHpxdS9DRE1xZVh5aXhVYlk5S1NLWkZzQzlZaDVMTG1EMTJo?=
 =?utf-8?B?bnJyUGRNWS9EWWluY2VDaFZoQWFiVnY3Wjd6bktzcGlIMWtLZXZ3TzJ6bVJS?=
 =?utf-8?Q?YI+/DW7antKkzWvpCVdO3gNgRMkGRbu5?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 27 Nov 2024 11:47:49.1821
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d05f2242-4746-40f0-c310-08dd0ed9516e
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB9525



On 27/11/2024 11:55, Julien Grall wrote:
> 
> 
> From: Julien Grall <jgrall@amazon.com>
> 
> All the code in arch/arm32/lib/ where copied from Linux 3.16
> and never re-synced since then.
> 
> A few years ago, Linux got rid of __memzero() because the implementation
> is very similar to memset(p,0,n) and the current use of __memzero()
> interferes with optimization. See full commit message from Linux below.
> 
> So it makes sense to get rid of __memzero in Xen as well.
> 
>     From ff5fdafc9e9702846480e0cea55ba861f72140a2 Mon Sep 17 00:00:00 2001
>     From: Nicolas Pitre <nicolas.pitre@linaro.org>
>     Date: Fri, 19 Jan 2018 18:17:46 +0100
>     Subject: [PATCH] ARM: 8745/1: get rid of __memzero()
> 
>     The __memzero assembly code is almost identical to memset's except for
>     two orr instructions. The runtime performance of __memset(p, n) and
>     memset(p, 0, n) is accordingly almost identical.
> 
>     However, the memset() macro used to guard against a zero length and to
>     call __memzero at compile time when the fill value is a constant zero
>     interferes with compiler optimizations.
> 
>     Arnd found tha the test against a zero length brings up some new
>     warnings with gcc v8:
> 
>       https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82103
> 
>     And successively rremoving the test against a zero length and the call
>     to __memzero optimization produces the following kernel sizes for
>     defconfig with gcc 6:
> 
>         text     data     bss       dec       hex  filename
>     12248142  6278960  413588  18940690   1210312  vmlinux.orig
>     12244474  6278960  413588  18937022   120f4be  vmlinux.no_zero_test
>     12239160  6278960  413588  18931708   120dffc  vmlinux.no_memzero
> 
>     So it is probably not worth keeping __memzero around given that the
>     compiler can do a better job at inlining trivial memset(p,0,n) on its
>     own. And the memset code already handles a zero length just fine.
> 
>     Suggested-by: Arnd Bergmann <arnd@arndb.de>
>     Signed-off-by: Nicolas Pitre <nico@linaro.org>
>     Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>     Acked-by: Arnd Bergmann <arnd@arndb.de>
>     Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
> 
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git ff5fdafc9e97
> Signed-off-by: Julien Grall <jgrall@amazon.com>
In case you need Arm's ack apart from Jan's Rb:
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 12:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 12:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844756.1260310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHV1-00069a-M1; Wed, 27 Nov 2024 12:50:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844756.1260310; Wed, 27 Nov 2024 12:50: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 1tGHV1-00069G-IK; Wed, 27 Nov 2024 12:50:31 +0000
Received: by outflank-mailman (input) for mailman id 844756;
 Wed, 27 Nov 2024 12:50: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHUz-0004Yu-Sq
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 12:50:29 +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 2a4e90cb-acbe-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 13:50:22 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-53ded167ae3so2115686e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 04:50:22 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd8cb7f00sm2023267e87.7.2024.11.27.04.50.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 04: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: 2a4e90cb-acbe-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzYiLCJoZWxvIjoibWFpbC1sZjEteDEzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJhNGU5MGNiLWFjYmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzExODIyLjY1NTcxOSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732711822; x=1733316622; 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=uXt3gxcLfSewdGxxgtLt+uhH1+qMZe5HJDTdu4QBaWc=;
        b=Y4vys3ZzsxfNINTzYCENgnfx209sUtvXiGhtLGMZOU7ROySiZqqOwrLThmmS2y7rA+
         fTXTxQN2ckdVe9te9SWbQl2X9cvWb8LTSW+dUMEnZgzmm+/BuVhomVzJhzJD6czbCohl
         hkk+1jzJgvAwtTkGdma+kUDW3XotqIbHz6b2oSmCLElQAstM0JQ2lXu5cQEyF0d/z0XO
         5nc5tdlcF/B7N/I4Dw6VPJR2tKnsIJruU2n3BzHgjN1SpD9SrToE+z2ktOKUGkYlTncU
         s8OHcfaINfr+pSK9fB6U960YeJBhVnOaDxM96+4DqG2ZUl0RDrgNovdqHdCxhICwEwxZ
         I+fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732711822; x=1733316622;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uXt3gxcLfSewdGxxgtLt+uhH1+qMZe5HJDTdu4QBaWc=;
        b=lnDq8mBIUmbwQwJt2l75zQkdjtxk8y+6YI2KlCtc6Ssu4E9CIjXShtiex6Bwk0DArn
         vLu+/RnoAzHDPJk1Du4WQ/lV5+Akva3T2m7MMsZEHcxX/6dJ6+7NGFWtZ79ksjt2aDr1
         0nW7Z0qOVsW57Ul5IHMrsyotMum0fRkRyI+ZL5rjMrmtznSRoi4XVjRUq7Ah33NmVRtF
         gJlDap8OMwKFiliMTUpInTzgFa3/SGepAS4tB4WiDQog1/laqvLESpnBFbe83XJLe93B
         Eop14aAG5+uDQhV3Ab9PGBrqYR96cQOlwWnmff6UpZYd431jtnDZh7BI9xzmmD0e6rZ/
         FmPA==
X-Gm-Message-State: AOJu0YyxpjnlskMODLKkLAkX8BYJwbuwLhu/G0ahut4kw+O+Wu1eKTyc
	jkPYdfExd5JC9nCJefTobil/wpFbiuJQh95LhVY8ZvlET3OpH37BWjukTA==
X-Gm-Gg: ASbGncv51+jbdBa4N6/jV27R/0N/321b3orGGcKmOvW6zJPKQ9gT1SpMW+9UtIrr656
	WG5R7/eS1ByEmwlDYgFs0tnIsFoupmaCKYLoCcppSjdUFouQU+On/DvQ12dsCYTrmmqXmPUNQVi
	ksn4zPK8K/iLydyuI2VtoNzA9iY6YZPbN/B2gFT/vr4ACworssjs0IhRqzLr1CT5yR9WWV5E62+
	mnERMXTBassW3NC5X+GTpdqFDDcPneJarN4xFeeyts12GkNCIw=
X-Google-Smtp-Source: AGHT+IESECb2bmfgazPXddPxX+IKMj6wv/oqPxGegKktP50aiHa41a3AflK1U38r/m44ekdyq1RshA==
X-Received: by 2002:a05:6512:b14:b0:53d:ecf2:3347 with SMTP id 2adb3069b0e04-53df00d1b4emr1395380e87.21.1732711821608;
        Wed, 27 Nov 2024 04:50: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 5/6] xen/riscv: implement relocate_fdt()
Date: Wed, 27 Nov 2024 13:50:14 +0100
Message-ID: <c157b03a8cb6d9c4910136b5d73260b47c55554e.1732709650.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732709650.git.oleksii.kurochko@gmail.com>
References: <cover.1732709650.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

relocate_fdt() relocates FDT to Xen heap instead of using early mapping
as it is expected that discard_initial_modules() ( is supposed to call
in the future ) discards the FDT boot module and remove_early_mappings()
destroys the early mapping.

To implement that the following things are introduced as they are called
by internals of xmalloc_bytes() which is used in relocate_fdt():
1. As RISC-V may have non-coherent access for RAM ( f.e., in case
   of non-coherent IO devices ) flush_page_to_ram() is implemented
   to ensure that cache and RAM are consistent for such platforms.
2. copy_from_paddr() to copy FDT from a physical address to allocated
   by xmalloc_bytes() in Xen heap.
3. virt_to_page() to convert virtual address to page. Also introduce
   directmap_virt_end to check that VA argument of virt_to_page() is
   inside directmap region.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/mm.h   | 10 ++++++--
 xen/arch/riscv/include/asm/page.h | 10 ++++++--
 xen/arch/riscv/mm.c               |  3 +++
 xen/arch/riscv/setup.c            | 41 +++++++++++++++++++++++++++++++
 4 files changed, 60 insertions(+), 4 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 699ed23f0d..25fd38531f 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -8,11 +8,13 @@
 #include <xen/const.h>
 #include <xen/mm-frame.h>
 #include <xen/pdx.h>
+#include <xen/pfn.h>
 #include <xen/types.h>
 
 #include <asm/page-bits.h>
 
 extern vaddr_t directmap_virt_start;
+extern vaddr_t directmap_virt_end;
 
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
@@ -148,8 +150,12 @@ static inline void *page_to_virt(const struct page_info *pg)
 /* Convert between Xen-heap virtual addresses and page-info structures. */
 static inline struct page_info *virt_to_page(const void *v)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    unsigned long va = (unsigned long)v;
+
+    ASSERT(va >= DIRECTMAP_VIRT_START);
+    ASSERT(va <= directmap_virt_end);
+
+    return frametable_virt_start + PFN_DOWN(va - directmap_virt_start);
 }
 
 /*
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 0f297141d3..c245a4273f 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -7,6 +7,7 @@
 
 #include <xen/bug.h>
 #include <xen/const.h>
+#include <xen/domain_page.h>
 #include <xen/errno.h>
 #include <xen/types.h>
 
@@ -172,10 +173,15 @@ static inline void invalidate_icache(void)
 #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
 #define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
 
-/* TODO: Flush the dcache for an entire page. */
 static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache)
 {
-    BUG_ON("unimplemented");
+    void *v = map_domain_page(_mfn(mfn));
+
+    clean_and_invalidate_dcache_va_range(v, PAGE_SIZE);
+    unmap_domain_page(v);
+
+    if ( sync_icache )
+        invalidate_icache();
 }
 
 /* Write a pagetable entry. */
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index f2bf279bac..c614d547a6 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -419,6 +419,7 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
 }
 
 vaddr_t __ro_after_init directmap_virt_start = DIRECTMAP_VIRT_START;
+vaddr_t __ro_after_init directmap_virt_end;
 
 struct page_info *__ro_after_init frametable_virt_start = frame_table;
 
@@ -556,6 +557,8 @@ void __init setup_mm(void)
         setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
     }
 
+    directmap_virt_end = directmap_virt_start + ram_end - 1;
+
     setup_frametable_mappings(ram_start, ram_end);
     max_page = PFN_DOWN(ram_end);
 }
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9680332fee..ff667260ec 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 #include <public/version.h>
 
 #include <asm/early_printk.h>
+#include <asm/fixmap.h>
 #include <asm/sbi.h>
 #include <asm/setup.h>
 #include <asm/smp.h>
@@ -26,6 +27,46 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
 
+/**
+ * copy_from_paddr - copy data from a physical address
+ * @dst: destination virtual address
+ * @paddr: source physical address
+ * @len: length to copy
+ */
+void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+{
+    void *src = (void *)FIXMAP_ADDR(FIX_MISC);
+
+    while (len) {
+        unsigned long l, s;
+
+        s = paddr & (PAGE_SIZE - 1);
+        l = min(PAGE_SIZE - s, len);
+
+        set_fixmap(FIX_MISC, maddr_to_mfn(paddr), PAGE_HYPERVISOR_RW);
+        memcpy(dst, src + s, l);
+        clean_dcache_va_range(dst, l);
+        clear_fixmap(FIX_MISC);
+
+        paddr += l;
+        dst += l;
+        len -= l;
+    }
+}
+
+/* Relocate the FDT in Xen heap */
+static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
+{
+    void *fdt = xmalloc_bytes(dtb_size);
+
+    if ( !fdt )
+        panic("Unable to allocate memory for relocating the Device-Tree.\n");
+
+    copy_from_paddr(fdt, dtb_paddr, dtb_size);
+
+    return fdt;
+}
+
 void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 12:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 12:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844755.1260296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHV0-0005fx-DK; Wed, 27 Nov 2024 12:50:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844755.1260296; Wed, 27 Nov 2024 12:50: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 1tGHV0-0005fm-48; Wed, 27 Nov 2024 12:50:30 +0000
Received: by outflank-mailman (input) for mailman id 844755;
 Wed, 27 Nov 2024 12: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHUy-0004Yu-Sa
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 12:50:28 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 29e19c1b-acbe-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 13:50:21 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-53da6801c6dso6454463e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 04:50:21 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd8cb7f00sm2023267e87.7.2024.11.27.04.50.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 04:50: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: 29e19c1b-acbe-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmYiLCJoZWxvIjoibWFpbC1sZjEteDEyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI5ZTE5YzFiLWFjYmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzExODIxLjkzNjI1OSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732711821; x=1733316621; 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=dc9hH6WhqhqHo54EhAfa8e1CnnKH2P2ca7DkyeZFSPw=;
        b=PeR/TwUFh7EJ8vDpjg2fDy/I54/68TIH0amcTTta81sIkWtl1dSzbxVD70Sm2cmWCv
         WqTw6oy9bI7Mf7sk5N/7baeWV1viHOTssb4KM7kH4wDbCNSTDdsvPt36dE6lScAWJZbN
         tf7moN9xqIuLw/wDJmTcjwUDW5TGm8Onay//2/OhEvsuuYpaJjCrGngAGvEbItihz6Sm
         wkoNBMR96/7Y28oWMDpUNsP8YdcMQHUVl1weiRRKLbcodgylxI/l6iX+3uYaX8GMsMMW
         BCS4EJss9nyDtOHj6apNy1wbCoOw6G9KAdSM+uwlqriHxLyWkiPVwxhcLtbt0CJmcCDK
         hiWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732711821; x=1733316621;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dc9hH6WhqhqHo54EhAfa8e1CnnKH2P2ca7DkyeZFSPw=;
        b=hKz6yx0sxBBmCX1psqqYh3o1X1clbFIVIH9LYTpNd1ii/vnv67JYQ77JRia7K4hxDc
         syXBRrA//ht8gczBow6YPm0z29nMLVvqKHneYWLhERbuL5REiEAjiN45JDDCPs+YrRt3
         4nYTRZ/qBLL3zFvkhwgkoHr3JHKc8fYXO7UTCsHnulOXT1M1/ngecTs+R0rpIixHIVXm
         MzMGabCRKAkmR2icZLOdEXyHXpA5NYvgqlEu5f/5dBQGPO39NnLB0+CUGUjImsDdv+hq
         Fw3O4ZQgPvGjE0giiZyfakQ7d0hSIr9a9TZowh8pTql8thXS7oM7VAjky+i1gdb1FCn/
         QjaQ==
X-Gm-Message-State: AOJu0YyUhOx/PE9ZAaJKo8Fo8hkq/UfxlxbJYR3z88VbSyX4puM+s32k
	SpzQbi1j3K0o0l9QabTNeDobwkqajraHGqwo+P1iS4/SpBO0YuByeeM6aw==
X-Gm-Gg: ASbGnctGreru/Kb/2Eftw4L/pQXzOA4a8hkLFHoZCf+uiI7IIzW5tuEE10aM5kpEiXx
	kSAY6X4cVuDurAPCcymjfdAK9i49ZOZMLZf2sRQrN9IycnfdKOo9mm4bUdUSuYZMuh/erppO1hb
	I0RcjNAaIvg2YggjegkV4I1G9dpf9BGvuSeJrOFrEs3dMWDG7PAnCJOhEf/3WAQ17P5/4H8PPMc
	UQojI+s5iskUU/ZDIO+qoJjyR/OkSBwY2IE7Nl6xbrn2NgBKj8=
X-Google-Smtp-Source: AGHT+IFAwkiwdzMyqIaGjcrY2cTAISxO2+97YFmGMwN/UNjalYU5bAzGY8tqg/B6yYfsgukoOAM0dQ==
X-Received: by 2002:a05:6512:b8f:b0:53d:e52d:3373 with SMTP id 2adb3069b0e04-53df00ff242mr1685501e87.41.1732711820930;
        Wed, 27 Nov 2024 04:50: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 4/6] xen/riscv: introduce cache management operations (CMO)
Date: Wed, 27 Nov 2024 13:50:13 +0100
Message-ID: <1310a2fb3b9824ae66f850600925127fdfdb44fa.1732709650.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732709650.git.oleksii.kurochko@gmail.com>
References: <cover.1732709650.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

KConfig HAS_CMO is introduced to handle if the platform has CMO related
extenstions ( such as Zicbom, Zicboz, Zicbop etc ) or not.

if HAS_CMO isn't set stubs for clean_and_invalidate_dcache_va_range()
and clean_dcache_va_range() are implemented as just returning
-EOPNOTSUPP.

Our current platform is QEMU which doesn't model caches so it should be
fine to follow implementations when HAS_CMO isn't set.

invalidate_icache() is implemented using fence.i instruction as
mentioned in the unpriv spec:
  The FENCE.I instruction was designed to support a wide variety of
  implementations. A simple implementation can flush the local instruction
  cache and the instruction pipeline when the FENCE.I is executed.
  A more complex implementation might snoop the instruction (data) cache
  on every data (instruction) cache miss, or use an inclusive unified
  private L2 cache to invalidate lines from the primary instruction cache
  when they are being written by a local store instruction.
  If instruction and data caches are kept coherent in this way, or if the
  memory system consists of only uncached RAMs, then just the fetch pipeline
  needs to be flushed at a FENCE.I.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Kconfig            |  3 +++
 xen/arch/riscv/include/asm/page.h | 18 +++++++++++++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 1858004676..4f1fcfd21a 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -14,6 +14,9 @@ config ARCH_DEFCONFIG
 	string
 	default "arch/riscv/configs/tiny64_defconfig"
 
+config HAS_CMO # Cache Management Operations
+	bool
+
 menu "Architecture Features"
 
 source "arch/Kconfig"
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index bf3f75e85d..0f297141d3 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -7,6 +7,7 @@
 
 #include <xen/bug.h>
 #include <xen/const.h>
+#include <xen/errno.h>
 #include <xen/types.h>
 
 #include <asm/atomic.h>
@@ -148,9 +149,24 @@ static inline bool pte_is_mapping(pte_t p)
     return (p.pte & PTE_VALID) && (p.pte & PTE_ACCESS_MASK);
 }
 
+#ifndef HAS_CMO
+static inline int clean_and_invalidate_dcache_va_range(const void *p, unsigned long size)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline int clean_dcache_va_range(const void *p, unsigned long size)
+{
+    return -EOPNOTSUPP;
+}
+#else
+int clean_and_invalidate_dcache_va_range(const void *p, unsigned long size);
+int clean_dcache_va_range(const void *p, unsigned long size);
+#endif
+
 static inline void invalidate_icache(void)
 {
-    BUG_ON("unimplemented");
+    asm volatile ( "fence.i" ::: "memory" );
 }
 
 #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 12:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 12:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844751.1260257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHUu-0004c0-EF; Wed, 27 Nov 2024 12:50:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844751.1260257; Wed, 27 Nov 2024 12:50: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 1tGHUu-0004aM-6i; Wed, 27 Nov 2024 12:50:24 +0000
Received: by outflank-mailman (input) for mailman id 844751;
 Wed, 27 Nov 2024 12:50: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHUt-0004Yj-1T
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 12:50:23 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28b59f8f-acbe-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 13:50:19 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-53dde5262fdso4894826e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 04:50:19 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd8cb7f00sm2023267e87.7.2024.11.27.04.50.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 04:50: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: 28b59f8f-acbe-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmUiLCJoZWxvIjoibWFpbC1sZjEteDEyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI4YjU5ZjhmLWFjYmUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzExODE5Ljk0NDkxNywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732711819; x=1733316619; 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=QFk+JVoO6jJ82E1hzFEd4LqERyYR6iKKhEgzSQ920Ew=;
        b=WQI8SVd4Lnf1jKpH0TqwcakGE4VlWOGgOYfz85e7C3OH9c7Cj3WJkPJaD4ecXplJXe
         F/5822i9Wu1qu7tmg88d9IO6wdu6V4aiIoRLXC/9bpONJqrJgs9/kgBFXL5l5ibobUE+
         6oDEumkiFU4dM9CrxnPWeMsMMJwtS7XzxqO8E4poUg6EmgOgQ1y06JWcpDARM2BFTB3j
         TXk1luvZQW4I0O/V5P7D/cek72YRGnGR21CtyEQUvCM67r3szbJ6U+3SEWp9rpMvyfTr
         Ra26NmilOzf71B16EGH4o95eEmRngEkNzRJpFbQw+4x9y+ENph2U3Nt1FHUuAY8TmKrX
         /HWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732711819; x=1733316619;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QFk+JVoO6jJ82E1hzFEd4LqERyYR6iKKhEgzSQ920Ew=;
        b=wcZBftBPirSIKFv/PN1kLkdAqqYSLvnJVR195ysCohfNGH9v/Gy4ahSQ8LL9JrPkMK
         c1PLEcz6E/O7GZk75n1EZPiVfDWLVKfFVkgq3a9uiI+WXqvrWvjKvT2mnPUfgfZTG5rn
         pWZgp+9bELv4tDHpg3RJKGxFWXXMzuirc6IhZ7N6H3Cqy6dsR84foWWo/cRufTyEw6u9
         +/q2RcaSg6b9hEby4LH21twbUvmJpxyOJ2de/AbTWiTcesCxxs/7lnV6OEkxgl+iomAE
         q7taotBwjM7bFVKqolDyReZOLmscjqBKH3FDl4U/uhJ2ZrhqeaxEx1Rv12NE1+OTpuut
         4eCg==
X-Gm-Message-State: AOJu0YxMbr8+H86f6HB2n7eOlTokZlqmnFHhInYaz4GhyHxahxXz0yBx
	zNJ1fxyohd5JemWE5L3gz3Q//Mk8O82iom2Br/yPlhL1kq6GJXW3gNqV1A==
X-Gm-Gg: ASbGncvoV62BURnDfShY2ztMpldod2ymSn2zBCXdYTkRqiU19qiUzGM/acYQSo9UFHz
	FM2WLiDF2Po4TKNs2AgyMzcqUog47NXTi7ztIdK2Z0mbBr/yqjfPpZ4spVfpJ8EmPgT5K8fa++S
	i8Q8Q4cNZAO81SJxQJ13BEZn6W3hq2A5cycjTvI5xs0z5nFz2LQGFTrRPHAXOHdbuY+U2q43GlE
	43G6wU+RreMkCOzcrxE4W/s3UHqq0vO9z0Wn9iN8UhiTHFNZQ4=
X-Google-Smtp-Source: AGHT+IEtCS5jEQ4Ctfxyle6YJ3nFmVflvqq7XZvda8k58SPVAJICGdGGC8zsf5xcn2lfv7gvcDHDWQ==
X-Received: by 2002:a05:6512:b15:b0:539:e317:b05f with SMTP id 2adb3069b0e04-53df00de3a9mr1519882e87.28.1732711818904;
        Wed, 27 Nov 2024 04:50: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/6] xen/riscv: add destroy_xen_mappings() to remove mappings in Xen page tables
Date: Wed, 27 Nov 2024 13:50:10 +0100
Message-ID: <eed2acbf660cadbfb267e7854e9f67eb382cc966.1732709650.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732709650.git.oleksii.kurochko@gmail.com>
References: <cover.1732709650.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the destroy_xen_mappings() function, which removes page
mappings in Xen's page tables between a start address s and an end
address e.
The function ensures that both s and e are page-aligned
and verifies that the start address is less than or equal to the end
address before calling pt_update() to invalidate the mappings.
The pt_update() function is called with INVALID_MFN and PTE_VALID=0
in the flags, which tell pt_update() to remove mapping. No additional
ASSERT() is required to check these arguments, as they are hardcoded in
the call to pt_update() within destroy_xen_mappings().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/mm.c | 6 ------
 xen/arch/riscv/pt.c | 8 ++++++++
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 9359dc7f33..f2bf279bac 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -360,12 +360,6 @@ int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
     return 0;
 }
 
-int destroy_xen_mappings(unsigned long s, unsigned long e)
-{
-    BUG_ON("unimplemented");
-    return -1;
-}
-
 void share_xen_page_with_guest(struct page_info *page, struct domain *d,
                                enum XENSHARE_flags flags)
 {
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index d62aceb36c..8d35ef5ca8 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -421,6 +421,14 @@ int map_pages_to_xen(unsigned long virt,
     return pt_update(virt, mfn, nr_mfns, flags);
 }
 
+int destroy_xen_mappings(unsigned long s, unsigned long e)
+{
+    ASSERT(IS_ALIGNED(s, PAGE_SIZE));
+    ASSERT(IS_ALIGNED(e, PAGE_SIZE));
+    ASSERT(s <= e);
+    return pt_update(s, INVALID_MFN, PFN_DOWN(e - s), 0);
+}
+
 int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
 {
     return pt_update(virt, INVALID_MFN, nr_mfns, PTE_POPULATE);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 12:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 12:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844753.1260280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHUw-0005Fk-Or; Wed, 27 Nov 2024 12:50:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844753.1260280; Wed, 27 Nov 2024 12: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 1tGHUw-0005Fd-Lr; Wed, 27 Nov 2024 12:50:26 +0000
Received: by outflank-mailman (input) for mailman id 844753;
 Wed, 27 Nov 2024 12: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHUv-0004Yj-DE
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 12:50:25 +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 2aa996f1-acbe-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 13:50:23 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-2ffbf4580cbso37749101fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 04:50:23 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd8cb7f00sm2023267e87.7.2024.11.27.04.50.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 04:50: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: 2aa996f1-acbe-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzAiLCJoZWxvIjoibWFpbC1sajEteDIzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJhYTk5NmYxLWFjYmUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzExODIzLjMxMTE4Mywic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732711822; x=1733316622; 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=Vrv773z0JqGv9oIsUDba+C5p6taAtv0iDKAnsKPcYoI=;
        b=LhytWryzAi2z1mUniaSy5r+NVQN3dgrEseq6ovCbxxAtW+jbEr/MYzBmHN5G6Orcdm
         bxGxB8NHvjx5QKioCTGPolYd346qz9fRON0tAAkAaPjzyQki6w6A0XqlUPAjTRIHNC+n
         dUFXy6PxiIMV3AKIduIx2t1t4E955jJuiRA19F1wqtJtcLBqw+Or+pWpcelDOkuuQA/h
         0EYT6TTLT6+BFPnK6kFpKa0eMt9+FdSJatAb+skQxUenE7s14JJBUzuTUINVaekXO3WH
         ROX/6iz5zY/GZAz8Zj4IaLbblAGd1INo8BphaTvCexypyyfmAya7GztzlCbD6a/9c+hz
         KkhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732711822; x=1733316622;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Vrv773z0JqGv9oIsUDba+C5p6taAtv0iDKAnsKPcYoI=;
        b=I0ArdO0VOUbE26nZe0rtwpaycu76TWfzYPL9PRYUS3wPgZMSmeVLsn5xUmYbl0C4m7
         wbRrf1rxPIi8XQXvnrAvsRYFPQ7Aq5ouuyYuJdRjbtQRk62IlFIUY44OiaajrtCi2WMI
         T98U/HrilazIbJKGr17ZtQNjxIvGSS7z88AsVZqMPSZr80O5D0tUJ9HXRO2b6vldD3iz
         yRXgWWOpP3ir5fPHt1n+c9cy04A8b5vThU/1buO5aQ1l+cfwCdcOR/EsAsbVu6IyUbD7
         oZscNepn2ckEa7vJzgY0Y+C/k1oxSfo2GNGNxgX+jEI7yzJxhwaETPndLL7OC6VVbemy
         xKeQ==
X-Gm-Message-State: AOJu0YyfbJi12W1Li88QpKJqVh9aZrhMVRQvN02pard87n1hU7qvi8Yu
	Nt6vG6t7/V+UC5RQpSsn+k7iomxOIF/JBy3fEhNb2FnFb3+p999MCbxJLw==
X-Gm-Gg: ASbGncszydlCWDVprCKThX4BYxXV5xBL74VCBF15oO8FVuD0fMdi7/Ou14j8xv6Dt32
	YIFIh5sDniL2KJTnhqv/+Kl0HMnnwdu9EtYqB+DIJJuXrPixS9jaPrEsjs/zaqsOMoIme1ljmYz
	pr2EkKLsV7mm/f9KolAs0/7C4QPDHhC3IGyc0fBVnswOSgAOW6msS95e2b7zBt8z50/hmPMO8fd
	0eMjvji+lagoY1+92+hJFnrUSDq+wobOzWnyRelJp2zi5/P8IM=
X-Google-Smtp-Source: AGHT+IE9bfCGlBS0Z97uejBtcSyuwPDsOaYmpPjkGjm194/zDDwgrAHW3K9bwnEofHxmK3t4h5eLeg==
X-Received: by 2002:a05:6512:238c:b0:53c:759f:3b71 with SMTP id 2adb3069b0e04-53df00d9d87mr1397415e87.31.1732711822276;
        Wed, 27 Nov 2024 04: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>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 6/6] xen/riscv: relocating and unflattening host device tree
Date: Wed, 27 Nov 2024 13:50:15 +0100
Message-ID: <f2b1b8b4d80d6b2ccc846ae7171a316a9b46ac56.1732709650.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732709650.git.oleksii.kurochko@gmail.com>
References: <cover.1732709650.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Relocate FDT to Xen heap instead of using early mapping as it is
expected that discard_initial_modules() ( is supposed to call in
the future ) discards the FDT boot module and remove_early_mappings()
destroys the early mapping.

Unflatten a device tree, creating the tree of struct device_node.
It also fills the "name" and "type" pointers of the nodes so the normal
device-tree walking functions can be used.

Set device_tree_flattened to NULL in the case when acpi_disabled is
equal to false.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/setup.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index ff667260ec..41826f77fb 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/acpi.h>
 #include <xen/bug.h>
 #include <xen/bootfdt.h>
 #include <xen/compile.h>
@@ -71,6 +72,7 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
     const char *cmdline;
+    size_t fdt_size;
 
     remove_identity_mapping();
 
@@ -95,7 +97,7 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
                           _end - _start, false) )
         panic("Failed to add BOOTMOD_XEN\n");
 
-    if ( !boot_fdt_info(device_tree_flattened, dtb_addr) )
+    if ( !(fdt_size = boot_fdt_info(device_tree_flattened, dtb_addr)) )
         BUG();
 
     cmdline = boot_fdt_cmdline(device_tree_flattened);
@@ -114,6 +116,18 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
      */
     system_state = SYS_STATE_boot;
 
+    if ( acpi_disabled )
+    {
+        printk("Booting using Device Tree\n");
+        device_tree_flattened = relocate_fdt(dtb_addr, fdt_size);
+        dt_unflatten_host_device_tree();
+    }
+    else
+    {
+        device_tree_flattened = NULL;
+        panic("Booting using ACPI isn't supported\n");
+    }
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 12:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 12:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844752.1260270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHUv-00051F-IN; Wed, 27 Nov 2024 12:50:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844752.1260270; Wed, 27 Nov 2024 12:50: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 1tGHUv-000518-Ew; Wed, 27 Nov 2024 12:50:25 +0000
Received: by outflank-mailman (input) for mailman id 844752;
 Wed, 27 Nov 2024 12:50: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHUu-0004Yj-1T
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 12:50:24 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29814a79-acbe-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 13:50:21 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-53dde4f0f23so3989737e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 04:50:21 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd8cb7f00sm2023267e87.7.2024.11.27.04.50.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 04:50: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: 29814a79-acbe-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzIiLCJoZWxvIjoibWFpbC1sZjEteDEzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI5ODE0YTc5LWFjYmUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzExODIxLjI1MzU2MSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732711820; x=1733316620; 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=pVDvF5YqyyLTl9nNm34usBBdPtMjgbaktt06G1afM/M=;
        b=O0gB0lBrGt0J8QHqUWjGh3sVSPMkrjWK/pLj29G0drKlFsqu6/xZfqr9bC4maPlfzk
         IP7yRMDsmOVfmMA0iQo4SWThIMd5RqYaF3XijJFUxHOIIS2W8kg1w9rMWFqK5eL2wIc6
         49XG03wuoFkILmmlU2GBmeEvmB0ZW58IK2UhtRjRKFT0O7G0E11gIBCTJrLUq0L1PAzJ
         GMRJq3DQgeCe6oMoiucsiSHixny7q1bZLa8JjdLWVjpeEVs3fUX9Oknd0QsgO3mFWYEY
         hirB8fgQwXjDnVOuEOQvrPZD7GZBFrl7v09YrgVJl0yaMuFc3j9nzMAhkxQ7gF1ajsAy
         IkQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732711820; x=1733316620;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=pVDvF5YqyyLTl9nNm34usBBdPtMjgbaktt06G1afM/M=;
        b=AwZ+oKuNOQQ1+zsSEGvj27wMC2iFpj+TMCA907cdnZAXCcZG5v2PZQE80GRDrAsC+C
         XkSWewpChJYibSfSLPM992h5o08QBHEtlWwNhkY434eyfqeE7vVAKb4nR2iQPsRPVf7u
         vRTJcMD0LLUJ+FZL7rVbjcGBJ1jVpoA23NrAHre6MJ3p94Rq4P+35vgYLp2ZY764IwPo
         QcUDtAfXtqL6Dypbv4A2/CksnpoL+CXD2tmjgdBHKcPWSc08WryLlSBsOttD3ROSQ1Bm
         WTy3g3zh8jQ1xUe2RQTTr09br9807OXwPmq9kXykIlKpJqwgw8R5gUfi+DDn6chxjSlz
         K2aQ==
X-Gm-Message-State: AOJu0YyPMLf/9uszE9pgn1/98KKIUWJt2RX4Wn32I8JJIRY2mqK3WxMh
	hiiwCU3CIrRsWNYfk7aF2HgPQq9BAfms4RXElHaIjbA+wIR0laF3CyfGEA==
X-Gm-Gg: ASbGncvUBRdOkVF4pb1upN8h1DpNQ3yqOtwDNw8ngTHOpJBZptVAnsOSd2A/Oh+14rt
	KMIjtcFdSfPfzDRj4anrpXgXziRuA0dIzoqpNgmjQr2vzntEBnTUdPwCoLmY/+bssgOJxB7tl84
	32SaiQBq8/UADJMQq++lp/pS+ilNnFVai7aCXOD0UDJ3LTWXF8/P9PA6YBNBQg8qeRTWIzdBnPl
	K/7AW2cwnXlkmrBDjXua0PMRl9EQU+VNczvz76tW58QM3f4u94=
X-Google-Smtp-Source: AGHT+IHrzpuEseSFO9gOn9yNkiZ71guV/3ErvZjDGwhl4x02Ued71294I6HeJfRHYSKswtxj+xcFyg==
X-Received: by 2002:a05:6512:b1e:b0:53d:ecf6:aadc with SMTP id 2adb3069b0e04-53df0104754mr1896350e87.43.1732711820255;
        Wed, 27 Nov 2024 04:50: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 3/6] xen/riscv: add {set,clear}_fixmap() functions for managing fixmap entries
Date: Wed, 27 Nov 2024 13:50:12 +0100
Message-ID: <2badea2de39b7614d38a620d1b718478de1fc82c.1732709650.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732709650.git.oleksii.kurochko@gmail.com>
References: <cover.1732709650.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce set_fixmap() and clear_fixmap() functions to manage mappings
in the fixmap region. The set_fixmap() function maps a 4k page ( as only L0
is expected to be updated; look at setup_fixmap_mappings() ) at a specified
fixmap entry using map_pages_to_xen(), while clear_fixmap() removes the
mapping from a fixmap entry by calling destroy_xen_mappings().

Both functions ensure that the operations succeed by asserting that their
respective calls (map_pages_to_xen() and destroy_xen_mappings()) return 0.
A `BUG_ON` check is used to trigger a failure if any issues occur during
the mapping or unmapping process.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/fixmap.h |  5 +++++
 xen/arch/riscv/pt.c                 | 19 +++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
index 818c8ce07b..e399a15f53 100644
--- a/xen/arch/riscv/include/asm/fixmap.h
+++ b/xen/arch/riscv/include/asm/fixmap.h
@@ -32,6 +32,11 @@
  */
 extern pte_t xen_fixmap[];
 
+/* Map a page in a fixmap entry */
+void set_fixmap(unsigned int map, mfn_t mfn, unsigned int flags);
+/* Remove a mapping from a fixmap entry */
+void clear_fixmap(unsigned int map);
+
 #define fix_to_virt(slot) ((void *)FIXMAP_ADDR(slot))
 
 static inline unsigned int virt_to_fix(vaddr_t vaddr)
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index 8d35ef5ca8..ed9a943d4c 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -8,6 +8,7 @@
 #include <xen/pmap.h>
 #include <xen/spinlock.h>
 
+#include <asm/fixmap.h>
 #include <asm/flushtlb.h>
 #include <asm/page.h>
 
@@ -433,3 +434,21 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
 {
     return pt_update(virt, INVALID_MFN, nr_mfns, PTE_POPULATE);
 }
+
+/* Map a 4k page in a fixmap entry */
+void set_fixmap(unsigned int map, mfn_t mfn, unsigned int flags)
+{
+    int res;
+
+    res = map_pages_to_xen(FIXMAP_ADDR(map), mfn, 1, flags | PTE_SMALL);
+    BUG_ON(res != 0);
+}
+
+/* Remove a mapping from a fixmap entry */
+void clear_fixmap(unsigned int map)
+{
+    int res;
+
+    res = destroy_xen_mappings(FIXMAP_ADDR(map), FIXMAP_ADDR(map) + PAGE_SIZE);
+    BUG_ON(res != 0);
+}
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 12:50:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 12:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844754.1260290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHUz-0005ds-WB; Wed, 27 Nov 2024 12:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844754.1260290; Wed, 27 Nov 2024 12: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 1tGHUz-0005dk-T6; Wed, 27 Nov 2024 12:50:29 +0000
Received: by outflank-mailman (input) for mailman id 844754;
 Wed, 27 Nov 2024 12: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHUy-0004Yu-Ld
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 12:50:28 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 291205f9-acbe-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 13:50:20 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-53dde5262fdso4894834e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 04:50:20 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd8cb7f00sm2023267e87.7.2024.11.27.04.50.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 04:50: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: 291205f9-acbe-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzQiLCJoZWxvIjoibWFpbC1sZjEteDEzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI5MTIwNWY5LWFjYmUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzExODIwLjU3ODIxOSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732711820; x=1733316620; 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=pFssf5rjB5zK7xWMEIyHt0mx4lOxs7souSKxYFyKhsg=;
        b=Lmjnu6XVo0HOK1Z2M40hEHrpzF8BsLOvCL9TXTkKnZ8dmuhumyKusrCQuStsmU2YqR
         +srk5oOB+ZYrEHWiuiDW9G95LCl8LlfAm00cXqzyAmDbzrKE8KM7238MwMWN14bkBuiU
         sqPk5qSEqGzfra2tAKerr7DVAzoSddSmDuLzRMn0DlJI+FQTWcoCRbGP67hl33xjnqf1
         QZOyoDuBHxBhlHAX2HJsW7ax5ra6BjzsDdMD9sY+s9f0lNPd+SE8LS4u3ftcnVpANhL6
         hWxGb4MLwSrt6VxJMS+xMGivPxvLcf6RVtJUnM2UbUFxl+sAB6Wl0J9pTRn4c5yVlNDr
         5dHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732711820; x=1733316620;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=pFssf5rjB5zK7xWMEIyHt0mx4lOxs7souSKxYFyKhsg=;
        b=XXv+ZFJ+zTxVNzcwYq5hVEqziJrnCalcrFhCtbZR9hinWfsaSjdq76oZ1FXNDZpKSl
         3NYFYIQ0+GI9FJtawEbAB6MldCW/ElBhBY32w3XSSoFx6yvoOMg9h63IicleSx9EqDP9
         P+mrkloirzcWA7KMCou62QdlNy9JYQMxLvHW93TzUyURAzrksBCmtTZSjW0ZYSwloz1h
         5kyPME0GG/IUukXrazsfolkrPBY1DV/EQZqYl759tBVBHg+uaQnVkhAB++/GCLZBWEmc
         PVGiILuVWyCdL1n/xvOLNKU9gc1og4wZhNWOHJVZs4FG+iKz8cPA+ehgxhrmkVl9x0y7
         Rinw==
X-Gm-Message-State: AOJu0YzH1HaHgrdFgrX3vtzG9N4Z/Y9q4quRtzKrZOriL+dLelYxmTPo
	90I7lqvRC/fSpiFGWcmABs2GXG+F3SaEshULFS6jSTg4WKU26EuT+3SXkg==
X-Gm-Gg: ASbGncuLHE0uSru93mk14EsZQyu8UU68F0rXyk0y/1skA4mLQwt9ilY6l11xmGyYj0y
	IHFfY2UOEOPJ3Wu72IdTPtHx3spo5bmch1FhgqjFSdSfx8uSchaDqRtGW++Hw7Vp3Ksz01vDlKb
	LjzRoAjZ2rP8Tpy/4ptTv5cG1zuX7P9W9CissvWPEXxT9SYQk7zJNT+tyt3CvK8UF5rAAHCJ4tq
	28GYnAjOELNWFHfZektmAucR4gNSXGSdm8kleyt+sehi6lCyPo=
X-Google-Smtp-Source: AGHT+IHxWQrerUzX8OstxJxfpu0eDrJwhc4s7hxMC5R1C6DfUnvCNB6hs7z1V7Mn7fele0Xat9s46Q==
X-Received: by 2002:a05:6512:2309:b0:53d:a883:5a3e with SMTP id 2adb3069b0e04-53df0108ff1mr1418457e87.39.1732711819589;
        Wed, 27 Nov 2024 04:50: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/6] xen/riscv: reorder includes in asm/page.h alphabetically
Date: Wed, 27 Nov 2024 13:50:11 +0100
Message-ID: <4b458dea207cc6f2c2ab5d5a3d67ca9f6d5958da.1732709650.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732709650.git.oleksii.kurochko@gmail.com>
References: <cover.1732709650.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/page.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 91b1194b55..bf3f75e85d 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -5,8 +5,8 @@
 
 #ifndef __ASSEMBLY__
 
-#include <xen/const.h>
 #include <xen/bug.h>
+#include <xen/const.h>
 #include <xen/types.h>
 
 #include <asm/atomic.h>
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 12:50:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 12:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844750.1260250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHUu-0004Z2-3j; Wed, 27 Nov 2024 12:50:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844750.1260250; Wed, 27 Nov 2024 12:50: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 1tGHUt-0004Yv-W0; Wed, 27 Nov 2024 12:50:23 +0000
Received: by outflank-mailman (input) for mailman id 844750;
 Wed, 27 Nov 2024 12: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHUs-0004Yj-CM
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 12:50:22 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 286c6ae6-acbe-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 13:50:19 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-53de101525eso770412e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 04:50:19 -0800 (PST)
Received: from fedora.. ([94.75.70.14]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd8cb7f00sm2023267e87.7.2024.11.27.04.50.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 04: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: 286c6ae6-acbe-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzEiLCJoZWxvIjoibWFpbC1sZjEteDEzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjI4NmM2YWU2LWFjYmUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzExODE5LjYzMTgyOSwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732711818; x=1733316618; 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=JNBrrPsLPU7gs7L0kheJ+EuL2eLZdEORSMBnPqz9mu8=;
        b=hM+C3sALGcNbtIqns/IChF4Wg8cEwEqMzWQ1eus+l5JRsktX0E5qhTJM8gqgNkGX4m
         uC97JxSIE1uzujZyb6C0D/Aq40kkmoa83wrNwUnGqT1Kkq70J3inktLdHR+hXlzoFi9H
         6ewc6QILMjAa27v5KTxTD4U7xrs/3FcZwKHwpMhmTDTResl+9E90qIjDP7Fcj76PjwBV
         ufHQEOxaEuv6+D2FjSCvd+K7Y2ZzQ0KZMgPzFM/9wLCAgEoCqfClqUiqzNFdTzLkb5kj
         ZFRTLXwIhPGslcUdrdPkt9CAR89N9aGI4xPJBlodXlwOUf34R3h0+ppArWYXPAGNXuYN
         08OA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732711818; x=1733316618;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=JNBrrPsLPU7gs7L0kheJ+EuL2eLZdEORSMBnPqz9mu8=;
        b=YT3626FDGTD03u4WiHCMCuUr5GTzmaFPdAOhHc2HlcMZLWihPkeJRvtQJVZt0CAeDP
         b1GD/AWWEw11D5NiEMqS3VLnCiMa0kIDZ89U6Gd6qSW75XtRvbOzuRPI0Xal5qe5NTQR
         LbOsKavNNNthpnbwql0+7HjK9y/DDY6cqmMIm6Si39eD+3qd5q/KSv036beh10LEPOWy
         wNNDRiJtezq4BPJjDszjFCHe+2M5t+t1eIiQIxR104SSclmJTXhis0zzQi9HvQA5jP8W
         CW71cZ26fYYFIOdWdXsyr7vXClQkiqoo1fE+03hRiYR6uGnqvvcD9q1osbEgz2rvPxGR
         Tv1w==
X-Gm-Message-State: AOJu0Yy1gq7Jx49PzzuRYqKxBfNEFL1CDlCjRNg+Nd8l0KLyhqOo46xL
	e9RWdDmFh3h46LUE8PzHlTjOp8QIcYtLpcTncr3FUEOSkOPgQTgybk/WwA==
X-Gm-Gg: ASbGnct+bW0FG+ZfcfzHl+j46MtE4rJldT/BPzfodLWpoz4RD1oNNRW6ypGfPTrI5X5
	aEZeEmeguv6jVTEAhXa1R7ZMMJb7RsOYuFSJO7qwAc2JMoE2mBVNIze6nXl2m+nhvCzb3Zz/T2u
	VTLP8ykbRUNTKyJ0Jf7xIVWTTW0hgo/72v5ghQaACpWz9D+gYvLSGelnwVVwjS2n9rQ/f9laS8S
	4hsXngJVf5PjUnwqxUMZ5Qavd7Ds6sSsCsPg1qfng5yjfOaurE=
X-Google-Smtp-Source: AGHT+IFctF3e2Sr9dF39hCDOsO+iUrrZgPKMrUT5iAV9fqx6shODCzq3rzwZMWVnWZiRkRniv9c6Aw==
X-Received: by 2002:a05:6512:3d06:b0:53d:e5f0:32c1 with SMTP id 2adb3069b0e04-53de885729emr2227277e87.28.1732711818209;
        Wed, 27 Nov 2024 04:50: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>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 0/6] Unflattening and relocation of host device tree
Date: Wed, 27 Nov 2024 13:50:09 +0100
Message-ID: <cover.1732709650.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The current patch series introduces the relocation of the host device tree file
to free up low memory and also it is expected that discard_initial_modules()
will be called sooner or later, it will discard the FDT boot module,
and remove_early_mappings() will destroy the early mappings.

In addition to relocation, unflattening is introduced to create the tree of
struct device_node for the host device tree.

To implement this, several things have been introduced:
 - destroy_xen_mappings() function, which removes page mappings from Xen's
   page tables. This is necessary for clear_fixmap().
 - {set,clear}_fixmap() functions to manage mappings in the fixmap region,
   which are expected to be used in copy_from_paddr() to copy the FDT to Xen's
   heap.
 - A new config HAS_CMO is introduced (in anticipation of future use). This is
   despite the fact that hardware ( "available" to me ) with the hypervisor
   extension is generally I/O-coherent ( and it is preferred way mentioned in
   the RISC-V spec ) and should not be an issue in QEMU as it doesn't emulate
   caches.
   This config introduces stubs for clean_and_invalidate_dcache_va_range()
   and clean_dcache_va_range(), which are expected to be used in
   copy_from_paddr() and flush_page_to_ram(), which in turn are expected to be
   used during the call to xmalloc_bytes() in relocate_fdt().
 - The introduction of copy_from_paddr() to copy the FDT to an address
   allocated in Xen's heap.

Oleksii Kurochko (6):
  xen/riscv: add destroy_xen_mappings() to remove mappings in Xen page
    tables
  xen/riscv: reorder includes in asm/page.h alphabetically
  xen/riscv: add {set,clear}_fixmap() functions for managing fixmap
    entries
  xen/riscv: introduce cache management operations (CMO)
  xen/riscv: implement relocate_fdt()
  xen/riscv: relocating and unflattening host device tree

 xen/arch/riscv/Kconfig              |  3 ++
 xen/arch/riscv/include/asm/fixmap.h |  5 +++
 xen/arch/riscv/include/asm/mm.h     | 10 ++++-
 xen/arch/riscv/include/asm/page.h   | 30 +++++++++++++--
 xen/arch/riscv/mm.c                 |  9 ++---
 xen/arch/riscv/pt.c                 | 27 ++++++++++++++
 xen/arch/riscv/setup.c              | 57 ++++++++++++++++++++++++++++-
 7 files changed, 128 insertions(+), 13 deletions(-)

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 13:03:01 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 13:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844820.1260320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGHh2-0001Tg-NH; Wed, 27 Nov 2024 13:02:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844820.1260320; Wed, 27 Nov 2024 13: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 1tGHh2-0001TZ-Ki; Wed, 27 Nov 2024 13:02:56 +0000
Received: by outflank-mailman (input) for mailman id 844820;
 Wed, 27 Nov 2024 13:02: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=pugq=SW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tGHh0-0001TM-Oo
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 13:02:54 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e87c9210-acbf-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 14:02:51 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-53de8ecb39bso2145675e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 05:02:51 -0800 (PST)
Received: from [192.168.219.191] ([94.75.70.14])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-53dd24459f1sm2287393e87.24.2024.11.27.05.02.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 05:02: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: e87c9210-acbf-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmIiLCJoZWxvIjoibWFpbC1sZjEteDEyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU4N2M5MjEwLWFjYmYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzEyNTcxLjE4MzEyMiwic2VuZGVyIjoib2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1732712570; x=1733317370; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Sv/P2ja8M29CeLuOtPNdZOQ0kZ3jbzmBwT468MbRvik=;
        b=PyeEwLT7cU1kbj1agEq4piXw+WvSmi5t1FWG+hkCVbZId22UfeDxpn5ux9FJvAsRDX
         vWCaQfLtFDVvv2I4kHxznXcUuQB+QORIddYsep3pR7r6cWT0S3zoXCD/o9P0e0PyOlPg
         THZtMx1gcuMnlu78HeDNEbVy7tFdAa6MKdjiCAAF/NJyvW5Y87Hu4qa4H03yJhV2/ZrX
         RVktl9C+ldBv59FrzjeC67aNDd3C4OvigQSj7KHenr+rHFqP3Pwggx31oix6bQi91BvP
         xYs6Szg12f6nnvp3YKepaGmpedP5/SaoyGbwHkeFDczmH2NUz4K1zK0tqcL1QHleAwuC
         PGnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732712570; x=1733317370;
        h=mime-version:user-agent:content-transfer-encoding:references
         :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Sv/P2ja8M29CeLuOtPNdZOQ0kZ3jbzmBwT468MbRvik=;
        b=QZMXzBuvE9qBjbnlh97DCSCDBP+kpqvNDyMhzkTt25Iw4u+Yc2/vO8WygQecpS1M9Z
         lcyptDBXbg9PXSIkvGsYkBZl/EbDVqvXGjgk8R8MKzI/jBgOoEVBZFCrydDk9FnD2/fI
         TI46VLzajgRljsRV3LoD/RJodWfszyBg2M89k9a54KAoyPNFV9gPXXTNUUWEYOIuZ9x1
         rbAchHllrco4HZvYwCuZ1ShgMHba3lEBQnAbAWr1bpt6ia7/RfMTD/XOLSsiMCLy5eXj
         eweYxW9JKzkSKCET97GITxiE5wGrATPfd8VmmoV9iGfzOuAedmh+Gu2RWaGefSca9sUu
         dyCQ==
X-Gm-Message-State: AOJu0YxZEOEBq3q9IA3a8R7G/UMP6baM8q9ZmV+FjF7JIxqRQrug8aiI
	0A1UD56rM+wmioSzFHqcEitRm4EcgtbYTAAVQNKg3TP2bJ8Gjcdk
X-Gm-Gg: ASbGnctRuNQrvsbZT6OrIXNvdUE0uWPufdgpsUGMX4TBn2fVAjUG7urz3rfX0ADc1GG
	nYtYQ2sYmI1Ksi0B6b8RBB6UJeWRcnGwjF9L1zPJzlG0DPpR/zzCh+gPsNO+bzymUvWsBZBaSw7
	AlUcwmOTNWx/OQXqW0kad9hfJQaI0VHFq02KazaSslxE72d/TGStg/8ebS0W1XZhH5hmlV9qf+H
	94t+NNnmEIOSA6ZzhsZKPvEqW4+jpXQzzrJcf0cyIuyjmNW47YyXBFcA+NLMB0=
X-Google-Smtp-Source: AGHT+IGshyedBFh2L+cUzV2uL39uQ2yJLbDsjuQ3FbNQL9WWH1jp/peiMT5oLW2bncNN/QPcMqhcsA==
X-Received: by 2002:a05:6512:3e1f:b0:53d:d65e:772a with SMTP id 2adb3069b0e04-53df0111ec3mr1417345e87.47.1732712570025;
        Wed, 27 Nov 2024 05:02:50 -0800 (PST)
Message-ID: <bc3136303d0e88017a5e3da21f97f9da28213acf.camel@gmail.com>
Subject: Re: [PATCH 09/36] riscv/domain: introduce domain_has_vuart()
From: oleksii.kurochko@gmail.com
To: dmukhin@ford.com, Jan Beulich <jbeulich@suse.com>, Andrew Cooper	
 <andrew.cooper3@citrix.com>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=	
 <roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,  Michal Orzel
 <michal.orzel@amd.com>, Rahul Singh <rahul.singh@arm.com>, Volodymyr
 Babchuk	 <Volodymyr_Babchuk@epam.com>, Alistair Francis
 <alistair.francis@wdc.com>,  Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Shawn Anastasio	
 <sanastasio@raptorengineering.com>, Anthony PERARD
 <anthony.perard@vates.tech>,  Juergen Gross <jgross@suse.com>, Christian
 Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,  Marek
 =?ISO-8859-1?Q?Marczykowski-G=F3recki?=	 <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org
Date: Wed, 27 Nov 2024 14:02:48 +0100
In-Reply-To: <20241126-vuart-ns8250-v1-v1-9-87b9a8375b7a@ford.com>
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
	 <20241126-vuart-ns8250-v1-v1-9-87b9a8375b7a@ford.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.54.1 (3.54.1-1.fc41app1) 
MIME-Version: 1.0

On Tue, 2024-11-26 at 15:21 -0800, Denis Mukhin via B4 Relay wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>=20
> Introduce domain_has_vuart() for RISC-V port to be used in the
> console driver.
>=20
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> =C2=A0xen/arch/riscv/include/asm/domain.h | 2 ++
> =C2=A01 file changed, 2 insertions(+)
>=20
> diff --git a/xen/arch/riscv/include/asm/domain.h
> b/xen/arch/riscv/include/asm/domain.h
> index
> c3d965a559b6ce3661bf17166d0c51853ff295a2..efbc4f1ea2619a187fe30ede17d
> 96de01e599220 100644
> --- a/xen/arch/riscv/include/asm/domain.h
> +++ b/xen/arch/riscv/include/asm/domain.h
> @@ -10,6 +10,8 @@ struct hvm_domain
> =C2=A0=C2=A0=C2=A0=C2=A0 uint64_t=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 params[HVM_NR_PARAMS];
> =C2=A0};
> =C2=A0
> +#define domain_has_vuart(d)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 false
> +
> =C2=A0struct arch_vcpu_io {
> =C2=A0};

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

Probably it would be nice instead of having stub ( #define
domain_has_vuart(d) false ) in arch specific code, just ifdef-ing it
and put somewhere in
<xen/domain.h> to not introduce this definition for each architecture
which doesn't support vuart now.

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 13:25:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 13:25:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844833.1260330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGI2H-00053w-FZ; Wed, 27 Nov 2024 13:24:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844833.1260330; Wed, 27 Nov 2024 13:24: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 1tGI2H-00053p-Bz; Wed, 27 Nov 2024 13:24:53 +0000
Received: by outflank-mailman (input) for mailman id 844833;
 Wed, 27 Nov 2024 13:24: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=dfX9=SW=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tGI2G-00053g-3x
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 13:24:52 +0000
Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com
 [2607:f8b0:4864:20::d2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f87dbdc7-acc2-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 14:24:47 +0100 (CET)
Received: by mail-io1-xd2a.google.com with SMTP id
 ca18e2360f4ac-8418a2f596fso121861839f.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 05:24: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: f87dbdc7-acc2-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpkMmEiLCJoZWxvIjoibWFpbC1pbzEteGQyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImY4N2RiZGM3LWFjYzItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzEzODg3LjMzNDIyNCwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732713886; x=1733318686; 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=xqgPsMUQ1TS+2wIGPjrTVsu/91Ojz5raqby82SiYszI=;
        b=fKd8M+S91tckt/Xun2FFU+QBuB+AR0kVK3YNtkIT7Stbr6llrWxhZDKQJNuGYI7TmI
         Fm2dCIkZpz+4rmGiJBTmHCHpvkSm6JrACQInCUinYw/2XEFO5cKBoVTeiHt+pAFORbyx
         CqB42w1uABaVhilYvdbh9+icm+T3lMZT9oXPaJnHgG2n91mV8aGeVLvKZcxDqRvT6JyX
         eV98cOyororRbXsttNRbveahldBNQiEsnvliyx571h4KOQweLG5fPpwePU15vsX/s+1N
         kaHNmPUfguv431l2u11NIA4yM8L8DEs3ab4xnzvwy5a8A0zAylt4Uu5LJ+fogfFoUIXX
         XuKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732713886; x=1733318686;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xqgPsMUQ1TS+2wIGPjrTVsu/91Ojz5raqby82SiYszI=;
        b=CHZgHS2n1DpHQj+OfsgMMBrrujHN6iWQDJd3zavicGNgMq4Oiq7+fwLyD3T3mHY8BZ
         3K+OgRJvqt71Dl6sRzeAHFsZZXPyfCiZ8Pycw8u1PYdaA0UWuT5qTed9bD7zeTT0H0gB
         ANAlzxMFHeZfZRnmMRKsqyTyv3VTlu4kAp5tF8HMkSeH/aOdp04HFk4GvcLVGFMZjaIe
         XRIycPEZ7gjHWrI0LdJ4ssoLKfPlfzb3bhr9ET/MNjaX/QudZ5G8ukum+JAAvAopBjsP
         HGIpykVOFUQiNKWhfhpGgAZh4NDYhZV/r6Wxkq3PSG1aFElMHb/LueO0Ym/b2Xh40j8X
         q23g==
X-Gm-Message-State: AOJu0YwKy9T8FiJ4uY0/KCIbsOcvkzJRPveuOCDIt+zXqAb0I6TPWXNP
	cnpTxdg7DnJsDsPqVHjAHrAzq7wvqlqrCeG0h70AkLHixudEZvP/NmrJ2wWpJp4HrgLxXvKTCSS
	E1CzyRTD9CTWyRpV8CcN2uZnkyLCEdvZD2kb/xA==
X-Gm-Gg: ASbGncsVdPYC/C14xFNJHnXUV95PEO2NJUGm/NikslizBdAFN3fOiGAM3LdFJ9BwWqx
	+YSEOKCSlczGrgjODn/ByORhVbs1sDdRY
X-Google-Smtp-Source: AGHT+IGNJaR3bZcFQnmq/OlOpO8IdvBnYKOZb1fdEQzVtW7mF+EEjE+5WWsYKzBVjTDWCI5IHO7MERiiC6Ig6ICx1LM=
X-Received: by 2002:a05:6602:150e:b0:843:ec8d:be00 with SMTP id
 ca18e2360f4ac-843ed021f2bmr337286739f.13.1732713885804; Wed, 27 Nov 2024
 05:24:45 -0800 (PST)
MIME-Version: 1.0
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-2-carlo.nonato@minervasys.tech> <93c0a25f-4edc-4d21-8767-48d496cc3575@amd.com>
In-Reply-To: <93c0a25f-4edc-4d21-8767-48d496cc3575@amd.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Wed, 27 Nov 2024 14:24:34 +0100
Message-ID: <CAG+AhRW+5XUk8KBFiB9LO6h=7W4nmXn_ZDtPuC+sUFgckKR_HQ@mail.gmail.com>
Subject: Re: [PATCH v10 01/12] xen/common: add cache coloring common code
To: Michal Orzel <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, andrea.bastoni@minervasys.tech, 
	marco.solieri@minervasys.tech, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Michal,

On Wed, Nov 27, 2024 at 11:48=E2=80=AFAM Michal Orzel <michal.orzel@amd.com=
> wrote:
> On 19/11/2024 15:13, Carlo Nonato wrote:
> >
> >
> > Last Level Cache (LLC) coloring allows to partition the cache in smalle=
r
> > chunks called cache colors.
> >
> > Since not all architectures can actually implement it, add a HAS_LLC_CO=
LORING
> > Kconfig option.
> > LLC_COLORS_ORDER Kconfig option has a range maximum of 10 (2^10 =3D 102=
4)
> > because that's the number of colors that fit in a 4 KiB page when integ=
ers
> > are 4 bytes long.
> >
> > LLC colors are a property of the domain, so struct domain has to be ext=
ended.
> >
> > Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> >
> > Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> > Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> > ---
> > v10:
> > - fixed commit message to use LLC_COLORS_ORDER
> > - added documentation to index.rst
> > - moved check on CONFIG_NUMA in arch/arm/Kconfig (next patch)
> > - fixed copyright line
> > - fixed array type for colors parameter in print_colors()
> > - added check on (way_size & ~PAGE_MASK)
> > v9:
> > - dropped _MAX_ from CONFIG_MAX_LLC_COLORS_ORDER
> > v8:
> > - minor documentation fixes
> > - "llc-coloring=3Don" is inferred from "llc-nr-ways" and "llc-size" usa=
ge
> > - turned CONFIG_NR_LLC_COLORS to CONFIG_MAX_LLC_COLORS_ORDER, base-2 ex=
ponent
> > - moved Kconfig options to common/Kconfig
> > - don't crash if computed max_nr_colors is too large
> > v7:
> > - SUPPORT.md changes added to this patch
> > - extended documentation to better address applicability of cache color=
ing
> > - "llc-nr-ways" and "llc-size" params introduced in favor of "llc-way-s=
ize"
> > - moved dump_llc_coloring_info() call in 'm' keyhandler (pagealloc_info=
())
> > v6:
> > - moved almost all code in common
> > - moved documentation in this patch
> > - reintroduced range for CONFIG_NR_LLC_COLORS
> > - reintroduced some stub functions to reduce the number of checks on
> >   llc_coloring_enabled
> > - moved domain_llc_coloring_free() in same patch where allocation happe=
ns
> > - turned "d->llc_colors" to pointer-to-const
> > - llc_coloring_init() now returns void and panics if errors are found
> > v5:
> > - used - instead of _ for filenames
> > - removed domain_create_llc_colored()
> > - removed stub functions
> > - coloring domain fields are now #ifdef protected
> > v4:
> > - Kconfig options moved to xen/arch
> > - removed range for CONFIG_NR_LLC_COLORS
> > - added "llc_coloring_enabled" global to later implement the boot-time
> >   switch
> > - added domain_create_llc_colored() to be able to pass colors
> > - added is_domain_llc_colored() macro
> > ---
> >  SUPPORT.md                        |   7 ++
> >  docs/index.rst                    |   1 +
> >  docs/misc/cache-coloring.rst      | 116 ++++++++++++++++++++++++++++++
> >  docs/misc/xen-command-line.pandoc |  37 ++++++++++
> >  xen/common/Kconfig                |  21 ++++++
> >  xen/common/Makefile               |   1 +
> >  xen/common/keyhandler.c           |   3 +
> >  xen/common/llc-coloring.c         | 115 +++++++++++++++++++++++++++++
> >  xen/common/page_alloc.c           |   3 +
> >  xen/include/xen/llc-coloring.h    |  37 ++++++++++
> >  xen/include/xen/sched.h           |   5 ++
> >  11 files changed, 346 insertions(+)
> >  create mode 100644 docs/misc/cache-coloring.rst
> >  create mode 100644 xen/common/llc-coloring.c
> >  create mode 100644 xen/include/xen/llc-coloring.h
> >
> > diff --git a/SUPPORT.md b/SUPPORT.md
> > index 82239d0294..998faf5635 100644
> > --- a/SUPPORT.md
> > +++ b/SUPPORT.md
> > @@ -401,6 +401,13 @@ by maintaining multiple physical to machine (p2m) =
memory mappings.
> >      Status, x86 HVM: Tech Preview
> >      Status, ARM: Tech Preview
> >
> > +### Cache coloring
> > +
> > +Allows to reserve Last Level Cache (LLC) partitions for Dom0, DomUs an=
d Xen
> > +itself.
> > +
> > +    Status, Arm64: Experimental
> > +
> >  ## Resource Management
> >
> >  ### CPU Pools
> > diff --git a/docs/index.rst b/docs/index.rst
> > index ab051a0f38..fad4462bbb 100644
> > --- a/docs/index.rst
> > +++ b/docs/index.rst
> > @@ -65,6 +65,7 @@ Documents in need of some rearranging.
> >     designs/launch/hyperlaunch-devicetree
> >     misc/xen-makefiles/makefiles
> >     misra/index
> > +   misc/cache-coloring
> >
> >
> >  Miscellanea
> > diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rs=
t
> > new file mode 100644
> > index 0000000000..0fe3830c40
> > --- /dev/null
> > +++ b/docs/misc/cache-coloring.rst
> > @@ -0,0 +1,116 @@
> You're missing SPDX tag at the top of the RST file:
> .. SPDX-License-Identifier: CC-BY-4.0
>
> > +Xen cache coloring user guide
> > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
> > +
> > +The cache coloring support in Xen allows to reserve Last Level Cache (=
LLC)
> > +partitions for Dom0, DomUs and Xen itself. Currently only ARM64 is sup=
ported.
> > +Cache coloring realizes per-set cache partitioning in software and is =
applicable
> > +to shared LLCs as implemented in Cortex-A53, Cortex-A72 and similar CP=
Us.
> > +
> > +To compile LLC coloring support set ``CONFIG_LLC_COLORING=3Dy``.
> > +
> > +If needed, change the maximum number of colors with
> > +``CONFIG_LLC_COLORS_ORDER=3D<n>``.
> > +
> > +Runtime configuration is done via `Command line parameters`_.
> > +
> > +Background
> > +**********
> > +
> > +Cache hierarchy of a modern multi-core CPU typically has first levels =
dedicated
> > +to each core (hence using multiple cache units), while the last level =
is shared
> > +among all of them. Such configuration implies that memory operations o=
n one
> > +core (e.g. running a DomU) are able to generate interference on anothe=
r core
> > +(e.g. hosting another DomU). Cache coloring realizes per-set cache-par=
titioning
> > +in software and mitigates this, guaranteeing more predictable performa=
nces for
> > +memory accesses.
> > +Software-based cache coloring is particularly useful in those situatio=
ns where
> > +no hardware mechanisms (e.g., DSU-based way partitioning) are availabl=
e to
> > +partition caches. This is the case for e.g., Cortex-A53, A57 and A72 C=
PUs that
> > +feature a L2 LLC cache shared among all cores.
> > +
> > +The key concept underlying cache coloring is a fragmentation of the me=
mory
> > +space into a set of sub-spaces called colors that are mapped to disjoi=
nt cache
> > +partitions. Technically, the whole memory space is first divided into =
a number
> > +of subsequent regions. Then each region is in turn divided into a numb=
er of
> > +subsequent sub-colors. The generic i-th color is then obtained by all =
the
> > +i-th sub-colors in each region.
> > +
> > +::
> > +
> > +                            Region j            Region j+1
> > +                .....................   ............
> > +                .                     . .
> > +                .                       .
> > +            _ _ _______________ _ _____________________ _ _
> > +                |     |     |     |     |     |     |
> > +                | c_0 | c_1 |     | c_n | c_0 | c_1 |
> > +           _ _ _|_____|_____|_ _ _|_____|_____|_____|_ _ _
> > +                    :                       :
> > +                    :                       :...         ... .
> > +                    :                            color 0
> > +                    :...........................         ... .
> > +                                                :
> > +          . . ..................................:
> > +
> > +How colors are actually defined depends on the function that maps memo=
ry to
> > +cache lines. In case of physically-indexed, physically-tagged caches w=
ith linear
> > +mapping, the set index is found by extracting some contiguous bits fro=
m the
> > +physical address. This allows colors to be defined as shown in figure:=
 they
> > +appear in memory as subsequent blocks of equal size and repeats themse=
lves after
> > +``n`` different colors, where ``n`` is the total number of colors.
> > +
> > +If some kind of bit shuffling appears in the mapping function, then co=
lors
> > +assume a different layout in memory. Those kind of caches aren't suppo=
rted by
> > +the current implementation.
> > +
> > +**Note**: Finding the exact cache mapping function can be a really dif=
ficult
> > +task since it's not always documented in the CPU manual. As said Corte=
x-A53, A57
> > +and A72 are known to work with the current implementation.
> > +
> > +How to compute the number of colors
> > +###################################
> > +
> > +Given the linear mapping from physical memory to cache lines for grant=
ed, the
> > +number of available colors for a specific platform is computed using t=
hree
> > +parameters:
> > +
> > +- the size of the LLC.
> > +- the number of the LLC ways.
> > +- the page size used by Xen.
> > +
> > +The first two parameters can be found in the processor manual, while t=
he third
> > +one is the minimum mapping granularity. Dividing the cache size by the=
 number of
> > +its ways we obtain the size of a way. Dividing this number by the page=
 size,
> > +the number of total cache colors is found. So for example an Arm Corte=
x-A53
> > +with a 16-ways associative 1 MiB LLC can isolate up to 16 colors when =
pages are
> > +4 KiB in size.
> > +
> > +Effective colors assignment
> > +###########################
> > +
> > +When assigning colors, if one wants to avoid cache interference betwee=
n two
> > +domains, different colors needs to be used for their memory.
> > +
> > +Command line parameters
> > +***********************
> > +
> > +Specific documentation is available at `docs/misc/xen-command-line.pan=
doc`.
> > +
> > ++----------------------+-------------------------------+
> > +| **Parameter**        | **Description**               |
> > ++----------------------+-------------------------------+
> > +| ``llc-coloring``     | Enable coloring at runtime    |
> > ++----------------------+-------------------------------+
> > +| ``llc-size``         | Set the LLC size              |
> > ++----------------------+-------------------------------+
> > +| ``llc-nr-ways``      | Set the LLC number of ways    |
> > ++----------------------+-------------------------------+
> > +
> > +Auto-probing of LLC specs
> > +#########################
> > +
> > +LLC size and number of ways are probed automatically by default.
> > +
> > +LLC specs can be manually set via the above command line parameters. T=
his
> > +bypasses any auto-probing and it's used to overcome failing situations=
, such as
> > +flawed probing logic, or for debugging/testing purposes.
> > diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-=
line.pandoc
> > index 293dbc1a95..abd8dae96f 100644
> > --- a/docs/misc/xen-command-line.pandoc
> > +++ b/docs/misc/xen-command-line.pandoc
> > @@ -1708,6 +1708,43 @@ This option is intended for debugging purposes o=
nly.  Enable MSR_DEBUGCTL.LBR
> >  in hypervisor context to be able to dump the Last Interrupt/Exception =
To/From
> >  record with other registers.
> >
> > +### llc-coloring (arm64)
> > +> `=3D <boolean>`
> > +
> > +> Default: `false`
> > +
> > +Flag to enable or disable LLC coloring support at runtime. This option=
 is
> > +available only when `CONFIG_LLC_COLORING` is enabled. See the general
> > +cache coloring documentation for more info.
> > +
> > +### llc-nr-ways (arm64)
> > +> `=3D <integer>`
> > +
> > +> Default: `Obtained from hardware`
> > +
> > +Specify the number of ways of the Last Level Cache. This option is ava=
ilable
> > +only when `CONFIG_LLC_COLORING` is enabled. LLC size and number of way=
s are used
> > +to find the number of supported cache colors. By default the value is
> > +automatically computed by probing the hardware, but in case of specifi=
c needs,
> > +it can be manually set. Those include failing probing and debugging/te=
sting
> > +purposes so that it's possible to emulate platforms with different num=
ber of
> > +supported colors. If set, also "llc-size" must be set, otherwise the d=
efault
> > +will be used. Note that using both options implies "llc-coloring=3Don"=
.
> I can understand this decision, but ...
>
> [...]
>
> > +    if ( llc_size && llc_nr_ways )
> > +    {
> > +        llc_coloring_enabled =3D true;
> > +        way_size =3D llc_size / llc_nr_ways;
> > +    }
> > +    else if ( !llc_coloring_enabled )
> > +        return;
> the above code does not seem to be right. When debugging or in general it=
 is useful to have on the cmdline:
> llc-size=3D1M llc-nr-ways=3D16 llc-coloring=3Don
> and be able to disable it by just switching between on/off in llc-colorin=
g=3D. However, with your solution,
> even if I specify llc-coloring=3Doff, it will be enabled because I specif=
ied both llc-size and llc-nr-ways.
> I think llc-coloring=3D should have a precedence.

How do you differentiate from
llc-size=3D1M llc-nr-ways=3D16 llc-coloring=3Doff
where llc coloring is disabled, and
llc-size=3D1M llc-nr-ways=3D16
where llc coloring is enabled? I mean, in both situations llc_coloring_enab=
led
is going to be set to false.

> > +    else
> > +    {
> > +        way_size =3D get_llc_way_size();
> > +        if ( !way_size )
> > +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' =
missing\n");
> > +    }
> > +
> > +    if ( way_size & ~PAGE_MASK )
> > +        panic("LLC way size must be a multiple of PAGE_SIZE\n");
> > +
> > +    /*
> > +     * The maximum number of colors must be a power of 2 in order to c=
orrectly
> > +     * map them to bits of an address.
> > +     */
> > +    max_nr_colors =3D way_size >> PAGE_SHIFT;
> > +
> > +    if ( max_nr_colors & (max_nr_colors - 1) )
> > +        panic("Number of LLC colors (%u) isn't a power of 2\n", max_nr=
_colors);
> > +
> > +    if ( max_nr_colors > NR_LLC_COLORS )
> > +    {
> > +        printk(XENLOG_WARNING
> > +               "Number of LLC colors (%u) too big. Using configured ma=
x %u\n",
> > +               max_nr_colors, NR_LLC_COLORS);
> > +        max_nr_colors =3D NR_LLC_COLORS;
> > +    } else if ( max_nr_colors < 2 )
> CODING STYLE
>
> > +        panic("Number of LLC colors %u < 2\n", max_nr_colors);
> > +
> > +    arch_llc_coloring_init();
> > +}
> > +
> > +void dump_llc_coloring_info(void)
> > +{
> > +    if ( !llc_coloring_enabled )
> > +        return;
> > +
> > +    printk("LLC coloring info:\n");
> > +    printk("    Number of LLC colors supported: %u\n", max_nr_colors);
> > +}
> > +
> > +void domain_dump_llc_colors(const struct domain *d)
> > +{
> > +    if ( !llc_coloring_enabled )
> > +        return;
> > +
> > +    printk("%u LLC colors: ", d->num_llc_colors);
> > +    print_colors(d->llc_colors, d->num_llc_colors);
> > +}
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * tab-width: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> > index 33c8c917d9..7b911b5ed9 100644
> > --- a/xen/common/page_alloc.c
> > +++ b/xen/common/page_alloc.c
> > @@ -126,6 +126,7 @@
> >  #include <xen/irq.h>
> >  #include <xen/keyhandler.h>
> >  #include <xen/lib.h>
> > +#include <xen/llc-coloring.h>
> >  #include <xen/mm.h>
> >  #include <xen/nodemask.h>
> >  #include <xen/numa.h>
> > @@ -2626,6 +2627,8 @@ static void cf_check pagealloc_info(unsigned char=
 key)
> >      }
> >
> >      printk("    Dom heap: %lukB free\n", total << (PAGE_SHIFT-10));
> > +
> > +    dump_llc_coloring_info();
> >  }
> >
> >  static __init int cf_check pagealloc_keyhandler_init(void)
> > diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-color=
ing.h
> > new file mode 100644
> > index 0000000000..6ccf4613c2
> > --- /dev/null
> > +++ b/xen/include/xen/llc-coloring.h
> > @@ -0,0 +1,37 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Last Level Cache (LLC) coloring common header
> > + *
> > + * Copyright (C) 2024, Advanced Micro Devices, Inc.
> > + * Copyright (C) 2024, Minerva Systems SRL
> > + */
> > +#ifndef __COLORING_H__
> > +#define __COLORING_H__
> > +
> > +#include <xen/sched.h>
> You could just forward declare struct domain unless you know you need sch=
ed.h for other things too in other patches.
>
> > +#include <public/domctl.h>
> Why is this here? It's not needed yet at this point.
>
> > +
> > +#ifdef CONFIG_LLC_COLORING
> > +void llc_coloring_init(void);
> > +void dump_llc_coloring_info(void);
> > +void domain_dump_llc_colors(const struct domain *d);
> > +#else
> > +static inline void llc_coloring_init(void) {}
> > +static inline void dump_llc_coloring_info(void) {}
> > +static inline void domain_dump_llc_colors(const struct domain *d) {}
> > +#endif
> > +
> > +unsigned int get_llc_way_size(void);
> > +void arch_llc_coloring_init(void);
> > +
> > +#endif /* __COLORING_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/include/xen/sched.h b/xen/include/xen/sched.h
> > index 90666576c2..c0e49cd1e7 100644
> > --- a/xen/include/xen/sched.h
> > +++ b/xen/include/xen/sched.h
> > @@ -637,6 +637,11 @@ struct domain
> >
> >      /* Holding CDF_* constant. Internal flags for domain creation. */
> >      unsigned int cdf;
> > +
> > +#ifdef CONFIG_LLC_COLORING
> > +    unsigned int num_llc_colors;
> > +    const unsigned int *llc_colors;
> > +#endif
> >  };
> >
> >  static inline struct page_list_head *page_to_list(
> > --
> > 2.43.0
> >
>
> Otherwise, with the remarks addressed:
> Acked-by: Michal Orzel <michal.orzel@amd.com>
>
> ~Michal

Thanks.

- Carlo


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 13:58:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 13:58:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844856.1260368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGIYU-0001WL-Bk; Wed, 27 Nov 2024 13:58:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844856.1260368; Wed, 27 Nov 2024 13:58: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 1tGIYU-0001WE-8K; Wed, 27 Nov 2024 13:58:10 +0000
Received: by outflank-mailman (input) for mailman id 844856;
 Wed, 27 Nov 2024 13:58: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=KjDT=SW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tGIYS-0001W7-Nz
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 13:58:08 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20617.outbound.protection.outlook.com
 [2a01:111:f403:2413::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9df16635-acc7-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 14:58:03 +0100 (CET)
Received: from CH0PR03CA0011.namprd03.prod.outlook.com (2603:10b6:610:b0::16)
 by CYYPR12MB8892.namprd12.prod.outlook.com (2603:10b6:930:be::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.13; Wed, 27 Nov
 2024 13:57:55 +0000
Received: from CH2PEPF000000A0.namprd02.prod.outlook.com
 (2603:10b6:610:b0:cafe::c9) by CH0PR03CA0011.outlook.office365.com
 (2603:10b6:610:b0::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8158.25 via Frontend Transport; Wed,
 27 Nov 2024 13:57:55 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF000000A0.mail.protection.outlook.com (10.167.244.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Wed, 27 Nov 2024 13:57:55 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 27 Nov
 2024 07:57:54 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Nov 2024 07:57:52 -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: 9df16635-acc7-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjE3IiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjlkZjE2NjM1LWFjYzctMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzE1ODgzLjI5NTE5Mywic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FLIZH1QfB9Yf5FQb1NwoLD1gPcAPjfOsNYNSjUqAWOnpLk3od6xvSG+7SArO+E/jHscKd7ftro3Lz95MshY/E3w/zqNG1wmUvdh6qUr/ASdXjnev4zeeuDE6uufUsykrhJnJ2mw5oCCGd1N0incmC8pB0YdV5d0GTCveI8Pio2xf04WSeUplfl/vOroltGftx67iqhcaZLD6H48czeQ/ymsOXuGKhcdwsOA9s9dTMJjWLbrEE1KvJLatqj2bfSuKutlUX+Z7n4WnJI46Veat3BigRc+JeV8Yi/3Gh0rM4OLv4wrZO4I13WPwpwmjpXUhUkDQC+wYW8/dNlprURGAng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3OPpQ6SSC7w1EteO/O4Qgo0V+iE709uxjQDzGlRrdUM=;
 b=VWDJEcuRsBYXzFkU+JhpbPCueDqkBpWZBSikq6yE+yFH4/xLzEsokQmWIpWhaX7L1QLvLOZI++DzuCPm15142TjLN23GpvTBT1DsSQyhlxGFfXw7RIE1jKxTzj7ohs/osY4vvTN9BrD2bCU5ANUzAh+nP3OFJ4wNQ+jKOZvO6/Xjpsa+HyMEck3LkXlbMeny0xhQP0f2TqfFQzRyvT/uYV+wrWaAZAcF6ctWmaHub7acH7wUK+wrAbE6y2WY+SJFzOSF8SRmObkmTLJqB+qP9U7qn9fSbwZmWRQziJzX+YJdJ8M2XRMyzbaGdcOD2PGe6TsInSBtupSPYfUgaeII8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=minervasys.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=3OPpQ6SSC7w1EteO/O4Qgo0V+iE709uxjQDzGlRrdUM=;
 b=YpAbJ1u+xlJ2chhckher3PvJUEJhHQxhEAAitwP+J7uth+YxWP6wZ3CLaPAWZCXgv3c8OhxONa4araCI35keG2f9GnH2qOAJCb6+pCscZFPxoBWy1DN2c8OUrAbm/G/Ru4Bv1NQeT13QZ8bt0875esMjUWUXDBXM+XG/qZD1hJc=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <9444da80-8982-47b3-adc8-84107c50ad20@amd.com>
Date: Wed, 27 Nov 2024 14:57:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 01/12] xen/common: add cache coloring common code
To: Carlo Nonato <carlo.nonato@minervasys.tech>
CC: <xen-devel@lists.xenproject.org>, <andrea.bastoni@minervasys.tech>,
	<marco.solieri@minervasys.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-2-carlo.nonato@minervasys.tech>
 <93c0a25f-4edc-4d21-8767-48d496cc3575@amd.com>
 <CAG+AhRW+5XUk8KBFiB9LO6h=7W4nmXn_ZDtPuC+sUFgckKR_HQ@mail.gmail.com>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <CAG+AhRW+5XUk8KBFiB9LO6h=7W4nmXn_ZDtPuC+sUFgckKR_HQ@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF000000A0:EE_|CYYPR12MB8892:EE_
X-MS-Office365-Filtering-Correlation-Id: 11905d9c-ac0e-4f28-3167-08dd0eeb7e2b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z2g3VUFJSk80RThwKzRxblV1R2lsUUdTUGVxVjI1UWZqNWpiNmZQQlZ1NjVt?=
 =?utf-8?B?dG9vdm1NZmhUYURBM2RIMmpwZUtubTBmQUNPdDBkU3BrT0FBT3pZdFZ6U0lp?=
 =?utf-8?B?c2FheFB2OW5qMC9FOWRDUUk1ZjJpNWN4NGRKNC9DOXhjcVRXWlhpNU1wTWJW?=
 =?utf-8?B?R3czZkoxQk5uTFloRWEzek03anN2a2EvSWVvTC80S242c3VhU09BOWdMTFI1?=
 =?utf-8?B?SnVSdzdhM0tVaHdhb2xMa21ua3VuTGRtRmhFTEFlS08zTDdta2FqS0k3OTE3?=
 =?utf-8?B?QWJPM3N5K0xiZW5ZUzNObGNtMG1rSDdhellZMDdtU0RDSzFJR0gyQ1BUTGw5?=
 =?utf-8?B?V2RFa0YwcjQva3dUTUtMYTR0NzlPSnkvVWhqWkc0NTdsdzA3WSs1MEI4NlZZ?=
 =?utf-8?B?TnJrQk5mU0dialo3YUxoVjNjQisrRlJvWVgzbFhISHZXUGcrUkhYYThvWEZr?=
 =?utf-8?B?WE43Z2N6SkxOL2x0L0VlMHk5WkZyaWV5NnpsNjNLeG0zQlQ5d0diaFN3RzlR?=
 =?utf-8?B?UFBOa0RlODYzUnJxT2dXSFdqZURUM3hxSE03aC9WZkhFL3IvRDc1b1pzRkdU?=
 =?utf-8?B?bWppK3N1c2N2MjVKZjluRVpQUUdLL3Jndkc2bDRNbHk2NXp1OHoyWTNqWk0v?=
 =?utf-8?B?eko1K3dXNm9KREJHa3lrVkFmTmZPVTlsUFpLYk9IdVkxVHdVWFVuZjZzcnZJ?=
 =?utf-8?B?WFF0LzR6ZWlGaS9YV1ZJRTNXMFc3dmNlQW9iaklRVWJNVllXWjBERlErZE1U?=
 =?utf-8?B?eEV0bEVhMGNXYk1RYy9JRW45Um14WjVXSzF5dS9Ra0dZM0JNY0pIWUp2WW52?=
 =?utf-8?B?SElabUoyV1FaMFFJWm9lU3FPY09mZG9yVGsvcTY0eC90VTI1V21jRVhjT1U0?=
 =?utf-8?B?ek1JTWg2Q25JU3YvR09xbHZRdWM3TTVBdGNqR2tWQjJUT21vakYvbjMweGhH?=
 =?utf-8?B?bTh4cUFRejV1bnVuU0pNSldjV1Y4T0dhQXExeHVLd0R3eTdrM3kyMzAxNk9j?=
 =?utf-8?B?RkZaSEViWWZGQ2FqMmFvUWtER01MUXoxaksrM3E3VUxVY3B6VGpjamRJcTlV?=
 =?utf-8?B?MFZVTlNld2VkS0s3T0dUN041RmZvQXRSU3Z3NGxOa0swS0pHWit5RXUwU0tl?=
 =?utf-8?B?S2x1emxyTCs3bzdRa3VnSTdra2FTWTVSQUh1VHRQemVVbWlQaUhkSHZFRy8w?=
 =?utf-8?B?Ykd1Wk9TVk84VkN3V0k3STJXZGl0MXovdkZUZTZ0dEVmSUl3eU5YRHRMWFlk?=
 =?utf-8?B?aUlUdnJFcGFuWk02OWdaRWFTaVBYS1BFUVZOL0xhM0IxbVJnUUlObXlEKytT?=
 =?utf-8?B?bkdVanpQdHNwb2RJNkx5V1M5cVBCVjMva1pOUTNxRTErZ1V3NThpdkVlcXRw?=
 =?utf-8?B?b214Vlg4ZjIzVnQ5MGs4dWF3WnZmWUhkb0xEdjNCRlBPam94eXM0Q3VBSHR2?=
 =?utf-8?B?UlQwZFJGVkVyUS9MUVlLSlFpdWhCUGpXMGhxR1R3K2N3L3RUdDZ6UXU4bnEx?=
 =?utf-8?B?c0dUR21QTGE5dWpxVjNLR2ttUTVxV09oY2pUZUcwWGhvSDBkUThFcTVuNVpX?=
 =?utf-8?B?UXduMUNaVmNlZFVVVnBTeWR0MTRsNWVzY1pIZWF2ak1taDJzZ1g5UFBnTSt5?=
 =?utf-8?B?blk2WU5IVlJ6S2U5aW1OcHI2a1ByMEt4NzhXS2YzYU50K3V4dlVIRkVFNFJz?=
 =?utf-8?B?TzJjbG1Mc2lwQnpseXpHemprWmJJQWQ3TjZaSTRMd2kzV1RGNmg2cDVMQkU1?=
 =?utf-8?B?Qnc2cjJ0TkN2cnZJeEhGU3dhWkorczVydFUwVmgzczhBR2hUb2c0WmxUbmQv?=
 =?utf-8?B?c3ZHc2tMZnIxNkRoaWdHUk4zSDQxVHVSN3F5anVHa0Q2ak9pNnZCWFRyL1d5?=
 =?utf-8?B?QkMwTWhiTU1qTVAxZUpzOXJPZklRdTV1SDFvckxrSDB3bTAvdFNsNFY4dW55?=
 =?utf-8?Q?2/ACuue3gnDL2gFk/iWcrw5KsGdZxNE9?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2024 13:57:55.2560
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 11905d9c-ac0e-4f28-3167-08dd0eeb7e2b
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF000000A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8892



On 27/11/2024 14:24, Carlo Nonato wrote:
> 
> 
> Hi Michal,
> 
> On Wed, Nov 27, 2024 at 11:48â€¯AM Michal Orzel <michal.orzel@amd.com> wrote:
>> On 19/11/2024 15:13, Carlo Nonato wrote:
>>>
>>>
>>> Last Level Cache (LLC) coloring allows to partition the cache in smaller
>>> chunks called cache colors.
>>>
>>> Since not all architectures can actually implement it, add a HAS_LLC_COLORING
>>> Kconfig option.
>>> LLC_COLORS_ORDER Kconfig option has a range maximum of 10 (2^10 = 1024)
>>> because that's the number of colors that fit in a 4 KiB page when integers
>>> are 4 bytes long.
>>>
>>> LLC colors are a property of the domain, so struct domain has to be extended.
>>>
>>> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
>>>
>>> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
>>> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>

[...]

>>> +### llc-nr-ways (arm64)
>>> +> `= <integer>`
>>> +
>>> +> Default: `Obtained from hardware`
>>> +
>>> +Specify the number of ways of the Last Level Cache. This option is available
>>> +only when `CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used
>>> +to find the number of supported cache colors. By default the value is
>>> +automatically computed by probing the hardware, but in case of specific needs,
>>> +it can be manually set. Those include failing probing and debugging/testing
>>> +purposes so that it's possible to emulate platforms with different number of
>>> +supported colors. If set, also "llc-size" must be set, otherwise the default
>>> +will be used. Note that using both options implies "llc-coloring=on".
>> I can understand this decision, but ...
>>
>> [...]
>>
>>> +    if ( llc_size && llc_nr_ways )
>>> +    {
>>> +        llc_coloring_enabled = true;
>>> +        way_size = llc_size / llc_nr_ways;
>>> +    }
>>> +    else if ( !llc_coloring_enabled )
>>> +        return;
>> the above code does not seem to be right. When debugging or in general it is useful to have on the cmdline:
>> llc-size=1M llc-nr-ways=16 llc-coloring=on
>> and be able to disable it by just switching between on/off in llc-coloring=. However, with your solution,
>> even if I specify llc-coloring=off, it will be enabled because I specified both llc-size and llc-nr-ways.
>> I think llc-coloring= should have a precedence.
> 
> How do you differentiate from
> llc-size=1M llc-nr-ways=16 llc-coloring=off
> where llc coloring is disabled, and
> llc-size=1M llc-nr-ways=16
> where llc coloring is enabled? I mean, in both situations llc_coloring_enabled
> is going to be set to false.
I was thinking about the following:
diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 29b75e0e0d6a..b6684a6cf736 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -11,7 +11,12 @@

 #define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)

-static bool __ro_after_init llc_coloring_enabled;
+/*
+ * -1: not specified (disabled unless llc-size and llc-nr-ways present)
+ *  0: explicitly disabled through cmdline
+ *  1: explicitly enabled through cmdline
+ */
+static int8_t __ro_after_init llc_coloring_enabled = -1;
 boolean_param("llc-coloring", llc_coloring_enabled);

 static unsigned int __initdata llc_size;
@@ -48,7 +53,7 @@ void __init llc_coloring_init(void)
 {
     unsigned int way_size;

-    if ( llc_size && llc_nr_ways )
+    if ( (llc_coloring_enabled < 0) && (llc_size && llc_nr_ways) )
     {
         llc_coloring_enabled = true;
         way_size = llc_size / llc_nr_ways;

~Michal




From xen-devel-bounces@lists.xenproject.org Wed Nov 27 14:33:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 14:33:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844866.1260378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGJ6E-00072c-Pg; Wed, 27 Nov 2024 14:33:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844866.1260378; Wed, 27 Nov 2024 14: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 1tGJ6E-00072V-Mj; Wed, 27 Nov 2024 14:33:02 +0000
Received: by outflank-mailman (input) for mailman id 844866;
 Wed, 27 Nov 2024 14: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=KjDT=SW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tGJ6D-00072P-K9
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 14:33:01 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20615.outbound.protection.outlook.com
 [2a01:111:f403:2418::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7db7b41e-accc-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 15:32:56 +0100 (CET)
Received: from PH7P220CA0068.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32c::24)
 by MN2PR12MB4454.namprd12.prod.outlook.com (2603:10b6:208:26c::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Wed, 27 Nov
 2024 14:32:48 +0000
Received: from CY4PEPF0000EDD3.namprd03.prod.outlook.com
 (2603:10b6:510:32c:cafe::cd) by PH7P220CA0068.outlook.office365.com
 (2603:10b6:510:32c::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Wed,
 27 Nov 2024 14:32:48 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Wed, 27 Nov 2024 14:32:48 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 27 Nov
 2024 08:32:47 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Nov 2024 08:32: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: 7db7b41e-accc-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjE1IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdkYjdiNDFlLWFjY2MtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzE3OTc2LjU2NjM4Niwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fc3RsN5qbeU/qbJyeOzMZn/YEQZe6aUZZwXOo1GVYemLbVKf3Q2wRWm+SWhXuOd6i4fLdnyP4Nwc5yYhYdcV8ObpPyF/B3VA8GpFx4KYlOHQ5kVvFL4QMZSftBpSOY3EtNjG2yfIWQgsfHys6jtkMjZwVy4Oe7bGFlh/VsRNIQoUt/VLLLtD6ODatw3w2cpUpK7n/FI0aIUDflEZAyWs6TfwaO2ouJ7pBG4ckOaD8BObrvP9qpnO/duk797dTqK1O0X43+aFcO85op1BewSyotOQ3ys8DDF4PFpm+T83jeAsVVvekLVLwHzJ3T+OYNCESxbCHacmmzYQ1OCs/xBt5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Kbn5aWw/DEBk4v8+WEM0BTp73t+SZjB90yZzYEaeqtQ=;
 b=eJf2yg7/sU7p0BVuEImXiNu5jqNpu0r6ORA5J3nqKg+EPxfpf1br/aFbjcb+qx6ohjyG2Bjxw1XQpKG6NHbYCe8nyfY/YNRmT8NzV3TyB/YcVQic8QiQixcwYfnQIVayAULgZSuMGkcp3Pv3r3siY8Py3oOwELEBBhLhWoXuFJyA3H20y0ECEddL6vtvE5VnkbSNLykeUAuIqwbqGSHBdj6iWbkoCyvAEUEwA0U/RkOaQa6WXEeK39ft73fRB/JaqtoUKWTNxXFlvAw6q6jHacofVQBeaO1QyGaTxTdgGJz+4bWgKL2uWGImUEdY3p015iG6Z48dakH9W282LHyJsQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=minervasys.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=Kbn5aWw/DEBk4v8+WEM0BTp73t+SZjB90yZzYEaeqtQ=;
 b=xOdz5CM+9BMFbgmHnTK1JF4beNBvxNukzeFPU7f/bJhv41yMk+4LoSD7/c5nVPVJmUmLrNsY84ql9qnSkV4aDheTSYL51flp4v0mW1vGLHwT9PLQe8cZ0ePghPdUK62LCc7bkbkBiQNm6S287NsmKxeSbCF53w64YJDXzpzXfAA=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <6a15cbe6-1d0d-45ea-ab55-055266ba5fa8@amd.com>
Date: Wed, 27 Nov 2024 15:32:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 02/12] xen/arm: add initial support for LLC coloring
 on arm64
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
	<xen-devel@lists.xenproject.org>
CC: <andrea.bastoni@minervasys.tech>, <marco.solieri@minervasys.tech>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-3-carlo.nonato@minervasys.tech>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241119141329.44221-3-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD3:EE_|MN2PR12MB4454:EE_
X-MS-Office365-Filtering-Correlation-Id: e062f634-5714-4259-1603-08dd0ef05dab
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YnZFeDlKR0pDQkNlZEZGa2dOcDRpQ3ZuWHUxb05mL1YramNvdjZvZ3c2Vm1K?=
 =?utf-8?B?RjFPNCtxQkgwMTRMWlNVNDdsaTBrZW9QZlp0bUtOT0ZzeUk1RTlKNUhFeHRi?=
 =?utf-8?B?K3dKMnFRKytNaWo2NWJMY2IzdktZVkJrMkJQM2F1WmNkenJxeDM0cjRVV201?=
 =?utf-8?B?RFo0K1lWK3IzYlJpejBxd0ZzdWJwME0yRkg3dGJHbEtCWlp4SCtXZkx5Zk9E?=
 =?utf-8?B?UDFQaXk2aXlKbmxrUENqNGZoTjBZNnNnMWxENlJFTzNOVWRPWHpnTTMyNllF?=
 =?utf-8?B?TnE5c3VZQVVoYUcrMWUwL0Y5aUxOdkhaamJUdXh4WG1MNWcxUmxHRVNSdVVa?=
 =?utf-8?B?VitGRVFSdXczaThBc0IrZ2xZOEFVRGFBZW93c2JreXcxZWgycEpKYWVBeTl1?=
 =?utf-8?B?cU5BN3A0RUdzTkJJTWo3ZXZ3Q1VsM2djQUpRbWFuWDVVdDFTWm51Um9SaUIw?=
 =?utf-8?B?OGZod2JYc29Cam82OE1OSnV3TTBqWm5QMHFpUi9HcWNiM2VQNTc4Z1dvYjNi?=
 =?utf-8?B?NHJCVmpJR0Z4MjVOc09nV2Z3VEcxcjBJMUNLWHU3dHpzaTFHNEZHRUphd1FW?=
 =?utf-8?B?WXQ3Szc0S0U4Yk1CbDdPdTd5YTRsWHlFUG52SllwTzFzbDdWYUxWZVdiamM3?=
 =?utf-8?B?cFRlN2dQdldDVXV3ZkhveXo3dEFBQWo3NUpVOXJ3aDdrbE5BZytadHdQL1RN?=
 =?utf-8?B?MHdDL3dRY0srUG5CWjNSN3dpOUdSYlIzNUF1M1NwVG5CZXNLdGNZQk1OaVJR?=
 =?utf-8?B?VVIvUDVsUTZMTC9kckFKZWROUmhDN0I0WnZ1VFNCYWFZTmVja1d2Z085dDZX?=
 =?utf-8?B?WnliU3ZySGY1amVYTTgxVVplY1M5OWhrSFZPR05WaUY4SjIrUEwvQmFrT3dp?=
 =?utf-8?B?OVhyZ1Q4WWJ4OTRtVjR6cWtUMzY1OEU3WTgydk1hUWliUEVtUFZkbmNwbWlV?=
 =?utf-8?B?dXRZb3hYUjd5Z1U5bk9Kc3RDeHdSaXI5R0hkb245SEhwT0VET3Q1ZnhaaWtt?=
 =?utf-8?B?WTFEbk9KQmgvNXdJem9CMEp5ZU1tK0o5T25HeFIzaTBQNGQ0QUgvQkNqQVBD?=
 =?utf-8?B?NHMwQ1dKVGVZMG54RzRoVC9NNVNTSlBEL29IcDFkTlFSNzRJamNPN3RQbzZE?=
 =?utf-8?B?ekEzRGcrN2hKeGJ4WS81RE5VdzBJTDJURzJKWGlKWCttSGNGUmFqNk0yeWxF?=
 =?utf-8?B?VE9iRUtzQ25HS2ZiU2g2NWUvK0owL3Y5cjkxR1o4dFZyU0VzOE15NU5JdktM?=
 =?utf-8?B?c2xnZ3V6d2MwZi9TRTFDSkZiN0p0cTRRSlFXb1JqUTlIWHovOVAxcklSbkFa?=
 =?utf-8?B?MWNybmNlS0RDVWJ2aEVlWE1vN2tCTXBrWi9rRklPaE8vNytTZ3M0VzBUQnJP?=
 =?utf-8?B?MmZwUTFwR0lHbld2ODB5YVhzMDE5K2JkblphOU93SkhDVHFnR0VjWHpOT2Fv?=
 =?utf-8?B?cVh3K0w3QjBpbWhDZGpLTTlMMHUxelhibjRVK1Z3Z1pYYUNXU2tIVW5pUWl2?=
 =?utf-8?B?WHYzUFFkNDU4OHJQYXBSSTdwN0tKUGM5LzM4dlg1c05hVFdKZ2VJUVFUS1pX?=
 =?utf-8?B?dUkwMUViZyswa2ZVczNHS3VDRXdEV1VYWFgzV3lKTzI3ejh1NExKMGtQN2JI?=
 =?utf-8?B?OVNWUFY0VllFNEZjN1pRVUg0bHRsb2t3ZUI4Q29ta04vNmR3clpIZVVMcDVw?=
 =?utf-8?B?NUsvU0J2QlkxcTRCeDhoZzUyZDd1STFBUE1wTFcySk5yckd4cGVSYWRiR0xD?=
 =?utf-8?B?dGRCR3dYRkluS3EvTFVheGExS25WVTFuV1MyQ0R0cEVGaG9aWDhDQkprbEdp?=
 =?utf-8?B?djdoZXRvMThBd09lTlRGOWZ5NDBxWHB6cllFUkFONHdmbW5JV2xqQ0lNRElN?=
 =?utf-8?B?YnM4QU92bDlBQWwrdTNyajdxZlUxQmRBcE9aMi9DQ0Z3WHhGWmF6Q1ZVbVll?=
 =?utf-8?Q?6B8PIVuzXwoJZk4vMtW7NEogAUxeVNb9?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2024 14:32:48.1193
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e062f634-5714-4259-1603-08dd0ef05dab
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=[SATLEXMB03.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: MN2PR12MB4454



On 19/11/2024 15:13, Carlo Nonato wrote:
> 
> 
> LLC coloring needs to know the last level cache layout in order to make the
> best use of it. This can be probed by inspecting the CLIDR_EL1 register,
> so the Last Level is defined as the last level visible by this register.
> Note that this excludes system caches in some platforms.
> 
> Static memory allocation and cache coloring are incompatible because static
> memory can't be guaranteed to use only colors assigned to the domain.
> Panic during DomUs creation when both are enabled.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> ---
> v10:
> - moved CONFIG_NUMA check in arch/arm/Kconfig
> v9:
> - no changes
> v8:
> - no changes
> v7:
> - only minor changes
> v6:
> - get_llc_way_size() now checks for at least separate I/D caches
> v5:
> - used - instead of _ for filenames
> - moved static-mem check in this patch
> - moved dom0 colors parsing in next patch
> - moved color allocation and configuration in next patch
> - moved check_colors() in next patch
> - colors are now printed in short form
> v4:
> - added "llc-coloring" cmdline option for the boot-time switch
> - dom0 colors are now checked during domain init as for any other domain
> - fixed processor.h masks bit width
> - check for overflow in parse_color_config()
> - check_colors() now checks also that colors are sorted and unique
> ---
>  docs/misc/cache-coloring.rst         | 14 +++++
>  xen/arch/arm/Kconfig                 |  1 +
>  xen/arch/arm/Makefile                |  1 +
>  xen/arch/arm/dom0less-build.c        |  6 +++
>  xen/arch/arm/include/asm/processor.h | 16 ++++++
>  xen/arch/arm/llc-coloring.c          | 78 ++++++++++++++++++++++++++++
>  xen/arch/arm/setup.c                 |  3 ++
>  xen/common/llc-coloring.c            |  2 +-
>  xen/include/xen/llc-coloring.h       |  4 ++
>  9 files changed, 124 insertions(+), 1 deletion(-)
>  create mode 100644 xen/arch/arm/llc-coloring.c
> 
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> index 0fe3830c40..b608284e9b 100644
> --- a/docs/misc/cache-coloring.rst
> +++ b/docs/misc/cache-coloring.rst
> @@ -111,6 +111,20 @@ Auto-probing of LLC specs
> 
>  LLC size and number of ways are probed automatically by default.
> 
> +In the Arm implementation, this is done by inspecting the CLIDR_EL1 register.
> +This means that other system caches that aren't visible there are ignored.
> +
>  LLC specs can be manually set via the above command line parameters. This
>  bypasses any auto-probing and it's used to overcome failing situations, such as
>  flawed probing logic, or for debugging/testing purposes.
> +
> +Known issues and limitations
> +****************************
> +
> +"xen,static-mem" isn't supported when coloring is enabled
> +#########################################################
> +
> +In the domain configuration, "xen,static-mem" allows memory to be statically
> +allocated to the domain. This isn't possible when LLC coloring is enabled,
> +because that memory can't be guaranteed to use only colors assigned to the
> +domain.
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 15b2e4a227..7f0712e674 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_LLC_COLORING if !NUMA
> 
>  config ARM
>         def_bool y
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index e4ad1ce851..ccbfc61f88 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -35,6 +35,7 @@ obj-$(CONFIG_IOREQ_SERVER) += ioreq.o
>  obj-y += irq.o
>  obj-y += kernel.init.o
>  obj-$(CONFIG_LIVEPATCH) += livepatch.o
> +obj-$(CONFIG_LLC_COLORING) += llc-coloring.o
>  obj-$(CONFIG_MEM_ACCESS) += mem_access.o
>  obj-y += mm.o
>  obj-y += monitor.o
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index f328a044e9..d93a85434e 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -5,6 +5,7 @@
>  #include <xen/grant_table.h>
>  #include <xen/iocap.h>
>  #include <xen/libfdt/libfdt.h>
> +#include <xen/llc-coloring.h>
>  #include <xen/sched.h>
>  #include <xen/serial.h>
>  #include <xen/sizes.h>
> @@ -890,7 +891,12 @@ void __init create_domUs(void)
>              panic("No more domain IDs available\n");
> 
>          if ( dt_find_property(node, "xen,static-mem", NULL) )
> +        {
> +            if ( llc_coloring_enabled )
> +                panic("LLC coloring and static memory are incompatible\n");
> +
>              flags |= CDF_staticmem;
> +        }
> 
>          if ( dt_property_read_bool(node, "direct-map") )
>          {
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 8e02410465..ef33ea198c 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -18,6 +18,22 @@
>  #define CTR_IDC_SHIFT       28
>  #define CTR_DIC_SHIFT       29
> 
> +/* CCSIDR Current Cache Size ID Register */
> +#define CCSIDR_LINESIZE_MASK            _AC(0x7, UL)
> +#define CCSIDR_NUMSETS_SHIFT            13
> +#define CCSIDR_NUMSETS_MASK             _AC(0x3fff, UL)
> +#define CCSIDR_NUMSETS_SHIFT_FEAT_CCIDX 32
> +#define CCSIDR_NUMSETS_MASK_FEAT_CCIDX  _AC(0xffffff, UL)
> +
> +/* CSSELR Cache Size Selection Register */
> +#define CSSELR_LEVEL_MASK  _AC(0x7, UL)
Seems unused. If so, please remove.

> +#define CSSELR_LEVEL_SHIFT 1
> +
> +/* CLIDR Cache Level ID Register */
> +#define CLIDR_CTYPEn_SHIFT(n) (3 * ((n) - 1))
> +#define CLIDR_CTYPEn_MASK     _AC(0x7, UL)
> +#define CLIDR_CTYPEn_LEVELS   7
> +
>  #define ICACHE_POLICY_VPIPT  0
>  #define ICACHE_POLICY_AIVIVT 1
>  #define ICACHE_POLICY_VIPT   2
> diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
> new file mode 100644
> index 0000000000..a7e0907816
> --- /dev/null
> +++ b/xen/arch/arm/llc-coloring.c
> @@ -0,0 +1,78 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Last Level Cache (LLC) coloring support for ARM
> + *
> + * Copyright (C) 2024, Advanced Micro Devices, Inc.
> + * Copyright (C) 2024, Minerva Systems SRL
> + */
> +#include <xen/llc-coloring.h>
> +#include <xen/types.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sysregs.h>
> +
> +/* Return the LLC way size by probing the hardware */
> +unsigned int __init get_llc_way_size(void)
> +{
> +    register_t ccsidr_el1;
> +    register_t clidr_el1 = READ_SYSREG(CLIDR_EL1);
> +    register_t csselr_el1 = READ_SYSREG(CSSELR_EL1);
> +    register_t id_aa64mmfr2_el1 = READ_SYSREG(ID_AA64MMFR2_EL1);
> +    uint32_t ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT;
> +    uint32_t ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK;
> +    unsigned int n, line_size, num_sets;
> +
> +    for ( n = CLIDR_CTYPEn_LEVELS; n != 0; n-- )
> +    {
> +        uint8_t ctype_n = (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
> +                          CLIDR_CTYPEn_MASK;
NIT: align CLIDR_xxx to opening (

Other than that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 14:35:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 14:35:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844877.1260388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGJ8X-0007ed-8m; Wed, 27 Nov 2024 14:35:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844877.1260388; Wed, 27 Nov 2024 14:35: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 1tGJ8X-0007eW-54; Wed, 27 Nov 2024 14:35:25 +0000
Received: by outflank-mailman (input) for mailman id 844877;
 Wed, 27 Nov 2024 14:35: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=NRnq=SW=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1tGJ8V-0007eM-J0
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 14:35:23 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d221c62d-accc-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 15:35:18 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1732718111138749.7389414299095;
 Wed, 27 Nov 2024 06: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: d221c62d-accc-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjEzNi4xNDMuMTg4LjUxIiwiaGVsbyI6InNlbmRlcjQtb2YtbzUxLnpvaG8uY29tIn0=
X-Custom-Transaction: eyJpZCI6ImQyMjFjNjJkLWFjY2MtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzE4MTE4LjcwOTE1MSwic2VuZGVyIjoiZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; t=1732718113; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Ki3jTayrnCamit8rGkvav2J3iKdxGrHxJ1EBSwMLAM1FvVYjzWIZPCq8lvxyojmgCrCNVFyfiJndwnqnEyiYvqy1NEJObhgbydatx2ePx/Z+tNAr+oR3Lwiv0SWmhtSZiRH3prACp4clUqGk4WsgNkhCIPwnLpWqwIwahTLuVlU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1732718113; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; 
	bh=P1He0xBsfX60X496o0JraSR1u0b5+Q6FTJSFfCG0i/s=; 
	b=KFbLYoOr8Pi+URbomTKaw7P5VWlNS7fLhtD7RCMOITc0CqCsgh7IjwRIxMwSL0XpMnWz8agSaQBdXzUK3kSUgByljUi0tjQUUtzTZvgxtH0uSBNVFcRPaF3BelNwOe5cMb+tWXgpEZL0YuxlCMEvgeWgjsvWttp9wyB8s5oqI2U=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=apertussolutions.com;
	spf=pass  smtp.mailfrom=dpsmith@apertussolutions.com;
	dmarc=pass header.from=<dpsmith@apertussolutions.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732718113;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc;
	bh=P1He0xBsfX60X496o0JraSR1u0b5+Q6FTJSFfCG0i/s=;
	b=amvuIIUznXzg86V0+uwQz77+l3cPKTHNkj8sJSPscUESsqcw0g228NsBz5QU5EhW
	WweSIp5w0ww5FzdLZHNyGa3L/7XA6K4k/TpKe4/4Ow78hN0TGx7B3na+Q5O0VGGboa/
	8ZU9RzYvLQ70dWkXSv1+amg301d2tbJmQHyDObng=
Message-ID: <adf24a8c-9a40-4750-ad1a-49cf63542122@apertussolutions.com>
Date: Wed, 27 Nov 2024 09:35:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/36] xsm/flask: missing breaks, MISRA rule 16.4
To: dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com>
 <20241126-vuart-ns8250-v1-v1-2-87b9a8375b7a@ford.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20241126-vuart-ns8250-v1-v1-2-87b9a8375b7a@ford.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/26/24 18:21, Denis Mukhin via B4 Relay wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> While working on console forwarding for virtual NS8250 I stepped into
>    flask_domain_alloc_security()
> where break statement was missing in default case which violates MISRA
> rule 16.4.
> 
> Fixed everywhere in hooks.c.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844888.1260398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKa0-0002qF-Nt; Wed, 27 Nov 2024 16:07:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844888.1260398; Wed, 27 Nov 2024 16:07: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 1tGKa0-0002q8-Ka; Wed, 27 Nov 2024 16:07:52 +0000
Received: by outflank-mailman (input) for mailman id 844888;
 Wed, 27 Nov 2024 16:07: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=k0uU=SW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGKa0-0002q2-5W
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:07:52 +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 bcf9357c-acd9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 17:07:45 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-aa539d2b4b2so186837366b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 08:07:45 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa53683eafbsm564294866b.189.2024.11.27.08.01.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 08:01: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: bcf9357c-acd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzMiLCJoZWxvIjoibWFpbC1lajEteDYzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJjZjkzNTdjLWFjZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzIzNjY1LjYyNDczOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732723665; x=1733328465; 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=QOajJGkqrRzAKADAAd0z4wDNLTiv7h8Mem5y4HKc3DQ=;
        b=hOWNmhJnZy0COtCr/l1ExzOmiLpjSEv7wlUmBY3/TVmeWw8vHp1TTBpRt4sdj2yAcE
         wF7Hr51v0iJT4umnAASrHUU24OuPbgDzEfX0nSCK3BzGt/nIVzL2GuPfk1DYzmoWN7Tl
         iy72I36TdqFm4C40x+58k0ExdMip/SKFGHp+8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732723665; x=1733328465;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QOajJGkqrRzAKADAAd0z4wDNLTiv7h8Mem5y4HKc3DQ=;
        b=s/rBpy1vBlEwTOZg9tAh+NkKeNeaEvNDlblkCQHHazMrr/RJApmi1ZzSdsJTo+syqL
         stbKzeriTNs4jw15fUOfMHD1GTif0+51NxZxKvvZNe+UigyyHuCeSIr1c4kUbP+1+FW+
         8A1F6iFakvPlQEkNRDu8F2OxLwjxdj1I5JrlREv8lDW/mbA936vUxDmYPG0omYLBanN3
         1BShaY4546w4aYTx3/4iP5DqC1YsWdPgHjiQNy+lrU50G30j4o9Cz0KDjoKXw3aveaCn
         c67aV4qoC4i94KfRjz814jOQKqN9+Ul0TS8xQPbJZ5IBNGapqi9rgGkUCDObK18hACvV
         A0jQ==
X-Forwarded-Encrypted: i=1; AJvYcCUYrn2TCprcnRgXUmhMI5sBZfOSbwP6UFLwtiJnDBDW1YRa/nYVRLpeOpYO0lix/pzj9QYGIZrIWpY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznKNUgIZ2UtIK8NoZ0uW6d4XaXf1ATgW0tHJI5n5vK3hRQWDaV
	euQSD/uIdbIqMTnjuVYXh+BEBVm+Wbq2Wr6ZxhvycakS5d/w2QG9xH4lMR+jhThOdY0QXBVmXv9
	9
X-Gm-Gg: ASbGncsv9S9pvjwfU3v+aksYr2muX0Alrki/Ym7b3043rolwc+DO9FQwXKYIJ4cKE9g
	j7dZNxZjH0F07MlTTP385pOQqdSMwGRWPjCd4S6IqroKDuNEFJSw3BiiuSPGotGZ3oeaFzHbVLW
	HVE/RN/u1VYsQWUnpXPGZq+rmAolVzJ8t2yy1WF1ItLP353RMgiVVFg2wHn6by5eaP3RzAJHrx4
	wzoAlOGyeQr7/mTCTAjOv1U2KkHpqNEKSx4TtDeICpYJ2/ki22pqIcy8ireRFc=
X-Google-Smtp-Source: AGHT+IGPnZhdvtnmsbSlmCcmCjJBUEl9+5gdqhl3v+xdk9DnErnQuzIpauOLC/heQXuhIXf3X+AW6Q==
X-Received: by 2002:a17:906:3ca9:b0:a9a:616c:459e with SMTP id a640c23a62f3a-aa57fbe94f9mr353507966b.27.1732723286833;
        Wed, 27 Nov 2024 08:01:26 -0800 (PST)
Message-ID: <c4b7b7bc-1956-444b-a613-971a60f9a27e@citrix.com>
Date: Wed, 27 Nov 2024 16:01:23 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: MOVBE requires a memory operand
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: <157a6ac0-6929-4e01-8588-7e5591427654@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <157a6ac0-6929-4e01-8588-7e5591427654@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27/11/2024 7:15 am, Jan Beulich wrote:
> The reg-reg forms should cause #UD; they come into existence only with
> APX, where MOVBE also extends BSWAP (for the latter not being "eligible"
> to a REX2 prefix).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844889.1260407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKa7-00035A-Tz; Wed, 27 Nov 2024 16:07:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844889.1260407; Wed, 27 Nov 2024 16:07: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 1tGKa7-000353-RM; Wed, 27 Nov 2024 16:07:59 +0000
Received: by outflank-mailman (input) for mailman id 844889;
 Wed, 27 Nov 2024 16:07: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKa7-00034d-8u
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:07:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c2416068-acd9-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 17:07: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 8617E1477;
 Wed, 27 Nov 2024 08:08:23 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1F7793F5A1;
 Wed, 27 Nov 2024 08:07: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: c2416068-acd9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImMyNDE2MDY4LWFjZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzIzNjc0LjYwODgzMiwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 00/10] xen/arm: ffa: Improvements and fixes
Date: Wed, 27 Nov 2024 17:07:32 +0100
Message-ID: <cover.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This serie contains various patches to rework how firmware discovery and
feature detection is done and allow to have a more fine granular
filtering of the calls we do or not to the firmware.

There is also a patch introducing the use of the "bit 15" convention
from the FF-A specification to distinguish between secure and non-secure
identifiers as Xen VM IDs cannot have bit 15 set.

Finally we introduce support for indirect messages and for that we
transmit the RXTX buffers to the SPMC and we put the message related
functions into their own source file.

Changes in v3:
- add some comments in code
- add some R-b from Jens
- handle comments from Jens (details in each patch)
- rebase on top of latest staging

Changes in v2:
- do not activate FF-A if firmware does not support it
- various clean up and small fixes explained in each patch
- rebase on top of latest staging


Bertrand Marquis (10):
  xen/arm: ffa: Rework firmware discovery
  xen/arm: ffa: Rework feature discovery
  xen/arm: ffa: Fix version negotiation
  xen/arm: ffa: Fine granular call support
  xen/arm: ffa: Rework partition info get
  xen/arm: ffa: Use bit 15 convention for SPs
  xen/arm: ffa: Transmit RXTX buffers to the SPMC
  xen/arm: ffa: move message function into ffa_msg.c
  xen/arm: ffa: Remove per VM notif_enabled
  xen/arm: ffa: Add indirect message support

 xen/arch/arm/tee/Makefile       |   1 +
 xen/arch/arm/tee/ffa.c          | 251 +++++++++++++++-----------------
 xen/arch/arm/tee/ffa_msg.c      | 130 +++++++++++++++++
 xen/arch/arm/tee/ffa_notif.c    |  21 +--
 xen/arch/arm/tee/ffa_partinfo.c | 234 ++++++++++++++++++++---------
 xen/arch/arm/tee/ffa_private.h  |  79 ++++++++--
 xen/arch/arm/tee/ffa_rxtx.c     | 169 +++++++++++++++++----
 xen/arch/arm/tee/ffa_shm.c      |  39 +++--
 8 files changed, 654 insertions(+), 270 deletions(-)
 create mode 100644 xen/arch/arm/tee/ffa_msg.c

-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:18 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844893.1260418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKaQ-0003ZL-5v; Wed, 27 Nov 2024 16:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844893.1260418; Wed, 27 Nov 2024 16: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 1tGKaQ-0003ZE-3E; Wed, 27 Nov 2024 16:08:18 +0000
Received: by outflank-mailman (input) for mailman id 844893;
 Wed, 27 Nov 2024 16:08: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKaP-00034d-7G
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:17 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id cdfb3c6a-acd9-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 17:08: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 4C8F01477;
 Wed, 27 Nov 2024 08:08:43 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D98AA3F5A1;
 Wed, 27 Nov 2024 08: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: cdfb3c6a-acd9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImNkZmIzYzZhLWFjZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzIzNjk0LjA4MjUyNiwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 01/10] xen/arm: ffa: Rework firmware discovery
Date: Wed, 27 Nov 2024 17:07:33 +0100
Message-ID: <3fcc536cd2e13d0421839fc6890daeda71cfac44.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework firmware discovery during probe:
- move prints into the probe
- rename ffa_version to ffa_fw_version as the variable identifies the
  version of the firmware and not the one we support
- add error prints when allocation fail during probe

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v3:
- Revert spurious change assigning major_vers
- Remove error print in ffa_rxtx_init as we have already a print in the
  main init function
Changes in v2:
- Fix error message when we fail to retrieve ffa_version
- Move back printing the firmware version before checking supported
  features
- Use Warning instead of Info to inform user that FF-A is not supported
  in firmware.
---
 xen/arch/arm/tee/ffa.c      | 41 ++++++++++++++++++++++---------------
 xen/arch/arm/tee/ffa_rxtx.c |  4 +---
 2 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 022089278e1c..5a7f297ca5c6 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -71,8 +71,8 @@
 
 #include "ffa_private.h"
 
-/* Negotiated FF-A version to use with the SPMC */
-static uint32_t __ro_after_init ffa_version;
+/* Negotiated FF-A version to use with the SPMC, 0 if not there or supported */
+static uint32_t __ro_after_init ffa_fw_version;
 
 
 /*
@@ -105,10 +105,7 @@ static bool ffa_get_version(uint32_t *vers)
 
     arm_smccc_1_2_smc(&arg, &resp);
     if ( resp.a0 == FFA_RET_NOT_SUPPORTED )
-    {
-        gprintk(XENLOG_ERR, "ffa: FFA_VERSION returned not supported\n");
         return false;
-    }
 
     *vers = resp.a0;
 
@@ -372,7 +369,7 @@ static int ffa_domain_init(struct domain *d)
     struct ffa_ctx *ctx;
     int ret;
 
-    if ( !ffa_version )
+    if ( !ffa_fw_version )
         return -ENODEV;
      /*
       * We can't use that last possible domain ID or ffa_get_vm_id() would
@@ -505,6 +502,9 @@ static bool ffa_probe(void)
      */
     BUILD_BUG_ON(PAGE_SIZE != FFA_PAGE_SIZE);
 
+    printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
+           FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
+
     /*
      * psci_init_smccc() updates this value with what's reported by EL-3
      * or secure world.
@@ -514,22 +514,23 @@ static bool ffa_probe(void)
         printk(XENLOG_ERR
                "ffa: unsupported SMCCC version %#x (need at least %#x)\n",
                smccc_ver, ARM_SMCCC_VERSION_1_2);
-        return false;
+        goto err_no_fw;
     }
 
     if ( !ffa_get_version(&vers) )
-        return false;
+    {
+        gprintk(XENLOG_ERR, "Cannot retrieve the FFA version\n");
+        goto err_no_fw;
+    }
 
     if ( vers < FFA_MIN_SPMC_VERSION || vers > FFA_MY_VERSION )
     {
         printk(XENLOG_ERR "ffa: Incompatible version %#x found\n", vers);
-        return false;
+        goto err_no_fw;
     }
 
     major_vers = (vers >> FFA_VERSION_MAJOR_SHIFT) & FFA_VERSION_MAJOR_MASK;
     minor_vers = vers & FFA_VERSION_MINOR_MASK;
-    printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
-           FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
     printk(XENLOG_INFO "ARM FF-A Firmware version %u.%u\n",
            major_vers, minor_vers);
 
@@ -546,12 +547,18 @@ static bool ffa_probe(void)
          !check_mandatory_feature(FFA_MEM_SHARE_32) ||
          !check_mandatory_feature(FFA_MEM_RECLAIM) ||
          !check_mandatory_feature(FFA_MSG_SEND_DIRECT_REQ_32) )
-        return false;
+    {
+        printk(XENLOG_ERR "ffa: Mandatory feature not supported by fw\n");
+        goto err_no_fw;
+    }
 
-    if ( !ffa_rxtx_init() )
-        return false;
+    ffa_fw_version = vers;
 
-    ffa_version = vers;
+    if ( !ffa_rxtx_init() )
+    {
+        printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
+        goto err_no_fw;
+    }
 
     if ( !ffa_partinfo_init() )
         goto err_rxtx_destroy;
@@ -564,7 +571,9 @@ static bool ffa_probe(void)
 
 err_rxtx_destroy:
     ffa_rxtx_destroy();
-    ffa_version = 0;
+err_no_fw:
+    ffa_fw_version = 0;
+    printk(XENLOG_WARNING "ARM FF-A No firmware support\n");
 
     return false;
 }
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 661764052e67..c8bc516a19be 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -203,10 +203,8 @@ bool ffa_rxtx_init(void)
 
     e = ffa_rxtx_map(__pa(ffa_tx), __pa(ffa_rx), FFA_RXTX_PAGE_COUNT);
     if ( e )
-    {
-        printk(XENLOG_ERR "ffa: Failed to map rxtx: error %d\n", e);
         goto err;
-    }
+
     return true;
 
 err:
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:20 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844895.1260428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKaS-0003q2-D6; Wed, 27 Nov 2024 16:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844895.1260428; Wed, 27 Nov 2024 16:08: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 1tGKaS-0003pw-9w; Wed, 27 Nov 2024 16:08:20 +0000
Received: by outflank-mailman (input) for mailman id 844895;
 Wed, 27 Nov 2024 16:08: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKaQ-00034d-Vk
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:18 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id cf12dd55-acd9-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 17:08:15 +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 0B1C6150C;
 Wed, 27 Nov 2024 08:08:45 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9B9A63F5A1;
 Wed, 27 Nov 2024 08:08: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: cf12dd55-acd9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImNmMTJkZDU1LWFjZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzIzNjk1Ljk2MDg0Nywic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 02/10] xen/arm: ffa: Rework feature discovery
Date: Wed, 27 Nov 2024 17:07:34 +0100
Message-ID: <244dc07cda4cdba30e305f62818141444223a4e4.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Store the list of ABI we need in a list and go through the list instead
of having a list of conditions inside the code.

No functional change.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v3:
- remove const attribute for id in ffa_fw_abi struct
Changes in v2:
- Store a string version of ABI needed from firmware and print the name
  of the ABI not supported instead of the id
- Restore comment with TODO which should not have been removed at this
  stage
- fix to unsigned int the index in the loop on the array
- use abi instead of feature in the names of the functions and variables
  as we are not checking features but abis
---
 xen/arch/arm/tee/ffa.c | 57 +++++++++++++++++++++++++-----------------
 1 file changed, 34 insertions(+), 23 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 5a7f297ca5c6..ade6aaa6fd1d 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -74,6 +74,31 @@
 /* Negotiated FF-A version to use with the SPMC, 0 if not there or supported */
 static uint32_t __ro_after_init ffa_fw_version;
 
+struct ffa_fw_abi {
+    uint32_t id;
+    const char *name;
+};
+
+#define FW_ABI(abi) {abi,#abi}
+
+/* List of ABI we use from the firmware */
+static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
+    FW_ABI(FFA_VERSION),
+    FW_ABI(FFA_FEATURES),
+    FW_ABI(FFA_NOTIFICATION_BITMAP_CREATE),
+    FW_ABI(FFA_NOTIFICATION_BITMAP_DESTROY),
+    FW_ABI(FFA_PARTITION_INFO_GET),
+    FW_ABI(FFA_NOTIFICATION_INFO_GET_64),
+    FW_ABI(FFA_NOTIFICATION_GET),
+    FW_ABI(FFA_RX_RELEASE),
+    FW_ABI(FFA_RXTX_MAP_64),
+    FW_ABI(FFA_RXTX_UNMAP),
+    FW_ABI(FFA_MEM_SHARE_32),
+    FW_ABI(FFA_MEM_SHARE_64),
+    FW_ABI(FFA_MEM_RECLAIM),
+    FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
+    FW_ABI(FFA_MSG_SEND_DIRECT_REQ_64),
+};
 
 /*
  * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
@@ -112,20 +137,9 @@ static bool ffa_get_version(uint32_t *vers)
     return true;
 }
 
-static int32_t ffa_features(uint32_t id)
-{
-    return ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
-}
-
-static bool check_mandatory_feature(uint32_t id)
+static bool ffa_abi_supported(uint32_t id)
 {
-    int32_t ret = ffa_features(id);
-
-    if ( ret )
-        printk(XENLOG_ERR "ffa: mandatory feature id %#x missing: error %d\n",
-               id, ret);
-
-    return !ret;
+    return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
 }
 
 static void handle_version(struct cpu_user_regs *regs)
@@ -539,17 +553,14 @@ static bool ffa_probe(void)
      * TODO: Rework the code to allow domain to use a subset of the
      * features supported.
      */
-    if ( !check_mandatory_feature(FFA_PARTITION_INFO_GET) ||
-         !check_mandatory_feature(FFA_RX_RELEASE) ||
-         !check_mandatory_feature(FFA_RXTX_MAP_64) ||
-         !check_mandatory_feature(FFA_MEM_SHARE_64) ||
-         !check_mandatory_feature(FFA_RXTX_UNMAP) ||
-         !check_mandatory_feature(FFA_MEM_SHARE_32) ||
-         !check_mandatory_feature(FFA_MEM_RECLAIM) ||
-         !check_mandatory_feature(FFA_MSG_SEND_DIRECT_REQ_32) )
+    for ( unsigned int i = 0; i < ARRAY_SIZE(ffa_fw_abi_needed); i++ )
     {
-        printk(XENLOG_ERR "ffa: Mandatory feature not supported by fw\n");
-        goto err_no_fw;
+        if ( !ffa_abi_supported(ffa_fw_abi_needed[i].id) )
+        {
+            printk(XENLOG_INFO "ARM FF-A Firmware does not support %s\n",
+                   ffa_fw_abi_needed[i].name);
+            goto err_no_fw;
+        }
     }
 
     ffa_fw_version = vers;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844896.1260438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKaU-00047o-Li; Wed, 27 Nov 2024 16:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844896.1260438; Wed, 27 Nov 2024 16: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 1tGKaU-00047d-Hi; Wed, 27 Nov 2024 16:08:22 +0000
Received: by outflank-mailman (input) for mailman id 844896;
 Wed, 27 Nov 2024 16: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKaS-00034d-U9
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:20 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id d02bc6a7-acd9-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 17:08: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 E75C2244B;
 Wed, 27 Nov 2024 08:08:46 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6A78D3F5A1;
 Wed, 27 Nov 2024 08:08: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: d02bc6a7-acd9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQwMmJjNmE3LWFjZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzIzNjk3Ljc1NzMxMSwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 03/10] xen/arm: ffa: Fix version negotiation
Date: Wed, 27 Nov 2024 17:07:35 +0100
Message-ID: <47944bb5ea18a7c7aa968534c7e28c26f2cada12.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fix FFA version negotiation with the firmware to follow the
specification guidance more closely (see FF-A Specification Version 1.1
in chapter 13.2.1).
When the firmware returns OK we can have several cases:
- the version requested is accepted but the firmware supports a greater
  one in the same major.
- the firmware supports a greater major version. It could still return
  OK even if the version requested is not accepted. Reject it.
- the firmware supports a lower version. It will return OK and give that
  version. Check if we support it and use it or reject it if we do not.

Adapt the code to:
- reject any version lower than the one we support or not with the same
  major version
- use the version returned if in our supported range (currently 1.1
  only)
- use 1.1 if the version returned is greater.

Also adapt the handling of version requests from VM:
- use our version if same major but greater minor is requested
- use requested version if same major but lower minor is requested
- do not use if incompatible major is requested
- always return our version without error to the requester

[1] https://developer.arm.com/documentation/den0077/e/

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v3:
- add Jens R-b
Changes in v2:
- add link in commit message and code to the version and chapter of
  the spec.
- fix comment coding style
- introduce macros to get the major and minor of a version
- add BUILD_BUG_ON to validate that the SPMC version we want is
  compatible with our own version
- rework version testing and selecting to be clearer by discarding
  different major or version lower than what we want and then selecting
  based on the minor version.
- fix get_version handling to be more generic
---
 xen/arch/arm/tee/ffa.c         | 53 +++++++++++++++++++++++++---------
 xen/arch/arm/tee/ffa_private.h |  3 ++
 2 files changed, 43 insertions(+), 13 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index ade6aaa6fd1d..c5dcb4fe240c 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -148,13 +148,20 @@ static void handle_version(struct cpu_user_regs *regs)
     struct ffa_ctx *ctx = d->arch.tee;
     uint32_t vers = get_user_reg(regs, 1);
 
-    if ( vers < FFA_VERSION_1_1 )
-        vers = FFA_VERSION_1_0;
-    else
-        vers = FFA_VERSION_1_1;
-
-    ctx->guest_vers = vers;
-    ffa_set_regs(regs, vers, 0, 0, 0, 0, 0, 0, 0);
+    /*
+     * 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 )
+    {
+        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
+            ctx->guest_vers = FFA_MY_VERSION;
+        else
+            ctx->guest_vers = vers;
+    }
+    ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
 }
 
 static void handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
@@ -537,17 +544,39 @@ static bool ffa_probe(void)
         goto err_no_fw;
     }
 
-    if ( vers < FFA_MIN_SPMC_VERSION || vers > FFA_MY_VERSION )
+    /* Some sanity check in case we update the version we support */
+    BUILD_BUG_ON(FFA_MIN_SPMC_VERSION > FFA_MY_VERSION);
+    BUILD_BUG_ON(FFA_VERSION_MAJOR(FFA_MIN_SPMC_VERSION) !=
+                                   FFA_MY_VERSION_MAJOR);
+
+    major_vers = FFA_VERSION_MAJOR(vers);
+    minor_vers = FFA_VERSION_MINOR(vers);
+
+    if ( major_vers != FFA_MY_VERSION_MAJOR ||
+         minor_vers < FFA_VERSION_MINOR(FFA_MIN_SPMC_VERSION) )
     {
-        printk(XENLOG_ERR "ffa: Incompatible version %#x found\n", vers);
+        printk(XENLOG_ERR "ffa: Incompatible firmware version %u.%u\n",
+               major_vers, minor_vers);
         goto err_no_fw;
     }
 
-    major_vers = (vers >> FFA_VERSION_MAJOR_SHIFT) & FFA_VERSION_MAJOR_MASK;
-    minor_vers = vers & FFA_VERSION_MINOR_MASK;
     printk(XENLOG_INFO "ARM FF-A Firmware version %u.%u\n",
            major_vers, minor_vers);
 
+    /*
+     * If the call succeed and the version returned is higher or equal to
+     * the one Xen requested, the version requested by Xen will be the one
+     * used. If the version returned is lower but compatible with Xen, Xen
+     * will use that version instead.
+     * A version with a different major or lower than the minimum version
+     * we support is rejected before.
+     * See https://developer.arm.com/documentation/den0077/e/ chapter 13.2.1
+     */
+    if ( minor_vers > FFA_MY_VERSION_MINOR )
+        ffa_fw_version = FFA_MY_VERSION;
+    else
+        ffa_fw_version = vers;
+
     /*
      * At the moment domains must support the same features used by Xen.
      * TODO: Rework the code to allow domain to use a subset of the
@@ -563,8 +592,6 @@ static bool ffa_probe(void)
         }
     }
 
-    ffa_fw_version = vers;
-
     if ( !ffa_rxtx_init() )
     {
         printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 7c6b06f686fc..045d9c4a0b56 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -35,6 +35,9 @@
 #define MAKE_FFA_VERSION(major, minor)  \
         ((((major) & FFA_VERSION_MAJOR_MASK) << FFA_VERSION_MAJOR_SHIFT) | \
          ((minor) & FFA_VERSION_MINOR_MASK))
+#define FFA_VERSION_MAJOR(vers) (((vers) >> FFA_VERSION_MAJOR_SHIFT) & \
+                                 FFA_VERSION_MAJOR_MASK)
+#define FFA_VERSION_MINOR(vers) ((vers) & FFA_VERSION_MINOR_MASK)
 
 #define FFA_VERSION_1_0         MAKE_FFA_VERSION(1, 0)
 #define FFA_VERSION_1_1         MAKE_FFA_VERSION(1, 1)
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:24 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844898.1260449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKaW-0004Qo-41; Wed, 27 Nov 2024 16:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844898.1260449; Wed, 27 Nov 2024 16: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 1tGKaV-0004Qh-Up; Wed, 27 Nov 2024 16:08:23 +0000
Received: by outflank-mailman (input) for mailman id 844898;
 Wed, 27 Nov 2024 16:08: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKaU-0002q2-Ox
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:22 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d1d6b6ef-acd9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 17:08:20 +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 C55C11477;
 Wed, 27 Nov 2024 08:08:49 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5B51D3F5A1;
 Wed, 27 Nov 2024 08:08: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: d1d6b6ef-acd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQxZDZiNmVmLWFjZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzIzNzAwLjU4ODcwNCwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 04/10] xen/arm: ffa: Fine granular call support
Date: Wed, 27 Nov 2024 17:07:36 +0100
Message-ID: <1b02c9c1df9ff2230e076f25398a5de876f98a51.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Create a bitmap to store which feature is supported or not by the
firmware and use it to filter which calls are done to the firmware.

While there reoder ABI definition by numbers to easily find the min and
max ones.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v3:
- add Jens R-b
Changes in v2:
- rename fw_feat to abi and macros to FFA_ABI to be coherent with the
  abi needed change done before
- rework the macros to be simpler by directly defining MIN and MAX using
  only Function ids
- check that requested function ids do not go over the bitmap size in
  ffa_fw_supports_fid
- add an ASSERT to make sure that we do not try to set bits outside of
  the bitmap
- turn off FF-A if there is not firmware support and adapt the commit
  message to reflect this
- add a compile time check that FFA_ABI_MIN < FFA_ABI_MAX
- remove spurious line removal
- restore proper cleanup of rxtx init in case of error
- reorder ABI by numbers
---
 xen/arch/arm/tee/ffa.c          | 28 +++++++++++++++---------
 xen/arch/arm/tee/ffa_notif.c    |  7 ++++++
 xen/arch/arm/tee/ffa_partinfo.c | 30 +++++++++++++++++++++++++-
 xen/arch/arm/tee/ffa_private.h  | 38 ++++++++++++++++++++++++++++-----
 xen/arch/arm/tee/ffa_rxtx.c     |  4 ++++
 xen/arch/arm/tee/ffa_shm.c      | 12 +++++++++++
 6 files changed, 103 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index c5dcb4fe240c..1b0919041dc1 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -72,7 +72,10 @@
 #include "ffa_private.h"
 
 /* Negotiated FF-A version to use with the SPMC, 0 if not there or supported */
-static uint32_t __ro_after_init ffa_fw_version;
+uint32_t __ro_after_init ffa_fw_version;
+
+/* Features supported by the SPMC or secure world when present */
+DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
 
 struct ffa_fw_abi {
     uint32_t id;
@@ -177,6 +180,13 @@ static void handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     else
         mask = GENMASK_ULL(31, 0);
 
+    if ( !ffa_fw_supports_fid(fid) )
+    {
+        resp.a0 = FFA_ERROR;
+        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
     src_dst = get_user_reg(regs, 1);
     if ( (src_dst >> 16) != ffa_get_vm_id(d) )
     {
@@ -577,19 +587,16 @@ static bool ffa_probe(void)
     else
         ffa_fw_version = vers;
 
-    /*
-     * At the moment domains must support the same features used by Xen.
-     * TODO: Rework the code to allow domain to use a subset of the
-     * features supported.
-     */
     for ( unsigned int i = 0; i < ARRAY_SIZE(ffa_fw_abi_needed); i++ )
     {
-        if ( !ffa_abi_supported(ffa_fw_abi_needed[i].id) )
-        {
+        ASSERT(FFA_ABI_BITNUM(ffa_fw_abi_needed[i].id) < FFA_ABI_BITMAP_SIZE);
+
+        if ( ffa_abi_supported(ffa_fw_abi_needed[i].id) )
+            set_bit(FFA_ABI_BITNUM(ffa_fw_abi_needed[i].id),
+                    ffa_fw_abi_supported);
+        else
             printk(XENLOG_INFO "ARM FF-A Firmware does not support %s\n",
                    ffa_fw_abi_needed[i].name);
-            goto err_no_fw;
-        }
     }
 
     if ( !ffa_rxtx_init() )
@@ -611,6 +618,7 @@ err_rxtx_destroy:
     ffa_rxtx_destroy();
 err_no_fw:
     ffa_fw_version = 0;
+    bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
     printk(XENLOG_WARNING "ARM FF-A No firmware support\n");
 
     return false;
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 541e61d2f606..4b3e46318f4b 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -377,6 +377,13 @@ void ffa_notif_init(void)
     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) &&
+           ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
+           ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
+           ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64)) )
+        return;
+
     arm_smccc_1_2_smc(&arg, &resp);
     if ( resp.a0 != FFA_SUCCESS_32 )
         return;
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 93a03c6bc672..99c48f0e5c05 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -77,7 +77,15 @@ int32_t ffa_handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
      */
     if ( w5 == FFA_PARTITION_INFO_GET_COUNT_FLAG &&
          ctx->guest_vers == FFA_VERSION_1_1 )
-        return ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_size);
+    {
+        if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
+            return ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_size);
+        else
+        {
+            *count = 0;
+            return FFA_RET_OK;
+        }
+    }
     if ( w5 )
         return FFA_RET_INVALID_PARAMETERS;
 
@@ -87,6 +95,18 @@ int32_t ffa_handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
     if ( !spin_trylock(&ctx->rx_lock) )
         return FFA_RET_BUSY;
 
+    if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
+    {
+        if ( ctx->guest_vers == FFA_VERSION_1_0 )
+            *fpi_size = sizeof(struct ffa_partition_info_1_0);
+        else
+            *fpi_size = sizeof(struct ffa_partition_info_1_1);
+
+        *count = 0;
+        ret = FFA_RET_OK;
+        goto out;
+    }
+
     if ( !ctx->page_count || !ctx->rx_is_free )
         goto out;
     spin_lock(&ffa_rx_buffer_lock);
@@ -250,6 +270,11 @@ bool ffa_partinfo_init(void)
     uint32_t count;
     int e;
 
+    if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
+         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) ||
+         !ffa_rx || !ffa_tx )
+        return false;
+
     e = ffa_partition_info_get(0, 0, 0, 0, 0, &count, &fpi_size);
     if ( e )
     {
@@ -313,6 +338,9 @@ int ffa_partinfo_domain_init(struct domain *d)
     unsigned int n;
     int32_t res;
 
+    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) )
+        return 0;
+
     ctx->vm_destroy_bitmap = xzalloc_array(unsigned long, count);
     if ( !ctx->vm_destroy_bitmap )
         return -ENOMEM;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 045d9c4a0b56..85eb61c13464 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -14,6 +14,7 @@
 #include <xen/spinlock.h>
 #include <xen/sched.h>
 #include <xen/time.h>
+#include <xen/bitmap.h>
 
 /* Error codes */
 #define FFA_RET_OK                      0
@@ -201,18 +202,17 @@
 #define FFA_INTERRUPT                   0x84000062U
 #define FFA_VERSION                     0x84000063U
 #define FFA_FEATURES                    0x84000064U
-#define FFA_RX_ACQUIRE                  0x84000084U
 #define FFA_RX_RELEASE                  0x84000065U
 #define FFA_RXTX_MAP_32                 0x84000066U
 #define FFA_RXTX_MAP_64                 0xC4000066U
 #define FFA_RXTX_UNMAP                  0x84000067U
 #define FFA_PARTITION_INFO_GET          0x84000068U
 #define FFA_ID_GET                      0x84000069U
-#define FFA_SPM_ID_GET                  0x84000085U
+#define FFA_MSG_POLL                    0x8400006AU
 #define FFA_MSG_WAIT                    0x8400006BU
 #define FFA_MSG_YIELD                   0x8400006CU
 #define FFA_RUN                         0x8400006DU
-#define FFA_MSG_SEND2                   0x84000086U
+#define FFA_MSG_SEND                    0x8400006EU
 #define FFA_MSG_SEND_DIRECT_REQ_32      0x8400006FU
 #define FFA_MSG_SEND_DIRECT_REQ_64      0xC400006FU
 #define FFA_MSG_SEND_DIRECT_RESP_32     0x84000070U
@@ -230,8 +230,6 @@
 #define FFA_MEM_RECLAIM                 0x84000077U
 #define FFA_MEM_FRAG_RX                 0x8400007AU
 #define FFA_MEM_FRAG_TX                 0x8400007BU
-#define FFA_MSG_SEND                    0x8400006EU
-#define FFA_MSG_POLL                    0x8400006AU
 #define FFA_NOTIFICATION_BITMAP_CREATE  0x8400007DU
 #define FFA_NOTIFICATION_BITMAP_DESTROY 0x8400007EU
 #define FFA_NOTIFICATION_BIND           0x8400007FU
@@ -240,6 +238,25 @@
 #define FFA_NOTIFICATION_GET            0x84000082U
 #define FFA_NOTIFICATION_INFO_GET_32    0x84000083U
 #define FFA_NOTIFICATION_INFO_GET_64    0xC4000083U
+#define FFA_RX_ACQUIRE                  0x84000084U
+#define FFA_SPM_ID_GET                  0x84000085U
+#define FFA_MSG_SEND2                   0x84000086U
+
+/**
+ * Encoding of features supported or not by the fw in a bitmap:
+ * - Function IDs are going from 0x60 to 0xFF
+ * - 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 | \
+                               FFA_ABI_CONV(id))
 
 struct ffa_ctx_notif {
     bool enabled;
@@ -289,6 +306,8 @@ extern void *ffa_rx;
 extern void *ffa_tx;
 extern spinlock_t ffa_rx_buffer_lock;
 extern spinlock_t ffa_tx_buffer_lock;
+extern uint32_t __ro_after_init ffa_fw_version;
+extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
 
 bool ffa_shm_domain_destroy(struct domain *d);
 void ffa_handle_mem_share(struct cpu_user_regs *regs);
@@ -401,4 +420,13 @@ static inline int32_t ffa_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_ABI_MIN > FFA_ABI_MAX);
+
+    if ( FFA_ABI_BITNUM(fid) > FFA_ABI_BITMAP_SIZE)
+        return false;
+    return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
+}
+
 #endif /*__FFA_PRIVATE_H__*/
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index c8bc516a19be..132a7982407b 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -193,6 +193,10 @@ bool ffa_rxtx_init(void)
 {
     int e;
 
+    /* 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;
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 370d83ec5cf8..efa5b67db8e1 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -149,6 +149,9 @@ static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
 static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_hi,
                                uint32_t flags)
 {
+    if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
+        return FFA_RET_NOT_SUPPORTED;
+
     return ffa_simple_call(FFA_MEM_RECLAIM, handle_lo, handle_hi, flags, 0);
 }
 
@@ -467,6 +470,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     uint32_t range_count;
     uint32_t region_offs;
 
+    if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out_set_ret;
+    }
+
     /*
      * We're only accepting memory transaction descriptors via the rx/tx
      * buffer.
@@ -621,6 +630,9 @@ int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
     register_t handle_lo;
     int ret;
 
+    if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
+        return FFA_RET_NOT_SUPPORTED;
+
     spin_lock(&ctx->lock);
     shm = find_shm_mem(ctx, handle);
     if ( shm )
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844902.1260458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKaZ-0004nk-CQ; Wed, 27 Nov 2024 16:08:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844902.1260458; Wed, 27 Nov 2024 16:08: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 1tGKaZ-0004nZ-80; Wed, 27 Nov 2024 16:08:27 +0000
Received: by outflank-mailman (input) for mailman id 844902;
 Wed, 27 Nov 2024 16:08: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKaX-00034d-VR
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:25 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id d2fbc524-acd9-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 17:08:22 +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 AC1A1150C;
 Wed, 27 Nov 2024 08:08:51 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1FC243F5A1;
 Wed, 27 Nov 2024 08:08: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: d2fbc524-acd9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQyZmJjNTI0LWFjZDktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzIzNzAyLjQ4NTYxMywic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 05/10] xen/arm: ffa: Rework partition info get
Date: Wed, 27 Nov 2024 17:07:37 +0100
Message-ID: <05750fccd29cd4527e7a8ee85455a0a1067f6983.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework the partition info get implementation to use the correct size of
structure depending on the version of the protocol and simplifies the
structure copy to use only memcpy and prevent recreating the structure
each time.
The goal here is to have an implementation that will be easier to
maintain in the long term as the specification is only adding fields to
structure with versions to simplify support of several protocol
versions and as such an SPMC implementation in the future could use this
and return a size higher than the one we expect.
The patch is fixing the part_info_get function for this and the
subscriber discovery on probe.

No functional changes expected.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v3:
- add Jens R-b
Changes in v2:
- rebase
---
 xen/arch/arm/tee/ffa.c          |  13 +--
 xen/arch/arm/tee/ffa_partinfo.c | 185 ++++++++++++++++++++------------
 xen/arch/arm/tee/ffa_private.h  |   4 +-
 3 files changed, 118 insertions(+), 84 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 1b0919041dc1..4b283a4de5d0 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -311,8 +311,6 @@ 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;
-    uint32_t fpi_size;
-    uint32_t count;
     int e;
 
     if ( !ctx )
@@ -338,16 +336,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
         e = ffa_handle_rxtx_unmap();
         break;
     case FFA_PARTITION_INFO_GET:
-        e = ffa_handle_partition_info_get(get_user_reg(regs, 1),
-                                          get_user_reg(regs, 2),
-                                          get_user_reg(regs, 3),
-                                          get_user_reg(regs, 4),
-                                          get_user_reg(regs, 5), &count,
-                                          &fpi_size);
-        if ( e )
-            ffa_set_regs_error(regs, e);
-        else
-            ffa_set_regs_success(regs, count, fpi_size);
+        ffa_handle_partition_info_get(regs);
         return true;
     case FFA_RX_RELEASE:
         e = ffa_handle_rx_release();
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 99c48f0e5c05..75a073d090e0 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -33,21 +33,24 @@ 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 w1, uint32_t w2, uint32_t w3,
-                                      uint32_t w4, uint32_t w5, uint32_t *count,
-                                      uint32_t *fpi_size)
+static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
+                                      uint32_t *count, uint32_t *fpi_size)
 {
-    const struct arm_smccc_1_2_regs arg = {
+    struct arm_smccc_1_2_regs arg = {
         .a0 = FFA_PARTITION_INFO_GET,
-        .a1 = w1,
-        .a2 = w2,
-        .a3 = w3,
-        .a4 = w4,
-        .a5 = w5,
+        .a5 = flags,
     };
     struct arm_smccc_1_2_regs resp;
     uint32_t ret;
 
+    if ( uuid )
+    {
+        arg.a1 = uuid[0];
+        arg.a2 = uuid[1];
+        arg.a3 = uuid[2];
+        arg.a4 = uuid[3];
+    }
+
     arm_smccc_1_2_smc(&arg, &resp);
 
     ret = ffa_get_ret_code(&resp);
@@ -60,13 +63,31 @@ static int32_t ffa_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
     return ret;
 }
 
-int32_t ffa_handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
-                                      uint32_t w4, uint32_t w5, uint32_t *count,
-                                      uint32_t *fpi_size)
+void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 {
-    int32_t ret = FFA_RET_DENIED;
+    int32_t ret;
     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),
+    };
+    uint32_t src_size, dst_size;
+    void *dst_buf;
+    uint32_t ffa_sp_count = 0;
+
+    /*
+     * 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.
+     * Otherwise use the size of the highest version we support, here 1.1.
+     */
+    if ( 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);
 
     /*
      * FF-A v1.0 has w5 MBZ while v1.1 allows
@@ -75,90 +96,105 @@ int32_t ffa_handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
      * FFA_PARTITION_INFO_GET_COUNT is only using registers and not the
      * rxtx buffer so do the partition_info_get directly.
      */
-    if ( w5 == FFA_PARTITION_INFO_GET_COUNT_FLAG &&
+    if ( flags == FFA_PARTITION_INFO_GET_COUNT_FLAG &&
          ctx->guest_vers == FFA_VERSION_1_1 )
     {
         if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
-            return ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_size);
+            ret = ffa_partition_info_get(uuid, flags, &ffa_sp_count,
+                                        &src_size);
         else
-        {
-            *count = 0;
-            return FFA_RET_OK;
-        }
-    }
-    if ( w5 )
-        return FFA_RET_INVALID_PARAMETERS;
+            ret = FFA_RET_OK;
 
-    if ( !ffa_rx )
-        return FFA_RET_DENIED;
+        goto out;
+    }
 
-    if ( !spin_trylock(&ctx->rx_lock) )
-        return FFA_RET_BUSY;
+    if ( flags )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
     {
-        if ( ctx->guest_vers == FFA_VERSION_1_0 )
-            *fpi_size = sizeof(struct ffa_partition_info_1_0);
-        else
-            *fpi_size = sizeof(struct ffa_partition_info_1_1);
-
-        *count = 0;
+        /* Just give an empty partition list to the caller */
         ret = FFA_RET_OK;
         goto out;
     }
 
-    if ( !ctx->page_count || !ctx->rx_is_free )
+    if ( !spin_trylock(&ctx->rx_lock) )
+    {
+        ret = FFA_RET_BUSY;
         goto out;
+    }
+
+    dst_buf = ctx->rx;
+
+    if ( !ffa_rx )
+    {
+        ret = FFA_RET_DENIED;
+        goto out_rx_release;
+    }
+
+    if ( !ctx->page_count || !ctx->rx_is_free )
+    {
+        ret = FFA_RET_DENIED;
+        goto out_rx_release;
+    }
+
     spin_lock(&ffa_rx_buffer_lock);
-    ret = ffa_partition_info_get(w1, w2, w3, w4, w5, count, fpi_size);
+
+    ret = ffa_partition_info_get(uuid, 0, &ffa_sp_count, &src_size);
+
     if ( ret )
         goto out_rx_buf_unlock;
+
     /*
      * ffa_partition_info_get() succeeded so we now own the RX buffer we
      * share with the SPMC. We must give it back using ffa_rx_release()
      * once we've copied the content.
      */
 
-    if ( ctx->guest_vers == FFA_VERSION_1_0 )
+    /* we cannot have a size smaller than 1.0 structure */
+    if ( src_size < sizeof(struct ffa_partition_info_1_0) )
     {
-        size_t n;
-        struct ffa_partition_info_1_1 *src = ffa_rx;
-        struct ffa_partition_info_1_0 *dst = ctx->rx;
-
-        if ( ctx->page_count * FFA_PAGE_SIZE < *count * sizeof(*dst) )
-        {
-            ret = FFA_RET_NO_MEMORY;
-            goto out_rx_release;
-        }
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out_rx_hyp_release;
+    }
 
-        for ( n = 0; n < *count; n++ )
-        {
-            dst[n].id = src[n].id;
-            dst[n].execution_context = src[n].execution_context;
-            dst[n].partition_properties = src[n].partition_properties;
-        }
+    if ( ctx->page_count * FFA_PAGE_SIZE < ffa_sp_count * dst_size )
+    {
+        ret = FFA_RET_NO_MEMORY;
+        goto out_rx_hyp_release;
     }
-    else
+
+    if ( ffa_sp_count > 0 )
     {
-        size_t sz = *count * *fpi_size;
+        uint32_t n;
+        void *src_buf = ffa_rx;
 
-        if ( ctx->page_count * FFA_PAGE_SIZE < sz )
+        /* copy the secure partitions info */
+        for ( n = 0; n < ffa_sp_count; n++ )
         {
-            ret = FFA_RET_NO_MEMORY;
-            goto out_rx_release;
+            memcpy(dst_buf, src_buf, dst_size);
+            dst_buf += dst_size;
+            src_buf += src_size;
         }
-
-        memcpy(ctx->rx, ffa_rx, sz);
     }
+
     ctx->rx_is_free = false;
-out_rx_release:
+
+out_rx_hyp_release:
     ffa_rx_release();
 out_rx_buf_unlock:
     spin_unlock(&ffa_rx_buffer_lock);
-out:
+out_rx_release:
     spin_unlock(&ctx->rx_lock);
 
-    return ret;
+out:
+    if ( ret )
+        ffa_set_regs_error(regs, ret);
+    else
+        ffa_set_regs_success(regs, ffa_sp_count, dst_size);
 }
 
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
@@ -221,19 +257,28 @@ static void uninit_subscribers(void)
         XFREE(subscr_vm_destroyed);
 }
 
-static bool init_subscribers(struct ffa_partition_info_1_1 *fpi, uint16_t count)
+static bool init_subscribers(uint16_t count, uint32_t fpi_size)
 {
     uint16_t n;
     uint16_t c_pos;
     uint16_t d_pos;
+    struct ffa_partition_info_1_1 *fpi;
+
+    if ( fpi_size < sizeof(struct ffa_partition_info_1_1) )
+    {
+        printk(XENLOG_ERR "ffa: partition info size invalid: %u\n", fpi_size);
+        return false;
+    }
 
     subscr_vm_created_count = 0;
     subscr_vm_destroyed_count = 0;
     for ( n = 0; n < count; n++ )
     {
-        if ( fpi[n].partition_properties & FFA_PART_PROP_NOTIF_CREATED )
+        fpi = ffa_rx + n * fpi_size;
+
+        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
             subscr_vm_created_count++;
-        if ( fpi[n].partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
+        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
             subscr_vm_destroyed_count++;
     }
 
@@ -252,10 +297,12 @@ static bool init_subscribers(struct ffa_partition_info_1_1 *fpi, uint16_t count)
 
     for ( c_pos = 0, d_pos = 0, n = 0; n < count; n++ )
     {
-        if ( fpi[n].partition_properties & FFA_PART_PROP_NOTIF_CREATED )
-            subscr_vm_created[c_pos++] = fpi[n].id;
-        if ( fpi[n].partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
-            subscr_vm_destroyed[d_pos++] = fpi[n].id;
+        fpi = ffa_rx + n * fpi_size;
+
+        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
+            subscr_vm_created[c_pos++] = fpi->id;
+        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
+            subscr_vm_destroyed[d_pos++] = fpi->id;
     }
 
     return true;
@@ -275,7 +322,7 @@ bool ffa_partinfo_init(void)
          !ffa_rx || !ffa_tx )
         return false;
 
-    e = ffa_partition_info_get(0, 0, 0, 0, 0, &count, &fpi_size);
+    e = ffa_partition_info_get(NULL, 0, &count, &fpi_size);
     if ( e )
     {
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
@@ -288,7 +335,7 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    ret = init_subscribers(ffa_rx, count);
+    ret = init_subscribers(count, fpi_size);
 
 out:
     ffa_rx_release();
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 85eb61c13464..e5bc73f9039e 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -316,9 +316,7 @@ int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
 bool ffa_partinfo_init(void);
 int ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
-int32_t ffa_handle_partition_info_get(uint32_t w1, uint32_t w2, uint32_t w3,
-                                      uint32_t w4, uint32_t w5, uint32_t *count,
-                                      uint32_t *fpi_size);
+void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
 bool ffa_rxtx_init(void);
 void ffa_rxtx_destroy(void);
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844903.1260462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKaZ-0004rX-O3; Wed, 27 Nov 2024 16:08:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844903.1260462; Wed, 27 Nov 2024 16:08: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 1tGKaZ-0004qM-Im; Wed, 27 Nov 2024 16:08:27 +0000
Received: by outflank-mailman (input) for mailman id 844903;
 Wed, 27 Nov 2024 16:08: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKaY-0002q2-5L
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:26 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d3ff74cd-acd9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 17:08: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 6F1A31477;
 Wed, 27 Nov 2024 08:08:53 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 056973F5A1;
 Wed, 27 Nov 2024 08:08: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: d3ff74cd-acd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQzZmY3NGNkLWFjZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzIzNzA0LjE5Nzk3Nywic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 06/10] xen/arm: ffa: Use bit 15 convention for SPs
Date: Wed, 27 Nov 2024 17:07:38 +0100
Message-ID: <0b987183498242587f3795e870a7395b132ec9ee.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Make use and required to have bit 15 convention respected by secure
world (having bit 15 of IDs set for secure endpoints and non-set for
non-secure ones).
If any secure partition has an ID with bit 15 not set, it will not be
possible to contact or detect them.
Print an error log during probe for each secure endpoint detected with
bit 15 not set.

We are switching to this convention because Xen is currently not using
VMIDs with bit 15 set so we are sure that no VM will have it set (this
is ensured by BUILD_BUG_ON in case this becomes false in the future).
It is allowing to easily distinguish between secure and non-secure
endpoints, preventing the need to store a list of secure endpoint IDs in
Xen.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v3:
- rename real_num to n_limit
- remove log of skipped SP due to invalid ID as it is already printed
Changes in v2:
- rebase
---
 xen/arch/arm/tee/ffa.c          | 22 ++++++++++----
 xen/arch/arm/tee/ffa_partinfo.c | 51 +++++++++++++++++++++++++--------
 xen/arch/arm/tee/ffa_private.h  |  7 +++++
 xen/arch/arm/tee/ffa_shm.c      | 12 +++++++-
 4 files changed, 74 insertions(+), 18 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 4b283a4de5d0..0026ac9134ad 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -195,6 +195,14 @@ static void handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
         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;
+        goto out;
+    }
+
     arg.a1 = src_dst;
     arg.a2 = get_user_reg(regs, 2) & mask;
     arg.a3 = get_user_reg(regs, 3) & mask;
@@ -391,11 +399,15 @@ static int ffa_domain_init(struct domain *d)
 
     if ( !ffa_fw_version )
         return -ENODEV;
-     /*
-      * We can't use that last possible domain ID or ffa_get_vm_id() would
-      * cause an overflow.
-      */
-    if ( d->domain_id >= UINT16_MAX)
+    /*
+     * We are using the domain_id + 1 as the FF-A ID for VMs as FF-A ID 0 is
+     * reserved for the hypervisor and we only support secure endpoints using
+     * FF-A IDs with BIT 15 set to 1 so make sure those are not used by Xen.
+     */
+    BUILD_BUG_ON(DOMID_FIRST_RESERVED >= UINT16_MAX);
+    BUILD_BUG_ON((DOMID_MASK & BIT(15, U)) != 0);
+
+    if ( d->domain_id >= DOMID_FIRST_RESERVED )
         return -ERANGE;
 
     ctx = xzalloc(struct ffa_ctx);
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 75a073d090e0..74324e1d9d3f 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -169,14 +169,23 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 
     if ( ffa_sp_count > 0 )
     {
-        uint32_t n;
+        uint32_t n, n_limit = ffa_sp_count;
         void *src_buf = ffa_rx;
 
         /* copy the secure partitions info */
-        for ( n = 0; n < ffa_sp_count; n++ )
+        for ( n = 0; n < n_limit; n++ )
         {
-            memcpy(dst_buf, src_buf, dst_size);
-            dst_buf += dst_size;
+            struct ffa_partition_info_1_1 *fpi = src_buf;
+
+            /* filter out SP not following bit 15 convention if any */
+            if ( FFA_ID_IS_SECURE(fpi->id) )
+            {
+                memcpy(dst_buf, src_buf, dst_size);
+                dst_buf += dst_size;
+            }
+            else
+                ffa_sp_count--;
+
             src_buf += src_size;
         }
     }
@@ -276,10 +285,25 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
     {
         fpi = ffa_rx + n * fpi_size;
 
-        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
-            subscr_vm_created_count++;
-        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
-            subscr_vm_destroyed_count++;
+        /*
+         * We need to have secure partitions using bit 15 set convention for
+         * secure partition IDs.
+         * Inform the user with a log and discard giving created or destroy
+         * event to those IDs.
+         */
+        if ( !FFA_ID_IS_SECURE(fpi->id) )
+        {
+            printk(XENLOG_ERR "ffa: Firmware is not using bit 15 convention for IDs !!\n"
+                              "ffa: Secure partition with id 0x%04x cannot be used\n",
+                              fpi->id);
+        }
+        else
+        {
+            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
+                subscr_vm_created_count++;
+            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
+                subscr_vm_destroyed_count++;
+        }
     }
 
     if ( subscr_vm_created_count )
@@ -299,10 +323,13 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
     {
         fpi = ffa_rx + n * fpi_size;
 
-        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
-            subscr_vm_created[c_pos++] = fpi->id;
-        if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
-            subscr_vm_destroyed[d_pos++] = fpi->id;
+        if ( FFA_ID_IS_SECURE(fpi->id) )
+        {
+            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
+                subscr_vm_created[c_pos++] = fpi->id;
+            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
+                subscr_vm_destroyed[d_pos++] = fpi->id;
+        }
     }
 
     return true;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index e5bc73f9039e..afe69b43dbef 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -108,6 +108,13 @@
  */
 #define FFA_CTX_TEARDOWN_DELAY          SECONDS(1)
 
+/*
+ * We rely on the convention suggested but not mandated by the FF-A
+ * specification that secure world endpoint identifiers have the bit 15
+ * set and normal world have it set to 0.
+ */
+#define FFA_ID_IS_SECURE(id)    ((id) & BIT(15, U))
+
 /* FF-A-1.1-REL0 section 10.9.2 Memory region handle, page 167 */
 #define FFA_HANDLE_HYP_FLAG             BIT(63, ULL)
 #define FFA_HANDLE_INVALID              0xffffffffffffffffULL
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index efa5b67db8e1..29675f9ba3f7 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -469,6 +469,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     int ret = FFA_RET_DENIED;
     uint32_t range_count;
     uint32_t region_offs;
+    uint16_t dst_id;
 
     if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
     {
@@ -537,6 +538,15 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
 
     mem_access = ctx->tx + trans.mem_access_offs;
+
+    dst_id = ACCESS_ONCE(mem_access->access_perm.endpoint_id);
+    if ( !FFA_ID_IS_SECURE(dst_id) )
+    {
+        /* we do not support sharing with VMs */
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out_unlock;
+    }
+
     if ( ACCESS_ONCE(mem_access->access_perm.perm) != FFA_MEM_ACC_RW )
     {
         ret = FFA_RET_NOT_SUPPORTED;
@@ -567,7 +577,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
     shm->sender_id = trans.sender_id;
-    shm->ep_id = ACCESS_ONCE(mem_access->access_perm.endpoint_id);
+    shm->ep_id = dst_id;
 
     /*
      * Check that the Composite memory region descriptor fits.
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844904.1260477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKab-0005JX-Dh; Wed, 27 Nov 2024 16:08:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844904.1260477; Wed, 27 Nov 2024 16:08: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 1tGKab-0005Id-5u; Wed, 27 Nov 2024 16:08:29 +0000
Received: by outflank-mailman (input) for mailman id 844904;
 Wed, 27 Nov 2024 16:08: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKaa-0002q2-AG
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d50566b6-acd9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 17:08:25 +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 23A8F244B;
 Wed, 27 Nov 2024 08:08:55 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BC0AD3F5A1;
 Wed, 27 Nov 2024 08:08: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: d50566b6-acd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQ1MDU2NmI2LWFjZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzIzNzA1Ljk2MzI5NCwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 07/10] xen/arm: ffa: Transmit RXTX buffers to the SPMC
Date: Wed, 27 Nov 2024 17:07:39 +0100
Message-ID: <56217f2f7b4c29a5f84fb02de3f4cbb8342c5560.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When an RXTX buffer is mapped by a VM transmit it to the SPMC when it
supports RX_ACQUIRE.
As a consequence of that, we must acquire the RX buffer of a VM from the
SPMC when we want to use it:
- create a generic acquire and release function to get the rx buffer of
  a VM which gets it from the SPMC when supported
- rename the rx_acquire to hyp_rx_acquire to remove confusion
- rework the rx_lock to only lock access to rx_is_free and only allow
  usage of the rx buffer to one who managed to acquire it, thus removing
  the trylock and returning busy if rx_is_free is false

As part of this change move some structure definition to ffa_private
from ffa_shm as those are need for the MAP call with the SPMC.

While there also fix ffa_handle_rxtx_map which was testing the wrong
variable after getting the page for the rx buffer, testing tx_pg
instead of rx_pg.

Fixes: be75f686eb03 ("xen/arm: ffa: separate rxtx buffer routines")

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v3:
- add a comment to explain why we only release the RX buffer if an error
  occurs during partition_info_get
- fix the BUILD_BUG_ON check for TX buffer size in rxtx_map (coding
  style and use PAGE_SIZE * NUM_PAGE)
- remove invalid 3 argument to ffa_rxtx_map when forwarding the call to
  the SPMC
- fix bug in ffa_handle_rxtx_map testing wrong variable
Changes in v2:
- unmap VM rxtx buffer in SPMC on unmap call or on VM destroy
- rework the unmap call to the SPMC to properly pass the VM ID
---
 xen/arch/arm/tee/ffa.c          |   2 +-
 xen/arch/arm/tee/ffa_partinfo.c |  36 ++++---
 xen/arch/arm/tee/ffa_private.h  |  22 ++++-
 xen/arch/arm/tee/ffa_rxtx.c     | 161 ++++++++++++++++++++++++++------
 xen/arch/arm/tee/ffa_shm.c      |  15 ---
 5 files changed, 170 insertions(+), 66 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 0026ac9134ad..bc2722d53fd7 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -347,7 +347,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_handle_rx_release();
+        e = ffa_rx_release(d);
         break;
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 74324e1d9d3f..939ed49dd3da 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -121,11 +121,9 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         goto out;
     }
 
-    if ( !spin_trylock(&ctx->rx_lock) )
-    {
-        ret = FFA_RET_BUSY;
+    ret = ffa_rx_acquire(d);
+    if ( ret != FFA_RET_OK )
         goto out;
-    }
 
     dst_buf = ctx->rx;
 
@@ -135,22 +133,16 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         goto out_rx_release;
     }
 
-    if ( !ctx->page_count || !ctx->rx_is_free )
-    {
-        ret = FFA_RET_DENIED;
-        goto out_rx_release;
-    }
-
     spin_lock(&ffa_rx_buffer_lock);
 
     ret = ffa_partition_info_get(uuid, 0, &ffa_sp_count, &src_size);
 
     if ( ret )
-        goto out_rx_buf_unlock;
+        goto out_rx_hyp_unlock;
 
     /*
      * ffa_partition_info_get() succeeded so we now own the RX buffer we
-     * share with the SPMC. We must give it back using ffa_rx_release()
+     * share with the SPMC. We must give it back using ffa_hyp_rx_release()
      * once we've copied the content.
      */
 
@@ -190,15 +182,20 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         }
     }
 
-    ctx->rx_is_free = false;
-
 out_rx_hyp_release:
-    ffa_rx_release();
-out_rx_buf_unlock:
+    ffa_hyp_rx_release();
+out_rx_hyp_unlock:
     spin_unlock(&ffa_rx_buffer_lock);
 out_rx_release:
-    spin_unlock(&ctx->rx_lock);
-
+    /*
+     * The calling VM RX buffer only contains data to be used by the VM if the
+     * call was successfull, in which case the VM has to release the buffer
+     * once it has used the data.
+     * If something went wrong during the call, we have to release the RX
+     * buffer back to the SPMC as the VM will not do it.
+     */
+    if ( ret != FFA_RET_OK )
+        ffa_rx_release(d);
 out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
@@ -365,8 +362,7 @@ bool ffa_partinfo_init(void)
     ret = init_subscribers(count, fpi_size);
 
 out:
-    ffa_rx_release();
-
+    ffa_hyp_rx_release();
     return ret;
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index afe69b43dbef..9adfe687c3c9 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -265,6 +265,21 @@
 #define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_ABI_MIN) << 1 | \
                                FFA_ABI_CONV(id))
 
+/* Constituent memory region descriptor */
+struct ffa_address_range {
+    uint64_t address;
+    uint32_t page_count;
+    uint32_t reserved;
+};
+
+/* Composite memory region descriptor */
+struct ffa_mem_region {
+    uint32_t total_page_count;
+    uint32_t address_range_count;
+    uint64_t reserved;
+    struct ffa_address_range address_range_array[];
+};
+
 struct ffa_ctx_notif {
     bool enabled;
 
@@ -292,7 +307,7 @@ struct ffa_ctx {
     struct ffa_ctx_notif notif;
     /*
      * tx_lock is used to serialize access to tx
-     * rx_lock is used to serialize access to rx
+     * rx_lock is used to serialize access to rx_is_free
      * lock is used for the rest in this struct
      */
     spinlock_t tx_lock;
@@ -331,7 +346,8 @@ void ffa_rxtx_domain_destroy(struct domain *d);
 uint32_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_rx_release(void);
+int32_t ffa_rx_acquire(struct domain *d);
+int32_t ffa_rx_release(struct domain *d);
 
 void ffa_notif_init(void);
 void ffa_notif_init_interrupt(void);
@@ -420,7 +436,7 @@ static inline int32_t ffa_simple_call(uint32_t fid, register_t a1,
     return ffa_get_ret_code(&resp);
 }
 
-static inline int32_t ffa_rx_release(void)
+static inline int32_t ffa_hyp_rx_release(void)
 {
     return ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
 }
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 132a7982407b..e1cab7fa5e46 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -30,6 +30,17 @@ struct ffa_endpoint_rxtx_descriptor_1_1 {
     uint32_t tx_region_offs;
 };
 
+static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
+                            uint32_t page_count)
+{
+    return ffa_simple_call(FFA_RXTX_MAP_64, tx_addr, rx_addr, page_count, 0);
+}
+
+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,
 			     register_t rx_addr, uint32_t page_count)
 {
@@ -42,6 +53,9 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
     void *rx;
     void *tx;
 
+    /* The code is considering that we only get one page for now */
+    BUILD_BUG_ON(FFA_MAX_RXTX_PAGE_COUNT != 1);
+
     if ( !smccc_is_conv_64(fid) )
     {
         /*
@@ -72,7 +86,7 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         goto err_put_tx_pg;
 
     rx_pg = get_page_from_gfn(d, gfn_x(gaddr_to_gfn(rx_addr)), &t, P2M_ALLOC);
-    if ( !tx_pg )
+    if ( !rx_pg )
         goto err_put_tx_pg;
 
     /* Only normal RW RAM for now */
@@ -87,6 +101,66 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
     if ( !rx )
         goto err_unmap_tx;
 
+    /*
+     * Transmit the RX/TX buffer information to the SPM if acquire is supported
+     * as the spec says that if not there is not need to acquire/release/map
+     * rxtx buffers from the SPMC
+     */
+    if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
+    {
+        struct ffa_endpoint_rxtx_descriptor_1_1 *rxtx_desc;
+        struct ffa_mem_region *mem_reg;
+
+        /* All must fit in our TX buffer */
+        BUILD_BUG_ON(sizeof(*rxtx_desc) + sizeof(*mem_reg) * 2 +
+                     sizeof(struct ffa_address_range) * 2 >
+                     FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
+
+        spin_lock(&ffa_tx_buffer_lock);
+        rxtx_desc = ffa_tx;
+
+        /*
+         * We have only one page for each so we pack everything:
+         * - rx region descriptor
+         * - rx region range
+         * - tx region descriptor
+         * - tx region range
+         */
+        rxtx_desc->sender_id = ffa_get_vm_id(d);
+        rxtx_desc->reserved = 0;
+        rxtx_desc->rx_region_offs = sizeof(*rxtx_desc);
+        rxtx_desc->tx_region_offs = sizeof(*rxtx_desc) +
+                                    offsetof(struct ffa_mem_region,
+                                             address_range_array[1]);
+
+        /* rx buffer */
+        mem_reg = ffa_tx + sizeof(*rxtx_desc);
+        mem_reg->total_page_count = 1;
+        mem_reg->address_range_count = 1;
+        mem_reg->reserved = 0;
+
+        mem_reg->address_range_array[0].address = page_to_maddr(rx_pg);
+        mem_reg->address_range_array[0].page_count = 1;
+        mem_reg->address_range_array[0].reserved = 0;
+
+        /* tx buffer */
+        mem_reg = ffa_tx + rxtx_desc->tx_region_offs;
+        mem_reg->total_page_count = 1;
+        mem_reg->address_range_count = 1;
+        mem_reg->reserved = 0;
+
+        mem_reg->address_range_array[0].address = page_to_maddr(tx_pg);
+        mem_reg->address_range_array[0].page_count = 1;
+        mem_reg->address_range_array[0].reserved = 0;
+
+        ret = ffa_rxtx_map(0, 0, 0);
+
+        spin_unlock(&ffa_tx_buffer_lock);
+
+        if ( ret != FFA_RET_OK )
+            goto err_unmap_rx;
+    }
+
     ctx->rx = rx;
     ctx->tx = tx;
     ctx->rx_pg = rx_pg;
@@ -95,6 +169,8 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
     ctx->rx_is_free = true;
     return FFA_RET_OK;
 
+err_unmap_rx:
+    unmap_domain_page_global(rx);
 err_unmap_tx:
     unmap_domain_page_global(tx);
 err_put_rx_pg:
@@ -105,8 +181,22 @@ err_put_tx_pg:
     return ret;
 }
 
-static void rxtx_unmap(struct ffa_ctx *ctx)
+static uint32_t  rxtx_unmap(struct domain *d)
 {
+    struct ffa_ctx *ctx = d->arch.tee;
+
+    if ( !ctx->page_count )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    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;
+    }
+
     unmap_domain_page_global(ctx->rx);
     unmap_domain_page_global(ctx->tx);
     put_page(ctx->rx_pg);
@@ -117,32 +207,63 @@ static void rxtx_unmap(struct ffa_ctx *ctx)
     ctx->tx_pg = NULL;
     ctx->page_count = 0;
     ctx->rx_is_free = false;
+
+    return FFA_RET_OK;
 }
 
 uint32_t ffa_handle_rxtx_unmap(void)
 {
-    struct domain *d = current->domain;
+    return rxtx_unmap(current->domain);
+}
+
+int32_t ffa_rx_acquire(struct domain *d)
+{
+    int32_t ret = FFA_RET_OK;
     struct ffa_ctx *ctx = d->arch.tee;
 
-    if ( !ctx->rx )
-        return FFA_RET_INVALID_PARAMETERS;
+    spin_lock(&ctx->rx_lock);
 
-    rxtx_unmap(ctx);
+    if ( !ctx->page_count )
+    {
+        ret = FFA_RET_DENIED;
+        goto out;
+    }
 
-    return FFA_RET_OK;
+    if ( !ctx->rx_is_free )
+    {
+        ret = FFA_RET_BUSY;
+        goto out;
+    }
+
+    if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
+    {
+        ret = ffa_simple_call(FFA_RX_ACQUIRE, ffa_get_vm_id(d), 0, 0, 0);
+        if ( ret != FFA_RET_OK )
+            goto out;
+    }
+    ctx->rx_is_free = false;
+out:
+    spin_unlock(&ctx->rx_lock);
+
+    return ret;
 }
 
-int32_t ffa_handle_rx_release(void)
+int32_t ffa_rx_release(struct domain *d)
 {
     int32_t ret = FFA_RET_DENIED;
-    struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
 
-    if ( !spin_trylock(&ctx->rx_lock) )
-        return FFA_RET_BUSY;
+    spin_lock(&ctx->rx_lock);
 
     if ( !ctx->page_count || ctx->rx_is_free )
         goto out;
+
+    if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
+    {
+        ret = ffa_simple_call(FFA_RX_RELEASE, ffa_get_vm_id(d), 0, 0, 0);
+        if ( ret != FFA_RET_OK )
+            goto out;
+    }
     ret = FFA_RET_OK;
     ctx->rx_is_free = true;
 out:
@@ -151,23 +272,9 @@ out:
     return ret;
 }
 
-static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
-                            uint32_t page_count)
-{
-    return ffa_simple_call(FFA_RXTX_MAP_64, tx_addr, rx_addr, page_count, 0);
-}
-
-static int32_t ffa_rxtx_unmap(void)
-{
-    return ffa_simple_call(FFA_RXTX_UNMAP, 0, 0, 0, 0);
-}
-
 void ffa_rxtx_domain_destroy(struct domain *d)
 {
-    struct ffa_ctx *ctx = d->arch.tee;
-
-    if ( ctx->rx )
-        rxtx_unmap(ctx);
+    rxtx_unmap(d);
 }
 
 void ffa_rxtx_destroy(void)
@@ -186,7 +293,7 @@ void ffa_rxtx_destroy(void)
     }
 
     if ( need_unmap )
-        ffa_rxtx_unmap();
+        ffa_rxtx_unmap(0);
 }
 
 bool ffa_rxtx_init(void)
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 29675f9ba3f7..d628c1b70609 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -16,21 +16,6 @@
 
 #include "ffa_private.h"
 
-/* Constituent memory region descriptor */
-struct ffa_address_range {
-    uint64_t address;
-    uint32_t page_count;
-    uint32_t reserved;
-};
-
-/* Composite memory region descriptor */
-struct ffa_mem_region {
-    uint32_t total_page_count;
-    uint32_t address_range_count;
-    uint64_t reserved;
-    struct ffa_address_range address_range_array[];
-};
-
 /* Memory access permissions descriptor */
 struct ffa_mem_access_perm {
     uint16_t endpoint_id;
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:08:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:08:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844909.1260489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKad-0005nF-T9; Wed, 27 Nov 2024 16:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844909.1260489; Wed, 27 Nov 2024 16:08: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 1tGKad-0005lv-J4; Wed, 27 Nov 2024 16:08:31 +0000
Received: by outflank-mailman (input) for mailman id 844909;
 Wed, 27 Nov 2024 16:08: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKac-0002q2-1M
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:30 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d6619fab-acd9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 17:08: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 90B2E1477;
 Wed, 27 Nov 2024 08:08:57 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A39BD3F5A1;
 Wed, 27 Nov 2024 08:08: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: d6619fab-acd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQ2NjE5ZmFiLWFjZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzIzNzA4LjA1NjM4Nywic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 08/10] xen/arm: ffa: move message function into ffa_msg.c
Date: Wed, 27 Nov 2024 17:07:40 +0100
Message-ID: <c189c1ba68832567617eafde30da1471df4e7e01.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move the direct message handling function in its own source file and
rename it to have a ffa_ prefix.
This is a preparation to add support for indirect messages which will
go into this newly created source file.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v3:
- add Jens R-b
Changes in v2:
- rebase
---
 xen/arch/arm/tee/Makefile      |  1 +
 xen/arch/arm/tee/ffa.c         | 69 +----------------------------
 xen/arch/arm/tee/ffa_msg.c     | 80 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/tee/ffa_private.h |  2 +
 4 files changed, 84 insertions(+), 68 deletions(-)
 create mode 100644 xen/arch/arm/tee/ffa_msg.c

diff --git a/xen/arch/arm/tee/Makefile b/xen/arch/arm/tee/Makefile
index 7c0f46f7f446..0848c833fec3 100644
--- a/xen/arch/arm/tee/Makefile
+++ b/xen/arch/arm/tee/Makefile
@@ -3,5 +3,6 @@ obj-$(CONFIG_FFA) += ffa_shm.o
 obj-$(CONFIG_FFA) += ffa_partinfo.o
 obj-$(CONFIG_FFA) += ffa_rxtx.o
 obj-$(CONFIG_FFA) += ffa_notif.o
+obj-$(CONFIG_FFA) += ffa_msg.o
 obj-y += tee.o
 obj-$(CONFIG_OPTEE) += optee.o
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index bc2722d53fd7..8488fe6af9c0 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -167,73 +167,6 @@ static void handle_version(struct cpu_user_regs *regs)
     ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
 }
 
-static void handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
-{
-    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) )
-        mask = GENMASK_ULL(63, 0);
-    else
-        mask = GENMASK_ULL(31, 0);
-
-    if ( !ffa_fw_supports_fid(fid) )
-    {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_NOT_SUPPORTED;
-        goto out;
-    }
-
-    src_dst = get_user_reg(regs, 1);
-    if ( (src_dst >> 16) != ffa_get_vm_id(d) )
-    {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = 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;
-        goto out;
-    }
-
-    arg.a1 = src_dst;
-    arg.a2 = get_user_reg(regs, 2) & mask;
-    arg.a3 = get_user_reg(regs, 3) & mask;
-    arg.a4 = get_user_reg(regs, 4) & mask;
-    arg.a5 = get_user_reg(regs, 5) & mask;
-    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;
-    }
-
-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);
-}
-
 static void handle_features(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
@@ -351,7 +284,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
         break;
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
-        handle_msg_send_direct_req(regs, fid);
+        ffa_handle_msg_send_direct_req(regs, fid);
         return true;
     case FFA_MEM_SHARE_32:
     case FFA_MEM_SHARE_64:
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
new file mode 100644
index 000000000000..ae263e54890e
--- /dev/null
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -0,0 +1,80 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2024  Linaro Limited
+ */
+
+#include <xen/const.h>
+#include <xen/sizes.h>
+#include <xen/types.h>
+
+#include <asm/smccc.h>
+#include <asm/regs.h>
+
+#include "ffa_private.h"
+
+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 arm_smccc_1_2_regs resp = { };
+    struct domain *d = current->domain;
+    uint32_t src_dst;
+    uint64_t mask;
+
+    if ( smccc_is_conv_64(fid) )
+        mask = GENMASK_ULL(63, 0);
+    else
+        mask = GENMASK_ULL(31, 0);
+
+    if ( !ffa_fw_supports_fid(fid) )
+    {
+        resp.a0 = FFA_ERROR;
+        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    src_dst = get_user_reg(regs, 1);
+    if ( (src_dst >> 16) != ffa_get_vm_id(d) )
+    {
+        resp.a0 = FFA_ERROR;
+        resp.a2 = 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;
+        goto out;
+    }
+
+    arg.a1 = src_dst;
+    arg.a2 = get_user_reg(regs, 2) & mask;
+    arg.a3 = get_user_reg(regs, 3) & mask;
+    arg.a4 = get_user_reg(regs, 4) & mask;
+    arg.a5 = get_user_reg(regs, 5) & mask;
+    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;
+    }
+
+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);
+}
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 9adfe687c3c9..02162e0ee4c7 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -360,6 +360,8 @@ 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);
 
+void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid);
+
 static inline uint16_t ffa_get_vm_id(const struct domain *d)
 {
     /* +1 since 0 is reserved for the hypervisor in FF-A */
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:10:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:10:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844949.1260499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKca-0000mJ-AS; Wed, 27 Nov 2024 16:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844949.1260499; Wed, 27 Nov 2024 16: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 1tGKca-0000mC-3t; Wed, 27 Nov 2024 16:10:32 +0000
Received: by outflank-mailman (input) for mailman id 844949;
 Wed, 27 Nov 2024 16:10: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKae-0002q2-M2
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:32 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d7f30500-acd9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 17:08: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 0212A150C;
 Wed, 27 Nov 2024 08:09:00 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DDF273F5A1;
 Wed, 27 Nov 2024 08:08: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: d7f30500-acd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQ3ZjMwNTAwLWFjZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzIzNzEwLjg1OTU1NCwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 09/10] xen/arm: ffa: Remove per VM notif_enabled
Date: Wed, 27 Nov 2024 17:07:41 +0100
Message-ID: <8e7cf913eeba955f8ed6bced1cafdf264dcb4318.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Remove the per VM flag to store if notifications are enabled or not as
the only case where they are not, if notifications are enabled globally,
will make the VM creation fail.
Also use the opportunity to always give the notifications interrupts IDs
to VM. If the firmware does not support notifications, there won't be
any generated and setting one will give back a NOT_SUPPORTED.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v3:
- Add a comment explaining why it is ok to call bitmap destroy even if
  bitmap create failed.
Changes in v2:
- rebase
---
 xen/arch/arm/tee/ffa.c         | 17 +++--------------
 xen/arch/arm/tee/ffa_notif.c   | 14 +++++---------
 xen/arch/arm/tee/ffa_private.h |  2 --
 3 files changed, 8 insertions(+), 25 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 8488fe6af9c0..04d2403415fe 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -169,8 +169,6 @@ static void handle_version(struct cpu_user_regs *regs)
 
 static void handle_features(struct cpu_user_regs *regs)
 {
-    struct domain *d = current->domain;
-    struct ffa_ctx *ctx = d->arch.tee;
     uint32_t a1 = get_user_reg(regs, 1);
     unsigned int n;
 
@@ -218,16 +216,10 @@ static void handle_features(struct cpu_user_regs *regs)
         ffa_set_regs_success(regs, 0, 0);
         break;
     case FFA_FEATURE_NOTIF_PEND_INTR:
-        if ( ctx->notif.enabled )
-            ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
-        else
-            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
         break;
     case FFA_FEATURE_SCHEDULE_RECV_INTR:
-        if ( ctx->notif.enabled )
-            ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0);
-        else
-            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0);
         break;
 
     case FFA_NOTIFICATION_BIND:
@@ -236,10 +228,7 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_NOTIFICATION_SET:
     case FFA_NOTIFICATION_INFO_GET_32:
     case FFA_NOTIFICATION_INFO_GET_64:
-        if ( ctx->notif.enabled )
-            ffa_set_regs_success(regs, 0, 0);
-        else
-            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        ffa_set_regs_success(regs, 0, 0);
         break;
     default:
         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 4b3e46318f4b..21b9e78f6399 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -405,7 +405,6 @@ void ffa_notif_init(void)
 
 int ffa_notif_domain_init(struct domain *d)
 {
-    struct ffa_ctx *ctx = d->arch.tee;
     int32_t res;
 
     if ( !notif_enabled )
@@ -415,18 +414,15 @@ int ffa_notif_domain_init(struct domain *d)
     if ( res )
         return -ENOMEM;
 
-    ctx->notif.enabled = true;
-
     return 0;
 }
 
 void ffa_notif_domain_destroy(struct domain *d)
 {
-    struct ffa_ctx *ctx = d->arch.tee;
-
-    if ( ctx->notif.enabled )
-    {
+    /*
+     * Call bitmap_destroy even if bitmap create failed as the SPMC will
+     * return a DENIED error that we will ignore.
+     */
+    if ( notif_enabled )
         ffa_notification_bitmap_destroy(ffa_get_vm_id(d));
-        ctx->notif.enabled = false;
-    }
 }
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 02162e0ee4c7..973ee55be09b 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -281,8 +281,6 @@ struct ffa_mem_region {
 };
 
 struct ffa_ctx_notif {
-    bool enabled;
-
     /*
      * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
      * pending global notifications.
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 16:10:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 16:10:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.844973.1260508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGKcd-00015b-HM; Wed, 27 Nov 2024 16:10:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 844973.1260508; Wed, 27 Nov 2024 16:10: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 1tGKcd-00015U-EG; Wed, 27 Nov 2024 16:10:35 +0000
Received: by outflank-mailman (input) for mailman id 844973;
 Wed, 27 Nov 2024 16:10: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=8BRf=SW=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1tGKag-0002q2-Hi
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 16:08:34 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d904da3d-acd9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 17:08: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 C15561477;
 Wed, 27 Nov 2024 08:09:01 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.58.181])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5C8BD3F5A1;
 Wed, 27 Nov 2024 08:08: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: d904da3d-acd9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6ImQ5MDRkYTNkLWFjZDktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzIzNzEyLjY3Mjg4NSwic2VuZGVyIjoiYmVydHJhbmQubWFycXVpc0Bhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
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 v3 10/10] xen/arm: ffa: Add indirect message support
Date: Wed, 27 Nov 2024 17:07:42 +0100
Message-ID: <7b3dc2c98d01478d5ab03780932844ea980b7ae0.1732702210.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <cover.1732702210.git.bertrand.marquis@arm.com>
References: <cover.1732702210.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support for FFA_MSG_SEND2 to send indirect messages from a VM to a
secure partition.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v3:
- in ffa_handle_msg_send2 use ffa_get_vm_id instead of a local variable
  to make sure that we use the right VM ID as source without having a
  potential solution for the VM to give a wrong identity.
Changes in v2:
- rebase
---
 xen/arch/arm/tee/ffa.c         |  5 ++++
 xen/arch/arm/tee/ffa_msg.c     | 50 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/tee/ffa_private.h |  1 +
 3 files changed, 56 insertions(+)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 04d2403415fe..87775ed88ffd 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -101,6 +101,7 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_MEM_RECLAIM),
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_64),
+    FW_ABI(FFA_MSG_SEND2),
 };
 
 /*
@@ -195,6 +196,7 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_PARTITION_INFO_GET:
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
+    case FFA_MSG_SEND2:
         ffa_set_regs_success(regs, 0, 0);
         break;
     case FFA_MEM_SHARE_64:
@@ -275,6 +277,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_MSG_SEND2:
+        e = ffa_handle_msg_send2(regs);
+        break;
     case FFA_MEM_SHARE_32:
     case FFA_MEM_SHARE_64:
         ffa_handle_mem_share(regs);
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index ae263e54890e..ee594e737fc7 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -12,6 +12,15 @@
 
 #include "ffa_private.h"
 
+/* Encoding of partition message in RX/TX buffer */
+struct ffa_part_msg_rxtx {
+    uint32_t flags;
+    uint32_t reserved;
+    uint32_t msg_offset;
+    uint32_t send_recv_id;
+    uint32_t msg_size;
+};
+
 void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
 {
     struct arm_smccc_1_2_regs arg = { .a0 = fid, };
@@ -78,3 +87,44 @@ out:
                  resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
                  resp.a7 & mask);
 }
+
+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 struct ffa_part_msg_rxtx *src_msg;
+    uint16_t dst_id, src_id;
+    int32_t ret;
+
+    if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
+        return FFA_RET_NOT_SUPPORTED;
+
+    if ( !spin_trylock(&src_ctx->tx_lock) )
+        return FFA_RET_BUSY;
+
+    src_msg = src_ctx->tx;
+    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) || !FFA_ID_IS_SECURE(dst_id) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock_tx;
+    }
+
+    /* check source message fits in buffer */
+    if ( src_ctx->page_count * FFA_PAGE_SIZE <
+         src_msg->msg_offset + src_msg->msg_size ||
+         src_msg->msg_offset < sizeof(struct ffa_part_msg_rxtx) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock_tx;
+    }
+
+    ret = ffa_simple_call(FFA_MSG_SEND2,
+                          ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
+
+out_unlock_tx:
+    spin_unlock(&src_ctx->tx_lock);
+    return ret;
+}
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 973ee55be09b..d441c0ca5598 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -359,6 +359,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs);
 int ffa_handle_notification_set(struct cpu_user_regs *regs);
 
 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);
 
 static inline uint16_t ffa_get_vm_id(const struct domain *d)
 {
-- 
2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 17:45:56 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 17:45:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845025.1260518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGM6e-00042s-9z; Wed, 27 Nov 2024 17:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845025.1260518; Wed, 27 Nov 2024 17:45: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 1tGM6e-00042l-6s; Wed, 27 Nov 2024 17:45:40 +0000
Received: by outflank-mailman (input) for mailman id 845025;
 Wed, 27 Nov 2024 17:45: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=k0uU=SW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGM6c-00042f-8u
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 17:45:38 +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 65e99e26-ace7-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 18:45:32 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2ff976ab0edso76812071fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 09:45:32 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa53299ff77sm590619966b.73.2024.11.27.09.45.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 09:45: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: 65e99e26-ace7-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzEiLCJoZWxvIjoibWFpbC1sajEteDIzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjY1ZTk5ZTI2LWFjZTctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzI5NTMyLjA1Mzk4Mywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732729531; x=1733334331; 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=ncIHqWrPV6/2UhkUyYKUe1wcSIL6GbhDBV/cprgzeTU=;
        b=PezLahInnpVQtqR/dCeGwZmB5z5xQokXwxcE+SDB7PkOpXNmlOotq6F4/28rFIIKBz
         28eo/bg8Au3T3vNRh7hem+Nbu9PPpnpoqq/wSmQNyy2nEFqufZALeRE33lqVWKZ2go88
         lD04gFEQziEUIYYyOAs71KeOyHNpL9wtx3PgE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732729531; x=1733334331;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ncIHqWrPV6/2UhkUyYKUe1wcSIL6GbhDBV/cprgzeTU=;
        b=pkbaaA4v0oC+RklmBPQR6eXRGzAeVfgg7HljwNoSAAU9RCwvLjANV/Qfoa96VyNQ3h
         SBBKdkimxvEQ9oy38hdizBCzXgTIkTuq3Dx5b9H9/nhQkJeMAheRlxcAhz09p/pp9Ho3
         ZWDrpoxOQnmCkUPEqWlecGcSieo22t4MMXAr3ATITLC5wr+xb/CW3XZxCEBBefYIqWuu
         nf+A89sMR7LuHrbMogYCArFghVGmxjsAuNtuihX6Ksp3k1Mk7k80zinSF/ibFrRizyal
         OemS+83ckYysFhDV2kNO/Te8WHFi+Tl9Jm3hsrBa7Sh2f4io5Wbj+K/0T8EsmssI05Dt
         GfoA==
X-Gm-Message-State: AOJu0YxopKOHOwlo5G4ZsvEvRmjcRWu324CPx8Z7cF6xr3EjK/Hr3LAI
	XE4lLPb69CdMtAQbAevu5zCkHTVejnlrVVdM8kqFBzfEvSfUsiLgIFH88Gw6+Wk=
X-Gm-Gg: ASbGncuTG7WBvyj0YSMofH6iAwurpBl7XCjKdLTeA9ICJ3ttLmOxFjKXhZQqkONJHMa
	/U+BNpGoItkV6UU7KZJ1CoGVqcEsv7chUgC1Rfna+TQ+WtqohDbNWFA56tNjbgwVopJH2huujYq
	0ZivMKXyvRDuYhElo/P9RAPzVo6UmJ0J9Z0ZQlO1VqFW0TXZHfs8lpUKWA6NX0GLUybbzyymDlJ
	bR32/DG6TGvkl9pK4+xGYT+Agn2LqhUlyoLWU1b6RhgyRXFU7ixobQK2yLOx8w=
X-Google-Smtp-Source: AGHT+IHTc3oOy82JnTOcEnxJCSx8it9VR8P0lCoy/M0/SsDcHMZenZNCq07RY10ekeOm24nqrfklwA==
X-Received: by 2002:a05:6512:3f1f:b0:53d:d3ff:77f6 with SMTP id 2adb3069b0e04-53df010900cmr2725325e87.46.1732729531393;
        Wed, 27 Nov 2024 09:45:31 -0800 (PST)
Message-ID: <63cf9731-61ff-472b-94fe-06b3a4fa5763@citrix.com>
Date: Wed, 27 Nov 2024 17:45:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
To: Javi Merino <javi.merino@cloud.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>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com>
 <j743is6qrolxcblkz7q5ta46l2y6vad3e4vetcrgtziqpdpo6y@q7tsoe45ltdf>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <j743is6qrolxcblkz7q5ta46l2y6vad3e4vetcrgtziqpdpo6y@q7tsoe45ltdf>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27/11/2024 10:03 am, Javi Merino wrote:
> On Tue, Nov 26, 2024 at 08:58:59PM +0000, Andrew Cooper wrote:
>> The SDM instructs software to write 0 to ESR prior to reading it.  However,
>> due to an original Pentium erratum, most logic skips the write based on there
>> being more than 3 LVTs; a stand-in to identify the Pentium.
>>
>> Xen, being 64bit, doesn't need compatibility for i586 processors.
>>
>> Introduce a new apic_read_esr() helper, quoting the SDM to explain why a
>> function named apic_read_esr() has a write in it too.
>>
>> Use the new helper throughout apic.c and smpboot.c, which allows us to remove
>> some useless reads of APIC_LVR.  This in turn removes the external callers of
>> get_maxlvt(), so make it local to apic.c
>>
>> 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>
>> CC: Javi Merino <javi.merino@cloud.com>
>>
>> Based on Javi's patch correcting error_interrupt()
> Fair enough.  I was only looking at error_interrupt() and missed the
> bigger picture. This patch is more comprehensive and this is very nice:
>
>> Bloat-o-meter reports:
>>
>>   add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-269 (-269)
>>   Function                                     old     new   delta
>>   get_maxlvt                                    48       -     -48
>>   __cpu_up                                    1465    1417     -48
>>   clear_local_APIC                            1109    1050     -59
>>   setup_local_APIC                             942     828    -114
>> ---
>>  xen/arch/x86/apic.c             | 29 ++++++++++-------------------
>>  xen/arch/x86/include/asm/apic.h | 24 +++++++++++++++++++++++-
>>  xen/arch/x86/smpboot.c          | 17 ++++-------------
>>  3 files changed, 37 insertions(+), 33 deletions(-)
> Reviewed-by: Javi Merino <javi.merino@cloud.com>

Thanks.Â  Are you happy for me to merge the two patches?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 18:01:29 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 18:01:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845035.1260529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGMLr-0006py-K5; Wed, 27 Nov 2024 18:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845035.1260529; Wed, 27 Nov 2024 18: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 1tGMLr-0006pr-Fg; Wed, 27 Nov 2024 18:01:23 +0000
Received: by outflank-mailman (input) for mailman id 845035;
 Wed, 27 Nov 2024 18:01: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=k0uU=SW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGMLq-0006pl-DA
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 18:01:22 +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 98adfb3c-ace9-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 19:01:16 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-a9a977d6cc7so429678866b.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 10:01:16 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d01d3fc7a9sm6342911a12.62.2024.11.27.10.01.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 10:01: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: 98adfb3c-ace9-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzEiLCJoZWxvIjoibWFpbC1lajEteDYzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk4YWRmYjNjLWFjZTktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzMwNDc2LjgxOTM1OCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732730476; x=1733335276; 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=bDLP9mbgI9gmR3ZbQwSJds3EiPuOJx84Eu0LC0TaxTM=;
        b=pa+X+VVr0Jbk2r8F9Z5UzVv14V+d7fbgxx4pRRAuFD3l382fAaN/9dnVlBxj4vfk3+
         tJq/VTBMLkiY8Q5ogvmywLBNi1NG+yNaJFiaEsfdadejGy6XzrnZA2iCzPA5jlrfTlpy
         4dCxS6IlABkHLsMNen34t+oaV75qRkU9NryoI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732730476; x=1733335276;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bDLP9mbgI9gmR3ZbQwSJds3EiPuOJx84Eu0LC0TaxTM=;
        b=suFJHY/2AyKIxtJ2pQpYaIoIH+teyTazswBlqfzIICRmOgAi8wSpvhQVXekD3aYBUA
         zyzMMEOg7fOUhgv80/sDvxuYScGEC9zkFoPP4+ki128zWZAxBNA83D9IjioGPh+/ori7
         CLy1YvHCfb4If+7S4qUFCfHjxQsThq2G2s2q7UhBILo8fPOMqwXrYyMtYfgX37X/FR+x
         aEm/l/oDOA7OHQm2NuS28uZloHbcLE8OhvslYlKLv+GmZHypmRKZd1/mvazayiZDIN+a
         xoEvBnupzaiJLJ9zDVQeruVZpoShBz0Fa7j1s18dOqbtGF3k4knfT/dTAWmUQ2j+PAuM
         D9GA==
X-Forwarded-Encrypted: i=1; AJvYcCVaKiX8AkIx4Kh45OfygvKEl5GYgxJ8D0JzlaRsXYU/hGzZ12o9S6H3izs9eIkFUktnAdfzHl+Z1+c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDSh26N2hDiCpUV1yLvI7frt/j3rjA9KHzjt3gNZC/Y5HEj/ad
	fc7dc50Y6Eg/0sTpX2eO1oyhlun6BMIhH0J4DtyeI0o8V411GUsPvH580mc2LfA=
X-Gm-Gg: ASbGncsBU9A+dFtkUCFOmsY+SDIE0JnXeq6+iSAVJ+G1lrLseZPBrqlJ2dNmoWQjQKG
	2J0fZfs7+Lg0kWJftuy6l8V12k9AUx/TqUF1w5niwgowBCBxTx3j7ujbrstsIsOjlAMl7WI+OPv
	BDZRJhAEUya2jkxbweJcwcBHIVl/q4ky3L6JTvo5HF5ql1g6YoFcJpIG4aNn3bG7ZPRwB2++wnM
	AddcrbxfR6oXVpSn/XRWsvduZWGwEQaOzzV9subk3iqkHeOqdWpH7pFQATippA=
X-Google-Smtp-Source: AGHT+IEsLO31vG2dJ1zNJ84hTok9cOmYJuwyemxpabxdAP3h1CIVs8fx4VTjUeYJorWhJm9rFnBmRw==
X-Received: by 2002:a05:6402:1d55:b0:5d0:88ea:6560 with SMTP id 4fb4d7f45d1cf-5d088ea65a4mr2466763a12.31.1732730475371;
        Wed, 27 Nov 2024 10:01:15 -0800 (PST)
Message-ID: <912ba37b-f60f-4423-bb10-37c708382951@citrix.com>
Date: Wed, 27 Nov 2024 18:01:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Javi Merino <javi.merino@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com>
 <a2efdf6c-ab52-4ab6-931e-0801844b4875@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <a2efdf6c-ab52-4ab6-931e-0801844b4875@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27/11/2024 8:20 am, Jan Beulich wrote:
> On 26.11.2024 21:58, Andrew Cooper wrote:
>> @@ -1389,8 +1381,7 @@ static void cf_check error_interrupt(void)
>>      unsigned int i;
>>  
>>      /* First tickle the hardware, only then report what went on. -- REW */
>> -    apic_write(APIC_ESR, 0);
>> -    v = apic_read(APIC_ESR);
>> +    v = apic_read_esr();
>>      ack_APIC_irq();
> As indicated in the earlier reply, I think this comment should be dropped,

This one probably can, but ...

> plus ...
>
>> --- a/xen/arch/x86/smpboot.c
>> +++ b/xen/arch/x86/smpboot.c
>> @@ -422,7 +422,7 @@ void asmlinkage start_secondary(void *unused)
>>  static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>>  {
>>      unsigned long send_status = 0, accept_status = 0;
>> -    int maxlvt, timeout, i;
>> +    int timeout, i;
>>  
>>      /*
>>       * Normal AP startup uses an INIT-SIPI-SIPI sequence.
>> @@ -444,8 +444,7 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>>      /*
>>       * Be paranoid about clearing APIC errors.
>>       */
>> -    apic_write(APIC_ESR, 0);
>> -    apic_read(APIC_ESR);
>> +    apic_read_esr();
> ... the one here.

... this one is still correct in place.


I almost had a second function called apic_clear_esr() which was just
(void)apic_read_esr().

I could put that back in if you think it would be clearer ?

>  With that and with Javi's change folded into here,
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 18:03:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 18:03:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845043.1260537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGMOG-0007Sl-U2; Wed, 27 Nov 2024 18:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845043.1260537; Wed, 27 Nov 2024 18:03: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 1tGMOG-0007Sc-RO; Wed, 27 Nov 2024 18:03:52 +0000
Received: by outflank-mailman (input) for mailman id 845043;
 Wed, 27 Nov 2024 18: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=k0uU=SW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGMOF-0007SS-Qc
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 18:03:51 +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 f24db905-ace9-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 19:03:46 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-53df1e0641fso987194e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 10:03:46 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa50b2f0ebfsm730211466b.52.2024.11.27.10.03.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Nov 2024 10: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: f24db905-ace9-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMmEiLCJoZWxvIjoibWFpbC1sZjEteDEyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYyNGRiOTA1LWFjZTktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzMwNjI2LjU0NzkyNSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732730626; x=1733335426; 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=DZqwZPyMlQBYajamrm7edqHvtJ4AI1FlvEr5Qgjg2q0=;
        b=FaqNPHGM1PA9AB2iWx9Ugr9rHhb5cTi9VTizDJzb4+4sXl5ePsmHBXxY0LIRuEIbUe
         4GVKCij7iK+tK87BYWmOIbXW0w2Xz5YJimL2xJHBjlzQyn0BBaDnw3G0pOBBUvF4F/Ij
         UrROUZA+GzZcojQ8Erx9LqQbCvhntF4MlH798=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732730626; x=1733335426;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DZqwZPyMlQBYajamrm7edqHvtJ4AI1FlvEr5Qgjg2q0=;
        b=KXreIWfCcit4Phos0XPii4o1t+P0n97dDoSov1PH0OHhbcjUqRfVvoaDtUAFwkR8x0
         XHLLSlLmTtnfix55bss17wBmDRlW8NXrNYv0y9CerXVGrONKoF+PD+GTRRvyrKqTkYBF
         tScDJ9g0WUM+nTSC7++gj59S2ygMb1bDtDi+9VHYyf0VCC9XipV9qI3OQT+o/H2Yu6Dy
         i+sT/TzGMwhNs9bvDwB506PkbYHmlmnk+XNQtnKOG/+TQnUPbFO6XMRthMOIY0kkLEoj
         oprOJQEDB6hgj6zw53dnPkJKklkXO6NdDiofAgvrVe29UrZHIr1RWMnEZEsTZkzG6M96
         oOFg==
X-Gm-Message-State: AOJu0YyZG6xVJN0AQIyBUSgyMRSn7MBrxxQfvrIl8pqKmYj2SpHJKO8V
	mTHIdjM8CeqStVUzBw5O3VAnXlyzdzppy7vfFuw1RZOxcE/cRP88u7AJXIIspeY=
X-Gm-Gg: ASbGncv+7Q7WZKrdt8D3WqoeUQddrYC9wOn/E0+fA9iGxPQZKJSOMlmbahPmd0EqBST
	F5eVocyyo0YuPee7HSld5vDb64G1JtfaOQ8WGC8G3g7XqEoVCjsa8cJGblpPhcnVNoF4H3KAhUG
	/F/+N9ZG7x+GySgKXuQv71NevG0hMADrSNcXZ2qAky24q2YybvSniEeGxoNSSEzRfQljCHIXKaS
	dxPPUvknmDXyI2yz/zEDKQDtcSLnULCpAazvDsVBpREkTaoh5gy+veSkVk6D/8=
X-Google-Smtp-Source: AGHT+IE69zGi1v/VssdvbkvWD1TPio3LKKbst0mDUQmfiGDNhATg4ObEpIIvO2ZTxPOZoYvy4aV7EQ==
X-Received: by 2002:a05:6512:3d24:b0:53d:ab0d:b9ef with SMTP id 2adb3069b0e04-53df0106c38mr2514897e87.43.1732730625743;
        Wed, 27 Nov 2024 10:03:45 -0800 (PST)
Message-ID: <814813b6-f3f5-41eb-ba97-18e373670ef9@citrix.com>
Date: Wed, 27 Nov 2024 18:03:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>, Javi Merino <javi.merino@cloud.com>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com> <Z0bajveZYoKu3qE4@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Z0bajveZYoKu3qE4@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27/11/2024 8:38 am, Roger Pau MonnÃ© wrote:
> On Tue, Nov 26, 2024 at 08:58:59PM +0000, Andrew Cooper wrote:
>> The SDM instructs software to write 0 to ESR prior to reading it.  However,
>> due to an original Pentium erratum, most logic skips the write based on there
>> being more than 3 LVTs; a stand-in to identify the Pentium.
>>
>> Xen, being 64bit, doesn't need compatibility for i586 processors.
>>
>> Introduce a new apic_read_esr() helper, quoting the SDM to explain why a
>> function named apic_read_esr() has a write in it too.
>>
>> Use the new helper throughout apic.c and smpboot.c, which allows us to remove
>> some useless reads of APIC_LVR.  This in turn removes the external callers of
>> get_maxlvt(), so make it local to apic.c
>>
>> No practical change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>
> Just a couple of nits.

Thanks, but I'm going to intentionally defer the ancillary cleanup for
later.

Yes it should be done, but; while I'm very confident about the fix, if
it does turn out to break something then I don't want to be "was it a
different errata, or was it an integer handling change" because both
will be nasty.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 27 18:39:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 18:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845059.1260551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGMwj-0003fM-Ob; Wed, 27 Nov 2024 18:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845059.1260551; Wed, 27 Nov 2024 18:39: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 1tGMwj-0003fF-M2; Wed, 27 Nov 2024 18:39:29 +0000
Received: by outflank-mailman (input) for mailman id 845059;
 Wed, 27 Nov 2024 18:39: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=UPyn=SW=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tGMwh-0003ey-Vk
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 18:39:28 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20612.outbound.protection.outlook.com
 [2a01:111:f403:2412::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8dcdf96-acee-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 19:39:19 +0100 (CET)
Received: from BY5PR20CA0017.namprd20.prod.outlook.com (2603:10b6:a03:1f4::30)
 by PH0PR12MB8031.namprd12.prod.outlook.com (2603:10b6:510:28e::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.13; Wed, 27 Nov
 2024 18:39:13 +0000
Received: from CO1PEPF000075EE.namprd03.prod.outlook.com
 (2603:10b6:a03:1f4:cafe::bb) by BY5PR20CA0017.outlook.office365.com
 (2603:10b6:a03:1f4::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Wed,
 27 Nov 2024 18:39:13 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000075EE.mail.protection.outlook.com (10.167.249.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Wed, 27 Nov 2024 18:39:12 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 27 Nov
 2024 12:39:11 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Wed, 27 Nov 2024 12:39: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: e8dcdf96-acee-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMjo6NjEyIiwiaGVsbyI6Ik5BTTEwLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImU4ZGNkZjk2LWFjZWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzMyNzU5Ljg2NTAxMywic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XSF+IqXcbVUw6nK9/g9b30BuVDq8uBmfqakTP9rwi1sNQbWzebmRETvjWA+nbR4ZDftX/6k3od7GDMnL9BB7uLYm05IIuANcPCHbnWidE9BguP0AjsmVSBFXeCOpQcT0nbR6pEtmiGEiZ4zzfEKKJT8BUUzIFxNQPq3RuYTHylJ8Jx/drncRN/P2N9NAp/IS0BcbPoApGhuckiTM07fuLMZlPZwhrPOtGISAOJqc35VAWVnr94ZQcjuoQG+2ZbKr0i/UT2XfWzKnrNNemTKlY6A8Jj3S+b3bD/IR8rOIMkJ4WnfEGyV1tDubUaCmrRXaQl8CWI6i0W4USIaj7cwdbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3yxzhZAhRbX3t641mXMQ9ylAN1Wld0qdxw4trJkAYKI=;
 b=eGT6X20NGNCV/m3nW4V5e/Zwoul2wBo+S0t6PhJWNvbbHITVoxv9JuJq3fXNtu3ddZlkCi0780dBYo1HFMXqznBJLMQKxqGsW2XFM7Tc43eqlrKsX0D23vmPCBZhAR12GfKKiAEJaDnCc5O/2Vfb2mFzkjRwC2zFz1tMctaYW2BYvETaSx4NIzkHHV/hfI7CY/oxfgtz815rCN0AXbfavdLaYHCt4Hrl0pb+tbZl+P6UgCB4oSaF2QW2F/tOnZJ5DpFrNxf30btyV7iExo+RQuu9Ep9b3lzh3w/h5gYvJsJHWzBE7iliKBd8Zh5QebO1474hQbHHPifT31RqdDXrRA==
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=3yxzhZAhRbX3t641mXMQ9ylAN1Wld0qdxw4trJkAYKI=;
 b=yPemZlnfgKdpG4VE7icsw3v+o4YNrNtGSGRrT+lQIMKjVH/YMTNtMj+L9D77L5vx394uBqh6TTlQ+Lx3SJEVgCuuypdn62Mn/7bJ8+pYKGJtVg6OkvyWyRpSd4Jp3Egyi9Vv+byZDDBnEMKdbfplHGuoTAjJ/5JlzqVZSzNTPlk=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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 v2 0/2] Enable early bootup of AArch64 MPU systems (Part 2)
Date: Wed, 27 Nov 2024 18:39:04 +0000
Message-ID: <20241127183906.485824-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000075EE:EE_|PH0PR12MB8031:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d747163-fce7-40a4-f266-08dd0f12c9fa
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?xWmQBoTwt6HO6NVMNBhEIPTbHSRGYCuFSWRuAYnSBwp4aT4g5sX3wEAxWRQ1?=
 =?us-ascii?Q?cf8TojrwPDhF2fsB1aWBB9gi2oivBgMPB7lpfHjT3BG/jYyIGcdjfGz00DIG?=
 =?us-ascii?Q?vIZpyBRYe7DJZTZcQoCK8zj9IR3jRG2kHd89Prawfrx5UZxjQI/Ol1a3eaVv?=
 =?us-ascii?Q?uzgR/3rftaksiD3ByWFIxPQ+2hNlfnzrcetD8pwsc2LMelVHd37pQAIk+FYL?=
 =?us-ascii?Q?nLEMmU8wQ13ZDy9zd7IbUDTczrnvucLLvFsk1efKegS3fh73F+r7Cs8drtIL?=
 =?us-ascii?Q?HJNbGBlrWoJq1Xmpk3jY3lQHrLNyF9pPRQnaJynMgk+irdwAEZ25hP3ZvY2e?=
 =?us-ascii?Q?2gFEPPRgI9/8TSDcVen/q88PEqksFOKiPxSOTdajthVFA7p3KByOtp/2p7sm?=
 =?us-ascii?Q?ILaB6HzNg2ZmUkvq+XXlg8UlZtiXys8KPjmCBm9ko1G9u3GHE/n1+pNx+TTK?=
 =?us-ascii?Q?DsIpVQ06B+8y+Ts5/zYyJEVUA/GDVg7qJMFWpfhcvjPy0d8EigzZxdE4EghT?=
 =?us-ascii?Q?st9kxOGkUHDef4vXLlY5vooWLpFMvsAzT1g2Q4fWWaGGrUP8cTf+rkVD9aFv?=
 =?us-ascii?Q?hDufKD/sisjOBwlgDn9VNBZPPeYHGlNJk2OQW5nHh9+mOWPW9p4CrVcxWGIh?=
 =?us-ascii?Q?uOQuKqgKkKNPBqVayEwywqA/ytgucJDIbLLr0UZgS6VkWBOOsA7f0rlk9Pvy?=
 =?us-ascii?Q?L9werOVK6pL3ErblmDVJKke8xlx5SBnhX7TNzT5pUrzN0/+AIkcGsMYy8I1A?=
 =?us-ascii?Q?KS1ZB1LkSq5huemdrWUwTYf2Iv4coY9UCgocnsSvG8cmbwXzFdILwDHN+FMW?=
 =?us-ascii?Q?/ecRMNjTREcodjELWgo7ry0xAfcZdO1J/3F0+ZEdDSlVsRsiGTFZq728lpYg?=
 =?us-ascii?Q?0jLMVj9cn/4Fk5iS34PxhvGm5lHClAaA6Y/wJI5XdiEwNcpW32a5107e+ZMe?=
 =?us-ascii?Q?bDpSloCKC33xb9587/ogjkKPbBo6O/OevYNSQD/8rEOv+AG24qIh0XKnlihT?=
 =?us-ascii?Q?bT7AQHqf1iasXwqvvVQkjUNudq+zGyw+rs4yos+jeS0tKtazPRFtgNMFP8nX?=
 =?us-ascii?Q?ZYlf4u8Dos5P4J/MBEmQt80RpD0uZXGFrHtE9bVsrRQLLR//fu1G5puRX7H5?=
 =?us-ascii?Q?IHnbWAFsc5wQGlDFS4GNrRhMGrBQThdGSX0q2ylWljdJ0docEXYRGk8VbSkF?=
 =?us-ascii?Q?V3H6/t0WSxH62eo60pWQhuO+sXid9IFnR4RT01HgGurFBTEN+rWOBWqs3Zi/?=
 =?us-ascii?Q?oJxA2fyL8f6sHWi/G26Fxsb2HuKbwhNR4IlXeBlXx+Y+sX5ueNtkkwmyC55O?=
 =?us-ascii?Q?cjdW/h+XzHdnPxA1IP2vkv+Ia1oIp34YG76RYSMQRrqt/omcJXSX96/YoDWx?=
 =?us-ascii?Q?4JloGOC5TjZ65fcrCqB0mwqdIUi6kJEyzhWrw622HcSOv4EdLqb6rUtVlpi5?=
 =?us-ascii?Q?2zRS49+1AYg939YBKSthxNWmVTr5bIu0?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 27 Nov 2024 18:39:12.7254
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d747163-fce7-40a4-f266-08dd0f12c9fa
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000075EE.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8031

This patch serie concludes earlyboot support for Arm-v8R AArch64 MPU systems.

Depends on "[PATCH v6 0/3] Enable early bootup of AArch64 MPU systems".

Ayan Kumar Halder (1):
  xen/mpu: Map early uart when earlyprintk on

Penny Zheng (1):
  xen/mmu: enable SMMU subsystem only in MMU

 xen/arch/arm/Kconfig                    |  4 ++--
 xen/arch/arm/Kconfig.debug              |  7 +++++++
 xen/arch/arm/arm64/mpu/head.S           |  9 ++++++++
 xen/arch/arm/include/asm/early_printk.h | 28 ++++++++++++++++++++++++-
 4 files changed, 45 insertions(+), 3 deletions(-)

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 18:39:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 18:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845060.1260557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGMwk-0003hF-0p; Wed, 27 Nov 2024 18:39:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845060.1260557; Wed, 27 Nov 2024 18:39: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 1tGMwj-0003gl-TA; Wed, 27 Nov 2024 18:39:29 +0000
Received: by outflank-mailman (input) for mailman id 845060;
 Wed, 27 Nov 2024 18:39: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=UPyn=SW=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tGMwi-0003ez-7t
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 18:39:28 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20609.outbound.protection.outlook.com
 [2a01:111:f403:2413::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ebcdb97f-acee-11ef-a0cd-8be0dac302b0;
 Wed, 27 Nov 2024 19:39:24 +0100 (CET)
Received: from MW4PR04CA0356.namprd04.prod.outlook.com (2603:10b6:303:8a::31)
 by SJ0PR12MB8115.namprd12.prod.outlook.com (2603:10b6:a03:4e3::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.13; Wed, 27 Nov
 2024 18:39:19 +0000
Received: from CO1PEPF000075F3.namprd03.prod.outlook.com
 (2603:10b6:303:8a:cafe::b) by MW4PR04CA0356.outlook.office365.com
 (2603:10b6:303:8a::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Wed,
 27 Nov 2024 18:39:19 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000075F3.mail.protection.outlook.com (10.167.249.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Wed, 27 Nov 2024 18:39:18 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 27 Nov
 2024 12:39:18 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Wed, 27 Nov 2024 12:39:17 -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: ebcdb97f-acee-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxMzo6NjA5IiwiaGVsbyI6Ik5BTTEwLURNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImViY2RiOTdmLWFjZWUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzMyNzY0LjMwNjYxMSwic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fLe0If6WsONRtyEHmf5zDPeStyUrMubEhaPDMpvlxL9H5mR5LgoDCGJqxqbonIbFLwfCwsZk4durN71SU/k/lt/mlTSie0GTZF9yMqWafUq5U9GQSoICyOT0HScQI2fGZD/xDwOL7ecNi0hrNHJ3xJieQRJhh/JhrEa3egiYWSgzhCKaYU6A96f0RzLIm0NCJ7dFbxQTxpN42jjzruyPQ6/H32OqREDS19DxaGLvUcn0FXIChFL/Azx3dKfcvsJYcytwl4ols9mC+aF3L53237hru7ILABV5OxtBC6Tp+A1BXU5ylIjappGV/nFNN3UMeVHkHgdremtPTfS4rCYtjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8jtdmgz0hp1h/Jnfpbux2OZYxEMLnlqEMOohpnY6AL4=;
 b=UJGwk+mrb1H9hkNr92oQTAbNSKQDk2Bud8Pm0HF9xQqIFCLDOgfU4tqRTOElxZ+7FUMEsn5Yx8sDNmFdo4KcWRg4+d/t0VZb4hkR3JjZqda3UXJiU+p4Hiyc2MTu2suGdkpchcKAleH02KzSHWciCAd8VTO5jsDDSnsgr6mtBnnwKP1H7PPTr5rS2SQxmiVV3p0XPs/bOtvQaeE+WslDL9WDSs4KxRWcuemjuZ+0gTaNuMFH4VvgruDaacv5ngQ9yUwu5sJobvipsIqSeRn7xUyZshZUx8f/95LNkuxdHgD+GYHTS17cU9lgxE0AvaZaKIChR4H8V3ImElwmLj0wIQ==
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=8jtdmgz0hp1h/Jnfpbux2OZYxEMLnlqEMOohpnY6AL4=;
 b=grjmfS3Mye3jyTIFQH7m10w6GZxpRAxE0JuFIiFWi0OQaDiPpwOA6A6PHnmiC1WrpW87IiwgvlDwQq0HwnJLibQGUR5XD0vcm/MtFgAcSkVDchL0Y/W63nN492Vf/2MTSLC7Y2kSMuCOsj4q5XHaQ1J7UXGcq3VA4lwX8mXb43g=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@arm.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>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
Subject: [PATCH v2 2/2] xen/mmu: enable SMMU subsystem only in MMU
Date: Wed, 27 Nov 2024 18:39:06 +0000
Message-ID: <20241127183906.485824-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241127183906.485824-1-ayan.kumar.halder@amd.com>
References: <20241127183906.485824-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000075F3:EE_|SJ0PR12MB8115:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c96b7be-6899-4369-f778-08dd0f12cd96
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?fjMW/dXVnGdjTj6+wFY4rx4ME8wdk7IyA0QC5NInbW4/YO2ezYwlaY7NFunC?=
 =?us-ascii?Q?sUGuwtWyufai0OFVWO7qUF502WbTkpRAU9g8/viqk16HfsaAa/BSr4kzHTMV?=
 =?us-ascii?Q?NlsL9hiRxf/S/pPZ+SJXQhxY031Om71lm3UroFLj8rK55kt+99ZXvlws5j23?=
 =?us-ascii?Q?cwgu2Yyr0ySCVE+0+TzPAn9kThdxb8Ay8Y3WQJnZwe+rissdrETK1B4MclvM?=
 =?us-ascii?Q?fXjyK9Z0GqqiYmPbTzxmEOAjVaSARkSwhampqRNuIMCUg/EOMNBESWyb1tGs?=
 =?us-ascii?Q?gPHx0kZQAKCazrbyEewLOabXHE0rEVhKyOTjxteANGaiZpSZRr8cXsSZZgLZ?=
 =?us-ascii?Q?3ZeU9NI2LleyF1mT7zSu8KJ1+vZ5dp25tu64cSmxdxWo8w+R5QkuoevMgm64?=
 =?us-ascii?Q?dQubXIb3IKRYITppJowavG6qztmpd5LaSGN2swlxvXIzam8XhSo1zTGfZwal?=
 =?us-ascii?Q?T+VPExPk8C4G4zVoNTMXOEN6mpnJqHx9G6jj4vgyR4OHxiUFQZ2LFPNZGCpn?=
 =?us-ascii?Q?c/EHWv6xP6hIkHLgk3jpDOeCcMATKgBec+HKB9kZrBYq1nJu7UCzfRHzXAFG?=
 =?us-ascii?Q?US63A6sJE1TezWdiJxa1mrB4QAdAbVYC9b1aszuf0wxw5+rJ0yCbuF3UKjfc?=
 =?us-ascii?Q?qip9CJZonMCHw26GqzszXktb0D9WC2FOWslFF73u1pIAvtRaAipeVFPP4aUR?=
 =?us-ascii?Q?c7jAy2epaDbDe6RH/GolDD+qjfndgpxJVDjoqkxhAWuOzuucwt+AaCgvcP3Y?=
 =?us-ascii?Q?iNaYcmEhSLPodd9LK7lTqifCNUep6xL1RtCxIqGAYasc1n5PGgH2qh+k5WLr?=
 =?us-ascii?Q?rnS1lCQ6FEEv7WvcaK7zy8nqvFn1iHu323PZE7Ft5hZSzKlToU6B5xskQya9?=
 =?us-ascii?Q?874DXHpGzUwdfCUlM333cKIqmxm4a3lRgyMvosBGRBMOTNRzCtiz6WcHSSYu?=
 =?us-ascii?Q?ogwNvj/Hk/WhDVwc/nKz47JK6aKUHpBV5CucX1HPfdlBzQfE6MvGisWYgBEI?=
 =?us-ascii?Q?NMI1mtDYglj2ma0akve3G6hMTaJnbqDU9YyTdn2AwTayC7QCM2gyM2DRVF+U?=
 =?us-ascii?Q?rTngZ7rqwuLRD4ytiGeS6VQhujvEchAaB7hrDl5uKH8X57C2fcIzIxvoNmMV?=
 =?us-ascii?Q?BcPNxwV4lXKnK+lQHD6PWHbv6GpEiKM90wkOIcbSvO8JHiV2a2M9e2cmEif7?=
 =?us-ascii?Q?7FNOc3tO4P4Xe1FFLDJF2IvB7jNKfxFXiYl98TiOFrk+lPwQa6rolb/eiLSq?=
 =?us-ascii?Q?n9K+DNLfjiPpa9ESEPVWMozbUhEpe9FKm6kYk3R7mK14/RwpxOXf47MB+RlY?=
 =?us-ascii?Q?SDXL1ZFt5xrEzQEgqh6jckW5Qat0sFvY/oPosYzV9HT/KdzgDmweQR7ICA/O?=
 =?us-ascii?Q?AYkJKuHGCOhygnU6fqAeZ7ENGRaQ55vN/SJbhzXlNDAF+ZfazRVxn7LcBp7y?=
 =?us-ascii?Q?blf3untmMNWVdedPNZYYxw4zIZie3v91?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2024 18:39:18.7810
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c96b7be-6899-4369-f778-08dd0f12cd96
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000075F3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8115

From: Penny Zheng <Penny.Zheng@arm.com>

In Xen, SMMU subsystem is supported for MMU system only. The reason being SMMU
driver uses the same page tables as MMU.
Thus, we make it dependent on CONFIG_MMU.

Signed-off-by: Penny Zheng <Penny.Zheng@arm.com>
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from 

v1 - 1. HAS_PASSTHROUGH is now enclosed within "config MMU".
There was a pending response on
"[PATCH v1 2/2] xen/mmu: enable SMMU subsystem only in MMU"
that it might introduce a bunch of #if-defs in arm specific common code.
However, there are alternative implementations possible to reduce
#if-defs. So, that can be decided at a later point in time and should
not block the current patch.

 xen/arch/arm/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 15b2e4a227..adebf8d5ca 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -14,9 +14,7 @@ config ARM
 	select FUNCTION_ALIGNMENT_4B
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE
-	select HAS_PASSTHROUGH
 	select HAS_UBSAN
-	select IOMMU_FORCE_PT_SHARE
 
 config ARCH_DEFCONFIG
 	string
@@ -78,6 +76,8 @@ config MMU
 	bool "MMU"
 	select HAS_PMAP
 	select HAS_VMAP
+	select HAS_PASSTHROUGH
+	select IOMMU_FORCE_PT_SHARE
 	help
 	  Select it if you plan to run Xen on A-profile Armv7+
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 27 18:39:35 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Nov 2024 18:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845061.1260564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGMwk-0003np-Bn; Wed, 27 Nov 2024 18:39:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845061.1260564; Wed, 27 Nov 2024 18:39: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 1tGMwk-0003nR-49; Wed, 27 Nov 2024 18:39:30 +0000
Received: by outflank-mailman (input) for mailman id 845061;
 Wed, 27 Nov 2024 18:39: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=UPyn=SW=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tGMwi-0003ey-AY
 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2024 18:39:28 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20616.outbound.protection.outlook.com
 [2a01:111:f403:2418::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb26a7ee-acee-11ef-99a3-01e77a169b0f;
 Wed, 27 Nov 2024 19:39:23 +0100 (CET)
Received: from MW4PR04CA0358.namprd04.prod.outlook.com (2603:10b6:303:8a::33)
 by SN7PR12MB8601.namprd12.prod.outlook.com (2603:10b6:806:26e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Wed, 27 Nov
 2024 18:39:17 +0000
Received: from CO1PEPF000075F3.namprd03.prod.outlook.com
 (2603:10b6:303:8a:cafe::ec) by MW4PR04CA0358.outlook.office365.com
 (2603:10b6:303:8a::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12 via Frontend Transport; Wed,
 27 Nov 2024 18:39:17 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000075F3.mail.protection.outlook.com (10.167.249.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Wed, 27 Nov 2024 18:39:16 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 27 Nov
 2024 12:39:15 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Wed, 27 Nov 2024 12:39:14 -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: eb26a7ee-acee-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxODo6NjE2IiwiaGVsbyI6Ik5BTTEyLUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImViMjZhN2VlLWFjZWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzMyNzYzLjAyMDAxNywic2VuZGVyIjoiYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j2RbwfX6xTpf5R/kORNeu+o6nLlj4GEySUirxPFdtf2BM52Meyb3crdvkD6YQOGMAmv9c+OY78Xf2S350Zn8IgsUEY9Gtr0CjBWrHNFK8zgz9Rkt/udxM67wcjOJaoSXA+4mY6EszQSYUQvsbH0ho+ISUa4iz91vONAs2ylMNA2a9AX3I6wzbGmFYYmb0gt466JU6Emu2X+VjpF0iEuQUS9kM4xhg+k/nCyo0pNyDFN3trnU3F0HAbQt5dqlfACoC+kU0TXKhr88BKrHIMLXzkX7Kn6gjKKwphJhJf6JXM0OTUd3Yk4o5n4yUelf8t+r5vt6o8JW6ObC0CuYoC4HRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4y0rqKXx3iOgUdFHLMYjo9xQCZSV35vv3Q1T2p0SOFI=;
 b=vkE3hW1Ea7kmwUb3kUqNeEimOiiyvYSZMVv4SnQgCD6UQGRYeOERcwgPI0ncufAW3OCq2e/lmxgaQLhwJagfNfdV85bi4xodyDtCqAo1JfcYxPIioIv1gGSsxpq8iA5FtimrywUFzGw4Ryf5kxQRo9OQQRKVPHfbDJqaBuy+O8NLkBKJnjFvkD7Zf4PyIFR/3O10oTMZ1Ft4KVmeoJHtLBFcwnPF+qveznmDf3NDDRJK8K00C8QQ/Nr8ojT0zfTvFZ3SNdfndGbOHUfiRWdWTa+YhsvCa797Jtm5tp5yFjpy1SpNCpGXarHPsoLM5iQBzgQ8WW4Pq76eIJyZQObcXw==
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=4y0rqKXx3iOgUdFHLMYjo9xQCZSV35vv3Q1T2p0SOFI=;
 b=Zq8EUiQ8jIxCEyUyN6z4qgylFYriFZ6wKcb6pWEFsfGdby324EnwAJYDfjXp79bE6D7SyuD7zrK+pIS7nlRXLcjbDkbzBdaAfn+bl+3HZf7OLF4lQJuxsUIMd6jHhJY8OXLfTTCRD8drF0dgBfNS9iZrWZNSiGL8KWDc1H2gfBQ=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@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 v2 1/2] xen/mpu: Map early uart when earlyprintk on
Date: Wed, 27 Nov 2024 18:39:05 +0000
Message-ID: <20241127183906.485824-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20241127183906.485824-1-ayan.kumar.halder@amd.com>
References: <20241127183906.485824-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000075F3:EE_|SN7PR12MB8601:EE_
X-MS-Office365-Filtering-Correlation-Id: ac3b41ab-d065-4906-1b9d-08dd0f12cc17
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?jx0rjZZVodD4/tJ1I6ZRurYos7O3lwBx8RufauL/h2r9nImnRoxkzl3W8jiG?=
 =?us-ascii?Q?LoDeSBcxcmlL3dSBU1jr2uoTJZ699wRqLZxpFi69spZuuRXlOLvO7Uaou7Yt?=
 =?us-ascii?Q?Zx4DNDVhCIMR1/uuLsQQecq59d4EYazsgDCRoNR+Ht9c5lTL1GytXuWwmBlz?=
 =?us-ascii?Q?4rOR4qrDYe4j981g5xmfd8MiYQIVciK+pWA7nVMiR2eyawbh2EPkZgx+wJ2K?=
 =?us-ascii?Q?QMuReypAGVvDXfPL431dsBbs44yK5pK5b0OxPpvehH+L/ChVgCipkFFAQMMw?=
 =?us-ascii?Q?DnB1P3r2bVrPNTM7M6x0VC7f+wQ7HIrpaaxV5EauXAxY6RT80SeQOJ1zh084?=
 =?us-ascii?Q?Bn4G/sH0fS2+sOOCweTC1rjtwlAuDl837j6dUED2ioS3WRsvWzvs6zKkUlax?=
 =?us-ascii?Q?vrUFWZmAE6FVooDh5QJUJ2DioVLIAnA6Cqej0To87MYryoVkJWXwuopQdkHL?=
 =?us-ascii?Q?wo7sRmS+RmOJ7MqLXH2xQrIdoh09g3o/tGcUCzWE58NXkrPZDuIIaxw7f2zL?=
 =?us-ascii?Q?nY8AqG6MrU6fgnv0rvGL7qGrkBGNrSe8j7NgEmRKKkqzjIXWkiGAhAuvYIiS?=
 =?us-ascii?Q?x9E2fhfOL2VycxwFXjfQE9aZWX/InullpM2Lg2DI4OYXX7hFahLpBKnBGrq3?=
 =?us-ascii?Q?u3nDGsxZWK3Vkb842hlxFdk5T/+H/LCr9WFThn21ikvF01vAYGKqI6w0Co8k?=
 =?us-ascii?Q?UoQIQmmZTjvJeY812SBkYGd8eJrV7HQADatFhZEcKM3y+zW1xDDKUgRRg1MI?=
 =?us-ascii?Q?PPlonsvb/Z28qOJoyztR5L8Zk73F2WJmjLYcKpX+8jp7olKLnCRzbgj4LMoI?=
 =?us-ascii?Q?mAhhvUGaAsxdHIFpuXZYnWn0mRnrYAFrIEQrlMqdMfHxnNSBVkWfeZ7G6aqE?=
 =?us-ascii?Q?lTK46xMJzs7sMgjeVXFs6Y0hHAtbL/2dx3GUzjA9jMKpuDPjH3xnMzxBROGp?=
 =?us-ascii?Q?dt46yw0DQyJcepc0WGJ2N6i6g3be4UCiHev3taKVDEWQZQq5AXviUXOJW1YN?=
 =?us-ascii?Q?Xz7/QYGb1QxZWUvXpmEQI/aUInMSI4n8Qg0VnTRE10vANmyTuqBMvxY8Frqg?=
 =?us-ascii?Q?ORwOgiPANy3es+DMLLiMo0DKcaB1w4wRO8OzPxpzmX7WjLXrnmm0BrtehOF6?=
 =?us-ascii?Q?4nQdKqAJan/5Sqi1+SAkReU+RqsuDhXIVJY0YBWRbJPkGNebWo+IXt82NdcT?=
 =?us-ascii?Q?38TqZaJmgzJRPk9wk4rN1MO1dY9S0WWNOqrdlY4EScQFBIprEQJ8/6BQDnbb?=
 =?us-ascii?Q?1aFgOfgJWSPy4QQUgAZGveATwE+/++6F3i2axj6dH+ISCJgzEemmPTOItM3Y?=
 =?us-ascii?Q?7xaT351PzKRN2t8BHJLOJnQ8TPIhXR/5XJHX+WOCTYVmqfPLgINaX6rhOJOK?=
 =?us-ascii?Q?z0ePd4eM7X5lpa6LItupkK6ogPMF+ZN7NOg65CAQULRbuO1zjfT8NRaRLhS5?=
 =?us-ascii?Q?y6KtOYzYP4g2Y/yIiB7Kums3x/TLqZyz?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.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: 27 Nov 2024 18:39:16.2654
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ac3b41ab-d065-4906-1b9d-08dd0f12cc17
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000075F3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8601

CONFIG_EARLY_UART_SIZE is introduced to let user provide physical size of
early UART. Unlike MMU where we map a page in the virtual address space,
here we need to know the exact physical size to be mapped.
As VA == PA in case of MPU, the memory layout follows exactly the hardware
configuration. As a consequence, we set  EARLY_UART_VIRTUAL_ADDRESS as physical
address.

EARLY_UART_BASE_ADDRESS and EARLY_UART_SIZE should be aligned to the minimum
size of MPU region (ie 64 bits) as per the hardware restrictions. Refer ARM
DDI 0600A.d ID120821 A1.3 "A minimum protection region size of 64 bytes.".

UART is mapped as nGnRE region (as specified by ATTR=100 , refer G1.3.13,
MAIR_EL2, "---0100 Device memory nGnRE") and Doc ID - 102670_0101_02_en
Table 4-3, Armv8 architecture memory types (nGnRE - Corresponds to Device in
Armv7 architecture). Also, it is mapped as outer shareable, RW at EL2 only
and execution of instructions from the region is not permitted.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from :-

v1 - 1. UART base address and size should be aligned to the minimum size of MPU
region (and not PAGE_SIZE).

 xen/arch/arm/Kconfig.debug              |  7 +++++++
 xen/arch/arm/arm64/mpu/head.S           |  9 ++++++++
 xen/arch/arm/include/asm/early_printk.h | 28 ++++++++++++++++++++++++-
 3 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/Kconfig.debug b/xen/arch/arm/Kconfig.debug
index 7660e599c0..84a0616102 100644
--- a/xen/arch/arm/Kconfig.debug
+++ b/xen/arch/arm/Kconfig.debug
@@ -121,6 +121,13 @@ config EARLY_UART_BASE_ADDRESS
 	hex "Early printk, physical base address of debug UART"
 	range 0x0 0xffffffff if ARM_32
 
+config EARLY_UART_SIZE
+       depends on EARLY_PRINTK
+       depends on MPU
+       hex "Early printk, physical size of debug UART"
+       range 0x0 0xffffffff if ARM_32
+       default 0x1000
+
 config EARLY_UART_PL011_BAUD_RATE
 	depends on EARLY_UART_PL011
 	int "Early printk UART baud rate for pl011"
diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index f692fc7443..86e4019a0c 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -11,8 +11,10 @@
 #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 */
+#define REGION_DEVICE_PRBAR     0x22    /* SH=10 AP=00 XN=10 */
 
 #define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
+#define REGION_DEVICE_PRLAR     0x09    /* NS=0 ATTR=100 EN=1 */
 
 /*
  * Macro to prepare and set a EL2 MPU memory region.
@@ -138,6 +140,13 @@ FUNC(enable_boot_cpu_mm)
     ldr   x2, =__bss_end
     prepare_xen_region x0, x1, x2, x3, x4, x5
 
+#ifdef CONFIG_EARLY_PRINTK
+    /* Xen early UART section. */
+    ldr   x1, =CONFIG_EARLY_UART_BASE_ADDRESS
+    ldr   x2, =(CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
+    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
+#endif
+
     b    enable_mpu
     ret
 END(enable_boot_cpu_mm)
diff --git a/xen/arch/arm/include/asm/early_printk.h b/xen/arch/arm/include/asm/early_printk.h
index 46a5e562dd..606aaedd6e 100644
--- a/xen/arch/arm/include/asm/early_printk.h
+++ b/xen/arch/arm/include/asm/early_printk.h
@@ -15,6 +15,29 @@
 
 #ifdef CONFIG_EARLY_PRINTK
 
+#if defined(CONFIG_MPU)
+
+/*
+ * For MPU systems, there is no VMSA support in EL2, so we use VA == PA
+ * for EARLY_UART_VIRTUAL_ADDRESS.
+ */
+#define EARLY_UART_VIRTUAL_ADDRESS CONFIG_EARLY_UART_BASE_ADDRESS
+
+/*
+ * User-defined EARLY_UART_BASE_ADDRESS and EARLY_UART_SIZE must be aligned to
+ * minimum size of MPU region.
+ */
+
+#if (EARLY_UART_BASE_ADDRESS % MPU_REGION_ALIGN) != 0
+#error "EARLY_UART_BASE_ADDRESS must be aligned to minimum MPU region size"
+#endif
+
+#if (EARLY_UART_SIZE % MPU_REGION_ALIGN) != 0
+#error "EARLY_UART_SIZE must be aligned to minimum MPU region size"
+#endif
+
+#elif defined(CONFIG_MMU)
+
 /* need to add the uart address offset in page to the fixmap address */
 #define EARLY_UART_VIRTUAL_ADDRESS \
     (FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
@@ -22,6 +45,9 @@
 #define TEMPORARY_EARLY_UART_VIRTUAL_ADDRESS \
     (TEMPORARY_FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
 
-#endif /* !CONFIG_EARLY_PRINTK */
+#else
+#error "Unknown Memory management system"
+#endif
 
+#endif /* !CONFIG_EARLY_PRINTK */
 #endif
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 00:47:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 00:47:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845108.1260586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGShB-0007XR-SL; Thu, 28 Nov 2024 00:47:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845108.1260586; Thu, 28 Nov 2024 00:47: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 1tGShB-0007XK-PT; Thu, 28 Nov 2024 00:47:49 +0000
Received: by outflank-mailman (input) for mailman id 845108;
 Thu, 28 Nov 2024 00: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGSh9-0007X0-Kg
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 00:47:47 +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 5fc9a9cc-ad22-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 01:47:42 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a9e8522445dso30328066b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 16:47:42 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5998e6a1asm8705566b.98.2024.11.27.16.47.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 16:47: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: 5fc9a9cc-ad22-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MjkiLCJoZWxvIjoibWFpbC1lajEteDYyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVmYzlhOWNjLWFkMjItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzU0ODYyLjE3NTgzOSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732754860; x=1733359660; 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=XgXdSuLeryn7gKdjlO3b+YNwyhuvuGb5oCNir+SwdrQ=;
        b=SQiWT5v40J2wECOWOnTRQq9UV2ix4c2/k/s37M5qFGhwTCbdd4zKNx8GJs6JYG12wN
         6NsglHXmfiU/sDwQCgw3n+fGKIitC3FYrlp8MxeUlEOVwSeclH/s+gNhgETvnGcMu2h5
         WXLq0rI+HKIrq/UTCb5iukPFbPc/i2DOn68X0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732754860; x=1733359660;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=XgXdSuLeryn7gKdjlO3b+YNwyhuvuGb5oCNir+SwdrQ=;
        b=XVIWgKWXUnTC7UnYCcz4CTrxG/h71j3bboiYPs40TGJK2TX1m/XdlvXOXEBYKNWkLU
         7p5sD7Y3pQ+pWPCBBY9T+HhDh6cKrYgYMJE7GINVIpBlNM54edcUsESLkNhOSBAM0B8y
         QbloFM9kCTnAXWc7yfhyk0HAr8Qwes9empeNxnSqhstGHRfvhm8Q1OeCjF40o9e+r9O9
         mX6HXKl7pKaqKHQy1s1fM46xfaowizU6zhrOGS+7JNWw6VB0xeB9MnTjA0soiytj05dR
         aTnPwX79jcsIOuwDN+54IFa3r4WpBFEzg2/6mx8D76Ec9aKB+ZDxxp74dcYs2J4FKO+g
         4kLg==
X-Gm-Message-State: AOJu0YzGWI5Ayw2NtCOLtu3DP6AsuZxRIRZqXfqWVvgJ4nJ9fLXHPcs8
	+tf+fqzPPPn+/bpJPICYoEDC0t3LlwScnmBDlvcMNPEN7MT46N94URZXaN6HZy06QpgSI6J8G1r
	B
X-Gm-Gg: ASbGncu3ooGiLn1KMBJlHxVOU15K86jsn4cVspI9B4It58s38EVxPnRZafKMYXUBwRm
	jpY+UL3jnd0F6ZAT6VLWTYj3anxMdytxQQmCskOUbcQmxpW/In8o4xoMGw+EZMzw+7fgmdnmSLB
	g6aqspyuo9yKs77StTvudTJEXVGvjtolsN60yEbykic2WA8Q/5zv+bGQZUtKdgiBOrcfjPEvGXG
	EYQf73/D/m//LV5UQpwvJdO4VX+K6oS1tC8XawjdswY2fvKqHp+P+Ay75JEjNnYQsRxOIsW2Kj4
X-Google-Smtp-Source: AGHT+IGQ2MLRzW2+Hl7iwK2dTy+HTMDBje2hZa97puqCLOsywB25j50LAGgqOpMeUFCooSk1Veea9w==
X-Received: by 2002:a17:907:2841:b0:aa5:2c61:e2dd with SMTP id a640c23a62f3a-aa580f5792emr347523066b.25.1732754860570;
        Wed, 27 Nov 2024 16:47:40 -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/2] x86/vlapic: Fix handling of writes to APIC_ESR
Date: Thu, 28 Nov 2024 00:47:36 +0000
Message-Id: <20241128004737.283521-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241128004737.283521-1-andrew.cooper3@citrix.com>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Xen currently presents APIC_ESR to guests as a simple read/write register.

This is incorrect.  The SDM states:

  The ESR is a write/read register. Before attempt to read from the ESR,
  software should first write to it. (The value written does not affect the
  values read subsequently; only zero may be written in x2APIC mode.) This
  write clears any previously logged errors and updates the ESR with any
  errors detected since the last write to the ESR. This write also rearms the
  APIC error interrupt triggering mechanism.

Introduce a new pending_esr field in hvm_hw_lapic.  Update vlapic_error() to
accumulate errors here, and extend vlapic_reg_write() to discard the written
value, and instead transfer pending_esr into APIC_ESR.  Reads are still as
before.

Importantly, this means that guests no longer destroys the ESR value it's
looking for in the LVTERR handler when following the SDM instructions.

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

Slightly RFC.  This collides with Alejandro's patch which adds the apic_id
field to hvm_hw_lapic too.  However, this is a far more obvious backport
candidate.

lapic_check_hidden() might in principle want to audit this field, but it's not
clear what to check.  While prior Xen will never have produced it in the
migration stream, Intel APIC-V will set APIC_ESR_ILLREGA above and beyond what
Xen will currently emulate.

I've checked that this does behave correctly under Intel APIC-V.  Writes to
APIC_ESR drop the written value into the backing page then take a trap-style
EXIT_REASON_APIC_WRITE which allows us to sample/latch properly.
---
 xen/arch/x86/hvm/vlapic.c              | 17 +++++++++++++++--
 xen/include/public/arch-x86/hvm/save.h |  1 +
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 3363926b487b..98394ed26a52 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -108,7 +108,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
     uint32_t esr;
 
     spin_lock_irqsave(&vlapic->esr_lock, flags);
-    esr = vlapic_get_reg(vlapic, APIC_ESR);
+    esr = vlapic->hw.pending_esr;
     if ( (esr & errmask) != errmask )
     {
         uint32_t lvterr = vlapic_get_reg(vlapic, APIC_LVTERR);
@@ -127,7 +127,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
                  errmask |= APIC_ESR_RECVILL;
         }
 
-        vlapic_set_reg(vlapic, APIC_ESR, esr | errmask);
+        vlapic->hw.pending_esr |= errmask;
 
         if ( inj )
             vlapic_set_irq(vlapic, lvterr & APIC_VECTOR_MASK, 0);
@@ -802,6 +802,19 @@ void vlapic_reg_write(struct vcpu *v, unsigned int reg, uint32_t val)
         vlapic_set_reg(vlapic, APIC_ID, val);
         break;
 
+    case APIC_ESR:
+    {
+        unsigned long flags;
+
+        spin_lock_irqsave(&vlapic->esr_lock, flags);
+        val = vlapic->hw.pending_esr;
+        vlapic->hw.pending_esr = 0;
+        spin_unlock_irqrestore(&vlapic->esr_lock, flags);
+
+        vlapic_set_reg(vlapic, APIC_ESR, val);
+        break;
+    }
+
     case APIC_TASKPRI:
         vlapic_set_reg(vlapic, APIC_TASKPRI, val & 0xff);
         break;
diff --git a/xen/include/public/arch-x86/hvm/save.h b/xen/include/public/arch-x86/hvm/save.h
index 7ecacadde165..9c4bfc7ebdac 100644
--- a/xen/include/public/arch-x86/hvm/save.h
+++ b/xen/include/public/arch-x86/hvm/save.h
@@ -394,6 +394,7 @@ struct hvm_hw_lapic {
     uint32_t             disabled; /* VLAPIC_xx_DISABLED */
     uint32_t             timer_divisor;
     uint64_t             tdt_msr;
+    uint32_t             pending_esr;
 };
 
 DECLARE_HVM_SAVE_TYPE(LAPIC, 5, struct hvm_hw_lapic);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 00:47:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 00:47:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845109.1260590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGShC-0007ZC-3Q; Thu, 28 Nov 2024 00:47:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845109.1260590; Thu, 28 Nov 2024 00: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 1tGShB-0007Ym-Vh; Thu, 28 Nov 2024 00:47:49 +0000
Received: by outflank-mailman (input) for mailman id 845109;
 Thu, 28 Nov 2024 00: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGSh9-0007X0-SB
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 00:47:47 +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 608317d5-ad22-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 01:47:43 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-aa51bf95ce1so46739766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 16:47:43 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5998e6a1asm8705566b.98.2024.11.27.16.47.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 16:47: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: 608317d5-ad22-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYwODMxN2Q1LWFkMjItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzU0ODYzLjQzOTk4MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732754862; x=1733359662; 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=hO+c4zSHv6GooiaL4lgtBPaHRWWE0cSt1ip5R5YyClg=;
        b=Cr/xtbAAgUhnF2Dq6gUsCOE4oK4PlzNg/PNW2HbA+RGWXWRuhxw1OFKwdB8Zkl7amH
         2l6Uk8Af7DiB568MV43azyvINAARdeVCIDV9TWGtCCW6dXF/hTWPcq1T2NGpYcAPIjRH
         6MCnsNX5ZC3eFoJ8TKrH9XxeUB3HKcgCfkH/Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732754862; x=1733359662;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hO+c4zSHv6GooiaL4lgtBPaHRWWE0cSt1ip5R5YyClg=;
        b=o4Dxu6ziH/+dyo4nFbR8M01iWjM7jeo/C5DRPD7xZqq2EuoEML9E4ggPgZICmaalEA
         LknsyxbtzOg296BQN+n68rzMprluEUwnDwXucoHB+rJ9ULUAOf1mNH3ggrpugjtYOhFA
         qJKAS0WqACnRLJB5Uzd+dJFkXH3tm1zL7x0bW5EC7gxK9oPa65a0v9rFq6SOxNAqnGn8
         qVpb6Jxf5gmkkwjlYqQZW7G1IyFm8HA+WQCLZ5PaGFNpGgchZ+Njqo+7/IIaBIO8c+H7
         nRqwtGJwA8x4VYNPN/WOcBHVyFwaGDv4brjGGtmXPOHO2MFJdatWT1uMjR1cPadUbIq4
         hx2Q==
X-Gm-Message-State: AOJu0YzqwoyG4/+EYLRNVwco4Cv1/Ja077RKnxDmj6hwgbEFywHCFSJ8
	j+MrZ6cUNUmJ8yGv7+lABrEnhI9qxpPj1SyH4oVgM3cGFhkkvwl0tD9mTbMgh17xT3s9BjtxNcp
	I
X-Gm-Gg: ASbGncveGCXfVu8WbC7GWxgGGWwk35CKyWwk05EbeKIo1oC0W3LykjsmXXEDHlRgIV4
	VXEjhKwYHAdyK5uSSGCxk8pYYD9J5gXDY76Nn75CqT3pef47dsVe86lsR7kekb29BMlQ22TSB+Q
	EDaXhJM4Lua/+w7Nt8gnhkHvXXAGTQ2bovL8zueVZ6B638TrylY/AGyIFfPmSSe006206A5EeU6
	RLdw1gOGJtGfNBpv0i/QPQWZJRV2ZT4VQ9IeU/ShH+JIdCPkW2QlI8NYwsDF+DJ04Il3H0/zJ2J
X-Google-Smtp-Source: AGHT+IFIFs+YwOEKB4EZlLhXjxstlabFl06TT5YoexC0l10sDiBlOU+Ef3QDwFvr9r3mfNNjL6/UMw==
X-Received: by 2002:a17:906:9d2:b0:a99:f605:7f1b with SMTP id a640c23a62f3a-aa581078a5fmr436758666b.60.1732754862364;
        Wed, 27 Nov 2024 16:47:42 -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/2] x86/vlapic: Drop vlapic->esr_lock
Date: Thu, 28 Nov 2024 00:47:37 +0000
Message-Id: <20241128004737.283521-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20241128004737.283521-1-andrew.cooper3@citrix.com>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With vlapic->hw.pending_esr held outside of the main regs page, it's much
easier to use atomic operations.

Use xchg() in vlapic_reg_write(), and *set_bit() in vlapic_error().

The only interesting change is that vlapic_error() now needs to take an
err_bit rather than an errmask, but thats fine for all current callers and
forseable changes.

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>

It turns out that XSA-462 had an indentation bug in it.

Our spinlock infrastructure is obscenely large.  Bloat-o-meter reports:

  add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-111 (-111)
  Function                                     old     new   delta
  vlapic_init                                  208     190     -18
  vlapic_error                                 112      67     -45
  vlapic_reg_write                            1145    1097     -48

In principle we could revert the XSA-462 patch now, and remove the LVTERR
vector handling special case.  MISRA is going to complain either way, because
it will see the cycle through vlapic_set_irq() without considering the
surrounding logic.
---
 xen/arch/x86/hvm/vlapic.c             | 32 ++++++---------------------
 xen/arch/x86/include/asm/hvm/vlapic.h |  1 -
 2 files changed, 7 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 98394ed26a52..f41a5d4619bb 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -102,14 +102,9 @@ static int vlapic_find_highest_irr(struct vlapic *vlapic)
     return vlapic_find_highest_vector(&vlapic->regs->data[APIC_IRR]);
 }
 
-static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
+static void vlapic_error(struct vlapic *vlapic, unsigned int err_bit)
 {
-    unsigned long flags;
-    uint32_t esr;
-
-    spin_lock_irqsave(&vlapic->esr_lock, flags);
-    esr = vlapic->hw.pending_esr;
-    if ( (esr & errmask) != errmask )
+    if ( !test_and_set_bit(err_bit, &vlapic->hw.pending_esr) )
     {
         uint32_t lvterr = vlapic_get_reg(vlapic, APIC_LVTERR);
         bool inj = false;
@@ -124,15 +119,12 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
             if ( (lvterr & APIC_VECTOR_MASK) >= 16 )
                  inj = true;
             else
-                 errmask |= APIC_ESR_RECVILL;
+                set_bit(ilog2(APIC_ESR_RECVILL), &vlapic->hw.pending_esr);
         }
 
-        vlapic->hw.pending_esr |= errmask;
-
         if ( inj )
             vlapic_set_irq(vlapic, lvterr & APIC_VECTOR_MASK, 0);
     }
-    spin_unlock_irqrestore(&vlapic->esr_lock, flags);
 }
 
 bool vlapic_test_irq(const struct vlapic *vlapic, uint8_t vec)
@@ -153,7 +145,7 @@ void vlapic_set_irq(struct vlapic *vlapic, uint8_t vec, uint8_t trig)
 
     if ( unlikely(vec < 16) )
     {
-        vlapic_error(vlapic, APIC_ESR_RECVILL);
+        vlapic_error(vlapic, ilog2(APIC_ESR_RECVILL));
         return;
     }
 
@@ -525,7 +517,7 @@ void vlapic_ipi(
             vlapic_domain(vlapic), vlapic, short_hand, dest, dest_mode);
 
         if ( unlikely((icr_low & APIC_VECTOR_MASK) < 16) )
-            vlapic_error(vlapic, APIC_ESR_SENDILL);
+            vlapic_error(vlapic, ilog2(APIC_ESR_SENDILL));
         else if ( target )
             vlapic_accept_irq(vlapic_vcpu(target), icr_low);
         break;
@@ -534,7 +526,7 @@ void vlapic_ipi(
     case APIC_DM_FIXED:
         if ( unlikely((icr_low & APIC_VECTOR_MASK) < 16) )
         {
-            vlapic_error(vlapic, APIC_ESR_SENDILL);
+            vlapic_error(vlapic, ilog2(APIC_ESR_SENDILL));
             break;
         }
         /* fall through */
@@ -803,17 +795,9 @@ void vlapic_reg_write(struct vcpu *v, unsigned int reg, uint32_t val)
         break;
 
     case APIC_ESR:
-    {
-        unsigned long flags;
-
-        spin_lock_irqsave(&vlapic->esr_lock, flags);
-        val = vlapic->hw.pending_esr;
-        vlapic->hw.pending_esr = 0;
-        spin_unlock_irqrestore(&vlapic->esr_lock, flags);
-
+        val = xchg(&vlapic->hw.pending_esr, 0);
         vlapic_set_reg(vlapic, APIC_ESR, val);
         break;
-    }
 
     case APIC_TASKPRI:
         vlapic_set_reg(vlapic, APIC_TASKPRI, val & 0xff);
@@ -1716,8 +1700,6 @@ int vlapic_init(struct vcpu *v)
 
     vlapic_reset(vlapic);
 
-    spin_lock_init(&vlapic->esr_lock);
-
     tasklet_init(&vlapic->init_sipi.tasklet, vlapic_init_sipi_action, v);
 
     if ( v->vcpu_id == 0 )
diff --git a/xen/arch/x86/include/asm/hvm/vlapic.h b/xen/arch/x86/include/asm/hvm/vlapic.h
index 2c4ff94ae7a8..c38855119836 100644
--- a/xen/arch/x86/include/asm/hvm/vlapic.h
+++ b/xen/arch/x86/include/asm/hvm/vlapic.h
@@ -69,7 +69,6 @@ struct vlapic {
         bool                 hw, regs;
         uint32_t             id, ldr;
     }                        loaded;
-    spinlock_t               esr_lock;
     struct periodic_time     pt;
     s_time_t                 timer_last_update;
     struct page_info         *regs_page;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 00:48:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 00:48:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845110.1260597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGShC-0007eB-DI; Thu, 28 Nov 2024 00:47:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845110.1260597; Thu, 28 Nov 2024 00: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 1tGShC-0007cT-6N; Thu, 28 Nov 2024 00:47:50 +0000
Received: by outflank-mailman (input) for mailman id 845110;
 Thu, 28 Nov 2024 00:47: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGShA-0007X1-BS
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 00:47:48 +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 5f48d01e-ad22-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 01:47:41 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-a9a68480164so27387666b.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Nov 2024 16:47:41 -0800 (PST)
Received: from andrewcoop.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5998e6a1asm8705566b.98.2024.11.27.16.47.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Nov 2024 16:47: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: 5f48d01e-ad22-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzAiLCJoZWxvIjoibWFpbC1lajEteDYzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjVmNDhkMDFlLWFkMjItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzU0ODYxLjMwNDYyMSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732754860; x=1733359660; 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=0Tl88Ga0cjqANUUlz9nA/svkwamhfy/EqhdcjLfE9Lc=;
        b=YyPzJW3hsDzCGUDtR2Iz5xd+z7RAqLS5DqLHKYKRQlEGcBMw/aBF+n9NEAbe2PbS2e
         K0fbkdTUKTMstKHqCOLXJ67ob2wp0arPMIkWQD5gXeD1Z2KSz/X7OEBj22w8T/X7s/NN
         6kCott//nQiSHiQnDhWwSTP3qPQIB93BRj5mc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732754860; x=1733359660;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0Tl88Ga0cjqANUUlz9nA/svkwamhfy/EqhdcjLfE9Lc=;
        b=HKwoq0TTfa93BAB55utkou/g9vY731CgOZcPp6UaibHyml93Bjpra7Qze7hTtcNaTB
         vHdF0FC48Qo5QbfbRXSkbwbV/qk4pw9KSNMLXimkqQL+IxK6GLEqo5lh9fPklOwUYh5m
         VKlic1bpOVXfFedlYHy136jh0CfbIxvMoaXin4oe/ziT7LNetXLVuO5DHhHLnkgRuOFM
         7nhEOoS62c4NtW+Sh2IDVmfVGHN4UQd9+JWtvPnekw7I2ccASGY2EkIGkd5RS4V3itsn
         veeTM75i1zcW/JJzFj4nzxCFOXh2FMDkVqMISToV82wMONLcWyuOICsYdKVUfFvtS52C
         YCFw==
X-Gm-Message-State: AOJu0Ywv01dtHImJS2ApYxDBnw5nEZKXnlNqE7HTwwyPnVZ3UqQkyCxW
	w0smDPRST9MkTMmpiBXtvCwWAruP6ZqQCx6Qf28VNm/lRvfG5MBAGo2I2MsxAMzR/a8g63r6tGB
	I
X-Gm-Gg: ASbGnctheAej2QXfAjjz0P+nF5LgzTLDvo4kG2hseXAZhxOsCTmQtqV8RaTgfh1TtIA
	u3dnVckyWjIf/n8ARxuNgRpvM39VAAc4DLS1514p5mHaqqsQnTp1B7PLaT5oESF7tRO2wC1AD90
	gv38b7pwaxHoy5myU/X4UISIjMjL7rGerN29l2lEw+L1en8Uy8KcfJvnQTVkaqtXQUvgEm8Os4h
	VMDZRmfSVFNbvLNk0EE3S3Z4f4i2NDObczGV1rhu4ZhImMcMPn6zM+n63bxeZCoAjDG+WuLoRGr
X-Google-Smtp-Source: AGHT+IHyheEwAfRZb1M6XFQF8iZ6Wdf23hy+Md3kcZuOOX0Ex7vMRPduxFbXjT8LuZ13tAlb/MviQQ==
X-Received: by 2002:a17:906:2192:b0:aa4:fc7c:ea6d with SMTP id a640c23a62f3a-aa580f2c4a3mr384966766b.17.1732754859940;
        Wed, 27 Nov 2024 16:47: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/2] x86/vlapic: Fixes to APIC_ESR handling
Date: Thu, 28 Nov 2024 00:47:35 +0000
Message-Id: <20241128004737.283521-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

Found because of yesterday's Pentium errata fun, and trying to
complete/publish the XSA-462 PoC.

Andrew Cooper (2):
  x86/vlapic: Fix handling of writes to APIC_ESR
  x86/vlapic: Drop vlapic->esr_lock

 xen/arch/x86/hvm/vlapic.c              | 27 +++++++++++---------------
 xen/arch/x86/include/asm/hvm/vlapic.h  |  1 -
 xen/include/public/arch-x86/hvm/save.h |  1 +
 3 files changed, 12 insertions(+), 17 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 08:48:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 08:48:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845152.1260615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGaCA-0005mx-Aq; Thu, 28 Nov 2024 08:48:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845152.1260615; Thu, 28 Nov 2024 08: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 1tGaCA-0005mo-8H; Thu, 28 Nov 2024 08:48:18 +0000
Received: by outflank-mailman (input) for mailman id 845152;
 Thu, 28 Nov 2024 08:48: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGaC9-0005mh-G8
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 08:48: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 80c3067b-ad65-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 09:48:13 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-382325b0508so257316f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 00:48: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-385ccd68a47sm1039678f8f.65.2024.11.28.00.48.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 00:48: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: 80c3067b-ad65-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzEiLCJoZWxvIjoibWFpbC13cjEteDQzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjgwYzMwNjdiLWFkNjUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzgzNjkzLjczMDAwOCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732783693; x=1733388493; 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=tShiKqT8s0GGopK/ogXX43OnTmoNPFAdyZhJBGCdNTY=;
        b=CdnA6eNz+xaiWhq3r4729K4+6KpJH0LoQ3moyw5rGgBHYibD4H2sjkM7DrjBQYHaNe
         Vg4ezSV2S3t7U9rNso/dt9LnVyqUfXANc2mm/fye70XZUGbMYcPbgupazhRwB8+XUDGL
         9AVEx+mTpC8/8kZj2geenvCpPGWTxgyf6Ys3Gekrm5WIjsZLRL5HM6SJTJajh0OXk0AW
         WqBlCehyKXBTFWPYRzV5iyWlCmnOfyCqfAfEbavBVWB0XP11Bw5EbzxkHDEBU0PzTR31
         sT35hEBLlR3uGYSuTllkKctMlnmC0C8JKBzxmP1hbvls54I/yxQw9OVs2Wce17I3KdGQ
         dKTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732783693; x=1733388493;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=tShiKqT8s0GGopK/ogXX43OnTmoNPFAdyZhJBGCdNTY=;
        b=BXXsKWZiJZIVm9/AmXfhqvr7Ei9yOjIn0TAASYmEawF3JBXhImMxcjwBEHelke6bqr
         qe2hFfqi8Rttsx2fI12BEABhv/KegaRW5q8SmQlDRBhsA6KOfC31g8iRM6q8oIJKG5nv
         lb9jUsGAN8Lq4dFy3PEvwVcWm4iCKAJFcQccrWuFCPWaVaYywsblsM43mcb2f31ukTx8
         6bAR0KdpJx2ReAl3OAP6P26WvvmVBDnULGJjkXU4az5melYs5NKlQb4j5yUXxhagKT/R
         ltAz0AiMCiDibPy6OsZG/UN5qMM8QmpVQurCbiyNVkNp69F7k0OfcX66CdZXAxF7JdJo
         1QIA==
X-Gm-Message-State: AOJu0Yy0blptmvB52j/BhsiPOJoZFztu1JRu4Y42zTeQvz2ynFKFzkeG
	laSe2TZ7xtnaNuZ1h/7cF5PorPMN48J4O1oBAd3VYJ0u5V7P+pKGC5dIPYQ97UKxuXiBmbXrF5o
	=
X-Gm-Gg: ASbGncsdqt8PYJfg1Drd5gzd/AaBfaAFWSiBTPsKBrUnYpkLouOOE0ywwQVq7CsQmZs
	x+TEDclswnvLibj9qJW9RBp1X56qe7I3QRfqAevjjAZZsbRnU93Ly/Oiif+EaRI6aJOB8gIHB9o
	ZwWukK/AXGyGl0QOLVMeiPyEUFmhAWvO1++mUQwPEY0mB3FJqH6+wgeXFJALq9df//cZRttAhht
	lly86XAcGXSu9NfCkYNwYXJDPKc87YisnhFTTjXZSyHi7Q39C6hIYR/6yj/EWUpNMImbhO04Udb
	KjUPDjbx0IKQOmbqeE+fXqbKQGCqdAghRwQ=
X-Google-Smtp-Source: AGHT+IEzhecAuv7Dw/L4B4uqaU4COnBYVExGv4e37/rtMsZsl6Fk4GrVMO7TvHZK4lwKerX/YuqGRg==
X-Received: by 2002:a05:6000:389:b0:382:5016:fd0b with SMTP id ffacd0b85a97d-385c6ee2190mr5007212f8f.50.1732783693159;
        Thu, 28 Nov 2024 00:48:13 -0800 (PST)
Message-ID: <d4d1708b-1900-4282-a5fb-57b6e260a7dc@suse.com>
Date: Thu, 28 Nov 2024 09:48:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 3/7] x86emul: support USER_MSR instructions
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: <3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com>
 <55bbfdf5-3f4b-47d6-bcbf-557e9c52de6c@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: <55bbfdf5-3f4b-47d6-bcbf-557e9c52de6c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2024 16:06, Jan Beulich wrote:
> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -7037,10 +7037,68 @@ x86_emulate(
>          state->simd_size = simd_none;
>          break;
>  
> -    case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 */
> -    case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 */
> +    case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 / uwrmsr r64,r32 */
> +    case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 / urdmsr r32,r64 */
> +        if ( ea.type == OP_MEM )
> +            goto enqcmd;
> +        imm1 = src.val;
> +        /* fall through */
> +    case X86EMUL_OPC_VEX_F3(7, 0xf8): /* uwrmsr r64,imm32 */
> +    case X86EMUL_OPC_VEX_F2(7, 0xf8): /* urdmsr imm32,r64 */
> +        generate_exception_if(!mode_64bit() || ea.type != OP_REG, X86_EXC_UD);
> +        generate_exception_if(vex.l || vex.w, X86_EXC_UD);
> +        generate_exception_if(vex.opcx && ((modrm_reg & 7) || vex.reg != 0xf),
> +                              X86_EXC_UD);
> +        vcpu_must_have(user_msr);
> +        fail_if(!ops->read_msr);
> +        if ( ops->read_msr(MSR_USER_MSR_CTL, &msr_val, ctxt) != X86EMUL_OKAY )
> +        {
> +            x86_emul_reset_event(ctxt);
> +            msr_val = 0;
> +        }
> +        generate_exception_if(!(msr_val & USER_MSR_ENABLE), X86_EXC_UD);
> +        generate_exception_if(imm1 & ~0x3fff, X86_EXC_GP, 0);
> +
> +        /* Check the corresponding bitmap. */
> +        ea.mem.off = msr_val & ~0xfff;
> +        if ( vex.pfx != vex_f2 )
> +            ea.mem.off += 0x800;
> +        ea.mem.off += imm1 >> 3;
> +        if ( (rc = ops->read(x86_seg_sys, ea.mem.off, &b, 1,
> +                             ctxt)) != X86EMUL_OKAY )
> +            goto done;
> +        generate_exception_if(!(b & (1 << (imm1 & 7))), X86_EXC_GP, 0);
> +
> +        /* Carry out the actual MSR access. */
> +        if ( vex.pfx == vex_f2 )
> +        {
> +            /* urdmsr */
> +            if ( (rc = ops->read_msr(imm1, &msr_val, ctxt)) != X86EMUL_OKAY )
> +                goto done;
> +            dst.val = msr_val;
> +            ASSERT(dst.type == OP_REG);
> +            dst.bytes = 8;
> +        }
> +        else
> +        {
> +            /* uwrmsr */
> +            switch ( imm1 )
> +            {
> +            case 0x1b00: /* UINTR_TIMER */
> +            case 0x1b01: /* UARCH_MISC_CTL */
> +                break;

These lack MSR-specific feature checks; adding the missing raising of #GP(0)
for v8.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 09:03:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 09:03:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845166.1260625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGaR1-0000MB-Jy; Thu, 28 Nov 2024 09:03:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845166.1260625; Thu, 28 Nov 2024 09:03: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 1tGaR1-0000M4-Ga; Thu, 28 Nov 2024 09:03:39 +0000
Received: by outflank-mailman (input) for mailman id 845166;
 Thu, 28 Nov 2024 09:03: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=2vEu=SX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tGaR0-0000Ly-JO
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 09:03:38 +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 a599f8a9-ad67-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 10:03:34 +0100 (CET)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2ffc86948dcso5414471fa.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 01:03:34 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5996c17bfsm43795666b.3.2024.11.28.01.03.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Nov 2024 01:03: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: a599f8a9-ad67-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmUiLCJoZWxvIjoibWFpbC1sajEteDIyZS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImE1OTlmOGE5LWFkNjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzg0NjE0LjQ2NjYyNCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732784614; x=1733389414; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=G4KfBA1guSdprzGGYtfR2gH1pb5hYac2R3e2E7meA70=;
        b=re2+otfI6Km0yFrOsEo7jGSnP6fISoANZKMVUOCPsg+c5umEzhdx04hMKyb9sNtW33
         dezOg9+/kQGNu+68jTWqQ6ZJKDvuPAB/5DUv4JkBgTb/TXdQMdCFrLAVCVrUc9xCa1gi
         xD+WP6ZlQNSQ69qzwL6ls3Dr1eV4fTbFWspZ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732784614; x=1733389414;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=G4KfBA1guSdprzGGYtfR2gH1pb5hYac2R3e2E7meA70=;
        b=P+N7EajgQm/Won9MimsSzlkuyq1iKaDXl5ZlXmZYhWriDrNyseXnGapRxJj2GZ0TYX
         dAWd4F+KF+tIW7+HnJfp+6D8b1EVHqm9BItGuRkOMrlz8zUXBHvwPkvUF7ZmrxmCjBtt
         6cWlrJlHk0NxFPlXyh6zsYImLZ+zkoYpJQiiu9OWlSUxKDuXfyzd9DuXXdbIdYewjqe6
         zxr6LDXTFT7+qhJEOee7UgePeqy8LRED+JoxCevzrrF9kZb+/xxfpH6APswS5fB3fu5B
         F3QRYDd9WO3gGZO7AiN60xMrLRB6imtJzrNlCCft8uyBz0nKA+Ny28m90J85XpVYsfza
         suIg==
X-Gm-Message-State: AOJu0YwSyAt8oqD23LX58hVSqanYwSZYnG/Tcj460NrUiOIBRXFAVazT
	NFY8kOKqlmmjV4BtSfrpBWRP2+pPfjE8nv4eYDFnVfpN2yiSOvjfOasn5zAhae0oXlgBNkZh2rc
	O
X-Gm-Gg: ASbGncvHbSb7E3ZkTYSkl8C+FNt4feWzzPXtaXxXP8d22AgNOB8Zte5jTtlyEdPVhtP
	coVdZyrQmau49TmEQQHd5EDfWLYR14n7VfuV3kYL/ai0OEpBxfW/aEcAH0UUTUjtyk3iSCjSeJc
	TXo4v1JyAvRA26gSrGx6gZghS5U3v4oqYxA/j9XNIfHDIYaWcj72jxpXGnXHlM3xlkEXptpg4il
	vYlQOeZ9y0HelsvJCk2byfKH1P3l18hZ/mtj4I5hwFgRoJv2s15App0BkE=
X-Google-Smtp-Source: AGHT+IH5N5ZbRGP/igFnfeDZ6DaJiDNesGgLFF+W75ljkEQl9CGmtSc0THWjUMu9hB72+RVB98paOA==
X-Received: by 2002:a05:651c:2211:b0:2fa:c18c:faba with SMTP id 38308e7fff4ca-2ffd60de22fmr34398081fa.30.1732784613695;
        Thu, 28 Nov 2024 01:03:33 -0800 (PST)
Date: Thu, 28 Nov 2024 10:03:32 +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>,
	Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
Message-ID: <Z0gx5EdqcPiEUt3z@macbook>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20241128004737.283521-2-andrew.cooper3@citrix.com>

On Thu, Nov 28, 2024 at 12:47:36AM +0000, Andrew Cooper wrote:
> Xen currently presents APIC_ESR to guests as a simple read/write register.
> 
> This is incorrect.  The SDM states:
> 
>   The ESR is a write/read register. Before attempt to read from the ESR,
>   software should first write to it. (The value written does not affect the
>   values read subsequently; only zero may be written in x2APIC mode.) This
>   write clears any previously logged errors and updates the ESR with any
>   errors detected since the last write to the ESR. This write also rearms the
>   APIC error interrupt triggering mechanism.
> 
> Introduce a new pending_esr field in hvm_hw_lapic.  Update vlapic_error() to
> accumulate errors here, and extend vlapic_reg_write() to discard the written
> value, and instead transfer pending_esr into APIC_ESR.  Reads are still as
> before.
> 
> Importantly, this means that guests no longer destroys the ESR value it's
> looking for in the LVTERR handler when following the SDM instructions.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Slightly RFC.  This collides with Alejandro's patch which adds the apic_id
> field to hvm_hw_lapic too.  However, this is a far more obvious backport
> candidate.
> 
> lapic_check_hidden() might in principle want to audit this field, but it's not
> clear what to check.  While prior Xen will never have produced it in the
> migration stream, Intel APIC-V will set APIC_ESR_ILLREGA above and beyond what
> Xen will currently emulate.
> 
> I've checked that this does behave correctly under Intel APIC-V.  Writes to
> APIC_ESR drop the written value into the backing page then take a trap-style
> EXIT_REASON_APIC_WRITE which allows us to sample/latch properly.
> ---
>  xen/arch/x86/hvm/vlapic.c              | 17 +++++++++++++++--
>  xen/include/public/arch-x86/hvm/save.h |  1 +
>  2 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
> index 3363926b487b..98394ed26a52 100644
> --- a/xen/arch/x86/hvm/vlapic.c
> +++ b/xen/arch/x86/hvm/vlapic.c
> @@ -108,7 +108,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>      uint32_t esr;
>  
>      spin_lock_irqsave(&vlapic->esr_lock, flags);
> -    esr = vlapic_get_reg(vlapic, APIC_ESR);
> +    esr = vlapic->hw.pending_esr;
>      if ( (esr & errmask) != errmask )
>      {
>          uint32_t lvterr = vlapic_get_reg(vlapic, APIC_LVTERR);
> @@ -127,7 +127,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>                   errmask |= APIC_ESR_RECVILL;
>          }
>  
> -        vlapic_set_reg(vlapic, APIC_ESR, esr | errmask);
> +        vlapic->hw.pending_esr |= errmask;
>  
>          if ( inj )
>              vlapic_set_irq(vlapic, lvterr & APIC_VECTOR_MASK, 0);

The SDM also contains:

"This write also rearms the APIC error interrupt triggering
mechanism."

Where "this write" is a write to the ESR register.  My understanding
is that the error vector will only be injected for the first reported
error. I think the logic regarding whether to inject the lvterr vector
needs to additionally be gated on whether vlapic->hw.pending_esr ==
0.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 09:22:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 09:22:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845176.1260636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGajZ-0003MA-0x; Thu, 28 Nov 2024 09:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845176.1260636; Thu, 28 Nov 2024 09: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 1tGajY-0003M3-UV; Thu, 28 Nov 2024 09:22:48 +0000
Received: by outflank-mailman (input) for mailman id 845176;
 Thu, 28 Nov 2024 09:22: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=kHC+=SX=cloud.com=javi.merino@srs-se1.protection.inumbo.net>)
 id 1tGajX-0003Lx-Ov
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 09:22:47 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51b1d0b5-ad6a-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 10:22:42 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-53de8ecb39bso649015e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 01:22:42 -0800 (PST)
Received: from premium-test ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa599973202sm44799266b.198.2024.11.28.01.22.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Nov 2024 01:22: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: 51b1d0b5-ad6a-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzMiLCJoZWxvIjoibWFpbC1sZjEteDEzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjUxYjFkMGI1LWFkNmEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzg1NzYyLjIxNjc1Mywic2VuZGVyIjoiamF2aS5tZXJpbm9AY2xvdWQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1732785761; x=1733390561; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=5SHNTErr57x+cB8HTiSBrH8uQLW242r53zDQAABjy9Q=;
        b=gU3E/9BzvJZR+b1CDHU50nwcluher2oFWQ68g2Tg+A0W+QS1yTgIqdsnp5M/CQS05d
         yhHWAUvtRmXliJiHOQqdUeutGGRzRotgSF9oBpLIaNy8Wy7qjuBFfgXjHge8ler9st3X
         yohkYCgSwgpOeG7LmJnLN5D9xjXRKyp6X0EZ8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732785761; x=1733390561;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=5SHNTErr57x+cB8HTiSBrH8uQLW242r53zDQAABjy9Q=;
        b=uxkwKk5W+LeYqhmFoozchaPoGyDMEGeeq4cf1cn8hdXq8clS8fUreVplm9KCN1Zmhw
         K0XfAafCZlOiHCrAEF1QxlY8CNVa+cI3K2lk4Zbd2xK/Coy7g3rK1S4F6yaBVsfxGill
         SV1r5ko/BXOkSJWNvzTboflNBDBeGlsuKqOe0jr4pTy4152CZ8rUuEN04fs5dVt8O/1N
         mxySG4annPBGGbw8sOrtvXq3MJ0CoBCXj/HYOUlyVcnXfAcCgUuR7fTcCy7KmFbLFuoH
         Iza+PQrGxqRcTtBKr1RQZY2P6gjQYNiSPthjbp149w+nvtNlT0Rc4xsMPnux03KHWurV
         lKmQ==
X-Gm-Message-State: AOJu0YyXdIBwEJC9PukihhHVGKwOSrXZJBOYIlsqtsnGPI35+kzQMBB2
	tJCv7AT95d/KzLdz8VTXcXkorQuHga05gtrHAZJP1xZVnjmhu5H3VzYqrtUjBLe6DitBdUrt+vl
	y
X-Gm-Gg: ASbGncvf82rZZ5j52YP+/lA4geMb1MdRlBCMdjLlNgNXBahEivOUvbBlZegqs05gCdO
	2VH3zXaPSXKWw76wlbtqtdhjp+Py4cpfad8og4jGYraOtgsamaZRwyYeGf9dAFhdJhstfXbB67+
	Wb7Era9WwtR3pvuzcF5ph5Qm6TCePlORnLeeMpuiKGreO3Rzdoc0cYgdvFiJ7SuhiRIgjTEIRuS
	QcjcGl7u2dJ15K7eKpMF0kursts3581PNdKqDX2py79/YxF15/t
X-Google-Smtp-Source: AGHT+IFoPLAIAhQBAci3sYn+IK7MdbTlb0uGnrfMqfy/MGj6IVL5OLqGbqf5BOYjRi/N/Ep46CYxHw==
X-Received: by 2002:a05:6512:b98:b0:53d:ede3:3d5 with SMTP id 2adb3069b0e04-53df00d11c8mr3679614e87.22.1732785761554;
        Thu, 28 Nov 2024 01:22:41 -0800 (PST)
Date: Thu, 28 Nov 2024 09:22:39 +0000
From: Javi Merino <javi.merino@cloud.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Jan Beulich <JBeulich@suse.com>, Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
Message-ID: <flhsfvmvqc5cffhc2bgbvbe2afonxo5wa4fe7qbas5yhnd5stt@vplc5f5baese>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com>
 <j743is6qrolxcblkz7q5ta46l2y6vad3e4vetcrgtziqpdpo6y@q7tsoe45ltdf>
 <63cf9731-61ff-472b-94fe-06b3a4fa5763@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <63cf9731-61ff-472b-94fe-06b3a4fa5763@citrix.com>

On Wed, Nov 27, 2024 at 05:45:29PM +0000, Andrew Cooper wrote:
> On 27/11/2024 10:03 am, Javi Merino wrote:
> > On Tue, Nov 26, 2024 at 08:58:59PM +0000, Andrew Cooper wrote:
> >> The SDM instructs software to write 0 to ESR prior to reading it.  However,
> >> due to an original Pentium erratum, most logic skips the write based on there
> >> being more than 3 LVTs; a stand-in to identify the Pentium.
> >>
> >> Xen, being 64bit, doesn't need compatibility for i586 processors.
> >>
> >> Introduce a new apic_read_esr() helper, quoting the SDM to explain why a
> >> function named apic_read_esr() has a write in it too.
> >>
> >> Use the new helper throughout apic.c and smpboot.c, which allows us to remove
> >> some useless reads of APIC_LVR.  This in turn removes the external callers of
> >> get_maxlvt(), so make it local to apic.c
> >>
> >> 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>
> >> CC: Javi Merino <javi.merino@cloud.com>
> >>
> >> Based on Javi's patch correcting error_interrupt()
> > Fair enough.  I was only looking at error_interrupt() and missed the
> > bigger picture. This patch is more comprehensive and this is very nice:
> >
> >> Bloat-o-meter reports:
> >>
> >>   add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-269 (-269)
> >>   Function                                     old     new   delta
> >>   get_maxlvt                                    48       -     -48
> >>   __cpu_up                                    1465    1417     -48
> >>   clear_local_APIC                            1109    1050     -59
> >>   setup_local_APIC                             942     828    -114
> >> ---
> >>  xen/arch/x86/apic.c             | 29 ++++++++++-------------------
> >>  xen/arch/x86/include/asm/apic.h | 24 +++++++++++++++++++++++-
> >>  xen/arch/x86/smpboot.c          | 17 ++++-------------
> >>  3 files changed, 37 insertions(+), 33 deletions(-)
> > Reviewed-by: Javi Merino <javi.merino@cloud.com>
> 
> Thanks.Â  Are you happy for me to merge the two patches?

These changes represent a single logical change, so they should be in
one commit. Please merge the two patches.


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 09:26:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 09:26:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845184.1260645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGamr-0003wI-FW; Thu, 28 Nov 2024 09:26:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845184.1260645; Thu, 28 Nov 2024 09:26: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 1tGamr-0003wB-Cv; Thu, 28 Nov 2024 09:26:13 +0000
Received: by outflank-mailman (input) for mailman id 845184;
 Thu, 28 Nov 2024 09:26: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=2vEu=SX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tGamp-0003w5-Mm
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 09:26:11 +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 cba90656-ad6a-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 10:26:06 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5ced377447bso998708a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 01:26:06 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d098894a02sm470976a12.25.2024.11.28.01.26.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Nov 2024 01:26: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: cba90656-ad6a-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzIiLCJoZWxvIjoibWFpbC1lZDEteDUzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImNiYTkwNjU2LWFkNmEtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzg1OTY2Ljk3NzYyOCwic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732785966; x=1733390766; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=CAnJAo3tGTKZjpuHv5Mt4fJ2DYTcSIoQU4NDZzheyS0=;
        b=gMAAy+ADRAKq+kd0kwKcMm/fvurcr1nQUf2Em3AeboS7lWV1P/L3k9EAsREiUYsglM
         pn/MdrRyy1KbJT3MUZvs4Deec+Fg3Tz1hOVdZiR5z8sftKRQXKdGOpfGjK7ptZ/uZmAx
         4DQpFnP5hzGLTIk7YAmmD0c4BAnOrgciAkRPs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732785966; x=1733390766;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=CAnJAo3tGTKZjpuHv5Mt4fJ2DYTcSIoQU4NDZzheyS0=;
        b=dvH9q+3w2tfXSQmGAaPuOFTxjWxIJfuz6Obkz4YrnHEni9ratZ82QkamlRU6hqRJhF
         8ytcy60KBFKau7CGB2pM/Hy/Xp64UcjTrBHu0M+DGdyVdE38C4wE71JFlcK1LOZ+d1tA
         9x9FN2z7LleN34G9prGC4bBVWtm4CkztBjSEES1QYbhyutbT14VrqjLbcfJhdwpSlrq1
         mFuQkXNUkqsrwvs65PtV/CR+6VKRGZZKwz+Zkh9UMBpuSocFwm1qMPYIuLsgPZXrCooB
         yz5RMUDJbFRKBG5RAqepRRJUh7DbjXWrymlejGNAcMKvcVYp2VhMSSy09W5KGXvXo/OK
         tmyA==
X-Gm-Message-State: AOJu0YyHg1qKyK3jLZxiftju1HGZ7KLySapzFy1+0CQNdxWvgOdJzBZd
	hEbC/M7n0qMbsmy+3YckQ672WJ8htV4L4Q+pEcUQ7rTS+1JiMOTZbgvKHhATk2w=
X-Gm-Gg: ASbGnctuuHmio/2qc0jaf3ex9+hJc60gKaB8g8dCD3Zks0TGKB5jB192KDnhmuE/a5W
	KvL3SsTzuYP+f4q+GKIxIlA7OJd5qaaqx4BUVSDdlIABZaSxusba59DG+7uJs12piIc7jjJz9Mb
	Hv8NLLmicoQoN8u2pQJfg1DOwS3uSje8+EAmiJIjFprbNgn0NgkZCOXsUxKTXANJ+KRbc57M1kW
	24Xy+szExGw4i1EN5DQ1ymF/CbDsWDhzVf0av6RVm4NgUJ2ecL7OncnCBA=
X-Google-Smtp-Source: AGHT+IGamuOqR1l919RuGaNLXDmH+HFm//ZKsToTHlKOX3RiI7Q1ttczdtROMa2QoDo7iECQXRDxRw==
X-Received: by 2002:a05:6402:518c:b0:5d0:9588:9744 with SMTP id 4fb4d7f45d1cf-5d09588a276mr2130685a12.29.1732785966247;
        Thu, 28 Nov 2024 01:26:06 -0800 (PST)
Date: Thu, 28 Nov 2024 10:26:04 +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>,
	Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH 2/2] x86/vlapic: Drop vlapic->esr_lock
Message-ID: <Z0g3LBzM-8ox5dAW@macbook>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20241128004737.283521-3-andrew.cooper3@citrix.com>

On Thu, Nov 28, 2024 at 12:47:37AM +0000, Andrew Cooper wrote:
> With vlapic->hw.pending_esr held outside of the main regs page, it's much
> easier to use atomic operations.
> 
> Use xchg() in vlapic_reg_write(), and *set_bit() in vlapic_error().
> 
> The only interesting change is that vlapic_error() now needs to take an
> err_bit rather than an errmask, but thats fine for all current callers and
> forseable changes.
> 
> 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>
> 
> It turns out that XSA-462 had an indentation bug in it.
> 
> Our spinlock infrastructure is obscenely large.  Bloat-o-meter reports:
> 
>   add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-111 (-111)
>   Function                                     old     new   delta
>   vlapic_init                                  208     190     -18
>   vlapic_error                                 112      67     -45
>   vlapic_reg_write                            1145    1097     -48
> 
> In principle we could revert the XSA-462 patch now, and remove the LVTERR
> vector handling special case.  MISRA is going to complain either way, because
> it will see the cycle through vlapic_set_irq() without considering the
> surrounding logic.
> ---
>  xen/arch/x86/hvm/vlapic.c             | 32 ++++++---------------------
>  xen/arch/x86/include/asm/hvm/vlapic.h |  1 -
>  2 files changed, 7 insertions(+), 26 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
> index 98394ed26a52..f41a5d4619bb 100644
> --- a/xen/arch/x86/hvm/vlapic.c
> +++ b/xen/arch/x86/hvm/vlapic.c
> @@ -102,14 +102,9 @@ static int vlapic_find_highest_irr(struct vlapic *vlapic)
>      return vlapic_find_highest_vector(&vlapic->regs->data[APIC_IRR]);
>  }
>  
> -static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
> +static void vlapic_error(struct vlapic *vlapic, unsigned int err_bit)

Having to use ilog2() in the callers is kind of ugly.  I would rather
keep the same function parameter (a mask), and then either assert that
it only has one bit set, or iterate over all possible set bits on the
mask.

I assume you had a preference for doing it at the caller because it
would then be done by the preprocessor as the passed values are
macros.  Maybe we could add a wrapper about it:

static void vlapic_set_error_bit(struct vlapic *vlapic, unsigned int bit)
{ ... }

#define vlapic_error(v, m) ({         \
    BUILD_BUG_ON((m) & ((m) - 1));    \
    vlapic_set_error_bit(v, ilog2(m));\
})


>  {
> -    unsigned long flags;
> -    uint32_t esr;
> -
> -    spin_lock_irqsave(&vlapic->esr_lock, flags);
> -    esr = vlapic->hw.pending_esr;
> -    if ( (esr & errmask) != errmask )
> +    if ( !test_and_set_bit(err_bit, &vlapic->hw.pending_esr) )
>      {
>          uint32_t lvterr = vlapic_get_reg(vlapic, APIC_LVTERR);
>          bool inj = false;
> @@ -124,15 +119,12 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>              if ( (lvterr & APIC_VECTOR_MASK) >= 16 )
>                   inj = true;

The line above also has bogus indentation.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 09:42:45 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 09:42:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845196.1260656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGb2l-00072B-KA; Thu, 28 Nov 2024 09:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845196.1260656; Thu, 28 Nov 2024 09:42: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 1tGb2l-000724-Hd; Thu, 28 Nov 2024 09:42:39 +0000
Received: by outflank-mailman (input) for mailman id 845196;
 Thu, 28 Nov 2024 09:42: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGb2k-00071y-Db
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 09:42:38 +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 fd1c19fa-ad6c-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 10:41:48 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5cf9ef18ae9so2994029a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 01:41: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
 a640c23a62f3a-aa599953c51sm46614666b.179.2024.11.28.01.41.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 01:41: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: fd1c19fa-ad6c-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmIiLCJoZWxvIjoibWFpbC1lZDEteDUyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImZkMWMxOWZhLWFkNmMtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzg2OTA4LjgzMDkyMSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732786908; x=1733391708; 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=Rhs/ANWEzZ4nJQsyg5/tx9tFdOIT1gfEc6T6eyLlpxk=;
        b=FAthBl6FEbOi/s0YnVsQeVqeIGzB6dyucdRJ10m6+rTi0H/7cFc9s8HyuY9wbb+G/r
         Cr4R/xwdq2h5BmtntvQW93Ps/psP7N7B+TWyPxW1uJKs5Ps7V+k9lhpAzO304ypb2igb
         a6RWQglk7oSQEHubAmfpD3CrIUHWO1IZ4E147MpSvOt81rM3p+qkNfxLpIuOx0YF2WI9
         7/acQOkN+a39xkZLlCoa3lKeigGJiHJbSTDU96vJ1c99+IEujItfOLk/BLV/8BQ1jXdi
         sMeAA0kq9kpxTwjeQbNhS5dFCeXA/sjrB2Hl447fz6GpVKkfeW2hoA0LKH1ngj3kxrug
         vzMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732786908; x=1733391708;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Rhs/ANWEzZ4nJQsyg5/tx9tFdOIT1gfEc6T6eyLlpxk=;
        b=GM2xCdiCZFbqjcH4uC556Kq4pUqATWqPKTIHjvnhCiV+M1XCIJ6yBteoCb9SUlbybQ
         89ysrRiPYBYudOLt5REigdRuXcf0GRr/VNLnMJeNbu+bE2By+gbRz3eehRMFzP8SH4FT
         SzZUIagXmnxlx1NSpiYOa3nSmMpKAHGya6ZJN7jcCJXUS6jqwhF/GPsonYavzi2itJPH
         8+qt89dMPcKXkF5udAt14XwLPVnMug0ZejISdJirmQit1goYQXNBziGLrSkO71fkycl8
         Zlijt29iwix/KPGlUMGucUkRgla11ukHT0ZWGJ1jUtKw6ECSHhhVVb4glkbhyLEbKbXZ
         Lrnw==
X-Forwarded-Encrypted: i=1; AJvYcCVTOiApz82ibF9wV2C3Dw4naDVVQOqwvIallDTae9dnYqLm8S7/nCUll+iO29IzAfFVoaHgkX5QrnY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKeQwgsUJ3WeQ2F2tUf77A2v7Un0JxoiBbKMF6FV1w50HDTdIE
	GklJujwhHLEEaKuhFAD2lDe7Iki6vsHz0hUS1P46Pc5r8EenXV7gkyxub0sPSw==
X-Gm-Gg: ASbGncuFqYNqsBUyPkt2EIFFscThnKc3R+sZieqFc+Irgk+LA/a4MFIDxbgxuN+Mfbd
	Qj62pQDM0ctCiXFezJK8wO1TfL5IGchRp9B3sdxaFLrUSvUodlHq9wBecXExu78TiFtLixsZijZ
	/2YXIXejqqOq5qtpurYFki0GXRmUcz9FKuNzOCaVvDh734WpD7JDOG9HUWlQ17L4MVOeGAydpAq
	uJ4ydUxR/v73tdnDhSMOhANhdTIJ10IvJ5LknFC4VyULvg7Ia36wXyNbHlkLAAbuaQJTIPoPY9Q
	t3A9q5g3ETdwqD8Lvn+ZV2Tny7XnqzGz9dA=
X-Google-Smtp-Source: AGHT+IFadI43++CwhIw4XxwTXXvd+UktvMcrR0sVxQbx1l/qvgx0R2upKbUAktOM1UBAvTocVX7fSg==
X-Received: by 2002:a17:906:18aa:b0:aa5:438b:513e with SMTP id a640c23a62f3a-aa5946e70cbmr250670266b.30.1732786908205;
        Thu, 28 Nov 2024 01:41:48 -0800 (PST)
Message-ID: <7dc98504-9f0d-4d08-bfc7-8f7f96b3c8b5@suse.com>
Date: Thu, 28 Nov 2024 10:41:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Javi Merino <javi.merino@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com>
 <a2efdf6c-ab52-4ab6-931e-0801844b4875@suse.com>
 <912ba37b-f60f-4423-bb10-37c708382951@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: <912ba37b-f60f-4423-bb10-37c708382951@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2024 19:01, Andrew Cooper wrote:
> On 27/11/2024 8:20 am, Jan Beulich wrote:
>> On 26.11.2024 21:58, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/smpboot.c
>>> +++ b/xen/arch/x86/smpboot.c
>>> @@ -422,7 +422,7 @@ void asmlinkage start_secondary(void *unused)
>>>  static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>>>  {
>>>      unsigned long send_status = 0, accept_status = 0;
>>> -    int maxlvt, timeout, i;
>>> +    int timeout, i;
>>>  
>>>      /*
>>>       * Normal AP startup uses an INIT-SIPI-SIPI sequence.
>>> @@ -444,8 +444,7 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>>>      /*
>>>       * Be paranoid about clearing APIC errors.
>>>       */
>>> -    apic_write(APIC_ESR, 0);
>>> -    apic_read(APIC_ESR);
>>> +    apic_read_esr();
>> ... the one here.
> 
> ... this one is still correct in place.

Oh, right.

> I almost had a second function called apic_clear_esr() which was just
> (void)apic_read_esr().
> 
> I could put that back in if you think it would be clearer ?

Nah, it's good as is.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:11:05 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:11:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845209.1260665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGbTy-0002qW-Mg; Thu, 28 Nov 2024 10:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845209.1260665; Thu, 28 Nov 2024 10:10: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 1tGbTy-0002qP-KC; Thu, 28 Nov 2024 10:10:46 +0000
Received: by outflank-mailman (input) for mailman id 845209;
 Thu, 28 Nov 2024 10:10: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGbTy-0002qJ-3g
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:10:46 +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 05d358cb-ad71-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 11:10:41 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3824a089b2cso417627f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 02:10:41 -0800 (PST)
Received: from [192.168.1.10] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-385ccd92a52sm1225267f8f.109.2024.11.28.02.10.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 02:10: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: 05d358cb-ad71-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzMiLCJoZWxvIjoibWFpbC13cjEteDQzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA1ZDM1OGNiLWFkNzEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzg4NjQxLjQ2OTg5MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732788641; x=1733393441; 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=IjlOX+olG5uAs8XcejPPUjLYY43wi6D/+ZwKCQcC6gY=;
        b=MCK9NtrdjWmPESzr4hGgDk6xeGiYmshTBoMYOHjThOupeBgEJ7Sj1+DX7ITt10Dm+X
         1uY8mZ54+ttljU/GABGyiHgkSjFXz5N18SkygT2LqdA2LG4WwE/puCfQwGiHbr7npSEu
         AlC1F/H5moPPlM4QxC1s3hBpexv8q43b0NfKE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732788641; x=1733393441;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IjlOX+olG5uAs8XcejPPUjLYY43wi6D/+ZwKCQcC6gY=;
        b=A8FVzHbggzF7BSy0o3rW7UzkFHH/EIcMCViuk3wnbVrpWUxg9n7PDztnKWDIlH7ja/
         GwTavoEluXTDg9RWaLR4EEJz6VooavYZ9GtNdsxeTXFmWtVafZ5FIHA5wafBqtAf2UXV
         FQrLxfnBOa/9/s6mSKi1wmqedU+hhf3EF1frE8p4RZx723lnuiQTn0PQemo9WXeQkamL
         A66IaHZEC55WXGpnDsaBnZbmD2IOqCm33iljxZ54N9dDllNFe16PYXAllH0SmgwgYs0S
         6zK/kHUkGW16hgJKEZXts186pCL2UM5aCt2qq9T+1w2ejUM9XPx3P3oVozFrm+nku4Rn
         afOg==
X-Gm-Message-State: AOJu0Yw2VX4zGXhQLW377l1AAkjY9hETfs70bvYZZLoiVmW1+bCsBYWe
	qR8J/tgZ6apmp0KxiO32v4yxUgBCl6j+lpQ5HDxxMOkL64E1jQefMYcxxnx3lsckKyKJUSvbhcU
	9
X-Gm-Gg: ASbGnctPe70jpO0/wBqIAsTfYSuDWSX1IBEsunxrUliFqvYGgJty/MfKWswsaQqSPK2
	ETzbn34AOeeqfilbQHoSHLCYB+sQ5zZPhFzHHtDu2WeetgRl1fI9DR7xXIAcC8cXiWVeWYYJ0Hm
	gZtQs6c7Ri3uLiWQFAFZQ/Qnowmy609aQA2ZqfKTbAmj197xfiKkToAIHVXYVkPr3vw6PKmutV4
	DNmorT/aWH7cB37bpTg4UI2yz0gcABwFh9h3d4N8yHW4f15NQIP0z/mZTRk6JnYiAStUGDoTvo3
	umvjAt+r28jQeQ==
X-Google-Smtp-Source: AGHT+IFkl/HpRXBgntU3ecsWoKRm6Gook/+NWSETqTRnceWaK+e8CNBuxbzH96VxePajfTb5vruUSw==
X-Received: by 2002:a5d:6d0b:0:b0:382:1cff:2e6f with SMTP id ffacd0b85a97d-385c6edd784mr4760330f8f.37.1732788640750;
        Thu, 28 Nov 2024 02:10:40 -0800 (PST)
Message-ID: <33f3dbbf-217d-45a7-bb9f-fac7e1a36584@citrix.com>
Date: Thu, 28 Nov 2024 10:10:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/vlapic: Drop vlapic->esr_lock
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-3-andrew.cooper3@citrix.com>
 <Z0g3LBzM-8ox5dAW@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Z0g3LBzM-8ox5dAW@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/11/2024 9:26 am, Roger Pau MonnÃ© wrote:
> On Thu, Nov 28, 2024 at 12:47:37AM +0000, Andrew Cooper wrote:
>> With vlapic->hw.pending_esr held outside of the main regs page, it's much
>> easier to use atomic operations.
>>
>> Use xchg() in vlapic_reg_write(), and *set_bit() in vlapic_error().
>>
>> The only interesting change is that vlapic_error() now needs to take an
>> err_bit rather than an errmask, but thats fine for all current callers and
>> forseable changes.
>>
>> 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>
>>
>> It turns out that XSA-462 had an indentation bug in it.
>>
>> Our spinlock infrastructure is obscenely large.  Bloat-o-meter reports:
>>
>>   add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-111 (-111)
>>   Function                                     old     new   delta
>>   vlapic_init                                  208     190     -18
>>   vlapic_error                                 112      67     -45
>>   vlapic_reg_write                            1145    1097     -48
>>
>> In principle we could revert the XSA-462 patch now, and remove the LVTERR
>> vector handling special case.  MISRA is going to complain either way, because
>> it will see the cycle through vlapic_set_irq() without considering the
>> surrounding logic.
>> ---
>>  xen/arch/x86/hvm/vlapic.c             | 32 ++++++---------------------
>>  xen/arch/x86/include/asm/hvm/vlapic.h |  1 -
>>  2 files changed, 7 insertions(+), 26 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
>> index 98394ed26a52..f41a5d4619bb 100644
>> --- a/xen/arch/x86/hvm/vlapic.c
>> +++ b/xen/arch/x86/hvm/vlapic.c
>> @@ -102,14 +102,9 @@ static int vlapic_find_highest_irr(struct vlapic *vlapic)
>>      return vlapic_find_highest_vector(&vlapic->regs->data[APIC_IRR]);
>>  }
>>  
>> -static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>> +static void vlapic_error(struct vlapic *vlapic, unsigned int err_bit)
> Having to use ilog2() in the callers is kind of ugly.  I would rather
> keep the same function parameter (a mask), and then either assert that
> it only has one bit set, or iterate over all possible set bits on the
> mask.

It can't stay as a mask, or we can't convert the logic to be lockless.Â 
There's no such thing as test_and_set_mask()Â  (until we get into next
years processors).

If you really don't like ilog2(), then we need a parallel set of
APIC_ESR_*_BIT constants, but I considered ilog2() to be the lesser of
these two evils.

> I assume you had a preference for doing it at the caller because it
> would then be done by the preprocessor as the passed values are
> macros.  Maybe we could add a wrapper about it:
>
> static void vlapic_set_error_bit(struct vlapic *vlapic, unsigned int bit)
> { ... }
>
> #define vlapic_error(v, m) ({         \
>     BUILD_BUG_ON((m) & ((m) - 1));    \
>     vlapic_set_error_bit(v, ilog2(m));\
> })

This is overkill IMO.Â  There are 3 callers and they're all local to
apic.c (hopefully soon to gain a 4th, but still).
>>  {
>> -    unsigned long flags;
>> -    uint32_t esr;
>> -
>> -    spin_lock_irqsave(&vlapic->esr_lock, flags);
>> -    esr = vlapic->hw.pending_esr;
>> -    if ( (esr & errmask) != errmask )
>> +    if ( !test_and_set_bit(err_bit, &vlapic->hw.pending_esr) )
>>      {
>>          uint32_t lvterr = vlapic_get_reg(vlapic, APIC_LVTERR);
>>          bool inj = false;
>> @@ -124,15 +119,12 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>>              if ( (lvterr & APIC_VECTOR_MASK) >= 16 )
>>                   inj = true;
> The line above also has bogus indentation.

Yes, that was mentioned.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:25:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:25:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845220.1260675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGbiV-0004pp-SX; Thu, 28 Nov 2024 10:25:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845220.1260675; Thu, 28 Nov 2024 10:25: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 1tGbiV-0004pi-Px; Thu, 28 Nov 2024 10:25:47 +0000
Received: by outflank-mailman (input) for mailman id 845220;
 Thu, 28 Nov 2024 10:25: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=2vEu=SX=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tGbiV-0004pM-52
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:25:47 +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 1fccbab7-ad73-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 11:25:43 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5cfc19065ffso790410a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 02:25:43 -0800 (PST)
Received: from localhost ([213.195.123.63]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5d097ebae89sm577354a12.88.2024.11.28.02.25.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Nov 2024 02:25: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: 1fccbab7-ad73-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MzEiLCJoZWxvIjoibWFpbC1lZDEteDUzMS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFmY2NiYWI3LWFkNzMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzg5NTQzLjk2Mzc0Mywic2VuZGVyIjoicm9nZXIucGF1QGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732789543; x=1733394343; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=OzStwXElrW60KPKVuqQnAZqG1yeULVi+Pd8qyTRrhnU=;
        b=ie4Wwh6SyA8QQSOkKeSjxHjwrYppHaaSq09tvsuDMOmNbQ1UvzHXzbUIikSEOPU8cC
         /JFCVZ+PPCer+4An+iDWAR8Cxh5JVIcK09q3KuY9JVs9LfcJkMoMdHPHzcY9Dtgkz1sj
         aIYlQF3jB0bvapz0+DxJrk1nwUyYRri8WMG9s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732789543; x=1733394343;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=OzStwXElrW60KPKVuqQnAZqG1yeULVi+Pd8qyTRrhnU=;
        b=JpqvUqvu4L9ZLAPzwpLbSz4bkcTDysR9S+40uSs03kMtWRljeZBFEioo2IaEPpwue4
         YvBWBeufMec4fDamTqJXJ40xVT2PLhp2wusb+u5DrhCFA0sAK7ALfErGZX5+gvioxgae
         rp7AxD0ThjRjrrzwyJG0TF9BhFnqxSnrpzQ4iMR/IUKkhrFzNIifkxllf2SvbEa1yNcA
         Gzv8Fc8y2nIHmQ7WMmHBui37egv/wBGb4VSK0g1rGTA2QYv++3pk8X8cYO+8lOMRG+ui
         GZ3gagP1Jote238YxZBYDAOdv0dhi+0c2JJGI29FWt1ocMa4OPzEoRoa/yc6umW4KG6q
         uqww==
X-Gm-Message-State: AOJu0YxUfrPa23alP/d8/cmCHyFNS+dDlZgQR2zhGVmVzU/WNr2dvlbt
	DN10Et5zGIQ/5bXumaOO52paAMw/uZfDnVNo7KvT6/FZfrf/G5OelcshYg5XpaKQ5GfSqJR0qww
	u
X-Gm-Gg: ASbGncu4vjjKaXkY5zi3uykopGnEWUOyd0g9xfANGiXrU+ek1tku8ITzi1ek4OV/piC
	KRiqAOx1xfshk9xlqxl6GW0EdRR7eJDhNoQyDC3qXCZJzr2QNkc5LNSiLb4eh5pAkqrL6EA9DUT
	fimKNLSw/QwnX1zRfjz3OSBOzHBYKCzLf0nP5M2fTuRJpbIdmHd63t3/kjDPIec5Xkf5k/nohNB
	zC2EskZwxDTvUagzREEHe6Bj/gpodRDeiO2WG2iy7X26qOx872/h3fkEfY=
X-Google-Smtp-Source: AGHT+IG9Ga6iiwrjJP0rphi1sGJGGAsYhOynHWGdkE1MoUJpof7/Z4Y2jOY9IcIW3n5ZadsSF65CCA==
X-Received: by 2002:a05:6402:50c8:b0:5cf:a1c1:527e with SMTP id 4fb4d7f45d1cf-5d080bb4176mr5447274a12.8.1732789543341;
        Thu, 28 Nov 2024 02:25:43 -0800 (PST)
Date: Thu, 28 Nov 2024 11:25:42 +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>,
	Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH 2/2] x86/vlapic: Drop vlapic->esr_lock
Message-ID: <Z0hFJq22n0IljtOy@macbook>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-3-andrew.cooper3@citrix.com>
 <Z0g3LBzM-8ox5dAW@macbook>
 <33f3dbbf-217d-45a7-bb9f-fac7e1a36584@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <33f3dbbf-217d-45a7-bb9f-fac7e1a36584@citrix.com>

On Thu, Nov 28, 2024 at 10:10:39AM +0000, Andrew Cooper wrote:
> On 28/11/2024 9:26 am, Roger Pau MonnÃ© wrote:
> > On Thu, Nov 28, 2024 at 12:47:37AM +0000, Andrew Cooper wrote:
> >> With vlapic->hw.pending_esr held outside of the main regs page, it's much
> >> easier to use atomic operations.
> >>
> >> Use xchg() in vlapic_reg_write(), and *set_bit() in vlapic_error().
> >>
> >> The only interesting change is that vlapic_error() now needs to take an
> >> err_bit rather than an errmask, but thats fine for all current callers and
> >> forseable changes.
> >>
> >> 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>
> >>
> >> It turns out that XSA-462 had an indentation bug in it.
> >>
> >> Our spinlock infrastructure is obscenely large.  Bloat-o-meter reports:
> >>
> >>   add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-111 (-111)
> >>   Function                                     old     new   delta
> >>   vlapic_init                                  208     190     -18
> >>   vlapic_error                                 112      67     -45
> >>   vlapic_reg_write                            1145    1097     -48
> >>
> >> In principle we could revert the XSA-462 patch now, and remove the LVTERR
> >> vector handling special case.  MISRA is going to complain either way, because
> >> it will see the cycle through vlapic_set_irq() without considering the
> >> surrounding logic.
> >> ---
> >>  xen/arch/x86/hvm/vlapic.c             | 32 ++++++---------------------
> >>  xen/arch/x86/include/asm/hvm/vlapic.h |  1 -
> >>  2 files changed, 7 insertions(+), 26 deletions(-)
> >>
> >> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
> >> index 98394ed26a52..f41a5d4619bb 100644
> >> --- a/xen/arch/x86/hvm/vlapic.c
> >> +++ b/xen/arch/x86/hvm/vlapic.c
> >> @@ -102,14 +102,9 @@ static int vlapic_find_highest_irr(struct vlapic *vlapic)
> >>      return vlapic_find_highest_vector(&vlapic->regs->data[APIC_IRR]);
> >>  }
> >>  
> >> -static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
> >> +static void vlapic_error(struct vlapic *vlapic, unsigned int err_bit)
> > Having to use ilog2() in the callers is kind of ugly.  I would rather
> > keep the same function parameter (a mask), and then either assert that
> > it only has one bit set, or iterate over all possible set bits on the
> > mask.
> 
> It can't stay as a mask, or we can't convert the logic to be lockless.Â 
> There's no such thing as test_and_set_mask()Â  (until we get into next
> years processors).

The test_and_set_bit() will also need to be changed if you agree with
my comment on patch 1, as the interrupt should only be injected when
vlapic->hw.pending_esr == 0 rather than whether the specific error is
set in ESR.

> If you really don't like ilog2(), then we need a parallel set of
> APIC_ESR_*_BIT constants, but I considered ilog2() to be the lesser of
> these two evils.
> 
> > I assume you had a preference for doing it at the caller because it
> > would then be done by the preprocessor as the passed values are
> > macros.  Maybe we could add a wrapper about it:
> >
> > static void vlapic_set_error_bit(struct vlapic *vlapic, unsigned int bit)
> > { ... }
> >
> > #define vlapic_error(v, m) ({         \
> >     BUILD_BUG_ON((m) & ((m) - 1));    \
> >     vlapic_set_error_bit(v, ilog2(m));\
> > })
> 
> This is overkill IMO.Â  There are 3 callers and they're all local to
> apic.c (hopefully soon to gain a 4th, but still).

My recommendation would be a local macro in vlapic.c, but I'm
certainly not going to block the patch hover this.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:31:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:31:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845230.1260685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGbnk-0006Zt-F9; Thu, 28 Nov 2024 10:31:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845230.1260685; Thu, 28 Nov 2024 10:31: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 1tGbnk-0006Zm-CD; Thu, 28 Nov 2024 10:31:12 +0000
Received: by outflank-mailman (input) for mailman id 845230;
 Thu, 28 Nov 2024 10:31: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGbnj-0006Zg-Fs
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:31:11 +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 df5bea29-ad73-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 11:31:05 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-aa52bb7beceso68314466b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 02:31: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
 a640c23a62f3a-aa5996de557sm51996666b.69.2024.11.28.02.31.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 02:31: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: df5bea29-ad73-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImRmNWJlYTI5LWFkNzMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzg5ODY1LjM2Mjk1NCwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732789865; x=1733394665; 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=s751EXf7bym3JalMdbNhe/rOYNoBJ2urBaealeSoKz8=;
        b=McWf/b4A/kgNUyjPHrzho/I5byoBeean9PqstNBwPUezPd7cgRbO/v0XRCbdiJ0bJq
         b4121ZyQV7jbQfBQXDEXY6LejJ0LBav3qTI9FeXDlq/0Z7tijtZAUYJG8unM4KxCPfeN
         Fjp10nE1C5h8LhsJtFF2CaDFLTGrG7fr0R8GbzlmSolKbpPpb6uve+uWTTXJyG/Yv/wo
         yGjIs4Tvv6lnoTIJZNubxXvGR1IeWX/5v+cdHkLRecoVDg4sVgG7RgcTfcdQEE6/GknW
         /3IG5XaMSNUDeeA9CzH4mEI87ibeF9ePVon77PmvhPMiv4MZq2Q8nNfFpW6iAhD6mWAN
         xTyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732789865; x=1733394665;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s751EXf7bym3JalMdbNhe/rOYNoBJ2urBaealeSoKz8=;
        b=PyMHlSc2+QxERPCznW1K4rarvW7watstJkMLBwE9G2nRrXwQwdjwwKsazOOvMRTGBO
         taed0PCM70o7S7qTb9ViJkPcxhxlBSq6L7ydpY5TMGXMpAYgtwFPKY6LMOmpxorAB7Qp
         snGd81B79+M3k8oql9BhvJe9/9za+k5pdasuKQRVNJSapvW99Ud78TubXJ/eZFBEUtP9
         R+YAfwr6jXpYuMv/Q9k1rABkp4sXv3QB+BcB+qcCBusGBWN5YJKuBNKjn98Bp7BRlXMW
         Cu+jI9l4QUnX6wK1D0ui+C3wEaQiK8ezxGTVnolOyy6qIEgjIciqrFXNTdGbbon97ezV
         oZ/A==
X-Forwarded-Encrypted: i=1; AJvYcCUlTtXO51LUbzwm8tUY7JMWb2MQKsxlSbqeCJzySK1Cm3wkaOJ6WDgy66AluLIyrFq4cKdbADZAYec=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0qu5Mp26ecVPOuEYSIKI95VSva6xQznxNfeWIbMij1IF1idwB
	WzO8igv93L6ZB4JjJvatgfymIpmBuPpbkQj2PSfqzCk0G3ftxuf8erImt6UmXQ==
X-Gm-Gg: ASbGncvqZMUtukVF1eNnG61BceUJ31LdqF1BUSN2j5wXM/5EDKspzjk4g0WchVrIFir
	wtQgMaIs3ZqjfestR/Zsnyetc2kusabeoFRQZINNrqYuOShYoXxLFNFkz876R3/WEnrAFwmHKVw
	5E09pD8tnI97V52pqsQ7llImTXKGWxJ426F04IdDY72b1Ljv9zX0VgrLe5A2iGDFwZMHUF+zXQ1
	YgFD4/BzB9dmQ1VSf9cMdC6L9hAEPFTnsynIyyaevXFxXhkjqdZEJs61ymPCFRg7IUBitB2Wv1p
	qItFZeWj1MBgJrPSYBATBB6TFeN8L7bfhL4=
X-Google-Smtp-Source: AGHT+IESzM2IJFq7FiH8PI3XqcWcgRRPFihShAIJbc0Vc2w4/BGp0EwJt2dP4fI4Z//PjkKjQ5zzkA==
X-Received: by 2002:a17:906:1baa:b0:aa5:470d:c95d with SMTP id a640c23a62f3a-aa58102833fmr388907366b.37.1732789864803;
        Thu, 28 Nov 2024 02:31:04 -0800 (PST)
Message-ID: <e576e161-5054-40d2-af02-6f32ef636782@suse.com>
Date: Thu, 28 Nov 2024 11:31:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
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: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-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: <20241128004737.283521-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2024 01:47, Andrew Cooper wrote:
> Xen currently presents APIC_ESR to guests as a simple read/write register.
> 
> This is incorrect.  The SDM states:
> 
>   The ESR is a write/read register. Before attempt to read from the ESR,
>   software should first write to it. (The value written does not affect the
>   values read subsequently; only zero may be written in x2APIC mode.) This
>   write clears any previously logged errors and updates the ESR with any
>   errors detected since the last write to the ESR. This write also rearms the
>   APIC error interrupt triggering mechanism.
> 
> Introduce a new pending_esr field in hvm_hw_lapic.  Update vlapic_error() to
> accumulate errors here, and extend vlapic_reg_write() to discard the written
> value, and instead transfer pending_esr into APIC_ESR.  Reads are still as
> before.
> 
> Importantly, this means that guests no longer destroys the ESR value it's
> looking for in the LVTERR handler when following the SDM instructions.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

No Fixes: tag presumably because the issue had been there forever?

> ---
> Slightly RFC.  This collides with Alejandro's patch which adds the apic_id
> field to hvm_hw_lapic too.  However, this is a far more obvious backport
> candidate.
> 
> lapic_check_hidden() might in principle want to audit this field, but it's not
> clear what to check.  While prior Xen will never have produced it in the
> migration stream, Intel APIC-V will set APIC_ESR_ILLREGA above and beyond what
> Xen will currently emulate.

The ESR really is an 8-bit value (in a 32-bit register), so checking the
upper bits may be necessary. Plus ...

> --- a/xen/include/public/arch-x86/hvm/save.h
> +++ b/xen/include/public/arch-x86/hvm/save.h
> @@ -394,6 +394,7 @@ struct hvm_hw_lapic {
>      uint32_t             disabled; /* VLAPIC_xx_DISABLED */
>      uint32_t             timer_divisor;
>      uint64_t             tdt_msr;
> +    uint32_t             pending_esr;
>  };

... I think you need to make padding explicit here, and then check that
to be zero.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:34:41 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:34:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845239.1260696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGbr5-00079Q-UM; Thu, 28 Nov 2024 10:34:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845239.1260696; Thu, 28 Nov 2024 10:34: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 1tGbr5-00079J-RN; Thu, 28 Nov 2024 10:34:39 +0000
Received: by outflank-mailman (input) for mailman id 845239;
 Thu, 28 Nov 2024 10:34: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=t80U=SX=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tGbr4-00079D-6D
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:34:38 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2408::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 59262b87-ad74-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 11:34:30 +0100 (CET)
Received: from BL1PR13CA0132.namprd13.prod.outlook.com (2603:10b6:208:2bb::17)
 by DS0PR12MB6584.namprd12.prod.outlook.com (2603:10b6:8:d0::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8207.13; Thu, 28 Nov 2024 10:34:26 +0000
Received: from BL02EPF0001A0FC.namprd03.prod.outlook.com
 (2603:10b6:208:2bb:cafe::2c) 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.8207.12 via Frontend Transport; Thu,
 28 Nov 2024 10:34:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A0FC.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Thu, 28 Nov 2024 10:34:25 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 28 Nov
 2024 04:34:25 -0600
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 28 Nov
 2024 04:34:24 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Nov 2024 04:34: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: 59262b87-ad74-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwODo6NjJjIiwiaGVsbyI6Ik5BTTA0LUJOOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU5MjYyYjg3LWFkNzQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzkwMDcwLjY3NzM5Miwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FTjPt2rUrM/C5u2s8gAkihemoLcCJNwWvnJSnjKbMcxrumpsnhPjG6TrdPMa0b4WVCzMoHCDGrYFgMBccmr7uZAaaM4NXHs2YWqQdefYw4/HW2vHni8kjrx2+WhtZtqLaNKZl3lV1rwPmw0YrJxhVj39I3TXFEEuz+0Qb1M3vwJ+YCJKsFM+vkNEZpsOv7mIwjhg9r9B6vVivaMCz7QDYlsnipG3fqA9+Au/PWHBzAcgJmCFnDUiw2zCz82rLfMkOMDO41FV4so1PJ19Bl++7dmhVYzfANZxrl1mDHKMwxejZlK29/zx1nxyShj9ilurS7TN6z3+P6pIDsehBC9clA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F4uTMKKZDQIMTDXt7mwNzHaGLW79KZ9lepCeyf/549w=;
 b=kbqpacyUDKqjFBfBU6BnOz9aHeZWX5jl+luf5qfTKwQquKwLDmKNloODFLPExQEJIu4jn0tJsDcGqZ7hYOS9reEHsZdDozfUVAY0HDP88Br1QLnsgncOTLuPcWRE+F6rFrUrD0lIbWpzKVwFsuxdhv15NgKEW5uMQRQa/KGrl+BoxX7JaEo9J587UDLhebfJSepMXumbxR0VD4xAyfpRmNInMO7gzt+4WDo6Hr4TyX4EZTdtatIbncsKXsfEM8/AeB7LY/5MTEt4UIZ+E0sdjFwTrv91K0fsXUpzIvBXfX5TqaE7Awvbdmuai+R1yaHVAvRM+o2atAyy781Jd6TdPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=minervasys.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=F4uTMKKZDQIMTDXt7mwNzHaGLW79KZ9lepCeyf/549w=;
 b=iOthFavpBMdQbJi5U+McAMmhsvc/a7DhLgu8c9oWQ8UFPkrTBZJs7HdbtmpJvw8ukLDkaeQ2E6YnYsiAgsr44FY+DrPSp2bq80OOvpkbqHFLMrjyYM1gnUoHrmBjaaZdc38q4guvx0B9xq+Hys/ZgIzkj2Hrh+Tf9CPo8hW2Dq8=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <15ebc55c-62d0-4133-97cf-57f4c503aacb@amd.com>
Date: Thu, 28 Nov 2024 11:34:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 03/12] xen/arm: permit non direct-mapped Dom0
 construction
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
	<xen-devel@lists.xenproject.org>
CC: <andrea.bastoni@minervasys.tech>, <marco.solieri@minervasys.tech>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-4-carlo.nonato@minervasys.tech>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241119141329.44221-4-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FC:EE_|DS0PR12MB6584:EE_
X-MS-Office365-Filtering-Correlation-Id: 27af0479-f647-43c3-fdc0-08dd0f983b0e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aUV2RUdHeUl3VnRkVXF0dTJQV2dYMUZENXYxbEltbm9HRGpyYzhJbTVGb1lZ?=
 =?utf-8?B?UkdhRHFBQ1hCUnRXM0xFRktSREhBSUVUcUlHRTZLcXFRY1RCMzBMelVVUHJE?=
 =?utf-8?B?Wm9VYTQ0QkFEbDRkdWluanV4dWxqTUdhYXNEYWM2QXlwUzVLU1NHd1dWMmRp?=
 =?utf-8?B?R2I0WlpOYnRYVXRhN1RpcVI4SEFsbWUwSWFZZU9odFBCODFDWUNHOFFmWVl4?=
 =?utf-8?B?a2MxbnRmbWZQeXB5MWIwclRSYUkyay9sZ0VRRldnU1I4MHNNZUlXaUdmb3hv?=
 =?utf-8?B?blMrMmQxQWRESEpxV05RMWp1TEJTbW5BSTJ5cWFnUG9BMFI5eitDYjZLbVpq?=
 =?utf-8?B?ajN6eU9PVHh5TDlwbGdIV3hQV29HU2JMczJ6aU5QNDJnNmYrU2x6bzVkbjcy?=
 =?utf-8?B?UXRtOEdBNmx3QnhrMWk3M21FdUI0ck1SdFc3cFJ2ZDFDNTY5a2FnclVZTFFR?=
 =?utf-8?B?OW10UDhMc054dW5ucG12RlNhZEpwbjFyYmVNU3dHZFBGY2thdXYweTljVDVH?=
 =?utf-8?B?d1k5REs3VStlY1NLbGptM3h2RFA5Y0VKVTJIVms5VndoSE5HMUJGeWwwN2JZ?=
 =?utf-8?B?dnR0dGIxdytQbDFHOXpYaUJJS3crWWpHNjU2d1BKK01OdjJHKzFWendRTm9B?=
 =?utf-8?B?blVNR2NoOXVaS25UaFQ0ay91RkJXT0pINmE5SDR5U0FzcUNKTzc2MDlTVlcx?=
 =?utf-8?B?UVhwa093VXRyMUlBVS9FQWh0YU1nN0k3N2VZS080Z2VvRnUyZkJ6Zm1lUG15?=
 =?utf-8?B?KzBhcGFFNVVzZStUSlR1QW1uZVJWS3ZCTzRYVzRNankzYTZKdm00bFl3M0p5?=
 =?utf-8?B?QXp6MzRHYWVxS0tNZE5rSXppekRvQi9YQkw1MXFwNTVOWHl3THg1U29uNzBv?=
 =?utf-8?B?dXZCbEpSWHE0MjYwWjNXaHRZNWxpVG5WUE54WFcyZklyTDFzaThOS3pBeUc0?=
 =?utf-8?B?elVPTzN0a2ZNMEdCZW1HVVJQNitRNTlxZDlBNW5SL00vRzd1bm92Witkck1x?=
 =?utf-8?B?cE1xVUhuV2w0aUEzTVNBRzVsajhqQmtXTzY1dmlLbHp2ZzM1bEJNTVFyNC8w?=
 =?utf-8?B?VjkxbjZDT2FLYjhjajY3V09mSk1wNlNlTkM5ekFjcnlhU0FCU1BoUEZUeVRk?=
 =?utf-8?B?cnJSWlVVTU16UHVpRjNEZFZJQXpmVHJUcGxQTVd4YnB4dDI5SWs0ZDVzdE00?=
 =?utf-8?B?cUhlSzNCNzF4ODhkc0ZMSXY1Wm1iY0dOYzd6T3NBYUJYa0ZGSXFhd3hFbzQ1?=
 =?utf-8?B?QnZ6akxiZ1hTUkpNckNjSXE0YVlNZ2N3cTZrSFBWcGVKRGE3dy9HY0ZZa3Uv?=
 =?utf-8?B?djRMSUF1SGxjYkdOd1FmZUZiNXdIS01ZdGpaZXZueWJIK29Ob0ZUVGd1V3hw?=
 =?utf-8?B?S1p1Mjh6NnBETGN2UlpFQlpIRDFwRlR3c21HTmk3YWg0WlI0cWttRU1pWmlF?=
 =?utf-8?B?ZXlqb1Y4emg3MnJ0bzdnWEhOS2Q2em5kOWFIQldLWVd3SXhiL0krUHRtQU9V?=
 =?utf-8?B?empkUCtES0pkWW9EVU9xa1dFVVNoS0RvR0tuNUxRbkZOaFFieDcxcHNFTGZB?=
 =?utf-8?B?MENJc1FGSlZEeWNBMWxwVndqYjNqTzdEWUZXS1dEbWlyZE55c0dLdHU4TXJz?=
 =?utf-8?B?UGNPRjFxMWNQYVQwaUFrYTB3c2MrWVFVZHp5WTZYWmFqODk3Q2ZUK1lTaXMy?=
 =?utf-8?B?dzdYaCtkMjVFNVpOa0JUUGt1T0VEcFErV0p2cGN6bG9TOTJJc3AxTHJXOCtX?=
 =?utf-8?B?MkhaQnoyQUREeHFhV3BlWjlHbGdpLzhWUllkTDg3WXhISEY1SkF4TjcraDdH?=
 =?utf-8?B?ZkRSU1VYSXA0THpLN1hoYjd6Uy9RQTJlbnVXZjl5dHloWHdDa01UeFVOREZp?=
 =?utf-8?B?RWgxazlKU2xzZnVKU1EremFkSEdMQW5yMFRrU0RDVDNwVk5OYnMxNGpFNlhP?=
 =?utf-8?Q?9VyRPN1wnwKzc7vAUX/1EM40re7fiCIR?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2024 10:34:25.5824
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 27af0479-f647-43c3-fdc0-08dd0f983b0e
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6584



On 19/11/2024 15:13, Carlo Nonato wrote:
> 
> 
> Cache coloring requires Dom0 not to be direct-mapped because of its non
> contiguous mapping nature, so allocate_memory() is needed in this case.
> 8d2c3ab18cc1 ("arm/dom0less: put dom0less feature code in a separate module")
> moved allocate_memory() in dom0less_build.c. In order to use it
> in Dom0 construction bring it back to domain_build.c and declare it in
> domain_build.h.
> 
> Take the opportunity to adapt the implementation of allocate_memory() so
> that it uses the host layout when called on the hwdom, via
> find_unallocated_memory().
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> ---
> v10:
> - fixed a compilation bug that happened when dom0less support was disabled
> v9:
> - no changes
> v8:
> - patch adapted to new changes to allocate_memory()
> v7:
> - allocate_memory() now uses the host layout when called on the hwdom
> v6:
> - new patch
> ---
>  xen/arch/arm/dom0less-build.c           | 44 ------------
>  xen/arch/arm/domain_build.c             | 96 +++++++++++++++++++++++--
>  xen/arch/arm/include/asm/domain_build.h |  1 +
>  3 files changed, 93 insertions(+), 48 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index d93a85434e..67b1503647 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -49,50 +49,6 @@ bool __init is_dom0less_mode(void)
>      return ( !dom0found && domUfound );
>  }
> 
> -static void __init allocate_memory(struct domain *d, struct kernel_info *kinfo)
> -{
> -    struct membanks *mem = kernel_info_get_mem(kinfo);
> -    unsigned int i;
> -    paddr_t bank_size;
> -
> -    printk(XENLOG_INFO "Allocating mappings totalling %ldMB for %pd:\n",
> -           /* Don't want format this as PRIpaddr (16 digit hex) */
> -           (unsigned long)(kinfo->unassigned_mem >> 20), d);
> -
> -    mem->nr_banks = 0;
> -    bank_size = MIN(GUEST_RAM0_SIZE, kinfo->unassigned_mem);
> -    if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(GUEST_RAM0_BASE),
> -                               bank_size) )
> -        goto fail;
> -
> -    bank_size = MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
> -    if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
> -                               bank_size) )
> -        goto fail;
> -
> -    if ( kinfo->unassigned_mem )
> -        goto fail;
> -
> -    for( i = 0; i < mem->nr_banks; i++ )
> -    {
> -        printk(XENLOG_INFO "%pd BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%ldMB)\n",
> -               d,
> -               i,
> -               mem->bank[i].start,
> -               mem->bank[i].start + mem->bank[i].size,
> -               /* Don't want format this as PRIpaddr (16 digit hex) */
> -               (unsigned long)(mem->bank[i].size >> 20));
> -    }
> -
> -    return;
> -
> -fail:
> -    panic("Failed to allocate requested domain memory."
> -          /* Don't want format this as PRIpaddr (16 digit hex) */
> -          " %ldKB unallocated. Fix the VMs configurations.\n",
> -          (unsigned long)kinfo->unassigned_mem >> 10);
> -}
> -
>  #ifdef CONFIG_VGICV2
>  static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
>  {
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 2c30792de8..a95376dcdc 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -416,7 +416,6 @@ static void __init allocate_memory_11(struct domain *d,
>      }
>  }
> 
> -#ifdef CONFIG_DOM0LESS_BOOT
>  bool __init allocate_domheap_memory(struct domain *d, paddr_t tot_size,
>                                      alloc_domheap_mem_cb cb, void *extra)
>  {
> @@ -508,7 +507,6 @@ bool __init allocate_bank_memory(struct kernel_info *kinfo, gfn_t sgfn,
> 
>      return true;
>  }
> -#endif
> 
>  /*
>   * When PCI passthrough is available we want to keep the
> @@ -1003,6 +1001,93 @@ out:
>      return res;
>  }
> 
> +void __init allocate_memory(struct domain *d, struct kernel_info *kinfo)
> +{
> +    struct membanks *mem = kernel_info_get_mem(kinfo);
> +    unsigned int i, nr_banks = 2;
Instead of hardcoding, shouldn't it be GUEST_RAM_BANKS?
Also, the second bank won't work with CONFIG_ARM_PA_BITS_32 which limits PA to 32bit.


> +    paddr_t bank_start, bank_size;
> +    struct membanks *hwdom_ext_regions = NULL;
AFAICT you search for free memory. Naming it as extended regions is not a good choice.
Instead, hwdom_free_mem?

> +
> +    printk(XENLOG_INFO "Allocating mappings totalling %ldMB for %pd:\n",
> +           /* Don't want format this as PRIpaddr (16 digit hex) */
> +           (unsigned long)(kinfo->unassigned_mem >> 20), d);
> +
> +    mem->nr_banks = 0;
> +    /*
> +     * Use host memory layout for hwdom. Only case for this is when LLC coloring
> +     * is enabled.
> +     */
> +    if ( is_hardware_domain(d) )
> +    {
> +        ASSERT(llc_coloring_enabled);
> +
> +        hwdom_ext_regions = xzalloc_flex_struct(struct membanks, bank,
> +                                                NR_MEM_BANKS);
> +        if ( !hwdom_ext_regions )
> +            goto fail;
empty line here please

> +        hwdom_ext_regions->max_banks = NR_MEM_BANKS;
> +
> +        if ( find_unallocated_memory(kinfo, hwdom_ext_regions) )
If you reuse find_unallocated_memory for a purpose other than extended regions, I think
the description of this function should change as well as comments inside.

Today, the function gets all RAM and exclude dom0 RAM (in your case is 0 at this point, reserved memory,
static shmem and gnttab (in your case is 0 at this point). I think we cannot get away without
making this function more generic. Maybe it should take as a parameter struct membanks * array?
Also, the callback add_ext_regions() may not be suited for all purposes (i.e. it takes only banks
> 64MB into account). I know that there will be more use cases for a function that will return the
free memory for domains. As an example, today, for direct mapped domains we hardcode the gnttab region
(only dom0 is special cased). This should not be like that. We would need to find a free memory region
to expose as gnttab.

> +            goto fail;
> +
> +        nr_banks = hwdom_ext_regions->nr_banks;
> +    }
> +
> +    for ( i = 0; kinfo->unassigned_mem > 0 && nr_banks > 0; i++, nr_banks-- )
> +    {
> +        if ( is_hardware_domain(d) )
> +        {
> +            bank_start = hwdom_ext_regions->bank[i].start;
> +            bank_size = hwdom_ext_regions->bank[i].size;
> +
> +            if ( bank_size < min_t(paddr_t, kinfo->unassigned_mem, MB(128)) )
I would expect some explanation.

> +                continue;
> +        }
> +        else
> +        {
> +            if ( i == 0 )
> +            {
> +                bank_start = GUEST_RAM0_BASE;
> +                bank_size = GUEST_RAM0_SIZE;
> +            }
> +            else if ( i == 1 )
> +            {
> +                bank_start = GUEST_RAM1_BASE;
> +                bank_size = GUEST_RAM1_SIZE;
> +            }
> +            else
> +                goto fail;
This could be simplified:
const uint64_t bankbase[] = GUEST_RAM_BANK_BASES;
const uint64_t banksize[] = GUEST_RAM_BANK_SIZES;

if ( i >= GUEST_RAM_BANKS )
    goto fail;

bank_start = bankbase[i];
bank_size = banksize[i];

This patch requires also opinion of other maintainers.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:39:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845252.1260706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGbvZ-0007nt-JN; Thu, 28 Nov 2024 10:39:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845252.1260706; Thu, 28 Nov 2024 10:39: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 1tGbvZ-0007nm-GJ; Thu, 28 Nov 2024 10:39:17 +0000
Received: by outflank-mailman (input) for mailman id 845252;
 Thu, 28 Nov 2024 10: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGbvX-0007ne-IL
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:39:15 +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 02035db4-ad75-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 11:39:13 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-434a742481aso5767875e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 02:39: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-434b0f32589sm17928185e9.28.2024.11.28.02.39.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 02:39: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: 02035db4-ad75-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjAyMDM1ZGI0LWFkNzUtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzkwMzUzLjAxNDg0Niwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732790352; x=1733395152; 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=8EqF2JxotVkoS9ms/T/52D679DisI4q5VE+kIpwmYqY=;
        b=W9X2f5b1g9NGTK+aQmGrFAT/vIFqWrj5xbGsoRIWhavhKeGMjYN26TVLCbbDPjZW7T
         rtcn3VtiMUX/yzEk5++tQyEKQRL6a3xt8qyet710j6L8I6gU62IfKXUFp2DPYXWnYw1F
         O+gIPf51sGL5PVOT9w9oRjB/CZKwSlR4pDbxdqkqhTXXouuKXkFV0gIFxzzpAuQkffzq
         h6dCRzFDO5/SusM3WI1lTxi8WahHpVsIgPQceid81+ASruHjhhPJOZVrZmjaiW7k45XF
         OQZGpvTdhj228SyH2b8hEF1g2/M3HT1sH8jxeQb/c0ghFKD7m6u9LAyQgG8Fftu98l7z
         zQ9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732790352; x=1733395152;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8EqF2JxotVkoS9ms/T/52D679DisI4q5VE+kIpwmYqY=;
        b=fIq7O6nH/Po3ok2IzadU4n56Pm5tRYXzWEtS8ncdAPB83xZ6EfRG7KxgvMN5zlPmRK
         ptb3XkDQYDzz4ekoefxlReiEhNtzgL4gtXUq+bT/NSFLE4r+5gKQW5nSpe1sM1vY2X3w
         yWPLUZP3CSdkC0+HAbNtsU1a0x6jmUBf//Y4A6/gI2KPDipiXEk0ZJ6yGLUdy1UIpOIW
         zMEknkRmqkqMnOVwXPmEWQumuSL1jSfdTIbbq2fhrQDRlf/xF49ayCYhgbsfRsoc6tLE
         wvjXYtuj0oSpAEP6SGHtU2oElQm1SGm5bFAuGRuKdcmBF9lmTREXEfUyHykTa7lqO6rf
         qj1A==
X-Forwarded-Encrypted: i=1; AJvYcCVkuskdTfnJETOUKqxYpiMZINdoXsml2yoeO4ouMV7rH+3+Y5T4aQen987Nk1lR4Dmhi02e3euidzo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqTkqL2jgxySO9tH/2T5Ij/YNl2kzFwqZhvHpT7Ez1jFcbFY4n
	uJ0Tel0WzKzDTZKxDtqw69L8iJ4VS/HUFSWWr+IW2CvFCjNuvLR8xDCkCL7DEg==
X-Gm-Gg: ASbGncsrvo2ZR/dylcmnZ2q/FUpPAiGMa+fzaOOEJTXbSLe96Wf2YI17iq1tvCo4SgK
	8SgJS5Bo54j/05+l5l/DSLLrFVBsnmKs57H9omtr7lczcfGqJ6kHNewiUi9kQgonACKRzsFbFMs
	gt0wyMqtPn85TiS8d1cmab9/Dc36s4PSjqji1hNE7TTPYJpfGU/uUfwGO2h0F4OoRXbsUdjHYMx
	gbqLfxY53qcZ3ssNqK9s/Z3rKGenNFf14Xza9UpZEfWoj1ccuc42Biu48nFPn/+JdlYkgMuOSof
	b5J0qt1dqBgTFZiNBcHQEBhYBtaqm2NNfmY=
X-Google-Smtp-Source: AGHT+IFE/ovFP5yEZ33EZTFQxXfQxQSLNpTRNsyGINWOkCFy5bwXIm6IPhFWs16w6jRpcA9+WMlA3A==
X-Received: by 2002:a05:600c:154d:b0:434:a555:d0d with SMTP id 5b1f17b1804b1-434a9e0e21dmr54714745e9.29.1732790352326;
        Thu, 28 Nov 2024 02:39:12 -0800 (PST)
Message-ID: <3f660598-d18b-42f6-a134-097f64f47253@suse.com>
Date: Thu, 28 Nov 2024 11:39:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 01/12] xen/common: add cache coloring common code
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
 xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-2-carlo.nonato@minervasys.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: <20241119141329.44221-2-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 15:13, Carlo Nonato wrote:
> --- /dev/null
> +++ b/xen/include/xen/llc-coloring.h
> @@ -0,0 +1,37 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Last Level Cache (LLC) coloring common header
> + *
> + * Copyright (C) 2024, Advanced Micro Devices, Inc.
> + * Copyright (C) 2024, Minerva Systems SRL
> + */
> +#ifndef __COLORING_H__
> +#define __COLORING_H__

This certainly wants LLC in the identifier, and likely also XEN.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:42:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:42:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845260.1260716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGbyp-0001EC-1o; Thu, 28 Nov 2024 10:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845260.1260716; Thu, 28 Nov 2024 10:42: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 1tGbyo-0001E5-UP; Thu, 28 Nov 2024 10:42:38 +0000
Received: by outflank-mailman (input) for mailman id 845260;
 Thu, 28 Nov 2024 10:42: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGbyn-0001Dz-MS
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:42: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 79b40333-ad75-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 11:42:33 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43497839b80so3811815e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 02:42: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-434aa74f2c7sm50303275e9.2.2024.11.28.02.42.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 02:42: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: 79b40333-ad75-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc5YjQwMzMzLWFkNzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzkwNTUzLjg0MDQ3Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732790553; x=1733395353; 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=BuKO2Sf8vhj3X3VoXIayX5XVpATVKvCfsX5S93WGp9Q=;
        b=Z48VSU+cxxKOlVT45oPE0+BIv/Xg28/+MN3eNO3LgP940cIMW1yt4Lp7QcZka9lg/L
         A8VO6mnxHVAreDoxOyaPKPvHRFf7qcWYTvj/CLb/XhY/WfFzrdy2RHlLSA+P53xZsQzL
         rSl6s2Y1qBoxJSyHkIb/VKJ2kn9H6SC7i8IODIvnqb5bprzR7EIlyi34fly5z6xnjDv9
         HrE7GVkUfyfs+p/ophJLP73VVVOefK9MX3+S51AMwujEMZD36Dl2Mt9b3/oQnp6jEXrr
         7qq2n3o2zZII6zdRFlEzNQWI0bI6HCwYWwwJcz8XLIIn3TaOHiOO11MeT7KBF2EstJcb
         JUiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732790553; x=1733395353;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BuKO2Sf8vhj3X3VoXIayX5XVpATVKvCfsX5S93WGp9Q=;
        b=t2urePSFFGvAaOv2GMCqV7ZD78OgxEvgKgwe6Aw/ZtpfT9K1GB1mKyUAT4jQAZkx74
         z035DPQKHhAPBjd1GwtjgZLO57LfuznzgsQqCbIjMITcpeub9WDz8GG9qf4tpZ0qb865
         SaZmjIeQ0m2O/MuyfMpiTyNHMgR0/hSK8bpWKwDzOsyILDUMskfKycZJRJAALllOpmny
         jaVAu+bu68Xh39mt7+zj56m70vMFJHTTtfXECJPa7Q0e2VYF1STZIlFRHVgdUy+bc/28
         Xgmmw1HGJYIZO+VE4D6bTta4dlddbkRMRxlHuEZ4FqyQJRM2tTx0ygFJNzCRGPRF2m+Y
         VbPA==
X-Forwarded-Encrypted: i=1; AJvYcCV0UdUXQVWEktKzO0se0JzPYud+ecJ3xBJWqyijQGJMAdbmVjwFWD7NDoUsJTlS/SrX4l4usKqb2Tc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwphcW7Rbew45CtxHG3dET41NZ8eIzFXjTC4+tKfVj5Besjzams
	2kdsCG3A1URyNtTziASfdSyy7Qjiynd1giZ6yVctURO5wYqguEo8SHpt91JgaA==
X-Gm-Gg: ASbGncu/OYcheCEndNJ5CDgI6C1Njq0dit90C8KPXqV56GMRNPfWiy2w53FF777Ciz2
	3RsH/NRfN5BQmD8jGoUMK6VmOzP5DSQDrbbmjpLXDo4aG7KhD9Fw/o3TaBT8j5auJpFfa/uSr+j
	BLK1BCoNIDyxNzPmbpulFjgGFEEOxqGHEGi7f8ZfFSSKLZArM7lFYRkNsGAlQ0u0ImEM/b77DVT
	5XyUOwmNRaxqZod36FHCTBUadrRINFALYr1J7YT7oAflNLFKCfCXtuUnxs/3ZRAZLujjdoqSNGd
	lFJzSVi6ruGaM3ffwlGGDpybBklXI2WNNiU=
X-Google-Smtp-Source: AGHT+IEUSS7OykV2t2b7Qy5X37M3npKjy/FnZZcwZ5XCuSMeWfvxpvlt0lIQhSzhxgkOdsZp33Oqeg==
X-Received: by 2002:a05:600c:1f06:b0:431:2b66:44f7 with SMTP id 5b1f17b1804b1-434a9df7a8dmr66666415e9.31.1732790553262;
        Thu, 28 Nov 2024 02:42:33 -0800 (PST)
Message-ID: <5b5416f9-125a-44c3-a56d-f1ff69d42aed@suse.com>
Date: Thu, 28 Nov 2024 11:42:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 02/12] xen/arm: add initial support for LLC coloring
 on arm64
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Andrew Cooper <andrew.cooper3@citrix.com>, 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>,
 xen-devel@lists.xenproject.org
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-3-carlo.nonato@minervasys.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: <20241119141329.44221-3-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 15:13, Carlo Nonato wrote:
> LLC coloring needs to know the last level cache layout in order to make the
> best use of it. This can be probed by inspecting the CLIDR_EL1 register,
> so the Last Level is defined as the last level visible by this register.
> Note that this excludes system caches in some platforms.
> 
> Static memory allocation and cache coloring are incompatible because static
> memory can't be guaranteed to use only colors assigned to the domain.
> Panic during DomUs creation when both are enabled.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>

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

(As this is inapplicable to Arm code, it's independent of Michal's comments.)

Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:44:42 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:44:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845268.1260726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGc0k-0001mj-CT; Thu, 28 Nov 2024 10:44:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845268.1260726; Thu, 28 Nov 2024 10:44: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 1tGc0k-0001mc-9S; Thu, 28 Nov 2024 10:44:38 +0000
Received: by outflank-mailman (input) for mailman id 845268;
 Thu, 28 Nov 2024 10:44: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGc0j-0001mW-RF
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:44:37 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c03f2d57-ad75-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 11:44:32 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-aa539d2b4b2so129251066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 02:44:32 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5998e6dd9sm52415166b.92.2024.11.28.02.44.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 02:44: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: c03f2d57-ad75-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImMwM2YyZDU3LWFkNzUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzkwNjcyLjE1ODk0MSwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732790671; x=1733395471; 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=+4djCGCTRnV2aYfxIR+FOc2yoE4WGWpYsqnf402GIg8=;
        b=ksnmnCN15YrBsCWHkK+FrbwV6isCkM+LOPoIvGy2aVmbV4J8ewj0jzvxcpVcR+4Hq7
         RuRvdtLdOgmVobc0sMa3vw71HAuhoJPbMKyIQHZrK1QEeAPaYBK0sANj0dRTxcvXey3o
         u46jeyDa/QqnGTg06T5KWs+IU9g55OhOyrV9Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732790671; x=1733395471;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+4djCGCTRnV2aYfxIR+FOc2yoE4WGWpYsqnf402GIg8=;
        b=ng932weag4Pmp/25OCYSvzzMphkGnFoJAIi5QiCLiYlDv4eWTghyPDoR6hNzdfZr4S
         8NqA3+2JqalyyPVAmCzt3MtFRH5PSVy618bq4rPjbFiE6j3E/7xjnxEWiGyv+KZ6SMg0
         6Pn7XD1i0rT/t9JxnXzhZDhMYCYvaBgUzc1rW9jhs/kT+DHSKaQ9aGBbc0Xyz6reSkyc
         8b/YeShDTeSgKrE/MVspy6WkzNLh5bTizDD5APPIPfs4ghAU2YcMkeZYtzONJ9WRxTAS
         GPDrkpwbytq3393h/EA9anGSNNOSZimFf1Ex+tqofZZi74bI3wC1DRS0ordIgA8OjYGB
         VXOA==
X-Forwarded-Encrypted: i=1; AJvYcCVjhTVWPCF1GfTpKnBBzwLzJ755ngI+ouTG/82SkZFIIqwej4TPxBTj1GFJu6kQnKQ9zO7QhjJPdX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzASP/UsAe+Rur98NNdxrWcYc5zH7Y8ysjPYvAvMW3LW06bstKh
	qZnJiKlYaFuf1vx1jpLq7pEYd6pAs1QGnKbjIuW6gU/DkjQGcTLI8jVxsw9d9+g=
X-Gm-Gg: ASbGncszkM3ecubhYZqlspnp6UmT5x6DyMFtQCb+APn1ne6+s6DRsqtSey0vVnWOZoC
	7u7d6hU0JT4gljSRHIjOW467JoRei6Za+O4RE5Kg0JHLv1TBQaoFvl4XLeOR+yk1Ls2D8fiW+5H
	DiGCdMH7g/8oYl41tankgWJrz0OvKZGl3/PVjUuHIyWpS/kfMDmN2tNPcvDLakSOtwD3CRBziFG
	HcALSgRrLCKUB6280U2B1I5SkkRcoqp+/E/VsyPnvnOOpb01O5IisH7pGOPUgQ=
X-Google-Smtp-Source: AGHT+IFtqSp4BvYZ7kzz/dByqJ0UEjPu3VAj6ajgE1727ALz0xv2gfSm/wXbCDOyC/CbTFUspiD/5g==
X-Received: by 2002:a17:906:18aa:b0:aa5:438b:513e with SMTP id a640c23a62f3a-aa5946e70cbmr269395466b.30.1732790671538;
        Thu, 28 Nov 2024 02:44:31 -0800 (PST)
Message-ID: <daf8547d-357f-4cae-a537-dc688a920803@citrix.com>
Date: Thu, 28 Nov 2024 10:44:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/APIC: Remove workaround Pentium 3AP APIC_ESR erratum
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Javi Merino <javi.merino@cloud.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <3270b77c005745dcf56cc833bdf3e4c703190b05.1732639041.git.javi.merino@cloud.com>
 <20241126205859.23090-1-andrew.cooper3@citrix.com>
 <a2efdf6c-ab52-4ab6-931e-0801844b4875@suse.com>
 <912ba37b-f60f-4423-bb10-37c708382951@citrix.com>
 <7dc98504-9f0d-4d08-bfc7-8f7f96b3c8b5@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <7dc98504-9f0d-4d08-bfc7-8f7f96b3c8b5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/11/2024 9:41 am, Jan Beulich wrote:
> On 27.11.2024 19:01, Andrew Cooper wrote:
>> On 27/11/2024 8:20 am, Jan Beulich wrote:
>>> On 26.11.2024 21:58, Andrew Cooper wrote:
>>>> --- a/xen/arch/x86/smpboot.c
>>>> +++ b/xen/arch/x86/smpboot.c
>>>> @@ -422,7 +422,7 @@ void asmlinkage start_secondary(void *unused)
>>>>  static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>>>>  {
>>>>      unsigned long send_status = 0, accept_status = 0;
>>>> -    int maxlvt, timeout, i;
>>>> +    int timeout, i;
>>>>  
>>>>      /*
>>>>       * Normal AP startup uses an INIT-SIPI-SIPI sequence.
>>>> @@ -444,8 +444,7 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
>>>>      /*
>>>>       * Be paranoid about clearing APIC errors.
>>>>       */
>>>> -    apic_write(APIC_ESR, 0);
>>>> -    apic_read(APIC_ESR);
>>>> +    apic_read_esr();
>>> ... the one here.
>> ... this one is still correct in place.
> Oh, right.
>
>> I almost had a second function called apic_clear_esr() which was just
>> (void)apic_read_esr().
>>
>> I could put that back in if you think it would be clearer ?
> Nah, it's good as is.

Actually on discussing this with Christian, apic_clear_esr() needs the
write only, and not the read (given no 3AP workaround).

So it is genuinely beneficial to separate apic_{clear,read}_esr() in our
code.

I'll see what the result looks like.Â  I suspect it will be cleaner-still.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 10:47:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 10:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845283.1260735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGc3e-0002Ll-On; Thu, 28 Nov 2024 10:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845283.1260735; Thu, 28 Nov 2024 10: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 1tGc3e-0002Le-MC; Thu, 28 Nov 2024 10:47:38 +0000
Received: by outflank-mailman (input) for mailman id 845283;
 Thu, 28 Nov 2024 10: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGc3d-0002LY-Jh
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 10:47:37 +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 2c60569c-ad76-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 11:47:33 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-aa55171d73cso328585666b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 02:47:33 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5998e6d96sm53485166b.126.2024.11.28.02.47.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 02:47: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: 2c60569c-ad76-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjJjNjA1NjljLWFkNzYtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzkwODUzLjU1MjI5LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732790853; x=1733395653; 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=/pC4PdwshJmcWPYOQG/WxY4rkLlXK+MIN9S37mt1RJk=;
        b=e3F3xHy1iZumwzjRI0WLkmIkhI2dYfl5z9rXz/qzr51KNQYpYgUU1pzRCNdniO4I9x
         zlRzkzpgagjSifS/IEpoaFq34fsNRIvD7nXdJaKExgMu6O8/jLLlysNbKYSdmJXSjT1I
         9Vs8oxJO0zIlPAYhSwBSHYZpPpHQBx7xK37gs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732790853; x=1733395653;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/pC4PdwshJmcWPYOQG/WxY4rkLlXK+MIN9S37mt1RJk=;
        b=wPcFkL+j6PCr8ymngSM11Zs7ztlyKQb31qcLaLJZwoLnZId4TMXxWOTeuHkIRiqnW4
         mhdqs9VQHKFePb01315RSjECcH8H7oIcZrLO60+6Zlly+3/ZFS70kBkqmxbGD4Kr36uc
         8+27RPHK5F9RJCajVVatIURyK3F3u+OTB9aJbO7S/Pi/z68LqeNGt3IiDfdggqa6S/JD
         yt086cYSq2GlJSkUZX2auuu1AXcSrWh+P1ftvPhcTCFwlw8GTkxT8H+c+ur8IRBRr6OP
         8cZlagJzpm4rH5arolDxwuW/d4gZZulqZhOrWI/meJECg0bXFbE2oBhbHroWosGFELxj
         xS0A==
X-Gm-Message-State: AOJu0Ywul3lYMnMW3asxRZnSkEnRQYDkzSTeg6fkR0y1GdLst14yk43K
	Bn8g9O1zy2QXvV+t9JDzYbqcCe/vB4r67m6tbLdP6SRzf3r7xFT94j2r7DZFna8=
X-Gm-Gg: ASbGncvuRkr80ai0zfLBniweSLMeqQaiHy2nDzPRLTMZpYBSNVfMvAdiHJbnrPJeh8D
	O+7viCsmzIt0jkGwGftGgfGC09tM+9g0PxLrqQx9AHA588Pm0miYZXmLkSJsaiyF1bGBU9k/jwQ
	tsJ0TC/1Mgo0JmFcs87mKqSOVM1jzpwlkeJ9ptfY3ZKfTpw1nLsb/4OyLUdyxXTu+wfEblQ5McP
	gtYuq4D/sfkQrP8PKy7nOvMY29fufENgNjJZUMHex+YEdR+cjxs3RLY7ntiyZY=
X-Google-Smtp-Source: AGHT+IG66XcUOnFwGg4+X8iZrifWbPIFJsJMVguOPWdZ3nJyq2YHg9QlCw6iQCmtbSabW658lRHMcg==
X-Received: by 2002:a17:907:9494:b0:aa5:63a0:5d97 with SMTP id a640c23a62f3a-aa5945cdbdcmr311545366b.13.1732790853014;
        Thu, 28 Nov 2024 02:47:33 -0800 (PST)
Message-ID: <14036f23-563e-449a-8439-7e26dd6dbd25@citrix.com>
Date: Thu, 28 Nov 2024 10:47:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/vlapic: Drop vlapic->esr_lock
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-3-andrew.cooper3@citrix.com>
 <Z0g3LBzM-8ox5dAW@macbook> <33f3dbbf-217d-45a7-bb9f-fac7e1a36584@citrix.com>
 <Z0hFJq22n0IljtOy@macbook>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Z0hFJq22n0IljtOy@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/11/2024 10:25 am, Roger Pau MonnÃ© wrote:
> On Thu, Nov 28, 2024 at 10:10:39AM +0000, Andrew Cooper wrote:
>> On 28/11/2024 9:26 am, Roger Pau MonnÃ© wrote:
>>> On Thu, Nov 28, 2024 at 12:47:37AM +0000, Andrew Cooper wrote:
>>>> With vlapic->hw.pending_esr held outside of the main regs page, it's much
>>>> easier to use atomic operations.
>>>>
>>>> Use xchg() in vlapic_reg_write(), and *set_bit() in vlapic_error().
>>>>
>>>> The only interesting change is that vlapic_error() now needs to take an
>>>> err_bit rather than an errmask, but thats fine for all current callers and
>>>> forseable changes.
>>>>
>>>> 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>
>>>>
>>>> It turns out that XSA-462 had an indentation bug in it.
>>>>
>>>> Our spinlock infrastructure is obscenely large.  Bloat-o-meter reports:
>>>>
>>>>   add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-111 (-111)
>>>>   Function                                     old     new   delta
>>>>   vlapic_init                                  208     190     -18
>>>>   vlapic_error                                 112      67     -45
>>>>   vlapic_reg_write                            1145    1097     -48
>>>>
>>>> In principle we could revert the XSA-462 patch now, and remove the LVTERR
>>>> vector handling special case.  MISRA is going to complain either way, because
>>>> it will see the cycle through vlapic_set_irq() without considering the
>>>> surrounding logic.
>>>> ---
>>>>  xen/arch/x86/hvm/vlapic.c             | 32 ++++++---------------------
>>>>  xen/arch/x86/include/asm/hvm/vlapic.h |  1 -
>>>>  2 files changed, 7 insertions(+), 26 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
>>>> index 98394ed26a52..f41a5d4619bb 100644
>>>> --- a/xen/arch/x86/hvm/vlapic.c
>>>> +++ b/xen/arch/x86/hvm/vlapic.c
>>>> @@ -102,14 +102,9 @@ static int vlapic_find_highest_irr(struct vlapic *vlapic)
>>>>      return vlapic_find_highest_vector(&vlapic->regs->data[APIC_IRR]);
>>>>  }
>>>>  
>>>> -static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>>>> +static void vlapic_error(struct vlapic *vlapic, unsigned int err_bit)
>>> Having to use ilog2() in the callers is kind of ugly.  I would rather
>>> keep the same function parameter (a mask), and then either assert that
>>> it only has one bit set, or iterate over all possible set bits on the
>>> mask.
>> It can't stay as a mask, or we can't convert the logic to be lockless.Â 
>> There's no such thing as test_and_set_mask()Â  (until we get into next
>> years processors).
> The test_and_set_bit() will also need to be changed if you agree with
> my comment on patch 1, as the interrupt should only be injected when
> vlapic->hw.pending_esr == 0 rather than whether the specific error is
> set in ESR.

I'm writing a longer email explaining why that's not correct :)

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:01:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:01:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845300.1260746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGcH8-0005aY-1X; Thu, 28 Nov 2024 11:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845300.1260746; Thu, 28 Nov 2024 11:01: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 1tGcH7-0005aR-Tr; Thu, 28 Nov 2024 11:01:33 +0000
Received: by outflank-mailman (input) for mailman id 845300;
 Thu, 28 Nov 2024 11: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGcH6-0005aL-N9
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:01:32 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d350c2e-ad78-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 12:01:27 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a9f1c590ecdso97649366b.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:01:27 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5996c19fasm54397066b.34.2024.11.28.03.01.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03:01: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: 1d350c2e-ad78-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjFkMzUwYzJlLWFkNzgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzkxNjg3LjE1NTg3NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732791686; x=1733396486; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:subject:from:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NdisanXihBrK8URDLQd6ISVpgLHh90er2ZExBULLirs=;
        b=lN8zePPzsgCWLVaqFnzGGkmLauzbbDIDUfPVqMZlZ1RUKBp7ZPGGTEhMjSeGbnZPom
         KFBK7LBBnoDdzL7ypMEIqtspiKtPhnC/xtPaFd2Gom2pCub3GcRaVtush+MusOcXWCKn
         BhWD6qBbY1rCmDp8pk1Ost7C0/LOwo4AjUKHw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732791686; x=1733396486;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:subject:from:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NdisanXihBrK8URDLQd6ISVpgLHh90er2ZExBULLirs=;
        b=tqTLE9OnXr1wdbxp2UvvlKsmjnjWydvJ7oSrNKIsT/pvGsIJ/OI2/7SjFuNnZRnsCN
         yC/umM5qPc1ga17YlF+EjJo7plvAXZELFv3OvAKXx2E7n2Y0BXVFWGs8rI6Dme+yTpLS
         s7o62W16yEdgVdA9k+HOncj9nQeaMnEyU19nkHUmLxM1W5rwVUmJD+xvbYUpm2xrqwNL
         paK7r64fcaQXFZoZlfijkfqv0Hwu8QkRhQ14VhTx7xy9o7eKJH9JuRSIbg7F9jE41gAm
         tj+AtGst8aa9SWUgpZ4Y1SX+dLNviHmnjSPuU2bF3SxjbomMVv+QqQZpfzp36zhGPWxq
         rJdw==
X-Gm-Message-State: AOJu0Yw62jMUh6jVBJrnck71zVfYH7w+Y9umPdrkkG1p0rZCcw//gI57
	j6mw30Ea8utwgfI0hjpYU2zSz0jajNpl/1SiQpSfTLNyhrgA2CRhDKc0Bw8x7vSURSJJuRiQmwN
	T
X-Gm-Gg: ASbGncszV5UJj0bPPdZmoUrnrf1CRckJMbTo8bmNianZqaHDfPA9da4nPD/p6jnH9+Y
	XuH32AunTRs7HdPe41cNXjw4LOWA8GJYvQC3SoENWxatrYXU50O0OLb01BZfqeFEgJi4FJYkPFK
	aHCM1b8l3PbG/R00IWy9dkVauIjeSlrfR0zrlbBujQ0z6gLOci3Z6CPHfbGGWkgxPYqymPmqCzC
	9mz+/9kGkPAjOL/w9RsiZar+cw+w/4wrvxFR8te5USE9gb2iOOpKFaD/dUq/bU=
X-Google-Smtp-Source: AGHT+IGr7FTk8DMyNMgmQkGUkn/BKNDivAF1zFC+ysXhG3JL00WajLrbqlNBGGWGni+U1G5vbZuKVw==
X-Received: by 2002:a17:906:328d:b0:aa5:1d08:dad0 with SMTP id a640c23a62f3a-aa580ede47cmr501873866b.1.1732791686424;
        Thu, 28 Nov 2024 03:01:26 -0800 (PST)
Message-ID: <4b8656ad-5a52-4c62-a7b4-bbc16226653d@citrix.com>
Date: Thu, 28 Nov 2024 11:01:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-2-andrew.cooper3@citrix.com>
 <Z0gx5EdqcPiEUt3z@macbook>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Z0gx5EdqcPiEUt3z@macbook>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/11/2024 9:03 am, Roger Pau MonnÃ© wrote:
> On Thu, Nov 28, 2024 at 12:47:36AM +0000, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
>> index 3363926b487b..98394ed26a52 100644
>> --- a/xen/arch/x86/hvm/vlapic.c
>> +++ b/xen/arch/x86/hvm/vlapic.c
>> @@ -108,7 +108,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>>      uint32_t esr;
>>  
>>      spin_lock_irqsave(&vlapic->esr_lock, flags);
>> -    esr = vlapic_get_reg(vlapic, APIC_ESR);
>> +    esr = vlapic->hw.pending_esr;
>>      if ( (esr & errmask) != errmask )
>>      {
>>          uint32_t lvterr = vlapic_get_reg(vlapic, APIC_LVTERR);
>> @@ -127,7 +127,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>>                   errmask |= APIC_ESR_RECVILL;
>>          }
>>  
>> -        vlapic_set_reg(vlapic, APIC_ESR, esr | errmask);
>> +        vlapic->hw.pending_esr |= errmask;
>>  
>>          if ( inj )
>>              vlapic_set_irq(vlapic, lvterr & APIC_VECTOR_MASK, 0);
> The SDM also contains:
>
> "This write also rearms the APIC error interrupt triggering
> mechanism."
>
> Where "this write" is a write to the ESR register.

Correct.

> My understanding
> is that the error vector will only be injected for the first reported
> error. I think the logic regarding whether to inject the lvterr vector
> needs to additionally be gated on whether vlapic->hw.pending_esr ==
> 0.

I think it's clumsy wording.

Bits being set mask subsequent LVTERR's of the same type.Â  That's what
the "if ( (esr & errmask) != errmask )" guard is doing above.

What I think it's referring to is that writing APIC_ESR will zero
pending_esr and thus any subsequent error will cause LVTERR to deliver.


Having said all that, I can't find anything in the current SDM/APM which
states this.Â  I think I need to go back to the older manuals.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:05:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:05:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845308.1260756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGcKY-0006Tg-Ec; Thu, 28 Nov 2024 11:05:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845308.1260756; Thu, 28 Nov 2024 11:05: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 1tGcKY-0006TZ-C3; Thu, 28 Nov 2024 11:05:06 +0000
Received: by outflank-mailman (input) for mailman id 845308;
 Thu, 28 Nov 2024 11:05: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGcKW-0006TR-UW
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:05:04 +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 9ca6a3fa-ad78-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 12:05:00 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-434a044dce2so7505465e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:05: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-434b0d9bef8sm18492005e9.7.2024.11.28.03.04.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03:05: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: 9ca6a3fa-ad78-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzUiLCJoZWxvIjoibWFpbC13bTEteDMzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjljYTZhM2ZhLWFkNzgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzkxOTAwLjk2MzI3NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732791900; x=1733396700; 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=Tf9e3TdnYtGxqFx1XkyvFSt9XUmCh5TlD34xV1GaH+A=;
        b=HUqRxmptvVgWCK9X60ycuE6dkXgCGJU/uP/B2m6emnvsQMziGlrHSJuRpJN4TIEbNi
         IMRXLjdoVx3W0cLOMfuo/BcNPRm2FbblJYofGBSCU0CpbTkE9loUBe2Yxmpf9xGZ+9x3
         NjyD4zvSVrtwL5z7EaWcLhjOajI2ckNGpCa8mEbm6JqyPxh9zsXsjLg6zRxgDuugNoLv
         mV0Zrza+ByoHe64Eog9YJ+dfKFt9MFt1Pi00ygcTU/Fr9sSOyY1jFCSvv9vBuMcvFi3Q
         Rfjy3tNPDwFAztpHo5MxplomYmlEvBf4h2TXTtFczitnZemNjKtTJ7rLVTNJtmuQzf1d
         +otQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732791900; x=1733396700;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Tf9e3TdnYtGxqFx1XkyvFSt9XUmCh5TlD34xV1GaH+A=;
        b=Yi5fH51fTrvt4TUTeTDujgRilwR+Cc2xrkUFZSupR31gKbn11EowrG+G2blzNHK75W
         TlfRQmNZsMxIBNsugbWbAA182WGDzWz+4Yo7iwaedfMAQDsEEXnSqkq/j0Et+GcKZaN0
         iF2XRzKE2ey/8GbKEV84b7ZqnlAsD2DAts9WIU9rgNc1RY60fuAifyIlnZUN9JrBMJd0
         HXCZuBWGq7h0zyPmCVIH/ulwmz3XICHrbg6ZtqaZ+Sd9xPQtVvvsZJaneIJBZNNqXrAC
         GIO78Z+MYGTtiX5qDMOQv7LeyBg1znyWWGyJPAjmUfsGR5yb3MY8F2Sd1IR8aBCNJOEy
         uAvA==
X-Forwarded-Encrypted: i=1; AJvYcCV4zni7PiQYqt1nIDvjUObpg1zMu9FnXxXeuhWxUJx2SzF7iAmAjqnpEhPKLDF31K94sU9p4J6Hur4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhhyCL0ENGe0ikOT6cv3bWy3Z5Dqgf+3rDv7byXoClmziNOOFb
	tfpW3TwSsYjkjyf9vf6U1tGbX3be02x+UYXmOF9zjZaqMhmA0qNlZrW6B70ssw==
X-Gm-Gg: ASbGncsWxzalBf6gQhULpNz0wda6YrBt+leUD5yfV+Oy3LJ5B1edmO+yN5YnDfIoHMT
	0vSyPXdOggbQI8+P4rmgPmz1mgkb4CKwWz568i8ydhL0iupzkemHhHyMhT10zH97MAQ+EqxKy02
	DM9WvE/eNKBF/Om6sOWQrSdQhDeUDFC3cnDCx61lg+J3X23CRyI1Z4bZWwzwf6k7YnvBciDqyZx
	hIcTESsVfTAjTxPKKOhmAHHEbMyxqf0NYuqYZTgW7SoYKaPYOrwkNhMtmSiQ0KAbGsfEd/b3um0
	wDdP2gg4Jk+jP+EkzXdm75iYtNYq8c9VSMc=
X-Google-Smtp-Source: AGHT+IEDXrBhSQBcVl7DRj09AKHMlrST7rqkdjShLMGdcFskZGi1Bft0O/vsuJquKVUFkBnJ3wsH9g==
X-Received: by 2002:a05:600c:5024:b0:434:a1d3:a321 with SMTP id 5b1f17b1804b1-434a9dbb663mr78379815e9.3.1732791900335;
        Thu, 28 Nov 2024 03:05:00 -0800 (PST)
Message-ID: <29e69d97-41ef-4ebc-a68e-0253e230f6f4@suse.com>
Date: Thu, 28 Nov 2024 12:04:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 08/12] xen/page_alloc: introduce preserved page flags
 macro
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-9-carlo.nonato@minervasys.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: <20241119141329.44221-9-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 15:13, Carlo Nonato wrote:
> PGC_static, PGC_extra and PGC_broken need to be preserved when assigning a
> page. Define a new macro that groups those flags and use it instead of or'ing
> every time.
> 
> To make preserved flags even more meaningful, they are kept also when
> switching state in mark_page_free().
> Enforce the removal of PGC_extra before freeing domain pages as this is
> considered an error and can cause ASSERT violations.
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> ---
> v10:
> - fixed commit message
> v9:
> - add PGC_broken to PGC_preserved
> - clear PGC_extra in alloc_domheap_pages() only if MEMF_no_refcount is set
> v8:
> - fixed PGC_extra ASSERT fail in alloc_domheap_pages() by removing PGC_extra
>   before freeing
> v7:
> - PGC_preserved used also in mark_page_free()
> v6:
> - preserved_flags renamed to PGC_preserved
> - PGC_preserved is used only in assign_pages()
> v5:
> - new patch
> ---
>  xen/common/page_alloc.c | 19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 7b911b5ed9..34cd473150 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -160,6 +160,7 @@
>  #endif
>  
>  #define PGC_no_buddy_merge PGC_static
> +#define PGC_preserved (PGC_extra | PGC_static | PGC_broken)
>  
>  #ifndef PGT_TYPE_INFO_INITIALIZER
>  #define PGT_TYPE_INFO_INITIALIZER 0
> @@ -1427,12 +1428,11 @@ static bool mark_page_free(struct page_info *pg, mfn_t mfn)
>      {
>      case PGC_state_inuse:
>          BUG_ON(pg->count_info & PGC_broken);
> -        pg->count_info = PGC_state_free;
> +        pg->count_info = PGC_state_free | (pg->count_info & PGC_preserved);
>          break;

PGC_extra doesn't want preserving here. Since it's mark_page_free(), and
since PGC_extra is removed before freeing, the state change is apparently
fine. But an assertion may want adding, for documentation purposes if
nothing else.

Alternatively it may make sense to indeed exclude PGC_extra here. In fact
PGC_static doesn't need using here either, as unprepare_staticmem_pages()
will explicitly set it again anyway.

Hence I wonder whether the change here really is necessary (one will then
be needed in the next patch aiui, when PGC_colored is introduced). Which
would then eliminate the need for the final two hunks of the patch, I
think.

>      case PGC_state_offlining:
> -        pg->count_info = (pg->count_info & PGC_broken) |
> -                         PGC_state_offlined;
> +        pg->count_info = (pg->count_info & PGC_preserved) | PGC_state_offlined;
>          pg_offlined = true;
>          break;

I'm similarly unconvinced that anything other than PGC_broken (and
subsequently perhaps PGC_colored) would need preserving here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:09:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:09:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845320.1260766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGcOl-00074j-UQ; Thu, 28 Nov 2024 11:09:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845320.1260766; Thu, 28 Nov 2024 11: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 1tGcOl-00074c-RK; Thu, 28 Nov 2024 11:09:27 +0000
Received: by outflank-mailman (input) for mailman id 845320;
 Thu, 28 Nov 2024 11: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGcOj-00074W-PJ
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:09:25 +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 38d06dbe-ad79-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 12:09:22 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-382378f359dso537367f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:09: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-434b0f70ea8sm18966035e9.40.2024.11.28.03.09.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03: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: 38d06dbe-ad79-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzMiLCJoZWxvIjoibWFpbC13cjEteDQzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM4ZDA2ZGJlLWFkNzktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzkyMTYyLjk1NTEzNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732792162; x=1733396962; 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=Z0BupGNm/apGpJAAzh6cqG4V9lRTsiOxQb2A9JGVFQs=;
        b=fRGlKSOfCra8H7/HzJzCNWELadi9URjKBtDX9dnKjzVDaV/UvM4rnLsQ3BYOpD/EXy
         u9ZVgpBDIItN+f8F/i3oCKN+LfUQVp63BODFFKVCexIlDWcQeD/7EUQTP2qPDyBJItR9
         FyuD+BFopoUgriNA1ANGbEtaBVTsxFnG57hEPq4V9xh+Qc0aD0D0X2POiETajCRyp7Fg
         YDptgf5sosCe1dn8yAbwHKV2VWA7Hj3OzIHdgQZWajSGTXOt7mwa9WWahpDSSMijqIf8
         B6qyr7yUSPNJOoUQ/Pj5BwdhMPvP9E2VqjCac1C955U7D4IL3q3MV0V4IL/qsa9HqsZ8
         +Xvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732792162; x=1733396962;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z0BupGNm/apGpJAAzh6cqG4V9lRTsiOxQb2A9JGVFQs=;
        b=cVwR540JSp/v7jrkmOPBMwVHqeBcocLR1YQDdzAzwsjXVL5u5b4eo/F3+TbOqbnwRm
         4XOOtJ2vCWl3g2jHBBv/bLFR8zGRy8tVKcg5MEEXpujM0bof4uMIDMte+ltsXiHyb8mi
         oOjgXtqGELQT5MyExad8/KOCX8stdnZbalCdAW7cU7+iGGvO2jrx1a7mryLG1aNBk+tU
         N1eEoO/2lnT8FscQ62ZIIGDeEkNXd20qE5leG9H6PjfF8ItKnYdYRHIx6PPzJZ/Mxib1
         38n166LCYJUPmB0GrCY1fAEY6nIexVOXEGlYRod44TT22GnYo21ao8Fh3w9S0aHvcIse
         FMzA==
X-Gm-Message-State: AOJu0YxUYRteTbVQE3vJ8U1YGA94ra8lYMECVeY0ujHxIWkzrRsAO9wH
	l/4ogEuhywIuGxwCwp3p/F5/RDNlsj72o3wMbw8/or3J6SihYuegu2kIZp6vHg==
X-Gm-Gg: ASbGnctyIc1JKp9c2fpLsGNCtXEQI6M/skVUbGfZknGRf+94cIlv6ULmqN+u2l7mOkh
	DYUbmnW+r8ad/fsDgVpNf4oW3XCoMM8tM3z6mHdVVOioEPQZ8ywfVgrAxJVsJdSHiks6xnaRSUs
	VPiqlQxA6NbAsKPg5Dzg3UXD1DL1LiSuEPicr7znqR8cXM3WCsVFsZeR8fmlOGxopovPYHdvrh4
	2y8X+oeB67nlRiFknizO8QCelvQ+OjULcVCUUoVnbrwyeBvCj/vPbU86WZJcYHFGGkyDjFHg7rt
	5KtUHPROQJnXUBKP0/TZ48joOc0Mw2sY+Bc=
X-Google-Smtp-Source: AGHT+IGiK/GCRcs0f80xByGgpzPExg4Fu0pwSoq39nPCFnEc5tIuQhrj1//cnMXsrTd4XIoOBGajCQ==
X-Received: by 2002:a05:6000:2804:b0:382:4aeb:91ac with SMTP id ffacd0b85a97d-385c6ebaa04mr3892691f8f.31.1732792162310;
        Thu, 28 Nov 2024 03:09:22 -0800 (PST)
Message-ID: <9799e1e3-b3bb-48e2-8d9a-7deb4ef0d694@suse.com>
Date: Thu, 28 Nov 2024 12:09:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-2-andrew.cooper3@citrix.com>
 <Z0gx5EdqcPiEUt3z@macbook> <4b8656ad-5a52-4c62-a7b4-bbc16226653d@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: <4b8656ad-5a52-4c62-a7b4-bbc16226653d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.11.2024 12:01, Andrew Cooper wrote:
> On 28/11/2024 9:03 am, Roger Pau MonnÃ© wrote:
>> On Thu, Nov 28, 2024 at 12:47:36AM +0000, Andrew Cooper wrote:
>>> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
>>> index 3363926b487b..98394ed26a52 100644
>>> --- a/xen/arch/x86/hvm/vlapic.c
>>> +++ b/xen/arch/x86/hvm/vlapic.c
>>> @@ -108,7 +108,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>>>      uint32_t esr;
>>>  
>>>      spin_lock_irqsave(&vlapic->esr_lock, flags);
>>> -    esr = vlapic_get_reg(vlapic, APIC_ESR);
>>> +    esr = vlapic->hw.pending_esr;
>>>      if ( (esr & errmask) != errmask )
>>>      {
>>>          uint32_t lvterr = vlapic_get_reg(vlapic, APIC_LVTERR);
>>> @@ -127,7 +127,7 @@ static void vlapic_error(struct vlapic *vlapic, unsigned int errmask)
>>>                   errmask |= APIC_ESR_RECVILL;
>>>          }
>>>  
>>> -        vlapic_set_reg(vlapic, APIC_ESR, esr | errmask);
>>> +        vlapic->hw.pending_esr |= errmask;
>>>  
>>>          if ( inj )
>>>              vlapic_set_irq(vlapic, lvterr & APIC_VECTOR_MASK, 0);
>> The SDM also contains:
>>
>> "This write also rearms the APIC error interrupt triggering
>> mechanism."
>>
>> Where "this write" is a write to the ESR register.
> 
> Correct.
> 
>> My understanding
>> is that the error vector will only be injected for the first reported
>> error. I think the logic regarding whether to inject the lvterr vector
>> needs to additionally be gated on whether vlapic->hw.pending_esr ==
>> 0.
> 
> I think it's clumsy wording.
> 
> Bits being set mask subsequent LVTERR's of the same type.Â  That's what
> the "if ( (esr & errmask) != errmask )" guard is doing above.

That's what we do, yes, but is that correct? I agree with Roger's reading
of that sentence.

> What I think it's referring to is that writing APIC_ESR will zero
> pending_esr and thus any subsequent error will cause LVTERR to deliver.

..., while at the same time preventing LVTERR delivery when there was
another error already pending.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:11:09 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:11:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845328.1260776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGcQD-0000EP-9P; Thu, 28 Nov 2024 11:10:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845328.1260776; Thu, 28 Nov 2024 11:10: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 1tGcQD-0000EI-5b; Thu, 28 Nov 2024 11:10:57 +0000
Received: by outflank-mailman (input) for mailman id 845328;
 Thu, 28 Nov 2024 11:10: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGcQC-0000EC-3n
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:10:56 +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 6db23ec4-ad79-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 12:10:51 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-53dd59a2bc1so714719e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:10:51 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5998e649csm54756466b.110.2024.11.28.03.10.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03:10: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: 6db23ec4-ad79-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoxMzAiLCJoZWxvIjoibWFpbC1sZjEteDEzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZkYjIzZWM0LWFkNzktMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzkyMjUxLjU1OTA0LCJzZW5kZXIiOiJhbmRyZXcuY29vcGVyQGNsb3VkLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732792251; x=1733397051; 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=V97E3FiWEnwxj2OyjCj39Hw/xOUhGkwp796iRXQqa9A=;
        b=LewlCm3jTDboxnKgdHUG2kfNJROJGJz/5ZpsMdqBaEcrWvVWAvbwgY4qYQHRXw/PNu
         tn8TI8c3xxmZl6jPIUsHvPqgUd06wEEfHXlPFvpCUdIFwxXRjMTOxpJNMJwgK/b+SlYJ
         7KNIAfqARZ6o6WnMFlJXLaxxgdA0eevGT4uao=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732792251; x=1733397051;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V97E3FiWEnwxj2OyjCj39Hw/xOUhGkwp796iRXQqa9A=;
        b=fZnrCUq3U+z78u9yugOBLmF+/dH4pc77hiioh4AESq3lfMJdnH5lUA3eXUKA6ZXXS1
         zLgFlW6WmZ4XZemS6siZ395lyeX/xZk8dD2Wbtjjabt7mU9+V3wrJpk5gyxzfqjYjN5R
         M1nIhPb0AxF7HyCOEI6et1Yb+aqTDC7Ja2JBTpStEobH4zRJ8Jl7IEMet3mVCDe1cdYK
         1/iQan8gRayZ5OjMXW3sOyVfNoA8TDNyICyla4sqeLeL32LbMhoX0lOgUu2WBKh9/IYY
         DjEZk2Qz6fBZD4s8Py6U/4nCUSp26eElgbJZvnk9L/1el4ZiASCVooerDqNWrAuMG5ZM
         DdwQ==
X-Forwarded-Encrypted: i=1; AJvYcCX5vZuM+kbdaGoMigS0RUfHsAHnkEjvt3sDfTFbnYrH1txcALCuIQHbMsK8eNnN9JdTPqWvNXrO3eI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmO2s1JgM5pieygKUQZz9d0kOWMvypDYx8INBxPpFcYhnCTEPh
	ODVXqknIgAhrdqGMXQz+3M6LPYO6evU0euMvOEW3B4sV3B26uaakKbrkNIJXdb4=
X-Gm-Gg: ASbGncvW14Dgj4ZGArTNYFnaSzvbdGzUDwwqbF3hNiTDTP89BRDToSsmIWlFJub4G2c
	4HT0zpna8LEdstr6pGcyNwLw/y3mY1mMG1QMHgYl2UDeJpqPWyPoqjpPAF4ockq/LEYth21X1BT
	slRVfxNEEceU4jJhoYpNn4/+oE9oESfWWmDfpLPQCM1CyID3V8iKwfLCLMLLuUy7d8wx94S5u8G
	fKUv4KkPB1RhSfR5gHDLlvYvXcpgzGCs7bRD7ACUMfWWKsnAYRajhx5Xl80td4=
X-Google-Smtp-Source: AGHT+IGrFjx2zwlkE3eaV1e/G5y9NdgTVLR+Zmj2bY1fvthRHQCChDKy9rI490PbzC/pF9mA7AabeA==
X-Received: by 2002:a05:6512:3e1d:b0:539:e12c:bba7 with SMTP id 2adb3069b0e04-53df00a9f2amr3647568e87.12.1732792250973;
        Thu, 28 Nov 2024 03:10:50 -0800 (PST)
Message-ID: <8a3a3daa-16f6-4488-ae46-224379033c54@citrix.com>
Date: Thu, 28 Nov 2024 11:10:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-2-andrew.cooper3@citrix.com>
 <e576e161-5054-40d2-af02-6f32ef636782@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <e576e161-5054-40d2-af02-6f32ef636782@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/11/2024 10:31 am, Jan Beulich wrote:
> On 28.11.2024 01:47, Andrew Cooper wrote:
>> Xen currently presents APIC_ESR to guests as a simple read/write register.
>>
>> This is incorrect.  The SDM states:
>>
>>   The ESR is a write/read register. Before attempt to read from the ESR,
>>   software should first write to it. (The value written does not affect the
>>   values read subsequently; only zero may be written in x2APIC mode.) This
>>   write clears any previously logged errors and updates the ESR with any
>>   errors detected since the last write to the ESR. This write also rearms the
>>   APIC error interrupt triggering mechanism.
>>
>> Introduce a new pending_esr field in hvm_hw_lapic.  Update vlapic_error() to
>> accumulate errors here, and extend vlapic_reg_write() to discard the written
>> value, and instead transfer pending_esr into APIC_ESR.  Reads are still as
>> before.
>>
>> Importantly, this means that guests no longer destroys the ESR value it's
>> looking for in the LVTERR handler when following the SDM instructions.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> No Fixes: tag presumably because the issue had been there forever?

Oh, I forgot to note that.

I can't decide between forever, or since the introduction of the ESR
support (so Xen 4.5 like XSA-462, and still basically forever).
>> ---
>> Slightly RFC.  This collides with Alejandro's patch which adds the apic_id
>> field to hvm_hw_lapic too.  However, this is a far more obvious backport
>> candidate.
>>
>> lapic_check_hidden() might in principle want to audit this field, but it's not
>> clear what to check.  While prior Xen will never have produced it in the
>> migration stream, Intel APIC-V will set APIC_ESR_ILLREGA above and beyond what
>> Xen will currently emulate.
> The ESR really is an 8-bit value (in a 32-bit register), so checking the
> upper bits may be necessary.

It is now, but it may not be in the future.

My concern is that this value is generated by microcode, so we can't
audit based on which reserved bits we think prior versions of Xen never set.

I don't particularly care about a toolstack deciding to feed ~0 in
here.Â  But, if any bit beyond 7 gets allocated in the future, then
auditing the bottom byte would lead to a migration failure of what is in
practice a correct value.

>  Plus ...
>
>> --- a/xen/include/public/arch-x86/hvm/save.h
>> +++ b/xen/include/public/arch-x86/hvm/save.h
>> @@ -394,6 +394,7 @@ struct hvm_hw_lapic {
>>      uint32_t             disabled; /* VLAPIC_xx_DISABLED */
>>      uint32_t             timer_divisor;
>>      uint64_t             tdt_msr;
>> +    uint32_t             pending_esr;
>>  };
> ... I think you need to make padding explicit here, and then check that
> to be zero.

On further consideration I need to merge this with Alejandro's change.Â 
His depends on spotting the need to zero-extend beyond tdt_msr to
identify the compatibility case.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:27:39 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:27:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845359.1260786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGcgG-0002qn-OH; Thu, 28 Nov 2024 11:27:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845359.1260786; Thu, 28 Nov 2024 11:27: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 1tGcgG-0002qg-LD; Thu, 28 Nov 2024 11:27:32 +0000
Received: by outflank-mailman (input) for mailman id 845359;
 Thu, 28 Nov 2024 11:27: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=t80U=SX=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tGcgF-0002qJ-8U
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:27:31 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2407::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb8bd317-ad7b-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 12:27:22 +0100 (CET)
Received: from PH8PR05CA0016.namprd05.prod.outlook.com (2603:10b6:510:2cc::17)
 by BY5PR12MB4306.namprd12.prod.outlook.com (2603:10b6:a03:206::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.13; Thu, 28 Nov
 2024 11:27:12 +0000
Received: from SN1PEPF00036F3D.namprd05.prod.outlook.com
 (2603:10b6:510:2cc:cafe::ac) by PH8PR05CA0016.outlook.office365.com
 (2603:10b6:510:2cc::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.13 via Frontend Transport; Thu,
 28 Nov 2024 11:27:12 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF00036F3D.mail.protection.outlook.com (10.167.248.21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Thu, 28 Nov 2024 11:27:12 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 28 Nov
 2024 05:27:10 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Nov 2024 05:27:09 -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: bb8bd317-ad7b-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQwNzo6NjFkIiwiaGVsbyI6Ik5BTTAyLUJOMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImJiOGJkMzE3LWFkN2ItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzkzMjQyLjI1MTEzMiwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fhmj9y8FIfZu7WMhm2/8iHCb4C8LrFBMLeF7JpP3BUQWRuXakGoLtwhV5Yjy/bXzzBQBUG70B4y5FgEkv+c0E1W7LOHkl7EGTlSMmui11or6WBMD+gYFkyueu+7p4XZ128x9HDzUiBiP+qOTsT22+CKvxQJfC4nuYOA3V9QiqbITe7pqW/wTd6oXYa1lcHknV02TZT9gREad4u64uIb0mpB+SW7txMMyPw0W1S3GBBgi6M9VCNWb/FntppYCUm0Kp3AsCvmy4P3bsrTb/zwdPbnSfSyBwehGInG4MPIZzXmvhYgDTqjHHAB/tB8txmQB3GNb+wNLrbCot8JGY1T3jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DRR+vA9X5NgwptOMCfAUnUvMOlkqjmd2Z0yb+fBYOpA=;
 b=AOw8iAeZ3zyqvyDjfdBaVV96fBkVk7oglhF4AV4JGQzzrkqeYwyw6lrbVP4pu6mGgiqG4GBeI08fZ2+reYlIrVe9zYZiko4KMHmoIsa1nycw1UvW7ELORGsn42g70L8b5pUFfk/JFtr8uKvgumKL4W7Bm62QQ2xBedaoL/OT++reeY5ZS2IHsyKizidGt00pUzG7LHaJlhCuDdX7bbjezQLZb+HBqyuFhOsdHEcVA4O05999u8rhOkecndQDGTWQUqgbDcFxAxD6q0whBijMNuNU6Bfm8RTObWikHFCi4N3nRRWd+Vb0gnfnFFJzBwR0Rn4KIokrK+wwsZWMeCi74g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=minervasys.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=DRR+vA9X5NgwptOMCfAUnUvMOlkqjmd2Z0yb+fBYOpA=;
 b=OxUz54MukjWQzGMvkBRnVd6MtD3TGjZbQO+fZL2OjhfVF6v1kIu0g94KiKLqJhf/iaedRFjUMC46FipiTVTthAyB/FiW1UwGyix5777ZEb8+OXXrVHrM59aH/nMl/sF1UVXNmdxqrm/D0tOvXMFA42FM5/tgy5NLkFAJSHpHZV4=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <8bf09c24-4226-4a67-aa16-89fb43790237@amd.com>
Date: Thu, 28 Nov 2024 12:27:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 04/12] xen/arm: add Dom0 cache coloring support
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
	<xen-devel@lists.xenproject.org>
CC: <andrea.bastoni@minervasys.tech>, <marco.solieri@minervasys.tech>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-5-carlo.nonato@minervasys.tech>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241119141329.44221-5-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3D:EE_|BY5PR12MB4306:EE_
X-MS-Office365-Filtering-Correlation-Id: 5dfd3f61-fadb-41ae-8b40-08dd0f9f9a7c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|7416014|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S0kxb0EzZFVvUmc1Y1hTL255cnZ0OHB2OWVWVzJwVzNWaVVZTjFIa0hUT0FE?=
 =?utf-8?B?REcyeFpIaVZFZXNrWXJIOVhFOG5ieUdnZjVBcitBRHdORFpTbHRveWljU09O?=
 =?utf-8?B?UTlzNnZVUXZxZmJJZzZuNXJZaEZGT1J6dUNtd2wyekdqWE1RWDZ5ZTM5cWoy?=
 =?utf-8?B?V094Umt6c0NuRzFmaVdUSjlieVRLUDlRZlkxaXZwK08ybzZaRXFlbS9QMXU4?=
 =?utf-8?B?WG1vSUZqTTNFVmVYVEpnYnlxRGptSnprSitaLzdGYjdXS1NzSUJDNFh6dkNP?=
 =?utf-8?B?ejBMV2dJVlpKaTcrdENSZm85WE1mK2pNQnRQSmQzaERYZU9wbDJvelYrRTYr?=
 =?utf-8?B?ZVJtQnpqc05nQysyaGo1b2tkbUppWU9CMU5SbVhpTllhbGRLbktlQitOS3VX?=
 =?utf-8?B?VldIVG9IZGlUZXNabUVDMHhuY0dtZlVBNVBUQjA5SkxBT1VwTEFpZFc2NTgx?=
 =?utf-8?B?Vmk5WWVpSVZmQStLWFRlcTRlMkRuSDBaQ3N4dWpNWmdMU0IveGtKeGhsUFpO?=
 =?utf-8?B?YVVPMHdPRjVnZjVnblhGWTF5STFSNVltenR5MFkvRm9vZXliaGFDTjdjNGNo?=
 =?utf-8?B?dkpMcm5yOU0rSXpFUDhWenFMOWdyU2VjbmkvdGRYT3kyK2tFWEQ0b21SSndo?=
 =?utf-8?B?c0Z1NEFTdDd3clY4cGZWWGlkOXFkblBRTXhOaGt2NWpINXYxaW5rbzdOUWxQ?=
 =?utf-8?B?cm10VFRrdXIvMFhCbUYza01qWXJ2bnRINzhLMExlOWtCUUplSFRmUE1Sclo5?=
 =?utf-8?B?ZGM1dnR2SFR0dndHYmNpVVE4ZlNZUjVvaVRDUGtDS3A0aFdlQk9CMGhsRFh5?=
 =?utf-8?B?ZWdSYlZFcjcvTGdsdEY2QjZjQ0N3S2s3MGZISmliOGtlcGZjVTgrTTRDOFEz?=
 =?utf-8?B?TmRranhUa0xGdTVDWUh0QXBoMzhWckdiNlV3WlRQR0laWjlGeGY1K2xGQjJV?=
 =?utf-8?B?TEVCbm04ZmY5UFpJZkU3YUdqd0NmakxYY1A1RlRiaDZnSWhieUJDOFFpaWRt?=
 =?utf-8?B?Um5hbnJuczRjYkxWSkFyRGwvYUROZG5VSHpEWUVqR3VvdnVNVElwSDByOGVw?=
 =?utf-8?B?STRKYjZlbGdaSFVydDBHMi82b0gxMGpESEExd2JQbUJwekorbjZIQzRab2ox?=
 =?utf-8?B?M1RiZFhtamZnc1k3UEhaS2FzZkZhRGRXUU9xUWRndU13TktidXUzYTNBYUFu?=
 =?utf-8?B?Q2tod0lITzlvUElqMWpwRm1FMkJaTDkreHlObDBvVmo4dklkcWpyeER1WmZX?=
 =?utf-8?B?TWFCUUxiZ1BuMnB2WklHWE02eGVyZGp2alRsWTR6RHFRaW91cm8yNSsyN1VG?=
 =?utf-8?B?cHVTQm9vUzE0K2hIbXFycHRsa0hUeUJ4RFlmRG9nRU0xK3JERXlLY2lDNXNl?=
 =?utf-8?B?T1UrOVczalY0QjdlK2thMTg5eTh1U21LdDQ0eDd0M0Jhcm95R0g3ajZzVGcz?=
 =?utf-8?B?citweDE3aTlva29rSUEvVmh3dHNrdjdBZEptcFpwTHdjcEhxdjlXZjNobjQ0?=
 =?utf-8?B?L0Fta0F5Rkt0cWt0MGZKNXlsWEJNNmNNakxxY3BqMVdqYUgrRDFVdEtsd29Z?=
 =?utf-8?B?OWRiZzdXK3EwQUIrTHJOdGI3bFhUR25JZ09TMG1YUGd1bUZncENSbklmWEFW?=
 =?utf-8?B?c0dlQjBkd0VHZzc0MDRmYXE1K1I2YkFCWEVCQ3FKaTI4MWg5MUtVOFl3dlNy?=
 =?utf-8?B?QXAyR3g4dnYyNCt4ZnhsbTVuajd3M0ZYQU5PN1plcUJhSWplNXhNSUdITzBL?=
 =?utf-8?B?R2VjYTMvOFNQbDVjSmxjbWR1Qyt3S3JXaFI5b0xoTmp4L3pQeFBCVGh1b0Rx?=
 =?utf-8?B?UFdIWmhUNTlmKzBvd05JYStVNG1uR3gwM1hXNXhjcmtkZmpmeCtnTWRSZVJX?=
 =?utf-8?B?OGhvZHBXSmFuSDZ2eS92Wmo3Q0FQNG15Q1orOGRET0JLeEQvZmFlc2ZGcGlR?=
 =?utf-8?Q?o77b4+wLBrIpqOKsNdQXHo6sFLJsm3jb?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2024 11:27:12.1611
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5dfd3f61-fadb-41ae-8b40-08dd0f9f9a7c
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4306



On 19/11/2024 15:13, Carlo Nonato wrote:
> 
> 
> Add a command line parameter to allow the user to set the coloring
> configuration for Dom0.
> A common configuration syntax for cache colors is introduced and
> documented.
> Take the opportunity to also add:
>  - default configuration notion.
>  - function to check well-formed configurations.
> 
> Direct mapping Dom0 isn't possible when coloring is enabled, so
> CDF_directmap flag is removed when creating it.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> v10:
> - fixed array type for colors parameter in check_colors()
> v9:
> - moved domain_llc_coloring_free() in next patch cause it's never used for dom0
> v8:
> - added bound check on dom0_num_colors
> - default colors array set just once
> v7:
> - parse_color_config() doesn't accept leading/trailing commas anymore
> - removed alloc_colors() helper
> v6:
> - moved domain_llc_coloring_free() in this patch
> - removed domain_alloc_colors() in favor of a more explicit allocation
> - parse_color_config() now accepts the size of the array to be filled
> - allocate_memory() moved in another patch
> v5:
> - Carlo Nonato as the new author
> - moved dom0 colors parsing (parse_colors()) in this patch
> - added dom0_set_llc_colors() to set dom0 colors after creation
> - moved color allocation and checking in this patch
> - error handling when allocating color arrays
> - FIXME: copy pasted allocate_memory() cause it got moved
> v4:
> - dom0 colors are dynamically allocated as for any other domain
>   (colors are duplicated in dom0_colors and in the new array, but logic
>   is simpler)
> ---
>  docs/misc/cache-coloring.rst      |  29 ++++++++
>  docs/misc/xen-command-line.pandoc |   9 +++
>  xen/arch/arm/domain_build.c       |  10 ++-
>  xen/common/llc-coloring.c         | 119 +++++++++++++++++++++++++++++-
>  xen/include/xen/llc-coloring.h    |   1 +
>  5 files changed, 166 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> index b608284e9b..c5fb33996c 100644
> --- a/docs/misc/cache-coloring.rst
> +++ b/docs/misc/cache-coloring.rst
> @@ -105,6 +105,35 @@ Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
>  +----------------------+-------------------------------+
>  | ``llc-nr-ways``      | Set the LLC number of ways    |
>  +----------------------+-------------------------------+
> +| ``dom0-llc-colors``  | Dom0 color configuration      |
> ++----------------------+-------------------------------+
> +
> +Colors selection format
> +***********************
> +
> +Regardless of the memory pool that has to be colored (Xen, Dom0/DomUs),
> +the color selection can be expressed using the same syntax. In particular a
> +comma-separated list of colors or ranges of colors is used.
> +Ranges are hyphen-separated intervals (such as `0-4`) and are inclusive on both
> +sides.
> +
> +Note that:
> +
> +- no spaces are allowed between values.
> +- no overlapping ranges or duplicated colors are allowed.
> +- values must be written in ascending order.
> +
> +Examples:
> +
> ++-------------------+-----------------------------+
> +| **Configuration** | **Actual selection**        |
> ++-------------------+-----------------------------+
> +| 1-2,5-8           | [1, 2, 5, 6, 7, 8]          |
> ++-------------------+-----------------------------+
> +| 4-8,10,11,12      | [4, 5, 6, 7, 8, 10, 11, 12] |
> ++-------------------+-----------------------------+
> +| 0                 | [0]                         |
> ++-------------------+-----------------------------+
> 
>  Auto-probing of LLC specs
>  #########################
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index abd8dae96f..bfdc8b0002 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -963,6 +963,15 @@ Controls for the dom0 IOMMU setup.
> 
>  Specify a list of IO ports to be excluded from dom0 access.
> 
> +### dom0-llc-colors (arm64)
> +> `= List of [ <integer> | <integer>-<integer> ]`
> +
> +> Default: `All available LLC colors`
> +
> +Specify dom0 LLC color configuration. This option is available only when
> +`CONFIG_LLC_COLORING` is enabled. If the parameter is not set, all available
> +colors are used.
> +
>  ### dom0_max_vcpus
> 
>  Either:
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index a95376dcdc..01aa9016f5 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2,6 +2,7 @@
>  #include <xen/init.h>
>  #include <xen/compile.h>
>  #include <xen/lib.h>
> +#include <xen/llc-coloring.h>
>  #include <xen/mm.h>
>  #include <xen/param.h>
>  #include <xen/domain_page.h>
> @@ -2284,6 +2285,7 @@ void __init create_dom0(void)
>          .max_maptrack_frames = -1,
>          .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>      };
> +    unsigned int flags = CDF_privileged;
>      int rc;
> 
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> @@ -2311,10 +2313,16 @@ void __init create_dom0(void)
>              panic("SVE vector length error\n");
>      }
> 
> -    dom0 = domain_create(0, &dom0_cfg, CDF_privileged | CDF_directmap);
> +    if ( !llc_coloring_enabled )
> +        flags |= CDF_directmap;
> +
> +    dom0 = domain_create(0, &dom0_cfg, flags);
>      if ( IS_ERR(dom0) )
>          panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
> 
> +    if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
> +        panic("Error initializing LLC coloring for domain 0 (rc = %d)", rc);
Missing newline \n

> +
>      if ( alloc_dom0_vcpu0(dom0) == NULL )
>          panic("Error creating domain 0 vcpu0\n");
> 
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index 45b001b105..740b5b9e4f 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -20,6 +20,66 @@ static unsigned int __initdata llc_nr_ways;
>  integer_param("llc-nr-ways", llc_nr_ways);
>  /* Number of colors available in the LLC */
>  static unsigned int __ro_after_init max_nr_colors;
> +/* Default coloring configuration */
> +static unsigned int __ro_after_init default_colors[NR_LLC_COLORS];
> +
> +static unsigned int __initdata dom0_colors[NR_LLC_COLORS];
> +static unsigned int __initdata dom0_num_colors;
> +
> +/*
> + * Parse the coloring configuration given in the buf string, following the
> + * syntax below.
> + *
> + * COLOR_CONFIGURATION ::= COLOR | RANGE,...,COLOR | RANGE
> + * RANGE               ::= COLOR-COLOR
> + *
> + * Example: "0,2-6,15-16" represents the set of colors: 0,2,3,4,5,6,15,16.
> + */
> +static int __init parse_color_config(const char *buf, unsigned int colors[],
> +                                     unsigned int max_num_colors,
> +                                     unsigned int *num_colors)
> +{
> +    const char *s = buf;
> +
> +    *num_colors = 0;
> +
> +    while ( *s != '\0' )
> +    {
> +        unsigned int color, start, end;
> +
> +        start = simple_strtoul(s, &s, 0);
> +
> +        if ( *s == '-' )    /* Range */
> +        {
> +            s++;
> +            end = simple_strtoul(s, &s, 0);
> +        }
> +        else                /* Single value */
> +            end = start;
> +
> +        if ( start > end || (end - start) > (UINT_MAX - *num_colors) ||
> +             (*num_colors + (end - start)) >= max_num_colors )
> +            return -EINVAL;
> +
> +        /* Colors are range checked in check_colors() */
> +        for ( color = start; color <= end; color++ )
> +            colors[(*num_colors)++] = color;
> +
> +        if ( *s == ',' )
> +            s++;
> +        else if ( *s != '\0' )
> +            break;
> +    }
> +
> +    return *s ? -EINVAL : 0;
> +}
> +
> +static int __init parse_dom0_colors(const char *s)
> +{
> +    return parse_color_config(s, dom0_colors, ARRAY_SIZE(dom0_colors),
> +                              &dom0_num_colors);
> +}
> +custom_param("dom0-llc-colors", parse_dom0_colors);
> 
>  static void print_colors(const unsigned int colors[], unsigned int num_colors)
>  {
> @@ -44,9 +104,26 @@ static void print_colors(const unsigned int colors[], unsigned int num_colors)
>      printk(" }\n");
>  }
> 
> +static bool __init check_colors(const unsigned int colors[],
> +                                unsigned int num_colors)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < num_colors; i++ )
> +    {
> +        if ( colors[i] >= max_nr_colors )
> +        {
> +            printk(XENLOG_ERR "LLC color %u >= %u\n", colors[i], max_nr_colors);
The information about max colors is not printed at the start of day, so a message like:
LLC color 20 >= 10
is not that meaningful. Could we perhaps append (max allowable) or similar to the message?

> +            return false;
> +        }
> +    }
> +
> +    return true;
> +}
> +
>  void __init llc_coloring_init(void)
>  {
> -    unsigned int way_size;
> +    unsigned int way_size, i;
> 
>      if ( llc_size && llc_nr_ways )
>      {
> @@ -83,6 +160,9 @@ void __init llc_coloring_init(void)
>      } else if ( max_nr_colors < 2 )
>          panic("Number of LLC colors %u < 2\n", max_nr_colors);
> 
> +    for ( i = 0; i < max_nr_colors; i++ )
> +        default_colors[i] = i;
> +
>      arch_llc_coloring_init();
>  }
> 
> @@ -104,6 +184,43 @@ void domain_dump_llc_colors(const struct domain *d)
>      print_colors(d->llc_colors, d->num_llc_colors);
>  }
> 
> +static void __init domain_set_default_colors(struct domain *d)
> +{
> +    printk(XENLOG_WARNING
> +           "LLC color config not found for %pd, using all colors\n", d);
> +
> +    d->llc_colors = default_colors;
> +    d->num_llc_colors = max_nr_colors;
> +}
> +
> +int __init dom0_set_llc_colors(struct domain *d)
> +{
> +    typeof(*dom0_colors) *colors;
> +
> +    if ( !dom0_num_colors )
> +    {
> +        domain_set_default_colors(d);
> +        return 0;
> +    }
> +
> +    if ( dom0_num_colors > max_nr_colors ||
NIT: Can we surround dom0_num_colors > max_nr_colors with brackets?

Other than that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:43:14 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:43:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845372.1260796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGcvM-0006H0-W5; Thu, 28 Nov 2024 11:43:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845372.1260796; Thu, 28 Nov 2024 11:43: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 1tGcvM-0006Gt-SY; Thu, 28 Nov 2024 11:43:08 +0000
Received: by outflank-mailman (input) for mailman id 845372;
 Thu, 28 Nov 2024 11:43: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGcvL-0006Gn-AI
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:43:07 +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 ecdd17cb-ad7d-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 12:43:03 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4349fd77b33so6381175e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:43: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-434b0f70ea8sm19914785e9.40.2024.11.28.03.43.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03: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: ecdd17cb-ad7d-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImVjZGQxN2NiLWFkN2QtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzk0MTgzLjA1NTg0NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732794182; x=1733398982; 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=A9TQ4H0U+9hFDYGWbaqKbsdyF2vOOrh/xU7po1U90SM=;
        b=OEN2aqtLe2c54gUYmu6VZi2rbbaK3kjALCwipM+CY5B27KP5zSF470yqegU0NNhcuf
         p/tv6Yrb8gP+vifqbRzdB0d7g14ZmFggua/9wkpoQradkiWUdzriH/d9MRh08e7nPGZB
         e3iRRb+EJkLvRakyNVmaoS9uyQZSTBfy8hQeBmxH2EA6iQb3N6HynfeMR5xVjWJEvdnB
         MJwRMFZHNlX5Oty4CDKpSrnrnu0ovWs8DMFXAXxTQrGsmWejemX4KEhY7dqe5iv5DmON
         wArTivaHqxAuOEofh4+iDV2NCEXlY3j14RQB8eatVE1iG7OSNtc2nI0XR55JIACI6pwc
         3dAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732794182; x=1733398982;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A9TQ4H0U+9hFDYGWbaqKbsdyF2vOOrh/xU7po1U90SM=;
        b=MdgSep6NfafLCN1bSWzgTRKHryXUVEipwvM69+cGcglODOX503jOjyg1MYq4RDCXxg
         H/Xx7Bu7D0kZWMPITYyAKS9VFWRCk3xL0LMZkaCQW9ABPOI2iy27ptpBJWA+9vlcZfyw
         l3q6hoXtVKQr0L4KT8wSm6uJzkC2VB1qP6cwNaVSfmBFy/fe8AAUp3t58dRHvGlaS6WL
         WSYCCTftDNtGmV+Ay48LHxfD2WK3GzvKwyRenTrtE0KrmDU6Wdof/0lYGP83TZ0BLjjU
         xJZXrA+UQGsdk7q+2JudT6LMUYI0FrzjO37pWvylUFQ/du1APGRBG5NUXq8MwxNu0KxM
         u0lw==
X-Forwarded-Encrypted: i=1; AJvYcCWMxcxQIHLIj7DuMoXEGR44jQINBJuQW42o8nTVGvmzbtb/mJ8NOzaIDn+q1TU1jlYnZDbu7lDQsv8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVe1h4vHTPn+qA+aewtV57GRU9kZL5+TDeVsZcHvjX+SjssuVf
	Kij/MZyqZr5XYJeYT1A++Tfvfny42WgQiyMS6/urgDE6jAdzeITf5d73EGsG8A==
X-Gm-Gg: ASbGncsZH9wDjFe+AezLDXowD+pj4YhkFyjR72Nd7ZkhzfCxX6pnKmQs9dOoVSNxG2j
	BInj5dSiYbq6TAv9DInRxVhxM9fOj+YGSwJorvsUzzeMrwmHLHGBC1WF3jsA3wqi3sA4k0oO8i5
	cyRHXBJI52pY1SWLbUtN8U4qmwbVIFh7QvC+n27FHRkyW0BVeh5n+6QKUuJFVfJ1B0VLU26G6jn
	9sAjV/R/kyt064TX6JWLbH34btpmcN1wYMYXTOFtW6rzzc/CSCBLnQkVNx6PFIqCRq+OT/Co/5E
	259Cikf456JW45JPx2jeNizXrIasaojw93I=
X-Google-Smtp-Source: AGHT+IGxU1VCUqoFxkkkwdXm+ZeCx44CNeF+tdKxPn8OZY/wHyPPO4SVSbwD4Hi7Ct5QR0KKTW3l3A==
X-Received: by 2002:a05:600c:4fc9:b0:434:a71f:f804 with SMTP id 5b1f17b1804b1-434a9dbbd30mr71612385e9.3.1732794182413;
        Thu, 28 Nov 2024 03:43:02 -0800 (PST)
Message-ID: <5f876671-4624-4ec6-957e-d4a7802fb46a@suse.com>
Date: Thu, 28 Nov 2024 12:43:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 09/12] xen: add cache coloring allocator for domains
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Andrew Cooper <andrew.cooper3@citrix.com>, 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: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-10-carlo.nonato@minervasys.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: <20241119141329.44221-10-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 15:13, Carlo Nonato wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -270,6 +270,20 @@ and not running softirqs. Reduce this if softirqs are not being run frequently
>  enough. Setting this to a high value may cause boot failure, particularly if
>  the NMI watchdog is also enabled.
>  
> +### buddy-alloc-size (arm64)
> +> `= <size>`
> +
> +> Default: `64M`
> +
> +Amount of memory reserved for the buddy allocator when colored allocator is
> +active. This option is available only when `CONFIG_LLC_COLORING` is enabled.
> +The colored allocator is meant as an alternative to the buddy allocator,
> +because its allocation policy is by definition incompatible with the generic
> +one. Since the Xen heap systems is not colored yet, we need to support the
> +coexistence of the two allocators for now. This parameter, which is optional
> +and for expert only, it's used to set the amount of memory reserved to the
> +buddy allocator.

Every time I see this, and I further see the title of patch 12, I'm confused,
expecting that what's being said here needs adjusting (or even undoing) there.
The issue is that patch 12's title says just "Xen" when, if I'm not mistaken,
it really only means the Xen image.

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -537,4 +537,12 @@ config LLC_COLORS_ORDER
>  	  The default value corresponds to an 8 MiB 16-ways LLC, which should be
>  	  more than what's needed in the general case.
>  
> +config BUDDY_ALLOCATOR_SIZE
> +	int "Buddy allocator reserved memory size (MiB)" if LLC_COLORING
> +	default "0" if !LLC_COLORING
> +	default "64"
> +	help
> +	  Amount of memory reserved for the buddy allocator to serve Xen heap,
> +	  working alongside the colored one.

As the description has nothing in this regard: Why again is it that this
can't simply have "depends on LLC_COLORING"? Even if it ends up with a
value of 0, in an LLC_COLORING=n (or LLC_COLORING entirely absent) .config
I'd find it at least irritating to see this setting to be there.

> @@ -1945,6 +1960,155 @@ static unsigned long avail_heap_pages(
>      return free_pages;
>  }
>  
> +/*************************
> + * COLORED SIDE-ALLOCATOR
> + *
> + * Pages are grouped by LLC color in lists which are globally referred to as the
> + * color heap. Lists are populated in end_boot_allocator().
> + * After initialization there will be N lists where N is the number of
> + * available colors on the platform.
> + */
> +static struct page_list_head *__ro_after_init _color_heap;
> +#define color_heap(color) (&_color_heap[color])
> +
> +static unsigned long *__ro_after_init free_colored_pages;
> +
> +/* Memory required for buddy allocator to work with colored one */
> +static unsigned long __initdata buddy_alloc_size =
> +    MB(CONFIG_BUDDY_ALLOCATOR_SIZE);
> +size_param("buddy-alloc-size", buddy_alloc_size);
> +
> +#ifdef CONFIG_LLC_COLORING

According to the (updated) command line doc, this #ifdef needs to move up
so the command line option indeed is unrecognized when !LLC_COLORING.
Question then is whether the variable is actually needed. With the variable
also moved into the #ifdef, the need for BUDDY_ALLOCATOR_SIZE also goes
away when !LLC_COLORING (see the comment on the common/Kconfig change). Of
course you'll then need "#ifndef buddy_alloc_size" in
init_color_heap_pages(), around the respective if() there.

> +#define domain_num_llc_colors(d) ((d)->num_llc_colors)
> +#define domain_llc_color(d, i)   ((d)->llc_colors[i])
> +#else
> +#define domain_num_llc_colors(d) 0
> +#define domain_llc_color(d, i)   0
> +#endif
> +
> +static void free_color_heap_page(struct page_info *pg, bool need_scrub)
> +{
> +    unsigned int color;
> +
> +    color = page_to_llc_color(pg);
> +    free_colored_pages[color]++;
> +    /*
> +     * Head insertion allows re-using cache-hot pages in configurations without
> +     * sharing of colors.
> +     */
> +    page_list_add(pg, color_heap(color));
> +}

Iirc it was me who had asked to keep this and further functions outside of
#ifdef-s, for the compiler's DCE to take care of. However, with all that
Misra work that has been going on since then, I now wonder what Misra
thinks of this: When PGC_colored is 0, functions like the above are
unreachable, and any code or data the compiler doesn't manage to eliminate
would be dead. Imo if the code is to remain as is, correctness Misra-wise
may want mentioning in the description (this isn't the only place we have
such, so an overall position towards this is going to be needed).

> +static void __init init_color_heap_pages(struct page_info *pg,
> +                                         unsigned long nr_pages)
> +{
> +    unsigned int i;
> +    bool need_scrub = opt_bootscrub == BOOTSCRUB_IDLE;
> +
> +    if ( buddy_alloc_size >= PAGE_SIZE )
> +    {
> +        unsigned long buddy_pages = min(PFN_DOWN(buddy_alloc_size), nr_pages);
> +
> +        init_heap_pages(pg, buddy_pages);
> +        nr_pages -= buddy_pages;
> +        buddy_alloc_size -= buddy_pages << PAGE_SHIFT;
> +        pg += buddy_pages;
> +    }
> +
> +    if ( !_color_heap )
> +    {
> +        unsigned int max_nr_colors = get_max_nr_llc_colors();
> +
> +        _color_heap = xmalloc_array(struct page_list_head, max_nr_colors);
> +        free_colored_pages = xzalloc_array(unsigned long, max_nr_colors);

At this point, xvmalloc() and friends want using by all new code, unless
explicitly justified otherwise.

> +        if ( !_color_heap || !free_colored_pages )
> +            panic("Can't allocate colored heap. Buddy reserved size is too low");
> +
> +        for ( i = 0; i < max_nr_colors; i++ )
> +            INIT_PAGE_LIST_HEAD(color_heap(i));

While for this loop i being unsigned int is okay, I fear that ...

> +    }
> +
> +    for ( i = 0; i < nr_pages; i++ )
> +    {
> +        pg[i].count_info = PGC_colored;
> +        free_color_heap_page(&pg[i], need_scrub);
> +    }

... for this loop it isn't.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:51:06 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:51:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845386.1260806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGd2z-00081f-Q0; Thu, 28 Nov 2024 11:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845386.1260806; Thu, 28 Nov 2024 11: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 1tGd2z-00081Y-Mv; Thu, 28 Nov 2024 11:51:01 +0000
Received: by outflank-mailman (input) for mailman id 845386;
 Thu, 28 Nov 2024 11: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGd2y-000809-02
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:51:00 +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 078b919a-ad7f-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 12:50:57 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-432d86a3085so6322145e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:50: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-434b0d9bed7sm20090685e9.8.2024.11.28.03.50.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03: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: 078b919a-ad7f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzMiLCJoZWxvIjoibWFpbC13bTEteDMzMy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA3OGI5MTlhLWFkN2YtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzk0NjU3LjI3ODkyNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732794657; x=1733399457; 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=fFsVZEUEQ9yhLojhHgJSrf04chauLVnfQfwjL8IQBRk=;
        b=Pzd7yulcr2RLrnWSnznVkm1h2LWdHDM6oAiYQ2PzXtxtiXjOlbFnjv5wu0V+JkGn3y
         L9ajd7kir+UYBG/sYS0+JxluSMietCPo5wxk25Nxl97qv6k9zcNalVd4mUYx2TjAEkpd
         mzOPSGjIT69x8ispwp43uPcMK451svlC6y12Boja6kh5svgJqaomP0/c4ovE4fqvZ/PV
         PyduUAttJaCDoQbq6i3M4kJoAfBAG2GhZDEi8dRpU2OY7+t+ABUpuEo5OL8+5E/2saJu
         DXP4AcVUHqtI/lM7g8iOQw//4fJHfjklXQ7kuDP1zk9Pm1902B92UYQzV+LhedtRYrmN
         o4JA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732794657; x=1733399457;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fFsVZEUEQ9yhLojhHgJSrf04chauLVnfQfwjL8IQBRk=;
        b=PfEiGJfLKnwXB27IWPuyjXIKOqFQMicZDS8CC1AGHZ0Mrufh4zyGvuXUUHBXhKlSKz
         taAJV7z9i8zkn44Nqm+HMDchJBIqF1EqQ9MMw6JPDAyIV/TEZHLGa/OcQTuSMyv5Wepk
         z4LUPoopOPQoRRAksr+vzNdgj0/t8hrJ9Qm69iZGVesGMG7DHhQzZ/aSXYa+kVcygvUI
         OXTfq8wTWfXJM0pJ4kmlCqrILH8xCUF9gjE2Cg3RM+TBvmR1f46DpJM8+5YrQD03i35n
         96r+ia1zt6lcBJrQv4HrOF2pQG7YNu9uAopIeWuNtnvRJ1NNCDJhV5ZXkP96E/DCbbR0
         8XHA==
X-Forwarded-Encrypted: i=1; AJvYcCXwBki1JNiCj+ZHjMzWerBs74ucxvIVItGwOkA1awh7Us7Ey8P3ZOmf2lGF2tewFUJJzQZq6VQL30E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz2HJjydq431NTjeqUr3z84MFu+VMKY8aF2MbSm9Wtc6ypoB31j
	Jpbk+LcMw7NZVvccgalRKp1CG0hhNOOYS1dif+l3ewtW5WtBs19Nd/AyUM/0Mw==
X-Gm-Gg: ASbGncuQLdld/bbDa+DAfeb4T0CSAbpjHGFvhF27ptQQoCl9aA9ckyJ2jqqho+nuUBj
	lE8jvwQ2dXTCKjmGlP8mpFe+Lq7Geqyq5lT8wPpc+pTnt8fShp3AAeRZDMWPAh/9Wf+RSNX3L7P
	oR+l1luCZHB/elLlwN55auZ/BJOk/AyWJ1BjJfcYMU7bGj2tpj6Ic8T10cF1InvQL+0C8dbr5pV
	fxS8N+RkC+0S3ZSjHz8Jt0390CElaJipSXB5mRJLwkicywv/nzwTZCo9R/489fw9bJj1/AqNpNW
	HhiubQFZejGMalDTTQBM10gLrspGWV2JmY0=
X-Google-Smtp-Source: AGHT+IFB1GNUQ4KSd3cnTRfzNhKdE+C3+9I74uFrKFqGoASHYMQ6rfK0S/rkRFLeiY4BFyqQCT3jPQ==
X-Received: by 2002:a05:600c:3ba6:b0:434:9e63:faff with SMTP id 5b1f17b1804b1-434a9dbc41bmr63542525e9.2.1732794656612;
        Thu, 28 Nov 2024 03:50:56 -0800 (PST)
Message-ID: <b97f13ad-f3d4-4e92-b3e6-5522badbad5b@suse.com>
Date: Thu, 28 Nov 2024 12:50:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
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: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-2-andrew.cooper3@citrix.com>
 <e576e161-5054-40d2-af02-6f32ef636782@suse.com>
 <8a3a3daa-16f6-4488-ae46-224379033c54@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: <8a3a3daa-16f6-4488-ae46-224379033c54@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.11.2024 12:10, Andrew Cooper wrote:
> On 28/11/2024 10:31 am, Jan Beulich wrote:
>> On 28.11.2024 01:47, Andrew Cooper wrote:
>>> Xen currently presents APIC_ESR to guests as a simple read/write register.
>>>
>>> This is incorrect.  The SDM states:
>>>
>>>   The ESR is a write/read register. Before attempt to read from the ESR,
>>>   software should first write to it. (The value written does not affect the
>>>   values read subsequently; only zero may be written in x2APIC mode.) This
>>>   write clears any previously logged errors and updates the ESR with any
>>>   errors detected since the last write to the ESR. This write also rearms the
>>>   APIC error interrupt triggering mechanism.
>>>
>>> Introduce a new pending_esr field in hvm_hw_lapic.  Update vlapic_error() to
>>> accumulate errors here, and extend vlapic_reg_write() to discard the written
>>> value, and instead transfer pending_esr into APIC_ESR.  Reads are still as
>>> before.
>>>
>>> Importantly, this means that guests no longer destroys the ESR value it's
>>> looking for in the LVTERR handler when following the SDM instructions.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> No Fixes: tag presumably because the issue had been there forever?
> 
> Oh, I forgot to note that.
> 
> I can't decide between forever, or since the introduction of the ESR
> support (so Xen 4.5 like XSA-462, and still basically forever).
>>> ---
>>> Slightly RFC.  This collides with Alejandro's patch which adds the apic_id
>>> field to hvm_hw_lapic too.  However, this is a far more obvious backport
>>> candidate.
>>>
>>> lapic_check_hidden() might in principle want to audit this field, but it's not
>>> clear what to check.  While prior Xen will never have produced it in the
>>> migration stream, Intel APIC-V will set APIC_ESR_ILLREGA above and beyond what
>>> Xen will currently emulate.
>> The ESR really is an 8-bit value (in a 32-bit register), so checking the
>> upper bits may be necessary.
> 
> It is now, but it may not be in the future.
> 
> My concern is that this value is generated by microcode, so we can't
> audit based on which reserved bits we think prior versions of Xen never set.
> 
> I don't particularly care about a toolstack deciding to feed ~0 in
> here.Â  But, if any bit beyond 7 gets allocated in the future, then
> auditing the bottom byte would lead to a migration failure of what is in
> practice a correct value.

If a bit beyond zero got allocated, then it being set in an incoming stream
will, for an unaware Xen version, still be illegal. Such a guest simply can't
be migrated to a Xen version unaware of the bit. Once Xen becomes aware, the
auditing would (of course) also need adjustment.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:53:51 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845395.1260815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGd5h-0000Qs-5G; Thu, 28 Nov 2024 11:53:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845395.1260815; Thu, 28 Nov 2024 11: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 1tGd5h-0000Ql-2b; Thu, 28 Nov 2024 11:53:49 +0000
Received: by outflank-mailman (input) for mailman id 845395;
 Thu, 28 Nov 2024 11: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGd5g-0000Qf-R5
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:53:48 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6bf45331-ad7f-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 12:53:45 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-385d7b4da2bso12058f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:53: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-434b0d10d52sm20521075e9.0.2024.11.28.03.53.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03:53: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: 6bf45331-ad7f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjZiZjQ1MzMxLWFkN2YtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzk0ODI1Ljg5MTU2Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732794825; x=1733399625; 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=oCQqXz5QRnHWz5PPN8v8+dO4jNy1l28cez7CMgB8pE8=;
        b=aamHsnPxR+RN3Pg7g+rgUEo8txJ67ayR29Kl8JCzm5ocX72aYNTyPcSFEpIIIxIQIG
         GRi902dt2IqZJ72O0+QmlMF0whjBBsQm90zJiVk70Us1/CrwvPRgrRKMm6fwtZOEZhQb
         sRiM8SE7iEDYnKp1UBHopCS6yizOS/cD9J9Sde1AfBgxJJA7QCf7v4dM22FtJUedZFR9
         ko8ROkoYGh82LNveFCZqBcNHmi/P4JO4kl9NuR1OzWhIXT77cVEtSGw4I2MFNGG1Nxik
         a5vRoiLEy9X7oADaLuyjZumkJ0GwluAecZPxrBsH+fbnPDgEkcuFc3vHa18oJKvHkvod
         lYvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732794825; x=1733399625;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oCQqXz5QRnHWz5PPN8v8+dO4jNy1l28cez7CMgB8pE8=;
        b=tZDnrqg5dErF0+FyPRGMel1uyh+yCQoDVgjnn+DXiBMeHB7QGc7gjVK7iPe5zBWjdM
         9gITsOh6vM4p1Gu2x+osIrd9iNyJ8Cayojm2HPtEpEfMhmcwVkapmZGY7PG5eOL92pWl
         8P9ke7c4GCaI+uzOXGjNICzMrzIAsGeQjt5n7QLyvyjlC7CVJgWO5Oa3g7aHAmFtrLiP
         afJ2VLaydkDOyyxnLJ5DAXYIXBAAGeJG/0ez7xi6UPqkebYAXlCbqRxnggh2fszXASno
         vausyFBcZWprQ/+Yg8rcDABmQBmQ/a0DGIGVm4bNdBnE9UCz1SlMd90NfzFfDzZxyZBQ
         fEbQ==
X-Forwarded-Encrypted: i=1; AJvYcCVsA66SHMNDrpi/kN1/0C96IEGkcYsH2i/JZ0bK2TkLakl0mBS5f+mpqcNKXxJ8H5bl7NcbkLvdETY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxl2zFnazUN+z5qR+BFXXHo/i5sGDe3VDsUi5URv0aLdlwbZMqE
	JvSMMW/8Spcw875Ar5UGMSR58hqXL+O7J1H9GD+YnZYmkSuCAGGW/hJpgSNrAA==
X-Gm-Gg: ASbGncs8pjk89sY4KFtmRpT18NbnvQdDh0wiAwFnEDeHWKS/YjVUV57mC9o1yGGuYXo
	jmQeC3n19WlLdg+FSbgSjRW+mc1uduGOOXmA1Ju/AtneE/Fkzw5o6ww3oEy4tYRpRBMTM1oMN4V
	XXgB8Dl8Ay2a1Gjb/3pIRT2kEUzOHr0vnQDwMaI3wBj4bFoUVz6RRIgXTYZ+O05s0uPJOC0pfTN
	lO/zoHeW97+kEb55XtCg9rNCjFUkm0LfPOkvZ+qfXoLr8Lnuknp2PXZLDSgwovnGRdpCRRRBTZ/
	blcX/fEBM7BgM2Ig5T/ShdtFJp0x/ooYYhc=
X-Google-Smtp-Source: AGHT+IFkxl2kreJ5RFYzOx0tK5FAbbBqtVv50QKeBbBgLra7sN9h1DlHBi5Wc2yMxW0iPjgf0EPkZw==
X-Received: by 2002:a5d:59ac:0:b0:382:450c:25e9 with SMTP id ffacd0b85a97d-385c6ebb925mr7067376f8f.35.1732794825078;
        Thu, 28 Nov 2024 03:53:45 -0800 (PST)
Message-ID: <e8dcd294-a9a7-43d7-94af-f01d86020741@suse.com>
Date: Thu, 28 Nov 2024 12:53:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 12/12] xen/arm: add cache coloring support for Xen
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 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: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-13-carlo.nonato@minervasys.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: <20241119141329.44221-13-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2024 15:13, Carlo Nonato wrote:
> Add the cache coloring support for Xen physical space.
> 
> Since Xen must be relocated to a new physical space, some relocation
> functionalities must be brought back:
> - the virtual address of the new space is taken from 0c18fb76323b
>   ("xen/arm: Remove unused BOOT_RELOC_VIRT_START").
> - relocate_xen() and get_xen_paddr() are taken from f60658c6ae47
>   ("xen/arm: Stop relocating Xen").
> 
> setup_pagetables() must be adapted for coloring and for relocation. Runtime
> page tables are used to map the colored space, but they are also linked in
> boot tables so that the new space is temporarily available for relocation.
> This implies that Xen protection must happen after the copy.
> 
> Finally, since the alternative framework needs to remap the Xen text and
> inittext sections, this operation must be done in a coloring-aware way.
> The function xen_remap_colored() is introduced for that.
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>

Reviewed-by: Jan Beulich <jbeulich@suse.com> # common
preferably with ...

> @@ -353,6 +355,22 @@ unsigned int get_max_nr_llc_colors(void)
>      return max_nr_colors;
>  }
>  
> +mfn_t __init xen_colored_mfn(mfn_t mfn)
> +{
> +    unsigned int i, color = mfn_to_color(mfn);
> +
> +    for ( i = 0; i < xen_num_colors; i++ )
> +    {
> +        if ( color == xen_colors[i] )
> +            return mfn;
> +        else if ( color < xen_colors[i] )

... "else" dropped from here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 11:57:31 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 11:57:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845407.1260826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGd9C-000108-Jv; Thu, 28 Nov 2024 11:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845407.1260826; Thu, 28 Nov 2024 11: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 1tGd9C-000101-H8; Thu, 28 Nov 2024 11:57:26 +0000
Received: by outflank-mailman (input) for mailman id 845407;
 Thu, 28 Nov 2024 11:57: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGd9B-0000zv-8K
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 11:57:25 +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 ebeb4451-ad7f-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 12:57:20 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cfcb7183deso3201313a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 03:57:20 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa599905defsm58714166b.137.2024.11.28.03.57.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 03:57: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: ebeb4451-ad7f-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImViZWI0NDUxLWFkN2YtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzk1MDQwLjM5Mjk0NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732795040; x=1733399840; 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=EqmE+nW053InlD43iJvaDRW4jPg+ohSEaaA237Ok2YQ=;
        b=U4375S+xTe9sfGdDtM1hXoWtfR+8DCubus+QLWXAJM2y4fhVUU8ihw0iP+S5DGIafQ
         0lyHZ6Hh9lJCj9FfaxDH5cvfZe7KOUKIbgy4/mI+80CUNyAbaycl8hQS6v9BXx2qjdV1
         tPISEHfK7Wxno3RjC3jUbBmm1UHG3ttHFLkUc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732795040; x=1733399840;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EqmE+nW053InlD43iJvaDRW4jPg+ohSEaaA237Ok2YQ=;
        b=BBhLq5pxbhP0JhB7NPRWQAN1RIDIjZEt1gilun9v3WFOjSVuBwUcZhkM0Ex8pP8Y7o
         IMlxXs/ftQI94K1BsAl+Ff3TRLsyk6gMI9TftOHVR4Eozruss7FAP0yLCoEP+z34qadh
         sw5ose2mRabTB9PEDj7zpiwMqyDeS7i9QJ4YNpwbpoib6EVWL+MU90u4ofgyQoRZTK1u
         KAigHVZRo7Fq6IEaKlEj0wQRhXhEwf2DXTN4hw/MXr/H2iVytU3PDSGqcg6nE4e5/XRS
         otrR1cfpgFpytliI7DTVrljV008hec1MzIxFe0w/La79mg3wZzoiWA4gxBK3Zr9mMp65
         sE3A==
X-Forwarded-Encrypted: i=1; AJvYcCX1lCe9E9FPi/VqPi4FVQiJWf1SjewcBgZBm/QtO9Y5tlzdP+6uM/r27yVHL1prXwe5n7mzY9voJ/w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoL/DXZm86LDKIJojCBlOXXV1Aop+CkbiMUf60wJWNbfMFcO/I
	E5lp9FbeWu04UtdX1u8FOPQBNzES6HELQY3PMs7LeLwOB8hJqkTIRv55epairdc9fDi6LPTA2MV
	q
X-Gm-Gg: ASbGncvV5unry2F2aEKvhJdcRxYcrcbbbdn+PL7xii78sHB2DwSXsrts5O2SpYmTd5Z
	qEwrPR1aMTK4dFsr0uf/geYEHV+hWLRPyOuzJfN/dmHTcz/yeMR58WTSTxAL3SUN3N4aQ0Ytyfp
	3ayzNAgeGLAh8mvKVs1QTvoaaRBFBemEN6gu469dtbArExreSav5WDLrPH1kvja6OXY+sQufhdT
	FFnzShIzVk5W3WzwIzoxtukXX8DBpoWeV+SXuRD/ur0StFxPHNfgwQQbyMOQ8g=
X-Google-Smtp-Source: AGHT+IE+dQ35oS0zvOrkJ3Z0REIon37rJDyNKRhPPErUEHVu1JQa4TiSkyVBVJ9MRBvrjGtL2lk8Ng==
X-Received: by 2002:a17:906:329b:b0:aa5:c1b:2204 with SMTP id a640c23a62f3a-aa594573455mr315522466b.8.1732795039835;
        Thu, 28 Nov 2024 03:57:19 -0800 (PST)
Message-ID: <e8bf67fb-fc58-42cd-81dd-b11e041e82b2@citrix.com>
Date: Thu, 28 Nov 2024 11:57:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-2-andrew.cooper3@citrix.com>
 <e576e161-5054-40d2-af02-6f32ef636782@suse.com>
 <8a3a3daa-16f6-4488-ae46-224379033c54@citrix.com>
 <b97f13ad-f3d4-4e92-b3e6-5522badbad5b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <b97f13ad-f3d4-4e92-b3e6-5522badbad5b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/11/2024 11:50 am, Jan Beulich wrote:
> On 28.11.2024 12:10, Andrew Cooper wrote:
>> On 28/11/2024 10:31 am, Jan Beulich wrote:
>>> On 28.11.2024 01:47, Andrew Cooper wrote:
>>>> Xen currently presents APIC_ESR to guests as a simple read/write register.
>>>>
>>>> This is incorrect.  The SDM states:
>>>>
>>>>   The ESR is a write/read register. Before attempt to read from the ESR,
>>>>   software should first write to it. (The value written does not affect the
>>>>   values read subsequently; only zero may be written in x2APIC mode.) This
>>>>   write clears any previously logged errors and updates the ESR with any
>>>>   errors detected since the last write to the ESR. This write also rearms the
>>>>   APIC error interrupt triggering mechanism.
>>>>
>>>> Introduce a new pending_esr field in hvm_hw_lapic.  Update vlapic_error() to
>>>> accumulate errors here, and extend vlapic_reg_write() to discard the written
>>>> value, and instead transfer pending_esr into APIC_ESR.  Reads are still as
>>>> before.
>>>>
>>>> Importantly, this means that guests no longer destroys the ESR value it's
>>>> looking for in the LVTERR handler when following the SDM instructions.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> No Fixes: tag presumably because the issue had been there forever?
>> Oh, I forgot to note that.
>>
>> I can't decide between forever, or since the introduction of the ESR
>> support (so Xen 4.5 like XSA-462, and still basically forever).
>>>> ---
>>>> Slightly RFC.  This collides with Alejandro's patch which adds the apic_id
>>>> field to hvm_hw_lapic too.  However, this is a far more obvious backport
>>>> candidate.
>>>>
>>>> lapic_check_hidden() might in principle want to audit this field, but it's not
>>>> clear what to check.  While prior Xen will never have produced it in the
>>>> migration stream, Intel APIC-V will set APIC_ESR_ILLREGA above and beyond what
>>>> Xen will currently emulate.
>>> The ESR really is an 8-bit value (in a 32-bit register), so checking the
>>> upper bits may be necessary.
>> It is now, but it may not be in the future.
>>
>> My concern is that this value is generated by microcode, so we can't
>> audit based on which reserved bits we think prior versions of Xen never set.
>>
>> I don't particularly care about a toolstack deciding to feed ~0 in
>> here.Â  But, if any bit beyond 7 gets allocated in the future, then
>> auditing the bottom byte would lead to a migration failure of what is in
>> practice a correct value.
> If a bit beyond zero got allocated, then it being set in an incoming stream
> will, for an unaware Xen version, still be illegal. Such a guest simply can't
> be migrated to a Xen version unaware of the bit. Once Xen becomes aware, the
> auditing would (of course) also need adjustment.

That's the whole point.Â  It's not about Xen's awareness; it's what
APIC-V/AVIC might do *in existing configurations* on future hardware
without taking a VMExit.

If there were no APIC-V support to begin with, this would be easy and
auditing would be limited to SENDILL|RECVILL as those are the only two
bits Xen knows about.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 12:00:33 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 12:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845418.1260836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGdCC-0002ZR-7C; Thu, 28 Nov 2024 12:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845418.1260836; Thu, 28 Nov 2024 12: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 1tGdCC-0002ZK-3c; Thu, 28 Nov 2024 12:00:32 +0000
Received: by outflank-mailman (input) for mailman id 845418;
 Thu, 28 Nov 2024 12:00: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=t80U=SX=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tGdCA-0002Wa-GO
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 12:00:30 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060a.outbound.protection.outlook.com
 [2a01:111:f403:200a::60a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 59838cb8-ad80-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 13:00:25 +0100 (CET)
Received: from SJ0PR03CA0136.namprd03.prod.outlook.com (2603:10b6:a03:33c::21)
 by CY5PR12MB6323.namprd12.prod.outlook.com (2603:10b6:930:20::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Thu, 28 Nov
 2024 12:00:19 +0000
Received: from SJ5PEPF000001F7.namprd05.prod.outlook.com
 (2603:10b6:a03:33c:cafe::12) by SJ0PR03CA0136.outlook.office365.com
 (2603:10b6:a03:33c::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.13 via Frontend Transport; Thu,
 28 Nov 2024 12:00:19 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001F7.mail.protection.outlook.com (10.167.242.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8207.12 via Frontend Transport; Thu, 28 Nov 2024 12:00:18 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 28 Nov
 2024 06:00:17 -0600
Received: from [10.252.147.188] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Nov 2024 06:00: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: 59838cb8-ad80-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjAwYTo6NjBhIiwiaGVsbyI6Ik5BTTEyLU1XMi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU5ODM4Y2I4LWFkODAtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzk1MjI1LjY2OTMzNiwic2VuZGVyIjoibWljaGFsLm9yemVsQGFtZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PKKKsnNRY8gC7GHXsyEH0GLTTAkYIktu5jf04Bj0/agpzCATmMoQukg/tqcoAIJ7ChGU7P+dfs2f962EAYW5qviiC6N0+WoSv3b5Ya9hW/WijpGT56VtQHxcp8OmyHZfHMiQwQ3xqKZfbLoMaCxdNWZpjPW6ehhqTdcAsz+d+MWWtS2rdhOK5Edft/2tYLq//VeLP/Nl/Lo61XDeQh8w4WQIKQpFGB/p7S8nlEfldosQiLdxpl58mKo1za5RXD6qN4RNXZ6mnHKgeD8tQjL91FFRFUePWWoWe2PrhDveMk4/rT22IrOUXW+zVPIPmd06NGhxhW5GomrxK3tvkcuXog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eB7Yb5HGZxjWzyl3RpwCdAeA90lJ2umlKPswSFSyfiQ=;
 b=NAF+ewOoALou3/hB+oT9NPlCnbiaMWxppwm8c6R/88Yo2s27rdAP45k0x35RVo+WoH13bJpCPE1EVAk1zJxjvhPn6/4xhzCnlf+DCyKNzFr0Kez9bZaZvcJoLzsTdNPWeUsYZcvpz4euohgWAnBOOLIebkZD65xYeDOQH8E1uteCuPbehVFHLNIIjvcEhMJlfJAN4vYHInpvkyKeElVcbB9gYfbQACXIhgjIbOHYJGtVPow1W3mmQ56LlWRzmk6OE0JacYH7QY0qbhs7QenCXZ7AodH7L9T8SZBLVPiZWf7zhU2Q4PbOn1hFUYfrGD3BOseHHf+mSbkhMn3N1GhYZw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=minervasys.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=eB7Yb5HGZxjWzyl3RpwCdAeA90lJ2umlKPswSFSyfiQ=;
 b=xJ7t+UnEpdJL41U2po9VGveFDc8QZqBfIPS2h71nbNSEf1M427jmxwVR6ydc3L7qCbk2CizUZHSccnfoSusPMDjueFeiF6+6qymqGh7FnWf0vnv/gaTfyWcWQBA99DUMV2LmA0tzTlENcQ0gQbVK/+cl+oL88d2hNW+rtpoXeFo=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <355f9c8d-abc8-418a-b78b-6b6d7c0c3466@amd.com>
Date: Thu, 28 Nov 2024 13:00:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 07/12] xen/arm: add support for cache coloring
 configuration via device-tree
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
	<xen-devel@lists.xenproject.org>
CC: <andrea.bastoni@minervasys.tech>, <marco.solieri@minervasys.tech>, 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>, Jan
 Beulich <jbeulich@suse.com>
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-8-carlo.nonato@minervasys.tech>
Content-Language: en-US
From: Michal Orzel <michal.orzel@amd.com>
In-Reply-To: <20241119141329.44221-8-carlo.nonato@minervasys.tech>
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: SJ5PEPF000001F7:EE_|CY5PR12MB6323:EE_
X-MS-Office365-Filtering-Correlation-Id: 92693ced-2ac3-4de3-cef8-08dd0fa43a95
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|7416014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y21yM2MxQUVVUklsUjRtMUpLcUwwTHovWERmaUhvL3g4Y2lVM0tJcVcrZndC?=
 =?utf-8?B?MmRKR05NZnc1SXlnS0dPZHBGRkI5Q0hyZ2lvelNmTTczNGhjWElpc2Fyazg2?=
 =?utf-8?B?cHZ5Q1pBQ0thdmZtcTJGVndoY1pDTGNVNG5kUy9sL2tnSHZjTm5PSGNJTmxU?=
 =?utf-8?B?ZG90WCtuZUFUa0toMWlEL0tFNXkzRUlMNkhDV214ZnpPR0N5TzVvN2NvMlFD?=
 =?utf-8?B?am9xMnVsKzFMYzZqazNBWDAzNjIxQ0tnVzZhY203MXp5cUx0cFBuWFBEVnFk?=
 =?utf-8?B?NXRxK0UxQnh0akNKcUF6M3ZXbXlqR1QvWWcvMTBPdjN5MEQwR3VhMlJuT2JT?=
 =?utf-8?B?eFFHdFRLbGFGRWVJTnpudWJ2dFVONzJvQXpNNWIwMS9aR1MvaStXdE9SeVhy?=
 =?utf-8?B?dnlkTE5IMUR5a0NMU0lVcnUxNm5rWGZOMUM2RjVjWEY4M2RVc04vWEtFd2RV?=
 =?utf-8?B?R0JTaGozbFhVaHhRdkpZM2Mxb0NRVCsybFpoZ2VNN1o4OGcwTjZaZE0zNmtE?=
 =?utf-8?B?SllLL1ZuZ2FXeU1Hb1kySHB2eVB4eW9QWlQyakdTU2lBT2docmlLNWFqOUJU?=
 =?utf-8?B?SS85N0JUSkVoa1d4d3FEakpIdHd4YjQ1dW5nYmVINDU4czdDSmVKV25od3NY?=
 =?utf-8?B?WTFHbzcrMDdZSmdZc2Vxd2o5dk1QbWMzVUJ4MkZhMjRTRXh2QUtnQmpSa3d2?=
 =?utf-8?B?aVRTQ1d2em85WDZQYTlNTzJhZFkzV2dOdlhnL0J3RHNjcCtoYU9Zb1J3dkJQ?=
 =?utf-8?B?UU95YmRyaTlnSmFoVUVqVjk5djhDT0orT0tMeWlsbW03eEFJWUdLTEo4S3c1?=
 =?utf-8?B?VFY0ajcrd2sxVFhiS2JlTVh2cG5VWm5HaGJoajFGWENvbEZncXFyZTRXeWph?=
 =?utf-8?B?N0hFOHJBU0I5Z3pnVzdRejZ3akx2bUlCc3pFQlNmeGpBOVpTRVM5cW8vSHJs?=
 =?utf-8?B?cTB6WFA4ZXJwVmxxdTUzdFA1NTZoZjNmMW5VcFYvdWVUajF4UXFDenRMSEJX?=
 =?utf-8?B?Q21EODdJWXo0QnNicm9WS1RhekUrWGVoSjRzYW9KelFCL2lRUE9jZWwrVi9Z?=
 =?utf-8?B?dTN6dHhhVmdpOFlJY2xNOUh0VWdlM3RoWjJvc3Q1WkhkSVU2Yy9aY1lRL0kx?=
 =?utf-8?B?T1JFVWRONXhJUWdrcmQ2RTN1Q2VwbndWOGFVZG0rRUhtdUhodjdmbUFHY09O?=
 =?utf-8?B?MHd6dTN3WmlxN2tqNUdrV0dtZS84U1U1M0wxalpnMEZQWGdVQnBwNnZzU3hz?=
 =?utf-8?B?WUVWSGN0VjhLa1VPbkxyaUc1ajc3b3lmZUE4dW9HTy9wRkFHNEl3V2VON0Nn?=
 =?utf-8?B?elluNXp6K05XcTBHblIrZWx6bEp0aXRsbGdTdjYveUZvcGdxb2pzQk9UK3BQ?=
 =?utf-8?B?akl6OEZQZUFvZFRQRldpMERqVlNxRkFtdWpibUlMNTY2ZThoKyszSzY2Q0F1?=
 =?utf-8?B?WTBIRkhJdzJBYTFMMEt4M0dSczJLaWZOSHNkWlN2WGNDbVIxdnlXVjVxT0do?=
 =?utf-8?B?Z2hHSG9qQWhMNFp3dGR0d0dyNWMzMVAzSk1hSTM2bXFGZWcyS0tDRWs3OUZw?=
 =?utf-8?B?aUU1a3JXb29PSUJPSk5la01JWlBLcjBkbFFiL2xqclh2Yjc1MzRTb0xJaUQy?=
 =?utf-8?B?MnE4a3hJSWk2NGRwNEpwQ1V3ZHROTWxGQ1Q5dWcwcHkydnBtU1paVXpoU2lr?=
 =?utf-8?B?VERucVNwT0hVVUhFSWJSVlhQOFZsdS9PeGFDRTVzMnByQVlNMms1anBrajI1?=
 =?utf-8?B?am52Vzg0NGdsSDJHUmxmcXh6ajFVQUNacEVkTHBtblIzWDdaa0dXZjduZlJH?=
 =?utf-8?B?UXJ3c3JiQWMrdWNvSW91QmVSVFd6R2dJK3dKZUJxN3ZqVkptbEFKOGNBMm9D?=
 =?utf-8?B?SGIrYXIwTG1CRzJFaXpvWDNQNXZKL0s3bHd2VS9KemxEK2x0WmdqekxQaGEz?=
 =?utf-8?Q?CIniv+QvHPkUQgP3N7l+zdfWRTAsRXau?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(7416014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2024 12:00:18.6240
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 92693ced-2ac3-4de3-cef8-08dd0fa43a95
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001F7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6323



On 19/11/2024 15:13, Carlo Nonato wrote:
> 
> 
> Add the "llc-colors" Device Tree attribute to express DomUs and Dom0less
NIT: s/attribute/property/

> color configurations.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> Reviewed-by: Jan Beulich <jbeulich@suse.com> # non-Arm
> ---
> v10:
> - no changes
> v9:
> - use best-effort allocation in domain_set_llc_colors_from_str()
> v8:
> - fixed memory leak on error path of domain_set_llc_colors_from_str()
> - realloc colors array after parsing from string to reduce memory usage
> v7:
> - removed alloc_colors() helper usage from domain_set_llc_colors_from_str()
> v6:
> - rewrote domain_set_llc_colors_from_str() to be more explicit
> v5:
> - static-mem check has been moved in a previous patch
> - added domain_set_llc_colors_from_str() to set colors after domain creation
> ---
>  docs/misc/arm/device-tree/booting.txt |  4 +++
>  docs/misc/cache-coloring.rst          | 48 +++++++++++++++++++++++++++
>  xen/arch/arm/dom0less-build.c         | 10 ++++++
>  xen/common/llc-coloring.c             | 41 +++++++++++++++++++++++
>  xen/include/xen/llc-coloring.h        |  1 +
>  xen/include/xen/xmalloc.h             | 12 +++++++
>  6 files changed, 116 insertions(+)
> 
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 3a04f5c57f..9085645433 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -162,6 +162,10 @@ with the following properties:
> 
>      An integer specifying the number of vcpus to allocate to the guest.
> 
> +- llc-colors
> +    A string specifying the LLC color configuration for the guest.
> +    Refer to docs/misc/cache_coloring.rst for syntax.
Shouldn't we make it clear that this property is Arm64 only?

> +
>  - vpl011
> 
>      An empty property to enable/disable a virtual pl011 for the guest to
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> index c5fb33996c..c14b6ee2f4 100644
> --- a/docs/misc/cache-coloring.rst
> +++ b/docs/misc/cache-coloring.rst
> @@ -12,6 +12,7 @@ If needed, change the maximum number of colors with
>  ``CONFIG_LLC_COLORS_ORDER=<n>``.
> 
>  Runtime configuration is done via `Command line parameters`_.
> +For DomUs follow `DomUs configuration`_.
> 
>  Background
>  **********
> @@ -147,6 +148,53 @@ LLC specs can be manually set via the above command line parameters. This
>  bypasses any auto-probing and it's used to overcome failing situations, such as
>  flawed probing logic, or for debugging/testing purposes.
> 
> +DomUs configuration
> +*******************
> +
> +DomUs colors can be set either in the ``xl`` configuration file (documentation
> +at `docs/man/xl.cfg.pod.5.in`) or via Device Tree, also for Dom0less
> +configurations (documentation at `docs/misc/arm/device-tree/booting.txt`) using
NIT: I think you can remove the part "also for Dom0less configurations" if you already
mentioned "or via Device Tree".

Other than that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal




From xen-devel-bounces@lists.xenproject.org Thu Nov 28 12:16:48 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 12:16:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845431.1260846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGdRg-0004mY-HB; Thu, 28 Nov 2024 12:16:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845431.1260846; Thu, 28 Nov 2024 12:16: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 1tGdRg-0004mR-Cr; Thu, 28 Nov 2024 12:16:32 +0000
Received: by outflank-mailman (input) for mailman id 845431;
 Thu, 28 Nov 2024 12:16: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGdRe-0004mK-Gb
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 12:16:30 +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 96345cd1-ad82-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 13:16:25 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43494a20379so6821585e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 04:16: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-385ccd2db59sm1496058f8f.11.2024.11.28.04.16.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 04:16: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: 96345cd1-ad82-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMzAiLCJoZWxvIjoibWFpbC13bTEteDMzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijk2MzQ1Y2QxLWFkODItMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzk2MTg1LjI3ODIzOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732796184; x=1733400984; 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=8/RGRX8/A0dq26pitlHAhxpfBag9OTt01pkq8ZW6dZI=;
        b=ZxPe+i8y/ii96ONJBoTM6WRH1idgNi9VfclvOvmNRVzgWaewg33KPJyJEJnxlVoqcv
         ZoeVHg+S6PgVJN602ZkZ9/KAUAgZ1b0QcUZl+IhWapjhuwMQ0u6kbVpVOwckQYYoVe6Y
         cRnt7EvwirJvkBnMupO1F4U+JXJM4arPXwzNCoJKcl5MNKQ6MV137Z8QJ6dy6hacejIH
         hXS9v8h1G0Vei3sCRXyKQuh6NvD09RpjX66wqya6+wpUAv88JxSXvLiSSl7Wh0mIvF86
         g+xjyVhJg9shu18+PiP6x56DdUi6fyPqcQ96lnh6ZJ6fZYWowoNojWXorEGVkENlvP3o
         OA0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732796184; x=1733400984;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8/RGRX8/A0dq26pitlHAhxpfBag9OTt01pkq8ZW6dZI=;
        b=QbRFeAUYWvfcvAbAx8d+BQk/piGx8zkmICLvMYw1q2ckGATcm4VUe1BhIAzCN1Wgbn
         1fOyU9o2xiIRnQ1elgF1sBarXoolrp9apZrcj3cPounzb9pEIlNrKnP4A5xZiv39iJTT
         70F0j56BGym82ent580h7W3sPa/v/ALlPafJBiGZYMH9/mEDSXpLoMnmpptWqtCcgGtr
         Zft3eoq2VUjWlTxuP78Ueu/8EXEDAok059vJO8BCRqU/rifOfpQpLoEzoDS3oMx+pSYt
         1mtFavB+2pQCO4vdjchcCFFa67qSHj0fNHZaZX973tZ2VpYag3Qa8DkC5I6b+9UGvrcX
         TCPw==
X-Forwarded-Encrypted: i=1; AJvYcCUYyrLSaJ0GK0D5yI9ZtS9+f++hLYmC5fn1jEx3MOwqXGMIfUylfnR672cIK8H8l1VbEzU6g2N4MLc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFfzt6+TZF5x79OLtM3QAmTuP+feW0VgyYUlNiAPmsWgJMQwIP
	xxOy5GL4uNkg1VffxaD0WIGX/bNtZH8MMKZzn71P6F+rET3u6q5oCou88eiZ1A==
X-Gm-Gg: ASbGncvoouLo+9XdS82x1V3L1E0H5V4XDzdE/AX74cmc54Nm+L8iEQ9yiEgBkPmn7SU
	v78SKqVNsI+DROb8MF5S2Flij52XI7LpdnbtkPsM4ADU9q9C6l2pZeSSm5+13J3mX8fr1hdgfhN
	e6T4Rf/I5hgz73j2G3/bmVH2V5JrnDiOCyo4B9/fWZ+WtkXaK5YatQNlYY6wb53G5iQgKRDVyko
	nrxz5HtJOq9wJQH+JYlSzwZ6lSQQ8dcf0qEBGTwaIekRKvD/sldsgoToKWPCJnr5OTTHlIQLqDi
	aOFHxPordqeLaw34ZQfn9hJg73mVgM1No0E=
X-Google-Smtp-Source: AGHT+IF20xe22l2tPAsNN1VCalYNfXsbxBWCDo/LXcE99ZzRUcYl+c7IXSwPX/2rpCwaN/dgzKbj6A==
X-Received: by 2002:a05:600c:458d:b0:433:c463:62dd with SMTP id 5b1f17b1804b1-434a9e0e5femr61192575e9.27.1732796184340;
        Thu, 28 Nov 2024 04:16:24 -0800 (PST)
Message-ID: <f587c517-aeb0-46bb-8f44-9c98c4417ec8@suse.com>
Date: Thu, 28 Nov 2024 13:16:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/vlapic: Fix handling of writes to APIC_ESR
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: <20241128004737.283521-1-andrew.cooper3@citrix.com>
 <20241128004737.283521-2-andrew.cooper3@citrix.com>
 <e576e161-5054-40d2-af02-6f32ef636782@suse.com>
 <8a3a3daa-16f6-4488-ae46-224379033c54@citrix.com>
 <b97f13ad-f3d4-4e92-b3e6-5522badbad5b@suse.com>
 <e8bf67fb-fc58-42cd-81dd-b11e041e82b2@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: <e8bf67fb-fc58-42cd-81dd-b11e041e82b2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.11.2024 12:57, Andrew Cooper wrote:
> On 28/11/2024 11:50 am, Jan Beulich wrote:
>> On 28.11.2024 12:10, Andrew Cooper wrote:
>>> On 28/11/2024 10:31 am, Jan Beulich wrote:
>>>> On 28.11.2024 01:47, Andrew Cooper wrote:
>>>>> Xen currently presents APIC_ESR to guests as a simple read/write register.
>>>>>
>>>>> This is incorrect.  The SDM states:
>>>>>
>>>>>   The ESR is a write/read register. Before attempt to read from the ESR,
>>>>>   software should first write to it. (The value written does not affect the
>>>>>   values read subsequently; only zero may be written in x2APIC mode.) This
>>>>>   write clears any previously logged errors and updates the ESR with any
>>>>>   errors detected since the last write to the ESR. This write also rearms the
>>>>>   APIC error interrupt triggering mechanism.
>>>>>
>>>>> Introduce a new pending_esr field in hvm_hw_lapic.  Update vlapic_error() to
>>>>> accumulate errors here, and extend vlapic_reg_write() to discard the written
>>>>> value, and instead transfer pending_esr into APIC_ESR.  Reads are still as
>>>>> before.
>>>>>
>>>>> Importantly, this means that guests no longer destroys the ESR value it's
>>>>> looking for in the LVTERR handler when following the SDM instructions.
>>>>>
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> No Fixes: tag presumably because the issue had been there forever?
>>> Oh, I forgot to note that.
>>>
>>> I can't decide between forever, or since the introduction of the ESR
>>> support (so Xen 4.5 like XSA-462, and still basically forever).
>>>>> ---
>>>>> Slightly RFC.  This collides with Alejandro's patch which adds the apic_id
>>>>> field to hvm_hw_lapic too.  However, this is a far more obvious backport
>>>>> candidate.
>>>>>
>>>>> lapic_check_hidden() might in principle want to audit this field, but it's not
>>>>> clear what to check.  While prior Xen will never have produced it in the
>>>>> migration stream, Intel APIC-V will set APIC_ESR_ILLREGA above and beyond what
>>>>> Xen will currently emulate.
>>>> The ESR really is an 8-bit value (in a 32-bit register), so checking the
>>>> upper bits may be necessary.
>>> It is now, but it may not be in the future.
>>>
>>> My concern is that this value is generated by microcode, so we can't
>>> audit based on which reserved bits we think prior versions of Xen never set.
>>>
>>> I don't particularly care about a toolstack deciding to feed ~0 in
>>> here.Â  But, if any bit beyond 7 gets allocated in the future, then
>>> auditing the bottom byte would lead to a migration failure of what is in
>>> practice a correct value.
>> If a bit beyond zero got allocated, then it being set in an incoming stream
>> will, for an unaware Xen version, still be illegal. Such a guest simply can't
>> be migrated to a Xen version unaware of the bit. Once Xen becomes aware, the
>> auditing would (of course) also need adjustment.
> 
> That's the whole point.Â  It's not about Xen's awareness; it's what
> APIC-V/AVIC might do *in existing configurations* on future hardware
> without taking a VMExit.

How would you migrate such a guest to arbitrary other hardware, i.e.
potentially lacking support for that bit? If LVTERR triggering is as per
Roger's reading of the SDM, without knowing how many bits hardware
presently checks we couldn't guarantee correctness. Bits from 8 up being
reserved right now even leaves me wondering what happens on present
hardware when one of those top 24 bits is set.

> If there were no APIC-V support to begin with, this would be easy and
> auditing would be limited to SENDILL|RECVILL as those are the only two
> bits Xen knows about.

Limiting to just these two bits would be wrong; future Xen might make
use of more of them, and a guest should then still migrate correctly
(just that, after this initial being set of extra bits, it would never
again see any of them becoming set).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 12:45:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 12:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845442.1260856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGdu2-00012C-OJ; Thu, 28 Nov 2024 12:45:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845442.1260856; Thu, 28 Nov 2024 12:45: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 1tGdu2-000125-LZ; Thu, 28 Nov 2024 12:45:50 +0000
Received: by outflank-mailman (input) for mailman id 845442;
 Thu, 28 Nov 2024 12:29: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=Z92i=SX=redhat.com=amarkuze@srs-se1.protection.inumbo.net>)
 id 1tGddm-0006y9-9S
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 12:29:02 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 564cc39a-ad84-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 13:28:57 +0100 (CET)
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-663-FFTSCjIaOh2ycyd4kY3ONQ-1; Thu, 28 Nov 2024 07:28:53 -0500
Received: by mail-wr1-f72.google.com with SMTP id
 ffacd0b85a97d-38240d9ed31so455800f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 04:28: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: 564cc39a-ad84-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU2NGNjMzlhLWFkODQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyNzk2OTM3LjkzNjI5LCJzZW5kZXIiOiJhbWFya3V6ZUByZWRoYXQuY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1732796936;
	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=ZACMslqIaF7iVtmlx12c8LPoSlN7TzLegXngDuX2z78=;
	b=QPnys0og/9ZtXa5XVKgdSczFqWElYPx0x38aFbMVU/kymsa4vfCBuKFYZwqJVQGxed07VY
	DfCSxyGrJBgVG8MHz2QkW11kvxWp1FxbuNxYNbmfCChS0MwjTQ1cpaOR7EfKSlEMXecB2B
	1o3Zeuon1Q7UeIa2GVutpzvainNbh5g=
X-MC-Unique: FFTSCjIaOh2ycyd4kY3ONQ-1
X-Mimecast-MFC-AGG-ID: FFTSCjIaOh2ycyd4kY3ONQ
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732796932; x=1733401732;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZACMslqIaF7iVtmlx12c8LPoSlN7TzLegXngDuX2z78=;
        b=koj9kGgSvVG97wBNrDNRkTSQcrsvfgdlroLzGvLIQKpTnnGUA0KuhIOIwsZShKPSWO
         ICcHHtL6TDO/o3L6CpN+9Cf6mOzJtUrh2JmpD4I9wgB5oZ8MHoWj0V/EefZCzogD06jB
         l0+K8P6tfvZsCYbsua+zdSjk9F1ORj4muNqhauJ83tiV2K9NStCHgZPYOmuwBTWzgJz2
         AuD6tejJmVOz62FDmPJL8FoBFcQXmO+DX8hNd9Y3LIpnvSFrhtYEBCZq/Ai6F7EwffhL
         CZQ/ZNlkcj93VAawqkhUiBLdSN33caa4sOdW05boi2dmZlCteBcYweZPE9l9Q9wrPzIx
         ViNw==
X-Forwarded-Encrypted: i=1; AJvYcCVm07vLC3q1N/ngxhhzJ0Y9O4xMLk8i8GOqpdl8XKEeXag93nSDrPbbDpyhddIk0FNlSTWkNvuEfJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4P2ZdEKjvYd1CcP4IR47/HGNKYGLFmLeCbLdZ9fFmIF0WuVA+
	Ej9VL9jD9HKCCPsADIw3zctNlHtYWwRfUMLe1nUlyExte9NWMWWz4YpEG69KLPQjDVGL+2pikSa
	wsTnNBuI7KregcbLm5rS0xIQ0Efu4CEemzzSCtzg0AgrxoYXWNc71NsLLBIxFb26aSUvcxpFSeX
	omLV2fbvoc9Y0YgI4oxVXpyEcVvRXKi4OhbnV4ZLI=
X-Gm-Gg: ASbGncugC3z0sok79OrKHkVIddsiSMD7ZstC6wXbh8XmCRA099QTq2dxYGnYIAMHrAp
	ptZjOUbZdR+mmSoIv8m+I9y3rC2k6jzU=
X-Received: by 2002:a05:6000:18ac:b0:382:4a27:1319 with SMTP id ffacd0b85a97d-385c6eb5840mr5776127f8f.6.1732796931976;
        Thu, 28 Nov 2024 04:28:51 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGGOqoP8tsZ6KQpRsoqtGa6KHF61EJ3NUmj3Aw3MlprtODTvHQ/TDY7uTpa3Nw0Vy2Is2RlK3QrcXMwzmVV8rU=
X-Received: by 2002:a05:6000:18ac:b0:382:4a27:1319 with SMTP id
 ffacd0b85a97d-385c6eb5840mr5776067f8f.6.1732796931576; Thu, 28 Nov 2024
 04:28:51 -0800 (PST)
MIME-Version: 1.0
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v2-18-911fb7595e79@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-18-911fb7595e79@linux.microsoft.com>
From: Alex Markuze <amarkuze@redhat.com>
Date: Thu, 28 Nov 2024 14:28:40 +0200
Message-ID: <CAO8a2SgQ-==SjhDFZpi2s3r9FUGA96jwuJL7kTDwE=Hw4UcgUg@mail.gmail.com>
Subject: Re: [PATCH v2 18/21] ceph: Convert timeouts to secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>, Jozsef Kadlecsik <kadlec@netfilter.org>, 
	"David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>, 
	Julia Lawall <Julia.Lawall@inria.fr>, Nicolas Palix <nicolas.palix@imag.fr>, 
	Daniel Mack <daniel@zonque.org>, Haojian Zhuang <haojian.zhuang@gmail.com>, 
	Robert Jarzmik <robert.jarzmik@free.fr>, Russell King <linux@armlinux.org.uk>, 
	Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, 
	Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
	Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi <lucas.demarchi@intel.com>, 
	=?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
	Rodrigo Vivi <rodrigo.vivi@intel.com>, 
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>, 
	Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
	Jeroen de Borst <jeroendb@google.com>, Praveen Kaligineedi <pkaligineedi@google.com>, 
	Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
	James Smart <james.smart@broadcom.com>, Dick Kennedy <dick.kennedy@broadcom.com>, 
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>, 
	"Martin K. Petersen" <martin.petersen@oracle.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, Jeff Johnson <jjohnson@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>, 
	Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann <marcel@holtmann.org>, 
	Johan Hedberg <johan.hedberg@gmail.com>, Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
	Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui <rjui@broadcom.com>, 
	Scott Branden <sbranden@broadcom.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>, 
	Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
	Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
	Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>, 
	Lucas Stach <l.stach@pengutronix.de>, Russell King <linux+etnaviv@armlinux.org.uk>, 
	Christian Gmeiner <christian.gmeiner@gmail.com>, Louis Peens <louis.peens@corigine.com>, 
	Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Naveen N Rao <naveen@kernel.org>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, netfilter-devel@vger.kernel.org, 
	coreteam@netfilter.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, 
	cocci@inria.fr, linux-arm-kernel@lists.infradead.org, 
	linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org, 
	intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-block@vger.kernel.org, 
	linux-wireless@vger.kernel.org, ath11k@lists.infradead.org, 
	linux-mm@kvack.org, linux-bluetooth@vger.kernel.org, 
	linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, 
	ceph-devel@vger.kernel.org, live-patching@vger.kernel.org, 
	linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org, 
	oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org, 
	Anna-Maria Behnsen <anna-maria@linutronix.de>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 6daSme4NZynAJRVrO5OJI1AU0xT4HdKqITsURX0Zg-M_1732796932
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

looks good

On Sat, Nov 16, 2024 at 12:32=E2=80=AFAM Easwar Hariharan
<eahariha@linux.microsoft.com> wrote:
>
> Changes made with the following Coccinelle rules:
>
> @@ constant C; @@
>
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
>
> @@ constant C; @@
>
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>  fs/ceph/quota.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ceph/quota.c b/fs/ceph/quota.c
> index 06ee397e0c3a6172592e62dba95cd267cfff0db1..d90eda19bcc4618f98bfed833=
c10a6071cf2e2ac 100644
> --- a/fs/ceph/quota.c
> +++ b/fs/ceph/quota.c
> @@ -166,7 +166,7 @@ static struct inode *lookup_quotarealm_inode(struct c=
eph_mds_client *mdsc,
>         if (IS_ERR(in)) {
>                 doutc(cl, "Can't lookup inode %llx (err: %ld)\n", realm->=
ino,
>                       PTR_ERR(in));
> -               qri->timeout =3D jiffies + msecs_to_jiffies(60 * 1000); /=
* XXX */
> +               qri->timeout =3D jiffies + secs_to_jiffies(60); /* XXX */
>         } else {
>                 qri->timeout =3D 0;
>                 qri->inode =3D in;
>
> --
> 2.34.1
>
>



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 12:45:55 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 12:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845444.1260861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGdu3-00015E-0j; Thu, 28 Nov 2024 12:45:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845444.1260861; Thu, 28 Nov 2024 12:45: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 1tGdu2-00014i-SU; Thu, 28 Nov 2024 12:45:50 +0000
Received: by outflank-mailman (input) for mailman id 845444;
 Thu, 28 Nov 2024 12:29: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=Z92i=SX=redhat.com=amarkuze@srs-se1.protection.inumbo.net>)
 id 1tGde4-0006yl-9D
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 12:29:20 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 617cfd7e-ad84-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 13:29:16 +0100 (CET)
Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com
 [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-111-xkaBIXfWOUu4wxiXOqbTIg-1; Thu, 28 Nov 2024 07:29:13 -0500
Received: by mail-ed1-f70.google.com with SMTP id
 4fb4d7f45d1cf-5cfbec85442so510286a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 04:29: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: 617cfd7e-ad84-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE3MC4xMC4xMjkuMTI0IiwiaGVsbyI6InVzLXNtdHAtZGVsaXZlcnktMTI0Lm1pbWVjYXN0LmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjYxN2NmZDdlLWFkODQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyNzk2OTU2LjQ5ODA0Nywic2VuZGVyIjoiYW1hcmt1emVAcmVkaGF0LmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1732796955;
	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=0Nxf6CkGK3NslY+JLgqPcTLt32q1OCumzkrHYUKQkbE=;
	b=X0g1wvKo1KD2HtnbqEDPWQbnLBHxs627+Ksu5II3Tf0tG0Bin3Ggr6/WHA0lQdmwHDHi+q
	zToRtRbVKXYVqtSXSdxkeC4U3VjwU6gm6YSNGmxzNY16h3BajM5Ord1sIifq+amvGZ8iKv
	pm5xZTiJEeOIxdf2Lt6QrqMZxHDVYYY=
X-MC-Unique: xkaBIXfWOUu4wxiXOqbTIg-1
X-Mimecast-MFC-AGG-ID: xkaBIXfWOUu4wxiXOqbTIg
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732796952; x=1733401752;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0Nxf6CkGK3NslY+JLgqPcTLt32q1OCumzkrHYUKQkbE=;
        b=BSZg8XqVtBq3BNqR1QfgSdoD4gJkrSJOlPEfSncm60RhTEart44wF+wVDx02/WwvEE
         Y4m9C/7EM/2YzgIHy4w76gP/we/BlvuyCrmKuKFYL0Yv0d6qh7ab8aUrHLvFXcRyc5n0
         dv+fIAyIKBKC4OjPGOsA5TDjTMG2c5CsEUuKrpE95wWoYOggfgIQKCK9Du6T56fySw0i
         OkfpUWLmf23PXahbXuqA8w4ZCiQOoaEuKyGXxpijqu9CSyHU7J+kquR/3F5fRqZUmnEP
         Jt6gVhMheSMv9oO1xaf1FT6+vnxIM/z62GwdbWBJKCA9mq9L4e6rwMPDGFK+VC66FkUU
         clcA==
X-Forwarded-Encrypted: i=1; AJvYcCUUxwcgzz4xNFMnpZQGOAubzOAy3zR2Z4MKE+Hq/0n+CdgMbDnv/2T45Eqrkha1IrUB8kgi9RammHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbwDlfPqOzijiidKOZyscvY6lZQgxw8C/osRHMFV/+wEFCdVae
	SREJ2IRrToUwMevGLToWQrpl96t09pkJ8rKTbzuUA0qe84L3LnLngKbiBmp7A5GXWJ1kxDKmggM
	OPmcsE6mXPXhHSs2Ofwb82NhQNwl+YEtSqNxAXWKuh+/V0exwGFybxwmEOpKAv3RwPFA5A8mOVY
	8UX3W1P+DZ2z0KU0f8QnnomvBnTtUajzVo3NcMfoM=
X-Gm-Gg: ASbGncv3JdvrcgfUEs4aKJsUa7sTGCcblAPiuIzqpTS/GHaRK0pYCjFjW29vihAXj+f
	TNFn079M4jmy/Idp36vqRJ9z1JFOjvg8=
X-Received: by 2002:a05:6402:5243:b0:5cf:e26b:9797 with SMTP id 4fb4d7f45d1cf-5d080c604fcmr5605161a12.29.1732796951973;
        Thu, 28 Nov 2024 04:29:11 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGuE0zkJ6zJza+fGet7qX+06h7Jmet7/bu0xRwgqC9A06SMAgod8PaoQJd1k5pY7KRDfw0cJAGqmNIglvOyUZo=
X-Received: by 2002:a05:6402:5243:b0:5cf:e26b:9797 with SMTP id
 4fb4d7f45d1cf-5d080c604fcmr5605060a12.29.1732796951475; Thu, 28 Nov 2024
 04:29:11 -0800 (PST)
MIME-Version: 1.0
References: <20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com>
 <20241115-converge-secs-to-jiffies-v1-18-19aadc34941b@linux.microsoft.com>
In-Reply-To: <20241115-converge-secs-to-jiffies-v1-18-19aadc34941b@linux.microsoft.com>
From: Alex Markuze <amarkuze@redhat.com>
Date: Thu, 28 Nov 2024 14:29:00 +0200
Message-ID: <CAO8a2SjKS2nWWVkAcqXkZhR+Q1TocULkwRk09ABf8XQjjzwJPQ@mail.gmail.com>
Subject: Re: [PATCH 18/22] ceph: Convert timeouts to secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>, Jozsef Kadlecsik <kadlec@netfilter.org>, 
	"David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>, 
	Julia Lawall <Julia.Lawall@inria.fr>, Nicolas Palix <nicolas.palix@imag.fr>, 
	Daniel Mack <daniel@zonque.org>, Haojian Zhuang <haojian.zhuang@gmail.com>, 
	Robert Jarzmik <robert.jarzmik@free.fr>, Russell King <linux@armlinux.org.uk>, 
	Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, 
	Sven Schnelle <svens@linux.ibm.com>, Ofir Bitton <obitton@habana.ai>, 
	Oded Gabbay <ogabbay@kernel.org>, Lucas De Marchi <lucas.demarchi@intel.com>, 
	=?UTF-8?Q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>, 
	Rodrigo Vivi <rodrigo.vivi@intel.com>, 
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>, 
	Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, 
	Jeroen de Borst <jeroendb@google.com>, Praveen Kaligineedi <pkaligineedi@google.com>, 
	Shailend Chand <shailend@google.com>, Andrew Lunn <andrew+netdev@lunn.ch>, 
	James Smart <james.smart@broadcom.com>, Dick Kennedy <dick.kennedy@broadcom.com>, 
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>, 
	"Martin K. Petersen" <martin.petersen@oracle.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Jens Axboe <axboe@kernel.dk>, Kalle Valo <kvalo@kernel.org>, Jeff Johnson <jjohnson@kernel.org>, 
	Catalin Marinas <catalin.marinas@arm.com>, Andrew Morton <akpm@linux-foundation.org>, 
	Jack Wang <jinpu.wang@cloud.ionos.com>, Marcel Holtmann <marcel@holtmann.org>, 
	Johan Hedberg <johan.hedberg@gmail.com>, Luiz Augusto von Dentz <luiz.dentz@gmail.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
	Florian Fainelli <florian.fainelli@broadcom.com>, Ray Jui <rjui@broadcom.com>, 
	Scott Branden <sbranden@broadcom.com>, 
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Xiubo Li <xiubli@redhat.com>, 
	Ilya Dryomov <idryomov@gmail.com>, Josh Poimboeuf <jpoimboe@kernel.org>, Jiri Kosina <jikos@kernel.org>, 
	Miroslav Benes <mbenes@suse.cz>, Petr Mladek <pmladek@suse.com>, 
	Joe Lawrence <joe.lawrence@redhat.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>, 
	Lucas Stach <l.stach@pengutronix.de>, Russell King <linux+etnaviv@armlinux.org.uk>, 
	Christian Gmeiner <christian.gmeiner@gmail.com>, Louis Peens <louis.peens@corigine.com>, 
	Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Naveen N Rao <naveen@kernel.org>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, netfilter-devel@vger.kernel.org, 
	coreteam@netfilter.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, 
	cocci@inria.fr, linux-arm-kernel@lists.infradead.org, 
	linux-s390@vger.kernel.org, dri-devel@lists.freedesktop.org, 
	intel-xe@lists.freedesktop.org, linux-scsi@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-block@vger.kernel.org, 
	linux-wireless@vger.kernel.org, ath11k@lists.infradead.org, 
	linux-mm@kvack.org, linux-bluetooth@vger.kernel.org, 
	linux-staging@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, 
	ceph-devel@vger.kernel.org, live-patching@vger.kernel.org, 
	linux-sound@vger.kernel.org, etnaviv@lists.freedesktop.org, 
	oss-drivers@corigine.com, linuxppc-dev@lists.ozlabs.org, 
	Anna-Maria Behnsen <anna-maria@linutronix.de>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: -5mNdrsTC0LPi7qL8IDd_jU2L1t-7cqrqTYgnKcRR6k_1732796952
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

looks good

On Fri, Nov 15, 2024 at 11:35=E2=80=AFPM Easwar Hariharan
<eahariha@linux.microsoft.com> wrote:
>
> Changes made with the following Coccinelle rules:
>
> @@ constant C; @@
>
> - msecs_to_jiffies(C * 1000)
> + secs_to_jiffies(C)
>
> @@ constant C; @@
>
> - msecs_to_jiffies(C * MSEC_PER_SEC)
> + secs_to_jiffies(C)
>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> ---
>  fs/ceph/quota.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ceph/quota.c b/fs/ceph/quota.c
> index 06ee397e0c3a6172592e62dba95cd267cfff0db1..d90eda19bcc4618f98bfed833=
c10a6071cf2e2ac 100644
> --- a/fs/ceph/quota.c
> +++ b/fs/ceph/quota.c
> @@ -166,7 +166,7 @@ static struct inode *lookup_quotarealm_inode(struct c=
eph_mds_client *mdsc,
>         if (IS_ERR(in)) {
>                 doutc(cl, "Can't lookup inode %llx (err: %ld)\n", realm->=
ino,
>                       PTR_ERR(in));
> -               qri->timeout =3D jiffies + msecs_to_jiffies(60 * 1000); /=
* XXX */
> +               qri->timeout =3D jiffies + secs_to_jiffies(60); /* XXX */
>         } else {
>                 qri->timeout =3D 0;
>                 qri->inode =3D in;
>
> --
> 2.34.1
>
>



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 13:28:43 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 13:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845472.1260875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGeZI-0007qE-8g; Thu, 28 Nov 2024 13:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845472.1260875; Thu, 28 Nov 2024 13: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 1tGeZI-0007q7-61; Thu, 28 Nov 2024 13:28:28 +0000
Received: by outflank-mailman (input) for mailman id 845472;
 Thu, 28 Nov 2024 13:28: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=v7zX=SX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGeZH-0007oU-7N
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 13:28:27 +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 a3d1bcf3-ad8c-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 14:28:22 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2ffc76368c6so13593201fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 05:28: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
 a640c23a62f3a-aa5996dc902sm66443066b.50.2024.11.28.05.28.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 05: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: a3d1bcf3-ad8c-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzYiLCJoZWxvIjoibWFpbC1sajEteDIzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImEzZDFiY2YzLWFkOGMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODAwNTAyLjg3NDc4Nywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732800502; x=1733405302; 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=hc6CxV+Au/rDyeZydkilxu4YRix6akNJo/gf7FIn3DE=;
        b=X0jckQZIiQvjUqFdvL6DvaDK9818WBa3nQ44EDVjwhvMYUxrAf3qM4+/fjPXXYyWHG
         uDGrYNDmC9lPDLjPqe9qDO33gatiDEvyQTxzF1N6bqPR6kv/xkyBQaexoavojREZQHtj
         tDqCj11OvhYlkgMlvan/Ofq9ClIvTd+n/jCMLJUpVi+UjYHhsgkKSNRGZ1+TCAw/S11+
         5d4vUovKwhVQM0uCtWCaafrHSebq/uCP01XxfVMGh1XUE/ubDXztHj86KbwPmroRYedm
         6lYQ4RM75VZ/7OCceQqbHcZYElYWidP/433+C3tF/AeF2luQnjGRUDlfcMXfwsWRA3s0
         E+Lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732800502; x=1733405302;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=hc6CxV+Au/rDyeZydkilxu4YRix6akNJo/gf7FIn3DE=;
        b=MDlkYnMKYBkaq3J3R/RDR1Yqq+PqC55q4mA34RFO1kjgtCYjf+7ZlYr4omHevphy1Q
         4BR2Fz3K0E+YZ/7yaFBZik+Pf391M2ptOBd+mjRg+RjH6cwFNa43jNMX4AXKVWL2B4+u
         oGz3APtA2wYBtNYvGqxixoCDO9PR5b5lus3rsYbV1H38Ag8wayt2+/EUG9Hsx0uHfvW9
         Tef5hWGt9Zr6pzdojSp2ZmeMkmjKHBuWz1mSLiWUKLAzTHYYKkSxIYpTCKZknvWeHfmi
         th2bZPa/ZKmacGMzuoWCQvOZ2MvEnTGoHMFvFwgrFY8mOIM3ylKJruwRhKj05K9GuHBO
         Tonw==
X-Gm-Message-State: AOJu0YxZf7HzGQudbIsOKC4w6HaDNkHaSJR15+4aO8O44e+sHtSbEZ7l
	/E3jvvq/h6xmOSIuvyc6xL0jNXNQ25+udsBQizkyhWqzub9ix1aYFpVKA5dRqey3iF5aDVkZuVU
	=
X-Gm-Gg: ASbGnctwAoExFdeA0IitnAla0KsQO2S5+YIXy6U411UMH7dgkn86vt1xu7pRhPRRcM3
	thR2ONzNqqG0HHwGdFLqFgXZh6rkMJveacrHXr+KPgPZPEoiCE8WIYi8c1yb0qsnEiF6Fx55bIA
	r4rLYf7JnunuouakLi/nyKyarkbRIeHBtB1FYqNe7ancjnQ1AAIc+Ps0uUIgiPwspEUJ94217+Y
	/Jkr8Sy/Z+TfKqIjphQmyVqK99bvt8d4pCJj3p3PcM69TaoWXYuftxYYhW1BnvkA68bkFE6vkdT
	j56uzsk4zsNVx1QukzdT1lBlKea5d/dvv6o=
X-Google-Smtp-Source: AGHT+IGrLkihSmZgL/m3TejMjaTzrUVcRmbfp8F8AMMr2gAqHJP3ozzKgs02Lfc9Z4NOfig5nmEP8Q==
X-Received: by 2002:a05:651c:210f:b0:2fb:5014:aad4 with SMTP id 38308e7fff4ca-2ffd5ffd348mr56981011fa.9.1732800502473;
        Thu, 28 Nov 2024 05:28:22 -0800 (PST)
Message-ID: <d06c56c5-f67a-435b-af26-ed5d6a472ddd@suse.com>
Date: Thu, 28 Nov 2024 14:28:21 +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] x86emul: correct VPBROADCASTMW2D predicate testing
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

Due to presumably a copy-and-paste mistake VPBROADCASTMB2Q was tested
twice instead.

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

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -1889,7 +1889,7 @@ static const struct evex {
     { { 0x39 }, 2, T, R, pfx_66, Wn, Ln }, /* vpmins{d,q} */
     { { 0x39, 0xc0 }, 2, F, N, pfx_f3, Wn, Ln }, /* vpmov{d,q}2m */
     { { 0x3a }, 2, T, R, pfx_66, WIG, Ln }, /* vpminuw */
-    { { 0x2a, 0xc0 }, 2, F, N, pfx_f3, W0, Ln }, /* vpbroadcastmw2d */
+    { { 0x3a, 0xc0 }, 2, F, N, pfx_f3, W0, Ln }, /* vpbroadcastmw2d */
     { { 0x3b }, 2, T, R, pfx_66, Wn, Ln }, /* vpminu{d,q} */
     { { 0x3c }, 2, T, R, pfx_66, WIG, Ln }, /* vpmaxsb */
     { { 0x3d }, 2, T, R, pfx_66, Wn, Ln }, /* vpmaxs{d,q} */


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 13:29:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 13:29:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845478.1260886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGeaD-0008J0-Hf; Thu, 28 Nov 2024 13:29:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845478.1260886; Thu, 28 Nov 2024 13:29: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 1tGeaD-0008It-E7; Thu, 28 Nov 2024 13:29:25 +0000
Received: by outflank-mailman (input) for mailman id 845478;
 Thu, 28 Nov 2024 13:29: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGeaC-0008If-AQ
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 13:29:24 +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 c52d63cc-ad8c-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 14:29:19 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-a9f1d76dab1so144294166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 05:29:19 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5996c1945sm66320466b.19.2024.11.28.05.29.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 05:29: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: c52d63cc-ad8c-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmMiLCJoZWxvIjoibWFpbC1lajEteDYyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImM1MmQ2M2NjLWFkOGMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODAwNTU5LjI2MTk2Nywic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732800558; x=1733405358; 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=Bo8khfxQEyROCPM9BIiGe8UB9lbU+wqhWzgGKkylDOA=;
        b=tg6qCMFVlZ0h667ltI+tHlpSnDE2LF/JFsq6gBH0WQnyi3/npt7M/bjmkNB/M9iFdr
         IzhHmDSlMXsc2/wDzkE0bqOkUhw1xZeLco2tZzOGJpBMQYJMQqJwgktmgNbfVZsuThas
         W6gG08RM5fg+cv1GNiVsPsurwIdak0s8C8uO4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732800558; x=1733405358;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bo8khfxQEyROCPM9BIiGe8UB9lbU+wqhWzgGKkylDOA=;
        b=vgGxIGnzckPcVBvgxF5BidtoAUWF8vz/+ZsTQhX6WKudxwANOS0Rmn+sbBJdCS0Dia
         EWIeIhZlHvncjH8u8ZBSI3FAVIEhNakFwgKWiDWXnKRm2GVo6wESreGkfQECF7FFBbLU
         Wd2x5HuUWN0n+UE9LkYxMmQvOaVgCwuCpE+beIMFHsc233nms+rh6z94N8x7S+iS3UM/
         9SSRzJr9Nh3Q1LX7VjtyrfJcaRHv0tuBUOEO3k50gcCBXlepBtC03q0fwuGlxWU1i0TW
         O/TBJqwyOqtAmfOVaIb/HwfSEQ7OZ4lvqn05jFc8J78cjKtW0KVIVNkoIs9Pc8+Nv6rW
         unmQ==
X-Forwarded-Encrypted: i=1; AJvYcCXfIpEWXKYlgyyF08HSfKyLFbOsUGt2YFmLnSiHeYCVGzwRXzaJNxZ6caMS3Jvb+z8XDCwLEFfMQmA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywmw+1nCruYO9PZszPttv4q/u82EXYw1FisZQyzxUnCiNh4fMZh
	drpVeR6gMYkHsNLbLNW3VxWfjXeOJ/zICfB9W59biOhFhqyy1lU9wbh27Am6MFngb7ps0/K9HKU
	I
X-Gm-Gg: ASbGncu990cBfh0tNLfSR3VUqRQ/Ao1t/AR22J7PX16g+FdUL9mY02m/LnixVTn/UW+
	Lyu7YClZOLrdw979Kyk719xgWlJblkygk8nx8X7FaMM3qI7YObYgfWxuF9r9gEPywrlN6+ahwN+
	U58/URDD+9km/dS4xjc7qYKCjaXcuFMGIhwNGfho2JzP3PnlMR/JfxDNPRaqWpr/IPwQDTNGCCU
	elN4YcjQBxSUurt3q+e8wV2DMd3mIt8iAFpZ1mZGwUbCW9EDup/ClGzZ8Yi5Dg=
X-Google-Smtp-Source: AGHT+IFIhVKVh4WSymt3kQugmw3bXloehRAGzb4U5v28lFCWKiBPJKVypRQDGxKUzR0dTsFTV4JESQ==
X-Received: by 2002:a17:907:7802:b0:a9e:441c:f729 with SMTP id a640c23a62f3a-aa580b2e09dmr770015666b.0.1732800558513;
        Thu, 28 Nov 2024 05:29:18 -0800 (PST)
Message-ID: <27f89a1f-8cbe-4fb3-af84-c92448295423@citrix.com>
Date: Thu, 28 Nov 2024 13:29:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: correct VPBROADCASTMW2D predicate testing
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: <d06c56c5-f67a-435b-af26-ed5d6a472ddd@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <d06c56c5-f67a-435b-af26-ed5d6a472ddd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28/11/2024 1:28 pm, Jan Beulich wrote:
> Due to presumably a copy-and-paste mistake VPBROADCASTMB2Q was tested
> twice instead.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 15:31:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 15:31:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845525.1260896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGgUU-0007tX-Sy; Thu, 28 Nov 2024 15:31:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845525.1260896; Thu, 28 Nov 2024 15:31: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 1tGgUU-0007tQ-QI; Thu, 28 Nov 2024 15:31:38 +0000
Received: by outflank-mailman (input) for mailman id 845525;
 Thu, 28 Nov 2024 15:31: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=JzN0=SX=dingwall.me.uk=james@srs-se1.protection.inumbo.net>)
 id 1tGgUT-0007tK-Ff
 for xen-devel@lists.xen.org; Thu, 28 Nov 2024 15:31:37 +0000
Received: from smarthost01c.sbp.mail.zen.net.uk
 (smarthost01c.sbp.mail.zen.net.uk [212.23.1.5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6e3d53b-ad9d-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 16:31:32 +0100 (CET)
Received: from [217.155.64.189] (helo=mail0.xen.dingwall.me.uk)
 by smarthost01c.sbp.mail.zen.net.uk with esmtpsa (TLS1.0) tls
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (Exim 4.95)
 (envelope-from <james@dingwall.me.uk>) id 1tGgUE-00Alk6-Oe
 for xen-devel@lists.xen.org; Thu, 28 Nov 2024 15:31:29 +0000
Received: from localhost (localhost [IPv6:::1])
 by mail0.xen.dingwall.me.uk (Postfix) with ESMTP id F33CBB4C38E
 for <xen-devel@lists.xen.org>; Thu, 28 Nov 2024 15:31:31 +0000 (GMT)
Received: from mail0.xen.dingwall.me.uk ([IPv6:::1])
 by localhost (mail0.xen.dingwall.me.uk [IPv6:::1]) (amavisd-new, port 10024)
 with ESMTP id BK3O6FKUE447 for <xen-devel@lists.xen.org>;
 Thu, 28 Nov 2024 15:31:31 +0000 (GMT)
Received: from behemoth.dingwall.me.uk (behemoth.dingwall.me.uk [192.168.1.5])
 by dingwall.me.uk (Postfix) with ESMTP id C5BB0B4C38B
 for <xen-devel@lists.xen.org>; Thu, 28 Nov 2024 15:31:31 +0000 (GMT)
Received: by behemoth.dingwall.me.uk (Postfix, from userid 1000)
 id A9E64ED87A7; Thu, 28 Nov 2024 15:31:16 +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: d6e3d53b-ad9d-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxMi4yMy4xLjUiLCJoZWxvIjoic21hcnRob3N0MDFjLnNicC5tYWlsLnplbi5uZXQudWsifQ==
X-Custom-Transaction: eyJpZCI6ImQ2ZTNkNTNiLWFkOWQtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODA3ODkyLjExOTYyOCwic2VuZGVyIjoiamFtZXNAZGluZ3dhbGwubWUudWsiLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZyJ9
X-Virus-Scanned: Debian amavisd-new at dingwall.me.uk
Date: Thu, 28 Nov 2024 15:31:16 +0000
From: James Dingwall <james-xen@dingwall.me.uk>
To: xen-devel@lists.xen.org
Subject: stable-4.18: reliably crash network driver domain by squeezing
 free_memory
Message-ID: <Z0iMxP2gah9Ky4Pl@dingwall.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Originating-smarthost01c-IP: [217.155.64.189]
Feedback-ID: 217.155.64.189


Hi,

We have reproducible issue with the current HEAD of the stable-4.18 branch
which crashes a network driver domain and on some hardware subsequently
results in a dom0 crash.

`xl info` reports: free_memory : 39961, configuring a guest with
memory = 39800 and starting it gives the log as below.  This is intel
hardware so if I've followed the code correctly I think this leads through
to intel_iommu_map_page() from drivers/passthrough/vtd/iommu.c.

The expectation is that we can safely allocate up to free_memory for a
guest without any issue.  Is there any extra logging we could enable to
gain more information?

Thanks,
James


(XEN) d2: IOMMU mapping dfn afdf79 to mfn afdf79 failed: -12
(XEN) domain_crash called from drivers/passthrough/iommu.c:366
(XEN) Domain 2 (vcpu#1) crashed on cpu#3:
(XEN) ----[ Xen-4.18.4-pre  x86_64  debug=y  Not tainted ]----
(XEN) CPU:    3
(XEN) RIP:    e033:[<ffffffff8220128c>]
(XEN) RFLAGS: 0000000000000282   EM: 0   CONTEXT: pv guest (d2v1)
(XEN) rax: 0000000000000014   rbx: ffffc90041361000   rcx: ffffffff8220128c
(XEN) rdx: 0000000000000001   rsi: ffffc9004136b018   rdi: 0000000000000000
(XEN) rbp: ffffc900400e0e18   rsp: ffffc900400e0dc8   r8:  0000000000000000
(XEN) r9:  0000000000000000   r10: 0000000000000000   r11: 0000000000000282
(XEN) r12: 0000000000000001   r13: ffffc9004136b018   r14: ffffc90041361000
(XEN) r15: 0000000000000000   cr0: 0000000080050033   cr4: 00000000003526e0
(XEN) cr3: 0000000cb07c6000   cr2: 00005dc9ed4f6710
(XEN) fsb: 000073436e0b9400   gsb: ffff888023100000   gss: 0000000000000000
(XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e02b   cs: e033
(XEN) Guest stack trace from rsp=ffffc900400e0dc8:
(XEN)    0000000000000000 0000000000000001 ffffffff81a94320 0000000000000000
(XEN)    ffffc9004136e818 ffffc90041361000 0000000000000000 0000000000000001
(XEN)    ffffc90041361000 0000000000000000 ffffc900400e0e58 ffffffffc0542f35
(XEN)    0000000100000001 1332c17936eda000 ffffc90041361030 0000000000000000
(XEN)    0000000000000040 ffffc90041361000 ffffc900400e0e88 ffffffffc05464ae
(XEN)    ffffc90041361030 0000000000000000 ffffc900400e0eef 0000000000000040
(XEN)    ffffc900400e0ec0 ffffffff81edef70 ffff888023135e40 000000000000012c
(XEN)    ffffc900400e0ef8 ffffc90041361030 0000000000000000 ffffc900400e0f48
(XEN)    ffffffff81edf551 ffffffff811b5c7f ffff888023136100 0000000100566b96
(XEN)    0000000000000007 ffff888023131b60 ffffc900400e0ef8 ffffc900400e0ef8
(XEN)    ffffc900400e0f08 ffffc900400e0f08 1332c17936eda000 0000000080000100
(XEN)    0000000000000003 0000000000000008 0000000000000004 ffffffff834060d8
(XEN)    ffffc900400e0fb8 ffffffff8110a198 ffff888023134200 0040010000000001
(XEN)    ffff888004798000 0000000100566b96 000000000000000a ffffc90000000003
(XEN)    ffffffff81a9f77e ffffc9004000b788 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 ffffc900400e0fd8 ffffffff8110a4e9
(XEN)    ffffc9004000b788 0000000000000000 ffffc900400e0fe8 ffffffff8110a84e
(XEN)    ffffc9004000b778 ffffffff821ffd0a ffffc9004000b760
(XEN)     Fault while accessing guest memory.
(XEN) common/memory.c:278:d0v2 Could not allocate order=18 extent: id=24 memflags=0xc0 (0 of 1)
...repeated
(XEN) common/memory.c:278:d0v2 Could not allocate order=9 extent: id=24 memflags=0xc0 (3 of 4)
(XEN) common/memory.c:278:d0v2 Could not allocate order=9 extent: id=24 memflags=0xc0 (0 of 4)
...repeated




decoding the symbols from the crashed driver domain:

vcpu0:
rip: ffffffff8220128c
flags: 00001282 i s nz
rsp: ffffc90040003dc8
rax: 0000000000000000 rcx: ffffffff8220128c rdx: deadbeefdeadf00d
rbx: ffffc90040358680 rsi: deadbeefdeadf00d rdi: deadbeefdeadf00d
rbp: ffffc90040003e18 r8: 0000000000000000 r9: 0000000000000000
r10: 0000000000000000 r11: 0000000000000282 r12: 0000000000000001
r13: ffffc90040362698 r14: ffffc90040358680 r15: 0000000000000000
cs: e033 ss: e02b ds: 0000 es: 0000
fs: 0000 @ 0000000000000000
gs: 0000 @ ffff888103c00000/0000000000000000
Code (instr addr ffffffff8220128c)
cc cc cc cc cc cc cc cc cc 51 41 53 48 c7 c0 14 00 00 00 0f 05 <41> 5b 59 c3 cc cc cc cc cc cc cc


Stack:
0000000000000000 0000000000000001 ffffffff81a942a0 0000000000000000
ffffc90040365e98 ffffc90040358680 0000000000000000 0000000000000001
ffffc90040358680 0000000000000000 ffffc90040003e58 ffffffffc05a6f35
0000000200000001 2acc1e6e51961900 ffffc900403586b0 0000000000000000
0000000000000040 ffffc90040358680 ffffc90040003e88 ffffffffc05aa4ae

Call Trace:
[<ffffffff8220128c>] <--  xen_hypercall_grant_table_op+0xc
ffffc90040003dd8: [<ffffffff81a942a0>]  gnttab_map_refs+0x30
ffffc90040003e20: [<ffffffffc05a6f35>]  
ffffc90040003e60: [<ffffffffc05aa4ae>]  
ffffc90040003e90: [<ffffffff81edede0>]  __napi_poll+0x30
ffffc90040003ec8: [<ffffffff81edf3c1>]  net_rx_action+0x181
ffffc90040003ed0: [<ffffffff811b5c7f>]  generic_handle_irq+0x1f
ffffc90040003f40: [<ffffffff834060d8>]  
ffffc90040003f50: [<ffffffff8110a198>]  handle_softirqs+0xd8
ffffc90040003f68: [<ffffffff8340fcc0>]  
ffffc90040003f88: [<ffffffff81a9f6fe>]  evtchn_fifo_handle_events+0xe
ffffc90040003f90: [<ffffffff83403cc8>]  
ffffc90040003fc0: [<ffffffff8110a4e9>]  __irq_exit_rcu+0xd9
ffffc90040003fc8: [<ffffffff83403cc8>]  
ffffc90040003fe0: [<ffffffff8110a84e>]  irq_exit_rcu+0xe
ffffc90040003fe8: [<ffffffff83403cb8>]  
ffffc90040003ff0: [<ffffffff821ffd0a>]  xen_pv_evtchn_do_upcall+0xaa
ffffc90040003ff8: [<ffffffff83403ca0>]  

vcpu1:
rip: ffffffff822013ac
flags: 00001246 i z p
rsp: ffffc900400a3e60
rax: 0000000000000000 rcx: ffffffff822013ac rdx: 0000000000000000
rbx: 0000000000000000 rsi: deadbeefdeadf00d rdi: deadbeefdeadf00d
rbp: ffffc900400a3e78 r8: 0000000000000000 r9: 0000000000000000
r10: 0000000000000000 r11: 0000000000000246 r12: ffff8881003b8000
r13: 0000000000000000 r14: 0000000000000000 r15: 0000000000000000
cs: e033 ss: e02b ds: 002b es: 002b
fs: 0000 @ 0000000000000000
gs: 0000 @ ffff888103d00000/0000000000000000
Code (instr addr ffffffff822013ac)
cc cc cc cc cc cc cc cc cc 51 41 53 48 c7 c0 1d 00 00 00 0f 05 <41> 5b 59 c3 cc cc cc cc cc cc cc


Stack:
0000000000000000 0000000000000000 ffffffff82200060 ffffc900400a3e88
ffffffff82209629 ffffc900400a3e98 ffffffff822096f9 ffffc900400a3ea8
ffffffff822099cc ffffc900400a3ee8 ffffffff8117bf53 0000000000000001
ac54db278c0d3c00 0000000000000001 ffff8881003b8000 0000000000000001
0000000000000000 ffffc900400a3f08 ffffffff8117c027 000000000000008f

Call Trace:
[<ffffffff822013ac>] <--  xen_hypercall_sched_op+0xc
ffffc900400a3e70: [<ffffffff82200060>]  xen_safe_halt+0x10
ffffc900400a3e80: [<ffffffff82209629>]  default_idle+0x9
ffffc900400a3e90: [<ffffffff822096f9>]  arch_cpu_idle+0x9
ffffc900400a3ea0: [<ffffffff822099cc>]  default_idle_call+0x2c
ffffc900400a3eb0: [<ffffffff8117bf53>]  cpuidle_idle_call+0x153
ffffc900400a3ef0: [<ffffffff8117c027>]  do_idle+0x87
ffffc900400a3f10: [<ffffffff8117c2ba>]  cpu_startup_entry+0x2a
ffffc900400a3f28: [<ffffffff8104bb51>]  cpu_bringup_and_idle+0xa1
ffffc900400a3f50: [<ffffffff81052565>]  asm_cpu_bringup_and_idle+0x5



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 15:39:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 15:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845538.1260905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGgbu-0000A3-N1; Thu, 28 Nov 2024 15:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845538.1260905; Thu, 28 Nov 2024 15:39: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 1tGgbu-00009r-KV; Thu, 28 Nov 2024 15:39:18 +0000
Received: by outflank-mailman (input) for mailman id 845538;
 Thu, 28 Nov 2024 15:39: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=53lb=SX=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tGgbt-00009k-Gz
 for xen-devel@lists.xen.org; Thu, 28 Nov 2024 15:39:17 +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 e9882c4a-ad9e-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 16:39:10 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-aa560a65fd6so175535066b.0
 for <xen-devel@lists.xen.org>; Thu, 28 Nov 2024 07:39:10 -0800 (PST)
Received: from [10.125.226.166] ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-aa5997d560asm79003066b.61.2024.11.28.07.39.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 07:39: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: e9882c4a-ad9e-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzIiLCJoZWxvIjoibWFpbC1lajEteDYzMi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImU5ODgyYzRhLWFkOWUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODA4MzUwLjgxOTc4NCwic2VuZGVyIjoiYW5kcmV3LmNvb3BlckBjbG91ZC5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1732808350; x=1733413150; darn=lists.xen.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=ict90+v2Hlc8MFOxEiVBnvgRBGAGEH0NagzFCD5F3JQ=;
        b=dOpPZtsNJcIjaAQ7ylE2eesvTyeGBIBvR9DbeFFk2E+toIXngqN3e+el18nd4Xw1oH
         tJg2r3YzGGzlwWZpH4itNhwMWfLOP0o+D6XBwe2Dc5eUWnqd61os3ykqN7Mi1SWbFFIl
         34Rhd0dvkwEFU+LUX8oUL5Ifr8nfdAsLq5YNw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732808350; x=1733413150;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ict90+v2Hlc8MFOxEiVBnvgRBGAGEH0NagzFCD5F3JQ=;
        b=kDHW8tgXpyAwxE2BHNf2mHbKUQnTd+FD1Gatfi5jvCj0TiFRapGHaLdPgDSpyKpjon
         Bkn1GouPuas24fk0tcHMj6CPMi/p5FUAF+txywTZ3BDX37dcJoFKX7uCa81yTAkvzowg
         kduXKBLG6WdBmW/SN+9Kgj/QlQCoTU51mj2G1cswPQ9MDxNO9lfoSiWXKeuPMBQjOoRv
         zXm1iKRMVeNaUtfXBCLkcAzDB4Q2sPHu5g8IrPr+9vyA/SQhX+eYdJ7cm5FtmXXzsvHO
         1osdA6AJYIo4fFgqWRmnvRL6IOBHeJ7oCzVZQawfQJy0jeFetupKD6+erI02AXrk5n/C
         /RgQ==
X-Forwarded-Encrypted: i=1; AJvYcCUmEIq3z+0mO/t5Q9vCy2hn2PngZEJ1CyUs/nC7gAZtIQ3HgVIjn8+B3OQ+CCrJJ61LuJercamdMIg=@lists.xen.org
X-Gm-Message-State: AOJu0Yz0vD8J2eybN+a+iwuSwg637sjlSEgPnwY/qohPZdNJtSSZiRaQ
	6oGufxwBxerY6TTGnBuNWHC8/1SbD9cxkA17yhjault+p0txCo0923MEu8sy3R8=
X-Gm-Gg: ASbGncs2hiF6VnIh0Lk91fs0Frswhv8uxOSlPDSNaoMKufyFZc3wmlBcICwizHXgOyN
	OxB8lVQrPb5kkzSSq0AxgDYX0viDW0EX7ohISkbLIhoyp+Nw4KZMZD51xRZAHgK0yDE4BT32FxC
	Dhvy4MMaJiaImhioKdt/iTH3ZZHsvGq9ZUPXb5gNi2U6tx9Dr7J5D8VbKK62DHJ3eU/OsFdcO18
	aRm4TfinMvr1o0jo6VUMJ8LkXGC3JXOIUwqc06WvkyLomIzxEZk8N218yhqPJU=
X-Google-Smtp-Source: AGHT+IGWv8dxtC3KULiJyQ1TvjQkHJfGqy34yE66SXDmvwnzgwL95CTi7RSgV704I5Jk1pcpzeqUcQ==
X-Received: by 2002:a17:907:1de8:b0:a9a:eeb:b26a with SMTP id a640c23a62f3a-aa5945081f0mr385454766b.1.1732808350035;
        Thu, 28 Nov 2024 07:39:10 -0800 (PST)
Message-ID: <6614df33-e383-44dd-aebc-a238ad82f398@citrix.com>
Date: Thu, 28 Nov 2024 15:39:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: stable-4.18: reliably crash network driver domain by squeezing
 free_memory
To: James Dingwall <james-xen@dingwall.me.uk>, xen-devel@lists.xen.org
References: <Z0iMxP2gah9Ky4Pl@dingwall.me.uk>
Content-Language: en-GB
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <Z0iMxP2gah9Ky4Pl@dingwall.me.uk>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28/11/2024 3:31 pm, James Dingwall wrote:
> Hi,
>
> We have reproducible issue with the current HEAD of the stable-4.18 branch
> which crashes a network driver domain and on some hardware subsequently
> results in a dom0 crash.
>
> `xl info` reports: free_memory : 39961, configuring a guest with
> memory = 39800 and starting it gives the log as below.  This is intel
> hardware so if I've followed the code correctly I think this leads through
> to intel_iommu_map_page() from drivers/passthrough/vtd/iommu.c.
>
> The expectation is that we can safely allocate up to free_memory for a
> guest without any issue.  Is there any extra logging we could enable to
> gain more information?

For this, you really should CC the x86 maintainers, or it stands a
chance of getting missed.

Do you have the complete serial log including boot and eventual crash ?

-12 is -ENOMEM so something is wonky, and while dom2 is definitely dead
at this point, Xen ought to be able to unwind cleanly and not take down
dom0 too.

~Andrew

>
> Thanks,
> James
>
>
> (XEN) d2: IOMMU mapping dfn afdf79 to mfn afdf79 failed: -12
> (XEN) domain_crash called from drivers/passthrough/iommu.c:366
> (XEN) Domain 2 (vcpu#1) crashed on cpu#3:
> (XEN) ----[ Xen-4.18.4-pre  x86_64  debug=y  Not tainted ]----
> (XEN) CPU:    3
> (XEN) RIP:    e033:[<ffffffff8220128c>]
> (XEN) RFLAGS: 0000000000000282   EM: 0   CONTEXT: pv guest (d2v1)
> (XEN) rax: 0000000000000014   rbx: ffffc90041361000   rcx: ffffffff8220128c
> (XEN) rdx: 0000000000000001   rsi: ffffc9004136b018   rdi: 0000000000000000
> (XEN) rbp: ffffc900400e0e18   rsp: ffffc900400e0dc8   r8:  0000000000000000
> (XEN) r9:  0000000000000000   r10: 0000000000000000   r11: 0000000000000282
> (XEN) r12: 0000000000000001   r13: ffffc9004136b018   r14: ffffc90041361000
> (XEN) r15: 0000000000000000   cr0: 0000000080050033   cr4: 00000000003526e0
> (XEN) cr3: 0000000cb07c6000   cr2: 00005dc9ed4f6710
> (XEN) fsb: 000073436e0b9400   gsb: ffff888023100000   gss: 0000000000000000
> (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e02b   cs: e033
> (XEN) Guest stack trace from rsp=ffffc900400e0dc8:
> (XEN)    0000000000000000 0000000000000001 ffffffff81a94320 0000000000000000
> (XEN)    ffffc9004136e818 ffffc90041361000 0000000000000000 0000000000000001
> (XEN)    ffffc90041361000 0000000000000000 ffffc900400e0e58 ffffffffc0542f35
> (XEN)    0000000100000001 1332c17936eda000 ffffc90041361030 0000000000000000
> (XEN)    0000000000000040 ffffc90041361000 ffffc900400e0e88 ffffffffc05464ae
> (XEN)    ffffc90041361030 0000000000000000 ffffc900400e0eef 0000000000000040
> (XEN)    ffffc900400e0ec0 ffffffff81edef70 ffff888023135e40 000000000000012c
> (XEN)    ffffc900400e0ef8 ffffc90041361030 0000000000000000 ffffc900400e0f48
> (XEN)    ffffffff81edf551 ffffffff811b5c7f ffff888023136100 0000000100566b96
> (XEN)    0000000000000007 ffff888023131b60 ffffc900400e0ef8 ffffc900400e0ef8
> (XEN)    ffffc900400e0f08 ffffc900400e0f08 1332c17936eda000 0000000080000100
> (XEN)    0000000000000003 0000000000000008 0000000000000004 ffffffff834060d8
> (XEN)    ffffc900400e0fb8 ffffffff8110a198 ffff888023134200 0040010000000001
> (XEN)    ffff888004798000 0000000100566b96 000000000000000a ffffc90000000003
> (XEN)    ffffffff81a9f77e ffffc9004000b788 0000000000000000 0000000000000000
> (XEN)    0000000000000000 0000000000000000 ffffc900400e0fd8 ffffffff8110a4e9
> (XEN)    ffffc9004000b788 0000000000000000 ffffc900400e0fe8 ffffffff8110a84e
> (XEN)    ffffc9004000b778 ffffffff821ffd0a ffffc9004000b760
> (XEN)     Fault while accessing guest memory.
> (XEN) common/memory.c:278:d0v2 Could not allocate order=18 extent: id=24 memflags=0xc0 (0 of 1)
> ...repeated
> (XEN) common/memory.c:278:d0v2 Could not allocate order=9 extent: id=24 memflags=0xc0 (3 of 4)
> (XEN) common/memory.c:278:d0v2 Could not allocate order=9 extent: id=24 memflags=0xc0 (0 of 4)
> ...repeated
>
>
>
>
> decoding the symbols from the crashed driver domain:
>
> vcpu0:
> rip: ffffffff8220128c
> flags: 00001282 i s nz
> rsp: ffffc90040003dc8
> rax: 0000000000000000 rcx: ffffffff8220128c rdx: deadbeefdeadf00d
> rbx: ffffc90040358680 rsi: deadbeefdeadf00d rdi: deadbeefdeadf00d
> rbp: ffffc90040003e18 r8: 0000000000000000 r9: 0000000000000000
> r10: 0000000000000000 r11: 0000000000000282 r12: 0000000000000001
> r13: ffffc90040362698 r14: ffffc90040358680 r15: 0000000000000000
> cs: e033 ss: e02b ds: 0000 es: 0000
> fs: 0000 @ 0000000000000000
> gs: 0000 @ ffff888103c00000/0000000000000000
> Code (instr addr ffffffff8220128c)
> cc cc cc cc cc cc cc cc cc 51 41 53 48 c7 c0 14 00 00 00 0f 05 <41> 5b 59 c3 cc cc cc cc cc cc cc
>
>
> Stack:
> 0000000000000000 0000000000000001 ffffffff81a942a0 0000000000000000
> ffffc90040365e98 ffffc90040358680 0000000000000000 0000000000000001
> ffffc90040358680 0000000000000000 ffffc90040003e58 ffffffffc05a6f35
> 0000000200000001 2acc1e6e51961900 ffffc900403586b0 0000000000000000
> 0000000000000040 ffffc90040358680 ffffc90040003e88 ffffffffc05aa4ae
>
> Call Trace:
> [<ffffffff8220128c>] <--  xen_hypercall_grant_table_op+0xc
> ffffc90040003dd8: [<ffffffff81a942a0>]  gnttab_map_refs+0x30
> ffffc90040003e20: [<ffffffffc05a6f35>]  
> ffffc90040003e60: [<ffffffffc05aa4ae>]  
> ffffc90040003e90: [<ffffffff81edede0>]  __napi_poll+0x30
> ffffc90040003ec8: [<ffffffff81edf3c1>]  net_rx_action+0x181
> ffffc90040003ed0: [<ffffffff811b5c7f>]  generic_handle_irq+0x1f
> ffffc90040003f40: [<ffffffff834060d8>]  
> ffffc90040003f50: [<ffffffff8110a198>]  handle_softirqs+0xd8
> ffffc90040003f68: [<ffffffff8340fcc0>]  
> ffffc90040003f88: [<ffffffff81a9f6fe>]  evtchn_fifo_handle_events+0xe
> ffffc90040003f90: [<ffffffff83403cc8>]  
> ffffc90040003fc0: [<ffffffff8110a4e9>]  __irq_exit_rcu+0xd9
> ffffc90040003fc8: [<ffffffff83403cc8>]  
> ffffc90040003fe0: [<ffffffff8110a84e>]  irq_exit_rcu+0xe
> ffffc90040003fe8: [<ffffffff83403cb8>]  
> ffffc90040003ff0: [<ffffffff821ffd0a>]  xen_pv_evtchn_do_upcall+0xaa
> ffffc90040003ff8: [<ffffffff83403ca0>]  
>
> vcpu1:
> rip: ffffffff822013ac
> flags: 00001246 i z p
> rsp: ffffc900400a3e60
> rax: 0000000000000000 rcx: ffffffff822013ac rdx: 0000000000000000
> rbx: 0000000000000000 rsi: deadbeefdeadf00d rdi: deadbeefdeadf00d
> rbp: ffffc900400a3e78 r8: 0000000000000000 r9: 0000000000000000
> r10: 0000000000000000 r11: 0000000000000246 r12: ffff8881003b8000
> r13: 0000000000000000 r14: 0000000000000000 r15: 0000000000000000
> cs: e033 ss: e02b ds: 002b es: 002b
> fs: 0000 @ 0000000000000000
> gs: 0000 @ ffff888103d00000/0000000000000000
> Code (instr addr ffffffff822013ac)
> cc cc cc cc cc cc cc cc cc 51 41 53 48 c7 c0 1d 00 00 00 0f 05 <41> 5b 59 c3 cc cc cc cc cc cc cc
>
>
> Stack:
> 0000000000000000 0000000000000000 ffffffff82200060 ffffc900400a3e88
> ffffffff82209629 ffffc900400a3e98 ffffffff822096f9 ffffc900400a3ea8
> ffffffff822099cc ffffc900400a3ee8 ffffffff8117bf53 0000000000000001
> ac54db278c0d3c00 0000000000000001 ffff8881003b8000 0000000000000001
> 0000000000000000 ffffc900400a3f08 ffffffff8117c027 000000000000008f
>
> Call Trace:
> [<ffffffff822013ac>] <--  xen_hypercall_sched_op+0xc
> ffffc900400a3e70: [<ffffffff82200060>]  xen_safe_halt+0x10
> ffffc900400a3e80: [<ffffffff82209629>]  default_idle+0x9
> ffffc900400a3e90: [<ffffffff822096f9>]  arch_cpu_idle+0x9
> ffffc900400a3ea0: [<ffffffff822099cc>]  default_idle_call+0x2c
> ffffc900400a3eb0: [<ffffffff8117bf53>]  cpuidle_idle_call+0x153
> ffffc900400a3ef0: [<ffffffff8117c027>]  do_idle+0x87
> ffffc900400a3f10: [<ffffffff8117c2ba>]  cpu_startup_entry+0x2a
> ffffc900400a3f28: [<ffffffff8104bb51>]  cpu_bringup_and_idle+0xa1
> ffffc900400a3f50: [<ffffffff81052565>]  asm_cpu_bringup_and_idle+0x5
>
>



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 16:45:57 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 16:45:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845554.1260915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGheB-0000RN-DH; Thu, 28 Nov 2024 16:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845554.1260915; Thu, 28 Nov 2024 16:45: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 1tGheB-0000RG-AO; Thu, 28 Nov 2024 16:45:43 +0000
Received: by outflank-mailman (input) for mailman id 845554;
 Thu, 28 Nov 2024 16:45: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=yZHB=SX=bounce.vates.tech=bounce-md_30504962.67489e2f.v1-610560bdcac6432683aae291a032abcd@srs-se1.protection.inumbo.net>)
 id 1tGhe9-0000RA-VB
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 16:45:42 +0000
Received: from mail136-20.atl41.mandrillapp.com
 (mail136-20.atl41.mandrillapp.com [198.2.136.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 318eab2d-ada8-11ef-99a3-01e77a169b0f;
 Thu, 28 Nov 2024 17:45:37 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-20.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Xzhy80gLTzCf9ND5
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 16:45:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 610560bdcac6432683aae291a032abcd; Thu, 28 Nov 2024 16:45: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: 318eab2d-ada8-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yMCIsImhlbG8iOiJtYWlsMTM2LTIwLmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjMxOGVhYjJkLWFkYTgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODEyMzM3LjgzMjMxNiwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDg5ZTJmLnYxLTYxMDU2MGJkY2FjNjQzMjY4M2FhZTI5MWEwMzJhYmNkQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732812336; x=1733072836;
	bh=18EnFAJJ8tABzRxMkZJWb/kNwl3eaei2C3/d4lL33QA=;
	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=EkZ9WDwAu/1zpVTnn6Jgv8X0oerlQliRAyk8qR4cQs7/OUTJWTwXsbh/yL/i/F2kL
	 Ig9hrnodjRbzViU9X2jR6jyL2F3N7BtuGfdQfScUhJE/1ZetJC7mM7L8QeFYFOSX3/
	 NeNGvfbfaXQurXrbkjkAs4TJ2ZSzj0yIwvn1bUgyJ4ExNEtQwYCWIj3+yktLANM6MW
	 10KOJXH2ExvkX/++RdJYqbRepIpji0v/9QqPxaSd9O8mrxVHGQsN4vLnaDaMwSeszD
	 RXm/AJulK3XPv/utXVeoV7RB7noWWUKbv+Rs7c7ZmflRZgfI6vNbTyotuxyCFJLKYy
	 PXmJUfS3LdjZQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732812336; x=1733072836; i=anthony.perard@vates.tech;
	bh=18EnFAJJ8tABzRxMkZJWb/kNwl3eaei2C3/d4lL33QA=;
	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=FBfSEHRH4Ncfx9XJ2/E1aqZSy64XhvN2S9eOsZpsS8ZFVyusNP6820mHvh+Gz5Pa7
	 0HmC8zXYw5LecihjDPjeQXqDXLAamvJ0Y7aWl9QYPrQvl7SK2tQ1VPdx7pqkAeTiB6
	 hp6j3Ym4c/iSQ8nrBc6/o7q6t1lkvfiU18M6J3KQrdSP3G69x4tk+Ji6yWx3iLsCgN
	 98kBlQbn8Z3pEsQ+eJvgViHTDUFXrOD6beUUZ9+mlIWh4kqIfuZy703G4DxrlDpGzh
	 YdooFht3MpsxumhnRztC9d7drJ/19F6GDGrZ30780wWpBV3tUFHe+V2SBIglE4IeAi
	 HroWQnzEAArCQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=201/2]=20xl:=20Keep=20monitoring=20suspended=20domain?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732812335201
To: "Jason Andryuk" <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <Z0ieLBwYt2jm_WAa@l14>
References: <20241126171941.170897-1-jason.andryuk@amd.com> <20241126171941.170897-2-jason.andryuk@amd.com>
In-Reply-To: <20241126171941.170897-2-jason.andryuk@amd.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.610560bdcac6432683aae291a032abcd?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241128:md
Date: Thu, 28 Nov 2024 16:45:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Nov 26, 2024 at 12:19:40PM -0500, Jason Andryuk wrote:
> When a VM transitioned to LIBXL_SHUTDOWN_REASON_SUSPEND, the xl daemon
> was exiting as 0 = DOMAIN_RESTART_NONE "No domain restart".
> Later, when the VM actually shutdown, the missing xl daemon meant the
> domain wasn't cleaned up properly.
> 
> Add a new DOMAIN_RESTART_SUSPENDED to handle the case.  The xl daemon
> keeps running to react to future shutdown events.
> 
> The domain death event needs to be re-enabled to catch subsequent
> events.  The libxl_evgen_domain_death is moved from death_list to
> death_reported, and then it isn't found on subsequent iterations through
> death_list.  We enable the new event before disabling the old event, to
> keep the xenstore watch active.  If it is unregistered and
> re-registered, it'll fire immediately for our suspended domain which
> will end up continuously re-triggering.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Anthony PERARD <anthony.perard@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 Thu Nov 28 17:19:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 17:19:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845565.1260926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGiB8-0004Qb-VZ; Thu, 28 Nov 2024 17:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845565.1260926; Thu, 28 Nov 2024 17:19: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 1tGiB8-0004QU-Rw; Thu, 28 Nov 2024 17:19:46 +0000
Received: by outflank-mailman (input) for mailman id 845565;
 Thu, 28 Nov 2024 17:19: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=9ayl=SX=bounce.vates.tech=bounce-md_30504962.6748a62a.v1-ffaab613dfec405b8661c92b2e712a76@srs-se1.protection.inumbo.net>)
 id 1tGiB7-0004QO-AZ
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 17:19:45 +0000
Received: from mail136-20.atl41.mandrillapp.com
 (mail136-20.atl41.mandrillapp.com [198.2.136.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2e264cf-adac-11ef-a0cd-8be0dac302b0;
 Thu, 28 Nov 2024 18:19:40 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-20.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4XzjjQ1kLyzCf9QBL
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 17:19:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ffaab613dfec405b8661c92b2e712a76; Thu, 28 Nov 2024 17:19: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: f2e264cf-adac-11ef-a0cd-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yMCIsImhlbG8iOiJtYWlsMTM2LTIwLmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImYyZTI2NGNmLWFkYWMtMTFlZi1hMGNkLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODE0MzgwLjQyNzUzNiwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDhhNjJhLnYxLWZmYWFiNjEzZGZlYzQwNWI4NjYxYzkyYjJlNzEyYTc2QGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732814378; x=1733074878;
	bh=5P2eEcW5HcVWqpM1Z6NRCuswPrUIR3amsCGc5WTsyzM=;
	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=YdFhyEhUdd5SPBy399Gwgp3NR5KoZb8ngagdvcXqRR/TBxQjfhXwzZcSQkpHS25V2
	 X15RrDi2a3x8HfgYcRtVNpqNYwli1J0NmGoupkfa+pd8eKg/NkEn8gou/3gYNCE1mG
	 mZF2ivd7JiJvgybx+cpa/+Wj179T3zoVWr45k2AS91FUEvdHirt3zvmB+vJxG+SSk4
	 D6xTTzB0Xofh80DpRkX7fv7p/FtuL3gCoNy/uaQwtEn6JFiiJEAk/oyZzYodJ2HuPZ
	 FujeewYM//5rh/l22JdeRf7mILHVQf6LVIYpNzWaVfOw/W/bPIZe75WWOl1Pmr/0xj
	 +ZHjucZkOJKBA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732814378; x=1733074878; i=anthony.perard@vates.tech;
	bh=5P2eEcW5HcVWqpM1Z6NRCuswPrUIR3amsCGc5WTsyzM=;
	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=MYe8GfDtF9eSZfq4/EktrjAExPyjQv9F1Eu4zqY49O2pmS3BT4UhJtfKJhQyJVHDz
	 TtLMpcBtXVZTq6Rs99ZvASRbOUtb9wsu+cdB+uvE1s6g/RzOk02J54NdL0p5XnLVRv
	 ZmJI0q+8N8G3srzbB5sE4v4//8NbImPO/c+kHZhYMmmJqzFMFokbNeDlk7T7rvL8F+
	 iF3gcsrapJd5+H1ks3WqJbLpn090ELDRsDsglLuVMET5wvx15yZenIkSOWgll/bVwo
	 R4p0jvAnHiAEKKZMmymsIDfUJ8oR6jH21lfWV0L7MxKSKmucPzu6iiugee4x848Bhb
	 B//91II3Svuxw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=202/2]=20tools/xl:=20add=20suspend=20and=20resume=20subcommands?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732814376885
To: "Jason Andryuk" <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org, =?utf-8?Q?zithro=20/=20Cyril=20R=C3=A9bert?= <slack@rabbit.lu>, "Andrew Cooper" <andrew.cooper3@citrix.com>, =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-Id: <Z0imKGddLpvxAZEN@l14>
References: <20241126171941.170897-1-jason.andryuk@amd.com> <20241126171941.170897-3-jason.andryuk@amd.com>
In-Reply-To: <20241126171941.170897-3-jason.andryuk@amd.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.ffaab613dfec405b8661c92b2e712a76?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241128:md
Date: Thu, 28 Nov 2024 17:19:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Nov 26, 2024 at 12:19:41PM -0500, Jason Andryuk wrote:
> diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
> index c45d497c28..3160966972 100644
> --- a/tools/xl/xl_vmcontrol.c
> +++ b/tools/xl/xl_vmcontrol.c
> @@ -42,6 +42,16 @@ static void unpause_domain(uint32_t domid)
>      libxl_domain_unpause(ctx, domid, NULL);
>  }
>  
> +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);
> +}
> +
>  static void destroy_domain(uint32_t domid, int force)
>  {
>      int rc;
> @@ -82,6 +92,32 @@ int main_unpause(int argc, char **argv)
>      return EXIT_SUCCESS;
>  }
>  
> +int main_suspend(int argc, char **argv)
> +{
> +    int opt;
> +
> +    SWITCH_FOREACH_OPT(opt, "", NULL, "suspend", 1) {
> +        /* No options */
> +    }
> +
> +    suspend_domain(find_domain(argv[optind]));
> +
> +    return EXIT_SUCCESS;
> +}
> +
> +int main_resume(int argc, char **argv)
> +{
> +    int opt;
> +
> +    SWITCH_FOREACH_OPT(opt, "", NULL, "resume", 1) {
> +        /* No options */
> +    }
> +
> +    resume_domain(find_domain(argv[optind]));
> +
> +    return EXIT_SUCCESS;
> +}

These four new functions in xl_vmcontrol.c needs to be hidden behind
LIBXL_HAVE_NO_SUSPEND_RESUME, like the whole xl_migrate.c file is.
Both prototypes for main_*() are already hidden as well as the new
command in xl_cmdtables.

Or alternatively, we could probably have the command been present on
Arm, but I don't know if libxl_domain_suspend_only() is going to work.
It looks like it only depends on the hypervisor. I can't find any logic
that would treat Arm differently, besides the presence of
LIBXL_HAVE_NO_SUSPEND_RESUME.

But best bet would be to hide those four functions when
LIBXL_HAVE_NO_SUSPEND_RESUME is defined.

Thanks,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Nov 28 19:00:21 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 19:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845582.1260936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGjkF-0000Ao-S2; Thu, 28 Nov 2024 19:00:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845582.1260936; Thu, 28 Nov 2024 19:00: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 1tGjkF-0000Ah-Nf; Thu, 28 Nov 2024 19:00:07 +0000
Received: by outflank-mailman (input) for mailman id 845582;
 Thu, 28 Nov 2024 19:00:06 +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 1tGjkE-0008RF-60
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 19:00:06 +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 1tGjk7-00A7QU-0b;
 Thu, 28 Nov 2024 18:59:59 +0000
Received: from [2a02:8012:3a1:0:1024:27fc:e73a:2414]
 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 1tGjk7-00AzBm-0X;
 Thu, 28 Nov 2024 18:59: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=jz5s7SXvMNZhxMKQuRTeHe1X10q2hV7uaEcJvXZOvEU=; b=5vAAEutLJU4ehI8UgzMLUNayDi
	yCt8pyh7/wPF3yne7jaYfEOKn5LrkXXr61oMK2DblDBFvcA9LysSK65laQfG0199nItT9pPdMrNMq
	Lkm3mXtIrqT4aXhYc3JQ/A8MQVXj3fCxbZyMyBdrIm/6AYw5nqiuSwMU/6/9y6uxsiR8=;
Message-ID: <a5809331-b719-42cd-b68e-60871299e303@xen.org>
Date: Thu, 28 Nov 2024 18:59:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] mm: allow page scrubbing routine(s) to be arch
 controlled
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Bobby Eshleman
 <bobbyeshleman@gmail.com>, Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e7314ac8-ed09-4da8-b915-09409b01fe77@suse.com>
 <49b0a003-3fae-4908-ba63-a1c764293755@suse.com>
 <70389f10-5706-4fb4-a186-984a9fd52d76@xen.org>
 <2d3c14c1-d4e8-41a0-98a7-3da1a3a89e24@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2d3c14c1-d4e8-41a0-98a7-3da1a3a89e24@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 26/11/2024 08:02, Jan Beulich wrote:
> On 25.11.2024 23:17, Julien Grall wrote:
>>> --- a/xen/arch/arm/include/asm/page.h
>>> +++ b/xen/arch/arm/include/asm/page.h
>>> @@ -144,6 +144,12 @@ extern size_t dcache_line_bytes;
>>>    
>>>    #define copy_page(dp, sp) memcpy(dp, sp, PAGE_SIZE)
>>>    
>>> +#define clear_page_hot  clear_page
>>> +#define clear_page_cold clear_page
>>> +
>>> +#define scrub_page_hot(page) memset(page, SCRUB_BYTE_PATTERN, PAGE_SIZE)
>>> +#define scrub_page_cold      scrub_page_hot
>>
>> This block seems to be common between all the arch but x86. Should we
>> add an header in asm generic?
> 
> I'd say that largely depends on the intentions of Arm, RISC-V, and PPC.
> Personally I've always found it odd that memset() / memcpy() are used for
> page clearing / copying. Surely there are better ways, and pretty certainly
> about every arch also has distinct means to efficiently do "hot" and "cold"
> clearing. Therefore keeping these #define-s in per-arch headers imo serves
> as a reminder that something wants doing about them.

Fair enough. For the code:

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

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 19:08:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 19:08:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845595.1260946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGjsE-0000t5-Nu; Thu, 28 Nov 2024 19:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845595.1260946; Thu, 28 Nov 2024 19: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 1tGjsE-0000sy-K6; Thu, 28 Nov 2024 19:08:22 +0000
Received: by outflank-mailman (input) for mailman id 845595;
 Thu, 28 Nov 2024 19:08: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 1tGjsD-0000ss-5U
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 19:08: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 1tGjsC-00A7fn-10;
 Thu, 28 Nov 2024 19:08:20 +0000
Received: from [2a02:8012:3a1:0:1024:27fc:e73a:2414]
 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 1tGjsC-00B0DY-1K;
 Thu, 28 Nov 2024 19:08: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>
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=MJSLEUWUD2021tVHT6whE7GqwVvKq55deRZCUACrV+I=; b=Jo2R/XBK2yoXQ5uwrg2259CrNf
	BH3qFxsxC2U8k1XHXNichfBoas30NXMhWX+mNeyun1YC5IgE85Qq1ufPOMIEa2oVyahrR2p6wDO4C
	Sy0F27N8R3h+0QJr0HGjC6Xmk9wTNVrakMUW1NF8B4l351lf2A2oTfqngV5TP7sT/gVo=;
Message-ID: <946a522a-b174-44fe-8a9a-74ade0fdda2c@xen.org>
Date: Thu, 28 Nov 2024 19:08:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/device-tree: Allow region overlapping with
 /memreserve/ ranges
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Luca Fancellu <luca.fancellu@arm.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20241114102802.54512-1-luca.fancellu@arm.com>
 <f35997e4-40a7-40c5-9b29-932724e9cac5@xen.org>
In-Reply-To: <f35997e4-40a7-40c5-9b29-932724e9cac5@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 16/11/2024 10:18, Julien Grall wrote:
> On 14/11/2024 10:28, Luca Fancellu wrote:
>> There are some cases where the device tree exposes a memory range
>> in both /memreserve/ and reserved-memory node, in this case the
>> current code will stop Xen to boot since it will find that the
>> latter range is clashing with the already recorded /memreserve/
>> ranges.
>>
>> Furthermore, u-boot lists boot modules ranges, such as ramdisk,
>> in the /memreserve/ part and even in this case this will prevent
>> Xen to boot since it will see that the module memory range that
>> it is going to add in 'add_boot_module' clashes with a /memreserve/
>> range.
>>
>> When Xen populate the data structure that tracks the memory ranges,
>> it also adds a memory type described in 'enum membank_type', so
>> in order to fix this behavior, allow overlapping with the /memreserve/
>> ranges in the 'check_reserved_regions_overlap' function when a flag
>> is set.
>>
>> In order to implement this solution, there is a distinction between
>> the 'struct membanks *' handled by meminfo_overlap_check(...) that
>> needs to be done, because the static shared memory banks doesn't have
>> a usable bank[].type field and so it can't be accessed, hence now
>> the 'struct membanks_hdr' have a 'enum region_type type' field in order
>> to be able to identify static shared memory banks in 
>> meminfo_overlap_check(...).
>>
>> While there, set a type for the memory recorded using meminfo_add_bank()
>> from efi-boot.h.
>>
>> Fixes: 53dc37829c31 ("xen/arm: Add DT reserve map regions to 
>> bootinfo.reserved_mem")
>> Reported-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>> Reported-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>
> 
> I will give a few days for the others to review and Shawn to comment 
> whether it fixes his issue (I can't remember if it was already done).

This is now committed.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 19:12:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 19:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845605.1260960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGjwT-0002Ub-8q; Thu, 28 Nov 2024 19:12:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845605.1260960; Thu, 28 Nov 2024 19:12: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 1tGjwT-0002UU-4o; Thu, 28 Nov 2024 19:12:45 +0000
Received: by outflank-mailman (input) for mailman id 845605;
 Thu, 28 Nov 2024 19:12:44 +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 1tGjwS-0002UO-9d
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 19:12:44 +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 1tGjwR-00A7oY-2K;
 Thu, 28 Nov 2024 19:12:44 +0000
Received: from [2a02:8012:3a1:0:1024:27fc:e73a:2414]
 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 1tGjwR-00B11p-2i;
 Thu, 28 Nov 2024 19:12: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=bd+yrVeOOjO/1CAeWits6ETh43t9T+oZdIJwS6ygI1E=; b=3r1lPDMf/BjGN6mt4BdSxgARhq
	1ox86k2wLNwx0sMIy1RPSi+urbbZO7Ce9J7as92aiZSo621Y2x2cvaBdQiX5Iz+syCu3dq/cPPIn2
	jg5Aj5JHHq+YQuN6VuVFxZdWcZI55TdAJ9TuCV1bhb2YUzDoSyXv4l9cFVcFAOaK0fVU=;
Message-ID: <ab7f3e10-631b-432c-8f12-359ac71d3340@xen.org>
Date: Thu, 28 Nov 2024 19:12:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] drivers/char: rename arm-uart.c to uart-init.c
Content-Language: en-GB
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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: <f168e76eacc2fd2e6da559a38c33e187da515614.1732027276.git.oleksii.kurochko@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f168e76eacc2fd2e6da559a38c33e187da515614.1732027276.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Oleksii,

On 19/11/2024 14:55, Oleksii Kurochko wrote:
> Rename the file containing uart_init() to enable reuse across other
> architectures that utilize device trees or SPCR tables to locate UART
> information.
> After locating UART data, {acpi}_device_init() is called to initialize
> the UART.
> 
> arm_uart_init() is renamed to uart_init() to be reused by other
> architectures.
> 
> A new configuration option, CONFIG_GENERIC_UART_INIT, is introduced,
> currently available only for Arm. Enabling CONFIG_UART_INIT on additional
> architectures will require additional functionality, such as device tree
> mapping and unflattening, etc.
> 
> arm-uart.c is removed from "ARM (W/ VIRTUALIZATION EXTENSIONS) ARCHITECTURE"
> section in the MAINTAINERS file, as it is no longer Arm-specific and can
> now be maintained by maintainers of other architectures.
> 
> Use GENERIC_UART_INIT for CONFIG_ARM by adding `select GENERIC_UART_INIT`
> to CONFIG_ARM.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

And committed.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 28 19:22:47 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Nov 2024 19:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845617.1260973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGk65-0004EI-4a; Thu, 28 Nov 2024 19:22:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845617.1260973; Thu, 28 Nov 2024 19:22: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 1tGk65-0004EB-23; Thu, 28 Nov 2024 19:22:41 +0000
Received: by outflank-mailman (input) for mailman id 845617;
 Thu, 28 Nov 2024 19:22: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 1tGk63-0004E5-HY
 for xen-devel@lists.xenproject.org; Thu, 28 Nov 2024 19:22: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 1tGk5z-00A8BD-0k;
 Thu, 28 Nov 2024 19:22:35 +0000
Received: from [2a02:8012:3a1:0:1024:27fc:e73a:2414]
 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 1tGk5z-00B2QB-0y;
 Thu, 28 Nov 2024 19: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>
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=5WjNmllbYj0mUnnZuhPg9KKXB5/Pup9q2PC9fIKxRoY=; b=UeMyq8cgrCffowDup9d6f1WDUJ
	nhVXabJQ9WqFswY1vt9YBv2hQ39stqUedMj9JKrgkRjBdH+QwY8+Co5kGkYaF49I3U3cPPZPo7Jze
	SDD2qTdoygLtvOhPiPxLfgn9e+3OhqPI1Bk0Pm3b6URcM5a88ObKSNGFISOBcJ5lv9oA=;
Message-ID: <7248576a-2743-4d08-a272-532ef234083d@xen.org>
Date: Thu, 28 Nov 2024 19:22:33 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] xen/arm: do not give memory back to static heap
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>
Cc: Penny Zheng <Penny.Zheng@arm.com>,
 Stefano Stabellini <sstabellini@kernel.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>, Wei Chen <Wei.Chen@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241119085806.805142-1-luca.fancellu@arm.com>
 <20241119085806.805142-5-luca.fancellu@arm.com>
 <ca91b717-47c3-4f92-af6a-cb740ef6e91d@suse.com>
 <BE895863-B07F-42C2-BD44-D0A1E6150DC4@arm.com>
 <e5f0b9e4-80ab-4cf5-8745-4cb83cfe4c7d@suse.com>
 <7761CEB9-2304-4588-9ADE-C81B9A5E536C@arm.com>
 <7cc9ad6f-e5f6-444f-994c-b176a93cfb29@suse.com>
 <C881D093-C583-49BE-B541-ACE705C2C2C7@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <C881D093-C583-49BE-B541-ACE705C2C2C7@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca,

Sorry for the late answer.

On 26/11/2024 13:52, Luca Fancellu wrote:
> 
> 
>> On 26 Nov 2024, at 13:29, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 26.11.2024 14:25, Luca Fancellu wrote:
>>>> This reads better, thanks. Follow-on question: Is what is statically
>>>> configured for the heap guaranteed to never overlap with anything passed
>>>> to init_domheap_pages() in those places that you touch?
>>>
>>> I think so, the places of the check are mainly memory regions related to boot modules,
>>> when we add a boot module we also do a check in order to see if it clashes with any
>>> reserved regions already defined, which the static heap is part of.
>>>
>>> Could you explain me why the question?
>>
>> Well, if there was a chance of overlap, then parts of the free region would
>> need to go one way, and the rest the other way.
> 
> oh ok, sure of course, thanks for answering.
> 
>>
>>>>>>> --- a/xen/include/xen/bootfdt.h
>>>>>>> +++ b/xen/include/xen/bootfdt.h
>>>>>>> @@ -132,7 +132,6 @@ struct bootinfo {
>>>>>>> #ifdef CONFIG_STATIC_SHM
>>>>>>>    struct shared_meminfo shmem;
>>>>>>> #endif
>>>>>>> -    bool static_heap;
>>>>>>> };
>>>>>>>
>>>>>>> #ifdef CONFIG_ACPI
>>>>>>> @@ -157,6 +156,10 @@ struct bootinfo {
>>>>>>>
>>>>>>> extern struct bootinfo bootinfo;
>>>>>>>
>>>>>>> +#ifdef CONFIG_STATIC_MEMORY
>>>>>>> +extern bool static_heap;
>>>>>>> +#endif
>>>>>>
>>>>>> Just to double check Misra-wise: Is there a guarantee that this header will
>>>>>> always be included by page-alloc.c, so that the definition of the symbol
>>>>>> has an earlier declaration already visible? I ask because this header
>>>>>> doesn't look like one where symbols defined in page-alloc.c would normally
>>>>>> be declared. And I sincerely hope that this header isn't one of those that
>>>>>> end up being included virtually everywhere.
>>>>>
>>>>> Iâ€™ve read again MISRA rule 8.4 and you are right, I should have included bootfdt.h in
>>>>> page-alloc.c in order to have the declaration visible before defining static_heap.
>>>>>
>>>>> I will include the header in page-alloc.c
>>>>
>>>> Except that, as said, I don't think that header should be included in this file.
>>>> Instead I think the declaration wants to move elsewhere.
>>>
>>> Ok sorry, I misunderstood your comment, I thought you were suggesting to have the
>>> declaration visible in that file since we are defining there the variable.
>>>
>>> So Julien suggested that file, it was hosted before in common/device-tree/device-tree.c,
>>> see the comment here:
>>> https://patchwork.kernel.org/project/xen-devel/patch/20241115105036.218418-6-luca.fancellu@arm.com/#26125054
>>>
>>> Since it seems you disagree with Julien, could you suggest a more suitable place?
>>
>> Anything defined in page-alloc.c should by default have its declaration in
>> xen/mm.h, imo. Exceptions would need justification.
> 
> I would be fine to have the declaration in xen/mm.h, I just need to import xen/mm.h in bootfdt.h so that it is visible to
> â€œusing_static_heapâ€, @Julien would you be ok with that?

I think using_static_heap() should be defined in xen/mm.h as well 
because we expect everyone to use using_static_heap() rather than 
static_heap.

This is to avoid adding #ifdef for every user.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 01:00:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 01:00:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845636.1260992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGpNA-0005v2-4u; Fri, 29 Nov 2024 01:00:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845636.1260992; Fri, 29 Nov 2024 01:00: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 1tGpNA-0005uF-1Q; Fri, 29 Nov 2024 01:00:40 +0000
Received: by outflank-mailman (input) for mailman id 845636;
 Fri, 29 Nov 2024 01:00: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=Qpb5=SY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1tGpN8-000583-AC
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 01:00:38 +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 555410a7-aded-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 02:00:33 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 9D372254015E;
 Thu, 28 Nov 2024 20:00:31 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Thu, 28 Nov 2024 20:00:31 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 28 Nov 2024 20:00: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: 555410a7-aded-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIwMi4xMi4xMjQuMTU0IiwiaGVsbyI6ImZoaWdoLWIzLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU1NTQxMGE3LWFkZWQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODQyMDMzLjQ4NzU5NCwic2VuZGVyIjoibWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
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=1732842031; x=1732928431; bh=9g9PHEErO+Bl0K7DKsHdjAw8hGQNDZ/B
	Veh9x4/vszY=; b=m8jkhTCxXU7QZnB43sl2BCWkAPca6RgQ6/4DLkIJSZ33eB87
	b7UXKmIU2W1aLwo5GeYUjWpy0pg2b1tEI8GLJbe/Qu19ggS5Tm3CKnf0/EpQDIMG
	1i/2SuMlD7vnrvAFAim4/M39SUJrbEk1BbaDJ1RN8Ivc3KPuquxyObRLDZXOP1JC
	EwwD2GwWmkQogRywjC63HgDzRDdgbEz3IrJWbo5LRjBL/u0nSrH5Ur3W/HFIQwUh
	dwZJGcnBpZYKKqp45lTZcutXT4StdUNAgt0MzP8u80CHYJU4s6o2U9akkdV6gouF
	V0t+ATFYwsHe9XOnLcJfRudYqqurz6+1sYFCKg==
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=1732842031; x=1732928431; bh=9g9PHEErO+Bl0K7DKsHdjAw8hGQN
	DZ/BVeh9x4/vszY=; b=PevqJ+Iom8By1/9fV9HSAY0UPsv3JJZivGMyBjkcrjyN
	Ujacg3GRNtlSWqaaAws7fVbEy82tsw6gTFesbSXwnBvYDfRRg+nNO3b+5G17TpQp
	0HMpvAjVc5zwBCTUOxcz7v5PfgDt3i1ShnaaoMO0+Ifjzn9IvaQozcW3fEZou+HU
	Lx7r9IB9VSS+zan89xCVaKCnEWn4mkMh6EBASSJlcEfsvi0LaK9lYTvhcMDg447a
	95TljB8dgrBXVJ6Rd1LHJdKHkgjIhIkCO+DukI+A2TJe2rI4Fmh0Er/LOMGV0n3J
	FLEv7msOBfAlu/Z9Q6CpL4VPq1/ipt/0SJPNbmvFhA==
X-ME-Sender: <xms:LhJJZ8D_kJy-CLlDsuj2wSw077ijlMDNOrZgBH3DFUSQE0j9c4bZTQ>
    <xme:LhJJZ-iAeXyjK8bIZtYCMVIyC2MXEsT81cQIpXlq6iLjOsUgJyVt6wTbks9vwWueY
    BLu7LTNuptSbA>
X-ME-Received: <xmr:LhJJZ_mqzCZJSFJ_kLU6w8zEKRCxA1xjII3QiAuXWkrvOHGJQOUD_hkkVFFJ0ayz4Y_vQ-3V-P47YMlCmnm7Atfq66QMCBJ3IK406WpZRAT-h5U7mGo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrhedvgddvkecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr
    tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth
    hsucdlqddutddtmdenucfjughrpefhvfevufffkffogggtgfesthekredtredtjeenucfh
    rhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrh
    hmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgr
    thhtvghrnhepleekhfduleetleelleetteevfeefteffkeetteejheelgfegkeelgeehhf
    dthedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspg
    hrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggv
    vhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepmhgrrh
    hmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthho
    pegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepjh
    hgrhhoshhssehsuhhsvgdrtghomh
X-ME-Proxy: <xmx:LxJJZyzuLzcocO_G3KD7ZMCsHP61jNJq6j1aroOjXtjB3gmkSvAXzA>
    <xmx:LxJJZxS1N4ThSIo0uP6mu3Z7kGHUIZ_0L3poPSD9wRNkJJ0Gwh8DQA>
    <xmx:LxJJZ9atvh9nmL5b0kSdZKAVwMLggvdQbGs7JTMJsCKX9dmKJb1jmA>
    <xmx:LxJJZ6TZQxyZGEQOvxsUEm4JCBuH3HA58aG5GBzYsb6HMPkiGc9yfw>
    <xmx:LxJJZze4InUO3il_hni9_4g987r3mgq4IiXYDn5xpVrBC83XyYrhU_ee>
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH] libxl: extend IGD check
Date: Fri, 29 Nov 2024 02:00:10 +0100
Message-ID: <20241129010026.2869818-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.46.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Consider also "Display controller" an IGD, not only "VGA compatible
controller". Specifically, IGD on Raptor Lake has 0x038000 class, not
0x030000.

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
 tools/libs/light/libxl_pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 35e3e1360423..5be9b8239567 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -635,7 +635,7 @@ bool libxl__is_igd_vga_passthru(libxl__gc *gc,
 
         if (sysfs_dev_get_class(gc, pci, &class))
             continue;
-        if (class == 0x030000)
+        if (class == 0x030000 || class == 0x038000)
             return true;
     }
 
-- 
2.46.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 01:49:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 01:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845647.1261001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGq8I-0004Zb-L5; Fri, 29 Nov 2024 01:49:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845647.1261001; Fri, 29 Nov 2024 01: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 1tGq8I-0004ZU-IP; Fri, 29 Nov 2024 01:49:22 +0000
Received: by outflank-mailman (input) for mailman id 845647;
 Fri, 29 Nov 2024 01: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=3Fhq=SY=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tGq8H-0004ZN-HD
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 01:49:21 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20607.outbound.protection.outlook.com
 [2a01:111:f403:2614::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24a6ae89-adf4-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 02:49:17 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB8923.eurprd03.prod.outlook.com
 (2603:10a6:102:32c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 01:49:13 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Fri, 29 Nov 2024
 01:49: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: 24a6ae89-adf4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjA3IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI0YTZhZTg5LWFkZjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODQ0OTU3LjE1MzA1Mywic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wcBursqTkwlaQrLG5sDu2k+Z3UWX2VZyzZMHxUzSSEZ5hC8afwJHFdv67vYoV/yDq/KFB3JXZzGXxtAJPRiI/9II3MuYHg+LhbrVBUJ0ChAFzTW1XEEep+gF3a8CspqR2AZFQRH4G5krpZZZc+FKHZv6y8Fud8rJWghxR/d8nJhD9Qf1uq9f/vJwooTnvXfDWSSW1T2xLlj6P2A5JQwX3VQJ4t0YQx6Sv+RfmhMgn4nDztmru7K2RE8qxyB4syd6hnKsqAJpxny0eYcdfcHGhZruyfQvS5F+tZYTORHhIkQFbSl5aHNbQg4p39azeHqQ1pdlfZQ+hdKzX1ILZDsnCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kqih6yfoliSqu4Tbh2SQlCEAACi38qPHAM/1ieOhAjg=;
 b=Lb8A8nwGOVmAdhyC5Qt8gg3gpcXhOOle2ygdwUYiSnlydq+yVDAJ9rC0BIIBBWTOFS1liyGNRrUFthTL4Ph1RtudbyzG8+WBB2YPuIwKRoLIoj/SQ9NgjgXP9Q6CBawDBeOhJZ0p4mDz72M2ruyNoBz+cn+6mGbxRNqX6RrtNck2w1VmJQ3Q148bbVtB9Wr6sw6f3g+h+/jusXal7Xk0L/unDR7hf+MGmuUnozGIHwVwIKz9xG+7qYZj717q30J+PFEPwXlukaPOIX+eFPCIdwEw7aVwgxX1YBng0wMBqJcTHnIsX3WN29/Qn1iVG/Qq1CTraiZHhiPnM84QsEK4yg==
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=kqih6yfoliSqu4Tbh2SQlCEAACi38qPHAM/1ieOhAjg=;
 b=iV+s8dZQGxq8gKdV5CExd25F+91htAFnn2z6Y67EU1y7KyFEaD7XsL5/oj1VOdzKsYlPOBGCcOMiYhEXC0sZ+DpIiU+0qYp9ytPUe55ZZf4NgxwY243uuckc6t/wXjE8VZlwk1voiWQF179+4x0zDD5/45KdylyYUSV6RfTG9FODXVhKpmbuuAeCJcRdlNPc255DXyTzMJK1WNMIEQlSbHn37a69knWjX0YZTd0qrHGYJ/DCVyndadEbQCqIJdlYR3r68aDvboKRJ6rX78Y11XTxkW4YJOHdxjzyO62jfaLxi+YL+mU1OfN3/TC06tmAfpwlnqj3tdjXHWNqlypXEA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 3/5] build: arm64: provide -target and -march if using clang
Thread-Topic: [PATCH 3/5] build: arm64: provide -target and -march if using
 clang
Thread-Index: AQHbQgDiBM9r6Gu0CEmbvf51boI0mQ==
Date: Fri, 29 Nov 2024 01:49:10 +0000
Message-ID: <20241129014850.2852844-4-volodymyr_babchuk@epam.com>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAVPR03MB8923:EE_
x-ms-office365-filtering-correlation-id: 165cc14e-36ee-4cab-4c47-08dd10180681
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?k/7F6/V/kCmzyHsrpm+/wJ+JHn8r5zKO93IaroKqugUrcxwS6ITT957PNa?=
 =?iso-8859-1?Q?c4zbhVMKGL6pfzpddxDWShdmdvH/TCdfAAOXdtkiq4E6SNDGSQEAjQ/QX8?=
 =?iso-8859-1?Q?gi1uTuO4ww/4bKm4CdLPe9WMX0LdMwtIc3PRpm0iYMND7VieEhvTc0LyQd?=
 =?iso-8859-1?Q?Z1nq3C/qCC7A/SGtRRoiL3XAJXCfIaVI9UWkT4aosB96iSt2k9TbQ4uZZa?=
 =?iso-8859-1?Q?vIhK/jfi60mQvK50KfvnZ2ewxC0aotvAGDR6BN+tIlmyusB9MXzN4onso2?=
 =?iso-8859-1?Q?EEPtJmBUfYbczafz9cJdKG0//HFFRQIYTE4IW7REpD9Vp47aOUqO7DQ6Vh?=
 =?iso-8859-1?Q?QfWRvCl7Xumn0jJ0FEyFDPwOG6jesxt2Qe1FfELlBn9LI4WcVQjBvNDmbm?=
 =?iso-8859-1?Q?9pIuxSJOrBYz+qQ9S+ckRWUhn+zXNN6pZ5+qJyXdRJcP8uEqyfr5hfgxek?=
 =?iso-8859-1?Q?78YcjGdLwYhQxkMX6kP84sbJLpSQsCSfwFQ1nch2W3Abk85JNMFJuoGp3m?=
 =?iso-8859-1?Q?noBVUkrRxR1X5OmBKCfmygcxMPoXsVHEdUrZp9Zw+YyMCdzURcbL8t63d6?=
 =?iso-8859-1?Q?qQzhuDTOL33/Mkfnlyu1seHzbGoor1cT0sMOOkWLZil1BP8N/E2zHoDOU1?=
 =?iso-8859-1?Q?mp4hbYSeDYdd7hAMOGR4BPYwas+JI9y+MXH4nQUnskJGjRdDSkRQLuNcpG?=
 =?iso-8859-1?Q?PJiaHhRfrFujEOGUi1pa+XJXfJKgI0qvRILEtETlkgfGoF2oXhj3aqcGDn?=
 =?iso-8859-1?Q?EuiSCrQjEuScjjlvkttl/6ZhT8Zvt45CoZtGwFA806aRr7IsPqsbb99uzz?=
 =?iso-8859-1?Q?D4WzD8SqB5yYpdr1s8K2NK13j9dF/NtIUoQ/E+fExPAfnxhG3BUdxEbIJ4?=
 =?iso-8859-1?Q?cBiwcL4un2Loj/hvQqhewra+lfd6IqcCHfh982aRvxF9mqDO0QQOYxVKDz?=
 =?iso-8859-1?Q?oMWTi3VBiUCeUK6drZTuh5MxDotWZo+CWeyOpTezGIvHPD2eC8CQe1viT0?=
 =?iso-8859-1?Q?Hfv4EVxhVlnkGpvX0O1ejl4TF7svJV1gNNTSeeBbUEz9nwoBh4r43cfbb7?=
 =?iso-8859-1?Q?QvV0egHAsdcp8u3Boc/+gg5n8bMpyBvUQoqvwwgpWxZMNl1sx78Y5NS9lO?=
 =?iso-8859-1?Q?0RnL8kTVudQ+gUyZ5YzRvoDn3CF9Ht1vhEf3+WLuNX6nOG/DqYV7em04Mj?=
 =?iso-8859-1?Q?8pl9MPbXx4/bf11txMVOad7ft0/7MOBB4KD9CeGZ5ZHk4vqW6w+/8zj+gJ?=
 =?iso-8859-1?Q?3ROPb+8g8c1q5d/YYcCTZ+FoL6vpHInJF9l3js3y3Ooh/2a3kjjP84+YjE?=
 =?iso-8859-1?Q?/dZfSvZ48ITk85rFHL2UuulBQsZ+QqXqajuiYTMZhSw4PzH5NJY/bkahzD?=
 =?iso-8859-1?Q?OqGOyInAagxzVBPQN0qnP7i2Kl82uoSqAtf6eItX8fNoLw2jpuHsnFfFSK?=
 =?iso-8859-1?Q?/Dk11h+6lnbLuxaDoqkUE06ITiRGAUOTsz28cQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?7Ki0+8o/D1vvq5tR6nMBcswr7bHft881XqevqH5IsvexwoyJ01EvAVhwOO?=
 =?iso-8859-1?Q?eU7+J/gAYtNTqHRpgS+kektFjchUCXWyXymJlLIVc0PX3jjJKcYAKOzuFX?=
 =?iso-8859-1?Q?9T+5unoH/DWchiUvbTJqN4mdzjEI37faUruxL45ZgCgyjPbwcmw0jrVcce?=
 =?iso-8859-1?Q?6hxqXsE8ao0vAzLo+v8il7e30hEWkxhm7IPioNAOL9ZRtV0nlfO1Ak+uRO?=
 =?iso-8859-1?Q?bTK9VOmP8yPgQL703Mob7YWs8pyXxn2nBlCx+v5vgY69/APXprvHpfYdPy?=
 =?iso-8859-1?Q?PC30oWog6747yTicNBB89fWbCD1DxpqwFkf5FzfqAYCZ3O25a3opEsEib8?=
 =?iso-8859-1?Q?eqzgMJbaDD8lRK9Pikh8BKHxT6dvPKEBiDvxo5NDmPz8tfOsJJZ/Anfbon?=
 =?iso-8859-1?Q?yF0U0oa9z7ZDVpjZnfaE//zsK+y1Uvbk6e1kU6oyLEOXpBOvrGeBDPp6EZ?=
 =?iso-8859-1?Q?wLdWPli6Q41St1qoTm1/VFHTDTXN87v0puBxGok8U9E4kz9rJlgaJeWT3i?=
 =?iso-8859-1?Q?/CP4zm/npS2lCo/2Nhe/VPeg3Gq/R0OLijJST/SwTfkj+/8BbM6KikDSJN?=
 =?iso-8859-1?Q?NaIrD5kgE8lecBrblWNvWCI8BvSOUnHC2eglHYh4IgrTGedXy/Xbh+5R05?=
 =?iso-8859-1?Q?qWMyd6dGkdPMQKwlunGsznN27sT8Llr9wrqs1l0UhUwdSvRWSLizLiL9Vf?=
 =?iso-8859-1?Q?9rj1NGjK2jnPCXUlRLCsgC8EdLwm86/L5mwgSffTNpmPWJxgjuxa/ePohQ?=
 =?iso-8859-1?Q?itq8h5mxaw20q/dSaunHbH8T8h6XeDy+UFhA4oiwBLMC6HI80TxasqLNiq?=
 =?iso-8859-1?Q?ZeFjenHQCU8jALuf2KIofw0iaMf5AWCh6VgfrP0izjqGq/ickPanSTp/Jw?=
 =?iso-8859-1?Q?T0fsFc0hsuSVzPfjysZd72r5Cug7FoFkwQfXDO9P91n20CR+WgmYddCcXY?=
 =?iso-8859-1?Q?QpNIIpgB/dIQcYFquAYLbn0mIYCV7WD9EvJJOoKZSvF3EQXI3RgY02EmJv?=
 =?iso-8859-1?Q?c7jF/HmFy/+9YRoIeXk0aIdhftmFittj1ef/0T98n3fZoL/HC4RATIgzDE?=
 =?iso-8859-1?Q?tccyeoddXaswG3xc9JhxRhsSXDclFzSVGiU7ZNI+7nhX0Xm1KW7/gEIDhl?=
 =?iso-8859-1?Q?+xH+qHKNHrJP5OIs9hMb8AZjxvkj4MpEW3idD/FVIQghH74eE3bfLDV1IF?=
 =?iso-8859-1?Q?ftyKtgqdvt/6J9z07l8YnxRn18uRISL47Luos8T3xiIuPJjDVIgFEDfW4T?=
 =?iso-8859-1?Q?DNbEiQFmuiqE97zmE4Drl5nwCGGJfwqmXTdJfu2r7EJx/vreReRmUd1ab2?=
 =?iso-8859-1?Q?1iH/YBXYdOPuecxyC0TOu1czFPiRNKkVMIC3/7aA1Zu/GhDtrw5/313sm2?=
 =?iso-8859-1?Q?jAZbiOukmb9RBWEjV7qgQpS5AHAtBUgjbTatSdoBkIZDlDu5DLZDS3Pyjq?=
 =?iso-8859-1?Q?/6EOz6/Io+PHsBMkfRq/fgAoD8BfOQ5gr4X0JB807bz816AvJdc9kREqJm?=
 =?iso-8859-1?Q?rUrn0Qb3cQ1kvDEsIbr0WOa0zNeQYKGBhMxDeh8/oZl3fX32QUtVbZfmlX?=
 =?iso-8859-1?Q?0dvtdYZKsaOO3tXHGxVg16YzLXwWJElI2S4SuAyzxMULAFaYkM+bK1g2m7?=
 =?iso-8859-1?Q?XFdEKf6cRBS/68qmQEIPKVWCEJmtTikXLukSZ2zKKt1ZT0W1brIwVfCw?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 165cc14e-36ee-4cab-4c47-08dd10180681
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 01:49:10.0098
 (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: lsiy5oN3ID1qZdSaOKK15xr14+CggKLAV/EPj/NAXqgDf/UldSHAg/3KRpW/93+Vd8lwmHPI5IFAxNrDO9ca4VSCBfq0pnm+lMwQvpONNVE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB8923

Provide -target and -march explicitly when building with clang. This
makes cross-compilation much easier, because clang accept this
parameters regardless of host platform. Basically,

  make XEN_TARGET_ARCH=3Darm64 clang=3Dy llvm=3Dy

will behave in the same way if building Xen on x86, or on arm64 or on
any other platform.

-march is required because with default value, clang will not
recognize EL2 registers.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 config/arm64.mk | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/config/arm64.mk b/config/arm64.mk
index c4662f67d0..97eb9a82e7 100644
--- a/config/arm64.mk
+++ b/config/arm64.mk
@@ -5,6 +5,10 @@ CONFIG_XEN_INSTALL_SUFFIX :=3D
=20
 CFLAGS +=3D #-marm -march=3D -mcpu=3D etc
=20
+ifeq ($(clang),y)
+CFLAGS +=3D -target aarch64 -march=3Darmv8-a
+endif
+
 # Use only if calling $(LD) directly.
 LDFLAGS_DIRECT +=3D -EL
=20
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 01:49:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 01:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845648.1261013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGq8L-0004oF-1E; Fri, 29 Nov 2024 01:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845648.1261013; Fri, 29 Nov 2024 01: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 1tGq8K-0004o8-St; Fri, 29 Nov 2024 01:49:24 +0000
Received: by outflank-mailman (input) for mailman id 845648;
 Fri, 29 Nov 2024 01:49: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=3Fhq=SY=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tGq8J-0004ZT-Kr
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 01:49:23 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2614::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2566ee1b-adf4-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 02:49:18 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB8923.eurprd03.prod.outlook.com
 (2603:10a6:102:32c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 01:49:12 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Fri, 29 Nov 2024
 01:49: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: 2566ee1b-adf4-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjFlIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI1NjZlZTFiLWFkZjQtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODQ0OTU4Ljc0ODQ4MSwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F/NYeoodPX6aIEZ1u9xgqbM3jXW3ytc5leLStUgMZGoU8I/cBqvSmPhVLt5OOk8SHeogz3udzN9UP+x8i9/J40JMcqJDHvVyAsfTvm1WWAD1z+KMbKYw5+A/MsnLY20BeWvutVF+Hk30t9DLaCV1IxSHzcDw3mSGYF4i3GCy/hRmlBH/OmWakgEf2FknxgQ/0tZwglWnJeEcF/0Rqto+ZHZ2blmQLwwkPu8XXwlZ13Jw6yPfMlUugNUuTlnH/4VbnRkdVWVv0kG9rHYeKlEFMpb32gVtAZL3GadTTe92Mc/u/mdPbUZK1965UVt1ZO+Rpy4wkiYvKmpdFnkRSPo+LQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XCMS+YbSfAwyp6W6fe7rYKq/L/tFgk9e9zJ/1i+/t64=;
 b=vFfGgkDrldWQXo0G91Zqi0w2OFu+ed4Rod6A4fwECjFbqn6kQ0oHXG759itTYQ9OsuhifbEIsGoFZm9p/dbpNNqeb/n3eypHahWCmV+zzHpTpSxRP4AZlA2wE97WJMms3amnjowCSB/n4mjvhVJeWzq8r4pbcszQnvsM/N0t4SAhzAbn1WwyS2H9gVd81ZEmhqqbZpkChy2C0o0PiiN4Y3PXfDjw+y4tDxzl+89vWa8mZSpZmw3PShOZoLL2shF9HvK+sfIeVRNocj5oay2YawwSyhyY2rUQEZQk9noCFh+bLuRpAFXSsiO0dd/lZ3VQEb6UQ7iIxIcuub2KtrJqng==
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=XCMS+YbSfAwyp6W6fe7rYKq/L/tFgk9e9zJ/1i+/t64=;
 b=HTm1s13zkgeDTWCqqWZU/MHES+bH3UDsin7LFh18mzqdw2XHqpgk0BxYYfdnX/ENO2Vqtl/fByj6vU980o6fBN09lfFWgx4IPtRblCOAuSqfvPi+pebdgUOi185QdeKjx75i2SqVPSfnSV49MpWaOaZ1lt6Fe3TstqYtzLOqAawSA4o8GH00qSKg8uA6UCe86f6cVigcjfZewNCgLSCZkfGCZ6qK4Z7NTWLeEytEpUoTyd+RicgpVlUiG+tiIw9SHYAObpb/N3RL0bPqLQ2dKR53RKL6QyISe44W1FLC1yNhB78fecJwyzhFJGKQw5RYM7vP2XZAd1fQOE5/mzRraw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/5] build: add possibility to use LLVM tools
Thread-Topic: [PATCH 2/5] build: add possibility to use LLVM tools
Thread-Index: AQHbQgDi2W51qDW1eEGcI05EH1vd3w==
Date: Fri, 29 Nov 2024 01:49:09 +0000
Message-ID: <20241129014850.2852844-3-volodymyr_babchuk@epam.com>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAVPR03MB8923:EE_
x-ms-office365-filtering-correlation-id: 4ff18fe5-fb8b-4270-986f-08dd10180647
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Aj7v19V43kX/iYnuK2zEVDerSUR7Fa8r/EdGiifgt9FWNnIplneFXSQPnr?=
 =?iso-8859-1?Q?FfJgWYWhBx7T6eUerZQyuFqP4rJ/mep3yQjV5tUgm6LxSGag/+mX3uGNde?=
 =?iso-8859-1?Q?mnLxkYAHEkZrt/P0jfLfhbd5I7llwqdxaNM93Lq9uMOCsyPj+FmW2ZyBnc?=
 =?iso-8859-1?Q?hkpCWlIMcex6NVIa994Ejsxcuw8TX086KD6cCeDwIArrDrJopCISaqdOEZ?=
 =?iso-8859-1?Q?4l6cypXWun3C8mWH4oRWu2zHOzh6TTuzVTuQG5jKIsK/LwsxMU+LByj4bC?=
 =?iso-8859-1?Q?PePTNPImtlOoL0B5b9e0SzJ2LpKQRHTPJblhgxbP+q6PCFWoEd9FxVukiH?=
 =?iso-8859-1?Q?nAXTS5bUi4HACAkbHAHQjPC+IOhS889g1d1uWOrgL+kJTKt1nbjZ1Bt186?=
 =?iso-8859-1?Q?BrsI+DCBfiBeIQYc45vRV8a3EKTE08pbJaD7+P0WE1tihCdsHLUm9bLyly?=
 =?iso-8859-1?Q?VzcizrcmaEO1xWVGsE1BszlPPbaeXWbGi7YuLX/NZgOaBVGT+OQqGNq7gL?=
 =?iso-8859-1?Q?1+Ymgr7VWllMgSMTOTVaWOKHB+SsaA2ETcYYVyAomG3fPyxNj/6Z8hF7KO?=
 =?iso-8859-1?Q?j31UDUxR2AwuhTAXCXGR6MmWH5z9kbYG8h+HJJRozEXthtGZIpaibm03Yh?=
 =?iso-8859-1?Q?MR5lEyMweA9xh+1teXFhgHxt/E8hOQFub9RGsOrtPxKFn4N4ZzmnQvKp/3?=
 =?iso-8859-1?Q?BM0H/P0isVZiDcMhEANM86q7DEgFpFuZ9L+ed7dx7C0p4eJgVZ7q+s4pC9?=
 =?iso-8859-1?Q?poYx+GDBD3LBg0rWYvxdPrjhfDO0ykMetn863QN0o4wf6AH/CCg7mFicD5?=
 =?iso-8859-1?Q?XuCo1AkE4tHc/fwUrmE/COYyN1wpJuu3iNHZu738tZp+hXLTjcCu7+Vm69?=
 =?iso-8859-1?Q?RfQXU2pnzdq4X1iKjwFfCRBjUmIRWQ1C4x0mEG8KwJjBjkyJPEAtBOneex?=
 =?iso-8859-1?Q?lajAzkHbuKuuqYSpd8lycTI29I2U8OY2j0P7E2/scDnzVXA+dbGgbUI91/?=
 =?iso-8859-1?Q?FTb06M+1JNtdEMbKZdF52XL0LqpS6hq/gCdKRZIyVHFs/llhxTAYlEdBEx?=
 =?iso-8859-1?Q?0t8BSNqx9V+8f1Cj6eW8KKZmKqDXFKnQ2ubBCYLkS8M2mqpDbJm8NrGOZT?=
 =?iso-8859-1?Q?ciNqx+JCcRQx/1yL+7bmdG7DsDDu9KHAfpHELvfZK5vE4ygMHLYeNG5XSH?=
 =?iso-8859-1?Q?pC9T+nMBSDYpJ0GfG2io+tOvtR8Po20Rx2cDpIRIyGnZlesNy43Ty6R9zA?=
 =?iso-8859-1?Q?X28TmPel63Iw9xbXCFT9/qlm+FXmzS+uDVI/rKSbWKwrGeciETvyEUZQZi?=
 =?iso-8859-1?Q?67ooK0hNNqLgEGfY32+3Prbds/rwnVBElXywbB06ZnTkXd6BvQvsdBlSEd?=
 =?iso-8859-1?Q?oeK1nNEyg8uL+1zMqcPEzcbYCUEb9GOMFiUR1g4sI2gufkKljQRJErZkiZ?=
 =?iso-8859-1?Q?JYpJBHqUqD7RhBMtDNO/nZuTwuFWKgsOY7kRyg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?n88Tru2V4uwLK5QwMASGGCed10iS+S+idx8EWtMd97IhZPaz1LlLumdHPv?=
 =?iso-8859-1?Q?qaF35ds/XpxMd16aNczAGOjrDtspMQAcyIxyi0sXgs8RMZKP4O/f7eUhLg?=
 =?iso-8859-1?Q?kXth9E2mwguyxmropACaD91RukLf5k3WNtVYTxle572l//ndyPyLDuhG1M?=
 =?iso-8859-1?Q?LmWZXNPczpg3AhRU0gi7cJcaXmW1SH5Zet/fvQoN+TqxApksFpWaed21Xp?=
 =?iso-8859-1?Q?/xUSK9BJMbiRB/2AhjtkySQ2tYYCNQk2j8jlwlviOtEIaDGG1OFj7YeMO+?=
 =?iso-8859-1?Q?+OPQjDcxmkM5jc6FfABLTuad8lidWxWzcoDAJXqq4NDeKzx3mSHkKbtOGA?=
 =?iso-8859-1?Q?8TAUhG1g0jmVeKkFUOYmsgdBLCPixTB8c0U0u2kTIiuC1IlW/49RtlzVni?=
 =?iso-8859-1?Q?BVxX0ICvIBYl+jT24mQpEeugRw0MCZfZaTXVZX1no2p5RNCbJDE+UkmAvj?=
 =?iso-8859-1?Q?e8NGBMRxQpy0Y64AXoNXCke7TibcqxOG+uZa2zlnIeE5Q4PwQMSuAoRvHa?=
 =?iso-8859-1?Q?75sA1OfJaxtl0cuxMypwTBQ8TMyOCMf3OmJSTvaJGMKd1DuS0uDpXbkDp6?=
 =?iso-8859-1?Q?8n/KsXvokJRMlMJVntE3r87Y7IawfjwfQpwDXHowl8tIp7M76SnRr36r/W?=
 =?iso-8859-1?Q?T4eVHdjaHfAGIM22xofU4F7jCK59IGXdgLJcHBuSa9YasRC2Oer+Y/WaVn?=
 =?iso-8859-1?Q?KQIbMv4HgdnrChEclWd/KWTBqjjT58BP614aTPZ1BSHt7K0jCU0V4cShF4?=
 =?iso-8859-1?Q?39DwxkrB80+CstI8hf+XeP6cevojxmg9jNnSOqu+mNhcaPF8erifPBk5LT?=
 =?iso-8859-1?Q?1ZBcYBpfZbIt+Y7XosPOe792K2yzI81dPClpYb9J0FKsRCOIb3zMNpOZeC?=
 =?iso-8859-1?Q?M24SFpe97+/beytOzk6S4afAgzmA/yFmGV80K1ypat9RjDEjFCFWgetf1H?=
 =?iso-8859-1?Q?WRJ7c7l7/JcMxheXZxWdZwfqK0QnUuEYaQ/v2bzS8DdoDDv8MLKJva5mXn?=
 =?iso-8859-1?Q?mip70zg+wCxEHeI4G6T8E5XFBDo6lBbhmI31rscMPIwHodRC9kMgKobPOL?=
 =?iso-8859-1?Q?Eqp2Wpxp2K3nCQyGqUETsWyKctlOAdG981yp4T7GIqTAhf5z8iJkc14iPt?=
 =?iso-8859-1?Q?zIHs+R+s3nxSJvO//mVnBtTMjb4EKkBpWtRgAal/iGg3GAH4Bnq3/GJTS+?=
 =?iso-8859-1?Q?c+SSBmPyZl6GTtGo74ptZse/LGYr3b21jANdzN6hY5JqB1rTiv+hTh2v4K?=
 =?iso-8859-1?Q?0/sUYb/7twvjq7KXdvdTwqLZFnGfjxpV4JVzYC3cEO93mY4EaQorcYWgno?=
 =?iso-8859-1?Q?Noij0edIEQfd/maADhhFWwbnYCKy4BSWKkl3MFKOuuCm3rhCsV/hHsY7vQ?=
 =?iso-8859-1?Q?ipX9OT48Q5I1sTG8cCw5ympuZDkbDx/h6uMIxHQdef/KKRnYrLM2GNe9EG?=
 =?iso-8859-1?Q?E0PkYcurzXo0a3CwcBtvDAzrC1TurBIhYg6N7SeS8VMEEi8TffYFQmacvV?=
 =?iso-8859-1?Q?Mf+mj4Udw3EtMQ1s5pkUh23SPhaERv4rmafjNnKIASzI4GL7mtjwZnJwgl?=
 =?iso-8859-1?Q?eIuC45KNiaMDJN4hZjCw7tZRmteT1y/QEi7kv15mGArHQgJHVq/2be9fYE?=
 =?iso-8859-1?Q?o1TMSCjvIFGF82onbqv4JaESLKdXlv+a48ndAHYiVE3XutvKJczMjkKw?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ff18fe5-fb8b-4270-986f-08dd10180647
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 01:49:09.7274
 (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: 3oP/9zFhR+F77fJ3M0ZWmlV6pKb27QK59e0urS3Foyn+XXc3m+IOCy1NZXcZrDNrbYBMBHsbxu93ot9RaEDvJGO8sdRCGgKoVmapkgX+YA8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB8923

Currently, even if we are using clang as a C compiler, we still use
GNU binutils. This patch adds new option "llvm" that allows to use
linker, objcopy and all other tools from LLVM project. As LLVM tools
use different approach for cross-compilation, we don't need
CROSS_COMPILE prefix in this case.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 config/GNUCommon.mk | 16 ++++++++++++++++
 config/Linux.mk     |  4 ++++
 config/StdGNU.mk    | 18 +-----------------
 config/llvm.mk      | 17 +++++++++++++++++
 4 files changed, 38 insertions(+), 17 deletions(-)
 create mode 100644 config/GNUCommon.mk
 create mode 100644 config/llvm.mk

diff --git a/config/GNUCommon.mk b/config/GNUCommon.mk
new file mode 100644
index 0000000000..71c2303166
--- /dev/null
+++ b/config/GNUCommon.mk
@@ -0,0 +1,16 @@
+# Allow git to be wrappered in the environment
+GIT        ?=3D git
+
+INSTALL      =3D install
+INSTALL_DIR  =3D $(INSTALL) -d -m0755 -p
+INSTALL_DATA =3D $(INSTALL) -m0644 -p
+INSTALL_PROG =3D $(INSTALL) -m0755 -p
+
+BOOT_DIR ?=3D /boot
+DEBUG_DIR ?=3D /usr/lib/debug
+
+SOCKET_LIBS =3D
+UTIL_LIBS =3D -lutil
+
+SONAME_LDFLAG =3D -soname
+SHLIB_LDFLAGS =3D -shared
diff --git a/config/Linux.mk b/config/Linux.mk
index 2a84b6b0f3..6f4dc865a2 100644
--- a/config/Linux.mk
+++ b/config/Linux.mk
@@ -1,3 +1,7 @@
+ifeq ($(llvm),y)
+include $(XEN_ROOT)/config/llvm.mk
+else
 include $(XEN_ROOT)/config/StdGNU.mk
+endif
=20
 SYSCONFIG_DIR =3D $(CONFIG_DIR)/$(CONFIG_LEAF_DIR)
diff --git a/config/StdGNU.mk b/config/StdGNU.mk
index aaa0d007f7..d723bc274e 100644
--- a/config/StdGNU.mk
+++ b/config/StdGNU.mk
@@ -19,20 +19,4 @@ OBJCOPY    =3D $(CROSS_COMPILE)objcopy
 OBJDUMP    =3D $(CROSS_COMPILE)objdump
 SIZEUTIL   =3D $(CROSS_COMPILE)size
=20
-# Allow git to be wrappered in the environment
-GIT        ?=3D git
-
-INSTALL      =3D install
-INSTALL_DIR  =3D $(INSTALL) -d -m0755 -p
-INSTALL_DATA =3D $(INSTALL) -m0644 -p
-INSTALL_PROG =3D $(INSTALL) -m0755 -p
-
-BOOT_DIR ?=3D /boot
-DEBUG_DIR ?=3D /usr/lib/debug
-
-SOCKET_LIBS =3D
-UTIL_LIBS =3D -lutil
-
-SONAME_LDFLAG =3D -soname
-SHLIB_LDFLAGS =3D -shared
-
+include $(XEN_ROOT)/config/GNUCommon.mk
diff --git a/config/llvm.mk b/config/llvm.mk
new file mode 100644
index 0000000000..e474428286
--- /dev/null
+++ b/config/llvm.mk
@@ -0,0 +1,17 @@
+AS         =3D llvm-as
+LD         =3D ld.lld
+CC         =3D clang
+CXX        =3D clang++
+LD_LTO     =3D llvm-lto
+CPP        =3D $(CC) -E
+ADDR2LINE  =3D llvm-addr2line
+AR         =3D llvm-ar
+RANLIB     =3D llvm-ranlib
+NM         =3D llvm-nm
+STRIP      =3D llvm-strip
+OBJCOPY    =3D llvm-objcopy
+OBJDUMP    =3D llvm-objdump
+SIZEUTIL   =3D llvm-size
+
+include $(XEN_ROOT)/config/GNUCommon.mk
+
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 01:49:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 01:49:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845650.1261022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGq8L-0004yd-Ld; Fri, 29 Nov 2024 01:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845650.1261022; Fri, 29 Nov 2024 01:49: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 1tGq8L-0004wC-G0; Fri, 29 Nov 2024 01:49:25 +0000
Received: by outflank-mailman (input) for mailman id 845650;
 Fri, 29 Nov 2024 01:49: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=3Fhq=SY=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tGq8K-0004ZN-6B
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 01:49:24 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20607.outbound.protection.outlook.com
 [2a01:111:f403:2614::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2717938c-adf4-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 02:49:21 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB8923.eurprd03.prod.outlook.com
 (2603:10a6:102:32c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 01:49:12 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Fri, 29 Nov 2024
 01:49: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: 2717938c-adf4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjA3IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI3MTc5MzhjLWFkZjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODQ0OTYxLjI0NjI5OCwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ElJ3vJBzxP8+LZqZTOlsmpAtXVWtyicatYOS/qL3rQD4vVjkztPTArMJA/C3n/tqkDATZ7UiGjHKg1Dic4cpV3O5DEdFo9D1kWQdKZq6VACWG4Z/jK6A9dEKIDXC+QZAadJUp6oetsgMsZAex98DJC/4zd0taQJna1xez5nWAX3DRukqSoLl25Yiuw2uM2Ut+jL4iSADsW50/aYcmSQpUVwwirL1T2HkVREROr4RT074lrAjtDkvsrrHEGHFAtOxMq+E1VmYRdrtHXSFO7k2rYMrfmuiD3iU87l4KMg1K7qO/pt83TF80IFZie89H29RINkm4I1+hAAcAJD4KcepWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=91rks3iGHddXWlb9TaITzGl1ioO2H4KAWWNhdEIdpuY=;
 b=MmJUWDB0b0zyl7Rh0NMO16MbMcx8H4b+Rmy5WY0U6Xm1oSyKeYDDjLdzfS8Fet2YgteWStg371b51ZvQvz8FPgCNcgWlhe/JNvgMEwt4avNagIYVyMYQwFTF4K6Q7R2j9XuqqeTGYbWCZo32fD/yRc2TXIM7IhMBwwKaWGlCUOldFeeHHllQyWq3PJb9hN276VGRE4XsZBvDK7kUjMWX0fplbp4VRC/4fLv3M+9er0pXneSotw0r7LAGbuMHUiT9RSriZ35bwAbq4ijwShPlOPt4jJFgcBK1dMq6Z/QM05xx1Ja9xPL+GS+8v8TnCtL6e0HAY26UgDEW6JOg+uqTiw==
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=91rks3iGHddXWlb9TaITzGl1ioO2H4KAWWNhdEIdpuY=;
 b=aplOXoCUuVoaYCPHKQGjzcOfFn05iu+9uy+T/XV1kFts4g61PjbGODRyWq75lBeHfY2fM/9/MZ3OyrDemuaUfxgpuiy0ejbckBPzleAc+g/Q4D+hyLatv9TqjkvDDFuQNdNpzEFxIPRIt91J2vZHwMKc57nVMVRyBp247l4x2hH3nL4CHuO+nYcx13Lqzc3rPcjKYBjk5kNsrCz4PfhH808QO2gK7aOwihub6HdKhOvXQ+sOeAzF11qRPjxxAu1nkjtyf5LQ1HQbLNlgX7FnUikP2uCMFAsA+lzN3pnyFgL/2j+HT7ymYTEk4iRRqSrupzlvcnaXvFOQALhJXAMkJA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 1/5] arm: bugframe: emit msg offset only if msg is present
Thread-Topic: [PATCH 1/5] arm: bugframe: emit msg offset only if msg is
 present
Thread-Index: AQHbQgDhNP952szXN02UUErt4gl8yg==
Date: Fri, 29 Nov 2024 01:49:09 +0000
Message-ID: <20241129014850.2852844-2-volodymyr_babchuk@epam.com>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAVPR03MB8923:EE_
x-ms-office365-filtering-correlation-id: b26fee8c-56da-47d2-e80f-08dd10180611
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ssDuXYd05OPtTtNdezV30qDr2yKvhq8X4SoRzCrr4r8Qh+bAe4Na2xdvFk?=
 =?iso-8859-1?Q?MS4ATc5RAzPbmfyiItugjLQfOeXs6pJ9oOygoGeo1E7wqGw9Xct7m7r3nv?=
 =?iso-8859-1?Q?Y6YaN4mr+1LILMmSABIp3Xr/Y6ApItzX7D1PgatfRX8Gfmq7OM0WV67Eoe?=
 =?iso-8859-1?Q?1/9TNWnq/IekyXNSPRg3nlDPGzxTKGCZjb1wKlakxh1nav0W0UqxVMwIoo?=
 =?iso-8859-1?Q?aapX8DV5y52O3mG7qbPeXgJW48BMBR2C4BIJTBRbK2RX7slBmKadNE0yRk?=
 =?iso-8859-1?Q?eW7n+e8JyLLH0dGulPlPzgb9WzdbPHYGGOTYjGFKPNmIzSstYNq7GC+lbo?=
 =?iso-8859-1?Q?SzvWi7hB/f7uohB+y6AoqfWw4BGJOKl7pHcW1DKekCpE8BBpYaBO1vmrkM?=
 =?iso-8859-1?Q?w6cfSylTKQrZdD4Th0BvE8uLpFMlDEdnfhUBt6+/ZKA1dw7eEyMqzZYduf?=
 =?iso-8859-1?Q?WQsE5Fnh0ZWcV4bPwhfxUHUHN7QHO0swrqrNQ7Vv+KyGF9UXZjq+ky7bSS?=
 =?iso-8859-1?Q?5bEfnCqfqV+oySzDHNEmYKJMSXMomaoxbGfKSkmj2QLVT/eEfxnxytxBj9?=
 =?iso-8859-1?Q?V3HTh2atBylsphagVu4bP/HLk6fLTAt83A+reYKsS3Ht57GuNI9FqGbBmb?=
 =?iso-8859-1?Q?+o96xznCyyTnZXOL/19ojszHaZVu79ZGQWczXmM8akD7uM5/9vZ/XHTlRe?=
 =?iso-8859-1?Q?kGVbO9CCAuroJyP37Kl7nYBWexCnHS/SXxAgmVMHxOWZz1JUNF22EXjy7S?=
 =?iso-8859-1?Q?65dSFt8uHep4twmc1L1bFhG0DnrGlK9Vgz5mmuxfMPNve+yq3Jc8pPGUq+?=
 =?iso-8859-1?Q?QMVuXWagEU5mSDVlQZ9opexVW6ZfFOjC6QptpqFI1ImvWT9xjufUHdORrm?=
 =?iso-8859-1?Q?KXpAAZgrXFwD3pk7VXAO2LVPXKS1FG4kkObzXTgT3eaqWv2Wk2CycoGlaW?=
 =?iso-8859-1?Q?enUN0TqpAfY9Zii8xKBWV9+vz75Mb1j6XhNKjry4hPgszqkacy2AWtwrZK?=
 =?iso-8859-1?Q?M7S4ZvGVHhAH5BHJNAhFVj97uTZJ6vCgOjB+6EiwiDAI4feIQSOqIfdBhW?=
 =?iso-8859-1?Q?kOGVPjYH3RUGFQHBt9M+HM8HTyX8eBDKsQ5yn7gxk4fEGlXyY46pYxMTrR?=
 =?iso-8859-1?Q?sIm0YUXUBl9F4V0K6W8RpyXLpFQNpY9LLbv9aerO7Yo5ByRRB4YX8VkcBO?=
 =?iso-8859-1?Q?ZIZEf97EM5onyy5e3I4eKBArHYZde/f5tt67E5bK09pzFCTofotcCHPClN?=
 =?iso-8859-1?Q?dK2z3Br5f82qZHJIpCf3USCEVHOR2L78vR4+Emx8jPCPgmEcNe8B42dvbo?=
 =?iso-8859-1?Q?jgQVYAf0o2T7D6d7rwZXm4HbGJn5oTE7eS/NsLTOHVkn8Fkka6Y+2DviE3?=
 =?iso-8859-1?Q?9S4ZjOayRl0kwz23jxcArFH2ksS+UTb17luZNun7uBJ1BeITuCu6cgI4Fy?=
 =?iso-8859-1?Q?XlKeNjgep9lCWPuifAnjSnhySSPAwosq7eiOrg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?IXRsHcgt6nSxEdYsI/VuJPMEYnRaPF/jvCvYMUYrkRXMwnIxBgzh3ICDcj?=
 =?iso-8859-1?Q?GUyL9jt8Ah888u87lkPOlIDmuFgTU3W+Sa8JkpwT9pNjQpfMLyoh3+yciE?=
 =?iso-8859-1?Q?xZyNWP4Eh5563Ao8rUpYL9p2RWWwpJsLqf0Qt8iHTrWrCENSboIy3rD7fg?=
 =?iso-8859-1?Q?r+cPbkTWGuBWxy3//Lh0aAgW8jihzk7qdYclk8Kuy3zBpVNm4o03HPvZVp?=
 =?iso-8859-1?Q?bCNMFvm01F5O4YVFGNVQ6Fau/DWeBl4FyBETb6VxY3yzZ0c1JNX2h5xjb7?=
 =?iso-8859-1?Q?zy96Dt/qCTdD2Ynm5lo/nyIVu+NtkQp+VYnK9OjOjKe23vOWuT5bJYB2Op?=
 =?iso-8859-1?Q?qMxCAPP1A0ZpVcmNlCLGkvudwsWRnKH1fzoOPUM/XlKwO+G0tBexagk0oB?=
 =?iso-8859-1?Q?MtsNIqGGjrcGkLFd95x87+1lRxMxitLyRH7Rb33+s0MqUNn9LMxElcMjeg?=
 =?iso-8859-1?Q?cS/NK9okopZTCeL7Bq6fPu+8KADIt38XVAL586etOTm+znt9r3Mmc7aoB2?=
 =?iso-8859-1?Q?paRf/K7XxUU/CK8uSBFOjjl3AmATfgfOXR32DRAhc6CboNHV1Ae7BOdiqQ?=
 =?iso-8859-1?Q?XPR3Xgck1so3ybxIhh48oMADV38tyjAfp0ZJhaArFNmE/tScOAc6myo408?=
 =?iso-8859-1?Q?jb2Udr8A/HCLlNM/xGngnApRRPVgulYRGEVyjl6mMp7MItalZg8xkCBAjd?=
 =?iso-8859-1?Q?kV5jgR56lAo73ujwqZYgAuifuYWZdnfVunc9/6SzYuBjiPcDB5XPvw7kQN?=
 =?iso-8859-1?Q?mt99kUbd+c3U7tZEmcSU47UWj6XW0QBd6eYLnH1rYxIabg51fFyLe6EDca?=
 =?iso-8859-1?Q?03+LkNCFtCQ8OFVBN+ndtC43PuzFe4HfpAhRWLYOiTtwFPkpJrsV5Gnf8E?=
 =?iso-8859-1?Q?yet2Bz+cr4IZTCcp6ZhAw8Pkn4JE3AtkYmlUyoq5ZqTEWLCzHR3E54OlOm?=
 =?iso-8859-1?Q?KCjrIppt3KBZ9SzHtwPJqf9Kvu6+LPOUHjNFF/w+/hIGR6nraePbDK0WFg?=
 =?iso-8859-1?Q?MFYKuuqgV2t+uXRNzMeVedW7Xv7ZOf1oJb61T5zx73w2xQiy2PYraBTOAJ?=
 =?iso-8859-1?Q?r+TyBTUKh6DeqpT+gow4u3QfN0nHurglt0kwKkDcIokzq7NEIOeoYLmocc?=
 =?iso-8859-1?Q?Vu4f1cFmDfTDpBCotBlIGHIuw6hMZqLiw+XDlzTbxBFKbsEno5kNWh+Knm?=
 =?iso-8859-1?Q?9dDKk9BF50ehssr55Ng12epcElSbMludcT63eO14WLXEINtI4PVaGpdWh0?=
 =?iso-8859-1?Q?nC71ZWT3Cx0OO41vk5jxd3Cn3+GW8xA7bT/uLBG05cDkv4vh1HldOEU3TE?=
 =?iso-8859-1?Q?y+jMqvqktDmzOB3+952nAfghBctY5ancauEfJZsfZXheZ4gTmZHG6MZyHM?=
 =?iso-8859-1?Q?9JpRt3DE7H4X+OBN6id8flAW+LZosybjLWExR5twgRU0vL4BmtL68XnUG4?=
 =?iso-8859-1?Q?eIQhq7Vrzcan1eI0EC7TcH7gTF0hsSJHFysyRMFK7ksxq4Ou0BGJIG3Cj8?=
 =?iso-8859-1?Q?vL4TvIyEnk0c3Lm8NvnDIfF1AZS1qd1XwZoSv4IqfgmIju6m/DkCbp0/7w?=
 =?iso-8859-1?Q?p6gzofJ6hqWUcntih3xC/XCIE/5neDMHK6DsJMdOLd9eYXJz4WW76bS9e4?=
 =?iso-8859-1?Q?2nHijLRyu1hdWj2o2Ul8ptS8JIVB6q/Uc6Iccs7h/pkyL2gwS9wlu+ig?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b26fee8c-56da-47d2-e80f-08dd10180611
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 01:49:09.4644
 (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: oqacB0TLnLGyWCYTGhI0wzC41uR4WQqgaaR3HHeQQn23/hP5yw39N8qRLLtrGOTmQqZc9Fetwxt4C9+tbbU47/JgUw6v1qKXPz+4VzmubQo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB8923

Before this change, compiler would generate symbol that points right
past .rodata.str section. While GNU ld handles this just fine, LLVM ld
will complain:

ld.lld: error: common/device-tree/device-tree.o:(.rodata.str): offset is ou=
tside the section

Fix this issue by providing literal zero instead of calculated zero if
there is no error message in a bugframe.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/arch/arm/include/asm/bug.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/arch/arm/include/asm/bug.h b/xen/arch/arm/include/asm/bug.=
h
index cacaf014ab..9339e3bbf6 100644
--- a/xen/arch/arm/include/asm/bug.h
+++ b/xen/arch/arm/include/asm/bug.h
@@ -47,7 +47,11 @@ struct bug_frame {
          ".p2align 2\n"                                                   =
  \
          ".long (1b - 4b)\n"                                              =
  \
          ".long (2b - 4b)\n"                                              =
  \
+         ".if " #has_msg "\n"                                             =
  \
          ".long (3b - 4b)\n"                                              =
  \
+         ".else\n"                                                        =
  \
+         ".long 0\n"                                                      =
  \
+         ".endif\n"                                                       =
  \
          ".hword " __stringify(line) ", 0\n"                              =
  \
          ".popsection");                                                  =
  \
 } while (0)
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 01:49:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 01:49:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845651.1261042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGq8O-0005Yv-5R; Fri, 29 Nov 2024 01:49:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845651.1261042; Fri, 29 Nov 2024 01:49: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 1tGq8O-0005Ye-1T; Fri, 29 Nov 2024 01:49:28 +0000
Received: by outflank-mailman (input) for mailman id 845651;
 Fri, 29 Nov 2024 01:49: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=3Fhq=SY=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tGq8M-0004ZT-3F
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 01:49:26 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2614::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 288545b5-adf4-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 02:49:23 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB8923.eurprd03.prod.outlook.com
 (2603:10a6:102:32c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 01:49:13 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Fri, 29 Nov 2024
 01:49: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: 288545b5-adf4-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjFlIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI4ODU0NWI1LWFkZjQtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODQ0OTYzLjYzOTA2OSwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oh6dRaKR+VQMAflkQkxW2DNMvqXPAMFLySxJ5CEFq4wgJPtg3hS4mWWJyl5oYGgdpNzznmBbxN7lzG+1KKOPQqkMhemxb5q6BkvPjcHPvDyGeEwesTCSUw/BGItx5WO+uWhfl3Gdlh5yIKDgKFCelBQwrBWBrJ7Yy7Uf6lQuLHkErU7eWAGw4WxJZWXSprXnk2Xs+Cp8xwwEH1A40xU0EHuQLGV6AhG77tbOSzHz5708SgOlw9bUrPx6tPTLm/3UtXwjx5Aw4ewRA5+n+xbAIt0/WNHjfo5w1sxfvdXArIJQteE73q17JqGhClKrgyqTEkvVmiNahc4HiASz1lVk3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zPCV0KRt10rVJH/0K9SWhiiyCsf6ZgnkvvhOIytXR7E=;
 b=PzWzCOu1lP3pwQPSWNOV8sAui4i8AkF7t6AqSvvDKErogzBq3p7PGXa39Pp93fUd30PjKM1jecEwnin0ncOWd4u6W9pwqV1i8g/T1tsaXda9pwd9AePeso/LDwbSqtTNkAgdVs1zAODYtzKe+Y1HxaXUDwQvzggepZ9MACBW73ULu7cXmC3Gyvljl0ys7cCIe9ZRMS9KalYGCM8t3mt4BtqTSImBNPqVldC8DxQm7cS8481E+siB8VezSKFpVZJFQ0hfiSQWLLt4rKdGocXZI08jc8f5pAxSWrIpsP9JuUMQ6C2BV/GzS82gbyuSrBwLakzY1sKEioIotnmv4+WgKQ==
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=zPCV0KRt10rVJH/0K9SWhiiyCsf6ZgnkvvhOIytXR7E=;
 b=YMYb/U8Lywm4S0IKT4zxkwwIdatE016Q2JOV7K2mfu9AQfmx08EbhRfvPvF69YNsB0TbwBlWe52WzGXd4ZMOPXnQJ1tm1JpNTW1DFWgv5A74hbmLvR7sG6VvNlDr6eIJ9kR66eyjXHJk4P75OcnDqjAjARL+Ny44eRlXLOi9WnFqe8+cUfWPJPPyPIo92BxSGdMzLkq2cl3lPWri/G61Sn24I3WoPtnqu+6KsVmaMpwRUP8xqgJ+PgeckFuTt0deiGZ9j7S7phNmI2QTIg2qZS9GrQ8UHmPLOLNtjBpr+7wRbqKvDcqmJzcKNvovHjepQTPssB919s8I3fTezldFIg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 5/5] xen: arm64: remove -mgeneral-regs-only for vfp.c
Thread-Topic: [PATCH 5/5] xen: arm64: remove -mgeneral-regs-only for vfp.c
Thread-Index: AQHbQgDiyfh8gYRhRECvxQLXM9bgDQ==
Date: Fri, 29 Nov 2024 01:49:10 +0000
Message-ID: <20241129014850.2852844-6-volodymyr_babchuk@epam.com>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAVPR03MB8923:EE_
x-ms-office365-filtering-correlation-id: 5dca9183-548e-41cd-3b79-08dd101806f0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?oSKJ4V0XfCqexXOFqRrCYyCNTJU9YxCWuIZPzBefNSE2ir3DFuH/FsMtiZ?=
 =?iso-8859-1?Q?ktV6eOg8pK75uJVFfqsKWfVP4nvwTQqC79XYzAB+VbUPQPi3PjTml/H/C7?=
 =?iso-8859-1?Q?cgzD2+DxbmlX8osg3qQoG83UE/658wdvRmxf/Sq4Ep6OIBKO/rs1AO2WNL?=
 =?iso-8859-1?Q?PqMXnOg67aJPMn+E4hQsBfprNpQbJ4YZ/no9qHOmwiSUXzBLqOY6NQiq2B?=
 =?iso-8859-1?Q?szwZB1VujP+tXf2FC7cRSBQtRRzUFnqyKUMA6VND9+fJrQhl1vygQGLrxN?=
 =?iso-8859-1?Q?nlOilnleUhn/H1S9ALdn9eMgPKp0dF9jmw/87WYVb4kHS5RCTBQjM59Dwx?=
 =?iso-8859-1?Q?GYH/ZkFaBUyTJEL37xd7eOl/3dvJV6MRrhWxzz/ChpteFFswXIIGtrtg5F?=
 =?iso-8859-1?Q?jW6UdQ/aZFpzJu6elJKeHGpPzthuaMZQ3+Hit4bzzBGxIzW2cOASUP218b?=
 =?iso-8859-1?Q?/z2ctTWFbUc0rtADjPtP6v2enptiWBx523wgqHCThimsdwJx0TrOXV9mfd?=
 =?iso-8859-1?Q?Svms5cRJyyXRJBT8izQ8MD6q5hAEr5UTACg7qWEU5UIIE2L9xzbKWcNFD7?=
 =?iso-8859-1?Q?YWbl8G8SnwKy9TkUJ+hDw5TJ9B+OdKYjbOdmjjV1NCfJO5FEZZPZKGFrjt?=
 =?iso-8859-1?Q?rIO9NP+MyEgK0GLByn3GmnSIw43owtVboqD6Ho+ImIQgAnPWEeVq5loOC1?=
 =?iso-8859-1?Q?WI1VVClPXSMLBIh2LYdTgjBPW91EVVJ2nCJ1+L+SdBcjbmdeG52Z/U/sxI?=
 =?iso-8859-1?Q?HTKfKTBifrWVYarJ3++aV8pcLLi/3N/IhWb+52At/ZAokK0YQEeoCHZG0h?=
 =?iso-8859-1?Q?QH7EUfwgNSwyZSvaLrOa29L6e0y/T+kwIR7vmtBIsMjJcYNG4xE8vZsM5v?=
 =?iso-8859-1?Q?q8aiBSVy9+2PO5oNxJ0a4meFMf4+3Pp2jKlbs5ppwFKWkEOKjlUI8aoPXK?=
 =?iso-8859-1?Q?+HWh2b6gd/xa0a/yXdzJ/mGS37OeVwbkqP7UX+rbg7HybYpOMwOQ3AOQDU?=
 =?iso-8859-1?Q?ulZFyEgk4AHSBejDYKK7AcOecj/8SwPIvGb3e33uBUSF4wBVNwKDE932Vj?=
 =?iso-8859-1?Q?M8woKUSaEReyhysQRvesNuwIfqzzgZNv9Bp1SW6beWRG8YmOcgZkOnEj80?=
 =?iso-8859-1?Q?7xUBBoxuKaraJ8V+S1rRjuVd/ZGSXlp7575VEk6JGIhSrKUNF7rkrW4E2T?=
 =?iso-8859-1?Q?wxTGv/dTEgkvniFMRsdWZRUMUynfRUUMOC8IL90lrFaSKff0Riw6QdXZLA?=
 =?iso-8859-1?Q?1CpG3YQooPVxAvE345tGO6+ERcZ7uRV5FVBKQnGjwDltxkesd+5AMfPXoi?=
 =?iso-8859-1?Q?pQYhulEfh9G+eRZ1ekRnl3AWVZWcmTBH5wW4fEjF4KrsQW6oAs/CCZuIMA?=
 =?iso-8859-1?Q?RnCSWWnxA1WFqibfqic/r7DWOxyCA3/KTNuwMMIEU45hK+MHsRlWGPrJG8?=
 =?iso-8859-1?Q?jIbrwOc7uuLHdX1XTRMwMl3Q5w+oPa6EoPoaPQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?PXoL8CCVdolB76JtMkNI/R0wsNOPw7ta9AWl/CBZazr9y+ivnOvWD1IoGZ?=
 =?iso-8859-1?Q?SO8rPm8JF2jRKhBtfbE/DtJFpS4nW/b6TjKiH/kwuN2IqSnuUCqS/XNmfQ?=
 =?iso-8859-1?Q?Vzgpn9T9eZFzZfWrc709dxMpuCvN3eImoLUKiUuFmxo8BQgSiYJc5oEfT8?=
 =?iso-8859-1?Q?cSRCzK5YqUcZhG6ZEMS74963NQjZzzwUMiYza1oACL6u2+scNyTmYVC6NM?=
 =?iso-8859-1?Q?xC+b3EZCazusYQJfYS9FzP4QJTs3RPawm4HZNvD55pVZYc+1/7D3rEsd3j?=
 =?iso-8859-1?Q?msxEjT1Z7WH/2K8LyZoVeIlTqoVf+2cOZTygTe7UNPBLVTurmqZYN+s5xC?=
 =?iso-8859-1?Q?Oy6t3AG53UoDzTNXgHZxSA7v0mvXihvJsw0sUerzo44/aSwpUPNgkBUPbM?=
 =?iso-8859-1?Q?ImzLeQy91R1DUIvuKkk/hOhPuN3f35JpapTqcKF9Tvaq9KQ70xWnvHjRFs?=
 =?iso-8859-1?Q?ke9droR+Iqq0RI4X0QH8uOVloraLAN0Q13yCh0fwg3rz7foDvDoc03EwJd?=
 =?iso-8859-1?Q?LZJAEeQHUQ6AnbNNN2+PMdv4veaiCJXpVMdnzwtGCQ+73DVxVpNc7oU2S4?=
 =?iso-8859-1?Q?XQmiVCRpVQMXWgD9Ys+e+40F+En7ifoJPkTJ7Dq8B/nV4xExoyuOl1Sq/Q?=
 =?iso-8859-1?Q?k6DRHOEKFvoMPuQZfFNQrg2zKtfeu9LdhwlfXQzgRV99RWGJcDRE+6kBqx?=
 =?iso-8859-1?Q?Sg++AdrlGuPw6VRrCKNAoeVLgnU4RKR7N4g4dpkDonBe6BrMO9NzXT8s2Q?=
 =?iso-8859-1?Q?VgcI0ziYJUzbBMOEmq1dIPJCFMDnO3aF1fp3xKZAbrWwpmwqq3scm6WoPP?=
 =?iso-8859-1?Q?YmIzbOO0aW63XTxwSCdJ6mz0GWs1nKOrohoLKpA/G6GQ3JeOLzXzWqGwsn?=
 =?iso-8859-1?Q?f/JkduWU9nzXHeTNYRvspsZoMZMWTKT44dib4yfm7zVTxUKrYdAAEg0Ajp?=
 =?iso-8859-1?Q?aMeCG2BXj4gtvM5xfNqgPHO9fq2BJmI3KpSrWjTvqjJxd4+rioHJkidL/o?=
 =?iso-8859-1?Q?xgWHuyUSBZ/ATqh9EM787Bt6MygbNyfe0GsCUB40gAvuLZd65x5MdJNszO?=
 =?iso-8859-1?Q?Hzu0GF7GRKcKdGfcb6l3Yx+Wc7MHQaTGIGsJDLMLGHPDWpHoI8muUCrOI+?=
 =?iso-8859-1?Q?vxCxwljyPSUGiXQ9zDQ4J70p4NvmJSZWeiAUI+f2VQWQ8m6wYYytRtlrRj?=
 =?iso-8859-1?Q?j0p6f/eDz57PO0GIfwhln1zOAY4bH5nclFeLM+VlU6GWOF2hvwJczc3VN0?=
 =?iso-8859-1?Q?Mg+XNzkmmg9d9OowUNdS43CIYaJ1I9RWpEJqggB/Om9i+mwndPPej5Dh28?=
 =?iso-8859-1?Q?0Oe0+xpXfwjsCMzM53zp+f0Yi9VVu6VWbDzpES2LLKqZHVfxLVjbSP8/zB?=
 =?iso-8859-1?Q?BdCCVJ7l/iGMidY4gP+2n4X4o0l6CQdmeWcytZRtzjYJ8t8OehP8QevvBE?=
 =?iso-8859-1?Q?WlszhG0Q1QTpCW3gysZLNqNsNjy3uRTyHj6+JxtwH7UZ/bU9U0t27usiuG?=
 =?iso-8859-1?Q?600oiA3Z4ZgBBor+t65PuIFQM1S8EMLnHsx9C+4k5YGa2AgqZGVrIY2RPp?=
 =?iso-8859-1?Q?6wigdYQOxClRlCEZ8PShnhjP/6lzzykuOVqbE8VQKwpOGzf2NlI/muuV7B?=
 =?iso-8859-1?Q?hjNnp3hJg8lsKqjIzMfMxQ7G0UXeZFBIg24Qoy761wtkWzZNa8I5mIzg?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5dca9183-548e-41cd-3b79-08dd101806f0
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 01:49:10.8252
 (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: 7D1XuYr1mQz4162UXjc0dXa7upQX9aqEOsXKqD6iPkxFPBkOPNzz2W1My0h89TdF/eAPaIW2fDLz+F+7PcBDSBMizvbacok8vqwK2iVPfpw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB8923

vfp.c actually accesses VFP registers, so it can't be built with
-mgeneral-regs-only flag when using clang, as clang will complain
about this:

arch/arm/arm64/vfp.c:9:18: error: instruction requires: fp-armv8
    9 |     asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
      |

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/arch/arm/arm64/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/arm/arm64/Makefile b/xen/arch/arm/arm64/Makefile
index 6491c5350b..af949b8ee6 100644
--- a/xen/arch/arm/arm64/Makefile
+++ b/xen/arch/arm/arm64/Makefile
@@ -18,3 +18,5 @@ obj-$(CONFIG_ARM64_SVE) +=3D sve.o sve-asm.o
 obj-y +=3D traps.o
 obj-y +=3D vfp.o
 obj-y +=3D vsysreg.o
+
+$(obj)/vfp.o: CFLAGS_REMOVE +=3D -mgeneral-regs-only
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 01:49:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 01:49:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845649.1261018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGq8L-0004rX-Dh; Fri, 29 Nov 2024 01:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845649.1261018; Fri, 29 Nov 2024 01:49: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 1tGq8L-0004rJ-4u; Fri, 29 Nov 2024 01:49:25 +0000
Received: by outflank-mailman (input) for mailman id 845649;
 Fri, 29 Nov 2024 01:49: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=3Fhq=SY=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tGq8K-0004ZT-4U
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 01:49:24 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2614::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 273d2816-adf4-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 02:49:21 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB8923.eurprd03.prod.outlook.com
 (2603:10a6:102:32c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 01:49:13 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Fri, 29 Nov 2024
 01:49: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: 273d2816-adf4-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjFlIiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI3M2QyODE2LWFkZjQtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODQ0OTYxLjQ4Mjg4OCwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RDgX81zyQoBybsO0w9cajZTkNvfYZ/li4C8vzWGT3nbnlIdkL6JBo+fQ+gG3k2YN+rh+z1TazodFHLo2ey00ZHuI9LAF/6CndBEiZZefhvtphrAcy7ew5SP8mTMuWmx8Wmolt4DTb2jQWjjD4z6zgBSc593t+uafO5j/amFsrx3FBGOcWtwV9KNpHddwYGEiY8gfLHT0d3EJvlAGcYu1fU3VAX7/TYvORZ7LeMy3OfoVfubD4sz+426YS2kh0akvADDSPMrMxCV/eWOaZuxWxlKo78JUpmjj4Uf8RcfDxUi8j0J1le/5e5C5p62QMd1TOWS0qEIW2OTBn1EJ6sEV2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cT9VoTsV8c2mDTKSh8O3lk/cPOowmpDe2ws18KxovqM=;
 b=j5/WdM5K+5Eo0/8EmIyZPCwxwIpa3noy9SK5kotAifgTOR1bZgC1buxCTffRxV5Zm/pNFdy6uLd6aFWOeXLLKvbO8PRKPPPfcMwiWHfmYOCysPCNXhLojBCJs4wKUSIWAySszA8EOMpiiVgt3nf8P62Fs8MHBOalMri33NXyyPgVYuhaL3yAVpqbRJ33eaH8iCq84LCGbD3Xa6r7AQh5oFbj6I+sdASkiWXyqBKpwTUv1X2pcMwT3LmjsXR8qhKle1siPVvb3+wMDGlZC45MdPecivLqs6KNkkbAGZ1/6Npuga4yq6giw+jvxSYjo66yRujeXLCQHC7oKsXkoxxeZA==
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=cT9VoTsV8c2mDTKSh8O3lk/cPOowmpDe2ws18KxovqM=;
 b=YmQN6avDxaVXuHeKlwjxsuUgMn6PFaZXB0VKR656bodv5w5PIJORYtAEfhTJZEkA0/ubyDToSAP8JRRuEd4doTFaSBaPGOdErIIojSzvl9wdw1NF7vm3vTPBhxbN8MaQk0xT++zFdSkuPETZq0j6ke2tpX6jRCQpzL0BqCg3ZEpnrhaLb2ZLI2dymupNiQVS7UaIBHPfn1vzLn/Gl2CQX5uPwDk4l9ggCT7r721BE+GKHhHmXRWrC6A93DnwFF6iBsZ7w/RV8L0nhHaspTAnb88Kozze947bSsn3gA5KtdWUPG/8oIIhPy3y8nudozvwMq9Ri5FyJQ7oOLPFrvXvJg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 4/5] xen: build: add support for CFLAGS_REMOVE variable
Thread-Topic: [PATCH 4/5] xen: build: add support for CFLAGS_REMOVE variable
Thread-Index: AQHbQgDi3w2c4ZYqbkyJK+dadw8SYA==
Date: Fri, 29 Nov 2024 01:49:10 +0000
Message-ID: <20241129014850.2852844-5-volodymyr_babchuk@epam.com>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAVPR03MB8923:EE_
x-ms-office365-filtering-correlation-id: 0d3cf442-6c55-4133-67eb-08dd101806b7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?+1o7mVMWwdo0HqOI04ZnVzfWtTpaugxIdzWButim8uRV4OpefkHesv61dA?=
 =?iso-8859-1?Q?GtetkXoe2aUJ/UwDgjTlBs+cIGRKN7/rXJeekZc6f7t0thbEFaiIKydWFh?=
 =?iso-8859-1?Q?kwJWCWz+sANgSqdtnfyN7YWebf7SFdPc8AJTMEtjqmIqP4XgwlVVD1rzD/?=
 =?iso-8859-1?Q?gvbPmZtSEg1jjMfGhyw6BClTuvGUAryYfbe71vMug20RqJ4Nb4LLMw1xTc?=
 =?iso-8859-1?Q?ET7bLmKuu2NS8dNvZkVwHpYhR/+mTErLHqHg5vr2HfYYHOIVyCFP69WyBW?=
 =?iso-8859-1?Q?ijOzTkrriEGvRCtbIEeOznouv1eajDZNoP4Qv3/sNnMfstNG0FaDntl4ae?=
 =?iso-8859-1?Q?ME8HlCYNma/TxZ39Re3i5i0w34agDo5CPYeFx92yy6ya1fALy7+7bt2Tki?=
 =?iso-8859-1?Q?he53bgRd1ANE96CAU7v/juCcxk2cT2f8uFr/u2PQ7ESHJMcGIthJ5ZGkph?=
 =?iso-8859-1?Q?4Tceqlhg0lxjn8wRSAnK2y49CRmYZ1WU32nsLMRPSRYRjhCfLJb7UnW9Jm?=
 =?iso-8859-1?Q?lCzdj78URorzoiPCed5mvjth82trea6n3WA4HBtKFHPJQKldt2TzmiwVYM?=
 =?iso-8859-1?Q?0I/fiublqTjHDKS3kfkbCdeKsez2iDjF2D8fZ38a1YoSvl/vO/8hLurDSr?=
 =?iso-8859-1?Q?/5kXpTVN4mAgSGLqhBhHMCqFKaTHunmghfVfGngkLDCHDQql2Mz4Sc91hu?=
 =?iso-8859-1?Q?VgPMBJWHOcV1hSjFSv2ZMm15KNi+1nU7xPjGkP9E4EHCoO/0rN2sQe5GmT?=
 =?iso-8859-1?Q?5jQ1GXC2VcTXbBTR1Qw4vPFDd23gwIkV4No9BgDrZBY/YgFKV1up1HJ8Rd?=
 =?iso-8859-1?Q?6KiCKy2aEJ40ve2F0Oq0odnpqBuUA72ZpPB/dnRELjfxL5fguifOKyN0LJ?=
 =?iso-8859-1?Q?/pJdVFGj7D5bsjSpcGHxVCDobPE6av3/ZP0A7NZRSb0FCROcTwSXk+4x0m?=
 =?iso-8859-1?Q?Odsbih5ttyTj0H2JjQbZFGZZWrzJvWlOWRdu8JkW9FMBoXFw50YHc16idU?=
 =?iso-8859-1?Q?sNFVp4jNqFi2XU/UB7532H1lJwvT+AmRvBvl3OltcJGbXoL2EJw8VNW9zH?=
 =?iso-8859-1?Q?QGaK2UU+gmgI/wlbK9IFL7CWjJGQ8OMMT7YTcbXeoeFhI3IjaLuiaA61j2?=
 =?iso-8859-1?Q?juVK8Xbk7sJiZTZPxayegaSpEMiAaoCtOlLEcjlibEVD/t8niSQITOGk6/?=
 =?iso-8859-1?Q?WsagCvBcGs+KzaoStIbN9V1VnHbPgW07fS4AdIO+2SkiYOnh8HyTBWRcj5?=
 =?iso-8859-1?Q?U78Ah1Oikp2wDTtq7KYzWlfsQgX+fIfkzzWW2f4CZj+9oB9e1sXNRe+3ZF?=
 =?iso-8859-1?Q?V32ow+NvGwzYwFklA6OBRwzw40XzsU/erxsQhpk4uWXGV41nbm5bKaeAHS?=
 =?iso-8859-1?Q?/yL8tKGzmgCtwj4fHTX9jiaO6FDL0E9iNNsILTMUsWHzMfEtffmEVP0CaG?=
 =?iso-8859-1?Q?PfozcEfJl4ErH6uP/cpBZtFkFrZmqItJhvCoJg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?o8RwojEdQzIjXEEdFcJkjiqWqurHhXjR73BW0o4HfkiDMNczDjtzhCcuTM?=
 =?iso-8859-1?Q?YS+28eagkDHn1zJ5ld4bYjwyatZp8LkqWVW4qP5xW/h5xVMxXDu17pT03M?=
 =?iso-8859-1?Q?Ik8WiX2E73GqkkX3K0eWGhFTDijdoF3Vjp7miAjVHfSpNr91u2ff/ODmtq?=
 =?iso-8859-1?Q?T5hsP3pCq9CX6STHghzH2lN9w5eN4WofFP0usDH76fjCxYvh+PmOrfBPgG?=
 =?iso-8859-1?Q?r1towqZ65WdrmDXO1KWC1fIYJsj6+eq1mxy74jIH5uMON6p8p9FN6Jt8bP?=
 =?iso-8859-1?Q?SPtrWiSX9s2Q1pum+mxwDuNhbZNN5r7MfkvLsUC/GDqYXgM/V5YoyUsOUK?=
 =?iso-8859-1?Q?HYWMlmHkeEqY5jxFhlLS5EMDl21btjFtq5r+WMyS13Rzcx0F5RVRTtnHH1?=
 =?iso-8859-1?Q?QAZGnWS1Qo6q84LuyxiudCNoKI9Rs4nyLYj1KtvKeKsQTTxR5ddeFbtYoW?=
 =?iso-8859-1?Q?mNUZJGpN3BbOwlPJ4O9dVdXkj48Z8vSrZL89rCEyg53x9ApX8WRSOH6bTo?=
 =?iso-8859-1?Q?hemgYr/F1o7/2ZVDdKBskDWV1WiQIaJmPYXCJ48Rqh6jkyuygE4/V3Dj4P?=
 =?iso-8859-1?Q?yRfpxLPi6lJ61bf7apkQolEnt3EG51uqBPHcNp3HQbzId22CSNIggvmIAZ?=
 =?iso-8859-1?Q?aGUjLwidWAYjQcysCJtoUhxd16X1ySprPkBM+YkCkP9vjGeCqKIO10uTky?=
 =?iso-8859-1?Q?YXvsCJRtKxRHQs9K+Q0eSitmUWZQf/DhWjqUQPHddkMdol97gMLS49JjXK?=
 =?iso-8859-1?Q?EsXNhdff0PmQs/oyC6a9YnQS2uZsBe4AmRGluXit0/5OAZJLcnO/vRffNB?=
 =?iso-8859-1?Q?hK2rNdXE/jXa+NsB1E9GRGIbi8DEB1OmI3kkvD8wpKAoyGFTUaFmuz5hAD?=
 =?iso-8859-1?Q?Nx9nUssv3mffiF7uvP+JunaH9CnsMP0Z0SYg1CisFffchGtDjO5eiZS2FY?=
 =?iso-8859-1?Q?Uwyux1LK0apVc/ayQ2N3IVJqVmn1OPNjF9U2ezSf/HJERdr4Xso4Cqf2eA?=
 =?iso-8859-1?Q?LJsQSbYVFTGqeJD+3FPEQCCYL5j5JFW7GK17VWYVSzgVqJBw7dKWpmufYK?=
 =?iso-8859-1?Q?9zhQLGSeoTUhgqERgM85CgjU9PAiHOuH+Cw66VeGrbuwijPWRhuuTp1wmn?=
 =?iso-8859-1?Q?fD6I4rD2S3XEYwLdz2f/+l9DrHrIeK1y/EGCOIFCnJdKzsmsbjrZql+Dmi?=
 =?iso-8859-1?Q?lztr18s/k+2o87yThz7WLjlDwHdlrLoVdvxT6DwjHh7ha7kKYNKqNJlDV2?=
 =?iso-8859-1?Q?T9Njl8H+Jtdux+IOCAC1DrLpXoYYoRpjc/dQfa+B5Fb6OJgHFwJHGySzI6?=
 =?iso-8859-1?Q?aL5A4ylOXGfE8e+pbkSF64yDdNJJm5sXGSi6QRQO1kc/FBGk1UeSnAMq0r?=
 =?iso-8859-1?Q?M2DOuK28LbtjyfcGTZ4UVS3oIpvKepYVvlx8PHoDv4e2zGdc10hiNiu2nL?=
 =?iso-8859-1?Q?xUtiESmHSZt74WpUlrD4FeIDyXWX79yAxKlrHQLE4hlkwSW0eNwzNnUmY9?=
 =?iso-8859-1?Q?O1pjLnz6XpjYNxKmJp7+G/nbjBl/rQqXlXL5q6ZSqopviCRUvhXwpl2GDO?=
 =?iso-8859-1?Q?vFoI4C+klLl1lpCb9spEfAQrVHMsTNyldcZxnsMoAO6heWwI2D5F8qARdc?=
 =?iso-8859-1?Q?3UAkXBesPQE1WrIgtUGmaopq4NcDV/v/jfUaDllUakVFkjdQY5kV9IiA?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d3cf442-6c55-4133-67eb-08dd101806b7
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 01:49:10.3550
 (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: Q7+/6pc6IkzcQJEu+rBrYKgs/3DsLZwS7rv+LadTdSW0yo+AQw7TGXAz0k9nL0W0RRnlQ9+WJY7UyWPpCYWdx2/K5LPNy71t1VBlFVHYlnQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB8923

This variable can be used in cases when we need to remove certain
CFLAGS for particular object file. One such case is
-mgeneral-regs-only flags that should be omitted when we are building
an object file that uses not only general registers.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
 xen/Rules.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/Rules.mk b/xen/Rules.mk
index d759cccee3..478318537f 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -179,7 +179,7 @@ cpp_flags =3D $(filter-out -Wa$(comma)% -flto,$(1))
 # Calculation of flags, first the generic flags, then the arch specific fl=
ags,
 # and last the flags modified for a target or a directory.
=20
-c_flags =3D -MMD -MP -MF $(depfile) $(XEN_CFLAGS)
+c_flags =3D -MMD -MP -MF $(depfile) $(filter-out $(CFLAGS_REMOVE),$(XEN_CF=
LAGS))
 a_flags =3D -MMD -MP -MF $(depfile) $(XEN_AFLAGS)
=20
 include $(srctree)/arch/$(SRCARCH)/Rules.mk
--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 01:49:28 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 01:49:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845654.1261046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGq8O-0005cN-G4; Fri, 29 Nov 2024 01:49:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845654.1261046; Fri, 29 Nov 2024 01:49: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 1tGq8O-0005b6-As; Fri, 29 Nov 2024 01:49:28 +0000
Received: by outflank-mailman (input) for mailman id 845654;
 Fri, 29 Nov 2024 01:49: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=3Fhq=SY=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tGq8N-0004ZN-BQ
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 01:49:27 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20607.outbound.protection.outlook.com
 [2a01:111:f403:2614::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28de124d-adf4-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 02:49:24 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB8923.eurprd03.prod.outlook.com
 (2603:10a6:102:32c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 01:49:09 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Fri, 29 Nov 2024
 01: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: 28de124d-adf4-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxNDo6NjA3IiwiaGVsbyI6IkVVUjA1LURCOC1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjI4ZGUxMjRkLWFkZjQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODQ0OTY0LjIxNTIyNywic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z34GNJFGFnNbXXAPMvtbQb0evKpwzEyxMo392sjhcHvEpQC+6cXFbqJZwZ/lxtKbR8T6P5lmI7ZZy4eBjnb63GWGQbPv6LsE4QeuBxNzUpeAaxd3kXcwH7UtLamD62DLqNnClTtHkTGw5EpgYf7M/OW5XzHaWECnd5pw/hEuG14XlzBAM4gXH6s9MhPyL6ZjQ4XnakiiYqjlBm7YAibUDVV7wVs+yWin+wjRg/6nzF+kWhllUL20Xmi6bvYEWfqexPTWrq6PxWYA72ZQEix5ClcqMBiI5cpeVn1++320KgCJUo1KqvS9eYtA+VUsfqTRwiuRO9XnvfQFMal/FG9lag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hs4cLe8ALMoWcOMbuIwcvz7KSeSIg6dUhmOy+zBqkAM=;
 b=cRDEIsuNcz5tWIEG3R6UGJqVjlCXJFbJhq4Zjc5h1WtoGXYGTrovq3ycB9t62Hf1pKfyRRJoiR2DbuQxmvcUmQFIuWEabHIWL5QeyQFpBRRZYjwDx67W4B3Uvke3g2x6yZ8Krdc934PGgEb8ef541gjxIL2tQhZ90DfY3HdM3ZjKQHYkhYckXNHQmLvELvp9vQYyCwkeyTJ2dSLRrVpXLpc1nZ+BWTQ77m2jZghhZNrBP0Xtd4uRcJ78NIx+QHEGCqzqZFM/2b+TWSGQZb30aXDkuAGsNQ2pety6FtiK88H8nU6TOKWGnvkK1zVt+M0Ll4zjNJwhNoa9ZWYXISsJBQ==
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=hs4cLe8ALMoWcOMbuIwcvz7KSeSIg6dUhmOy+zBqkAM=;
 b=UokXrngjLwnNYK10D521YyvkboWZRtq1P7yFppSx0ACJnkNZfEdpd7iHoritxAYuGrIwJV7OT491ZmpsI1C8NvY/nk+aVVwkrHYty/DUN0bubPoBkqZpbPCWenC3vIEfQb7dYXgsM6rT+NPPxnAUs6ODjjXcwK63h3lRh+uzPqf2WPs5p183YVs8uOeYFD9TkVWKBO3Zj1AAKEazUgJ+aGqkEuQZPil+azUo0vbXAKJcldpqnk/GvWBxTsydJWty1Qs8d/szHeemcyFXb4X5eoi+8ZE5FeENZsWyiu4biENlBFSVUTYGLTnvWy8538sfEDXbYAWfR7z3wfc6JmuyMw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/5] aarch64, common: improve clang and llvm support
Thread-Topic: [PATCH 0/5] aarch64, common: improve clang and llvm support
Thread-Index: AQHbQgDhJYzO1RzhGUuu6Awok63JvQ==
Date: Fri, 29 Nov 2024 01:49:09 +0000
Message-ID: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.0
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: GV1PR03MB10456:EE_|PAVPR03MB8923:EE_
x-ms-office365-filtering-correlation-id: b1645f8d-8593-408e-3ce3-08dd10180436
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ywksZYiGWaShgk/Xh0PY4Ub22x7tGN5m5chY/FLWlxv7VZcDEwjwimB+Vm?=
 =?iso-8859-1?Q?Wxq6PoiS10XMzM3sVVRDbJI+DzYwj/KdRhiOuU+Pjpn9gDW/35qItvoAhX?=
 =?iso-8859-1?Q?u0kA8UykGUOQaMFh9nCkTCQ30PI2y/3e5dSPlKNTanIwJwCqXGpBLXm2+w?=
 =?iso-8859-1?Q?+ZG0g8dg4gMUtKFEWxmroIJg6fCh0stYFCNmUl9pCsTB/2xwf6y7sZnPgf?=
 =?iso-8859-1?Q?U3XrhkWN0FbzdMkE9303/quCyh9L+mQ/SmfZeB0tHUQeuqkpmLtm9ZEOfl?=
 =?iso-8859-1?Q?DkYzoYAhsrgA+wgHSDKHF4esRvJTi+CvtQ/4S+EJUdLR5N6VFbpjzq3W1Z?=
 =?iso-8859-1?Q?Aj9EuQhvnTMSmyrBOrNm6uyteSbQTX5boFcdUO+b+cw2lHtr1VCOhV4Pds?=
 =?iso-8859-1?Q?lNR47hC0xl14RtLiZVaklWF01PPvmMmMm4VU0lLTQ5gcYGkygpEgpmunpl?=
 =?iso-8859-1?Q?+mqV1Ya6Mzd9Efh002bENRxlj9RikUJY/kG0fmhFinIANHOtvd2Gk2nvPx?=
 =?iso-8859-1?Q?ACi363eZHjkHeMipDJLN2Z0nVkwxcnoB8AE5x7mzGr2rkT3ZWORHW42fm4?=
 =?iso-8859-1?Q?6R8+kh3imyhYf9sBKwR5xARvxqGx/vR1jev8TWn+NLlCjug3L/zN9q5gz4?=
 =?iso-8859-1?Q?FV7F4is5L2g7ZZYzLMUCqrpMFNUCdPIT8toWkS1abBqohF/5WUVZrd9Lpo?=
 =?iso-8859-1?Q?C6fG3Yrw0aMz51KWXsZrzCk0VdnGuCORwxz7n7iu8K/6xaBy89G5byiq9Z?=
 =?iso-8859-1?Q?+huvYM436Wd0hRK2cDh0elBTBvEdSXENsc+5ioN4o8I3bypQFLnsWeH7OI?=
 =?iso-8859-1?Q?r9qVxb95OFypkF6A5GIVHgUO/GS5yr4tgXWrIE3EptWP5xJY3mmAHPWnZz?=
 =?iso-8859-1?Q?m9MqCgyBzpU1aAmf08kIUpL6O1Y2LulbheUgoiq2NlDzOwA89Zin7q6ymm?=
 =?iso-8859-1?Q?9Dz55ATwrM6Qc77bcMfM6sFhtwvGrA21YS0SwSTxtzxsa+Q7JhtOtPnDAK?=
 =?iso-8859-1?Q?ecl1y5ie0+xEZbBRFy4HDpNP69EpPI2g1wewu2FPcQNXC/gKxbBZRh81sc?=
 =?iso-8859-1?Q?tg2V8T+cVmmoPvX8NAGVcZOM//xh5MFPr9dRLsXvSeb8m48XKYlDu3LDlu?=
 =?iso-8859-1?Q?MnvlNEyGx7HZEjF0JTTJkiwAAPX8ZzUk9qSWVIaAI1tLvrdCXY0T54ekmH?=
 =?iso-8859-1?Q?CxvUEyYzvWl8zr0wjjjSqHsyuiotT89nyz8b6Fs9BFXYQQbMmKgcZqs8B6?=
 =?iso-8859-1?Q?z9WioPyVWI6zKX2I50K+7VhxGnWu2Qq4Yq3oqJ+G3GT2oeBuaG+F2HtThj?=
 =?iso-8859-1?Q?GaHADfhX6UeTT6jDaSGBE5rjDtPe11B1LIVGrL4zmbu7aEWbY85mgqs4fQ?=
 =?iso-8859-1?Q?KvuvXywmPqCFi7oTt8z0ZwZ0XLsh4Ti//Xp0KqVX+Z37AJpSLAot2iJyKx?=
 =?iso-8859-1?Q?AHY43UGx4+ZY7SlQJgk3O7VZx4nr/ihK47g9nw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?I9JsjKvh+nuLIJbLT3SuL8z34Mww/+Hg1Q8yS7B3WIZgVyzz5n/eLJjOj8?=
 =?iso-8859-1?Q?0zOqoSIUkZbSj/cpBKLlZhhsfs06HZ3pzSurlhIv6TrNi7/OzRezUfZGBb?=
 =?iso-8859-1?Q?hyjA6gGeH/BgemNJ0oR11Z+sDRUzg1CAs04A+ADHTPkOESgOKqAJQKavep?=
 =?iso-8859-1?Q?1iEfL3AbI3TIca14P6n07F8gmbW3fO+7vjaoDdLaxqGKVHjV1vZogBzdcW?=
 =?iso-8859-1?Q?xWwvONq9G07EzX9XwZ9j38a0r2+8mP5tmuQGdOmcV3oKhrBDyJNlm86Lar?=
 =?iso-8859-1?Q?a155tY4QRus9JR6vI8hb5Keh+8uLYx8cOKGpLPp1fI9lSY+kgoGF+nTj9X?=
 =?iso-8859-1?Q?rTGYC729NsCxYiX1AIFtJR5cphjOf2HCMhi4T3nDjqmmH9DHUcTwRMElrU?=
 =?iso-8859-1?Q?caRla7gKpM7CsJ6811RFop1wBvKI25bVBGh2VBsWJx3fnxDhPjTd1W5mTd?=
 =?iso-8859-1?Q?h5A+c3TGXMOBhn2MjXve3Oo2XfIe6EeZCDE9m+4PorZmZvIBxKQqas5Eq2?=
 =?iso-8859-1?Q?2jEul9XIJruqHwqx0CZCb7SokOVUEkjPKPUeNqGPRAxCurz7wP+XC4ECOV?=
 =?iso-8859-1?Q?b/XjIyPyN3Ph9l3D6FFC/U5gQNbCZrAbsspoVL/8DhSd9ri9n895Ix8kB6?=
 =?iso-8859-1?Q?9VLh40lqJ2r/fuhW5UgEh3+nV3DkgvY4hobVY5NcTf3nWXaDud1qXwcxKJ?=
 =?iso-8859-1?Q?Tsp/qRELsnKZ50DZWIye2/l9rwn+tUHhqzpHROgTPX7nybhSxcr2yUIJb/?=
 =?iso-8859-1?Q?MnaWN8BfE49JuieP8JZi4Cev4iJiGsHwrRTk/iEx/R6LB4FLsr1obgKNGa?=
 =?iso-8859-1?Q?Vm5rI6HEKx2xbJdG0JkXX4qC+A3oMyVOQnHQLxMfXfCJVNjJJWGFu6Enyw?=
 =?iso-8859-1?Q?SoeBsNtu6j6XrQBy6Jp6RV3Xu24H+YAqgzZEItj/w2SgwheacS+n+1jixp?=
 =?iso-8859-1?Q?/NWUr2IUnd3E8br0WE8QCuHn9JUr60cnu8rrGrnMa5HOk6hHud2KFnBHIF?=
 =?iso-8859-1?Q?sEIh8bp426MORBEhgxxmNb8MX/crFXCg0DWQAzMJPRboCm+Uh71JxnJ2RE?=
 =?iso-8859-1?Q?iAUiJ+2Mbw25cywPs5nOcGrP0U9pPKmLhS1TWhrG5RX2Uq4IwXbcaxkEyo?=
 =?iso-8859-1?Q?MM4i9WZzyLSv6lSxFOHUveaN/kEImNb1aEhQ7otWhec5Iy+XRPTw2OMGr0?=
 =?iso-8859-1?Q?pKF5a/xOgK186yMdDRCX/d1ghA1OFN4f3337MX6eOSRJx1Zf4f6S4xvl5L?=
 =?iso-8859-1?Q?vHj++ajRm2c7ugTZ+Yr7/o+BBTdMUF05KnSsTbtCV+jrvv/98zseShXD3m?=
 =?iso-8859-1?Q?FAGdcDjcgx4C1cgdFnDQj44AzUuee8Cumc0pkAC1N2BxC1nBavis+BjLpz?=
 =?iso-8859-1?Q?qHxba0vQuYlCTE7Ll+2Yi+h7JRvIXWJZSzc4KdJFt9asfGiOR5sC6JiAVQ?=
 =?iso-8859-1?Q?khD2WApFD6Ar5VreUytpdXrc1VAzmJJgVFnokY0F87UjQplAH6Cv+8XDvn?=
 =?iso-8859-1?Q?Hn7hC2nZikfY3cyFlqh01wP8C+ULAtafhqlVlUyOl4RnH/IExC+fA2DP3L?=
 =?iso-8859-1?Q?AEr+ND70nIc5T1FURt+eH2CkXsRDk3JyqW6693xCxDo/vwBpAC6QZb6cBV?=
 =?iso-8859-1?Q?9AUeouLM2VZyNm2X6CLtap2arDrIRQvZtoCHwQ/uYltOvt05MmX9CLsg?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1645f8d-8593-408e-3ce3-08dd10180436
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 01:49:09.1796
 (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: x5NkknMx7rzEUGbBA/UG3Gjhl8iuwjDvxfhLAUmr0eYOqfDq6NWgqSgK4YCV5YpJ7P9ARQj/60fiWLTlxGTnraJH1dwYCT+bV9zUHtG6Rik=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB8923

This patch series addresses two main issues:

1. Some errors when using clang for aarch64 build

2. Unability to use clang for cross-compilation

While first problem has straightforward fix: add -march argument and
allow to use FP registers for vfg.c, second one is much trickier. I am
aware of the earlier attempts (like [1]), so I decided to use
different approach. Bscailly, I chose to use LLVM tooling as an
option. As LLVM tooling supports cross-compilation inherently, we
don't need to use CROSS_COMPILE varialbe at all.

  make XEN_TARGET_ARCH=3Darm64 clang=3Dy llvm=3Dy

Shoud work on all host platforms, although I tested this only on x86.

[1] https://patchwork.kernel.org/project/xen-devel/cover/20190327184531.309=
86-1-julien.grall@arm.com/

Volodymyr Babchuk (5):
  arm: bugframe: emit msg offset only if msg is present
  build: add possibility to use LLVM tools
  build: arm64: provide -target and -march if using clang
  xen: build: add support for CFLAGS_REMOVE variable
  xen: arm64: remove -mgeneral-regs-only for vfp.c

 config/GNUCommon.mk            | 16 ++++++++++++++++
 config/Linux.mk                |  4 ++++
 config/StdGNU.mk               | 18 +-----------------
 config/arm64.mk                |  4 ++++
 config/llvm.mk                 | 17 +++++++++++++++++
 xen/Rules.mk                   |  2 +-
 xen/arch/arm/arm64/Makefile    |  2 ++
 xen/arch/arm/include/asm/bug.h |  4 ++++
 8 files changed, 49 insertions(+), 18 deletions(-)
 create mode 100644 config/GNUCommon.mk
 create mode 100644 config/llvm.mk

--=20
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 07:44:26 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 07:44:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845718.1261062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGvfg-0006kz-6P; Fri, 29 Nov 2024 07:44:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845718.1261062; Fri, 29 Nov 2024 07:44: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 1tGvfg-0006ks-3f; Fri, 29 Nov 2024 07:44:12 +0000
Received: by outflank-mailman (input) for mailman id 845718;
 Fri, 29 Nov 2024 07:44: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGvfe-0006km-W9
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 07:44:11 +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 b585eb78-ae25-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 08:44:05 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-aa53ebdf3caso300347866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 23:44: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
 4fb4d7f45d1cf-5d097dd617asm1552162a12.42.2024.11.28.23.44.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 23:44: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: b585eb78-ae25-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MzQiLCJoZWxvIjoibWFpbC1lajEteDYzNC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImI1ODVlYjc4LWFlMjUtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODY2MjQ1LjY1NjIxMiwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732866245; x=1733471045; 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=yOG7yv+MN1iFNYFD0nzQtxRdykEReEn9OMMLf5/ayAE=;
        b=Mpf6OXM1bDEEL5ajTK3zmdCiXswEXo/vZm5SqOQCTLo+tL1EfSKNOR3O44K3vcT2L5
         b/BOJ8pmueg1Thk2KGgpW4lN3GvO68zgbB8eBv4B/4uWoFMSorDfZCOyupEI4eTg7V80
         hZvp4DFPQxiP4bmT1275rdvrfV33BNkM5ccc2AQbctLvGGf2peUGeZnA6RmcUK1KJrAl
         H9HHlaoXz0/F88uwvW1LBJoqG3z4BN8oL1VndMmsD9EWZxhmRdlTqAOvkAK/BQ3q8U1J
         AZaprkj4KXfotflrDgO0ueaUk1mhso5akrUBX9SzhW4HC27TtgIIQvfufwCgBt6frzH/
         tGrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732866245; x=1733471045;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yOG7yv+MN1iFNYFD0nzQtxRdykEReEn9OMMLf5/ayAE=;
        b=T6b0Ew3nMs2+Umy2Rc8CRR7ezC34SsLjYjh/l3TzMoLRTsljSLSyQnadsPyIqkveZg
         2J/ATnOgwkve7GD+skPt525IqMsRn3uH/osTPLpsZJ235NNKrSraGdcc1gk2AsgnapyZ
         lVgrxR/BRaUcmwHMyNDVOnI763vp/4FEGRQsjT8urIK/YwVgycrwyCBIgHh19qMVZM25
         /wK5kJYstNouqc2APJkxBl667SywbUbiP3GilqKgqCjSFWzI4YVIm/bow3WYz0kE83/E
         0PZbXCXOtUXYZKH8sDTSeDmgCI3Aj0XOqQBwcpeIfq5MilN3dSUUk/cc8BdPaYgU/pi/
         gXyw==
X-Forwarded-Encrypted: i=1; AJvYcCV/sWvf0BpywmC6Vfo1LFGn9HBUsdonmMUr8lY0wi3haMJ6RBrV782fgUKcg/ds1rgI7n66l2danZ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyjG+pdG2ebck5Q5aiaKDenuFGNhqcUP/HtU5RP/z9AbW2dbDg
	Is2BHL1YMVOmdhicK06bu4Cr01s62AWsA04oNaJlbyQaEWI0wBZrZQsLh+Jvww==
X-Gm-Gg: ASbGnctEOdV58xlfOj9YvK/BUMd9mU4u5SrUTL29+LPAvM5aDUyexTr1eVQmx6QTCfN
	ya9LLXcNMpYoRjVs+3CfCfABux4wJNEMnQpmeU0zdtoXexmtci6Lat3ysL3pXVwu+ln+TjLYSnr
	iwWb5qRubF7F+p98oY8Rt2F7NbF30iG6JRwpsKzXtTFH+e0XKOXiFFIDhDIFQOR9fLrWWcMc5S/
	o0LOCbGYfOkAukDygPou1Ug76v6b7dG55XZxi8ev+SbJit0/4ZYKV09KyOCoRSSsszz8Q0m9XsM
	BNW1xZyvcd3AbFo76/Wz62pwukrekzH5aoM=
X-Google-Smtp-Source: AGHT+IFW27UF8h8vHXALqw1sw8LY9WSjgcx3KzmqA8U+cWT/lp5OcAUv433siLSu/Go+zQH7xt7Gig==
X-Received: by 2002:a17:906:3143:b0:aa5:11fa:626d with SMTP id a640c23a62f3a-aa580ee013dmr1055389566b.3.1732866244992;
        Thu, 28 Nov 2024 23:44:04 -0800 (PST)
Message-ID: <c31bf522-41d6-46be-8e04-5f7ec566d925@suse.com>
Date: Fri, 29 Nov 2024 08:44:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] arm: bugframe: emit msg offset only if msg is present
To: Volodymyr Babchuk <Volodymyr_Babchuk@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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
 <20241129014850.2852844-2-volodymyr_babchuk@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: <20241129014850.2852844-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.11.2024 02:49, Volodymyr Babchuk wrote:
> Before this change, compiler would generate symbol that points right
> past .rodata.str section. While GNU ld handles this just fine, LLVM ld
> will complain:
> 
> ld.lld: error: common/device-tree/device-tree.o:(.rodata.str): offset is outside the section

As this is pretty clearly a bug in the linker, has that been reported
there? A reference to such a bug report would then imo want ...

> --- a/xen/arch/arm/include/asm/bug.h
> +++ b/xen/arch/arm/include/asm/bug.h
> @@ -47,7 +47,11 @@ struct bug_frame {
>           ".p2align 2\n"                                                     \
>           ".long (1b - 4b)\n"                                                \
>           ".long (2b - 4b)\n"                                                \
> +         ".if " #has_msg "\n"                                               \
>           ".long (3b - 4b)\n"                                                \
> +         ".else\n"                                                          \
> +         ".long 0\n"                                                        \
> +         ".endif\n"                                                         \
>           ".hword " __stringify(line) ", 0\n"                                \
>           ".popsection");                                                    \
>  } while (0)

... attaching as a comment here, to make clear why the extra complexity is
needed.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 07:58:27 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 07:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845731.1261071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGvtO-0008Ui-Es; Fri, 29 Nov 2024 07:58:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845731.1261071; Fri, 29 Nov 2024 07:58: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 1tGvtO-0008Ub-Bd; Fri, 29 Nov 2024 07:58:22 +0000
Received: by outflank-mailman (input) for mailman id 845731;
 Fri, 29 Nov 2024 07:58: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGvtN-0008UV-1V
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 07:58:21 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a06e9e54-ae27-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 08:57:49 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-385dfb168cbso101705f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Nov 2024 23:57: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-385ccd3a405sm3743890f8f.45.2024.11.28.23.57.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Nov 2024 23:57: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: a06e9e54-ae27-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MmIiLCJoZWxvIjoibWFpbC13cjEteDQyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImEwNmU5ZTU0LWFlMjctMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODY3MDY5LjIyNjMwOSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732867068; x=1733471868; 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=EhUxUsXlYTOPIuI/9Wjr+HtLnFZVyckeVjHXp63PFxk=;
        b=PZIJfWJY4bO01e3uAUjkOFdjBUbWUOy5T5kTxb2E9D//q/+xyRUuSG7yzPpPOd3r/S
         XAfrk2iqzmT9rTSWPCHtqyJn7muS2hSOzk+jN4Ity0cA+HSAiIzwejWt29cl4dbdPa+I
         H0dCxoGze0zUO/35PzfmmKpQWMUk63uXws0BflW7SAP+idx9xzu4UVyGQbhhR77SgNMV
         lP1DYInJ+qLedmxHUF152ZwbSt4FpGhhmc6WU5W0i500YE8k4NlvVqRRNK5Hx8XO/Phb
         uubk7HP+DizHQV17Tqp3CG9U3jtt6+zWtevufUdueB76EDHzddt37ztOqjtnrDWJK0oV
         hDmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732867068; x=1733471868;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EhUxUsXlYTOPIuI/9Wjr+HtLnFZVyckeVjHXp63PFxk=;
        b=KcI9Pct6OH5C1cj2rsV52eIGYhyCXRdc1YLZftsswLcXrJeicu1iOA2DclH4I6sm/q
         hXkH+7UTuXVIqrkyAfjPYSY2o472fSpXP2L1+WbrTVxx1I4eGPjNMFlxcLFd1L0AhmL5
         0jvOFdDoV0anJOljmlKXmkJ9jaCl98oThrvRAimeTd/CQ8+gtyVmrwWVGRO87ezu2qXg
         Ue7oZBfwtUR8ydU1OLvNvRz9cesEG3o3cVBssVnMxQUeAWlGVHsBcOd/2swKlPAcAzwL
         4Ilkv8/zkJ48fldL1yFpqFAdTR+VeJO6zoBfU5Rb5xzucv1tA8X/XyLjH+Fwvxms8OCT
         nosA==
X-Forwarded-Encrypted: i=1; AJvYcCX1ef8shYz/UjGVeQ/jmt8dD8EquUgPM1glc0YZYSrYNxqTyzoqxZ2B9RRx2pwqxmdm5zZZtOaoxhA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzeTkmfT8CrSM9BW/qWW5IP3SU2JE/A4ichFOCQKrDmPAMb17S8
	dfr5q3oT+dHfoPphoA6W0NbAqeACpqGyaBFgHFljLh9iQ853dALmN2MiZW04mw==
X-Gm-Gg: ASbGncsRxVEPxztMotrbp1UlhSqY0pezrHQt2Xgl0EFmTdYpayMPIgjTjtonVCQ232x
	Q6uP56PlwmctFoTJSZA80DTgyRfNg2t0KnftZIYF8JxdehpOoqJO+Igfg2tjXlnQcD2GEThDqSk
	9EFeFuvygR8+/EJvqCnGGDFISy89CKLCWSHhp1lOoU0Kotp6D0zOyXFh5Q9c+A4g2RjmjZAyS+p
	A/HAUZEFw7TmuwQ6UCZPNE4CR4QWxRwl5jhIy5iiibSlga9OdyICv9n82B9ibBJ6GA8CvVWRTHq
	b+DtANVRtdNnUAPfd9w1cu7s8LuEQvFtyUI=
X-Google-Smtp-Source: AGHT+IGuyjtl9V1UZBbRtUli2zHnDJ1sD+IrNwVVwXm7drOdNZXo8InlvWxeLoSek2j5l281KHDiaQ==
X-Received: by 2002:a05:6000:178c:b0:385:d7f9:f168 with SMTP id ffacd0b85a97d-385d7f9f2c9mr2944334f8f.17.1732867068577;
        Thu, 28 Nov 2024 23:57:48 -0800 (PST)
Message-ID: <57291d0d-fe7e-4410-8cc5-a2bed0de108e@suse.com>
Date: Fri, 29 Nov 2024 08:57:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] build: add possibility to use LLVM tools
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
 <20241129014850.2852844-3-volodymyr_babchuk@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: <20241129014850.2852844-3-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.11.2024 02:49, Volodymyr Babchuk wrote:
> Currently, even if we are using clang as a C compiler, we still use
> GNU binutils. This patch adds new option "llvm" that allows to use
> linker, objcopy and all other tools from LLVM project. As LLVM tools
> use different approach for cross-compilation, we don't need
> CROSS_COMPILE prefix in this case.

This new option is meant to control both toolstack and hypervisor builds?
As to the latter, I assume you're aware we're trying to move away from
this kind of command line control of the build.

How is this intended to interact with the existing $(clang) that we have?
In the cover letter you appear to only care about the clang=y llvm=y case,
while ...

> --- a/config/StdGNU.mk
> +++ b/config/StdGNU.mk
> @@ -19,20 +19,4 @@ OBJCOPY    = $(CROSS_COMPILE)objcopy
>  OBJDUMP    = $(CROSS_COMPILE)objdump
>  SIZEUTIL   = $(CROSS_COMPILE)size

... even up from here there are uses of $(clang).

Also please Cc Anthony on build system changes.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 08:04:34 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 08:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845743.1261081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGvzK-0002G5-7M; Fri, 29 Nov 2024 08:04:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845743.1261081; Fri, 29 Nov 2024 08:04: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 1tGvzK-0002Fy-4Z; Fri, 29 Nov 2024 08:04:30 +0000
Received: by outflank-mailman (input) for mailman id 845743;
 Fri, 29 Nov 2024 08:04: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGvzI-0002Fs-Md
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 08:04:28 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c5756df-ae28-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 09:04:25 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-385de59c1a0so417991f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 00:04: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-385df69feaasm672021f8f.5.2024.11.29.00.04.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 00:04: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: 8c5756df-ae28-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MjkiLCJoZWxvIjoibWFpbC13cjEteDQyOS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjhjNTc1NmRmLWFlMjgtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODY3NDY1LjA3OTI5LCJzZW5kZXIiOiJqYmV1bGljaEBzdXNlLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732867464; x=1733472264; 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=QWjaF82ZtLmSToo0JDa/Cr4RjUnoJ84M74/NrDf/FU0=;
        b=Aaox5vAmiL0FjSzl8YFpZiQcGIACFam1t870/6CDlGz0AfRFTU1oEZNPT3/HIdPjMJ
         03aE/MiMNaBdOXFKzh+OMKxyewy7DK0LmaWjKwstkjlmqnAtLUW7/nyux8Sotw7o9ua3
         wuxJ5LDhy7r4nhxEGjV1i46MmCCb4kU5Xzcq8jlhLH9OYs/C0GF2GxmRJT68RrdcQdtI
         fm5hG6odsqu8en48Yitxi+xYSvdotYs5D9bOLDJ3ak7E9IAN2ZO9xhzHQA2OWqOqZDP+
         fJHk8r3IxFVGtVBeJTvtAOyGWVqvVnqedVOCV7s7Xt15pdkxodie6t+9KEMJ0E0r0H8x
         cyAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732867464; x=1733472264;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QWjaF82ZtLmSToo0JDa/Cr4RjUnoJ84M74/NrDf/FU0=;
        b=KqtFQBNfsg44D+ul2golbPVWdCw1FQK5NN60YQVnn3G9K+bsDri6SH88hK8vLNpDqz
         sLR/a5cY5q7OPV2nwUsMHzNV0AOPI9mC8pVOlzyUNThy+lcH/f/2Q1gz1aLOLw8pDkUO
         k3nCFCm2KrTK9cqhB4H/SgwYUSZMAWxHCNwlr4UAdplUgKE/7KGL/ne0GNyNVrrwpzZG
         HMzsyl4YUfDymzC3MDtm27JjbKk6nVAMvCJuCGMiYuJ5yleiMOOe7yuyL20UCDNKZzXj
         guUP+pBJy9A94GI8UiOdQTnAbFLCfHjlLIruJt949WBuyppcszzOUivIuXgmPO7clca2
         JzfA==
X-Forwarded-Encrypted: i=1; AJvYcCUKnp3haAJgMNr3wDpVGxTi8Ua9afmB/6GU4m/KO4S3nBmB3Otumg+Y8JxkjuX//H3dkW76bBA1Gog=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yye2Arpx4WZ2GuKQzGoUIEqjalVNWOmGmtKxyTeeIeH0geWROTQ
	q2K1TiDGIefSpeclmoI3b9CTAqUuz/c6hEVuc7vN/uKgFkHl/IY+wYaTklKgcA==
X-Gm-Gg: ASbGncssC5PzHYnvSWGiuzlNAxjDd8vlZfln/cDVYbsRIgj5wDVyAnqx4Ixe5K6bC9c
	Xqop6nAri4/Nj83gLyJBvl0yTnw+LlpMFdM9KnGnmMmqQIKR0PgBbPXd5WeWflHpNfV5YduQ2Wr
	vi0dpesHivOsRBFoOLI3ThnakHQac5zqml1kDGbtVHPtr2fAcPutvYJG6XFN007gPaz920Iv8CV
	wFbBq2GgL03n0CVoWpy+Gp1MvB34WPrMWm+cVPN9ACLgH3CrNlWzU1S5ewrLv8sE8fQD790qj2j
	wad8aNcQfPFpk9lgh/Kl4oyyUWs0fIJ2AtQ=
X-Google-Smtp-Source: AGHT+IFtDz9pIyuqbzpHg18zY1aErvP4728gqniT6CLubQyYXBg0LZ/qIkBr11FVTm6Vb63/YVed2A==
X-Received: by 2002:a5d:6f06:0:b0:382:383e:850e with SMTP id ffacd0b85a97d-385c6ebcb69mr9036631f8f.13.1732867464381;
        Fri, 29 Nov 2024 00:04:24 -0800 (PST)
Message-ID: <d8bdd084-3e0a-40aa-b829-534219b24df7@suse.com>
Date: Fri, 29 Nov 2024 09:04:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] build: arm64: provide -target and -march if using
 clang
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
 <20241129014850.2852844-4-volodymyr_babchuk@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: <20241129014850.2852844-4-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.11.2024 02:49, Volodymyr Babchuk wrote:
> Provide -target and -march explicitly when building with clang. This
> makes cross-compilation much easier, because clang accept this
> parameters regardless of host platform. Basically,
> 
>   make XEN_TARGET_ARCH=arm64 clang=y llvm=y
> 
> will behave in the same way if building Xen on x86, or on arm64 or on
> any other platform.
> 
> -march is required because with default value, clang will not
> recognize EL2 registers.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> ---
>  config/arm64.mk | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/config/arm64.mk b/config/arm64.mk
> index c4662f67d0..97eb9a82e7 100644
> --- a/config/arm64.mk
> +++ b/config/arm64.mk
> @@ -5,6 +5,10 @@ CONFIG_XEN_INSTALL_SUFFIX :=
>  
>  CFLAGS += #-marm -march= -mcpu= etc
>  
> +ifeq ($(clang),y)
> +CFLAGS += -target aarch64 -march=armv8-a
> +endif

Why is this dependent on (just?) $(clang), not (also?) $(llvm)? Also
this affects both toolstack builds and hypervisor. Is applying -march
like this actually appropriate for the toolstack?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 08:10:32 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 08:10:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845753.1261092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGw54-0003kt-TH; Fri, 29 Nov 2024 08:10:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845753.1261092; Fri, 29 Nov 2024 08: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 1tGw54-0003km-Ph; Fri, 29 Nov 2024 08:10:26 +0000
Received: by outflank-mailman (input) for mailman id 845753;
 Fri, 29 Nov 2024 08:10: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGw53-0003kX-TQ
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 08:10:25 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6197e355-ae29-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 09:10:22 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-38241435528so720957f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 00:10: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-385df15e1e7sm920061f8f.40.2024.11.29.00.10.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 00:10: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: 6197e355-ae29-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo0MzAiLCJoZWxvIjoibWFpbC13cjEteDQzMC5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjYxOTdlMzU1LWFlMjktMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODY3ODIyLjc5MjQ0MSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732867822; x=1733472622; 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=v0DIuT5zuKBgvF/RnFYROoCdsmz0eaqdpfZLuvSiics=;
        b=Iky6fXKFqJQy+eggPkzh0U2HKRH33GLbDfLw4OoYVCr/9y0iOuJ6DfbrRQgWoM/Lzg
         HJJWsD1U8miC3dWxN9TVzmJb5xSRrfW7+8F5fPrPZqkk2ROdYe1hdv2OhLrg5EQfy16J
         j6rKjD1WFVsvbBbFo/F1AFWA3uO+YbL0r/2ZK76hZDQYXMTKt7M9hTczQA2tWqTRFw+g
         lBYz3h2e13WMLakjsJn00U32HD1FbokapRl2vNnz8w0z65wIYcTe0HVTEOI5U/l8eB/T
         t2L2drBftGXuXXq0ejGDLQ9qSwNoPqZjLgH/WOpgdZPXZ5u9UMnrYLLUPMNh9CFaWm0K
         sPow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732867822; x=1733472622;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v0DIuT5zuKBgvF/RnFYROoCdsmz0eaqdpfZLuvSiics=;
        b=dAAsX3SZIFurJw7LFJRoupBZ2zIdPdVOwIoWbD8Z/8XMsyKgcQVe/xlVFuY4Vz2wKv
         0ch9HkltQJu2ERMXYqPegs9tZ6tvY8VbRWTw59kkDdmeR9mmNFcX35j1Hmkw9eygVJiO
         1na+QPhWnLtrIgbAZepDFPIkP4akFIh2SmUubFg+IsuQ3JjsgYtSA+r0dVSzuE8TcuPl
         tspLn7N7+vNFybtR1Xu404GoxSkbNplhsEcn+I6SIgHz56SfwiHkc+jt6aMI58q+vrSa
         ZLAjZrmf/xoiGM8HtL7nM5pUkcRh5IfvAaaDDfxnfbUqhFbswmIVytKFvKeMYSmmSnjP
         tzew==
X-Forwarded-Encrypted: i=1; AJvYcCVLydMUGXZmd4a/fvEY9GLOVKD4lePruC2Tjmx8SUMdu+g12vJyIeK7D0IdXPcqBlgyJt4H+xtIAXc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzW1wsoVuH+LVNqNy+vxPQIOzi38wio55ABnvufVdgfpcn3ZbiC
	5tgXuUDYUycepmNDg59imbQtXxuuSzkqCrHrcJdS5Pgsct9Zmp8jeQKdtuP/Zw==
X-Gm-Gg: ASbGncuNsxM0pYjHRflf7vr4GBXfroUFW+7gMQz8qYFKEkILmMAFOR3r5UCz/3MIW3g
	OhnwFhVZUHVzQzpMWBTSM4bt6LcTGcO1z2169NCOk6J6Hz1GFQNO3Wcmuc/XbDk3UfOCavhO+W+
	1TRVlXARTIlQBhYt2f/ldi91mgC3Aoew5WOH7nJhXvB904PpWzlkc8/JF7smLME06kDJlLCSR6O
	taLEmdcu4Xe6DYQpMLLujnq14CmtKf7kJoF+xTa6Ng5hzZrg36ErsZfavCkQbXCctQ8A8bcdLcF
	k/L8y3bneiNzfJndgOOvZ/Ey7HikgAwdREM=
X-Google-Smtp-Source: AGHT+IHpeNZ7QLEPzKl3FSrMn4DyR41gBcxhlpgtB+ycw3FhbAykT8eEAl9wCMRyP4KlYViEZdlEFA==
X-Received: by 2002:a5d:47ac:0:b0:382:4aa0:e728 with SMTP id ffacd0b85a97d-385c6eb7af7mr9501431f8f.1.1732867822213;
        Fri, 29 Nov 2024 00:10:22 -0800 (PST)
Message-ID: <00b2e757-30e7-4cea-b4cd-9c48461b4b5b@suse.com>
Date: Fri, 29 Nov 2024 09:10:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] xen: build: add support for CFLAGS_REMOVE variable
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
 <20241129014850.2852844-5-volodymyr_babchuk@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: <20241129014850.2852844-5-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.11.2024 02:49, Volodymyr Babchuk wrote:
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -179,7 +179,7 @@ cpp_flags = $(filter-out -Wa$(comma)% -flto,$(1))
>  # Calculation of flags, first the generic flags, then the arch specific flags,
>  # and last the flags modified for a target or a directory.
>  
> -c_flags = -MMD -MP -MF $(depfile) $(XEN_CFLAGS)
> +c_flags = -MMD -MP -MF $(depfile) $(filter-out $(CFLAGS_REMOVE),$(XEN_CFLAGS))

This looks rather fragile to me. Plus see the comment on the next patch,
where this is actually used.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 08:13:00 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 08:13:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845764.1261101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGw7X-0004SE-8k; Fri, 29 Nov 2024 08:12:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845764.1261101; Fri, 29 Nov 2024 08: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 1tGw7X-0004S7-6C; Fri, 29 Nov 2024 08:12:59 +0000
Received: by outflank-mailman (input) for mailman id 845764;
 Fri, 29 Nov 2024 08:12: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGw7V-0004S1-OH
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 08:12:57 +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 bbd25fe2-ae29-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 09:12:54 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-434ab938e37so9638575e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 00:12: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-385d6e60909sm2677044f8f.76.2024.11.29.00.12.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 00:12: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: bbd25fe2-ae29-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjozMmIiLCJoZWxvIjoibWFpbC13bTEteDMyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImJiZDI1ZmUyLWFlMjktMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODY3OTc0LjE3ODU4NSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732867973; x=1733472773; 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=NRDqfmivmeZPSFuTGzi7SjRWi5211xG82lAX2XUtMs4=;
        b=BiSHTG1MZJIh5y/9v4j/5OOWBhPvqtDYdKvhgdGMq0aGQz5gy4X7JyOTLa2PAxPD34
         t+2Yd58QllRi2G1lATzwmh6nzo7sZLuq+6DAm5tPW2N8MqEY3rWOY/51uBA87sP6uj28
         rRgQTNzbMupIJwZUw3mco1Rfn1tq30IWWbwU4AIGPJMHUksW7Xg2Tf+LQt6dfzGWezy+
         /y1ydLU5evJEzhz64IwijA0pFL4XAwfaHvmAXOkPeJrN2uwZHuBY7UxpcAPureWcMsPP
         n9TO9OgZSRFmyuJYAqDmjWhto01iJ+tGk5irNNdltaDr4+Lu7VuZDmOwfLryWs445vDJ
         VqLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732867973; x=1733472773;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NRDqfmivmeZPSFuTGzi7SjRWi5211xG82lAX2XUtMs4=;
        b=ARh2p1t8PoeWxnPJNeorO0euyC3DiTMC5sAJtvhtNVwlzUuiOt8IJnD+aOvSQJh4dN
         J0k9UtyNQreJS/GH98CpnvBf1ozgn9lOimvqEl/82iaO4c0a7zm89UUHUXR9pHl27DfR
         V6MiC0JCrIHf+6QXuIk4fvtKSvxqx6TSH3/SSOpf43IpgerAOvj4xQXAchZ3e/MXMZu2
         r1JI7AcME7KZxCAT8RoaLl5+ylGGlSone5YUorIwk96t7ZMzO9v7wYJmo93wVIgzUZI2
         UhZzDn87l9m82jdN3bTx8MJvu5E+nGki5KcfYslnN7xCMfzvukZBSTuwm2CKK3JpouiW
         Qqew==
X-Forwarded-Encrypted: i=1; AJvYcCUNo6j5RWYkXpra/iX7zhe76LIfx11vB9Av2pDEcwNElzT4mbRrZpdPhADJpE2JG4k9JDlvKz5JclI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1cct9AkytlirdklmWFt67zE4XfKoRBOMfSY5DoB02MbGlPj/6
	OtomRYleGFbPXfp3lrtnSz0QqopvDg5qO5tUsEBkCm364omJNHdpmtA2QEZB8g==
X-Gm-Gg: ASbGnct83KctU8nPQEF0OWBAEeDdv2oumRWJG6F9Ox88byHBv7zRBV4WtLkLkeoLNLl
	sDltGdCzPRJ6eEhkS7sgLORi9EMWK/Grc2Im+6MFbnN9vHN2+f4e2xLZEu7Z4NVsyliC4Pqqgrw
	jnp+X/rFoy8qV0Or4Q+pjjJ/5C2nfKr1rpmnNkpT5nN8/ynE0NH4cbWuw8ENOs1lOnNP+74OIGf
	uKpIm5bF/0pL/zvcl+V39j8oB4k535urPTUq4HGySl5YQwEHIk1QfpzVEibp2hNCOsLO8vz1qXu
	8DHquTwkgK9c18F6HDX/EjLOOkmunAayBT8=
X-Google-Smtp-Source: AGHT+IHwI5cKlITEuvHoxWotbl/oD4lwkuyNc0Nf5vlWvONT4nmv028Yq1PPc9a1UUk42jHJT6/8nQ==
X-Received: by 2002:a05:600c:3b1a:b0:434:a968:89b5 with SMTP id 5b1f17b1804b1-434a9dc35f7mr99590645e9.9.1732867973580;
        Fri, 29 Nov 2024 00:12:53 -0800 (PST)
Message-ID: <1d1684b2-ed0e-47cb-ab78-72cd2f51aafc@suse.com>
Date: Fri, 29 Nov 2024 09:12:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] xen: arm64: remove -mgeneral-regs-only for vfp.c
To: Volodymyr Babchuk <Volodymyr_Babchuk@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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
 <20241129014850.2852844-6-volodymyr_babchuk@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: <20241129014850.2852844-6-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.11.2024 02:49, Volodymyr Babchuk wrote:
> vfp.c actually accesses VFP registers, so it can't be built with
> -mgeneral-regs-only flag when using clang, as clang will complain
> about this:
> 
> arch/arm/arm64/vfp.c:9:18: error: instruction requires: fp-armv8
>     9 |     asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
>       |

Imo this needs addressing by inserting appropriate .arch_extension directives
in the asm(), to limit the scope of where VFP registers can be used to _just_
where we want them used.

> --- a/xen/arch/arm/arm64/Makefile
> +++ b/xen/arch/arm/arm64/Makefile
> @@ -18,3 +18,5 @@ obj-$(CONFIG_ARM64_SVE) += sve.o sve-asm.o
>  obj-y += traps.o
>  obj-y += vfp.o
>  obj-y += vsysreg.o
> +
> +$(obj)/vfp.o: CFLAGS_REMOVE += -mgeneral-regs-only

This, after all, allows the compiler to also use them behind our backs.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:07:25 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:07:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845779.1261111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGwxu-0002iT-7d; Fri, 29 Nov 2024 09:07:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845779.1261111; Fri, 29 Nov 2024 09:07: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 1tGwxu-0002iM-4t; Fri, 29 Nov 2024 09:07:06 +0000
Received: by outflank-mailman (input) for mailman id 845779;
 Fri, 29 Nov 2024 09:07: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=+lhP=SY=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tGwxs-0002iG-Vo
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:07:05 +0000
Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com
 [2607:f8b0:4864:20::d2c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 49afbbd7-ae31-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 10:06:59 +0100 (CET)
Received: by mail-io1-xd2c.google.com with SMTP id
 ca18e2360f4ac-843e3b49501so48575539f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 01:06: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: 49afbbd7-ae31-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpkMmMiLCJoZWxvIjoibWFpbC1pbzEteGQyYy5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjQ5YWZiYmQ3LWFlMzEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODcxMjE5LjUxNjQ3LCJzZW5kZXIiOiJjYXJsby5ub25hdG9AbWluZXJ2YXN5cy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732871218; x=1733476018; 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=YYFCVluVcSJwdm3/KZCItIDRzM9+I51g0gVQxAcowDQ=;
        b=BjRYQzjZDV4/46nsmU3eEa7oXUIKz5bCi2RSV61sjyXtQ76pSQpL6dJOYm9yZ3aXru
         fDhkP1KbuMiE3Af1Hlx3cjhubYNv8LC1badxyVJyWIekJNWLIDeYXdwfYnS03cYShL7z
         tvTWmqj8QgbHFcNlvCbkz9RQKhfxId6Syga9Z5+USRtfItuxWOsNev8HQ+D1RFpokTqi
         gI0Vgfkhxi//l3+pQ/vlWobr5+Ofj4eETEFpEGPNs3oIISoSaRaKnbWcJQQ5hUvOem0W
         bdPzmt8NbusxhQCDXLtoxBpSDBQo7do3opbmzwjEvxwL7r+aLEjcukvzhalRKnYfxdBY
         7q2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732871218; x=1733476018;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YYFCVluVcSJwdm3/KZCItIDRzM9+I51g0gVQxAcowDQ=;
        b=R9Fc8UROrznuqcnn4m2kY0JJP9BS5HkuTkib9Ft9VmKwlbg0GZA4qYibQ8K1hz7YCB
         bx3Si7mG7zK+yafHTnrokWFkU7A5evrkdn7N0sBH4/yKAT503MEeD1WobYQm6L6goD7I
         SmgRIIsPUqbCHVW+jYttTaLp6RFzC0pNBE+xCBP2G4dlUgby0N2yVrdYjL4n0KrApddC
         nhaoBw2hy6eqAAWT5PSaHSRTSReDYTuP/RwEG1gyi2HuM6/H88hRkBX4joz/5Y0gYODH
         X9IolDoO6jeXDp2WeP554Uy46n93oAjjMZdbpOXGdrXJQVNIshHkfNY4mz6CMXbuBh/F
         /DAg==
X-Gm-Message-State: AOJu0YxmvHWY6wCw75nZns6BFFSKRZPY4NLXpRFWcl5CGAF/h+m7+2Fl
	QmxdqcBlvc2+kGIGkJhzm/LB6lBeqDnnX6SUsepMPJopyn+9SpkyquasG2aLZnZid7qgFPekTag
	tJrmJ/8t/O9I8oJz+3/7/Mn40e6uOiNdwDcUTWw==
X-Gm-Gg: ASbGncsq5w+aVCydbVsZ7VmR7dlmog7+pc7WYzPuBmkvh8a26nS2HJYKk0+z1ON/dBf
	a+LWTiFyjIG8THM8oMVfGsGWLO99XwMjl
X-Google-Smtp-Source: AGHT+IF6JJaW/Z2/BLQRVijM3QMkDRDeHls9cBgyuFq5CULTtubsBLMsvaathwK+GEgh9dBLp7Z0VWRF1lth646qXQk=
X-Received: by 2002:a05:6602:3424:b0:83b:5221:2a9b with SMTP id
 ca18e2360f4ac-843ecdaa332mr1188459939f.0.1732871217907; Fri, 29 Nov 2024
 01:06:57 -0800 (PST)
MIME-Version: 1.0
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-4-carlo.nonato@minervasys.tech> <15ebc55c-62d0-4133-97cf-57f4c503aacb@amd.com>
In-Reply-To: <15ebc55c-62d0-4133-97cf-57f4c503aacb@amd.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Fri, 29 Nov 2024 10:06:46 +0100
Message-ID: <CAG+AhRX6oNgMCk3fRyPcE=gpTyBen_9z_dpkoTUs-Mp6t5XYEw@mail.gmail.com>
Subject: Re: [PATCH v10 03/12] xen/arm: permit non direct-mapped Dom0 construction
To: Michal Orzel <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, andrea.bastoni@minervasys.tech, 
	marco.solieri@minervasys.tech, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.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

Hi Michal,

On Thu, Nov 28, 2024 at 11:34=E2=80=AFAM Michal Orzel <michal.orzel@amd.com=
> wrote:
> On 19/11/2024 15:13, Carlo Nonato wrote:
> >
> >
> > Cache coloring requires Dom0 not to be direct-mapped because of its non
> > contiguous mapping nature, so allocate_memory() is needed in this case.
> > 8d2c3ab18cc1 ("arm/dom0less: put dom0less feature code in a separate mo=
dule")
> > moved allocate_memory() in dom0less_build.c. In order to use it
> > in Dom0 construction bring it back to domain_build.c and declare it in
> > domain_build.h.
> >
> > Take the opportunity to adapt the implementation of allocate_memory() s=
o
> > that it uses the host layout when called on the hwdom, via
> > find_unallocated_memory().
> >
> > Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> > ---
> > v10:
> > - fixed a compilation bug that happened when dom0less support was disab=
led
> > v9:
> > - no changes
> > v8:
> > - patch adapted to new changes to allocate_memory()
> > v7:
> > - allocate_memory() now uses the host layout when called on the hwdom
> > v6:
> > - new patch
> > ---
> >  xen/arch/arm/dom0less-build.c           | 44 ------------
> >  xen/arch/arm/domain_build.c             | 96 +++++++++++++++++++++++--
> >  xen/arch/arm/include/asm/domain_build.h |  1 +
> >  3 files changed, 93 insertions(+), 48 deletions(-)
> >
> > diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-buil=
d.c
> > index d93a85434e..67b1503647 100644
> > --- a/xen/arch/arm/dom0less-build.c
> > +++ b/xen/arch/arm/dom0less-build.c
> > @@ -49,50 +49,6 @@ bool __init is_dom0less_mode(void)
> >      return ( !dom0found && domUfound );
> >  }
> >
> > -static void __init allocate_memory(struct domain *d, struct kernel_inf=
o *kinfo)
> > -{
> > -    struct membanks *mem =3D kernel_info_get_mem(kinfo);
> > -    unsigned int i;
> > -    paddr_t bank_size;
> > -
> > -    printk(XENLOG_INFO "Allocating mappings totalling %ldMB for %pd:\n=
",
> > -           /* Don't want format this as PRIpaddr (16 digit hex) */
> > -           (unsigned long)(kinfo->unassigned_mem >> 20), d);
> > -
> > -    mem->nr_banks =3D 0;
> > -    bank_size =3D MIN(GUEST_RAM0_SIZE, kinfo->unassigned_mem);
> > -    if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(GUEST_RAM0_BASE),
> > -                               bank_size) )
> > -        goto fail;
> > -
> > -    bank_size =3D MIN(GUEST_RAM1_SIZE, kinfo->unassigned_mem);
> > -    if ( !allocate_bank_memory(kinfo, gaddr_to_gfn(GUEST_RAM1_BASE),
> > -                               bank_size) )
> > -        goto fail;
> > -
> > -    if ( kinfo->unassigned_mem )
> > -        goto fail;
> > -
> > -    for( i =3D 0; i < mem->nr_banks; i++ )
> > -    {
> > -        printk(XENLOG_INFO "%pd BANK[%d] %#"PRIpaddr"-%#"PRIpaddr" (%l=
dMB)\n",
> > -               d,
> > -               i,
> > -               mem->bank[i].start,
> > -               mem->bank[i].start + mem->bank[i].size,
> > -               /* Don't want format this as PRIpaddr (16 digit hex) */
> > -               (unsigned long)(mem->bank[i].size >> 20));
> > -    }
> > -
> > -    return;
> > -
> > -fail:
> > -    panic("Failed to allocate requested domain memory."
> > -          /* Don't want format this as PRIpaddr (16 digit hex) */
> > -          " %ldKB unallocated. Fix the VMs configurations.\n",
> > -          (unsigned long)kinfo->unassigned_mem >> 10);
> > -}
> > -
> >  #ifdef CONFIG_VGICV2
> >  static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
> >  {
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 2c30792de8..a95376dcdc 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -416,7 +416,6 @@ static void __init allocate_memory_11(struct domain=
 *d,
> >      }
> >  }
> >
> > -#ifdef CONFIG_DOM0LESS_BOOT
> >  bool __init allocate_domheap_memory(struct domain *d, paddr_t tot_size=
,
> >                                      alloc_domheap_mem_cb cb, void *ext=
ra)
> >  {
> > @@ -508,7 +507,6 @@ bool __init allocate_bank_memory(struct kernel_info=
 *kinfo, gfn_t sgfn,
> >
> >      return true;
> >  }
> > -#endif
> >
> >  /*
> >   * When PCI passthrough is available we want to keep the
> > @@ -1003,6 +1001,93 @@ out:
> >      return res;
> >  }
> >
> > +void __init allocate_memory(struct domain *d, struct kernel_info *kinf=
o)
> > +{
> > +    struct membanks *mem =3D kernel_info_get_mem(kinfo);
> > +    unsigned int i, nr_banks =3D 2;
> Instead of hardcoding, shouldn't it be GUEST_RAM_BANKS?

Right.

> Also, the second bank won't work with CONFIG_ARM_PA_BITS_32 which limits =
PA to 32bit.

How is this being addressed in the current allocate_memory?
Also, LLC_COLORING depends on ARM_64. ARM_PA_BITS_32 requires ARM_32, so th=
e
two configurations should be incompatible as of now.

> > +    paddr_t bank_start, bank_size;
> > +    struct membanks *hwdom_ext_regions =3D NULL;
> AFAICT you search for free memory. Naming it as extended regions is not a=
 good choice.
> Instead, hwdom_free_mem?

Yes.

> > +
> > +    printk(XENLOG_INFO "Allocating mappings totalling %ldMB for %pd:\n=
",
> > +           /* Don't want format this as PRIpaddr (16 digit hex) */
> > +           (unsigned long)(kinfo->unassigned_mem >> 20), d);
> > +
> > +    mem->nr_banks =3D 0;
> > +    /*
> > +     * Use host memory layout for hwdom. Only case for this is when LL=
C coloring
> > +     * is enabled.
> > +     */
> > +    if ( is_hardware_domain(d) )
> > +    {
> > +        ASSERT(llc_coloring_enabled);
> > +
> > +        hwdom_ext_regions =3D xzalloc_flex_struct(struct membanks, ban=
k,
> > +                                                NR_MEM_BANKS);
> > +        if ( !hwdom_ext_regions )
> > +            goto fail;
> empty line here please
>
> > +        hwdom_ext_regions->max_banks =3D NR_MEM_BANKS;
> > +
> > +        if ( find_unallocated_memory(kinfo, hwdom_ext_regions) )
> If you reuse find_unallocated_memory for a purpose other than extended re=
gions, I think
> the description of this function should change as well as comments inside=
.

I can definetely change that.

> Today, the function gets all RAM and exclude dom0 RAM (in your case is 0 =
at this point, reserved memory,
> static shmem and gnttab (in your case is 0 at this point). I think we can=
not get away without
> making this function more generic. Maybe it should take as a parameter st=
ruct membanks * array?
> Also, the callback add_ext_regions() may not be suited for all purposes (=
i.e. it takes only banks
> > 64MB into account). I know that there will be more use cases for a func=
tion that will return the
> free memory for domains. As an example, today, for direct mapped domains =
we hardcode the gnttab region
> (only dom0 is special cased). This should not be like that. We would need=
 to find a free memory region
> to expose as gnttab.

For the current cases (including llc coloring) it works. If there are no
objections, a TODO plus comments and description changes you talked above i=
s
probably sufficient to cover the (current) use-cases and "ensure" this is n=
ot
forgotten for the future extension you mention.

> > +            goto fail;
> > +
> > +        nr_banks =3D hwdom_ext_regions->nr_banks;
> > +    }
> > +
> > +    for ( i =3D 0; kinfo->unassigned_mem > 0 && nr_banks > 0; i++, nr_=
banks-- )
> > +    {
> > +        if ( is_hardware_domain(d) )
> > +        {
> > +            bank_start =3D hwdom_ext_regions->bank[i].start;
> > +            bank_size =3D hwdom_ext_regions->bank[i].size;
> > +
> > +            if ( bank_size < min_t(paddr_t, kinfo->unassigned_mem, MB(=
128)) )
> I would expect some explanation.
>
> > +                continue;
> > +        }
> > +        else
> > +        {
> > +            if ( i =3D=3D 0 )
> > +            {
> > +                bank_start =3D GUEST_RAM0_BASE;
> > +                bank_size =3D GUEST_RAM0_SIZE;
> > +            }
> > +            else if ( i =3D=3D 1 )
> > +            {
> > +                bank_start =3D GUEST_RAM1_BASE;
> > +                bank_size =3D GUEST_RAM1_SIZE;
> > +            }
> > +            else
> > +                goto fail;
> This could be simplified:
> const uint64_t bankbase[] =3D GUEST_RAM_BANK_BASES;
> const uint64_t banksize[] =3D GUEST_RAM_BANK_SIZES;
>
> if ( i >=3D GUEST_RAM_BANKS )
>     goto fail;
>
> bank_start =3D bankbase[i];
> bank_size =3D banksize[i];

Ok.

> This patch requires also opinion of other maintainers.
>
> ~Michal

Thanks.

- Carlo


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:11:16 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:11:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845787.1261122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGx1v-0004Jn-NR; Fri, 29 Nov 2024 09:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845787.1261122; Fri, 29 Nov 2024 09:11: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 1tGx1v-0004Jg-Kg; Fri, 29 Nov 2024 09:11:15 +0000
Received: by outflank-mailman (input) for mailman id 845787;
 Fri, 29 Nov 2024 09:11: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=NNyS=SY=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tGx1t-0004JY-Ja
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:11:13 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2416::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd525480-ae31-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 10:11:07 +0100 (CET)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CH3PR12MB7737.namprd12.prod.outlook.com (2603:10b6:610:14d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Fri, 29 Nov
 2024 09:11:02 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%3]) with mapi id 15.20.8207.010; Fri, 29 Nov 2024
 09:11: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: dd525480-ae31-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjQxNjo6NjFmIiwiaGVsbyI6Ik5BTTExLUNPMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRkNTI1NDgwLWFlMzEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODcxNDY3LjcyNzIxMiwic2VuZGVyIjoiamlxaWFuLmNoZW5AYW1kLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EkZZkGiewAcLO2oIx6KXRfF9/uYpABvCI7ailLZ44xutGUL43HBxq+SVB9zpb0b9Qf65RBb4A5PrWAoZAOXisOYFGEuYkt+3i4oeeoTOcYl6gFgAbWmyLl0ecJiCkNMdnc1TU+gD1imcc8nHmXeFs4za6j1PCk9ZpywDfCaUEG2kK9B55X0DFBzcwwDCC/tSkLEzjrPWLCMdHaN62J1wt+wdQeRUSTPmf7WdE7KBOkmbyBtVe/L/9KJp+/Dtkj9aBkQhFwQE+X/rYCKvQ5ULj5+r9kp7uTGa8IraYtMEPmJmdJbcte+c7iuAZcg6Tvbzb3TnJzPBaHKn9MsLu84JEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XkypCtvj4fuEFCAWhn4mfK3b2hlonmzxLHtwleu+YpQ=;
 b=SQXfiVxcCVEx9zs+yPo3mFAI+hVc37i4FUITwvTe9NFrc+bJl5359X45saKsen0TwoW9P2bdNf60lNjs7dYYS5h/efydS4hesWomuVTLUcHMsZH0YORGMgtRFDGNpw2ryXBWB3VuaB2X3r74R0RwjXTJ223EQAfjRAiOnXm9f0HtB+s9FFTTP2eWqec51JmbTufwyPVwDZ7eOJ3YPGdZYGDPPqMNAjkUInnb3qGRHcAndHLjG2NJwG5tTfMx/Ief12B4aHCVijZVtnykvmMe+0ryHFA7DuB1T6FwKKCI2qUCM+R4aZTa3QLWc2H+W02xotRtVjoXpSS+90pywGVqlA==
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=XkypCtvj4fuEFCAWhn4mfK3b2hlonmzxLHtwleu+YpQ=;
 b=wvrQhEjFVNOcBAWmKO+NeiQUw+RVxmows3qiIkfIib89wH6HPKglOabnO/xfY7u+cc2wVv+abUpMMQnngSLVYhQUH7H7eGLRcaHX1q6Xk+WZ/Mxnpct2eEDLrGSvGqlsU4lRUxh8Z/8qjPgE3qB0OvSopysVaKs61Iwzp0JOCIU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum
	<marcel.apfelbaum@gmail.com>
CC: Anthony PERARD <anthony@xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Paul Durrant <paul@xen.org>, "Edgar E . Iglesias"
	<edgar.iglesias@gmail.com>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [QEMU PATCH v10] xen/passthrough: use gsi to map pirq when dom0
 is PVH
Thread-Topic: [QEMU PATCH v10] xen/passthrough: use gsi to map pirq when dom0
 is PVH
Thread-Index: AQHbMBN9zgKXu6QHp0mudGAMtCr+w7K9RysAgBFY+YA=
Date: Fri, 29 Nov 2024 09:11:02 +0000
Message-ID:
 <BL1PR12MB5849E753D856330CB02ACBADE72A2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20241106061418.3655304-1-Jiqian.Chen@amd.com>
 <Zztlvl0m-Oi2XGXq@l14>
In-Reply-To: <Zztlvl0m-Oi2XGXq@l14>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8207.007)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CH3PR12MB7737:EE_
x-ms-office365-filtering-correlation-id: f352c1c2-9cae-4d52-1092-08dd1055bf4a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cXBTZWNOcmt3NjIvNTROVG82TW02Wno0NXB4L0g2OGpZYXEvMjNiaGh2N1Rn?=
 =?utf-8?B?YlJvNDNLZWQvK1lxVGt6MlVJdGEvYkRsc1ZEVTFQTnhreU1PNi9mVFNsTXc3?=
 =?utf-8?B?U0htOEJvVHRPeWVCWXVyVFowQlRMZG5qcGdGWGc3NGVDMU1RR0UwL2RHMDBu?=
 =?utf-8?B?YXl3bWN6Tk5jUUhGZmFYVzRhUVA4R21WUzJ2R0E2Q3d2cXl4akxRNXZkbTF2?=
 =?utf-8?B?QzRiZ05qdU9mdytYRWI2eUoyUEQvcFdtb1dvaHFQVkRUWHFyRkVYcUtkeVVV?=
 =?utf-8?B?enUzMDNYWElqOGl6a1lkTXE2RWEzQ2lSaTZubXFneThVUXBNNWZ1TzdlSTFS?=
 =?utf-8?B?UzIvUXF6L1ZZTHc1TGxGekRqWmd4VWFURTgrNko3bWx4WWZyRUo5SU9Ra1ox?=
 =?utf-8?B?eGplemtXMlVMZGJFYzVxNFBNbk1Ub0ZHZjM5UnVVRnU4TG5oT21aQnplbmx2?=
 =?utf-8?B?VmM3VVp4bWMzWHR4K2NFSHVrZENMRHlwbklJZmluR0QydFVnN09SVGNJcE5U?=
 =?utf-8?B?R3pBUlRtNmFTc0VSUUNHcXRDV2NZcmlOK2huZDVDZU90aWFkejAvTHhDUERl?=
 =?utf-8?B?d3pMdDVhRUlLZGdVV0pod3NUS1llWW5MR204R29rMUJoZU9ZOHRGTkhSb0Rr?=
 =?utf-8?B?dnlMam90dExlQXBQY010ZXRKL25Fbk9sWk85YXhIUTVOWExBeDVXeEFWcGZP?=
 =?utf-8?B?M2M0Qkw0SmROV0RNMkIrYzE1NjVFcDRiTEw2QVBZRVBlMEhXMjMzMEpPZWti?=
 =?utf-8?B?TWVYdkJ0Zmh3QWhUdEk1UjRPQ0dJSnkyNUd2dlpwWFdQc25zSk4waTFjMkl1?=
 =?utf-8?B?bFdwQStoM0ROa3Y4Nll6aFh3b3QvWG9lblBzN3EydmlrUEZyOFhoNExkZTZR?=
 =?utf-8?B?QmNGbms0bU5EOHQ2alE4cGFpTlNTYmZoS0phQ1JpSGNzWVUrMmExd2hWdUw0?=
 =?utf-8?B?SS9JNWJEUklzV055SWpnVDFoTW1jYmVyaGloZVpkVUNjSStQZTdlNFJLamx5?=
 =?utf-8?B?OVZMaUtTQkRNSUNiWkFHYkxUdmN2Ym1qcmE1OFVTSWZPN2lGTThFSWxaRkF6?=
 =?utf-8?B?alN6cTFWVzZyMkdpb2lkZHJTbXl5MkRCTHJLNTVXbXZoKzN6TWJWT2x2bjJo?=
 =?utf-8?B?NkJERm0xQW5OWmdUVlBtS2dOUGZBY0d0Wm5QMXRIMWxWSWtsd0ZUVDBZM1lY?=
 =?utf-8?B?UFdiS1JjYmZRdFNsUW93bmxjeG9VWkVFRmRoTUVWSGNmQW5QalJGRzM2cklG?=
 =?utf-8?B?L2tjN1pXNFpJMWNsUUgvODBia3l5V2pnbjZzWll4Wk1RRnhrVGFFQzYzc01s?=
 =?utf-8?B?cUU1UFlLc0lLdjZpNC9IOWpoNmFVY3hNdnVVUGhNMVRZTWJvd2FqdlVEYVg1?=
 =?utf-8?B?U2RPVmdxOWhDZUlEOG5YZnRoakkwL1ZWa3Y1cFE1YllxUUFMMWhxc2pabTd3?=
 =?utf-8?B?aTM4LzQ5TFdkTFBIdXlBNFFnZlVlMXh4NGkwQXg5N1hUbEFVMFBNbC9UanE2?=
 =?utf-8?B?dm5iWHJ4bzRBV1NId0ZTOVhzbk1uVyttTmYzK3UrWE04aUtHR3M1SkhtT0tF?=
 =?utf-8?B?WmxGS2hJaVBnWFpQcTZvd0tySnRhQnV5OVFOYnpGaDI0Z2lkVG04bVpUc3M2?=
 =?utf-8?B?dWNhUDljRjNwRGZOTEw3M2c0MVd6Mm9KQ1AxbUJrenN3bStEUS9jOFZDMWhZ?=
 =?utf-8?B?WmcxWW1qaDNNQW9TN0wzbjNZMUE5QUtVbDdXajR4dHRhRjFSU3hoWnZSeGQ2?=
 =?utf-8?B?Q3U1a1BQZ3pHbEJsVnBkZWZMT214OXB6dkZCTGVTdnVuTGJtNVczNTFwWmU0?=
 =?utf-8?B?NU0yaDU3VGI0ZDJHSlVuZnRpY1M4ay9EOEthUXhvS25sZjNXYW1PQURoc01G?=
 =?utf-8?B?TkNHbGdlKzVkRHhiRjdtWjN5T0ppYnpDR3hIZmdMd0V5S3c9PQ==?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Q0dBUm1IMnl2R0VMZ3E5ZzBaU0E4TmhrclJ6ZERMVzJwMVBXYWNzbmdkYmNv?=
 =?utf-8?B?VXY2bFNidHpZbUlidGhxN0IrVVNTRWxmNW4vajEwY2Jpa0RrbXpUSkVCM3Bq?=
 =?utf-8?B?OHZRSDZ5ZXQyWndtcmltZmFGTnptOG82VndpTEFwbC91S3N6OUNWY0ljdVU4?=
 =?utf-8?B?UUdJVzVBRHpEWTVJK2xzNmtBWW12VkFpNFdZRlREQmo1Ukg0K2tpRnB0M21I?=
 =?utf-8?B?QXpEZTV1UnNQMnJ1YWE5alpqMDF5bXFKRThTVzlPQ0VVckVBSzlYNm9hd1Bz?=
 =?utf-8?B?bXhsd3FqTUxwZlR4VDJ6UHNqZFF1OGNPMnh3REt0dlFBSWN3ZjdxS1lxYU96?=
 =?utf-8?B?M1BoRVdZeVo5UHkzK0Z4ZjBWaU9wSmxqWk9iRjg5VlJxelpLNFFrQUcvVldO?=
 =?utf-8?B?R1lxU3UvYmRDUi81TnV1L3pRc2kvYXJWQ2ZKbVREVy9mTFpVWlhOKzEvemdI?=
 =?utf-8?B?d0U5SWJON29mbTNuVjllUUJFMTRFRjJ0aDA5cDVBQVJNaC95Y2lUdDhjc3J0?=
 =?utf-8?B?R085SW4wTUpLZG5DckZLM2h4UllWNUZzODlMNk5zTGh6ak1UWmtvR0V4WEdH?=
 =?utf-8?B?TEtRd3ZkRmNNMmJwRVM4YlROVzN2YWZMd3FHRCtjRWUyeGhIMkprS0RIM24y?=
 =?utf-8?B?N2x4dUdsNHdDMlF4VDlFNE9uL29PbzNaKzFRU0o4Z0k2R2R2QzRVT05ZU2p5?=
 =?utf-8?B?UWtWUHAvVmNKUjB0ZGl2b3lucGtleFJ1Zk5xU3BkcmgzbTAwaWtMZ0d1bkl0?=
 =?utf-8?B?UVExUEVPN05WYkZhVTJxOTdvUUJiVDVmUHhwZUF4MUNaSE4zakNza25vZURH?=
 =?utf-8?B?YThDN0ZQaWRrb0VzMjVqclZQN05iamJIbU9YNFEyWGJ3NVdSaHV6dnVwNmJF?=
 =?utf-8?B?aHNRb2NJUlV5MVJqU3Q5SFBkM3IwelhrVXR4RGpuOWhCZXk2cDJTeVUxL29K?=
 =?utf-8?B?aFJTdy9kODJ6eTB5a240RndVVHJENkd1Y3JnMVdCMU1pcEptYTVubjhkTXlN?=
 =?utf-8?B?Y2pUTmZ6RnBPY2w3RzFpUTd3Zk56VHVMOUxoTW03NFN0NFgvOGl2Ni9ENzVz?=
 =?utf-8?B?ZVZ3aEkrdld2WHRYanlvVHlicEVoVWp1NFgxeS9iR3p0WEpUSi8yS1pabUZi?=
 =?utf-8?B?WkpvMWQ1ZEVSdzNuTnoxWWtBWVAyU3QvMzU4Z09QN2FDWERnYTNkRHFMZkhG?=
 =?utf-8?B?UTBHaEZiS1E5cFlZR3N3UEtpRWd2dFBaL1VBOUFTVFZEaHdEUXd4N0UzZ2to?=
 =?utf-8?B?SVpueTZNMDhuNFJubk0ranR3dHdFbXNIbzVFcnZwVmoxMzBwMEV6aEl4SU5U?=
 =?utf-8?B?YlFXY2R2eUd2aVNuZnNTSlJVeXZIT1pPQkFTZndXQkFjL3FHWkh2NU1idlRi?=
 =?utf-8?B?MngzUVh2TFQ2eVV1V21ya0xqQmZrUTNpa3pRbThiRng1N1VkVWsxODdaS0Rt?=
 =?utf-8?B?c0U1a3BPcWp1ZGN5UTdkSGd2M0NEQlZ3RjdNUUM4ZEo1VEUwUDhYQkQ3MHp0?=
 =?utf-8?B?b2Yxam1VcXJzWHl4UTluZU9Ia21RTDQrMGNGVG1tWElPZzRFbExCRUR6c3Fy?=
 =?utf-8?B?eXMrYktMT0F4djc4RmloYTBCWFgrVEFmdWRHQzNjNmhzb0ExZERVN0ZYaDhF?=
 =?utf-8?B?R3U3aXV2M3J1amdBSHI0aEYrZzF2U2hyaFBmdTRsdG1aWlVpOGdURm5mVEM4?=
 =?utf-8?B?Y243UWJJTzU1RXVsZVRBZUZlZXdjV2tEV3dESUhxQkJlQlVuVy9zb2FYUGg3?=
 =?utf-8?B?bkVrOGg0TldVTkFFMUJjR0JvYUsrNDN6WWdGMm1YR0JiNkNWVlh4cEpFOU1x?=
 =?utf-8?B?dG9pN1BFSkpsUHZzQ082cVZrZHNrSzJ6R1pjZTRYYmVCdDFwekRNOFRJQ3NE?=
 =?utf-8?B?MVYzcEg1WjJOZXl5Q1krMFdUMDhWN2s5aWFVNkUzMGViMkZuamVJcmpwQVMy?=
 =?utf-8?B?Vzl0ZmkrVzAvc0dGUHNOYUtZVW1obnFwc1lpK0tYVnJPbEVhc0E5RUQrbGNN?=
 =?utf-8?B?QlNLTXd1YS9mZUwwamZydW5ZZ2dmZzFuTVlweEIzUTZPUGNjbnhQV2ticlJa?=
 =?utf-8?B?NFRYaE1zRTNNVC9ZcHQ4VFB3UmpJNTdWaGg5NTNWS2lXSEZBMlZEL1N4N2xP?=
 =?utf-8?Q?V+r8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <991A566CD3F9554AB237BBD0EFE38CD9@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f352c1c2-9cae-4d52-1092-08dd1055bf4a
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 09:11:02.3535
 (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: XDoh6F6BhyKQYGACxEcoOHlS3QicOaNRe2NEt9D+068gkWHI/onrHYA4HctL+szIlhUlm6PsvBpjFpahIHGVjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7737

T24gMjAyNC8xMS8xOSAwMDowNSwgQW50aG9ueSBQRVJBUkQgd3JvdGU6DQo+IE9uIFdlZCwgTm92
IDA2LCAyMDI0IGF0IDAyOjE0OjE4UE0gKzA4MDAsIEppcWlhbiBDaGVuIHdyb3RlOg0KPj4gSW4g
UFZIIGRvbTAsIHdoZW4gcGFzc3Rocm91Z2ggYSBkZXZpY2UgdG8gZG9tVSwgUUVNVSBjb2RlDQo+
PiB4ZW5fcHRfcmVhbGl6ZS0+eGNfcGh5c2Rldl9tYXBfcGlycSB3YW50cyB0byB1c2UgZ3NpLCBi
dXQgaW4gY3VycmVudCBjb2Rlcw0KPj4gdGhlIGdzaSBudW1iZXIgaXMgZ290IGZyb20gZmlsZSAv
c3lzL2J1cy9wY2kvZGV2aWNlcy88c2JkZj4vaXJxLCB0aGF0IGlzDQo+PiB3cm9uZywgYmVjYXVz
ZSBpcnEgaXMgbm90IGVxdWFsIHdpdGggZ3NpLCB0aGV5IGFyZSBpbiBkaWZmZXJlbnQgc3BhY2Vz
LCBzbw0KPj4gcGlycSBtYXBwaW5nIGZhaWxzLg0KPj4NCj4+IFRvIHNvbHZlIGFib3ZlIHByb2Js
ZW0sIHVzZSBuZXcgaW50ZXJmYWNlIG9mIFhlbiwgeGNfcGNpZGV2X2dldF9nc2kgdG8gZ2V0DQo+
PiBnc2kgYW5kIHVzZSB4Y19waHlzZGV2X21hcF9waXJxX2dzaSB0byBtYXAgcGlycSB3aGVuIGRv
bTAgaXMgUFZILg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hl
bkBhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNv
bT4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0K
PiANCj4gQWNrZWQtYnk6IEFudGhvbnkgUEVSQVJEIDxhbnRob255QHhlbnByb2plY3Qub3JnPg0K
PiANCj4gQnV0LCB0aGlzIGZvbGxvd2luZyBjaGFuZ2UgcHJvYmFibHkgbmVlZHMgYW4gYWNrIGZy
b20gUENJIG1haW50YW5lcnMsDQo+IENDZWQuDQoNCkNvdWxkIHlvdSBwbGVhc2UgYWRkIHNvbWUg
Y29tbWVudHMgb24gYmVsb3cgY2hhbmdlcz8NCg0KPiANCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRl
L2h3L3BjaS9wY2kuaCBiL2luY2x1ZGUvaHcvcGNpL3BjaS5oDQo+PiBpbmRleCBlYjI2Y2FjODEw
OTguLjA3ODA1YWE4YTVmMyAxMDA2NDQNCj4+IC0tLSBhL2luY2x1ZGUvaHcvcGNpL3BjaS5oDQo+
PiArKysgYi9pbmNsdWRlL2h3L3BjaS9wY2kuaA0KPj4gQEAgLTIzLDYgKzIzLDEwIEBAIGV4dGVy
biBib29sIHBjaV9hdmFpbGFibGU7DQo+PiAgI2RlZmluZSBQQ0lfU0xPVF9NQVggICAgICAgICAg
ICAzMg0KPj4gICNkZWZpbmUgUENJX0ZVTkNfTUFYICAgICAgICAgICAgOA0KPj4gIA0KPj4gKyNk
ZWZpbmUgUENJX1NCREYoc2VnLCBidXMsIGRldiwgZnVuYykgXA0KPj4gKyAgICAgICAgICAgICgo
KCh1aW50MzJfdCkoc2VnKSkgPDwgMTYpIHwgXA0KPj4gKyAgICAgICAgICAgIChQQ0lfQlVJTERf
QkRGKGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpKSkNCj4+ICsNCj4+ICAvKiBDbGFzcywgVmVu
ZG9yIGFuZCBEZXZpY2UgSURzIGZyb20gTGludXgncyBwY2lfaWRzLmggKi8NCj4+ICAjaW5jbHVk
ZSAiaHcvcGNpL3BjaV9pZHMuaCINCj4gDQo+IFRoYW5rcywNCj4gDQoNCi0tIA0KQmVzdCByZWdh
cmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:13:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:13:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845797.1261131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGx4M-0004s9-32; Fri, 29 Nov 2024 09:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845797.1261131; Fri, 29 Nov 2024 09:13: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 1tGx4M-0004s2-0Y; Fri, 29 Nov 2024 09:13:46 +0000
Received: by outflank-mailman (input) for mailman id 845797;
 Fri, 29 Nov 2024 09:13: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=Aowa=SY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tGx4K-0004rr-IS
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:13:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3951ced5-ae32-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 10:13: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 AF9E712FC;
 Fri, 29 Nov 2024 01:14:09 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DB1163F58B;
 Fri, 29 Nov 2024 01:13: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: 3951ced5-ae32-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjM5NTFjZWQ1LWFlMzItMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODcxNjIxLjM4MDMzMSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v3 0/5] Prerequisite patches for R82 upstreaming
Date: Fri, 29 Nov 2024 09:12:32 +0000
Message-Id: <20241129091237.3409304-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In this serie I've taken out patches from the R82 branch already in the ML[1]
and some new patches I've done based on the current status of staging that will
not impact the current Armv8-R earlyboot work.

[1] https://patchwork.kernel.org/project/xen-devel/cover/20230626033443.2943270-1-Penny.Zheng@arm.com/

Changes between v2 and v3:
 - New patch
 - changes to previous patch are listed inside them

Luca Fancellu (4):
  common/vmap: Fall back to simple allocator when !HAS_VMAP
  arm/setup: Move MMU specific extern declarations to mmu/setup.h
  xen/arm: Use vmap_contig instead of __vmap where it's possible
  xen/arm: Move setup_frametable_mappings to arm/mmu

Penny Zheng (1):
  xen/arm: Check for Static Heap feature when freeing resources

 xen/arch/arm/alternative.c           |  3 +-
 xen/arch/arm/arm32/mmu/mm.c          |  4 +-
 xen/arch/arm/cpuerrata.c             |  5 +--
 xen/arch/arm/include/asm/mmu/setup.h | 31 ++++++++++++++
 xen/arch/arm/include/asm/setup.h     | 20 +++------
 xen/arch/arm/kernel.c                |  9 ++--
 xen/arch/arm/livepatch.c             |  3 +-
 xen/arch/arm/mm.c                    | 40 ------------------
 xen/arch/arm/mmu/Makefile            |  1 +
 xen/arch/arm/mmu/mm.c                | 61 ++++++++++++++++++++++++++++
 xen/arch/arm/mmu/setup.c             |  8 +++-
 xen/arch/arm/setup.c                 | 27 ++++++------
 xen/common/device-tree/bootfdt.c     |  4 +-
 xen/common/device-tree/bootinfo.c    |  2 +-
 xen/common/page_alloc.c              |  5 +++
 xen/include/xen/bootfdt.h            |  1 -
 xen/include/xen/mm.h                 | 13 ++++++
 xen/include/xen/vmap.h               |  2 +-
 xen/include/xen/xvmalloc.h           | 36 +++++++++++++---
 19 files changed, 184 insertions(+), 91 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mmu/setup.h
 create mode 100644 xen/arch/arm/mmu/mm.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:13:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:13:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845798.1261139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGx4M-0004xc-Go; Fri, 29 Nov 2024 09:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845798.1261139; Fri, 29 Nov 2024 09:13: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 1tGx4M-0004vn-Ar; Fri, 29 Nov 2024 09:13:46 +0000
Received: by outflank-mailman (input) for mailman id 845798;
 Fri, 29 Nov 2024 09:13: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=Aowa=SY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tGx4L-0004rr-88
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:13:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 39e0a437-ae32-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 10:13: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 A8D611424;
 Fri, 29 Nov 2024 01:14:10 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 625203F58B;
 Fri, 29 Nov 2024 01:13: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: 39e0a437-ae32-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjM5ZTBhNDM3LWFlMzItMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODcxNjIxLjg2OTYzMSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 1/5] common/vmap: Fall back to simple allocator when !HAS_VMAP
Date: Fri, 29 Nov 2024 09:12:33 +0000
Message-Id: <20241129091237.3409304-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241129091237.3409304-1-luca.fancellu@arm.com>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When HAS_VMAP is disabled, the xv{malloc,zalloc,...} functions
should fall back to the simple x{malloc,zalloc,...} variant,
implement that because MPU systems won't have virtual memory.

Additionally remove VMAP_VIRT_START from vmap.h guards since
MPU systems won't have it defined.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from v2:
 - Don't protect declarations.
Changes from v1:
 - put back static inline iounmap
 - changed commit message
 - hide not used declaration for system with !HAS_VMAP
 - correct function declared in xvmalloc.h to be static inline
 - prefer '#ifdef' instead of '#if defined' where possible
---
---
 xen/include/xen/vmap.h     |  2 +-
 xen/include/xen/xvmalloc.h | 36 +++++++++++++++++++++++++++++++-----
 2 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index c1dd7ac22f30..26c831757a11 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -5,7 +5,7 @@
  * purpose area (VMAP_DEFAULT) and a livepatch-specific area (VMAP_XEN). The
  * latter is used when loading livepatches and the former for everything else.
  */
-#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
+#ifndef __XEN_VMAP_H__
 #define __XEN_VMAP_H__
 
 #include <xen/mm-frame.h>
diff --git a/xen/include/xen/xvmalloc.h b/xen/include/xen/xvmalloc.h
index 440d85a284bb..e97a30f61e96 100644
--- a/xen/include/xen/xvmalloc.h
+++ b/xen/include/xen/xvmalloc.h
@@ -40,20 +40,46 @@
     ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
                              __alignof__(typeof(*(ptr)))))
 
+#ifdef CONFIG_HAS_VMAP
+
 /* Free any of the above. */
 void xvfree(void *va);
 
+/* Underlying functions */
+void *_xvmalloc(size_t size, unsigned int align);
+void *_xvzalloc(size_t size, unsigned int align);
+void *_xvrealloc(void *va, size_t size, unsigned int align);
+
+#else /* !CONFIG_HAS_VMAP */
+
+static inline void xvfree(void *va)
+{
+    xfree(va);
+}
+
+static inline void *_xvmalloc(size_t size, unsigned int align)
+{
+    return _xmalloc(size, align);
+}
+
+static inline void *_xvzalloc(size_t size, unsigned int align)
+{
+    return _xzalloc(size, align);
+}
+
+static inline void *_xvrealloc(void *va, size_t size, unsigned int align)
+{
+    return _xrealloc(va, size, align);
+}
+
+#endif /* CONFIG_HAS_VMAP */
+
 /* Free an allocation, and zero the pointer to it. */
 #define XVFREE(p) do { \
     xvfree(p);         \
     (p) = NULL;        \
 } while ( false )
 
-/* Underlying functions */
-void *_xvmalloc(size_t size, unsigned int align);
-void *_xvzalloc(size_t size, unsigned int align);
-void *_xvrealloc(void *va, size_t size, unsigned int align);
-
 static inline void *_xvmalloc_array(
     size_t size, unsigned int align, unsigned long num)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:13:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:13:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845799.1261152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGx4N-0005L7-MD; Fri, 29 Nov 2024 09:13:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845799.1261152; Fri, 29 Nov 2024 09:13: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 1tGx4N-0005Kv-Ii; Fri, 29 Nov 2024 09:13:47 +0000
Received: by outflank-mailman (input) for mailman id 845799;
 Fri, 29 Nov 2024 09:13: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=Aowa=SY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tGx4M-0004tF-Em
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:13:46 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3a86a8ad-ae32-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 10:13: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 B97601C00;
 Fri, 29 Nov 2024 01:14:11 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5AD073F58B;
 Fri, 29 Nov 2024 01: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: 3a86a8ad-ae32-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjNhODZhOGFkLWFlMzItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODcxNjIzLjE0NjE5Niwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>
Subject: [PATCH v3 2/5] arm/setup: Move MMU specific extern declarations to mmu/setup.h
Date: Fri, 29 Nov 2024 09:12:34 +0000
Message-Id: <20241129091237.3409304-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241129091237.3409304-1-luca.fancellu@arm.com>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move some extern declarations related to MMU structures and define
from asm/setup.h to asm/mmu/setup.h, in order to increase encapsulation
and allow the MPU part to build, since it has no clue about them.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from v2:
 - No changes
Changes from v1:
 - Moved extern to mmu/setup.h instead of mmu/mm.h
 - moved also pte_of_xenaddr()
---
---
 xen/arch/arm/include/asm/mmu/setup.h | 31 ++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/setup.h     | 20 ++++++------------
 2 files changed, 37 insertions(+), 14 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mmu/setup.h

diff --git a/xen/arch/arm/include/asm/mmu/setup.h b/xen/arch/arm/include/asm/mmu/setup.h
new file mode 100644
index 000000000000..3fe752b04c63
--- /dev/null
+++ b/xen/arch/arm/include/asm/mmu/setup.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef __ARM_MMU_SETUP_H__
+#define __ARM_MMU_SETUP_H__
+
+#include <asm/lpae.h>
+#include <asm/mmu/layout.h>
+
+extern lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
+
+#ifdef CONFIG_ARM_64
+extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
+#endif
+extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
+extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
+extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
+
+/* Find where Xen will be residing at runtime and return a PT entry */
+lpae_t pte_of_xenaddr(vaddr_t va);
+
+#endif /* __ARM_MMU_SETUP_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 64c227d171fc..a5a80d9b477f 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -6,6 +6,12 @@
 #include <xen/bootfdt.h>
 #include <xen/device_tree.h>
 
+#if defined(CONFIG_MMU)
+# include <asm/mmu/setup.h>
+#elif !defined(CONFIG_MPU)
+# error "Unknown memory management layout"
+#endif
+
 #define MAX_FDT_SIZE SZ_2M
 
 struct map_range_data
@@ -65,20 +71,6 @@ 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 lpae_t boot_pgtable[XEN_PT_LPAE_ENTRIES];
-
-#ifdef CONFIG_ARM_64
-extern lpae_t boot_first[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_first_id[XEN_PT_LPAE_ENTRIES];
-#endif
-extern lpae_t boot_second[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_second_id[XEN_PT_LPAE_ENTRIES];
-extern lpae_t boot_third[XEN_PT_LPAE_ENTRIES * XEN_NR_ENTRIES(2)];
-extern lpae_t boot_third_id[XEN_PT_LPAE_ENTRIES];
-
-/* Find where Xen will be residing at runtime and return a PT entry */
-lpae_t pte_of_xenaddr(vaddr_t va);
-
 extern const char __ro_after_init_start[], __ro_after_init_end[];
 
 struct init_info
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:13:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:13:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845800.1261162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGx4O-0005aU-UT; Fri, 29 Nov 2024 09:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845800.1261162; Fri, 29 Nov 2024 09:13: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 1tGx4O-0005aJ-Pn; Fri, 29 Nov 2024 09:13:48 +0000
Received: by outflank-mailman (input) for mailman id 845800;
 Fri, 29 Nov 2024 09:13: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=Aowa=SY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tGx4N-0004tF-Ff
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:13:47 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3b5ece71-ae32-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 10:13: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 26F0A1C01;
 Fri, 29 Nov 2024 01:14:13 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6E26C3F58B;
 Fri, 29 Nov 2024 01:13: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: 3b5ece71-ae32-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjNiNWVjZTcxLWFlMzItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODcxNjI0LjUxNDM2Nywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v3 3/5] xen/arm: Use vmap_contig instead of __vmap where it's possible
Date: Fri, 29 Nov 2024 09:12:35 +0000
Message-Id: <20241129091237.3409304-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241129091237.3409304-1-luca.fancellu@arm.com>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently the arm code uses __vmap function in few parts to map
physically contiguous pages, vmap_contig was introduced recently
and does the same because it's a wrapper for __vmap, so use the
latter instead of the direct __vmap function.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes from v2:
 - Add ack-by Roger
Changes from v1:
 - Add ack-by Julien
---
---
 xen/arch/arm/alternative.c | 3 +--
 xen/arch/arm/cpuerrata.c   | 5 ++---
 xen/arch/arm/kernel.c      | 2 +-
 xen/arch/arm/livepatch.c   | 3 +--
 4 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c
index d99b5070937d..fec7dbd2cde9 100644
--- a/xen/arch/arm/alternative.c
+++ b/xen/arch/arm/alternative.c
@@ -209,8 +209,7 @@ void __init apply_alternatives_all(void)
      * The text and inittext section are read-only. So re-map Xen to
      * be able to patch the code.
      */
-    xenmap = __vmap(&xen_mfn, 1U << xen_order, 1, 1, PAGE_HYPERVISOR,
-                    VMAP_DEFAULT);
+    xenmap = vmap_contig(xen_mfn, 1U << xen_order);
     /* Re-mapping Xen is not expected to fail during boot. */
     BUG_ON(!xenmap);
 
diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
index eef9c0ea0e21..17cf134f1b0d 100644
--- a/xen/arch/arm/cpuerrata.c
+++ b/xen/arch/arm/cpuerrata.c
@@ -61,9 +61,8 @@ static bool copy_hyp_vect_bpi(unsigned int slot, const char *hyp_vec_start,
      * Vectors are part of the text that are mapped read-only. So re-map
      * the vector table to be able to update vectors.
      */
-    dst_remapped = __vmap(&dst_mfn,
-                          1UL << get_order_from_bytes(VECTOR_TABLE_SIZE),
-                          1, 1, PAGE_HYPERVISOR, VMAP_DEFAULT);
+    dst_remapped = vmap_contig(dst_mfn,
+                               1UL << get_order_from_bytes(VECTOR_TABLE_SIZE));
     if ( !dst_remapped )
         return false;
 
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 669d143cee1b..293d7efaed9c 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -211,7 +211,7 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
         return -ENOMEM;
     }
     mfn = page_to_mfn(pages);
-    output = __vmap(&mfn, 1 << kernel_order_out, 1, 1, PAGE_HYPERVISOR, VMAP_DEFAULT);
+    output = vmap_contig(mfn, 1 << kernel_order_out);
 
     rc = perform_gunzip(output, input, size);
     clean_dcache_va_range(output, output_size);
diff --git a/xen/arch/arm/livepatch.c b/xen/arch/arm/livepatch.c
index 037746d9528d..3805b2974663 100644
--- a/xen/arch/arm/livepatch.c
+++ b/xen/arch/arm/livepatch.c
@@ -39,8 +39,7 @@ int arch_livepatch_quiesce(void)
      * The text section is read-only. So re-map Xen to be able to patch
      * the code.
      */
-    vmap_of_xen_text = __vmap(&text_mfn, 1U << text_order, 1, 1, PAGE_HYPERVISOR,
-                              VMAP_DEFAULT);
+    vmap_of_xen_text = vmap_contig(text_mfn, 1U << text_order);
 
     if ( !vmap_of_xen_text )
     {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:13:50 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:13:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845801.1261172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGx4Q-0005rb-7E; Fri, 29 Nov 2024 09:13:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845801.1261172; Fri, 29 Nov 2024 09:13: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 1tGx4Q-0005r0-1d; Fri, 29 Nov 2024 09:13:50 +0000
Received: by outflank-mailman (input) for mailman id 845801;
 Fri, 29 Nov 2024 09:13: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=Aowa=SY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tGx4O-0004rr-EO
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:13:48 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3c4ba90b-ae32-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 10:13: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 BCCF112FC;
 Fri, 29 Nov 2024 01:14:14 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CFF783F58B;
 Fri, 29 Nov 2024 01:13: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: 3c4ba90b-ae32-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjNjNGJhOTBiLWFlMzItMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODcxNjI2LjA2ODgzMSwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Penny Zheng <Penny.Zheng@arm.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>,
	Jan Beulich <jbeulich@suse.com>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v3 4/5] xen/arm: Check for Static Heap feature when freeing resources
Date: Fri, 29 Nov 2024 09:12:36 +0000
Message-Id: <20241129091237.3409304-5-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241129091237.3409304-1-luca.fancellu@arm.com>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

If the Xen heap is statically configured in Device Tree, its size is
definite, so only the defined memory shall be given to the boot
allocator. Have a check where init_domheap_pages() is called
which takes into account if static heap feature is used.

Extract static_heap flag from init data bootinfo, as it will be needed
after destroying the init data section.

Introduce a new helper using_static_heap() to tell whether Xen Heap
is statically configured in the Device Tree.

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>
---
Changes from v2:
 - Change xen_is_using_staticheap() to using_static_heap()
 - Move declaration of static_heap and using_static_heap() to xen/mm.h
 - Reprased first part of the commit message and title
Changes from v1:
 - moved static_heap to common/page_alloc.c
 - protect static_heap access with CONFIG_STATIC_MEMORY
 - update comment in arm/kernel.c kernel_decompress()
---
---
 xen/arch/arm/arm32/mmu/mm.c       |  4 ++--
 xen/arch/arm/kernel.c             |  7 ++++---
 xen/arch/arm/mmu/setup.c          |  8 ++++++--
 xen/arch/arm/setup.c              | 27 ++++++++++++++-------------
 xen/common/device-tree/bootfdt.c  |  4 +++-
 xen/common/device-tree/bootinfo.c |  2 +-
 xen/common/page_alloc.c           |  5 +++++
 xen/include/xen/bootfdt.h         |  1 -
 xen/include/xen/mm.h              | 13 +++++++++++++
 9 files changed, 48 insertions(+), 23 deletions(-)

diff --git a/xen/arch/arm/arm32/mmu/mm.c b/xen/arch/arm/arm32/mmu/mm.c
index 063611412be0..905565e1b528 100644
--- a/xen/arch/arm/arm32/mmu/mm.c
+++ b/xen/arch/arm/arm32/mmu/mm.c
@@ -199,7 +199,7 @@ void __init setup_mm(void)
 
     total_pages = ram_size >> PAGE_SHIFT;
 
-    if ( bootinfo.static_heap )
+    if ( using_static_heap() )
     {
         const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
 
@@ -246,7 +246,7 @@ void __init setup_mm(void)
 
     do
     {
-        e = bootinfo.static_heap ?
+        e = using_static_heap() ?
             fit_xenheap_in_static_heap(pfn_to_paddr(xenheap_pages), MB(32)) :
             consider_modules(ram_start, ram_end,
                              pfn_to_paddr(xenheap_pages),
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 293d7efaed9c..5dc367951113 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -244,10 +244,11 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
     size += offset;
 
     /*
-     * Free the original kernel, update the pointers to the
-     * decompressed kernel
+     * In case Xen is not using the static heap feature, free the original
+     * kernel, update the pointers to the decompressed kernel
      */
-    fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
+    if ( !using_static_heap() )
+        fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
 
     return 0;
 }
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 9664e85ee6c0..36d0efd16c29 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -341,8 +341,12 @@ void free_init_memory(void)
     if ( rc )
         panic("Unable to remove the init section (rc = %d)\n", rc);
 
-    init_domheap_pages(pa, pa + len);
-    printk("Freed %ldkB init memory.\n", (long)(__init_end-__init_begin)>>10);
+    if ( !using_static_heap() )
+    {
+        init_domheap_pages(pa, pa + len);
+        printk("Freed %ldkB init memory.\n",
+               (long)(__init_end-__init_begin) >> 10);
+    }
 }
 
 /**
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 71ebaa77ca94..46689d13072e 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -206,24 +206,25 @@ void __init discard_initial_modules(void)
     struct bootmodules *mi = &bootinfo.modules;
     int i;
 
-    for ( i = 0; i < mi->nr_mods; i++ )
+    if ( !using_static_heap() )
     {
-        paddr_t s = mi->module[i].start;
-        paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
-
-        if ( mi->module[i].kind == BOOTMOD_XEN )
-            continue;
+        for ( i = 0; i < mi->nr_mods; i++ )
+        {
+            paddr_t s = mi->module[i].start;
+            paddr_t e = s + PAGE_ALIGN(mi->module[i].size);
 
-        if ( !mfn_valid(maddr_to_mfn(s)) ||
-             !mfn_valid(maddr_to_mfn(e)) )
-            continue;
+            if ( mi->module[i].kind == BOOTMOD_XEN )
+                continue;
 
-        fw_unreserved_regions(s, e, init_domheap_pages, 0);
-    }
+            if ( !mfn_valid(maddr_to_mfn(s)) ||
+                 !mfn_valid(maddr_to_mfn(e)) )
+                continue;
 
-    mi->nr_mods = 0;
+            fw_unreserved_regions(s, e, init_domheap_pages, 0);
+        }
 
-    remove_early_mappings();
+        mi->nr_mods = 0;
+    }
 }
 
 /* Relocate the FDT in Xen heap */
diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c
index 480644b4b421..4ba283de2da9 100644
--- a/xen/common/device-tree/bootfdt.c
+++ b/xen/common/device-tree/bootfdt.c
@@ -403,7 +403,9 @@ static int __init process_chosen_node(const void *fdt, int node,
         if ( rc )
             return rc;
 
-        bootinfo.static_heap = true;
+#ifdef CONFIG_STATIC_MEMORY
+        static_heap = true;
+#endif
     }
 
     printk("Checking for initrd in /chosen\n");
diff --git a/xen/common/device-tree/bootinfo.c b/xen/common/device-tree/bootinfo.c
index 3738eb57ff52..04cd90d2ab4b 100644
--- a/xen/common/device-tree/bootinfo.c
+++ b/xen/common/device-tree/bootinfo.c
@@ -388,7 +388,7 @@ void __init populate_boot_allocator(void)
     const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
     paddr_t s, e;
 
-    if ( bootinfo.static_heap )
+    if ( using_static_heap() )
     {
         for ( i = 0 ; i < reserved_mem->nr_banks; i++ )
         {
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 92abed6514b4..e614984a129b 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -165,6 +165,11 @@
 #define PGT_TYPE_INFO_INITIALIZER 0
 #endif
 
+#ifdef CONFIG_STATIC_MEMORY
+/* Flag saved when Xen is using the static heap feature (xen,static-heap) */
+bool __ro_after_init static_heap;
+#endif
+
 unsigned long __read_mostly max_page;
 unsigned long __read_mostly total_pages;
 paddr_t __ro_after_init mem_hotplug;
diff --git a/xen/include/xen/bootfdt.h b/xen/include/xen/bootfdt.h
index 16fa05f38f38..ba24bf8fd574 100644
--- a/xen/include/xen/bootfdt.h
+++ b/xen/include/xen/bootfdt.h
@@ -132,7 +132,6 @@ struct bootinfo {
 #ifdef CONFIG_STATIC_SHM
     struct shared_meminfo shmem;
 #endif
-    bool static_heap;
 };
 
 #ifdef CONFIG_ACPI
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index d7dcf0f06330..65ce6818ba2a 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -72,6 +72,19 @@
 
 struct page_info;
 
+#ifdef CONFIG_STATIC_MEMORY
+extern bool static_heap;
+#endif
+
+static inline bool using_static_heap(void)
+{
+#ifdef CONFIG_STATIC_MEMORY
+    return static_heap;
+#else
+    return false;
+#endif
+}
+
 void put_page(struct page_info *page);
 bool __must_check get_page(struct page_info *page,
                            const struct domain *domain);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:13:52 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:13:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845803.1261182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGx4S-0006A9-DQ; Fri, 29 Nov 2024 09:13:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845803.1261182; Fri, 29 Nov 2024 09:13: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 1tGx4S-00069y-AI; Fri, 29 Nov 2024 09:13:52 +0000
Received: by outflank-mailman (input) for mailman id 845803;
 Fri, 29 Nov 2024 09:13: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=Aowa=SY=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tGx4Q-0004tF-8g
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:13:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3cf176b8-ae32-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 10:13: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 CFAF41424;
 Fri, 29 Nov 2024 01:14:15 -0800 (PST)
Received: from e125770.cambridge.arm.com (e125770.arm.com [10.1.199.43])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 70AE93F58B;
 Fri, 29 Nov 2024 01:13: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: 3cf176b8-ae32-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjIxNy4xNDAuMTEwLjE3MiIsImhlbG8iOiJmb3NzLmFybS5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjNjZjE3NmI4LWFlMzItMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODcxNjI3LjEzMjUwMywic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
From: Luca Fancellu <luca.fancellu@arm.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>
Subject: [PATCH v3 5/5] xen/arm: Move setup_frametable_mappings to arm/mmu
Date: Fri, 29 Nov 2024 09:12:37 +0000
Message-Id: <20241129091237.3409304-6-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20241129091237.3409304-1-luca.fancellu@arm.com>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move the current setup_frametable_mappings implementation to
arm/mmu under a new file mm.c, this implementation depends on
virtual memory and won't be used as it is for MPU systems.

Take the occasion to fix code style issues related to the line
length.

Moved also frametable_virt_end since it is used only on MMU
systems.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes to v2:
 - New patch
---
---
 xen/arch/arm/mm.c         | 40 -------------------------
 xen/arch/arm/mmu/Makefile |  1 +
 xen/arch/arm/mmu/mm.c     | 61 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 62 insertions(+), 40 deletions(-)
 create mode 100644 xen/arch/arm/mmu/mm.c

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index def939172cc5..a56e20ba2bdc 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -22,7 +22,6 @@
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
 
 unsigned long frametable_base_pdx __read_mostly;
-unsigned long frametable_virt_end __read_mostly;
 
 void flush_page_to_ram(unsigned long mfn, bool sync_icache)
 {
@@ -43,45 +42,6 @@ void flush_page_to_ram(unsigned long mfn, bool sync_icache)
         invalidate_icache();
 }
 
-/* Map a frame table to cover physical addresses ps through pe */
-void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
-{
-    unsigned long nr_pdxs = mfn_to_pdx(mfn_add(maddr_to_mfn(pe), -1)) -
-                            mfn_to_pdx(maddr_to_mfn(ps)) + 1;
-    unsigned long frametable_size = nr_pdxs * sizeof(struct page_info);
-    mfn_t base_mfn;
-    const unsigned long mapping_size = frametable_size < MB(32) ? MB(2) : MB(32);
-    int rc;
-
-    /*
-     * The size of paddr_t should be sufficient for the complete range of
-     * physical address.
-     */
-    BUILD_BUG_ON((sizeof(paddr_t) * BITS_PER_BYTE) < PADDR_BITS);
-    BUILD_BUG_ON(sizeof(struct page_info) != PAGE_INFO_SIZE);
-
-    if ( frametable_size > FRAMETABLE_SIZE )
-        panic("The frametable cannot cover the physical region %#"PRIpaddr" - %#"PRIpaddr"\n",
-              ps, pe);
-
-    frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ps));
-    /* Round up to 2M or 32M boundary, as appropriate. */
-    frametable_size = ROUNDUP(frametable_size, mapping_size);
-    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 32<<(20-12));
-
-    rc = map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
-                          frametable_size >> PAGE_SHIFT,
-                          PAGE_HYPERVISOR_RW | _PAGE_BLOCK);
-    if ( rc )
-        panic("Unable to setup the frametable mappings.\n");
-
-    memset(&frame_table[0], 0, nr_pdxs * sizeof(struct page_info));
-    memset(&frame_table[nr_pdxs], -1,
-           frametable_size - (nr_pdxs * sizeof(struct page_info)));
-
-    frametable_virt_end = FRAMETABLE_VIRT_START + (nr_pdxs * sizeof(struct page_info));
-}
-
 int steal_page(
     struct domain *d, struct page_info *page, unsigned int memflags)
 {
diff --git a/xen/arch/arm/mmu/Makefile b/xen/arch/arm/mmu/Makefile
index 2cb44b857dd2..1c89602947de 100644
--- a/xen/arch/arm/mmu/Makefile
+++ b/xen/arch/arm/mmu/Makefile
@@ -1,3 +1,4 @@
+obj-y += mm.o
 obj-y += p2m.o
 obj-y += pt.o
 obj-y += setup.o
diff --git a/xen/arch/arm/mmu/mm.c b/xen/arch/arm/mmu/mm.c
new file mode 100644
index 000000000000..aefec908b7f2
--- /dev/null
+++ b/xen/arch/arm/mmu/mm.c
@@ -0,0 +1,61 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/macros.h>
+#include <xen/mm.h>
+#include <xen/mm-frame.h>
+#include <xen/pdx.h>
+#include <xen/string.h>
+
+unsigned long frametable_virt_end __read_mostly;
+
+/* Map a frame table to cover physical addresses ps through pe */
+void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    unsigned long nr_pdxs = mfn_to_pdx(mfn_add(maddr_to_mfn(pe), -1)) -
+                            mfn_to_pdx(maddr_to_mfn(ps)) + 1;
+    unsigned long frametable_size = nr_pdxs * sizeof(struct page_info);
+    mfn_t base_mfn;
+    const unsigned long mapping_size = frametable_size < MB(32) ? MB(2)
+                                                                : MB(32);
+    int rc;
+
+    /*
+     * The size of paddr_t should be sufficient for the complete range of
+     * physical address.
+     */
+    BUILD_BUG_ON((sizeof(paddr_t) * BITS_PER_BYTE) < PADDR_BITS);
+    BUILD_BUG_ON(sizeof(struct page_info) != PAGE_INFO_SIZE);
+
+    if ( frametable_size > FRAMETABLE_SIZE )
+        panic("The frametable cannot cover the physical region %#"PRIpaddr" - %#"PRIpaddr"\n",
+              ps, pe);
+
+    frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ps));
+    /* Round up to 2M or 32M boundary, as appropriate. */
+    frametable_size = ROUNDUP(frametable_size, mapping_size);
+    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 32<<(20-12));
+
+    rc = map_pages_to_xen(FRAMETABLE_VIRT_START, base_mfn,
+                          frametable_size >> PAGE_SHIFT,
+                          PAGE_HYPERVISOR_RW | _PAGE_BLOCK);
+    if ( rc )
+        panic("Unable to setup the frametable mappings.\n");
+
+    memset(&frame_table[0], 0, nr_pdxs * sizeof(struct page_info));
+    memset(&frame_table[nr_pdxs], -1,
+           frametable_size - (nr_pdxs * sizeof(struct page_info)));
+
+    frametable_virt_end = FRAMETABLE_VIRT_START + (nr_pdxs *
+                                                   sizeof(struct page_info));
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:33:19 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:33:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845866.1261191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGxNA-00025q-3j; Fri, 29 Nov 2024 09:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845866.1261191; Fri, 29 Nov 2024 09: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 1tGxNA-00025j-0x; Fri, 29 Nov 2024 09:33:12 +0000
Received: by outflank-mailman (input) for mailman id 845866;
 Fri, 29 Nov 2024 09:33: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=+lhP=SY=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tGxN9-00025d-Dl
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:33:11 +0000
Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com
 [2607:f8b0:4864:20::d36])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f05da3a6-ae34-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 10:33:07 +0100 (CET)
Received: by mail-io1-xd36.google.com with SMTP id
 ca18e2360f4ac-841acc8151aso51793839f.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 01:33: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: f05da3a6-ae34-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpkMzYiLCJoZWxvIjoibWFpbC1pbzEteGQzNi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6ImYwNWRhM2E2LWFlMzQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODcyNzg3LjM4MjA1NSwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732872786; x=1733477586; 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=K1TvX848ZthzGk7lUVCMo/coR5b6IZQCoXBAdJLNAJY=;
        b=d5j/+Q/RlgebzZndBXGFX0/xzFdnwCgVkircXWQGtXAKBMn6EqpdkHmtGQfylhpdgr
         acRK6Pr85mNxLynk2HExzZBJS+gC3QZFAe2ihgsPZYSKCh6rgXtXKdB0YG9yEg5WXWrP
         qIeTseiwulHvkVmjaJ8tdrwpF6zzhr2gUZ7xJ5n+HbIZb3ZzBFfveGIDyuW4MurxXuGd
         51RW29FzhFZXm/I3rmCsL2KQ3/3xsFs8GuYaexT9SnYhcnFprQ8utodzuhjqojavcFMc
         4mXWpGXTggaJonGxfrOoJfMsy7TchbPQM9D0XRx2dAjhnNFGyLzzHfOKjPpe5Kgulboa
         hN3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732872786; x=1733477586;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=K1TvX848ZthzGk7lUVCMo/coR5b6IZQCoXBAdJLNAJY=;
        b=M0QUn6bChduIEKJplk4flziB/4i/NPjrB5105MU7U1Dsyd4yM1+r7KiIhyOIznq+S/
         Mf5xV3aTnG5NiWVSRrq9c96t4DyXM1X8hFw8SwneKkUWqyM8hW7NmuSrUJv48SZFqRB8
         h79PlfcopbuSA/HXjCxsccSCvlBMt01v7QT1fc1Skd/EyhtE9y1UrSdECZndSue3DiGA
         pd1dtwm6gIAT2yxpF829SVSfv8uD0G0njcP9xxIKe0T+oo7myTNOOORCZf5aovzj6MyI
         1HovLj/tXggW58Sv0Q86XALLUghkmlQ1bkaYQ+ra5eEnp50iZEAQ+K4j7zf/DRTwQ7Yi
         Q1xg==
X-Forwarded-Encrypted: i=1; AJvYcCXg0nq5wLx3AOKW/H+weq9QMqZeqH3yn5fn6w0QbIbLLtq7A2Sz6WJ2xnmwDQB9eplYXrbedEqYkOw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YytKy8hxJxcuA2PGooJDKt6rzVWg6gatHncnKsF0w923hrBtkBT
	vz4cawTnnRKkS0qkOebtzZwcoDON0+hl3fsFx+LYPFxvpe99GgoNh1XQ/kcBeWuMM9gtA9GCjER
	eCHF7NV/AUY5nfM9z1TZ7tytoiz1dxRd4Swg6FDmKBhRtU688aY0=
X-Gm-Gg: ASbGncsT0I5P0Lnx1tttp8UebN3knQLbNYPWGxG7cg37DUVshHYz64Y6WSFmbxZYsQp
	keIu/8PiMrNW1lOjxVNOmCkMa04vcZGq9
X-Google-Smtp-Source: AGHT+IEOrZMQrBPwTD3IlKeBxNR0OFBb/s2PYtrS9Riw1xOVUTK+77XPPic2buZqcTQWsNWnjJzcLYWKk5Y2UJC3Is0=
X-Received: by 2002:a05:6602:1513:b0:841:8d66:8aea with SMTP id
 ca18e2360f4ac-843ece805d0mr1244204539f.2.1732872786104; Fri, 29 Nov 2024
 01:33:06 -0800 (PST)
MIME-Version: 1.0
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-9-carlo.nonato@minervasys.tech> <29e69d97-41ef-4ebc-a68e-0253e230f6f4@suse.com>
In-Reply-To: <29e69d97-41ef-4ebc-a68e-0253e230f6f4@suse.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Fri, 29 Nov 2024 10:32:54 +0100
Message-ID: <CAG+AhRWWK6e3KJ66v5wvowTzOvyJRaECpkXYpSzMa9+83ea0eA@mail.gmail.com>
Subject: Re: [PATCH v10 08/12] xen/page_alloc: introduce preserved page flags macro
To: Jan Beulich <jbeulich@suse.com>
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Thu, Nov 28, 2024 at 12:05=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 19.11.2024 15:13, Carlo Nonato wrote:
> > PGC_static, PGC_extra and PGC_broken need to be preserved when assignin=
g a
> > page. Define a new macro that groups those flags and use it instead of =
or'ing
> > every time.
> >
> > To make preserved flags even more meaningful, they are kept also when
> > switching state in mark_page_free().
> > Enforce the removal of PGC_extra before freeing domain pages as this is
> > considered an error and can cause ASSERT violations.
> >
> > Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> > ---
> > v10:
> > - fixed commit message
> > v9:
> > - add PGC_broken to PGC_preserved
> > - clear PGC_extra in alloc_domheap_pages() only if MEMF_no_refcount is =
set
> > v8:
> > - fixed PGC_extra ASSERT fail in alloc_domheap_pages() by removing PGC_=
extra
> >   before freeing
> > v7:
> > - PGC_preserved used also in mark_page_free()
> > v6:
> > - preserved_flags renamed to PGC_preserved
> > - PGC_preserved is used only in assign_pages()
> > v5:
> > - new patch
> > ---
> >  xen/common/page_alloc.c | 19 ++++++++++++++-----
> >  1 file changed, 14 insertions(+), 5 deletions(-)
> >
> > diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> > index 7b911b5ed9..34cd473150 100644
> > --- a/xen/common/page_alloc.c
> > +++ b/xen/common/page_alloc.c
> > @@ -160,6 +160,7 @@
> >  #endif
> >
> >  #define PGC_no_buddy_merge PGC_static
> > +#define PGC_preserved (PGC_extra | PGC_static | PGC_broken)
> >
> >  #ifndef PGT_TYPE_INFO_INITIALIZER
> >  #define PGT_TYPE_INFO_INITIALIZER 0
> > @@ -1427,12 +1428,11 @@ static bool mark_page_free(struct page_info *pg=
, mfn_t mfn)
> >      {
> >      case PGC_state_inuse:
> >          BUG_ON(pg->count_info & PGC_broken);
> > -        pg->count_info =3D PGC_state_free;
> > +        pg->count_info =3D PGC_state_free | (pg->count_info & PGC_pres=
erved);
> >          break;
>
> PGC_extra doesn't want preserving here. Since it's mark_page_free(), and
> since PGC_extra is removed before freeing, the state change is apparently
> fine. But an assertion may want adding, for documentation purposes if
> nothing else.
>
> Alternatively it may make sense to indeed exclude PGC_extra here. In fact
> PGC_static doesn't need using here either, as unprepare_staticmem_pages()
> will explicitly set it again anyway.
>
> Hence I wonder whether the change here really is necessary (one will then
> be needed in the next patch aiui, when PGC_colored is introduced). Which
> would then eliminate the need for the final two hunks of the patch, I
> think.
>
> >      case PGC_state_offlining:
> > -        pg->count_info =3D (pg->count_info & PGC_broken) |
> > -                         PGC_state_offlined;
> > +        pg->count_info =3D (pg->count_info & PGC_preserved) | PGC_stat=
e_offlined;
> >          pg_offlined =3D true;
> >          break;
>
> I'm similarly unconvinced that anything other than PGC_broken (and
> subsequently perhaps PGC_colored) would need preserving here.

Yes, we (re)checked the code and also believe that the introduction of
PGC_preserved is generating more confusion (and code) then the actual logic=
al
help it provides.

We'll remove this patch and integrate PGC_colored explicitly in the flags t=
o
be preserved. This avoid the clumsy logic of preserving something (extra)
when it's not needed and then handling the special case to remove it
explicitly.
Basically my goal is to go back to v4 where this patch didn't exist.

> Jan

Thanks.
- Carlo


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 09:37:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 09:37:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845875.1261202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGxRC-0002fx-J9; Fri, 29 Nov 2024 09:37:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845875.1261202; Fri, 29 Nov 2024 09: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 1tGxRC-0002fq-GO; Fri, 29 Nov 2024 09:37:22 +0000
Received: by outflank-mailman (input) for mailman id 845875;
 Fri, 29 Nov 2024 09:37: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=+lhP=SY=minervasys.tech=carlo.nonato@srs-se1.protection.inumbo.net>)
 id 1tGxRB-0002fi-Lm
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 09:37:21 +0000
Received: from mail-io1-xd35.google.com (mail-io1-xd35.google.com
 [2607:f8b0:4864:20::d35])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85c041b9-ae35-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 10:37:18 +0100 (CET)
Received: by mail-io1-xd35.google.com with SMTP id
 ca18e2360f4ac-843d8679e0cso55034339f.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 01:37: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: 85c041b9-ae35-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjI2MDc6ZjhiMDo0ODY0OjIwOjpkMzUiLCJoZWxvIjoibWFpbC1pbzEteGQzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijg1YzA0MWI5LWFlMzUtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODczMDM4LjAzOTQ1NCwic2VuZGVyIjoiY2FybG8ubm9uYXRvQG1pbmVydmFzeXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=minervasys-tech.20230601.gappssmtp.com; s=20230601; t=1732873037; x=1733477837; 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=j5wWp+R6OZpResArPiZ0kV1o1jzeqJc9Ee7t7eGQkuQ=;
        b=t/MXRadanorUmcYenhpEBQZZOGkihGbHEbj6hrUkww3NN/8Db4xl9YMX2REb7gbtvt
         FkKQh/wBGlhfXvtSx+fp7DeUHhwc0N1c5LtJKN84DuiPOEWA2wbnQA8AP4CLSG6/nU+n
         AIJ8V5A0wkS4PPPtamZbaRsOwJgNJRKq6kT9AM8yzALvzosjbYYQhaueS3tqDDIZbfAR
         LjMMCxlvg/jjVUaZiWjimE7yssCvoIhKIO73yChS4PwGBhA3OQG/vTP5G4wuJEK3EH8Z
         Qev5zorHx9HHEM+zPP/c2aIfJ5iLnJ+mmwvnlDelgq5n96Ktaiuf9NXcKtvTI/4VhyXy
         Tuqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732873037; x=1733477837;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=j5wWp+R6OZpResArPiZ0kV1o1jzeqJc9Ee7t7eGQkuQ=;
        b=sjUKM4toMuAPCi4uAcnISMVm87ds+3lbeofxxlQaBXOViRbZAqZGXSRVvTh/YABLjP
         cvEuLHKMp1UxbVCxMl2A3s3GJQ0Bi5c2Neb0rwRQaJzBvuD69IxvvMW610OdNxhk/IF/
         dsOlnG2dMKuoEMg97irqFsYS9iEw+NFz9dpqLtlrdB6HPnISWKESyXhBQbj0MqsWINT3
         Tc/CONMbqpI043GgFL+Pl4rHq0K3YP2oH5ocEnMSJHwspvL830Rx0gP/hQmJmmjlnPSU
         bvO6kMGUgycPjdfYrH2M46iAzhdmwtNWs5MKZEgDWFgFHGeN9Gf9LE+54Vb2LPUQ46Eq
         wU+w==
X-Forwarded-Encrypted: i=1; AJvYcCWDTp6cvA/u8hczTQwgC4WheoV4puNM9MUN5Ai9wy8ijabC1Qee2cxjEhbVD8kbdboIxXYE0QU6dZA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwSqtl7Cpln88DF2z9dX2Sajde4MqD2NjODqEgeYCEeMapfoMIa
	LIopWlctH5A4bU/iHMKH6MbdRIHRe4IwhO5mzHpxv2L4FHETxA5bGJPIcETXaQzKJjUkWNqtL0q
	U5eMNv2XqOw7t8UZeyHeWVqZqdIx9bN3n50zKvdpdHMSPqVx/C2Y=
X-Gm-Gg: ASbGnctUBIx/Dd165khNVgasPqv3CBqkhbMqP6gpPyOIJjV+JY1pbmjDvfTUYehgmW+
	0g4u7g1GFHzLFTTBUT3S5t5O731sPE3Oo
X-Google-Smtp-Source: AGHT+IFA9p1AKj5FG3kc1eQdLVQtgN38ZmSc+LHDql+RBfM1KeIAFti/Lshn/zEz97xo5cPett7z6QtuWRph+wq73aI=
X-Received: by 2002:a05:6602:340b:b0:841:950b:3871 with SMTP id
 ca18e2360f4ac-843ecfd398emr1300245739f.4.1732873036675; Fri, 29 Nov 2024
 01:37:16 -0800 (PST)
MIME-Version: 1.0
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-10-carlo.nonato@minervasys.tech> <5f876671-4624-4ec6-957e-d4a7802fb46a@suse.com>
In-Reply-To: <5f876671-4624-4ec6-957e-d4a7802fb46a@suse.com>
From: Carlo Nonato <carlo.nonato@minervasys.tech>
Date: Fri, 29 Nov 2024 10:37:06 +0100
Message-ID: <CAG+AhRWAwkwd6w8+TOp8k+9pxj9=JvEjwNode_HrgdwMZHE5Qg@mail.gmail.com>
Subject: Re: [PATCH v10 09/12] xen: add cache coloring allocator for domains
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, andrea.bastoni@minervasys.tech, 
	marco.solieri@minervasys.tech, Andrew Cooper <andrew.cooper3@citrix.com>, 
	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

Hi Jan,

On Thu, Nov 28, 2024 at 12:43=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 19.11.2024 15:13, Carlo Nonato wrote:
> > --- a/docs/misc/xen-command-line.pandoc
> > +++ b/docs/misc/xen-command-line.pandoc
> > @@ -270,6 +270,20 @@ and not running softirqs. Reduce this if softirqs =
are not being run frequently
> >  enough. Setting this to a high value may cause boot failure, particula=
rly if
> >  the NMI watchdog is also enabled.
> >
> > +### buddy-alloc-size (arm64)
> > +> `=3D <size>`
> > +
> > +> Default: `64M`
> > +
> > +Amount of memory reserved for the buddy allocator when colored allocat=
or is
> > +active. This option is available only when `CONFIG_LLC_COLORING` is en=
abled.
> > +The colored allocator is meant as an alternative to the buddy allocato=
r,
> > +because its allocation policy is by definition incompatible with the g=
eneric
> > +one. Since the Xen heap systems is not colored yet, we need to support=
 the
> > +coexistence of the two allocators for now. This parameter, which is op=
tional
> > +and for expert only, it's used to set the amount of memory reserved to=
 the
> > +buddy allocator.
>
> Every time I see this, and I further see the title of patch 12, I'm confu=
sed,
> expecting that what's being said here needs adjusting (or even undoing) t=
here.
> The issue is that patch 12's title says just "Xen" when, if I'm not mista=
ken,
> it really only means the Xen image.

I'll change the patch 12 title to reflect what you said.

> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -537,4 +537,12 @@ config LLC_COLORS_ORDER
> >         The default value corresponds to an 8 MiB 16-ways LLC, which sh=
ould be
> >         more than what's needed in the general case.
> >
> > +config BUDDY_ALLOCATOR_SIZE
> > +     int "Buddy allocator reserved memory size (MiB)" if LLC_COLORING
> > +     default "0" if !LLC_COLORING
> > +     default "64"
> > +     help
> > +       Amount of memory reserved for the buddy allocator to serve Xen =
heap,
> > +       working alongside the colored one.
>
> As the description has nothing in this regard: Why again is it that this
> can't simply have "depends on LLC_COLORING"? Even if it ends up with a
> value of 0, in an LLC_COLORING=3Dn (or LLC_COLORING entirely absent) .con=
fig
> I'd find it at least irritating to see this setting to be there.

Quoting you from v8 (6 months ago, a lot of time ago I know, link here
https://patchew.org/Xen/20240502165533.319988-1-carlo.nonato@minervasys.tec=
h/20240502165533.319988-10-carlo.nonato@minervasys.tech/#5c16f53f-3bb0-49d6=
-b174-b0e8c6ceff4c@suse.com):
> > +/* Memory required for buddy allocator to work with colored one */
> > +#ifdef CONFIG_LLC_COLORING
> > +static unsigned long __initdata buddy_alloc_size =3D
> > +    MB(CONFIG_BUDDY_ALLOCATOR_SIZE);
>
> I think it would be quite nice if this and ...
>
> > +size_param("buddy-alloc-size", buddy_alloc_size);
> > +
> > +#define domain_num_llc_colors(d) (d)->num_llc_colors
> > +#define domain_llc_color(d, i)   (d)->llc_colors[i]
> > +#else
> > +static unsigned long __initdata buddy_alloc_size;
>
> ... this were folded. Which I think would be possible if the Kconfig
> addition went like this:
>
> config BUDDY_ALLOCATOR_SIZE
> int "Buddy allocator reserved memory size (MiB)" if LLC_COLORING
> default "0" if !LLC_COLORING
> default "64"

But I know that...

> > @@ -1945,6 +1960,155 @@ static unsigned long avail_heap_pages(
> >      return free_pages;
> >  }
> >
> > +/*************************
> > + * COLORED SIDE-ALLOCATOR
> > + *
> > + * Pages are grouped by LLC color in lists which are globally referred=
 to as the
> > + * color heap. Lists are populated in end_boot_allocator().
> > + * After initialization there will be N lists where N is the number of
> > + * available colors on the platform.
> > + */
> > +static struct page_list_head *__ro_after_init _color_heap;
> > +#define color_heap(color) (&_color_heap[color])
> > +
> > +static unsigned long *__ro_after_init free_colored_pages;
> > +
> > +/* Memory required for buddy allocator to work with colored one */
> > +static unsigned long __initdata buddy_alloc_size =3D
> > +    MB(CONFIG_BUDDY_ALLOCATOR_SIZE);
> > +size_param("buddy-alloc-size", buddy_alloc_size);
> > +
> > +#ifdef CONFIG_LLC_COLORING
>
> According to the (updated) command line doc, this #ifdef needs to move up
> so the command line option indeed is unrecognized when !LLC_COLORING.
> Question then is whether the variable is actually needed. With the variab=
le
> also moved into the #ifdef, the need for BUDDY_ALLOCATOR_SIZE also goes
> away when !LLC_COLORING (see the comment on the common/Kconfig change). O=
f
> course you'll then need "#ifndef buddy_alloc_size" in
> init_color_heap_pages(), around the respective if() there.

buddy-alloc-size must not be parsed when !LLC_COLORING. I'll change the cod=
e
accordingly to what you said.

> > +#define domain_num_llc_colors(d) ((d)->num_llc_colors)
> > +#define domain_llc_color(d, i)   ((d)->llc_colors[i])
> > +#else
> > +#define domain_num_llc_colors(d) 0
> > +#define domain_llc_color(d, i)   0
> > +#endif
> > +
> > +static void free_color_heap_page(struct page_info *pg, bool need_scrub=
)
> > +{
> > +    unsigned int color;
> > +
> > +    color =3D page_to_llc_color(pg);
> > +    free_colored_pages[color]++;
> > +    /*
> > +     * Head insertion allows re-using cache-hot pages in configuration=
s without
> > +     * sharing of colors.
> > +     */
> > +    page_list_add(pg, color_heap(color));
> > +}
>
> Iirc it was me who had asked to keep this and further functions outside o=
f
> #ifdef-s, for the compiler's DCE to take care of. However, with all that
> Misra work that has been going on since then, I now wonder what Misra
> thinks of this: When PGC_colored is 0, functions like the above are
> unreachable, and any code or data the compiler doesn't manage to eliminat=
e
> would be dead. Imo if the code is to remain as is, correctness Misra-wise
> may want mentioning in the description (this isn't the only place we have
> such, so an overall position towards this is going to be needed).

For the time being, I'll add a note that can be updated when the overall
position is found.

> > +static void __init init_color_heap_pages(struct page_info *pg,
> > +                                         unsigned long nr_pages)
> > +{
> > +    unsigned int i;
> > +    bool need_scrub =3D opt_bootscrub =3D=3D BOOTSCRUB_IDLE;
> > +
> > +    if ( buddy_alloc_size >=3D PAGE_SIZE )
> > +    {
> > +        unsigned long buddy_pages =3D min(PFN_DOWN(buddy_alloc_size), =
nr_pages);
> > +
> > +        init_heap_pages(pg, buddy_pages);
> > +        nr_pages -=3D buddy_pages;
> > +        buddy_alloc_size -=3D buddy_pages << PAGE_SHIFT;
> > +        pg +=3D buddy_pages;
> > +    }
> > +
> > +    if ( !_color_heap )
> > +    {
> > +        unsigned int max_nr_colors =3D get_max_nr_llc_colors();
> > +
> > +        _color_heap =3D xmalloc_array(struct page_list_head, max_nr_co=
lors);
> > +        free_colored_pages =3D xzalloc_array(unsigned long, max_nr_col=
ors);
>
> At this point, xvmalloc() and friends want using by all new code, unless
> explicitly justified otherwise.

Yes.

> > +        if ( !_color_heap || !free_colored_pages )
> > +            panic("Can't allocate colored heap. Buddy reserved size is=
 too low");
> > +
> > +        for ( i =3D 0; i < max_nr_colors; i++ )
> > +            INIT_PAGE_LIST_HEAD(color_heap(i));
>
> While for this loop i being unsigned int is okay, I fear that ...
>
> > +    }
> > +
> > +    for ( i =3D 0; i < nr_pages; i++ )
> > +    {
> > +        pg[i].count_info =3D PGC_colored;
> > +        free_color_heap_page(&pg[i], need_scrub);
> > +    }
>
> ... for this loop it isn't.

Ok.

> Jan

Thanks.
- Carlo


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 11:02:07 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 11:02:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845897.1261211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGykx-0005Cy-Kc; Fri, 29 Nov 2024 11:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845897.1261211; Fri, 29 Nov 2024 11:01: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 1tGykx-0005Cr-I3; Fri, 29 Nov 2024 11:01:51 +0000
Received: by outflank-mailman (input) for mailman id 845897;
 Fri, 29 Nov 2024 11:01: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGykw-0005Cg-5X
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 11:01:50 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52e9609a-ae41-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 12:01:46 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-aa543c4db92so230913666b.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 03:01: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
 a640c23a62f3a-aa5998e6fa4sm161089666b.116.2024.11.29.03.01.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 03:01: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: 52e9609a-ae41-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmIiLCJoZWxvIjoibWFpbC1lajEteDYyYi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjUyZTk2MDlhLWFlNDEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODc4MTA2LjA1MzM1OSwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732878105; x=1733482905; 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=aPIfRx9b1D9I9+Kwy+ccj2KaU+kZ+7/oX/Sc7S+tCr4=;
        b=be7pV1BAuw3omkqfzElqy31+UsFkrIAebb1EtQL+BH0zaP5d77678etRZpDR+NoCJB
         V6WjPiByJCxj663eiGD3UdnIdaakZtLPOY8aGE9kXWLSfIlK31wYOcB1SbuWcW4tJPFJ
         JaHm8sufPAo5LLjk3g4lkwN5oD+0WIuPtPZqRC+41TgzG7nw4Tmz3WYmQBWEq70dFc3d
         3A/OZPxSs9ApiJD2u1Rt4OqFao6+jp/Inm7hK8hIcjVodbY9aYLpGtoTCUN8LMKP0igE
         N+cQDvBUk4sqZLKW2exXfQuAha4Z4CrRL4Pa4Z7cWviFWGBww/050KYJxhv22k6Sgnnq
         Dd8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732878105; x=1733482905;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aPIfRx9b1D9I9+Kwy+ccj2KaU+kZ+7/oX/Sc7S+tCr4=;
        b=SYgE4RcJxnd13pPF/4PUUklcYAHOjW47pxux/N4PSWc4uHY/FTuZNQgAFjWdspqX9+
         Fmop3mWYIsG5Wddm6GQ8LedqSB7KpS8L+P4VSB1RXXHzHkSb3rRVpKEdL41QrwiXDlKs
         p3qIdK+VCUY+MiChoSXL+L/16c/KNycqOUEWsV1bsEtS9PT/8ydS5Qnfvw+lc8ezDLeO
         tN4cFW9dI/yejoebhfSKLKcAnHh+AKimvlqHvQ/ABJ6Yi2r/JvigmBq0rhNi3bLkfC80
         PRhWDeFpBxppQdaaarfbLUA0aILjxSVXUpwe52QnFzrlvVw4EtPme+8LgOpaYKshdTrx
         u1Mg==
X-Forwarded-Encrypted: i=1; AJvYcCXnTHVfSDrQ6wVv8hCwY90g/w8Nl4uwH8uxwpOCAqd/KbKLCZrIc23K+qR1Fpg/rz82VSSVQVb4CIk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzC1/bUYWdN10C60gFDQp7eE6snKjoFiay3rY76cpLse22zKHWc
	RmRNXfsZp6Sw+MFVmnrlKNvUwsAHNtfJhf48TgIxUmRugtIwa03yR7XmRebucw==
X-Gm-Gg: ASbGnct9neploVKDeED0f/jBXRk9Hz1Gse1cH41DDVzpS1KzM6YD0EIUpEn/fJcWWbK
	dpTyGQBqBKLisRim1EVycJtHRjSM1LZgT+jGxr+yxDglW29bmNp8YELtgyg+zqLdgB5ixy7RSUT
	GDbczGAb/42cCq7ZCXVyKtLBnuXel1kEIujhk+j7ckWdWMPAVrne2ooLGTPr4nrDMejR68n7o1Z
	EokWLD94e8R2ChBQ3d014V3TNyfowLDfx/szJg6hhDHnlg3MbzcqmD5FRbQH0qeUa1VQfpq1GWM
	hBXh5lVskbp3nWSKZVp30SqIiDi9+Za15AU=
X-Google-Smtp-Source: AGHT+IHrYcTuWe4yOEFtAYGRXb+UsYPxdHswYjS/mGAjt+O83pOCcDlw0mR2dbPVZvEWCZJXMeRk4g==
X-Received: by 2002:a17:907:7852:b0:aa5:1957:342d with SMTP id a640c23a62f3a-aa580ed02a6mr778902666b.11.1732878105402;
        Fri, 29 Nov 2024 03:01:45 -0800 (PST)
Message-ID: <e1b4d634-da27-4855-bee1-8dc0797a7a1e@suse.com>
Date: Fri, 29 Nov 2024 12:01:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/5] xen/arm: Check for Static Heap feature when
 freeing resources
To: Luca Fancellu <luca.fancellu@arm.com>, Penny Zheng <Penny.Zheng@arm.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>, Wei Chen <wei.chen@arm.com>,
 xen-devel@lists.xenproject.org
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
 <20241129091237.3409304-5-luca.fancellu@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: <20241129091237.3409304-5-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.11.2024 10:12, Luca Fancellu wrote:
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -165,6 +165,11 @@
>  #define PGT_TYPE_INFO_INITIALIZER 0
>  #endif
>  
> +#ifdef CONFIG_STATIC_MEMORY
> +/* Flag saved when Xen is using the static heap feature (xen,static-heap) */
> +bool __ro_after_init static_heap;
> +#endif

I'm afraid I can't make sense of the last (parenthesized) part of the comment.
Presumably this is a DT-ism, but in a non-DT source file this then needs saying
one way or another.

> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -72,6 +72,19 @@
>  
>  struct page_info;
>  
> +#ifdef CONFIG_STATIC_MEMORY
> +extern bool static_heap;
> +#endif
> +
> +static inline bool using_static_heap(void)
> +{
> +#ifdef CONFIG_STATIC_MEMORY
> +    return static_heap;
> +#else
> +    return false;
> +#endif
> +}

Or, with less #ifdef-ary (and like we do elsewhere in similar situations):

#ifdef CONFIG_STATIC_MEMORY
extern bool static_heap;
#else
#define static_heap false
#endif

static inline bool using_static_heap(void)
{
    return static_heap;
}

At which point it becomes questionable whether a wrapper function is
actually needed, and if not whether the variable itself could/should be
named using_static_heap then.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 11:06:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 11:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845907.1261221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGypt-0005oN-5g; Fri, 29 Nov 2024 11:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845907.1261221; Fri, 29 Nov 2024 11:06: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 1tGypt-0005oG-34; Fri, 29 Nov 2024 11:06:57 +0000
Received: by outflank-mailman (input) for mailman id 845907;
 Fri, 29 Nov 2024 11: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGypr-0005oA-RZ
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 11:06:55 +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 09cfefb8-ae42-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 12:06:53 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5cf9ef18ae9so4939053a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 03:06: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
 a640c23a62f3a-aa5997d410dsm164348566b.66.2024.11.29.03.06.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 03:06: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: 09cfefb8-ae42-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo1MmEiLCJoZWxvIjoibWFpbC1lZDEteDUyYS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjA5Y2ZlZmI4LWFlNDItMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODc4NDEzLjEyMzY3Miwic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732878412; x=1733483212; 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=Bc4D9daP2jgGDWAVkZSMOGIQAs0gCD6njQOTAAljpMQ=;
        b=OYYOto/AO9ajs30nxAu8sIMCAAZFrHtx4caA2o1lS/VKrTu1eLd8TwhER7jcXlAU5m
         mt4oe2ifUxGksQaMoJM5c/ziXis+5Krv2tZsQroTgjJ8r81JnJGnqYQI5tY2PJWxz0NL
         EuI+v2kIQjzzmUZV+nA+0hNO7NKcUDO4uUIZ01I0jgjlVFLxLroIV+iWdnrN3zT5MoPC
         BOmJCNGK4sUv5c19TFC1MTdv30Y+mH8lPfG8BFprlzywni/rYqvrEBykh2N5NMgISeRG
         PF7pz+uMypLuAXWJNalIpnUZFH1k4Ptpkmw+yO1gJPYC/HEQGxqEP0qq9QGez54VQi/s
         xVLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732878412; x=1733483212;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bc4D9daP2jgGDWAVkZSMOGIQAs0gCD6njQOTAAljpMQ=;
        b=ppwtvbhhKAig/uJ7ZRwnqP5r4vFd36OGoW+JbenMnWoc40Dbrsa78fg6a6U3cmVMsF
         LY5kj25yoi3euZk4QxhRCt2FdKZ8kxL1WFqO5GoYE4WNKgtqIoA+ZuDHi8Lfmz716JCw
         nhlQV7aSnizAXoMl5B5rxzgSRNe/9gDfFwFOqeCHiPSQdF4cOVZKyJsxd9kIGphLkYtF
         mAbhLLYOetJu6Bs8GuGgt3T2ZvHzg6jiN6TrFV+J0GjE1fX49G/ZYyzttHOrwg+ODdrp
         GQWsLUqfIhYq4Rq/pSkMHtwJkaVAgkSPaTm5wGXMpJDFiC35T3um4ZXZwsmNUBeQWboQ
         DLzw==
X-Forwarded-Encrypted: i=1; AJvYcCWOQc0zzrXemvPp1ojx7ZK5StkoGYyRbmOcampe2tdBLWrTHkgIB+WneenX++iInesDbqnuNe+5mCg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzbHy2BirTDnjruRL6oobnu/DYSD4V7YMYiw81Ta0hXv2VbDmO3
	cBEMVhK419lV+wyuTxVWZMuBNZqu4rOyJdiokoR3VZhMoOda07BHqX2p6ZohDw==
X-Gm-Gg: ASbGncscux1pOQsxCyv4lx5TwyeK6k8IaPNhNzEWhlsSNgV+gbG36fYJ+EAO4J2RtxH
	62rn4C03OhNs+kZvjK+r1v89pn0fd5bcp8Ebz8/F65qwhR31byyxSubYuLkELlD2B/KJ5e6Nkzn
	b974tHj5CbUcjk5UvxD1KCSDJw5VwgwPue/yuuWmu3EA77TgzBEbSzjIM2OcRFpa6RDxyzBND3x
	CP1dQYhQWXSIhKL5LCuE2S+7a0q5xjs5BRtJ0VQwR/bn0EIJEcivB0OoD9mUA2eLNtxsbot/kgD
	MupI5qWu0zptpxVZu3sYggihpKyYPbRYuhY=
X-Google-Smtp-Source: AGHT+IH5K4JEHeYPuqPNXNjI3fcvRDye0qmet2J9C07OLA1meFM6V2ttPPDkOnUbFa6VNLaXPoWnnw==
X-Received: by 2002:a17:907:7819:b0:aa5:3c57:c407 with SMTP id a640c23a62f3a-aa5945f4ee6mr799817666b.16.1732878412365;
        Fri, 29 Nov 2024 03:06:52 -0800 (PST)
Message-ID: <63022d0b-5761-4392-8280-fbfca8c679f7@suse.com>
Date: Fri, 29 Nov 2024 12:06:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
To: Luca Fancellu <luca.fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
 <20241129091237.3409304-2-luca.fancellu@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: <20241129091237.3409304-2-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.11.2024 10:12, Luca Fancellu wrote:
> --- a/xen/include/xen/xvmalloc.h
> +++ b/xen/include/xen/xvmalloc.h
> @@ -40,20 +40,46 @@
>      ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
>                               __alignof__(typeof(*(ptr)))))
>  
> +#ifdef CONFIG_HAS_VMAP
> +
>  /* Free any of the above. */
>  void xvfree(void *va);
>  
> +/* Underlying functions */
> +void *_xvmalloc(size_t size, unsigned int align);
> +void *_xvzalloc(size_t size, unsigned int align);
> +void *_xvrealloc(void *va, size_t size, unsigned int align);
> +
> +#else /* !CONFIG_HAS_VMAP */
> +
> +static inline void xvfree(void *va)
> +{
> +    xfree(va);
> +}
> +
> +static inline void *_xvmalloc(size_t size, unsigned int align)
> +{
> +    return _xmalloc(size, align);
> +}
> +
> +static inline void *_xvzalloc(size_t size, unsigned int align)
> +{
> +    return _xzalloc(size, align);
> +}
> +
> +static inline void *_xvrealloc(void *va, size_t size, unsigned int align)
> +{
> +    return _xrealloc(va, size, align);
> +}

Just to double check: Was it at least considered to use simple #define-s
to effect the aliasing? Wrapper functions like the above ones have the
downside of needing touching (easy to miss) when the wrapped function
types change in whichever minor way. (And yes, I do understand that we
generally aim at using inline functions in preference to macros.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 11:09:17 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 11:09:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845916.1261232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGys4-0006R8-LO; Fri, 29 Nov 2024 11:09:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845916.1261232; Fri, 29 Nov 2024 11: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 1tGys4-0006R1-Ib; Fri, 29 Nov 2024 11:09:12 +0000
Received: by outflank-mailman (input) for mailman id 845916;
 Fri, 29 Nov 2024 11:09: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGys3-0006Qt-IX
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 11:09:11 +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 59d0e7e7-ae42-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 12:09:07 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aa539d2b4b2so315081466b.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 03:09: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
 a640c23a62f3a-aa5996c195bsm162438066b.1.2024.11.29.03.09.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 03:09: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: 59d0e7e7-ae42-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjo2MmYiLCJoZWxvIjoibWFpbC1lajEteDYyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjU5ZDBlN2U3LWFlNDItMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODc4NTQ3LjIxODg1Mywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732878546; x=1733483346; 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=suS8GMsY/L1TAtrDkG03JJO6sO64anaubLikawhtW+U=;
        b=A6+fbPz+J6GDkoTXST1F7ioIIuXvveb9iA7GY/45kq5g5ImTl7ZEqYWdlzDgGUY3DA
         9Ucn/sBsBlDlsemAKWPOVE/U5eUiS5Nn1YsL71/dj0xmZYYqCrLCghJAdl5W3earA5vj
         Su5RU76vLaThjqSoJqX1dqxFVYWGeUMwazBvMd/NMq2NbGA6nRaCQdcY0ohv+H7OCDQc
         S3KJPZjaxd2qZeyP/8R7iukixwskue/+EOD3PRKrtGNqtvtnC8/N//20PxOXMH3aqUkn
         tc+lHyAZ3Iz1DCMu943fT/IxE+wWGakoANMebYfuKpquUHHKuoH2YLhuqRQd5bN3Vxo9
         OVWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732878546; x=1733483346;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=suS8GMsY/L1TAtrDkG03JJO6sO64anaubLikawhtW+U=;
        b=uBsx7T8c9mYGWkm/62aQhB5FsWSLB0T2vRegRwSE4dohorMSOePmaUZrVtGp79jHki
         nYAiL5k82fT5VH5KB9sNRCcOQW2PDT3Cvw9GZB5irqYK8VQZHSpJm1cXKemFs3B8k9ov
         C0dKHosZI3U5S+ig4JoxKhf1Gj/EfC8c8sz6/+nbXOqiFGoI+dHCiWbcQWxxvqKEXZBx
         scDGlw2cLO3KexpUGQ4qgOVkYOa35JNtMyM9GMdEtfXmWtCEc+FcHUu6bjBQ1MvBzThp
         JTAsOBF68uupi/Tzt2ZQJITnEwDgUugMEILxg5TMGrCPPqDw3zOnWWEb6aKglrv2SqOo
         RHvQ==
X-Forwarded-Encrypted: i=1; AJvYcCVCdRYxN0jMgNXirlsL0+LpEbWGbfDEgQXwC2raRB813lsSK/e0DhnImdvaUCkYRRCP1Lndx1E5XmU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4cKlcipFQNbCez4Ucr7Ifs7iwBgKFFNDb8xuBB3b1aIP8QytI
	wSfAm8ERFkkY6VW3+c3z4kKdtRJE/4zPuHRAHTgOh6Ep+UIioOslqs0U0fVl6g==
X-Gm-Gg: ASbGnct602HNDIWM01bsgPWD8awjsCcrUSwvY4cCDktz1E1nM8i0NbMGz+L73V0TxEk
	07pwHQ9LNRwwbij+bcazUlp3W3aRRJx/UzPV7NVN5ogurlWF0VBADSGt8q6xfGMmKwM21pR+GbV
	2tgFFR1xKdVD+lWBLVIU0qIQ+B09GCpbpxzvA8Vw7SBydA7q7hVFs7+hjHl+ls+Jrr/RacW7iMs
	NDeC7BI5zGMt2+B3Bbyuc8urwGQdLBOmiDcPHc+pba29bOa8VxsU4IgKf/AveZrq15aILvn3ej2
	8mociORPCRGUvaE6+tKzlTuTbNt+VjprXtY=
X-Google-Smtp-Source: AGHT+IEZAKRMmX3bxTHucZbcAGsscyCDqGKYSPKa+uPpIBCDK70OcE+NKfeXD+ryjkNWqem8N/znag==
X-Received: by 2002:a17:907:7ba0:b0:a9e:b08f:867e with SMTP id a640c23a62f3a-aa5945dd02fmr657292166b.16.1732878546526;
        Fri, 29 Nov 2024 03:09:06 -0800 (PST)
Message-ID: <ce9c6a08-f1d5-4755-8dc4-737f147b2b22@suse.com>
Date: Fri, 29 Nov 2024 12:09:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 08/12] xen/page_alloc: introduce preserved page flags
 macro
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-9-carlo.nonato@minervasys.tech>
 <29e69d97-41ef-4ebc-a68e-0253e230f6f4@suse.com>
 <CAG+AhRWWK6e3KJ66v5wvowTzOvyJRaECpkXYpSzMa9+83ea0eA@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: <CAG+AhRWWK6e3KJ66v5wvowTzOvyJRaECpkXYpSzMa9+83ea0eA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.11.2024 10:32, Carlo Nonato wrote:
> Hi Jan,
> 
> On Thu, Nov 28, 2024 at 12:05â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 19.11.2024 15:13, Carlo Nonato wrote:
>>> PGC_static, PGC_extra and PGC_broken need to be preserved when assigning a
>>> page. Define a new macro that groups those flags and use it instead of or'ing
>>> every time.
>>>
>>> To make preserved flags even more meaningful, they are kept also when
>>> switching state in mark_page_free().
>>> Enforce the removal of PGC_extra before freeing domain pages as this is
>>> considered an error and can cause ASSERT violations.
>>>
>>> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
>>> ---
>>> v10:
>>> - fixed commit message
>>> v9:
>>> - add PGC_broken to PGC_preserved
>>> - clear PGC_extra in alloc_domheap_pages() only if MEMF_no_refcount is set
>>> v8:
>>> - fixed PGC_extra ASSERT fail in alloc_domheap_pages() by removing PGC_extra
>>>   before freeing
>>> v7:
>>> - PGC_preserved used also in mark_page_free()
>>> v6:
>>> - preserved_flags renamed to PGC_preserved
>>> - PGC_preserved is used only in assign_pages()
>>> v5:
>>> - new patch
>>> ---
>>>  xen/common/page_alloc.c | 19 ++++++++++++++-----
>>>  1 file changed, 14 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
>>> index 7b911b5ed9..34cd473150 100644
>>> --- a/xen/common/page_alloc.c
>>> +++ b/xen/common/page_alloc.c
>>> @@ -160,6 +160,7 @@
>>>  #endif
>>>
>>>  #define PGC_no_buddy_merge PGC_static
>>> +#define PGC_preserved (PGC_extra | PGC_static | PGC_broken)
>>>
>>>  #ifndef PGT_TYPE_INFO_INITIALIZER
>>>  #define PGT_TYPE_INFO_INITIALIZER 0
>>> @@ -1427,12 +1428,11 @@ static bool mark_page_free(struct page_info *pg, mfn_t mfn)
>>>      {
>>>      case PGC_state_inuse:
>>>          BUG_ON(pg->count_info & PGC_broken);
>>> -        pg->count_info = PGC_state_free;
>>> +        pg->count_info = PGC_state_free | (pg->count_info & PGC_preserved);
>>>          break;
>>
>> PGC_extra doesn't want preserving here. Since it's mark_page_free(), and
>> since PGC_extra is removed before freeing, the state change is apparently
>> fine. But an assertion may want adding, for documentation purposes if
>> nothing else.
>>
>> Alternatively it may make sense to indeed exclude PGC_extra here. In fact
>> PGC_static doesn't need using here either, as unprepare_staticmem_pages()
>> will explicitly set it again anyway.
>>
>> Hence I wonder whether the change here really is necessary (one will then
>> be needed in the next patch aiui, when PGC_colored is introduced). Which
>> would then eliminate the need for the final two hunks of the patch, I
>> think.
>>
>>>      case PGC_state_offlining:
>>> -        pg->count_info = (pg->count_info & PGC_broken) |
>>> -                         PGC_state_offlined;
>>> +        pg->count_info = (pg->count_info & PGC_preserved) | PGC_state_offlined;
>>>          pg_offlined = true;
>>>          break;
>>
>> I'm similarly unconvinced that anything other than PGC_broken (and
>> subsequently perhaps PGC_colored) would need preserving here.
> 
> Yes, we (re)checked the code and also believe that the introduction of
> PGC_preserved is generating more confusion (and code) then the actual logical
> help it provides.
> 
> We'll remove this patch and integrate PGC_colored explicitly in the flags to
> be preserved. This avoid the clumsy logic of preserving something (extra)
> when it's not needed and then handling the special case to remove it
> explicitly.
> Basically my goal is to go back to v4 where this patch didn't exist.

Hmm, no, I don't think I said anything in the direction of removing PGC_preserved
again. I merely think you went too far in where it actually wants using.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 11:14:49 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 11:14:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845932.1261242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGyxQ-00088b-8D; Fri, 29 Nov 2024 11:14:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845932.1261242; Fri, 29 Nov 2024 11:14: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 1tGyxQ-00088U-5E; Fri, 29 Nov 2024 11:14:44 +0000
Received: by outflank-mailman (input) for mailman id 845932;
 Fri, 29 Nov 2024 11:14: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=Aowa=SY=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tGyxO-00088O-HR
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 11:14:42 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2612::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e8fc119-ae43-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 12:14:37 +0100 (CET)
Received: from DU2PR04CA0075.eurprd04.prod.outlook.com (2603:10a6:10:232::20)
 by GV2PR08MB8341.eurprd08.prod.outlook.com (2603:10a6:150:bb::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 11:14:30 +0000
Received: from DB1PEPF000509EE.eurprd03.prod.outlook.com
 (2603:10a6:10:232:cafe::d3) by DU2PR04CA0075.outlook.office365.com
 (2603:10a6:10:232::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.14 via Frontend Transport; Fri,
 29 Nov 2024 11:14:30 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB1PEPF000509EE.mail.protection.outlook.com (10.167.242.72) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12
 via Frontend Transport; Fri, 29 Nov 2024 11:14:29 +0000
Received: ("Tessian outbound 3b1f0cd68b0e:v514");
 Fri, 29 Nov 2024 11:14:29 +0000
Received: from L349b8a2e48ba.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 5D0FFFC1-EEF3-4B6D-BA6F-74CBF9C5B162.1; 
 Fri, 29 Nov 2024 11:14:22 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L349b8a2e48ba.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 29 Nov 2024 11:14:22 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by DU0PR08MB8729.eurprd08.prod.outlook.com (2603:10a6:10:403::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 11:14:19 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8207.014; Fri, 29 Nov 2024
 11:14: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: 1e8fc119-ae43-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjJhIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjFlOGZjMTE5LWFlNDMtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODc4ODc3LjM5NjI5NCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=E6wKuT5hK2PbYx3ltyCu7T1QdsavpTD63Fb2jWjZ0tU2ynjP24Z44OFgt2mZW4VFv8l5xAstkiz7LKR9ZU+wxFOlhwWoEQ1rKlMcDZ+BjMPA4J7BU/ppQLtJquuF/KSfJz4LS9jaFStz1sK1MT/1+rapjnOJEpQ7VBbRqWnxUNpU3Z4uAMfNW4yKi25RkRMcKhREca2zUqQTLEL3bVuHy8xjmITuQkDXgiiWay+reRy13fgaKLXYk/bT0XaIxKn0D6ejur2v8M2s1bshRTGzTZotigjqhfACBJzHZBbSlEUJf2JOs2snTPp7YEc2WwLtkmYelJzk6jV3K2gjVZ2QgQ==
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=KzvttSIp3RkzvLTwE9pq+/CshgN20eq43EVAtb5tpVQ=;
 b=TlmqpaosRYmD1K/Fkrkx+pp9L5Gspn0dHH2+ZFgbT7YKlId+xinxNWq3Rt5x7xFiKEI1tnXOaqQeEVTzHqKQBgh9UHeiFGRssUct0N7z7aCIxkgOR3kR21PhJrm8bdcaFT1mOas9eYHOFTZ/3kGjGKjCKnERqG8uKZm9MakGGkrl75qlwmRgEqnA+8fIbTCnlYWAr/5bHlJrdWkCPp74Bo8Bf+rGWFlaAPY49cC7heb3t1uWzr6GM5GEccl6s4r/ic9upCyP+It4dKRChPkte6VjnnOHzV+JvdEoPvuD0iQ0FOdUheOrnMYDcJGnlLyFk2wuipyZeUAdMxA+XrAXoQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=KzvttSIp3RkzvLTwE9pq+/CshgN20eq43EVAtb5tpVQ=;
 b=W7BwFl+RxtYUWtQMHMq4ORwjKhNFzGPVJUA/H0U1jLF/+zkftZ5fe6Oso49HxRnHN+rVAF6WwWHxSfnnjPrxDCrpGlyKqy6PDnhk+XJ5SSnoiPEYtKSj/6P0iGpXP0u3SktlMBz+5C9X7RQIshNTTR6D8w2ZAb4sgzMJFhk1av0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: c96d1cb7bc9c7498
X-TessianGatewayMetadata: RS+U1XlOrp6G0+BFHEP/ZGc0bwhokJo33ruGGZ/1iiofTzs8yxz4wG0fbpOgnheNLxYVKYNExBreoWASIa0t39qtsH94xrankNjVaE8VErMY20mDEn6Ln8wtWe3NnuahDFq/e6sZaywiu7HPf09g8JZJelR5TijB6yQ7iMNQI2Q=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C0hDL2j9Z4t101KGZt2TyZx8+B9KGC1lMgdfb/wor001YJcJfUwJ+FBD5oOxtP4rvGVNAvyMQYpA+pCM8T3GFRDE61A/eThu3tZOosqnzhliInnWCJOtvBr5ImwxOkn5/KoLHJKMZBA8E4UumfPsvdI1ogeHJFQgegTEMdW223pDdLt4yZWeuD9vIM5LTLDuY2+/LPs/0nVU8xrMkW5AqJ83KzLbXyQNFQrdbN3jVOS7sH7gY6tIzKT6KQvj+ltwDEWdDSraTTy64/e215gynRd+tM/jZx/83CjCthELQySUp39lFq167paacPfZq0MVZgCP/JRH1kG6MV9oYfzl6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KzvttSIp3RkzvLTwE9pq+/CshgN20eq43EVAtb5tpVQ=;
 b=LKMd+KmY4FFcJpKnHienVbt6l7dMZ+ig3EOcOsRsWOMjPKOHA4QAQ/59yJdy7ls/HmY03r9e15C1MaQVO3AV8z6UEzy19nZtTIIxg82641SEDE8bUXseAhhP89P2xsEoQ3xBRboNk3jVO+DY/Tb0CMdkWKyl5A6NC9c0Z5oNTlgIGsnoWOHRS4zYOkVT2Gdaope2rJw8SRcA5LYGvwor3bKgUiOKNtYqN5WpGY2Bthtx5dN837OkuIIcyDekfhGPFcAfXHnB1gsYA+JcOF+treT46xpZupFLxAAKWp+VkTypMeq8JGhhMej7sNuK/4c1c6LdSujngVButAekxTwltA==
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=KzvttSIp3RkzvLTwE9pq+/CshgN20eq43EVAtb5tpVQ=;
 b=W7BwFl+RxtYUWtQMHMq4ORwjKhNFzGPVJUA/H0U1jLF/+zkftZ5fe6Oso49HxRnHN+rVAF6WwWHxSfnnjPrxDCrpGlyKqy6PDnhk+XJ5SSnoiPEYtKSj/6P0iGpXP0u3SktlMBz+5C9X7RQIshNTTR6D8w2ZAb4sgzMJFhk1av0=
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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH v3 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbQj8EJeBBpea3PECsMrqs79+q+7LOGRaAgAAB8gA=
Date: Fri, 29 Nov 2024 11:14:19 +0000
Message-ID: <52FD5E2C-A620-486D-A648-5F34531B2681@arm.com>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
 <20241129091237.3409304-2-luca.fancellu@arm.com>
 <63022d0b-5761-4392-8280-fbfca8c679f7@suse.com>
In-Reply-To: <63022d0b-5761-4392-8280-fbfca8c679f7@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|DU0PR08MB8729:EE_|DB1PEPF000509EE:EE_|GV2PR08MB8341:EE_
X-MS-Office365-Filtering-Correlation-Id: 32800a3a-df5d-4942-abc7-08dd1066fe7c
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?b3hxUlEyZjMraVBQMHg2V1V2QUVmSGNuR2dsNUR1VE1qSHdLeituemNORTFY?=
 =?utf-8?B?V3lja2JDTCtraE1OZ1QzdkZmN1Q3aGVTL1h1amZHbFJhUk8wUzN2Um5KLzBm?=
 =?utf-8?B?ZzJQbmtxQnZpcFA0aUFaOGR2cXozVFpMZ2J4MXRFYmNsazJaZ1pCWVVUWWdY?=
 =?utf-8?B?MUlBL3BxU1JqUHJsNjArVzV2NzdIU1FnQkM1SCtnc2pHR0UwNDVzdGY2QmdF?=
 =?utf-8?B?RjdQczBmTWlHSG1zSlgwUm40aEdOSFZ6V1ZPZlB5eVJpK3JMRzJVQlFKVXFT?=
 =?utf-8?B?M1N6cjc2RVVEeVFpUVl0OGUrZHNKak1aRFVkVEhwM1U4Q283RmxJSFNET2pZ?=
 =?utf-8?B?RytaQ1lxVFAvVFFOY0JyN05MV1lvRmZ1SlVuMkNsbjc3SnhtWjVPZDltOHlM?=
 =?utf-8?B?Q3FTd2VoYndoYWxMZG11STI4UThsZFQ2UThHZnlTZEt2ZFQxZFBvdkxwT0xO?=
 =?utf-8?B?VmVNQ01FZFpXU1U4RlVkVm9VeG83SG5GOW1FQlVVVU0yV1hjNjJrZnFXOXB0?=
 =?utf-8?B?OFpXY2c5ZmsrYzVKcjU5VTNUN0pHRXhPU0xCaWs1SjYwVXovYUg1TS9yU3N5?=
 =?utf-8?B?Ym1PL3l3ZkkvdTFkVG9xU3U3UFlTNWgvOEs2enkzM1BQbURkYXJSdC9hVjZN?=
 =?utf-8?B?ME9uTjhhRjlYSnZRbzc3VG5JLzRmb0M0Tk1qeldEK3ZUcTBQR0c3ZG1pQUMw?=
 =?utf-8?B?b09CRnErNGZPRjQwTTUwcjcxczVWakhXK1VZbU9zSyt5Z3MwYWhLZkx0R2Fh?=
 =?utf-8?B?ODNpNFliTmVSQk9jQ1kwNzUrODhsR0kxRUZFa201djlEbnNEdFBUWGlVc1dV?=
 =?utf-8?B?RFZxRDNMQ3ZnandDQ3hDcGR3NzRhWHFXTmlORkNDL1hQdUIzaHJGUGxTa1k0?=
 =?utf-8?B?L2Q1YTRlMFl1S0w3ZlFXN21aNjdMbERCcWJ6NThWcGdBSkc4RjdkNVRJMmhJ?=
 =?utf-8?B?ZGpSS1c3bFp4czk0YjdhS1NubFJRM2QxUGg3WExDUG5CbnZFZXc3VmZmYWw1?=
 =?utf-8?B?VFc3WWNES29YWU41N1NvRnp4N0hpL2pRZytyelFzUW10Z0xYYXhJQVcvQTdo?=
 =?utf-8?B?YVYySDVrcjZGaDFiNjlFdkE1ZVNBQjlUMmVDdUNpazMyOHRSTzZMMDZQL1Jr?=
 =?utf-8?B?Tm1BWFlBdS9LREF6b21neWFIS3c5T1ZHb0NUdmNhWkQxamJydXh1ZDZaNDJW?=
 =?utf-8?B?c2RvVGllQzNadEpXckluQ2lNbWFiTXFaOVBlcTJyUW54SlVHdnVreEljdmY3?=
 =?utf-8?B?N09MM3pwTHVyZ1NzY29RUXdocHlkbC9zS091U1VyeUc2M3RvTzAyY01QQUxP?=
 =?utf-8?B?NEwwMSs4TXNXMDlTdy91d0gwYWRsRlZmMGlicUZjRlJoZGd3djUxRWFXeW5M?=
 =?utf-8?B?Snpmc2RoYTJTTWZVYnN4cGFzZjNGWnRCclFBUFN5cG9WQ290ZjNydzhYczJJ?=
 =?utf-8?B?NmNub0x1SXhRZnhxREtKZm1iZkphc3ZyZFZPcE05aDlLbmRhTmo5dmV2Y1M5?=
 =?utf-8?B?ZVZVVWF6NTMyejUxUE9BT0p3OXIyRVhIZmNPcVA0bWVkSzVmZDFwQVhKcENH?=
 =?utf-8?B?TGkwYTU1eGVISUx2VU5Vd3lUcmltbVJtNHRsZnlycHhXQnBWYitKczlZVHRT?=
 =?utf-8?B?QzR0eGw1MzlVNzBxT3FCVVN0U1R0UEUyMXpvTnlkNS9EUDVKRmUrR29PNFlW?=
 =?utf-8?B?dDhieGRNUGVsT1hzbkdnOEhFZmZTSkp2dW9IVHFKcENidGd6YW5wRU4wM0Zk?=
 =?utf-8?B?MXlFYzVTb1QwOGRLV2hPZlRmR3NkUjF3UUR3aEtwOUZxajZTTGtJZ2JIWE5R?=
 =?utf-8?B?RFRxQy8xZU9DQzdMQXZUNmFyTWZQc0xRMU5HNTRTVUhDU3NqdTZPdXdHOUNZ?=
 =?utf-8?B?Ykd1cUFva3E0dTJnby9wTmw2WFpwc2NCYmZqTkFFVDRlbVE9PQ==?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <95FE5E723441E74BA1B30DFE2C9E2B78@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8729
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509EE.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	66a07eab-503f-42ac-ee30-08dd1066f870
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|36860700013|1800799024|82310400026|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VG9UclF0WVk5V1BZMXFjMm1tWEFjZnVVNFdiR2pZOXZBVWRoRyswTHRoaHlK?=
 =?utf-8?B?ZWgxRHhlaW9Md2pBZElwb1prN2RhajlXUldiU1NEZ2JlcmJMMUl6NDFRQThS?=
 =?utf-8?B?OUEvdDBBQmQrOCt0cC9mbVhmR0N4dmIzK0phUmc2eFNXSmNXaTlEK3V6TkJk?=
 =?utf-8?B?L1g3UFZlRGJGWUFkdHo1eTBhcVIxcGRwOTg3V1JxVHZUU2ZmbTlsT3pBdHZ5?=
 =?utf-8?B?aGR1b0NXdEE2am5ndkNwWWRkT0JZWWM1M05jSC9rWWowODFTNW8vbGxDUG5j?=
 =?utf-8?B?NkFjNFBndkZFeU0xZUpHUUQ4Y3dTa2s2c3V3cVpENXNLNFZtUmtzM2t5U0ZX?=
 =?utf-8?B?aExrOVJEbStFQktyOWxOQnJFNDVnOXJxZ3YwdmxmV1N0b21VUWMzbVh4REI5?=
 =?utf-8?B?TTlUdGxVMXgrTWxUTWJ5enBlM2xuSzdKejFuT1NuSkk2enNjR3QyZGtyb1p6?=
 =?utf-8?B?VU9MaGtOZjhaUjdNcjZJL2FYTHZXYldEdFZabXdZSXR0M3Fickc0dm9lRHRQ?=
 =?utf-8?B?dDF3TFJNT1RhelJIZktoRFdNTkI0OTJqbndoSEh0VU5GdUxBL25QQ0dEay9z?=
 =?utf-8?B?S3p5VnFpVW4xZXQvNWhDbUVKeVJXVmtUaUdRSDlycGMyNXhYVE9jYzM5Tm9n?=
 =?utf-8?B?bENDNU5MUzFYUGlXbFlHQk9pOUtXZFFwMEZxL01lMEwydkY1eURMNUgyRVYw?=
 =?utf-8?B?V282UE5iL2duTXNubzlSN1I3eGNXTEExQlJCOG1ZdStXakcvT3ZaK1pyK3BE?=
 =?utf-8?B?cWova25RRkVZNS8vYTluYThDWmdac0dqTjF1Q2kyMkhiVEh0VkcrM0JJNnVp?=
 =?utf-8?B?RndhTnRkMDduRGVzZGg5dDBpRVRzSFV1ZUpDdmUzdUtOQnQ3U01Ta0ZZTGZo?=
 =?utf-8?B?VXIwd0dMMHJ6VnhqYVRXNW84Z3A0U0RGUXJ5S3RRL3VqeU5vQ0VLMHhPdVo1?=
 =?utf-8?B?Q1VXY1U0Qlc2NzVNVVlYRHZSTGU5Y3gvUU1ORENqMHhFSDhPd0k5d1p1K21k?=
 =?utf-8?B?TFBLWEFlRGJxSHJTSi9SWlZINDV4ZVN3UDZ2UGErN1M3WWN3S3RicldZT3A0?=
 =?utf-8?B?MHRnM2kxUW1Hc3c4WVNEaE1JQ1FCODQvN2dLOGRsV1I5OGxWZHpza1RyejBn?=
 =?utf-8?B?SENPUjlzWjllekttRXhIb3FNVTU3UlIvVHpVczVEYk03c2lrRGxOWnNBalpu?=
 =?utf-8?B?alBnS1RrZUJINFF5dzhOc3QrNnJRY3A5dkNZbVBkRG5hQkhWVTBWRUg3U1Iw?=
 =?utf-8?B?VXk2aWVyRm1OSi84NDJCMTdEY012MU54aE9rNGd4SzRaMkhNR3EyRDcxOEp1?=
 =?utf-8?B?VmJaaEtQTEJUWC80TWsvYW9pR2RrclliUkVtYUE2Nnc3WWV5aGxpSjZTOEp0?=
 =?utf-8?B?czlRK3VoNkdEdFc4VlBZakgzcHdUZ2Y3Z3JvMXVNdlFZakZHdVhyd0N3NzZI?=
 =?utf-8?B?U2lyUUJvSHg4WDMyb2ZHY1hHcFFBWlJzOEhjYjNxWDJZWnIzcVVzVG5uaVpF?=
 =?utf-8?B?TmN5cW83SmZTWWxQNGVRQzRXVGlMVWJOYzhBSk1LNDJ6UlpuOHJWOUtJVElL?=
 =?utf-8?B?cmxzNndlSFcySkI1WGpuVEZOaVYvdEJlVERMUUJ4OGNPckk5a25hSHFhU081?=
 =?utf-8?B?WC9pcVFva0JNM01uOUtNVVFORWgzSU82UTJ6RURicWpGWlhpaGZFTC9hV1cv?=
 =?utf-8?B?MlZGdXU1UjJBYkN6NUlzMDUvMkZ4V2EvS1JiTERxV1E0bmkvcjJmNGZFZExB?=
 =?utf-8?B?YUhodmtTeGxqVHcwSWliY2hXMVBXb2xEZHNjRHp6MERCN1JzZnVpUE10MkZ4?=
 =?utf-8?B?cjR2SzYrbHA2MmN0UTRnWmdZRmlnanZuS2hrMkhSMUhRNWhCSjM1YWp5MWFP?=
 =?utf-8?B?ak5sNEIxL0FaREptSy93dm5qOXM2d3RkMnZDMW1aYlZzM2lHMkgrQnhUaldm?=
 =?utf-8?Q?j5AMvPF9IMLZ/GotmndK6r9Dh0ObfekA?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(14060799003)(376014)(36860700013)(1800799024)(82310400026)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2024 11:14:29.8770
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 32800a3a-df5d-4942-abc7-08dd1066fe7c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509EE.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8341

SGkgSmFuLA0KDQo+IE9uIDI5IE5vdiAyMDI0LCBhdCAxMTowNiwgSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPiB3cm90ZToNCj4gDQo+IE9uIDI5LjExLjIwMjQgMTA6MTIsIEx1Y2EgRmFu
Y2VsbHUgd3JvdGU6DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4veHZtYWxsb2MuaA0KPj4gKysr
IGIveGVuL2luY2x1ZGUveGVuL3h2bWFsbG9jLmgNCj4+IEBAIC00MCwyMCArNDAsNDYgQEANCj4+
ICAgICAoKHR5cGVvZihwdHIpKV94dnJlYWxsb2MocHRyLCBvZmZzZXRvZih0eXBlb2YoKihwdHIp
KSwgZmllbGRbbnJdKSwgXA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2FsaWdu
b2ZfXyh0eXBlb2YoKihwdHIpKSkpKQ0KPj4gDQo+PiArI2lmZGVmIENPTkZJR19IQVNfVk1BUA0K
Pj4gKw0KPj4gLyogRnJlZSBhbnkgb2YgdGhlIGFib3ZlLiAqLw0KPj4gdm9pZCB4dmZyZWUodm9p
ZCAqdmEpOw0KPj4gDQo+PiArLyogVW5kZXJseWluZyBmdW5jdGlvbnMgKi8NCj4+ICt2b2lkICpf
eHZtYWxsb2Moc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbik7DQo+PiArdm9pZCAqX3h2
emFsbG9jKHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24pOw0KPj4gK3ZvaWQgKl94dnJl
YWxsb2Modm9pZCAqdmEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24pOw0KPj4gKw0K
Pj4gKyNlbHNlIC8qICFDT05GSUdfSEFTX1ZNQVAgKi8NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5l
IHZvaWQgeHZmcmVlKHZvaWQgKnZhKQ0KPj4gK3sNCj4+ICsgICAgeGZyZWUodmEpOw0KPj4gK30N
Cj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgKl94dm1hbGxvYyhzaXplX3Qgc2l6ZSwgdW5z
aWduZWQgaW50IGFsaWduKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIF94bWFsbG9jKHNpemUsIGFs
aWduKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2b2lkICpfeHZ6YWxsb2Moc2l6
ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbikNCj4+ICt7DQo+PiArICAgIHJldHVybiBfeHph
bGxvYyhzaXplLCBhbGlnbik7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgdm9pZCAq
X3h2cmVhbGxvYyh2b2lkICp2YSwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBhbGlnbikNCj4+
ICt7DQo+PiArICAgIHJldHVybiBfeHJlYWxsb2ModmEsIHNpemUsIGFsaWduKTsNCj4+ICt9DQo+
IA0KPiBKdXN0IHRvIGRvdWJsZSBjaGVjazogV2FzIGl0IGF0IGxlYXN0IGNvbnNpZGVyZWQgdG8g
dXNlIHNpbXBsZSAjZGVmaW5lLXMNCj4gdG8gZWZmZWN0IHRoZSBhbGlhc2luZz8gV3JhcHBlciBm
dW5jdGlvbnMgbGlrZSB0aGUgYWJvdmUgb25lcyBoYXZlIHRoZQ0KPiBkb3duc2lkZSBvZiBuZWVk
aW5nIHRvdWNoaW5nIChlYXN5IHRvIG1pc3MpIHdoZW4gdGhlIHdyYXBwZWQgZnVuY3Rpb24NCj4g
dHlwZXMgY2hhbmdlIGluIHdoaWNoZXZlciBtaW5vciB3YXkuIChBbmQgeWVzLCBJIGRvIHVuZGVy
c3RhbmQgdGhhdCB3ZQ0KPiBnZW5lcmFsbHkgYWltIGF0IHVzaW5nIGlubGluZSBmdW5jdGlvbnMg
aW4gcHJlZmVyZW5jZSB0byBtYWNyb3MuKQ0KDQpZZXMsIEkgdGhpbmsgSSB0cmllZCBhbmQgSSBk
aWRu4oCZdCBoYXZlIGlzc3VlcyB1c2luZyAjZGVmaW5lLXMsIEkgYXNrZWQgaGVyZQ0KaHR0cHM6
Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hlbi1kZXZlbC9wYXRjaC8yMDI0MTExNTEw
NTAzNi4yMTg0MTgtMi1sdWNhLmZhbmNlbGx1QGFybS5jb20vIzI2MTIzNDQ4DQphYm91dCBhIHBy
ZWZlcnJlZCBhcHByb2FjaCwgYnV0IEkgZGlkbuKAmXQgaGF2ZSBhbnkgcmVwbHksIHNvIEkgd2Vu
dCBmb3Igd2hhdA0KSSBiZWxpZXZlZCB3YXMgcHJlZmVycmVkIGFzIHlvdSBzYWlkLCBzdGF0aWMg
aW5saW5lLXMgaW5zdGVhZCBvZiBtYWNyb3MuDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 11:17:10 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 11:17:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845940.1261252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGyzl-0000FH-M1; Fri, 29 Nov 2024 11:17:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845940.1261252; Fri, 29 Nov 2024 11: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 1tGyzl-0000FA-IL; Fri, 29 Nov 2024 11:17:09 +0000
Received: by outflank-mailman (input) for mailman id 845940;
 Fri, 29 Nov 2024 11:17: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGyzk-0000F4-5U
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 11:17:08 +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 76c90290-ae43-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 12:17:05 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ffa974b2b0so19038621fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 03:17: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
 4fb4d7f45d1cf-5d097e8db03sm1711480a12.56.2024.11.29.03.17.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 03:17: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: 76c90290-ae43-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMzUiLCJoZWxvIjoibWFpbC1sajEteDIzNS5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6Ijc2YzkwMjkwLWFlNDMtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODc5MDI1LjE0NTIzMywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732879024; x=1733483824; 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=rDu2tsNS+XK9rKpCqZLepS6OsSIEoZbg7fk9R3nnpUM=;
        b=Bx+s0Hz/Ebs64Dwmsbomf3YRubj18w1Y5uT8Tm4oBpcVJW+uZywyOL2lvv+OfILOGV
         +hYPcQx9qSuk3zuDc/fXeczT9s+ToxkMPdXp1/bPSQckuCG5xNz49dtDL8F3KmzlQ+KN
         D24aUc5zv65wl0mlXsMtsvwh2vpj9FpWFp5nC4oTv+Dkdt1NXTnc1EaA4C2kcYY/xujw
         dFso9aZwLx7bffon5nzJ1lS7JgdBJS0gEyaZCoLIFDvVCxf0VXcdSmbKpj5wJcfTDAar
         +igd/guh/Yvolp52WsQ0tqMm4+bNJ/qE9xpIc9hJNZdN4MhWPxHXGcDjgTKsUZdndk6p
         hHnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732879024; x=1733483824;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rDu2tsNS+XK9rKpCqZLepS6OsSIEoZbg7fk9R3nnpUM=;
        b=sI8GmH84OXDl+e0mfbIQzeqSr+mVDoTwUsK32PmXCaGZyTQx0j8JzzA4mOx3RbG0IE
         mdHrCfiz+VBXGBSs+qAD63UFA2OY2dXsW9btFIxID5Hgt3yvyLi48khC3/AzCppBDtiS
         lStZVgOF9EF1x7o8LuxDO7LA45dYEC+xY9VWu7uVaeOOQa4/sBNGiWv7nCLtrpOvYjeC
         Q1Md+iPW8pF7xezVWiqSjQOqJ2kPC7q1tGOG8glngRPp3Sgk0REDi6atjrgDyqKTPxoc
         bNiuREomZ7KpvL1Rxf3sYLSKcfysV9vLRw66g3Y6rplZKamjRcwqlQmX55wnyf5ithmS
         UrNw==
X-Forwarded-Encrypted: i=1; AJvYcCWVUPJuQ8gyQTWOju424O2CUUNa/tXkgi2TQdlu4qkIPJhBwskhsXciLUloHbyiRS46vTUJHDvVpaM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxd2f/m3BVaRx4/1cMOr2GtnMmGP0ZtiDnUBxtnuts8sH0Ioy6a
	KcnN4iK6xb9GyXlBC2vmM7QVxELow8+XXgE3IgvqghiRoZvJG5sWVvFO7UoLig==
X-Gm-Gg: ASbGncsqm+UiKtj1UaSa8ejTILm/bfT/nQU7RSaBxetKWb7uZsHnpr57bospfDHPkYA
	wVCqrpNuHCy/9r79OTk1EP4T5E3HJv5FMl3tEPTTdShr0s0T7dN7bTDS91dZKOUfSsyGAEWc6Pc
	NFd8/9/r49FBnJJ1f6joTQLAkEsEKrqQEOZHM8ZnPTOVP8e9aqBy8zYne4CE2LmWv7IfNu+59OT
	YwAydy6ZD1UKsAezyNxigaZ18lLFoIRK+ayGEvdBcV56Nib82RhPwDhvPa33NZlNfvHUNzFcdH5
	kdOlrYg225sCeqwScNoy+B/bc2p8chvI29o=
X-Google-Smtp-Source: AGHT+IGgjQNBUVrMpim7RRBQYHZLwGCdypmRALaEhY3Tg0nw3FncTXP/4IIdZZINLFr2vK30SrkqpQ==
X-Received: by 2002:a2e:9e4b:0:b0:2ff:e1ec:e6c7 with SMTP id 38308e7fff4ca-2ffe1ece72emr24625141fa.39.1732879024487;
        Fri, 29 Nov 2024 03:17:04 -0800 (PST)
Message-ID: <78ba5afd-43ab-4a3c-b9bf-384f1d61b2a8@suse.com>
Date: Fri, 29 Nov 2024 12:17:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 09/12] xen: add cache coloring allocator for domains
To: Carlo Nonato <carlo.nonato@minervasys.tech>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Andrew Cooper <andrew.cooper3@citrix.com>, 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: <20241119141329.44221-1-carlo.nonato@minervasys.tech>
 <20241119141329.44221-10-carlo.nonato@minervasys.tech>
 <5f876671-4624-4ec6-957e-d4a7802fb46a@suse.com>
 <CAG+AhRWAwkwd6w8+TOp8k+9pxj9=JvEjwNode_HrgdwMZHE5Qg@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: <CAG+AhRWAwkwd6w8+TOp8k+9pxj9=JvEjwNode_HrgdwMZHE5Qg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.11.2024 10:37, Carlo Nonato wrote:
> On Thu, Nov 28, 2024 at 12:43â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>> On 19.11.2024 15:13, Carlo Nonato wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -537,4 +537,12 @@ config LLC_COLORS_ORDER
>>>         The default value corresponds to an 8 MiB 16-ways LLC, which should be
>>>         more than what's needed in the general case.
>>>
>>> +config BUDDY_ALLOCATOR_SIZE
>>> +     int "Buddy allocator reserved memory size (MiB)" if LLC_COLORING
>>> +     default "0" if !LLC_COLORING
>>> +     default "64"
>>> +     help
>>> +       Amount of memory reserved for the buddy allocator to serve Xen heap,
>>> +       working alongside the colored one.
>>
>> As the description has nothing in this regard: Why again is it that this
>> can't simply have "depends on LLC_COLORING"? Even if it ends up with a
>> value of 0, in an LLC_COLORING=n (or LLC_COLORING entirely absent) .config
>> I'd find it at least irritating to see this setting to be there.
> 
> Quoting you from v8 (6 months ago, a lot of time ago I know, link here
> https://patchew.org/Xen/20240502165533.319988-1-carlo.nonato@minervasys.tech/20240502165533.319988-10-carlo.nonato@minervasys.tech/#5c16f53f-3bb0-49d6-b174-b0e8c6ceff4c@suse.com):
>>> +/* Memory required for buddy allocator to work with colored one */
>>> +#ifdef CONFIG_LLC_COLORING
>>> +static unsigned long __initdata buddy_alloc_size =
>>> +    MB(CONFIG_BUDDY_ALLOCATOR_SIZE);
>>
>> I think it would be quite nice if this and ...
>>
>>> +size_param("buddy-alloc-size", buddy_alloc_size);
>>> +
>>> +#define domain_num_llc_colors(d) (d)->num_llc_colors
>>> +#define domain_llc_color(d, i)   (d)->llc_colors[i]
>>> +#else
>>> +static unsigned long __initdata buddy_alloc_size;
>>
>> ... this were folded. Which I think would be possible if the Kconfig
>> addition went like this:
>>
>> config BUDDY_ALLOCATOR_SIZE
>> int "Buddy allocator reserved memory size (MiB)" if LLC_COLORING
>> default "0" if !LLC_COLORING
>> default "64"

Hmm, I see. I didn't consider the negative effect back at the time, it seems.
The main goal was anyway to get rid of the multiple instances of
buddy_alloc_size. I'm sure that can be easily achieved also when going back
to the original form of the Kconfig option (at least partly by following what
I said in the initial reply to this v10 patch, I think).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 11:22:40 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 11:22:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845955.1261262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGz51-00029b-BX; Fri, 29 Nov 2024 11:22:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845955.1261262; Fri, 29 Nov 2024 11: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 1tGz51-00029U-8Y; Fri, 29 Nov 2024 11:22:35 +0000
Received: by outflank-mailman (input) for mailman id 845955;
 Fri, 29 Nov 2024 11:22: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=XFrC=SY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tGz4z-00029O-9B
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 11:22:33 +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 35b5a11a-ae44-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 12:22:25 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-2ffc76368c6so29337131fa.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 03:22: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
 a640c23a62f3a-aa5998e6a7bsm165327466b.104.2024.11.29.03.22.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Nov 2024 03:22: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: 35b5a11a-ae44-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDA6MTQ1MDo0ODY0OjIwOjoyMmYiLCJoZWxvIjoibWFpbC1sajEteDIyZi5nb29nbGUuY29tIn0=
X-Custom-Transaction: eyJpZCI6IjM1YjVhMTFhLWFlNDQtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODc5MzQ1LjU1NjkwNywic2VuZGVyIjoiamJldWxpY2hAc3VzZS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1732879345; x=1733484145; 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=81LOAsSMXEi+8JT7BTHq+q3xwjZ4MNJv87OAfCMneXY=;
        b=J/QLH9RrKaeKEyZKIgP/Ky38Q62qXxEqg/I6iCWtY0R8Eni1W9SZpNHexjJJn3xkNI
         eGgYcEUOAvsdkd7UasZbBSyW8PLXKxeCQlGiah+ZKC8DijrL4Ik7Jz5tFpdA3oGXxLum
         41PwkIcF+1O9C0mb55pFgtH4vTqBGAk5kWyVtG4RtfeznABd1kw3owhIa9FXziUCqkBZ
         +LE2e+kqAfE9hf1g1qM/0PckPtZSSSGcoX3ThUHsv3Mx57ZG1K0jxwIeDHIyyYKyh1vv
         eCFBaP1FCXoId3IXwPzoGS227SB0233mh+CucMBwRtMQxROHurIBXO8+05qcT1lMA46w
         Pydw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1732879345; x=1733484145;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=81LOAsSMXEi+8JT7BTHq+q3xwjZ4MNJv87OAfCMneXY=;
        b=Czvo34wo8EiZEOQD2Tj8aRJKaXlWgCcRtnipdMeR+BBogF6ki7pZ+hBFZQgRzAtCkx
         kH8nGQIh27O9DJtskZrUEqppypcIGy6XSKLdV1lN0s871oXhWeOEgw0kPX6/+s32M5DG
         +JFtWGAsC3EStQyOcSUWU4Ov/Yxdf4svEPUevBkciIdM+thL7oQm26SGW0EjXVXlKxrN
         G68hX9j2FakhnytVXb6UMnhGqnjQMe7W5CrZWeEi8oJz3R0wxvMe/tmrdobjI8TAkuXH
         3eDxUCsEOVphuXRqDNe52vYHk8iKGt2AmIiQP+U8yQTvNMO2v/Qf+flnibGT/rcb1mNJ
         Kq2A==
X-Forwarded-Encrypted: i=1; AJvYcCVNA0UXyxpte4dsOujkFEFOkzMejUsSE2WW23Z1q6/WbELStfAJGCXI1sipkZbu10MklQEQjAP45XE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyk6WkzZ+SU9Y2/l3kIM8O+D2z59Y181E+33T3Ln/mpnM2wP/WS
	7brSpwSfzvd7Ogd9L7SIQmqHHSnnqNas4iBQrbr0cBSFU07Q8mAuXk0qwLO2sA==
X-Gm-Gg: ASbGncsLAgC9ItKE8OhZ/7WE2DtyYtA1TNxQ80N1oHUybg8Bl+h51BCVFCeO3eTGF0t
	qpBrWa4ju5n3xiz8hOQ29N15NUhXU64ypCe+r4rj5WLXPqn+9wFuIux0sdrZ3pI5avFseOtW3cv
	ZV0NYz+c0A77q6Xyv1oUCeLEyoICvJ9ouPPgusIU0N7MDuzLogk7UmVgOWIhnWtPGRiS5si8x8H
	berwHfZXmrkRYNBCG8GSpMQC3EqaPtP6rWKO7NkF33wPHWEQ9zdN21akBxh9I1qJDep+3MzCuaq
	e94UEReMOKhea/5aV/k8nldJK9QmS+apxCI=
X-Google-Smtp-Source: AGHT+IH7eC+qOsvnTonYluNajqyeTePFq6+DixSo80qx2sPY0rfxm0N4xndyw52bkxTDqJHhdrq/rQ==
X-Received: by 2002:a05:6512:3a8d:b0:53d:e83e:a23d with SMTP id 2adb3069b0e04-53df00d952dmr9584517e87.27.1732879344836;
        Fri, 29 Nov 2024 03:22:24 -0800 (PST)
Message-ID: <b064a441-4f46-4a2e-bc2b-965548242820@suse.com>
Date: Fri, 29 Nov 2024 12:22:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
 <20241129091237.3409304-2-luca.fancellu@arm.com>
 <63022d0b-5761-4392-8280-fbfca8c679f7@suse.com>
 <52FD5E2C-A620-486D-A648-5F34531B2681@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: <52FD5E2C-A620-486D-A648-5F34531B2681@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.11.2024 12:14, Luca Fancellu wrote:
> Hi Jan,
> 
>> On 29 Nov 2024, at 11:06, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 29.11.2024 10:12, Luca Fancellu wrote:
>>> --- a/xen/include/xen/xvmalloc.h
>>> +++ b/xen/include/xen/xvmalloc.h
>>> @@ -40,20 +40,46 @@
>>>     ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
>>>                              __alignof__(typeof(*(ptr)))))
>>>
>>> +#ifdef CONFIG_HAS_VMAP
>>> +
>>> /* Free any of the above. */
>>> void xvfree(void *va);
>>>
>>> +/* Underlying functions */
>>> +void *_xvmalloc(size_t size, unsigned int align);
>>> +void *_xvzalloc(size_t size, unsigned int align);
>>> +void *_xvrealloc(void *va, size_t size, unsigned int align);
>>> +
>>> +#else /* !CONFIG_HAS_VMAP */
>>> +
>>> +static inline void xvfree(void *va)
>>> +{
>>> +    xfree(va);
>>> +}
>>> +
>>> +static inline void *_xvmalloc(size_t size, unsigned int align)
>>> +{
>>> +    return _xmalloc(size, align);
>>> +}
>>> +
>>> +static inline void *_xvzalloc(size_t size, unsigned int align)
>>> +{
>>> +    return _xzalloc(size, align);
>>> +}
>>> +
>>> +static inline void *_xvrealloc(void *va, size_t size, unsigned int align)
>>> +{
>>> +    return _xrealloc(va, size, align);
>>> +}
>>
>> Just to double check: Was it at least considered to use simple #define-s
>> to effect the aliasing? Wrapper functions like the above ones have the
>> downside of needing touching (easy to miss) when the wrapped function
>> types change in whichever minor way. (And yes, I do understand that we
>> generally aim at using inline functions in preference to macros.)
> 
> Yes, I think I tried and I didnâ€™t have issues using #define-s, I asked here
> https://patchwork.kernel.org/project/xen-devel/patch/20241115105036.218418-2-luca.fancellu@arm.com/#26123448
> about a preferred approach, but I didnâ€™t have any reply, so I went for what
> I believed was preferred as you said, static inline-s instead of macros.

As Andrew's idea didn't work out, personally I think the simple #define
approach you suggested would be preferable in this case. There is in
particular no type-safety concern here, as the wrapped functions will
all have the intended type checking applied.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 11:24:23 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 11:24:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845963.1261272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGz6k-0002hn-Ls; Fri, 29 Nov 2024 11:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845963.1261272; Fri, 29 Nov 2024 11: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 1tGz6k-0002hg-Iz; Fri, 29 Nov 2024 11:24:22 +0000
Received: by outflank-mailman (input) for mailman id 845963;
 Fri, 29 Nov 2024 11:24: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=Aowa=SY=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tGz6j-0002hY-AB
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 11:24:21 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20609.outbound.protection.outlook.com
 [2a01:111:f403:260c::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 78f5678e-ae44-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 12:24:18 +0100 (CET)
Received: from AS4P251CA0007.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d2::11)
 by GVXPR08MB11153.eurprd08.prod.outlook.com (2603:10a6:150:1f8::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.21; Fri, 29 Nov
 2024 11:24:13 +0000
Received: from AM3PEPF00009BA0.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d2:cafe::99) by AS4P251CA0007.outlook.office365.com
 (2603:10a6:20b:5d2::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.15 via Frontend Transport; Fri,
 29 Nov 2024 11:24:12 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM3PEPF00009BA0.mail.protection.outlook.com (10.167.16.25) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8207.12
 via Frontend Transport; Fri, 29 Nov 2024 11:24:12 +0000
Received: ("Tessian outbound 75f654e2c9bc:v514");
 Fri, 29 Nov 2024 11:24:11 +0000
Received: from L8fe880de0d3f.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 0BA1EA09-8B53-40C1-AAAD-E86D3F00AF50.1; 
 Fri, 29 Nov 2024 11:24:05 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L8fe880de0d3f.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Fri, 29 Nov 2024 11:24:05 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com (2603:10a6:10:1a6::21)
 by AS2PR08MB9475.eurprd08.prod.outlook.com (2603:10a6:20b:5e8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.14; Fri, 29 Nov
 2024 11:24:00 +0000
Received: from DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632]) by DBAPR08MB5798.eurprd08.prod.outlook.com
 ([fe80::4a66:d3e2:570:9632%5]) with mapi id 15.20.8207.014; Fri, 29 Nov 2024
 11:24: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: 78f5678e-ae44-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYwYzo6NjA5IiwiaGVsbyI6IkVVUjAzLVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6Ijc4ZjU2NzhlLWFlNDQtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODc5NDU4LjYyNzI3OCwic2VuZGVyIjoibHVjYS5mYW5jZWxsdUBhcm0uY29tIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=rEIQcGrgdPsigwCzfaoumglQE4bsuOw+8dGNGzrRTT6YbSZFlMFJKAzn6qFh/3bOqhkisAgOsu2NCQZog8zbWN+yIDJQ806KfWIflQSa0vUVnnpX5R0weZvLe4eYSlTZfeCUlPrkPbPmHYwR0ERGnaj9Ko3UGKRoKFgIonLF6zKoMhQSraT7d8krfOTT7eZRLV8Xkow3ahoVwBysn9jJiU6WLljH9yYzHkwT/WdtwPZGY36F6W8jz6AEOTH66VUHbKmdMGEzfxLRnqkN6MxiZPkUYIltdDYHjR/Hd/g3RB1OfzNwvucu2SffxOzgj9M4g7Lc0LL+gO6K9HU3lZOrtQ==
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=UEaVoGNlz0JdoRaalEiKBwAzNlsZ2/DAclO3zeuwz/Q=;
 b=HV+yfeusjPkOABHivg5eAxCpx7vBXAJvRh72hYI9xJ7XWGfAy4ARbZyWdBRw4phdR4SogL0GjzP9bAezgBG1oG1P5AHHrUzsfouApfW5udeOeS8bAV2bQ5Jjdd/F+UxmVm41LY6F/HoHPJK1jUG2Fh88CBxlV7WezTY1bySzV9H2u8rpK4YQVTj+yX06NOIr3uuaCrNJBocprlAvSUuhNoWdGAdmNlUSKooXNi4jj/h+fcCgS7KYEZJK/WhNkFi6ycjDx67K4y4/HKIqI5zxVu0Ylvoe5Felns03tdn4OLQt7CJqNaYyt9lt/nLInIZCq1ETEYw1FY1QWodEsdxe7A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 63.35.35.123) 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=UEaVoGNlz0JdoRaalEiKBwAzNlsZ2/DAclO3zeuwz/Q=;
 b=pY2yqMZKnKD6iApeyU+EnEO2xWlGmhzV3ZHLvnAU1gLFPMxBJIdaRaj3mpDjcHm1yYOxB2stgwtRlfWvU5beBB5kgSsKZIfhSeCNSxWeqhE1DXFXPZd9S9Pjhl0EoDwYxglu+orGwPcyt0vVO8eerdZwNh6ZGloNWwst3kMCCYk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 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
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
 pr=C
X-CheckRecipientChecked: true
X-CR-MTA-CID: c2cb74aa7ae78258
X-TessianGatewayMetadata: VG41z9mFKenH8R6H0ZL07p7CCZH4GRCVtgMAYWDVeJfUel2rMYGxMrwnsFDZS4WbuSpjfItCy1L+Ik72ZHtlwsTUaVO1nhC0sSA2o7I4gGxsEAfRq0KjWWIcBTiRv5jtzKdZDW1BfWOx92JBLXzjfEA1c2TkKa3IZGUSvgOycGo=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SRbqkRuhDuE+Tto3XkSbjkiaKMsQDcpFox12sLHXsce4XpGkNw9gjsAto4HDNkPL/QWOO45j1OgI4kAfz4TND3L3AhrnaPH+QwQ+b2CuPt28WL/vSNAPGJsvg/ihLSgZRnNLrX1HjzRAgU6CsL4wJRtjEElMCPour88a6rsRIBEVCKsiSqCcRTCtjajdreFTPulNnpSeiOVdkJOqw4Xo/KsisdO55CTRfFFrqXfDFQfyFqFfblZTZWme4b4/ScRBngMys7KWGN4RvD8pMrgw9UVs1ABWIglnQRps2uyD1srNvRzOclrhgEqeXg2bKDm30R+Vd+KkpykFMI97O40xcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UEaVoGNlz0JdoRaalEiKBwAzNlsZ2/DAclO3zeuwz/Q=;
 b=Nht0of/M1gmwgbj07zf9k25mYGx6YlNC6hyBUsQj9HEJbKuTg63yK2mgWo5veuwl8Ym4/p2RMwYk+bUQRanuu9bcluEDJJ+TD6Wz2bgON/80KdGHrA+WsT5qT1o9FGz1aR7Ty7pCfGbRjMIFRpKzbAY5NvR45VMXz/nTJzHYYiYdzKQe0ga5Mrbg+sqF0ByqZMnCEkH+vx3xOH224+v3j6ZGzig993INdG+Youv1nUUjWdkE8WMNDLxTFx5TiLuVWF8L74ofv+7rMBgIgykLLAq2MYlmTosjHQTYz4grw1therGym4WUEmghXS0JPPBrqmfVjL5TVE5dyRwm5gJmSA==
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=UEaVoGNlz0JdoRaalEiKBwAzNlsZ2/DAclO3zeuwz/Q=;
 b=pY2yqMZKnKD6iApeyU+EnEO2xWlGmhzV3ZHLvnAU1gLFPMxBJIdaRaj3mpDjcHm1yYOxB2stgwtRlfWvU5beBB5kgSsKZIfhSeCNSxWeqhE1DXFXPZd9S9Pjhl0EoDwYxglu+orGwPcyt0vVO8eerdZwNh6ZGloNWwst3kMCCYk=
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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Topic: [PATCH v3 1/5] common/vmap: Fall back to simple allocator when
 !HAS_VMAP
Thread-Index: AQHbQj8EJeBBpea3PECsMrqs79+q+7LOGRaAgAAB8gCAAAJmgIAAAE8A
Date: Fri, 29 Nov 2024 11:24:00 +0000
Message-ID: <1D005260-5BE7-4C10-A65B-7F6418A0E7CB@arm.com>
References: <20241129091237.3409304-1-luca.fancellu@arm.com>
 <20241129091237.3409304-2-luca.fancellu@arm.com>
 <63022d0b-5761-4392-8280-fbfca8c679f7@suse.com>
 <52FD5E2C-A620-486D-A648-5F34531B2681@arm.com>
 <b064a441-4f46-4a2e-bc2b-965548242820@suse.com>
In-Reply-To: <b064a441-4f46-4a2e-bc2b-965548242820@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.200.121)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5798:EE_|AS2PR08MB9475:EE_|AM3PEPF00009BA0:EE_|GVXPR08MB11153:EE_
X-MS-Office365-Filtering-Correlation-Id: d7ec5fc3-286c-4482-8dba-08dd10685981
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?bHpJY1Q2U3M3VmczRGRSUEhnOGYzMkI0MXc0RUxXR3FWdldkUUp0ekc3Z29w?=
 =?utf-8?B?ZGpqcWZRR1FTYWUzbHNRL1VUUkR0V21CSE52YVR4K25YKzZ2enNURWNNQVNN?=
 =?utf-8?B?alY0OW0xM05abmI5bWg4STc5RHJ1VGxCZjd4KzJBcEZ5QkRXTDBaY1VhY0JC?=
 =?utf-8?B?bDFxeFl6aHd3WnFNeE45VXd1V2czTDV5aGRpZkIvZGhIS0tQMVJDaUNtTXQv?=
 =?utf-8?B?MStkTFZ0WENkbUZBbWVhTVVQZjZsK09HSXVXNnZ4S0lwMVF5SFNCZ3NCTzA3?=
 =?utf-8?B?c0wwamhyV2VVR0RmWUNnL1pBMmFXdzRmS3I0YmRmUy95OTgyUjBZMkJORGdC?=
 =?utf-8?B?QmhyTWN0bzVGUnJ4R1AweGJObXhzVlc3K3Vzc2R0aGxsRndVdjhoN3I4cTR6?=
 =?utf-8?B?UnJwZFd2TFFReFB1cTMzTWRSQ0ZzTWpPZlpSNUZsWTdZaFM4c2U5bE8rdEdK?=
 =?utf-8?B?WWFjd01mUXJBMTNKeHU1SW9sSmVSOFBuNmw4UVdLazZuV0IrNXRxVE5NOTVs?=
 =?utf-8?B?WHQ4UCtRUE5Fd2V6OEZoNjNZc1piZitROUlsbEhRMHZrb1V0UWFXaEZwbTNp?=
 =?utf-8?B?a0xtQ2JRb01KaHVzQXllTjBJZU5TMk9PYTA2b1JkYzRXTXZaaUZ5SEVHcWZO?=
 =?utf-8?B?aFFaTm9MY2RJb2YwTVZBcTYvUmZPc3NMNG45amVERUQwRE1NUXFwYlV0eHJt?=
 =?utf-8?B?b20wZFVhV3VISVhWVVFuTDBNbnBFL0NmTmRjNkxlbXljUXloN2VoeUtIRUVK?=
 =?utf-8?B?WWhKVVBBWVJ3TDV5K1BpVnRUL1VDS2hyMG5XSEdNcER2bGI4bkFtc1J2QklX?=
 =?utf-8?B?SGpIZVU1ZlgxWFZNbXRIZVZTU0tOdXU5QkN2dnBpeWtyODkxNjFOYTg4VmpI?=
 =?utf-8?B?WTA0aXdRTEFtNnIzdjJxOEdhU3lvcUVOcVBmenF2ZFppeHpBd21NWkY1VERt?=
 =?utf-8?B?bFR3N2ZKclUybC81MjFRejFwb0k3NWE4ZjVrME0yTmpBQkV3MWYzZkZHRSs5?=
 =?utf-8?B?TjRjZUtFS05CVnNoemxrVE82aGNBZkd0U3p5cHhLU3ExTEV4MDZXVVFOSTR1?=
 =?utf-8?B?VGxNT3FEU3VkdmVFOFJCUnU2VmJwa21sVGNBWkY1dzBENEZBSkluOHczSmJs?=
 =?utf-8?B?Y2R4TUo0REJOdUJlLzhZWlFFNUQ3b1lOdzVjZ2w2eUQwMmNwQUIraEhycW1T?=
 =?utf-8?B?TUxheTZvWEV2K0xTMVVxeDFyM0EyY3huUURrbXdjY1k2RjJIbWZBWk1ESHds?=
 =?utf-8?B?YkZ5Sm1nbU9xaWRFUHNCaEJscVhncWo1RTU4YTNqTVhSNldKSWpFUFlES2lK?=
 =?utf-8?B?V2FGQmkyb3FPVnJGVjZ1cFNBckZXazZPdjRyWXJqemc4cURFYTc2dE1EV3dT?=
 =?utf-8?B?OU9mdnRQVngwaDRrcVpJUTdycHJHbm04QlM1ZVhQWkRWS0d1eTNveHhEMUkw?=
 =?utf-8?B?K1RWYzQ2Q2tLS3VFdVZKVDUydDVFVVNjUTZIMTEvM2hrUjhjbkc3RVhPT3Er?=
 =?utf-8?B?a244a2RSR29uZWtLZzlGNzdyOHAvT1ZJQTE0L282elBIeSt1UXR5c0wzblBh?=
 =?utf-8?B?a1c2OUw5Q2tSaW45VTJKZHNBRlBRaUNwMlZQdWlGNmQyZnJESnYrODRMbEtF?=
 =?utf-8?B?bDl5VlZqYjhTSjNpeGNia1h6Q21rbDFzZ25JbG9PZlB1Zko5dzNOeTN6L0hu?=
 =?utf-8?B?QkZFdjNvSVlvMUdMdCtkSTZzN3VjSk0wcHFjME1HTTFPY3E5UDNRejlYZmVm?=
 =?utf-8?B?clVjZS9vUGJMdzBkMWNGS296dzgyM0drVnVnTi9XSHRJR0FOVGdHT1VsanNS?=
 =?utf-8?B?KzVaSHJ1MUZjSklZOWtNa2RmdWRNZlM2N2sxNXBaL29DVXpkTDBhOXFaTW5T?=
 =?utf-8?B?NU44ZnVqTTFNVDlwTXJrZWhKSU1SWlFoNUNtNFBWSDVHTkE9PQ==?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5798.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <21E6291230DC194D894D4AC2D162EC99@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9475
Original-Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
X-EOPAttributedMessage: 0
X-MS-Exchange-SkipListedInternetSender:
 ip=[2603:10a6:10:1a6::21];domain=DBAPR08MB5798.eurprd08.prod.outlook.com
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009BA0.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	cd588c42-7a38-4ee9-29bf-08dd106852d8
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|35042699022|14060799003|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z0ZkWHlUV3I4UkJVZmozemVILzVxNWNrTWw4U0NFMTA3Tmt4ZFFsN2xtV1lZ?=
 =?utf-8?B?a3VmM2dKaWlRM3p4OWp0alFpRmk3NDh3c0VvK05PcXZ3WDBUeFZZMkFzVmpt?=
 =?utf-8?B?Z3YxWjNXNE43eFBtODFneUxWUkZSNTQxenpmdjlzQll6ZzVHNHlVR3Q0bUpP?=
 =?utf-8?B?Q0pvcXJWYy9BOVpyUGttZzJkWGpDUFlTeDhBUXAvaXZoR1hyUHg2QVBMUlB1?=
 =?utf-8?B?VWNjdkVXcm55dDZGRkxVOTJVbEFqakpRVWZLVUhFbkE1akxrbjJIaEppSnpJ?=
 =?utf-8?B?RHpVZHl3M2d0cU5zZGI3YzltMFZSRlNWRWtoaE1XM05HTkhzQzltWEMwNU1V?=
 =?utf-8?B?VHg4UlRVa0VsaElDLzRGVkQ3RWRnejNyTDZqMkVsYXlFdUU4bnhMSy9wS0xT?=
 =?utf-8?B?VXJGYzEzSU11dUFpVmpOVWlVSjU3QkN1d1hmejRhL3g0MG5VOWFYeVFjK0tM?=
 =?utf-8?B?SWxpRVlNYXdaZVAzb3dnMlVvWjg0ZUQ5eG42RG9WdWdydlBjRnduN3BEdFFX?=
 =?utf-8?B?UWhRcG5RVEN6d1JpUFNRMmQ1a0dETGNKUEhNWUFmSWJpOEZ0eHRrZ2NWK3lB?=
 =?utf-8?B?Z1AvemVRelRONTdHbEZuWDcrWm1hRkpOYnRlZzRjRmcyTkIwUHlxWWd1Y2ZN?=
 =?utf-8?B?MVdkYUlwYTBlS2h5THhiUng2dHRSblZ0UlU5TktKblZwaEZidWppR0tVdTdL?=
 =?utf-8?B?QzNsUDhRR2R5ZTRrdEtmNUUrVk5TYlVOdDZtSnJIVW1QOXBrcCt0ZXJENzNL?=
 =?utf-8?B?Q3g3RXp4cTZ6K2NSUURMTVd4RnNLSEtjREhyOXlXcWVzVVVmTFZyQzZTTzla?=
 =?utf-8?B?YW80eWJYZUQ2cEVvdjNLS3dtenFIWHFtbGlsMFprRUxOZ3dJZFlTSHBreDZN?=
 =?utf-8?B?ZWVwc0xGSUJObDJVdHUyTnJZVENJUFA0RExvV21QSHBwcmtvRXNDSFgvbjRJ?=
 =?utf-8?B?Tlczcm93RkxhcmNlSzJkVWJDaVdnQ1pTYkFib25IWmFWZWRDUjFsMFArTTBL?=
 =?utf-8?B?aDRiS0laZmRvNGdHam1aWTFMeVZKOWFTSE1yT2tQenlncXNUNnlWT2ptSG9D?=
 =?utf-8?B?UkU2ZStDazhRcjVSeEwydGxBeG9UQ2wwYUZKU0VHYkhXN3ZGNGg1a0JSTk93?=
 =?utf-8?B?QmZ3RTlPbDFBbEZ5QUNiRFRvY3ZlT2lrdzdUbHNXZTJxcGdNOUtZQWI4Vnow?=
 =?utf-8?B?ZFo0SmttUndQRTd1blp1YXFGQU5reHJkOWE4eVpwSEFMdW16OEJBenIzc1RC?=
 =?utf-8?B?d2YwblhGOTVwdXNSYjF0dDZiVEhGVTN2THV6V3RYK05aRldDazFkSUtCLzBQ?=
 =?utf-8?B?UWhPN3Z6ZkxkU1pNVzBaTG4vbjQ3aHhIdEY0N2xwcDJ3Yzl1eFFKZ3doVFYr?=
 =?utf-8?B?QUo3UXRha29uNXZhZ2ZlN2NIK3hvVFlhVXhTb2ZORXJaazBXYXYyZEptYkt2?=
 =?utf-8?B?VjFDKytpZ0JVT0pKK3krQjZKRnFyVFV3LytsZEIyVERhSkxtY2pScVMveFVl?=
 =?utf-8?B?VmZPaDZhK0pueG5TaTJJb2JDcHZka2xPd0N1WFpHaXN6bjBaSmVBUFJXb1A2?=
 =?utf-8?B?SFJNdVl5MDBXb09valZGSWpmRmRuU2ZLRFkzMFZsRmE1dkJ0dExDT1dDOXVt?=
 =?utf-8?B?UlN2UzdSTWZTMjYxVmY4UmR2Q3hMdGxublAvYVJxMVhlTHNJTk5HM0xadFF0?=
 =?utf-8?B?aHVncWREcnZjL3hiYjhKRHBIaE11VkwwUmpjSVRCNzlSbGlFK0x5cVVYZzlG?=
 =?utf-8?B?K0xucWxXN2tvWkVaaDhnbCs4cmxvaFFBRTJ5MHFZOWNsYWsxalBuYTUyWlRa?=
 =?utf-8?B?anROU1hEd3lJT3pRa1o1ZzdFcTlrUk5lQUNOZjllMUU0T0RSV0xyMlBZQnIy?=
 =?utf-8?B?SEpjTUpXdWE2NmxGMDYzcVpibGgwR2NJcWI0WEo4dHZ0bFV4Y3kwQ2c5aGMz?=
 =?utf-8?Q?8QQxY45u1C/IJiki7wCmuuMMW3ibaWSt?=
X-Forefront-Antispam-Report:
	CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(35042699022)(14060799003)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2024 11:24:12.0315
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d7ec5fc3-286c-4482-8dba-08dd10685981
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF00009BA0.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11153

DQo+Pj4gDQo+Pj4gSnVzdCB0byBkb3VibGUgY2hlY2s6IFdhcyBpdCBhdCBsZWFzdCBjb25zaWRl
cmVkIHRvIHVzZSBzaW1wbGUgI2RlZmluZS1zDQo+Pj4gdG8gZWZmZWN0IHRoZSBhbGlhc2luZz8g
V3JhcHBlciBmdW5jdGlvbnMgbGlrZSB0aGUgYWJvdmUgb25lcyBoYXZlIHRoZQ0KPj4+IGRvd25z
aWRlIG9mIG5lZWRpbmcgdG91Y2hpbmcgKGVhc3kgdG8gbWlzcykgd2hlbiB0aGUgd3JhcHBlZCBm
dW5jdGlvbg0KPj4+IHR5cGVzIGNoYW5nZSBpbiB3aGljaGV2ZXIgbWlub3Igd2F5LiAoQW5kIHll
cywgSSBkbyB1bmRlcnN0YW5kIHRoYXQgd2UNCj4+PiBnZW5lcmFsbHkgYWltIGF0IHVzaW5nIGlu
bGluZSBmdW5jdGlvbnMgaW4gcHJlZmVyZW5jZSB0byBtYWNyb3MuKQ0KPj4gDQo+PiBZZXMsIEkg
dGhpbmsgSSB0cmllZCBhbmQgSSBkaWRu4oCZdCBoYXZlIGlzc3VlcyB1c2luZyAjZGVmaW5lLXMs
IEkgYXNrZWQgaGVyZQ0KPj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hl
bi1kZXZlbC9wYXRjaC8yMDI0MTExNTEwNTAzNi4yMTg0MTgtMi1sdWNhLmZhbmNlbGx1QGFybS5j
b20vIzI2MTIzNDQ4DQo+PiBhYm91dCBhIHByZWZlcnJlZCBhcHByb2FjaCwgYnV0IEkgZGlkbuKA
mXQgaGF2ZSBhbnkgcmVwbHksIHNvIEkgd2VudCBmb3Igd2hhdA0KPj4gSSBiZWxpZXZlZCB3YXMg
cHJlZmVycmVkIGFzIHlvdSBzYWlkLCBzdGF0aWMgaW5saW5lLXMgaW5zdGVhZCBvZiBtYWNyb3Mu
DQo+IA0KPiBBcyBBbmRyZXcncyBpZGVhIGRpZG4ndCB3b3JrIG91dCwgcGVyc29uYWxseSBJIHRo
aW5rIHRoZSBzaW1wbGUgI2RlZmluZQ0KPiBhcHByb2FjaCB5b3Ugc3VnZ2VzdGVkIHdvdWxkIGJl
IHByZWZlcmFibGUgaW4gdGhpcyBjYXNlLiBUaGVyZSBpcyBpbg0KPiBwYXJ0aWN1bGFyIG5vIHR5
cGUtc2FmZXR5IGNvbmNlcm4gaGVyZSwgYXMgdGhlIHdyYXBwZWQgZnVuY3Rpb25zIHdpbGwNCj4g
YWxsIGhhdmUgdGhlIGludGVuZGVkIHR5cGUgY2hlY2tpbmcgYXBwbGllZC4NCg0Kb2ssIEnigJls
bCByZS1zcGluIHRoaXMgb25lIHdpdGggI2RlZmluZXMuDQoNCj4gDQo+IEphbg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 12:20:53 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 12:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845989.1261285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tGzz8-0002W5-5m; Fri, 29 Nov 2024 12:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845989.1261285; Fri, 29 Nov 2024 12:20: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 1tGzz8-0002Vy-2t; Fri, 29 Nov 2024 12:20:34 +0000
Received: by outflank-mailman (input) for mailman id 845989;
 Fri, 29 Nov 2024 12:20: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=QuyF=SY=bounce.vates.tech=bounce-md_30504962.6749b186.v1-730560fe07774db3ac20cc971d9ba914@srs-se1.protection.inumbo.net>)
 id 1tGzz7-0002Vs-3X
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 12:20:33 +0000
Received: from mail136-20.atl41.mandrillapp.com
 (mail136-20.atl41.mandrillapp.com [198.2.136.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 501cb8ad-ae4c-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 13:20:29 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-20.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4Y0C1f59TRzCf9NCw
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 12:20:22 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 730560fe07774db3ac20cc971d9ba914; Fri, 29 Nov 2024 12:20: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: 501cb8ad-ae4c-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjEzNi4yMCIsImhlbG8iOiJtYWlsMTM2LTIwLmF0bDQxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjUwMWNiOGFkLWFlNGMtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODgyODI5LjczNDYsInNlbmRlciI6ImJvdW5jZS1tZF8zMDUwNDk2Mi42NzQ5YjE4Ni52MS03MzA1NjBmZTA3Nzc0ZGIzYWMyMGNjOTcxZDliYTkxNEBib3VuY2UudmF0ZXMudGVjaCIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732882822; x=1733143322;
	bh=rmfpfsbDFbwHYuQ7LN2IP6uZaYbO5umTu7qi+Rk74XI=;
	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=NigjY8FDzJUdxKRhTdrdYF6lv/v5IfbZTxHtH60uwOjQ/tOaAOBNKNuUo33vgfKC3
	 2pXk4I6QYXIke7xDpWi8mTkEeGum1pcDjlDCngtVJFXo9eqLkm9Vv3P5aSzfNFzhOP
	 v4QrXp5EP+5AxYyIg3sQgwk+jPqv2cZuBPXwgkA3AhZALQ1VYwaKifodsLXaQbzePi
	 COBDloc1ZSW0jcqNpYWhyuOg2+pqVAN/rF4lJMY4TX0vcp7CXIFydD6+3yobreiX5Z
	 PtbxMrRi/2MrziW7IsYjVwxMFxd96Mfka4f9S1WmuhpopSP+wobytd5oQQc3a8t4t/
	 Yzn/3v66GpjDA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732882822; x=1733143322; i=anthony.perard@vates.tech;
	bh=rmfpfsbDFbwHYuQ7LN2IP6uZaYbO5umTu7qi+Rk74XI=;
	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=aqJO0sZ/gsuJ07pID9iqRHn5MB9TooSYbJmyFoQo4yMrVXwGOqQfawymycEMTaVSK
	 kH9q5JzndgyB8Ln3Jo0RAN8Wr3PfMfr+MgaAWeM0etv2bS4n1oPXfTA6SrQmwkWADX
	 P6i71s9hgHSlDdXycpE4wXEsHwLqTGBbONQmt6nE0hb+oZaIJ3mnyH2QxKmXHfnMgZ
	 zWxFxDx0Q88cVOOjwluILmTYucY2mR5I3b5SU82fC5FzLBI5Qzsl6xUVIpXt5elJBS
	 +HDHmL58yyU3Pv2xJihWr0Xd0oVRweGbYAb5XDJ+lS3otLIXvkWffEu+EiOSks7056
	 cJROM9BBvxo+A==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20libxl:=20extend=20IGD=20check?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732882821825
To: =?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <Z0mxhWjXR9ex1y8v@l14>
References: <20241129010026.2869818-1-marmarek@invisiblethingslab.com>
In-Reply-To: <20241129010026.2869818-1-marmarek@invisiblethingslab.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.730560fe07774db3ac20cc971d9ba914?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241129:md
Date: Fri, 29 Nov 2024 12:20:22 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Nov 29, 2024 at 02:00:10AM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> Consider also "Display controller" an IGD, not only "VGA compatible
> controller". Specifically, IGD on Raptor Lake has 0x038000 class, not
> 0x030000.
> 
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>

Acked-by: Anthony PERARD <anthony.perard@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 Fri Nov 29 13:04:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 13:04:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.845999.1261294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tH0fO-0007ZB-Eh; Fri, 29 Nov 2024 13:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 845999.1261294; Fri, 29 Nov 2024 13: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 1tH0fO-0007Z4-C2; Fri, 29 Nov 2024 13:04:14 +0000
Received: by outflank-mailman (input) for mailman id 845999;
 Fri, 29 Nov 2024 12:58: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=cBq4=SY=intel.com=przemyslaw.kitszel@srs-se1.protection.inumbo.net>)
 id 1tH0Za-0006We-Bb
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 12:58:15 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92c17355-ae51-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 13:58:06 +0100 (CET)
Received: from orviesa006.jf.intel.com ([10.64.159.146])
 by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 29 Nov 2024 04:58:04 -0800
Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83])
 by orviesa006.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 29 Nov 2024 04:58:04 -0800
Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by
 fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39; Fri, 29 Nov 2024 04:58:03 -0800
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39 via Frontend Transport; Fri, 29 Nov 2024 04:58:03 -0800
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.176)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.39; Fri, 29 Nov 2024 04:58:02 -0800
Received: from MN6PR11MB8102.namprd11.prod.outlook.com (2603:10b6:208:46d::9)
 by SA2PR11MB5147.namprd11.prod.outlook.com (2603:10b6:806:118::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.15; Fri, 29 Nov
 2024 12:58:00 +0000
Received: from MN6PR11MB8102.namprd11.prod.outlook.com
 ([fe80::15b2:ee05:2ae7:cfd6]) by MN6PR11MB8102.namprd11.prod.outlook.com
 ([fe80::15b2:ee05:2ae7:cfd6%4]) with mapi id 15.20.8207.010; Fri, 29 Nov 2024
 12:58: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: 92c17355-ae51-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4xNzUuNjUuMjEiLCJoZWxvIjoibWdhbWFpbC5pbnRlbC5jb20ifQ==
X-Custom-Transaction: eyJpZCI6IjkyYzE3MzU1LWFlNTEtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyODg1MDg3LjAwMDcwMSwic2VuZGVyIjoicHJ6ZW15c2xhdy5raXRzemVsQGludGVsLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1732885087; x=1764421087;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=weL3piMTjoNujiNid4RDogwwA/DCEKj+1u5pMzDG49k=;
  b=XA5wrvrXAS+wP/31ct2/sCwawW9czlA0iDUm/h/ZGVfNEoFGKj5X7aN4
   yRT97T937Y/YuzCneslKWt46nrFvGLgcx+P/EQWgLVK4iOZ+TTBC/WPuY
   +QTMQHDhCo49tC8VKAi3I06K3tY805EfEyFFmxfwpnTBOJR3CSB5P3qAi
   hSh02/cB3aAkrh0ZiHvG8nPVtw0wLt2snam54TcX0eB0mHIp2+l/Kas2C
   RW2lwd9nMFfJXrXdF93wmbSDLF+byjv3iQJYURdlvcuin6La7EeAnZiQb
   ArvLRh+buHSFspewbvYxblayPdOqn2JMOaCRkk9IdfryQNFE3ZAJsE9BV
   Q==;
X-CSE-ConnectionGUID: PDFuF+0iR2WhvXUbX4lJ2w==
X-CSE-MsgGUID: u4r9DsoORWO7Vxjc9HPOQQ==
X-IronPort-AV: E=McAfee;i="6700,10204,11271"; a="33054651"
X-IronPort-AV: E=Sophos;i="6.12,195,1728975600"; 
   d="scan'208";a="33054651"
X-CSE-ConnectionGUID: HAvQQNW/RNWOl4aOfrc//Q==
X-CSE-MsgGUID: QKzxRDpsRp2+YRSgSDDPkg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.12,195,1728975600"; 
   d="scan'208";a="92593314"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=quCbtJ24tWPmPATmSXI/wOXpATuCaCo0hIr9k7ZcwEZewHb/EuBWyTInctB5QwhSROxmEXN3PiwxGX687e7QwCYxAlBFD70gzdNI5a8r7uNBpjJWZqy9uxCqXKbkTFYWqlm7HzQFc2+yE9/f2BbXDBXPre1STezTtXrVQpV2vaJOZ/1nNyvtn+PSE/1JAAqbG/bkxJG+ApYSq82+VTLWjkX1PcITcSpGlfM0J8Rl0y6X35x1eEQM7RI77zmYQHh5gixrXJqrvrpBxim9bIJUMU28zFs1eWDnsxbKwG0fhFcgSoOfMvE+Ro/5A5OsQ5rKCZr4/tJg2yF1pLgVvvEmcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SV+OufASk8xBhFc+yWg6QA9nU9jS1Mod881QXXOOPQA=;
 b=lJRjYzW7QtP0TJ254CvUOkjztPHqGJmr37Wdd1gmdGN7C2dILYcW7EJsd+41ncfJ1q1qHgmJaGY941JBQJOQiPEGlP9tIexdimvDINiV0Wrm9lg+1ZXYDtdx3QnJPejJ6MA6mxT5sbz+WQthSO56tiBrHYLkVhwJtZCB1Go351VQJcKLR/tCNEfmn1rGlmykc/coPhXRCHztsFeZMPpe4kLsXEYN1OWauVRPxDYj+UxE45GOZm1+E7DFSGg2TStYKLnOVDNTSSgr9W/BUx+7vo9kkTrBXxAW5PDSt5fcnRAJo/tfwcjW+AUjbhXBZ/MC4Yhl76E8g8JFTWGgqYCT+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
Message-ID: <b9fcb12a-b7a4-4c33-836e-67109ce07deb@intel.com>
Date: Fri, 29 Nov 2024 13:57:52 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/21] Converge on using secs_to_jiffies()
To: Easwar Hariharan <eahariha@linux.microsoft.com>
CC: <netfilter-devel@vger.kernel.org>, <coreteam@netfilter.org>,
	<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <cocci@inria.fr>,
	<linux-arm-kernel@lists.infradead.org>, <linux-s390@vger.kernel.org>,
	<dri-devel@lists.freedesktop.org>, <intel-xe@lists.freedesktop.org>,
	<linux-scsi@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<linux-block@vger.kernel.org>, <linux-wireless@vger.kernel.org>,
	<ath11k@lists.infradead.org>, <linux-mm@kvack.org>,
	<linux-bluetooth@vger.kernel.org>, <linux-staging@lists.linux.dev>,
	<linux-rpi-kernel@lists.infradead.org>, <ceph-devel@vger.kernel.org>,
	<live-patching@vger.kernel.org>, <linux-sound@vger.kernel.org>,
	<etnaviv@lists.freedesktop.org>, <oss-drivers@corigine.com>,
	<linuxppc-dev@lists.ozlabs.org>, Anna-Maria Behnsen
	<anna-maria@linutronix.de>
References: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
From: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Content-Language: en-US
In-Reply-To: <20241115-converge-secs-to-jiffies-v2-0-911fb7595e79@linux.microsoft.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0045.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::19) To MN6PR11MB8102.namprd11.prod.outlook.com
 (2603:10b6:208:46d::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN6PR11MB8102:EE_|SA2PR11MB5147:EE_
X-MS-Office365-Filtering-Correlation-Id: 67d5165e-3df9-44c0-490c-08dd10757449
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?dkxVcnZ6ZG1sM1ZPYjdBekZPRHhJMzJOVDlWdVc4Lzg3T254OEFXSFVEbEV1?=
 =?utf-8?B?bitJLy9YVHdIeHB5Q1o4QjZVSzJZcDFHem5rTXcyMnF1VTFvU3RiQ3BUNVhy?=
 =?utf-8?B?TlZhckMvZm1GSXNaVm1ra2JjWklJM3MwWUQ2eEhSbENQa1ZSa3VXMUN2QUhl?=
 =?utf-8?B?aXIxZWdpejRINDMvb1dwM0Z1UllBQUNad3lzMEliTGRva2lOUFV3WjZrNjN2?=
 =?utf-8?B?Y1V2dmtWVmV0ejBzazAxcnFBcHpCSXpzcE9Vam1UUkEyQTRRM1pVeGYrbDJS?=
 =?utf-8?B?RkpOSEgrMEhLNklaMXJJazdSbUVFWEVoSWdsaHluQkNRWVd0Um81ODB3WS9O?=
 =?utf-8?B?N3c1a1FEejgyWkVyemxrU1VXMkdWMmF2RGtFTFpoNjNObFpMdVAzaytNU1RL?=
 =?utf-8?B?OUZwd3ZBVTk5RG1BdHNKOUFEV2JPSXVuVGdMOVY3Q0NJQmZPTTNGdUpzRkZV?=
 =?utf-8?B?NFpCTnJndkNSRkdNNzc1NzhkVzN2Z1poaGtBcmVkdElHOGpSVHA5UFlCKzlG?=
 =?utf-8?B?M3pjMUovRkxnZ2wySlFteHRqTWRhRFBHUzBiazJCcnJZZ0xSQmNPdDlQcWlz?=
 =?utf-8?B?ZWFMb0tkYU9lcFRQTjVJN2ZuZmIwb3R6K2sxTW5HeEg5RGFMUzFraXhKZVJP?=
 =?utf-8?B?bFl6WkkyU0NOL1g2OFBTVUUrNEhJc2d4YTZnRHl2em9kVHZNZkRFQnVQSFRX?=
 =?utf-8?B?bDNjM2NndjB3WkhITmtMb2w4U3NNSjZRdE1XRUNMQjNVejEyQkdhaUtnUWRk?=
 =?utf-8?B?Vndia0hpeFFUaERTWUtjYWdZK0c5d0NHelZPNFRpVWNmd0ZpVmVUNk5wSUx0?=
 =?utf-8?B?QW5DN2xLREVFaXRlZWJ1Tnp1RDMwYS8yN0ZZempwbXhudzNJUE5vczhuZ2N4?=
 =?utf-8?B?UTJya0tlYWcrM1ZNdWI3UFo5WHo5QTE2bUhvVi9ITXpSOHdlczREY1FodStv?=
 =?utf-8?B?QXR6RDdheE9NSmNHTVhJV1RMNk10djE4anhhL0I2dnhveFZLNkhuZWw0ZndJ?=
 =?utf-8?B?OEhNK3Z4SGtDVHZHeCt2NU9SRjdIMEl2MWRBVGFpV2NpWlpIMmY5ZktTdlY5?=
 =?utf-8?B?L0RHL0tTdkNGRUl2alA5VW1ROUlLWnRUSTdNMXB2YkVVa3NIUDZKckNaWG1I?=
 =?utf-8?B?cmdvaEJYVWYvdWFIYVYyMCtKeGY4RGpVb3hjbDVqblVHTU1mQVd2djNCaGFV?=
 =?utf-8?B?QnZTaDlSWGtyVjJTL0pvQVRjc282VFpMdG0xVVUzb05PUit3VG1SVWN3T0tP?=
 =?utf-8?B?VldMMG4zdk1BZGhUVjZNZ3YvVVZaNFRIZkx4MHk4YXF2QTg4U2pUWlRXdS94?=
 =?utf-8?B?VHp1VFFXNEU1elUzQVJZbWNTcS9YOWlLcUwySzhZWDd6aWRRcUMvTVpzL1Bq?=
 =?utf-8?B?ZEN2anZzNEJVMmQ5Q0xpbW15cFdLa2NiM2RGYnZvZU4zSmQyaTNkS1VxMENx?=
 =?utf-8?B?WWprTEpoVkg1WEJrQ3Z2SlpEOVA5dXdkY3p4NnBWNmhBYlpnZXFWS3V4dmVy?=
 =?utf-8?B?RDlyQ2ZrZ3B5VlR2TkFOUWVqb0NJT05UazByRlRoUnJIbmNYNi8xTk1WM0Zt?=
 =?utf-8?B?cExlWS85VWJiU0MwaDNPQnBXMTc1ZStybFY5SkNWSitvUXh0cUFObE04R2pa?=
 =?utf-8?B?NlZMalFXWURBaDgvdFpISm9yVHFGaStaUHlHckJWNmpxVUhObVMrcnV1NTU1?=
 =?utf-8?B?anloQTgzZllIUFVLYmZnYjJYV3kvMUJqSlJ1M3BtQ2orbnlsRzFIK2hMN0or?=
 =?utf-8?Q?kqlUCgrkXGW14PGqqE=3D?=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8102.namprd11.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?TzBicjlHQkRsSklUZGpsMVBLRW9WOUVoUUxVMTZLREpncm9KZGhPN2hKa0cx?=
 =?utf-8?B?S1NHZHNaKzJjM1ZleElOVjVPSkh0eklmRFY1enpxWk9TUFlnbkoxeGdzMXNn?=
 =?utf-8?B?NFVjTks5ZjZCRndhR05rTzBQQmdaM2FBaWNGK29wOTZmc2gyS1JWdlczQzZo?=
 =?utf-8?B?OFlSd0FUQVBtaGNzak1nbHQ4cFZVRDNvbDB2Qm54RURlOEZEL01xN1JTMFRk?=
 =?utf-8?B?U1NOSDE5UTdiUWl0TjlKSG96eUtPQ1lPL2Z0Q2dUSFRBQUNTeWdkSHY5YTBh?=
 =?utf-8?B?cVNRZys3RXVTbmJkdm01VExFV0tKaW1NbUdDUDhUZzk1VWVWTkZEcWo1aU1o?=
 =?utf-8?B?cGVJY1VuMmdZbmtxaHQ2UC94OFBhVzRBOGJCbzk0b0FCcDd6UlliQnFBaXB4?=
 =?utf-8?B?ZUhRb21KZ2VlNG9FTjIvUGxxb3BvUnM0Tk00NUlsQzN1NVFIcHFZaUxHVGtG?=
 =?utf-8?B?ZitGeGtHR05mMzd0M1Y5QlpPLzlqTlFMR2xrbjhjTW5OdndkL3lGM0lQNkhP?=
 =?utf-8?B?MEdwZ2FPTnc5Sm85Vm5pOFRmTTl0akdlRFhIR2h2bktZTFBFeHdsQ0dNUlI4?=
 =?utf-8?B?S3dDUWJUM0xoRVZ5R21TaUMwelozRGdkVzVzemhTTFBTOWxnNTUwSjdVcUtj?=
 =?utf-8?B?Q2VQOVZEWXYzQWJpd0ViQnpwR3I2MWVkVkMweWc1Nm4vWkhBVzhxQmFzczA1?=
 =?utf-8?B?VTJ6NVdoeGVuZ2dOQzlWQzFYQ1c5UStNWHVhRmlzbGlGS0lERVFaSFFxUUpI?=
 =?utf-8?B?cURYMEs3RStNbCtMZmlJNDhzVjlhTjFwRHdzZjlrYlR1S0I5RkVYUDhKbXk5?=
 =?utf-8?B?Tm41ZUhiMnlQZnhER0w0NU1GM01FWGxJSHFUeURaUis2Tng1T1Z5a04wdUJM?=
 =?utf-8?B?MWxVbCszdk42UUpZM1pVMWVZQTFzc3pySUlzOG5WN2tXZm11cHZmUG9Ddkx1?=
 =?utf-8?B?SmdmbFVJMnljR1RQam1xR3BSd29oYmJjcGZNVU5qL3hzYUtMWTN2UHBrMlJ4?=
 =?utf-8?B?d1ZoSmFrVU5GQXc0N1J5Rm1HeVRwSXVHUGhXOHhIWW1lMkYwNTFudFlwMUlz?=
 =?utf-8?B?bzlzcENOblQ4U2k1NTRLeGoySW9pdmJZZjIyL3dwQTdvaGk1cnUzUE5yeUdr?=
 =?utf-8?B?OVRSWDNIZUgwMkd0UmZ4TFZnNzhpSitJSm8xRjB4TUcxbVl3cmxscDhZNzRI?=
 =?utf-8?B?cEtYLytwY0h4RGJOY1d6U01PYVI0cUh3Vm0zOEhsV2paN2U3VTZ5TTNwS2F0?=
 =?utf-8?B?Q1I4OFlpMnY3UjV0NXVVSmJiYzF3bklpVlJOMW1Wc21NZVc3ZXdTbzBBUHp1?=
 =?utf-8?B?KzluVlN4UnFPem9PZEZhODI0L05BNWVZRnBkbVZCU1Bkb2JYQWZVRTZObGcx?=
 =?utf-8?B?ZFpTNzVZZXdBVEtSc2o4YzdXdXRnY2p0b0tLTzFVR296cEg3ZkFlYVAwMXc0?=
 =?utf-8?B?Z1lka1lNQjNHZDdISXNCQTFXRkRiWkNFWk9SbmhvRkJSSlRLWWRGaWFtTllq?=
 =?utf-8?B?c3plVkVtRTB6ZGYrSG9KbjkwOXB4a3h6cnNVc0FZWDhNVUV3ZDVGcVRsRW40?=
 =?utf-8?B?YjhQeThqMkYwQzE5dHpWUDg5cmVObE1DRGlGL0IyMWZCR1ZrYU1SYmY2eUUy?=
 =?utf-8?B?VVZNTmpRUzRnc2FnSEVIbEJidmFGdEVEblExcVJIV1RnR3VEOFpxTEJoZmlk?=
 =?utf-8?B?NnJXTmZOWXFVV244ZzFhSHhQUGtKaHUvcUptdzJ1ZXRTRlM2djdxaHFwZndM?=
 =?utf-8?B?VUlMTjJBUS90ME9EQUhVU2tHcVdrTFYrWjVWNkZsWGNyRjAyc2JSUUYxY0tj?=
 =?utf-8?B?c3RKZ1pFenJ3RjZwWUJtbXpKQmhxWXBpUlRIR3ZXUnVqWDVVVlplbmtUZTN3?=
 =?utf-8?B?WHZld1VzY2pQWnNyeldBV3FHM2xobmpiTC9rM29IS29yaVJYYWJScnQwdHNY?=
 =?utf-8?B?SVFXa1czanVTdlg3Ny9leFlURnRqUGVDZHg5U0Vrb1c3TUdwVGlWdFlYS1Z2?=
 =?utf-8?B?RFVSZzlOMk91N0ZrU2F6RGQ0ZkRvdjJzRmdIRVZMeUd4ZUQxRHp2NXl4d1pU?=
 =?utf-8?B?YXdBaXFGUGUvR3BNOUF4c0pGOE1FQ005eWd1Q2ZaR1FxYkFLc1krYWFtTjk5?=
 =?utf-8?B?anFqOG5TNWNyRlZJR3N5UGY4bmtsVHRNRjA2S1pvbzRtNVhqYmNvNUVRNkhn?=
 =?utf-8?B?T0E9PQ==?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 67d5165e-3df9-44c0-490c-08dd10757449
X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8102.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2024 12:58:00.6662
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7oJDD6qW2ylePjbQiFLukqf725XNvKEjJdGC96Qc7GsdtHc8H4mr0M/UZyhXA11t6B6X2TWAYoqh/Ueo1h3WJ/GmLtyX9JwWT9WrZpqkg70=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5147
X-OriginatorOrg: intel.com


[removed most non-list recipients, it's just too much]

On 11/15/24 10:26 PM, Easwar Hariharan wrote:
> This is a series that follows up on my previous series to introduce
> secs_to_jiffies() and convert a few initial users.[1] In the review for
> that series, Anna-Maria requested converting other users with
> Coccinelle. This is part 1 that converts users of msecs_to_jiffies()
> that use the multiply pattern of either of:
> - msecs_to_jiffies(N*1000), or
> - msecs_to_jiffies(N*MSEC_PER_SEC)
> 
> The entire conversion is made with Coccinelle in the script added in
> patch 2. Some changes suggested by Coccinelle have been deferred to
> later parts that will address other possible variant patterns.
> 
> CC: Anna-Maria Behnsen <anna-maria@linutronix.de>
> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> 
> [1] https://lore.kernel.org/all/20241030-open-coded-timeouts-v3-0-9ba123facf88@linux.microsoft.com/
> [2] https://lore.kernel.org/all/8734kngfni.fsf@somnus/
> 
> ---
> Changes in v2:
> - EDITME: describe what is new in this series revision.
> - EDITME: use bulletpoints and terse descriptions.
> - Link to v1: https://lore.kernel.org/r/20241115-converge-secs-to-jiffies-v1-0-19aadc34941b@linux.microsoft.com

that is not a proper changelog, you were supposed to edit those
placeholder entries; please look around for examples

There is also just too much recipients. Please split up your patches
into smaller pieces. You will also learn the process on a smaller
sample.

And definitively please wait for 48h before reposting such big series.

Regarding code - you could also convert msecs_to_jiffies(const * HZ),
there are 10 that are greppable.

> 
> ---
> Easwar Hariharan (21):
>        netfilter: conntrack: Cleanup timeout definitions
>        coccinelle: misc: Add secs_to_jiffies script
>        arm: pxa: Convert timeouts to use secs_to_jiffies()
>        s390: kernel: Convert timeouts to use secs_to_jiffies()
>        powerpc/papr_scm: Convert timeouts to secs_to_jiffies()
>        mm: kmemleak: Convert timeouts to secs_to_jiffies()
>        accel/habanalabs: Convert timeouts to secs_to_jiffies()
>        drm/xe: Convert timeout to secs_to_jiffies()
>        drm/etnaviv: Convert timeouts to secs_to_jiffies()
>        scsi: lpfc: Convert timeouts to secs_to_jiffies()
>        scsi: arcmsr: Convert timeouts to secs_to_jiffies()
>        scsi: pm8001: Convert timeouts to secs_to_jiffies()
>        xen/blkback: Convert timeouts to secs_to_jiffies()
>        gve: Convert timeouts to secs_to_jiffies()
>        wifi: ath11k: Convert timeouts to secs_to_jiffies()
>        Bluetooth: MGMT: Convert timeouts to secs_to_jiffies()
>        staging: vc04_services: Convert timeouts to secs_to_jiffies()
>        ceph: Convert timeouts to secs_to_jiffies()
>        livepatch: Convert timeouts to secs_to_jiffies()
>        ALSA: line6: Convert timeouts to secs_to_jiffies()
>        nfp: Convert timeouts to secs_to_jiffies()
> 
>   arch/arm/mach-pxa/sharpsl_pm.c                      |  6 +++---
>   arch/powerpc/platforms/pseries/papr_scm.c           |  2 +-
>   arch/s390/kernel/lgr.c                              |  3 ++-
>   arch/s390/kernel/time.c                             |  4 ++--
>   arch/s390/kernel/topology.c                         |  2 +-
>   drivers/accel/habanalabs/common/device.c            |  2 +-
>   drivers/accel/habanalabs/common/habanalabs_drv.c    |  3 +--
>   drivers/block/xen-blkback/blkback.c                 |  2 +-
>   drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c            |  2 +-
>   drivers/gpu/drm/xe/xe_device.c                      |  2 +-
>   drivers/net/ethernet/google/gve/gve_tx_dqo.c        |  6 ++----
>   drivers/net/ethernet/netronome/nfp/nfp_net_common.c |  2 +-
>   drivers/net/wireless/ath/ath11k/debugfs.c           |  2 +-
>   drivers/scsi/arcmsr/arcmsr_hba.c                    |  2 +-
>   drivers/scsi/lpfc/lpfc_init.c                       | 18 +++++++++---------
>   drivers/scsi/lpfc/lpfc_nportdisc.c                  |  8 ++++----
>   drivers/scsi/lpfc/lpfc_nvme.c                       |  2 +-
>   drivers/scsi/lpfc/lpfc_sli.c                        |  4 ++--
>   drivers/scsi/lpfc/lpfc_vmid.c                       |  2 +-
>   drivers/scsi/pm8001/pm8001_init.c                   |  2 +-
>   .../vc04_services/bcm2835-audio/bcm2835-vchiq.c     |  2 +-
>   fs/ceph/quota.c                                     |  2 +-
>   mm/kmemleak.c                                       |  4 ++--
>   net/bluetooth/mgmt.c                                |  2 +-
>   net/netfilter/nf_conntrack_proto_sctp.c             | 21 ++++++++-------------
>   samples/livepatch/livepatch-callbacks-busymod.c     |  2 +-
>   samples/livepatch/livepatch-shadow-fix1.c           |  2 +-
>   samples/livepatch/livepatch-shadow-mod.c            | 10 +++++-----
>   scripts/coccinelle/misc/secs_to_jiffies.cocci       | 21 +++++++++++++++++++++
>   sound/usb/line6/toneport.c                          |  2 +-
>   30 files changed, 79 insertions(+), 65 deletions(-)
> ---
> base-commit: 2d5404caa8c7bb5c4e0435f94b28834ae5456623
> change-id: 20241112-converge-secs-to-jiffies-d99d1016bd11
> 
> Best regards,



From xen-devel-bounces@lists.xenproject.org Fri Nov 29 14:51:30 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 14:51:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846028.1261305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tH2Ku-0003Jq-O5; Fri, 29 Nov 2024 14:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846028.1261305; Fri, 29 Nov 2024 14:51: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 1tH2Ku-0003Jh-KD; Fri, 29 Nov 2024 14:51:12 +0000
Received: by outflank-mailman (input) for mailman id 846028;
 Fri, 29 Nov 2024 14:51: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=Y5mU=SY=bounce.vates.tech=bounce-md_30504962.6749d4d0.v1-12fcfe0bf84843e594a39beb982d550a@srs-se1.protection.inumbo.net>)
 id 1tH2Ks-0003JZ-Hy
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 14:51:10 +0000
Received: from mail180-27.suw31.mandrillapp.com
 (mail180-27.suw31.mandrillapp.com [198.2.180.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 576715d3-ae61-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 15:50:58 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-27.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4Y0GMN4mxdz6CPyPr
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 14:50:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 12fcfe0bf84843e594a39beb982d550a; Fri, 29 Nov 2024 14:50: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: 576715d3-ae61-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC4yNyIsImhlbG8iOiJtYWlsMTgwLTI3LnN1dzMxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjU3NjcxNWQzLWFlNjEtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyODkxODU4LjM3NzU5NSwic2VuZGVyIjoiYm91bmNlLW1kXzMwNTA0OTYyLjY3NDlkNGQwLnYxLTEyZmNmZTBiZjg0ODQzZTU5NGEzOWJlYjk4MmQ1NTBhQGJvdW5jZS52YXRlcy50ZWNoIiwicmVjaXBpZW50IjoieGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIn0=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732891856; x=1733152356;
	bh=+ZBetPMI2OwnoEKFVuJ+NhQwKrv5m2cvszeiHnM3vMU=;
	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=Mopn4DU2ri3B3fjAehbIEy6E2wIJtBgnmRF3Zekd+ONi5RKT9yjT0lHA3yplERgsQ
	 uNlCKlZF+s1pwatnvaWGcWmsWryTAP2hx/v264xNGFlxk9/HBula7T1nfAWYv2G/iO
	 hDHMMnjq7h3SiqBWfo6iVkVSAKX0PQ3ErOV5BqhJa3XBr2qFwWrVb0cVRw24FgJOto
	 PW/wiKcO/0mULHUllMtl4eyEe8DZznYZWIre2zBgXue5NmAXdYsOLEtO0j5ZkoUGAG
	 eet+ZC2nK7bSYhqwBeiNi5W2OkPv50Bg4+PnGjuL2VueIXfP59/JrGmmOxjH2TLTsv
	 oRMvDVF1LRyKA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732891856; x=1733152356; i=anthony.perard@vates.tech;
	bh=+ZBetPMI2OwnoEKFVuJ+NhQwKrv5m2cvszeiHnM3vMU=;
	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=niPqc8uDauQ0WXGCW4eVJjt7IunEfYd3gb96Iyz6kTewn3Tudd/kWBZfR0qtwiznb
	 74rLv5YCuoctB/dIH9+4qjzpIZGcn+AEYSaBNRHTJtcklhWlk+UqgdrenbBop/x7Oa
	 02wcjM664PApkbN8eqYSpqE+d4AUZYAfvjJItX5K6TMrwZUf5hoYjkIPsmb4f1cGcc
	 B7imnMxS4JaoNoyYFFMw3T+77k29mdlh22r3BjBpXhxXiC3jjVrbX+71+Syn2h1YJo
	 FUEH/rWdoZrUTAfJeMVMQazSq5s1ifb4w4PbG9Nj2dZ8DEZrdKYDE9iULAI+4aaNUL
	 +OyYwGbXRO/WA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=202/5]=20build:=20add=20possibility=20to=20use=20LLVM=20tools?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732891855469
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-Id: <Z0nUzQk5Nr7WQ2kI@l14>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com> <20241129014850.2852844-3-volodymyr_babchuk@epam.com> <57291d0d-fe7e-4410-8cc5-a2bed0de108e@suse.com>
In-Reply-To: <57291d0d-fe7e-4410-8cc5-a2bed0de108e@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.12fcfe0bf84843e594a39beb982d550a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241129:md
Date: Fri, 29 Nov 2024 14:50:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Nov 29, 2024 at 08:57:47AM +0100, Jan Beulich wrote:
> On 29.11.2024 02:49, Volodymyr Babchuk wrote:
> > Currently, even if we are using clang as a C compiler, we still use
> > GNU binutils. This patch adds new option "llvm" that allows to use
> > linker, objcopy and all other tools from LLVM project. As LLVM tools
> > use different approach for cross-compilation, we don't need
> > CROSS_COMPILE prefix in this case.

It might be worth explaining what this different approach is ;-). My
guess is that you ask llvm/clang to build for a specific arch, via
XEN_TARGET_ARCH=riscv64, and llvm doesn't need different binaries will
just do what is needed, right? (with -march I guess).

> This new option is meant to control both toolstack and hypervisor builds?
> As to the latter, I assume you're aware we're trying to move away from
> this kind of command line control of the build.

Having "clang=y" is a bit useless when one can do "CC=clang" and let
the build system figure out what CC is. That's at least true for the
build system under "xen/".

But if one want to use the whole LLVM toolchain, it as to write a lot
more. To build Xen (just the hypervisor) with it, one would need to run:

make CC=clang CXX=clang++ AS=llvm-as LD=ld.lld LD_LTO=llvm-lto \
    ADDR2LINE=llvm-addr2line AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm \
    STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump \
    SIZEUTIL=llvm-size

So while it's possible, maybe introducing "llvm" or "LLVM" to switch
toolchain might be ok, to help. (Just because Linux did just that
recently:
    https://www.kernel.org/doc/html/latest/kbuild/llvm.html#the-llvm-argument
)

Beyond switching toolchain, I don't think $(llvm) or $(clang) should be
used in the build system, and instead rely on autodetection for
arguments. (There's already $(CONFIG_CC_IS_CLANG) and
$(CONFIG_LD_IS_LLVM) in the hypervisor's build system, via Kconfig)

At least for the hypervisor. For the toolstack, we should probably deal
with toolchain in ./configure.

Thanks,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 17:37:03 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 17:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846047.1261314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tH4v9-0004Lb-Qb; Fri, 29 Nov 2024 17:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846047.1261314; Fri, 29 Nov 2024 17:36: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 1tH4v9-0004LU-Ne; Fri, 29 Nov 2024 17:36:47 +0000
Received: by outflank-mailman (input) for mailman id 846047;
 Fri, 29 Nov 2024 17:36: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=NII6=SY=bounce.vates.tech=bounce-md_30504962.6749fba9.v1-b9d7cae373384516aaaa8034e390a343@srs-se1.protection.inumbo.net>)
 id 1tH4v8-0004LO-LS
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 17:36:46 +0000
Received: from mail180-27.suw31.mandrillapp.com
 (mail180-27.suw31.mandrillapp.com [198.2.180.27])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ed052c2-ae78-11ef-a0cf-8be0dac302b0;
 Fri, 29 Nov 2024 18:36:42 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-27.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4Y0L2d0l3Fz6CQDrq
 for <xen-devel@lists.xenproject.org>; Fri, 29 Nov 2024 17:36:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b9d7cae373384516aaaa8034e390a343; Fri, 29 Nov 2024 17:36: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: 7ed052c2-ae78-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjE5OC4yLjE4MC4yNyIsImhlbG8iOiJtYWlsMTgwLTI3LnN1dzMxLm1hbmRyaWxsYXBwLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjdlZDA1MmMyLWFlNzgtMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyOTAxODAyLjkwMzc5LCJzZW5kZXIiOiJib3VuY2UtbWRfMzA1MDQ5NjIuNjc0OWZiYTkudjEtYjlkN2NhZTM3MzM4NDUxNmFhYWE4MDM0ZTM5MGEzNDNAYm91bmNlLnZhdGVzLnRlY2giLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1732901801; x=1733162301;
	bh=2DFaOg6NuCFtrE/G4yKsOhsAMmOaVP7yOxEacPXZjy8=;
	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=n+purXCCvPT7Mh6jL/Hofbk4MNnlQvWPYMGBZkdJb1p3vJUurufsCIswJsIECGh4i
	 rO5BY3LHzeBbPLNb5gcEM54x0g0nLCGPqzm267ErHEyi4dqWLT7JaHPwkbRVLqXzk1
	 ceszh/rIhomYi04yhrqd5Z4jmKK4Nfj8zAfIcXy9bwBNvezbXVc2SOeDJjEnVZKVY4
	 WKlwLygfREYurDH101VCh5Af5aOtq3lpQySJhs/GOq5Jcyr0bJhnZxSprmdkjTZFB5
	 P7FUAkT++nbC7oIhUBIdPew1ckJu3SAg9t2NQ1neJhKhSFGlott/g/8tueZkz5kGIa
	 6vTSgMUsDHLfQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1732901801; x=1733162301; i=thierry.escande@vates.tech;
	bh=2DFaOg6NuCFtrE/G4yKsOhsAMmOaVP7yOxEacPXZjy8=;
	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=pM1PdLasCaDY9qGJFRDrpduvkkNtPlKq9Mmq3ABo0BwJSRz/Y/DC8kZrCJ1fGT8gq
	 j69VTLooXWwMq550umE8JAQO7de2+VlhUEIDVqYljuJmxLIakpmnGdQQ6PngX9Y8mh
	 k56hmwQH0wXAQBzCajnBKfnDCjOKY7R1UdAv5F6qqyddx9uKERM1RDCBCQrg3uCy8T
	 JLhbxW3zJ6Z0p5ZmgcsyDgoZksYbhqLaGtyz6kxPjfJUKtI9nZKF74ty7PbR+fkhJX
	 yDm5GOjpsSxQK8bV+IkiewPIXfOrbYm1x3eEUFLfunMtWuz57MZ8MBkZvMnKbD82hr
	 i1tYoRtZ/SNGQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=201/2]=20xen/swiotlb:=20add=20alignment=20check=20for=20dma=20buffers?=
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1732901799832
Message-Id: <e6ceb22d-3fa7-430c-9410-3c5ffd9ded2d@vates.tech>
To: "Juergen Gross" <jgross@suse.com>, linux-kernel@vger.kernel.org, iommu@lists.linux.dev
Cc: "Stefano Stabellini" <sstabellini@kernel.org>, "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>, xen-devel@lists.xenproject.org, jbeulich@suse.com
References: <20240916064748.18071-1-jgross@suse.com> <20240916064748.18071-2-jgross@suse.com>
In-Reply-To: <20240916064748.18071-2-jgross@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.b9d7cae373384516aaaa8034e390a343?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20241129:md
Date: Fri, 29 Nov 2024 17:36:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi,

On 16/09/2024 08:47, Juergen Gross wrote:
> diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
> index 35155258a7e2..ddf5b1df632e 100644
> --- a/drivers/xen/swiotlb-xen.c
> +++ b/drivers/xen/swiotlb-xen.c
> @@ -78,9 +78,15 @@ static inline int range_straddles_page_boundary(phys_addr_t p, size_t size)
>  {
>  	unsigned long next_bfn, xen_pfn = XEN_PFN_DOWN(p);
>  	unsigned int i, nr_pages = XEN_PFN_UP(xen_offset_in_page(p) + size);
> +	phys_addr_t algn = 1ULL << (get_order(size) + PAGE_SHIFT);
>  
>  	next_bfn = pfn_to_bfn(xen_pfn);
>  
> +	/* If buffer is physically aligned, ensure DMA alignment. */
> +	if (IS_ALIGNED(p, algn) &&
> +	    !IS_ALIGNED(next_bfn << XEN_PAGE_SHIFT, algn))
> +		return 1;

There is a regression in the mpt3sas driver because of this change.
When, in a dom0, this driver creates its DMA pool at probe time and
calls dma_pool_zalloc() (see [1]), the call to
range_straddles_page_boundary() (from xen_swiotlb_alloc_coherent())
returns 1 because of the alignment checks added by this patch. Then the
call to xen_create_contiguous_region() in xen_swiotlb_alloc_coherent()
fails because the passed size order is too big (> MAX_CONTIG_ORDER).
This driver sets the pool allocation block size to 2.3+ MBytes.

>From previous discussions on the v1 patch, these checks are not
necessary from xen_swiotlb_alloc_coherent() that already ensures
alignment, right?

[1]
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/scsi/mpt3sas/mpt3sas_base.c?h=v6.12.1#n6227

Regards,
Thierry


From xen-devel-bounces@lists.xenproject.org Fri Nov 29 22:12:54 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Nov 2024 22:12:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846068.1261328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tH9E6-0001Hw-NV; Fri, 29 Nov 2024 22:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846068.1261328; Fri, 29 Nov 2024 22: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 1tH9E6-0001Hp-KY; Fri, 29 Nov 2024 22:12:38 +0000
Received: by outflank-mailman (input) for mailman id 846068;
 Fri, 29 Nov 2024 22: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=3Fhq=SY=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tH9E5-0001He-B0
 for xen-devel@lists.xenproject.org; Fri, 29 Nov 2024 22:12:37 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2612::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 082e471a-ae9f-11ef-99a3-01e77a169b0f;
 Fri, 29 Nov 2024 23:12:34 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by VI0PR03MB10831.eurprd03.prod.outlook.com
 (2603:10a6:800:263::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.20; Fri, 29 Nov
 2024 22:12:31 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Fri, 29 Nov 2024
 22:12: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: 082e471a-ae9f-11ef-99a3-01e77a169b0f
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMjo6NjJmIiwiaGVsbyI6IkVVUjA1LUFNNi1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6IjA4MmU0NzFhLWFlOWYtMTFlZi05OWEzLTAxZTc3YTE2OWIwZiIsInRzIjoxNzMyOTE4MzU0LjEyMDkyLCJzZW5kZXIiOiJ2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbSIsInJlY2lwaWVudCI6Inhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyJ9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n9P2qEdI8waFsh57ETUH0CTkZ6cv9NacmsjcJm3QItRgpLxXipR/2IUjvDhy5ByBj9xbH4FlQQypeFwT6o+/n9UzWp2s/IK3nkCMve5eerOyUgtnAS6t4Q7+2tSng4uT7wUTjMY/n0mYDFQ++qmOVGk1a9d6p7S1TKK/NdAW23S8Pqq1QpzBGHAApS2t/hCtOFdE5qE6h+jMVxjfXzY+m37xIJ1c4JBSv08dSsBZMvVCVe6yZDPpCLqWTOihJnLt3eHTtGl6Ty/7eyt/pV2Aj0sMTxVWayIaWX7DXYQP6y3ue5v69qE2QsrgTPtAIL3aJWlHvOSBe3rjns0S/dt1CQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zDI37MTGwsTOjaf0fbNTmdswCc6H9iBRmrI5tKAopRc=;
 b=J7t9wje1yHh2aeZa5DxWYkOwcDw6l1Bjk7XS7lZOg23vW0FdyTtXF5S0PdFraO8BI8g8wIwtrdTn/yidikZUjBzBdUaM3Pzo/j2DgCcTXC//udjO3npTcOYpMUao1OyG9vsgOEZr1InAGx1WR1nSUQZ64K5WlaKPnwxIvP4Tf2e8OU0/eN+EvLEUgXwd0Buhe52brQwFSaUgnt8Jt52K+klNgLeW2wWwBCX9dQESlwjOjRZnRAuwH4cEqSm3OXPzezFMctECUMRWPacQIhKTfy6JvoIsNbYdm6HV08oTKudVgTTsvSMNJTXaqOVmPYHaz6GZUdKeq/1+3xIVArL/dA==
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=zDI37MTGwsTOjaf0fbNTmdswCc6H9iBRmrI5tKAopRc=;
 b=bP0WFfVrCKGNHHOPEtmM0WxSMGQd7zY123xqrs1bw5dIcRbh7e6eEj5izfgLi/z1CvUeDlMES/EjqB69EzFZ+mSr+jaXWNzrXIbVVAYJhWbI3r1Bkq8ZYcXjU34OQgryV5FMegTFBK0A6bXa16YpEvBn9NUQPc2knk7+80c5IWJ+HY51vxPYL81inKNpq9fKArNm4d74VLzTKSXeqwlhBQDNzujbbAXUYmVGXdpie14d35OWiMIfKhRnnQPgJby1o27m2CW6GxqBoLpIc/59AtaTEXAjSzUdiNFhCWlkymG9DYQuFSn1jDLlf0k2W/xSX5kOkQWcTYA8CsfgCFhYUQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 3/5] build: arm64: provide -target and -march if using
 clang
Thread-Topic: [PATCH 3/5] build: arm64: provide -target and -march if using
 clang
Thread-Index: AQHbQgDiBM9r6Gu0CEmbvf51boI0mQ==
Date: Fri, 29 Nov 2024 22:12:30 +0000
Message-ID: <87iks5bsgd.fsf@epam.com>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
	<20241129014850.2852844-4-volodymyr_babchuk@epam.com>
	<d8bdd084-3e0a-40aa-b829-534219b24df7@suse.com>
In-Reply-To: <d8bdd084-3e0a-40aa-b829-534219b24df7@suse.com> (Jan Beulich's
	message of "Fri, 29 Nov 2024 09:04:23 +0100")
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: GV1PR03MB10456:EE_|VI0PR03MB10831:EE_
x-ms-office365-filtering-correlation-id: 4d642a54-cf9a-43b4-7a1a-08dd10c2ead5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Ljgyo9Xw0AclLYOjebp9EzJvH0KsNzuu+8TvLaUqaKxfPg5rln3mZRJHz2?=
 =?iso-8859-1?Q?ZSXSi7H7AiFIpPx0SNKSillHetOH0Vu+JMnrZOOUd7MDyHFC+YjFn8fiRI?=
 =?iso-8859-1?Q?1QWENZc6FFByxo+367g61nQLQO/iuSVxpKngiZ+Cl7P3RCgVv9RrtBT9S7?=
 =?iso-8859-1?Q?WiCwhFZdJhn3agkmuKeSGmw7X8alRrKIKs7n6ih1Q2apTq4NMIO75dyoPL?=
 =?iso-8859-1?Q?cC2s2XhtjovgfzK3ESibGL5wUvKY0U18Zo9jeYCRgwx6Cb1EgKxUMQb7iy?=
 =?iso-8859-1?Q?2rxGv1eYmgdi7gV169STJLjbv9XshLa5DN4gQd11yXhs0WxEdXUQQrRIyZ?=
 =?iso-8859-1?Q?pbqT0M7qU9mwkD31z5+IEEkgvCeRvxw2+baK0pl+unF3U4vMcyIOCiz1VE?=
 =?iso-8859-1?Q?tzunB2kh29kr/fk52Jpc0+VDbqcnHrg0X6ciLc+mEDxScbMDuMJvvnXKcp?=
 =?iso-8859-1?Q?MfqTFUL9HdOTBao3s5Y2s+DSdHvDEs2/XF890HrXoPcEweR2ZrbtEu0yqi?=
 =?iso-8859-1?Q?MgkFnKnOWVQZeC7QPgj3SK2OpfU3eu+J2iuh38f6dih/pEnb9EuYseC3Tt?=
 =?iso-8859-1?Q?G7viB71dbhVobm2wBrh/NmlpryBQPSVgodhWVXjT7rsB6oGYuVfRyvdOqM?=
 =?iso-8859-1?Q?4P7Yov809Z4AUmgicM05TCJKVbB3MdyQwemhcWv8wav0bnhG7JIFdwHD29?=
 =?iso-8859-1?Q?PrT+tAZuG8EzbSzdE7nrhPyFna0Rt2sGdnXqx7jsbCJUFuj6WbE9u3YXPH?=
 =?iso-8859-1?Q?vPcMKE9EUZQwpHWj8LZiNO7d8ra5Llrr7mJT4WTfEW4r5cIbTOrnwwNzjk?=
 =?iso-8859-1?Q?np1aNvOfRnC9YM6uLwsde87eeqW9bW8Sio3NYePRazEnZLFKkJ3hIB4etZ?=
 =?iso-8859-1?Q?hseXswlPnF0zeA9phMhg1sGRtSY7fCYy7Qm6if9rHuBssnWASw7NarzEdK?=
 =?iso-8859-1?Q?YiJBj/PiCb1De0d95HdEMZf3qmFxy8QNKuWZZ0OHN4QKFvcmFxkvlQVQl7?=
 =?iso-8859-1?Q?iiC13YMYpKeg0Xgu9ght3y8bLHF7jwLLByyNxlzCLCpgdV+/T00X6DpcV+?=
 =?iso-8859-1?Q?BNr4MLjZK6k95au+1QgAHPEWjwHWUCIEn52nofHBESWYTzH1+7t8HGq0Tm?=
 =?iso-8859-1?Q?YASjroj0vNjyJu2oRuAjXMua1cVxbyJApUJO2TaYJxg7mHieNHgnc69TLF?=
 =?iso-8859-1?Q?keBxHz2PRMd4XdttyY+C6MgOMSKfPfMaHVSeD5GMlSL4suMhaRUX9PakrF?=
 =?iso-8859-1?Q?mAzIDDpmVPb6ZZXus12w0z0ztgvZNsy3qIRu+r8rC3eMmnXHsNsy3/NdWS?=
 =?iso-8859-1?Q?ZsiR3og2/j5oZVjs74B7hRPAU8OVojTQ6xHaKwg66i29SDIMK00sYtA7q0?=
 =?iso-8859-1?Q?HYMAFZc8JHSm9PzSJ6w1rTeAI34Qtk9DNBFLaaLzR7QnVTiKgzkyIyv9cP?=
 =?iso-8859-1?Q?s/dC/suRXPGIANx9+uhWObaVCRsMQH4XKZOBag=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?st6vUo8kgMyl/hQJlkIRQp4GTys+Km31ObCoEK/IJ40Q5Wqy1ddZ0C7qS1?=
 =?iso-8859-1?Q?WNvtJ2lH8NNzGkj+gVqL048YoLZoapmTSRxAiIqQL5pTzqedo2E95RlMld?=
 =?iso-8859-1?Q?ti8saP83oHihEpdGUqncGFbvJhjy5TQtjiXO9WXpTvDxs23YpzvBmZKG9r?=
 =?iso-8859-1?Q?GvqDE8b4oyBGrguGBlvQKTfzDlOtdn27GHxiScnqisBhfpsXTfzB5Iqbeg?=
 =?iso-8859-1?Q?BBRh/0pJiJ6cofWICr1qxA008O5aJxsEmMrNxQOIyRYKzwjO17fUIAJFLt?=
 =?iso-8859-1?Q?RusAyRed43T4YGCg8e5Wj0v3e1Att9FT9scTqJeE2mJfJGcY699fEPty29?=
 =?iso-8859-1?Q?6d3dg3d6caQrvVIWIILfsRcD8amtASGfo8BJXsYvxmUKDrbYExaQP6nMdR?=
 =?iso-8859-1?Q?fElH1KWUlCvuZ6H5Uumof1OKsMoGdzeEuGTIR3eyPxaUGTGyDrlokx+k3y?=
 =?iso-8859-1?Q?mXY3xIzNt6h3TU4AyZPAL7tGszJvwbxnTOnTsqCkC8m7dTPFtz3FwoXpxg?=
 =?iso-8859-1?Q?Ksya7VJ6zbR+IL4plui9JXgmJwno/B8AIl+dTTV7lC7aNQlz9DCiFuxmkh?=
 =?iso-8859-1?Q?y++jXtBtC3kHJDyF/euFoO4SEPf/F/RKUwSKYU+Fg1J+62NRvZbRI6UTgL?=
 =?iso-8859-1?Q?F9KBAmfHd4UnAfmnC6XDs5mQVjRwlDgrjOUiuIgosObCYU1siw0Wb5zCu0?=
 =?iso-8859-1?Q?Owajhg2AtQHwZR6f2VXEXmHhZhRF+pdyaIxQ3+tcBmSmgLTF3Q6zgALwkt?=
 =?iso-8859-1?Q?UtzIyuZyKuONDCqWn++Foj7ke/8/aE/SZP56miPyQJrnOWITbV116SZ27b?=
 =?iso-8859-1?Q?UUKHy1uxoOysyLa/IGN1vm/42YbMGJEkU3QiDXW8q8yxWUKoE6A2H7j1sd?=
 =?iso-8859-1?Q?xxSDC9PlNsKn0C/SWqFpugh4/b+pKYPOTOf+/BngmrKYlw7coSOkJpYgJm?=
 =?iso-8859-1?Q?2rSnU5sp54tcEY7tlkjelOsd5EUxndapSaGPp1Vchz614KO4IQ/5yI2vk+?=
 =?iso-8859-1?Q?Mtt35w7QLdGdvQetoTHGb5LPbXMr9DsMYL9XzYKis87ujRHqIjMwkjeHkj?=
 =?iso-8859-1?Q?irTkuERfWbSvyiuxQxYwxuc8WnZ+EFQzW9bLQ1WzDxYKTeMsrLsVYc3nP+?=
 =?iso-8859-1?Q?q4Ju+N4csxHyYoA+miMsqt9jq+zEGvg/dfmLyJamKCfg/qDXpTAL1jXQiy?=
 =?iso-8859-1?Q?YAV67TlhH4fh/VujZBj7x1sRss1eVRNgaGyMyxbdl881VY9jXurOQLYCsI?=
 =?iso-8859-1?Q?oidBF7EkgB9Qaye/nYZsMwHRc3J4FVLaydIsg12hmzaNUWfYSNHx5W4enO?=
 =?iso-8859-1?Q?A8+ON9b/yCSDmYCMs35/5J+DlAGr2Q5aIBPjDupEINZYTNHzt7Kw0Dqo4X?=
 =?iso-8859-1?Q?njVV7SpAK0p+pU3RZpJ483Y2RBNjXJtznJy0rfb7rjZCpJEx5CewtIZqps?=
 =?iso-8859-1?Q?uenJbnpxOLWNG+MbK7vFxoIKCjszCFQcJVLRtbBNBGUZfLy/RmIr8b5caj?=
 =?iso-8859-1?Q?Xs6ZPygK1YpFasfUFKeu55w2ltTCG482MYY9/uAip2QlSQvnBGVWfgBFIb?=
 =?iso-8859-1?Q?hzu6Hbxu1u3VZudfCoMAdFrPacX+TaoHGCtXcjqBRufrNxugaukwmF7PiI?=
 =?iso-8859-1?Q?rgBZuWHoVHSYTHNkC8evHSL24uSg+2bHEEESs30sDHKKt0+uGjG+IXcw?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d642a54-cf9a-43b4-7a1a-08dd10c2ead5
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2024 22:12:30.5997
 (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: d/gpvuwVwzrAI4FLKZwTwtNXu2dcJj9T/1rOxAXjpG8TR5yMTHM5rb1etO+eS8iGXc0WLZtU+8ykD1vykmwvzLYpH5IX5Svutu2K2SbA+8s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10831


Hi Jan,

Jan Beulich <jbeulich@suse.com> writes:

> On 29.11.2024 02:49, Volodymyr Babchuk wrote:
>> Provide -target and -march explicitly when building with clang. This
>> makes cross-compilation much easier, because clang accept this
>> parameters regardless of host platform. Basically,
>>=20
>>   make XEN_TARGET_ARCH=3Darm64 clang=3Dy llvm=3Dy
>>=20
>> will behave in the same way if building Xen on x86, or on arm64 or on
>> any other platform.
>>=20
>> -march is required because with default value, clang will not
>> recognize EL2 registers.
>>=20
>> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>> ---
>>  config/arm64.mk | 4 ++++
>>  1 file changed, 4 insertions(+)
>>=20
>> diff --git a/config/arm64.mk b/config/arm64.mk
>> index c4662f67d0..97eb9a82e7 100644
>> --- a/config/arm64.mk
>> +++ b/config/arm64.mk
>> @@ -5,6 +5,10 @@ CONFIG_XEN_INSTALL_SUFFIX :=3D
>> =20
>>  CFLAGS +=3D #-marm -march=3D -mcpu=3D etc
>> =20
>> +ifeq ($(clang),y)
>> +CFLAGS +=3D -target aarch64 -march=3Darmv8-a
>> +endif
>
> Why is this dependent on (just?) $(clang), not (also?) $(llvm)?

Because this parameter is handled by clang only. There is no harm in
providing it explicitly. When building on arm64, value of this parameter
will match the default value for the platform. When building on x86, we
need to tell clang that it should generate arm64 code anyways. There is
no reason in trying to make ARM build with x86 instruction set.

> Also
> this affects both toolstack builds and hypervisor. Is applying -march
> like this actually appropriate for the toolstack?

This is a good question. I can't see why this can't be appropriate for
toolstack. I.e. what bad can happen when building the toolstack.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Nov 30 01:10:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 01:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846084.1261338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHC0A-00044i-Vn; Sat, 30 Nov 2024 01:10:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846084.1261338; Sat, 30 Nov 2024 01: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 1tHC0A-00044b-SW; Sat, 30 Nov 2024 01:10:26 +0000
Received: by outflank-mailman (input) for mailman id 846084;
 Sat, 30 Nov 2024 01:10: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=b1+J=SZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tHC08-00044C-L7
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 01:10:24 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2613::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ddd7de69-aeb7-11ef-a0cf-8be0dac302b0;
 Sat, 30 Nov 2024 02:10:20 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7694.eurprd03.prod.outlook.com
 (2603:10a6:20b:41e::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.15; Sat, 30 Nov
 2024 01:10:16 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Sat, 30 Nov 2024
 01:10: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: ddd7de69-aeb7-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjJkIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImRkZDdkZTY5LWFlYjctMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyOTI5MDIwLjE2NjI2NCwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YD6G+C/NAtQfb76QIil7fgi1+OeLZ2dFPNIeK8s/qjVKpwlDEJ+z59GTFBbwk70/qOtjpMJpxYBq9IqzxU0iozZwEjdxIt+uiscNjOYq/TmAq3xc9b3Zma+q0MsFie7IMKde2LrJHtl69YRSXGsH6S6ioWHwnM/aC+0zZFqz5LvGvCNYvJG3hRtNIlNElBaYiEKiCCy8lKccEt2YaDygqGd93vFN5inleyTng96BpIByWR5uqLuAsLoQRUGBvrrGHkeTLlVZEebzWRvIa7um6h6CxOaD+jy1FphN5TaNhpcHPmg1vXhYAHiCLUrik3EmsBtvOjGVxM0PE9305rEVQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pw3TVcYG2GcL6D1CgReR7ofWSiP1ku/xjJnw0Bx6q3Y=;
 b=yKm80CawYha+Q03if7wH3BGEIMHNSk0+y3j7RWXELF31T5p9WhhoPFFPJnlC+Jp5iQSZsmgEgKvt7+3qzziJUu+hyCpv9JmFrIT7KaI4BHfG/Tsg8KaQJxOLVcFB1+R/v4DFTLkDHiSZXmiXGZtfU8G6d0dkDMkYKYiQ2OzkBHShlPXJsBN8N7WoBbZeAcXojeS+R5jZk47GA+R0GGUPqIrcEooovZsIbf4ltx6k8SHzGFdBUWiYZ66ALtKneiTwQkAexLqYfYGEGSzzxxjF4YKvj75HSZfr9eDETfh/Uey4LmF1u3XrAaACw/NYJw6oMPXu6VJ5dUuUmP+LDotT8A==
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=pw3TVcYG2GcL6D1CgReR7ofWSiP1ku/xjJnw0Bx6q3Y=;
 b=CU72Nx7odxJenceCY73QrfDYf2dCXoR4bauUQWnvOtNKe0KDdzME86NZ8Os4bnZKpz3VU8ZP8M+6FfXXp2ngrWwoclp9cXVM3fRWovGunaM8ko9qXhmufJkT+Sz8soFIMY4ojLsGCK96zypZU+pbZTP7AQmUNr+S9JdEgW40Lmrc9TjIZ5CEoAHRg6lHQsQBAZSfxGqaXVU/yaFuOLTaHmJJaIja/QZmQdFzt7uCgCVBhw6uTeM7YIffhT/FrVudSVgy5lJjLaKXgW1uhZ4iUn9RqobrgMKdsPGDFl11vzbhCQCVvu2898FAh2NyHBNbuGQMH3KCvrXviaHtjQ/lxA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v2 1/4] common: remove -fno-stack-protector from
 EMBEDDED_EXTRA_CFLAGS
Thread-Topic: [PATCH v2 1/4] common: remove -fno-stack-protector from
 EMBEDDED_EXTRA_CFLAGS
Thread-Index: AQHbQsSdhsEy1dPVQEOcqGdxy6Xe0A==
Date: Sat, 30 Nov 2024 01:10:15 +0000
Message-ID: <20241130010954.36057-2-volodymyr_babchuk@epam.com>
References: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.1
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: GV1PR03MB10456:EE_|AM9PR03MB7694:EE_
x-ms-office365-filtering-correlation-id: 51db0109-5a26-494f-f614-08dd10dbc00e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?lmqJT3QWeZaE3+mnJwgGFCwW3Ll1zDnaf/AAGeXYiR79PUuNkaoKILBICr?=
 =?iso-8859-1?Q?NKsHk6LJv/unBQ2b+e7LCMTXBOYpDU75YnPBxSv9FpjIugcHp/3mQuMjl1?=
 =?iso-8859-1?Q?IQtpUcP871eKmxksYPERVKhhLY1Ma/7v3G+Vph768PSOULQ7FRAPbednxA?=
 =?iso-8859-1?Q?WqTcroCea9829YAeIQG4FP+HZ0g4rYWFB1EMpt9lu+jeoEwNcAVJRu+jxT?=
 =?iso-8859-1?Q?Am6jKBVq7vZA8jYZ7FK9vBLswO0zdBhqi4+NL7oxk6GzBmHtZRmkQIL8oE?=
 =?iso-8859-1?Q?qjAuNdqfIxdWLShlnLG7l8ztorcJg/bze2BriIFi5QkS3LvN79pB1wG7Ic?=
 =?iso-8859-1?Q?gDrt3tsCucgi7FPq5AOUY7WQ4PNxTCMmtDZjTHl8vX3ijg8qRhaZBObfRo?=
 =?iso-8859-1?Q?mXWAPfQj5P4krt4V5fwPE3q59/fkIcQk/X2b6rqzhzDeZe84FLpiO+WSHG?=
 =?iso-8859-1?Q?zhqTPY6lYSZ9LElPlA1BPRWln3myBDhxaQrnZYbL7AftvwbvgKE8rHAOaJ?=
 =?iso-8859-1?Q?aj7N9QRId47vTCZ8fxmhjekmCbiyg5UyDWmilwJNiEavCEAPDuABd8aehn?=
 =?iso-8859-1?Q?GZTAokldLeKvkt1Xq8MZ/QZYbEmwq1xv5gCTQlmsFBhFWvDp+Dlc5UeakR?=
 =?iso-8859-1?Q?/CD8o6bVpsB87POrW+WCosF274GgxCv/I7jgljzqkvLKcz/+maXhgzXHLq?=
 =?iso-8859-1?Q?I5HLRWFuZvyE7sa7igiSWMSyDwIOMRQqLV/M1wWQPknZtZxaAWpRxQvJIh?=
 =?iso-8859-1?Q?nj5SC1fJ5wQmONJoH7oS0PRcytiJ0jhNPWHGPcnmb8ITT6FQNIY4wLhpOJ?=
 =?iso-8859-1?Q?evUHKcINywEUNbHthxtVV6+aD97XzIX/021rZgdMe5bdqCP6IHwIOc0vIJ?=
 =?iso-8859-1?Q?3fRT+MRfGJr1eWz9iEAt2KwCn094vc4mP9Xg9Gbh0mk0iKbcGOJcevs+bb?=
 =?iso-8859-1?Q?ebypVlZOvsxWja4kL7AzRZshIaqdA6ZNHGoNH7iC5w2atJR71K4KLwRdgU?=
 =?iso-8859-1?Q?z/4oJHMgs9Y83SxUNj/ABup7aEUPG+bQhULcB/OQ8kHNwXkMx8cSvEomML?=
 =?iso-8859-1?Q?WT5QB7v82k4Jxx5iW84gl/aGeMMvwTTcmAenYLUzWHUW2v2wevbNIZDf3M?=
 =?iso-8859-1?Q?WAEqJ0y8XI5pneMkrzHXuS/tzfRdoAUVSStkvZX0Dxu4zw4SwxtNOQ608L?=
 =?iso-8859-1?Q?4N9tWK5Pky/SyHWCfhrFoVN9IeQ6dMEHAMAIBe9mGafRofSCWZM63gDCrT?=
 =?iso-8859-1?Q?ztzP/c9R+txqUQjIeuf9wYa7mTyiH7suVsG2v/B9eouJidDHIlhloLXlL4?=
 =?iso-8859-1?Q?IoIdY5AXkqpZB3O84cf3xjOmDrkee+HkCi0g1eofKeXphZteQ0RJ3BCV9Q?=
 =?iso-8859-1?Q?e63p2j9LpMQRuFbw6WluVq8vk9Vy+F+rZWbEq7sWY0lec5INozVfk=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?enqKTeIn8BbI8MWRMxjxuSvVk4hnW9URqH8eNqB0yMqojgjfAxrFW6QWyP?=
 =?iso-8859-1?Q?rDxXZr50zHnY8xzPv0yWnSoBS0u2gr1QVuYNp5hNjOEPAsvbushiXy7w5J?=
 =?iso-8859-1?Q?WC4CBF/pcyvgGri0280f8xz/GgL4GrV28lzoZOCaRVo4NNijzbEm/0iTPn?=
 =?iso-8859-1?Q?1h7mQzr8T31MUYV4LWlZEefH5vRwFHRk28be0/vtRFXWwoE2r62/3b26vY?=
 =?iso-8859-1?Q?3cD5FxR3RK6dGIFJ6AHtMmS44aLgEzcECCPzAQGRRMNr7/NEnJctA0ETKK?=
 =?iso-8859-1?Q?pK2qRr6JJPULr7Dn/SpgfKk84HeONsqHOX6S+T0Gw2DbaOcUsplSFHyhN8?=
 =?iso-8859-1?Q?TQBW46dO8o2IXv60IpM5nl4NXI2gLCYG/ZL98eSZpgek4Ka7fCVriZSz0H?=
 =?iso-8859-1?Q?xQWEmQXR45tE+FHWjo2iBKv/pPKcVK/T5dAWSSN35E4f4NY2Au1rZLAWnz?=
 =?iso-8859-1?Q?yUUe7psgRbO9VyM5uySdVwIJ2GwYq6QV3OmnuYDP6KCjatae9AqaEU7C89?=
 =?iso-8859-1?Q?xJ5Yo/mLy/e7QyDvfsdre2UNRbh4n3UveF/7tWUgUTY4buQrVpgeuRcbSA?=
 =?iso-8859-1?Q?6DtQ9vWZ0WHvIZ/90A7BElCbR945h9yhqj7gjg2iB3kVIJVJcCpNPqFLJl?=
 =?iso-8859-1?Q?a4LbEJOOdmJjWhy95jfC8hSuATL6KXvtTyBFP+6sl5EJuTdd1pmhk1vl8D?=
 =?iso-8859-1?Q?dD2N8oc3mQTW2jLtwT3b490HziPgZ52Lg41wvDfcV//K+ibffgW//Lifaq?=
 =?iso-8859-1?Q?BrOOLMvoDHYgBLYJGqxHIykYK+K3J9NFB8MA6r3pZppsJFLuYEvN/Fp3WB?=
 =?iso-8859-1?Q?r+hDiQ7ZnioC7celv1GsWcf94BJOJfa3Gzf1mfFVdWeT+Oj9PBFgm/fUSh?=
 =?iso-8859-1?Q?E6ZEk3nBJn20XeDnljkSP/h1nfABdl2v22MYRXhHXOJO9nwnC8fn2VhQ2Q?=
 =?iso-8859-1?Q?rVIdE6li1OiTd+cPua+JNNzbs9U+ZkFiduRgNsJ1ZA3mfcJ01PHWqp+4bF?=
 =?iso-8859-1?Q?BHobtarGNV/lQ5/DEjISOyWZKd2oJQREYT7WnvzT8+3b3HCivf6zakH8c9?=
 =?iso-8859-1?Q?7GxmrSlCjLQYgPDPSl287p5GQzdKFAw+72z/gvYGZAelKBfv+kclZ88gLX?=
 =?iso-8859-1?Q?rlYITUEqXVKpZIliOr4purIWkbiqrklKASeMOKwAnrUTOyJ9CpWtxZ7INt?=
 =?iso-8859-1?Q?vk/QmxlpFqszs78xtcWNGMle7c3cYvcX1Ytl28XLg5AhAJqQuPmpLfbntk?=
 =?iso-8859-1?Q?DBdcYTpeXN44HCxr4rJiLXcgvMWXQuyNi+a+dPdL2NQDUCXMUfC4ZxzfLU?=
 =?iso-8859-1?Q?QYtSW6+xs2dhC+7Sj9MohcMtAbAvAWkT6weMuv+fUQ4k/uwQyEUh1vH7Q2?=
 =?iso-8859-1?Q?xvhb+/o6MbFNLj4YIw+4H9OjXUhK9BM/fjHEQnQWQtrcFnlN5gr8SRyzWa?=
 =?iso-8859-1?Q?cg1W1U3xry69hZq9Gg3mtgYDHMu54rxvd63mlJkqORRgAJ35U6fBQfdfuN?=
 =?iso-8859-1?Q?FFAJMUsonQs8zW1mxIbUp+1Zugycko3eziBSNloxEFn8ekmPNUGr+9YHJi?=
 =?iso-8859-1?Q?LIL1Ed/bpyRLTEGI6DkaPo/RWQ+Vd0+38MW+LE33sA7upce+aUgaoL5dWA?=
 =?iso-8859-1?Q?5fHOtrDdr8Jha24okz2ZFdxGcvEHH0BsfUS8LqdK+KR3hdstFt2tXq6A?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 51db0109-5a26-494f-f614-08dd10dbc00e
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2024 01:10:15.6837
 (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: f2ZsS24ljqzCiqJlCABDUIPp02lkpOw7RuTvaCIdLGmvs1HHMoDfHhsbZvgrygiCPTBgnvavylWX7dUaRmI745llHOo5mkOfBm2WcX9dPsA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7694

This patch is preparation for making stack protector
configurable. First step is to remove -fno-stack-protector flag from
EMBEDDED_EXTRA_CFLAGS so separate projects (Hypervisor in this case)
can enable/disable this feature by themselves.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

Changes in v2:
 - New in v2
---
 Config.mk                            | 2 +-
 stubdom/Makefile                     | 2 ++
 tools/firmware/Rules.mk              | 2 ++
 tools/tests/x86_emulator/testcase.mk | 2 ++
 xen/Makefile                         | 2 ++
 5 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/Config.mk b/Config.mk
index fa0414055b..c9fef4659f 100644
--- a/Config.mk
+++ b/Config.mk
@@ -190,7 +190,7 @@ endif
 APPEND_LDFLAGS +=3D $(foreach i, $(APPEND_LIB), -L$(i))
 APPEND_CFLAGS +=3D $(foreach i, $(APPEND_INCLUDES), -I$(i))
=20
-EMBEDDED_EXTRA_CFLAGS :=3D -fno-pie -fno-stack-protector
+EMBEDDED_EXTRA_CFLAGS :=3D -fno-pie
 EMBEDDED_EXTRA_CFLAGS +=3D -fno-exceptions -fno-asynchronous-unwind-tables
=20
 XEN_EXTFILES_URL ?=3D https://xenbits.xen.org/xen-extfiles
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 2a81af28a1..41424f6aca 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -54,6 +54,8 @@ TARGET_CFLAGS +=3D $(CFLAGS)
 TARGET_CPPFLAGS +=3D $(CPPFLAGS)
 $(call cc-options-add,TARGET_CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
=20
+$(call cc-option-add,TARGET_CFLAGS,CC,-fno-stack-protector)
+
 # Do not use host headers and libs
 GCC_INSTALL =3D $(shell LANG=3DC gcc -print-search-dirs | sed -n -e 's/ins=
tall: \(.*\)/\1/p')
 TARGET_CPPFLAGS +=3D -U __linux__ -U __FreeBSD__ -U __sun__
diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
index d3482c9ec4..b3f29556b7 100644
--- a/tools/firmware/Rules.mk
+++ b/tools/firmware/Rules.mk
@@ -15,6 +15,8 @@ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
=20
 $(call cc-option-add,CFLAGS,CC,-fcf-protection=3Dnone)
=20
+$(call cc-option-add,CFLAGS,CC,-fno-stack-protector)
+
 # Do not add the .note.gnu.property section to any of the firmware objects=
: it
 # breaks the rombios binary and is not useful for firmware anyway.
 $(call cc-option-add,CFLAGS,CC,-Wa$$(comma)-mx86-used-note=3Dno)
diff --git a/tools/tests/x86_emulator/testcase.mk b/tools/tests/x86_emulato=
r/testcase.mk
index fc95e24589..49a7a8dee9 100644
--- a/tools/tests/x86_emulator/testcase.mk
+++ b/tools/tests/x86_emulator/testcase.mk
@@ -4,6 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
=20
+$(call cc-option-add,CFLAGS,CC,-fno-stack-protector)
+
 CFLAGS +=3D -fno-builtin -g0 $($(TESTCASE)-cflags)
=20
 LDFLAGS_DIRECT +=3D $(shell { $(LD) -v --warn-rwx-segments; } >/dev/null 2=
>&1 && echo --no-warn-rwx-segments)
diff --git a/xen/Makefile b/xen/Makefile
index 2e1a925c84..34ed8c0fc7 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -432,6 +432,8 @@ else
 CFLAGS_UBSAN :=3D
 endif
=20
+CFLAGS +=3D -fno-stack-protector
+
 ifeq ($(CONFIG_LTO),y)
 CFLAGS +=3D -flto
 LDFLAGS-$(CONFIG_CC_IS_CLANG) +=3D -plugin LLVMgold.so
--=20
2.47.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 30 01:10:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 01:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846089.1261378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHC0H-00054I-54; Sat, 30 Nov 2024 01:10:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846089.1261378; Sat, 30 Nov 2024 01:10: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 1tHC0H-000543-1a; Sat, 30 Nov 2024 01:10:33 +0000
Received: by outflank-mailman (input) for mailman id 846089;
 Sat, 30 Nov 2024 01: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=b1+J=SZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tHC0F-00044C-MA
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 01:10:31 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2613::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3b013fd-aeb7-11ef-a0cf-8be0dac302b0;
 Sat, 30 Nov 2024 02:10:29 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7694.eurprd03.prod.outlook.com
 (2603:10a6:20b:41e::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.15; Sat, 30 Nov
 2024 01:10:16 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Sat, 30 Nov 2024
 01:10: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: e3b013fd-aeb7-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjJkIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImUzYjAxM2ZkLWFlYjctMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyOTI5MDI5LjUxMjg3OSwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zFqp34+OGvfFHvkj3/xy1m1SC+EToXdPAuQ37nOuGfYewssDfFd6e7kgPczw7AAadMrQOLAzc0LVyqxcM7O5Id1u4YyDB9W35zinQhqhcZx9z4iuEoN6NDaqKdc0QW087gMgiF2V0jibt2DFP2q65n1s0JoqOF97OwEx0fRKZz/oKSpruGBjfd0kmBq1SaYP4tRDC5LikTsJODQ8ijduQhk9SoSk+RueWHsM1mZGDi6j+GRLzcIYwX0VX9dLsoiIn8oa2inK7V8w2k0lE0PwItc/y7MsorxFYJ7LA+1JFbGUlQHHdcnQw52EIWNg4Ma6p3zM/1YqTgVAvkWQRJvadQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Lk0HamVq4FxAqQJVSVFKu2L4HLWpx3Q1Ibp43i+aQ68=;
 b=iHuMjI2DnApIM7wpX6t+pA+JCnNN1bkXT9M0QzFvYPvsZeynjx694lo3K2lxRQtjVCsKZpM3J40+F5uNFUjO6ffxjNYsYtNAeKU1rnj9U7kRAptrnurACkO0HrCuZ817DLFnAQavwfVa1UF4sCxzap1C9j0Dr/qF/qBKO8nMfVtdJZCYbll70ivDgk/sv9MhoPW2B+ju1ZIdXL3WFy9kxMYSA+/rjjOP1jz6p5a0oBu6sBfSfSyL6+FuYBT+QoLtqspvulBH3n9m84xHdBBnUGo10ymvM1td57dL6b9Hl/hXgN2URvMOlkQ4Ontr+VxIX5MgtvhCOVQ9WwISqqkDKw==
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=Lk0HamVq4FxAqQJVSVFKu2L4HLWpx3Q1Ibp43i+aQ68=;
 b=SORKnbMj8pPcCXoYMfim6hzzIMFFW/HnhLWdGowsBxMYt1doiibgPWQfpE8h+f+4U6z9KRQjhkalmEfVpAWd8F4qbuf1QCXvBPzLBITWicjAlnwOglNSRgnA8VuK7Hta85fK46kiZvAK64C78Zx86pnXb8WUcRTZTeBB5oO2jf3JdU4euMm4C/Ca0FxmjBQyrvahxtFrh+SwQWFXAlecNFCwG8W6xMmjg0M2eOcGJSPUp4/rNAwZPjYkWew3vJdi514Tkc+Q5UHS2S/c881gQnztXVX28IDZLEGvN6A8irX+MdFpBHy0fy0Vr4bSx+JnSyoM0Ngs47ojgpxyVDp1LQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/4] xen: common: add ability to enable stack protector
Thread-Topic: [PATCH v2 2/4] xen: common: add ability to enable stack
 protector
Thread-Index: AQHbQsSdkWILXIuO706XPyPrUU1cAA==
Date: Sat, 30 Nov 2024 01:10:15 +0000
Message-ID: <20241130010954.36057-3-volodymyr_babchuk@epam.com>
References: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.1
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: GV1PR03MB10456:EE_|AM9PR03MB7694:EE_
x-ms-office365-filtering-correlation-id: 60322106-e114-43c4-5a18-08dd10dbc03a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NKwJhqdwrA8AdoAVasRDl/n3y0mu8VdAOlyGm6rUqLoUhd/yf8TDMuYWCW?=
 =?iso-8859-1?Q?rPK6woFaQPQLUbiKVl99Vgin48aBY8cxUqszhhTuAs865TnB9+/GuCZ1Gt?=
 =?iso-8859-1?Q?4uktCrcEqwkIv+OLGOHPViT1V2UZXW9suUqTFAqtF5zkT9JtKpCHO7GELd?=
 =?iso-8859-1?Q?ZLIGeGw7fgEiKkok3y27ISu94ANRCRv2hcBoqU1WkqC0UwIKEhylbAoQpW?=
 =?iso-8859-1?Q?eKbZWycPeKrh5IWOan2CFNmOPx3HfSVYMbAVlU7TjJvSy4HBFdUJrhMLJ1?=
 =?iso-8859-1?Q?YtB43JweQKasVeSiZkIQ03GBNP3cgHF2pR1GB29Y9WkOsaCeichriMqKan?=
 =?iso-8859-1?Q?p3QLfhMVECqGSwkykND9NHrpElO9FOQsc69CkTBsB6AaNMD80Tmzam5LcZ?=
 =?iso-8859-1?Q?wbGFY44yqIQxS1INVyTUB/IwXXOrNEe60YLzwnKHXMQZrybq9wU1N4DBnq?=
 =?iso-8859-1?Q?Y2nAuPCwMOKnnZmy4xGkj+0MpRHBVCw5Y3bqtVA0uOSKeQ9n1gOxkBSgMl?=
 =?iso-8859-1?Q?xY6+ETgRlKaWcATOkBILKk/UvTJd1ummlGAHTAhYRXCSL7N8sySxzh8B0i?=
 =?iso-8859-1?Q?v+8z+ZGH4i69VycACD8cHl4rRRUT5pl7y1dCEjqcH6rzDnnfaYTwyfx/QS?=
 =?iso-8859-1?Q?TsvSeo9WBh7kbY4JGnWUqj0ieYFd54QnvpU985enihf07hLoesi8sK+kWt?=
 =?iso-8859-1?Q?AkxEtNrnHuz4ex2df4fRWbjbISoXSL6KKIP4EWHT177I3+9gcNSgPPSh1j?=
 =?iso-8859-1?Q?ux3+m/hPk5NDK5fzwyDkJKOj1UjDfWJYKkKOxGD8AlsiGDsTpWioyC+JbB?=
 =?iso-8859-1?Q?GKhGlT55spZROGY12lBqceZnNNFjU7Ulj17GY0G0zJcNJLfh9fyP0C4B/M?=
 =?iso-8859-1?Q?172gD2C7Xrm5wlpsdN5V7QcNlfbv4mO2kWmN6L46TY5i76ygy7Pw2Wfkuh?=
 =?iso-8859-1?Q?0CcUTDlJu68kEdCTLl1zd4guYCsrIvessvt5BU2xve71Rv3+PX6dzJS2mx?=
 =?iso-8859-1?Q?Sj8C0P3bozL7YG7ceCkaNTGpLqIeyenyaouqR+9FMXlaf3cVfN7GcONMV3?=
 =?iso-8859-1?Q?E4OiC4IRIHTnBqnMgR0oAP70U9suCJurn7cyfAkCs2yVBeLlc/aHlRmLex?=
 =?iso-8859-1?Q?Fcm9g/9rRNrwEPjpePTfpi2L4LdMsJK9rCwLFTF07Q0gmP6Himr8X5Kpxr?=
 =?iso-8859-1?Q?Du65Ng7E2TQ1kMfUP9VT0L3Lw8BxqKTBQiCso/05f1B805KI93WB6QokX0?=
 =?iso-8859-1?Q?Tqptzyw91cD/5x0DkUJae0rErwMKFJklRwoVBXWCGTBkpn83+gHWFVrM8h?=
 =?iso-8859-1?Q?oyW0ygayD1AemYnzNbw177MFlDS56fF79V6PbXuwyvzdnDoS7lf+wmbMI8?=
 =?iso-8859-1?Q?7RmsfShATTdviZL/F6w/HSQvliqJDfk9yALCCAagm2sgT6rHXzWd2ax2An?=
 =?iso-8859-1?Q?lXlEvxacN3f6NyJ4l6q48mNe/+k1VuuhmMsBYA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+erIPVTbcmK5GUDyNz1iwfblWfClsddW1E8dT2A+jXYGQdq1avVzEjpSlY?=
 =?iso-8859-1?Q?QdUIObWv2TXq+b/asYVttAwL4Qwetz+MQeSYZI/jdAfJSfEiPVmd+YOxH1?=
 =?iso-8859-1?Q?O4pPelrVLbXGB7dw6I9m8XYntmqayPmYw8BIEwyrJCDbJbPMNaAvQgvDGi?=
 =?iso-8859-1?Q?W6fuSKoQaDiI5ArloZ4jME0Z6ec2j9zIa530KyHUkXbQ1mcb5VsA886Wg/?=
 =?iso-8859-1?Q?wQ+qXVdJQY5o7cgsSHphELu9uu4Zwxsc1Pj/tJmpb2r3DtQeg9y4it+b31?=
 =?iso-8859-1?Q?bYjd7DaCfYAheCh8j11gWzzq3f+0IHcF0IHEwUttKZ6Whsd2QTauON+fyr?=
 =?iso-8859-1?Q?+AUBmnD91vYTUlPE9Jg8OrRmniusGDUU+ji5W3PVwubZZIdmgPCuPir6yq?=
 =?iso-8859-1?Q?IkSE6unnl4UOBcBJn0wGS2TB7u7e9Tsv9j7Bn30DNwpj/bXVRxbngoxCDu?=
 =?iso-8859-1?Q?SbhSnN8wF/wOD9PwtiOqxUYYsafiXF8xaiGuiYZaqB1mXEzB/3hu0E9XyA?=
 =?iso-8859-1?Q?ipisL5UsGvrW8YdBZ+rdsEYQayWnrLmzz/4znC/xtD6Yf72xhRu6lxA1ac?=
 =?iso-8859-1?Q?JOoEI63IiL5dA3fgvpxQn9ie+8BhR8yMlg/ir+PyIj9ADHuzMkuP22fTJ7?=
 =?iso-8859-1?Q?S5v2/FsQwXCNkagsc6fWoYExOo6MdT/nOwZWu+XCXi8X8NUNsLsr8ccQSn?=
 =?iso-8859-1?Q?fomcxlDpr2AsIIAVQztFKr29slQ6tbm2skQb/pVgaTzNajFWdrDD+MjkP1?=
 =?iso-8859-1?Q?PAnQxFK+OU//fsK3r5xpczZaeqbxcEU9d5o0y0lzTX2pzcPAuJZarqrNe1?=
 =?iso-8859-1?Q?k94m1Mm5+rCF6vUPRXhseS0PlFHZWny2wK7nwovzAmIHFoVnx7+TR95Xh3?=
 =?iso-8859-1?Q?q7DMPLCFPKMFnZgIeNTCVQyy553QxeG3E61NnU1uRv7Bz0yMRqQGeeGntU?=
 =?iso-8859-1?Q?+Oo77qE2QTp/Q618XBL5aGN1tH2eXGin7TTfSzZcJjlCSVbciPJRymofBJ?=
 =?iso-8859-1?Q?mg4TfpRYTwXVRfvbvFX114Efh61wMduFWcgK2b4irq1LdrtGO5LTbjG/OI?=
 =?iso-8859-1?Q?G8G8kl/Z3QY0Ob93awmEiyqKjdwyu7xwxFEHZlLoJoEOvTKHoxvPSe+Zug?=
 =?iso-8859-1?Q?0am0eeYLA6stxF8BpzsGCH98M+tqirkKMwH6VWnG+gccVJ7cXM5Rk3jU9F?=
 =?iso-8859-1?Q?a74H3fKRk9b10Gf4qq7f4dWmErSBkDVGrra/QAxgfbCTvm4yJFhluxj97b?=
 =?iso-8859-1?Q?fl0cOhGRGgFP/NrXs4sS73ZxMm9p+PAF1zVo/3o8Ac602NxlAhe1V7HBCJ?=
 =?iso-8859-1?Q?8wLr6PCx8HJkbvse5MzzQ699dnOGBjaRJSMcegJ5FJDTb+1hemC+NgGhHv?=
 =?iso-8859-1?Q?Xg9p4pC8J4YmqNYy2UGxyugfuVcCDlFPCLRWHAOeVif2rk2DtNhDplibOV?=
 =?iso-8859-1?Q?KMnDeolFQwLGAVKqHaL1YPS6m3+q6ikY7xP3XSHvCy/6FAnmdrTKf822AH?=
 =?iso-8859-1?Q?2eoQg5F3jGENk6gdE8i3bljAqPl70iU67UXm+TXRJ/xmTDgJ6329kaJPPa?=
 =?iso-8859-1?Q?pzC9xOi23ddDOtyEqepT+mzmtWj7MdRxnbc15FrNNi5sXzN1Kb9lWYCg1Y?=
 =?iso-8859-1?Q?8/L7E6EwZRt1KyentKwdAsLzpTp6UtXFqLfiEXh1N/1MFqr+s9RK7Z+A?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 60322106-e114-43c4-5a18-08dd10dbc03a
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2024 01:10:15.9693
 (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: YiUZz6WwqrIFFAp1fDWSyt23wu64HqX0xw/vnD1NF6npLWOSnv4S+Gc/dd5x7gek+I75mN+oz8EeGfIIjn18rpuOugVreHcn8W4KFIlrX4g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7694

Both GCC and Clang support -fstack-protector feature, which add stack
canaries to functions where stack corruption is possible. This patch
makes general preparations to enable this feature on different
supported architectures:

 - Added CONFIG_HAS_STACK_PROTECTOR option so each architecture
   can enable this feature individually
 - Added user-selectable CONFIG_STACK_PROTECTOR option
 - Implemented code that sets up random stack canary and a basic
   handler for stack protector failures

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

Changes in v2:
 - Moved changes to EMBEDDED_EXTRA_CFLAGS into separate patch
 - Renamed stack_protector.c to stack-protector.c
 - Renamed stack_protector.h to stack-protector.h
 - Removed #ifdef CONFIG_X86 in stack-protector.h
 - Updated comment in stack-protector.h
   (also, we can't call boot_stack_chk_guard_setup() from asm code in
   general case, because it calls get_random() and get_random() may
   depend in per_cpu infrastructure, which is initialized later)
 - Fixed coding style
 - Moved CONFIG_STACK_PROTECTOR into newly added "Compiler options"
 submenu
 - Marked __stack_chk_guard as __ro_after_init
---
 xen/Makefile                      |  4 ++++
 xen/common/Kconfig                | 17 +++++++++++++++++
 xen/common/Makefile               |  1 +
 xen/common/stack-protector.c      | 10 ++++++++++
 xen/include/xen/stack-protector.h | 29 +++++++++++++++++++++++++++++
 5 files changed, 61 insertions(+)
 create mode 100644 xen/common/stack-protector.c
 create mode 100644 xen/include/xen/stack-protector.h

diff --git a/xen/Makefile b/xen/Makefile
index 34ed8c0fc7..0de0101fd0 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -432,7 +432,11 @@ else
 CFLAGS_UBSAN :=3D
 endif
=20
+ifeq ($(CONFIG_STACK_PROTECTOR),y)
+CFLAGS +=3D -fstack-protector
+else
 CFLAGS +=3D -fno-stack-protector
+endif
=20
 ifeq ($(CONFIG_LTO),y)
 CFLAGS +=3D -flto
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 90268d9249..64fd04f805 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -86,6 +86,9 @@ config HAS_UBSAN
 config HAS_VMAP
 	bool
=20
+config HAS_STACK_PROTECTOR
+	bool
+
 config MEM_ACCESS_ALWAYS_ON
 	bool
=20
@@ -213,6 +216,20 @@ config SPECULATIVE_HARDEN_LOCK
=20
 endmenu
=20
+menu "Compiler options"
+
+config STACK_PROTECTOR
+	bool "Stack protection"
+	depends on HAS_STACK_PROTECTOR
+	help
+	  Use compiler's option -fstack-protector (supported both by GCC
+	  and Clang) to generate code that checks for corrupted stack
+	  and halts the system in case of any problems.
+
+	  Please note that this option will impair performance.
+
+endmenu
+
 config DIT_DEFAULT
 	bool "Data Independent Timing default"
 	depends on HAS_DIT
diff --git a/xen/common/Makefile b/xen/common/Makefile
index b279b09bfb..ceb5b2f32b 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -45,6 +45,7 @@ obj-y +=3D shutdown.o
 obj-y +=3D softirq.o
 obj-y +=3D smp.o
 obj-y +=3D spinlock.o
+obj-$(CONFIG_STACK_PROTECTOR) +=3D stack-protector.o
 obj-y +=3D stop_machine.o
 obj-y +=3D symbols.o
 obj-y +=3D tasklet.o
diff --git a/xen/common/stack-protector.c b/xen/common/stack-protector.c
new file mode 100644
index 0000000000..b258590d3a
--- /dev/null
+++ b/xen/common/stack-protector.c
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <xen/lib.h>
+#include <xen/random.h>
+
+unsigned long __ro_after_init __stack_chk_guard;
+
+void __stack_chk_fail(void)
+{
+    panic("Detected stack corruption\n");
+}
diff --git a/xen/include/xen/stack-protector.h b/xen/include/xen/stack-prot=
ector.h
new file mode 100644
index 0000000000..779d7cf9ec
--- /dev/null
+++ b/xen/include/xen/stack-protector.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN__STACK_PROTECTOR_H
+#define XEN__STACK_PROTECTOR_H
+
+#ifdef CONFIG_STACKPROTECTOR
+
+extern unsigned long __stack_chk_guard;
+
+/*
+ * This function should be always inlined. Also it should be called
+ * from a function that never returns or a function that with
+ * stack-protector disabled.
+ */
+static always_inline void boot_stack_chk_guard_setup(void)
+{
+	__stack_chk_guard =3D get_random();
+	if (BITS_PER_LONG =3D=3D 64)
+		__stack_chk_guard |=3D ((unsigned long)get_random()) << 32;
+}
+
+#else
+
+static inline void boot_stack_chk_guard_setup(void) {}
+
+#endif /* CONFIG_STACKPROTECTOR  */
+
+#endif /* XEN__STACK_PROTECTOR_H */
+
--=20
2.47.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 30 01:10:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 01:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846085.1261344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHC0B-00047i-7f; Sat, 30 Nov 2024 01:10:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846085.1261344; Sat, 30 Nov 2024 01:10: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 1tHC0B-00046g-32; Sat, 30 Nov 2024 01:10:27 +0000
Received: by outflank-mailman (input) for mailman id 846085;
 Sat, 30 Nov 2024 01:10: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=b1+J=SZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tHC09-00044C-Dq
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 01:10:25 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2613::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e00b8360-aeb7-11ef-a0cf-8be0dac302b0;
 Sat, 30 Nov 2024 02:10:23 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7694.eurprd03.prod.outlook.com
 (2603:10a6:20b:41e::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.15; Sat, 30 Nov
 2024 01:10:15 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Sat, 30 Nov 2024
 01:10: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: e00b8360-aeb7-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjJkIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImUwMGI4MzYwLWFlYjctMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyOTI5MDIzLjQwMzA3OCwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p397pjFfKceIz2yvkKEbUrFGhM7n4ujTPvyNfK0Q6hNcHzVCvm6KNa55lS8QONIlM/Wl2/C8CQOoI5elcnc+aaeBDK5yGfpUK0MwFTaFejFt8Hs0SVtrsYVDREb6qf5D+4OibBkjoGoJ97kFNsDtW5yhxDglmgqVxaLYsaP4GQWzw3cvmn9MTf2EvZvzcCIdZGCb9lK2Wf4gYejtBqG2gzLdYE95Y/ERiyqiJGdR5RoMRQz+DOmMVn7jslKSkuYXMKAq+IYUk3iMrT94zxyClcgAFYjmJLP/cI8XUo2TwAw70hQ4c3igJ9gI5j2lNHBVfRVrwDavUevS6mWwsu0yEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EcE4MQ/KInbQ64EOEx7RiuJiz/7SMxJqXpiSvjkursY=;
 b=XF7PVkZCIbSfdo7hN3RtIVY0WggRNv8lMX2BcfLvmcNx+KcoAifqJT00opQ2QBtHL+1A6z1ptIsuA3mWgmfFvZvwMC55zvCUfi6Cvjez3/T5ubCHtPvC/cfix7+2PROFOJ4AJDtbGL70TdUeRdnKtyfeDp2j7/9/WnY9CHIN3voLSi4L7J8ONFVKK6ybp6xPyTKj8CM8FmZc3HomTIDGq2wK6rhHdFTuQLc4MFRi+D3IKognLqBkCYIFmHagPAf3/fMLcIXXzbHxf4Rp/pGd+2lfUihO6t6NXgRqlDJ6NYTjjY59qlWOK3uTCxg6h5SnCkkYat+WaewP78DUDKOP4A==
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=EcE4MQ/KInbQ64EOEx7RiuJiz/7SMxJqXpiSvjkursY=;
 b=ec6Bo+tJr300GVvHkTy8karA7oH0a6Zj+X//SmvXfgkspShu94Tt0W5cjBq1OImcJ7ZzQzZY7v3DcOqEgSXJTyi3tNjTwM8+IzFNvcYUaMewZJEYSAT1olGuwkUubVNbHOGhCzqLA1Uq9Mo9oEMBwGYbFrx3KxRlog65rAsFnXRVdYsJ6AJpKCznIMH2iSXSRucJnC0zt7BtCQkBr7XKPcscBFxddKpjraCA81W8/AfZNlUmTbG79sKiqK46bL52ivbD5YrcdRH52RuGYmNg9MBWg+Lp/OCZuNwwdmZ5e5pusK8O02lii7U1AxHQtwrRq3Ygj34BjYLOAgTh0ppQ1A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, 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>
Subject: [PATCH v2 0/4] Add stack protector
Thread-Topic: [PATCH v2 0/4] Add stack protector
Thread-Index: AQHbQsSclqo0UcXa3ESeciBOaRXmoA==
Date: Sat, 30 Nov 2024 01:10:15 +0000
Message-ID: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.1
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: GV1PR03MB10456:EE_|AM9PR03MB7694:EE_
x-ms-office365-filtering-correlation-id: ed5a5f74-33f5-4c29-4555-08dd10dbbf7c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?KVIXRO5IpoiS3Z9qE++oNgeLTVjaFbypk1YUejksCW4K6RHXOobwSEjTST?=
 =?iso-8859-1?Q?0sRd16q+3KS60+5DK8cCqUtbbLAcFcC3HoqhNhWApzNgXh+YJUR70fQnsz?=
 =?iso-8859-1?Q?CFUSmHZGsiQE9fcCxEKHrRvhidfMHNFO0PhJ/Y0EXZKfS7Z4JKs/hSnJl3?=
 =?iso-8859-1?Q?xFvVX+EuxPsVW+KJHdVO1/Rm0CIVmGaPZpP9PwxJnjQYSyab2iGQDjYbMZ?=
 =?iso-8859-1?Q?9Z3xQ/Nqab3AyjH1TIkj0WOG4abOfagf+7rrRrPEig4A1IXTsEwFDM5GPK?=
 =?iso-8859-1?Q?2UrfeaIj6HkM+ygc/PYbLvRsCjxrjAZ0KrQK8aGpOelYgFWUFlZKkvRI06?=
 =?iso-8859-1?Q?2S8QkekDHosC2RRBu0/+MBOqGlFMurLRxefCKwqKHURf9LOY7i5OEtD5sk?=
 =?iso-8859-1?Q?Z6csmibraZzlb/wCCD7nu0ljNE/NFo251IxRGGKKr5r6rIi5KWlG63x3jG?=
 =?iso-8859-1?Q?jorAQthZJRM4R8SZLNsKWOVE7VasM8TO/mwJ66ZUSun39MJoZ+XGQ9cJM3?=
 =?iso-8859-1?Q?9y0/lYNmEOmCbaxueh6XBrVQlnQbRJ9EhCJdxcjFBH8dSBVBB5Go+1nNAO?=
 =?iso-8859-1?Q?6igFUY6suGW0umEepAsqwerWRxKhgI8HHuqluX+50RPbKaGOzFp+WVNu9C?=
 =?iso-8859-1?Q?tygPebpLSR3gTQtNJLf5afSTU/lgVUwllx1e3I8uLzKixPCZz302D5PnjK?=
 =?iso-8859-1?Q?iqzVXSM48FNiXOhWzFOQj6iv8RFEczvsg1HgzPmG/c6yTJkxGjQZ8z8nuX?=
 =?iso-8859-1?Q?BN/ipKOXf7HOf6Mwdad/IWLW0hBIInoLOwcxqaj6zaegq8Wpw0Od0MpFPu?=
 =?iso-8859-1?Q?PFZKiKy/yyZD6sSZ3awHVoBoFvCs9s2e3AyA2D4gZyu9xoMqiInBWNTGPD?=
 =?iso-8859-1?Q?5/cTgF7N67fipsVKbtYrOm2OI4kZb8Sbb43gIo7dBhO+QlUsqENMl5mn0h?=
 =?iso-8859-1?Q?JZh24RiSIjpMH6yKYTzcQOmN+MqmWO8vAajFJDSTQW5bbavZxA2ljNHB5N?=
 =?iso-8859-1?Q?qPxqYCQFq0LrOuoibtVHhpXcl+Xvc1p53875akUJFPSYM+zOOlt0+kRT9S?=
 =?iso-8859-1?Q?HnGuOARmb3NM4uBT06SbtYxm/Jgdm21oHSnBoDlEP4mj6IwEq47Y0IX7Nl?=
 =?iso-8859-1?Q?uAdf51g2l78tHvB9bFNnZv8Iq8iKjT13ynpv0Am3sQYC1CCWeFhaecKAKl?=
 =?iso-8859-1?Q?lj9a64ZzVWu8T6kGjs5QPVlurKRxqe4CASBezjKGGYwVdHN0hb7/nk+I1Q?=
 =?iso-8859-1?Q?Duy34o8s6gNkQmCyFbFOfpQrSr6pIqpbIbGACQZV8Rt8WgP3MHkoTLl+1Y?=
 =?iso-8859-1?Q?B/rEGuK2XC56kg9t1oJzWChCbWt6d/i/IzwOPMd6XfVXRAdjrRtJUwebik?=
 =?iso-8859-1?Q?m/hYKc/Edh98dWFNziDwMy9Q5Hypn7UeWdv/ygswTLfrNsftElZBlkQGiF?=
 =?iso-8859-1?Q?+0N5J69EKziRE0e41OoPsvi//FaPGKTMdiv3Uw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Gm+u1GvhXXlpg9t7XVmZVep+9zl7JCXQpoi1kYm+c5uz/hhaEL1vegrLcu?=
 =?iso-8859-1?Q?UJFoVrwS+c6EoQ9UG2Z162IiGEsXokP/VKtHXgIfg76zFQ0/X8D7l7jFgZ?=
 =?iso-8859-1?Q?zD3a9lqxMmGO0cJtHiujoXHktjK1mbMr+K7aXQ6+jPNLPJityZrCerfhm4?=
 =?iso-8859-1?Q?wmsX62vMANYZ0KMKXYrDkrY7YcTgeRf83mXaxVhCXqKMIovM1z8N3tp6WR?=
 =?iso-8859-1?Q?36nyu+9GOqzkMbQt5Wd272OHiSJRLdjkX+9VWqdEqcYFioIpBRQ35dbQMZ?=
 =?iso-8859-1?Q?pF8+uZZ1crpesMt/QVmPiQrZbcMWXFTPz1+qq3w0ZOVYsj1yJkuG12waUJ?=
 =?iso-8859-1?Q?W1Z1pQBwf3RYIqZa51spqiEssby6BixdtLR4C9GUvaKb0Hn7Rzn0J9esNt?=
 =?iso-8859-1?Q?fVnCNsmtxQm6rxXyPccAil4BRa2hH9I9OrvIlphWc2ofx3O3kaxqODlewq?=
 =?iso-8859-1?Q?L3R/otbCnFMRMRVQGzHaYo43JNyuyh/FcIxVnbbd8XnsLKVDrKwxk5c0Ns?=
 =?iso-8859-1?Q?jKz3EKtWbHpx6YSpj07HDLdzEUUYsBaqOV8MoRGa6PwojQKC/81jiDpPPT?=
 =?iso-8859-1?Q?vcz4H56LBKNRjWd/PT69UbuVFg6o0Vu5A3iIx1lA5cstnBYNi2mffxJdnn?=
 =?iso-8859-1?Q?8qAGQocponySgUwBoqEswTzJp06sCLwPFWrViU9oisZGl81vY4GzkW6YIK?=
 =?iso-8859-1?Q?pcbflDY9cjbO7Ufaccq6Cjq8hmpoqJNlmgNw5eLA8kaIBhlU2uL6K0ABbR?=
 =?iso-8859-1?Q?p36NxdfjNW+kw6pyQoK0XsO7UJt4qgP0DSoQpDwn0ruMz7qqCCynqkNVj6?=
 =?iso-8859-1?Q?XG97FBYK9xxNWBy33SFnIuMfL8oBzY7+LG+NOLFHnVnmFmPabTKSm6/DPJ?=
 =?iso-8859-1?Q?4IpGGZbOtekoSnZn6qyhcG6Xq+1kN5fOu+Wi0rp8LTiw9IqSizg1Sroib9?=
 =?iso-8859-1?Q?s/lRK5DjA87nHBKNSooeAClti1tzxh4qyZC5rwwiPYA9n9e259nqN4Peuc?=
 =?iso-8859-1?Q?ytJ2/B/m75ZK5CWf1BXs1pIYhtWP+IZixm0r7VwBulfiZ6vT9FAMkLsca6?=
 =?iso-8859-1?Q?fuaStiIjODIbMOtuJLdRMsBc+o5jIDDNjAWWMe2YLwr/KROgDLSUL7DqRJ?=
 =?iso-8859-1?Q?Mt9/M9v82ZaelG+bDFkH4pqwgAs5EgSv0YjT+DkOeMG6jIlXEVK46OfzsJ?=
 =?iso-8859-1?Q?R5AHdqws1uJFCRRjJysadv6lnQXWHoAsy6GZ1P/uYOTObpm5rb2sLahdzp?=
 =?iso-8859-1?Q?4Ui8cRXSjHILFWtey8HtQFtOsXQKlCQaVbKgruy5wvaicNHm3Wn0gnjia4?=
 =?iso-8859-1?Q?AlSydc2y0535Fbr5RObAxukR15qRCTcmvFjWqSMjOKXaMcgS540Y1sls9M?=
 =?iso-8859-1?Q?Wa9bH1Mk4iH899V1YD4swKxbuUmMP5exZJa41Uk6c3fV3gcbzIPUBP/mUB?=
 =?iso-8859-1?Q?olMiaEz1wqIPyWpNssCdOJdDWWfYWhV53khilg4JXjRgeq03XFBEJorHU0?=
 =?iso-8859-1?Q?SsDoAmKzh5v07ox8O3yVohCQhDmySk+UFea67D56wRge+m3Y3PAjBJ+B6a?=
 =?iso-8859-1?Q?5IH3K1AwMgeVXC4zVnlX4olbtjrp7IGunWNkfqe4XnkBdlXk9p7pLSPKgh?=
 =?iso-8859-1?Q?ZiZ3G9ahWBDx/hI+Q2j7lSB5NEF8lOHgMhWpBvTDAQKZ3gywrIrMOfpw?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed5a5f74-33f5-4c29-4555-08dd10dbbf7c
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2024 01:10:15.2786
 (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: q+kyTRVbk2kvWVmqJWXmXIRt7FRcQse0KpXOHqHmRxGqiyRhmYDsLupfM5e6p9guOJ150HBuAvtEY3FNuWVJETC/aPz+LHRaRRJe3DUrOOc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7694

Both GCC and Clang support -fstack-protector feature, which add stack
canaries to functions where stack corruption is possible. This series
makes possible to use this feature in Xen. I tested this on ARM64 and
it is working as intended. Tested both with GCC and Clang.

It is hard to enable this feature on x86, as GCC stores stack canary
in %fs:40 by default, but Xen can't use %fs for various reasons. It is
possibly to change stack canary location new newer GCC versions, but
this will change minimal GCC requirement, which is also hard due to
various reasons. So, this series focus mostly on ARM and RISCV.

Changes in v2:

 - Patch "xen: common: add ability to enable stack protector" was
   divided into two patches.
 - Rebase onto Andrew's patch that removes -fno-stack-protector-all
 - Tested on RISC-V thanks to Oleksii Kurochko
 - Changes in individual patches covered in their respect commit
 messages


Volodymyr Babchuk (4):
  common: remove -fno-stack-protector from EMBEDDED_EXTRA_CFLAGS
  xen: common: add ability to enable stack protector
  xen: arm: enable stack protector feature
  xen: riscv: enable stack protector feature

 Config.mk                            |  2 +-
 stubdom/Makefile                     |  2 ++
 tools/firmware/Rules.mk              |  2 ++
 tools/tests/x86_emulator/testcase.mk |  2 ++
 xen/Makefile                         |  6 ++++++
 xen/arch/arm/Kconfig                 |  1 +
 xen/arch/arm/setup.c                 |  3 +++
 xen/arch/riscv/Kconfig               |  1 +
 xen/arch/riscv/setup.c               |  3 +++
 xen/common/Kconfig                   | 17 ++++++++++++++++
 xen/common/Makefile                  |  1 +
 xen/common/stack-protector.c         | 10 ++++++++++
 xen/include/xen/stack-protector.h    | 29 ++++++++++++++++++++++++++++
 13 files changed, 78 insertions(+), 1 deletion(-)
 create mode 100644 xen/common/stack-protector.c
 create mode 100644 xen/include/xen/stack-protector.h

--=20
2.47.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 30 01:10:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 01:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846087.1261368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHC0E-0004ma-Qe; Sat, 30 Nov 2024 01:10:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846087.1261368; Sat, 30 Nov 2024 01:10: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 1tHC0E-0004mR-MT; Sat, 30 Nov 2024 01:10:30 +0000
Received: by outflank-mailman (input) for mailman id 846087;
 Sat, 30 Nov 2024 01:10: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=b1+J=SZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tHC0D-00044C-G4
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 01:10:29 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2613::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2799066-aeb7-11ef-a0cf-8be0dac302b0;
 Sat, 30 Nov 2024 02:10:27 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7694.eurprd03.prod.outlook.com
 (2603:10a6:20b:41e::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.15; Sat, 30 Nov
 2024 01:10:16 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Sat, 30 Nov 2024
 01:10: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: e2799066-aeb7-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjJkIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImUyNzk5MDY2LWFlYjctMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyOTI5MDI3LjQ4MTM3Niwic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dJGgNN3u03vI/zEaAexMLmSK2Zk65WXniXdHACi6cyM8r+F0r2FXdIpV3O5XL7T9DGmqoklF4im4QHVe9TDJz2NqD/6OmtPsDgb2/5JYQP0qgw8zqGsVqH+nM9Q0jkajP7k+07dAhzlJcsAWmWuKHTmh+g+B4DriZ01lZnYzb10vsrCKXOPGMMuTN0N1V71Nf9IzXWbRrL/iefXkQ2Gz46ivOmjqzrsdc8SfdQe1fgEkswMBH4PV4pbmWLV8xU6Gbm5DmfMu4WIUxqeI8KVXyIfUF4Mg+KXKtOFGjVADbWqR9WM7lpAi++XEq3X7mIYe/fEyYbiyhWjfzXhOEVz1Ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/GsamCxU4DN+NHcKP8lPzqtJEu/j5Oky0k16OeYjFl0=;
 b=lp99NVvkken8eGyMkGD+JrsaN1ZI2NfxRM6h5GFUEFjJA8T5yhh00gZzK2dYRRVUGCYtrmD1G/SOIqocgboZ8ZGdLJwmGBng2PdMxTm4bDGJrEnCwPG4c+nOj4QplbXA1vFs1M/9iLXNQafT+7QlqwZ1UiDHbVkA0+X6ipEVknARbtGiU48yGEknP7muSu2rNXCOB9zu/8++JhN9FxtcLF/OSbg58Vx31cB/kXSMPESgqzOf03B1/4Zqv0L+bWHOzip6oVa267kj9wVGJLs4xPGc2GqmpDr6v/XZbbWqjlfrs2Wm+VIEGCUYXOj6IhrhLzA7gYTK/wLcNP5DHBRN/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=/GsamCxU4DN+NHcKP8lPzqtJEu/j5Oky0k16OeYjFl0=;
 b=ESjXKrQw569T3+U6ohQnUqwuP94i1DzmsjeDPVIfej6Tw0mkRzsJgVxyFMH9N9xClCzmatafnhbM4ZLMosnwUv1kDOjFdTjHHT4nijevx5MU0kW3uz6cpBt6bVz8KDs8OCuxbp4SK4IYJJ5oaebwJo03QdkZZ/a/83RNkHL7+3Z23ySNxRU5czgU2+Jl4ZV/aRlkQ2Z1sEADr4VBWk1Wg0rhW4C6DpRACek2dWP0h0KNt2engewxtyvkQBMTt1vCcrAdt8MLihifG17fIK1XE57QDLUfMaIQtiOlA7DARqEcrHCW3JKlk4HiwvKYylg1b7JoDs8NBBY2FaucDmuH6w==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 3/4] xen: arm: enable stack protector feature
Thread-Topic: [PATCH v2 3/4] xen: arm: enable stack protector feature
Thread-Index: AQHbQsSdZeSazgkTckCfCx9gDu8jUA==
Date: Sat, 30 Nov 2024 01:10:16 +0000
Message-ID: <20241130010954.36057-4-volodymyr_babchuk@epam.com>
References: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.1
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: GV1PR03MB10456:EE_|AM9PR03MB7694:EE_
x-ms-office365-filtering-correlation-id: a3c86f64-0920-46bf-b577-08dd10dbc065
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?bRipTcm2C1tHjSJy+OQ79DxPH5BBdwz4nolXBL/9hMF/CDqAYvcarMCkXq?=
 =?iso-8859-1?Q?yMxzE/Ctk1otpwQGiHDjWA1lkY3bHRZZYrmtxmCCbhlAfYEUH1gLCUoRAZ?=
 =?iso-8859-1?Q?8WY8iYQXDzFXBWY19QrAz9M4EoHNEE6HI2yjnDXefDOdhFdxSxEFK13/Wy?=
 =?iso-8859-1?Q?Mpf/53jrqxkLOgC7+KNp6eSzf3r1OOGE7X/FEQKmcYmbW5t/X2FaKcX48Q?=
 =?iso-8859-1?Q?CdNhXbcuyKy8RF35vdx/1g+JmHUBhBRpoZTozfVRoHp9MqxNBtLKHHK21p?=
 =?iso-8859-1?Q?w4PPY/tBAnnnca6VqQZAGeByCdgPhxGpFtAQbYVuoWf8try4iiUxtHJe2Q?=
 =?iso-8859-1?Q?6NpoG9VZlNDQt7XO9i17kf1EsRN/9QYLV7ND/bp1wD7vG1Ps3t5uNMXrcq?=
 =?iso-8859-1?Q?XpbPdqgyZkkMwp9dPtaRLJjb55c5T7GskME7U0ck46giwyyUc73Ks5tv2F?=
 =?iso-8859-1?Q?k5JSdx3sX6/zFiK+gp/Eu0rPCVdoTeJInmeKebiJqqakqxRxX18AY5PmCH?=
 =?iso-8859-1?Q?YV0B0XekvJHegoGfHDxgxvZjPF7cEaaO2JzL4VjTjCGtzt0ufUmvAvW/eC?=
 =?iso-8859-1?Q?fhHOg78Rx8UnlLP4wlE8JdNBhGs3twFhNCx7+jYIQgjyIkz3bT6i2Fzjps?=
 =?iso-8859-1?Q?2ECCfIwHH/KcTkWZgtKdouAgDHh4+bihasRrcxPmXJ3jaEiNblCo6krpi3?=
 =?iso-8859-1?Q?FSLRtKeMTt0tWvkLD/l8ul2qVuY3KP2okJzMvi818uByAfpPaevYomqAa8?=
 =?iso-8859-1?Q?gXJZr2l0+ddu1XCYR+UvRtFTpzPNZb8wzDha8y6oabym/BeTjB4JCIJ6Vu?=
 =?iso-8859-1?Q?20nxBljGjbPgWUzr9JdksXLntW9czRomkyhWlWiI8EmnVVavcNQsoIR2Pt?=
 =?iso-8859-1?Q?ckheaC4kTbsPJrygzYtOA7pw/od1au6+yLYIO2SVfIAHALlHthYkEsdbqh?=
 =?iso-8859-1?Q?N5MMnG7CrEv1KJHJBa8NjQ+XYeFW/PFtzOfm3VmXpm4xNwWSoIt1BSz2nm?=
 =?iso-8859-1?Q?+Ibv/pchvWRKoLaqbEXsrR3oFQCN0hP7inYECvsEdSpZ+sdtf/HjNRdXHQ?=
 =?iso-8859-1?Q?pZksxO0+haVrmOqDOIG4smBdkTPyaviTSeqakLAQFo036bGW46xBq5rggd?=
 =?iso-8859-1?Q?xLRXJq2Ew9fF2gYgAHyhHXvSh6nI017sy0XAqYlImhUIgF9Mkw2ExlkinJ?=
 =?iso-8859-1?Q?XtaOvezl9umFLo6iEVUljS2Jkq894miFtFW/kLyQfRJEcRKem7DQ/v5ozH?=
 =?iso-8859-1?Q?EwUtIeq2Cl2CwAWlJha4/X9KDI5ekZDqDSonjZkA+dKkltmVQOt9I4EgmS?=
 =?iso-8859-1?Q?9QrWT/hnY0yPHP9w/0LPJxSrMioREQCKju6GbfQmb8tvsKIEXu+3768Srl?=
 =?iso-8859-1?Q?uwCv3jXXJA5WjcpwMFPxzAD5dKuUQixpO5kelUSiVEvR4aq7rxbGg+oQZN?=
 =?iso-8859-1?Q?tvozmcaj4QbKsjHzL2y3Z7Powrguoif7iBBcXA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?nOhroqYjEZr1xhJrVW8pCTk4jsml6Kxveykifqrv0tG2E+W69E7boVcm33?=
 =?iso-8859-1?Q?YvHiRLlQhe6yqA4BWnOt1+I+2iH+pT0ypAJy4ALLbcFgIajqHFV8bTUfN/?=
 =?iso-8859-1?Q?Qwbfe6PIGps2tV+nksYkTcUErusBdY63A3zleVaZh+Ytf22zsjyUlWH6ZS?=
 =?iso-8859-1?Q?aBetpjo9XDQ3e57TdxTXzdWV8dlIFrb+mgxH9z4VDI/ts4uZjg1eFD1I7d?=
 =?iso-8859-1?Q?AbgYtsEgni7gIDXOeJ2+5yBzAMOe7UXxa2rPwqpi9oA0MRuQcPuiLTMZT/?=
 =?iso-8859-1?Q?gahSBxqtsPLP8WINEF6h/ybwyrHQHUnaUD6zbbLozyq1/xqON4dloRXmCX?=
 =?iso-8859-1?Q?h+2TUYIoZJzTh9XduZEAi4cugW9I9FelL0L53OluzFKIH2do33O63Vki5V?=
 =?iso-8859-1?Q?BIwqJjGwdlxE4IDdsWE+yFFaPuPL0KtiBCjLVg4aFztwF843p/Kv0U0Bc6?=
 =?iso-8859-1?Q?DIslb1IcIsbtbzhE/ZYkAV86lKcmc0NoWhlPwWEJfffQoUfHmbY/uR7R1J?=
 =?iso-8859-1?Q?fXCAE/F83K78tAg6rl+LienQPdSZxgfzgvhN86wQ+9SyBpLyz76B+ylxpG?=
 =?iso-8859-1?Q?H/RrTAz+CfwHZ2yoaxlCj6gED9DR/i6zFSlxPjVkGcDIpaKfADoHUz1sqT?=
 =?iso-8859-1?Q?nTa8xR8ZM4BM5086bF5ksIUmXRn1p5RYkLaLELOPiB81p4dqYHDbAWOaZ1?=
 =?iso-8859-1?Q?zGGElP8jo2JVfHjIM/FPx2Y9PUG3c3pxKjNO6GhHiGRou0dCrXa1PCDO0s?=
 =?iso-8859-1?Q?SAYycQbHp8pwSQUkD66/n12w/lBlUUkvAPdrxazjyOlfTk1YbaCJan44hZ?=
 =?iso-8859-1?Q?4mmW06oYhnJzLbGqGXxx188yuHU9nbx035w4UMqf8uDc8GWu0FPu/z/9XG?=
 =?iso-8859-1?Q?MN+kECszwtbeUQ8+Lu3peaJUXNtzmKwx3eYlmy/qcTIKMXjwpZq0BAzlgY?=
 =?iso-8859-1?Q?BUyccuWz/AdexVue6jvrlngrkF5DGr4YUCPaGq0vfy+EoCf42YoMKi9DLw?=
 =?iso-8859-1?Q?UpMwDYs8+Jut0wJMwS0yMSgCFaek5iwvJPKSNRCOTrfuggoprQ8HG283WJ?=
 =?iso-8859-1?Q?BROQROgnJv30yPBhLOxw2iOPW5EvszYRAyDEU0hDSMakKww7WVIPorBMG4?=
 =?iso-8859-1?Q?mqHRACyzR/8rhb8GxSeUG0gou5nQ1jw87TifDxnnWVhCN+bYcLWQQlBge0?=
 =?iso-8859-1?Q?4DiVBWUsNxFyGGWey3TDJmCrTiZ8W+zul5FpXD/PDcb8PtUFHx45nJz4tQ?=
 =?iso-8859-1?Q?QDxillcuRl9DpTGZeh4HZOc9dPZgMeCS39RGpJEgBJwSEmgvyRwmat0JMD?=
 =?iso-8859-1?Q?uZ+/wWDMOFyTspTo0G6tnis+wQll570I4vZawVTvw/hvmOXKHzyiaOUTeI?=
 =?iso-8859-1?Q?MQFZN7LS+qFID8mggSIXW40vE0luQi2V7o9MEHAvNs1iK82kJwH/ognNiw?=
 =?iso-8859-1?Q?sjQ9HSPwGGYd/6dDgXI51tcU3iKf7iH6wONi0HWixQ80SIMGb6x02PYHQi?=
 =?iso-8859-1?Q?DFyL8r4wBnsUrgw+0JYo1j/REWSG1rZG5pH/CUoClCT9EwiiH0YSetP3A9?=
 =?iso-8859-1?Q?LxIOgAaIMsAf4q/CLn/mb0xZgZ4GF1Z39lIZBxaEA6ss1v/7hGh5jCQHrh?=
 =?iso-8859-1?Q?Gvm42T0zkZ7iV8BUoqAHiHyZ/P5D05JC4pCzB2uaPUJyFf5THMS2RC6g?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a3c86f64-0920-46bf-b577-08dd10dbc065
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2024 01:10:16.2832
 (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: dTYxlbX7Jb1Qk0SQ0QLzkPO3bKSZbxWLl0LdEcOJrrry+kyGOR39IBbqxxKggknROqf0p8ODu/uv4JQFumc3AYa5Cuhr6/yJs7vAnqIxEuw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7694

Enable previously added CONFIG_STACK_PROTECTOR feature for ARM
platform. Here we can call boot_stack_chk_guard_setup() in start_xen()
function, because it never returns, so stack protector code will not
be triggered because of changed canary.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

In v2:
 - Reordered Kconfig entry
---
 xen/arch/arm/Kconfig | 1 +
 xen/arch/arm/setup.c | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 23bbc91aad..a24c88c327 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -16,6 +16,7 @@ config ARM
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE
 	select HAS_PASSTHROUGH
+	select HAS_STACK_PROTECTOR
 	select HAS_UBSAN
 	select IOMMU_FORCE_PT_SHARE
=20
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 2e27af4560..f855e97e25 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -13,6 +13,7 @@
 #include <xen/domain_page.h>
 #include <xen/grant_table.h>
 #include <xen/types.h>
+#include <xen/stack-protector.h>
 #include <xen/string.h>
 #include <xen/serial.h>
 #include <xen/sched.h>
@@ -341,6 +342,8 @@ void asmlinkage __init start_xen(unsigned long fdt_padd=
r)
      */
     system_state =3D SYS_STATE_boot;
=20
+    boot_stack_chk_guard_setup();
+
     if ( acpi_disabled )
     {
         printk("Booting using Device Tree\n");
--=20
2.47.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 30 01:10:37 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 01:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846086.1261358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHC0C-0004XA-J3; Sat, 30 Nov 2024 01:10:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846086.1261358; Sat, 30 Nov 2024 01:10: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 1tHC0C-0004X3-Fh; Sat, 30 Nov 2024 01:10:28 +0000
Received: by outflank-mailman (input) for mailman id 846086;
 Sat, 30 Nov 2024 01:10: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=b1+J=SZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tHC0B-00044C-F1
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 01:10:27 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2613::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e142c225-aeb7-11ef-a0cf-8be0dac302b0;
 Sat, 30 Nov 2024 02:10:25 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7694.eurprd03.prod.outlook.com
 (2603:10a6:20b:41e::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.15; Sat, 30 Nov
 2024 01:10:17 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.8182.018; Sat, 30 Nov 2024
 01:10: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: e142c225-aeb7-11ef-a0cf-8be0dac302b0
X-Custom-Connection: eyJyZW1vdGVpcCI6IjJhMDE6MTExOmY0MDM6MjYxMzo6NjJkIiwiaGVsbyI6IkVVUjA1LVZJMS1vYmUub3V0Ym91bmQucHJvdGVjdGlvbi5vdXRsb29rLmNvbSJ9
X-Custom-Transaction: eyJpZCI6ImUxNDJjMjI1LWFlYjctMTFlZi1hMGNmLThiZTBkYWMzMDJiMCIsInRzIjoxNzMyOTI5MDI1LjQ3MTA3Nywic2VuZGVyIjoidm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20iLCJyZWNpcGllbnQiOiJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcifQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q6zrJPiOoYZzJHV1mJopSCls5JIBibHr+mbOEgXnZHiDSxUunWb9ODvMUw6nQDcuohPbUTgS9az8Yu84i1LA/6dvTJHfFDykAtTno8NXadCpsGnQj7kifdmFoHKQgXjlWpGvT4dpyPCXlAFaSiDdAiuMrj8lHiKO/4qdYKajaxGZUUVL1OHEINhNFqqvLbUGcRG3vOeEajpodhdrDEAba+oCoD3AHu0ZXpx1lLfz6LL1vbNjwGatohV5OD+e1ZIquuiOaGTAdzKrltrSAxRdNQPSrte9/jLCkwNNbILIp0HxV9is3hAa2fBaXrHWd1nNdSKiGmhXXhh4OgofwDVzyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sMLsAsxP2jCKXlPGp2d48OpFc6sgoHg60qnvVOllAa0=;
 b=aEY9T8VKCMjTGIjleNZuRGbY2+jKMaJfgyyUBGYSVW75fh+/IGc3HngvzYFPwf/naj0dSt1SA+ntWF9Em1xJGhI6OuNCtATl3TEburhTj5TRG6n+zyU/g42u34qxiT9iugd1otpMlG/kC7KzEloVZhVfzG/Vrr4eFfyVMa2HBkyJcQMtdL0z3+1XSqJep923te3WTxv5lL6vJorXufoiV/DFmr/TFQTkdiBvOTvmdqRO+tynUx7aEKDj9ASip3TWBPivFVv4M2o6zU5/GEWeHLDNWubddfF44WPP9B/oFngQ9//AdnvYe/Mb4CyYdS49WyjjnOUgQP/PJITug3IBFQ==
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=sMLsAsxP2jCKXlPGp2d48OpFc6sgoHg60qnvVOllAa0=;
 b=rvv9qRw9tXc23DMjcV9jea3tJ3lcW7hrrPAu15DPg2WMMVRlDy4Lg41kTFuxd9PUn/36dl5cgJpXkd8NLRzdxf3Dphu+V8w9slewHJju+mzkElhm2pyHNUTmNvakRozC3cR7U8DCW5fbIZqh5CUa4o4yabNAN5zojJTT41Vm/eXFdPMchEtzHZBVnr4mAgvO/wbdj18b2gc9SzrLq5BC4tdzrZGH99LsLscIjREWS3EQA/PIeA3SPb5Qm1G7t6MB9L4zPc8skzRGm3FcHVrc5swkyX9GwwoPaHzulX9LEyjLG/VXiXanxQ+rPk75SluQ3TUv1cuSeRRS7i+WEEEl3Q==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 4/4] xen: riscv: enable stack protector feature
Thread-Topic: [PATCH v2 4/4] xen: riscv: enable stack protector feature
Thread-Index: AQHbQsSdrqhVO8R3/0W5bnSX25z8yw==
Date: Sat, 30 Nov 2024 01:10:16 +0000
Message-ID: <20241130010954.36057-5-volodymyr_babchuk@epam.com>
References: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: git-send-email 2.47.1
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: GV1PR03MB10456:EE_|AM9PR03MB7694:EE_
x-ms-office365-filtering-correlation-id: cd6b4f3d-38c6-47e6-1237-08dd10dbc094
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?k3mjZrk9VHb7MObOMvN85ZqNUkvQyQJ7H2Fb/FMmMEj93r4gE49ZJ38yjU?=
 =?iso-8859-1?Q?Dr+w414prgQDAp5wlwOnbW5eEcemHqXTVK92aTxCqcQR9GZP3KXK4ZQLbQ?=
 =?iso-8859-1?Q?kLR44QVHVKertD+sS07H4CJ/BVu/DE/cUIwxSHFgker9t/p7z4x34SukGf?=
 =?iso-8859-1?Q?3zmi6T9BT8Bu0VhEs8+PUA+f/ci90PYNccA1IeleqwO2vICq7HSHVWIGUF?=
 =?iso-8859-1?Q?F4mU2djjxo++Pzif3qLaYhQYkz+8t8qE1Pz3Yo1QF590xrzqAcyNucJtOY?=
 =?iso-8859-1?Q?Inezyc4u2BCvYARAPyB0glYIAgp9bvNFHizppsTkrPJ3Wqjy0XQ8vMvECh?=
 =?iso-8859-1?Q?qAbE0FsGq+iUp3ILPu4uGAn3nPmki64M/5YiiG+gw69QQO2zgDzGN/LfK3?=
 =?iso-8859-1?Q?3pbqnGzLQJoMUKnxN5xxG2fyMvfsQhliybeax21GzeGlKHmYfhaILRjXAu?=
 =?iso-8859-1?Q?v/im0vJT7T5mRYQaubyfvRZKN8vKxCHazBdsyLSmNMB54zjyOpsyNfzfCE?=
 =?iso-8859-1?Q?PcJ8/CDjITAYKkBgZTvRBefdApA8+hJqarBmDBV4V8YK28+3Om5ad4txEZ?=
 =?iso-8859-1?Q?S53JNTOjFNLnu3y5m9cBv8eeWgqzOhO1XwcmqoQWx9Zesmddad4hsPMAgj?=
 =?iso-8859-1?Q?+5kxePpM8nEMCCswPN/M54EDsCM7nd7yW3xx7qHIxFbxaHvF9B4wDHvLfo?=
 =?iso-8859-1?Q?VbVeWz+cXjLU3XQ7tAjiWRoNzxsQa5rGB7VwuBJqmSXuC7Mxg3LgTsve4Z?=
 =?iso-8859-1?Q?DePBHnDknyuSW2tfvx0e2HaY0tK3xK4JEuNMtIT/koIdw2F3okOQRTHPHc?=
 =?iso-8859-1?Q?aRWNSXr8UoUxsmv5nkhnjQQtHqYDXLIeokMTZU8V4e4RryWu90qqlTMk6s?=
 =?iso-8859-1?Q?vacmojnKvqNLFe3rOkBJ/xsh4Eaa2tonwYYvcu/NQ+DZrY9uAJqbxKu1YU?=
 =?iso-8859-1?Q?E0riJ51dNOO9+pvLTa14nAVItJapob5jMihYTGTiHyJo0r9wwJnk7N/0pu?=
 =?iso-8859-1?Q?pTMssbw5QIngguG/U7w2EUJ6G4P7Uavz2k7FUjwudBDeexRLosX2qYuXBF?=
 =?iso-8859-1?Q?H2dp44SF4B+L2MXvaxfJRSkmoYMr50NEe2aGsk1Oj+kuJAJpTMMJIXutkd?=
 =?iso-8859-1?Q?Yl2cgb2PSEQzh/n7r8gqzjvr9Y1gWFqJvt9UkoY/z12Nc3iqCbm5sksvUD?=
 =?iso-8859-1?Q?fBWTninHDgx3IIC/+IKmB7nfJYyPMtsfhGo8oBTFTLd4a+P4TO6lR+mNl/?=
 =?iso-8859-1?Q?VjaIrd60cJYmBI1MvdxGJxpNlDSEKLptjadYnxT26IY3JAb8hFPM9ej68J?=
 =?iso-8859-1?Q?iPQCp51Oxo4BbtLGhb252p9EWEs67c/rOASYvkoN6qs4IvWnzXBRfRLTnD?=
 =?iso-8859-1?Q?yfOScW6Jwo69pXFXR9Kpz4Iiu8yhGbsbpHH7GJHPIWYj47BLudM2VFAZyE?=
 =?iso-8859-1?Q?try/OqTqaE+kWIaIRMEwJWrQy47FB1PV3D0Bkg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1X3XPcbFMFaVlCJOmqJr0uiSPPlahk6n9va9JCIoqHAmNpq+PlvNXExJSJ?=
 =?iso-8859-1?Q?8BnrEGNk8AVDsKgCtcO+FPZZxw3R2FXmJqq97RdvzCkyI6nBWn3nX5CUmq?=
 =?iso-8859-1?Q?PT6KkIhEpayOzI8zzIic9h51oSWSLBLwlvGEjtREJs0XIhzF8tIWrhcWKy?=
 =?iso-8859-1?Q?9DA+ja0jISlgfI7+cEr6znCy5eFaZDizn2vHh/Os6gPwtYwgo91ObEPqqf?=
 =?iso-8859-1?Q?43XLk03uPD3a5oCuvbL0Un+ERLxAltfMPSWHw3XrIfpbGoLJih8y+Z/04B?=
 =?iso-8859-1?Q?GCkNBDDcxg8/4OBfMGaIBWkENAUlmkwGBQhpKA5yRN6h3KoOjre/liu0SR?=
 =?iso-8859-1?Q?xmxqJ0hWG+I4kKdVJdLd1T4Q2GQROljjP7f9jjFeiy4qx7JKrjR7gWODik?=
 =?iso-8859-1?Q?8AzVMHS9gGbMfpJWcyQRfzdOJf6EpCsku90o4wRBiBKxB8ktkRm/Sp6uOz?=
 =?iso-8859-1?Q?nmZIIsTQe2kmF7aaRCb9iLFXg+XPSb5QsV5lmWwt9HdrtLzLXKuhB+lGKF?=
 =?iso-8859-1?Q?ax7eXch0Y0VXY84XS4n1qKn2hpJSLzE63gXs5ZMrMReTTB4GsMm15rEwyr?=
 =?iso-8859-1?Q?SsX6rW5Pg47O2xihffcV5fxlowXc3uehFU55/YLao9aNQ7Nk1mNsUKspzN?=
 =?iso-8859-1?Q?DqppNrsZxXsKj8ifUStvEUEgZ6U24uZwwNI6iRJHeoGFIUPAlF6rZKS4dx?=
 =?iso-8859-1?Q?4O5c5fIzqcdXkAydDX4Sgz0re5/9tMxCgNLbqWFpWxF6F9zo082LXQ8zqI?=
 =?iso-8859-1?Q?5Q2gBGmdP026BYuVw68PW+UJV2PwaXQzIvHDbYNpNtnjrsl7/Kf6NeacuV?=
 =?iso-8859-1?Q?bTTtBR//45ZmSxAB2wpNj0pImwflsFmsiWIPxHUqdgbod0VPohaSTSXUb6?=
 =?iso-8859-1?Q?e/4Y7R6Ck6DVN/WNMhO75GAlPNGfeb0H5YJ8yvhF9+QDtryZMZLCPYl7IC?=
 =?iso-8859-1?Q?R0koNswq3oKZob/hKpFx8sF8DRrJE2W8x9Sqzv2gecMdp/hGd7y1mCxTSp?=
 =?iso-8859-1?Q?lp4mJ61M3wfBq+prLAl88FrRh/cJ8JW6FEbUomB3oK8zttWfuAgO/GBUqW?=
 =?iso-8859-1?Q?XRBU3BaLYJeHVZ4XUdPt3MAJHl+nGE3I5me1nuq4ESn64nI26eTSNE8v1e?=
 =?iso-8859-1?Q?ycbBlFOo2EpvcrXB3MXCtRQ/V51CQxO8eUXBjWBAfRbQAmvWlGymuW4Qqk?=
 =?iso-8859-1?Q?Paw0qEb/aLxgBljc7tOOYycgXfJg9EZa8RoEFhCTBlyZpugk1LGPhrsd8q?=
 =?iso-8859-1?Q?yFvVjb+yvtQXd/abbpsIEbVQ91XQXp/vGBYicoTNGQfhITGHfkBVSQ/iT3?=
 =?iso-8859-1?Q?vr8R660aQOrSSHh19HqN5uybmvWnM/S5uW8Gpj3/mDNKl/DxDd4oVGifW3?=
 =?iso-8859-1?Q?ZVA4+PNBqZQoq88KqoPe+y6cK3xxD5d8dfDVYCrThagxLe+7yMPNXbpa2h?=
 =?iso-8859-1?Q?4+VBJoPYmoLmhMrC9PrGQ8WsA+pxq7E8axx393adTe9HYLqDJCYAGw19rL?=
 =?iso-8859-1?Q?oN/Xc7WCusm/Ve0RmvqtvFkqT4c6qO2nJDg/tfB6/ITLpyvPUmrzlh2H0q?=
 =?iso-8859-1?Q?FtDbr/rnuc44f1xR2L3k7laXWKnm4bH+ryL+VsELSnnHDYsz10QC9gNJYq?=
 =?iso-8859-1?Q?ukmul5f6T2fLLRPdc74JPYd4b5JB4nXbIFIAoJ/shfjnLal03Woxyx1A?=
 =?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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd6b4f3d-38c6-47e6-1237-08dd10dbc094
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2024 01:10:16.5991
 (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: 8X8GmRRjURy0XqMk2Shw6ukUfXhf3iq3UNSrXAZZbQI1AhDmi0qfmbXJXvRquAlFNRoK1sCeIcrmW3IN1CPUkOooU7mGRzZ4qyloR9wGUgU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7694

Enable previously added CONFIG_STACK_PROTECTOR feature for RISC-V
platform. Here we can call boot_stack_chk_guard_setup() in start_xen()
function, because it never returns, so stack protector code will not
be triggered because of changed canary.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Tested-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

---

In v2:
 - Reordered Kconfig entry
 - Added Oleksii's Tested-by tag
---
 xen/arch/riscv/Kconfig | 1 +
 xen/arch/riscv/setup.c | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 1858004676..79b3b68754 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -4,6 +4,7 @@ config RISCV
 	select GENERIC_BUG_FRAME
 	select HAS_DEVICE_TREE
 	select HAS_PMAP
+	select HAS_STACK_PROTECTOR
 	select HAS_VMAP
=20
 config RISCV_64
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9680332fee..59eddb465a 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
+#include <xen/stack-protector.h>
 #include <xen/vmap.h>
=20
 #include <public/version.h>
@@ -57,6 +58,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
     if ( !boot_fdt_info(device_tree_flattened, dtb_addr) )
         BUG();
=20
+    boot_stack_chk_guard_setup();
+
     cmdline =3D boot_fdt_cmdline(device_tree_flattened);
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);
--=20
2.47.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 30 17:07:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 17:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846185.1261387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHQvq-0000LL-6R; Sat, 30 Nov 2024 17:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846185.1261387; Sat, 30 Nov 2024 17: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 1tHQvq-0000LE-3j; Sat, 30 Nov 2024 17:06:58 +0000
Received: by outflank-mailman (input) for mailman id 846185;
 Sat, 30 Nov 2024 17:06:57 +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 1tHQvp-0000L8-0E
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 17:06:57 +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 1tHQvo-00DSJn-0h;
 Sat, 30 Nov 2024 17:06:56 +0000
Received: from [2a02:8012:3a1:0:d435:aa99:ecdf:cc2c]
 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 1tHQvo-005u6v-0k;
 Sat, 30 Nov 2024 17:06: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>
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=VytcNK4yvhDoFgVfxxU51L/CmXjauLny8VyOmxmZDLM=; b=ygj9Zo3W4o2uBeoP44WvOCTPQk
	cltwCuLSwcbnBUZWQLowPEXlin147+qX7FfbiGL1E5HYTKfptXZ4zB863UwXVO4FE8+QeDxpCyaXM
	p13V3eNOUfUsINs93SUnzM9CSfRcATdNjzDeoOawLgfuRQMxQ56u2NgCtTv4QakU1yc8=;
Message-ID: <566b57f5-8e58-4364-80fd-0db327f211ee@xen.org>
Date: Sat, 30 Nov 2024 17:06:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] xen: arm: enable stack protector feature
To: Volodymyr Babchuk <Volodymyr_Babchuk@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: <20241130010954.36057-1-volodymyr_babchuk@epam.com>
 <20241130010954.36057-4-volodymyr_babchuk@epam.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241130010954.36057-4-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Volodymyr,

On 30/11/2024 01:10, Volodymyr Babchuk wrote:
> Enable previously added CONFIG_STACK_PROTECTOR feature for ARM
> platform. Here we can call boot_stack_chk_guard_setup() in start_xen()
> function, because it never returns, so stack protector code will not
> be triggered because of changed canary.

It would be good to explain how you decided to call...

> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> 
> In v2:
>   - Reordered Kconfig entry
> ---
>   xen/arch/arm/Kconfig | 1 +
>   xen/arch/arm/setup.c | 3 +++
>   2 files changed, 4 insertions(+)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 23bbc91aad..a24c88c327 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -16,6 +16,7 @@ config ARM
>   	select HAS_ALTERNATIVE if HAS_VMAP
>   	select HAS_DEVICE_TREE
>   	select HAS_PASSTHROUGH
> +	select HAS_STACK_PROTECTOR
>   	select HAS_UBSAN
>   	select IOMMU_FORCE_PT_SHARE
>   
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 2e27af4560..f855e97e25 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -13,6 +13,7 @@
>   #include <xen/domain_page.h>
>   #include <xen/grant_table.h>
>   #include <xen/types.h>
> +#include <xen/stack-protector.h>
>   #include <xen/string.h>
>   #include <xen/serial.h>
>   #include <xen/sched.h>
> @@ -341,6 +342,8 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
>        */
>       system_state = SYS_STATE_boot;
>   
> +    boot_stack_chk_guard_setup();

... the function here. If I am not mistaken, at this point, cpu_khz 
(used by NOW() in get_random()) would be zero. It is only initialized by 
preinit_xen_time() which happens later.

So I think it should be called a bit further down and gain a comment to 
about the call dependencies.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Nov 30 17:15:59 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 17:15:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846194.1261397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHR4V-0001wJ-0E; Sat, 30 Nov 2024 17:15:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846194.1261397; Sat, 30 Nov 2024 17: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 1tHR4U-0001wC-TO; Sat, 30 Nov 2024 17:15:54 +0000
Received: by outflank-mailman (input) for mailman id 846194;
 Sat, 30 Nov 2024 17:15:53 +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 1tHR4T-0001w6-Ec
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 17:15:53 +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 1tHR4R-00DSUs-0P;
 Sat, 30 Nov 2024 17:15:51 +0000
Received: from [2a02:8012:3a1:0:d435:aa99:ecdf:cc2c]
 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 1tHR4R-005v0U-0V;
 Sat, 30 Nov 2024 17:15: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>
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=wloi3SwMnImRS9WGoCbRDA5YpKNGOzYxXmM9SYbOphg=; b=7PiqsUxCblZf/zdUfaxe9vwome
	W/2l4f/ImJZ50ufaa/aUilT5MSta2J/IYoDLUj/JxIjYUiJZQicenewTIJLAAF9ZfPTMBimFqTK4I
	lcnzwdzVf+LG+UL/pzeBrhYu9rLCsJtbug421sCebwSY3QGrtRRlcaJ9iHKsvE4MP4a4=;
Message-ID: <8df584b8-fb23-4db4-af87-903fde91e42e@xen.org>
Date: Sat, 30 Nov 2024 17:15:48 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] build: arm64: provide -target and -march if using
 clang
Content-Language: en-GB
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
 <20241129014850.2852844-4-volodymyr_babchuk@epam.com>
 <d8bdd084-3e0a-40aa-b829-534219b24df7@suse.com> <87iks5bsgd.fsf@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <87iks5bsgd.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 29/11/2024 22:12, Volodymyr Babchuk wrote:
> 
> Hi Jan,
> 
> Jan Beulich <jbeulich@suse.com> writes:
> 
>> On 29.11.2024 02:49, Volodymyr Babchuk wrote:
>>> Provide -target and -march explicitly when building with clang. This
>>> makes cross-compilation much easier, because clang accept this
>>> parameters regardless of host platform. Basically,
>>>
>>>    make XEN_TARGET_ARCH=arm64 clang=y llvm=y
>>>
>>> will behave in the same way if building Xen on x86, or on arm64 or on
>>> any other platform.
>>>
>>> -march is required because with default value, clang will not
>>> recognize EL2 registers.
>>>
>>> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>>> ---
>>>   config/arm64.mk | 4 ++++
>>>   1 file changed, 4 insertions(+)
>>>
>>> diff --git a/config/arm64.mk b/config/arm64.mk
>>> index c4662f67d0..97eb9a82e7 100644
>>> --- a/config/arm64.mk
>>> +++ b/config/arm64.mk
>>> @@ -5,6 +5,10 @@ CONFIG_XEN_INSTALL_SUFFIX :=
>>>   
>>>   CFLAGS += #-marm -march= -mcpu= etc
>>>   
>>> +ifeq ($(clang),y)
>>> +CFLAGS += -target aarch64 -march=armv8-a
>>> +endif
>>
>> Why is this dependent on (just?) $(clang), not (also?) $(llvm)?
> 
> Because this parameter is handled by clang only. There is no harm in
> providing it explicitly. When building on arm64, value of this parameter
> will match the default value for the platform. When building on x86, we
> need to tell clang that it should generate arm64 code anyways. There is
> no reason in trying to make ARM build with x86 instruction set.
> 
>> Also
>> this affects both toolstack builds and hypervisor. Is applying -march
>> like this actually appropriate for the toolstack?
> 
> This is a good question. I can't see why this can't be appropriate for
> toolstack. I.e. what bad can happen when building the toolstack.

In the future, we may want to build the tools for Armv8-M. So I think 
the -march should also applies for the toolstack.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Nov 30 17:29:15 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 17:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846205.1261407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHRHK-0003fR-2I; Sat, 30 Nov 2024 17:29:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846205.1261407; Sat, 30 Nov 2024 17: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 1tHRHJ-0003fK-Vd; Sat, 30 Nov 2024 17:29:09 +0000
Received: by outflank-mailman (input) for mailman id 846205;
 Sat, 30 Nov 2024 17:29:08 +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 1tHRHI-0003fE-Hl
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 17:29:08 +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 1tHRHH-00DSlp-34;
 Sat, 30 Nov 2024 17:29:08 +0000
Received: from [2a02:8012:3a1:0:d435:aa99:ecdf:cc2c]
 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 1tHRHI-005wHV-08;
 Sat, 30 Nov 2024 17:29: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>
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=Xm/m1HNW4xgr2WptaQMQTFZuOScWp1zEIT9ZTgnRzrw=; b=Rl4D/P/lbQuv/iLjMW6tpy9nGt
	F+spvUgkm1jEa1gxrIdmk7dNoaGPcywXXRWpeZIPY4wmq3e9tBjpMPzo16UvdzR3tR+Q2f7EX2VEp
	SIh4PffiiZcJV3X87+2OXaMVh3fQZtef1SScf+z9AA86PeELEUwxgmtXZxJ0PdcGFGwI=;
Message-ID: <218d57c7-397e-4eeb-9e58-7b3350b11768@xen.org>
Date: Sat, 30 Nov 2024 17:29:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] build: arm64: provide -target and -march if using
 clang
Content-Language: en-GB
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20241129014850.2852844-1-volodymyr_babchuk@epam.com>
 <20241129014850.2852844-4-volodymyr_babchuk@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241129014850.2852844-4-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Volodymyr,

On 29/11/2024 01:49, Volodymyr Babchuk wrote:
> Provide -target and -march explicitly when building with clang. This
> makes cross-compilation much easier, because clang accept this
> parameters regardless of host platform. Basically,
> 
>    make XEN_TARGET_ARCH=arm64 clang=y llvm=y
> 
> will behave in the same way if building Xen on x86, or on arm64 or on
> any other platform.
> 
> -march is required because with default value, clang will not
> recognize EL2 registers.

Any chance this is happening because you are using "-target aarch64" 
rather than e.g. "arch64-arm-none-eabi"?

> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> ---
>   config/arm64.mk | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/config/arm64.mk b/config/arm64.mk
> index c4662f67d0..97eb9a82e7 100644
> --- a/config/arm64.mk
> +++ b/config/arm64.mk
> @@ -5,6 +5,10 @@ CONFIG_XEN_INSTALL_SUFFIX :=
>   
>   CFLAGS += #-marm -march= -mcpu= etc
>   
> +ifeq ($(clang),y)
> +CFLAGS += -target aarch64 -march=armv8-a

AFAIU, -target is the triplet similar to what one would set 
CROSS_COMPILE. If you don't specify some values, then it will assume the 
compiler defaults. I am not sure this is a good idea as this could 
change between compilers. So should we set the triplet properly (e.g. 
arch64-arm-none-eabi) or maybe let the user specify it via CROSS_COMPILE?

Regarding -march=armv8-a, if you want to keep it, then I think it should 
be outside of the 'if' because this could also apply for GCC.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Nov 30 17:45:22 2024
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Nov 2024 17:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.846216.1261418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tHRWs-0006ag-87; Sat, 30 Nov 2024 17:45:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 846216.1261418; Sat, 30 Nov 2024 17:45: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 1tHRWs-0006aZ-4o; Sat, 30 Nov 2024 17:45:14 +0000
Received: by outflank-mailman (input) for mailman id 846216;
 Sat, 30 Nov 2024 17:45: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 1tHRWq-0006aT-Vl
 for xen-devel@lists.xenproject.org; Sat, 30 Nov 2024 17:45: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 1tHRWq-00DT6F-17;
 Sat, 30 Nov 2024 17:45:12 +0000
Received: from [2a02:8012:3a1:0:d435:aa99:ecdf:cc2c]
 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 1tHRWq-005y3O-1R;
 Sat, 30 Nov 2024 17:45: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=Wb0b6pLykWnxEW3MPFt7EzD1sd15lDDN29Bvj32IKTg=; b=nA00FaHR/6HVagJSRnGyePipGe
	luYH4G5Yj6siwZEUAQr49NJ9pb8J1qwKZOmP7pKy+GSzefMM430lOg9MRClKziiWebmeePrD9Jept
	UYkUQJeIICCYqOHX6I/W8tP/g4kNVamK3V1o8VUzM9Z8mpn0ulP0om6jGd+UslIm/00U=;
Message-ID: <4521597b-2714-4ec2-8e80-d90dfa84ce99@xen.org>
Date: Sat, 30 Nov 2024 17:45:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/3] xen/arm: mpu: Create boot-time MPU protection
 regions
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20241118121250.4027441-1-ayan.kumar.halder@amd.com>
 <20241118121250.4027441-2-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20241118121250.4027441-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 18/11/2024 12:12, Ayan Kumar Halder wrote:
> +/*
> + * Macro to prepare and set a EL2 MPU memory region.
> + * We will also create an according MPU memory region entry, which
> + * is a structure of pr_t,  in table \prmap.
> + *
> + * sel:         region selector
> + * base:        reg storing base address
> + * limit:       reg storing limit address
> + * prbar:       store computed PRBAR_EL2 value
> + * prlar:       store computed PRLAR_EL2 value
> + * maxcount:    maximum number of EL2 regions supported
> + * attr_prbar:  PRBAR_EL2-related memory attributes. If not specified it will be
> + *              REGION_DATA_PRBAR
> + * attr_prlar:  PRLAR_EL2-related memory attributes. If not specified it will be
> + *              REGION_NORMAL_PRLAR
> + *
> + * Preserves \maxcount
> + * Clobbers \sel, \base, \limit, \prbar, \prlar

Per this line, "\sel" is clobbered. Which implies the caller cannot rely 
on the value. Yet ...

> + *
> + * Note that all parameters using registers should be distinct.
> + */
> +.macro prepare_xen_region, sel, base, limit, prbar, prlar, maxcount, attr_prbar=REGION_DATA_PRBAR, attr_prlar=REGION_NORMAL_PRLAR
> +    /* Check if the region is empty */
> +    cmp   \base, \limit
> +    beq   1f
> +
> +    /* Check if the number of regions exceeded the count specified in MPUIR_EL2 */
> +    cmp   \sel, \maxcount
> +    bge   fail_insufficient_regions
> +
> +    /* Prepare value for PRBAR_EL2 reg and preserve it in \prbar.*/
> +    and   \base, \base, #MPU_REGION_MASK
> +    mov   \prbar, #\attr_prbar
> +    orr   \prbar, \prbar, \base
> +
> +    /* Limit address should be inclusive */
> +    sub   \limit, \limit, #1
> +    and   \limit, \limit, #MPU_REGION_MASK
> +    mov   \prlar, #\attr_prlar
> +    orr   \prlar, \prlar, \limit
> +
> +    msr   PRSELR_EL2, \sel
> +    isb
> +    msr   PRBAR_EL2, \prbar
> +    msr   PRLAR_EL2, \prlar
> +    dsb   sy
> +    isb
> +
> +    add   \sel, \sel, #1
> +
> +1:
> +.endm
> +
> +/*
> + * Failure caused due to insufficient MPU regions.
> + */
> +FUNC_LOCAL(fail_insufficient_regions)
> +    PRINT("- Selected MPU region is above the implemented number in MPUIR_EL2 -\r\n")
> +1:  wfe
> +    b   1b
> +END(fail_insufficient_regions)
> +
> +/*
> + * Maps the various sections of Xen (described in xen.lds.S) as different MPU
> + * regions.
> + *
> + * Clobbers x0 - x5
> + *
> + */
> +FUNC(enable_boot_cpu_mm)
> +    /* Get the number of regions specified in MPUIR_EL2 */
> +    mrs   x5, MPUIR_EL2
> +    and   x5, x5, #NUM_MPU_REGIONS_MASK
> +
> +    /* x0: region sel */
> +    mov   x0, xzr
> +    /* Xen text section. */
> +    ldr   x1, =_stext
> +    ldr   x2, =_etext
> +    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_TEXT_PRBAR
> +
> +    /* 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


... you will pass x0 (\sel) without any update from the previous call. 
So effectively, you treat \sel as an input/output that will get incremented.

Therefore the comment needs to be updated. Possibly to:

"
output:

sel: Next available index in the MPU
"

I will commit the series once we agree on the wording.

Cheers,

-- 
Julien Grall



